From 3102923ce2208e47cd4cba93142b6135b248d146 Mon Sep 17 00:00:00 2001 From: alydev Date: Mon, 17 Aug 2026 20:29:32 +1000 Subject: [PATCH] muffin v7.5.11 --- FatePaths/Questionable.FatePaths.FateBundle | Bin 540 -> 540 bytes .../AssemblyFateDefinitionLoader.cs | 127 +- .../PathBundleSecret.cs | 68 +- ...uestionable.GatheringPaths.GatheringBundle | Bin 101784 -> 101669 bytes .../AssemblyGatheringLocationLoader.cs | 127 +- .../PathBundleSecret.cs | 68 +- LLib/--z__ReadOnlyArray.cs | 57 +- LLib/LLib.Buddy/BuddyActions.cs | 208 +- LLib/LLib.Buddy/BuddyEquipActions.cs | 124 +- LLib/LLib.Buddy/BuddyStateHelper.cs | 447 +- LLib/LLib.External/PluginFeaturePauser.cs | 227 +- LLib/LLib.Fishing/WaterSurfaceDetector.cs | 309 +- LLib/LLib.GameData/ClassJobHelper.cs | 27 +- LLib/LLib.GameData/ConditionHelper.cs | 221 +- LLib/LLib.GameData/EClassJobExtensions.cs | 1312 +---- LLib/LLib.GameData/ECombatRoleExtensions.cs | 38 +- LLib/LLib.GameData/GameStateHelper.cs | 466 +- LLib/LLib.GameData/GrandCompanyHelper.cs | 42 +- LLib/LLib.GameData/PlayerStateHelper.cs | 1874 +------ LLib/LLib.GameData/PublicEvent.cs | 172 +- LLib/LLib.GameData/PublicEventHelper.cs | 734 +-- .../LLib.GameData/SatisfactionSupplyHelper.cs | 308 +- LLib/LLib.GameData/TeleportHelper.cs | 174 +- LLib/LLib.GameData/WeatherHelper.cs | 125 +- LLib/LLib.GameUI/AddonCallback.cs | 182 +- LLib/LLib.GameUI/AgentHelper.cs | 59 +- LLib/LLib.GameUI/LAddon.cs | 169 +- LLib/LLib.GameUI/LAtkValue.cs | 38 +- LLib/LLib.GameUI/SeStringExtensions.cs | 25 +- LLib/LLib.Gear/BestItemFinder.cs | 387 +- LLib/LLib.Gear/BestItemRef.cs | 114 +- LLib/LLib.Gear/DesynthActions.cs | 418 +- .../LLib.Gear/EEquipSlotCategoryExtensions.cs | 475 +- LLib/LLib.Gear/EquipmentSlots.cs | 40 +- LLib/LLib.Gear/EquipmentStats.cs | 271 +- LLib/LLib.Gear/ExtendedBaseParam.cs | 38 +- LLib/LLib.Gear/ExtractActions.cs | 127 +- LLib/LLib.Gear/GearConditionHelper.cs | 368 +- LLib/LLib.Gear/GearStatsCalculator.cs | 916 +-- LLib/LLib.Gear/GearsetHelper.cs | 72 +- LLib/LLib.Gear/ItemRankingKey.cs | 100 - LLib/LLib.Gear/MateriaHelper.cs | 267 +- LLib/LLib.Gear/MeldActions.cs | 632 +-- LLib/LLib.Gear/MeldInstruction.cs | 110 +- LLib/LLib.Gear/MeldSlotInfo.cs | 104 - LLib/LLib.Gear/RepairActions.cs | 446 +- LLib/LLib.Gear/SlotCondition.cs | 105 +- LLib/LLib.Gear/SlotSpiritbond.cs | 108 +- LLib/LLib.Gear/StatInfo.cs | 141 - LLib/LLib.Gear/StatPriority.cs | 288 +- LLib/LLib.ImGui/LWindow.cs | 341 +- LLib/LLib.ImGui/MapPolygonEditor.cs | 1750 ++---- LLib/LLib.ImGui/MapTextureService.cs | 330 +- LLib/LLib.ImGui/WindowConfig.cs | 3 + LLib/LLib.ImGui/WindowFlash.cs | 38 +- LLib/LLib.Inventory/CofferHelper.cs | 47 +- LLib/LLib.Inventory/InventoryContainers.cs | 283 +- LLib/LLib.Inventory/InventoryHelper.cs | 490 +- LLib/LLib.Inventory/ItemHandle.cs | 126 +- LLib/LLib.Logging/DalamudLoggerProvider.cs | 589 +- .../LLib.Movement.Unstuck/RecoveryDecision.cs | 108 +- .../RecoveryExhaustion.cs | 150 +- LLib/LLib.Movement.Unstuck/RecoveryLadder.cs | 208 +- .../RecoveryLadderOptions.cs | 149 - LLib/LLib.Movement.Unstuck/StallDetector.cs | 198 +- .../StallDetectorOptions.cs | 152 - LLib/LLib.Movement.Unstuck/StallSample.cs | 112 +- LLib/LLib.Movement.Unstuck/StallVerdict.cs | 105 +- LLib/LLib.Movement/MovementOverrideHook.cs | 1363 +---- LLib/LLib.Notifications/OutOfGameNotifier.cs | 354 +- LLib/LLib.Notifications/WindowsSounds.cs | 103 +- LLib/LLib.Shop.Model/ItemForSale.cs | 53 +- LLib/LLib.Shop.Model/PurchaseState.cs | 7 +- LLib/LLib.Shop.Model/ShopSearchResult.cs | 166 +- LLib/LLib.Shop.Searchers/GCShopSearcher.cs | 272 +- LLib/LLib.Shop.Searchers/GilShopSearcher.cs | 175 +- .../SpecialShopSearcher.cs | 284 +- LLib/LLib.Shop/GcSupplyActions.cs | 783 +-- LLib/LLib.Shop/GrandCompanyShop.cs | 1259 +---- LLib/LLib.Shop/NpcPositionCache.cs | 1138 +--- LLib/LLib.Shop/NpcPositionCacheOptions.cs | 140 - LLib/LLib.Shop/RegularShopBase.cs | 626 +-- LLib/LLib.Shop/SatisfactionSupplyActions.cs | 558 +- LLib/LLib.Shop/VendorPurchaseActions.cs | 322 +- LLib/LLib.Shop/VendorResolver.cs | 83 +- LLib/LLib.csproj | 6 +- LLib/LLib/AtomicFile.cs | 228 +- LLib/LLib/ChatHelper.cs | 51 +- LLib/LLib/DalamudReflector.cs | 3201 ++--------- LLib/LLib/DataManagerExtensions.cs | 369 +- LLib/LLib/PluginInstaller.cs | 1135 +--- LLib/LLib/PollHelper.cs | 444 +- LLib/LLib/QuestDialogueText.cs | 21 +- LLib/LLib/Throttle.cs | 35 +- .../Questionable.QuestPaths.QuestBundle | Bin 605200 -> 605398 bytes .../AssemblyQuestLoader.cs | 125 +- .../PathBundleSecret.cs | 70 +- .../Questionable.LgbWorker.csproj | 21 + .../Questionable.LgbWorker/ExitRangeEntry.cs | 5 + .../Questionable.LgbWorker/LevelEntry.cs | 21 + .../Questionable.LgbWorker/LgbMessageType.cs | 7 + .../LgbWorkerFraming.cs | 80 + .../LgbWorkerManifest.cs | 42 + .../LgbWorkerMessage.cs | 16 + .../Questionable.LgbWorker/PopRangeEntry.cs | 5 + .../Questionable.LgbWorker/Program.cs | 573 ++ .../Questionable.LgbWorker/TerritoryEntry.cs | 18 + .../StringListOrValueConverter.cs | 158 +- .../VectorListConverter.cs | 110 +- .../GatheringLocation.cs | 20 +- .../GatheringPointId.cs | 133 +- .../Questionable.Model.IO/PathBundle.cs | 783 +-- .../ActionConverter.cs | 114 +- .../AethernetShardConverter.cs | 288 +- .../CombatItemUseConditionConverter.cs | 6 +- .../DialogueChoiceTypeConverter.cs | 4 +- .../ElementIdConverter.cs | 69 +- .../ElementIdListConverter.cs | 132 +- .../EmoteConverter.cs | 530 +- .../EnemySpawnTypeConverter.cs | 16 +- .../ExcelRefConverter.cs | 103 +- .../ExtendedClassJobConverter.cs | 100 +- .../InteractionTypeConverter.cs | 70 +- .../JumpTypeConverter.cs | 4 +- .../LockedSkipConditionConverter.cs | 4 +- .../QuestWorkConfigConverter.cs | 229 +- .../QuestWorkModeConverter.cs | 4 +- .../SkipConditionConverter.cs | 12 +- .../StatusConverter.cs | 6 +- .../EActionExtensions.cs | 142 +- .../Questionable.Model.Questing/ElementId.cs | 258 +- .../Questionable.Model.Questing/ExcelRef.cs | 69 +- .../Questionable.Model.Questing/QuestId.cs | 10 +- .../QuestRootSerializer.cs | 627 +-- .../QuestSequence.cs | 23 +- .../Questionable.Model.Questing/QuestStep.cs | 51 +- .../QuestWorkValue.cs | 66 +- .../SkipStepConditions.cs | 137 +- .../UnlockLinkId.cs | 14 +- .../Questionable.Model/AssemblyModelLoader.cs | 68 +- .../Questionable.Model/ExpansionData.cs | 218 +- .../Questionable.Model/GatheringMath.cs | 88 +- .../Questionable.Model/LandingZoneMath.cs | 486 +- Questionable/--z__ReadOnlyArray.cs | 57 +- Questionable/--z__ReadOnlyList.cs | 57 +- .../--z__ReadOnlySingleElementList.cs | 167 +- .../BossModModule.cs | 182 +- .../ItemUseModule.cs | 470 +- .../Mount128Module.cs | 129 +- .../Mount147Module.cs | 99 +- .../RotationSolverRebornModule.cs | 151 +- .../WrathComboModule.cs | 478 +- .../WrathResultExtensions.cs | 27 +- .../BeforeDutyCondition.cs | 37 +- .../GilThresholdCondition.cs | 8 +- .../GlobalSequenceCondition.cs | 8 +- .../InventoryFullCondition.cs | 5 +- .../LevelCondition.cs | 8 +- .../QuestAcceptCondition.cs | 15 +- .../QuestCompleteCondition.cs | 80 +- .../QuestCountCondition.cs | 8 +- .../StopConditionConverter.cs | 490 +- .../TimePlayedCondition.cs | 7 +- .../CustomDeliveryNpc.cs | 6 + .../CustomDeliveryNpcData.cs | 31 + .../DeliveryNpcApproachExecutor.cs | 601 +- .../DeliveryNpcApproachTask.cs | 99 +- .../DeliveryPlannerService.cs | 751 +-- .../DeliveryRewardCalculator.cs | 408 +- .../SatisfactionSupplyTurnInExecutor.cs | 481 +- .../SatisfactionSupplyTurnInTask.cs | 108 +- .../VendorPurchaseExecutor.cs | 444 +- .../VendorPurchaseTask.cs | 234 +- .../VendorResolverService.cs | 622 +-- .../AbandonDutyCommandHandler.cs | 16 +- .../AethernetCommandHandler.cs | 478 +- .../DebugCommandExecutor.cs | 30 +- .../FestivalsCommandHandler.cs | 119 +- .../MountIdCommandHandler.cs | 59 +- .../NextQuestCommandHandler.cs | 107 +- .../QuestKillsCommandHandler.cs | 1160 +--- .../SequencesCommandHandler.cs | 62 +- .../SetupCommandHandler.cs | 24 +- .../SimulateQuestCommandHandler.cs | 148 +- .../TaxiCommandHandler.cs | 193 +- .../UnlockLinksCommandHandler.cs | 80 +- .../AutoSnipeHandler.cs | 86 +- .../ChocoboNameHandler.cs | 318 +- .../CraftworksSupplyController.cs | 298 +- .../CreditsController.cs | 653 +-- .../GCShopHandler.cs | 384 +- .../HelpUiController.cs | 422 +- .../InteractionUiController.cs | 3951 +++---------- .../QteController.cs | 242 +- .../ShopController.cs | 559 +- .../AlternateLocation.cs | 114 +- .../BlacklistedArea.cs | 177 +- .../BlacklistedPoint.cs | 176 +- .../MovementOverrideController.cs | 98 +- .../AbstractDelayedTaskExecutor.cs | 29 +- .../Mount.cs | 597 +- .../NextQuest.cs | 249 +- .../RepairGear.cs | 593 +- .../SendNotification.cs | 540 +- .../WaitCondition.cs | 129 +- .../WaitNavmesh.cs | 116 +- .../DoGather.cs | 1092 +--- .../DoGatherCollectable.cs | 864 +-- .../MoveToLandingLocation.cs | 268 +- .../Action.cs | 785 +-- .../AetherCurrent.cs | 260 +- .../AethernetShard.cs | 137 +- .../Aetheryte.cs | 219 +- .../AetheryteFreeOrFavored.cs | 216 +- .../AutoVendorPurchase.cs | 365 +- .../ClearObjectsWithAction.cs | 983 +--- .../Combat.cs | 1351 +---- .../CriticalEncounter.cs | 310 +- .../Dive.cs | 410 +- .../Duty.cs | 2507 +-------- .../DutyRetryState.cs | 39 +- .../Emote.cs | 314 +- .../EquipItem.cs | 594 +- .../EquipRecommended.cs | 1628 ++---- .../FateAction.cs | 339 +- .../FateFarming.cs | 654 +-- .../Interact.cs | 1391 +---- .../Jump.cs | 517 +- .../MeldMateria.cs | 667 +-- .../Say.cs | 184 +- .../SinglePlayerDuty.cs | 1663 +----- .../StatusOff.cs | 176 +- .../UnequipItem.cs | 267 +- .../UseItem.cs | 1106 +--- .../LandExecutor.cs | 126 +- .../LandTask.cs | 11 +- .../MoveExecutor.cs | 950 +--- .../MoveTask.cs | 256 +- .../MoveTo.cs | 925 +--- .../MoveToObject.cs | 105 +- .../MoveToObjectExecutor.cs | 377 +- .../NoOpTask.cs | 109 +- .../WaitForNearDataId.cs | 140 - .../WaitForNearDataIdExecutor.cs | 39 +- .../AethernetRide.cs | 746 +-- .../AetheryteTeleport.cs | 476 +- .../Craft.cs | 554 +- .../ExtraConditionUtils.cs | 200 +- .../Fish.cs | 826 +-- .../Gather.cs | 1279 +---- .../RedeemRewardItems.cs | 537 +- .../SkipCondition.cs | 1755 ++---- .../SkipMissingObject.cs | 147 +- .../SmartNavStep.cs | 476 +- .../StepDisabled.cs | 38 +- .../SubRegionTransport.cs | 179 +- .../SwitchClassJob.cs | 203 +- .../TaxiInteract.cs | 512 +- .../TicketTeleport.cs | 110 +- .../WaitAtEnd.cs | 1376 +---- .../WaitAtStart.cs | 113 +- .../WarpInteract.cs | 515 +- .../InteractionProgressContext.cs | 189 +- .../QuestCleanUp.cs | 507 +- .../SimpleTaskFactory.cs | 42 +- .../TaskCreator.cs | 555 +- .../TaskExecutor.cs | 125 +- .../TaskQueue.cs | 123 +- .../ExpiryUtils.cs | 89 +- .../PartyWatchDog.cs | 326 +- .../QuestWorkUtils.cs | 413 +- .../AttunementController.cs | 145 +- .../CombatController.cs | 2087 ++----- .../Questionable.Controller/CommandHandler.cs | 626 +-- .../ContextMenuController.cs | 634 +-- .../CustomDeliveryController.cs | 2062 ++----- .../DefinitionRegistry.cs | 515 +- .../EQuestResolutionType.cs | 1 - .../Questionable.Controller/FateController.cs | 285 +- .../FateDefinitionRegistry.cs | 49 +- .../FishingController.cs | 801 +-- .../GatheringController.cs | 1209 +--- .../GatheringPointRegistry.cs | 694 +-- .../GearRepairService.cs | 430 +- .../InterruptHandler.cs | 289 +- .../MiniTaskController.cs | 819 +-- .../MovementController.cs | 2547 ++------- .../QuestController.cs | 4487 +++------------ .../QuestPriorityResolver.cs | 2009 ++----- .../Questionable.Controller/QuestRegistry.cs | 1870 +------ .../QuestResolution.cs | 204 +- .../Questionable.Controller/QuestSlots.cs | 116 +- .../SeasonalDutyController.cs | 364 +- .../SeasonalDutyDefinitionRegistry.cs | 49 +- .../Questionable.Data/AetherCurrentData.cs | 134 +- .../Questionable.Data/AetherCurrentInfo.cs | 142 +- .../AetherCurrentPosition.cs | 141 +- .../Questionable.Data/AlliedSocietyData.cs | 515 +- .../AlliedSocietyMountConfiguration.cs | 140 +- .../Questionable.Data/AutoHookPresetData.cs | 53 +- .../Questionable.Data/ChangelogData.cs | 2187 ++++---- .../Questionable.Data/ClassJobUtils.cs | 1153 +--- Questionable/Questionable.Data/DutyEntry.cs | 159 +- Questionable/Questionable.Data/DutyInfo.cs | 204 +- .../Questionable.Data/DutyRegistry.cs | 287 +- .../Questionable.Data/DutyUnlockData.cs | 830 +-- Questionable/Questionable.Data/FishingData.cs | 27 +- .../Questionable.Data/FishingSpotInfo.cs | 113 +- .../Questionable.Data/GameQuestSequences.cs | 47 +- .../Questionable.Data/GatheringData.cs | 80 +- Questionable/Questionable.Data/HuntMobData.cs | 4 +- Questionable/Questionable.Data/JournalData.cs | 1151 +--- .../Questionable.Data/LgbWorkerSupervisor.cs | 239 + .../Questionable.Data/MenderDataService.cs | 217 +- Questionable/Questionable.Data/MenderNpc.cs | 139 +- .../NpcPositionCacheWarmer.cs | 211 +- Questionable/Questionable.Data/QuestChain.cs | 143 +- .../Questionable.Data/QuestChainBuilder.cs | 805 +-- .../Questionable.Data/QuestChainGraph.cs | 151 +- Questionable/Questionable.Data/QuestData.cs | 2718 +++------ .../SinglePlayerDutyEntry.cs | 152 +- .../Questionable.Data/TerritoryData.cs | 1297 +---- .../Questionable.External/ArtisanIpc.cs | 85 +- .../Questionable.External/AutoDutyIpc.cs | 400 +- .../Questionable.External/AutoHookIpc.cs | 57 +- .../Questionable.External/AutomatonIpc.cs | 213 +- .../Questionable.External/BossModIpc.cs | 1173 +--- .../Questionable.External/MoveCommand.cs | 145 +- .../NavPathfindResult.cs | 148 +- .../Questionable.External/NavStatus.cs | 155 +- .../Questionable.External/NavmeshIpc.cs | 893 +-- .../Questionable.External/PandorasBoxIpc.cs | 224 +- .../Questionable.External/PathfindQuery.cs | 144 +- .../Questionable.External/PathfindResult.cs | 148 +- .../Questionable.External/QuestionableIpc.cs | 2636 ++------- .../Questionable.External/TextAdvanceIpc.cs | 218 +- .../WigglyNavAvailability.cs | 313 +- .../Questionable.External/WigglyNavIpc.cs | 543 +- .../AethernetTeleportService.cs | 461 +- .../AetheryteFunctions.cs | 265 +- .../AlliedSocietyQuestFunctions.cs | 919 +--- .../Questionable.Functions/ChatFunctions.cs | 178 +- .../Questionable.Functions/ExcelFunctions.cs | 306 +- .../Questionable.Functions/GameFunctions.cs | 1168 +--- .../PriorityQuestInfo.cs | 140 - .../Questionable.Functions/QuestFunctions.cs | 2933 ++-------- .../Questionable.Functions/QuestReference.cs | 139 - .../Questionable.LgbWorker/LevelEntry.cs | 21 + .../Questionable.LgbWorker/LgbMessageType.cs | 7 + .../LgbWorkerFraming.cs | 80 + .../LgbWorkerManifest.cs | 42 + .../LgbWorkerMessage.cs | 16 + .../Questionable.LgbWorker/TerritoryEntry.cs | 18 + .../ChangeCategoryExtensions.cs | 164 +- .../ChangeEntry.cs | 145 +- .../ChangelogEntry.cs | 219 +- .../Questionable.Model/CofferReward.cs | 103 - .../FashionAccessoryReward.cs | 141 +- Questionable/Questionable.Model/IQuestInfo.cs | 38 +- Questionable/Questionable.Model/ItemReward.cs | 251 +- .../Questionable.Model/ItemRewardDetails.cs | 14 +- .../Questionable.Model/MinionReward.cs | 138 - .../Questionable.Model/MountReward.cs | 143 +- .../OrchestrionRollReward.cs | 143 +- .../Questionable.Model/PreviousQuestInfo.cs | 137 +- Questionable/Questionable.Model/Quest.cs | 290 +- Questionable/Questionable.Model/QuestInfo.cs | 453 +- .../Questionable.Model/QuestInfoUtils.cs | 397 +- .../Questionable.Model/QuestProgressInfo.cs | 41 +- .../Questionable.Model/StringOrRegex.cs | 74 +- .../TripleTriadCardReward.cs | 134 - .../Questionable.Model/UnlockLinkReward.cs | 132 - .../QuestionablePlayerContext.cs | 50 +- .../SmartNavReRouteService.cs | 311 +- .../SmartNavRouteEnqueuer.cs | 620 +-- .../SmartNavTaskMapper.cs | 1293 +---- .../WarpRecordingService.cs | 1428 +---- .../NotificationService.cs | 180 +- .../BasicSequenceValidator.cs | 561 +- .../CompletionFlagsValidator.cs | 549 +- .../DefinitionSchemaValidator.cs | 487 +- .../DialogueChoiceValidator.cs | 546 +- .../FateSchemaValidator.cs | 11 +- .../GameSequenceCoverageValidator.cs | 349 +- .../GatheringSchemaValidator.cs | 11 +- .../JsonSchemaValidator.cs | 1763 +----- .../LandingZoneValidator.cs | 520 +- .../NextQuestValidator.cs | 314 +- .../QuestDisabledValidator.cs | 225 +- .../SayValidator.cs | 351 +- .../SeasonalDutySchemaValidator.cs | 11 +- .../SinglePlayerInstanceValidator.cs | 325 +- .../UniqueSinglePlayerInstanceValidator.cs | 311 +- .../UniqueStartStopValidator.cs | 544 +- .../Questionable.Validation/QuestValidator.cs | 1237 +---- .../SchemaRegistrar.cs | 520 +- .../SchemaValidationHelper.cs | 667 +-- .../ValidationIssue.cs | 170 - .../ChangelogCategoryComponent.cs | 451 +- .../ChangelogEntryComponent.cs | 437 +- .../ChangelogFooterComponent.cs | 270 +- .../ChangelogHeaderComponent.cs | 697 +-- .../BlacklistConfigComponent.cs | 1038 +--- .../ConfigComponent.cs | 660 +-- .../DebugConfigComponent.cs | 436 +- .../DutyConfigComponent.cs | 1679 +----- .../GeneralConfigComponent.cs | 1526 +---- .../NavigationConfigComponent.cs | 725 +-- .../NotificationConfigComponent.cs | 624 +-- .../PluginConfigComponent.cs | 3071 ++--------- .../QuestsConfigComponent.cs | 629 +-- .../SinglePlayerDutyConfigComponent.cs | 3163 ++--------- .../StopConditionComponent.cs | 1703 ++---- .../AlliedSocietyJournalComponent.cs | 2285 ++------ .../AttunementJournalComponent.cs | 3734 ++----------- .../CustomDeliveryJournalComponent.cs | 2594 ++------- .../DutyJournalComponent.cs | 1422 +---- .../GatheringJournalComponent.cs | 2902 +--------- .../JournalUiShared.cs | 291 +- .../QuestChainComponent.cs | 4894 ++++------------- .../QuestJournalComponent.cs | 2727 ++------- .../QuestJournalUtils.cs | 1166 +--- .../QuestMapComponent.cs | 2342 ++------ .../QuestRewardComponent.cs | 1085 +--- .../ARealmRebornComponent.cs | 293 +- .../ActiveQuestComponent.cs | 4004 ++------------ .../CreationUtilsComponent.cs | 922 +--- .../EventInfoComponent.cs | 1834 +----- .../GameSequenceChainComponent.cs | 179 +- .../ManualPriorityComponent.cs | 1443 +---- .../NavigationBarComponent.cs | 331 +- .../QuestSequenceComponent.cs | 2770 ++-------- .../QuestTooltipComponent.cs | 858 +-- .../QuestValidationComponent.cs | 912 +-- .../QuickAccessButtonsComponent.cs | 873 +-- .../RemainingTasksComponent.cs | 330 +- .../SavedPresetsComponent.cs | 2159 +------- .../ValidationDetailsRenderer.cs | 1646 +----- .../EssentialSettingsStep.cs | 203 +- .../Questionable.Windows.Setup/PluginsStep.cs | 22 +- .../Questionable.Windows.Setup/ReadyStep.cs | 70 +- .../Questionable.Windows.Setup/WelcomeStep.cs | 55 +- .../DataProbesPanel.cs | 3008 ++-------- .../SubRegionMapPanel.cs | 790 +-- .../CycleSelectionUi.cs | 190 +- .../QuestSelector.cs | 261 +- .../ThrottledClipboard.cs | 28 +- .../Questionable.Windows/ChangelogWindow.cs | 305 +- .../Questionable.Windows/ConfigWindow.cs | 153 +- .../FateSelectionWindow.cs | 1610 +----- .../JournalProgressWindow.cs | 274 +- .../OneTimeSetupWindow.cs | 677 +-- .../QuestSelectionWindow.cs | 1250 +---- .../QuestSequenceWindow.cs | 131 +- .../QuestValidationWindow.cs | 41 +- .../Questionable.Windows/QuestWindow.cs | 705 +-- .../SeasonalDutySelectionWindow.cs | 1492 +---- .../Questionable.Windows/SidebarNav.cs | 613 +-- .../Questionable.Windows/ThemedWindow.cs | 105 +- .../Questionable.Windows/UiThemeUtils.cs | 3195 ++--------- Questionable/Questionable.Windows/UiUtils.cs | 284 +- Questionable/Questionable.csproj | 24 +- Questionable/Questionable/ConfigMigration.cs | 265 +- Questionable/Questionable/Configuration.cs | 89 +- .../Questionable/DalamudInitializer.cs | 292 +- .../Questionable/QuestionablePlugin.cs | 855 +-- .../ServiceCollectionExtensions.cs | 7 +- ...8984F5D534F6__MultipleWhitespaceRegex_0.cs | 180 +- ...ECE485FE299B23B08984F5D534F6__Utilities.cs | 19 +- ...nable.SeasonalDutyPaths.SeasonalDutyBundle | Bin 598 -> 598 bytes .../AssemblySeasonalDutyDefinitionLoader.cs | 125 +- .../PathBundleSecret.cs | 70 +- .../SmartNav.Data.chocobo-taxi-stands.bin | Bin 2558 -> 2558 bytes .../SmartNav.Data.derived-arrivals.bin | Bin 12932 -> 12932 bytes .../SmartNav.Data.teleport-tickets.bin | Bin 446 -> 446 bytes .../SmartNav.Data.warp-destinations.bin | Bin 16421 -> 16421 bytes .../SmartNav.Data.zone-sub-regions.bin | Bin 449 -> 449 bytes .../AssemblyDerivedArrivalLoader.cs | 9 +- .../SmartNav.Data/AssemblyTaxiStandLoader.cs | 4 +- .../AssemblyTeleportTicketLoader.cs | 14 +- .../AssemblyWarpDestinationLoader.cs | 21 +- .../AssemblyZoneSubRegionLoader.cs | 14 +- .../SmartNav.Data/DataBundleSecret.cs | 72 +- .../SmartNav.Data/SmartNavResources.cs | 314 +- .../AetheryteConverter.cs | 214 +- .../SmartNav.Model.Converter/EnumConverter.cs | 52 +- .../VectorConverter.cs | 174 +- .../SubRegionDefinition.cs | 107 +- .../SmartNav.Model.Navigation/TriggerBox.cs | 139 +- .../EAetheryteLocationExtensions.cs | 31 +- .../SmartNav.Model/ModelResources.cs | 36 +- SmartNav.Model/SmartNav.Model/MovementData.cs | 61 +- SmartNav/--z__ReadOnlyArray.cs | 57 +- SmartNav/--z__ReadOnlySingleElementList.cs | 167 +- SmartNav/SmartNav.Data/AetheryteData.cs | 246 +- SmartNav/SmartNav.Data/ExitRangeEntry.cs | 166 +- .../SmartNav.Data/LgbZoneBoundarySource.cs | 481 +- SmartNav/SmartNav.Data/PopRangeEntry.cs | 139 +- SmartNav/SmartNav.Data/SmartNavDataOptions.cs | 146 +- .../SmartNav.Data/TaxiStandDataService.cs | 385 +- .../SmartNav.Data/TeleportTicketService.cs | 672 +-- SmartNav/SmartNav.Data/WarpDataService.cs | 2456 ++------- .../SmartNav.Data/ZoneBoundaryDerivation.cs | 967 +--- .../ZoneBoundaryPositionOverride.cs | 142 +- .../SmartNav.Data/ZoneSubRegionService.cs | 176 +- SmartNav/SmartNav.Graph/NavEdge.cs | 155 +- SmartNav/SmartNav.Graph/NavGraph.cs | 251 +- SmartNav/SmartNav.Graph/NavNode.cs | 1412 +---- SmartNav/SmartNav.csproj | 12 +- SmartNav/SmartNav/CostCalculator.cs | 67 +- SmartNav/SmartNav/NavGraphBuilder.cs | 1027 +--- SmartNav/SmartNav/NavGraphView.cs | 1741 +----- SmartNav/SmartNav/NavInstruction.cs | 1469 +---- SmartNav/SmartNav/NavRouter.cs | 712 +-- SmartNav/SmartNav/PlayerNavState.cs | 66 +- SmartNav/SmartNav/PlayerNavStateBuilder.cs | 667 +-- SmartNav/SmartNav/ReRouteDecision.cs | 452 +- SmartNav/SmartNav/ReRoutePolicy.cs | 187 +- SmartNav/SmartNav/RouteInstructionBuilder.cs | 582 +- SmartNav/SmartNav/RouteResult.cs | 138 - SmartNav/SmartNav/RouteSegment.cs | 172 +- SmartNav/SmartNav/WarpFailureTracker.cs | 204 +- 522 files changed, 41082 insertions(+), 211592 deletions(-) create mode 100644 Questionable.LgbWorker/Questionable.LgbWorker.csproj create mode 100644 Questionable.LgbWorker/Questionable.LgbWorker/ExitRangeEntry.cs create mode 100644 Questionable.LgbWorker/Questionable.LgbWorker/LevelEntry.cs create mode 100644 Questionable.LgbWorker/Questionable.LgbWorker/LgbMessageType.cs create mode 100644 Questionable.LgbWorker/Questionable.LgbWorker/LgbWorkerFraming.cs create mode 100644 Questionable.LgbWorker/Questionable.LgbWorker/LgbWorkerManifest.cs create mode 100644 Questionable.LgbWorker/Questionable.LgbWorker/LgbWorkerMessage.cs create mode 100644 Questionable.LgbWorker/Questionable.LgbWorker/PopRangeEntry.cs create mode 100644 Questionable.LgbWorker/Questionable.LgbWorker/Program.cs create mode 100644 Questionable.LgbWorker/Questionable.LgbWorker/TerritoryEntry.cs create mode 100644 Questionable/Questionable.Controller.CustomDelivery/CustomDeliveryNpc.cs create mode 100644 Questionable/Questionable.Controller.CustomDelivery/CustomDeliveryNpcData.cs create mode 100644 Questionable/Questionable.Data/LgbWorkerSupervisor.cs create mode 100644 Questionable/Questionable.LgbWorker/LevelEntry.cs create mode 100644 Questionable/Questionable.LgbWorker/LgbMessageType.cs create mode 100644 Questionable/Questionable.LgbWorker/LgbWorkerFraming.cs create mode 100644 Questionable/Questionable.LgbWorker/LgbWorkerManifest.cs create mode 100644 Questionable/Questionable.LgbWorker/LgbWorkerMessage.cs create mode 100644 Questionable/Questionable.LgbWorker/TerritoryEntry.cs diff --git a/FatePaths/Questionable.FatePaths.FateBundle b/FatePaths/Questionable.FatePaths.FateBundle index 7848e7b03dab1d3fc051aca4510609fe51e088af..88a94ccf2a70ec27830c28e602c66bf7c6474fa8 100644 GIT binary patch literal 540 zcmV+%0^|KH)(ojk5=rYbk(3s?Y{pW9&>oh~#l!~Tb2q)dm^o7JA2-I;@q&AIz?b{D z!HA-+&)Zc{sWL*t#^Q5iSLQ&btJZoSIZjDV(Dh;*FQCG>BY#XKWD@U-NjteQ(j%2q zs5Z$%%>5i#+>?_|)VuNZ7}$>4=Uybl_pN#vxytN3aR_2G@uv$j%Ij|iy(3=U_JDni z?+^>C(?$9%qxB+FX{bmrrsf-)EX}9nnvL`0Fqf4j>t#Zxv%bUHbc>Rc*Y{6Ne-}ZI zhsPxMp<6o4_Y=A|+|gC)nFB&FB6R|OgfBV)8o}l(Dou)!VOr865qI^4{Ro1+Tjy*FNzDUp?UKp5uFrWHt;(|-Jm@bX8L8AFj(dLaPp>)SM| zBRYgFK4|Wn@7%$zzGOi}uVmJMC#lg_RPtED5z?FP=jXDO_i0Fb;BjyX*yn|*K`%SK zVbkvu0PkN{7;i?^G#xn) zrS1mTDb6t{H+mB_Xv~6?M`_r2JPVpPYh|$c8|)d{rqk8&rMnHw8UbRYTfT@V7p9?M zcPIg_2C30bc6-|TLlT<3e^U>ll%hupJc$)BcWg^h!R_8~vz!FT#@n&Co^9l-a2H5~ eVn=&FDFF7qq7IXH1VaZ%{HQ{Od0=fwxZjqn*rN?`z2w92z21eJ+x@@Ba%Iv-qvFPX!rzgvO>@n_FhDQ&BvgEpcS7ge za%~I5h_U9B6(C<97#NT+$`zyhNyMR#tg;=)gXUgv|3`dr!^XT6m(;o#n@9q17w{G0 zj#=76*NM_DtBXo<4BugryfRQA#uS zpH40UAGQ+aWBIwcEkKi6l!l(OG2M3pgS?f+`2Ge!8PI_wFaq6ZS9!YOgiCqPIgiuk zQnhdNL33W$&0Kfb*Rmolr$9(+E5Hf5$E7jISue;pHG3VBGc=|xw5!+grdR_cJZ!Bl z1J^IDRSU=PnxSxTIARi?rK4wTk)a0Le(`O94wY8F>xm8ZAdx+bNOw2v91ZTdW=e}a zR^~zuZ6~aeL37$&A*7DMw(}F+3h=}WVK_hb1jg5cG$9r^?fwni056277+oq#IkSc? etEv4gyWcbg$Z@rtFO(657022072)); - } - } + internal static Stream FateDefinitionSchema => typeof(AssemblyFateDefinitionLoader).Assembly.GetManifestResourceStream("Questionable.FatePaths.FateDefinitionSchema"); internal static IReadOnlyDictionary GetDefinitions() { return Definitions.Value; } - [MethodImpl(MethodImplOptions.NoInlining)] private static IReadOnlyDictionary LoadDefinitions() { - Stopwatch stopwatch = _200F_202C_206F_200F_202B_202D_200C_202A_202A_206E_202B_202D_206D_202B_200F_200F_206E_206A_200F_200E_202E_206A_206C_206E_206E_206E_202B_206B_200F_206B_206F_200B_206A_206C_202E_206F_202A_200C_206B_206D_202E(); - Stream stream = _206B_200B_202A_202A_200E_206D_200D_206B_202C_200B_200F_202D_202D_206D_200D_200B_202A_202B_200F_202D_202B_200E_206B_206D_202C_206E_206C_202C_206D_200C_202A_206E_200B_200C_202A_200E_206D_200D_200C_206B_202E(_206D_202B_206F_206C_200B_202C_206C_200D_200D_200D_206D_200E_202A_200D_202C_206F_200C_206B_202E_202B_202B_200B_202E_202E_202E_206D_202D_206C_202B_206A_202C_200E_202A_202A_206E_206B_206E_202C_200D_200D_202E(_200C_202A_202B_206F_206B_200B_202E_202C_206E_200E_206C_200C_200E_206D_206F_206B_200D_206B_206B_200C_200E_202B_202D_206B_206E_202A_202E_206C_206B_202C_200E_200C_206F_206C_206B_206C_206F_202E_206F_200D_202E(typeof(AssemblyFateDefinitionLoader).TypeHandle)), global::_003CModule_003E._206A_200C_202A_206F_206C_206A_202D_206C_206B_200E_200D_202D_200E_206B_202D_206F_206A_200B_202B_206B_200E_202E_206E_202E_206C_206A_200C_206F_206E_200B_202D_200F_206A_206A_200C_200B_200E_206B_202C_202E_202E(1087605776)); - try + Stopwatch stopwatch = Stopwatch.StartNew(); + using Stream stream = typeof(AssemblyFateDefinitionLoader).Assembly.GetManifestResourceStream("Questionable.FatePaths.FateBundle"); + byte[] array = PathBundleSecret.Key(); + List> list = PathBundle.Deserialize(stream, array); + CryptographicOperations.ZeroMemory(array); + Dictionary dictionary = new Dictionary(list.Count); + foreach (var (s, value) in list) { - byte[] array = PathBundleSecret.Key(); - List> list = PathBundle.Deserialize(stream, array); - _206B_202D_202C_200F_206D_202E_202C_200F_206B_202C_206E_202A_200B_206E_206E_206E_200B_200D_206F_206B_206B_202C_202E_202E_202D_206A_200C_202E_202C_202E_206F_202D_202A_206D_202C_202D_206D_206B_202C_202E((Span)array); - Dictionary dictionary = new Dictionary(list.Count); - using (List>.Enumerator enumerator = list.GetEnumerator()) - { - int num = 2495585; - while (true) - { - int num2 = num; - int num3 = 2495585; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 2495585; - break; - case 3: - var (s, value) = (KeyValuePair)(ref enumerator.Current); - dictionary[ushort.Parse(s, _206C_206D_202D_200D_200C_202C_206D_206B_200B_200C_200F_202B_206B_200E_206A_202E_200E_206A_200D_206D_202D_206F_206D_200E_200E_200B_206B_200B_206E_202D_202B_202B_206D_202D_206D_202E_202C_202B_200D_206D_202E())] = value; - num = 2495585; - break; - case 0: - num = (enumerator.MoveNext() ? 2495586 : 2495584); - break; - case 1: - goto end_IL_005c; - } - continue; - end_IL_005c: - break; - } - } - DecodeDuration = _206C_202E_200B_202B_202D_202D_202D_202E_206E_202C_200D_202C_200D_202A_200C_202A_206C_200F_206D_206B_202E_202B_200C_206C_200F_200B_202E_206E_202B_200D_200E_206F_202D_200B_200E_202D_200C_202B_200E_202D_202E(stopwatch); - return dictionary; + dictionary[ushort.Parse(s, CultureInfo.InvariantCulture)] = value; } - finally - { - int num = ((stream == null) ? (-1196840161) : (-1196840164)); - while (true) - { - int num7 = num; - int num3 = -1196840163; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1196840164; - break; - case 1: - _206C_206E_202A_206A_202A_202B_202B_206D_206E_200E_202A_202E_200F_202B_206D_206E_200F_206F_200E_200B_200D_202E_202D_206D_206E_202B_200D_202E_200C_206D_202A_202C_202A_202B_200B_200E_200C_202E_206A_206F_202E((IDisposable)stream); - num = -1196840161; - break; - case 2: - goto end_IL_0143; - } - continue; - end_IL_0143: - break; - } - } - } - - static Type _200C_202A_202B_206F_206B_200B_202E_202C_206E_200E_206C_200C_200E_206D_206F_206B_200D_206B_206B_200C_200E_202B_202D_206B_206E_202A_202E_206C_206B_202C_200E_200C_206F_206C_206B_206C_206F_202E_206F_200D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static Assembly _206D_202B_206F_206C_200B_202C_206C_200D_200D_200D_206D_200E_202A_200D_202C_206F_200C_206B_202E_202B_202B_200B_202E_202E_202E_206D_202D_206C_202B_206A_202C_200E_202A_202A_206E_206B_206E_202C_200D_200D_202E(Type P_0) - { - return P_0.Assembly; - } - - static Stream _206B_200B_202A_202A_200E_206D_200D_206B_202C_200B_200F_202D_202D_206D_200D_200B_202A_202B_200F_202D_202B_200E_206B_206D_202C_206E_206C_202C_206D_200C_202A_206E_200B_200C_202A_200E_206D_200D_200C_206B_202E(Assembly P_0, string P_1) - { - return P_0.GetManifestResourceStream(P_1); - } - - static Stopwatch _200F_202C_206F_200F_202B_202D_200C_202A_202A_206E_202B_202D_206D_202B_200F_200F_206E_206A_200F_200E_202E_206A_206C_206E_206E_206E_202B_206B_200F_206B_206F_200B_206A_206C_202E_206F_202A_200C_206B_206D_202E() - { - return Stopwatch.StartNew(); - } - - static void _206B_202D_202C_200F_206D_202E_202C_200F_206B_202C_206E_202A_200B_206E_206E_206E_200B_200D_206F_206B_206B_202C_202E_202E_202D_206A_200C_202E_202C_202E_206F_202D_202A_206D_202C_202D_206D_206B_202C_202E(Span P_0) - { - CryptographicOperations.ZeroMemory(P_0); - } - - static CultureInfo _206C_206D_202D_200D_200C_202C_206D_206B_200B_200C_200F_202B_206B_200E_206A_202E_200E_206A_200D_206D_202D_206F_206D_200E_200E_200B_206B_200B_206E_202D_202B_202B_206D_202D_206D_202E_202C_202B_200D_206D_202E() - { - return CultureInfo.InvariantCulture; - } - - static TimeSpan _206C_202E_200B_202B_202D_202D_202D_202E_206E_202C_200D_202C_200D_202A_200C_202A_206C_200F_206D_206B_202E_202B_200C_206C_200F_200B_202E_206E_202B_200D_200E_206F_202D_200B_200E_202D_200C_202B_200E_202D_202E(Stopwatch P_0) - { - return P_0.Elapsed; - } - - static void _206C_206E_202A_206A_202A_202B_202B_206D_206E_200E_202A_202E_200F_202B_206D_206E_200F_206F_200E_200B_200D_202E_202D_206D_206E_202B_200D_202E_200C_206D_202A_202C_202A_202B_200B_200E_200C_202E_206A_206F_202E(IDisposable P_0) - { - P_0.Dispose(); + DecodeDuration = stopwatch.Elapsed; + return dictionary; } } diff --git a/FatePaths/Questionable.FatePaths/PathBundleSecret.cs b/FatePaths/Questionable.FatePaths/PathBundleSecret.cs index bf4ffe2..37ddf70 100644 --- a/FatePaths/Questionable.FatePaths/PathBundleSecret.cs +++ b/FatePaths/Questionable.FatePaths/PathBundleSecret.cs @@ -1,64 +1,30 @@ -using System; -using System.Runtime.CompilerServices; - namespace Questionable.FatePaths; internal static class PathBundleSecret { - private static readonly byte[] A; + private static readonly byte[] A = new byte[32] + { + 184, 146, 158, 4, 12, 188, 14, 129, 154, 207, + 124, 249, 11, 86, 207, 158, 174, 9, 114, 165, + 243, 163, 70, 242, 33, 231, 45, 140, 119, 185, + 162, 26 + }; - private static readonly byte[] B; + private static readonly byte[] B = new byte[32] + { + 150, 86, 230, 115, 69, 121, 30, 79, 176, 162, + 216, 139, 248, 83, 68, 111, 173, 223, 203, 79, + 42, 143, 208, 219, 192, 216, 102, 249, 57, 147, + 95, 21 + }; internal static byte[] Key() { byte[] array = new byte[A.Length]; - int num = 0; - int num2 = -1653942217; - while (true) + for (int i = 0; i < array.Length; i++) { - int num3 = num2; - int num4 = -1653942219; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 3: - num2 = -1653942217; - break; - case 2: - num2 = ((num < array.Length) ? (-1653942220) : (-1653942219)); - break; - case 0: - return array; - case 1: - { - int num6 = num; - byte num7 = A[num]; - num4 = B[num]; - num5 = num7; - array[num6] = (byte)((num5 | num4) - (num5 & num4)); - int num8 = num; - num4 = 1; - num5 = num8; - num = (num5 | num4) + (num5 & num4); - num2 = -1653942217; - break; - } - } + array[i] = (byte)(A[i] ^ B[i]); } - } - - static PathBundleSecret() - { - byte[] array = new byte[32]; - _206D_202B_202B_206F_202C_206D_200C_206E_202C_202E_200D_200F_202B_200C_200C_206D_202C_206F_206A_202E_206F_206B_200C_200D_206E_200C_206C_200B_200E_200F_202C_200F_200D_200D_200F_202E_200B_200D_206D_202A_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - A = array; - byte[] array2 = new byte[32]; - _206D_202B_202B_206F_202C_206D_200C_206E_202C_202E_200D_200F_202B_200C_200C_206D_202C_206F_206A_202E_206F_206B_200C_200D_206E_200C_206C_200B_200E_200F_202C_200F_200D_200D_200F_202E_200B_200D_206D_202A_202E((Array)array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - B = array2; - } - - static void _206D_202B_202B_206F_202C_206D_200C_206E_202C_202E_200D_200F_202B_200C_200C_206D_202C_206F_206A_202E_206F_206B_200C_200D_206E_200C_206C_200B_200E_200F_202C_200F_200D_200D_200F_202E_200B_200D_206D_202A_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); + return array; } } diff --git a/GatheringPaths/Questionable.GatheringPaths.GatheringBundle b/GatheringPaths/Questionable.GatheringPaths.GatheringBundle index 2d0d2df29a67b9a528f249ea34992bf5560c672d..6eae81e6870cb6e72e8032289481658dc44c4972 100644 GIT binary patch literal 101669 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 literal 101784 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 Ixz+>)GK-T@3jhEB diff --git a/GatheringPaths/Questionable.GatheringPaths/AssemblyGatheringLocationLoader.cs b/GatheringPaths/Questionable.GatheringPaths/AssemblyGatheringLocationLoader.cs index 8e7d44f..b1acb0c 100644 --- a/GatheringPaths/Questionable.GatheringPaths/AssemblyGatheringLocationLoader.cs +++ b/GatheringPaths/Questionable.GatheringPaths/AssemblyGatheringLocationLoader.cs @@ -3,8 +3,6 @@ using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.IO; -using System.Reflection; -using System.Runtime.CompilerServices; using System.Security.Cryptography; using System.Threading; using Questionable.Model.Gathering; @@ -18,129 +16,26 @@ internal static class AssemblyGatheringLocationLoader internal static TimeSpan? DecodeDuration { get; private set; } - internal static Stream GatheringSchema - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return _202D_200C_200E_200F_202A_200B_206C_202B_200D_200D_202D_202D_200B_200D_202A_202A_200B_206E_200B_202D_202D_200D_202A_206A_206E_202C_200F_206C_200F_206E_206C_200D_206B_206A_202C_206D_206C_202E_200F_200C_202E(_202A_202D_206A_206D_206A_200D_200F_200D_206E_202D_200C_200D_202A_202C_206F_200C_200C_200B_200D_200F_206F_202A_206A_200F_206E_200B_200E_206C_200E_200D_202C_200B_202D_202C_206C_206E_202A_206E_206D_206B_202E(_200E_202C_200C_200B_206D_206E_202A_206F_206B_202A_202C_200F_206B_202E_206D_206F_202E_202D_200F_206B_206D_206E_206B_206D_206C_200C_200F_202A_202B_200E_206E_202B_200B_202A_202E_202C_200C_202E_206D_202C_202E(typeof(AssemblyGatheringLocationLoader).TypeHandle)), global::_003CModule_003E._202B_200D_206E_200E_206C_206E_206B_200F_202C_202C_202C_206F_202E_202A_202C_206B_206A_200F_206B_206F_202C_206C_202A_202E_202D_206D_202B_200D_200B_202A_206E_200B_206A_206D_202B_206D_206A_202D_206E_206B_202E<string>(657022072)); - } - } + internal static Stream GatheringSchema => typeof(AssemblyGatheringLocationLoader).Assembly.GetManifestResourceStream("Questionable.GatheringPaths.GatheringLocationSchema"); internal static IReadOnlyDictionary<ushort, GatheringRoot> GetLocations() { return Locations.Value; } - [MethodImpl(MethodImplOptions.NoInlining)] private static IReadOnlyDictionary<ushort, GatheringRoot> LoadLocations() { - Stopwatch stopwatch = _202A_202A_202D_206C_206F_200F_206B_200C_200B_202E_206D_200E_206C_206A_200D_202B_202B_206D_200B_200C_200E_202E_202A_206F_206A_206D_206F_202B_206F_200C_206A_202B_206A_202D_206F_206D_202D_206D_202B_202A_202E(); - Stream stream = _202D_200C_200E_200F_202A_200B_206C_202B_200D_200D_202D_202D_200B_200D_202A_202A_200B_206E_200B_202D_202D_200D_202A_206A_206E_202C_200F_206C_200F_206E_206C_200D_206B_206A_202C_206D_206C_202E_200F_200C_202E(_202A_202D_206A_206D_206A_200D_200F_200D_206E_202D_200C_200D_202A_202C_206F_200C_200C_200B_200D_200F_206F_202A_206A_200F_206E_200B_200E_206C_200E_200D_202C_200B_202D_202C_206C_206E_202A_206E_206D_206B_202E(_200E_202C_200C_200B_206D_206E_202A_206F_206B_202A_202C_200F_206B_202E_206D_206F_202E_202D_200F_206B_206D_206E_206B_206D_206C_200C_200F_202A_202B_200E_206E_202B_200B_202A_202E_202C_200C_202E_206D_202C_202E(typeof(AssemblyGatheringLocationLoader).TypeHandle)), global::_003CModule_003E._206C_202D_202B_202A_206F_206F_202A_202E_206E_206C_200B_202C_206B_202A_206A_202E_206C_200B_202E_200C_200D_202A_206D_206D_206F_206D_202E_206C_202C_200F_206F_202A_200E_200F_206B_200B_200D_206E_206F_206F_202E<string>(-1881698)); - try + Stopwatch stopwatch = Stopwatch.StartNew(); + using Stream stream = typeof(AssemblyGatheringLocationLoader).Assembly.GetManifestResourceStream("Questionable.GatheringPaths.GatheringBundle"); + byte[] array = PathBundleSecret.Key(); + List<KeyValuePair<string, GatheringRoot>> list = PathBundle.Deserialize<GatheringRoot>(stream, array); + CryptographicOperations.ZeroMemory(array); + Dictionary<ushort, GatheringRoot> dictionary = new Dictionary<ushort, GatheringRoot>(list.Count); + foreach (var (s, value) in list) { - byte[] array = PathBundleSecret.Key(); - List<KeyValuePair<string, GatheringRoot>> list = PathBundle.Deserialize<GatheringRoot>(stream, array); - _206E_200D_206E_200B_202D_202E_202D_206C_206B_206F_200E_200E_206D_200D_206F_200C_206B_202B_206B_202D_202C_206B_200B_200B_200C_202C_200E_206F_200D_200C_200F_206E_202C_206E_206E_206F_206C_202A_206A_202E_202E((Span<byte>)array); - Dictionary<ushort, GatheringRoot> dictionary = new Dictionary<ushort, GatheringRoot>(list.Count); - using (List<KeyValuePair<string, GatheringRoot>>.Enumerator enumerator = list.GetEnumerator()) - { - int num = 2495585; - while (true) - { - int num2 = num; - int num3 = 2495585; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 2495585; - break; - case 3: - var (s, value) = (KeyValuePair<string, GatheringRoot>)(ref enumerator.Current); - dictionary[ushort.Parse(s, _206B_202B_200D_200E_202E_202D_202D_206E_206D_206A_200E_206D_202B_206D_200C_202D_206B_200F_200D_202B_202E_202E_206C_202B_200F_206F_206C_200D_200F_200B_206E_200C_202E_206B_202D_206E_200B_200D_200B_206E_202E())] = value; - num = 2495585; - break; - case 0: - num = (enumerator.MoveNext() ? 2495586 : 2495584); - break; - case 1: - goto end_IL_005c; - } - continue; - end_IL_005c: - break; - } - } - DecodeDuration = _200C_206E_202D_202A_206D_202C_200B_202E_200C_200F_202D_206B_200B_206A_200C_202B_206F_202C_202E_202A_206F_200C_206D_202A_200F_206C_202D_202A_206C_206A_206A_202D_206E_206C_206E_206A_206A_206E_206F_202B_202E(stopwatch); - return dictionary; + dictionary[ushort.Parse(s, CultureInfo.InvariantCulture)] = value; } - finally - { - int num = ((stream == null) ? (-1196840161) : (-1196840164)); - while (true) - { - int num7 = num; - int num3 = -1196840163; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1196840164; - break; - case 1: - _202B_202A_200B_200F_206F_206C_206E_200E_206D_202C_202C_202C_206B_206D_202C_206D_202D_200D_200F_202C_206C_202A_202E_202B_206A_200C_202E_202C_202A_206D_206C_202B_206E_206A_202C_206A_202D_202C_202E_200F_202E((IDisposable)stream); - num = -1196840161; - break; - case 2: - goto end_IL_0143; - } - continue; - end_IL_0143: - break; - } - } - } - - static Type _200E_202C_200C_200B_206D_206E_202A_206F_206B_202A_202C_200F_206B_202E_206D_206F_202E_202D_200F_206B_206D_206E_206B_206D_206C_200C_200F_202A_202B_200E_206E_202B_200B_202A_202E_202C_200C_202E_206D_202C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static Assembly _202A_202D_206A_206D_206A_200D_200F_200D_206E_202D_200C_200D_202A_202C_206F_200C_200C_200B_200D_200F_206F_202A_206A_200F_206E_200B_200E_206C_200E_200D_202C_200B_202D_202C_206C_206E_202A_206E_206D_206B_202E(Type P_0) - { - return P_0.Assembly; - } - - static Stream _202D_200C_200E_200F_202A_200B_206C_202B_200D_200D_202D_202D_200B_200D_202A_202A_200B_206E_200B_202D_202D_200D_202A_206A_206E_202C_200F_206C_200F_206E_206C_200D_206B_206A_202C_206D_206C_202E_200F_200C_202E(Assembly P_0, string P_1) - { - return P_0.GetManifestResourceStream(P_1); - } - - static Stopwatch _202A_202A_202D_206C_206F_200F_206B_200C_200B_202E_206D_200E_206C_206A_200D_202B_202B_206D_200B_200C_200E_202E_202A_206F_206A_206D_206F_202B_206F_200C_206A_202B_206A_202D_206F_206D_202D_206D_202B_202A_202E() - { - return Stopwatch.StartNew(); - } - - static void _206E_200D_206E_200B_202D_202E_202D_206C_206B_206F_200E_200E_206D_200D_206F_200C_206B_202B_206B_202D_202C_206B_200B_200B_200C_202C_200E_206F_200D_200C_200F_206E_202C_206E_206E_206F_206C_202A_206A_202E_202E(Span<byte> P_0) - { - CryptographicOperations.ZeroMemory(P_0); - } - - static CultureInfo _206B_202B_200D_200E_202E_202D_202D_206E_206D_206A_200E_206D_202B_206D_200C_202D_206B_200F_200D_202B_202E_202E_206C_202B_200F_206F_206C_200D_200F_200B_206E_200C_202E_206B_202D_206E_200B_200D_200B_206E_202E() - { - return CultureInfo.InvariantCulture; - } - - static TimeSpan _200C_206E_202D_202A_206D_202C_200B_202E_200C_200F_202D_206B_200B_206A_200C_202B_206F_202C_202E_202A_206F_200C_206D_202A_200F_206C_202D_202A_206C_206A_206A_202D_206E_206C_206E_206A_206A_206E_206F_202B_202E(Stopwatch P_0) - { - return P_0.Elapsed; - } - - static void _202B_202A_200B_200F_206F_206C_206E_200E_206D_202C_202C_202C_206B_206D_202C_206D_202D_200D_200F_202C_206C_202A_202E_202B_206A_200C_202E_202C_202A_206D_206C_202B_206E_206A_202C_206A_202D_202C_202E_200F_202E(IDisposable P_0) - { - P_0.Dispose(); + DecodeDuration = stopwatch.Elapsed; + return dictionary; } } diff --git a/GatheringPaths/Questionable.GatheringPaths/PathBundleSecret.cs b/GatheringPaths/Questionable.GatheringPaths/PathBundleSecret.cs index 4c6d181..6e96944 100644 --- a/GatheringPaths/Questionable.GatheringPaths/PathBundleSecret.cs +++ b/GatheringPaths/Questionable.GatheringPaths/PathBundleSecret.cs @@ -1,64 +1,30 @@ -using System; -using System.Runtime.CompilerServices; - namespace Questionable.GatheringPaths; internal static class PathBundleSecret { - private static readonly byte[] A; + private static readonly byte[] A = new byte[32] + { + 145, 72, 249, 36, 189, 185, 130, 238, 193, 10, + 202, 232, 4, 205, 253, 37, 116, 120, 105, 80, + 155, 225, 237, 122, 124, 183, 185, 180, 222, 128, + 163, 58 + }; - private static readonly byte[] B; + private static readonly byte[] B = new byte[32] + { + 38, 241, 153, 134, 236, 129, 153, 181, 53, 177, + 92, 29, 47, 248, 180, 1, 80, 8, 68, 19, + 82, 214, 85, 67, 101, 195, 46, 138, 196, 69, + 206, 117 + }; internal static byte[] Key() { byte[] array = new byte[A.Length]; - int num = 0; - int num2 = -1653942217; - while (true) + for (int i = 0; i < array.Length; i++) { - int num3 = num2; - int num4 = -1653942219; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 3: - num2 = -1653942217; - break; - case 2: - num2 = ((num < array.Length) ? (-1653942220) : (-1653942219)); - break; - case 0: - return array; - case 1: - { - int num6 = num; - byte num7 = A[num]; - num4 = B[num]; - num5 = num7; - array[num6] = (byte)((num5 | num4) - (num5 & num4)); - int num8 = num; - num4 = 1; - num5 = num8; - num = (num5 | num4) + (num5 & num4); - num2 = -1653942217; - break; - } - } + array[i] = (byte)(A[i] ^ B[i]); } - } - - static PathBundleSecret() - { - byte[] array = new byte[32]; - _200C_200B_206F_200D_202D_200C_200D_202D_206E_206B_202D_206A_206A_206E_206E_200F_200C_202B_206E_202A_200E_200D_202C_202D_202E_202B_200C_206F_206D_206F_202A_206A_206D_200C_206C_202B_206F_200E_202C_206F_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - A = array; - byte[] array2 = new byte[32]; - _200C_200B_206F_200D_202D_200C_200D_202D_206E_206B_202D_206A_206A_206E_206E_200F_200C_202B_206E_202A_200E_200D_202C_202D_202E_202B_200C_206F_206D_206F_202A_206A_206D_200C_206C_202B_206F_200E_202C_206F_202E((Array)array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - B = array2; - } - - static void _200C_200B_206F_200D_202D_200C_200D_202D_206E_206B_202D_206A_206A_206E_206E_200F_200C_202B_206E_202A_200E_200D_202C_202D_202E_202B_200C_206F_206D_206F_202A_206A_206D_200C_206C_202B_206F_200E_202C_206F_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); + return array; } } diff --git a/LLib/--z__ReadOnlyArray.cs b/LLib/--z__ReadOnlyArray.cs index 2b6d9b6..840f515 100644 --- a/LLib/--z__ReadOnlyArray.cs +++ b/LLib/--z__ReadOnlyArray.cs @@ -20,7 +20,7 @@ internal sealed class _003C_003Ez__ReadOnlyArray<T> : IEnumerable, ICollection, } set { - throw _206B_206D_206B_202E_200D_206A_202C_200D_202C_206E_206B_202C_200F_202B_206C_206F_206A_200C_202B_206C_202D_206D_206A_202A_202B_206B_200E_206C_206E_202E_206F_200D_200B_200C_200B_200C_202E_200C_206F_206B_202E(); + throw new NotSupportedException(); } } @@ -44,7 +44,7 @@ internal sealed class _003C_003Ez__ReadOnlyArray<T> : IEnumerable, ICollection, } set { - throw _206B_206D_206B_202E_200D_206A_202C_200D_202C_206E_206B_202C_200F_202B_206C_206F_206A_200C_202B_206C_202D_206D_206A_202A_202B_206B_200E_206C_206E_202E_206F_200D_200B_200C_200B_200C_202E_200C_206F_206B_202E(); + throw new NotSupportedException(); } } @@ -55,47 +55,47 @@ internal sealed class _003C_003Ez__ReadOnlyArray<T> : IEnumerable, ICollection, IEnumerator IEnumerable.GetEnumerator() { - return _206B_206C_206A_206E_200B_202D_200B_202E_200C_200E_202E_200D_202C_202A_202B_200F_202C_200D_206E_200E_200C_200E_200F_202D_200F_202E_200E_200D_202A_200F_200F_202B_206D_202D_206B_202B_200D_202E_206E_202E_202E((IEnumerable)_items); + return ((IEnumerable)_items).GetEnumerator(); } void ICollection.CopyTo(Array array, int index) { - _200E_202C_200B_206C_202D_206C_206A_206D_200B_206A_202D_200B_200B_200C_206D_200C_200E_202D_200D_206B_206C_206A_206F_206D_206D_202A_206D_206E_202C_206A_202B_206B_206D_202D_202D_206A_206F_206D_200E_206A_202E((ICollection)_items, array, index); + ((ICollection)_items).CopyTo(array, index); } int IList.Add(object? value) { - throw _206B_206D_206B_202E_200D_206A_202C_200D_202C_206E_206B_202C_200F_202B_206C_206F_206A_200C_202B_206C_202D_206D_206A_202A_202B_206B_200E_206C_206E_202E_206F_200D_200B_200C_200B_200C_202E_200C_206F_206B_202E(); + throw new NotSupportedException(); } void IList.Clear() { - throw _206B_206D_206B_202E_200D_206A_202C_200D_202C_206E_206B_202C_200F_202B_206C_206F_206A_200C_202B_206C_202D_206D_206A_202A_202B_206B_200E_206C_206E_202E_206F_200D_200B_200C_200B_200C_202E_200C_206F_206B_202E(); + throw new NotSupportedException(); } bool IList.Contains(object? value) { - return _200D_202E_202D_202E_206D_202B_206D_202A_200E_202A_202C_200F_202B_202C_206B_200C_202A_202D_202B_200C_200D_202E_202B_202B_200E_206A_202B_200C_206B_206C_206C_206A_206D_200B_202D_206F_200D_200E_200E_206D_202E((IList)_items, value); + return ((IList)_items).Contains(value); } int IList.IndexOf(object? value) { - return _202D_200D_202C_202B_200B_206E_206B_200C_202E_200B_206E_206B_206B_200D_206A_202A_206E_200B_202C_202B_200E_200B_200F_202C_202C_202A_200C_206E_202A_206F_206C_200E_206B_200F_202E_200E_206D_206F_200C_202A_202E((IList)_items, value); + return ((IList)_items).IndexOf(value); } void IList.Insert(int index, object? value) { - throw _206B_206D_206B_202E_200D_206A_202C_200D_202C_206E_206B_202C_200F_202B_206C_206F_206A_200C_202B_206C_202D_206D_206A_202A_202B_206B_200E_206C_206E_202E_206F_200D_200B_200C_200B_200C_202E_200C_206F_206B_202E(); + throw new NotSupportedException(); } void IList.Remove(object? value) { - throw _206B_206D_206B_202E_200D_206A_202C_200D_202C_206E_206B_202C_200F_202B_206C_206F_206A_200C_202B_206C_202D_206D_206A_202A_202B_206B_200E_206C_206E_202E_206F_200D_200B_200C_200B_200C_202E_200C_206F_206B_202E(); + throw new NotSupportedException(); } void IList.RemoveAt(int index) { - throw _206B_206D_206B_202E_200D_206A_202C_200D_202C_206E_206B_202C_200F_202B_206C_206F_206A_200C_202B_206C_202D_206D_206A_202A_202B_206B_200E_206C_206E_202E_206F_200D_200B_200C_200B_200C_202E_200C_206F_206B_202E(); + throw new NotSupportedException(); } IEnumerator<T> IEnumerable<T>.GetEnumerator() @@ -105,12 +105,12 @@ internal sealed class _003C_003Ez__ReadOnlyArray<T> : IEnumerable, ICollection, void ICollection<T>.Add(T item) { - throw _206B_206D_206B_202E_200D_206A_202C_200D_202C_206E_206B_202C_200F_202B_206C_206F_206A_200C_202B_206C_202D_206D_206A_202A_202B_206B_200E_206C_206E_202E_206F_200D_200B_200C_200B_200C_202E_200C_206F_206B_202E(); + throw new NotSupportedException(); } void ICollection<T>.Clear() { - throw _206B_206D_206B_202E_200D_206A_202C_200D_202C_206E_206B_202C_200F_202B_206C_206F_206A_200C_202B_206C_202D_206D_206A_202A_202B_206B_200E_206C_206E_202E_206F_200D_200B_200C_200B_200C_202E_200C_206F_206B_202E(); + throw new NotSupportedException(); } bool ICollection<T>.Contains(T item) @@ -125,7 +125,7 @@ internal sealed class _003C_003Ez__ReadOnlyArray<T> : IEnumerable, ICollection, bool ICollection<T>.Remove(T item) { - throw _206B_206D_206B_202E_200D_206A_202C_200D_202C_206E_206B_202C_200F_202B_206C_206F_206A_200C_202B_206C_202D_206D_206A_202A_202B_206B_200E_206C_206E_202E_206F_200D_200B_200C_200B_200C_202E_200C_206F_206B_202E(); + throw new NotSupportedException(); } int IList<T>.IndexOf(T item) @@ -135,36 +135,11 @@ internal sealed class _003C_003Ez__ReadOnlyArray<T> : IEnumerable, ICollection, void IList<T>.Insert(int index, T item) { - throw _206B_206D_206B_202E_200D_206A_202C_200D_202C_206E_206B_202C_200F_202B_206C_206F_206A_200C_202B_206C_202D_206D_206A_202A_202B_206B_200E_206C_206E_202E_206F_200D_200B_200C_200B_200C_202E_200C_206F_206B_202E(); + throw new NotSupportedException(); } void IList<T>.RemoveAt(int index) { - throw _206B_206D_206B_202E_200D_206A_202C_200D_202C_206E_206B_202C_200F_202B_206C_206F_206A_200C_202B_206C_202D_206D_206A_202A_202B_206B_200E_206C_206E_202E_206F_200D_200B_200C_200B_200C_202E_200C_206F_206B_202E(); - } - - static IEnumerator _206B_206C_206A_206E_200B_202D_200B_202E_200C_200E_202E_200D_202C_202A_202B_200F_202C_200D_206E_200E_200C_200E_200F_202D_200F_202E_200E_200D_202A_200F_200F_202B_206D_202D_206B_202B_200D_202E_206E_202E_202E(IEnumerable P_0) - { - return P_0.GetEnumerator(); - } - - static void _200E_202C_200B_206C_202D_206C_206A_206D_200B_206A_202D_200B_200B_200C_206D_200C_200E_202D_200D_206B_206C_206A_206F_206D_206D_202A_206D_206E_202C_206A_202B_206B_206D_202D_202D_206A_206F_206D_200E_206A_202E(ICollection P_0, Array P_1, int P_2) - { - P_0.CopyTo(P_1, P_2); - } - - static NotSupportedException _206B_206D_206B_202E_200D_206A_202C_200D_202C_206E_206B_202C_200F_202B_206C_206F_206A_200C_202B_206C_202D_206D_206A_202A_202B_206B_200E_206C_206E_202E_206F_200D_200B_200C_200B_200C_202E_200C_206F_206B_202E() - { - return new NotSupportedException(); - } - - static bool _200D_202E_202D_202E_206D_202B_206D_202A_200E_202A_202C_200F_202B_202C_206B_200C_202A_202D_202B_200C_200D_202E_202B_202B_200E_206A_202B_200C_206B_206C_206C_206A_206D_200B_202D_206F_200D_200E_200E_206D_202E(IList P_0, object P_1) - { - return P_0.Contains(P_1); - } - - static int _202D_200D_202C_202B_200B_206E_206B_200C_202E_200B_206E_206B_206B_200D_206A_202A_206E_200B_202C_202B_200E_200B_200F_202C_202C_202A_200C_206E_202A_206F_206C_200E_206B_200F_202E_200E_206D_206F_200C_202A_202E(IList P_0, object P_1) - { - return P_0.IndexOf(P_1); + throw new NotSupportedException(); } } diff --git a/LLib/LLib.Buddy/BuddyActions.cs b/LLib/LLib.Buddy/BuddyActions.cs index 092d575..3710859 100644 --- a/LLib/LLib.Buddy/BuddyActions.cs +++ b/LLib/LLib.Buddy/BuddyActions.cs @@ -1,4 +1,3 @@ -using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Conditions; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; @@ -19,219 +18,88 @@ public static class BuddyActions public unsafe static bool TrySummonCompanion() { ActionManager* ptr = ActionManager.Instance(); - int num = ((ptr != null) ? 1651046355 : 1651046352); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1651046354; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 2: - return false; - case 1: - return ptr->UseAction(ActionType.GeneralAction, 24u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); - } - continue; - IL_004b: - num = 1651046352; + return false; } + return ptr->UseAction(ActionType.GeneralAction, 24u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); } public unsafe static bool TryDismissCompanion() { ActionManager* ptr = ActionManager.Instance(); - int num = ((ptr != null) ? (-1011078578) : (-1011078577)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1011078578; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return ptr->UseAction(ActionType.GeneralAction, 25u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); - case 1: - return false; - case 2: - goto IL_0062; - } - continue; - IL_0062: - num = -1011078577; + return false; } + return ptr->UseAction(ActionType.GeneralAction, 25u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); } public static bool TrySetOrder(byte order) { - int num = (BuddyStateHelper.IsCompanionSummoned() ? (-1422028975) : (-1422028974)); - while (true) + if (!BuddyStateHelper.IsCompanionSummoned()) { - int num2 = num; - int num3 = -1422028976; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - GameMain.ExecuteCommand(500, order); - return true; - case 2: - return false; - case 0: - goto IL_005a; - } - continue; - IL_005a: - num = -1422028974; + return false; } + GameMain.ExecuteCommand(500, order); + return true; } public unsafe static bool IsCompanionUnlocked() { UIState* ptr = UIState.Instance(); - int num = ((ptr == null) ? (-114934898) : (-114934899)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -114934897; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return false; - case 2: - return ptr->IsUnlockLinkUnlocked(8u); - case 0: - goto IL_0055; - } - continue; - IL_0055: - num = -114934899; + return ptr->IsUnlockLinkUnlocked(8u); } + return false; } public unsafe static bool CanSummonCompanion(ICondition condition) { - int num = (IsCompanionUnlocked() ? (-985374925) : (-985374926)); - InventoryManager* ptr = default(InventoryManager*); - while (true) + if (!IsCompanionUnlocked()) { - int num2 = num; - int num3 = -985374920; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 9: - return false; - case 4: - num = (_206B_200F_206E_202A_202E_202C_202D_202D_206F_202A_206D_200D_202C_202E_206D_200E_202C_202E_202C_200B_200C_206B_206F_200F_200E_202B_206D_206F_200D_202D_206B_206E_206B_206D_200B_202B_200C_200F_200D_200E_202E(condition, ConditionFlag.BoundByDuty) ? (-985374920) : (-985374917)); - break; - case 7: - return false; - case 1: - num = ((!_206B_200F_206E_202A_202E_202C_202D_202D_206F_202A_206D_200D_202C_202E_206D_200E_202C_202E_202C_200B_200C_206B_206F_200F_200E_202B_206D_206F_200D_202D_206B_206E_206B_206D_200B_202B_200C_200F_200D_200E_202E(condition, ConditionFlag.InCombat)) ? (-985374918) : (-985374920)); - break; - case 11: - num = ((!BuddyStateHelper.IsCompanionSummoned()) ? (-985374916) : (-985374913)); - break; - case 3: - num = (_206B_200F_206E_202A_202E_202C_202D_202D_206F_202A_206D_200D_202C_202E_206D_200E_202C_202E_202C_200B_200C_206B_206F_200F_200E_202B_206D_206F_200D_202D_206B_206E_206B_206D_200B_202B_200C_200F_200D_200E_202E(condition, ConditionFlag.Mounted) ? (-985374920) : (-985374919)); - break; - case 10: - return false; - case 5: - return true; - case 8: - num = -985374926; - break; - case 6: - num = ((ptr->GetInventoryItemCount(4868u, isHq: false, checkEquipped: true, checkArmory: true, 0) != 0) ? (-985374915) : (-985374927)); - break; - case 0: - return false; - case 2: - ptr = InventoryManager.Instance(); - num = ((ptr == null) ? (-985374927) : (-985374914)); - break; - } + return false; } + if (BuddyStateHelper.IsCompanionSummoned()) + { + return false; + } + if (condition[ConditionFlag.BoundByDuty] || condition[ConditionFlag.Mounted] || condition[ConditionFlag.InCombat]) + { + return false; + } + InventoryManager* ptr = InventoryManager.Instance(); + if (ptr == null || ptr->GetInventoryItemCount(4868u, isHq: false, checkEquipped: true, checkArmory: true, 0) == 0) + { + return false; + } + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsFeedAddonReady(IGameGui gameGui) { AtkUnitBase* addonPtr; - return gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(2118248575), out addonPtr); + return gameGui.TryGetReadyAddon<AtkUnitBase>("BuddyFeed", out addonPtr); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TrySelectFeedItem(IGameGui gameGui, int index) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1623486615), out addonPtr) ? 590168373 : 590168372); - while (true) + if (!gameGui.TryGetReadyAddon<AtkUnitBase>("BuddyFeed", out var addonPtr)) { - int num2 = num; - int num3 = 590168373; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - AddonCallback.Fire(addonPtr, 0, index); - return true; - case 1: - return false; - case 2: - goto IL_0066; - } - continue; - IL_0066: - num = 590168372; + return false; } + AddonCallback.Fire(addonPtr, 0, index); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryConfirmFeed(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(184774238), out addonPtr) ? 596817817 : 596817818); - while (true) + if (!gameGui.TryGetReadyAddon<AtkUnitBase>("SelectYesno", out var addonPtr)) { - int num2 = num; - int num3 = 596817819; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0054; - case 2: - AddonCallback.ClickYes(addonPtr); - return true; - case 1: - return false; - } - continue; - IL_0054: - num = 596817818; + return false; } - } - - static bool _206B_200F_206E_202A_202E_202C_202D_202D_206F_202A_206D_200D_202C_202E_206D_200E_202C_202E_202C_200B_200C_206B_206F_200F_200E_202B_206D_206F_200D_202D_206B_206E_206B_206D_200B_202B_200C_200F_200D_200E_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; + AddonCallback.ClickYes(addonPtr); + return true; } } diff --git a/LLib/LLib.Buddy/BuddyEquipActions.cs b/LLib/LLib.Buddy/BuddyEquipActions.cs index dddab84..b934740 100644 --- a/LLib/LLib.Buddy/BuddyEquipActions.cs +++ b/LLib/LLib.Buddy/BuddyEquipActions.cs @@ -1,4 +1,3 @@ -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Component.GUI; @@ -13,138 +12,57 @@ public static class BuddyEquipActions public unsafe static bool TryOpenBuddyAddon() { ActionManager* ptr = ActionManager.Instance(); - int num = ((ptr != null) ? 1019459524 : 1019459527); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1019459526; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 2: - return ptr->UseAction(ActionType.GeneralAction, 26u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); - case 1: - return false; - } - continue; - IL_004b: - num = 1019459527; + return false; } + return ptr->UseAction(ActionType.GeneralAction, 26u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsBuddyAddonReady(IGameGui gameGui) { AtkUnitBase* addonPtr; - return gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(583695867), out addonPtr); + return gameGui.TryGetReadyAddon<AtkUnitBase>("Buddy", out addonPtr); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TrySelectBardingSlot(IGameGui gameGui, int slot) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-70251581), out addonPtr) ? (-765945705) : (-765945708)); - while (true) + if (!gameGui.TryGetReadyAddon<AtkUnitBase>("Buddy", out var addonPtr)) { - int num2 = num; - int num3 = -765945707; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0052; - case 2: - AddonCallback.Fire(addonPtr, 0, 2); - AddonCallback.Fire(addonPtr, 1, slot); - return true; - case 1: - return false; - } - continue; - IL_0052: - num = -765945708; + return false; } + AddonCallback.Fire(addonPtr, 0, 2); + AddonCallback.Fire(addonPtr, 1, slot); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryEquipBarding(IGameGui gameGui, int bardingIndex) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1272603864), out addonPtr) ? (-427454791) : (-427454790)); - while (true) + if (!gameGui.TryGetReadyAddon<AtkUnitBase>("Buddy", out var addonPtr)) { - int num2 = num; - int num3 = -427454792; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0052; - case 2: - return false; - case 1: - AddonCallback.Fire(addonPtr, 2, bardingIndex); - return true; - } - continue; - IL_0052: - num = -427454790; + return false; } + AddonCallback.Fire(addonPtr, 2, bardingIndex); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryUnequipBarding(IGameGui gameGui, int slot) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1272603864), out addonPtr) ? 170791386 : 170791385); - while (true) + if (!gameGui.TryGetReadyAddon<AtkUnitBase>("Buddy", out var addonPtr)) { - int num2 = num; - int num3 = 170791387; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0052; - case 1: - AddonCallback.Fire(addonPtr, 3, slot); - return true; - case 2: - return false; - } - continue; - IL_0052: - num = 170791385; + return false; } + AddonCallback.Fire(addonPtr, 3, slot); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryCloseBuddyAddon(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(583695867), out addonPtr) ? (-1191072356) : (-1191072353)); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("Buddy", out var addonPtr)) { - int num2 = num; - int num3 = -1191072355; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - AddonCallback.Fire(addonPtr, -1); - return true; - case 2: - return false; - case 0: - goto IL_0066; - } - continue; - IL_0066: - num = -1191072353; + return false; } + AddonCallback.Fire(addonPtr, -1); + return true; } } diff --git a/LLib/LLib.Buddy/BuddyStateHelper.cs b/LLib/LLib.Buddy/BuddyStateHelper.cs index 2ec2c54..922dea9 100644 --- a/LLib/LLib.Buddy/BuddyStateHelper.cs +++ b/LLib/LLib.Buddy/BuddyStateHelper.cs @@ -8,520 +8,213 @@ public static class BuddyStateHelper public unsafe static bool IsCompanionSummoned() { UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? (-1349796682) : (-1349796683)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1349796684; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return ptr->Buddy.CompanionInfo.TimeLeft > 0f; - case 1: - return false; - case 0: - goto IL_0063; - } - continue; - IL_0063: - num = -1349796683; + return false; } + return ptr->Buddy.CompanionInfo.TimeLeft > 0f; } public unsafe static bool IsCompanionMounted() { UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? (-1440023216) : (-1440023213)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1440023215; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 1: - return ptr->Buddy.CompanionInfo.Mounted; - case 2: - return false; - } - continue; - IL_0049: - num = -1440023213; + return false; } + return ptr->Buddy.CompanionInfo.Mounted; } public unsafe static string GetCompanionName() { UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? 1483608628 : 1483608631); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1483608630; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 2: - return ptr->Buddy.CompanionInfo.NameString; - case 1: - return string.Empty; - } - continue; - IL_004b: - num = 1483608631; + return string.Empty; } + return ptr->Buddy.CompanionInfo.NameString; } public unsafe static byte GetCompanionColorStainId() { UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? 345206792 : 345206793); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 345206792; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return ptr->Buddy.CompanionInfo.CurrentColorStainId; - case 1: - return 0; - case 2: - goto IL_005c; - } - continue; - IL_005c: - num = 345206793; + return 0; } + return ptr->Buddy.CompanionInfo.CurrentColorStainId; } public unsafe static byte GetCompanionRank() { UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? 424961589 : 424961588); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 424961589; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return ptr->Buddy.CompanionInfo.Rank; - case 1: - return 0; - case 2: - goto IL_005c; - } - continue; - IL_005c: - num = 424961588; + return 0; } + return ptr->Buddy.CompanionInfo.Rank; } public unsafe static uint GetCompanionCurrentXP() { UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? (-7933264) : (-7933261)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -7933262; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return ptr->Buddy.CompanionInfo.CurrentXP; - case 1: - return 0u; - case 0: - goto IL_005c; - } - continue; - IL_005c: - num = -7933261; + return 0u; } + return ptr->Buddy.CompanionInfo.CurrentXP; } public unsafe static byte GetCompanionStars() { UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? 1600521884 : 1600521887); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1600521885; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 2: - return 0; - case 1: - return ptr->Buddy.CompanionInfo.Stars; - } - continue; - IL_0049: - num = 1600521887; + return 0; } + return ptr->Buddy.CompanionInfo.Stars; } public unsafe static byte GetCompanionSkillPoints() { UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? 624298941 : 624298942); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 624298940; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return ptr->Buddy.CompanionInfo.SkillPoints; - case 2: - return 0; - case 0: - goto IL_005c; - } - continue; - IL_005c: - num = 624298942; + return 0; } + return ptr->Buddy.CompanionInfo.SkillPoints; } public unsafe static byte GetDefenderLevel() { UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? (-1160271461) : (-1160271462)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1160271461; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_004c; - case 1: - return 0; - case 0: - return ptr->Buddy.CompanionInfo.Levels[0]; - } - continue; - IL_004c: - num = -1160271462; + return 0; } + return ptr->Buddy.CompanionInfo.Levels[0]; } public unsafe static byte GetAttackerLevel() { UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? 35779603 : 35779600); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 35779602; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004c; - case 1: - return ptr->Buddy.CompanionInfo.Levels[1]; - case 2: - return 0; - } - continue; - IL_004c: - num = 35779600; + return 0; } + return ptr->Buddy.CompanionInfo.Levels[1]; } public unsafe static byte GetHealerLevel() { UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? (-1648020324) : (-1648020321)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1648020323; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return ptr->Buddy.CompanionInfo.Levels[2]; - case 2: - return 0; - case 0: - goto IL_006b; - } - continue; - IL_006b: - num = -1648020321; + return 0; } + return ptr->Buddy.CompanionInfo.Levels[2]; } public unsafe static (byte Head, byte Chest, byte Feet) GetEquippedBardingIds() { UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? (-214194545) : (-214194548)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -214194546; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004c; - case 1: - { - Span<byte> buddyEquipRowIds = ptr->Buddy.CompanionInfo.BuddyEquipRowIds; - return (Head: buddyEquipRowIds[0], Chest: buddyEquipRowIds[1], Feet: buddyEquipRowIds[2]); - } - case 2: - return (Head: 0, Chest: 0, Feet: 0); - } - continue; - IL_004c: - num = -214194548; + return (Head: 0, Chest: 0, Feet: 0); } + Span<byte> buddyEquipRowIds = ptr->Buddy.CompanionInfo.BuddyEquipRowIds; + return (Head: buddyEquipRowIds[0], Chest: buddyEquipRowIds[1], Feet: buddyEquipRowIds[2]); } public unsafe static bool IsBardingUnlocked(uint bardingId) { UIState* ptr = UIState.Instance(); - int num = ((ptr == null) ? 1179942104 : 1179942107); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 1179942105; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 2: - return ptr->Buddy.CompanionInfo.IsBuddyEquipUnlocked(bardingId); - case 1: - return false; - } - continue; - IL_004b: - num = 1179942107; + return ptr->Buddy.CompanionInfo.IsBuddyEquipUnlocked(bardingId); } + return false; } public unsafe static byte GetActiveCommand() { UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? 360275929 : 360275930); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 360275928; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return ptr->Buddy.CompanionInfo.ActiveCommand; - case 2: - return 0; - case 0: - goto IL_005c; - } - continue; - IL_005c: - num = 360275930; + return 0; } + return ptr->Buddy.CompanionInfo.ActiveCommand; } public unsafe static byte GetFavoriteFeed() { UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? 816585553 : 816585552); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 816585553; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return ptr->Buddy.CompanionInfo.FavoriteFeed; - case 1: - return 0; - case 2: - goto IL_005e; - } - continue; - IL_005e: - num = 816585552; + return 0; } + return ptr->Buddy.CompanionInfo.FavoriteFeed; } public unsafe static bool IsPetSummoned() { UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? 318028987 : 318028984); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 318028985; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = ((ptr->Buddy.PetInfo.Pet == null) ? 318028985 : 318028986); - break; - case 3: - return ptr->Buddy.PetInfo.Pet->EntityId != 0; - case 0: - return false; - case 1: - return false; - case 4: - num = 318028984; - break; - } + return false; } + if (ptr->Buddy.PetInfo.Pet != null) + { + return ptr->Buddy.PetInfo.Pet->EntityId != 0; + } + return false; } public unsafe static byte GetPetOrder() { UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? (-105624424) : (-105624421)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -105624422; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 1: - return 0; - case 2: - return ptr->Buddy.PetInfo.Order; - } - continue; - IL_0049: - num = -105624421; + return 0; } + return ptr->Buddy.PetInfo.Order; } public unsafe static byte GetPetStance() { UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? 25937805 : 25937806); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 25937807; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 2: - return ptr->Buddy.PetInfo.Stance; - case 1: - return 0; - } - continue; - IL_0049: - num = 25937806; + return 0; } + return ptr->Buddy.PetInfo.Stance; } public unsafe static bool IsBattleBuddyPresent() { UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? (-506116548) : (-506116552)); - int num7 = default(int); - Span<FFXIVClientStructs.FFXIV.Client.Game.UI.Buddy.BuddyMember> battleBuddies = default(Span<FFXIVClientStructs.FFXIV.Client.Game.UI.Buddy.BuddyMember>); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -506116551; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return false; + } + Span<FFXIVClientStructs.FFXIV.Client.Game.UI.Buddy.BuddyMember> battleBuddies = ptr->Buddy.BattleBuddies; + for (int i = 0; i < battleBuddies.Length; i++) + { + if (battleBuddies[i].EntityId != 0) { - case 3: return true; - case 6: - { - int num8 = num7; - num3 = 1; - num4 = num8; - num7 = (num4 | num3) + (num4 & num3); - num = -506116546; - break; - } - case 0: - num = ((battleBuddies[num7].EntityId == 0) ? (-506116545) : (-506116550)); - break; - case 1: - return false; - case 2: - num = -506116552; - break; - case 7: - num = ((num7 < battleBuddies.Length) ? (-506116551) : (-506116547)); - break; - case 4: - return false; - case 5: - battleBuddies = ptr->Buddy.BattleBuddies; - num7 = 0; - num = -506116546; - break; } } + return false; } public unsafe static bool HasDutyHelpers() { UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? 132041618 : 132041619); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 132041618; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0049; - case 1: - return false; - case 0: - return ptr->Buddy.DutyHelperInfo.HasHelpers; - } - continue; - IL_0049: - num = 132041619; + return false; } + return ptr->Buddy.DutyHelperInfo.HasHelpers; } } diff --git a/LLib/LLib.External/PluginFeaturePauser.cs b/LLib/LLib.External/PluginFeaturePauser.cs index 101173d..2546046 100644 --- a/LLib/LLib.External/PluginFeaturePauser.cs +++ b/LLib/LLib.External/PluginFeaturePauser.cs @@ -1,7 +1,5 @@ using System; -using System.Collections; using System.Collections.Generic; -using System.Runtime.CompilerServices; using Dalamud.Plugin; using Dalamud.Plugin.Ipc; using Dalamud.Plugin.Ipc.Exceptions; @@ -21,218 +19,73 @@ public sealed class PluginFeaturePauser : IDisposable public bool IsPaused => _pausedFeatures != null; - [MethodImpl(MethodImplOptions.NoInlining)] public PluginFeaturePauser(IDalamudPluginInterface pluginInterface, string getEnabledEndpoint, string setEnabledEndpoint, ILogger logger) { - _200B_202A_202E_202D_200B_202D_206D_206F_202A_206D_206C_200C_206E_206F_206F_206A_206B_202D_200B_202B_206E_206D_202D_202D_202B_202E_206E_206A_202D_206C_200D_200B_206A_206E_200C_206F_206A_206F_206D_206F_202E((object)pluginInterface, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(766607579)); - _202B_206D_202B_206C_200E_202A_206D_206D_206F_200D_202D_206A_202C_206E_200C_206B_206C_202D_206F_200D_206F_206E_200B_206E_206E_200D_200F_206F_202D_200B_200C_202C_200C_206B_202D_206E_206C_202C_200F_206C_202E(getEnabledEndpoint, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1664369552)); - _202B_206D_202B_206C_200E_202A_206D_206D_206F_200D_202D_206A_202C_206E_200C_206B_206C_202D_206F_200D_206F_206E_200B_206E_206E_200D_200F_206F_202D_200B_200C_202C_200C_206B_202D_206E_206C_202C_200F_206C_202E(setEnabledEndpoint, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1390048610)); - _200B_202A_202E_202D_200B_202D_206D_206F_202A_206D_206C_200C_206E_206F_206F_206A_206B_202D_200B_202B_206E_206D_202D_202D_202B_202E_206E_206A_202D_206C_200D_200B_206A_206E_200C_206F_206A_206F_206D_206F_202E((object)logger, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1584978576)); + ArgumentNullException.ThrowIfNull(pluginInterface, "pluginInterface"); + ArgumentException.ThrowIfNullOrEmpty(getEnabledEndpoint, "getEnabledEndpoint"); + ArgumentException.ThrowIfNullOrEmpty(setEnabledEndpoint, "setEnabledEndpoint"); + ArgumentNullException.ThrowIfNull(logger, "logger"); _getEnabled = pluginInterface.GetIpcSubscriber<string, bool?>(getEnabledEndpoint); _setEnabled = pluginInterface.GetIpcSubscriber<string, bool, object>(setEnabledEndpoint); _logger = logger; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Disable(IEnumerable<string> features) { - int num = ((_pausedFeatures != null) ? (-124220902) : (-124220903)); - while (true) + if (_pausedFeatures == null) { - int num2 = num; - int num3 = -124220901; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _pausedFeatures = new HashSet<string>(); + } + foreach (string feature in features) + { + if (_pausedFeatures.Contains(feature)) { - case 0: - num = -124220903; - break; - case 2: - _pausedFeatures = new HashSet<string>(); - num = -124220902; - break; - case 1: + continue; + } + try { - IEnumerator<string> enumerator = features.GetEnumerator(); - try + if (_getEnabled.InvokeFunc(feature) == true) { - while (_200B_200C_206B_200F_200D_206E_202E_206E_202B_200D_202D_206C_206F_200D_200C_206E_206E_206A_202B_200E_202A_202A_200F_200D_202A_200D_202C_206B_200C_202D_200D_200F_202E_202B_200B_202E_206E_202C_200F_206F_202E((IEnumerator)enumerator)) - { - string current = enumerator.Current; - if (_pausedFeatures.Contains(current)) - { - continue; - } - try - { - num = ((_getEnabled.InvokeFunc(current) != true) ? 879033807 : 879033804); - while (true) - { - int num5 = num; - num3 = 879033805; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 0: - num = 879033804; - break; - case 1: - _setEnabled.InvokeAction(current, arg2: false); - _pausedFeatures.Add(current); - _200E_202B_202C_200F_202C_202B_200C_206D_202E_202E_200B_206B_206A_202E_200E_202D_202E_200C_206C_202D_202E_202D_200C_200D_206F_202E_200C_202E_206C_206C_200E_202B_200D_206A_202A_206B_202C_206C_200E_202E(_logger, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-2022871407), new object[1] { current }); - num = 879033807; - break; - case 2: - goto end_IL_00c8; - } - continue; - end_IL_00c8: - break; - } - } - catch (Exception ex) - { - num = ((ex is IpcError) ? 285871159 : 285871156); - while (true) - { - int num8 = num; - num3 = 285871157; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 285871156; - break; - case 1: - _200C_200F_202D_202D_202E_206E_202B_200F_206F_202B_202A_206C_200F_200C_206E_206F_206C_202E_202B_206F_202C_206A_206F_200C_200D_206D_206B_206D_206C_202B_202E_202E_206E_206F_206A_200D_200C_206D_206F_202D_202E(_logger, ex, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-578647561), new object[1] { current }); - num = 285871159; - break; - case 2: - goto end_IL_0170; - } - continue; - end_IL_0170: - break; - } - } - } - return; - } - finally - { - num = ((enumerator == null) ? 1678269636 : 1678269639); - while (true) - { - int num9 = num; - num3 = 1678269637; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 1: - goto end_IL_0207; - case 2: - _206D_200B_200D_200B_206C_206B_202D_202B_202E_200E_206B_202D_202A_200D_206A_200B_206F_206D_206B_202C_206A_200E_202B_206B_202C_202A_206A_200F_200E_200B_202C_206B_206F_200B_200D_202C_200B_206F_206B_202E((IDisposable)enumerator); - num = 1678269636; - break; - case 0: - num = 1678269639; - break; - } - continue; - end_IL_0207: - break; - } + _setEnabled.InvokeAction(feature, arg2: false); + _pausedFeatures.Add(feature); + _logger.LogInformation("Paused external feature: {Feature}", feature); } } + catch (Exception ex) + { + if (!(ex is IpcError)) + { + _logger.LogWarning(ex, "Failed to pause external feature {Feature}", feature); + } } } } - [MethodImpl(MethodImplOptions.NoInlining)] public void Restore() { - int num = ((_pausedFeatures != null) ? (-1219556396) : (-1219556395)); - while (true) + if (_pausedFeatures == null) { - int num2 = num; - int num3 = -1219556396; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0051; - case 1: - return; - case 0: - { - HashSet<string> hashSet = new HashSet<string>(); - foreach (string pausedFeature in _pausedFeatures) - { - try - { - _setEnabled.InvokeAction(pausedFeature, arg2: true); - _200E_202B_202C_200F_202C_202B_200C_206D_202E_202E_200B_206B_206A_202E_200E_202D_202E_200C_206C_202D_202E_202D_200C_200D_206F_202E_200C_202E_206C_206C_200E_202B_200D_206A_202A_206B_202C_206C_200E_202E(_logger, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1936594651), new object[1] { pausedFeature }); - } - catch (Exception ex) - { - hashSet.Add(pausedFeature); - _200C_200F_202D_202D_202E_206E_202B_200F_206F_202B_202A_206C_200F_200C_206E_206F_206C_202E_202B_206F_202C_206A_206F_200C_200D_206D_206B_206D_206C_202B_202E_202E_206E_206F_206A_200D_200C_206D_206F_202D_202E(_logger, ex, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(902723695), new object[1] { pausedFeature }); - } - } - _pausedFeatures = ((hashSet.Count == 0) ? null : hashSet); - return; - } - } - continue; - IL_0051: - num = -1219556395; + return; } + HashSet<string> hashSet = new HashSet<string>(); + foreach (string pausedFeature in _pausedFeatures) + { + try + { + _setEnabled.InvokeAction(pausedFeature, arg2: true); + _logger.LogInformation("Restored external feature: {Feature}", pausedFeature); + } + catch (Exception exception) + { + hashSet.Add(pausedFeature); + _logger.LogWarning(exception, "Failed to restore external feature {Feature}, keeping it for retry", pausedFeature); + } + } + _pausedFeatures = ((hashSet.Count == 0) ? null : hashSet); } public void Dispose() { Restore(); } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static void _200B_202A_202E_202D_200B_202D_206D_206F_202A_206D_206C_200C_206E_206F_206F_206A_206B_202D_200B_202B_206E_206D_202D_202D_202B_202E_206E_206A_202D_206C_200D_200B_206A_206E_200C_206F_206A_206F_206D_206F_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static void _202B_206D_202B_206C_200E_202A_206D_206D_206F_200D_202D_206A_202C_206E_200C_206B_206C_202D_206F_200D_206F_206E_200B_206E_206E_200D_200F_206F_202D_200B_200C_202C_200C_206B_202D_206E_206C_202C_200F_206C_202E(string P_0, string P_1) - { - ArgumentException.ThrowIfNullOrEmpty(P_0, P_1); - } - - static void _200E_202B_202C_200F_202C_202B_200C_206D_202E_202E_200B_206B_206A_202E_200E_202D_202E_200C_206C_202D_202E_202D_200C_200D_206F_202E_200C_202E_206C_206C_200E_202B_200D_206A_202A_206B_202C_206C_200E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static void _200C_200F_202D_202D_202E_206E_202B_200F_206F_202B_202A_206C_200F_200C_206E_206F_206C_202E_202B_206F_202C_206A_206F_200C_200D_206D_206B_206D_206C_202B_202E_202E_206E_206F_206A_200D_200C_206D_206F_202D_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogWarning(P_1, P_2, P_3); - } - - static bool _200B_200C_206B_200F_200D_206E_202E_206E_202B_200D_202D_206C_206F_200D_200C_206E_206E_206A_202B_200E_202A_202A_200F_200D_202A_200D_202C_206B_200C_202D_200D_200F_202E_202B_200B_202E_206E_202C_200F_206F_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206D_200B_200D_200B_206C_206B_202D_202B_202E_200E_206B_202D_202A_200D_206A_200B_206F_206D_206B_202C_206A_200E_202B_206B_202C_202A_206A_200F_200E_200B_202C_206B_206F_200B_200D_202C_200B_206F_206B_202E(IDisposable P_0) - { - P_0.Dispose(); - } } diff --git a/LLib/LLib.Fishing/WaterSurfaceDetector.cs b/LLib/LLib.Fishing/WaterSurfaceDetector.cs index 1bb9b88..2375751 100644 --- a/LLib/LLib.Fishing/WaterSurfaceDetector.cs +++ b/LLib/LLib.Fishing/WaterSurfaceDetector.cs @@ -19,255 +19,116 @@ public static class WaterSurfaceDetector public static (float Rotation, Vector3 HitPoint)? FindFishableRotation(Vector3 position, int searchSteps = 36) { - float num = MathF.PI * 2f / (float)searchSteps; + float num = (float)Math.PI * 2f / (float)searchSteps; List<int> list = new List<int>(); - int num2 = 0; - int num3 = -766816580; - Vector3? hitPoint = default(Vector3?); - float num9 = default(float); - while (true) + for (int i = 0; i < searchSteps; i++) { - int num4 = num3; - int num5 = -766816580; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) + float rotation = (float)i * num; + if (CheckFishableAtRotation(position, rotation, out var _)) { - case 3: - return null; - case 0: - num3 = ((num2 < searchSteps) ? (-766816579) : (-766816582)); - break; - case 9: - num3 = ((!hitPoint.HasValue) ? (-766816584) : (-766816588)); - break; - case 1: - { - float rotation = (float)num2 * num; - num3 = ((!CheckFishableAtRotation(position, rotation, out var _)) ? (-766816578) : (-766816583)); - break; - } - case 8: - return (num9, hitPoint.Value); - case 6: - num3 = ((list.Count != 0) ? (-766816581) : (-766816577)); - break; - case 4: - return null; - case 2: - { - int num10 = num2; - num5 = 1; - num6 = num10; - num2 = (num6 | num5) + (num6 & num5); - num3 = -766816580; - break; - } - case 5: - list.Add(num2); - num3 = -766816578; - break; - case 7: - { - List<int> list2 = (from g in FindContiguousGroups(list, searchSteps) - orderby g.Count descending - select g).First(); - num9 = ((float)list2[0] + (float)(list2.Count - 1) / 2f) % (float)searchSteps * num; - num3 = ((!CheckFishableAtRotation(position, num9, out hitPoint)) ? (-766816584) : (-766816587)); - break; - } - case 10: - num3 = -766816580; - break; + list.Add(i); } } + if (list.Count == 0) + { + return null; + } + List<int> list2 = (from g in FindContiguousGroups(list, searchSteps) + orderby g.Count descending + select g).First(); + float num2 = ((float)list2[0] + (float)(list2.Count - 1) / 2f) % (float)searchSteps * num; + if (CheckFishableAtRotation(position, num2, out var hitPoint2) && hitPoint2.HasValue) + { + return (num2, hitPoint2.Value); + } + return null; } private unsafe static bool CheckFishableAtRotation(Vector3 position, float rotation, out Vector3? hitPoint) { hitPoint = null; Framework* ptr = Framework.Instance(); - int num = ((ptr == null) ? (-9575683) : (-9575687)); - BGCollisionModule* bGCollisionModule = default(BGCollisionModule*); - Matrix4x4 matrix = default(Matrix4x4); - Vector3 vector3 = default(Vector3); - RaycastHit raycastHit2 = default(RaycastHit); - RaycastHit raycastHit = default(RaycastHit); - while (true) + if (ptr == null || ptr->BGCollisionModule == null) { - int num2 = num; - int num3 = -9575688; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - ReadOnlySpan<int> readOnlySpan; - switch (num5 - (num6 + num6)) - { - case 0: - { - bGCollisionModule = ptr->BGCollisionModule; - float num8 = _200B_202E_206E_202C_202E_202E_202E_200D_206A_202D_206E_206B_202C_206E_202E_206D_206D_200E_206B_202B_202D_202E_206D_202A_206F_200E_202C_206A_206F_206A_202C_200B_200F_206F_206A_202E_202E_206F_200F_202B_202E(rotation); - float num9 = _202A_206D_202E_200E_200F_202D_206D_202A_206C_206C_206A_200D_206B_206E_206D_200E_206B_202B_206F_206F_206E_206D_206B_202B_200E_200D_206F_202B_206E_202E_206F_200D_202E_202D_206A_202B_200F_206C_202D_206F_202E(rotation); - matrix = new Matrix4x4 - { - M11 = num8, - M13 = 0f - num9, - M22 = 1f, - M31 = num9, - M33 = num8 - }; - vector3 = Vector3.Transform(new Vector3(0f, 0f, 2f), matrix) + position; - vector3.Y += 2f; - Vector3 vector4 = new Vector3(position.X, position.Y + 0.87f, position.Z); - Vector3 vector5 = Vector3.Normalize(vector3 - vector4); - float maxDistance = Vector3.Distance(vector4, vector3); - byte* intPtr2 = stackalloc byte[16]; - readOnlySpan = new int[4] { 16384, 0, 16384, 0 }; - // IL cpblk instruction - Unsafe.CopyBlockUnaligned(intPtr2, ref readOnlySpan[0], 16); - int* flags2 = (int*)intPtr2; - num = ((!bGCollisionModule->RaycastMaterialFilter(&raycastHit2, &vector4, &vector5, maxDistance, 1, flags2)) ? (-9575686) : (-9575681)); - break; - } - case 5: - return false; - case 1: - num = ((ptr->BGCollisionModule != null) ? (-9575688) : (-9575683)); - break; - case 6: - num = -9575687; - break; - case 7: - return false; - case 4: - hitPoint = raycastHit.Point; - return true; - case 3: - return false; - case 2: - { - Vector3 vector = Vector3.Transform(new Vector3(0f, -80f, 40f), matrix); - float num7 = vector.Length(); - Vector3 vector2 = vector / num7; - byte* intPtr = stackalloc byte[16]; - readOnlySpan = new int[4] { 32768, 0, 32768, 0 }; - // IL cpblk instruction - Unsafe.CopyBlockUnaligned(intPtr, ref readOnlySpan[0], 16); - int* flags = (int*)intPtr; - num = ((!bGCollisionModule->RaycastMaterialFilter(&raycastHit, &vector3, &vector2, num7, 1, flags)) ? (-9575685) : (-9575684)); - break; - } - } + return false; } + BGCollisionModule* bGCollisionModule = ptr->BGCollisionModule; + float num = MathF.Cos(rotation); + float num2 = MathF.Sin(rotation); + Matrix4x4 matrix = new Matrix4x4 + { + M11 = num, + M13 = 0f - num2, + M22 = 1f, + M31 = num2, + M33 = num + }; + Vector3 vector = Vector3.Transform(new Vector3(0f, 0f, 2f), matrix) + position; + vector.Y += 2f; + Vector3 vector2 = new Vector3(position.X, position.Y + 0.87f, position.Z); + Vector3 vector3 = Vector3.Normalize(vector - vector2); + float maxDistance = Vector3.Distance(vector2, vector); + byte* intPtr = stackalloc byte[16]; + ReadOnlySpan<int> readOnlySpan = new int[4] { 16384, 0, 16384, 0 }; + // IL cpblk instruction + Unsafe.CopyBlockUnaligned(intPtr, ref readOnlySpan[0], 16); + int* flags = (int*)intPtr; + RaycastHit raycastHit = default(RaycastHit); + if (bGCollisionModule->RaycastMaterialFilter(&raycastHit, &vector2, &vector3, maxDistance, 1, flags)) + { + return false; + } + Vector3 vector4 = Vector3.Transform(new Vector3(0f, -80f, 40f), matrix); + float num3 = vector4.Length(); + Vector3 vector5 = vector4 / num3; + byte* intPtr2 = stackalloc byte[16]; + readOnlySpan = new int[4] { 32768, 0, 32768, 0 }; + // IL cpblk instruction + Unsafe.CopyBlockUnaligned(intPtr2, ref readOnlySpan[0], 16); + int* flags2 = (int*)intPtr2; + RaycastHit raycastHit2 = default(RaycastHit); + if (bGCollisionModule->RaycastMaterialFilter(&raycastHit2, &vector, &vector5, num3, 1, flags2)) + { + hitPoint = raycastHit2.Point; + return true; + } + return false; } private static List<List<int>> FindContiguousGroups(List<int> angles, int maxSteps) { - int num = ((angles.Count != 0) ? 1779780775 : 1779780774); - List<int> list3 = default(List<int>); - List<int> list5 = default(List<int>); - int num8 = default(int); - List<List<int>> list2 = default(List<List<int>>); - while (true) + if (angles.Count == 0) { - int num2 = num; - int num3 = 1779780780; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return new List<List<int>>(); + } + List<int> list = angles.OrderBy((int a) => a).ToList(); + List<List<int>> list2 = new List<List<int>>(); + List<int> list3 = new List<int> { list[0] }; + for (int num = 1; num < list.Count; num++) + { + if (list[num] - list[num - 1] == 1) { - case 4: - list3.Add(list5[num8]); - num = 1779780783; - break; - case 6: - num = ((list5[0] != 0) ? 1779780777 : 1779780772); - break; - case 0: - { - int num12 = list5[num8]; - List<int> list6 = list5; - int num13 = num8; - num3 = 1; - num4 = num13; - num = ((num12 - list6[~(~num4 + num3)] != 1) ? 1779780779 : 1779780776); - break; + list3.Add(list[num]); + continue; } - case 1: - list2.Add(list3); - num = ((list2.Count <= 1) ? 1779780777 : 1779780778); - break; - case 9: - num = ((num8 < list5.Count) ? 1779780780 : 1779780781); - break; - case 2: - num = 1779780774; - break; - case 8: + list2.Add(list3); + int num2 = 1; + List<int> list4 = new List<int>(num2); + CollectionsMarshal.SetCount(list4, num2); + CollectionsMarshal.AsSpan(list4)[0] = list[num]; + list3 = list4; + } + list2.Add(list3); + if (list2.Count > 1 && list[0] == 0) + { + if (list[list.Count - 1] == maxSteps - 1) { - List<int> list7 = list5; - int num14 = list7[list7.Count - 1]; - num3 = 1; - num4 = maxSteps; - num = ((num14 != ~(~num4 + num3)) ? 1779780777 : 1779780768); - break; - } - case 5: - return list2; - case 10: - return new List<List<int>>(); - case 11: - list5 = angles.OrderBy((int a) => a).ToList(); - list2 = new List<List<int>>(); - list3 = new List<int> { list5[0] }; - num8 = 1; - num = 1779780773; - break; - case 7: - { - list2.Add(list3); - int num11 = 1; - List<int> list4 = new List<int>(num11); - CollectionsMarshal.SetCount(list4, num11); - CollectionsMarshal.AsSpan(list4)[0] = list5[num8]; - list3 = list4; - num = 1779780783; - break; - } - case 12: - { - List<List<int>> list = list2; - List<int> item = list[list.Count - 1].Concat(list2[0]).ToList(); + List<int> item = list2[list2.Count - 1].Concat(list2[0]).ToList(); list2.RemoveAt(list2.Count - 1); list2.RemoveAt(0); list2.Add(item); - num = 1779780777; - break; - } - case 3: - { - int num7 = num8; - num3 = 1; - num4 = num7; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - num8 = num9 + (num10 + num10); - num = 1779780773; - break; - } } } - } - - static float _200B_202E_206E_202C_202E_202E_202E_200D_206A_202D_206E_206B_202C_206E_202E_206D_206D_200E_206B_202B_202D_202E_206D_202A_206F_200E_202C_206A_206F_206A_202C_200B_200F_206F_206A_202E_202E_206F_200F_202B_202E(float P_0) - { - return MathF.Cos(P_0); - } - - static float _202A_206D_202E_200E_200F_202D_206D_202A_206C_206C_206A_200D_206B_206E_206D_200E_206B_202B_206F_206F_206E_206D_206B_202B_200E_200D_206F_202B_206E_202E_206F_200D_202E_202D_206A_202B_200F_206C_202D_206F_202E(float P_0) - { - return MathF.Sin(P_0); + return list2; } } diff --git a/LLib/LLib.GameData/ClassJobHelper.cs b/LLib/LLib.GameData/ClassJobHelper.cs index 883ffd2..63ef3d8 100644 --- a/LLib/LLib.GameData/ClassJobHelper.cs +++ b/LLib/LLib.GameData/ClassJobHelper.cs @@ -10,28 +10,15 @@ public static class ClassJobHelper { ClassJob row = dataManager.GetExcelSheet<ClassJob>().GetRow((uint)classJob); ushort num = (ushort)row.UnlockQuest.RowId; - int num2 = ((num == 0) ? 1968883418 : 1968883419); - while (true) + if (num != 0) { - int num3 = num2; - int num4 = 1968883416; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 1: - return false; - case 3: - return QuestManager.IsQuestComplete(num); - case 4: - return PlayerStateHelper.GetClassJobLevel(row.ExpArrayIndex) > 0; - case 2: - num2 = ((row.ExpArrayIndex >= 0) ? 1968883420 : 1968883417); - break; - case 0: - num2 = 1968883419; - break; - } + return QuestManager.IsQuestComplete(num); } + if (row.ExpArrayIndex < 0) + { + return false; + } + return PlayerStateHelper.GetClassJobLevel(row.ExpArrayIndex) > 0; } public static bool IsJobUnlocked(EClassJob classJob, IDataManager dataManager) diff --git a/LLib/LLib.GameData/ConditionHelper.cs b/LLib/LLib.GameData/ConditionHelper.cs index 8db0f8a..f5fddca 100644 --- a/LLib/LLib.GameData/ConditionHelper.cs +++ b/LLib/LLib.GameData/ConditionHelper.cs @@ -7,249 +7,78 @@ public static class ConditionHelper { public static bool IsBoundByDuty(ICondition condition) { - int num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.BoundByDuty) ? 982422876 : 982422878); - while (true) + if (!condition[ConditionFlag.BoundByDuty] && !condition[ConditionFlag.BoundByDuty56]) { - int num2 = num; - int num3 = 982422877; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 982422878; - break; - case 0: - return _206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.BoundByDuty95); - case 1: - return true; - case 3: - num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.BoundByDuty56) ? 982422876 : 982422877); - break; - } + return condition[ConditionFlag.BoundByDuty95]; } + return true; } public static bool IsInCombat(ICondition condition) { - return _206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.InCombat); + return condition[ConditionFlag.InCombat]; } public static bool IsInCutscene(ICondition condition) { - int num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.OccupiedInCutSceneEvent) ? 298384256 : 298384257); - while (true) + if (!condition[ConditionFlag.OccupiedInCutSceneEvent] && !condition[ConditionFlag.WatchingCutscene]) { - int num2 = num; - int num3 = 298384256; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = 298384257; - break; - case 1: - num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.WatchingCutscene) ? 298384256 : 298384258); - break; - case 0: - return true; - case 2: - return _206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.WatchingCutscene78); - } + return condition[ConditionFlag.WatchingCutscene78]; } + return true; } public static bool IsBetweenAreas(ICondition condition) { - int num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.BetweenAreas) ? 617778151 : 617778150); - while (true) + if (!condition[ConditionFlag.BetweenAreas]) { - int num2 = num; - int num3 = 617778151; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0048; - case 0: - return true; - case 1: - return _206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.BetweenAreas51); - } - continue; - IL_0048: - num = 617778150; + return condition[ConditionFlag.BetweenAreas51]; } + return true; } public static bool IsCrafting(ICondition condition) { - int num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.Crafting) ? (-531070532) : (-531070529)); - while (true) + if (!condition[ConditionFlag.Crafting] && !condition[ConditionFlag.PreparingToCraft]) { - int num2 = num; - int num3 = -531070530; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = -531070529; - break; - case 2: - return true; - case 0: - return _206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.ExecutingCraftingAction); - case 1: - num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.PreparingToCraft) ? (-531070532) : (-531070530)); - break; - } + return condition[ConditionFlag.ExecutingCraftingAction]; } + return true; } public static bool IsGathering(ICondition condition) { - int num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.Gathering) ? (-1745581447) : (-1745581446)); - while (true) + if (!condition[ConditionFlag.Gathering]) { - int num2 = num; - int num3 = -1745581448; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0047; - case 2: - return _206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.ExecutingGatheringAction); - case 1: - return true; - } - continue; - IL_0047: - num = -1745581446; + return condition[ConditionFlag.ExecutingGatheringAction]; } + return true; } public static bool IsOccupied(ICondition condition) { - int num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.Occupied) ? 149420092 : 149420094); - while (true) + if (!condition[ConditionFlag.Occupied] && !condition[ConditionFlag.Occupied30] && !condition[ConditionFlag.Occupied33] && !condition[ConditionFlag.Occupied38]) { - int num2 = num; - int num3 = 149420092; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - num = 149420094; - break; - case 4: - num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.Occupied38) ? 149420092 : 149420093); - break; - case 3: - num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.Occupied33) ? 149420092 : 149420088); - break; - case 0: - return true; - case 2: - num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.Occupied30) ? 149420092 : 149420095); - break; - case 1: - return _206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.Occupied39); - } + return condition[ConditionFlag.Occupied39]; } + return true; } public static bool IsLockedIn(ICondition condition) { - int num = (IsBoundByDuty(condition) ? 829421731 : 829421732); - while (true) + if (!IsBoundByDuty(condition) && !IsInCutscene(condition) && !IsBetweenAreas(condition) && !IsOccupied(condition) && !condition[ConditionFlag.Unconscious] && !condition[ConditionFlag.Jumping]) { - int num2 = num; - int num3 = 829421734; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - num = (IsBetweenAreas(condition) ? 829421731 : 829421730); - break; - case 0: - num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.Unconscious) ? 829421731 : 829421733); - break; - case 4: - num = (IsOccupied(condition) ? 829421731 : 829421734); - break; - case 3: - num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.Jumping) ? 829421731 : 829421728); - break; - case 2: - num = (IsInCutscene(condition) ? 829421731 : 829421735); - break; - case 6: - return _206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.Jumping61); - case 7: - num = 829421732; - break; - case 5: - return true; - } + return condition[ConditionFlag.Jumping61]; } + return true; } public static bool IsUnavailable(ICondition condition) { - int num = (IsLockedIn(condition) ? 721479038 : 721479035); - while (true) + if (!IsLockedIn(condition) && !IsCrafting(condition) && !IsGathering(condition) && !condition[ConditionFlag.Mounted] && !condition[ConditionFlag.Mounting] && !condition[ConditionFlag.Mounting71] && !condition[ConditionFlag.ChocoboRacing] && !condition[ConditionFlag.PlayingLordOfVerminion] && !condition[ConditionFlag.Performing] && !condition[ConditionFlag.UsingFashionAccessory]) { - int num2 = num; - int num3 = 721479037; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 7: - num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.UsingFashionAccessory) ? 721479038 : 721479030); - break; - case 2: - num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.Mounted) ? 721479038 : 721479029); - break; - case 3: - return true; - case 6: - num = (IsCrafting(condition) ? 721479038 : 721479032); - break; - case 0: - num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.PlayingLordOfVerminion) ? 721479038 : 721479031); - break; - case 5: - num = (IsGathering(condition) ? 721479038 : 721479039); - break; - case 9: - num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.Mounting71) ? 721479038 : 721479036); - break; - case 8: - num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.Mounting) ? 721479038 : 721479028); - break; - case 1: - num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.ChocoboRacing) ? 721479038 : 721479037); - break; - case 4: - num = 721479035; - break; - case 11: - return _206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.InFlight); - case 10: - num = (_206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(condition, ConditionFlag.Performing) ? 721479038 : 721479034); - break; - } + return condition[ConditionFlag.InFlight]; } - } - - static bool _206D_202D_206B_202B_206A_206D_206B_206B_200E_206B_202C_206C_200E_202C_206D_202C_200B_206D_206A_206D_200C_206C_206C_202E_202D_206A_206B_200F_206F_202A_202B_202A_200B_206C_206E_200D_200D_200D_200E_200C_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; + return true; } } diff --git a/LLib/LLib.GameData/EClassJobExtensions.cs b/LLib/LLib.GameData/EClassJobExtensions.cs index 2dc07fc..9168e9e 100644 --- a/LLib/LLib.GameData/EClassJobExtensions.cs +++ b/LLib/LLib.GameData/EClassJobExtensions.cs @@ -1,6 +1,5 @@ using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using Lumina.Excel.Sheets; @@ -10,49 +9,29 @@ public static class EClassJobExtensions { public static bool IsClass(this EClassJob classJob) { - int num = ((classJob < EClassJob.Gladiator) ? (-1021997813) : (-1021997816)); - bool flag = default(bool); - while (true) + bool flag; + switch (classJob) { - int num2 = num; - int num3 = -1021997812; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 7: - flag = false; - num = -1021997809; - break; - case 4: - num = ((classJob <= EClassJob.Thaumaturge) ? (-1021997810) : (-1021997819)); - break; - case 5: - num = ((classJob != EClassJob.Rogue) ? (-1021997813) : (-1021997810)); - break; - case 8: - return true; - case 2: - flag = true; - num = -1021997809; - break; - case 3: - num = (flag ? (-1021997820) : (-1021997812)); - break; - case 0: - num = (classJob.IsCrafter() ? (-1021997820) : (-1021997811)); - break; - case 1: - return classJob.IsGatherer(); - case 6: - num = -1021997816; - break; - case 9: - num = ((classJob == EClassJob.Arcanist) ? (-1021997810) : (-1021997815)); - break; - } + case EClassJob.Gladiator: + case EClassJob.Pugilist: + case EClassJob.Marauder: + case EClassJob.Lancer: + case EClassJob.Archer: + case EClassJob.Conjurer: + case EClassJob.Thaumaturge: + case EClassJob.Arcanist: + case EClassJob.Rogue: + flag = true; + break; + default: + flag = false; + break; } + if (!flag && !classJob.IsCrafter()) + { + return classJob.IsGatherer(); + } + return true; } public static bool HasBaseClass(this EClassJob classJob) @@ -62,1197 +41,264 @@ public static class EClassJobExtensions public static EClassJob? GetBaseClass(this EClassJob classJob) { - int num; - EClassJob? result = default(EClassJob?); - switch (classJob) + return classJob switch { - default: - num = 1515021; - goto IL_0044; - case EClassJob.Bard: - result = EClassJob.Archer; - num = 1515018; - goto IL_0044; - case EClassJob.Paladin: - goto IL_00ac; - case EClassJob.Dragoon: - goto IL_00be; - case EClassJob.BlackMage: - goto IL_00d0; - case EClassJob.Summoner: - goto IL_00e2; - case EClassJob.Arcanist: - case EClassJob.Rogue: - goto IL_00f5; - case EClassJob.Scholar: - goto IL_010a; - case EClassJob.Ninja: - goto IL_0128; - case EClassJob.Monk: - goto IL_013b; - case EClassJob.Warrior: - goto IL_0158; - case EClassJob.WhiteMage: - goto IL_016a; - IL_0044: - while (true) - { - int num2 = num; - int num3 = 1515022; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - goto end_IL_0044; - case 4: - return result; - case 7: - goto IL_00ac; - case 10: - goto IL_00be; - case 0: - goto IL_00d0; - case 11: - goto IL_00e2; - case 8: - goto IL_00f5; - case 2: - goto IL_010a; - case 3: - num = 1515014; - break; - case 5: - goto IL_0128; - case 9: - goto IL_013b; - case 13: - num = 1515021; - break; - case 12: - goto IL_0158; - case 6: - goto IL_016a; - } - continue; - end_IL_0044: - break; - } - goto case EClassJob.Bard; - IL_016a: - result = EClassJob.Conjurer; - num = 1515018; - goto IL_0044; - IL_0158: - result = EClassJob.Marauder; - num = 1515018; - goto IL_0044; - IL_013b: - result = EClassJob.Pugilist; - num = 1515018; - goto IL_0044; - IL_0128: - result = EClassJob.Rogue; - num = 1515018; - goto IL_0044; - IL_010a: - result = EClassJob.Arcanist; - num = 1515018; - goto IL_0044; - IL_00f5: - result = null; - num = 1515018; - goto IL_0044; - IL_00e2: - result = EClassJob.Arcanist; - num = 1515018; - goto IL_0044; - IL_00d0: - result = EClassJob.Thaumaturge; - num = 1515018; - goto IL_0044; - IL_00be: - result = EClassJob.Lancer; - num = 1515018; - goto IL_0044; - IL_00ac: - result = EClassJob.Gladiator; - num = 1515018; - goto IL_0044; - } + EClassJob.Paladin => EClassJob.Gladiator, + EClassJob.Warrior => EClassJob.Marauder, + EClassJob.Monk => EClassJob.Pugilist, + EClassJob.Dragoon => EClassJob.Lancer, + EClassJob.Ninja => EClassJob.Rogue, + EClassJob.Bard => EClassJob.Archer, + EClassJob.WhiteMage => EClassJob.Conjurer, + EClassJob.BlackMage => EClassJob.Thaumaturge, + EClassJob.Summoner => EClassJob.Arcanist, + EClassJob.Scholar => EClassJob.Arcanist, + _ => null, + }; } public static EClassJob AsJob(this EClassJob classJob) { - int num; - EClassJob result = default(EClassJob); - switch (classJob) + return classJob switch { - default: - num = 2104859750; - goto IL_002f; - case EClassJob.Archer: - result = EClassJob.Bard; - num = 2104859754; - goto IL_002f; - case EClassJob.Marauder: - goto IL_0094; - case EClassJob.Lancer: - goto IL_00a2; - case EClassJob.Conjurer: - goto IL_00d4; - case EClassJob.Pugilist: - goto IL_00e2; - case EClassJob.Gladiator: - goto IL_00f0; - case EClassJob.Thaumaturge: - goto IL_0155; - IL_002f: - while (true) - { - int num2 = num; - int num3 = 2104859745; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 11: - return result; - case 4: - goto end_IL_002f; - case 14: - goto IL_0094; - case 9: - goto IL_00a2; - case 10: - num = 2104859757; - break; - case 1: - result = EClassJob.Ninja; - num = 2104859754; - break; - case 13: - num = 2104859750; - break; - case 5: - goto IL_00d4; - case 0: - goto IL_00e2; - case 3: - goto IL_00f0; - case 7: - goto IL_00fe; - case 6: - goto IL_011c; - case 2: - result = EClassJob.Summoner; - num = 2104859754; - break; - case 12: - result = classJob; - num = 2104859754; - break; - case 8: - goto IL_0155; - } - continue; - IL_011c: - num = ((classJob == EClassJob.Rogue) ? 2104859744 : 2104859755); - continue; - IL_00fe: - num = ((classJob == EClassJob.Arcanist) ? 2104859747 : 2104859751); - continue; - end_IL_002f: - break; - } - goto case EClassJob.Archer; - IL_0155: - result = EClassJob.BlackMage; - num = 2104859754; - goto IL_002f; - IL_00f0: - result = EClassJob.Paladin; - num = 2104859754; - goto IL_002f; - IL_00e2: - result = EClassJob.Monk; - num = 2104859754; - goto IL_002f; - IL_00d4: - result = EClassJob.WhiteMage; - num = 2104859754; - goto IL_002f; - IL_00a2: - result = EClassJob.Dragoon; - num = 2104859754; - goto IL_002f; - IL_0094: - result = EClassJob.Warrior; - num = 2104859754; - goto IL_002f; - } + EClassJob.Gladiator => EClassJob.Paladin, + EClassJob.Marauder => EClassJob.Warrior, + EClassJob.Pugilist => EClassJob.Monk, + EClassJob.Lancer => EClassJob.Dragoon, + EClassJob.Rogue => EClassJob.Ninja, + EClassJob.Archer => EClassJob.Bard, + EClassJob.Conjurer => EClassJob.WhiteMage, + EClassJob.Thaumaturge => EClassJob.BlackMage, + EClassJob.Arcanist => EClassJob.Summoner, + _ => classJob, + }; } public static bool IsTank(this EClassJob classJob) { - int num = ((classJob > EClassJob.Paladin) ? 2088962462 : 2088962449); - bool result = default(bool); - while (true) + switch (classJob) { - int num2 = num; - int num3 = 2088962455; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 7: - num = 2088962449; - break; - case 6: - num = ((classJob == EClassJob.Gladiator) ? 2088962452 : 2088962461); - break; - case 9: - num = ((classJob == EClassJob.Warrior) ? 2088962452 : 2088962451); - break; - case 2: - result = false; - num = 2088962463; - break; - case 5: - num = 2088962453; - break; - case 3: - result = true; - num = 2088962463; - break; - case 4: - num = ((classJob == EClassJob.DarkKnight) ? 2088962452 : 2088962455); - break; - case 10: - num = ((classJob == EClassJob.Marauder) ? 2088962452 : 2088962454); - break; - case 8: - return result; - case 0: - num = ((classJob != EClassJob.Gunbreaker) ? 2088962453 : 2088962452); - break; - case 1: - num = ((classJob == EClassJob.Paladin) ? 2088962452 : 2088962450); - break; - } + case EClassJob.Gladiator: + case EClassJob.Marauder: + case EClassJob.Paladin: + case EClassJob.Warrior: + case EClassJob.DarkKnight: + case EClassJob.Gunbreaker: + return true; + default: + return false; } } public static bool IsHealer(this EClassJob classJob) { - int num = ((classJob > EClassJob.WhiteMage) ? (-693082528) : (-693082517)); - bool result = default(bool); - while (true) + switch (classJob) { - int num2 = num; - int num3 = -693082519; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 7: - num = ((classJob == EClassJob.Astrologian) ? (-693082515) : (-693082520)); - break; - case 3: - result = false; - num = -693082519; - break; - case 8: - num = ((classJob == EClassJob.WhiteMage) ? (-693082515) : (-693082513)); - break; - case 2: - num = ((classJob == EClassJob.Conjurer) ? (-693082515) : (-693082527)); - break; - case 0: - return result; - case 1: - num = ((classJob != EClassJob.Sage) ? (-693082518) : (-693082515)); - break; - case 5: - num = -693082517; - break; - case 6: - num = -693082518; - break; - case 4: - result = true; - num = -693082519; - break; - case 9: - num = ((classJob == EClassJob.Scholar) ? (-693082515) : (-693082514)); - break; - } + case EClassJob.Conjurer: + case EClassJob.WhiteMage: + case EClassJob.Scholar: + case EClassJob.Astrologian: + case EClassJob.Sage: + return true; + default: + return false; } } public static bool IsMelee(this EClassJob classJob) { - int num = ((classJob > EClassJob.Monk) ? 1922031772 : 1922031771); - bool result = default(bool); - while (true) + switch (classJob) { - int num2 = num; - int num3 = 1922031765; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = ((classJob == EClassJob.Samurai) ? 1922031774 : 1922031769); - break; - case 11: - result = true; - num = 1922031767; - break; - case 4: - num = ((classJob == EClassJob.Dragoon) ? 1922031774 : 1922031765); - break; - case 13: - num = ((classJob == EClassJob.Monk) ? 1922031774 : 1922031762); - break; - case 7: - num = 1922031775; - break; - case 9: - num = ((classJob > EClassJob.Ninja) ? 1922031766 : 1922031761); - break; - case 6: - num = 1922031771; - break; - case 5: - num = 1922031775; - break; - case 1: - num = ((classJob == EClassJob.Lancer) ? 1922031774 : 1922031768); - break; - case 8: - num = 1922031775; - break; - case 12: - switch (classJob) - { - case EClassJob.Reaper: - case EClassJob.Viper: - case EClassJob.Beastmaster: - break; - default: - goto IL_015e; - case EClassJob.Sage: - case EClassJob.Pictomancer: - goto IL_016b; - } - goto case 11; - case 2: - return result; - case 10: - goto IL_016b; - case 0: - num = ((classJob - 29 <= EClassJob.Gladiator) ? 1922031774 : 1922031773); - break; - case 14: - { - num = ((classJob == EClassJob.Pugilist) ? 1922031774 : 1922031764); - break; - } - IL_016b: - result = false; - num = 1922031767; - break; - IL_015e: - num = 1922031760; - break; - } + case EClassJob.Pugilist: + case EClassJob.Lancer: + case EClassJob.Monk: + case EClassJob.Dragoon: + case EClassJob.Rogue: + case EClassJob.Ninja: + case EClassJob.Samurai: + case EClassJob.Reaper: + case EClassJob.Viper: + case EClassJob.Beastmaster: + return true; + default: + return false; } } public static bool IsPhysicalRanged(this EClassJob classJob) { - int num = ((classJob > EClassJob.Bard) ? 361445859 : 361445862); - bool result = default(bool); - while (true) + switch (classJob) { - int num2 = num; - int num3 = 361445858; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = 361445862; - break; - case 7: - num = ((classJob != EClassJob.Dancer) ? 361445856 : 361445863); - break; - case 6: - num = ((classJob == EClassJob.Bard) ? 361445863 : 361445858); - break; - case 2: - result = false; - num = 361445866; - break; - case 1: - num = ((classJob == EClassJob.Machinist) ? 361445863 : 361445861); - break; - case 5: - result = true; - num = 361445866; - break; - case 0: - num = 361445856; - break; - case 4: - num = ((classJob == EClassJob.Archer) ? 361445863 : 361445860); - break; - case 8: - return result; - } + case EClassJob.Archer: + case EClassJob.Bard: + case EClassJob.Machinist: + case EClassJob.Dancer: + return true; + default: + return false; } } public static bool IsCaster(this EClassJob classJob) { - int num = ((classJob > EClassJob.Summoner) ? (-152910150) : (-152910151)); - bool result = default(bool); - while (true) + switch (classJob) { - int num2 = num; - int num3 = -152910147; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - num = ((classJob - 25 <= EClassJob.Pugilist) ? (-152910149) : (-152910145)); - break; - case 7: - num = ((classJob - 35 <= EClassJob.Gladiator) ? (-152910149) : (-152910148)); - break; - case 3: - return result; - case 6: - result = true; - num = -152910146; - break; - case 2: - num = -152910155; - break; - case 8: - result = false; - num = -152910146; - break; - case 1: - num = ((classJob != EClassJob.Pictomancer) ? (-152910155) : (-152910149)); - break; - case 4: - num = ((classJob == EClassJob.Thaumaturge) ? (-152910149) : (-152910152)); - break; - case 0: - num = -152910151; - break; - } + case EClassJob.Thaumaturge: + case EClassJob.BlackMage: + case EClassJob.Arcanist: + case EClassJob.Summoner: + case EClassJob.RedMage: + case EClassJob.BlueMage: + case EClassJob.Pictomancer: + return true; + default: + return false; } } public static bool IsDps(this EClassJob classJob) { - int num = (classJob.IsMelee() ? 652988313 : 652988314); - while (true) + if (!classJob.IsMelee() && !classJob.IsPhysicalRanged()) { - int num2 = num; - int num3 = 652988315; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return true; - case 1: - num = (classJob.IsPhysicalRanged() ? 652988313 : 652988315); - break; - case 3: - num = 652988314; - break; - case 0: - return classJob.IsCaster(); - } + return classJob.IsCaster(); } + return true; } public static bool DealsPhysicalDamage(this EClassJob classJob) { - int num = (classJob.IsTank() ? (-1539913949) : (-1539913950)); - while (true) + if (!classJob.IsTank() && !classJob.IsMelee()) { - int num2 = num; - int num3 = -1539913951; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1539913950; - break; - case 2: - return true; - case 1: - return classJob.IsPhysicalRanged(); - case 3: - num = (classJob.IsMelee() ? (-1539913949) : (-1539913952)); - break; - } + return classJob.IsPhysicalRanged(); } + return true; } public static bool DealsMagicDamage(this EClassJob classJob) { - int num = (classJob.IsHealer() ? (-686525847) : (-686525846)); - while (true) + if (!classJob.IsHealer()) { - int num2 = num; - int num3 = -686525845; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return true; - case 1: - return classJob.IsCaster(); - case 0: - goto IL_004f; - } - continue; - IL_004f: - num = -686525846; + return classJob.IsCaster(); } + return true; } public static bool IsCrafter(this EClassJob classJob) { - int num = ((classJob < EClassJob.Carpenter) ? 1685178901 : 1685178902); - while (true) + if (classJob >= EClassJob.Carpenter) { - int num2 = num; - int num3 = 1685178903; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0042; - case 1: - return classJob <= EClassJob.Culinarian; - case 2: - return false; - } - continue; - IL_0042: - num = 1685178902; + return classJob <= EClassJob.Culinarian; } + return false; } public static bool IsGatherer(this EClassJob classJob) { - int num = ((classJob < EClassJob.Miner) ? (-1618937167) : (-1618937166)); - while (true) + if (classJob >= EClassJob.Miner) { - int num2 = num; - int num3 = -1618937168; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0043; - case 1: - return false; - case 2: - return classJob <= EClassJob.Fisher; - } - continue; - IL_0043: - num = -1618937166; + return classJob <= EClassJob.Fisher; } + return false; } public static bool IsLimitedJob(this EClassJob classJob) { - int num = ((classJob == EClassJob.BlueMage) ? 421326945 : 421326949); - bool result = default(bool); - while (true) + if (classJob == EClassJob.BlueMage || classJob == EClassJob.Beastmaster) { - int num2 = num; - int num3 = 421326945; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 421326949; - break; - case 1: - return result; - case 0: - result = true; - num = 421326944; - break; - case 4: - num = ((classJob != EClassJob.Beastmaster) ? 421326946 : 421326945); - break; - case 3: - result = false; - num = 421326944; - break; - } + return true; } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public static string ToFriendlyString(this EClassJob classJob) { - int num = ((classJob == EClassJob.WhiteMage) ? 1982513328 : 1982513340); - string result = default(string); - while (true) + return classJob switch { - int num2 = num; - int num3 = 1982513334; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 8: - num = 1982513340; - continue; - case 0: - result = global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1101047022); - num = 1982513330; - continue; - case 6: - result = global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1414195190); - num = 1982513330; - continue; - case 5: - result = global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1506629366); - num = 1982513330; - continue; - case 2: - num = 1982513329; - continue; - case 3: - goto IL_00bb; - case 10: - num = ((classJob == EClassJob.BlackMage) ? 1982513331 : 1982513343); - continue; - case 4: - return result; - case 1: - goto IL_00f1; - case 9: - switch (classJob) - { - case EClassJob.RedMage: - break; - case EClassJob.BlueMage: - goto IL_00bb; - case EClassJob.DarkKnight: - goto IL_00f1; - default: - goto IL_0124; - case EClassJob.Astrologian: - case EClassJob.Samurai: - goto end_IL_002d; - } - goto case 0; - case 7: - break; - IL_0124: - num = 1982513332; - continue; - IL_00f1: - result = global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(2050012990); - num = 1982513330; - continue; - IL_00bb: - result = global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(656115751); - num = 1982513330; - continue; - end_IL_002d: - break; - } - result = classJob.ToString(); - num = 1982513330; - } + EClassJob.WhiteMage => "White Mage", + EClassJob.BlackMage => "Black Mage", + EClassJob.DarkKnight => "Dark Knight", + EClassJob.RedMage => "Red Mage", + EClassJob.BlueMage => "Blue Mage", + _ => classJob.ToString(), + }; } public static bool IsInCategory(this EClassJob classJob, ClassJobCategory category) { - int num; - bool result = default(bool); - switch (classJob) + return classJob switch { - default: - num = -1564064857; - goto IL_00c1; - case EClassJob.Dragoon: - result = category.DRG; - num = -1564064876; - goto IL_00c1; - case EClassJob.Samurai: - goto IL_01af; - case EClassJob.Miner: - goto IL_01c2; - case EClassJob.Beastmaster: - goto IL_01d5; - case EClassJob.Carpenter: - goto IL_01e8; - case EClassJob.Astrologian: - goto IL_01fb; - case EClassJob.Fisher: - goto IL_020e; - case EClassJob.Sage: - goto IL_022c; - case EClassJob.Goldsmith: - goto IL_023f; - case EClassJob.Thaumaturge: - goto IL_0252; - case EClassJob.WhiteMage: - goto IL_0265; - case EClassJob.Lancer: - goto IL_0278; - case EClassJob.Leatherworker: - goto IL_028b; - case EClassJob.Pictomancer: - goto IL_029e; - case EClassJob.Botanist: - goto IL_02b1; - case EClassJob.Pugilist: - goto IL_02c4; - case EClassJob.Reaper: - goto IL_02d7; - case EClassJob.Viper: - goto IL_02ea; - case EClassJob.Paladin: - goto IL_02fd; - case EClassJob.Weaver: - goto IL_0310; - case EClassJob.Rogue: - goto IL_0323; - case EClassJob.Gunbreaker: - goto IL_0336; - case EClassJob.Culinarian: - goto IL_0354; - case EClassJob.Arcanist: - goto IL_0367; - case EClassJob.Blacksmith: - goto IL_037a; - case EClassJob.Summoner: - goto IL_038d; - case EClassJob.Marauder: - goto IL_03a0; - case EClassJob.BlueMage: - goto IL_03b3; - case EClassJob.Adventurer: - goto IL_03c6; - case EClassJob.Ninja: - goto IL_03d9; - case EClassJob.Monk: - goto IL_03ec; - case EClassJob.Archer: - goto IL_03ff; - case EClassJob.Alchemist: - goto IL_0412; - case EClassJob.Bard: - goto IL_0425; - case EClassJob.BlackMage: - goto IL_043a; - case EClassJob.Scholar: - goto IL_044d; - case EClassJob.Conjurer: - goto IL_0460; - case EClassJob.Machinist: - goto IL_0473; - case EClassJob.Gladiator: - goto IL_0486; - case EClassJob.Warrior: - goto IL_0499; - case EClassJob.Armorer: - goto IL_04ac; - case EClassJob.DarkKnight: - goto IL_04bf; - case EClassJob.Dancer: - goto IL_04d2; - case EClassJob.RedMage: - goto IL_04e5; - IL_00c1: - while (true) - { - int num2 = num; - int num3 = -1564064836; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 31: - goto end_IL_00c1; - case 5: - goto IL_01af; - case 4: - goto IL_01c2; - case 45: - goto IL_01d5; - case 14: - goto IL_01e8; - case 34: - goto IL_01fb; - case 18: - goto IL_020e; - case 9: - num = -1564064857; - break; - case 6: - goto IL_022c; - case 41: - goto IL_023f; - case 11: - goto IL_0252; - case 21: - goto IL_0265; - case 12: - goto IL_0278; - case 39: - goto IL_028b; - case 16: - goto IL_029e; - case 25: - goto IL_02b1; - case 44: - goto IL_02c4; - case 1: - goto IL_02d7; - case 2: - goto IL_02ea; - case 47: - goto IL_02fd; - case 37: - goto IL_0310; - case 38: - goto IL_0323; - case 36: - goto IL_0336; - case 27: - num = -1564064867; - break; - case 46: - goto IL_0354; - case 20: - goto IL_0367; - case 30: - goto IL_037a; - case 23: - goto IL_038d; - case 17: - goto IL_03a0; - case 29: - goto IL_03b3; - case 10: - goto IL_03c6; - case 3: - goto IL_03d9; - case 35: - goto IL_03ec; - case 26: - goto IL_03ff; - case 13: - goto IL_0412; - case 7: - goto IL_0425; - case 40: - return result; - case 15: - goto IL_043a; - case 0: - goto IL_044d; - case 43: - goto IL_0460; - case 42: - goto IL_0473; - case 8: - goto IL_0486; - case 28: - goto IL_0499; - case 22: - goto IL_04ac; - case 32: - goto IL_04bf; - case 19: - goto IL_04d2; - case 24: - goto IL_04e5; - case 33: - result = false; - num = -1564064876; - break; - } - continue; - end_IL_00c1: - break; - } - goto case EClassJob.Dragoon; - IL_04e5: - result = category.RDM; - num = -1564064876; - goto IL_00c1; - IL_04d2: - result = category.DNC; - num = -1564064876; - goto IL_00c1; - IL_04bf: - result = category.DRK; - num = -1564064876; - goto IL_00c1; - IL_04ac: - result = category.ARM; - num = -1564064876; - goto IL_00c1; - IL_0499: - result = category.WAR; - num = -1564064876; - goto IL_00c1; - IL_0486: - result = category.GLA; - num = -1564064876; - goto IL_00c1; - IL_0473: - result = category.MCH; - num = -1564064876; - goto IL_00c1; - IL_0460: - result = category.CNJ; - num = -1564064876; - goto IL_00c1; - IL_044d: - result = category.SCH; - num = -1564064876; - goto IL_00c1; - IL_043a: - result = category.BLM; - num = -1564064876; - goto IL_00c1; - IL_0425: - result = category.BRD; - num = -1564064876; - goto IL_00c1; - IL_0412: - result = category.ALC; - num = -1564064876; - goto IL_00c1; - IL_03ff: - result = category.ARC; - num = -1564064876; - goto IL_00c1; - IL_03ec: - result = category.MNK; - num = -1564064876; - goto IL_00c1; - IL_03d9: - result = category.NIN; - num = -1564064876; - goto IL_00c1; - IL_03c6: - result = category.ADV; - num = -1564064876; - goto IL_00c1; - IL_03b3: - result = category.BLU; - num = -1564064876; - goto IL_00c1; - IL_03a0: - result = category.MRD; - num = -1564064876; - goto IL_00c1; - IL_038d: - result = category.SMN; - num = -1564064876; - goto IL_00c1; - IL_037a: - result = category.BSM; - num = -1564064876; - goto IL_00c1; - IL_0367: - result = category.ACN; - num = -1564064876; - goto IL_00c1; - IL_0354: - result = category.CUL; - num = -1564064876; - goto IL_00c1; - IL_0336: - result = category.GNB; - num = -1564064876; - goto IL_00c1; - IL_0323: - result = category.ROG; - num = -1564064876; - goto IL_00c1; - IL_0310: - result = category.WVR; - num = -1564064876; - goto IL_00c1; - IL_02fd: - result = category.PLD; - num = -1564064876; - goto IL_00c1; - IL_02ea: - result = category.VPR; - num = -1564064876; - goto IL_00c1; - IL_02d7: - result = category.RPR; - num = -1564064876; - goto IL_00c1; - IL_02c4: - result = category.PGL; - num = -1564064876; - goto IL_00c1; - IL_02b1: - result = category.BTN; - num = -1564064876; - goto IL_00c1; - IL_029e: - result = category.PCT; - num = -1564064876; - goto IL_00c1; - IL_028b: - result = category.LTW; - num = -1564064876; - goto IL_00c1; - IL_0278: - result = category.LNC; - num = -1564064876; - goto IL_00c1; - IL_0265: - result = category.WHM; - num = -1564064876; - goto IL_00c1; - IL_0252: - result = category.THM; - num = -1564064876; - goto IL_00c1; - IL_023f: - result = category.GSM; - num = -1564064876; - goto IL_00c1; - IL_022c: - result = category.SGE; - num = -1564064876; - goto IL_00c1; - IL_020e: - result = category.FSH; - num = -1564064876; - goto IL_00c1; - IL_01fb: - result = category.AST; - num = -1564064876; - goto IL_00c1; - IL_01e8: - result = category.CRP; - num = -1564064876; - goto IL_00c1; - IL_01d5: - result = category.Unknown0; - num = -1564064876; - goto IL_00c1; - IL_01c2: - result = category.MIN; - num = -1564064876; - goto IL_00c1; - IL_01af: - result = category.SAM; - num = -1564064876; - goto IL_00c1; - } + EClassJob.Adventurer => category.ADV, + EClassJob.Gladiator => category.GLA, + EClassJob.Pugilist => category.PGL, + EClassJob.Marauder => category.MRD, + EClassJob.Lancer => category.LNC, + EClassJob.Archer => category.ARC, + EClassJob.Conjurer => category.CNJ, + EClassJob.Thaumaturge => category.THM, + EClassJob.Carpenter => category.CRP, + EClassJob.Blacksmith => category.BSM, + EClassJob.Armorer => category.ARM, + EClassJob.Goldsmith => category.GSM, + EClassJob.Leatherworker => category.LTW, + EClassJob.Weaver => category.WVR, + EClassJob.Alchemist => category.ALC, + EClassJob.Culinarian => category.CUL, + EClassJob.Miner => category.MIN, + EClassJob.Botanist => category.BTN, + EClassJob.Fisher => category.FSH, + EClassJob.Paladin => category.PLD, + EClassJob.Monk => category.MNK, + EClassJob.Warrior => category.WAR, + EClassJob.Dragoon => category.DRG, + EClassJob.Bard => category.BRD, + EClassJob.WhiteMage => category.WHM, + EClassJob.BlackMage => category.BLM, + EClassJob.Arcanist => category.ACN, + EClassJob.Summoner => category.SMN, + EClassJob.Scholar => category.SCH, + EClassJob.Rogue => category.ROG, + EClassJob.Ninja => category.NIN, + EClassJob.Machinist => category.MCH, + EClassJob.DarkKnight => category.DRK, + EClassJob.Astrologian => category.AST, + EClassJob.Samurai => category.SAM, + EClassJob.RedMage => category.RDM, + EClassJob.BlueMage => category.BLU, + EClassJob.Gunbreaker => category.GNB, + EClassJob.Dancer => category.DNC, + EClassJob.Reaper => category.RPR, + EClassJob.Sage => category.SGE, + EClassJob.Viper => category.VPR, + EClassJob.Pictomancer => category.PCT, + EClassJob.Beastmaster => category.Unknown0, + _ => false, + }; } public static int GetLevel(this EClassJob classJob, IDataManager dataManager) { ClassJob? rowOrDefault = dataManager.GetExcelSheet<ClassJob>().GetRowOrDefault((uint)classJob); - int num = ((!rowOrDefault.HasValue) ? (-2126726363) : (-2126726364)); - while (true) + if (!rowOrDefault.HasValue || rowOrDefault.Value.ExpArrayIndex < 0) { - int num2 = num; - int num3 = -2126726361; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return 0; - case 3: - num = ((rowOrDefault.Value.ExpArrayIndex >= 0) ? (-2126726362) : (-2126726363)); - break; - case 1: - return PlayerStateHelper.GetClassJobLevel(rowOrDefault.Value.ExpArrayIndex); - case 0: - num = -2126726364; - break; - } + return 0; } + return PlayerStateHelper.GetClassJobLevel(rowOrDefault.Value.ExpArrayIndex); } public static int GetExperience(this EClassJob classJob, IDataManager dataManager) { ClassJob? rowOrDefault = dataManager.GetExcelSheet<ClassJob>().GetRowOrDefault((uint)classJob); - int num = ((!rowOrDefault.HasValue) ? 638644957 : 638644959); - while (true) + if (!rowOrDefault.HasValue || rowOrDefault.Value.ExpArrayIndex < 0) { - int num2 = num; - int num3 = 638644958; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 638644959; - break; - case 0: - return PlayerStateHelper.GetClassJobExperience(rowOrDefault.Value.ExpArrayIndex); - case 3: - return 0; - case 1: - num = ((rowOrDefault.Value.ExpArrayIndex >= 0) ? 638644958 : 638644957); - break; - } + return 0; } + return PlayerStateHelper.GetClassJobExperience(rowOrDefault.Value.ExpArrayIndex); } public static List<Action> GetActions(this EClassJob classJob, IDataManager dataManager) { - return (from a in dataManager.GetExcelSheet<Action>().Where(delegate(Action a) - { - int num = ((a.ClassJob.RowId != (uint)classJob) ? 783603201 : 783603202); - while (true) - { - int num2 = num; - int num3 = 783603203; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 1: - return a.ClassJobLevel > 0; - case 0: - goto IL_0064; - } - continue; - IL_0064: - num = 783603202; - } - }) + return (from a in dataManager.GetExcelSheet<Action>() + where a.ClassJob.RowId == (uint)classJob && a.ClassJobLevel > 0 orderby a.ClassJobLevel select a).ToList(); } diff --git a/LLib/LLib.GameData/ECombatRoleExtensions.cs b/LLib/LLib.GameData/ECombatRoleExtensions.cs index 355e8cb..fd52415 100644 --- a/LLib/LLib.GameData/ECombatRoleExtensions.cs +++ b/LLib/LLib.GameData/ECombatRoleExtensions.cs @@ -4,34 +4,18 @@ public static class ECombatRoleExtensions { public static ECombatRole GetCombatRole(this EClassJob classJob) { - int num = ((!classJob.IsTank()) ? 1662519896 : 1662519898); - while (true) + if (classJob.IsTank()) { - int num2 = num; - int num3 = 1662519899; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return ECombatRole.None; - case 1: - return ECombatRole.Tank; - case 2: - num = 1662519898; - break; - case 3: - num = ((!classJob.IsHealer()) ? 1662519903 : 1662519902); - break; - case 4: - num = ((!classJob.IsDps()) ? 1662519899 : 1662519901); - break; - case 6: - return ECombatRole.Dps; - case 5: - return ECombatRole.Healer; - } + return ECombatRole.Tank; } + if (classJob.IsHealer()) + { + return ECombatRole.Healer; + } + if (classJob.IsDps()) + { + return ECombatRole.Dps; + } + return ECombatRole.None; } } diff --git a/LLib/LLib.GameData/GameStateHelper.cs b/LLib/LLib.GameData/GameStateHelper.cs index 4f7f1a0..17e7c36 100644 --- a/LLib/LLib.GameData/GameStateHelper.cs +++ b/LLib/LLib.GameData/GameStateHelper.cs @@ -1,11 +1,8 @@ -using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; -using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.Character; @@ -48,116 +45,55 @@ public sealed class GameStateHelper public bool IsFlyingUnlocked(uint territoryId) { - uint value; - int num = ((!_territoryToAetherCurrentCompFlgSet.TryGetValue(territoryId, out value)) ? 403824667 : 403824666); - while (true) + if (_territoryToAetherCurrentCompFlgSet.TryGetValue(territoryId, out var value)) { - int num2 = num; - int num3 = 403824667; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_004e; - case 0: - return false; - case 1: - return PlayerStateHelper.IsAetherCurrentZoneComplete(value); - } - continue; - IL_004e: - num = 403824666; + return PlayerStateHelper.IsAetherCurrentZoneComplete(value); } + return false; } public bool IsFlyingUnlockedInCurrentZone() { - return IsFlyingUnlocked(_206E_200D_200F_206A_202B_200B_206B_206B_200E_200D_202A_206A_200D_206F_200E_200E_200E_206D_202A_206E_206C_200F_200D_206A_200D_200F_200E_206D_206E_206B_200E_200F_202E_200E_202C_200C_202A_206E_200F_206E_202E(_clientState)); + return IsFlyingUnlocked(_clientState.TerritoryType); } public unsafe ushort? GetMountId() { - IPlayerCharacter playerCharacter = _200F_206D_206D_202B_202B_200E_200D_200F_200C_202C_200E_202A_200E_202A_206D_202D_206D_200E_202B_200E_202C_202A_200D_206D_202E_202E_202A_202D_206D_206B_206A_202D_202D_200D_202C_206C_206B_200F_202B_202B_202E(_objectTable); - int num = ((playerCharacter != null) ? 1199000575 : 1199000574); - BattleChara* ptr = default(BattleChara*); - while (true) + IPlayerCharacter localPlayer = _objectTable.LocalPlayer; + if (localPlayer == null) { - int num2 = num; - int num3 = 1199000570; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - num = ((ptr->Mount.MountId != 0) ? 1199000568 : 1199000569); - break; - case 4: - return null; - case 5: - ptr = (BattleChara*)_202B_206A_206C_202B_206B_202C_202C_206B_206F_206E_206D_206F_202E_200B_206D_202E_206A_206A_206A_200C_206E_200B_206C_200C_200D_206D_202C_206E_206D_202E_200B_202B_206C_202A_202E_206A_202E_206B_202E_202B_202E((IGameObject)playerCharacter); - num = ((ptr == null) ? 1199000569 : 1199000571); - break; - case 3: - return null; - case 2: - return ptr->Mount.MountId; - case 0: - num = 1199000574; - break; - } + return null; } + BattleChara* address = (BattleChara*)localPlayer.Address; + if (address == null || address->Mount.MountId == 0) + { + return null; + } + return address->Mount.MountId; } public unsafe bool HasStatusPreventingMount() { - int num = ((!_202D_206E_206A_206C_206E_202D_200B_200D_200B_202E_200B_206E_200E_200D_200B_200E_202C_206F_206A_206C_202C_202B_200D_206E_202A_202D_202C_202D_200B_200F_200E_206E_200F_206E_206C_202A_206A_202D_202C_202E(_condition, ConditionFlag.Swimming)) ? (-1891317293) : (-1891317282)); - IPlayerCharacter playerCharacter = default(IPlayerCharacter); - StatusManager* statusManager = default(StatusManager*); - while (true) + if (_condition[ConditionFlag.Swimming] && !IsFlyingUnlockedInCurrentZone()) { - int num2 = num; - int num3 = -1891317286; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 8: - return false; - case 4: - num = (IsFlyingUnlockedInCurrentZone() ? (-1891317293) : (-1891317288)); - break; - case 7: - { - BattleChara* ptr = (BattleChara*)_202B_206A_206C_202B_206B_202C_202C_206B_206F_206E_206D_206F_202E_200B_206D_202E_206A_206A_206A_200C_206E_200B_206C_200C_200D_206D_202C_206E_206D_202E_200B_202B_206C_202A_202E_206A_202E_206B_202E_202B_202E((IGameObject)playerCharacter); - statusManager = ptr->GetStatusManager(); - num = (statusManager->HasStatus(1151u) ? (-1891317287) : (-1891317296)); - break; - } - case 5: - num = -1891317282; - break; - case 9: - num = (PlayerStateHelper.IsAnyMountUnlocked() ? (-1891317286) : (-1891317285)); - break; - case 10: - num = ((!statusManager->HasStatus(1945u)) ? (-1891317284) : (-1891317287)); - break; - case 6: - return HasStatusPreventingMountOrSprint(); - case 3: - return true; - case 1: - return true; - case 0: - playerCharacter = _200F_206D_206D_202B_202B_200E_200D_200F_200C_202C_200E_202A_200E_202A_206D_202D_206D_200E_202B_200E_202C_202A_200D_206D_202E_202E_202A_202D_206D_206B_206A_202D_202D_200D_202C_206C_206B_200F_202B_202B_202E(_objectTable); - num = ((playerCharacter != null) ? (-1891317283) : (-1891317294)); - break; - case 2: - return true; - } + return true; } + if (!PlayerStateHelper.IsAnyMountUnlocked()) + { + return true; + } + IPlayerCharacter localPlayer = _objectTable.LocalPlayer; + if (localPlayer == null) + { + return false; + } + BattleChara* address = (BattleChara*)localPlayer.Address; + StatusManager* statusManager = address->GetStatusManager(); + if (statusManager->HasStatus(1151u) || statusManager->HasStatus(1945u)) + { + return true; + } + return HasStatusPreventingMountOrSprint(); } public bool HasStatusPreventingSprint() @@ -165,178 +101,87 @@ public sealed class GameStateHelper return HasStatusPreventingMountOrSprint(); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe bool Mount(uint preferredMountId = 0u) { - int num = ((!_202D_206E_206A_206C_206E_202D_200B_200D_200B_202E_200B_206E_200E_200D_200B_200E_202C_206F_206A_206C_202C_202B_200D_206E_202A_202D_202C_202D_200B_200F_200E_206E_200F_206E_206C_202A_206A_202D_202C_202E(_condition, ConditionFlag.Mounted)) ? (-2056897107) : (-2056897108)); - while (true) + if (_condition[ConditionFlag.Mounted]) { - int num2 = num; - int num3 = -2056897114; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return true; + } + if (HasStatusPreventingMount()) + { + _logger.LogDebug("Cannot mount: status or condition prevents it"); + return false; + } + if (preferredMountId != 0 && PlayerStateHelper.IsMountUnlocked(preferredMountId)) + { + if (ActionManager.Instance()->GetActionStatus(ActionType.Mount, preferredMountId, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0) { - case 13: - num = -2056897108; - break; - case 9: - num = ((ActionManager.Instance()->GetActionStatus(ActionType.GeneralAction, 9u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) != 0) ? (-2056897118) : (-2056897113)); - break; - case 3: - return false; - case 8: - num = ((!PlayerStateHelper.IsMountUnlocked(preferredMountId)) ? (-2056897105) : (-2056897116)); - break; - case 4: - return false; - case 7: - _202D_202E_206F_202A_206D_206A_206B_200C_202A_200D_206B_202C_202C_202C_206E_202E_206F_202E_200B_206C_206E_202A_206A_202D_200F_206B_200D_202D_206D_200F_202D_202C_206E_206D_200D_202B_202B_200C_202D_206A_202E((ILogger)_logger, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1476715702), new object[1] { preferredMountId }); - num = ((!ActionManager.Instance()->UseAction(ActionType.Mount, preferredMountId, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null)) ? (-2056897115) : (-2056897117)); - break; - case 6: - _200B_206F_202B_202C_200E_206D_206A_202A_202C_200B_202B_206D_206F_200D_206D_206A_206A_202E_200F_202C_200E_202E_200C_202E_206D_202C_200D_206E_200B_200E_206B_202C_200B_200E_206F_202E_202D_206C_202D_202E((ILogger)_logger, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1773045698), Array.Empty<object>()); + _logger.LogDebug("Attempting preferred mount {Id}", preferredMountId); + if (ActionManager.Instance()->UseAction(ActionType.Mount, preferredMountId, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null)) + { + _logger.LogInformation("Mounted (preferred {Id})", preferredMountId); + return true; + } + } + return false; + } + if (ActionManager.Instance()->GetActionStatus(ActionType.GeneralAction, 9u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0) + { + _logger.LogDebug("Attempting mount roulette"); + if (ActionManager.Instance()->UseAction(ActionType.GeneralAction, 9u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null)) + { + _logger.LogInformation("Mounted (roulette)"); return true; - case 10: - return true; - case 1: - _202D_202E_206F_202A_206D_206A_206B_200C_202A_200D_206B_202C_202C_202C_206E_202E_206F_202E_200B_206C_206E_202A_206A_202D_200F_206B_200D_202D_206D_200F_202D_202C_206E_206D_200D_202B_202B_200C_202D_206A_202E((ILogger)_logger, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1930041306), Array.Empty<object>()); - num = ((!ActionManager.Instance()->UseAction(ActionType.GeneralAction, 9u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null)) ? (-2056897118) : (-2056897120)); - break; - case 2: - num = ((ActionManager.Instance()->GetActionStatus(ActionType.Mount, preferredMountId, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) != 0) ? (-2056897115) : (-2056897119)); - break; - case 5: - _200B_206F_202B_202C_200E_206D_206A_202A_202C_200B_202B_206D_206F_200D_206D_206A_206A_202E_200F_202C_200E_202E_200C_202E_206D_202C_200D_206E_200B_200E_206B_202C_200B_200E_206F_202E_202D_206C_202D_202E((ILogger)_logger, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-297265243), new object[1] { preferredMountId }); - return true; - case 11: - num = ((!HasStatusPreventingMount()) ? (-2056897114) : (-2056897110)); - break; - case 0: - num = ((preferredMountId == 0) ? (-2056897105) : (-2056897106)); - break; - case 12: - _202D_202E_206F_202A_206D_206A_206B_200C_202A_200D_206B_202C_202C_202C_206E_202E_206F_202E_200B_206C_206E_202A_206A_202D_200F_206B_200D_202D_206D_200F_202D_202C_206E_206D_200D_202B_202B_200C_202D_206A_202E((ILogger)_logger, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1799024315), Array.Empty<object>()); - return false; } } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe bool Unmount() { - int num = (_202D_206E_206A_206C_206E_202D_200B_200D_200B_202E_200B_206E_200E_200D_200B_200E_202C_206F_206A_206C_202C_202B_200D_206E_202A_202D_202C_202D_200B_200F_200E_206E_200F_206E_206C_202A_206A_202D_202C_202E(_condition, ConditionFlag.Mounted) ? (-837931161) : (-837931166)); - while (true) + if (!_condition[ConditionFlag.Mounted]) { - int num2 = num; - int num3 = -837931167; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -837931166; - break; - case 3: - return true; - case 1: - _202D_202E_206F_202A_206D_206A_206B_200C_202A_200D_206B_202C_202C_202C_206E_202E_206F_202E_200B_206C_206E_202A_206A_202D_200F_206B_200D_202D_206D_200F_202D_202C_206E_206D_200D_202B_202B_200C_202D_206A_202E((ILogger)_logger, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-714588632), Array.Empty<object>()); - return false; - case 0: - _202D_202E_206F_202A_206D_206A_206B_200C_202A_200D_206B_202C_202C_202C_206E_202E_206F_202E_200B_206C_206E_202A_206A_202D_200F_206B_200D_202D_206D_200F_202D_202C_206E_206D_200D_202B_202B_200C_202D_206A_202E((ILogger)_logger, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1741093506), Array.Empty<object>()); - num = ((!ActionManager.Instance()->UseAction(ActionType.GeneralAction, 23u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null)) ? (-837931163) : (-837931164)); - break; - case 6: - num = ((ActionManager.Instance()->GetActionStatus(ActionType.GeneralAction, 23u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0) ? (-837931167) : (-837931168)); - break; - case 5: - _200B_206F_202B_202C_200E_206D_206A_202A_202C_200B_202B_206D_206F_200D_206D_206A_206A_202E_200F_202C_200E_202E_200C_202E_206D_202C_200D_206E_200B_200E_206B_202C_200B_200E_206F_202E_202D_206C_202D_202E((ILogger)_logger, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-97506348), Array.Empty<object>()); - return true; - case 4: - return false; - } + return true; } + if (ActionManager.Instance()->GetActionStatus(ActionType.GeneralAction, 23u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) != 0) + { + _logger.LogDebug("Cannot unmount: action on cooldown"); + return false; + } + _logger.LogDebug("Attempting dismount"); + if (ActionManager.Instance()->UseAction(ActionType.GeneralAction, 23u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null)) + { + _logger.LogInformation("Unmounted"); + return true; + } + return false; } public unsafe int? GetFreeInventorySlots() { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? (-1831709052) : (-1831709042)); - int num7 = default(int); - int num8 = default(int); - InventoryType inventoryType = default(InventoryType); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - InventoryItem* inventorySlot = default(InventoryItem*); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1831709050; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return null; + } + int num = 0; + for (InventoryType inventoryType = InventoryType.Inventory1; inventoryType <= InventoryType.Inventory4; inventoryType++) + { + InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(inventoryType); + if (inventoryContainer == null) { - case 1: - { - int num10 = num7; - num3 = 1; - num4 = num10; - int num11 = num4 ^ num3; - int num12 = num4 & num3; - num7 = num11 + (num12 + num12); - num = -1831709055; - break; - } - case 7: - { - int num9 = num8; - num3 = 1; - num4 = num9; - num8 = (num4 | num3) + (num4 & num3); - num = -1831709054; - break; - } - case 12: - num = ((inventoryType <= InventoryType.Inventory4) ? (-1831709053) : (-1831709050)); - break; - case 11: - num8 = 0; - num = -1831709054; - break; - case 8: return null; - case 0: - return num7; - case 13: - num = -1831709042; - break; - case 3: - return null; - case 5: - inventoryContainer = ptr->GetInventoryContainer(inventoryType); - num = ((inventoryContainer != null) ? (-1831709043) : (-1831709051)); - break; - case 10: - num = ((inventorySlot->ItemId != 0) ? (-1831709055) : (-1831709049)); - break; - case 4: - num = ((num8 < inventoryContainer->Size) ? (-1831709056) : (-1831709041)); - break; - case 6: - inventorySlot = inventoryContainer->GetInventorySlot(num8); - num = ((inventorySlot == null) ? (-1831709049) : (-1831709044)); - break; - case 2: - num7 = 0; - inventoryType = InventoryType.Inventory1; - num = -1831709046; - break; - case 9: - inventoryType++; - num = -1831709046; - break; + } + for (int i = 0; i < inventoryContainer->Size; i++) + { + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(i); + if (inventorySlot == null || inventorySlot->ItemId == 0) + { + num++; + } } } + return num; } public uint GetItemLevel(uint itemId) @@ -344,127 +189,36 @@ public sealed class GameStateHelper return _dataManager.GetExcelSheet<Item>().GetRowOrDefault(itemId)?.LevelItem.RowId ?? 0; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe bool IsLoadingScreenVisible() { - AtkUnitBase* addonPtr; - int num = ((!_gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(108265439), out addonPtr)) ? (-1210184014) : (-1210184015)); - while (true) + if (_gameGui.TryGetAddonByName<AtkUnitBase>("FadeMiddle", out var addonPtr) && LAddon.IsAddonReady(addonPtr) && addonPtr->IsVisible) { - int num2 = num; - int num3 = -1210184006; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 10: - return true; - case 4: - num = ((!LAddon.IsAddonReady(addonPtr)) ? (-1210184004) : (-1210184003)); - break; - case 0: - num = ((!LAddon.IsAddonReady(addonPtr)) ? (-1210184008) : (-1210184013)); - break; - case 6: - return false; - case 5: - return true; - case 3: - num = -1210184015; - break; - case 8: - num = ((!_gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-342678724), out addonPtr)) ? (-1210184008) : (-1210184006)); - break; - case 9: - num = ((!addonPtr->IsVisible) ? (-1210184008) : (-1210184016)); - break; - case 2: - num = ((!_gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(190562947), out addonPtr)) ? (-1210184004) : (-1210184002)); - break; - case 11: - num = ((!LAddon.IsAddonReady(addonPtr)) ? (-1210184014) : (-1210184005)); - break; - case 7: - num = ((!addonPtr->IsVisible) ? (-1210184004) : (-1210184010)); - break; - case 12: - return true; - case 1: - num = ((!addonPtr->IsVisible) ? (-1210184014) : (-1210184001)); - break; - } + return true; } + if (_gameGui.TryGetAddonByName<AtkUnitBase>("FadeBack", out addonPtr) && LAddon.IsAddonReady(addonPtr) && addonPtr->IsVisible) + { + return true; + } + if (_gameGui.TryGetAddonByName<AtkUnitBase>("NowLoading", out addonPtr) && LAddon.IsAddonReady(addonPtr) && addonPtr->IsVisible) + { + return true; + } + return false; } private unsafe bool HasStatusPreventingMountOrSprint() { - IPlayerCharacter playerCharacter = _200F_206D_206D_202B_202B_200E_200D_200F_200C_202C_200E_202A_200E_202A_206D_202D_206D_200E_202B_200E_202C_202A_200D_206D_202E_202E_202A_202D_206D_206B_206A_202D_202D_200D_202C_206C_206B_200F_202B_202B_202E(_objectTable); - int num = ((playerCharacter != null) ? 509350324 : 509350327); - StatusManager* statusManager = default(StatusManager*); - while (true) + IPlayerCharacter localPlayer = _objectTable.LocalPlayer; + if (localPlayer == null) { - int num2 = num; - int num3 = 509350321; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = (statusManager->HasStatus(404u) ? 509350322 : 509350323); - break; - case 1: - return statusManager->HasStatus(2730u); - case 7: - num = (statusManager->HasStatus(2729u) ? 509350322 : 509350320); - break; - case 4: - num = 509350327; - break; - case 6: - return false; - case 2: - num = (statusManager->HasStatus(416u) ? 509350322 : 509350326); - break; - case 5: - { - BattleChara* ptr = (BattleChara*)_202B_206A_206C_202B_206B_202C_202C_206B_206F_206E_206D_206F_202E_200B_206D_202E_206A_206A_206A_200C_206E_200B_206C_200C_200D_206D_202C_206E_206D_202E_200B_202B_206C_202A_202E_206A_202E_206B_202E_202B_202E((IGameObject)playerCharacter); - statusManager = ptr->GetStatusManager(); - num = (statusManager->HasStatus(565u) ? 509350322 : 509350321); - break; - } - case 3: - return true; - } + return false; } - } - - static uint _206E_200D_200F_206A_202B_200B_206B_206B_200E_200D_202A_206A_200D_206F_200E_200E_200E_206D_202A_206E_206C_200F_200D_206A_200D_200F_200E_206D_206E_206B_200E_200F_202E_200E_202C_200C_202A_206E_200F_206E_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static IPlayerCharacter _200F_206D_206D_202B_202B_200E_200D_200F_200C_202C_200E_202A_200E_202A_206D_202D_206D_200E_202B_200E_202C_202A_200D_206D_202E_202E_202A_202D_206D_206B_206A_202D_202D_200D_202C_206C_206B_200F_202B_202B_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static nint _202B_206A_206C_202B_206B_202C_202C_206B_206F_206E_206D_206F_202E_200B_206D_202E_206A_206A_206A_200C_206E_200B_206C_200C_200D_206D_202C_206E_206D_202E_200B_202B_206C_202A_202E_206A_202E_206B_202E_202B_202E(IGameObject P_0) - { - return P_0.Address; - } - - static bool _202D_206E_206A_206C_206E_202D_200B_200D_200B_202E_200B_206E_200E_200D_200B_200E_202C_206F_206A_206C_202C_202B_200D_206E_202A_202D_202C_202D_200B_200F_200E_206E_200F_206E_206C_202A_206A_202D_202C_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static void _202D_202E_206F_202A_206D_206A_206B_200C_202A_200D_206B_202C_202C_202C_206E_202E_206F_202E_200B_206C_206E_202A_206A_202D_200F_206B_200D_202D_206D_200F_202D_202C_206E_206D_200D_202B_202B_200C_202D_206A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _200B_206F_202B_202C_200E_206D_206A_202A_202C_200B_202B_206D_206F_200D_206D_206A_206A_202E_200F_202C_200E_202E_200C_202E_206D_202C_200D_206E_200B_200E_206B_202C_200B_200E_206F_202E_202D_206C_202D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); + BattleChara* address = (BattleChara*)localPlayer.Address; + StatusManager* statusManager = address->GetStatusManager(); + if (!statusManager->HasStatus(565u) && !statusManager->HasStatus(404u) && !statusManager->HasStatus(416u) && !statusManager->HasStatus(2729u)) + { + return statusManager->HasStatus(2730u); + } + return true; } } diff --git a/LLib/LLib.GameData/GrandCompanyHelper.cs b/LLib/LLib.GameData/GrandCompanyHelper.cs index 3679717..613a23a 100644 --- a/LLib/LLib.GameData/GrandCompanyHelper.cs +++ b/LLib/LLib.GameData/GrandCompanyHelper.cs @@ -13,50 +13,20 @@ public static class GrandCompanyHelper public unsafe static byte GetGrandCompanyId() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? (-333040930) : (-333040931)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -333040929; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 1: - return ptr->GrandCompany; - case 2: - return 0; - } - continue; - IL_004b: - num = -333040931; + return 0; } + return ptr->GrandCompany; } public unsafe static byte GetGrandCompanyRank() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 871865385 : 871865386); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 871865387; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 2: - return ptr->GetGrandCompanyRank(); - case 1: - return 0; - } - continue; - IL_0049: - num = 871865386; + return 0; } + return ptr->GetGrandCompanyRank(); } } diff --git a/LLib/LLib.GameData/PlayerStateHelper.cs b/LLib/LLib.GameData/PlayerStateHelper.cs index a85bcd8..cb94457 100644 --- a/LLib/LLib.GameData/PlayerStateHelper.cs +++ b/LLib/LLib.GameData/PlayerStateHelper.cs @@ -11,1001 +11,393 @@ public static class PlayerStateHelper public unsafe static string GetCharacterName() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 622565099 : 622565096); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 622565097; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 2: - return ptr->CharacterNameString; - case 1: - return string.Empty; - } - continue; - IL_004b: - num = 622565096; + return string.Empty; } + return ptr->CharacterNameString; } public unsafe static string GetOnlineId() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 1549891514 : 1549891513); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1549891512; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 2: - return ptr->OnlineIdString; - case 1: - return string.Empty; - } - continue; - IL_0049: - num = 1549891513; + return string.Empty; } + return ptr->OnlineIdString; } public unsafe static byte GetCurrentClassJobId() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 1578162240 : 1578162241); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1578162240; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return ptr->CurrentClassJobId; - case 1: - return 0; - case 2: - goto IL_0052; - } - continue; - IL_0052: - num = 1578162241; + return 0; } + return ptr->CurrentClassJobId; } public unsafe static byte GetRace() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 815415223 : 815415220); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 815415221; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 1: - return 0; - case 2: - return ptr->Race; - } - continue; - IL_004b: - num = 815415220; + return 0; } + return ptr->Race; } public unsafe static byte GetSex() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? (-2146489787) : (-2146489786)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -2146489788; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 2: - return 0; - case 1: - return ptr->Sex; - } - continue; - IL_004b: - num = -2146489786; + return 0; } + return ptr->Sex; } public unsafe static byte GetTribe() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 2134298848 : 2134298851); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 2134298850; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return ptr->Tribe; - case 1: - return 0; - case 0: - goto IL_0052; - } - continue; - IL_0052: - num = 2134298851; + return 0; } + return ptr->Tribe; } public unsafe static byte GetMaxExpansion() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 314367618 : 314367619); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 314367618; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_004b; - case 1: - return 0; - case 0: - return ptr->MaxExpansion; - } - continue; - IL_004b: - num = 314367619; + return 0; } + return ptr->MaxExpansion; } public unsafe static byte GetStartTown() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? (-331480694) : (-331480695)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -331480693; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return ptr->StartTown; - case 2: - return 0; - case 0: - goto IL_0052; - } - continue; - IL_0052: - num = -331480695; + return 0; } + return ptr->StartTown; } public unsafe static byte GetFirstClass() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 167290764 : 167290767); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 167290765; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 1: - return ptr->FirstClass; - case 2: - return 0; - } - continue; - IL_004b: - num = 167290767; + return 0; } + return ptr->FirstClass; } public unsafe static short GetClassJobLevel(int expArrayIndex) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? (-683518906) : (-683518905)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -683518906; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_004c; - case 0: - return ptr->ClassJobLevels[expArrayIndex]; - case 1: - return 0; - } - continue; - IL_004c: - num = -683518905; + return 0; } + return ptr->ClassJobLevels[expArrayIndex]; } public unsafe static int GetClassJobExperience(int expArrayIndex) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 1898247155 : 1898247154); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1898247155; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return ptr->ClassJobExperience[expArrayIndex]; - case 1: - return 0; - case 2: - goto IL_005f; - } - continue; - IL_005f: - num = 1898247154; + return 0; } + return ptr->ClassJobExperience[expArrayIndex]; } public unsafe static uint GetFreeAetheryteId() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 2110699587 : 2110699584); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 2110699586; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 1: - return ptr->FreeAetheryteId; - case 2: - return 0u; - } - continue; - IL_0049: - num = 2110699584; + return 0u; } + return ptr->FreeAetheryteId; } public unsafe static uint GetFreeAetherytePSPlusId() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 524234665 : 524234666); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 524234664; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 2: - return 0u; - case 1: - return ptr->FreeAetherytePSPlus; - } - continue; - IL_0049: - num = 524234666; + return 0u; } + return ptr->FreeAetherytePSPlus; } public unsafe static uint GetFreeAetheryteNSOId() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 977827610 : 977827611); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 977827610; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return ptr->FreeAetheryteNSO; - case 1: - return 0u; - case 2: - goto IL_0054; - } - continue; - IL_0054: - num = 977827611; + return 0u; } + return ptr->FreeAetheryteNSO; } public static bool IsFreeAetheryte(uint aetheryteId) { - int num = ((GetFreeAetheryteId() == aetheryteId) ? (-1031394487) : (-1031394488)); - while (true) + if (GetFreeAetheryteId() != aetheryteId && GetFreeAetherytePSPlusId() != aetheryteId) { - int num2 = num; - int num3 = -1031394487; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return GetFreeAetheryteNSOId() == aetheryteId; - case 0: - return true; - case 2: - num = -1031394488; - break; - case 1: - num = ((GetFreeAetherytePSPlusId() == aetheryteId) ? (-1031394487) : (-1031394486)); - break; - } + return GetFreeAetheryteNSOId() == aetheryteId; } + return true; } public unsafe static bool IsFavouriteAetheryte(uint aetheryteId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? (-814303290) : (-814303295)); - int num8 = default(int); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -814303296; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return false; + } + for (int i = 0; i < ptr->FavouriteAetheryteCount; i++) + { + if (ptr->FavouriteAetherytes[i] == aetheryteId) { - case 4: - num = -814303295; - break; - case 7: - num = ((ptr->FavouriteAetherytes[num8] != aetheryteId) ? (-814303294) : (-814303291)); - break; - case 3: - return false; - case 0: - num = ((num8 < ptr->FavouriteAetheryteCount) ? (-814303289) : (-814303293)); - break; - case 6: - num8 = 0; - num = -814303296; - break; - case 1: - return false; - case 5: return true; - case 2: - { - int num7 = num8; - num3 = 1; - num4 = num7; - num8 = (num4 | num3) + (num4 & num3); - num = -814303296; - break; - } } } + return false; } public unsafe static List<ushort> GetFavouriteAetherytes() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? (-894678688) : (-894678683)); - List<ushort> list = default(List<ushort>); - ushort num6 = default(ushort); - int num5 = default(int); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -894678684; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return new List<ushort>(); + } + List<ushort> list = new List<ushort>(); + for (int i = 0; i < ptr->FavouriteAetheryteCount; i++) + { + ushort num = ptr->FavouriteAetherytes[i]; + if (num != 0) { - case 0: - num = -894678683; - break; - case 3: - list.Add(num6); - num = -894678686; - break; - case 5: - num6 = ptr->FavouriteAetherytes[num5]; - num = ((num6 == 0) ? (-894678686) : (-894678681)); - break; - case 7: - return list; - case 4: - list = new List<ushort>(); - num5 = 0; - num = -894678682; - break; - case 6: - { - int num7 = num5; - num3 = 1; - num4 = num7; - num5 = (num4 | num3) + (num4 & num3); - num = -894678682; - break; - } - case 2: - num = ((num5 < ptr->FavouriteAetheryteCount) ? (-894678687) : (-894678685)); - break; - case 1: - return new List<ushort>(); + list.Add(num); } } + return list; } public unsafe static uint GetHomeAetheryteId() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 1546678320 : 1546678323); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1546678321; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 2: - return 0u; - case 1: - return ptr->HomeAetheryteId; - } - continue; - IL_0049: - num = 1546678323; + return 0u; } + return ptr->HomeAetheryteId; } public unsafe static bool HasFavouriteSlotAvailable() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? (-1110880782) : (-1110880783)); - int num7 = default(int); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1110880781; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return false; + } + for (int i = 0; i < ptr->FavouriteAetheryteCount; i++) + { + if (ptr->FavouriteAetherytes[i] == 0) { - case 7: - num = -1110880783; - break; - case 3: - num = ((num7 < ptr->FavouriteAetheryteCount) ? (-1110880778) : (-1110880781)); - break; - case 2: - return false; - case 0: - return false; - case 1: - num7 = 0; - num = -1110880784; - break; - case 4: - { - int num8 = num7; - num3 = 1; - num4 = num8; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - num7 = num9 + (num10 + num10); - num = -1110880784; - break; - } - case 6: return true; - case 5: - num = ((ptr->FavouriteAetherytes[num7] != 0) ? (-1110880777) : (-1110880779)); - break; } } + return false; } public unsafe static bool IsMentor() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-6609924) : (-6609923)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -6609924; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return false; - case 1: - return ptr->IsMentor(); - case 2: - goto IL_0054; - } - continue; - IL_0054: - num = -6609923; + return ptr->IsMentor(); } + return false; } public unsafe static bool IsBattleMentor() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 688011153 : 688011154); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 688011155; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 1: - return ptr->IsBattleMentor(); - case 2: - return false; - } - continue; - IL_004b: - num = 688011154; + return ptr->IsBattleMentor(); } + return false; } public unsafe static bool IsTradeMentor() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-1068792182) : (-1068792183)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -1068792181; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 2: - return ptr->IsTradeMentor(); - case 1: - return false; - } - continue; - IL_0049: - num = -1068792183; + return ptr->IsTradeMentor(); } + return false; } public unsafe static bool IsNovice() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-1157353749) : (-1157353752)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -1157353751; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 1: - return ptr->IsNovice(); - case 2: - return false; - } - continue; - IL_0049: - num = -1157353752; + return ptr->IsNovice(); } + return false; } public unsafe static bool IsReturner() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-146346552) : (-146346551)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -146346552; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0049; - case 1: - return ptr->IsReturner(); - case 0: - return false; - } - continue; - IL_0049: - num = -146346551; + return ptr->IsReturner(); } + return false; } public unsafe static byte GetMentorVersion() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 1350105722 : 1350105721); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1350105723; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return ptr->MentorVersion; - case 2: - return 0; - case 0: - goto IL_0054; - } - continue; - IL_0054: - num = 1350105721; + return 0; } + return ptr->MentorVersion; } public unsafe static bool IsPlayerStateFlagSet(PlayerStateFlag flag) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-1522263479) : (-1522263478)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -1522263477; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 1: - return ptr->IsPlayerStateFlagSet(flag); - case 0: - goto IL_0055; - } - continue; - IL_0055: - num = -1522263478; + return ptr->IsPlayerStateFlagSet(flag); } + return false; } public unsafe static byte GetBeastTribeRank(byte alliedSocietyId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 1418987817 : 1418987816); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1418987817; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0049; - case 0: - return ptr->GetBeastTribeRank(alliedSocietyId); - case 1: - return 0; - } - continue; - IL_0049: - num = 1418987816; + return 0; } + return ptr->GetBeastTribeRank(alliedSocietyId); } public unsafe static int GetCurrentPose(EmoteController.PoseType poseType) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? (-1004004491) : (-1004004490)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1004004492; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 2: - return 0; - case 1: - return ptr->CurrentPose(poseType); - } - continue; - IL_004b: - num = -1004004490; + return 0; } + return ptr->CurrentPose(poseType); } public unsafe static byte GetGoldSaucerContentStatus() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 1519531706 : 1519531707); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1519531706; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_004b; - case 1: - return 0; - case 0: - return ptr->GoldSaucerContentStatus; - } - continue; - IL_004b: - num = 1519531707; + return 0; } + return ptr->GoldSaucerContentStatus; } public unsafe static uint GetActiveFestivalId(int index) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 217589694 : 217589693); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 217589695; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004e; - case 1: - return ptr->ActiveFestivalIds[index]; - case 2: - return 0u; - } - continue; - IL_004e: - num = 217589693; + return 0u; } + return ptr->ActiveFestivalIds[index]; } public unsafe static uint GetActiveFestivalPhase(int index) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? (-2009718353) : (-2009718356)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -2009718355; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return ptr->ActiveFestivalPhases[index]; - case 1: - return 0u; - case 0: - goto IL_0061; - } - continue; - IL_0061: - num = -2009718356; + return 0u; } + return ptr->ActiveFestivalPhases[index]; } public unsafe static bool IsMeister(uint classJobId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 340405753 : 340405752); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 340405753; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return false; - case 1: - return ptr->IsMeisterFlag(classJobId); - case 2: - goto IL_0055; - } - continue; - IL_0055: - num = 340405752; + return ptr->IsMeisterFlag(classJobId); } + return false; } public unsafe static bool IsMeisterWithSoulStone(uint classJobId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 1639624127 : 1639624124); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 1639624125; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 1: - return ptr->IsMeisterFlagAndHasSoulStoneEquipped(classJobId); - case 2: - return false; - } - continue; - IL_004b: - num = 1639624124; + return ptr->IsMeisterFlagAndHasSoulStoneEquipped(classJobId); } + return false; } public unsafe static bool IsMeisterMaxCount() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-1571337682) : (-1571337683)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -1571337681; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 2: - return ptr->IsMeisterFlagMaxCount(); - case 1: - return false; - } - continue; - IL_0049: - num = -1571337683; + return ptr->IsMeisterFlagMaxCount(); } + return false; } public unsafe static byte GetMeisterFlag() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? (-899158117) : (-899158118)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -899158117; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_004b; - case 1: - return 0; - case 0: - return ptr->MeisterFlag; - } - continue; - IL_004b: - num = -899158118; + return 0; } + return ptr->MeisterFlag; } public unsafe static byte GetDeliveryLevel() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 1942457918 : 1942457917); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1942457916; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 2: - return ptr->DeliveryLevel; - case 1: - return 0; - } - continue; - IL_004b: - num = 1942457917; + return 0; } + return ptr->DeliveryLevel; } public unsafe static int GetPenaltyTimestamp(int index) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 59901669 : 59901670); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 59901671; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return ptr->PenaltyTimestamps[index]; - case 1: - return 0; - case 0: - goto IL_0061; - } - continue; - IL_0061: - num = 59901670; + return 0; } + return ptr->PenaltyTimestamps[index]; } public static int GetDutyFinderPenaltyTimestamp() @@ -1016,1207 +408,481 @@ public static class PlayerStateHelper public unsafe static bool IsMountUnlocked(uint mountId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-85690625) : (-85690628)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -85690627; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 1: - return ptr->IsMountUnlocked(mountId); - case 0: - goto IL_0055; - } - continue; - IL_0055: - num = -85690628; + return ptr->IsMountUnlocked(mountId); } + return false; } public unsafe static bool IsAnyMountUnlocked() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 753037439 : 753037436); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 753037438; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 2: - return ptr->NumOwnedMounts > 0; - case 1: - return false; - } - continue; - IL_004b: - num = 753037436; + return ptr->NumOwnedMounts > 0; } + return false; } public unsafe static bool IsOrnamentUnlocked(uint ornamentId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 1330167974 : 1330167973); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 1330167975; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return false; - case 2: - return ptr->IsOrnamentUnlocked(ornamentId); - case 0: - goto IL_0055; - } - continue; - IL_0055: - num = 1330167973; + return ptr->IsOrnamentUnlocked(ornamentId); } + return false; } public unsafe static bool IsGlassesUnlocked(ushort glassesId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 2130615081 : 2130615082); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 2130615080; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 1: - return false; - case 2: - return ptr->IsGlassesUnlocked(glassesId); - } - continue; - IL_0049: - num = 2130615082; + return ptr->IsGlassesUnlocked(glassesId); } + return false; } public unsafe static bool IsOrchestrionRollUnlocked(uint rollId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 1221964641 : 1221964642); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 1221964643; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 1: - return ptr->IsOrchestrionRollUnlocked(rollId); - case 0: - goto IL_0055; - } - continue; - IL_0055: - num = 1221964642; + return ptr->IsOrchestrionRollUnlocked(rollId); } + return false; } public unsafe static bool IsFramersKitUnlocked(uint kitId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 1337831057 : 1337831056); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 1337831057; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_004b; - case 0: - return false; - case 1: - return ptr->IsFramersKitUnlocked(kitId); - } - continue; - IL_004b: - num = 1337831056; + return ptr->IsFramersKitUnlocked(kitId); } + return false; } public unsafe static bool IsMcGuffinUnlocked(uint id) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 1298879102 : 1298879103); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 1298879102; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return false; - case 1: - return ptr->IsMcGuffinUnlocked(id); - case 2: - goto IL_0053; - } - continue; - IL_0053: - num = 1298879103; + return ptr->IsMcGuffinUnlocked(id); } + return false; } public unsafe static bool IsDungeonCompleted(uint dungeonId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-993305962) : (-993305963)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -993305961; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return false; - case 2: - return GetBitSafe(ptr->CompletedDungeonsBitArray, dungeonId); - case 0: - goto IL_0058; - } - continue; - IL_0058: - num = -993305963; + return GetBitSafe(ptr->CompletedDungeonsBitArray, dungeonId); } + return false; } public unsafe static bool IsRaidCompleted(uint raidId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-926274817) : (-926274820)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -926274818; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 1: - return false; - case 2: - return GetBitSafe(ptr->CompletedRaidsBitArray, raidId); - } - continue; - IL_0049: - num = -926274820; + return GetBitSafe(ptr->CompletedRaidsBitArray, raidId); } + return false; } public unsafe static bool IsTrialCompleted(uint trialId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-1242533675) : (-1242533674)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -1242533676; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 2: - return GetBitSafe(ptr->CompletedTrialsBitArray, trialId); - case 1: - return false; - } - continue; - IL_004b: - num = -1242533674; + return GetBitSafe(ptr->CompletedTrialsBitArray, trialId); } + return false; } public unsafe static bool IsFrontlineCompleted(uint frontlineId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 1536431418 : 1536431417); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 1536431416; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 1: - return GetBitSafe(ptr->CompletedFrontlinesBitArray, frontlineId); - case 0: - goto IL_005a; - } - continue; - IL_005a: - num = 1536431417; + return GetBitSafe(ptr->CompletedFrontlinesBitArray, frontlineId); } + return false; } public unsafe static bool IsCrystallineConflictCompleted(uint id) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-1237265056) : (-1237265053)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -1237265055; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 1: - return false; - case 2: - return GetBitSafe(ptr->CompletedCrystallineConflictsBitArray, id); - } - continue; - IL_0049: - num = -1237265053; + return GetBitSafe(ptr->CompletedCrystallineConflictsBitArray, id); } + return false; } public unsafe static bool IsGuildOrderCompleted(uint orderId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-73722255) : (-73722256)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -73722255; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return false; - case 1: - return GetBitSafe(ptr->CompletedGuildOrdersBitArray, orderId); - case 2: - goto IL_0058; - } - continue; - IL_0058: - num = -73722256; + return GetBitSafe(ptr->CompletedGuildOrdersBitArray, orderId); } + return false; } public unsafe static bool IsMaskedCarnivaleCompleted(uint stageId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-820654768) : (-820654767)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -820654768; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0049; - case 0: - return false; - case 1: - return GetBitSafe(ptr->CompletedMaskedCarnivaleBitArray, stageId); - } - continue; - IL_0049: - num = -820654767; + return GetBitSafe(ptr->CompletedMaskedCarnivaleBitArray, stageId); } + return false; } public unsafe static bool IsMiscContentCompleted(uint contentId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 825419022 : 825419021); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 825419020; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 2: - return false; - case 1: - return GetBitSafe(ptr->CompletedMiscContentBitArray, contentId); - } - continue; - IL_004b: - num = 825419021; + return GetBitSafe(ptr->CompletedMiscContentBitArray, contentId); } + return false; } public unsafe static bool IsBeginnerTrainingCompleted(uint trainingId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-1010016233) : (-1010016236)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -1010016234; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 1: - return false; - case 2: - return GetBitSafe(ptr->CompletedBeginnerTrainingBitArray, trainingId); - } - continue; - IL_0049: - num = -1010016236; + return GetBitSafe(ptr->CompletedBeginnerTrainingBitArray, trainingId); } + return false; } public unsafe static bool IsVVDNotebookContentCompleted(uint contentId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-1861355372) : (-1861355369)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -1861355370; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 1: - return GetBitSafe(ptr->CompletedVVDNotebookContentsBitArray, contentId); - case 0: - goto IL_005a; - } - continue; - IL_005a: - num = -1861355369; + return GetBitSafe(ptr->CompletedVVDNotebookContentsBitArray, contentId); } + return false; } public unsafe static bool IsDungeonUnlocked(uint dungeonId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 1637335958 : 1637335959); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 1637335958; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0049; - case 0: - return false; - case 1: - return GetBitSafe(ptr->UnlockedDungeonsBitArray, dungeonId); - } - continue; - IL_0049: - num = 1637335959; + return GetBitSafe(ptr->UnlockedDungeonsBitArray, dungeonId); } + return false; } public unsafe static bool IsRaidUnlocked(uint raidId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 1897736670 : 1897736671); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 1897736670; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return false; - case 1: - return GetBitSafe(ptr->UnlockedRaidsBitArray, raidId); - case 2: - goto IL_005a; - } - continue; - IL_005a: - num = 1897736671; + return GetBitSafe(ptr->UnlockedRaidsBitArray, raidId); } + return false; } public unsafe static bool IsTrialUnlocked(uint trialId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-1440829942) : (-1440829943)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -1440829944; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 1: - return GetBitSafe(ptr->UnlockedTrialsBitArray, trialId); - case 2: - return false; - } - continue; - IL_0049: - num = -1440829943; + return GetBitSafe(ptr->UnlockedTrialsBitArray, trialId); } + return false; } public unsafe static bool IsFrontlineUnlocked(uint frontlineId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-1660154923) : (-1660154924)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -1660154923; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0049; - case 1: - return GetBitSafe(ptr->UnlockedFrontlinesBitArray, frontlineId); - case 0: - return false; - } - continue; - IL_0049: - num = -1660154924; + return GetBitSafe(ptr->UnlockedFrontlinesBitArray, frontlineId); } + return false; } public unsafe static bool IsCrystallineConflictUnlocked(uint id) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 37169208 : 37169209); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 37169208; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return false; - case 1: - return GetBitSafe(ptr->UnlockedCrystallineConflictsBitArray, id); - case 2: - goto IL_0058; - } - continue; - IL_0058: - num = 37169209; + return GetBitSafe(ptr->UnlockedCrystallineConflictsBitArray, id); } + return false; } public unsafe static bool IsGuildOrderUnlocked(uint orderId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-1895125962) : (-1895125963)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -1895125961; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return false; - case 2: - return GetBitSafe(ptr->UnlockedGuildOrdersBitArray, orderId); - case 0: - goto IL_0058; - } - continue; - IL_0058: - num = -1895125963; + return GetBitSafe(ptr->UnlockedGuildOrdersBitArray, orderId); } + return false; } public unsafe static bool IsMiscContentUnlocked(uint contentId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 121866217 : 121866218); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 121866216; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 1: - return false; - case 2: - return GetBitSafe(ptr->UnlockedMiscContentBitArray, contentId); - } - continue; - IL_004b: - num = 121866218; + return GetBitSafe(ptr->UnlockedMiscContentBitArray, contentId); } + return false; } public unsafe static bool IsSpecialContentUnlocked(uint contentId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-1206882405) : (-1206882406)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -1206882405; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return false; - case 1: - return GetBitSafe(ptr->UnlockedSpecialContentBitArray, contentId); - case 2: - goto IL_005a; - } - continue; - IL_005a: - num = -1206882406; + return GetBitSafe(ptr->UnlockedSpecialContentBitArray, contentId); } + return false; } public unsafe static bool IsFishCaught(uint fishId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 1476471736 : 1476471739); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 1476471738; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 1: - return ptr->IsFishCaught(fishId); - case 2: - return false; - } - continue; - IL_004b: - num = 1476471739; + return ptr->IsFishCaught(fishId); } + return false; } public unsafe static bool IsSpearfishCaught(uint fishId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 916540449 : 916540448); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 916540449; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0049; - case 0: - return false; - case 1: - return ptr->IsSpearfishCaught(fishId); - } - continue; - IL_0049: - num = 916540448; + return ptr->IsSpearfishCaught(fishId); } + return false; } public unsafe static bool IsFishingSpotUnlocked(uint spotId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-501535389) : (-501535390)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -501535389; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_004b; - case 0: - return false; - case 1: - return GetBitSafe(ptr->UnlockedFishingSpotsBitArray, spotId); - } - continue; - IL_004b: - num = -501535390; + return GetBitSafe(ptr->UnlockedFishingSpotsBitArray, spotId); } + return false; } public unsafe static bool IsSpearfishingNotebookUnlocked(uint notebookId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-2066723645) : (-2066723646)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -2066723645; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return false; - case 1: - return GetBitSafe(ptr->UnlockedSpearfishingNotebooksBitArray, notebookId); - case 2: - goto IL_0058; - } - continue; - IL_0058: - num = -2066723646; + return GetBitSafe(ptr->UnlockedSpearfishingNotebooksBitArray, notebookId); } + return false; } public unsafe static bool IsSecretRecipeBookUnlocked(uint bookId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-1515319093) : (-1515319094)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -1515319093; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return false; - case 1: - return ptr->IsSecretRecipeBookUnlocked(bookId); - case 2: - goto IL_0055; - } - continue; - IL_0055: - num = -1515319094; + return ptr->IsSecretRecipeBookUnlocked(bookId); } + return false; } public unsafe static bool IsFolkloreBookUnlocked(uint bookId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-549279574) : (-549279575)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -549279576; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 2: - return false; - case 1: - return ptr->IsFolkloreBookUnlocked(bookId); - } - continue; - IL_004b: - num = -549279575; + return ptr->IsFolkloreBookUnlocked(bookId); } + return false; } public unsafe static bool IsAdventureComplete(uint adventureId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 811132530 : 811132529); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 811132531; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return false; - case 2: - return ptr->IsAdventureComplete(adventureId); - case 0: - goto IL_0055; - } - continue; - IL_0055: - num = 811132529; + return ptr->IsAdventureComplete(adventureId); } + return false; } public unsafe static bool IsBotanistFolkloreTomeUnlocked(uint tomeId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-467172317) : (-467172320)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -467172318; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return false; - case 2: - return GetBitSafe(ptr->UnlockedBotanistFolkloreTomesBitArray, tomeId); - case 0: - goto IL_0058; - } - continue; - IL_0058: - num = -467172320; + return GetBitSafe(ptr->UnlockedBotanistFolkloreTomesBitArray, tomeId); } + return false; } public unsafe static bool IsMinerFolkloreTomeUnlocked(uint tomeId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 2107606707 : 2107606704); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 2107606705; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 1: - return GetBitSafe(ptr->UnlockedMinerFolkloreTomesBitArray, tomeId); - case 2: - return false; - } - continue; - IL_0049: - num = 2107606704; + return GetBitSafe(ptr->UnlockedMinerFolkloreTomesBitArray, tomeId); } + return false; } public unsafe static bool IsFishingFolkloreTomeUnlocked(uint tomeId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 2052975858 : 2052975857); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 2052975856; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 2: - return false; - case 1: - return GetBitSafe(ptr->UnlockedFishingFolkloreTomesBitArray, tomeId); - } - continue; - IL_004b: - num = 2052975857; + return GetBitSafe(ptr->UnlockedFishingFolkloreTomesBitArray, tomeId); } + return false; } public unsafe static bool IsAetherCurrentUnlocked(uint aetherCurrentId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-2079078502) : (-2079078501)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -2079078502; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0049; - case 0: - return false; - case 1: - return ptr->IsAetherCurrentUnlocked(aetherCurrentId); - } - continue; - IL_0049: - num = -2079078501; + return ptr->IsAetherCurrentUnlocked(aetherCurrentId); } + return false; } public unsafe static bool IsAetherCurrentZoneComplete(uint compFlgSetId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-832592099) : (-832592098)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -832592097; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 1: - return ptr->IsAetherCurrentZoneComplete(compFlgSetId); - case 0: - goto IL_0055; - } - continue; - IL_0055: - num = -832592098; + return ptr->IsAetherCurrentZoneComplete(compFlgSetId); } + return false; } public unsafe static bool IsWeeklyBingoExpired() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 233473812 : 233473815); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 233473813; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return false; - case 2: - return ptr->IsWeeklyBingoExpired(); - case 0: - goto IL_0054; - } - continue; - IL_0054: - num = 233473815; + return ptr->IsWeeklyBingoExpired(); } + return false; } public unsafe static long GetWeeklyBingoExpireTimestamp() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? (-575063473) : (-575063474)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -575063473; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0049; - case 0: - return ptr->GetWeeklyBingoExpireUnixTimestamp(); - case 1: - return 0L; - } - continue; - IL_0049: - num = -575063474; + return 0L; } + return ptr->GetWeeklyBingoExpireUnixTimestamp(); } public unsafe static DateTime GetWeeklyBingoExpireDateTime() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 2135264578 : 2135264577); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 2135264576; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 2: - return ptr->WeeklyBingoExpireDateTime; - case 1: - return DateTime.MinValue; - } - continue; - IL_004b: - num = 2135264577; + return DateTime.MinValue; } + return ptr->WeeklyBingoExpireDateTime; } public unsafe static uint GetWeeklyBingoExpMultiplier() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 1700448851 : 1700448848); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1700448850; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 1: - return ptr->GetWeeklyBingoExpMultiplier(); - case 2: - return 0u; - } - continue; - IL_004b: - num = 1700448848; + return 0u; } + return ptr->GetWeeklyBingoExpMultiplier(); } public unsafe static PlayerState.WeeklyBingoTaskStatus GetWeeklyBingoTaskStatus(int index) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? (-1463129243) : (-1463129242)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1463129241; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 2: - return ptr->GetWeeklyBingoTaskStatus(index); - case 1: - return PlayerState.WeeklyBingoTaskStatus.Open; - } - continue; - IL_004b: - num = -1463129242; + return PlayerState.WeeklyBingoTaskStatus.Open; } + return ptr->GetWeeklyBingoTaskStatus(index); } public unsafe static bool IsWeeklyBingoStickerPlaced(int index) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-747776692) : (-747776689)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -747776690; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return false; - case 1: - return ptr->IsWeeklyBingoStickerPlaced(index); - case 0: - goto IL_0053; - } - continue; - IL_0053: - num = -747776689; + return ptr->IsWeeklyBingoStickerPlaced(index); } + return false; } public unsafe static int GetWeeklyBingoNumPlacedStickers() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? (-1111468010) : (-1111468011)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1111468012; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return ptr->WeeklyBingoNumPlacedStickers; - case 1: - return 0; - case 0: - goto IL_0054; - } - continue; - IL_0054: - num = -1111468011; + return 0; } + return ptr->WeeklyBingoNumPlacedStickers; } public unsafe static uint GetWeeklyBingoNumSecondChancePoints() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 584156333 : 584156334); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 584156335; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 1: - return 0u; - case 2: - return ptr->WeeklyBingoNumSecondChancePoints; - } - continue; - IL_0049: - num = 584156334; + return 0u; } + return ptr->WeeklyBingoNumSecondChancePoints; } public unsafe static bool HasWeeklyBingoJournal() { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? (-650781034) : (-650781035)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -650781033; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return false; - case 2: - return ptr->HasWeeklyBingoJournal; - case 0: - goto IL_0054; - } - continue; - IL_0054: - num = -650781035; + return ptr->HasWeeklyBingoJournal; } + return false; } public unsafe static bool IsRouletteComplete(byte rouletteId) { InstanceContent* ptr = InstanceContent.Instance(); - int num = ((ptr == null) ? 1446148648 : 1446148651); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 1446148650; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 1: - return ptr->IsRouletteComplete(rouletteId); - case 2: - return false; - } - continue; - IL_004b: - num = 1446148651; + return ptr->IsRouletteComplete(rouletteId); } + return false; } public unsafe static uint GetContentValue(uint key) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr != null) ? 1170238729 : 1170238730); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1170238731; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return ptr->GetContentValue(key); - case 1: - return 0u; - case 0: - goto IL_0055; - } - continue; - IL_0055: - num = 1170238730; + return 0u; } + return ptr->GetContentValue(key); } private static bool GetBitSafe(BitArray bitArray, uint index) diff --git a/LLib/LLib.GameData/PublicEvent.cs b/LLib/LLib.GameData/PublicEvent.cs index cd20558..44a697b 100644 --- a/LLib/LLib.GameData/PublicEvent.cs +++ b/LLib/LLib.GameData/PublicEvent.cs @@ -1,175 +1,5 @@ -using System; -using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; namespace LLib.GameData; -public readonly record struct PublicEvent(EPublicEventType Type, uint Id, string Name, Vector3 Position, float Radius, byte Level, byte MaxLevel, float Progress, float Duration, float TimeRemaining, bool IsActive, bool IsPending, bool HasBonus, byte FateRule, uint MotivationNpcDataId, ushort ChainFateId) -{ - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206D_206E_202C_202E_206E_202B_200B_206C_200C_206A_206D_202D_202D_200D_200C_206F_200B_200C_206D_206A_200B_202D_200F_206B_206A_206E_202A_202C_206E_206B_206E_202C_200E_206E_202A_206D_202B_200D_202B_200F_202E(); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(stringBuilder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1204097607)); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(stringBuilder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(579144622)); - int num = ((!PrintMembers(stringBuilder)) ? 1670321463 : 1670321462); - while (true) - { - int num2 = num; - int num3 = 1670321463; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 1670321462; - break; - case 1: - _202D_206C_206C_200D_202B_202A_202C_202A_200F_206D_206D_202C_206F_202D_206A_202B_200B_200C_202D_202C_200E_206B_200D_206F_206F_206C_206E_200C_200D_200E_206A_200B_202C_200C_202A_206D_202B_200C_202E_200E_202E(stringBuilder, ' '); - num = 1670321463; - break; - case 0: - _202D_206C_206C_200D_202B_202A_202C_202A_200F_206D_206D_202C_206F_202D_206A_202B_200B_200C_202D_202C_200E_206B_200D_206F_206F_206C_206E_200C_200D_200E_206A_200B_202C_200C_202A_206D_202B_200C_202E_200E_202E(stringBuilder, '}'); - return _202C_202D_206B_206A_206C_206B_206C_206B_206C_200E_206E_200E_202B_206B_200B_200D_202C_202D_206E_206F_206F_200B_206A_200B_206D_202E_200D_200C_202E_200E_200B_200E_200B_202E_202D_200F_206B_200B_202E_202E_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1703345461)); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, Type.ToString()); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1294221790)); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, Id.ToString()); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-596371270)); - _202D_206C_202B_202E_202D_202D_202C_206E_202D_202C_202D_202E_202E_206F_202A_200C_206A_206B_206A_200E_206D_202A_202A_202E_202B_200F_202D_200D_202D_200D_200B_206F_200F_206D_206A_200D_202B_202C_206B_202D_202E(builder, (object)Name); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1841021490)); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, Position.ToString()); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1574188482)); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, Radius.ToString()); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1538801490)); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, Level.ToString()); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1645586278)); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, MaxLevel.ToString()); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1015149807)); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, Progress.ToString()); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1063554664)); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, Duration.ToString()); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1641383873)); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, TimeRemaining.ToString()); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-889184607)); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, IsActive.ToString()); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1150615736)); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, IsPending.ToString()); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-460512089)); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, HasBonus.ToString()); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-713893414)); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, FateRule.ToString()); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1765562739)); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, MotivationNpcDataId.ToString()); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1235406246)); - _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(builder, ChainFateId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(PublicEvent other) - { - int num = ((!EqualityComparer<EPublicEventType>.Default.Equals(Type, other.Type)) ? (-285443445) : (-285443439)); - while (true) - { - int num2 = num; - int num3 = -285443429; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = ((!EqualityComparer<Vector3>.Default.Equals(Position, other.Position)) ? (-285443445) : (-285443431)); - break; - case 6: - num = ((!EqualityComparer<bool>.Default.Equals(HasBonus, other.HasBonus)) ? (-285443445) : (-285443435)); - break; - case 4: - num = ((!EqualityComparer<byte>.Default.Equals(Level, other.Level)) ? (-285443445) : (-285443437)); - break; - case 5: - num = -285443439; - break; - case 2: - num = ((!EqualityComparer<float>.Default.Equals(Radius, other.Radius)) ? (-285443445) : (-285443425)); - break; - case 14: - num = ((!EqualityComparer<byte>.Default.Equals(FateRule, other.FateRule)) ? (-285443445) : (-285443434)); - break; - case 15: - return EqualityComparer<ushort>.Default.Equals(ChainFateId, other.ChainFateId); - case 10: - num = ((!EqualityComparer<uint>.Default.Equals(Id, other.Id)) ? (-285443445) : (-285443429)); - break; - case 1: - num = ((!EqualityComparer<float>.Default.Equals(Progress, other.Progress)) ? (-285443445) : (-285443433)); - break; - case 16: - return false; - case 8: - num = ((!EqualityComparer<byte>.Default.Equals(MaxLevel, other.MaxLevel)) ? (-285443445) : (-285443430)); - break; - case 7: - num = ((!EqualityComparer<float>.Default.Equals(TimeRemaining, other.TimeRemaining)) ? (-285443445) : (-285443438)); - break; - case 9: - num = ((!EqualityComparer<bool>.Default.Equals(IsActive, other.IsActive)) ? (-285443445) : (-285443440)); - break; - case 13: - num = ((!EqualityComparer<uint>.Default.Equals(MotivationNpcDataId, other.MotivationNpcDataId)) ? (-285443445) : (-285443436)); - break; - case 12: - num = ((!EqualityComparer<float>.Default.Equals(Duration, other.Duration)) ? (-285443445) : (-285443428)); - break; - case 11: - num = ((!EqualityComparer<bool>.Default.Equals(IsPending, other.IsPending)) ? (-285443445) : (-285443427)); - break; - case 0: - num = ((!EqualityComparer<string>.Default.Equals(Name, other.Name)) ? (-285443445) : (-285443432)); - break; - } - } - } - - bool IEquatable<PublicEvent>.Equals(PublicEvent other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _206D_206E_202C_202E_206E_202B_200B_206C_200C_206A_206D_202D_202D_200D_200C_206F_200B_200C_206D_206A_200B_202D_200F_206B_206A_206E_202A_202C_206E_206B_206E_202C_200E_206E_202A_206D_202B_200D_202B_200F_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202E_200D_202E_202A_206C_202E_200C_200B_202B_200F_200D_200F_202C_202B_200C_200F_202A_200D_200C_202C_202A_202D_206D_206F_202D_206F_202C_202E_206B_202D_202A_206F_200E_200E_202E_202E_202B_206E_202C_202A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202D_206C_206C_200D_202B_202A_202C_202A_200F_206D_206D_202C_206F_202D_206A_202B_200B_200C_202D_202C_200E_206B_200D_206F_206F_206C_206E_200C_200D_200E_206A_200B_202C_200C_202A_206D_202B_200C_202E_200E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202C_202D_206B_206A_206C_206B_206C_206B_206C_200E_206E_200E_202B_206B_200B_200D_202C_202D_206E_206F_206F_200B_206A_200B_206D_202E_200D_200C_202E_200E_200B_200E_200B_202E_202D_200F_206B_200B_202E_202E_202E(object P_0) - { - return P_0.ToString(); - } - - static StringBuilder _202D_206C_202B_202E_202D_202D_202C_206E_202D_202C_202D_202E_202E_206F_202A_200C_206A_206B_206A_200E_206D_202A_202A_202E_202B_200F_202D_200D_202D_200D_200B_206F_200F_206D_206A_200D_202B_202C_206B_202D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } -} +public readonly record struct PublicEvent(EPublicEventType Type, uint Id, string Name, Vector3 Position, float Radius, byte Level, byte MaxLevel, float Progress, float Duration, float TimeRemaining, bool IsActive, bool IsPending, bool HasBonus, byte FateRule, uint MotivationNpcDataId, ushort ChainFateId); diff --git a/LLib/LLib.GameData/PublicEventHelper.cs b/LLib/LLib.GameData/PublicEventHelper.cs index 42ff063..2977ba3 100644 --- a/LLib/LLib.GameData/PublicEventHelper.cs +++ b/LLib/LLib.GameData/PublicEventHelper.cs @@ -12,186 +12,69 @@ public sealed class PublicEventHelper public unsafe IReadOnlyList<PublicEvent> GetActiveFates() { FateManager* ptr = FateManager.Instance(); - int num = ((ptr != null) ? (-2066813597) : (-2066813594)); - List<PublicEvent> list = default(List<PublicEvent>); - int num5 = default(int); - FateContext* value = default(FateContext*); - bool flag = default(bool); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -2066813595; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - list = new List<PublicEvent>(); - num5 = 0; - num = -2066813588; - break; - case 5: - value = ptr->Fates[num5].Value; - num = ((value == null) ? (-2066813587) : (-2066813595)); - break; - case 7: - num = -2066813594; - break; - case 10: - num = ((!flag) ? (-2066813587) : (-2066813586)); - break; - case 0: + return Array.Empty<PublicEvent>(); + } + List<PublicEvent> list = new List<PublicEvent>(); + for (int i = 0; i < ptr->Fates.Count; i++) + { + FateContext* value = ptr->Fates[i].Value; + if (value != null) { FateState state = value->State; - num = ((state - 3 > FateState.Unk1) ? (-2066813599) : (-2066813596)); - break; - } - case 8: - { - int num6 = num5; - num3 = 1; - num4 = num6; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - num5 = num7 + (num8 + num8); - num = -2066813588; - break; - } - case 1: - flag = true; - num = -2066813585; - break; - case 2: - return list; - case 4: - flag = false; - num = -2066813585; - break; - case 11: - list.Add(ToPublicEvent(value)); - num = -2066813587; - break; - case 3: - return Array.Empty<PublicEvent>(); - case 9: - num = ((num5 < ptr->Fates.Count) ? (-2066813600) : (-2066813593)); - break; + if (state - 3 <= FateState.Unk1) + { + list.Add(ToPublicEvent(value)); + } } } + return list; } public unsafe IReadOnlyList<PublicEvent> GetActiveDynamicEvents() { DynamicEventContainer* instance = DynamicEventContainer.GetInstance(); - int num = ((instance != null) ? (-104590452) : (-104590451)); - int num7 = default(int); - Span<DynamicEvent> events = default(Span<DynamicEvent>); - ref DynamicEvent reference = default(ref DynamicEvent); - List<PublicEvent> list = default(List<PublicEvent>); - while (true) + if (instance == null) { - int num2 = num; - int num3 = -104590454; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return Array.Empty<PublicEvent>(); + } + List<PublicEvent> list = new List<PublicEvent>(); + Span<DynamicEvent> events = instance->Events; + for (int i = 0; i < events.Length; i++) + { + ref DynamicEvent reference = ref events[i]; + if (reference.State != DynamicEventState.Inactive) { - case 3: - num = ((num7 < events.Length) ? (-104590450) : (-104590456)); - break; - case 7: - return Array.Empty<PublicEvent>(); - case 5: - num = -104590451; - break; - case 4: - reference = ref events[num7]; - num = ((reference.State == DynamicEventState.Inactive) ? (-104590454) : (-104590453)); - break; - case 2: - return list; - case 1: list.Add(ToPublicEvent(ref reference)); - num = -104590454; - break; - case 0: - { - int num8 = num7; - num3 = 1; - num4 = num8; - num7 = (num4 | num3) + (num4 & num3); - num = -104590455; - break; - } - case 6: - list = new List<PublicEvent>(); - events = instance->Events; - num7 = 0; - num = -104590455; - break; } } + return list; } public unsafe IReadOnlyList<PublicEvent> GetActiveMechaEvents() { WKSManager* ptr = WKSManager.Instance(); - int num = ((ptr != null) ? 1500071953 : 1500071952); - ref WKSMechaEvent reference = default(ref WKSMechaEvent); - Span<WKSMechaEvent> events = default(Span<WKSMechaEvent>); - int num7 = default(int); - List<PublicEvent> list = default(List<PublicEvent>); - WKSMechaEventModule* mechaEventModule = default(WKSMechaEventModule*); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1500071954; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return Array.Empty<PublicEvent>(); + } + WKSMechaEventModule* mechaEventModule = ptr->MechaEventModule; + if (mechaEventModule == null) + { + return Array.Empty<PublicEvent>(); + } + List<PublicEvent> list = new List<PublicEvent>(); + Span<WKSMechaEvent> events = mechaEventModule->Events; + for (int i = 0; i < events.Length; i++) + { + ref WKSMechaEvent reference = ref events[i]; + if ((reference.Flags & WKSMechaEventFlag.IsEventActive) != 0) { - case 8: - reference = ref events[num7]; - num = (((reference.Flags & WKSMechaEventFlag.IsEventActive) == 0) ? 1500071957 : 1500071955); - break; - case 5: - return list; - case 2: - return Array.Empty<PublicEvent>(); - case 6: - return Array.Empty<PublicEvent>(); - case 7: - { - int num8 = num7; - num3 = 1; - num4 = num8; - num7 = (num4 | num3) + (num4 & num3); - num = 1500071958; - break; - } - case 0: - num = 1500071952; - break; - case 4: - num = ((num7 < events.Length) ? 1500071962 : 1500071959); - break; - case 1: list.Add(ToPublicEvent(ref reference)); - num = 1500071957; - break; - case 3: - mechaEventModule = ptr->MechaEventModule; - num = ((mechaEventModule != null) ? 1500071963 : 1500071956); - break; - case 9: - list = new List<PublicEvent>(); - events = mechaEventModule->Events; - num7 = 0; - num = 1500071958; - break; } } + return list; } public IReadOnlyList<PublicEvent> GetAllActiveEvents() @@ -205,382 +88,159 @@ public sealed class PublicEventHelper public PublicEvent? GetEventById(EPublicEventType type, uint id) { - int num; - PublicEvent? result = default(PublicEvent?); - switch (type) + return type switch { - default: - num = 1438969819; - goto IL_001d; - case EPublicEventType.Fate: - result = GetFateById((ushort)id); - num = 1438969820; - goto IL_001d; - case EPublicEventType.DynamicEvent: - goto IL_006b; - case EPublicEventType.MechaEvent: - goto IL_00aa; - IL_001d: - while (true) - { - int num2 = num; - int num3 = 1438969816; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - goto end_IL_001d; - case 4: - return result; - case 1: - goto IL_006b; - case 5: - num = 1438969819; - break; - case 0: - result = null; - num = 1438969820; - break; - case 3: - num = 1438969816; - break; - case 2: - goto IL_00aa; - } - continue; - end_IL_001d: - break; - } - goto case EPublicEventType.Fate; - IL_00aa: - result = GetMechaEventById(id); - num = 1438969820; - goto IL_001d; - IL_006b: - result = GetDynamicEventById((ushort)id); - num = 1438969820; - goto IL_001d; - } + EPublicEventType.Fate => GetFateById((ushort)id), + EPublicEventType.DynamicEvent => GetDynamicEventById((ushort)id), + EPublicEventType.MechaEvent => GetMechaEventById(id), + _ => null, + }; } public unsafe PublicEvent? GetCurrentPlayerEvent() { FateManager* ptr = FateManager.Instance(); - int num = ((ptr == null) ? 2074475056 : 2074475058); - while (true) + if (ptr == null || ptr->CurrentFate == null) { - int num2 = num; - int num3 = 2074475059; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 2074475058; - break; - case 1: - num = ((ptr->CurrentFate != null) ? 2074475057 : 2074475056); - break; - case 3: - return null; - case 2: - return ToPublicEvent(ptr->CurrentFate); - } + return null; } + return ToPublicEvent(ptr->CurrentFate); } public unsafe PublicEvent? GetCurrentDynamicEvent() { DynamicEventContainer* instance = DynamicEventContainer.GetInstance(); - int num = ((instance != null) ? 285703707 : 285703710); - DynamicEvent* currentEvent = default(DynamicEvent*); - while (true) + if (instance == null) { - int num2 = num; - int num3 = 285703707; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - currentEvent = instance->GetCurrentEvent(); - num = ((currentEvent == null) ? 285703704 : 285703711); - break; - case 4: - num = ((currentEvent->State != DynamicEventState.Inactive) ? 285703706 : 285703704); - break; - case 2: - num = 285703710; - break; - case 3: - return null; - case 5: - return null; - case 1: - return ToPublicEvent(ref *currentEvent); - } + return null; } + DynamicEvent* currentEvent = instance->GetCurrentEvent(); + if (currentEvent == null || currentEvent->State == DynamicEventState.Inactive) + { + return null; + } + return ToPublicEvent(ref *currentEvent); } public unsafe PublicEvent? GetCurrentMechaEvent() { WKSManager* ptr = WKSManager.Instance(); - int num = ((ptr != null) ? 599849311 : 599849304); - WKSMechaEvent* currentEvent = default(WKSMechaEvent*); - WKSMechaEventModule* mechaEventModule = default(WKSMechaEventModule*); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 599849305; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return ToPublicEvent(ref *currentEvent); - case 6: - mechaEventModule = ptr->MechaEventModule; - num = ((mechaEventModule != null) ? 599849308 : 599849307); - break; - case 7: - num = (((currentEvent->Flags & WKSMechaEventFlag.IsEventActive) != 0) ? 599849306 : 599849309); - break; - case 0: - num = 599849304; - break; - case 2: - return null; - case 4: - return null; - case 1: - return null; - case 5: - currentEvent = mechaEventModule->CurrentEvent; - num = ((currentEvent == null) ? 599849309 : 599849310); - break; - } + return null; } + WKSMechaEventModule* mechaEventModule = ptr->MechaEventModule; + if (mechaEventModule == null) + { + return null; + } + WKSMechaEvent* currentEvent = mechaEventModule->CurrentEvent; + if (currentEvent == null || (currentEvent->Flags & WKSMechaEventFlag.IsEventActive) == 0) + { + return null; + } + return ToPublicEvent(ref *currentEvent); } public unsafe bool IsFateActive(ushort fateId) { - int num = ((fateId != 0) ? 1838657614 : 1838657615); - FateContext* fateById = default(FateContext*); - FateManager* ptr = default(FateManager*); - while (true) + if (fateId == 0) { - int num2 = num; - int num3 = 1838657612; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return fateById->State == FateState.Running; - case 6: - return false; - case 3: - return false; - case 4: - fateById = ptr->GetFateById(fateId); - num = ((fateById != null) ? 1838657613 : 1838657610); - break; - case 2: - ptr = FateManager.Instance(); - num = ((ptr != null) ? 1838657608 : 1838657609); - break; - case 5: - return false; - case 0: - num = 1838657615; - break; - } + return false; } + FateManager* ptr = FateManager.Instance(); + if (ptr == null) + { + return false; + } + FateContext* fateById = ptr->GetFateById(fateId); + if (fateById == null) + { + return false; + } + return fateById->State == FateState.Running; } private unsafe PublicEvent? GetFateById(ushort fateId) { - int num = ((fateId != 0) ? (-1398838121) : (-1398838127)); - FateContext* fateById = default(FateContext*); - FateManager* ptr = default(FateManager*); - while (true) + if (fateId == 0) { - int num2 = num; - int num3 = -1398838126; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - fateById = ptr->GetFateById(fateId); - num = ((fateById != null) ? (-1398838124) : (-1398838122)); - break; - case 4: - return null; - case 3: - return null; - case 2: - return null; - case 6: - return ToPublicEvent(fateById); - case 5: - ptr = FateManager.Instance(); - num = ((ptr != null) ? (-1398838125) : (-1398838128)); - break; - case 0: - num = -1398838127; - break; - } + return null; } + FateManager* ptr = FateManager.Instance(); + if (ptr == null) + { + return null; + } + FateContext* fateById = ptr->GetFateById(fateId); + if (fateById == null) + { + return null; + } + return ToPublicEvent(fateById); } private unsafe PublicEvent? GetDynamicEventById(ushort dynamicEventId) { - int num = ((dynamicEventId != 0) ? 190075853 : 190075849); - Span<DynamicEvent> events = default(Span<DynamicEvent>); - DynamicEventContainer* instance = default(DynamicEventContainer*); - int num5 = default(int); - ref DynamicEvent reference = default(ref DynamicEvent); - while (true) + if (dynamicEventId == 0) { - int num2 = num; - int num3 = 190075855; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return null; + } + DynamicEventContainer* instance = DynamicEventContainer.GetInstance(); + if (instance == null) + { + return null; + } + Span<DynamicEvent> events = instance->Events; + for (int i = 0; i < events.Length; i++) + { + ref DynamicEvent reference = ref events[i]; + if (reference.DynamicEventId == dynamicEventId && reference.State != DynamicEventState.Inactive) { - case 1: - events = instance->Events; - num5 = 0; - num = 190075847; - break; - case 2: - instance = DynamicEventContainer.GetInstance(); - num = ((instance != null) ? 190075854 : 190075852); - break; - case 10: - reference = ref events[num5]; - num = ((reference.DynamicEventId != dynamicEventId) ? 190075851 : 190075848); - break; - case 0: - num = 190075849; - break; - case 4: - { - int num6 = num5; - num3 = 1; - num4 = num6; - num5 = (num4 | num3) + (num4 & num3); - num = 190075847; - break; - } - case 7: - num = ((reference.State == DynamicEventState.Inactive) ? 190075851 : 190075846); - break; - case 5: - return null; - case 9: return ToPublicEvent(ref reference); - case 3: - return null; - case 6: - return null; - case 8: - num = ((num5 < events.Length) ? 190075845 : 190075850); - break; } } + return null; } private unsafe PublicEvent? GetMechaEventById(uint mechaEventDataRowId) { - int num = ((mechaEventDataRowId != 0) ? 1662115952 : 1662115954); - int num5 = default(int); - Span<WKSMechaEvent> events = default(Span<WKSMechaEvent>); - WKSMechaEventModule* mechaEventModule = default(WKSMechaEventModule*); - WKSManager* ptr = default(WKSManager*); - ref WKSMechaEvent reference = default(ref WKSMechaEvent); - while (true) + if (mechaEventDataRowId == 0) { - int num2 = num; - int num3 = 1662115957; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return null; + } + WKSManager* ptr = WKSManager.Instance(); + if (ptr == null) + { + return null; + } + WKSMechaEventModule* mechaEventModule = ptr->MechaEventModule; + if (mechaEventModule == null) + { + return null; + } + Span<WKSMechaEvent> events = mechaEventModule->Events; + for (int i = 0; i < events.Length; i++) + { + ref WKSMechaEvent reference = ref events[i]; + if (reference.WKSMechaEventDataRowId == mechaEventDataRowId && (reference.Flags & WKSMechaEventFlag.IsEventActive) != 0) { - case 12: - { - int num6 = num5; - num3 = 1; - num4 = num6; - num5 = (num4 | num3) + (num4 & num3); - num = 1662115955; - break; - } - case 10: - events = mechaEventModule->Events; - num5 = 0; - num = 1662115955; - break; - case 5: - ptr = WKSManager.Instance(); - num = ((ptr != null) ? 1662115956 : 1662115964); - break; - case 0: return ToPublicEvent(ref reference); - case 9: - return null; - case 8: - return null; - case 2: - reference = ref events[num5]; - num = ((reference.WKSMechaEventDataRowId != mechaEventDataRowId) ? 1662115961 : 1662115953); - break; - case 6: - num = ((num5 < events.Length) ? 1662115959 : 1662115965); - break; - case 11: - return null; - case 3: - num = 1662115954; - break; - case 1: - mechaEventModule = ptr->MechaEventModule; - num = ((mechaEventModule != null) ? 1662115967 : 1662115966); - break; - case 7: - return null; - case 4: - num = (((reference.Flags & WKSMechaEventFlag.IsEventActive) == 0) ? 1662115961 : 1662115957); - break; } } + return null; } private unsafe static PublicEvent ToPublicEvent(FateContext* fate) { float num = fate->Duration; float timeRemaining = 0f; - int num2 = ((!(num > 0f)) ? (-597185620) : (-597185618)); - while (true) + if (num > 0f && fate->StartTimeEpoch > 0) { - int num3 = num2; - int num4 = -597185619; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 1: - return new PublicEvent(EPublicEventType.Fate, fate->FateId, fate->Name.ToString(), fate->Location, fate->Radius, fate->Level, fate->MaxLevel, (int)fate->Progress, num, timeRemaining, fate->State == FateState.Running, fate->State == FateState.Preparing, fate->IsBonus, fate->Rule, fate->MotivationNpc, fate->FATEChain); - case 2: - { - float num6 = DateTimeOffset.UtcNow.ToUnixTimeSeconds() - fate->StartTimeEpoch; - timeRemaining = _206C_202D_202E_202E_200C_206F_206B_202C_206F_202E_206E_202A_206C_202E_206B_200D_202A_202A_202A_200C_200E_202C_206C_202B_200F_202C_206F_206E_206B_202E_206D_202D_202C_206F_200E_202D_206B_200E_206B_206B_202E(0f, num - num6); - num2 = -597185620; - break; - } - case 3: - num2 = ((fate->StartTimeEpoch <= 0) ? (-597185620) : (-597185617)); - break; - case 0: - num2 = -597185618; - break; - } + float num2 = DateTimeOffset.UtcNow.ToUnixTimeSeconds() - fate->StartTimeEpoch; + timeRemaining = Math.Max(0f, num - num2); } + return new PublicEvent(EPublicEventType.Fate, fate->FateId, fate->Name.ToString(), fate->Location, fate->Radius, fate->Level, fate->MaxLevel, (int)fate->Progress, num, timeRemaining, fate->State == FateState.Running, fate->State == FateState.Preparing, fate->IsBonus, fate->Rule, fate->MotivationNpc, fate->FATEChain); } private static PublicEvent ToPublicEvent(ref DynamicEvent dynamicEvent) @@ -596,136 +256,30 @@ public sealed class PublicEventHelper float timeRemaining = num2; bool isActive = dynamicEvent.State == DynamicEventState.Battle; DynamicEventState state = dynamicEvent.State; - int num3 = ((state - 1 > DynamicEventState.Register) ? 1959810557 : 1959810558); - bool isPending = default(bool); - while (true) - { - int num4 = num3; - int num5 = 1959810556; - int num6 = num4; - switch ((num6 | num5) - (num6 & num5)) - { - case 3: - num3 = 1959810558; - break; - case 1: - isPending = false; - num3 = 1959810556; - break; - case 2: - isPending = true; - num3 = 1959810556; - break; - case 0: - return new PublicEvent(EPublicEventType.DynamicEvent, dynamicEventId, name, position, radius, 0, 0, progress, duration, timeRemaining, isActive, isPending, HasBonus: false, 0, 0u, 0); - } - } + bool isPending = state - 1 <= DynamicEventState.Register; + return new PublicEvent(EPublicEventType.DynamicEvent, dynamicEventId, name, position, radius, 0, 0, progress, duration, timeRemaining, isActive, isPending, HasBonus: false, 0, 0u, 0); } private unsafe static PublicEvent ToPublicEvent(ref WKSMechaEvent mechaEvent) { long num = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); - int num2 = ((mechaEvent.EventEndTimestamp > mechaEvent.EventStartTimestamp) ? 783714395 : 783714386); - string name = default(string); - WKSMechaEventMapMarker* value = default(WKSMechaEventMapMarker*); - Vector3 position = default(Vector3); - float radius = default(float); - float progress = default(float); - float duration = default(float); - float timeRemaining = default(float); - while (true) + float duration = ((mechaEvent.EventEndTimestamp > mechaEvent.EventStartTimestamp) ? ((float)(mechaEvent.EventEndTimestamp - mechaEvent.EventStartTimestamp)) : 0f); + float timeRemaining = ((mechaEvent.EventEndTimestamp > num) ? ((float)(mechaEvent.EventEndTimestamp - num)) : 0f); + Vector3 position = Vector3.Zero; + float radius = 0f; + string name = string.Empty; + if (mechaEvent.MapMarkerPtrs.Count > 0) { - int num3 = num2; - int num4 = 783714385; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - int num10; - float num14; - float num8; - float num9; - bool isPending; - switch (num6 - (num7 + num7)) + WKSMechaEventMapMarker* value = mechaEvent.MapMarkerPtrs[0].Value; + if (value != null) { - default: - continue; - case 11: - num10 = 0; - goto IL_008f; - case 5: - num14 = 0f; - goto IL_0149; - case 1: - num2 = (((mechaEvent.Flags & WKSMechaEventFlag.IsEventActive) == 0) ? 783714394 : 783714397); - continue; - case 2: - num8 = 0f; - break; - case 0: - num2 = 783714386; - continue; - case 3: - num9 = 0f; - goto IL_024c; - case 8: - { - long num11 = mechaEvent.EventEndTimestamp; - long num12 = num; - long num13 = num11; - num14 = ~(~num13 + num12); - goto IL_0149; - } - case 12: - num10 = ((mechaEvent.EventProgress == 0) ? 1 : 0); - goto IL_008f; - case 9: - num2 = ((mechaEvent.EventProgressMax > 0) ? 783714390 : 783714387); - continue; - case 4: name = value->Name.ToString(); position = value->MapMarkerData.Position; radius = value->MapMarkerData.Radius; - num2 = 783714392; - continue; - case 6: - value = mechaEvent.MapMarkerPtrs[0].Value; - num2 = ((value == null) ? 783714392 : 783714389); - continue; - case 10: - { - int eventEndTimestamp = mechaEvent.EventEndTimestamp; - num4 = mechaEvent.EventStartTimestamp; - num5 = eventEndTimestamp; - num9 = ~(~num5 + num4); - goto IL_024c; } - case 7: - { - num8 = (float)mechaEvent.EventProgress / (float)mechaEvent.EventProgressMax * 100f; - break; - } - IL_008f: - isPending = (byte)num10 != 0; - return new PublicEvent(EPublicEventType.MechaEvent, mechaEvent.WKSMechaEventDataRowId, name, position, radius, 0, 0, progress, duration, timeRemaining, (mechaEvent.Flags & WKSMechaEventFlag.IsEventActive) != 0, isPending, HasBonus: false, 0, 0u, 0); - IL_024c: - duration = num9; - num2 = ((mechaEvent.EventEndTimestamp > num) ? 783714393 : 783714388); - continue; - IL_0149: - timeRemaining = num14; - position = Vector3.Zero; - radius = 0f; - name = string.Empty; - num2 = ((mechaEvent.MapMarkerPtrs.Count <= 0) ? 783714392 : 783714391); - continue; - } - progress = num8; - num2 = (((mechaEvent.Flags & WKSMechaEventFlag.PilotRegistrationOpen) == 0) ? 783714394 : 783714384); } - } - - static float _206C_202D_202E_202E_200C_206F_206B_202C_206F_202E_206E_202A_206C_202E_206B_200D_202A_202A_202A_200C_200E_202C_206C_202B_200F_202C_206F_206E_206B_202E_206D_202D_202C_206F_200E_202D_206B_200E_206B_206B_202E(float P_0, float P_1) - { - return Math.Max(P_0, P_1); + float progress = ((mechaEvent.EventProgressMax > 0) ? ((float)mechaEvent.EventProgress / (float)mechaEvent.EventProgressMax * 100f) : 0f); + bool isPending = (mechaEvent.Flags & WKSMechaEventFlag.PilotRegistrationOpen) != 0 && (mechaEvent.Flags & WKSMechaEventFlag.IsEventActive) != 0 && mechaEvent.EventProgress == 0; + return new PublicEvent(EPublicEventType.MechaEvent, mechaEvent.WKSMechaEventDataRowId, name, position, radius, 0, 0, progress, duration, timeRemaining, (mechaEvent.Flags & WKSMechaEventFlag.IsEventActive) != 0, isPending, HasBonus: false, 0, 0u, 0); } } diff --git a/LLib/LLib.GameData/SatisfactionSupplyHelper.cs b/LLib/LLib.GameData/SatisfactionSupplyHelper.cs index 20a2385..3c448de 100644 --- a/LLib/LLib.GameData/SatisfactionSupplyHelper.cs +++ b/LLib/LLib.GameData/SatisfactionSupplyHelper.cs @@ -1,8 +1,6 @@ using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; -using Lumina.Excel; using Lumina.Excel.Sheets; namespace LLib.GameData; @@ -19,276 +17,80 @@ public sealed class SatisfactionSupplyHelper public uint[] CalculateRequestedItems(uint supplyIndex, uint seed) { List<SatisfactionSupply> list = new List<SatisfactionSupply>(); - int num; - int num3; - int num4; - using (SubrowExcelSheet<SatisfactionSupply>.FlatEnumerator flatEnumerator = _dataManager.GetSubrowExcelSheet<SatisfactionSupply>().Flatten().GetEnumerator()) + foreach (SatisfactionSupply item in _dataManager.GetSubrowExcelSheet<SatisfactionSupply>().Flatten()) { - num = -1981977636; - SatisfactionSupply current = default(SatisfactionSupply); - while (true) + if (item.RowId == supplyIndex) { - int num2 = num; - num3 = -1981977636; - num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + list.Add(item); + } + } + uint num = (63874652 * supplyIndex) ^ (437113358 * seed); + uint num2 = (uint)(-547857059 * (int)supplyIndex) ^ (811033966 * seed); + uint num3 = (uint)(-311827390 * (int)supplyIndex) ^ (570616410 * seed); + uint num4 = (uint)((-1359202047 * (int)supplyIndex) ^ (-418962442 * (int)seed)); + uint[] array = new uint[3] { 4294967295u, 4294967295u, 4294967295u }; + uint num5 = num; + for (int i = 1; i < 4; i++) + { + int num6 = 0; + for (int j = 0; j < list.Count; j++) + { + SatisfactionSupply satisfactionSupply = list[j]; + if (satisfactionSupply.Slot == i) { - case 2: - list.Add(current); - num = -1981977636; - break; - case 1: - current = flatEnumerator.Current; - num = ((current.RowId != supplyIndex) ? (-1981977636) : (-1981977634)); - break; - case 4: - num = -1981977636; - break; - case 0: - num = (flatEnumerator.MoveNext() ? (-1981977635) : (-1981977633)); - break; - case 3: - goto end_IL_0038; + num6 += satisfactionSupply.ProbabilityPercent; } + } + uint num7 = num5 ^ (num5 << 11); + num = num3; + num3 = num4; + num5 = num2; + num4 ^= num7 ^ ((num7 ^ (num4 >> 11)) >> 8); + num2 = num; + if (num6 <= 0) + { continue; - end_IL_0038: - break; - } - } - uint num7 = 63874652 * supplyIndex; - num3 = (int)(437113358 * seed); - num4 = (int)num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - uint num10 = (uint)(num8 - (num9 + num9)); - int num11 = -547857059 * (int)supplyIndex; - num3 = (int)(811033966 * seed); - num4 = num11; - uint num12 = (uint)((num4 | num3) - (num4 & num3)); - int num13 = -311827390 * (int)supplyIndex; - num3 = (int)(570616410 * seed); - num4 = num13; - int num14 = num4 + num3; - int num15 = num4 & num3; - uint num16 = (uint)(num14 - (num15 + num15)); - int num17 = -1359202047 * (int)supplyIndex; - num3 = -418962442 * (int)seed; - num4 = num17; - int num18 = num4 + num3; - int num19 = num4 & num3; - uint num20 = (uint)(num18 - (num19 + num19)); - uint[] array = new uint[3]; - _206C_202C_202B_202D_202E_200F_200B_202E_202C_202D_202C_206D_206A_200D_206C_200E_200F_206A_202A_200C_200E_200D_200D_206A_206F_202C_202B_206F_200B_200F_206C_206D_202C_206C_200B_206B_206C_202B_200F_200C_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - uint[] array2 = array; - uint num21 = num10; - int num22 = 1; - num = 1311110073; - int num33 = default(int); - SatisfactionSupply satisfactionSupply2 = default(SatisfactionSupply); - int num46 = default(int); - int num34 = default(int); - long num43 = default(long); - SatisfactionSupply satisfactionSupply = default(SatisfactionSupply); - while (true) - { - int num23 = num; - num3 = 1311110070; - num4 = num23; - int num24 = num4 + num3; - int num25 = num4 & num3; - switch (num24 - (num25 + num25)) - { - case 7: - { - uint num26 = num21; - num3 = (int)(num21 << 11); - num4 = (int)num26; - int num27 = num4 + num3; - int num28 = num4 & num3; - uint num29 = (uint)(num27 - (num28 + num28)); - num10 = num16; - num16 = num20; - num21 = num12; - uint num30 = num20; - num3 = (int)(num20 >> 11); - num4 = (int)num29; - num3 = (num4 | num3) - (num4 & num3) >>> 8; - num4 = (int)num29; - int num31 = num4 + num3; - int num32 = num4 & num3; - num3 = num31 - (num32 + num32); - num4 = (int)num30; - num20 = (uint)((num4 | num3) - (num4 & num3)); - num12 = num10; - num = ((num33 <= 0) ? 1311110072 : 1311110071); - break; - } - case 12: - satisfactionSupply2 = list[num46]; - num = ((satisfactionSupply2.Slot != num22) ? 1311110064 : 1311110078); - break; - case 10: - num = ((num34 < list.Count) ? 1311110070 : 1311110072); - break; - case 4: - num = ((num43 >= satisfactionSupply.ProbabilityPercent) ? 1311110075 : 1311110077); - break; - case 2: - num = ((num46 < list.Count) ? 1311110074 : 1311110065); - break; - case 0: - satisfactionSupply = list[num34]; - num = ((satisfactionSupply.Slot != num22) ? 1311110067 : 1311110066); - break; - case 6: - { - int num47 = num46; - num3 = 1; - num4 = num47; - int num48 = num4 ^ num3; - int num49 = num4 & num3; - num46 = num48 + (num49 + num49); - num = 1311110068; - break; - } - case 8: - num33 += satisfactionSupply2.ProbabilityPercent; - num = 1311110064; - break; - case 16: - num = 1311110073; - break; - case 9: - num33 = 0; - num46 = 0; - num = 1311110068; - break; - case 1: - num43 = num20 % num33; - num34 = 0; - num = 1311110076; - break; - case 3: - return array2; - case 13: - { - long num42 = num43; - long num44 = satisfactionSupply.ProbabilityPercent; - long num45 = num42; - num43 = ~(~num45 + num44); - num = 1311110067; - break; - } - case 5: - { - int num39 = num34; - num3 = 1; - num4 = num39; - int num40 = num4 ^ num3; - int num41 = num4 & num3; - num34 = num40 + (num41 + num41); - num = 1311110076; - break; - } - case 11: - { - int num38 = num22; - num3 = 1; - num4 = num38; - array2[~(~num4 + num3)] = (uint)num34; - num = 1311110072; - break; - } - case 14: - { - int num35 = num22; - num3 = 1; - num4 = num35; - int num36 = num4 ^ num3; - int num37 = num4 & num3; - num22 = num36 + (num37 + num37); - num = 1311110073; - break; - } - case 15: - num = ((num22 < 4) ? 1311110079 : 1311110069); - break; + } + long num8 = num4 % num6; + for (int k = 0; k < list.Count; k++) + { + SatisfactionSupply satisfactionSupply2 = list[k]; + if (satisfactionSupply2.Slot == i) + { + if (num8 < satisfactionSupply2.ProbabilityPercent) + { + array[i - 1] = (uint)k; + break; + } + num8 -= satisfactionSupply2.ProbabilityPercent; + } } } + return array; } public int CalculateBonusGuaranteeIndex(int timestamp) { int count = _dataManager.GetExcelSheet<SatisfactionBonusGuarantee>().Count; - int num = ((count != 0) ? 473391985 : 473391984); - while (true) + if (count == 0) { - int num2 = num; - int num3 = 473391985; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_005f; - case 1: - return -1; - case 0: - num3 = 1657008000; - num4 = timestamp; - return ~(~num4 + num3) / 604800 % count; - } - continue; - IL_005f: - num = 473391984; + return -1; } + return (timestamp - 1657008000) / 604800 % count; } public static int CalculateTurnInsToNextRank(ushort currentSatisfaction, ushort maxSatisfaction, int maxTurnIns) { - int num = ((currentSatisfaction < maxSatisfaction) ? 423147797 : 423147794); - int num5 = default(int); - int num6 = default(int); - while (true) + if (currentSatisfaction >= maxSatisfaction) { - int num2 = num; - int num3 = 423147798; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 423147794; - break; - case 3: - num3 = currentSatisfaction; - num4 = maxSatisfaction; - num5 = ~(~num4 + num3); - num6 = maxSatisfaction / maxTurnIns; - num = ((num6 != 0) ? 423147799 : 423147796); - break; - case 4: - return maxTurnIns; - case 2: - return maxTurnIns; - case 1: - return _200D_202D_206D_206C_206D_202A_202A_200D_202E_200B_200B_200C_206E_202E_200D_200B_206B_206C_206F_202C_200B_200C_202D_200B_206C_200F_200B_202E_200C_206F_206F_206D_200D_200E_202A_206E_202C_206F_202D_206E_202E((int)_202E_200D_206F_200C_200B_206B_202E_206E_206D_206D_200E_206B_202D_206D_206D_200E_206B_200E_206A_202B_206F_206A_202D_202B_202C_202D_206E_202B_200D_206F_200F_206D_200D_200B_200F_200C_200F_202B_206B_200D_202E((double)num5 / (double)num6), maxTurnIns); - } + return maxTurnIns; } - } - - static void _206C_202C_202B_202D_202E_200F_200B_202E_202C_202D_202C_206D_206A_200D_206C_200E_200F_206A_202A_200C_200E_200D_200D_206A_206F_202C_202B_206F_200B_200F_206C_206D_202C_206C_200B_206B_206C_202B_200F_200C_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); - } - - static double _202E_200D_206F_200C_200B_206B_202E_206E_206D_206D_200E_206B_202D_206D_206D_200E_206B_200E_206A_202B_206F_206A_202D_202B_202C_202D_206E_202B_200D_206F_200F_206D_200D_200B_200F_200C_200F_202B_206B_200D_202E(double P_0) - { - return Math.Ceiling(P_0); - } - - static int _200D_202D_206D_206C_206D_202A_202A_200D_202E_200B_200B_200C_206E_202E_200D_200B_206B_206C_206F_202C_200B_200C_202D_200B_206C_200F_200B_202E_200C_206F_206F_206D_200D_200E_202A_206E_202C_206F_202D_206E_202E(int P_0, int P_1) - { - return Math.Min(P_0, P_1); + int num = maxSatisfaction - currentSatisfaction; + int num2 = maxSatisfaction / maxTurnIns; + if (num2 == 0) + { + return maxTurnIns; + } + return Math.Min((int)Math.Ceiling((double)num / (double)num2), maxTurnIns); } } diff --git a/LLib/LLib.GameData/TeleportHelper.cs b/LLib/LLib.GameData/TeleportHelper.cs index 1e99f9b..971e43c 100644 --- a/LLib/LLib.GameData/TeleportHelper.cs +++ b/LLib/LLib.GameData/TeleportHelper.cs @@ -1,4 +1,3 @@ -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.UI; @@ -27,172 +26,75 @@ public sealed class TeleportHelper public unsafe bool IsAetheryteUnlocked(uint aetheryteId) { UIState* ptr = UIState.Instance(); - int num = ((ptr == null) ? 2130643281 : 2130643280); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 2130643281; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return false; - case 1: - return ptr->IsAetheryteUnlocked(aetheryteId); - case 2: - goto IL_0055; - } - continue; - IL_0055: - num = 2130643280; + return ptr->IsAetheryteUnlocked(aetheryteId); } + return false; } public unsafe bool CanTeleport() { ActionManager* ptr = ActionManager.Instance(); - int num = ((ptr == null) ? 978178038 : 978178037); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 978178036; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 1: - return ptr->GetActionStatus(ActionType.Action, 5u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0; - case 2: - return false; - } - continue; - IL_004b: - num = 978178037; + return ptr->GetActionStatus(ActionType.Action, 5u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0; } + return false; } public unsafe bool IsTeleportUnlocked() { UIState* ptr = UIState.Instance(); - int num = ((ptr == null) ? 249650035 : 249650034); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 249650035; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return false; - case 1: - return ptr->IsUnlockLinkUnlocked(_teleportUnlockLink); - case 2: - goto IL_0058; - } - continue; - IL_0058: - num = 249650034; + return ptr->IsUnlockLinkUnlocked(_teleportUnlockLink); } + return false; } public unsafe bool IsFreeAetheryte(uint aetheryteId) { PlayerState* ptr = PlayerState.Instance(); - int num = ((ptr == null) ? 1806053406 : 1806053402); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 1806053406; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (ptr->FreeAetheryteId != aetheryteId && ptr->FreeAetherytePSPlus != aetheryteId) { - case 2: return ptr->FreeAetheryteNSO == aetheryteId; - case 4: - num = ((ptr->FreeAetheryteId == aetheryteId) ? 1806053405 : 1806053407); - break; - case 5: - num = 1806053402; - break; - case 3: - return true; - case 1: - num = ((ptr->FreeAetherytePSPlus == aetheryteId) ? 1806053405 : 1806053404); - break; - case 0: - return false; } + return true; } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe bool Teleport(uint aetheryteId, byte subIndex = 0) { - int num = (IsTeleportUnlocked() ? 1160662395 : 1160662390); - Telepo* ptr = default(Telepo*); - while (true) + if (!IsTeleportUnlocked()) { - int num2 = num; - int num3 = 1160662396; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - ptr = Telepo.Instance(); - num = ((ptr != null) ? 1160662397 : 1160662396); - break; - case 5: - _206C_202B_206D_200E_200D_200C_206E_206A_200F_206D_206A_206A_206E_206D_206E_206D_206A_202A_200F_206B_200D_200F_206E_200C_202A_202D_202C_202C_202D_206E_200D_206D_206A_200B_206F_200D_206C_202E_206D_202E((ILogger)_logger, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-979996593), new object[1] { aetheryteId }); - return false; - case 9: - num = (IsAetheryteUnlocked(aetheryteId) ? 1160662388 : 1160662394); - break; - case 7: - num = (CanTeleport() ? 1160662389 : 1160662392); - break; - case 0: - return false; - case 8: - num = ((!_gameState.IsLoadingScreenVisible()) ? 1160662398 : 1160662393); - break; - case 3: - num = 1160662390; - break; - case 1: - _206A_200F_200F_206F_200B_206F_206D_206B_200C_202E_200F_202B_206E_200B_200E_200E_202A_200C_200D_202B_202A_206F_200D_206A_200B_200E_202D_206B_206A_202A_206D_206B_206F_200D_202E_206B_200B_206B_200F_206B_202E((ILogger)_logger, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(2083148089), new object[1] { aetheryteId }); - return ptr->Teleport(aetheryteId, subIndex); - case 6: - _202C_206E_200D_200E_206D_200D_202B_200F_200C_202B_206A_206B_206D_202C_202B_202B_202C_200F_200B_206A_200D_200E_206A_200B_206E_202E_206B_206C_202C_200C_202E_206B_200D_206F_200D_206A_206A_202A_206B_206D_202E((ILogger)_logger, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1264034910), new object[1] { aetheryteId }); - return false; - case 4: - _206C_202B_206D_200E_200D_200C_206E_206A_200F_206D_206A_206A_206E_206D_206E_206D_206A_202A_200F_206B_200D_200F_206E_200C_202A_202D_202C_202C_202D_206E_200D_206D_206A_200B_206F_200D_206C_202E_206D_202E((ILogger)_logger, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1137941263), new object[1] { aetheryteId }); - return false; - case 10: - _202C_206E_200D_200E_206D_200D_202B_200F_200C_202B_206A_206B_206D_202C_202B_202B_202C_200F_200B_206A_200D_200E_206A_200B_206E_202E_206B_206C_202C_200C_202E_206B_200D_206F_200D_206A_206A_202A_206B_206D_202E((ILogger)_logger, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-637254207), new object[1] { aetheryteId }); - return false; - } + _logger.LogWarning("Teleport action is not unlocked; skipping teleport to {Id}", aetheryteId); + return false; } - } - - static void _202C_206E_200D_200E_206D_200D_202B_200F_200C_202B_206A_206B_206D_202C_202B_202B_202C_200F_200B_206A_200D_200E_206A_200B_206E_202E_206B_206C_202C_200C_202E_206B_200D_206F_200D_206A_206A_202A_206B_206D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static void _206C_202B_206D_200E_200D_200C_206E_206A_200F_206D_206A_206A_206E_206D_206E_206D_206A_202A_200F_206B_200D_200F_206E_200C_202A_202D_202C_202C_202D_206E_200D_206D_206A_200B_206F_200D_206C_202E_206D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _206A_200F_200F_206F_200B_206F_206D_206B_200C_202E_200F_202B_206E_200B_200E_200E_202A_200C_200D_202B_202A_206F_200D_206A_200B_200E_202D_206B_206A_202A_206D_206B_206F_200D_202E_206B_200B_206B_200F_206B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); + if (!CanTeleport()) + { + _logger.LogDebug("Teleport to {Id} blocked: action on cooldown", aetheryteId); + return false; + } + if (!IsAetheryteUnlocked(aetheryteId)) + { + _logger.LogWarning("Aetheryte {Id} is not unlocked; skipping teleport", aetheryteId); + return false; + } + if (_gameState.IsLoadingScreenVisible()) + { + _logger.LogDebug("Skipping teleport to {Id}: loading screen visible", aetheryteId); + return false; + } + Telepo* ptr = Telepo.Instance(); + if (ptr == null) + { + return false; + } + _logger.LogInformation("Teleporting to aetheryte {Id}", aetheryteId); + return ptr->Teleport(aetheryteId, subIndex); } } diff --git a/LLib/LLib.GameData/WeatherHelper.cs b/LLib/LLib.GameData/WeatherHelper.cs index 253d62c..683e465 100644 --- a/LLib/LLib.GameData/WeatherHelper.cs +++ b/LLib/LLib.GameData/WeatherHelper.cs @@ -40,118 +40,53 @@ public sealed class WeatherHelper public Weather? GetWeatherAtTime(uint territoryId, long unixSeconds) { TerritoryType? rowOrDefault = _dataManager.GetExcelSheet<TerritoryType>().GetRowOrDefault(territoryId); - int num = (rowOrDefault.HasValue ? 1395957685 : 1395957681); - while (true) + if (!rowOrDefault.HasValue) { - int num2 = num; - int num3 = 1395957685; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - { - WeatherRate value = rowOrDefault.Value.WeatherRate.Value; - uint target = CalculateTarget(unixSeconds); - return ResolveWeather(value, target); - } - case 0: - num = (rowOrDefault.Value.WeatherRate.IsValid ? 1395957684 : 1395957687); - break; - case 4: - return null; - case 3: - num = 1395957681; - break; - case 2: - return null; - } + return null; } + if (!rowOrDefault.Value.WeatherRate.IsValid) + { + return null; + } + WeatherRate value = rowOrDefault.Value.WeatherRate.Value; + uint target = CalculateTarget(unixSeconds); + return ResolveWeather(value, target); } internal static uint CalculateTarget(long unixSeconds) { long num = unixSeconds / 175; - long num2 = 8L; - long num3 = num; - long num4 = num3 ^ num2; - long num5 = num3 & num2; - uint num6 = (uint)((num4 + (num5 + num5) - num % 8) % 24); - int num7 = (int)(unixSeconds / 4200) * 100; - int num8 = (int)num6; - int num9 = num7; - int num10 = num9 ^ num8; - int num11 = num9 & num8; - uint num12 = (uint)(num10 + (num11 + num11)); - uint num13 = num12 << 11; - num8 = (int)num12; - num9 = (int)num13; - int num14 = num9 + num8; - int num15 = num9 & num8; - uint num16 = (uint)(num14 - (num15 + num15)); - uint num17 = num16 >> 8; - num8 = (int)num16; - num9 = (int)num17; - return (uint)((num9 | num8) - (num9 & num8)) % 100u; + uint num2 = (uint)((num + 8 - num % 8) % 24); + uint num3 = (uint)((int)(unixSeconds / 4200) * 100) + num2; + uint num4 = (num3 << 11) ^ num3; + return ((num4 >> 8) ^ num4) % 100; } private static Weather? ResolveWeather(WeatherRate weatherRate, uint target) { Weather? result = null; int num = 0; - int num2 = 0; - int num3 = -1371049026; - RowRef<Weather> rowRef = default(RowRef<Weather>); - while (true) + for (int i = 0; i < weatherRate.Rate.Count; i++) { - int num4 = num3; - int num5 = -1371049029; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) + if (weatherRate.Rate[i] <= 0) { - case 0: - return rowRef.Value; - case 4: - num3 = (rowRef.IsValid ? (-1371049029) : (-1371049027)); - break; - case 2: - result = rowRef.Value; - num3 = -1371049030; - break; - case 6: - return null; - case 7: - rowRef = weatherRate.Weather[num2]; - num3 = ((!rowRef.IsValid) ? (-1371049030) : (-1371049031)); - break; - case 9: - num3 = ((weatherRate.Rate[num2] <= 0) ? (-1371049039) : (-1371049028)); - break; - case 8: - num3 = -1371049026; - break; - case 1: - num += weatherRate.Rate[num2]; - num3 = ((target >= num) ? (-1371049039) : (-1371049025)); - break; - case 10: - { - int num9 = num2; - num5 = 1; - num6 = num9; - num2 = (num6 | num5) + (num6 & num5); - num3 = -1371049026; - break; + continue; } - case 3: - return result; - case 5: - num3 = ((num2 < weatherRate.Rate.Count) ? (-1371049038) : (-1371049032)); - break; + RowRef<Weather> rowRef = weatherRate.Weather[i]; + if (rowRef.IsValid) + { + result = rowRef.Value; + } + num += weatherRate.Rate[i]; + if (target < num) + { + if (!rowRef.IsValid) + { + return null; + } + return rowRef.Value; } } + return result; } } diff --git a/LLib/LLib.GameUI/AddonCallback.cs b/LLib/LLib.GameUI/AddonCallback.cs index 04ef1f2..7479e1f 100644 --- a/LLib/LLib.GameUI/AddonCallback.cs +++ b/LLib/LLib.GameUI/AddonCallback.cs @@ -6,183 +6,57 @@ public static class AddonCallback { public unsafe static void Fire(AtkUnitBase* addon, params int[] args) { - int num = ((addon != null) ? 1413141629 : 1413141631); - int num5 = default(int); - AtkValue* ptr = default(AtkValue*); - while (true) + if (addon != null) { - int num2 = num; - int num3 = 1413141624; - int num4 = num2; - int num9; - switch ((num4 | num3) - (num4 & num3)) + AtkValue* ptr = stackalloc AtkValue[(args.Length == 0) ? 1 : args.Length]; + for (int i = 0; i < args.Length; i++) { - case 3: - num = 1413141631; - break; - case 2: - num = ((num5 < args.Length) ? 1413141625 : 1413141630); - break; - case 4: - num9 = args.Length; - goto IL_0099; - case 7: - return; - case 0: - num9 = 1; - goto IL_0099; - case 5: - num = ((args.Length == 0) ? 1413141624 : 1413141628); - break; - case 1: - { - ptr[num5].Type = AtkValueType.Int; - ptr[num5].Int = args[num5]; - int num6 = num5; - num3 = 1; - num4 = num6; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - num5 = num7 + (num8 + num8); - num = 1413141626; - break; - } - case 6: - { - addon->FireCallback((uint)args.Length, ptr); - return; - } - IL_0099: - ptr = stackalloc AtkValue[num9]; - num5 = 0; - num = 1413141626; - break; + ptr[i].Type = AtkValueType.Int; + ptr[i].Int = args[i]; } + addon->FireCallback((uint)args.Length, ptr); } } public unsafe static void FireWithUpdate(AtkUnitBase* addon, params int[] args) { - int num = ((addon != null) ? 914584294 : 914584289); - AtkValue* ptr = default(AtkValue*); - int num8 = default(int); - while (true) + if (addon != null) { - int num2 = num; - int num3 = 914584290; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num7; - switch (num5 - (num6 + num6)) + AtkValue* ptr = stackalloc AtkValue[(args.Length == 0) ? 1 : args.Length]; + for (int i = 0; i < args.Length; i++) { - case 4: - num = ((args.Length == 0) ? 914584293 : 914584291); - break; - case 3: - return; - case 7: - num7 = 1; - goto IL_007b; - case 5: - num = 914584289; - break; - case 0: - { - ptr[num8].Type = AtkValueType.Int; - ptr[num8].Int = args[num8]; - int num9 = num8; - num3 = 1; - num4 = num9; - int num10 = num4 ^ num3; - int num11 = num4 & num3; - num8 = num10 + (num11 + num11); - num = 914584288; - break; - } - case 2: - num = ((num8 < args.Length) ? 914584290 : 914584292); - break; - case 1: - num7 = args.Length; - goto IL_007b; - case 6: - { - addon->FireCallback((uint)args.Length, ptr, close: true); - return; - } - IL_007b: - ptr = stackalloc AtkValue[num7]; - num8 = 0; - num = 914584288; - break; + ptr[i].Type = AtkValueType.Int; + ptr[i].Int = args[i]; } + addon->FireCallback((uint)args.Length, ptr, close: true); } } public unsafe static void ClickYes(AtkUnitBase* addon) { - int num = ((addon != null) ? (-2035549555) : (-2035549554)); - while (true) + if (addon != null) { - int num2 = num; - int num3 = -2035549553; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0043; - case 1: - return; - case 2: - addon->FireCallbackInt(0); - return; - } - continue; - IL_0043: - num = -2035549554; + addon->FireCallbackInt(0); } } public unsafe static bool ClickButton(AtkUnitBase* addon, AtkComponentButton* button) { - int num = ((addon == null) ? (-1621168599) : (-1621168597)); - AtkComponentNode* ownerNode = default(AtkComponentNode*); - AtkEvent* ptr = default(AtkEvent*); - while (true) + if (addon == null || button == null || !button->IsEnabled) { - int num2 = num; - int num3 = -1621168595; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 7: - ownerNode = button->AtkComponentBase.OwnerNode; - num = ((ownerNode != null) ? (-1621168603) : (-1621168595)); - break; - case 1: - addon->ReceiveEvent(ptr->State.EventType, (int)ptr->Param, ptr, null); - return true; - case 2: - num = (button->IsEnabled ? (-1621168598) : (-1621168599)); - break; - case 5: - return false; - case 4: - return false; - case 8: - ptr = ownerNode->AtkResNode.AtkEventManager.Event; - num = ((ptr != null) ? (-1621168596) : (-1621168600)); - break; - case 3: - num = -1621168597; - break; - case 0: - return false; - case 6: - num = ((button == null) ? (-1621168599) : (-1621168593)); - break; - } + return false; } + AtkComponentNode* ownerNode = button->AtkComponentBase.OwnerNode; + if (ownerNode == null) + { + return false; + } + AtkEvent* ptr = ownerNode->AtkResNode.AtkEventManager.Event; + if (ptr == null) + { + return false; + } + addon->ReceiveEvent(ptr->State.EventType, (int)ptr->Param, ptr, null); + return true; } } diff --git a/LLib/LLib.GameUI/AgentHelper.cs b/LLib/LLib.GameUI/AgentHelper.cs index ab5ee8c..53bf486 100644 --- a/LLib/LLib.GameUI/AgentHelper.cs +++ b/LLib/LLib.GameUI/AgentHelper.cs @@ -7,61 +7,16 @@ public static class AgentHelper { public unsafe static void SendEvent(AgentInterface* agent, ulong eventId, params int[] args) { - int num = ((agent != null) ? (-130884679) : (-130884676)); - int num8 = default(int); - AtkValue* ptr = default(AtkValue*); - while (true) + if (agent != null) { - int num2 = num; - int num3 = -130884678; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num7; - switch (num5 - (num6 + num6)) + AtkValue* ptr = stackalloc AtkValue[(args.Length == 0) ? 1 : args.Length]; + for (int i = 0; i < args.Length; i++) { - case 0: - num = -130884676; - break; - case 3: - num = ((args.Length == 0) ? (-130884674) : (-130884675)); - break; - case 7: - num7 = args.Length; - goto IL_00fd; - case 5: - num = ((num8 < args.Length) ? (-130884677) : (-130884680)); - break; - case 1: - { - ptr[num8].Type = AtkValueType.Int; - ptr[num8].Int = args[num8]; - int num9 = num8; - num3 = 1; - num4 = num9; - int num10 = num4 ^ num3; - int num11 = num4 & num3; - num8 = num10 + (num11 + num11); - num = -130884673; - break; - } - case 4: - num7 = 1; - goto IL_00fd; - case 2: - { - AtkValue* returnValue = stackalloc AtkValue[1]; - agent->ReceiveEvent(returnValue, (args.Length == 0) ? null : ptr, (uint)args.Length, eventId); - return; - } - case 6: - return; - IL_00fd: - ptr = stackalloc AtkValue[num7]; - num8 = 0; - num = -130884673; - break; + ptr[i].Type = AtkValueType.Int; + ptr[i].Int = args[i]; } + AtkValue* returnValue = stackalloc AtkValue[1]; + agent->ReceiveEvent(returnValue, (args.Length == 0) ? null : ptr, (uint)args.Length, eventId); } } } diff --git a/LLib/LLib.GameUI/LAddon.cs b/LLib/LLib.GameUI/LAddon.cs index 6044930..93918e5 100644 --- a/LLib/LLib.GameUI/LAddon.cs +++ b/LLib/LLib.GameUI/LAddon.cs @@ -1,5 +1,4 @@ using System; -using System.Runtime.CompilerServices; using Dalamud.Game.NativeWrapper; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Component.GUI; @@ -13,170 +12,52 @@ public static class LAddon public unsafe static AtkUnitBase* GetAddonById(uint id) { AtkUnitList* ptr = &AtkStage.Instance()->RaptureAtkUnitManager->AtkUnitManager.DepthLayerOneList; - int num = 0; - int num2 = 2129774169; - AtkUnitBase* value = default(AtkUnitBase*); - AtkUnitList* ptr2 = default(AtkUnitList*); - int num10 = default(int); - int num7 = default(int); - while (true) + for (int i = 0; i < 18; i++) { - int num3 = num2; - int num4 = 2129774174; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + AtkUnitList* ptr2 = ptr + i; + int num = Math.Min(ptr2->Count, ptr2->Entries.Length); + for (int j = 0; j < num; j++) { - case 9: - num2 = 2129774169; - break; - case 5: - { - int num11 = num; - num4 = 1; - num5 = num11; - num = (num5 | num4) + (num5 & num4); - num2 = 2129774169; - break; - } - case 8: - num2 = ((value->Id != id) ? 2129774174 : 2129774175); - break; - case 7: - num2 = ((num < 18) ? 2129774170 : 2129774172); - break; - case 1: - return value; - case 4: - ptr2 = ptr + num; - num10 = _200F_202C_206F_202D_200F_202D_206D_200E_200D_206E_200B_200B_202A_202B_200F_202A_200C_200B_206C_206F_200B_202A_200E_202C_202E_206A_202D_206D_200F_200E_202C_206A_206A_206F_202D_206B_200B_200C_206C_202A_202E((int)ptr2->Count, ptr2->Entries.Length); - num7 = 0; - num2 = 2129774168; - break; - case 3: - value = ptr2->Entries[num7].Value; - num2 = ((value == null) ? 2129774174 : 2129774166); - break; - case 6: - num2 = ((num7 < num10) ? 2129774173 : 2129774171); - break; - case 0: - { - int num6 = num7; - num4 = 1; - num5 = num6; - int num8 = num5 ^ num4; - int num9 = num5 & num4; - num7 = num8 + (num9 + num9); - num2 = 2129774168; - break; - } - case 2: - return null; + AtkUnitBase* value = ptr2->Entries[j].Value; + if (value != null && value->Id == id) + { + return value; + } } } + return null; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryGetAddonByName<T>(this IGameGui gameGui, string addonName, out T* addonPtr) where T : unmanaged { - _206F_202D_200B_200D_206C_206D_200D_202D_202B_200C_206D_206C_206E_200D_200F_206E_200B_202E_200F_206F_200E_200F_206A_202B_202C_202B_206F_206A_206C_206F_200E_202E_200F_200E_202C_202D_200F_206F_200C_206D_202E((object)gameGui, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1115223157)); - _206D_200C_206B_206E_200E_202E_202B_206D_206F_202B_200D_200D_206A_202D_202E_202B_202D_206E_206F_206E_206A_202E_202C_202A_206E_200B_206B_206F_200E_202E_202A_200F_202E_206A_206E_206A_206D_206F_206B_206F_202E(addonName, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-709864046)); - AtkUnitBasePtr atkUnitBasePtr = _200F_202D_202D_200E_200F_200C_200E_202D_202E_200B_202A_206B_202A_206A_206A_206F_206D_202A_206D_206C_200E_202D_202C_206A_200D_202E_202D_206E_200C_206A_206B_200F_206C_200E_202D_202C_200B_202D_200E_200F_202E(gameGui, addonName, 1); - int num = (atkUnitBasePtr.IsNull ? (-1471855993) : (-1471855994)); - while (true) + ArgumentNullException.ThrowIfNull(gameGui, "gameGui"); + ArgumentException.ThrowIfNullOrEmpty(addonName, "addonName"); + AtkUnitBasePtr addonByName = gameGui.GetAddonByName(addonName); + if (!addonByName.IsNull) { - int num2 = num; - int num3 = -1471855993; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0072; - case 0: - addonPtr = null; - return false; - case 1: - addonPtr = (T*)atkUnitBasePtr.Address; - return true; - } - continue; - IL_0072: - num = -1471855994; + addonPtr = (T*)addonByName.Address; + return true; } + addonPtr = null; + return false; } public unsafe static bool IsAddonReady(AtkUnitBase* addon) { - int num = ((addon == null) ? 1974833566 : 1974833564); - while (true) + if (addon != null && addon->IsVisible) { - int num2 = num; - int num3 = 1974833565; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return addon->UldManager.LoadedState == AtkLoadState.Loaded; - case 1: - num = ((!addon->IsVisible) ? 1974833566 : 1974833565); - break; - case 3: - return false; - case 2: - num = 1974833564; - break; - } + return addon->UldManager.LoadedState == AtkLoadState.Loaded; } + return false; } public unsafe static bool TryGetReadyAddon<T>(this IGameGui gameGui, string addonName, out T* addonPtr) where T : unmanaged { - int num = ((!gameGui.TryGetAddonByName<T>(addonName, out addonPtr)) ? 1276632889 : 1276632891); - while (true) + if (gameGui.TryGetAddonByName<T>(addonName, out addonPtr) && IsAddonReady((AtkUnitBase*)addonPtr)) { - int num2 = num; - int num3 = 1276632890; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return true; - case 1: - num = ((!IsAddonReady((AtkUnitBase*)addonPtr)) ? 1276632889 : 1276632888); - break; - case 3: - addonPtr = null; - return false; - case 0: - num = 1276632891; - break; - } + return true; } - } - - static int _200F_202C_206F_202D_200F_202D_206D_200E_200D_206E_200B_200B_202A_202B_200F_202A_200C_200B_206C_206F_200B_202A_200E_202C_202E_206A_202D_206D_200F_200E_202C_206A_206A_206F_202D_206B_200B_200C_206C_202A_202E(int P_0, int P_1) - { - return Math.Min(P_0, P_1); - } - - static void _206F_202D_200B_200D_206C_206D_200D_202D_202B_200C_206D_206C_206E_200D_200F_206E_200B_202E_200F_206F_200E_200F_206A_202B_202C_202B_206F_206A_206C_206F_200E_202E_200F_200E_202C_202D_200F_206F_200C_206D_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static void _206D_200C_206B_206E_200E_202E_202B_206D_206F_202B_200D_200D_206A_202D_202E_202B_202D_206E_206F_206E_206A_202E_202C_202A_206E_200B_206B_206F_200E_202E_202A_200F_202E_206A_206E_206A_206D_206F_206B_206F_202E(string P_0, string P_1) - { - ArgumentException.ThrowIfNullOrEmpty(P_0, P_1); - } - - static AtkUnitBasePtr _200F_202D_202D_200E_200F_200C_200E_202D_202E_200B_202A_206B_202A_206A_206A_206F_206D_202A_206D_206C_200E_202D_202C_206A_200D_202E_202D_206E_200C_206A_206B_200F_206C_200E_202D_202C_200B_202D_200E_200F_202E(IGameGui P_0, string P_1, int P_2) - { - return P_0.GetAddonByName(P_1, P_2); + addonPtr = null; + return false; } } diff --git a/LLib/LLib.GameUI/LAtkValue.cs b/LLib/LLib.GameUI/LAtkValue.cs index 69c4f61..928ea9e 100644 --- a/LLib/LLib.GameUI/LAtkValue.cs +++ b/LLib/LLib.GameUI/LAtkValue.cs @@ -1,5 +1,4 @@ using System; -using Dalamud.Game.Text.SeStringHandling; using Dalamud.Memory; using FFXIVClientStructs.FFXIV.Component.GUI; @@ -10,37 +9,14 @@ public static class LAtkValue public unsafe static string? ReadAtkString(this AtkValue atkValue) { AtkValueType atkValueType = atkValue.Type & AtkValueType.TypeMask; - int num = ((atkValueType == AtkValueType.String) ? 1097061061 : 1097061058); - while (true) + if (atkValueType != AtkValueType.String && atkValueType != AtkValueType.ConstString) { - int num2 = num; - int num3 = 1097061057; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - num = 1097061058; - break; - case 3: - num = ((atkValueType == AtkValueType.ConstString) ? 1097061061 : 1097061057); - break; - case 4: - num = ((!atkValue.String.HasValue) ? 1097061059 : 1097061056); - break; - case 1: - return _200F_206A_206C_206F_202D_202E_200D_200B_202D_200B_200B_202E_200C_200C_200C_206B_202A_202D_206C_202B_206A_200E_200E_202B_206C_200E_206D_202E_202B_206C_200F_200F_200B_206F_202B_202E_200E_202C_206A_202A_202E(new IntPtr((byte*)atkValue.String)).WithCertainMacroCodeReplacements(); - case 2: - return null; - case 0: - return null; - } + return null; } - } - - static SeString _200F_206A_206C_206F_202D_202E_200D_200B_202D_200B_200B_202E_200C_200C_200C_206B_202A_202D_206C_202B_206A_200E_200E_202B_206C_200E_206D_202E_202B_206C_200F_200F_200B_206F_202B_202E_200E_202C_206A_202A_202E(nint P_0) - { - return MemoryHelper.ReadSeStringNullTerminated(P_0); + if (atkValue.String.HasValue) + { + return MemoryHelper.ReadSeStringNullTerminated(new IntPtr((byte*)atkValue.String)).WithCertainMacroCodeReplacements(); + } + return null; } } diff --git a/LLib/LLib.GameUI/SeStringExtensions.cs b/LLib/LLib.GameUI/SeStringExtensions.cs index e8688ba..c26be1a 100644 --- a/LLib/LLib.GameUI/SeStringExtensions.cs +++ b/LLib/LLib.GameUI/SeStringExtensions.cs @@ -7,29 +7,10 @@ public static class SeStringExtensions { public static string WithCertainMacroCodeReplacements(this SeString? str) { - int num = ((str != null) ? 678693076 : 678693077); - while (true) + if (str == null) { - int num2 = num; - int num3 = 678693076; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return new ReadOnlySeString(_200E_206E_206F_206E_200D_202D_206F_206C_202E_206A_202A_200F_202A_202E_202B_206A_206B_202C_200D_202E_200E_202D_200D_206C_206A_206E_200F_206D_200D_200D_202B_206D_206A_206F_202B_200C_202C_202C_206B_206F_202E(str)).WithCertainMacroCodeReplacements(); - case 1: - return string.Empty; - case 2: - goto IL_0058; - } - continue; - IL_0058: - num = 678693077; + return string.Empty; } - } - - static byte[] _200E_206E_206F_206E_200D_202D_206F_206C_202E_206A_202A_200F_202A_202E_202B_206A_206B_202C_200D_202E_200E_202D_200D_206C_206A_206E_200F_206D_200D_200D_202B_206D_206A_206F_202B_200C_202C_202C_206B_206F_202E(SeString P_0) - { - return P_0.Encode(); + return new ReadOnlySeString(str.Encode()).WithCertainMacroCodeReplacements(); } } diff --git a/LLib/LLib.Gear/BestItemFinder.cs b/LLib/LLib.Gear/BestItemFinder.cs index 614ffcf..d6ca466 100644 --- a/LLib/LLib.Gear/BestItemFinder.cs +++ b/LLib/LLib.Gear/BestItemFinder.cs @@ -1,7 +1,5 @@ using System; -using System.Collections; using System.Collections.Generic; -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using LLib.GameData; @@ -12,9 +10,41 @@ namespace LLib.Gear; public sealed class BestItemFinder { - public static readonly IReadOnlyList<InventoryType> ArmoryAndEquipped; + public static readonly IReadOnlyList<InventoryType> ArmoryAndEquipped = new global::_003C_003Ez__ReadOnlyArray<InventoryType>(new InventoryType[12] + { + InventoryType.EquippedItems, + InventoryType.ArmoryMainHand, + InventoryType.ArmoryOffHand, + InventoryType.ArmoryHead, + InventoryType.ArmoryBody, + InventoryType.ArmoryHands, + InventoryType.ArmoryLegs, + InventoryType.ArmoryFeets, + InventoryType.ArmoryEar, + InventoryType.ArmoryNeck, + InventoryType.ArmoryWrist, + InventoryType.ArmoryRings + }); - public static readonly IReadOnlyList<InventoryType> ArmoryEquippedAndBags; + public static readonly IReadOnlyList<InventoryType> ArmoryEquippedAndBags = new global::_003C_003Ez__ReadOnlyArray<InventoryType>(new InventoryType[16] + { + InventoryType.EquippedItems, + InventoryType.ArmoryMainHand, + InventoryType.ArmoryOffHand, + InventoryType.ArmoryHead, + InventoryType.ArmoryBody, + InventoryType.ArmoryHands, + InventoryType.ArmoryLegs, + InventoryType.ArmoryFeets, + InventoryType.ArmoryEar, + InventoryType.ArmoryNeck, + InventoryType.ArmoryWrist, + InventoryType.ArmoryRings, + InventoryType.Inventory1, + InventoryType.Inventory2, + InventoryType.Inventory3, + InventoryType.Inventory4 + }); private readonly GearStatsCalculator _calculator; @@ -22,11 +52,10 @@ public sealed class BestItemFinder private readonly ExcelSheet<ClassJobCategory> _classJobCategorySheet; - [MethodImpl(MethodImplOptions.NoInlining)] public BestItemFinder(GearStatsCalculator calculator, IDataManager dataManager) { - _206D_206D_200D_200E_206B_206F_200E_200E_206D_200F_200F_202C_206F_200D_200C_200E_206A_202D_206A_200D_202A_202E_200B_206C_206C_202A_206A_202B_202D_202E_200F_200B_206E_202C_202A_206F_202D_202B_200F_200C_202E((object)calculator, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1061074664)); - _206D_206D_200D_200E_206B_206F_200E_200E_206D_200F_200F_202C_206F_200D_200C_200E_206A_202D_206A_200D_202A_202E_200B_206C_206C_202A_206A_202B_202D_202E_200F_200B_206E_202C_202A_206F_202D_202B_200F_200C_202E((object)dataManager, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1509101314)); + ArgumentNullException.ThrowIfNull(calculator, "calculator"); + ArgumentNullException.ThrowIfNull(dataManager, "dataManager"); _calculator = calculator; _itemSheet = dataManager.GetExcelSheet<Item>(); _classJobCategorySheet = dataManager.GetExcelSheet<ClassJobCategory>(); @@ -36,320 +65,100 @@ public sealed class BestItemFinder { BestItemRef? result = null; ItemRankingKey best = ItemRankingKey.None; - int num = (job.DealsMagicDamage() ? (-539654856) : (-539654853)); - InventoryItem* inventorySlot = default(InventoryItem*); - BestItemRef valueOrDefault = default(BestItemRef); - int num10 = default(int); - Item value = default(Item); - Item? rowOrDefault = default(Item?); - InventoryType current = default(InventoryType); - ItemRankingKey itemRankingKey = default(ItemRankingKey); - EBaseParam param = default(EBaseParam); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - InventoryManager* ptr = default(InventoryManager*); - while (true) + EBaseParam param = (job.DealsMagicDamage() ? EBaseParam.DamageMag : EBaseParam.DamagePhys); + InventoryManager* ptr = InventoryManager.Instance(); + if (ptr == null) { - int num2 = num; - int num3 = -539654855; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num13; - switch (num5 - (num6 + num6)) + return null; + } + foreach (InventoryType container in containers) + { + InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(container); + if (inventoryContainer == null) { - case 3: - num = -539654853; - break; - case 2: - num13 = 12; - goto IL_0093; - case 0: - return null; - case 1: - num13 = 13; - goto IL_0093; - case 4: + continue; + } + for (int i = 0; i < inventoryContainer->Size; i++) + { + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(i); + if (inventorySlot == null || inventorySlot->ItemId == 0) { - IEnumerator<InventoryType> enumerator = containers.GetEnumerator(); - try + continue; + } + if (excludeContainerSlot.HasValue) + { + BestItemRef valueOrDefault = excludeContainerSlot.GetValueOrDefault(); + if (valueOrDefault.Container == container && valueOrDefault.Slot == i) { - num = 1383035705; - while (true) - { - int num7 = num; - num3 = 1383035707; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 2: - num = (_202D_206A_202A_206D_202C_202E_206A_206C_200D_200F_206E_202B_206D_206D_200B_206D_206B_200E_200D_206E_206C_206A_202B_206D_200B_200D_202B_202B_206B_206A_200D_202A_200B_206D_200B_202D_206A_202E_206F_206D_202E((IEnumerator)enumerator) ? 1383035691 : 1383035701); - break; - case 13: - num = ((inventorySlot->ItemId == 0) ? 1383035706 : 1383035700); - break; - case 4: - num = ((valueOrDefault.Slot == num10) ? 1383035706 : 1383035690); - break; - case 6: - value = rowOrDefault.Value; - num = ((!IsAcceptedSlot(value.EquipSlotCategory.RowId, acceptedSlotCategories)) ? 1383035706 : 1383035697); - break; - case 5: - valueOrDefault = excludeContainerSlot.GetValueOrDefault(); - num = ((valueOrDefault.Container != current) ? 1383035690 : 1383035711); - break; - case 0: - num = 1383035705; - break; - case 3: - { - EquipmentStats equipmentStats = _calculator.CalculateGearStats(inventorySlot); - itemRankingKey = new ItemRankingKey(value.LevelItem.RowId, priority.Score(equipmentStats), equipmentStats.Get(param)); - num = ((!IsUpgrade(rankingMode, itemRankingKey, best)) ? 1383035706 : 1383035708); - break; - } - case 9: - inventorySlot = inventoryContainer->GetInventorySlot(num10); - num = ((inventorySlot == null) ? 1383035706 : 1383035702); - break; - case 10: - num = ((value.LevelEquip > playerLevel) ? 1383035706 : 1383035703); - break; - case 15: - num = ((!excludeContainerSlot.HasValue) ? 1383035690 : 1383035710); - break; - case 7: - result = new BestItemRef(current, num10, inventorySlot->ItemId, itemRankingKey.ItemLevel, itemRankingKey.Score); - best = itemRankingKey; - num = 1383035706; - break; - case 11: - num = ((num10 < inventoryContainer->Size) ? 1383035698 : 1383035705); - break; - case 12: - num = ((!IsItemForJob(value, job)) ? 1383035706 : 1383035704); - break; - case 16: - current = enumerator.Current; - inventoryContainer = ptr->GetInventoryContainer(current); - num = ((inventoryContainer == null) ? 1383035705 : 1383035699); - break; - case 1: - { - int num11 = num10; - num3 = 1; - num4 = num11; - num10 = (num4 | num3) + (num4 & num3); - num = 1383035696; - break; - } - case 17: - rowOrDefault = _itemSheet.GetRowOrDefault(inventorySlot->ItemId); - num = ((!rowOrDefault.HasValue) ? 1383035706 : 1383035709); - break; - case 8: - num10 = 0; - num = 1383035696; - break; - case 14: - return result; - } - } - } - finally - { - num = ((enumerator == null) ? 1816874723 : 1816874720); - while (true) - { - int num12 = num; - num3 = 1816874722; - num4 = num12; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1816874720; - break; - case 2: - _206C_202E_206F_206E_206E_200E_200C_206A_200B_206E_202C_202E_206D_202D_202D_202E_206E_206D_200D_200D_202A_202B_202C_202B_200B_200F_202B_202B_200F_200C_202D_206C_200D_202B_200E_200F_206D_206E_206B_200C_202E((IDisposable)enumerator); - num = 1816874723; - break; - case 1: - goto end_IL_042f; - } - continue; - end_IL_042f: - break; - } + continue; + } + } + Item? rowOrDefault = _itemSheet.GetRowOrDefault(inventorySlot->ItemId); + if (!rowOrDefault.HasValue) + { + continue; + } + Item value = rowOrDefault.Value; + if (IsAcceptedSlot(value.EquipSlotCategory.RowId, acceptedSlotCategories) && value.LevelEquip <= playerLevel && IsItemForJob(value, job)) + { + EquipmentStats equipmentStats = _calculator.CalculateGearStats(inventorySlot); + ItemRankingKey itemRankingKey = new ItemRankingKey(value.LevelItem.RowId, priority.Score(equipmentStats), equipmentStats.Get(param)); + if (IsUpgrade(rankingMode, itemRankingKey, best)) + { + result = new BestItemRef(container, i, inventorySlot->ItemId, itemRankingKey.ItemLevel, itemRankingKey.Score); + best = itemRankingKey; } } - IL_0093: - param = (EBaseParam)num13; - ptr = InventoryManager.Instance(); - num = ((ptr != null) ? (-539654851) : (-539654855)); - break; } } + return result; } public static bool IsUpgrade(EItemRankingMode mode, ItemRankingKey candidate, ItemRankingKey best) { - int num = ((mode != EItemRankingMode.DamageFirst) ? (-1413450028) : (-1413450032)); - while (true) + if (mode == EItemRankingMode.DamageFirst && candidate.Damage != best.Damage) { - int num2 = num; - int num3 = -1413450029; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return candidate.Damage > best.Damage; + } + if (mode == EItemRankingMode.ItemLevelFirst) + { + if (candidate.ItemLevel != best.ItemLevel) { - case 8: - num = -1413450032; - break; - case 7: - num = ((mode != EItemRankingMode.ItemLevelFirst) ? (-1413450031) : (-1413450025)); - break; - case 9: - return candidate.ItemLevel > best.ItemLevel; - case 4: - num = ((candidate.ItemLevel == best.ItemLevel) ? (-1413450027) : (-1413450022)); - break; - case 2: - num = ((candidate.Score == best.Score) ? (-1413450029) : (-1413450026)); - break; - case 5: - return candidate.Score > best.Score; - case 1: - return candidate.Damage > best.Damage; - case 3: - num = ((candidate.Damage == best.Damage) ? (-1413450028) : (-1413450030)); - break; - case 6: - return candidate.Score > best.Score; - case 0: return candidate.ItemLevel > best.ItemLevel; } + return candidate.Score > best.Score; } + if (candidate.Score != best.Score) + { + return candidate.Score > best.Score; + } + return candidate.ItemLevel > best.ItemLevel; } public bool IsItemForJob(Item item, EClassJob job) { uint rowId = item.ClassJobCategory.RowId; - int num = ((rowId != 0) ? (-1361138782) : (-1361138777)); - ClassJobCategory? rowOrDefault = default(ClassJobCategory?); - while (true) + if (rowId == 0) { - int num2 = num; - int num3 = -1361138778; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = -1361138777; - break; - case 2: - return false; - case 1: - return true; - case 0: - return job.IsInCategory(rowOrDefault.Value); - case 4: - rowOrDefault = _classJobCategorySheet.GetRowOrDefault(rowId); - num = (rowOrDefault.HasValue ? (-1361138778) : (-1361138780)); - break; - } + return true; } + ClassJobCategory? rowOrDefault = _classJobCategorySheet.GetRowOrDefault(rowId); + if (!rowOrDefault.HasValue) + { + return false; + } + return job.IsInCategory(rowOrDefault.Value); } private static bool IsAcceptedSlot(uint itemSlotCategory, IReadOnlyList<uint> accepted) { - IEnumerator<uint> enumerator = accepted.GetEnumerator(); - try + foreach (uint item in accepted) { - int num = -1139406440; - while (true) + if (item == itemSlotCategory) { - int num2 = num; - int num3 = -1139406439; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - num = (_202D_206A_202A_206D_202C_202E_206A_206C_200D_200F_206E_202B_206D_206D_200B_206D_206B_200E_200D_206E_206C_206A_202B_206D_200B_200D_202B_202B_206B_206A_200D_202A_200B_206D_200B_202D_206A_202E_206F_206D_202E((IEnumerator)enumerator) ? (-1139406438) : (-1139406439)); - break; - case 3: - num = ((enumerator.Current != itemSlotCategory) ? (-1139406440) : (-1139406437)); - break; - case 4: - num = -1139406440; - break; - case 2: - return true; - case 0: - goto end_IL_0012; - } - continue; - end_IL_0012: - break; - } - } - finally - { - int num = ((enumerator == null) ? (-1966232189) : (-1966232192)); - while (true) - { - int num7 = num; - int num3 = -1966232191; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1966232192; - break; - case 1: - _206C_202E_206F_206E_206E_200E_200C_206A_200B_206E_202C_202E_206D_202D_202D_202E_206E_206D_200D_200D_202A_202B_202C_202B_200B_200F_202B_202B_200F_200C_202D_206C_200D_202B_200E_200F_206D_206E_206B_200C_202E((IDisposable)enumerator); - num = -1966232189; - break; - case 2: - goto end_IL_00c5; - } - continue; - end_IL_00c5: - break; + return true; } } return false; } - - static BestItemFinder() - { - InventoryType[] array = new InventoryType[12]; - _200B_206D_202E_206F_206A_206F_202B_200E_206E_200B_202D_206C_200F_206D_200D_206B_206A_202C_202C_206E_206E_202C_206D_206C_206F_202C_200F_200F_202A_202D_202B_206F_200E_202C_202C_200D_200B_206D_200D_200D_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - ArmoryAndEquipped = new global::_003C_003Ez__ReadOnlyArray<InventoryType>(array); - InventoryType[] array2 = new InventoryType[16]; - _200B_206D_202E_206F_206A_206F_202B_200E_206E_200B_202D_206C_200F_206D_200D_206B_206A_202C_202C_206E_206E_202C_206D_206C_206F_202C_200F_200F_202A_202D_202B_206F_200E_202C_202C_200D_200B_206D_200D_200D_202E((Array)array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - ArmoryEquippedAndBags = new global::_003C_003Ez__ReadOnlyArray<InventoryType>(array2); - } - - static void _206D_206D_200D_200E_206B_206F_200E_200E_206D_200F_200F_202C_206F_200D_200C_200E_206A_202D_206A_200D_202A_202E_200B_206C_206C_202A_206A_202B_202D_202E_200F_200B_206E_202C_202A_206F_202D_202B_200F_200C_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static bool _202D_206A_202A_206D_202C_202E_206A_206C_200D_200F_206E_202B_206D_206D_200B_206D_206B_200E_200D_206E_206C_206A_202B_206D_200B_200D_202B_202B_206B_206A_200D_202A_200B_206D_200B_202D_206A_202E_206F_206D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206C_202E_206F_206E_206E_200E_200C_206A_200B_206E_202C_202E_206D_202D_202D_202E_206E_206D_200D_200D_202A_202B_202C_202B_200B_200F_202B_202B_200F_200C_202D_206C_200D_202B_200E_200F_206D_206E_206B_200C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _200B_206D_202E_206F_206A_206F_202B_200E_206E_200B_202D_206C_200F_206D_200D_206B_206A_202C_202C_206E_206E_202C_206D_206C_206F_202C_200F_200F_202A_202D_202B_206F_200E_202C_202C_200D_200B_206D_200D_200D_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); - } } diff --git a/LLib/LLib.Gear/BestItemRef.cs b/LLib/LLib.Gear/BestItemRef.cs index 87c91d8..2325a1c 100644 --- a/LLib/LLib.Gear/BestItemRef.cs +++ b/LLib/LLib.Gear/BestItemRef.cs @@ -1,117 +1,5 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using FFXIVClientStructs.FFXIV.Client.Game; namespace LLib.Gear; -public readonly record struct BestItemRef(InventoryType Container, int Slot, uint ItemId, uint ItemLevel, float SubstatScore) -{ - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200D_200D_206E_202E_200C_202C_200E_206A_202B_202A_200F_202B_202B_200D_206C_200E_206B_202B_202A_200D_206A_206A_206D_206D_202D_206F_200E_202D_206D_200F_202C_206E_206E_202E_200B_206D_206C_200D_202D_200C_202E(); - _206A_206C_202E_200E_202B_200E_200B_206F_202D_206C_206A_206A_206B_200E_202B_200B_206D_206F_202E_206D_202C_206B_206B_206F_200E_202A_200D_206B_200F_200E_206A_206D_200D_206A_206B_200B_200B_200F_202E_206A_202E(stringBuilder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(879982736)); - _206A_206C_202E_200E_202B_200E_200B_206F_202D_206C_206A_206A_206B_200E_202B_200B_206D_206F_202E_206D_202C_206B_206B_206F_200E_202A_200D_206B_200F_200E_206A_206D_200D_206A_206B_200B_200B_200F_202E_206A_202E(stringBuilder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1581517409)); - int num = ((!PrintMembers(stringBuilder)) ? 1969490728 : 1969490729); - while (true) - { - int num2 = num; - int num3 = 1969490728; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _200D_206F_202B_200E_206D_206B_206B_206B_202A_206B_202D_206F_202C_206D_202C_202B_206A_200D_200C_206A_206D_200E_200F_206E_206E_206A_206B_206D_202E_206C_206A_206C_206F_202E_202B_202B_206F_200E_206A_206C_202E(stringBuilder, '}'); - return _202D_200F_202C_200D_206A_202D_206E_206B_202E_206C_200C_200B_200B_202E_202C_200F_200E_206C_206E_206E_202C_202A_200F_200F_200F_202B_206C_200B_202A_206D_200C_206A_200B_202C_202A_206B_202D_206C_200D_200C_202E((object)stringBuilder); - case 1: - _200D_206F_202B_200E_206D_206B_206B_206B_202A_206B_202D_206F_202C_206D_202C_202B_206A_200D_200C_206A_206D_200E_200F_206E_206E_206A_206B_206D_202E_206C_206A_206C_206F_202E_202B_202B_206F_200E_206A_206C_202E(stringBuilder, ' '); - num = 1969490728; - break; - case 2: - num = 1969490729; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206A_206C_202E_200E_202B_200E_200B_206F_202D_206C_206A_206A_206B_200E_202B_200B_206D_206F_202E_206D_202C_206B_206B_206F_200E_202A_200D_206B_200F_200E_206A_206D_200D_206A_206B_200B_200B_200F_202E_206A_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-926004725)); - _206A_206C_202E_200E_202B_200E_200B_206F_202D_206C_206A_206A_206B_200E_202B_200B_206D_206F_202E_206D_202C_206B_206B_206F_200E_202A_200D_206B_200F_200E_206A_206D_200D_206A_206B_200B_200B_200F_202E_206A_202E(builder, Container.ToString()); - _206A_206C_202E_200E_202B_200E_200B_206F_202D_206C_206A_206A_206B_200E_202B_200B_206D_206F_202E_206D_202C_206B_206B_206F_200E_202A_200D_206B_200F_200E_206A_206D_200D_206A_206B_200B_200B_200F_202E_206A_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-991935084)); - _206A_206C_202E_200E_202B_200E_200B_206F_202D_206C_206A_206A_206B_200E_202B_200B_206D_206F_202E_206D_202C_206B_206B_206F_200E_202A_200D_206B_200F_200E_206A_206D_200D_206A_206B_200B_200B_200F_202E_206A_202E(builder, Slot.ToString()); - _206A_206C_202E_200E_202B_200E_200B_206F_202D_206C_206A_206A_206B_200E_202B_200B_206D_206F_202E_206D_202C_206B_206B_206F_200E_202A_200D_206B_200F_200E_206A_206D_200D_206A_206B_200B_200B_200F_202E_206A_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1773173997)); - _206A_206C_202E_200E_202B_200E_200B_206F_202D_206C_206A_206A_206B_200E_202B_200B_206D_206F_202E_206D_202C_206B_206B_206F_200E_202A_200D_206B_200F_200E_206A_206D_200D_206A_206B_200B_200B_200F_202E_206A_202E(builder, ItemId.ToString()); - _206A_206C_202E_200E_202B_200E_200B_206F_202D_206C_206A_206A_206B_200E_202B_200B_206D_206F_202E_206D_202C_206B_206B_206F_200E_202A_200D_206B_200F_200E_206A_206D_200D_206A_206B_200B_200B_200F_202E_206A_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-928952484)); - _206A_206C_202E_200E_202B_200E_200B_206F_202D_206C_206A_206A_206B_200E_202B_200B_206D_206F_202E_206D_202C_206B_206B_206F_200E_202A_200D_206B_200F_200E_206A_206D_200D_206A_206B_200B_200B_200F_202E_206A_202E(builder, ItemLevel.ToString()); - _206A_206C_202E_200E_202B_200E_200B_206F_202D_206C_206A_206A_206B_200E_202B_200B_206D_206F_202E_206D_202C_206B_206B_206F_200E_202A_200D_206B_200F_200E_206A_206D_200D_206A_206B_200B_200B_200F_202E_206A_202E(builder, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-2040749927)); - _206A_206C_202E_200E_202B_200E_200B_206F_202D_206C_206A_206A_206B_200E_202B_200B_206D_206F_202E_206D_202C_206B_206B_206F_200E_202A_200D_206B_200F_200E_206A_206D_200D_206A_206B_200B_200B_200F_202E_206A_202E(builder, SubstatScore.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(BestItemRef other) - { - int num = ((!EqualityComparer<InventoryType>.Default.Equals(Container, other.Container)) ? 542422515 : 542422514); - while (true) - { - int num2 = num; - int num3 = 542422515; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = ((!EqualityComparer<uint>.Default.Equals(ItemLevel, other.ItemLevel)) ? 542422515 : 542422518); - break; - case 1: - num = ((!EqualityComparer<int>.Default.Equals(Slot, other.Slot)) ? 542422515 : 542422512); - break; - case 0: - return false; - case 5: - return EqualityComparer<float>.Default.Equals(SubstatScore, other.SubstatScore); - case 3: - num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? 542422515 : 542422519); - break; - case 2: - num = 542422514; - break; - } - } - } - - bool IEquatable<BestItemRef>.Equals(BestItemRef other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _200D_200D_206E_202E_200C_202C_200E_206A_202B_202A_200F_202B_202B_200D_206C_200E_206B_202B_202A_200D_206A_206A_206D_206D_202D_206F_200E_202D_206D_200F_202C_206E_206E_202E_200B_206D_206C_200D_202D_200C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206A_206C_202E_200E_202B_200E_200B_206F_202D_206C_206A_206A_206B_200E_202B_200B_206D_206F_202E_206D_202C_206B_206B_206F_200E_202A_200D_206B_200F_200E_206A_206D_200D_206A_206B_200B_200B_200F_202E_206A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200D_206F_202B_200E_206D_206B_206B_206B_202A_206B_202D_206F_202C_206D_202C_202B_206A_200D_200C_206A_206D_200E_200F_206E_206E_206A_206B_206D_202E_206C_206A_206C_206F_202E_202B_202B_206F_200E_206A_206C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202D_200F_202C_200D_206A_202D_206E_206B_202E_206C_200C_200B_200B_202E_202C_200F_200E_206C_206E_206E_202C_202A_200F_200F_200F_202B_206C_200B_202A_206D_200C_206A_200B_202C_202A_206B_202D_206C_200D_200C_202E(object P_0) - { - return P_0.ToString(); - } -} +public readonly record struct BestItemRef(InventoryType Container, int Slot, uint ItemId, uint ItemLevel, float SubstatScore); diff --git a/LLib/LLib.Gear/DesynthActions.cs b/LLib/LLib.Gear/DesynthActions.cs index 5fc9e73..6e7b1ac 100644 --- a/LLib/LLib.Gear/DesynthActions.cs +++ b/LLib/LLib.Gear/DesynthActions.cs @@ -1,4 +1,3 @@ -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.UI; @@ -16,334 +15,141 @@ public static class DesynthActions public unsafe static bool TryOpenDesynthWindow() { AgentSalvage* ptr = AgentSalvage.Instance(); - int num = ((ptr != null) ? 423836342 : 423836341); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 423836343; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - ptr->AgentInterface.Show(); - return true; - case 2: - return false; - case 0: - goto IL_005a; - } - continue; - IL_005a: - num = 423836341; + return false; } + ptr->AgentInterface.Show(); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsDesynthAddonReady(IGameGui gameGui) { AtkUnitBase* addonPtr; - return gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-866883789), out addonPtr); + return gameGui.TryGetReadyAddon<AtkUnitBase>("SalvageItemSelector", out addonPtr); } public unsafe static void SetCategory(AgentSalvage.SalvageItemCategory category) { AgentSalvage* ptr = AgentSalvage.Instance(); - int num = ((ptr == null) ? (-1642327650) : (-1642327651)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -1642327649; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1642327651; - break; - case 1: - return; - case 2: - ptr->SelectedCategory = category; - num = -1642327650; - break; - } + ptr->SelectedCategory = category; } } public unsafe static AgentSalvage.SalvageItemCategory GetCategory() { AgentSalvage* ptr = AgentSalvage.Instance(); - int num = ((ptr != null) ? 1275547526 : 1275547525); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1275547527; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 2: - return AgentSalvage.SalvageItemCategory.InventoryEquipment; - case 1: - return ptr->SelectedCategory; - } - continue; - IL_004b: - num = 1275547525; + return AgentSalvage.SalvageItemCategory.InventoryEquipment; } + return ptr->SelectedCategory; } public unsafe static void RefreshItemList() { AgentSalvage* ptr = AgentSalvage.Instance(); - int num = ((ptr == null) ? 213710031 : 213710028); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 213710029; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 213710028; - break; - case 2: - return; - case 1: - ptr->ItemListRefresh(isSalvageResultAddonOpen: true); - num = 213710031; - break; - } + ptr->ItemListRefresh(isSalvageResultAddonOpen: true); } } public unsafe static int GetItemCount() { AgentSalvage* ptr = AgentSalvage.Instance(); - int num = ((ptr != null) ? (-832139057) : (-832139060)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -832139059; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return (int)ptr->ItemCount; - case 1: - return 0; - case 0: - goto IL_0052; - } - continue; - IL_0052: - num = -832139060; + return 0; } + return (int)ptr->ItemCount; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TrySelectItem(IGameGui gameGui, int itemIndex) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1627601716), out addonPtr) ? (-770746818) : (-770746819)); - while (true) + if (!gameGui.TryGetReadyAddon<AtkUnitBase>("SalvageItemSelector", out var addonPtr)) { - int num2 = num; - int num3 = -770746817; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0054; - case 2: - return false; - case 1: - AddonCallback.FireWithUpdate(addonPtr, 12, itemIndex); - return true; - } - continue; - IL_0054: - num = -770746819; + return false; } + AddonCallback.FireWithUpdate(addonPtr, 12, itemIndex); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsConfirmDialogReady(IGameGui gameGui) { AtkUnitBase* addonPtr; - return gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1828930182), out addonPtr); + return gameGui.TryGetReadyAddon<AtkUnitBase>("SalvageDialog", out addonPtr); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryConfirmDesynth(IGameGui gameGui, bool nqOnly = false) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(221638269), out addonPtr) ? (-763680542) : (-763680543)); - while (true) + if (!gameGui.TryGetReadyAddon<AtkUnitBase>("SalvageDialog", out var addonPtr)) { - int num2 = num; - int num3 = -763680541; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0052; - case 1: - AddonCallback.FireWithUpdate(addonPtr, 15, nqOnly ? 1 : 0); - AddonCallback.FireWithUpdate(addonPtr, default(int), default(int)); - return true; - case 2: - return false; - } - continue; - IL_0052: - num = -763680543; + return false; } + AddonCallback.FireWithUpdate(addonPtr, 15, nqOnly ? 1 : 0); + AddonCallback.FireWithUpdate(addonPtr, default(int), default(int)); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsResultDialogReady(IGameGui gameGui) { AtkUnitBase* addonPtr; - return gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-132278347), out addonPtr); + return gameGui.TryGetReadyAddon<AtkUnitBase>("SalvageResult", out addonPtr); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryCloseResultDialog(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(937498069), out addonPtr) ? (-1405203810) : (-1405203811)); - while (true) + if (!gameGui.TryGetReadyAddon<AtkUnitBase>("SalvageResult", out var addonPtr)) { - int num2 = num; - int num3 = -1405203809; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - addonPtr->Close(fireCallback: true); - return true; - case 2: - return false; - case 0: - goto IL_0060; - } - continue; - IL_0060: - num = -1405203811; + return false; } + addonPtr->Close(fireCallback: true); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryCloseDesynthWindow(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-2023860148), out addonPtr) ? 176704598 : 176704597); - while (true) + if (!gameGui.TryGetReadyAddon<AtkUnitBase>("SalvageItemSelector", out var addonPtr)) { - int num2 = num; - int num3 = 176704599; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0052; - case 2: - return false; - case 1: - addonPtr->Close(fireCallback: true); - return true; - } - continue; - IL_0052: - num = 176704597; + return false; } + addonPtr->Close(fireCallback: true); + return true; } public unsafe static AgentSalvage.SalvageListItem? GetItemAtIndex(int index) { AgentSalvage* ptr = AgentSalvage.Instance(); - int num = ((ptr == null) ? 1959558310 : 1959558311); - while (true) + if (ptr == null || ptr->ItemList == null || index < 0 || index >= ptr->ItemCount) { - int num2 = num; - int num3 = 1959558309; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1959558311; - break; - case 2: - num = ((ptr->ItemList == null) ? 1959558310 : 1959558305); - break; - case 1: - return ptr->ItemList[index]; - case 4: - num = ((index < 0) ? 1959558310 : 1959558304); - break; - case 5: - num = ((index < ptr->ItemCount) ? 1959558308 : 1959558310); - break; - case 3: - return null; - } + return null; } + return ptr->ItemList[index]; } public unsafe static bool TryDesynthDirect(InventoryItem* item) { - int num = ((item == null) ? (-1819563004) : (-1819563003)); - AgentSalvage* ptr = default(AgentSalvage*); - while (true) + if (item == null || item->ItemId == 0) { - int num2 = num; - int num3 = -1819563004; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -1819563003; - break; - case 1: - num = ((item->ItemId != 0) ? (-1819563007) : (-1819563004)); - break; - case 5: - ptr = AgentSalvage.Instance(); - num = ((ptr != null) ? (-1819563001) : (-1819563008)); - break; - case 4: - return false; - case 3: - { - ptr->SalvageItem(item, 0, 0); - AtkValue* returnValue = stackalloc AtkValue[1]; - AtkValue* ptr2 = stackalloc AtkValue[2]; - ptr2->Type = AtkValueType.Int; - ptr2->Int = 0; - ptr2[1].Type = AtkValueType.Bool; - ptr2[1].Byte = 1; - ptr->AgentInterface.ReceiveEvent(returnValue, ptr2, 2u, 1uL); - return true; - } - case 0: - return false; - } + return false; } + AgentSalvage* ptr = AgentSalvage.Instance(); + if (ptr == null) + { + return false; + } + ptr->SalvageItem(item, 0, 0); + AtkValue* returnValue = stackalloc AtkValue[1]; + AtkValue* ptr2 = stackalloc AtkValue[2]; + ptr2->Type = AtkValueType.Int; + ptr2->Int = 0; + ptr2[1].Type = AtkValueType.Bool; + ptr2[1].Byte = 1; + ptr->AgentInterface.ReceiveEvent(returnValue, ptr2, 2u, 1uL); + return true; } public static bool IsDesynthUnlocked() @@ -353,111 +159,49 @@ public static class DesynthActions public static bool IsItemDesynthable(IDataManager dataManager, uint itemId) { - Item row; - int num = (dataManager.GetExcelSheet<Item>().TryGetRow(itemId, out row) ? (-1608454273) : (-1608454276)); - while (true) + if (!dataManager.GetExcelSheet<Item>().TryGetRow(itemId, out var row)) { - int num2 = num; - int num3 = -1608454274; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return row.Desynth > 0; - case 2: - return false; - case 0: - goto IL_0068; - } - continue; - IL_0068: - num = -1608454276; + return false; } + return row.Desynth > 0; } public unsafe static bool CanPlayerDesynthItem(IDataManager dataManager, uint itemId) { - Item row; - int num = (dataManager.GetExcelSheet<Item>().TryGetRow(itemId, out row) ? (-1179010991) : (-1179010980)); - PlayerState* ptr = default(PlayerState*); - ClassJob? valueNullable = default(ClassJob?); - while (true) + if (!dataManager.GetExcelSheet<Item>().TryGetRow(itemId, out var row)) { - int num2 = num; - int num3 = -1179010983; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = -1179010980; - break; - case 6: - return false; - case 1: - return false; - case 7: - return false; - case 5: - return false; - case 3: - ptr = PlayerState.Instance(); - num = ((ptr != null) ? (-1179010981) : (-1179010984)); - break; - case 2: - return ptr->ClassJobLevels[valueNullable.Value.ExpArrayIndex] >= 30; - case 8: - num = ((row.Desynth > 0) ? (-1179010983) : (-1179010978)); - break; - case 0: - valueNullable = row.ClassJobRepair.ValueNullable; - num = (valueNullable.HasValue ? (-1179010982) : (-1179010977)); - break; - } + return false; } + if (row.Desynth <= 0) + { + return false; + } + ClassJob? valueNullable = row.ClassJobRepair.ValueNullable; + if (!valueNullable.HasValue) + { + return false; + } + PlayerState* ptr = PlayerState.Instance(); + if (ptr == null) + { + return false; + } + return ptr->ClassJobLevels[valueNullable.Value.ExpArrayIndex] >= 30; } public unsafe static float GetDesynthLevel(uint classJobId) { PlayerState* ptr = PlayerState.Instance(); bool flag = ptr == null; - int num = (flag ? 659072519 : 659072518); - bool flag2 = default(bool); - while (true) + if (!flag) { - int num2 = num; - int num3 = 659072516; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 7: - return ptr->GetDesynthesisLevel(classJobId); - case 8: - num = ((classJobId <= 15) ? 659072513 : 659072516); - break; - case 2: - num = ((classJobId < 8) ? 659072516 : 659072524); - break; - case 5: - flag2 = false; - num = 659072517; - break; - case 3: - num = ((!flag) ? 659072515 : 659072512); - break; - case 1: - flag = flag2; - num = 659072519; - break; - case 0: - flag2 = true; - num = 659072517; - break; - case 4: - return 0f; - case 6: - num = 659072518; - break; - } + bool flag2 = ((classJobId < 8 || classJobId > 15) ? true : false); + flag = flag2; } + if (flag) + { + return 0f; + } + return ptr->GetDesynthesisLevel(classJobId); } } diff --git a/LLib/LLib.Gear/EEquipSlotCategoryExtensions.cs b/LLib/LLib.Gear/EEquipSlotCategoryExtensions.cs index cac6d0e..fc89b92 100644 --- a/LLib/LLib.Gear/EEquipSlotCategoryExtensions.cs +++ b/LLib/LLib.Gear/EEquipSlotCategoryExtensions.cs @@ -6,402 +6,137 @@ public static class EEquipSlotCategoryExtensions { public static InventoryType? GetArmoryContainer(this EEquipSlotCategory slot) { - int num; - InventoryType? result = default(InventoryType?); switch (slot) { - default: - num = -2089769317; - goto IL_0047; - case EEquipSlotCategory.Ears: - result = InventoryType.ArmoryEar; - num = -2089769327; - goto IL_0047; - case EEquipSlotCategory.Shield: - goto IL_00b7; - case EEquipSlotCategory.Hands: - goto IL_00cd; - case EEquipSlotCategory.Head: - goto IL_00e3; - case (EEquipSlotCategory)6u: - goto IL_00f9; - case EEquipSlotCategory.Body: - goto IL_010e; - case EEquipSlotCategory.Legs: - goto IL_0131; - case EEquipSlotCategory.Feet: - goto IL_0147; - case EEquipSlotCategory.Wrists: - goto IL_015d; case EEquipSlotCategory.OneHandedMainHand: case EEquipSlotCategory.TwoHandedMainHand: - goto IL_017e; + return InventoryType.ArmoryMainHand; + case EEquipSlotCategory.Shield: + return InventoryType.ArmoryOffHand; + case EEquipSlotCategory.Head: + return InventoryType.ArmoryHead; + case EEquipSlotCategory.Body: + return InventoryType.ArmoryBody; + case EEquipSlotCategory.Hands: + return InventoryType.ArmoryHands; + case EEquipSlotCategory.Legs: + return InventoryType.ArmoryLegs; + case EEquipSlotCategory.Feet: + return InventoryType.ArmoryFeets; + case EEquipSlotCategory.Ears: + return InventoryType.ArmoryEar; case EEquipSlotCategory.Neck: - goto IL_0194; + return InventoryType.ArmoryNeck; + case EEquipSlotCategory.Wrists: + return InventoryType.ArmoryWrist; case EEquipSlotCategory.Rings: - goto IL_01aa; - IL_0047: - while (true) - { - int num2 = num; - int num3 = -2089769328; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 7: - goto end_IL_0047; - case 8: - goto IL_00b7; - case 10: - goto IL_00cd; - case 5: - goto IL_00e3; - case 2: - goto IL_00f9; - case 9: - goto IL_010e; - case 1: - return result; - case 0: - num = -2089769317; - break; - case 12: - goto IL_0131; - case 6: - goto IL_0147; - case 13: - goto IL_015d; - case 11: - num = -2089769326; - break; - case 4: - goto IL_017e; - case 3: - goto IL_0194; - case 14: - goto IL_01aa; - } - continue; - end_IL_0047: - break; - } - goto case EEquipSlotCategory.Ears; - IL_01aa: - result = InventoryType.ArmoryRings; - num = -2089769327; - goto IL_0047; - IL_0194: - result = InventoryType.ArmoryNeck; - num = -2089769327; - goto IL_0047; - IL_017e: - result = InventoryType.ArmoryMainHand; - num = -2089769327; - goto IL_0047; - IL_015d: - result = InventoryType.ArmoryWrist; - num = -2089769327; - goto IL_0047; - IL_0147: - result = InventoryType.ArmoryFeets; - num = -2089769327; - goto IL_0047; - IL_0131: - result = InventoryType.ArmoryLegs; - num = -2089769327; - goto IL_0047; - IL_010e: - result = InventoryType.ArmoryBody; - num = -2089769327; - goto IL_0047; - IL_00f9: - result = null; - num = -2089769327; - goto IL_0047; - IL_00e3: - result = InventoryType.ArmoryHead; - num = -2089769327; - goto IL_0047; - IL_00cd: - result = InventoryType.ArmoryHands; - num = -2089769327; - goto IL_0047; - IL_00b7: - result = InventoryType.ArmoryOffHand; - num = -2089769327; - goto IL_0047; + return InventoryType.ArmoryRings; + default: + return null; } } public unsafe static int? FindFreeSlot(InventoryType container) { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? (-1184837257) : (-1184837263)); - int num5 = default(int); - InventoryItem* inventorySlot = default(InventoryItem*); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1184837262; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return null; + } + InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(container); + if (inventoryContainer == null) + { + return null; + } + for (int i = 0; i < inventoryContainer->Size; i++) + { + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(i); + if (inventorySlot != null && inventorySlot->ItemId == 0) { - case 7: - return null; - case 0: - num5 = 0; - num = -1184837260; - break; - case 2: - { - int num6 = num5; - num3 = 1; - num4 = num6; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - num5 = num7 + (num8 + num8); - num = -1184837260; - break; - } - case 1: - return null; - case 9: - return num5; - case 10: - inventorySlot = inventoryContainer->GetInventorySlot(num5); - num = ((inventorySlot == null) ? (-1184837264) : (-1184837254)); - break; - case 3: - return null; - case 5: - inventoryContainer = ptr->GetInventoryContainer(container); - num = ((inventoryContainer != null) ? (-1184837262) : (-1184837259)); - break; - case 8: - num = ((inventorySlot->ItemId != 0) ? (-1184837264) : (-1184837253)); - break; - case 4: - num = -1184837263; - break; - case 6: - num = ((num5 < inventoryContainer->Size) ? (-1184837256) : (-1184837261)); - break; + return i; } } + return null; } public unsafe static bool TryUnequipItem(int equippedSlotIndex) { - int num; - InventoryType? inventoryType2 = default(InventoryType?); - InventoryManager* ptr = default(InventoryManager*); - InventoryType valueOrDefault2 = default(InventoryType); - int valueOrDefault = default(int); - InventoryType? inventoryType = default(InventoryType?); - int? num7 = default(int?); - InventoryItem* inventorySlot = default(InventoryItem*); - InventoryContainer* inventoryContainer = default(InventoryContainer*); + InventoryType? inventoryType; switch (equippedSlotIndex) { - default: - num = 1686328571; - goto IL_004a; + case 0: + inventoryType = InventoryType.ArmoryMainHand; + break; + case 1: + inventoryType = InventoryType.ArmoryOffHand; + break; + case 2: + inventoryType = InventoryType.ArmoryHead; + break; + case 3: + inventoryType = InventoryType.ArmoryBody; + break; + case 4: + inventoryType = InventoryType.ArmoryHands; + break; case 6: - inventoryType2 = InventoryType.ArmoryLegs; - num = 1686328552; - goto IL_004a; + inventoryType = InventoryType.ArmoryLegs; + break; + case 7: + inventoryType = InventoryType.ArmoryFeets; + break; + case 8: + inventoryType = InventoryType.ArmoryEar; + break; + case 9: + inventoryType = InventoryType.ArmoryNeck; + break; + case 10: + inventoryType = InventoryType.ArmoryWrist; + break; case 11: case 12: - goto IL_0106; - case 0: - goto IL_0147; - case 7: - goto IL_018d; - case 3: - goto IL_01d1; - case 1: - goto IL_022c; - case 5: - goto IL_0259; - case 10: - goto IL_0271; + inventoryType = InventoryType.ArmoryRings; + break; case 13: - goto IL_029d; - case 4: - goto IL_02db; - case 8: - goto IL_0301; - case 2: - goto IL_0351; - case 9: - goto IL_036b; - IL_004a: - while (true) - { - int num2 = num; - int num3 = 1686328567; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 24: - return false; - case 14: - goto end_IL_004a; - case 8: - goto IL_0106; - case 27: - return false; - case 31: - goto IL_0120; - case 6: - goto IL_0147; - case 22: - goto IL_015f; - case 30: - return false; - case 4: - goto IL_018d; - case 11: - goto IL_01a5; - case 15: - goto IL_01d1; - case 16: - goto IL_01e9; - case 20: - goto IL_0208; - case 18: - goto IL_022c; - case 2: - ptr->MoveItemSlot(InventoryType.EquippedItems, (ushort)equippedSlotIndex, valueOrDefault2, (ushort)valueOrDefault, a6: true); - return true; - case 19: - goto IL_0259; - case 3: - goto IL_0271; - case 13: - valueOrDefault2 = inventoryType.GetValueOrDefault(); - num = 1686328557; - break; - case 5: - goto IL_029d; - case 26: - goto IL_02b5; - case 7: - goto IL_02db; - case 0: - num = 1686328571; - break; - case 28: - return false; - case 1: - goto IL_0301; - case 21: - goto IL_0319; - case 12: - num = 1686328548; - break; - case 23: - return false; - case 25: - goto IL_0351; - case 17: - return false; - case 29: - goto IL_036b; - case 10: - valueOrDefault = num7.GetValueOrDefault(); - num = 1686328565; - break; - case 9: - goto IL_0398; - } - continue; - IL_0398: - num = ((inventorySlot->ItemId != 0) ? 1686328545 : 1686328553); - continue; - IL_015f: - num7 = FindFreeSlot(valueOrDefault2); - num = ((!num7.HasValue) ? 1686328556 : 1686328573); - continue; - IL_0208: - num = ((equippedSlotIndex < inventoryContainer->Size) ? 1686328546 : 1686328555); - continue; - IL_0319: - inventorySlot = inventoryContainer->GetInventorySlot(equippedSlotIndex); - num = ((inventorySlot == null) ? 1686328553 : 1686328574); - continue; - IL_0120: - inventoryType = inventoryType2; - num = ((!inventoryType.HasValue) ? 1686328544 : 1686328570); - continue; - IL_01a5: - inventoryContainer = ptr->GetInventoryContainer(InventoryType.EquippedItems); - num = ((inventoryContainer != null) ? 1686328551 : 1686328559); - continue; - IL_02b5: - ptr = InventoryManager.Instance(); - num = ((ptr != null) ? 1686328572 : 1686328550); - continue; - IL_01e9: - num = ((equippedSlotIndex < 0) ? 1686328555 : 1686328547); - continue; - end_IL_004a: - break; - } - goto case 6; - IL_036b: - inventoryType2 = InventoryType.ArmoryNeck; - num = 1686328552; - goto IL_004a; - IL_0351: - inventoryType2 = InventoryType.ArmoryHead; - num = 1686328552; - goto IL_004a; - IL_0301: - inventoryType2 = InventoryType.ArmoryEar; - num = 1686328552; - goto IL_004a; - IL_02db: - inventoryType2 = InventoryType.ArmoryHands; - num = 1686328552; - goto IL_004a; - IL_029d: - inventoryType2 = InventoryType.ArmorySoulCrystal; - num = 1686328552; - goto IL_004a; - IL_0271: - inventoryType2 = InventoryType.ArmoryWrist; - num = 1686328552; - goto IL_004a; - IL_0259: - inventoryType2 = null; - num = 1686328552; - goto IL_004a; - IL_022c: - inventoryType2 = InventoryType.ArmoryOffHand; - num = 1686328552; - goto IL_004a; - IL_01d1: - inventoryType2 = InventoryType.ArmoryBody; - num = 1686328552; - goto IL_004a; - IL_018d: - inventoryType2 = InventoryType.ArmoryFeets; - num = 1686328552; - goto IL_004a; - IL_0147: - inventoryType2 = InventoryType.ArmoryMainHand; - num = 1686328552; - goto IL_004a; - IL_0106: - inventoryType2 = InventoryType.ArmoryRings; - num = 1686328552; - goto IL_004a; + inventoryType = InventoryType.ArmorySoulCrystal; + break; + default: + inventoryType = null; + break; } + InventoryType? inventoryType2 = inventoryType; + if (inventoryType2.HasValue) + { + InventoryType valueOrDefault = inventoryType2.GetValueOrDefault(); + InventoryManager* ptr = InventoryManager.Instance(); + if (ptr == null) + { + return false; + } + InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(InventoryType.EquippedItems); + if (inventoryContainer == null) + { + return false; + } + if (equippedSlotIndex < 0 || equippedSlotIndex >= inventoryContainer->Size) + { + return false; + } + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(equippedSlotIndex); + if (inventorySlot == null || inventorySlot->ItemId == 0) + { + return false; + } + int? num = FindFreeSlot(valueOrDefault); + if (num.HasValue) + { + int valueOrDefault2 = num.GetValueOrDefault(); + ptr->MoveItemSlot(InventoryType.EquippedItems, (ushort)equippedSlotIndex, valueOrDefault, (ushort)valueOrDefault2, a6: true); + return true; + } + return false; + } + return false; } } diff --git a/LLib/LLib.Gear/EquipmentSlots.cs b/LLib/LLib.Gear/EquipmentSlots.cs index 9e9c7bf..3534205 100644 --- a/LLib/LLib.Gear/EquipmentSlots.cs +++ b/LLib/LLib.Gear/EquipmentSlots.cs @@ -11,48 +11,20 @@ public static class EquipmentSlots public unsafe static InventoryContainer* GetEquippedContainer() { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? (-579848400) : (-579848397)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -579848398; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 1: - return null; - case 2: - return ptr->GetInventoryContainer(InventoryType.EquippedItems); - } - continue; - IL_0049: - num = -579848397; + return null; } + return ptr->GetInventoryContainer(InventoryType.EquippedItems); } public unsafe static bool TryGetEquippedItem(InventoryContainer* container, int slotIndex, out InventoryItem* item) { item = container->GetInventorySlot(slotIndex); - int num = ((item == null) ? 365336456 : 365336459); - while (true) + if (item != null) { - int num2 = num; - int num3 = 365336458; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004d; - case 2: - return false; - case 1: - return item->ItemId != 0; - } - continue; - IL_004d: - num = 365336459; + return item->ItemId != 0; } + return false; } } diff --git a/LLib/LLib.Gear/EquipmentStats.cs b/LLib/LLib.Gear/EquipmentStats.cs index c18a75a..627f255 100644 --- a/LLib/LLib.Gear/EquipmentStats.cs +++ b/LLib/LLib.Gear/EquipmentStats.cs @@ -1,23 +1,11 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; -using System.Text; namespace LLib.Gear; public sealed record EquipmentStats(Dictionary<EBaseParam, StatInfo> Stats, byte MateriaCount) { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206D_200D_202A_206A_206A_206A_200F_202C_202C_202D_206D_206F_206C_200D_200C_206C_202D_202E_202B_206E_202B_202B_202D_206C_200C_200F_202E_206D_200B_202E_200B_206E_202D_202A_200D_200B_200C_206B_200E_200D_202E(typeof(EquipmentStats).TypeHandle); - } - } - public short Get(EBaseParam param) { return (short)(GetEquipment(param) + GetMateria(param)); @@ -26,79 +14,19 @@ public sealed record EquipmentStats(Dictionary<EBaseParam, StatInfo> Stats, byte public short GetEquipment(EBaseParam param) { Stats.TryGetValue(param, out StatInfo value); - int num = (((object)value != null) ? (-1344068202) : (-1344068203)); - while (true) - { - int num2 = num; - int num3 = -1344068204; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0052; - case 1: - return 0; - case 2: - return value.EquipmentValue; - } - continue; - IL_0052: - num = -1344068203; - } + return value?.EquipmentValue ?? 0; } public short GetMateria(EBaseParam param) { Stats.TryGetValue(param, out StatInfo value); - int num = (((object)value != null) ? 1796035726 : 1796035727); - while (true) - { - int num2 = num; - int num3 = 1796035726; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0052; - case 0: - return value.MateriaValue; - case 1: - return 0; - } - continue; - IL_0052: - num = 1796035727; - } + return value?.MateriaValue ?? 0; } public bool IsOvercapped(EBaseParam param) { Stats.TryGetValue(param, out StatInfo value); - int num = (((object)value != null) ? 1825983400 : 1825983403); - while (true) - { - int num2 = num; - int num3 = 1825983401; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0052; - case 1: - return value.Overcapped; - case 2: - return false; - } - continue; - IL_0052: - num = 1825983403; - } + return value?.Overcapped ?? false; } public bool Has(EBaseParam substat) @@ -113,197 +41,30 @@ public sealed record EquipmentStats(Dictionary<EBaseParam, StatInfo> Stats, byte public bool Equals(EquipmentStats? other) { - int num = ((other == null) ? 948419368 : 948419369); - StatInfo statInfo = default(StatInfo); - StatInfo value2 = default(StatInfo); - while (true) + if (other == null || MateriaCount != other.MateriaCount || Stats.Count != other.Stats.Count) { - int num2 = num; - int num3 = 948419368; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return false; + } + foreach (var (key, objA) in Stats) + { + if (!other.Stats.TryGetValue(key, out StatInfo value) || !object.Equals(objA, value)) { - case 3: - num = 948419369; - break; - case 1: - num = ((MateriaCount != other.MateriaCount) ? 948419368 : 948419372); - break; - case 4: - num = ((Stats.Count == other.Stats.Count) ? 948419370 : 948419368); - break; - case 0: return false; - case 2: - { - using (Dictionary<EBaseParam, StatInfo>.Enumerator enumerator = Stats.GetEnumerator()) - { - num = -2102937561; - while (true) - { - int num7 = num; - num3 = -2102937566; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 3: - return false; - case 2: - num = (_202B_206A_200D_206F_202E_202A_200C_200F_200D_202D_202B_202B_200C_202E_200B_202B_206A_200E_200F_206C_202D_202B_200C_200D_206E_206A_206B_200D_202C_206E_202C_202D_206F_202E_202A_202A_200C_206A_202B_202C_202E((object)statInfo, (object)value2) ? (-2102937561) : (-2102937567)); - break; - case 5: - num = (enumerator.MoveNext() ? (-2102937562) : (-2102937565)); - break; - case 0: - num = -2102937561; - break; - case 4: - { - enumerator.Current.Deconstruct(out var key, out var value); - EBaseParam key2 = key; - statInfo = value; - num = ((!other.Stats.TryGetValue(key2, out value2)) ? (-2102937567) : (-2102937568)); - break; - } - case 1: - goto end_IL_00dc; - } - continue; - end_IL_00dc: - break; - } - } - return true; - } } } - } - - bool IEquatable<EquipmentStats>.Equals(EquipmentStats? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); + return true; } public override int GetHashCode() { int num = MateriaCount.GetHashCode(); - using Dictionary<EBaseParam, StatInfo>.Enumerator enumerator = Stats.GetEnumerator(); - int num2 = 1490502903; - while (true) + foreach (KeyValuePair<EBaseParam, StatInfo> stat in Stats) { - int num3 = num2; - int num4 = 1490502902; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 3: - num2 = 1490502903; - break; - case 2: - { - enumerator.Current.Deconstruct(out var key, out var value); - EBaseParam value2 = key; - StatInfo value3 = value; - num ^= HashCode.Combine(value2, value3); - num2 = 1490502903; - break; - } - case 1: - num2 = (enumerator.MoveNext() ? 1490502900 : 1490502902); - break; - case 0: - return num; - } + stat.Deconstruct(out var key, out var value); + EBaseParam value2 = key; + StatInfo value3 = value; + num ^= HashCode.Combine(value2, value3); } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206D_200D_206D_206D_200B_200C_206E_200E_206C_200C_206F_206D_202D_206F_202D_202D_200F_202D_206A_202A_206B_206F_202E_206E_200C_206E_202D_202C_202B_200B_200E_200D_202D_200E_202C_206D_202B_206C_202D_202B_202E(); - _206D_202C_202C_200D_200B_202D_206F_206D_206A_200F_202B_200F_206E_202C_206E_206E_200D_202C_206E_206C_206F_202D_202D_202B_206F_202A_202A_202D_200E_206D_200F_206D_206B_206F_202C_200B_206C_202E_202D_200D_202E(stringBuilder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(137609556)); - _206D_202C_202C_200D_200B_202D_206F_206D_206A_200F_202B_200F_206E_202C_206E_206E_200D_202C_206E_206C_206F_202D_202D_202B_206F_202A_202A_202D_200E_206D_200F_206D_206B_206F_202C_200B_206C_202E_202D_200D_202E(stringBuilder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1808631505)); - int num = ((!PrintMembers(stringBuilder)) ? (-1401190179) : (-1401190180)); - while (true) - { - int num2 = num; - int num3 = -1401190179; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _200C_206A_202D_200E_200F_200E_200C_202A_200E_200E_206B_202A_202A_206B_202B_206E_202D_202D_206A_206A_202C_206D_206B_200F_206A_200F_202D_200D_202C_200F_200F_200F_206A_206A_206C_206C_200E_200F_200D_206B_202E(stringBuilder, '}'); - return _202E_200B_206C_202B_206C_200C_202E_206E_206B_206D_202B_202C_202D_202C_206B_202B_206E_202B_202D_206E_206C_200C_202A_206C_206F_206F_202C_200F_200C_200F_202B_206A_206A_202E_202E_202A_200D_202C_202C_202E((object)stringBuilder); - case 1: - _200C_206A_202D_200E_200F_200E_200C_202A_200E_200E_206B_202A_202A_206B_202B_206E_202D_202D_206A_206A_202C_206D_206B_200F_206A_200F_202D_200D_202C_200F_200F_200F_206A_206A_206C_206C_200E_200F_200D_206B_202E(stringBuilder, ' '); - num = -1401190179; - break; - case 2: - num = -1401190180; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206C_202B_202C_202E_202C_206E_206E_200F_202B_200C_200C_202B_202D_206C_206F_206D_206E_200D_202C_206F_202D_202E_202A_206D_206A_202C_200B_206E_202D_200C_200F_202A_200C_202B_202C_206A_202E_206D_206B_202A_202E(); - _206D_202C_202C_200D_200B_202D_206F_206D_206A_200F_202B_200F_206E_202C_206E_206E_200D_202C_206E_206C_206F_202D_202D_202B_206F_202A_202A_202D_200E_206D_200F_206D_206B_206F_202C_200B_206C_202E_202D_200D_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-716646928)); - _200E_202D_206A_200C_206A_200D_202A_200F_200C_206E_202B_206A_200D_206D_206F_206A_206B_206C_206C_202B_206D_200F_200D_200D_200C_206F_200D_200E_206A_206E_200F_202A_202B_200B_206B_206E_202C_200C_200D_202E_202E(builder, (object)Stats); - _206D_202C_202C_200D_200B_202D_206F_206D_206A_200F_202B_200F_206E_202C_206E_206E_200D_202C_206E_206C_206F_202D_202D_202B_206F_202A_202A_202D_200E_206D_200F_206D_206B_206F_202C_200B_206C_202E_202D_200D_202E(builder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-88604916)); - _206D_202C_202C_200D_200B_202D_206F_206D_206A_200F_202B_200F_206E_202C_206E_206E_200D_202C_206E_206C_206F_202D_202D_202B_206F_202A_202A_202D_200E_206D_200F_206D_206B_206F_202C_200B_206C_202E_202D_200D_202E(builder, MateriaCount.ToString()); - return true; - } - - static Type _206D_200D_202A_206A_206A_206A_200F_202C_202C_202D_206D_206F_206C_200D_200C_206C_202D_202E_202B_206E_202B_202B_202D_206C_200C_200F_202E_206D_200B_202E_200B_206E_202D_202A_200D_200B_200C_206B_200E_200D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _202B_206A_200D_206F_202E_202A_200C_200F_200D_202D_202B_202B_200C_202E_200B_202B_206A_200E_200F_206C_202D_202B_200C_200D_206E_206A_206B_200D_202C_206E_202C_202D_206F_202E_202A_202A_200C_206A_202B_202C_202E(object P_0, object P_1) - { - return object.Equals(P_0, P_1); - } - - static StringBuilder _206D_200D_206D_206D_200B_200C_206E_200E_206C_200C_206F_206D_202D_206F_202D_202D_200F_202D_206A_202A_206B_206F_202E_206E_200C_206E_202D_202C_202B_200B_200E_200D_202D_200E_202C_206D_202B_206C_202D_202B_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206D_202C_202C_200D_200B_202D_206F_206D_206A_200F_202B_200F_206E_202C_206E_206E_200D_202C_206E_206C_206F_202D_202D_202B_206F_202A_202A_202D_200E_206D_200F_206D_206B_206F_202C_200B_206C_202E_202D_200D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200C_206A_202D_200E_200F_200E_200C_202A_200E_200E_206B_202A_202A_206B_202B_206E_202D_202D_206A_206A_202C_206D_206B_200F_206A_200F_202D_200D_202C_200F_200F_200F_206A_206A_206C_206C_200E_200F_200D_206B_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202E_200B_206C_202B_206C_200C_202E_206E_206B_206D_202B_202C_202D_202C_206B_202B_206E_202B_202D_206E_206C_200C_202A_206C_206F_206F_202C_200F_200C_200F_202B_206A_206A_202E_202E_202A_200D_202C_202C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206C_202B_202C_202E_202C_206E_206E_200F_202B_200C_200C_202B_202D_206C_206F_206D_206E_200D_202C_206F_202D_202E_202A_206D_206A_202C_200B_206E_202D_200C_200F_202A_200C_202B_202C_206A_202E_206D_206B_202A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200E_202D_206A_200C_206A_200D_202A_200F_200C_206E_202B_206A_200D_206D_206F_206A_206B_206C_206C_202B_206D_200F_200D_200D_200C_206F_200D_200E_206A_206E_200F_202A_202B_200B_206B_206E_202C_200C_200D_202E_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); + return num; } } diff --git a/LLib/LLib.Gear/ExtendedBaseParam.cs b/LLib/LLib.Gear/ExtendedBaseParam.cs index 45f0e7f..31ecdd8 100644 --- a/LLib/LLib.Gear/ExtendedBaseParam.cs +++ b/LLib/LLib.Gear/ExtendedBaseParam.cs @@ -27,47 +27,15 @@ public readonly struct ExtendedBaseParam : IExcelRow<ExtendedBaseParam> private static ushort EquipSlotCategoryPctCtor(ExcelPage page, uint parentOffset, uint offset, uint i) { - int num = ((i == 0) ? 1726719508 : 1726719511); - while (true) + if (i != 0) { - int num2 = num; - int num3 = 1726719510; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0043; - case 2: - return 0; - case 1: - { - num3 = 8; - num4 = (int)offset; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - int num9 = num7 + (num8 + num8); - num3 = 1; - num4 = (int)i; - num3 = ~(~num4 + num3) * 2; - num4 = num9; - return _206B_202D_206F_202C_206F_202A_206D_202D_202E_206C_206D_206A_200D_200F_206B_200D_200E_202D_206F_206A_202C_200F_206B_200B_200B_200E_200C_202D_206E_200C_206E_206E_200E_200B_202A_202E_202B_206A_206A_206F_202E(page, (nuint)(uint)((num4 | num3) + (num4 & num3))); - } - } - continue; - IL_0043: - num = 1726719511; + return page.ReadUInt16(offset + 8 + (i - 1) * 2); } + return 0; } public static ExtendedBaseParam Create(ExcelPage page, uint offset, uint row) { return new ExtendedBaseParam(page, offset, row); } - - static ushort _206B_202D_206F_202C_206F_202A_206D_202D_202E_206C_206D_206A_200D_200F_206B_200D_200E_202D_206F_206A_202C_200F_206B_200B_200B_200E_200C_202D_206E_200C_206E_206E_200E_200B_202A_202E_202B_206A_206A_206F_202E(ExcelPage P_0, nuint P_1) - { - return P_0.ReadUInt16(P_1); - } } diff --git a/LLib/LLib.Gear/ExtractActions.cs b/LLib/LLib.Gear/ExtractActions.cs index 6be6a60..ff33997 100644 --- a/LLib/LLib.Gear/ExtractActions.cs +++ b/LLib/LLib.Gear/ExtractActions.cs @@ -1,4 +1,3 @@ -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Component.GUI; @@ -13,147 +12,63 @@ public static class ExtractActions public unsafe static bool TryOpenExtractionWindow() { ActionManager* ptr = ActionManager.Instance(); - int num = ((ptr != null) ? 1517753475 : 1517753472); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1517753473; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 2: - return ptr->UseAction(ActionType.GeneralAction, 14u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); - case 1: - return false; - } - continue; - IL_004b: - num = 1517753472; + return false; } + return ptr->UseAction(ActionType.GeneralAction, 14u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsExtractionAddonReady(IGameGui gameGui) { AtkUnitBase* addonPtr; - return gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1975097749), out addonPtr); + return gameGui.TryGetReadyAddon<AtkUnitBase>("Materialize", out addonPtr); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryExtractFirst(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1577561758), out addonPtr) ? 1656734997 : 1656734996); - while (true) + if (!gameGui.TryGetReadyAddon<AtkUnitBase>("Materialize", out var addonPtr)) { - int num2 = num; - int num3 = 1656734997; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - AddonCallback.FireWithUpdate(addonPtr, 2, 0); - return true; - case 1: - return false; - case 2: - goto IL_0068; - } - continue; - IL_0068: - num = 1656734996; + return false; } + AddonCallback.FireWithUpdate(addonPtr, 2, 0); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsConfirmDialogReady(IGameGui gameGui) { AtkUnitBase* addonPtr; - return gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1781947130), out addonPtr); + return gameGui.TryGetReadyAddon<AtkUnitBase>("MaterializeDialog", out addonPtr); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryConfirmExtraction(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(839489786), out addonPtr) ? (-1818884272) : (-1818884269)); - while (true) + if (!gameGui.TryGetReadyAddon<AtkUnitBase>("MaterializeDialog", out var addonPtr)) { - int num2 = num; - int num3 = -1818884271; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0052; - case 2: - return false; - case 1: - AddonCallback.Fire(addonPtr, default(int)); - return true; - } - continue; - IL_0052: - num = -1818884269; + return false; } + AddonCallback.Fire(addonPtr, default(int)); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TrySwitchCategory(IGameGui gameGui, int category) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1975097749), out addonPtr) ? (-1576577779) : (-1576577778)); - while (true) + if (!gameGui.TryGetReadyAddon<AtkUnitBase>("Materialize", out var addonPtr)) { - int num2 = num; - int num3 = -1576577780; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - AddonCallback.Fire(addonPtr, 1, category); - return true; - case 2: - return false; - case 0: - goto IL_006a; - } - continue; - IL_006a: - num = -1576577778; + return false; } + AddonCallback.Fire(addonPtr, 1, category); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryCloseExtractionWindow(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1686317250), out addonPtr) ? 930280316 : 930280319); - while (true) + if (!gameGui.TryGetReadyAddon<AtkUnitBase>("Materialize", out var addonPtr)) { - int num2 = num; - int num3 = 930280317; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0052; - case 2: - return false; - case 1: - AddonCallback.Fire(addonPtr, -1); - return true; - } - continue; - IL_0052: - num = 930280319; + return false; } + AddonCallback.Fire(addonPtr, -1); + return true; } public static bool IsExtractionUnlocked() diff --git a/LLib/LLib.Gear/GearConditionHelper.cs b/LLib/LLib.Gear/GearConditionHelper.cs index 02f80a8..8c21345 100644 --- a/LLib/LLib.Gear/GearConditionHelper.cs +++ b/LLib/LLib.Gear/GearConditionHelper.cs @@ -12,341 +12,121 @@ public static class GearConditionHelper public unsafe static int? GetLowestConditionPercent() { InventoryContainer* equippedContainer = EquipmentSlots.GetEquippedContainer(); - int num = ((equippedContainer != null) ? 136938409 : 136938411); - int? result = default(int?); - int num9 = default(int); - int num8 = default(int); - InventoryItem* item = default(InventoryItem*); - while (true) + if (equippedContainer == null) { - int num2 = num; - int num3 = 136938412; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return null; + } + int? result = null; + for (int i = 0; i < 13; i++) + { + if (i != 5 && EquipmentSlots.TryGetEquippedItem(equippedContainer, i, out var item)) { - case 10: - return result; - case 8: - result = num9; - num = 136938405; - break; - case 4: - num = ((num8 == 5) ? 136938405 : 136938410); - break; - case 7: - return null; - case 6: - num = ((!EquipmentSlots.TryGetEquippedItem(equippedContainer, num8, out item)) ? 136938405 : 136938414); - break; - case 1: - num = ((num9 >= result.Value) ? 136938405 : 136938404); - break; - case 2: - num9 = item->Condition * 100 / 30000; - num = ((!result.HasValue) ? 136938404 : 136938413); - break; - case 5: - result = null; - num8 = 0; - num = 136938415; - break; - case 3: - num = ((num8 < 13) ? 136938408 : 136938406); - break; - case 0: - num = 136938411; - break; - case 9: - { - int num7 = num8; - num3 = 1; - num4 = num7; - num8 = (num4 | num3) + (num4 & num3); - num = 136938415; - break; - } + int num = item->Condition * 100 / 30000; + if (!result.HasValue || num < result.Value) + { + result = num; + } } } + return result; } public unsafe static List<SlotCondition> GetAllSlotConditions() { List<SlotCondition> list = new List<SlotCondition>(13); InventoryContainer* equippedContainer = EquipmentSlots.GetEquippedContainer(); - int num = ((equippedContainer != null) ? 1727066767 : 1727066762); - int num5 = default(int); - InventoryItem* item = default(InventoryItem*); - while (true) + if (equippedContainer == null) { - int num2 = num; - int num3 = 1727066761; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return list; + } + for (int i = 0; i < 13; i++) + { + if (i != 5 && EquipmentSlots.TryGetEquippedItem(equippedContainer, i, out var item)) { - case 4: - num = ((num5 < 13) ? 1727066764 : 1727066763); - break; - case 6: - num5 = 0; - num = 1727066765; - break; - case 3: - return list; - case 8: - { - int num6 = num5; - num3 = 1; - num4 = num6; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - num5 = num7 + (num8 + num8); - num = 1727066765; - break; - } - case 7: - list.Add(new SlotCondition(num5, item->ItemId, item->Condition * 100 / 30000)); - num = 1727066753; - break; - case 5: - num = ((num5 == 5) ? 1727066753 : 1727066760); - break; - case 0: - num = 1727066762; - break; - case 1: - num = ((!EquipmentSlots.TryGetEquippedItem(equippedContainer, num5, out item)) ? 1727066753 : 1727066766); - break; - case 2: - return list; + list.Add(new SlotCondition(i, item->ItemId, item->Condition * 100 / 30000)); } } + return list; } public unsafe static bool HasSpiritbondReadyItem(bool includeBags = false) { InventoryContainer* equippedContainer = EquipmentSlots.GetEquippedContainer(); - int num = ((equippedContainer == null) ? 566966460 : 566966456); - int num5 = default(int); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - int num6 = default(int); - InventoryItem* item = default(InventoryItem*); - InventoryType inventoryType = default(InventoryType); - InventoryItem* inventorySlot = default(InventoryItem*); - InventoryManager* ptr = default(InventoryManager*); - while (true) + if (equippedContainer != null) { - int num2 = num; - int num3 = 566966450; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + for (int i = 0; i < 13; i++) { - case 15: - num = ((num5 < inventoryContainer->Size) ? 566966433 : 566966438); - break; - case 14: - num = (includeBags ? 566966451 : 566966463); - break; - case 4: - num = ((!EquipmentSlots.TryGetEquippedItem(equippedContainer, num6, out item)) ? 566966442 : 566966449); - break; - case 24: - { - int num8 = num6; - num3 = 1; - num4 = num8; - num6 = (num4 | num3) + (num4 & num3); - num = 566966452; - break; - } - case 5: - { - int num7 = num5; - num3 = 1; - num4 = num7; - num5 = (num4 | num3) + (num4 & num3); - num = 566966461; - break; - } - case 7: - num5 = 0; - num = 566966461; - break; - case 18: - num = 566966456; - break; - case 3: - num = ((item->SpiritbondOrCollectability < 10000) ? 566966442 : 566966458); - break; - case 10: - num6 = 0; - num = 566966452; - break; - case 6: - num = ((num6 < 13) ? 566966459 : 566966460); - break; - case 20: - inventoryType++; - num = 566966439; - break; - case 12: - num = (((inventorySlot->Flags & InventoryItem.ItemFlags.Collectable) != InventoryItem.ItemFlags.None) ? 566966455 : 566966457); - break; - case 19: - inventorySlot = inventoryContainer->GetInventorySlot(num5); - num = ((inventorySlot == null) ? 566966455 : 566966434); - break; - case 2: - return false; - case 8: - return true; - case 17: - inventoryContainer = ptr->GetInventoryContainer(inventoryType); - num = ((inventoryContainer == null) ? 566966438 : 566966453); - break; - case 11: - num = ((inventorySlot->SpiritbondOrCollectability < 10000) ? 566966455 : 566966437); - break; - case 23: - return true; - case 22: - return false; - case 13: - return false; - case 16: - num = ((inventorySlot->ItemId == 0) ? 566966455 : 566966462); - break; - case 21: - num = ((inventoryType <= InventoryType.Inventory4) ? 566966435 : 566966436); - break; - case 9: - num = ((num6 == 5) ? 566966442 : 566966454); - break; - case 0: - inventoryType = InventoryType.Inventory1; - num = 566966439; - break; - case 1: - ptr = InventoryManager.Instance(); - num = ((ptr != null) ? 566966450 : 566966448); - break; + if (i != 5 && EquipmentSlots.TryGetEquippedItem(equippedContainer, i, out var item) && item->SpiritbondOrCollectability >= 10000) + { + return true; + } } } + if (!includeBags) + { + return false; + } + InventoryManager* ptr = InventoryManager.Instance(); + if (ptr == null) + { + return false; + } + for (InventoryType inventoryType = InventoryType.Inventory1; inventoryType <= InventoryType.Inventory4; inventoryType++) + { + InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(inventoryType); + if (inventoryContainer == null) + { + continue; + } + for (int j = 0; j < inventoryContainer->Size; j++) + { + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(j); + if (inventorySlot != null && inventorySlot->ItemId != 0 && (inventorySlot->Flags & InventoryItem.ItemFlags.Collectable) == 0 && inventorySlot->SpiritbondOrCollectability >= 10000) + { + return true; + } + } + } + return false; } public unsafe static int? GetLowestSpiritbondPercent() { InventoryContainer* equippedContainer = EquipmentSlots.GetEquippedContainer(); - int num = ((equippedContainer != null) ? 1500996181 : 1500996188); - int? result = default(int?); - int num8 = default(int); - int num7 = default(int); - InventoryItem* item = default(InventoryItem*); - while (true) + if (equippedContainer == null) { - int num2 = num; - int num3 = 1500996182; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return null; + } + int? result = null; + for (int i = 0; i < 13; i++) + { + if (i != 5 && EquipmentSlots.TryGetEquippedItem(equippedContainer, i, out var item)) { - case 4: - num = 1500996188; - break; - case 6: - result = num8; - num = 1500996183; - break; - case 9: - num = ((num7 < 13) ? 1500996177 : 1500996180); - break; - case 10: - return null; - case 0: - num = ((!EquipmentSlots.TryGetEquippedItem(equippedContainer, num7, out item)) ? 1500996183 : 1500996190); - break; - case 5: - num = ((num8 >= result.Value) ? 1500996183 : 1500996176); - break; - case 1: - { - int num9 = num7; - num3 = 1; - num4 = num9; - int num10 = num4 ^ num3; - int num11 = num4 & num3; - num7 = num10 + (num11 + num11); - num = 1500996191; - break; - } - case 8: - num8 = item->SpiritbondOrCollectability * 100 / 10000; - num = ((!result.HasValue) ? 1500996176 : 1500996179); - break; - case 7: - num = ((num7 == 5) ? 1500996183 : 1500996182); - break; - case 2: - return result; - case 3: - result = null; - num7 = 0; - num = 1500996191; - break; + int num = item->SpiritbondOrCollectability * 100 / 10000; + if (!result.HasValue || num < result.Value) + { + result = num; + } } } + return result; } public unsafe static List<SlotSpiritbond> GetAllSpiritbondInfo() { List<SlotSpiritbond> list = new List<SlotSpiritbond>(13); InventoryContainer* equippedContainer = EquipmentSlots.GetEquippedContainer(); - int num = ((equippedContainer != null) ? 818481642 : 818481641); - int num5 = default(int); - InventoryItem* item = default(InventoryItem*); - while (true) + if (equippedContainer == null) { - int num2 = num; - int num3 = 818481643; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return list; + } + for (int i = 0; i < 13; i++) + { + if (i != 5 && EquipmentSlots.TryGetEquippedItem(equippedContainer, i, out var item)) { - case 5: - num = ((!EquipmentSlots.TryGetEquippedItem(equippedContainer, num5, out item)) ? 818481647 : 818481643); - break; - case 7: - num = ((num5 == 5) ? 818481647 : 818481646); - break; - case 1: - num5 = 0; - num = 818481645; - break; - case 4: - { - int num6 = num5; - num3 = 1; - num4 = num6; - num5 = (num4 | num3) + (num4 & num3); - num = 818481645; - break; - } - case 8: - return list; - case 2: - return list; - case 6: - num = ((num5 < 13) ? 818481644 : 818481635); - break; - case 0: - list.Add(new SlotSpiritbond(num5, item->ItemId, item->SpiritbondOrCollectability * 100 / 10000, item->SpiritbondOrCollectability >= 10000)); - num = 818481647; - break; - case 3: - num = 818481641; - break; + list.Add(new SlotSpiritbond(i, item->ItemId, item->SpiritbondOrCollectability * 100 / 10000, item->SpiritbondOrCollectability >= 10000)); } } + return list; } } diff --git a/LLib/LLib.Gear/GearStatsCalculator.cs b/LLib/LLib.Gear/GearStatsCalculator.cs index f96528a..110449b 100644 --- a/LLib/LLib.Gear/GearStatsCalculator.cs +++ b/LLib/LLib.Gear/GearStatsCalculator.cs @@ -1,9 +1,6 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using Lumina.Excel; @@ -13,236 +10,15 @@ namespace LLib.Gear; public sealed class GearStatsCalculator { - private sealed record MateriaInfo(EBaseParam BaseParam, Collection<short> Values, bool HasItem) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202B_200E_202C_202C_206A_206B_206F_202B_200B_206C_202A_206A_206E_202C_206C_206B_202A_200E_202D_202C_200C_206B_206A_202B_202D_200F_206F_202A_206F_202D_200B_202E_200B_200D_206F_206B_202B_200D_206F_202B_202E(typeof(MateriaInfo).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200E_206B_206B_202B_200C_200E_206C_202E_202C_202D_202B_202A_206E_202E_200C_206F_202A_202E_206F_206A_202C_206D_202B_200D_206E_200D_202A_202B_206D_202E_206F_206F_202A_206D_206F_200E_200B_202B_206D_206C_202E(); - _206A_206C_200F_200C_202A_202E_200D_202E_206E_206C_200B_206D_202A_200B_200B_206E_200B_206C_206B_200C_200C_206E_206D_200B_206C_202B_202E_206E_206B_202C_206A_200D_200F_206A_200F_206A_200B_200C_206F_206D_202E(stringBuilder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-451610657)); - _206A_206C_200F_200C_202A_202E_200D_202E_206E_206C_200B_206D_202A_200B_200B_206E_200B_206C_206B_200C_200C_206E_206D_200B_206C_202B_202E_206E_206B_202C_206A_200D_200F_206A_200F_206A_200B_200C_206F_206D_202E(stringBuilder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1808631505)); - int num = ((!PrintMembers(stringBuilder)) ? 3927346 : 3927345); - while (true) - { - int num2 = num; - int num3 = 3927347; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _202B_202B_202D_202C_200B_206A_202A_200C_202E_206E_200C_202C_200D_202E_202A_202B_200B_200B_202A_200D_206B_202E_206B_206F_200C_200C_202D_206F_200B_200B_206D_206A_206B_202C_206B_200D_206C_202A_202C_202A_202E(stringBuilder, '}'); - return _200D_200C_206A_202A_206D_206E_200D_200B_200D_202C_202A_202E_206D_200F_206D_206A_202C_206D_200D_206D_206D_200E_200D_202C_202D_200B_202B_206A_202D_200D_206B_206E_206E_202E_206F_206B_202A_202C_206E_202B_202E((object)stringBuilder); - case 2: - _202B_202B_202D_202C_200B_206A_202A_200C_202E_206E_200C_202C_200D_202E_202A_202B_200B_200B_202A_200D_206B_202E_206B_206F_200C_200C_202D_206F_200B_200B_206D_206A_206B_202C_206B_200D_206C_202A_202C_202A_202E(stringBuilder, ' '); - num = 3927346; - break; - case 0: - num = 3927345; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202E_206B_200D_206D_202C_206F_206E_200F_200E_206E_200C_200D_200F_206B_206A_206A_206C_202B_200D_200C_202B_200D_206A_200C_206D_200F_202D_206F_206C_206B_206C_206B_202E_202B_200B_206D_200E_206F_202A_202E_202E(); - _206A_206C_200F_200C_202A_202E_200D_202E_206E_206C_200B_206D_202A_200B_200B_206E_200B_206C_206B_200C_200C_206E_206D_200B_206C_202B_202E_206E_206B_202C_206A_200D_200F_206A_200F_206A_200B_200C_206F_206D_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1366977224)); - _206A_206C_200F_200C_202A_202E_200D_202E_206E_206C_200B_206D_202A_200B_200B_206E_200B_206C_206B_200C_200C_206E_206D_200B_206C_202B_202E_206E_206B_202C_206A_200D_200F_206A_200F_206A_200B_200C_206F_206D_202E(builder, BaseParam.ToString()); - _206A_206C_200F_200C_202A_202E_200D_202E_206E_206C_200B_206D_202A_200B_200B_206E_200B_206C_206B_200C_200C_206E_206D_200B_206C_202B_202E_206E_206B_202C_206A_200D_200F_206A_200F_206A_200B_200C_206F_206D_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-629506369)); - _206A_206C_200F_200C_202A_202E_200D_202E_206E_206C_200B_206D_202A_200B_200B_206E_200B_206C_206B_200C_200C_206E_206D_200B_206C_202B_202E_206E_206B_202C_206A_200D_200F_206A_200F_206A_200B_200C_206F_206D_202E(builder, Values.ToString()); - _206A_206C_200F_200C_202A_202E_200D_202E_206E_206C_200B_206D_202A_200B_200B_206E_200B_206C_206B_200C_200C_206E_206D_200B_206C_202B_202E_206E_206B_202C_206A_200D_200F_206A_200F_206A_200B_200C_206F_206D_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(2080820800)); - _206A_206C_200F_200C_202A_202E_200D_202E_206E_206C_200B_206D_202A_200B_200B_206E_200B_206C_206B_200C_200C_206E_206D_200B_206C_202B_202E_206E_206B_202C_206A_200D_200F_206A_200F_206A_200B_200C_206F_206D_202E(builder, HasItem.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(MateriaInfo? other) - { - int num = (((object)this == other) ? 217201442 : 217201446); - while (true) - { - int num2 = num; - int num3 = 217201441; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - num = ((!_206D_202A_206F_202A_202D_206D_206B_206C_206B_206D_200E_206C_202B_200E_206D_200D_202C_206B_206C_200C_200B_202E_200E_200E_206F_206F_206C_200F_200F_206F_206E_206D_202D_202E_200C_202B_206C_206A_200F_202C_202E(EqualityContract, other.EqualityContract)) ? 217201441 : 217201445); - break; - case 7: - num = (((object)other == null) ? 217201441 : 217201440); - break; - case 3: - return true; - case 5: - num = 217201446; - break; - case 0: - return false; - case 4: - num = ((!EqualityComparer<EBaseParam>.Default.Equals(BaseParam, other.BaseParam)) ? 217201441 : 217201443); - break; - case 2: - num = ((!EqualityComparer<Collection<short>>.Default.Equals(Values, other.Values)) ? 217201441 : 217201447); - break; - case 6: - return EqualityComparer<bool>.Default.Equals(HasItem, other.HasItem); - } - } - } - - bool IEquatable<MateriaInfo>.Equals(MateriaInfo? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202B_200E_202C_202C_206A_206B_206F_202B_200B_206C_202A_206A_206E_202C_206C_206B_202A_200E_202D_202C_200C_206B_206A_202B_202D_200F_206F_202A_206F_202D_200B_202E_200B_200D_206F_206B_202B_200D_206F_202B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200E_206B_206B_202B_200C_200E_206C_202E_202C_202D_202B_202A_206E_202E_200C_206F_202A_202E_206F_206A_202C_206D_202B_200D_206E_200D_202A_202B_206D_202E_206F_206F_202A_206D_206F_200E_200B_202B_206D_206C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206A_206C_200F_200C_202A_202E_200D_202E_206E_206C_200B_206D_202A_200B_200B_206E_200B_206C_206B_200C_200C_206E_206D_200B_206C_202B_202E_206E_206B_202C_206A_200D_200F_206A_200F_206A_200B_200C_206F_206D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202B_202B_202D_202C_200B_206A_202A_200C_202E_206E_200C_202C_200D_202E_202A_202B_200B_200B_202A_200D_206B_202E_206B_206F_200C_200C_202D_206F_200B_200B_206D_206A_206B_202C_206B_200D_206C_202A_202C_202A_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200D_200C_206A_202A_206D_206E_200D_200B_200D_202C_202A_202E_206D_200F_206D_206A_202C_206D_200D_206D_206D_200E_200D_202C_202D_200B_202B_206A_202D_200D_206B_206E_206E_202E_206F_206B_202A_202C_206E_202B_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202E_206B_200D_206D_202C_206F_206E_200F_200E_206E_200C_200D_200F_206B_206A_206A_206C_202B_200D_200C_202B_200D_206A_200C_206D_200F_202D_206F_206C_206B_206C_206B_202E_202B_200B_206D_200E_206F_202A_202E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _206D_202A_206F_202A_202D_206D_206B_206C_206B_206D_200E_206C_202B_200E_206D_200D_202C_206B_206C_200C_200B_202E_200E_200E_206F_206F_206C_200F_200F_206F_206E_206D_202D_202E_200C_202B_206C_206A_200F_202C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<ExtendedBaseParam, IEnumerable<(EBaseParam, int y, ushort)>> _003C_003E9__7_0; - - public static Func<(EBaseParam, int y, ushort), (EBaseParam, int)> _003C_003E9__7_1; - - public static Func<(EBaseParam, int y, ushort), ushort> _003C_003E9__7_2; - - public static Func<Materia, bool> _003C_003E9__7_3; - - public static Func<Materia, uint> _003C_003E9__7_4; - - public static Func<Materia, MateriaInfo> _003C_003E9__7_5; - - internal IEnumerable<(EBaseParam, int y, ushort)> _003C_002Ector_003Eb__7_0(ExtendedBaseParam x) - { - _003C_003Ec__DisplayClass7_0 CS_0024_003C_003E8__locals3 = new _003C_003Ec__DisplayClass7_0 - { - x = x - }; - return from y in _202E_202C_202D_206C_200D_200C_206B_200C_206E_202A_206F_202E_206C_200E_206F_200D_202E_206F_202C_206F_200B_206C_206F_206C_206D_202D_202A_202E_202E_206E_206E_202A_206B_202B_202D_206F_202E_206B_202E_202C_202E(0, CS_0024_003C_003E8__locals3.x.EquipSlotCategoryPct.Count) - select ((EBaseParam)CS_0024_003C_003E8__locals3.x.RowId, y: y, CS_0024_003C_003E8__locals3.x.EquipSlotCategoryPct[y]); - } - - internal (EBaseParam, int) _003C_002Ector_003Eb__7_1((EBaseParam, int y, ushort) x) - { - return (x.Item1, x.y); - } - - internal ushort _003C_002Ector_003Eb__7_2((EBaseParam, int y, ushort) x) - { - return x.Item3; - } - - internal bool _003C_002Ector_003Eb__7_3(Materia x) - { - int num = ((x.RowId == 0) ? (-1542142344) : (-1542142341)); - while (true) - { - int num2 = num; - int num3 = -1542142343; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004a; - case 2: - return x.BaseParam.RowId != 0; - case 1: - return false; - } - continue; - IL_004a: - num = -1542142341; - } - } - - internal uint _003C_002Ector_003Eb__7_4(Materia x) - { - return x.RowId; - } - - internal MateriaInfo _003C_002Ector_003Eb__7_5(Materia x) - { - return new MateriaInfo((EBaseParam)x.BaseParam.RowId, x.Value, x.Item[0].RowId != 0); - } - - static IEnumerable<int> _202E_202C_202D_206C_200D_200C_206B_200C_206E_202A_206F_202E_206C_200E_206F_200D_202E_206F_202C_206F_200B_206C_206F_206C_206D_202D_202A_202E_202E_206E_206E_202A_206B_202B_202D_206F_202E_206B_202E_202C_202E(int P_0, int P_1) - { - return Enumerable.Range(P_0, P_1); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass7_0 - { - public ExtendedBaseParam x; - - internal (EBaseParam, int y, ushort) _003C_002Ector_003Eb__6(int y) - { - return ((EBaseParam)x.RowId, y: y, x.EquipSlotCategoryPct[y]); - } - } + private sealed record MateriaInfo(EBaseParam BaseParam, Collection<short> Values, bool HasItem); private const uint EternityRingItemId = 8575u; - private static readonly uint[] CanHaveOffhand; + private static readonly uint[] CanHaveOffhand = new uint[14] + { + 2u, 6u, 8u, 12u, 14u, 16u, 18u, 20u, 22u, 24u, + 26u, 28u, 30u, 32u + }; private readonly ExcelSheet<Item> _itemSheet; @@ -252,19 +28,17 @@ public sealed class GearStatsCalculator private readonly Dictionary<uint, MateriaInfo> _materiaStats; - [MethodImpl(MethodImplOptions.NoInlining)] public GearStatsCalculator(IDataManager? dataManager) - : this(dataManager?.GetExcelSheet<ItemLevel>() ?? throw _202D_206D_206E_202C_200B_200E_206C_202A_200B_200E_206A_200F_200F_202B_206E_200D_206F_200F_200C_206C_200E_200E_206F_200D_202D_206F_206B_206F_202D_200E_206A_200D_202D_200F_206E_200F_206B_206B_200D_206F_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(167281534)), dataManager.GetExcelSheet<ExtendedBaseParam>(), dataManager.GetExcelSheet<Materia>(), dataManager.GetExcelSheet<Item>()) + : this(dataManager?.GetExcelSheet<ItemLevel>() ?? throw new ArgumentNullException("dataManager"), dataManager.GetExcelSheet<ExtendedBaseParam>(), dataManager.GetExcelSheet<Materia>(), dataManager.GetExcelSheet<Item>()) { } - [MethodImpl(MethodImplOptions.NoInlining)] public GearStatsCalculator(ExcelSheet<ItemLevel> itemLevelSheet, ExcelSheet<ExtendedBaseParam> baseParamSheet, ExcelSheet<Materia> materiaSheet, ExcelSheet<Item> itemSheet) { - _202A_202D_206D_206A_200C_202C_200D_202E_202B_206C_206C_206A_200B_200C_200C_206D_202C_200E_206B_206F_202B_200D_206E_206F_202C_200F_202E_206B_200F_202A_202E_202B_200B_206B_200C_200B_206D_202D_206B_206F_202E((object)itemLevelSheet, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1517214085)); - _202A_202D_206D_206A_200C_202C_200D_202E_202B_206C_206C_206A_200B_200C_200C_206D_202C_200E_206B_206F_202B_200D_206E_206F_202C_200F_202E_206B_200F_202A_202E_202B_200B_206B_200C_200B_206D_202D_206B_206F_202E((object)baseParamSheet, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1818459179)); - _202A_202D_206D_206A_200C_202C_200D_202E_202B_206C_206C_206A_200B_200C_200C_206D_202C_200E_206B_206F_202B_200D_206E_206F_202C_200F_202E_206B_200F_202A_202E_202B_200B_206B_200C_200B_206D_202D_206B_206F_202E((object)materiaSheet, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1786404470)); - _202A_202D_206D_206A_200C_202C_200D_202E_202B_206C_206C_206A_200B_200C_200C_206D_202C_200E_206B_206F_202B_200D_206E_206F_202C_200F_202E_206B_200F_202A_202E_202B_200B_206B_200C_200B_206D_202D_206B_206F_202E((object)itemSheet, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1610602393)); + ArgumentNullException.ThrowIfNull(itemLevelSheet, "itemLevelSheet"); + ArgumentNullException.ThrowIfNull(baseParamSheet, "baseParamSheet"); + ArgumentNullException.ThrowIfNull(materiaSheet, "materiaSheet"); + ArgumentNullException.ThrowIfNull(itemSheet, "itemSheet"); _itemSheet = itemSheet; foreach (ItemLevel item in itemLevelSheet) { @@ -291,597 +65,217 @@ public sealed class GearStatsCalculator _itemLevelStatCaps[(item.RowId, EBaseParam.Craftsmanship)] = item.Craftsmanship; _itemLevelStatCaps[(item.RowId, EBaseParam.Control)] = item.Control; } - _equipSlotCategoryPct = baseParamSheet.SelectMany((ExtendedBaseParam x) => from y in _003C_003Ec._202E_202C_202D_206C_200D_200C_206B_200C_206E_202A_206F_202E_206C_200E_206F_200D_202E_206F_202C_206F_200B_206C_206F_206C_206D_202D_202A_202E_202E_206E_206E_202A_206B_202B_202D_206F_202E_206B_202E_202C_202E(0, x.EquipSlotCategoryPct.Count) + _equipSlotCategoryPct = baseParamSheet.SelectMany((ExtendedBaseParam x) => from y in Enumerable.Range(0, x.EquipSlotCategoryPct.Count) select ((EBaseParam)x.RowId, y: y, x.EquipSlotCategoryPct[y])).ToDictionary(((EBaseParam, int y, ushort) x) => (x.Item1, x.y), ((EBaseParam, int y, ushort) x) => x.Item3); - _materiaStats = materiaSheet.Where(delegate(Materia x) - { - int num = ((x.RowId == 0) ? (-1542142344) : (-1542142341)); - while (true) - { - int num2 = num; - int num3 = -1542142343; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004a; - case 2: - return x.BaseParam.RowId != 0; - case 1: - return false; - } - continue; - IL_004a: - num = -1542142341; - } - }).ToDictionary((Materia x) => x.RowId, (Materia x) => new MateriaInfo((EBaseParam)x.BaseParam.RowId, x.Value, x.Item[0].RowId != 0)); + _materiaStats = materiaSheet.Where((Materia x) => x.RowId != 0 && x.BaseParam.RowId != 0).ToDictionary((Materia x) => x.RowId, (Materia x) => new MateriaInfo((EBaseParam)x.BaseParam.RowId, x.Value, x.Item[0].RowId != 0)); } public unsafe EquipmentStats CalculateGearStats(InventoryItem* item) { List<(uint, byte)> list = new List<(uint, byte)>(); byte b = 0; - int num = ((item->ItemId == 8575) ? 190071822 : 190071818); - int num11 = default(int); - Item? rowOrDefault = default(Item?); - ushort num10 = default(ushort); - while (true) + if (item->ItemId != 8575) { - int num2 = num; - int num3 = 190071819; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + for (int i = 0; i < 5; i++) { - case 6: - { - int num12 = num11; - num3 = 1; - num4 = num12; - int num13 = num4 ^ num3; - int num14 = num4 & num3; - num11 = num13 + (num14 + num14); - num = 190071820; - break; - } - case 1: - num11 = 0; - num = 190071820; - break; - case 5: - rowOrDefault = _itemSheet.GetRowOrDefault(item->ItemId); - num = (rowOrDefault.HasValue ? 190071817 : 190071819); - break; - case 7: - num = ((num11 < 5) ? 190071811 : 190071822); - break; - case 3: - num = 190071818; - break; - case 8: - num10 = item->Materia[num11]; - num = ((num10 == 0) ? 190071821 : 190071823); - break; - case 0: - return new EquipmentStats(new Dictionary<EBaseParam, StatInfo>(), 0); - case 2: - return CalculateGearStats(rowOrDefault.Value, _206B_200B_206C_206A_200B_200C_206B_200B_202A_206F_206B_206A_206E_206A_200C_202E_206C_200E_200D_200E_202A_206E_200F_206B_200C_200D_200D_206F_206F_200D_206F_200D_206F_202C_202C_202A_200F_206C_206C_200E_202E((Enum)item->Flags, (Enum)InventoryItem.ItemFlags.HighQuality), list)with + ushort num = item->Materia[i]; + if (num != 0) { - MateriaCount = b - }; - case 4: - { - byte num7 = b; - num3 = 1; - num4 = num7; - int num8 = num4 ^ num3; - int num9 = num4 & num3; - b = (byte)(num8 + (num9 + num9)); - list.Add((num10, item->MateriaGrades[num11])); - num = 190071821; - break; - } + b++; + list.Add((num, item->MateriaGrades[i])); + } } } + Item? rowOrDefault = _itemSheet.GetRowOrDefault(item->ItemId); + if (!rowOrDefault.HasValue) + { + return new EquipmentStats(new Dictionary<EBaseParam, StatInfo>(), 0); + } + return CalculateGearStats(rowOrDefault.Value, item->Flags.HasFlag(InventoryItem.ItemFlags.HighQuality), list)with + { + MateriaCount = b + }; } - [MethodImpl(MethodImplOptions.NoInlining)] public EquipmentStats CalculateGearStats(Item item, bool highQuality, IReadOnlyList<(uint MateriaId, byte Grade)> materias) { - _202A_202D_206D_206A_200C_202C_200D_202E_202B_206C_206C_206A_200B_200C_200C_206D_202C_200E_206B_206F_202B_200D_206E_206F_202C_200F_202E_206B_200F_202A_202E_202B_200B_206B_200C_200B_206D_202D_206B_206F_202E((object)materias, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-6679386)); + ArgumentNullException.ThrowIfNull(materias, "materias"); Dictionary<EBaseParam, StatInfo> dictionary = new Dictionary<EBaseParam, StatInfo>(); - int num = ((item.DamagePhys <= 0) ? (-1164820612) : (-1164820623)); - int num12 = default(int); - int num11 = default(int); - MateriaInfo value = default(MateriaInfo); - (uint, byte) current = default((uint, byte)); - while (true) + if (item.DamagePhys > 0) { - int num2 = num; - int num3 = -1164820618; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + dictionary[EBaseParam.DamagePhys] = new StatInfo((short)item.DamagePhys, 0, Overcapped: false); + } + if (item.DamageMag > 0) + { + dictionary[EBaseParam.DamageMag] = new StatInfo((short)item.DamageMag, 0, Overcapped: false); + } + for (int i = 0; i < item.BaseParam.Count; i++) + { + AddEquipmentStat(dictionary, item.BaseParam[i], item.BaseParamValue[i]); + } + if (highQuality) + { + for (int j = 0; j < item.BaseParamSpecial.Count; j++) { - case 3: - num12 = 0; - num = -1164820618; - break; - case 4: - { - AddEquipmentStat(dictionary, item.BaseParam[num12], item.BaseParamValue[num12]); - int num13 = num12; - num3 = 1; - num4 = num13; - num12 = (num4 | num3) + (num4 & num3); - num = -1164820618; - break; - } - case 5: - dictionary[EBaseParam.DamageMag] = new StatInfo((short)item.DamageMag, 0, Overcapped: false); - num = -1164820619; - break; - case 6: - { - AddEquipmentStat(dictionary, item.BaseParamSpecial[num11], item.BaseParamValueSpecial[num11]); - int num14 = num11; - num3 = 1; - num4 = num14; - num11 = (num4 | num3) + (num4 & num3); - num = -1164820620; - break; - } - case 10: - num = ((item.DamageMag <= 0) ? (-1164820619) : (-1164820621)); - break; - case 1: - num11 = 0; - num = -1164820620; - break; - case 8: - num = ((!highQuality) ? (-1164820611) : (-1164820617)); - break; - case 7: - dictionary[EBaseParam.DamagePhys] = new StatInfo((short)item.DamagePhys, 0, Overcapped: false); - num = -1164820612; - break; - case 0: - num = ((num12 < item.BaseParam.Count) ? (-1164820622) : (-1164820610)); - break; - case 9: - num = -1164820623; - break; - case 2: - num = ((num11 < item.BaseParamSpecial.Count) ? (-1164820624) : (-1164820611)); - break; - case 11: - { - IEnumerator<(uint, byte)> enumerator = materias.GetEnumerator(); - try - { - num = -1326444285; - while (true) - { - int num5 = num; - num3 = -1326444286; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 1: - num = (_202E_202E_202D_206D_206F_202E_202C_200F_200C_202B_206C_200D_200E_202B_202E_202E_202E_206F_202B_206A_200E_202B_202A_206C_206E_206C_206B_200C_202B_206D_202A_202D_206E_200B_202A_202A_206A_200B_202B_202E((IEnumerator)enumerator) ? (-1326444287) : (-1326444286)); - break; - case 2: - AddMateriaStat(item, dictionary, value, current.Item2); - num = -1326444285; - break; - case 3: - current = enumerator.Current; - num = ((!_materiaStats.TryGetValue(current.Item1, out value)) ? (-1326444285) : (-1326444288)); - break; - case 4: - num = -1326444285; - break; - case 0: - goto end_IL_0238; - } - continue; - end_IL_0238: - break; - } - } - finally - { - num = ((enumerator == null) ? (-851721026) : (-851721027)); - while (true) - { - int num8 = num; - num3 = -851721025; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 1: - goto end_IL_0319; - case 2: - _202B_202D_200E_206F_202E_200D_202E_200B_202E_202C_202E_206E_206F_206C_200F_200C_202C_202D_206C_202E_200D_202E_200B_206D_200D_200D_206C_202E_206E_206C_202E_206C_202B_202B_202B_202D_206E_200E_200C_206D_202E((IDisposable)enumerator); - num = -851721026; - break; - case 0: - num = -851721027; - break; - } - continue; - end_IL_0319: - break; - } - } - return new EquipmentStats(dictionary, 0); - } + AddEquipmentStat(dictionary, item.BaseParamSpecial[j], item.BaseParamValueSpecial[j]); } } + foreach (var materia in materias) + { + if (_materiaStats.TryGetValue(materia.MateriaId, out MateriaInfo value)) + { + AddMateriaStat(item, dictionary, value, materia.Grade); + } + } + return new EquipmentStats(dictionary, 0); } private static void AddEquipmentStat(Dictionary<EBaseParam, StatInfo> result, RowRef<BaseParam> baseParam, short value) { - int num = ((baseParam.RowId != 0) ? (-1609748606) : (-1609748602)); - StatInfo value2 = default(StatInfo); - while (true) + if (baseParam.RowId != 0) { - int num2 = num; - int num3 = -1609748606; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (result.TryGetValue((EBaseParam)baseParam.RowId, out StatInfo value2)) { - case 2: - num = -1609748602; - break; - case 3: result[(EBaseParam)baseParam.RowId] = value2 with { EquipmentValue = (short)(value2.EquipmentValue + value) }; - return; - case 4: - return; - case 1: + } + else + { result[(EBaseParam)baseParam.RowId] = new StatInfo(value, 0, Overcapped: false); - return; - case 0: - num = ((!result.TryGetValue((EBaseParam)baseParam.RowId, out value2)) ? (-1609748605) : (-1609748607)); - break; } } } private void AddMateriaStat(Item item, Dictionary<EBaseParam, StatInfo> result, MateriaInfo materiaInfo, short grade) { - StatInfo value; - int num = (result.TryGetValue(materiaInfo.BaseParam, out value) ? 1378115408 : 1378115409); - short num5 = default(short); - while (true) + if (!result.TryGetValue(materiaInfo.BaseParam, out StatInfo value)) { - int num2 = num; - int num3 = 1378115413; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + value = (result[materiaInfo.BaseParam] = new StatInfo(0, 0, Overcapped: false)); + } + if (materiaInfo.HasItem) + { + short num = (short)Math.Max(0, GetMaximumStatValue(item, materiaInfo.BaseParam) - value.EquipmentValue); + if (value.MateriaValue + materiaInfo.Values[grade] > num) { - case 6: - num = 1378115409; - break; - case 0: result[materiaInfo.BaseParam] = value with { - MateriaValue = (short)(value.MateriaValue + materiaInfo.Values[grade]) - }; - return; - case 4: - value = (result[materiaInfo.BaseParam] = new StatInfo(0, 0, Overcapped: false)); - num = 1378115408; - break; - case 2: - result[materiaInfo.BaseParam] = value with - { - MateriaValue = num5, + MateriaValue = num, Overcapped = true }; - return; - case 5: - num = ((!materiaInfo.HasItem) ? 1378115413 : 1378115414); - break; - case 3: - num5 = (short)_206C_206F_200B_206F_202D_200C_202E_202C_202E_200C_202A_200D_200D_200D_200F_206B_206A_200B_200B_206E_200D_206E_206E_202B_206E_202D_200F_202B_200C_202E_202A_206D_200F_206E_202C_206B_200F_206B_206D_202C_202E(0, GetMaximumStatValue(item, materiaInfo.BaseParam) - value.EquipmentValue); - num = ((value.MateriaValue + materiaInfo.Values[grade] <= num5) ? 1378115412 : 1378115415); - break; - case 1: + } + else + { result[materiaInfo.BaseParam] = value with { MateriaValue = (short)(value.MateriaValue + materiaInfo.Values[grade]) }; - return; } } + else + { + result[materiaInfo.BaseParam] = value with + { + MateriaValue = (short)(value.MateriaValue + materiaInfo.Values[grade]) + }; + } } public short GetMaximumStatValue(Item item, EBaseParam baseParamValue) { - ushort value; - int num = ((!_itemLevelStatCaps.TryGetValue((item.LevelItem.RowId, baseParamValue), out value)) ? 740973538 : 740973537); - while (true) + if (_itemLevelStatCaps.TryGetValue((item.LevelItem.RowId, baseParamValue), out var value)) { - int num2 = num; - int num3 = 740973536; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_006a; - case 1: - return (short)_200B_206F_202B_202B_206A_200F_200E_206E_206D_206E_206F_202C_200E_200D_202E_202B_202D_202E_200B_206A_206E_206D_202A_200D_206B_206A_206F_206A_202E_206E_202B_200B_200B_200C_206A_206F_202C_206E_202C_200C_202E((double)((float)(value * _equipSlotCategoryPct[(baseParamValue, (int)item.EquipSlotCategory.RowId)]) / 1000f), MidpointRounding.AwayFromZero); - case 2: - return 0; - } - continue; - IL_006a: - num = 740973537; + return (short)Math.Round((float)(value * _equipSlotCategoryPct[(baseParamValue, (int)item.EquipSlotCategory.RowId)]) / 1000f, MidpointRounding.AwayFromZero); } + return 0; } public unsafe short CalculateAverageItemLevel(InventoryContainer* container) { - int num = ((container != null) ? 1354599352 : 1354599354); - Item? rowOrDefault = default(Item?); - InventoryItem* inventorySlot = default(InventoryItem*); - int num10 = default(int); - int num8 = default(int); - uint num7 = default(uint); - while (true) + if (container == null) { - int num2 = num; - int num3 = 1354599355; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - rowOrDefault = _itemSheet.GetRowOrDefault(inventorySlot->ItemId); - num = ((!rowOrDefault.HasValue) ? 1354599358 : 1354599349); - break; - case 5: - { - int num13 = num10; - num3 = 1; - num4 = num13; - int num14 = num4 ^ num3; - int num15 = num4 & num3; - num10 = num14 + (num15 + num15); - num = 1354599348; - break; - } - case 1: - return 0; - case 16: - num = ((num10 != 0) ? 1354599346 : 1354599347); - break; - case 9: - { - int num11 = num8; - num3 = 1; - num4 = num11; - num8 = ~(~num4 + num3); - num = 1354599358; - break; - } - case 11: - inventorySlot = container->GetInventorySlot(num10); - num = ((inventorySlot == null) ? 1354599358 : 1354599336); - break; - case 17: - num = ((num10 != 0) ? 1354599345 : 1354599356); - break; - case 12: - { - num7 += rowOrDefault.Value.LevelItem.RowId; - int num12 = num10; - num3 = 1; - num4 = num12; - num10 = (num4 | num3) + (num4 & num3); - num = 1354599345; - break; - } - case 15: - num = ((num10 < 13) ? 1354599355 : 1354599337); - break; - case 3: - num7 = 0u; - num8 = 12; - num10 = 0; - num = 1354599348; - break; - case 6: - num = 1354599354; - break; - case 7: - num = (((ReadOnlySpan<uint>)CanHaveOffhand).Contains(rowOrDefault.Value.ItemUICategory.RowId) ? 1354599345 : 1354599351); - break; - case 0: - num = ((num10 == 5) ? 1354599358 : 1354599344); - break; - case 18: - num = ((num8 > 0) ? 1354599350 : 1354599359); - break; - case 4: - return 0; - case 14: - num = ((rowOrDefault.Value.ItemUICategory.RowId != 105) ? 1354599338 : 1354599339); - break; - case 19: - num = ((inventorySlot->ItemId == 0) ? 1354599358 : 1354599353); - break; - case 10: - num7 += rowOrDefault.Value.LevelItem.RowId; - num = 1354599358; - break; - case 8: - { - int num9 = num8; - num3 = 1; - num4 = num9; - num8 = ~(~num4 + num3); - num = 1354599346; - break; - } - case 13: - return (short)(num7 / num8); - } + return 0; } + uint num = 0u; + int num2 = 12; + for (int i = 0; i < 13; i++) + { + if (i == 5) + { + continue; + } + InventoryItem* inventorySlot = container->GetInventorySlot(i); + if (inventorySlot == null || inventorySlot->ItemId == 0) + { + continue; + } + Item? rowOrDefault = _itemSheet.GetRowOrDefault(inventorySlot->ItemId); + if (!rowOrDefault.HasValue) + { + continue; + } + if (rowOrDefault.Value.ItemUICategory.RowId == 105) + { + if (i == 0) + { + num2--; + } + num2--; + continue; + } + if (i == 0 && !((ReadOnlySpan<uint>)CanHaveOffhand).Contains(rowOrDefault.Value.ItemUICategory.RowId)) + { + num += rowOrDefault.Value.LevelItem.RowId; + i++; + } + num += rowOrDefault.Value.LevelItem.RowId; + } + if (num2 <= 0) + { + return 0; + } + return (short)(num / num2); } public unsafe EquipmentStats CalculateGearsetStats(InventoryContainer* container) { - int num = ((container != null) ? 335366351 : 335366348); - EBaseParam key = default(EBaseParam); - StatInfo statInfo = default(StatInfo); - StatInfo value = default(StatInfo); - while (true) + if (container == null) { - int num2 = num; - int num3 = 335366349; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004c; - case 1: - return new EquipmentStats(new Dictionary<EBaseParam, StatInfo>(), 0); - case 2: - { - Dictionary<EBaseParam, StatInfo> dictionary = new Dictionary<EBaseParam, StatInfo>(); - byte b = 0; - int num5 = 0; - while (num5 < 13) - { - if (num5 != 5) - { - InventoryItem* inventorySlot = container->GetInventorySlot(num5); - if (inventorySlot != null && inventorySlot->ItemId != 0) - { - EquipmentStats equipmentStats = CalculateGearStats(inventorySlot); - b += equipmentStats.MateriaCount; - using Dictionary<EBaseParam, StatInfo>.Enumerator enumerator = equipmentStats.Stats.GetEnumerator(); - num = 2133896260; - while (true) - { - int num6 = num; - num3 = 2133896256; - num4 = num6; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - dictionary[key] = statInfo; - num = 2133896260; - break; - case 1: - { - enumerator.Current.Deconstruct(out var key2, out var value2); - key = key2; - statInfo = value2; - num = ((!dictionary.TryGetValue(key, out value)) ? 2133896261 : 2133896256); - break; - } - case 3: - num = 2133896260; - break; - case 4: - num = (enumerator.MoveNext() ? 2133896257 : 2133896258); - break; - case 0: - dictionary[key] = value with - { - EquipmentValue = (short)(value.EquipmentValue + statInfo.EquipmentValue), - MateriaValue = (short)(value.MateriaValue + statInfo.MateriaValue), - Overcapped = (value.Overcapped || statInfo.Overcapped) - }; - num = 2133896260; - break; - case 2: - goto end_IL_00c3; - } - continue; - end_IL_00c3: - break; - } - } - } - int num7 = num5; - num3 = 1; - num4 = num7; - int num8 = num4 ^ num3; - int num9 = num4 & num3; - num5 = num8 + (num9 + num9); - } - return new EquipmentStats(dictionary, b); - } - } - continue; - IL_004c: - num = 335366348; + return new EquipmentStats(new Dictionary<EBaseParam, StatInfo>(), 0); } - } - - static GearStatsCalculator() - { - uint[] array = new uint[14]; - _206C_206E_200D_206F_206A_206D_200C_200C_200E_200B_200E_200C_202E_202E_200E_202A_206B_200F_206D_206A_206C_206F_206B_200F_202A_206A_206F_206F_202A_202B_202E_206A_202E_202E_200B_200B_202D_202A_206C_206C_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - CanHaveOffhand = array; - } - - static ArgumentNullException _202D_206D_206E_202C_200B_200E_206C_202A_200B_200E_206A_200F_200F_202B_206E_200D_206F_200F_200C_206C_200E_200E_206F_200D_202D_206F_206B_206F_202D_200E_206A_200D_202D_200F_206E_200F_206B_206B_200D_206F_202E(string P_0) - { - return new ArgumentNullException(P_0); - } - - static void _202A_202D_206D_206A_200C_202C_200D_202E_202B_206C_206C_206A_200B_200C_200C_206D_202C_200E_206B_206F_202B_200D_206E_206F_202C_200F_202E_206B_200F_202A_202E_202B_200B_206B_200C_200B_206D_202D_206B_206F_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static bool _206B_200B_206C_206A_200B_200C_206B_200B_202A_206F_206B_206A_206E_206A_200C_202E_206C_200E_200D_200E_202A_206E_200F_206B_200C_200D_200D_206F_206F_200D_206F_200D_206F_202C_202C_202A_200F_206C_206C_200E_202E(Enum P_0, Enum P_1) - { - return P_0.HasFlag(P_1); - } - - static bool _202E_202E_202D_206D_206F_202E_202C_200F_200C_202B_206C_200D_200E_202B_202E_202E_202E_206F_202B_206A_200E_202B_202A_206C_206E_206C_206B_200C_202B_206D_202A_202D_206E_200B_202A_202A_206A_200B_202B_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202B_202D_200E_206F_202E_200D_202E_200B_202E_202C_202E_206E_206F_206C_200F_200C_202C_202D_206C_202E_200D_202E_200B_206D_200D_200D_206C_202E_206E_206C_202E_206C_202B_202B_202B_202D_206E_200E_200C_206D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static int _206C_206F_200B_206F_202D_200C_202E_202C_202E_200C_202A_200D_200D_200D_200F_206B_206A_200B_200B_206E_200D_206E_206E_202B_206E_202D_200F_202B_200C_202E_202A_206D_200F_206E_202C_206B_200F_206B_206D_202C_202E(int P_0, int P_1) - { - return Math.Max(P_0, P_1); - } - - static double _200B_206F_202B_202B_206A_200F_200E_206E_206D_206E_206F_202C_200E_200D_202E_202B_202D_202E_200B_206A_206E_206D_202A_200D_206B_206A_206F_206A_202E_206E_202B_200B_200B_200C_206A_206F_202C_206E_202C_200C_202E(double P_0, MidpointRounding P_1) - { - return Math.Round(P_0, P_1); - } - - static void _206C_206E_200D_206F_206A_206D_200C_200C_200E_200B_200E_200C_202E_202E_200E_202A_206B_200F_206D_206A_206C_206F_206B_200F_202A_206A_206F_206F_202A_202B_202E_206A_202E_202E_200B_200B_202D_202A_206C_206C_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); + Dictionary<EBaseParam, StatInfo> dictionary = new Dictionary<EBaseParam, StatInfo>(); + byte b = 0; + for (int i = 0; i < 13; i++) + { + if (i == 5) + { + continue; + } + InventoryItem* inventorySlot = container->GetInventorySlot(i); + if (inventorySlot == null || inventorySlot->ItemId == 0) + { + continue; + } + EquipmentStats equipmentStats = CalculateGearStats(inventorySlot); + b += equipmentStats.MateriaCount; + foreach (var (key, statInfo2) in equipmentStats.Stats) + { + if (dictionary.TryGetValue(key, out var value)) + { + dictionary[key] = value with + { + EquipmentValue = (short)(value.EquipmentValue + statInfo2.EquipmentValue), + MateriaValue = (short)(value.MateriaValue + statInfo2.MateriaValue), + Overcapped = (value.Overcapped || statInfo2.Overcapped) + }; + } + else + { + dictionary[key] = statInfo2; + } + } + } + return new EquipmentStats(dictionary, b); } } diff --git a/LLib/LLib.Gear/GearsetHelper.cs b/LLib/LLib.Gear/GearsetHelper.cs index 6b93c2b..d0cfc18 100644 --- a/LLib/LLib.Gear/GearsetHelper.cs +++ b/LLib/LLib.Gear/GearsetHelper.cs @@ -7,83 +7,31 @@ public static class GearsetHelper public unsafe static int GetCurrentGearsetIndex() { RaptureGearsetModule* ptr = RaptureGearsetModule.Instance(); - int num = ((ptr != null) ? (-1692442216) : (-1692442213)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1692442214; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 1: - return -1; - case 2: - return ptr->CurrentGearsetIndex; - } - continue; - IL_0049: - num = -1692442213; + return -1; } + return ptr->CurrentGearsetIndex; } public unsafe static bool TryEquipGearset(int gearsetIndex) { RaptureGearsetModule* ptr = RaptureGearsetModule.Instance(); - int num = ((ptr == null) ? 231059237 : 231059236); - while (true) + if (ptr == null || gearsetIndex < 0 || !ptr->IsValidGearset(gearsetIndex)) { - int num2 = num; - int num3 = 231059239; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - ptr->EquipGearset(gearsetIndex, 0); - return true; - case 1: - num = (ptr->IsValidGearset(gearsetIndex) ? 231059239 : 231059237); - break; - case 2: - return false; - case 3: - num = ((gearsetIndex < 0) ? 231059237 : 231059238); - break; - case 4: - num = 231059236; - break; - } + return false; } + ptr->EquipGearset(gearsetIndex, 0); + return true; } public unsafe static byte GetGearsetClassJob(int gearsetIndex) { RaptureGearsetModule* ptr = RaptureGearsetModule.Instance(); - int num = ((ptr == null) ? (-76399401) : (-76399403)); - while (true) + if (ptr == null || gearsetIndex < 0 || !ptr->IsValidGearset(gearsetIndex)) { - int num2 = num; - int num3 = -76399402; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return 0; - case 2: - num = (ptr->IsValidGearset(gearsetIndex) ? (-76399406) : (-76399401)); - break; - case 4: - return ptr->GetGearset(gearsetIndex)->ClassJob; - case 0: - num = -76399403; - break; - case 3: - num = ((gearsetIndex < 0) ? (-76399401) : (-76399404)); - break; - } + return 0; } + return ptr->GetGearset(gearsetIndex)->ClassJob; } } diff --git a/LLib/LLib.Gear/ItemRankingKey.cs b/LLib/LLib.Gear/ItemRankingKey.cs index e4a72a9..384dad8 100644 --- a/LLib/LLib.Gear/ItemRankingKey.cs +++ b/LLib/LLib.Gear/ItemRankingKey.cs @@ -1,106 +1,6 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; - namespace LLib.Gear; public readonly record struct ItemRankingKey(uint ItemLevel, float Score, short Damage) { public static readonly ItemRankingKey None = new ItemRankingKey(0u, float.NegativeInfinity, short.MinValue); - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206A_202E_200D_202A_202D_206B_202D_200F_206A_202A_206A_202E_200E_200C_206F_202A_206E_206D_202C_206E_206F_202D_202E_206E_206F_200F_206A_200C_200F_206E_202C_200C_200F_206B_200C_200B_202C_202E_202D_200F_202E(); - _206A_200D_202A_206C_200D_206F_206F_206B_202E_206E_200D_202A_202A_200D_200E_206E_206A_200E_200C_202C_206B_200F_202B_202E_202C_206E_206F_206E_206A_200E_202E_206A_206C_202E_202B_200D_200D_206D_200B_200D_202E(stringBuilder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1583508102)); - _206A_200D_202A_206C_200D_206F_206F_206B_202E_206E_200D_202A_202A_200D_200E_206E_206A_200E_200C_202C_206B_200F_202B_202E_202C_206E_206F_206E_206A_200E_202E_206A_206C_202E_202B_200D_200D_206D_200B_200D_202E(stringBuilder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1148273145)); - int num = ((!PrintMembers(stringBuilder)) ? 83489676 : 83489679); - while (true) - { - int num2 = num; - int num3 = 83489678; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 83489679; - break; - case 1: - _202A_206F_206A_206A_200C_206D_200B_202B_202D_206F_202B_202C_202A_200F_206D_206E_200B_206A_206B_206B_206F_202D_202E_206C_200C_200F_206E_202E_206C_202B_206E_200E_202B_200E_202E_206F_202A_200B_206A_206B_202E(stringBuilder, ' '); - num = 83489676; - break; - case 2: - _202A_206F_206A_206A_200C_206D_200B_202B_202D_206F_202B_202C_202A_200F_206D_206E_200B_206A_206B_206B_206F_202D_202E_206C_200C_200F_206E_202E_206C_202B_206E_200E_202B_200E_202E_206F_202A_200B_206A_206B_202E(stringBuilder, '}'); - return _206C_202E_200D_200D_206E_202D_206C_206B_206A_202B_200F_202D_202C_206C_202B_202B_202A_200F_206A_202B_206F_206D_202B_206E_200D_200C_202C_206E_206C_202C_202E_200D_202B_206D_200B_202B_202E_202E_202B_202D_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206A_200D_202A_206C_200D_206F_206F_206B_202E_206E_200D_202A_202A_200D_200E_206E_206A_200E_200C_202C_206B_200F_202B_202E_202C_206E_206F_206E_206A_200E_202E_206A_206C_202E_202B_200D_200D_206D_200B_200D_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-802987284)); - _206A_200D_202A_206C_200D_206F_206F_206B_202E_206E_200D_202A_202A_200D_200E_206E_206A_200E_200C_202C_206B_200F_202B_202E_202C_206E_206F_206E_206A_200E_202E_206A_206C_202E_202B_200D_200D_206D_200B_200D_202E(builder, ItemLevel.ToString()); - _206A_200D_202A_206C_200D_206F_206F_206B_202E_206E_200D_202A_202A_200D_200E_206E_206A_200E_200C_202C_206B_200F_202B_202E_202C_206E_206F_206E_206A_200E_202E_206A_206C_202E_202B_200D_200D_206D_200B_200D_202E(builder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(892084588)); - _206A_200D_202A_206C_200D_206F_206F_206B_202E_206E_200D_202A_202A_200D_200E_206E_206A_200E_200C_202C_206B_200F_202B_202E_202C_206E_206F_206E_206A_200E_202E_206A_206C_202E_202B_200D_200D_206D_200B_200D_202E(builder, Score.ToString()); - _206A_200D_202A_206C_200D_206F_206F_206B_202E_206E_200D_202A_202A_200D_200E_206E_206A_200E_200C_202C_206B_200F_202B_202E_202C_206E_206F_206E_206A_200E_202E_206A_206C_202E_202B_200D_200D_206D_200B_200D_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1290468425)); - _206A_200D_202A_206C_200D_206F_206F_206B_202E_206E_200D_202A_202A_200D_200E_206E_206A_200E_200C_202C_206B_200F_202B_202E_202C_206E_206F_206E_206A_200E_202E_206A_206C_202E_202B_200D_200D_206D_200B_200D_202E(builder, Damage.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(ItemRankingKey other) - { - int num = ((!EqualityComparer<uint>.Default.Equals(ItemLevel, other.ItemLevel)) ? (-23667421) : (-23667422)); - while (true) - { - int num2 = num; - int num3 = -23667421; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return false; - case 1: - num = ((!EqualityComparer<float>.Default.Equals(Score, other.Score)) ? (-23667421) : (-23667424)); - break; - case 2: - num = -23667422; - break; - case 3: - return EqualityComparer<short>.Default.Equals(Damage, other.Damage); - } - } - } - - bool IEquatable<ItemRankingKey>.Equals(ItemRankingKey other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _206A_202E_200D_202A_202D_206B_202D_200F_206A_202A_206A_202E_200E_200C_206F_202A_206E_206D_202C_206E_206F_202D_202E_206E_206F_200F_206A_200C_200F_206E_202C_200C_200F_206B_200C_200B_202C_202E_202D_200F_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206A_200D_202A_206C_200D_206F_206F_206B_202E_206E_200D_202A_202A_200D_200E_206E_206A_200E_200C_202C_206B_200F_202B_202E_202C_206E_206F_206E_206A_200E_202E_206A_206C_202E_202B_200D_200D_206D_200B_200D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202A_206F_206A_206A_200C_206D_200B_202B_202D_206F_202B_202C_202A_200F_206D_206E_200B_206A_206B_206B_206F_202D_202E_206C_200C_200F_206E_202E_206C_202B_206E_200E_202B_200E_202E_206F_202A_200B_206A_206B_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206C_202E_200D_200D_206E_202D_206C_206B_206A_202B_200F_202D_202C_206C_202B_202B_202A_200F_206A_202B_206F_206D_202B_206E_200D_200C_202C_206E_206C_202C_202E_200D_202B_206D_200B_202B_202E_202E_202B_202D_202E(object P_0) - { - return P_0.ToString(); - } } diff --git a/LLib/LLib.Gear/MateriaHelper.cs b/LLib/LLib.Gear/MateriaHelper.cs index 1b7e48c..651bb67 100644 --- a/LLib/LLib.Gear/MateriaHelper.cs +++ b/LLib/LLib.Gear/MateriaHelper.cs @@ -13,257 +13,108 @@ public static class MateriaHelper public unsafe static List<MeldSlotInfo> GetMeldedMateria(InventoryItem* item) { List<MeldSlotInfo> list = new List<MeldSlotInfo>(5); - int num = ((item == null) ? (-1527939717) : (-1527939716)); - int num7 = default(int); - uint num9 = default(uint); - while (true) + if (item == null || item->ItemId == 0) { - int num2 = num; - int num3 = -1527939719; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return list; + } + for (int i = 0; i < 5; i++) + { + uint num = item->Materia[i]; + if (num != 0) { - case 7: - return list; - case 4: - num7 = 0; - num = -1527939727; - break; - case 6: - list.Add(new MeldSlotInfo(num7, num9, item->MateriaGrades[num7])); - num = -1527939720; - break; - case 1: - { - int num8 = num7; - num3 = 1; - num4 = num8; - num7 = (num4 | num3) + (num4 & num3); - num = -1527939727; - break; - } - case 0: - num = -1527939716; - break; - case 3: - num9 = item->Materia[num7]; - num = ((num9 == 0) ? (-1527939720) : (-1527939713)); - break; - case 5: - num = ((item->ItemId != 0) ? (-1527939715) : (-1527939717)); - break; - case 8: - num = ((num7 < 5) ? (-1527939718) : (-1527939714)); - break; - case 2: - return list; + list.Add(new MeldSlotInfo(i, num, item->MateriaGrades[i])); } } + return list; } public static int GetNormalSlotCount(IDataManager dataManager, uint itemId) { - Item row; - int num = (dataManager.GetExcelSheet<Item>().TryGetRow(itemId, out row) ? (-1343561605) : (-1343561608)); - while (true) + if (!dataManager.GetExcelSheet<Item>().TryGetRow(itemId, out var row)) { - int num2 = num; - int num3 = -1343561607; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return row.MateriaSlotCount; - case 1: - return 0; - case 0: - goto IL_0067; - } - continue; - IL_0067: - num = -1343561608; + return 0; } + return row.MateriaSlotCount; } public static bool CanOvermeld(IDataManager dataManager, uint itemId) { - Item row; - int num = (dataManager.GetExcelSheet<Item>().TryGetRow(itemId, out row) ? (-2077097183) : (-2077097182)); - while (true) + if (!dataManager.GetExcelSheet<Item>().TryGetRow(itemId, out var row)) { - int num2 = num; - int num3 = -2077097184; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return row.IsAdvancedMeldingPermitted; - case 2: - return false; - case 0: - goto IL_0065; - } - continue; - IL_0065: - num = -2077097182; + return false; } + return row.IsAdvancedMeldingPermitted; } public static int GetOvermeldSuccessRate(IDataManager dataManager, byte grade, int overmeldSlot, bool isHq) { - int num = ((overmeldSlot >= 0) ? 943397358 : 943397347); - MateriaGrade row = default(MateriaGrade); - while (true) + if (overmeldSlot < 0) { - int num2 = num; - int num3 = 943397355; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return 0; + } + if (!dataManager.GetExcelSheet<MateriaGrade>().TryGetRow(grade, out var row)) + { + return 0; + } + if (isHq) + { + if (overmeldSlot >= row.OvermeldHQPercent.Count) { - case 0: - num = 943397347; - break; - case 2: - return row.OvermeldHQPercent[overmeldSlot]; - case 4: - num = ((overmeldSlot < row.OvermeldHQPercent.Count) ? 943397353 : 943397345); - break; - case 8: - return 0; - case 5: - num = (dataManager.GetExcelSheet<MateriaGrade>().TryGetRow(grade, out row) ? 943397354 : 943397356); - break; - case 3: - num = ((overmeldSlot < row.OvermeldNQPercent.Count) ? 943397346 : 943397357); - break; - case 7: - return 0; - case 10: - return 0; - case 9: - return row.OvermeldNQPercent[overmeldSlot]; - case 1: - num = ((!isHq) ? 943397352 : 943397359); - break; - case 6: return 0; } + return row.OvermeldHQPercent[overmeldSlot]; } + if (overmeldSlot >= row.OvermeldNQPercent.Count) + { + return 0; + } + return row.OvermeldNQPercent[overmeldSlot]; } public unsafe static int CountMateriaInInventory(uint materiaItemId) { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? 244394904 : 244394907); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 244394905; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return ptr->GetInventoryItemCount(materiaItemId, isHq: false, checkEquipped: true, checkArmory: true, 0); - case 2: - return 0; - case 0: - goto IL_0059; - } - continue; - IL_0059: - num = 244394907; + return 0; } + return ptr->GetInventoryItemCount(materiaItemId, isHq: false, checkEquipped: true, checkArmory: true, 0); } public static int EstimateMateriaNeeded(int successRatePercent, int confidencePercent = 90) { - int num = ((successRatePercent < 100) ? 394334376 : 394334378); - double num5 = default(double); - while (true) + if (successRatePercent >= 100) { - int num2 = num; - int num3 = 394334379; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - { - double num6 = (double)successRatePercent / 100.0; - double num7 = (double)_200E_200C_202D_202E_206D_206B_202B_202E_200E_200F_200F_202B_202A_202A_206D_200B_202E_200F_206E_206A_200D_206D_200F_200E_206B_200B_202A_200B_206A_200C_206E_202E_206E_206F_206B_206B_206A_200B_200B_202A_202E(confidencePercent, 0, 99) / 100.0; - num5 = _202B_200F_202E_202E_200D_202C_206D_206B_200E_200E_202A_200D_206D_206D_202E_202A_200C_202C_200C_202A_206A_206B_200F_200E_206B_202B_206F_202B_202E_200E_202D_202E_206B_202A_202C_206C_206B_202B_200C_206B_202E(_200F_202B_200B_200C_206C_200E_202A_206D_206C_206D_200B_200C_202B_206A_200E_202A_206F_202B_206A_200D_200F_200D_200B_202E_202C_202C_200F_206B_206F_202E_200F_200C_200F_202C_202E_206F_200F_200B_206C_200C_202E(1.0 - num7) / _200F_202B_200B_200C_206C_200E_202A_206D_206C_206D_200B_200C_202B_206A_200E_202A_206F_202B_206A_200D_200F_200D_200B_202E_202C_202C_200F_206B_206F_202E_200F_200C_200F_202C_202E_206F_200F_200B_206C_200C_202E(1.0 - num6)); - num = ((!(num5 < 1.0)) ? 394334379 : 394334371); - break; - } - case 1: - return 1; - case 7: - num = 394334378; - break; - case 5: - return int.MaxValue; - case 6: - return (int)num5; - case 4: - return int.MaxValue; - case 0: - num = ((!(num5 > 2147483647.0)) ? 394334381 : 394334382); - break; - case 3: - num = ((successRatePercent > 0) ? 394334377 : 394334383); - break; - case 8: - return 1; - } + return 1; } + if (successRatePercent <= 0) + { + return int.MaxValue; + } + double num = (double)successRatePercent / 100.0; + double num2 = (double)Math.Clamp(confidencePercent, 0, 99) / 100.0; + double num3 = Math.Ceiling(Math.Log(1.0 - num2) / Math.Log(1.0 - num)); + if (num3 < 1.0) + { + return 1; + } + if (num3 > 2147483647.0) + { + return int.MaxValue; + } + return (int)num3; } public static uint GetMateriaItemId(IDataManager dataManager, uint materiaRowId, byte grade) { - Materia row; - int num = (dataManager.GetExcelSheet<Materia>().TryGetRow(materiaRowId, out row) ? (-1528382481) : (-1528382482)); - while (true) + if (!dataManager.GetExcelSheet<Materia>().TryGetRow(materiaRowId, out var row)) { - int num2 = num; - int num3 = -1528382483; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return 0u; - case 3: - return 0u; - case 4: - return row.Item[grade].RowId; - case 2: - num = ((grade < row.Item.Count) ? (-1528382487) : (-1528382484)); - break; - case 0: - num = -1528382482; - break; - } + return 0u; } - } - - static int _200E_200C_202D_202E_206D_206B_202B_202E_200E_200F_200F_202B_202A_202A_206D_200B_202E_200F_206E_206A_200D_206D_200F_200E_206B_200B_202A_200B_206A_200C_206E_202E_206E_206F_206B_206B_206A_200B_200B_202A_202E(int P_0, int P_1, int P_2) - { - return Math.Clamp(P_0, P_1, P_2); - } - - static double _200F_202B_200B_200C_206C_200E_202A_206D_206C_206D_200B_200C_202B_206A_200E_202A_206F_202B_206A_200D_200F_200D_200B_202E_202C_202C_200F_206B_206F_202E_200F_200C_200F_202C_202E_206F_200F_200B_206C_200C_202E(double P_0) - { - return Math.Log(P_0); - } - - static double _202B_200F_202E_202E_200D_202C_206D_206B_200E_200E_202A_200D_206D_206D_202E_202A_200C_202C_200C_202A_206A_206B_200F_200E_206B_202B_206F_202B_202E_200E_202D_202E_206B_202A_202C_206C_206B_202B_200C_206B_202E(double P_0) - { - return Math.Ceiling(P_0); + if (grade >= row.Item.Count) + { + return 0u; + } + return row.Item[grade].RowId; } } diff --git a/LLib/LLib.Gear/MeldActions.cs b/LLib/LLib.Gear/MeldActions.cs index b948546..00bafb5 100644 --- a/LLib/LLib.Gear/MeldActions.cs +++ b/LLib/LLib.Gear/MeldActions.cs @@ -1,4 +1,3 @@ -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.UI.Agent; @@ -17,568 +16,216 @@ public static class MeldActions public unsafe static bool TryOpenMeldAgent() { ActionManager* ptr = ActionManager.Instance(); - int num = ((ptr != null) ? (-92377207) : (-92377206)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -92377205; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 2: - return ptr->UseAction(ActionType.GeneralAction, 13u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); - case 1: - return false; - } - continue; - IL_0049: - num = -92377206; + return false; } + return ptr->UseAction(ActionType.GeneralAction, 13u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); } public unsafe static bool IsMeldAgentReady() { AgentInterface* agentByInternalId = AgentModule.Instance()->GetAgentByInternalId(AgentId.MateriaAttach); - int num = ((agentByInternalId == null) ? 1012581320 : 1012581323); - while (true) + if (agentByInternalId != null) { - int num2 = num; - int num3 = 1012581322; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0050; - case 2: - return false; - case 1: - return agentByInternalId->IsAgentActive(); - } - continue; - IL_0050: - num = 1012581323; + return agentByInternalId->IsAgentActive(); } + return false; } public unsafe static void CloseMeldAgent() { AgentInterface* agentByInternalId = AgentModule.Instance()->GetAgentByInternalId(AgentId.MateriaAttach); - int num = ((agentByInternalId == null) ? 1172237178 : 1172237177); - while (true) + if (agentByInternalId != null) { - int num2 = num; - int num3 = 1172237179; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return; - case 2: - agentByInternalId->Hide(); - num = 1172237178; - break; - case 0: - num = 1172237177; - break; - } + agentByInternalId->Hide(); } } public unsafe static bool TrySelectItemCategory(int category) { AgentInterface* agentByInternalId = AgentModule.Instance()->GetAgentByInternalId(AgentId.MateriaAttach); - int num = ((agentByInternalId == null) ? 1631304881 : 1631304883); - while (true) + if (agentByInternalId == null || !agentByInternalId->IsAgentActive()) { - int num2 = num; - int num3 = 1631304882; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return false; - case 2: - AgentHelper.SendEvent(agentByInternalId, 0uL, 0, category); - return true; - case 0: - num = 1631304883; - break; - case 1: - num = (agentByInternalId->IsAgentActive() ? 1631304880 : 1631304881); - break; - } + return false; } + AgentHelper.SendEvent(agentByInternalId, 0uL, 0, category); + return true; } public unsafe static bool TrySelectItem(int itemIndex) { AgentInterface* agentByInternalId = AgentModule.Instance()->GetAgentByInternalId(AgentId.MateriaAttach); - int num = ((agentByInternalId == null) ? (-2072200034) : (-2072200035)); - while (true) + if (agentByInternalId == null || !agentByInternalId->IsAgentActive()) { - int num2 = num; - int num3 = -2072200036; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -2072200035; - break; - case 2: - return false; - case 1: - num = (agentByInternalId->IsAgentActive() ? (-2072200033) : (-2072200034)); - break; - case 3: - AgentHelper.SendEvent(agentByInternalId, 0uL, 1, itemIndex, 1, 0); - return true; - } + return false; } + AgentHelper.SendEvent(agentByInternalId, 0uL, 1, itemIndex, 1, 0); + return true; } public unsafe static bool TrySelectMateria(int materiaIndex) { AgentInterface* agentByInternalId = AgentModule.Instance()->GetAgentByInternalId(AgentId.MateriaAttach); - int num = ((agentByInternalId == null) ? 1070130699 : 1070130696); - while (true) + if (agentByInternalId == null || !agentByInternalId->IsAgentActive()) { - int num2 = num; - int num3 = 1070130698; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return false; - case 2: - num = (agentByInternalId->IsAgentActive() ? 1070130697 : 1070130699); - break; - case 3: - AgentHelper.SendEvent(agentByInternalId, 0uL, 2, materiaIndex, 1, 0); - return true; - case 0: - num = 1070130696; - break; - } + return false; } + AgentHelper.SendEvent(agentByInternalId, 0uL, 2, materiaIndex, 1, 0); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryConfirmMeld(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(627835042), out addonPtr) ? 1229741423 : 1229741420); - while (true) + if (!gameGui.TryGetReadyAddon<AtkUnitBase>("MateriaAttachDialog", out var addonPtr)) { - int num2 = num; - int num3 = 1229741422; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0052; - case 2: - return false; - case 1: - AddonCallback.Fire(addonPtr, 0, 0, 1); - addonPtr->Close(fireCallback: true); - return true; - } - continue; - IL_0052: - num = 1229741420; + return false; } + AddonCallback.Fire(addonPtr, 0, 0, 1); + addonPtr->Close(fireCallback: true); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryConfirmOvermeld(IGameGui gameGui) { AgentInterface* agentByInternalId = AgentModule.Instance()->GetAgentByInternalId(AgentId.MateriaAttach); - int num = ((agentByInternalId == null) ? (-1324266092) : (-1324266093)); - AtkUnitBase* addonPtr = default(AtkUnitBase*); - while (true) + if (agentByInternalId == null || !agentByInternalId->IsAgentActive()) { - int num2 = num; - int num3 = -1324266089; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - AddonCallback.ClickYes(addonPtr); - addonPtr->Close(fireCallback: true); - return true; - case 4: - num = (agentByInternalId->IsAgentActive() ? (-1324266090) : (-1324266092)); - break; - case 2: - return false; - case 1: - num = (gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(184774238), out addonPtr) ? (-1324266089) : (-1324266091)); - break; - case 5: - num = -1324266093; - break; - case 3: - return false; - } + return false; } + if (!gameGui.TryGetReadyAddon<AtkUnitBase>("SelectYesno", out var addonPtr)) + { + return false; + } + AddonCallback.ClickYes(addonPtr); + addonPtr->Close(fireCallback: true); + return true; } public unsafe static bool TryRequestRetrieve() { AgentInterface* agentByInternalId = AgentModule.Instance()->GetAgentByInternalId(AgentId.MateriaAttach); - int num = ((agentByInternalId == null) ? (-1148814480) : (-1148814479)); - while (true) + if (agentByInternalId == null || !agentByInternalId->IsAgentActive()) { - int num2 = num; - int num3 = -1148814480; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return false; - case 1: - num = (agentByInternalId->IsAgentActive() ? (-1148814477) : (-1148814480)); - break; - case 2: - num = -1148814479; - break; - case 3: - AgentHelper.SendEvent(agentByInternalId, 4uL, 0, 1, 0, 0, 0); - return true; - } + return false; } + AgentHelper.SendEvent(agentByInternalId, 4uL, 0, 1, 0, 0, 0); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryConfirmRetrieve(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-507581273), out addonPtr) ? (-1428512463) : (-1428512462)); - while (true) + if (!gameGui.TryGetReadyAddon<AtkUnitBase>("MateriaRetrieveDialog", out var addonPtr)) { - int num2 = num; - int num3 = -1428512461; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0052; - case 2: - AddonCallback.Fire(addonPtr, default(int)); - addonPtr->Close(fireCallback: true); - return true; - case 1: - return false; - } - continue; - IL_0052: - num = -1428512462; + return false; } + AddonCallback.Fire(addonPtr, default(int)); + addonPtr->Close(fireCallback: true); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsMeldDialogReady(IGameGui gameGui) { AtkUnitBase* addonPtr; - return gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(2146370651), out addonPtr); + return gameGui.TryGetReadyAddon<AtkUnitBase>("MateriaAttachDialog", out addonPtr); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsRetrieveDialogReady(IGameGui gameGui) { AtkUnitBase* addonPtr; - return gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1509768351), out addonPtr); + return gameGui.TryGetReadyAddon<AtkUnitBase>("MateriaRetrieveDialog", out addonPtr); } public unsafe static bool IsAgentLoading() { AgentMateriaAttach* ptr = AgentMateriaAttach.Instance(); - int num = ((ptr == null) ? (-1447124743) : (-1447124742)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -1447124741; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 1: - return ptr->UpdateState != 0; - case 0: - goto IL_0057; - } - continue; - IL_0057: - num = -1447124742; + return ptr->UpdateState != 0; } + return false; } public unsafe static int GetSelectedItemIndex() { AgentMateriaAttach* ptr = AgentMateriaAttach.Instance(); - int num = ((ptr == null) ? (-10593117) : (-10593120)); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = -10593119; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return -1; - case 1: - return ptr->SelectedItemIndex; - case 0: - goto IL_0054; - } - continue; - IL_0054: - num = -10593120; + return ptr->SelectedItemIndex; } + return -1; } public static AgentMateriaAttach.FilterCategory GetFilterCategory(InventoryType inventoryType) { - int num = ((inventoryType > InventoryType.EquippedItems) ? (-1327648937) : (-1327648944)); - AgentMateriaAttach.FilterCategory result = default(AgentMateriaAttach.FilterCategory); - while (true) + switch (inventoryType) { - int num2 = num; - int num3 = -1327648930; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 11: - result = AgentMateriaAttach.FilterCategory.Equipped; - num = -1327648933; - break; - case 4: - result = AgentMateriaAttach.FilterCategory.ArmouryWeapon; - num = -1327648933; - break; - case 10: - result = AgentMateriaAttach.FilterCategory.Inventory; - num = -1327648933; - break; - case 14: - num = ((inventoryType <= InventoryType.Inventory4) ? (-1327648940) : (-1327648931)); - break; - case 9: - switch (inventoryType) - { - case InventoryType.ArmoryOffHand: - break; - default: - goto IL_00f8; - case InventoryType.ArmoryHead: - case InventoryType.ArmoryBody: - case InventoryType.ArmoryHands: - goto IL_010e; - case InventoryType.ArmoryWrist: - goto IL_011b; - case InventoryType.ArmoryLegs: - case InventoryType.ArmoryFeets: - goto IL_0128; - case InventoryType.ArmoryEar: - case InventoryType.ArmoryNeck: - goto IL_0135; - case InventoryType.ArmoryWaist: - goto IL_016e; - } - goto case 4; - case 15: - num = -1327648944; - break; - case 7: - goto IL_010e; - case 2: - goto IL_011b; - case 6: - goto IL_0128; - case 8: - goto IL_0135; - case 1: - num = ((inventoryType == InventoryType.ArmoryMainHand) ? (-1327648934) : (-1327648946)); - break; - case 16: - num = -1327648930; - break; - case 0: - goto IL_016e; - case 5: - return result; - case 3: - num = ((inventoryType == InventoryType.EquippedItems) ? (-1327648939) : (-1327648942)); - break; - case 12: - num = -1327648930; - break; - case 13: - { - num = ((inventoryType == InventoryType.ArmoryRings) ? (-1327648932) : (-1327648929)); - break; - } - IL_010e: - result = AgentMateriaAttach.FilterCategory.ArmouryHeadBodyHands; - num = -1327648933; - break; - IL_00f8: - num = -1327648941; - break; - IL_016e: - result = AgentMateriaAttach.FilterCategory.None; - num = -1327648933; - break; - IL_0135: - result = AgentMateriaAttach.FilterCategory.ArmouryNeckEars; - num = -1327648933; - break; - IL_0128: - result = AgentMateriaAttach.FilterCategory.ArmouryLegsFeet; - num = -1327648933; - break; - IL_011b: - result = AgentMateriaAttach.FilterCategory.ArmouryWristRing; - num = -1327648933; - break; - } + case InventoryType.Inventory1: + case InventoryType.Inventory2: + case InventoryType.Inventory3: + case InventoryType.Inventory4: + return AgentMateriaAttach.FilterCategory.Inventory; + case InventoryType.ArmoryOffHand: + case InventoryType.ArmoryMainHand: + return AgentMateriaAttach.FilterCategory.ArmouryWeapon; + case InventoryType.ArmoryHead: + case InventoryType.ArmoryBody: + case InventoryType.ArmoryHands: + return AgentMateriaAttach.FilterCategory.ArmouryHeadBodyHands; + case InventoryType.ArmoryLegs: + case InventoryType.ArmoryFeets: + return AgentMateriaAttach.FilterCategory.ArmouryLegsFeet; + case InventoryType.ArmoryEar: + case InventoryType.ArmoryNeck: + return AgentMateriaAttach.FilterCategory.ArmouryNeckEars; + case InventoryType.ArmoryWrist: + case InventoryType.ArmoryRings: + return AgentMateriaAttach.FilterCategory.ArmouryWristRing; + case InventoryType.EquippedItems: + return AgentMateriaAttach.FilterCategory.Equipped; + default: + return AgentMateriaAttach.FilterCategory.None; } } public unsafe static int? FindItemIndex(InventoryItem* target) { - int num = ((target != null) ? (-1032587333) : (-1032587331)); - AgentMateriaAttach* ptr = default(AgentMateriaAttach*); - int num5 = default(int); - AgentMateriaAttach.MateriaAttachEntry* value = default(AgentMateriaAttach.MateriaAttachEntry*); - while (true) + if (target == null) { - int num2 = num; - int num3 = -1032587332; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return null; + } + AgentMateriaAttach* ptr = AgentMateriaAttach.Instance(); + if (ptr == null || !ptr->IsAgentActive() || ptr->Data == null) + { + return null; + } + for (int i = 0; i < ptr->ItemCount; i++) + { + AgentMateriaAttach.MateriaAttachEntry* value = ptr->Data->ItemsSorted[i].Value; + if (value != null && value->Item == target) { - case 8: - num = ((!ptr->IsAgentActive()) ? (-1032587329) : (-1032587330)); - break; - case 3: - return null; - case 10: - num = ((num5 < ptr->ItemCount) ? (-1032587339) : (-1032587336)); - break; - case 7: - ptr = AgentMateriaAttach.Instance(); - num = ((ptr == null) ? (-1032587329) : (-1032587340)); - break; - case 4: - return null; - case 12: - { - int num6 = num5; - num3 = 1; - num4 = num6; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - num5 = num7 + (num8 + num8); - num = -1032587338; - break; - } - case 9: - value = ptr->Data->ItemsSorted[num5].Value; - num = ((value == null) ? (-1032587344) : (-1032587335)); - break; - case 5: - num = ((value->Item != target) ? (-1032587344) : (-1032587337)); - break; - case 1: - return null; - case 2: - num = ((ptr->Data != null) ? (-1032587334) : (-1032587329)); - break; - case 11: - return num5; - case 0: - num = -1032587331; - break; - case 6: - num5 = 0; - num = -1032587338; - break; + return i; } } + return null; } public unsafe static int? FindMateriaIndex(uint materiaItemId) { AgentMateriaAttach* ptr = AgentMateriaAttach.Instance(); - int num = ((ptr == null) ? 2014235157 : 2014235164); - AgentMateriaAttach.MateriaAttachEntry* value = default(AgentMateriaAttach.MateriaAttachEntry*); - int num6 = default(int); - while (true) + if (ptr == null || !ptr->IsAgentActive() || ptr->Data == null) { - int num2 = num; - int num3 = 2014235167; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return null; + } + for (int i = 0; i < ptr->MateriaCount; i++) + { + AgentMateriaAttach.MateriaAttachEntry* value = ptr->Data->MateriaSorted[i].Value; + if (value != null && value->Item != null && value->Item->ItemId == materiaItemId) { - case 11: - num = ((value->Item->ItemId != materiaItemId) ? 2014235158 : 2014235159); - break; - case 0: - num = ((ptr->Data != null) ? 2014235166 : 2014235157); - break; - case 10: - return null; - case 8: - return num6; - case 7: - return null; - case 3: - num = ((!ptr->IsAgentActive()) ? 2014235157 : 2014235167); - break; - case 2: - num = 2014235164; - break; - case 4: - num = ((num6 < ptr->MateriaCount) ? 2014235162 : 2014235160); - break; - case 1: - num6 = 0; - num = 2014235163; - break; - case 5: - value = ptr->Data->MateriaSorted[num6].Value; - num = ((value == null) ? 2014235158 : 2014235161); - break; - case 6: - num = ((value->Item == null) ? 2014235158 : 2014235156); - break; - case 9: - { - int num5 = num6; - num3 = 1; - num4 = num5; - num6 = (num4 | num3) + (num4 & num3); - num = 2014235163; - break; - } + return i; } } + return null; } public static bool IsMeldingUnlocked() @@ -593,69 +240,30 @@ public static class MeldActions public unsafe static bool CanMeldItem(IDataManager dataManager, InventoryItem* item) { - int num = ((item == null) ? (-1684140330) : (-1684140332)); - Item row = default(Item); - int num5 = default(int); - int num6 = default(int); - while (true) + if (item == null || item->ItemId == 0) { - int num2 = num; - int num3 = -1684140328; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return false; + } + if (!dataManager.GetExcelSheet<Item>().TryGetRow(item->ItemId, out var row)) + { + return false; + } + if (row.MateriaSlotCount == 0) + { + return false; + } + int num = row.MateriaSlotCount; + if (row.IsAdvancedMeldingPermitted) + { + num = 5; + } + for (int i = 0; i < num; i++) + { + if (item->Materia[i] == 0) { - case 6: - num = (dataManager.GetExcelSheet<Item>().TryGetRow(item->ItemId, out row) ? (-1684140324) : (-1684140325)); - break; - case 5: - num5 = row.MateriaSlotCount; - num = ((!row.IsAdvancedMeldingPermitted) ? (-1684140336) : (-1684140333)); - break; - case 4: - num = ((row.MateriaSlotCount != 0) ? (-1684140323) : (-1684140335)); - break; - case 2: - num = -1684140332; - break; - case 1: - num = ((item->Materia[num6] != 0) ? (-1684140334) : (-1684140321)); - break; - case 13: - return false; - case 11: - num5 = 5; - num = -1684140336; - break; - case 0: - num = ((num6 < num5) ? (-1684140327) : (-1684140331)); - break; - case 10: - { - int num7 = num6; - num3 = 1; - num4 = num7; - int num8 = num4 ^ num3; - int num9 = num4 & num3; - num6 = num8 + (num9 + num9); - num = -1684140328; - break; - } - case 8: - num6 = 0; - num = -1684140328; - break; - case 7: return true; - case 9: - return false; - case 14: - return false; - case 3: - return false; - case 12: - num = ((item->ItemId != 0) ? (-1684140322) : (-1684140330)); - break; } } + return false; } } diff --git a/LLib/LLib.Gear/MeldInstruction.cs b/LLib/LLib.Gear/MeldInstruction.cs index 57234d6..49d02b1 100644 --- a/LLib/LLib.Gear/MeldInstruction.cs +++ b/LLib/LLib.Gear/MeldInstruction.cs @@ -1,111 +1,3 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; - namespace LLib.Gear; -public readonly record struct MeldInstruction(uint ItemId, int SlotIndex, uint MateriaItemId, bool IsOvermeld) -{ - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206F_202B_202C_200C_200F_202E_206B_206B_200F_206D_200F_206E_200F_202A_202E_202B_202B_206C_202A_200C_206D_202B_200F_200F_206F_200E_202B_206F_202A_200B_206E_206D_206B_202C_202A_200F_200C_206F_202A_202C_202E(); - _206B_202B_200E_206B_200D_200D_206E_206E_200B_206E_206E_206C_206A_200D_200B_202E_202D_206D_206B_206C_202D_206A_206F_206A_202E_206E_206F_200F_206B_200B_206F_206E_206D_200E_202E_206C_206A_200F_200D_202C_202E(stringBuilder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(910491666)); - _206B_202B_200E_206B_200D_200D_206E_206E_200B_206E_206E_206C_206A_200D_200B_202E_202D_206D_206B_206C_202D_206A_206F_206A_202E_206E_206F_200F_206B_200B_206F_206E_206D_200E_202E_206C_206A_200F_200D_202C_202E(stringBuilder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1808631505)); - int num = ((!PrintMembers(stringBuilder)) ? 1348202798 : 1348202799); - while (true) - { - int num2 = num; - int num3 = 1348202798; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 1348202799; - break; - case 0: - _202E_206B_202B_200B_206D_206D_200D_202D_200B_202D_206C_202C_206D_206C_202E_202D_202C_206A_202A_200D_202B_206B_206F_206E_202E_206A_200B_202E_202C_200B_206C_200B_200C_202A_202C_206C_206A_206C_206A_202A_202E(stringBuilder, '}'); - return _202A_200D_206C_206B_202A_202A_206D_200D_200B_200F_202A_202B_206C_200F_202E_206A_206C_206B_202A_202A_206B_200B_200E_202D_206C_206A_200D_202E_206E_202E_206C_202E_202D_200E_200B_202A_202E_200E_202D_206B_202E((object)stringBuilder); - case 1: - _202E_206B_202B_200B_206D_206D_200D_202D_200B_202D_206C_202C_206D_206C_202E_202D_202C_206A_202A_200D_202B_206B_206F_206E_202E_206A_200B_202E_202C_200B_206C_200B_200C_202A_202C_206C_206A_206C_206A_202A_202E(stringBuilder, ' '); - num = 1348202798; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206B_202B_200E_206B_200D_200D_206E_206E_200B_206E_206E_206C_206A_200D_200B_202E_202D_206D_206B_206C_202D_206A_206F_206A_202E_206E_206F_200F_206B_200B_206F_206E_206D_200E_202E_206C_206A_200F_200D_202C_202E(builder, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1758736713)); - _206B_202B_200E_206B_200D_200D_206E_206E_200B_206E_206E_206C_206A_200D_200B_202E_202D_206D_206B_206C_202D_206A_206F_206A_202E_206E_206F_200F_206B_200B_206F_206E_206D_200E_202E_206C_206A_200F_200D_202C_202E(builder, ItemId.ToString()); - _206B_202B_200E_206B_200D_200D_206E_206E_200B_206E_206E_206C_206A_200D_200B_202E_202D_206D_206B_206C_202D_206A_206F_206A_202E_206E_206F_200F_206B_200B_206F_206E_206D_200E_202E_206C_206A_200F_200D_202C_202E(builder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(66042605)); - _206B_202B_200E_206B_200D_200D_206E_206E_200B_206E_206E_206C_206A_200D_200B_202E_202D_206D_206B_206C_202D_206A_206F_206A_202E_206E_206F_200F_206B_200B_206F_206E_206D_200E_202E_206C_206A_200F_200D_202C_202E(builder, SlotIndex.ToString()); - _206B_202B_200E_206B_200D_200D_206E_206E_200B_206E_206E_206C_206A_200D_200B_202E_202D_206D_206B_206C_202D_206A_206F_206A_202E_206E_206F_200F_206B_200B_206F_206E_206D_200E_202E_206C_206A_200F_200D_202C_202E(builder, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1813688100)); - _206B_202B_200E_206B_200D_200D_206E_206E_200B_206E_206E_206C_206A_200D_200B_202E_202D_206D_206B_206C_202D_206A_206F_206A_202E_206E_206F_200F_206B_200B_206F_206E_206D_200E_202E_206C_206A_200F_200D_202C_202E(builder, MateriaItemId.ToString()); - _206B_202B_200E_206B_200D_200D_206E_206E_200B_206E_206E_206C_206A_200D_200B_202E_202D_206D_206B_206C_202D_206A_206F_206A_202E_206E_206F_200F_206B_200B_206F_206E_206D_200E_202E_206C_206A_200F_200D_202C_202E(builder, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-2051131662)); - _206B_202B_200E_206B_200D_200D_206E_206E_200B_206E_206E_206C_206A_200D_200B_202E_202D_206D_206B_206C_202D_206A_206F_206A_202E_206E_206F_200F_206B_200B_206F_206E_206D_200E_202E_206C_206A_200F_200D_202C_202E(builder, IsOvermeld.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(MeldInstruction other) - { - int num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? 1583334064 : 1583334069); - while (true) - { - int num2 = num; - int num3 = 1583334068; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = 1583334069; - break; - case 0: - num = ((!EqualityComparer<uint>.Default.Equals(MateriaItemId, other.MateriaItemId)) ? 1583334064 : 1583334070); - break; - case 2: - return EqualityComparer<bool>.Default.Equals(IsOvermeld, other.IsOvermeld); - case 1: - num = ((!EqualityComparer<int>.Default.Equals(SlotIndex, other.SlotIndex)) ? 1583334064 : 1583334068); - break; - case 4: - return false; - } - } - } - - bool IEquatable<MeldInstruction>.Equals(MeldInstruction other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _206F_202B_202C_200C_200F_202E_206B_206B_200F_206D_200F_206E_200F_202A_202E_202B_202B_206C_202A_200C_206D_202B_200F_200F_206F_200E_202B_206F_202A_200B_206E_206D_206B_202C_202A_200F_200C_206F_202A_202C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206B_202B_200E_206B_200D_200D_206E_206E_200B_206E_206E_206C_206A_200D_200B_202E_202D_206D_206B_206C_202D_206A_206F_206A_202E_206E_206F_200F_206B_200B_206F_206E_206D_200E_202E_206C_206A_200F_200D_202C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202E_206B_202B_200B_206D_206D_200D_202D_200B_202D_206C_202C_206D_206C_202E_202D_202C_206A_202A_200D_202B_206B_206F_206E_202E_206A_200B_202E_202C_200B_206C_200B_200C_202A_202C_206C_206A_206C_206A_202A_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202A_200D_206C_206B_202A_202A_206D_200D_200B_200F_202A_202B_206C_200F_202E_206A_206C_206B_202A_202A_206B_200B_200E_202D_206C_206A_200D_202E_206E_202E_206C_202E_202D_200E_200B_202A_202E_200E_202D_206B_202E(object P_0) - { - return P_0.ToString(); - } -} +public readonly record struct MeldInstruction(uint ItemId, int SlotIndex, uint MateriaItemId, bool IsOvermeld); diff --git a/LLib/LLib.Gear/MeldSlotInfo.cs b/LLib/LLib.Gear/MeldSlotInfo.cs index 0be84ba..de417ba 100644 --- a/LLib/LLib.Gear/MeldSlotInfo.cs +++ b/LLib/LLib.Gear/MeldSlotInfo.cs @@ -1,110 +1,6 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; - namespace LLib.Gear; public readonly record struct MeldSlotInfo(int SlotIndex, uint MateriaId, byte Grade) { public bool IsEmpty => MateriaId == 0; - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206D_206A_202B_206C_202D_200F_200E_206E_202D_202D_206B_202B_202C_202C_200B_200F_206F_202E_202E_206C_206D_206E_206F_200E_202E_206B_200B_202A_206E_200B_206A_206D_202B_202E_202E_202E_206C_200F_202A_200F_202E(); - _200B_202C_202A_202C_200B_202E_202E_200E_202C_206E_206D_202D_200F_202E_200B_206B_200F_206B_202E_202C_206D_200C_206C_200D_206C_200E_200D_202E_206D_200B_206B_206A_200D_200C_200D_206E_206A_202B_206A_206C_202E(stringBuilder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-178237641)); - _200B_202C_202A_202C_200B_202E_202E_200E_202C_206E_206D_202D_200F_202E_200B_206B_200F_206B_202E_202C_206D_200C_206C_200D_206C_200E_200D_202E_206D_200B_206B_206A_200D_200C_200D_206E_206A_202B_206A_206C_202E(stringBuilder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1808631505)); - int num = ((!PrintMembers(stringBuilder)) ? (-753586067) : (-753586066)); - while (true) - { - int num2 = num; - int num3 = -753586068; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -753586066; - break; - case 1: - _202D_200E_206F_206F_202C_200D_202A_202C_202D_200C_206F_206F_206B_202B_206C_200E_206F_202C_202B_206A_206C_206B_206F_200E_206E_202A_202C_206C_206E_206C_200D_206D_206C_202C_202A_202B_202A_206E_200C_202E_202E(stringBuilder, '}'); - return _206F_202A_200E_202E_206A_206F_200F_206A_206C_206F_206D_206F_200F_200E_200E_202D_202D_206C_202C_206C_206D_206C_200F_202E_206A_200C_200D_200D_200D_206D_206C_202D_206D_200D_202C_206C_202E_200D_206A_206E_202E((object)stringBuilder); - case 2: - _202D_200E_206F_206F_202C_200D_202A_202C_202D_200C_206F_206F_206B_202B_206C_200E_206F_202C_202B_206A_206C_206B_206F_200E_206E_202A_202C_206C_206E_206C_200D_206D_206C_202C_202A_202B_202A_206E_200C_202E_202E(stringBuilder, ' '); - num = -753586067; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200B_202C_202A_202C_200B_202E_202E_200E_202C_206E_206D_202D_200F_202E_200B_206B_200F_206B_202E_202C_206D_200C_206C_200D_206C_200E_200D_202E_206D_200B_206B_206A_200D_200C_200D_206E_206A_202B_206A_206C_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1108590379)); - _200B_202C_202A_202C_200B_202E_202E_200E_202C_206E_206D_202D_200F_202E_200B_206B_200F_206B_202E_202C_206D_200C_206C_200D_206C_200E_200D_202E_206D_200B_206B_206A_200D_200C_200D_206E_206A_202B_206A_206C_202E(builder, SlotIndex.ToString()); - _200B_202C_202A_202C_200B_202E_202E_200E_202C_206E_206D_202D_200F_202E_200B_206B_200F_206B_202E_202C_206D_200C_206C_200D_206C_200E_200D_202E_206D_200B_206B_206A_200D_200C_200D_206E_206A_202B_206A_206C_202E(builder, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-548869315)); - _200B_202C_202A_202C_200B_202E_202E_200E_202C_206E_206D_202D_200F_202E_200B_206B_200F_206B_202E_202C_206D_200C_206C_200D_206C_200E_200D_202E_206D_200B_206B_206A_200D_200C_200D_206E_206A_202B_206A_206C_202E(builder, MateriaId.ToString()); - _200B_202C_202A_202C_200B_202E_202E_200E_202C_206E_206D_202D_200F_202E_200B_206B_200F_206B_202E_202C_206D_200C_206C_200D_206C_200E_200D_202E_206D_200B_206B_206A_200D_200C_200D_206E_206A_202B_206A_206C_202E(builder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1808759350)); - _200B_202C_202A_202C_200B_202E_202E_200E_202C_206E_206D_202D_200F_202E_200B_206B_200F_206B_202E_202C_206D_200C_206C_200D_206C_200E_200D_202E_206D_200B_206B_206A_200D_200C_200D_206E_206A_202B_206A_206C_202E(builder, Grade.ToString()); - _200B_202C_202A_202C_200B_202E_202E_200E_202C_206E_206D_202D_200F_202E_200B_206B_200F_206B_202E_202C_206D_200C_206C_200D_206C_200E_200D_202E_206D_200B_206B_206A_200D_200C_200D_206E_206A_202B_206A_206C_202E(builder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1359578170)); - _200B_202C_202A_202C_200B_202E_202E_200E_202C_206E_206D_202D_200F_202E_200B_206B_200F_206B_202E_202C_206D_200C_206C_200D_206C_200E_200D_202E_206D_200B_206B_206A_200D_200C_200D_206E_206A_202B_206A_206C_202E(builder, IsEmpty.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(MeldSlotInfo other) - { - int num = ((!EqualityComparer<int>.Default.Equals(SlotIndex, other.SlotIndex)) ? (-1955436948) : (-1955436946)); - while (true) - { - int num2 = num; - int num3 = -1955436945; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1955436946; - break; - case 1: - num = ((!EqualityComparer<uint>.Default.Equals(MateriaId, other.MateriaId)) ? (-1955436948) : (-1955436947)); - break; - case 3: - return false; - case 2: - return EqualityComparer<byte>.Default.Equals(Grade, other.Grade); - } - } - } - - bool IEquatable<MeldSlotInfo>.Equals(MeldSlotInfo other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _206D_206A_202B_206C_202D_200F_200E_206E_202D_202D_206B_202B_202C_202C_200B_200F_206F_202E_202E_206C_206D_206E_206F_200E_202E_206B_200B_202A_206E_200B_206A_206D_202B_202E_202E_202E_206C_200F_202A_200F_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200B_202C_202A_202C_200B_202E_202E_200E_202C_206E_206D_202D_200F_202E_200B_206B_200F_206B_202E_202C_206D_200C_206C_200D_206C_200E_200D_202E_206D_200B_206B_206A_200D_200C_200D_206E_206A_202B_206A_206C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202D_200E_206F_206F_202C_200D_202A_202C_202D_200C_206F_206F_206B_202B_206C_200E_206F_202C_202B_206A_206C_206B_206F_200E_206E_202A_202C_206C_206E_206C_200D_206D_206C_202C_202A_202B_202A_206E_200C_202E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206F_202A_200E_202E_206A_206F_200F_206A_206C_206F_206D_206F_200F_200E_200E_202D_202D_206C_202C_206C_206D_206C_200F_202E_206A_200C_200D_200D_200D_206D_206C_202D_206D_200D_202C_206C_202E_200D_206A_206E_202E(object P_0) - { - return P_0.ToString(); - } } diff --git a/LLib/LLib.Gear/RepairActions.cs b/LLib/LLib.Gear/RepairActions.cs index 756acf5..aa9ae64 100644 --- a/LLib/LLib.Gear/RepairActions.cs +++ b/LLib/LLib.Gear/RepairActions.cs @@ -1,5 +1,4 @@ using System; -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.UI; @@ -17,434 +16,157 @@ public static class RepairActions public unsafe static bool TryOpenRepairWindow() { ActionManager* ptr = ActionManager.Instance(); - int num = ((ptr != null) ? 68220505 : 68220506); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 68220504; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return ptr->UseAction(ActionType.GeneralAction, 6u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); - case 2: - return false; - case 0: - goto IL_0061; - } - continue; - IL_0061: - num = 68220506; + return false; } + return ptr->UseAction(ActionType.GeneralAction, 6u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsRepairAddonReady(IGameGui gameGui) { AtkUnitBase* addonPtr; - return gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(2048825811), out addonPtr); + return gameGui.TryGetReadyAddon<AtkUnitBase>("Repair", out addonPtr); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryRepairAll(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(419098168), out addonPtr) ? (-498234615) : (-498234614)); - while (true) + if (!gameGui.TryGetReadyAddon<AtkUnitBase>("Repair", out var addonPtr)) { - int num2 = num; - int num3 = -498234613; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0052; - case 2: - return AddonCallback.ClickButton(addonPtr, ((AddonRepair*)addonPtr)->RepairAllButton); - case 1: - return false; - } - continue; - IL_0052: - num = -498234614; + return false; } + return AddonCallback.ClickButton(addonPtr, ((AddonRepair*)addonPtr)->RepairAllButton); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryConfirmDialog(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(2048825811), out addonPtr) ? 2047386500 : 2047386499); - AtkUnitBase* addonPtr2 = default(AtkUnitBase*); - while (true) + if (!gameGui.TryGetReadyAddon<AtkUnitBase>("Repair", out var _)) { - int num2 = num; - int num3 = 2047386496; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - AddonCallback.ClickYes(addonPtr2); - return true; - case 3: - return false; - case 4: - num = (gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(423301839), out addonPtr2) ? 2047386498 : 2047386497); - break; - case 1: - return false; - case 0: - num = 2047386499; - break; - } + return false; } + if (!gameGui.TryGetReadyAddon<AtkUnitBase>("SelectYesno", out var addonPtr2)) + { + return false; + } + AddonCallback.ClickYes(addonPtr2); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static string DescribeRepairAddon(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-469715628), out addonPtr) ? 1483181869 : 1483181871); - AtkComponentButton* repairAllButton = default(AtkComponentButton*); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("Repair", out var addonPtr)) { - int num2 = num; - int num3 = 1483181870; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - string text; - string value; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler; - switch (num5 - (num6 + num6)) - { - case 2: - num = 1483181871; - break; - case 3: - repairAllButton = ((AddonRepair*)addonPtr)->RepairAllButton; - num = ((repairAllButton == null) ? 1483181864 : 1483181866); - break; - case 1: - return global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1020358053); - case 0: - text = global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1832920714); - goto IL_00eb; - case 5: - text = global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(120055411); - goto IL_00eb; - case 6: - text = global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(2048905668); - goto IL_00eb; - case 4: - { - num = (repairAllButton->IsEnabled ? 1483181867 : 1483181870); - break; - } - IL_00eb: - value = text; - defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(44, 3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-734034791)); - defaultInterpolatedStringHandler.AppendFormatted(addonPtr->IsVisible); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-199296985)); - defaultInterpolatedStringHandler.AppendFormatted(LAddon.IsAddonReady(addonPtr)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1116769434)); - defaultInterpolatedStringHandler.AppendFormatted(value); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } + return "addon: not open"; } + AtkComponentButton* repairAllButton = ((AddonRepair*)addonPtr)->RepairAllButton; + string value = ((repairAllButton == null) ? "null" : (repairAllButton->IsEnabled ? "enabled" : "disabled")); + return $"addon: visible={addonPtr->IsVisible}, ready={LAddon.IsAddonReady(addonPtr)}, repair-all button: {value}"; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryCloseRepairWindow(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1033968236), out addonPtr) ? (-405897678) : (-405897677)); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("Repair", out var addonPtr)) { - int num2 = num; - int num3 = -405897678; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0052; - case 0: - addonPtr->Close(fireCallback: true); - return true; - case 1: - return false; - } - continue; - IL_0052: - num = -405897677; + return false; } + addonPtr->Close(fireCallback: true); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TrySelectRepairFromMenu(IGameGui gameGui, int repairIndex) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetReadyAddon<AtkUnitBase>(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-779772561), out addonPtr) ? 1787787027 : 1787787024); - while (true) + if (!gameGui.TryGetReadyAddon<AtkUnitBase>("SelectIconString", out var addonPtr)) { - int num2 = num; - int num3 = 1787787025; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0052; - case 1: - return false; - case 2: - AddonCallback.FireWithUpdate(addonPtr, repairIndex); - return true; - } - continue; - IL_0052: - num = 1787787024; + return false; } + AddonCallback.FireWithUpdate(addonPtr, repairIndex); + return true; } public static int? FindRepairIndex(IDataManager dataManager, uint npcBaseId) { - ENpcBase row; - int num = (dataManager.GetExcelSheet<ENpcBase>().TryGetRow(npcBaseId, out row) ? (-1361038007) : (-1361038008)); - int num5 = default(int); - while (true) + if (!dataManager.GetExcelSheet<ENpcBase>().TryGetRow(npcBaseId, out var row)) { - int num2 = num; - int num3 = -1361038006; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return null; + } + for (int i = 0; i < row.ENpcData.Count; i++) + { + if (row.ENpcData[i].RowId == 720915) { - case 6: - { - int num6 = num5; - num3 = 1; - num4 = num6; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - num5 = num7 + (num8 + num8); - num = -1361038003; - break; - } - case 2: - return null; - case 3: - num5 = 0; - num = -1361038003; - break; - case 1: - num = ((row.ENpcData[num5].RowId != 720915) ? (-1361038004) : (-1361038002)); - break; - case 7: - num = ((num5 < row.ENpcData.Count) ? (-1361038005) : (-1361038001)); - break; - case 4: - return num5; - case 0: - num = -1361038008; - break; - case 5: - return null; + return i; } } + return null; } public static bool CanSelfRepairItem(uint itemId, IDataManager dataManager, Func<uint, byte> jobLevelLookup) { - Item row; - int num = (dataManager.GetExcelSheet<Item>().TryGetRow(itemId, out row) ? 1632671578 : 1632671580); - uint rowId = default(uint); - uint num7 = default(uint); - while (true) + if (!dataManager.GetExcelSheet<Item>().TryGetRow(itemId, out var row)) { - int num2 = num; - int num3 = 1632671577; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 7: - return false; - case 6: - { - byte num8 = jobLevelLookup(rowId); - int num9 = _206E_206F_206E_202B_202E_202E_206A_202A_202B_200F_206E_200D_200F_206C_200B_206D_206D_202E_200D_200B_200D_206C_200D_202E_206F_202B_206C_206B_206B_206B_200D_202B_206C_200F_202B_206E_202C_206C_202B_202A_202E(row.LevelEquip - 10, 1); - num = ((num8 >= num9) ? 1632671576 : 1632671581); - break; - } - case 0: - return HasDarkMatterOrBetter(dataManager, num7); - case 5: - return false; - case 2: - return false; - case 4: - return false; - case 3: - rowId = row.ClassJobRepair.RowId; - num = ((rowId != 0) ? 1632671583 : 1632671579); - break; - case 8: - num = 1632671580; - break; - case 1: - num7 = row.ItemRepair.ValueNullable?.Item.RowId ?? 0; - num = ((num7 != 0) ? 1632671577 : 1632671582); - break; - } + return false; } + uint rowId = row.ClassJobRepair.RowId; + if (rowId == 0) + { + return false; + } + byte num = jobLevelLookup(rowId); + int num2 = Math.Max(row.LevelEquip - 10, 1); + if (num < num2) + { + return false; + } + uint num3 = row.ItemRepair.ValueNullable?.Item.RowId ?? 0; + if (num3 == 0) + { + return false; + } + return HasDarkMatterOrBetter(dataManager, num3); } public unsafe static bool CanSelfRepairAny(IDataManager dataManager, Func<uint, byte> jobLevelLookup, int thresholdPercent = 100) { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? 1849138139 : 1849138142); - int num7 = default(int); - InventoryItem* inventorySlot = default(InventoryItem*); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1849138143; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return false; + } + InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(InventoryType.EquippedItems); + if (inventoryContainer == null) + { + return false; + } + for (int i = 0; i < inventoryContainer->Size; i++) + { + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(i); + if (inventorySlot != null && inventorySlot->ItemId != 0 && inventorySlot->Condition * 100 / 30000 < thresholdPercent && CanSelfRepairItem(inventorySlot->ItemId, dataManager, jobLevelLookup)) { - case 0: return true; - case 9: - num7 = 0; - num = 1849138140; - break; - case 5: - num = ((!CanSelfRepairItem(inventorySlot->ItemId, dataManager, jobLevelLookup)) ? 1849138131 : 1849138143); - break; - case 2: - num = 1849138142; - break; - case 7: - inventorySlot = inventoryContainer->GetInventorySlot(num7); - num = ((inventorySlot == null) ? 1849138131 : 1849138132); - break; - case 10: - return false; - case 6: - num = ((inventorySlot->Condition * 100 / 30000 >= thresholdPercent) ? 1849138131 : 1849138138); - break; - case 11: - num = ((inventorySlot->ItemId == 0) ? 1849138131 : 1849138137); - break; - case 8: - return false; - case 12: - { - int num8 = num7; - num3 = 1; - num4 = num8; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - num7 = num9 + (num10 + num10); - num = 1849138140; - break; - } - case 3: - num = ((num7 < inventoryContainer->Size) ? 1849138136 : 1849138133); - break; - case 4: - inventoryContainer = ptr->GetInventoryContainer(InventoryType.EquippedItems); - num = ((inventoryContainer != null) ? 1849138134 : 1849138135); - break; - case 1: - return false; } } + return false; } private unsafe static bool HasDarkMatterOrBetter(IDataManager dataManager, uint requiredItemId) { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? (-248963167) : (-248963166)); - ItemRepairResource current = default(ItemRepairResource); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -248963165; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0054; - case 1: - return false; - case 2: - { - ExcelSheet<ItemRepairResource> excelSheet = dataManager.GetExcelSheet<ItemRepairResource>(); - bool flag = false; - using (ExcelSheet<ItemRepairResource>.Enumerator enumerator = excelSheet.GetEnumerator()) - { - num = 975190741; - while (true) - { - int num7 = num; - num3 = 975190742; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 3: - num = (enumerator.MoveNext() ? 975190743 : 975190742); - break; - case 6: - flag = true; - num = 975190737; - break; - case 1: - current = enumerator.Current; - num = ((current.Item.RowId != requiredItemId) ? 975190737 : 975190736); - break; - case 5: - num = ((ptr->GetInventoryItemCount(current.Item.RowId, isHq: false, checkEquipped: true, checkArmory: true, 0) <= 0) ? 975190741 : 975190740); - break; - case 4: - num = 975190741; - break; - case 7: - num = ((!flag) ? 975190741 : 975190739); - break; - case 2: - return true; - case 0: - goto end_IL_0086; - } - continue; - end_IL_0086: - break; - } - } - return false; - } - } - continue; - IL_0054: - num = -248963166; + return false; } - } - - static int _206E_206F_206E_202B_202E_202E_206A_202A_202B_200F_206E_200D_200F_206C_200B_206D_206D_202E_200D_200B_200D_206C_200D_202E_206F_202B_206C_206B_206B_206B_200D_202B_206C_200F_202B_206E_202C_206C_202B_202A_202E(int P_0, int P_1) - { - return Math.Max(P_0, P_1); + ExcelSheet<ItemRepairResource> excelSheet = dataManager.GetExcelSheet<ItemRepairResource>(); + bool flag = false; + foreach (ItemRepairResource item in excelSheet) + { + if (item.Item.RowId == requiredItemId) + { + flag = true; + } + if (flag && ptr->GetInventoryItemCount(item.Item.RowId, isHq: false, checkEquipped: true, checkArmory: true, 0) > 0) + { + return true; + } + } + return false; } } diff --git a/LLib/LLib.Gear/SlotCondition.cs b/LLib/LLib.Gear/SlotCondition.cs index 196ad6a..06f6c88 100644 --- a/LLib/LLib.Gear/SlotCondition.cs +++ b/LLib/LLib.Gear/SlotCondition.cs @@ -1,106 +1,3 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; - namespace LLib.Gear; -public readonly record struct SlotCondition(int SlotIndex, uint ItemId, int ConditionPercent) -{ - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200E_202C_206F_200F_200F_200E_202B_202C_206F_206B_200D_206B_206C_202B_200D_200F_206D_200E_200C_200E_206A_206D_206D_202E_206A_202D_206B_206C_206D_200D_200F_202B_206D_202D_202B_200B_202C_200C_206B_206C_202E(); - _202E_206A_200B_200C_206E_200D_206F_206C_206E_202B_200D_202D_206D_200B_206F_206A_206A_202A_206F_206B_206B_202A_206D_206C_202D_206C_202B_206F_200F_206D_202D_200E_206E_202D_200F_202B_206F_200E_202B_202C_202E(stringBuilder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(401739836)); - _202E_206A_200B_200C_206E_200D_206F_206C_206E_202B_200D_202D_206D_200B_206F_206A_206A_202A_206F_206B_206B_202A_206D_206C_202D_206C_202B_206F_200F_206D_202D_200E_206E_202D_200F_202B_206F_200E_202B_202C_202E(stringBuilder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1148273145)); - int num = ((!PrintMembers(stringBuilder)) ? (-272952950) : (-272952951)); - while (true) - { - int num2 = num; - int num3 = -272952952; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - _200D_202E_200E_202A_200E_206F_206E_202B_206D_202D_206E_200C_200D_200B_200E_206A_200F_206D_206F_202B_202D_200D_202C_206C_200F_206A_202E_206E_202A_202B_200C_202C_206C_200B_202B_200C_206A_200E_206A_206F_202E(stringBuilder, '}'); - return _206D_206E_206B_206B_202B_206F_202D_200E_200C_206D_200D_200F_200D_202D_202E_206A_200E_206D_200E_206C_200E_206F_206F_202E_200F_202E_202D_206B_200D_206D_200D_202C_206D_200D_200C_206E_202A_202B_202D_202E_202E((object)stringBuilder); - case 1: - _200D_202E_200E_202A_200E_206F_206E_202B_206D_202D_206E_200C_200D_200B_200E_206A_200F_206D_206F_202B_202D_200D_202C_206C_200F_206A_202E_206E_202A_202B_200C_202C_206C_200B_202B_200C_206A_200E_206A_206F_202E(stringBuilder, ' '); - num = -272952950; - break; - case 0: - num = -272952951; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202E_206A_200B_200C_206E_200D_206F_206C_206E_202B_200D_202D_206D_200B_206F_206A_206A_202A_206F_206B_206B_202A_206D_206C_202D_206C_202B_206F_200F_206D_202D_200E_206E_202D_200F_202B_206F_200E_202B_202C_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-578928888)); - _202E_206A_200B_200C_206E_200D_206F_206C_206E_202B_200D_202D_206D_200B_206F_206A_206A_202A_206F_206B_206B_202A_206D_206C_202D_206C_202B_206F_200F_206D_202D_200E_206E_202D_200F_202B_206F_200E_202B_202C_202E(builder, SlotIndex.ToString()); - _202E_206A_200B_200C_206E_200D_206F_206C_206E_202B_200D_202D_206D_200B_206F_206A_206A_202A_206F_206B_206B_202A_206D_206C_202D_206C_202B_206F_200F_206D_202D_200E_206E_202D_200F_202B_206F_200E_202B_202C_202E(builder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(466953188)); - _202E_206A_200B_200C_206E_200D_206F_206C_206E_202B_200D_202D_206D_200B_206F_206A_206A_202A_206F_206B_206B_202A_206D_206C_202D_206C_202B_206F_200F_206D_202D_200E_206E_202D_200F_202B_206F_200E_202B_202C_202E(builder, ItemId.ToString()); - _202E_206A_200B_200C_206E_200D_206F_206C_206E_202B_200D_202D_206D_200B_206F_206A_206A_202A_206F_206B_206B_202A_206D_206C_202D_206C_202B_206F_200F_206D_202D_200E_206E_202D_200F_202B_206F_200E_202B_202C_202E(builder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1004296737)); - _202E_206A_200B_200C_206E_200D_206F_206C_206E_202B_200D_202D_206D_200B_206F_206A_206A_202A_206F_206B_206B_202A_206D_206C_202D_206C_202B_206F_200F_206D_202D_200E_206E_202D_200F_202B_206F_200E_202B_202C_202E(builder, ConditionPercent.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(SlotCondition other) - { - int num = ((!EqualityComparer<int>.Default.Equals(SlotIndex, other.SlotIndex)) ? (-1584065341) : (-1584065343)); - while (true) - { - int num2 = num; - int num3 = -1584065344; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1584065343; - break; - case 1: - num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? (-1584065341) : (-1584065342)); - break; - case 2: - return EqualityComparer<int>.Default.Equals(ConditionPercent, other.ConditionPercent); - case 3: - return false; - } - } - } - - bool IEquatable<SlotCondition>.Equals(SlotCondition other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _200E_202C_206F_200F_200F_200E_202B_202C_206F_206B_200D_206B_206C_202B_200D_200F_206D_200E_200C_200E_206A_206D_206D_202E_206A_202D_206B_206C_206D_200D_200F_202B_206D_202D_202B_200B_202C_200C_206B_206C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202E_206A_200B_200C_206E_200D_206F_206C_206E_202B_200D_202D_206D_200B_206F_206A_206A_202A_206F_206B_206B_202A_206D_206C_202D_206C_202B_206F_200F_206D_202D_200E_206E_202D_200F_202B_206F_200E_202B_202C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200D_202E_200E_202A_200E_206F_206E_202B_206D_202D_206E_200C_200D_200B_200E_206A_200F_206D_206F_202B_202D_200D_202C_206C_200F_206A_202E_206E_202A_202B_200C_202C_206C_200B_202B_200C_206A_200E_206A_206F_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206D_206E_206B_206B_202B_206F_202D_200E_200C_206D_200D_200F_200D_202D_202E_206A_200E_206D_200E_206C_200E_206F_206F_202E_200F_202E_202D_206B_200D_206D_200D_202C_206D_200D_200C_206E_202A_202B_202D_202E_202E(object P_0) - { - return P_0.ToString(); - } -} +public readonly record struct SlotCondition(int SlotIndex, uint ItemId, int ConditionPercent); diff --git a/LLib/LLib.Gear/SlotSpiritbond.cs b/LLib/LLib.Gear/SlotSpiritbond.cs index 11f8932..f43e122 100644 --- a/LLib/LLib.Gear/SlotSpiritbond.cs +++ b/LLib/LLib.Gear/SlotSpiritbond.cs @@ -1,109 +1,3 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; - namespace LLib.Gear; -public readonly record struct SlotSpiritbond(int SlotIndex, uint ItemId, int SpiritbondPercent, bool IsReady) -{ - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202D_206C_206D_200D_206C_206F_200B_202A_200D_200D_202B_202D_206E_202C_202D_200B_206A_206C_200E_200F_206A_202B_202A_200F_202E_202E_206B_202A_206C_202C_206C_206C_200E_202D_206B_206A_206E_202C_200F_202B_202E(); - _202D_202D_206E_202B_202C_200F_202E_206F_202A_206F_206E_200E_206A_202C_206D_202E_200F_206A_200C_202E_200F_206F_202B_202A_206B_202C_200E_200C_200D_200C_200B_200E_200F_202D_206A_202B_200D_206C_202D_202C_202E(stringBuilder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(2109045036)); - _202D_202D_206E_202B_202C_200F_202E_206F_202A_206F_206E_200E_206A_202C_206D_202E_200F_206A_200C_202E_200F_206F_202B_202A_206B_202C_200E_200C_200D_200C_200B_200E_200F_202D_206A_202B_200D_206C_202D_202C_202E(stringBuilder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(579144622)); - int num = ((!PrintMembers(stringBuilder)) ? (-2119618883) : (-2119618882)); - while (true) - { - int num2 = num; - int num3 = -2119618881; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -2119618882; - break; - case 1: - _202E_200F_206D_202D_206A_206B_206E_202E_200D_200F_200C_206D_206E_200C_200C_206A_200D_200B_202B_206E_200C_200C_202A_202A_200F_206C_200C_206D_206C_202C_200B_200C_200C_200C_202C_200D_206F_200B_206A_206C_202E(stringBuilder, ' '); - num = -2119618883; - break; - case 2: - _202E_200F_206D_202D_206A_206B_206E_202E_200D_200F_200C_206D_206E_200C_200C_206A_200D_200B_202B_206E_200C_200C_202A_202A_200F_206C_200C_206D_206C_202C_200B_200C_200C_200C_202C_200D_206F_200B_206A_206C_202E(stringBuilder, '}'); - return _202E_206B_202D_206B_200C_200E_202E_206B_202B_202C_202E_206A_206F_206F_206F_202E_206F_200D_206D_200B_200E_202A_206B_206C_200D_206B_202B_206B_206D_202C_200C_202D_200D_202B_202C_200E_200E_206E_200F_206A_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202D_202D_206E_202B_202C_200F_202E_206F_202A_206F_206E_200E_206A_202C_206D_202E_200F_206A_200C_202E_200F_206F_202B_202A_206B_202C_200E_200C_200D_200C_200B_200E_200F_202D_206A_202B_200D_206C_202D_202C_202E(builder, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-78434179)); - _202D_202D_206E_202B_202C_200F_202E_206F_202A_206F_206E_200E_206A_202C_206D_202E_200F_206A_200C_202E_200F_206F_202B_202A_206B_202C_200E_200C_200D_200C_200B_200E_200F_202D_206A_202B_200D_206C_202D_202C_202E(builder, SlotIndex.ToString()); - _202D_202D_206E_202B_202C_200F_202E_206F_202A_206F_206E_200E_206A_202C_206D_202E_200F_206A_200C_202E_200F_206F_202B_202A_206B_202C_200E_200C_200D_200C_200B_200E_200F_202D_206A_202B_200D_206C_202D_202C_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1773173997)); - _202D_202D_206E_202B_202C_200F_202E_206F_202A_206F_206E_200E_206A_202C_206D_202E_200F_206A_200C_202E_200F_206F_202B_202A_206B_202C_200E_200C_200D_200C_200B_200E_200F_202D_206A_202B_200D_206C_202D_202C_202E(builder, ItemId.ToString()); - _202D_202D_206E_202B_202C_200F_202E_206F_202A_206F_206E_200E_206A_202C_206D_202E_200F_206A_200C_202E_200F_206F_202B_202A_206B_202C_200E_200C_200D_200C_200B_200E_200F_202D_206A_202B_200D_206C_202D_202C_202E(builder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1225522819)); - _202D_202D_206E_202B_202C_200F_202E_206F_202A_206F_206E_200E_206A_202C_206D_202E_200F_206A_200C_202E_200F_206F_202B_202A_206B_202C_200E_200C_200D_200C_200B_200E_200F_202D_206A_202B_200D_206C_202D_202C_202E(builder, SpiritbondPercent.ToString()); - _202D_202D_206E_202B_202C_200F_202E_206F_202A_206F_206E_200E_206A_202C_206D_202E_200F_206A_200C_202E_200F_206F_202B_202A_206B_202C_200E_200C_200D_200C_200B_200E_200F_202D_206A_202B_200D_206C_202D_202C_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1842281916)); - _202D_202D_206E_202B_202C_200F_202E_206F_202A_206F_206E_200E_206A_202C_206D_202E_200F_206A_200C_202E_200F_206F_202B_202A_206B_202C_200E_200C_200D_200C_200B_200E_200F_202D_206A_202B_200D_206C_202D_202C_202E(builder, IsReady.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(SlotSpiritbond other) - { - int num = ((!EqualityComparer<int>.Default.Equals(SlotIndex, other.SlotIndex)) ? (-364855096) : (-364855094)); - while (true) - { - int num2 = num; - int num3 = -364855096; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = ((!EqualityComparer<int>.Default.Equals(SpiritbondPercent, other.SpiritbondPercent)) ? (-364855096) : (-364855093)); - break; - case 2: - num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? (-364855096) : (-364855095)); - break; - case 4: - num = -364855094; - break; - case 0: - return false; - case 3: - return EqualityComparer<bool>.Default.Equals(IsReady, other.IsReady); - } - } - } - - bool IEquatable<SlotSpiritbond>.Equals(SlotSpiritbond other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _202D_206C_206D_200D_206C_206F_200B_202A_200D_200D_202B_202D_206E_202C_202D_200B_206A_206C_200E_200F_206A_202B_202A_200F_202E_202E_206B_202A_206C_202C_206C_206C_200E_202D_206B_206A_206E_202C_200F_202B_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202D_202D_206E_202B_202C_200F_202E_206F_202A_206F_206E_200E_206A_202C_206D_202E_200F_206A_200C_202E_200F_206F_202B_202A_206B_202C_200E_200C_200D_200C_200B_200E_200F_202D_206A_202B_200D_206C_202D_202C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202E_200F_206D_202D_206A_206B_206E_202E_200D_200F_200C_206D_206E_200C_200C_206A_200D_200B_202B_206E_200C_200C_202A_202A_200F_206C_200C_206D_206C_202C_200B_200C_200C_200C_202C_200D_206F_200B_206A_206C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202E_206B_202D_206B_200C_200E_202E_206B_202B_202C_202E_206A_206F_206F_206F_202E_206F_200D_206D_200B_200E_202A_206B_206C_200D_206B_202B_206B_206D_202C_200C_202D_200D_202B_202C_200E_200E_206E_200F_206A_202E(object P_0) - { - return P_0.ToString(); - } -} +public readonly record struct SlotSpiritbond(int SlotIndex, uint ItemId, int SpiritbondPercent, bool IsReady); diff --git a/LLib/LLib.Gear/StatInfo.cs b/LLib/LLib.Gear/StatInfo.cs index 2949a1f..d9080e8 100644 --- a/LLib/LLib.Gear/StatInfo.cs +++ b/LLib/LLib.Gear/StatInfo.cs @@ -1,147 +1,6 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; - namespace LLib.Gear; public sealed record StatInfo(short EquipmentValue, short MateriaValue, bool Overcapped) { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202C_200D_206E_200F_202B_200B_200B_206C_206A_202A_202A_206B_200D_202B_206E_206C_202B_200D_206B_206E_206F_200B_206B_206A_200D_202A_206C_202C_206F_206E_200F_202B_200D_202E_206E_206A_206C_200F_202B_202D_202E(typeof(StatInfo).TypeHandle); - } - } - public short TotalValue => (short)(EquipmentValue + MateriaValue); - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202B_202A_202C_200D_202C_200C_200F_200F_206A_206A_200E_202A_200D_202D_206B_206E_200E_202B_202A_200C_202B_206A_206C_202C_206D_202B_206E_202D_200D_206A_202A_206A_200C_200E_206A_206E_206E_202E_200F_202D_202E(); - _200C_202A_206E_202A_206A_202E_202D_200E_202A_202A_200F_200F_206F_202D_200C_202C_200E_206F_202A_202D_200D_200B_202E_206E_206A_206E_206B_200B_200E_200C_202D_202D_202C_206C_200F_206A_200B_200B_202C_206F_202E(stringBuilder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1952140969)); - _200C_202A_206E_202A_206A_202E_202D_200E_202A_202A_200F_200F_206F_202D_200C_202C_200E_206F_202A_202D_200D_200B_202E_206E_206A_206E_206B_200B_200E_200C_202D_202D_202C_206C_200F_206A_200B_200B_202C_206F_202E(stringBuilder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(579144622)); - int num = ((!PrintMembers(stringBuilder)) ? 1013311267 : 1013311264); - while (true) - { - int num2 = num; - int num3 = 1013311266; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1013311264; - break; - case 2: - _200C_206C_202D_200D_200C_202E_200F_202C_206A_206A_206A_200C_206C_206C_206F_202E_202B_200D_200B_202C_202D_206F_200F_202E_206B_202E_200D_200D_206E_202D_202E_206D_206C_200C_200E_200F_206D_206F_200E_200D_202E(stringBuilder, ' '); - num = 1013311267; - break; - case 1: - _200C_206C_202D_200D_200C_202E_200F_202C_206A_206A_206A_200C_206C_206C_206F_202E_202B_200D_200B_202C_202D_206F_200F_202E_206B_202E_200D_200D_206E_202D_202E_206D_206C_200C_200E_200F_206D_206F_200E_200D_202E(stringBuilder, '}'); - return _202A_200B_206C_200E_206C_202B_202D_206F_206B_202A_200D_200F_202D_200D_202B_202A_200F_200D_200E_202B_202C_202B_202A_200F_206E_206C_206F_202E_206D_202D_202B_200C_202D_200B_202B_202A_200B_206F_200F_206E_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206D_206C_202B_206D_206F_206C_206D_202C_202D_206E_200D_200B_200E_206E_200B_200B_200E_206D_206D_200E_202E_202C_206F_202D_206C_206E_206F_206C_206A_206A_200E_206F_206E_206F_206A_200C_206A_206F_206D_200F_202E(); - _200C_202A_206E_202A_206A_202E_202D_200E_202A_202A_200F_200F_206F_202D_200C_202C_200E_206F_202A_202D_200D_200B_202E_206E_206A_206E_206B_200B_200E_200C_202D_202D_202C_206C_200F_206A_200B_200B_202C_206F_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(771577716)); - _200C_202A_206E_202A_206A_202E_202D_200E_202A_202A_200F_200F_206F_202D_200C_202C_200E_206F_202A_202D_200D_200B_202E_206E_206A_206E_206B_200B_200E_200C_202D_202D_202C_206C_200F_206A_200B_200B_202C_206F_202E(builder, EquipmentValue.ToString()); - _200C_202A_206E_202A_206A_202E_202D_200E_202A_202A_200F_200F_206F_202D_200C_202C_200E_206F_202A_202D_200D_200B_202E_206E_206A_206E_206B_200B_200E_200C_202D_202D_202C_206C_200F_206A_200B_200B_202C_206F_202E(builder, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1148322998)); - _200C_202A_206E_202A_206A_202E_202D_200E_202A_202A_200F_200F_206F_202D_200C_202C_200E_206F_202A_202D_200D_200B_202E_206E_206A_206E_206B_200B_200E_200C_202D_202D_202C_206C_200F_206A_200B_200B_202C_206F_202E(builder, MateriaValue.ToString()); - _200C_202A_206E_202A_206A_202E_202D_200E_202A_202A_200F_200F_206F_202D_200C_202C_200E_206F_202A_202D_200D_200B_202E_206E_206A_206E_206B_200B_200E_200C_202D_202D_202C_206C_200F_206A_200B_200B_202C_206F_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(2107946747)); - _200C_202A_206E_202A_206A_202E_202D_200E_202A_202A_200F_200F_206F_202D_200C_202C_200E_206F_202A_202D_200D_200B_202E_206E_206A_206E_206B_200B_200E_200C_202D_202D_202C_206C_200F_206A_200B_200B_202C_206F_202E(builder, Overcapped.ToString()); - _200C_202A_206E_202A_206A_202E_202D_200E_202A_202A_200F_200F_206F_202D_200C_202C_200E_206F_202A_202D_200D_200B_202E_206E_206A_206E_206B_200B_200E_200C_202D_202D_202C_206C_200F_206A_200B_200B_202C_206F_202E(builder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-2076013549)); - _200C_202A_206E_202A_206A_202E_202D_200E_202A_202A_200F_200F_206F_202D_200C_202C_200E_206F_202A_202D_200D_200B_202E_206E_206A_206E_206B_200B_200E_200C_202D_202D_202C_206C_200F_206A_200B_200B_202C_206F_202E(builder, TotalValue.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(StatInfo? other) - { - int num = (((object)this == other) ? 1623034008 : 1623034013); - while (true) - { - int num2 = num; - int num3 = 1623034015; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 7: - return true; - case 2: - num = (((object)other == null) ? 1623034011 : 1623034010); - break; - case 4: - return false; - case 0: - num = 1623034013; - break; - case 6: - return EqualityComparer<bool>.Default.Equals(Overcapped, other.Overcapped); - case 1: - num = ((!EqualityComparer<short>.Default.Equals(EquipmentValue, other.EquipmentValue)) ? 1623034011 : 1623034012); - break; - case 3: - num = ((!EqualityComparer<short>.Default.Equals(MateriaValue, other.MateriaValue)) ? 1623034011 : 1623034009); - break; - case 5: - num = ((!_202A_202C_206E_202E_206B_202B_202E_200B_200D_200E_200C_206D_206A_200D_206D_202B_206C_202E_206B_202D_206E_206F_206C_206A_202C_202B_206D_200B_200C_200C_200C_202D_206D_200C_206F_206D_206E_206B_200F_202E(EqualityContract, other.EqualityContract)) ? 1623034011 : 1623034014); - break; - } - } - } - - bool IEquatable<StatInfo>.Equals(StatInfo? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202C_200D_206E_200F_202B_200B_200B_206C_206A_202A_202A_206B_200D_202B_206E_206C_202B_200D_206B_206E_206F_200B_206B_206A_200D_202A_206C_202C_206F_206E_200F_202B_200D_202E_206E_206A_206C_200F_202B_202D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202B_202A_202C_200D_202C_200C_200F_200F_206A_206A_200E_202A_200D_202D_206B_206E_200E_202B_202A_200C_202B_206A_206C_202C_206D_202B_206E_202D_200D_206A_202A_206A_200C_200E_206A_206E_206E_202E_200F_202D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200C_202A_206E_202A_206A_202E_202D_200E_202A_202A_200F_200F_206F_202D_200C_202C_200E_206F_202A_202D_200D_200B_202E_206E_206A_206E_206B_200B_200E_200C_202D_202D_202C_206C_200F_206A_200B_200B_202C_206F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200C_206C_202D_200D_200C_202E_200F_202C_206A_206A_206A_200C_206C_206C_206F_202E_202B_200D_200B_202C_202D_206F_200F_202E_206B_202E_200D_200D_206E_202D_202E_206D_206C_200C_200E_200F_206D_206F_200E_200D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202A_200B_206C_200E_206C_202B_202D_206F_206B_202A_200D_200F_202D_200D_202B_202A_200F_200D_200E_202B_202C_202B_202A_200F_206E_206C_206F_202E_206D_202D_202B_200C_202D_200B_202B_202A_200B_206F_200F_206E_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206D_206C_202B_206D_206F_206C_206D_202C_202D_206E_200D_200B_200E_206E_200B_200B_200E_206D_206D_200E_202E_202C_206F_202D_206C_206E_206F_206C_206A_206A_200E_206F_206E_206F_206A_200C_206A_206F_206D_200F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _202A_202C_206E_202E_206B_202B_202E_200B_200D_200E_200C_206D_206A_200D_206D_202B_206C_202E_206B_202D_206E_206F_206C_206A_202C_202B_206D_200B_200C_200C_200C_202D_206D_200C_206F_206D_206E_206B_200F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } } diff --git a/LLib/LLib.Gear/StatPriority.cs b/LLib/LLib.Gear/StatPriority.cs index 765f623..be70c00 100644 --- a/LLib/LLib.Gear/StatPriority.cs +++ b/LLib/LLib.Gear/StatPriority.cs @@ -1,7 +1,5 @@ using System; -using System.Collections; using System.Collections.Generic; -using System.Runtime.CompilerServices; using LLib.GameData; namespace LLib.Gear; @@ -20,69 +18,14 @@ public sealed class StatPriority public float Score(EquipmentStats stats) { float num = 0f; - IEnumerator<KeyValuePair<EBaseParam, float>> enumerator = _weights.GetEnumerator(); - try + foreach (var (param, num3) in _weights) { - int num2 = -280188401; - EBaseParam param = default(EBaseParam); - float num6 = default(float); - while (true) + if (num3 != 0f) { - int num3 = num2; - int num4 = -280188405; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = -280188401; - break; - case 2: - { - enumerator.Current.Deconstruct(out var key, out var value); - param = key; - num6 = value; - num2 = ((num6 == 0f) ? (-280188401) : (-280188406)); - break; - } - case 1: - num += (float)stats.Get(param) * num6; - num2 = -280188401; - break; - case 4: - num2 = (_202C_206A_206A_200E_202C_206E_206B_200B_206A_202B_202C_206A_206B_200F_206A_206D_200C_206D_202E_200F_206B_206C_206E_202A_200B_206D_202B_202A_202C_202A_206B_206C_202D_206D_202E_206F_200C_202D_200D_206F_202E((IEnumerator)enumerator) ? (-280188407) : (-280188408)); - break; - case 3: - return num; - } - } - } - finally - { - int num2 = ((enumerator == null) ? (-1972077866) : (-1972077865)); - while (true) - { - int num7 = num2; - int num4 = -1972077866; - int num5 = num7; - int num8 = num5 + num4; - int num9 = num5 & num4; - switch (num8 - (num9 + num9)) - { - case 2: - num2 = -1972077865; - break; - case 0: - goto end_IL_00f9; - case 1: - _206B_200F_206A_200C_200F_202A_200C_206A_206F_200D_206A_206C_206A_206C_202C_202C_202A_206E_206B_202D_202E_200F_202D_206D_206E_206D_206B_200F_200D_206B_200D_202B_202A_206F_202D_206D_206C_200B_200F_206C_202E((IDisposable)enumerator); - num2 = -1972077866; - break; - } - continue; - end_IL_00f9: - break; + num += (float)stats.Get(param) * num3; } } + return num; } public static StatPriority ForJob(EClassJob job) @@ -90,155 +33,96 @@ public sealed class StatPriority EBaseParam[] relevantParams = GetRelevantParams(job); Dictionary<EBaseParam, float> dictionary = new Dictionary<EBaseParam, float>(relevantParams.Length); EBaseParam[] array = relevantParams; - int num = 0; - int num2 = 1591763655; - while (true) + foreach (EBaseParam key in array) { - int num3 = num2; - int num4 = 1591763652; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 0: - num2 = 1591763655; - break; - case 2: - { - EBaseParam key = array[num]; - dictionary[key] = 1f; - int num8 = num; - num4 = 1; - num5 = num8; - num = (num5 | num4) + (num5 & num4); - num2 = 1591763655; - break; - } - case 1: - return new StatPriority(dictionary); - case 3: - num2 = ((num < array.Length) ? 1591763654 : 1591763653); - break; - } + dictionary[key] = 1f; } + return new StatPriority(dictionary); } private static EBaseParam[] GetRelevantParams(EClassJob job) { - int num = ((!job.IsCrafter()) ? 1757392226 : 1757392244); - bool flag = default(bool); - bool flag2 = default(bool); - while (true) + if (job.IsCrafter()) { - int num2 = num; - int num3 = 1757392228; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return new EBaseParam[3] { - case 0: - { - EBaseParam[] array4 = new EBaseParam[5]; - _206A_202D_202E_200E_206C_206D_202E_206E_200B_202A_206C_206E_206E_200F_202C_202B_206C_200F_202C_202C_206E_200B_202A_202C_202C_206C_206F_202E_206B_206D_202D_206D_202D_200E_206C_200C_200E_206C_206B_206A_202E((Array)array4, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - return array4; - } - case 16: - { - EBaseParam[] array = new EBaseParam[3]; - _206A_202D_202E_200E_206C_206D_202E_206E_200B_202A_206C_206E_206E_200F_202C_202B_206C_200F_202C_202C_206E_200B_202A_202C_202C_206C_206F_202E_206B_206D_202D_206D_202D_200E_206C_200C_200E_206C_206B_206A_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - return array; - } - case 14: - { - EBaseParam[] array6 = new EBaseParam[5]; - _206A_202D_202E_200E_206C_206D_202E_206E_200B_202A_206C_206E_206E_200F_202C_202B_206C_200F_202C_202C_206E_200B_202A_202C_202C_206C_206F_202E_206B_206D_202D_206D_202D_200E_206C_200C_200E_206C_206B_206A_202E((Array)array6, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - return array6; - } - case 2: - num = ((job - 29 <= EClassJob.Gladiator) ? 1757392232 : 1757392225); - break; - case 9: - { - EBaseParam[] array7 = new EBaseParam[5]; - _206A_202D_202E_200E_206C_206D_202E_206E_200B_202A_206C_206E_206E_200F_202C_202B_206C_200F_202C_202C_206E_200B_202A_202C_202C_206C_206F_202E_206B_206D_202D_206D_202D_200E_206C_200C_200E_206C_206B_206A_202E((Array)array7, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - return array7; - } - case 13: - num = ((!job.IsTank()) ? 1757392239 : 1757392227); - break; - case 19: - { - EBaseParam[] array3 = new EBaseParam[5]; - _206A_202D_202E_200E_206C_206D_202E_206E_200B_202A_206C_206E_206E_200F_202C_202B_206C_200F_202C_202C_206E_200B_202A_202C_202C_206C_206F_202E_206B_206D_202D_206D_202D_200E_206C_200C_200E_206C_206B_206A_202E((Array)array3, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - return array3; - } - case 8: - flag = flag2; - num = 1757392229; - break; - case 4: - { - EBaseParam[] array2 = new EBaseParam[3]; - _206A_202D_202E_200E_206C_206D_202E_206E_200B_202A_206C_206E_206E_200F_202C_202B_206C_200F_202C_202C_206E_200B_202A_202C_202C_206C_206F_202E_206B_206D_202D_206D_202D_200E_206C_200C_200E_206C_206B_206A_202E((Array)array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - return array2; - } - case 3: - flag2 = false; - num = 1757392236; - break; - case 18: - num = 1757392244; - break; - case 5: - num = ((job != EClassJob.Viper) ? 1757392231 : 1757392232); - break; - case 17: - num = ((!job.IsCaster()) ? 1757392235 : 1757392228); - break; - case 15: - return Array.Empty<EBaseParam>(); - case 7: - { - EBaseParam[] array5 = new EBaseParam[7]; - _206A_202D_202E_200E_206C_206D_202E_206E_200B_202A_206C_206E_206E_200F_202C_202B_206C_200F_202C_202C_206E_200B_202A_202C_202C_206C_206F_202E_206B_206D_202D_206D_202D_200E_206C_200C_200E_206C_206B_206A_202E((Array)array5, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - return array5; - } - case 10: - num = ((!job.IsMelee()) ? 1757392245 : 1757392237); - break; - case 12: - flag2 = true; - num = 1757392236; - break; - case 1: - num = ((!flag) ? 1757392238 : 1757392247); - break; - case 11: - flag = job.IsPhysicalRanged(); - num = (flag ? 1757392229 : 1757392230); - break; - case 6: - num = ((!job.IsGatherer()) ? 1757392240 : 1757392224); - break; - case 20: - num = ((!job.IsHealer()) ? 1757392233 : 1757392234); - break; - } + EBaseParam.CP, + EBaseParam.Control, + EBaseParam.Craftsmanship + }; } - } - - static bool _202C_206A_206A_200E_202C_206E_206B_200B_206A_202B_202C_206A_206B_200F_206A_206D_200C_206D_202E_200F_206B_206C_206E_202A_200B_206D_202B_202A_202C_202A_206B_206C_202D_206D_202E_206F_200C_202D_200D_206F_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206B_200F_206A_200C_200F_202A_200C_206A_206F_200D_206A_206C_206A_206C_202C_202C_202A_206E_206B_202D_202E_200F_202D_206D_206E_206D_206B_200F_200D_206B_200D_202B_202A_206F_202D_206D_206C_200B_200F_206C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _206A_202D_202E_200E_206C_206D_202E_206E_200B_202A_206C_206E_206E_200F_202C_202B_206C_200F_202C_202C_206E_200B_202A_202C_202C_206C_206F_202E_206B_206D_202D_206D_202D_200E_206C_200C_200E_206C_206B_206A_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); + if (job.IsGatherer()) + { + return new EBaseParam[3] + { + EBaseParam.GP, + EBaseParam.Gathering, + EBaseParam.Perception + }; + } + if (job.IsHealer()) + { + return new EBaseParam[5] + { + EBaseParam.Mind, + EBaseParam.Piety, + EBaseParam.SpellSpeed, + EBaseParam.Determination, + EBaseParam.Crit + }; + } + if (job.IsTank()) + { + return new EBaseParam[7] + { + EBaseParam.Strength, + EBaseParam.Vitality, + EBaseParam.Determination, + EBaseParam.Tenacity, + EBaseParam.DirectHit, + EBaseParam.Crit, + EBaseParam.SkillSpeed + }; + } + bool flag = job.IsPhysicalRanged(); + if (!flag) + { + bool flag2 = ((job - 29 <= EClassJob.Gladiator || job == EClassJob.Viper) ? true : false); + flag = flag2; + } + if (flag) + { + return new EBaseParam[5] + { + EBaseParam.Dexterity, + EBaseParam.Determination, + EBaseParam.DirectHit, + EBaseParam.Crit, + EBaseParam.SkillSpeed + }; + } + if (job.IsMelee()) + { + return new EBaseParam[5] + { + EBaseParam.Strength, + EBaseParam.Determination, + EBaseParam.DirectHit, + EBaseParam.Crit, + EBaseParam.SkillSpeed + }; + } + if (job.IsCaster()) + { + return new EBaseParam[5] + { + EBaseParam.Intelligence, + EBaseParam.Determination, + EBaseParam.DirectHit, + EBaseParam.Crit, + EBaseParam.SpellSpeed + }; + } + return Array.Empty<EBaseParam>(); } } diff --git a/LLib/LLib.ImGui/LWindow.cs b/LLib/LLib.ImGui/LWindow.cs index e2d2256..fc3c02a 100644 --- a/LLib/LLib.ImGui/LWindow.cs +++ b/LLib/LLib.ImGui/LWindow.cs @@ -1,9 +1,11 @@ using System; +using System.Reflection; using Dalamud.Bindings.ImGui; using Dalamud.Interface.Windowing; namespace LLib.ImGui; +[Obfuscation(Feature = "-rename", Exclude = false, ApplyToMembers = true)] public abstract class LWindow : Window { private bool _initializedConfig; @@ -18,29 +20,15 @@ public abstract class LWindow : Window { get { - int num = ((!_202C_202D_206F_200C_202D_202E_200B_200E_206C_206A_200F_200F_202D_200D_200C_200B_200E_202C_200E_206C_200E_206D_202B_200D_202C_206E_200D_200E_202A_202C_202A_202B_200B_206C_206A_200D_200C_200F_202A_200F_202E()) ? 683185440 : 683185441); - while (true) + if (base.IsOpen) { - int num2 = num; - int num3 = 683185440; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0046; - case 0: - return false; - case 1: - return !_wasCollapsedLastFrame; - } - continue; - IL_0046: - num = 683185441; + return !_wasCollapsedLastFrame; } + return false; } set { - _200F_200D_206A_200C_200C_200F_206F_200F_206C_202A_200D_206F_206D_206F_206D_200D_202D_202B_202D_206B_202D_202A_202B_202A_206E_200C_206D_202E_202C_200F_206B_206F_202D_202E_202A_202D_202E_202E_202C_206F_202E(value); + base.IsOpen = value; UncollapseNextFrame = value; } } @@ -49,35 +37,17 @@ public abstract class LWindow : Window { get { - float? num = _202B_200B_200F_206E_202D_200E_200F_206B_202C_200F_206F_206E_206A_206B_200F_206C_202D_202E_200C_206B_200B_206C_202D_206C_206F_200B_206B_202E_206A_200D_206A_206D_206C_206C_202A_206A_202C_206C_206F_202E(); - int num2 = ((!num.HasValue) ? (-473648869) : (-473648872)); - float valueOrDefault = default(float); - while (true) + float? bgAlpha = base.BgAlpha; + if (bgAlpha.HasValue) { - int num3 = num2; - int num4 = -473648870; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 0: - num2 = -473648872; - break; - case 3: - return (int)_202B_202B_200E_200C_200F_200B_200D_200D_200D_206D_200B_206B_202A_202B_200C_206C_206E_206D_206A_202C_206A_202D_206D_206E_206D_200E_202A_206C_200B_200D_206F_206F_200E_200C_206B_200E_200C_206F_206D_200D_202E(100000f * valueOrDefault); - case 2: - valueOrDefault = num.GetValueOrDefault(); - num2 = -473648871; - break; - case 1: - return null; - } + float valueOrDefault = bgAlpha.GetValueOrDefault(); + return (int)MathF.Round(100000f * valueOrDefault); } + return null; } set { - _200F_202B_206C_202C_206F_200C_200B_202D_200C_206E_202C_206D_202A_206D_202C_206A_202B_202B_202C_206E_200C_206D_206E_200D_202C_200B_200D_202C_200C_200C_206B_200E_200B_200D_200C_200C_206F_200E_202C_206D_202E((float?)value / 100000f); + base.BgAlpha = (float?)value / 100000f; } } @@ -88,123 +58,54 @@ public abstract class LWindow : Window private void LoadWindowConfig() { - IPersistableWindowConfig persistableWindowConfig = this as IPersistableWindowConfig; - int num = ((persistableWindowConfig == null) ? (-1866426683) : (-1866426684)); - WindowConfig windowConfig = default(WindowConfig); - while (true) + if (!(this is IPersistableWindowConfig persistableWindowConfig)) { - int num2 = num; - int num3 = -1866426683; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - Alpha = windowConfig.Alpha; - num = -1866426685; - break; - case 4: - _202A_202A_206B_206A_202A_200B_200B_206D_206E_206A_200C_202D_206E_202B_202B_206C_202D_206A_202B_200E_202C_202D_206E_202E_200F_202B_206D_206B_206A_202A_206B_200E_206C_200E_200D_206A_206B_200B_202E_206E_202E(windowConfig.IsPinned); - num = -1866426686; - break; - case 8: - num = ((!_206F_202C_200E_206A_202C_202E_200D_202E_202E_200F_206C_200C_200C_202C_202B_200F_200E_200C_206E_200E_200D_206F_206C_202A_206C_206B_206E_202E_202B_206B_200F_202A_202E_202B_200D_206A_206E_200C_202C_202C_202E()) ? (-1866426686) : (-1866426687)); - break; - case 6: - _initializedConfig = true; - num = -1866426683; - break; - case 0: - return; - case 7: - num = ((!_202A_206A_200E_200F_202C_206F_206E_206A_206E_200C_200E_202E_202C_202B_206D_206A_206F_200B_200D_202B_206A_202C_200E_206C_206F_206D_206D_200B_206F_202D_200F_206E_206E_206D_206A_200E_202C_206C_202B_206A_202E()) ? (-1866426688) : (-1866426682)); - break; - case 3: - _200D_200B_202D_200D_200D_206F_200B_202E_200E_202A_206D_202B_206D_202B_206F_200D_200E_206C_200D_206A_206E_200B_206A_200E_200F_200C_202B_206E_206A_200C_202B_206E_206F_206A_200B_202C_202B_202C_206B_206F_202E(windowConfig.IsClickthrough); - num = -1866426688; - break; - case 1: - windowConfig = persistableWindowConfig.WindowConfig; - num = ((windowConfig == null) ? (-1866426685) : (-1866426675)); - break; - case 2: - num = -1866426684; - break; - } + return; } + WindowConfig windowConfig = persistableWindowConfig.WindowConfig; + if (windowConfig != null) + { + if (base.AllowPinning) + { + base.IsPinned = windowConfig.IsPinned; + } + if (base.AllowClickthrough) + { + base.IsClickthrough = windowConfig.IsClickthrough; + } + Alpha = windowConfig.Alpha; + } + _initializedConfig = true; } private void UpdateWindowConfig() { - IPersistableWindowConfig persistableWindowConfig = this as IPersistableWindowConfig; - int num = ((persistableWindowConfig == null) ? (-692903602) : (-692903601)); - WindowConfig windowConfig = default(WindowConfig); - bool flag = default(bool); - while (true) + if (!(this is IPersistableWindowConfig persistableWindowConfig) || Dalamud.Bindings.ImGui.ImGui.IsAnyMouseDown()) { - int num2 = num; - int num3 = -692903608; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + WindowConfig windowConfig = persistableWindowConfig.WindowConfig; + if (windowConfig != null) + { + bool flag = false; + if (base.AllowPinning && windowConfig.IsPinned != base.IsPinned) { - case 0: - num = -692903601; - break; - case 6: - return; - case 1: - windowConfig.IsPinned = _200C_202C_202B_206A_206E_202C_200C_202A_206A_206B_202D_202C_200F_200F_206C_206C_206D_206E_202D_206A_206B_200D_202C_206C_200E_206E_200F_200F_202E_206B_206C_200E_206B_202E_202A_200C_202A_206B_206F_206B_202E(); + windowConfig.IsPinned = base.IsPinned; flag = true; - num = -692903603; - break; - case 3: - num = ((windowConfig.IsClickthrough == _200C_206A_200D_200B_202B_202B_206A_202B_206A_206A_202D_202B_202E_206E_202E_200B_206B_202E_200F_202D_202C_200F_202D_200F_202C_200F_202C_206A_206E_202C_202D_200C_202C_200C_206D_206E_206B_200F_200C_206B_202E()) ? (-692903606) : (-692903604)); - break; - case 4: - windowConfig.IsClickthrough = _200C_206A_200D_200B_202B_202B_206A_202B_206A_206A_202D_202B_202E_206E_202E_200B_206B_202E_200F_202D_202C_200F_202D_200F_202C_200F_202C_206A_206E_202C_202D_200C_202C_200C_206D_206E_206B_200F_200C_206B_202E(); + } + if (base.AllowClickthrough && windowConfig.IsClickthrough != base.IsClickthrough) + { + windowConfig.IsClickthrough = base.IsClickthrough; flag = true; - num = -692903606; - break; - case 12: - flag = false; - num = ((!_206F_202C_200E_206A_202C_202E_200D_202E_202E_200F_206C_200C_200C_202C_202B_200F_200E_200C_206E_200E_200D_206F_206C_202A_206C_206B_206E_202E_202B_206B_200F_202A_202E_202B_200D_206A_206E_200C_202C_202C_202E()) ? (-692903603) : (-692903615)); - break; - case 13: + } + if (windowConfig.Alpha != Alpha) + { windowConfig.Alpha = Alpha; flag = true; - num = -692903616; - break; - case 5: - num = ((!_202A_206A_200E_200F_202C_206F_206E_206A_206E_200C_200E_202E_202C_202B_206D_206A_206F_200B_200D_202B_206A_202C_200E_206C_206F_206D_206D_200B_206F_202D_200F_206E_206E_206D_206A_200E_202C_206C_202B_206A_202E()) ? (-692903606) : (-692903605)); - break; - case 10: - windowConfig = persistableWindowConfig.WindowConfig; - num = ((windowConfig == null) ? (-692903602) : (-692903612)); - break; - case 7: - num = (_206E_206F_206B_200D_200F_202D_202A_202D_206D_200F_200B_200F_200C_202E_200E_200E_202C_206E_206C_206F_206E_202E_202C_206B_200F_202C_206E_206A_206B_206D_206D_202A_200F_206A_206C_200E_206F_200B_200C_206A_202E() ? (-692903602) : (-692903614)); - break; - case 8: - num = ((!flag) ? (-692903602) : (-692903613)); - break; - case 2: - { - int? alpha = windowConfig.Alpha; - int? alpha2 = Alpha; - bool num7 = alpha.GetValueOrDefault() == alpha2.GetValueOrDefault(); - num3 = ((alpha.HasValue == alpha2.HasValue) ? 1 : 0); - num4 = (num7 ? 1 : 0); - num = ((num4 + num3 - (num4 | num3) != 0) ? (-692903616) : (-692903611)); - break; } - case 11: + if (flag) + { persistableWindowConfig.SaveWindowConfig(); - num = -692903602; - break; - case 9: - num = ((windowConfig.IsPinned == _200C_202C_202B_206A_206E_202C_200C_202A_206A_206B_202D_202C_200F_200F_206C_206C_206D_206E_202D_206A_206B_200D_202C_206C_200E_206E_200F_200F_202E_206B_206C_200E_206B_202E_202A_200C_202A_206B_206F_206B_202E()) ? (-692903603) : (-692903607)); - break; } } } @@ -223,7 +124,7 @@ public abstract class LWindow : Window { _closeRequested = false; UncollapseNextFrame = true; - _202B_206D_200D_206C_206F_202B_202C_200F_206E_206F_206B_200D_200E_202E_202A_200E_202C_202E_206A_202C_206F_206B_206B_206C_206F_202D_200E_200D_206A_202E_200B_200F_206E_202B_202A_202C_206D_206B_200C_206E_202E(); + base.OnOpen(); } public override void Update() @@ -233,42 +134,21 @@ public abstract class LWindow : Window public override void PreDraw() { - int num = ((!_closeRequested) ? (-306664405) : (-306664404)); - while (true) + if (_closeRequested) { - int num2 = num; - int num3 = -306664406; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = (_initializedConfig ? (-306664408) : (-306664402)); - break; - case 6: - _closeRequested = false; - _200F_200D_206A_200C_200C_200F_206F_200F_206C_202A_200D_206F_206D_206F_206D_200D_202D_202B_202D_206B_202D_202A_202B_202A_206E_200C_206D_202E_202C_200F_206B_206F_202D_202E_202A_202D_202E_202E_202C_206F_202E(false); - num = -306664405; - break; - case 4: - LoadWindowConfig(); - num = -306664408; - break; - case 0: - _202E_206B_206E_206C_202C_202A_200D_202C_206E_200E_206C_206F_202B_202D_206A_206B_200F_206C_200D_206E_206A_206C_200C_200B_200B_202A_200D_200C_202A_206A_206D_206C_202A_202C_200B_200D_202E_200D_200E_202B_202E(false); - UncollapseNextFrame = false; - num = -306664407; - break; - case 5: - num = -306664404; - break; - case 3: - _200E_200F_200F_202A_206E_202D_200D_206C_206A_200D_202E_200C_200F_202D_200B_202E_200E_200D_202A_206C_206F_202E_202E_200F_200D_206E_206A_202A_206A_206B_206E_202D_202C_200F_206E_206C_206E_200C_206A_200C_202E(); - return; - case 2: - num = ((!UncollapseNextFrame) ? (-306664407) : (-306664406)); - break; - } + _closeRequested = false; + base.IsOpen = false; } + if (!_initializedConfig) + { + LoadWindowConfig(); + } + if (UncollapseNextFrame) + { + Dalamud.Bindings.ImGui.ImGui.SetNextWindowCollapsed(collapsed: false); + UncollapseNextFrame = false; + } + base.PreDraw(); } public sealed override void Draw() @@ -281,105 +161,10 @@ public abstract class LWindow : Window public override void PostDraw() { - _200B_202E_202E_206B_202B_202A_206B_200B_202D_206E_202D_200F_202B_200C_200C_200B_206A_206E_206C_206B_206E_202D_202D_206E_200C_206B_202B_206F_202E_202B_206A_206B_206D_202E_202B_206E_200B_206A_200E_200C_202E(); - int num = ((!_initializedConfig) ? (-1105315844) : (-1105315843)); - while (true) + base.PostDraw(); + if (_initializedConfig) { - int num2 = num; - int num3 = -1105315844; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1105315843; - break; - case 0: - return; - case 1: - UpdateWindowConfig(); - num = -1105315844; - break; - } + UpdateWindowConfig(); } } - - bool _202C_202D_206F_200C_202D_202E_200B_200E_206C_206A_200F_200F_202D_200D_200C_200B_200E_202C_200E_206C_200E_206D_202B_200D_202C_206E_200D_200E_202A_202C_202A_202B_200B_206C_206A_200D_200C_200F_202A_200F_202E() - { - return base.IsOpen; - } - - void _200F_200D_206A_200C_200C_200F_206F_200F_206C_202A_200D_206F_206D_206F_206D_200D_202D_202B_202D_206B_202D_202A_202B_202A_206E_200C_206D_202E_202C_200F_206B_206F_202D_202E_202A_202D_202E_202E_202C_206F_202E(bool P_0) - { - base.IsOpen = P_0; - } - - float? _202B_200B_200F_206E_202D_200E_200F_206B_202C_200F_206F_206E_206A_206B_200F_206C_202D_202E_200C_206B_200B_206C_202D_206C_206F_200B_206B_202E_206A_200D_206A_206D_206C_206C_202A_206A_202C_206C_206F_202E() - { - return base.BgAlpha; - } - - static float _202B_202B_200E_200C_200F_200B_200D_200D_200D_206D_200B_206B_202A_202B_200C_206C_206E_206D_206A_202C_206A_202D_206D_206E_206D_200E_202A_206C_200B_200D_206F_206F_200E_200C_206B_200E_200C_206F_206D_200D_202E(float P_0) - { - return MathF.Round(P_0); - } - - void _200F_202B_206C_202C_206F_200C_200B_202D_200C_206E_202C_206D_202A_206D_202C_206A_202B_202B_202C_206E_200C_206D_206E_200D_202C_200B_200D_202C_200C_200C_206B_200E_200B_200D_200C_200C_206F_200E_202C_206D_202E(float? P_0) - { - base.BgAlpha = P_0; - } - - bool _206F_202C_200E_206A_202C_202E_200D_202E_202E_200F_206C_200C_200C_202C_202B_200F_200E_200C_206E_200E_200D_206F_206C_202A_206C_206B_206E_202E_202B_206B_200F_202A_202E_202B_200D_206A_206E_200C_202C_202C_202E() - { - return base.AllowPinning; - } - - void _202A_202A_206B_206A_202A_200B_200B_206D_206E_206A_200C_202D_206E_202B_202B_206C_202D_206A_202B_200E_202C_202D_206E_202E_200F_202B_206D_206B_206A_202A_206B_200E_206C_200E_200D_206A_206B_200B_202E_206E_202E(bool P_0) - { - base.IsPinned = P_0; - } - - bool _202A_206A_200E_200F_202C_206F_206E_206A_206E_200C_200E_202E_202C_202B_206D_206A_206F_200B_200D_202B_206A_202C_200E_206C_206F_206D_206D_200B_206F_202D_200F_206E_206E_206D_206A_200E_202C_206C_202B_206A_202E() - { - return base.AllowClickthrough; - } - - void _200D_200B_202D_200D_200D_206F_200B_202E_200E_202A_206D_202B_206D_202B_206F_200D_200E_206C_200D_206A_206E_200B_206A_200E_200F_200C_202B_206E_206A_200C_202B_206E_206F_206A_200B_202C_202B_202C_206B_206F_202E(bool P_0) - { - base.IsClickthrough = P_0; - } - - static bool _206E_206F_206B_200D_200F_202D_202A_202D_206D_200F_200B_200F_200C_202E_200E_200E_202C_206E_206C_206F_206E_202E_202C_206B_200F_202C_206E_206A_206B_206D_206D_202A_200F_206A_206C_200E_206F_200B_200C_206A_202E() - { - return Dalamud.Bindings.ImGui.ImGui.IsAnyMouseDown(); - } - - bool _200C_202C_202B_206A_206E_202C_200C_202A_206A_206B_202D_202C_200F_200F_206C_206C_206D_206E_202D_206A_206B_200D_202C_206C_200E_206E_200F_200F_202E_206B_206C_200E_206B_202E_202A_200C_202A_206B_206F_206B_202E() - { - return base.IsPinned; - } - - bool _200C_206A_200D_200B_202B_202B_206A_202B_206A_206A_202D_202B_202E_206E_202E_200B_206B_202E_200F_202D_202C_200F_202D_200F_202C_200F_202C_206A_206E_202C_202D_200C_202C_200C_206D_206E_206B_200F_200C_206B_202E() - { - return base.IsClickthrough; - } - - void _202B_206D_200D_206C_206F_202B_202C_200F_206E_206F_206B_200D_200E_202E_202A_200E_202C_202E_206A_202C_206F_206B_206B_206C_206F_202D_200E_200D_206A_202E_200B_200F_206E_202B_202A_202C_206D_206B_200C_206E_202E() - { - base.OnOpen(); - } - - static void _202E_206B_206E_206C_202C_202A_200D_202C_206E_200E_206C_206F_202B_202D_206A_206B_200F_206C_200D_206E_206A_206C_200C_200B_200B_202A_200D_200C_202A_206A_206D_206C_202A_202C_200B_200D_202E_200D_200E_202B_202E(bool P_0) - { - Dalamud.Bindings.ImGui.ImGui.SetNextWindowCollapsed(P_0); - } - - void _200E_200F_200F_202A_206E_202D_200D_206C_206A_200D_202E_200C_200F_202D_200B_202E_200E_200D_202A_206C_206F_202E_202E_200F_200D_206E_206A_202A_206A_206B_206E_202D_202C_200F_206E_206C_206E_200C_206A_200C_202E() - { - base.PreDraw(); - } - - void _200B_202E_202E_206B_202B_202A_206B_200B_202D_206E_202D_200F_202B_200C_200C_200B_206A_206E_206C_206B_206E_202D_202D_206E_200C_206B_202B_206F_202E_202B_206A_206B_206D_202E_202B_206E_200B_206A_200E_200C_202E() - { - base.PostDraw(); - } } diff --git a/LLib/LLib.ImGui/MapPolygonEditor.cs b/LLib/LLib.ImGui/MapPolygonEditor.cs index 0c87690..bc4d20b 100644 --- a/LLib/LLib.ImGui/MapPolygonEditor.cs +++ b/LLib/LLib.ImGui/MapPolygonEditor.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Dalamud.Bindings.ImGui; using Dalamud.Interface.Textures.TextureWraps; @@ -81,215 +80,96 @@ public sealed class MapPolygonEditor _offset = Vector2.Zero; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Draw(IEditablePolygonSet polygons, Vector3? playerPosition, Vector2? size = null) { - Vector2 vector = _202A_200B_202A_206D_202C_202C_202E_200C_202D_202E_200C_206D_206F_202A_206B_206E_200E_200F_206F_206A_206A_202B_202C_200F_200D_200F_202D_200F_200B_200C_202C_202D_200D_202C_200B_200D_202A_200B_206D_206B_202E(); - Vector2? vector2 = size; - int num = (vector2.HasValue ? 1179262283 : 1179262292); - ImDrawListPtr drawList = default(ImDrawListPtr); - Vector2 vector3 = default(Vector2); - Vector2 vector4 = default(Vector2); - bool flag = default(bool); - int nearVertexIndex = default(int); - Vector2 vector5 = default(Vector2); - Vector2 vector6 = default(Vector2); - IDalamudTextureWrap textureWrap = default(IDalamudTextureWrap); - while (true) + Vector2 contentRegionAvail = Dalamud.Bindings.ImGui.ImGui.GetContentRegionAvail(); + Vector2 size2 = size ?? new Vector2(contentRegionAvail.X, MathF.Max(contentRegionAvail.Y, 400f)); + if (!Dalamud.Bindings.ImGui.ImGui.BeginChild("##MapPolygonEditor", size2, border: true)) { - int num2 = num; - int num3 = 1179262298; - int num4 = num2; - Vector2 vector7; - Vector2 vector8; - switch ((num4 | num3) - (num4 & num3)) - { - case 10: - num = ((!_isDrawing) ? 1179262280 : 1179262301); - break; - case 7: - DrawPolygonInProgress(drawList, vector3, vector4); - num = 1179262280; - break; - case 18: - HandleMouseInput(polygons, vector3, vector4, flag); - HandleDrawingInput(polygons, vector3, vector4, flag); - _206C_202E_202E_202C_202E_202B_206C_206D_202C_206B_206F_206B_202B_206C_206D_200B_206E_200B_206D_202D_206B_202C_200C_206A_206B_206B_206C_206A_200B_200B_200B_202B_200B_202E_206D_200B_206A_200D_202B_206E_202E(); - return; - case 8: - HandleVertexDrag(polygons, vector3, vector4, flag, nearVertexIndex); - num = (_isDraggingVertex ? 1179262291 : 1179262299); - break; - case 1: - HandlePanZoom(vector5, vector6, flag); - num = 1179262291; - break; - case 5: - _206D_202C_202B_206C_202B_200D_202B_200E_202E_206F_202E_200D_200B_202B_206A_202E_200F_206D_202A_206F_200F_200B_202D_200B_206A_202E_206E_202D_202E_200D_206C_200F_206C_202D_202C_202B_202B_200F_206D_206E_202E((ImU8String)global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-2135402966)); - num = 1179262294; - break; - case 17: - vector7 = vector2.GetValueOrDefault(); - goto IL_0167; - case 0: - _206D_202C_202B_206C_202B_200D_202B_200E_202E_206F_202E_200D_200B_202B_206A_202E_200F_206D_202A_206F_200F_200B_202D_200B_206A_202E_206E_202D_202E_200D_206C_200F_206C_202D_202C_202B_202B_200F_206D_206E_202E((ImU8String)global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1849117165)); - num = 1179262294; - break; - case 19: - num = ((SelectedIndex >= polygons.PolygonCount) ? 1179262290 : 1179262300); - break; - case 12: - _206C_202E_202E_202C_202E_202B_206C_206D_202C_206B_206F_206B_202B_206C_206D_200B_206E_200B_206D_202D_206B_202C_200C_206A_206B_206B_206C_206A_200B_200B_200B_202B_200B_202E_206D_200B_206A_200D_202B_206E_202E(); - return; - case 14: - vector7 = new Vector2(vector.X, _206A_202A_200D_202A_206E_202A_202E_200B_206E_200E_202A_206B_202A_202C_200D_206C_200F_206D_206B_206D_200F_200C_202D_206F_202A_202A_206E_206F_206C_202B_206D_202E_206B_206D_200D_200E_200B_200F_200F_200D_202E(vector.Y, 400f)); - goto IL_0167; - case 6: - { - IList<Vector2> vertices = polygons.GetVertices(SelectedIndex); - nearVertexIndex = FindNearestVertexHandle(vertices, vector3, vector4); - num = 1179262290; - break; - } - case 13: - vector5 = _200D_206C_202C_202A_200F_200F_200F_200D_202E_202E_200F_206C_200E_200B_206C_200E_206A_202A_202E_200D_202D_200F_200D_202B_200C_206D_200D_202A_202E_202C_202A_202A_206F_202E_200E_200E_202E_200C_206F_206C_202E(); - vector6 = _202A_200B_202A_206D_202C_202C_202E_200C_202D_202E_200C_206D_206F_202A_206B_206E_200E_200F_206F_206A_206A_202B_202C_200F_200D_200F_202D_200F_200B_200C_202C_202D_200D_202C_200B_200D_202A_200B_206D_206B_202E(); - _206E_200D_206A_202C_202D_206B_202B_206B_202A_206F_200F_206C_206A_202C_200B_202E_200F_206C_202C_202A_200F_202C_206E_206D_202A_206A_200E_202E_200F_200E_206E_206D_202D_202B_206F_206B_200D_200E_206D_206F_202E((ImU8String)global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1669427471), vector6, ImGuiButtonFlags.None); - flag = _200D_200B_206C_202A_202C_206F_200C_202E_200F_202C_202E_200E_202A_202A_206C_200B_206F_200D_202A_206D_202B_202B_202A_206F_206F_206C_202E_206D_202B_200C_206C_206C_200E_200C_206F_202E_206F_206B_200F_200D_202E(); - textureWrap = _mapService.GetTextureWrap(); - num = ((textureWrap != null) ? 1179262282 : 1179262297); - break; - case 2: - num = ((SelectedIndex < 0) ? 1179262290 : 1179262281); - break; - case 9: - vector3 = vector5 + _offset + vector6 * 0.5f - vector4 * 0.5f; - drawList = _200B_200C_202B_202C_206F_206E_206A_202B_200B_202D_202D_206D_202C_200B_202B_200F_206E_206C_206D_202D_206E_200F_206A_200E_202D_206F_200C_200F_202D_202A_202A_202C_202E_206B_202C_206D_202C_202A_202D_202E_202E(); - drawList.AddImage(_200B_202A_202D_202A_200B_206F_202A_200D_206A_202C_206B_206F_206C_206E_206C_202C_206D_206F_202E_206A_202C_202E_206A_202C_206B_206B_202C_202B_206A_206F_206F_206D_200E_206C_200F_202B_206B_206E_202B_200E_202E(textureWrap), vector3, vector3 + vector4); - DrawPolygons(drawList, polygons, vector3, vector4); - num = ((!playerPosition.HasValue) ? 1179262288 : 1179262293); - break; - case 11: - num = 1179262292; - break; - case 3: - _202B_206C_200F_200F_200D_202C_206D_200C_200B_200D_202A_202D_206F_202B_206E_206C_202B_200D_206D_202E_206A_202A_200B_206B_202B_206E_200C_200C_200D_206C_202D_206A_202B_206F_200D_200F_202C_202B_206D_200E_202E(vector5 + new Vector2(8f, 8f)); - num = ((!_mapService.IsSearching) ? 1179262303 : 1179262298); - break; - case 16: - { - float value = 2048f * _zoom; - vector4 = new Vector2(value); - vector3 = vector5 + _offset + vector6 * 0.5f - vector4 * 0.5f; - nearVertexIndex = -1; - num = (_isDrawing ? 1179262290 : 1179262296); - break; - } - case 4: - _206C_202E_202E_202C_202E_202B_206C_206D_202C_206B_206F_206B_202B_206C_206D_200B_206E_200B_206D_202D_206B_202C_200C_206A_206B_206B_206C_206A_200B_200B_200B_202B_200B_202E_206D_200B_206A_200D_202B_206E_202E(); - return; - case 15: - { - Vector3 valueOrDefault = playerPosition.GetValueOrDefault(); - Vector2 center = _mapService.WorldToScreen(valueOrDefault.X, valueOrDefault.Z, vector3, vector4); - drawList.AddCircleFilled(center, 4f, 4278255360u); - drawList.AddCircle(center, 6f, 4278190080u); - num = 1179262288; - break; - } - IL_0167: - vector8 = vector7; - num = (_206A_202A_202E_206F_202E_200F_200E_202E_206A_206D_206D_202E_200D_202D_206C_202A_200E_202E_206B_202B_200C_202A_206E_200B_206E_202A_206F_206E_202C_200B_200B_202A_206A_206B_202A_206B_202C_202B_202C_202A_202E((ImU8String)global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1901948127), vector8, true, ImGuiWindowFlags.None) ? 1179262295 : 1179262302); - break; - } + Dalamud.Bindings.ImGui.ImGui.EndChild(); + return; } + Vector2 cursorScreenPos = Dalamud.Bindings.ImGui.ImGui.GetCursorScreenPos(); + Vector2 contentRegionAvail2 = Dalamud.Bindings.ImGui.ImGui.GetContentRegionAvail(); + Dalamud.Bindings.ImGui.ImGui.InvisibleButton("##MapCapture", contentRegionAvail2); + bool flag = Dalamud.Bindings.ImGui.ImGui.IsItemHovered(); + IDalamudTextureWrap textureWrap = _mapService.GetTextureWrap(); + if (textureWrap == null) + { + Dalamud.Bindings.ImGui.ImGui.SetCursorScreenPos(cursorScreenPos + new Vector2(8f, 8f)); + if (_mapService.IsSearching) + { + Dalamud.Bindings.ImGui.ImGui.TextDisabled("Loading map texture..."); + } + else + { + Dalamud.Bindings.ImGui.ImGui.TextDisabled("No map texture available."); + } + Dalamud.Bindings.ImGui.ImGui.EndChild(); + return; + } + float value = 2048f * _zoom; + Vector2 vector = new Vector2(value); + Vector2 imagePos = cursorScreenPos + _offset + contentRegionAvail2 * 0.5f - vector * 0.5f; + int nearVertexIndex = -1; + if (!_isDrawing && SelectedIndex >= 0 && SelectedIndex < polygons.PolygonCount) + { + IList<Vector2> vertices = polygons.GetVertices(SelectedIndex); + nearVertexIndex = FindNearestVertexHandle(vertices, imagePos, vector); + } + HandleVertexDrag(polygons, imagePos, vector, flag, nearVertexIndex); + if (!_isDraggingVertex) + { + HandlePanZoom(cursorScreenPos, contentRegionAvail2, flag); + } + imagePos = cursorScreenPos + _offset + contentRegionAvail2 * 0.5f - vector * 0.5f; + ImDrawListPtr windowDrawList = Dalamud.Bindings.ImGui.ImGui.GetWindowDrawList(); + windowDrawList.AddImage(textureWrap.Handle, imagePos, imagePos + vector); + DrawPolygons(windowDrawList, polygons, imagePos, vector); + if (playerPosition.HasValue) + { + Vector3 valueOrDefault = playerPosition.GetValueOrDefault(); + Vector2 center = _mapService.WorldToScreen(valueOrDefault.X, valueOrDefault.Z, imagePos, vector); + windowDrawList.AddCircleFilled(center, 4f, 4278255360u); + windowDrawList.AddCircle(center, 6f, 4278190080u); + } + if (_isDrawing) + { + DrawPolygonInProgress(windowDrawList, imagePos, vector); + } + HandleMouseInput(polygons, imagePos, vector, flag); + HandleDrawingInput(polygons, imagePos, vector, flag); + Dalamud.Bindings.ImGui.ImGui.EndChild(); } private void DrawPolygons(ImDrawListPtr drawList, IEditablePolygonSet polygons, Vector2 imagePos, Vector2 imageSizeVec) { - int num = 0; - int num2 = 1957768774; - IList<Vector2> vertices = default(IList<Vector2>); - string label = default(string); - while (true) + for (int i = 0; i < polygons.PolygonCount; i++) { - int num3 = num2; - int num4 = 1957768782; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + IList<Vector2> vertices = polygons.GetVertices(i); + if (vertices.Count >= 3) { - case 5: - num2 = 1957768774; - break; - case 6: - vertices = polygons.GetVertices(num); - num2 = ((vertices.Count < 3) ? 1957768778 : 1957768777); - break; - case 8: - num2 = ((num < polygons.PolygonCount) ? 1957768776 : 1957768781); - break; - case 1: - DrawVertexHandles(drawList, vertices, imagePos, imageSizeVec); - num2 = 1957768780; - break; - case 4: - { - int num12 = num; - num4 = 1; - num5 = num12; - int num13 = num5 ^ num4; - int num14 = num5 & num4; - num = num13 + (num14 + num14); - num2 = 1957768774; - break; - } - case 2: - label = polygons.GetLabel(num); - num2 = (_206C_200B_206A_206F_200D_206E_202D_206B_206C_206F_200E_200E_202E_200B_206F_206B_202B_202B_200D_200B_202C_206B_202A_206D_200F_202B_202C_206D_202E_200C_206A_202B_200D_202C_202E_202A_202C_200E_206E_202C_202E(label) ? 1957768778 : 1957768782); - break; - case 7: - { - uint num6 = polygons.GetColor(num); - bool num7 = num == SelectedIndex; - if (num7) + uint num = polygons.GetColor(i); + bool num2 = i == SelectedIndex; + if (num2) { - uint num8 = num6; - num4 = 16777215; - num5 = (int)num8; - int num9 = num5 + num4 - (num5 | num4); - num4 = -1879048192; - num5 = num9; - num6 = (uint)((num5 & num4) + (num5 ^ num4)); + num = (num & 0xFFFFFF) | 0x90000000u; } - DrawFilledPolygon(drawList, vertices, imagePos, imageSizeVec, num6); - float thickness = (num7 ? 3f : 1f); - int num11; - if (!num7) - { - uint num10 = num6; - num4 = -16777216; - num5 = (int)num10; - num11 = num5 + num4 - (num5 & num4); - } - else - { - num11 = -1; - } - uint color = (uint)num11; + DrawFilledPolygon(drawList, vertices, imagePos, imageSizeVec, num); + float thickness = (num2 ? 3f : 1f); + uint color = (num2 ? uint.MaxValue : (num | 0xFF000000u)); DrawPolygonBorder(drawList, vertices, imagePos, imageSizeVec, color, thickness); - num2 = ((!num7) ? 1957768780 : 1957768783); - break; - } - case 3: - return; - case 0: - { - Vector2 vector = ComputeCentroid(vertices); - Vector2 pos = _mapService.WorldToScreen(vector.X, vector.Y, imagePos, imageSizeVec); - drawList.AddText(pos, uint.MaxValue, label); - num2 = 1957768778; - break; - } + if (num2) + { + DrawVertexHandles(drawList, vertices, imagePos, imageSizeVec); + } + string label = polygons.GetLabel(i); + if (!string.IsNullOrEmpty(label)) + { + Vector2 vector = ComputeCentroid(vertices); + Vector2 pos = _mapService.WorldToScreen(vector.X, vector.Y, imagePos, imageSizeVec); + drawList.AddText(pos, uint.MaxValue, label); + } } } } @@ -297,113 +177,36 @@ public sealed class MapPolygonEditor private void DrawFilledPolygon(ImDrawListPtr drawList, IList<Vector2> verts, Vector2 imagePos, Vector2 imageSizeVec, uint color) { Vector2[] array = new Vector2[verts.Count]; - int num = 0; - int num2 = 303773687; - int num9 = default(int); - int num8 = default(int); - bool flag = default(bool); - List<int> list = default(List<int>); - float polySignedArea = default(float); - int num13 = default(int); - int num14 = default(int); - int num15 = default(int); - while (true) + for (int i = 0; i < verts.Count; i++) { - int num3 = num2; - int num4 = 303773680; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) + array[i] = _mapService.WorldToScreen(verts[i].X, verts[i].Y, imagePos, imageSizeVec); + } + List<int> list = new List<int>(verts.Count); + for (int j = 0; j < verts.Count; j++) + { + list.Add(j); + } + float polySignedArea = SignedArea(array, list); + while (list.Count > 2) + { + bool flag = false; + for (int k = 0; k < list.Count; k++) { - case 14: - { - int num16 = num9; - num4 = 1; - num5 = num16; - int num17 = num5 ^ num4; - int num18 = num5 & num4; - num9 = num17 + (num18 + num18); - num2 = 303773689; - break; + int index = (k - 1 + list.Count) % list.Count; + int index2 = (k + 1) % list.Count; + int num = list[index]; + int num2 = list[k]; + int num3 = list[index2]; + if (IsEar(array, list, num, num2, num3, polySignedArea)) + { + drawList.AddTriangleFilled(array[num], array[num2], array[num3], color); + list.RemoveAt(k); + flag = true; + break; + } } - case 11: + if (!flag) { - array[num] = _mapService.WorldToScreen(verts[num].X, verts[num].Y, imagePos, imageSizeVec); - int num10 = num; - num4 = 1; - num5 = num10; - num = (num5 | num4) + (num5 & num4); - num2 = 303773687; - break; - } - case 6: - num2 = ((num8 < verts.Count) ? 303773683 : 303773688); - break; - case 2: - flag = false; - num9 = 0; - num2 = 303773689; - break; - case 3: - { - list.Add(num8); - int num19 = num8; - num4 = 1; - num5 = num19; - int num20 = num5 ^ num4; - int num21 = num5 & num4; - num8 = num20 + (num21 + num21); - num2 = 303773686; - break; - } - case 12: - num2 = ((list.Count > 2) ? 303773682 : 303773680); - break; - case 4: - num2 = 303773687; - break; - case 5: - num2 = ((!flag) ? 303773680 : 303773692); - break; - case 8: - polySignedArea = SignedArea(array, list); - num2 = 303773692; - break; - case 0: - return; - case 10: - list = new List<int>(verts.Count); - num8 = 0; - num2 = 303773686; - break; - case 13: - drawList.AddTriangleFilled(array[num13], array[num14], array[num15], color); - list.RemoveAt(num9); - flag = true; - num2 = 303773685; - break; - case 1: - { - int num11 = num9; - num4 = 1; - num5 = num11; - int index = (~(~num5 + num4) + list.Count) % list.Count; - int num12 = num9; - num4 = 1; - num5 = num12; - int index2 = ((num5 | num4) + (num5 & num4)) % list.Count; - num13 = list[index]; - num14 = list[num9]; - num15 = list[index2]; - num2 = ((!IsEar(array, list, num13, num14, num15, polySignedArea)) ? 303773694 : 303773693); - break; - } - case 9: - num2 = ((num9 < list.Count) ? 303773681 : 303773685); - break; - case 7: - num2 = ((num < verts.Count) ? 303773691 : 303773690); break; } } @@ -412,44 +215,13 @@ public sealed class MapPolygonEditor private static float SignedArea(Vector2[] verts, List<int> indices) { float num = 0f; - int num2 = 0; - int num3 = 747837533; - while (true) + for (int i = 0; i < indices.Count; i++) { - int num4 = num3; - int num5 = 747837535; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) - { - case 1: - return num; - case 3: - { - Vector2 vector = verts[indices[num2]]; - int num9 = num2; - num5 = 1; - num6 = num9; - Vector2 vector2 = verts[indices[((num6 | num5) + (num6 & num5)) % indices.Count]]; - num += (vector2.X - vector.X) * (vector2.Y + vector.Y); - int num10 = num2; - num5 = 1; - num6 = num10; - int num11 = num6 ^ num5; - int num12 = num6 & num5; - num2 = num11 + (num12 + num12); - num3 = 747837533; - break; - } - case 2: - num3 = ((num2 < indices.Count) ? 747837532 : 747837534); - break; - case 0: - num3 = 747837533; - break; - } + Vector2 vector = verts[indices[i]]; + Vector2 vector2 = verts[indices[(i + 1) % indices.Count]]; + num += (vector2.X - vector.X) * (vector2.Y + vector.Y); } + return num; } private static bool IsEar(Vector2[] verts, List<int> indices, int prev, int curr, int next, float polySignedArea) @@ -458,76 +230,22 @@ public sealed class MapPolygonEditor Vector2 vector2 = verts[curr]; Vector2 vector3 = verts[next]; float num = Cross2D(vector2 - vector, vector3 - vector); - int num2 = ((!(polySignedArea > 0f)) ? (-640455158) : (-640455157)); - int current = default(int); - while (true) + if (polySignedArea > 0f && num >= 0f) { - int num3 = num2; - int num4 = -640455158; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + return false; + } + if (polySignedArea <= 0f && num <= 0f) + { + return false; + } + foreach (int index in indices) + { + if (index != prev && index != curr && index != next && PointInTriangle(verts[index], vector, vector2, vector3)) { - case 3: - num2 = ((!(num <= 0f)) ? (-640455153) : (-640455160)); - break; - case 1: - num2 = ((!(num >= 0f)) ? (-640455158) : (-640455156)); - break; - case 4: - num2 = -640455157; - break; - case 0: - num2 = ((!(polySignedArea <= 0f)) ? (-640455153) : (-640455159)); - break; - case 2: return false; - case 6: - return false; - case 5: - { - using (List<int>.Enumerator enumerator = indices.GetEnumerator()) - { - num2 = -95069085; - while (true) - { - int num6 = num2; - num4 = -95069086; - num5 = num6; - switch ((num5 | num4) - (num5 & num4)) - { - case 1: - num2 = (enumerator.MoveNext() ? (-95069087) : (-95069082)); - break; - case 5: - num2 = ((current == curr) ? (-95069085) : (-95069088)); - break; - case 6: - return false; - case 3: - current = enumerator.Current; - num2 = ((current == prev) ? (-95069085) : (-95069081)); - break; - case 0: - num2 = -95069085; - break; - case 2: - num2 = ((current == next) ? (-95069085) : (-95069083)); - break; - case 7: - num2 = ((!PointInTriangle(verts[current], vector, vector2, vector3)) ? (-95069085) : (-95069084)); - break; - case 4: - goto end_IL_011b; - } - continue; - end_IL_011b: - break; - } - } - return true; - } } } + return true; } private static bool PointInTriangle(Vector2 p, Vector2 a, Vector2 b, Vector2 c) @@ -536,37 +254,8 @@ public sealed class MapPolygonEditor float num2 = Cross2D(p - b, c - b); float num3 = Cross2D(p - c, a - c); bool flag = num < 0f || num2 < 0f || num3 < 0f; - int num4 = ((num > 0f) ? (-1226120995) : (-1226120996)); - while (true) - { - int num5 = num4; - int num6 = -1226120994; - int num7 = num5; - int num8; - bool flag2; - switch ((num7 | num6) - (num7 & num6)) - { - case 3: - num8 = 1; - goto IL_00b3; - case 1: - num8 = ((num3 > 0f) ? 1 : 0); - goto IL_00b3; - case 2: - num4 = ((num2 > 0f) ? (-1226120995) : (-1226120993)); - break; - case 0: - { - num4 = -1226120996; - break; - } - IL_00b3: - flag2 = (byte)num8 != 0; - num6 = (flag2 ? 1 : 0); - num7 = (flag ? 1 : 0); - return (num7 | num6) - (num7 ^ num6) == 0; - } - } + bool flag2 = num > 0f || num2 > 0f || num3 > 0f; + return !(flag && flag2); } private static float Cross2D(Vector2 a, Vector2 b) @@ -576,44 +265,12 @@ public sealed class MapPolygonEditor private void DrawPolygonBorder(ImDrawListPtr drawList, IList<Vector2> verts, Vector2 imagePos, Vector2 imageSizeVec, uint color, float thickness) { - int num = 0; - int num2 = -1536705379; - while (true) + for (int i = 0; i < verts.Count; i++) { - int num3 = num2; - int num4 = -1536705377; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 3: - num2 = -1536705379; - break; - case 0: - return; - case 2: - num2 = ((num < verts.Count) ? (-1536705378) : (-1536705377)); - break; - case 1: - { - int num8 = num; - num4 = 1; - num5 = num8; - int num9 = num5 ^ num4; - int num10 = num5 & num4; - int index = (num9 + (num10 + num10)) % verts.Count; - Vector2 p = _mapService.WorldToScreen(verts[num].X, verts[num].Y, imagePos, imageSizeVec); - Vector2 p2 = _mapService.WorldToScreen(verts[index].X, verts[index].Y, imagePos, imageSizeVec); - drawList.AddLine(p, p2, color, thickness); - int num11 = num; - num4 = 1; - num5 = num11; - num = (num5 | num4) + (num5 & num4); - num2 = -1536705379; - break; - } - } + int index = (i + 1) % verts.Count; + Vector2 p = _mapService.WorldToScreen(verts[i].X, verts[i].Y, imagePos, imageSizeVec); + Vector2 p2 = _mapService.WorldToScreen(verts[index].X, verts[index].Y, imagePos, imageSizeVec); + drawList.AddLine(p, p2, color, thickness); } } @@ -621,587 +278,223 @@ public sealed class MapPolygonEditor { _hoveredVertexIndex = FindNearestVertexHandle(verts, imagePos, imageSizeVec); _hoveredEdgeIndex = -1; - int num = ((_hoveredVertexIndex >= 0) ? (-717290128) : (-717290123)); - int num8 = default(int); - Vector2 center = default(Vector2); - uint col = default(uint); - Vector2 center2 = default(Vector2); - uint col2 = default(uint); - while (true) + if (_hoveredVertexIndex < 0 && !_isDraggingVertex) { - int num2 = num; - int num3 = -717290126; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - float num12; - float num13; - float radius; - Vector2 vector2; - bool num14; - float radius2; - int num15; - switch (num5 - (num6 + num6)) - { - case 3: - num = -717290123; - break; - case 7: - num = (_isDraggingVertex ? (-717290128) : (-717290124)); - break; - case 0: - num = ((num8 < verts.Count) ? (-717290122) : (-717290125)); - break; - case 1: - return; - case 10: - num12 = 7f; - goto IL_00e2; - case 6: - _hoveredEdgeIndex = FindNearestEdgeMidpoint(verts, imagePos, imageSizeVec); - num = -717290128; - break; - case 5: - num12 = 5f; - goto IL_00e2; - case 9: - num13 = 6f; - goto IL_0156; - case 8: - num13 = 4f; - goto IL_0156; - case 2: - num8 = 0; - num = -717290126; - break; - case 4: - { - int num7 = num8; - num3 = 1; - num4 = num7; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - int index = (num9 + (num10 + num10)) % verts.Count; - Vector2 vector = (verts[num8] + verts[index]) / 2f; - center = _mapService.WorldToScreen(vector.X, vector.Y, imagePos, imageSizeVec); - bool num11 = num8 == _hoveredEdgeIndex; - col = (num11 ? 4278255615u : 2164260863u); - num = (num11 ? (-717290117) : (-717290118)); - break; - } - IL_0156: - radius = num13; - drawList.AddCircleFilled(center, radius, col); - vector2 = verts[num8]; - center2 = _mapService.WorldToScreen(vector2.X, vector2.Y, imagePos, imageSizeVec); - num14 = num8 == _hoveredVertexIndex; - col2 = (num14 ? 4278255615u : uint.MaxValue); - num = (num14 ? (-717290120) : (-717290121)); - break; - IL_00e2: - radius2 = num12; - drawList.AddCircleFilled(center2, radius2, col2); - drawList.AddCircle(center2, radius2, 4278190080u); - num15 = num8; - num3 = 1; - num4 = num15; - num8 = (num4 | num3) + (num4 & num3); - num = -717290126; - break; - } + _hoveredEdgeIndex = FindNearestEdgeMidpoint(verts, imagePos, imageSizeVec); + } + for (int i = 0; i < verts.Count; i++) + { + int index = (i + 1) % verts.Count; + Vector2 vector = (verts[i] + verts[index]) / 2f; + Vector2 center = _mapService.WorldToScreen(vector.X, vector.Y, imagePos, imageSizeVec); + bool num = i == _hoveredEdgeIndex; + uint col = (num ? 4278255615u : 2164260863u); + float radius = (num ? 6f : 4f); + drawList.AddCircleFilled(center, radius, col); + Vector2 vector2 = verts[i]; + Vector2 center2 = _mapService.WorldToScreen(vector2.X, vector2.Y, imagePos, imageSizeVec); + bool num2 = i == _hoveredVertexIndex; + uint col2 = (num2 ? 4278255615u : uint.MaxValue); + float radius2 = (num2 ? 7f : 5f); + drawList.AddCircleFilled(center2, radius2, col2); + drawList.AddCircle(center2, radius2, 4278190080u); } } private void DrawPolygonInProgress(ImDrawListPtr drawList, Vector2 imagePos, Vector2 imageSizeVec) { - Vector2 vector = _206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E(); - int num = ((_drawingVertices.Count != 0) ? 147595329 : 147595340); - int num8 = default(int); - Vector2 vector2 = default(Vector2); - Vector2 center = default(Vector2); - int num7 = default(int); - while (true) + Vector2 mousePos = Dalamud.Bindings.ImGui.ImGui.GetMousePos(); + if (_drawingVertices.Count == 0) { - int num2 = num; - int num3 = 147595328; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num18; - uint col; - int num19; - switch (num5 - (num6 + num6)) + drawList.AddCircle(mousePos, 4f, uint.MaxValue); + return; + } + for (int i = 0; i < _drawingVertices.Count - 1; i++) + { + Vector2 p = _mapService.WorldToScreen(_drawingVertices[i].X, _drawingVertices[i].Y, imagePos, imageSizeVec); + Vector2 p2 = _mapService.WorldToScreen(_drawingVertices[i + 1].X, _drawingVertices[i + 1].Y, imagePos, imageSizeVec); + drawList.AddLine(p, p2, uint.MaxValue, 2f); + } + for (int j = 0; j < _drawingVertices.Count; j++) + { + Vector2 center = _mapService.WorldToScreen(_drawingVertices[j].X, _drawingVertices[j].Y, imagePos, imageSizeVec); + uint col = ((j == 0) ? 4278255360u : uint.MaxValue); + drawList.AddCircleFilled(center, 4f, col); + } + MapTextureService mapService = _mapService; + List<Vector2> drawingVertices = _drawingVertices; + float x = drawingVertices[drawingVertices.Count - 1].X; + List<Vector2> drawingVertices2 = _drawingVertices; + Vector2 p3 = mapService.WorldToScreen(x, drawingVertices2[drawingVertices2.Count - 1].Y, imagePos, imageSizeVec); + drawList.AddLine(p3, mousePos, 2164260863u, 1.5f); + if (_drawingVertices.Count >= 3) + { + Vector2 vector = _mapService.WorldToScreen(_drawingVertices[0].X, _drawingVertices[0].Y, imagePos, imageSizeVec); + if (Vector2.Distance(mousePos, vector) < 12f) { - case 1: - num8 = 0; - num = 147595332; - break; - case 12: - drawList.AddCircle(vector, 4f, uint.MaxValue); - return; - case 3: - { - Vector2 p = _mapService.WorldToScreen(_drawingVertices[num8].X, _drawingVertices[num8].Y, imagePos, imageSizeVec); - MapTextureService mapService = _mapService; - List<Vector2> drawingVertices = _drawingVertices; - int num9 = num8; - num3 = 1; - num4 = num9; - int num10 = num4 ^ num3; - int num11 = num4 & num3; - float x = drawingVertices[num10 + (num11 + num11)].X; - List<Vector2> drawingVertices2 = _drawingVertices; - int num12 = num8; - num3 = 1; - num4 = num12; - int num13 = num4 ^ num3; - int num14 = num4 & num3; - Vector2 p2 = mapService.WorldToScreen(x, drawingVertices2[num13 + (num14 + num14)].Y, imagePos, imageSizeVec); - drawList.AddLine(p, p2, uint.MaxValue, 2f); - int num15 = num8; - num3 = 1; - num4 = num15; - int num16 = num4 ^ num3; - int num17 = num4 & num3; - num8 = num16 + (num17 + num17); - num = 147595332; - break; - } - case 0: - num = 147595340; - break; - case 5: - drawList.AddCircle(vector2, 12f, 4278255360u, 0, 2f); - num = 147595337; - break; - case 13: - center = _mapService.WorldToScreen(_drawingVertices[num7].X, _drawingVertices[num7].Y, imagePos, imageSizeVec); - num = ((num7 == 0) ? 147595338 : 147595336); - break; - case 4: - num = ((num8 < _drawingVertices.Count - 1) ? 147595331 : 147595339); - break; - case 7: - { - MapTextureService mapService2 = _mapService; - List<Vector2> drawingVertices3 = _drawingVertices; - float x2 = drawingVertices3[drawingVertices3.Count - 1].X; - List<Vector2> drawingVertices4 = _drawingVertices; - Vector2 p3 = mapService2.WorldToScreen(x2, drawingVertices4[drawingVertices4.Count - 1].Y, imagePos, imageSizeVec); - drawList.AddLine(p3, vector, 2164260863u, 1.5f); - num = ((_drawingVertices.Count < 3) ? 147595337 : 147595334); - break; - } - case 6: - vector2 = _mapService.WorldToScreen(_drawingVertices[0].X, _drawingVertices[0].Y, imagePos, imageSizeVec); - num = ((!(Vector2.Distance(vector, vector2) < 12f)) ? 147595337 : 147595333); - break; - case 9: - return; - case 10: - num18 = -16711936; - goto IL_02e3; - case 8: - num18 = -1; - goto IL_02e3; - case 2: - num = ((num7 < _drawingVertices.Count) ? 147595341 : 147595335); - break; - case 11: - { - num7 = 0; - num = 147595330; - break; - } - IL_02e3: - col = (uint)num18; - drawList.AddCircleFilled(center, 4f, col); - num19 = num7; - num3 = 1; - num4 = num19; - num7 = (num4 | num3) + (num4 & num3); - num = 147595330; - break; + drawList.AddCircle(vector, 12f, 4278255360u, 0, 2f); } } } private void HandlePanZoom(Vector2 canvasPos, Vector2 canvasSize, bool isHovered) { - ImGuiIOPtr imGuiIOPtr = _202A_206D_200D_200B_206F_206A_202B_202E_202B_200F_200B_206E_206E_202C_200B_206A_202A_200F_202A_200C_206C_202A_202C_206F_202D_206C_202C_206F_206C_206D_206A_200E_206E_200B_200E_202B_206A_200E_202C_202D_202E(); - int num = ((!isHovered) ? (-621061490) : (-621061489)); - while (true) + ImGuiIOPtr iO = Dalamud.Bindings.ImGui.ImGui.GetIO(); + if (isHovered && MathF.Abs(iO.MouseWheel) > 0.01f) { - int num2 = num; - int num3 = -621061492; - int num4 = num2; - int num5; - bool flag; - switch ((num4 | num3) - (num4 & num3)) + float zoom = _zoom; + _zoom = MathF.Max(0.1f, MathF.Min(3f, _zoom + iO.MouseWheel * 0.05f)); + Vector2 vector = Dalamud.Bindings.ImGui.ImGui.GetMousePos() - canvasPos - canvasSize * 0.5f - _offset; + _offset -= vector * (_zoom / zoom - 1f); + } + bool flag = Dalamud.Bindings.ImGui.ImGui.IsMouseDown(ImGuiMouseButton.Left) || Dalamud.Bindings.ImGui.ImGui.IsMouseDown(ImGuiMouseButton.Right) || Dalamud.Bindings.ImGui.ImGui.IsMouseDown(ImGuiMouseButton.Middle); + if (isHovered && flag) + { + if (!_isPanning) { - case 0: - num = -621061489; - break; - case 7: - { - Vector2 vector = _206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E(); - Vector2 vector2 = vector - _lastMousePos; - _offset += vector2; - _lastMousePos = vector; - return; - } - case 5: - num5 = 1; - goto IL_00af; - case 4: - num = (_isPanning ? (-621061493) : (-621061500)); - break; - case 8: _isPanning = true; - _lastMousePos = _206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E(); + _lastMousePos = Dalamud.Bindings.ImGui.ImGui.GetMousePos(); _panStartPos = _lastMousePos; - return; - case 1: + } + else { - float zoom = _zoom; - _zoom = _206A_202A_200D_202A_206E_202A_202E_200B_206E_200E_202A_206B_202A_202C_200D_206C_200F_206D_206B_206D_200F_200C_202D_206F_202A_202A_206E_206F_206C_202B_206D_202E_206B_206D_200D_200E_200B_200F_200F_200D_202E(0.1f, _202A_206A_206F_206A_202E_200B_202C_206A_200B_206F_206D_202B_202D_206D_202C_202D_206D_200D_200B_200E_200D_206A_202E_200D_200D_202B_206A_202C_206F_200E_200D_202A_206F_206D_206B_202C_202E_206B_206D_206D_202E(3f, _zoom + imGuiIOPtr.MouseWheel * 0.05f)); - Vector2 vector3 = _206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E() - canvasPos - canvasSize * 0.5f - _offset; - _offset -= vector3 * (_zoom / zoom - 1f); - num = -621061490; - break; - } - case 6: - num5 = (_202D_200B_206D_200B_206C_200D_206E_202C_200F_206A_200C_202C_202A_206B_206D_202D_206B_200C_206F_206B_200D_202C_206D_206A_200B_202D_200F_206E_202D_202C_200E_202D_202E_202B_206D_202A_202B_202C_206E_202C_202E(ImGuiMouseButton.Middle) ? 1 : 0); - goto IL_00af; - case 2: - num = (_202D_200B_206D_200B_206C_200D_206E_202C_200F_206A_200C_202C_202A_206B_206D_202D_206B_200C_206F_206B_200D_202C_206D_206A_200B_202D_200F_206E_202D_202C_200E_202D_202E_202B_206D_202A_202B_202C_206E_202C_202E(ImGuiMouseButton.Left) ? (-621061495) : (-621061498)); - break; - case 10: - num = (_202D_200B_206D_200B_206C_200D_206E_202C_200F_206A_200C_202C_202A_206B_206D_202D_206B_200C_206F_206B_200D_202C_206D_206A_200B_202D_200F_206E_202D_202C_200E_202D_202E_202B_206D_202A_202B_202C_206E_202C_202E(ImGuiMouseButton.Right) ? (-621061495) : (-621061494)); - break; - case 9: - _isPanning = false; - return; - case 3: - { - num = ((!(_206F_200F_206B_200F_200D_200F_202C_202A_206A_200B_200C_206E_206B_206C_200F_200D_206C_200B_202B_200D_200C_206F_206B_206E_200B_206E_206E_206E_206C_202C_200C_200E_202C_202B_200D_206E_200B_200D_206C_202E_202E(imGuiIOPtr.MouseWheel) > 0.01f)) ? (-621061490) : (-621061491)); - break; - } - IL_00af: - flag = (byte)num5 != 0; - num3 = (flag ? 1 : 0); - num4 = (isHovered ? 1 : 0); - num = ((num4 + num3 - (num4 | num3) == 0) ? (-621061499) : (-621061496)); - break; + Vector2 mousePos = Dalamud.Bindings.ImGui.ImGui.GetMousePos(); + Vector2 vector2 = mousePos - _lastMousePos; + _offset += vector2; + _lastMousePos = mousePos; } } + else + { + _isPanning = false; + } } private void HandleVertexDrag(IEditablePolygonSet polygons, Vector2 imagePos, Vector2 imageSizeVec, bool mapHovered, int nearVertexIndex) { - int num = (_isDraggingVertex ? (-1319429381) : (-1319429404)); - IList<Vector2> vertices = default(IList<Vector2>); - IList<Vector2> vertices2 = default(IList<Vector2>); - while (true) + if (!_isDraggingVertex && !_isDrawing && mapHovered && nearVertexIndex >= 0 && Dalamud.Bindings.ImGui.ImGui.IsMouseClicked(ImGuiMouseButton.Left)) { - int num2 = num; - int num3 = -1319429406; - int num4 = num2; - int num5; - int num6; - switch ((num4 | num3) - (num4 & num3)) + _isDraggingVertex = true; + _dragPolyIndex = SelectedIndex; + _dragVertexIndex = nearVertexIndex; + } + if (_isDraggingVertex && Dalamud.Bindings.ImGui.ImGui.IsMouseDown(ImGuiMouseButton.Left) && _dragPolyIndex >= 0 && _dragPolyIndex < polygons.PolygonCount) + { + IList<Vector2> vertices = polygons.GetVertices(_dragPolyIndex); + if (_dragVertexIndex >= 0 && _dragVertexIndex < vertices.Count) { - case 0: - num = -1319429404; - break; - case 5: - num = ((!_202E_202A_206A_200F_200E_206A_202D_202E_200E_202E_206A_206E_200B_200D_200B_202C_200C_206A_202E_206E_200E_202E_200F_202B_200E_202B_202E_206E_206B_202D_202D_200C_202A_206D_206B_206F_200E_200D_206E_202D_202E(ImGuiMouseButton.Left)) ? (-1319429397) : (-1319429386)); - break; - case 16: - num = ((!_202B_206C_206A_200D_202D_206B_200D_206C_206C_200B_206F_200B_206B_202C_202E_202D_206E_200C_206B_206E_202E_206E_206A_206F_202A_202D_202C_200D_202E_200F_206B_202E_200F_206A_206E_202B_200E_206C_202D_202E_202E(ImGuiMouseButton.Left)) ? (-1319429392) : (-1319429402)); - break; - case 4: - _isDraggingVertex = false; - _dragPolyIndex = -1; - _dragVertexIndex = -1; - _suppressClickThisFrame = true; - num = -1319429392; - break; - case 19: - num = ((_dragPolyIndex >= polygons.PolygonCount) ? (-1319429394) : (-1319429407)); - break; - case 22: - num = ((SelectedIndex < 0) ? (-1319429389) : (-1319429395)); - break; - case 14: - { - Vector2 vector = _206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E(); - Vector2 vector2 = _mapService.ScreenToWorld(vector, imagePos, imageSizeVec); - Vector2? vector3 = FindSnapTarget(polygons, _dragPolyIndex, _dragVertexIndex, vector, imagePos, imageSizeVec); - vertices[_dragVertexIndex] = vector3 ?? vector2; - num = -1319429394; - break; + Vector2 mousePos = Dalamud.Bindings.ImGui.ImGui.GetMousePos(); + Vector2 vector = _mapService.ScreenToWorld(mousePos, imagePos, imageSizeVec); + Vector2? vector2 = FindSnapTarget(polygons, _dragPolyIndex, _dragVertexIndex, mousePos, imagePos, imageSizeVec); + vertices[_dragVertexIndex] = vector2 ?? vector; } - case 11: - vertices2 = polygons.GetVertices(SelectedIndex); - num = ((vertices2.Count <= 3) ? (-1319429389) : (-1319429393)); - break; - case 10: - num = ((!_202D_200B_206D_200B_206C_200D_206E_202C_200F_206A_200C_202C_202A_206B_206D_202D_206B_200C_206F_206B_200D_202C_206D_206A_200B_202D_200F_206E_202D_202C_200E_202D_202E_202B_206D_202A_202B_202C_206E_202C_202E(ImGuiMouseButton.Left)) ? (-1319429394) : (-1319429387)); - break; - case 9: - num = ((!_isDraggingVertex) ? (-1319429394) : (-1319429400)); - break; - case 12: - num = ((!_isDraggingVertex) ? (-1319429392) : (-1319429390)); - break; - case 15: - num = ((SelectedIndex >= polygons.PolygonCount) ? (-1319429389) : (-1319429399)); - break; - case 24: - num = ((nearVertexIndex < 0) ? (-1319429397) : (-1319429401)); - break; - case 6: - num5 = ((!_isDrawing) ? 1 : 0); - goto IL_02be; - case 25: - num5 = 0; - goto IL_02be; - case 2: - num = ((_dragVertexIndex >= vertices.Count) ? (-1319429394) : (-1319429396)); - break; - case 21: - num = ((!_202E_202A_206A_200F_200E_206A_202D_202E_200E_202E_206A_206E_200B_200D_200B_202C_200C_206A_202E_206E_200E_202E_200F_202B_200E_202B_202E_206E_206B_202D_202D_200C_202A_206D_206B_206F_200E_200D_206E_202D_202E(ImGuiMouseButton.Right)) ? (-1319429389) : (-1319429388)); - break; - case 13: + } + if (_isDraggingVertex && Dalamud.Bindings.ImGui.ImGui.IsMouseReleased(ImGuiMouseButton.Left)) + { + _isDraggingVertex = false; + _dragPolyIndex = -1; + _dragVertexIndex = -1; + _suppressClickThisFrame = true; + } + if (!_isDraggingVertex && !_isDrawing && mapHovered && nearVertexIndex >= 0 && Dalamud.Bindings.ImGui.ImGui.IsMouseClicked(ImGuiMouseButton.Right) && SelectedIndex >= 0 && SelectedIndex < polygons.PolygonCount) + { + IList<Vector2> vertices2 = polygons.GetVertices(SelectedIndex); + if (vertices2.Count > 3) + { vertices2.RemoveAt(nearVertexIndex); - num = -1319429389; - break; - case 18: - num = (_isDraggingVertex ? (-1319429403) : (-1319429405)); - break; - case 7: - num6 = 0; - goto IL_0363; - case 3: - vertices = polygons.GetVertices(_dragPolyIndex); - num = ((_dragVertexIndex < 0) ? (-1319429394) : (-1319429408)); - break; - case 8: - num = ((nearVertexIndex < 0) ? (-1319429389) : (-1319429385)); - break; - case 20: - _isDraggingVertex = true; - _dragPolyIndex = SelectedIndex; - _dragVertexIndex = nearVertexIndex; - num = -1319429397; - break; - case 1: - num6 = ((!_isDrawing) ? 1 : 0); - goto IL_0363; - case 23: - num = ((_dragPolyIndex < 0) ? (-1319429394) : (-1319429391)); - break; - case 17: - return; - IL_02be: - num = ((((uint)num5 & (mapHovered ? 1u : 0u)) == 0) ? (-1319429397) : (-1319429382)); - break; - IL_0363: - num = ((((uint)num6 & (mapHovered ? 1u : 0u)) == 0) ? (-1319429389) : (-1319429398)); - break; } } } private void HandleMouseInput(IEditablePolygonSet polygons, Vector2 imagePos, Vector2 imageSizeVec, bool mapHovered) { - int num = (_202B_206C_206A_200D_202D_206B_200D_206C_206C_200B_206F_200B_206B_202C_202E_202D_206E_200C_206B_206E_202E_206E_206A_206F_202A_202D_202C_200D_202E_200F_206B_202E_200F_206A_206E_202B_200E_206C_202D_202E_202E(ImGuiMouseButton.Left) ? 1762495191 : 1762495193); - int num8 = default(int); - int num7 = default(int); - IList<Vector2> vertices2 = default(IList<Vector2>); - int hoveredEdgeIndex = default(int); - Vector2 point = default(Vector2); - while (true) + if (!Dalamud.Bindings.ImGui.ImGui.IsMouseReleased(ImGuiMouseButton.Left)) { - int num2 = num; - int num3 = 1762495184; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + if (_suppressClickThisFrame) + { + _suppressClickThisFrame = false; + } + else + { + if (_isDrawing || _isDraggingVertex || Vector2.Distance(Dalamud.Bindings.ImGui.ImGui.GetMousePos(), _panStartPos) > 4f || !mapHovered) { - case 2: - num = ((SelectedIndex < 0) ? 1762495175 : 1762495192); - break; - case 18: - num8 = num7; - num = 1762495196; - break; - case 5: - vertices2 = polygons.GetVertices(SelectedIndex); - hoveredEdgeIndex = _hoveredEdgeIndex; - num = ((hoveredEdgeIndex >= vertices2.Count) ? 1762495175 : 1762495194); - break; - case 8: - num = ((SelectedIndex >= polygons.PolygonCount) ? 1762495175 : 1762495189); - break; - case 17: - num = ((num8 < 0) ? 1762495199 : 1762495198); - break; - case 21: - return; - case 4: - num = ((!_isDraggingVertex) ? 1762495190 : 1762495173); - break; - case 1: - num = (mapHovered ? 1762495174 : 1762495172); - break; - case 23: - num8 = -1; - num7 = 0; - num = 1762495195; - break; - case 20: - return; - case 12: - { - int num9 = num7; - num3 = 1; - num4 = num9; - num7 = (num4 | num3) + (num4 & num3); - num = 1762495195; - break; - } - case 11: - num = ((num7 < polygons.PolygonCount) ? 1762495168 : 1762495169); - break; - case 13: - return; - case 0: - num = (_isDrawing ? 1762495173 : 1762495188); - break; - case 10: - { - int num10 = hoveredEdgeIndex; - num3 = 1; - num4 = num10; - int num11 = num4 ^ num3; - int num12 = num4 & num3; - int index = (num11 + (num12 + num12)) % vertices2.Count; - Vector2 item = (vertices2[hoveredEdgeIndex] + vertices2[index]) / 2f; - vertices2.Insert(index, item); return; } - case 14: - SelectedIndex = num8; - num = 1762495199; - break; - case 7: - num = ((!_suppressClickThisFrame) ? 1762495184 : 1762495187); - break; - case 9: - return; - case 22: + Vector2 mousePos = Dalamud.Bindings.ImGui.ImGui.GetMousePos(); + Vector2 point = _mapService.ScreenToWorld(mousePos, imagePos, imageSizeVec); + if (_hoveredEdgeIndex >= 0 && SelectedIndex >= 0 && SelectedIndex < polygons.PolygonCount) { - Vector2 screenPos = _206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E(); - point = _mapService.ScreenToWorld(screenPos, imagePos, imageSizeVec); - num = ((_hoveredEdgeIndex < 0) ? 1762495175 : 1762495186); - break; + IList<Vector2> vertices = polygons.GetVertices(SelectedIndex); + int hoveredEdgeIndex = _hoveredEdgeIndex; + if (hoveredEdgeIndex < vertices.Count) + { + int index = (hoveredEdgeIndex + 1) % vertices.Count; + Vector2 item = (vertices[hoveredEdgeIndex] + vertices[index]) / 2f; + vertices.Insert(index, item); + return; + } } - case 16: + int num = -1; + for (int i = 0; i < polygons.PolygonCount; i++) { - IList<Vector2> vertices = polygons.GetVertices(num7); - num = ((!PointInPolygon(point, vertices)) ? 1762495196 : 1762495170); - break; + IList<Vector2> vertices2 = polygons.GetVertices(i); + if (PointInPolygon(point, vertices2)) + { + num = i; + } } - case 6: - num = ((!(Vector2.Distance(_206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E(), _panStartPos) > 4f)) ? 1762495185 : 1762495197); - break; - case 3: - _suppressClickThisFrame = false; - return; - case 15: - return; - case 19: - num = 1762495193; - break; + if (num >= 0) + { + SelectedIndex = num; } } } private void HandleDrawingInput(IEditablePolygonSet polygons, Vector2 imagePos, Vector2 imageSizeVec, bool mapHovered) { - int num = (_isDrawing ? 1750843241 : 1750843236); - Vector2 item = default(Vector2); - Vector2 vector = default(Vector2); - while (true) + if (!_isDrawing) { - int num2 = num; - int num3 = 1750843243; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + if (Dalamud.Bindings.ImGui.ImGui.IsKeyPressed(ImGuiKey.Escape)) + { + _isDrawing = false; + _drawingVertices.Clear(); + } + else if (Dalamud.Bindings.ImGui.ImGui.IsKeyPressed(ImGuiKey.Enter) && _drawingVertices.Count >= 3) + { + FinishDrawing(polygons); + } + else + { + if (!mapHovered) { - case 0: - _drawingVertices.Add(item); - num = 1750843238; - break; - case 1: - num = ((!_200D_202D_206D_202D_206B_206A_206F_202D_206C_202C_206C_206B_206D_206C_206E_200C_202A_206B_202A_202D_206B_202C_200D_200D_202A_200D_200D_206C_200C_200E_206C_200C_200C_206D_206B_206C_202A_200C_200D_206E_202E(ImGuiMouseButton.Left)) ? 1750843232 : 1750843245); - break; - case 16: - num = ((_drawingVertices.Count < 3) ? 1750843244 : 1750843246); - break; - case 11: - num = ((!_202E_202A_206A_200F_200E_206A_202D_202E_200E_202E_206A_206E_200B_200D_200B_202C_200C_206A_202E_206E_200E_202E_200F_202B_200E_202B_202E_206E_206B_202D_202D_200C_202A_206D_206B_206F_200E_200D_206E_202D_202E(ImGuiMouseButton.Left)) ? 1750843238 : 1750843234); - break; - case 12: return; - case 13: - return; - case 17: - num = ((!_206A_200C_206A_206E_200E_200F_202B_206A_206E_206C_206A_202B_202B_200C_200F_200B_202A_206F_206F_200F_206E_200D_206F_200C_200C_206A_200B_200F_206C_202B_200D_202B_202E_202B_200F_202C_202B_200D_202C_202D_202E(ImGuiKey.Enter)) ? 1750843244 : 1750843259); - break; - case 10: - { - Vector2 value = _mapService.WorldToScreen(_drawingVertices[0].X, _drawingVertices[0].Y, imagePos, imageSizeVec); - num = ((!(Vector2.Distance(vector, value) < 12f)) ? 1750843243 : 1750843247); - break; } - case 15: - return; - case 2: - num = ((!_206A_200C_206A_206E_200E_200F_202B_206A_206E_206C_206A_202B_202B_200C_200F_200B_202A_206F_206F_200F_206E_200D_206F_200C_200C_206A_200B_200F_206C_202B_200D_202B_202E_202B_200F_202C_202B_200D_202C_202D_202E(ImGuiKey.Escape)) ? 1750843258 : 1750843237); - break; - case 4: + if (Dalamud.Bindings.ImGui.ImGui.IsMouseDoubleClicked(ImGuiMouseButton.Left) && _drawingVertices.Count >= 3) + { FinishDrawing(polygons); - return; - case 7: - num = (mapHovered ? 1750843242 : 1750843239); - break; - case 3: - num = 1750843236; - break; - case 8: - FinishDrawing(polygons); - return; - case 5: - FinishDrawing(polygons); - return; - case 9: - vector = _206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E(); - item = _mapService.ScreenToWorld(vector, imagePos, imageSizeVec); - num = ((_drawingVertices.Count < 3) ? 1750843243 : 1750843233); - break; - case 14: - _isDrawing = false; - _drawingVertices.Clear(); - return; - case 6: - num = ((_drawingVertices.Count < 3) ? 1750843232 : 1750843235); - break; + } + else + { + if (!Dalamud.Bindings.ImGui.ImGui.IsMouseClicked(ImGuiMouseButton.Left)) + { + return; + } + Vector2 mousePos = Dalamud.Bindings.ImGui.ImGui.GetMousePos(); + Vector2 item = _mapService.ScreenToWorld(mousePos, imagePos, imageSizeVec); + if (_drawingVertices.Count >= 3) + { + Vector2 value = _mapService.WorldToScreen(_drawingVertices[0].X, _drawingVertices[0].Y, imagePos, imageSizeVec); + if (Vector2.Distance(mousePos, value) < 12f) + { + FinishDrawing(polygons); + return; + } + } + _drawingVertices.Add(item); } } } @@ -1209,439 +502,124 @@ public sealed class MapPolygonEditor private void FinishDrawing(IEditablePolygonSet polygons) { _isDrawing = false; - int num = ((_drawingVertices.Count >= 3) ? 1071882970 : 1071882969); - while (true) + if (_drawingVertices.Count < 3) { - int num2 = num; - int num3 = 1071882968; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_005e; - case 1: - _drawingVertices.Clear(); - return; - case 2: - { - List<Vector2> drawingVertices = _drawingVertices; - int count = drawingVertices.Count; - List<Vector2> list = new List<Vector2>(count); - CollectionsMarshal.SetCount(list, count); - Span<Vector2> span = CollectionsMarshal.AsSpan(list); - int num7 = 0; - Span<Vector2> span2 = CollectionsMarshal.AsSpan(drawingVertices); - span2.CopyTo(span.Slice(num7, span2.Length)); - num7 += span2.Length; - polygons.AddPolygon(list); - SelectedIndex = polygons.PolygonCount - 1; - _drawingVertices.Clear(); - return; - } - } - continue; - IL_005e: - num = 1071882969; + _drawingVertices.Clear(); + return; } + List<Vector2> drawingVertices = _drawingVertices; + int count = drawingVertices.Count; + List<Vector2> list = new List<Vector2>(count); + CollectionsMarshal.SetCount(list, count); + Span<Vector2> span = CollectionsMarshal.AsSpan(list); + int num = 0; + Span<Vector2> span2 = CollectionsMarshal.AsSpan(drawingVertices); + span2.CopyTo(span.Slice(num, span2.Length)); + num += span2.Length; + polygons.AddPolygon(list); + SelectedIndex = polygons.PolygonCount - 1; + _drawingVertices.Clear(); } private int FindNearestVertexHandle(IList<Vector2> verts, Vector2 imagePos, Vector2 imageSizeVec) { - Vector2 value = _206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E(); + Vector2 mousePos = Dalamud.Bindings.ImGui.ImGui.GetMousePos(); float num = 12f; int result = -1; - int num2 = 0; - int num3 = 1099861971; - float num9 = default(float); - while (true) + for (int i = 0; i < verts.Count; i++) { - int num4 = num3; - int num5 = 1099861975; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) + Vector2 value = _mapService.WorldToScreen(verts[i].X, verts[i].Y, imagePos, imageSizeVec); + float num2 = Vector2.Distance(mousePos, value); + if (num2 < num) { - case 4: - num3 = ((num2 < verts.Count) ? 1099861974 : 1099861973); - break; - case 2: - return result; - case 0: - num3 = 1099861971; - break; - case 3: - { - int num10 = num2; - num5 = 1; - num6 = num10; - num2 = (num6 | num5) + (num6 & num5); - num3 = 1099861971; - break; - } - case 5: - num = num9; - result = num2; - num3 = 1099861972; - break; - case 1: - { - Vector2 value2 = _mapService.WorldToScreen(verts[num2].X, verts[num2].Y, imagePos, imageSizeVec); - num9 = Vector2.Distance(value, value2); - num3 = ((!(num9 < num)) ? 1099861972 : 1099861970); - break; - } + num = num2; + result = i; } } + return result; } private int FindNearestEdgeMidpoint(IList<Vector2> verts, Vector2 imagePos, Vector2 imageSizeVec) { - int num = ((verts.Count >= 2) ? (-1822434936) : (-1822434929)); - float num8 = default(float); - float num9 = default(float); - int result = default(int); - int num7 = default(int); - Vector2 value = default(Vector2); - while (true) + if (verts.Count < 2) { - int num2 = num; - int num3 = -1822434930; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return -1; + } + Vector2 mousePos = Dalamud.Bindings.ImGui.ImGui.GetMousePos(); + float num = 10f; + int result = -1; + for (int i = 0; i < verts.Count; i++) + { + int index = (i + 1) % verts.Count; + Vector2 vector = (verts[i] + verts[index]) / 2f; + Vector2 value = _mapService.WorldToScreen(vector.X, vector.Y, imagePos, imageSizeVec); + float num2 = Vector2.Distance(mousePos, value); + if (num2 < num) { - case 3: - num = -1822434929; - break; - case 4: - num8 = num9; - result = num7; - num = -1822434930; - break; - case 5: - { - int num13 = num7; - num3 = 1; - num4 = num13; - int num14 = num4 ^ num3; - int num15 = num4 & num3; - int index = (num14 + (num15 + num15)) % verts.Count; - Vector2 vector = (verts[num7] + verts[index]) / 2f; - Vector2 value2 = _mapService.WorldToScreen(vector.X, vector.Y, imagePos, imageSizeVec); - num9 = Vector2.Distance(value, value2); - num = ((!(num9 < num8)) ? (-1822434930) : (-1822434934)); - break; - } - case 0: - { - int num10 = num7; - num3 = 1; - num4 = num10; - int num11 = num4 ^ num3; - int num12 = num4 & num3; - num7 = num11 + (num12 + num12); - num = -1822434935; - break; - } - case 1: - return -1; - case 6: - value = _206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E(); - num8 = 10f; - result = -1; - num7 = 0; - num = -1822434935; - break; - case 2: - return result; - case 7: - num = ((num7 < verts.Count) ? (-1822434933) : (-1822434932)); - break; + num = num2; + result = i; } } + return result; } private Vector2? FindSnapTarget(IEditablePolygonSet polygons, int currentPolyIndex, int currentVertexIndex, Vector2 mouseScreenPos, Vector2 imagePos, Vector2 imageSizeVec) { float num = 10f; Vector2? result = null; - int num2 = 0; - int num3 = 302081773; - float num8 = default(float); - IList<Vector2> vertices = default(IList<Vector2>); - int num7 = default(int); - while (true) + for (int i = 0; i < polygons.PolygonCount; i++) { - int num4 = num3; - int num5 = 302081770; - int num6 = num4; - switch ((num6 | num5) - (num6 & num5)) + IList<Vector2> vertices = polygons.GetVertices(i); + for (int j = 0; j < vertices.Count; j++) { - case 3: - num = num8; - result = vertices[num7]; - num3 = 302081775; - break; - case 6: - { - int num9 = num2; - num5 = 1; - num6 = num9; - num2 = (num6 | num5) + (num6 & num5); - num3 = 302081773; - break; - } - case 8: - { - Vector2 value = _mapService.WorldToScreen(vertices[num7].X, vertices[num7].Y, imagePos, imageSizeVec); - num8 = Vector2.Distance(mouseScreenPos, value); - num3 = ((!(num8 < num)) ? 302081775 : 302081769); - break; - } - case 10: - num3 = ((num2 != currentPolyIndex) ? 302081762 : 302081770); - break; - case 4: - num3 = 302081773; - break; - case 7: - num3 = ((num2 < polygons.PolygonCount) ? 302081771 : 302081763); - break; - case 1: - vertices = polygons.GetVertices(num2); - num7 = 0; - num3 = 302081768; - break; - case 5: - { - int num10 = num7; - num5 = 1; - num6 = num10; - num7 = (num6 | num5) + (num6 & num5); - num3 = 302081768; - break; - } - case 9: - return result; - case 0: - num3 = ((num7 == currentVertexIndex) ? 302081775 : 302081762); - break; - case 2: - num3 = ((num7 < vertices.Count) ? 302081760 : 302081772); - break; + if (i != currentPolyIndex || j != currentVertexIndex) + { + Vector2 value = _mapService.WorldToScreen(vertices[j].X, vertices[j].Y, imagePos, imageSizeVec); + float num2 = Vector2.Distance(mouseScreenPos, value); + if (num2 < num) + { + num = num2; + result = vertices[j]; + } + } } } + return result; } private static bool PointInPolygon(Vector2 point, IList<Vector2> verts) { - int num = ((verts.Count >= 3) ? 1302891100 : 1302891101); - bool flag = default(bool); - float x2 = default(float); - int num7 = default(int); - float y = default(float); - float x = default(float); - int index = default(int); - float y2 = default(float); - while (true) + if (verts.Count < 3) { - int num2 = num; - int num3 = 1302891097; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - flag = !flag; - num = 1302891098; - break; - case 7: - x2 = verts[num7].X; - y = verts[num7].Y; - x = verts[index].X; - y2 = verts[index].Y; - num = ((y > point.Y == y2 > point.Y) ? 1302891098 : 1302891096); - break; - case 0: - return flag; - case 1: - num = ((!(point.X < (x - x2) * (point.Y - y) / (y2 - y) + x2)) ? 1302891098 : 1302891103); - break; - case 4: - return false; - case 5: - flag = false; - num7 = 0; - index = verts.Count - 1; - num = 1302891089; - break; - case 2: - num = 1302891101; - break; - case 3: - { - int num8 = num7; - num3 = 1; - num4 = num8; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - num7 = num9 + (num10 + num10); - index = num8; - num = 1302891089; - break; - } - case 8: - num = ((num7 < verts.Count) ? 1302891102 : 1302891097); - break; - } + return false; } + bool flag = false; + int num = 0; + int index = verts.Count - 1; + while (num < verts.Count) + { + float x = verts[num].X; + float y = verts[num].Y; + float x2 = verts[index].X; + float y2 = verts[index].Y; + if (y > point.Y != y2 > point.Y && point.X < (x2 - x) * (point.Y - y) / (y2 - y) + x) + { + flag = !flag; + } + index = num++; + } + return flag; } private static Vector2 ComputeCentroid(IList<Vector2> verts) { float num = 0f; float num2 = 0f; - int num3 = 0; - int num4 = 321919645; - while (true) + for (int i = 0; i < verts.Count; i++) { - int num5 = num4; - int num6 = 321919644; - int num7 = num5; - int num8 = num7 + num6; - int num9 = num7 & num6; - switch (num8 - (num9 + num9)) - { - case 0: - num4 = 321919645; - break; - case 1: - num4 = ((num3 < verts.Count) ? 321919646 : 321919647); - break; - case 3: - return new Vector2(num / (float)verts.Count, num2 / (float)verts.Count); - case 2: - { - num += verts[num3].X; - num2 += verts[num3].Y; - int num10 = num3; - num6 = 1; - num7 = num10; - num3 = (num7 | num6) + (num7 & num6); - num4 = 321919645; - break; - } - } + num += verts[i].X; + num2 += verts[i].Y; } - } - - static Vector2 _202A_200B_202A_206D_202C_202C_202E_200C_202D_202E_200C_206D_206F_202A_206B_206E_200E_200F_206F_206A_206A_202B_202C_200F_200D_200F_202D_200F_200B_200C_202C_202D_200D_202C_200B_200D_202A_200B_206D_206B_202E() - { - return Dalamud.Bindings.ImGui.ImGui.GetContentRegionAvail(); - } - - static float _206A_202A_200D_202A_206E_202A_202E_200B_206E_200E_202A_206B_202A_202C_200D_206C_200F_206D_206B_206D_200F_200C_202D_206F_202A_202A_206E_206F_206C_202B_206D_202E_206B_206D_200D_200E_200B_200F_200F_200D_202E(float P_0, float P_1) - { - return MathF.Max(P_0, P_1); - } - - static bool _206A_202A_202E_206F_202E_200F_200E_202E_206A_206D_206D_202E_200D_202D_206C_202A_200E_202E_206B_202B_200C_202A_206E_200B_206E_202A_206F_206E_202C_200B_200B_202A_206A_206B_202A_206B_202C_202B_202C_202A_202E(ImU8String P_0, Vector2 P_1, bool P_2, ImGuiWindowFlags P_3) - { - return Dalamud.Bindings.ImGui.ImGui.BeginChild(P_0, P_1, P_2, P_3); - } - - static void _206C_202E_202E_202C_202E_202B_206C_206D_202C_206B_206F_206B_202B_206C_206D_200B_206E_200B_206D_202D_206B_202C_200C_206A_206B_206B_206C_206A_200B_200B_200B_202B_200B_202E_206D_200B_206A_200D_202B_206E_202E() - { - Dalamud.Bindings.ImGui.ImGui.EndChild(); - } - - static Vector2 _200D_206C_202C_202A_200F_200F_200F_200D_202E_202E_200F_206C_200E_200B_206C_200E_206A_202A_202E_200D_202D_200F_200D_202B_200C_206D_200D_202A_202E_202C_202A_202A_206F_202E_200E_200E_202E_200C_206F_206C_202E() - { - return Dalamud.Bindings.ImGui.ImGui.GetCursorScreenPos(); - } - - static bool _206E_200D_206A_202C_202D_206B_202B_206B_202A_206F_200F_206C_206A_202C_200B_202E_200F_206C_202C_202A_200F_202C_206E_206D_202A_206A_200E_202E_200F_200E_206E_206D_202D_202B_206F_206B_200D_200E_206D_206F_202E(ImU8String P_0, Vector2 P_1, ImGuiButtonFlags P_2) - { - return Dalamud.Bindings.ImGui.ImGui.InvisibleButton(P_0, P_1, P_2); - } - - static bool _200D_200B_206C_202A_202C_206F_200C_202E_200F_202C_202E_200E_202A_202A_206C_200B_206F_200D_202A_206D_202B_202B_202A_206F_206F_206C_202E_206D_202B_200C_206C_206C_200E_200C_206F_202E_206F_206B_200F_200D_202E() - { - return Dalamud.Bindings.ImGui.ImGui.IsItemHovered(); - } - - static void _202B_206C_200F_200F_200D_202C_206D_200C_200B_200D_202A_202D_206F_202B_206E_206C_202B_200D_206D_202E_206A_202A_200B_206B_202B_206E_200C_200C_200D_206C_202D_206A_202B_206F_200D_200F_202C_202B_206D_200E_202E(Vector2 P_0) - { - Dalamud.Bindings.ImGui.ImGui.SetCursorScreenPos(P_0); - } - - static void _206D_202C_202B_206C_202B_200D_202B_200E_202E_206F_202E_200D_200B_202B_206A_202E_200F_206D_202A_206F_200F_200B_202D_200B_206A_202E_206E_202D_202E_200D_206C_200F_206C_202D_202C_202B_202B_200F_206D_206E_202E(ImU8String P_0) - { - Dalamud.Bindings.ImGui.ImGui.TextDisabled(P_0); - } - - static ImDrawListPtr _200B_200C_202B_202C_206F_206E_206A_202B_200B_202D_202D_206D_202C_200B_202B_200F_206E_206C_206D_202D_206E_200F_206A_200E_202D_206F_200C_200F_202D_202A_202A_202C_202E_206B_202C_206D_202C_202A_202D_202E_202E() - { - return Dalamud.Bindings.ImGui.ImGui.GetWindowDrawList(); - } - - static ImTextureID _200B_202A_202D_202A_200B_206F_202A_200D_206A_202C_206B_206F_206C_206E_206C_202C_206D_206F_202E_206A_202C_202E_206A_202C_206B_206B_202C_202B_206A_206F_206F_206D_200E_206C_200F_202B_206B_206E_202B_200E_202E(IDalamudTextureWrap P_0) - { - return P_0.Handle; - } - - static bool _206C_200B_206A_206F_200D_206E_202D_206B_206C_206F_200E_200E_202E_200B_206F_206B_202B_202B_200D_200B_202C_206B_202A_206D_200F_202B_202C_206D_202E_200C_206A_202B_200D_202C_202E_202A_202C_200E_206E_202C_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static Vector2 _206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E() - { - return Dalamud.Bindings.ImGui.ImGui.GetMousePos(); - } - - static ImGuiIOPtr _202A_206D_200D_200B_206F_206A_202B_202E_202B_200F_200B_206E_206E_202C_200B_206A_202A_200F_202A_200C_206C_202A_202C_206F_202D_206C_202C_206F_206C_206D_206A_200E_206E_200B_200E_202B_206A_200E_202C_202D_202E() - { - return Dalamud.Bindings.ImGui.ImGui.GetIO(); - } - - static float _206F_200F_206B_200F_200D_200F_202C_202A_206A_200B_200C_206E_206B_206C_200F_200D_206C_200B_202B_200D_200C_206F_206B_206E_200B_206E_206E_206E_206C_202C_200C_200E_202C_202B_200D_206E_200B_200D_206C_202E_202E(float P_0) - { - return MathF.Abs(P_0); - } - - static float _202A_206A_206F_206A_202E_200B_202C_206A_200B_206F_206D_202B_202D_206D_202C_202D_206D_200D_200B_200E_200D_206A_202E_200D_200D_202B_206A_202C_206F_200E_200D_202A_206F_206D_206B_202C_202E_206B_206D_206D_202E(float P_0, float P_1) - { - return MathF.Min(P_0, P_1); - } - - static bool _202D_200B_206D_200B_206C_200D_206E_202C_200F_206A_200C_202C_202A_206B_206D_202D_206B_200C_206F_206B_200D_202C_206D_206A_200B_202D_200F_206E_202D_202C_200E_202D_202E_202B_206D_202A_202B_202C_206E_202C_202E(ImGuiMouseButton P_0) - { - return Dalamud.Bindings.ImGui.ImGui.IsMouseDown(P_0); - } - - static bool _202E_202A_206A_200F_200E_206A_202D_202E_200E_202E_206A_206E_200B_200D_200B_202C_200C_206A_202E_206E_200E_202E_200F_202B_200E_202B_202E_206E_206B_202D_202D_200C_202A_206D_206B_206F_200E_200D_206E_202D_202E(ImGuiMouseButton P_0) - { - return Dalamud.Bindings.ImGui.ImGui.IsMouseClicked(P_0); - } - - static bool _202B_206C_206A_200D_202D_206B_200D_206C_206C_200B_206F_200B_206B_202C_202E_202D_206E_200C_206B_206E_202E_206E_206A_206F_202A_202D_202C_200D_202E_200F_206B_202E_200F_206A_206E_202B_200E_206C_202D_202E_202E(ImGuiMouseButton P_0) - { - return Dalamud.Bindings.ImGui.ImGui.IsMouseReleased(P_0); - } - - static bool _206A_200C_206A_206E_200E_200F_202B_206A_206E_206C_206A_202B_202B_200C_200F_200B_202A_206F_206F_200F_206E_200D_206F_200C_200C_206A_200B_200F_206C_202B_200D_202B_202E_202B_200F_202C_202B_200D_202C_202D_202E(ImGuiKey P_0) - { - return Dalamud.Bindings.ImGui.ImGui.IsKeyPressed(P_0); - } - - static bool _200D_202D_206D_202D_206B_206A_206F_202D_206C_202C_206C_206B_206D_206C_206E_200C_202A_206B_202A_202D_206B_202C_200D_200D_202A_200D_200D_206C_200C_200E_206C_200C_200C_206D_206B_206C_202A_200C_200D_206E_202E(ImGuiMouseButton P_0) - { - return Dalamud.Bindings.ImGui.ImGui.IsMouseDoubleClicked(P_0); + return new Vector2(num / (float)verts.Count, num2 / (float)verts.Count); } } diff --git a/LLib/LLib.ImGui/MapTextureService.cs b/LLib/LLib.ImGui/MapTextureService.cs index f722e6f..41ce75c 100644 --- a/LLib/LLib.ImGui/MapTextureService.cs +++ b/LLib/LLib.ImGui/MapTextureService.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Interface.Textures; using Dalamud.Interface.Textures.TextureWraps; using Dalamud.Plugin.Services; @@ -54,238 +53,92 @@ public sealed class MapTextureService _logger = logger; } - [MethodImpl(MethodImplOptions.NoInlining)] public bool LoadForTerritory(uint territoryType) { - int num = ((territoryType != _loadedTerritoryType) ? (-703602804) : (-703602806)); - List<string> list2 = default(List<string>); - string value = default(string); - Map? map = default(Map?); - string[] array = default(string[]); - string text = default(string); - TerritoryType? rowOrDefault = default(TerritoryType?); - while (true) + if (territoryType == _loadedTerritoryType && _resolvedTexture != null) { - int num2 = num; - int num3 = -703602814; - int num4 = num2; - Map? obj; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 0: - return false; - case 3: - num = ((_200E_206C_202D_200C_200F_206A_202A_200E_200E_202C_202D_202D_202B_206B_206F_206F_200F_206D_206A_206E_202C_206E_200F_200F_206B_202A_206A_202A_200F_206A_206F_206A_200E_200D_206E_206D_206B_206B_200D_206E_202E() >= _retryAtMs) ? (-703602796) : (-703602814)); - continue; - case 16: - num = ((_candidateTextures == null) ? (-703602797) : (-703602813)); - continue; - case 21: - _failed = true; - return false; - case 1: - PollCandidates(); - return _resolvedTexture != null; - case 7: - num = ((!_failed) ? (-703602799) : (-703602816)); - continue; - case 15: - { - List<string> list = list2; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(19, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(674220722)); - defaultInterpolatedStringHandler.AppendFormatted(value); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-27764842)); - defaultInterpolatedStringHandler.AppendFormatted(value); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(582629916)); - list.Add(defaultInterpolatedStringHandler.ToStringAndClear()); - num = -703602795; - continue; - } - case 23: - _206F_200B_200E_206D_200C_200B_206B_206C_202A_206C_206C_206C_206D_202E_206E_206F_206A_200C_200D_200C_202D_202D_200E_206D_202E_202D_200D_202C_206C_200B_200E_202B_200F_202E_202E_206A_202D_206C_206A_206C_202E((ILogger)_logger, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1609496745), new object[2] - { - territoryType, - _200C_200F_206E_202C_206F_206E_206F_206F_200E_206B_202E_200B_206C_200F_200B_206A_200C_200E_202C_202A_202A_200B_202D_202C_202D_206B_202E_206A_200D_200E_202D_206E_202B_202C_200C_200C_202B_206C_206B_202E_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1645706687), (IEnumerable<string>)list2) - }); - _candidateTextures = list2.Select((string p) => _202E_206B_206B_200F_206B_206E_202B_202D_200C_200F_202C_202E_200B_206B_200B_202B_202B_200D_202B_202A_202C_202C_206F_206C_206D_200E_202A_200C_200E_200E_202C_202B_206B_200C_202D_202B_200B_202E_200D_206B_202E(_textureProvider, p)).ToList(); - PollCandidates(); - return _resolvedTexture != null; - case 14: - num = ((territoryType != _loadedTerritoryType) ? (-703602799) : (-703602811)); - continue; - case 17: - num = ((territoryType != _loadedTerritoryType) ? (-703602796) : (-703602815)); - continue; - case 20: - num = ((map.Value.RowId != 0) ? (-703602808) : (-703602809)); - continue; - case 19: - num = ((territoryType != _loadedTerritoryType) ? (-703602797) : (-703602798)); - continue; - case 13: - return true; - case 9: - obj = null; - break; - case 4: - num = -703602806; - continue; - case 2: - return false; - case 18: - array = _202B_200D_202E_202E_200B_206D_206C_206E_200C_200B_200E_202E_202B_200F_202C_200F_202E_206B_200E_206B_200C_202E_206D_206C_206F_206C_202D_200F_200B_200F_202D_206B_202A_206E_206D_206B_206A_202B_202A_200D_202E(text, '/', StringSplitOptions.None); - num = ((array.Length == 2) ? (-703602807) : (-703602793)); - continue; - case 5: - _failed = true; - return false; - case 11: - { - value = array[0]; - string text2 = array[1]; - List<string> list3 = new List<string>(); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(14, 3); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1333505234)); - defaultInterpolatedStringHandler2.AppendFormatted(text); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-102430846)); - defaultInterpolatedStringHandler2.AppendFormatted(value); - defaultInterpolatedStringHandler2.AppendFormatted(text2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-25096421)); - list3.Add(defaultInterpolatedStringHandler2.ToStringAndClear()); - list2 = list3; - num = ((!_206A_200E_206B_206F_206B_200E_202B_206E_202E_200C_206F_206A_202E_200F_206B_206E_206A_200B_200D_202D_200B_202B_206A_200C_202E_206C_206D_206D_206D_206C_200F_202B_200D_200D_202C_206F_206B_206A_206A_206D_202E(text2, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1596345032))) ? (-703602795) : (-703602803)); - continue; - } - case 6: - _failed = true; - return false; - case 8: - num = ((_resolvedTexture == null) ? (-703602804) : (-703602801)); - continue; - case 22: - _resolvedTexture = null; - _candidateTextures = null; - _failed = false; - _retryAtMs = 0L; - _loadedTerritoryType = territoryType; - _searchFrames = 0; - rowOrDefault = _dataManager.GetExcelSheet<TerritoryType>().GetRowOrDefault(territoryType); - num = (rowOrDefault.HasValue ? (-703602802) : (-703602805)); - continue; - case 10: - _sizeFactor = map.Value.SizeFactor; - _offsetX = map.Value.OffsetX; - _offsetY = map.Value.OffsetY; - text = map.Value.Id.ExtractText(); - num = ((!_206C_200D_202E_202D_202C_202E_200C_202D_202C_202A_200F_206D_200B_206B_200B_206B_202A_206A_200D_206F_206C_200B_206A_200E_206C_206E_200B_202E_200C_200E_206E_206F_206F_202A_206C_200D_200B_200B_206C_206B_202E(text)) ? (-703602800) : (-703602812)); - continue; - case 12: - obj = rowOrDefault.GetValueOrDefault().Map.ValueNullable; - break; - } - map = obj; - num = ((!map.HasValue) ? (-703602809) : (-703602794)); + return true; } + if (territoryType == _loadedTerritoryType && _failed) + { + return false; + } + if (territoryType == _loadedTerritoryType && _candidateTextures != null) + { + PollCandidates(); + return _resolvedTexture != null; + } + if (territoryType == _loadedTerritoryType && Environment.TickCount64 < _retryAtMs) + { + return false; + } + _resolvedTexture = null; + _candidateTextures = null; + _failed = false; + _retryAtMs = 0L; + _loadedTerritoryType = territoryType; + _searchFrames = 0; + Map? map = _dataManager.GetExcelSheet<TerritoryType>().GetRowOrDefault(territoryType)?.Map.ValueNullable; + if (!map.HasValue || map.Value.RowId == 0) + { + _failed = true; + return false; + } + _sizeFactor = map.Value.SizeFactor; + _offsetX = map.Value.OffsetX; + _offsetY = map.Value.OffsetY; + string text = map.Value.Id.ExtractText(); + if (string.IsNullOrEmpty(text)) + { + _failed = true; + return false; + } + string[] array = text.Split('/'); + if (array.Length != 2) + { + _failed = true; + return false; + } + string value = array[0]; + string text2 = array[1]; + List<string> list = new List<string> { $"ui/map/{text}/{value}{text2}_m.tex" }; + if (text2 != "00") + { + list.Add($"ui/map/{value}/00/{value}00_m.tex"); + } + _logger.LogDebug("Starting map texture search for territory {TerritoryType}: {Paths}", territoryType, string.Join(", ", list)); + _candidateTextures = list.Select((string p) => _textureProvider.GetFromGame(p)).ToList(); + PollCandidates(); + return _resolvedTexture != null; } - [MethodImpl(MethodImplOptions.NoInlining)] private void PollCandidates() { - int num = ((_candidateTextures != null) ? 1719406812 : 1719406813); - ISharedImmediateTexture current = default(ISharedImmediateTexture); - while (true) + if (_candidateTextures == null) { - int num2 = num; - int num3 = 1719406812; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + foreach (ISharedImmediateTexture candidateTexture in _candidateTextures) + { + if (candidateTexture.GetWrapOrDefault() != null) { - case 2: - goto IL_004b; - case 1: + _resolvedTexture = candidateTexture; + _candidateTextures = null; return; - case 0: - { - using (List<ISharedImmediateTexture>.Enumerator enumerator = _candidateTextures.GetEnumerator()) - { - num = -2142994811; - while (true) - { - int num7 = num; - num3 = -2142994811; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = (enumerator.MoveNext() ? (-2142994815) : (-2142994809)); - break; - case 4: - current = enumerator.Current; - num = ((_202E_200B_200C_200B_206D_200E_200B_206F_200D_206E_202C_206D_200C_206C_200D_202D_206E_200E_206F_200C_206B_200F_200B_206A_206E_200F_202D_200D_200D_202E_202E_200C_200B_206A_206B_202E_206D_202E_202A_202D_202E(current, (IDalamudTextureWrap)null) == null) ? (-2142994811) : (-2142994812)); - break; - case 3: - num = -2142994811; - break; - case 1: - _resolvedTexture = current; - _candidateTextures = null; - return; - case 2: - goto end_IL_006e; - } - continue; - end_IL_006e: - break; - } - } - int searchFrames = _searchFrames; - num3 = 1; - num4 = searchFrames; - int num8 = num4 ^ num3; - int num9 = num4 & num3; - _searchFrames = num8 + (num9 + num9); - num = ((_searchFrames < 120) ? 613954225 : 613954226); - while (true) - { - int num10 = num; - num3 = 613954224; - num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 613954226; - break; - case 2: - _206D_206F_202C_200D_202B_202E_200C_200B_206C_206A_206D_202B_206B_202B_206B_202C_202A_206B_202C_200E_206E_200F_200F_206D_202A_206B_206F_206B_200D_200F_200D_206D_200C_206B_200D_202B_200D_206A_206D_200C_202E((ILogger)_logger, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1519773533), new object[2] { _loadedTerritoryType, 30L }); - _candidateTextures = null; - _retryAtMs = _200E_206C_202D_200C_200F_206A_202A_200E_200E_202C_202D_202D_202B_206B_206F_206F_200F_206D_206A_206E_202C_206E_200F_200F_206B_202A_206A_202A_200F_206A_206F_206A_200E_200D_206E_206D_206B_206B_200D_206E_202E() + 30000; - num = 613954225; - break; - case 1: - return; - } - } } - } - continue; - IL_004b: - num = 1719406813; + } + _searchFrames++; + if (_searchFrames >= 120) + { + _logger.LogWarning("Map texture search timed out for territory {TerritoryType}, retrying in {Delay}s", _loadedTerritoryType, 30L); + _candidateTextures = null; + _retryAtMs = Environment.TickCount64 + 30000; } } public IDalamudTextureWrap? GetTextureWrap() { - ISharedImmediateTexture? resolvedTexture = _resolvedTexture; - if (resolvedTexture == null) - { - return null; - } - return _202E_200B_200C_200B_206D_200E_200B_206F_200D_206E_202C_206D_200C_206C_200D_202D_206E_200E_206F_200C_206B_200F_200B_206A_206E_200F_202D_200D_200D_202E_202E_200C_200B_206A_206B_202E_206D_202E_202A_202D_202E(resolvedTexture, (IDalamudTextureWrap)null); + return _resolvedTexture?.GetWrapOrDefault(); } public Vector2 WorldToUV(float worldX, float worldZ) @@ -315,49 +168,4 @@ public sealed class MapTextureService Vector2 vector = (screenPos - imagePos) / imageSize; return UVToWorld(vector.X, vector.Y); } - - static long _200E_206C_202D_200C_200F_206A_202A_200E_200E_202C_202D_202D_202B_206B_206F_206F_200F_206D_206A_206E_202C_206E_200F_200F_206B_202A_206A_202A_200F_206A_206F_206A_200E_200D_206E_206D_206B_206B_200D_206E_202E() - { - return Environment.TickCount64; - } - - static bool _206C_200D_202E_202D_202C_202E_200C_202D_202C_202A_200F_206D_200B_206B_200B_206B_202A_206A_200D_206F_206C_200B_206A_200E_206C_206E_200B_202E_200C_200E_206E_206F_206F_202A_206C_200D_200B_200B_206C_206B_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static string[] _202B_200D_202E_202E_200B_206D_206C_206E_200C_200B_200E_202E_202B_200F_202C_200F_202E_206B_200E_206B_200C_202E_206D_206C_206F_206C_202D_200F_200B_200F_202D_206B_202A_206E_206D_206B_206A_202B_202A_200D_202E(string P_0, char P_1, StringSplitOptions P_2) - { - return P_0.Split(P_1, P_2); - } - - static bool _206A_200E_206B_206F_206B_200E_202B_206E_202E_200C_206F_206A_202E_200F_206B_206E_206A_200B_200D_202D_200B_202B_206A_200C_202E_206C_206D_206D_206D_206C_200F_202B_200D_200D_202C_206F_206B_206A_206A_206D_202E(string P_0, string P_1) - { - return P_0 != P_1; - } - - static string _200C_200F_206E_202C_206F_206E_206F_206F_200E_206B_202E_200B_206C_200F_200B_206A_200C_200E_202C_202A_202A_200B_202D_202C_202D_206B_202E_206A_200D_200E_202D_206E_202B_202C_200C_200C_202B_206C_206B_202E_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); - } - - static void _206F_200B_200E_206D_200C_200B_206B_206C_202A_206C_206C_206C_206D_202E_206E_206F_206A_200C_200D_200C_202D_202D_200E_206D_202E_202D_200D_202C_206C_200B_200E_202B_200F_202E_202E_206A_202D_206C_206A_206C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static IDalamudTextureWrap _202E_200B_200C_200B_206D_200E_200B_206F_200D_206E_202C_206D_200C_206C_200D_202D_206E_200E_206F_200C_206B_200F_200B_206A_206E_200F_202D_200D_200D_202E_202E_200C_200B_206A_206B_202E_206D_202E_202A_202D_202E(ISharedImmediateTexture P_0, IDalamudTextureWrap P_1) - { - return P_0.GetWrapOrDefault(P_1); - } - - static void _206D_206F_202C_200D_202B_202E_200C_200B_206C_206A_206D_202B_206B_202B_206B_202C_202A_206B_202C_200E_206E_200F_200F_206D_202A_206B_206F_206B_200D_200F_200D_206D_200C_206B_200D_202B_200D_206A_206D_200C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static ISharedImmediateTexture _202E_206B_206B_200F_206B_206E_202B_202D_200C_200F_202C_202E_200B_206B_200B_202B_202B_200D_202B_202A_202C_202C_206F_206C_206D_200E_202A_200C_200E_200E_202C_202B_206B_200C_202D_202B_200B_202E_200D_206B_202E(ITextureProvider P_0, string P_1) - { - return P_0.GetFromGame(P_1); - } } diff --git a/LLib/LLib.ImGui/WindowConfig.cs b/LLib/LLib.ImGui/WindowConfig.cs index 4aa4e7f..acd18ca 100644 --- a/LLib/LLib.ImGui/WindowConfig.cs +++ b/LLib/LLib.ImGui/WindowConfig.cs @@ -1,5 +1,8 @@ +using System.Reflection; + namespace LLib.ImGui; +[Obfuscation(Feature = "-rename", Exclude = false, ApplyToMembers = true)] public class WindowConfig { public bool IsPinned { get; set; } diff --git a/LLib/LLib.ImGui/WindowFlash.cs b/LLib/LLib.ImGui/WindowFlash.cs index 3b23e39..551a787 100644 --- a/LLib/LLib.ImGui/WindowFlash.cs +++ b/LLib/LLib.ImGui/WindowFlash.cs @@ -43,37 +43,17 @@ public static class WindowFlash public static void Flash(nint hwnd, uint count = 3u) { - int num = ((hwnd != 0) ? (-1584485795) : (-1584485796)); - while (true) + if (hwnd != 0) { - int num2 = num; - int num3 = -1584485795; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + FLASHWINFO pwfi = new FLASHWINFO { - case 0: - { - FLASHWINFO pwfi = new FLASHWINFO - { - cbSize = (uint)Marshal.SizeOf<FLASHWINFO>(), - hwnd = hwnd, - dwFlags = ((count == 0) ? 15u : 3u), - uCount = count, - dwTimeout = 0u - }; - FlashWindowEx(ref pwfi); - return; - } - case 1: - return; - case 2: - goto IL_0093; - } - continue; - IL_0093: - num = -1584485796; + cbSize = (uint)Marshal.SizeOf<FLASHWINFO>(), + hwnd = hwnd, + dwFlags = ((count == 0) ? 15u : 3u), + uCount = count, + dwTimeout = 0u + }; + FlashWindowEx(ref pwfi); } } } diff --git a/LLib/LLib.Inventory/CofferHelper.cs b/LLib/LLib.Inventory/CofferHelper.cs index a3155af..0c68d66 100644 --- a/LLib/LLib.Inventory/CofferHelper.cs +++ b/LLib/LLib.Inventory/CofferHelper.cs @@ -7,46 +7,15 @@ public static class CofferHelper public static bool IsGearCoffer(Item item) { ItemAction? valueNullable = item.ItemAction.ValueNullable; - int num = (valueNullable.HasValue ? (-77683553) : (-77683554)); - bool flag = default(bool); - uint rowId = default(uint); - while (true) + if (!valueNullable.HasValue) { - int num2 = num; - int num3 = -77683553; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - return false; - case 8: - return item.ItemUICategory.RowId == 61; - case 7: - flag = false; - num = -77683558; - break; - case 5: - num = ((!flag) ? (-77683557) : (-77683561)); - break; - case 3: - flag = true; - num = -77683558; - break; - case 2: - num = -77683554; - break; - case 6: - num = ((rowId != 1085) ? (-77683560) : (-77683556)); - break; - case 1: - return false; - case 0: - rowId = valueNullable.Value.RowId; - num = ((rowId == 388) ? (-77683556) : (-77683559)); - break; - } + return false; } + uint rowId = valueNullable.Value.RowId; + if ((rowId == 388 || rowId == 1085) ? true : false) + { + return item.ItemUICategory.RowId == 61; + } + return false; } } diff --git a/LLib/LLib.Inventory/InventoryContainers.cs b/LLib/LLib.Inventory/InventoryContainers.cs index 4966748..4ab6e8a 100644 --- a/LLib/LLib.Inventory/InventoryContainers.cs +++ b/LLib/LLib.Inventory/InventoryContainers.cs @@ -50,264 +50,87 @@ public static class InventoryContainers public unsafe static int CountFreeSlots(ReadOnlySpan<InventoryType> containers) { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? 422803500 : 422803490); - ReadOnlySpan<InventoryType> readOnlySpan = default(ReadOnlySpan<InventoryType>); - int num7 = default(int); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - int num9 = default(int); - int num11 = default(int); - InventoryItem* inventorySlot = default(InventoryItem*); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 422803495; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return 0; + } + int num = 0; + ReadOnlySpan<InventoryType> readOnlySpan = containers; + for (int i = 0; i < readOnlySpan.Length; i++) + { + InventoryType inventoryType = readOnlySpan[i]; + InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(inventoryType); + if (inventoryContainer == null) { - case 1: - { - InventoryType inventoryType = readOnlySpan[num7]; - inventoryContainer = ptr->GetInventoryContainer(inventoryType); - num = ((inventoryContainer == null) ? 422803501 : 422803493); - break; + continue; } - case 11: - num9 = 0; - readOnlySpan = containers; - num7 = 0; - num = 422803492; - break; - case 0: - num = ((num11 < inventoryContainer->Size) ? 422803491 : 422803501); - break; - case 10: + for (int j = 0; j < inventoryContainer->Size; j++) { - int num14 = num7; - num3 = 1; - num4 = num14; - num7 = (num4 | num3) + (num4 & num3); - num = 422803492; - break; - } - case 7: - { - int num10 = num11; - num3 = 1; - num4 = num10; - int num12 = num4 ^ num3; - int num13 = num4 & num3; - num11 = num12 + (num13 + num13); - num = 422803495; - break; - } - case 9: - { - int num8 = num9; - num3 = 1; - num4 = num8; - num9 = (num4 | num3) + (num4 & num3); - num = 422803488; - break; - } - case 5: - return 0; - case 12: - return num9; - case 6: - num = 422803490; - break; - case 8: - num = ((inventorySlot->ItemId != 0) ? 422803488 : 422803502); - break; - case 2: - num11 = 0; - num = 422803495; - break; - case 4: - inventorySlot = inventoryContainer->GetInventorySlot(num11); - num = ((inventorySlot == null) ? 422803502 : 422803503); - break; - case 3: - num = ((num7 < readOnlySpan.Length) ? 422803494 : 422803499); - break; + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(j); + if (inventorySlot == null || inventorySlot->ItemId == 0) + { + num++; + } } } + return num; } public unsafe static int CountItems(uint itemId, ReadOnlySpan<InventoryType> containers) { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? 107037197 : 107037193); - int num11 = default(int); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - int num7 = default(int); - ReadOnlySpan<InventoryType> readOnlySpan = default(ReadOnlySpan<InventoryType>); - int num5 = default(int); - InventoryItem* inventorySlot = default(InventoryItem*); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 107037196; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return 0; + } + int num = 0; + ReadOnlySpan<InventoryType> readOnlySpan = containers; + for (int i = 0; i < readOnlySpan.Length; i++) + { + InventoryType inventoryType = readOnlySpan[i]; + InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(inventoryType); + if (inventoryContainer == null) { - case 9: - num11 = 0; - num = 107037196; - break; - case 0: - num = ((num11 < inventoryContainer->Size) ? 107037190 : 107037191); - break; - case 1: - num7 = 0; - readOnlySpan = containers; - num5 = 0; - num = 107037184; - break; - case 3: - num = ((inventorySlot->ItemId != itemId) ? 107037192 : 107037188); - break; - case 7: - num = 107037193; - break; - case 8: - { - int num6 = num7; - num3 = inventorySlot->Quantity; - num4 = num6; - int num8 = num4 ^ num3; - int num9 = num4 & num3; - num7 = num8 + (num9 + num9); - num = 107037192; - break; + continue; } - case 5: - return 0; - case 10: - inventorySlot = inventoryContainer->GetInventorySlot(num11); - num = ((inventorySlot == null) ? 107037192 : 107037199); - break; - case 4: + for (int j = 0; j < inventoryContainer->Size; j++) { - int num12 = num11; - num3 = 1; - num4 = num12; - int num13 = num4 ^ num3; - int num14 = num4 & num3; - num11 = num13 + (num14 + num14); - num = 107037196; - break; - } - case 6: - { - InventoryType inventoryType = readOnlySpan[num5]; - inventoryContainer = ptr->GetInventoryContainer(inventoryType); - num = ((inventoryContainer == null) ? 107037191 : 107037189); - break; - } - case 2: - return num7; - case 11: - { - int num10 = num5; - num3 = 1; - num4 = num10; - num5 = (num4 | num3) + (num4 & num3); - num = 107037184; - break; - } - case 12: - num = ((num5 < readOnlySpan.Length) ? 107037194 : 107037198); - break; + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(j); + if (inventorySlot != null && inventorySlot->ItemId == itemId) + { + num += inventorySlot->Quantity; + } } } + return num; } public unsafe static List<InventoryItem> GetHqItems(ReadOnlySpan<InventoryType> containers) { List<InventoryItem> list = new List<InventoryItem>(); InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? (-877452053) : (-877452056)); - InventoryItem* inventorySlot = default(InventoryItem*); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - int num5 = default(int); - ReadOnlySpan<InventoryType> readOnlySpan = default(ReadOnlySpan<InventoryType>); - int num9 = default(int); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -877452054; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return list; + } + ReadOnlySpan<InventoryType> readOnlySpan = containers; + for (int i = 0; i < readOnlySpan.Length; i++) + { + InventoryType inventoryType = readOnlySpan[i]; + InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(inventoryType); + if (inventoryContainer == null) { - case 5: - inventorySlot = inventoryContainer->GetInventorySlot(num5); - num = ((inventorySlot == null) ? (-877452055) : (-877452050)); - break; - case 2: - return list; - case 9: - num = -877452056; - break; - case 0: - { - InventoryType inventoryType = readOnlySpan[num9]; - inventoryContainer = ptr->GetInventoryContainer(inventoryType); - num = ((inventoryContainer == null) ? (-877452051) : (-877452057)); - break; + continue; } - case 7: + for (int j = 0; j < inventoryContainer->Size; j++) { - int num10 = num9; - num3 = 1; - num4 = num10; - int num11 = num4 ^ num3; - int num12 = num4 & num3; - num9 = num11 + (num12 + num12); - num = -877452064; - break; - } - case 10: - num = ((num9 < readOnlySpan.Length) ? (-877452054) : (-877452063)); - break; - case 6: - num = ((num5 < inventoryContainer->Size) ? (-877452049) : (-877452051)); - break; - case 12: - num = (((inventorySlot->Flags & InventoryItem.ItemFlags.HighQuality) == 0) ? (-877452055) : (-877452062)); - break; - case 8: - list.Add(*inventorySlot); - num = -877452055; - break; - case 1: - readOnlySpan = containers; - num9 = 0; - num = -877452064; - break; - case 4: - num = ((inventorySlot->ItemId == 0) ? (-877452055) : (-877452058)); - break; - case 3: - { - int num6 = num5; - num3 = 1; - num4 = num6; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - num5 = num7 + (num8 + num8); - num = -877452052; - break; - } - case 11: - return list; - case 13: - num5 = 0; - num = -877452052; - break; + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(j); + if (inventorySlot != null && inventorySlot->ItemId != 0 && (inventorySlot->Flags & InventoryItem.ItemFlags.HighQuality) != InventoryItem.ItemFlags.None) + { + list.Add(*inventorySlot); + } } } + return list; } } diff --git a/LLib/LLib.Inventory/InventoryHelper.cs b/LLib/LLib.Inventory/InventoryHelper.cs index 49bc178..a14ce27 100644 --- a/LLib/LLib.Inventory/InventoryHelper.cs +++ b/LLib/LLib.Inventory/InventoryHelper.cs @@ -1,5 +1,4 @@ using System; -using System.Runtime.CompilerServices; using FFXIVClientStructs.FFXIV.Client.Game; using Lumina.Excel; using Lumina.Excel.Sheets; @@ -11,94 +10,35 @@ public static class InventoryHelper public unsafe static int GetItemCount(uint itemId, bool checkEquipped = false, bool checkArmory = false) { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? (-1076709592) : (-1076709591)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1076709592; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return ptr->GetInventoryItemCount(itemId, isHq: false, checkEquipped, checkArmory, 0) + ptr->GetInventoryItemCount(itemId, isHq: true, checkEquipped, checkArmory, 0); - case 1: - return 0; - case 2: - goto IL_0063; - } - continue; - IL_0063: - num = -1076709591; + return 0; } + return ptr->GetInventoryItemCount(itemId, isHq: false, checkEquipped, checkArmory, 0) + ptr->GetInventoryItemCount(itemId, isHq: true, checkEquipped, checkArmory, 0); } public unsafe static int GetItemCount(uint itemId, InventoryType inventoryType) { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? (-397486013) : (-397486005)); - int num7 = default(int); - int num8 = default(int); - InventoryItem* inventorySlot = default(InventoryItem*); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -397486013; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return 0; + } + InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(inventoryType); + if (inventoryContainer == null) + { + return 0; + } + int num = 0; + for (int i = 0; i < inventoryContainer->Size; i++) + { + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(i); + if (inventorySlot != null && inventorySlot->ItemId == itemId) { - case 1: - return 0; - case 7: - { - int num9 = num7; - num3 = 1; - num4 = num9; - num7 = (num4 | num3) + (num4 & num3); - num = -397486009; - break; - } - case 8: - return 0; - case 3: - { - int num10 = num8; - num3 = inventorySlot->Quantity; - num4 = num10; - int num11 = num4 ^ num3; - int num12 = num4 & num3; - num8 = num11 + (num12 + num12); - num = -397486012; - break; - } - case 0: - inventoryContainer = ptr->GetInventoryContainer(inventoryType); - num = ((inventoryContainer != null) ? (-397486007) : (-397486014)); - break; - case 4: - num = ((num7 < inventoryContainer->Size) ? (-397486010) : (-397486011)); - break; - case 6: - return num8; - case 9: - num = ((inventorySlot->ItemId != itemId) ? (-397486012) : (-397486016)); - break; - case 10: - num8 = 0; - num7 = 0; - num = -397486009; - break; - case 5: - inventorySlot = inventoryContainer->GetInventorySlot(num7); - num = ((inventorySlot == null) ? (-397486012) : (-397486006)); - break; - case 2: - num = -397486005; - break; + num += inventorySlot->Quantity; } } + return num; } public static bool HasFreeInventorySlot() @@ -109,167 +49,56 @@ public static class InventoryHelper public unsafe static int CountFreeInventorySlots() { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? 1747914912 : 1747914917); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - InventoryType inventoryType = default(InventoryType); - int num5 = default(int); - int num9 = default(int); - InventoryItem* inventorySlot = default(InventoryItem*); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1747914921; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return 0; + } + int num = 0; + for (InventoryType inventoryType = InventoryType.Inventory1; inventoryType <= InventoryType.Inventory4; inventoryType++) + { + InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(inventoryType); + if (inventoryContainer == null) { - case 6: - inventoryContainer = ptr->GetInventoryContainer(inventoryType); - num = ((inventoryContainer == null) ? 1747914922 : 1747914926); - break; - case 4: - num = ((inventoryType <= InventoryType.Inventory4) ? 1747914927 : 1747914915); - break; - case 2: - num = ((num5 < inventoryContainer->Size) ? 1747914921 : 1747914922); - break; - case 3: - inventoryType++; - num = 1747914925; - break; - case 5: - { - int num10 = num9; - num3 = 1; - num4 = num10; - num9 = (num4 | num3) + (num4 & num3); - num = 1747914920; - break; + continue; } - case 7: - num5 = 0; - num = 1747914923; - break; - case 9: - num9 = 0; - inventoryType = InventoryType.Inventory1; - num = 1747914925; - break; - case 8: - num = ((inventorySlot->ItemId != 0) ? 1747914920 : 1747914924); - break; - case 10: - return num9; - case 12: - return 0; - case 11: - num = 1747914917; - break; - case 1: + for (int i = 0; i < inventoryContainer->Size; i++) { - int num6 = num5; - num3 = 1; - num4 = num6; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - num5 = num7 + (num8 + num8); - num = 1747914923; - break; - } - case 0: - inventorySlot = inventoryContainer->GetInventorySlot(num5); - num = ((inventorySlot == null) ? 1747914924 : 1747914913); - break; + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(i); + if (inventorySlot == null || inventorySlot->ItemId == 0) + { + num++; + } } } + return num; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static int CountInventorySlotsWithCondition(uint itemId, Predicate<int> predicate) { - _206A_202D_202D_202C_200F_206B_206C_202C_206D_202D_206C_200C_206B_202B_200C_200E_202C_200E_200F_206B_202B_202D_200F_202D_200B_200B_206D_206A_200C_200B_202D_206F_202C_200F_206C_206A_206A_206D_200E_200C_202E((object)predicate, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-279872189)); + ArgumentNullException.ThrowIfNull(predicate, "predicate"); InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? (-1746491217) : (-1746491226)); - InventoryType inventoryType = default(InventoryType); - int num7 = default(int); - int num11 = default(int); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - InventoryItem* inventorySlot = default(InventoryItem*); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1746491230; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return 0; + } + int num = 0; + for (InventoryType inventoryType = InventoryType.Inventory1; inventoryType <= InventoryType.Inventory4; inventoryType++) + { + InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(inventoryType); + if (inventoryContainer == null) { - case 14: - num = ((inventoryType <= InventoryType.Inventory4) ? (-1746491221) : (-1746491231)); - break; - case 11: - num7 = 0; - num = -1746491225; - break; - case 13: - num11 = 0; - inventoryType = InventoryType.Inventory1; - num = -1746491220; - break; - case 9: - inventoryContainer = ptr->GetInventoryContainer(inventoryType); - num = ((inventoryContainer == null) ? (-1746491230) : (-1746491223)); - break; - case 5: - num = ((num7 < inventoryContainer->Size) ? (-1746491232) : (-1746491230)); - break; - case 10: - { - int num8 = num7; - num3 = 1; - num4 = num8; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - num7 = num9 + (num10 + num10); - num = -1746491225; - break; + continue; } - case 2: - inventorySlot = inventoryContainer->GetInventorySlot(num7); - num = ((inventorySlot == null) ? (-1746491224) : (-1746491227)); - break; - case 8: + for (int i = 0; i < inventoryContainer->Size; i++) { - int num12 = num11; - num3 = 1; - num4 = num12; - int num13 = num4 ^ num3; - int num14 = num4 & num3; - num11 = num13 + (num14 + num14); - num = -1746491224; - break; - } - case 0: - inventoryType++; - num = -1746491220; - break; - case 7: - num = ((inventorySlot->ItemId == 0) ? (-1746491224) : (-1746491218)); - break; - case 6: - num = -1746491226; - break; - case 3: - return num11; - case 1: - num = ((!predicate(inventorySlot->Quantity)) ? (-1746491224) : (-1746491222)); - break; - case 12: - num = ((inventorySlot->ItemId != itemId) ? (-1746491224) : (-1746491229)); - break; - case 4: - return 0; + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(i); + if (inventorySlot != null && inventorySlot->ItemId != 0 && inventorySlot->ItemId == itemId && predicate(inventorySlot->Quantity)) + { + num++; + } } } + return num; } public static bool IsItemEquipped(uint itemId) @@ -280,195 +109,76 @@ public static class InventoryHelper public unsafe static int GetEquippedItemSlot(uint itemId) { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? 1216447237 : 1216447232); - InventoryItem* inventorySlot = default(InventoryItem*); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - int num8 = default(int); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1216447236; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return -1; + } + InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(InventoryType.EquippedItems); + if (inventoryContainer == null) + { + return -1; + } + for (int i = 0; i < inventoryContainer->Size; i++) + { + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(i); + if (inventorySlot != null && inventorySlot->ItemId == itemId) { - case 9: - inventorySlot = inventoryContainer->GetInventorySlot(num8); - num = ((inventorySlot == null) ? 1216447246 : 1216447244); - break; - case 3: - return num8; - case 10: - { - int num7 = num8; - num3 = 1; - num4 = num7; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - num8 = num9 + (num10 + num10); - num = 1216447236; - break; - } - case 4: - return -1; - case 6: - return -1; - case 5: - num = 1216447232; - break; - case 0: - num = ((num8 < inventoryContainer->Size) ? 1216447245 : 1216447234); - break; - case 2: - num8 = 0; - num = 1216447236; - break; - case 7: - return -1; - case 1: - inventoryContainer = ptr->GetInventoryContainer(InventoryType.EquippedItems); - num = ((inventoryContainer != null) ? 1216447238 : 1216447235); - break; - case 8: - num = ((inventorySlot->ItemId != itemId) ? 1216447246 : 1216447239); - break; + return i; } } + return -1; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static int GetRemainingStackCapacity(uint itemId, ExcelSheet<Item> itemSheet) { - _206A_202D_202D_202C_200F_206B_206C_202C_206D_202D_206C_200C_206B_202B_200C_200E_202C_200E_200F_206B_202B_202D_200F_202D_200B_200B_206D_206A_200C_200B_202D_206F_202C_200F_206C_206A_206A_206D_200E_200C_202E((object)itemSheet, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-2041652730)); + ArgumentNullException.ThrowIfNull(itemSheet, "itemSheet"); InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? 2074514221 : 2074514216); - int num9 = default(int); - InventoryType inventoryType = default(InventoryType); - int num7 = default(int); - InventoryItem* inventorySlot = default(InventoryItem*); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - int num8 = default(int); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 2074514213; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return 0; + } + int num = (int)(itemSheet.GetRowOrDefault(itemId)?.StackSize ?? 0); + if (num <= 1) + { + return 0; + } + int num2 = 0; + for (InventoryType inventoryType = InventoryType.Inventory1; inventoryType <= InventoryType.Inventory4; inventoryType++) + { + InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(inventoryType); + if (inventoryContainer == null) { - case 14: - return 0; - case 8: - num9 = (int)(itemSheet.GetRowOrDefault(itemId)?.StackSize ?? 0); - num = ((num9 > 1) ? 2074514215 : 2074514219); - break; - case 10: - inventoryType++; - num = 2074514220; - break; - case 11: - num7 = 0; - num = 2074514213; - break; - case 1: - inventorySlot = inventoryContainer->GetInventorySlot(num7); - num = ((inventorySlot == null) ? 2074514214 : 2074514211); - break; - case 4: - return num8; - case 2: - num8 = 0; - inventoryType = InventoryType.Inventory1; - num = 2074514220; - break; - case 6: - num = ((inventorySlot->ItemId != itemId) ? 2074514214 : 2074514208); - break; - case 15: - { - int num11 = num8; - int num12 = num9; - num3 = inventorySlot->Quantity; - num4 = num12; - num3 = ~(~num4 + num3); - num4 = num11; - num8 = (num4 | num3) + (num4 & num3); - num = 2074514214; - break; + continue; } - case 12: - num = 2074514216; - break; - case 3: + for (int i = 0; i < inventoryContainer->Size; i++) { - int num10 = num7; - num3 = 1; - num4 = num10; - num7 = (num4 | num3) + (num4 & num3); - num = 2074514213; - break; - } - case 7: - inventoryContainer = ptr->GetInventoryContainer(inventoryType); - num = ((inventoryContainer == null) ? 2074514223 : 2074514222); - break; - case 9: - num = ((inventoryType <= InventoryType.Inventory4) ? 2074514210 : 2074514209); - break; - case 0: - num = ((num7 < inventoryContainer->Size) ? 2074514212 : 2074514223); - break; - case 13: - return 0; - case 5: - num = (((inventorySlot->Flags & InventoryItem.ItemFlags.HighQuality) != InventoryItem.ItemFlags.None) ? 2074514214 : 2074514218); - break; + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(i); + if (inventorySlot != null && inventorySlot->ItemId == itemId && (inventorySlot->Flags & InventoryItem.ItemFlags.HighQuality) == 0) + { + num2 += num - inventorySlot->Quantity; + } } } + return num2; } - [MethodImpl(MethodImplOptions.NoInlining)] public static int GetMaxHoldableQuantity(uint itemId, ExcelSheet<Item> itemSheet) { - _206A_202D_202D_202C_200F_206B_206C_202C_206D_202D_206C_200C_206B_202B_200C_200E_202C_200E_200F_206B_202B_202D_200F_202D_200B_200B_206D_206A_200C_200B_202D_206F_202C_200F_206C_206A_206A_206D_200E_200C_202E((object)itemSheet, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-2041652730)); + ArgumentNullException.ThrowIfNull(itemSheet, "itemSheet"); Item? rowOrDefault = itemSheet.GetRowOrDefault(itemId); - int num = (rowOrDefault.HasValue ? (-1200966345) : (-1200966350)); - int stackSize = default(int); - while (true) + if (!rowOrDefault.HasValue) { - int num2 = num; - int num3 = -1200966351; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - num = ((!rowOrDefault.Value.IsUnique) ? (-1200966349) : (-1200966352)); - break; - case 1: - return (GetItemCount(itemId, checkEquipped: true, checkArmory: true) <= 0) ? 1 : 0; - case 4: - return GetRemainingStackCapacity(itemId, itemSheet) + CountFreeInventorySlots() * stackSize; - case 3: - return 0; - case 2: - stackSize = (int)rowOrDefault.Value.StackSize; - num = ((stackSize > 0) ? (-1200966347) : (-1200966348)); - break; - case 0: - num = -1200966350; - break; - case 5: - return 0; - } + return 0; } - } - - static void _206A_202D_202D_202C_200F_206B_206C_202C_206D_202D_206C_200C_206B_202B_200C_200E_202C_200E_200F_206B_202B_202D_200F_202D_200B_200B_206D_206A_200C_200B_202D_206F_202C_200F_206C_206A_206A_206D_200E_200C_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); + if (rowOrDefault.Value.IsUnique) + { + return (GetItemCount(itemId, checkEquipped: true, checkArmory: true) <= 0) ? 1 : 0; + } + int stackSize = (int)rowOrDefault.Value.StackSize; + if (stackSize <= 0) + { + return 0; + } + return GetRemainingStackCapacity(itemId, itemSheet) + CountFreeInventorySlots() * stackSize; } } diff --git a/LLib/LLib.Inventory/ItemHandle.cs b/LLib/LLib.Inventory/ItemHandle.cs index 4cd9917..36f2d11 100644 --- a/LLib/LLib.Inventory/ItemHandle.cs +++ b/LLib/LLib.Inventory/ItemHandle.cs @@ -1,6 +1,4 @@ using System; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using Lumina.Excel.Sheets; @@ -13,25 +11,11 @@ public readonly record struct ItemHandle(uint RawId) { get { - int num = ((RawId >= 1000000) ? 357166028 : 357166029); - while (true) + if (RawId < 1000000) { - int num2 = num; - int num3 = 357166028; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_004b; - case 1: - return RawId; - case 0: - return RawId % 1000000; - } - continue; - IL_004b: - num = 357166029; + return RawId; } + return RawId % 1000000; } } @@ -61,49 +45,21 @@ public readonly record struct ItemHandle(uint RawId) public unsafe static ItemHandle FromInventorySlot(InventoryItem* slot) { - int num = ((slot != null) ? (-1287272070) : (-1287272069)); - while (true) + if (slot == null) { - int num2 = num; - int num3 = -1287272070; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0043; - case 0: - return new ItemHandle(slot->ItemId); - case 1: - return new ItemHandle(0u); - } - continue; - IL_0043: - num = -1287272069; + return new ItemHandle(0u); } + return new ItemHandle(slot->ItemId); } public unsafe int GetCount(bool checkEquipped = false, bool checkArmory = false) { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? 991214794 : 991214795); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 991214794; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0049; - case 0: - return ptr->GetInventoryItemCount(Id, isHq: false, checkEquipped, checkArmory, 0) + ptr->GetInventoryItemCount(Id, isHq: true, checkEquipped, checkArmory, 0); - case 1: - return 0; - } - continue; - IL_0049: - num = 991214795; + return 0; } + return ptr->GetInventoryItemCount(Id, isHq: false, checkEquipped, checkArmory, 0) + ptr->GetInventoryItemCount(Id, isHq: true, checkEquipped, checkArmory, 0); } public int GetCountInContainer(InventoryType container) @@ -140,68 +96,4 @@ public readonly record struct ItemHandle(uint RawId) { return GetRow(dataManager)?.LevelItem.RowId ?? 0; } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206E_206E_206A_200B_206C_200B_202B_202B_200C_206E_206F_206C_206C_202A_200B_200B_200C_206D_206F_200E_206A_200E_202A_202B_206A_206D_200C_200E_206D_200D_202A_202D_206A_206C_200F_200C_206C_200F_202E_206E_202E(); - _200F_206B_200D_200E_206E_206A_206E_200F_206F_200C_200E_206E_206D_200E_200B_202C_202D_202E_200F_206D_202D_200C_206E_200D_206B_206D_206F_206A_200F_206E_202E_202A_206A_200B_200C_206C_206F_206B_200D_202A_202E(stringBuilder, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(29412539)); - _200F_206B_200D_200E_206E_206A_206E_200F_206F_200C_200E_206E_206D_200E_200B_202C_202D_202E_200F_206D_202D_200C_206E_200D_206B_206D_206F_206A_200F_206E_202E_202A_206A_200B_200C_206C_206F_206B_200D_202A_202E(stringBuilder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1808631505)); - int num = ((!PrintMembers(stringBuilder)) ? 631534302 : 631534303); - while (true) - { - int num2 = num; - int num3 = 631534302; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 631534303; - break; - case 1: - _202C_200E_202D_200E_200E_200C_202C_206A_206B_206D_202C_206B_200E_200C_200E_202D_202D_206F_206B_206B_202A_200E_202E_206A_202B_206C_206E_200C_200F_206B_200B_200C_202A_200C_202E_200E_200E_206B_200C_206C_202E(stringBuilder, ' '); - num = 631534302; - break; - case 0: - _202C_200E_202D_200E_200E_200C_202C_206A_206B_206D_202C_206B_200E_200C_200E_202D_202D_206F_206B_206B_202A_200E_202E_206A_202B_206C_206E_200C_200F_206B_200B_200C_202A_200C_202E_200E_200E_206B_200C_206C_202E(stringBuilder, '}'); - return _200B_202B_206F_200F_200E_202E_206C_202B_206E_200B_206C_200B_202E_202E_206C_206F_206D_206A_202A_206B_206C_202B_200B_200C_206C_200F_202E_202B_200E_200B_202A_200D_200E_206F_200C_200F_202B_206B_206C_206E_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200F_206B_200D_200E_206E_206A_206E_200F_206F_200C_200E_206E_206D_200E_200B_202C_202D_202E_200F_206D_202D_200C_206E_200D_206B_206D_206F_206A_200F_206E_202E_202A_206A_200B_200C_206C_206F_206B_200D_202A_202E(builder, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-595664961)); - _200F_206B_200D_200E_206E_206A_206E_200F_206F_200C_200E_206E_206D_200E_200B_202C_202D_202E_200F_206D_202D_200C_206E_200D_206B_206D_206F_206A_200F_206E_202E_202A_206A_200B_200C_206C_206F_206B_200D_202A_202E(builder, RawId.ToString()); - _200F_206B_200D_200E_206E_206A_206E_200F_206F_200C_200E_206E_206D_200E_200B_202C_202D_202E_200F_206D_202D_200C_206E_200D_206B_206D_206F_206A_200F_206E_202E_202A_206A_200B_200C_206C_206F_206B_200D_202A_202E(builder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1970731150)); - _200F_206B_200D_200E_206E_206A_206E_200F_206F_200C_200E_206E_206D_200E_200B_202C_202D_202E_200F_206D_202D_200C_206E_200D_206B_206D_206F_206A_200F_206E_202E_202A_206A_200B_200C_206C_206F_206B_200D_202A_202E(builder, Id.ToString()); - _200F_206B_200D_200E_206E_206A_206E_200F_206F_200C_200E_206E_206D_200E_200B_202C_202D_202E_200F_206D_202D_200C_206E_200D_206B_206D_206F_206A_200F_206E_202E_202A_206A_200B_200C_206C_206F_206B_200D_202A_202E(builder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1700323707)); - _200F_206B_200D_200E_206E_206A_206E_200F_206F_200C_200E_206E_206D_200E_200B_202C_202D_202E_200F_206D_202D_200C_206E_200D_206B_206D_206F_206A_200F_206E_202E_202A_206A_200B_200C_206C_206F_206B_200D_202A_202E(builder, IsHq.ToString()); - return true; - } - - static StringBuilder _206E_206E_206A_200B_206C_200B_202B_202B_200C_206E_206F_206C_206C_202A_200B_200B_200C_206D_206F_200E_206A_200E_202A_202B_206A_206D_200C_200E_206D_200D_202A_202D_206A_206C_200F_200C_206C_200F_202E_206E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200F_206B_200D_200E_206E_206A_206E_200F_206F_200C_200E_206E_206D_200E_200B_202C_202D_202E_200F_206D_202D_200C_206E_200D_206B_206D_206F_206A_200F_206E_202E_202A_206A_200B_200C_206C_206F_206B_200D_202A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202C_200E_202D_200E_200E_200C_202C_206A_206B_206D_202C_206B_200E_200C_200E_202D_202D_206F_206B_206B_202A_200E_202E_206A_202B_206C_206E_200C_200F_206B_200B_200C_202A_200C_202E_200E_200E_206B_200C_206C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200B_202B_206F_200F_200E_202E_206C_202B_206E_200B_206C_200B_202E_202E_206C_206F_206D_206A_202A_206B_206C_202B_200B_200C_206C_200F_202E_202B_200E_200B_202A_200D_200E_206F_200C_200F_202B_206B_206C_206E_202E(object P_0) - { - return P_0.ToString(); - } } diff --git a/LLib/LLib.Logging/DalamudLoggerProvider.cs b/LLib/LLib.Logging/DalamudLoggerProvider.cs index da7fa10..710ab76 100644 --- a/LLib/LLib.Logging/DalamudLoggerProvider.cs +++ b/LLib/LLib.Logging/DalamudLoggerProvider.cs @@ -1,8 +1,6 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Globalization; -using System.Runtime.CompilerServices; using System.Text; using Dalamud.Plugin.Services; using Microsoft.Extensions.Logging; @@ -25,130 +23,6 @@ public sealed class DalamudLoggerProvider : ILoggerProvider, IDisposable, ISuppo public void Dispose() { } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - } - - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec__8<TState> where TState : notnull - { - public static readonly _003C_003Ec__8<TState> _003C_003E9 = new _003C_003Ec__8<TState>(); - - public static Action<object?, StringBuilder> _003C_003E9__8_0; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal void _003CLog_003Eb__8_0(object? scope, StringBuilder builder) - { - int num; - if (scope is IEnumerable<KeyValuePair<string, object>> enumerable) - { - IEnumerator<KeyValuePair<string, object>> enumerator = enumerable.GetEnumerator(); - try - { - num = 1757387982; - while (true) - { - int num2 = num; - int num3 = 1757387982; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = (_202E_200F_206A_200B_200E_206F_200D_206F_200E_202A_206D_200F_206F_202C_200F_206C_200F_202E_200E_200C_202C_200F_206F_200E_200B_200C_200B_202A_200F_206D_200E_206C_200B_206B_200C_202B_206C_200E_202D_206D_202E((IEnumerator)enumerator) ? 1757387983 : 1757387980); - break; - case 1: - { - KeyValuePair<string, object> current = enumerator.Current; - _206C_206C_200B_206D_202D_206E_202E_202D_200E_206A_200E_200C_206E_206B_206A_200D_200C_200D_200E_206E_200B_202E_202E_206A_206A_206A_206E_200B_200E_200E_200D_200F_206F_200F_206F_202B_200C_206A_202E_202B_202E(_202B_202D_202A_202C_202B_200C_200F_202C_206A_206D_200E_202C_200C_200F_200E_200B_202B_206F_202E_200E_200C_200C_206F_206E_200E_206D_200D_202C_200C_206B_200E_202D_202C_202A_202E_200F_200E_200B_200D_200F_202E(_202E_202A_206C_206E_206F_202C_206D_206E_202C_200C_200C_202B_200E_202B_202B_200D_200E_200B_202B_206B_202B_206E_200C_206B_206E_206B_200E_202C_202C_202C_206E_206B_202A_206B_206A_200D_200B_200B_206F_202E_202E(_206C_206C_200B_206D_202D_206E_202E_202D_200E_206A_200E_200C_206E_206B_206A_200D_200C_200D_200E_206E_200B_202E_202E_206A_206A_206A_206E_200B_200E_200E_200D_200F_206F_200F_206F_202B_200C_206A_202E_202B_202E(_202E_202A_206C_206E_206F_202C_206D_206E_202C_200C_200C_202B_200E_202B_202B_200D_200E_200B_202B_206B_202B_206E_200C_206B_206E_206B_200E_202C_202C_202C_206E_206B_202A_206B_206A_200D_200B_200B_206F_202E_202E(builder, '<'), current.Key), '='), current.Value), global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(783152655)); - num = 1757387982; - break; - } - case 3: - num = 1757387982; - break; - case 2: - return; - } - } - } - finally - { - num = ((enumerator == null) ? 1601489106 : 1601489107); - while (true) - { - int num7 = num; - int num3 = 1601489106; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1601489107; - break; - case 1: - _200E_202B_206E_200C_200B_200E_206F_200F_200B_206F_200B_202A_200D_206D_206C_202C_200D_200C_206F_200F_206C_206A_202B_206B_200C_206A_202E_206F_206B_200B_206F_202C_200E_202C_202D_202E_206A_202D_206F_206B_202E((IDisposable)enumerator); - num = 1601489106; - break; - case 0: - goto end_IL_00e6; - } - continue; - end_IL_00e6: - break; - } - } - } - num = ((scope == null) ? (-1655192650) : (-1655192651)); - while (true) - { - int num8 = num; - int num3 = -1655192649; - int num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1655192651; - break; - case 2: - _206C_206C_200B_206D_202D_206E_202E_202D_200E_206A_200E_200C_206E_206B_206A_200D_200C_200D_200E_206E_200B_202E_202E_206A_206A_206A_206E_200B_200E_200E_200D_200F_206F_200F_206F_202B_200C_206A_202E_202B_202E(_202B_202D_202A_202C_202B_200C_200F_202C_206A_206D_200E_202C_200C_200F_200E_200B_202B_206F_202E_200E_200C_200C_206F_206E_200E_206D_200D_202C_200C_206B_200E_202D_202C_202A_202E_200F_200E_200B_200D_200F_202E(_202E_202A_206C_206E_206F_202C_206D_206E_202C_200C_200C_202B_200E_202B_202B_200D_200E_200B_202B_206B_202B_206E_200C_206B_206E_206B_200E_202C_202C_202C_206E_206B_202A_206B_206A_200D_200B_200B_206F_202E_202E(builder, '<'), scope), global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(783152655)); - num = -1655192650; - break; - case 1: - return; - } - } - } - - static StringBuilder _202E_202A_206C_206E_206F_202C_206D_206E_202C_200C_200C_202B_200E_202B_202B_200D_200E_200B_202B_206B_202B_206E_200C_206B_206E_206B_200E_202C_202C_202C_206E_206B_202A_206B_206A_200D_200B_200B_206F_202E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206C_206C_200B_206D_202D_206E_202E_202D_200E_206A_200E_200C_206E_206B_206A_200D_200C_200D_200E_206E_200B_202E_202E_206A_206A_206A_206E_200B_200E_200E_200D_200F_206F_200F_206F_202B_200C_206A_202E_202B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202B_202D_202A_202C_202B_200C_200F_202C_206A_206D_200E_202C_200C_200F_200E_200B_202B_206F_202E_200E_200C_200C_206F_206E_200E_206D_200D_202C_200C_206B_200E_202D_202C_202A_202E_200F_200E_200B_200D_200F_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202E_200F_206A_200B_200E_206F_200D_206F_200E_202A_206D_200F_206F_202C_200F_206C_200F_202E_200E_200C_202C_200F_206F_200E_200B_200C_200B_202A_200F_206D_200E_206C_200B_206B_200C_202B_206C_200E_202D_206D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200E_202B_206E_200C_200B_200E_206F_200F_200B_206F_200B_202A_200D_206D_206C_202C_200D_200C_206F_200F_206C_206A_202B_206B_200C_206A_202E_206F_206B_200B_206F_202C_200E_202C_202D_202E_206A_202D_206F_206B_202E(IDisposable P_0) - { - P_0.Dispose(); - } } private readonly string? _name; @@ -168,309 +42,66 @@ public sealed class DalamudLoggerProvider : ILoggerProvider, IDisposable, ISuppo public IDisposable BeginScope<TState>(TState state) where TState : notnull { - IExternalScopeProvider? scopeProvider = ScopeProvider; - return ((scopeProvider != null) ? _200D_200D_200D_200D_202E_202C_202B_202A_200D_206C_202C_202B_206E_200C_202A_200F_202E_200C_202C_202D_206B_206A_206D_206C_206B_200D_200B_202E_206B_200B_202A_202E_200B_200F_206D_206C_202A_200F_200F_202E(scopeProvider, (object)state) : null) ?? NullScope.Instance; - } - - IDisposable ILogger.BeginScope<TState>(TState state) - { - //ILSpy generated this explicit interface implementation from .override directive in BeginScope - return this.BeginScope<TState>(state); + return ScopeProvider?.Push(state) ?? NullScope.Instance; } public bool IsEnabled(LogLevel logLevel) { - int num = ((logLevel != LogLevel.None) ? 833573961 : 833573962); - while (true) + if (logLevel == LogLevel.None) { - int num2 = num; - int num3 = 833573960; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0042; - case 1: - return ToSerilogLevel(logLevel) >= _200C_202A_200F_206D_200B_200B_206C_206B_202D_202A_206F_206A_202E_200E_200E_202B_202A_202B_200F_202E_206E_200C_206D_202C_200B_202E_206B_206B_202B_202C_202D_206B_202B_200C_202E_206A_202E_202B_202C_206B_202E(_pluginLog); - case 2: - return false; - } - continue; - IL_0042: - num = 833573962; + return false; } + return ToSerilogLevel(logLevel) >= _pluginLog.MinimumLogLevel; } - bool ILogger.IsEnabled(LogLevel logLevel) - { - //ILSpy generated this explicit interface implementation from .override directive in IsEnabled - return this.IsEnabled(logLevel); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func<TState, Exception?, string> formatter) { - int num = (IsEnabled(logLevel) ? (-262151412) : (-262151415)); - StringBuilder stringBuilder = default(StringBuilder); - LogEventLevel logEventLevel = default(LogEventLevel); - while (true) + if (!IsEnabled(logLevel)) { - int num2 = num; - int num3 = -262151412; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 4: - num = -262151415; - continue; - case 3: - _202D_206F_206C_206C_206A_202A_200D_200F_206B_200B_206A_206D_200D_206E_200F_202D_202B_206F_202E_200F_200E_206C_206F_206A_206D_206C_206C_200C_206A_202A_206F_206F_206E_206C_202E_200B_206A_202A_206B_200F_202E(stringBuilder, formatter(state, null)); - _202B_202B_202B_200F_202D_200E_202B_206B_200C_206E_200B_206E_206E_202A_202D_206C_200B_200F_202E_206B_200B_202D_206F_200D_200E_202D_206A_202E_200E_202C_202E_202E_206C_202A_202B_206F_206A_206C_206B_206A_202E(_pluginLog, logEventLevel, exception, _202E_202E_206E_200E_200D_200E_206F_202D_202D_202D_200D_200C_202D_200B_202A_200F_202E_202B_200F_206E_202B_200E_200B_206E_202A_206B_202B_200D_202C_206F_202A_202E_202E_206C_202E_202E_200C_200F_200B_206C_202E((object)stringBuilder), Array.Empty<object>()); - return; - case 0: - { - _206B_206F_202E_206A_200C_200F_200F_200B_206E_202C_206C_206F_200B_206A_202D_202B_202E_200D_202B_206B_206F_206A_202A_206A_206B_206E_206D_200D_206E_206C_200D_202C_206F_206E_200D_206A_200D_200B_200E_202D_202E((object)formatter, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(134909540)); - logEventLevel = ToSerilogLevel(logLevel); - stringBuilder = _206B_206B_202C_206B_206D_200B_206F_202A_206D_200D_200F_200C_202A_200D_202E_206E_202A_206E_202A_202B_206F_202C_202B_206D_202E_206E_202D_200F_202B_206C_202C_200F_200D_206F_200E_206A_200C_200F_206D_202E(); - IExternalScopeProvider? scopeProvider = ScopeProvider; - if (scopeProvider == null) - { - break; - } - scopeProvider.ForEachScope([MethodImpl(MethodImplOptions.NoInlining)] (object? scope, StringBuilder builder) => - { - int num5; - if (scope is IEnumerable<KeyValuePair<string, object>> enumerable) - { - IEnumerator<KeyValuePair<string, object>> enumerator = enumerable.GetEnumerator(); - try - { - num5 = 1757387982; - while (true) - { - int num6 = num5; - int num7 = 1757387982; - int num8 = num6; - int num9 = num8 + num7; - int num10 = num8 & num7; - switch (num9 - (num10 + num10)) - { - case 0: - num5 = (_003C_003Ec__8<TState>._202E_200F_206A_200B_200E_206F_200D_206F_200E_202A_206D_200F_206F_202C_200F_206C_200F_202E_200E_200C_202C_200F_206F_200E_200B_200C_200B_202A_200F_206D_200E_206C_200B_206B_200C_202B_206C_200E_202D_206D_202E((IEnumerator)enumerator) ? 1757387983 : 1757387980); - break; - case 1: - { - KeyValuePair<string, object> current = enumerator.Current; - _003C_003Ec__8<TState>._206C_206C_200B_206D_202D_206E_202E_202D_200E_206A_200E_200C_206E_206B_206A_200D_200C_200D_200E_206E_200B_202E_202E_206A_206A_206A_206E_200B_200E_200E_200D_200F_206F_200F_206F_202B_200C_206A_202E_202B_202E(_003C_003Ec__8<TState>._202B_202D_202A_202C_202B_200C_200F_202C_206A_206D_200E_202C_200C_200F_200E_200B_202B_206F_202E_200E_200C_200C_206F_206E_200E_206D_200D_202C_200C_206B_200E_202D_202C_202A_202E_200F_200E_200B_200D_200F_202E(_003C_003Ec__8<TState>._202E_202A_206C_206E_206F_202C_206D_206E_202C_200C_200C_202B_200E_202B_202B_200D_200E_200B_202B_206B_202B_206E_200C_206B_206E_206B_200E_202C_202C_202C_206E_206B_202A_206B_206A_200D_200B_200B_206F_202E_202E(_003C_003Ec__8<TState>._206C_206C_200B_206D_202D_206E_202E_202D_200E_206A_200E_200C_206E_206B_206A_200D_200C_200D_200E_206E_200B_202E_202E_206A_206A_206A_206E_200B_200E_200E_200D_200F_206F_200F_206F_202B_200C_206A_202E_202B_202E(_003C_003Ec__8<TState>._202E_202A_206C_206E_206F_202C_206D_206E_202C_200C_200C_202B_200E_202B_202B_200D_200E_200B_202B_206B_202B_206E_200C_206B_206E_206B_200E_202C_202C_202C_206E_206B_202A_206B_206A_200D_200B_200B_206F_202E_202E(builder, '<'), current.Key), '='), current.Value), global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(783152655)); - num5 = 1757387982; - break; - } - case 3: - num5 = 1757387982; - break; - case 2: - return; - } - } - } - finally - { - num5 = ((enumerator == null) ? 1601489106 : 1601489107); - while (true) - { - int num11 = num5; - int num7 = 1601489106; - int num8 = num11; - switch ((num8 | num7) - (num8 & num7)) - { - case 2: - num5 = 1601489107; - break; - case 1: - _003C_003Ec__8<TState>._200E_202B_206E_200C_200B_200E_206F_200F_200B_206F_200B_202A_200D_206D_206C_202C_200D_200C_206F_200F_206C_206A_202B_206B_200C_206A_202E_206F_206B_200B_206F_202C_200E_202C_202D_202E_206A_202D_206F_206B_202E((IDisposable)enumerator); - num5 = 1601489106; - break; - case 0: - goto end_IL_00e6; - } - continue; - end_IL_00e6: - break; - } - } - } - num5 = ((scope == null) ? (-1655192650) : (-1655192651)); - while (true) - { - int num12 = num5; - int num7 = -1655192649; - int num8 = num12; - switch ((num8 | num7) - (num8 & num7)) - { - case 0: - num5 = -1655192651; - break; - case 2: - _003C_003Ec__8<TState>._206C_206C_200B_206D_202D_206E_202E_202D_200E_206A_200E_200C_206E_206B_206A_200D_200C_200D_200E_206E_200B_202E_202E_206A_206A_206A_206E_200B_200E_200E_200D_200F_206F_200F_206F_202B_200C_206A_202E_202B_202E(_003C_003Ec__8<TState>._202B_202D_202A_202C_202B_200C_200F_202C_206A_206D_200E_202C_200C_200F_200E_200B_202B_206F_202E_200E_200C_200C_206F_206E_200E_206D_200D_202C_200C_206B_200E_202D_202C_202A_202E_200F_200E_200B_200D_200F_202E(_003C_003Ec__8<TState>._202E_202A_206C_206E_206F_202C_206D_206E_202C_200C_200C_202B_200E_202B_202B_200D_200E_200B_202B_206B_202B_206E_200C_206B_206E_206B_200E_202C_202C_202C_206E_206B_202A_206B_206A_200D_200B_200B_206F_202E_202E(builder, '<'), scope), global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(783152655)); - num5 = -1655192650; - break; - case 1: - return; - } - } - }, stringBuilder); - num = -262151411; - continue; - } - case 5: - return; - case 2: - _202D_206F_206C_206C_206A_202A_200D_200F_206B_200B_206A_206D_200D_206E_200F_202D_202B_206F_202E_200F_200E_206C_206F_206A_206D_206C_206C_200C_206A_202A_206F_206F_206E_206C_202E_200B_206A_202A_206B_200F_202E(_202D_206F_206C_206C_206A_202A_200D_200F_206B_200B_206A_206D_200D_206E_200F_202D_202B_206F_202E_200F_200E_206C_206F_206A_206D_206C_206C_200C_206A_202A_206F_206F_206E_206C_202E_200B_206A_202A_206B_200F_202E(stringBuilder, _name), global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1104179104)); - num = -262151409; - continue; - case 1: - break; - } - num = (_202C_202D_200B_206A_200B_200F_206C_200D_200D_202E_200B_206F_202B_200F_200E_206E_202B_200F_200D_206D_206E_206D_206B_206A_200E_200C_200B_202C_206A_206D_206F_202A_200C_200B_202C_202D_202C_200D_206F_206C_202E(_name) ? (-262151409) : (-262151410)); + return; } + ArgumentNullException.ThrowIfNull(formatter, "formatter"); + LogEventLevel level = ToSerilogLevel(logLevel); + StringBuilder stringBuilder = new StringBuilder(); + ScopeProvider?.ForEachScope(delegate(object? scope, StringBuilder builder) + { + if (scope is IEnumerable<KeyValuePair<string, object>> enumerable) + { + { + foreach (KeyValuePair<string, object> item in enumerable) + { + builder.Append('<').Append(item.Key).Append('=') + .Append(item.Value) + .Append("> "); + } + return; + } + } + if (scope != null) + { + builder.Append('<').Append(scope).Append("> "); + } + }, stringBuilder); + if (!string.IsNullOrEmpty(_name)) + { + stringBuilder.Append(_name).Append(": "); + } + stringBuilder.Append(formatter(state, null)); + _pluginLog.Write(level, exception, stringBuilder.ToString()); } - void ILogger.Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func<TState, Exception?, string> formatter) - { - //ILSpy generated this explicit interface implementation from .override directive in Log - this.Log<TState>(logLevel, eventId, state, exception, formatter); - } - - [MethodImpl(MethodImplOptions.NoInlining)] private static LogEventLevel ToSerilogLevel(LogLevel logLevel) { - int num; - LogEventLevel result = default(LogEventLevel); - switch (logLevel) + return logLevel switch { - default: - num = -1396162966; - goto IL_0029; - case LogLevel.Critical: - result = LogEventLevel.Fatal; - num = -1396162971; - goto IL_0029; - case LogLevel.Error: - goto IL_007b; - case LogLevel.Information: - goto IL_0093; - case LogLevel.Debug: - goto IL_00ab; - case LogLevel.Warning: - goto IL_00b8; - case LogLevel.Trace: - goto IL_00dc; - IL_0029: - while (true) - { - int num2 = num; - int num3 = -1396162973; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - goto end_IL_0029; - case 6: - return result; - case 1: - goto IL_007b; - case 9: - num = -1396162975; - break; - case 7: - goto IL_0093; - case 8: - num = -1396162966; - break; - case 0: - goto IL_00ab; - case 5: - goto IL_00b8; - case 2: - throw _200C_206F_206D_200F_202B_206C_200D_202B_202A_200F_200C_202A_206C_202E_200C_202C_206C_206C_206A_206A_206B_202D_206B_206F_206D_206F_206C_206B_206D_206C_202E_206C_206D_206C_200C_202A_200D_202E_206A_206B_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1228083926), (object)logLevel, (string)null); - case 3: - goto IL_00dc; - } - continue; - end_IL_0029: - break; - } - goto case LogLevel.Critical; - IL_00dc: - result = LogEventLevel.Verbose; - num = -1396162971; - goto IL_0029; - IL_00b8: - result = LogEventLevel.Warning; - num = -1396162971; - goto IL_0029; - IL_00ab: - result = LogEventLevel.Debug; - num = -1396162971; - goto IL_0029; - IL_0093: - result = LogEventLevel.Information; - num = -1396162971; - goto IL_0029; - IL_007b: - result = LogEventLevel.Error; - num = -1396162971; - goto IL_0029; - } - } - - static IDisposable _200D_200D_200D_200D_202E_202C_202B_202A_200D_206C_202C_202B_206E_200C_202A_200F_202E_200C_202C_202D_206B_206A_206D_206C_206B_200D_200B_202E_206B_200B_202A_202E_200B_200F_206D_206C_202A_200F_200F_202E(IExternalScopeProvider P_0, object P_1) - { - return P_0.Push(P_1); - } - - static LogEventLevel _200C_202A_200F_206D_200B_200B_206C_206B_202D_202A_206F_206A_202E_200E_200E_202B_202A_202B_200F_202E_206E_200C_206D_202C_200B_202E_206B_206B_202B_202C_202D_206B_202B_200C_202E_206A_202E_202B_202C_206B_202E(IPluginLog P_0) - { - return P_0.MinimumLogLevel; - } - - static void _206B_206F_202E_206A_200C_200F_200F_200B_206E_202C_206C_206F_200B_206A_202D_202B_202E_200D_202B_206B_206F_206A_202A_206A_206B_206E_206D_200D_206E_206C_200D_202C_206F_206E_200D_206A_200D_200B_200E_202D_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static StringBuilder _206B_206B_202C_206B_206D_200B_206F_202A_206D_200D_200F_200C_202A_200D_202E_206E_202A_206E_202A_202B_206F_202C_202B_206D_202E_206E_202D_200F_202B_206C_202C_200F_200D_206F_200E_206A_200C_200F_206D_202E() - { - return new StringBuilder(); - } - - static bool _202C_202D_200B_206A_200B_200F_206C_200D_200D_202E_200B_206F_202B_200F_200E_206E_202B_200F_200D_206D_206E_206D_206B_206A_200E_200C_200B_202C_206A_206D_206F_202A_200C_200B_202C_202D_202C_200D_206F_206C_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static StringBuilder _202D_206F_206C_206C_206A_202A_200D_200F_206B_200B_206A_206D_200D_206E_200F_202D_202B_206F_202E_200F_200E_206C_206F_206A_206D_206C_206C_200C_206A_202A_206F_206F_206E_206C_202E_200B_206A_202A_206B_200F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static string _202E_202E_206E_200E_200D_200E_206F_202D_202D_202D_200D_200C_202D_200B_202A_200F_202E_202B_200F_206E_202B_200E_200B_206E_202A_206B_202B_200D_202C_206F_202A_202E_202E_206C_202E_202E_200C_200F_200B_206C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202B_202B_202B_200F_202D_200E_202B_206B_200C_206E_200B_206E_206E_202A_202D_206C_200B_200F_202E_206B_200B_202D_206F_200D_200E_202D_206A_202E_200E_202C_202E_202E_206C_202A_202B_206F_206A_206C_206B_206A_202E(IPluginLog P_0, LogEventLevel P_1, Exception P_2, string P_3, object[] P_4) - { - P_0.Write(P_1, P_2, P_3, P_4); - } - - static ArgumentOutOfRangeException _200C_206F_206D_200F_202B_206C_200D_202B_202A_200F_200C_202A_206C_202E_200C_202C_206C_206C_206A_206A_206B_202D_206B_206F_206D_206F_206C_206B_206D_206C_202E_206C_206D_206C_200C_202A_200D_202E_206A_206B_202E(string P_0, object P_1, string P_2) - { - return new ArgumentOutOfRangeException(P_0, P_1, P_2); + LogLevel.Trace => LogEventLevel.Verbose, + LogLevel.Debug => LogEventLevel.Debug, + LogLevel.Information => LogEventLevel.Information, + LogLevel.Warning => LogEventLevel.Warning, + LogLevel.Error => LogEventLevel.Error, + LogLevel.Critical => LogEventLevel.Fatal, + _ => throw new ArgumentOutOfRangeException("logLevel", logLevel, null), + }; } } @@ -480,10 +111,9 @@ public sealed class DalamudLoggerProvider : ILoggerProvider, IDisposable, ISuppo private IExternalScopeProvider? _scopeProvider; - [MethodImpl(MethodImplOptions.NoInlining)] public DalamudLoggerProvider(IPluginLog pluginLog, Func<string, string?>? categoryNameFormatter = null) { - _200B_206D_206B_206A_202A_206D_200B_206F_202B_206A_200C_206F_206E_206E_206B_206E_200C_206E_200E_206F_206B_202E_200E_200B_200E_202E_202A_206B_202D_206D_200F_200F_200F_200E_206E_206C_206B_200D_206B_200C_202E((object)pluginLog, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1117547694)); + ArgumentNullException.ThrowIfNull(pluginLog, "pluginLog"); _pluginLog = pluginLog; _categoryNameFormatter = categoryNameFormatter ?? ((Func<string, string>)((string t) => t)); } @@ -491,100 +121,32 @@ public sealed class DalamudLoggerProvider : ILoggerProvider, IDisposable, ISuppo public ILogger CreateLogger(string categoryName) { string name = _categoryNameFormatter(categoryName); - int num = ((!LooksObfuscated(name)) ? (-1377550317) : (-1377550318)); - while (true) + if (LooksObfuscated(name)) { - int num2 = num; - int num3 = -1377550317; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return new DalamudLogger(name, this, _pluginLog); - case 1: - name = null; - num = -1377550317; - break; - case 2: - num = -1377550318; - break; - } + name = null; } - } - - ILogger ILoggerProvider.CreateLogger(string categoryName) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateLogger - return this.CreateLogger(categoryName); + return new DalamudLogger(name, this, _pluginLog); } private static bool LooksObfuscated(string? name) { - int num = ((!_200B_202E_206E_206B_206D_202D_206E_200F_206A_202A_200C_200B_200C_206D_202E_206E_206A_202A_202A_202E_206A_206A_202A_200F_200E_206A_202D_202A_206A_206E_206F_202A_206F_200B_202D_206A_202E_202D_202E_200F_202E(name)) ? (-1967590757) : (-1967590764)); - char c = default(char); - string text = default(string); - int num5 = default(int); - UnicodeCategory unicodeCategory = default(UnicodeCategory); - bool flag = default(bool); - while (true) + if (string.IsNullOrEmpty(name)) { - int num2 = num; - int num3 = -1967590755; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return false; + } + foreach (char c in name) + { + if (char.IsControl(c)) { - case 4: - c = _202A_206E_202A_206B_206B_200B_206B_206A_200E_206E_202B_206B_200D_200B_200F_202B_206F_206C_200E_200B_202D_200E_206D_200C_202A_202B_206D_200E_206A_206E_200D_200E_202A_206C_206D_206A_200D_206E_200E_202A_202E(text, num5); - num = ((!char.IsControl(c)) ? (-1967590758) : (-1967590756)); - break; - case 11: - return false; - case 2: return true; - case 7: - unicodeCategory = _200D_200D_206D_200C_200F_206D_200D_200F_206F_202C_200C_200B_202B_206B_206C_206C_206F_206B_206B_206A_206E_206A_202D_206B_202B_202E_202D_206D_206C_202D_206C_202E_200B_200F_202E_206D_200D_200E_202A_202D_202E(c); - num = (((uint)(unicodeCategory - 15) <= 2u) ? (-1967590768) : (-1967590767)); - break; - case 3: - num = ((!flag) ? (-1967590755) : (-1967590753)); - break; - case 5: - num = ((num5 < _206C_206E_200B_206A_200F_202D_202B_206F_206B_206B_206A_206A_202B_202A_202B_206A_202D_206A_206F_202A_206B_206A_206B_206B_202D_206D_206E_200F_202E_206E_202E_200F_202D_206A_206D_206F_200F_200D_202E_202E(text)) ? (-1967590759) : (-1967590762)); - break; - case 8: - flag = false; - num = -1967590754; - break; - case 0: - { - int num6 = num5; - num3 = 1; - num4 = num6; - num5 = (num4 | num3) + (num4 & num3); - num = -1967590760; - break; } - case 1: + UnicodeCategory unicodeCategory = CharUnicodeInfo.GetUnicodeCategory(c); + if (((uint)(unicodeCategory - 15) <= 2u || unicodeCategory == UnicodeCategory.OtherNotAssigned) ? true : false) + { return true; - case 9: - return false; - case 10: - num = -1967590764; - break; - case 12: - num = ((unicodeCategory != UnicodeCategory.OtherNotAssigned) ? (-1967590763) : (-1967590768)); - break; - case 6: - text = name; - num5 = 0; - num = -1967590760; - break; - case 13: - flag = true; - num = -1967590754; - break; } } + return false; } public void SetScopeProvider(IExternalScopeProvider scopeProvider) @@ -592,44 +154,7 @@ public sealed class DalamudLoggerProvider : ILoggerProvider, IDisposable, ISuppo _scopeProvider = scopeProvider; } - void ISupportExternalScope.SetScopeProvider(IExternalScopeProvider scopeProvider) - { - //ILSpy generated this explicit interface implementation from .override directive in SetScopeProvider - this.SetScopeProvider(scopeProvider); - } - public void Dispose() { } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static void _200B_206D_206B_206A_202A_206D_200B_206F_202B_206A_200C_206F_206E_206E_206B_206E_200C_206E_200E_206F_206B_202E_200E_200B_200E_202E_202A_206B_202D_206D_200F_200F_200F_200E_206E_206C_206B_200D_206B_200C_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static bool _200B_202E_206E_206B_206D_202D_206E_200F_206A_202A_200C_200B_200C_206D_202E_206E_206A_202A_202A_202E_206A_206A_202A_200F_200E_206A_202D_202A_206A_206E_206F_202A_206F_200B_202D_206A_202E_202D_202E_200F_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static char _202A_206E_202A_206B_206B_200B_206B_206A_200E_206E_202B_206B_200D_200B_200F_202B_206F_206C_200E_200B_202D_200E_206D_200C_202A_202B_206D_200E_206A_206E_200D_200E_202A_206C_206D_206A_200D_206E_200E_202A_202E(string P_0, int P_1) - { - return P_0[P_1]; - } - - static UnicodeCategory _200D_200D_206D_200C_200F_206D_200D_200F_206F_202C_200C_200B_202B_206B_206C_206C_206F_206B_206B_206A_206E_206A_202D_206B_202B_202E_202D_206D_206C_202D_206C_202E_200B_200F_202E_206D_200D_200E_202A_202D_202E(char P_0) - { - return CharUnicodeInfo.GetUnicodeCategory(P_0); - } - - static int _206C_206E_200B_206A_200F_202D_202B_206F_206B_206B_206A_206A_202B_202A_202B_206A_202D_206A_206F_202A_206B_206A_206B_206B_202D_206D_206E_200F_202E_206E_202E_200F_202D_206A_206D_206F_200F_200D_202E_202E(string P_0) - { - return P_0.Length; - } } diff --git a/LLib/LLib.Movement.Unstuck/RecoveryDecision.cs b/LLib/LLib.Movement.Unstuck/RecoveryDecision.cs index ad98f2a..c529871 100644 --- a/LLib/LLib.Movement.Unstuck/RecoveryDecision.cs +++ b/LLib/LLib.Movement.Unstuck/RecoveryDecision.cs @@ -1,109 +1,3 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; - namespace LLib.Movement.Unstuck; -public readonly record struct RecoveryDecision(RecoveryDecisionKind Kind, IRecoveryRung? Rung, RecoveryExhaustion? Exhaustion) -{ - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200C_206E_200E_206B_206B_202E_200D_206B_200B_200F_206F_206D_206F_200C_206A_206C_202A_206E_206D_200B_200F_202B_200B_206A_206D_206E_202E_206F_200D_206F_206F_202E_206E_202A_206B_200D_202A_202D_206C_200F_202E(); - _200C_202E_202C_206A_200C_206A_202A_206D_206E_206D_206A_206F_206F_206C_202C_206B_206A_202E_206F_202B_200D_200B_206F_202B_206F_206B_206E_200E_200F_206A_200E_202A_202C_202D_200C_202B_206C_206B_206D_202D_202E(stringBuilder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(74641930)); - _200C_202E_202C_206A_200C_206A_202A_206D_206E_206D_206A_206F_206F_206C_202C_206B_206A_202E_206F_202B_200D_200B_206F_202B_206F_206B_206E_200E_200F_206A_200E_202A_202C_202D_200C_202B_206C_206B_206D_202D_202E(stringBuilder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1581517409)); - int num = ((!PrintMembers(stringBuilder)) ? 836946002 : 836946003); - while (true) - { - int num2 = num; - int num3 = 836946002; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 836946003; - break; - case 0: - _200F_202E_206E_202E_202C_206A_206D_200E_200B_206C_206C_206B_206F_206F_206F_206D_200C_202C_200D_200D_200D_202D_200B_202A_206C_202B_200B_200C_200C_206D_200D_206A_202A_200D_200D_202E_206D_206F_202E_202C_202E(stringBuilder, '}'); - return _200B_206A_206D_200D_206C_200B_206A_200E_206E_206D_200F_202C_200D_206A_202B_202C_202D_200B_206D_200B_200B_202A_202D_206B_202D_206B_206A_202B_206D_202A_206D_202C_202A_200B_206C_200D_200F_200C_200D_200C_202E((object?)stringBuilder); - case 1: - _200F_202E_206E_202E_202C_206A_206D_200E_200B_206C_206C_206B_206F_206F_206F_206D_200C_202C_200D_200D_200D_202D_200B_202A_206C_202B_200B_200C_200C_206D_200D_206A_202A_200D_200D_202E_206D_206F_202E_202C_202E(stringBuilder, ' '); - num = 836946002; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200C_202E_202C_206A_200C_206A_202A_206D_206E_206D_206A_206F_206F_206C_202C_206B_206A_202E_206F_202B_200D_200B_206F_202B_206F_206B_206E_200E_200F_206A_200E_202A_202C_202D_200C_202B_206C_206B_206D_202D_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-409624799)); - _200C_202E_202C_206A_200C_206A_202A_206D_206E_206D_206A_206F_206F_206C_202C_206B_206A_202E_206F_202B_200D_200B_206F_202B_206F_206B_206E_200E_200F_206A_200E_202A_202C_202D_200C_202B_206C_206B_206D_202D_202E(builder, Kind.ToString()); - _200C_202E_202C_206A_200C_206A_202A_206D_206E_206D_206A_206F_206F_206C_202C_206B_206A_202E_206F_202B_200D_200B_206F_202B_206F_206B_206E_200E_200F_206A_200E_202A_202C_202D_200C_202B_206C_206B_206D_202D_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1157142729)); - _202D_206A_206D_200C_200E_202A_202E_202D_202B_200F_200E_202E_200B_206C_206E_202E_200B_202B_206F_200B_200F_206A_206C_206C_200F_206B_206A_206C_202C_206B_206B_206C_206F_206C_202C_200C_202E_200E_200F_202A_202E(builder, (object?)Rung); - _200C_202E_202C_206A_200C_206A_202A_206D_206E_206D_206A_206F_206F_206C_202C_206B_206A_202E_206F_202B_200D_200B_206F_202B_206F_206B_206E_200E_200F_206A_200E_202A_202C_202D_200C_202B_206C_206B_206D_202D_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-113611179)); - _202D_206A_206D_200C_200E_202A_202E_202D_202B_200F_200E_202E_200B_206C_206E_202E_200B_202B_206F_200B_200F_206A_206C_206C_200F_206B_206A_206C_202C_206B_206B_206C_206F_206C_202C_200C_202E_200E_200F_202A_202E(builder, (object?)Exhaustion); - return true; - } - - [CompilerGenerated] - public bool Equals(RecoveryDecision other) - { - int num = ((!EqualityComparer<RecoveryDecisionKind>.Default.Equals(Kind, other.Kind)) ? 379657536 : 379657539); - while (true) - { - int num2 = num; - int num3 = 379657538; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = 379657539; - break; - case 0: - return EqualityComparer<RecoveryExhaustion>.Default.Equals(Exhaustion, other.Exhaustion); - case 2: - return false; - case 1: - num = ((!EqualityComparer<IRecoveryRung>.Default.Equals(Rung, other.Rung)) ? 379657536 : 379657538); - break; - } - } - } - - bool IEquatable<RecoveryDecision>.Equals(RecoveryDecision other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder? _200C_206E_200E_206B_206B_202E_200D_206B_200B_200F_206F_206D_206F_200C_206A_206C_202A_206E_206D_200B_200F_202B_200B_206A_206D_206E_202E_206F_200D_206F_206F_202E_206E_202A_206B_200D_202A_202D_206C_200F_202E() - { - return new StringBuilder(); - } - - static StringBuilder? _200C_202E_202C_206A_200C_206A_202A_206D_206E_206D_206A_206F_206F_206C_202C_206B_206A_202E_206F_202B_200D_200B_206F_202B_206F_206B_206E_200E_200F_206A_200E_202A_202C_202D_200C_202B_206C_206B_206D_202D_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _200F_202E_206E_202E_202C_206A_206D_200E_200B_206C_206C_206B_206F_206F_206F_206D_200C_202C_200D_200D_200D_202D_200B_202A_206C_202B_200B_200C_200C_206D_200D_206A_202A_200D_200D_202E_206D_206F_202E_202C_202E(StringBuilder? P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string? _200B_206A_206D_200D_206C_200B_206A_200E_206E_206D_200F_202C_200D_206A_202B_202C_202D_200B_206D_200B_200B_202A_202D_206B_202D_206B_206A_202B_206D_202A_206D_202C_202A_200B_206C_200D_200F_200C_200D_200C_202E(object? P_0) - { - return P_0.ToString(); - } - - static StringBuilder? _202D_206A_206D_200C_200E_202A_202E_202D_202B_200F_200E_202E_200B_206C_206E_202E_200B_202B_206F_200B_200F_206A_206C_206C_200F_206B_206A_206C_202C_206B_206B_206C_206F_206C_202C_200C_202E_200E_200F_202A_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } -} +public readonly record struct RecoveryDecision(RecoveryDecisionKind Kind, IRecoveryRung? Rung, RecoveryExhaustion? Exhaustion); diff --git a/LLib/LLib.Movement.Unstuck/RecoveryExhaustion.cs b/LLib/LLib.Movement.Unstuck/RecoveryExhaustion.cs index f18ec7f..a78614c 100644 --- a/LLib/LLib.Movement.Unstuck/RecoveryExhaustion.cs +++ b/LLib/LLib.Movement.Unstuck/RecoveryExhaustion.cs @@ -1,153 +1,5 @@ -using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; namespace LLib.Movement.Unstuck; -public sealed record RecoveryExhaustion(int Attempts, IReadOnlyList<string> RungsFired, long FirstStallMs, long LastStallMs) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200F_206F_206F_202A_202B_206F_200B_202A_200E_202C_206A_200E_200E_200F_200C_200E_206B_206A_206B_200F_206C_200E_206E_206E_200B_206F_202C_202C_202B_202B_200E_202A_206E_202C_202A_202D_206F_202A_200E_200D_202E(typeof(RecoveryExhaustion).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202E_206B_206F_206E_200B_206D_206E_200E_200E_200B_202B_206A_206B_206E_206A_206B_202C_206C_202C_206C_202C_206D_206C_206B_202B_200B_200C_206F_202A_200D_206C_202B_206C_206B_200C_200B_206D_200E_202E_206D_202E(); - _206C_206D_200C_202C_206F_206A_202E_202D_202B_200D_200F_200F_200F_200F_202E_202E_200F_200F_202E_200E_206A_202D_200B_200E_200B_202D_202E_200F_200E_202A_206E_200E_206A_202D_206A_206D_206B_202A_200E_206E_202E(stringBuilder, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-390353260)); - _206C_206D_200C_202C_206F_206A_202E_202D_202B_200D_200F_200F_200F_200F_202E_202E_200F_200F_202E_200E_206A_202D_200B_200E_200B_202D_202E_200F_200E_202A_206E_200E_206A_202D_206A_206D_206B_202A_200E_206E_202E(stringBuilder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1148273145)); - int num = ((!PrintMembers(stringBuilder)) ? (-834076820) : (-834076819)); - while (true) - { - int num2 = num; - int num3 = -834076820; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -834076819; - break; - case 0: - _206D_202C_200C_206A_200B_206C_202B_202B_202B_200E_202C_206C_206A_200D_200E_200D_206E_200B_200E_206D_206C_200B_200E_202B_206C_200D_200D_206C_206C_200E_202B_200C_200E_200F_206A_206E_206C_202E_202C_206A_202E(stringBuilder, '}'); - return _200B_202D_202D_200B_206A_202A_202A_206B_206C_206C_200D_206E_206C_206E_206C_206F_206C_202E_200D_200E_202D_202C_206D_200B_200B_206C_202E_206D_200C_206D_206B_202A_206C_200F_202A_206D_200D_206B_200D_206E_202E((object)stringBuilder); - case 1: - _206D_202C_200C_206A_200B_206C_202B_202B_202B_200E_202C_206C_206A_200D_200E_200D_206E_200B_200E_206D_206C_200B_200E_202B_206C_200D_200D_206C_206C_200E_202B_200C_200E_200F_206A_206E_206C_202E_202C_206A_202E(stringBuilder, ' '); - num = -834076820; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206C_200B_200F_206F_206E_206F_202D_206D_206C_202D_206E_202A_200E_206D_202C_206D_202C_200C_206E_202C_200F_206F_206B_200E_200F_206B_206A_200B_202A_206A_206B_206A_206F_206C_200B_202D_206D_200D_202E_202E(); - _206C_206D_200C_202C_206F_206A_202E_202D_202B_200D_200F_200F_200F_200F_202E_202E_200F_200F_202E_200E_206A_202D_200B_200E_200B_202D_202E_200F_200E_202A_206E_200E_206A_202D_206A_206D_206B_202A_200E_206E_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-53828862)); - _206C_206D_200C_202C_206F_206A_202E_202D_202B_200D_200F_200F_200F_200F_202E_202E_200F_200F_202E_200E_206A_202D_200B_200E_200B_202D_202E_200F_200E_202A_206E_200E_206A_202D_206A_206D_206B_202A_200E_206E_202E(builder, Attempts.ToString()); - _206C_206D_200C_202C_206F_206A_202E_202D_202B_200D_200F_200F_200F_200F_202E_202E_200F_200F_202E_200E_206A_202D_200B_200E_200B_202D_202E_200F_200E_202A_206E_200E_206A_202D_206A_206D_206B_202A_200E_206E_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-596316751)); - _200D_202A_200F_200E_206A_202C_202A_200F_206C_200F_200B_206C_202E_200E_200B_206D_206F_200B_206B_202C_200C_202D_200C_202B_206E_200C_206D_200F_202B_202D_206E_206B_200E_206A_200B_206E_200C_206F_206D_202E_202E(builder, (object)RungsFired); - _206C_206D_200C_202C_206F_206A_202E_202D_202B_200D_200F_200F_200F_200F_202E_202E_200F_200F_202E_200E_206A_202D_200B_200E_200B_202D_202E_200F_200E_202A_206E_200E_206A_202D_206A_206D_206B_202A_200E_206E_202E(builder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(118713089)); - _206C_206D_200C_202C_206F_206A_202E_202D_202B_200D_200F_200F_200F_200F_202E_202E_200F_200F_202E_200E_206A_202D_200B_200E_200B_202D_202E_200F_200E_202A_206E_200E_206A_202D_206A_206D_206B_202A_200E_206E_202E(builder, FirstStallMs.ToString()); - _206C_206D_200C_202C_206F_206A_202E_202D_202B_200D_200F_200F_200F_200F_202E_202E_200F_200F_202E_200E_206A_202D_200B_200E_200B_202D_202E_200F_200E_202A_206E_200E_206A_202D_206A_206D_206B_202A_200E_206E_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(616880075)); - _206C_206D_200C_202C_206F_206A_202E_202D_202B_200D_200F_200F_200F_200F_202E_202E_200F_200F_202E_200E_206A_202D_200B_200E_200B_202D_202E_200F_200E_202A_206E_200E_206A_202D_206A_206D_206B_202A_200E_206E_202E(builder, LastStallMs.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(RecoveryExhaustion? other) - { - int num = (((object)this == other) ? (-542937588) : (-542937600)); - while (true) - { - int num2 = num; - int num3 = -542937596; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return EqualityComparer<long>.Default.Equals(LastStallMs, other.LastStallMs); - case 1: - return false; - case 2: - num = ((!_202B_200F_202A_206D_206D_200B_206D_200D_202E_200F_200D_206E_200F_202C_206C_206E_206E_200B_206F_200B_206F_202B_200E_202E_206C_202C_206A_200E_200E_206C_202C_200F_206E_206E_206F_200C_200C_206E_206B_200E_202E(EqualityContract, other.EqualityContract)) ? (-542937595) : (-542937596)); - break; - case 0: - num = ((!EqualityComparer<int>.Default.Equals(Attempts, other.Attempts)) ? (-542937595) : (-542937597)); - break; - case 8: - return true; - case 6: - num = ((!EqualityComparer<long>.Default.Equals(FirstStallMs, other.FirstStallMs)) ? (-542937595) : (-542937593)); - break; - case 7: - num = ((!EqualityComparer<IReadOnlyList<string>>.Default.Equals(RungsFired, other.RungsFired)) ? (-542937595) : (-542937598)); - break; - case 4: - num = (((object)other == null) ? (-542937595) : (-542937594)); - break; - case 5: - num = -542937600; - break; - } - } - } - - bool IEquatable<RecoveryExhaustion>.Equals(RecoveryExhaustion? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200F_206F_206F_202A_202B_206F_200B_202A_200E_202C_206A_200E_200E_200F_200C_200E_206B_206A_206B_200F_206C_200E_206E_206E_200B_206F_202C_202C_202B_202B_200E_202A_206E_202C_202A_202D_206F_202A_200E_200D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202E_206B_206F_206E_200B_206D_206E_200E_200E_200B_202B_206A_206B_206E_206A_206B_202C_206C_202C_206C_202C_206D_206C_206B_202B_200B_200C_206F_202A_200D_206C_202B_206C_206B_200C_200B_206D_200E_202E_206D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206C_206D_200C_202C_206F_206A_202E_202D_202B_200D_200F_200F_200F_200F_202E_202E_200F_200F_202E_200E_206A_202D_200B_200E_200B_202D_202E_200F_200E_202A_206E_200E_206A_202D_206A_206D_206B_202A_200E_206E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206D_202C_200C_206A_200B_206C_202B_202B_202B_200E_202C_206C_206A_200D_200E_200D_206E_200B_200E_206D_206C_200B_200E_202B_206C_200D_200D_206C_206C_200E_202B_200C_200E_200F_206A_206E_206C_202E_202C_206A_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200B_202D_202D_200B_206A_202A_202A_206B_206C_206C_200D_206E_206C_206E_206C_206F_206C_202E_200D_200E_202D_202C_206D_200B_200B_206C_202E_206D_200C_206D_206B_202A_206C_200F_202A_206D_200D_206B_200D_206E_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206C_200B_200F_206F_206E_206F_202D_206D_206C_202D_206E_202A_200E_206D_202C_206D_202C_200C_206E_202C_200F_206F_206B_200E_200F_206B_206A_200B_202A_206A_206B_206A_206F_206C_200B_202D_206D_200D_202E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200D_202A_200F_200E_206A_202C_202A_200F_206C_200F_200B_206C_202E_200E_200B_206D_206F_200B_206B_202C_200C_202D_200C_202B_206E_200C_206D_200F_202B_202D_206E_206B_200E_206A_200B_206E_200C_206F_206D_202E_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202B_200F_202A_206D_206D_200B_206D_200D_202E_200F_200D_206E_200F_202C_206C_206E_206E_200B_206F_200B_206F_202B_200E_202E_206C_202C_206A_200E_200E_206C_202C_200F_206E_206E_206F_200C_200C_206E_206B_200E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +public sealed record RecoveryExhaustion(int Attempts, IReadOnlyList<string> RungsFired, long FirstStallMs, long LastStallMs); diff --git a/LLib/LLib.Movement.Unstuck/RecoveryLadder.cs b/LLib/LLib.Movement.Unstuck/RecoveryLadder.cs index e1dc24a..6c80183 100644 --- a/LLib/LLib.Movement.Unstuck/RecoveryLadder.cs +++ b/LLib/LLib.Movement.Unstuck/RecoveryLadder.cs @@ -25,47 +25,12 @@ public sealed class RecoveryLadder public bool IsExhausted { get; private set; } - private int Cap + private int Cap => _003Coptions_003EP.Mode switch { - get - { - RecoveryMode mode = _003Coptions_003EP.Mode; - int num = ((mode == RecoveryMode.Aggressive) ? (-304547260) : (-304547257)); - int result = default(int); - while (true) - { - int num2 = num; - int num3 = -304547258; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - result = _003Coptions_003EP.PassiveCap; - num = -304547258; - break; - case 1: - num = ((mode == RecoveryMode.Passive) ? (-304547262) : (-304547264)); - break; - case 6: - num = -304547261; - break; - case 2: - result = _003Coptions_003EP.AggressiveCap; - num = -304547258; - break; - case 5: - result = _003Coptions_003EP.ConservativeCap; - num = -304547258; - break; - case 3: - num = -304547257; - break; - case 0: - return result; - } - } - } - } + RecoveryMode.Aggressive => _003Coptions_003EP.AggressiveCap, + RecoveryMode.Passive => _003Coptions_003EP.PassiveCap, + _ => _003Coptions_003EP.ConservativeCap, + }; public RecoveryLadder(RecoveryLadderOptions options, IReadOnlyList<IRecoveryRung> rungs) { @@ -79,91 +44,39 @@ public sealed class RecoveryLadder public RecoveryDecision OnStall(long nowMs) { - int num = ((!IsExhausted) ? 1754338781 : 1754338772); - IRecoveryRung recoveryRung = default(IRecoveryRung); - int num7 = default(int); - while (true) + if (IsExhausted) { - int num2 = num; - int num3 = 1754338771; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return new RecoveryDecision(RecoveryDecisionKind.None, null, null); + } + if (Attempts >= Cap) + { + IsExhausted = true; + return new RecoveryDecision(RecoveryDecisionKind.Exhausted, null, new RecoveryExhaustion(Attempts, _rungsFired.ToArray(), _firstStallMs, _lastStallMs)); + } + if (_hasRunAny && nowMs - _lastRunAnyMs < _003Coptions_003EP.GlobalCooldownMs) + { + return new RecoveryDecision(RecoveryDecisionKind.None, null, null); + } + if (_003Coptions_003EP.Mode == RecoveryMode.Passive) + { + Consume(nowMs); + return new RecoveryDecision(RecoveryDecisionKind.Observe, null, null); + } + for (int i = 0; i < _rungs.Length; i++) + { + IRecoveryRung recoveryRung = _rungs[i]; + if ((!_hasRun[i] || nowMs - _lastRunMs[i] >= recoveryRung.CooldownMs) && recoveryRung.CanRun(Attempts + 1, nowMs)) { - case 9: - { - long num8 = _lastRunAnyMs; - long num9 = nowMs; - num = ((~(~num9 + num8) >= _003Coptions_003EP.GlobalCooldownMs) ? 1754338774 : 1754338768); - break; - } - case 0: - num = ((!_hasRunAny) ? 1754338774 : 1754338778); - break; - case 14: - num = ((Attempts < Cap) ? 1754338771 : 1754338783); - break; - case 16: - num = ((!recoveryRung.CanRun(Attempts + 1, nowMs)) ? 1754338773 : 1754338782); - break; - case 10: - recoveryRung = _rungs[num7]; - num = ((!_hasRun[num7]) ? 1754338755 : 1754338776); - break; - case 4: - num = 1754338772; - break; - case 13: Consume(nowMs); _rungsFired.Add(recoveryRung.Name); - _hasRun[num7] = true; - _lastRunMs[num7] = nowMs; + _hasRun[i] = true; + _lastRunMs[i] = nowMs; _hasRunAny = true; _lastRunAnyMs = nowMs; return new RecoveryDecision(RecoveryDecisionKind.Run, recoveryRung, null); - case 6: - { - int num10 = num7; - num3 = 1; - num4 = num10; - int num11 = num4 ^ num3; - int num12 = num4 & num3; - num7 = num11 + (num12 + num12); - num = 1754338769; - break; - } - case 12: - IsExhausted = true; - return new RecoveryDecision(RecoveryDecisionKind.Exhausted, null, new RecoveryExhaustion(Attempts, _rungsFired.ToArray(), _firstStallMs, _lastStallMs)); - case 1: - Consume(nowMs); - return new RecoveryDecision(RecoveryDecisionKind.Observe, null, null); - case 5: - num = ((_003Coptions_003EP.Mode != RecoveryMode.Passive) ? 1754338779 : 1754338770); - break; - case 11: - { - long num8 = _lastRunMs[num7]; - long num9 = nowMs; - num = ((~(~num9 + num8) < recoveryRung.CooldownMs) ? 1754338773 : 1754338755); - break; - } - case 3: - return new RecoveryDecision(RecoveryDecisionKind.None, null, null); - case 2: - num = ((num7 < _rungs.Length) ? 1754338777 : 1754338780); - break; - case 15: - return new RecoveryDecision(RecoveryDecisionKind.None, null, null); - case 7: - return new RecoveryDecision(RecoveryDecisionKind.None, null, null); - case 8: - num7 = 0; - num = 1754338769; - break; } } + return new RecoveryDecision(RecoveryDecisionKind.None, null, null); } public void Reset() @@ -172,70 +85,19 @@ public sealed class RecoveryLadder IsExhausted = false; _rungsFired.Clear(); _hasRunAny = false; - int num = 0; - int num2 = -478483629; - while (true) + for (int i = 0; i < _hasRun.Length; i++) { - int num3 = num2; - int num4 = -478483631; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 0: - return; - case 2: - num2 = ((num < _hasRun.Length) ? (-478483632) : (-478483631)); - break; - case 1: - { - _hasRun[num] = false; - int num8 = num; - num4 = 1; - num5 = num8; - int num9 = num5 ^ num4; - int num10 = num5 & num4; - num = num9 + (num10 + num10); - num2 = -478483629; - break; - } - case 3: - num2 = -478483629; - break; - } + _hasRun[i] = false; } } private void Consume(long nowMs) { - int num = ((Attempts != 0) ? 1659706856 : 1659706857); - while (true) + if (Attempts == 0) { - int num2 = num; - int num3 = 1659706856; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 1659706857; - break; - case 1: - _firstStallMs = nowMs; - num = 1659706856; - break; - case 0: - { - int attempts = Attempts; - num3 = 1; - num4 = attempts; - Attempts = (num4 | num3) + (num4 & num3); - _lastStallMs = nowMs; - return; - } - } + _firstStallMs = nowMs; } + Attempts++; + _lastStallMs = nowMs; } } diff --git a/LLib/LLib.Movement.Unstuck/RecoveryLadderOptions.cs b/LLib/LLib.Movement.Unstuck/RecoveryLadderOptions.cs index 4fdc858..303231d 100644 --- a/LLib/LLib.Movement.Unstuck/RecoveryLadderOptions.cs +++ b/LLib/LLib.Movement.Unstuck/RecoveryLadderOptions.cs @@ -1,22 +1,7 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; - namespace LLib.Movement.Unstuck; public sealed record RecoveryLadderOptions { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200E_200F_202D_206F_200E_202B_206A_206E_206C_202A_200D_202B_206E_202C_202E_200D_202E_202D_200C_202D_202E_200B_206A_206B_206F_200E_202B_200C_206F_206E_200F_200E_200F_202C_200B_202A_202D_202C_200C_206A_202E(typeof(RecoveryLadderOptions).TypeHandle); - } - } - public RecoveryMode Mode { get; init; } = RecoveryMode.Conservative; public int AggressiveCap { get; init; } = 10; @@ -26,138 +11,4 @@ public sealed record RecoveryLadderOptions public int PassiveCap { get; init; } = 2; public long GlobalCooldownMs { get; init; } = 3000L; - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206E_206D_202C_202E_200B_202D_200E_202D_206F_206A_206E_206A_202B_202A_206C_206B_206D_200F_206D_200F_200B_206D_200C_200F_202B_202A_206D_200C_200B_206D_200D_202C_202E_206A_202D_206A_202D_202E_206B_202D_202E(); - _202C_206D_202E_200E_202D_206D_206F_200E_200E_200E_206F_200B_206E_202A_206C_200C_206E_200E_202C_200C_206F_202B_206B_206A_200C_200C_200F_202B_206B_206D_206B_206B_202B_200F_206F_202E_200E_202E_200F_202C_202E(stringBuilder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1014979507)); - _202C_206D_202E_200E_202D_206D_206F_200E_200E_200E_206F_200B_206E_202A_206C_200C_206E_200E_202C_200C_206F_202B_206B_206A_200C_200C_200F_202B_206B_206D_206B_206B_202B_200F_206F_202E_200E_202E_200F_202C_202E(stringBuilder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1808631505)); - int num = ((!PrintMembers(stringBuilder)) ? 128748061 : 128748062); - while (true) - { - int num2 = num; - int num3 = 128748063; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 128748062; - break; - case 2: - _200D_202B_206E_206C_206E_206F_200F_200D_200F_200E_200B_206C_202E_206D_202D_206C_206A_200C_202D_200D_200E_206F_206E_200F_202A_202B_202D_202A_202B_202D_202E_200E_206C_200E_202D_206E_200B_206B_202E_202E(stringBuilder, '}'); - return _200B_202B_200E_202E_200F_202D_206E_202B_200B_202B_200D_200C_200C_202D_200F_202B_200E_202E_206E_202B_206B_200B_200E_202E_202A_200E_200D_202B_200F_202A_200E_206D_206E_202D_202B_202C_202E_200D_202D_206B_202E((object)stringBuilder); - case 1: - _200D_202B_206E_206C_206E_206F_200F_200D_200F_200E_200B_206C_202E_206D_202D_206C_206A_200C_202D_200D_200E_206F_206E_200F_202A_202B_202D_202A_202B_202D_202E_200E_206C_200E_202D_206E_200B_206B_202E_202E(stringBuilder, ' '); - num = 128748061; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206C_206D_206F_206A_202D_206A_206F_206C_206D_202E_200E_200D_202D_206B_200B_200D_206E_200F_202B_206A_200E_202A_206D_206F_206B_206B_202A_202E_206B_206E_206A_206F_200F_200F_200D_206B_200E_206C_200D_206F_202E(); - _202C_206D_202E_200E_202D_206D_206F_200E_200E_200E_206F_200B_206E_202A_206C_200C_206E_200E_202C_200C_206F_202B_206B_206A_200C_200C_200F_202B_206B_206D_206B_206B_202B_200F_206F_202E_200E_202E_200F_202C_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-537195815)); - _202C_206D_202E_200E_202D_206D_206F_200E_200E_200E_206F_200B_206E_202A_206C_200C_206E_200E_202C_200C_206F_202B_206B_206A_200C_200C_200F_202B_206B_206D_206B_206B_202B_200F_206F_202E_200E_202E_200F_202C_202E(builder, Mode.ToString()); - _202C_206D_202E_200E_202D_206D_206F_200E_200E_200E_206F_200B_206E_202A_206C_200C_206E_200E_202C_200C_206F_202B_206B_206A_200C_200C_200F_202B_206B_206D_206B_206B_202B_200F_206F_202E_200E_202E_200F_202C_202E(builder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1738569869)); - _202C_206D_202E_200E_202D_206D_206F_200E_200E_200E_206F_200B_206E_202A_206C_200C_206E_200E_202C_200C_206F_202B_206B_206A_200C_200C_200F_202B_206B_206D_206B_206B_202B_200F_206F_202E_200E_202E_200F_202C_202E(builder, AggressiveCap.ToString()); - _202C_206D_202E_200E_202D_206D_206F_200E_200E_200E_206F_200B_206E_202A_206C_200C_206E_200E_202C_200C_206F_202B_206B_206A_200C_200C_200F_202B_206B_206D_206B_206B_202B_200F_206F_202E_200E_202E_200F_202C_202E(builder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1436744253)); - _202C_206D_202E_200E_202D_206D_206F_200E_200E_200E_206F_200B_206E_202A_206C_200C_206E_200E_202C_200C_206F_202B_206B_206A_200C_200C_200F_202B_206B_206D_206B_206B_202B_200F_206F_202E_200E_202E_200F_202C_202E(builder, ConservativeCap.ToString()); - _202C_206D_202E_200E_202D_206D_206F_200E_200E_200E_206F_200B_206E_202A_206C_200C_206E_200E_202C_200C_206F_202B_206B_206A_200C_200C_200F_202B_206B_206D_206B_206B_202B_200F_206F_202E_200E_202E_200F_202C_202E(builder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(56536959)); - _202C_206D_202E_200E_202D_206D_206F_200E_200E_200E_206F_200B_206E_202A_206C_200C_206E_200E_202C_200C_206F_202B_206B_206A_200C_200C_200F_202B_206B_206D_206B_206B_202B_200F_206F_202E_200E_202E_200F_202C_202E(builder, PassiveCap.ToString()); - _202C_206D_202E_200E_202D_206D_206F_200E_200E_200E_206F_200B_206E_202A_206C_200C_206E_200E_202C_200C_206F_202B_206B_206A_200C_200C_200F_202B_206B_206D_206B_206B_202B_200F_206F_202E_200E_202E_200F_202C_202E(builder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1236985358)); - _202C_206D_202E_200E_202D_206D_206F_200E_200E_200E_206F_200B_206E_202A_206C_200C_206E_200E_202C_200C_206F_202B_206B_206A_200C_200C_200F_202B_206B_206D_206B_206B_202B_200F_206F_202E_200E_202E_200F_202C_202E(builder, GlobalCooldownMs.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(RecoveryLadderOptions? other) - { - int num = (((object)this == other) ? (-1889404605) : (-1889404604)); - while (true) - { - int num2 = num; - int num3 = -1889404603; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = ((!EqualityComparer<int>.Default.Equals(PassiveCap, other.PassiveCap)) ? (-1889404595) : (-1889404601)); - break; - case 9: - num = ((!_206D_202D_206B_200C_200C_200F_200E_202D_202D_206F_202A_200F_206D_200E_202B_200E_202A_206C_206B_206E_202C_200C_200B_206C_202A_202D_202A_202D_202D_206F_200F_206C_202B_200B_200F_202B_206A_202D_206D_206B_202E(EqualityContract, other.EqualityContract)) ? (-1889404595) : (-1889404607)); - break; - case 3: - num = ((!EqualityComparer<int>.Default.Equals(ConservativeCap, other.ConservativeCap)) ? (-1889404595) : (-1889404603)); - break; - case 7: - num = ((!EqualityComparer<int>.Default.Equals(AggressiveCap, other.AggressiveCap)) ? (-1889404595) : (-1889404602)); - break; - case 8: - return false; - case 1: - num = (((object)other == null) ? (-1889404595) : (-1889404596)); - break; - case 6: - return true; - case 2: - return EqualityComparer<long>.Default.Equals(GlobalCooldownMs, other.GlobalCooldownMs); - case 5: - num = -1889404604; - break; - case 4: - num = ((!EqualityComparer<RecoveryMode>.Default.Equals(Mode, other.Mode)) ? (-1889404595) : (-1889404606)); - break; - } - } - } - - bool IEquatable<RecoveryLadderOptions>.Equals(RecoveryLadderOptions? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200E_200F_202D_206F_200E_202B_206A_206E_206C_202A_200D_202B_206E_202C_202E_200D_202E_202D_200C_202D_202E_200B_206A_206B_206F_200E_202B_200C_206F_206E_200F_200E_200F_202C_200B_202A_202D_202C_200C_206A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206E_206D_202C_202E_200B_202D_200E_202D_206F_206A_206E_206A_202B_202A_206C_206B_206D_200F_206D_200F_200B_206D_200C_200F_202B_202A_206D_200C_200B_206D_200D_202C_202E_206A_202D_206A_202D_202E_206B_202D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202C_206D_202E_200E_202D_206D_206F_200E_200E_200E_206F_200B_206E_202A_206C_200C_206E_200E_202C_200C_206F_202B_206B_206A_200C_200C_200F_202B_206B_206D_206B_206B_202B_200F_206F_202E_200E_202E_200F_202C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200D_202B_206E_206C_206E_206F_200F_200D_200F_200E_200B_206C_202E_206D_202D_206C_206A_200C_202D_200D_200E_206F_206E_200F_202A_202B_202D_202A_202B_202D_202E_200E_206C_200E_202D_206E_200B_206B_202E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200B_202B_200E_202E_200F_202D_206E_202B_200B_202B_200D_200C_200C_202D_200F_202B_200E_202E_206E_202B_206B_200B_200E_202E_202A_200E_200D_202B_200F_202A_200E_206D_206E_202D_202B_202C_202E_200D_202D_206B_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206C_206D_206F_206A_202D_206A_206F_206C_206D_202E_200E_200D_202D_206B_200B_200D_206E_200F_202B_206A_200E_202A_206D_206F_206B_206B_202A_202E_206B_206E_206A_206F_200F_200F_200D_206B_200E_206C_200D_206F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _206D_202D_206B_200C_200C_200F_200E_202D_202D_206F_202A_200F_206D_200E_202B_200E_202A_206C_206B_206E_202C_200C_200B_206C_202A_202D_202A_202D_202D_206F_200F_206C_202B_200B_200F_202B_206A_202D_206D_206B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } } diff --git a/LLib/LLib.Movement.Unstuck/StallDetector.cs b/LLib/LLib.Movement.Unstuck/StallDetector.cs index 5d19e71..2fbe284 100644 --- a/LLib/LLib.Movement.Unstuck/StallDetector.cs +++ b/LLib/LLib.Movement.Unstuck/StallDetector.cs @@ -25,58 +25,22 @@ public sealed class StallDetector(StallDetectorOptions options) public StallVerdict? Observe(in StallSample sample) { - int num = (sample.Driving ? 860999294 : 860999280); - bool flag = default(bool); - while (true) + if (!sample.Driving) { - int num2 = num; - int num3 = 860999289; - int num4 = num2; - int num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 8: - num5 = (sample.DistanceToTarget.HasValue ? 1 : 0); - goto IL_0163; - case 4: - num = ((sample.TimestampMs - _lastDrivenMs > options.ContinuityGapMs) ? 860999295 : 860999282); - break; - case 1: - return ObserveProgress(in sample); - case 11: - num = ((sample.Mode != _anchorMode) ? 860999295 : 860999289); - break; - case 10: - return ObserveDisplacement(in sample); - case 7: - num = ((sample.Mode == DriveMode.Ground) ? 860999292 : 860999281); - break; - case 2: - num = 860999280; - break; - case 6: - Anchor(in sample, flag); - return null; - case 9: - return null; - case 0: - num = ((flag == _anchorUsesProgress) ? 860999290 : 860999295); - break; - case 5: - num5 = 0; - goto IL_0163; - case 3: - { - _lastDrivenMs = sample.TimestampMs; - num = (flag ? 860999288 : 860999283); - break; - } - IL_0163: - flag = (byte)num5 != 0; - num = ((!_hasAnchor) ? 860999295 : 860999293); - break; - } + return null; } + bool flag = sample.Mode != DriveMode.Ground && sample.DistanceToTarget.HasValue; + if (!_hasAnchor || sample.TimestampMs - _lastDrivenMs > options.ContinuityGapMs || sample.Mode != _anchorMode || flag != _anchorUsesProgress) + { + Anchor(in sample, flag); + return null; + } + _lastDrivenMs = sample.TimestampMs; + if (!flag) + { + return ObserveDisplacement(in sample); + } + return ObserveProgress(in sample); } public void Reset() @@ -88,118 +52,53 @@ public sealed class StallDetector(StallDetectorOptions options) private StallVerdict? ObserveProgress(in StallSample sample) { float value = sample.DistanceToTarget.Value; - int num = ((!(value < _bestDistance)) ? 755996687 : 755996681); - long num7 = default(long); - float num8 = default(float); - while (true) + if (value < _bestDistance) { - int num2 = num; - int num3 = 755996685; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 755996681; - break; - case 3: - return null; - case 6: - return Trip(in sample, num7, num8); - case 2: - num8 = _referenceBestDistance - _bestDistance; - num = ((!(num8 >= options.ProgressImprovementThreshold)) ? 755996684 : 755996680); - break; - case 5: - _referenceBestDistance = _bestDistance; - _anchorMs = sample.TimestampMs; - _anchorPosition = sample.Position; - return null; - case 1: - num7 = sample.TimestampMs - _anchorMs; - num = ((num7 < options.ProgressWindowMs) ? 755996686 : 755996683); - break; - case 4: - _bestDistance = value; - num = 755996687; - break; - } + _bestDistance = value; } + float num = _referenceBestDistance - _bestDistance; + if (num >= options.ProgressImprovementThreshold) + { + _referenceBestDistance = _bestDistance; + _anchorMs = sample.TimestampMs; + _anchorPosition = sample.Position; + return null; + } + long num2 = sample.TimestampMs - _anchorMs; + if (num2 >= options.ProgressWindowMs) + { + return Trip(in sample, num2, num); + } + return null; } private StallVerdict? ObserveDisplacement(in StallSample sample) { - int num = ((sample.Mode == DriveMode.Ground) ? 508532326 : 508532323); - long num9 = default(long); - float num8 = default(float); - while (true) + float num = ((sample.Mode == DriveMode.Ground) ? DistanceXZ(_anchorPosition, sample.Position) : Vector3.Distance(_anchorPosition, sample.Position)); + if (num >= options.GroundDistanceThreshold) { - int num2 = num; - int num3 = 508532327; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - float num7; - switch (num5 - (num6 + num6)) - { - case 2: - num9 = sample.TimestampMs - _anchorMs; - num = ((num9 < options.GroundWindowMs) ? 508532324 : 508532322); - break; - case 5: - return Trip(in sample, num9, num8); - case 1: - num7 = DistanceXZ(_anchorPosition, sample.Position); - goto IL_00ae; - case 3: - return null; - case 0: - num = 508532323; - break; - case 4: - num7 = Vector3.Distance(_anchorPosition, sample.Position); - goto IL_00ae; - case 6: - { - _anchorMs = sample.TimestampMs; - _anchorPosition = sample.Position; - return null; - } - IL_00ae: - num8 = num7; - num = ((!(num8 >= options.GroundDistanceThreshold)) ? 508532325 : 508532321); - break; - } + _anchorMs = sample.TimestampMs; + _anchorPosition = sample.Position; + return null; } + long num2 = sample.TimestampMs - _anchorMs; + if (num2 >= options.GroundWindowMs) + { + return Trip(in sample, num2, num); + } + return null; } private StallVerdict? Trip(in StallSample sample, long elapsedMs, float measured) { bool num = sample.TimestampMs < _cooldownUntilMs; Anchor(in sample, _anchorUsesProgress); - int num2 = ((!num) ? (-1156731677) : (-1156731680)); - while (true) + if (num) { - int num3 = num2; - int num4 = -1156731679; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 2: - _cooldownUntilMs = sample.TimestampMs + options.CooldownMs; - return new StallVerdict(elapsedMs, measured, sample.Mode); - case 1: - return null; - case 0: - goto IL_0092; - } - continue; - IL_0092: - num2 = -1156731680; + return null; } + _cooldownUntilMs = sample.TimestampMs + options.CooldownMs; + return new StallVerdict(elapsedMs, measured, sample.Mode); } private void Anchor(in StallSample sample, bool usesProgress) @@ -217,11 +116,6 @@ public sealed class StallDetector(StallDetectorOptions options) { float num = a.X - b.X; float num2 = a.Z - b.Z; - return _206A_202D_200C_206C_206C_206B_202D_202E_206B_200B_200B_206F_206F_202B_200D_200F_206A_202C_200C_202A_202D_202C_200B_206F_206F_200F_206F_206B_206E_200D_202C_200C_200D_206F_202A_202D_202D_200B_200D_202C_202E(num * num + num2 * num2); - } - - static float _206A_202D_200C_206C_206C_206B_202D_202E_206B_200B_200B_206F_206F_202B_200D_200F_206A_202C_200C_202A_202D_202C_200B_206F_206F_200F_206F_206B_206E_200D_202C_200C_200D_206F_202A_202D_202D_200B_200D_202C_202E(float P_0) - { - return MathF.Sqrt(P_0); + return MathF.Sqrt(num * num + num2 * num2); } } diff --git a/LLib/LLib.Movement.Unstuck/StallDetectorOptions.cs b/LLib/LLib.Movement.Unstuck/StallDetectorOptions.cs index ddb550e..46df34c 100644 --- a/LLib/LLib.Movement.Unstuck/StallDetectorOptions.cs +++ b/LLib/LLib.Movement.Unstuck/StallDetectorOptions.cs @@ -1,22 +1,7 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; - namespace LLib.Movement.Unstuck; public sealed record StallDetectorOptions { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200F_202A_206D_206E_202B_200C_200C_200C_200B_200E_200C_206F_202C_206B_200C_200D_206D_202A_202E_200F_200D_206A_206E_206C_206F_206F_200C_202C_202E_200C_202B_200C_206C_202E_200E_206C_206C_206E_200F_202E_202E(typeof(StallDetectorOptions).TypeHandle); - } - } - public float GroundDistanceThreshold { get; init; } = 0.3f; public long GroundWindowMs { get; init; } = 500L; @@ -28,141 +13,4 @@ public sealed record StallDetectorOptions public long ContinuityGapMs { get; init; } = 250L; public long CooldownMs { get; init; } = 500L; - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202D_202B_206E_200E_206A_202D_206E_206C_200B_206E_202C_200B_206D_206B_206C_200E_200E_206C_200B_200C_202C_202C_206F_206F_202C_206B_202D_200B_202C_206F_206B_202A_200B_200B_200D_206E_200B_202D_206C_206A_202E(); - _200F_202D_206D_202B_206F_206D_202A_206B_206C_200F_200D_206E_206F_202C_200E_202E_206C_206A_206E_202C_206A_200D_200F_202A_200C_200B_202E_202C_200D_206E_202D_200F_202A_202D_206F_206E_206D_200D_202B_202E(stringBuilder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(701563104)); - _200F_202D_206D_202B_206F_206D_202A_206B_206C_200F_200D_206E_206F_202C_200E_202E_206C_206A_206E_202C_206A_200D_200F_202A_200C_200B_202E_202C_200D_206E_202D_200F_202A_202D_206F_206E_206D_200D_202B_202E(stringBuilder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1148273145)); - int num = ((!PrintMembers(stringBuilder)) ? (-1370681067) : (-1370681068)); - while (true) - { - int num2 = num; - int num3 = -1370681067; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1370681068; - break; - case 0: - _202D_202E_200E_202E_200D_206E_200B_206F_202E_202B_206E_202A_202A_200B_202A_202B_200C_202C_202D_200C_202D_202B_206B_200B_206D_206F_200D_200B_202E_202A_202C_202A_206B_206C_200B_200D_202B_206D_202B_206F_202E(stringBuilder, '}'); - return _206D_202D_200B_200D_206B_206D_200F_200B_200F_200D_202C_202D_206B_200F_206E_202C_202A_202C_200F_202B_206F_206E_206B_200B_206C_200B_202B_206E_206F_206F_206B_202B_202C_202C_202D_202E_200F_206A_202D_202C_202E((object)stringBuilder); - case 1: - _202D_202E_200E_202E_200D_206E_200B_206F_202E_202B_206E_202A_202A_200B_202A_202B_200C_202C_202D_200C_202D_202B_206B_200B_206D_206F_200D_200B_202E_202A_202C_202A_206B_206C_200B_200D_202B_206D_202B_206F_202E(stringBuilder, ' '); - num = -1370681067; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206E_206F_200D_206F_200E_202B_200B_202B_206A_202A_206C_200C_200D_206A_200D_202D_200C_202A_206E_202C_206B_200E_206A_202E_206A_206F_200E_200D_200D_202A_200B_206A_206B_206F_202B_200B_200D_200F_202E_206B_202E(); - _200F_202D_206D_202B_206F_206D_202A_206B_206C_200F_200D_206E_206F_202C_200E_202E_206C_206A_206E_202C_206A_200D_200F_202A_200C_200B_202E_202C_200D_206E_202D_200F_202A_202D_206F_206E_206D_200D_202B_202E(builder, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(486831587)); - _200F_202D_206D_202B_206F_206D_202A_206B_206C_200F_200D_206E_206F_202C_200E_202E_206C_206A_206E_202C_206A_200D_200F_202A_200C_200B_202E_202C_200D_206E_202D_200F_202A_202D_206F_206E_206D_200D_202B_202E(builder, GroundDistanceThreshold.ToString()); - _200F_202D_206D_202B_206F_206D_202A_206B_206C_200F_200D_206E_206F_202C_200E_202E_206C_206A_206E_202C_206A_200D_200F_202A_200C_200B_202E_202C_200D_206E_202D_200F_202A_202D_206F_206E_206D_200D_202B_202E(builder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(456054749)); - _200F_202D_206D_202B_206F_206D_202A_206B_206C_200F_200D_206E_206F_202C_200E_202E_206C_206A_206E_202C_206A_200D_200F_202A_200C_200B_202E_202C_200D_206E_202D_200F_202A_202D_206F_206E_206D_200D_202B_202E(builder, GroundWindowMs.ToString()); - _200F_202D_206D_202B_206F_206D_202A_206B_206C_200F_200D_206E_206F_202C_200E_202E_206C_206A_206E_202C_206A_200D_200F_202A_200C_200B_202E_202C_200D_206E_202D_200F_202A_202D_206F_206E_206D_200D_202B_202E(builder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1152636967)); - _200F_202D_206D_202B_206F_206D_202A_206B_206C_200F_200D_206E_206F_202C_200E_202E_206C_206A_206E_202C_206A_200D_200F_202A_200C_200B_202E_202C_200D_206E_202D_200F_202A_202D_206F_206E_206D_200D_202B_202E(builder, ProgressImprovementThreshold.ToString()); - _200F_202D_206D_202B_206F_206D_202A_206B_206C_200F_200D_206E_206F_202C_200E_202E_206C_206A_206E_202C_206A_200D_200F_202A_200C_200B_202E_202C_200D_206E_202D_200F_202A_202D_206F_206E_206D_200D_202B_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(942915890)); - _200F_202D_206D_202B_206F_206D_202A_206B_206C_200F_200D_206E_206F_202C_200E_202E_206C_206A_206E_202C_206A_200D_200F_202A_200C_200B_202E_202C_200D_206E_202D_200F_202A_202D_206F_206E_206D_200D_202B_202E(builder, ProgressWindowMs.ToString()); - _200F_202D_206D_202B_206F_206D_202A_206B_206C_200F_200D_206E_206F_202C_200E_202E_206C_206A_206E_202C_206A_200D_200F_202A_200C_200B_202E_202C_200D_206E_202D_200F_202A_202D_206F_206E_206D_200D_202B_202E(builder, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1835438226)); - _200F_202D_206D_202B_206F_206D_202A_206B_206C_200F_200D_206E_206F_202C_200E_202E_206C_206A_206E_202C_206A_200D_200F_202A_200C_200B_202E_202C_200D_206E_202D_200F_202A_202D_206F_206E_206D_200D_202B_202E(builder, ContinuityGapMs.ToString()); - _200F_202D_206D_202B_206F_206D_202A_206B_206C_200F_200D_206E_206F_202C_200E_202E_206C_206A_206E_202C_206A_200D_200F_202A_200C_200B_202E_202C_200D_206E_202D_200F_202A_202D_206F_206E_206D_200D_202B_202E(builder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1517208652)); - _200F_202D_206D_202B_206F_206D_202A_206B_206C_200F_200D_206E_206F_202C_200E_202E_206C_206A_206E_202C_206A_200D_200F_202A_200C_200B_202E_202C_200D_206E_202D_200F_202A_202D_206F_206E_206D_200D_202B_202E(builder, CooldownMs.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(StallDetectorOptions? other) - { - int num = (((object)this == other) ? 1683992717 : 1683992704); - while (true) - { - int num2 = num; - int num3 = 1683992711; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return false; - case 3: - num = ((!EqualityComparer<long>.Default.Equals(ProgressWindowMs, other.ProgressWindowMs)) ? 1683992710 : 1683992707); - break; - case 6: - num = 1683992704; - break; - case 0: - num = ((!EqualityComparer<float>.Default.Equals(GroundDistanceThreshold, other.GroundDistanceThreshold)) ? 1683992710 : 1683992706); - break; - case 2: - num = ((!EqualityComparer<float>.Default.Equals(ProgressImprovementThreshold, other.ProgressImprovementThreshold)) ? 1683992710 : 1683992708); - break; - case 4: - num = ((!EqualityComparer<long>.Default.Equals(ContinuityGapMs, other.ContinuityGapMs)) ? 1683992710 : 1683992719); - break; - case 10: - return true; - case 9: - num = ((!_200D_206F_206A_200F_206A_200F_206A_200C_200B_206F_200C_202B_202E_200C_206F_206E_206C_200E_200C_206D_202D_202B_206B_202A_202A_206D_202C_206E_200D_202E_206B_202D_206D_206D_206F_202D_206C_206C_206D_206F_202E(EqualityContract, other.EqualityContract)) ? 1683992710 : 1683992711); - break; - case 7: - num = (((object)other == null) ? 1683992710 : 1683992718); - break; - case 5: - num = ((!EqualityComparer<long>.Default.Equals(GroundWindowMs, other.GroundWindowMs)) ? 1683992710 : 1683992709); - break; - case 8: - return EqualityComparer<long>.Default.Equals(CooldownMs, other.CooldownMs); - } - } - } - - bool IEquatable<StallDetectorOptions>.Equals(StallDetectorOptions? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200F_202A_206D_206E_202B_200C_200C_200C_200B_200E_200C_206F_202C_206B_200C_200D_206D_202A_202E_200F_200D_206A_206E_206C_206F_206F_200C_202C_202E_200C_202B_200C_206C_202E_200E_206C_206C_206E_200F_202E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202D_202B_206E_200E_206A_202D_206E_206C_200B_206E_202C_200B_206D_206B_206C_200E_200E_206C_200B_200C_202C_202C_206F_206F_202C_206B_202D_200B_202C_206F_206B_202A_200B_200B_200D_206E_200B_202D_206C_206A_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200F_202D_206D_202B_206F_206D_202A_206B_206C_200F_200D_206E_206F_202C_200E_202E_206C_206A_206E_202C_206A_200D_200F_202A_200C_200B_202E_202C_200D_206E_202D_200F_202A_202D_206F_206E_206D_200D_202B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202D_202E_200E_202E_200D_206E_200B_206F_202E_202B_206E_202A_202A_200B_202A_202B_200C_202C_202D_200C_202D_202B_206B_200B_206D_206F_200D_200B_202E_202A_202C_202A_206B_206C_200B_200D_202B_206D_202B_206F_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206D_202D_200B_200D_206B_206D_200F_200B_200F_200D_202C_202D_206B_200F_206E_202C_202A_202C_200F_202B_206F_206E_206B_200B_206C_200B_202B_206E_206F_206F_206B_202B_202C_202C_202D_202E_200F_206A_202D_202C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206E_206F_200D_206F_200E_202B_200B_202B_206A_202A_206C_200C_200D_206A_200D_202D_200C_202A_206E_202C_206B_200E_206A_202E_206A_206F_200E_200D_200D_202A_200B_206A_206B_206F_202B_200B_200D_200F_202E_206B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _200D_206F_206A_200F_206A_200F_206A_200C_200B_206F_200C_202B_202E_200C_206F_206E_206C_200E_200C_206D_202D_202B_206B_202A_202A_206D_202C_206E_200D_202E_206B_202D_206D_206D_206F_202D_206C_206C_206D_206F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } } diff --git a/LLib/LLib.Movement.Unstuck/StallSample.cs b/LLib/LLib.Movement.Unstuck/StallSample.cs index b175e90..9e1566c 100644 --- a/LLib/LLib.Movement.Unstuck/StallSample.cs +++ b/LLib/LLib.Movement.Unstuck/StallSample.cs @@ -1,115 +1,5 @@ -using System; -using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; namespace LLib.Movement.Unstuck; -public readonly record struct StallSample(long TimestampMs, Vector3 Position, DriveMode Mode, bool Driving, float? DistanceToTarget) -{ - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206C_206D_202E_200F_202B_206A_206E_200E_200F_206F_202C_206D_206E_200E_200D_200D_200D_202B_200E_206C_200F_206F_206A_202D_206E_206B_202C_202D_206D_200D_202D_202A_206F_206C_206A_206E_206A_202B_206C_206C_202E(); - _202A_202C_206C_206C_200D_206F_206B_206F_202E_200D_202E_200C_200C_202A_200D_202C_206E_206C_206C_200C_200B_206D_202B_200C_206E_200C_200C_200B_206A_202E_202D_206A_206D_206B_206C_202E_200D_206C_202E(stringBuilder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-843870221)); - _202A_202C_206C_206C_200D_206F_206B_206F_202E_200D_202E_200C_200C_202A_200D_202C_206E_206C_206C_200C_200B_206D_202B_200C_206E_200C_200C_200B_206A_202E_202D_206A_206D_206B_206C_202E_200D_206C_202E(stringBuilder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1581517409)); - int num = ((!PrintMembers(stringBuilder)) ? (-435415033) : (-435415036)); - while (true) - { - int num2 = num; - int num3 = -435415035; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - _206E_200B_206D_200C_206C_202A_202C_202B_206F_200D_200D_200D_206C_206A_206B_200B_200C_202B_202A_206D_206B_200B_202A_202C_206E_202B_202B_202A_200C_202E_206B_206D_206A_206A_202E_202E_206E_200C_200C_206F_202E(stringBuilder, '}'); - return _206B_206E_206D_206A_206D_202D_202D_200C_202B_202E_206F_202D_206F_206B_202C_202D_206A_202B_200C_202D_206C_206C_202B_206A_202C_202A_200F_206D_202B_206C_200D_202B_202B_206C_206C_206D_206B_200D_200C_206A_202E((object)stringBuilder); - case 1: - _206E_200B_206D_200C_206C_202A_202C_202B_206F_200D_200D_200D_206C_206A_206B_200B_200C_202B_202A_206D_206B_200B_202A_202C_206E_202B_202B_202A_200C_202E_206B_206D_206A_206A_202E_202E_206E_200C_200C_206F_202E(stringBuilder, ' '); - num = -435415033; - break; - case 0: - num = -435415036; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202A_202C_206C_206C_200D_206F_206B_206F_202E_200D_202E_200C_200C_202A_200D_202C_206E_206C_206C_200C_200B_206D_202B_200C_206E_200C_200C_200B_206A_202E_202D_206A_206D_206B_206C_202E_200D_206C_202E(builder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1273497407)); - _202A_202C_206C_206C_200D_206F_206B_206F_202E_200D_202E_200C_200C_202A_200D_202C_206E_206C_206C_200C_200B_206D_202B_200C_206E_200C_200C_200B_206A_202E_202D_206A_206D_206B_206C_202E_200D_206C_202E(builder, TimestampMs.ToString()); - _202A_202C_206C_206C_200D_206F_206B_206F_202E_200D_202E_200C_200C_202A_200D_202C_206E_206C_206C_200C_200B_206D_202B_200C_206E_200C_200C_200B_206A_202E_202D_206A_206D_206B_206C_202E_200D_206C_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-73966411)); - _202A_202C_206C_206C_200D_206F_206B_206F_202E_200D_202E_200C_200C_202A_200D_202C_206E_206C_206C_200C_200B_206D_202B_200C_206E_200C_200C_200B_206A_202E_202D_206A_206D_206B_206C_202E_200D_206C_202E(builder, Position.ToString()); - _202A_202C_206C_206C_200D_206F_206B_206F_202E_200D_202E_200C_200C_202A_200D_202C_206E_206C_206C_200C_200B_206D_202B_200C_206E_200C_200C_200B_206A_202E_202D_206A_206D_206B_206C_202E_200D_206C_202E(builder, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1530027189)); - _202A_202C_206C_206C_200D_206F_206B_206F_202E_200D_202E_200C_200C_202A_200D_202C_206E_206C_206C_200C_200B_206D_202B_200C_206E_200C_200C_200B_206A_202E_202D_206A_206D_206B_206C_202E_200D_206C_202E(builder, Mode.ToString()); - _202A_202C_206C_206C_200D_206F_206B_206F_202E_200D_202E_200C_200C_202A_200D_202C_206E_206C_206C_200C_200B_206D_202B_200C_206E_200C_200C_200B_206A_202E_202D_206A_206D_206B_206C_202E_200D_206C_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1807392495)); - _202A_202C_206C_206C_200D_206F_206B_206F_202E_200D_202E_200C_200C_202A_200D_202C_206E_206C_206C_200C_200B_206D_202B_200C_206E_200C_200C_200B_206A_202E_202D_206A_206D_206B_206C_202E_200D_206C_202E(builder, Driving.ToString()); - _202A_202C_206C_206C_200D_206F_206B_206F_202E_200D_202E_200C_200C_202A_200D_202C_206E_206C_206C_200C_200B_206D_202B_200C_206E_200C_200C_200B_206A_202E_202D_206A_206D_206B_206C_202E_200D_206C_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(371582453)); - _202A_202C_206C_206C_200D_206F_206B_206F_202E_200D_202E_200C_200C_202A_200D_202C_206E_206C_206C_200C_200B_206D_202B_200C_206E_200C_200C_200B_206A_202E_202D_206A_206D_206B_206C_202E_200D_206C_202E(builder, DistanceToTarget.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(StallSample other) - { - int num = ((!EqualityComparer<long>.Default.Equals(TimestampMs, other.TimestampMs)) ? 364630668 : 364630670); - while (true) - { - int num2 = num; - int num3 = 364630671; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - num = 364630670; - break; - case 0: - return EqualityComparer<float?>.Default.Equals(DistanceToTarget, other.DistanceToTarget); - case 3: - return false; - case 1: - num = ((!EqualityComparer<Vector3>.Default.Equals(Position, other.Position)) ? 364630668 : 364630669); - break; - case 2: - num = ((!EqualityComparer<DriveMode>.Default.Equals(Mode, other.Mode)) ? 364630668 : 364630667); - break; - case 4: - num = ((!EqualityComparer<bool>.Default.Equals(Driving, other.Driving)) ? 364630668 : 364630671); - break; - } - } - } - - bool IEquatable<StallSample>.Equals(StallSample other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _206C_206D_202E_200F_202B_206A_206E_200E_200F_206F_202C_206D_206E_200E_200D_200D_200D_202B_200E_206C_200F_206F_206A_202D_206E_206B_202C_202D_206D_200D_202D_202A_206F_206C_206A_206E_206A_202B_206C_206C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202A_202C_206C_206C_200D_206F_206B_206F_202E_200D_202E_200C_200C_202A_200D_202C_206E_206C_206C_200C_200B_206D_202B_200C_206E_200C_200C_200B_206A_202E_202D_206A_206D_206B_206C_202E_200D_206C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206E_200B_206D_200C_206C_202A_202C_202B_206F_200D_200D_200D_206C_206A_206B_200B_200C_202B_202A_206D_206B_200B_202A_202C_206E_202B_202B_202A_200C_202E_206B_206D_206A_206A_202E_202E_206E_200C_200C_206F_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206B_206E_206D_206A_206D_202D_202D_200C_202B_202E_206F_202D_206F_206B_202C_202D_206A_202B_200C_202D_206C_206C_202B_206A_202C_202A_200F_206D_202B_206C_200D_202B_202B_206C_206C_206D_206B_200D_200C_206A_202E(object P_0) - { - return P_0.ToString(); - } -} +public readonly record struct StallSample(long TimestampMs, Vector3 Position, DriveMode Mode, bool Driving, float? DistanceToTarget); diff --git a/LLib/LLib.Movement.Unstuck/StallVerdict.cs b/LLib/LLib.Movement.Unstuck/StallVerdict.cs index 2abcadd..0edcca4 100644 --- a/LLib/LLib.Movement.Unstuck/StallVerdict.cs +++ b/LLib/LLib.Movement.Unstuck/StallVerdict.cs @@ -1,106 +1,3 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; - namespace LLib.Movement.Unstuck; -public readonly record struct StallVerdict(long WindowMs, float MovedDistance, DriveMode Mode) -{ - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200C_206C_206B_202E_202E_206B_200E_202D_200D_202A_200F_206D_206C_206F_206B_200E_206C_206E_206E_202C_200B_206D_202C_202A_202B_202C_206E_200D_206C_200D_200C_200C_202A_206A_206F_202C_200D_206D_206D_202E(); - _206F_206B_200E_202C_200D_206B_200E_206E_206A_200D_200B_206B_202E_206F_202B_202E_202A_206A_206C_200C_202E_202B_202E_206D_200D_206E_202B_200B_206E_200D_200D_200F_206F_200B_206C_200D_206A_200C_206D_206A_202E(stringBuilder, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1822422138)); - _206F_206B_200E_202C_200D_206B_200E_206E_206A_200D_200B_206B_202E_206F_202B_202E_202A_206A_206C_200C_202E_202B_202E_206D_200D_206E_202B_200B_206E_200D_200D_200F_206F_200B_206C_200D_206A_200C_206D_206A_202E(stringBuilder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1581517409)); - int num = ((!PrintMembers(stringBuilder)) ? (-1803587058) : (-1803587059)); - while (true) - { - int num2 = num; - int num3 = -1803587060; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - _200E_202E_200F_202A_200D_206A_206C_206E_200D_200C_202C_206F_200C_200F_202A_206E_200D_202A_202A_206F_202A_206B_202A_206F_206C_202C_200C_202E_200B_202B_200F_202E_202A_206D_202D_200D_202B_200D_200F_206A_202E(stringBuilder, '}'); - return _202E_202D_202D_202B_200B_200C_206B_206C_200F_200E_206E_206C_200F_200D_206C_206A_202B_206A_202A_206D_202E_206C_202E_202B_200C_206C_206A_206E_206F_206E_206B_200C_206B_200E_206F_202B_206E_202D_202C_200D_202E((object)stringBuilder); - case 1: - _200E_202E_200F_202A_200D_206A_206C_206E_200D_200C_202C_206F_200C_200F_202A_206E_200D_202A_202A_206F_202A_206B_202A_206F_206C_202C_200C_202E_200B_202B_200F_202E_202A_206D_202D_200D_202B_200D_200F_206A_202E(stringBuilder, ' '); - num = -1803587058; - break; - case 0: - num = -1803587059; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206F_206B_200E_202C_200D_206B_200E_206E_206A_200D_200B_206B_202E_206F_202B_202E_202A_206A_206C_200C_202E_202B_202E_206D_200D_206E_202B_200B_206E_200D_200D_200F_206F_200B_206C_200D_206A_200C_206D_206A_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1679493069)); - _206F_206B_200E_202C_200D_206B_200E_206E_206A_200D_200B_206B_202E_206F_202B_202E_202A_206A_206C_200C_202E_202B_202E_206D_200D_206E_202B_200B_206E_200D_200D_200F_206F_200B_206C_200D_206A_200C_206D_206A_202E(builder, WindowMs.ToString()); - _206F_206B_200E_202C_200D_206B_200E_206E_206A_200D_200B_206B_202E_206F_202B_202E_202A_206A_206C_200C_202E_202B_202E_206D_200D_206E_202B_200B_206E_200D_200D_200F_206F_200B_206C_200D_206A_200C_206D_206A_202E(builder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-980000238)); - _206F_206B_200E_202C_200D_206B_200E_206E_206A_200D_200B_206B_202E_206F_202B_202E_202A_206A_206C_200C_202E_202B_202E_206D_200D_206E_202B_200B_206E_200D_200D_200F_206F_200B_206C_200D_206A_200C_206D_206A_202E(builder, MovedDistance.ToString()); - _206F_206B_200E_202C_200D_206B_200E_206E_206A_200D_200B_206B_202E_206F_202B_202E_202A_206A_206C_200C_202E_202B_202E_206D_200D_206E_202B_200B_206E_200D_200D_200F_206F_200B_206C_200D_206A_200C_206D_206A_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-830019758)); - _206F_206B_200E_202C_200D_206B_200E_206E_206A_200D_200B_206B_202E_206F_202B_202E_202A_206A_206C_200C_202E_202B_202E_206D_200D_206E_202B_200B_206E_200D_200D_200F_206F_200B_206C_200D_206A_200C_206D_206A_202E(builder, Mode.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(StallVerdict other) - { - int num = ((!EqualityComparer<long>.Default.Equals(WindowMs, other.WindowMs)) ? 449006355 : 449006353); - while (true) - { - int num2 = num; - int num3 = 449006355; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = 449006353; - break; - case 1: - return EqualityComparer<DriveMode>.Default.Equals(Mode, other.Mode); - case 0: - return false; - case 2: - num = ((!EqualityComparer<float>.Default.Equals(MovedDistance, other.MovedDistance)) ? 449006355 : 449006354); - break; - } - } - } - - bool IEquatable<StallVerdict>.Equals(StallVerdict other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _200C_206C_206B_202E_202E_206B_200E_202D_200D_202A_200F_206D_206C_206F_206B_200E_206C_206E_206E_202C_200B_206D_202C_202A_202B_202C_206E_200D_206C_200D_200C_200C_202A_206A_206F_202C_200D_206D_206D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206F_206B_200E_202C_200D_206B_200E_206E_206A_200D_200B_206B_202E_206F_202B_202E_202A_206A_206C_200C_202E_202B_202E_206D_200D_206E_202B_200B_206E_200D_200D_200F_206F_200B_206C_200D_206A_200C_206D_206A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200E_202E_200F_202A_200D_206A_206C_206E_200D_200C_202C_206F_200C_200F_202A_206E_200D_202A_202A_206F_202A_206B_202A_206F_206C_202C_200C_202E_200B_202B_200F_202E_202A_206D_202D_200D_202B_200D_200F_206A_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202E_202D_202D_202B_200B_200C_206B_206C_200F_200E_206E_206C_200F_200D_206C_206A_202B_206A_202A_206D_202E_206C_202E_202B_200C_206C_206A_206E_206F_206E_206B_200C_206B_200E_206F_202B_206E_202D_202C_200D_202E(object P_0) - { - return P_0.ToString(); - } -} +public readonly record struct StallVerdict(long WindowMs, float MovedDistance, DriveMode Mode); diff --git a/LLib/LLib.Movement/MovementOverrideHook.cs b/LLib/LLib.Movement/MovementOverrideHook.cs index aa99718..4355dda 100644 --- a/LLib/LLib.Movement/MovementOverrideHook.cs +++ b/LLib/LLib.Movement/MovementOverrideHook.cs @@ -1,9 +1,7 @@ using System; using System.Numerics; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Game.ClientState.Statuses; using Dalamud.Game.Config; using Dalamud.Hooking; @@ -38,9 +36,9 @@ public sealed class MovementOverrideHook : IDisposable private const long UserInputFreshnessMs = 250L; - private const float MisdirectionThresholdRad = MathF.PI / 4f; + private const float MisdirectionThresholdRad = (float)Math.PI / 4f; - private static readonly uint[] MisdirectionStatusIds; + private static readonly uint[] MisdirectionStatusIds = new uint[4] { 1422u, 2936u, 3694u, 3909u }; private readonly ILogger<MovementOverrideHook> _logger; @@ -94,7 +92,7 @@ public sealed class MovementOverrideHook : IDisposable public bool IsActive { get; private set; } - public bool UserInputDetected => _202C_200F_206E_202D_202A_202D_202E_206A_202D_202B_206E_200F_200D_200E_202A_202A_200E_206D_206D_202B_200C_206E_200E_202B_202A_200E_202B_200E_202E_206C_202C_206F_202D_202C_200B_202C_206B_202B_200D_206F_202E() - _lastUserInputAtMs < 250; + public bool UserInputDetected => Environment.TickCount64 - _lastUserInputAtMs < 250; public float Precision { get; set; } = 0.1f; @@ -106,50 +104,14 @@ public sealed class MovementOverrideHook : IDisposable } set { - System.Numerics.Vector3? desiredDirection = _desiredDirection; - System.Numerics.Vector3? vector = value; - int num = ((desiredDirection.HasValue == vector.HasValue) ? (-1630909431) : (-1630909425)); - while (true) + if (!(_desiredDirection == value)) { - int num2 = num; - int num3 = -1630909430; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + _desiredDirection = value; + if (value.HasValue) { - case 8: - num = -1630909425; - break; - case 2: - if (desiredDirection.GetValueOrDefault() == vector.GetValueOrDefault()) - { - goto case 6; - } - goto case 5; - case 6: - num = -1630909429; - break; - case 5: - num = -1630909426; - break; - case 3: - num = (desiredDirection.HasValue ? (-1630909432) : (-1630909428)); - break; - case 4: - _desiredDirection = value; - num = ((!value.HasValue) ? (-1630909427) : (-1630909430)); - break; - case 0: _desiredPosition = null; - num = -1630909427; - break; - case 7: - ResetStallTracking(); - return; - case 1: - return; } + ResetStallTracking(); } } } @@ -162,52 +124,14 @@ public sealed class MovementOverrideHook : IDisposable } set { - System.Numerics.Vector3? desiredPosition = _desiredPosition; - System.Numerics.Vector3? vector = value; - int num = ((desiredPosition.HasValue == vector.HasValue) ? 1571063872 : 1571063873); - while (true) + if (!(_desiredPosition == value)) { - int num2 = num; - int num3 = 1571063878; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + _desiredPosition = value; + if (value.HasValue) { - default: - continue; - case 3: - num = 1571063873; - continue; - case 5: - _desiredPosition = value; - num = ((!value.HasValue) ? 1571063878 : 1571063879); - continue; - case 6: - num = (desiredPosition.HasValue ? 1571063874 : 1571063876); - continue; - case 8: - return; - case 0: - ResetStallTracking(); - return; - case 1: _desiredDirection = null; - num = 1571063878; - continue; - case 4: - if (!(desiredPosition.GetValueOrDefault() == vector.GetValueOrDefault())) - { - break; - } - goto case 2; - case 2: - num = 1571063886; - continue; - case 7: - break; } - num = 1571063875; + ResetStallTracking(); } } } @@ -220,43 +144,10 @@ public sealed class MovementOverrideHook : IDisposable } set { - System.Numerics.Vector3? desiredFlyPosition = _desiredFlyPosition; - System.Numerics.Vector3? vector = value; - int num = ((desiredFlyPosition.HasValue == vector.HasValue) ? 175204761 : 175204766); - while (true) + if (!(_desiredFlyPosition == value)) { - int num2 = num; - int num3 = 175204762; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return; - case 6: - if (desiredFlyPosition.GetValueOrDefault() == vector.GetValueOrDefault()) - { - goto case 1; - } - goto case 4; - case 1: - num = 175204762; - break; - case 4: - num = 175204760; - break; - case 5: - num = 175204766; - break; - case 3: - num = (desiredFlyPosition.HasValue ? 175204764 : 175204763); - break; - case 2: - _desiredFlyPosition = value; - ResetFlyStallTracking(); - return; - } + _desiredFlyPosition = value; + ResetFlyStallTracking(); } } } @@ -266,679 +157,315 @@ public sealed class MovementOverrideHook : IDisposable _logger = logger; _objectTable = objectTable; _gameConfig = gameConfig; - _202B_206B_206B_202B_202A_206A_200E_200F_206C_206E_206F_200C_200F_202C_206B_206B_202B_206A_202C_206A_206E_206E_206B_206E_206D_200D_200D_206C_206B_202E_206F_206A_200C_202A_200E_206E_200E_202B_206A_202C_202E(_gameConfig, (EventHandler<ConfigChangeEvent>)OnGameConfigChanged); + _gameConfig.UiControlChanged += OnGameConfigChanged; UpdateLegacyMode(); TryInstallHook(sigScanner, interop, enabled); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void TryInstallHook(ISigScanner sigScanner, IGameInteropProvider interop, bool enabled) { - int num = (enabled ? (-1900473583) : (-1900473584)); - while (true) + if (!enabled) { - int num2 = num; - int num3 = -1900473583; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _logger.LogInformation("MovementOverrideHook is disabled - skipping hook install"); + IsAvailable = false; + return; + } + try + { + nint num = sigScanner.ScanText("E8 ?? ?? ?? ?? 84 C0 75 10 38 43 3C"); + _isInputEnabled1 = Marshal.GetDelegateForFunctionPointer<RMIWalkIsInputEnabledDelegate>(num); + nint num2 = sigScanner.ScanText("E8 ?? ?? ?? ?? 84 C0 75 03 88 47 3F"); + _isInputEnabled2 = Marshal.GetDelegateForFunctionPointer<RMIWalkIsInputEnabledDelegate>(num2); + _rmiWalkHook = interop.HookFromSignature<RMIWalkDelegate>("E8 ?? ?? ?? ?? 80 7B 3E 00 48 8D 3D", RMIWalkDetour); + _rmiWalkHook.Enable(); + _rmiFlyHook = interop.HookFromSignature<RMIFlyDelegate>("E8 ?? ?? ?? ?? 0F B6 0D ?? ?? ?? ?? B8", RMIFlyDetour); + _rmiFlyHook.Enable(); + IsAvailable = true; + _logger.LogInformation("MovementOverrideHook installed: RMIWalk=0x{Walk:X}, RMIFly=0x{Fly:X}, IsEnabled1=0x{E1:X}, IsEnabled2=0x{E2:X}", _rmiWalkHook.Address, _rmiFlyHook.Address, num, num2); + } + catch (Exception ex) + { + if (IsTrampolineExhaustion(ex)) { - case 2: - goto IL_004a; - case 1: - _200C_200F_202B_200E_202B_200C_206E_200D_202A_202D_206A_202D_200D_200F_206C_200E_202C_202C_206D_206D_206D_200E_202E_200C_200C_206B_200D_200C_206D_206E_200D_202B_206D_206D_202A_202B_202A_206E_200C_200D_202E((ILogger)_logger, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1885951886), Array.Empty<object>()); - IsAvailable = false; - return; - case 0: - try - { - nint num5 = _202E_206A_202B_200D_202E_206C_200D_206D_200C_200B_202C_206B_202B_200D_206C_206A_206E_202A_202D_200E_200B_200F_200E_206C_200E_200C_200D_206E_202E_202D_202B_200F_206E_200D_202E_202B_202E_206B_202C_200F_202E(sigScanner, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(4336795)); - _isInputEnabled1 = Marshal.GetDelegateForFunctionPointer<RMIWalkIsInputEnabledDelegate>(num5); - nint num6 = _202E_206A_202B_200D_202E_206C_200D_206D_200C_200B_202C_206B_202B_200D_206C_206A_206E_202A_202D_200E_200B_200F_200E_206C_200E_200C_200D_206E_202E_202D_202B_200F_206E_200D_202E_202B_202E_206B_202C_200F_202E(sigScanner, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-343401937)); - _isInputEnabled2 = Marshal.GetDelegateForFunctionPointer<RMIWalkIsInputEnabledDelegate>(num6); - _rmiWalkHook = interop.HookFromSignature<RMIWalkDelegate>(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(211326417), RMIWalkDetour); - _rmiWalkHook.Enable(); - _rmiFlyHook = interop.HookFromSignature<RMIFlyDelegate>(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(509698149), RMIFlyDetour); - _rmiFlyHook.Enable(); - IsAvailable = true; - _200C_200F_202B_200E_202B_200C_206E_200D_202A_202D_206A_202D_200D_200F_206C_200E_202C_202C_206D_206D_206D_200E_202E_200C_200C_206B_200D_200C_206D_206E_200D_202B_206D_206D_202A_202B_202A_206E_200C_200D_202E((ILogger)_logger, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(113861434), new object[4] { _rmiWalkHook.Address, _rmiFlyHook.Address, num5, num6 }); - } - catch (Exception ex) - { - num = ((!IsTrampolineExhaustion(ex)) ? (-1568159259) : (-1568159263)); - while (true) - { - int num7 = num; - num3 = -1568159264; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 2: - num = -1568159263; - continue; - case 0: - { - _rmiWalkHook = null; - Hook<RMIFlyDelegate>? rmiFlyHook = _rmiFlyHook; - if (rmiFlyHook == null) - { - break; - } - rmiFlyHook.Dispose(); - num = -1568159261; - continue; - } - case 4: - { - IsAvailable = false; - _isInputEnabled1 = null; - _isInputEnabled2 = null; - Hook<RMIWalkDelegate>? rmiWalkHook = _rmiWalkHook; - if (rmiWalkHook == null) - { - goto case 0; - } - rmiWalkHook.Dispose(); - num = -1568159264; - continue; - } - case 1: - _206C_206C_202A_200B_206C_200C_200E_202B_200C_202B_202D_200B_200D_200D_202A_200B_206D_202E_200B_206B_206D_200D_202D_200B_206C_202C_206A_202C_206E_202D_200B_206C_206F_206F_202B_200E_206F_202A_200C_206A_202E((ILogger)_logger, ex, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-763323413), Array.Empty<object>()); - num = -1568159260; - continue; - case 5: - _206C_206C_202A_200B_206C_200C_200E_202B_200C_202B_202D_200B_200D_200D_202A_200B_206D_202E_200B_206B_206D_200D_202D_200B_206C_202C_206A_202C_206E_202D_200B_206C_206F_206F_202B_200E_206F_202A_200C_206A_202E((ILogger)_logger, ex, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1136207760), Array.Empty<object>()); - num = -1568159260; - continue; - case 3: - break; - } - break; - } - _rmiFlyHook = null; - return; - } - try - { - nint num8 = (nint)(_forcedMovementDirection = (float*)_206F_202A_206B_202A_200C_202D_206F_202E_206C_206D_202A_206B_200C_200E_202D_200D_202C_200C_206A_206D_206A_206A_200C_202C_202B_200E_206E_202B_200B_206A_200D_200D_206C_206A_206C_200B_200C_206E_202D_206B_202E(sigScanner, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-334079399), 0)); - _mcIsInputActiveHook = interop.HookFromSignature<MoveControlIsInputActiveDelegate>(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1492373940), MCIsInputActiveDetour); - _mcIsInputActiveHook.Enable(); - _200C_200F_202B_200E_202B_200C_206E_200D_202A_202D_206A_202D_200D_200F_206C_200E_202C_202C_206D_206D_206D_200E_202E_200C_200C_206B_200D_200C_206D_206E_200D_202B_206D_206D_202A_202B_202A_206E_200C_200D_202E((ILogger)_logger, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1868632107), new object[2] { _mcIsInputActiveHook.Address, num8 }); - return; - } - catch (Exception ex2) - { - _206C_206C_202A_200B_206C_200C_200E_202B_200C_202B_202D_200B_200D_200D_202A_200B_206D_202E_200B_206B_206D_200D_202D_200B_206C_202C_206A_202C_206E_202D_200B_206C_206F_206F_202B_200E_206F_202A_200C_206A_202E((ILogger)_logger, ex2, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(164606071), Array.Empty<object>()); - _forcedMovementDirection = null; - _mcIsInputActiveHook?.Dispose(); - _mcIsInputActiveHook = null; - return; - } + _logger.LogWarning(ex, "Failed to install MovementOverrideHook: the hook backend found the function but could not place a trampoline near it. That space fills up over repeated plugin reloads in one game session and is never returned - restart the game client to clear it. Fast movement override is unavailable until then - callers will fall back to navmesh."); } - continue; - IL_004a: - num = -1900473584; + else + { + _logger.LogWarning(ex, "Failed to install MovementOverrideHook (signature scan or hook creation failed). Fast movement override is unavailable - callers will fall back to navmesh. This usually means the game was patched; update the plugin when a new version is available."); + } + IsAvailable = false; + _isInputEnabled1 = null; + _isInputEnabled2 = null; + _rmiWalkHook?.Dispose(); + _rmiWalkHook = null; + _rmiFlyHook?.Dispose(); + _rmiFlyHook = null; + return; + } + try + { + nint num3 = (nint)(_forcedMovementDirection = (float*)sigScanner.GetStaticAddressFromSig("F3 0F 11 0D ?? ?? ?? ?? 48 85 DB")); + _mcIsInputActiveHook = interop.HookFromSignature<MoveControlIsInputActiveDelegate>("E8 ?? ?? ?? ?? 84 C0 74 09 84 DB 74 1A", MCIsInputActiveDetour); + _mcIsInputActiveHook.Enable(); + _logger.LogInformation("MovementOverrideHook misdirection primitives installed: MCIsInputActive=0x{Mc:X}, ForcedMovementDirection=0x{Fmd:X}", _mcIsInputActiveHook.Address, num3); + } + catch (Exception exception) + { + _logger.LogWarning(exception, "Failed to install MovementOverrideHook misdirection primitives (MCIsInputActive / ForcedMovementDirection). Core movement override is still active; the detour will bail during misdirection mechanics rather than drive through the input rotation."); + _forcedMovementDirection = null; + _mcIsInputActiveHook?.Dispose(); + _mcIsInputActiveHook = null; } } - [MethodImpl(MethodImplOptions.NoInlining)] private static bool IsTrampolineExhaustion(Exception ex) { - int num = (_206C_202D_206F_202C_206C_200D_200E_202B_206B_206C_200E_206F_206F_206B_206B_200B_202C_206F_202E_200C_206A_200C_200E_202D_200D_206B_206C_206E_200D_206C_206B_206B_200C_200F_200D_202C_206B_200E_206C_200D_202E(_200B_200E_202A_200F_206F_200D_206F_206C_202C_206E_206E_206C_202C_202C_200B_202B_206F_200B_202D_206C_200D_206F_206A_206A_202B_202A_200F_206E_200D_200D_202B_202A_202E_202E_206B_200D_200E_202D_206E_202B_202E(ex), global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(493339631), StringComparison.Ordinal) ? (-550622530) : (-550622529)); - while (true) + if (!ex.Message.Contains("MemoryBuffer", StringComparison.Ordinal)) { - int num2 = num; - int num3 = -550622530; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0058; - case 0: - return true; - case 1: - return _206C_202D_206F_202C_206C_200D_200E_202B_206B_206C_200E_206F_206F_206B_206B_200B_202C_206F_202E_200C_206A_200C_200E_202D_200D_206B_206C_206E_200D_206C_206B_206B_200C_200F_200D_202C_206B_200E_206C_200D_202E(_200B_200E_202A_200F_206F_200D_206F_206C_202C_206E_206E_206C_202C_202C_200B_202B_206F_200B_202D_206C_200D_206F_206A_206A_202B_202A_200F_206E_200D_200D_202B_202A_202E_202E_206B_200D_200E_202D_206E_202B_202E(ex), global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(2133354563), StringComparison.OrdinalIgnoreCase); - } - continue; - IL_0058: - num = -550622529; + return ex.Message.Contains("memory location", StringComparison.OrdinalIgnoreCase); } + return true; } private unsafe byte MCIsInputActiveDetour(void* self, byte inputSourceFlags) { - int num = ((!_forcedControlState.HasValue) ? 1868292107 : 1868292104); - while (true) + if (_forcedControlState.HasValue) { - int num2 = num; - int num3 = 1868292106; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004d; - case 1: - return _mcIsInputActiveHook.Original(self, inputSourceFlags); - case 2: - return _forcedControlState.Value ? ((byte)1) : ((byte)0); - } - continue; - IL_004d: - num = 1868292104; + return _forcedControlState.Value ? ((byte)1) : ((byte)0); } + return _mcIsInputActiveHook.Original(self, inputSourceFlags); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void RMIFlyDetour(void* self, PlayerMoveControllerFlyInput* result) { _rmiFlyHook.Original(self, result); - int num = ((result->Forward != 0f) ? (-511834047) : (-511834036)); - float num6 = default(float); - float num12 = default(float); - IPlayerCharacter playerCharacter = default(IPlayerCharacter); - bool flag = default(bool); - float num5 = default(float); - float? num10 = default(float?); - long num8 = default(long); - System.Numerics.Vector3 vector2 = default(System.Numerics.Vector3); - System.Numerics.Vector3 valueOrDefault = default(System.Numerics.Vector3); - System.Numerics.Vector3? desiredFlyPosition = default(System.Numerics.Vector3?); - while (true) + bool flag = result->Forward != 0f || result->Left != 0f || result->Up != 0f; + if (flag) { - int num2 = num; - int num3 = -511834024; - int num4 = num2; - int num11; - switch ((num4 | num3) - (num4 & num3)) + _lastUserInputAtMs = Environment.TickCount64; + } + if (!IsAvailable || flag) + { + return; + } + Func<bool>? isExternalPathfindingActive = IsExternalPathfindingActive; + if (isExternalPathfindingActive != null && isExternalPathfindingActive()) + { + return; + } + IPlayerCharacter localPlayer = _objectTable.LocalPlayer; + if (localPlayer == null) + { + return; + } + System.Numerics.Vector3? desiredFlyPosition = _desiredFlyPosition; + if (!desiredFlyPosition.HasValue) + { + return; + } + System.Numerics.Vector3 valueOrDefault = desiredFlyPosition.GetValueOrDefault(); + System.Numerics.Vector3 position = localPlayer.Position; + System.Numerics.Vector3 vector = valueOrDefault - position; + float num = vector.X * vector.X + vector.Y * vector.Y + vector.Z * vector.Z; + if (num < Precision * Precision) + { + _desiredFlyPosition = null; + ResetFlyStallTracking(); + return; + } + float num3; + if (_legacyMode) + { + float? num2 = TryGetCameraAzimuth(); + if (!num2.HasValue) { - case 15: - { - Func<bool>? isExternalPathfindingActive = IsExternalPathfindingActive; - num = ((isExternalPathfindingActive == null || !isExternalPathfindingActive()) ? (-511834032) : (-511834039)); - break; - } - case 26: return; - case 29: + } + num3 = num2.Value + (float)Math.PI; + } + else + { + num3 = localPlayer.Rotation; + } + long tickCount = Environment.TickCount64; + if (tickCount >= _flyStallCooldownUntilMs) + { + float num4 = MathF.Sqrt(num); + if (_flyStallImprovementMs == 0L || tickCount - _flyLastDriveMs > 250 || num4 < _flyStallBestDist - 0.3f) + { + _flyStallBestDist = num4; + _flyStallImprovementMs = tickCount; + } + else if (tickCount - _flyStallImprovementMs >= 500) + { + _logger.LogDebug("MovementOverride fly watchdog tripped: no progress toward target ({Dist:F2}y away) within {Elapsed}ms, clearing", num4, tickCount - _flyStallImprovementMs); _desiredFlyPosition = null; ResetFlyStallTracking(); - return; - case 16: - return; - case 0: - num6 = _202B_200B_200F_200C_202D_206C_206D_202B_202A_200B_200F_206B_200C_206D_200B_202D_206E_202C_206F_206C_202D_200D_200F_202A_202A_200D_200B_206B_206A_206C_202C_206C_200E_206C_206D_200B_206C_202D_202A_206D_202E(num12); - num = ((_flyStallImprovementMs == 0L) ? (-511834041) : (-511834034)); - break; - case 8: - playerCharacter = _200B_206D_206B_202B_206D_200D_200B_200C_206D_200C_206B_206F_202B_206A_200D_202C_202A_200D_202C_200C_200E_206F_200E_202C_202B_206A_202E_200C_202E_202C_206D_202A_206E_202A_202D_202A_202A_200F_200D_200D_202E(_objectTable); - num = ((playerCharacter != null) ? (-511834018) : (-511834038)); - break; - case 14: - num = ((!flag) ? (-511834025) : (-511834040)); - break; - case 5: - num5 = num10.Value + MathF.PI; - num = -511834033; - break; - case 27: - { - long num7 = num8; - long flyStallImprovementMs = _flyStallImprovementMs; - long num9 = num7; - num = ((~(~num9 + flyStallImprovementMs) < 500) ? (-511834020) : (-511834035)); - break; - } - case 17: - return; - case 19: - num = -511834036; - break; - case 18: - return; - case 1: - { - System.Numerics.Vector3 vector = _202E_202C_206C_206F_200D_200F_206A_206F_202A_200B_206F_200D_206E_202B_200C_202A_202B_202B_200B_200E_200D_202E_206C_206B_202D_200C_200B_200B_206C_200D_200B_206F_200B_206B_202B_206A_206C_200C_202B_200E_202E((IGameObject)playerCharacter); - vector2 = valueOrDefault - vector; - num12 = vector2.X * vector2.X + vector2.Y * vector2.Y + vector2.Z * vector2.Z; - num = ((!(num12 < Precision * Precision)) ? (-511834022) : (-511834043)); - break; - } - case 12: - valueOrDefault = desiredFlyPosition.GetValueOrDefault(); - num = -511834023; - break; - case 20: - num = ((result->Left != 0f) ? (-511834047) : (-511834048)); - break; - case 23: - num8 = _202C_200F_206E_202D_202A_202D_202E_206A_202D_202B_206E_200F_200D_200E_202A_202A_200E_206D_206D_202B_200C_206E_200E_202B_202A_200E_202B_200E_202E_206C_202C_206F_202D_202C_200B_202C_206B_202B_200D_206F_202E(); - num = ((num8 >= _flyStallCooldownUntilMs) ? (-511834024) : (-511834046)); - break; - case 13: - _lastUserInputAtMs = _202C_200F_206E_202D_202A_202D_202E_206A_202D_202B_206E_200F_200D_200E_202A_202A_200E_206D_206D_202B_200C_206E_200E_202B_202A_200E_202B_200E_202E_206C_202C_206F_202D_202C_200B_202C_206B_202B_200D_206F_202E(); - num = -511834044; - break; - case 9: - return; - case 22: - { - long num19 = num8; - long flyStallImprovementMs = _flyLastDriveMs; - long num9 = num19; - num = ((~(~num9 + flyStallImprovementMs) > 250) ? (-511834041) : (-511834030)); - break; - } - case 4: - { - _flyLastDriveMs = num8; - float num17 = _200E_206F_200F_200B_206F_200B_200B_200B_200B_206C_206E_206A_202D_206C_202D_200C_202B_202B_200B_200F_206A_202B_200D_206B_206A_202E_206E_202A_202A_202C_206A_202C_206D_206A_202A_202A_206F_202D_206E_206F_202E(vector2.X, vector2.Z) - num5; - result->Forward = _206B_202D_206C_200D_206A_206A_202E_206B_200D_206C_202E_206A_202A_206C_200B_206C_202C_200B_206D_200B_206C_202B_202D_200C_200F_200D_202D_202C_206C_202C_206E_202A_200D_206B_206F_200F_202B_200D_202A_206D_202E(num17); - result->Left = _206D_202C_200F_202D_200D_200C_206D_202D_206E_206F_206D_206F_200E_200D_200D_200B_200C_202C_202D_200C_202D_200E_200E_200B_206F_200E_202C_202E_206D_200E_200C_200D_206A_202C_200D_206B_206E_200D_200F_206F_202E(num17); - float num18 = _202B_200B_200F_200C_202D_206C_206D_202B_202A_200B_200F_206B_200C_206D_200B_202D_206E_202C_206F_206C_202D_200D_200F_202A_202A_200D_200B_206B_206A_206C_202C_206C_200E_206C_206D_200B_206C_202D_202A_206D_202E(vector2.X * vector2.X + vector2.Z * vector2.Z); - result->Up = _200E_206F_200F_200B_206F_200B_200B_200B_200B_206C_206E_206A_202D_206C_202D_200C_202B_202B_200B_200F_206A_202B_200D_206B_206A_202E_206E_202A_202A_202C_206A_202C_206D_206A_202A_202A_206F_202D_206E_206F_202E(vector2.Y, num18); + _flyStallCooldownUntilMs = tickCount + 500; return; } - case 21: - { - ILogger<MovementOverrideHook> logger = _logger; - string text = global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-934855556); - object[] obj = new object[2] { num6, null }; - long num13 = num8; - long flyStallImprovementMs = _flyStallImprovementMs; - long num9 = num13; - obj[1] = ~(~num9 + flyStallImprovementMs); - _206E_200C_206E_206B_202C_202D_200E_200F_206D_202E_202A_202A_206B_202A_200E_200D_200E_202E_202D_200C_206A_200E_206A_200D_200E_202A_200F_200F_206A_206A_206E_206B_206C_202B_202B_206D_206E_200F_206B_206C_202E((ILogger)logger, text, obj); - _desiredFlyPosition = null; - ResetFlyStallTracking(); - long num14 = num8; - flyStallImprovementMs = 500L; - num9 = num14; - long num15 = num9 ^ flyStallImprovementMs; - long num16 = num9 & flyStallImprovementMs; - _flyStallCooldownUntilMs = num15 + (num16 + num16); - return; - } - case 2: - num = ((!_legacyMode) ? (-511834017) : (-511834042)); - break; - case 3: - return; - case 24: - num11 = ((result->Up != 0f) ? 1 : 0); - goto IL_0447; - case 25: - num11 = 1; - goto IL_0447; - case 6: - desiredFlyPosition = _desiredFlyPosition; - num = ((!desiredFlyPosition.HasValue) ? (-511834029) : (-511834028)); - break; - case 28: - num = (IsAvailable ? (-511834026) : (-511834021)); - break; - case 31: - _flyStallBestDist = num6; - _flyStallImprovementMs = num8; - num = -511834020; - break; - case 30: - num10 = TryGetCameraAzimuth(); - num = (num10.HasValue ? (-511834019) : (-511834031)); - break; - case 11: - return; - case 10: - num = ((!(num6 < _flyStallBestDist - 0.3f)) ? (-511834045) : (-511834041)); - break; - case 7: - { - num5 = _206F_206B_206B_202D_200E_202B_206C_202A_202D_206A_202D_206D_206B_200B_206E_206D_200B_202B_206D_206F_200F_200E_200C_202E_206E_200B_206B_200C_206D_206E_200C_202D_206C_200D_202B_200F_200B_200F_200E_206C_202E((IGameObject)playerCharacter); - num = -511834033; - break; - } - IL_0447: - flag = (byte)num11 != 0; - num = ((!flag) ? (-511834044) : (-511834027)); - break; - } + _flyLastDriveMs = tickCount; + float x = MathF.Atan2(vector.X, vector.Z) - num3; + result->Forward = MathF.Cos(x); + result->Left = MathF.Sin(x); + float x2 = MathF.Sqrt(vector.X * vector.X + vector.Z * vector.Z); + result->Up = MathF.Atan2(vector.Y, x2); } } private static bool PlayerHasMisdirection(IPlayerCharacter player) { - StatusList statusList = _202E_206C_206D_202E_206C_206C_200D_206B_206A_206F_200B_202D_206C_200F_200C_200B_206C_206A_206A_202C_206B_202C_206A_206F_200B_200E_202E_206B_202D_202D_206F_202E_200B_206C_206A_206D_206F_202B_206B_200E_202E((IBattleChara)player); - int num = 0; - int num2 = -1842578236; - uint num8 = default(uint); - IStatus status = default(IStatus); - int num9 = default(int); - while (true) + StatusList statusList = player.StatusList; + for (int i = 0; i < statusList.Length; i++) { - int num3 = num2; - int num4 = -1842578235; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) + IStatus status = statusList[i]; + if (status == null) { - case 9: - num2 = -1842578236; - break; - case 2: - { - int num13 = num; - num4 = 1; - num5 = num13; - int num14 = num5 ^ num4; - int num15 = num5 & num4; - num = num14 + (num15 + num15); - num2 = -1842578236; - break; + continue; } - case 0: - num8 = _200F_200B_206A_200E_206A_200E_206F_206B_206B_202B_202A_206E_206C_202B_200F_200E_202B_202A_202E_200F_206D_206E_200F_200F_202B_202D_202A_206A_200B_206F_200B_200D_206D_200C_200F_206A_200E_200F_200F_202D_202E(status); - num9 = 0; - num2 = -1842578237; - break; - case 3: - num2 = ((num8 != MisdirectionStatusIds[num9]) ? (-1842578240) : (-1842578238)); - break; - case 5: + uint statusId = status.StatusId; + for (int j = 0; j < MisdirectionStatusIds.Length; j++) { - int num10 = num9; - num4 = 1; - num5 = num10; - int num11 = num5 ^ num4; - int num12 = num5 & num4; - num9 = num11 + (num12 + num12); - num2 = -1842578237; - break; - } - case 6: - num2 = ((num9 < MisdirectionStatusIds.Length) ? (-1842578234) : (-1842578233)); - break; - case 1: - num2 = ((num < _200F_202E_200C_200D_200F_202C_206F_206B_200D_200D_200D_202A_206C_202D_202A_200C_200D_206C_200D_202D_202C_206F_206C_200C_206B_200E_206B_202B_200B_200B_206C_202D_202B_202B_206D_206F_206F_206C_206A_202B_202E(statusList)) ? (-1842578227) : (-1842578239)); - break; - case 7: - return true; - case 4: - return false; - case 8: - status = _200C_202B_200D_206B_202C_202E_200B_200F_200F_202B_200C_200B_206A_202D_200E_202E_200F_206A_202E_200F_206C_202D_206A_206B_206B_206A_202C_200B_202C_202B_206E_202D_202E_200E_200D_200B_200C_200C_200B_202D_202E(statusList, num); - num2 = ((status == null) ? (-1842578233) : (-1842578235)); - break; + if (statusId == MisdirectionStatusIds[j]) + { + return true; + } } } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void RMIWalkDetour(void* self, float* sumLeft, float* sumForward, float* sumTurnLeft, byte* haveBackwardOrStrafe, byte* a6, byte bAdditiveUnk) { - int num = ((bAdditiveUnk != 0) ? (-1181401386) : (-1181401372)); - float num11 = default(float); - System.Numerics.Vector3 vector = default(System.Numerics.Vector3); - long num14 = default(long); - float? num12 = default(float?); - float referenceRotation = default(float); - float num9 = default(float); - System.Numerics.Vector3? vector2 = default(System.Numerics.Vector3?); - float item = default(float); - float item2 = default(float); - IPlayerCharacter playerCharacter = default(IPlayerCharacter); - bool flag = default(bool); - while (true) + if (bAdditiveUnk == 0) { - int num2 = num; - int num3 = -1181401394; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num21; - switch (num5 - (num6 + num6)) + _forcedControlState = null; + } + _rmiWalkHook.Original(self, sumLeft, sumForward, sumTurnLeft, haveBackwardOrStrafe, a6, bAdditiveUnk); + if (bAdditiveUnk != 0) + { + return; + } + bool flag = *sumLeft != 0f || *sumForward != 0f; + if (flag) + { + _lastUserInputAtMs = Environment.TickCount64; + } + if (!IsAvailable) + { + IsActive = false; + return; + } + if (flag) + { + IsActive = false; + return; + } + Func<bool>? isExternalPathfindingActive = IsExternalPathfindingActive; + if (isExternalPathfindingActive != null && isExternalPathfindingActive()) + { + IsActive = false; + return; + } + if (_isInputEnabled1 == null || _isInputEnabled2 == null) + { + IsActive = false; + return; + } + if (!_isInputEnabled1(self) || !_isInputEnabled2(self)) + { + IsActive = false; + return; + } + IPlayerCharacter localPlayer = _objectTable.LocalPlayer; + if (localPlayer == null) + { + IsActive = false; + return; + } + System.Numerics.Vector3 position = localPlayer.Position; + System.Numerics.Vector3? vector = ComputeDesiredWorldDirection(position); + if (!vector.HasValue) + { + IsActive = false; + return; + } + long tickCount = Environment.TickCount64; + if (tickCount < _stallCooldownUntilMs) + { + IsActive = false; + return; + } + float referenceRotation; + if (_legacyMode) + { + float? num = TryGetCameraAzimuth(); + if (!num.HasValue) { - case 8: - num = ((num11 < -MathF.PI) ? (-1181401363) : (-1181401398)); - break; - case 35: - num11 += MathF.PI * 2f; - num = -1181401402; - break; - case 48: IsActive = false; return; - case 33: - _stallCheckPosition = vector; - _stallCheckStartMs = num14; - num = -1181401375; - break; - case 15: - _stallCheckPosition = vector; - _stallCheckStartMs = num14; - num = -1181401375; - break; - case 46: - num = ((!_legacyMode) ? (-1181401370) : (-1181401394)); - break; - case 21: - num = -1181401402; - break; - case 10: - num21 = 1; - goto IL_01b5; - case 34: - num = ((!_isInputEnabled1(self)) ? (-1181401403) : (-1181401378)); - break; - case 0: - num12 = TryGetCameraAzimuth(); - num = (num12.HasValue ? (-1181401380) : (-1181401397)); - break; - case 18: - referenceRotation = num12.Value + MathF.PI; - num = -1181401395; - break; - case 36: - { - float num7 = vector.X - _stallCheckPosition.X; - float num8 = vector.Z - _stallCheckPosition.Z; - num9 = num7 * num7 + num8 * num8; - num = ((!(num9 < 0.09f)) ? (-1181401407) : (-1181401408)); - break; } - case 50: - IsActive = false; - return; - case 4: + referenceRotation = num.Value + (float)Math.PI; + } + else + { + referenceRotation = localPlayer.Rotation; + } + var (num2, num3) = WorldToPlayerRelative(vector.Value, referenceRotation); + if (PlayerHasMisdirection(localPlayer)) + { + if (_forcedMovementDirection == null || _mcIsInputActiveHook == null) { - bool flag2 = _206E_206E_200B_200C_202D_206C_200D_200E_200D_200B_206C_206E_200F_206E_206A_202C_200C_202D_206A_200D_202C_206E_206D_200F_202A_206A_200B_200C_200D_202A_202D_202B_206A_202D_206D_202C_206F_200F_206D_202A_202E(num11) <= MathF.PI / 4f; - _forcedControlState = flag2; - num = (flag2 ? (-1181401396) : (-1181401374)); - break; + IsActive = false; + return; } - case 32: - num21 = ((*sumForward != 0f) ? 1 : 0); - goto IL_01b5; - case 42: - _forcedControlState = null; - num = -1181401386; - break; - case 6: - num14 = _202C_200F_206E_202D_202A_202D_202E_206A_202D_202B_206E_200F_200D_200E_202A_202A_200E_206D_206D_202B_200C_206E_200E_202B_202A_200E_202B_200E_202E_206C_202C_206F_202D_202C_200B_202C_206B_202B_200D_206F_202E(); - num = ((num14 >= _stallCooldownUntilMs) ? (-1181401376) : (-1181401365)); - break; - case 25: + float num4 = MathF.Atan2(vector.Value.X, vector.Value.Z); + float forcedMovementDirection = *_forcedMovementDirection; + float num5; + for (num5 = num4 - forcedMovementDirection; num5 > (float)Math.PI; num5 -= (float)Math.PI * 2f) { - long num20 = num14; - long stallCheckStartMs = _lastDriveMs; - long num15 = num20; - num = ((~(~num15 + stallCheckStartMs) <= 250) ? (-1181401345) : (-1181401361)); - break; } - case 29: - return; - case 38: - num = ((*sumLeft != 0f) ? (-1181401404) : (-1181401362)); - break; - case 28: - IsActive = false; - return; - case 11: - IsActive = false; - return; - case 23: - _lastUserInputAtMs = _202C_200F_206E_202D_202A_202D_202E_206A_202D_202B_206E_200F_200D_200E_202A_202A_200E_206D_206D_202B_200C_206E_200E_202B_202A_200E_202B_200E_202E_206C_202C_206F_202D_202C_200B_202C_206B_202B_200D_206F_202E(); - num = -1181401377; - break; - case 3: + for (; num5 < -(float)Math.PI; num5 += (float)Math.PI * 2f) { - (float left, float forward) tuple = WorldToPlayerRelative(vector2.Value, referenceRotation); - item = tuple.left; - item2 = tuple.forward; - num = ((!PlayerHasMisdirection(playerCharacter)) ? (-1181401396) : (-1181401401)); - break; } - case 30: - IsActive = false; - return; - case 43: - num = -1181401372; - break; - case 20: - IsActive = false; - return; - case 7: + bool flag2 = MathF.Abs(num5) <= (float)Math.PI / 4f; + _forcedControlState = flag2; + if (!flag2) { - Func<bool>? isExternalPathfindingActive = IsExternalPathfindingActive; - num = ((isExternalPathfindingActive == null || !isExternalPathfindingActive()) ? (-1181401393) : (-1181401392)); - break; - } - case 1: - num = ((_isInputEnabled1 == null) ? (-1181401390) : (-1181401405)); - break; - case 17: - num = (IsAvailable ? (-1181401369) : (-1181401382)); - break; - case 40: - referenceRotation = _206F_206B_206B_202D_200E_202B_206C_202A_202D_206A_202D_206D_206B_200B_206E_206D_200B_202B_206D_206F_200F_200E_200C_202E_206E_200B_206B_200C_206D_206E_200C_202D_206C_200D_202B_200F_200B_200F_200E_206C_202E((IGameObject)playerCharacter); - num = -1181401395; - break; - case 22: - vector = _202E_202C_206C_206F_200D_200F_206A_206F_202A_200B_206F_200D_206E_202B_200C_202A_202B_202B_200B_200E_200D_202E_206C_206B_202D_200C_200B_200B_206C_200D_200B_206F_200B_206B_202B_206A_206C_200C_202B_200E_202E((IGameObject)playerCharacter); - vector2 = ComputeDesiredWorldDirection(vector); - num = (vector2.HasValue ? (-1181401400) : (-1181401406)); - break; - case 2: - num = ((_stallCheckStartMs == 0L) ? (-1181401361) : (-1181401385)); - break; - case 27: - num11 -= MathF.PI * 2f; - num = -1181401373; - break; - case 26: - playerCharacter = _200B_206D_206B_202B_206D_200D_200B_200C_206D_200C_206B_206F_202B_206A_200D_202C_202A_200D_202C_200C_200E_206F_200E_202C_202B_206A_202E_200C_202E_202C_206D_202A_206E_202A_202D_202A_202A_200F_200D_200D_202E(_objectTable); - num = ((playerCharacter != null) ? (-1181401384) : (-1181401348)); - break; - case 44: *sumLeft = 0f; *sumForward = 0f; IsActive = false; return; - case 24: - _rmiWalkHook.Original(self, sumLeft, sumForward, sumTurnLeft, haveBackwardOrStrafe, a6, bAdditiveUnk); - num = ((bAdditiveUnk == 0) ? (-1181401368) : (-1181401389)); - break; - case 47: - _lastDriveMs = num14; - *sumLeft = item; - *sumForward = item2; - IsActive = true; - return; - case 49: - { - long num19 = num14; - long stallCheckStartMs = _stallCheckStartMs; - long num15 = num19; - num = ((~(~num15 + stallCheckStartMs) < 500) ? (-1181401375) : (-1181401366)); - break; } - case 45: - num = ((num11 > MathF.PI) ? (-1181401387) : (-1181401381)); - break; - case 16: - num = (_isInputEnabled2(self) ? (-1181401388) : (-1181401403)); - break; - case 14: + } + if (_stallCheckStartMs == 0L || tickCount - _lastDriveMs > 250) + { + _stallCheckPosition = position; + _stallCheckStartMs = tickCount; + } + else if (tickCount - _stallCheckStartMs >= 500) + { + float num6 = position.X - _stallCheckPosition.X; + float num7 = position.Z - _stallCheckPosition.Z; + float num8 = num6 * num6 + num7 * num7; + if (num8 < 0.09f) { - ILogger<MovementOverrideHook> logger = _logger; - string text = global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1233622867); - object[] obj = new object[2] - { - _202B_200B_200F_200C_202D_206C_206D_202B_202A_200B_200F_206B_200C_206D_200B_202D_206E_202C_206F_206C_202D_200D_200F_202A_202A_200D_200B_206B_206A_206C_202C_206C_200E_206C_206D_200B_206C_202D_202A_206D_202E(num9), - null - }; - long num13 = num14; - long stallCheckStartMs = _stallCheckStartMs; - long num15 = num13; - obj[1] = ~(~num15 + stallCheckStartMs); - _206E_200C_206E_206B_202C_202D_200E_200F_206D_202E_202A_202A_206B_202A_200E_200D_200E_202E_202D_200C_206A_200E_206A_200D_200E_202A_200F_200F_206A_206A_206E_206B_206C_202B_202B_206D_206E_200F_206B_206C_202E((ILogger)logger, text, obj); + _logger.LogDebug("MovementOverride stall watchdog tripped: player moved {Dist:F2}y over {Elapsed}ms, clearing", MathF.Sqrt(num8), tickCount - _stallCheckStartMs); _desiredDirection = null; _desiredPosition = null; ResetStallTracking(); - long num16 = num14; - stallCheckStartMs = 500L; - num15 = num16; - long num17 = num15 ^ stallCheckStartMs; - long num18 = num15 & stallCheckStartMs; - _stallCooldownUntilMs = num17 + (num18 + num18); + _stallCooldownUntilMs = tickCount + 500; _forcedControlState = null; IsActive = false; return; } - case 31: - IsActive = false; - return; - case 13: - num = ((_isInputEnabled2 != null) ? (-1181401364) : (-1181401390)); - break; - case 41: - num = ((!flag) ? (-1181401399) : (-1181401391)); - break; - case 39: - { - float num10 = _200E_206F_200F_200B_206F_200B_200B_200B_200B_206C_206E_206A_202D_206C_202D_200C_202B_202B_200B_200F_206A_202B_200D_206B_206A_202E_206E_202A_202A_202C_206A_202C_206D_206A_202A_202A_206F_202D_206E_206F_202E(vector2.Value.X, vector2.Value.Z); - float forcedMovementDirection = *_forcedMovementDirection; - num11 = num10 - forcedMovementDirection; - num = -1181401373; - break; - } - case 12: - IsActive = false; - return; - case 5: - IsActive = false; - return; - case 37: - IsActive = false; - return; - case 19: - num = ((_mcIsInputActiveHook != null) ? (-1181401367) : (-1181401346)); - break; - case 9: - { - num = ((_forcedMovementDirection == null) ? (-1181401346) : (-1181401379)); - break; - } - IL_01b5: - flag = (byte)num21 != 0; - num = ((!flag) ? (-1181401377) : (-1181401383)); - break; - } + _stallCheckPosition = position; + _stallCheckStartMs = tickCount; } + _lastDriveMs = tickCount; + *sumLeft = num2; + *sumForward = num3; + IsActive = true; } private void OnGameConfigChanged(object? sender, ConfigChangeEvent evt) @@ -946,85 +473,36 @@ public sealed class MovementOverrideHook : IDisposable UpdateLegacyMode(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void UpdateLegacyMode() { - uint num2 = default(uint); - int num = ((!_202B_206F_202D_206E_202A_206C_206A_200B_202D_200B_206D_206C_206E_206C_202E_206A_202D_200F_202A_200B_206A_200B_202E_202D_206F_202C_206F_202E_206F_206D_206A_206A_206B_202E_202E_202E_202A_206D_202B_206A_202E(_206D_200E_206E_202E_206B_200D_206A_206E_206E_200C_202B_202A_200F_206B_202A_202E_202C_202A_206E_202E_200C_206C_202D_206F_202C_200C_200F_206B_206B_200C_200B_202D_202D_200B_202D_206C_202A_200D_200B_202E_202E(_gameConfig), global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1244554421), ref num2)) ? (-1166724982) : (-1166724977)); - bool flag = default(bool); - while (true) + uint value; + bool flag = _gameConfig.UiControl.TryGetUInt("MoveMode", out value) && value == 1; + if (flag != _legacyMode) { - int num3 = num; - int num4 = -1166724978; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - int num8; - switch (num6 - (num7 + num7)) - { - case 4: - num8 = 0; - goto IL_006a; - case 1: - num8 = ((num2 == 1) ? 1 : 0); - goto IL_006a; - case 0: - return; - case 2: - num = -1166724977; - break; - case 3: - { - _legacyMode = flag; - _200C_200F_202B_200E_202B_200C_206E_200D_202A_202D_206A_202D_200D_200F_206C_200E_202C_202C_206D_206D_206D_200E_202E_200C_200C_206B_200D_200C_206D_206E_200D_202B_206D_206D_202A_202B_202A_206E_200C_200D_202E((ILogger)_logger, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1714575420), new object[1] { flag ? global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(527119189) : global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-585283226) }); - num = -1166724978; - break; - } - IL_006a: - flag = (byte)num8 != 0; - num = ((flag == _legacyMode) ? (-1166724978) : (-1166724979)); - break; - } + _legacyMode = flag; + _logger.LogInformation("Legacy movement mode is now {State}", flag ? "enabled" : "disabled"); } } private unsafe static float? TryGetCameraAzimuth() { CameraManager* ptr = CameraManager.Instance(); - int num = ((ptr != null) ? 129017006 : 129017005); - FFXIVClientStructs.FFXIV.Client.Game.Camera* activeCamera = default(FFXIVClientStructs.FFXIV.Client.Game.Camera*); - FFXIVClientStructs.FFXIV.Client.Graphics.Render.Camera* renderCamera = default(FFXIVClientStructs.FFXIV.Client.Graphics.Render.Camera*); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 129017004; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - return null; - case 2: - activeCamera = ptr->GetActiveCamera(); - num = ((activeCamera != null) ? 129017007 : 129017002); - break; - case 1: - return null; - case 5: - return null; - case 4: - { - FFXIVClientStructs.FFXIV.Common.Math.Matrix4x4 viewMatrix = renderCamera->ViewMatrix; - return _200E_206F_200F_200B_206F_200B_200B_200B_200B_206C_206E_206A_202D_206C_202D_200C_202B_202B_200B_200F_206A_202B_200D_206B_206A_202E_206E_202A_202A_202C_206A_202C_206D_206A_202A_202A_206F_202D_206E_206F_202E(viewMatrix.M13, viewMatrix.M33); - } - case 0: - num = 129017005; - break; - case 3: - renderCamera = activeCamera->SceneCamera.RenderCamera; - num = ((renderCamera != null) ? 129017000 : 129017001); - break; - } + return null; } + FFXIVClientStructs.FFXIV.Client.Game.Camera* activeCamera = ptr->GetActiveCamera(); + if (activeCamera == null) + { + return null; + } + FFXIVClientStructs.FFXIV.Client.Graphics.Render.Camera* renderCamera = activeCamera->SceneCamera.RenderCamera; + if (renderCamera == null) + { + return null; + } + FFXIVClientStructs.FFXIV.Common.Math.Matrix4x4 viewMatrix = renderCamera->ViewMatrix; + return MathF.Atan2(viewMatrix.M13, viewMatrix.M33); } public void Reset() @@ -1056,299 +534,56 @@ public sealed class MovementOverrideHook : IDisposable private System.Numerics.Vector3? ComputeDesiredWorldDirection(System.Numerics.Vector3 playerPosition) { - System.Numerics.Vector3? vector = _desiredDirection; - int num = ((!vector.HasValue) ? (-84514510) : (-84514509)); - System.Numerics.Vector3 valueOrDefault = default(System.Numerics.Vector3); - float num9 = default(float); - float num7 = default(float); - float num8 = default(float); - float num6 = default(float); - while (true) + System.Numerics.Vector3? desiredDirection = _desiredDirection; + if (desiredDirection.HasValue) { - int num2 = num; - int num3 = -84514510; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + System.Numerics.Vector3 valueOrDefault = desiredDirection.GetValueOrDefault(); + float num = valueOrDefault.X * valueOrDefault.X + valueOrDefault.Z * valueOrDefault.Z; + if (num < 1E-08f) + { + return null; + } + float num2 = MathF.Sqrt(num); + return new System.Numerics.Vector3(valueOrDefault.X / num2, 0f, valueOrDefault.Z / num2); + } + desiredDirection = _desiredPosition; + if (desiredDirection.HasValue) + { + System.Numerics.Vector3 valueOrDefault2 = desiredDirection.GetValueOrDefault(); + float num3 = valueOrDefault2.X - playerPosition.X; + float num4 = valueOrDefault2.Z - playerPosition.Z; + float num5 = num3 * num3 + num4 * num4; + if (num5 < Precision * Precision) { - case 5: - num = -84514509; - break; - case 4: _desiredPosition = null; ResetStallTracking(); return null; - case 1: - valueOrDefault = vector.GetValueOrDefault(); - num9 = valueOrDefault.X * valueOrDefault.X + valueOrDefault.Z * valueOrDefault.Z; - num = ((!(num9 < 1E-08f)) ? (-84514507) : (-84514511)); - break; - case 6: - return null; - case 2: - { - System.Numerics.Vector3 valueOrDefault2 = vector.GetValueOrDefault(); - num7 = valueOrDefault2.X - playerPosition.X; - num8 = valueOrDefault2.Z - playerPosition.Z; - num6 = num7 * num7 + num8 * num8; - num = ((!(num6 < Precision * Precision)) ? (-84514502) : (-84514506)); - break; - } - case 7: - { - float num10 = _202B_200B_200F_200C_202D_206C_206D_202B_202A_200B_200F_206B_200C_206D_200B_202D_206E_202C_206F_206C_202D_200D_200F_202A_202A_200D_200B_206B_206A_206C_202C_206C_200E_206C_206D_200B_206C_202D_202A_206D_202E(num9); - return new System.Numerics.Vector3(valueOrDefault.X / num10, 0f, valueOrDefault.Z / num10); - } - case 3: - return null; - case 0: - vector = _desiredPosition; - num = ((!vector.HasValue) ? (-84514508) : (-84514512)); - break; - case 8: - { - float num5 = _202B_200B_200F_200C_202D_206C_206D_202B_202A_200B_200F_206B_200C_206D_200B_202D_206E_202C_206F_206C_202D_200D_200F_202A_202A_200D_200B_206B_206A_206C_202C_206C_200E_206C_206D_200B_206C_202D_202A_206D_202E(num6); - return new System.Numerics.Vector3(num7 / num5, 0f, num8 / num5); - } } + float num6 = MathF.Sqrt(num5); + return new System.Numerics.Vector3(num3 / num6, 0f, num4 / num6); } + return null; } private static (float left, float forward) WorldToPlayerRelative(System.Numerics.Vector3 worldDir, float referenceRotation) { - float num = _206D_202C_200F_202D_200D_200C_206D_202D_206E_206F_206D_206F_200E_200D_200D_200B_200C_202C_202D_200C_202D_200E_200E_200B_206F_200E_202C_202E_206D_200E_200C_200D_206A_202C_200D_206B_206E_200D_200F_206F_202E(referenceRotation); - float num2 = _206B_202D_206C_200D_206A_206A_202E_206B_200D_206C_202E_206A_202A_206C_200B_206C_202C_200B_206D_200B_206C_202B_202D_200C_200F_200D_202D_202C_206C_202C_206E_202A_200D_206B_206F_200F_202B_200D_202A_206D_202E(referenceRotation); + float num = MathF.Sin(referenceRotation); + float num2 = MathF.Cos(referenceRotation); float item = worldDir.X * num + worldDir.Z * num2; return (left: worldDir.X * num2 - worldDir.Z * num, forward: item); } public void Dispose() { - _202C_200C_202E_206D_206F_202C_206C_202D_206E_206C_200B_206D_206F_202E_202B_202D_206A_206E_200D_200E_202A_200F_202B_202C_202E_202A_202B_206D_200E_206F_206D_200F_200C_202B_206C_200C_206C_206A_206B_200E_202E(_gameConfig, (EventHandler<ConfigChangeEvent>)OnGameConfigChanged); - Hook<MoveControlIsInputActiveDelegate>? mcIsInputActiveHook = _mcIsInputActiveHook; - if (mcIsInputActiveHook == null) - { - goto IL_00e8; - } - mcIsInputActiveHook.Disable(); - int num = -1239037411; - goto IL_0039; - IL_0112: - _rmiFlyHook = null; - Hook<RMIWalkDelegate>? rmiWalkHook = _rmiWalkHook; - if (rmiWalkHook == null) - { - goto IL_00c6; - } - rmiWalkHook.Disable(); - num = -1239037416; - goto IL_0039; - IL_00e8: - Hook<MoveControlIsInputActiveDelegate>? mcIsInputActiveHook2 = _mcIsInputActiveHook; - if (mcIsInputActiveHook2 == null) - { - goto IL_007b; - } - mcIsInputActiveHook2.Dispose(); - num = -1239037412; - goto IL_0039; - IL_0039: - while (true) - { - int num2 = num; - int num3 = -1239037410; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1239037411; - break; - case 2: - goto end_IL_0039; - case 5: - goto IL_00a4; - case 6: - goto IL_00c6; - case 3: - goto IL_00e8; - case 1: - goto IL_010a; - case 4: - goto IL_0112; - } - continue; - end_IL_0039: - break; - } - goto IL_007b; - IL_007b: + _gameConfig.UiControlChanged -= OnGameConfigChanged; + _mcIsInputActiveHook?.Disable(); + _mcIsInputActiveHook?.Dispose(); _mcIsInputActiveHook = null; - Hook<RMIFlyDelegate>? rmiFlyHook = _rmiFlyHook; - if (rmiFlyHook == null) - { - goto IL_00a4; - } - rmiFlyHook.Disable(); - num = -1239037413; - goto IL_0039; - IL_00c6: - Hook<RMIWalkDelegate>? rmiWalkHook2 = _rmiWalkHook; - if (rmiWalkHook2 == null) - { - goto IL_010a; - } - rmiWalkHook2.Dispose(); - num = -1239037409; - goto IL_0039; - IL_00a4: - Hook<RMIFlyDelegate>? rmiFlyHook2 = _rmiFlyHook; - if (rmiFlyHook2 == null) - { - goto IL_0112; - } - rmiFlyHook2.Dispose(); - num = -1239037414; - goto IL_0039; - IL_010a: + _rmiFlyHook?.Disable(); + _rmiFlyHook?.Dispose(); + _rmiFlyHook = null; + _rmiWalkHook?.Disable(); + _rmiWalkHook?.Dispose(); _rmiWalkHook = null; } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static MovementOverrideHook() - { - uint[] array = new uint[4]; - _202D_200F_206F_200F_200C_200E_200C_200D_200B_202A_206C_200E_202C_202C_200B_206A_206F_202D_206D_202E_202D_202B_206E_206F_200D_206F_206F_206B_200D_206E_202C_200C_206A_206D_200D_206E_200F_206B_202E_202D_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - MisdirectionStatusIds = array; - } - - static long _202C_200F_206E_202D_202A_202D_202E_206A_202D_202B_206E_200F_200D_200E_202A_202A_200E_206D_206D_202B_200C_206E_200E_202B_202A_200E_202B_200E_202E_206C_202C_206F_202D_202C_200B_202C_206B_202B_200D_206F_202E() - { - return Environment.TickCount64; - } - - static void _202B_206B_206B_202B_202A_206A_200E_200F_206C_206E_206F_200C_200F_202C_206B_206B_202B_206A_202C_206A_206E_206E_206B_206E_206D_200D_200D_206C_206B_202E_206F_206A_200C_202A_200E_206E_200E_202B_206A_202C_202E(IGameConfig P_0, EventHandler<ConfigChangeEvent> P_1) - { - P_0.UiControlChanged += P_1; - } - - static void _200C_200F_202B_200E_202B_200C_206E_200D_202A_202D_206A_202D_200D_200F_206C_200E_202C_202C_206D_206D_206D_200E_202E_200C_200C_206B_200D_200C_206D_206E_200D_202B_206D_206D_202A_202B_202A_206E_200C_200D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static nint _202E_206A_202B_200D_202E_206C_200D_206D_200C_200B_202C_206B_202B_200D_206C_206A_206E_202A_202D_200E_200B_200F_200E_206C_200E_200C_200D_206E_202E_202D_202B_200F_206E_200D_202E_202B_202E_206B_202C_200F_202E(ISigScanner P_0, string P_1) - { - return P_0.ScanText(P_1); - } - - static void _206C_206C_202A_200B_206C_200C_200E_202B_200C_202B_202D_200B_200D_200D_202A_200B_206D_202E_200B_206B_206D_200D_202D_200B_206C_202C_206A_202C_206E_202D_200B_206C_206F_206F_202B_200E_206F_202A_200C_206A_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogWarning(P_1, P_2, P_3); - } - - static nint _206F_202A_206B_202A_200C_202D_206F_202E_206C_206D_202A_206B_200C_200E_202D_200D_202C_200C_206A_206D_206A_206A_200C_202C_202B_200E_206E_202B_200B_206A_200D_200D_206C_206A_206C_200B_200C_206E_202D_206B_202E(ISigScanner P_0, string P_1, int P_2) - { - return P_0.GetStaticAddressFromSig(P_1, P_2); - } - - static string _200B_200E_202A_200F_206F_200D_206F_206C_202C_206E_206E_206C_202C_202C_200B_202B_206F_200B_202D_206C_200D_206F_206A_206A_202B_202A_200F_206E_200D_200D_202B_202A_202E_202E_206B_200D_200E_202D_206E_202B_202E(Exception P_0) - { - return P_0.Message; - } - - static bool _206C_202D_206F_202C_206C_200D_200E_202B_206B_206C_200E_206F_206F_206B_206B_200B_202C_206F_202E_200C_206A_200C_200E_202D_200D_206B_206C_206E_200D_206C_206B_206B_200C_200F_200D_202C_206B_200E_206C_200D_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); - } - - static IPlayerCharacter _200B_206D_206B_202B_206D_200D_200B_200C_206D_200C_206B_206F_202B_206A_200D_202C_202A_200D_202C_200C_200E_206F_200E_202C_202B_206A_202E_200C_202E_202C_206D_202A_206E_202A_202D_202A_202A_200F_200D_200D_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static System.Numerics.Vector3 _202E_202C_206C_206F_200D_200F_206A_206F_202A_200B_206F_200D_206E_202B_200C_202A_202B_202B_200B_200E_200D_202E_206C_206B_202D_200C_200B_200B_206C_200D_200B_206F_200B_206B_202B_206A_206C_200C_202B_200E_202E(IGameObject P_0) - { - return P_0.Position; - } - - static float _206F_206B_206B_202D_200E_202B_206C_202A_202D_206A_202D_206D_206B_200B_206E_206D_200B_202B_206D_206F_200F_200E_200C_202E_206E_200B_206B_200C_206D_206E_200C_202D_206C_200D_202B_200F_200B_200F_200E_206C_202E(IGameObject P_0) - { - return P_0.Rotation; - } - - static float _202B_200B_200F_200C_202D_206C_206D_202B_202A_200B_200F_206B_200C_206D_200B_202D_206E_202C_206F_206C_202D_200D_200F_202A_202A_200D_200B_206B_206A_206C_202C_206C_200E_206C_206D_200B_206C_202D_202A_206D_202E(float P_0) - { - return MathF.Sqrt(P_0); - } - - static void _206E_200C_206E_206B_202C_202D_200E_200F_206D_202E_202A_202A_206B_202A_200E_200D_200E_202E_202D_200C_206A_200E_206A_200D_200E_202A_200F_200F_206A_206A_206E_206B_206C_202B_202B_206D_206E_200F_206B_206C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static float _200E_206F_200F_200B_206F_200B_200B_200B_200B_206C_206E_206A_202D_206C_202D_200C_202B_202B_200B_200F_206A_202B_200D_206B_206A_202E_206E_202A_202A_202C_206A_202C_206D_206A_202A_202A_206F_202D_206E_206F_202E(float P_0, float P_1) - { - return MathF.Atan2(P_0, P_1); - } - - static float _206B_202D_206C_200D_206A_206A_202E_206B_200D_206C_202E_206A_202A_206C_200B_206C_202C_200B_206D_200B_206C_202B_202D_200C_200F_200D_202D_202C_206C_202C_206E_202A_200D_206B_206F_200F_202B_200D_202A_206D_202E(float P_0) - { - return MathF.Cos(P_0); - } - - static float _206D_202C_200F_202D_200D_200C_206D_202D_206E_206F_206D_206F_200E_200D_200D_200B_200C_202C_202D_200C_202D_200E_200E_200B_206F_200E_202C_202E_206D_200E_200C_200D_206A_202C_200D_206B_206E_200D_200F_206F_202E(float P_0) - { - return MathF.Sin(P_0); - } - - static StatusList _202E_206C_206D_202E_206C_206C_200D_206B_206A_206F_200B_202D_206C_200F_200C_200B_206C_206A_206A_202C_206B_202C_206A_206F_200B_200E_202E_206B_202D_202D_206F_202E_200B_206C_206A_206D_206F_202B_206B_200E_202E(IBattleChara P_0) - { - return P_0.StatusList; - } - - static IStatus _200C_202B_200D_206B_202C_202E_200B_200F_200F_202B_200C_200B_206A_202D_200E_202E_200F_206A_202E_200F_206C_202D_206A_206B_206B_206A_202C_200B_202C_202B_206E_202D_202E_200E_200D_200B_200C_200C_200B_202D_202E(StatusList P_0, int P_1) - { - return P_0[P_1]; - } - - static uint _200F_200B_206A_200E_206A_200E_206F_206B_206B_202B_202A_206E_206C_202B_200F_200E_202B_202A_202E_200F_206D_206E_200F_200F_202B_202D_202A_206A_200B_206F_200B_200D_206D_200C_200F_206A_200E_200F_200F_202D_202E(IStatus P_0) - { - return P_0.StatusId; - } - - static int _200F_202E_200C_200D_200F_202C_206F_206B_200D_200D_200D_202A_206C_202D_202A_200C_200D_206C_200D_202D_202C_206F_206C_200C_206B_200E_206B_202B_200B_200B_206C_202D_202B_202B_206D_206F_206F_206C_206A_202B_202E(StatusList P_0) - { - return P_0.Length; - } - - static float _206E_206E_200B_200C_202D_206C_200D_200E_200D_200B_206C_206E_200F_206E_206A_202C_200C_202D_206A_200D_202C_206E_206D_200F_202A_206A_200B_200C_200D_202A_202D_202B_206A_202D_206D_202C_206F_200F_206D_202A_202E(float P_0) - { - return MathF.Abs(P_0); - } - - static GameConfigSection _206D_200E_206E_202E_206B_200D_206A_206E_206E_200C_202B_202A_200F_206B_202A_202E_202C_202A_206E_202E_200C_206C_202D_206F_202C_200C_200F_206B_206B_200C_200B_202D_202D_200B_202D_206C_202A_200D_200B_202E_202E(IGameConfig P_0) - { - return P_0.UiControl; - } - - static bool _202B_206F_202D_206E_202A_206C_206A_200B_202D_200B_206D_206C_206E_206C_202E_206A_202D_200F_202A_200B_206A_200B_202E_202D_206F_202C_206F_202E_206F_206D_206A_206A_206B_202E_202E_202E_202A_206D_202B_206A_202E(GameConfigSection P_0, string P_1, ref uint P_2) - { - return P_0.TryGetUInt(P_1, out P_2); - } - - static void _202C_200C_202E_206D_206F_202C_206C_202D_206E_206C_200B_206D_206F_202E_202B_202D_206A_206E_200D_200E_202A_200F_202B_202C_202E_202A_202B_206D_200E_206F_206D_200F_200C_202B_206C_200C_206C_206A_206B_200E_202E(IGameConfig P_0, EventHandler<ConfigChangeEvent> P_1) - { - P_0.UiControlChanged -= P_1; - } - - static void _202D_200F_206F_200F_200C_200E_200C_200D_200B_202A_206C_200E_202C_202C_200B_206A_206F_202D_206D_202E_202D_202B_206E_206F_200D_206F_206F_206B_200D_206E_202C_200C_206A_206D_200D_206E_200F_206B_202E_202D_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); - } } diff --git a/LLib/LLib.Notifications/OutOfGameNotifier.cs b/LLib/LLib.Notifications/OutOfGameNotifier.cs index 2bc8dd7..a1dcab2 100644 --- a/LLib/LLib.Notifications/OutOfGameNotifier.cs +++ b/LLib/LLib.Notifications/OutOfGameNotifier.cs @@ -1,6 +1,5 @@ using System; using System.IO; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using FFXIVClientStructs.FFXIV.Client.Graphics.Kernel; using LLib.ImGui; @@ -134,27 +133,11 @@ public sealed class OutOfGameNotifier : IDisposable get { Device* ptr = Device.Instance(); - int num = ((ptr != null) ? 539179088 : 539179091); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 539179090; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 2: - return (nint)ptr->hWnd; - case 1: - return 0; - } - continue; - IL_004b: - num = 539179091; + return 0; } + return (nint)ptr->hWnd; } } @@ -163,27 +146,11 @@ public sealed class OutOfGameNotifier : IDisposable get { nint gameWindowHandle = GameWindowHandle; - int num = ((gameWindowHandle == 0) ? 1427669893 : 1427669894); - while (true) + if (gameWindowHandle != 0) { - int num2 = num; - int num3 = 1427669892; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0049; - case 1: - return false; - case 2: - return NativeMethods.GetForegroundWindow() == gameWindowHandle; - } - continue; - IL_0049: - num = 1427669894; + return NativeMethods.GetForegroundWindow() == gameWindowHandle; } + return false; } } @@ -197,231 +164,118 @@ public sealed class OutOfGameNotifier : IDisposable WindowFlash.Flash(GameWindowHandle, 0u); } - [MethodImpl(MethodImplOptions.NoInlining)] public void PlayAlertSound(string? wavPath) { - int num = (_202E_202E_200E_206D_200E_202B_206E_206C_202D_202D_202D_200B_206D_200C_200E_206B_206B_202D_202B_206A_202B_206A_200D_206B_206E_202B_200B_202C_206D_206F_200B_206C_200D_206D_206B_206E_200B_200C_200D_200D_202E(wavPath) ? 199681171 : 199681169); - while (true) + if (!string.IsNullOrEmpty(wavPath) && File.Exists(wavPath)) { - int num2 = num; - int num3 = 199681171; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (NativeMethods.PlaySound(wavPath, 0, 131075u)) { - case 5: - num = 199681169; - break; - case 3: - num = ((!NativeMethods.PlaySound(wavPath, 0, 131075u)) ? 199681170 : 199681175); - break; - case 1: - _200E_200D_202A_200C_206A_206E_200D_202D_206C_202E_202D_202C_202E_200D_200E_206D_206D_200D_200E_206F_206F_200E_202B_202B_200C_200B_200B_200B_206E_200E_206B_206F_200B_206C_200B_202C_206B_200C_200B_206F_202E((ILogger)_logger, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-928191835), new object[1] { wavPath }); - num = 199681171; - break; - case 2: - num = ((!_200C_200B_202C_206C_206B_202D_206B_202C_202D_206C_202D_200C_206A_200F_206F_206B_202D_200F_206B_202E_206F_202B_206D_200C_202B_206D_202C_200D_200F_202E_202E_200E_206E_200F_200C_206D_200F_202A_200B_200E_202E(wavPath)) ? 199681171 : 199681168); - break; - case 0: - num = (NativeMethods.MessageBeep(64u) ? 199681172 : 199681173); - break; - case 7: - return; - case 6: - _200E_200D_202A_200C_206A_206E_200D_202D_206C_202E_202D_202C_202E_200D_200E_206D_206D_200D_200E_206F_206F_200E_202B_202B_200C_200B_200B_200B_206E_200E_206B_206F_200B_206C_200B_202C_206B_200C_200B_206F_202E((ILogger)_logger, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1376931042), Array.Empty<object>()); - num = 199681172; - break; - case 4: return; } + _logger.LogTrace("PlaySound failed for {Path}, falling back to beep", wavPath); + } + if (!NativeMethods.MessageBeep(64u)) + { + _logger.LogTrace("MessageBeep returned false"); } } - [MethodImpl(MethodImplOptions.NoInlining)] public void ShowTrayNotification(string title, string message) { nint gameWindowHandle = GameWindowHandle; - int num = ((gameWindowHandle != 0) ? (-102834731) : (-102834730)); - nint num8 = default(nint); - while (true) + if (gameWindowHandle == 0) { - int num2 = num; - int num3 = -102834732; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _logger.LogWarning("Cannot show tray notification - game window handle not available"); + return; + } + try + { + if (!_trayIconRegistered) { - case 0: - goto IL_0050; - case 2: - _202C_202E_200B_206C_202C_206E_206E_202C_206B_206D_206F_206B_202C_202C_202A_206B_200B_206C_202B_202C_206F_206F_206F_202B_202C_200E_206B_200D_206B_200D_202C_202E_206D_206E_206D_206D_202D_206B_202E_206E_202E((ILogger)_logger, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-498044301), Array.Empty<object>()); - return; - case 1: - try + nint num = GetGameIcon(gameWindowHandle); + if (num == 0) { - num = (_trayIconRegistered ? (-1863308179) : (-1863308178)); - while (true) - { - int num5 = num; - num3 = -1863308179; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 4: - { - NOTIFYICONDATA lpData3 = new NOTIFYICONDATA - { - cbSize = (uint)Marshal.SizeOf<NOTIFYICONDATA>(), - hWnd = gameWindowHandle, - uID = 176u, - uTimeoutOrVersion = 4u - }; - NativeMethods.Shell_NotifyIcon(4u, ref lpData3); - _trayHWnd = gameWindowHandle; - _trayIconRegistered = true; - num = -1863308179; - break; - } - case 3: - num8 = GetGameIcon(gameWindowHandle); - num = ((num8 != 0) ? (-1863308184) : (-1863308180)); - break; - case 8: - _202C_202E_200B_206C_202C_206E_206E_202C_206B_206D_206F_206B_202C_202C_202A_206B_200B_206C_202B_202C_206F_206F_206F_202B_202C_200E_206B_200D_206B_200D_202C_202E_206D_206E_206D_206D_202D_206B_202E_206E_202E((ILogger)_logger, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-218723301), Array.Empty<object>()); - num = -1863308177; - break; - case 7: - _202C_202E_200B_206C_202C_206E_206E_202C_206B_206D_206F_206B_202C_202C_202A_206B_200B_206C_202B_202C_206F_206F_206F_202B_202C_200E_206B_200D_206B_200D_202C_202E_206D_206E_206D_206D_202D_206B_202E_206E_202E((ILogger)_logger, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(621311524), Array.Empty<object>()); - return; - case 6: - num = -1863308178; - break; - case 1: - num8 = NativeMethods.LoadIcon(0, 32512); - num = -1863308184; - break; - case 0: - { - NOTIFYICONDATA lpData2 = new NOTIFYICONDATA - { - cbSize = (uint)Marshal.SizeOf<NOTIFYICONDATA>(), - hWnd = _trayHWnd, - uID = 176u, - uFlags = 16u, - szInfoTitle = Truncate(title, 63), - szInfo = Truncate(message, 255), - dwInfoFlags = 1u - }; - num = (NativeMethods.Shell_NotifyIcon(1u, ref lpData2) ? (-1863308177) : (-1863308187)); - break; - } - case 5: - { - NOTIFYICONDATA lpData = new NOTIFYICONDATA - { - cbSize = (uint)Marshal.SizeOf<NOTIFYICONDATA>(), - hWnd = gameWindowHandle, - uID = 176u, - uFlags = 6u, - hIcon = num8, - szTip = Truncate(title, 127) - }; - num = (NativeMethods.Shell_NotifyIcon(0u, ref lpData) ? (-1863308183) : (-1863308182)); - break; - } - case 2: - return; - } - } + num = NativeMethods.LoadIcon(0, 32512); } - catch (Exception ex) + NOTIFYICONDATA lpData = new NOTIFYICONDATA { - _206E_206A_206C_200C_200F_206C_202C_206E_206D_202C_200B_202B_202D_206C_202E_206C_200C_200E_206E_200E_202C_206F_202C_200B_202D_200F_200C_200F_202E_200F_200C_200D_206E_202B_200D_202B_202A_202B_200E_202E_202E((ILogger)_logger, ex, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1309216025), Array.Empty<object>()); + cbSize = (uint)Marshal.SizeOf<NOTIFYICONDATA>(), + hWnd = gameWindowHandle, + uID = 176u, + uFlags = 6u, + hIcon = num, + szTip = Truncate(title, 127) + }; + if (!NativeMethods.Shell_NotifyIcon(0u, ref lpData)) + { + _logger.LogWarning("Shell_NotifyIcon(NIM_ADD) failed"); return; } + NOTIFYICONDATA lpData2 = new NOTIFYICONDATA + { + cbSize = (uint)Marshal.SizeOf<NOTIFYICONDATA>(), + hWnd = gameWindowHandle, + uID = 176u, + uTimeoutOrVersion = 4u + }; + NativeMethods.Shell_NotifyIcon(4u, ref lpData2); + _trayHWnd = gameWindowHandle; + _trayIconRegistered = true; } - continue; - IL_0050: - num = -102834730; + NOTIFYICONDATA lpData3 = new NOTIFYICONDATA + { + cbSize = (uint)Marshal.SizeOf<NOTIFYICONDATA>(), + hWnd = _trayHWnd, + uID = 176u, + uFlags = 16u, + szInfoTitle = Truncate(title, 63), + szInfo = Truncate(message, 255), + dwInfoFlags = 1u + }; + if (!NativeMethods.Shell_NotifyIcon(1u, ref lpData3)) + { + _logger.LogWarning("Shell_NotifyIcon(NIM_MODIFY) failed"); + } + } + catch (Exception exception) + { + _logger.LogError(exception, "Failed to show tray notification"); } } private static nint GetGameIcon(nint hWnd) { nint num = NativeMethods.SendMessage(hWnd, 127u, 1, 0); - int num2 = ((num != 0) ? 1006480639 : 1006480632); - while (true) + if (num == 0) { - int num3 = num2; - int num4 = 1006480638; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 4: - num2 = 1006480632; - break; - case 5: - num = NativeMethods.GetClassLongPtr(hWnd, -14); - num2 = 1006480637; - break; - case 1: - num2 = ((num != 0) ? 1006480637 : 1006480635); - break; - case 2: - return num; - case 0: - num = NativeMethods.GetClassLongPtr(hWnd, -34); - num2 = 1006480636; - break; - case 3: - num2 = ((num != 0) ? 1006480636 : 1006480638); - break; - case 6: - num = NativeMethods.SendMessage(hWnd, 127u, 0, 0); - num2 = 1006480639; - break; - } + num = NativeMethods.SendMessage(hWnd, 127u, 0, 0); } + if (num == 0) + { + num = NativeMethods.GetClassLongPtr(hWnd, -14); + } + if (num == 0) + { + num = NativeMethods.GetClassLongPtr(hWnd, -34); + } + return num; } private static string Truncate(string value, int maxChars) { - int num = ((_202C_206C_206F_202B_202E_206A_202C_206B_200F_200E_200F_200C_202E_202E_206C_206D_200C_200D_206A_202D_206B_200B_206E_206F_206F_200E_206B_202C_202A_202D_206C_206B_200D_200D_200E_200B_202A_202C_200D_206D_202E(value) <= maxChars) ? (-362575814) : (-362575815)); - while (true) + if (value.Length > maxChars) { - int num2 = num; - int num3 = -362575813; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0047; - case 2: - return _200D_200D_200D_206C_200B_206C_200B_206A_206B_202D_202B_202E_200D_206E_206D_202A_200C_206C_200C_202C_206D_200B_200C_202B_202B_200F_202B_202A_200E_202E_200C_200B_206B_206A_202A_200C_200C_206D_206B_206A_202E(value, 0, maxChars); - case 1: - return value; - } - continue; - IL_0047: - num = -362575815; + return value.Substring(0, maxChars); } + return value; } public void Dispose() { - int num = ((!_disposed) ? 413573275 : 413573272); - while (true) + if (!_disposed) { - int num2 = num; - int num3 = 413573273; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return; - case 1: - return; - case 4: + _disposed = true; + if (_trayIconRegistered) { NOTIFYICONDATA lpData = new NOTIFYICONDATA { @@ -431,57 +285,7 @@ public sealed class OutOfGameNotifier : IDisposable }; NativeMethods.Shell_NotifyIcon(2u, ref lpData); _trayIconRegistered = false; - return; - } - case 2: - _disposed = true; - num = (_trayIconRegistered ? 413573277 : 413573273); - break; - case 3: - num = 413573272; - break; } } } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static bool _202E_202E_200E_206D_200E_202B_206E_206C_202D_202D_202D_200B_206D_200C_200E_206B_206B_202D_202B_206A_202B_206A_200D_206B_206E_202B_200B_202C_206D_206F_200B_206C_200D_206D_206B_206E_200B_200C_200D_200D_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static bool _200C_200B_202C_206C_206B_202D_206B_202C_202D_206C_202D_200C_206A_200F_206F_206B_202D_200F_206B_202E_206F_202B_206D_200C_202B_206D_202C_200D_200F_202E_202E_200E_206E_200F_200C_206D_200F_202A_200B_200E_202E(string P_0) - { - return File.Exists(P_0); - } - - static void _200E_200D_202A_200C_206A_206E_200D_202D_206C_202E_202D_202C_202E_200D_200E_206D_206D_200D_200E_206F_206F_200E_202B_202B_200C_200B_200B_200B_206E_200E_206B_206F_200B_206C_200B_202C_206B_200C_200B_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogTrace(P_1, P_2); - } - - static void _202C_202E_200B_206C_202C_206E_206E_202C_206B_206D_206F_206B_202C_202C_202A_206B_200B_206C_202B_202C_206F_206F_206F_202B_202C_200E_206B_200D_206B_200D_202C_202E_206D_206E_206D_206D_202D_206B_202E_206E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static void _206E_206A_206C_200C_200F_206C_202C_206E_206D_202C_200B_202B_202D_206C_202E_206C_200C_200E_206E_200E_202C_206F_202C_200B_202D_200F_200C_200F_202E_200F_200C_200D_206E_202B_200D_202B_202A_202B_200E_202E_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - - static int _202C_206C_206F_202B_202E_206A_202C_206B_200F_200E_200F_200C_202E_202E_206C_206D_200C_200D_206A_202D_206B_200B_206E_206F_206F_200E_206B_202C_202A_202D_206C_206B_200D_200D_200E_200B_202A_202C_200D_206D_202E(string P_0) - { - return P_0.Length; - } - - static string _200D_200D_200D_206C_200B_206C_200B_206A_206B_202D_202B_202E_200D_206E_206D_202A_200C_206C_200C_202C_206D_200B_200C_202B_202B_200F_202B_202A_200E_202E_200C_200B_206B_206A_202A_200C_200C_206D_206B_206A_202E(string P_0, int P_1, int P_2) - { - return P_0.Substring(P_1, P_2); - } } diff --git a/LLib/LLib.Notifications/WindowsSounds.cs b/LLib/LLib.Notifications/WindowsSounds.cs index 5fb36fb..a041454 100644 --- a/LLib/LLib.Notifications/WindowsSounds.cs +++ b/LLib/LLib.Notifications/WindowsSounds.cs @@ -2,48 +2,24 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; -using System.Runtime.CompilerServices; namespace LLib.Notifications; public static class WindowsSounds { - public static string MediaDirectory - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return _200F_200F_200E_200D_206C_200B_206F_206F_202E_200B_206D_202C_202E_200B_200C_200F_202C_200F_206B_200D_202E_200C_200E_206C_206C_200C_202D_202B_200F_206D_206F_200F_206B_202A_200E_202B_200F_206F_206C_206E_202E(_206A_202A_202B_200B_200D_200F_206C_202A_206B_202E_202A_206D_202C_202D_200D_202E_202D_206E_206A_200B_206C_200D_206A_200D_202E_206E_206F_200F_200E_200D_202C_200D_200B_200B_202D_206F_200E_206C_200E_206F_202E(Environment.SpecialFolder.Windows), global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1437924549)); - } - } + public static string MediaDirectory => Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "Media"); - [MethodImpl(MethodImplOptions.NoInlining)] public static IReadOnlyList<string> ListWavFileNames() { try { - int num = (_200B_206D_200F_202A_200F_206D_200F_206C_202A_200B_200F_200D_200F_206A_206A_206C_202D_206F_200E_202D_202C_200B_200F_202B_202D_206D_206C_200D_200D_206D_206D_200B_206A_202A_200E_202A_200E_202D_206F_200E_202E(MediaDirectory) ? 1352349132 : 1352349133); - while (true) + if (!Directory.Exists(MediaDirectory)) { - int num2 = num; - int num3 = 1352349132; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_004c; - case 1: - return Array.Empty<string>(); - case 0: - return _200E_202C_200D_200C_206E_202E_206D_200F_200B_202D_206B_202D_206B_206B_206D_206E_202B_206E_200E_202D_206E_206E_206B_202D_200C_206E_202E_202D_202E_202B_200E_206E_202B_200B_202D_206E_206B_200F_206A_202A_202E(MediaDirectory, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-258286566)).Select(Path.GetFileName).OfType<string>().OrderBy<string, string>((string x) => x, _206E_200D_202B_206E_200B_206F_206E_202C_206E_200F_202D_206D_202E_202C_206A_206B_202C_206B_206F_206E_200F_206A_206A_206F_200C_206F_200D_200F_202E_200C_206E_202E_200E_206A_202D_200D_202C_200D_206D_202C_202E()) - .ToArray(); - } - continue; - IL_004c: - num = 1352349133; + return Array.Empty<string>(); } + return Directory.EnumerateFiles(MediaDirectory, "*.wav").Select(Path.GetFileName).OfType<string>() + .OrderBy<string, string>((string x) => x, StringComparer.OrdinalIgnoreCase) + .ToArray(); } catch (Exception) { @@ -53,66 +29,15 @@ public static class WindowsSounds public static string? ResolvePath(string? fileName) { - int num = ((!_200C_202D_206A_200D_206E_202A_202B_202C_202A_206A_202D_206E_202B_202E_202B_200F_206C_206B_200D_206D_200E_202A_200F_202A_200F_206D_200E_200E_206B_206D_200D_200D_200C_202E_206B_206D_206E_206A_202A_200D_202E(fileName)) ? 301346880 : 301346882); - string text = default(string); - while (true) + if (string.IsNullOrEmpty(fileName)) { - int num2 = num; - int num3 = 301346883; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = 301346882; - break; - case 1: - return null; - case 2: - return null; - case 0: - return text; - case 3: - text = _200F_200F_200E_200D_206C_200B_206F_206F_202E_200B_206D_202C_202E_200B_200C_200F_202C_200F_206B_200D_202E_200C_200E_206C_206C_200C_202D_202B_200F_206D_206F_200F_206B_202A_200E_202B_200F_206F_206C_206E_202E(MediaDirectory, fileName); - num = (_206C_200F_206E_206F_200D_202E_206B_206A_206C_206D_200C_202D_200E_200D_206E_202D_202C_206F_200D_200E_202E_200C_206E_206C_202A_202B_206E_206E_200E_200B_200B_206D_206A_206B_206F_200D_200B_200B_200F_206A_202E(text) ? 301346883 : 301346881); - break; - } + return null; } - } - - static string _206A_202A_202B_200B_200D_200F_206C_202A_206B_202E_202A_206D_202C_202D_200D_202E_202D_206E_206A_200B_206C_200D_206A_200D_202E_206E_206F_200F_200E_200D_202C_200D_200B_200B_202D_206F_200E_206C_200E_206F_202E(Environment.SpecialFolder P_0) - { - return Environment.GetFolderPath(P_0); - } - - static string _200F_200F_200E_200D_206C_200B_206F_206F_202E_200B_206D_202C_202E_200B_200C_200F_202C_200F_206B_200D_202E_200C_200E_206C_206C_200C_202D_202B_200F_206D_206F_200F_206B_202A_200E_202B_200F_206F_206C_206E_202E(string P_0, string P_1) - { - return Path.Combine(P_0, P_1); - } - - static bool _200B_206D_200F_202A_200F_206D_200F_206C_202A_200B_200F_200D_200F_206A_206A_206C_202D_206F_200E_202D_202C_200B_200F_202B_202D_206D_206C_200D_200D_206D_206D_200B_206A_202A_200E_202A_200E_202D_206F_200E_202E(string P_0) - { - return Directory.Exists(P_0); - } - - static IEnumerable<string> _200E_202C_200D_200C_206E_202E_206D_200F_200B_202D_206B_202D_206B_206B_206D_206E_202B_206E_200E_202D_206E_206E_206B_202D_200C_206E_202E_202D_202E_202B_200E_206E_202B_200B_202D_206E_206B_200F_206A_202A_202E(string P_0, string P_1) - { - return Directory.EnumerateFiles(P_0, P_1); - } - - static StringComparer _206E_200D_202B_206E_200B_206F_206E_202C_206E_200F_202D_206D_202E_202C_206A_206B_202C_206B_206F_206E_200F_206A_206A_206F_200C_206F_200D_200F_202E_200C_206E_202E_200E_206A_202D_200D_202C_200D_206D_202C_202E() - { - return StringComparer.OrdinalIgnoreCase; - } - - static bool _200C_202D_206A_200D_206E_202A_202B_202C_202A_206A_202D_206E_202B_202E_202B_200F_206C_206B_200D_206D_200E_202A_200F_202A_200F_206D_200E_200E_206B_206D_200D_200D_200C_202E_206B_206D_206E_206A_202A_200D_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static bool _206C_200F_206E_206F_200D_202E_206B_206A_206C_206D_200C_202D_200E_200D_206E_202D_202C_206F_200D_200E_202E_200C_206E_206C_202A_202B_206E_206E_200E_200B_200B_206D_206A_206B_206F_200D_200B_200B_200F_206A_202E(string P_0) - { - return File.Exists(P_0); + string text = Path.Combine(MediaDirectory, fileName); + if (!File.Exists(text)) + { + return null; + } + return text; } } diff --git a/LLib/LLib.Shop.Model/ItemForSale.cs b/LLib/LLib.Shop.Model/ItemForSale.cs index a865103..6a87e87 100644 --- a/LLib/LLib.Shop.Model/ItemForSale.cs +++ b/LLib/LLib.Shop.Model/ItemForSale.cs @@ -18,50 +18,19 @@ public sealed class ItemForSale : IEquatable<ItemForSale> public bool Equals(ItemForSale? other) { - int num = ((other != null) ? (-673406129) : (-673406143)); - while (true) + if (other == null) { - int num2 = num; - int num3 = -673406136; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 8: - num = ((Price != other.Price) ? (-673406130) : (-673406133)); - break; - case 9: - return false; - case 2: - return OwnedItems == other.OwnedItems; - case 0: - num = -673406143; - break; - case 6: - return false; - case 7: - num = ((this != other) ? (-673406135) : (-673406132)); - break; - case 3: - num = ((CurrencyItemId != other.CurrencyItemId) ? (-673406130) : (-673406134)); - break; - case 4: - return true; - case 5: - num = ((ItemId != other.ItemId) ? (-673406130) : (-673406144)); - break; - case 1: - num = ((Position != other.Position) ? (-673406130) : (-673406131)); - break; - } + return false; } - } - - bool IEquatable<ItemForSale>.Equals(ItemForSale? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); + if (this == other) + { + return true; + } + if (Position == other.Position && ItemId == other.ItemId && Price == other.Price && CurrencyItemId == other.CurrencyItemId) + { + return OwnedItems == other.OwnedItems; + } + return false; } public override bool Equals(object? obj) diff --git a/LLib/LLib.Shop.Model/PurchaseState.cs b/LLib/LLib.Shop.Model/PurchaseState.cs index aa057e5..2c43154 100644 --- a/LLib/LLib.Shop.Model/PurchaseState.cs +++ b/LLib/LLib.Shop.Model/PurchaseState.cs @@ -10,7 +10,7 @@ public sealed class PurchaseState public int InitialOwnedItems { get; } - public int ItemsLeftToBuy => _206E_206B_202A_202D_202E_206B_206B_206B_206A_206C_200D_200D_200B_202E_200B_200D_200B_202D_200C_206F_202E_202D_202C_206B_200E_206D_206E_202C_206D_206C_202C_200E_206C_200B_206B_202D_202E_200E_206E_200D_202E(0, DesiredItems - OwnedItems); + public int ItemsLeftToBuy => Math.Max(0, DesiredItems - OwnedItems); public bool IsComplete => ItemsLeftToBuy == 0; @@ -24,9 +24,4 @@ public sealed class PurchaseState OwnedItems = ownedItems; InitialOwnedItems = ownedItems; } - - static int _206E_206B_202A_202D_202E_206B_206B_206B_206A_206C_200D_200D_200B_202E_200B_200D_200B_202D_200C_206F_202E_202D_202C_206B_200E_206D_206E_202C_206D_206C_202C_200E_206C_200B_206B_202D_202E_200E_206E_200D_202E(int P_0, int P_1) - { - return Math.Max(P_0, P_1); - } } diff --git a/LLib/LLib.Shop.Model/ShopSearchResult.cs b/LLib/LLib.Shop.Model/ShopSearchResult.cs index 37044b6..634ab41 100644 --- a/LLib/LLib.Shop.Model/ShopSearchResult.cs +++ b/LLib/LLib.Shop.Model/ShopSearchResult.cs @@ -1,169 +1,5 @@ -using System; -using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; namespace LLib.Shop.Model; -public sealed record ShopSearchResult(uint ShopId, uint NpcId, ushort TerritoryId, Vector3 NpcPosition, EShopType ShopType, uint Price, uint CurrencyItemId, int DialogOptionIndex = 0) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200F_202B_206E_202C_206C_206B_202A_200F_206C_206C_206C_206C_200C_202C_200E_200E_206B_200C_206E_200F_200F_206C_206F_206F_206C_206C_206C_202B_200F_200C_206D_202D_206D_200C_200B_206B_200C_206F_200E_202A_202E(typeof(ShopSearchResult).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200D_206C_206E_206C_200F_200F_206F_200D_200F_202C_202A_202B_200C_200F_206A_206B_200E_206E_206F_200E_206F_202E_202C_202A_200F_206D_200F_200C_202A_202E_206E_202E_200D_200D_206D_202C_200F_202D_206A_202E_202E(); - _200C_206F_200F_202B_206B_202E_206B_206D_206B_206E_202E_200D_206E_202E_206E_200C_206D_202D_202A_202E_202A_202D_206A_206C_202B_202B_200D_202B_202D_206A_200B_202A_206C_206C_206F_206C_202A_206B_206A_202B_202E(stringBuilder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-172046224)); - _200C_206F_200F_202B_206B_202E_206B_206D_206B_206E_202E_200D_206E_202E_206E_200C_206D_202D_202A_202E_202A_202D_206A_206C_202B_202B_200D_202B_202D_206A_200B_202A_206C_206C_206F_206C_202A_206B_206A_202B_202E(stringBuilder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1148273145)); - int num = ((!PrintMembers(stringBuilder)) ? 861671392 : 861671393); - while (true) - { - int num2 = num; - int num3 = 861671392; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _202C_202B_206F_206B_206B_202A_200D_202D_206A_200B_200E_202E_206A_202A_200C_200F_202D_206F_202C_206B_206A_202A_206E_206C_206D_202C_202C_202B_206B_206F_202C_202C_206A_200C_200F_206D_200B_202A_202A_200D_202E(stringBuilder, '}'); - return _202A_200C_202E_202E_206D_206B_200D_206F_200C_206E_202D_200D_202A_206D_200E_202C_202A_200F_206E_202B_200E_202C_206A_202B_206B_206B_206D_206B_206D_206F_200E_200D_202C_202E_202C_200B_206C_200D_206D_206F_202E((object)stringBuilder); - case 1: - _202C_202B_206F_206B_206B_202A_200D_202D_206A_200B_200E_202E_206A_202A_200C_200F_202D_206F_202C_206B_206A_202A_206E_206C_206D_202C_202C_202B_206B_206F_202C_202C_206A_200C_200F_206D_200B_202A_202A_200D_202E(stringBuilder, ' '); - num = 861671392; - break; - case 2: - num = 861671393; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200F_206A_206D_202B_206C_206F_200C_202E_200D_206D_202E_206B_206F_200B_200B_200D_206B_206E_200E_202A_202E_202E_200B_206A_202C_206D_202C_206A_200F_200C_202A_206A_202C_202C_206D_206B_206A_200B_202B_200C_202E(); - _200C_206F_200F_202B_206B_202E_206B_206D_206B_206E_202E_200D_206E_202E_206E_200C_206D_202D_202A_202E_202A_202D_206A_206C_202B_202B_200D_202B_202D_206A_200B_202A_206C_206C_206F_206C_202A_206B_206A_202B_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1462184987)); - _200C_206F_200F_202B_206B_202E_206B_206D_206B_206E_202E_200D_206E_202E_206E_200C_206D_202D_202A_202E_202A_202D_206A_206C_202B_202B_200D_202B_202D_206A_200B_202A_206C_206C_206F_206C_202A_206B_206A_202B_202E(builder, ShopId.ToString()); - _200C_206F_200F_202B_206B_202E_206B_206D_206B_206E_202E_200D_206E_202E_206E_200C_206D_202D_202A_202E_202A_202D_206A_206C_202B_202B_200D_202B_202D_206A_200B_202A_206C_206C_206F_206C_202A_206B_206A_202B_202E(builder, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(402538369)); - _200C_206F_200F_202B_206B_202E_206B_206D_206B_206E_202E_200D_206E_202E_206E_200C_206D_202D_202A_202E_202A_202D_206A_206C_202B_202B_200D_202B_202D_206A_200B_202A_206C_206C_206F_206C_202A_206B_206A_202B_202E(builder, NpcId.ToString()); - _200C_206F_200F_202B_206B_202E_206B_206D_206B_206E_202E_200D_206E_202E_206E_200C_206D_202D_202A_202E_202A_202D_206A_206C_202B_202B_200D_202B_202D_206A_200B_202A_206C_206C_206F_206C_202A_206B_206A_202B_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1525167587)); - _200C_206F_200F_202B_206B_202E_206B_206D_206B_206E_202E_200D_206E_202E_206E_200C_206D_202D_202A_202E_202A_202D_206A_206C_202B_202B_200D_202B_202D_206A_200B_202A_206C_206C_206F_206C_202A_206B_206A_202B_202E(builder, TerritoryId.ToString()); - _200C_206F_200F_202B_206B_202E_206B_206D_206B_206E_202E_200D_206E_202E_206E_200C_206D_202D_202A_202E_202A_202D_206A_206C_202B_202B_200D_202B_202D_206A_200B_202A_206C_206C_206F_206C_202A_206B_206A_202B_202E(builder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(77058786)); - _200C_206F_200F_202B_206B_202E_206B_206D_206B_206E_202E_200D_206E_202E_206E_200C_206D_202D_202A_202E_202A_202D_206A_206C_202B_202B_200D_202B_202D_206A_200B_202A_206C_206C_206F_206C_202A_206B_206A_202B_202E(builder, NpcPosition.ToString()); - _200C_206F_200F_202B_206B_202E_206B_206D_206B_206E_202E_200D_206E_202E_206E_200C_206D_202D_202A_202E_202A_202D_206A_206C_202B_202B_200D_202B_202D_206A_200B_202A_206C_206C_206F_206C_202A_206B_206A_202B_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(47056198)); - _200C_206F_200F_202B_206B_202E_206B_206D_206B_206E_202E_200D_206E_202E_206E_200C_206D_202D_202A_202E_202A_202D_206A_206C_202B_202B_200D_202B_202D_206A_200B_202A_206C_206C_206F_206C_202A_206B_206A_202B_202E(builder, ShopType.ToString()); - _200C_206F_200F_202B_206B_202E_206B_206D_206B_206E_202E_200D_206E_202E_206E_200C_206D_202D_202A_202E_202A_202D_206A_206C_202B_202B_200D_202B_202D_206A_200B_202A_206C_206C_206F_206C_202A_206B_206A_202B_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(180433324)); - _200C_206F_200F_202B_206B_202E_206B_206D_206B_206E_202E_200D_206E_202E_206E_200C_206D_202D_202A_202E_202A_202D_206A_206C_202B_202B_200D_202B_202D_206A_200B_202A_206C_206C_206F_206C_202A_206B_206A_202B_202E(builder, Price.ToString()); - _200C_206F_200F_202B_206B_202E_206B_206D_206B_206E_202E_200D_206E_202E_206E_200C_206D_202D_202A_202E_202A_202D_206A_206C_202B_202B_200D_202B_202D_206A_200B_202A_206C_206C_206F_206C_202A_206B_206A_202B_202E(builder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(2138166188)); - _200C_206F_200F_202B_206B_202E_206B_206D_206B_206E_202E_200D_206E_202E_206E_200C_206D_202D_202A_202E_202A_202D_206A_206C_202B_202B_200D_202B_202D_206A_200B_202A_206C_206C_206F_206C_202A_206B_206A_202B_202E(builder, CurrencyItemId.ToString()); - _200C_206F_200F_202B_206B_202E_206B_206D_206B_206E_202E_200D_206E_202E_206E_200C_206D_202D_202A_202E_202A_202D_206A_206C_202B_202B_200D_202B_202D_206A_200B_202A_206C_206C_206F_206C_202A_206B_206A_202B_202E(builder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-846071550)); - _200C_206F_200F_202B_206B_202E_206B_206D_206B_206E_202E_200D_206E_202E_206E_200C_206D_202D_202A_202E_202A_202D_206A_206C_202B_202B_200D_202B_202D_206A_200B_202A_206C_206C_206F_206C_202A_206B_206A_202B_202E(builder, DialogOptionIndex.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(ShopSearchResult? other) - { - int num = (((object)this == other) ? (-1154151868) : (-1154151871)); - while (true) - { - int num2 = num; - int num3 = -1154151865; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1154151871; - break; - case 7: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? (-1154151867) : (-1154151866)); - break; - case 6: - num = (((object)other == null) ? (-1154151867) : (-1154151860)); - break; - case 9: - num = ((!EqualityComparer<uint>.Default.Equals(CurrencyItemId, other.CurrencyItemId)) ? (-1154151867) : (-1154151869)); - break; - case 10: - num = ((!EqualityComparer<uint>.Default.Equals(Price, other.Price)) ? (-1154151867) : (-1154151858)); - break; - case 12: - num = ((!EqualityComparer<uint>.Default.Equals(NpcId, other.NpcId)) ? (-1154151867) : (-1154151872)); - break; - case 8: - num = ((!EqualityComparer<EShopType>.Default.Equals(ShopType, other.ShopType)) ? (-1154151867) : (-1154151859)); - break; - case 3: - return true; - case 11: - num = ((!_200D_206D_202D_200B_200E_200B_202C_206C_200E_200F_206E_202B_202C_202D_206F_206E_206D_202D_202D_202A_202A_206A_206B_202C_206B_206B_200D_202D_202D_202D_202D_200D_200C_200D_206C_200B_206D_206B_206F_202B_202E(EqualityContract, other.EqualityContract)) ? (-1154151867) : (-1154151870)); - break; - case 1: - num = ((!EqualityComparer<Vector3>.Default.Equals(NpcPosition, other.NpcPosition)) ? (-1154151867) : (-1154151857)); - break; - case 5: - num = ((!EqualityComparer<uint>.Default.Equals(ShopId, other.ShopId)) ? (-1154151867) : (-1154151861)); - break; - case 2: - return false; - case 4: - return EqualityComparer<int>.Default.Equals(DialogOptionIndex, other.DialogOptionIndex); - } - } - } - - bool IEquatable<ShopSearchResult>.Equals(ShopSearchResult? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200F_202B_206E_202C_206C_206B_202A_200F_206C_206C_206C_206C_200C_202C_200E_200E_206B_200C_206E_200F_200F_206C_206F_206F_206C_206C_206C_202B_200F_200C_206D_202D_206D_200C_200B_206B_200C_206F_200E_202A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200D_206C_206E_206C_200F_200F_206F_200D_200F_202C_202A_202B_200C_200F_206A_206B_200E_206E_206F_200E_206F_202E_202C_202A_200F_206D_200F_200C_202A_202E_206E_202E_200D_200D_206D_202C_200F_202D_206A_202E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200C_206F_200F_202B_206B_202E_206B_206D_206B_206E_202E_200D_206E_202E_206E_200C_206D_202D_202A_202E_202A_202D_206A_206C_202B_202B_200D_202B_202D_206A_200B_202A_206C_206C_206F_206C_202A_206B_206A_202B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202C_202B_206F_206B_206B_202A_200D_202D_206A_200B_200E_202E_206A_202A_200C_200F_202D_206F_202C_206B_206A_202A_206E_206C_206D_202C_202C_202B_206B_206F_202C_202C_206A_200C_200F_206D_200B_202A_202A_200D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202A_200C_202E_202E_206D_206B_200D_206F_200C_206E_202D_200D_202A_206D_200E_202C_202A_200F_206E_202B_200E_202C_206A_202B_206B_206B_206D_206B_206D_206F_200E_200D_202C_202E_202C_200B_206C_200D_206D_206F_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200F_206A_206D_202B_206C_206F_200C_202E_200D_206D_202E_206B_206F_200B_200B_200D_206B_206E_200E_202A_202E_202E_200B_206A_202C_206D_202C_206A_200F_200C_202A_206A_202C_202C_206D_206B_206A_200B_202B_200C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _200D_206D_202D_200B_200E_200B_202C_206C_200E_200F_206E_202B_202C_202D_206F_206E_206D_202D_202D_202A_202A_206A_206B_202C_206B_206B_200D_202D_202D_202D_202D_200D_200C_200D_206C_200B_206D_206B_206F_202B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +public sealed record ShopSearchResult(uint ShopId, uint NpcId, ushort TerritoryId, Vector3 NpcPosition, EShopType ShopType, uint Price, uint CurrencyItemId, int DialogOptionIndex = 0); diff --git a/LLib/LLib.Shop.Searchers/GCShopSearcher.cs b/LLib/LLib.Shop.Searchers/GCShopSearcher.cs index 5d583a0..2bc5472 100644 --- a/LLib/LLib.Shop.Searchers/GCShopSearcher.cs +++ b/LLib/LLib.Shop.Searchers/GCShopSearcher.cs @@ -1,7 +1,5 @@ -using System; using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using LLib.Shop.Model; using Lumina.Excel; @@ -11,9 +9,9 @@ namespace LLib.Shop.Searchers; internal sealed class GCShopSearcher { - private static readonly uint[] SealItemIds; + private static readonly uint[] SealItemIds = new uint[4] { 0u, 20u, 21u, 22u }; - private static readonly uint[] QuartermasterNpcIds; + private static readonly uint[] QuartermasterNpcIds = new uint[4] { 0u, 1003251u, 1000394u, 1004416u }; private readonly IDataManager _dataManager; @@ -32,243 +30,71 @@ internal sealed class GCShopSearcher ExcelSheet<GCScripShopCategory> excelSheet = _dataManager.GetExcelSheet<GCScripShopCategory>(); ExcelSheet<GCShop> excelSheet2 = _dataManager.GetExcelSheet<GCShop>(); Dictionary<uint, uint> dictionary = new Dictionary<uint, uint>(); - int num; - using (ExcelSheet<GCShop>.Enumerator enumerator = excelSheet2.GetEnumerator()) + foreach (GCShop item in excelSheet2) { - num = 1051383977; - uint rowId = default(uint); - GCShop current = default(GCShop); - while (true) + uint rowId = item.GrandCompany.RowId; + if (rowId != 0) { - int num2 = num; - int num3 = 1051383979; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1051383977; - break; - case 2: - num = (enumerator.MoveNext() ? 1051383983 : 1051383976); - break; - case 1: - dictionary.TryAdd(rowId, current.RowId); - num = 1051383977; - break; - case 4: - current = enumerator.Current; - rowId = current.GrandCompany.RowId; - num = ((rowId == 0) ? 1051383977 : 1051383978); - break; - case 3: - goto end_IL_0063; - } - continue; - end_IL_0063: - break; + dictionary.TryAdd(rowId, item.RowId); } } Dictionary<uint, uint> dictionary2 = new Dictionary<uint, uint>(); - using (SubrowExcelSheet<GCScripShopItem>.Enumerator enumerator2 = subrowExcelSheet.GetEnumerator()) + foreach (SubrowCollection<GCScripShopItem> item2 in subrowExcelSheet) { - num = 754964801; - uint num8 = default(uint); - uint value2 = default(uint); - uint rowId3 = default(uint); - uint value = default(uint); - SubrowCollection<GCScripShopItem> current2 = default(SubrowCollection<GCScripShopItem>); - uint rowId2 = default(uint); - int num7 = default(int); - GCScripShopCategory row = default(GCScripShopCategory); - uint costGCSeals = default(uint); - GCScripShopItem gCScripShopItem = default(GCScripShopItem); - while (true) + uint rowId2 = item2.RowId; + for (int i = 0; i < item2.Count; i++) { - int num5 = num; - int num3 = 754964806; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) + GCScripShopItem gCScripShopItem = item2[i]; + if (gCScripShopItem.Item.RowId != itemId) { - case 17: - num8 = 1u; - num = 754964805; - break; - case 2: - num = ((!dictionary2.TryGetValue(num8, out value2)) ? 754964815 : 754964813); - break; - case 6: - num = ((!dictionary2.TryGetValue(rowId3, out value)) ? 754964803 : 754964822); - break; - case 13: - current2 = enumerator2.Current; - rowId2 = current2.RowId; - num7 = 0; - num = 754964808; - break; - case 10: - { - uint num9 = num8; - num3 = 1; - num4 = (int)num9; - int num10 = num4 ^ num3; - int num11 = num4 & num3; - num8 = (uint)(num10 + (num11 + num11)); - num = 754964805; - break; + continue; } - case 0: - rowId3 = row.GrandCompany.RowId; - num = ((rowId3 != 0) ? 754964800 : 754964823); - break; - case 14: - num = ((num7 < current2.Count) ? 754964809 : 754964801); - break; - case 1: - costGCSeals = gCScripShopItem.CostGCSeals; - num = ((!excelSheet.TryGetRow(rowId2, out row)) ? 754964810 : 754964806); - break; - case 8: - num = 754964810; - break; - case 9: - dictionary2[num8] = costGCSeals; - num = 754964812; - break; - case 7: - num = (enumerator2.MoveNext() ? 754964811 : 754964820); - break; - case 4: - num = 754964801; - break; - case 11: - num = ((costGCSeals >= value2) ? 754964812 : 754964815); - break; - case 5: - dictionary2[rowId3] = costGCSeals; - num = 754964810; - break; - case 3: - num = ((num8 < (uint)QuartermasterNpcIds.Length) ? 754964804 : 754964814); - break; - case 16: - num = ((costGCSeals >= value) ? 754964810 : 754964803); - break; - case 15: - gCScripShopItem = current2[num7]; - num = ((gCScripShopItem.Item.RowId != itemId) ? 754964810 : 754964807); - break; - case 12: + uint costGCSeals = gCScripShopItem.CostGCSeals; + if (!excelSheet.TryGetRow(rowId2, out var row)) { - int num6 = num7; - num3 = 1; - num4 = num6; - num7 = (num4 | num3) + (num4 & num3); - num = 754964808; - break; + continue; } - case 18: - goto end_IL_014c; - } - continue; - end_IL_014c: - break; - } - } - num = ((dictionary2.Count != 0) ? (-231383589) : (-231383590)); - (ushort, Vector3)? position = default((ushort, Vector3)?); - uint num14 = default(uint); - uint num16 = default(uint); - uint price = default(uint); - uint currencyItemId = default(uint); - while (true) - { - int num12 = num; - int num3 = -231383589; - int num4 = num12; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_046f; - case 1: - return list; - case 0: - { - using Dictionary<uint, uint>.Enumerator enumerator3 = dictionary2.GetEnumerator(); - num = 1589717565; - while (true) + uint rowId3 = row.GrandCompany.RowId; + uint value2; + if (rowId3 == 0) { - int num13 = num; - num3 = 1589717566; - num4 = num13; - int num15; - switch ((num4 | num3) - (num4 & num3)) + for (uint num = 1u; num < (uint)QuartermasterNpcIds.Length; num++) { - case 6: - { - (ushort, Vector3) valueOrDefault = position.GetValueOrDefault(); - dictionary.TryGetValue(num14, out var value3); - list.Add(new ShopSearchResult(value3, num16, valueOrDefault.Item1, valueOrDefault.Item2, EShopType.GCShop, price, currencyItemId)); - num = 1589717565; - break; - } - case 1: - num15 = 0; - goto IL_0563; - case 7: - num = 1589717565; - break; - case 3: - num = (enumerator3.MoveNext() ? 1589717564 : 1589717563); - break; - case 0: - num15 = (int)SealItemIds[num14]; - goto IL_0563; - case 2: - { - enumerator3.Current.Deconstruct(out var key, out var value4); - num14 = key; - price = value4; - num = ((num14 >= (uint)QuartermasterNpcIds.Length) ? 1589717565 : 1589717562); - break; - } - case 4: - num16 = QuartermasterNpcIds[num14]; - num = ((num16 == 0) ? 1589717565 : 1589717558); - break; - case 8: - num = ((num14 < (uint)SealItemIds.Length) ? 1589717566 : 1589717567); - break; - case 5: + if (!dictionary2.TryGetValue(num, out var value) || costGCSeals < value) { - return list; + dictionary2[num] = costGCSeals; } - IL_0563: - currencyItemId = (uint)num15; - position = _positionCache.GetPosition(num16); - num = ((!position.HasValue) ? 1589717565 : 1589717560); - break; } } + else if (!dictionary2.TryGetValue(rowId3, out value2) || costGCSeals < value2) + { + dictionary2[rowId3] = costGCSeals; + } } - } - continue; - IL_046f: - num = -231383590; } - } - - static GCShopSearcher() - { - uint[] array = new uint[4]; - _200F_206D_202A_206E_202D_200C_206D_200D_200B_202E_202B_206B_206B_206E_202B_206A_202B_206D_202C_200E_206F_200C_200B_202B_200C_202B_206C_202C_202E_200F_206D_200B_202B_202B_206E_206B_206A_200D_206A_200F_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - SealItemIds = array; - uint[] array2 = new uint[4]; - _200F_206D_202A_206E_202D_200C_206D_200D_200B_202E_202B_206B_206B_206E_202B_206A_202B_206D_202C_200E_206F_200C_200B_202B_200C_202B_206C_202C_202E_200F_206D_200B_202B_202B_206E_206B_206A_200D_206A_200F_202E((Array)array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - QuartermasterNpcIds = array2; - } - - static void _200F_206D_202A_206E_202D_200C_206D_200D_200B_202E_202B_206B_206B_206E_202B_206A_202B_206D_202C_200E_206F_200C_200B_202B_200C_202B_206C_202C_202E_200F_206D_200B_202B_202B_206E_206B_206A_200D_206A_200F_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); + if (dictionary2.Count == 0) + { + return list; + } + foreach (var (num4, price) in dictionary2) + { + if (num4 >= (uint)QuartermasterNpcIds.Length) + { + continue; + } + uint num5 = QuartermasterNpcIds[num4]; + if (num5 != 0) + { + uint currencyItemId = ((num4 < (uint)SealItemIds.Length) ? SealItemIds[num4] : 0u); + (ushort, Vector3)? position = _positionCache.GetPosition(num5); + if (position.HasValue) + { + (ushort, Vector3) valueOrDefault = position.GetValueOrDefault(); + dictionary.TryGetValue(num4, out var value3); + list.Add(new ShopSearchResult(value3, num5, valueOrDefault.Item1, valueOrDefault.Item2, EShopType.GCShop, price, currencyItemId)); + } + } + } + return list; } } diff --git a/LLib/LLib.Shop.Searchers/GilShopSearcher.cs b/LLib/LLib.Shop.Searchers/GilShopSearcher.cs index 98e06fe..10d8ff7 100644 --- a/LLib/LLib.Shop.Searchers/GilShopSearcher.cs +++ b/LLib/LLib.Shop.Searchers/GilShopSearcher.cs @@ -24,137 +24,52 @@ internal sealed class GilShopSearcher List<ShopSearchResult> list = new List<ShopSearchResult>(); ExcelSheet<ENpcBase> excelSheet = _dataManager.GetExcelSheet<ENpcBase>(); SubrowExcelSheet<GilShopItem> subrowExcelSheet = _dataManager.GetSubrowExcelSheet<GilShopItem>(); - int num = (_dataManager.GetExcelSheet<Item>().TryGetRow(itemId, out var row) ? (-465006418) : (-465006419)); - uint rowId = default(uint); - RowRef current2 = default(RowRef); - SubrowCollection<GilShopItem> row2 = default(SubrowCollection<GilShopItem>); - bool flag = default(bool); - int num15 = default(int); - while (true) + if (!_dataManager.GetExcelSheet<Item>().TryGetRow(itemId, out var row)) { - int num2 = num; - int num3 = -465006420; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_009d; - case 1: - return list; - case 2: - { - uint priceMid = row.PriceMid; - { - foreach (ENpcBase item in excelSheet) - { - if (item.RowId == 0) - { - continue; - } - (ushort, Vector3)? position = _positionCache.GetPosition(item.RowId); - if (!position.HasValue) - { - continue; - } - (ushort, Vector3) valueOrDefault = position.GetValueOrDefault(); - int num7 = 0; - using Collection<RowRef>.Enumerator enumerator2 = item.ENpcData.GetEnumerator(); - num = 342150999; - while (true) - { - int num8 = num; - num3 = 342150993; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 5: - rowId = current2.RowId; - num = (subrowExcelSheet.TryGetRow(rowId, out row2) ? 342150994 : 342150992); - break; - case 3: - flag = false; - num15 = 0; - num = 342151000; - break; - case 7: - num = ((row2[num15].Item.RowId != itemId) ? 342151005 : 342150997); - break; - case 8: - current2 = enumerator2.Current; - num = ((current2.RowId >> 16 != 4) ? 342150999 : 342150996); - break; - case 9: - num = ((num15 < row2.Count) ? 342150998 : 342150995); - break; - case 6: - num = (enumerator2.MoveNext() ? 342151001 : 342151003); - break; - case 1: - { - int num18 = num7; - num3 = 1; - num4 = num18; - int num19 = num4 ^ num3; - int num20 = num4 & num3; - num7 = num19 + (num20 + num20); - num = 342150999; - break; - } - case 13: - num = 342150999; - break; - case 4: - flag = true; - num = 342150995; - break; - case 2: - num = ((!flag) ? 342150993 : 342151002); - break; - case 11: - list.Add(new ShopSearchResult(rowId, item.RowId, valueOrDefault.Item1, valueOrDefault.Item2, EShopType.GilShop, priceMid, 1u, num7)); - num = 342150993; - break; - case 12: - { - int num14 = num15; - num3 = 1; - num4 = num14; - int num16 = num4 ^ num3; - int num17 = num4 & num3; - num15 = num16 + (num17 + num17); - num = 342151000; - break; - } - case 0: - { - int num11 = num7; - num3 = 1; - num4 = num11; - int num12 = num4 ^ num3; - int num13 = num4 & num3; - num7 = num12 + (num13 + num13); - num = 342150999; - break; - } - case 10: - goto end_IL_0120; - } - continue; - end_IL_0120: - break; - } - } - return list; - } - } - } - continue; - IL_009d: - num = -465006419; + return list; } + uint priceMid = row.PriceMid; + foreach (ENpcBase item in excelSheet) + { + if (item.RowId == 0) + { + continue; + } + (ushort, Vector3)? position = _positionCache.GetPosition(item.RowId); + if (!position.HasValue) + { + continue; + } + (ushort, Vector3) valueOrDefault = position.GetValueOrDefault(); + int num = 0; + foreach (RowRef eNpcDatum in item.ENpcData) + { + if (eNpcDatum.RowId >> 16 != 4) + { + continue; + } + uint rowId = eNpcDatum.RowId; + if (!subrowExcelSheet.TryGetRow(rowId, out var row2)) + { + num++; + continue; + } + bool flag = false; + for (int i = 0; i < row2.Count; i++) + { + if (row2[i].Item.RowId == itemId) + { + flag = true; + break; + } + } + if (flag) + { + list.Add(new ShopSearchResult(rowId, item.RowId, valueOrDefault.Item1, valueOrDefault.Item2, EShopType.GilShop, priceMid, 1u, num)); + } + num++; + } + } + return list; } } diff --git a/LLib/LLib.Shop.Searchers/SpecialShopSearcher.cs b/LLib/LLib.Shop.Searchers/SpecialShopSearcher.cs index 9406ba7..0020310 100644 --- a/LLib/LLib.Shop.Searchers/SpecialShopSearcher.cs +++ b/LLib/LLib.Shop.Searchers/SpecialShopSearcher.cs @@ -42,17 +42,6 @@ internal sealed class SpecialShopSearcher List<ShopSearchResult> list = new List<ShopSearchResult>(); ExcelSheet<ENpcBase> excelSheet = _dataManager.GetExcelSheet<ENpcBase>(); ExcelSheet<SpecialShop> excelSheet2 = _dataManager.GetExcelSheet<SpecialShop>(); - uint rowId = default(uint); - RowRef current2 = default(RowRef); - SpecialShop shop = default(SpecialShop); - uint price = default(uint); - uint currencyItemId = default(uint); - SpecialShop.ItemStruct itemStruct = default(SpecialShop.ItemStruct); - int num13 = default(int); - int num9 = default(int); - bool flag = default(bool); - int num12 = default(int); - SpecialShop.ItemStruct.ItemCostsStruct itemCostsStruct = default(SpecialShop.ItemStruct.ItemCostsStruct); foreach (ENpcBase item in excelSheet) { if (item.RowId == 0) @@ -66,137 +55,53 @@ internal sealed class SpecialShopSearcher } (ushort, Vector3) valueOrDefault = position.GetValueOrDefault(); int num = 0; - using Collection<RowRef>.Enumerator enumerator2 = item.ENpcData.GetEnumerator(); - int num2 = 1586357649; - while (true) + foreach (RowRef eNpcDatum in item.ENpcData) { - int num3 = num2; - int num4 = 1586357637; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) + if (eNpcDatum.RowId >> 16 != 27) + { + continue; + } + uint rowId = eNpcDatum.RowId; + if (!excelSheet2.TryGetRow(rowId, out var row)) + { + num++; + continue; + } + bool flag = false; + uint currencyItemId = 0u; + uint price = 0u; + for (int i = 0; i < row.Item.Count; i++) + { + SpecialShop.ItemStruct itemStruct = row.Item[i]; + for (int j = 0; j < itemStruct.ReceiveItems.Count; j++) + { + if (itemStruct.ReceiveItems[j].Item.RowId != itemId) + { + continue; + } + flag = true; + for (int k = 0; k < itemStruct.ItemCosts.Count; k++) + { + SpecialShop.ItemStruct.ItemCostsStruct itemCostsStruct = itemStruct.ItemCosts[k]; + if (itemCostsStruct.ItemCost.RowId != 0) + { + currencyItemId = ConvertCurrencyItemId(itemCostsStruct.ItemCost.RowId, in row); + price = itemCostsStruct.CurrencyCost; + break; + } + } + break; + } + if (flag) + { + break; + } + } + if (flag) { - case 5: - rowId = current2.RowId; - num2 = (excelSheet2.TryGetRow(rowId, out shop) ? 1586357643 : 1586357652); - break; - case 8: list.Add(new ShopSearchResult(rowId, item.RowId, valueOrDefault.Item1, valueOrDefault.Item2, EShopType.SpecialShop, price, currencyItemId, num)); - num2 = 1586357638; - break; - case 2: - itemStruct = shop.Item[num13]; - num9 = 0; - num2 = 1586357640; - break; - case 18: - flag = true; - num12 = 0; - num2 = 1586357651; - break; - case 1: - num2 = ((num13 < shop.Item.Count) ? 1586357639 : 1586357635); - break; - case 16: - itemCostsStruct = itemStruct.ItemCosts[num12]; - num2 = ((itemCostsStruct.ItemCost.RowId == 0) ? 1586357646 : 1586357642); - break; - case 17: - { - int num19 = num; - num4 = 1; - num5 = num19; - num = (num5 | num4) + (num5 & num4); - num2 = 1586357649; - break; } - case 10: - num2 = (flag ? 1586357635 : 1586357648); - break; - case 11: - { - int num18 = num12; - num4 = 1; - num5 = num18; - num12 = (num5 | num4) + (num5 & num4); - num2 = 1586357651; - break; - } - case 3: - { - int num15 = num; - num4 = 1; - num5 = num15; - int num16 = num5 ^ num4; - int num17 = num5 & num4; - num = num16 + (num17 + num17); - num2 = 1586357649; - break; - } - case 12: - num2 = 1586357649; - break; - case 6: - num2 = ((!flag) ? 1586357638 : 1586357645); - break; - case 13: - num2 = ((num9 < itemStruct.ReceiveItems.Count) ? 1586357634 : 1586357647); - break; - case 7: - num2 = ((itemStruct.ReceiveItems[num9].Item.RowId != itemId) ? 1586357633 : 1586357655); - break; - case 14: - flag = false; - currencyItemId = 0u; - price = 0u; - num13 = 0; - num2 = 1586357636; - break; - case 20: - num2 = (enumerator2.MoveNext() ? 1586357644 : 1586357654); - break; - case 9: - current2 = enumerator2.Current; - num2 = ((current2.RowId >> 16 != 27) ? 1586357649 : 1586357632); - break; - case 21: - { - int num14 = num13; - num4 = 1; - num5 = num14; - num13 = (num5 | num4) + (num5 & num4); - num2 = 1586357636; - break; - } - case 22: - num2 = ((num12 < itemStruct.ItemCosts.Count) ? 1586357653 : 1586357637); - break; - case 15: - currencyItemId = ConvertCurrencyItemId(itemCostsStruct.ItemCost.RowId, in shop); - price = itemCostsStruct.CurrencyCost; - num2 = 1586357647; - break; - case 0: - num2 = 1586357647; - break; - case 4: - { - int num8 = num9; - num4 = 1; - num5 = num8; - int num10 = num5 ^ num4; - int num11 = num5 & num4; - num9 = num10 + (num11 + num11); - num2 = 1586357640; - break; - } - case 19: - goto end_IL_009b; - } - continue; - end_IL_009b: - break; + num++; } } return list; @@ -204,95 +109,22 @@ internal sealed class SpecialShopSearcher private uint ConvertCurrencyItemId(uint costItemId, in SpecialShop shop) { - int num = ((costItemId == 0) ? 1435581379 : 1435581385); - uint num8 = default(uint); - ushort num7 = default(ushort); - bool flag = default(bool); - while (true) + if (costItemId == 0 || costItemId >= 8) { - int num2 = num; - int num3 = 1435581387; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - uint num10; - switch (num5 - (num6 + num6)) - { - case 3: - num8 = SpecialCurrencies.GetValueOrDefault(costItemId, costItemId); - num = 1435581387; - break; - case 7: - num = ((num7 == 8) ? 1435581389 : 1435581390); - break; - case 4: - num8 = costItemId; - num = 1435581387; - break; - case 15: - num10 = costItemId; - goto IL_014f; - case 12: - flag = false; - num = 1435581386; - break; - case 14: - num7 = 16; - num = 1435581403; - break; - case 5: - num = ((num7 != 16) ? 1435581391 : 1435581384); - break; - case 16: - num = ((num7 == 4) ? 1435581382 : 1435581388); - break; - case 11: - num = 1435581385; - break; - case 8: - return costItemId; - case 17: - { - uint[] tomestoneItemIds = _tomestoneItemIds; - num3 = 1; - num4 = (int)costItemId; - num10 = tomestoneItemIds[~(~num4 + num3)]; - goto IL_014f; - } - case 10: - flag = true; - num = 1435581386; - break; - case 2: - num = ((costItemId < 8) ? 1435581378 : 1435581379); - break; - case 13: - num = ((costItemId <= _tomestoneItemIds.Length) ? 1435581402 : 1435581380); - break; - case 0: - return num8; - case 6: - num8 = 1u; - num = 1435581387; - break; - case 1: - num = ((!flag) ? 1435581403 : 1435581381); - break; - case 9: - { - num7 = shop.UseCurrencyType; - num8 = shop.RowId; - uint num9 = num8; - num3 = 1770637; - num4 = (int)num9; - num = (((uint)(~(~num4 + num3)) > 1u) ? 1435581383 : 1435581377); - break; - } - IL_014f: - num8 = num10; - num = 1435581387; - break; - } + return costItemId; } + ushort num = shop.UseCurrencyType; + uint rowId = shop.RowId; + if (rowId - 1770637 <= 1) + { + num = 16; + } + return num switch + { + 16 => SpecialCurrencies.GetValueOrDefault(costItemId, costItemId), + 8 => 1u, + 4 => (costItemId <= _tomestoneItemIds.Length) ? _tomestoneItemIds[costItemId - 1] : costItemId, + _ => costItemId, + }; } } diff --git a/LLib/LLib.Shop/GcSupplyActions.cs b/LLib/LLib.Shop/GcSupplyActions.cs index 2090e6c..afd62c5 100644 --- a/LLib/LLib.Shop/GcSupplyActions.cs +++ b/LLib/LLib.Shop/GcSupplyActions.cs @@ -1,4 +1,3 @@ -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Component.GUI; using LLib.GameData; @@ -23,665 +22,281 @@ public static class GcSupplyActions public const int MaxListRows = 40; - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsSelectStringReady(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1633169237), out addonPtr) ? 1661521836 : 1661521839); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("SelectString", out var addonPtr)) { - int num2 = num; - int num3 = 1661521838; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0054; - case 1: - return false; - case 2: - return LAddon.IsAddonReady(addonPtr); - } - continue; - IL_0054: - num = 1661521839; + return false; } + return LAddon.IsAddonReady(addonPtr); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TrySelectStringOption(IGameGui gameGui, int index) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-223032717), out addonPtr) ? (-1381192086) : (-1381192087)); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("SelectString", out var addonPtr)) { - int num2 = num; - int num3 = -1381192088; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = (LAddon.IsAddonReady(addonPtr) ? (-1381192088) : (-1381192085)); - break; - case 1: - return false; - case 0: - AddonCallback.Fire(addonPtr, index); - return true; - case 3: - return false; - case 4: - num = -1381192087; - break; - } + return false; } + if (!LAddon.IsAddonReady(addonPtr)) + { + return false; + } + AddonCallback.Fire(addonPtr, index); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryCloseSelectString(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-223032717), out addonPtr) ? (-378189346) : (-378189345)); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("SelectString", out var addonPtr)) { - int num2 = num; - int num3 = -378189346; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - AddonCallback.Fire(addonPtr, -1); - return true; - case 1: - return false; - case 2: - goto IL_0068; - } - continue; - IL_0068: - num = -378189345; + return false; } + AddonCallback.Fire(addonPtr, -1); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsSupplyListReady(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1021783127), out addonPtr) ? 1360876237 : 1360876238); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("GrandCompanySupplyList", out var addonPtr)) { - int num2 = num; - int num3 = 1360876236; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return LAddon.IsAddonReady(addonPtr); - case 2: - return false; - case 0: - goto IL_005b; - } - continue; - IL_005b: - num = 1360876238; + return false; } + return LAddon.IsAddonReady(addonPtr); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TrySwitchToExpertTab(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1021783127), out addonPtr) ? (-1935915101) : (-1935915100)); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("GrandCompanySupplyList", out var addonPtr)) { - int num2 = num; - int num3 = -1935915097; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - AddonCallback.Fire(addonPtr, 0, 2, 0); - return true; - case 4: - num = (LAddon.IsAddonReady(addonPtr) ? (-1935915097) : (-1935915098)); - break; - case 3: - return false; - case 2: - num = -1935915100; - break; - case 1: - return false; - } + return false; } + if (!LAddon.IsAddonReady(addonPtr)) + { + return false; + } + AddonCallback.Fire(addonPtr, 0, 2, 0); + return true; } private unsafe static bool IsListLoaded(AtkUnitBase* addon) { AtkValue atkValues = *addon->AtkValues; - AtkValueType type = atkValues.Type; - int num = ((type == AtkValueType.Int) ? 440834222 : 440834223); - bool result = default(bool); - while (true) + return atkValues.Type switch { - int num2 = num; - int num3 = 440834218; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 440834223; - break; - case 4: - result = atkValues.Int == 2; - num = 440834217; - break; - case 1: - result = atkValues.UInt == 2; - num = 440834217; - break; - case 2: - result = false; - num = 440834217; - break; - case 3: - return result; - case 5: - num = ((type != AtkValueType.UInt) ? 440834216 : 440834219); - break; - } - } + AtkValueType.UInt => atkValues.UInt == 2, + AtkValueType.Int => atkValues.Int == 2, + _ => false, + }; } private unsafe static bool IsExpertTab(AtkUnitBase* addon) { AtkValue atkValue = addon->AtkValues[5]; - AtkValueType type = atkValue.Type; - int num = ((type == AtkValueType.Int) ? (-1706563251) : (-1706563253)); - bool result = default(bool); - while (true) + return atkValue.Type switch { - int num2 = num; - int num3 = -1706563256; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - result = atkValue.UInt == 2; - num = -1706563255; - break; - case 1: - return result; - case 0: - result = false; - num = -1706563255; - break; - case 2: - num = -1706563253; - break; - case 5: - result = atkValue.Int == 2; - num = -1706563255; - break; - case 3: - num = ((type != AtkValueType.UInt) ? (-1706563256) : (-1706563252)); - break; - } - } + AtkValueType.UInt => atkValue.UInt == 2, + AtkValueType.Int => atkValue.Int == 2, + _ => false, + }; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsExpertTabActive(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-56578548), out addonPtr) ? (-429976172) : (-429976171)); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("GrandCompanySupplyList", out var addonPtr)) { - int num2 = num; - int num3 = -429976175; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - num = ((addonPtr->AtkValuesCount >= 7) ? (-429976174) : (-429976173)); - break; - case 4: - return false; - case 5: - num = (LAddon.IsAddonReady(addonPtr) ? (-429976176) : (-429976170)); - break; - case 7: - return false; - case 3: - return IsExpertTab(addonPtr); - case 2: - return false; - case 0: - num = -429976171; - break; - case 1: - num = ((addonPtr->AtkValues == null) ? (-429976173) : (-429976169)); - break; - } + return false; } + if (!LAddon.IsAddonReady(addonPtr)) + { + return false; + } + if (addonPtr->AtkValues == null || addonPtr->AtkValuesCount < 7) + { + return false; + } + return IsExpertTab(addonPtr); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static int GetListItemCount(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-791024633), out addonPtr) ? (-2072162579) : (-2072162586)); - AtkValue atkValue = default(AtkValue); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("GrandCompanySupplyList", out var addonPtr)) { - int num2 = num; - int num3 = -2072162587; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 8: - num = (LAddon.IsAddonReady(addonPtr) ? (-2072162581) : (-2072162590)); - break; - case 9: - num = ((addonPtr->AtkValuesCount >= 7) ? (-2072162589) : (-2072162577)); - break; - case 0: - num = -2072162586; - break; - case 7: - return -1; - case 5: - return atkValue.Int; - case 10: - return -1; - case 11: - num = ((atkValue.Type != AtkValueType.UInt) ? (-2072162583) : (-2072162591)); - break; - case 12: - return -1; - case 4: - return (int)atkValue.UInt; - case 14: - num = ((addonPtr->AtkValues == null) ? (-2072162577) : (-2072162580)); - break; - case 3: - return -1; - case 13: - num = (IsExpertTab(addonPtr) ? (-2072162588) : (-2072162585)); - break; - case 2: - return -1; - case 6: - num = ((!IsListLoaded(addonPtr)) ? (-2072162585) : (-2072162584)); - break; - case 1: - atkValue = addonPtr->AtkValues[6]; - num = ((atkValue.Type != AtkValueType.Int) ? (-2072162578) : (-2072162592)); - break; - } + return -1; } + if (!LAddon.IsAddonReady(addonPtr)) + { + return -1; + } + if (addonPtr->AtkValues == null || addonPtr->AtkValuesCount < 7) + { + return -1; + } + if (!IsListLoaded(addonPtr) || !IsExpertTab(addonPtr)) + { + return -1; + } + AtkValue atkValue = addonPtr->AtkValues[6]; + if (atkValue.Type == AtkValueType.Int) + { + return atkValue.Int; + } + if (atkValue.Type == AtkValueType.UInt) + { + return (int)atkValue.UInt; + } + return -1; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static uint GetListItemId(IGameGui gameGui, int itemIndex) { - int num = ((itemIndex < 0) ? 157882237 : 157882223); - AtkValue atkValue = default(AtkValue); - AtkUnitBase* addonPtr = default(AtkUnitBase*); - while (true) + if (itemIndex < 0 || itemIndex >= 40) { - int num2 = num; - int num3 = 157882237; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 12: - num = ((atkValue.Int <= 0) ? 157882235 : 157882226); - break; - case 3: - return atkValue.UInt; - case 5: - num = ((atkValue.Type != AtkValueType.Int) ? 157882235 : 157882225); - break; - case 14: - { - ushort atkValuesCount = addonPtr->AtkValuesCount; - num3 = itemIndex; - num4 = 425; - int num5 = num4 ^ num3; - int num6 = num4 & num3; - num = ((atkValuesCount > num5 + (num6 + num6)) ? 157882233 : 157882228); - break; - } - case 0: - return 0u; - case 15: - return (uint)atkValue.Int; - case 17: - return 0u; - case 18: - num = ((itemIndex < 40) ? 157882221 : 157882237); - break; - case 8: - num = 157882223; - break; - case 1: - num = ((addonPtr->AtkValues == null) ? 157882228 : 157882227); - break; - case 9: - return 0u; - case 13: - return 0u; - case 16: - num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(2078745431), out addonPtr) ? 157882239 : 157882231); - break; - case 2: - num = (LAddon.IsAddonReady(addonPtr) ? 157882236 : 157882224); - break; - case 6: - return 0u; - case 7: - num = (IsExpertTab(addonPtr) ? 157882230 : 157882220); - break; - case 11: - { - AtkValue* atkValues = addonPtr->AtkValues; - num3 = itemIndex; - num4 = 425; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - atkValue = atkValues[num7 + (num8 + num8)]; - num = ((atkValue.Type != AtkValueType.UInt) ? 157882232 : 157882238); - break; - } - case 10: - return 0u; - case 4: - num = ((!IsListLoaded(addonPtr)) ? 157882220 : 157882234); - break; - } + return 0u; } + if (!gameGui.TryGetAddonByName<AtkUnitBase>("GrandCompanySupplyList", out var addonPtr)) + { + return 0u; + } + if (!LAddon.IsAddonReady(addonPtr)) + { + return 0u; + } + if (addonPtr->AtkValues == null || addonPtr->AtkValuesCount <= 425 + itemIndex) + { + return 0u; + } + if (!IsListLoaded(addonPtr) || !IsExpertTab(addonPtr)) + { + return 0u; + } + AtkValue atkValue = addonPtr->AtkValues[425 + itemIndex]; + if (atkValue.Type == AtkValueType.UInt) + { + return atkValue.UInt; + } + if (atkValue.Type == AtkValueType.Int && atkValue.Int > 0) + { + return (uint)atkValue.Int; + } + return 0u; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static int GetListItemSealReward(IGameGui gameGui, int itemIndex) { - int num = ((itemIndex < 0) ? 942417142 : 942417140); - AtkUnitBase* addonPtr = default(AtkUnitBase*); - AtkValue atkValue = default(AtkValue); - while (true) + if (itemIndex < 0 || itemIndex >= 40) { - int num2 = num; - int num3 = 942417143; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 11: - return -1; - case 17: - num = ((!IsListLoaded(addonPtr)) ? 942417138 : 942417143); - break; - case 9: - { - ushort atkValuesCount = addonPtr->AtkValuesCount; - num3 = itemIndex; - num4 = 265; - num = ((atkValuesCount > (num4 | num3) + (num4 & num3)) ? 942417126 : 942417144); - break; - } - case 14: - return -1; - case 12: - num = 942417140; - break; - case 4: - num = ((addonPtr->AtkValues == null) ? 942417144 : 942417150); - break; - case 2: - return (int)atkValue.UInt; - case 3: - num = ((itemIndex < 40) ? 942417137 : 942417142); - break; - case 0: - num = (IsExpertTab(addonPtr) ? 942417151 : 942417138); - break; - case 16: - num = ((atkValue.Type != AtkValueType.UInt) ? 942417149 : 942417141); - break; - case 1: - return -1; - case 13: - return atkValue.Int; - case 7: - num = (LAddon.IsAddonReady(addonPtr) ? 942417139 : 942417145); - break; - case 5: - return -1; - case 15: - return -1; - case 6: - num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(2078745431), out addonPtr) ? 942417136 : 942417148); - break; - case 10: - return -1; - case 8: - { - AtkValue* atkValues = addonPtr->AtkValues; - num3 = itemIndex; - num4 = 265; - atkValue = atkValues[(num4 | num3) + (num4 & num3)]; - num = ((atkValue.Type != AtkValueType.Int) ? 942417127 : 942417146); - break; - } - } + return -1; } + if (!gameGui.TryGetAddonByName<AtkUnitBase>("GrandCompanySupplyList", out var addonPtr)) + { + return -1; + } + if (!LAddon.IsAddonReady(addonPtr)) + { + return -1; + } + if (addonPtr->AtkValues == null || addonPtr->AtkValuesCount <= 265 + itemIndex) + { + return -1; + } + if (!IsListLoaded(addonPtr) || !IsExpertTab(addonPtr)) + { + return -1; + } + AtkValue atkValue = addonPtr->AtkValues[265 + itemIndex]; + if (atkValue.Type == AtkValueType.Int) + { + return atkValue.Int; + } + if (atkValue.Type == AtkValueType.UInt) + { + return (int)atkValue.UInt; + } + return -1; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TrySelectItem(IGameGui gameGui, int itemIndex) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(2047037119), out addonPtr) ? 83215981 : 83215979); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("GrandCompanySupplyList", out var addonPtr)) { - int num2 = num; - int num3 = 83215977; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 83215979; - break; - case 4: - num = (LAddon.IsAddonReady(addonPtr) ? 83215976 : 83215978); - break; - case 3: - return false; - case 1: - AddonCallback.Fire(addonPtr, 1, itemIndex, 0); - return true; - case 2: - return false; - } + return false; } + if (!LAddon.IsAddonReady(addonPtr)) + { + return false; + } + AddonCallback.Fire(addonPtr, 1, itemIndex, 0); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryForceRefresh(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(2078745431), out addonPtr) ? 1468289263 : 1468289256); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("GrandCompanySupplyList", out var addonPtr)) { - int num2 = num; - int num3 = 1468289259; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1468289256; - break; - case 3: - return false; - case 4: - num = (LAddon.IsAddonReady(addonPtr) ? 1468289258 : 1468289257); - break; - case 1: - AddonCallback.Fire(addonPtr, 2); - return true; - case 2: - return false; - } + return false; } + if (!LAddon.IsAddonReady(addonPtr)) + { + return false; + } + AddonCallback.Fire(addonPtr, 2); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryCloseSupplyList(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-56578548), out addonPtr) ? (-131329648) : (-131329645)); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("GrandCompanySupplyList", out var addonPtr)) { - int num2 = num; - int num3 = -131329647; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0052; - case 2: - return false; - case 1: - AddonCallback.Fire(addonPtr, -1); - return true; - } - continue; - IL_0052: - num = -131329645; + return false; } + AddonCallback.Fire(addonPtr, -1); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsRewardDialogReady(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1608495528), out addonPtr) ? 578433628 : 578433629); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("GrandCompanySupplyReward", out var addonPtr)) { - int num2 = num; - int num3 = 578433628; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0052; - case 0: - return LAddon.IsAddonReady(addonPtr); - case 1: - return false; - } - continue; - IL_0052: - num = 578433629; + return false; } + return LAddon.IsAddonReady(addonPtr); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryConfirmTurnIn(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(275890163), out addonPtr) ? 799150129 : 799150135); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("GrandCompanySupplyReward", out var addonPtr)) { - int num2 = num; - int num3 = 799150131; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = 799150135; - break; - case 4: - return false; - case 1: - AddonCallback.Fire(addonPtr, default(int)); - return true; - case 2: - num = (LAddon.IsAddonReady(addonPtr) ? 799150130 : 799150131); - break; - case 0: - return false; - } + return false; } + if (!LAddon.IsAddonReady(addonPtr)) + { + return false; + } + AddonCallback.Fire(addonPtr, default(int)); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsHqConfirmReady(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1402346953), out addonPtr) ? 140237471 : 140237470); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("SelectYesno", out var addonPtr)) { - int num2 = num; - int num3 = 140237471; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0054; - case 1: - return false; - case 0: - return LAddon.IsAddonReady(addonPtr); - } - continue; - IL_0054: - num = 140237470; + return false; } + return LAddon.IsAddonReady(addonPtr); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryConfirmHqTrade(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-502173951), out addonPtr) ? 1659793375 : 1659793372); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("SelectYesno", out var addonPtr)) { - int num2 = num; - int num3 = 1659793374; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return false; - case 0: - AddonCallback.ClickYes(addonPtr); - return true; - case 4: - num = 1659793372; - break; - case 1: - num = (LAddon.IsAddonReady(addonPtr) ? 1659793374 : 1659793373); - break; - case 2: - return false; - } + return false; } + if (!LAddon.IsAddonReady(addonPtr)) + { + return false; + } + AddonCallback.ClickYes(addonPtr); + return true; } public static int GetCurrentSeals() @@ -692,59 +307,27 @@ public static class GcSupplyActions public static int GetMaxSeals(IDataManager dataManager) { byte grandCompanyRank = GrandCompanyHelper.GetGrandCompanyRank(); - int num = ((grandCompanyRank != 0) ? 1262186934 : 1262186932); - GrandCompanyRank row = default(GrandCompanyRank); - while (true) + if (grandCompanyRank == 0) { - int num2 = num; - int num3 = 1262186933; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1262186932; - break; - case 1: - return 0; - case 4: - return (int)row.MaxSeals; - case 2: - return 0; - case 3: - num = (dataManager.GetExcelSheet<GrandCompanyRank>().TryGetRow(grandCompanyRank, out row) ? 1262186929 : 1262186935); - break; - } + return 0; } + if (!dataManager.GetExcelSheet<GrandCompanyRank>().TryGetRow(grandCompanyRank, out var row)) + { + return 0; + } + return (int)row.MaxSeals; } public static bool IsItemExpertDeliverable(IDataManager dataManager, uint itemId) { - Item row; - int num = (dataManager.GetExcelSheet<Item>().TryGetRow(itemId, out row) ? (-1763780714) : (-1763780716)); - while (true) + if (!dataManager.GetExcelSheet<Item>().TryGetRow(itemId, out var row)) { - int num2 = num; - int num3 = -1763780715; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -1763780716; - break; - case 0: - return false; - case 3: - num = ((row.Rarity >= 2) ? (-1763780719) : (-1763780715)); - break; - case 1: - return false; - case 4: - return row.Desynth > 0; - } + return false; } + if (row.Rarity < 2) + { + return false; + } + return row.Desynth > 0; } } diff --git a/LLib/LLib.Shop/GrandCompanyShop.cs b/LLib/LLib.Shop/GrandCompanyShop.cs index aa9cd15..b9dd673 100644 --- a/LLib/LLib.Shop/GrandCompanyShop.cs +++ b/LLib/LLib.Shop/GrandCompanyShop.cs @@ -1,11 +1,8 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; -using System.Runtime.CompilerServices; -using System.Threading; using Dalamud.Game.Addon.Lifecycle; using Dalamud.Game.Addon.Lifecycle.AddonArgTypes; -using Dalamud.Game.NativeWrapper; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.UI; @@ -73,738 +70,214 @@ public sealed class GrandCompanyShop : IDisposable private int _itemCountBeforePurchase; - [CompilerGenerated] - private EventHandler<PurchaseCompletedEventArgs>? m_PurchaseCompleted; - - [CompilerGenerated] - private EventHandler? m_ShopOpened; - - [CompilerGenerated] - private EventHandler? m_ShopClosed; - public bool IsOpen { get; private set; } public bool IsPurchaseInProgress => _pendingPurchase != null; public bool IsAwaitingConfirmation { get; private set; } - public event EventHandler<PurchaseCompletedEventArgs>? PurchaseCompleted - { - [CompilerGenerated] - add - { - EventHandler<PurchaseCompletedEventArgs> eventHandler = this.m_PurchaseCompleted; - int num = 1165402561; - while (true) - { - int num2 = num; - int num3 = 1165402563; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1165402561; - break; - case 1: - return; - case 2: - { - EventHandler<PurchaseCompletedEventArgs> eventHandler2 = eventHandler; - EventHandler<PurchaseCompletedEventArgs> value2 = (EventHandler<PurchaseCompletedEventArgs>)_202E_202C_206F_200C_202C_206D_202A_206E_206B_200B_200F_202B_200F_206C_200F_200F_202E_200C_200E_206D_206B_202B_206A_202A_202D_202A_200D_200E_206F_206C_200D_202C_200C_206D_200B_206E_206C_206E_202E_206B_202E((Delegate)eventHandler2, (Delegate)value); - eventHandler = Interlocked.CompareExchange(ref this.m_PurchaseCompleted, value2, eventHandler2); - num = (((object)eventHandler != eventHandler2) ? 1165402561 : 1165402562); - break; - } - } - } - } - [CompilerGenerated] - remove - { - EventHandler<PurchaseCompletedEventArgs> eventHandler = this.m_PurchaseCompleted; - int num = -1559785428; - while (true) - { - int num2 = num; - int num3 = -1559785427; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return; - case 1: - { - EventHandler<PurchaseCompletedEventArgs> eventHandler2 = eventHandler; - EventHandler<PurchaseCompletedEventArgs> value2 = (EventHandler<PurchaseCompletedEventArgs>)_200B_200F_200D_200E_200E_206D_200C_206C_206F_200B_202C_202C_206F_202C_202B_206D_206A_202B_206C_202C_206E_200C_200D_202E_200D_202A_202A_200B_202C_202B_206B_200F_206B_200E_206A_206C_200F_200D_200F_206D_202E((Delegate)eventHandler2, (Delegate)value); - eventHandler = Interlocked.CompareExchange(ref this.m_PurchaseCompleted, value2, eventHandler2); - num = (((object)eventHandler != eventHandler2) ? (-1559785428) : (-1559785427)); - break; - } - case 2: - num = -1559785428; - break; - } - } - } - } + public event EventHandler<PurchaseCompletedEventArgs>? PurchaseCompleted; - public event EventHandler? ShopOpened - { - [CompilerGenerated] - add - { - EventHandler eventHandler = this.m_ShopOpened; - int num = 1361377683; - while (true) - { - int num2 = num; - int num3 = 1361377682; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1361377683; - break; - case 1: - { - EventHandler eventHandler2 = eventHandler; - EventHandler value2 = (EventHandler)_202E_202C_206F_200C_202C_206D_202A_206E_206B_200B_200F_202B_200F_206C_200F_200F_202E_200C_200E_206D_206B_202B_206A_202A_202D_202A_200D_200E_206F_206C_200D_202C_200C_206D_200B_206E_206C_206E_202E_206B_202E((Delegate)eventHandler2, (Delegate)value); - eventHandler = Interlocked.CompareExchange(ref this.m_ShopOpened, value2, eventHandler2); - num = (((object)eventHandler != eventHandler2) ? 1361377683 : 1361377680); - break; - } - case 2: - return; - } - } - } - [CompilerGenerated] - remove - { - EventHandler eventHandler = this.m_ShopOpened; - int num = -281406326; - while (true) - { - int num2 = num; - int num3 = -281406328; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -281406326; - break; - case 1: - return; - case 2: - { - EventHandler eventHandler2 = eventHandler; - EventHandler value2 = (EventHandler)_200B_200F_200D_200E_200E_206D_200C_206C_206F_200B_202C_202C_206F_202C_202B_206D_206A_202B_206C_202C_206E_200C_200D_202E_200D_202A_202A_200B_202C_202B_206B_200F_206B_200E_206A_206C_200F_200D_200F_206D_202E((Delegate)eventHandler2, (Delegate)value); - eventHandler = Interlocked.CompareExchange(ref this.m_ShopOpened, value2, eventHandler2); - num = (((object)eventHandler != eventHandler2) ? (-281406326) : (-281406327)); - break; - } - } - } - } - } + public event EventHandler? ShopOpened; - public event EventHandler? ShopClosed - { - [CompilerGenerated] - add - { - EventHandler eventHandler = this.m_ShopClosed; - int num = 1747740711; - while (true) - { - int num2 = num; - int num3 = 1747740710; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 1747740711; - break; - case 0: - return; - case 1: - { - EventHandler eventHandler2 = eventHandler; - EventHandler value2 = (EventHandler)_202E_202C_206F_200C_202C_206D_202A_206E_206B_200B_200F_202B_200F_206C_200F_200F_202E_200C_200E_206D_206B_202B_206A_202A_202D_202A_200D_200E_206F_206C_200D_202C_200C_206D_200B_206E_206C_206E_202E_206B_202E((Delegate)eventHandler2, (Delegate)value); - eventHandler = Interlocked.CompareExchange(ref this.m_ShopClosed, value2, eventHandler2); - num = (((object)eventHandler != eventHandler2) ? 1747740711 : 1747740710); - break; - } - } - } - } - [CompilerGenerated] - remove - { - EventHandler eventHandler = this.m_ShopClosed; - int num = 34666078; - while (true) - { - int num2 = num; - int num3 = 34666076; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 34666078; - break; - case 1: - return; - case 2: - { - EventHandler eventHandler2 = eventHandler; - EventHandler value2 = (EventHandler)_200B_200F_200D_200E_200E_206D_200C_206C_206F_200B_202C_202C_206F_202C_202B_206D_206A_202B_206C_202C_206E_200C_200D_202E_200D_202A_202A_200B_202C_202B_206B_200F_206B_200E_206A_206C_200F_200D_200F_206D_202E((Delegate)eventHandler2, (Delegate)value); - eventHandler = Interlocked.CompareExchange(ref this.m_ShopClosed, value2, eventHandler2); - num = (((object)eventHandler != eventHandler2) ? 34666078 : 34666077); - break; - } - } - } - } - } + public event EventHandler? ShopClosed; - [MethodImpl(MethodImplOptions.NoInlining)] public GrandCompanyShop(IPluginLog pluginLog, IGameGui gameGui, IAddonLifecycle addonLifecycle, IDataManager dataManager) { - _206D_202D_200F_202D_200D_206A_200F_206C_202D_202C_200F_200D_206D_206E_206B_200D_202A_200D_206E_206A_206C_200D_206F_200F_206D_200C_200D_200F_206E_200F_206A_200C_206B_206B_202B_202E_206D_200B_200B_206A_202E((object)pluginLog, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1267946466)); - _206D_202D_200F_202D_200D_206A_200F_206C_202D_202C_200F_200D_206D_206E_206B_200D_202A_200D_206E_206A_206C_200D_206F_200F_206D_200C_200D_200F_206E_200F_206A_200C_206B_206B_202B_202E_206D_200B_200B_206A_202E((object)gameGui, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-89144403)); - _206D_202D_200F_202D_200D_206A_200F_206C_202D_202C_200F_200D_206D_206E_206B_200D_202A_200D_206E_206A_206C_200D_206F_200F_206D_200C_200D_200F_206E_200F_206A_200C_206B_206B_202B_202E_206D_200B_200B_206A_202E((object)addonLifecycle, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1756451262)); - _206D_202D_200F_202D_200D_206A_200F_206C_202D_202C_200F_200D_206D_206E_206B_200D_202A_200D_206E_206A_206C_200D_206F_200F_206D_200C_200D_200F_206E_200F_206A_200C_206B_206B_202B_202E_206D_200B_200B_206A_202E((object)dataManager, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(167281534)); + ArgumentNullException.ThrowIfNull(pluginLog, "pluginLog"); + ArgumentNullException.ThrowIfNull(gameGui, "gameGui"); + ArgumentNullException.ThrowIfNull(addonLifecycle, "addonLifecycle"); + ArgumentNullException.ThrowIfNull(dataManager, "dataManager"); _pluginLog = pluginLog; _gameGui = gameGui; _addonLifecycle = addonLifecycle; _itemSheet = dataManager.GetExcelSheet<Item>(); - _202A_206B_206F_206E_202E_206A_202B_202C_200E_202A_200C_200C_200B_200E_206B_202E_202E_202C_200B_202D_206F_206A_206C_206F_200B_206A_206A_202B_206F_206B_200B_206A_200C_206B_202E_206E_200F_202E_200E_200D_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1178205757), (IAddonLifecycle.AddonEventDelegate)OnShopPostSetup); - _202A_206B_206F_206E_202E_206A_202B_202C_200E_202A_200C_200C_200B_200E_206B_202E_202E_202C_200B_202D_206F_206A_206C_206F_200B_206A_206A_202B_206F_206B_200B_206A_200C_206B_202E_206E_200F_202E_200E_200D_202E(_addonLifecycle, AddonEvent.PreFinalize, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1848412387), (IAddonLifecycle.AddonEventDelegate)OnShopPreFinalize); - _202A_206B_206F_206E_202E_206A_202B_202C_200E_202A_200C_200C_200B_200E_206B_202E_202E_202C_200B_202D_206F_206A_206C_206F_200B_206A_206A_202B_206F_206B_200B_206A_200C_206B_202E_206E_200F_202E_200E_200D_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-502173951), (IAddonLifecycle.AddonEventDelegate)OnSelectYesNoPostSetup); - _202A_206B_206F_206E_202E_206A_202B_202C_200E_202A_200C_200C_200B_200E_206B_202E_202E_202C_200B_202D_206F_206A_206C_206F_200B_206A_206A_202B_206F_206B_200B_206A_200C_206B_202E_206E_200F_202E_200E_200D_202E(_addonLifecycle, AddonEvent.PostUpdate, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(423301839), (IAddonLifecycle.AddonEventDelegate)OnSelectYesNoPostUpdate); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "GrandCompanyExchange", OnShopPostSetup); + _addonLifecycle.RegisterListener(AddonEvent.PreFinalize, "GrandCompanyExchange", OnShopPreFinalize); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "SelectYesno", OnSelectYesNoPostSetup); + _addonLifecycle.RegisterListener(AddonEvent.PostUpdate, "SelectYesno", OnSelectYesNoPostUpdate); } - [MethodImpl(MethodImplOptions.NoInlining)] private void OnShopPostSetup(AddonEvent type, AddonArgs args) { IsOpen = true; _navigationStep = 0; - _200D_206E_200E_202C_202B_202B_206B_206D_206F_202E_200E_206D_202C_206C_200D_200C_206F_206C_206F_202C_206C_200E_202D_202D_202A_200B_202E_206C_206D_200F_206A_200C_202A_202D_202A_206B_200B_200E_200C_202C_202E(_pluginLog, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1066347615), Array.Empty<object>()); + _pluginLog.Debug("[GCShop] Shop opened"); this.ShopOpened?.Invoke(this, EventArgs.Empty); } - [MethodImpl(MethodImplOptions.NoInlining)] private void OnShopPreFinalize(AddonEvent type, AddonArgs args) { uint? num = _pendingPurchase?.ItemId; IsOpen = false; ResetPurchaseState(); - _200D_206E_200E_202C_202B_202B_206B_206D_206F_202E_200E_206D_202C_206C_200D_200C_206F_206C_206F_202C_206C_200E_202D_202D_202A_200B_202E_206C_206D_200F_206A_200C_202A_202D_202A_206B_200B_200E_200C_202C_202E(_pluginLog, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(666829825), Array.Empty<object>()); - EventHandler? eventHandler = this.ShopClosed; - if (eventHandler == null) + _pluginLog.Debug("[GCShop] Shop closed"); + this.ShopClosed?.Invoke(this, EventArgs.Empty); + if (num.HasValue) { - goto IL_00d9; + this.PurchaseCompleted?.Invoke(this, new PurchaseCompletedEventArgs(num.Value, success: false)); } - eventHandler(this, EventArgs.Empty); - int num2 = -1294964905; - goto IL_0075; - IL_00d9: - num2 = ((!num.HasValue) ? (-1294964908) : (-1294964906)); - goto IL_0075; - IL_0075: - while (true) - { - int num3 = num2; - int num4 = -1294964907; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 0: - num2 = -1294964905; - continue; - case 3: - { - EventHandler<PurchaseCompletedEventArgs>? eventHandler2 = this.PurchaseCompleted; - if (eventHandler2 == null) - { - return; - } - eventHandler2(this, new PurchaseCompletedEventArgs(num.Value, success: false)); - num2 = -1294964908; - continue; - } - case 2: - break; - case 1: - return; - } - break; - } - goto IL_00d9; } private void OnSelectYesNoPostSetup(AddonEvent type, AddonArgs args) { - int num = ((_pendingPurchase == null) ? 1914486152 : 1914486153); - while (true) + if (_pendingPurchase != null && IsAwaitingConfirmation) { - int num2 = num; - int num3 = 1914486154; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _yesNoArmed = true; - num = 1914486152; - break; - case 2: - return; - case 0: - num = 1914486153; - break; - case 3: - num = ((!IsAwaitingConfirmation) ? 1914486152 : 1914486155); - break; - } + _yesNoArmed = true; } } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void OnSelectYesNoPostUpdate(AddonEvent type, AddonArgs args) { - int num = ((_pendingPurchase == null) ? (-1083928703) : (-1083928698)); - AtkUnitBase* address = default(AtkUnitBase*); - while (true) + if (_pendingPurchase != null && IsAwaitingConfirmation && _yesNoArmed) { - int num2 = num; - int num3 = -1083928701; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + AtkUnitBase* address = (AtkUnitBase*)args.Addon.Address; + if (LAddon.IsAddonReady(address)) { - case 0: - address = (AtkUnitBase*)_206F_202E_200B_202E_206B_206B_206B_202A_200C_206C_202D_200C_202E_200C_202D_202E_202E_206B_206B_206D_206E_202D_206F_206B_200D_200C_206F_202D_206B_202E_206E_202E_202C_200F_202E_206A_202A_202A_200F_206D_202E(args).Address; - num = (LAddon.IsAddonReady(address) ? (-1083928704) : (-1083928699)); - break; - case 3: _yesNoArmed = false; - _202B_202B_202A_206C_206D_206F_200F_202B_202B_200B_200D_200B_200F_202A_202D_200B_202C_202C_200D_202D_202D_206F_200B_206D_202C_200D_202B_206E_202D_202C_202C_202A_200F_200C_200B_206C_200E_202E_202A_206A_202E(_pluginLog, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1268211520), Array.Empty<object>()); + _pluginLog.Information("[GCShop] Confirming purchase dialog"); AddonCallback.ClickYes(address); address->Close(fireCallback: true); IsAwaitingConfirmation = false; - _lastActionMs = _202E_202B_202B_206F_200E_200E_202E_206D_200E_206F_200F_206E_200B_206D_206A_206E_206D_202B_200C_200F_206C_202C_202E_202D_206A_200E_202A_200C_200C_202D_202C_202A_206E_206B_200D_206B_202E_206D_202E_202E(); - return; - case 2: - return; - case 6: - return; - case 4: - num = -1083928698; - break; - case 5: - num = ((!IsAwaitingConfirmation) ? (-1083928703) : (-1083928702)); - break; - case 1: - num = (_yesNoArmed ? (-1083928701) : (-1083928703)); - break; + _lastActionMs = Environment.TickCount64; } } } - [MethodImpl(MethodImplOptions.NoInlining)] public bool StartPurchase(uint itemId, int rankTabIndex, int categoryTabIndex, int quantity) { - int num = ((!IsOpen) ? 1313706852 : 1313706855); - while (true) + if (!IsOpen || _pendingPurchase != null) { - int num2 = num; - int num3 = 1313706853; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1313706855; - break; - case 1: - return false; - case 3: - { - _pendingPurchase = new GrandCompanyPurchaseRequest - { - ItemId = itemId, - RankTabIndex = rankTabIndex, - CategoryTabIndex = categoryTabIndex, - DesiredQuantity = quantity - }; - _navigationStep = 0; - _lastActionMs = 0L; - _itemCountBeforePurchase = -1; - IPluginLog pluginLog = _pluginLog; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(37, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(243895174)); - defaultInterpolatedStringHandler.AppendFormatted(quantity); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1293415020)); - defaultInterpolatedStringHandler.AppendFormatted(itemId); - _202B_202B_202A_206C_206D_206F_200F_202B_202B_200B_200D_200B_200F_202A_202D_200B_202C_202C_200D_202D_202D_206F_200B_206D_202C_200D_202B_206E_202D_202C_202C_202A_200F_200C_200B_206C_200E_202E_202A_206A_202E(pluginLog, defaultInterpolatedStringHandler.ToStringAndClear(), Array.Empty<object>()); - return true; - } - case 2: - num = ((_pendingPurchase == null) ? 1313706854 : 1313706852); - break; - } + return false; } + _pendingPurchase = new GrandCompanyPurchaseRequest + { + ItemId = itemId, + RankTabIndex = rankTabIndex, + CategoryTabIndex = categoryTabIndex, + DesiredQuantity = quantity + }; + _navigationStep = 0; + _lastActionMs = 0L; + _itemCountBeforePurchase = -1; + _pluginLog.Information($"[GCShop] Starting purchase of {quantity}x item {itemId}"); + return true; } public void CancelPurchase() { uint? num = _pendingPurchase?.ItemId; ResetPurchaseState(); - int num2 = ((!num.HasValue) ? (-828309669) : (-828309670)); - while (true) + if (num.HasValue) { - int num3 = num2; - int num4 = -828309669; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - num2 = -828309670; - break; - case 0: - return; - case 1: - { - EventHandler<PurchaseCompletedEventArgs>? eventHandler = this.PurchaseCompleted; - if (eventHandler == null) - { - return; - } - eventHandler(this, new PurchaseCompletedEventArgs(num.Value, success: false)); - num2 = -828309669; - break; - } - } + this.PurchaseCompleted?.Invoke(this, new PurchaseCompletedEventArgs(num.Value, success: false)); } } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe bool ProcessPurchase() { - int num = ((_pendingPurchase == null) ? 636680118 : 636680125); - long num11 = default(long); - int num10 = default(int); - int num15 = default(int); - int maxHoldableQuantity = default(int); - int inventoryItemCount = default(int); - InventoryManager* ptr2 = default(InventoryManager*); - AtkUnitBase* addonPtr = default(AtkUnitBase*); - InventoryManager* ptr = default(InventoryManager*); - GrandCompanyItem grandCompanyItem = default(GrandCompanyItem); - int num12 = default(int); - int num9 = default(int); - while (true) + if (_pendingPurchase == null || !IsOpen) { - int num2 = num; - int num3 = 636680111; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num8; - int num7; - int navigationStep2; - int num16; - int num17; - int navigationStep3; - int num18; - int num19; - switch (num5 - (num6 + num6)) + return false; + } + InventoryManager* ptr = InventoryManager.Instance(); + if (ptr != null && _navigationStep == 0 && _itemCountBeforePurchase == -1) + { + int inventoryItemCount = ptr->GetInventoryItemCount(_pendingPurchase.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0); + if (inventoryItemCount >= _pendingPurchase.DesiredQuantity) { - default: - continue; - case 13: - num11 = _202E_202B_202B_206F_200E_200E_202E_206D_200E_206F_200F_206E_200B_206D_206A_206E_206D_202B_200C_200F_206C_202C_202E_202D_206A_200E_202A_200C_200C_202D_202C_202A_206E_206B_200D_206B_202E_206D_202E_202E() - _lastActionMs; - num = ((num11 >= 100) ? 636680076 : 636680104); - continue; - case 1: - { - IPluginLog pluginLog3 = _pluginLog; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(61, 4); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-2005174402)); - defaultInterpolatedStringHandler3.AppendFormatted(_pendingPurchase.ItemId); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-2111689734)); - defaultInterpolatedStringHandler3.AppendFormatted(num10); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-356398602)); - defaultInterpolatedStringHandler3.AppendFormatted(num15); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-967737798)); - defaultInterpolatedStringHandler3.AppendFormatted(maxHoldableQuantity); - _200E_202D_200D_200E_202A_200F_202D_206A_206A_200E_202B_206F_202C_200F_206F_206D_200C_202D_200B_206F_206E_200F_200C_206B_200D_206C_206B_200F_200F_206C_200C_202B_206D_200F_202A_202D_200D_206C_202E_206C_202E(pluginLog3, defaultInterpolatedStringHandler3.ToStringAndClear(), Array.Empty<object>()); - CancelPurchase(); - num = 636680108; - continue; - } - case 8: - num = 636680108; - continue; - case 35: - num = ((num11 < 3000) ? 636680117 : 636680114); - continue; - case 18: - num = (IsOpen ? 636680123 : 636680118); - continue; - case 30: - num = ((_navigationStep != 0) ? 636680074 : 636680079); - continue; - case 2: - switch (_navigationStep) - { - case 2: - goto IL_048f; - case 0: - goto IL_0509; - case 1: - goto IL_0597; - case 3: - goto end_IL_003b; - } - num = 636680103; - continue; - case 29: - { - IPluginLog pluginLog5 = _pluginLog; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler5 = new DefaultInterpolatedStringHandler(66, 1); - defaultInterpolatedStringHandler5.AppendLiteral(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-47133297)); - defaultInterpolatedStringHandler5.AppendFormatted(3000); - defaultInterpolatedStringHandler5.AppendLiteral(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1573770018)); - _200E_202D_200D_200E_202A_200F_202D_206A_206A_200E_202B_206F_202C_200F_206F_206D_200C_202D_200B_206F_206E_200F_200C_206B_200D_206C_206B_200F_200F_206C_200C_202B_206D_200F_202A_202D_200D_206C_202E_206C_202E(pluginLog5, defaultInterpolatedStringHandler5.ToStringAndClear(), Array.Empty<object>()); - CancelPurchase(); - return false; - } - case 9: - { - IPluginLog pluginLog4 = _pluginLog; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler4 = new DefaultInterpolatedStringHandler(32, 1); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-701323076)); - defaultInterpolatedStringHandler4.AppendFormatted(_pendingPurchase.ItemId); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-229047175)); - _200E_202D_200D_200E_202A_200F_202D_206A_206A_200E_202B_206F_202C_200F_206F_206D_200C_202D_200B_206F_206E_200F_200C_206B_200D_206C_206B_200F_200F_206C_200C_202B_206D_200F_202A_202D_200D_206C_202E_206C_202E(pluginLog4, defaultInterpolatedStringHandler4.ToStringAndClear(), Array.Empty<object>()); - CancelPurchase(); - num = 636680108; - continue; - } - case 14: - inventoryItemCount = ptr2->GetInventoryItemCount(_pendingPurchase.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0); - num = ((inventoryItemCount < _pendingPurchase.DesiredQuantity) ? 636680074 : 636680105); - continue; - case 20: - ptr2 = InventoryManager.Instance(); - num = ((ptr2 == null) ? 636680074 : 636680113); - continue; - case 26: - num = ((_navigationStep != 2) ? 636680127 : 636680106); - continue; - case 7: - return false; - case 6: - { - IPluginLog pluginLog = _pluginLog; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(37, 3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(848483749)); - defaultInterpolatedStringHandler.AppendFormatted(inventoryItemCount); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(245261652)); - defaultInterpolatedStringHandler.AppendFormatted(_pendingPurchase.ItemId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1873420954)); - defaultInterpolatedStringHandler.AppendFormatted(_pendingPurchase.DesiredQuantity); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-2066276253)); - _202B_202B_202A_206C_206D_206F_200F_202B_202B_200B_200D_200B_200F_202A_202D_200B_202C_202C_200D_202D_202D_206F_200B_206D_202C_200D_202B_206E_202D_202C_202C_202A_200F_200C_200B_206C_200E_202E_202A_206A_202E(pluginLog, defaultInterpolatedStringHandler.ToStringAndClear(), Array.Empty<object>()); + _pluginLog.Information($"[GCShop] Already have {inventoryItemCount}x item {_pendingPurchase.ItemId} (need {_pendingPurchase.DesiredQuantity})"); uint itemId = _pendingPurchase.ItemId; ResetPurchaseState(); - EventHandler<PurchaseCompletedEventArgs>? eventHandler = this.PurchaseCompleted; - if (eventHandler == null) - { - goto case 27; - } - eventHandler(this, new PurchaseCompletedEventArgs(itemId, success: true)); - num = 636680116; - continue; - } - case 32: - num = ((_itemCountBeforePurchase != -1) ? 636680074 : 636680097); - continue; - case 19: - goto IL_048f; - case 37: - num = ((!_gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1848412387), out addonPtr)) ? 636680112 : 636680101); - continue; - case 4: - return false; - case 11: - num8 = 0; - goto IL_07ab; - case 22: - goto IL_0509; - case 28: - ptr = InventoryManager.Instance(); - num = ((ptr != null) ? 636680096 : 636680122); - continue; - case 34: - num = 636680125; - continue; - case 33: - goto IL_0597; - case 17: - num = ((!_awaitingAddonReady) ? 636680109 : 636680098); - continue; - case 36: - { - IPluginLog pluginLog2 = _pluginLog; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(61, 4); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(979872393)); - defaultInterpolatedStringHandler2.AppendFormatted(grandCompanyItem.ItemId); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(2094782171)); - defaultInterpolatedStringHandler2.AppendFormatted(grandCompanyItem.Index); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(889356428)); - defaultInterpolatedStringHandler2.AppendFormatted(num12); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-326512158)); - defaultInterpolatedStringHandler2.AppendFormatted(num9); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-361921312)); - _202B_202B_202A_206C_206D_206F_200F_202B_202B_200B_200D_200B_200F_202A_202D_200B_202C_202C_200D_202D_202D_206F_200B_206D_202C_200D_202B_206E_202D_202C_202C_202A_200F_200C_200B_206C_200E_202E_202A_206A_202E(pluginLog2, defaultInterpolatedStringHandler2.ToStringAndClear(), Array.Empty<object>()); - FirePurchaseCallback(addonPtr, grandCompanyItem, num12); - IsAwaitingConfirmation = true; - int navigationStep = _navigationStep; - num3 = 1; - num4 = navigationStep; - int num13 = num4 ^ num3; - int num14 = num4 & num3; - _navigationStep = num13 + (num14 + num14); - _lastActionMs = _202E_202B_202B_206F_200E_200E_202E_206D_200E_206F_200F_206E_200B_206D_206A_206E_206D_202B_200C_200F_206C_202C_202E_202D_206A_200E_202A_200C_200C_202D_202C_202A_206E_206B_200D_206B_202E_206D_202E_202E(); - num = 636680108; - continue; - } - case 21: - num7 = 0; - goto IL_0814; - case 25: - return false; - case 5: - num = ((GetAtkValueInt(addonPtr, 1) > 0) ? 636680127 : 636680107); - continue; - case 12: - _pendingPurchase.InitialCount = num9; - num = 636680119; - continue; - case 31: - return false; - case 27: + this.PurchaseCompleted?.Invoke(this, new PurchaseCompletedEventArgs(itemId, success: true)); return true; - case 24: - _itemCountBeforePurchase = num9; - num10 = _pendingPurchase.DesiredQuantity - (num9 - _pendingPurchase.InitialCount); - num = ((grandCompanyItem.SealCost != 0) ? 636680120 : 636680100); - continue; - case 23: - num8 = GetCompanySeals() / (int)grandCompanyItem.SealCost; - goto IL_07ab; - case 15: - num7 = ptr->GetInventoryItemCount(_pendingPurchase.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0); - goto IL_0814; - case 3: + } + } + if (!_gameGui.TryGetAddonByName<AtkUnitBase>("GrandCompanyExchange", out var addonPtr) || !LAddon.IsAddonReady(addonPtr)) + { + return false; + } + if (_awaitingAddonReady) + { + long num = Environment.TickCount64 - _lastActionMs; + if (num < 100) + { return false; - case 10: - num = (LAddon.IsAddonReady(addonPtr) ? 636680126 : 636680112); - continue; - case 16: - _awaitingAddonReady = false; - num = 636680109; - continue; - case 0: - break; - IL_048f: - grandCompanyItem = FindItemInShop(addonPtr, _pendingPurchase.ItemId); - num = ((grandCompanyItem == null) ? 636680102 : 636680115); - continue; - IL_0814: - num9 = num7; - num = ((_pendingPurchase.InitialCount != -1) ? 636680119 : 636680099); - continue; - IL_07ab: - num15 = num8; - maxHoldableQuantity = InventoryHelper.GetMaxHoldableQuantity(_pendingPurchase.ItemId, _itemSheet); - num12 = _200D_206A_206D_200D_206A_200C_206A_200C_206A_200B_206B_206C_200B_206D_202C_206F_206D_202A_206A_202A_206C_200B_200C_206A_202E_200B_206A_200E_200C_206B_206B_206E_200D_200D_202E_206A_200F_202B_200E_202A_202E(_200D_206A_206D_200D_206A_200C_206A_200C_206A_200B_206B_206C_200B_206D_202C_206F_206D_202A_206A_202A_206C_200B_200C_206A_202E_200B_206A_200E_200C_206B_206B_206E_200D_200D_202E_206A_200F_202B_200E_202A_202E(num10, 99), _200D_206A_206D_200D_206A_200C_206A_200C_206A_200B_206B_206C_200B_206D_202C_206F_206D_202A_206A_202A_206C_200B_200C_206A_202E_200B_206A_200E_200C_206B_206B_206E_200D_200D_202E_206A_200F_202B_200E_202A_202E(num15, maxHoldableQuantity)); - num = ((num12 > 0) ? 636680075 : 636680110); - continue; - IL_0597: - AddonCallback.Fire(addonPtr, 2, _pendingPurchase.CategoryTabIndex); - navigationStep2 = _navigationStep; - num3 = 1; - num4 = navigationStep2; - num16 = num4 ^ num3; - num17 = num4 & num3; - _navigationStep = num16 + (num17 + num17); - _lastActionMs = _202E_202B_202B_206F_200E_200E_202E_206D_200E_206F_200F_206E_200B_206D_206A_206E_206D_202B_200C_200F_206C_202C_202E_202D_206A_200E_202A_200C_200C_202D_202C_202A_206E_206B_200D_206B_202E_206D_202E_202E(); - _awaitingAddonReady = true; - num = 636680108; - continue; - IL_0509: - AddonCallback.Fire(addonPtr, 1, _pendingPurchase.RankTabIndex); - navigationStep3 = _navigationStep; - num3 = 1; - num4 = navigationStep3; - num18 = num4 ^ num3; - num19 = num4 & num3; - _navigationStep = num18 + (num19 + num19); - _lastActionMs = _202E_202B_202B_206F_200E_200E_202E_206D_200E_206F_200F_206E_200B_206D_206A_206E_206D_202B_200C_200F_206C_202C_202E_202D_206A_200E_202A_200C_200C_202D_202C_202A_206E_206B_200D_206B_202E_206D_202E_202E(); - _awaitingAddonReady = true; - num = 636680108; - continue; - end_IL_003b: - break; + } + if (num >= 3000) + { + _pluginLog.Warning($"[GCShop] Addon did not become ready within {3000}ms, cancelling purchase"); + CancelPurchase(); + return false; + } + if (_navigationStep == 2 && GetAtkValueInt(addonPtr, 1) <= 0) + { + return false; + } + _awaitingAddonReady = false; + } + switch (_navigationStep) + { + case 0: + AddonCallback.Fire(addonPtr, 1, _pendingPurchase.RankTabIndex); + _navigationStep++; + _lastActionMs = Environment.TickCount64; + _awaitingAddonReady = true; + break; + case 1: + AddonCallback.Fire(addonPtr, 2, _pendingPurchase.CategoryTabIndex); + _navigationStep++; + _lastActionMs = Environment.TickCount64; + _awaitingAddonReady = true; + break; + case 2: + { + GrandCompanyItem grandCompanyItem = FindItemInShop(addonPtr, _pendingPurchase.ItemId); + if (grandCompanyItem != null) + { + InventoryManager* ptr2 = InventoryManager.Instance(); + int num2 = ((ptr2 != null) ? ptr2->GetInventoryItemCount(_pendingPurchase.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0) : 0); + if (_pendingPurchase.InitialCount == -1) + { + _pendingPurchase.InitialCount = num2; + } + _itemCountBeforePurchase = num2; + int num3 = _pendingPurchase.DesiredQuantity - (num2 - _pendingPurchase.InitialCount); + int num4 = ((grandCompanyItem.SealCost != 0) ? (GetCompanySeals() / (int)grandCompanyItem.SealCost) : 0); + int maxHoldableQuantity = InventoryHelper.GetMaxHoldableQuantity(_pendingPurchase.ItemId, _itemSheet); + int num5 = Math.Min(Math.Min(num3, 99), Math.Min(num4, maxHoldableQuantity)); + if (num5 <= 0) + { + _pluginLog.Warning($"[GCShop] Cannot buy item {_pendingPurchase.ItemId}: remaining={num3}, affordable={num4}, holdable={maxHoldableQuantity}"); + CancelPurchase(); + } + else + { + _pluginLog.Information($"[GCShop] Found item {grandCompanyItem.ItemId} at index {grandCompanyItem.Index}, purchasing {num5}x (count before: {num2})"); + FirePurchaseCallback(addonPtr, grandCompanyItem, num5); + IsAwaitingConfirmation = true; + _navigationStep++; + _lastActionMs = Environment.TickCount64; + } + } + else + { + _pluginLog.Warning($"[GCShop] Item {_pendingPurchase.ItemId} not found in shop"); + CancelPurchase(); } break; } - return WaitForPurchaseCompletion(); + case 3: + return WaitForPurchaseCompletion(); + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe void CloseShop() { - int num = (IsOpen ? (-576018868) : (-576018870)); - AtkUnitBase* addonPtr = default(AtkUnitBase*); - while (true) + if (IsOpen && _gameGui.TryGetAddonByName<AtkUnitBase>("GrandCompanyExchange", out var addonPtr)) { - int num2 = num; - int num3 = -576018872; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - addonPtr->Close(fireCallback: true); - num = -576018869; - break; - case 3: - return; - case 2: - return; - case 0: - num = -576018870; - break; - case 4: - num = ((!_gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1178205757), out addonPtr)) ? (-576018869) : (-576018871)); - break; - } + addonPtr->Close(fireCallback: true); } } @@ -812,283 +285,99 @@ public sealed class GrandCompanyShop : IDisposable { InventoryManager* ptr = InventoryManager.Instance(); PlayerState* ptr2 = PlayerState.Instance(); - int num = ((ptr == null) ? 1253116757 : 1253116759); - while (true) + if (ptr == null || ptr2 == null) { - int num2 = num; - int num3 = 1253116758; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return 0; - case 1: - num = ((ptr2 != null) ? 1253116758 : 1253116757); - break; - case 2: - num = 1253116759; - break; - case 0: - return (int)ptr->GetCompanySeals(ptr2->GrandCompany); - } + return 0; } + return (int)ptr->GetCompanySeals(ptr2->GrandCompany); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe ReadOnlyCollection<GrandCompanyItem> GetAvailableItems() { - int num = ((!IsOpen) ? 1134948284 : 1134948272); - int atkValueInt2 = default(int); - AtkUnitBase* addonPtr = default(AtkUnitBase*); - List<GrandCompanyItem> list2 = default(List<GrandCompanyItem>); - int num6 = default(int); - int atkValueInt = default(int); - while (true) + if (!IsOpen || !_gameGui.TryGetAddonByName<AtkUnitBase>("GrandCompanyExchange", out var addonPtr) || !LAddon.IsAddonReady(addonPtr)) { - int num2 = num; - int num3 = 1134948277; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return EmptyItems; + } + int atkValueInt = GetAtkValueInt(addonPtr, 1); + List<GrandCompanyItem> list = new List<GrandCompanyItem>(atkValueInt); + for (int i = 0; i < atkValueInt; i++) + { + int atkValueInt2 = GetAtkValueInt(addonPtr, 317 + i); + if (atkValueInt2 > 0) { - case 7: - atkValueInt2 = GetAtkValueInt(addonPtr, 1); - list2 = new List<GrandCompanyItem>(atkValueInt2); - num6 = 0; - num = 1134948277; - break; - case 2: - num = (LAddon.IsAddonReady(addonPtr) ? 1134948274 : 1134948284); - break; - case 4: - return list2.AsReadOnly(); - case 3: - { - AtkUnitBase* addon = addonPtr; - num3 = num6; - num4 = 317; - atkValueInt = GetAtkValueInt(addon, (num4 | num3) + (num4 & num3)); - num = ((atkValueInt <= 0) ? 1134948276 : 1134948275); - break; - } - case 9: - return EmptyItems; - case 8: - num = 1134948272; - break; - case 0: - num = ((num6 < atkValueInt2) ? 1134948278 : 1134948273); - break; - case 6: - { - List<GrandCompanyItem> list = list2; - GrandCompanyItem obj = new GrandCompanyItem + list.Add(new GrandCompanyItem { - Index = num6, - ItemId = (uint)atkValueInt - }; - AtkUnitBase* addon2 = addonPtr; - num3 = num6; - num4 = 167; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - obj.IconId = (uint)GetAtkValueInt(addon2, num7 + (num8 + num8)); - AtkUnitBase* addon3 = addonPtr; - num3 = num6; - num4 = 67; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - obj.SealCost = (uint)GetAtkValueInt(addon3, num9 + (num10 + num10)); - list.Add(obj); - num = 1134948276; - break; - } - case 5: - num = ((!_gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1178205757), out addonPtr)) ? 1134948284 : 1134948279); - break; - case 1: - { - int num5 = num6; - num3 = 1; - num4 = num5; - num6 = (num4 | num3) + (num4 & num3); - num = 1134948277; - break; - } + Index = i, + ItemId = (uint)atkValueInt2, + IconId = (uint)GetAtkValueInt(addonPtr, 167 + i), + SealCost = (uint)GetAtkValueInt(addonPtr, 67 + i) + }); } } + return list.AsReadOnly(); } private unsafe static GrandCompanyItem? FindItemInShop(AtkUnitBase* addon, uint targetItemId) { int atkValueInt = GetAtkValueInt(addon, 1); - int num = ((atkValueInt > 0) ? 1303324821 : 1303324817); - int num5 = default(int); - int atkValueInt2 = default(int); - while (true) + if (atkValueInt <= 0) { - int num2 = num; - int num3 = 1303324819; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return null; + } + for (int i = 0; i < atkValueInt; i++) + { + int atkValueInt2 = GetAtkValueInt(addon, 317 + i); + if (atkValueInt2 == (int)targetItemId) { - case 4: - return null; - case 2: - return null; - case 0: - num = 1303324817; - break; - case 1: - { - int num8 = num5; - num3 = 1; - num4 = num8; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - num5 = num9 + (num10 + num10); - num = 1303324816; - break; - } - case 3: - num = ((num5 < atkValueInt) ? 1303324822 : 1303324823); - break; - case 6: - num5 = 0; - num = 1303324816; - break; - case 7: - { - GrandCompanyItem obj = new GrandCompanyItem + return new GrandCompanyItem { - Index = num5, - ItemId = (uint)atkValueInt2 + Index = i, + ItemId = (uint)atkValueInt2, + IconId = (uint)GetAtkValueInt(addon, 167 + i), + SealCost = (uint)GetAtkValueInt(addon, 67 + i) }; - num3 = num5; - num4 = 167; - int num11 = num4 ^ num3; - int num12 = num4 & num3; - obj.IconId = (uint)GetAtkValueInt(addon, num11 + (num12 + num12)); - num3 = num5; - num4 = 67; - int num13 = num4 ^ num3; - int num14 = num4 & num3; - obj.SealCost = (uint)GetAtkValueInt(addon, num13 + (num14 + num14)); - return obj; - } - case 5: - { - num3 = num5; - num4 = 317; - int num6 = num4 ^ num3; - int num7 = num4 & num3; - atkValueInt2 = GetAtkValueInt(addon, num6 + (num7 + num7)); - num = ((atkValueInt2 != (int)targetItemId) ? 1303324818 : 1303324820); - break; - } } } + return null; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe bool WaitForPurchaseCompletion() { - long num = _202E_202B_202B_206F_200E_200E_202E_206D_200E_206F_200F_206E_200B_206D_206A_206E_206D_202B_200C_200F_206C_202C_202E_202D_206A_200E_202A_200C_200C_202D_202C_202A_206E_206B_200D_206B_202E_206D_202E_202E() - _lastActionMs; - int num2 = ((!IsAwaitingConfirmation) ? 1518393876 : 1518393882); - int num8 = default(int); - InventoryManager* ptr = default(InventoryManager*); - while (true) + long num = Environment.TickCount64 - _lastActionMs; + if (IsAwaitingConfirmation) { - int num3 = num2; - int num4 = 1518393887; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) + if (num >= 3000) { - case 2: - num2 = 1518393882; - break; - case 7: - return false; - case 8: - { - IPluginLog pluginLog3 = _pluginLog; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(33, 2); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(32368461)); - defaultInterpolatedStringHandler3.AppendFormatted(num8); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(640094798)); - defaultInterpolatedStringHandler3.AppendFormatted(_pendingPurchase.ItemId); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1848110280)); - _202B_202B_202A_206C_206D_206F_200F_202B_202B_200B_200D_200B_200F_202A_202D_200B_202C_202C_200D_202D_202D_206F_200B_206D_202C_200D_202B_206E_202D_202C_202C_202A_200F_200C_200B_206C_200E_202E_202A_206A_202E(pluginLog3, defaultInterpolatedStringHandler3.ToStringAndClear(), Array.Empty<object>()); - uint itemId = _pendingPurchase.ItemId; - int quantityPurchased = num8; - ResetPurchaseState(); - EventHandler<PurchaseCompletedEventArgs>? eventHandler = this.PurchaseCompleted; - if (eventHandler == null) - { - goto case 4; - } - eventHandler(this, new PurchaseCompletedEventArgs(itemId, success: true, quantityPurchased)); - num2 = 1518393883; - break; - } - case 3: - return false; - case 0: - _200E_202D_200D_200E_202A_200F_202D_206A_206A_200E_202B_206F_202C_200F_206F_206D_200C_202D_200B_206F_206E_200F_200C_206B_200D_206C_206B_200F_200F_206C_200C_202B_206D_200F_202A_202D_200D_206C_202E_206C_202E(_pluginLog, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(201100359), Array.Empty<object>()); + _pluginLog.Warning("[GCShop] Confirmation dialog was not handled in time, cancelling purchase"); CancelPurchase(); - num2 = 1518393880; - break; - case 4: - return true; - case 11: - ptr = InventoryManager.Instance(); - num2 = ((ptr == null) ? 1518393878 : 1518393886); - break; - case 10: - { - IPluginLog pluginLog = _pluginLog; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(65, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-504508394)); - defaultInterpolatedStringHandler.AppendFormatted(3000); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(222200661)); - _200E_202D_200D_200E_202A_200F_202D_206A_206A_200E_202B_206F_202C_200F_206F_206D_200C_202D_200B_206F_206E_200F_200C_206B_200D_206C_206B_200F_200F_206C_200C_202B_206D_200F_202A_202D_200D_206C_202E_206C_202E(pluginLog, defaultInterpolatedStringHandler.ToStringAndClear(), Array.Empty<object>()); - CancelPurchase(); - num2 = 1518393884; - break; - } - case 5: - num2 = ((num < 3000) ? 1518393880 : 1518393887); - break; - case 9: - num2 = ((num < 3000) ? 1518393884 : 1518393877); - break; - case 1: - num2 = ((ptr->GetInventoryItemCount(_pendingPurchase.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0) <= _itemCountBeforePurchase) ? 1518393878 : 1518393875); - break; - case 6: - { - IPluginLog pluginLog2 = _pluginLog; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(48, 2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(2052935036)); - defaultInterpolatedStringHandler2.AppendFormatted(num8); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1145280286)); - defaultInterpolatedStringHandler2.AppendFormatted(_pendingPurchase.DesiredQuantity); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-413392469)); - _202B_202B_202A_206C_206D_206F_200F_202B_202B_200B_200D_200B_200F_202A_202D_200B_202C_202C_200D_202D_202D_206F_200B_206D_202C_200D_202B_206E_202D_202C_202C_202A_200F_200C_200B_206C_200E_202E_202A_206A_202E(pluginLog2, defaultInterpolatedStringHandler2.ToStringAndClear(), Array.Empty<object>()); - _navigationStep = 2; - _lastActionMs = _202E_202B_202B_206F_200E_200E_202E_206D_200E_206F_200F_206E_200B_206D_206A_206E_206D_202B_200C_200F_206C_202C_202E_202D_206A_200E_202A_200C_200C_202D_202C_202A_206E_206B_200D_206B_202E_206D_202E_202E(); - _awaitingAddonReady = true; - return false; - } - case 12: - num8 = ptr->GetInventoryItemCount(_pendingPurchase.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0) - _pendingPurchase.InitialCount; - num2 = ((num8 < _pendingPurchase.DesiredQuantity) ? 1518393881 : 1518393879); - break; } + return false; } + InventoryManager* ptr = InventoryManager.Instance(); + if (ptr != null && ptr->GetInventoryItemCount(_pendingPurchase.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0) > _itemCountBeforePurchase) + { + int num2 = ptr->GetInventoryItemCount(_pendingPurchase.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0) - _pendingPurchase.InitialCount; + if (num2 >= _pendingPurchase.DesiredQuantity) + { + _pluginLog.Information($"[GCShop] Purchase of {num2}x {_pendingPurchase.ItemId} completed"); + uint itemId = _pendingPurchase.ItemId; + int quantityPurchased = num2; + ResetPurchaseState(); + this.PurchaseCompleted?.Invoke(this, new PurchaseCompletedEventArgs(itemId, success: true, quantityPurchased)); + return true; + } + _pluginLog.Information($"[GCShop] Batch complete ({num2}/{_pendingPurchase.DesiredQuantity}), starting next batch"); + _navigationStep = 2; + _lastActionMs = Environment.TickCount64; + _awaitingAddonReady = true; + return false; + } + if (num >= 3000) + { + _pluginLog.Warning($"[GCShop] Item count did not increase within {3000}ms after confirmation"); + CancelPurchase(); + } + return false; } private void ResetPurchaseState() @@ -1104,172 +393,48 @@ public sealed class GrandCompanyShop : IDisposable private unsafe void FirePurchaseCallback(AtkUnitBase* addon, GrandCompanyItem item, int quantity) { AtkValue* ptr = stackalloc AtkValue[9]; - ptr->Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Int; + ptr->Type = AtkValueType.Int; ptr->Int = 0; - ptr[1].Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Int; + ptr[1].Type = AtkValueType.Int; ptr[1].Int = item.Index; - ptr[2].Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Int; + ptr[2].Type = AtkValueType.Int; ptr[2].Int = quantity; - ptr[3].Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Int; + ptr[3].Type = AtkValueType.Int; ptr[3].Int = 0; - ptr[4].Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Int; + ptr[4].Type = AtkValueType.Int; ptr[4].Int = 0; - ptr[5].Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Int; + ptr[5].Type = AtkValueType.Int; ptr[5].Int = 0; - ptr[6].Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.UInt; + ptr[6].Type = AtkValueType.UInt; ptr[6].UInt = item.ItemId; - ptr[7].Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.UInt; + ptr[7].Type = AtkValueType.UInt; ptr[7].UInt = item.IconId; - ptr[8].Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.UInt; + ptr[8].Type = AtkValueType.UInt; ptr[8].UInt = item.SealCost; addon->FireCallback(9u, ptr); } private unsafe static int GetAtkValueInt(AtkUnitBase* addon, int index) { - int num = ((addon == null) ? (-57715483) : (-57715477)); - int result = default(int); - AtkValue atkValue = default(AtkValue); - while (true) + if (addon == null || addon->AtkValues == null || index < 0 || index >= addon->AtkValuesCount) { - int num2 = num; - int num3 = -57715475; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 7: - num = ((index < addon->AtkValuesCount) ? (-57715474) : (-57715483)); - continue; - case 6: - num = ((addon->AtkValues == null) ? (-57715483) : (-57715476)); - continue; - case 10: - result = ((atkValue.Byte != 0) ? 1 : 0); - num = -57715480; - continue; - case 2: - goto IL_00c7; - case 3: - atkValue = addon->AtkValues[index]; - switch (atkValue.Type) - { - case FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Bool: - break; - case FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Int64: - goto IL_00c7; - default: - goto IL_0109; - case FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.UInt: - goto IL_0140; - case FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Int: - goto end_IL_0033; - } - goto case 10; - case 5: - return result; - case 8: - return -1; - case 1: - num = ((index < 0) ? (-57715483) : (-57715478)); - continue; - case 0: - num = -57715477; - continue; - case 11: - goto IL_0140; - case 4: - num = -57715473; - continue; - case 9: - break; - IL_0140: - result = (int)atkValue.UInt; - num = -57715480; - continue; - IL_0109: - num = -57715479; - continue; - IL_00c7: - result = -1; - num = -57715480; - continue; - end_IL_0033: - break; - } - result = atkValue.Int; - num = -57715480; + return -1; } + AtkValue atkValue = addon->AtkValues[index]; + return atkValue.Type switch + { + AtkValueType.Int => atkValue.Int, + AtkValueType.UInt => (int)atkValue.UInt, + AtkValueType.Bool => (atkValue.Byte != 0) ? 1 : 0, + _ => -1, + }; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Dispose() { - _206D_206E_206A_202D_202B_206F_202D_206F_206F_200E_202A_206E_200C_202D_202D_200F_200E_202D_202E_202E_206A_202C_200F_202A_202E_200B_206F_202E_206E_206A_206A_206A_202D_206C_200E_200D_206F_206E_202C_206D_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-238810398), (IAddonLifecycle.AddonEventDelegate)OnShopPostSetup); - _206D_206E_206A_202D_202B_206F_202D_206F_206F_200E_202A_206E_200C_202D_202D_200F_200E_202D_202E_202E_206A_202C_200F_202A_202E_200B_206F_202E_206E_206A_206A_206A_202D_206C_200E_200D_206F_206E_202C_206D_202E(_addonLifecycle, AddonEvent.PreFinalize, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1178205757), (IAddonLifecycle.AddonEventDelegate)OnShopPreFinalize); - _206D_206E_206A_202D_202B_206F_202D_206F_206F_200E_202A_206E_200C_202D_202D_200F_200E_202D_202E_202E_206A_202C_200F_202A_202E_200B_206F_202E_206E_206A_206A_206A_202D_206C_200E_200D_206F_206E_202C_206D_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(423301839), (IAddonLifecycle.AddonEventDelegate)OnSelectYesNoPostSetup); - _206D_206E_206A_202D_202B_206F_202D_206F_206F_200E_202A_206E_200C_202D_202D_200F_200E_202D_202E_202E_206A_202C_200F_202A_202E_200B_206F_202E_206E_206A_206A_206A_202D_206C_200E_200D_206F_206E_202C_206D_202E(_addonLifecycle, AddonEvent.PostUpdate, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(423301839), (IAddonLifecycle.AddonEventDelegate)OnSelectYesNoPostUpdate); - } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static void _206D_202D_200F_202D_200D_206A_200F_206C_202D_202C_200F_200D_206D_206E_206B_200D_202A_200D_206E_206A_206C_200D_206F_200F_206D_200C_200D_200F_206E_200F_206A_200C_206B_206B_202B_202E_206D_200B_200B_206A_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static void _202A_206B_206F_206E_202E_206A_202B_202C_200E_202A_200C_200C_200B_200E_206B_202E_202E_202C_200B_202D_206F_206A_206C_206F_200B_206A_206A_202B_206F_206B_200B_206A_200C_206B_202E_206E_200F_202E_200E_200D_202E(IAddonLifecycle P_0, AddonEvent P_1, string P_2, IAddonLifecycle.AddonEventDelegate P_3) - { - P_0.RegisterListener(P_1, P_2, P_3); - } - - static Delegate _202E_202C_206F_200C_202C_206D_202A_206E_206B_200B_200F_202B_200F_206C_200F_200F_202E_200C_200E_206D_206B_202B_206A_202A_202D_202A_200D_200E_206F_206C_200D_202C_200C_206D_200B_206E_206C_206E_202E_206B_202E(Delegate P_0, Delegate P_1) - { - return Delegate.Combine(P_0, P_1); - } - - static Delegate _200B_200F_200D_200E_200E_206D_200C_206C_206F_200B_202C_202C_206F_202C_202B_206D_206A_202B_206C_202C_206E_200C_200D_202E_200D_202A_202A_200B_202C_202B_206B_200F_206B_200E_206A_206C_200F_200D_200F_206D_202E(Delegate P_0, Delegate P_1) - { - return Delegate.Remove(P_0, P_1); - } - - static void _200D_206E_200E_202C_202B_202B_206B_206D_206F_202E_200E_206D_202C_206C_200D_200C_206F_206C_206F_202C_206C_200E_202D_202D_202A_200B_202E_206C_206D_200F_206A_200C_202A_202D_202A_206B_200B_200E_200C_202C_202E(IPluginLog P_0, string P_1, object[] P_2) - { - P_0.Debug(P_1, P_2); - } - - static AtkUnitBasePtr _206F_202E_200B_202E_206B_206B_206B_202A_200C_206C_202D_200C_202E_200C_202D_202E_202E_206B_206B_206D_206E_202D_206F_206B_200D_200C_206F_202D_206B_202E_206E_202E_202C_200F_202E_206A_202A_202A_200F_206D_202E(AddonArgs P_0) - { - return P_0.Addon; - } - - static void _202B_202B_202A_206C_206D_206F_200F_202B_202B_200B_200D_200B_200F_202A_202D_200B_202C_202C_200D_202D_202D_206F_200B_206D_202C_200D_202B_206E_202D_202C_202C_202A_200F_200C_200B_206C_200E_202E_202A_206A_202E(IPluginLog P_0, string P_1, object[] P_2) - { - P_0.Information(P_1, P_2); - } - - static long _202E_202B_202B_206F_200E_200E_202E_206D_200E_206F_200F_206E_200B_206D_206A_206E_206D_202B_200C_200F_206C_202C_202E_202D_206A_200E_202A_200C_200C_202D_202C_202A_206E_206B_200D_206B_202E_206D_202E_202E() - { - return Environment.TickCount64; - } - - static void _200E_202D_200D_200E_202A_200F_202D_206A_206A_200E_202B_206F_202C_200F_206F_206D_200C_202D_200B_206F_206E_200F_200C_206B_200D_206C_206B_200F_200F_206C_200C_202B_206D_200F_202A_202D_200D_206C_202E_206C_202E(IPluginLog P_0, string P_1, object[] P_2) - { - P_0.Warning(P_1, P_2); - } - - static int _200D_206A_206D_200D_206A_200C_206A_200C_206A_200B_206B_206C_200B_206D_202C_206F_206D_202A_206A_202A_206C_200B_200C_206A_202E_200B_206A_200E_200C_206B_206B_206E_200D_200D_202E_206A_200F_202B_200E_202A_202E(int P_0, int P_1) - { - return Math.Min(P_0, P_1); - } - - static void _206D_206E_206A_202D_202B_206F_202D_206F_206F_200E_202A_206E_200C_202D_202D_200F_200E_202D_202E_202E_206A_202C_200F_202A_202E_200B_206F_202E_206E_206A_206A_206A_202D_206C_200E_200D_206F_206E_202C_206D_202E(IAddonLifecycle P_0, AddonEvent P_1, string P_2, IAddonLifecycle.AddonEventDelegate P_3) - { - P_0.UnregisterListener(P_1, P_2, P_3); + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "GrandCompanyExchange", OnShopPostSetup); + _addonLifecycle.UnregisterListener(AddonEvent.PreFinalize, "GrandCompanyExchange", OnShopPreFinalize); + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "SelectYesno", OnSelectYesNoPostSetup); + _addonLifecycle.UnregisterListener(AddonEvent.PostUpdate, "SelectYesno", OnSelectYesNoPostUpdate); } } diff --git a/LLib/LLib.Shop/NpcPositionCache.cs b/LLib/LLib.Shop/NpcPositionCache.cs index 85d481f..3eae4b7 100644 --- a/LLib/LLib.Shop/NpcPositionCache.cs +++ b/LLib/LLib.Shop/NpcPositionCache.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.IO; using System.Numerics; -using System.Runtime.CompilerServices; using System.Threading; using Dalamud.Plugin.Services; using Lumina.Data.Files; @@ -15,13 +14,7 @@ namespace LLib.Shop; public sealed class NpcPositionCache { - private static readonly string[] LgbFileNames = new string[4] - { - global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1908634427), - global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-2021484130), - global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-418261511), - global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(280692179) - }; + private static readonly string[] LgbFileNames = new string[4] { "planevent", "planmap", "planner", "planlive" }; private const uint FileMagic = 1129336401u; @@ -35,7 +28,7 @@ public sealed class NpcPositionCache private readonly NpcPositionCacheOptions _options; - private readonly object _buildLock = _202C_200B_202B_202C_206D_206E_202B_202C_200B_206B_200C_206C_202A_200B_200F_202C_206B_200E_206A_206D_200F_200D_206B_206D_200B_200C_206D_200D_206F_202E_202A_206E_202B_206C_206D_200F_206C_200D_206A_206B_202E(); + private readonly object _buildLock = new object(); private volatile Dictionary<uint, (ushort TerritoryId, Vector3 Position, bool FestivalOnly)>? _cache; @@ -43,31 +36,13 @@ public sealed class NpcPositionCache private string? CacheFilePath { - [MethodImpl(MethodImplOptions.NoInlining)] get { - int num = (_206B_202C_200C_202A_200C_202B_200D_206B_206D_206C_200C_206E_200D_202E_202C_206E_206F_200E_202B_200E_202A_206C_202E_200E_202E_202D_206A_206B_206B_200B_200B_202B_200D_202E_202E_206E_200F_202B_206A_202E(_options.CacheDirectory) ? (-1379965594) : (-1379965593)); - while (true) + if (string.IsNullOrEmpty(_options.CacheDirectory) || string.IsNullOrEmpty(_options.GameVersion)) { - int num2 = num; - int num3 = -1379965594; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return _202A_206E_206D_202D_206F_200F_206B_206D_206F_202C_206A_202B_200B_206F_206C_206B_200E_206A_206A_202B_206F_200D_200F_202C_206D_202B_200F_200E_200C_202B_206A_206F_206D_202B_206B_202B_206A_206D_206E_202A_202E(_options.CacheDirectory, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1995757655)); - case 1: - num = ((!_206B_202C_200C_202A_200C_202B_200D_206B_206D_206C_200C_206E_200D_202E_202C_206E_206F_200E_202B_200E_202A_206C_202E_200E_202E_202D_206A_206B_206B_200B_200B_202B_200D_202E_202E_206E_200F_202B_206A_202E(_options.GameVersion)) ? (-1379965596) : (-1379965594)); - break; - case 0: - return null; - case 3: - num = -1379965593; - break; - } + return null; } + return Path.Combine(_options.CacheDirectory, "npc-position-cache.bin"); } } @@ -81,134 +56,36 @@ public sealed class NpcPositionCache public (ushort TerritoryId, Vector3 Position)? TryGetPosition(uint npcId) { Dictionary<uint, (ushort, Vector3, bool)> cache = _cache; - int num = ((cache == null) ? (-89260434) : (-89260433)); - (ushort, Vector3, bool) value = default((ushort, Vector3, bool)); - while (true) + if (cache == null || !cache.TryGetValue(npcId, out var value)) { - int num2 = num; - int num3 = -89260436; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return (value.Item1, value.Item2); - case 2: - return null; - case 3: - num = (cache.TryGetValue(npcId, out value) ? (-89260435) : (-89260434)); - break; - case 0: - num = -89260433; - break; - } + return null; } + return (value.Item1, value.Item2); } public (ushort TerritoryId, Vector3 Position, bool FestivalOnly)? TryGetPlacement(uint npcId) { Dictionary<uint, (ushort, Vector3, bool)> cache = _cache; - int num = ((cache == null) ? 704628277 : 704628279); - (ushort, Vector3, bool) value = default((ushort, Vector3, bool)); - while (true) + if (cache == null || !cache.TryGetValue(npcId, out var value)) { - int num2 = num; - int num3 = 704628276; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return value; - case 1: - return null; - case 3: - num = (cache.TryGetValue(npcId, out value) ? 704628278 : 704628277); - break; - case 0: - num = 704628279; - break; - } + return null; } + return value; } public bool TryLoadFromDisk() { - int num = ((_cache == null) ? (-139769747) : (-139769746)); - while (true) + if (_cache != null) { - int num2 = num; - int num3 = -139769748; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return true; + } + lock (_buildLock) + { + if (_cache == null) { - case 0: - goto IL_0050; - case 2: - return true; - case 1: - { - object buildLock = _buildLock; - bool flag = false; - try - { - _200B_206A_200F_200D_200E_202A_200C_200E_206E_206B_206E_206A_202E_206E_206B_206F_200E_206B_206E_206D_202B_200D_202C_202A_206D_202A_202C_200C_206F_200F_206A_202D_206C_202A_200B_206A_202B_200E_206C_206D_202E(buildLock, ref flag); - num = ((_cache != null) ? (-1432120080) : (-1432120079)); - while (true) - { - int num7 = num; - num3 = -1432120080; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 2: - num = -1432120079; - break; - case 1: - _cache = LoadFromDisk(); - num = -1432120080; - break; - case 0: - return _cache != null; - } - } - } - finally - { - num = ((!flag) ? 1654086869 : 1654086870); - while (true) - { - int num10 = num; - num3 = 1654086868; - num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 1: - goto end_IL_010f; - case 2: - _200D_200C_206C_202E_206E_206F_206F_202E_206A_200D_206B_202A_206D_200F_202D_206D_200E_200C_200D_202B_202B_206F_202C_202E_200B_206D_202E_206E_202E_202B_202B_200D_202D_206D_202E_200C_206A_206C_200F_202E_202E(buildLock); - num = 1654086869; - break; - case 0: - num = 1654086870; - break; - } - continue; - end_IL_010f: - break; - } - } + _cache = LoadFromDisk(); } - } - continue; - IL_0050: - num = -139769746; + return _cache != null; } } @@ -220,55 +97,21 @@ public sealed class NpcPositionCache public (ushort TerritoryId, Vector3 Position)? GetPosition(uint npcId) { EnsureBuilt(); - (ushort, Vector3, bool) value; - int num = (_cache.TryGetValue(npcId, out value) ? (-2002474753) : (-2002474754)); - while (true) + if (!_cache.TryGetValue(npcId, out (ushort, Vector3, bool) value)) { - int num2 = num; - int num3 = -2002474753; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0067; - case 1: - return null; - case 0: - return (value.Item1, value.Item2); - } - continue; - IL_0067: - num = -2002474754; + return null; } + return (value.Item1, value.Item2); } public (ushort TerritoryId, Vector3 Position, bool FestivalOnly)? GetPlacement(uint npcId) { EnsureBuilt(); - (ushort, Vector3, bool) value; - int num = (_cache.TryGetValue(npcId, out value) ? 1062147025 : 1062147024); - while (true) + if (!_cache.TryGetValue(npcId, out (ushort, Vector3, bool) value)) { - int num2 = num; - int num3 = 1062147025; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0067; - case 0: - return value; - case 1: - return null; - } - continue; - IL_0067: - num = 1062147024; + return null; } + return value; } public IReadOnlyCollection<uint> GetAllNpcIds() @@ -277,335 +120,108 @@ public sealed class NpcPositionCache return _cache.Keys; } - [MethodImpl(MethodImplOptions.NoInlining)] private void EnsureBuilt(CancellationToken cancellationToken = default(CancellationToken)) { - int num = ((_cache == null) ? 699426378 : 699426379); - Dictionary<uint, (ushort, Vector3, bool)> dictionary = default(Dictionary<uint, (ushort, Vector3, bool)>); - while (true) + if (_cache != null) { - int num2 = num; - int num3 = 699426378; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + lock (_buildLock) + { + if (_cache == null) { - case 2: - goto IL_0050; - case 1: - return; - case 0: - { - object buildLock = _buildLock; - bool flag = false; - try + Dictionary<uint, (ushort, Vector3, bool)> dictionary = LoadFromDisk(); + if (dictionary == null) { - _200B_206A_200F_200D_200E_202A_200C_200E_206E_206B_206E_206A_202E_206E_206B_206F_200E_206B_206E_206D_202B_200D_202C_202A_206D_202A_202C_200C_206F_200F_206A_202D_206C_202A_200B_206A_202B_200E_206C_206D_202E(buildLock, ref flag); - num = ((_cache == null) ? 563419148 : 563419149); - while (true) - { - int num7 = num; - num3 = 563419150; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 563419149; - break; - case 2: - dictionary = LoadFromDisk(); - num = ((dictionary != null) ? 563419151 : 563419146); - break; - case 3: - return; - case 4: - dictionary = BuildNpcPositionCache(cancellationToken); - SaveToDisk(dictionary); - _202D_206F_206E_200E_200F_206F_206B_206A_202A_206E_206F_202B_206E_206E_202C_200F_202D_206B_206A_200F_206C_202D_202E_202C_200E_206A_200F_206B_202A_200D_202D_206D_206E_206B_200B_202C_206A_206B_202B_202A_202E((ILogger)_logger, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(955007798), new object[1] { dictionary.Count }); - num = 563419151; - break; - case 1: - _cache = dictionary; - return; - } - } - } - finally - { - num = ((!flag) ? (-2036326357) : (-2036326358)); - while (true) - { - int num8 = num; - num3 = -2036326357; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 0: - goto end_IL_016e; - case 1: - _200D_200C_206C_202E_206E_206F_206F_202E_206A_200D_206B_202A_206D_200F_202D_206D_200E_200C_200D_202B_202B_206F_202C_202E_200B_206D_202E_206E_202E_202B_202B_200D_202D_206D_202E_200C_206A_206C_200F_202E_202E(buildLock); - num = -2036326357; - break; - case 2: - num = -2036326358; - break; - } - continue; - end_IL_016e: - break; - } + dictionary = BuildNpcPositionCache(cancellationToken); + SaveToDisk(dictionary); + _logger.LogDebug("NPC position cache built with {Count} entries", dictionary.Count); } + _cache = dictionary; } - } - continue; - IL_0050: - num = 699426379; } } - [MethodImpl(MethodImplOptions.NoInlining)] private Dictionary<uint, (ushort TerritoryId, Vector3 Position, bool FestivalOnly)>? LoadFromDisk() { string cacheFilePath = CacheFilePath; - int num = ((cacheFilePath == null) ? 923324017 : 923324018); - int num10 = default(int); - int num11 = default(int); - Dictionary<uint, (ushort, Vector3, bool)> dictionary = default(Dictionary<uint, (ushort, Vector3, bool)>); - while (true) + if (cacheFilePath == null || !File.Exists(cacheFilePath)) { - int num2 = num; - int num3 = 923324017; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return null; + } + try + { + using BinaryReader binaryReader = new BinaryReader(File.OpenRead(cacheFilePath)); + if (binaryReader.ReadUInt32() != 1129336401 || binaryReader.ReadInt32() != 1) { - case 2: - num = 923324018; - break; - case 3: - num = (_202E_202B_206B_202B_202C_200E_206A_200B_200E_202C_202C_202A_202A_206A_202B_202C_202B_206A_206D_206F_200F_206E_206A_206B_202D_200E_202B_206E_202B_202B_200D_200F_202A_206C_200F_200F_200F_206E_200E_200F_202E(cacheFilePath) ? 923324016 : 923324017); - break; - case 0: - return null; - case 1: - try + _logger.LogDebug("NPC position cache file has an unknown header, discarding"); + } + else + { + if (!(binaryReader.ReadString() != _options.GameVersion)) { - BinaryReader binaryReader = _202C_206B_202E_200D_206B_202A_202D_202D_202D_202A_206A_200D_206C_200F_206B_200D_202B_206D_202C_202D_200E_200D_202A_206B_202B_200B_202B_202E_206F_206C_206D_200F_202D_200B_202E_202C_202D_200D_202D_206B_202E((Stream)_202C_206E_200B_206F_200F_202B_202A_206E_200D_206A_200F_200F_206D_206F_200F_206D_200C_202B_202C_202A_200F_202C_200D_200F_202B_200F_206F_202E_206D_200D_206C_200B_206E_202A_202E_202B_206F_200C_202A_200F_202E(cacheFilePath)); - try + int num = binaryReader.ReadInt32(); + Dictionary<uint, (ushort, Vector3, bool)> dictionary = new Dictionary<uint, (ushort, Vector3, bool)>(num); + for (int i = 0; i < num; i++) { - num = ((_202B_202B_202D_202B_202B_202C_200F_202A_206F_202B_206C_206E_200D_206F_202C_202A_202C_202C_206D_206D_206B_202C_206C_202B_206B_202A_202A_206F_202E_206A_206D_200E_206C_200E_202B_200B_200C_202C_202A_200F_202E(binaryReader) != 1129336401) ? 1097724439 : 1097724435); - while (true) - { - int num7 = num; - num3 = 1097724436; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 4: - num = ((num10 < num11) ? 1097724433 : 1097724434); - break; - case 3: - _202D_206F_206E_200E_200F_206F_206B_206A_202A_206E_206F_202B_206E_206E_202C_200F_202D_206B_206A_200F_206C_202D_202E_202C_200E_206A_200F_206B_202A_200D_202D_206D_206E_206B_200B_202C_206A_206B_202B_202A_202E((ILogger)_logger, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1352529546), Array.Empty<object>()); - num = 1097724444; - break; - case 9: - num11 = _206F_200B_200D_206A_200E_200E_200F_200D_206E_206A_200D_206E_206B_200B_200F_206D_200B_200C_202C_200C_200C_202D_206D_202D_202D_206A_200F_200C_200C_200C_200C_202B_200E_200C_202A_206D_202E_206B_206E_200F_202E(binaryReader); - dictionary = new Dictionary<uint, (ushort, Vector3, bool)>(num11); - num10 = 0; - num = 1097724432; - break; - case 2: - num = ((!_206D_202D_202D_206C_206E_206B_206E_206A_200B_202B_202A_202B_202E_202D_202A_200C_202D_202A_206F_206F_200D_202C_200E_202A_200C_206A_202E_202B_206A_202E_202C_206A_202E_206B_202A_202B_206F_206D_200E_200C_202E(_206D_202A_202D_200F_202E_202C_200C_200E_200D_202E_206F_202D_202A_200B_206B_206D_206B_202C_206B_206D_206F_206C_206B_200E_206E_206C_206C_200E_206F_200C_200B_206E_202A_200C_202C_200B_202E_200C_206E_200E_202E(binaryReader), _options.GameVersion)) ? 1097724445 : 1097724437); - break; - case 6: - _202D_206F_206E_200E_200F_206F_206B_206A_202A_206E_206F_202B_206E_206E_202C_200F_202D_206B_206A_200F_206C_202D_202E_202C_200E_206A_200F_206B_202A_200D_202D_206D_206E_206B_200B_202C_206A_206B_202B_202A_202E((ILogger)_logger, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-922037796), new object[1] { dictionary.Count }); - return dictionary; - case 5: - { - uint key = _202B_202B_202D_202B_202B_202C_200F_202A_206F_202B_206C_206E_200D_206F_202C_202A_202C_202C_206D_206D_206B_202C_206C_202B_206B_202A_202A_206F_202E_206A_206D_200E_206C_200E_202B_200B_200C_202C_202A_200F_202E(binaryReader); - ushort item = _202C_200B_202A_202E_206C_200E_200F_206C_200E_202E_202A_206C_202B_202C_202D_202A_202B_206D_202C_202C_200E_202E_202A_202D_200C_200F_200F_202C_206C_206A_202B_206F_202A_202C_202A_202D_202C_200B_206F_202E_202E(binaryReader); - Vector3 item2 = new Vector3(_206F_200B_202B_206A_206B_206A_200B_202C_202D_200D_206B_200B_206B_202B_202D_206A_206F_200B_206A_200B_206F_202C_202A_200E_206E_206D_206E_202D_206B_200F_202E_202E_200B_206B_206F_202E_206D_200D_206A_200E_202E(binaryReader), _206F_200B_202B_206A_206B_206A_200B_202C_202D_200D_206B_200B_206B_202B_202D_206A_206F_200B_206A_200B_206F_202C_202A_200E_206E_206D_206E_202D_206B_200F_202E_202E_200B_206B_206F_202E_206D_200D_206A_200E_202E(binaryReader), _206F_200B_202B_206A_206B_206A_200B_202C_202D_200D_206B_200B_206B_202B_202D_206A_206F_200B_206A_200B_206F_202C_202A_200E_206E_206D_206E_202D_206B_200F_202E_202E_200B_206B_206F_202E_206D_200D_206A_200E_202E(binaryReader)); - bool item3 = _206A_200B_200D_200D_202C_202A_200B_206F_206D_202C_206C_202C_202B_202D_202C_202D_206F_200C_206E_200C_206E_200B_200F_202D_202A_200F_202E_202C_202B_206D_206A_206D_200B_200C_200B_200F_200F_202B_200C_206F_202E(binaryReader); - dictionary[key] = (item, item2, item3); - int num12 = num10; - num3 = 1; - num4 = num12; - int num13 = num4 ^ num3; - int num14 = num4 & num3; - num10 = num13 + (num14 + num14); - num = 1097724432; - break; - } - case 1: - _202D_206F_206E_200E_200F_206F_206B_206A_202A_206E_206F_202B_206E_206E_202C_200F_202D_206B_206A_200F_206C_202D_202E_202C_200E_206A_200F_206B_202A_200D_202D_206D_206E_206B_200B_202C_206A_206B_202B_202A_202E((ILogger)_logger, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-691142266), Array.Empty<object>()); - num = 1097724444; - break; - case 0: - num = 1097724435; - break; - case 7: - num = ((_206F_200B_200D_206A_200E_200E_200F_200D_206E_206A_200D_206E_206B_200B_200F_206D_200B_200C_202C_200C_200C_202D_206D_202D_202D_206A_200F_200C_200C_200C_200C_202B_200E_200C_202A_206D_202E_206B_206E_200F_202E(binaryReader) == 1) ? 1097724438 : 1097724439); - break; - case 8: - goto end_IL_00bd; - } - continue; - end_IL_00bd: - break; - } - } - finally - { - num = ((binaryReader == null) ? (-215914217) : (-215914220)); - while (true) - { - int num15 = num; - num3 = -215914218; - num4 = num15; - int num16 = num4 + num3; - int num17 = num4 & num3; - switch (num16 - (num17 + num17)) - { - case 1: - goto end_IL_02b9; - case 2: - _206D_202C_200F_202A_200D_202A_206B_206D_202E_202D_200D_206B_202B_202D_200E_206F_202D_202A_202C_200D_202E_202D_206A_206E_206B_202D_200B_202C_206B_206A_202D_206E_202D_206A_206A_206F_206C_202B_200C_206A_202E((IDisposable)binaryReader); - num = -215914217; - break; - case 0: - num = -215914220; - break; - } - continue; - end_IL_02b9: - break; - } + uint key = binaryReader.ReadUInt32(); + ushort item = binaryReader.ReadUInt16(); + Vector3 item2 = new Vector3(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle()); + bool item3 = binaryReader.ReadBoolean(); + dictionary[key] = (item, item2, item3); } + _logger.LogDebug("NPC position cache loaded from disk with {Count} entries", dictionary.Count); + return dictionary; } - catch (Exception ex) - { - _200F_202C_202E_206C_206C_202B_206C_202D_202D_206E_202B_202D_200E_206B_206B_200B_206B_202B_206B_200B_202E_202C_206A_206B_206E_202A_200D_202C_202A_200F_202C_202A_202A_206F_206F_200E_202C_202B_200D_206D_202E((ILogger)_logger, ex, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1077656609), Array.Empty<object>()); - } - try - { - _202B_202E_202C_206C_206B_206F_202C_200E_206E_200B_202A_206F_202A_200D_206C_206B_200F_200B_200E_200F_206B_202A_202C_206D_202E_206B_206E_200F_206C_200B_202B_206A_202B_206E_206D_202A_200C_206A_202B_202B_202E(cacheFilePath); - } - catch (Exception) - { - } - return null; + _logger.LogDebug("NPC position cache file is for a different game version, discarding"); } } + catch (Exception exception) + { + _logger.LogWarning(exception, "Failed to load NPC position cache file, discarding"); + } + try + { + File.Delete(cacheFilePath); + } + catch (Exception) + { + } + return null; } - [MethodImpl(MethodImplOptions.NoInlining)] private void SaveToDisk(Dictionary<uint, (ushort TerritoryId, Vector3 Position, bool FestivalOnly)> cache) { string cacheFilePath = CacheFilePath; - int num = ((cacheFilePath != null) ? (-1878126128) : (-1878126125)); - while (true) + if (cacheFilePath == null) { - int num2 = num; - int num3 = -1878126126; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + try + { + Directory.CreateDirectory(_options.CacheDirectory); + string text = cacheFilePath + ".tmp"; + using (BinaryWriter binaryWriter = new BinaryWriter(File.Create(text))) { - case 0: - goto IL_0053; - case 1: - return; - case 2: - try + binaryWriter.Write(1129336401u); + binaryWriter.Write(1); + binaryWriter.Write(_options.GameVersion); + binaryWriter.Write(cache.Count); + foreach (var (value, tuple2) in cache) { - _206A_200D_206F_206D_200C_202A_200C_202D_206E_206C_206D_206E_206D_202D_206B_202D_206C_202B_200F_202E_206C_206D_200F_202D_202E_206E_200B_202B_200F_200B_206C_200D_206B_200D_202A_202E_206C_206B_200F_202A_202E(_options.CacheDirectory); - string text = _200D_200D_206D_206D_206E_200C_200E_202B_206F_200B_200C_200E_200D_202B_206E_206C_200F_202E_206B_200F_206D_206B_200C_200F_200F_206D_202B_202E_202D_206D_200C_200E_200E_206A_202A_206C_200E_206F_202D_206C_202E(cacheFilePath, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(236937827)); - BinaryWriter binaryWriter = _202E_206F_200E_206B_206A_206D_206D_200F_206A_202A_200D_200F_200D_202C_200C_200F_206F_202A_202E_202E_202C_202B_206E_206F_200F_200C_200F_200B_200F_206F_202E_200B_200E_206C_206A_202C_206F_202D_202B_206C_202E((Stream)_206D_206E_202B_200B_200B_202A_202D_206F_206C_206F_206F_202B_200F_200E_206E_206D_206A_202C_202E_200E_206F_202C_200F_200E_200B_202A_202A_200E_200F_202C_202A_200C_202E_206C_202C_200C_206C_202B_202A_206D_202E(text)); - try - { - _206F_202A_202B_206C_202E_200C_200B_200F_206D_200E_202D_202B_202D_206D_206B_206F_202D_200E_200C_200B_202E_200C_206E_200E_200E_200E_206E_206F_206F_206C_206F_200B_206E_206C_200E_202B_200F_200B_200D_206B_202E(binaryWriter, 1129336401u); - _200E_206C_202B_202B_200C_200B_200E_200D_200B_200D_206B_206E_202D_202A_206D_202D_200F_202A_200E_206E_200B_202C_206C_200C_200F_206B_202A_206D_206B_202C_206C_202B_206C_202A_202D_200F_206E_206D_206E_200F_202E(binaryWriter, 1); - _202A_202A_206F_206B_206A_200F_202D_206E_202D_206D_206D_202E_206A_202B_202D_202C_206E_202A_202A_202D_202E_202D_200C_202B_202A_206E_200C_200D_206B_206B_202A_200F_202B_202A_206C_202A_206B_202C_202B_206A_202E(binaryWriter, _options.GameVersion); - _200E_206C_202B_202B_200C_200B_200E_200D_200B_200D_206B_206E_202D_202A_206D_202D_200F_202A_200E_206E_200B_202C_206C_200C_200F_206B_202A_206D_206B_202C_206C_202B_206C_202A_202D_200F_206E_206D_206E_200F_202E(binaryWriter, cache.Count); - using Dictionary<uint, (ushort, Vector3, bool)>.Enumerator enumerator = cache.GetEnumerator(); - num = 177392188; - while (true) - { - int num7 = num; - num3 = 177392188; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - num = (enumerator.MoveNext() ? 177392189 : 177392190); - break; - case 1: - var (num11, tuple2) = (KeyValuePair<uint, (ushort, Vector3, bool)>)(ref enumerator.Current); - _206F_202A_202B_206C_202E_200C_200B_200F_206D_200E_202D_202B_202D_206D_206B_206F_202D_200E_200C_200B_202E_200C_206E_200E_200E_200E_206E_206F_206F_206C_206F_200B_206E_206C_200E_202B_200F_200B_200D_206B_202E(binaryWriter, num11); - _206E_200B_200E_200C_200B_206E_206A_200D_202D_202D_200E_202A_202A_202E_202D_206E_206B_206F_202B_206C_202B_202C_206C_206E_202C_206E_200D_200C_206A_206F_200F_206E_206A_202B_202C_200C_200D_202B_202A_200E_202E(binaryWriter, tuple2.Item1); - _200E_202D_206C_202B_202A_206B_200D_202D_200B_206F_202C_202A_200E_202A_202B_200B_200D_202E_206F_200C_202A_202C_202E_206C_206B_202D_202E_202E_200D_206B_200B_206E_200C_206C_200F_202A_200C_202D_206D_200F_202E(binaryWriter, tuple2.Item2.X); - _200E_202D_206C_202B_202A_206B_200D_202D_200B_206F_202C_202A_200E_202A_202B_200B_200D_202E_206F_200C_202A_202C_202E_206C_206B_202D_202E_202E_200D_206B_200B_206E_200C_206C_200F_202A_200C_202D_206D_200F_202E(binaryWriter, tuple2.Item2.Y); - _200E_202D_206C_202B_202A_206B_200D_202D_200B_206F_202C_202A_200E_202A_202B_200B_200D_202E_206F_200C_202A_202C_202E_206C_206B_202D_202E_202E_200D_206B_200B_206E_200C_206C_200F_202A_200C_202D_206D_200F_202E(binaryWriter, tuple2.Item2.Z); - _200F_206E_202A_202E_200C_202D_206D_202B_206B_200B_200B_202A_200C_206D_206E_200B_206F_202D_200C_206E_206C_202D_206A_206A_206F_202C_200B_200F_206F_202C_200D_200E_202C_206C_202B_202A_206B_200B_202E_202E_202E(binaryWriter, tuple2.Item3); - num = 177392188; - break; - case 3: - num = 177392188; - break; - case 2: - goto end_IL_00d1; - } - continue; - end_IL_00d1: - break; - } - } - finally - { - num = ((binaryWriter == null) ? (-2116583790) : (-2116583791)); - while (true) - { - int num12 = num; - num3 = -2116583789; - num4 = num12; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -2116583791; - break; - case 1: - goto end_IL_01e9; - case 2: - _206D_202C_200F_202A_200D_202A_206B_206D_202E_202D_200D_206B_202B_202D_200E_206F_202D_202A_202C_200D_202E_202D_206A_206E_206B_202D_200B_202C_206B_206A_202D_206E_202D_206A_206A_206F_206C_202B_200C_206A_202E((IDisposable)binaryWriter); - num = -2116583790; - break; - } - continue; - end_IL_01e9: - break; - } - } - _206C_206F_200E_206B_200F_202E_206D_206F_202D_206B_202B_202C_200B_200B_206C_200F_202D_202B_202B_202B_200E_206A_200E_206E_206E_200D_206C_200E_202B_202A_206F_200E_202B_202C_202B_206C_200D_200E_206D_202B_202E(text, cacheFilePath, true); - return; - } - catch (Exception ex) - { - _200F_202C_202E_206C_206C_202B_206C_202D_202D_206E_202B_202D_200E_206B_206B_200B_206B_202B_206B_200B_202E_202C_206A_206B_206E_202A_200D_202C_202A_200F_202C_202A_202A_206F_206F_200E_202C_202B_200D_206D_202E((ILogger)_logger, ex, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1457796029), Array.Empty<object>()); - return; + binaryWriter.Write(value); + binaryWriter.Write(tuple2.Item1); + binaryWriter.Write(tuple2.Item2.X); + binaryWriter.Write(tuple2.Item2.Y); + binaryWriter.Write(tuple2.Item2.Z); + binaryWriter.Write(tuple2.Item3); } } - continue; - IL_0053: - num = -1878126125; + File.Move(text, cacheFilePath, overwrite: true); + } + catch (Exception exception) + { + _logger.LogWarning(exception, "Failed to save NPC position cache file"); } } @@ -613,535 +229,113 @@ public sealed class NpcPositionCache { Dictionary<uint, (ushort, Vector3, bool)> dictionary = new Dictionary<uint, (ushort, Vector3, bool)>(); HashSet<uint> hashSet = new HashSet<uint>(); - using (ExcelSheet<Aetheryte>.Enumerator enumerator = _dataManager.GetExcelSheet<Aetheryte>().GetEnumerator()) + foreach (Aetheryte item in _dataManager.GetExcelSheet<Aetheryte>()) { - int num = -1281480948; - while (true) - { - int num2 = num; - int num3 = -1281480948; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1281480948; - break; - case 0: - num = (enumerator.MoveNext() ? (-1281480945) : (-1281480947)); - break; - case 3: - hashSet.Add(enumerator.Current.Territory.RowId); - num = -1281480948; - break; - case 1: - goto end_IL_0035; - } - continue; - end_IL_0035: - break; - } + hashSet.Add(item.Territory.RowId); } ExcelSheet<TerritoryType> excelSheet = _dataManager.GetExcelSheet<TerritoryType>(); HashSet<string> visitedLgbPaths = new HashSet<string>(); - using (ExcelSheet<TerritoryType>.Enumerator enumerator2 = excelSheet.GetEnumerator()) + bool cacheFileResources = _dataManager.GameData.Options.CacheFileResources; + _dataManager.GameData.Options.CacheFileResources = false; + try { - int num = 1492955023; - TerritoryType current = default(TerritoryType); - while (true) + foreach (TerritoryType item2 in excelSheet) { - int num5 = num; - int num3 = 1492955023; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) + if (hashSet.Contains(item2.RowId)) { - case 0: - num = (enumerator2.MoveNext() ? 1492955019 : 1492955022); - break; - case 3: - ScanLgbFiles(dictionary, visitedLgbPaths, current, cancellationToken); - num = 1492955023; - break; - case 4: - current = enumerator2.Current; - num = ((!hashSet.Contains(current.RowId)) ? 1492955023 : 1492955020); - break; - case 2: - num = 1492955023; - break; - case 1: - goto end_IL_0105; + ScanLgbFiles(dictionary, visitedLgbPaths, item2, cancellationToken); } - continue; - end_IL_0105: - break; + } + foreach (TerritoryType item3 in excelSheet) + { + ScanLgbFiles(dictionary, visitedLgbPaths, item3, cancellationToken); } } - using (ExcelSheet<TerritoryType>.Enumerator enumerator2 = excelSheet.GetEnumerator()) + finally { - int num = -1441158644; - while (true) - { - int num8 = num; - int num3 = -1441158642; - int num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = -1441158644; - break; - case 2: - num = (enumerator2.MoveNext() ? (-1441158641) : (-1441158642)); - break; - case 1: - { - TerritoryType current2 = enumerator2.Current; - ScanLgbFiles(dictionary, visitedLgbPaths, current2, cancellationToken); - num = -1441158644; - break; - } - case 0: - goto end_IL_01dc; - } - continue; - end_IL_01dc: - break; - } + _dataManager.GameData.Options.CacheFileResources = cacheFileResources; } ExcelSheet<ENpcBase> excelSheet2 = _dataManager.GetExcelSheet<ENpcBase>(); ExcelSheet<EObj> excelSheet3 = _dataManager.GetExcelSheet<EObj>(); - using ExcelSheet<Level>.Enumerator enumerator3 = _dataManager.GetExcelSheet<Level>().GetEnumerator(); - int num = -1886979544; - Level current3 = default(Level); - while (true) + foreach (Level item4 in _dataManager.GetExcelSheet<Level>()) { - int num9 = num; - int num3 = -1886979543; - int num4 = num9; - switch ((num4 | num3) - (num4 & num3)) + if (item4.RowId != 0 && item4.Object.RowId != 0 && item4.Territory.IsValid && (excelSheet2.HasRow(item4.Object.RowId) || excelSheet3.HasRow(item4.Object.RowId))) { - case 3: - num = ((!excelSheet3.HasRow(current3.Object.RowId)) ? (-1886979544) : (-1886979537)); - break; - case 5: - num = ((!current3.Territory.IsValid) ? (-1886979544) : (-1886979551)); - break; - case 2: - num = ((current3.Object.RowId == 0) ? (-1886979544) : (-1886979540)); - break; - case 7: - current3 = enumerator3.Current; - num = ((current3.RowId == 0) ? (-1886979544) : (-1886979541)); - break; - case 6: - dictionary.TryAdd(current3.Object.RowId, ((ushort)current3.Territory.RowId, new Vector3(current3.X, current3.Y, current3.Z), false)); - num = -1886979544; - break; - case 8: - num = (excelSheet2.HasRow(current3.Object.RowId) ? (-1886979537) : (-1886979542)); - break; - case 0: - num = -1886979544; - break; - case 1: - num = (enumerator3.MoveNext() ? (-1886979538) : (-1886979539)); - break; - case 4: - return dictionary; + dictionary.TryAdd(item4.Object.RowId, ((ushort)item4.Territory.RowId, new Vector3(item4.X, item4.Y, item4.Z), false)); } } + return dictionary; } - [MethodImpl(MethodImplOptions.NoInlining)] private void ScanLgbFiles(Dictionary<uint, (ushort TerritoryId, Vector3 Position, bool FestivalOnly)> cache, HashSet<string> visitedLgbPaths, TerritoryType territory, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); string text = territory.Bg.ExtractText(); - int num = ((!_206B_202C_200C_202A_200C_202B_200D_206B_206D_206C_200C_206E_200D_202E_202C_206E_206F_200E_202B_200E_202A_206C_202E_200E_202E_202D_206A_206B_206B_200B_200B_202B_200D_202E_202E_206E_200F_202B_206A_202E(text)) ? (-1877077488) : (-1877077481)); - int num10 = default(int); - LgbFile file = default(LgbFile); - (ushort, Vector3, bool) value = default((ushort, Vector3, bool)); - bool flag = default(bool); - uint baseId = default(uint); - LayerCommon.InstanceObject instanceObject = default(LayerCommon.InstanceObject); - LayerCommon.InstanceObject[] instanceObjects = default(LayerCommon.InstanceObject[]); - int num17 = default(int); - LayerCommon.Layer[] array = default(LayerCommon.Layer[]); - int num14 = default(int); - LayerCommon.Layer layer = default(LayerCommon.Layer); - while (true) + if (string.IsNullOrEmpty(text)) { - int num2 = num; - int num3 = -1877077484; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + int num = text.IndexOf("/level/", StringComparison.Ordinal); + if (num < 0) + { + return; + } + int num2 = 0; + string[] lgbFileNames = LgbFileNames; + foreach (string text2 in lgbFileNames) + { + string text3 = "bg/" + text.Substring(0, num + 1) + "level/" + text2 + ".lgb"; + if (!visitedLgbPaths.Add(text3)) { - case 0: - num = -1877077481; - break; - case 3: - return; - case 4: - num10 = _206A_200D_206A_200C_202E_202A_202C_202C_202E_206C_206B_200F_202A_200B_202A_206D_206C_202D_200F_200B_200C_206A_200C_206A_202E_200D_206C_206B_206D_200E_200F_206A_202D_202D_200E_206A_200D_202C_206D_200C_202E(text, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(507453428), StringComparison.Ordinal); - num = ((num10 >= 0) ? (-1877077482) : (-1877077483)); - break; - case 1: - return; - case 2: + continue; + } + LgbFile file; + try { - int num7 = 0; - string[] lgbFileNames = LgbFileNames; - int num8 = 0; - while (true) + file = _dataManager.GetFile<LgbFile>(text3); + } + catch (Exception exception) + { + _logger.LogTrace(exception, "Failed to load LGB file {Path}", text3); + continue; + } + if (file == null) + { + continue; + } + num2++; + LayerCommon.Layer[] layers = file.Layers; + for (int j = 0; j < layers.Length; j++) + { + LayerCommon.Layer layer = layers[j]; + bool flag = layer.FestivalID != 0 || layer.IsTemporary != 0; + LayerCommon.InstanceObject[] instanceObjects = layer.InstanceObjects; + for (int k = 0; k < instanceObjects.Length; k++) { - if (num8 < lgbFileNames.Length) + LayerCommon.InstanceObject instanceObject = instanceObjects[k]; + uint baseId; + if (instanceObject.AssetType == LayerEntryType.EventNPC) { - string text2 = lgbFileNames[num8]; - string[] obj = new string[5] - { - global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-849387939), - null, - null, - null, - null - }; - int num9 = num10; - num3 = 1; - num4 = num9; - obj[1] = _202D_202D_200D_206A_206D_202D_200B_202A_200B_202B_202D_206C_206C_202B_202E_206F_200C_206A_202D_206C_200B_200E_202E_200E_200B_206C_200D_202B_206F_202A_200E_202D_202D_202B_200C_200E_200C_202E_202A_206C_202E(text, 0, (num4 | num3) + (num4 & num3)); - obj[2] = global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(993927731); - obj[3] = text2; - obj[4] = global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(2127002196); - string text3 = _202D_202D_206A_206E_200C_200E_200D_206C_200D_206E_200C_200D_202E_202A_206D_206D_200E_202B_206E_206A_206E_206E_206B_202E_206C_202D_206F_200B_206D_206A_206A_206C_202D_206B_206F_200C_202C_200B_202D_206E_202E(obj); - if (!visitedLgbPaths.Add(text3)) - { - goto IL_0458; - } - try - { - file = _dataManager.GetFile<LgbFile>(text3); - } - catch (Exception ex) - { - _206D_206F_200F_202C_200C_206A_206A_206C_200F_202B_206F_206D_200E_200D_202C_202D_200D_200D_202A_200E_200E_206E_202B_200F_202D_206C_206F_206B_202D_206E_202B_202A_206C_206B_200B_206A_200C_202E_206D_202D_202E((ILogger)_logger, ex, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1684031378), new object[1] { text3 }); - goto IL_0458; - } - num = ((file == null) ? (-959666391) : (-959666381)); + baseId = ((LayerCommon.ENPCInstanceObject)instanceObject.Object).ParentData.ParentData.BaseId; } else { - num = -959666382; + if (instanceObject.AssetType != LayerEntryType.EventObject) + { + continue; + } + baseId = ((LayerCommon.EventInstanceObject)instanceObject.Object).ParentData.BaseId; } - while (true) + if (baseId != 0 && (!cache.TryGetValue(baseId, out (ushort, Vector3, bool) value) || !(!value.Item3 || flag))) { - int num11 = num; - num3 = -959666372; - num4 = num11; - int num12; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 3: - num = ((!(_options.ScanThrottle > TimeSpan.Zero)) ? (-959666387) : (-959666380)); - continue; - case 0: - { - bool num18 = !value.Item3; - num3 = (flag ? 1 : 0); - num4 = (num18 ? 1 : 0); - num = ((num4 + num3 - (num4 & num3) != 0) ? (-959666376) : (-959666373)); - continue; - } - case 19: - num = -959666381; - continue; - case 13: - baseId = ((LayerCommon.EventInstanceObject)instanceObject.Object).ParentData.BaseId; - num = -959666386; - continue; - case 11: - instanceObject = instanceObjects[num17]; - num = ((instanceObject.AssetType != LayerEntryType.EventNPC) ? (-959666374) : (-959666379)); - continue; - case 6: - num = ((instanceObject.AssetType != LayerEntryType.EventObject) ? (-959666376) : (-959666383)); - continue; - case 17: - return; - case 7: - cache[baseId] = ((ushort)territory.RowId, new Vector3(instanceObject.Transform.Translation.X, instanceObject.Transform.Translation.Y, instanceObject.Transform.Translation.Z), flag); - num = -959666376; - continue; - case 15: - { - int num19 = num7; - num3 = 1; - num4 = num19; - num7 = (num4 | num3) + (num4 & num3); - array = _202B_202E_206F_206F_202B_200B_206B_202A_206E_206D_206F_202E_202E_200D_200C_206D_206F_202A_200D_206F_206E_206C_202A_200B_202D_206B_202D_200B_206E_200C_206E_206B_206F_206F_200C_206E_202A_202A_200C_200C_202E(file); - num14 = 0; - num = -959666384; - continue; - } - case 14: - num = ((num7 <= 0) ? (-959666387) : (-959666369)); - continue; - case 2: - num12 = ((layer.IsTemporary != 0) ? 1 : 0); - goto IL_051b; - case 8: - _206C_200B_206C_206F_206E_206A_206C_206A_206F_200D_206A_202E_206F_206B_200B_200C_206E_206E_206D_202D_200B_202B_202A_200D_206A_206C_206C_200D_200C_202A_202C_202B_206A_206D_200B_200B_202B_206C_202E_206A_202E(_options.ScanThrottle); - num = -959666387; - continue; - case 4: - { - int num20 = num17; - num3 = 1; - num4 = num20; - num17 = (num4 | num3) + (num4 & num3); - num = -959666371; - continue; - } - case 9: - baseId = ((LayerCommon.ENPCInstanceObject)instanceObject.Object).ParentData.ParentData.BaseId; - num = -959666386; - continue; - case 18: - num = ((baseId == 0) ? (-959666376) : (-959666388)); - continue; - case 16: - num = ((!cache.TryGetValue(baseId, out value)) ? (-959666373) : (-959666372)); - continue; - case 21: - break; - case 5: - layer = array[num14]; - num = ((layer.FestivalID != 0) ? (-959666378) : (-959666370)); - continue; - case 1: - num = ((num17 < instanceObjects.Length) ? (-959666377) : (-959666392)); - continue; - case 12: - num = ((num14 < array.Length) ? (-959666375) : (-959666391)); - continue; - case 20: - { - int num13 = num14; - num3 = 1; - num4 = num13; - int num15 = num4 ^ num3; - int num16 = num4 & num3; - num14 = num15 + (num16 + num16); - num = -959666384; - continue; - } - case 10: - { - num12 = 1; - goto IL_051b; - } - IL_051b: - flag = (byte)num12 != 0; - instanceObjects = layer.InstanceObjects; - num17 = 0; - num = -959666371; - continue; - } - break; + cache[baseId] = ((ushort)territory.RowId, new Vector3(instanceObject.Transform.Translation.X, instanceObject.Transform.Translation.Y, instanceObject.Transform.Translation.Z), flag); } - goto IL_0458; - IL_0458: - int num21 = num8; - num3 = 1; - num4 = num21; - num8 = (num4 | num3) + (num4 & num3); } } - } + } + if (num2 > 0 && _options.ScanThrottle > TimeSpan.Zero) + { + Thread.Sleep(_options.ScanThrottle); } } - - static object _202C_200B_202B_202C_206D_206E_202B_202C_200B_206B_200C_206C_202A_200B_200F_202C_206B_200E_206A_206D_200F_200D_206B_206D_200B_200C_206D_200D_206F_202E_202A_206E_202B_206C_206D_200F_206C_200D_206A_206B_202E() - { - return new object(); - } - - static void _200B_206A_200F_200D_200E_202A_200C_200E_206E_206B_206E_206A_202E_206E_206B_206F_200E_206B_206E_206D_202B_200D_202C_202A_206D_202A_202C_200C_206F_200F_206A_202D_206C_202A_200B_206A_202B_200E_206C_206D_202E(object P_0, ref bool P_1) - { - Monitor.Enter(P_0, ref P_1); - } - - static void _200D_200C_206C_202E_206E_206F_206F_202E_206A_200D_206B_202A_206D_200F_202D_206D_200E_200C_200D_202B_202B_206F_202C_202E_200B_206D_202E_206E_202E_202B_202B_200D_202D_206D_202E_200C_206A_206C_200F_202E_202E(object P_0) - { - Monitor.Exit(P_0); - } - - static void _202D_206F_206E_200E_200F_206F_206B_206A_202A_206E_206F_202B_206E_206E_202C_200F_202D_206B_206A_200F_206C_202D_202E_202C_200E_206A_200F_206B_202A_200D_202D_206D_206E_206B_200B_202C_206A_206B_202B_202A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _206B_202C_200C_202A_200C_202B_200D_206B_206D_206C_200C_206E_200D_202E_202C_206E_206F_200E_202B_200E_202A_206C_202E_200E_202E_202D_206A_206B_206B_200B_200B_202B_200D_202E_202E_206E_200F_202B_206A_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static string _202A_206E_206D_202D_206F_200F_206B_206D_206F_202C_206A_202B_200B_206F_206C_206B_200E_206A_206A_202B_206F_200D_200F_202C_206D_202B_200F_200E_200C_202B_206A_206F_206D_202B_206B_202B_206A_206D_206E_202A_202E(string P_0, string P_1) - { - return Path.Combine(P_0, P_1); - } - - static bool _202E_202B_206B_202B_202C_200E_206A_200B_200E_202C_202C_202A_202A_206A_202B_202C_202B_206A_206D_206F_200F_206E_206A_206B_202D_200E_202B_206E_202B_202B_200D_200F_202A_206C_200F_200F_200F_206E_200E_200F_202E(string P_0) - { - return File.Exists(P_0); - } - - static FileStream _202C_206E_200B_206F_200F_202B_202A_206E_200D_206A_200F_200F_206D_206F_200F_206D_200C_202B_202C_202A_200F_202C_200D_200F_202B_200F_206F_202E_206D_200D_206C_200B_206E_202A_202E_202B_206F_200C_202A_200F_202E(string P_0) - { - return File.OpenRead(P_0); - } - - static BinaryReader _202C_206B_202E_200D_206B_202A_202D_202D_202D_202A_206A_200D_206C_200F_206B_200D_202B_206D_202C_202D_200E_200D_202A_206B_202B_200B_202B_202E_206F_206C_206D_200F_202D_200B_202E_202C_202D_200D_202D_206B_202E(Stream P_0) - { - return new BinaryReader(P_0); - } - - static uint _202B_202B_202D_202B_202B_202C_200F_202A_206F_202B_206C_206E_200D_206F_202C_202A_202C_202C_206D_206D_206B_202C_206C_202B_206B_202A_202A_206F_202E_206A_206D_200E_206C_200E_202B_200B_200C_202C_202A_200F_202E(BinaryReader P_0) - { - return P_0.ReadUInt32(); - } - - static int _206F_200B_200D_206A_200E_200E_200F_200D_206E_206A_200D_206E_206B_200B_200F_206D_200B_200C_202C_200C_200C_202D_206D_202D_202D_206A_200F_200C_200C_200C_200C_202B_200E_200C_202A_206D_202E_206B_206E_200F_202E(BinaryReader P_0) - { - return P_0.ReadInt32(); - } - - static string _206D_202A_202D_200F_202E_202C_200C_200E_200D_202E_206F_202D_202A_200B_206B_206D_206B_202C_206B_206D_206F_206C_206B_200E_206E_206C_206C_200E_206F_200C_200B_206E_202A_200C_202C_200B_202E_200C_206E_200E_202E(BinaryReader P_0) - { - return P_0.ReadString(); - } - - static bool _206D_202D_202D_206C_206E_206B_206E_206A_200B_202B_202A_202B_202E_202D_202A_200C_202D_202A_206F_206F_200D_202C_200E_202A_200C_206A_202E_202B_206A_202E_202C_206A_202E_206B_202A_202B_206F_206D_200E_200C_202E(string P_0, string P_1) - { - return P_0 != P_1; - } - - static ushort _202C_200B_202A_202E_206C_200E_200F_206C_200E_202E_202A_206C_202B_202C_202D_202A_202B_206D_202C_202C_200E_202E_202A_202D_200C_200F_200F_202C_206C_206A_202B_206F_202A_202C_202A_202D_202C_200B_206F_202E_202E(BinaryReader P_0) - { - return P_0.ReadUInt16(); - } - - static float _206F_200B_202B_206A_206B_206A_200B_202C_202D_200D_206B_200B_206B_202B_202D_206A_206F_200B_206A_200B_206F_202C_202A_200E_206E_206D_206E_202D_206B_200F_202E_202E_200B_206B_206F_202E_206D_200D_206A_200E_202E(BinaryReader P_0) - { - return P_0.ReadSingle(); - } - - static bool _206A_200B_200D_200D_202C_202A_200B_206F_206D_202C_206C_202C_202B_202D_202C_202D_206F_200C_206E_200C_206E_200B_200F_202D_202A_200F_202E_202C_202B_206D_206A_206D_200B_200C_200B_200F_200F_202B_200C_206F_202E(BinaryReader P_0) - { - return P_0.ReadBoolean(); - } - - static void _206D_202C_200F_202A_200D_202A_206B_206D_202E_202D_200D_206B_202B_202D_200E_206F_202D_202A_202C_200D_202E_202D_206A_206E_206B_202D_200B_202C_206B_206A_202D_206E_202D_206A_206A_206F_206C_202B_200C_206A_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _200F_202C_202E_206C_206C_202B_206C_202D_202D_206E_202B_202D_200E_206B_206B_200B_206B_202B_206B_200B_202E_202C_206A_206B_206E_202A_200D_202C_202A_200F_202C_202A_202A_206F_206F_200E_202C_202B_200D_206D_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogWarning(P_1, P_2, P_3); - } - - static void _202B_202E_202C_206C_206B_206F_202C_200E_206E_200B_202A_206F_202A_200D_206C_206B_200F_200B_200E_200F_206B_202A_202C_206D_202E_206B_206E_200F_206C_200B_202B_206A_202B_206E_206D_202A_200C_206A_202B_202B_202E(string P_0) - { - File.Delete(P_0); - } - - static DirectoryInfo _206A_200D_206F_206D_200C_202A_200C_202D_206E_206C_206D_206E_206D_202D_206B_202D_206C_202B_200F_202E_206C_206D_200F_202D_202E_206E_200B_202B_200F_200B_206C_200D_206B_200D_202A_202E_206C_206B_200F_202A_202E(string P_0) - { - return Directory.CreateDirectory(P_0); - } - - static string _200D_200D_206D_206D_206E_200C_200E_202B_206F_200B_200C_200E_200D_202B_206E_206C_200F_202E_206B_200F_206D_206B_200C_200F_200F_206D_202B_202E_202D_206D_200C_200E_200E_206A_202A_206C_200E_206F_202D_206C_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static FileStream _206D_206E_202B_200B_200B_202A_202D_206F_206C_206F_206F_202B_200F_200E_206E_206D_206A_202C_202E_200E_206F_202C_200F_200E_200B_202A_202A_200E_200F_202C_202A_200C_202E_206C_202C_200C_206C_202B_202A_206D_202E(string P_0) - { - return File.Create(P_0); - } - - static BinaryWriter _202E_206F_200E_206B_206A_206D_206D_200F_206A_202A_200D_200F_200D_202C_200C_200F_206F_202A_202E_202E_202C_202B_206E_206F_200F_200C_200F_200B_200F_206F_202E_200B_200E_206C_206A_202C_206F_202D_202B_206C_202E(Stream P_0) - { - return new BinaryWriter(P_0); - } - - static void _206F_202A_202B_206C_202E_200C_200B_200F_206D_200E_202D_202B_202D_206D_206B_206F_202D_200E_200C_200B_202E_200C_206E_200E_200E_200E_206E_206F_206F_206C_206F_200B_206E_206C_200E_202B_200F_200B_200D_206B_202E(BinaryWriter P_0, uint P_1) - { - P_0.Write(P_1); - } - - static void _200E_206C_202B_202B_200C_200B_200E_200D_200B_200D_206B_206E_202D_202A_206D_202D_200F_202A_200E_206E_200B_202C_206C_200C_200F_206B_202A_206D_206B_202C_206C_202B_206C_202A_202D_200F_206E_206D_206E_200F_202E(BinaryWriter P_0, int P_1) - { - P_0.Write(P_1); - } - - static void _202A_202A_206F_206B_206A_200F_202D_206E_202D_206D_206D_202E_206A_202B_202D_202C_206E_202A_202A_202D_202E_202D_200C_202B_202A_206E_200C_200D_206B_206B_202A_200F_202B_202A_206C_202A_206B_202C_202B_206A_202E(BinaryWriter P_0, string P_1) - { - P_0.Write(P_1); - } - - static void _206E_200B_200E_200C_200B_206E_206A_200D_202D_202D_200E_202A_202A_202E_202D_206E_206B_206F_202B_206C_202B_202C_206C_206E_202C_206E_200D_200C_206A_206F_200F_206E_206A_202B_202C_200C_200D_202B_202A_200E_202E(BinaryWriter P_0, ushort P_1) - { - P_0.Write(P_1); - } - - static void _200E_202D_206C_202B_202A_206B_200D_202D_200B_206F_202C_202A_200E_202A_202B_200B_200D_202E_206F_200C_202A_202C_202E_206C_206B_202D_202E_202E_200D_206B_200B_206E_200C_206C_200F_202A_200C_202D_206D_200F_202E(BinaryWriter P_0, float P_1) - { - P_0.Write(P_1); - } - - static void _200F_206E_202A_202E_200C_202D_206D_202B_206B_200B_200B_202A_200C_206D_206E_200B_206F_202D_200C_206E_206C_202D_206A_206A_206F_202C_200B_200F_206F_202C_200D_200E_202C_206C_202B_202A_206B_200B_202E_202E_202E(BinaryWriter P_0, bool P_1) - { - P_0.Write(P_1); - } - - static void _206C_206F_200E_206B_200F_202E_206D_206F_202D_206B_202B_202C_200B_200B_206C_200F_202D_202B_202B_202B_200E_206A_200E_206E_206E_200D_206C_200E_202B_202A_206F_200E_202B_202C_202B_206C_200D_200E_206D_202B_202E(string P_0, string P_1, bool P_2) - { - File.Move(P_0, P_1, P_2); - } - - static int _206A_200D_206A_200C_202E_202A_202C_202C_202E_206C_206B_200F_202A_200B_202A_206D_206C_202D_200F_200B_200C_206A_200C_206A_202E_200D_206C_206B_206D_200E_200F_206A_202D_202D_200E_206A_200D_202C_206D_200C_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.IndexOf(P_1, P_2); - } - - static string _202D_202D_200D_206A_206D_202D_200B_202A_200B_202B_202D_206C_206C_202B_202E_206F_200C_206A_202D_206C_200B_200E_202E_200E_200B_206C_200D_202B_206F_202A_200E_202D_202D_202B_200C_200E_200C_202E_202A_206C_202E(string P_0, int P_1, int P_2) - { - return P_0.Substring(P_1, P_2); - } - - static string _202D_202D_206A_206E_200C_200E_200D_206C_200D_206E_200C_200D_202E_202A_206D_206D_200E_202B_206E_206A_206E_206E_206B_202E_206C_202D_206F_200B_206D_206A_206A_206C_202D_206B_206F_200C_202C_200B_202D_206E_202E(string[] P_0) - { - return string.Concat(P_0); - } - - static void _206D_206F_200F_202C_200C_206A_206A_206C_200F_202B_206F_206D_200E_200D_202C_202D_200D_200D_202A_200E_200E_206E_202B_200F_202D_206C_206F_206B_202D_206E_202B_202A_206C_206B_200B_206A_200C_202E_206D_202D_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogTrace(P_1, P_2, P_3); - } - - static LayerCommon.Layer[] _202B_202E_206F_206F_202B_200B_206B_202A_206E_206D_206F_202E_202E_200D_200C_206D_206F_202A_200D_206F_206E_206C_202A_200B_202D_206B_202D_200B_206E_200C_206E_206B_206F_206F_200C_206E_202A_202A_200C_200C_202E(LgbFile P_0) - { - return P_0.Layers; - } - - static void _206C_200B_206C_206F_206E_206A_206C_206A_206F_200D_206A_202E_206F_206B_200B_200C_206E_206E_206D_202D_200B_202B_202A_200D_206A_206C_206C_200D_200C_202A_202C_202B_206A_206D_200B_200B_202B_206C_202E_206A_202E(TimeSpan P_0) - { - Thread.Sleep(P_0); - } } diff --git a/LLib/LLib.Shop/NpcPositionCacheOptions.cs b/LLib/LLib.Shop/NpcPositionCacheOptions.cs index e3c0f57..c0e3033 100644 --- a/LLib/LLib.Shop/NpcPositionCacheOptions.cs +++ b/LLib/LLib.Shop/NpcPositionCacheOptions.cs @@ -1,152 +1,12 @@ using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; namespace LLib.Shop; public sealed record NpcPositionCacheOptions { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200D_200B_200C_206D_206E_206F_200D_202D_206B_202E_202C_206F_206E_200C_202B_202D_206F_206C_206A_202C_202A_206C_200C_200D_206A_200D_200B_202D_202A_200E_202D_206C_200C_200F_202B_206F_202E_206E_206F_200E_202E(typeof(NpcPositionCacheOptions).TypeHandle); - } - } - public string? CacheDirectory { get; init; } public string? GameVersion { get; init; } public TimeSpan ScanThrottle { get; init; } = TimeSpan.Zero; - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202B_206D_202A_206F_202C_206F_202C_200C_200F_206C_202A_202E_200E_202D_200D_200D_200D_202E_206F_200B_202B_200E_200D_206C_200F_206C_206B_206C_206E_200C_200D_206F_206F_200E_206D_200F_200E_202C_206F_200C_202E(); - _206D_206E_200B_202D_202C_206E_202C_202B_206C_206D_202B_202A_206A_200E_206A_206B_200C_202D_206B_200B_200C_206B_202E_200C_200C_202E_206A_200B_202A_206D_206E_200F_206E_202C_206C_202D_202B_202E_200D_206E_202E(stringBuilder, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-186520668)); - _206D_206E_200B_202D_202C_206E_202C_202B_206C_206D_202B_202A_206A_200E_206A_206B_200C_202D_206B_200B_200C_206B_202E_200C_200C_202E_206A_200B_202A_206D_206E_200F_206E_202C_206C_202D_202B_202E_200D_206E_202E(stringBuilder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(579144622)); - int num = ((!PrintMembers(stringBuilder)) ? (-658124115) : (-658124116)); - while (true) - { - int num2 = num; - int num3 = -658124115; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -658124116; - break; - case 1: - _202E_200D_202E_200E_206C_200D_206A_206B_202B_200B_206B_206F_206F_206F_206D_206C_202D_202C_206F_202A_206B_206A_202D_202E_202A_206F_200B_206F_200E_206A_200D_202B_202B_200B_206A_202A_202E_200D_200C_202E_202E(stringBuilder, ' '); - num = -658124115; - break; - case 0: - _202E_200D_202E_200E_206C_200D_206A_206B_202B_200B_206B_206F_206F_206F_206D_206C_202D_202C_206F_202A_206B_206A_202D_202E_202A_206F_200B_206F_200E_206A_200D_202B_202B_200B_206A_202A_202E_200D_200C_202E_202E(stringBuilder, '}'); - return _200B_202C_202C_200F_200F_206F_200B_200D_202E_202B_206F_206F_200D_200D_206B_200E_200F_202A_202D_202C_200B_206C_200D_202B_206E_202C_206F_206A_206F_206B_202A_200D_206F_202D_200F_200E_206E_200C_206C_200C_202E((object?)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206E_202A_202D_202A_202E_202A_200B_200B_202B_202B_202D_202E_206D_206D_206B_202B_202A_202D_206E_206E_200F_200B_206B_206E_200E_202C_206A_202E_206D_200D_202C_202A_202A_206F_200C_202D_202E_206E_200B_206C_202E(); - _206D_206E_200B_202D_202C_206E_202C_202B_206C_206D_202B_202A_206A_200E_206A_206B_200C_202D_206B_200B_200C_206B_202E_200C_200C_202E_206A_200B_202A_206D_206E_200F_206E_202C_206C_202D_202B_202E_200D_206E_202E(builder, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(624739849)); - _206C_202D_206D_202A_202B_202D_206C_206F_202B_206D_206C_202C_206F_202E_200F_206C_202C_200E_200E_202C_206A_200F_202C_200B_202B_200D_202E_200C_206F_206A_206C_202C_202C_206E_200E_206D_202E_200F_206A_206F_202E(builder, (object?)CacheDirectory); - _206D_206E_200B_202D_202C_206E_202C_202B_206C_206D_202B_202A_206A_200E_206A_206B_200C_202D_206B_200B_200C_206B_202E_200C_200C_202E_206A_200B_202A_206D_206E_200F_206E_202C_206C_202D_202B_202E_200D_206E_202E(builder, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1054887383)); - _206C_202D_206D_202A_202B_202D_206C_206F_202B_206D_206C_202C_206F_202E_200F_206C_202C_200E_200E_202C_206A_200F_202C_200B_202B_200D_202E_200C_206F_206A_206C_202C_202C_206E_200E_206D_202E_200F_206A_206F_202E(builder, (object?)GameVersion); - _206D_206E_200B_202D_202C_206E_202C_202B_206C_206D_202B_202A_206A_200E_206A_206B_200C_202D_206B_200B_200C_206B_202E_200C_200C_202E_206A_200B_202A_206D_206E_200F_206E_202C_206C_202D_202B_202E_200D_206E_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(2000135391)); - _206D_206E_200B_202D_202C_206E_202C_202B_206C_206D_202B_202A_206A_200E_206A_206B_200C_202D_206B_200B_200C_206B_202E_200C_200C_202E_206A_200B_202A_206D_206E_200F_206E_202C_206C_202D_202B_202E_200D_206E_202E(builder, ScanThrottle.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(NpcPositionCacheOptions? other) - { - int num = (((object)this == other) ? (-1497695151) : (-1497695145)); - while (true) - { - int num2 = num; - int num3 = -1497695146; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - num = -1497695145; - break; - case 3: - return false; - case 1: - num = (((object)other == null) ? (-1497695147) : (-1497695146)); - break; - case 2: - num = ((!EqualityComparer<string>.Default.Equals(GameVersion, other.GameVersion)) ? (-1497695147) : (-1497695152)); - break; - case 6: - return EqualityComparer<TimeSpan>.Default.Equals(ScanThrottle, other.ScanThrottle); - case 7: - return true; - case 4: - num = ((!EqualityComparer<string>.Default.Equals(CacheDirectory, other.CacheDirectory)) ? (-1497695147) : (-1497695148)); - break; - case 0: - num = ((!_200C_202B_206E_200C_206B_202A_202C_202D_200D_206D_200C_200F_200F_200D_206B_206F_206F_206C_202D_206D_202A_206D_200D_200C_202E_200B_200C_200B_200F_202D_206D_206E_200C_200C_202C_206F_200B_200F_202D_202C_202E(EqualityContract, other.EqualityContract)) ? (-1497695147) : (-1497695150)); - break; - } - } - } - - bool IEquatable<NpcPositionCacheOptions>.Equals(NpcPositionCacheOptions? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type? _200D_200B_200C_206D_206E_206F_200D_202D_206B_202E_202C_206F_206E_200C_202B_202D_206F_206C_206A_202C_202A_206C_200C_200D_206A_200D_200B_202D_202A_200E_202D_206C_200C_200F_202B_206F_202E_206E_206F_200E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder? _202B_206D_202A_206F_202C_206F_202C_200C_200F_206C_202A_202E_200E_202D_200D_200D_200D_202E_206F_200B_202B_200E_200D_206C_200F_206C_206B_206C_206E_200C_200D_206F_206F_200E_206D_200F_200E_202C_206F_200C_202E() - { - return new StringBuilder(); - } - - static StringBuilder? _206D_206E_200B_202D_202C_206E_202C_202B_206C_206D_202B_202A_206A_200E_206A_206B_200C_202D_206B_200B_200C_206B_202E_200C_200C_202E_206A_200B_202A_206D_206E_200F_206E_202C_206C_202D_202B_202E_200D_206E_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _202E_200D_202E_200E_206C_200D_206A_206B_202B_200B_206B_206F_206F_206F_206D_206C_202D_202C_206F_202A_206B_206A_202D_202E_202A_206F_200B_206F_200E_206A_200D_202B_202B_200B_206A_202A_202E_200D_200C_202E_202E(StringBuilder? P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string? _200B_202C_202C_200F_200F_206F_200B_200D_202E_202B_206F_206F_200D_200D_206B_200E_200F_202A_202D_202C_200B_206C_200D_202B_206E_202C_206F_206A_206F_206B_202A_200D_206F_202D_200F_200E_206E_200C_206C_200C_202E(object? P_0) - { - return P_0.ToString(); - } - - static void _206E_202A_202D_202A_202E_202A_200B_200B_202B_202B_202D_202E_206D_206D_206B_202B_202A_202D_206E_206E_200F_200B_206B_206E_200E_202C_206A_202E_206D_200D_202C_202A_202A_206F_200C_202D_202E_206E_200B_206C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder? _206C_202D_206D_202A_202B_202D_206C_206F_202B_206D_206C_202C_206F_202E_200F_206C_202C_200E_200E_202C_206A_200F_202C_200B_202B_200D_202E_200C_206F_206A_206C_202C_202C_206E_200E_206D_202E_200F_206A_206F_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } - - static bool _200C_202B_206E_200C_206B_202A_202C_202D_200D_206D_200C_200F_200F_200D_206B_206F_206F_206C_202D_206D_202A_206D_200D_200C_202E_200B_200C_200B_200F_202D_206D_206E_200C_200C_202C_206F_200B_200F_202D_202C_202E(Type? P_0, Type? P_1) - { - return P_0 == P_1; - } } diff --git a/LLib/LLib.Shop/RegularShopBase.cs b/LLib/LLib.Shop/RegularShopBase.cs index e1fbeb7..ec8c343 100644 --- a/LLib/LLib.Shop/RegularShopBase.cs +++ b/LLib/LLib.Shop/RegularShopBase.cs @@ -1,10 +1,7 @@ using System; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Threading; using Dalamud.Game.Addon.Lifecycle; using Dalamud.Game.Addon.Lifecycle.AddonArgTypes; -using Dalamud.Game.NativeWrapper; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Component.GUI; using LLib.GameUI; @@ -31,9 +28,6 @@ public class RegularShopBase : IDisposable private long _purchaseDeadlineMs; - [CompilerGenerated] - private EventHandler<PurchaseCompletedEventArgs>? m_PurchaseCompleted; - private const int MaxPurchaseQuantity = 99; private const int MaxWaitMs = 3000; @@ -52,267 +46,110 @@ public class RegularShopBase : IDisposable } set { - int num = ((PurchaseState == null) ? (-314894367) : (-314894366)); - while (true) + if (PurchaseState != null) { - int num2 = num; - int num3 = -314894368; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -314894366; - break; - case 1: - return; - case 2: - PurchaseState.IsAwaitingYesNo = value; - num = -314894367; - break; - } + PurchaseState.IsAwaitingYesNo = value; } } } - public event EventHandler<PurchaseCompletedEventArgs>? PurchaseCompleted - { - [CompilerGenerated] - add - { - EventHandler<PurchaseCompletedEventArgs> eventHandler = this.m_PurchaseCompleted; - int num = 660558086; - while (true) - { - int num2 = num; - int num3 = 660558087; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return; - case 1: - { - EventHandler<PurchaseCompletedEventArgs> eventHandler2 = eventHandler; - EventHandler<PurchaseCompletedEventArgs> value2 = (EventHandler<PurchaseCompletedEventArgs>)_202E_202D_202E_200D_200B_206C_202C_200F_206C_200C_206B_202A_200B_202A_200D_206B_202B_206B_200F_200C_206C_206C_206B_202B_202C_200D_206B_202A_200E_206D_206B_200E_200E_206E_202D_206D_200F_206E_202C_206E_202E((Delegate)eventHandler2, (Delegate)value); - eventHandler = Interlocked.CompareExchange(ref this.m_PurchaseCompleted, value2, eventHandler2); - num = (((object)eventHandler != eventHandler2) ? 660558086 : 660558085); - break; - } - case 0: - num = 660558086; - break; - } - } - } - [CompilerGenerated] - remove - { - EventHandler<PurchaseCompletedEventArgs> eventHandler = this.m_PurchaseCompleted; - int num = 1746183052; - while (true) - { - int num2 = num; - int num3 = 1746183053; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1746183052; - break; - case 2: - return; - case 1: - { - EventHandler<PurchaseCompletedEventArgs> eventHandler2 = eventHandler; - EventHandler<PurchaseCompletedEventArgs> value2 = (EventHandler<PurchaseCompletedEventArgs>)_200B_206D_202C_206D_206C_200D_202B_200D_202A_202E_200E_200C_200E_206D_202B_206E_200F_206E_200E_200B_202C_206E_202C_206A_206B_206F_206B_200B_206D_202D_202C_202C_206D_202B_202D_206B_200D_200C_200C_202C_202E((Delegate)eventHandler2, (Delegate)value); - eventHandler = Interlocked.CompareExchange(ref this.m_PurchaseCompleted, value2, eventHandler2); - num = (((object)eventHandler != eventHandler2) ? 1746183052 : 1746183055); - break; - } - } - } - } - } + public event EventHandler<PurchaseCompletedEventArgs>? PurchaseCompleted; - [MethodImpl(MethodImplOptions.NoInlining)] public RegularShopBase(IShopWindow parentWindow, string addonName, IPluginLog pluginLog, IGameGui gameGui, IAddonLifecycle addonLifecycle, IDataManager dataManager) { - _206B_206A_202C_200C_206E_200C_202C_206A_200D_202A_202D_206D_200E_200B_206E_206F_200B_206A_206F_202D_200F_202A_202C_200E_202C_202B_206A_202C_200F_202D_206D_202D_202A_206C_202C_206C_206B_200B_200D_200F_202E((object)parentWindow, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1152352366)); - _200F_206D_202A_206D_200C_206A_202D_200D_206E_200F_206E_206D_206F_202B_202C_202A_200E_202D_206C_202B_200E_202D_206F_206C_202B_202B_206F_206F_206D_202C_202B_202E_200D_202A_206D_206A_206C_200C_206F_200F_202E(addonName, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(876094366)); - _206B_206A_202C_200C_206E_200C_202C_206A_200D_202A_202D_206D_200E_200B_206E_206F_200B_206A_206F_202D_200F_202A_202C_200E_202C_202B_206A_202C_200F_202D_206D_202D_202A_206C_202C_206C_206B_200B_200D_200F_202E((object)pluginLog, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-2117874046)); - _206B_206A_202C_200C_206E_200C_202C_206A_200D_202A_202D_206D_200E_200B_206E_206F_200B_206A_206F_202D_200F_202A_202C_200E_202C_202B_206A_202C_200F_202D_206D_202D_202A_206C_202C_206C_206B_200B_200D_200F_202E((object)gameGui, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(608358874)); - _206B_206A_202C_200C_206E_200C_202C_206A_200D_202A_202D_206D_200E_200B_206E_206F_200B_206A_206F_202D_200F_202A_202C_200E_202C_202B_206A_202C_200F_202D_206D_202D_202A_206C_202C_206C_206B_200B_200D_200F_202E((object)addonLifecycle, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1756451262)); - _206B_206A_202C_200C_206E_200C_202C_206A_200D_202A_202D_206D_200E_200B_206E_206F_200B_206A_206F_202D_200F_202A_202C_200E_202C_202B_206A_202C_200F_202D_206D_202D_202A_206C_202C_206C_206B_200B_200D_200F_202E((object)dataManager, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(990210437)); + ArgumentNullException.ThrowIfNull(parentWindow, "parentWindow"); + ArgumentException.ThrowIfNullOrEmpty(addonName, "addonName"); + ArgumentNullException.ThrowIfNull(pluginLog, "pluginLog"); + ArgumentNullException.ThrowIfNull(gameGui, "gameGui"); + ArgumentNullException.ThrowIfNull(addonLifecycle, "addonLifecycle"); + ArgumentNullException.ThrowIfNull(dataManager, "dataManager"); _parentWindow = parentWindow; _addonName = addonName; _pluginLog = pluginLog; _gameGui = gameGui; _addonLifecycle = addonLifecycle; _itemSheet = dataManager.GetExcelSheet<Item>(); - _202B_200B_206D_200B_206F_200C_200C_206E_200B_206E_206D_206B_206E_202A_200B_206F_202B_206F_206F_206E_200D_200F_206D_200E_202C_200D_206E_200C_200D_202A_202C_200B_202A_202E_202D_202E_202A_206B_206F_200C_202E(_addonLifecycle, AddonEvent.PostSetup, _addonName, (IAddonLifecycle.AddonEventDelegate)ShopPostSetup); - _202B_200B_206D_200B_206F_200C_200C_206E_200B_206E_206D_206B_206E_202A_200B_206F_202B_206F_206F_206E_200D_200F_206D_200E_202C_200D_206E_200C_200D_202A_202C_200B_202A_202E_202D_202E_202A_206B_206F_200C_202E(_addonLifecycle, AddonEvent.PreFinalize, _addonName, (IAddonLifecycle.AddonEventDelegate)ShopPreFinalize); - _202B_200B_206D_200B_206F_200C_200C_206E_200B_206E_206D_206B_206E_202A_200B_206F_202B_206F_206F_206E_200D_200F_206D_200E_202C_200D_206E_200C_200D_202A_202C_200B_202A_202E_202D_202E_202A_206B_206F_200C_202E(_addonLifecycle, AddonEvent.PostUpdate, _addonName, (IAddonLifecycle.AddonEventDelegate)ShopPostUpdate); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, _addonName, ShopPostSetup); + _addonLifecycle.RegisterListener(AddonEvent.PreFinalize, _addonName, ShopPreFinalize); + _addonLifecycle.RegisterListener(AddonEvent.PostUpdate, _addonName, ShopPostUpdate); } private unsafe void ShopPostSetup(AddonEvent type, AddonArgs args) { - int num = (_parentWindow.IsEnabled ? (-1920873629) : (-1920873630)); - while (true) + if (!_parentWindow.IsEnabled) { - int num2 = num; - int num3 = -1920873629; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - _parentWindow.IsOpen = true; - num = -1920873632; - break; - case 0: - _parentWindow.UpdateShopStock((AtkUnitBase*)_206F_200C_202D_200F_200F_206B_206F_200D_202B_206C_202E_206C_206F_200D_206F_206B_200C_200B_202E_200D_200B_200C_206B_200F_200B_202E_202C_202C_206A_200C_206D_200D_206D_200B_200E_202C_206D_200B_200C_202A_202E(args).Address); - PostUpdateShopStock(); - num = ((ItemForSale == null) ? (-1920873632) : (-1920873625)); - break; - case 3: - return; - case 2: - num = -1920873630; - break; - case 1: - ItemForSale = null; - _parentWindow.IsOpen = false; - return; - } + ItemForSale = null; + _parentWindow.IsOpen = false; + return; + } + _parentWindow.UpdateShopStock((AtkUnitBase*)args.Addon.Address); + PostUpdateShopStock(); + if (ItemForSale != null) + { + _parentWindow.IsOpen = true; } } private void ShopPreFinalize(AddonEvent type, AddonArgs args) { - int num = ((PurchaseState == null) ? (-1080756393) : (-1080756395)); - while (true) + if (PurchaseState != null && ItemForSale != null) { - int num2 = num; - int num3 = -1080756396; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _parentWindow.IsOpen = false; - return; - case 1: - num = ((ItemForSale == null) ? (-1080756393) : (-1080756400)); - break; - case 4: - CompletePurchase(ItemForSale.ItemId, success: false); - num = -1080756396; - break; - case 3: - PurchaseState = null; - _parentWindow.RestoreExternalPluginState(); - num = -1080756396; - break; - case 2: - num = -1080756395; - break; - } + CompletePurchase(ItemForSale.ItemId, success: false); } + else + { + PurchaseState = null; + _parentWindow.RestoreExternalPluginState(); + } + _parentWindow.IsOpen = false; } private unsafe void ShopPostUpdate(AddonEvent type, AddonArgs args) { - int num = (_parentWindow.IsEnabled ? (-1011514953) : (-1011514956)); - Vector2 valueOrDefault = default(Vector2); - Vector2? position = default(Vector2?); - short num6 = default(short); - short num5 = default(short); - while (true) + if (!_parentWindow.IsEnabled) { - int num2 = num; - int num3 = -1011514953; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + ItemForSale = null; + _parentWindow.IsOpen = false; + return; + } + _parentWindow.UpdateShopStock((AtkUnitBase*)args.Addon.Address); + PostUpdateShopStock(); + if (ItemForSale != null) + { + AtkUnitBase* address = (AtkUnitBase*)args.Addon.Address; + short num = 0; + short num2 = 0; + address->GetPosition(&num, &num2); + ushort num3 = 0; + ushort num4 = 0; + address->GetSize(&num3, &num4, scaled: true); + num += (short)num3; + Vector2? position = _parentWindow.Position; + if (position.HasValue) { - case 0: - _parentWindow.UpdateShopStock((AtkUnitBase*)_206F_200C_202D_200F_200F_206B_206F_200D_202B_206C_202E_206C_206F_200D_206F_206B_200C_200B_202E_200D_200B_200C_206B_200F_200B_202E_202C_202C_206A_200C_206D_200D_206D_200B_200E_202C_206D_200B_200C_202A_202E(args).Address); - PostUpdateShopStock(); - num = ((ItemForSale == null) ? (-1011514945) : (-1011514954)); - break; - case 8: - _parentWindow.IsOpen = false; - return; - case 6: - valueOrDefault = position.GetValueOrDefault(); - num = (((short)valueOrDefault.X != num6) ? (-1011514958) : (-1011514955)); - break; - case 7: - num = -1011514956; - break; - case 4: - _parentWindow.IsOpen = true; - return; - case 5: - _parentWindow.Position = new Vector2(num6, num5); - num = -1011514957; - break; - case 1: - { - AtkUnitBase* address = (AtkUnitBase*)_206F_200C_202D_200F_200F_206B_206F_200D_202B_206C_202E_206C_206F_200D_206F_206B_200C_200B_202E_200D_200B_200C_206B_200F_200B_202E_202C_202C_206A_200C_206D_200D_206D_200B_200E_202C_206D_200B_200C_202A_202E(args).Address; - num6 = 0; - num5 = 0; - address->GetPosition(&num6, &num5); - ushort num7 = 0; - ushort num8 = 0; - address->GetSize(&num7, &num8, scaled: true); - num6 += (short)num7; - position = _parentWindow.Position; - num = ((!position.HasValue) ? (-1011514957) : (-1011514959)); - break; - } - case 2: - num = (((short)valueOrDefault.Y == num5) ? (-1011514957) : (-1011514958)); - break; - case 3: - ItemForSale = null; - _parentWindow.IsOpen = false; - return; + Vector2 valueOrDefault = position.GetValueOrDefault(); + if ((short)valueOrDefault.X != num || (short)valueOrDefault.Y != num2) + { + _parentWindow.Position = new Vector2(num, num2); + } } + _parentWindow.IsOpen = true; + } + else + { + _parentWindow.IsOpen = false; } } private void PostUpdateShopStock() { - int num = ((ItemForSale == null) ? 662202299 : 662202301); - int ownedItems = default(int); - while (true) + if (ItemForSale != null && PurchaseState != null) { - int num2 = num; - int num3 = 662202297; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + int ownedItems = (int)ItemForSale.OwnedItems; + if (PurchaseState.OwnedItems != ownedItems) { - case 3: - ownedItems = (int)ItemForSale.OwnedItems; - num = ((PurchaseState.OwnedItems == ownedItems) ? 662202299 : 662202296); - break; - case 2: - return; - case 0: - num = 662202301; - break; - case 4: - num = ((PurchaseState == null) ? 662202299 : 662202298); - break; - case 1: PurchaseState.OwnedItems = ownedItems; - PurchaseState.NextStepMs = _202E_202E_202D_202D_202D_202D_206B_202B_200E_206D_206E_206C_206B_202C_200C_200D_206C_200E_200C_202E_200B_202D_206B_202C_200E_202E_202C_200C_200E_202A_206C_200C_206F_200D_200E_206D_202A_202E_206C_202E() + 250; - num = 662202299; - break; + PurchaseState.NextStepMs = Environment.TickCount64 + 250; } } } @@ -324,324 +161,93 @@ public class RegularShopBase : IDisposable public int GetMaxItemsToPurchase() { - int num = ((ItemForSale != null) ? (-1965181968) : (-1965181966)); - int maxHoldableQuantity = default(int); - while (true) + if (ItemForSale == null) { - int num2 = num; - int num3 = -1965181965; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - maxHoldableQuantity = InventoryHelper.GetMaxHoldableQuantity(ItemForSale.ItemId, _itemSheet); - num = ((ItemForSale.Price != 0) ? (-1965181967) : (-1965181965)); - break; - case 2: - return _200E_202C_200C_202A_206C_202C_206E_206F_206D_202C_202C_200C_200B_200E_206D_206E_202D_206A_202D_202D_202D_202A_202B_200C_206E_206E_206D_206A_206D_206C_200E_206A_202B_206C_200D_200C_206F_206D_200C_202D_202E((int)(GetCurrencyCount(ItemForSale.CurrencyItemId) / ItemForSale.Price), maxHoldableQuantity); - case 4: - num = -1965181966; - break; - case 1: - return 0; - case 0: - return maxHoldableQuantity; - } + return 0; } + int maxHoldableQuantity = InventoryHelper.GetMaxHoldableQuantity(ItemForSale.ItemId, _itemSheet); + if (ItemForSale.Price == 0) + { + return maxHoldableQuantity; + } + return Math.Min((int)(GetCurrencyCount(ItemForSale.CurrencyItemId) / ItemForSale.Price), maxHoldableQuantity); } public void CancelAutoPurchase() { - int num = ((ItemForSale == null) ? (-639138042) : (-639138043)); - while (true) + if (ItemForSale != null && PurchaseState != null) { - int num2 = num; - int num3 = -639138041; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return; - case 2: - num = ((PurchaseState == null) ? (-639138042) : (-639138044)); - break; - case 0: - num = -639138043; - break; - case 3: - CompletePurchase(ItemForSale.ItemId, success: false); - num = -639138042; - break; - } + CompletePurchase(ItemForSale.ItemId, success: false); } } - [MethodImpl(MethodImplOptions.NoInlining)] public void StartAutoPurchase(int toPurchase) { - int num = ((ItemForSale != null) ? 547091109 : 547091110); - while (true) + if (ItemForSale == null) { - int num2 = num; - int num3 = 547091111; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0046; - case 1: - throw _200D_200C_202A_202D_202C_206D_206F_202E_202A_206E_202B_200E_200C_200F_200C_206B_200E_202E_206E_202E_202B_206C_200E_200D_200C_206B_200D_200F_202D_206D_202E_206A_206B_200D_200E_200E_200F_202D_202A_202A_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1974882015)); - case 2: - PurchaseState = new PurchaseState((int)ItemForSale.OwnedItems + toPurchase, (int)ItemForSale.OwnedItems); - _parentWindow.SaveExternalPluginState(); - return; - } - continue; - IL_0046: - num = 547091110; + throw new InvalidOperationException("Cannot start auto-purchase without an item selected"); } + PurchaseState = new PurchaseState((int)ItemForSale.OwnedItems + toPurchase, (int)ItemForSale.OwnedItems); + _parentWindow.SaveExternalPluginState(); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe void HandleNextPurchaseStep() { - int num = ((ItemForSale == null) ? (-1459965159) : (-1459965154)); - int num7 = default(int); - AtkUnitBase* addonPtr = default(AtkUnitBase*); - while (true) + if (ItemForSale == null || PurchaseState == null) { - int num2 = num; - int num3 = -1459965163; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - num = -1459965154; - break; - case 10: - return; - case 0: - _206B_200E_206A_206A_202E_202E_202E_200F_206C_202B_206E_200C_202C_200F_202E_200E_206E_202E_202C_202C_206E_206B_206E_206C_200E_206F_202C_202B_202B_206E_202C_202C_202C_200F_202C_200C_206B_206D_200F_202B_202E(_pluginLog, _200E_206A_206B_200B_206E_200D_202B_200B_202C_200C_206A_202E_206F_202C_206E_200D_200B_200F_202D_202B_206A_202E_200D_206F_200B_206E_200F_202E_206D_200C_206C_200B_206F_202C_206E_200D_200C_202E_206D_202B_202E(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1851945026), ItemForSale.ItemName), Array.Empty<object>()); - CompletePurchase(ItemForSale.ItemId, success: false); - return; - case 2: - num = ((PurchaseState.NextStepMs != long.MaxValue) ? (-1459965153) : (-1459965155)); - break; - case 13: - { - IPluginLog pluginLog2 = _pluginLog; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(45, 2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1919731444)); - defaultInterpolatedStringHandler2.AppendFormatted(PurchaseState.DesiredItems); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1891359698)); - defaultInterpolatedStringHandler2.AppendFormatted(PurchaseState.OwnedItems); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-542666901)); - _202C_202E_200D_202B_202D_200B_200B_206E_202C_200D_202B_206E_206E_206B_202D_206B_202E_200D_202C_202D_206C_206E_202C_200C_206E_202B_202E_202A_202D_206F_200B_200D_206C_206C_200F_200B_206D_202D_202D_200E_202E(pluginLog2, defaultInterpolatedStringHandler2.ToStringAndClear(), Array.Empty<object>()); - CompletePurchase(ItemForSale.ItemId, success: true); - return; - } - case 1: - num = ((!PurchaseState.IsComplete) ? (-1459965168) : (-1459965160)); - break; - case 5: - { - int maxHoldableQuantity = InventoryHelper.GetMaxHoldableQuantity(ItemForSale.ItemId, _itemSheet); - num7 = _200E_202C_200C_202A_206C_202C_206E_206F_206D_202C_202C_200C_200B_200E_206D_206E_202D_206A_202D_202D_202D_202A_202B_200C_206E_206E_206D_206A_206D_206C_200E_206A_202B_206C_200D_200C_206F_206D_200C_202D_202E(99, maxHoldableQuantity); - num = ((num7 != 0) ? (-1459965167) : (-1459965163)); - break; - } - case 3: - num = ((!_gameGui.TryGetAddonByName<AtkUnitBase>(_addonName, out addonPtr)) ? (-1459965161) : (-1459965156)); - break; - case 4: - num = ((_202E_202E_202D_202D_202D_202D_206B_202B_200E_206D_206E_206C_206B_202C_200C_200D_206C_200E_200C_202E_200B_202D_206B_202C_200E_202E_202C_200C_200E_202A_206C_200C_206F_200D_200E_206D_202A_202E_206C_202E() < PurchaseState.NextStepMs) ? (-1459965161) : (-1459965162)); - break; - case 9: - { - int num8 = _200E_202C_200C_202A_206C_202C_206E_206F_206D_202C_202C_200C_200B_200E_206D_206E_202D_206A_202D_202D_202D_202A_202B_200C_206E_206E_206D_206A_206D_206C_200E_206A_202B_206C_200D_200C_206F_206D_200C_202D_202E(PurchaseState.ItemsLeftToBuy, num7); - IPluginLog pluginLog3 = _pluginLog; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(9, 2); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-2017196427)); - defaultInterpolatedStringHandler3.AppendFormatted(num8); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(640094798)); - defaultInterpolatedStringHandler3.AppendFormatted(ItemForSale.ItemName); - _202C_202E_200D_202B_202D_200B_200B_206E_202C_200D_202B_206E_206E_206B_202D_206B_202E_200D_202C_202D_206C_206E_202C_200C_206E_202B_202E_202A_202D_206F_200B_200D_206C_206C_200F_200B_206D_202D_202D_200E_202E(pluginLog3, defaultInterpolatedStringHandler3.ToStringAndClear(), Array.Empty<object>()); - _parentWindow.TriggerPurchase(addonPtr, num8); - PurchaseState.NextStepMs = long.MaxValue; - _purchaseDeadlineMs = _202E_202E_202D_202D_202D_202D_206B_202B_200E_206D_206E_206C_206B_202C_200C_200D_206C_200E_200C_202E_200B_202D_206B_202C_200E_202E_202C_200C_200E_202A_206C_200C_206F_200D_200E_206D_202A_202E_206C_202E() + 3000; - PurchaseState.IsAwaitingYesNo = true; - return; - } - case 11: - num = ((PurchaseState != null) ? (-1459965164) : (-1459965159)); - break; - case 8: - num = ((_202E_202E_202D_202D_202D_202D_206B_202B_200E_206D_206E_206C_206B_202C_200C_200D_206C_200E_200C_202E_200B_202D_206B_202C_200E_202E_202C_200C_200E_202A_206C_200C_206F_200D_200E_206D_202A_202E_206C_202E() < _purchaseDeadlineMs) ? (-1459965153) : (-1459965166)); - break; - case 7: - { - IPluginLog pluginLog = _pluginLog; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(51, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(785267404)); - defaultInterpolatedStringHandler.AppendFormatted(ItemForSale.ItemName); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1250823657)); - defaultInterpolatedStringHandler.AppendFormatted(3000); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1905813856)); - _206B_200E_206A_206A_202E_202E_202E_200F_206C_202B_206E_200C_202C_200F_202E_200E_206E_202E_202C_202C_206E_206B_206E_206C_200E_206F_202C_202B_202B_206E_202C_202C_202C_200F_202C_200C_206B_206D_200F_202B_202E(pluginLog, defaultInterpolatedStringHandler.ToStringAndClear(), Array.Empty<object>()); - CompletePurchase(ItemForSale.ItemId, success: false); - num = -1459965153; - break; - } - case 12: - return; - } + return; + } + if (PurchaseState.IsComplete) + { + _pluginLog.Information($"Stopping item purchase (desired = {PurchaseState.DesiredItems}, owned = {PurchaseState.OwnedItems})"); + CompletePurchase(ItemForSale.ItemId, success: true); + return; + } + int maxHoldableQuantity = InventoryHelper.GetMaxHoldableQuantity(ItemForSale.ItemId, _itemSheet); + int num = Math.Min(99, maxHoldableQuantity); + AtkUnitBase* addonPtr; + if (num == 0) + { + _pluginLog.Warning("No inventory space for " + ItemForSale.ItemName); + CompletePurchase(ItemForSale.ItemId, success: false); + } + else if (Environment.TickCount64 >= PurchaseState.NextStepMs && _gameGui.TryGetAddonByName<AtkUnitBase>(_addonName, out addonPtr)) + { + int num2 = Math.Min(PurchaseState.ItemsLeftToBuy, num); + _pluginLog.Information($"Buying {num2}x {ItemForSale.ItemName}"); + _parentWindow.TriggerPurchase(addonPtr, num2); + PurchaseState.NextStepMs = long.MaxValue; + _purchaseDeadlineMs = Environment.TickCount64 + 3000; + PurchaseState.IsAwaitingYesNo = true; + } + else if (PurchaseState.NextStepMs == long.MaxValue && Environment.TickCount64 >= _purchaseDeadlineMs) + { + _pluginLog.Warning($"Purchase of {ItemForSale.ItemName} did not progress within {3000}ms, cancelling"); + CompletePurchase(ItemForSale.ItemId, success: false); } } private void CompletePurchase(uint itemId, bool success) { - int num = ((!success) ? (-1114779348) : (-1114779346)); - while (true) - { - int num2 = num; - int num3 = -1114779347; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num7; - int quantityPurchased; - switch (num5 - (num6 + num6)) - { - case 2: - num7 = PurchaseState.OwnedItems - PurchaseState.InitialOwnedItems; - goto IL_005e; - case 3: - num = ((PurchaseState != null) ? (-1114779345) : (-1114779348)); - break; - case 0: - num = -1114779346; - break; - case 1: - { - num7 = 0; - goto IL_005e; - } - IL_005e: - quantityPurchased = num7; - PurchaseState = null; - _parentWindow.RestoreExternalPluginState(); - this.PurchaseCompleted?.Invoke(this, new PurchaseCompletedEventArgs(itemId, success, quantityPurchased)); - return; - } - } + int quantityPurchased = ((success && PurchaseState != null) ? (PurchaseState.OwnedItems - PurchaseState.InitialOwnedItems) : 0); + PurchaseState = null; + _parentWindow.RestoreExternalPluginState(); + this.PurchaseCompleted?.Invoke(this, new PurchaseCompletedEventArgs(itemId, success, quantityPurchased)); } protected virtual void Dispose(bool disposing) { - int num = ((!disposing) ? 1043096164 : 1043096167); - while (true) + if (disposing) { - int num2 = num; - int num3 = 1043096165; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1043096167; - break; - case 2: - _200E_202B_202D_200C_206B_200F_202E_202D_206D_206F_202C_202E_206A_202A_206D_200E_202D_200D_202B_206A_206F_202C_206D_206E_200B_200E_206B_200F_200F_202C_206A_200E_206A_200F_206B_200B_202B_202C_200F_200F_202E(_addonLifecycle, AddonEvent.PostSetup, _addonName, (IAddonLifecycle.AddonEventDelegate)ShopPostSetup); - _200E_202B_202D_200C_206B_200F_202E_202D_206D_206F_202C_202E_206A_202A_206D_200E_202D_200D_202B_206A_206F_202C_206D_206E_200B_200E_206B_200F_200F_202C_206A_200E_206A_200F_206B_200B_202B_202C_200F_200F_202E(_addonLifecycle, AddonEvent.PreFinalize, _addonName, (IAddonLifecycle.AddonEventDelegate)ShopPreFinalize); - _200E_202B_202D_200C_206B_200F_202E_202D_206D_206F_202C_202E_206A_202A_206D_200E_202D_200D_202B_206A_206F_202C_206D_206E_200B_200E_206B_200F_200F_202C_206A_200E_206A_200F_206B_200B_202B_202C_200F_200F_202E(_addonLifecycle, AddonEvent.PostUpdate, _addonName, (IAddonLifecycle.AddonEventDelegate)ShopPostUpdate); - num = 1043096164; - break; - case 1: - return; - } + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, _addonName, ShopPostSetup); + _addonLifecycle.UnregisterListener(AddonEvent.PreFinalize, _addonName, ShopPreFinalize); + _addonLifecycle.UnregisterListener(AddonEvent.PostUpdate, _addonName, ShopPostUpdate); } } public void Dispose() { Dispose(disposing: true); - _200B_202C_202A_200E_200F_202E_202C_206C_206F_206B_206F_206C_206E_200B_200C_200F_202B_206D_206B_206E_202D_202E_200E_200E_206D_202E_200C_200B_202B_202D_200D_202A_206B_202C_200F_206B_202A_206C_206E_200F_202E((object)this); - } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static void _206B_206A_202C_200C_206E_200C_202C_206A_200D_202A_202D_206D_200E_200B_206E_206F_200B_206A_206F_202D_200F_202A_202C_200E_202C_202B_206A_202C_200F_202D_206D_202D_202A_206C_202C_206C_206B_200B_200D_200F_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static void _200F_206D_202A_206D_200C_206A_202D_200D_206E_200F_206E_206D_206F_202B_202C_202A_200E_202D_206C_202B_200E_202D_206F_206C_202B_202B_206F_206F_206D_202C_202B_202E_200D_202A_206D_206A_206C_200C_206F_200F_202E(string P_0, string P_1) - { - ArgumentException.ThrowIfNullOrEmpty(P_0, P_1); - } - - static void _202B_200B_206D_200B_206F_200C_200C_206E_200B_206E_206D_206B_206E_202A_200B_206F_202B_206F_206F_206E_200D_200F_206D_200E_202C_200D_206E_200C_200D_202A_202C_200B_202A_202E_202D_202E_202A_206B_206F_200C_202E(IAddonLifecycle P_0, AddonEvent P_1, string P_2, IAddonLifecycle.AddonEventDelegate P_3) - { - P_0.RegisterListener(P_1, P_2, P_3); - } - - static Delegate _202E_202D_202E_200D_200B_206C_202C_200F_206C_200C_206B_202A_200B_202A_200D_206B_202B_206B_200F_200C_206C_206C_206B_202B_202C_200D_206B_202A_200E_206D_206B_200E_200E_206E_202D_206D_200F_206E_202C_206E_202E(Delegate P_0, Delegate P_1) - { - return Delegate.Combine(P_0, P_1); - } - - static Delegate _200B_206D_202C_206D_206C_200D_202B_200D_202A_202E_200E_200C_200E_206D_202B_206E_200F_206E_200E_200B_202C_206E_202C_206A_206B_206F_206B_200B_206D_202D_202C_202C_206D_202B_202D_206B_200D_200C_200C_202C_202E(Delegate P_0, Delegate P_1) - { - return Delegate.Remove(P_0, P_1); - } - - static AtkUnitBasePtr _206F_200C_202D_200F_200F_206B_206F_200D_202B_206C_202E_206C_206F_200D_206F_206B_200C_200B_202E_200D_200B_200C_206B_200F_200B_202E_202C_202C_206A_200C_206D_200D_206D_200B_200E_202C_206D_200B_200C_202A_202E(AddonArgs P_0) - { - return P_0.Addon; - } - - static long _202E_202E_202D_202D_202D_202D_206B_202B_200E_206D_206E_206C_206B_202C_200C_200D_206C_200E_200C_202E_200B_202D_206B_202C_200E_202E_202C_200C_200E_202A_206C_200C_206F_200D_200E_206D_202A_202E_206C_202E() - { - return Environment.TickCount64; - } - - static int _200E_202C_200C_202A_206C_202C_206E_206F_206D_202C_202C_200C_200B_200E_206D_206E_202D_206A_202D_202D_202D_202A_202B_200C_206E_206E_206D_206A_206D_206C_200E_206A_202B_206C_200D_200C_206F_206D_200C_202D_202E(int P_0, int P_1) - { - return Math.Min(P_0, P_1); - } - - static InvalidOperationException _200D_200C_202A_202D_202C_206D_206F_202E_202A_206E_202B_200E_200C_200F_200C_206B_200E_202E_206E_202E_202B_206C_200E_200D_200C_206B_200D_200F_202D_206D_202E_206A_206B_200D_200E_200E_200F_202D_202A_202A_202E(string P_0) - { - return new InvalidOperationException(P_0); - } - - static void _202C_202E_200D_202B_202D_200B_200B_206E_202C_200D_202B_206E_206E_206B_202D_206B_202E_200D_202C_202D_206C_206E_202C_200C_206E_202B_202E_202A_202D_206F_200B_200D_206C_206C_200F_200B_206D_202D_202D_200E_202E(IPluginLog P_0, string P_1, object[] P_2) - { - P_0.Information(P_1, P_2); - } - - static string _200E_206A_206B_200B_206E_200D_202B_200B_202C_200C_206A_202E_206F_202C_206E_200D_200B_200F_202D_202B_206A_202E_200D_206F_200B_206E_200F_202E_206D_200C_206C_200B_206F_202C_206E_200D_200C_202E_206D_202B_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static void _206B_200E_206A_206A_202E_202E_202E_200F_206C_202B_206E_200C_202C_200F_202E_200E_206E_202E_202C_202C_206E_206B_206E_206C_200E_206F_202C_202B_202B_206E_202C_202C_202C_200F_202C_200C_206B_206D_200F_202B_202E(IPluginLog P_0, string P_1, object[] P_2) - { - P_0.Warning(P_1, P_2); - } - - static void _200E_202B_202D_200C_206B_200F_202E_202D_206D_206F_202C_202E_206A_202A_206D_200E_202D_200D_202B_206A_206F_202C_206D_206E_200B_200E_206B_200F_200F_202C_206A_200E_206A_200F_206B_200B_202B_202C_200F_200F_202E(IAddonLifecycle P_0, AddonEvent P_1, string P_2, IAddonLifecycle.AddonEventDelegate P_3) - { - P_0.UnregisterListener(P_1, P_2, P_3); - } - - static void _200B_202C_202A_200E_200F_202E_202C_206C_206F_206B_206F_206C_206E_200B_200C_200F_202B_206D_206B_206E_202D_202E_200E_200E_206D_202E_200C_200B_202B_202D_200D_202A_206B_202C_200F_206B_202A_206C_206E_200F_202E(object P_0) - { - GC.SuppressFinalize(P_0); + GC.SuppressFinalize(this); } } diff --git a/LLib/LLib.Shop/SatisfactionSupplyActions.cs b/LLib/LLib.Shop/SatisfactionSupplyActions.cs index 5f4ff9b..29c04d6 100644 --- a/LLib/LLib.Shop/SatisfactionSupplyActions.cs +++ b/LLib/LLib.Shop/SatisfactionSupplyActions.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.UI.Agent; @@ -13,110 +10,7 @@ namespace LLib.Shop; public static class SatisfactionSupplyActions { - public readonly record struct NpcState(int Rank, int SatisfactionCurrent, int SatisfactionMax, int UsedDeliveries) - { - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206F_200F_202A_202D_202C_206E_202E_202A_202A_202D_200F_202B_206E_206D_206C_202B_206E_206B_200D_200C_200D_200C_200C_200E_202B_202D_200D_202E_206D_206C_200D_202A_202D_200D_206B_202A_206F_200B_202E_200D_202E(); - _202E_206E_202A_200B_206C_202C_206A_206E_206D_202E_206D_202B_202A_206B_202E_206D_200D_206B_200E_202D_206E_202E_206F_206B_206C_200D_206B_200D_200C_202A_202B_206E_200E_206E_206B_200E_206A_200D_206B_200C_202E(stringBuilder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1314736612)); - _202E_206E_202A_200B_206C_202C_206A_206E_206D_202E_206D_202B_202A_206B_202E_206D_200D_206B_200E_202D_206E_202E_206F_206B_206C_200D_206B_200D_200C_202A_202B_206E_200E_206E_206B_200E_206A_200D_206B_200C_202E(stringBuilder, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1581517409)); - int num = ((!PrintMembers(stringBuilder)) ? 745418664 : 745418667); - while (true) - { - int num2 = num; - int num3 = 745418666; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - _200E_206F_202E_202A_202C_200C_200F_202D_206C_202D_200E_202A_202D_202B_200F_200C_202C_206A_200B_200B_202E_206D_206D_200E_200F_206A_202D_206A_200D_200F_200C_206D_206D_206B_200E_202E_200E_202A_202A_206F_202E(stringBuilder, '}'); - return _200C_200F_200B_200C_200C_202C_200E_200E_200C_202D_202C_200F_206F_200C_206C_206D_200F_206C_206E_200B_202E_200F_202C_206B_206D_206A_200D_202C_206B_206D_200E_200F_202B_206E_200E_202E_200C_202A_202B_206F_202E((object)stringBuilder); - case 1: - _200E_206F_202E_202A_202C_200C_200F_202D_206C_202D_200E_202A_202D_202B_200F_200C_202C_206A_200B_200B_202E_206D_206D_200E_200F_206A_202D_206A_200D_200F_200C_206D_206D_206B_200E_202E_200E_202A_202A_206F_202E(stringBuilder, ' '); - num = 745418664; - break; - case 0: - num = 745418667; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202E_206E_202A_200B_206C_202C_206A_206E_206D_202E_206D_202B_202A_206B_202E_206D_200D_206B_200E_202D_206E_202E_206F_206B_206C_200D_206B_200D_200C_202A_202B_206E_200E_206E_206B_200E_206A_200D_206B_200C_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(2105858442)); - _202E_206E_202A_200B_206C_202C_206A_206E_206D_202E_206D_202B_202A_206B_202E_206D_200D_206B_200E_202D_206E_202E_206F_206B_206C_200D_206B_200D_200C_202A_202B_206E_200E_206E_206B_200E_206A_200D_206B_200C_202E(builder, Rank.ToString()); - _202E_206E_202A_200B_206C_202C_206A_206E_206D_202E_206D_202B_202A_206B_202E_206D_200D_206B_200E_202D_206E_202E_206F_206B_206C_200D_206B_200D_200C_202A_202B_206E_200E_206E_206B_200E_206A_200D_206B_200C_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(2014742517)); - _202E_206E_202A_200B_206C_202C_206A_206E_206D_202E_206D_202B_202A_206B_202E_206D_200D_206B_200E_202D_206E_202E_206F_206B_206C_200D_206B_200D_200C_202A_202B_206E_200E_206E_206B_200E_206A_200D_206B_200C_202E(builder, SatisfactionCurrent.ToString()); - _202E_206E_202A_200B_206C_202C_206A_206E_206D_202E_206D_202B_202A_206B_202E_206D_200D_206B_200E_202D_206E_202E_206F_206B_206C_200D_206B_200D_200C_202A_202B_206E_200E_206E_206B_200E_206A_200D_206B_200C_202E(builder, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1923626592)); - _202E_206E_202A_200B_206C_202C_206A_206E_206D_202E_206D_202B_202A_206B_202E_206D_200D_206B_200E_202D_206E_202E_206F_206B_206C_200D_206B_200D_200C_202A_202B_206E_200E_206E_206B_200E_206A_200D_206B_200C_202E(builder, SatisfactionMax.ToString()); - _202E_206E_202A_200B_206C_202C_206A_206E_206D_202E_206D_202B_202A_206B_202E_206D_200D_206B_200E_202D_206E_202E_206F_206B_206C_200D_206B_200D_200C_202A_202B_206E_200E_206E_206B_200E_206A_200D_206B_200C_202E(builder, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(564142829)); - _202E_206E_202A_200B_206C_202C_206A_206E_206D_202E_206D_202B_202A_206B_202E_206D_200D_206B_200E_202D_206E_202E_206F_206B_206C_200D_206B_200D_200C_202A_202B_206E_200E_206E_206B_200E_206A_200D_206B_200C_202E(builder, UsedDeliveries.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(NpcState other) - { - int num = ((!EqualityComparer<int>.Default.Equals(Rank, other.Rank)) ? 1376880194 : 1376880192); - while (true) - { - int num2 = num; - int num3 = 1376880193; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return EqualityComparer<int>.Default.Equals(UsedDeliveries, other.UsedDeliveries); - case 3: - return false; - case 4: - num = ((!EqualityComparer<int>.Default.Equals(SatisfactionMax, other.SatisfactionMax)) ? 1376880194 : 1376880193); - break; - case 2: - num = 1376880192; - break; - case 1: - num = ((!EqualityComparer<int>.Default.Equals(SatisfactionCurrent, other.SatisfactionCurrent)) ? 1376880194 : 1376880197); - break; - } - } - } - - bool IEquatable<NpcState>.Equals(NpcState other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _206F_200F_202A_202D_202C_206E_202E_202A_202A_202D_200F_202B_206E_206D_206C_202B_206E_206B_200D_200C_200D_200C_200C_200E_202B_202D_200D_202E_206D_206C_200D_202A_202D_200D_206B_202A_206F_200B_202E_200D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202E_206E_202A_200B_206C_202C_206A_206E_206D_202E_206D_202B_202A_206B_202E_206D_200D_206B_200E_202D_206E_202E_206F_206B_206C_200D_206B_200D_200C_202A_202B_206E_200E_206E_206B_200E_206A_200D_206B_200C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200E_206F_202E_202A_202C_200C_200F_202D_206C_202D_200E_202A_202D_202B_200F_200C_202C_206A_200B_200B_202E_206D_206D_200E_200F_206A_202D_206A_200D_200F_200C_206D_206D_206B_200E_202E_200E_202A_202A_206F_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200C_200F_200B_200C_200C_202C_200E_200E_200C_202D_202C_200F_206F_200C_206C_206D_200F_206C_206E_200B_202E_200F_202C_206B_206D_206A_200D_202C_206B_206D_200E_200F_202B_206E_200E_202E_200C_202A_202B_206F_202E(object P_0) - { - return P_0.ToString(); - } - } + public readonly record struct NpcState(int Rank, int SatisfactionCurrent, int SatisfactionMax, int UsedDeliveries); private const string SatisfactionSupplyAddon = "SatisfactionSupply"; @@ -124,457 +18,199 @@ public static class SatisfactionSupplyActions private const string TalkAddon = "Talk"; - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsSatisfactionSupplyReady(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-799124681), out addonPtr) ? 288080028 : 288080031); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("SatisfactionSupply", out var addonPtr)) { - int num2 = num; - int num3 = 288080030; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0054; - case 2: - return LAddon.IsAddonReady(addonPtr); - case 1: - return false; - } - continue; - IL_0054: - num = 288080031; + return false; } + return LAddon.IsAddonReady(addonPtr); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsSatisfactionSupplyFullyReady(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1887910937), out addonPtr) ? (-536091870) : (-536091865)); - AgentSatisfactionSupply* ptr = default(AgentSatisfactionSupply*); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("SatisfactionSupply", out var addonPtr)) { - int num2 = num; - int num3 = -536091868; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - ptr = AgentSatisfactionSupply.Instance(); - num = ((ptr == null) ? (-536091871) : (-536091872)); - break; - case 2: - return ptr->NpcInfo.Initialized; - case 6: - num = (LAddon.IsAddonReady(addonPtr) ? (-536091867) : (-536091869)); - break; - case 7: - return false; - case 8: - num = ((!ptr->NpcInfo.Valid) ? (-536091871) : (-536091866)); - break; - case 0: - num = -536091865; - break; - case 4: - num = ((!ptr->IsAgentActive()) ? (-536091871) : (-536091860)); - break; - case 5: - return false; - case 3: - return false; - } + return false; } + if (!LAddon.IsAddonReady(addonPtr)) + { + return false; + } + AgentSatisfactionSupply* ptr = AgentSatisfactionSupply.Instance(); + if (ptr != null && ptr->IsAgentActive() && ptr->NpcInfo.Valid) + { + return ptr->NpcInfo.Initialized; + } + return false; } public unsafe static bool TrySelectDeliverySlot(IGameGui gameGui, int slot) { - int num = (IsSatisfactionSupplyFullyReady(gameGui) ? 1316647877 : 1316647878); - while (true) + if (!IsSatisfactionSupplyFullyReady(gameGui)) { - int num2 = num; - int num3 = 1316647876; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - { - AgentSatisfactionSupply* ptr = AgentSatisfactionSupply.Instance(); - AtkValue atkValue = new AtkValue(); - Span<AtkValue> span = stackalloc AtkValue[2]; - span[0].SetInt(1); - span[1].SetInt(slot); - ptr->ReceiveEvent(&atkValue, span.GetPointer(0), 2u, 0uL); - return true; - } - case 2: - return false; - case 0: - goto IL_009f; - } - continue; - IL_009f: - num = 1316647878; + return false; } + AgentSatisfactionSupply* ptr = AgentSatisfactionSupply.Instance(); + AtkValue atkValue = new AtkValue(); + Span<AtkValue> span = stackalloc AtkValue[2]; + span[0].SetInt(1); + span[1].SetInt(slot); + ptr->ReceiveEvent(&atkValue, span.GetPointer(0), 2u, 0uL); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryCloseSatisfactionSupply(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-304354033), out addonPtr) ? (-1559808430) : (-1559808431)); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("SatisfactionSupply", out var addonPtr)) { - int num2 = num; - int num3 = -1559808429; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0052; - case 1: - addonPtr->FireCallbackInt(0); - return true; - case 2: - return false; - } - continue; - IL_0052: - num = -1559808431; + return false; } + addonPtr->FireCallbackInt(0); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsTalkInProgress(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-5198087), out addonPtr) ? 208572511 : 208572508); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("Talk", out var addonPtr)) { - int num2 = num; - int num3 = 208572510; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = 208572508; - break; - case 0: - return LAddon.IsAddonReady(addonPtr); - case 2: - return false; - case 4: - return false; - case 1: - num = ((!addonPtr->IsVisible) ? 208572506 : 208572510); - break; - } + return false; } + if (addonPtr->IsVisible) + { + return LAddon.IsAddonReady(addonPtr); + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryProgressTalk(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1257507185), out addonPtr) ? 1712398322 : 1712398327); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("Talk", out var addonPtr)) { - int num2 = num; - int num3 = 1712398326; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return false; - case 1: - return false; - case 3: - num = 1712398327; - break; - case 0: - num = (LAddon.IsAddonReady(addonPtr) ? 1712398323 : 1712398324); - break; - case 5: - addonPtr->FireCallbackInt(0); - return true; - case 4: - num = ((!addonPtr->IsVisible) ? 1712398324 : 1712398326); - break; - } + return false; } + if (!addonPtr->IsVisible || !LAddon.IsAddonReady(addonPtr)) + { + return false; + } + addonPtr->FireCallbackInt(0); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsSatisfactionSupplyResultVisible(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1902425193), out addonPtr) ? 744661943 : 744661940); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("SatisfactionSupplyResult", out var addonPtr)) { - int num2 = num; - int num3 = 744661941; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return LAddon.IsAddonReady(addonPtr); - case 1: - return false; - case 0: - goto IL_005b; - } - continue; - IL_005b: - num = 744661940; + return false; } + return LAddon.IsAddonReady(addonPtr); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryCloseSatisfactionSupplyResult(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-2097771631), out addonPtr) ? (-1858872072) : (-1858872069)); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("SatisfactionSupplyResult", out var addonPtr)) { - int num2 = num; - int num3 = -1858872071; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0054; - case 2: - return false; - case 1: - addonPtr->Close(fireCallback: true); - return true; - } - continue; - IL_0054: - num = -1858872069; + return false; } + addonPtr->Close(fireCallback: true); + return true; } public unsafe static bool IsNpcTradeReady() { AgentNpcTrade* ptr = AgentNpcTrade.Instance(); - int num = ((ptr == null) ? 553633651 : 553633650); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 553633651; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_004b; - case 1: - return ptr->IsAgentActive(); - case 0: - return false; - } - continue; - IL_004b: - num = 553633650; + return ptr->IsAgentActive(); } + return false; } public unsafe static (bool Exists, bool Active, int SelectedSlot) GetNpcTradeState() { AgentNpcTrade* ptr = AgentNpcTrade.Instance(); - int num = ((ptr != null) ? 1702648938 : 1702648937); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1702648939; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 2: - return (Exists: false, Active: false, SelectedSlot: -99); - case 1: - return (Exists: true, Active: ptr->IsAgentActive(), SelectedSlot: ptr->SelectedTurnInSlot); - } - continue; - IL_0049: - num = 1702648937; + return (Exists: false, Active: false, SelectedSlot: -99); } + return (Exists: true, Active: ptr->IsAgentActive(), SelectedSlot: ptr->SelectedTurnInSlot); } public unsafe static bool TryConfirmTrade() { AgentNpcTrade* ptr = AgentNpcTrade.Instance(); - int num = ((ptr == null) ? (-859221764) : (-859221774)); - AtkValue atkValue = default(AtkValue); - Span<AtkValue> span = default(Span<AtkValue>); - while (true) + if (ptr == null || !ptr->IsAgentActive()) { - int num2 = num; - int num3 = -859221772; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return false; + } + AtkValue atkValue = new AtkValue(); + Span<AtkValue> span = stackalloc AtkValue[4]; + if (ptr->SelectedTurnInSlot < 0) + { + span[0].SetInt(2); + span[1].SetInt(0); + span[2].SetInt(0); + span[3].SetInt(0); + ptr->ReceiveEvent(&atkValue, span.GetPointer(0), 4u, 0uL); + if (ptr->SelectedTurnInSlot != 0 || ptr->SelectedTurnInSlotItemOptions <= 0) { - case 2: return false; - case 0: - atkValue = new AtkValue(); - span = stackalloc AtkValue[4]; - num = ((ptr->SelectedTurnInSlot >= 0) ? (-859221771) : (-859221776)); - break; - case 6: - num = (ptr->IsAgentActive() ? (-859221772) : (-859221764)); - break; - case 8: - return false; - case 7: - return false; - case 5: - span[0].SetInt(0); - span[1].SetInt(0); - span[2].SetInt(0); - span[3].SetInt(0); - ptr->ReceiveEvent(&atkValue, span.GetPointer(0), 4u, 1uL); - ptr->ReceiveEvent(&atkValue, span.GetPointer(0), 4u, 0uL); - return true; - case 1: - num = ((ptr->SelectedTurnInSlot == 0) ? (-859221775) : (-859221770)); - break; - case 9: - num = -859221774; - break; - case 3: - num = ((ptr->SelectedTurnInSlotItemOptions > 0) ? (-859221775) : (-859221773)); - break; - case 4: - span[0].SetInt(2); - span[1].SetInt(0); - span[2].SetInt(0); - span[3].SetInt(0); - ptr->ReceiveEvent(&atkValue, span.GetPointer(0), 4u, 0uL); - num = ((ptr->SelectedTurnInSlot != 0) ? (-859221773) : (-859221769)); - break; } } + else if (ptr->SelectedTurnInSlot != 0) + { + return false; + } + span[0].SetInt(0); + span[1].SetInt(0); + span[2].SetInt(0); + span[3].SetInt(0); + ptr->ReceiveEvent(&atkValue, span.GetPointer(0), 4u, 1uL); + ptr->ReceiveEvent(&atkValue, span.GetPointer(0), 4u, 0uL); + return true; } public unsafe static int GetRemainingAllowances() { SatisfactionSupplyManager* ptr = SatisfactionSupplyManager.Instance(); - int num = ((ptr != null) ? (-1768883873) : (-1768883876)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1768883874; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 2: - return 0; - case 1: - return ptr->GetRemainingAllowances(); - } - continue; - IL_0049: - num = -1768883876; + return 0; } + return ptr->GetRemainingAllowances(); } public unsafe static NpcState GetNpcState(int npcIndex) { SatisfactionSupplyManager* ptr = SatisfactionSupplyManager.Instance(); - int num = ((ptr != null) ? (-1038874379) : (-1038874380)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1038874384; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1038874380; - break; - case 2: - return new NpcState(ptr->SatisfactionRanks[npcIndex], ptr->Satisfaction[npcIndex], 0, ptr->UsedAllowances[npcIndex]); - case 1: - return default(NpcState); - case 3: - num = ((npcIndex < ptr->SatisfactionRanks.Length) ? (-1038874382) : (-1038874383)); - break; - case 5: - num = ((npcIndex < 0) ? (-1038874383) : (-1038874381)); - break; - case 4: - return default(NpcState); - } + return default(NpcState); } + if (npcIndex < 0 || npcIndex >= ptr->SatisfactionRanks.Length) + { + return default(NpcState); + } + return new NpcState(ptr->SatisfactionRanks[npcIndex], ptr->Satisfaction[npcIndex], 0, ptr->UsedAllowances[npcIndex]); } public unsafe static uint GetSupplySeed() { SatisfactionSupplyManager* ptr = SatisfactionSupplyManager.Instance(); - int num = ((ptr != null) ? (-919360628) : (-919360625)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -919360626; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 1: - return 0u; - case 2: - return ptr->SupplySeed; - } - continue; - IL_004b: - num = -919360625; + return 0u; } + return ptr->SupplySeed; } public unsafe static byte GetBonusGuaranteeRowId() { SatisfactionSupplyManager* ptr = SatisfactionSupplyManager.Instance(); - int num = ((ptr != null) ? (-1374760124) : (-1374760121)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1374760123; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return ptr->BonusGuaranteeRowId; - case 2: - return byte.MaxValue; - case 0: - goto IL_0058; - } - continue; - IL_0058: - num = -1374760121; + return byte.MaxValue; } + return ptr->BonusGuaranteeRowId; } } diff --git a/LLib/LLib.Shop/VendorPurchaseActions.cs b/LLib/LLib.Shop/VendorPurchaseActions.cs index 6a7fef7..14b77ee 100644 --- a/LLib/LLib.Shop/VendorPurchaseActions.cs +++ b/LLib/LLib.Shop/VendorPurchaseActions.cs @@ -1,4 +1,3 @@ -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Component.GUI; using LLib.GameUI; @@ -15,288 +14,131 @@ public static class VendorPurchaseActions private const string SelectYesnoAddon = "SelectYesno"; - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsDialogReady(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = ((!gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1862554063), out addonPtr)) ? 148759857 : 148759862); - AtkUnitBase* addonPtr2 = default(AtkUnitBase*); - while (true) + if (gameGui.TryGetAddonByName<AtkUnitBase>("SelectIconString", out var addonPtr) && LAddon.IsAddonReady(addonPtr)) { - int num2 = num; - int num3 = 148759859; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return true; - case 5: - num = ((!LAddon.IsAddonReady(addonPtr)) ? 148759857 : 148759858); - break; - case 0: - return false; - case 2: - num = ((!gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1204054181), out addonPtr2)) ? 148759859 : 148759863); - break; - case 6: - num = 148759862; - break; - case 1: - return true; - case 4: - num = ((!LAddon.IsAddonReady(addonPtr2)) ? 148759859 : 148759856); - break; - } + return true; } + if (gameGui.TryGetAddonByName<AtkUnitBase>("SelectString", out var addonPtr2) && LAddon.IsAddonReady(addonPtr2)) + { + return true; + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TrySelectDialogOption(IGameGui gameGui, int index) { - AtkUnitBase* addonPtr; - int num = ((!gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1862554063), out addonPtr)) ? (-479532860) : (-479532861)); - AtkUnitBase* addonPtr2 = default(AtkUnitBase*); - while (true) + if (gameGui.TryGetAddonByName<AtkUnitBase>("SelectIconString", out var addonPtr) && LAddon.IsAddonReady(addonPtr)) { - int num2 = num; - int num3 = -479532858; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = -479532861; - break; - case 2: - num = ((!gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-100229517), out addonPtr2)) ? (-479532857) : (-479532862)); - break; - case 5: - num = ((!LAddon.IsAddonReady(addonPtr)) ? (-479532860) : (-479532858)); - break; - case 4: - num = ((!LAddon.IsAddonReady(addonPtr2)) ? (-479532857) : (-479532864)); - break; - case 6: - AddonCallback.Fire(addonPtr2, index); - return true; - case 0: - AddonCallback.Fire(addonPtr, index); - return true; - case 1: - return false; - } + AddonCallback.Fire(addonPtr, index); + return true; } + if (gameGui.TryGetAddonByName<AtkUnitBase>("SelectString", out var addonPtr2) && LAddon.IsAddonReady(addonPtr2)) + { + AddonCallback.Fire(addonPtr2, index); + return true; + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsShopReady(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(854458650), out addonPtr) ? 1690879529 : 1690879530); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("Shop", out var addonPtr)) { - int num2 = num; - int num3 = 1690879531; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0054; - case 1: - return false; - case 2: - return LAddon.IsAddonReady(addonPtr); - } - continue; - IL_0054: - num = 1690879530; + return false; } + return LAddon.IsAddonReady(addonPtr); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static int FindItemDisplayIndex(IGameGui gameGui, uint itemId) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-526765299), out addonPtr) ? 2111523499 : 2111523488); - int num6 = default(int); - int num5 = default(int); - uint uInt = default(uint); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("Shop", out var addonPtr)) { - int num2 = num; - int num3 = 2111523490; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return -1; + } + if (!LAddon.IsAddonReady(addonPtr)) + { + return -1; + } + if (addonPtr->AtkValues == null || addonPtr->AtkValuesCount <= 2) + { + return -1; + } + uint uInt = addonPtr->AtkValues[2].UInt; + for (int i = 0; i < uInt; i++) + { + int num = 441 + i; + if (num >= addonPtr->AtkValuesCount) { - case 8: - num = ((addonPtr->AtkValues == null) ? 2111523494 : 2111523490); - break; - case 7: - { - int num7 = num6; - num3 = 1; - num4 = num7; - num6 = (num4 | num3) + (num4 & num3); - num = 2111523502; - break; + return -1; } - case 5: + if (addonPtr->AtkValues[num].UInt == itemId) { - num3 = num6; - num4 = 441; - int num8 = num4 ^ num3; - int num9 = num4 & num3; - num5 = num8 + (num9 + num9); - num = ((num5 < addonPtr->AtkValuesCount) ? 2111523492 : 2111523503); - break; - } - case 14: - uInt = addonPtr->AtkValues[2].UInt; - num6 = 0; - num = 2111523502; - break; - case 12: - num = ((num6 < uInt) ? 2111523495 : 2111523491); - break; - case 2: - return -1; - case 10: - return -1; - case 9: - num = (LAddon.IsAddonReady(addonPtr) ? 2111523498 : 2111523496); - break; - case 3: - return num6; - case 0: - num = ((addonPtr->AtkValuesCount > 2) ? 2111523500 : 2111523494); - break; - case 1: - return -1; - case 4: - return -1; - case 13: - return -1; - case 11: - num = 2111523488; - break; - case 6: - num = ((addonPtr->AtkValues[num5].UInt != itemId) ? 2111523493 : 2111523489); - break; + return i; } } + return -1; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryBuyItem(IGameGui gameGui, int itemIndex, int quantity) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-364498650), out addonPtr) ? (-705089016) : (-705089011)); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("Shop", out var addonPtr)) { - int num2 = num; - int num3 = -705089012; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = (LAddon.IsAddonReady(addonPtr) ? (-705089009) : (-705089012)); - break; - case 0: - return false; - case 2: - num = -705089011; - break; - case 1: - return false; - case 3: - { - AtkValue* values = stackalloc AtkValue[4] - { - new AtkValue - { - Type = AtkValueType.Int, - Int = 0 - }, - new AtkValue - { - Type = AtkValueType.Int, - Int = itemIndex - }, - new AtkValue - { - Type = AtkValueType.Int, - Int = quantity - }, - new AtkValue - { - Type = AtkValueType.Undefined, - Int = 0 - } - }; - addonPtr->FireCallback(4u, values); - return true; - } - } + return false; } + if (!LAddon.IsAddonReady(addonPtr)) + { + return false; + } + AtkValue* values = stackalloc AtkValue[4] + { + new AtkValue + { + Type = AtkValueType.Int, + Int = 0 + }, + new AtkValue + { + Type = AtkValueType.Int, + Int = itemIndex + }, + new AtkValue + { + Type = AtkValueType.Int, + Int = quantity + }, + new AtkValue + { + Type = AtkValueType.Undefined, + Int = 0 + } + }; + addonPtr->FireCallback(4u, values); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryConfirmPurchase(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-502173951), out addonPtr) ? 723548803 : 723548800); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("SelectYesno", out var addonPtr)) { - int num2 = num; - int num3 = 723548802; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - AddonCallback.ClickYes(addonPtr); - return true; - case 2: - return false; - case 4: - num = 723548800; - break; - case 1: - num = (LAddon.IsAddonReady(addonPtr) ? 723548801 : 723548802); - break; - case 0: - return false; - } + return false; } + if (!LAddon.IsAddonReady(addonPtr)) + { + return false; + } + AddonCallback.ClickYes(addonPtr); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryCloseShop(IGameGui gameGui) { - AtkUnitBase* addonPtr; - int num = (gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-364498650), out addonPtr) ? 206614822 : 206614821); - while (true) + if (!gameGui.TryGetAddonByName<AtkUnitBase>("Shop", out var addonPtr)) { - int num2 = num; - int num3 = 206614820; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - addonPtr->Close(fireCallback: true); - return true; - case 1: - return false; - case 0: - goto IL_0060; - } - continue; - IL_0060: - num = 206614821; + return false; } + addonPtr->Close(fireCallback: true); + return true; } } diff --git a/LLib/LLib.Shop/VendorResolver.cs b/LLib/LLib.Shop/VendorResolver.cs index 067428b..780cda5 100644 --- a/LLib/LLib.Shop/VendorResolver.cs +++ b/LLib/LLib.Shop/VendorResolver.cs @@ -31,87 +31,22 @@ public sealed class VendorResolver public IReadOnlyList<ShopSearchResult> FindVendorsForItem(uint itemId, EShopType shopType) { - int num; - List<ShopSearchResult> result = default(List<ShopSearchResult>); - switch (shopType) + return shopType switch { - default: - num = -1685291890; - goto IL_001d; - case EShopType.SpecialShop: - result = _specialShopSearcher.Search(itemId); - num = -1685291895; - goto IL_001d; - case EShopType.GCShop: - goto IL_006c; - case EShopType.GilShop: - goto IL_00ab; - IL_001d: - while (true) - { - int num2 = num; - int num3 = -1685291889; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - return result; - case 4: - goto end_IL_001d; - case 2: - goto IL_006c; - case 0: - result = new List<ShopSearchResult>(); - num = -1685291895; - break; - case 5: - num = -1685291890; - break; - case 1: - num = -1685291889; - break; - case 3: - goto IL_00ab; - } - continue; - end_IL_001d: - break; - } - goto case EShopType.SpecialShop; - IL_00ab: - result = _gilShopSearcher.Search(itemId); - num = -1685291895; - goto IL_001d; - IL_006c: - result = _gcShopSearcher.Search(itemId); - num = -1685291895; - goto IL_001d; - } + EShopType.GilShop => _gilShopSearcher.Search(itemId), + EShopType.SpecialShop => _specialShopSearcher.Search(itemId), + EShopType.GCShop => _gcShopSearcher.Search(itemId), + _ => new List<ShopSearchResult>(), + }; } public ShopSearchResult? FindGilVendor(uint itemId) { List<ShopSearchResult> list = _gilShopSearcher.Search(itemId); - int num = ((list.Count > 0) ? 274593349 : 274593348); - while (true) + if (list.Count <= 0) { - int num2 = num; - int num3 = 274593349; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0056; - case 1: - return null; - case 0: - return list[0]; - } - continue; - IL_0056: - num = 274593348; + return null; } + return list[0]; } } diff --git a/LLib/LLib.csproj b/LLib/LLib.csproj index 737da72..d3f7bfc 100644 --- a/LLib/LLib.csproj +++ b/LLib/LLib.csproj @@ -13,15 +13,15 @@ <PropertyGroup /> <ItemGroup /> <ItemGroup> + <Reference Include="FFXIVClientStructs"> + <HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\FFXIVClientStructs.dll</HintPath> + </Reference> <Reference Include="Dalamud"> <HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\Dalamud.dll</HintPath> </Reference> <Reference Include="Lumina"> <HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\Lumina.dll</HintPath> </Reference> - <Reference Include="FFXIVClientStructs"> - <HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\FFXIVClientStructs.dll</HintPath> - </Reference> <Reference Include="Lumina.Excel"> <HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\Lumina.Excel.dll</HintPath> </Reference> diff --git a/LLib/LLib/AtomicFile.cs b/LLib/LLib/AtomicFile.cs index 69f61cd..f1437fd 100644 --- a/LLib/LLib/AtomicFile.cs +++ b/LLib/LLib/AtomicFile.cs @@ -1,95 +1,30 @@ using System; -using System.Collections; -using System.Collections.Generic; using System.IO; -using System.Runtime.CompilerServices; namespace LLib; public static class AtomicFile { - [MethodImpl(MethodImplOptions.NoInlining)] public static void WriteAllText(string path, string contents) { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(5, 2); - defaultInterpolatedStringHandler.AppendFormatted(path); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(657022072)); - defaultInterpolatedStringHandler.AppendFormatted(Guid.NewGuid(), global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-2122338139)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1367875388)); - string text = defaultInterpolatedStringHandler.ToStringAndClear(); + string text = $"{path}.{Guid.NewGuid():N}.tmp"; try { - FileStream fileStream = _200F_202A_202C_202D_206D_202A_206A_202E_200F_206D_200F_206D_206B_202E_206E_206A_200D_200D_202D_200C_200C_206C_206E_200F_200B_202D_206D_200B_206B_200C_202E_206D_206B_202D_200B_206C_200C_202B_202B_202E_202E(text, FileMode.CreateNew, FileAccess.Write, FileShare.None); - try + using (FileStream fileStream = new FileStream(text, FileMode.CreateNew, FileAccess.Write, FileShare.None)) { - StreamWriter streamWriter = _202C_202C_202D_206A_202A_200B_200E_206B_206F_206A_202C_206B_206E_202E_206C_206F_206B_206F_206B_202B_202C_200F_202A_206A_202E_202C_200F_206B_200F_206D_202D_202A_200C_200E_202C_206A_202D_206B_202D_202B_202E((Stream)fileStream); - try - { - _206F_206F_202B_202B_206A_206A_202A_206C_200C_200E_206C_206A_200C_200E_202A_200E_206F_206F_202E_202B_202E_202E_202A_202B_206B_200F_202B_206F_202C_202D_200C_202A_202D_202B_202A_206D_202B_206B_206D_206D_202E((TextWriter)streamWriter, contents); - _206D_202E_200C_200D_202D_206D_202B_206B_202C_200E_202E_202D_206B_202C_206C_206C_206C_202C_202D_206D_200E_200F_200C_202C_202A_206A_200B_202E_200D_206F_200C_206D_202C_206B_200B_200C_200F_200B_202D_202A_202E((TextWriter)streamWriter); - _200C_200F_202A_206C_200D_206A_200F_206D_206E_202B_200D_200F_202B_206D_202A_202D_200E_206A_202C_200C_200C_202C_202C_206E_202B_200C_206A_206D_200E_200F_206E_200B_200C_202B_200D_206A_200D_202C_206A_200D_202E(fileStream, true); - } - finally - { - int num = ((streamWriter == null) ? 2495584 : 2495587); - while (true) - { - int num2 = num; - int num3 = 2495585; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - goto end_IL_0099; - case 2: - _206E_202D_202D_200F_202E_206C_206E_200C_206C_200E_202E_206A_206C_200D_200E_202B_206E_202C_200D_206E_200F_202A_206F_202B_202D_206F_206C_206C_206E_200D_200B_200F_202E_206E_200C_200D_206A_200C_206F_202C_202E((IDisposable)streamWriter); - num = 2495584; - break; - case 0: - num = 2495587; - break; - } - continue; - end_IL_0099: - break; - } - } + using StreamWriter streamWriter = new StreamWriter(fileStream); + streamWriter.Write(contents); + streamWriter.Flush(); + fileStream.Flush(flushToDisk: true); } - finally - { - int num = ((fileStream == null) ? 135208521 : 135208522); - while (true) - { - int num7 = num; - int num3 = 135208520; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 135208522; - break; - case 2: - _206E_202D_202D_200F_202E_206C_206E_200C_206C_200E_202E_206A_206C_200D_200E_202B_206E_202C_200D_206E_200F_202A_206F_202B_202D_206F_206C_206C_206E_200D_200B_200F_202E_206E_200C_200D_206A_200C_206F_202C_202E((IDisposable)fileStream); - num = 135208521; - break; - case 1: - goto end_IL_0109; - } - continue; - end_IL_0109: - break; - } - } - _202D_202C_200C_200B_200F_206E_202E_200C_200F_202D_202C_200C_200E_206A_200B_206A_200D_202E_200E_200C_200D_206D_206C_206E_206D_200B_202D_200E_202D_200E_206C_202D_200D_206F_202A_202D_206B_202A_202E_202E_202E(text, path, true); + File.Move(text, path, overwrite: true); CleanupOrphanedTempFiles(path, text); } catch { try { - _206D_200C_200C_202B_206D_206F_206F_200D_200E_200D_200F_200E_202D_202C_206D_202D_200B_202C_202E_206D_200F_206F_206C_206E_206B_206D_202B_202E_206F_200C_206B_200E_202D_206A_200C_206D_202C_206A_200D_206C_202E(text); + File.Delete(text); } catch { @@ -98,80 +33,24 @@ public static class AtomicFile } } - [MethodImpl(MethodImplOptions.NoInlining)] private static void CleanupOrphanedTempFiles(string path, string currentTmp) { try { - string text = _200C_200D_200F_202B_202B_200B_200D_206E_206C_206B_200F_206D_202E_206B_200E_206B_206C_200B_206C_202A_206F_206C_206A_200E_202B_206B_202E_206A_200D_202D_202B_200C_202D_206B_200E_200E_206C_200E_200F_200D_202E(path); - int num = ((text == null) ? (-1500986327) : (-1500986326)); - string text2; - while (true) + string directoryName = Path.GetDirectoryName(path); + string path2 = ((directoryName != null && directoryName.Length > 0) ? directoryName : "."); + string searchPattern = Path.GetFileName(path) + ".*.tmp"; + foreach (string item in Directory.EnumerateFiles(path2, searchPattern)) { - int num2 = num; - int num3 = -1500986327; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (!string.Equals(Path.GetFileName(item), Path.GetFileName(currentTmp), StringComparison.Ordinal)) { - default: - continue; - case 2: - num = -1500986326; - continue; - case 3: - num = ((_200C_206E_200D_202A_200C_202D_200F_200E_200F_202E_202B_206A_200F_206C_200B_200F_202B_200F_200D_206D_206F_200F_202E_206D_202C_200E_202A_202C_206A_202D_200D_202B_200B_202B_206D_206B_200B_200C_202E_202E_202E(text) > 0) ? (-1500986328) : (-1500986327)); - continue; - case 0: - text2 = global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1154351772); - break; - case 1: - text2 = text; - break; - } - break; - } - string text3 = _202B_200F_206B_206B_206A_202C_200D_200D_200D_202A_202A_206D_202E_202A_200E_200C_206B_202A_202A_200B_200E_206B_206C_206D_200C_206F_202E_206A_206B_202B_206F_206C_200F_202C_206A_200F_202E_202C_206E_206F_202E(_202C_206E_200F_200F_202D_200B_206D_202C_202E_206E_200F_200B_206E_200C_200F_202C_206F_206B_206B_206C_200E_202B_206E_206F_202E_206D_206A_202E_202E_202B_202D_206E_206E_206D_202E_206A_206D_206B_200D_202C_202E(path), global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1112271862)); - IEnumerator<string> enumerator = _202D_206C_206F_200F_206C_206E_206C_200C_200E_202B_202A_202B_202C_206A_206D_202C_202D_206F_202B_200E_206C_206C_200B_206D_202D_202E_206B_202E_200B_200C_206F_206B_200B_200E_200F_200F_206A_200C_200C_202C_202E(text2, text3).GetEnumerator(); - try - { - while (_200D_202B_206F_200E_206A_200C_202D_200E_206D_206A_206E_206F_200D_202A_202D_202C_202E_202D_206C_206D_206F_206C_206F_200D_206F_206D_200B_202E_200E_200B_200B_206D_206D_202C_200C_202B_202C_200B_206B_206A_202E((IEnumerator)enumerator)) - { - string current = enumerator.Current; - if (!_206E_200B_202D_202A_206E_202D_202C_202E_206B_206D_202E_200D_206E_206A_200B_202D_200F_206D_206F_200E_206B_206A_200B_206A_206A_206C_200D_206A_206C_200D_202C_202C_200D_206D_202D_206B_200D_200C_202A_202C_202E(_202C_206E_200F_200F_202D_200B_206D_202C_202E_206E_200F_200B_206E_200C_200F_202C_206F_206B_206B_206C_200E_202B_206E_206F_202E_206D_206A_202E_202E_202B_202D_206E_206E_206D_202E_206A_206D_206B_200D_202C_202E(current), _202C_206E_200F_200F_202D_200B_206D_202C_202E_206E_200F_200B_206E_200C_200F_202C_206F_206B_206B_206C_200E_202B_206E_206F_202E_206D_206A_202E_202E_202B_202D_206E_206E_206D_202E_206A_206D_206B_200D_202C_202E(currentTmp), StringComparison.Ordinal)) + try { - try - { - _206D_200C_200C_202B_206D_206F_206F_200D_200E_200D_200F_200E_202D_202C_206D_202D_200B_202C_202E_206D_200F_206F_206C_206E_206B_206D_202B_202E_206F_200C_206B_200E_202D_206A_200C_206D_202C_206A_200D_206C_202E(current); - } - catch - { - } + File.Delete(item); } - } - } - finally - { - num = ((enumerator == null) ? (-1811405444) : (-1811405441)); - while (true) - { - int num5 = num; - int num3 = -1811405443; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) + catch { - case 0: - num = -1811405441; - break; - case 2: - _206E_202D_202D_200F_202E_206C_206E_200C_206C_200E_202E_206A_206C_200D_200E_202B_206E_202C_200D_206E_200F_202A_206F_202B_202D_206F_206C_206C_206E_200D_200B_200F_202E_206E_200C_200D_206A_200C_206F_202C_202E((IDisposable)enumerator); - num = -1811405444; - break; - case 1: - goto end_IL_0126; } - continue; - end_IL_0126: - break; } } } @@ -179,79 +58,4 @@ public static class AtomicFile { } } - - static FileStream _200F_202A_202C_202D_206D_202A_206A_202E_200F_206D_200F_206D_206B_202E_206E_206A_200D_200D_202D_200C_200C_206C_206E_200F_200B_202D_206D_200B_206B_200C_202E_206D_206B_202D_200B_206C_200C_202B_202B_202E_202E(string P_0, FileMode P_1, FileAccess P_2, FileShare P_3) - { - return new FileStream(P_0, P_1, P_2, P_3); - } - - static StreamWriter _202C_202C_202D_206A_202A_200B_200E_206B_206F_206A_202C_206B_206E_202E_206C_206F_206B_206F_206B_202B_202C_200F_202A_206A_202E_202C_200F_206B_200F_206D_202D_202A_200C_200E_202C_206A_202D_206B_202D_202B_202E(Stream P_0) - { - return new StreamWriter(P_0); - } - - static void _206F_206F_202B_202B_206A_206A_202A_206C_200C_200E_206C_206A_200C_200E_202A_200E_206F_206F_202E_202B_202E_202E_202A_202B_206B_200F_202B_206F_202C_202D_200C_202A_202D_202B_202A_206D_202B_206B_206D_206D_202E(TextWriter P_0, string P_1) - { - P_0.Write(P_1); - } - - static void _206D_202E_200C_200D_202D_206D_202B_206B_202C_200E_202E_202D_206B_202C_206C_206C_206C_202C_202D_206D_200E_200F_200C_202C_202A_206A_200B_202E_200D_206F_200C_206D_202C_206B_200B_200C_200F_200B_202D_202A_202E(TextWriter P_0) - { - P_0.Flush(); - } - - static void _200C_200F_202A_206C_200D_206A_200F_206D_206E_202B_200D_200F_202B_206D_202A_202D_200E_206A_202C_200C_200C_202C_202C_206E_202B_200C_206A_206D_200E_200F_206E_200B_200C_202B_200D_206A_200D_202C_206A_200D_202E(FileStream P_0, bool P_1) - { - P_0.Flush(P_1); - } - - static void _206E_202D_202D_200F_202E_206C_206E_200C_206C_200E_202E_206A_206C_200D_200E_202B_206E_202C_200D_206E_200F_202A_206F_202B_202D_206F_206C_206C_206E_200D_200B_200F_202E_206E_200C_200D_206A_200C_206F_202C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _202D_202C_200C_200B_200F_206E_202E_200C_200F_202D_202C_200C_200E_206A_200B_206A_200D_202E_200E_200C_200D_206D_206C_206E_206D_200B_202D_200E_202D_200E_206C_202D_200D_206F_202A_202D_206B_202A_202E_202E_202E(string P_0, string P_1, bool P_2) - { - File.Move(P_0, P_1, P_2); - } - - static void _206D_200C_200C_202B_206D_206F_206F_200D_200E_200D_200F_200E_202D_202C_206D_202D_200B_202C_202E_206D_200F_206F_206C_206E_206B_206D_202B_202E_206F_200C_206B_200E_202D_206A_200C_206D_202C_206A_200D_206C_202E(string P_0) - { - File.Delete(P_0); - } - - static string _200C_200D_200F_202B_202B_200B_200D_206E_206C_206B_200F_206D_202E_206B_200E_206B_206C_200B_206C_202A_206F_206C_206A_200E_202B_206B_202E_206A_200D_202D_202B_200C_202D_206B_200E_200E_206C_200E_200F_200D_202E(string P_0) - { - return Path.GetDirectoryName(P_0); - } - - static int _200C_206E_200D_202A_200C_202D_200F_200E_200F_202E_202B_206A_200F_206C_200B_200F_202B_200F_200D_206D_206F_200F_202E_206D_202C_200E_202A_202C_206A_202D_200D_202B_200B_202B_206D_206B_200B_200C_202E_202E_202E(string P_0) - { - return P_0.Length; - } - - static string _202C_206E_200F_200F_202D_200B_206D_202C_202E_206E_200F_200B_206E_200C_200F_202C_206F_206B_206B_206C_200E_202B_206E_206F_202E_206D_206A_202E_202E_202B_202D_206E_206E_206D_202E_206A_206D_206B_200D_202C_202E(string P_0) - { - return Path.GetFileName(P_0); - } - - static string _202B_200F_206B_206B_206A_202C_200D_200D_200D_202A_202A_206D_202E_202A_200E_200C_206B_202A_202A_200B_200E_206B_206C_206D_200C_206F_202E_206A_206B_202B_206F_206C_200F_202C_206A_200F_202E_202C_206E_206F_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static IEnumerable<string> _202D_206C_206F_200F_206C_206E_206C_200C_200E_202B_202A_202B_202C_206A_206D_202C_202D_206F_202B_200E_206C_206C_200B_206D_202D_202E_206B_202E_200B_200C_206F_206B_200B_200E_200F_200F_206A_200C_200C_202C_202E(string P_0, string P_1) - { - return Directory.EnumerateFiles(P_0, P_1); - } - - static bool _206E_200B_202D_202A_206E_202D_202C_202E_206B_206D_202E_200D_206E_206A_200B_202D_200F_206D_206F_200E_206B_206A_200B_206A_206A_206C_200D_206A_206C_200D_202C_202C_200D_206D_202D_206B_200D_200C_202A_202C_202E(string P_0, string P_1, StringComparison P_2) - { - return string.Equals(P_0, P_1, P_2); - } - - static bool _200D_202B_206F_200E_206A_200C_202D_200E_206D_206A_206E_206F_200D_202A_202D_202C_202E_202D_206C_206D_206F_206C_206F_200D_206F_206D_200B_202E_200E_200B_200B_206D_206D_202C_200C_202B_202C_200B_206B_206A_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } } diff --git a/LLib/LLib/ChatHelper.cs b/LLib/LLib/ChatHelper.cs index 13c02dc..a4d68b5 100644 --- a/LLib/LLib/ChatHelper.cs +++ b/LLib/LLib/ChatHelper.cs @@ -10,42 +10,23 @@ public static class ChatHelper public unsafe static void SendCommand(string command) { Framework* ptr = Framework.Instance(); - int num = ((ptr != null) ? 97201329 : 97201331); - UIModule* uIModule = default(UIModule*); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 97201328; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 97201331; - break; - case 3: - return; - case 2: - return; - case 1: - uIModule = ptr->GetUIModule(); - num = ((uIModule != null) ? 97201332 : 97201330); - break; - case 4: - { - Utf8String utf8String = new Utf8String(command); - try - { - uIModule->ProcessChatBoxEntry(&utf8String); - return; - } - finally - { - ((IDisposable)utf8String/*cast due to .constrained prefix*/).Dispose(); - } - } - } + return; + } + UIModule* uIModule = ptr->GetUIModule(); + if (uIModule == null) + { + return; + } + Utf8String utf8String = new Utf8String(command); + try + { + uIModule->ProcessChatBoxEntry(&utf8String); + } + finally + { + ((IDisposable)utf8String/*cast due to .constrained prefix*/).Dispose(); } } } diff --git a/LLib/LLib/DalamudReflector.cs b/LLib/LLib/DalamudReflector.cs index 0ba3c7c..b1de8cc 100644 --- a/LLib/LLib/DalamudReflector.cs +++ b/LLib/LLib/DalamudReflector.cs @@ -2,13 +2,9 @@ using System; using System.Collections; using System.Collections.Concurrent; using System.Collections.Generic; -using System.Diagnostics; using System.Diagnostics.CodeAnalysis; -using System.Globalization; using System.Linq; using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; using System.Threading; using System.Threading.Tasks; using Dalamud.Plugin; @@ -18,1078 +14,6 @@ namespace LLib; public sealed class DalamudReflector : IDisposable { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass22_0 - { - public string repoUrl; - - internal bool _003CFindAvailableManifest_003Eb__0(string alias) - { - return RepoUrlEquals(repoUrl, alias); - } - } - - [StructLayout(LayoutKind.Auto)] - [CompilerGenerated] - private struct _003CAddPluginAsync_003Ed__9 : IAsyncStateMachine - { - public int _003C_003E1__state; - - public AsyncTaskMethodBuilder<bool> _003C_003Et__builder; - - public DalamudReflector _003C_003E4__this; - - public string internalName; - - public string thirdPartyRepoUrl; - - public IReadOnlyList<string> aliases; - - private object _003CpluginManager_003E5__2; - - private Assembly _003Cassembly_003E5__3; - - private MethodInfo _003CreloadMethod_003E5__4; - - private Task _003CinstallTask_003E5__5; - - private bool _003Cloaded_003E5__6; - - private ConfiguredTaskAwaitable.ConfiguredTaskAwaiter _003C_003Eu__1; - - [MethodImpl(MethodImplOptions.NoInlining)] - private void MoveNext() - { - int num = _003C_003E1__state; - DalamudReflector dalamudReflector = _003C_003E4__this; - bool result; - try - { - switch (num) - { - case 2: - goto IL_016d; - case 0: - goto IL_0603; - case 1: - goto IL_062c; - } - int num2 = -158450101; - goto IL_002c; - IL_016d: - ConfiguredTaskAwaitable.ConfiguredTaskAwaiter awaiter = _003C_003Eu__1; - _003C_003Eu__1 = default(ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); - num = (_003C_003E1__state = -1); - num2 = -158450083; - goto IL_002c; - IL_002c: - int num7 = default(int); - object[] array = default(object[]); - object obj3 = default(object); - object obj = default(object); - object obj2 = default(object); - MethodInfo methodInfo = default(MethodInfo); - Type type = default(Type); - ParameterInfo[] array2 = default(ParameterInfo[]); - Type type2 = default(Type); - object obj4 = default(object); - while (true) - { - int num3 = num2; - int num4 = -158450089; - int num5 = num3; - int num6; - switch ((num5 | num4) - (num5 & num4)) - { - case 8: - goto IL_00d4; - case 2: - goto end_IL_002c; - case 28: - goto IL_0196; - case 31: - goto IL_01f2; - case 0: - { - int num8 = num7; - num4 = 1; - num5 = num8; - num7 = (num5 | num4) + (num5 & num4); - num2 = -158450057; - break; - } - case 30: - throw _206C_206F_206C_200D_200D_206D_202A_206E_206B_206F_202A_206E_206E_202D_200C_202B_200B_206B_206F_202D_202B_200C_202A_202B_202D_202B_202C_206C_202E_202E_200E_200B_206E_200B_206C_200E_200C_206D_206E_206D_202E(_202E_206D_206D_202C_206A_206F_202A_200B_200F_206B_206F_202D_206D_200F_202D_200B_206A_200F_200C_206F_206A_206F_200E_200B_206C_202D_206E_206C_200D_206E_200C_206A_206E_200B_202A_206E_202E_206F_200D_202C_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1931795628), internalName, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(2124475057))); - case 15: - array[num7] = obj3; - num2 = -158450089; - break; - case 33: - goto IL_0285; - case 13: - array[num7] = null; - num2 = -158450089; - break; - case 24: - goto IL_02ee; - case 26: - goto IL_0346; - case 20: - result = true; - goto end_IL_000e; - case 9: - goto IL_039c; - case 32: - goto IL_03d2; - case 23: - goto IL_03f5; - case 10: - goto IL_041b; - case 18: - goto IL_047f; - case 21: - num = (_003C_003E1__state = 2); - _003C_003Eu__1 = awaiter; - _003C_003Et__builder.AwaitUnsafeOnCompleted(ref awaiter, ref this); - return; - case 12: - awaiter.GetResult(); - obj = FindAvailableManifest(_003CpluginManager_003E5__2, internalName, thirdPartyRepoUrl, aliases); - num2 = -158450108; - break; - case 11: - goto IL_050e; - case 16: - num2 = -158450101; - break; - case 1: - goto IL_0599; - case 7: - throw _206C_206F_206C_200D_200D_206D_202A_206E_206B_206F_202A_206E_206E_202D_200C_202B_200B_206B_206F_202D_202B_200C_202A_202B_202D_202B_202C_206C_202E_202E_200E_200B_206E_200B_206C_200E_200C_206D_206E_206D_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-169019911)); - case 6: - goto IL_0603; - case 17: - goto IL_062c; - case 4: - num = (_003C_003E1__state = 0); - _003C_003Eu__1 = awaiter; - _003C_003Et__builder.AwaitUnsafeOnCompleted(ref awaiter, ref this); - return; - case 3: - num = (_003C_003E1__state = 1); - _003C_003Eu__1 = awaiter; - _003C_003Et__builder.AwaitUnsafeOnCompleted(ref awaiter, ref this); - return; - case 22: - goto IL_06b5; - case 5: - result = false; - goto end_IL_000e; - case 14: - array[num7] = false; - num2 = -158450089; - break; - case 29: - _003Cloaded_003E5__6 = (bool)obj2; - num6 = 1; - goto IL_0752; - case 19: - goto IL_0721; - case 25: - array[num7] = obj; - num2 = -158450089; - break; - case 27: - { - num6 = 0; - goto IL_0752; - } - IL_0752: - result = (byte)((uint)num6 & (_003Cloaded_003E5__6 ? 1u : 0u)) != 0; - goto end_IL_000e; - } - continue; - IL_0721: - num2 = ((obj != null) ? (-158450081) : (-158450103)); - continue; - IL_00d4: - methodInfo = _206B_206D_206A_200F_202E_206C_202A_206C_206E_206A_200B_206B_202C_202D_206D_206C_202B_202D_200E_200C_200F_202C_206C_200C_202B_200E_200C_200B_206F_202D_202E_202C_202E_200B_206B_200B_206A_206E_200E_200F_202E(_200D_206A_206A_202B_200C_206E_206C_200B_202D_202A_202D_206D_206D_200C_206F_202A_206C_202C_200B_206A_200B_200D_202D_200F_206C_206C_202C_206A_206F_202A_202B_202E_200F_200F_200F_206E_206C_206A_200D_206A_202E(_003CpluginManager_003E5__2), global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1435604918), BindingFlags.Instance | BindingFlags.Public) ?? throw _206C_206F_206C_200D_200D_206D_202A_206E_206B_206F_202A_206E_206E_202D_200C_202B_200B_206B_206F_202D_202B_200C_202A_202B_202D_202B_202C_206C_202E_202E_200E_200B_206E_200B_206C_200E_200C_206D_206E_206D_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1358635013)); - type = _200F_206E_206B_200C_200D_206A_200E_200B_202A_206F_200D_202D_202C_202B_202C_206D_206F_206C_202E_202E_202D_202A_206F_202C_202A_206B_206C_200D_200F_202A_206E_202E_202E_202B_206A_206C_206D_200C_202D_200F_202E(_003Cassembly_003E5__3, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1964451499)) ?? throw _206C_206F_206C_200D_200D_206D_202A_206E_206B_206F_202A_206E_206E_202D_200C_202B_200B_206B_206F_202D_202B_200C_202A_202B_202D_202B_202C_206C_202E_202E_200E_200B_206E_200B_206C_200E_200C_206D_206E_206D_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1640054167)); - obj3 = _200D_200E_200E_200D_202D_200B_202A_206F_202D_202A_206B_206E_200C_202C_202A_206C_206F_206B_200E_206B_200D_200D_200F_200B_206B_200F_202E_206A_200B_200C_206C_206B_202B_200C_200E_200D_202E_202D_206E_200E_202E(type, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1257923011)); - array2 = _200F_202A_202D_202D_206E_202B_202D_206B_200D_200E_200E_202E_206A_206E_202A_200B_200E_202E_200E_202B_200C_200C_202B_200E_202A_206B_206D_206A_206C_200D_206A_202C_202D_202C_200C_202B_206B_202C_202B_206E_202E((MethodBase)methodInfo); - array = new object[array2.Length]; - num7 = 0; - num2 = -158450057; - continue; - IL_047f: - num2 = ((!_206F_206F_202A_200B_206D_200B_200E_200F_206D_202B_206D_206C_202A_206D_202A_206F_206A_200B_206D_202E_202E_202C_206B_200F_202D_202E_200F_202C_200D_200C_206B_206A_202E_202A_206C_202D_206C_202B_206B_206B_202E(type2, _206C_206A_206B_200D_206E_206A_206F_200D_202A_206D_200E_206C_200B_202D_202A_202C_200E_206E_206E_200C_200D_206B_200B_206A_200C_206D_206D_206F_206D_206C_206D_200D_202E_202E_206B_200C_200E_206E_206E_200D_202E(typeof(bool).TypeHandle))) ? (-158450112) : (-158450087)); - continue; - IL_06b5: - num2 = ((thirdPartyRepoUrl == null) ? (-158450108) : (-158450058)); - continue; - IL_03d2: - num2 = ((num7 < array2.Length) ? (-158450082) : (-158450097)); - continue; - IL_01f2: - awaiter = _200B_206F_206B_202B_206D_202A_200D_202D_206C_206C_202B_202A_206D_206A_200D_206B_200B_202D_206C_206C_206D_206A_206F_200E_206C_202B_202D_200B_202C_202D_202B_202B_206E_206E_200B_202B_200B_200D_206B_202B_202E(_003CinstallTask_003E5__5, false).GetAwaiter(); - num2 = (awaiter.IsCompleted ? (-158450083) : (-158450110)); - continue; - IL_0599: - obj2 = _200D_202B_202D_206C_200E_206F_202C_200F_200F_200C_206E_206B_202E_200D_200D_206E_200E_202A_200D_202D_200C_206B_206C_202A_206F_202A_200E_206D_206D_202B_206A_202A_202D_206F_200D_206C_206F_206F_206A_202A_202E(_202A_200E_206F_206C_206E_200F_206B_202C_202A_206D_200B_200C_200B_206E_206C_202C_202C_200C_202A_200D_200D_202D_206B_200F_202C_200D_206A_206E_206F_200E_202A_206D_202E_200E_202E_200F_202B_200C_200E_206B_202E(_200D_206A_206A_202B_200C_206E_206C_200B_202D_202A_202D_206D_206D_200C_206F_202A_206C_202C_200B_206A_200B_200D_202D_200F_206C_206C_202C_206A_206F_202A_202B_202E_200F_200F_200F_206E_206C_206A_200D_206A_202E(obj4), global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1946306806)) ?? throw _206C_206F_206C_200D_200D_206D_202A_206E_206B_206F_202A_206E_206E_202D_200C_202B_200B_206B_206F_202D_202B_200C_202A_202B_202D_202B_202C_206C_202E_202E_200E_200B_206E_200B_206C_200E_200C_206D_206E_206D_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(241214595)), obj4); - num2 = ((!(obj2 is bool)) ? (-158450100) : (-158450102)); - continue; - IL_041b: - awaiter.GetResult(); - obj4 = _200D_202B_202D_206C_200E_206F_202C_200F_200F_200C_206E_206B_202E_200D_200D_206E_200E_202A_200D_202D_200C_206B_206C_202A_206F_202A_200E_206D_206D_202B_206A_202A_202D_206F_200D_206C_206F_206F_206A_202A_202E(_202A_200E_206F_206C_206E_200F_206B_202C_202A_206D_200B_200C_200B_206E_206C_202C_202C_200C_202A_200D_200D_202D_206B_200F_202C_200D_206A_206E_206F_200E_202A_206D_202E_200E_202E_200F_202B_200C_200E_206B_202E(_200D_206A_206A_202B_200C_206E_206C_200B_202D_202A_202D_206D_206D_200C_206F_202A_206C_202C_200B_206A_200B_200D_202D_200F_206C_206C_202C_206A_206F_202A_202B_202E_200F_200F_200F_206E_206C_206A_200D_206A_202E((object)_003CinstallTask_003E5__5), global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1037220679)) ?? throw _206C_206F_206C_200D_200D_206D_202A_206E_206B_206F_202A_206E_206E_202D_200C_202B_200B_206B_206F_202D_202B_200C_202A_202B_202D_202B_202C_206C_202E_202E_200E_200B_206E_200B_206C_200E_200C_206D_206E_206D_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1256600865)), (object)_003CinstallTask_003E5__5); - num2 = ((obj4 != null) ? (-158450090) : (-158450094)); - continue; - IL_02ee: - object obj5 = _200D_206A_202B_202A_206B_202B_206B_202D_206B_200F_202D_202E_202D_200B_202E_200C_206C_202C_202D_206D_206D_206A_202B_200E_206E_200B_200F_202C_206B_200C_202D_200B_202C_202E_206A_206A_206B_206A_202E((MethodBase)methodInfo, _003CpluginManager_003E5__2, array) ?? throw _206C_206F_206C_200D_200D_206D_202A_206E_206B_206F_202A_206E_206E_202D_200C_202B_200B_206B_206F_202D_202B_200C_202A_202B_202D_202B_202C_206C_202E_202E_200E_200B_206E_200B_206C_200E_200C_206D_206E_206D_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(121476692)); - _003CinstallTask_003E5__5 = obj5 as Task; - num2 = ((_003CinstallTask_003E5__5 != null) ? (-158450104) : (-158450096)); - continue; - IL_039c: - type2 = _206C_202C_206E_200C_206F_200D_206F_206E_202C_202B_202E_206E_200F_206C_206C_200F_202C_206D_200E_202D_206F_200D_202E_202E_206D_206F_206C_200F_202C_202C_206E_200E_206D_206A_200C_206F_200C_202D_200B_206F_202E(array2[num7]); - num2 = ((!_202B_202C_202A_206C_200E_206E_202B_206B_202C_206C_206A_206C_200D_202E_206A_200D_200F_202A_200C_200E_206B_206E_202D_206D_206D_202E_202E_200C_200D_200B_202D_206D_206A_200D_202A_200F_202A_206C_206F_202D_202E(type2, _200D_206A_206A_202B_200C_206E_206C_200B_202D_202A_202D_206D_206D_200C_206F_202A_206C_202C_200B_206A_200B_200D_202D_200F_206C_206C_202C_206A_206F_202A_202B_202E_200F_200F_200F_206E_206C_206A_200D_206A_202E(obj))) ? (-158450107) : (-158450098)); - continue; - IL_0285: - AddOrEnableThirdPartyRepo(_003Cassembly_003E5__3, thirdPartyRepoUrl); - awaiter = _200B_206F_206B_202B_206D_202A_200D_202D_206C_206C_202B_202A_206D_206A_200D_206B_200B_202D_206C_206C_206D_206A_206F_200E_206C_202B_202D_200B_202C_202D_202B_202B_206E_206E_200B_202B_200B_200D_206B_202B_202E(InvokeReloadAsync(_003CpluginManager_003E5__2, _003CreloadMethod_003E5__4), false).GetAwaiter(); - num2 = (awaiter.IsCompleted ? (-158450085) : (-158450092)); - continue; - IL_050e: - _003CreloadMethod_003E5__4 = _206B_206D_206A_200F_202E_206C_202A_206C_206E_206A_200B_206B_202C_202D_206D_206C_202B_202D_200E_200C_200F_202C_206C_200C_202B_200E_200C_200B_206F_202D_202E_202C_202E_200B_206B_200B_206A_206E_200E_200F_202E(_200D_206A_206A_202B_200C_206E_206C_200B_202D_202A_202D_206D_206D_200C_206F_202A_206C_202C_200B_206A_200B_200D_202D_200F_206C_206C_202C_206A_206F_202A_202B_202E_200F_200F_200F_206E_206C_206A_200D_206A_202E(_003CpluginManager_003E5__2), global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1659108735), BindingFlags.Instance | BindingFlags.Public) ?? throw _206C_206F_206C_200D_200D_206D_202A_206E_206B_206F_202A_206E_206E_202D_200C_202B_200B_206B_206F_202D_202B_200C_202A_202B_202D_202B_202C_206C_202E_202E_200E_200B_206E_200B_206C_200E_200C_206D_206E_206D_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-54915131)); - awaiter = _200B_206F_206B_202B_206D_202A_200D_202D_206C_206C_202B_202A_206D_206A_200D_206B_200B_202D_206C_206C_206D_206A_206F_200E_206C_202B_202D_200B_202C_202D_202B_202B_206E_206E_200B_202B_200B_200D_206B_202B_202E(InvokeReloadAsync(_003CpluginManager_003E5__2, _003CreloadMethod_003E5__4), false).GetAwaiter(); - num2 = (awaiter.IsCompleted ? (-158450099) : (-158450093)); - continue; - IL_0196: - _003CpluginManager_003E5__2 = dalamudReflector.GetPluginManager(); - _003Cassembly_003E5__3 = _200B_202A_202B_202D_202B_206F_202B_200D_202C_202E_206F_206A_202A_206B_206F_206B_200B_202D_206E_202A_206A_200E_206E_202C_200E_206B_202A_200D_206A_202B_200B_200D_200B_206A_206F_200D_206D_202A_200E_200F_202E(_200D_206A_206A_202B_200C_206E_206C_200B_202D_202A_202D_206D_206D_200C_206F_202A_206C_202C_200B_206A_200B_200D_202D_200F_206C_206C_202C_206A_206F_202A_202B_202E_200F_200F_200F_206E_206C_206A_200D_206A_202E((object)dalamudReflector._pluginInterface)); - num2 = ((!IsVariantLoaded(_003CpluginManager_003E5__2, internalName, thirdPartyRepoUrl, aliases)) ? (-158450084) : (-158450109)); - continue; - IL_03f5: - num2 = ((!_206F_206F_202A_200B_206D_200B_200E_200F_206D_202B_206D_206C_202A_206D_202A_206F_206A_200B_206D_202E_202E_202C_206B_200F_202D_202E_200F_202C_200D_200C_206B_206A_202E_202A_206C_202D_206C_202B_206B_206B_202E(type2, type)) ? (-158450086) : (-158450088)); - continue; - IL_0346: - awaiter.GetResult(); - obj = FindAvailableManifest(_003CpluginManager_003E5__2, internalName, thirdPartyRepoUrl, aliases); - num2 = ((obj != null) ? (-158450108) : (-158450111)); - continue; - end_IL_002c: - break; - } - goto IL_016d; - IL_062c: - awaiter = _003C_003Eu__1; - _003C_003Eu__1 = default(ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); - num = (_003C_003E1__state = -1); - num2 = -158450085; - goto IL_002c; - IL_0603: - awaiter = _003C_003Eu__1; - _003C_003Eu__1 = default(ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); - num = (_003C_003E1__state = -1); - num2 = -158450099; - goto IL_002c; - end_IL_000e:; - } - catch (Exception exception) - { - _003C_003E1__state = -2; - _003CpluginManager_003E5__2 = null; - _003Cassembly_003E5__3 = null; - _003CreloadMethod_003E5__4 = null; - _003CinstallTask_003E5__5 = null; - _003C_003Et__builder.SetException(exception); - return; - } - _003C_003E1__state = -2; - _003CpluginManager_003E5__2 = null; - _003Cassembly_003E5__3 = null; - _003CreloadMethod_003E5__4 = null; - _003CinstallTask_003E5__5 = null; - _003C_003Et__builder.SetResult(result); - } - - void IAsyncStateMachine.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - this.MoveNext(); - } - - [DebuggerHidden] - private void SetStateMachine(IAsyncStateMachine stateMachine) - { - _003C_003Et__builder.SetStateMachine(stateMachine); - } - - void IAsyncStateMachine.SetStateMachine(IAsyncStateMachine stateMachine) - { - //ILSpy generated this explicit interface implementation from .override directive in SetStateMachine - this.SetStateMachine(stateMachine); - } - - static Type _200D_206A_206A_202B_200C_206E_206C_200B_202D_202A_202D_206D_206D_200C_206F_202A_206C_202C_200B_206A_200B_200D_202D_200F_206C_206C_202C_206A_206F_202A_202B_202E_200F_200F_200F_206E_206C_206A_200D_206A_202E(object P_0) - { - return P_0.GetType(); - } - - static Assembly _200B_202A_202B_202D_202B_206F_202B_200D_202C_202E_206F_206A_202A_206B_206F_206B_200B_202D_206E_202A_206A_200E_206E_202C_200E_206B_202A_200D_206A_202B_200B_200D_200B_206A_206F_200D_206D_202A_200E_200F_202E(Type P_0) - { - return P_0.Assembly; - } - - static MethodInfo _206B_206D_206A_200F_202E_206C_202A_206C_206E_206A_200B_206B_202C_202D_206D_206C_202B_202D_200E_200C_200F_202C_206C_200C_202B_200E_200C_200B_206F_202D_202E_202C_202E_200B_206B_200B_206A_206E_200E_200F_202E(Type P_0, string P_1, BindingFlags P_2) - { - return P_0.GetMethod(P_1, P_2); - } - - static InvalidOperationException _206C_206F_206C_200D_200D_206D_202A_206E_206B_206F_202A_206E_206E_202D_200C_202B_200B_206B_206F_202D_202B_200C_202A_202B_202D_202B_202C_206C_202E_202E_200E_200B_206E_200B_206C_200E_200C_206D_206E_206D_202E(string P_0) - { - return new InvalidOperationException(P_0); - } - - static ConfiguredTaskAwaitable _200B_206F_206B_202B_206D_202A_200D_202D_206C_206C_202B_202A_206D_206A_200D_206B_200B_202D_206C_206C_206D_206A_206F_200E_206C_202B_202D_200B_202C_202D_202B_202B_206E_206E_200B_202B_200B_200D_206B_202B_202E(Task P_0, bool P_1) - { - return P_0.ConfigureAwait(P_1); - } - - static string _202E_206D_206D_202C_206A_206F_202A_200B_200F_206B_206F_202D_206D_200F_202D_200B_206A_200F_200C_206F_206A_206F_200E_200B_206C_202D_206E_206C_200D_206E_200C_206A_206E_200B_202A_206E_202E_206F_200D_202C_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static Type _200F_206E_206B_200C_200D_206A_200E_200B_202A_206F_200D_202D_202C_202B_202C_206D_206F_206C_202E_202E_202D_202A_206F_202C_202A_206B_206C_200D_200F_202A_206E_202E_202E_202B_206A_206C_206D_200C_202D_200F_202E(Assembly P_0, string P_1) - { - return P_0.GetType(P_1); - } - - static object _200D_200E_200E_200D_202D_200B_202A_206F_202D_202A_206B_206E_200C_202C_202A_206C_206F_206B_200E_206B_200D_200D_200F_200B_206B_200F_202E_206A_200B_200C_206C_206B_202B_200C_200E_200D_202E_202D_206E_200E_202E(Type P_0, string P_1) - { - return Enum.Parse(P_0, P_1); - } - - static ParameterInfo[] _200F_202A_202D_202D_206E_202B_202D_206B_200D_200E_200E_202E_206A_206E_202A_200B_200E_202E_200E_202B_200C_200C_202B_200E_202A_206B_206D_206A_206C_200D_206A_202C_202D_202C_200C_202B_206B_202C_202B_206E_202E(MethodBase P_0) - { - return P_0.GetParameters(); - } - - static Type _206C_202C_206E_200C_206F_200D_206F_206E_202C_202B_202E_206E_200F_206C_206C_200F_202C_206D_200E_202D_206F_200D_202E_202E_206D_206F_206C_200F_202C_202C_206E_200E_206D_206A_200C_206F_200C_202D_200B_206F_202E(ParameterInfo P_0) - { - return P_0.ParameterType; - } - - static bool _202B_202C_202A_206C_200E_206E_202B_206B_202C_206C_206A_206C_200D_202E_206A_200D_200F_202A_200C_200E_206B_206E_202D_206D_206D_202E_202E_200C_200D_200B_202D_206D_206A_200D_202A_200F_202A_206C_206F_202D_202E(Type P_0, Type P_1) - { - return P_0.IsAssignableFrom(P_1); - } - - static Type _206C_206A_206B_200D_206E_206A_206F_200D_202A_206D_200E_206C_200B_202D_202A_202C_200E_206E_206E_200C_200D_206B_200B_206A_200C_206D_206D_206F_206D_206C_206D_200D_202E_202E_206B_200C_200E_206E_206E_200D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _206F_206F_202A_200B_206D_200B_200E_200F_206D_202B_206D_206C_202A_206D_202A_206F_206A_200B_206D_202E_202E_202C_206B_200F_202D_202E_200F_202C_200D_200C_206B_206A_202E_202A_206C_202D_206C_202B_206B_206B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - - static object _200D_206A_202B_202A_206B_202B_206B_202D_206B_200F_202D_202E_202D_200B_202E_200C_206C_202C_202D_206D_206D_206A_202B_200E_206E_200B_200F_202C_206B_200C_202D_200B_202C_202E_206A_206A_206B_206A_202E(MethodBase P_0, object P_1, object[] P_2) - { - return P_0.Invoke(P_1, P_2); - } - - static PropertyInfo _202A_200E_206F_206C_206E_200F_206B_202C_202A_206D_200B_200C_200B_206E_206C_202C_202C_200C_202A_200D_200D_202D_206B_200F_202C_200D_206A_206E_206F_200E_202A_206D_202E_200E_202E_200F_202B_200C_200E_206B_202E(Type P_0, string P_1) - { - return P_0.GetProperty(P_1); - } - - static object _200D_202B_202D_206C_200E_206F_202C_200F_200F_200C_206E_206B_202E_200D_200D_206E_200E_202A_200D_202D_200C_206B_206C_202A_206F_202A_200E_206D_206D_202B_206A_202A_202D_206F_200D_206C_206F_206F_206A_202A_202E(PropertyInfo P_0, object P_1) - { - return P_0.GetValue(P_1); - } - } - - [StructLayout(LayoutKind.Auto)] - [CompilerGenerated] - private struct _003CEnablePluginAsync_003Ed__10 : IAsyncStateMachine - { - public int _003C_003E1__state; - - public AsyncTaskMethodBuilder<bool> _003C_003Et__builder; - - public DalamudReflector _003C_003E4__this; - - public string internalName; - - public string thirdPartyRepoUrl; - - public IReadOnlyList<string> aliases; - - private Assembly _003Cassembly_003E5__2; - - private object _003ClocalPlugin_003E5__3; - - private Type _003ClocalPluginType_003E5__4; - - private PropertyInfo _003CisLoadedProperty_003E5__5; - - private bool _003CloadedAfter_003E5__6; - - private ConfiguredTaskAwaitable.ConfiguredTaskAwaiter _003C_003Eu__1; - - [MethodImpl(MethodImplOptions.NoInlining)] - private void MoveNext() - { - int num = _003C_003E1__state; - DalamudReflector dalamudReflector = _003C_003E4__this; - bool result; - try - { - ConfiguredTaskAwaitable.ConfiguredTaskAwaiter awaiter = default(ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); - object obj2 = default(object); - int num6 = default(int); - int num2; - if (num != 0) - { - num2 = -517751488; - PropertyInfo propertyInfo = default(PropertyInfo); - object obj3 = default(object); - string text = default(string); - IDisposable disposable = default(IDisposable); - while (true) - { - int num3 = num2; - int num4 = -517751487; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 0: - num2 = -517751488; - continue; - case 1: - if (num != 1) - { - num2 = -517751485; - continue; - } - awaiter = _003C_003Eu__1; - _003C_003Eu__1 = default(ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); - num = (_003C_003E1__state = -1); - num2 = -219266637; - break; - case 2: - { - object pluginManager = dalamudReflector.GetPluginManager(); - _003Cassembly_003E5__2 = _202B_202C_206B_206B_206C_206D_206D_206B_206F_202A_202B_200B_206A_202A_206D_200D_202C_206B_202D_202D_202B_206B_206F_200C_202D_206D_206B_206B_202D_206D_202C_200C_206C_202A_202E_206D_200E_200F_206E_200D_202E(_202B_206E_206C_206A_202A_202C_202E_206C_206B_206B_200F_200D_202B_202A_200E_200C_206F_206E_202E_200D_206E_206D_202B_202D_206A_202D_200E_200F_200E_206B_206B_200E_206C_206E_200B_206E_206E_206B_206A_202D_202E((object)dalamudReflector._pluginInterface)); - IEnumerable obj = (_202E_202B_202A_206A_206A_200C_200C_206E_202E_202B_200D_206E_200B_202C_202C_200C_202B_200B_206E_200E_206D_200B_200D_200D_206D_206F_202B_206D_202B_206F_206A_202C_200D_202C_202A_202D_206F_206C_202C_202E(_202C_206D_202A_200D_200B_200E_202C_206B_206E_200D_206F_200C_202A_206E_206D_200D_206D_206A_200D_202E_202C_206A_206A_206C_206D_206A_200D_200B_206D_200D_200F_202B_202B_200F_202A_206C_202E_202D_206D_206B_202E(_202B_206E_206C_206A_202A_202C_202E_206C_206B_206B_200F_200D_202B_202A_200E_200C_206F_206E_202E_200D_206E_206D_202B_202D_206A_202D_200E_200F_200E_206B_206B_200E_206C_206E_200B_206E_206E_206B_206A_202D_202E(pluginManager), global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-797332337)) ?? throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1353226340)), pluginManager) as IEnumerable) ?? throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1803355673)); - _003ClocalPlugin_003E5__3 = null; - obj2 = null; - num6 = 0; - IEnumerator enumerator = _206B_206D_202C_206B_200B_206F_202A_206B_202A_206D_200F_202B_200D_206A_200B_200D_202D_202B_200F_206C_206C_206D_202C_200F_202E_200F_202B_200D_206B_200B_202E_206E_206A_206B_202E_202E_206F_200C_200B_206B_202E(obj); - try - { - num2 = 1208540772; - while (true) - { - int num7 = num2; - num4 = 1208540771; - num5 = num7; - int num8 = num5 + num4; - int num9 = num5 & num4; - switch (num8 - (num9 + num9)) - { - case 5: - propertyInfo = _206D_202A_202B_200C_206D_202D_202A_202E_206E_202A_202C_200F_202B_206C_206E_202E_206D_202A_206F_206F_200E_206A_206F_206C_200E_206F_200F_206B_206C_206E_206A_206E_206E_206F_200C_200E_200F_206B_202A_202D_202E(_202B_206E_206C_206A_202A_202C_202E_206C_206B_206B_200F_200D_202B_202A_200E_200C_206F_206E_202E_200D_206E_206D_202B_202D_206A_202D_200E_200F_200E_206B_206B_200E_206C_206E_200B_206E_206E_206B_206A_202D_202E(obj3), global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1994460583), BindingFlags.Instance | BindingFlags.Public); - num2 = (_206B_206B_202C_206D_202D_200E_202B_202B_200C_200D_200F_206A_202C_206C_202B_206B_206D_202B_206C_200F_202B_202C_206E_200E_200F_200F_202D_200E_206D_200C_202D_206B_206A_206F_206A_200D_206B_200C_206D_206C_202E(propertyInfo, (PropertyInfo)null) ? 1208540772 : 1208540769); - break; - case 4: - num2 = (_206B_206C_200D_202B_202D_202B_200D_200D_200E_206D_200B_206A_206B_202A_206E_202C_206A_202E_202D_202D_202B_206B_206A_202C_206F_202A_200C_200D_202C_200B_200D_202B_200B_202D_206B_200D_200C_200F_202E_206C_202E(text, internalName) ? 1208540772 : 1208540773); - break; - case 2: - text = _202E_202B_202A_206A_206A_200C_200C_206E_202E_202B_200D_206E_200B_202C_202C_200C_202B_200B_206E_200E_206D_200B_200D_200D_206D_206F_202B_206D_202B_206F_206A_202C_200D_202C_202A_202D_206F_206C_202C_202E(propertyInfo, obj3) as string; - num2 = ((text == null) ? 1208540772 : 1208540775); - break; - case 6: - { - int num10 = num6; - num4 = 1; - num5 = num10; - num6 = (num5 | num4) + (num5 & num4); - num2 = ((obj2 != null) ? 1208540779 : 1208540778); - break; - } - case 9: - obj2 = obj3; - num2 = 1208540779; - break; - case 0: - _003ClocalPlugin_003E5__3 = obj3; - num2 = 1208540770; - break; - case 10: - obj3 = _206C_202A_206F_202B_200B_206F_206D_202D_200D_200B_200F_206E_200C_202E_202A_200C_200F_202C_206D_202B_206E_206F_200D_206B_200E_206A_206E_202A_200F_200B_202A_206C_202C_202E_206E_206D_200B_202A_206B_200E_202E(enumerator); - num2 = ((obj3 == null) ? 1208540772 : 1208540774); - break; - case 8: - num2 = ((!LocalPluginMatchesRepo(obj3, thirdPartyRepoUrl, aliases)) ? 1208540772 : 1208540771); - break; - case 3: - num2 = 1208540772; - break; - case 7: - num2 = (_202A_206F_206C_202A_200F_202C_206A_200B_202A_206B_206A_202B_202E_202B_202C_206A_202E_202D_206F_202D_200E_206F_206A_206A_202B_206C_200D_200E_202E_202E_202A_206A_206B_206F_202E_200E_200D_206F_206B_200F_202E(enumerator) ? 1208540777 : 1208540770); - break; - case 1: - goto end_IL_00f5; - } - continue; - end_IL_00f5: - break; - } - } - finally - { - num2 = ((num >= 0) ? 1809875927 : 1809875925); - while (true) - { - int num11 = num2; - num4 = 1809875926; - num5 = num11; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - _200E_200E_202C_202B_200B_200D_202B_202E_206F_200F_202E_200C_206A_202D_206E_202E_202D_200C_202B_202D_206A_202E_200D_200B_200F_202B_200B_202D_200D_202C_206D_206C_202C_202B_202C_206A_200B_202B_206F_206A_202E(disposable); - num2 = 1809875927; - break; - case 1: - goto end_IL_02de; - case 2: - num2 = 1809875925; - break; - case 3: - disposable = enumerator as IDisposable; - num2 = ((disposable == null) ? 1809875927 : 1809875926); - break; - } - continue; - end_IL_02de: - break; - } - } - num2 = ((_003ClocalPlugin_003E5__3 != null) ? (-219266648) : (-219266644)); - break; - } - } - break; - } - } - else - { - awaiter = _003C_003Eu__1; - _003C_003Eu__1 = default(ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); - num = (_003C_003E1__state = -1); - num2 = -219266653; - } - string text3 = default(string); - object[] array2 = default(object[]); - int num17 = default(int); - object obj5 = default(object); - object obj4 = default(object); - Type type = default(Type); - ParameterInfo[] array3 = default(ParameterInfo[]); - Type type2 = default(Type); - int num16 = default(int); - string[] array = default(string[]); - Guid guid = default(Guid); - MethodInfo methodInfo = default(MethodInfo); - bool flag = default(bool); - while (true) - { - int num12 = num2; - int num4 = -219266628; - int num5 = num12; - int num14; - string text2; - int num13; - switch ((num5 | num4) - (num5 & num4)) - { - case 21: - num = (_003C_003E1__state = 1); - _003C_003Eu__1 = awaiter; - _003C_003Et__builder.AwaitUnsafeOnCompleted(ref awaiter, ref this); - return; - case 7: - throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(930706806)); - case 35: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(37, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-704778144)); - defaultInterpolatedStringHandler.AppendFormatted(internalName); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1141968393)); - defaultInterpolatedStringHandler.AppendFormatted(text3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-831521228)); - throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 14: - array2[num17] = obj5; - num2 = -219266659; - break; - case 0: - num14 = 0; - goto IL_04fe; - case 18: - throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(_200F_200F_202C_200E_202B_200D_206B_200C_206F_206F_206F_200E_200F_200D_206C_206A_202C_202C_200E_206A_206A_202D_200B_200B_202A_202A_200B_206D_200C_202C_200D_200F_202B_206B_202E_202B_200C_200B_202B_200F_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-704778144), internalName, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1737777117))); - case 3: - text2 = _200F_200F_202C_200E_202B_200D_206B_200C_206F_206F_206F_200E_200F_200D_206C_206A_202C_202C_200E_206A_206A_202D_200B_200B_202A_202A_200B_206D_200C_202C_200D_200F_202B_206B_202E_202B_200C_200B_202B_200F_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1931795628), internalName, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1283726812)); - goto IL_0562; - case 9: - _003CisLoadedProperty_003E5__5 = _202C_206D_202A_200D_200B_200E_202C_206B_206E_200D_206F_200C_202A_206E_206D_200D_206D_206A_200D_202E_202C_206A_206A_206C_206D_206A_200D_200B_206D_200D_200F_202B_202B_200F_202A_206C_202E_202D_206D_206B_202E(_003ClocalPluginType_003E5__4, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-904839146)) ?? throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-952438240)); - obj4 = _202E_202B_202A_206A_206A_200C_200C_206E_202E_202B_200D_206E_200B_202C_202C_200C_202B_200B_206E_200E_206D_200B_200D_200D_206D_206F_202B_206D_202B_206F_206A_202C_200D_202C_202A_202D_206F_206C_202C_202E(_003CisLoadedProperty_003E5__5, _003ClocalPlugin_003E5__3); - num2 = ((!(obj4 is bool)) ? (-219266628) : (-219266655)); - break; - case 20: - num2 = ((_003ClocalPlugin_003E5__3 != null) ? (-219266636) : (-219266652)); - break; - case 27: - array2[num17] = false; - num2 = -219266659; - break; - case 34: - type = _200F_206B_200D_206F_206A_202A_202B_202C_206D_200E_206B_206B_206E_206E_200D_206C_200B_206B_206E_206B_200D_200E_202B_202B_200E_200F_200B_206E_206F_202D_202C_202C_202C_206F_202A_206F_200D_206B_206F_200C_202E(array3[num17]); - num2 = ((!_206B_206A_206C_200C_202D_200E_206E_202B_206A_202A_206E_206F_200C_200E_206E_202E_200E_206E_200B_206E_202A_206E_202E_206F_202C_200C_206E_200E_206A_206F_202B_206A_202B_200B_206A_202E_206B_200B_200E_206E_202E(type, type2)) ? (-219266639) : (-219266638)); - break; - case 10: - result = true; - goto end_IL_0379; - case 30: - num13 = 0; - goto IL_0651; - case 5: - obj4 = _202E_202B_202A_206A_206A_200C_200C_206E_202E_202B_200D_206E_200B_202C_202C_200C_202B_200B_206E_200E_206D_200B_200D_200D_206D_206F_202B_206D_202B_206F_206A_202C_200D_202C_202A_202D_206F_206C_202C_202E(_206D_202A_202B_200C_206D_202D_202A_202E_206E_202A_202C_200F_202B_206C_206E_202E_206D_202A_206F_206F_200E_206A_206F_206C_200E_206F_200F_206B_206C_206E_206A_206E_206E_206F_200C_200E_200F_206B_202A_202D_202E(_003ClocalPluginType_003E5__4, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-592843582), BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) ?? throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(2067190462)), _003ClocalPlugin_003E5__3); - num2 = ((!(obj4 is Guid)) ? (-219266629) : (-219266632)); - break; - case 16: - num2 = ((num6 != 1) ? (-219266648) : (-219266641)); - break; - case 33: - { - int num18 = num17; - num4 = 1; - num5 = num18; - num17 = (num5 | num4) + (num5 & num4); - num2 = -219266660; - break; - } - case 11: - num2 = ((num16 < array.Length) ? (-219266626) : (-219266635)); - break; - case 12: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(70, 2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(709905315)); - defaultInterpolatedStringHandler2.AppendFormatted(internalName); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-2030116922)); - defaultInterpolatedStringHandler2.AppendFormatted(thirdPartyRepoUrl ?? global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-889155816)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1771580269)); - text2 = defaultInterpolatedStringHandler2.ToStringAndClear(); - goto IL_0562; - } - case 24: - num2 = ((num6 == 0) ? (-219266625) : (-219266640)); - break; - case 6: - array2[num17] = (_200C_200D_202E_202E_200E_200C_206A_206D_206C_206E_200E_200C_206D_206B_200B_202D_200D_206E_200B_206D_200D_200B_200D_200D_206D_200D_202D_206B_206C_202C_206E_200D_200D_200B_206E_202B_202B_202D_206F_206F_202E(array3[num17]) ? _200E_202B_206F_200C_200C_200C_202D_206B_200C_200B_202C_200F_206F_200C_200B_200C_202A_206C_206D_206A_200E_200E_200F_206C_200F_202A_200C_200C_202B_206A_202D_202B_206D_206D_200C_206E_206B_202B_200F_206A_202E(array3[num17]) : null); - num2 = -219266659; - break; - case 1: - result = true; - goto end_IL_0379; - case 4: - guid = (Guid)obj4; - num2 = -219266650; - break; - case 32: - num2 = ((num17 < array3.Length) ? (-219266658) : (-219266643)); - break; - case 17: - awaiter = _202E_206A_200F_200F_200D_206E_200D_200D_200F_200E_200B_206A_202D_200B_206C_200F_206D_200D_202E_206E_206A_202B_206D_200F_206F_202C_200E_206A_200D_202C_202B_206A_206B_206E_206D_200E_202C_202C_202E_206B_202E(((_206E_206E_200F_202A_206A_200C_206E_200F_200F_200E_200D_206B_206E_206D_206E_202C_200F_202C_202A_200D_202D_206B_200C_202B_202E_200E_200E_200C_202A_206F_202E_206A_206A_206C_200E_206B_202A_202C_200B_200E_202E((MethodBase)methodInfo, _003ClocalPlugin_003E5__3, array2) ?? throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1001583693))) as Task) ?? throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(796993768)), false).GetAwaiter(); - num2 = (awaiter.IsCompleted ? (-219266637) : (-219266647)); - break; - case 2: - { - text3 = array[num16]; - PropertyInfo propertyInfo2 = _206D_202A_202B_200C_206D_202D_202A_202E_206E_202A_202C_200F_202B_206C_206E_202E_206D_202A_206F_206F_200E_206A_206F_206C_200E_206F_200F_206B_206C_206E_206A_206E_206E_206F_200C_200E_200F_206B_202A_202D_202E(_003ClocalPluginType_003E5__4, text3, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); - obj4 = (((object)propertyInfo2 != null) ? _206B_202A_200C_206C_200C_202D_200D_202D_206E_206B_202E_206B_200C_200D_200D_206D_206D_202B_202C_200F_206A_200D_206E_206E_206C_202E_206F_200D_206F_200D_206A_202D_202A_202C_206C_202B_200F_200B_206D_202B_202E(propertyInfo2, _003ClocalPlugin_003E5__3) : null); - num2 = ((!(obj4 is bool)) ? (-219266664) : (-219266645)); - break; - } - case 22: - num2 = -219266644; - break; - case 26: - { - Type type3 = _202E_200B_202B_202E_202A_202B_202A_202E_202E_202D_200B_200D_202C_202B_206F_202C_202A_202C_202E_202E_202C_206C_200C_202B_202D_206B_202B_200C_200D_200E_200B_206D_200B_206F_206E_200D_206B_200B_200F_202E(_003Cassembly_003E5__2, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1664398343)) ?? throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-933355142)); - object obj6 = _202A_206C_206E_206A_206D_206A_206C_206C_206F_200E_202D_202D_206C_202C_202C_200D_202B_200C_206E_200D_202A_202E_202A_200B_202D_202D_206C_200F_200D_200D_206F_206B_200C_202A_202D_206C_202D_200B_202D_202E_202E((MethodBase)(_200B_200B_200D_200C_200E_202A_200D_206E_202A_202C_206D_206F_202C_206E_206F_202B_200D_206D_206E_200D_206F_202D_206E_206B_200E_202A_200F_200B_200C_202C_206C_200D_202E_206D_206B_202B_200B_206F_202E(_206F_200F_206F_206A_202A_202C_200E_206E_202E_202B_200C_206B_200E_200E_206F_202E_206D_206B_202E_202C_200C_206A_202C_200B_202E_202D_202B_200F_202A_206F_200F_202B_206E_206F_202D_206E_206B_202D_200C_206E_202E(_202E_200B_202B_202E_202A_202B_202A_202E_202E_202D_200B_200D_202C_202B_206F_202C_202A_202C_202E_202E_202C_206C_200C_202B_202D_206B_202B_200C_200D_200E_200B_206D_200B_206F_206E_200D_206B_200B_200F_202E(_003Cassembly_003E5__2, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1909913745)) ?? throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(2073227713)), new Type[1] { type3 }), global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(619471143)) ?? throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-2972004))), (object)null, BindingFlags.Default, (Binder)null, Array.Empty<object>(), (CultureInfo)null) ?? throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-555459542)); - object obj7 = _202E_202B_202A_206A_206A_200C_200C_206E_202E_202B_200D_206E_200B_202C_202C_200C_202B_200B_206E_200E_206D_200B_200D_200D_206D_206F_202B_206D_202B_206F_206A_202C_200D_202C_202A_202D_206F_206C_202C_202E(_206D_202A_202B_200C_206D_202D_202A_202E_206E_202A_202C_200F_202B_206C_206E_202E_206D_202A_206F_206F_200E_206A_206F_206C_200E_206F_200F_206B_206C_206E_206A_206E_206E_206F_200C_200E_200F_206B_202A_202D_202E(type3, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-420103450), BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) ?? throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1512306431)), obj6) ?? throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1036682349)); - awaiter = _202E_206A_200F_200F_200D_206E_200D_200D_200F_200E_200B_206A_202D_200B_206C_200F_206D_200D_202E_206E_206A_202B_206D_200F_206F_202C_200E_206A_200D_202C_202B_206A_206B_206E_206D_200E_202C_202C_202E_206B_202E(((_206E_206E_200F_202A_206A_200C_206E_200F_200F_200E_200D_206B_206E_206D_206E_202C_200F_202C_202A_200D_202D_206B_200C_202B_202E_200E_200E_200C_202A_206F_202E_206A_206A_206C_200E_206B_202A_202C_200B_200E_202E((MethodBase)(_206D_206C_206F_202A_202B_206E_200B_206B_200C_206E_200F_202E_202A_202C_206F_202A_202D_206A_200D_200F_200E_206F_202D_206D_202A_206D_206F_206F_206E_206C_206D_206B_206D_206E_202B_200D_202A_202E_202D_206D_202E(_202B_206E_206C_206A_202A_202C_202E_206C_206B_206B_200F_200D_202B_202A_200E_200C_206F_206E_202E_200D_206E_206D_202B_202D_206A_202D_200E_200F_200E_206B_206B_200E_206C_206E_200B_206E_206E_206B_206A_202D_202E(obj7), global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(2080206550), BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) ?? throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(793866729))), obj7, new object[4] { guid, internalName, true, false }) ?? throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-86444387))) as Task) ?? throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(480378918)), false).GetAwaiter(); - num2 = (awaiter.IsCompleted ? (-219266653) : (-219266656)); - break; - } - case 31: - awaiter.GetResult(); - type2 = _202E_200B_202B_202E_202A_202B_202A_202E_202E_202D_200B_200D_202C_202B_206F_202C_202A_202C_202E_202E_202C_206C_200C_202B_202D_206B_202B_200C_200D_200E_200B_206D_200B_206F_206E_200D_206B_200B_200F_202E(_003Cassembly_003E5__2, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(185084398)) ?? throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(303708542)); - obj5 = _200B_206E_200C_202B_200F_206A_202E_200E_200E_202C_202E_202C_200F_202B_200E_206A_202B_200B_202E_206F_206F_200E_206D_206B_200B_206D_206C_200C_202B_206C_200E_202A_202A_202B_206D_206C_202E_206C_206C_202D_202E(type2, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-302107944)); - methodInfo = _206D_206C_206F_202A_202B_206E_200B_206B_200C_206E_200F_202E_202A_202C_206F_202A_202D_206A_200D_200F_200E_206F_202D_206D_202A_206D_206F_206F_206E_206C_206D_206B_206D_206E_202B_200D_202A_202E_202D_206D_202E(_003ClocalPluginType_003E5__4, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-226194717), BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) ?? throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(67221465)); - array3 = _200C_202C_200E_206B_200B_206A_200E_206B_202E_202D_202C_202B_206A_206A_202C_206F_202E_200B_206F_202D_206C_200D_206B_206F_202B_206E_206E_206F_202D_206E_200D_206D_206E_206E_202D_200D_206B_202D_202C_200D_202E((MethodBase)methodInfo); - array2 = new object[array3.Length]; - num17 = 0; - num2 = -219266660; - break; - case 28: - num = (_003C_003E1__state = 0); - _003C_003Eu__1 = awaiter; - _003C_003Et__builder.AwaitUnsafeOnCompleted(ref awaiter, ref this); - return; - case 8: - _003ClocalPluginType_003E5__4 = _202B_206E_206C_206A_202A_202C_202E_206C_206B_206B_200F_200D_202B_202A_200E_200C_206F_206E_202E_200D_206E_206D_202B_202D_206A_202D_200E_200F_200E_206B_206B_200E_206C_206E_200B_206E_206E_206B_206A_202D_202E(_003ClocalPlugin_003E5__3); - array = new string[4] - { - global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(510149799), - global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1905938056), - global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-315909297), - global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(840433285) - }; - num16 = 0; - num2 = -219266633; - break; - case 19: - _003ClocalPlugin_003E5__3 = obj2; - num2 = -219266648; - break; - case 23: - num2 = ((!(bool)obj4) ? (-219266664) : (-219266657)); - break; - case 15: - awaiter.GetResult(); - obj4 = _202E_202B_202A_206A_206A_200C_200C_206E_202E_202B_200D_206E_200B_202C_202C_200C_202B_200B_206E_200E_206D_200B_200D_200D_206D_206F_202B_206D_202B_206F_206A_202C_200D_202C_202A_202D_206F_206C_202C_202E(_003CisLoadedProperty_003E5__5, _003ClocalPlugin_003E5__3); - num2 = ((!(obj4 is bool)) ? (-219266654) : (-219266651)); - break; - case 36: - { - int num15 = num16; - num4 = 1; - num5 = num15; - num16 = (num5 | num4) + (num5 & num4); - num2 = -219266633; - break; - } - case 29: - flag = (bool)obj4; - num14 = 1; - goto IL_04fe; - case 13: - num2 = ((!_206B_206A_206C_200C_202D_200E_206E_202B_206A_202A_206E_206F_200C_200E_206E_202E_200E_206E_200B_206E_202A_206E_202E_206F_202C_200C_206E_200E_206A_206F_202B_206A_202B_200B_206A_202E_206B_200B_200E_206E_202E(type, _202A_206E_206D_200E_202D_202B_206C_202B_200D_200D_200D_200B_202D_200F_206B_206F_200B_206E_202A_200C_200D_200F_206F_202E_200E_206E_202E_200D_206B_202C_200E_200B_206C_206F_206D_202B_200B_200B_206E_200D_202E(typeof(bool).TypeHandle))) ? (-219266630) : (-219266649)); - break; - case 25: - { - _003CloadedAfter_003E5__6 = (bool)obj4; - num13 = 1; - goto IL_0651; - } - IL_0562: - throw _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(text2); - IL_04fe: - num2 = ((((uint)num14 & (flag ? 1u : 0u)) == 0) ? (-219266631) : (-219266634)); - break; - IL_0651: - num2 = ((((uint)num13 & (_003CloadedAfter_003E5__6 ? 1u : 0u)) == 0) ? (-219266642) : (-219266627)); - break; - } - continue; - end_IL_0379: - break; - } - } - catch (Exception exception) - { - _003C_003E1__state = -2; - _003Cassembly_003E5__2 = null; - _003ClocalPlugin_003E5__3 = null; - _003ClocalPluginType_003E5__4 = null; - _003CisLoadedProperty_003E5__5 = null; - _003C_003Et__builder.SetException(exception); - return; - } - _003C_003E1__state = -2; - _003Cassembly_003E5__2 = null; - _003ClocalPlugin_003E5__3 = null; - _003ClocalPluginType_003E5__4 = null; - _003CisLoadedProperty_003E5__5 = null; - _003C_003Et__builder.SetResult(result); - } - - void IAsyncStateMachine.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - this.MoveNext(); - } - - [DebuggerHidden] - private void SetStateMachine(IAsyncStateMachine stateMachine) - { - _003C_003Et__builder.SetStateMachine(stateMachine); - } - - void IAsyncStateMachine.SetStateMachine(IAsyncStateMachine stateMachine) - { - //ILSpy generated this explicit interface implementation from .override directive in SetStateMachine - this.SetStateMachine(stateMachine); - } - - static Type _202B_206E_206C_206A_202A_202C_202E_206C_206B_206B_200F_200D_202B_202A_200E_200C_206F_206E_202E_200D_206E_206D_202B_202D_206A_202D_200E_200F_200E_206B_206B_200E_206C_206E_200B_206E_206E_206B_206A_202D_202E(object P_0) - { - return P_0.GetType(); - } - - static Assembly _202B_202C_206B_206B_206C_206D_206D_206B_206F_202A_202B_200B_206A_202A_206D_200D_202C_206B_202D_202D_202B_206B_206F_200C_202D_206D_206B_206B_202D_206D_202C_200C_206C_202A_202E_206D_200E_200F_206E_200D_202E(Type P_0) - { - return P_0.Assembly; - } - - static PropertyInfo _202C_206D_202A_200D_200B_200E_202C_206B_206E_200D_206F_200C_202A_206E_206D_200D_206D_206A_200D_202E_202C_206A_206A_206C_206D_206A_200D_200B_206D_200D_200F_202B_202B_200F_202A_206C_202E_202D_206D_206B_202E(Type P_0, string P_1) - { - return P_0.GetProperty(P_1); - } - - static InvalidOperationException _202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(string P_0) - { - return new InvalidOperationException(P_0); - } - - static object _202E_202B_202A_206A_206A_200C_200C_206E_202E_202B_200D_206E_200B_202C_202C_200C_202B_200B_206E_200E_206D_200B_200D_200D_206D_206F_202B_206D_202B_206F_206A_202C_200D_202C_202A_202D_206F_206C_202C_202E(PropertyInfo P_0, object P_1) - { - return P_0.GetValue(P_1); - } - - static IEnumerator _206B_206D_202C_206B_200B_206F_202A_206B_202A_206D_200F_202B_200D_206A_200B_200D_202D_202B_200F_206C_206C_206D_202C_200F_202E_200F_202B_200D_206B_200B_202E_206E_206A_206B_202E_202E_206F_200C_200B_206B_202E(IEnumerable P_0) - { - return P_0.GetEnumerator(); - } - - static object _206C_202A_206F_202B_200B_206F_206D_202D_200D_200B_200F_206E_200C_202E_202A_200C_200F_202C_206D_202B_206E_206F_200D_206B_200E_206A_206E_202A_200F_200B_202A_206C_202C_202E_206E_206D_200B_202A_206B_200E_202E(IEnumerator P_0) - { - return P_0.Current; - } - - static PropertyInfo _206D_202A_202B_200C_206D_202D_202A_202E_206E_202A_202C_200F_202B_206C_206E_202E_206D_202A_206F_206F_200E_206A_206F_206C_200E_206F_200F_206B_206C_206E_206A_206E_206E_206F_200C_200E_200F_206B_202A_202D_202E(Type P_0, string P_1, BindingFlags P_2) - { - return P_0.GetProperty(P_1, P_2); - } - - static bool _206B_206B_202C_206D_202D_200E_202B_202B_200C_200D_200F_206A_202C_206C_202B_206B_206D_202B_206C_200F_202B_202C_206E_200E_200F_200F_202D_200E_206D_200C_202D_206B_206A_206F_206A_200D_206B_200C_206D_206C_202E(PropertyInfo P_0, PropertyInfo P_1) - { - return P_0 == P_1; - } - - static bool _206B_206C_200D_202B_202D_202B_200D_200D_200E_206D_200B_206A_206B_202A_206E_202C_206A_202E_202D_202D_202B_206B_206A_202C_206F_202A_200C_200D_202C_200B_200D_202B_200B_202D_206B_200D_200C_200F_202E_206C_202E(string P_0, string P_1) - { - return P_0 != P_1; - } - - static bool _202A_206F_206C_202A_200F_202C_206A_200B_202A_206B_206A_202B_202E_202B_202C_206A_202E_202D_206F_202D_200E_206F_206A_206A_202B_206C_200D_200E_202E_202E_202A_206A_206B_206F_202E_200E_200D_206F_206B_200F_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200E_200E_202C_202B_200B_200D_202B_202E_206F_200F_202E_200C_206A_202D_206E_202E_202D_200C_202B_202D_206A_202E_200D_200B_200F_202B_200B_202D_200D_202C_206D_206C_202C_202B_202C_206A_200B_202B_206F_206A_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static string _200F_200F_202C_200E_202B_200D_206B_200C_206F_206F_206F_200E_200F_200D_206C_206A_202C_202C_200E_206A_206A_202D_200B_200B_202A_202A_200B_206D_200C_202C_200D_200F_202B_206B_202E_202B_200C_200B_202B_200F_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static object _206B_202A_200C_206C_200C_202D_200D_202D_206E_206B_202E_206B_200C_200D_200D_206D_206D_202B_202C_200F_206A_200D_206E_206E_206C_202E_206F_200D_206F_200D_206A_202D_202A_202C_206C_202B_200F_200B_206D_202B_202E(PropertyInfo P_0, object P_1) - { - return P_0.GetValue(P_1); - } - - static Type _202E_200B_202B_202E_202A_202B_202A_202E_202E_202D_200B_200D_202C_202B_206F_202C_202A_202C_202E_202E_202C_206C_200C_202B_202D_206B_202B_200C_200D_200E_200B_206D_200B_206F_206E_200D_206B_200B_200F_202E(Assembly P_0, string P_1) - { - return P_0.GetType(P_1); - } - - static Type _206F_200F_206F_206A_202A_202C_200E_206E_202E_202B_200C_206B_200E_200E_206F_202E_206D_206B_202E_202C_200C_206A_202C_200B_202E_202D_202B_200F_202A_206F_200F_202B_206E_206F_202D_206E_206B_202D_200C_206E_202E(Type P_0, Type[] P_1) - { - return P_0.MakeGenericType(P_1); - } - - static MethodInfo _200B_200B_200D_200C_200E_202A_200D_206E_202A_202C_206D_206F_202C_206E_206F_202B_200D_206D_206E_200D_206F_202D_206E_206B_200E_202A_200F_200B_200C_202C_206C_200D_202E_206D_206B_202B_200B_206F_202E(Type P_0, string P_1) - { - return P_0.GetMethod(P_1); - } - - static object _202A_206C_206E_206A_206D_206A_206C_206C_206F_200E_202D_202D_206C_202C_202C_200D_202B_200C_206E_200D_202A_202E_202A_200B_202D_202D_206C_200F_200D_200D_206F_206B_200C_202A_202D_206C_202D_200B_202D_202E_202E(MethodBase P_0, object P_1, BindingFlags P_2, Binder P_3, object[] P_4, CultureInfo P_5) - { - return P_0.Invoke(P_1, P_2, P_3, P_4, P_5); - } - - static MethodInfo _206D_206C_206F_202A_202B_206E_200B_206B_200C_206E_200F_202E_202A_202C_206F_202A_202D_206A_200D_200F_200E_206F_202D_206D_202A_206D_206F_206F_206E_206C_206D_206B_206D_206E_202B_200D_202A_202E_202D_206D_202E(Type P_0, string P_1, BindingFlags P_2) - { - return P_0.GetMethod(P_1, P_2); - } - - static object _206E_206E_200F_202A_206A_200C_206E_200F_200F_200E_200D_206B_206E_206D_206E_202C_200F_202C_202A_200D_202D_206B_200C_202B_202E_200E_200E_200C_202A_206F_202E_206A_206A_206C_200E_206B_202A_202C_200B_200E_202E(MethodBase P_0, object P_1, object[] P_2) - { - return P_0.Invoke(P_1, P_2); - } - - static ConfiguredTaskAwaitable _202E_206A_200F_200F_200D_206E_200D_200D_200F_200E_200B_206A_202D_200B_206C_200F_206D_200D_202E_206E_206A_202B_206D_200F_206F_202C_200E_206A_200D_202C_202B_206A_206B_206E_206D_200E_202C_202C_202E_206B_202E(Task P_0, bool P_1) - { - return P_0.ConfigureAwait(P_1); - } - - static object _200B_206E_200C_202B_200F_206A_202E_200E_200E_202C_202E_202C_200F_202B_200E_206A_202B_200B_202E_206F_206F_200E_206D_206B_200B_206D_206C_200C_202B_206C_200E_202A_202A_202B_206D_206C_202E_206C_206C_202D_202E(Type P_0, string P_1) - { - return Enum.Parse(P_0, P_1); - } - - static ParameterInfo[] _200C_202C_200E_206B_200B_206A_200E_206B_202E_202D_202C_202B_206A_206A_202C_206F_202E_200B_206F_202D_206C_200D_206B_206F_202B_206E_206E_206F_202D_206E_200D_206D_206E_206E_202D_200D_206B_202D_202C_200D_202E(MethodBase P_0) - { - return P_0.GetParameters(); - } - - static Type _200F_206B_200D_206F_206A_202A_202B_202C_206D_200E_206B_206B_206E_206E_200D_206C_200B_206B_206E_206B_200D_200E_202B_202B_200E_200F_200B_206E_206F_202D_202C_202C_202C_206F_202A_206F_200D_206B_206F_200C_202E(ParameterInfo P_0) - { - return P_0.ParameterType; - } - - static bool _206B_206A_206C_200C_202D_200E_206E_202B_206A_202A_206E_206F_200C_200E_206E_202E_200E_206E_200B_206E_202A_206E_202E_206F_202C_200C_206E_200E_206A_206F_202B_206A_202B_200B_206A_202E_206B_200B_200E_206E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - - static Type _202A_206E_206D_200E_202D_202B_206C_202B_200D_200D_200D_200B_202D_200F_206B_206F_200B_206E_202A_200C_200D_200F_206F_202E_200E_206E_202E_200D_206B_202C_200E_200B_206C_206F_206D_202B_200B_200B_206E_200D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _200C_200D_202E_202E_200E_200C_206A_206D_206C_206E_200E_200C_206D_206B_200B_202D_200D_206E_200B_206D_200D_200B_200D_200D_206D_200D_202D_206B_206C_202C_206E_200D_200D_200B_206E_202B_202B_202D_206F_206F_202E(ParameterInfo P_0) - { - return P_0.HasDefaultValue; - } - - static object _200E_202B_206F_200C_200C_200C_202D_206B_200C_200B_202C_200F_206F_200C_200B_200C_202A_206C_206D_206A_200E_200E_200F_206C_200F_202A_200C_200C_202B_206A_202D_202B_206D_206D_200C_206E_206B_202B_200F_206A_202E(ParameterInfo P_0) - { - return P_0.DefaultValue; - } - } - - [StructLayout(LayoutKind.Auto)] - [CompilerGenerated] - private struct _003CInvokeReloadAsync_003Ed__13 : IAsyncStateMachine - { - public int _003C_003E1__state; - - public AsyncTaskMethodBuilder _003C_003Et__builder; - - public MethodInfo reloadMethod; - - public object pluginManager; - - private ConfiguredTaskAwaitable.ConfiguredTaskAwaiter _003C_003Eu__1; - - [MethodImpl(MethodImplOptions.NoInlining)] - private void MoveNext() - { - int num = _003C_003E1__state; - try - { - int num2 = ((num == 0) ? (-99592063) : (-99592058)); - ConfiguredTaskAwaitable.ConfiguredTaskAwaiter awaiter = default(ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); - while (true) - { - int num3 = num2; - int num4 = -99592059; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 1: - num = (_003C_003E1__state = 0); - _003C_003Eu__1 = awaiter; - _003C_003Et__builder.AwaitUnsafeOnCompleted(ref awaiter, ref this); - return; - case 4: - awaiter = _003C_003Eu__1; - _003C_003Eu__1 = default(ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); - num = (_003C_003E1__state = -1); - num2 = -99592057; - break; - case 0: - num2 = -99592058; - break; - case 3: - awaiter = _200E_206A_200B_200D_202D_206B_202D_202C_200F_206B_200F_200E_206C_200F_206C_200F_202A_206C_206B_200C_202E_200B_206E_206E_206C_202D_202B_202A_202C_206C_200C_202E_202D_200F_202B_200D_206F_200E_206B_202A_202E(((Task)_202D_206C_206C_200E_200B_206C_206B_206F_200D_206B_206D_202C_206D_200E_206C_200C_206B_200C_206C_202C_202D_206F_206B_202D_206B_202C_200C_202A_206C_206D_206C_200B_200C_200E_200C_206E_202E_206D_206A_206A_202E((MethodBase)reloadMethod, pluginManager, new object[1] { true })) ?? throw _202A_202B_200C_202E_200D_200D_206F_200F_200E_206C_206F_206D_200C_206A_202B_206B_200F_202C_200B_200B_200F_202B_200F_206F_206E_206C_200D_202A_200F_206C_200B_200E_206E_206B_202A_200C_206C_200B_206E_206D_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-7195696)), false).GetAwaiter(); - num2 = (awaiter.IsCompleted ? (-99592057) : (-99592060)); - break; - case 2: - awaiter.GetResult(); - goto end_IL_0025; - } - continue; - end_IL_0025: - break; - } - } - catch (Exception exception) - { - _003C_003E1__state = -2; - _003C_003Et__builder.SetException(exception); - return; - } - _003C_003E1__state = -2; - _003C_003Et__builder.SetResult(); - } - - void IAsyncStateMachine.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - this.MoveNext(); - } - - [DebuggerHidden] - private void SetStateMachine(IAsyncStateMachine stateMachine) - { - _003C_003Et__builder.SetStateMachine(stateMachine); - } - - void IAsyncStateMachine.SetStateMachine(IAsyncStateMachine stateMachine) - { - //ILSpy generated this explicit interface implementation from .override directive in SetStateMachine - this.SetStateMachine(stateMachine); - } - - static object _202D_206C_206C_200E_200B_206C_206B_206F_200D_206B_206D_202C_206D_200E_206C_200C_206B_200C_206C_202C_202D_206F_206B_202D_206B_202C_200C_202A_206C_206D_206C_200B_200C_200E_200C_206E_202E_206D_206A_206A_202E(MethodBase P_0, object P_1, object[] P_2) - { - return P_0.Invoke(P_1, P_2); - } - - static InvalidOperationException _202A_202B_200C_202E_200D_200D_206F_200F_200E_206C_206F_206D_200C_206A_202B_206B_200F_202C_200B_200B_200F_202B_200F_206F_206E_206C_200D_202A_200F_206C_200B_200E_206E_206B_202A_200C_206C_200B_206E_206D_202E(string P_0) - { - return new InvalidOperationException(P_0); - } - - static ConfiguredTaskAwaitable _200E_206A_200B_200D_202D_206B_202D_202C_200F_206B_200F_200E_206C_200F_206C_200F_202A_206C_206B_200C_202E_200B_206E_206E_206C_202D_202B_202A_202C_206C_200C_202E_202D_200F_202B_200D_206F_200E_206B_202A_202E(Task P_0, bool P_1) - { - return P_0.ConfigureAwait(P_1); - } - } - private readonly IDalamudPluginInterface _pluginInterface; private readonly IPluginLog _pluginLog; @@ -1100,1869 +24,554 @@ public sealed class DalamudReflector : IDisposable private int _cacheVersion; - [MethodImpl(MethodImplOptions.NoInlining)] public DalamudReflector(IDalamudPluginInterface pluginInterface, IFramework framework, IPluginLog pluginLog) { - _206B_200C_202D_200D_202D_206A_206F_202D_202B_200F_206F_206D_206C_202E_206E_206A_200C_202A_206F_202A_200E_202D_206E_202C_206A_206A_200D_200C_202E_206B_206C_202A_206C_200D_202E_206B_202C_206B_202B_206F_202E((object)pluginInterface, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(766607579)); - _206B_200C_202D_200D_202D_206A_206F_202D_202B_200F_206F_206D_206C_202E_206E_206A_200C_202A_206F_202A_200E_202D_206E_202C_206A_206A_200D_200C_202E_206B_206C_202A_206C_200D_202E_206B_202C_206B_202B_206F_202E((object)framework, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1938330958)); - _206B_200C_202D_200D_202D_206A_206F_202D_202B_200F_206F_206D_206C_202E_206E_206A_200C_202A_206F_202A_200E_202D_206E_202C_206A_206A_200D_200C_202E_206B_206C_202A_206C_200D_202E_206B_202C_206B_202B_206F_202E((object)pluginLog, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-2117874046)); + ArgumentNullException.ThrowIfNull(pluginInterface, "pluginInterface"); + ArgumentNullException.ThrowIfNull(framework, "framework"); + ArgumentNullException.ThrowIfNull(pluginLog, "pluginLog"); _pluginInterface = pluginInterface; _pluginLog = pluginLog; _pluginManager = GetPluginManager(); - _202C_206A_202C_206C_200F_202D_200B_200D_202D_200B_202A_206F_200E_200D_202A_206F_206C_200E_200F_202E_202A_206F_200C_200F_200C_206C_202D_202B_200D_206F_202D_202A_202B_200D_206D_202B_200E_206E_202E_202B_202E(_202C_202B_202D_200C_202D_206F_202E_206B_202E_202C_206E_202E_200E_202D_202D_206B_202E_202E_206B_206A_202D_202A_206F_202B_202B_202B_200E_200F_206E_202C_206E_202E_200E_206E_206F_202B_202C_202D_206D_200D_202E(_202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(_pluginManager), global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(61100902)) ?? throw _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(704518146)), _pluginManager, (Delegate)new Action(OnInstalledPluginsChanged)); + (_pluginManager.GetType().GetEvent("OnInstalledPluginsChanged") ?? throw new InvalidOperationException("Could not find OnInstalledPluginsChanged event - Dalamud internals may have changed")).AddEventHandler(_pluginManager, new Action(OnInstalledPluginsChanged)); } - [MethodImpl(MethodImplOptions.NoInlining)] public void Dispose() { try { - EventInfo eventInfo = _202C_202B_202D_200C_202D_206F_202E_206B_202E_202C_206E_202E_200E_202D_202D_206B_202E_202E_206B_206A_202D_202A_206F_202B_202B_202B_200E_200F_206E_202C_206E_202E_200E_206E_206F_202B_202C_202D_206D_200D_202E(_202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(_pluginManager), global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(901875249)); - if ((object)eventInfo != null) + _pluginManager.GetType().GetEvent("OnInstalledPluginsChanged")?.RemoveEventHandler(_pluginManager, new Action(OnInstalledPluginsChanged)); + } + catch (Exception exception) + { + _pluginLog.Warning(exception, "[DalamudReflector] Failed to unhook OnInstalledPluginsChanged"); + } + } + + private object GetPluginManager() + { + Assembly assembly = _pluginInterface.GetType().Assembly; + Type type = assembly.GetType("Dalamud.Service`1") ?? throw new InvalidOperationException("Could not find Dalamud.Service`1 type - Dalamud internals may have changed"); + Type type2 = assembly.GetType("Dalamud.Plugin.Internal.PluginManager") ?? throw new InvalidOperationException("Could not find Dalamud.Plugin.Internal.PluginManager type - Dalamud internals may have changed"); + return (type.MakeGenericType(type2).GetMethod("Get") ?? throw new InvalidOperationException("Could not find Service<PluginManager>.Get() method - Dalamud internals may have changed")).Invoke(null, BindingFlags.Default, null, Array.Empty<object>(), null) ?? throw new InvalidOperationException("Service<PluginManager>.Get() returned null"); + } + + public bool TryGetDalamudPlugin(string internalName, [MaybeNullWhen(false)] out object instance, bool suppressErrors = false, bool ignoreCache = false) + { + if (!ignoreCache && _pluginCache.TryGetValue(internalName, out instance)) + { + return true; + } + try + { + int num = Volatile.Read(in _cacheVersion); + object pluginManager = GetPluginManager(); + IEnumerable plugins = (IEnumerable)((pluginManager.GetType().GetProperty("InstalledPlugins") ?? throw new InvalidOperationException("Could not find InstalledPlugins property - Dalamud internals may have changed")).GetValue(pluginManager) ?? throw new InvalidOperationException("InstalledPlugins returned null")); + bool warnedNullInstance = false; + if (TryFindByProperty(plugins, "InternalName", out var found) || TryFindByProperty(plugins, "Name", out found)) { - _200E_206A_200C_206C_200C_200C_206A_202B_206E_202E_206B_200F_206F_206E_200E_200C_202E_200D_202E_206C_202B_206F_200B_206B_206C_202C_200D_202D_206E_200F_200D_200D_202D_206B_200E_202D_206B_202D_206F_206C_202E(eventInfo, _pluginManager, (Delegate)new Action(OnInstalledPluginsChanged)); + instance = found; + if (Volatile.Read(in _cacheVersion) == num) + { + _pluginCache[internalName] = found; + if (Volatile.Read(in _cacheVersion) != num) + { + _pluginCache.TryRemove(internalName, out object _); + } + } + return true; + } + instance = null; + return false; + bool TryFindByProperty(IEnumerable enumerable, string propertyName, [MaybeNullWhen(false)] out object reference) + { + foreach (object item in enumerable) + { + PropertyInfo property = item.GetType().GetProperty(propertyName); + if (!(property == null) && !((string)property.GetValue(item) != internalName)) + { + object obj = (((item.GetType().Name == "LocalDevPlugin") ? item.GetType().BaseType : item.GetType())?.GetField("instance", BindingFlags.Instance | BindingFlags.NonPublic))?.GetValue(item); + if (obj != null) + { + reference = obj; + return true; + } + if (!suppressErrors && !warnedNullInstance) + { + warnedNullInstance = true; + _pluginLog.Warning("[DalamudReflector] Found requested plugin " + internalName + " but it was null"); + } + } + } + reference = null; + return false; } } catch (Exception ex) { - _200D_202D_206F_200C_206E_202A_202B_200E_202C_202B_206E_202A_202D_206D_202D_200D_202C_206A_202A_202E_206F_206C_206D_202C_202B_206B_206F_202D_202A_202C_206A_202A_202E_206F_202D_202C_206C_206C_200E_206A_202E(_pluginLog, ex, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1858220140), Array.Empty<object>()); - } - } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private object GetPluginManager() - { - Assembly assembly = _200F_202E_200B_202A_200B_202C_206F_200D_202A_200D_200B_206D_200F_206A_200C_206C_202B_202E_202D_206D_202C_202E_200E_206F_200F_200C_202D_202D_206D_200F_200F_200C_206B_206F_200D_206B_200E_202A_200D_202D_202E(_202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E((object)_pluginInterface)); - Type type = _202A_206F_206D_200B_200D_202B_200B_202B_202D_200E_202A_206D_202D_202E_206A_206E_206C_200D_206C_200D_202B_206E_202B_200B_200E_206D_206D_200E_200C_200B_206D_206F_200D_200D_202D_200D_206C_206B_202C_202A_202E(assembly, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-986462569)) ?? throw _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(2104843711)); - Type type2 = _202A_206F_206D_200B_200D_202B_200B_202B_202D_200E_202A_206D_202D_202E_206A_206E_206C_200D_206C_200D_202B_206E_202B_200B_200E_206D_206D_200E_200C_200B_206D_206F_200D_200D_202D_200D_206C_206B_202C_202A_202E(assembly, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-99944467)) ?? throw _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1767393178)); - return _206D_200D_200B_206A_202A_206C_202A_202B_206C_200E_206E_200E_202E_206F_200E_206C_206A_202C_206C_202E_202B_206D_200B_206F_200C_202B_206C_200F_202C_200C_200C_206E_206E_200B_206C_200D_206C_206C_206E_206E_202E((MethodBase)(_200D_200E_200B_202D_206D_202E_200B_200D_202D_200D_200B_206B_202C_200B_202E_202C_202A_206F_202B_200F_200D_202A_202A_200D_200B_200C_202C_202A_206F_206C_200C_202B_206A_206A_202A_206E_206B_202D_206C_206C_202E(_206E_206A_200C_202D_206B_202B_206B_202A_206A_206D_202A_206D_206B_200C_200E_206E_206E_202E_202A_206E_206F_202C_202A_206A_202B_206C_200B_200C_200D_202C_206D_200D_200C_206C_200E_202B_200D_206D_202C_202E(type, new Type[1] { type2 }), global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(584300081)) ?? throw _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1719334999))), (object)null, BindingFlags.Default, (Binder)null, Array.Empty<object>(), (CultureInfo)null) ?? throw _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1317436628)); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - public bool TryGetDalamudPlugin(string internalName, [MaybeNullWhen(false)] out object instance, bool suppressErrors = false, bool ignoreCache = false) - { - int num = (ignoreCache ? 733685784 : 733685787); - while (true) - { - int num2 = num; - int num3 = 733685786; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (!suppressErrors) { - case 3: - return true; - case 1: - num = ((!_pluginCache.TryGetValue(internalName, out instance)) ? 733685784 : 733685785); - break; - case 0: - num = 733685787; - break; - case 2: - try - { - int num7 = _202D_202C_206B_206C_202E_206D_200B_202E_206F_206B_200F_206E_206D_200D_206A_206A_202A_206C_200B_206B_200F_200F_206B_200E_202C_202B_200F_200B_206D_206E_200D_200B_206B_200B_206D_202A_200C_202A_202D_206F_202E(ref _cacheVersion); - object pluginManager = GetPluginManager(); - IEnumerable plugins = (IEnumerable)(_200F_200E_202E_202C_202C_200F_200F_206E_202A_200E_200E_206B_200F_200B_206D_202A_206C_206C_206C_206A_200D_200E_200F_202E_206F_206B_206D_200C_206E_202E_206B_200C_206B_200E_202E_206D_202B_200F_200D_200D_202E(_206C_200B_202A_206D_206E_206B_206A_200D_200E_200D_200C_202E_202A_200E_202E_206A_206B_200B_200C_202B_200D_206D_202B_202C_202C_206B_206D_206D_202E_206A_202E_200D_206C_202E_200B_202A_206A_200D_206C_202D_202E(_202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(pluginManager), global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1507868704)) ?? throw _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1553385684)), pluginManager) ?? throw _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-169322018))); - bool warnedNullInstance = false; - num = (TryFindByProperty(plugins, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1471187825), out var found) ? 1267877679 : 1267877678); - while (true) - { - int num8 = num; - num3 = 1267877674; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 2: - return true; - case 5: - instance = found; - num = ((_202D_202C_206B_206C_202E_206D_200B_202E_206F_206B_200F_206E_206D_200D_206A_206A_202A_206C_200B_206B_200F_200F_206B_200E_202C_202B_200F_200B_206D_206E_200D_200B_206B_200B_206D_202A_200C_202A_202D_206F_202E(ref _cacheVersion) != num7) ? 1267877672 : 1267877676); - break; - case 1: - { - _pluginCache.TryRemove(internalName, out object _); - num = 1267877672; - break; - } - case 6: - _pluginCache[internalName] = found; - num = ((_202D_202C_206B_206C_202E_206D_200B_202E_206F_206B_200F_206E_206D_200D_206A_206A_202A_206C_200B_206B_200F_200F_206B_200E_202C_202B_200F_200B_206D_206E_200D_200B_206B_200B_206D_202A_200C_202A_202D_206F_202E(ref _cacheVersion) == num7) ? 1267877672 : 1267877675); - break; - case 4: - num = ((!TryFindByProperty(plugins, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1712180490), out found)) ? 1267877674 : 1267877679); - break; - case 3: - num = 1267877678; - break; - case 0: - instance = null; - return false; - } - } - [MethodImpl(MethodImplOptions.NoInlining)] - bool TryFindByProperty(IEnumerable enumerable, string propertyName, [MaybeNullWhen(false)] out object reference) - { - IEnumerator enumerator = _206D_200B_202A_206A_200B_206A_206B_202D_200F_206A_202C_206E_206B_202C_200C_206B_206E_202C_200F_202B_206F_202E_202E_200F_200D_206E_202A_202C_200E_200B_206A_200C_202C_206A_206D_200F_206F_206C_206B_206F_202E(enumerable); - try - { - int num14 = -2001915741; - object obj2 = default(object); - PropertyInfo propertyInfo = default(PropertyInfo); - object obj = default(object); - while (true) - { - int num15 = num14; - int num16 = -2001915739; - int num17 = num15; - int num18 = num17 + num16; - int num19 = num17 & num16; - Type type; - FieldInfo obj3; - switch (num18 - (num19 + num19)) - { - case 5: - type = _200D_200F_206A_206C_200B_200C_200B_206A_202C_200E_206F_202B_206B_200B_202E_206F_200D_206B_202C_202E_206C_200C_200D_200D_206C_206D_202E_200B_206E_200C_206A_200B_206A_206B_202E_200D_200D_202B_206E_206B_202E(_202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(obj2)); - goto IL_0070; - case 11: - type = _202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(obj2); - goto IL_0070; - case 4: - warnedNullInstance = true; - _206F_202C_206D_202B_202C_206C_200B_200E_206F_200C_206F_206E_202C_206A_206A_206B_206F_202C_200C_206C_200D_200D_202D_202E_202C_200E_202C_200B_202A_206E_202B_202C_206E_206D_206A_206E_206E_206E_202B_206E_202E(_pluginLog, _200D_200B_202C_206F_200B_202C_206F_202A_200F_200E_206A_200B_202C_206E_202E_206E_200D_200C_202E_202E_202D_200F_206D_202A_200F_206D_206B_200C_206B_200B_206E_202A_200E_206F_206E_206D_206E_202A_206D_200D_202E(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-651447327), internalName, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1207385205)), Array.Empty<object>()); - num14 = -2001915741; - break; - case 0: - num14 = -2001915741; - break; - case 2: - num14 = (warnedNullInstance ? (-2001915741) : (-2001915743)); - break; - case 1: - num14 = (_200D_200F_200D_206F_200D_206D_202D_206E_200C_200F_202E_206D_206E_200C_200D_206A_200B_202B_202B_200E_202D_206E_200B_206D_200C_200D_200D_200B_202E_200B_202C_202C_200D_202C_200E_202E_200D_206E_206C_202A_202E((string)_200F_200E_202E_202C_202C_200F_200F_206E_202A_200E_200E_206B_200F_200B_206D_202A_206C_206C_206C_206A_200D_200E_200F_202E_206F_206B_206D_200C_206E_202E_206B_200C_206B_200E_202E_206D_202B_200F_200D_200D_202E(propertyInfo, obj2), internalName) ? (-2001915741) : (-2001915732)); - break; - case 7: - num14 = (suppressErrors ? (-2001915741) : (-2001915737)); - break; - case 8: - obj2 = _206F_200F_200C_202D_202E_202A_202A_202C_200D_200D_206F_206E_206B_200C_200B_202C_206D_206A_206D_202D_202B_200E_206D_202B_200B_202C_206D_200D_202D_206A_206A_202C_202E_206D_206E_206B_200F_200B_206D_202B_202E(enumerator); - propertyInfo = _206C_200B_202A_206D_206E_206B_206A_200D_200E_200D_200C_202E_202A_200E_202E_206A_206B_200B_200C_202B_200D_206D_202B_202C_202C_206B_206D_206D_202E_206A_202E_200D_206C_202E_200B_202A_206A_200D_206C_202D_202E(_202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(obj2), propertyName); - num14 = (_206A_206B_200D_202B_200F_206C_200D_206F_200B_206A_206D_202D_202B_206E_202D_206A_206E_206F_206B_206D_206E_202B_206C_206B_200F_206C_206B_200F_206D_200C_206E_206A_200D_200E_200C_206A_206D_206D_200B_200F_202E(propertyInfo, (PropertyInfo)null) ? (-2001915741) : (-2001915740)); - break; - case 9: - num14 = (_206C_200E_200C_200C_206B_206A_202A_200E_206E_200F_202E_200B_202B_206C_206F_202C_202A_206E_206F_202A_206F_202A_200F_200B_206D_202D_200D_206B_202A_202B_202E_202B_202A_206B_206A_200E_202B_206E_206B_202C_202E(_206D_200D_206E_200E_202E_200B_202B_206E_206B_200F_200F_202E_202A_200C_200E_202E_200E_202E_206D_202C_206A_200D_202A_206C_200B_202B_202A_202E_206F_206B_200D_200E_206D_206B_200F_206F_206A_206A_206C_206E_202E((MemberInfo)_202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(obj2)), global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-2129999289)) ? (-2001915744) : (-2001915730)); - break; - case 6: - num14 = (_206F_200C_200B_206E_202D_200C_200E_202E_200C_200F_206C_206E_200B_200C_202C_200D_200F_206C_206C_202B_202B_202B_206C_206B_200C_206A_200F_200C_202B_206F_202D_200C_206B_200D_206A_202B_200D_200F_206F_202C_202E(enumerator) ? (-2001915731) : (-2001915738)); - break; - case 10: - reference = obj; - return true; - case 3: - goto end_IL_0013; - IL_0070: - obj3 = (((object)type != null) ? _206C_206F_200C_206B_202B_202C_200F_206A_200C_202A_206D_200F_206F_202D_206E_202C_202B_200C_202B_200C_202C_202D_202B_200B_200E_202D_202C_202A_200D_206E_206F_202B_200D_206A_200F_206F_206D_200D_200F_206A_202E(type, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1540023666), BindingFlags.Instance | BindingFlags.NonPublic) : null); - obj = (((object)obj3 != null) ? _200B_200C_202B_200B_200F_206A_206B_202E_200F_206D_200B_202A_206D_202B_200D_206A_200B_200F_200B_206A_202D_202A_202C_206E_202A_206C_200C_206D_206D_202D_202D_206F_200C_202D_206C_200F_202B_202C_206F_200C_202E(obj3, obj2) : null); - num14 = ((obj != null) ? (-2001915729) : (-2001915742)); - break; - } - continue; - end_IL_0013: - break; - } - } - finally - { - IDisposable disposable = enumerator as IDisposable; - int num14 = ((disposable == null) ? 668881106 : 668881105); - while (true) - { - int num20 = num14; - int num16 = 668881107; - int num17 = num20; - switch ((num17 | num16) - (num17 & num16)) - { - case 0: - num14 = 668881105; - break; - case 1: - goto end_IL_0279; - case 2: - _200F_206A_202B_200D_200B_206E_202D_200D_202A_200B_202D_206D_200B_206E_202E_206E_202A_200C_206A_200D_200F_206E_200F_202C_202E_200B_202A_200D_200D_200B_200E_200D_202D_206C_206E_200F_202C_202D_202D_202A_202E(disposable); - num14 = 668881106; - break; - } - continue; - end_IL_0279: - break; - } - } - reference = null; - return false; - } - } - catch (Exception ex) - { - num = (suppressErrors ? 2034033441 : 2034033442); - while (true) - { - int num11 = num; - num3 = 2034033443; - num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) - { - case 0: - num = 2034033442; - break; - case 1: - _202B_200D_202A_206E_202E_202B_206F_206B_206A_202C_202A_200C_200E_206E_202E_206B_202C_206E_206F_200F_206C_206F_206A_206C_206C_200B_206A_206E_206B_202C_202A_202E_206D_202B_202E_200F_206A_202B_206B_200C_202E(_pluginLog, ex, _200E_206E_200B_206B_206E_202E_206A_206A_202C_202C_202D_202B_200D_206D_202E_206F_200B_200E_206E_200E_202D_200E_202B_200B_200F_200C_200B_200F_206B_202E_206D_200B_206F_206E_206E_200C_200E_206B_200F_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1900988923), internalName, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1295840145), _206D_202B_206D_202D_200C_202E_206E_206F_202E_200D_202E_202E_206D_202C_200D_200D_200C_202E_202D_200E_206A_206B_206E_202B_206F_200B_200D_200F_206B_200D_206B_202C_200D_202A_202D_200C_206D_200C_206D_206C_202E(ex)), Array.Empty<object>()); - num = 2034033441; - break; - case 2: - instance = null; - return false; - } - } - } + _pluginLog.Error(ex, "Can't find " + internalName + " plugin: " + ex.Message); } + instance = null; + return false; } } public async Task<bool> AddPluginAsync(string internalName, string? thirdPartyRepoUrl, IReadOnlyList<string>? aliases = null) { - int num = -158450101; - MethodInfo methodInfo = default(MethodInfo); - object pluginManager = default(object); - Type type2 = default(Type); - Assembly assembly = default(Assembly); - object obj2 = default(object); - ParameterInfo[] array2 = default(ParameterInfo[]); - object[] array = default(object[]); - int num6 = default(int); - ConfiguredTaskAwaitable.ConfiguredTaskAwaiter configuredTaskAwaiter = default(ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); - ConfiguredTaskAwaitable.ConfiguredTaskAwaiter configuredTaskAwaiter2 = default(ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); - Task installTask = default(Task); - MethodInfo reloadMethod = default(MethodInfo); - object obj = default(object); - Type type = default(Type); - object obj5 = default(object); - object obj4 = default(object); - bool loaded = default(bool); - int num5; - while (true) + object pluginManager = GetPluginManager(); + Assembly assembly = _pluginInterface.GetType().Assembly; + if (IsVariantLoaded(pluginManager, internalName, thirdPartyRepoUrl, aliases)) { - int num2 = num; - int num3 = -158450089; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 8: - methodInfo = _003CAddPluginAsync_003Ed__9._206B_206D_206A_200F_202E_206C_202A_206C_206E_206A_200B_206B_202C_202D_206D_206C_202B_202D_200E_200C_200F_202C_206C_200C_202B_200E_200C_200B_206F_202D_202E_202C_202E_200B_206B_200B_206A_206E_200E_200F_202E(_003CAddPluginAsync_003Ed__9._200D_206A_206A_202B_200C_206E_206C_200B_202D_202A_202D_206D_206D_200C_206F_202A_206C_202C_200B_206A_200B_200D_202D_200F_206C_206C_202C_206A_206F_202A_202B_202E_200F_200F_200F_206E_206C_206A_200D_206A_202E(pluginManager), global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1435604918), BindingFlags.Instance | BindingFlags.Public) ?? throw _003CAddPluginAsync_003Ed__9._206C_206F_206C_200D_200D_206D_202A_206E_206B_206F_202A_206E_206E_202D_200C_202B_200B_206B_206F_202D_202B_200C_202A_202B_202D_202B_202C_206C_202E_202E_200E_200B_206E_200B_206C_200E_200C_206D_206E_206D_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1358635013)); - type2 = _003CAddPluginAsync_003Ed__9._200F_206E_206B_200C_200D_206A_200E_200B_202A_206F_200D_202D_202C_202B_202C_206D_206F_206C_202E_202E_202D_202A_206F_202C_202A_206B_206C_200D_200F_202A_206E_202E_202E_202B_206A_206C_206D_200C_202D_200F_202E(assembly, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1964451499)) ?? throw _003CAddPluginAsync_003Ed__9._206C_206F_206C_200D_200D_206D_202A_206E_206B_206F_202A_206E_206E_202D_200C_202B_200B_206B_206F_202D_202B_200C_202A_202B_202D_202B_202C_206C_202E_202E_200E_200B_206E_200B_206C_200E_200C_206D_206E_206D_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1640054167)); - obj2 = _003CAddPluginAsync_003Ed__9._200D_200E_200E_200D_202D_200B_202A_206F_202D_202A_206B_206E_200C_202C_202A_206C_206F_206B_200E_206B_200D_200D_200F_200B_206B_200F_202E_206A_200B_200C_206C_206B_202B_200C_200E_200D_202E_202D_206E_200E_202E(type2, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1257923011)); - array2 = _003CAddPluginAsync_003Ed__9._200F_202A_202D_202D_206E_202B_202D_206B_200D_200E_200E_202E_206A_206E_202A_200B_200E_202E_200E_202B_200C_200C_202B_200E_202A_206B_206D_206A_206C_200D_206A_202C_202D_202C_200C_202B_206B_202C_202B_206E_202E((MethodBase)methodInfo); - array = new object[array2.Length]; - num6 = 0; - num = -158450057; - continue; - case 2: - configuredTaskAwaiter = configuredTaskAwaiter2; - configuredTaskAwaiter2 = default(ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); - num = -158450083; - continue; - case 28: - pluginManager = GetPluginManager(); - assembly = _003CAddPluginAsync_003Ed__9._200B_202A_202B_202D_202B_206F_202B_200D_202C_202E_206F_206A_202A_206B_206F_206B_200B_202D_206E_202A_206A_200E_206E_202C_200E_206B_202A_200D_206A_202B_200B_200D_200B_206A_206F_200D_206D_202A_200E_200F_202E(_003CAddPluginAsync_003Ed__9._200D_206A_206A_202B_200C_206E_206C_200B_202D_202A_202D_206D_206D_200C_206F_202A_206C_202C_200B_206A_200B_200D_202D_200F_206C_206C_202C_206A_206F_202A_202B_202E_200F_200F_200F_206E_206C_206A_200D_206A_202E((object)_pluginInterface)); - num = ((!IsVariantLoaded(pluginManager, internalName, thirdPartyRepoUrl, aliases)) ? (-158450084) : (-158450109)); - continue; - case 31: - configuredTaskAwaiter = _003CAddPluginAsync_003Ed__9._200B_206F_206B_202B_206D_202A_200D_202D_206C_206C_202B_202A_206D_206A_200D_206B_200B_202D_206C_206C_206D_206A_206F_200E_206C_202B_202D_200B_202C_202D_202B_202B_206E_206E_200B_202B_200B_200D_206B_202B_202E(installTask, false).GetAwaiter(); - num = (configuredTaskAwaiter.IsCompleted ? (-158450083) : (-158450110)); - continue; - case 0: - { - int num7 = num6; - num3 = 1; - num4 = num7; - num6 = (num4 | num3) + (num4 & num3); - num = -158450057; - continue; - } - case 30: - throw _003CAddPluginAsync_003Ed__9._206C_206F_206C_200D_200D_206D_202A_206E_206B_206F_202A_206E_206E_202D_200C_202B_200B_206B_206F_202D_202B_200C_202A_202B_202D_202B_202C_206C_202E_202E_200E_200B_206E_200B_206C_200E_200C_206D_206E_206D_202E(_003CAddPluginAsync_003Ed__9._202E_206D_206D_202C_206A_206F_202A_200B_200F_206B_206F_202D_206D_200F_202D_200B_206A_200F_200C_206F_206A_206F_200E_200B_206C_202D_206E_206C_200D_206E_200C_206A_206E_200B_202A_206E_202E_206F_200D_202C_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1931795628), internalName, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(2124475057))); - case 15: - array[num6] = obj2; - num = -158450089; - continue; - case 33: - AddOrEnableThirdPartyRepo(assembly, thirdPartyRepoUrl); - configuredTaskAwaiter = _003CAddPluginAsync_003Ed__9._200B_206F_206B_202B_206D_202A_200D_202D_206C_206C_202B_202A_206D_206A_200D_206B_200B_202D_206C_206C_206D_206A_206F_200E_206C_202B_202D_200B_202C_202D_202B_202B_206E_206E_200B_202B_200B_200D_206B_202B_202E(InvokeReloadAsync(pluginManager, reloadMethod), false).GetAwaiter(); - num = (configuredTaskAwaiter.IsCompleted ? (-158450085) : (-158450092)); - continue; - case 13: - array[num6] = null; - num = -158450089; - continue; - case 24: - { - object obj3 = _003CAddPluginAsync_003Ed__9._200D_206A_202B_202A_206B_202B_206B_202D_206B_200F_202D_202E_202D_200B_202E_200C_206C_202C_202D_206D_206D_206A_202B_200E_206E_200B_200F_202C_206B_200C_202D_200B_202C_202E_206A_206A_206B_206A_202E((MethodBase)methodInfo, pluginManager, array) ?? throw _003CAddPluginAsync_003Ed__9._206C_206F_206C_200D_200D_206D_202A_206E_206B_206F_202A_206E_206E_202D_200C_202B_200B_206B_206F_202D_202B_200C_202A_202B_202D_202B_202C_206C_202E_202E_200E_200B_206E_200B_206C_200E_200C_206D_206E_206D_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(121476692)); - installTask = obj3 as Task; - num = ((installTask != null) ? (-158450104) : (-158450096)); - continue; - } - case 26: - configuredTaskAwaiter.GetResult(); - obj = FindAvailableManifest(pluginManager, internalName, thirdPartyRepoUrl, aliases); - num = ((obj != null) ? (-158450108) : (-158450111)); - continue; - case 20: - return true; - case 9: - type = _003CAddPluginAsync_003Ed__9._206C_202C_206E_200C_206F_200D_206F_206E_202C_202B_202E_206E_200F_206C_206C_200F_202C_206D_200E_202D_206F_200D_202E_202E_206D_206F_206C_200F_202C_202C_206E_200E_206D_206A_200C_206F_200C_202D_200B_206F_202E(array2[num6]); - num = ((!_003CAddPluginAsync_003Ed__9._202B_202C_202A_206C_200E_206E_202B_206B_202C_206C_206A_206C_200D_202E_206A_200D_200F_202A_200C_200E_206B_206E_202D_206D_206D_202E_202E_200C_200D_200B_202D_206D_206A_200D_202A_200F_202A_206C_206F_202D_202E(type, _003CAddPluginAsync_003Ed__9._200D_206A_206A_202B_200C_206E_206C_200B_202D_202A_202D_206D_206D_200C_206F_202A_206C_202C_200B_206A_200B_200D_202D_200F_206C_206C_202C_206A_206F_202A_202B_202E_200F_200F_200F_206E_206C_206A_200D_206A_202E(obj))) ? (-158450107) : (-158450098)); - continue; - case 32: - num = ((num6 < array2.Length) ? (-158450082) : (-158450097)); - continue; - case 23: - num = ((!_003CAddPluginAsync_003Ed__9._206F_206F_202A_200B_206D_200B_200E_200F_206D_202B_206D_206C_202A_206D_202A_206F_206A_200B_206D_202E_202E_202C_206B_200F_202D_202E_200F_202C_200D_200C_206B_206A_202E_202A_206C_202D_206C_202B_206B_206B_202E(type, type2)) ? (-158450086) : (-158450088)); - continue; - case 10: - configuredTaskAwaiter.GetResult(); - obj5 = _003CAddPluginAsync_003Ed__9._200D_202B_202D_206C_200E_206F_202C_200F_200F_200C_206E_206B_202E_200D_200D_206E_200E_202A_200D_202D_200C_206B_206C_202A_206F_202A_200E_206D_206D_202B_206A_202A_202D_206F_200D_206C_206F_206F_206A_202A_202E(_003CAddPluginAsync_003Ed__9._202A_200E_206F_206C_206E_200F_206B_202C_202A_206D_200B_200C_200B_206E_206C_202C_202C_200C_202A_200D_200D_202D_206B_200F_202C_200D_206A_206E_206F_200E_202A_206D_202E_200E_202E_200F_202B_200C_200E_206B_202E(_003CAddPluginAsync_003Ed__9._200D_206A_206A_202B_200C_206E_206C_200B_202D_202A_202D_206D_206D_200C_206F_202A_206C_202C_200B_206A_200B_200D_202D_200F_206C_206C_202C_206A_206F_202A_202B_202E_200F_200F_200F_206E_206C_206A_200D_206A_202E((object)installTask), global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1037220679)) ?? throw _003CAddPluginAsync_003Ed__9._206C_206F_206C_200D_200D_206D_202A_206E_206B_206F_202A_206E_206E_202D_200C_202B_200B_206B_206F_202D_202B_200C_202A_202B_202D_202B_202C_206C_202E_202E_200E_200B_206E_200B_206C_200E_200C_206D_206E_206D_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1256600865)), (object)installTask); - num = ((obj5 != null) ? (-158450090) : (-158450094)); - continue; - case 18: - num = ((!_003CAddPluginAsync_003Ed__9._206F_206F_202A_200B_206D_200B_200E_200F_206D_202B_206D_206C_202A_206D_202A_206F_206A_200B_206D_202E_202E_202C_206B_200F_202D_202E_200F_202C_200D_200C_206B_206A_202E_202A_206C_202D_206C_202B_206B_206B_202E(type, _003CAddPluginAsync_003Ed__9._206C_206A_206B_200D_206E_206A_206F_200D_202A_206D_200E_206C_200B_202D_202A_202C_200E_206E_206E_200C_200D_206B_200B_206A_200C_206D_206D_206F_206D_206C_206D_200D_202E_202E_206B_200C_200E_206E_206E_200D_202E(typeof(bool).TypeHandle))) ? (-158450112) : (-158450087)); - continue; - case 21: - await configuredTaskAwaiter; - goto case 2; - case 12: - configuredTaskAwaiter.GetResult(); - obj = FindAvailableManifest(pluginManager, internalName, thirdPartyRepoUrl, aliases); - num = -158450108; - continue; - case 11: - reloadMethod = _003CAddPluginAsync_003Ed__9._206B_206D_206A_200F_202E_206C_202A_206C_206E_206A_200B_206B_202C_202D_206D_206C_202B_202D_200E_200C_200F_202C_206C_200C_202B_200E_200C_200B_206F_202D_202E_202C_202E_200B_206B_200B_206A_206E_200E_200F_202E(_003CAddPluginAsync_003Ed__9._200D_206A_206A_202B_200C_206E_206C_200B_202D_202A_202D_206D_206D_200C_206F_202A_206C_202C_200B_206A_200B_200D_202D_200F_206C_206C_202C_206A_206F_202A_202B_202E_200F_200F_200F_206E_206C_206A_200D_206A_202E(pluginManager), global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1659108735), BindingFlags.Instance | BindingFlags.Public) ?? throw _003CAddPluginAsync_003Ed__9._206C_206F_206C_200D_200D_206D_202A_206E_206B_206F_202A_206E_206E_202D_200C_202B_200B_206B_206F_202D_202B_200C_202A_202B_202D_202B_202C_206C_202E_202E_200E_200B_206E_200B_206C_200E_200C_206D_206E_206D_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-54915131)); - configuredTaskAwaiter = _003CAddPluginAsync_003Ed__9._200B_206F_206B_202B_206D_202A_200D_202D_206C_206C_202B_202A_206D_206A_200D_206B_200B_202D_206C_206C_206D_206A_206F_200E_206C_202B_202D_200B_202C_202D_202B_202B_206E_206E_200B_202B_200B_200D_206B_202B_202E(InvokeReloadAsync(pluginManager, reloadMethod), false).GetAwaiter(); - num = (configuredTaskAwaiter.IsCompleted ? (-158450099) : (-158450093)); - continue; - case 16: - num = -158450101; - continue; - case 1: - obj4 = _003CAddPluginAsync_003Ed__9._200D_202B_202D_206C_200E_206F_202C_200F_200F_200C_206E_206B_202E_200D_200D_206E_200E_202A_200D_202D_200C_206B_206C_202A_206F_202A_200E_206D_206D_202B_206A_202A_202D_206F_200D_206C_206F_206F_206A_202A_202E(_003CAddPluginAsync_003Ed__9._202A_200E_206F_206C_206E_200F_206B_202C_202A_206D_200B_200C_200B_206E_206C_202C_202C_200C_202A_200D_200D_202D_206B_200F_202C_200D_206A_206E_206F_200E_202A_206D_202E_200E_202E_200F_202B_200C_200E_206B_202E(_003CAddPluginAsync_003Ed__9._200D_206A_206A_202B_200C_206E_206C_200B_202D_202A_202D_206D_206D_200C_206F_202A_206C_202C_200B_206A_200B_200D_202D_200F_206C_206C_202C_206A_206F_202A_202B_202E_200F_200F_200F_206E_206C_206A_200D_206A_202E(obj5), global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1946306806)) ?? throw _003CAddPluginAsync_003Ed__9._206C_206F_206C_200D_200D_206D_202A_206E_206B_206F_202A_206E_206E_202D_200C_202B_200B_206B_206F_202D_202B_200C_202A_202B_202D_202B_202C_206C_202E_202E_200E_200B_206E_200B_206C_200E_200C_206D_206E_206D_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(241214595)), obj5); - num = ((!(obj4 is bool)) ? (-158450100) : (-158450102)); - continue; - case 7: - throw _003CAddPluginAsync_003Ed__9._206C_206F_206C_200D_200D_206D_202A_206E_206B_206F_202A_206E_206E_202D_200C_202B_200B_206B_206F_202D_202B_200C_202A_202B_202D_202B_202C_206C_202E_202E_200E_200B_206E_200B_206C_200E_200C_206D_206E_206D_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-169019911)); - case 6: - configuredTaskAwaiter = configuredTaskAwaiter2; - configuredTaskAwaiter2 = default(ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); - num = -158450099; - continue; - case 17: - configuredTaskAwaiter = configuredTaskAwaiter2; - configuredTaskAwaiter2 = default(ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); - num = -158450085; - continue; - case 4: - await configuredTaskAwaiter; - goto case 6; - case 3: - await configuredTaskAwaiter; - goto case 17; - case 22: - num = ((thirdPartyRepoUrl == null) ? (-158450108) : (-158450058)); - continue; - case 5: - return false; - case 14: - array[num6] = false; - num = -158450089; - continue; - case 29: - loaded = (bool)obj4; - num5 = 1; - break; - case 19: - num = ((obj != null) ? (-158450081) : (-158450103)); - continue; - case 25: - array[num6] = obj; - num = -158450089; - continue; - case 27: - num5 = 0; - break; - } - break; + return true; } - return (byte)((uint)num5 & (loaded ? 1u : 0u)) != 0; + MethodInfo reloadMethod = pluginManager.GetType().GetMethod("SetPluginReposFromConfigAsync", BindingFlags.Instance | BindingFlags.Public) ?? throw new InvalidOperationException("Could not find PluginManager.SetPluginReposFromConfigAsync - Dalamud internals may have changed"); + await InvokeReloadAsync(pluginManager, reloadMethod).ConfigureAwait(continueOnCapturedContext: false); + object obj = FindAvailableManifest(pluginManager, internalName, thirdPartyRepoUrl, aliases); + if (obj == null && thirdPartyRepoUrl != null) + { + AddOrEnableThirdPartyRepo(assembly, thirdPartyRepoUrl); + await InvokeReloadAsync(pluginManager, reloadMethod).ConfigureAwait(continueOnCapturedContext: false); + obj = FindAvailableManifest(pluginManager, internalName, thirdPartyRepoUrl, aliases); + } + if (obj == null) + { + throw new InvalidOperationException("Plugin '" + internalName + "' not found in available repositories"); + } + MethodInfo methodInfo = pluginManager.GetType().GetMethod("InstallPluginAsync", BindingFlags.Instance | BindingFlags.Public) ?? throw new InvalidOperationException("Could not find PluginManager.InstallPluginAsync - Dalamud internals may have changed"); + Type type = assembly.GetType("Dalamud.Plugin.PluginLoadReason") ?? throw new InvalidOperationException("Could not find Dalamud.Plugin.PluginLoadReason - Dalamud internals may have changed"); + object obj2 = Enum.Parse(type, "Installer"); + ParameterInfo[] parameters = methodInfo.GetParameters(); + object[] array = new object[parameters.Length]; + for (int i = 0; i < parameters.Length; i++) + { + Type parameterType = parameters[i].ParameterType; + if (parameterType.IsAssignableFrom(obj.GetType())) + { + array[i] = obj; + } + else if (parameterType == typeof(bool)) + { + array[i] = false; + } + else if (parameterType == type) + { + array[i] = obj2; + } + else + { + array[i] = null; + } + } + object obj3 = methodInfo.Invoke(pluginManager, array) ?? throw new InvalidOperationException("PluginManager.InstallPluginAsync returned null - Dalamud internals may have changed"); + if (!(obj3 is Task installTask)) + { + throw new InvalidOperationException("PluginManager.InstallPluginAsync did not return a Task - Dalamud internals may have changed"); + } + await installTask.ConfigureAwait(continueOnCapturedContext: false); + object value = (installTask.GetType().GetProperty("Result") ?? throw new InvalidOperationException("Install task has no Result property - Dalamud internals may have changed")).GetValue(installTask); + if (value == null) + { + return false; + } + object value2 = (value.GetType().GetProperty("IsLoaded") ?? throw new InvalidOperationException("LocalPlugin has no IsLoaded property - Dalamud internals may have changed")).GetValue(value); + bool loaded = default(bool); + int num; + if (value2 is bool) + { + loaded = (bool)value2; + num = 1; + } + else + { + num = 0; + } + return (byte)((uint)num & (loaded ? 1u : 0u)) != 0; } public async Task<bool> EnablePluginAsync(string internalName, string? thirdPartyRepoUrl, IReadOnlyList<string>? aliases = null) { - ConfiguredTaskAwaitable.ConfiguredTaskAwaiter configuredTaskAwaiter = default(ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); - ConfiguredTaskAwaitable.ConfiguredTaskAwaiter configuredTaskAwaiter2 = default(ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); - Assembly assembly = default(Assembly); - object localPlugin = default(object); - object obj2 = default(object); - int num5 = default(int); - PropertyInfo propertyInfo = default(PropertyInfo); - object obj3 = default(object); - string text = default(string); - IDisposable disposable = default(IDisposable); - string text3 = default(string); - object[] array3 = default(object[]); - int num17 = default(int); - object obj5 = default(object); - PropertyInfo isLoadedProperty = default(PropertyInfo); - Type localPluginType = default(Type); - object obj4 = default(object); - Type type = default(Type); - ParameterInfo[] array2 = default(ParameterInfo[]); - Type type2 = default(Type); - int num16 = default(int); - string[] array = default(string[]); - Guid guid = default(Guid); - MethodInfo methodInfo = default(MethodInfo); - bool flag = default(bool); - bool loadedAfter = default(bool); - while (true) + object pluginManager = GetPluginManager(); + Assembly assembly = _pluginInterface.GetType().Assembly; + IEnumerable obj = ((pluginManager.GetType().GetProperty("InstalledPlugins") ?? throw new InvalidOperationException("Could not find PluginManager.InstalledPlugins - Dalamud internals may have changed")).GetValue(pluginManager) as IEnumerable) ?? throw new InvalidOperationException("PluginManager.InstalledPlugins was not enumerable - Dalamud internals may have changed"); + object localPlugin = null; + object obj2 = null; + int num = 0; + foreach (object item in obj) { - int num = -517751488; - while (true) + if (item == null) { - int num2 = num; - int num3 = -517751487; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 0: - num = -517751488; - continue; - case 1: - { - int num11; - if (num11 != 1) - { - num = -517751485; - continue; - } - configuredTaskAwaiter = configuredTaskAwaiter2; - configuredTaskAwaiter2 = default(ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); - num = -219266637; - break; - } - case 2: - { - object pluginManager = GetPluginManager(); - assembly = _003CEnablePluginAsync_003Ed__10._202B_202C_206B_206B_206C_206D_206D_206B_206F_202A_202B_200B_206A_202A_206D_200D_202C_206B_202D_202D_202B_206B_206F_200C_202D_206D_206B_206B_202D_206D_202C_200C_206C_202A_202E_206D_200E_200F_206E_200D_202E(_003CEnablePluginAsync_003Ed__10._202B_206E_206C_206A_202A_202C_202E_206C_206B_206B_200F_200D_202B_202A_200E_200C_206F_206E_202E_200D_206E_206D_202B_202D_206A_202D_200E_200F_200E_206B_206B_200E_206C_206E_200B_206E_206E_206B_206A_202D_202E((object)_pluginInterface)); - IEnumerable obj = (_003CEnablePluginAsync_003Ed__10._202E_202B_202A_206A_206A_200C_200C_206E_202E_202B_200D_206E_200B_202C_202C_200C_202B_200B_206E_200E_206D_200B_200D_200D_206D_206F_202B_206D_202B_206F_206A_202C_200D_202C_202A_202D_206F_206C_202C_202E(_003CEnablePluginAsync_003Ed__10._202C_206D_202A_200D_200B_200E_202C_206B_206E_200D_206F_200C_202A_206E_206D_200D_206D_206A_200D_202E_202C_206A_206A_206C_206D_206A_200D_200B_206D_200D_200F_202B_202B_200F_202A_206C_202E_202D_206D_206B_202E(_003CEnablePluginAsync_003Ed__10._202B_206E_206C_206A_202A_202C_202E_206C_206B_206B_200F_200D_202B_202A_200E_200C_206F_206E_202E_200D_206E_206D_202B_202D_206A_202D_200E_200F_200E_206B_206B_200E_206C_206E_200B_206E_206E_206B_206A_202D_202E(pluginManager), global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-797332337)) ?? throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1353226340)), pluginManager) as IEnumerable) ?? throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1803355673)); - localPlugin = null; - obj2 = null; - num5 = 0; - IEnumerator enumerator = _003CEnablePluginAsync_003Ed__10._206B_206D_202C_206B_200B_206F_202A_206B_202A_206D_200F_202B_200D_206A_200B_200D_202D_202B_200F_206C_206C_206D_202C_200F_202E_200F_202B_200D_206B_200B_202E_206E_206A_206B_202E_202E_206F_200C_200B_206B_202E(obj); - try - { - num = 1208540772; - while (true) - { - int num6 = num; - num3 = 1208540771; - num4 = num6; - int num7 = num4 + num3; - int num8 = num4 & num3; - switch (num7 - (num8 + num8)) - { - case 5: - propertyInfo = _003CEnablePluginAsync_003Ed__10._206D_202A_202B_200C_206D_202D_202A_202E_206E_202A_202C_200F_202B_206C_206E_202E_206D_202A_206F_206F_200E_206A_206F_206C_200E_206F_200F_206B_206C_206E_206A_206E_206E_206F_200C_200E_200F_206B_202A_202D_202E(_003CEnablePluginAsync_003Ed__10._202B_206E_206C_206A_202A_202C_202E_206C_206B_206B_200F_200D_202B_202A_200E_200C_206F_206E_202E_200D_206E_206D_202B_202D_206A_202D_200E_200F_200E_206B_206B_200E_206C_206E_200B_206E_206E_206B_206A_202D_202E(obj3), global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1994460583), BindingFlags.Instance | BindingFlags.Public); - num = (_003CEnablePluginAsync_003Ed__10._206B_206B_202C_206D_202D_200E_202B_202B_200C_200D_200F_206A_202C_206C_202B_206B_206D_202B_206C_200F_202B_202C_206E_200E_200F_200F_202D_200E_206D_200C_202D_206B_206A_206F_206A_200D_206B_200C_206D_206C_202E(propertyInfo, (PropertyInfo)null) ? 1208540772 : 1208540769); - break; - case 4: - num = (_003CEnablePluginAsync_003Ed__10._206B_206C_200D_202B_202D_202B_200D_200D_200E_206D_200B_206A_206B_202A_206E_202C_206A_202E_202D_202D_202B_206B_206A_202C_206F_202A_200C_200D_202C_200B_200D_202B_200B_202D_206B_200D_200C_200F_202E_206C_202E(text, internalName) ? 1208540772 : 1208540773); - break; - case 2: - text = _003CEnablePluginAsync_003Ed__10._202E_202B_202A_206A_206A_200C_200C_206E_202E_202B_200D_206E_200B_202C_202C_200C_202B_200B_206E_200E_206D_200B_200D_200D_206D_206F_202B_206D_202B_206F_206A_202C_200D_202C_202A_202D_206F_206C_202C_202E(propertyInfo, obj3) as string; - num = ((text == null) ? 1208540772 : 1208540775); - break; - case 6: - { - int num9 = num5; - num3 = 1; - num4 = num9; - num5 = (num4 | num3) + (num4 & num3); - num = ((obj2 != null) ? 1208540779 : 1208540778); - break; - } - case 9: - obj2 = obj3; - num = 1208540779; - break; - case 0: - localPlugin = obj3; - num = 1208540770; - break; - case 10: - obj3 = _003CEnablePluginAsync_003Ed__10._206C_202A_206F_202B_200B_206F_206D_202D_200D_200B_200F_206E_200C_202E_202A_200C_200F_202C_206D_202B_206E_206F_200D_206B_200E_206A_206E_202A_200F_200B_202A_206C_202C_202E_206E_206D_200B_202A_206B_200E_202E(enumerator); - num = ((obj3 == null) ? 1208540772 : 1208540774); - break; - case 8: - num = ((!LocalPluginMatchesRepo(obj3, thirdPartyRepoUrl, aliases)) ? 1208540772 : 1208540771); - break; - case 3: - num = 1208540772; - break; - case 7: - num = (_003CEnablePluginAsync_003Ed__10._202A_206F_206C_202A_200F_202C_206A_200B_202A_206B_206A_202B_202E_202B_202C_206A_202E_202D_206F_202D_200E_206F_206A_206A_202B_206C_200D_200E_202E_202E_202A_206A_206B_206F_202E_200E_200D_206F_206B_200F_202E(enumerator) ? 1208540777 : 1208540770); - break; - case 1: - goto end_IL_00f5; - } - continue; - end_IL_00f5: - break; - } - } - finally - { - num = 1809875925; - while (true) - { - int num10 = num; - num3 = 1809875926; - num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - _003CEnablePluginAsync_003Ed__10._200E_200E_202C_202B_200B_200D_202B_202E_206F_200F_202E_200C_206A_202D_206E_202E_202D_200C_202B_202D_206A_202E_200D_200B_200F_202B_200B_202D_200D_202C_206D_206C_202C_202B_202C_206A_200B_202B_206F_206A_202E(disposable); - num = 1809875927; - break; - case 1: - goto end_IL_02de; - case 2: - num = 1809875925; - break; - case 3: - disposable = enumerator as IDisposable; - num = ((disposable == null) ? 1809875927 : 1809875926); - break; - } - continue; - end_IL_02de: - break; - } - } - num = ((localPlugin != null) ? (-219266648) : (-219266644)); - break; - } - } - break; + continue; } - while (true) + PropertyInfo property = item.GetType().GetProperty("InternalName", BindingFlags.Instance | BindingFlags.Public); + if (!(property == null) && property.GetValue(item) is string text && !(text != internalName)) { - int num12 = num; - int num3 = -219266628; - int num4 = num12; - int num14; - string text2; - int num13; - switch ((num4 | num3) - (num4 & num3)) + num++; + if (obj2 == null) { - default: - continue; - case 21: + obj2 = item; + } + if (LocalPluginMatchesRepo(item, thirdPartyRepoUrl, aliases)) + { + localPlugin = item; break; - case 7: - throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(930706806)); - case 35: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(37, 2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-704778144)); - defaultInterpolatedStringHandler2.AppendFormatted(internalName); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1141968393)); - defaultInterpolatedStringHandler2.AppendFormatted(text3); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-831521228)); - throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(defaultInterpolatedStringHandler2.ToStringAndClear()); } - case 14: - array3[num17] = obj5; - num = -219266659; - continue; - case 0: - num14 = 0; - goto IL_04fe; - case 18: - throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(_003CEnablePluginAsync_003Ed__10._200F_200F_202C_200E_202B_200D_206B_200C_206F_206F_206F_200E_200F_200D_206C_206A_202C_202C_200E_206A_206A_202D_200B_200B_202A_202A_200B_206D_200C_202C_200D_200F_202B_206B_202E_202B_200C_200B_202B_200F_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-704778144), internalName, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1737777117))); - case 3: - text2 = _003CEnablePluginAsync_003Ed__10._200F_200F_202C_200E_202B_200D_206B_200C_206F_206F_206F_200E_200F_200D_206C_206A_202C_202C_200E_206A_206A_202D_200B_200B_202A_202A_200B_206D_200C_202C_200D_200F_202B_206B_202E_202B_200C_200B_202B_200F_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1931795628), internalName, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1283726812)); - goto IL_0562; - case 9: - isLoadedProperty = _003CEnablePluginAsync_003Ed__10._202C_206D_202A_200D_200B_200E_202C_206B_206E_200D_206F_200C_202A_206E_206D_200D_206D_206A_200D_202E_202C_206A_206A_206C_206D_206A_200D_200B_206D_200D_200F_202B_202B_200F_202A_206C_202E_202D_206D_206B_202E(localPluginType, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-904839146)) ?? throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-952438240)); - obj4 = _003CEnablePluginAsync_003Ed__10._202E_202B_202A_206A_206A_200C_200C_206E_202E_202B_200D_206E_200B_202C_202C_200C_202B_200B_206E_200E_206D_200B_200D_200D_206D_206F_202B_206D_202B_206F_206A_202C_200D_202C_202A_202D_206F_206C_202C_202E(isLoadedProperty, localPlugin); - num = ((!(obj4 is bool)) ? (-219266628) : (-219266655)); - continue; - case 20: - num = ((localPlugin != null) ? (-219266636) : (-219266652)); - continue; - case 27: - array3[num17] = false; - num = -219266659; - continue; - case 34: - type = _003CEnablePluginAsync_003Ed__10._200F_206B_200D_206F_206A_202A_202B_202C_206D_200E_206B_206B_206E_206E_200D_206C_200B_206B_206E_206B_200D_200E_202B_202B_200E_200F_200B_206E_206F_202D_202C_202C_202C_206F_202A_206F_200D_206B_206F_200C_202E(array2[num17]); - num = ((!_003CEnablePluginAsync_003Ed__10._206B_206A_206C_200C_202D_200E_206E_202B_206A_202A_206E_206F_200C_200E_206E_202E_200E_206E_200B_206E_202A_206E_202E_206F_202C_200C_206E_200E_206A_206F_202B_206A_202B_200B_206A_202E_206B_200B_200E_206E_202E(type, type2)) ? (-219266639) : (-219266638)); - continue; - case 10: - return true; - case 30: - num13 = 0; - goto IL_0651; - case 5: - obj4 = _003CEnablePluginAsync_003Ed__10._202E_202B_202A_206A_206A_200C_200C_206E_202E_202B_200D_206E_200B_202C_202C_200C_202B_200B_206E_200E_206D_200B_200D_200D_206D_206F_202B_206D_202B_206F_206A_202C_200D_202C_202A_202D_206F_206C_202C_202E(_003CEnablePluginAsync_003Ed__10._206D_202A_202B_200C_206D_202D_202A_202E_206E_202A_202C_200F_202B_206C_206E_202E_206D_202A_206F_206F_200E_206A_206F_206C_200E_206F_200F_206B_206C_206E_206A_206E_206E_206F_200C_200E_200F_206B_202A_202D_202E(localPluginType, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-592843582), BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) ?? throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(2067190462)), localPlugin); - num = ((!(obj4 is Guid)) ? (-219266629) : (-219266632)); - continue; - case 16: - num = ((num5 != 1) ? (-219266648) : (-219266641)); - continue; - case 33: - { - int num18 = num17; - num3 = 1; - num4 = num18; - num17 = (num4 | num3) + (num4 & num3); - num = -219266660; - continue; - } - case 11: - num = ((num16 < array.Length) ? (-219266626) : (-219266635)); - continue; - case 12: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(70, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(709905315)); - defaultInterpolatedStringHandler.AppendFormatted(internalName); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-2030116922)); - defaultInterpolatedStringHandler.AppendFormatted(thirdPartyRepoUrl ?? global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-889155816)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1771580269)); - text2 = defaultInterpolatedStringHandler.ToStringAndClear(); - goto IL_0562; - } - case 24: - num = ((num5 == 0) ? (-219266625) : (-219266640)); - continue; - case 6: - array3[num17] = (_003CEnablePluginAsync_003Ed__10._200C_200D_202E_202E_200E_200C_206A_206D_206C_206E_200E_200C_206D_206B_200B_202D_200D_206E_200B_206D_200D_200B_200D_200D_206D_200D_202D_206B_206C_202C_206E_200D_200D_200B_206E_202B_202B_202D_206F_206F_202E(array2[num17]) ? _003CEnablePluginAsync_003Ed__10._200E_202B_206F_200C_200C_200C_202D_206B_200C_200B_202C_200F_206F_200C_200B_200C_202A_206C_206D_206A_200E_200E_200F_206C_200F_202A_200C_200C_202B_206A_202D_202B_206D_206D_200C_206E_206B_202B_200F_206A_202E(array2[num17]) : null); - num = -219266659; - continue; - case 1: - return true; - case 4: - guid = (Guid)obj4; - num = -219266650; - continue; - case 32: - num = ((num17 < array2.Length) ? (-219266658) : (-219266643)); - continue; - case 17: - configuredTaskAwaiter = _003CEnablePluginAsync_003Ed__10._202E_206A_200F_200F_200D_206E_200D_200D_200F_200E_200B_206A_202D_200B_206C_200F_206D_200D_202E_206E_206A_202B_206D_200F_206F_202C_200E_206A_200D_202C_202B_206A_206B_206E_206D_200E_202C_202C_202E_206B_202E(((_003CEnablePluginAsync_003Ed__10._206E_206E_200F_202A_206A_200C_206E_200F_200F_200E_200D_206B_206E_206D_206E_202C_200F_202C_202A_200D_202D_206B_200C_202B_202E_200E_200E_200C_202A_206F_202E_206A_206A_206C_200E_206B_202A_202C_200B_200E_202E((MethodBase)methodInfo, localPlugin, array3) ?? throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1001583693))) as Task) ?? throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(796993768)), false).GetAwaiter(); - num = (configuredTaskAwaiter.IsCompleted ? (-219266637) : (-219266647)); - continue; - case 2: - { - text3 = array[num16]; - PropertyInfo propertyInfo2 = _003CEnablePluginAsync_003Ed__10._206D_202A_202B_200C_206D_202D_202A_202E_206E_202A_202C_200F_202B_206C_206E_202E_206D_202A_206F_206F_200E_206A_206F_206C_200E_206F_200F_206B_206C_206E_206A_206E_206E_206F_200C_200E_200F_206B_202A_202D_202E(localPluginType, text3, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); - obj4 = (((object)propertyInfo2 != null) ? _003CEnablePluginAsync_003Ed__10._206B_202A_200C_206C_200C_202D_200D_202D_206E_206B_202E_206B_200C_200D_200D_206D_206D_202B_202C_200F_206A_200D_206E_206E_206C_202E_206F_200D_206F_200D_206A_202D_202A_202C_206C_202B_200F_200B_206D_202B_202E(propertyInfo2, localPlugin) : null); - num = ((!(obj4 is bool)) ? (-219266664) : (-219266645)); - continue; - } - case 22: - num = -219266644; - continue; - case 26: - { - Type type3 = _003CEnablePluginAsync_003Ed__10._202E_200B_202B_202E_202A_202B_202A_202E_202E_202D_200B_200D_202C_202B_206F_202C_202A_202C_202E_202E_202C_206C_200C_202B_202D_206B_202B_200C_200D_200E_200B_206D_200B_206F_206E_200D_206B_200B_200F_202E(assembly, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(1664398343)) ?? throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-933355142)); - object obj6 = _003CEnablePluginAsync_003Ed__10._202A_206C_206E_206A_206D_206A_206C_206C_206F_200E_202D_202D_206C_202C_202C_200D_202B_200C_206E_200D_202A_202E_202A_200B_202D_202D_206C_200F_200D_200D_206F_206B_200C_202A_202D_206C_202D_200B_202D_202E_202E((MethodBase)(_003CEnablePluginAsync_003Ed__10._200B_200B_200D_200C_200E_202A_200D_206E_202A_202C_206D_206F_202C_206E_206F_202B_200D_206D_206E_200D_206F_202D_206E_206B_200E_202A_200F_200B_200C_202C_206C_200D_202E_206D_206B_202B_200B_206F_202E(_003CEnablePluginAsync_003Ed__10._206F_200F_206F_206A_202A_202C_200E_206E_202E_202B_200C_206B_200E_200E_206F_202E_206D_206B_202E_202C_200C_206A_202C_200B_202E_202D_202B_200F_202A_206F_200F_202B_206E_206F_202D_206E_206B_202D_200C_206E_202E(_003CEnablePluginAsync_003Ed__10._202E_200B_202B_202E_202A_202B_202A_202E_202E_202D_200B_200D_202C_202B_206F_202C_202A_202C_202E_202E_202C_206C_200C_202B_202D_206B_202B_200C_200D_200E_200B_206D_200B_206F_206E_200D_206B_200B_200F_202E(assembly, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1909913745)) ?? throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(2073227713)), new Type[1] { type3 }), global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(619471143)) ?? throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-2972004))), (object)null, BindingFlags.Default, (Binder)null, Array.Empty<object>(), (CultureInfo)null) ?? throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-555459542)); - object obj7 = _003CEnablePluginAsync_003Ed__10._202E_202B_202A_206A_206A_200C_200C_206E_202E_202B_200D_206E_200B_202C_202C_200C_202B_200B_206E_200E_206D_200B_200D_200D_206D_206F_202B_206D_202B_206F_206A_202C_200D_202C_202A_202D_206F_206C_202C_202E(_003CEnablePluginAsync_003Ed__10._206D_202A_202B_200C_206D_202D_202A_202E_206E_202A_202C_200F_202B_206C_206E_202E_206D_202A_206F_206F_200E_206A_206F_206C_200E_206F_200F_206B_206C_206E_206A_206E_206E_206F_200C_200E_200F_206B_202A_202D_202E(type3, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-420103450), BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) ?? throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1512306431)), obj6) ?? throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1036682349)); - configuredTaskAwaiter = _003CEnablePluginAsync_003Ed__10._202E_206A_200F_200F_200D_206E_200D_200D_200F_200E_200B_206A_202D_200B_206C_200F_206D_200D_202E_206E_206A_202B_206D_200F_206F_202C_200E_206A_200D_202C_202B_206A_206B_206E_206D_200E_202C_202C_202E_206B_202E(((_003CEnablePluginAsync_003Ed__10._206E_206E_200F_202A_206A_200C_206E_200F_200F_200E_200D_206B_206E_206D_206E_202C_200F_202C_202A_200D_202D_206B_200C_202B_202E_200E_200E_200C_202A_206F_202E_206A_206A_206C_200E_206B_202A_202C_200B_200E_202E((MethodBase)(_003CEnablePluginAsync_003Ed__10._206D_206C_206F_202A_202B_206E_200B_206B_200C_206E_200F_202E_202A_202C_206F_202A_202D_206A_200D_200F_200E_206F_202D_206D_202A_206D_206F_206F_206E_206C_206D_206B_206D_206E_202B_200D_202A_202E_202D_206D_202E(_003CEnablePluginAsync_003Ed__10._202B_206E_206C_206A_202A_202C_202E_206C_206B_206B_200F_200D_202B_202A_200E_200C_206F_206E_202E_200D_206E_206D_202B_202D_206A_202D_200E_200F_200E_206B_206B_200E_206C_206E_200B_206E_206E_206B_206A_202D_202E(obj7), global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(2080206550), BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) ?? throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(793866729))), obj7, new object[4] { guid, internalName, true, false }) ?? throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-86444387))) as Task) ?? throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(480378918)), false).GetAwaiter(); - num = (configuredTaskAwaiter.IsCompleted ? (-219266653) : (-219266656)); - continue; - } - case 31: - configuredTaskAwaiter.GetResult(); - type2 = _003CEnablePluginAsync_003Ed__10._202E_200B_202B_202E_202A_202B_202A_202E_202E_202D_200B_200D_202C_202B_206F_202C_202A_202C_202E_202E_202C_206C_200C_202B_202D_206B_202B_200C_200D_200E_200B_206D_200B_206F_206E_200D_206B_200B_200F_202E(assembly, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(185084398)) ?? throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(303708542)); - obj5 = _003CEnablePluginAsync_003Ed__10._200B_206E_200C_202B_200F_206A_202E_200E_200E_202C_202E_202C_200F_202B_200E_206A_202B_200B_202E_206F_206F_200E_206D_206B_200B_206D_206C_200C_202B_206C_200E_202A_202A_202B_206D_206C_202E_206C_206C_202D_202E(type2, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-302107944)); - methodInfo = _003CEnablePluginAsync_003Ed__10._206D_206C_206F_202A_202B_206E_200B_206B_200C_206E_200F_202E_202A_202C_206F_202A_202D_206A_200D_200F_200E_206F_202D_206D_202A_206D_206F_206F_206E_206C_206D_206B_206D_206E_202B_200D_202A_202E_202D_206D_202E(localPluginType, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-226194717), BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) ?? throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(67221465)); - array2 = _003CEnablePluginAsync_003Ed__10._200C_202C_200E_206B_200B_206A_200E_206B_202E_202D_202C_202B_206A_206A_202C_206F_202E_200B_206F_202D_206C_200D_206B_206F_202B_206E_206E_206F_202D_206E_200D_206D_206E_206E_202D_200D_206B_202D_202C_200D_202E((MethodBase)methodInfo); - array3 = new object[array2.Length]; - num17 = 0; - num = -219266660; - continue; - case 28: - await configuredTaskAwaiter; - configuredTaskAwaiter = configuredTaskAwaiter2; - configuredTaskAwaiter2 = default(ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); - num = -219266653; - continue; - case 8: - localPluginType = _003CEnablePluginAsync_003Ed__10._202B_206E_206C_206A_202A_202C_202E_206C_206B_206B_200F_200D_202B_202A_200E_200C_206F_206E_202E_200D_206E_206D_202B_202D_206A_202D_200E_200F_200E_206B_206B_200E_206C_206E_200B_206E_206E_206B_206A_202D_202E(localPlugin); - array = new string[4] - { - global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(510149799), - global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1905938056), - global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-315909297), - global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(840433285) - }; - num16 = 0; - num = -219266633; - continue; - case 19: - localPlugin = obj2; - num = -219266648; - continue; - case 23: - num = ((!(bool)obj4) ? (-219266664) : (-219266657)); - continue; - case 15: - configuredTaskAwaiter.GetResult(); - obj4 = _003CEnablePluginAsync_003Ed__10._202E_202B_202A_206A_206A_200C_200C_206E_202E_202B_200D_206E_200B_202C_202C_200C_202B_200B_206E_200E_206D_200B_200D_200D_206D_206F_202B_206D_202B_206F_206A_202C_200D_202C_202A_202D_206F_206C_202C_202E(isLoadedProperty, localPlugin); - num = ((!(obj4 is bool)) ? (-219266654) : (-219266651)); - continue; - case 36: - { - int num15 = num16; - num3 = 1; - num4 = num15; - num16 = (num4 | num3) + (num4 & num3); - num = -219266633; - continue; - } - case 29: - flag = (bool)obj4; - num14 = 1; - goto IL_04fe; - case 13: - num = ((!_003CEnablePluginAsync_003Ed__10._206B_206A_206C_200C_202D_200E_206E_202B_206A_202A_206E_206F_200C_200E_206E_202E_200E_206E_200B_206E_202A_206E_202E_206F_202C_200C_206E_200E_206A_206F_202B_206A_202B_200B_206A_202E_206B_200B_200E_206E_202E(type, _003CEnablePluginAsync_003Ed__10._202A_206E_206D_200E_202D_202B_206C_202B_200D_200D_200D_200B_202D_200F_206B_206F_200B_206E_202A_200C_200D_200F_206F_202E_200E_206E_202E_200D_206B_202C_200E_200B_206C_206F_206D_202B_200B_200B_206E_200D_202E(typeof(bool).TypeHandle))) ? (-219266630) : (-219266649)); - continue; - case 25: - { - loadedAfter = (bool)obj4; - num13 = 1; - goto IL_0651; - } - IL_0562: - throw _003CEnablePluginAsync_003Ed__10._202B_200B_200F_206E_202E_200D_206D_206B_202E_206E_206C_206F_202A_206A_200D_200D_200F_200E_206C_206D_206A_206B_202D_206B_206B_202D_206E_202A_206E_202D_206C_206D_200B_202A_200B_200B_200C_206E_206D_202C_202E(text2); - IL_04fe: - num = ((((uint)num14 & (flag ? 1u : 0u)) == 0) ? (-219266631) : (-219266634)); - continue; - IL_0651: - num = ((((uint)num13 & (loadedAfter ? 1u : 0u)) == 0) ? (-219266642) : (-219266627)); - continue; - } - break; } - await configuredTaskAwaiter; } + if (localPlugin == null && num == 1) + { + localPlugin = obj2; + } + if (localPlugin == null) + { + throw new InvalidOperationException((num == 0) ? ("Plugin '" + internalName + "' is not in PluginManager.InstalledPlugins - cannot enable") : $"Multiple copies of '{internalName}' installed and none match repo '{thirdPartyRepoUrl ?? "<main>"}' - cannot enable"); + } + Type localPluginType = localPlugin.GetType(); + string[] array = new string[4] { "IsBanned", "IsDecommissioned", "IsOrphaned", "IsOutdated" }; + object obj3; + foreach (string text2 in array) + { + obj3 = localPluginType.GetProperty(text2, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)?.GetValue(localPlugin); + if (obj3 is bool && (bool)obj3) + { + throw new InvalidOperationException($"Plugin '{internalName}' cannot be enabled - {text2} is set"); + } + } + PropertyInfo isLoadedProperty = localPluginType.GetProperty("IsLoaded") ?? throw new InvalidOperationException("LocalPlugin has no IsLoaded property - Dalamud internals may have changed"); + obj3 = isLoadedProperty.GetValue(localPlugin); + bool flag = default(bool); + int num2; + if (obj3 is bool) + { + flag = (bool)obj3; + num2 = 1; + } + else + { + num2 = 0; + } + if (((uint)num2 & (flag ? 1u : 0u)) != 0) + { + return true; + } + if (!((localPluginType.GetProperty("EffectiveWorkingPluginId", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) ?? throw new InvalidOperationException("LocalPlugin has no EffectiveWorkingPluginId property - Dalamud internals may have changed")).GetValue(localPlugin) is Guid guid)) + { + throw new InvalidOperationException("LocalPlugin.EffectiveWorkingPluginId was not a Guid - Dalamud internals may have changed"); + } + Type type = assembly.GetType("Dalamud.Plugin.Internal.Profiles.ProfileManager") ?? throw new InvalidOperationException("Could not find Dalamud.Plugin.Internal.Profiles.ProfileManager - Dalamud internals may have changed"); + object obj4 = ((assembly.GetType("Dalamud.Service`1") ?? throw new InvalidOperationException("Could not find Dalamud.Service`1 type - Dalamud internals may have changed")).MakeGenericType(type).GetMethod("Get") ?? throw new InvalidOperationException("Could not find Service<ProfileManager>.Get() - Dalamud internals may have changed")).Invoke(null, BindingFlags.Default, null, Array.Empty<object>(), null) ?? throw new InvalidOperationException("Service<ProfileManager>.Get() returned null"); + object obj5 = (type.GetProperty("DefaultProfile", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) ?? throw new InvalidOperationException("Could not find ProfileManager.DefaultProfile - Dalamud internals may have changed")).GetValue(obj4) ?? throw new InvalidOperationException("ProfileManager.DefaultProfile returned null - Dalamud internals may have changed"); + await ((((obj5.GetType().GetMethod("AddOrUpdateAsync", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) ?? throw new InvalidOperationException("Could not find Profile.AddOrUpdateAsync - Dalamud internals may have changed")).Invoke(obj5, new object[4] { guid, internalName, true, false }) ?? throw new InvalidOperationException("Profile.AddOrUpdateAsync returned null - Dalamud internals may have changed")) as Task) ?? throw new InvalidOperationException("Profile.AddOrUpdateAsync did not return a Task - Dalamud internals may have changed")).ConfigureAwait(continueOnCapturedContext: false); + Type type2 = assembly.GetType("Dalamud.Plugin.PluginLoadReason") ?? throw new InvalidOperationException("Could not find Dalamud.Plugin.PluginLoadReason - Dalamud internals may have changed"); + object obj6 = Enum.Parse(type2, "Installer"); + MethodInfo methodInfo = localPluginType.GetMethod("LoadAsync", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) ?? throw new InvalidOperationException("Could not find LocalPlugin.LoadAsync - Dalamud internals may have changed"); + ParameterInfo[] parameters = methodInfo.GetParameters(); + object[] array2 = new object[parameters.Length]; + for (int j = 0; j < parameters.Length; j++) + { + Type parameterType = parameters[j].ParameterType; + if (parameterType == type2) + { + array2[j] = obj6; + } + else if (parameterType == typeof(bool)) + { + array2[j] = false; + } + else + { + array2[j] = (parameters[j].HasDefaultValue ? parameters[j].DefaultValue : null); + } + } + await (((methodInfo.Invoke(localPlugin, array2) ?? throw new InvalidOperationException("LocalPlugin.LoadAsync returned null - Dalamud internals may have changed")) as Task) ?? throw new InvalidOperationException("LocalPlugin.LoadAsync did not return a Task - Dalamud internals may have changed")).ConfigureAwait(continueOnCapturedContext: false); + obj3 = isLoadedProperty.GetValue(localPlugin); + bool loadedAfter = default(bool); + int num3; + if (obj3 is bool) + { + loadedAfter = (bool)obj3; + num3 = 1; + } + else + { + num3 = 0; + } + if (((uint)num3 & (loadedAfter ? 1u : 0u)) != 0) + { + return true; + } + throw new InvalidOperationException("Plugin '" + internalName + "' did not transition to loaded after LoadAsync - see /xllog"); } - [MethodImpl(MethodImplOptions.NoInlining)] private static bool LocalPluginMatchesRepo(object localPlugin, string? expectedRepoUrl, IReadOnlyList<string>? aliases = null) { - PropertyInfo propertyInfo = _202E_200C_202C_206F_202E_200C_202A_202A_202B_202C_200D_202D_200C_206C_202C_202C_200F_206C_206A_202A_202E_206F_202B_206E_206A_202D_200B_202D_206C_206B_200F_206F_206A_206A_202A_200B_202C_200F_200E_202D_202E(_202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(localPlugin), global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1685908891), BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); - object obj = (((object)propertyInfo != null) ? _202A_202B_200E_200F_202D_206F_206B_200C_202B_202E_200E_200E_202B_206F_206A_206C_200F_200E_202E_200D_206E_206B_202C_200E_206B_206F_206E_206F_206C_202C_206C_200B_202A_202A_200D_202B_202B_206B_206E_206B_202E(propertyInfo, localPlugin) : null); - int num = ((obj != null) ? (-1744615779) : (-1744615788)); - string installedFrom = default(string); - while (true) + object obj = localPlugin.GetType().GetProperty("Manifest", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)?.GetValue(localPlugin); + if (obj == null) { - int num2 = num; - int num3 = -1744615787; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (string.IsNullOrEmpty(expectedRepoUrl)) { - default: - continue; - case 6: - return false; - case 8: - { - PropertyInfo propertyInfo2 = _202E_200C_202C_206F_202E_200C_202A_202A_202B_202C_200D_202D_200C_206C_202C_202C_200F_206C_206A_202A_202E_206F_202B_206E_206A_202D_200B_202D_206C_206B_200F_206F_206A_206A_202A_200B_202C_200F_200E_202D_202E(_202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(obj), global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(709710176), BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); - installedFrom = (((object)propertyInfo2 != null) ? _202A_202B_200E_200F_202D_206F_206B_200C_202B_202E_200E_200E_202B_206F_206A_206C_200F_200E_202E_200D_206E_206B_202C_200E_206B_206F_206E_206F_206C_202C_206C_200B_202A_202A_200D_202B_202B_206B_206E_206B_202E(propertyInfo2, obj) : null) as string; - num = ((!LocalPluginUrlMatches(installedFrom, expectedRepoUrl)) ? (-1744615791) : (-1744615792)); - continue; - } - case 7: - num = -1744615788; - continue; - case 3: - return aliases.Count == 0; - case 2: - num = ((aliases == null) ? (-1744615780) : (-1744615786)); - continue; - case 5: - return true; - case 1: - num = ((!_206D_202C_200B_202A_200E_202D_200D_206F_200C_206A_200E_202C_200B_200C_206B_200B_202B_206A_202A_206C_206E_206B_202D_206C_202D_202C_200F_206F_200C_202C_200E_202B_202E_206E_206A_206D_200E_202A_206D_206B_202E(expectedRepoUrl)) ? (-1744615789) : (-1744615785)); - continue; - case 9: - return true; - case 4: if (aliases != null) { - num = -1744615787; - continue; + return aliases.Count == 0; } - break; - case 0: + return true; + } + return false; + } + string installedFrom = obj.GetType().GetProperty("InstalledFromUrl", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)?.GetValue(obj) as string; + if (LocalPluginUrlMatches(installedFrom, expectedRepoUrl)) + { + return true; + } + if (aliases != null) + { + foreach (string alias in aliases) { - IEnumerator<string> enumerator = aliases.GetEnumerator(); - try + if (LocalPluginUrlMatches(installedFrom, alias)) { - num = 1901558294; - while (true) - { - int num5 = num; - num3 = 1901558294; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 2: - return true; - case 4: - { - string current = enumerator.Current; - num = ((!LocalPluginUrlMatches(installedFrom, current)) ? 1901558294 : 1901558292); - break; - } - case 3: - num = 1901558294; - break; - case 0: - num = (_206F_200C_200B_206E_202D_200C_200E_202E_200C_200F_206C_206E_200B_200C_202C_200D_200F_206C_206C_202B_202B_202B_206C_206B_200C_206A_200F_200C_202B_206F_202D_200C_206B_200D_206A_202B_200D_200F_206F_202C_202E((IEnumerator)enumerator) ? 1901558290 : 1901558295); - break; - case 1: - goto end_IL_0167; - } - continue; - end_IL_0167: - break; - } + return true; } - finally - { - num = ((enumerator == null) ? 1363377408 : 1363377411); - while (true) - { - int num8 = num; - num3 = 1363377410; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 0: - num = 1363377411; - break; - case 2: - goto end_IL_022e; - case 1: - _200F_206A_202B_200D_200B_206E_202D_200D_202A_200B_202D_206D_200B_206E_202E_206E_202A_200C_206A_200D_200F_206E_200F_202C_202E_200B_202A_200D_200D_200B_200E_200D_202D_206C_206E_200F_202C_202D_202D_202A_202E((IDisposable)enumerator); - num = 1363377408; - break; - } - continue; - end_IL_022e: - break; - } - } - break; } - } - break; } return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private static bool LocalPluginUrlMatches(string? installedFrom, string? expectedRepoUrl) { - bool flag = _206D_202C_200B_202A_200E_202D_200D_206F_200C_206A_200E_202C_200B_200C_206B_200B_202B_206A_202A_206C_206E_206B_202D_206C_202D_202C_200F_206F_200C_202C_200E_202B_202E_206E_206A_206D_200E_202A_206D_206B_202E(expectedRepoUrl); - int num = (_206D_202C_200B_202A_200E_202D_200D_206F_200C_206A_200E_202C_200B_200C_206B_200B_202B_206A_202A_206C_206E_206B_202D_206C_202D_202C_200F_206F_200C_202C_200E_202B_202E_206E_206A_206D_200E_202A_206D_206B_202E(installedFrom) ? 1968257030 : 1968257031); - bool flag2 = default(bool); - while (true) + bool flag = string.IsNullOrEmpty(expectedRepoUrl); + bool flag2 = string.IsNullOrEmpty(installedFrom) || string.Equals(installedFrom, "OFFICIAL", StringComparison.OrdinalIgnoreCase); + if (flag && flag2) { - int num2 = num; - int num3 = 1968257029; - int num4 = num2; - int num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return false; - case 2: - num5 = (_200E_200D_200F_206B_200E_200E_206E_200B_206E_206A_202C_206E_200F_206D_200F_206C_206F_202C_206B_202D_200F_200C_202D_202C_200D_202E_206D_202A_202A_206A_200B_206F_202C_206B_200E_202A_206D_206D_206E_202E_202E(installedFrom, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-435753891), StringComparison.OrdinalIgnoreCase) ? 1 : 0); - goto IL_008c; - case 4: - return RepoUrlEquals(installedFrom, expectedRepoUrl); - case 3: - num5 = 1; - goto IL_008c; - case 6: - num3 = (flag2 ? 1 : 0); - num4 = (flag ? 1 : 0); - num = (((num4 & num3) + (num4 ^ num3) == 0) ? 1968257025 : 1968257028); - break; - case 5: - return true; - case 0: - { - num = 1968257031; - break; - } - IL_008c: - flag2 = (byte)num5 != 0; - num3 = (flag2 ? 1 : 0); - num4 = (flag ? 1 : 0); - num = ((num4 + num3 - (num4 | num3) == 0) ? 1968257027 : 1968257024); - break; - } + return true; } + if (flag || flag2) + { + return false; + } + return RepoUrlEquals(installedFrom, expectedRepoUrl); } private static async Task InvokeReloadAsync(object pluginManager, MethodInfo reloadMethod) { - int num = -99592058; - ConfiguredTaskAwaitable.ConfiguredTaskAwaiter configuredTaskAwaiter = default(ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); - ConfiguredTaskAwaitable.ConfiguredTaskAwaiter configuredTaskAwaiter2 = default(ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); - while (true) - { - int num2 = num; - int num3 = -99592059; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - await configuredTaskAwaiter; - num = -99592063; - break; - case 4: - configuredTaskAwaiter = configuredTaskAwaiter2; - configuredTaskAwaiter2 = default(ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); - num = -99592057; - break; - case 0: - num = -99592058; - break; - case 3: - configuredTaskAwaiter = _003CInvokeReloadAsync_003Ed__13._200E_206A_200B_200D_202D_206B_202D_202C_200F_206B_200F_200E_206C_200F_206C_200F_202A_206C_206B_200C_202E_200B_206E_206E_206C_202D_202B_202A_202C_206C_200C_202E_202D_200F_202B_200D_206F_200E_206B_202A_202E(((Task)_003CInvokeReloadAsync_003Ed__13._202D_206C_206C_200E_200B_206C_206B_206F_200D_206B_206D_202C_206D_200E_206C_200C_206B_200C_206C_202C_202D_206F_206B_202D_206B_202C_200C_202A_206C_206D_206C_200B_200C_200E_200C_206E_202E_206D_206A_206A_202E((MethodBase)reloadMethod, pluginManager, new object[1] { true })) ?? throw _003CInvokeReloadAsync_003Ed__13._202A_202B_200C_202E_200D_200D_206F_200F_200E_206C_206F_206D_200C_206A_202B_206B_200F_202C_200B_200B_200F_202B_200F_206F_206E_206C_200D_202A_200F_206C_200B_200E_206E_206B_202A_200C_206C_200B_206E_206D_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-7195696)), false).GetAwaiter(); - num = (configuredTaskAwaiter.IsCompleted ? (-99592057) : (-99592060)); - break; - case 2: - configuredTaskAwaiter.GetResult(); - return; - } - } + await (((Task)reloadMethod.Invoke(pluginManager, new object[1] { true })) ?? throw new InvalidOperationException("PluginManager.SetPluginReposFromConfigAsync returned null - Dalamud internals may have changed")).ConfigureAwait(continueOnCapturedContext: false); } - [MethodImpl(MethodImplOptions.NoInlining)] private static bool IsVariantLoaded(object pluginManager, string internalName, string? thirdPartyRepoUrl, IReadOnlyList<string>? aliases = null) { - IEnumerable enumerable = _200F_200E_202E_202C_202C_200F_200F_206E_202A_200E_200E_206B_200F_200B_206D_202A_206C_206C_206C_206A_200D_200E_200F_202E_206F_206B_206D_200C_206E_202E_206B_200C_206B_200E_202E_206D_202B_200F_200D_200D_202E(_206C_200B_202A_206D_206E_206B_206A_200D_200E_200D_200C_202E_202A_200E_202E_206A_206B_200B_200C_202B_200D_206D_202B_202C_202C_206B_206D_206D_202E_206A_202E_200D_206C_202E_200B_202A_206A_200D_206C_202D_202E(_202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(pluginManager), global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1069078896)) ?? throw _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1353226340)), pluginManager) as IEnumerable; - int num = ((enumerable != null) ? (-1331774432) : (-1331774431)); - object obj2 = default(object); - string text = default(string); - object obj = default(object); - while (true) + if (!((pluginManager.GetType().GetProperty("InstalledPlugins") ?? throw new InvalidOperationException("Could not find PluginManager.InstalledPlugins - Dalamud internals may have changed")).GetValue(pluginManager) is IEnumerable enumerable)) { - int num2 = num; - int num3 = -1331774432; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0084; - case 1: - return false; - case 0: - { - IEnumerator enumerator = _206D_200B_202A_206A_200B_206A_206B_202D_200F_206A_202C_206E_206B_202C_200C_206B_206E_202C_200F_202B_206F_202E_202E_200F_200D_206E_202A_202C_200E_200B_206A_200C_202C_206A_206D_200F_206F_206C_206B_206F_202E(enumerable); - try - { - num = 1358949611; - while (true) - { - int num7 = num; - num3 = 1358949609; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 9: - num = ((!LocalPluginMatchesRepo(obj2, thirdPartyRepoUrl, aliases)) ? 1358949611 : 1358949601); - break; - case 0: - { - PropertyInfo propertyInfo2 = _202E_200C_202C_206F_202E_200C_202A_202A_202B_202C_200D_202D_200C_206C_202C_202C_200F_206C_206A_202A_202E_206F_202B_206E_206A_202D_200B_202D_206C_206B_200F_206F_206A_206A_202A_200B_202C_200F_200E_202D_202E(_202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(obj2), global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1288595854), BindingFlags.Instance | BindingFlags.Public); - text = (((object)propertyInfo2 != null) ? _202A_202B_200E_200F_202D_206F_206B_200C_202B_202E_200E_200E_202B_206F_206A_206C_200F_200E_202E_200D_206E_206B_202C_200E_206B_206F_206E_206F_206C_202C_206C_200B_202A_202A_200D_202B_202B_206B_206E_206B_202E(propertyInfo2, obj2) : null) as string; - num = ((text == null) ? 1358949611 : 1358949613); - break; - } - case 2: - num = (_206F_200C_200B_206E_202D_200C_200E_202E_200C_200F_206C_206E_200B_200C_202C_200D_200F_206C_206C_202B_202B_202B_206C_206B_200C_206A_200F_200C_202B_206F_202D_200C_206B_200D_206A_202B_200D_200F_206F_202C_202E(enumerator) ? 1358949612 : 1358949610); - break; - case 7: - num = 1358949611; - break; - case 4: - num = (_200D_200F_200D_206F_200D_206D_202D_206E_200C_200F_202E_206D_206E_200C_200D_206A_200B_202B_202B_200E_202D_206E_200B_206D_200C_200D_200D_200B_202E_200B_202C_202C_200D_202C_200E_202E_200D_206E_206C_202A_202E(text, internalName) ? 1358949611 : 1358949608); - break; - case 8: - return true; - case 1: - { - PropertyInfo propertyInfo = _202E_200C_202C_206F_202E_200C_202A_202A_202B_202C_200D_202D_200C_206C_202C_202C_200F_206C_206A_202A_202E_206F_202B_206E_206A_202D_200B_202D_206C_206B_200F_206F_206A_206A_202A_200B_202C_200F_200E_202D_202E(_202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(obj2), global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1106796058), BindingFlags.Instance | BindingFlags.Public); - obj = (((object)propertyInfo != null) ? _202A_202B_200E_200F_202D_206F_206B_200C_202B_202E_200E_200E_202B_206F_206A_206C_200F_200E_202E_200D_206E_206B_202C_200E_206B_206F_206E_206F_206C_202C_206C_200B_202A_202A_200D_202B_202B_206B_206E_206B_202E(propertyInfo, obj2) : null); - num = ((!(obj is bool)) ? 1358949611 : 1358949615); - break; - } - case 5: - obj2 = _206F_200F_200C_202D_202E_202A_202A_202C_200D_200D_206F_206E_206B_200C_200B_202C_206D_206A_206D_202D_202B_200E_206D_202B_200B_202C_206D_200D_202D_206A_206A_202C_202E_206D_206E_206B_200F_200B_206D_202B_202E(enumerator); - num = ((obj2 == null) ? 1358949611 : 1358949609); - break; - case 6: - num = ((!(bool)obj) ? 1358949611 : 1358949600); - break; - case 3: - goto end_IL_00a5; - } - continue; - end_IL_00a5: - break; - } - } - finally - { - IDisposable disposable = enumerator as IDisposable; - num = ((disposable == null) ? (-2122455954) : (-2122455955)); - while (true) - { - int num8 = num; - num3 = -2122455953; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 1: - goto end_IL_0290; - case 2: - _200F_206A_202B_200D_200B_206E_202D_200D_202A_200B_202D_206D_200B_206E_202E_206E_202A_200C_206A_200D_200F_206E_200F_202C_202E_200B_202A_200D_200D_200B_200E_200D_202D_206C_206E_200F_202C_202D_202D_202A_202E(disposable); - num = -2122455954; - break; - case 0: - num = -2122455955; - break; - } - continue; - end_IL_0290: - break; - } - } - return false; - } - } - continue; - IL_0084: - num = -1331774431; + return false; } + foreach (object item in enumerable) + { + if (item != null && item.GetType().GetProperty("InternalName", BindingFlags.Instance | BindingFlags.Public)?.GetValue(item) is string text && !(text != internalName)) + { + object obj = item.GetType().GetProperty("IsLoaded", BindingFlags.Instance | BindingFlags.Public)?.GetValue(item); + if (obj is bool && (bool)obj && LocalPluginMatchesRepo(item, thirdPartyRepoUrl, aliases)) + { + return true; + } + } + } + return false; } internal static bool RepoUrlEquals(string? a, string? b) { - int num = ((a == null) ? (-2066126507) : (-2066126505)); - while (true) + if (a == null || b == null) { - int num2 = num; - int num3 = -2066126506; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -2066126505; - break; - case 0: - return _200E_200D_200F_206B_200E_200E_206E_200B_206E_206A_202C_206E_200F_206D_200F_206C_206F_202C_206B_202D_200F_200C_202D_202C_200D_202E_206D_202A_202A_206A_200B_206F_202C_206B_200E_202A_206D_206D_206E_202E_202E(CanonicalizeRepoUrl(a), CanonicalizeRepoUrl(b), StringComparison.OrdinalIgnoreCase); - case 1: - num = ((b != null) ? (-2066126506) : (-2066126507)); - break; - case 3: - return _206C_200E_200C_200C_206B_206A_202A_200E_206E_200F_202E_200B_202B_206C_206F_202C_202A_206E_206F_202A_206F_202A_200F_200B_206D_202D_200D_206B_202A_202B_202E_202B_202A_206B_206A_200E_202B_206E_206B_202C_202E(a, b); - } + return a == b; } + return string.Equals(CanonicalizeRepoUrl(a), CanonicalizeRepoUrl(b), StringComparison.OrdinalIgnoreCase); } - [MethodImpl(MethodImplOptions.NoInlining)] private static string CanonicalizeRepoUrl(string url) { - Uri uri = default(Uri); - int num = (_206F_200D_202B_206B_206C_206B_200C_202E_202B_206C_202E_200B_202A_200D_206A_202C_202D_202E_200D_202A_206F_200D_206E_202A_202A_202B_200E_206F_202A_200D_200E_200F_200D_202E_206F_200E_202C_202B_206F_202D_202E(url, UriKind.Absolute, ref uri) ? 530622185 : 530622188); - string text = default(string); - string[] array = default(string[]); - string value = default(string); - string value2 = default(string); - int num7 = default(int); - while (true) + if (!Uri.TryCreate(url, UriKind.Absolute, out Uri result)) { - int num2 = num; - int num3 = 530622183; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return url.TrimEnd('/'); + } + string host = result.Host; + string[] array = result.AbsolutePath.Split('/', StringSplitOptions.RemoveEmptyEntries); + if (host.Equals("github.com", StringComparison.OrdinalIgnoreCase) && array.Length >= 4 && string.Equals(array[2], "raw", StringComparison.OrdinalIgnoreCase)) + { + string value = array[0]; + string value2 = array[1]; + int num = 3; + if (array.Length >= 6 && string.Equals(array[3], "refs", StringComparison.OrdinalIgnoreCase) && string.Equals(array[4], "heads", StringComparison.OrdinalIgnoreCase)) { - case 10: - num = ((!_200F_202A_200C_206C_200F_206E_202A_206B_200E_206C_202A_202A_202E_206F_202E_202A_200B_200D_206C_202C_206D_200C_206E_200E_206F_200D_206F_200F_200E_200C_202E_206A_206A_200D_202C_206D_202D_206E_200E_202E(text, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1128935720), StringComparison.OrdinalIgnoreCase)) ? 530622199 : 530622184); - break; - case 15: - num = ((array.Length < 5) ? 530622199 : 530622178); - break; - case 6: - value = array[0]; - value2 = array[1]; - num7 = 3; - num = ((array.Length < 6) ? 530622179 : 530622191); - break; - case 12: - num7 = 5; - num = 530622179; - break; - case 16: - { - UriBuilder uriBuilder = _206B_200E_202B_202B_202A_202C_206B_200C_206A_206D_202B_202E_200D_202D_202C_206E_206C_202A_206A_206A_200D_200C_206A_200D_206A_202D_202C_206A_202B_206B_200C_200B_202E_202A_206D_202C_206A_200D_202D_206E_202E(uri); - _206D_202A_206B_206F_206F_206F_202A_202A_206C_206A_202D_206B_206C_202D_200C_200D_202D_202B_202E_202A_200B_200D_206A_200C_202D_202B_206B_202E_200F_206F_200F_202E_206C_200C_206E_200E_200B_206E_200E_200E_202E(uriBuilder, _202D_206B_202E_202B_202E_206F_206A_202C_202E_206E_206A_200B_202A_200D_200C_206C_202B_200B_200F_206E_206E_206A_206F_200B_206E_206A_206C_200F_206C_200B_206B_200E_206E_206E_200F_206C_206D_200D_200E_200C_202E(text)); - _206D_202A_200C_200E_200D_200D_200C_206C_202C_200E_200C_206A_200E_202C_206A_202B_200E_200F_200F_206C_206D_206F_202C_206E_200C_202B_202A_200D_202C_200F_202B_206C_200D_206F_202B_202B_202E_200E_200E_206D_202E(uriBuilder, string.Empty); - _202B_200E_202D_206D_200D_206B_206D_206D_202E_206E_200E_200C_202A_202D_200F_200B_202B_200D_206F_202B_202D_206F_202B_200B_200C_206C_202A_200D_200B_206F_206C_202D_200C_202D_206E_200C_202A_206B_200C_202C_202E(uriBuilder, string.Empty); - _202E_200C_206F_206B_200F_200F_206D_206A_202B_202C_200E_200F_202E_206F_200F_200E_202C_200D_200F_206D_200F_200B_200D_200E_202D_202C_202D_206E_206B_202D_202E_202A_202B_200B_206E_200B_206F_202C_206A_200C_202E(uriBuilder, _200F_206B_206A_206D_202A_202E_200D_202E_206B_202C_200D_202A_206C_202A_202E_202B_202A_206A_202A_202B_206B_206D_200E_200C_206A_206D_202E_200E_206C_206D_206F_202D_206D_202A_206D_202E_202E_202E_200F_206E_202E(_202B_206B_202E_202C_200D_202B_200C_202C_206B_206C_206E_200F_202C_206A_206A_200D_206B_206F_206F_200C_206D_200B_200D_202D_200E_206D_202D_200E_206A_202A_200C_202D_202C_202A_200E_202E_202D_202C_200F_206C_202E(uri), '/')); - return _200F_206B_206A_206D_202A_202E_200D_202E_206B_202C_200D_202A_206C_202A_202E_202B_202A_206A_202A_202B_206B_206D_200E_200C_206A_206D_202E_200E_206C_206D_206F_202D_206D_202A_206D_202E_202E_202E_200F_206E_202E(_200D_202D_200E_206E_200F_202D_202D_202C_202B_200D_200F_206A_202D_202D_200E_202E_206D_206A_200E_200F_206A_206F_202D_200D_200F_200E_206F_200B_202D_202B_206B_202A_202C_206B_200D_202A_202E_202D_206C_202A_202E((object)_206B_206D_200E_206E_200D_206C_202B_202E_202C_200F_206A_202D_200D_206A_206B_200D_206A_200E_202B_206D_200D_206F_202B_206F_200D_202B_206F_200E_206C_206D_200E_206E_202A_202B_202E_206E_206A_202D_200C_202B_202E(uriBuilder)), '/'); + num = 5; } - case 11: - return _200F_206B_206A_206D_202A_202E_200D_202E_206B_202C_200D_202A_206C_202A_202E_202B_202A_206A_202A_202B_206B_206D_200E_200C_206A_206D_202E_200E_206C_206D_206F_202D_206D_202A_206D_202E_202E_202E_200F_206E_202E(url, '/'); - case 4: - num = ((array.Length <= num7) ? 530622199 : 530622186); - break; - case 13: + if (array.Length > num) { - string value6 = string.Join('/', array.Skip(num7)); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(36, 3); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(305796847)); - defaultInterpolatedStringHandler2.AppendFormatted(value); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(453460398)); - defaultInterpolatedStringHandler2.AppendFormatted(value2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1537983182)); - defaultInterpolatedStringHandler2.AppendFormatted(value6); - return defaultInterpolatedStringHandler2.ToStringAndClear(); - } - case 7: - num = ((!_200E_200D_200F_206B_200E_200E_206E_200B_206E_206A_202C_206E_200F_206D_200F_206C_206F_202C_206B_202D_200F_200C_202D_202C_200D_202E_206D_202A_202A_206A_200B_206F_202C_206B_200E_202A_206D_206D_206E_202E_202E(array[4], global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1341608927), StringComparison.OrdinalIgnoreCase)) ? 530622179 : 530622187); - break; - case 3: - num = ((!_200E_200D_200F_206B_200E_200E_206E_200B_206E_206A_202C_206E_200F_206D_200F_206C_206F_202C_206B_202D_200F_200C_202D_202C_200D_202E_206D_202A_202A_206A_200B_206F_202C_206B_200E_202A_206D_206D_206E_202E_202E(array[2], global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-26671864), StringComparison.OrdinalIgnoreCase)) ? 530622189 : 530622177); - break; - case 9: - num = ((!_200E_200D_200F_206B_200E_200E_206E_200B_206E_206A_202C_206E_200F_206D_200F_206C_206F_202C_206B_202D_200F_200C_202D_202C_200D_202E_206D_202A_202A_206A_200B_206F_202C_206B_200E_202A_206D_206D_206E_202E_202E(array[3], global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(602707159), StringComparison.OrdinalIgnoreCase)) ? 530622199 : 530622181); - break; - case 0: - num = 530622188; - break; - case 8: - num = ((!_200E_200D_200F_206B_200E_200E_206E_200B_206E_206A_202C_206E_200F_206D_200F_206C_206F_202C_206B_202D_200F_200C_202D_202C_200D_202E_206D_202A_202A_206A_200B_206F_202C_206B_200E_202A_206D_206D_206E_202E_202E(array[3], global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-773139783), StringComparison.OrdinalIgnoreCase)) ? 530622179 : 530622176); - break; - case 2: - { - string value3 = array[0]; - string value4 = array[1]; - string value5 = string.Join('/', array.Skip(4)); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(36, 3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-332568864)); - defaultInterpolatedStringHandler.AppendFormatted(value3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1537983182)); - defaultInterpolatedStringHandler.AppendFormatted(value4); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1817903541)); - defaultInterpolatedStringHandler.AppendFormatted(value5); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - case 5: - num = ((!_200E_200D_200F_206B_200E_200E_206E_200B_206E_206A_202C_206E_200F_206D_200F_206C_206F_202C_206B_202D_200F_200C_202D_202C_200D_202E_206D_202A_202A_206A_200B_206F_202C_206B_200E_202A_206D_206D_206E_202E_202E(array[2], global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1962363194), StringComparison.OrdinalIgnoreCase)) ? 530622199 : 530622190); - break; - case 1: - num = ((array.Length < 4) ? 530622189 : 530622180); - break; - case 14: - text = _200B_206E_202A_200D_202B_202B_200C_206D_206D_202E_202C_206A_200C_202A_202E_206D_206A_200E_200B_200E_206B_206E_206F_206E_206F_206D_206E_200E_202C_202B_206C_200B_206D_206B_206F_206D_206D_200C_206E_206D_202E(uri); - array = _206C_206C_206D_200D_202B_200E_206E_202A_202A_206E_206A_202A_206B_200D_200C_202D_206E_202C_206B_206C_206F_200B_202C_202C_206A_206A_202B_200E_200E_200F_200B_200F_206E_202E_206C_206D_206B_202E_206F_206E_202E(_202B_206B_202E_202C_200D_202B_200C_202C_206B_206C_206E_200F_202C_206A_206A_200D_206B_206F_206F_200C_206D_200B_200D_202D_200E_206D_202D_200E_206A_202A_200C_202D_202C_202A_200E_202E_202D_202C_200F_206C_202E(uri), '/', StringSplitOptions.RemoveEmptyEntries); - num = ((!_200F_202A_200C_206C_200F_206E_202A_206B_200E_206C_202A_202A_202E_206F_202E_202A_200B_200D_206C_202C_206D_200C_206E_200E_206F_200D_206F_200F_200E_200C_202E_206A_206A_200D_202C_206D_202D_206E_200E_202E(text, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(416896839), StringComparison.OrdinalIgnoreCase)) ? 530622189 : 530622182); - break; + string value3 = string.Join('/', array.Skip(num)); + return $"https://raw.githubusercontent.com/{value}/{value2}/{value3}"; } } + else if (host.Equals("raw.githubusercontent.com", StringComparison.OrdinalIgnoreCase) && array.Length >= 5 && string.Equals(array[2], "refs", StringComparison.OrdinalIgnoreCase) && string.Equals(array[3], "heads", StringComparison.OrdinalIgnoreCase)) + { + string value4 = array[0]; + string value5 = array[1]; + string value6 = string.Join('/', array.Skip(4)); + return $"https://raw.githubusercontent.com/{value4}/{value5}/{value6}"; + } + return new UriBuilder(result) + { + Host = host.ToLowerInvariant(), + Query = string.Empty, + Fragment = string.Empty, + Path = result.AbsolutePath.TrimEnd('/') + }.Uri.ToString().TrimEnd('/'); } - [MethodImpl(MethodImplOptions.NoInlining)] private static void AddOrEnableThirdPartyRepo(Assembly assembly, string repoUrl) { object dalamudConfiguration = GetDalamudConfiguration(assembly); - IList list = (GetFieldOrPropertyValue(dalamudConfiguration, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-964957061)) as IList) ?? throw _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1646915115)); - Type type = _202A_206F_206D_200B_200D_202B_200B_202B_202D_200E_202A_206D_202D_202E_206A_206E_206C_200D_206C_200D_202B_206E_202B_200B_200E_206D_206D_200E_200C_200B_206D_206F_200D_200D_202D_200D_206C_206B_202C_202A_202E(assembly, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1877024477)) ?? throw _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1453439841)); - IEnumerator enumerator = _206D_200B_202A_206A_200B_206A_206B_202D_200F_206A_202C_206E_206B_202C_200C_206B_206E_202C_200F_202B_206F_202E_202E_200F_200D_206E_202A_202C_200E_200B_206A_200C_202C_206A_206D_200F_206F_206C_206B_206F_202E((IEnumerable)list); - try + IList list = (GetFieldOrPropertyValue(dalamudConfiguration, "ThirdRepoList") as IList) ?? throw new InvalidOperationException("Could not read DalamudConfiguration.ThirdRepoList as IList - Dalamud internals may have changed"); + Type type = assembly.GetType("Dalamud.Configuration.ThirdPartyRepoSettings") ?? throw new InvalidOperationException("Could not find Dalamud.Configuration.ThirdPartyRepoSettings - Dalamud internals may have changed"); + foreach (object item in list) { - int num = -1033870805; - bool flag = default(bool); - object obj = default(object); - object fieldOrPropertyValue = default(object); - while (true) + if (item != null && RepoUrlEquals(GetFieldOrPropertyValue(item, "Url") as string, repoUrl)) { - int num2 = num; - int num3 = -1033870808; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + bool flag = false; + object fieldOrPropertyValue = GetFieldOrPropertyValue(item, "IsEnabled"); + if (fieldOrPropertyValue is bool && !(bool)fieldOrPropertyValue) { - case 9: - num = ((!flag) ? (-1033870806) : (-1033870802)); - break; - case 0: - num = ((!RepoUrlEquals(GetFieldOrPropertyValue(obj, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(2027261338)) as string, repoUrl)) ? (-1033870805) : (-1033870814)); - break; - case 1: - SetFieldOrPropertyValue(obj, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-686673173), true); + SetFieldOrPropertyValue(item, "IsEnabled", true); flag = true; - num = -1033870815; - break; - case 10: - flag = false; - fieldOrPropertyValue = GetFieldOrPropertyValue(obj, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1602768536)); - num = ((!(fieldOrPropertyValue is bool)) ? (-1033870815) : (-1033870816)); - break; - case 4: - num = -1033870805; - break; - case 6: - SaveDalamudConfig(dalamudConfiguration); - num = -1033870806; - break; - case 8: - num = (((bool)fieldOrPropertyValue) ? (-1033870815) : (-1033870807)); - break; - case 3: - num = (_206F_200C_200B_206E_202D_200C_200E_202E_200C_200F_206C_206E_200B_200C_202C_200D_200F_206C_206C_202B_202B_202B_206C_206B_200C_206A_200F_200C_202B_206F_202D_200C_206B_200D_206A_202B_200D_200F_206F_202C_202E(enumerator) ? (-1033870801) : (-1033870803)); - break; - case 7: - obj = _206F_200F_200C_202D_202E_202A_202A_202C_200D_200D_206F_206E_206B_200C_200B_202C_206D_206A_206D_202D_202B_200E_206D_202B_200B_202C_206D_200D_202D_206A_206A_202C_202E_206D_206E_206B_200F_200B_206D_202B_202E(enumerator); - num = ((obj == null) ? (-1033870805) : (-1033870808)); - break; - case 2: - return; - case 5: - goto end_IL_0070; } - continue; - end_IL_0070: - break; - } - } - finally - { - IDisposable disposable = enumerator as IDisposable; - int num = ((disposable == null) ? (-317404082) : (-317404081)); - while (true) - { - int num5 = num; - int num3 = -317404082; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) + if (flag) { - case 2: - num = -317404081; - break; - case 0: - goto end_IL_0244; - case 1: - _200F_206A_202B_200D_200B_206E_202D_200D_202A_200B_202D_206D_200B_206E_202E_206E_202A_200C_206A_200D_200F_206E_200F_202C_202E_200B_202A_200D_200D_200B_200E_200D_202D_206C_206E_200F_202C_202D_202D_202A_202E(disposable); - num = -317404082; - break; + SaveDalamudConfig(dalamudConfiguration); } - continue; - end_IL_0244: - break; + return; } } - object obj2 = _206F_206C_202E_206D_200D_200F_202B_206F_200D_200E_202E_202B_206C_206B_202D_206D_206A_206A_206F_206B_200F_206E_206D_206A_200E_206F_206A_206A_206E_206B_206D_206D_200C_200C_200B_206C_202E_202D_200F_200F_202E(type) ?? throw _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1179183900)); - SetFieldOrPropertyValue(obj2, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(2027261338), repoUrl); - SetFieldOrPropertyValue(obj2, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-2043613357), true); - _206B_206D_202C_206A_206A_206E_200B_206A_202A_206A_202B_206B_202E_202A_206D_206E_206A_206C_206B_206F_202B_206E_200C_206D_206F_202B_200D_202A_206E_206F_206B_206B_202C_200B_206A_202E_202C_200F_202D_206B_202E(list, obj2); + object obj = Activator.CreateInstance(type) ?? throw new InvalidOperationException("Activator.CreateInstance(ThirdPartyRepoSettings) returned null - Dalamud internals may have changed"); + SetFieldOrPropertyValue(obj, "Url", repoUrl); + SetFieldOrPropertyValue(obj, "IsEnabled", true); + list.Add(obj); SaveDalamudConfig(dalamudConfiguration); } - [MethodImpl(MethodImplOptions.NoInlining)] private static object? GetFieldOrPropertyValue(object target, string name) { - Type type = _202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(target); - FieldInfo fieldInfo = _206C_206F_200C_206B_202B_202C_200F_206A_200C_202A_206D_200F_206F_202D_206E_202C_202B_200C_202B_200C_202C_202D_202B_200B_200E_202D_202C_202A_200D_206E_206F_202B_200D_206A_200F_206F_206D_200D_200F_206A_202E(type, name, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); - int num = ((!_200E_206D_200C_206B_202C_200D_206B_202A_206F_202C_206D_206D_200E_202D_202A_200E_202E_206D_206E_202A_206A_206A_206B_206A_202B_206A_202A_202C_206D_200C_200C_206A_202C_200F_200F_202D_202C_206A_202D_206A_202E(fieldInfo, (FieldInfo)null)) ? 2137954489 : 2137954494); - PropertyInfo propertyInfo = default(PropertyInfo); - while (true) + Type type = target.GetType(); + FieldInfo field = type.GetField(name, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + if (field != null) { - int num2 = num; - int num3 = 2137954490; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(76, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(-1361415750)); - defaultInterpolatedStringHandler.AppendFormatted(name); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-628391309)); - defaultInterpolatedStringHandler.AppendFormatted(_200B_200F_206F_200F_202C_206D_200C_206D_202C_200E_200B_200D_200C_206E_206A_200D_202E_206E_200F_202E_202A_206A_202B_200D_200F_202D_202D_206D_200F_200C_200D_200B_206B_200F_206E_202C_202D_200E_202B_202A_202E(type)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-329405732)); - throw _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 3: - propertyInfo = _202E_200C_202C_206F_202E_200C_202A_202A_202B_202C_200D_202D_200C_206C_202C_202C_200F_206C_206A_202A_202E_206F_202B_206E_206A_202D_200B_202D_206C_206B_200F_206F_206A_206A_202A_200B_202C_200F_200E_202D_202E(type, name, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); - num = ((!_206F_206C_202A_202A_200D_202C_206D_202B_200C_206A_200E_200B_200E_206E_202A_206A_206A_206A_206F_206C_200B_202C_202E_202E_206D_206D_206D_200C_202B_202A_202B_202A_200F_206F_200E_200E_202A_200D_206B_200D_202E(propertyInfo, (PropertyInfo)null)) ? 2137954491 : 2137954488); - break; - case 2: - return _200F_200E_202E_202C_202C_200F_200F_206E_202A_200E_200E_206B_200F_200B_206D_202A_206C_206C_206C_206A_200D_200E_200F_202E_206F_206B_206D_200C_206E_202E_206B_200C_206B_200E_202E_206D_202B_200F_200D_200D_202E(propertyInfo, target); - case 4: - return _200B_200C_202B_200B_200F_206A_206B_202E_200F_206D_200B_202A_206D_202B_200D_206A_200B_200F_200B_206A_202D_202A_202C_206E_202A_206C_200C_206D_206D_202D_202D_206F_200C_202D_206C_200F_202B_202C_206F_200C_202E(fieldInfo, target); - case 0: - num = 2137954494; - break; - } + return field.GetValue(target); } + PropertyInfo property = type.GetProperty(name, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + if (property != null) + { + return property.GetValue(target); + } + throw new InvalidOperationException($"Could not find field or property '{name}' on {type.FullName} - Dalamud internals may have changed"); } - [MethodImpl(MethodImplOptions.NoInlining)] private static void SetFieldOrPropertyValue(object target, string name, object value) { - Type type = _202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(target); - FieldInfo fieldInfo = _206C_206F_200C_206B_202B_202C_200F_206A_200C_202A_206D_200F_206F_202D_206E_202C_202B_200C_202B_200C_202C_202D_202B_200B_200E_202D_202C_202A_200D_206E_206F_202B_200D_206A_200F_206F_206D_200D_200F_206A_202E(type, name, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); - int num = ((!_200E_206D_200C_206B_202C_200D_206B_202A_206F_202C_206D_206D_200E_202D_202A_200E_202E_206D_206E_202A_206A_206A_206B_206A_202B_206A_202A_202C_206D_200C_200C_206A_202C_200F_200F_202D_202C_206A_202D_206A_202E(fieldInfo, (FieldInfo)null)) ? 1086843726 : 1086843724); - PropertyInfo propertyInfo = default(PropertyInfo); - while (true) + Type type = target.GetType(); + FieldInfo field = type.GetField(name, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + if (field != null) { - int num2 = num; - int num3 = 1086843725; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - propertyInfo = _202E_200C_202C_206F_202E_200C_202A_202A_202B_202C_200D_202D_200C_206C_202C_202C_200F_206C_206A_202A_202E_206F_202B_206E_206A_202D_200B_202D_206C_206B_200F_206F_206A_206A_202A_200B_202C_200F_200E_202D_202E(type, name, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); - num = ((!_206F_206C_202A_202A_200D_202C_206D_202B_200C_206A_200E_200B_200E_206E_202A_206A_206A_206A_206F_206C_200B_202C_202E_202E_206D_206D_206D_200C_202B_202A_202B_202A_200F_206F_200E_200E_202A_200D_206B_200D_202E(propertyInfo, (PropertyInfo)null)) ? 1086843727 : 1086843721); - break; - case 1: - _206F_206F_206A_202C_206A_202C_200E_200C_206D_200C_200B_200C_206F_206E_200F_200E_200B_206C_202A_206A_202B_200F_200D_202B_206B_202A_206D_206B_202B_206A_202D_202D_206C_202C_200E_200C_200F_200F_206F_202B_202E(fieldInfo, target, value); - return; - case 4: - num = ((!_200D_206E_200E_200E_202A_202D_202D_200C_200B_202D_200B_200B_200D_200F_206A_200B_202D_206F_206E_206E_200D_202E_202D_200C_202E_206A_206A_206D_200E_206F_200B_206A_206F_206F_202E_200D_202D_200E_200B_206B_202E(propertyInfo)) ? 1086843727 : 1086843725); - break; - case 2: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(75, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(2111351755)); - defaultInterpolatedStringHandler.AppendFormatted(name); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1540325773)); - defaultInterpolatedStringHandler.AppendFormatted(_200B_200F_206F_200F_202C_206D_200C_206D_202C_200E_200B_200D_200C_206E_206A_200D_202E_206E_200F_202E_202A_206A_202B_200D_200F_202D_202D_206D_200F_200C_200D_200B_206B_200F_206E_202C_202D_200E_202B_202A_202E(type)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1985257044)); - throw _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 0: - _200F_206C_200E_206E_206F_206E_200F_200D_202C_206A_200C_206E_202C_206E_206B_206F_202A_202A_202E_202B_206E_206C_206F_206F_206E_206E_200D_206A_202C_206D_200E_206B_206E_200F_206E_206E_200B_200B_202D_202C_202E(propertyInfo, target, value); - return; - case 5: - num = 1086843724; - break; - } + field.SetValue(target, value); + return; } + PropertyInfo property = type.GetProperty(name, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + if (property != null && property.CanWrite) + { + property.SetValue(target, value); + return; + } + throw new InvalidOperationException($"Could not set field or property '{name}' on {type.FullName} - Dalamud internals may have changed"); } - [MethodImpl(MethodImplOptions.NoInlining)] private static object GetDalamudConfiguration(Assembly assembly) { - Type obj = _202A_206F_206D_200B_200D_202B_200B_202B_202D_200E_202A_206D_202D_202E_206A_206E_206C_200D_206C_200D_202B_206E_202B_200B_200E_206D_206D_200E_200C_200B_206D_206F_200D_200D_202D_200D_206C_206B_202C_202A_202E(assembly, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(24234399)) ?? throw _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(2073227713)); - Type type = _202A_206F_206D_200B_200D_202B_200B_202B_202D_200E_202A_206D_202D_202E_206A_206E_206C_200D_206C_200D_202B_206E_202B_200B_200E_206D_206D_200E_200C_200B_206D_206F_200D_200D_202D_200D_206C_206B_202C_202A_202E(assembly, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(269892115)) ?? throw _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(2145503210)); - return _206D_200D_200B_206A_202A_206C_202A_202B_206C_200E_206E_200E_202E_206F_200E_206C_206A_202C_206C_202E_202B_206D_200B_206F_200C_202B_206C_200F_202C_200C_200C_206E_206E_200B_206C_200D_206C_206C_206E_206E_202E((MethodBase)(_200D_200E_200B_202D_206D_202E_200B_200D_202D_200D_200B_206B_202C_200B_202E_202C_202A_206F_202B_200F_200D_202A_202A_200D_200B_200C_202C_202A_206F_206C_200C_202B_206A_206A_202A_206E_206B_202D_206C_206C_202E(_206E_206A_200C_202D_206B_202B_206B_202A_206A_206D_202A_206D_206B_200C_200E_206E_206E_202E_202A_206E_206F_202C_202A_206A_202B_206C_200B_200C_200D_202C_206D_200D_200C_206C_200E_202B_200D_206D_202C_202E(obj, new Type[1] { type }), global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(323184710)) ?? throw _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1758761720))), (object)null, BindingFlags.Default, (Binder)null, Array.Empty<object>(), (CultureInfo)null) ?? throw _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(933870238)); + Type? obj = assembly.GetType("Dalamud.Service`1") ?? throw new InvalidOperationException("Could not find Dalamud.Service`1 type - Dalamud internals may have changed"); + Type type = assembly.GetType("Dalamud.Configuration.Internal.DalamudConfiguration") ?? throw new InvalidOperationException("Could not find DalamudConfiguration type - Dalamud internals may have changed"); + return (obj.MakeGenericType(type).GetMethod("Get") ?? throw new InvalidOperationException("Could not find Service<DalamudConfiguration>.Get() - Dalamud internals may have changed")).Invoke(null, BindingFlags.Default, null, Array.Empty<object>(), null) ?? throw new InvalidOperationException("Service<DalamudConfiguration>.Get() returned null"); } - [MethodImpl(MethodImplOptions.NoInlining)] private static void SaveDalamudConfig(object config) { - _200E_200D_202B_206D_202B_202D_202E_200F_206F_202E_200D_206A_202D_200B_202C_206F_206A_206A_202C_206F_202A_206C_206D_202B_202B_202A_206B_206E_206D_200B_200D_200C_200E_202C_206F_206B_202C_202B_202D_202D_202E((MethodBase)(_202C_202A_200E_200C_200D_202C_200C_206E_206B_206F_202C_202B_200B_200C_202C_206A_200E_206F_200D_200C_202E_206D_202C_206D_200D_200C_200F_200F_200C_200C_202E_200F_206E_202C_202C_206B_206E_202E_206D_206F_202E(_202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(config), global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1757338491), BindingFlags.Instance | BindingFlags.Public) ?? throw _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1710433567))), config, (object[])null); + (config.GetType().GetMethod("QueueSave", BindingFlags.Instance | BindingFlags.Public) ?? throw new InvalidOperationException("Could not find DalamudConfiguration.QueueSave() - Dalamud internals may have changed")).Invoke(config, null); } - [MethodImpl(MethodImplOptions.NoInlining)] private static object? FindAvailableManifest(object pluginManager, string internalName, string? thirdPartyRepoUrl, IReadOnlyList<string>? aliases) { - IEnumerable obj = (_200F_200E_202E_202C_202C_200F_200F_206E_202A_200E_200E_206B_200F_200B_206D_202A_206C_206C_206C_206A_200D_200E_200F_202E_206F_206B_206D_200C_206E_202E_206B_200C_206B_200E_202E_206D_202B_200F_200D_200D_202E(_202E_200C_202C_206F_202E_200C_202A_202A_202B_202C_200D_202D_200C_206C_202C_202C_200F_206C_206A_202A_202E_206F_202B_206E_206A_202D_200B_202D_206C_206B_200F_206F_206A_206A_202A_200B_202C_200F_200E_202D_202E(_202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(pluginManager), global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1276746319), BindingFlags.Instance | BindingFlags.Public) ?? throw _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1333702208)), pluginManager) as IEnumerable) ?? throw _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-903554674)); + IEnumerable obj = ((pluginManager.GetType().GetProperty("AvailablePlugins", BindingFlags.Instance | BindingFlags.Public) ?? throw new InvalidOperationException("Could not find PluginManager.AvailablePlugins - Dalamud internals may have changed")).GetValue(pluginManager) as IEnumerable) ?? throw new InvalidOperationException("PluginManager.AvailablePlugins was not enumerable - Dalamud internals may have changed"); object obj2 = null; - IEnumerator enumerator = _206D_200B_202A_206A_200B_206A_206B_202D_200F_206A_202C_206E_206B_202C_200C_206B_206E_202C_200F_202B_206F_202E_202E_200F_200D_206E_202A_202C_200E_200B_206A_200C_202C_206A_206D_200F_206F_206C_206B_206F_202E(obj); - object obj5 = default(object); + IEnumerator enumerator = obj.GetEnumerator(); + object obj4; try { - int num = -850025118; - object obj3 = default(object); - object obj4 = default(object); - string text = default(string); - PropertyInfo propertyInfo2 = default(PropertyInfo); - _003C_003Ec__DisplayClass22_0 _003C_003Ec__DisplayClass22_ = default(_003C_003Ec__DisplayClass22_0); while (true) { - int num2 = num; - int num3 = -850025105; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (enumerator.MoveNext()) { - case 18: - { - PropertyInfo propertyInfo3 = _202E_200C_202C_206F_202E_200C_202A_202A_202B_202C_200D_202D_200C_206C_202C_202C_200F_206C_206A_202A_202E_206F_202B_206E_206A_202D_200B_202D_206C_206B_200F_206F_206A_206A_202A_200B_202C_200F_200E_202D_202E(_202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(obj3), global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1147668931), BindingFlags.Instance | BindingFlags.Public); - obj5 = (((object)propertyInfo3 != null) ? _202A_202B_200E_200F_202D_206F_206B_200C_202B_202E_200E_200E_202B_206F_206A_206C_200F_200E_202E_200D_206E_206B_202C_200E_206B_206F_206E_206F_206C_202C_206C_200B_202A_202A_200D_202B_202B_206B_206E_206B_202E(propertyInfo3, obj3) : null); - num = ((!(obj5 is bool)) ? (-850025118) : (-850025108)); - break; + object current = enumerator.Current; + if (current == null) + { + continue; + } + PropertyInfo property = current.GetType().GetProperty("InternalName", BindingFlags.Instance | BindingFlags.Public); + if (property == null || !(property.GetValue(current) is string text) || text != internalName) + { + continue; + } + if (obj2 == null) + { + obj2 = current; + } + object obj3 = current.GetType().GetProperty("SourceRepo", BindingFlags.Instance | BindingFlags.Public)?.GetValue(current); + if (obj3 == null) + { + continue; + } + if (thirdPartyRepoUrl == null) + { + obj4 = obj3.GetType().GetProperty("IsThirdParty", BindingFlags.Instance | BindingFlags.Public)?.GetValue(obj3); + if (obj4 is bool && !(bool)obj4) + { + obj4 = current; + break; + } + continue; + } + string repoUrl = obj3.GetType().GetProperty("PluginMasterUrl", BindingFlags.Instance | BindingFlags.Public)?.GetValue(obj3) as string; + if (RepoUrlEquals(repoUrl, thirdPartyRepoUrl)) + { + obj4 = current; + break; + } + if (aliases != null && aliases.Any((string alias) => RepoUrlEquals(repoUrl, alias))) + { + obj4 = current; + break; + } + continue; } - case 17: - obj5 = obj4; - goto end_IL_0063; - case 2: - obj2 = obj4; - num = -850025110; - break; - case 14: - obj4 = _206F_200F_200C_202D_202E_202A_202A_202C_200D_200D_206F_206E_206B_200C_200B_202C_206D_206A_206D_202D_202B_200E_206D_202B_200B_202C_206D_200D_202D_206A_206A_202C_202E_206D_206E_206B_200F_200B_206D_202B_202E(enumerator); - num = ((obj4 == null) ? (-850025118) : (-850025113)); - break; - case 0: - num = ((obj2 != null) ? (-850025110) : (-850025107)); - break; - case 3: - num = (((bool)obj5) ? (-850025118) : (-850025115)); - break; - case 12: - num = ((aliases == null) ? (-850025118) : (-850025112)); - break; - case 9: - num = -850025118; - break; - case 5: - { - PropertyInfo propertyInfo4 = _202E_200C_202C_206F_202E_200C_202A_202A_202B_202C_200D_202D_200C_206C_202C_202C_200F_206C_206A_202A_202E_206F_202B_206E_206A_202D_200B_202D_206C_206B_200F_206F_206A_206A_202A_200B_202C_200F_200E_202D_202E(_202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(obj4), global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(54205377), BindingFlags.Instance | BindingFlags.Public); - obj3 = (((object)propertyInfo4 != null) ? _202A_202B_200E_200F_202D_206F_206B_200C_202B_202E_200E_200E_202B_206F_206A_206C_200F_200E_202E_200D_206E_206B_202C_200E_206B_206F_206E_206F_206C_202C_206C_200B_202A_202A_200D_202B_202B_206B_206E_206B_202E(propertyInfo4, obj4) : null); - num = ((obj3 == null) ? (-850025118) : (-850025116)); - break; - } - case 16: - num = (_200D_200F_200D_206F_200D_206D_202D_206E_200C_200F_202E_206D_206E_200C_200D_206A_200B_202B_202B_200E_202D_206E_200B_206D_200C_200D_200D_200B_202E_200B_202C_202C_200D_202C_200E_202E_200D_206E_206C_202A_202E(text, internalName) ? (-850025118) : (-850025105)); - break; - case 10: - obj5 = obj4; - goto end_IL_0063; - case 8: - propertyInfo2 = _202E_200C_202C_206F_202E_200C_202A_202A_202B_202C_200D_202D_200C_206C_202C_202C_200F_206C_206A_202A_202E_206F_202B_206E_206A_202D_200B_202D_206C_206B_200F_206F_206A_206A_202A_200B_202C_200F_200E_202D_202E(_202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(obj4), global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1994460583), BindingFlags.Instance | BindingFlags.Public); - num = (_206A_206B_200D_202B_200F_206C_200D_206F_200B_206A_206D_202D_202B_206E_202D_206A_206E_206F_206B_206D_206E_202B_206C_206B_200F_206C_206B_200F_206D_200C_206E_206A_200D_200E_200C_206A_206D_206D_200B_200F_202E(propertyInfo2, (PropertyInfo)null) ? (-850025118) : (-850025109)); - break; - case 13: - num = (_206F_200C_200B_206E_202D_200C_200E_202E_200C_200F_206C_206E_200B_200C_202C_200D_200F_206C_206C_202B_202B_202B_206C_206B_200C_206A_200F_200C_202B_206F_202D_200C_206B_200D_206A_202B_200D_200F_206F_202C_202E(enumerator) ? (-850025119) : (-850025111)); - break; - case 4: - text = _200F_200E_202E_202C_202C_200F_200F_206E_202A_200E_200E_206B_200F_200B_206D_202A_206C_206C_206C_206A_200D_200E_200F_202E_206F_206B_206D_200C_206E_202E_206B_200C_206B_200E_202E_206D_202B_200F_200D_200D_202E(propertyInfo2, obj4) as string; - num = ((text == null) ? (-850025118) : (-850025089)); - break; - case 15: - obj5 = obj4; - goto end_IL_0063; - case 11: - num = ((thirdPartyRepoUrl != null) ? (-850025106) : (-850025091)); - break; - case 7: - num = ((!aliases.Any(_003C_003Ec__DisplayClass22_._003CFindAvailableManifest_003Eb__0)) ? (-850025118) : (-850025120)); - break; - case 1: - { - _003C_003Ec__DisplayClass22_ = new _003C_003Ec__DisplayClass22_0(); - _003C_003Ec__DisplayClass22_0 _003C_003Ec__DisplayClass22_2 = _003C_003Ec__DisplayClass22_; - PropertyInfo propertyInfo = _202E_200C_202C_206F_202E_200C_202A_202A_202B_202C_200D_202D_200C_206C_202C_202C_200F_206C_206A_202A_202E_206F_202B_206E_206A_202D_200B_202D_206C_206B_200F_206F_206A_206A_202A_200B_202C_200F_200E_202D_202E(_202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(obj3), global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1503580727), BindingFlags.Instance | BindingFlags.Public); - _003C_003Ec__DisplayClass22_2.repoUrl = (((object)propertyInfo != null) ? _202A_202B_200E_200F_202D_206F_206B_200C_202B_202E_200E_200E_202B_206F_206A_206C_200F_200E_202E_200D_206E_206B_202C_200E_206B_206F_206E_206F_206C_202C_206C_200B_202A_202A_200D_202B_202B_206B_206E_206B_202E(propertyInfo, obj3) : null) as string; - num = ((!RepoUrlEquals(_003C_003Ec__DisplayClass22_.repoUrl, thirdPartyRepoUrl)) ? (-850025117) : (-850025090)); - break; - } - case 6: - return obj2; - } - continue; - end_IL_0063: - break; + return obj2; } } finally { IDisposable disposable = enumerator as IDisposable; - int num = ((disposable == null) ? 980189250 : 980189249); - while (true) + if (disposable != null) { - int num5 = num; - int num3 = 980189248; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_03db; - case 1: - _200F_206A_202B_200D_200B_206E_202D_200D_202A_200B_202D_206D_200B_206E_202E_206E_202A_200C_206A_200D_200F_206E_200F_202C_202E_200B_202A_200D_200D_200B_200E_200D_202D_206C_206E_200F_202C_202D_202D_202A_202E(disposable); - num = 980189250; - break; - case 0: - num = 980189249; - break; - } - continue; - end_IL_03db: - break; + disposable.Dispose(); } } - return obj5; + return obj4; } - [MethodImpl(MethodImplOptions.NoInlining)] private void OnInstalledPluginsChanged() { - _200C_206D_206A_202D_202D_202C_206A_200D_206C_200D_206F_202D_206E_202B_200B_200E_202B_206D_206B_202B_206A_202A_206C_202A_206E_202A_202A_202A_202D_202A_206D_200F_202E_206B_202D_202E_200B_200B_200B_202C_202E(_pluginLog, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-2004059342), Array.Empty<object>()); - _200C_206D_200D_206E_200E_202D_200F_202B_200C_202E_206D_206D_200F_206D_206C_202B_202C_206E_206D_200E_206F_200F_202C_206A_200E_202C_202B_200C_206F_206B_200E_206B_202A_206B_206B_202E_202D_206F_202B_206E_202E(ref _cacheVersion); + _pluginLog.Verbose("Installed plugins changed event fired"); + Interlocked.Increment(ref _cacheVersion); _pluginCache.Clear(); } - - static void _206B_200C_202D_200D_202D_206A_206F_202D_202B_200F_206F_206D_206C_202E_206E_206A_200C_202A_206F_202A_200E_202D_206E_202C_206A_206A_200D_200C_202E_206B_206C_202A_206C_200D_202E_206B_202C_206B_202B_206F_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static Type _202E_206D_200C_206B_202C_200F_206C_206A_206D_206F_206C_202B_202B_200E_206D_202A_206A_202B_202C_206E_206A_200B_200C_200C_206E_200C_206D_202C_206D_202B_200C_206E_206A_206F_200E_202A_202E_200D_206D_206A_202E(object P_0) - { - return P_0.GetType(); - } - - static EventInfo _202C_202B_202D_200C_202D_206F_202E_206B_202E_202C_206E_202E_200E_202D_202D_206B_202E_202E_206B_206A_202D_202A_206F_202B_202B_202B_200E_200F_206E_202C_206E_202E_200E_206E_206F_202B_202C_202D_206D_200D_202E(Type P_0, string P_1) - { - return P_0.GetEvent(P_1); - } - - static InvalidOperationException _202D_206D_202E_200D_202C_202B_206A_200F_200B_206D_200D_202E_200D_202E_202A_200F_202B_202C_202D_206A_206C_200D_206B_206B_200B_202C_206F_206B_200E_202C_200C_202B_202B_206C_206D_206C_200E_200D_202D_206B_202E(string P_0) - { - return new InvalidOperationException(P_0); - } - - static void _202C_206A_202C_206C_200F_202D_200B_200D_202D_200B_202A_206F_200E_200D_202A_206F_206C_200E_200F_202E_202A_206F_200C_200F_200C_206C_202D_202B_200D_206F_202D_202A_202B_200D_206D_202B_200E_206E_202E_202B_202E(EventInfo P_0, object P_1, Delegate P_2) - { - P_0.AddEventHandler(P_1, P_2); - } - - static void _200E_206A_200C_206C_200C_200C_206A_202B_206E_202E_206B_200F_206F_206E_200E_200C_202E_200D_202E_206C_202B_206F_200B_206B_206C_202C_200D_202D_206E_200F_200D_200D_202D_206B_200E_202D_206B_202D_206F_206C_202E(EventInfo P_0, object P_1, Delegate P_2) - { - P_0.RemoveEventHandler(P_1, P_2); - } - - static void _200D_202D_206F_200C_206E_202A_202B_200E_202C_202B_206E_202A_202D_206D_202D_200D_202C_206A_202A_202E_206F_206C_206D_202C_202B_206B_206F_202D_202A_202C_206A_202A_202E_206F_202D_202C_206C_206C_200E_206A_202E(IPluginLog P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.Warning(P_1, P_2, P_3); - } - - static Assembly _200F_202E_200B_202A_200B_202C_206F_200D_202A_200D_200B_206D_200F_206A_200C_206C_202B_202E_202D_206D_202C_202E_200E_206F_200F_200C_202D_202D_206D_200F_200F_200C_206B_206F_200D_206B_200E_202A_200D_202D_202E(Type P_0) - { - return P_0.Assembly; - } - - static Type _202A_206F_206D_200B_200D_202B_200B_202B_202D_200E_202A_206D_202D_202E_206A_206E_206C_200D_206C_200D_202B_206E_202B_200B_200E_206D_206D_200E_200C_200B_206D_206F_200D_200D_202D_200D_206C_206B_202C_202A_202E(Assembly P_0, string P_1) - { - return P_0.GetType(P_1); - } - - static Type _206E_206A_200C_202D_206B_202B_206B_202A_206A_206D_202A_206D_206B_200C_200E_206E_206E_202E_202A_206E_206F_202C_202A_206A_202B_206C_200B_200C_200D_202C_206D_200D_200C_206C_200E_202B_200D_206D_202C_202E(Type P_0, Type[] P_1) - { - return P_0.MakeGenericType(P_1); - } - - static MethodInfo _200D_200E_200B_202D_206D_202E_200B_200D_202D_200D_200B_206B_202C_200B_202E_202C_202A_206F_202B_200F_200D_202A_202A_200D_200B_200C_202C_202A_206F_206C_200C_202B_206A_206A_202A_206E_206B_202D_206C_206C_202E(Type P_0, string P_1) - { - return P_0.GetMethod(P_1); - } - - static object _206D_200D_200B_206A_202A_206C_202A_202B_206C_200E_206E_200E_202E_206F_200E_206C_206A_202C_206C_202E_202B_206D_200B_206F_200C_202B_206C_200F_202C_200C_200C_206E_206E_200B_206C_200D_206C_206C_206E_206E_202E(MethodBase P_0, object P_1, BindingFlags P_2, Binder P_3, object[] P_4, CultureInfo P_5) - { - return P_0.Invoke(P_1, P_2, P_3, P_4, P_5); - } - - static int _202D_202C_206B_206C_202E_206D_200B_202E_206F_206B_200F_206E_206D_200D_206A_206A_202A_206C_200B_206B_200F_200F_206B_200E_202C_202B_200F_200B_206D_206E_200D_200B_206B_200B_206D_202A_200C_202A_202D_206F_202E(ref int P_0) - { - return Volatile.Read(in P_0); - } - - static PropertyInfo _206C_200B_202A_206D_206E_206B_206A_200D_200E_200D_200C_202E_202A_200E_202E_206A_206B_200B_200C_202B_200D_206D_202B_202C_202C_206B_206D_206D_202E_206A_202E_200D_206C_202E_200B_202A_206A_200D_206C_202D_202E(Type P_0, string P_1) - { - return P_0.GetProperty(P_1); - } - - static object _200F_200E_202E_202C_202C_200F_200F_206E_202A_200E_200E_206B_200F_200B_206D_202A_206C_206C_206C_206A_200D_200E_200F_202E_206F_206B_206D_200C_206E_202E_206B_200C_206B_200E_202E_206D_202B_200F_200D_200D_202E(PropertyInfo P_0, object P_1) - { - return P_0.GetValue(P_1); - } - - static string _206D_202B_206D_202D_200C_202E_206E_206F_202E_200D_202E_202E_206D_202C_200D_200D_200C_202E_202D_200E_206A_206B_206E_202B_206F_200B_200D_200F_206B_200D_206B_202C_200D_202A_202D_200C_206D_200C_206D_206C_202E(Exception P_0) - { - return P_0.Message; - } - - static string _200E_206E_200B_206B_206E_202E_206A_206A_202C_202C_202D_202B_200D_206D_202E_206F_200B_200E_206E_200E_202D_200E_202B_200B_200F_200C_200B_200F_206B_202E_206D_200B_206F_206E_206E_200C_200E_206B_200F_202E(string P_0, string P_1, string P_2, string P_3) - { - return P_0 + P_1 + P_2 + P_3; - } - - static void _202B_200D_202A_206E_202E_202B_206F_206B_206A_202C_202A_200C_200E_206E_202E_206B_202C_206E_206F_200F_206C_206F_206A_206C_206C_200B_206A_206E_206B_202C_202A_202E_206D_202B_202E_200F_206A_202B_206B_200C_202E(IPluginLog P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.Error(P_1, P_2, P_3); - } - - static PropertyInfo _202E_200C_202C_206F_202E_200C_202A_202A_202B_202C_200D_202D_200C_206C_202C_202C_200F_206C_206A_202A_202E_206F_202B_206E_206A_202D_200B_202D_206C_206B_200F_206F_206A_206A_202A_200B_202C_200F_200E_202D_202E(Type P_0, string P_1, BindingFlags P_2) - { - return P_0.GetProperty(P_1, P_2); - } - - static object _202A_202B_200E_200F_202D_206F_206B_200C_202B_202E_200E_200E_202B_206F_206A_206C_200F_200E_202E_200D_206E_206B_202C_200E_206B_206F_206E_206F_206C_202C_206C_200B_202A_202A_200D_202B_202B_206B_206E_206B_202E(PropertyInfo P_0, object P_1) - { - return P_0.GetValue(P_1); - } - - static bool _206D_202C_200B_202A_200E_202D_200D_206F_200C_206A_200E_202C_200B_200C_206B_200B_202B_206A_202A_206C_206E_206B_202D_206C_202D_202C_200F_206F_200C_202C_200E_202B_202E_206E_206A_206D_200E_202A_206D_206B_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static bool _206F_200C_200B_206E_202D_200C_200E_202E_200C_200F_206C_206E_200B_200C_202C_200D_200F_206C_206C_202B_202B_202B_206C_206B_200C_206A_200F_200C_202B_206F_202D_200C_206B_200D_206A_202B_200D_200F_206F_202C_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200F_206A_202B_200D_200B_206E_202D_200D_202A_200B_202D_206D_200B_206E_202E_206E_202A_200C_206A_200D_200F_206E_200F_202C_202E_200B_202A_200D_200D_200B_200E_200D_202D_206C_206E_200F_202C_202D_202D_202A_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool _200E_200D_200F_206B_200E_200E_206E_200B_206E_206A_202C_206E_200F_206D_200F_206C_206F_202C_206B_202D_200F_200C_202D_202C_200D_202E_206D_202A_202A_206A_200B_206F_202C_206B_200E_202A_206D_206D_206E_202E_202E(string P_0, string P_1, StringComparison P_2) - { - return string.Equals(P_0, P_1, P_2); - } - - static IEnumerator _206D_200B_202A_206A_200B_206A_206B_202D_200F_206A_202C_206E_206B_202C_200C_206B_206E_202C_200F_202B_206F_202E_202E_200F_200D_206E_202A_202C_200E_200B_206A_200C_202C_206A_206D_200F_206F_206C_206B_206F_202E(IEnumerable P_0) - { - return P_0.GetEnumerator(); - } - - static object _206F_200F_200C_202D_202E_202A_202A_202C_200D_200D_206F_206E_206B_200C_200B_202C_206D_206A_206D_202D_202B_200E_206D_202B_200B_202C_206D_200D_202D_206A_206A_202C_202E_206D_206E_206B_200F_200B_206D_202B_202E(IEnumerator P_0) - { - return P_0.Current; - } - - static bool _200D_200F_200D_206F_200D_206D_202D_206E_200C_200F_202E_206D_206E_200C_200D_206A_200B_202B_202B_200E_202D_206E_200B_206D_200C_200D_200D_200B_202E_200B_202C_202C_200D_202C_200E_202E_200D_206E_206C_202A_202E(string P_0, string P_1) - { - return P_0 != P_1; - } - - static bool _206C_200E_200C_200C_206B_206A_202A_200E_206E_200F_202E_200B_202B_206C_206F_202C_202A_206E_206F_202A_206F_202A_200F_200B_206D_202D_200D_206B_202A_202B_202E_202B_202A_206B_206A_200E_202B_206E_206B_202C_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static bool _206F_200D_202B_206B_206C_206B_200C_202E_202B_206C_202E_200B_202A_200D_206A_202C_202D_202E_200D_202A_206F_200D_206E_202A_202A_202B_200E_206F_202A_200D_200E_200F_200D_202E_206F_200E_202C_202B_206F_202D_202E(string P_0, UriKind P_1, ref Uri P_2) - { - return Uri.TryCreate(P_0, P_1, out P_2); - } - - static string _200F_206B_206A_206D_202A_202E_200D_202E_206B_202C_200D_202A_206C_202A_202E_202B_202A_206A_202A_202B_206B_206D_200E_200C_206A_206D_202E_200E_206C_206D_206F_202D_206D_202A_206D_202E_202E_202E_200F_206E_202E(string P_0, char P_1) - { - return P_0.TrimEnd(P_1); - } - - static string _200B_206E_202A_200D_202B_202B_200C_206D_206D_202E_202C_206A_200C_202A_202E_206D_206A_200E_200B_200E_206B_206E_206F_206E_206F_206D_206E_200E_202C_202B_206C_200B_206D_206B_206F_206D_206D_200C_206E_206D_202E(Uri P_0) - { - return P_0.Host; - } - - static string _202B_206B_202E_202C_200D_202B_200C_202C_206B_206C_206E_200F_202C_206A_206A_200D_206B_206F_206F_200C_206D_200B_200D_202D_200E_206D_202D_200E_206A_202A_200C_202D_202C_202A_200E_202E_202D_202C_200F_206C_202E(Uri P_0) - { - return P_0.AbsolutePath; - } - - static string[] _206C_206C_206D_200D_202B_200E_206E_202A_202A_206E_206A_202A_206B_200D_200C_202D_206E_202C_206B_206C_206F_200B_202C_202C_206A_206A_202B_200E_200E_200F_200B_200F_206E_202E_206C_206D_206B_202E_206F_206E_202E(string P_0, char P_1, StringSplitOptions P_2) - { - return P_0.Split(P_1, P_2); - } - - static bool _200F_202A_200C_206C_200F_206E_202A_206B_200E_206C_202A_202A_202E_206F_202E_202A_200B_200D_206C_202C_206D_200C_206E_200E_206F_200D_206F_200F_200E_200C_202E_206A_206A_200D_202C_206D_202D_206E_200E_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.Equals(P_1, P_2); - } - - static UriBuilder _206B_200E_202B_202B_202A_202C_206B_200C_206A_206D_202B_202E_200D_202D_202C_206E_206C_202A_206A_206A_200D_200C_206A_200D_206A_202D_202C_206A_202B_206B_200C_200B_202E_202A_206D_202C_206A_200D_202D_206E_202E(Uri P_0) - { - return new UriBuilder(P_0); - } - - static string _202D_206B_202E_202B_202E_206F_206A_202C_202E_206E_206A_200B_202A_200D_200C_206C_202B_200B_200F_206E_206E_206A_206F_200B_206E_206A_206C_200F_206C_200B_206B_200E_206E_206E_200F_206C_206D_200D_200E_200C_202E(string P_0) - { - return P_0.ToLowerInvariant(); - } - - static void _206D_202A_206B_206F_206F_206F_202A_202A_206C_206A_202D_206B_206C_202D_200C_200D_202D_202B_202E_202A_200B_200D_206A_200C_202D_202B_206B_202E_200F_206F_200F_202E_206C_200C_206E_200E_200B_206E_200E_200E_202E(UriBuilder P_0, string P_1) - { - P_0.Host = P_1; - } - - static void _206D_202A_200C_200E_200D_200D_200C_206C_202C_200E_200C_206A_200E_202C_206A_202B_200E_200F_200F_206C_206D_206F_202C_206E_200C_202B_202A_200D_202C_200F_202B_206C_200D_206F_202B_202B_202E_200E_200E_206D_202E(UriBuilder P_0, string P_1) - { - P_0.Query = P_1; - } - - static void _202B_200E_202D_206D_200D_206B_206D_206D_202E_206E_200E_200C_202A_202D_200F_200B_202B_200D_206F_202B_202D_206F_202B_200B_200C_206C_202A_200D_200B_206F_206C_202D_200C_202D_206E_200C_202A_206B_200C_202C_202E(UriBuilder P_0, string P_1) - { - P_0.Fragment = P_1; - } - - static void _202E_200C_206F_206B_200F_200F_206D_206A_202B_202C_200E_200F_202E_206F_200F_200E_202C_200D_200F_206D_200F_200B_200D_200E_202D_202C_202D_206E_206B_202D_202E_202A_202B_200B_206E_200B_206F_202C_206A_200C_202E(UriBuilder P_0, string P_1) - { - P_0.Path = P_1; - } - - static Uri _206B_206D_200E_206E_200D_206C_202B_202E_202C_200F_206A_202D_200D_206A_206B_200D_206A_200E_202B_206D_200D_206F_202B_206F_200D_202B_206F_200E_206C_206D_200E_206E_202A_202B_202E_206E_206A_202D_200C_202B_202E(UriBuilder P_0) - { - return P_0.Uri; - } - - static string _200D_202D_200E_206E_200F_202D_202D_202C_202B_200D_200F_206A_202D_202D_200E_202E_206D_206A_200E_200F_206A_206F_202D_200D_200F_200E_206F_200B_202D_202B_206B_202A_202C_206B_200D_202A_202E_202D_206C_202A_202E(object P_0) - { - return P_0.ToString(); - } - - static object _206F_206C_202E_206D_200D_200F_202B_206F_200D_200E_202E_202B_206C_206B_202D_206D_206A_206A_206F_206B_200F_206E_206D_206A_200E_206F_206A_206A_206E_206B_206D_206D_200C_200C_200B_206C_202E_202D_200F_200F_202E(Type P_0) - { - return Activator.CreateInstance(P_0); - } - - static int _206B_206D_202C_206A_206A_206E_200B_206A_202A_206A_202B_206B_202E_202A_206D_206E_206A_206C_206B_206F_202B_206E_200C_206D_206F_202B_200D_202A_206E_206F_206B_206B_202C_200B_206A_202E_202C_200F_202D_206B_202E(IList P_0, object P_1) - { - return P_0.Add(P_1); - } - - static FieldInfo _206C_206F_200C_206B_202B_202C_200F_206A_200C_202A_206D_200F_206F_202D_206E_202C_202B_200C_202B_200C_202C_202D_202B_200B_200E_202D_202C_202A_200D_206E_206F_202B_200D_206A_200F_206F_206D_200D_200F_206A_202E(Type P_0, string P_1, BindingFlags P_2) - { - return P_0.GetField(P_1, P_2); - } - - static bool _200E_206D_200C_206B_202C_200D_206B_202A_206F_202C_206D_206D_200E_202D_202A_200E_202E_206D_206E_202A_206A_206A_206B_206A_202B_206A_202A_202C_206D_200C_200C_206A_202C_200F_200F_202D_202C_206A_202D_206A_202E(FieldInfo P_0, FieldInfo P_1) - { - return P_0 != P_1; - } - - static object _200B_200C_202B_200B_200F_206A_206B_202E_200F_206D_200B_202A_206D_202B_200D_206A_200B_200F_200B_206A_202D_202A_202C_206E_202A_206C_200C_206D_206D_202D_202D_206F_200C_202D_206C_200F_202B_202C_206F_200C_202E(FieldInfo P_0, object P_1) - { - return P_0.GetValue(P_1); - } - - static bool _206F_206C_202A_202A_200D_202C_206D_202B_200C_206A_200E_200B_200E_206E_202A_206A_206A_206A_206F_206C_200B_202C_202E_202E_206D_206D_206D_200C_202B_202A_202B_202A_200F_206F_200E_200E_202A_200D_206B_200D_202E(PropertyInfo P_0, PropertyInfo P_1) - { - return P_0 != P_1; - } - - static string _200B_200F_206F_200F_202C_206D_200C_206D_202C_200E_200B_200D_200C_206E_206A_200D_202E_206E_200F_202E_202A_206A_202B_200D_200F_202D_202D_206D_200F_200C_200D_200B_206B_200F_206E_202C_202D_200E_202B_202A_202E(Type P_0) - { - return P_0.FullName; - } - - static void _206F_206F_206A_202C_206A_202C_200E_200C_206D_200C_200B_200C_206F_206E_200F_200E_200B_206C_202A_206A_202B_200F_200D_202B_206B_202A_206D_206B_202B_206A_202D_202D_206C_202C_200E_200C_200F_200F_206F_202B_202E(FieldInfo P_0, object P_1, object P_2) - { - P_0.SetValue(P_1, P_2); - } - - static bool _200D_206E_200E_200E_202A_202D_202D_200C_200B_202D_200B_200B_200D_200F_206A_200B_202D_206F_206E_206E_200D_202E_202D_200C_202E_206A_206A_206D_200E_206F_200B_206A_206F_206F_202E_200D_202D_200E_200B_206B_202E(PropertyInfo P_0) - { - return P_0.CanWrite; - } - - static void _200F_206C_200E_206E_206F_206E_200F_200D_202C_206A_200C_206E_202C_206E_206B_206F_202A_202A_202E_202B_206E_206C_206F_206F_206E_206E_200D_206A_202C_206D_200E_206B_206E_200F_206E_206E_200B_200B_202D_202C_202E(PropertyInfo P_0, object P_1, object P_2) - { - P_0.SetValue(P_1, P_2); - } - - static MethodInfo _202C_202A_200E_200C_200D_202C_200C_206E_206B_206F_202C_202B_200B_200C_202C_206A_200E_206F_200D_200C_202E_206D_202C_206D_200D_200C_200F_200F_200C_200C_202E_200F_206E_202C_202C_206B_206E_202E_206D_206F_202E(Type P_0, string P_1, BindingFlags P_2) - { - return P_0.GetMethod(P_1, P_2); - } - - static object _200E_200D_202B_206D_202B_202D_202E_200F_206F_202E_200D_206A_202D_200B_202C_206F_206A_206A_202C_206F_202A_206C_206D_202B_202B_202A_206B_206E_206D_200B_200D_200C_200E_202C_206F_206B_202C_202B_202D_202D_202E(MethodBase P_0, object P_1, object[] P_2) - { - return P_0.Invoke(P_1, P_2); - } - - static bool _206A_206B_200D_202B_200F_206C_200D_206F_200B_206A_206D_202D_202B_206E_202D_206A_206E_206F_206B_206D_206E_202B_206C_206B_200F_206C_206B_200F_206D_200C_206E_206A_200D_200E_200C_206A_206D_206D_200B_200F_202E(PropertyInfo P_0, PropertyInfo P_1) - { - return P_0 == P_1; - } - - static void _200C_206D_206A_202D_202D_202C_206A_200D_206C_200D_206F_202D_206E_202B_200B_200E_202B_206D_206B_202B_206A_202A_206C_202A_206E_202A_202A_202A_202D_202A_206D_200F_202E_206B_202D_202E_200B_200B_200B_202C_202E(IPluginLog P_0, string P_1, object[] P_2) - { - P_0.Verbose(P_1, P_2); - } - - static int _200C_206D_200D_206E_200E_202D_200F_202B_200C_202E_206D_206D_200F_206D_206C_202B_202C_206E_206D_200E_206F_200F_202C_206A_200E_202C_202B_200C_206F_206B_200E_206B_202A_206B_206B_202E_202D_206F_202B_206E_202E(ref int P_0) - { - return Interlocked.Increment(ref P_0); - } - - static string _206D_200D_206E_200E_202E_200B_202B_206E_206B_200F_200F_202E_202A_200C_200E_202E_200E_202E_206D_202C_206A_200D_202A_206C_200B_202B_202A_202E_206F_206B_200D_200E_206D_206B_200F_206F_206A_206A_206C_206E_202E(MemberInfo P_0) - { - return P_0.Name; - } - - static Type _200D_200F_206A_206C_200B_200C_200B_206A_202C_200E_206F_202B_206B_200B_202E_206F_200D_206B_202C_202E_206C_200C_200D_200D_206C_206D_202E_200B_206E_200C_206A_200B_206A_206B_202E_200D_200D_202B_206E_206B_202E(Type P_0) - { - return P_0.BaseType; - } - - static string _200D_200B_202C_206F_200B_202C_206F_202A_200F_200E_206A_200B_202C_206E_202E_206E_200D_200C_202E_202E_202D_200F_206D_202A_200F_206D_206B_200C_206B_200B_206E_202A_200E_206F_206E_206D_206E_202A_206D_200D_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static void _206F_202C_206D_202B_202C_206C_200B_200E_206F_200C_206F_206E_202C_206A_206A_206B_206F_202C_200C_206C_200D_200D_202D_202E_202C_200E_202C_200B_202A_206E_202B_202C_206E_206D_206A_206E_206E_206E_202B_206E_202E(IPluginLog P_0, string P_1, object[] P_2) - { - P_0.Warning(P_1, P_2); - } } diff --git a/LLib/LLib/DataManagerExtensions.cs b/LLib/LLib/DataManagerExtensions.cs index 87f14b8..9036e1b 100644 --- a/LLib/LLib/DataManagerExtensions.cs +++ b/LLib/LLib/DataManagerExtensions.cs @@ -1,7 +1,5 @@ using System; -using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; using System.Text.RegularExpressions; using Dalamud.Plugin.Services; using Lumina.Excel; @@ -12,143 +10,9 @@ namespace LLib; public static class DataManagerExtensions { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<ReadOnlySePayload, string> _003C_003E9__7_0; - - public static Func<ReadOnlySePayload, string> _003C_003E9__8_0; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal string _003CToRegex_003Eb__7_0(ReadOnlySePayload payload) - { - int num = ((payload.Type != ReadOnlySePayloadType.Text) ? 653215038 : 653215037); - while (true) - { - int num2 = num; - int num3 = 653215036; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0049; - case 2: - return global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1401261324); - case 1: - return _206E_200E_202D_206D_206F_200E_202C_206B_206E_202E_200D_200E_200F_200F_202D_206F_200B_202B_200B_200E_202E_206C_200C_202E_206A_200C_202E_200D_200D_206C_206C_206D_202A_202D_200B_206C_200C_200E_202C_202E(payload.ToString()); - } - continue; - IL_0049: - num = 653215037; - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal string _003CWithCertainMacroCodeReplacements_003Eb__8_0(ReadOnlySePayload payload) - { - ReadOnlySePayloadType type = payload.Type; - int num = ((type == ReadOnlySePayloadType.Text) ? 665720307 : 665720306); - MacroCode macroCode = default(MacroCode); - string result = default(string); - string text = default(string); - while (true) - { - int num2 = num; - int num3 = 665720319; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 15: - macroCode = payload.MacroCode; - num = ((macroCode > MacroCode.SoftHyphen) ? 665720311 : 665720310); - break; - case 5: - return result; - case 10: - text = global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1220250632); - num = 665720312; - break; - case 18: - num = 665720306; - break; - case 17: - num = ((macroCode == MacroCode.Hyphen) ? 665720309 : 665720318); - break; - case 4: - text = payload.ToString(); - num = 665720312; - break; - case 14: - text = global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-581253858); - num = 665720312; - break; - case 0: - num = ((macroCode == MacroCode.SoftHyphen) ? 665720313 : 665720303); - break; - case 13: - num = ((type == ReadOnlySePayloadType.Macro) ? 665720304 : 665720308); - break; - case 12: - result = payload.ToString(); - num = 665720314; - break; - case 16: - num = 665720315; - break; - case 1: - num = 665720315; - break; - case 7: - result = text; - num = 665720314; - break; - case 6: - text = global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(336218591); - num = 665720312; - break; - case 8: - num = ((macroCode == MacroCode.NonBreakingSpace) ? 665720305 : 665720302); - break; - case 2: - text = _202A_200D_200D_202A_200B_200E_202E_202C_200D_202D_202B_200F_202C_206A_202D_202A_206B_206C_200D_206B_206A_206B_206E_202B_202B_206C_206F_202A_206B_202B_202C_206F_200F_202B_202B_200C_202E_200B_202D_202C_202E(); - num = 665720312; - break; - case 11: - num = 665720316; - break; - case 9: - num = ((macroCode == MacroCode.NewLine) ? 665720317 : 665720319); - break; - case 3: - result = payload.ToString(); - num = 665720314; - break; - } - } - } - - static string _206E_200E_202D_206D_206F_200E_202C_206B_206E_202E_200D_200E_200F_200F_202D_206F_200B_202B_200B_200E_202E_206C_200C_202E_206A_200C_202E_200D_200D_206C_206C_206D_202A_202D_200B_206C_200C_200E_202C_202E(string P_0) - { - return Regex.Escape(P_0); - } - - static string _202A_200D_200D_202A_200B_200E_202E_202C_200D_202D_202B_200F_202C_206A_202D_202A_206B_206C_200D_206B_206A_206B_206E_202B_202B_206C_206F_202A_206B_202B_202C_206F_200F_202B_202B_200C_202E_200B_202D_202C_202E() - { - return Environment.NewLine; - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public static ReadOnlySeString? GetSeString<T>(this IDataManager dataManager, string key) where T : struct, IQuestDialogueText, IExcelRow<T> { - _202A_202A_206D_206A_206B_202B_206E_206F_206F_206A_202B_202E_206A_202E_202A_206A_206A_202C_200D_206C_206E_202B_202B_206E_200E_200F_200F_202D_206E_202B_202C_200B_206E_206D_202D_200E_202E_206A_200B_202C_202E((object)dataManager, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(1058761074)); + ArgumentNullException.ThrowIfNull(dataManager, "dataManager"); return dataManager.GetExcelSheet<T>().Cast<T?>().FirstOrDefault((T? x) => x.Value.Key == key)?.Value; } @@ -160,56 +24,23 @@ public static class DataManagerExtensions public static Regex? GetRegex<T>(this IDataManager dataManager, string key, IPluginLog? pluginLog) where T : struct, IQuestDialogueText, IExcelRow<T> { ReadOnlySeString? seString = dataManager.GetSeString<T>(key); - int num = (seString.HasValue ? 532905786 : 532905785); - while (true) + if (!seString.HasValue) { - int num2 = num; - int num3 = 532905787; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0051; - case 1: - return seString.ToRegex(); - case 2: - return null; - } - continue; - IL_0051: - num = 532905785; + return null; } + return seString.ToRegex(); } - [MethodImpl(MethodImplOptions.NoInlining)] public static ReadOnlySeString? GetSeString<T>(this IDataManager dataManager, uint rowId, Func<T, ReadOnlySeString?> mapper) where T : struct, IExcelRow<T> { - _202A_202A_206D_206A_206B_202B_206E_206F_206F_206A_202B_202E_206A_202E_202A_206A_206A_202C_200D_206C_206E_202B_202B_206E_200E_200F_200F_202D_206E_202B_202C_200B_206E_206D_202D_200E_202E_206A_200B_202C_202E((object)dataManager, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1509101314)); - _202A_202A_206D_206A_206B_202B_206E_206F_206F_206A_202B_202E_206A_202E_202A_206A_206A_202C_200D_206C_206E_202B_202B_206E_200E_200F_200F_202D_206E_202B_202C_200B_206E_206D_202D_200E_202E_206A_200B_202C_202E((object)mapper, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1413795073)); + ArgumentNullException.ThrowIfNull(dataManager, "dataManager"); + ArgumentNullException.ThrowIfNull(mapper, "mapper"); T? rowOrDefault = dataManager.GetExcelSheet<T>().GetRowOrDefault(rowId); - int num = (rowOrDefault.HasValue ? 766901278 : 766901279); - while (true) + if (!rowOrDefault.HasValue) { - int num2 = num; - int num3 = 766901278; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0086; - case 1: - return null; - case 0: - return mapper(rowOrDefault.Value); - } - continue; - IL_0086: - num = 766901279; + return null; } + return mapper(rowOrDefault.Value); } public static string? GetString<T>(this IDataManager dataManager, uint rowId, Func<T, ReadOnlySeString?> mapper, IPluginLog? pluginLog = null) where T : struct, IExcelRow<T> @@ -220,188 +51,44 @@ public static class DataManagerExtensions public static Regex? GetRegex<T>(this IDataManager dataManager, uint rowId, Func<T, ReadOnlySeString?> mapper, IPluginLog? pluginLog = null) where T : struct, IExcelRow<T> { ReadOnlySeString? seString = dataManager.GetSeString(rowId, mapper); - int num = (seString.HasValue ? (-1910871313) : (-1910871316)); - while (true) + if (!seString.HasValue) { - int num2 = num; - int num3 = -1910871314; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return seString.ToRegex(); - case 2: - return null; - case 0: - goto IL_005b; - } - continue; - IL_005b: - num = -1910871316; + return null; } + return seString.ToRegex(); } - [MethodImpl(MethodImplOptions.NoInlining)] public static Regex? GetRegex<T>(this T excelRow, Func<T, ReadOnlySeString?> mapper, IPluginLog? pluginLog) where T : struct, IExcelRow<T> { - _202A_202A_206D_206A_206B_202B_206E_206F_206F_206A_202B_202E_206A_202E_202A_206A_206A_202C_200D_206C_206E_202B_202B_206E_200E_200F_200F_202D_206E_202B_202C_200B_206E_206D_202D_200E_202E_206A_200B_202C_202E((object)mapper, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(211367094)); + ArgumentNullException.ThrowIfNull(mapper, "mapper"); ReadOnlySeString? text = mapper(excelRow); - int num = (text.HasValue ? 995158761 : 995158762); - while (true) + if (!text.HasValue) { - int num2 = num; - int num3 = 995158760; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return text.ToRegex(); - case 2: - return null; - case 0: - goto IL_006a; - } - continue; - IL_006a: - num = 995158762; + return null; } + return text.ToRegex(); } - [MethodImpl(MethodImplOptions.NoInlining)] public static Regex ToRegex(this ReadOnlySeString? text) { - _202A_202A_206D_206A_206B_202B_206E_206F_206F_206A_202B_202E_206A_202E_202A_206A_206A_202C_200D_206C_206E_202B_202B_206E_200E_200F_200F_202D_206E_202B_202C_200B_206E_206D_202D_200E_202E_206A_200B_202C_202E((object)text, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(782807675)); - return _206B_202D_202E_202A_206F_206D_202D_200D_202C_200E_200D_200D_206D_200B_202C_206F_202E_202A_206B_202A_202A_202C_202D_200E_200D_202D_200B_206A_206F_206F_206F_206E_202B_206F_200D_200F_200C_202A_200F_202E_202E(_200D_206D_200E_206E_202B_200C_202A_200D_206A_202D_206C_206C_200E_206E_202D_202D_200F_206D_202A_202D_200D_200F_200F_202E_200D_206F_202B_206F_202D_206D_206C_200B_206A_202B_206F_202A_206C_200C_206C_200C_202E(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1158161199), text.Value.Select([MethodImpl(MethodImplOptions.NoInlining)] (ReadOnlySePayload payload) => - { - int num = ((payload.Type != ReadOnlySePayloadType.Text) ? 653215038 : 653215037); - while (true) - { - int num2 = num; - int num3 = 653215036; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0049; - case 2: - return global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1401261324); - case 1: - return _003C_003Ec._206E_200E_202D_206D_206F_200E_202C_206B_206E_202E_200D_200E_200F_200F_202D_206F_200B_202B_200B_200E_202E_206C_200C_202E_206A_200C_202E_200D_200D_206C_206C_206D_202A_202D_200B_206C_200C_200E_202C_202E(payload.ToString()); - } - continue; - IL_0049: - num = 653215037; - } - })), RegexOptions.Compiled); + ArgumentNullException.ThrowIfNull(text, "text"); + return new Regex(string.Join("", text.Value.Select((ReadOnlySePayload payload) => (payload.Type == ReadOnlySePayloadType.Text) ? Regex.Escape(payload.ToString()) : "(.*)")), RegexOptions.Compiled); } - [MethodImpl(MethodImplOptions.NoInlining)] public static string WithCertainMacroCodeReplacements(this ReadOnlySeString text) { - return _200D_206D_200E_206E_202B_200C_202A_200D_206A_202D_206C_206C_200E_206E_202D_202D_200F_206D_202A_202D_200D_200F_200F_202E_200D_206F_202B_206F_202D_206D_206C_200B_206A_202B_206F_202A_206C_200C_206C_200C_202E(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(336218591), text.Select([MethodImpl(MethodImplOptions.NoInlining)] (ReadOnlySePayload payload) => + return string.Join("", text.Select((ReadOnlySePayload payload) => payload.Type switch { - ReadOnlySePayloadType type = payload.Type; - int num = ((type == ReadOnlySePayloadType.Text) ? 665720307 : 665720306); - MacroCode macroCode = default(MacroCode); - string result = default(string); - string text2 = default(string); - while (true) + ReadOnlySePayloadType.Text => payload.ToString(), + ReadOnlySePayloadType.Macro => payload.MacroCode switch { - int num2 = num; - int num3 = 665720319; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 15: - macroCode = payload.MacroCode; - num = ((macroCode > MacroCode.SoftHyphen) ? 665720311 : 665720310); - break; - case 5: - return result; - case 10: - text2 = global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1220250632); - num = 665720312; - break; - case 18: - num = 665720306; - break; - case 17: - num = ((macroCode == MacroCode.Hyphen) ? 665720309 : 665720318); - break; - case 4: - text2 = payload.ToString(); - num = 665720312; - break; - case 14: - text2 = global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-581253858); - num = 665720312; - break; - case 0: - num = ((macroCode == MacroCode.SoftHyphen) ? 665720313 : 665720303); - break; - case 13: - num = ((type == ReadOnlySePayloadType.Macro) ? 665720304 : 665720308); - break; - case 12: - result = payload.ToString(); - num = 665720314; - break; - case 16: - num = 665720315; - break; - case 1: - num = 665720315; - break; - case 7: - result = text2; - num = 665720314; - break; - case 6: - text2 = global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(336218591); - num = 665720312; - break; - case 8: - num = ((macroCode == MacroCode.NonBreakingSpace) ? 665720305 : 665720302); - break; - case 2: - text2 = _003C_003Ec._202A_200D_200D_202A_200B_200E_202E_202C_200D_202D_202B_200F_202C_206A_202D_202A_206B_206C_200D_206B_206A_206B_206E_202B_202B_206C_206F_202A_206B_202B_202C_206F_200F_202B_202B_200C_202E_200B_202D_202C_202E(); - num = 665720312; - break; - case 11: - num = 665720316; - break; - case 9: - num = ((macroCode == MacroCode.NewLine) ? 665720317 : 665720319); - break; - case 3: - result = payload.ToString(); - num = 665720314; - break; - } - } + MacroCode.NewLine => Environment.NewLine, + MacroCode.NonBreakingSpace => " ", + MacroCode.Hyphen => "-", + MacroCode.SoftHyphen => "", + _ => payload.ToString(), + }, + _ => payload.ToString(), })); } - - static void _202A_202A_206D_206A_206B_202B_206E_206F_206F_206A_202B_202E_206A_202E_202A_206A_206A_202C_200D_206C_206E_202B_202B_206E_200E_200F_200F_202D_206E_202B_202C_200B_206E_206D_202D_200E_202E_206A_200B_202C_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static string _200D_206D_200E_206E_202B_200C_202A_200D_206A_202D_206C_206C_200E_206E_202D_202D_200F_206D_202A_202D_200D_200F_200F_202E_200D_206F_202B_206F_202D_206D_206C_200B_206A_202B_206F_202A_206C_200C_206C_200C_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); - } - - static Regex _206B_202D_202E_202A_206F_206D_202D_200D_202C_200E_200D_200D_206D_200B_202C_206F_202E_202A_206B_202A_202A_202C_202D_200E_200D_202D_200B_206A_206F_206F_206F_206E_202B_206F_200D_200F_200C_202A_200F_202E_202E(string P_0, RegexOptions P_1) - { - return new Regex(P_0, P_1); - } } diff --git a/LLib/LLib/PluginInstaller.cs b/LLib/LLib/PluginInstaller.cs index ac33438..1b3490b 100644 --- a/LLib/LLib/PluginInstaller.cs +++ b/LLib/LLib/PluginInstaller.cs @@ -1,9 +1,6 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Linq; -using System.Reflection; -using System.Runtime.CompilerServices; using System.Threading.Tasks; using Dalamud.Plugin; using Dalamud.Plugin.Services; @@ -12,280 +9,6 @@ namespace LLib; public sealed class PluginInstaller : IDisposable { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass12_0 - { - public string internalName; - - internal bool _003CTryInstall_003Eb__0(IExposedPlugin p) - { - return _200E_206C_206B_206D_202E_202E_200B_206E_206F_206A_206B_202B_200E_206A_200C_202A_206A_202A_200B_206C_206A_200C_202E_206B_202C_202B_206B_206B_206E_202A_206B_202B_206C_206D_206D_200F_202D_202D_202A_206D_202E(_200E_202E_202B_206F_206B_206F_202D_200E_206D_206D_206A_202A_202D_200B_200C_202D_200E_200B_200D_206C_200E_202E_206F_202D_202A_202D_200E_206E_200C_206B_200B_206D_200D_206C_200E_200F_200D_206B_200F_206E_202E(p), internalName); - } - - static string _200E_202E_202B_206F_206B_206F_202D_200E_206D_206D_206A_202A_202D_200B_200C_202D_200E_200B_200D_206C_200E_202E_206F_202D_202A_202D_200E_206E_200C_206B_200B_206D_200D_206C_200E_200F_200D_206B_200F_206E_202E(IExposedPlugin P_0) - { - return P_0.InternalName; - } - - static bool _200E_206C_206B_206D_202E_202E_200B_206E_206F_206A_206B_202B_200E_206A_200C_202A_206A_202A_200B_206C_206A_200C_202E_206B_202C_202B_206B_206B_206E_202A_206B_202B_206C_206D_206D_200F_202D_202D_202A_206D_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass13_0 - { - public string internalName; - - public string thirdPartyRepoUrl; - - public IReadOnlyList<string> aliases; - - internal bool _003CTryEnable_003Eb__0(IExposedPlugin p) - { - return _202D_200B_202B_202B_202E_200B_202C_200B_200C_206C_206E_206D_206C_206B_202A_202E_206C_202D_202D_200F_202D_200C_202E_200E_206D_206C_202D_202E_200E_206C_206A_200B_206F_202D_202E_202D_202B_206D_200E_206D_202E(_202E_202E_202A_206F_200C_200E_200F_200D_202A_200C_206E_200D_206F_206E_206E_200F_206B_202C_202B_206B_206C_202E_202E_202E_202B_206B_206E_200F_200E_206F_206C_206D_202E_202A_202B_202B_202E_206B_202B_202E_202E(p), internalName); - } - - internal bool _003CTryEnable_003Eb__1(IExposedPlugin p) - { - return MatchesRepo(p, thirdPartyRepoUrl, aliases); - } - - static string _202E_202E_202A_206F_200C_200E_200F_200D_202A_200C_206E_200D_206F_206E_206E_200F_206B_202C_202B_206B_206C_202E_202E_202E_202B_206B_206E_200F_200E_206F_206C_206D_202E_202A_202B_202B_202E_206B_202B_202E_202E(IExposedPlugin P_0) - { - return P_0.InternalName; - } - - static bool _202D_200B_202B_202B_202E_200B_202C_200B_200C_206C_206E_206D_206C_206B_202A_202E_206C_202D_202D_200F_202D_200C_202E_200E_206D_206C_202D_202E_200E_206C_206A_200B_206F_202D_202E_202D_202B_206D_200E_206D_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass14_0 - { - public PluginInstaller _003C_003E4__this; - - public PluginInstallState state; - - public string name; - - public string repoOrNull; - - public IReadOnlyList<string> aliases; - - public Func<IExposedPlugin, bool> _003C_003E9__1; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal void _003CDispose_003Eb__0(Task<bool> t) - { - try - { - int num = ((!_200E_200D_200C_202E_206F_200F_202B_206B_202C_200F_202E_200E_202C_206C_206B_206C_200F_200F_206F_206E_206C_200D_202B_202B_206B_206B_206E_206F_202D_200E_206B_200B_206F_206E_202A_200C_200F_200D_202A_202B_202E((Task)t)) ? 301551005 : 301551002); - while (true) - { - int num2 = num; - int num3 = 301551003; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 301551002; - break; - case 3: - num = ((!t.Result) ? 301551006 : 301551007); - break; - case 5: - if (_206E_202C_200E_200F_202B_206D_206C_200E_202B_206D_200E_206C_202D_206A_206B_206F_206E_206E_200C_206B_200B_206F_206D_202A_202B_202B_206C_202B_200D_202A_200F_200B_206F_206B_202A_200F_202E_206B_200B_206E_202E((Task)t)) - { - num = 301551001; - break; - } - state.Status = PluginInstallStatus.Failed; - state.ErrorMessage = global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(636778409); - return; - case 4: - state.Status = PluginInstallStatus.Succeeded; - state.ErrorMessage = null; - return; - case 1: - { - AggregateException ex = _206D_200E_206C_202C_202A_206C_202B_206A_202C_202B_206C_202D_206B_206B_206D_202E_200F_202D_200F_202A_200E_200F_200B_206E_206B_206E_200B_206D_202C_206F_200F_202B_206A_202B_202E_206D_202C_200E_202A_200C_202E((Task)t); - Exception ex2 = ((ex != null) ? _200C_202C_206A_206E_202E_200B_206F_200B_200E_206C_200B_200B_206F_206C_206D_200F_202A_202B_200E_200E_200C_200B_206E_206B_200D_206D_202C_200F_206C_206E_202D_206C_202B_206B_202C_200F_200C_202D_202E_206B_202E((Exception)ex) : null); - state.Status = PluginInstallStatus.Failed; - state.ErrorMessage = ((ex2 != null) ? _200C_200B_202E_200D_206C_200E_202E_200E_200B_202B_202C_206C_206C_200E_206E_206F_202E_200F_206A_206E_206F_200C_206C_202C_202E_200D_206F_206E_202D_202E_202C_202C_202E_202A_202D_200C_202C_206D_206C_206A_202E(ex2) : null) ?? global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(591139344); - _206E_206C_202D_202D_202D_200F_200B_200F_200B_200F_206C_200B_200D_202E_206C_206A_202C_200B_202E_206F_206B_206F_200D_206D_200C_206A_206E_200B_200D_200B_202B_206F_202A_202C_202A_206C_206A_200F_200E_202B_202E(_003C_003E4__this._log, ex2, _200B_206A_202A_202B_202E_202B_206F_200C_206C_206E_202C_200E_200D_206A_202B_200C_202B_206B_206A_206F_206A_200E_200B_202C_206D_200C_206F_206C_200D_206E_206B_202C_202D_206E_200C_202C_202A_206A_206F_202A_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1519518124), name, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-977292932)), Array.Empty<object>()); - return; - } - case 6: - num = ((!_206E_202C_200E_200F_202B_206D_206C_200E_202B_206D_200E_206C_202D_206A_206B_206F_206E_206E_200C_206B_200B_206F_206D_202A_202B_202B_206C_202B_200D_202A_200F_200B_206F_206B_202A_200F_202E_206B_200B_206E_202E((Task)t)) ? 301551006 : 301551000); - break; - case 2: - { - bool flag = false; - try - { - flag = _202A_200B_200C_200F_206B_200F_206B_206A_202A_202C_206B_206F_206E_200C_200E_200F_202E_202B_206A_200F_206D_202E_200C_206C_206C_202C_200B_206B_202A_200C_200C_206D_202D_200D_206B_206B_202E_200B_202B_202E(_003C_003E4__this._pluginInterface).Any(delegate(IExposedPlugin p) - { - int num7 = ((!_206B_206D_206D_206E_206A_206F_206A_202D_202B_202D_206A_202A_206E_200E_202C_200D_200F_202C_206D_202D_200C_206C_206A_206D_206C_202A_200E_206F_202B_200C_206F_202D_206A_206A_206B_202E_206A_206D_202C_202C_202E(_206E_200E_206C_202C_202C_206F_200E_200F_200F_202E_202E_202C_200E_202C_202C_206C_200C_200F_202A_202A_200B_206E_206E_206A_202C_200F_202B_202C_206C_202C_200B_202B_206D_200F_202A_202D_206A_202C_206C_202E_202E(p), name)) ? (-1300118370) : (-1300118369)); - while (true) - { - int num8 = num7; - int num9 = -1300118370; - int num10 = num8; - switch ((num10 | num9) - (num10 & num9)) - { - case 2: - goto IL_0051; - case 0: - return false; - case 1: - return MatchesRepo(p, repoOrNull, aliases); - } - continue; - IL_0051: - num7 = -1300118369; - } - }); - } - catch - { - } - state.Status = (flag ? PluginInstallStatus.Succeeded : PluginInstallStatus.Failed); - state.ErrorMessage = (flag ? null : global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-2084381224)); - return; - } - } - } - } - catch - { - state.Status = PluginInstallStatus.Failed; - state.ErrorMessage = global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1428532838); - } - } - - internal bool _003CDispose_003Eb__1(IExposedPlugin p) - { - int num = ((!_206B_206D_206D_206E_206A_206F_206A_202D_202B_202D_206A_202A_206E_200E_202C_200D_200F_202C_206D_202D_200C_206C_206A_206D_206C_202A_200E_206F_202B_200C_206F_202D_206A_206A_206B_202E_206A_206D_202C_202C_202E(_206E_200E_206C_202C_202C_206F_200E_200F_200F_202E_202E_202C_200E_202C_202C_206C_200C_200F_202A_202A_200B_206E_206E_206A_202C_200F_202B_202C_206C_202C_200B_202B_206D_200F_202A_202D_206A_202C_206C_202E_202E(p), name)) ? (-1300118370) : (-1300118369)); - while (true) - { - int num2 = num; - int num3 = -1300118370; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0051; - case 0: - return false; - case 1: - return MatchesRepo(p, repoOrNull, aliases); - } - continue; - IL_0051: - num = -1300118369; - } - } - - static bool _200E_200D_200C_202E_206F_200F_202B_206B_202C_200F_202E_200E_202C_206C_206B_206C_200F_200F_206F_206E_206C_200D_202B_202B_206B_206B_206E_206F_202D_200E_206B_200B_206F_206E_202A_200C_200F_200D_202A_202B_202E(Task P_0) - { - return P_0.IsFaulted; - } - - static AggregateException _206D_200E_206C_202C_202A_206C_202B_206A_202C_202B_206C_202D_206B_206B_206D_202E_200F_202D_200F_202A_200E_200F_200B_206E_206B_206E_200B_206D_202C_206F_200F_202B_206A_202B_202E_206D_202C_200E_202A_200C_202E(Task P_0) - { - return P_0.Exception; - } - - static Exception _200C_202C_206A_206E_202E_200B_206F_200B_200E_206C_200B_200B_206F_206C_206D_200F_202A_202B_200E_200E_200C_200B_206E_206B_200D_206D_202C_200F_206C_206E_202D_206C_202B_206B_202C_200F_200C_202D_202E_206B_202E(Exception P_0) - { - return P_0.GetBaseException(); - } - - static string _200C_200B_202E_200D_206C_200E_202E_200E_200B_202B_202C_206C_206C_200E_206E_206F_202E_200F_206A_206E_206F_200C_206C_202C_202E_200D_206F_206E_202D_202E_202C_202C_202E_202A_202D_200C_202C_206D_206C_206A_202E(Exception P_0) - { - return P_0.Message; - } - - static string _200B_206A_202A_202B_202E_202B_206F_200C_206C_206E_202C_200E_200D_206A_202B_200C_202B_206B_206A_206F_206A_200E_200B_202C_206D_200C_206F_206C_200D_206E_206B_202C_202D_206E_200C_202C_202A_206A_206F_202A_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static void _206E_206C_202D_202D_202D_200F_200B_200F_200B_200F_206C_200B_200D_202E_206C_206A_202C_200B_202E_206F_206B_206F_200D_206D_200C_206A_206E_200B_200D_200B_202B_206F_202A_202C_202A_206C_206A_200F_200E_202B_202E(IPluginLog P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.Error(P_1, P_2, P_3); - } - - static bool _206E_202C_200E_200F_202B_206D_206C_200E_202B_206D_200E_206C_202D_206A_206B_206F_206E_206E_200C_206B_200B_206F_206D_202A_202B_202B_206C_202B_200D_202A_200F_200B_206F_206B_202A_200F_202E_206B_200B_206E_202E(Task P_0) - { - return P_0.IsCompletedSuccessfully; - } - - static IEnumerable<IExposedPlugin> _202A_200B_200C_200F_206B_200F_206B_206A_202A_202C_206B_206F_206E_200C_200E_200F_202E_202B_206A_200F_206D_202E_200C_206C_206C_202C_200B_206B_202A_200C_200C_206D_202D_200D_206B_206B_202E_200B_202B_202E(IDalamudPluginInterface P_0) - { - return P_0.InstalledPlugins; - } - - static string _206E_200E_206C_202C_202C_206F_200E_200F_200F_202E_202E_202C_200E_202C_202C_206C_200C_200F_202A_202A_200B_206E_206E_206A_202C_200F_202B_202C_206C_202C_200B_202B_206D_200F_202A_202D_206A_202C_206C_202E_202E(IExposedPlugin P_0) - { - return P_0.InternalName; - } - - static bool _206B_206D_206D_206E_206A_206F_206A_202D_202B_202D_206A_202A_206E_200E_202C_200D_200F_202C_206D_202D_200C_206C_206A_206D_206C_202A_200E_206F_202B_200C_206F_202D_206A_206A_206B_202E_206A_206D_202C_202C_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass15_0 - { - public string name; - - public string repoOrNull; - - public IReadOnlyList<string> aliases; - - internal bool _003COnFrameworkUpdate_003Eb__0(IExposedPlugin p) - { - int num = ((!_202B_206F_206F_200E_202D_200F_200C_206D_202D_200D_206B_202E_200D_206D_200E_206D_200C_202B_200C_200B_200B_206D_200B_200C_206D_202A_200C_200C_206C_206B_206E_202D_206C_206A_200E_206A_202E_202B_206E_202A_202E(_200E_202B_202A_206A_202E_202C_200C_206E_202B_206F_200C_200B_206B_206B_202E_202A_206C_200B_206D_206F_200B_206A_202B_206F_206B_200F_202D_200E_202A_206D_206F_200C_206A_200F_200C_200E_206F_206D_206B_206A_202E(p), name)) ? 1406489619 : 1406489616); - while (true) - { - int num2 = num; - int num3 = 1406489617; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0051; - case 2: - return false; - case 1: - return MatchesRepo(p, repoOrNull, aliases); - } - continue; - IL_0051: - num = 1406489616; - } - } - - static string _200E_202B_202A_206A_202E_202C_200C_206E_202B_206F_200C_200B_206B_206B_202E_202A_206C_200B_206D_206F_200B_206A_202B_206F_206B_200F_202D_200E_202A_206D_206F_200C_206A_200F_200C_200E_206F_206D_206B_206A_202E(IExposedPlugin P_0) - { - return P_0.InternalName; - } - - static bool _202B_206F_206F_200E_202D_200F_200C_206D_202D_200D_206B_202E_200D_206D_200E_206D_200C_202B_200C_200B_200B_206D_200B_200C_206D_202A_200C_200C_206C_206B_206E_202D_206C_206A_200E_206A_202E_202B_206E_202A_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - } - private readonly DalamudReflector _reflector; private readonly IFramework _framework; @@ -304,13 +27,12 @@ public sealed class PluginInstaller : IDisposable public bool IsAnyInstallInProgress => _currentOperation.HasValue; - [MethodImpl(MethodImplOptions.NoInlining)] public PluginInstaller(DalamudReflector reflector, IFramework framework, IPluginLog log, IDalamudPluginInterface pluginInterface) { - _206D_202C_200F_200F_202A_206B_206B_206E_200F_206E_202B_200C_202D_200F_206E_202C_206E_202D_200F_202D_200C_206F_206F_206E_206C_202A_200B_200F_202A_202D_200B_206C_206E_200E_200C_202A_206D_202B_206A_200D_202E((object)reflector, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(657626286)); - _206D_202C_200F_200F_202A_206B_206B_206E_200F_206E_202B_200C_202D_200F_206E_202C_206E_202D_200F_202D_200C_206F_206F_206E_206C_202A_200B_200F_202A_202D_200B_206C_206E_200E_200C_202A_206D_202B_206A_200D_202E((object)framework, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1938330958)); - _206D_202C_200F_200F_202A_206B_206B_206E_200F_206E_202B_200C_202D_200F_206E_202C_206E_202D_200F_202D_200C_206F_206F_206E_206C_202A_200B_200F_202A_202D_200B_206C_206E_200E_200C_202A_206D_202B_206A_200D_202E((object)log, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1367271174)); - _206D_202C_200F_200F_202A_206B_206B_206E_200F_206E_202B_200C_202D_200F_206E_202C_206E_202D_200F_202D_200C_206F_206F_206E_206C_202A_200B_200F_202A_202D_200B_206C_206E_200E_200C_202A_206D_202B_206A_200D_202E((object)pluginInterface, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(766607579)); + ArgumentNullException.ThrowIfNull(reflector, "reflector"); + ArgumentNullException.ThrowIfNull(framework, "framework"); + ArgumentNullException.ThrowIfNull(log, "log"); + ArgumentNullException.ThrowIfNull(pluginInterface, "pluginInterface"); _reflector = reflector; _framework = framework; _log = log; @@ -320,432 +42,187 @@ public sealed class PluginInstaller : IDisposable public PluginInstallState GetState(string internalName, string? thirdPartyRepoUrl) { (string, string) key = (internalName, thirdPartyRepoUrl ?? string.Empty); - PluginInstallState value; - int num = (_states.TryGetValue(key, out value) ? (-539873295) : (-539873294)); - while (true) + if (!_states.TryGetValue(key, out PluginInstallState value)) { - int num2 = num; - int num3 = -539873296; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -539873294; - break; - case 2: - value = new PluginInstallState(); - _states[key] = value; - num = -539873295; - break; - case 1: - return value; - } + value = new PluginInstallState(); + _states[key] = value; } + return value; } - [MethodImpl(MethodImplOptions.NoInlining)] public bool TryInstall(string internalName, string? thirdPartyRepoUrl, IReadOnlyList<string>? aliases = null) { - int num = ((!_currentOperation.HasValue) ? (-1204487385) : (-1204487387)); - PluginInstallState state = default(PluginInstallState); - IExposedPlugin exposedPlugin = default(IExposedPlugin); - while (true) + if (_currentOperation.HasValue) { - int num2 = num; - int num3 = -1204487391; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1204487387; - break; - case 5: - return true; - case 6: - state = GetState(internalName, thirdPartyRepoUrl); - exposedPlugin = _206B_202B_202E_200D_200D_202B_202C_200E_202E_202D_200E_206A_206E_202B_200E_200D_202D_200C_206D_200F_200F_202E_200E_202E_202B_202E_202A_206A_206F_206D_202E_206F_202C_200D_206E_200F_206A_206D_202E_200C_202E(_pluginInterface).FirstOrDefault((IExposedPlugin p) => _003C_003Ec__DisplayClass12_0._200E_206C_206B_206D_202E_202E_200B_206E_206F_206A_206B_202B_200E_206A_200C_202A_206A_202A_200B_206C_206A_200C_202E_206B_202C_202B_206B_206B_206E_202A_206B_202B_206C_206D_206D_200F_202D_202D_202A_206D_202E(_003C_003Ec__DisplayClass12_0._200E_202E_202B_206F_206B_206F_202D_200E_206D_206D_206A_202A_202D_200B_200C_202D_200E_200B_200D_206C_200E_202E_206F_202D_202A_202D_200E_206E_200C_206B_200B_206D_200D_206C_200E_200F_200D_206B_200F_206E_202E(p), internalName)); - num = ((exposedPlugin == null) ? (-1204487389) : (-1204487392)); - break; - case 3: - _202A_200C_200E_200E_200F_206B_206E_202C_200D_200B_206F_206E_206C_200B_202C_200C_200B_206F_202D_206D_202D_200D_206E_202A_202B_206A_200B_200E_206A_202D_202A_206A_206B_206E_206D_200F_206F_200C_202A_200F_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkUpdate); - _frameworkHooked = true; - num = -1204487388; - break; - case 2: - state.Status = PluginInstallStatus.InProgress; - state.ErrorMessage = null; - _currentOperation = (internalName, thirdPartyRepoUrl ?? string.Empty, aliases); - _installTask = _reflector.AddPluginAsync(internalName, thirdPartyRepoUrl, aliases); - num = (_frameworkHooked ? (-1204487388) : (-1204487390)); - break; - case 4: - return false; - case 1: - state.Status = PluginInstallStatus.Failed; - state.ErrorMessage = (_200B_206A_202C_206D_206C_200D_200E_206E_200D_202C_200C_206D_202C_206A_202C_206D_202D_200E_202E_206B_200B_202B_200E_200E_206B_200C_200B_206C_202B_200D_206B_206C_206F_206D_202C_206E_202A_202E_206F_206F_202E(exposedPlugin) ? global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(879990026) : global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-776183824)); - return false; - } + return false; } + PluginInstallState state = GetState(internalName, thirdPartyRepoUrl); + IExposedPlugin exposedPlugin = _pluginInterface.InstalledPlugins.FirstOrDefault((IExposedPlugin p) => p.InternalName == internalName); + if (exposedPlugin != null) + { + state.Status = PluginInstallStatus.Failed; + state.ErrorMessage = (exposedPlugin.IsLoaded ? "Already installed and loaded" : "Already installed but disabled - use Enable instead"); + return false; + } + state.Status = PluginInstallStatus.InProgress; + state.ErrorMessage = null; + _currentOperation = (internalName, thirdPartyRepoUrl ?? string.Empty, aliases); + _installTask = _reflector.AddPluginAsync(internalName, thirdPartyRepoUrl, aliases); + if (!_frameworkHooked) + { + _framework.Update += OnFrameworkUpdate; + _frameworkHooked = true; + } + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public bool TryEnable(string internalName, string? thirdPartyRepoUrl, IReadOnlyList<string>? aliases = null) { - int num = ((!_currentOperation.HasValue) ? (-1761587597) : (-1761587599)); - PluginInstallState state = default(PluginInstallState); - List<IExposedPlugin> list = default(List<IExposedPlugin>); - IExposedPlugin exposedPlugin = default(IExposedPlugin); - while (true) + if (_currentOperation.HasValue) { - int num2 = num; - int num3 = -1761587600; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - object obj; - switch (num5 - (num6 + num6)) - { - case 0: - return true; - case 6: - _202A_200C_200E_200E_200F_206B_206E_202C_200D_200B_206F_206E_206C_200B_202C_200C_200B_206F_202D_206D_202D_200D_206E_202A_202B_206A_200B_200E_206A_202D_202A_206A_206B_206E_206D_200F_206F_200C_202A_200F_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkUpdate); - _frameworkHooked = true; - num = -1761587600; - break; - case 7: - state.Status = PluginInstallStatus.Succeeded; - state.ErrorMessage = null; - return false; - case 10: - num = -1761587599; - break; - case 2: - state.Status = PluginInstallStatus.Failed; - state.ErrorMessage = ((list.Count == 0) ? global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-1598187262) : global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(94861650)); - return false; - case 8: - obj = list[0]; - goto IL_0113; - case 9: - state.Status = PluginInstallStatus.InProgress; - state.ErrorMessage = null; - _currentOperation = (internalName, thirdPartyRepoUrl ?? string.Empty, aliases); - _installTask = _reflector.EnablePluginAsync(internalName, thirdPartyRepoUrl, aliases); - num = (_frameworkHooked ? (-1761587600) : (-1761587594)); - break; - case 5: - num = ((!_200B_206A_202C_206D_206C_200D_200E_206E_200D_202C_200C_206D_202C_206A_202C_206D_202D_200E_202E_206B_200B_202B_200E_200E_206B_200C_200B_206C_202B_200D_206B_206C_206F_206D_202C_206E_202A_202E_206F_206F_202E(exposedPlugin)) ? (-1761587591) : (-1761587593)); - break; - case 3: - state = GetState(internalName, thirdPartyRepoUrl); - list = (from p in _206B_202B_202E_200D_200D_202B_202C_200E_202E_202D_200E_206A_206E_202B_200E_200D_202D_200C_206D_200F_200F_202E_200E_202E_202B_202E_202A_206A_206F_206D_202E_206F_202C_200D_206E_200F_206A_206D_202E_200C_202E(_pluginInterface) - where _003C_003Ec__DisplayClass13_0._202D_200B_202B_202B_202E_200B_202C_200B_200C_206C_206E_206D_206C_206B_202A_202E_206C_202D_202D_200F_202D_200C_202E_200E_206D_206C_202D_202E_200E_206C_206A_200B_206F_202D_202E_202D_202B_206D_200E_206D_202E(_003C_003Ec__DisplayClass13_0._202E_202E_202A_206F_200C_200E_200F_200D_202A_200C_206E_200D_206F_206E_206E_200F_206B_202C_202B_206B_206C_202E_202E_202E_202B_206B_206E_200F_200E_206F_206C_206D_202E_202A_202B_202B_202E_206B_202B_202E_202E(p), internalName) - select p).ToList(); - obj = list.FirstOrDefault((IExposedPlugin p) => MatchesRepo(p, thirdPartyRepoUrl, aliases)); - if (obj == null) - { - num = ((list.Count == 1) ? (-1761587592) : (-1761587596)); - break; - } - goto IL_0113; - case 1: - return false; - case 4: - { - obj = null; - goto IL_0113; - } - IL_0113: - exposedPlugin = (IExposedPlugin)obj; - num = ((exposedPlugin != null) ? (-1761587595) : (-1761587598)); - break; - } + return false; } + PluginInstallState state = GetState(internalName, thirdPartyRepoUrl); + List<IExposedPlugin> list = _pluginInterface.InstalledPlugins.Where((IExposedPlugin p) => p.InternalName == internalName).ToList(); + IExposedPlugin exposedPlugin = list.FirstOrDefault((IExposedPlugin p) => MatchesRepo(p, thirdPartyRepoUrl, aliases)) ?? ((list.Count == 1) ? list[0] : null); + if (exposedPlugin == null) + { + state.Status = PluginInstallStatus.Failed; + state.ErrorMessage = ((list.Count == 0) ? "Not installed - nothing to enable" : "Multiple installed copies and none match the expected repo"); + return false; + } + if (exposedPlugin.IsLoaded) + { + state.Status = PluginInstallStatus.Succeeded; + state.ErrorMessage = null; + return false; + } + state.Status = PluginInstallStatus.InProgress; + state.ErrorMessage = null; + _currentOperation = (internalName, thirdPartyRepoUrl ?? string.Empty, aliases); + _installTask = _reflector.EnablePluginAsync(internalName, thirdPartyRepoUrl, aliases); + if (!_frameworkHooked) + { + _framework.Update += OnFrameworkUpdate; + _frameworkHooked = true; + } + return true; } public void Dispose() { Task<bool> installTask = _installTask; (string, string, IReadOnlyList<string>)? currentOperation = _currentOperation; - int num = ((installTask == null) ? 1286770811 : 1286770810); - string name; - IReadOnlyList<string> aliases; - string repoOrNull; - PluginInstallState state; - while (true) + if (installTask != null && currentOperation.HasValue) { - int num2 = num; - int num3 = 1286770811; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + (string, string, IReadOnlyList<string>) value = currentOperation.Value; + string name = value.Item1; + string item = value.Item2; + IReadOnlyList<string> aliases = value.Item3; + string repoOrNull = ((item.Length == 0) ? null : item); + PluginInstallState state = GetState(name, repoOrNull); + installTask.ContinueWith(delegate(Task<bool> t) { - case 3: - num = 1286770810; - break; - case 0: - ClearCurrent(); - return; - case 1: - num = ((!currentOperation.HasValue) ? 1286770811 : 1286770809); - break; - case 2: - { - (string, string, IReadOnlyList<string>) value = currentOperation.Value; - name = value.Item1; - string item = value.Item2; - aliases = value.Item3; - repoOrNull = ((_202A_200D_206F_200D_206E_202C_206D_200D_202E_206B_206E_202A_200E_206C_200F_206F_202A_202E_206C_202A_202C_200F_206A_206A_202B_200E_200F_200B_202B_202E_206B_200F_202D_202E_200E_200E_206C_202C_200B_200E_202E(item) == 0) ? null : item); - state = GetState(name, repoOrNull); - installTask.ContinueWith([MethodImpl(MethodImplOptions.NoInlining)] (Task<bool> t) => + try { - try + if (t.IsFaulted) { - int num7 = ((!_003C_003Ec__DisplayClass14_0._200E_200D_200C_202E_206F_200F_202B_206B_202C_200F_202E_200E_202C_206C_206B_206C_200F_200F_206F_206E_206C_200D_202B_202B_206B_206B_206E_206F_202D_200E_206B_200B_206F_206E_202A_200C_200F_200D_202A_202B_202E((Task)t)) ? 301551005 : 301551002); - while (true) - { - int num8 = num7; - int num9 = 301551003; - int num10 = num8; - int num11 = num10 + num9; - int num12 = num10 & num9; - switch (num11 - (num12 + num12)) - { - case 0: - num7 = 301551002; - break; - case 3: - num7 = ((!t.Result) ? 301551006 : 301551007); - break; - case 5: - if (!_003C_003Ec__DisplayClass14_0._206E_202C_200E_200F_202B_206D_206C_200E_202B_206D_200E_206C_202D_206A_206B_206F_206E_206E_200C_206B_200B_206F_206D_202A_202B_202B_206C_202B_200D_202A_200F_200B_206F_206B_202A_200F_202E_206B_200B_206E_202E((Task)t)) - { - state.Status = PluginInstallStatus.Failed; - state.ErrorMessage = global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(636778409); - return; - } - num7 = 301551001; - break; - case 4: - state.Status = PluginInstallStatus.Succeeded; - state.ErrorMessage = null; - return; - case 1: - { - AggregateException ex = _003C_003Ec__DisplayClass14_0._206D_200E_206C_202C_202A_206C_202B_206A_202C_202B_206C_202D_206B_206B_206D_202E_200F_202D_200F_202A_200E_200F_200B_206E_206B_206E_200B_206D_202C_206F_200F_202B_206A_202B_202E_206D_202C_200E_202A_200C_202E((Task)t); - Exception ex2 = ((ex != null) ? _003C_003Ec__DisplayClass14_0._200C_202C_206A_206E_202E_200B_206F_200B_200E_206C_200B_200B_206F_206C_206D_200F_202A_202B_200E_200E_200C_200B_206E_206B_200D_206D_202C_200F_206C_206E_202D_206C_202B_206B_202C_200F_200C_202D_202E_206B_202E((Exception)ex) : null); - state.Status = PluginInstallStatus.Failed; - state.ErrorMessage = ((ex2 != null) ? _003C_003Ec__DisplayClass14_0._200C_200B_202E_200D_206C_200E_202E_200E_200B_202B_202C_206C_206C_200E_206E_206F_202E_200F_206A_206E_206F_200C_206C_202C_202E_200D_206F_206E_202D_202E_202C_202C_202E_202A_202D_200C_202C_206D_206C_206A_202E(ex2) : null) ?? global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(591139344); - _003C_003Ec__DisplayClass14_0._206E_206C_202D_202D_202D_200F_200B_200F_200B_200F_206C_200B_200D_202E_206C_206A_202C_200B_202E_206F_206B_206F_200D_206D_200C_206A_206E_200B_200D_200B_202B_206F_202A_202C_202A_206C_206A_200F_200E_202B_202E(_log, ex2, _003C_003Ec__DisplayClass14_0._200B_206A_202A_202B_202E_202B_206F_200C_206C_206E_202C_200E_200D_206A_202B_200C_202B_206B_206A_206F_206A_200E_200B_202C_206D_200C_206F_206C_200D_206E_206B_202C_202D_206E_200C_202C_202A_206A_206F_202A_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(1519518124), name, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(-977292932)), Array.Empty<object>()); - return; - } - case 6: - num7 = ((!_003C_003Ec__DisplayClass14_0._206E_202C_200E_200F_202B_206D_206C_200E_202B_206D_200E_206C_202D_206A_206B_206F_206E_206E_200C_206B_200B_206F_206D_202A_202B_202B_206C_202B_200D_202A_200F_200B_206F_206B_202A_200F_202E_206B_200B_206E_202E((Task)t)) ? 301551006 : 301551000); - break; - case 2: - { - bool flag = false; - try - { - flag = _003C_003Ec__DisplayClass14_0._202A_200B_200C_200F_206B_200F_206B_206A_202A_202C_206B_206F_206E_200C_200E_200F_202E_202B_206A_200F_206D_202E_200C_206C_206C_202C_200B_206B_202A_200C_200C_206D_202D_200D_206B_206B_202E_200B_202B_202E(_pluginInterface).Any(delegate(IExposedPlugin p) - { - int num13 = ((!_003C_003Ec__DisplayClass14_0._206B_206D_206D_206E_206A_206F_206A_202D_202B_202D_206A_202A_206E_200E_202C_200D_200F_202C_206D_202D_200C_206C_206A_206D_206C_202A_200E_206F_202B_200C_206F_202D_206A_206A_206B_202E_206A_206D_202C_202C_202E(_003C_003Ec__DisplayClass14_0._206E_200E_206C_202C_202C_206F_200E_200F_200F_202E_202E_202C_200E_202C_202C_206C_200C_200F_202A_202A_200B_206E_206E_206A_202C_200F_202B_202C_206C_202C_200B_202B_206D_200F_202A_202D_206A_202C_206C_202E_202E(p), name)) ? (-1300118370) : (-1300118369)); - while (true) - { - int num14 = num13; - int num15 = -1300118370; - int num16 = num14; - switch ((num16 | num15) - (num16 & num15)) - { - case 2: - goto IL_0051; - case 0: - return false; - case 1: - return MatchesRepo(p, repoOrNull, aliases); - } - continue; - IL_0051: - num13 = -1300118369; - } - }); - } - catch - { - } - state.Status = (flag ? PluginInstallStatus.Succeeded : PluginInstallStatus.Failed); - state.ErrorMessage = (flag ? null : global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-2084381224)); - return; - } - } - } + Exception ex = t.Exception?.GetBaseException(); + state.Status = PluginInstallStatus.Failed; + state.ErrorMessage = ex?.Message ?? "Unknown error"; + _log.Error(ex, "[PluginInstaller] Operation on " + name + " failed after dispose"); } - catch + else if (t.IsCompletedSuccessfully && t.Result) + { + state.Status = PluginInstallStatus.Succeeded; + state.ErrorMessage = null; + } + else if (t.IsCompletedSuccessfully) + { + bool flag = false; + try + { + flag = _pluginInterface.InstalledPlugins.Any((IExposedPlugin p) => p.InternalName == name && MatchesRepo(p, repoOrNull, aliases)); + } + catch + { + } + state.Status = (flag ? PluginInstallStatus.Succeeded : PluginInstallStatus.Failed); + state.ErrorMessage = (flag ? null : "Dalamud rejected the operation (see /xllog)"); + } + else { state.Status = PluginInstallStatus.Failed; - state.ErrorMessage = global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1428532838); + state.ErrorMessage = "Operation was cancelled"; } - }, _200D_200D_206B_200F_200F_200D_206C_200D_200D_202B_206F_200B_202B_202B_202A_200F_206B_202B_206B_202C_200B_200D_206A_206A_202B_200B_202D_206F_200C_200C_202D_200C_202D_200B_202D_202A_206D_206E_202D_202A_202E()); - num = 1286770811; - break; - } - } + } + catch + { + state.Status = PluginInstallStatus.Failed; + state.ErrorMessage = "Operation outcome could not be determined after dispose"; + } + }, TaskScheduler.Default); } + ClearCurrent(); } - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] private void OnFrameworkUpdate(IFramework framework) { Task<bool> installTask = _installTask; (string, string, IReadOnlyList<string>)? currentOperation = _currentOperation; - int num = ((installTask == null) ? (-20087938) : (-20087941)); - Exception ex2 = default(Exception); - string name = default(string); - IReadOnlyList<string> aliases = default(IReadOnlyList<string>); - string repoOrNull = default(string); - PluginInstallState state = default(PluginInstallState); - while (true) + if (installTask == null || !currentOperation.HasValue || !installTask.IsCompleted) { - int num2 = num; - int num3 = -20087938; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - object obj; - string errorMessage; - switch (num5 - (num6 + num6)) - { - case 6: - num = -20087941; - break; - case 7: - obj = _202E_206A_200F_206A_206B_200D_202D_202D_206A_202E_200E_206D_200E_202B_206C_206C_202A_200B_206E_206D_202D_206C_200F_202A_200C_206E_206F_200C_206A_206D_200C_202D_206B_206D_200D_202E_200C_206F_200D_202C_202E(ex2); - goto IL_008f; - case 0: - return; - case 8: - obj = null; - goto IL_008f; - case 9: - num = (_206B_206F_206E_206A_200D_202B_200B_202D_206E_200E_202B_200D_200E_200D_202C_202E_206D_206C_202E_200D_200E_202D_202B_200E_202E_202C_206C_206B_202B_206B_200E_200F_206B_206E_206D_200B_202E_206E_206A_206B_202E((Task)installTask) ? (-20087942) : (-20087939)); - break; - case 4: - { - (string, string, IReadOnlyList<string>) value = currentOperation.Value; - name = value.Item1; - string item = value.Item2; - aliases = value.Item3; - repoOrNull = ((_202A_200D_206F_200D_206E_202C_206D_200D_202E_206B_206E_202A_200E_206C_200F_206F_202A_202E_206C_202A_202C_200F_206A_206A_202B_200E_200F_200B_202B_202E_206B_200F_202D_202E_200E_200E_206C_202C_200B_200E_202E(item) == 0) ? null : item); - state = GetState(name, repoOrNull); - num = ((!_202D_202D_202D_202B_206B_200D_202E_200C_202E_202D_200F_200B_202B_200E_206F_206C_206F_202D_200D_200F_202C_202B_200B_200D_202E_202A_202A_202D_200B_206B_200B_206B_202B_206A_200C_200E_200B_200E_200E_200C_202E((Task)installTask)) ? (-20087937) : (-20087940)); - break; - } - case 3: - return; - case 2: - { - AggregateException ex3 = _202B_202C_202E_200E_206A_202C_200C_206F_206F_206E_200D_200B_206D_206B_202C_202D_206C_202A_206D_202B_206D_202C_202C_202A_202A_200F_200C_200D_206D_200F_202B_200E_200E_206E_202C_206F_202E_206A_202B_206E_202E((Task)installTask); - ex2 = ((ex3 != null) ? _202D_200B_200C_202D_206A_202D_200C_202E_202A_200F_200B_200D_206B_200B_206B_200B_200E_206A_200D_200B_202B_206C_200E_202D_206B_202E_200B_202B_202C_202D_206A_200D_206A_200F_200B_206C_206F_206D_202A_206E_202E((Exception)ex3) : null); - num = ((ex2 != null) ? (-20087943) : (-20087946)); - break; - } - case 5: - num = (currentOperation.HasValue ? (-20087945) : (-20087938)); - break; - case 1: - { - bool result; - try - { - result = installTask.Result; - } - catch (Exception ex) - { - _200D_206A_202C_200C_202B_200F_202E_200B_202C_206B_200F_200B_206F_206F_200C_200D_206A_202C_202D_202D_206D_200C_200C_206C_202D_200F_200E_200F_206B_200F_200C_206E_200B_206C_202B_202B_200E_206E_206E_206B_202E(_log, ex, _202E_200C_200C_200C_200D_200B_206E_206B_206A_202D_200D_202C_206D_202E_202E_206F_206E_206F_202A_202E_202C_206C_206D_206A_202E_200B_206E_200F_200C_200E_202E_202E_200C_202D_202A_202B_202E_202A_202A_202E(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(154304713), name, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1085586749)), Array.Empty<object>()); - state.Status = PluginInstallStatus.Failed; - state.ErrorMessage = _202E_206A_200F_206A_206B_200D_202D_202D_206A_202E_200E_206D_200E_202B_206C_206C_202A_200B_206E_206D_202D_206C_200F_202A_200C_206E_206F_200C_206A_206D_200C_202D_206B_206D_200D_202E_200C_206F_200D_202C_202E(ex); - ClearCurrent(); - return; - } - num = ((!result) ? (-2093940265) : (-2093940272)); - while (true) - { - int num7 = num; - num3 = -2093940269; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -2093940272; - break; - case 2: - _206F_202D_206B_202B_206D_206F_206A_206F_206D_200C_200B_206E_206B_200F_200D_206B_200C_200C_206E_202C_202D_200E_206B_202A_200C_200E_202D_202B_206A_200F_206F_202B_200B_206D_206C_206D_200E_206B_206E_202D_202E(_log, _202E_200C_200C_200C_200D_200B_206E_206B_206A_202D_200D_202C_206D_202E_202E_206F_206E_206F_202A_202E_202C_206C_206D_206A_202E_200B_206E_200F_200C_200E_202E_202E_200C_202D_202A_202B_202E_202A_202A_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1975449291), name, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(66532366)), Array.Empty<object>()); - state.Status = PluginInstallStatus.Succeeded; - state.ErrorMessage = null; - ClearCurrent(); - return; - case 4: - num = ((!_206B_202B_202E_200D_200D_202B_202C_200E_202E_202D_200E_206A_206E_202B_200E_200D_202D_200C_206D_200F_200F_202E_200E_202E_202B_202E_202A_206A_206F_206D_202E_206F_202C_200D_206E_200F_206A_206D_202E_200C_202E(_pluginInterface).Any(delegate(IExposedPlugin p) - { - int num8 = ((!_003C_003Ec__DisplayClass15_0._202B_206F_206F_200E_202D_200F_200C_206D_202D_200D_206B_202E_200D_206D_200E_206D_200C_202B_200C_200B_200B_206D_200B_200C_206D_202A_200C_200C_206C_206B_206E_202D_206C_206A_200E_206A_202E_202B_206E_202A_202E(_003C_003Ec__DisplayClass15_0._200E_202B_202A_206A_202E_202C_200C_206E_202B_206F_200C_200B_206B_206B_202E_202A_206C_200B_206D_206F_200B_206A_202B_206F_206B_200F_202D_200E_202A_206D_206F_200C_206A_200F_200C_200E_206F_206D_206B_206A_202E(p), name)) ? 1406489619 : 1406489616); - while (true) - { - int num9 = num8; - int num10 = 1406489617; - int num11 = num9; - switch ((num11 | num10) - (num11 & num10)) - { - case 0: - goto IL_0051; - case 2: - return false; - case 1: - return MatchesRepo(p, repoOrNull, aliases); - } - continue; - IL_0051: - num8 = 1406489616; - } - })) ? (-2093940270) : (-2093940271)); - break; - case 3: - _206F_202D_206B_202B_206D_206F_206A_206F_206D_200C_200B_206E_206B_200F_200D_206B_200C_200C_206E_202C_202D_200E_206B_202A_200C_200E_202D_202B_206A_200F_206F_202B_200B_206D_206C_206D_200E_206B_206E_202D_202E(_log, _206D_200D_200F_200F_200C_202B_202A_202E_206C_206F_202C_206E_200E_200F_202A_206A_206D_202A_202A_200C_206C_202C_202C_206C_200C_202A_202B_200E_206A_202B_202D_202A_202E_206A_202B_200F_206D_206D_206F_202E_202E(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1920092139), name), Array.Empty<object>()); - state.Status = PluginInstallStatus.Succeeded; - state.ErrorMessage = null; - ClearCurrent(); - return; - case 1: - _200F_202B_200F_206B_206D_206B_200E_200C_206A_206A_206F_202A_206D_206C_206C_206B_202D_206E_200D_200D_202B_200D_206C_206C_206B_206E_200C_202C_202A_202C_206A_202B_206B_202B_202B_202C_202B_202A_202D_206C_202E(_log, _202E_200C_200C_200C_200D_200B_206E_206B_206A_202D_200D_202C_206D_202E_202E_206F_206E_206F_202A_202E_202C_206C_206D_206A_202E_200B_206E_200F_200C_200E_202E_202E_200C_202D_202A_202B_202E_202A_202A_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(694138335), name, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1663750406)), Array.Empty<object>()); - state.Status = PluginInstallStatus.Failed; - state.ErrorMessage = global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-2084381224); - ClearCurrent(); - return; - } - } - } - IL_008f: - if (obj == null) - { - obj = global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(591139344); - } - errorMessage = (string)obj; - _200D_206A_202C_200C_202B_200F_202E_200B_202C_206B_200F_200B_206F_206F_200C_200D_206A_202C_202D_202D_206D_200C_200C_206C_202D_200F_200E_200F_206B_200F_200C_206E_200B_206C_202B_202B_200E_206E_206E_206B_202E(_log, ex2, _202E_200C_200C_200C_200D_200B_206E_206B_206A_202D_200D_202C_206D_202E_202E_206F_206E_206F_202A_202E_202C_206C_206D_206A_202E_200B_206E_200F_200C_200E_202E_202E_200C_202D_202A_202B_202E_202A_202A_202E(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(154304713), name, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-333020202)), Array.Empty<object>()); - state.Status = PluginInstallStatus.Failed; - state.ErrorMessage = errorMessage; - ClearCurrent(); - return; - } + return; + } + (string, string, IReadOnlyList<string>) value = currentOperation.Value; + string name = value.Item1; + string item = value.Item2; + IReadOnlyList<string> aliases = value.Item3; + string repoOrNull = ((item.Length == 0) ? null : item); + PluginInstallState state = GetState(name, repoOrNull); + if (installTask.IsFaulted) + { + Exception ex = installTask.Exception?.GetBaseException(); + string errorMessage = ex?.Message ?? "Unknown error"; + _log.Error(ex, "[PluginInstaller] Operation on " + name + " failed"); + state.Status = PluginInstallStatus.Failed; + state.ErrorMessage = errorMessage; + ClearCurrent(); + return; + } + bool result; + try + { + result = installTask.Result; + } + catch (Exception ex2) + { + _log.Error(ex2, "[PluginInstaller] Operation on " + name + " task.Result threw"); + state.Status = PluginInstallStatus.Failed; + state.ErrorMessage = ex2.Message; + ClearCurrent(); + return; + } + if (result) + { + _log.Information("[PluginInstaller] Completed operation on " + name); + state.Status = PluginInstallStatus.Succeeded; + state.ErrorMessage = null; + ClearCurrent(); + } + else if (_pluginInterface.InstalledPlugins.Any((IExposedPlugin p) => p.InternalName == name && MatchesRepo(p, repoOrNull, aliases))) + { + _log.Information("[PluginInstaller] Completed operation on " + name + " (fallback - task returned false but plugin is present)"); + state.Status = PluginInstallStatus.Succeeded; + state.ErrorMessage = null; + ClearCurrent(); + } + else + { + _log.Error("[PluginInstaller] Operation on " + name + " rejected by Dalamud"); + state.Status = PluginInstallStatus.Failed; + state.ErrorMessage = "Dalamud rejected the operation (see /xllog)"; + ClearCurrent(); } } @@ -753,321 +230,55 @@ public sealed class PluginInstaller : IDisposable { _currentOperation = null; _installTask = null; - int num = ((!_frameworkHooked) ? 1877061817 : 1877061816); - while (true) + if (_frameworkHooked) { - int num2 = num; - int num3 = 1877061817; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return; - case 1: - _206F_202C_206B_206A_202D_206E_206F_206F_202B_206D_202C_206B_206E_206D_202E_202E_200C_202A_202B_200D_206B_200E_206D_206C_202A_202B_206B_200D_206E_200F_200E_202B_200D_200C_200F_202A_200F_206D_200B_206A_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkUpdate); - _frameworkHooked = false; - num = 1877061817; - break; - case 2: - num = 1877061816; - break; - } + _framework.Update -= OnFrameworkUpdate; + _frameworkHooked = false; } } public static bool MatchesRepo(IExposedPlugin plugin, string? expectedRepoUrl, IReadOnlyList<string>? aliases = null) { string installedFrom = TryGetInstalledFromUrl(plugin); - int num = ((!SingleRepoUrlMatches(installedFrom, expectedRepoUrl)) ? (-493404997) : (-493405000)); - while (true) + if (SingleRepoUrlMatches(installedFrom, expectedRepoUrl)) { - int num2 = num; - int num3 = -493404999; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return true; + } + if (aliases != null) + { + foreach (string alias in aliases) { - default: - continue; - case 2: - if (aliases != null) + if (SingleRepoUrlMatches(installedFrom, alias)) { - num = -493404999; - continue; + return true; } - break; - case 1: - return true; - case 3: - num = -493405000; - continue; - case 0: - { - IEnumerator<string> enumerator = aliases.GetEnumerator(); - try - { - num = 257099616; - while (true) - { - int num7 = num; - num3 = 257099617; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 1: - num = (_200E_206B_200D_202B_200B_200F_200D_202A_202A_202D_200E_200E_202B_200B_202C_206A_206B_202B_206D_202B_202E_200D_206D_206F_200D_206B_206D_206C_202C_200F_200D_200D_206A_206F_206F_206E_202A_206A_206F_206D_202E((IEnumerator)enumerator) ? 257099618 : 257099617); - break; - case 2: - return true; - case 3: - { - string current = enumerator.Current; - num = ((!SingleRepoUrlMatches(installedFrom, current)) ? 257099616 : 257099619); - break; - } - case 4: - num = 257099616; - break; - case 0: - goto end_IL_0090; - } - continue; - end_IL_0090: - break; - } - } - finally - { - num = ((enumerator == null) ? 1755953266 : 1755953267); - while (true) - { - int num10 = num; - num3 = 1755953266; - num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 0: - goto end_IL_0156; - case 1: - _206C_202C_200F_202C_200D_200F_206B_200E_202A_202A_202A_206E_200F_202A_200D_206C_200F_202C_200C_206A_202B_206B_200D_206E_200C_206D_206D_202D_202B_200C_200F_206B_202C_206A_202D_200F_206D_200C_206F_200E_202E((IDisposable)enumerator); - num = 1755953266; - break; - case 2: - num = 1755953267; - break; - } - continue; - end_IL_0156: - break; - } - } - break; } - } - break; } return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private static bool SingleRepoUrlMatches(string? installedFrom, string? expectedRepoUrl) { - bool flag = _206E_200E_206E_206B_206C_202D_200B_202B_200E_202A_202A_202B_200E_202D_202E_202A_200C_200D_200E_206C_202C_202B_202B_202A_206C_206A_206B_200B_202A_200F_202E_200F_202D_206D_206F_202B_206C_206F_200E_202B_202E(expectedRepoUrl); - int num = (_206E_200E_206E_206B_206C_202D_200B_202B_200E_202A_202A_202B_200E_202D_202E_202A_200C_200D_200E_206C_202C_202B_202B_202A_206C_206A_206B_200B_202A_200F_202E_200F_202D_206D_206F_202B_206C_206F_200E_202B_202E(installedFrom) ? 962949554 : 962949557); - bool flag2 = default(bool); - while (true) + bool flag = string.IsNullOrEmpty(expectedRepoUrl); + bool flag2 = string.IsNullOrEmpty(installedFrom) || string.Equals(installedFrom, "OFFICIAL", StringComparison.OrdinalIgnoreCase); + if (flag && flag2) { - int num2 = num; - int num3 = 962949556; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num7; - switch (num5 - (num6 + num6)) - { - case 6: - num7 = 1; - goto IL_0063; - case 5: - return DalamudReflector.RepoUrlEquals(installedFrom, expectedRepoUrl); - case 4: - num = 962949557; - break; - case 3: - return true; - case 0: - return false; - case 1: - num7 = (_206D_206C_206A_206D_206A_200C_206C_200B_200B_200C_206C_200B_200F_202B_200D_202D_202E_206D_200F_200C_206B_202C_202D_206B_202B_202B_202B_200B_206E_202C_202A_200F_200E_200E_206B_206A_202D_200E_202B_206F_202E(installedFrom, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E<string>(682779368), StringComparison.OrdinalIgnoreCase) ? 1 : 0); - goto IL_0063; - case 2: - { - num3 = (flag2 ? 1 : 0); - num4 = (flag ? 1 : 0); - num = (((num4 & num3) + (num4 ^ num3) == 0) ? 962949553 : 962949556); - break; - } - IL_0063: - flag2 = (byte)num7 != 0; - num3 = (flag2 ? 1 : 0); - num4 = (flag ? 1 : 0); - num = ((num4 + num3 - (num4 | num3) == 0) ? 962949558 : 962949559); - break; - } + return true; } + if (flag || flag2) + { + return false; + } + return DalamudReflector.RepoUrlEquals(installedFrom, expectedRepoUrl); } - [MethodImpl(MethodImplOptions.NoInlining)] private static string? TryGetInstalledFromUrl(IExposedPlugin plugin) { - PropertyInfo propertyInfo = _206E_202A_200C_206D_200B_206D_202E_200D_206E_200F_200C_202C_200F_206B_202A_200B_200F_206B_206F_206F_206E_200E_206B_206C_200F_202C_200E_200C_202A_206E_200F_200C_200D_200E_200F_206D_202A_202C_202E_200E_202E(_202E_202C_202B_202A_206A_200C_206B_206F_200B_200E_206A_200B_200C_202C_202C_206A_202D_200E_206B_202B_206E_202E_206D_202E_206C_206C_206C_206C_206C_200D_200F_206F_202B_206A_200B_202E_206F_202A_202C_200C_202E((object)plugin), global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1760038507)); - object obj = (((object)propertyInfo != null) ? _206C_202D_206E_202B_206E_200E_202C_202C_206E_200C_202C_202C_202B_206B_200F_202C_200D_202A_206B_200B_200B_200F_200E_206A_206B_206E_206F_200E_206B_202C_206A_202C_202E_200D_202A_200C_202B_200E_202E_206B_202E(propertyInfo, (object)plugin) : null); - int num = ((obj != null) ? (-1115973018) : (-1115973019)); - while (true) + object obj = plugin.GetType().GetProperty("Manifest")?.GetValue(plugin); + if (obj == null) { - int num2 = num; - int num3 = -1115973017; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_006a; - case 1: - { - PropertyInfo propertyInfo2 = _206E_202A_200C_206D_200B_206D_202E_200D_206E_200F_200C_202C_200F_206B_202A_200B_200F_206B_206F_206F_206E_200E_206B_206C_200F_202C_200E_200C_202A_206E_200F_200C_200D_200E_200F_206D_202A_202C_202E_200E_202E(_202E_202C_202B_202A_206A_200C_206B_206F_200B_200E_206A_200B_200C_202C_202C_206A_202D_200E_206B_202B_206E_202E_206D_202E_206C_206C_206C_206C_206C_200D_200F_206F_202B_206A_200B_202E_206F_202A_202C_200C_202E(obj), global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(709710176)); - return (((object)propertyInfo2 != null) ? _206C_202D_206E_202B_206E_200E_202C_202C_206E_200C_202C_202C_202B_206B_200F_202C_200D_202A_206B_200B_200B_200F_200E_206A_206B_206E_206F_200E_206B_202C_206A_202C_202E_200D_202A_200C_202B_200E_202E_206B_202E(propertyInfo2, obj) : null) as string; - } - case 2: - return null; - } - continue; - IL_006a: - num = -1115973019; + return null; } - } - - static void _206D_202C_200F_200F_202A_206B_206B_206E_200F_206E_202B_200C_202D_200F_206E_202C_206E_202D_200F_202D_200C_206F_206F_206E_206C_202A_200B_200F_202A_202D_200B_206C_206E_200E_200C_202A_206D_202B_206A_200D_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static IEnumerable<IExposedPlugin> _206B_202B_202E_200D_200D_202B_202C_200E_202E_202D_200E_206A_206E_202B_200E_200D_202D_200C_206D_200F_200F_202E_200E_202E_202B_202E_202A_206A_206F_206D_202E_206F_202C_200D_206E_200F_206A_206D_202E_200C_202E(IDalamudPluginInterface P_0) - { - return P_0.InstalledPlugins; - } - - static bool _200B_206A_202C_206D_206C_200D_200E_206E_200D_202C_200C_206D_202C_206A_202C_206D_202D_200E_202E_206B_200B_202B_200E_200E_206B_200C_200B_206C_202B_200D_206B_206C_206F_206D_202C_206E_202A_202E_206F_206F_202E(IExposedPlugin P_0) - { - return P_0.IsLoaded; - } - - static void _202A_200C_200E_200E_200F_206B_206E_202C_200D_200B_206F_206E_206C_200B_202C_200C_200B_206F_202D_206D_202D_200D_206E_202A_202B_206A_200B_200E_206A_202D_202A_206A_206B_206E_206D_200F_206F_200C_202A_200F_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update += P_1; - } - - static int _202A_200D_206F_200D_206E_202C_206D_200D_202E_206B_206E_202A_200E_206C_200F_206F_202A_202E_206C_202A_202C_200F_206A_206A_202B_200E_200F_200B_202B_202E_206B_200F_202D_202E_200E_200E_206C_202C_200B_200E_202E(string P_0) - { - return P_0.Length; - } - - static TaskScheduler _200D_200D_206B_200F_200F_200D_206C_200D_200D_202B_206F_200B_202B_202B_202A_200F_206B_202B_206B_202C_200B_200D_206A_206A_202B_200B_202D_206F_200C_200C_202D_200C_202D_200B_202D_202A_206D_206E_202D_202A_202E() - { - return TaskScheduler.Default; - } - - static bool _206B_206F_206E_206A_200D_202B_200B_202D_206E_200E_202B_200D_200E_200D_202C_202E_206D_206C_202E_200D_200E_202D_202B_200E_202E_202C_206C_206B_202B_206B_200E_200F_206B_206E_206D_200B_202E_206E_206A_206B_202E(Task P_0) - { - return P_0.IsCompleted; - } - - static bool _202D_202D_202D_202B_206B_200D_202E_200C_202E_202D_200F_200B_202B_200E_206F_206C_206F_202D_200D_200F_202C_202B_200B_200D_202E_202A_202A_202D_200B_206B_200B_206B_202B_206A_200C_200E_200B_200E_200E_200C_202E(Task P_0) - { - return P_0.IsFaulted; - } - - static AggregateException _202B_202C_202E_200E_206A_202C_200C_206F_206F_206E_200D_200B_206D_206B_202C_202D_206C_202A_206D_202B_206D_202C_202C_202A_202A_200F_200C_200D_206D_200F_202B_200E_200E_206E_202C_206F_202E_206A_202B_206E_202E(Task P_0) - { - return P_0.Exception; - } - - static Exception _202D_200B_200C_202D_206A_202D_200C_202E_202A_200F_200B_200D_206B_200B_206B_200B_200E_206A_200D_200B_202B_206C_200E_202D_206B_202E_200B_202B_202C_202D_206A_200D_206A_200F_200B_206C_206F_206D_202A_206E_202E(Exception P_0) - { - return P_0.GetBaseException(); - } - - static string _202E_206A_200F_206A_206B_200D_202D_202D_206A_202E_200E_206D_200E_202B_206C_206C_202A_200B_206E_206D_202D_206C_200F_202A_200C_206E_206F_200C_206A_206D_200C_202D_206B_206D_200D_202E_200C_206F_200D_202C_202E(Exception P_0) - { - return P_0.Message; - } - - static string _202E_200C_200C_200C_200D_200B_206E_206B_206A_202D_200D_202C_206D_202E_202E_206F_206E_206F_202A_202E_202C_206C_206D_206A_202E_200B_206E_200F_200C_200E_202E_202E_200C_202D_202A_202B_202E_202A_202A_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static void _200D_206A_202C_200C_202B_200F_202E_200B_202C_206B_200F_200B_206F_206F_200C_200D_206A_202C_202D_202D_206D_200C_200C_206C_202D_200F_200E_200F_206B_200F_200C_206E_200B_206C_202B_202B_200E_206E_206E_206B_202E(IPluginLog P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.Error(P_1, P_2, P_3); - } - - static string _206D_200D_200F_200F_200C_202B_202A_202E_206C_206F_202C_206E_200E_200F_202A_206A_206D_202A_202A_200C_206C_202C_202C_206C_200C_202A_202B_200E_206A_202B_202D_202A_202E_206A_202B_200F_206D_206D_206F_202E_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static void _206F_202D_206B_202B_206D_206F_206A_206F_206D_200C_200B_206E_206B_200F_200D_206B_200C_200C_206E_202C_202D_200E_206B_202A_200C_200E_202D_202B_206A_200F_206F_202B_200B_206D_206C_206D_200E_206B_206E_202D_202E(IPluginLog P_0, string P_1, object[] P_2) - { - P_0.Information(P_1, P_2); - } - - static void _200F_202B_200F_206B_206D_206B_200E_200C_206A_206A_206F_202A_206D_206C_206C_206B_202D_206E_200D_200D_202B_200D_206C_206C_206B_206E_200C_202C_202A_202C_206A_202B_206B_202B_202B_202C_202B_202A_202D_206C_202E(IPluginLog P_0, string P_1, object[] P_2) - { - P_0.Error(P_1, P_2); - } - - static void _206F_202C_206B_206A_202D_206E_206F_206F_202B_206D_202C_206B_206E_206D_202E_202E_200C_202A_202B_200D_206B_200E_206D_206C_202A_202B_206B_200D_206E_200F_200E_202B_200D_200C_200F_202A_200F_206D_200B_206A_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update -= P_1; - } - - static bool _200E_206B_200D_202B_200B_200F_200D_202A_202A_202D_200E_200E_202B_200B_202C_206A_206B_202B_206D_202B_202E_200D_206D_206F_200D_206B_206D_206C_202C_200F_200D_200D_206A_206F_206F_206E_202A_206A_206F_206D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206C_202C_200F_202C_200D_200F_206B_200E_202A_202A_202A_206E_200F_202A_200D_206C_200F_202C_200C_206A_202B_206B_200D_206E_200C_206D_206D_202D_202B_200C_200F_206B_202C_206A_202D_200F_206D_200C_206F_200E_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool _206E_200E_206E_206B_206C_202D_200B_202B_200E_202A_202A_202B_200E_202D_202E_202A_200C_200D_200E_206C_202C_202B_202B_202A_206C_206A_206B_200B_202A_200F_202E_200F_202D_206D_206F_202B_206C_206F_200E_202B_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static bool _206D_206C_206A_206D_206A_200C_206C_200B_200B_200C_206C_200B_200F_202B_200D_202D_202E_206D_200F_200C_206B_202C_202D_206B_202B_202B_202B_200B_206E_202C_202A_200F_200E_200E_206B_206A_202D_200E_202B_206F_202E(string P_0, string P_1, StringComparison P_2) - { - return string.Equals(P_0, P_1, P_2); - } - - static Type _202E_202C_202B_202A_206A_200C_206B_206F_200B_200E_206A_200B_200C_202C_202C_206A_202D_200E_206B_202B_206E_202E_206D_202E_206C_206C_206C_206C_206C_200D_200F_206F_202B_206A_200B_202E_206F_202A_202C_200C_202E(object P_0) - { - return P_0.GetType(); - } - - static PropertyInfo _206E_202A_200C_206D_200B_206D_202E_200D_206E_200F_200C_202C_200F_206B_202A_200B_200F_206B_206F_206F_206E_200E_206B_206C_200F_202C_200E_200C_202A_206E_200F_200C_200D_200E_200F_206D_202A_202C_202E_200E_202E(Type P_0, string P_1) - { - return P_0.GetProperty(P_1); - } - - static object _206C_202D_206E_202B_206E_200E_202C_202C_206E_200C_202C_202C_202B_206B_200F_202C_200D_202A_206B_200B_200B_200F_200E_206A_206B_206E_206F_200E_206B_202C_206A_202C_202E_200D_202A_200C_202B_200E_202E_206B_202E(PropertyInfo P_0, object P_1) - { - return P_0.GetValue(P_1); + return obj.GetType().GetProperty("InstalledFromUrl")?.GetValue(obj) as string; } } diff --git a/LLib/LLib/PollHelper.cs b/LLib/LLib/PollHelper.cs index c6208af..4efd9a0 100644 --- a/LLib/LLib/PollHelper.cs +++ b/LLib/LLib/PollHelper.cs @@ -1,7 +1,4 @@ using System; -using System.Diagnostics; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; using System.Threading; using System.Threading.Tasks; using Dalamud.Plugin.Services; @@ -10,446 +7,47 @@ namespace LLib; public static class PollHelper { - [StructLayout(LayoutKind.Auto)] - [CompilerGenerated] - private struct _003CPollUntilAsync_003Ed__1 : IAsyncStateMachine - { - public int _003C_003E1__state; - - public AsyncTaskMethodBuilder<bool> _003C_003Et__builder; - - public TimeSpan timeout; - - public TimeSpan? interval; - - public CancellationToken ct; - - public Func<bool> action; - - private bool _003Cinfinite_003E5__2; - - private long _003CdeadlineMs_003E5__3; - - private TimeSpan _003Cdelay_003E5__4; - - private TaskAwaiter _003C_003Eu__1; - - private void MoveNext() - { - int num = _003C_003E1__state; - bool result; - try - { - int num2 = ((num == 0) ? 1451400526 : 1451400517); - TaskAwaiter awaiter = default(TaskAwaiter); - while (true) - { - int num3 = num2; - int num4 = 1451400516; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 9: - ct.ThrowIfCancellationRequested(); - num2 = ((!action()) ? 1451400515 : 1451400516); - break; - case 0: - result = true; - goto end_IL_0025; - case 5: - result = false; - goto end_IL_0025; - case 8: - num2 = ((_202D_200B_206E_202E_206F_200B_200F_202E_200D_202C_206B_206E_206E_206C_200D_202E_202C_206D_200B_202D_202D_206A_206C_202A_202E_202A_202B_200C_206E_202B_202C_200E_206F_200E_206D_200F_206D_206C_206F_202A_202E() < _003CdeadlineMs_003E5__3) ? 1451400518 : 1451400513); - break; - case 4: - num2 = 1451400517; - break; - case 1: - _003Cinfinite_003E5__2 = timeout < TimeSpan.Zero; - _003CdeadlineMs_003E5__3 = _202D_200B_206E_202E_206F_200B_200F_202E_200D_202C_206B_206E_206E_206C_200D_202E_202C_206D_200B_202D_202D_206A_206C_202A_202E_202A_202B_200C_206E_202B_202C_200E_206F_200E_206D_200F_206D_206C_206F_202A_202E() + (long)timeout.TotalMilliseconds; - _003Cdelay_003E5__4 = interval ?? DefaultInterval; - num2 = 1451400525; - break; - case 7: - num2 = (_003Cinfinite_003E5__2 ? 1451400518 : 1451400524); - break; - case 2: - awaiter = _200C_202A_202A_202A_206C_206E_202C_206C_206A_200D_202D_200F_202B_200E_202D_202E_206F_206A_206F_200D_206E_202B_202D_200B_206D_202C_200B_206C_206C_200F_200D_206C_206D_206C_206F_202A_200C_206F_200C_206D_202E(_206B_202C_200F_200F_200C_202C_200E_200E_202B_202C_206C_200D_200E_206C_200F_206A_202C_206B_202B_206C_206F_200F_200C_206C_206F_202B_206E_202C_202A_200E_200B_202E_202C_202C_206A_200C_202A_206E_202B_206F_202E(_003Cdelay_003E5__4, ct)); - num2 = (awaiter.IsCompleted ? 1451400514 : 1451400519); - break; - case 6: - awaiter.GetResult(); - num2 = 1451400525; - break; - case 10: - awaiter = _003C_003Eu__1; - _003C_003Eu__1 = default(TaskAwaiter); - num = (_003C_003E1__state = -1); - num2 = 1451400514; - break; - case 3: - num = (_003C_003E1__state = 0); - _003C_003Eu__1 = awaiter; - _003C_003Et__builder.AwaitUnsafeOnCompleted(ref awaiter, ref this); - return; - } - continue; - end_IL_0025: - break; - } - } - catch (Exception exception) - { - _003C_003E1__state = -2; - _003C_003Et__builder.SetException(exception); - return; - } - _003C_003E1__state = -2; - _003C_003Et__builder.SetResult(result); - } - - void IAsyncStateMachine.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - this.MoveNext(); - } - - [DebuggerHidden] - private void SetStateMachine(IAsyncStateMachine stateMachine) - { - _003C_003Et__builder.SetStateMachine(stateMachine); - } - - void IAsyncStateMachine.SetStateMachine(IAsyncStateMachine stateMachine) - { - //ILSpy generated this explicit interface implementation from .override directive in SetStateMachine - this.SetStateMachine(stateMachine); - } - - static long _202D_200B_206E_202E_206F_200B_200F_202E_200D_202C_206B_206E_206E_206C_200D_202E_202C_206D_200B_202D_202D_206A_206C_202A_202E_202A_202B_200C_206E_202B_202C_200E_206F_200E_206D_200F_206D_206C_206F_202A_202E() - { - return Environment.TickCount64; - } - - static Task _206B_202C_200F_200F_200C_202C_200E_200E_202B_202C_206C_200D_200E_206C_200F_206A_202C_206B_202B_206C_206F_200F_200C_206C_206F_202B_206E_202C_202A_200E_200B_202E_202C_202C_206A_200C_202A_206E_202B_206F_202E(TimeSpan P_0, CancellationToken P_1) - { - return Task.Delay(P_0, P_1); - } - - static TaskAwaiter _200C_202A_202A_202A_206C_206E_202C_206C_206A_200D_202D_200F_202B_200E_202D_202E_206F_206A_206F_200D_206E_202B_202D_200B_206D_202C_200B_206C_206C_200F_200D_206C_206D_206C_206F_202A_200C_206F_200C_206D_202E(Task P_0) - { - return P_0.GetAwaiter(); - } - } - - [StructLayout(LayoutKind.Auto)] - [CompilerGenerated] - private struct _003CPollUntilOnFrameworkAsync_003Ed__2 : IAsyncStateMachine - { - public int _003C_003E1__state; - - public AsyncTaskMethodBuilder<bool> _003C_003Et__builder; - - public TimeSpan timeout; - - public TimeSpan? interval; - - public CancellationToken ct; - - public IFramework framework; - - public Func<bool> action; - - private bool _003Cinfinite_003E5__2; - - private long _003CdeadlineMs_003E5__3; - - private TimeSpan _003Cdelay_003E5__4; - - private TaskAwaiter<bool> _003C_003Eu__1; - - private TaskAwaiter _003C_003Eu__2; - - private void MoveNext() - { - int num = _003C_003E1__state; - bool result; - try - { - int num2 = ((num == 0) ? 30471137 : 30471145); - TaskAwaiter awaiter2 = default(TaskAwaiter); - TaskAwaiter<bool> awaiter = default(TaskAwaiter<bool>); - while (true) - { - int num3 = num2; - int num4 = 30471147; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 6: - num2 = ((_206C_202A_200D_202C_206C_206D_202B_206D_206E_202E_200C_200C_200C_206A_202A_202D_206B_206A_206B_200C_206F_206F_206D_200F_206A_202E_202E_200B_200C_200D_206E_202B_202D_202B_202B_206E_202E_200F_206A_206A_202E() < _003CdeadlineMs_003E5__3) ? 30471143 : 30471142); - break; - case 2: - num2 = ((num == 1) ? 30471144 : 30471136); - break; - case 12: - awaiter2 = _200C_200E_200B_200D_202D_206B_202A_202D_206E_202E_202D_202B_206B_206C_200C_200E_206E_202D_206C_200C_202D_206A_206B_206D_206B_206E_202D_200B_206F_200E_206D_200F_206B_206D_202D_206A_202C_206A_200F_200D_202E(_202A_206C_202B_200B_200D_206F_202B_202C_202E_202B_206F_202E_200B_206A_206F_200D_200C_202E_202E_206E_202E_202E_202B_202E_202C_206F_206C_200B_206B_202A_202B_206A_202E_202C_202C_200E_206B_206B_200D_202E_202E(_003Cdelay_003E5__4, ct)); - num2 = (awaiter2.IsCompleted ? 30471141 : 30471151); - break; - case 13: - result = false; - goto end_IL_0025; - case 8: - result = true; - goto end_IL_0025; - case 1: - ct.ThrowIfCancellationRequested(); - awaiter = framework.RunOnFrameworkThread(action).WaitAsync(ct).GetAwaiter(); - num2 = (awaiter.IsCompleted ? 30471138 : 30471150); - break; - case 14: - awaiter2.GetResult(); - num2 = 30471146; - break; - case 3: - awaiter2 = _003C_003Eu__2; - _003C_003Eu__2 = default(TaskAwaiter); - num = (_003C_003E1__state = -1); - num2 = 30471141; - break; - case 9: - num2 = ((!awaiter.GetResult()) ? 30471147 : 30471139); - break; - case 4: - num = (_003C_003E1__state = 1); - _003C_003Eu__2 = awaiter2; - _003C_003Et__builder.AwaitUnsafeOnCompleted(ref awaiter2, ref this); - return; - case 10: - awaiter = _003C_003Eu__1; - _003C_003Eu__1 = default(TaskAwaiter<bool>); - num = (_003C_003E1__state = -1); - num2 = 30471138; - break; - case 0: - num2 = (_003Cinfinite_003E5__2 ? 30471143 : 30471149); - break; - case 7: - num2 = 30471145; - break; - case 5: - num = (_003C_003E1__state = 0); - _003C_003Eu__1 = awaiter; - _003C_003Et__builder.AwaitUnsafeOnCompleted(ref awaiter, ref this); - return; - case 11: - _003Cinfinite_003E5__2 = timeout < TimeSpan.Zero; - _003CdeadlineMs_003E5__3 = _206C_202A_200D_202C_206C_206D_202B_206D_206E_202E_200C_200C_200C_206A_202A_202D_206B_206A_206B_200C_206F_206F_206D_200F_206A_202E_202E_200B_200C_200D_206E_202B_202D_202B_202B_206E_202E_200F_206A_206A_202E() + (long)timeout.TotalMilliseconds; - _003Cdelay_003E5__4 = interval ?? DefaultInterval; - num2 = 30471146; - break; - } - continue; - end_IL_0025: - break; - } - } - catch (Exception exception) - { - _003C_003E1__state = -2; - _003C_003Et__builder.SetException(exception); - return; - } - _003C_003E1__state = -2; - _003C_003Et__builder.SetResult(result); - } - - void IAsyncStateMachine.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - this.MoveNext(); - } - - [DebuggerHidden] - private void SetStateMachine(IAsyncStateMachine stateMachine) - { - _003C_003Et__builder.SetStateMachine(stateMachine); - } - - void IAsyncStateMachine.SetStateMachine(IAsyncStateMachine stateMachine) - { - //ILSpy generated this explicit interface implementation from .override directive in SetStateMachine - this.SetStateMachine(stateMachine); - } - - static long _206C_202A_200D_202C_206C_206D_202B_206D_206E_202E_200C_200C_200C_206A_202A_202D_206B_206A_206B_200C_206F_206F_206D_200F_206A_202E_202E_200B_200C_200D_206E_202B_202D_202B_202B_206E_202E_200F_206A_206A_202E() - { - return Environment.TickCount64; - } - - static Task _202A_206C_202B_200B_200D_206F_202B_202C_202E_202B_206F_202E_200B_206A_206F_200D_200C_202E_202E_206E_202E_202E_202B_202E_202C_206F_206C_200B_206B_202A_202B_206A_202E_202C_202C_200E_206B_206B_200D_202E_202E(TimeSpan P_0, CancellationToken P_1) - { - return Task.Delay(P_0, P_1); - } - - static TaskAwaiter _200C_200E_200B_200D_202D_206B_202A_202D_206E_202E_202D_202B_206B_206C_200C_200E_206E_202D_206C_200C_202D_206A_206B_206D_206B_206E_202D_200B_206F_200E_206D_200F_206B_206D_202D_206A_202C_206A_200F_200D_202E(Task P_0) - { - return P_0.GetAwaiter(); - } - } - private static readonly TimeSpan DefaultInterval = TimeSpan.FromMilliseconds(100L); public static async Task<bool> PollUntilAsync(Func<bool> action, TimeSpan timeout, CancellationToken ct, TimeSpan? interval = null) { - int num = 1451400517; - long deadlineMs = default(long); - bool infinite = default(bool); - TimeSpan delay = default(TimeSpan); - TaskAwaiter taskAwaiter = default(TaskAwaiter); - TaskAwaiter taskAwaiter2 = default(TaskAwaiter); + bool infinite = timeout < TimeSpan.Zero; + long deadlineMs = Environment.TickCount64 + (long)timeout.TotalMilliseconds; + TimeSpan delay = interval ?? DefaultInterval; while (true) { - int num2 = num; - int num3 = 1451400516; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + ct.ThrowIfCancellationRequested(); + if (action()) { - case 9: - ct.ThrowIfCancellationRequested(); - num = ((!action()) ? 1451400515 : 1451400516); - break; - case 0: return true; - case 5: - return false; - case 8: - num = ((_003CPollUntilAsync_003Ed__1._202D_200B_206E_202E_206F_200B_200F_202E_200D_202C_206B_206E_206E_206C_200D_202E_202C_206D_200B_202D_202D_206A_206C_202A_202E_202A_202B_200C_206E_202B_202C_200E_206F_200E_206D_200F_206D_206C_206F_202A_202E() < deadlineMs) ? 1451400518 : 1451400513); - break; - case 4: - num = 1451400517; - break; - case 1: - infinite = timeout < TimeSpan.Zero; - deadlineMs = _003CPollUntilAsync_003Ed__1._202D_200B_206E_202E_206F_200B_200F_202E_200D_202C_206B_206E_206E_206C_200D_202E_202C_206D_200B_202D_202D_206A_206C_202A_202E_202A_202B_200C_206E_202B_202C_200E_206F_200E_206D_200F_206D_206C_206F_202A_202E() + (long)timeout.TotalMilliseconds; - delay = interval ?? DefaultInterval; - num = 1451400525; - break; - case 7: - num = (infinite ? 1451400518 : 1451400524); - break; - case 2: - taskAwaiter = _003CPollUntilAsync_003Ed__1._200C_202A_202A_202A_206C_206E_202C_206C_206A_200D_202D_200F_202B_200E_202D_202E_206F_206A_206F_200D_206E_202B_202D_200B_206D_202C_200B_206C_206C_200F_200D_206C_206D_206C_206F_202A_200C_206F_200C_206D_202E(_003CPollUntilAsync_003Ed__1._206B_202C_200F_200F_200C_202C_200E_200E_202B_202C_206C_200D_200E_206C_200F_206A_202C_206B_202B_206C_206F_200F_200C_206C_206F_202B_206E_202C_202A_200E_200B_202E_202C_202C_206A_200C_202A_206E_202B_206F_202E(delay, ct)); - num = (taskAwaiter.IsCompleted ? 1451400514 : 1451400519); - break; - case 6: - taskAwaiter.GetResult(); - num = 1451400525; - break; - case 10: - taskAwaiter = taskAwaiter2; - taskAwaiter2 = default(TaskAwaiter); - num = 1451400514; - break; - case 3: - await taskAwaiter; - num = 1451400526; + } + if (!infinite && Environment.TickCount64 >= deadlineMs) + { break; } + await Task.Delay(delay, ct); } + return false; } public static async Task<bool> PollUntilOnFrameworkAsync(this IFramework framework, Func<bool> action, TimeSpan timeout, CancellationToken ct, TimeSpan? interval = null) { - long deadlineMs = default(long); - TaskAwaiter taskAwaiter2 = default(TaskAwaiter); - TimeSpan delay = default(TimeSpan); - TaskAwaiter<bool> taskAwaiter = default(TaskAwaiter<bool>); - TaskAwaiter taskAwaiter4 = default(TaskAwaiter); - TaskAwaiter<bool> taskAwaiter3 = default(TaskAwaiter<bool>); - bool infinite = default(bool); + bool infinite = timeout < TimeSpan.Zero; + long deadlineMs = Environment.TickCount64 + (long)timeout.TotalMilliseconds; + TimeSpan delay = interval ?? DefaultInterval; while (true) { - int num = 30471145; - while (true) + ct.ThrowIfCancellationRequested(); + if (await framework.RunOnFrameworkThread(action).WaitAsync(ct)) + { + return true; + } + if (!infinite && Environment.TickCount64 >= deadlineMs) { - int num2 = num; - int num3 = 30471147; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num7; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 6: - num = ((_003CPollUntilOnFrameworkAsync_003Ed__2._206C_202A_200D_202C_206C_206D_202B_206D_206E_202E_200C_200C_200C_206A_202A_202D_206B_206A_206B_200C_206F_206F_206D_200F_206A_202E_202E_200B_200C_200D_206E_202B_202D_202B_202B_206E_202E_200F_206A_206A_202E() < deadlineMs) ? 30471143 : 30471142); - continue; - case 2: - num = ((num7 == 1) ? 30471144 : 30471136); - continue; - case 12: - taskAwaiter2 = _003CPollUntilOnFrameworkAsync_003Ed__2._200C_200E_200B_200D_202D_206B_202A_202D_206E_202E_202D_202B_206B_206C_200C_200E_206E_202D_206C_200C_202D_206A_206B_206D_206B_206E_202D_200B_206F_200E_206D_200F_206B_206D_202D_206A_202C_206A_200F_200D_202E(_003CPollUntilOnFrameworkAsync_003Ed__2._202A_206C_202B_200B_200D_206F_202B_202C_202E_202B_206F_202E_200B_206A_206F_200D_200C_202E_202E_206E_202E_202E_202B_202E_202C_206F_206C_200B_206B_202A_202B_206A_202E_202C_202C_200E_206B_206B_200D_202E_202E(delay, ct)); - num = (taskAwaiter2.IsCompleted ? 30471141 : 30471151); - continue; - case 13: - return false; - case 8: - return true; - case 1: - ct.ThrowIfCancellationRequested(); - taskAwaiter = framework.RunOnFrameworkThread(action).WaitAsync(ct).GetAwaiter(); - num = (taskAwaiter.IsCompleted ? 30471138 : 30471150); - continue; - case 14: - taskAwaiter2.GetResult(); - num = 30471146; - continue; - case 3: - taskAwaiter2 = taskAwaiter4; - taskAwaiter4 = default(TaskAwaiter); - num7 = -1; - num = 30471141; - continue; - case 9: - num = ((!taskAwaiter.GetResult()) ? 30471147 : 30471139); - continue; - case 4: - break; - case 10: - taskAwaiter = taskAwaiter3; - taskAwaiter3 = default(TaskAwaiter<bool>); - num7 = -1; - num = 30471138; - continue; - case 0: - num = (infinite ? 30471143 : 30471149); - continue; - case 7: - num = 30471145; - continue; - case 5: - await taskAwaiter; - num = 30471137; - continue; - case 11: - infinite = timeout < TimeSpan.Zero; - deadlineMs = _003CPollUntilOnFrameworkAsync_003Ed__2._206C_202A_200D_202C_206C_206D_202B_206D_206E_202E_200C_200C_200C_206A_202A_202D_206B_206A_206B_200C_206F_206F_206D_200F_206A_202E_202E_200B_200C_200D_206E_202B_202D_202B_202B_206E_202E_200F_206A_206A_202E() + (long)timeout.TotalMilliseconds; - delay = interval ?? DefaultInterval; - num = 30471146; - continue; - } break; } - await taskAwaiter2; + await Task.Delay(delay, ct); } + return false; } } diff --git a/LLib/LLib/QuestDialogueText.cs b/LLib/LLib/QuestDialogueText.cs index b3d33d1..054f28d 100644 --- a/LLib/LLib/QuestDialogueText.cs +++ b/LLib/LLib/QuestDialogueText.cs @@ -12,21 +12,9 @@ public readonly struct QuestDialogueText : IQuestDialogueText, IExcelRow<QuestDi public uint RowOffset => _003Coffset_003EP; - public ReadOnlySeString Key => _202C_200E_200F_206D_206B_206A_206C_200D_202C_202A_206C_206D_200D_202E_200D_206F_206C_206F_202C_206E_206B_206C_202D_200F_200C_202B_206D_206F_206A_200F_202D_200B_200E_200E_200B_202B_200C_200C_200B_206E_202E(_003Cpage_003EP, (nuint)_003Coffset_003EP, (nuint)_003Coffset_003EP); + public ReadOnlySeString Key => _003Cpage_003EP.ReadString(_003Coffset_003EP, _003Coffset_003EP); - public ReadOnlySeString Value - { - get - { - ExcelPage excelPage = _003Cpage_003EP; - uint num = _003Coffset_003EP; - int num2 = 4; - int num3 = (int)num; - int num4 = num3 ^ num2; - int num5 = num3 & num2; - return _202C_200E_200F_206D_206B_206A_206C_200D_202C_202A_206C_206D_200D_202E_200D_206F_206C_206F_202C_206E_206B_206C_202D_200F_200C_202B_206D_206F_206A_200F_202D_200B_200E_200E_200B_202B_200C_200C_200B_206E_202E(excelPage, (nuint)(uint)(num4 + (num5 + num5)), (nuint)_003Coffset_003EP); - } - } + public ReadOnlySeString Value => _003Cpage_003EP.ReadString(_003Coffset_003EP + 4, _003Coffset_003EP); public QuestDialogueText(ExcelPage page, uint offset, uint row) { @@ -39,9 +27,4 @@ public readonly struct QuestDialogueText : IQuestDialogueText, IExcelRow<QuestDi { return new QuestDialogueText(page, offset, row); } - - static ReadOnlySeString _202C_200E_200F_206D_206B_206A_206C_200D_202C_202A_206C_206D_200D_202E_200D_206F_206C_206F_202C_206E_206B_206C_202D_200F_200C_202B_206D_206F_206A_200F_202D_200B_200E_200E_200B_202B_200C_200C_200B_206E_202E(ExcelPage P_0, nuint P_1, nuint P_2) - { - return P_0.ReadString(P_1, P_2); - } } diff --git a/LLib/LLib/Throttle.cs b/LLib/LLib/Throttle.cs index 5254c39..9e976db 100644 --- a/LLib/LLib/Throttle.cs +++ b/LLib/LLib/Throttle.cs @@ -6,44 +6,21 @@ public struct Throttle { private long _nextAllowedMs; - public readonly bool IsReady => _200F_202C_200C_202E_206A_206F_206E_206D_206C_202E_202E_202D_200B_206E_200D_200F_206F_202C_200D_200F_206C_200D_202E_206C_200D_202E_200C_206E_202A_206B_202E_202E_202C_206A_202E_200D_200E_206D_202D_206A_202E() >= _nextAllowedMs; + public readonly bool IsReady => Environment.TickCount64 >= _nextAllowedMs; public bool TryReset(double cooldownSeconds) { - long num = _200F_202C_200C_202E_206A_206F_206E_206D_206C_202E_202E_202D_200B_206E_200D_200F_206F_202C_200D_200F_206C_200D_202E_206C_200D_202E_200C_206E_202A_206B_202E_202E_202C_206A_202E_200D_200E_206D_202D_206A_202E(); - int num2 = ((num >= _nextAllowedMs) ? (-1425131609) : (-1425131610)); - while (true) + long tickCount = Environment.TickCount64; + if (tickCount < _nextAllowedMs) { - int num3 = num2; - int num4 = -1425131609; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - { - long num6 = (long)(cooldownSeconds * 1000.0); - long num7 = num; - _nextAllowedMs = (num7 | num6) + (num7 & num6); - return true; - } - case 1: - return false; - case 2: - goto IL_0073; - } - continue; - IL_0073: - num2 = -1425131610; + return false; } + _nextAllowedMs = tickCount + (long)(cooldownSeconds * 1000.0); + return true; } public void Clear() { _nextAllowedMs = 0L; } - - static long _200F_202C_200C_202E_206A_206F_206E_206D_206C_202E_202E_202D_200B_206E_200D_200F_206F_202C_200D_200F_206C_200D_202E_206C_200D_202E_200C_206E_202A_206B_202E_202E_202C_206A_202E_200D_200E_206D_202D_206A_202E() - { - return Environment.TickCount64; - } } diff --git a/QuestPaths/Questionable.QuestPaths.QuestBundle b/QuestPaths/Questionable.QuestPaths.QuestBundle index e6d9b3c9fc39c453b1af4116ed2c13d40acc4e6e..d61e136d8a30b7d0eab26bdd1f66f7a52945a53c 100644 GIT binary patch literal 605398 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%0DRlvVnhR<X7+E9p= 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%0A$d;p`+0%SrV%L0d}OF7lAZ+<!~N@Y@o5h<w@&? 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 literal 605200 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 G!9?&K*!qqD diff --git a/QuestPaths/Questionable.QuestPaths/AssemblyQuestLoader.cs b/QuestPaths/Questionable.QuestPaths/AssemblyQuestLoader.cs index 44d3482..da61149 100644 --- a/QuestPaths/Questionable.QuestPaths/AssemblyQuestLoader.cs +++ b/QuestPaths/Questionable.QuestPaths/AssemblyQuestLoader.cs @@ -2,8 +2,6 @@ using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; -using System.Reflection; -using System.Runtime.CompilerServices; using System.Security.Cryptography; using System.Threading; using Questionable.Model.IO; @@ -17,14 +15,7 @@ internal static class AssemblyQuestLoader internal static TimeSpan? DecodeDuration { get; private set; } - internal static Stream QuestSchema - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return _200E_200D_206A_200C_200B_200B_206F_200B_206D_206E_202A_206A_202A_202B_202E_206B_206F_200B_202A_202E_202B_206F_200C_202E_202E_206E_202D_200D_202B_202C_200B_200C_202A_200B_206A_206B_206F_200B_200E_202E(_202C_202D_200C_206D_202A_200E_200C_206B_206B_206B_206B_206B_206B_202D_206B_206E_206C_200D_206F_202B_200C_206B_202D_202A_206B_200F_202E_200E_200B_206F_200C_200F_206D_202D_200F_206D_206C_202B_206C_206C_202E(_202D_202C_202A_206B_202E_206C_206E_206B_200B_202A_200D_200D_202A_202A_206D_206C_200F_202C_206A_202D_200F_202B_202E_202E_206D_202E_206F_202E_200D_200F_206C_200E_202E_200E_206E_200E_202D_202D_206C_206F_202E(typeof(AssemblyQuestLoader).TypeHandle)), global::_003CModule_003E._206F_202D_200C_200B_206A_202E_206E_202A_200D_206A_202B_202C_200E_202B_200B_202C_200B_202C_206A_202D_206C_200C_206A_200D_200B_202A_206C_206F_206E_202E_200E_206A_202D_200B_200E_206E_200E_200D_202A_202E<string>(-1394732188)); - } - } + internal static Stream QuestSchema => typeof(AssemblyQuestLoader).Assembly.GetManifestResourceStream("Questionable.QuestPaths.QuestSchema"); internal static IReadOnlyDictionary<ElementId, QuestRoot> GetQuests() { @@ -36,113 +27,19 @@ internal static class AssemblyQuestLoader return null; } - [MethodImpl(MethodImplOptions.NoInlining)] private static IReadOnlyDictionary<ElementId, QuestRoot> LoadQuests() { - Stopwatch stopwatch = _200B_200E_200D_200D_202B_206F_200E_202A_206E_206E_202A_206B_202B_202E_206C_200E_202A_200B_206E_200C_202A_200D_200C_200F_206E_206F_200C_206B_200E_200F_206B_206B_206F_202E_202B_206F_206C_200B_202B_202E(); - Stream stream = _200E_200D_206A_200C_200B_200B_206F_200B_206D_206E_202A_206A_202A_202B_202E_206B_206F_200B_202A_202E_202B_206F_200C_202E_202E_206E_202D_200D_202B_202C_200B_200C_202A_200B_206A_206B_206F_200B_200E_202E(_202C_202D_200C_206D_202A_200E_200C_206B_206B_206B_206B_206B_206B_202D_206B_206E_206C_200D_206F_202B_200C_206B_202D_202A_206B_200F_202E_200E_200B_206F_200C_200F_206D_202D_200F_206D_206C_202B_206C_206C_202E(_202D_202C_202A_206B_202E_206C_206E_206B_200B_202A_200D_200D_202A_202A_206D_206C_200F_202C_206A_202D_200F_202B_202E_202E_206D_202E_206F_202E_200D_200F_206C_200E_202E_200E_206E_200E_202D_202D_206C_206F_202E(typeof(AssemblyQuestLoader).TypeHandle)), global::_003CModule_003E._200B_200F_206E_200E_206B_200B_200D_200E_200C_202C_200B_202C_200D_206F_206E_202E_202C_202B_202C_206B_206F_200F_206E_206B_206A_206B_200C_206A_200B_206A_200D_206C_206B_202E_200C_206E_202E_202D_200D_206D_202E<string>(-1192865642)); - try + Stopwatch stopwatch = Stopwatch.StartNew(); + using Stream stream = typeof(AssemblyQuestLoader).Assembly.GetManifestResourceStream("Questionable.QuestPaths.QuestBundle"); + byte[] array = PathBundleSecret.Key(); + List<KeyValuePair<string, QuestRoot>> list = PathBundle.Deserialize<QuestRoot>(stream, array); + CryptographicOperations.ZeroMemory(array); + Dictionary<ElementId, QuestRoot> dictionary = new Dictionary<ElementId, QuestRoot>(list.Count); + foreach (var (value, value2) in list) { - byte[] array = PathBundleSecret.Key(); - List<KeyValuePair<string, QuestRoot>> list = PathBundle.Deserialize<QuestRoot>(stream, array); - _206E_200C_206B_206D_206B_202E_206E_200F_202B_200C_200F_202D_202B_200E_206E_206D_202B_206C_200E_202E_202C_200B_202B_206F_202E_206B_202A_202C_200D_206A_200D_200B_206D_206B_206E_200B_202D_202E_206F_206D_202E((Span<byte>)array); - Dictionary<ElementId, QuestRoot> dictionary = new Dictionary<ElementId, QuestRoot>(list.Count); - using (List<KeyValuePair<string, QuestRoot>>.Enumerator enumerator = list.GetEnumerator()) - { - int num = -221038175; - while (true) - { - int num2 = num; - int num3 = -221038175; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = (enumerator.MoveNext() ? (-221038176) : (-221038174)); - break; - case 1: - var (text2, value) = (KeyValuePair<string, QuestRoot>)(ref enumerator.Current); - dictionary[_200D_206F_200D_206E_200B_202D_206C_206A_202E_200C_206B_200D_200C_206D_200E_202C_206C_200E_206E_202D_200C_202C_200F_200E_202B_206E_206F_206E_200C_206C_202A_206A_206F_200E_202D_200E_206F_206E_206B_206F_202E(text2)] = value; - num = -221038175; - break; - case 2: - num = -221038175; - break; - case 3: - goto end_IL_005c; - } - continue; - end_IL_005c: - break; - } - } - DecodeDuration = _202A_206C_200C_202D_202A_202E_202C_206E_206E_206E_202C_202D_202B_200C_200F_200F_202E_206D_200D_206B_202E_202A_200B_202A_200E_200E_206A_200C_200F_202D_206D_206A_206B_202C_206B_202E_200C_200F_206F_206B_202E(stopwatch); - return dictionary; + dictionary[ElementId.FromString(value)] = value2; } - finally - { - int num = ((stream == null) ? (-142648274) : (-142648275)); - while (true) - { - int num5 = num; - int num3 = -142648273; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -142648275; - break; - case 2: - _202D_206B_200E_206C_202A_206B_206C_200E_206A_200D_206E_202E_200E_202A_206C_202C_200E_206E_200F_200F_202D_206E_202B_202C_206E_202D_202A_200F_202D_200C_202A_202C_202A_206A_202B_206F_206C_202C_206F_206D_202E((IDisposable)stream); - num = -142648274; - break; - case 1: - goto end_IL_013c; - } - continue; - end_IL_013c: - break; - } - } - } - - static Type _202D_202C_202A_206B_202E_206C_206E_206B_200B_202A_200D_200D_202A_202A_206D_206C_200F_202C_206A_202D_200F_202B_202E_202E_206D_202E_206F_202E_200D_200F_206C_200E_202E_200E_206E_200E_202D_202D_206C_206F_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static Assembly _202C_202D_200C_206D_202A_200E_200C_206B_206B_206B_206B_206B_206B_202D_206B_206E_206C_200D_206F_202B_200C_206B_202D_202A_206B_200F_202E_200E_200B_206F_200C_200F_206D_202D_200F_206D_206C_202B_206C_206C_202E(Type P_0) - { - return P_0.Assembly; - } - - static Stream _200E_200D_206A_200C_200B_200B_206F_200B_206D_206E_202A_206A_202A_202B_202E_206B_206F_200B_202A_202E_202B_206F_200C_202E_202E_206E_202D_200D_202B_202C_200B_200C_202A_200B_206A_206B_206F_200B_200E_202E(Assembly P_0, string P_1) - { - return P_0.GetManifestResourceStream(P_1); - } - - static Stopwatch _200B_200E_200D_200D_202B_206F_200E_202A_206E_206E_202A_206B_202B_202E_206C_200E_202A_200B_206E_200C_202A_200D_200C_200F_206E_206F_200C_206B_200E_200F_206B_206B_206F_202E_202B_206F_206C_200B_202B_202E() - { - return Stopwatch.StartNew(); - } - - static void _206E_200C_206B_206D_206B_202E_206E_200F_202B_200C_200F_202D_202B_200E_206E_206D_202B_206C_200E_202E_202C_200B_202B_206F_202E_206B_202A_202C_200D_206A_200D_200B_206D_206B_206E_200B_202D_202E_206F_206D_202E(Span<byte> P_0) - { - CryptographicOperations.ZeroMemory(P_0); - } - - static ElementId _200D_206F_200D_206E_200B_202D_206C_206A_202E_200C_206B_200D_200C_206D_200E_202C_206C_200E_206E_202D_200C_202C_200F_200E_202B_206E_206F_206E_200C_206C_202A_206A_206F_200E_202D_200E_206F_206E_206B_206F_202E(string P_0) - { - return ElementId.FromString(P_0); - } - - static TimeSpan _202A_206C_200C_202D_202A_202E_202C_206E_206E_206E_202C_202D_202B_200C_200F_200F_202E_206D_200D_206B_202E_202A_200B_202A_200E_200E_206A_200C_200F_202D_206D_206A_206B_202C_206B_202E_200C_200F_206F_206B_202E(Stopwatch P_0) - { - return P_0.Elapsed; - } - - static void _202D_206B_200E_206C_202A_206B_206C_200E_206A_200D_206E_202E_200E_202A_206C_202C_200E_206E_200F_200F_202D_206E_202B_202C_206E_202D_202A_200F_202D_200C_202A_202C_202A_206A_202B_206F_206C_202C_206F_206D_202E(IDisposable P_0) - { - P_0.Dispose(); + DecodeDuration = stopwatch.Elapsed; + return dictionary; } } diff --git a/QuestPaths/Questionable.QuestPaths/PathBundleSecret.cs b/QuestPaths/Questionable.QuestPaths/PathBundleSecret.cs index ccccde7..c6a5d56 100644 --- a/QuestPaths/Questionable.QuestPaths/PathBundleSecret.cs +++ b/QuestPaths/Questionable.QuestPaths/PathBundleSecret.cs @@ -1,66 +1,30 @@ -using System; -using System.Runtime.CompilerServices; - namespace Questionable.QuestPaths; internal static class PathBundleSecret { - private static readonly byte[] A; + private static readonly byte[] A = new byte[32] + { + 14, 205, 205, 220, 252, 13, 221, 232, 100, 189, + 37, 224, 91, 77, 175, 255, 30, 195, 23, 136, + 234, 230, 125, 209, 122, 165, 20, 174, 100, 226, + 27, 222 + }; - private static readonly byte[] B; + private static readonly byte[] B = new byte[32] + { + 241, 56, 43, 159, 122, 127, 111, 25, 223, 150, + 24, 59, 99, 24, 253, 141, 217, 107, 154, 16, + 247, 125, 175, 254, 169, 41, 27, 2, 18, 101, + 46, 175 + }; internal static byte[] Key() { byte[] array = new byte[A.Length]; - int num = 0; - int num2 = 320407520; - while (true) + for (int i = 0; i < array.Length; i++) { - int num3 = num2; - int num4 = 320407521; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 3: - num2 = 320407520; - break; - case 0: - return array; - case 2: - { - int num6 = num; - byte num7 = A[num]; - num4 = B[num]; - num5 = num7; - int num8 = num5 + num4; - int num9 = num5 & num4; - array[num6] = (byte)(num8 - (num9 + num9)); - int num10 = num; - num4 = 1; - num5 = num10; - num = (num5 | num4) + (num5 & num4); - num2 = 320407520; - break; - } - case 1: - num2 = ((num < array.Length) ? 320407523 : 320407521); - break; - } + array[i] = (byte)(A[i] ^ B[i]); } - } - - static PathBundleSecret() - { - byte[] array = new byte[32]; - _206B_200D_200D_200D_200F_202A_200E_202D_202B_206C_206B_206D_202E_202A_206D_206A_200E_200C_202D_206D_206C_202B_202B_206D_202D_202C_200C_202D_200D_206F_200F_206B_206F_206B_206E_200F_200E_200E_200C_202D_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - A = array; - byte[] array2 = new byte[32]; - _206B_200D_200D_200D_200F_202A_200E_202D_202B_206C_206B_206D_202E_202A_206D_206A_200E_200C_202D_206D_206C_202B_202B_206D_202D_202C_200C_202D_200D_206F_200F_206B_206F_206B_206E_200F_200E_200E_200C_202D_202E((Array)array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - B = array2; - } - - static void _206B_200D_200D_200D_200F_202A_200E_202D_202B_206C_206B_206D_202E_202A_206D_206A_200E_200C_202D_206D_206C_202B_202B_206D_202D_202C_200C_202D_200D_206F_200F_206B_206F_206B_206E_200F_200E_200E_200C_202D_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); + return array; } } diff --git a/Questionable.LgbWorker/Questionable.LgbWorker.csproj b/Questionable.LgbWorker/Questionable.LgbWorker.csproj new file mode 100644 index 0000000..323b7e2 --- /dev/null +++ b/Questionable.LgbWorker/Questionable.LgbWorker.csproj @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <AssemblyName>Questionable.LgbWorker</AssemblyName> + <GenerateAssemblyInfo>False</GenerateAssemblyInfo> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp1.0</TargetFramework> + <PlatformTarget>x64</PlatformTarget> + </PropertyGroup> + <PropertyGroup> + <LangVersion>12.0</LangVersion> + <AllowUnsafeBlocks>True</AllowUnsafeBlocks> + </PropertyGroup> + <PropertyGroup /> + <ItemGroup /> + <ItemGroup> + <Reference Include="Lumina"> + <HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\Lumina.dll</HintPath> + </Reference> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/Questionable.LgbWorker/Questionable.LgbWorker/ExitRangeEntry.cs b/Questionable.LgbWorker/Questionable.LgbWorker/ExitRangeEntry.cs new file mode 100644 index 0000000..44d9c16 --- /dev/null +++ b/Questionable.LgbWorker/Questionable.LgbWorker/ExitRangeEntry.cs @@ -0,0 +1,5 @@ +using System.Numerics; + +namespace Questionable.LgbWorker; + +internal sealed record ExitRangeEntry(ushort SourceTerritoryId, uint InstanceId, Vector3 SourcePosition, ushort DestTerritoryId, uint DestInstanceId, uint ReturnInstanceId, Vector3 Rotation, Vector3 HalfExtents); diff --git a/Questionable.LgbWorker/Questionable.LgbWorker/LevelEntry.cs b/Questionable.LgbWorker/Questionable.LgbWorker/LevelEntry.cs new file mode 100644 index 0000000..ae2943d --- /dev/null +++ b/Questionable.LgbWorker/Questionable.LgbWorker/LevelEntry.cs @@ -0,0 +1,21 @@ +using System.Text.Json.Serialization; + +namespace Questionable.LgbWorker; + +internal sealed class LevelEntry +{ + [JsonPropertyName("objectId")] + public uint ObjectId { get; set; } + + [JsonPropertyName("territoryId")] + public ushort TerritoryId { get; set; } + + [JsonPropertyName("x")] + public float X { get; set; } + + [JsonPropertyName("y")] + public float Y { get; set; } + + [JsonPropertyName("z")] + public float Z { get; set; } +} diff --git a/Questionable.LgbWorker/Questionable.LgbWorker/LgbMessageType.cs b/Questionable.LgbWorker/Questionable.LgbWorker/LgbMessageType.cs new file mode 100644 index 0000000..59c9147 --- /dev/null +++ b/Questionable.LgbWorker/Questionable.LgbWorker/LgbMessageType.cs @@ -0,0 +1,7 @@ +namespace Questionable.LgbWorker; + +internal enum LgbMessageType : byte +{ + Progress = 1, + Final +} diff --git a/Questionable.LgbWorker/Questionable.LgbWorker/LgbWorkerFraming.cs b/Questionable.LgbWorker/Questionable.LgbWorker/LgbWorkerFraming.cs new file mode 100644 index 0000000..21bb26b --- /dev/null +++ b/Questionable.LgbWorker/Questionable.LgbWorker/LgbWorkerFraming.cs @@ -0,0 +1,80 @@ +using System; +using System.IO; +using System.Text; + +namespace Questionable.LgbWorker; + +internal static class LgbWorkerFraming +{ + public static void Write(Stream stream, in LgbWorkerMessage message) + { + using MemoryStream memoryStream = new MemoryStream(); + using BinaryWriter binaryWriter = new BinaryWriter(memoryStream, Encoding.UTF8, leaveOpen: true); + binaryWriter.Write((byte)message.Type); + switch (message.Type) + { + case LgbMessageType.Progress: + binaryWriter.Write(message.Done); + binaryWriter.Write(message.Total); + break; + case LgbMessageType.Final: + binaryWriter.Write(message.Success); + binaryWriter.Write(message.DurationMs); + binaryWriter.Write(message.Error ?? string.Empty); + break; + default: + throw new ArgumentOutOfRangeException("message"); + } + binaryWriter.Flush(); + byte[] array = memoryStream.ToArray(); + Span<byte> span = stackalloc byte[4]; + BitConverter.TryWriteBytes(span, array.Length); + stream.Write(span); + stream.Write(array); + } + + public static LgbWorkerMessage Read(Stream stream) + { + Span<byte> span = stackalloc byte[4]; + ReadExact(stream, span); + int num = BitConverter.ToInt32(span); + if ((num <= 0 || num > 65536) ? true : false) + { + throw new InvalidDataException($"Invalid frame length: {num}"); + } + byte[] array = new byte[num]; + ReadExact(stream, array); + using BinaryReader binaryReader = new BinaryReader(new MemoryStream(array), Encoding.UTF8); + LgbMessageType lgbMessageType = (LgbMessageType)binaryReader.ReadByte(); + return lgbMessageType switch + { + LgbMessageType.Progress => new LgbWorkerMessage + { + Type = lgbMessageType, + Done = binaryReader.ReadInt32(), + Total = binaryReader.ReadInt32() + }, + LgbMessageType.Final => new LgbWorkerMessage + { + Type = lgbMessageType, + Success = binaryReader.ReadBoolean(), + DurationMs = binaryReader.ReadInt64(), + Error = binaryReader.ReadString() + }, + _ => throw new InvalidDataException($"Unknown message type: {lgbMessageType}"), + }; + } + + private static void ReadExact(Stream stream, Span<byte> buffer) + { + int num; + for (int i = 0; i < buffer.Length; i += num) + { + num = stream.Read(buffer.Slice(i)); + if (num == 0) + { + throw new EndOfStreamException(); + } + } + } +} diff --git a/Questionable.LgbWorker/Questionable.LgbWorker/LgbWorkerManifest.cs b/Questionable.LgbWorker/Questionable.LgbWorker/LgbWorkerManifest.cs new file mode 100644 index 0000000..bc6eaf8 --- /dev/null +++ b/Questionable.LgbWorker/Questionable.LgbWorker/LgbWorkerManifest.cs @@ -0,0 +1,42 @@ +using System.Collections.Generic; +using System.IO; +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace Questionable.LgbWorker; + +internal sealed class LgbWorkerManifest +{ + [JsonPropertyName("sqpackPath")] + public string SqpackPath { get; set; } = string.Empty; + + [JsonPropertyName("gameVersion")] + public string GameVersion { get; set; } = string.Empty; + + [JsonPropertyName("npcCachePath")] + public string NpcCachePath { get; set; } = string.Empty; + + [JsonPropertyName("boundaryCachePath")] + public string BoundaryCachePath { get; set; } = string.Empty; + + [JsonPropertyName("territories")] + public List<TerritoryEntry> Territories { get; set; } = new List<TerritoryEntry>(); + + [JsonPropertyName("levelEntries")] + public List<LevelEntry> LevelEntries { get; set; } = new List<LevelEntry>(); + + public static LgbWorkerManifest Load(string path) + { + using FileStream utf8Json = File.OpenRead(path); + LgbWorkerManifest? obj = JsonSerializer.Deserialize<LgbWorkerManifest>(utf8Json) ?? throw new InvalidDataException("Manifest deserialized to null"); + if (string.IsNullOrWhiteSpace(obj.SqpackPath)) + { + throw new InvalidDataException("SqpackPath is missing"); + } + if (string.IsNullOrWhiteSpace(obj.GameVersion)) + { + throw new InvalidDataException("GameVersion is missing"); + } + return obj; + } +} diff --git a/Questionable.LgbWorker/Questionable.LgbWorker/LgbWorkerMessage.cs b/Questionable.LgbWorker/Questionable.LgbWorker/LgbWorkerMessage.cs new file mode 100644 index 0000000..a0fd9e4 --- /dev/null +++ b/Questionable.LgbWorker/Questionable.LgbWorker/LgbWorkerMessage.cs @@ -0,0 +1,16 @@ +namespace Questionable.LgbWorker; + +internal readonly struct LgbWorkerMessage +{ + public LgbMessageType Type { get; init; } + + public int Done { get; init; } + + public int Total { get; init; } + + public bool Success { get; init; } + + public long DurationMs { get; init; } + + public string? Error { get; init; } +} diff --git a/Questionable.LgbWorker/Questionable.LgbWorker/PopRangeEntry.cs b/Questionable.LgbWorker/Questionable.LgbWorker/PopRangeEntry.cs new file mode 100644 index 0000000..1099ddb --- /dev/null +++ b/Questionable.LgbWorker/Questionable.LgbWorker/PopRangeEntry.cs @@ -0,0 +1,5 @@ +using System.Numerics; + +namespace Questionable.LgbWorker; + +internal sealed record PopRangeEntry(ushort TerritoryId, uint InstanceId, Vector3 Position); diff --git a/Questionable.LgbWorker/Questionable.LgbWorker/Program.cs b/Questionable.LgbWorker/Questionable.LgbWorker/Program.cs new file mode 100644 index 0000000..7cfe3c7 --- /dev/null +++ b/Questionable.LgbWorker/Questionable.LgbWorker/Program.cs @@ -0,0 +1,573 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.Globalization; +using System.IO; +using System.IO.Pipes; +using System.Numerics; +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Lumina; +using Lumina.Data.Files; +using Lumina.Data.Parsing.Layer; + +namespace Questionable.LgbWorker; + +internal static class Program +{ + private const int ExitSuccess = 0; + + private const int ExitUsage = 2; + + private const int ExitProtocol = 3; + + private const int ExitGameData = 4; + + private const int ExitScanFailed = 5; + + private const int ExitPipeConnect = 6; + + private const int ExitOrphaned = 7; + + private const int ConnectTimeoutMs = 30000; + + private static readonly TimeSpan ParentPollInterval = TimeSpan.FromSeconds(1L); + + private const uint NpcFileMagic = 1129336401u; + + private const int NpcFileFormatVersion = 1; + + private const uint BoundaryFileMagic = 1112425562u; + + private const int BoundaryFileFormatVersion = 1; + + private static readonly string[] LgbFileNames = new string[4] { "planevent", "planmap", "planner", "planlive" }; + + private static int Main(string[] args) + { + try + { + return Run(args); + } + catch (Exception value) + { + Console.Error.WriteLine($"LGB worker failed unexpectedly: {value}"); + return 5; + } + } + + private static int Run(string[] args) + { + if (!TryParseArgs(args, out string pipeName, out string manifestPath, out int? parentPid)) + { + return Usage(); + } + NamedPipeClientStream namedPipeClientStream = null; + try + { + namedPipeClientStream = new NamedPipeClientStream(".", pipeName, PipeDirection.Out, PipeOptions.Asynchronous); + namedPipeClientStream.Connect(30000); + } + catch (Exception ex) when (((ex is TimeoutException || ex is IOException || ex is UnauthorizedAccessException || ex is ArgumentException) ? 1 : 0) != 0) + { + namedPipeClientStream?.Dispose(); + Console.Error.WriteLine("LGB worker could not connect to pipe '" + pipeName + "': " + ex.Message); + return 6; + } + using (namedPipeClientStream) + { + return RunScan(namedPipeClientStream, manifestPath, parentPid); + } + } + + private static int RunScan(Stream pipe, string manifestPath, int? parentPid) + { + LgbWorkerManifest lgbWorkerManifest; + try + { + lgbWorkerManifest = LgbWorkerManifest.Load(manifestPath); + } + catch (Exception ex) when (((ex is InvalidDataException || ex is IOException || ex is UnauthorizedAccessException || ex is ArgumentException || ex is JsonException) ? 1 : 0) != 0) + { + Console.Error.WriteLine("LGB worker cannot read manifest '" + manifestPath + "': " + ex.Message); + return 3; + } + GameData gameData; + try + { + gameData = new GameData(lgbWorkerManifest.SqpackPath, new LuminaOptions + { + CacheFileResources = false + }); + } + catch (Exception ex2) + { + Console.Error.WriteLine("LGB worker cannot open game data at '" + lgbWorkerManifest.SqpackPath + "': " + ex2.Message); + return 4; + } + CancellationTokenSource abort = new CancellationTokenSource(); + try + { + CancellationTokenSource stopWatching = new CancellationTokenSource(); + try + { + if (parentPid.HasValue) + { + int pid = parentPid.GetValueOrDefault(); + Task.Run(() => WatchParentAsync(pid, abort, stopWatching.Token)); + } + try + { + return Scan(pipe, lgbWorkerManifest, gameData, abort.Token); + } + finally + { + stopWatching.Cancel(); + gameData.Dispose(); + } + } + finally + { + if (stopWatching != null) + { + ((IDisposable)stopWatching).Dispose(); + } + } + } + finally + { + if (abort != null) + { + ((IDisposable)abort).Dispose(); + } + } + } + + private static int Scan(Stream pipe, LgbWorkerManifest manifest, GameData gameData, CancellationToken ct) + { + Stopwatch stopwatch = Stopwatch.StartNew(); + Console.Error.WriteLine($"Scanning {manifest.Territories.Count} territories, {manifest.LevelEntries.Count} level entries"); + try + { + int total = manifest.Territories.Count * 2; + int num = 0; + Dictionary<uint, (ushort, Vector3, bool)> dictionary = new Dictionary<uint, (ushort, Vector3, bool)>(); + HashSet<string> visitedLgbPaths = new HashSet<string>(); + List<ExitRangeEntry> list = new List<ExitRangeEntry>(); + Dictionary<(ushort, uint), PopRangeEntry> dictionary2 = new Dictionary<(ushort, uint), PopRangeEntry>(); + HashSet<string> visitedLgbPaths2 = new HashSet<string>(); + foreach (TerritoryEntry territory in manifest.Territories) + { + ct.ThrowIfCancellationRequested(); + if (territory.HasAetheryte) + { + ScanNpcLgbFiles(gameData, dictionary, visitedLgbPaths, territory); + ScanBoundaryLgb(gameData, list, dictionary2, visitedLgbPaths2, territory); + num++; + ReportProgress(pipe, num, total); + } + } + foreach (TerritoryEntry territory2 in manifest.Territories) + { + ct.ThrowIfCancellationRequested(); + ScanNpcLgbFiles(gameData, dictionary, visitedLgbPaths, territory2); + ScanBoundaryLgb(gameData, list, dictionary2, visitedLgbPaths2, territory2); + num++; + ReportProgress(pipe, num, total); + } + foreach (LevelEntry levelEntry in manifest.LevelEntries) + { + dictionary.TryAdd(levelEntry.ObjectId, (levelEntry.TerritoryId, new Vector3(levelEntry.X, levelEntry.Y, levelEntry.Z), false)); + } + Console.Error.WriteLine($"Scan complete: {dictionary.Count} NPCs, {list.Count} exits, {dictionary2.Count} pops"); + if (!string.IsNullOrEmpty(manifest.NpcCachePath)) + { + WriteNpcCache(manifest.NpcCachePath, manifest.GameVersion, dictionary); + Console.Error.WriteLine("Wrote NPC cache: " + manifest.NpcCachePath); + } + if (!string.IsNullOrEmpty(manifest.BoundaryCachePath)) + { + WriteBoundaryCache(manifest.BoundaryCachePath, manifest.GameVersion, list, dictionary2); + Console.Error.WriteLine("Wrote boundary cache: " + manifest.BoundaryCachePath); + } + } + catch (OperationCanceledException) + { + Console.Error.WriteLine("LGB worker scan cancelled: the parent process is gone."); + return 7; + } + catch (IOException ex2) + { + Console.Error.WriteLine("LGB worker pipe broke during the scan: " + ex2.Message); + return 7; + } + catch (Exception ex3) + { + return ReportFailure(pipe, ex3.ToString()); + } + stopwatch.Stop(); + try + { + LgbWorkerMessage message = new LgbWorkerMessage + { + Type = LgbMessageType.Final, + Success = true, + DurationMs = stopwatch.ElapsedMilliseconds + }; + LgbWorkerFraming.Write(pipe, in message); + pipe.Flush(); + } + catch (IOException ex4) + { + Console.Error.WriteLine("LGB worker pipe broke before the final message: " + ex4.Message); + return 7; + } + return 0; + } + + private static void ScanNpcLgbFiles(GameData gameData, Dictionary<uint, (ushort TerritoryId, Vector3 Position, bool FestivalOnly)> cache, HashSet<string> visitedLgbPaths, TerritoryEntry territory) + { + string bgPath = territory.BgPath; + if (string.IsNullOrEmpty(bgPath)) + { + return; + } + int num = bgPath.IndexOf("/level/", StringComparison.Ordinal); + if (num < 0) + { + return; + } + string[] lgbFileNames = LgbFileNames; + foreach (string text in lgbFileNames) + { + string text2 = "bg/" + bgPath.Substring(0, num + 1) + "level/" + text + ".lgb"; + if (!visitedLgbPaths.Add(text2)) + { + continue; + } + LgbFile file; + try + { + file = gameData.GetFile<LgbFile>(text2); + } + catch + { + continue; + } + if (file == null) + { + continue; + } + LayerCommon.Layer[] layers = file.Layers; + for (int j = 0; j < layers.Length; j++) + { + LayerCommon.Layer layer = layers[j]; + bool flag = layer.FestivalID != 0 || layer.IsTemporary != 0; + LayerCommon.InstanceObject[] instanceObjects = layer.InstanceObjects; + for (int k = 0; k < instanceObjects.Length; k++) + { + LayerCommon.InstanceObject instanceObject = instanceObjects[k]; + uint baseId; + if (instanceObject.AssetType == LayerEntryType.EventNPC) + { + baseId = ((LayerCommon.ENPCInstanceObject)instanceObject.Object).ParentData.ParentData.BaseId; + } + else + { + if (instanceObject.AssetType != LayerEntryType.EventObject) + { + continue; + } + baseId = ((LayerCommon.EventInstanceObject)instanceObject.Object).ParentData.BaseId; + } + if (baseId != 0 && (!cache.TryGetValue(baseId, out (ushort, Vector3, bool) value) || !(!value.Item3 || flag))) + { + cache[baseId] = ((ushort)territory.RowId, new Vector3(instanceObject.Transform.Translation.X, instanceObject.Transform.Translation.Y, instanceObject.Transform.Translation.Z), flag); + } + } + } + } + } + + private static void ScanBoundaryLgb(GameData gameData, List<ExitRangeEntry> exitRanges, Dictionary<(ushort TerritoryId, uint InstanceId), PopRangeEntry> popRangeIndex, HashSet<string> visitedLgbPaths, TerritoryEntry territory) + { + if (!IsNavigableOverworld(territory.IntendedUse)) + { + return; + } + string bgPath = territory.BgPath; + if (string.IsNullOrEmpty(bgPath)) + { + return; + } + int num = bgPath.IndexOf("/level/", StringComparison.Ordinal); + if (num < 0) + { + return; + } + string text = "bg/" + bgPath.Substring(0, num + 1) + "level/planmap.lgb"; + if (!visitedLgbPaths.Add(text)) + { + return; + } + ushort num2 = (ushort)territory.RowId; + LgbFile file; + try + { + file = gameData.GetFile<LgbFile>(text); + } + catch + { + return; + } + if (file == null) + { + return; + } + LayerCommon.Layer[] layers = file.Layers; + for (int i = 0; i < layers.Length; i++) + { + LayerCommon.InstanceObject[] instanceObjects = layers[i].InstanceObjects; + for (int j = 0; j < instanceObjects.Length; j++) + { + LayerCommon.InstanceObject instanceObject = instanceObjects[j]; + if (instanceObject.AssetType == LayerEntryType.ExitRange) + { + LayerCommon.ExitRangeInstanceObject exitRangeInstanceObject = (LayerCommon.ExitRangeInstanceObject)(object)instanceObject.Object; + exitRanges.Add(new ExitRangeEntry(num2, instanceObject.InstanceId, new Vector3(instanceObject.Transform.Translation.X, instanceObject.Transform.Translation.Y, instanceObject.Transform.Translation.Z), exitRangeInstanceObject.TerritoryType, exitRangeInstanceObject.DestInstanceId, exitRangeInstanceObject.ReturnInstanceId, new Vector3(instanceObject.Transform.Rotation.X, instanceObject.Transform.Rotation.Y, instanceObject.Transform.Rotation.Z), new Vector3(instanceObject.Transform.Scale.X, instanceObject.Transform.Scale.Y, instanceObject.Transform.Scale.Z))); + } + else if (instanceObject.AssetType == LayerEntryType.PopRange) + { + popRangeIndex[(num2, instanceObject.InstanceId)] = new PopRangeEntry(num2, instanceObject.InstanceId, new Vector3(instanceObject.Transform.Translation.X, instanceObject.Transform.Translation.Y, instanceObject.Transform.Translation.Z)); + } + } + } + } + + private static bool IsNavigableOverworld(byte use) + { + switch (use) + { + case 0: + case 1: + case 6: + case 13: + case 21: + case 22: + case 23: + case 41: + case 48: + case 49: + case 60: + case 61: + return true; + default: + return false; + } + } + + private static void WriteNpcCache(string path, string gameVersion, Dictionary<uint, (ushort TerritoryId, Vector3 Position, bool FestivalOnly)> cache) + { + Directory.CreateDirectory(Path.GetDirectoryName(path)); + string text = path + ".tmp"; + using (BinaryWriter binaryWriter = new BinaryWriter(File.Create(text))) + { + binaryWriter.Write(1129336401u); + binaryWriter.Write(1); + binaryWriter.Write(gameVersion); + binaryWriter.Write(cache.Count); + foreach (var (value, tuple2) in cache) + { + binaryWriter.Write(value); + binaryWriter.Write(tuple2.Item1); + binaryWriter.Write(tuple2.Item2.X); + binaryWriter.Write(tuple2.Item2.Y); + binaryWriter.Write(tuple2.Item2.Z); + binaryWriter.Write(tuple2.Item3); + } + } + File.Move(text, path, overwrite: true); + } + + private static void WriteBoundaryCache(string path, string gameVersion, List<ExitRangeEntry> exitRanges, Dictionary<(ushort TerritoryId, uint InstanceId), PopRangeEntry> popRangeIndex) + { + Directory.CreateDirectory(Path.GetDirectoryName(path)); + string text = path + ".tmp"; + using (BinaryWriter binaryWriter = new BinaryWriter(File.Create(text))) + { + binaryWriter.Write(1112425562u); + binaryWriter.Write(1); + binaryWriter.Write(gameVersion); + binaryWriter.Write(exitRanges.Count); + foreach (ExitRangeEntry exitRange in exitRanges) + { + binaryWriter.Write(exitRange.SourceTerritoryId); + binaryWriter.Write(exitRange.InstanceId); + binaryWriter.Write(exitRange.SourcePosition.X); + binaryWriter.Write(exitRange.SourcePosition.Y); + binaryWriter.Write(exitRange.SourcePosition.Z); + binaryWriter.Write(exitRange.DestTerritoryId); + binaryWriter.Write(exitRange.DestInstanceId); + binaryWriter.Write(exitRange.ReturnInstanceId); + binaryWriter.Write(exitRange.Rotation.X); + binaryWriter.Write(exitRange.Rotation.Y); + binaryWriter.Write(exitRange.Rotation.Z); + binaryWriter.Write(exitRange.HalfExtents.X); + binaryWriter.Write(exitRange.HalfExtents.Y); + binaryWriter.Write(exitRange.HalfExtents.Z); + } + binaryWriter.Write(popRangeIndex.Count); + foreach (var (_, popRangeEntry2) in popRangeIndex) + { + binaryWriter.Write(popRangeEntry2.TerritoryId); + binaryWriter.Write(popRangeEntry2.InstanceId); + binaryWriter.Write(popRangeEntry2.Position.X); + binaryWriter.Write(popRangeEntry2.Position.Y); + binaryWriter.Write(popRangeEntry2.Position.Z); + } + } + File.Move(text, path, overwrite: true); + } + + private static void ReportProgress(Stream pipe, int done, int total) + { + try + { + LgbWorkerMessage message = new LgbWorkerMessage + { + Type = LgbMessageType.Progress, + Done = done, + Total = total + }; + LgbWorkerFraming.Write(pipe, in message); + } + catch (IOException) + { + } + } + + private static int ReportFailure(Stream pipe, string error) + { + Console.Error.WriteLine(error); + try + { + LgbWorkerMessage message = new LgbWorkerMessage + { + Type = LgbMessageType.Final, + Success = false, + Error = error + }; + LgbWorkerFraming.Write(pipe, in message); + pipe.Flush(); + } + catch (Exception ex) when (((ex is IOException || ex is ObjectDisposedException) ? 1 : 0) != 0) + { + Console.Error.WriteLine("LGB worker could not report the failure: " + ex.Message); + } + return 5; + } + + private static async Task WatchParentAsync(int parentPid, CancellationTokenSource abort, CancellationToken stop) + { + _ = 1; + try + { + while (!stop.IsCancellationRequested) + { + if (!ProcessExists(parentPid)) + { + await abort.CancelAsync().ConfigureAwait(continueOnCapturedContext: false); + break; + } + await Task.Delay(ParentPollInterval, stop).ConfigureAwait(continueOnCapturedContext: false); + } + } + catch (OperationCanceledException) + { + } + catch (ObjectDisposedException) + { + } + catch (Exception value) + { + Console.Error.WriteLine($"LGB worker parent watch stopped: {value}"); + } + } + + private static bool ProcessExists(int pid) + { + try + { + using Process process = Process.GetProcessById(pid); + return !process.HasExited; + } + catch (Exception ex) when (((ex is ArgumentException || ex is InvalidOperationException) ? 1 : 0) != 0) + { + return false; + } + catch (Win32Exception) + { + return true; + } + } + + private static bool TryParseArgs(string[] args, out string pipeName, out string manifestPath, out int? parentPid) + { + pipeName = ""; + manifestPath = ""; + parentPid = null; + for (int i = 0; i < args.Length; i++) + { + switch (args[i]) + { + case "--pipe": + if (!TryTakeValue(args, ref i, out pipeName)) + { + return false; + } + break; + case "--manifest": + if (!TryTakeValue(args, ref i, out manifestPath)) + { + return false; + } + break; + case "--parent-pid": + { + if (!TryTakeValue(args, ref i, out string value) || !int.TryParse(value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var result)) + { + return false; + } + parentPid = result; + break; + } + default: + return false; + } + } + if (pipeName.Length > 0) + { + return manifestPath.Length > 0; + } + return false; + } + + private static bool TryTakeValue(string[] args, ref int i, out string value) + { + value = ""; + if (i + 1 >= args.Length || string.IsNullOrWhiteSpace(args[i + 1])) + { + return false; + } + value = args[++i]; + return true; + } + + private static int Usage() + { + Console.Error.WriteLine("Usage: Questionable.LgbWorker --pipe <name> --manifest <path> [--parent-pid <pid>]"); + return 2; + } +} diff --git a/Questionable.LgbWorker/Questionable.LgbWorker/TerritoryEntry.cs b/Questionable.LgbWorker/Questionable.LgbWorker/TerritoryEntry.cs new file mode 100644 index 0000000..d347f13 --- /dev/null +++ b/Questionable.LgbWorker/Questionable.LgbWorker/TerritoryEntry.cs @@ -0,0 +1,18 @@ +using System.Text.Json.Serialization; + +namespace Questionable.LgbWorker; + +internal sealed class TerritoryEntry +{ + [JsonPropertyName("rowId")] + public uint RowId { get; set; } + + [JsonPropertyName("bgPath")] + public string BgPath { get; set; } = string.Empty; + + [JsonPropertyName("intendedUse")] + public byte IntendedUse { get; set; } + + [JsonPropertyName("hasAetheryte")] + public bool HasAetheryte { get; set; } +} diff --git a/Questionable.Model/Questionable.Model.Converter/StringListOrValueConverter.cs b/Questionable.Model/Questionable.Model.Converter/StringListOrValueConverter.cs index 2d2e569..d5a2386 100644 --- a/Questionable.Model/Questionable.Model.Converter/StringListOrValueConverter.cs +++ b/Questionable.Model/Questionable.Model.Converter/StringListOrValueConverter.cs @@ -10,139 +10,45 @@ public sealed class StringListOrValueConverter : JsonConverter<List<string>> { public override List<string> Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { - int num = ((reader.TokenType != JsonTokenType.String) ? 2003232125 : 2003232123); - List<string> list = default(List<string>); - while (true) + if (reader.TokenType == JsonTokenType.String) { - int num2 = num; - int num3 = 2003232122; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - num = 2003232123; - break; - case 1: - { - int num7 = 1; - List<string> list2 = new List<string>(num7); - CollectionsMarshal.SetCount(list2, num7); - CollectionsMarshal.AsSpan(list2)[0] = reader.GetString(); - return list2; - } - case 0: - num = ((reader.TokenType != JsonTokenType.EndArray) ? 2003232120 : 2003232126); - break; - case 2: - list.Add(reader.GetString()); - reader.Read(); - num = 2003232122; - break; - case 4: - return list; - case 6: - throw _200D_200C_200E_206B_202E_200D_200E_202D_206B_206D_206F_202D_202C_200F_202E_206B_206E_200E_206D_202C_206F_206F_200B_206A_206C_200D_202D_206A_206A_200C_206D_200D_206F_206D_202A_202C_202B_202D_200F_202B_202E(); - case 7: - num = ((reader.TokenType == JsonTokenType.StartArray) ? 2003232121 : 2003232124); - break; - case 3: - reader.Read(); - list = new List<string>(); - num = 2003232122; - break; - } + int num = 1; + List<string> list = new List<string>(num); + CollectionsMarshal.SetCount(list, num); + CollectionsMarshal.AsSpan(list)[0] = reader.GetString(); + return list; } + if (reader.TokenType != JsonTokenType.StartArray) + { + throw new JsonException(); + } + reader.Read(); + List<string> list2 = new List<string>(); + while (reader.TokenType != JsonTokenType.EndArray) + { + list2.Add(reader.GetString()); + reader.Read(); + } + return list2; } public override void Write(Utf8JsonWriter writer, List<string>? value, JsonSerializerOptions options) { - int num = ((value != null) ? (-1425131611) : (-1425131610)); - while (true) + if (value == null) { - int num2 = num; - int num3 = -1425131609; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1425131610; - break; - case 1: - _202D_200D_202A_200D_206A_202A_206B_202C_202B_202C_202E_206E_206C_206C_206F_202C_200E_200C_202E_206C_202C_206F_206A_206F_206E_202A_206D_206A_200B_206C_206E_200C_206A_200E_202D_202D_200D_206F_206F_202E_202E(writer); - return; - case 4: - _206A_206C_206B_206D_200B_206B_200B_200D_202A_206C_206E_202C_206E_206E_202E_202C_206A_206C_206A_200F_202E_206B_206E_200F_202A_200B_206D_200E_202E_202B_206B_202A_206B_202E_200E_206E_200B_200E_200D_200C_202E(writer, value[0]); - return; - case 2: - num = ((value.Count != 1) ? (-1425131612) : (-1425131613)); - break; - case 3: - { - _200E_206C_202B_200C_206B_200B_200E_206F_200E_202A_206B_206C_200C_200D_200B_202C_200D_200C_200D_200E_206C_200B_202A_202D_202D_202D_202D_202C_206C_200C_200D_200B_200B_200B_200B_206E_206C_202A_206D_200F_202E(writer); - using (List<string>.Enumerator enumerator = value.GetEnumerator()) - { - num = -1381192088; - while (true) - { - int num5 = num; - num3 = -1381192088; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 2: - num = -1381192088; - break; - case 1: - { - string current = enumerator.Current; - _206A_206C_206B_206D_200B_206B_200B_200D_202A_206C_206E_202C_206E_206E_202E_202C_206A_206C_206A_200F_202E_206B_206E_200F_202A_200B_206D_200E_202E_202B_206B_202A_206B_202E_200E_206E_200B_200E_200D_200C_202E(writer, current); - num = -1381192088; - break; - } - case 0: - num = (enumerator.MoveNext() ? (-1381192087) : (-1381192085)); - break; - case 3: - goto end_IL_00a6; - } - continue; - end_IL_00a6: - break; - } - } - _206B_202D_206B_200F_202C_206C_200C_206A_202C_202C_202D_200F_200E_200C_200D_200F_206C_200E_202E_206C_206F_202C_202E_200D_206C_206D_206A_200C_202B_206C_206D_202C_200E_202C_202B_206D_200B_200B_206B_202C_202E(writer); - return; - } - } + writer.WriteNullValue(); + return; } - } - - static JsonException _200D_200C_200E_206B_202E_200D_200E_202D_206B_206D_206F_202D_202C_200F_202E_206B_206E_200E_206D_202C_206F_206F_200B_206A_206C_200D_202D_206A_206A_200C_206D_200D_206F_206D_202A_202C_202B_202D_200F_202B_202E() - { - return new JsonException(); - } - - static void _202D_200D_202A_200D_206A_202A_206B_202C_202B_202C_202E_206E_206C_206C_206F_202C_200E_200C_202E_206C_202C_206F_206A_206F_206E_202A_206D_206A_200B_206C_206E_200C_206A_200E_202D_202D_200D_206F_206F_202E_202E(Utf8JsonWriter P_0) - { - P_0.WriteNullValue(); - } - - static void _206A_206C_206B_206D_200B_206B_200B_200D_202A_206C_206E_202C_206E_206E_202E_202C_206A_206C_206A_200F_202E_206B_206E_200F_202A_200B_206D_200E_202E_202B_206B_202A_206B_202E_200E_206E_200B_200E_200D_200C_202E(Utf8JsonWriter P_0, string P_1) - { - P_0.WriteStringValue(P_1); - } - - static void _200E_206C_202B_200C_206B_200B_200E_206F_200E_202A_206B_206C_200C_200D_200B_202C_200D_200C_200D_200E_206C_200B_202A_202D_202D_202D_202D_202C_206C_200C_200D_200B_200B_200B_200B_206E_206C_202A_206D_200F_202E(Utf8JsonWriter P_0) - { - P_0.WriteStartArray(); - } - - static void _206B_202D_206B_200F_202C_206C_200C_206A_202C_202C_202D_200F_200E_200C_200D_200F_206C_200E_202E_206C_206F_202C_202E_200D_206C_206D_206A_200C_202B_206C_206D_202C_200E_202C_202B_206D_200B_200B_206B_202C_202E(Utf8JsonWriter P_0) - { - P_0.WriteEndArray(); + if (value.Count == 1) + { + writer.WriteStringValue(value[0]); + return; + } + writer.WriteStartArray(); + foreach (string item in value) + { + writer.WriteStringValue(item); + } + writer.WriteEndArray(); } } diff --git a/Questionable.Model/Questionable.Model.Converter/VectorListConverter.cs b/Questionable.Model/Questionable.Model.Converter/VectorListConverter.cs index 6cddb8c..4381c2b 100644 --- a/Questionable.Model/Questionable.Model.Converter/VectorListConverter.cs +++ b/Questionable.Model/Questionable.Model.Converter/VectorListConverter.cs @@ -9,109 +9,33 @@ namespace Questionable.Model.Converter; public sealed class VectorListConverter : JsonConverter<List<Vector3>> { - private static readonly VectorConverter ItemConverter = _206C_200C_200D_206E_202A_200E_206F_200E_206F_200B_200C_202E_200D_206F_206B_202E_200D_206C_202C_206A_200E_200C_202D_206E_202D_206A_202C_200C_206D_202D_202C_206F_206C_202B_200C_200C_206B_202C_202C_202C_202E(); + private static readonly VectorConverter ItemConverter = new VectorConverter(); public override List<Vector3> Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { - int num = ((reader.TokenType == JsonTokenType.StartArray) ? 1775411337 : 1775411336); - List<Vector3> list = default(List<Vector3>); - while (true) + if (reader.TokenType != JsonTokenType.StartArray) { - int num2 = num; - int num3 = 1775411340; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - throw _202B_206F_202B_202E_206E_200D_206B_200B_202A_202B_200D_206A_202A_200E_200C_202E_200F_206F_200F_202B_206A_206B_202E_202D_200C_200B_202A_206B_200F_206A_202B_206B_206E_202E_200D_206C_206C_202B_200D_200D_202E(); - case 0: - list.Add(ItemConverter.Read(ref reader, _206C_206A_202A_206E_206D_202D_206D_200C_206B_206C_200C_206E_206C_202A_200C_206F_200F_206F_206B_200B_206A_200F_206B_206C_200C_202E_206B_206D_202A_202C_206B_206E_206B_202C_202C_202C_206F_200F_200F_200E_202E(typeof(Vector3).TypeHandle), options)); - num = 1775411338; - break; - case 6: - num = (reader.Read() ? 1775411339 : 1775411343); - break; - case 4: - throw _202B_206F_202B_202E_206E_200D_206B_200B_202A_202B_200D_206A_202A_200E_200C_202E_200F_206F_200F_202B_206A_206B_202E_202D_200C_200B_202A_206B_200F_206A_202B_206B_206E_202E_200D_206C_206C_202B_200D_200D_202E(); - case 2: - num = 1775411336; - break; - case 7: - num = ((reader.TokenType != JsonTokenType.EndArray) ? 1775411340 : 1775411341); - break; - case 1: - return list; - case 5: - list = new List<Vector3>(); - num = 1775411338; - break; - } + throw new JsonException(); } + List<Vector3> list = new List<Vector3>(); + while (reader.Read()) + { + if (reader.TokenType == JsonTokenType.EndArray) + { + return list; + } + list.Add(ItemConverter.Read(ref reader, typeof(Vector3), options)); + } + throw new JsonException(); } public override void Write(Utf8JsonWriter writer, List<Vector3> value, JsonSerializerOptions options) { - _200B_200D_206A_206E_202B_202B_200D_206A_202A_202A_200B_206D_202D_206D_200F_206B_206C_202C_202B_200D_202C_200B_206A_200D_202A_206A_202C_202C_200F_200F_200D_202A_206B_200F_200E_206D_200E_206A_202D_202E_202E(writer); - using (List<Vector3>.Enumerator enumerator = value.GetEnumerator()) + writer.WriteStartArray(); + foreach (Vector3 item in value) { - int num = -1222196604; - while (true) - { - int num2 = num; - int num3 = -1222196603; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = -1222196604; - break; - case 1: - num = (enumerator.MoveNext() ? (-1222196601) : (-1222196603)); - break; - case 2: - { - Vector3 current = enumerator.Current; - ItemConverter.Write(writer, current, options); - num = -1222196604; - break; - } - case 0: - goto end_IL_0018; - } - continue; - end_IL_0018: - break; - } + ItemConverter.Write(writer, item, options); } - _200F_206C_202B_200F_206B_206F_206B_200B_200C_202A_202D_202B_200C_202E_206B_206D_202B_200B_206D_200D_206B_200D_202D_200F_206F_202B_200F_206A_202C_206F_202E_200B_202A_202D_206E_202C_200F_202C_206C_206E_202E(writer); - } - - static JsonException _202B_206F_202B_202E_206E_200D_206B_200B_202A_202B_200D_206A_202A_200E_200C_202E_200F_206F_200F_202B_206A_206B_202E_202D_200C_200B_202A_206B_200F_206A_202B_206B_206E_202E_200D_206C_206C_202B_200D_200D_202E() - { - return new JsonException(); - } - - static Type _206C_206A_202A_206E_206D_202D_206D_200C_206B_206C_200C_206E_206C_202A_200C_206F_200F_206F_206B_200B_206A_200F_206B_206C_200C_202E_206B_206D_202A_202C_206B_206E_206B_202C_202C_202C_206F_200F_200F_200E_202E(RuntimeTypeHandle P_0) - { - return System.Type.GetTypeFromHandle(P_0); - } - - static void _200B_200D_206A_206E_202B_202B_200D_206A_202A_202A_200B_206D_202D_206D_200F_206B_206C_202C_202B_200D_202C_200B_206A_200D_202A_206A_202C_202C_200F_200F_200D_202A_206B_200F_200E_206D_200E_206A_202D_202E_202E(Utf8JsonWriter P_0) - { - P_0.WriteStartArray(); - } - - static void _200F_206C_202B_200F_206B_206F_206B_200B_200C_202A_202D_202B_200C_202E_206B_206D_202B_200B_206D_200D_206B_200D_202D_200F_206F_202B_200F_206A_202C_206F_202E_200B_202A_202D_206E_202C_200F_202C_206C_206E_202E(Utf8JsonWriter P_0) - { - P_0.WriteEndArray(); - } - - static VectorConverter _206C_200C_200D_206E_202A_200E_206F_200E_206F_200B_200C_202E_200D_206F_206B_202E_200D_206C_202C_206A_200E_200C_202D_206E_202D_206A_202C_200C_206D_202D_202C_206F_206C_202B_200C_200C_206B_202C_202C_202C_202E() - { - return new VectorConverter(); + writer.WriteEndArray(); } } diff --git a/Questionable.Model/Questionable.Model.Gathering/GatheringLocation.cs b/Questionable.Model/Questionable.Model.Gathering/GatheringLocation.cs index e0eed12..9842b75 100644 --- a/Questionable.Model/Questionable.Model.Gathering/GatheringLocation.cs +++ b/Questionable.Model/Questionable.Model.Gathering/GatheringLocation.cs @@ -23,25 +23,11 @@ public sealed class GatheringLocation public bool IsCone() { - int num = ((!MinimumAngle.HasValue) ? (-443145177) : (-443145178)); - while (true) + if (MinimumAngle.HasValue) { - int num2 = num; - int num3 = -443145177; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return false; - case 1: - return MaximumAngle.HasValue; - case 2: - goto IL_005f; - } - continue; - IL_005f: - num = -443145178; + return MaximumAngle.HasValue; } + return false; } public float CalculateMinimumDistance() diff --git a/Questionable.Model/Questionable.Model.Gathering/GatheringPointId.cs b/Questionable.Model/Questionable.Model.Gathering/GatheringPointId.cs index 2369b67..da1b982 100644 --- a/Questionable.Model/Questionable.Model.Gathering/GatheringPointId.cs +++ b/Questionable.Model/Questionable.Model.Gathering/GatheringPointId.cs @@ -14,97 +14,45 @@ public class GatheringPointId : IComparable<GatheringPointId>, IEquatable<Gather public int CompareTo(GatheringPointId? other) { - int num = (((object)this != other) ? (-1930487850) : (-1930487851)); - while (true) + if ((object)this == other) { - int num2 = num; - int num3 = -1930487852; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - return Value.CompareTo(other.Value); - case 1: - return 0; - case 0: - num = -1930487851; - break; - case 3: - return 1; - case 2: - num = (((object)other != null) ? (-1930487856) : (-1930487849)); - break; - } + return 0; } - } - - int IComparable<GatheringPointId>.CompareTo(GatheringPointId? other) - { - //ILSpy generated this explicit interface implementation from .override directive in CompareTo - return this.CompareTo(other); + if ((object)other == null) + { + return 1; + } + return Value.CompareTo(other.Value); } public bool Equals(GatheringPointId? other) { - int num = (((object)other != null) ? 1984551825 : 1984551830); - while (true) + if ((object)other == null) { - int num2 = num; - int num3 = 1984551829; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return Value == other.Value; - case 3: - return false; - case 2: - num = 1984551830; - break; - case 1: - return true; - case 4: - num = (((object)this != other) ? 1984551829 : 1984551828); - break; - } + return false; } - } - - bool IEquatable<GatheringPointId>.Equals(GatheringPointId? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); + if ((object)this == other) + { + return true; + } + return Value == other.Value; } public override bool Equals(object? obj) { - int num = ((obj != null) ? 1644524089 : 1644524094); - while (true) + if (obj == null) { - int num2 = num; - int num3 = 1644524093; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - num = 1644524094; - break; - case 4: - num = ((this != obj) ? 1644524092 : 1644524095); - break; - case 1: - num = ((!_202B_206C_206D_200E_200B_206A_202E_200B_202E_206A_200C_202E_202D_202C_206E_202C_202E_206C_200C_202B_202D_206D_202C_206C_200E_206C_202B_202B_200C_202B_206A_206A_200F_200B_206F_206D_200C_202B_200F_200F_202E(_202C_202E_206C_206D_200C_206E_206F_200E_206F_200C_206F_202B_206F_206E_202D_206F_200B_202D_200D_200B_200F_202B_202D_202A_206D_206D_202B_206C_202C_202B_202B_200F_206D_200D_200F_202C_206C_206D_206E_200E_202E(obj), _202E_200B_200D_202C_202D_200D_200C_200E_200B_200C_206D_200E_202D_206F_206E_200E_200B_206E_206E_202B_206B_202D_200F_206C_202C_202B_202E_202A_200D_200B_206A_206D_200F_202C_206D_202D_200C_200D_206C_200D_202E((object?)this))) ? 1644524093 : 1644524088); - break; - case 3: - return false; - case 5: - return false; - case 2: - return true; - case 0: - return Equals((GatheringPointId)obj); - } + return false; } + if (this == obj) + { + return true; + } + if (obj.GetType() != GetType()) + { + return false; + } + return Equals((GatheringPointId)obj); } public override int GetHashCode() @@ -114,41 +62,16 @@ public class GatheringPointId : IComparable<GatheringPointId>, IEquatable<Gather public static bool operator ==(GatheringPointId? left, GatheringPointId? right) { - return _202B_206E_206E_202A_206C_202E_202D_206F_202E_206A_206A_200B_206D_200C_206A_206E_202E_202D_202B_206D_202A_200B_206B_206B_206F_206D_200F_206D_202C_206D_202B_202E_206E_200C_206F_206B_200D_202E_206E_200E_202E((object?)left, (object?)right); + return object.Equals(left, right); } public static bool operator !=(GatheringPointId? left, GatheringPointId? right) { - return !_202B_206E_206E_202A_206C_202E_202D_206F_202E_206A_206A_200B_206D_200C_206A_206E_202E_202D_202B_206D_202A_200B_206B_206B_206F_206D_200F_206D_202C_206D_202B_202E_206E_200C_206F_206B_200D_202E_206E_200E_202E((object?)left, (object?)right); + return !object.Equals(left, right); } public static GatheringPointId FromString(string value) { - return new GatheringPointId(ushort.Parse(value, _200D_202B_200F_206C_206F_200C_200B_206E_202E_200C_206C_202C_206D_206A_202B_202D_202C_200C_200D_200C_206A_200D_202B_200F_206C_206B_206A_206C_202D_206A_202C_200B_200D_206E_202C_200E_206D_200F_206F_202C_202E())); - } - - static Type? _202C_202E_206C_206D_200C_206E_206F_200E_206F_200C_206F_202B_206F_206E_202D_206F_200B_202D_200D_200B_200F_202B_202D_202A_206D_206D_202B_206C_202C_202B_202B_200F_206D_200D_200F_202C_206C_206D_206E_200E_202E(object? P_0) - { - return P_0.GetType(); - } - - static Type? _202E_200B_200D_202C_202D_200D_200C_200E_200B_200C_206D_200E_202D_206F_206E_200E_200B_206E_206E_202B_206B_202D_200F_206C_202C_202B_202E_202A_200D_200B_206A_206D_200F_202C_206D_202D_200C_200D_206C_200D_202E(object? P_0) - { - return P_0.GetType(); - } - - static bool _202B_206C_206D_200E_200B_206A_202E_200B_202E_206A_200C_202E_202D_202C_206E_202C_202E_206C_200C_202B_202D_206D_202C_206C_200E_206C_202B_202B_200C_202B_206A_206A_200F_200B_206F_206D_200C_202B_200F_200F_202E(Type? P_0, Type? P_1) - { - return P_0 != P_1; - } - - static bool _202B_206E_206E_202A_206C_202E_202D_206F_202E_206A_206A_200B_206D_200C_206A_206E_202E_202D_202B_206D_202A_200B_206B_206B_206F_206D_200F_206D_202C_206D_202B_202E_206E_200C_206F_206B_200D_202E_206E_200E_202E(object? P_0, object? P_1) - { - return object.Equals(P_0, P_1); - } - - static CultureInfo? _200D_202B_200F_206C_206F_200C_200B_206E_202E_200C_206C_202C_206D_206A_202B_202D_202C_200C_200D_200C_206A_200D_202B_200F_206C_206B_206A_206C_202D_206A_202C_200B_200D_206E_202C_200E_206D_200F_206F_202C_202E() - { - return CultureInfo.InvariantCulture; + return new GatheringPointId(ushort.Parse(value, CultureInfo.InvariantCulture)); } } diff --git a/Questionable.Model/Questionable.Model.IO/PathBundle.cs b/Questionable.Model/Questionable.Model.IO/PathBundle.cs index 0b7d553..1fbbd43 100644 --- a/Questionable.Model/Questionable.Model.IO/PathBundle.cs +++ b/Questionable.Model/Questionable.Model.IO/PathBundle.cs @@ -1,10 +1,8 @@ using System; -using System.Collections; using System.Collections.Generic; using System.IO; using System.IO.Compression; using System.Linq; -using System.Runtime.CompilerServices; using System.Security.Cryptography; using System.Text; using System.Text.Json; @@ -14,61 +12,6 @@ namespace Questionable.Model.IO; internal static class PathBundle { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass4_0<T> where T : notnull - { - public (string Id, int Offset, int Length)[] entries; - - public byte[] container; - - public KeyValuePair<string, T>[] result; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal void _003CDeserialize_003Eb__0(int i) - { - (string Id, int Offset, int Length) tuple = entries[i]; - string item = tuple.Id; - int item2 = tuple.Offset; - int item3 = tuple.Length; - T val = JsonSerializer.Deserialize<T>(new ReadOnlySpan<byte>(container, item2, item3)); - int num = ((val != null) ? 1712657816 : 1712657817); - while (true) - { - int num2 = num; - int num3 = 1712657816; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0087; - case 0: - { - T value = val; - result[i] = new KeyValuePair<string, T>(item, value); - return; - } - case 1: - throw _206D_206E_200B_200C_202A_202C_202B_200D_202E_200D_206E_202D_200B_200C_200C_206B_206B_206B_200B_200C_200F_206D_206D_202E_206F_202D_206F_206B_202D_206F_202A_206A_202A_202B_206C_202B_200C_200D_206D_206C_202E(_200F_200D_200C_202B_200F_202D_202D_200D_200F_202B_200E_202B_200D_202B_206B_200D_206B_200B_202E_200E_200D_200E_200B_202A_202D_206A_202A_206E_206D_206D_206E_200F_206F_202A_200B_200C_200C_200B_202C_202B_202E(global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1974405317), item)); - } - continue; - IL_0087: - num = 1712657817; - } - } - - static string _200F_200D_200C_202B_200F_202D_202D_200D_200F_202B_200E_202B_200D_202B_206B_200D_206B_200B_202E_200E_200D_200E_200B_202A_202D_206A_202A_206E_206D_206D_206E_200F_206F_202A_200B_200C_200C_200B_202C_202B_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static InvalidDataException _206D_206E_200B_200C_202A_202C_202B_200D_202E_200D_206E_202D_200B_200C_200C_206B_206B_206B_200B_200C_200F_206D_206D_202E_206F_202D_206F_206B_202D_206F_202A_206A_202A_202B_206C_202B_200C_200D_206D_206C_202E(string P_0) - { - return new InvalidDataException(P_0); - } - } - private const int NonceSize = 12; private const int TagSize = 16; @@ -77,690 +20,92 @@ internal static class PathBundle internal static byte[] Encode(IReadOnlyList<KeyValuePair<string, byte[]>> entries, byte[] key, byte[] nonce) { - MemoryStream memoryStream = _202B_206B_202B_206C_200C_200E_200B_202B_202C_206C_200F_206E_202B_200C_200B_200F_202A_202A_206F_206B_202C_202A_202A_200C_200F_206D_200B_202D_206C_202E_200D_202C_200D_200B_200D_206B_200B_206F_206D_202B_202E(); - try + using MemoryStream memoryStream = new MemoryStream(); + using (BinaryWriter binaryWriter = new BinaryWriter(memoryStream, Encoding.UTF8, leaveOpen: true)) { - BinaryWriter binaryWriter = _206E_206E_200E_202B_202D_200B_206B_206A_206F_206D_206A_206F_200F_206A_206C_200C_202C_202E_206E_202C_206A_200B_206C_206A_206B_200C_200B_200B_202C_206E_206B_202C_206D_206A_202B_202C_202B_200C_206C_206B_202E((Stream)memoryStream, _200D_206A_206D_200D_206B_202E_206E_200E_202D_206B_202E_200E_206D_202A_200E_206E_200B_202D_206F_206A_200C_202C_200F_202C_202B_200E_206F_202D_200B_206D_206F_200E_206A_200E_206E_206D_202E_202A_202E_202B_202E(), true); - try + binaryWriter.Write(Magic); + binaryWriter.Write(entries.Count); + foreach (KeyValuePair<string, byte[]> entry in entries) { - _200F_206D_200F_202D_206F_200B_202A_202B_200E_206F_202B_200D_200B_206E_202E_202B_206F_206D_206B_202A_200E_206E_206E_200F_206E_206B_202A_202B_206C_200B_202E_200C_206F_200E_200D_206E_206C_202A_206A_200D_202E(binaryWriter, Magic); - _202C_200E_206F_206D_202B_206F_200C_206C_200D_200D_206E_202C_200F_206E_200F_200B_206B_202D_202D_206E_202D_202C_202C_200E_202B_206A_206D_206D_202C_206C_206E_206B_206F_206D_206E_202E_206D_206B_206C_200E_202E(binaryWriter, entries.Count); - IEnumerator<KeyValuePair<string, byte[]>> enumerator = entries.GetEnumerator(); - try - { - int num = 490624708; - while (true) - { - int num2 = num; - int num3 = 490624709; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - num = (_206A_200C_206E_200F_202A_206A_200C_206D_200C_206A_200F_200B_200D_202D_206B_200B_202A_206D_206F_200F_206F_200C_200B_206E_202D_206A_202C_206C_200B_206B_200D_202C_202E_200F_206D_202D_202D_202D_200D_206C_202E((IEnumerator)enumerator) ? 490624710 : 490624711); - break; - case 3: - { - enumerator.Current.Deconstruct(out var key2, out var value); - string text = key2; - byte[] array = value; - byte[] array2 = _200D_206C_206C_200D_200B_200E_202E_202D_202E_206A_206B_206D_202E_200F_200B_200D_202E_200F_200F_200B_200B_200B_206E_200C_206D_200E_206F_206F_200B_206A_202A_206E_200C_206A_202B_206A_200B_200D_206F_200C_202E(_200D_206A_206D_200D_206B_202E_206E_200E_202D_206B_202E_200E_206D_202A_200E_206E_200B_202D_206F_206A_200C_202C_200F_202C_202B_200E_206F_202D_200B_206D_206F_200E_206A_200E_206E_206D_202E_202A_202E_202B_202E(), text); - _200F_200F_200F_200B_200F_202A_200D_206D_200F_206D_206D_200D_206E_206A_202A_206D_206A_202E_200C_206F_200E_206A_202A_206E_206A_200D_200F_206C_202A_202B_200F_202E_202B_206A_206A_206F_206F_202B_202D_206C_202E(binaryWriter, checked((byte)array2.Length)); - _200F_206D_200F_202D_206F_200B_202A_202B_200E_206F_202B_200D_200B_206E_202E_202B_206F_206D_206B_202A_200E_206E_206E_200F_206E_206B_202A_202B_206C_200B_202E_200C_206F_200E_200D_206E_206C_202A_206A_200D_202E(binaryWriter, array2); - _202C_200E_206F_206D_202B_206F_200C_206C_200D_200D_206E_202C_200F_206E_200F_200B_206B_202D_202D_206E_202D_202C_202C_200E_202B_206A_206D_206D_202C_206C_206E_206B_206F_206D_206E_202E_206D_206B_206C_200E_202E(binaryWriter, array.Length); - _200F_206D_200F_202D_206F_200B_202A_202B_200E_206F_202B_200D_200B_206E_202E_202B_206F_206D_206B_202A_200E_206E_206E_200F_206E_206B_202A_202B_206C_200B_202E_200C_206F_200E_200D_206E_206C_202A_206A_200D_202E(binaryWriter, array); - num = 490624708; - break; - } - case 0: - num = 490624708; - break; - case 2: - goto end_IL_0041; - } - continue; - end_IL_0041: - break; - } - } - finally - { - int num = ((enumerator == null) ? (-755997639) : (-755997638)); - while (true) - { - int num7 = num; - int num3 = -755997640; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 1: - goto end_IL_0126; - case 2: - _206E_202B_200B_200C_200D_206A_202E_206F_202C_206D_202C_202D_206A_206E_202E_200E_206C_206C_202E_206B_202A_200F_200B_206F_202B_200F_200B_200D_202B_202D_202C_202C_200B_202A_200F_206C_202B_206A_200D_202E_202E((IDisposable)enumerator); - num = -755997639; - break; - case 0: - num = -755997638; - break; - } - continue; - end_IL_0126: - break; - } - } - } - finally - { - int num = ((binaryWriter == null) ? 1938638087 : 1938638086); - while (true) - { - int num10 = num; - int num3 = 1938638087; - int num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1938638086; - break; - case 0: - goto end_IL_0193; - case 1: - _206E_202B_200B_200C_200D_206A_202E_206F_202C_206D_202C_202D_206A_206E_202E_200E_206C_206C_202E_206B_202A_200F_200B_206F_202B_200F_200B_200D_202B_202D_202C_202C_200B_202A_200F_206C_202B_206A_200D_202E_202E((IDisposable)binaryWriter); - num = 1938638087; - break; - } - continue; - end_IL_0193: - break; - } - } - MemoryStream memoryStream2 = _202B_206B_202B_206C_200C_200E_200B_202B_202C_206C_200F_206E_202B_200C_200B_200F_202A_202A_206F_206B_202C_202A_202A_200C_200F_206D_200B_202D_206C_202E_200D_202C_200D_200B_200D_206B_200B_206F_206D_202B_202E(); - try - { - DeflateStream deflateStream = _206A_206F_206D_202D_200D_206A_202C_202E_202D_202E_206B_206C_200F_206E_200E_202A_202B_200B_206D_200F_206F_202E_200F_206A_202D_206A_206E_200E_200E_206A_206D_200D_200E_202D_206E_200F_206F_200E_206B_200D_202E((Stream)memoryStream2, CompressionLevel.Optimal, true); - int num3; - int num4; - try - { - _206B_200D_200F_202C_202A_200F_200B_206E_202B_206A_202C_200E_200C_206D_202A_202E_206F_206C_206E_200B_206D_200B_200E_206B_200B_206C_200B_206E_202D_206C_206A_200D_206B_202D_202C_200E_206E_200E_200F_206A_202E((Stream)deflateStream, _200B_206E_202C_200D_206C_200B_200D_202C_200F_200E_200F_206B_200B_206F_206D_202C_202E_202A_206B_206C_202E_200F_202B_206E_202E_206B_206E_206C_202C_200F_202A_206B_202B_206B_202B_206D_206C_206F_202A_206C_202E(memoryStream), 0, (int)_200E_202E_206A_200D_206B_202E_206B_206E_202C_206C_202B_200F_202A_206D_200D_200D_206C_206E_206B_200E_200D_200C_200D_202E_202A_202B_202C_202E_206E_202E_206A_206F_202D_206E_206C_206B_202B_200E_202B_206D_202E((Stream)memoryStream)); - } - finally - { - int num = ((deflateStream == null) ? (-1620706509) : (-1620706512)); - while (true) - { - int num11 = num; - num3 = -1620706511; - num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) - { - case 0: - num = -1620706512; - break; - case 1: - _206E_202B_200B_200C_200D_206A_202E_206F_202C_206D_202C_202D_206A_206E_202E_200E_206C_206C_202E_206B_202A_200F_200B_206F_202B_200F_200B_200D_202B_202D_202C_202C_200B_202A_200F_206C_202B_206A_200D_202E_202E((IDisposable)deflateStream); - num = -1620706509; - break; - case 2: - goto end_IL_0228; - } - continue; - end_IL_0228: - break; - } - } - byte[] array3 = _200D_200B_202A_206E_202B_200B_206D_200B_200F_200F_202E_206D_206A_200B_200C_200F_206B_200D_202A_202E_200E_200D_206F_202B_206D_202B_202C_200B_206E_206B_206F_200F_206D_200B_200E_200F_202C_202E_206B_200F_202E(memoryStream2); - num3 = array3.Length; - num4 = 28; - byte[] array4 = new byte[(num4 | num3) + (num4 & num3)]; - _202C_206D_200D_200B_202D_202E_202B_202E_206F_200C_202A_202E_202A_202D_206F_202C_200F_200B_200F_200F_200B_206E_200E_200C_200F_200C_206D_200B_206E_206E_200E_200B_206C_200C_206B_206F_200F_200E_200D_202D_202E((Array)nonce, (Array)array4, 0); - AesGcm aesGcm = _206D_200E_202D_200D_206B_206E_202C_200D_206D_200B_206E_200C_202A_206F_200F_200B_206D_200D_206F_202A_202C_202C_202B_202B_200F_202B_206F_200C_202A_202B_202E_206C_200B_200C_202D_206C_202E_206F_206B_200C_202E(key, 16); - try - { - _202A_200B_202C_206F_206C_206C_200F_206A_200D_200D_206B_200E_206A_202D_206E_202E_206D_202D_200E_202A_206C_202D_202D_202A_200D_206F_200C_206B_202B_200D_206C_206D_206D_206E_206F_206F_206B_200D_200B_206E_202E(aesGcm, (ReadOnlySpan<byte>)nonce, (ReadOnlySpan<byte>)array3, array4.AsSpan(28), array4.AsSpan(12, 16), default(ReadOnlySpan<byte>)); - return array4; - } - finally - { - int num = ((aesGcm == null) ? (-854300539) : (-854300538)); - while (true) - { - int num14 = num; - num3 = -854300540; - num4 = num14; - int num15 = num4 + num3; - int num16 = num4 & num3; - switch (num15 - (num16 + num16)) - { - case 0: - num = -854300538; - break; - case 1: - goto end_IL_02ff; - case 2: - _206E_202B_200B_200C_200D_206A_202E_206F_202C_206D_202C_202D_206A_206E_202E_200E_206C_206C_202E_206B_202A_200F_200B_206F_202B_200F_200B_200D_202B_202D_202C_202C_200B_202A_200F_206C_202B_206A_200D_202E_202E((IDisposable)aesGcm); - num = -854300539; - break; - } - continue; - end_IL_02ff: - break; - } - } - } - finally - { - int num = ((memoryStream2 == null) ? (-1540033213) : (-1540033214)); - while (true) - { - int num17 = num; - int num3 = -1540033213; - int num4 = num17; - int num18 = num4 + num3; - int num19 = num4 & num3; - switch (num18 - (num19 + num19)) - { - case 2: - num = -1540033214; - break; - case 0: - goto end_IL_036b; - case 1: - _206E_202B_200B_200C_200D_206A_202E_206F_202C_206D_202C_202D_206A_206E_202E_200E_206C_206C_202E_206B_202A_200F_200B_206F_202B_200F_200B_200D_202B_202D_202C_202C_200B_202A_200F_206C_202B_206A_200D_202E_202E((IDisposable)memoryStream2); - num = -1540033213; - break; - } - continue; - end_IL_036b: - break; - } + entry.Deconstruct(out var key2, out var value); + string s = key2; + byte[] array = value; + byte[] bytes = Encoding.UTF8.GetBytes(s); + binaryWriter.Write(checked((byte)bytes.Length)); + binaryWriter.Write(bytes); + binaryWriter.Write(array.Length); + binaryWriter.Write(array); } } - finally + using MemoryStream memoryStream2 = new MemoryStream(); + using (DeflateStream deflateStream = new DeflateStream(memoryStream2, CompressionLevel.Optimal, leaveOpen: true)) { - int num = ((memoryStream == null) ? (-1562787015) : (-1562787016)); - while (true) - { - int num20 = num; - int num3 = -1562787015; - int num4 = num20; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_03d6; - case 1: - _206E_202B_200B_200C_200D_206A_202E_206F_202C_206D_202C_202D_206A_206E_202E_200E_206C_206C_202E_206B_202A_200F_200B_206F_202B_200F_200B_200D_202B_202D_202C_202C_200B_202A_200F_206C_202B_206A_200D_202E_202E((IDisposable)memoryStream); - num = -1562787015; - break; - case 2: - num = -1562787016; - break; - } - continue; - end_IL_03d6: - break; - } + deflateStream.Write(memoryStream.GetBuffer(), 0, (int)memoryStream.Length); } + byte[] array2 = memoryStream2.ToArray(); + byte[] array3 = new byte[28 + array2.Length]; + nonce.CopyTo(array3, 0); + using AesGcm aesGcm = new AesGcm(key, 16); + aesGcm.Encrypt(nonce, array2, array3.AsSpan(28), array3.AsSpan(12, 16)); + return array3; } - [MethodImpl(MethodImplOptions.NoInlining)] internal static List<KeyValuePair<string, T>> Deserialize<T>(Stream stream, byte[] key) { byte[] container = Decode(stream, key); - MemoryStream memoryStream = _206C_200E_200B_206B_200D_202C_202C_202D_206A_200B_202C_206B_206F_206A_202C_202B_200F_200D_202E_200C_202A_202B_206C_202D_206D_200F_206D_200F_206C_206F_202A_206A_206B_206E_200C_206A_200F_202E_200B_202C_202E(container); - try + using MemoryStream memoryStream = new MemoryStream(container); + using BinaryReader binaryReader = new BinaryReader(memoryStream, Encoding.UTF8); + if (!((ReadOnlySpan<byte>)binaryReader.ReadBytes(Magic.Length).AsSpan()).SequenceEqual((ReadOnlySpan<byte>)Magic)) { - BinaryReader binaryReader = _206E_202D_206F_202A_202E_206E_202B_202A_200E_206A_200B_206F_200C_206E_200F_202E_200D_200E_200D_202D_202D_206B_206D_206B_206F_200C_206B_202C_202C_206D_200F_200B_202B_200F_202C_200C_206A_206D_206E_206F_202E((Stream)memoryStream, _200D_206A_206D_200D_206B_202E_206E_200E_202D_206B_202E_200E_206D_202A_200E_206E_200B_202D_206F_206A_200C_202C_200F_202C_202B_200E_206F_202D_200B_206D_206F_200E_206A_200E_206E_206D_202E_202A_202E_202B_202E()); - try - { - int num = (((ReadOnlySpan<byte>)_202C_206B_200F_200E_200C_202E_206C_202D_200C_200F_202B_200F_202A_206C_202B_206E_206F_200D_206F_206F_206D_202C_200C_200C_206E_202B_202B_202E_200B_200E_202B_206D_202D_202D_200C_206A_200E_202E_200B_202B_202E(binaryReader, Magic.Length).AsSpan()).SequenceEqual((ReadOnlySpan<byte>)Magic) ? (-1526478709) : (-1526478707)); - (string Id, int Offset, int Length)[] entries = default((string Id, int Offset, int Length)[]); - int num6 = default(int); - int num5 = default(int); - KeyValuePair<string, T>[] result; - while (true) - { - int num2 = num; - int num3 = -1526478705; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - { - int num7 = _202D_200C_200D_206D_206E_200D_206B_200F_200D_202E_202A_202D_200D_200D_202A_200B_200E_206A_206A_200E_202B_206B_200B_206E_202B_202C_200C_200B_200E_200C_206B_202C_200F_206C_202D_202A_206F_200D_202A_206C_202E(binaryReader); - string item = _202C_200E_202E_200B_206A_206F_206E_202B_200B_206C_202B_202B_202D_200E_206E_206A_206F_200E_200E_206A_202E_200D_200B_206D_206F_200D_200E_206B_202D_202E_202B_202C_206F_200D_206E_200F_206B_202D_202B_202D_202E(_200D_206A_206D_200D_206B_202E_206E_200E_202D_206B_202E_200E_206D_202A_200E_206E_200B_202D_206F_206A_200C_202C_200F_202C_202B_200E_206F_202D_200B_206D_206F_200E_206A_200E_206E_206D_202E_202A_202E_202B_202E(), _202C_206B_200F_200E_200C_202E_206C_202D_200C_200F_202B_200F_202A_206C_202B_206E_206F_200D_206F_206F_206D_202C_200C_200C_206E_202B_202B_202E_200B_200E_202B_206D_202D_202D_200C_206A_200E_202E_200B_202B_202E(binaryReader, num7)); - int num8 = _202E_206A_202A_200C_202D_200E_202B_206F_200C_200E_200C_202A_200C_200F_200D_200B_206B_200E_206D_206B_202D_202C_200C_202D_206F_202B_202B_206E_200F_202D_200B_200B_200C_202D_206E_206F_200B_202C_202B_206D_202E(binaryReader); - entries[num6] = (Id: item, Offset: (int)_202C_206C_202C_200C_202E_206E_202C_200C_206F_206F_202C_202D_202E_206B_200B_206E_206F_200C_206F_202E_200D_206F_200F_206A_200D_202B_206B_200B_200E_206C_206A_200F_200D_200B_206B_200D_200D_202E_206E_202A_202E((Stream)memoryStream), Length: num8); - _206B_206D_206A_202B_206A_206D_200D_202B_200B_206F_200E_202A_200F_202A_202E_200D_206B_202C_200E_206D_200E_200D_200D_202C_200D_206F_202A_206D_200E_206A_206C_200C_202B_206C_202A_206E_206B_206F_206C_202A_202E((Stream)memoryStream, (long)num8, SeekOrigin.Current); - int num9 = num6; - num3 = 1; - num4 = num9; - int num10 = num4 ^ num3; - int num11 = num4 & num3; - num6 = num10 + (num11 + num11); - num = -1526478706; - break; - } - case 2: - throw _206D_202C_202C_200B_206B_206C_206E_202E_206A_200E_206C_200E_202B_206B_200F_202A_206F_206F_202D_206E_202D_202E_202A_202D_200F_200D_200B_202B_200C_202A_206F_206A_202C_206D_200C_206C_202B_206B_200B_206D_202E(global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(51227269)); - case 4: - num5 = _202E_206A_202A_200C_202D_200E_202B_206F_200C_200E_200C_202A_200C_200F_200D_200B_206B_200E_206D_206B_202D_202C_200C_202D_206F_202B_202B_206E_200F_202D_200B_200B_200C_202D_206E_206F_200B_202C_202B_206D_202E(binaryReader); - entries = new(string, int, int)[num5]; - num6 = 0; - num = -1526478706; - break; - case 1: - num = ((num6 < num5) ? (-1526478710) : (-1526478708)); - break; - case 0: - num = -1526478707; - break; - case 3: - result = new KeyValuePair<string, T>[num5]; - _206C_206E_200D_200E_200D_206C_202A_206A_202B_206E_200B_200C_202D_200B_202E_202B_202D_202C_206D_202E_202C_200D_206A_202E_206D_202A_200E_202B_206F_206A_206F_202A_200F_206E_206A_206C_200B_206D_200F_200C_202E(0, num5, (Action<int>)([MethodImpl(MethodImplOptions.NoInlining)] (int i) => - { - (string Id, int Offset, int Length) tuple = entries[i]; - string item2 = tuple.Id; - int item3 = tuple.Offset; - int item4 = tuple.Length; - T val = JsonSerializer.Deserialize<T>(new ReadOnlySpan<byte>(container, item3, item4)); - int num16 = ((val != null) ? 1712657816 : 1712657817); - while (true) - { - int num17 = num16; - int num18 = 1712657816; - int num19 = num17; - int num20 = num19 + num18; - int num21 = num19 & num18; - switch (num20 - (num21 + num21)) - { - case 2: - goto IL_0087; - case 0: - { - T value = val; - result[i] = new KeyValuePair<string, T>(item2, value); - return; - } - case 1: - throw _003C_003Ec__DisplayClass4_0<T>._206D_206E_200B_200C_202A_202C_202B_200D_202E_200D_206E_202D_200B_200C_200C_206B_206B_206B_200B_200C_200F_206D_206D_202E_206F_202D_206F_206B_202D_206F_202A_206A_202A_202B_206C_202B_200C_200D_206D_206C_202E(_003C_003Ec__DisplayClass4_0<T>._200F_200D_200C_202B_200F_202D_202D_200D_200F_202B_200E_202B_200D_202B_206B_200D_206B_200B_202E_200E_200D_200E_200B_202A_202D_206A_202A_206E_206D_206D_206E_200F_206F_202A_200B_200C_200C_200B_202C_202B_202E(global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1974405317), item2)); - } - continue; - IL_0087: - num16 = 1712657817; - } - })); - return result.ToList(); - } - } - } - finally - { - int num = ((binaryReader == null) ? 1799475096 : 1799475099); - while (true) - { - int num12 = num; - int num3 = 1799475097; - int num4 = num12; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - goto end_IL_01c2; - case 2: - _206E_202B_200B_200C_200D_206A_202E_206F_202C_206D_202C_202D_206A_206E_202E_200E_206C_206C_202E_206B_202A_200F_200B_206F_202B_200F_200B_200D_202B_202D_202C_202C_200B_202A_200F_206C_202B_206A_200D_202E_202E((IDisposable)binaryReader); - num = 1799475096; - break; - case 0: - num = 1799475099; - break; - } - continue; - end_IL_01c2: - break; - } - } + throw new InvalidDataException("not a path bundle"); } - finally + int num = binaryReader.ReadInt32(); + (string Id, int Offset, int Length)[] entries = new(string, int, int)[num]; + for (int i = 0; i < num; i++) { - int num = ((memoryStream == null) ? (-173658699) : (-173658698)); - while (true) - { - int num13 = num; - int num3 = -173658697; - int num4 = num13; - int num14 = num4 + num3; - int num15 = num4 & num3; - switch (num14 - (num15 + num15)) - { - case 2: - goto end_IL_022b; - case 1: - _206E_202B_200B_200C_200D_206A_202E_206F_202C_206D_202C_202D_206A_206E_202E_200E_206C_206C_202E_206B_202A_200F_200B_206F_202B_200F_200B_200D_202B_202D_202C_202C_200B_202A_200F_206C_202B_206A_200D_202E_202E((IDisposable)memoryStream); - num = -173658699; - break; - case 0: - num = -173658698; - break; - } - continue; - end_IL_022b: - break; - } + int count = binaryReader.ReadByte(); + string item = Encoding.UTF8.GetString(binaryReader.ReadBytes(count)); + int num2 = binaryReader.ReadInt32(); + entries[i] = (Id: item, Offset: (int)memoryStream.Position, Length: num2); + memoryStream.Seek(num2, SeekOrigin.Current); } + KeyValuePair<string, T>[] result = new KeyValuePair<string, T>[num]; + Parallel.For(0, num, delegate(int num3) + { + (string Id, int Offset, int Length) tuple = entries[num3]; + string item2 = tuple.Id; + int item3 = tuple.Offset; + int item4 = tuple.Length; + T val = JsonSerializer.Deserialize<T>(new ReadOnlySpan<byte>(container, item3, item4)); + if (val == null) + { + throw new InvalidDataException("null payload for id " + item2); + } + T value = val; + result[num3] = new KeyValuePair<string, T>(item2, value); + }); + return result.ToList(); } - [MethodImpl(MethodImplOptions.NoInlining)] private static byte[] Decode(Stream stream, byte[] key) { - MemoryStream memoryStream = _202B_206B_202B_206C_200C_200E_200B_202B_202C_206C_200F_206E_202B_200C_200B_200F_202A_202A_206F_206B_202C_202A_202A_200C_200F_206D_200B_202D_206C_202E_200D_202C_200D_200B_200D_206B_200B_206F_206D_202B_202E(); - try + using MemoryStream memoryStream = new MemoryStream(); + stream.CopyTo(memoryStream); + byte[] array = memoryStream.ToArray(); + if (array.Length < 28) { - _200C_206D_206F_206A_206C_200C_206C_202A_206C_206F_206D_200C_202A_200F_202E_206D_200F_202C_206E_200F_206E_200E_200C_200B_206A_202E_206C_202C_202B_206C_202D_200E_202C_202B_200D_206A_206C_200C_202A_202E(stream, (Stream)memoryStream); - byte[] array = _200D_200B_202A_206E_202B_200B_206D_200B_200F_200F_202E_206D_206A_200B_200C_200F_206B_200D_202A_202E_200E_200D_206F_202B_206D_202B_202C_200B_206E_206B_206F_200F_206D_200B_200E_200F_202C_202E_206B_200F_202E(memoryStream); - int num = ((array.Length >= 28) ? 1638669965 : 1638669966); - while (true) - { - int num2 = num; - int num3 = 1638669967; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0062; - case 1: - throw _206D_202C_202C_200B_206B_206C_206E_202E_206A_200E_206C_200E_202B_206B_200F_202A_206F_206F_202D_206E_202D_202E_202A_202D_200F_200D_200B_202B_200C_202A_206F_206A_202C_206D_200C_206C_202B_206B_200B_206D_202E(global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(275005039)); - case 2: - { - int num5 = array.Length; - num3 = 12; - num4 = num5; - int num6 = ~(~num4 + num3); - num3 = 16; - num4 = num6; - byte[] array2 = new byte[~(~num4 + num3)]; - AesGcm aesGcm = _206D_200E_202D_200D_206B_206E_202C_200D_206D_200B_206E_200C_202A_206F_200F_200B_206D_200D_206F_202A_202C_202C_202B_202B_200F_202B_206F_200C_202A_202B_202E_206C_200B_200C_202D_206C_202E_206F_206B_200C_202E(key, 16); - try - { - _200E_202B_206A_206B_202A_206B_206A_206F_200B_200C_200E_206C_206C_206F_200F_202E_202A_202A_202C_202E_206B_202E_200D_202A_206B_202C_200F_200C_200B_206D_202C_200F_202A_206D_206D_202D_200B_200C_200E_202C_202E(aesGcm, (ReadOnlySpan<byte>)array.AsSpan(0, 12), (ReadOnlySpan<byte>)array.AsSpan(28), (ReadOnlySpan<byte>)array.AsSpan(12, 16), (Span<byte>)array2, default(ReadOnlySpan<byte>)); - } - finally - { - num = ((aesGcm == null) ? (-1257203137) : (-1257203140)); - while (true) - { - int num7 = num; - num3 = -1257203138; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - goto end_IL_0110; - case 2: - _206E_202B_200B_200C_200D_206A_202E_206F_202C_206D_202C_202D_206A_206E_202E_200E_206C_206C_202E_206B_202A_200F_200B_206F_202B_200F_200B_200D_202B_202D_202C_202C_200B_202A_200F_206C_202B_206A_200D_202E_202E((IDisposable)aesGcm); - num = -1257203137; - break; - case 0: - num = -1257203140; - break; - } - continue; - end_IL_0110: - break; - } - } - MemoryStream memoryStream2 = _202B_206B_202B_206C_200C_200E_200B_202B_202C_206C_200F_206E_202B_200C_200B_200F_202A_202A_206F_206B_202C_202A_202A_200C_200F_206D_200B_202D_206C_202E_200D_202C_200D_200B_200D_206B_200B_206F_206D_202B_202E(); - try - { - DeflateStream deflateStream = _206E_206E_202E_206A_200F_200B_206B_206A_206C_206D_200B_202E_206E_200C_206A_200D_202A_202E_200B_206D_206C_202D_202A_206B_202D_206B_202E_202C_200D_200F_206C_200F_200B_206B_200F_200D_202A_200E_202E_202E_202E((Stream)_206C_200E_200B_206B_200D_202C_202C_202D_206A_200B_202C_206B_206F_206A_202C_202B_200F_200D_202E_200C_202A_202B_206C_202D_206D_200F_206D_200F_206C_206F_202A_206A_206B_206E_200C_206A_200F_202E_200B_202C_202E(array2), CompressionMode.Decompress); - try - { - _200C_206D_206F_206A_206C_200C_206C_202A_206C_206F_206D_200C_202A_200F_202E_206D_200F_202C_206E_200F_206E_200E_200C_200B_206A_202E_206C_202C_202B_206C_202D_200E_202C_202B_200D_206A_206C_200C_202A_202E((Stream)deflateStream, (Stream)memoryStream2); - } - finally - { - num = ((deflateStream == null) ? (-710191620) : (-710191617)); - while (true) - { - int num8 = num; - num3 = -710191619; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 1: - goto end_IL_019c; - case 2: - _206E_202B_200B_200C_200D_206A_202E_206F_202C_206D_202C_202D_206A_206E_202E_200E_206C_206C_202E_206B_202A_200F_200B_206F_202B_200F_200B_200D_202B_202D_202C_202C_200B_202A_200F_206C_202B_206A_200D_202E_202E((IDisposable)deflateStream); - num = -710191620; - break; - case 0: - num = -710191617; - break; - } - continue; - end_IL_019c: - break; - } - } - return _200D_200B_202A_206E_202B_200B_206D_200B_200F_200F_202E_206D_206A_200B_200C_200F_206B_200D_202A_202E_200E_200D_206F_202B_206D_202B_202C_200B_206E_206B_206F_200F_206D_200B_200E_200F_202C_202E_206B_200F_202E(memoryStream2); - } - finally - { - num = ((memoryStream2 == null) ? (-535365269) : (-535365272)); - while (true) - { - int num11 = num; - num3 = -535365270; - num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) - { - case 0: - num = -535365272; - break; - case 2: - _206E_202B_200B_200C_200D_206A_202E_206F_202C_206D_202C_202D_206A_206E_202E_200E_206C_206C_202E_206B_202A_200F_200B_206F_202B_200F_200B_200D_202B_202D_202C_202C_200B_202A_200F_206C_202B_206A_200D_202E_202E((IDisposable)memoryStream2); - num = -535365269; - break; - case 1: - goto end_IL_0215; - } - continue; - end_IL_0215: - break; - } - } - } - } - continue; - IL_0062: - num = 1638669966; - } + throw new InvalidDataException("bundle truncated"); } - finally + byte[] array2 = new byte[array.Length - 12 - 16]; + using (AesGcm aesGcm = new AesGcm(key, 16)) { - int num = ((memoryStream == null) ? (-413653038) : (-413653037)); - while (true) - { - int num14 = num; - int num3 = -413653038; - int num4 = num14; - int num15 = num4 + num3; - int num16 = num4 & num3; - switch (num15 - (num16 + num16)) - { - case 2: - num = -413653037; - break; - case 0: - goto end_IL_0280; - case 1: - _206E_202B_200B_200C_200D_206A_202E_206F_202C_206D_202C_202D_206A_206E_202E_200E_206C_206C_202E_206B_202A_200F_200B_206F_202B_200F_200B_200D_202B_202D_202C_202C_200B_202A_200F_206C_202B_206A_200D_202E_202E((IDisposable)memoryStream); - num = -413653038; - break; - } - continue; - end_IL_0280: - break; - } + aesGcm.Decrypt(array.AsSpan(0, 12), array.AsSpan(28), array.AsSpan(12, 16), array2); } - } - - static MemoryStream _202B_206B_202B_206C_200C_200E_200B_202B_202C_206C_200F_206E_202B_200C_200B_200F_202A_202A_206F_206B_202C_202A_202A_200C_200F_206D_200B_202D_206C_202E_200D_202C_200D_200B_200D_206B_200B_206F_206D_202B_202E() - { - return new MemoryStream(); - } - - static Encoding _200D_206A_206D_200D_206B_202E_206E_200E_202D_206B_202E_200E_206D_202A_200E_206E_200B_202D_206F_206A_200C_202C_200F_202C_202B_200E_206F_202D_200B_206D_206F_200E_206A_200E_206E_206D_202E_202A_202E_202B_202E() - { - return Encoding.UTF8; - } - - static BinaryWriter _206E_206E_200E_202B_202D_200B_206B_206A_206F_206D_206A_206F_200F_206A_206C_200C_202C_202E_206E_202C_206A_200B_206C_206A_206B_200C_200B_200B_202C_206E_206B_202C_206D_206A_202B_202C_202B_200C_206C_206B_202E(Stream P_0, Encoding P_1, bool P_2) - { - return new BinaryWriter(P_0, P_1, P_2); - } - - static void _200F_206D_200F_202D_206F_200B_202A_202B_200E_206F_202B_200D_200B_206E_202E_202B_206F_206D_206B_202A_200E_206E_206E_200F_206E_206B_202A_202B_206C_200B_202E_200C_206F_200E_200D_206E_206C_202A_206A_200D_202E(BinaryWriter P_0, byte[] P_1) - { - P_0.Write(P_1); - } - - static void _202C_200E_206F_206D_202B_206F_200C_206C_200D_200D_206E_202C_200F_206E_200F_200B_206B_202D_202D_206E_202D_202C_202C_200E_202B_206A_206D_206D_202C_206C_206E_206B_206F_206D_206E_202E_206D_206B_206C_200E_202E(BinaryWriter P_0, int P_1) - { - P_0.Write(P_1); - } - - static byte[] _200D_206C_206C_200D_200B_200E_202E_202D_202E_206A_206B_206D_202E_200F_200B_200D_202E_200F_200F_200B_200B_200B_206E_200C_206D_200E_206F_206F_200B_206A_202A_206E_200C_206A_202B_206A_200B_200D_206F_200C_202E(Encoding P_0, string P_1) - { - return P_0.GetBytes(P_1); - } - - static void _200F_200F_200F_200B_200F_202A_200D_206D_200F_206D_206D_200D_206E_206A_202A_206D_206A_202E_200C_206F_200E_206A_202A_206E_206A_200D_200F_206C_202A_202B_200F_202E_202B_206A_206A_206F_206F_202B_202D_206C_202E(BinaryWriter P_0, byte P_1) - { - P_0.Write(P_1); - } - - static bool _206A_200C_206E_200F_202A_206A_200C_206D_200C_206A_200F_200B_200D_202D_206B_200B_202A_206D_206F_200F_206F_200C_200B_206E_202D_206A_202C_206C_200B_206B_200D_202C_202E_200F_206D_202D_202D_202D_200D_206C_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206E_202B_200B_200C_200D_206A_202E_206F_202C_206D_202C_202D_206A_206E_202E_200E_206C_206C_202E_206B_202A_200F_200B_206F_202B_200F_200B_200D_202B_202D_202C_202C_200B_202A_200F_206C_202B_206A_200D_202E_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static DeflateStream _206A_206F_206D_202D_200D_206A_202C_202E_202D_202E_206B_206C_200F_206E_200E_202A_202B_200B_206D_200F_206F_202E_200F_206A_202D_206A_206E_200E_200E_206A_206D_200D_200E_202D_206E_200F_206F_200E_206B_200D_202E(Stream P_0, CompressionLevel P_1, bool P_2) - { - return new DeflateStream(P_0, P_1, P_2); - } - - static byte[] _200B_206E_202C_200D_206C_200B_200D_202C_200F_200E_200F_206B_200B_206F_206D_202C_202E_202A_206B_206C_202E_200F_202B_206E_202E_206B_206E_206C_202C_200F_202A_206B_202B_206B_202B_206D_206C_206F_202A_206C_202E(MemoryStream P_0) - { - return P_0.GetBuffer(); - } - - static long _200E_202E_206A_200D_206B_202E_206B_206E_202C_206C_202B_200F_202A_206D_200D_200D_206C_206E_206B_200E_200D_200C_200D_202E_202A_202B_202C_202E_206E_202E_206A_206F_202D_206E_206C_206B_202B_200E_202B_206D_202E(Stream P_0) - { - return P_0.Length; - } - - static void _206B_200D_200F_202C_202A_200F_200B_206E_202B_206A_202C_200E_200C_206D_202A_202E_206F_206C_206E_200B_206D_200B_200E_206B_200B_206C_200B_206E_202D_206C_206A_200D_206B_202D_202C_200E_206E_200E_200F_206A_202E(Stream P_0, byte[] P_1, int P_2, int P_3) - { - P_0.Write(P_1, P_2, P_3); - } - - static byte[] _200D_200B_202A_206E_202B_200B_206D_200B_200F_200F_202E_206D_206A_200B_200C_200F_206B_200D_202A_202E_200E_200D_206F_202B_206D_202B_202C_200B_206E_206B_206F_200F_206D_200B_200E_200F_202C_202E_206B_200F_202E(MemoryStream P_0) - { - return P_0.ToArray(); - } - - static void _202C_206D_200D_200B_202D_202E_202B_202E_206F_200C_202A_202E_202A_202D_206F_202C_200F_200B_200F_200F_200B_206E_200E_200C_200F_200C_206D_200B_206E_206E_200E_200B_206C_200C_206B_206F_200F_200E_200D_202D_202E(Array P_0, Array P_1, int P_2) - { - P_0.CopyTo(P_1, P_2); - } - - static AesGcm _206D_200E_202D_200D_206B_206E_202C_200D_206D_200B_206E_200C_202A_206F_200F_200B_206D_200D_206F_202A_202C_202C_202B_202B_200F_202B_206F_200C_202A_202B_202E_206C_200B_200C_202D_206C_202E_206F_206B_200C_202E(byte[] P_0, int P_1) - { - return new AesGcm(P_0, P_1); - } - - static void _202A_200B_202C_206F_206C_206C_200F_206A_200D_200D_206B_200E_206A_202D_206E_202E_206D_202D_200E_202A_206C_202D_202D_202A_200D_206F_200C_206B_202B_200D_206C_206D_206D_206E_206F_206F_206B_200D_200B_206E_202E(AesGcm P_0, ReadOnlySpan<byte> P_1, ReadOnlySpan<byte> P_2, Span<byte> P_3, Span<byte> P_4, ReadOnlySpan<byte> P_5) - { - P_0.Encrypt(P_1, P_2, P_3, P_4, P_5); - } - - static MemoryStream _206C_200E_200B_206B_200D_202C_202C_202D_206A_200B_202C_206B_206F_206A_202C_202B_200F_200D_202E_200C_202A_202B_206C_202D_206D_200F_206D_200F_206C_206F_202A_206A_206B_206E_200C_206A_200F_202E_200B_202C_202E(byte[] P_0) - { - return new MemoryStream(P_0); - } - - static BinaryReader _206E_202D_206F_202A_202E_206E_202B_202A_200E_206A_200B_206F_200C_206E_200F_202E_200D_200E_200D_202D_202D_206B_206D_206B_206F_200C_206B_202C_202C_206D_200F_200B_202B_200F_202C_200C_206A_206D_206E_206F_202E(Stream P_0, Encoding P_1) - { - return new BinaryReader(P_0, P_1); - } - - static byte[] _202C_206B_200F_200E_200C_202E_206C_202D_200C_200F_202B_200F_202A_206C_202B_206E_206F_200D_206F_206F_206D_202C_200C_200C_206E_202B_202B_202E_200B_200E_202B_206D_202D_202D_200C_206A_200E_202E_200B_202B_202E(BinaryReader P_0, int P_1) - { - return P_0.ReadBytes(P_1); - } - - static InvalidDataException _206D_202C_202C_200B_206B_206C_206E_202E_206A_200E_206C_200E_202B_206B_200F_202A_206F_206F_202D_206E_202D_202E_202A_202D_200F_200D_200B_202B_200C_202A_206F_206A_202C_206D_200C_206C_202B_206B_200B_206D_202E(string P_0) - { - return new InvalidDataException(P_0); - } - - static int _202E_206A_202A_200C_202D_200E_202B_206F_200C_200E_200C_202A_200C_200F_200D_200B_206B_200E_206D_206B_202D_202C_200C_202D_206F_202B_202B_206E_200F_202D_200B_200B_200C_202D_206E_206F_200B_202C_202B_206D_202E(BinaryReader P_0) - { - return P_0.ReadInt32(); - } - - static byte _202D_200C_200D_206D_206E_200D_206B_200F_200D_202E_202A_202D_200D_200D_202A_200B_200E_206A_206A_200E_202B_206B_200B_206E_202B_202C_200C_200B_200E_200C_206B_202C_200F_206C_202D_202A_206F_200D_202A_206C_202E(BinaryReader P_0) - { - return P_0.ReadByte(); - } - - static string _202C_200E_202E_200B_206A_206F_206E_202B_200B_206C_202B_202B_202D_200E_206E_206A_206F_200E_200E_206A_202E_200D_200B_206D_206F_200D_200E_206B_202D_202E_202B_202C_206F_200D_206E_200F_206B_202D_202B_202D_202E(Encoding P_0, byte[] P_1) - { - return P_0.GetString(P_1); - } - - static long _202C_206C_202C_200C_202E_206E_202C_200C_206F_206F_202C_202D_202E_206B_200B_206E_206F_200C_206F_202E_200D_206F_200F_206A_200D_202B_206B_200B_200E_206C_206A_200F_200D_200B_206B_200D_200D_202E_206E_202A_202E(Stream P_0) - { - return P_0.Position; - } - - static long _206B_206D_206A_202B_206A_206D_200D_202B_200B_206F_200E_202A_200F_202A_202E_200D_206B_202C_200E_206D_200E_200D_200D_202C_200D_206F_202A_206D_200E_206A_206C_200C_202B_206C_202A_206E_206B_206F_206C_202A_202E(Stream P_0, long P_1, SeekOrigin P_2) - { - return P_0.Seek(P_1, P_2); - } - - static ParallelLoopResult _206C_206E_200D_200E_200D_206C_202A_206A_202B_206E_200B_200C_202D_200B_202E_202B_202D_202C_206D_202E_202C_200D_206A_202E_206D_202A_200E_202B_206F_206A_206F_202A_200F_206E_206A_206C_200B_206D_200F_200C_202E(int P_0, int P_1, Action<int> P_2) - { - return Parallel.For(P_0, P_1, P_2); - } - - static void _200C_206D_206F_206A_206C_200C_206C_202A_206C_206F_206D_200C_202A_200F_202E_206D_200F_202C_206E_200F_206E_200E_200C_200B_206A_202E_206C_202C_202B_206C_202D_200E_202C_202B_200D_206A_206C_200C_202A_202E(Stream P_0, Stream P_1) - { - P_0.CopyTo(P_1); - } - - static void _200E_202B_206A_206B_202A_206B_206A_206F_200B_200C_200E_206C_206C_206F_200F_202E_202A_202A_202C_202E_206B_202E_200D_202A_206B_202C_200F_200C_200B_206D_202C_200F_202A_206D_206D_202D_200B_200C_200E_202C_202E(AesGcm P_0, ReadOnlySpan<byte> P_1, ReadOnlySpan<byte> P_2, ReadOnlySpan<byte> P_3, Span<byte> P_4, ReadOnlySpan<byte> P_5) - { - P_0.Decrypt(P_1, P_2, P_3, P_4, P_5); - } - - static DeflateStream _206E_206E_202E_206A_200F_200B_206B_206A_206C_206D_200B_202E_206E_200C_206A_200D_202A_202E_200B_206D_206C_202D_202A_206B_202D_206B_202E_202C_200D_200F_206C_200F_200B_206B_200F_200D_202A_200E_202E_202E_202E(Stream P_0, CompressionMode P_1) - { - return new DeflateStream(P_0, P_1); + using MemoryStream memoryStream2 = new MemoryStream(); + using (DeflateStream deflateStream = new DeflateStream(new MemoryStream(array2), CompressionMode.Decompress)) + { + deflateStream.CopyTo(memoryStream2); + } + return memoryStream2.ToArray(); } } diff --git a/Questionable.Model/Questionable.Model.Questing.Converter/ActionConverter.cs b/Questionable.Model/Questionable.Model.Questing.Converter/ActionConverter.cs index a3e5051..4a762b5 100644 --- a/Questionable.Model/Questionable.Model.Questing.Converter/ActionConverter.cs +++ b/Questionable.Model/Questionable.Model.Questing.Converter/ActionConverter.cs @@ -9,231 +9,231 @@ public sealed class ActionConverter : EnumConverter<EAction> { { EAction.DutyAction1, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-920443251) + "Duty Action I" }, { EAction.DutyAction2, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1676496598) + "Duty Action II" }, { EAction.Dismount, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(898657976) + "Dismount" }, { EAction.HeavySwing, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(30436877) + "Heavy Swing" }, { EAction.Bootshine, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1171661279) + "Bootshine" }, { EAction.TwinSnakes, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-214735499) + "Twin Snakes" }, { EAction.Demolish, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-852885337) + "Demolish" }, { EAction.DragonKick, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1776359158) + "Dragon Kick" }, { EAction.HeavyShot, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1629894483) + "Heavy Shot" }, { EAction.Cure, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(2013561502) + "Cure" }, { EAction.Cure2, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-541372425) + "Cure II" }, { EAction.Eukrasia, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1630459609) + "Eukrasia" }, { EAction.Diagnosis, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-486914278) + "Diagnosis" }, { EAction.EukrasianDiagnosis, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1292810806) + "Eukrasian Diagnosis" }, { EAction.Esuna, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(299804680) + "Esuna" }, { EAction.Physick, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-617667769) + "Physick" }, { EAction.AspectedBenefic, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1535140218) + "Aspected Benefic" }, { EAction.FormShift, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1758189639) + "Form Shift" }, { EAction.FieryBreath, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1878817341) + "Fiery Breath" }, { EAction.BuffetSanuwa, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-395244183) + "Buffet (Sanuwa)" }, { EAction.BuffetGriffin, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(577639264) + "Buffet (Griffin)" }, { EAction.Trample, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-132809969) + "Trample" }, { EAction.Fumigate, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-405848024) + "Fumigate" }, { EAction.Roar, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-269278983) + "Roar" }, { EAction.Seed, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-2085474108) + "Seed" }, { EAction.Inhale, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1909695965) + "Inhale" }, { EAction.SiphonSnout, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(338447354) + "Siphon Snout" }, { EAction.PeculiarLight, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1777544994) + "Peculiar Light" }, { EAction.Cannonfire, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1919396001) + "Cannonfire" }, { EAction.RedGulal, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-105501459) + "Red Gulal" }, { EAction.YellowGulal, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1177061311) + "Yellow Gulal" }, { EAction.BlueGulal, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-698242973) + "Blue Gulal" }, { EAction.ElectrixFlux, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(756507430) + "Electric Flux" }, { EAction.HopStep, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1270299825) + "Hop-step" }, { EAction.Hide, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(203189369) + "Hide" }, { EAction.FumaShuriken, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1338224287) + "Fuma Shuriken" }, { EAction.Katon, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(241806869) + "Katon" }, { EAction.Raiton, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1012265295) + "Raiton" }, { EAction.SlugShot, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1330328927) + "Slug Shot" }, { EAction.BosomBrook, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1753913563) + "Bosom Brook" }, { EAction.Souleater, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(284812792) + "Souleater" }, { EAction.Fire3, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(2032344776) + "Fire III" }, { EAction.Adloquium, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(2086382274) + "Adloquium" }, { EAction.WaterCannon, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1717878783) + "Water Cannon" }, { EAction.Wasshoi, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1239213002) + "Wasshoi" }, { EAction.ShroudedLuminescence, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(785504046) + "Shrouded Luminescence" }, { EAction.BigSneeze, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1056981152) + "Big Sneeze" }, { EAction.TrickstersTreat, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-804524713) + "Trickster's Treat" }, { EAction.TreatersTrick, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1528930983) + "Treater's Trick" }, { EAction.CheerRhythmRed, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(168282828) + "Cheer Rhythm: Red" }, { EAction.CheerRhythmBlue, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-969826103) + "Cheer Rhythm: Blue" }, { EAction.CheerRhythmGreen, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-2146195740) + "Cheer Rhythm: Green" }, { EAction.CheerRhythmYellow, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1031285962) + "Cheer Rhythm: Yellow" }, { EAction.PruningPirouette, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1897838008) + "Pruning Pirouette" }, { EAction.RoaringEggscapade, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1113304102) + "Roaring Eggscapade" }, { EAction.TheSpriganator, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1984099740) + "The Spriganator" }, { EAction.CurtainCall, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1922010307) + "Curtain Call" } }; diff --git a/Questionable.Model/Questionable.Model.Questing.Converter/AethernetShardConverter.cs b/Questionable.Model/Questionable.Model.Questing.Converter/AethernetShardConverter.cs index 6bc40b4..1409807 100644 --- a/Questionable.Model/Questionable.Model.Questing.Converter/AethernetShardConverter.cs +++ b/Questionable.Model/Questionable.Model.Questing.Converter/AethernetShardConverter.cs @@ -10,579 +10,579 @@ public sealed class AethernetShardConverter : EnumConverter<EAetheryteLocation> { { EAetheryteLocation.Gridania, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-154651820) + "[Gridania] Aetheryte Plaza" }, { EAetheryteLocation.GridaniaArcher, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1835846585) + "[Gridania] Archers' Guild" }, { EAetheryteLocation.GridaniaLeatherworker, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-2051575057) + "[Gridania] Leatherworkers' Guild & Shaded Bower" }, { EAetheryteLocation.GridaniaLancer, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-354361246) + "[Gridania] Lancers' Guild" }, { EAetheryteLocation.GridaniaConjurer, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-291378646) + "[Gridania] Conjurers' Guild" }, { EAetheryteLocation.GridaniaBotanist, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1528632174) + "[Gridania] Botanists' Guild" }, { EAetheryteLocation.GridaniaAmphitheatre, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1850029754) + "[Gridania] Mih Khetto's Amphitheatre" }, { EAetheryteLocation.GridaniaBlueBadgerGate, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1556467724) + "[Gridania] Blue Badger Gate (Central Shroud)" }, { EAetheryteLocation.GridaniaYellowSerpentGate, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-2113422072) + "[Gridania] Yellow Serpent Gate (North Shroud)" }, { EAetheryteLocation.GridaniaWhiteWolfGate, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1139268377) + "[Gridania] White Wolf Gate (Central Shroud)" }, { EAetheryteLocation.GridaniaAirship, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-570872123) + "[Gridania] Airship Landing" }, { EAetheryteLocation.Uldah, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-450402229) + "[Ul'dah] Aetheryte Plaza" }, { EAetheryteLocation.UldahAdventurers, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(574939248) + "[Ul'dah] Adventurers' Guild" }, { EAetheryteLocation.UldahThaumaturge, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1547336503) + "[Ul'dah] Thaumaturges' Guild" }, { EAetheryteLocation.UldahGladiator, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-725624068) + "[Ul'dah] Gladiators' Guild" }, { EAetheryteLocation.UldahMiner, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1711110088) + "[Ul'dah] Miners' Guild" }, { EAetheryteLocation.UldahWeaver, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1861314725) + "[Ul'dah] Weavers' Guild" }, { EAetheryteLocation.UldahGoldsmith, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(489828606) + "[Ul'dah] Goldsmiths' Guild" }, { EAetheryteLocation.UldahSapphireAvenue, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(552811206) + "[Ul'dah] Sapphire Avenue Exchange" }, { EAetheryteLocation.UldahAlchemist, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(759288167) + "[Ul'dah] Alchemists' Guild" }, { EAetheryteLocation.UldahChamberOfRule, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(2020394816) + "[Ul'dah] The Chamber of Rule" }, { EAetheryteLocation.UldahGateOfTheSultana, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(2062385624) + "[Ul'dah] Gate of the Sultana (Western Thanalan)" }, { EAetheryteLocation.UldahGateOfNald, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(475670255) + "[Ul'dah] Gate of Nald (Central Thanalan)" }, { EAetheryteLocation.UldahGateOfThal, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(818409103) + "[Ul'dah] Gate of Thal (Central Thanalan)" }, { EAetheryteLocation.UldahAirship, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(307685049) + "[Ul'dah] Airship Landing" }, { EAetheryteLocation.Limsa, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-60087978) + "[Limsa Lominsa] Aetheryte Plaza" }, { EAetheryteLocation.LimsaArcanist, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-543460730) + "[Limsa Lominsa] Arcanists' Guild" }, { EAetheryteLocation.LimsaFisher, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(319664080) + "[Limsa Lominsa] Fishermen's Guild" }, { EAetheryteLocation.LimsaHawkersAlley, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1447015526) + "[Limsa Lominsa] Hawkers' Alley" }, { EAetheryteLocation.LimsaAftcastle, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1096075411) + "[Limsa Lominsa] The Aftcastle" }, { EAetheryteLocation.LimsaCulinarian, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1785177248) + "[Limsa Lominsa] Culinarians' Guild" }, { EAetheryteLocation.LimsaMarauder, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-439627582) + "[Limsa Lominsa] Marauders' Guild" }, { EAetheryteLocation.LimsaZephyrGate, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1162170065) + "[Limsa Lominsa] Zephyr Gate (Middle La Noscea)" }, { EAetheryteLocation.LimsaTempestGate, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(548038336) + "[Limsa Lominsa] Tempest Gate (Lower La Noscea)" }, { EAetheryteLocation.LimsaAirship, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1638683857) + "[Limsa Lominsa] Airship Landing" }, { EAetheryteLocation.GoldSaucer, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(2074043522) + "[Gold Saucer] Aetheryte Plaza" }, { EAetheryteLocation.GoldSaucerEntranceCardSquares, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-731784547) + "[Gold Saucer] Entrance & Card Squares" }, { EAetheryteLocation.GoldSaucerWonderSquareEast, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1441548926) + "[Gold Saucer] Wonder Square East" }, { EAetheryteLocation.GoldSaucerWonderSquareWest, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1514504991) + "[Gold Saucer] Wonder Square West" }, { EAetheryteLocation.GoldSaucerEventSquare, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1639752060) + "[Gold Saucer] Event Square" }, { EAetheryteLocation.GoldSaucerCactpotBoard, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(323881500) + "[Gold Saucer] Cactpot Board" }, { EAetheryteLocation.GoldSaucerRoundSquare, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-502177596) + "[Gold Saucer] Round Square" }, { EAetheryteLocation.GoldSaucerChocoboSquare, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1328236692) + "[Gold Saucer] Chocobo Square" }, { EAetheryteLocation.GoldSaucerMinionSquare, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(937898268) + "[Gold Saucer] Minion Square" }, { EAetheryteLocation.Ishgard, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1952835700) + "[Ishgard] Aetheryte Plaza" }, { EAetheryteLocation.IshgardForgottenKnight, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-2130096812) + "[Ishgard] The Forgotten Knight" }, { EAetheryteLocation.IshgardSkysteelManufactory, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-2104950276) + "[Ishgard] Skysteel Manufactory" }, { EAetheryteLocation.IshgardBrume, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1052253030) + "[Ishgard] The Brume" }, { EAetheryteLocation.IshgardAthenaeumAstrologicum, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(820873132) + "[Ishgard] Athenaeum Astrologicum" }, { EAetheryteLocation.IshgardJeweledCrozier, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1349485343) + "[Ishgard] The Jeweled Crozier" }, { EAetheryteLocation.IshgardSaintReymanaudsCathedral, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1848714494) + "[Ishgard] Saint Reymanaud's Cathedral" }, { EAetheryteLocation.IshgardTribunal, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(978384048) + "[Ishgard] The Tribunal" }, { EAetheryteLocation.IshgardLastVigil, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1092540632) + "[Ishgard] The Last Vigil" }, { EAetheryteLocation.IshgardGatesOfJudgement, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(130769485) + "[Ishgard] The Gates of Judgement (Coerthas Central Highlands)" }, { EAetheryteLocation.IshgardFirmament, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(512182304) + "[Ishgard] Firmament" }, { EAetheryteLocation.FirmamentMendicantsCourt, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1285043726) + "[Firmament] The Mendicant's Court" }, { EAetheryteLocation.FirmamentMattock, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(282097532) + "[Firmament] The Mattock" }, { EAetheryteLocation.FirmamentNewNest, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(2124367843) + "[Firmament] The New Nest" }, { EAetheryteLocation.FirmanentSaintRoellesDais, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(817035462) + "[Firmament] Saint Roelle's Dais" }, { EAetheryteLocation.FirmamentFeatherfall, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1356631365) + "[Firmament] Featherfall" }, { EAetheryteLocation.FirmamentHoarfrostHall, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-622852614) + "[Firmament] Hoarfrost Hall" }, { EAetheryteLocation.FirmamentWesternRisensongQuarter, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(367074466) + "[Firmament] Western Risensong Quarter" }, { EAetheryteLocation.FirmamentEasternRisensongQuarter, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1107951117) + "[Firmament] Eastern Risensong Quarter" }, { EAetheryteLocation.Idyllshire, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1024981516) + "[Idyllshire] Aetheryte Plaza" }, { EAetheryteLocation.IdyllshireWest, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(2039918948) + "[Idyllshire] West Idyllshire" }, { EAetheryteLocation.IdyllshirePrologueGate, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-2088254845) + "[Idyllshire] Prologue Gate (Western Hinterlands)" }, { EAetheryteLocation.IdyllshireEpilogueGate, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1606166755) + "[Idyllshire] Epilogue Gate (Eastern Hinterlands)" }, { EAetheryteLocation.RhalgrsReach, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(904175694) + "[Rhalgr's Reach] Aetheryte Plaza" }, { EAetheryteLocation.RhalgrsReachWest, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(422414557) + "[Rhalgr's Reach] Western Rhalgr's Reach" }, { EAetheryteLocation.RhalgrsReachNorthEast, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1266106510) + "[Rhalgr's Reach] Northeastern Rhalgr's Reach" }, { EAetheryteLocation.RhalgrsReachFringesGate, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1156106094) + "[Rhalgr's Reach] Fringes Gate" }, { EAetheryteLocation.RhalgrsReachPeaksGate, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(903963554) + "[Rhalgr's Reach] Peaks Gate" }, { EAetheryteLocation.Kugane, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(737327557) + "[Kugane] Aetheryte Plaza" }, { EAetheryteLocation.KuganeShiokazeHostelry, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(389262993) + "[Kugane] Shiokaze Hostelry" }, { EAetheryteLocation.KuganePier1, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1984652830) + "[Kugane] Pier #1" }, { EAetheryteLocation.KuganeThavnairianConsulate, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1654876663) + "[Kugane] Thavnairian Consulate" }, { EAetheryteLocation.KuganeMarkets, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1303936548) + "[Kugane] Kogane Dori Markets" }, { EAetheryteLocation.KuganeBokairoInn, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(84111244) + "[Kugane] Bokairo Inn" }, { EAetheryteLocation.KuganeRubyBazaar, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(279041210) + "[Kugane] The Ruby Bazaar" }, { EAetheryteLocation.KuganeSekiseigumiBarracks, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1028291171) + "[Kugane] Sekiseigumi Barracks" }, { EAetheryteLocation.KuganeRakuzaDistrict, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-353698586) + "[Kugane] Rakuza District" }, { EAetheryteLocation.KuganeRubyPrice, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1760655176) + "[Kugane] The Ruby Price" }, { EAetheryteLocation.KuganeAirship, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-305748688) + "[Kugane] Airship Landing" }, { EAetheryteLocation.DomanEnclave, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(175036154) + "[Doman Enclave] Aetheryte Plaza" }, { EAetheryteLocation.DomanEnclaveNorthern, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(596539376) + "[Doman Enclave] The Northern Enclave" }, { EAetheryteLocation.DomanEnclaveSouthern, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1610418315) + "[Doman Enclave] The Southern Enclave" }, { EAetheryteLocation.DomanEnclaveDocks, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1237871968) + "[Doman Enclave] Ferry Docks" }, { EAetheryteLocation.DomanEnclaveOneRiver, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1302316452) + "[Doman Enclave] The One River" }, { EAetheryteLocation.DomanEnclaveGangos, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-522822113) + "[Doman Enclave] Gangos" }, { EAetheryteLocation.Crystarium, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1426819768) + "[Crystarium] Aetheryte Plaza" }, { EAetheryteLocation.CrystariumMarkets, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1547488828) + "[Crystarium] Musica Universalis Markets" }, { EAetheryteLocation.CrystariumTemenosRookery, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1239932163) + "[Crystarium] Temenos Rookery" }, { EAetheryteLocation.CrystariumDossalGate, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1996979557) + "[Crystarium] The Dossal Gate" }, { EAetheryteLocation.CrystariumPendants, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(2059962157) + "[Crystarium] The Pendants" }, { EAetheryteLocation.CrystariumAmaroLaunch, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1278165338) + "[Crystarium] The Amaro Launch" }, { EAetheryteLocation.CrystariumCrystallineMean, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1704166220) + "[Crystarium] The Crystalline Mean" }, { EAetheryteLocation.CrystariumCabinetOfCuriosity, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1874586734) + "[Crystarium] The Cabinet of Curiosity" }, { EAetheryteLocation.CrystariumTessellation, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1184483087) + "[Crystarium] Tessellation (Lakeland)" }, { EAetheryteLocation.Eulmore, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1337286274) + "[Eulmore] Aetheryte Plaza" }, { EAetheryteLocation.EulmoreSoutheastDerelict, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(490117002) + "[Eulmore] Southeast Derelicts" }, { EAetheryteLocation.EulmoreNightsoilPots, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-858519344) + "[Eulmore] Nightsoil Pots" }, { EAetheryteLocation.EulmoreGloryGate, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1761215389) + "[Eulmore] The Glory Gate" }, { EAetheryteLocation.EulmoreMainstay, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1320723530) + "[Eulmore] The Mainstay" }, { EAetheryteLocation.EulmorePathToGlory, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(199706279) + "[Eulmore] The Path to Glory (Kholusia)" }, { EAetheryteLocation.OldSharlayan, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1839208848) + "[Old Sharlayan] Aetheryte Plaza" }, { EAetheryteLocation.OldSharlayanStudium, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(367006088) + "[Old Sharlayan] The Studium" }, { EAetheryteLocation.OldSharlayanBaldesionAnnex, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1204054181) + "[Old Sharlayan] The Baldesion Annex" }, { EAetheryteLocation.OldSharlayanRostra, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-591635593) + "[Old Sharlayan] The Rostra" }, { EAetheryteLocation.OldSharlayanLeveilleurEstate, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(184774238) + "[Old Sharlayan] The Leveilleur Estate" }, { EAetheryteLocation.OldSharlayanJourneysEnd, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1722949494) + "[Old Sharlayan] Journey's End" }, { EAetheryteLocation.OldSharlayanScholarsHarbor, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-2093584763) + "[Old Sharlayan] Scholar's Harbor" }, { EAetheryteLocation.OldSharlayanHallOfArtifice, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-728935200) + "[Old Sharlayan] The Hall of Artifice (Labyrinthos)" }, { EAetheryteLocation.RadzAtHan, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1847117793) + "[Radz-at-Han] Aetheryte Plaza" }, { EAetheryteLocation.RadzAtHanMeghaduta, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-418488035) + "[Radz-at-Han] Meghaduta" }, { EAetheryteLocation.RadzAtHanRuveydahFibers, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1873420954) + "[Radz-at-Han] Ruveydah Fibers" }, { EAetheryteLocation.RadzAtHanAirship, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1874028006) + "[Radz-at-Han] Airship Landing" }, { EAetheryteLocation.RadzAtHanAlzadaalsPeace, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1159535712) + "[Radz-at-Han] Alzadaal's Peace" }, { EAetheryteLocation.RadzAtHanHallOfTheRadiantHost, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(718544283) + "[Radz-at-Han] Hall of the Radiant Host" }, { EAetheryteLocation.RadzAtHanMehrydesMeyhane, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1549395644) + "[Radz-at-Han] Mehryde's Meyhane" }, { EAetheryteLocation.RadzAtHanKama, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(785890257) + "[Radz-at-Han] Kama" }, { EAetheryteLocation.RadzAtHanHighCrucible, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1833447809) + "[Radz-at-Han] The High Crucible of Al-Kimiya" }, { EAetheryteLocation.RadzAtHanGateOfFirstSight, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-219561939) + "[Radz-at-Han] The Gate of First Sight (Thavnair)" }, { EAetheryteLocation.Tuliyollal, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1540634472) + "[Tuliyollal] Aetheryte Plaza" }, { EAetheryteLocation.TuliyollalDirigibleLanding, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1529685964) + "[Tuliyollal] Dirigible Landing" }, { EAetheryteLocation.TuliyollalTheResplendentQuarter, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1008767039) + "[Tuliyollal] The Resplendent Quarter" }, { EAetheryteLocation.TuliyollalTheForardCabins, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1834383238) + "[Tuliyollal] The For'ard Cabins" }, { EAetheryteLocation.TuliyollalBaysideBevyMarketplace, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-836977105) + "[Tuliyollal] Bayside Bevy Marketplace" }, { EAetheryteLocation.TuliyollalVollokShoonsa, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1802696799) + "[Tuliyollal] Vollok Shoonsa" }, { EAetheryteLocation.TuliyollalWachumeqimeqi, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1831693487) + "[Tuliyollal] Wachumeqimeqi" }, { EAetheryteLocation.TuliyollalBrightploomPost, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-269334777) + "[Tuliyollal] Brightploom Post" }, { EAetheryteLocation.TuliyollalArchOfTheDawnUrqopacha, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1641380228) + "[Tuliyollal] Arch of the Dawn (Urqopacha)" }, { EAetheryteLocation.TuliyollalArchOfTheDawnKozamauka, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(588439328) + "[Tuliyollal] Arch of the Dawn (Kozama'uka)" }, { EAetheryteLocation.TuliyollalIhuykatumu, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1167210172) + "[Tuliyollal] Ihuykatumu (Kozama'uka)" }, { EAetheryteLocation.TuliyollalDirigibleLandingYakTel, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-745522402) + "[Tuliyollal] Dirigible Landing (Yak T'el)" }, { EAetheryteLocation.TuliyollalXakTuralSkygate, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-2057072714) + "[Tuliyollal] Xak Tural Skygate (Shaaloani)" }, { EAetheryteLocation.SolutionNine, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-442784534) + "[Solution Nine] Aetheryte Plaza" }, { EAetheryteLocation.SolutionNineInformationCenter, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1038335739) + "[Solution Nine] Information Center" }, { EAetheryteLocation.SolutionNineTrueVue, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1457796029) + "[Solution Nine] True Vue" }, { EAetheryteLocation.SolutionNineNeonStein, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-527950168) + "[Solution Nine] Neon Stein" }, { EAetheryteLocation.SolutionNineTheArcadion, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1721073376) + "[Solution Nine] The Arcadion" }, { EAetheryteLocation.SolutionNineResolution, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1557694312) + "[Solution Nine] Resolution" }, { EAetheryteLocation.SolutionNineNexusArcade, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1093845183) + "[Solution Nine] Nexus Arcade" }, { EAetheryteLocation.SolutionNineResidentialSector, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(246675911) + "[Solution Nine] Residential Sector" }, { EAetheryteLocation.SolutionNineScanningPortNine, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(631632294) + "[Solution Nine] Scanning Port Nine (Heritage Found)" } }; diff --git a/Questionable.Model/Questionable.Model.Questing.Converter/CombatItemUseConditionConverter.cs b/Questionable.Model/Questionable.Model.Questing.Converter/CombatItemUseConditionConverter.cs index 8b2b53c..0757bdc 100644 --- a/Questionable.Model/Questionable.Model.Questing.Converter/CombatItemUseConditionConverter.cs +++ b/Questionable.Model/Questionable.Model.Questing.Converter/CombatItemUseConditionConverter.cs @@ -9,15 +9,15 @@ public sealed class CombatItemUseConditionConverter : EnumConverter<ECombatItemU { { ECombatItemUseCondition.Incapacitated, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(2083549168) + "Incapacitated" }, { ECombatItemUseCondition.HealthPercent, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1244082044) + "Health%" }, { ECombatItemUseCondition.MissingStatus, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1125172324) + "MissingStatus" } }; diff --git a/Questionable.Model/Questionable.Model.Questing.Converter/DialogueChoiceTypeConverter.cs b/Questionable.Model/Questionable.Model.Questing.Converter/DialogueChoiceTypeConverter.cs index 726e5a1..7e60b9d 100644 --- a/Questionable.Model/Questionable.Model.Questing.Converter/DialogueChoiceTypeConverter.cs +++ b/Questionable.Model/Questionable.Model.Questing.Converter/DialogueChoiceTypeConverter.cs @@ -9,11 +9,11 @@ public sealed class DialogueChoiceTypeConverter : EnumConverter<EDialogChoiceTyp { { EDialogChoiceType.YesNo, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(431163095) + "YesNo" }, { EDialogChoiceType.List, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-504112928) + "List" } }; diff --git a/Questionable.Model/Questionable.Model.Questing.Converter/ElementIdConverter.cs b/Questionable.Model/Questionable.Model.Questing.Converter/ElementIdConverter.cs index 19f839d..73b0f45 100644 --- a/Questionable.Model/Questionable.Model.Questing.Converter/ElementIdConverter.cs +++ b/Questionable.Model/Questionable.Model.Questing.Converter/ElementIdConverter.cs @@ -8,73 +8,22 @@ public sealed class ElementIdConverter : JsonConverter<ElementId> { public override ElementId Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { - int num = ((reader.TokenType != JsonTokenType.Number) ? 937296843 : 937296840); - while (true) + if (reader.TokenType == JsonTokenType.Number) { - int num2 = num; - int num3 = 937296842; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0049; - case 1: - return ElementId.FromString(reader.GetString() ?? throw _200F_200C_200C_202B_202D_206A_200F_206B_200D_206D_202B_202C_206D_206F_202E_206C_206A_200B_200B_206B_206C_202B_206F_206D_200B_206B_202C_200C_202E_200D_200C_200D_202B_202B_200C_202C_200F_202A_202C_202C_202E()); - case 2: - return new QuestId(reader.GetUInt16()); - } - continue; - IL_0049: - num = 937296840; + return new QuestId(reader.GetUInt16()); } + return ElementId.FromString(reader.GetString() ?? throw new JsonException()); } public override void Write(Utf8JsonWriter writer, ElementId value, JsonSerializerOptions options) { - int num = ((!(value is QuestId)) ? (-1636085642) : (-1636085643)); - while (true) + if (value is QuestId) { - int num2 = num; - int num3 = -1636085641; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0048; - case 1: - _206D_202E_202D_200B_202D_200B_206B_200E_200D_206F_202D_200D_206A_200F_202D_200F_200E_202E_202D_206C_200F_206E_200F_202C_206F_206B_200B_200F_200B_200C_206C_200B_206F_206B_202D_202B_202C_200D_202B_202E_202E(writer, _200E_202C_206D_200B_200D_206A_206F_206D_200B_200F_200D_200D_206E_206A_202D_200B_202A_202E_206D_202B_202E_200E_200E_200D_200D_200E_202D_200C_206A_202D_202E_200E_202E_202E_202C_206F_202B_200D_206B_202E((object)value)); - return; - case 2: - _202D_200D_206A_202D_206A_202E_202D_202D_202C_202B_202C_202E_202B_202B_200F_206C_206E_202C_206A_202A_200C_206E_202E_206E_200E_202E_202B_206A_200B_206E_202E_206B_206C_206B_200F_202E_202D_200C_202A_202E(writer, (int)value.Value); - return; - } - continue; - IL_0048: - num = -1636085643; + writer.WriteNumberValue(value.Value); + } + else + { + writer.WriteStringValue(value.ToString()); } } - - static JsonException _200F_200C_200C_202B_202D_206A_200F_206B_200D_206D_202B_202C_206D_206F_202E_206C_206A_200B_200B_206B_206C_202B_206F_206D_200B_206B_202C_200C_202E_200D_200C_200D_202B_202B_200C_202C_200F_202A_202C_202C_202E() - { - return new JsonException(); - } - - static void _202D_200D_206A_202D_206A_202E_202D_202D_202C_202B_202C_202E_202B_202B_200F_206C_206E_202C_206A_202A_200C_206E_202E_206E_200E_202E_202B_206A_200B_206E_202E_206B_206C_206B_200F_202E_202D_200C_202A_202E(Utf8JsonWriter P_0, int P_1) - { - P_0.WriteNumberValue(P_1); - } - - static string _200E_202C_206D_200B_200D_206A_206F_206D_200B_200F_200D_200D_206E_206A_202D_200B_202A_202E_206D_202B_202E_200E_200E_200D_200D_200E_202D_200C_206A_202D_202E_200E_202E_202E_202C_206F_202B_200D_206B_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206D_202E_202D_200B_202D_200B_206B_200E_200D_206F_202D_200D_206A_200F_202D_200F_200E_202E_202D_206C_200F_206E_200F_202C_206F_206B_200B_200F_200B_200C_206C_200B_206F_206B_202D_202B_202C_200D_202B_202E_202E(Utf8JsonWriter P_0, string P_1) - { - P_0.WriteStringValue(P_1); - } } diff --git a/Questionable.Model/Questionable.Model.Questing.Converter/ElementIdListConverter.cs b/Questionable.Model/Questionable.Model.Questing.Converter/ElementIdListConverter.cs index 28c9d68..967ba51 100644 --- a/Questionable.Model/Questionable.Model.Questing.Converter/ElementIdListConverter.cs +++ b/Questionable.Model/Questionable.Model.Questing.Converter/ElementIdListConverter.cs @@ -9,121 +9,41 @@ public sealed class ElementIdListConverter : JsonConverter<List<ElementId>> { public override List<ElementId> Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { - int num = ((reader.TokenType == JsonTokenType.StartArray) ? (-129183690) : (-129183685)); - List<ElementId> list = default(List<ElementId>); - while (true) + if (reader.TokenType != JsonTokenType.StartArray) { - int num2 = num; - int num3 = -129183693; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - list.Add(new QuestId(reader.GetUInt16())); - num = -129183689; - break; - case 8: - throw _200D_206C_202A_200B_200B_200F_202E_202D_206B_200D_206F_200C_200C_202B_202D_206A_202E_206C_206B_202A_206E_206E_200F_200E_202C_202D_206E_200E_206E_202E_200B_206C_206E_200C_206B_206A_202E_206C_206A_200E_202E(); - case 3: - num = -129183685; - break; - case 1: - return list; - case 5: - reader.Read(); - list = new List<ElementId>(); - num = -129183691; - break; - case 4: - reader.Read(); - num = -129183691; - break; - case 2: - list.Add(ElementId.FromString(reader.GetString() ?? throw _200D_206C_202A_200B_200B_200F_202E_202D_206B_200D_206F_200C_200C_202B_202D_206A_202E_206C_206B_202A_206E_206E_200F_200E_202C_202D_206E_200E_206E_202E_200B_206C_206E_200C_206B_206A_202E_206C_206A_200E_202E())); - num = -129183689; - break; - case 7: - num = ((reader.TokenType != JsonTokenType.Number) ? (-129183695) : (-129183693)); - break; - case 6: - num = ((reader.TokenType != JsonTokenType.EndArray) ? (-129183692) : (-129183694)); - break; - } + throw new JsonException(); } + reader.Read(); + List<ElementId> list = new List<ElementId>(); + while (reader.TokenType != JsonTokenType.EndArray) + { + if (reader.TokenType == JsonTokenType.Number) + { + list.Add(new QuestId(reader.GetUInt16())); + } + else + { + list.Add(ElementId.FromString(reader.GetString() ?? throw new JsonException())); + } + reader.Read(); + } + return list; } public override void Write(Utf8JsonWriter writer, List<ElementId> value, JsonSerializerOptions options) { - _200B_206C_202D_200F_202E_206F_202C_206F_200F_200D_200B_206A_200D_206C_202A_202C_202A_202A_200C_202D_206D_202A_200C_202D_200D_206B_206B_206E_200D_200F_200B_200D_206B_202A_206E_206C_202A_200E_206A_202D_202E(writer); - using (List<ElementId>.Enumerator enumerator = value.GetEnumerator()) + writer.WriteStartArray(); + foreach (ElementId item in value) { - int num = 840120325; - ElementId current = default(ElementId); - while (true) + if (item is QuestId) { - int num2 = num; - int num3 = 840120321; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 840120325; - break; - case 5: - current = enumerator.Current; - num = ((!(current is QuestId)) ? 840120320 : 840120322); - break; - case 1: - _200E_202A_200D_200C_200B_202C_202E_200E_202C_206C_206D_202C_200E_200C_200B_202D_202E_200E_200C_200F_200F_200F_206C_206F_206E_200D_200C_202B_200D_206E_206C_202E_200B_206D_202C_200C_206C_206F_206C_206C_202E(writer, _202B_202E_206E_202C_200F_206D_200D_202C_200B_202E_202B_200C_202E_202C_200C_206E_200D_202A_206D_200B_202B_202A_202A_206B_202C_202E_200D_200E_206C_200D_200C_202A_202B_206D_206F_202A_200C_206F_206A_202A_202E((object)current)); - num = 840120325; - break; - case 4: - num = (enumerator.MoveNext() ? 840120324 : 840120323); - break; - case 3: - _206E_206B_206E_200F_200E_206F_206E_206D_200C_202E_202A_206F_200B_202C_206A_202A_200B_202D_206F_202D_202C_202C_202A_200F_202E_202B_200F_206A_206F_206A_202A_206F_200D_200B_202C_200F_206B_206E_202A_202A_202E(writer, (int)current.Value); - num = 840120325; - break; - case 2: - goto end_IL_0018; - } - continue; - end_IL_0018: - break; + writer.WriteNumberValue(item.Value); + } + else + { + writer.WriteStringValue(item.ToString()); } } - _202E_202B_200E_200D_206F_200E_206B_206A_200D_206D_202C_206D_200B_202D_202D_202A_202B_202C_206E_206F_200F_206D_206B_200B_200D_202E_200D_200D_202B_206B_202B_202B_206E_202B_202E_200C_206C_200B_206E_202A_202E(writer); - } - - static JsonException _200D_206C_202A_200B_200B_200F_202E_202D_206B_200D_206F_200C_200C_202B_202D_206A_202E_206C_206B_202A_206E_206E_200F_200E_202C_202D_206E_200E_206E_202E_200B_206C_206E_200C_206B_206A_202E_206C_206A_200E_202E() - { - return new JsonException(); - } - - static void _200B_206C_202D_200F_202E_206F_202C_206F_200F_200D_200B_206A_200D_206C_202A_202C_202A_202A_200C_202D_206D_202A_200C_202D_200D_206B_206B_206E_200D_200F_200B_200D_206B_202A_206E_206C_202A_200E_206A_202D_202E(Utf8JsonWriter P_0) - { - P_0.WriteStartArray(); - } - - static void _206E_206B_206E_200F_200E_206F_206E_206D_200C_202E_202A_206F_200B_202C_206A_202A_200B_202D_206F_202D_202C_202C_202A_200F_202E_202B_200F_206A_206F_206A_202A_206F_200D_200B_202C_200F_206B_206E_202A_202A_202E(Utf8JsonWriter P_0, int P_1) - { - P_0.WriteNumberValue(P_1); - } - - static string _202B_202E_206E_202C_200F_206D_200D_202C_200B_202E_202B_200C_202E_202C_200C_206E_200D_202A_206D_200B_202B_202A_202A_206B_202C_202E_200D_200E_206C_200D_200C_202A_202B_206D_206F_202A_200C_206F_206A_202A_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200E_202A_200D_200C_200B_202C_202E_200E_202C_206C_206D_202C_200E_200C_200B_202D_202E_200E_200C_200F_200F_200F_206C_206F_206E_200D_200C_202B_200D_206E_206C_202E_200B_206D_202C_200C_206C_206F_206C_206C_202E(Utf8JsonWriter P_0, string P_1) - { - P_0.WriteStringValue(P_1); - } - - static void _202E_202B_200E_200D_206F_200E_206B_206A_200D_206D_202C_206D_200B_202D_202D_202A_202B_202C_206E_206F_200F_206D_206B_200B_200D_202E_200D_200D_202B_206B_202B_202B_206E_202B_202E_200C_206C_200B_206E_202A_202E(Utf8JsonWriter P_0) - { - P_0.WriteEndArray(); + writer.WriteEndArray(); } } diff --git a/Questionable.Model/Questionable.Model.Questing.Converter/EmoteConverter.cs b/Questionable.Model/Questionable.Model.Questing.Converter/EmoteConverter.cs index a4135b3..69bdd5e 100644 --- a/Questionable.Model/Questionable.Model.Questing.Converter/EmoteConverter.cs +++ b/Questionable.Model/Questionable.Model.Questing.Converter/EmoteConverter.cs @@ -9,1063 +9,1063 @@ public sealed class EmoteConverter : EnumConverter<EEmote> { { EEmote.Surprised, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(98667450) + "surprised" }, { EEmote.Angry, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1274243662) + "angry" }, { EEmote.Furious, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1348561989) + "furious" }, { EEmote.Blush, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-864854824) + "blush" }, { EEmote.Bow, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1795881261) + "bow" }, { EEmote.Cheer, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-221423317) + "cheer" }, { EEmote.Clap, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-801872224) + "clap" }, { EEmote.Beckon, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-903630718) + "beckon" }, { EEmote.Comfort, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1266023059) + "comfort" }, { EEmote.Cry, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1030439780) + "cry" }, { EEmote.Dance, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1068591807) + "dance" }, { EEmote.Doubt, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(439963963) + "doubt" }, { EEmote.Doze, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-324005700) + "doze" }, { EEmote.Fume, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(2029992722) + "fume" }, { EEmote.Goodbye, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1250823657) + "goodbye" }, { EEmote.Wave, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-71185674) + "wave" }, { EEmote.Huh, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(872973505) + "huh" }, { EEmote.Joy, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1692980971) + "joy" }, { EEmote.Kneel, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1017336384) + "kneel" }, { EEmote.Chuckle, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-669576444) + "chuckle" }, { EEmote.Laugh, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(830680885) + "laugh" }, { EEmote.Lookout, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1180299182) + "lookout" }, { EEmote.Me, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(593751748) + "me" }, { EEmote.No, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1277764165) + "no" }, { EEmote.Deny, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1147271987) + "deny" }, { EEmote.Panic, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1803231473) + "panic" }, { EEmote.Point, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1474653182) + "point" }, { EEmote.Poke, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(612817019) + "poke" }, { EEmote.Congratulate, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(835104534) + "congratulate" }, { EEmote.Psych, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1390201925) + "psych" }, { EEmote.Salute, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1025885930) + "salute" }, { EEmote.Shocked, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1182258233) + "shocked" }, { EEmote.Shrug, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(721748952) + "shrug" }, { EEmote.Rally, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(246732313) + "rally" }, { EEmote.Soothe, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-168113590) + "soothe" }, { EEmote.Stagger, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1103389613) + "stagger" }, { EEmote.Stretch, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(889863284) + "stretch" }, { EEmote.Sulk, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1225530109) + "sulk" }, { EEmote.Think, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-617881224) + "think" }, { EEmote.Upset, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(985341395) + "upset" }, { EEmote.Welcome, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-2129987918) + "welcome" }, { EEmote.Yes, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-2016616842) + "yes" }, { EEmote.ThumbsUp, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1140011580) + "thumbsup" }, { EEmote.ExamineSelf, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-2057484029) + "examineself" }, { EEmote.Pose, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1516780487) + "pose" }, { EEmote.BlowKiss, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1751681935) + "blowkiss" }, { EEmote.Grovel, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1979751057) + "grovel" }, { EEmote.Happy, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-178230351) + "happy" }, { EEmote.Disappointed, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-942200014) + "disappointed" }, { EEmote.Lounge, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-846071550) + "lounge" }, { EEmote.GroundSit, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1877647135) + "groundsit" }, { EEmote.AirQuotes, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-928191835) + "airquotes" }, { EEmote.GcSalute, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1940629735) + "gcsalute" }, { EEmote.Pray, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-867420776) + "pray" }, { EEmote.ImperialSalute, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(2132984389) + "imperialsalute" }, { EEmote.Visor, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(914124861) + "visor" }, { EEmote.Megaflare, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(22441766) + "megaflare" }, { EEmote.CrimsonLotus, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1521851198) + "crimsonlotus" }, { EEmote.Charmed, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(849575682) + "charmed" }, { EEmote.CheerOn, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1618283828) + "cheeron" }, { EEmote.CheerWave, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1044505648) + "cheerwave" }, { EEmote.CheerJump, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1557663424) + "cheerjump" }, { EEmote.StraightFace, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-569663416) + "straightface" }, { EEmote.Smile, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-156633868) + "smile" }, { EEmote.Grin, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-2011746046) + "grin" }, { EEmote.Smirk, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1346808624) + "smirk" }, { EEmote.Taunt, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-286224556) + "taunt" }, { EEmote.ShutEyes, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-640353371) + "shuteyes" }, { EEmote.Sad, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(143922978) + "sad" }, { EEmote.Scared, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(963930444) + "scared" }, { EEmote.Amazed, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1292020461) + "amazed" }, { EEmote.Ouch, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1158860410) + "ouch" }, { EEmote.Annoyed, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1978867876) + "annoyed" }, { EEmote.Alert, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1355003061) + "alert" }, { EEmote.Worried, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-2065974146) + "worried" }, { EEmote.BigGrin, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1491542961) + "biggrin" }, { EEmote.Reflect, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(848785856) + "reflect" }, { EEmote.Furrow, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1144544209) + "furrow" }, { EEmote.Scoff, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(769000478) + "scoff" }, { EEmote.Throw, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(2116620461) + "throw" }, { EEmote.ChangePose, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1199148012) + "changepose" }, { EEmote.StepDance, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(256395680) + "stepdance" }, { EEmote.HarvestDance, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(669425228) + "harvestdance" }, { EEmote.BallDance, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(308791400) + "balldance" }, { EEmote.MandervilleDance, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1948806332) + "mandervilledance" }, { EEmote.Pet, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-251123493) + "pet" }, { EEmote.HandOver, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(406256383) + "handover" }, { EEmote.BombDance, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1182368338) + "bombdance" }, { EEmote.Hurray, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-901075998) + "hurray" }, { EEmote.Slap, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1662168223) + "slap" }, { EEmote.Hug, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1849206098) + "hug" }, { EEmote.Embrace, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1903241685) + "embrace" }, { EEmote.Hildibrand, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-2025072736) + "hildibrand" }, { EEmote.FistBump, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1336713752) + "fistbump" }, { EEmote.ThavDance, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1480328999) + "thavdance" }, { EEmote.GoldDance, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(154867554) + "golddance" }, { EEmote.SundropDance, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1115886354) + "sundropdance" }, { EEmote.BattleStance, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1378287355) + "battlestance" }, { EEmote.VictoryPose, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1963055626) + "victorypose" }, { EEmote.Backflip, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(699114469) + "backflip" }, { EEmote.EasternGreeting, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1578046250) + "easterngreeting" }, { EEmote.Eureka, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-887942603) + "eureka" }, { EEmote.MogDance, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1118849886) + "mogdance" }, { EEmote.Haurchefant, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1298118204) + "haurchefant" }, { EEmote.EasternStretch, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-884186219) + "easternstretch" }, { EEmote.EasternDance, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1151219950) + "easterndance" }, { EEmote.RangerPose1R, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1881645202) + "rangerpose1r" }, { EEmote.RangerPose2R, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(546457201) + "rangerpose2r" }, { EEmote.RangerPose3R, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-356573702) + "rangerpose3r" }, { EEmote.Wink, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(2000292546) + "wink" }, { EEmote.RangerPose1L, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(657763012) + "rangerpose1l" }, { EEmote.RangerPose2L, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1273195300) + "rangerpose2l" }, { EEmote.RangerPose3L, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-482943921) + "rangerpose3l" }, { EEmote.Facepalm, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1028022924) + "facepalm" }, { EEmote.Zantetsuken, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1811053747) + "zantetsuken" }, { EEmote.Flex, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-150475210) + "flex" }, { EEmote.Respect, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1877007873) + "respect" }, { EEmote.Sneer, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(846710812) + "sneer" }, { EEmote.PrettyPlease, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1858836049) + "prettyplease" }, { EEmote.PlayDead, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-574059846) + "playdead" }, { EEmote.IceHeart, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(2083978462) + "iceheart" }, { EEmote.MoonLift, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1320008799) + "moonlift" }, { EEmote.Dote, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1096079056) + "dote" }, { EEmote.Spectacles, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-715492218) + "spectacles" }, { EEmote.Songbird, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1554577618) + "songbird" }, { EEmote.WaterFloat, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1599991099) + "waterfloat" }, { EEmote.WaterFlip, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1535548577) + "waterflip" }, { EEmote.PuckerUp, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1844337056) + "puckerup" }, { EEmote.PowerUp, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-847407621) + "powerup" }, { EEmote.EasternBow, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-924473821) + "easternbow" }, { EEmote.Squats, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1314333753) + "squats" }, { EEmote.PushUps, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(2063161094) + "pushups" }, { EEmote.SitUps, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-909810757) + "situps" }, { EEmote.BreathControl, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1388138160) + "breathcontrol" }, { EEmote.Converse, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(619301595) + "converse" }, { EEmote.Concentrate, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1451120760) + "concentrate" }, { EEmote.Disturbed, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1411798736) + "disturbed" }, { EEmote.Simper, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(969068684) + "simper" }, { EEmote.Beam, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(205099021) + "beam" }, { EEmote.Attention, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1074482573) + "attention" }, { EEmote.AtEase, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1046127895) + "atease" }, { EEmote.Box, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-538906388) + "box" }, { EEmote.RitualPrayer, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1628393862) + "ritualprayer" }, { EEmote.Tremble, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1922521474) + "tremble" }, { EEmote.Winded, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1020667525) + "winded" }, { EEmote.Aback, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1178528460) + "aback" }, { EEmote.Greeting, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1623459731) + "greeting" }, { EEmote.BoxStep, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1919306646) + "boxstep" }, { EEmote.SideStep, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1221290023) + "sidestep" }, { EEmote.Ultima, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1052754600) + "ultima" }, { EEmote.YolDance, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(874056870) + "yoldance" }, { EEmote.Splash, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(739528886) + "splash" }, { EEmote.Sweat, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1962578928) + "sweat" }, { EEmote.Shiver, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(639725052) + "shiver" }, { EEmote.Elucidate, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(450472234) + "elucidate" }, { EEmote.Ponder, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1858224599) + "ponder" }, { EEmote.LeftWink, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-437148906) + "leftwink" }, { EEmote.GetFantasy, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(268240384) + "getfantasy" }, { EEmote.PopotoStep, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1473220423) + "popotostep" }, { EEmote.Hum, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-6981493) + "hum" }, { EEmote.Confirm, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(164605638) + "confirm" }, { EEmote.Scheme, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1767828257) + "scheme" }, { EEmote.Endure, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-252153869) + "endure" }, { EEmote.Tomestone, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(550517012) + "tomestone" }, { EEmote.HeelToe, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(160657080) + "heeltoe" }, { EEmote.GoobbueDouble, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1529732906) + "goobbuedo" }, { EEmote.Gratuity, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1706843347) + "gratuity" }, { EEmote.FistPump, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1341775306) + "fistpump" }, { EEmote.Reprimand, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(2140667863) + "reprimand" }, { EEmote.Sabotender, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1288380120) + "sabotender" }, { EEmote.MandervilleMambo, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1282398839) + "mandervillemambo" }, { EEmote.LaliHo, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1403364557) + "laliho" }, { EEmote.SimulationM, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-428408073) + "simulationm" }, { EEmote.SimulationF, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1312248632) + "simulationf" }, { EEmote.Toast, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(298409665) + "toast" }, { EEmote.Lean, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(837467568) + "lean" }, { EEmote.Headache, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1913906614) + "headache" }, { EEmote.Snap, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1527571215) + "snap" }, { EEmote.BreakFast, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1047027334) + "breakfast" }, { EEmote.Read, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(802624359) + "read" }, { EEmote.Insist, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-239460273) + "insist" }, { EEmote.Consider, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(221295472) + "consider" }, { EEmote.Wasshoi, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1450707239) + "wasshoi" }, { EEmote.FlowerShower, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1306643854) + "flowershower" }, { EEmote.FlameDance, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1457753538) + "flamedance" }, { EEmote.HighFive, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1886070129) + "highfive" }, { EEmote.Guard, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-2095397405) + "guard" }, { EEmote.Malevolence, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1754638620) + "malevolence" }, { EEmote.BeesKnees, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1741293096) + "beesknees" }, { EEmote.LaliHop, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(528776740) + "lalihop" }, { EEmote.EatRiceBall, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-987906398) + "eatriceball" }, { EEmote.EatApple, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1101957601) + "eatapple" }, { EEmote.WringHands, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-655437687) + "wringhands" }, { EEmote.Sweep, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(758503886) + "sweep" }, { EEmote.PaintBlack, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-172025471) + "paintblack" }, { EEmote.PaintRed, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1244554421) + "paintred" }, { EEmote.PaintYellow, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(773949116) + "paintyellow" }, { EEmote.PaintBlue, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1945193976) + "paintblue" }, { EEmote.FakeSmile, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1405290692) + "fakesmile" }, { EEmote.Pantomime, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1700021600) + "pantomime" }, { EEmote.Vexed, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-390353260) + "vexed" }, { EEmote.Shush, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1307825709) + "shush" }, { EEmote.EatPizza, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1019901387) + "eatpizza" }, { EEmote.ClutchHead, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-877678175) + "clutchhead" }, { EEmote.EatChocolate, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(2059681963) + "eatchocolate" }, { EEmote.EatEgg, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1414497297) + "eategg" }, { EEmote.Content, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-778548601) + "content" }, { EEmote.Sheathe, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-472607399) + "sheathe" }, { EEmote.Draw, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(2004312001) + "draw" }, { EEmote.Tea, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(719332096) + "tea" }, { EEmote.Determined, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-975143158) + "determined" }, { EEmote.ShowRight, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(16130706) + "showright" }, { EEmote.ShowLeft, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(275011842) + "showleft" }, { EEmote.Deride, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1066026804) + "deride" }, { EEmote.Wow, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(469941808) + "wow" }, { EEmote.EatPumpkinCookie, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1289949274) + "eatpumpkincookie" }, { EEmote.Spirit, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1895315349) + "spirit" }, { EEmote.MagicTrick, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(324066738) + "magictrick" }, { EEmote.LittleLadiesDance, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1055718362) + "littleladiesdance" }, { EEmote.Linkpearl, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-295843029) + "linkpearl" }, { EEmote.EarWiggle, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-272719976) + "earwiggle" }, { EEmote.Frighten, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1922947020) + "frighten" }, { EEmote.AdventOfLight, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-528105845) + "adventoflight" }, { EEmote.JumpForJoy1, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-513490336) + "jumpforjoy1" }, { EEmote.JumpForJoy2, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1369083816) + "jumpforjoy2" }, { EEmote.JumpForJoy3, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(900986020) + "jumpforjoy3" }, { EEmote.JumpForJoy4, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(2029381536) + "jumpforjoy4" }, { EEmote.JumpForJoy5, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-24362244) + "jumpforjoy5" }, { EEmote.HandToHeart, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-878739064) + "handtoheart" }, { EEmote.CheerOnBright, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-324542536) + "cheeronbright" }, { EEmote.CheerWaveViolet, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1591089667) + "cheerwaveviolet" }, { EEmote.CheerJumpGreen, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1351047410) + "cheerjumpgreen" }, { EEmote.AllSaintsCharm, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1996340295) + "allsaintscharm" }, { EEmote.LopHop, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(583393760) + "lophop" }, { EEmote.Reference, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-406435122) + "reference" }, { EEmote.EatChicken, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1886434971) + "eatchicken" }, { EEmote.Sundering, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1124925175) + "sundering" }, { EEmote.Slump, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(308599853) + "slump" }, { EEmote.LoveHeart, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-2054417066) + "loveheart" }, { EEmote.HumbleTriumph, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(916326190) + "humbletriumph" }, { EEmote.VictoryReveal, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-904949689) + "victoryreveal" }, { EEmote.FryEgg, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(547939088) + "fryegg" }, { EEmote.Uchiwasshoi, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1681427295) + "uchiwasshoi" }, { EEmote.Attend, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(497547653) + "attend" }, { EEmote.Water, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(2075878414) + "water" }, { EEmote.ShakeDrink, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1311908751) + "shakedrink" }, { EEmote.Unbound, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-465974621) + "unbound" }, { EEmote.Bouquet, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1931848452) + "bouquet" }, { EEmote.BlowBubbles, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1918187573) + "blowbubbles" }, { EEmote.Ohokaliy, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1610602393) + "ohokaliy" }, { EEmote.Visage, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1144672054) + "visage" }, { EEmote.Photograph, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1415672427) + "photograph" }, { EEmote.Overreact, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1838965527) + "overreact" }, { EEmote.Twirl, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-165517427) + "twirl" }, { EEmote.Dazed, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-197077325) + "dazed" }, { EEmote.Rage, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1619791035) + "rage" }, { EEmote.TomeScroll, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-214044221) + "tomescroll" }, { EEmote.Study, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1964930727) + "study" }, { EEmote.GridanianSip, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-457912376) + "gridaniansip" }, { EEmote.UldahnSip, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1182102556) + "uldahnsip" }, { EEmote.LominsanSip, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(456664716) + "lominsansip" }, { EEmote.GridanianGulp, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-460814196) + "gridaniangulp" }, { EEmote.UldahnGulp, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(719634203) + "uldahngulp" }, { EEmote.LominsanGulp, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1709715073) + "lominsangulp" }, { EEmote.Pen, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(474461827) + "pen" } }; diff --git a/Questionable.Model/Questionable.Model.Questing.Converter/EnemySpawnTypeConverter.cs b/Questionable.Model/Questionable.Model.Questing.Converter/EnemySpawnTypeConverter.cs index 8c20267..db280fd 100644 --- a/Questionable.Model/Questionable.Model.Questing.Converter/EnemySpawnTypeConverter.cs +++ b/Questionable.Model/Questionable.Model.Questing.Converter/EnemySpawnTypeConverter.cs @@ -9,35 +9,35 @@ public sealed class EnemySpawnTypeConverter : EnumConverter<EEnemySpawnType> { { EEnemySpawnType.AfterInteraction, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1051601295) + "AfterInteraction" }, { EEnemySpawnType.AfterItemUse, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1200775416) + "AfterItemUse" }, { EEnemySpawnType.AfterAction, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1185165004) + "AfterAction" }, { EEnemySpawnType.AfterEmote, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(2039087727) + "AfterEmote" }, { EEnemySpawnType.AutoOnEnterArea, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1832294933) + "AutoOnEnterArea" }, { EEnemySpawnType.OverworldEnemies, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(111153979) + "OverworldEnemies" }, { EEnemySpawnType.FateEnemies, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(801257626) + "FateEnemies" }, { EEnemySpawnType.FinishCombatIfAny, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(2024596938) + "FinishCombatIfAny" } }; diff --git a/Questionable.Model/Questionable.Model.Questing.Converter/ExcelRefConverter.cs b/Questionable.Model/Questionable.Model.Questing.Converter/ExcelRefConverter.cs index a0872f8..e7c9065 100644 --- a/Questionable.Model/Questionable.Model.Questing.Converter/ExcelRefConverter.cs +++ b/Questionable.Model/Questionable.Model.Questing.Converter/ExcelRefConverter.cs @@ -8,96 +8,31 @@ public sealed class ExcelRefConverter : JsonConverter<ExcelRef> { public override ExcelRef? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { - JsonTokenType tokenType = reader.TokenType; - int num = ((tokenType == JsonTokenType.String) ? (-1439045557) : (-1439045556)); - ExcelRef result = default(ExcelRef); - while (true) + return reader.TokenType switch { - int num2 = num; - int num3 = -1439045553; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1439045556; - break; - case 6: - num = -1439045558; - break; - case 4: - result = ExcelRef.FromKey(reader.GetString()); - num = -1439045555; - break; - case 1: - result = ExcelRef.FromRowId(reader.GetUInt32()); - num = -1439045555; - break; - case 3: - num = ((tokenType == JsonTokenType.Number) ? (-1439045554) : (-1439045559)); - break; - case 2: - return result; - case 5: - result = null; - num = -1439045555; - break; - } - } + JsonTokenType.String => ExcelRef.FromKey(reader.GetString()), + JsonTokenType.Number => ExcelRef.FromRowId(reader.GetUInt32()), + _ => null, + }; } public override void Write(Utf8JsonWriter writer, ExcelRef? value, JsonSerializerOptions options) { - int num = ((value != null) ? 1575360776 : 1575360781); - while (true) + if (value == null) { - int num2 = num; - int num3 = 1575360779; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - num = 1575360781; - break; - case 2: - _206B_202A_206B_200C_206D_200F_206C_202B_206D_206C_202A_202D_202B_200C_206B_200F_202C_206B_206A_200B_200F_202D_202D_202E_200B_202E_206F_202D_200E_206F_200E_202C_206B_206A_202A_202B_202E_200E_206E_206E_202E(writer, value.AsKey()); - return; - case 1: - num = ((value.Type != ExcelRef.EType.RowId) ? 1575360783 : 1575360779); - break; - case 4: - throw _206E_200D_200D_202B_206C_202A_200F_202E_206D_200C_200C_206A_200B_206D_206E_202B_206E_206E_202C_202E_202A_206A_200D_200C_200F_202D_206F_200D_206C_200F_200E_206E_206E_200D_202B_206A_200F_206F_202D_200F_202E(); - case 3: - num = ((value.Type != ExcelRef.EType.Key) ? 1575360778 : 1575360777); - break; - case 6: - _200F_206C_202B_202A_206B_206A_206C_202A_206D_202D_206F_202B_200E_202B_202C_200C_206D_206E_206D_202D_206B_202A_206D_202E_200F_206C_202A_200B_200D_202A_206E_206E_202B_200C_206C_206F_202E_206A_202A_202A_202E(writer); - return; - case 0: - _200B_200E_202E_206E_202C_202A_206A_202B_200B_200D_206B_206E_206F_202D_200D_202C_202B_206F_202A_206D_200D_202B_200C_206D_202C_206B_202A_202B_202D_200F_200F_200D_200C_200F_202B_202A_206E_206C_206C_202A_202E(writer, value.AsRowId()); - return; - } + writer.WriteNullValue(); + return; } - } - - static void _200F_206C_202B_202A_206B_206A_206C_202A_206D_202D_206F_202B_200E_202B_202C_200C_206D_206E_206D_202D_206B_202A_206D_202E_200F_206C_202A_200B_200D_202A_206E_206E_202B_200C_206C_206F_202E_206A_202A_202A_202E(Utf8JsonWriter P_0) - { - P_0.WriteNullValue(); - } - - static void _206B_202A_206B_200C_206D_200F_206C_202B_206D_206C_202A_202D_202B_200C_206B_200F_202C_206B_206A_200B_200F_202D_202D_202E_200B_202E_206F_202D_200E_206F_200E_202C_206B_206A_202A_202B_202E_200E_206E_206E_202E(Utf8JsonWriter P_0, string P_1) - { - P_0.WriteStringValue(P_1); - } - - static void _200B_200E_202E_206E_202C_202A_206A_202B_200B_200D_206B_206E_206F_202D_200D_202C_202B_206F_202A_206D_200D_202B_200C_206D_202C_206B_202A_202B_202D_200F_200F_200D_200C_200F_202B_202A_206E_206C_206C_202A_202E(Utf8JsonWriter P_0, uint P_1) - { - P_0.WriteNumberValue(P_1); - } - - static JsonException _206E_200D_200D_202B_206C_202A_200F_202E_206D_200C_200C_206A_200B_206D_206E_202B_206E_206E_202C_202E_202A_206A_200D_200C_200F_202D_206F_200D_206C_200F_200E_206E_206E_200D_202B_206A_200F_206F_202D_200F_202E() - { - return new JsonException(); + if (value.Type == ExcelRef.EType.Key) + { + writer.WriteStringValue(value.AsKey()); + return; + } + if (value.Type == ExcelRef.EType.RowId) + { + writer.WriteNumberValue(value.AsRowId()); + return; + } + throw new JsonException(); } } diff --git a/Questionable.Model/Questionable.Model.Questing.Converter/ExtendedClassJobConverter.cs b/Questionable.Model/Questionable.Model.Questing.Converter/ExtendedClassJobConverter.cs index 0dbf902..226b852 100644 --- a/Questionable.Model/Questionable.Model.Questing.Converter/ExtendedClassJobConverter.cs +++ b/Questionable.Model/Questionable.Model.Questing.Converter/ExtendedClassJobConverter.cs @@ -9,203 +9,203 @@ internal sealed class ExtendedClassJobConverter : EnumConverter<EExtendedClassJo { { EExtendedClassJob.None, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(220085912) + "None" }, { EExtendedClassJob.Gladiator, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1856855877) + "Gladiator" }, { EExtendedClassJob.Pugilist, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-2014526783) + "Pugilist" }, { EExtendedClassJob.Marauder, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1605052653) + "Marauder" }, { EExtendedClassJob.Lancer, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1726604852) + "Lancer" }, { EExtendedClassJob.Archer, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1800052101) + "Archer" }, { EExtendedClassJob.Conjurer, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1887045234) + "Conjurer" }, { EExtendedClassJob.Thaumaturge, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1239279937) + "Thaumaturge" }, { EExtendedClassJob.Carpenter, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(404863755) + "Carpenter" }, { EExtendedClassJob.Blacksmith, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(705278727) + "Blacksmith" }, { EExtendedClassJob.Armorer, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-775767864) + "Armorer" }, { EExtendedClassJob.Goldsmith, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(827454755) + "Goldsmith" }, { EExtendedClassJob.Leatherworker, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-619062784) + "Leatherworker" }, { EExtendedClassJob.Weaver, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1479280583) + "Weaver" }, { EExtendedClassJob.Alchemist, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1290468425) + "Alchemist" }, { EExtendedClassJob.Culinarian, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-2023860148) + "Culinarian" }, { EExtendedClassJob.Miner, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-2137637697) + "Miner" }, { EExtendedClassJob.Botanist, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1983714001) + "Botanist" }, { EExtendedClassJob.Fisher, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1777503038) + "Fisher" }, { EExtendedClassJob.Paladin, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(130522344) + "Paladin" }, { EExtendedClassJob.Monk, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1564935464) + "Monk" }, { EExtendedClassJob.Warrior, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1291602378) + "Warrior" }, { EExtendedClassJob.Dragoon, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(75520123) + "Dragoon" }, { EExtendedClassJob.Bard, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1256169716) + "Bard" }, { EExtendedClassJob.WhiteMage, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(538430590) + "White Mage" }, { EExtendedClassJob.BlackMage, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1577561758) + "Black Mage" }, { EExtendedClassJob.Arcanist, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1781947130) + "Arcanist" }, { EExtendedClassJob.Summoner, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1576598069) + "Summoner" }, { EExtendedClassJob.Scholar, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-807762853) + "Scholar" }, { EExtendedClassJob.Rogue, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1190429901) + "Rogue" }, { EExtendedClassJob.Ninja, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-240327074) + "Ninja" }, { EExtendedClassJob.Machinist, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1004296737) + "Machinist" }, { EExtendedClassJob.DarkKnight, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1426098160) + "Dark Knight" }, { EExtendedClassJob.Astrologian, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1002513524) + "Astrologian" }, { EExtendedClassJob.Samurai, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(2021699864) + "Samurai" }, { EExtendedClassJob.RedMage, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1450405132) + "Red Mage" }, { EExtendedClassJob.BlueMage, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1970924243) + "Blue Mage" }, { EExtendedClassJob.Gunbreaker, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1541505151) + "Gunbreaker" }, { EExtendedClassJob.Dancer, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1907941643) + "Dancer" }, { EExtendedClassJob.Reaper, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(238492990) + "Reaper" }, { EExtendedClassJob.Sage, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1995027649) + "Sage" }, { EExtendedClassJob.Viper, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1844959043) + "Viper" }, { EExtendedClassJob.Pictomancer, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-6679386) + "Pictomancer" }, { EExtendedClassJob.Beastmaster, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1237232706) + "Beastmaster" }, { EExtendedClassJob.DoW, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1411791118) + "DoW" }, { EExtendedClassJob.DoM, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1504403372) + "DoM" }, { EExtendedClassJob.DoH, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1174250106) + "DoH" }, { EExtendedClassJob.DoL, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1034508513) + "DoL" }, { EExtendedClassJob.ConfiguredCombatJob, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(483665366) + "ConfiguredCombatJob" }, { EExtendedClassJob.QuestStartJob, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-280820024) + "QuestStartJob" } }; diff --git a/Questionable.Model/Questionable.Model.Questing.Converter/InteractionTypeConverter.cs b/Questionable.Model/Questionable.Model.Questing.Converter/InteractionTypeConverter.cs index 97d1e1f..71be765 100644 --- a/Questionable.Model/Questionable.Model.Questing.Converter/InteractionTypeConverter.cs +++ b/Questionable.Model/Questionable.Model.Questing.Converter/InteractionTypeConverter.cs @@ -9,143 +9,143 @@ public sealed class InteractionTypeConverter : EnumConverter<EInteractionType> { { EInteractionType.None, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1117900284) + "None" }, { EInteractionType.Interact, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1309208735) + "Interact" }, { EInteractionType.WalkTo, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1106879120) + "WalkTo" }, { EInteractionType.AttuneAethernetShard, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1549209074) + "AttuneAethernetShard" }, { EInteractionType.AttuneAetheryte, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1716223117) + "AttuneAetheryte" }, { EInteractionType.RegisterFreeOrFavoredAetheryte, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1646008794) + "RegisterFreeOrFavoredAetheryte" }, { EInteractionType.AttuneAetherCurrent, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(896215651) + "AttuneAetherCurrent" }, { EInteractionType.Combat, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1754940727) + "Combat" }, { EInteractionType.UseItem, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1822859380) + "UseItem" }, { EInteractionType.EquipItem, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(837876705) + "EquipItem" }, { EInteractionType.UnequipItem, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1846417149) + "UnequipItem" }, { EInteractionType.PurchaseItem, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1523519145) + "PurchaseItem" }, { EInteractionType.EquipRecommended, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1066503502) + "EquipRecommended" }, { EInteractionType.Say, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(958268620) + "Say" }, { EInteractionType.Emote, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1426054162) + "Emote" }, { EInteractionType.Action, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1123609333) + "Action" }, { EInteractionType.StatusOff, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1568540604) + "StatusOff" }, { EInteractionType.WaitForObjectAtPosition, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-916266641) + "WaitForObjectAtPosition" }, { EInteractionType.WaitForManualProgress, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(2036323045) + "WaitForManualProgress" }, { EInteractionType.Duty, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1148322998) + "Duty" }, { EInteractionType.SinglePlayerDuty, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(834560316) + "SinglePlayerDuty" }, { EInteractionType.Jump, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1391632879) + "Jump" }, { EInteractionType.Dive, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1379304053) + "Dive" }, { EInteractionType.Craft, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(352799179) + "Craft" }, { EInteractionType.Gather, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1454984084) + "Gather" }, { EInteractionType.Snipe, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1442286653) + "Snipe" }, { EInteractionType.SwitchClass, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-1506629366) + "SwitchClass" }, { EInteractionType.UnlockTaxiStand, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1659367566) + "UnlockTaxiStand" }, { EInteractionType.MeldMateria, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(322492278) + "MeldMateria" }, { EInteractionType.Instruction, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-353939349) + "Instruction" }, { EInteractionType.AcceptQuest, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-524676994) + "AcceptQuest" }, { EInteractionType.CompleteQuest, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1545978293) + "CompleteQuest" }, { EInteractionType.FateAction, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-2127899613) + "FateAction" }, { EInteractionType.Fish, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1262677760) + "Fish" }, { EInteractionType.CriticalEncounter, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-987368890) + "CriticalEncounter" } }; diff --git a/Questionable.Model/Questionable.Model.Questing.Converter/JumpTypeConverter.cs b/Questionable.Model/Questionable.Model.Questing.Converter/JumpTypeConverter.cs index b19087e..17aa163 100644 --- a/Questionable.Model/Questionable.Model.Questing.Converter/JumpTypeConverter.cs +++ b/Questionable.Model/Questionable.Model.Questing.Converter/JumpTypeConverter.cs @@ -9,11 +9,11 @@ public sealed class JumpTypeConverter : EnumConverter<EJumpType> { { EJumpType.SingleJump, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1386886680) + "SingleJump" }, { EJumpType.RepeatedJumps, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(472729139) + "RepeatedJumps" } }; diff --git a/Questionable.Model/Questionable.Model.Questing.Converter/LockedSkipConditionConverter.cs b/Questionable.Model/Questionable.Model.Questing.Converter/LockedSkipConditionConverter.cs index 6542607..93e3f84 100644 --- a/Questionable.Model/Questionable.Model.Questing.Converter/LockedSkipConditionConverter.cs +++ b/Questionable.Model/Questionable.Model.Questing.Converter/LockedSkipConditionConverter.cs @@ -9,11 +9,11 @@ public sealed class LockedSkipConditionConverter : EnumConverter<ELockedSkipCond { { ELockedSkipCondition.Locked, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1790290277) + "Locked" }, { ELockedSkipCondition.Unlocked, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-2013924116) + "Unlocked" } }; diff --git a/Questionable.Model/Questionable.Model.Questing.Converter/QuestWorkConfigConverter.cs b/Questionable.Model/Questionable.Model.Questing.Converter/QuestWorkConfigConverter.cs index bd81b86..4c94d41 100644 --- a/Questionable.Model/Questionable.Model.Questing.Converter/QuestWorkConfigConverter.cs +++ b/Questionable.Model/Questionable.Model.Questing.Converter/QuestWorkConfigConverter.cs @@ -1,5 +1,4 @@ using System; -using System.Runtime.CompilerServices; using System.Text.Json; using System.Text.Json.Serialization; @@ -7,189 +6,77 @@ namespace Questionable.Model.Questing.Converter; public sealed class QuestWorkConfigConverter : JsonConverter<QuestWorkValue> { - [MethodImpl(MethodImplOptions.NoInlining)] public override QuestWorkValue Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { - int num = ((reader.TokenType != JsonTokenType.Number) ? 442773036 : 442773049); - EQuestWorkMode mode = default(EQuestWorkMode); - string text = default(string); - byte? high = default(byte?); - byte? low = default(byte?); - JsonTokenType tokenType = default(JsonTokenType); - while (true) + if (reader.TokenType == JsonTokenType.Number) { - int num2 = num; - int num3 = 442773048; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return new QuestWorkValue(reader.GetByte()); + } + if (reader.TokenType != JsonTokenType.StartObject) + { + throw new JsonException(); + } + byte? high = null; + byte? low = null; + EQuestWorkMode mode = EQuestWorkMode.Bitwise; + while (reader.Read()) + { + switch (reader.TokenType) { - case 19: - num = (reader.Read() ? 442773033 : 442773046); + case JsonTokenType.PropertyName: + { + string text = reader.GetString(); + if (text == null || !reader.Read()) + { + throw new JsonException(); + } + switch (text) + { + case "High": + high = reader.GetByte(); + break; + case "Low": + low = reader.GetByte(); + break; + case "Mode": + mode = new QuestWorkModeConverter().Read(ref reader, typeof(EQuestWorkMode), options); + break; + default: + throw new JsonException(); + } break; - case 6: - throw _206C_202A_200B_206B_206C_206B_206C_200F_202C_200F_206E_202A_200E_206D_202D_206B_206B_200D_206C_202E_200C_200F_200B_206E_206E_202E_200D_206B_202E_206F_206E_206F_202E_202D_202B_202B_206D_200D_202D_202B_202E(); - case 10: - mode = new QuestWorkModeConverter().Read(ref reader, _202B_200D_206D_206C_202B_202B_206C_200D_202A_200C_200C_200D_200F_200F_200D_202A_200F_206F_200B_202D_200B_202C_202D_206D_206D_200C_202D_202D_206A_206F_200C_206B_206A_206D_206D_206E_206D_200C_206C_202C_202E(typeof(EQuestWorkMode).TypeHandle), options); - num = 442773035; - break; - case 8: - num = (_202E_206D_206B_202A_200C_206C_206E_200D_200F_206D_202D_202B_202A_200C_200E_200C_202D_206D_200D_206A_202B_200E_200D_200F_200C_200D_206B_206E_202C_200C_206B_202D_206E_206B_200D_200D_202C_202C_206B_202A_202E(text, global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-232827495)) ? 442773042 : 442773041); - break; - case 1: - return new QuestWorkValue(reader.GetByte()); - case 9: - num = 442773050; - break; - case 15: - throw _206C_202A_200B_206B_206C_206B_206C_200F_202C_200F_206E_202A_200E_206D_202D_206B_206B_200D_206C_202E_200C_200F_200B_206E_206E_202E_200D_206B_202E_206F_206E_206F_202E_202D_202B_202B_206D_200D_202D_202B_202E(); - case 18: - high = reader.GetByte(); - num = 442773035; - break; - case 2: - throw _206C_202A_200B_206B_206C_206B_206C_200F_202C_200F_206E_202A_200E_206D_202D_206B_206B_200D_206C_202E_200C_200F_200B_206E_206E_202E_200D_206B_202E_206F_206E_206F_202E_202D_202B_202B_206D_200D_202D_202B_202E(); - case 5: - num = (_202E_206D_206B_202A_200C_206C_206E_200D_200F_206D_202D_202B_202A_200C_200E_200C_202D_206D_200D_206A_202B_200E_200D_200F_200C_200D_206B_206E_202C_200C_206B_202D_206E_206B_200D_200D_202C_202C_206B_202A_202E(text, global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(805197850)) ? 442773034 : 442773032); - break; - case 16: - num = (_202E_206D_206B_202A_200C_206C_206E_200D_200F_206D_202D_202B_202A_200C_200E_200C_202D_206D_200D_206A_202B_200E_200D_200F_200C_200D_206B_206E_202C_200C_206B_202D_206E_206B_200D_200D_202C_202C_206B_202A_202E(text, global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(856659979)) ? 442773045 : 442773040); - break; - case 13: - low = reader.GetByte(); - num = 442773035; - break; - case 20: - num = ((reader.TokenType == JsonTokenType.StartObject) ? 442773052 : 442773054); - break; - case 21: - num = (reader.Read() ? 442773053 : 442773047); - break; - case 7: - num = ((tokenType != JsonTokenType.PropertyName) ? 442773048 : 442773043); - break; - case 4: - high = null; - low = null; - mode = EQuestWorkMode.Bitwise; - num = 442773035; - break; - case 0: - throw _206C_202A_200B_206B_206C_206B_206C_200F_202C_200F_206E_202A_200E_206D_202D_206B_206B_200D_206C_202E_200C_200F_200B_206E_206E_202E_200D_206B_202E_206F_206E_206F_202E_202D_202B_202B_206D_200D_202D_202B_202E(); - case 3: - num = 442773049; - break; - case 11: - text = reader.GetString(); - num = ((text == null) ? 442773047 : 442773037); - break; - case 12: + } + case JsonTokenType.EndObject: return new QuestWorkValue(high, low, mode); - case 17: - tokenType = reader.TokenType; - num = ((tokenType == JsonTokenType.EndObject) ? 442773044 : 442773055); - break; - case 14: - throw _206C_202A_200B_206B_206C_206B_206C_200F_202C_200F_206E_202A_200E_206D_202D_206B_206B_200D_206C_202E_200C_200F_200B_206E_206E_202E_200D_206B_202E_206F_206E_206F_202E_202D_202B_202B_206D_200D_202D_202B_202E(); + default: + throw new JsonException(); } } + throw new JsonException(); } - [MethodImpl(MethodImplOptions.NoInlining)] public override void Write(Utf8JsonWriter writer, QuestWorkValue value, JsonSerializerOptions options) { - int num = ((value == null) ? (-20087947) : (-20087945)); - while (true) + if (value != null && value.High.HasValue && value.Low.HasValue && value.Mode == EQuestWorkMode.Bitwise) { - int num2 = num; - int num3 = -20087938; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - _206C_202B_200D_206C_206E_202D_206D_202D_202A_206F_206E_202A_200B_202E_202E_202D_206F_206D_202C_202D_200C_202C_202A_200B_206C_202A_206B_206B_200E_200F_206A_202D_200F_200E_202C_206F_206F_206E_200F_206F_202E(writer); - return; - case 8: - num = ((!value.Low.HasValue) ? (-20087948) : (-20087944)); - break; - case 1: - _206E_202A_200C_202E_200E_202A_206C_206A_202C_202E_202B_206D_206D_202E_206E_200D_206D_200C_206E_206B_206F_202C_202A_200D_206E_206B_202E_206D_202C_200E_200C_200F_202A_200F_200D_200C_206C_200F_200E_202B_202E(writer, global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1703476951)); - new QuestWorkModeConverter().Write(writer, value.Mode, options); - num = -20087939; - break; - case 10: - num = ((value.Mode == EQuestWorkMode.Bitwise) ? (-20087939) : (-20087937)); - break; - case 2: - num = ((!value.Low.HasValue) ? (-20087947) : (-20087941)); - break; - case 0: - { - byte b = (byte)((value.High.Value << 4) + value.Low.Value); - _202C_206F_206C_202D_206B_200E_206C_200B_206F_202E_202C_202D_200F_200E_200C_200F_202D_200C_200F_202C_206E_202C_200F_206E_200D_202A_202C_206E_206D_202D_202C_202D_202D_202A_206B_200D_202B_206F_200E_206D_202E(writer, (int)b); - return; - } - case 5: - num = ((value.Mode != EQuestWorkMode.Bitwise) ? (-20087947) : (-20087938)); - break; - case 11: - _200B_206C_202E_206F_200E_200C_200B_200E_200D_206C_200C_206D_200D_206C_206B_200D_200F_202E_202E_206D_200F_202B_200D_202B_202B_206C_202D_206B_206F_206F_202A_200D_200D_200F_202C_200C_200C_200D_200C_202C_202E(writer); - num = ((!value.High.HasValue) ? (-20087946) : (-20087942)); - break; - case 7: - num = -20087945; - break; - case 6: - _206C_206E_200B_202B_206D_206D_200F_202B_202C_206E_206E_200C_206C_206D_202D_206D_202D_206A_202A_206D_200B_200F_200E_206B_206F_202A_200C_202D_206C_200E_200E_202D_202C_200B_202C_202B_202A_206C_200C_202C_202E(writer, global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1470135272), (int)value.Low.Value); - num = -20087948; - break; - case 9: - num = ((!value.High.HasValue) ? (-20087947) : (-20087940)); - break; - case 4: - _206C_206E_200B_202B_206D_206D_200F_202B_202C_206E_206E_200C_206C_206D_202D_206D_202D_206A_202A_206D_200B_200F_200E_206B_206F_202A_200C_202D_206C_200E_200E_202D_202C_200B_202C_202B_202A_206C_200C_202C_202E(writer, global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-44654621), (int)value.High.Value); - num = -20087946; - break; - } + byte value2 = (byte)((value.High.Value << 4) + value.Low.Value); + writer.WriteNumberValue(value2); + return; } - } - - static JsonException _206C_202A_200B_206B_206C_206B_206C_200F_202C_200F_206E_202A_200E_206D_202D_206B_206B_200D_206C_202E_200C_200F_200B_206E_206E_202E_200D_206B_202E_206F_206E_206F_202E_202D_202B_202B_206D_200D_202D_202B_202E() - { - return new JsonException(); - } - - static bool _202E_206D_206B_202A_200C_206C_206E_200D_200F_206D_202D_202B_202A_200C_200E_200C_202D_206D_200D_206A_202B_200E_200D_200F_200C_200D_206B_206E_202C_200C_206B_202D_206E_206B_200D_200D_202C_202C_206B_202A_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static Type _202B_200D_206D_206C_202B_202B_206C_200D_202A_200C_200C_200D_200F_200F_200D_202A_200F_206F_200B_202D_200B_202C_202D_206D_206D_200C_202D_202D_206A_206F_200C_206B_206A_206D_206D_206E_206D_200C_206C_202C_202E(RuntimeTypeHandle P_0) - { - return System.Type.GetTypeFromHandle(P_0); - } - - static void _202C_206F_206C_202D_206B_200E_206C_200B_206F_202E_202C_202D_200F_200E_200C_200F_202D_200C_200F_202C_206E_202C_200F_206E_200D_202A_202C_206E_206D_202D_202C_202D_202D_202A_206B_200D_202B_206F_200E_206D_202E(Utf8JsonWriter P_0, int P_1) - { - P_0.WriteNumberValue(P_1); - } - - static void _200B_206C_202E_206F_200E_200C_200B_200E_200D_206C_200C_206D_200D_206C_206B_200D_200F_202E_202E_206D_200F_202B_200D_202B_202B_206C_202D_206B_206F_206F_202A_200D_200D_200F_202C_200C_200C_200D_200C_202C_202E(Utf8JsonWriter P_0) - { - P_0.WriteStartObject(); - } - - static void _206C_206E_200B_202B_206D_206D_200F_202B_202C_206E_206E_200C_206C_206D_202D_206D_202D_206A_202A_206D_200B_200F_200E_206B_206F_202A_200C_202D_206C_200E_200E_202D_202C_200B_202C_202B_202A_206C_200C_202C_202E(Utf8JsonWriter P_0, string P_1, int P_2) - { - P_0.WriteNumber(P_1, P_2); - } - - static void _206E_202A_200C_202E_200E_202A_206C_206A_202C_202E_202B_206D_206D_202E_206E_200D_206D_200C_206E_206B_206F_202C_202A_200D_206E_206B_202E_206D_202C_200E_200C_200F_202A_200F_200D_200C_206C_200F_200E_202B_202E(Utf8JsonWriter P_0, string P_1) - { - P_0.WritePropertyName(P_1); - } - - static void _206C_202B_200D_206C_206E_202D_206D_202D_202A_206F_206E_202A_200B_202E_202E_202D_206F_206D_202C_202D_200C_202C_202A_200B_206C_202A_206B_206B_200E_200F_206A_202D_200F_200E_202C_206F_206F_206E_200F_206F_202E(Utf8JsonWriter P_0) - { - P_0.WriteEndObject(); + writer.WriteStartObject(); + if (value.High.HasValue) + { + writer.WriteNumber("High", value.High.Value); + } + if (value.Low.HasValue) + { + writer.WriteNumber("Low", value.Low.Value); + } + if (value.Mode != EQuestWorkMode.Bitwise) + { + writer.WritePropertyName("Mode"); + new QuestWorkModeConverter().Write(writer, value.Mode, options); + } + writer.WriteEndObject(); } } diff --git a/Questionable.Model/Questionable.Model.Questing.Converter/QuestWorkModeConverter.cs b/Questionable.Model/Questionable.Model.Questing.Converter/QuestWorkModeConverter.cs index abaca11..3c2ddde 100644 --- a/Questionable.Model/Questionable.Model.Questing.Converter/QuestWorkModeConverter.cs +++ b/Questionable.Model/Questionable.Model.Questing.Converter/QuestWorkModeConverter.cs @@ -9,11 +9,11 @@ public sealed class QuestWorkModeConverter : EnumConverter<EQuestWorkMode> { { EQuestWorkMode.Bitwise, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1893719908) + "Bitwise" }, { EQuestWorkMode.Exact, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1802603983) + "Exact" } }; diff --git a/Questionable.Model/Questionable.Model.Questing.Converter/SkipConditionConverter.cs b/Questionable.Model/Questionable.Model.Questing.Converter/SkipConditionConverter.cs index 54d2653..53eccf4 100644 --- a/Questionable.Model/Questionable.Model.Questing.Converter/SkipConditionConverter.cs +++ b/Questionable.Model/Questionable.Model.Questing.Converter/SkipConditionConverter.cs @@ -9,27 +9,27 @@ public sealed class SkipConditionConverter : EnumConverter<EExtraSkipCondition> { { EExtraSkipCondition.WakingSandsMainArea, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1312725330) + "WakingSandsMainArea" }, { EExtraSkipCondition.WakingSandsSolar, - global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(347424923) + "WakingSandsSolar" }, { EExtraSkipCondition.RisingStonesSolar, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-556671983) + "RisingStonesSolar" }, { EExtraSkipCondition.RoguesGuild, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-525640832) + "RoguesGuild" }, { EExtraSkipCondition.NotRoguesGuild, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-754181016) + "NotRoguesGuild" }, { EExtraSkipCondition.DockStorehouse, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(2064364815) + "DockStorehouse" } }; diff --git a/Questionable.Model/Questionable.Model.Questing.Converter/StatusConverter.cs b/Questionable.Model/Questionable.Model.Questing.Converter/StatusConverter.cs index a173cd4..514d43b 100644 --- a/Questionable.Model/Questionable.Model.Questing.Converter/StatusConverter.cs +++ b/Questionable.Model/Questionable.Model.Questing.Converter/StatusConverter.cs @@ -9,15 +9,15 @@ public sealed class StatusConverter : EnumConverter<EStatus> { { EStatus.Transfiguration, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1080763882) + "Transfiguration" }, { EStatus.Hidden, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-535107510) + "Hidden" }, { EStatus.FaceInTheCrowd, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-533388670) + "FaceInTheCrowd" } }; diff --git a/Questionable.Model/Questionable.Model.Questing/EActionExtensions.cs b/Questionable.Model/Questionable.Model.Questing/EActionExtensions.cs index 1e276d9..caf08cd 100644 --- a/Questionable.Model/Questionable.Model.Questing/EActionExtensions.cs +++ b/Questionable.Model/Questionable.Model.Questing/EActionExtensions.cs @@ -4,122 +4,34 @@ public static class EActionExtensions { public static bool RequiresMount(this EAction action) { - int num = ((action > EAction.Wasshoi) ? 2059469552 : 2059469519); - bool result = default(bool); - while (true) + switch (action) { - int num2 = num; - int num3 = 2059469521; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 27: - num = ((action == EAction.PeculiarLight) ? 2059469512 : 2059469507); - break; - case 13: - num = ((action == EAction.Fumigate) ? 2059469512 : 2059469533); - break; - case 19: - num = (((uint)(action - 1764) <= 1u) ? 2059469512 : 2059469553); - break; - case 8: - num = ((action > EAction.BigSneeze) ? 2059469504 : 2059469520); - break; - case 2: - num = ((action == EAction.Trample) ? 2059469512 : 2059469524); - break; - case 15: - num = ((action == EAction.Wasshoi) ? 2059469512 : 2059469555); - break; - case 9: - return result; - case 10: - num = ((action == EAction.SiphonSnout) ? 2059469512 : 2059469514); - break; - case 32: - num = 2059469525; - break; - case 33: - num = ((action > EAction.BlueGulal) ? 2059469505 : 2059469516); - break; - case 26: - num = (((uint)(action - 44517) > 1u) ? 2059469525 : 2059469512); - break; - case 4: - result = false; - num = 2059469528; - break; - case 34: - num = 2059469525; - break; - case 23: - num = 2059469519; - break; - case 21: - num = (((uint)(action - 6293) <= 1u) ? 2059469512 : 2059469526); - break; - case 18: - num = 2059469525; - break; - case 3: - num = ((action == EAction.Cannonfire) ? 2059469512 : 2059469509); - break; - case 0: - num = ((action == EAction.ElectrixFlux) ? 2059469512 : 2059469527); - break; - case 30: - num = ((action > EAction.Trample) ? 2059469517 : 2059469529); - break; - case 29: - num = ((action > EAction.PeculiarLight) ? 2059469522 : 2059469531); - break; - case 6: - num = ((action == EAction.HopStep) ? 2059469512 : 2059469530); - break; - case 12: - num = 2059469525; - break; - case 5: - num = 2059469525; - break; - case 7: - num = ((action == EAction.Inhale) ? 2059469512 : 2059469534); - break; - case 22: - num = ((action == EAction.ShroudedLuminescence) ? 2059469512 : 2059469515); - break; - case 16: - num = ((action > EAction.HopStep) ? 2059469535 : 2059469521); - break; - case 14: - num = ((action == EAction.BosomBrook) ? 2059469512 : 2059469511); - break; - case 20: - num = (((uint)(action - 29382) <= 2u) ? 2059469512 : 2059469518); - break; - case 11: - num = 2059469525; - break; - case 17: - num = ((action == EAction.BuffetGriffin) ? 2059469512 : 2059469523); - break; - case 25: - result = true; - num = 2059469528; - break; - case 1: - num = ((action == EAction.Dismount) ? 2059469512 : 2059469506); - break; - case 24: - num = ((action == EAction.BuffetSanuwa) ? 2059469512 : 2059469532); - break; - case 28: - num = ((action > EAction.Fumigate) ? 2059469508 : 2059469513); - break; - case 31: - num = 2059469525; - break; - } + case EAction.Dismount: + case EAction.FieryBreath: + case EAction.BigSneeze: + case EAction.BuffetGriffin: + case EAction.Trample: + case EAction.BuffetSanuwa: + case EAction.Fumigate: + case EAction.Roar: + case EAction.Seed: + case EAction.Inhale: + case EAction.Wasshoi: + case EAction.SiphonSnout: + case EAction.PeculiarLight: + case EAction.Cannonfire: + case EAction.RedGulal: + case EAction.YellowGulal: + case EAction.BlueGulal: + case EAction.ElectrixFlux: + case EAction.HopStep: + case EAction.BosomBrook: + case EAction.ShroudedLuminescence: + case EAction.TrickstersTreat: + case EAction.TreatersTrick: + return true; + default: + return false; } } } diff --git a/Questionable.Model/Questionable.Model.Questing/ElementId.cs b/Questionable.Model/Questionable.Model.Questing/ElementId.cs index 75c6605..549ebed 100644 --- a/Questionable.Model/Questionable.Model.Questing/ElementId.cs +++ b/Questionable.Model/Questionable.Model.Questing/ElementId.cs @@ -1,8 +1,6 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Globalization; -using System.Runtime.CompilerServices; namespace Questionable.Model.Questing; @@ -17,104 +15,49 @@ public abstract class ElementId : IComparable<ElementId>, IEquatable<ElementId> public int CompareTo(ElementId? other) { - int num = (((object)this != other) ? 1197187714 : 1197187715); - while (true) + if ((object)this == other) { - int num2 = num; - int num3 = 1197187714; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1197187715; - break; - case 1: - return 0; - case 4: - return 1; - case 3: - return Value.CompareTo(other.Value); - case 0: - num = (((object)other != null) ? 1197187713 : 1197187718); - break; - } + return 0; } - } - - int IComparable<ElementId>.CompareTo(ElementId? other) - { - //ILSpy generated this explicit interface implementation from .override directive in CompareTo - return this.CompareTo(other); + if ((object)other == null) + { + return 1; + } + return Value.CompareTo(other.Value); } public bool Equals(ElementId? other) { - int num = (((object)other != null) ? (-1056496819) : (-1056496824)); - while (true) + if ((object)other == null) { - int num2 = num; - int num3 = -1056496820; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = -1056496824; - break; - case 1: - num = (((object)this != other) ? (-1056496818) : (-1056496823)); - break; - case 6: - return Value == other.Value; - case 0: - return false; - case 5: - return true; - case 4: - return false; - case 2: - num = ((!_200C_200B_200B_202C_206F_206A_206E_206A_206F_202A_200F_202B_200D_206C_206D_206B_206D_206C_202B_202A_202C_206C_206D_206A_206B_200C_206B_200D_206E_200F_206A_202D_206A_202D_202E_200E_200B_200E_206D_202D_202E(_202C_206B_200C_206A_206E_202B_200E_200D_206A_206F_202E_206F_206C_206D_200C_200C_206A_200F_202B_202C_202A_200C_202B_202A_206F_206B_200D_200E_206C_206E_206D_206B_200C_206E_200D_200E_200D_206C_206F_206A_202E((object?)other), _202E_202E_200B_202E_202A_202C_206B_202C_200D_200C_206E_206C_206E_200E_206C_202B_206C_200C_202D_202A_200C_200F_200C_200E_206C_200D_200B_206E_206A_200D_206B_206B_206E_202D_202B_202D_200F_200D_202B_202D_202E((object?)this))) ? (-1056496822) : (-1056496820)); - break; - } + return false; } - } - - bool IEquatable<ElementId>.Equals(ElementId? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); + if ((object)this == other) + { + return true; + } + if (other.GetType() != GetType()) + { + return false; + } + return Value == other.Value; } public override bool Equals(object? obj) { - int num = ((obj != null) ? (-1614624425) : (-1614624428)); - while (true) + if (obj == null) { - int num2 = num; - int num3 = -1614624426; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - return Equals((ElementId)obj); - case 1: - num = ((this != obj) ? (-1614624429) : (-1614624432)); - break; - case 3: - return false; - case 6: - return true; - case 0: - num = -1614624428; - break; - case 2: - return false; - case 5: - num = ((!_200C_200B_200B_202C_206F_206A_206E_206A_206F_202A_200F_202B_200D_206C_206D_206B_206D_206C_202B_202A_202C_206C_206D_206A_206B_200C_206B_200D_206E_200F_206A_202D_206A_202D_202E_200E_200B_200E_206D_202D_202E(_202C_206B_200C_206A_206E_202B_200E_200D_206A_206F_202E_206F_206C_206D_200C_200C_206A_200F_202B_202C_202A_200C_202B_202A_206F_206B_200D_200E_206C_206E_206D_206B_200C_206E_200D_200E_200D_206C_206F_206A_202E(obj), _202E_202E_200B_202E_202A_202C_206B_202C_200D_200C_206E_206C_206E_200E_206C_202B_206C_200C_202D_202A_200C_200F_200C_200E_206C_200D_200B_206E_206A_200D_206B_206B_206E_202D_202B_202D_200F_200D_202B_202D_202E((object?)this))) ? (-1614624430) : (-1614624427)); - break; - } + return false; } + if (this == obj) + { + return true; + } + if (obj.GetType() != GetType()) + { + return false; + } + return Equals((ElementId)obj); } public override int GetHashCode() @@ -124,111 +67,39 @@ public abstract class ElementId : IComparable<ElementId>, IEquatable<ElementId> public static bool operator ==(ElementId? left, ElementId? right) { - return _206F_202B_202B_200B_200C_200E_206F_206B_206A_206D_202B_206E_206C_200B_202B_200D_202C_206A_200F_206F_200D_206A_200E_206B_200F_206F_206E_200B_206C_202D_202A_202E_206F_202B_206A_206E_200F_206A_206C_206D_202E((object?)left, (object?)right); + return object.Equals(left, right); } public static bool operator !=(ElementId? left, ElementId? right) { - return !_206F_202B_202B_200B_200C_200E_206F_206B_206A_206D_202B_206E_206C_200B_202B_200D_202C_206A_200F_206F_200D_206A_200E_206B_200F_206F_206E_200B_206C_202D_202A_202E_206F_202B_206A_206E_200F_206A_206C_206D_202E((object?)left, (object?)right); + return !object.Equals(left, right); } - [MethodImpl(MethodImplOptions.NoInlining)] public static ElementId FromString(string value) { - int num = ((!_200B_202C_206E_200D_200E_202D_200E_206E_200B_200F_206B_200E_206B_200E_202C_200F_200F_202A_200B_206C_200F_202C_200E_202D_202B_206E_206F_206E_200D_202E_200F_206B_206B_202A_200E_200E_200B_202A_202D_206B_202E(value, global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(2047666330))) ? (-1593570026) : (-1593570027)); - while (true) + if (value.StartsWith("U")) { - int num2 = num; - int num3 = -1593570025; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - num = ((!_200B_202C_206E_200D_200E_202D_200E_206E_200B_200F_206B_200E_206B_200E_202C_200F_200F_202A_200B_206C_200F_202C_200E_202D_202B_206E_206F_206E_200D_202E_200F_206B_206B_202A_200E_200E_200B_202A_202D_206B_202E(value, global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1969362176))) ? (-1593570028) : (-1593570029)); - break; - case 2: - return new SatisfactionSupplyNpcId(ushort.Parse(_206E_206D_202D_202E_200E_200D_206B_200D_200B_202A_200E_206A_206B_202A_206F_202E_206C_206D_200B_206B_206A_206F_202D_206B_202C_206D_206D_202D_206E_206B_206A_200D_200B_206B_206F_202B_206A_206C_206A_200F_202E(value, 1), _206F_200B_206F_206A_206C_202D_200C_206F_200C_206E_202A_202C_206A_206B_206E_202B_206F_206F_200B_200C_202E_200C_202A_200B_200B_202A_202C_206D_202A_206F_200D_200C_202A_206F_200D_202D_206B_202E())); - case 0: - num = -1593570027; - break; - case 3: - return new QuestId(ushort.Parse(value, _206F_200B_206F_206A_206C_202D_200C_206F_200C_206E_202A_202C_206A_206B_206E_202B_206F_206F_200B_200C_202E_200C_202A_200B_200B_202A_202C_206D_202A_206F_200D_200C_202A_206F_200D_202D_206B_202E())); - case 4: - return new UnlockLinkId(ushort.Parse(_206E_206D_202D_202E_200E_200D_206B_200D_200B_202A_200E_206A_206B_202A_206F_202E_206C_206D_200B_206B_206A_206F_202D_206B_202C_206D_206D_202D_206E_206B_206A_200D_200B_206B_206F_202B_206A_206C_206A_200F_202E(value, 1), _206F_200B_206F_206A_206C_202D_200C_206F_200C_206E_202A_202C_206A_206B_206E_202B_206F_206F_200B_200C_202E_200C_202A_200B_200B_202A_202C_206D_202A_206F_200D_200C_202A_206F_200D_202D_206B_202E())); - } + return new UnlockLinkId(ushort.Parse(value.Substring(1), CultureInfo.InvariantCulture)); } + return new QuestId(ushort.Parse(value, CultureInfo.InvariantCulture)); } public static List<ElementId> FromStrings(IEnumerable<string> values, out int skippedCount) { List<ElementId> list = new List<ElementId>(); skippedCount = 0; - IEnumerator<string> enumerator = values.GetEnumerator(); - try + foreach (string value in values) { - int num = 1723974477; - ElementId elementId = default(ElementId); - while (true) + if (TryFromString(value, out ElementId elementId) && elementId != null) { - int num2 = num; - int num3 = 1723974478; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - num = 1723974477; - break; - case 1: - num = ((!(elementId != null)) ? 1723974476 : 1723974478); - break; - case 0: - list.Add(elementId); - num = 1723974477; - break; - case 3: - num = (_206A_202C_206C_202A_202C_206E_206C_202D_200B_200B_202D_202C_200B_200E_200E_202E_206D_202D_206A_202E_206E_206A_202B_206C_202C_202D_206D_206C_200D_206D_200B_200C_202A_206D_206C_206B_200E_200E_200C_206A_202E((IEnumerator?)enumerator) ? 1723974474 : 1723974472); - break; - case 2: - skippedCount++; - num = 1723974477; - break; - case 4: - num = ((!TryFromString(enumerator.Current, out elementId)) ? 1723974476 : 1723974479); - break; - case 6: - return list; - } - } - } - finally - { - int num = ((enumerator == null) ? (-1730205036) : (-1730205035)); - while (true) - { - int num7 = num; - int num3 = -1730205036; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1730205035; - break; - case 1: - _202C_202B_206B_206D_206B_206E_200B_206B_202E_202D_206A_206C_202E_206D_206C_202D_206B_206B_202B_200F_206F_206C_200F_200F_200D_206E_202E_200F_206B_200C_200F_200E_206D_202B_200F_200D_200C_206D_202C_202D_202E((IDisposable?)enumerator); - num = -1730205036; - break; - case 0: - goto end_IL_0112; - } - continue; - end_IL_0112: - break; + list.Add(elementId); + } + else + { + skippedCount++; } } + return list; } public static bool TryFromString(string value, out ElementId? elementId) @@ -246,49 +117,4 @@ public abstract class ElementId : IComparable<ElementId>, IEquatable<ElementId> } public abstract override string ToString(); - - static Type? _202C_206B_200C_206A_206E_202B_200E_200D_206A_206F_202E_206F_206C_206D_200C_200C_206A_200F_202B_202C_202A_200C_202B_202A_206F_206B_200D_200E_206C_206E_206D_206B_200C_206E_200D_200E_200D_206C_206F_206A_202E(object? P_0) - { - return P_0.GetType(); - } - - static Type? _202E_202E_200B_202E_202A_202C_206B_202C_200D_200C_206E_206C_206E_200E_206C_202B_206C_200C_202D_202A_200C_200F_200C_200E_206C_200D_200B_206E_206A_200D_206B_206B_206E_202D_202B_202D_200F_200D_202B_202D_202E(object? P_0) - { - return P_0.GetType(); - } - - static bool _200C_200B_200B_202C_206F_206A_206E_206A_206F_202A_200F_202B_200D_206C_206D_206B_206D_206C_202B_202A_202C_206C_206D_206A_206B_200C_206B_200D_206E_200F_206A_202D_206A_202D_202E_200E_200B_200E_206D_202D_202E(Type? P_0, Type? P_1) - { - return P_0 != P_1; - } - - static bool _206F_202B_202B_200B_200C_200E_206F_206B_206A_206D_202B_206E_206C_200B_202B_200D_202C_206A_200F_206F_200D_206A_200E_206B_200F_206F_206E_200B_206C_202D_202A_202E_206F_202B_206A_206E_200F_206A_206C_206D_202E(object? P_0, object? P_1) - { - return object.Equals(P_0, P_1); - } - - static bool _200B_202C_206E_200D_200E_202D_200E_206E_200B_200F_206B_200E_206B_200E_202C_200F_200F_202A_200B_206C_200F_202C_200E_202D_202B_206E_206F_206E_200D_202E_200F_206B_206B_202A_200E_200E_200B_202A_202D_206B_202E(string? P_0, string? P_1) - { - return P_0.StartsWith(P_1); - } - - static string? _206E_206D_202D_202E_200E_200D_206B_200D_200B_202A_200E_206A_206B_202A_206F_202E_206C_206D_200B_206B_206A_206F_202D_206B_202C_206D_206D_202D_206E_206B_206A_200D_200B_206B_206F_202B_206A_206C_206A_200F_202E(string? P_0, int P_1) - { - return P_0.Substring(P_1); - } - - static CultureInfo? _206F_200B_206F_206A_206C_202D_200C_206F_200C_206E_202A_202C_206A_206B_206E_202B_206F_206F_200B_200C_202E_200C_202A_200B_200B_202A_202C_206D_202A_206F_200D_200C_202A_206F_200D_202D_206B_202E() - { - return CultureInfo.InvariantCulture; - } - - static bool _206A_202C_206C_202A_202C_206E_206C_202D_200B_200B_202D_202C_200B_200E_200E_202E_206D_202D_206A_202E_206E_206A_202B_206C_202C_202D_206D_206C_200D_206D_200B_200C_202A_206D_206C_206B_200E_200E_200C_206A_202E(IEnumerator? P_0) - { - return P_0.MoveNext(); - } - - static void _202C_202B_206B_206D_206B_206E_200B_206B_202E_202D_206A_206C_202E_206D_206C_202D_206B_206B_202B_200F_206F_206C_200F_200F_200D_206E_202E_200F_206B_200C_200F_200E_206D_202B_200F_200D_200C_206D_202C_202D_202E(IDisposable? P_0) - { - P_0.Dispose(); - } } diff --git a/Questionable.Model/Questionable.Model.Questing/ExcelRef.cs b/Questionable.Model/Questionable.Model.Questing/ExcelRef.cs index 7a6e656..146572b 100644 --- a/Questionable.Model/Questionable.Model.Questing/ExcelRef.cs +++ b/Questionable.Model/Questionable.Model.Questing/ExcelRef.cs @@ -56,79 +56,28 @@ public class ExcelRef public string AsKey() { - int num = ((Type == EType.Key) ? 50157888 : 50157889); - while (true) + if (Type != EType.Key) { - int num2 = num; - int num3 = 50157888; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0049; - case 0: - return _stringValue; - case 1: - throw _202A_206D_200F_202D_202D_206E_202B_206A_206B_200E_206A_206D_200B_202B_200F_202D_206D_200F_200E_202D_202A_206F_206D_200F_206B_200F_202A_206A_206B_202E_200B_206C_202B_206B_200C_202D_206D_202D_202D_202E_202E(); - } - continue; - IL_0049: - num = 50157889; + throw new InvalidOperationException(); } + return _stringValue; } public uint AsRowId() { - int num = ((Type == EType.RowId) ? 565255808 : 565255811); - while (true) + if (Type != EType.RowId) { - int num2 = num; - int num3 = 565255809; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0049; - case 1: - return _rowIdValue.Value; - case 2: - throw _202A_206D_200F_202D_202D_206E_202B_206A_206B_200E_206A_206D_200B_202B_200F_202D_206D_200F_200E_202D_202A_206F_206D_200F_206B_200F_202A_206A_206B_202E_200B_206C_202B_206B_200C_202D_206D_202D_202D_202E_202E(); - } - continue; - IL_0049: - num = 565255811; + throw new InvalidOperationException(); } + return _rowIdValue.Value; } public string AsRawString() { - int num = ((Type == EType.RawString) ? (-1382216459) : (-1382216460)); - while (true) + if (Type != EType.RawString) { - int num2 = num; - int num3 = -1382216459; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return _stringValue; - case 1: - throw _202A_206D_200F_202D_202D_206E_202B_206A_206B_200E_206A_206D_200B_202B_200F_202D_206D_200F_200E_202D_202A_206F_206D_200F_206B_200F_202A_206A_206B_202E_200B_206C_202B_206B_200C_202D_206D_202D_202D_202E_202E(); - case 2: - goto IL_0054; - } - continue; - IL_0054: - num = -1382216460; + throw new InvalidOperationException(); } - } - - static InvalidOperationException _202A_206D_200F_202D_202D_206E_202B_206A_206B_200E_206A_206D_200B_202B_200F_202D_206D_200F_200E_202D_202A_206F_206D_200F_206B_200F_202A_206A_206B_202E_200B_206C_202B_206B_200C_202D_206D_202D_202D_202E_202E() - { - return new InvalidOperationException(); + return _stringValue; } } diff --git a/Questionable.Model/Questionable.Model.Questing/QuestId.cs b/Questionable.Model/Questionable.Model.Questing/QuestId.cs index 885ac4f..6525d8b 100644 --- a/Questionable.Model/Questionable.Model.Questing/QuestId.cs +++ b/Questionable.Model/Questionable.Model.Questing/QuestId.cs @@ -11,17 +11,11 @@ public sealed class QuestId : ElementId public static QuestId FromRowId(uint rowId) { - int num = 65535; - return new QuestId((ushort)((rowId | (uint)num) - (rowId ^ (uint)num))); + return new QuestId((ushort)(rowId & 0xFFFF)); } public override string ToString() { - return base.Value.ToString(_200F_200E_202C_202C_206D_206C_200C_200C_200D_200C_202B_206D_202C_200E_200D_206A_200B_206B_202D_200D_206A_202C_206C_206B_206F_200B_200D_202B_202A_202D_200E_200C_206F_202C_202E_206A_200C_206F_200E_206C_202E()); - } - - static CultureInfo _200F_200E_202C_202C_206D_206C_200C_200C_200D_200C_202B_206D_202C_200E_200D_206A_200B_206B_202D_200D_206A_202C_206C_206B_206F_200B_200D_202B_202A_202D_200E_200C_206F_202C_202E_206A_200C_206F_200E_206C_202E() - { - return CultureInfo.InvariantCulture; + return base.Value.ToString(CultureInfo.InvariantCulture); } } diff --git a/Questionable.Model/Questionable.Model.Questing/QuestRootSerializer.cs b/Questionable.Model/Questionable.Model.Questing/QuestRootSerializer.cs index fbb17bb..eed72fa 100644 --- a/Questionable.Model/Questionable.Model.Questing/QuestRootSerializer.cs +++ b/Questionable.Model/Questionable.Model.Questing/QuestRootSerializer.cs @@ -3,7 +3,6 @@ using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; -using System.Runtime.CompilerServices; using System.Text.Encodings.Web; using System.Text.Json; using System.Text.Json.Nodes; @@ -14,143 +13,26 @@ namespace Questionable.Model.Questing; public static class QuestRootSerializer { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<object, object?, bool> _003C_003E9__4_0; - - public static Func<JsonPropertyInfo, bool> _003C_003E9__5_0; - - public static Func<object, object?, bool> _003C_003E9__5_1; - - public static Func<JsonPropertyInfo, bool> _003C_003E9__6_0; - - public static Func<object, object?, bool> _003C_003E9__6_1; - - internal bool _003CNoEmptyCollectionModifier_003Eb__4_0(object _, object? val) - { - ICollection collection = val as ICollection; - int num = ((collection == null) ? (-655689827) : (-655689826)); - while (true) - { - int num2 = num; - int num3 = -655689825; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 1: - return _200E_200B_200C_206D_202A_206E_206A_202A_202B_200F_206D_202B_206F_202B_202D_200E_206A_202C_200C_206C_206B_206F_200C_202B_202C_200E_206B_200C_206E_200D_206D_202D_206D_206F_202A_202E_206E_200B_206A_200D_202E(collection) > 0; - case 0: - goto IL_0056; - } - continue; - IL_0056: - num = -655689826; - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal bool _003CDialogueChoiceSerializationModifier_003Eb__5_0(JsonPropertyInfo x) - { - return _202D_206F_200C_206B_200B_206C_206C_202B_202D_206D_200D_202C_202A_206C_202E_206D_202E_206A_200B_206D_202A_200D_200E_202B_200E_206F_200F_202C_202D_202A_200F_206E_202A_200E_200E_206F_206D_206F_200E_200E_202E(_200E_206E_202E_202A_206F_206B_202D_206D_200C_206C_202E_202E_206C_206F_200E_200B_206C_206D_202E_200C_206E_206D_202A_206F_200B_200C_206B_202C_206F_206A_200C_202E_202E_202D_200B_200D_200B_202C_206B_206F_202E(x), global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-282631776)); - } - - internal bool _003CDialogueChoiceSerializationModifier_003Eb__5_1(object obj, object? _) - { - DialogueChoice dialogueChoice = obj as DialogueChoice; - int num = ((dialogueChoice == null) ? 1809875924 : 1809875927); - while (true) - { - int num2 = num; - int num3 = 1809875926; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 1: - return dialogueChoice.Type == EDialogChoiceType.YesNo; - case 0: - goto IL_0056; - } - continue; - IL_0056: - num = 1809875927; - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal bool _003CNonDefaultBoolModifier_003Eb__6_0(JsonPropertyInfo x) - { - return _202D_206F_200C_206B_200B_206C_206C_202B_202D_206D_200D_202C_202A_206C_202E_206D_202E_206A_200B_206D_202A_200D_200E_202B_200E_206F_200F_202C_202D_202A_200F_206E_202A_200E_200E_206F_206D_206F_200E_200E_202E(_200E_206E_202E_202A_206F_206B_202D_206D_200C_206C_202E_202E_206C_206F_200E_200B_206C_206D_202E_200C_206E_206D_202A_206F_200B_200C_206B_202C_206F_206A_200C_202E_202E_202D_200B_200D_200B_202C_206B_206F_202E(x), global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-395466289)); - } - - internal bool _003CNonDefaultBoolModifier_003Eb__6_1(object obj, object? _) - { - QuestRoot questRoot = obj as QuestRoot; - int num = ((questRoot == null) ? (-737791523) : (-737791524)); - while (true) - { - int num2 = num; - int num3 = -737791523; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_004a; - case 0: - return false; - case 1: - return !questRoot.Interruptible; - } - continue; - IL_004a: - num = -737791524; - } - } - - static int _200E_200B_200C_206D_202A_206E_206A_202A_202B_200F_206D_202B_206F_202B_202D_200E_206A_202C_200C_206C_206B_206F_200C_202B_202C_200E_206B_200C_206E_200D_206D_202D_206D_206F_202A_202E_206E_200B_206A_200D_202E(ICollection P_0) - { - return P_0.Count; - } - - static string _200E_206E_202E_202A_206F_206B_202D_206D_200C_206C_202E_202E_206C_206F_200E_200B_206C_206D_202E_200C_206E_206D_202A_206F_200B_200C_206B_202C_206F_206A_200C_202E_202E_202D_200B_200D_200B_202C_206B_206F_202E(JsonPropertyInfo P_0) - { - return P_0.Name; - } - - static bool _202D_206F_200C_206B_200B_206C_206C_202B_202D_206D_200D_202C_202A_206C_202E_206D_202E_206A_200B_206D_202A_200D_200E_202B_200E_206F_200F_202C_202D_202A_200F_206E_202A_200E_200E_206F_206D_206F_200E_200E_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - } - public const string SchemaUrl = "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/QuestPaths/quest-v1.json"; public static JsonSerializerOptions CreateOptions() { - JsonSerializerOptions jsonSerializerOptions = _200C_206A_202B_202B_206D_206F_200C_206D_206B_200B_206F_202E_206B_206A_206D_206D_200B_206E_206F_206B_202B_206D_200D_206C_200E_202B_206B_200F_200F_202B_200B_206B_200B_206E_206C_206E_206B_202B_200D_206C_202E(); - _206F_202C_200E_202A_200F_200F_206B_200D_206A_200F_206D_206F_202E_200B_200D_200B_200B_200F_206D_200F_200E_202C_200C_206E_202D_200E_206D_202E_206C_206A_206D_206F_206C_202C_202A_202C_200E_206D_200D_202E(jsonSerializerOptions, _202E_206B_200E_200C_206E_202C_202D_200C_202B_200B_202C_202B_202B_202C_206D_202B_200B_200D_206A_206C_200B_206D_206D_202C_206E_200F_202E_206A_200C_206C_206C_206F_206B_202B_200C_202B_200D_200C_202E_206C_202E()); - _206D_200E_200C_206D_202B_202A_202C_206C_206C_202A_206C_206C_206F_202E_202C_200F_206F_202E_200E_200E_202B_206C_202D_206A_200E_200D_206C_200B_200B_200D_200E_206E_200D_200E_200B_206E_202E_202A_200D_202E(jsonSerializerOptions, JsonIgnoreCondition.WhenWritingDefault); - _202A_200B_202B_202C_206F_200B_202A_202C_206A_200C_206F_206B_200C_206F_200D_206E_202B_206F_206D_206C_202B_202E_200D_202A_206A_202B_200D_202A_206B_202D_202A_206B_206C_206E_202E_202C_202A_202C_200E_200E_202E(jsonSerializerOptions, true); - _200D_206A_200C_206A_202A_206E_202E_202D_200C_206A_200D_206C_202C_202B_202C_202C_206D_200B_200E_206E_206A_200D_206F_200E_206A_202A_206B_202B_206A_200D_200D_202E_200E_206E_206E_200E_202B_202D_206D_206C_202E(jsonSerializerOptions, false); - DefaultJsonTypeInfoResolver defaultJsonTypeInfoResolver = _200F_202B_202C_200E_206C_206F_202D_200C_202D_206F_202A_200D_206F_200F_200D_206D_206B_202C_206E_200F_200D_202A_206F_206D_202E_206C_200F_202A_206A_200F_202E_200F_206C_206B_200C_206B_200E_206B_206B_200C_202E(); - _200B_202A_202A_202E_206B_206D_200B_206B_200C_202A_202B_200B_200B_206C_206C_200E_202D_206D_202E_200C_206E_200C_202D_202B_200F_206B_200B_206E_206E_206C_202B_202B_202D_206A_206D_206D_202B_200D_202D_202E(defaultJsonTypeInfoResolver).Add(NoEmptyCollectionModifier); - _200B_202A_202A_202E_206B_206D_200B_206B_200C_202A_202B_200B_200B_206C_206C_200E_202D_206D_202E_200C_206E_200C_202D_202B_200F_206B_200B_206E_206E_206C_202B_202B_202D_206A_206D_206D_202B_200D_202D_202E(defaultJsonTypeInfoResolver).Add(DialogueChoiceSerializationModifier); - _200B_202A_202A_202E_206B_206D_200B_206B_200C_202A_202B_200B_200B_206C_206C_200E_202D_206D_202E_200C_206E_200C_202D_202B_200F_206B_200B_206E_206E_206C_202B_202B_202D_206A_206D_206D_202B_200D_202D_202E(defaultJsonTypeInfoResolver).Add(NonDefaultBoolModifier); - _206E_200F_200D_202E_206E_206A_200F_206D_206E_200D_206E_206B_206B_202A_202A_202B_206A_206F_206B_202A_206D_206B_206A_206C_206C_202E_206D_202E_206E_206A_202A_206E_206A_206B_206B_202B_202D_206D_206A_206D_202E(jsonSerializerOptions, (IJsonTypeInfoResolver)defaultJsonTypeInfoResolver); - return jsonSerializerOptions; + return new JsonSerializerOptions + { + Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, + DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingDefault, + WriteIndented = true, + IncludeFields = false, + TypeInfoResolver = new DefaultJsonTypeInfoResolver + { + Modifiers = + { + (Action<JsonTypeInfo>)NoEmptyCollectionModifier, + (Action<JsonTypeInfo>)DialogueChoiceSerializationModifier, + (Action<JsonTypeInfo>)NonDefaultBoolModifier + } + } + }; } public static QuestRoot Clone(QuestRoot source, JsonSerializerOptions options) @@ -158,479 +40,64 @@ public static class QuestRootSerializer return JsonSerializer.Deserialize<QuestRoot>(JsonSerializer.Serialize(source, options), options); } - [MethodImpl(MethodImplOptions.NoInlining)] public static byte[] SerializeToUtf8(QuestRoot questRoot, JsonSerializerOptions options) { JsonObject obj = (JsonObject)JsonSerializer.SerializeToNode(questRoot, options); - JsonObject jsonObject = _202E_202D_200F_202C_202A_206A_202C_200B_206B_202B_200B_200C_200D_206B_206D_200D_200E_200B_200B_206B_206B_200C_200C_200B_200B_206B_206D_206A_206A_200E_202A_202C_202A_206F_206A_202A_206C_206A_202B_206C_202E((JsonNodeOptions?)null); - _200E_202C_200B_202D_206F_202C_206B_206C_200B_202A_206B_206F_202C_200B_206B_206B_200F_206D_202E_200C_200C_202C_206C_206A_202C_200E_206B_200C_206E_206D_202D_200E_200F_206B_202E_202D_206C_202D_200B_202B_202E(jsonObject, global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(993021410), _202D_206A_200D_200E_202C_206D_200E_200D_206A_202D_206B_206E_202C_200D_200D_202E_206F_200C_206A_206B_206E_202B_206C_206C_202A_200E_206A_200D_206A_206C_202E_202B_206B_200D_206C_200F_206C_202A_200C_202D_202E(global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-550734837))); - IEnumerator<KeyValuePair<string, JsonNode>> enumerator = _202C_200D_206C_206C_206D_206D_206C_200C_206C_202C_200F_200E_202A_206B_206D_200C_200F_206E_206E_206F_206A_206F_206D_206D_206F_202E_206B_200E_206A_202D_206B_206B_202A_200B_206B_202B_206D_206B_202B_206C_202E(obj); - try + JsonObject jsonObject = new JsonObject { { "$schema", "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/QuestPaths/quest-v1.json" } }; + foreach (var (propertyName, jsonNode2) in obj) { - int num = 576637742; - while (true) - { - int num2 = num; - int num3 = 576637740; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 576637742; - break; - case 2: - num = (_206C_202D_200C_206A_206E_206F_202D_200F_200B_202C_206C_202D_200C_206A_202D_200F_200E_202E_202A_206B_202D_200F_206B_200F_200C_202D_206A_202E_206B_200B_206B_206B_206E_206F_200D_206E_202A_206B_206D_206D_202E((IEnumerator)enumerator) ? 576637741 : 576637743); - break; - case 1: - var (text2, jsonNode2) = (KeyValuePair<string, JsonNode>)(ref enumerator.Current); - _200E_202C_200B_202D_206F_202C_206B_206C_200B_202A_206B_206F_202C_200B_206B_206B_200F_206D_202E_200C_200C_202C_206C_206A_202C_200E_206B_200C_206E_206D_202D_200E_200F_206B_202E_202D_206C_202D_200B_202B_202E(jsonObject, text2, (jsonNode2 != null) ? _202D_200D_202A_202C_206D_206F_200F_206C_200F_202C_200E_202D_202B_200B_206D_206F_200C_202C_202D_202D_200C_206E_206B_200E_206D_202B_206C_206D_206F_202C_200B_206A_206A_202E_200F_200F_206E_202E_200E_200F_202E(jsonNode2) : null); - num = 576637742; - break; - case 3: - goto end_IL_004c; - } - continue; - end_IL_004c: - break; - } + jsonObject.Add(propertyName, jsonNode2?.DeepClone()); } - finally + using MemoryStream memoryStream = new MemoryStream(); + using (Utf8JsonWriter writer = new Utf8JsonWriter(memoryStream, new JsonWriterOptions { - int num = ((enumerator == null) ? (-396801584) : (-396801583)); - while (true) - { - int num7 = num; - int num3 = -396801584; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - goto end_IL_0113; - case 1: - _206A_202C_206D_206D_206E_200B_200B_202B_206C_202B_206E_206B_206E_200B_202E_206D_202E_202D_200D_206B_200D_200C_202B_200C_200B_206B_200F_202A_206F_206A_206A_200F_202D_206E_202C_206C_206F_206C_206D_200C_202E((IDisposable)enumerator); - num = -396801584; - break; - case 2: - num = -396801583; - break; - } - continue; - end_IL_0113: - break; - } - } - MemoryStream memoryStream = _202E_202C_206A_200F_202B_200B_206B_200C_206B_200D_206B_202B_202B_202A_206A_200E_200D_206C_206D_202D_206D_206A_202A_206E_200E_202D_200C_206C_202B_202C_202A_206E_206C_200D_202A_206B_200D_200E_202E_206E_202E(); - try + Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, + Indented = true, + IndentSize = 2, + IndentCharacter = ' ', + NewLine = "\n" + })) { - Utf8JsonWriter utf8JsonWriter = _202C_206D_202B_202C_202C_206B_200C_206B_202C_202B_202E_206D_206D_202B_202D_202B_206C_200D_200E_206F_206A_200B_200D_202D_202B_200E_200E_202B_206A_202E_200D_206D_202A_202C_206D_202C_200C_202B_200E_206C_202E((Stream)memoryStream, new JsonWriterOptions - { - Encoder = _202E_206B_200E_200C_206E_202C_202D_200C_202B_200B_202C_202B_202B_202C_206D_202B_200B_200D_206A_206C_200B_206D_206D_202C_206E_200F_202E_206A_200C_206C_206C_206F_206B_202B_200C_202B_200D_200C_202E_206C_202E(), - Indented = true, - IndentSize = 2, - IndentCharacter = ' ' - }); - try - { - _200B_200C_200F_206A_202B_202B_202E_200D_206F_206C_206B_202E_206C_200E_206A_202B_200F_206A_200F_200C_206B_200D_206E_200D_200B_202E_202E_206C_206B_200D_200D_206B_206C_202D_202C_202E_206F_206E_202A_200D_202E((JsonNode)jsonObject, utf8JsonWriter, options); - } - finally - { - int num = ((utf8JsonWriter == null) ? (-2004320933) : (-2004320934)); - while (true) - { - int num10 = num; - int num3 = -2004320933; - int num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 2: - num = -2004320934; - break; - case 1: - _206A_202C_206D_206D_206E_200B_200B_202B_206C_202B_206E_206B_206E_200B_202E_206D_202E_202D_200D_206B_200D_200C_202B_200C_200B_206B_200F_202A_206F_206A_206A_200F_202D_206E_202C_206C_206F_206C_206D_200C_202E((IDisposable)utf8JsonWriter); - num = -2004320933; - break; - case 0: - goto end_IL_01ca; - } - continue; - end_IL_01ca: - break; - } - } - _202E_206A_200F_206F_206D_200B_200F_206E_202E_206E_206C_202C_202E_200D_202B_202B_202B_206E_200E_202D_206A_206C_200C_200E_200F_202C_206E_200F_206B_202A_206B_202E_206B_206D_202B_202D_202E_206E_202C_206E_202E((Stream)memoryStream, (byte)10); - return _206D_206E_206C_206D_202A_206D_202E_200E_206E_206A_202D_200B_206A_200C_206D_202B_202D_202B_206B_200F_206B_206F_202A_202B_202C_202C_202E_206C_200B_206F_200F_206E_206F_206C_202E_206B_200F_202A_200E_206D_202E(memoryStream); - } - finally - { - int num = ((memoryStream == null) ? (-1070998518) : (-1070998519)); - while (true) - { - int num13 = num; - int num3 = -1070998520; - int num4 = num13; - int num14 = num4 + num3; - int num15 = num4 & num3; - switch (num14 - (num15 + num15)) - { - case 0: - num = -1070998519; - break; - case 1: - _206A_202C_206D_206D_206E_200B_200B_202B_206C_202B_206E_206B_206E_200B_202E_206D_202E_202D_200D_206B_200D_200C_202B_200C_200B_206B_200F_202A_206F_206A_206A_200F_202D_206E_202C_206C_206F_206C_206D_200C_202E((IDisposable)memoryStream); - num = -1070998518; - break; - case 2: - goto end_IL_024b; - } - continue; - end_IL_024b: - break; - } + jsonObject.WriteTo(writer, options); } + memoryStream.WriteByte(10); + return memoryStream.ToArray(); } private static void NoEmptyCollectionModifier(JsonTypeInfo typeInfo) { - IEnumerator<JsonPropertyInfo> enumerator = _200C_206E_202C_202D_206B_206A_206E_200E_206A_202A_200C_202E_202E_200E_206A_200F_206D_200B_206D_200F_206A_200C_202B_200C_200E_200F_206D_206F_200B_202B_206D_200B_206C_202B_206C_206B_206E_200C_200D_202D_202E(typeInfo).GetEnumerator(); - try + foreach (JsonPropertyInfo property in typeInfo.Properties) { - int num = 1452355275; - JsonPropertyInfo current = default(JsonPropertyInfo); - while (true) + if (typeof(ICollection).IsAssignableFrom(property.PropertyType)) { - int num2 = num; - int num3 = 1452355274; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - num = (_206C_202D_200C_206A_206E_206F_202D_200F_200B_202C_206C_202D_200C_206A_202D_200F_200E_202E_202A_206B_202D_200F_206B_200F_200C_202D_206A_202E_206B_200B_206B_206B_206E_206F_200D_206E_202A_206B_206D_206D_202E((IEnumerator)enumerator) ? 1452355273 : 1452355278); - break; - case 2: - _206E_202A_206F_200B_202A_200D_202A_202D_202A_200E_206C_206F_202C_206E_206E_200F_206E_200B_200D_202E_206D_200B_206D_200C_206F_200C_206F_200F_202A_202C_202A_206D_202E_206F_202A_200F_200B_206C_202A_200F_202E(current, (Func<object, object, bool>)delegate(object _, object? val) - { - ICollection collection = val as ICollection; - int num10 = ((collection == null) ? (-655689827) : (-655689826)); - while (true) - { - int num11 = num10; - int num12 = -655689825; - int num13 = num11; - int num14 = num13 + num12; - int num15 = num13 & num12; - switch (num14 - (num15 + num15)) - { - case 2: - return false; - case 1: - return _003C_003Ec._200E_200B_200C_206D_202A_206E_206A_202A_202B_200F_206D_202B_206F_202B_202D_200E_206A_202C_200C_206C_206B_206F_200C_202B_202C_200E_206B_200C_206E_200D_206D_202D_206D_206F_202A_202E_206E_200B_206A_200D_202E(collection) > 0; - case 0: - goto IL_0056; - } - continue; - IL_0056: - num10 = -655689826; - } - }); - num = 1452355275; - break; - case 3: - current = enumerator.Current; - num = ((!_200F_206B_200D_202A_202C_206B_200B_206C_200F_200C_202B_202E_200D_202E_206F_202A_200F_206B_200D_202D_206F_206F_202E_200B_206C_206D_202E_206D_200C_206E_200C_202C_202A_200B_202A_200F_200D_202C_200D_202E_202E(_206B_206D_202D_200C_206F_206F_202D_206B_202C_200E_206B_206D_200B_200E_202C_206C_200F_206E_206C_206D_200F_202E_200E_200C_200C_202E_206A_202A_206F_206C_206C_202B_200F_202E_202C_206B_206B_200E_200F_202A_202E(typeof(ICollection).TypeHandle), _206B_200F_202D_206D_206C_202D_202D_206F_206B_206C_202C_206E_202C_202C_200C_206B_206A_206E_206C_200F_200B_206C_202A_202A_200C_202D_200C_200B_202A_200B_202A_202B_202C_202B_200D_202A_206C_206F_200F_202B_202E(current))) ? 1452355275 : 1452355272); - break; - case 0: - num = 1452355275; - break; - case 4: - return; - } - } - } - finally - { - int num = ((enumerator == null) ? (-517751485) : (-517751488)); - while (true) - { - int num7 = num; - int num3 = -517751487; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - num = -517751488; - break; - case 1: - _206A_202C_206D_206D_206E_200B_200B_202B_206C_202B_206E_206B_206E_200B_202E_206D_202E_202D_200D_206B_200D_200C_202B_200C_200B_206B_200F_202A_206F_206A_206A_200F_202D_206E_202C_206C_206F_206C_206D_200C_202E((IDisposable)enumerator); - num = -517751485; - break; - case 2: - goto end_IL_0100; - } - continue; - end_IL_0100: - break; + property.ShouldSerialize = (object _, object? val) => val is ICollection collection && collection.Count > 0; } } } private static void DialogueChoiceSerializationModifier(JsonTypeInfo typeInfo) { - int num = ((!_202E_202E_202B_202B_202C_200C_206F_206A_200D_206B_206E_200F_206E_200C_206C_206C_206E_206B_200B_200C_206B_200B_202B_202E_206B_206C_206A_202D_206E_200F_202E_206A_202B_206E_202E_200D_202D_202E_206C_200F_202E(_202C_202E_206A_206F_200E_202B_202E_202B_200F_202C_202D_202C_206D_200F_200C_202D_206C_202D_206C_206D_206C_206A_202C_206F_200C_202B_206B_206A_206A_206A_206D_206A_202A_206A_202A_206B_206C_206D_200C_206B_202E(typeInfo), _206B_206D_202D_200C_206F_206F_202D_206B_202C_200E_206B_206D_200B_200E_202C_206C_200F_206E_206C_206D_200F_202E_200E_200C_200C_202E_206A_202A_206F_206C_206C_202B_200F_202E_202C_206B_206B_200E_200F_202A_202E(typeof(DialogueChoice).TypeHandle))) ? (-1647660698) : (-1647660700)); - JsonPropertyInfo jsonPropertyInfo = default(JsonPropertyInfo); - while (true) + if (typeInfo.Type != typeof(DialogueChoice)) { - int num2 = num; - int num3 = -1647660699; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = -1647660700; - break; - case 1: - return; - case 2: - return; - case 3: - jsonPropertyInfo = _200C_206E_202C_202D_206B_206A_206E_200E_206A_202A_200C_202E_202E_200E_206A_200F_206D_200B_206D_200F_206A_200C_202B_200C_200E_200F_206D_206F_200B_202B_206D_200B_206C_202B_206C_206B_206E_200C_200D_202D_202E(typeInfo).FirstOrDefault([MethodImpl(MethodImplOptions.NoInlining)] (JsonPropertyInfo x) => _003C_003Ec._202D_206F_200C_206B_200B_206C_206C_202B_202D_206D_200D_202C_202A_206C_202E_206D_202E_206A_200B_206D_202A_200D_200E_202B_200E_206F_200F_202C_202D_202A_200F_206E_202A_200E_200E_206F_206D_206F_200E_200E_202E(_003C_003Ec._200E_206E_202E_202A_206F_206B_202D_206D_200C_206C_202E_202E_206C_206F_200E_200B_206C_206D_202E_200C_206E_206D_202A_206F_200B_200C_206B_202C_206F_206A_200C_202E_202E_202D_200B_200D_200B_202C_206B_206F_202E(x), global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-282631776))); - num = ((jsonPropertyInfo == null) ? (-1647660697) : (-1647660699)); - break; - case 0: - _206E_202A_206F_200B_202A_200D_202A_202D_202A_200E_206C_206F_202C_206E_206E_200F_206E_200B_200D_202E_206D_200B_206D_200C_206F_200C_206F_200F_202A_202C_202A_206D_202E_206F_202A_200F_200B_206C_202A_200F_202E(jsonPropertyInfo, (Func<object, object, bool>)delegate(object obj, object? _) - { - DialogueChoice dialogueChoice = obj as DialogueChoice; - int num5 = ((dialogueChoice == null) ? 1809875924 : 1809875927); - while (true) - { - int num6 = num5; - int num7 = 1809875926; - int num8 = num6; - int num9 = num8 + num7; - int num10 = num8 & num7; - switch (num9 - (num10 + num10)) - { - case 2: - return false; - case 1: - return dialogueChoice.Type == EDialogChoiceType.YesNo; - case 0: - goto IL_0056; - } - continue; - IL_0056: - num5 = 1809875927; - } - }); - num = -1647660697; - break; - } + return; + } + JsonPropertyInfo jsonPropertyInfo = typeInfo.Properties.FirstOrDefault((JsonPropertyInfo x) => x.Name == "Yes"); + if (jsonPropertyInfo != null) + { + jsonPropertyInfo.ShouldSerialize = (object obj, object? _) => obj is DialogueChoice dialogueChoice && dialogueChoice.Type == EDialogChoiceType.YesNo; } } private static void NonDefaultBoolModifier(JsonTypeInfo typeInfo) { - int num = ((!_202E_202E_202B_202B_202C_200C_206F_206A_200D_206B_206E_200F_206E_200C_206C_206C_206E_206B_200B_200C_206B_200B_202B_202E_206B_206C_206A_202D_206E_200F_202E_206A_202B_206E_202E_200D_202D_202E_206C_200F_202E(_202C_202E_206A_206F_200E_202B_202E_202B_200F_202C_202D_202C_206D_200F_200C_202D_206C_202D_206C_206D_206C_206A_202C_206F_200C_202B_206B_206A_206A_206A_206D_206A_202A_206A_202A_206B_206C_206D_200C_206B_202E(typeInfo), _206B_206D_202D_200C_206F_206F_202D_206B_202C_200E_206B_206D_200B_200E_202C_206C_200F_206E_206C_206D_200F_202E_200E_200C_200C_202E_206A_202A_206F_206C_206C_202B_200F_202E_202C_206B_206B_200E_200F_202A_202E(typeof(QuestRoot).TypeHandle))) ? 178105966 : 178105962); - JsonPropertyInfo jsonPropertyInfo = default(JsonPropertyInfo); - while (true) + if (typeInfo.Type != typeof(QuestRoot)) { - int num2 = num; - int num3 = 178105966; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return; - case 4: - return; - case 2: - num = 178105962; - break; - case 3: - _206E_202A_206F_200B_202A_200D_202A_202D_202A_200E_206C_206F_202C_206E_206E_200F_206E_200B_200D_202E_206D_200B_206D_200C_206F_200C_206F_200F_202A_202C_202A_206D_202E_206F_202A_200F_200B_206C_202A_200F_202E(jsonPropertyInfo, (Func<object, object, bool>)delegate(object obj, object? _) - { - QuestRoot questRoot = obj as QuestRoot; - int num7 = ((questRoot == null) ? (-737791523) : (-737791524)); - while (true) - { - int num8 = num7; - int num9 = -737791523; - int num10 = num8; - int num11 = num10 + num9; - int num12 = num10 & num9; - switch (num11 - (num12 + num12)) - { - case 2: - goto IL_004a; - case 0: - return false; - case 1: - return !questRoot.Interruptible; - } - continue; - IL_004a: - num7 = -737791524; - } - }); - num = 178105967; - break; - case 0: - jsonPropertyInfo = _200C_206E_202C_202D_206B_206A_206E_200E_206A_202A_200C_202E_202E_200E_206A_200F_206D_200B_206D_200F_206A_200C_202B_200C_200E_200F_206D_206F_200B_202B_206D_200B_206C_202B_206C_206B_206E_200C_200D_202D_202E(typeInfo).FirstOrDefault([MethodImpl(MethodImplOptions.NoInlining)] (JsonPropertyInfo x) => _003C_003Ec._202D_206F_200C_206B_200B_206C_206C_202B_202D_206D_200D_202C_202A_206C_202E_206D_202E_206A_200B_206D_202A_200D_200E_202B_200E_206F_200F_202C_202D_202A_200F_206E_202A_200E_200E_206F_206D_206F_200E_200E_202E(_003C_003Ec._200E_206E_202E_202A_206F_206B_202D_206D_200C_206C_202E_202E_206C_206F_200E_200B_206C_206D_202E_200C_206E_206D_202A_206F_200B_200C_206B_202C_206F_206A_200C_202E_202E_202D_200B_200D_200B_202C_206B_206F_202E(x), global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-395466289))); - num = ((jsonPropertyInfo == null) ? 178105967 : 178105965); - break; - } + return; + } + JsonPropertyInfo jsonPropertyInfo = typeInfo.Properties.FirstOrDefault((JsonPropertyInfo x) => x.Name == "Interruptible"); + if (jsonPropertyInfo != null) + { + jsonPropertyInfo.ShouldSerialize = (object obj, object? _) => obj is QuestRoot questRoot && !questRoot.Interruptible; } } - - static JsonSerializerOptions _200C_206A_202B_202B_206D_206F_200C_206D_206B_200B_206F_202E_206B_206A_206D_206D_200B_206E_206F_206B_202B_206D_200D_206C_200E_202B_206B_200F_200F_202B_200B_206B_200B_206E_206C_206E_206B_202B_200D_206C_202E() - { - return new JsonSerializerOptions(); - } - - static JavaScriptEncoder _202E_206B_200E_200C_206E_202C_202D_200C_202B_200B_202C_202B_202B_202C_206D_202B_200B_200D_206A_206C_200B_206D_206D_202C_206E_200F_202E_206A_200C_206C_206C_206F_206B_202B_200C_202B_200D_200C_202E_206C_202E() - { - return JavaScriptEncoder.UnsafeRelaxedJsonEscaping; - } - - static void _206F_202C_200E_202A_200F_200F_206B_200D_206A_200F_206D_206F_202E_200B_200D_200B_200B_200F_206D_200F_200E_202C_200C_206E_202D_200E_206D_202E_206C_206A_206D_206F_206C_202C_202A_202C_200E_206D_200D_202E(JsonSerializerOptions P_0, JavaScriptEncoder P_1) - { - P_0.Encoder = P_1; - } - - static void _206D_200E_200C_206D_202B_202A_202C_206C_206C_202A_206C_206C_206F_202E_202C_200F_206F_202E_200E_200E_202B_206C_202D_206A_200E_200D_206C_200B_200B_200D_200E_206E_200D_200E_200B_206E_202E_202A_200D_202E(JsonSerializerOptions P_0, JsonIgnoreCondition P_1) - { - P_0.DefaultIgnoreCondition = P_1; - } - - static void _202A_200B_202B_202C_206F_200B_202A_202C_206A_200C_206F_206B_200C_206F_200D_206E_202B_206F_206D_206C_202B_202E_200D_202A_206A_202B_200D_202A_206B_202D_202A_206B_206C_206E_202E_202C_202A_202C_200E_200E_202E(JsonSerializerOptions P_0, bool P_1) - { - P_0.WriteIndented = P_1; - } - - static void _200D_206A_200C_206A_202A_206E_202E_202D_200C_206A_200D_206C_202C_202B_202C_202C_206D_200B_200E_206E_206A_200D_206F_200E_206A_202A_206B_202B_206A_200D_200D_202E_200E_206E_206E_200E_202B_202D_206D_206C_202E(JsonSerializerOptions P_0, bool P_1) - { - P_0.IncludeFields = P_1; - } - - static DefaultJsonTypeInfoResolver _200F_202B_202C_200E_206C_206F_202D_200C_202D_206F_202A_200D_206F_200F_200D_206D_206B_202C_206E_200F_200D_202A_206F_206D_202E_206C_200F_202A_206A_200F_202E_200F_206C_206B_200C_206B_200E_206B_206B_200C_202E() - { - return new DefaultJsonTypeInfoResolver(); - } - - static IList<Action<JsonTypeInfo>> _200B_202A_202A_202E_206B_206D_200B_206B_200C_202A_202B_200B_200B_206C_206C_200E_202D_206D_202E_200C_206E_200C_202D_202B_200F_206B_200B_206E_206E_206C_202B_202B_202D_206A_206D_206D_202B_200D_202D_202E(DefaultJsonTypeInfoResolver P_0) - { - return P_0.Modifiers; - } - - static void _206E_200F_200D_202E_206E_206A_200F_206D_206E_200D_206E_206B_206B_202A_202A_202B_206A_206F_206B_202A_206D_206B_206A_206C_206C_202E_206D_202E_206E_206A_202A_206E_206A_206B_206B_202B_202D_206D_206A_206D_202E(JsonSerializerOptions P_0, IJsonTypeInfoResolver P_1) - { - P_0.TypeInfoResolver = P_1; - } - - static JsonObject _202E_202D_200F_202C_202A_206A_202C_200B_206B_202B_200B_200C_200D_206B_206D_200D_200E_200B_200B_206B_206B_200C_200C_200B_200B_206B_206D_206A_206A_200E_202A_202C_202A_206F_206A_202A_206C_206A_202B_206C_202E(JsonNodeOptions? P_0) - { - return new JsonObject(P_0); - } - - static JsonNode _202D_206A_200D_200E_202C_206D_200E_200D_206A_202D_206B_206E_202C_200D_200D_202E_206F_200C_206A_206B_206E_202B_206C_206C_202A_200E_206A_200D_206A_206C_202E_202B_206B_200D_206C_200F_206C_202A_200C_202D_202E(string P_0) - { - return P_0; - } - - static void _200E_202C_200B_202D_206F_202C_206B_206C_200B_202A_206B_206F_202C_200B_206B_206B_200F_206D_202E_200C_200C_202C_206C_206A_202C_200E_206B_200C_206E_206D_202D_200E_200F_206B_202E_202D_206C_202D_200B_202B_202E(JsonObject P_0, string P_1, JsonNode P_2) - { - P_0.Add(P_1, P_2); - } - - static IEnumerator<KeyValuePair<string, JsonNode>> _202C_200D_206C_206C_206D_206D_206C_200C_206C_202C_200F_200E_202A_206B_206D_200C_200F_206E_206E_206F_206A_206F_206D_206D_206F_202E_206B_200E_206A_202D_206B_206B_202A_200B_206B_202B_206D_206B_202B_206C_202E(JsonObject P_0) - { - return P_0.GetEnumerator(); - } - - static JsonNode _202D_200D_202A_202C_206D_206F_200F_206C_200F_202C_200E_202D_202B_200B_206D_206F_200C_202C_202D_202D_200C_206E_206B_200E_206D_202B_206C_206D_206F_202C_200B_206A_206A_202E_200F_200F_206E_202E_200E_200F_202E(JsonNode P_0) - { - return P_0.DeepClone(); - } - - static bool _206C_202D_200C_206A_206E_206F_202D_200F_200B_202C_206C_202D_200C_206A_202D_200F_200E_202E_202A_206B_202D_200F_206B_200F_200C_202D_206A_202E_206B_200B_206B_206B_206E_206F_200D_206E_202A_206B_206D_206D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206A_202C_206D_206D_206E_200B_200B_202B_206C_202B_206E_206B_206E_200B_202E_206D_202E_202D_200D_206B_200D_200C_202B_200C_200B_206B_200F_202A_206F_206A_206A_200F_202D_206E_202C_206C_206F_206C_206D_200C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static MemoryStream _202E_202C_206A_200F_202B_200B_206B_200C_206B_200D_206B_202B_202B_202A_206A_200E_200D_206C_206D_202D_206D_206A_202A_206E_200E_202D_200C_206C_202B_202C_202A_206E_206C_200D_202A_206B_200D_200E_202E_206E_202E() - { - return new MemoryStream(); - } - - static Utf8JsonWriter _202C_206D_202B_202C_202C_206B_200C_206B_202C_202B_202E_206D_206D_202B_202D_202B_206C_200D_200E_206F_206A_200B_200D_202D_202B_200E_200E_202B_206A_202E_200D_206D_202A_202C_206D_202C_200C_202B_200E_206C_202E(Stream P_0, JsonWriterOptions P_1) - { - return new Utf8JsonWriter(P_0, P_1); - } - - static void _200B_200C_200F_206A_202B_202B_202E_200D_206F_206C_206B_202E_206C_200E_206A_202B_200F_206A_200F_200C_206B_200D_206E_200D_200B_202E_202E_206C_206B_200D_200D_206B_206C_202D_202C_202E_206F_206E_202A_200D_202E(JsonNode P_0, Utf8JsonWriter P_1, JsonSerializerOptions P_2) - { - P_0.WriteTo(P_1, P_2); - } - - static void _202E_206A_200F_206F_206D_200B_200F_206E_202E_206E_206C_202C_202E_200D_202B_202B_202B_206E_200E_202D_206A_206C_200C_200E_200F_202C_206E_200F_206B_202A_206B_202E_206B_206D_202B_202D_202E_206E_202C_206E_202E(Stream P_0, byte P_1) - { - P_0.WriteByte(P_1); - } - - static byte[] _206D_206E_206C_206D_202A_206D_202E_200E_206E_206A_202D_200B_206A_200C_206D_202B_202D_202B_206B_200F_206B_206F_202A_202B_202C_202C_202E_206C_200B_206F_200F_206E_206F_206C_202E_206B_200F_202A_200E_206D_202E(MemoryStream P_0) - { - return P_0.ToArray(); - } - - static IList<JsonPropertyInfo> _200C_206E_202C_202D_206B_206A_206E_200E_206A_202A_200C_202E_202E_200E_206A_200F_206D_200B_206D_200F_206A_200C_202B_200C_200E_200F_206D_206F_200B_202B_206D_200B_206C_202B_206C_206B_206E_200C_200D_202D_202E(JsonTypeInfo P_0) - { - return P_0.Properties; - } - - static Type _206B_206D_202D_200C_206F_206F_202D_206B_202C_200E_206B_206D_200B_200E_202C_206C_200F_206E_206C_206D_200F_202E_200E_200C_200C_202E_206A_202A_206F_206C_206C_202B_200F_202E_202C_206B_206B_200E_200F_202A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static Type _206B_200F_202D_206D_206C_202D_202D_206F_206B_206C_202C_206E_202C_202C_200C_206B_206A_206E_206C_200F_200B_206C_202A_202A_200C_202D_200C_200B_202A_200B_202A_202B_202C_202B_200D_202A_206C_206F_200F_202B_202E(JsonPropertyInfo P_0) - { - return P_0.PropertyType; - } - - static bool _200F_206B_200D_202A_202C_206B_200B_206C_200F_200C_202B_202E_200D_202E_206F_202A_200F_206B_200D_202D_206F_206F_202E_200B_206C_206D_202E_206D_200C_206E_200C_202C_202A_200B_202A_200F_200D_202C_200D_202E_202E(Type P_0, Type P_1) - { - return P_0.IsAssignableFrom(P_1); - } - - static void _206E_202A_206F_200B_202A_200D_202A_202D_202A_200E_206C_206F_202C_206E_206E_200F_206E_200B_200D_202E_206D_200B_206D_200C_206F_200C_206F_200F_202A_202C_202A_206D_202E_206F_202A_200F_200B_206C_202A_200F_202E(JsonPropertyInfo P_0, Func<object, object, bool> P_1) - { - P_0.ShouldSerialize = P_1; - } - - static Type _202C_202E_206A_206F_200E_202B_202E_202B_200F_202C_202D_202C_206D_200F_200C_202D_206C_202D_206C_206D_206C_206A_202C_206F_200C_202B_206B_206A_206A_206A_206D_206A_202A_206A_202A_206B_206C_206D_200C_206B_202E(JsonTypeInfo P_0) - { - return P_0.Type; - } - - static bool _202E_202E_202B_202B_202C_200C_206F_206A_200D_206B_206E_200F_206E_200C_206C_206C_206E_206B_200B_200C_206B_200B_202B_202E_206B_206C_206A_202D_206E_200F_202E_206A_202B_206E_202E_200D_202D_202E_206C_200F_202E(Type P_0, Type P_1) - { - return P_0 != P_1; - } } diff --git a/Questionable.Model/Questionable.Model.Questing/QuestSequence.cs b/Questionable.Model/Questionable.Model.Questing/QuestSequence.cs index 422bebf..01ff48d 100644 --- a/Questionable.Model/Questionable.Model.Questing/QuestSequence.cs +++ b/Questionable.Model/Questionable.Model.Questing/QuestSequence.cs @@ -15,28 +15,11 @@ public sealed class QuestSequence public QuestStep? FindStep(int step) { - int num = ((step < 0) ? (-1021069970) : (-1021069969)); - while (true) + if (step < 0 || step >= Steps.Count) { - int num2 = num; - int num3 = -1021069971; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return null; - case 1: - return Steps[step]; - case 0: - num = -1021069969; - break; - case 2: - num = ((step < Steps.Count) ? (-1021069972) : (-1021069970)); - break; - } + return null; } + return Steps[step]; } public QuestStep? LastStep() diff --git a/Questionable.Model/Questionable.Model.Questing/QuestStep.cs b/Questionable.Model/Questionable.Model.Questing/QuestStep.cs index a821dc2..c4b6394 100644 --- a/Questionable.Model/Questionable.Model.Questing/QuestStep.cs +++ b/Questionable.Model/Questionable.Model.Questing/QuestStep.cs @@ -159,46 +159,19 @@ public sealed class QuestStep public float CalculateActualStopDistance() { float? stopDistance = StopDistance; - int num = ((!stopDistance.HasValue) ? (-455732266) : (-455732271)); - float result = default(float); - EInteractionType interactionType = default(EInteractionType); - while (true) + if (stopDistance.HasValue) { - int num2 = num; - int num3 = -455732267; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - result = 10f; - num = -455732268; - break; - case 4: - return stopDistance.GetValueOrDefault(); - case 8: - num = (((uint)(interactionType - 4) <= 1u) ? (-455732265) : (-455732272)); - break; - case 5: - num = -455732270; - break; - case 3: - interactionType = InteractionType; - num = ((interactionType == EInteractionType.WalkTo) ? (-455732269) : (-455732259)); - break; - case 0: - num = -455732271; - break; - case 7: - result = 3f; - num = -455732268; - break; - case 6: - result = 0.25f; - num = -455732268; - break; - case 1: - return result; - } + return stopDistance.GetValueOrDefault(); + } + switch (InteractionType) + { + case EInteractionType.WalkTo: + return 0.25f; + case EInteractionType.AttuneAetheryte: + case EInteractionType.RegisterFreeOrFavoredAetheryte: + return 10f; + default: + return 3f; } } } diff --git a/Questionable.Model/Questionable.Model.Questing/QuestWorkValue.cs b/Questionable.Model/Questionable.Model.Questing/QuestWorkValue.cs index 0b30ce1..5d5caa8 100644 --- a/Questionable.Model/Questionable.Model.Questing/QuestWorkValue.cs +++ b/Questionable.Model/Questionable.Model.Questing/QuestWorkValue.cs @@ -1,4 +1,3 @@ -using System.Runtime.CompilerServices; using System.Text.Json.Serialization; using Questionable.Model.Questing.Converter; @@ -7,66 +6,31 @@ namespace Questionable.Model.Questing; [JsonConverter(typeof(QuestWorkConfigConverter))] public sealed class QuestWorkValue(byte? high, byte? low, EQuestWorkMode mode) { - public byte? High { get; set; } + public byte? High { get; set; } = high; - public byte? Low { get; set; } + public byte? Low { get; set; } = low; - public EQuestWorkMode Mode { get; set; } - - public QuestWorkValue(byte? high, byte? low, EQuestWorkMode mode) - { - High = high; - Low = low; - Mode = mode; - base._002Ector(); - } + public EQuestWorkMode Mode { get; set; } = mode; public QuestWorkValue(byte value) + : this((byte)(value >> 4), (byte)(value & 0xF), EQuestWorkMode.Bitwise) { - byte? high = (byte)(value >> 4); - int num = 15; - this._002Ector(high, (byte)((value | num) - (value ^ num)), EQuestWorkMode.Bitwise); } - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - int num = ((!High.HasValue) ? 30778248 : 30778253); - while (true) + if (High.HasValue && Low.HasValue) { - int num2 = num; - int num3 = 30778255; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return ((byte)((High.Value << 4) + Low.Value)).ToString(); - case 2: - num = ((!Low.HasValue) ? 30778248 : 30778254); - break; - case 7: - num = ((!High.HasValue) ? 30778250 : 30778252); - break; - case 0: - return global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(-882791204); - case 3: - return _206A_200C_200D_206D_206F_202B_206F_202C_206C_200B_202C_202D_202B_206E_206B_206B_206B_202C_200C_202C_202C_206C_206E_200F_206D_202A_200E_200B_202B_206F_202B_200D_206E_206F_202A_200F_206C_206D_200E_202C_202E(High.Value.ToString(), global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(48541848)); - case 6: - num = 30778253; - break; - case 4: - return _206A_200C_200D_206D_206F_202B_206F_202C_206C_200B_202C_202D_202B_206E_206B_206B_206B_202C_200C_202C_202C_206C_206E_200F_206D_202A_200E_200B_202B_206F_202B_200D_206E_206F_202A_200F_206C_206D_200E_202C_202E(Low.Value.ToString(), global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(2110978622)); - case 5: - num = ((!Low.HasValue) ? 30778255 : 30778251); - break; - } + return ((byte)((High.Value << 4) + Low.Value)).ToString(); } - } - - static string _206A_200C_200D_206D_206F_202B_206F_202C_206C_200B_202C_202D_202B_206E_206B_206B_206B_202C_200C_202C_202C_206C_206E_200F_206D_202A_200E_200B_202B_206F_202B_200D_206E_206F_202A_200F_206C_206D_200E_202C_202E(string P_0, string P_1) - { - return P_0 + P_1; + if (High.HasValue) + { + return High.Value + "H"; + } + if (Low.HasValue) + { + return Low.Value + "L"; + } + return "-"; } } diff --git a/Questionable.Model/Questionable.Model.Questing/SkipStepConditions.cs b/Questionable.Model/Questionable.Model.Questing/SkipStepConditions.cs index de92ba8..35f9560 100644 --- a/Questionable.Model/Questionable.Model.Questing/SkipStepConditions.cs +++ b/Questionable.Model/Questionable.Model.Questing/SkipStepConditions.cs @@ -1,6 +1,5 @@ using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; using System.Text.Json.Serialization; using Questionable.Model.Questing.Converter; using SmartNav.Model; @@ -49,139 +48,19 @@ public sealed class SkipStepConditions public bool HasSkipConditions() { - int num = ((!Never) ? (-1487390778) : (-1487390776)); - while (true) + if (Never) { - int num2 = num; - int num3 = -1487390773; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 14: - num = ((QuestsAccepted.Count > 0) ? (-1487390781) : (-1487390769)); - break; - case 13: - num = ((CompletionQuestVariablesFlags.Count <= 0) ? (-1487390773) : (-1487390770)); - break; - case 11: - num = (MinimumLevel.HasValue ? (-1487390781) : (-1487390771)); - break; - case 3: - return false; - case 2: - num = ((Item != null) ? (-1487390781) : (-1487390779)); - break; - case 1: - num = (Diving.HasValue ? (-1487390781) : (-1487390782)); - break; - case 10: - num = ((InTerritory.Count > 0) ? (-1487390781) : (-1487390772)); - break; - case 15: - num = (Chocobo.HasValue ? (-1487390781) : (-1487390774)); - break; - case 19: - num = (AetheryteLocked.HasValue ? (-1487390781) : (-1487390757)); - break; - case 9: - num = (NotTargetable ? (-1487390781) : (-1487390783)); - break; - case 12: - num = -1487390776; - break; - case 0: - num = (Flying.HasValue ? (-1487390781) : (-1487390780)); - break; - case 18: - return ExtraCondition.HasValue; - case 8: - return true; - case 16: - num = (AetheryteUnlocked.HasValue ? (-1487390781) : (-1487390784)); - break; - case 7: - num = ((NotInTerritory.Count > 0) ? (-1487390781) : (-1487390775)); - break; - case 17: - num = ((NotNearPosition != null) ? (-1487390781) : (-1487390759)); - break; - case 4: - num = ((QuestsCompleted.Count > 0) ? (-1487390781) : (-1487390753)); - break; - case 6: - num = ((NearPosition != null) ? (-1487390781) : (-1487390758)); - break; - case 5: - num = (CompletionQuestVariablesFlags.Any((QuestWorkValue x) => x != null) ? (-1487390781) : (-1487390773)); - break; - case 20: - num = ((NotNamePlateIconId.Count > 0) ? (-1487390781) : (-1487390760)); - break; - } + return false; } + if ((CompletionQuestVariablesFlags.Count <= 0 || !CompletionQuestVariablesFlags.Any((QuestWorkValue x) => x != null)) && !Flying.HasValue && !Chocobo.HasValue && !Diving.HasValue && !NotTargetable && InTerritory.Count <= 0 && NotInTerritory.Count <= 0 && Item == null && QuestsAccepted.Count <= 0 && QuestsCompleted.Count <= 0 && NotNamePlateIconId.Count <= 0 && !AetheryteLocked.HasValue && !AetheryteUnlocked.HasValue && !MinimumLevel.HasValue && NearPosition == null && NotNearPosition == null) + { + return ExtraCondition.HasValue; + } + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(54, 28); - defaultInterpolatedStringHandler.AppendFormatted(global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1770959126)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1976970320)); - defaultInterpolatedStringHandler.AppendFormatted(Never); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1869626143)); - defaultInterpolatedStringHandler.AppendFormatted(global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1553385684)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1976970320)); - defaultInterpolatedStringHandler.AppendFormatted(CompletionQuestVariablesFlags); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(382305646)); - defaultInterpolatedStringHandler.AppendFormatted(global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-350975942)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1776596717)); - defaultInterpolatedStringHandler.AppendFormatted(Flying); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1869626143)); - defaultInterpolatedStringHandler.AppendFormatted(global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1544197877)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(107920315)); - defaultInterpolatedStringHandler.AppendFormatted(Chocobo); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1869626143)); - defaultInterpolatedStringHandler.AppendFormatted(global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1731183236)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1976970320)); - defaultInterpolatedStringHandler.AppendFormatted(Diving); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1869626143)); - defaultInterpolatedStringHandler.AppendFormatted(global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(2118852789)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1776596717)); - defaultInterpolatedStringHandler.AppendFormatted(NotTargetable); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1833048559)); - defaultInterpolatedStringHandler.AppendFormatted(global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1379711779)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1776596717)); - defaultInterpolatedStringHandler.AppendFormatted(string.Join(global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(2081445888), InTerritory)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-641561799)); - defaultInterpolatedStringHandler.AppendFormatted(global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1826733459)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1976970320)); - defaultInterpolatedStringHandler.AppendFormatted(string.Join(global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1595229972), NotInTerritory)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(813575713)); - defaultInterpolatedStringHandler.AppendFormatted(global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1712180490)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1776596717)); - defaultInterpolatedStringHandler.AppendFormatted(Item); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(382305646)); - defaultInterpolatedStringHandler.AppendFormatted(global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-1917849384)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(107920315)); - defaultInterpolatedStringHandler.AppendFormatted(string.Join(global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(-1595229972), QuestsAccepted)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(813575713)); - defaultInterpolatedStringHandler.AppendFormatted(global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(2044649201)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1049618677)); - defaultInterpolatedStringHandler.AppendFormatted(string.Join(global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(108957871), QuestsCompleted)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(382305646)); - defaultInterpolatedStringHandler.AppendFormatted(global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-405742690)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(107920315)); - defaultInterpolatedStringHandler.AppendFormatted(string.Join(global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1549529312), NotNamePlateIconId)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1833048559)); - defaultInterpolatedStringHandler.AppendFormatted(global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(429954667)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1903063187)); - defaultInterpolatedStringHandler.AppendFormatted(NearPosition); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-641561799)); - defaultInterpolatedStringHandler.AppendFormatted(global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-634452865)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1903063187)); - defaultInterpolatedStringHandler.AppendFormatted(ExtraCondition); - return defaultInterpolatedStringHandler.ToStringAndClear(); + return $"{"Never"}: {Never}, {"CompletionQuestVariablesFlags"}: {CompletionQuestVariablesFlags}, {"Flying"}: {Flying}, {"Chocobo"}: {Chocobo}, {"Diving"}: {Diving}, {"NotTargetable"}: {NotTargetable}, {"InTerritory"}: {string.Join(" ", InTerritory)}, {"NotInTerritory"}: {string.Join(" ", NotInTerritory)}, {"Item"}: {Item}, {"QuestsAccepted"}: {string.Join(" ", QuestsAccepted)}, {"QuestsCompleted"}: {string.Join(" ", QuestsCompleted)}, {"NotNamePlateIconId"}: {string.Join(" ", NotNamePlateIconId)}, {"NearPosition"}: {NearPosition}, {"ExtraCondition"}: {ExtraCondition}"; } } diff --git a/Questionable.Model/Questionable.Model.Questing/UnlockLinkId.cs b/Questionable.Model/Questionable.Model.Questing/UnlockLinkId.cs index a102ba6..9f37263 100644 --- a/Questionable.Model/Questionable.Model.Questing/UnlockLinkId.cs +++ b/Questionable.Model/Questionable.Model.Questing/UnlockLinkId.cs @@ -1,5 +1,4 @@ using System.Globalization; -using System.Runtime.CompilerServices; namespace Questionable.Model.Questing; @@ -10,19 +9,8 @@ public sealed class UnlockLinkId : ElementId { } - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return _200D_206B_206E_202B_206B_200D_206D_202B_202C_206C_206C_200B_202B_200E_206A_202A_200C_206B_202E_202B_200C_206B_200C_200D_200E_206D_202E_202A_200E_202B_200F_200E_200F_206C_202C_206D_202E_202E_206E_200E_202E(global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-326705716), base.Value.ToString(_200F_202A_206B_202C_206E_206D_206C_206E_206D_200D_206C_202E_202D_200E_206D_202A_202B_206C_206B_206E_206A_202D_206E_200B_202E_206D_200D_206E_202D_202C_202C_206B_202E_206A_206A_200B_206A_206B_200F_206D_202E())); - } - - static CultureInfo _200F_202A_206B_202C_206E_206D_206C_206E_206D_200D_206C_202E_202D_200E_206D_202A_202B_206C_206B_206E_206A_202D_206E_200B_202E_206D_200D_206E_202D_202C_202C_206B_202E_206A_206A_200B_206A_206B_200F_206D_202E() - { - return CultureInfo.InvariantCulture; - } - - static string _200D_206B_206E_202B_206B_200D_206D_202B_202C_206C_206C_200B_202B_200E_206A_202A_200C_206B_202E_202B_200C_206B_200C_200D_200E_206D_202E_202A_200E_202B_200F_200E_200F_206C_202C_206D_202E_202E_206E_200E_202E(string P_0, string P_1) - { - return P_0 + P_1; + return "U" + base.Value.ToString(CultureInfo.InvariantCulture); } } diff --git a/Questionable.Model/Questionable.Model/AssemblyModelLoader.cs b/Questionable.Model/Questionable.Model/AssemblyModelLoader.cs index 3b3fd95..d448dfa 100644 --- a/Questionable.Model/Questionable.Model/AssemblyModelLoader.cs +++ b/Questionable.Model/Questionable.Model/AssemblyModelLoader.cs @@ -1,75 +1,19 @@ -using System; using System.IO; -using System.Reflection; -using System.Runtime.CompilerServices; using SmartNav.Model; namespace Questionable.Model; public static class AssemblyModelLoader { - public static Stream CommonAetheryte => _206C_206C_202A_202E_206D_202B_200E_200B_202C_200D_202B_202A_200D_206E_206A_206F_206F_200C_206A_206B_206E_206C_206D_206F_200F_200B_200B_202B_200C_202E_206C_200E_206F_202D_206A_206C_200F_200C_202B_206E_202E(); + public static Stream CommonAetheryte => ModelResources.CommonAetheryte; - public static Stream CommonAethernetShard => _202A_202E_206E_202E_202E_206D_202C_200F_202C_200D_206B_206F_206F_200E_206A_200F_206D_206C_206E_202D_200D_202A_202B_202E_200D_206B_200E_206F_200F_202A_206A_206F_206F_206D_206E_206A_206C_206E_200C_206B_202E(); + public static Stream CommonAethernetShard => ModelResources.CommonAethernetShard; - public static Stream CommonClassJob - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return _200B_200F_202A_206D_200C_206C_206E_200F_200E_206D_206F_206D_202A_202E_202A_200D_200F_206B_200C_206B_206E_206D_206B_200D_202D_202A_200E_202A_206C_200C_202B_202C_200B_200C_202E_202B_202C_206D_200C_200D_202E(_202E_200C_206F_206A_200F_200C_206F_202E_200C_206D_202E_200C_206E_200D_206A_202C_202D_206E_206E_206D_200E_206C_200C_200B_202A_206D_202E_202C_200B_200E_206F_202A_200E_202D_202C_206F_200B_202A_200F_206E_202E(_202B_200B_206E_200D_206D_206F_202E_200E_200C_206F_202C_200D_200E_200E_206F_200C_200C_202A_206E_206E_202D_206E_206C_206A_200D_206A_206A_202C_206F_200F_206D_200E_202B_200C_202C_206A_200E_206D_206C_206F_202E(typeof(AssemblyModelLoader).TypeHandle)), global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(657022072)); - } - } + public static Stream CommonClassJob => typeof(AssemblyModelLoader).Assembly.GetManifestResourceStream("Questionable.Model.CommonClassJob"); - public static Stream CommonCompletionFlags - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return _200B_200F_202A_206D_200C_206C_206E_200F_200E_206D_206F_206D_202A_202E_202A_200D_200F_206B_200C_206B_206E_206D_206B_200D_202D_202A_200E_202A_206C_200C_202B_202C_200B_200C_202E_202B_202C_206D_200C_200D_202E(_202E_200C_206F_206A_200F_200C_206F_202E_200C_206D_202E_200C_206E_200D_206A_202C_202D_206E_206E_206D_200E_206C_200C_200B_202A_206D_202E_202C_200B_200E_206F_202A_200E_202D_202C_206F_200B_202A_200F_206E_202E(_202B_200B_206E_200D_206D_206F_202E_200E_200C_206F_202C_200D_200E_200E_206F_200C_200C_202A_206E_206E_202D_206E_206C_206A_200D_206A_206A_202C_206F_200F_206D_200E_202B_200C_202C_206A_200E_206D_206C_206F_202E(typeof(AssemblyModelLoader).TypeHandle)), global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(2114110650)); - } - } + public static Stream CommonCompletionFlags => typeof(AssemblyModelLoader).Assembly.GetManifestResourceStream("Questionable.Model.CommonCompletionFlags"); - public static Stream CommonRequiredVariables - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return _200B_200F_202A_206D_200C_206C_206E_200F_200E_206D_206F_206D_202A_202E_202A_200D_200F_206B_200C_206B_206E_206D_206B_200D_202D_202A_200E_202A_206C_200C_202B_202C_200B_200C_202E_202B_202C_206D_200C_200D_202E(_202E_200C_206F_206A_200F_200C_206F_202E_200C_206D_202E_200C_206E_200D_206A_202C_202D_206E_206E_206D_200E_206C_200C_200B_202A_206D_202E_202C_200B_200E_206F_202A_200E_202D_202C_206F_200B_202A_200F_206E_202E(_202B_200B_206E_200D_206D_206F_202E_200E_200C_206F_202C_200D_200E_200E_206F_200C_200C_202A_206E_206E_202D_206E_206C_206A_200D_206A_206A_202C_206F_200F_206D_200E_202B_200C_202C_206A_200E_206D_206C_206F_202E(typeof(AssemblyModelLoader).TypeHandle)), global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(1657928596)); - } - } + public static Stream CommonRequiredVariables => typeof(AssemblyModelLoader).Assembly.GetManifestResourceStream("Questionable.Model.CommonRequiredVariables"); - public static Stream CommonVector3 - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return _200B_200F_202A_206D_200C_206C_206E_200F_200E_206D_206F_206D_202A_202E_202A_200D_200F_206B_200C_206B_206E_206D_206B_200D_202D_202A_200E_202A_206C_200C_202B_202C_200B_200C_202E_202B_202C_206D_200C_200D_202E(_202E_200C_206F_206A_200F_200C_206F_202E_200C_206D_202E_200C_206E_200D_206A_202C_202D_206E_206E_206D_200E_206C_200C_200B_202A_206D_202E_202C_200B_200E_206F_202A_200E_202D_202C_206F_200B_202A_200F_206E_202E(_202B_200B_206E_200D_206D_206F_202E_200E_200C_206F_202C_200D_200E_200E_206F_200C_200C_202A_206E_206E_202D_206E_206C_206A_200D_206A_206A_202C_206F_200F_206D_200E_202B_200C_202C_206A_200E_206D_206C_206F_202E(typeof(AssemblyModelLoader).TypeHandle)), global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-1903633621)); - } - } - - static Stream _206C_206C_202A_202E_206D_202B_200E_200B_202C_200D_202B_202A_200D_206E_206A_206F_206F_200C_206A_206B_206E_206C_206D_206F_200F_200B_200B_202B_200C_202E_206C_200E_206F_202D_206A_206C_200F_200C_202B_206E_202E() - { - return ModelResources.CommonAetheryte; - } - - static Stream _202A_202E_206E_202E_202E_206D_202C_200F_202C_200D_206B_206F_206F_200E_206A_200F_206D_206C_206E_202D_200D_202A_202B_202E_200D_206B_200E_206F_200F_202A_206A_206F_206F_206D_206E_206A_206C_206E_200C_206B_202E() - { - return ModelResources.CommonAethernetShard; - } - - static Type _202B_200B_206E_200D_206D_206F_202E_200E_200C_206F_202C_200D_200E_200E_206F_200C_200C_202A_206E_206E_202D_206E_206C_206A_200D_206A_206A_202C_206F_200F_206D_200E_202B_200C_202C_206A_200E_206D_206C_206F_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static Assembly _202E_200C_206F_206A_200F_200C_206F_202E_200C_206D_202E_200C_206E_200D_206A_202C_202D_206E_206E_206D_200E_206C_200C_200B_202A_206D_202E_202C_200B_200E_206F_202A_200E_202D_202C_206F_200B_202A_200F_206E_202E(Type P_0) - { - return P_0.Assembly; - } - - static Stream _200B_200F_202A_206D_200C_206C_206E_200F_200E_206D_206F_206D_202A_202E_202A_200D_200F_206B_200C_206B_206E_206D_206B_200D_202D_202A_200E_202A_206C_200C_202B_202C_200B_200C_202E_202B_202C_206D_200C_200D_202E(Assembly P_0, string P_1) - { - return P_0.GetManifestResourceStream(P_1); - } + public static Stream CommonVector3 => typeof(AssemblyModelLoader).Assembly.GetManifestResourceStream("Questionable.Model.CommonVector3"); } diff --git a/Questionable.Model/Questionable.Model/ExpansionData.cs b/Questionable.Model/Questionable.Model/ExpansionData.cs index 2bf6f2a..af90eb8 100644 --- a/Questionable.Model/Questionable.Model/ExpansionData.cs +++ b/Questionable.Model/Questionable.Model/ExpansionData.cs @@ -1,6 +1,5 @@ using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; namespace Questionable.Model; @@ -10,227 +9,64 @@ public static class ExpansionData { { EExpansionVersion.ARealmReborn, - global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(1600629017) + "2.x - A Realm Reborn" }, { EExpansionVersion.Heavensward, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(2010245113) + "3.x - Heavensward" }, { EExpansionVersion.Stormblood, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1214854245) + "4.x - Stormblood" }, { EExpansionVersion.Shadowbringers, - global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(501979102) + "5.x - Shadowbringers" }, { EExpansionVersion.Endwalker, - global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(355179699) + "6.x - Endwalker" }, { EExpansionVersion.Dawntrail, - global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1427994859) + "7.x - Dawntrail" } }; - [MethodImpl(MethodImplOptions.NoInlining)] public static string ToFriendlyString(this EExpansionVersion expansionVersion) { - int num = ((expansionVersion != EExpansionVersion.ARealmReborn) ? 2495585 : 2495586); - string result = default(string); - while (true) + if (expansionVersion == EExpansionVersion.ARealmReborn) { - int num2 = num; - int num3 = 2495585; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return result; - case 0: - result = expansionVersion.ToString(); - num = 2495584; - break; - case 3: - result = global::_003CModule_003E._200F_200E_200D_202C_206F_200B_200B_206E_206B_202D_202C_202C_200B_206C_206B_202E_206D_202A_206B_202B_202B_206E_206C_202B_200D_206B_206C_200D_200B_200E_206C_206F_200D_202A_206C_206F_200B_202C_206A_202D_202E<string>(-2063217203); - num = 2495584; - break; - case 2: - num = 2495586; - break; - } + return "A Realm Reborn"; } + return expansionVersion.ToString(); } - [MethodImpl(MethodImplOptions.NoInlining)] public static string ToAbbreviation(this EExpansionVersion expansionVersion) { - int num; - string result = default(string); - switch (expansionVersion) + return expansionVersion switch { - default: - num = -1514715948; - goto IL_0029; - case EExpansionVersion.Stormblood: - result = global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1303815993); - num = -1514715940; - goto IL_0029; - case EExpansionVersion.Heavensward: - goto IL_008b; - case EExpansionVersion.Shadowbringers: - goto IL_00a1; - case EExpansionVersion.Dawntrail: - goto IL_00b7; - case EExpansionVersion.ARealmReborn: - goto IL_00cd; - case EExpansionVersion.Endwalker: - goto IL_00f9; - IL_0029: - while (true) - { - int num2 = num; - int num3 = -1514715947; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = -1514715948; - break; - case 8: - goto end_IL_0029; - case 5: - goto IL_008b; - case 3: - goto IL_00a1; - case 0: - goto IL_00b7; - case 6: - goto IL_00cd; - case 7: - result = global::_003CModule_003E._200F_206E_206A_200F_202A_206C_206C_202C_200E_206C_202B_200D_206C_200C_202E_200F_202B_200C_206E_202D_200D_206D_206D_200C_206D_206D_206F_206D_200F_200E_200E_206A_206D_206C_202E_206E_202E_202A_206A_206B_202E<string>(1947262513); - num = -1514715940; - break; - case 2: - goto IL_00f9; - case 1: - num = -1514715950; - break; - case 9: - return result; - } - continue; - end_IL_0029: - break; - } - goto case EExpansionVersion.Stormblood; - IL_00f9: - result = global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1716845541); - num = -1514715940; - goto IL_0029; - IL_00cd: - result = global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1752062659); - num = -1514715940; - goto IL_0029; - IL_00b7: - result = global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1876241525); - num = -1514715940; - goto IL_0029; - IL_00a1: - result = global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-637152881); - num = -1514715940; - goto IL_0029; - IL_008b: - result = global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(-1050182429); - num = -1514715940; - goto IL_0029; - } + EExpansionVersion.ARealmReborn => "ARR", + EExpansionVersion.Heavensward => "HW", + EExpansionVersion.Stormblood => "SB", + EExpansionVersion.Shadowbringers => "ShB", + EExpansionVersion.Endwalker => "EW", + EExpansionVersion.Dawntrail => "DT", + _ => "?", + }; } public static Vector4 GetExpansionColor(this EExpansionVersion expansionVersion) { - int num; - Vector4 result = default(Vector4); - switch (expansionVersion) + return expansionVersion switch { - default: - num = 976463858; - goto IL_0029; - case EExpansionVersion.ARealmReborn: - result = new Vector4(0.7f, 0.7f, 0.7f, 1f); - num = 976463863; - goto IL_0029; - case EExpansionVersion.Endwalker: - goto IL_00b4; - case EExpansionVersion.Stormblood: - goto IL_00d9; - case EExpansionVersion.Shadowbringers: - goto IL_0109; - case EExpansionVersion.Dawntrail: - goto IL_013b; - case EExpansionVersion.Heavensward: - goto IL_0160; - IL_0029: - while (true) - { - int num2 = num; - int num3 = 976463859; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 9: - result = new Vector4(0.5f, 0.5f, 0.5f, 1f); - num = 976463863; - break; - case 5: - goto end_IL_0029; - case 3: - goto IL_00b4; - case 7: - goto IL_00d9; - case 8: - num = 976463858; - break; - case 2: - goto IL_0109; - case 1: - num = 976463866; - break; - case 4: - return result; - case 6: - goto IL_013b; - case 0: - goto IL_0160; - } - continue; - end_IL_0029: - break; - } - goto case EExpansionVersion.ARealmReborn; - IL_0160: - result = new Vector4(0.4f, 0.6f, 0.9f, 1f); - num = 976463863; - goto IL_0029; - IL_013b: - result = new Vector4(0.3f, 0.8f, 0.5f, 1f); - num = 976463863; - goto IL_0029; - IL_0109: - result = new Vector4(0.5f, 0.4f, 0.7f, 1f); - num = 976463863; - goto IL_0029; - IL_00d9: - result = new Vector4(0.9f, 0.3f, 0.3f, 1f); - num = 976463863; - goto IL_0029; - IL_00b4: - result = new Vector4(0.8f, 0.8f, 0.4f, 1f); - num = 976463863; - goto IL_0029; - } + EExpansionVersion.ARealmReborn => new Vector4(0.7f, 0.7f, 0.7f, 1f), + EExpansionVersion.Heavensward => new Vector4(0.4f, 0.6f, 0.9f, 1f), + EExpansionVersion.Stormblood => new Vector4(0.9f, 0.3f, 0.3f, 1f), + EExpansionVersion.Shadowbringers => new Vector4(0.5f, 0.4f, 0.7f, 1f), + EExpansionVersion.Endwalker => new Vector4(0.8f, 0.8f, 0.4f, 1f), + EExpansionVersion.Dawntrail => new Vector4(0.3f, 0.8f, 0.5f, 1f), + _ => new Vector4(0.5f, 0.5f, 0.5f, 1f), + }; } } diff --git a/Questionable.Model/Questionable.Model/GatheringMath.cs b/Questionable.Model/Questionable.Model/GatheringMath.cs index 78a9d05..4826334 100644 --- a/Questionable.Model/Questionable.Model/GatheringMath.cs +++ b/Questionable.Model/Questionable.Model/GatheringMath.cs @@ -6,70 +6,20 @@ namespace Questionable.Model; public static class GatheringMath { - private static readonly Random Rng = _206D_206A_202A_200D_202D_206B_200B_206B_200E_202E_200C_206F_202E_206A_200E_206C_202C_206A_202E_206A_200C_206A_202B_200B_200E_206E_206A_202A_200B_200B_202B_202D_200C_206C_200C_202E_206C_200D_200C_202A_202E(); + private static readonly Random Rng = new Random(); public static (Vector3, int, float) CalculateLandingLocation(GatheringLocation location) { - int num = ((!location.IsCone()) ? 106991975 : 106991972); - int num6 = default(int); - while (true) - { - int num2 = num; - int num3 = 106991973; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = 106991972; - break; - case 1: - num6 = _202C_206E_202B_200E_202C_206C_200F_200D_200F_200D_200F_206D_202A_206F_200E_200E_200B_206F_202D_200E_206F_206B_206A_202A_206D_206D_206F_200B_202D_200B_206B_202E_200B_206D_200F_202A_202E_206E_206A_200F_202E(Rng, location.MinimumAngle.GetValueOrDefault(), location.MaximumAngle.GetValueOrDefault()); - num = 106991973; - break; - case 2: - num6 = _202C_206E_202B_200E_202C_206C_200F_200D_200F_200D_200F_206D_202A_206F_200E_200E_200B_206F_202D_200E_206F_206B_206A_202A_206D_206D_206F_200B_202D_200B_206B_202E_200B_206D_200F_202A_202E_206E_206A_200F_202E(Rng, 0, 360); - num = 106991973; - break; - case 0: - { - float num5 = (float)_202C_206E_202B_200E_202C_206C_200F_200D_200F_200D_200F_206D_202A_206F_200E_200E_200B_206F_202D_200E_206F_206B_206A_202A_206D_206D_206F_200B_202D_200B_206B_202E_200B_206D_200F_202A_202E_206E_206A_200F_202E(Rng, (int)(location.CalculateMinimumDistance() * 100f), (int)(location.CalculateMaximumDistance() * 100f)) / 100f; - return (CalculateLandingLocation(location.Position, num6, num5), num6, num5); - } - } - } + int num = ((!location.IsCone()) ? Rng.Next(0, 360) : Rng.Next(location.MinimumAngle.GetValueOrDefault(), location.MaximumAngle.GetValueOrDefault())); + float num2 = (float)Rng.Next((int)(location.CalculateMinimumDistance() * 100f), (int)(location.CalculateMaximumDistance() * 100f)) / 100f; + return (CalculateLandingLocation(location.Position, num, num2), num, num2); } public static Vector3 CalculateLandingLocation(GatheringLocation location, float angleScale, float rangeScale) { - int num = ((!location.IsCone()) ? (-2058900286) : (-2058900288)); - int degrees = default(int); - while (true) - { - int num2 = num; - int num3 = -2058900287; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -2058900288; - break; - case 0: - { - float range = location.CalculateMinimumDistance() + rangeScale * (location.CalculateMaximumDistance() - location.CalculateMinimumDistance()); - return CalculateLandingLocation(location.Position, degrees, range); - } - case 1: - degrees = location.MinimumAngle.GetValueOrDefault() + (int)(angleScale * (float)(location.MaximumAngle.GetValueOrDefault() - location.MinimumAngle.GetValueOrDefault())); - num = -2058900287; - break; - case 3: - degrees = (int)(rangeScale * 360f); - num = -2058900287; - break; - } - } + int degrees = ((!location.IsCone()) ? ((int)(rangeScale * 360f)) : (location.MinimumAngle.GetValueOrDefault() + (int)(angleScale * (float)(location.MaximumAngle.GetValueOrDefault() - location.MinimumAngle.GetValueOrDefault())))); + float range = location.CalculateMinimumDistance() + rangeScale * (location.CalculateMaximumDistance() - location.CalculateMinimumDistance()); + return CalculateLandingLocation(location.Position, degrees, range); } private static Vector3 CalculateLandingLocation(Vector3 position, int degrees, float range) @@ -77,29 +27,9 @@ public static class GatheringMath float num = 0f - (float)((double)degrees * Math.PI / 180.0); return new Vector3 { - X = position.X + range * (float)_206E_200D_200F_200E_206A_200F_206C_206B_206B_206E_206C_200D_206F_206F_206E_200B_200D_200E_206E_202D_200B_200D_200D_200D_206A_202A_206D_206C_206B_200E_200E_200C_200B_206F_200B_206B_206B_206C_206E_202E_202E((double)num), + X = position.X + range * (float)Math.Sin(num), Y = position.Y, - Z = position.Z + range * (float)_202D_206F_206A_206E_206C_206B_200B_202C_206A_206E_206F_202A_202A_202E_206C_202D_202A_200D_202E_206B_200D_200C_200C_200F_200E_206C_202E_200E_200C_202B_206A_200B_206B_200E_200E_202E_202B_202D_200B_206C_202E((double)num) + Z = position.Z + range * (float)Math.Cos(num) }; } - - static int _202C_206E_202B_200E_202C_206C_200F_200D_200F_200D_200F_206D_202A_206F_200E_200E_200B_206F_202D_200E_206F_206B_206A_202A_206D_206D_206F_200B_202D_200B_206B_202E_200B_206D_200F_202A_202E_206E_206A_200F_202E(Random P_0, int P_1, int P_2) - { - return P_0.Next(P_1, P_2); - } - - static double _206E_200D_200F_200E_206A_200F_206C_206B_206B_206E_206C_200D_206F_206F_206E_200B_200D_200E_206E_202D_200B_200D_200D_200D_206A_202A_206D_206C_206B_200E_200E_200C_200B_206F_200B_206B_206B_206C_206E_202E_202E(double P_0) - { - return Math.Sin(P_0); - } - - static double _202D_206F_206A_206E_206C_206B_200B_202C_206A_206E_206F_202A_202A_202E_206C_202D_202A_200D_202E_206B_200D_200C_200C_200F_200E_206C_202E_200E_200C_202B_206A_200B_206B_200E_200E_202E_202B_202D_200B_206C_202E(double P_0) - { - return Math.Cos(P_0); - } - - static Random _206D_206A_202A_200D_202D_206B_200B_206B_200E_202E_200C_206F_202E_206A_200E_206C_202C_206A_202E_206A_200C_206A_202B_200B_200E_206E_206A_202A_200B_200B_202B_202D_200C_206C_200C_202E_206C_200D_200C_202A_202E() - { - return new Random(); - } } diff --git a/Questionable.Model/Questionable.Model/LandingZoneMath.cs b/Questionable.Model/Questionable.Model/LandingZoneMath.cs index aad86a4..dae6e55 100644 --- a/Questionable.Model/Questionable.Model/LandingZoneMath.cs +++ b/Questionable.Model/Questionable.Model/LandingZoneMath.cs @@ -1,438 +1,164 @@ using System; using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; using Questionable.Model.Questing; namespace Questionable.Model; public static class LandingZoneMath { - private static readonly Random Rng = _200C_202E_206B_200E_200F_202B_200F_202E_206E_206F_200C_200D_200F_200C_206E_202E_200C_200C_200E_202E_202B_206E_202B_206C_200E_206C_206B_202B_202B_202B_206E_200C_202A_202D_202B_206F_202E_200E_206A_206A_202E(); + private static readonly Random Rng = new Random(); - [MethodImpl(MethodImplOptions.NoInlining)] public static Vector3 CalculateLandingLocation(IReadOnlyList<LandingZone> zones) { - int num = ((zones.Count != 0) ? 2112702001 : 2112702014); - float num12 = default(float); - float num9 = default(float); - float num11 = default(float); - int num7 = default(int); - int num8 = default(int); - Span<float> span = default(Span<float>); - while (true) + if (zones.Count == 0) { - int num2 = num; - int num3 = 2112702011; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + throw new ArgumentException("At least one landing zone is required.", "zones"); + } + if (zones.Count == 1) + { + return RandomPointInConvexPolygon(zones[0].Vertices); + } + float num = 0f; + Span<float> span = stackalloc float[zones.Count]; + for (int i = 0; i < zones.Count; i++) + { + span[i] = CalculatePolygonArea(zones[i].Vertices); + num += span[i]; + } + float num2 = (float)(Rng.NextDouble() * (double)num); + float num3 = 0f; + for (int j = 0; j < zones.Count; j++) + { + num3 += span[j]; + if (num2 <= num3) { - case 3: - num12 = (float)(_206A_202D_206C_206F_200B_202B_206A_206C_200C_206A_200E_206B_200F_202A_206E_200E_200D_206A_202A_202A_200B_206B_200D_200C_200F_200F_206A_200D_206A_206D_206C_206C_200F_206A_202D_206B_206A_206A_200D_200F_202E(Rng) * (double)num9); - num11 = 0f; - num7 = 0; - num = 2112702009; - break; - case 6: - return RandomPointInConvexPolygon(zones[zones.Count - 1].Vertices); - case 10: - num = ((zones.Count != 1) ? 2112702011 : 2112702007); - break; - case 7: - num = ((num8 < zones.Count) ? 2112702000 : 2112702008); - break; - case 1: - { - int num13 = num7; - num3 = 1; - num4 = num13; - num7 = (num4 | num3) + (num4 & num3); - num = 2112702009; - break; - } - case 8: - num11 += span[num7]; - num = ((!(num12 <= num11)) ? 2112702010 : 2112702015); - break; - case 12: - return RandomPointInConvexPolygon(zones[0].Vertices); - case 9: - num = 2112702014; - break; - case 0: - num9 = 0f; - span = stackalloc float[zones.Count]; - num8 = 0; - num = 2112702012; - break; - case 11: - { - span[num8] = CalculatePolygonArea(zones[num8].Vertices); - num9 += span[num8]; - int num10 = num8; - num3 = 1; - num4 = num10; - num8 = (num4 | num3) + (num4 & num3); - num = 2112702012; - break; - } - case 4: - return RandomPointInConvexPolygon(zones[num7].Vertices); - case 5: - throw _202B_206B_202C_200B_206B_206A_202B_200E_200C_200D_202B_202D_202B_200B_202D_202D_200B_202C_206F_206F_200B_200D_202E_206E_200D_200B_200C_202C_202D_206D_200D_202A_200F_206E_206E_206A_200F_200F_202A_202B_202E(global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(1973710914), global::_003CModule_003E._202C_200B_200E_200D_206A_200D_202D_206E_200E_206D_202C_200E_206A_202D_202E_206F_200C_206C_206B_206F_200E_202A_200E_200E_202B_202B_206D_202B_206D_200C_206C_200C_200E_202A_202C_200D_206E_202C_200B_202A_202E<string>(-187426989)); - case 2: - num = ((num7 < zones.Count) ? 2112702003 : 2112702013); - break; + return RandomPointInConvexPolygon(zones[j].Vertices); } } + return RandomPointInConvexPolygon(zones[zones.Count - 1].Vertices); } - [MethodImpl(MethodImplOptions.NoInlining)] public static Vector3 RandomPointInConvexPolygon(IReadOnlyList<Vector3> vertices) { - int num = ((vertices.Count >= 3) ? 1769041742 : 1769041734); - int num8 = default(int); - float num7 = default(float); - Span<float> span = default(Span<float>); - float num5 = default(float); - int num9 = default(int); - float num6 = default(float); - int num10 = default(int); - while (true) + if (vertices.Count < 3) { - int num2 = num; - int num3 = 1769041740; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + throw new ArgumentException("Polygon must have at least 3 vertices.", "vertices"); + } + if (vertices.Count == 3) + { + return RandomPointInTriangle(vertices[0], vertices[1], vertices[2]); + } + int num = vertices.Count - 2; + Span<float> span = stackalloc float[num]; + float num2 = 0f; + for (int i = 0; i < num; i++) + { + span[i] = TriangleAreaXZ(vertices[0], vertices[i + 1], vertices[i + 2]); + num2 += span[i]; + } + float num3 = (float)(Rng.NextDouble() * (double)num2); + float num4 = 0f; + for (int j = 0; j < num; j++) + { + num4 += span[j]; + if (num3 <= num4) { - case 12: - { - Vector3 a2 = vertices[0]; - int num19 = num8; - num3 = 1; - num4 = num19; - Vector3 b2 = vertices[(num4 | num3) + (num4 & num3)]; - int num20 = num8; - num3 = 2; - num4 = num20; - return RandomPointInTriangle(a2, b2, vertices[(num4 | num3) + (num4 & num3)]); - } - case 0: - num7 += span[num8]; - num = ((!(num5 <= num7)) ? 1769041733 : 1769041728); - break; - case 4: - return RandomPointInTriangle(vertices[0], vertices[vertices.Count - 2], vertices[vertices.Count - 1]); - case 9: - { - int num16 = num8; - num3 = 1; - num4 = num16; - int num17 = num4 ^ num3; - int num18 = num4 & num3; - num8 = num17 + (num18 + num18); - num = 1769041739; - break; - } - case 11: - { - ref float reference = ref span[num9]; - Vector3 a = vertices[0]; - int num11 = num9; - num3 = 1; - num4 = num11; - Vector3 b = vertices[(num4 | num3) + (num4 & num3)]; - int num12 = num9; - num3 = 2; - num4 = num12; - int num13 = num4 ^ num3; - int num14 = num4 & num3; - reference = TriangleAreaXZ(a, b, vertices[num13 + (num14 + num14)]); - num6 += span[num9]; - int num15 = num9; - num3 = 1; - num4 = num15; - num9 = (num4 | num3) + (num4 & num3); - num = 1769041743; - break; - } - case 8: - num = 1769041734; - break; - case 6: - num10 = vertices.Count - 2; - span = stackalloc float[num10]; - num6 = 0f; - num9 = 0; - num = 1769041743; - break; - case 7: - num = ((num8 < num10) ? 1769041740 : 1769041736); - break; - case 10: - throw _202B_206B_202C_200B_206B_206A_202B_200E_200C_200D_202B_202D_202B_200B_202D_202D_200B_202C_206F_206F_200B_200D_202E_206E_200D_200B_200C_202C_202D_206D_200D_202A_200F_206E_206E_206A_200F_200F_202A_202B_202E(global::_003CModule_003E._206D_200B_206E_206A_206A_206F_206E_200F_206C_206C_202D_200E_200F_200E_206A_202E_206B_202A_206D_206A_200E_200D_202A_202C_202C_206A_202A_200C_206E_206D_206C_202A_202E_200D_200E_206E_202D_206F_200F_200D_202E<string>(1325412476), global::_003CModule_003E._200C_206E_206A_202B_206D_200F_202D_206C_200B_202E_202A_200F_202B_206F_206E_206F_206A_206D_200F_206A_202B_200E_206A_206E_206F_206C_206A_202D_200B_200C_206B_202A_206E_200D_202C_200B_200E_200C_202A_206E_202E<string>(935263915)); - case 2: - num = ((vertices.Count != 3) ? 1769041738 : 1769041741); - break; - case 3: - num = ((num9 < num10) ? 1769041735 : 1769041737); - break; - case 5: - num5 = (float)(_206A_202D_206C_206F_200B_202B_206A_206C_200C_206A_200E_206B_200F_202A_206E_200E_200D_206A_202A_202A_200B_206B_200D_200C_200F_200F_206A_200D_206A_206D_206C_206C_200F_206A_202D_206B_206A_206A_200D_200F_202E(Rng) * (double)num6); - num7 = 0f; - num8 = 0; - num = 1769041739; - break; - case 1: - return RandomPointInTriangle(vertices[0], vertices[1], vertices[2]); + return RandomPointInTriangle(vertices[0], vertices[j + 1], vertices[j + 2]); } } + return RandomPointInTriangle(vertices[0], vertices[vertices.Count - 2], vertices[vertices.Count - 1]); } private static Vector3 RandomPointInTriangle(Vector3 a, Vector3 b, Vector3 c) { - float num = (float)_206A_202D_206C_206F_200B_202B_206A_206C_200C_206A_200E_206B_200F_202A_206E_200E_200D_206A_202A_202A_200B_206B_200D_200C_200F_200F_206A_200D_206A_206D_206C_206C_200F_206A_202D_206B_206A_206A_200D_200F_202E(Rng); - float num2 = (float)_206A_202D_206C_206F_200B_202B_206A_206C_200C_206A_200E_206B_200F_202A_206E_200E_200D_206A_202A_202A_200B_206B_200D_200C_200F_200F_206A_200D_206A_206D_206C_206C_200F_206A_202D_206B_206A_206A_200D_200F_202E(Rng); - int num3 = ((!(num + num2 > 1f)) ? (-918918961) : (-918918964)); - while (true) + float num = (float)Rng.NextDouble(); + float num2 = (float)Rng.NextDouble(); + if (num + num2 > 1f) { - int num4 = num3; - int num5 = -918918962; - int num6 = num4; - switch ((num6 | num5) - (num6 & num5)) - { - case 1: - return a + num * (b - a) + num2 * (c - a); - case 2: - num = 1f - num; - num2 = 1f - num2; - num3 = -918918961; - break; - case 0: - num3 = -918918964; - break; - } + num = 1f - num; + num2 = 1f - num2; } + return a + num * (b - a) + num2 * (c - a); } private static float TriangleAreaXZ(Vector3 a, Vector3 b, Vector3 c) { - return _206E_200E_200C_206E_200B_200F_200D_200B_200F_206E_206D_206E_202E_200D_202D_202A_202E_202B_206B_206E_202D_200D_202D_206B_200F_200C_200C_202C_202E_200F_200E_206B_202E_206C_206C_202E_202D_206D_206C_206F_202E((b.X - a.X) * (c.Z - a.Z) - (c.X - a.X) * (b.Z - a.Z)) * 0.5f; + return MathF.Abs((b.X - a.X) * (c.Z - a.Z) - (c.X - a.X) * (b.Z - a.Z)) * 0.5f; } public static float CalculatePolygonArea(IReadOnlyList<Vector3> vertices) { - int num = ((vertices.Count >= 3) ? 1886131755 : 1886131757); - int num7 = default(int); - float num8 = default(float); - while (true) + if (vertices.Count < 3) { - int num2 = num; - int num3 = 1886131758; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return _206E_200E_200C_206E_200B_200F_200D_200B_200F_206E_206D_206E_202E_200D_202D_202A_202E_202B_206B_206E_202D_200D_202D_206B_200F_200C_200C_202C_202E_200F_200E_206B_202E_206C_206C_202E_202D_206D_206C_206F_202E(num8) * 0.5f; - case 3: - return 0f; - case 1: - { - int num9 = num7; - num3 = 1; - num4 = num9; - int num10 = num4 ^ num3; - int num11 = num4 & num3; - int index = (num10 + (num11 + num11)) % vertices.Count; - num8 += vertices[num7].X * vertices[index].Z; - num8 -= vertices[index].X * vertices[num7].Z; - int num12 = num7; - num3 = 1; - num4 = num12; - num7 = (num4 | num3) + (num4 & num3); - num = 1886131754; - break; - } - case 5: - num8 = 0f; - num7 = 0; - num = 1886131754; - break; - case 2: - num = 1886131757; - break; - case 4: - num = ((num7 < vertices.Count) ? 1886131759 : 1886131758); - break; - } + return 0f; } + float num = 0f; + for (int i = 0; i < vertices.Count; i++) + { + int index = (i + 1) % vertices.Count; + num += vertices[i].X * vertices[index].Z; + num -= vertices[index].X * vertices[i].Z; + } + return MathF.Abs(num) * 0.5f; } public static bool IsConvex(IReadOnlyList<Vector3> vertices) { - int num = ((vertices.Count >= 3) ? (-1470216164) : (-1470216169)); - bool? flag = default(bool?); - bool flag2 = default(bool); - int num6 = default(int); - int count = default(int); - float num7 = default(float); - while (true) + if (vertices.Count < 3) { - int num2 = num; - int num3 = -1470216161; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return false; + } + bool? flag = null; + int count = vertices.Count; + for (int i = 0; i < count; i++) + { + Vector3 vector = vertices[i]; + Vector3 vector2 = vertices[(i + 1) % count]; + Vector3 vector3 = vertices[(i + 2) % count]; + float num = (vector2.X - vector.X) * (vector3.Z - vector2.Z) - (vector2.Z - vector.Z) * (vector3.X - vector2.X); + if (!(MathF.Abs(num) < 1E-06f)) { - case 5: - return flag.HasValue; - case 10: - return false; - case 6: - flag = flag2; - num = -1470216162; - break; - case 2: - num = ((flag == flag2) ? (-1470216162) : (-1470216171)); - break; - case 0: - num = ((num6 < count) ? (-1470216165) : (-1470216166)); - break; - case 8: - return false; - case 4: - { - Vector3 vector = vertices[num6]; - int num8 = num6; - num3 = 1; - num4 = num8; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - Vector3 vector2 = vertices[(num9 + (num10 + num10)) % count]; - int num11 = num6; - num3 = 2; - num4 = num11; - Vector3 vector3 = vertices[((num4 | num3) + (num4 & num3)) % count]; - num7 = (vector2.X - vector.X) * (vector3.Z - vector2.Z) - (vector2.Z - vector.Z) * (vector3.X - vector2.X); - num = ((_206E_200E_200C_206E_200B_200F_200D_200B_200F_206E_206D_206E_202E_200D_202D_202A_202E_202B_206B_206E_202D_200D_202D_206B_200F_200C_200C_202C_202E_200F_200E_206B_202E_206C_206C_202E_202D_206D_206C_206F_202E(num7) < 1E-06f) ? (-1470216162) : (-1470216168)); - break; - } - case 7: - flag2 = num7 > 0f; - num = (flag.HasValue ? (-1470216163) : (-1470216167)); - break; - case 9: - num = -1470216169; - break; - case 3: - flag = null; - count = vertices.Count; - num6 = 0; - num = -1470216161; - break; - case 1: - { - int num5 = num6; - num3 = 1; - num4 = num5; - num6 = (num4 | num3) + (num4 & num3); - num = -1470216161; - break; - } + bool flag2 = num > 0f; + if (!flag.HasValue) + { + flag = flag2; + } + else if (flag != flag2) + { + return false; + } } } + return flag.HasValue; } public static bool IsPointInConvexPolygon(Vector2 point, IReadOnlyList<Vector3> vertices) { - int num = ((vertices.Count >= 3) ? (-1183918555) : (-1183918551)); - int num5 = default(int); - int count = default(int); - float num9 = default(float); - bool? flag = default(bool?); - bool flag2 = default(bool); - while (true) + if (vertices.Count < 3) { - int num2 = num; - int num3 = -1183918557; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return false; + } + bool? flag = null; + int count = vertices.Count; + for (int i = 0; i < count; i++) + { + Vector3 vector = vertices[i]; + Vector3 vector2 = vertices[(i + 1) % count]; + float num = (vector2.X - vector.X) * (point.Y - vector.Z) - (vector2.Z - vector.Z) * (point.X - vector.X); + if (!(MathF.Abs(num) < 1E-06f)) { - case 0: - { - int num6 = num5; - num3 = 1; - num4 = num6; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - num5 = num7 + (num8 + num8); - num = -1183918549; - break; - } - case 5: - return true; - case 3: - { - Vector3 vector = vertices[num5]; - int num10 = num5; - num3 = 1; - num4 = num10; - Vector3 vector2 = vertices[((num4 | num3) + (num4 & num3)) % count]; - num9 = (vector2.X - vector.X) * (point.Y - vector.Z) - (vector2.Z - vector.Z) * (point.X - vector.X); - num = ((_206E_200E_200C_206E_200B_200F_200D_200B_200F_206E_206D_206E_202E_200D_202D_202A_202E_202B_206B_206E_202D_200D_202D_206B_200F_200C_200C_202C_202E_200F_200E_206B_202E_206C_206C_202E_202D_206D_206C_206F_202E(num9) < 1E-06f) ? (-1183918557) : (-1183918553)); - break; - } - case 9: - num = -1183918551; - break; - case 2: - flag = flag2; - num = -1183918557; - break; - case 1: - num = ((flag == flag2) ? (-1183918557) : (-1183918556)); - break; - case 6: - flag = null; - count = vertices.Count; - num5 = 0; - num = -1183918549; - break; - case 7: - return false; - case 4: - flag2 = num9 > 0f; - num = (flag.HasValue ? (-1183918558) : (-1183918559)); - break; - case 8: - num = ((num5 < count) ? (-1183918560) : (-1183918554)); - break; - case 10: - return false; + bool flag2 = num > 0f; + if (!flag.HasValue) + { + flag = flag2; + } + else if (flag != flag2) + { + return false; + } } } - } - - static ArgumentException _202B_206B_202C_200B_206B_206A_202B_200E_200C_200D_202B_202D_202B_200B_202D_202D_200B_202C_206F_206F_200B_200D_202E_206E_200D_200B_200C_202C_202D_206D_200D_202A_200F_206E_206E_206A_200F_200F_202A_202B_202E(string P_0, string P_1) - { - return new ArgumentException(P_0, P_1); - } - - static double _206A_202D_206C_206F_200B_202B_206A_206C_200C_206A_200E_206B_200F_202A_206E_200E_200D_206A_202A_202A_200B_206B_200D_200C_200F_200F_206A_200D_206A_206D_206C_206C_200F_206A_202D_206B_206A_206A_200D_200F_202E(Random P_0) - { - return P_0.NextDouble(); - } - - static float _206E_200E_200C_206E_200B_200F_200D_200B_200F_206E_206D_206E_202E_200D_202D_202A_202E_202B_206B_206E_202D_200D_202D_206B_200F_200C_200C_202C_202E_200F_200E_206B_202E_206C_206C_202E_202D_206D_206C_206F_202E(float P_0) - { - return MathF.Abs(P_0); - } - - static Random _200C_202E_206B_200E_200F_202B_200F_202E_206E_206F_200C_200D_200F_200C_206E_202E_200C_200C_200E_202E_202B_206E_202B_206C_200E_206C_206B_202B_202B_202B_206E_200C_202A_202D_202B_206F_202E_200E_206A_206A_202E() - { - return new Random(); + return true; } } diff --git a/Questionable/--z__ReadOnlyArray.cs b/Questionable/--z__ReadOnlyArray.cs index 1329fbd..840f515 100644 --- a/Questionable/--z__ReadOnlyArray.cs +++ b/Questionable/--z__ReadOnlyArray.cs @@ -20,7 +20,7 @@ internal sealed class _003C_003Ez__ReadOnlyArray<T> : IEnumerable, ICollection, } set { - throw _206D_202A_206A_202B_206A_206A_206B_206F_200F_206A_206E_206C_202C_200D_200B_202A_206E_200E_202A_200F_206E_200F_202D_200B_202D_202E_202D_206F_202B_206A_202A_206E_200C_200D_202A_206F_200C_202A_206D_206C_202E(); + throw new NotSupportedException(); } } @@ -44,7 +44,7 @@ internal sealed class _003C_003Ez__ReadOnlyArray<T> : IEnumerable, ICollection, } set { - throw _206D_202A_206A_202B_206A_206A_206B_206F_200F_206A_206E_206C_202C_200D_200B_202A_206E_200E_202A_200F_206E_200F_202D_200B_202D_202E_202D_206F_202B_206A_202A_206E_200C_200D_202A_206F_200C_202A_206D_206C_202E(); + throw new NotSupportedException(); } } @@ -55,47 +55,47 @@ internal sealed class _003C_003Ez__ReadOnlyArray<T> : IEnumerable, ICollection, IEnumerator IEnumerable.GetEnumerator() { - return _200F_206A_202D_200D_200C_200C_200C_202C_202B_202A_202E_200D_202B_202C_202E_202B_206D_202B_206F_200E_200B_200D_200E_200E_202A_202D_202A_206D_200C_202A_202B_206F_200B_202D_202E_202D_202E_202D_202C_200C_202E((IEnumerable)_items); + return ((IEnumerable)_items).GetEnumerator(); } void ICollection.CopyTo(Array array, int index) { - _206D_202E_200E_202A_202C_206B_200D_206B_206F_202A_206F_206E_206B_200C_200D_206F_200E_206D_206A_202B_202B_202D_206E_206B_200E_202D_200E_206A_206A_206F_206A_200D_200B_200C_200F_202B_200E_206E_200D_202E((ICollection)_items, array, index); + ((ICollection)_items).CopyTo(array, index); } int IList.Add(object? value) { - throw _206D_202A_206A_202B_206A_206A_206B_206F_200F_206A_206E_206C_202C_200D_200B_202A_206E_200E_202A_200F_206E_200F_202D_200B_202D_202E_202D_206F_202B_206A_202A_206E_200C_200D_202A_206F_200C_202A_206D_206C_202E(); + throw new NotSupportedException(); } void IList.Clear() { - throw _206D_202A_206A_202B_206A_206A_206B_206F_200F_206A_206E_206C_202C_200D_200B_202A_206E_200E_202A_200F_206E_200F_202D_200B_202D_202E_202D_206F_202B_206A_202A_206E_200C_200D_202A_206F_200C_202A_206D_206C_202E(); + throw new NotSupportedException(); } bool IList.Contains(object? value) { - return _202D_206E_202B_200D_202B_206A_200B_200C_200C_206F_200C_200D_206F_202C_200E_200B_200B_202C_202E_200F_200E_202C_206E_200F_202B_200B_206E_200F_202E_202E_202D_206F_200E_200C_206C_206E_200D_202E_202E_200E_202E((IList)_items, value); + return ((IList)_items).Contains(value); } int IList.IndexOf(object? value) { - return _200B_202D_206E_202A_202E_200E_202A_200D_206D_206A_206C_200D_202A_202D_202C_202C_200F_206A_202E_206A_202D_200E_200F_206B_206B_200D_202C_202C_206D_206D_202A_200E_206A_200C_200E_206C_200C_206D_206E_202E((IList)_items, value); + return ((IList)_items).IndexOf(value); } void IList.Insert(int index, object? value) { - throw _206D_202A_206A_202B_206A_206A_206B_206F_200F_206A_206E_206C_202C_200D_200B_202A_206E_200E_202A_200F_206E_200F_202D_200B_202D_202E_202D_206F_202B_206A_202A_206E_200C_200D_202A_206F_200C_202A_206D_206C_202E(); + throw new NotSupportedException(); } void IList.Remove(object? value) { - throw _206D_202A_206A_202B_206A_206A_206B_206F_200F_206A_206E_206C_202C_200D_200B_202A_206E_200E_202A_200F_206E_200F_202D_200B_202D_202E_202D_206F_202B_206A_202A_206E_200C_200D_202A_206F_200C_202A_206D_206C_202E(); + throw new NotSupportedException(); } void IList.RemoveAt(int index) { - throw _206D_202A_206A_202B_206A_206A_206B_206F_200F_206A_206E_206C_202C_200D_200B_202A_206E_200E_202A_200F_206E_200F_202D_200B_202D_202E_202D_206F_202B_206A_202A_206E_200C_200D_202A_206F_200C_202A_206D_206C_202E(); + throw new NotSupportedException(); } IEnumerator<T> IEnumerable<T>.GetEnumerator() @@ -105,12 +105,12 @@ internal sealed class _003C_003Ez__ReadOnlyArray<T> : IEnumerable, ICollection, void ICollection<T>.Add(T item) { - throw _206D_202A_206A_202B_206A_206A_206B_206F_200F_206A_206E_206C_202C_200D_200B_202A_206E_200E_202A_200F_206E_200F_202D_200B_202D_202E_202D_206F_202B_206A_202A_206E_200C_200D_202A_206F_200C_202A_206D_206C_202E(); + throw new NotSupportedException(); } void ICollection<T>.Clear() { - throw _206D_202A_206A_202B_206A_206A_206B_206F_200F_206A_206E_206C_202C_200D_200B_202A_206E_200E_202A_200F_206E_200F_202D_200B_202D_202E_202D_206F_202B_206A_202A_206E_200C_200D_202A_206F_200C_202A_206D_206C_202E(); + throw new NotSupportedException(); } bool ICollection<T>.Contains(T item) @@ -125,7 +125,7 @@ internal sealed class _003C_003Ez__ReadOnlyArray<T> : IEnumerable, ICollection, bool ICollection<T>.Remove(T item) { - throw _206D_202A_206A_202B_206A_206A_206B_206F_200F_206A_206E_206C_202C_200D_200B_202A_206E_200E_202A_200F_206E_200F_202D_200B_202D_202E_202D_206F_202B_206A_202A_206E_200C_200D_202A_206F_200C_202A_206D_206C_202E(); + throw new NotSupportedException(); } int IList<T>.IndexOf(T item) @@ -135,36 +135,11 @@ internal sealed class _003C_003Ez__ReadOnlyArray<T> : IEnumerable, ICollection, void IList<T>.Insert(int index, T item) { - throw _206D_202A_206A_202B_206A_206A_206B_206F_200F_206A_206E_206C_202C_200D_200B_202A_206E_200E_202A_200F_206E_200F_202D_200B_202D_202E_202D_206F_202B_206A_202A_206E_200C_200D_202A_206F_200C_202A_206D_206C_202E(); + throw new NotSupportedException(); } void IList<T>.RemoveAt(int index) { - throw _206D_202A_206A_202B_206A_206A_206B_206F_200F_206A_206E_206C_202C_200D_200B_202A_206E_200E_202A_200F_206E_200F_202D_200B_202D_202E_202D_206F_202B_206A_202A_206E_200C_200D_202A_206F_200C_202A_206D_206C_202E(); - } - - static IEnumerator _200F_206A_202D_200D_200C_200C_200C_202C_202B_202A_202E_200D_202B_202C_202E_202B_206D_202B_206F_200E_200B_200D_200E_200E_202A_202D_202A_206D_200C_202A_202B_206F_200B_202D_202E_202D_202E_202D_202C_200C_202E(IEnumerable P_0) - { - return P_0.GetEnumerator(); - } - - static void _206D_202E_200E_202A_202C_206B_200D_206B_206F_202A_206F_206E_206B_200C_200D_206F_200E_206D_206A_202B_202B_202D_206E_206B_200E_202D_200E_206A_206A_206F_206A_200D_200B_200C_200F_202B_200E_206E_200D_202E(ICollection P_0, Array P_1, int P_2) - { - P_0.CopyTo(P_1, P_2); - } - - static NotSupportedException _206D_202A_206A_202B_206A_206A_206B_206F_200F_206A_206E_206C_202C_200D_200B_202A_206E_200E_202A_200F_206E_200F_202D_200B_202D_202E_202D_206F_202B_206A_202A_206E_200C_200D_202A_206F_200C_202A_206D_206C_202E() - { - return new NotSupportedException(); - } - - static bool _202D_206E_202B_200D_202B_206A_200B_200C_200C_206F_200C_200D_206F_202C_200E_200B_200B_202C_202E_200F_200E_202C_206E_200F_202B_200B_206E_200F_202E_202E_202D_206F_200E_200C_206C_206E_200D_202E_202E_200E_202E(IList P_0, object P_1) - { - return P_0.Contains(P_1); - } - - static int _200B_202D_206E_202A_202E_200E_202A_200D_206D_206A_206C_200D_202A_202D_202C_202C_200F_206A_202E_206A_202D_200E_200F_206B_206B_200D_202C_202C_206D_206D_202A_200E_206A_200C_200E_206C_200C_206D_206E_202E(IList P_0, object P_1) - { - return P_0.IndexOf(P_1); + throw new NotSupportedException(); } } diff --git a/Questionable/--z__ReadOnlyList.cs b/Questionable/--z__ReadOnlyList.cs index c043a74..3329bf4 100644 --- a/Questionable/--z__ReadOnlyList.cs +++ b/Questionable/--z__ReadOnlyList.cs @@ -20,7 +20,7 @@ internal sealed class _003C_003Ez__ReadOnlyList<T> : IEnumerable, ICollection, I } set { - throw _206C_206F_200C_202C_206E_206D_200E_202C_206F_202B_202A_206D_206F_206D_202C_206D_206B_206A_202D_200D_202C_202B_206E_200E_200F_202A_202E_200E_202B_202C_200E_200D_206B_202B_206F_202A_200E_206C_202B_206A_202E(); + throw new NotSupportedException(); } } @@ -44,7 +44,7 @@ internal sealed class _003C_003Ez__ReadOnlyList<T> : IEnumerable, ICollection, I } set { - throw _206C_206F_200C_202C_206E_206D_200E_202C_206F_202B_202A_206D_206F_206D_202C_206D_206B_206A_202D_200D_202C_202B_206E_200E_200F_202A_202E_200E_202B_202C_200E_200D_206B_202B_206F_202A_200E_206C_202B_206A_202E(); + throw new NotSupportedException(); } } @@ -55,47 +55,47 @@ internal sealed class _003C_003Ez__ReadOnlyList<T> : IEnumerable, ICollection, I IEnumerator IEnumerable.GetEnumerator() { - return _202B_202E_206D_206E_206E_206D_202D_206E_200F_202E_202A_200E_202D_206B_200F_206A_206F_202E_200C_200D_202C_200B_200F_202E_206B_206B_206D_200C_202D_206A_200F_200F_202D_202A_200C_200B_202A_200E_200C_206D_202E((IEnumerable)_items); + return ((IEnumerable)_items).GetEnumerator(); } void ICollection.CopyTo(Array array, int index) { - _200D_206E_206D_202E_202E_202B_206A_202A_202A_206A_206B_206C_200D_202C_206D_202E_202D_206A_200E_206E_206A_202D_200E_202C_200F_202E_202B_206D_206A_202B_200D_200E_202E_200F_206C_200F_206D_206B_200E_200D_202E((ICollection)_items, array, index); + ((ICollection)_items).CopyTo(array, index); } int IList.Add(object? value) { - throw _206C_206F_200C_202C_206E_206D_200E_202C_206F_202B_202A_206D_206F_206D_202C_206D_206B_206A_202D_200D_202C_202B_206E_200E_200F_202A_202E_200E_202B_202C_200E_200D_206B_202B_206F_202A_200E_206C_202B_206A_202E(); + throw new NotSupportedException(); } void IList.Clear() { - throw _206C_206F_200C_202C_206E_206D_200E_202C_206F_202B_202A_206D_206F_206D_202C_206D_206B_206A_202D_200D_202C_202B_206E_200E_200F_202A_202E_200E_202B_202C_200E_200D_206B_202B_206F_202A_200E_206C_202B_206A_202E(); + throw new NotSupportedException(); } bool IList.Contains(object? value) { - return _202C_202B_200B_206E_206A_206C_200C_202D_206B_206B_202A_206D_206E_206D_200B_202A_200F_206E_202B_206B_206C_206D_206F_200D_202D_200D_202D_202A_200D_202B_202C_206A_206C_200D_206B_202C_202C_200E_202A_206F_202E((IList)_items, value); + return ((IList)_items).Contains(value); } int IList.IndexOf(object? value) { - return _202D_202E_202C_202E_200F_206F_200E_206D_202B_200F_206A_202D_202B_200E_200D_206D_206A_206F_202A_206E_206A_202A_206A_206A_206F_200F_202A_200E_200E_206E_206A_202A_206B_200F_202A_202C_202D_202B_206A_206C_202E((IList)_items, value); + return ((IList)_items).IndexOf(value); } void IList.Insert(int index, object? value) { - throw _206C_206F_200C_202C_206E_206D_200E_202C_206F_202B_202A_206D_206F_206D_202C_206D_206B_206A_202D_200D_202C_202B_206E_200E_200F_202A_202E_200E_202B_202C_200E_200D_206B_202B_206F_202A_200E_206C_202B_206A_202E(); + throw new NotSupportedException(); } void IList.Remove(object? value) { - throw _206C_206F_200C_202C_206E_206D_200E_202C_206F_202B_202A_206D_206F_206D_202C_206D_206B_206A_202D_200D_202C_202B_206E_200E_200F_202A_202E_200E_202B_202C_200E_200D_206B_202B_206F_202A_200E_206C_202B_206A_202E(); + throw new NotSupportedException(); } void IList.RemoveAt(int index) { - throw _206C_206F_200C_202C_206E_206D_200E_202C_206F_202B_202A_206D_206F_206D_202C_206D_206B_206A_202D_200D_202C_202B_206E_200E_200F_202A_202E_200E_202B_202C_200E_200D_206B_202B_206F_202A_200E_206C_202B_206A_202E(); + throw new NotSupportedException(); } IEnumerator<T> IEnumerable<T>.GetEnumerator() @@ -105,12 +105,12 @@ internal sealed class _003C_003Ez__ReadOnlyList<T> : IEnumerable, ICollection, I void ICollection<T>.Add(T item) { - throw _206C_206F_200C_202C_206E_206D_200E_202C_206F_202B_202A_206D_206F_206D_202C_206D_206B_206A_202D_200D_202C_202B_206E_200E_200F_202A_202E_200E_202B_202C_200E_200D_206B_202B_206F_202A_200E_206C_202B_206A_202E(); + throw new NotSupportedException(); } void ICollection<T>.Clear() { - throw _206C_206F_200C_202C_206E_206D_200E_202C_206F_202B_202A_206D_206F_206D_202C_206D_206B_206A_202D_200D_202C_202B_206E_200E_200F_202A_202E_200E_202B_202C_200E_200D_206B_202B_206F_202A_200E_206C_202B_206A_202E(); + throw new NotSupportedException(); } bool ICollection<T>.Contains(T item) @@ -125,7 +125,7 @@ internal sealed class _003C_003Ez__ReadOnlyList<T> : IEnumerable, ICollection, I bool ICollection<T>.Remove(T item) { - throw _206C_206F_200C_202C_206E_206D_200E_202C_206F_202B_202A_206D_206F_206D_202C_206D_206B_206A_202D_200D_202C_202B_206E_200E_200F_202A_202E_200E_202B_202C_200E_200D_206B_202B_206F_202A_200E_206C_202B_206A_202E(); + throw new NotSupportedException(); } int IList<T>.IndexOf(T item) @@ -135,36 +135,11 @@ internal sealed class _003C_003Ez__ReadOnlyList<T> : IEnumerable, ICollection, I void IList<T>.Insert(int index, T item) { - throw _206C_206F_200C_202C_206E_206D_200E_202C_206F_202B_202A_206D_206F_206D_202C_206D_206B_206A_202D_200D_202C_202B_206E_200E_200F_202A_202E_200E_202B_202C_200E_200D_206B_202B_206F_202A_200E_206C_202B_206A_202E(); + throw new NotSupportedException(); } void IList<T>.RemoveAt(int index) { - throw _206C_206F_200C_202C_206E_206D_200E_202C_206F_202B_202A_206D_206F_206D_202C_206D_206B_206A_202D_200D_202C_202B_206E_200E_200F_202A_202E_200E_202B_202C_200E_200D_206B_202B_206F_202A_200E_206C_202B_206A_202E(); - } - - static IEnumerator _202B_202E_206D_206E_206E_206D_202D_206E_200F_202E_202A_200E_202D_206B_200F_206A_206F_202E_200C_200D_202C_200B_200F_202E_206B_206B_206D_200C_202D_206A_200F_200F_202D_202A_200C_200B_202A_200E_200C_206D_202E(IEnumerable P_0) - { - return P_0.GetEnumerator(); - } - - static void _200D_206E_206D_202E_202E_202B_206A_202A_202A_206A_206B_206C_200D_202C_206D_202E_202D_206A_200E_206E_206A_202D_200E_202C_200F_202E_202B_206D_206A_202B_200D_200E_202E_200F_206C_200F_206D_206B_200E_200D_202E(ICollection P_0, Array P_1, int P_2) - { - P_0.CopyTo(P_1, P_2); - } - - static NotSupportedException _206C_206F_200C_202C_206E_206D_200E_202C_206F_202B_202A_206D_206F_206D_202C_206D_206B_206A_202D_200D_202C_202B_206E_200E_200F_202A_202E_200E_202B_202C_200E_200D_206B_202B_206F_202A_200E_206C_202B_206A_202E() - { - return new NotSupportedException(); - } - - static bool _202C_202B_200B_206E_206A_206C_200C_202D_206B_206B_202A_206D_206E_206D_200B_202A_200F_206E_202B_206B_206C_206D_206F_200D_202D_200D_202D_202A_200D_202B_202C_206A_206C_200D_206B_202C_202C_200E_202A_206F_202E(IList P_0, object P_1) - { - return P_0.Contains(P_1); - } - - static int _202D_202E_202C_202E_200F_206F_200E_206D_202B_200F_206A_202D_202B_200E_200D_206D_206A_206F_202A_206E_206A_202A_206A_206A_206F_200F_202A_200E_200E_206E_206A_202A_206B_200F_202A_202C_202D_202B_206A_206C_202E(IList P_0, object P_1) - { - return P_0.IndexOf(P_1); + throw new NotSupportedException(); } } diff --git a/Questionable/--z__ReadOnlySingleElementList.cs b/Questionable/--z__ReadOnlySingleElementList.cs index a33c232..5b22426 100644 --- a/Questionable/--z__ReadOnlySingleElementList.cs +++ b/Questionable/--z__ReadOnlySingleElementList.cs @@ -19,27 +19,11 @@ internal sealed class _003C_003Ez__ReadOnlySingleElementList<T> : IEnumerable, I bool IEnumerator.MoveNext() { - int num = (_moveNextCalled ? (-1358713628) : (-1358713625)); - while (true) + if (!_moveNextCalled) { - int num2 = num; - int num3 = -1358713626; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 1: - return _moveNextCalled = true; - case 0: - goto IL_0055; - } - continue; - IL_0055: - num = -1358713625; + return _moveNextCalled = true; } + return false; } void IEnumerator.Reset() @@ -62,29 +46,15 @@ internal sealed class _003C_003Ez__ReadOnlySingleElementList<T> : IEnumerable, I { get { - int num = ((index == 0) ? 745258458 : 745258459); - while (true) + if (index != 0) { - int num2 = num; - int num3 = 745258458; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0041; - case 0: - return _item; - case 1: - throw _202E_206A_206F_200B_200E_206C_206D_202E_202A_200E_200F_202A_202E_206A_200D_206D_206D_206B_206C_200F_206C_206C_202B_206D_206A_206B_202C_200C_206F_200C_206D_206A_202D_202B_206D_202C_206E_202D_200F_202B_202E(); - } - continue; - IL_0041: - num = 745258459; + throw new IndexOutOfRangeException(); } + return _item; } set { - throw _202B_202E_202D_206F_202D_202A_206E_200D_200D_206E_206B_200B_206D_206A_206C_202D_206A_202B_202C_202A_206B_206B_200E_200D_200E_206E_202E_206A_202E_200D_202E_202D_202A_206E_202C_206C_200D_206B_206C_202C_202E(); + throw new NotSupportedException(); } } @@ -98,25 +68,11 @@ internal sealed class _003C_003Ez__ReadOnlySingleElementList<T> : IEnumerable, I { get { - int num = ((index == 0) ? (-543192047) : (-543192046)); - while (true) + if (index != 0) { - int num2 = num; - int num3 = -543192048; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0041; - case 1: - return _item; - case 2: - throw _202E_206A_206F_200B_200E_206C_206D_202E_202A_200E_200F_202A_202E_206A_200D_206D_206D_206B_206C_200F_206C_206C_202B_206D_206A_206B_202C_200C_206F_200C_206D_206A_202D_202B_206D_202C_206E_202D_200F_202B_202E(); - } - continue; - IL_0041: - num = -543192046; + throw new IndexOutOfRangeException(); } + return _item; } } @@ -128,31 +84,15 @@ internal sealed class _003C_003Ez__ReadOnlySingleElementList<T> : IEnumerable, I { get { - int num = ((index == 0) ? (-1389399719) : (-1389399720)); - while (true) + if (index != 0) { - int num2 = num; - int num3 = -1389399719; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return _item; - case 1: - throw _202E_206A_206F_200B_200E_206C_206D_202E_202A_200E_200F_202A_202E_206A_200D_206D_206D_206B_206C_200F_206C_206C_202B_206D_206A_206B_202C_200C_206F_200C_206D_206A_202D_202B_206D_202C_206E_202D_200F_202B_202E(); - case 2: - goto IL_0050; - } - continue; - IL_0050: - num = -1389399720; + throw new IndexOutOfRangeException(); } + return _item; } set { - throw _202B_202E_202D_206F_202D_202A_206E_200D_200D_206E_206B_200B_206D_206A_206C_202D_206A_202B_202C_202A_206B_206B_200E_200D_200E_206E_202E_206A_202E_200D_202E_202D_202A_206E_202C_206C_200D_206B_206C_202C_202E(); + throw new NotSupportedException(); } } @@ -168,17 +108,17 @@ internal sealed class _003C_003Ez__ReadOnlySingleElementList<T> : IEnumerable, I void ICollection.CopyTo(Array array, int index) { - _206B_206E_206A_202D_206E_202D_206F_202B_202C_200E_202E_202A_206C_206F_206F_206B_200C_200F_206D_202A_206A_202B_200C_202B_200E_206D_202A_200E_206A_206F_206F_200C_206A_202C_202B_200D_206A_200B_206B_202A_202E(array, (object)_item, index); + array.SetValue(_item, index); } int IList.Add(object? value) { - throw _202B_202E_202D_206F_202D_202A_206E_200D_200D_206E_206B_200B_206D_206A_206C_202D_206A_202B_202C_202A_206B_206B_200E_200D_200E_206E_202E_206A_202E_200D_202E_202D_202A_206E_202C_206C_200D_206B_206C_202C_202E(); + throw new NotSupportedException(); } void IList.Clear() { - throw _202B_202E_202D_206F_202D_202A_206E_200D_200D_206E_206B_200B_206D_206A_206C_202D_206A_202B_202C_202A_206B_206B_200E_200D_200E_206E_202E_206A_202E_200D_202E_202D_202A_206E_202C_206C_200D_206B_206C_202C_202E(); + throw new NotSupportedException(); } bool IList.Contains(object? value) @@ -188,42 +128,26 @@ internal sealed class _003C_003Ez__ReadOnlySingleElementList<T> : IEnumerable, I int IList.IndexOf(object? value) { - int num = (EqualityComparer<T>.Default.Equals(_item, (T)value) ? 82767569 : 82767568); - while (true) + if (!EqualityComparer<T>.Default.Equals(_item, (T)value)) { - int num2 = num; - int num3 = 82767569; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0058; - case 0: - return 0; - case 1: - return -1; - } - continue; - IL_0058: - num = 82767568; + return -1; } + return 0; } void IList.Insert(int index, object? value) { - throw _202B_202E_202D_206F_202D_202A_206E_200D_200D_206E_206B_200B_206D_206A_206C_202D_206A_202B_202C_202A_206B_206B_200E_200D_200E_206E_202E_206A_202E_200D_202E_202D_202A_206E_202C_206C_200D_206B_206C_202C_202E(); + throw new NotSupportedException(); } void IList.Remove(object? value) { - throw _202B_202E_202D_206F_202D_202A_206E_200D_200D_206E_206B_200B_206D_206A_206C_202D_206A_202B_202C_202A_206B_206B_200E_200D_200E_206E_202E_206A_202E_200D_202E_202D_202A_206E_202C_206C_200D_206B_206C_202C_202E(); + throw new NotSupportedException(); } void IList.RemoveAt(int index) { - throw _202B_202E_202D_206F_202D_202A_206E_200D_200D_206E_206B_200B_206D_206A_206C_202D_206A_202B_202C_202A_206B_206B_200E_200D_200E_206E_202E_206A_202E_200D_202E_202D_202A_206E_202C_206C_200D_206B_206C_202C_202E(); + throw new NotSupportedException(); } IEnumerator<T> IEnumerable<T>.GetEnumerator() @@ -233,12 +157,12 @@ internal sealed class _003C_003Ez__ReadOnlySingleElementList<T> : IEnumerable, I void ICollection<T>.Add(T item) { - throw _202B_202E_202D_206F_202D_202A_206E_200D_200D_206E_206B_200B_206D_206A_206C_202D_206A_202B_202C_202A_206B_206B_200E_200D_200E_206E_202E_206A_202E_200D_202E_202D_202A_206E_202C_206C_200D_206B_206C_202C_202E(); + throw new NotSupportedException(); } void ICollection<T>.Clear() { - throw _202B_202E_202D_206F_202D_202A_206E_200D_200D_206E_206B_200B_206D_206A_206C_202D_206A_202B_202C_202A_206B_206B_200E_200D_200E_206E_202E_206A_202E_200D_202E_202D_202A_206E_202C_206C_200D_206B_206C_202C_202E(); + throw new NotSupportedException(); } bool ICollection<T>.Contains(T item) @@ -253,54 +177,25 @@ internal sealed class _003C_003Ez__ReadOnlySingleElementList<T> : IEnumerable, I bool ICollection<T>.Remove(T item) { - throw _202B_202E_202D_206F_202D_202A_206E_200D_200D_206E_206B_200B_206D_206A_206C_202D_206A_202B_202C_202A_206B_206B_200E_200D_200E_206E_202E_206A_202E_200D_202E_202D_202A_206E_202C_206C_200D_206B_206C_202C_202E(); + throw new NotSupportedException(); } int IList<T>.IndexOf(T item) { - int num = (EqualityComparer<T>.Default.Equals(_item, item) ? (-1404189620) : (-1404189617)); - while (true) + if (!EqualityComparer<T>.Default.Equals(_item, item)) { - int num2 = num; - int num3 = -1404189618; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0051; - case 2: - return 0; - case 1: - return -1; - } - continue; - IL_0051: - num = -1404189617; + return -1; } + return 0; } void IList<T>.Insert(int index, T item) { - throw _202B_202E_202D_206F_202D_202A_206E_200D_200D_206E_206B_200B_206D_206A_206C_202D_206A_202B_202C_202A_206B_206B_200E_200D_200E_206E_202E_206A_202E_200D_202E_202D_202A_206E_202C_206C_200D_206B_206C_202C_202E(); + throw new NotSupportedException(); } void IList<T>.RemoveAt(int index) { - throw _202B_202E_202D_206F_202D_202A_206E_200D_200D_206E_206B_200B_206D_206A_206C_202D_206A_202B_202C_202A_206B_206B_200E_200D_200E_206E_202E_206A_202E_200D_202E_202D_202A_206E_202C_206C_200D_206B_206C_202C_202E(); - } - - static void _206B_206E_206A_202D_206E_202D_206F_202B_202C_200E_202E_202A_206C_206F_206F_206B_200C_200F_206D_202A_206A_202B_200C_202B_200E_206D_202A_200E_206A_206F_206F_200C_206A_202C_202B_200D_206A_200B_206B_202A_202E(Array P_0, object P_1, int P_2) - { - P_0.SetValue(P_1, P_2); - } - - static IndexOutOfRangeException _202E_206A_206F_200B_200E_206C_206D_202E_202A_200E_200F_202A_202E_206A_200D_206D_206D_206B_206C_200F_206C_206C_202B_206D_206A_206B_202C_200C_206F_200C_206D_206A_202D_202B_206D_202C_206E_202D_200F_202B_202E() - { - return new IndexOutOfRangeException(); - } - - static NotSupportedException _202B_202E_202D_206F_202D_202A_206E_200D_200D_206E_206B_200B_206D_206A_206C_202D_206A_202B_202C_202A_206B_206B_200E_200D_200E_206E_202E_206A_202E_200D_202E_202D_202A_206E_202C_206C_200D_206B_206C_202C_202E() - { - return new NotSupportedException(); + throw new NotSupportedException(); } } diff --git a/Questionable/Questionable.Controller.CombatModules/BossModModule.cs b/Questionable/Questionable.Controller.CombatModules/BossModModule.cs index 5996f35..5587599 100644 --- a/Questionable/Questionable.Controller.CombatModules/BossModModule.cs +++ b/Questionable/Questionable.Controller.CombatModules/BossModModule.cs @@ -1,11 +1,8 @@ using System; -using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Ipc.Exceptions; using Dalamud.Plugin.Services; -using Lumina.Excel; -using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.External; @@ -31,124 +28,56 @@ internal sealed class BossModModule : ICombatModule, IDisposable public bool CanHandleFight(CombatController.CombatData combatData) { - int num = ((_configuration.General.CombatModule == Configuration.ECombatModule.BossMod) ? (-1465780808) : (-1465780807)); - while (true) + if (_configuration.General.CombatModule != Configuration.ECombatModule.BossMod) { - int num2 = num; - int num3 = -1465780808; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return _bossModIpc.IsSupported(); - case 1: - return false; - case 2: - goto IL_005f; - } - continue; - IL_005f: - num = -1465780807; + return false; } + return _bossModIpc.IsSupported(); } - bool ICombatModule.CanHandleFight(CombatController.CombatData combatData) - { - //ILSpy generated this explicit interface implementation from .override directive in CanHandleFight - return this.CanHandleFight(combatData); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public bool Start(CombatController.CombatData combatData) { try { - _200F_202B_206D_200D_202A_206D_206B_200D_206F_206C_202D_202B_200E_202B_202A_200C_202C_206C_206B_206F_206A_202B_206E_206A_200F_202D_206A_200F_206E_200D_202E_202B_200D_202E_202C_202C_200B_200C_200F_206B_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(460354770), new object[1] { combatData.SpawnType }); - int num = (_bossModIpc.EnableAi(BossModIpc.EPreset.Active) ? (-1132234490) : (-1132234488)); - byte? b = default(byte?); - bool flag = default(bool); - IPlayerCharacter playerCharacter = default(IPlayerCharacter); - while (true) + _logger.LogDebug("BossModModule.Start: SpawnType={SpawnType}, enabling Active preset", combatData.SpawnType); + if (!_bossModIpc.EnableAi(BossModIpc.EPreset.Active)) { - int num2 = num; - int num3 = -1132234496; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: + _logger.LogWarning("BossModModule.Start: failed to enable BossMod AI"); + return false; + } + IPlayerCharacter localPlayer = _objectTable.LocalPlayer; + bool flag; + if (localPlayer != null) + { + byte? b = localPlayer.ClassJob.ValueNullable?.Role; + if (b.HasValue) { byte valueOrDefault = b.GetValueOrDefault(); - num3 = 3; - num4 = valueOrDefault; - num = (((uint)(~(~num4 + num3)) > 1u) ? (-1132234489) : (-1132234494)); - break; - } - case 2: - flag = true; - num = -1132234493; - break; - case 1: - b = _200C_202E_206E_200C_206E_206E_202C_200F_200C_200F_200B_200B_200C_206A_202A_206C_206E_206C_206D_206D_202D_200F_202B_206C_200B_206B_206E_200F_200E_206A_202A_202C_200D_206D_202D_206F_206E_202A_206B_200E_202E((ICharacter)playerCharacter).ValueNullable?.Role; - num = ((!b.HasValue) ? (-1132234489) : (-1132234491)); - break; - case 3: - { - bool flag2 = flag; - ILogger<BossModModule> logger = _logger; - string text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(305098006); - object[] obj = new object[2] { flag2, null }; - ClassJob? valueNullable = _200C_202E_206E_200C_206E_206E_202C_200F_200C_200F_200B_200B_200C_206A_202A_206C_206E_206C_206D_206D_202D_200F_202B_206C_200B_206B_206E_200F_200E_206A_202A_202C_200D_206D_202D_206F_206E_202A_206B_200E_202E((ICharacter)playerCharacter).ValueNullable; - byte? b2; - if (!valueNullable.HasValue) + if ((uint)(valueOrDefault - 3) <= 1u) { - b = null; - b2 = b; + flag = true; + goto IL_00bd; } - else - { - b2 = valueNullable.GetValueOrDefault().Role; - } - obj[1] = b2; - _200F_202B_206D_200D_202A_206D_206B_200D_206F_206C_202D_202B_200E_202B_202A_200C_202C_206C_206B_206F_206A_202B_206E_206A_200F_202D_206A_200F_206E_200D_202E_202B_200D_202E_202C_202C_200B_200C_200F_206B_202E((ILogger)logger, text, obj); - _bossModIpc.SetRangeStrategy(BossModIpc.EPreset.Active, flag2); - num = -1132234492; - break; - } - case 6: - playerCharacter = _206F_206B_200B_206F_200D_206E_202C_206B_202D_200F_202D_202A_206D_206C_202E_200E_200D_200F_206B_206E_202A_206D_206F_200D_200F_200E_206A_200E_206B_206C_200D_200F_206F_206E_202E_202E_206F_206E_200E_202A_202E(_objectTable); - num = ((playerCharacter == null) ? (-1132234492) : (-1132234495)); - break; - case 8: - _200E_202D_202D_206F_206D_202D_206D_206A_200B_200D_206E_206A_206E_200B_200B_200C_206E_206E_206E_200D_202B_206A_202C_202E_206B_200D_206A_202C_200E_206D_202E_202C_202A_200F_200D_202C_202B_206F_202E_202B_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-651638394), Array.Empty<object>()); - return false; - case 0: - num = -1132234488; - break; - case 7: - flag = false; - num = -1132234493; - break; - case 4: - return true; } + flag = false; + goto IL_00bd; } + goto IL_012e; + IL_00bd: + bool flag2 = flag; + _logger.LogDebug("BossModModule.Start: isRanged={IsRanged}, job role={Role}", flag2, localPlayer.ClassJob.ValueNullable?.Role); + _bossModIpc.SetRangeStrategy(BossModIpc.EPreset.Active, flag2); + goto IL_012e; + IL_012e: + return true; } - catch (IpcError ipcError) + catch (IpcError exception) { - _206E_206C_202C_202E_200F_206E_206B_206D_202B_202E_202C_202A_200D_200B_206B_200F_202E_202C_202B_206B_200E_202D_200B_206D_200B_206B_200C_202E_206B_206D_206F_200E_200E_202D_200E_206E_206A_202C_202A_206C_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1300221531), Array.Empty<object>()); + _logger.LogWarning(exception, "Could not start combat"); return false; } } - bool ICombatModule.Start(CombatController.CombatData combatData) - { - //ILSpy generated this explicit interface implementation from .override directive in Start - return this.Start(combatData); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public bool Stop() { try @@ -156,73 +85,24 @@ internal sealed class BossModModule : ICombatModule, IDisposable _bossModIpc.DisableAi(); return true; } - catch (IpcError ipcError) + catch (IpcError exception) { - _206E_206C_202C_202E_200F_206E_206B_206D_202B_202E_202C_202A_200D_200B_206B_200F_202E_202C_202B_206B_200E_202D_200B_206D_200B_206B_200C_202E_206B_206D_206F_200E_200E_202D_200E_206E_206A_202C_202A_206C_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-52047300), Array.Empty<object>()); + _logger.LogWarning(exception, "Could not turn off combat"); return false; } } - bool ICombatModule.Stop() - { - //ILSpy generated this explicit interface implementation from .override directive in Stop - return this.Stop(); - } - public void Update(IGameObject gameObject) { } - void ICombatModule.Update(IGameObject gameObject) - { - //ILSpy generated this explicit interface implementation from .override directive in Update - this.Update(gameObject); - } - public bool CanAttack(IBattleNpc target) { return true; } - bool ICombatModule.CanAttack(IBattleNpc target) - { - //ILSpy generated this explicit interface implementation from .override directive in CanAttack - return this.CanAttack(target); - } - public void Dispose() { Stop(); } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static void _200F_202B_206D_200D_202A_206D_206B_200D_206F_206C_202D_202B_200E_202B_202A_200C_202C_206C_206B_206F_206A_202B_206E_206A_200F_202D_206A_200F_206E_200D_202E_202B_200D_202E_202C_202C_200B_200C_200F_206B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _200E_202D_202D_206F_206D_202D_206D_206A_200B_200D_206E_206A_206E_200B_200B_200C_206E_206E_206E_200D_202B_206A_202C_202E_206B_200D_206A_202C_200E_206D_202E_202C_202A_200F_200D_202C_202B_206F_202E_202B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static IPlayerCharacter _206F_206B_200B_206F_200D_206E_202C_206B_202D_200F_202D_202A_206D_206C_202E_200E_200D_200F_206B_206E_202A_206D_206F_200D_200F_200E_206A_200E_206B_206C_200D_200F_206F_206E_202E_202E_206F_206E_200E_202A_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static RowRef<ClassJob> _200C_202E_206E_200C_206E_206E_202C_200F_200C_200F_200B_200B_200C_206A_202A_206C_206E_206C_206D_206D_202D_200F_202B_206C_200B_206B_206E_200F_200E_206A_202A_202C_200D_206D_202D_206F_206E_202A_206B_200E_202E(ICharacter P_0) - { - return P_0.ClassJob; - } - - static void _206E_206C_202C_202E_200F_206E_206B_206D_202B_202E_202C_202A_200D_200B_206B_200F_202E_202C_202B_206B_200E_202D_200B_206D_200B_206B_200C_202E_206B_206D_206F_200E_200E_202D_200E_206E_206A_202C_202A_206C_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogWarning(P_1, P_2, P_3); - } } diff --git a/Questionable/Questionable.Controller.CombatModules/ItemUseModule.cs b/Questionable/Questionable.Controller.CombatModules/ItemUseModule.cs index 41dc8e6..99a926f 100644 --- a/Questionable/Questionable.Controller.CombatModules/ItemUseModule.cs +++ b/Questionable/Questionable.Controller.CombatModules/ItemUseModule.cs @@ -1,8 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Reflection; -using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; @@ -17,65 +15,6 @@ namespace Questionable.Controller.CombatModules; internal sealed class ItemUseModule : ICombatModule { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass15_0 - { - public IGameObject nextTarget; - - internal bool _003CUpdate_003Eb__0(ComplexCombatData x) - { - int num = ((_200F_200D_202D_206C_200E_200D_206C_206D_206F_206F_206E_206F_202D_202D_200F_202E_202B_200B_202C_206D_202B_200B_200D_200D_206D_200D_200E_206B_206D_206D_202D_206C_202C_202E_206D_200E_200D_206A_206B_202D_202E(x) != _202D_206F_202C_206C_206B_200F_202A_200B_206A_200E_200D_200E_202B_202A_200B_202B_202D_202D_202D_200E_206F_206B_206E_202E_202B_206E_200C_206C_202E_200D_202E_206E_206E_200B_202A_206B_206B_200D_206A_206A_202E(nextTarget)) ? 1884617909 : 1884617907); - ICharacter character = default(ICharacter); - while (true) - { - int num2 = num; - int num3 = 1884617910; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - return _200D_202C_200D_206D_200D_206D_202B_206C_202E_202A_202C_202B_206D_202D_206F_200E_202D_206E_200B_200F_202C_200D_206C_206C_200B_206E_202B_202B_202A_200E_200E_206B_202D_202B_202E_206B_202E_206B_206B_202B_202E(x) == _202C_202C_200B_206B_200C_206A_206F_206B_202C_206B_206D_200D_206A_202A_200D_206B_202D_206C_200C_200C_200B_206F_200C_206E_200B_200B_206D_206C_200E_206E_202A_206C_202C_206C_206D_200F_206A_202A_206F_202E(character); - case 6: - character = nextTarget as ICharacter; - num = ((character == null) ? 1884617910 : 1884617906); - break; - case 3: - return false; - case 0: - return false; - case 2: - num = 1884617907; - break; - case 1: - return true; - case 5: - num = ((!_200D_202C_200D_206D_200D_206D_202B_206C_202E_202A_202C_202B_206D_202D_206F_200E_202D_206E_200B_200F_202C_200D_206C_206C_200B_206E_202B_202B_202A_200E_200E_206B_202D_202B_202E_206B_202E_206B_206B_202B_202E(x).HasValue) ? 1884617911 : 1884617904); - break; - } - } - } - - static uint _200F_200D_202D_206C_200E_200D_206C_206D_206F_206F_206E_206F_202D_202D_200F_202E_202B_200B_202C_206D_202B_200B_200D_200D_206D_200D_200E_206B_206D_206D_202D_206C_202C_202E_206D_200E_200D_206A_206B_202D_202E(ComplexCombatData P_0) - { - return P_0.DataId; - } - - static uint _202D_206F_202C_206C_206B_200F_202A_200B_206A_200E_200D_200E_202B_202A_200B_202B_202D_202D_202D_200E_206F_206B_206E_202E_202B_206E_200C_206C_202E_200D_202E_206E_206E_200B_202A_206B_206B_200D_206A_206A_202E(IGameObject P_0) - { - return P_0.BaseId; - } - - static uint? _200D_202C_200D_206D_200D_206D_202B_206C_202E_202A_202C_202B_206D_202D_206F_200E_202D_206E_200B_200F_202C_200D_206C_206C_200B_206E_202B_202B_202A_200E_200E_206B_202D_202B_202E_206B_202E_206B_206B_202B_202E(ComplexCombatData P_0) - { - return P_0.NameId; - } - - static uint _202C_202C_200B_206B_200C_206A_206F_206B_202C_206B_206D_200D_206A_202A_200D_206B_202D_206C_200C_200C_200B_206F_200C_206E_200B_200B_206D_206C_200E_206E_202A_206C_202C_206C_206D_200F_206A_202A_206F_202E(ICharacter P_0) - { - return P_0.NameId; - } - } - private readonly IServiceProvider _serviceProvider; private readonly ICondition _condition; @@ -103,364 +42,135 @@ internal sealed class ItemUseModule : ICombatModule _logger = logger; } - [MethodImpl(MethodImplOptions.NoInlining)] public bool CanHandleFight(CombatController.CombatData combatData) { - int num = ((combatData.CombatItemUse != null) ? (-969597141) : (-969597144)); - while (true) + if (combatData.CombatItemUse == null) { - int num2 = num; - int num3 = -969597142; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_005a; - case 1: - { - _delegate = (from x in _serviceProvider.GetRequiredService<IEnumerable<ICombatModule>>() - where !(x is ItemUseModule) - select x).FirstOrDefault((ICombatModule x) => x.CanHandleFight(combatData)); - ILogger<ItemUseModule> logger = _logger; - string text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-150894400); - object[] array = new object[1]; - ICombatModule? combatModule = _delegate; - array[0] = ((combatModule != null) ? _202C_206B_202B_206E_200B_206D_200F_206D_206F_200D_200B_206F_206E_202B_202E_200D_202D_206A_206B_200E_202A_206A_202B_202D_206E_206A_206C_202C_200B_200E_206E_206C_200E_206E_206A_206C_202C_202E_202A_202E_202E((MemberInfo)_202A_200C_206B_202C_206A_206B_202C_202B_206A_200C_206A_206B_206B_202B_202D_202B_202D_206B_206F_202D_206C_202D_206C_202E_202C_206D_200D_202C_200D_202B_200D_200E_200E_206F_202B_200E_206A_202A_206E_202C_202E((object)combatModule)) : null); - _202D_200C_200B_202A_200C_202C_206F_206E_206C_202D_200D_206A_200E_202D_206F_206B_200D_202E_202C_206F_200B_202B_206B_200D_206D_200B_206B_202A_202D_200F_206F_200D_206B_206D_206B_206D_206F_200D_202B_206A_202E((ILogger)logger, text, array); - return _delegate != null; - } - case 2: - return false; - } - continue; - IL_005a: - num = -969597144; + return false; } - } - - bool ICombatModule.CanHandleFight(CombatController.CombatData combatData) - { - //ILSpy generated this explicit interface implementation from .override directive in CanHandleFight - return this.CanHandleFight(combatData); + _delegate = (from x in _serviceProvider.GetRequiredService<IEnumerable<ICombatModule>>() + where !(x is ItemUseModule) + select x).FirstOrDefault((ICombatModule x) => x.CanHandleFight(combatData)); + _logger.LogDebug("ItemUse delegate: {Delegate}", _delegate?.GetType().Name); + return _delegate != null; } public bool Start(CombatController.CombatData combatData) { - int num = ((!_delegate.Start(combatData)) ? 109561954 : 109561955); - while (true) + if (_delegate.Start(combatData)) { - int num2 = num; - int num3 = 109561954; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_004e; - case 1: - _combatData = combatData; - _isDoingRotation = true; - _continueAt = _202E_206A_202A_200D_206D_206A_206A_202B_202E_206E_202D_206D_206E_200C_202D_202D_206C_200E_206C_202B_200D_206F_200B_202C_200D_200F_200F_206C_206D_206C_202A_200D_202E_206A_206E_202D_200F_200B_202A_206A_202E(); - _itemUsePending = false; - return true; - case 0: - return false; - } - continue; - IL_004e: - num = 109561955; + _combatData = combatData; + _isDoingRotation = true; + _continueAt = Environment.TickCount64; + _itemUsePending = false; + return true; } - } - - bool ICombatModule.Start(CombatController.CombatData combatData) - { - //ILSpy generated this explicit interface implementation from .override directive in Start - return this.Start(combatData); + return false; } public bool Stop() { - int num = ((!_isDoingRotation) ? 1494033930 : 1494033931); - while (true) + if (_isDoingRotation) { - int num2 = num; - int num3 = 1494033930; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 1494033931; - break; - case 0: - return true; - case 1: - _delegate.Stop(); - _isDoingRotation = false; - _combatData = null; - _delegate = null; - _continueAt = _202E_206A_202A_200D_206D_206A_206A_202B_202E_206E_202D_206D_206E_200C_202D_202D_206C_200E_206C_202B_200D_206F_200B_202C_200D_200F_200F_206C_206D_206C_202A_200D_202E_206A_206E_202D_200F_200B_202A_206A_202E(); - num = 1494033930; - break; - } + _delegate.Stop(); + _isDoingRotation = false; + _combatData = null; + _delegate = null; + _continueAt = Environment.TickCount64; } + return true; } - bool ICombatModule.Stop() - { - //ILSpy generated this explicit interface implementation from .override directive in Stop - return this.Stop(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe void Update(IGameObject nextTarget) { - int num = ((_delegate != null) ? (-1423296184) : (-1423296167)); - long num7 = default(long); - int inventoryItemCount = default(int); - while (true) + if (_delegate == null || _continueAt > Environment.TickCount64) { - int num2 = num; - int num3 = -1423296181; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + if (_combatData?.CombatItemUse == null) + { + _delegate.Update(nextTarget); + } + else if (_combatData.KillEnemyDataIds.Contains(nextTarget.BaseId) || _combatData.ComplexCombatDatas.Any((ComplexCombatData x) => x.DataId == nextTarget.BaseId && (!x.NameId.HasValue || (nextTarget is ICharacter character && x.NameId == character.NameId)))) + { + if (_isDoingRotation) + { + int inventoryItemCount = InventoryManager.Instance()->GetInventoryItemCount(_combatData.CombatItemUse.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0); + if (_itemUsePending) + { + if (Environment.TickCount64 < _itemUsePendingUntil) + { + _logger.LogDebug("Item use pending; ignoring temporary inventory count={Count}", inventoryItemCount); + } + else + { + _itemUsePending = false; + } + } + if (!_itemUsePending && inventoryItemCount == 0) + { + _delegate.Update(nextTarget); + } + else if (ShouldUseItem(nextTarget)) + { + _logger.LogDebug("Attempting to use item {ItemId}", _combatData.CombatItemUse.ItemId); + _itemUsePending = true; + _itemUsePendingUntil = Environment.TickCount64 + 3000; + AgentInventoryContext.Instance()->UseItem(_combatData.CombatItemUse.ItemId, InventoryType.Invalid, 0u, 0); + _continueAt = Environment.TickCount64 + 2000; + } + else + { + _delegate.Update(nextTarget); + } + } + else if (_condition[ConditionFlag.Casting]) + { + long num = Environment.TickCount64 + 500; + if (num > _continueAt) + { + _continueAt = num; + } + } + else { - case 17: - _delegate.Update(nextTarget); - return; - case 6: - num = ((!ShouldUseItem(nextTarget)) ? (-1423296182) : (-1423296189)); - break; - case 11: - num = ((_202E_206A_202A_200D_206D_206A_206A_202B_202E_206E_202D_206D_206E_200C_202D_202D_206C_200E_206C_202B_200D_206F_200B_202C_200D_200F_200F_206C_206D_206C_202A_200D_202E_206A_206E_202D_200F_200B_202A_206A_202E() >= _itemUsePendingUntil) ? (-1423296180) : (-1423296161)); - break; - case 2: - num = ((!_isDoingRotation) ? (-1423296174) : (-1423296162)); - break; - case 23: - num = ((!_isDoingRotation) ? (-1423296168) : (-1423296177)); - break; - case 5: - _continueAt = num7; - return; - case 22: - num = ((_combatData?.CombatItemUse != null) ? (-1423296190) : (-1423296166)); - break; - case 10: _isDoingRotation = true; _delegate.Start(_combatData); - return; - case 16: - _delegate.Update(nextTarget); - return; - case 19: - num = ((!_200D_200F_202C_206F_202E_202C_206A_202D_206E_206A_206A_206E_200B_202D_206E_202B_202C_206E_202B_206D_206C_200E_202E_200F_206C_202C_200B_202E_206F_200E_206E_200C_202B_202A_200E_200C_206B_200C_206F_206F_202E(_condition, ConditionFlag.Casting)) ? (-1423296191) : (-1423296186)); - break; - case 24: - num = -1423296167; - break; - case 3: - num = ((_continueAt <= _202E_206A_202A_200D_206D_206A_206A_202B_202E_206E_202D_206D_206E_200C_202D_202D_206C_200E_206C_202B_200D_206F_200B_202C_200D_200F_200F_206C_206D_206C_202A_200D_202E_206A_206E_202D_200F_200B_202A_206A_202E()) ? (-1423296163) : (-1423296188)); - break; - case 25: - return; - case 14: - num = ((inventoryItemCount != 0) ? (-1423296179) : (-1423296165)); - break; - case 1: - _delegate.Update(nextTarget); - return; - case 21: - _delegate.Update(nextTarget); - num = -1423296174; - break; - case 13: - num7 = _202E_206A_202A_200D_206D_206A_206A_202B_202E_206E_202D_206D_206E_200C_202D_202D_206C_200E_206C_202B_200D_206F_200B_202C_200D_200F_200F_206C_206D_206C_202A_200D_202E_206A_206E_202D_200F_200B_202A_206A_202E() + 500; - num = ((num7 <= _continueAt) ? (-1423296174) : (-1423296178)); - break; - case 12: - num = (_itemUsePending ? (-1423296179) : (-1423296187)); - break; - case 0: - num = ((!_combatData.ComplexCombatDatas.Any(delegate(ComplexCombatData x) - { - int num8 = ((_003C_003Ec__DisplayClass15_0._200F_200D_202D_206C_200E_200D_206C_206D_206F_206F_206E_206F_202D_202D_200F_202E_202B_200B_202C_206D_202B_200B_200D_200D_206D_200D_200E_206B_206D_206D_202D_206C_202C_202E_206D_200E_200D_206A_206B_202D_202E(x) != _003C_003Ec__DisplayClass15_0._202D_206F_202C_206C_206B_200F_202A_200B_206A_200E_200D_200E_202B_202A_200B_202B_202D_202D_202D_200E_206F_206B_206E_202E_202B_206E_200C_206C_202E_200D_202E_206E_206E_200B_202A_206B_206B_200D_206A_206A_202E(nextTarget)) ? 1884617909 : 1884617907); - ICharacter character = default(ICharacter); - while (true) - { - int num9 = num8; - int num10 = 1884617910; - int num11 = num9; - switch ((num11 | num10) - (num11 & num10)) - { - case 4: - return _003C_003Ec__DisplayClass15_0._200D_202C_200D_206D_200D_206D_202B_206C_202E_202A_202C_202B_206D_202D_206F_200E_202D_206E_200B_200F_202C_200D_206C_206C_200B_206E_202B_202B_202A_200E_200E_206B_202D_202B_202E_206B_202E_206B_206B_202B_202E(x) == _003C_003Ec__DisplayClass15_0._202C_202C_200B_206B_200C_206A_206F_206B_202C_206B_206D_200D_206A_202A_200D_206B_202D_206C_200C_200C_200B_206F_200C_206E_200B_200B_206D_206C_200E_206E_202A_206C_202C_206C_206D_200F_206A_202A_206F_202E(character); - case 6: - character = nextTarget as ICharacter; - num8 = ((character == null) ? 1884617910 : 1884617906); - break; - case 3: - return false; - case 0: - return false; - case 2: - num8 = 1884617907; - break; - case 1: - return true; - case 5: - num8 = ((!_003C_003Ec__DisplayClass15_0._200D_202C_200D_206D_200D_206D_202B_206C_202E_202A_202C_202B_206D_202D_206F_200E_202D_206E_200B_200F_202C_200D_206C_206C_200B_206E_202B_202B_202A_200E_200E_206B_202D_202B_202E_206B_202E_206B_206B_202B_202E(x).HasValue) ? 1884617911 : 1884617904); - break; - } - } - })) ? (-1423296183) : (-1423296164)); - break; - case 7: - _itemUsePending = false; - num = -1423296185; - break; - case 4: - inventoryItemCount = InventoryManager.Instance()->GetInventoryItemCount(_202A_206E_200D_202B_200D_202D_206C_206C_202B_200C_206D_206B_206A_206A_200E_202E_200C_206E_200C_202B_200F_200F_202B_200D_202A_202A_200F_206D_202A_200B_200C_200E_206C_202A_206E_206F_206B_206F_206A_206A_202E(_combatData.CombatItemUse), isHq: false, checkEquipped: true, checkArmory: true, 0); - num = ((!_itemUsePending) ? (-1423296185) : (-1423296192)); - break; - case 15: - return; - case 18: - return; - case 20: - _202D_200C_200B_202A_200C_202C_206F_206E_206C_202D_200D_206A_200E_202D_206F_206B_200D_202E_202C_206F_200B_202B_206B_200D_206D_200B_206B_202A_202D_200F_206F_200D_206B_206D_206B_206D_206F_200D_202B_206A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-316452763), new object[1] { inventoryItemCount }); - num = -1423296185; - break; - case 9: - num = (_combatData.KillEnemyDataIds.Contains(_206D_202D_206D_202B_206E_202C_202B_202D_200E_200F_202E_202E_206E_202B_202E_202A_202B_202A_200F_206A_206F_202E_200C_200C_202A_206E_200F_206F_200B_200B_206B_206E_206D_206D_206D_206D_206A_202A_206A_200E_202E(nextTarget)) ? (-1423296164) : (-1423296181)); - break; - case 8: - _202D_200C_200B_202A_200C_202C_206F_206E_206C_202D_200D_206A_200E_202D_206F_206B_200D_202E_202C_206F_200B_202B_206B_200D_206D_200B_206B_202A_202D_200F_206F_200D_206B_206D_206B_206D_206F_200D_202B_206A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-350550837), new object[1] { _202A_206E_200D_202B_200D_202D_206C_206C_202B_200C_206D_206B_206A_206A_200E_202E_200C_206E_200C_202B_200F_200F_202B_200D_202A_202A_200F_206D_202A_200B_200C_200E_206C_202A_206E_206F_206B_206F_206A_206A_202E(_combatData.CombatItemUse) }); - _itemUsePending = true; - _itemUsePendingUntil = _202E_206A_202A_200D_206D_206A_206A_202B_202E_206E_202D_206D_206E_200C_202D_202D_206C_200E_206C_202B_200D_206F_200B_202C_200D_200F_200F_206C_206D_206C_202A_200D_202E_206A_206E_202D_200F_200B_202A_206A_202E() + 3000; - AgentInventoryContext.Instance()->UseItem(_202A_206E_200D_202B_200D_202D_206C_206C_202B_200C_206D_206B_206A_206A_200E_202E_200C_206E_200C_202B_200F_200F_202B_200D_202A_202A_200F_206D_202A_200B_200C_200E_206C_202A_206E_206F_206B_206F_206A_206A_202E(_combatData.CombatItemUse), InventoryType.Invalid, 0u, 0); - _continueAt = _202E_206A_202A_200D_206D_206A_206A_202B_202E_206E_202D_206D_206E_200C_202D_202D_206C_200E_206C_202B_200D_206F_200B_202C_200D_200F_200F_206C_206D_206C_202A_200D_202E_206A_206E_202D_200F_200B_202A_206A_202E() + 2000; - return; } } - } - - void ICombatModule.Update(IGameObject nextTarget) - { - //ILSpy generated this explicit interface implementation from .override directive in Update - this.Update(nextTarget); + else if (_isDoingRotation) + { + _delegate.Update(nextTarget); + } } private unsafe bool ShouldUseItem(IGameObject gameObject) { - int num = ((_combatData?.CombatItemUse != null) ? (-1964360590) : (-1964360581)); - BattleChara* ptr = default(BattleChara*); - while (true) + if (_combatData?.CombatItemUse == null) { - int num2 = num; - int num3 = -1964360589; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return false; + } + if (gameObject is IBattleChara) + { + BattleChara* address = (BattleChara*)gameObject.Address; + if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.Incapacitated) { - case 2: - { - byte actorControlFlags = ptr->ActorControlFlags; - num3 = 64; - num4 = actorControlFlags; - return (num4 | num3) - (num4 ^ num3) != 0; + return (address->ActorControlFlags & 0x40) != 0; } - case 0: - return 100f * (float)ptr->Health / (float)ptr->MaxHealth < (float)_206F_202B_200E_200D_200E_200D_206B_200C_200E_206C_200E_200E_202C_202E_206E_200D_206B_206C_200D_206A_202E_200C_206B_200D_200E_200C_206D_200B_200B_206D_202D_200B_202E_200F_200E_206D_200D_206D_200E_202E(_combatData.CombatItemUse); - case 9: - num = -1964360581; - break; - case 7: - return false; - case 6: - num = ((_206E_206C_206F_206C_206F_200F_200E_202A_200E_200B_200C_202C_206A_200E_200C_206A_202D_206F_200E_206E_202A_200D_200E_200E_206B_202C_202C_202E_202B_200C_202D_206F_200B_206F_200F_206F_206A_200F_202B_206F_202E(_combatData.CombatItemUse) != ECombatItemUseCondition.MissingStatus) ? (-1964360588) : (-1964360585)); - break; - case 4: - return !ptr->StatusManager.HasStatus((uint)_206F_202B_200E_200D_200E_200D_206B_200C_200E_206C_200E_200E_202C_202E_206E_200D_206B_206C_200D_206A_202E_200C_206B_200D_200E_200C_206D_200B_200B_206D_202D_200B_202E_200F_200E_206D_200D_206D_200E_202E(_combatData.CombatItemUse)); - case 8: - return false; - case 5: - ptr = (BattleChara*)_200D_200D_202A_206D_202B_206C_202E_200B_206F_202D_200C_206F_200E_200B_206C_200C_206F_200B_206D_206D_202E_202D_206F_206B_202A_206A_202B_206D_206D_200C_200F_202D_202D_206D_202D_206C_200C_202E_202D_202E_202E(gameObject); - num = ((_206E_206C_206F_206C_206F_200F_200E_202A_200E_200B_200C_202C_206A_200E_200C_206A_202D_206F_200E_206E_202A_200D_200E_200E_206B_202C_202C_202E_202B_200C_202D_206F_200B_206F_200F_206F_206A_200F_202B_206F_202E(_combatData.CombatItemUse) != ECombatItemUseCondition.Incapacitated) ? (-1964360592) : (-1964360591)); - break; - case 1: - num = ((!(gameObject is IBattleChara)) ? (-1964360588) : (-1964360586)); - break; - case 3: - num = ((_206E_206C_206F_206C_206F_200F_200E_202A_200E_200B_200C_202C_206A_200E_200C_206A_202D_206F_200E_206E_202A_200D_200E_200E_206B_202C_202C_202E_202B_200C_202D_206F_200B_206F_200F_206F_206A_200F_202B_206F_202E(_combatData.CombatItemUse) != ECombatItemUseCondition.HealthPercent) ? (-1964360587) : (-1964360589)); - break; + if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.HealthPercent) + { + return 100f * (float)address->Health / (float)address->MaxHealth < (float)_combatData.CombatItemUse.Value; + } + if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.MissingStatus) + { + return !address->StatusManager.HasStatus((uint)_combatData.CombatItemUse.Value); } } + return false; } public bool CanAttack(IBattleNpc target) { return _delegate.CanAttack(target); } - - bool ICombatModule.CanAttack(IBattleNpc target) - { - //ILSpy generated this explicit interface implementation from .override directive in CanAttack - return this.CanAttack(target); - } - - static Type _202A_200C_206B_202C_206A_206B_202C_202B_206A_200C_206A_206B_206B_202B_202D_202B_202D_206B_206F_202D_206C_202D_206C_202E_202C_206D_200D_202C_200D_202B_200D_200E_200E_206F_202B_200E_206A_202A_206E_202C_202E(object P_0) - { - return P_0.GetType(); - } - - static string _202C_206B_202B_206E_200B_206D_200F_206D_206F_200D_200B_206F_206E_202B_202E_200D_202D_206A_206B_200E_202A_206A_202B_202D_206E_206A_206C_202C_200B_200E_206E_206C_200E_206E_206A_206C_202C_202E_202A_202E_202E(MemberInfo P_0) - { - return P_0.Name; - } - - static void _202D_200C_200B_202A_200C_202C_206F_206E_206C_202D_200D_206A_200E_202D_206F_206B_200D_202E_202C_206F_200B_202B_206B_200D_206D_200B_206B_202A_202D_200F_206F_200D_206B_206D_206B_206D_206F_200D_202B_206A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static long _202E_206A_202A_200D_206D_206A_206A_202B_202E_206E_202D_206D_206E_200C_202D_202D_206C_200E_206C_202B_200D_206F_200B_202C_200D_200F_200F_206C_206D_206C_202A_200D_202E_206A_206E_202D_200F_200B_202A_206A_202E() - { - return Environment.TickCount64; - } - - static uint _206D_202D_206D_202B_206E_202C_202B_202D_200E_200F_202E_202E_206E_202B_202E_202A_202B_202A_200F_206A_206F_202E_200C_200C_202A_206E_200F_206F_200B_200B_206B_206E_206D_206D_206D_206D_206A_202A_206A_200E_202E(IGameObject P_0) - { - return P_0.BaseId; - } - - static uint _202A_206E_200D_202B_200D_202D_206C_206C_202B_200C_206D_206B_206A_206A_200E_202E_200C_206E_200C_202B_200F_200F_202B_200D_202A_202A_200F_206D_202A_200B_200C_200E_206C_202A_206E_206F_206B_206F_206A_206A_202E(CombatItemUse P_0) - { - return P_0.ItemId; - } - - static bool _200D_200F_202C_206F_202E_202C_206A_202D_206E_206A_206A_206E_200B_202D_206E_202B_202C_206E_202B_206D_206C_200E_202E_200F_206C_202C_200B_202E_206F_200E_206E_200C_202B_202A_200E_200C_206B_200C_206F_206F_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static nint _200D_200D_202A_206D_202B_206C_202E_200B_206F_202D_200C_206F_200E_200B_206C_200C_206F_200B_206D_206D_202E_202D_206F_206B_202A_206A_202B_206D_206D_200C_200F_202D_202D_206D_202D_206C_200C_202E_202D_202E_202E(IGameObject P_0) - { - return P_0.Address; - } - - static ECombatItemUseCondition _206E_206C_206F_206C_206F_200F_200E_202A_200E_200B_200C_202C_206A_200E_200C_206A_202D_206F_200E_206E_202A_200D_200E_200E_206B_202C_202C_202E_202B_200C_202D_206F_200B_206F_200F_206F_206A_200F_202B_206F_202E(CombatItemUse P_0) - { - return P_0.Condition; - } - - static int _206F_202B_200E_200D_200E_200D_206B_200C_200E_206C_200E_200E_202C_202E_206E_200D_206B_206C_200D_206A_202E_200C_206B_200D_200E_200C_206D_200B_200B_206D_202D_200B_202E_200F_200E_206D_200D_206D_200E_202E(CombatItemUse P_0) - { - return P_0.Value; - } } diff --git a/Questionable/Questionable.Controller.CombatModules/Mount128Module.cs b/Questionable/Questionable.Controller.CombatModules/Mount128Module.cs index 495a781..64b30a8 100644 --- a/Questionable/Questionable.Controller.CombatModules/Mount128Module.cs +++ b/Questionable/Questionable.Controller.CombatModules/Mount128Module.cs @@ -23,38 +23,7 @@ internal sealed class Mount128Module : ICombatModule public bool CanHandleFight(CombatController.CombatData combatData) { - ushort? mountId = _gameFunctions.GetMountId(); - int num = (mountId.HasValue ? 1315978543 : 1315978542); - int? obj; - while (true) - { - int num2 = num; - int num3 = 1315978543; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 2: - goto IL_005c; - case 0: - obj = mountId.GetValueOrDefault(); - break; - case 1: - obj = null; - break; - } - break; - IL_005c: - num = 1315978542; - } - return obj == 128; - } - - bool ICombatModule.CanHandleFight(CombatController.CombatData combatData) - { - //ILSpy generated this explicit interface implementation from .override directive in CanHandleFight - return this.CanHandleFight(combatData); + return _gameFunctions.GetMountId() == 128; } public bool Start(CombatController.CombatData combatData) @@ -62,114 +31,30 @@ internal sealed class Mount128Module : ICombatModule return true; } - bool ICombatModule.Start(CombatController.CombatData combatData) - { - //ILSpy generated this explicit interface implementation from .override directive in Start - return this.Start(combatData); - } - public bool Stop() { return true; } - bool ICombatModule.Stop() - { - //ILSpy generated this explicit interface implementation from .override directive in Stop - return this.Stop(); - } - public void Update(IGameObject gameObject) { EAction[] actions = _actions; - int num = 0; - int num2 = -321000316; - while (true) + foreach (EAction action in actions) { - int num3 = num2; - int num4 = -321000313; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + if (_gameFunctions.UseAction(gameObject, action, checkCanUse: false)) { - case 5: - num2 = -321000316; - break; - case 4: - return; - case 0: - { - int num6 = num; - num4 = 1; - num5 = num6; - int num7 = num5 ^ num4; - int num8 = num5 & num4; - num = num7 + (num8 + num8); - num2 = -321000316; - break; - } - case 2: - return; - case 1: - { - EAction action = actions[num]; - num2 = ((!_gameFunctions.UseAction(gameObject, action, checkCanUse: false)) ? (-321000313) : (-321000315)); - break; - } - case 3: - num2 = ((num < actions.Length) ? (-321000314) : (-321000317)); break; } } } - void ICombatModule.Update(IGameObject gameObject) - { - //ILSpy generated this explicit interface implementation from .override directive in Update - this.Update(gameObject); - } - public bool CanAttack(IBattleNpc target) { - uint num = _200D_206E_206B_200C_200E_200F_200E_206A_200C_200E_202B_202A_206C_202B_206A_202B_200D_206F_200F_202D_200C_200E_206E_200D_200E_202A_200B_200B_206F_206F_202B_206D_202A_200E_202D_206F_206D_200F_202B_202E((IGameObject)target); - int num2 = 7504; - int num3 = (int)num; - int num4 = (((uint)(~(~num3 + num2)) <= 1u) ? 2050510022 : 2050510023); - bool result = default(bool); - while (true) + uint baseId = target.BaseId; + if (baseId - 7504 <= 1 || baseId == 14107) { - int num5 = num4; - num2 = 2050510022; - num3 = num5; - switch ((num3 | num2) - (num3 & num2)) - { - case 2: - return result; - case 1: - num4 = ((num != 14107) ? 2050510018 : 2050510022); - break; - case 3: - num4 = 2050510023; - break; - case 0: - result = true; - num4 = 2050510020; - break; - case 4: - result = false; - num4 = 2050510020; - break; - } + return true; } - } - - bool ICombatModule.CanAttack(IBattleNpc target) - { - //ILSpy generated this explicit interface implementation from .override directive in CanAttack - return this.CanAttack(target); - } - - static uint _200D_206E_206B_200C_200E_200F_200E_206A_200C_200E_202B_202A_206C_202B_206A_202B_200D_206F_200F_202D_200C_200E_206E_200D_200E_202A_200B_200B_206F_206F_202B_206D_202A_200E_202D_206F_206D_200F_202B_202E(IGameObject P_0) - { - return P_0.BaseId; + return false; } } diff --git a/Questionable/Questionable.Controller.CombatModules/Mount147Module.cs b/Questionable/Questionable.Controller.CombatModules/Mount147Module.cs index cae93c4..4806ebd 100644 --- a/Questionable/Questionable.Controller.CombatModules/Mount147Module.cs +++ b/Questionable/Questionable.Controller.CombatModules/Mount147Module.cs @@ -19,38 +19,7 @@ internal sealed class Mount147Module : ICombatModule public bool CanHandleFight(CombatController.CombatData combatData) { - ushort? mountId = _gameFunctions.GetMountId(); - int num = (mountId.HasValue ? (-1629535910) : (-1629535911)); - int? obj; - while (true) - { - int num2 = num; - int num3 = -1629535909; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 1: - obj = mountId.GetValueOrDefault(); - break; - case 2: - obj = null; - break; - case 0: - goto IL_009c; - } - break; - IL_009c: - num = -1629535911; - } - return obj == 147; - } - - bool ICombatModule.CanHandleFight(CombatController.CombatData combatData) - { - //ILSpy generated this explicit interface implementation from .override directive in CanHandleFight - return this.CanHandleFight(combatData); + return _gameFunctions.GetMountId() == 147; } public bool Start(CombatController.CombatData combatData) @@ -58,85 +27,25 @@ internal sealed class Mount147Module : ICombatModule return true; } - bool ICombatModule.Start(CombatController.CombatData combatData) - { - //ILSpy generated this explicit interface implementation from .override directive in Start - return this.Start(combatData); - } - public bool Stop() { return true; } - bool ICombatModule.Stop() - { - //ILSpy generated this explicit interface implementation from .override directive in Stop - return this.Stop(); - } - public void Update(IGameObject gameObject) { EAction[] actions = _actions; - int num = 0; - int num2 = -1800928323; - while (true) + foreach (EAction action in actions) { - int num3 = num2; - int num4 = -1800928324; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + if (_gameFunctions.UseAction(gameObject, action, checkCanUse: false)) { - case 1: - num2 = ((num < actions.Length) ? (-1800928327) : (-1800928321)); break; - case 3: - return; - case 5: - { - EAction action = actions[num]; - num2 = ((!_gameFunctions.UseAction(gameObject, action, checkCanUse: false)) ? (-1800928322) : (-1800928328)); - break; - } - case 0: - num2 = -1800928323; - break; - case 2: - { - int num6 = num; - num4 = 1; - num5 = num6; - int num7 = num5 ^ num4; - int num8 = num5 & num4; - num = num7 + (num8 + num8); - num2 = -1800928323; - break; - } - case 4: - return; } } } - void ICombatModule.Update(IGameObject gameObject) - { - //ILSpy generated this explicit interface implementation from .override directive in Update - this.Update(gameObject); - } - public bool CanAttack(IBattleNpc target) { - return _200F_202B_206E_206D_206B_200D_202E_200E_202A_202D_202D_206E_206B_200D_200C_202B_206A_202D_206F_206E_202C_200E_202D_206D_206A_202E_206B_200B_202B_202A_206F_200C_200C_202E_200E_206C_206C_200E_200E_202C_202E((IGameObject)target) == 8593; - } - - bool ICombatModule.CanAttack(IBattleNpc target) - { - //ILSpy generated this explicit interface implementation from .override directive in CanAttack - return this.CanAttack(target); - } - - static uint _200F_202B_206E_206D_206B_200D_202E_200E_202A_202D_202D_206E_206B_200D_200C_202B_206A_202D_206F_206E_202C_200E_202D_206D_206A_202E_206B_200B_202B_202A_206F_200C_200C_202E_200E_206C_206C_200E_200E_202C_202E(IGameObject P_0) - { - return P_0.BaseId; + return target.BaseId == 8593; } } diff --git a/Questionable/Questionable.Controller.CombatModules/RotationSolverRebornModule.cs b/Questionable/Questionable.Controller.CombatModules/RotationSolverRebornModule.cs index 134bdbc..3805a4f 100644 --- a/Questionable/Questionable.Controller.CombatModules/RotationSolverRebornModule.cs +++ b/Questionable/Questionable.Controller.CombatModules/RotationSolverRebornModule.cs @@ -1,5 +1,4 @@ using System; -using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin; using Dalamud.Plugin.Ipc; @@ -24,45 +23,29 @@ internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable private readonly ICallGateSubscriber<string, object, object> _setConfig; - [MethodImpl(MethodImplOptions.NoInlining)] public RotationSolverRebornModule(ILogger<RotationSolverRebornModule> logger, IDalamudPluginInterface pluginInterface, Configuration configuration) { _logger = logger; _configuration = configuration; - _test = pluginInterface.GetIpcSubscriber<string, object>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1411732443)); - _changeOperationMode = pluginInterface.GetIpcSubscriber<byte, object>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1860544423)); - _setConfig = pluginInterface.GetIpcSubscriber<string, object, object>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1066419232)); + _test = pluginInterface.GetIpcSubscriber<string, object>("RotationSolverReborn.Test"); + _changeOperationMode = pluginInterface.GetIpcSubscriber<byte, object>("RotationSolverReborn.ChangeOperatingMode"); + _setConfig = pluginInterface.GetIpcSubscriber<string, object, object>("RotationSolverReborn.SetConfig"); } - [MethodImpl(MethodImplOptions.NoInlining)] public bool IsAvailable() { - int num = ((_configuration.General.CombatModule == Configuration.ECombatModule.RotationSolverReborn) ? 1043338071 : 1043338068); - while (true) + if (_configuration.General.CombatModule != Configuration.ECombatModule.RotationSolverReborn) { - int num2 = num; - int num3 = 1043338070; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0051; - case 2: - return false; - case 1: - try - { - _test.InvokeAction(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(801710835)); - return true; - } - catch (IpcError) - { - return false; - } - } - continue; - IL_0051: - num = 1043338068; + return false; + } + try + { + _test.InvokeAction("Validate RSR is callable from Questionable"); + return true; + } + catch (IpcError) + { + return false; } } @@ -71,131 +54,63 @@ internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable return IsAvailable(); } - bool ICombatModule.CanHandleFight(CombatController.CombatData combatData) - { - //ILSpy generated this explicit interface implementation from .override directive in CanHandleFight - return this.CanHandleFight(combatData); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public bool Start(CombatController.CombatData combatData) { try { _changeOperationMode.InvokeAction(4); - SetConfig(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1302352989), false); - SetConfig(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-21636385), true); - SetConfig(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(440160262), 1); + SetConfig("AutoOffAfterCombat", false); + SetConfig("HealPartyMembers", true); + SetConfig("HostileType", 1); return true; } - catch (IpcError ipcError) + catch (IpcError exception) { - _206B_200C_200B_202B_202B_206C_202B_200E_202D_202E_200C_206A_206D_202C_200B_202C_202E_200E_200E_200D_200F_206B_202A_206C_206F_202C_206D_206A_200E_202D_202E_200D_200F_202E_200E_200D_200E_200C_200F_202B_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1187675745), Array.Empty<object>()); + _logger.LogWarning(exception, "Could not start combat"); return false; } } - bool ICombatModule.Start(CombatController.CombatData combatData) - { - //ILSpy generated this explicit interface implementation from .override directive in Start - return this.Start(combatData); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public bool Stop() { - int num = (_202B_200D_202B_206D_206F_202A_206C_206C_200D_200C_202B_202C_202C_202C_200E_206B_202D_202C_202A_206B_206B_206C_202B_202D_200F_206E_200D_206E_206B_206F_206A_206F_206A_200E_206B_200E_206B_206D_202A_206B_202E((ICallGateSubscriber)_changeOperationMode) ? (-427994100) : (-427994099)); - while (true) + if (!_changeOperationMode.HasAction) { - int num2 = num; - int num3 = -427994100; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_004e; - case 1: - return true; - case 0: - try - { - _changeOperationMode.InvokeAction(0); - return true; - } - catch (IpcError ipcError) - { - _206B_200C_200B_202B_202B_206C_202B_200E_202D_202E_200C_206A_206D_202C_200B_202C_202E_200E_200E_200D_200F_206B_202A_206C_206F_202C_206D_206A_200E_202D_202E_200D_200F_202E_200E_200D_200E_200C_200F_202B_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-52047300), Array.Empty<object>()); - return false; - } - } - continue; - IL_004e: - num = -427994099; + return true; + } + try + { + _changeOperationMode.InvokeAction(0); + return true; + } + catch (IpcError exception) + { + _logger.LogWarning(exception, "Could not turn off combat"); + return false; } - } - - bool ICombatModule.Stop() - { - //ILSpy generated this explicit interface implementation from .override directive in Stop - return this.Stop(); } public void Update(IGameObject gameObject) { } - void ICombatModule.Update(IGameObject gameObject) - { - //ILSpy generated this explicit interface implementation from .override directive in Update - this.Update(gameObject); - } - public bool CanAttack(IBattleNpc target) { return true; } - bool ICombatModule.CanAttack(IBattleNpc target) - { - //ILSpy generated this explicit interface implementation from .override directive in CanAttack - return this.CanAttack(target); - } - public void Dispose() { } - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] private void SetConfig(string key, object value) { try { _setConfig.InvokeAction(key, value); } - catch (IpcError ipcError) + catch (IpcError exception) { - _202D_206C_200F_200F_206F_202B_206F_202C_206B_206E_206A_202D_202B_206A_202A_200D_206F_206F_200F_200F_202A_206E_206F_202E_206C_200D_200B_200E_206C_200B_206A_202E_202E_206D_200B_202E_200C_200E_202C_202D_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1316823844), new object[1] { key }); + _logger.LogDebug(exception, "RSR SetConfig {Key} failed", key); } } - - static void _206B_200C_200B_202B_202B_206C_202B_200E_202D_202E_200C_206A_206D_202C_200B_202C_202E_200E_200E_200D_200F_206B_202A_206C_206F_202C_206D_206A_200E_202D_202E_200D_200F_202E_200E_200D_200E_200C_200F_202B_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogWarning(P_1, P_2, P_3); - } - - static bool _202B_200D_202B_206D_206F_202A_206C_206C_200D_200C_202B_202C_202C_202C_200E_206B_202D_202C_202A_206B_206B_206C_202B_202D_200F_206E_200D_206E_206B_206F_206A_206F_206A_200E_206B_200E_206B_206D_202A_206B_202E(ICallGateSubscriber P_0) - { - return P_0.HasAction; - } - - static void _202D_206C_200F_200F_206F_202B_206F_202C_206B_206E_206A_202D_202B_206A_202A_200D_206F_206F_200F_200F_202A_206E_206F_202E_206C_200D_200B_200E_206C_200B_206A_202E_202E_206D_200B_202E_200C_200E_202C_202D_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogDebug(P_1, P_2, P_3); - } } diff --git a/Questionable/Questionable.Controller.CombatModules/WrathComboModule.cs b/Questionable/Questionable.Controller.CombatModules/WrathComboModule.cs index 8180e5f..afc3de3 100644 --- a/Questionable/Questionable.Controller.CombatModules/WrathComboModule.cs +++ b/Questionable/Questionable.Controller.CombatModules/WrathComboModule.cs @@ -1,14 +1,10 @@ using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; -using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin; using Dalamud.Plugin.Ipc; using Dalamud.Plugin.Ipc.Exceptions; using Dalamud.Plugin.Services; -using Lumina.Excel; -using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps; @@ -105,54 +101,37 @@ internal sealed class WrathComboModule : ICombatModule, IDisposable private Guid? _lease; - [MethodImpl(MethodImplOptions.NoInlining)] public WrathComboModule(ILogger<WrathComboModule> logger, Configuration configuration, IObjectTable objectTable, IDalamudPluginInterface pluginInterface) { _logger = logger; _configuration = configuration; _objectTable = objectTable; - _test = pluginInterface.GetIpcSubscriber<object>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-881363820)); - _registerForLeaseWithCallback = pluginInterface.GetIpcSubscriber<string, string, string, Guid?>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-200781622)); - _releaseControl = pluginInterface.GetIpcSubscriber<Guid, object>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(254606733)); - _setAutoRotationState = pluginInterface.GetIpcSubscriber<Guid, bool, ESetResult>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1072043349)); - _setAutoRotationConfigState = pluginInterface.GetIpcSubscriber<Guid, object, object, ESetResult>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(920538037)); - _setCurrentJobAutoRotationReady = pluginInterface.GetIpcSubscriber<Guid, ESetResult>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1662176505)); - _getComboNamesForJob = pluginInterface.GetIpcSubscriber<uint, List<string>>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(987268149)); - _setComboState = pluginInterface.GetIpcSubscriber<Guid, string, bool, bool, ESetResult>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1902147951)); - _callback = pluginInterface.GetIpcProvider<int, string, object>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-437654203)); + _test = pluginInterface.GetIpcSubscriber<object>("WrathCombo.Test"); + _registerForLeaseWithCallback = pluginInterface.GetIpcSubscriber<string, string, string, Guid?>("WrathCombo.RegisterForLeaseWithCallback"); + _releaseControl = pluginInterface.GetIpcSubscriber<Guid, object>("WrathCombo.ReleaseControl"); + _setAutoRotationState = pluginInterface.GetIpcSubscriber<Guid, bool, ESetResult>("WrathCombo.SetAutoRotationState"); + _setAutoRotationConfigState = pluginInterface.GetIpcSubscriber<Guid, object, object, ESetResult>("WrathCombo.SetAutoRotationConfigState"); + _setCurrentJobAutoRotationReady = pluginInterface.GetIpcSubscriber<Guid, ESetResult>("WrathCombo.SetCurrentJobAutoRotationReady"); + _getComboNamesForJob = pluginInterface.GetIpcSubscriber<uint, List<string>>("WrathCombo.GetComboNamesForJob"); + _setComboState = pluginInterface.GetIpcSubscriber<Guid, string, bool, bool, ESetResult>("WrathCombo.SetComboState"); + _callback = pluginInterface.GetIpcProvider<int, string, object>("Questionable$Wrath.WrathComboCallback"); _callback.RegisterAction(Callback); } public bool IsAvailable() { - int num = ((_configuration.General.CombatModule == Configuration.ECombatModule.WrathCombo) ? (-1348986340) : (-1348986337)); - while (true) + if (_configuration.General.CombatModule != Configuration.ECombatModule.WrathCombo) { - int num2 = num; - int num3 = -1348986338; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0053; - case 1: - return false; - case 2: - try - { - _test.InvokeAction(); - return true; - } - catch (IpcError) - { - return false; - } - } - continue; - IL_0053: - num = -1348986337; + return false; + } + try + { + _test.InvokeAction(); + return true; + } + catch (IpcError) + { + return false; } } @@ -161,408 +140,155 @@ internal sealed class WrathComboModule : ICombatModule, IDisposable return IsAvailable(); } - bool ICombatModule.CanHandleFight(CombatController.CombatData combatData) - { - //ILSpy generated this explicit interface implementation from .override directive in CanHandleFight - return this.CanHandleFight(combatData); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public bool Start(CombatController.CombatData combatData) { try { - _lease = _registerForLeaseWithCallback.InvokeFunc(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-121562455)); - int num = ((!_lease.HasValue) ? (-1358981583) : (-1358981584)); - while (true) + _lease = _registerForLeaseWithCallback.InvokeFunc("Questionable", "Questionable", "Questionable$Wrath"); + if (_lease.HasValue) { - int num2 = num; - int num3 = -1358981583; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + _logger.LogDebug("Wrath combo lease: {Lease}", _lease.Value); + ESetResult eSetResult = _setAutoRotationState.InvokeFunc(_lease.Value, arg2: true); + _logger.LogDebug("SetAutoRotationState={Result}", eSetResult); + if (!eSetResult.IsSuccess()) { - case 6: - num = -1358981584; - break; - case 5: - { - ESetResult eSetResult2 = _setCurrentJobAutoRotationReady.InvokeFunc(_lease.Value); - _202C_202A_202B_206B_202B_202D_206B_206D_202A_200D_202C_200F_200F_200B_202B_200E_200B_202D_200D_206A_200D_206C_202E_206E_202C_200D_200E_206B_200F_206E_206E_202C_200E_202E_206B_206D_200C_206B_200C_202B_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-246523235), new object[1] { eSetResult2 }); - num = (eSetResult2.IsSuccess() ? (-1358981581) : (-1358981579)); - break; - } - case 1: - { - _202C_202A_202B_206B_202B_202D_206B_206D_202A_200D_202C_200F_200F_200B_202B_200E_200B_202D_200D_206A_200D_206C_202E_206E_202C_200D_200E_206B_200F_206E_206E_202C_200E_202E_206B_206D_200C_206B_200C_202B_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1086439273), new object[1] { _lease.Value }); - ESetResult eSetResult = _setAutoRotationState.InvokeFunc(_lease.Value, arg2: true); - _202C_202A_202B_206B_202B_202D_206B_206D_202A_200D_202C_200F_200F_200B_202B_200E_200B_202D_200D_206A_200D_206C_202E_206E_202C_200D_200E_206B_200F_206E_206E_202C_200E_202E_206B_206D_200C_206B_200C_202B_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-650979249), new object[1] { eSetResult }); - num = (eSetResult.IsSuccess() ? (-1358981580) : (-1358981582)); - break; - } - case 4: - _200C_200D_202C_206F_200B_206E_206F_200D_200E_206D_200E_202E_200C_200C_202D_206A_202D_206E_202D_206F_200F_200D_200D_202E_206B_206F_200C_206C_202E_200F_202E_200C_202D_202E_202E_200E_206B_206E_202B_202D_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-831608674), Array.Empty<object>()); + _logger.LogError("Unable to set autorotation state"); Stop(); return false; - case 2: - EnableCombosForCurrentJob(); - SetConfig(AutoRotationConfigOption.HealerRotationMode, HealerRotationMode.Lowest_Current); - SetConfig(AutoRotationConfigOption.DPSRotationMode, DPSRotationMode.Manual); - SetConfig(AutoRotationConfigOption.InCombatOnly, 0); - SetConfig(AutoRotationConfigOption.IncludeNPCs, 1); - SetConfig(AutoRotationConfigOption.OnlyAttackInCombat, 0); - SetConfig(AutoRotationConfigOption.AutoCleanse, 1); - SetConfig(AutoRotationConfigOption.AutoRez, 1); - SetConfig(AutoRotationConfigOption.AutoRezDPSJobs, 1); - SetConfig(AutoRotationConfigOption.ManageKardia, 1); - SetConfig(AutoRotationConfigOption.DPSAoETargets, 3); - SetConfig(AutoRotationConfigOption.AutoRezOutOfParty, 0); - SetConfig(AutoRotationConfigOption.DPSAlwaysHardTarget, 1); - SetConfig(AutoRotationConfigOption.BypassQuest, 1); - return true; - case 3: - _200C_200D_202C_206F_200B_206E_206F_200D_200E_206D_200E_202E_200C_200C_202D_206A_202D_206E_202D_206F_200F_200D_200D_202E_206B_206F_200C_206C_202E_200F_202E_200C_202D_202E_202E_200E_206B_206E_202B_202D_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2060892089), Array.Empty<object>()); + } + ESetResult eSetResult2 = _setCurrentJobAutoRotationReady.InvokeFunc(_lease.Value); + _logger.LogDebug("SetCurrentJobAutoRotationReady={Result}", eSetResult2); + if (!eSetResult2.IsSuccess()) + { + _logger.LogError("Unable to set current job for autorotation"); Stop(); return false; - case 0: - _200C_200D_202C_206F_200B_206E_206F_200D_200E_206D_200E_202E_200C_200C_202D_206A_202D_206E_202D_206F_200F_200D_200D_202E_206B_206F_200C_206C_202E_200F_202E_200C_202D_202E_202E_200E_206B_206E_202B_202D_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1103601186), Array.Empty<object>()); - return false; } + EnableCombosForCurrentJob(); + SetConfig(AutoRotationConfigOption.HealerRotationMode, HealerRotationMode.Lowest_Current); + SetConfig(AutoRotationConfigOption.DPSRotationMode, DPSRotationMode.Manual); + SetConfig(AutoRotationConfigOption.InCombatOnly, 0); + SetConfig(AutoRotationConfigOption.IncludeNPCs, 1); + SetConfig(AutoRotationConfigOption.OnlyAttackInCombat, 0); + SetConfig(AutoRotationConfigOption.AutoCleanse, 1); + SetConfig(AutoRotationConfigOption.AutoRez, 1); + SetConfig(AutoRotationConfigOption.AutoRezDPSJobs, 1); + SetConfig(AutoRotationConfigOption.ManageKardia, 1); + SetConfig(AutoRotationConfigOption.DPSAoETargets, 3); + SetConfig(AutoRotationConfigOption.AutoRezOutOfParty, 0); + SetConfig(AutoRotationConfigOption.DPSAlwaysHardTarget, 1); + SetConfig(AutoRotationConfigOption.BypassQuest, 1); + return true; } + _logger.LogError("Wrath combo did not return a lease"); + return false; } - catch (IpcError ipcError) + catch (IpcError exception) { - _206B_206A_206C_202C_200F_202D_206B_202C_206F_200D_200B_206A_206E_202E_200B_200F_200E_206C_200C_206B_200D_200D_206E_206F_202D_202B_206A_200D_206A_200F_202C_202C_202E_202E_206C_206B_202C_202C_202A_202D_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1303013100), Array.Empty<object>()); + _logger.LogError(exception, "Unable to use wrath combo for combat"); return false; } } - bool ICombatModule.Start(CombatController.CombatData combatData) - { - //ILSpy generated this explicit interface implementation from .override directive in Start - return this.Start(combatData); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public bool Stop() { try { - int num = ((!_lease.HasValue) ? (-1077439308) : (-1077439305)); - while (true) + if (_lease.HasValue) { - int num2 = num; - int num3 = -1077439307; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1077439305; - break; - case 2: - _releaseControl.InvokeAction(_lease.Value); - _lease = null; - num = -1077439308; - break; - case 1: - return true; - } + _releaseControl.InvokeAction(_lease.Value); + _lease = null; } + return true; } - catch (IpcError ipcError) + catch (IpcError exception) { - _202C_202C_202C_202B_200E_202C_202B_202B_202D_202C_206F_206C_202C_206C_202E_206F_206C_202D_200F_200B_200D_202D_200E_206E_200D_206E_200E_206B_206D_202D_206C_206E_202D_200E_202C_200D_202D_202D_200D_200C_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1222809597), Array.Empty<object>()); + _logger.LogWarning(exception, "Could not turn off wrath combo"); return false; } } - bool ICombatModule.Stop() - { - //ILSpy generated this explicit interface implementation from .override directive in Stop - return this.Stop(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public void Update(IGameObject nextTarget) { - int num = (_lease.HasValue ? 1213985662 : 1213985663); - while (true) + if (!_lease.HasValue) { - int num2 = num; - int num3 = 1213985662; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return; - case 1: - throw new TaskException(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(688347319)); - case 2: - goto IL_005e; - } - continue; - IL_005e: - num = 1213985663; + throw new TaskException("Wrath Combo Lease is cancelled"); } } - void ICombatModule.Update(IGameObject nextTarget) - { - //ILSpy generated this explicit interface implementation from .override directive in Update - this.Update(nextTarget); - } - public bool CanAttack(IBattleNpc target) { return true; } - bool ICombatModule.CanAttack(IBattleNpc target) - { - //ILSpy generated this explicit interface implementation from .override directive in CanAttack - return this.CanAttack(target); - } - - [MethodImpl(MethodImplOptions.NoInlining)] private void EnableCombosForCurrentJob() { - int num = (_lease.HasValue ? (-1738503464) : (-1738503461)); - uint num7 = default(uint); - string current = default(string); - ESetResult eSetResult = default(ESetResult); - while (true) + if (!_lease.HasValue) { - int num2 = num; - int num3 = -1738503463; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + uint num = _objectTable.LocalPlayer?.ClassJob.RowId ?? 0; + if (num == 0) + { + return; + } + try + { + List<string> list = _getComboNamesForJob.InvokeFunc(num); + if (list == null || list.Count == 0) { - case 0: - num = -1738503461; - break; - case 1: + _logger.LogWarning("No combos found for job {JobId}", num); + return; + } + _logger.LogDebug("Found {Count} combos for job {JobId}: {Combos}", list.Count, num, string.Join(", ", list)); + int num2 = 0; + foreach (string item in list) { - IPlayerCharacter playerCharacter = _200C_200E_200F_206E_202E_206F_206E_200B_206F_202E_202B_202C_206D_206F_202A_202D_200C_206A_200B_206A_206D_202E_206D_202E_206F_202B_206E_200B_202C_206F_200D_206D_206B_202A_206B_200D_206E_202B_202D_206F_202E(_objectTable); - num7 = ((playerCharacter != null) ? _200B_202E_206C_200D_202E_200B_202D_202C_200E_202B_202D_206F_202D_200D_206D_206E_206F_200E_206E_200B_200C_202A_206E_200C_206D_200F_206E_206B_200D_202D_206F_202B_206F_200C_206E_206E_206C_206A_202C_202A_202E((ICharacter)playerCharacter).RowId : 0u); - num = ((num7 != 0) ? (-1738503462) : (-1738503459)); - break; - } - case 2: - return; - case 4: - return; - case 3: - try + ESetResult eSetResult = _setComboState.InvokeFunc(_lease.Value, item, arg3: true, arg4: true); + if (eSetResult.IsSuccess()) { - List<string> list = _getComboNamesForJob.InvokeFunc(num7); - num = ((list == null) ? 406782414 : 406782415); - while (true) - { - int num8 = num; - num3 = 406782413; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 0: - num = 406782415; - break; - case 3: - _200E_202E_206F_200D_206A_200E_206B_202D_200D_200B_200D_206D_200C_200F_206A_200C_202E_202D_202C_206B_202D_200B_206D_202D_200E_206C_206A_206F_200E_202A_206E_202E_202C_206F_206F_202B_200C_200D_206F_206A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1097438702), new object[1] { num7 }); - return; - case 2: - num = ((list.Count != 0) ? 406782412 : 406782414); - break; - case 1: - { - _202C_202A_202B_206B_202B_202D_206B_206D_202A_200D_202C_200F_200F_200B_202B_200E_200B_202D_200D_206A_200D_206C_202E_206E_202C_200D_200E_206B_200F_206E_206E_202C_200E_202E_206B_206D_200C_206B_200C_202B_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-155886281), new object[3] - { - list.Count, - num7, - _206F_206D_206C_206C_206E_206A_200B_200D_200E_206A_206C_202C_206B_202D_200F_206D_206B_206A_202C_200E_200F_200F_202C_202C_206F_206F_202A_200F_202D_206B_200B_200F_200F_206D_206B_200E_202B_200C_200F_200C_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1467939024), (IEnumerable<string>)list) - }); - int num11 = 0; - using (List<string>.Enumerator enumerator = list.GetEnumerator()) - { - num = 1772577375; - while (true) - { - int num12 = num; - num3 = 1772577374; - num4 = num12; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - _200E_202E_206F_200D_206A_200E_206B_202D_200D_200B_200D_206D_200C_200F_206A_200C_202E_202D_202C_206B_202D_200B_206D_202D_200E_206C_206A_206F_200E_202A_206E_202E_202C_206F_206F_202B_200C_200D_206F_206A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1020041796), new object[2] { current, eSetResult }); - num = 1772577375; - break; - case 3: - current = enumerator.Current; - eSetResult = _setComboState.InvokeFunc(_lease.Value, current, arg3: true, arg4: true); - num = ((!eSetResult.IsSuccess()) ? 1772577370 : 1772577371); - break; - case 0: - num = 1772577375; - break; - case 1: - num = (enumerator.MoveNext() ? 1772577373 : 1772577372); - break; - case 5: - { - int num13 = num11; - num3 = 1; - num4 = num13; - num11 = (num4 | num3) + (num4 & num3); - num = 1772577375; - break; - } - case 2: - goto end_IL_01cd; - } - continue; - end_IL_01cd: - break; - } - } - _202C_202A_202B_206B_202B_202D_206B_206D_202A_200D_202C_200F_200F_200B_202B_200E_200B_202D_200D_206A_200D_206C_202E_206E_202C_200D_200E_206B_200F_206E_206E_202C_200E_202E_206B_206D_200C_206B_200C_202B_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1723018308), new object[3] { num11, list.Count, num7 }); - return; - } - } - } - } - catch (IpcError ipcError) - { - _202C_202C_202C_202B_200E_202C_202B_202B_202D_202C_206F_206C_202C_206C_202E_206F_206C_202D_200F_200B_200D_202D_200E_206E_200D_206E_200E_206B_206D_202D_206C_206E_202D_200E_202C_200D_202D_202D_200D_200C_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-290281876), new object[1] { num7 }); - return; + num2++; + continue; } + _logger.LogWarning("SetComboState({Combo})={Result}", item, eSetResult); } + _logger.LogDebug("Enabled {Count}/{Total} combos for job {JobId}", num2, list.Count, num); + } + catch (IpcError exception) + { + _logger.LogWarning(exception, "Failed to enable combos for job {JobId}", num); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void SetConfig(AutoRotationConfigOption configKey, object value) { - int num = (_lease.HasValue ? 965536274 : 965536273); - while (true) + if (!_lease.HasValue) { - int num2 = num; - int num3 = 965536272; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + try + { + ESetResult eSetResult = _setAutoRotationConfigState.InvokeFunc(_lease.Value, configKey, value); + if (!eSetResult.IsSuccess()) { - case 0: - goto IL_0050; - case 1: - return; - case 2: - try - { - ESetResult eSetResult = _setAutoRotationConfigState.InvokeFunc(_lease.Value, configKey, value); - num = (eSetResult.IsSuccess() ? (-646726898) : (-646726899)); - while (true) - { - int num7 = num; - num3 = -646726897; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - num = -646726899; - break; - case 2: - _200E_202E_206F_200D_206A_200E_206B_202D_200D_200B_200D_206D_200C_200F_206A_200C_202E_202D_202C_206B_202D_200B_206D_202D_200E_206C_206A_206F_200E_202A_206E_202E_202C_206F_206F_202B_200C_200D_206F_206A_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1491997045), new object[3] { configKey, value, eSetResult }); - num = -646726898; - break; - case 1: - return; - } - } - } - catch (IpcError ipcError) - { - _202C_202C_202C_202B_200E_202C_202B_202B_202D_202C_206F_206C_202C_206C_202E_206F_206C_202D_200F_200B_200D_202D_200E_206E_200D_206E_200E_206B_206D_202D_206C_206E_202D_200E_202C_200D_202D_202D_200D_200C_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-931599605), new object[2] { configKey, value }); - return; - } + _logger.LogWarning("WrathCombo config {ConfigKey}={Value} returned {Result}", configKey, value, eSetResult); } - continue; - IL_0050: - num = 965536273; + } + catch (IpcError exception) + { + _logger.LogWarning(exception, "Failed to set WrathCombo config {ConfigKey}={Value}", configKey, value); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void Callback(int reason, string additionalInfo) { - _200E_202E_206F_200D_206A_200E_206B_202D_200D_200B_200D_206D_200C_200F_206A_200C_202E_202D_202C_206B_202D_200B_206D_202D_200E_206C_206A_206F_200E_202A_206E_202E_202C_206F_206F_202B_200C_200D_206F_206A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-935286471), new object[2] { reason, additionalInfo }); + _logger.LogWarning("WrathCombo callback: {Reason} ({Info})", reason, additionalInfo); _lease = null; } public void Dispose() { _lease = null; - _202C_206B_202E_206B_202D_200E_200F_206C_200E_206D_200C_200B_202B_202D_206E_206A_206C_206B_206F_206A_200D_202E_206D_206D_202C_200D_200E_206E_202C_202A_202B_200B_202B_202E_202B_206F_200D_200F_206F_202E((ICallGateProvider)_callback); - } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static void _202C_202A_202B_206B_202B_202D_206B_206D_202A_200D_202C_200F_200F_200B_202B_200E_200B_202D_200D_206A_200D_206C_202E_206E_202C_200D_200E_206B_200F_206E_206E_202C_200E_202E_206B_206D_200C_206B_200C_202B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _200C_200D_202C_206F_200B_206E_206F_200D_200E_206D_200E_202E_200C_200C_202D_206A_202D_206E_202D_206F_200F_200D_200D_202E_206B_206F_200C_206C_202E_200F_202E_200C_202D_202E_202E_200E_206B_206E_202B_202D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogError(P_1, P_2); - } - - static void _206B_206A_206C_202C_200F_202D_206B_202C_206F_200D_200B_206A_206E_202E_200B_200F_200E_206C_200C_206B_200D_200D_206E_206F_202D_202B_206A_200D_206A_200F_202C_202C_202E_202E_206C_206B_202C_202C_202A_202D_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - - static void _202C_202C_202C_202B_200E_202C_202B_202B_202D_202C_206F_206C_202C_206C_202E_206F_206C_202D_200F_200B_200D_202D_200E_206E_200D_206E_200E_206B_206D_202D_206C_206E_202D_200E_202C_200D_202D_202D_200D_200C_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogWarning(P_1, P_2, P_3); - } - - static IPlayerCharacter _200C_200E_200F_206E_202E_206F_206E_200B_206F_202E_202B_202C_206D_206F_202A_202D_200C_206A_200B_206A_206D_202E_206D_202E_206F_202B_206E_200B_202C_206F_200D_206D_206B_202A_206B_200D_206E_202B_202D_206F_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static RowRef<ClassJob> _200B_202E_206C_200D_202E_200B_202D_202C_200E_202B_202D_206F_202D_200D_206D_206E_206F_200E_206E_200B_200C_202A_206E_200C_206D_200F_206E_206B_200D_202D_206F_202B_206F_200C_206E_206E_206C_206A_202C_202A_202E(ICharacter P_0) - { - return P_0.ClassJob; - } - - static void _200E_202E_206F_200D_206A_200E_206B_202D_200D_200B_200D_206D_200C_200F_206A_200C_202E_202D_202C_206B_202D_200B_206D_202D_200E_206C_206A_206F_200E_202A_206E_202E_202C_206F_206F_202B_200C_200D_206F_206A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static string _206F_206D_206C_206C_206E_206A_200B_200D_200E_206A_206C_202C_206B_202D_200F_206D_206B_206A_202C_200E_200F_200F_202C_202C_206F_206F_202A_200F_202D_206B_200B_200F_200F_206D_206B_200E_202B_200C_200F_200C_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); - } - - static void _202C_206B_202E_206B_202D_200E_200F_206C_200E_206D_200C_200B_202B_202D_206E_206A_206C_206B_206F_206A_200D_202E_206D_206D_202C_200D_200E_206E_202C_202A_202B_200B_202B_202E_202B_206F_200D_200F_206F_202E(ICallGateProvider P_0) - { - P_0.UnregisterAction(); + _callback.UnregisterAction(); } } diff --git a/Questionable/Questionable.Controller.CombatModules/WrathResultExtensions.cs b/Questionable/Questionable.Controller.CombatModules/WrathResultExtensions.cs index 3ed7bff..442a40b 100644 --- a/Questionable/Questionable.Controller.CombatModules/WrathResultExtensions.cs +++ b/Questionable/Questionable.Controller.CombatModules/WrathResultExtensions.cs @@ -4,31 +4,10 @@ internal static class WrathResultExtensions { public static bool IsSuccess(this WrathComboModule.ESetResult result) { - int num = (((uint)result > 1u) ? 142889615 : 142889612); - bool result2 = default(bool); - while (true) + if ((uint)result <= 1u) { - int num2 = num; - int num3 = 142889614; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 142889612; - break; - case 2: - result2 = true; - num = 142889613; - break; - case 1: - result2 = false; - num = 142889613; - break; - case 3: - return result2; - } + return true; } + return false; } } diff --git a/Questionable/Questionable.Controller.Conditions/BeforeDutyCondition.cs b/Questionable/Questionable.Controller.Conditions/BeforeDutyCondition.cs index 47e1fce..2d54e15 100644 --- a/Questionable/Questionable.Controller.Conditions/BeforeDutyCondition.cs +++ b/Questionable/Questionable.Controller.Conditions/BeforeDutyCondition.cs @@ -1,4 +1,3 @@ -using System.Runtime.CompilerServices; using Questionable.Model.Questing; namespace Questionable.Controller.Conditions; @@ -12,43 +11,19 @@ internal sealed class BeforeDutyCondition : StopCondition public override bool Evaluate(StopEvaluationContext context) { EInteractionType? upcomingInteractionType = context.UpcomingInteractionType; - int num = ((!upcomingInteractionType.HasValue) ? (-1887031172) : (-1887031170)); - bool result = default(bool); - while (true) + if (upcomingInteractionType.HasValue) { - int num2 = num; - int num3 = -1887031171; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + EInteractionType valueOrDefault = upcomingInteractionType.GetValueOrDefault(); + if ((uint)(valueOrDefault - 19) <= 1u) { - case 1: - result = false; - num = -1887031171; - break; - case 4: - result = true; - num = -1887031171; - break; - case 3: - { - EInteractionType valueOrDefault = upcomingInteractionType.GetValueOrDefault(); - num = (((uint)(valueOrDefault - 19) > 1u) ? (-1887031172) : (-1887031175)); - break; - } - case 0: - return result; - case 2: - num = -1887031170; - break; + return true; } } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public override string GetDescription() { - return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2024271967); + return "Before duty"; } } diff --git a/Questionable/Questionable.Controller.Conditions/GilThresholdCondition.cs b/Questionable/Questionable.Controller.Conditions/GilThresholdCondition.cs index 850c6e3..79f59fc 100644 --- a/Questionable/Questionable.Controller.Conditions/GilThresholdCondition.cs +++ b/Questionable/Questionable.Controller.Conditions/GilThresholdCondition.cs @@ -1,5 +1,3 @@ -using System.Runtime.CompilerServices; - namespace Questionable.Controller.Conditions; internal sealed class GilThresholdCondition : StopCondition @@ -15,12 +13,8 @@ internal sealed class GilThresholdCondition : StopCondition return context.Gil < MinGil; } - [MethodImpl(MethodImplOptions.NoInlining)] public override string GetDescription() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(10, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-789256971)); - defaultInterpolatedStringHandler.AppendFormatted(MinGil, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1282575127)); - return defaultInterpolatedStringHandler.ToStringAndClear(); + return $"Gil below {MinGil:N0}"; } } diff --git a/Questionable/Questionable.Controller.Conditions/GlobalSequenceCondition.cs b/Questionable/Questionable.Controller.Conditions/GlobalSequenceCondition.cs index 89826d4..e7baf48 100644 --- a/Questionable/Questionable.Controller.Conditions/GlobalSequenceCondition.cs +++ b/Questionable/Questionable.Controller.Conditions/GlobalSequenceCondition.cs @@ -1,5 +1,3 @@ -using System.Runtime.CompilerServices; - namespace Questionable.Controller.Conditions; internal sealed class GlobalSequenceCondition : StopCondition @@ -15,12 +13,8 @@ internal sealed class GlobalSequenceCondition : StopCondition return context.CurrentSequence >= TargetSequence; } - [MethodImpl(MethodImplOptions.NoInlining)] public override string GetDescription() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(9, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(48652591)); - defaultInterpolatedStringHandler.AppendFormatted(TargetSequence); - return defaultInterpolatedStringHandler.ToStringAndClear(); + return $"Sequence {TargetSequence}"; } } diff --git a/Questionable/Questionable.Controller.Conditions/InventoryFullCondition.cs b/Questionable/Questionable.Controller.Conditions/InventoryFullCondition.cs index f01fb71..91af556 100644 --- a/Questionable/Questionable.Controller.Conditions/InventoryFullCondition.cs +++ b/Questionable/Questionable.Controller.Conditions/InventoryFullCondition.cs @@ -1,5 +1,3 @@ -using System.Runtime.CompilerServices; - namespace Questionable.Controller.Conditions; internal sealed class InventoryFullCondition : StopCondition @@ -13,9 +11,8 @@ internal sealed class InventoryFullCondition : StopCondition return context.FreeInventorySlots == 0; } - [MethodImpl(MethodImplOptions.NoInlining)] public override string GetDescription() { - return global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(915709300); + return "Inventory full"; } } diff --git a/Questionable/Questionable.Controller.Conditions/LevelCondition.cs b/Questionable/Questionable.Controller.Conditions/LevelCondition.cs index 0c9acbd..570e3e4 100644 --- a/Questionable/Questionable.Controller.Conditions/LevelCondition.cs +++ b/Questionable/Questionable.Controller.Conditions/LevelCondition.cs @@ -1,5 +1,3 @@ -using System.Runtime.CompilerServices; - namespace Questionable.Controller.Conditions; internal sealed class LevelCondition : StopCondition @@ -15,12 +13,8 @@ internal sealed class LevelCondition : StopCondition return context.PlayerLevel >= TargetLevel; } - [MethodImpl(MethodImplOptions.NoInlining)] public override string GetDescription() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(6, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1980344015)); - defaultInterpolatedStringHandler.AppendFormatted(TargetLevel); - return defaultInterpolatedStringHandler.ToStringAndClear(); + return $"Level {TargetLevel}"; } } diff --git a/Questionable/Questionable.Controller.Conditions/QuestAcceptCondition.cs b/Questionable/Questionable.Controller.Conditions/QuestAcceptCondition.cs index 6970fdd..a5e67ca 100644 --- a/Questionable/Questionable.Controller.Conditions/QuestAcceptCondition.cs +++ b/Questionable/Questionable.Controller.Conditions/QuestAcceptCondition.cs @@ -1,4 +1,3 @@ -using System.Runtime.CompilerServices; using Questionable.Model.Questing; namespace Questionable.Controller.Conditions; @@ -15,17 +14,12 @@ internal sealed class QuestAcceptCondition : StopCondition public override bool Evaluate(StopEvaluationContext context) { - return ((QuestAcceptCondition)(object)context.AcceptedQuestId)?._200B_206A_200B_200C_206C_200C_200B_206A_202E_206F_202A_206B_202B_206C_202E_200C_202B_206B_202A_202D_206B_206C_206F_206E_206A_206E_202A_206A_206C_200F_206C_200B_206E_200B_200C_200B_206B_200F_206A_206D_202E(QuestId) ?? false; + return context.AcceptedQuestId?.Equals(QuestId) ?? false; } - [MethodImpl(MethodImplOptions.NoInlining)] public override string GetDescription() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(15, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-145606806)); - defaultInterpolatedStringHandler.AppendFormatted(QuestId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1158663954)); - return defaultInterpolatedStringHandler.ToStringAndClear(); + return $"Quest {QuestId} accepted"; } public static QuestAcceptCondition CreateSession(ElementId questId) @@ -37,9 +31,4 @@ internal sealed class QuestAcceptCondition : StopCondition Mode = EStopConditionMode.Stop }; } - - bool _200B_206A_200B_200C_206C_200C_200B_206A_202E_206F_202A_206B_202B_206C_202E_200C_202B_206B_202A_202D_206B_206C_206F_206E_206A_206E_202A_206A_206C_200F_206C_200B_206E_200B_200C_200B_206B_200F_206A_206D_202E(ElementId P_0) - { - return ((ElementId)(object)this).Equals(P_0); - } } diff --git a/Questionable/Questionable.Controller.Conditions/QuestCompleteCondition.cs b/Questionable/Questionable.Controller.Conditions/QuestCompleteCondition.cs index 324a818..36e4a0d 100644 --- a/Questionable/Questionable.Controller.Conditions/QuestCompleteCondition.cs +++ b/Questionable/Questionable.Controller.Conditions/QuestCompleteCondition.cs @@ -1,4 +1,3 @@ -using System.Runtime.CompilerServices; using Questionable.Model.Questing; namespace Questionable.Controller.Conditions; @@ -18,71 +17,29 @@ internal sealed class QuestCompleteCondition : StopCondition public override bool Evaluate(StopEvaluationContext context) { int? sequence = Sequence; - int num = ((!sequence.HasValue) ? 1923712411 : 1923712409); - int valueOrDefault = default(int); - while (true) + if (sequence.HasValue) { - int num2 = num; - int num3 = 1923712408; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + int valueOrDefault = sequence.GetValueOrDefault(); + ElementId? currentQuestId = context.CurrentQuestId; + if ((object)currentQuestId != null && currentQuestId.Equals(QuestId)) { - case 2: - return false; - case 0: return context.CurrentSequence >= valueOrDefault; - case 1: - { - valueOrDefault = sequence.GetValueOrDefault(); - ElementId? currentQuestId = context.CurrentQuestId; - num = (((object)currentQuestId == null || !((QuestCompleteCondition)(object)currentQuestId)._206F_202D_200C_200B_200F_200D_200D_202B_206B_206D_202B_200D_202D_200D_206A_202C_202C_206D_206C_202D_206C_206A_202B_202E_202E_206C_206F_200D_206A_202A_200F_206B_206F_202E_206C_206F_200E_200F_202B_200D_202E(QuestId)) ? 1923712410 : 1923712408); - break; - } - case 4: - num = 1923712409; - break; - case 3: - return ((QuestCompleteCondition)(object)context.CompletedQuestId)?._206F_202D_200C_200B_200F_200D_200D_202B_206B_206D_202B_200D_202D_200D_206A_202C_202C_206D_206C_202D_206C_206A_202B_202E_202E_206C_206F_200D_206A_202A_200F_206B_206F_202E_206C_206F_200E_200F_202B_200D_202E(QuestId) ?? false; } + return false; } + return context.CompletedQuestId?.Equals(QuestId) ?? false; } - [MethodImpl(MethodImplOptions.NoInlining)] public override string GetDescription() { - string text = _206C_202B_200F_200F_206A_206D_200D_206E_202C_202B_202C_206A_206F_200B_206A_206B_200C_202A_206B_200D_206E_202A_206D_206C_200F_202B_202A_206C_206A_202C_206D_202B_206B_202B_202B_206E_206F_206C_200E_202B_202E((object)QuestId); + string text = QuestId.ToString(); int? sequence = Sequence; - int num = ((!sequence.HasValue) ? (-1343890336) : (-1343890335)); - int valueOrDefault = default(int); - while (true) + if (sequence.HasValue) { - int num2 = num; - int num3 = -1343890336; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = -1343890335; - break; - case 1: - valueOrDefault = sequence.GetValueOrDefault(); - num = -1343890334; - break; - case 2: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(19, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(18748268)); - defaultInterpolatedStringHandler.AppendFormatted(text); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1980091129)); - defaultInterpolatedStringHandler.AppendFormatted(valueOrDefault); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - case 0: - return _202B_202D_206E_206D_202D_206D_202C_206C_206D_206D_200F_206E_206F_206F_202D_200B_202A_202A_202D_206E_202E_200D_200F_206D_200B_202A_206A_200C_206F_206F_206F_202A_202A_200E_202C_202A_206B_200B_202A_200C_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1754422725), text, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-729035300)); - } + int valueOrDefault = sequence.GetValueOrDefault(); + return $"Quest {text} at sequence {valueOrDefault}"; } + return "Quest " + text + " completed"; } public static QuestCompleteCondition CreateSession(ElementId questId) @@ -94,19 +51,4 @@ internal sealed class QuestCompleteCondition : StopCondition Mode = EStopConditionMode.Stop }; } - - bool _206F_202D_200C_200B_200F_200D_200D_202B_206B_206D_202B_200D_202D_200D_206A_202C_202C_206D_206C_202D_206C_206A_202B_202E_202E_206C_206F_200D_206A_202A_200F_206B_206F_202E_206C_206F_200E_200F_202B_200D_202E(ElementId P_0) - { - return ((ElementId)(object)this).Equals(P_0); - } - - static string _206C_202B_200F_200F_206A_206D_200D_206E_202C_202B_202C_206A_206F_200B_206A_206B_200C_202A_206B_200D_206E_202A_206D_206C_200F_202B_202A_206C_206A_202C_206D_202B_206B_202B_202B_206E_206F_206C_200E_202B_202E(object P_0) - { - return P_0.ToString(); - } - - static string _202B_202D_206E_206D_202D_206D_202C_206C_206D_206D_200F_206E_206F_206F_202D_200B_202A_202A_202D_206E_202E_200D_200F_206D_200B_202A_206A_200C_206F_206F_206F_202A_202A_200E_202C_202A_206B_200B_202A_200C_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } } diff --git a/Questionable/Questionable.Controller.Conditions/QuestCountCondition.cs b/Questionable/Questionable.Controller.Conditions/QuestCountCondition.cs index da7a9ec..4a15906 100644 --- a/Questionable/Questionable.Controller.Conditions/QuestCountCondition.cs +++ b/Questionable/Questionable.Controller.Conditions/QuestCountCondition.cs @@ -1,5 +1,3 @@ -using System.Runtime.CompilerServices; - namespace Questionable.Controller.Conditions; internal sealed class QuestCountCondition : StopCondition @@ -15,12 +13,8 @@ internal sealed class QuestCountCondition : StopCondition return context.QuestsCompletedThisSession >= Count; } - [MethodImpl(MethodImplOptions.NoInlining)] public override string GetDescription() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(17, 1); - defaultInterpolatedStringHandler.AppendFormatted(Count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1579947935)); - return defaultInterpolatedStringHandler.ToStringAndClear(); + return $"{Count} quests completed"; } } diff --git a/Questionable/Questionable.Controller.Conditions/StopConditionConverter.cs b/Questionable/Questionable.Controller.Conditions/StopConditionConverter.cs index 8616602..bc84675 100644 --- a/Questionable/Questionable.Controller.Conditions/StopConditionConverter.cs +++ b/Questionable/Questionable.Controller.Conditions/StopConditionConverter.cs @@ -1,5 +1,4 @@ using System; -using System.Runtime.CompilerServices; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Questionable.Model.Questing; @@ -20,415 +19,142 @@ internal sealed class StopConditionConverter : JsonConverter<StopCondition> } } - [MethodImpl(MethodImplOptions.NoInlining)] private static StopCondition? ReadJsonCore(JsonReader reader) { - JObject jObject = _206C_200E_206F_200F_202C_202D_200B_200E_200D_200D_200F_202E_206B_206E_202C_206B_206F_200E_206C_202D_200E_202E_206D_206E_202C_202E_206D_200C_206E_202E_206F_200C_202E_206D_206E_202D_206E_202C_206B_200D_202E(reader); - string text = _200F_202B_202C_206A_206F_200F_206B_202C_200C_202C_200B_202B_200E_206C_200F_200D_200E_206D_202D_206C_206B_200D_200B_202E_200B_200F_202E_202B_206E_206D_206D_202C_202D_206B_206E_206A_200B_206C_206E_202E_202E(jObject, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(52233837))?.Value<string>(); - int num = ((text == null) ? (-2010192551) : (-2010192556)); - ElementId elementId2 = default(ElementId); - StopCondition stopCondition2 = default(StopCondition); - ElementId elementId = default(ElementId); - StopCondition stopCondition = default(StopCondition); - int? num7 = default(int?); - char c = default(char); - while (true) + JObject jObject = JObject.Load(reader); + StopCondition stopCondition; + switch (jObject["Type"]?.Value<string>()) { - int num2 = num; - int num3 = -2010192547; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + case "QuestComplete": + { + ElementId elementId2 = DeserializeElementId(jObject["QuestId"]); + if ((object)elementId2 != null) { - case 10: - elementId2 = DeserializeElementId(_200F_202B_202C_206A_206F_200F_206B_202C_200C_202C_200B_202B_200E_206C_200F_200D_200E_206D_202D_206C_206B_200D_200B_202E_200B_200F_202E_202B_206E_206D_206D_202C_202D_206B_206E_206A_200B_206C_206E_202E_202E(jObject, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(795152114))); - num = (((object)elementId2 == null) ? (-2010192551) : (-2010192558)); + stopCondition = new QuestCompleteCondition + { + QuestId = elementId2, + Sequence = jObject["Sequence"]?.Value<int?>() + }; break; - case 5: - num = (_206A_206B_206D_206E_206B_202D_200F_202C_200C_202B_206A_200C_206F_202B_206F_206F_200E_200F_202C_206A_200E_202A_200B_202B_202A_206D_206E_200C_200B_206F_200D_206F_202D_202D_200E_200F_200E_202E_200D_206A_202E(text, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1603904649)) ? (-2010192557) : (-2010192562)); - break; - case 4: - goto IL_0152; - case 3: - stopCondition2 = new QuestAcceptCondition + } + goto default; + } + case "QuestAccept": + { + ElementId elementId = DeserializeElementId(jObject["QuestId"]); + if ((object)elementId != null) + { + stopCondition = new QuestAcceptCondition { QuestId = elementId }; - num = -2010192575; break; - case 28: - stopCondition = stopCondition2; - num = ((stopCondition == null) ? (-2010192572) : (-2010192548)); - break; - case 6: - num = (_206A_206B_206D_206E_206B_202D_200F_202C_200C_202B_206A_200C_206F_202B_206F_206F_200E_200F_202C_206A_200E_202A_200B_202B_202A_206D_206E_200C_200B_206F_200D_206F_202D_202D_200E_200F_200E_202E_200D_206A_202E(text, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(436457362)) ? (-2010192553) : (-2010192563)); - break; - case 25: - return stopCondition; - case 14: - elementId = DeserializeElementId(_200F_202B_202C_206A_206F_200F_206B_202C_200C_202C_200B_202B_200E_206C_200F_200D_200E_206D_202D_206C_206B_200D_200B_202E_200B_200F_202E_202B_206E_206D_206D_202C_202D_206B_206E_206A_200B_206C_206E_202E_202E(jObject, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(795152114))); - num = (((object)elementId == null) ? (-2010192551) : (-2010192546)); - break; - case 0: - stopCondition2 = new BeforeDutyCondition(); - num = -2010192575; - break; - case 19: - num = -2010192551; - break; - case 15: + } + goto default; + } + case "Level": + stopCondition = new LevelCondition { - QuestCompleteCondition obj = new QuestCompleteCondition + TargetLevel = (jObject["TargetLevel"]?.Value<int>() ?? 50) + }; + break; + case "GlobalSequence": + stopCondition = new GlobalSequenceCondition + { + TargetSequence = (jObject["TargetSequence"]?.Value<int>() ?? 1) + }; + break; + case "InventoryFull": + stopCondition = new InventoryFullCondition(); + break; + case "BeforeDuty": + stopCondition = new BeforeDutyCondition(); + break; + case "GilThreshold": + stopCondition = new GilThresholdCondition + { + MinGil = (jObject["MinGil"]?.Value<int>() ?? 1000) + }; + break; + default: + stopCondition = null; + break; + } + StopCondition stopCondition2 = stopCondition; + if (stopCondition2 != null) + { + int? num = jObject["Mode"]?.Value<int>(); + if (num.HasValue) + { + int valueOrDefault = num.GetValueOrDefault(); + stopCondition2.Mode = (EStopConditionMode)valueOrDefault; + } + } + return stopCondition2; + } + + public override void WriteJson(JsonWriter writer, StopCondition? value, JsonSerializer serializer) + { + if (value == null || value.IsSession) + { + writer.WriteNull(); + return; + } + JObject jObject = new JObject + { + ["Type"] = value.Type.ToString(), + ["Mode"] = (int)value.Mode + }; + if (!(value is QuestCompleteCondition questCompleteCondition)) + { + if (!(value is QuestAcceptCondition questAcceptCondition)) + { + if (!(value is LevelCondition levelCondition)) { - QuestId = elementId2 - }; - JToken jToken = _200F_202B_202C_206A_206F_200F_206B_202C_200C_202C_200B_202B_200E_206C_200F_200D_200E_206D_202D_206C_206B_200D_200B_202E_200B_200F_202E_202B_206E_206D_206D_202C_202D_206B_206E_206A_200B_206C_206E_202E_202E(jObject, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(5286166)); - int? sequence; - if (jToken == null) - { - num7 = null; - sequence = num7; + if (!(value is GlobalSequenceCondition globalSequenceCondition)) + { + if (value is GilThresholdCondition gilThresholdCondition) + { + jObject["MinGil"] = gilThresholdCondition.MinGil; + } + } + else + { + jObject["TargetSequence"] = globalSequenceCondition.TargetSequence; + } } else { - sequence = jToken.Value<int?>(); + jObject["TargetLevel"] = levelCondition.TargetLevel; } - obj.Sequence = sequence; - stopCondition2 = obj; - num = -2010192575; - break; } - case 2: - goto IL_026d; - case 31: - stopCondition2 = new GilThresholdCondition - { - MinGil = (_200F_202B_202C_206A_206F_200F_206B_202C_200C_202C_200B_202B_200E_206C_200F_200D_200E_206D_202D_206C_206B_200D_200B_202E_200B_200F_202E_202B_206E_206D_206D_202C_202D_206B_206E_206A_200B_206C_206E_202E_202E(jObject, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1170513832))?.Value<int>() ?? 1000) - }; - num = -2010192575; - break; - case 7: - num = -2010192551; - break; - case 29: - num = -2010192551; - break; - case 24: - goto IL_02f2; - case 22: - num = -2010192551; - break; - case 9: + else { - int num8 = _206F_202A_200E_206F_206E_206C_206D_206A_202D_202B_202B_206C_206B_206B_202B_200C_200F_200C_202D_202E_206B_206E_200B_200D_202C_206E_206C_202A_202D_200E_206F_202C_200D_206E_202A_202D_202B_200C_206D_206A_202E(text); - num3 = 5; - num4 = num8; - switch (~(~num4 + num3)) - { - case 6: - break; - case 1: - case 2: - case 3: - case 4: - goto IL_0152; - case 5: - goto IL_026d; - case 9: - goto IL_02f2; - default: - goto IL_0370; - case 7: - goto IL_0394; - case 8: - goto IL_03e3; - case 0: - goto IL_04e6; - } - goto case 5; - } - case 23: - num = -2010192556; - break; - case 11: - num = -2010192551; - break; - case 20: - goto IL_0394; - case 17: - num = ((c != 'Q') ? (-2010192551) : (-2010192549)); - break; - case 32: - goto IL_03e3; - case 16: - num = -2010192551; - break; - case 26: - stopCondition2 = new LevelCondition - { - TargetLevel = (_200F_202B_202C_206A_206F_200F_206B_202C_200C_202C_200B_202B_200E_206C_200F_200D_200E_206D_202D_206C_206B_200D_200B_202E_200B_200F_202E_202B_206E_206D_206D_202C_202D_206B_206E_206A_200B_206C_206E_202E_202E(jObject, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(133157427))?.Value<int>() ?? 50) - }; - num = -2010192575; - break; - case 12: - num = -2010192551; - break; - case 8: - stopCondition2 = new GlobalSequenceCondition - { - TargetSequence = (_200F_202B_202C_206A_206F_200F_206B_202C_200C_202C_200B_202B_200E_206C_200F_200D_200E_206D_202D_206C_206B_200D_200B_202E_200B_200F_202E_202B_206E_206D_206D_202C_202D_206B_206E_206A_200B_206C_206E_202E_202E(jObject, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1825719736))?.Value<int>() ?? 1) - }; - num = -2010192575; - break; - case 30: - num = (_206A_206B_206D_206E_206B_202D_200F_202C_200C_202B_206A_200C_206F_202B_206F_206F_200E_200F_202C_206A_200E_202A_200B_202B_202A_206D_206E_200C_200B_206F_200D_206F_202D_202D_200E_200F_200E_202E_200D_206A_202E(text, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-17723474)) ? (-2010192570) : (-2010192565)); - break; - case 18: - { - int valueOrDefault = num7.GetValueOrDefault(); - stopCondition.Mode = (EStopConditionMode)valueOrDefault; - num = -2010192572; - break; - } - case 21: - goto IL_04e6; - case 27: - stopCondition2 = new InventoryFullCondition(); - num = -2010192575; - break; - case 1: - num7 = _200F_202B_202C_206A_206F_200F_206B_202C_200C_202C_200B_202B_200E_206C_200F_200D_200E_206D_202D_206C_206B_200D_200B_202E_200B_200F_202E_202B_206E_206D_206D_202C_202D_206B_206E_206A_200B_206C_206E_202E_202E(jObject, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-672065767))?.Value<int>(); - num = ((!num7.HasValue) ? (-2010192572) : (-2010192561)); - break; - case 13: - { - num = -2010192551; - break; - } - IL_0394: - num = (_206A_206B_206D_206E_206B_202D_200F_202C_200C_202B_206A_200C_206F_202B_206F_206F_200E_200F_202C_206A_200E_202A_200B_202B_202A_206D_206E_200C_200B_206F_200D_206F_202D_202D_200E_200F_200E_202E_200D_206A_202E(text, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1252232514)) ? (-2010192574) : (-2010192576)); - break; - IL_0370: - num = -2010192559; - break; - IL_02f2: - num = (_206A_206B_206D_206E_206B_202D_200F_202C_200C_202B_206A_200C_206F_202B_206F_206F_200E_200F_202C_206A_200E_202A_200B_202B_202A_206D_206E_200C_200B_206F_200D_206F_202D_202D_200E_200F_200E_202E_200D_206A_202E(text, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1543657704)) ? (-2010192555) : (-2010192550)); - break; - IL_026d: - num = (_206A_206B_206D_206E_206B_202D_200F_202C_200C_202B_206A_200C_206F_202B_206F_206F_200E_200F_202C_206A_200E_202A_200B_202B_202A_206D_206E_200C_200B_206F_200D_206F_202D_202D_200E_200F_200E_202E_200D_206A_202E(text, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(512682232)) ? (-2010192547) : (-2010192560)); - break; - IL_04e6: - num = (_206A_206B_206D_206E_206B_202D_200F_202C_200C_202B_206A_200C_206F_202B_206F_206F_200E_200F_202C_206A_200E_202A_200B_202B_202A_206D_206E_200C_200B_206F_200D_206F_202D_202D_200E_200F_200E_202E_200D_206A_202E(text, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1372234188)) ? (-2010192569) : (-2010192554)); - break; - IL_03e3: - c = _206D_206F_202A_202E_202A_200F_206C_202D_202E_200D_200F_206B_206C_206C_200C_202E_200B_202A_202C_206A_202C_200F_200B_206F_206C_206A_200D_200C_206C_200D_206E_200F_206E_206E_202D_206A_206D_200C_202C_202A_202E(text, 0); - num = ((c == 'I') ? (-2010192573) : (-2010192564)); - break; - IL_0152: - stopCondition2 = null; - num = -2010192575; - break; + jObject["QuestId"] = questAcceptCondition.QuestId.ToString(); } } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - public override void WriteJson(JsonWriter writer, StopCondition? value, JsonSerializer serializer) - { - int num = ((value == null) ? (-588005033) : (-588005040)); - JObject jObject = default(JObject); - QuestCompleteCondition questCompleteCondition = default(QuestCompleteCondition); - LevelCondition levelCondition = default(LevelCondition); - QuestAcceptCondition questAcceptCondition = default(QuestAcceptCondition); - GlobalSequenceCondition globalSequenceCondition = default(GlobalSequenceCondition); - GilThresholdCondition gilThresholdCondition = default(GilThresholdCondition); - while (true) + else { - int num2 = num; - int num3 = -588005025; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + jObject["QuestId"] = questCompleteCondition.QuestId.ToString(); + if (questCompleteCondition.Sequence.HasValue) { - case 0: - num = -588005040; - break; - case 11: - _202C_200D_202D_206A_200C_200F_206B_202B_206F_200D_200D_200C_202E_200E_206E_206F_202B_202E_200F_202E_202E_200D_202C_202C_206C_206B_202C_202B_206A_200D_206C_206F_202C_202D_206A_206A_206D_200E_202C_202E(jObject, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1722090064), _206B_202A_206F_200D_202E_202A_202B_200B_202D_206A_206B_200B_206A_202A_202C_206C_206C_200B_206E_202D_200D_202C_200F_206C_206F_206B_206A_206E_206C_206A_200C_202E_202E_206B_202A_206A_206D_202D_202D_206F_202E(_200D_206A_206B_206D_206B_202D_202B_206F_206C_200F_202D_200C_202B_202A_200B_206E_206F_200B_206B_206C_206D_200D_200D_206F_206C_206F_200E_200B_200C_202E_206D_206D_200E_202B_202D_202C_200B_200C_206C_202E((object)questCompleteCondition.QuestId))); - num = ((!questCompleteCondition.Sequence.HasValue) ? (-588005027) : (-588005032)); - break; - case 13: - _202C_200D_202D_206A_200C_200F_206B_202B_206F_200D_200D_200C_202E_200E_206E_206F_202B_202E_200F_202E_202E_200D_202C_202C_206C_206B_202C_202B_206A_200D_206C_206F_202C_202D_206A_206A_206D_200E_202C_202E(jObject, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1235586580), _202C_200E_202B_206A_202B_206A_206E_206E_202C_200E_202C_202A_206A_206C_206F_202A_200E_202D_200C_200E_200D_202C_206F_202D_206A_202C_200F_200B_202C_202E_200D_202A_202B_206D_206D_202B_202E_200F_202D_200E_202E(levelCondition.TargetLevel)); - num = -588005027; - break; - case 6: - questAcceptCondition = value as QuestAcceptCondition; - num = ((questAcceptCondition != null) ? (-588005030) : (-588005037)); - break; - case 9: - globalSequenceCondition = value as GlobalSequenceCondition; - num = ((globalSequenceCondition != null) ? (-588005028) : (-588005026)); - break; - case 5: - _202C_200D_202D_206A_200C_200F_206B_202B_206F_200D_200D_200C_202E_200E_206E_206F_202B_202E_200F_202E_202E_200D_202C_202C_206C_206B_202C_202B_206A_200D_206C_206F_202C_202D_206A_206A_206D_200E_202C_202E(jObject, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(764363779), _206B_202A_206F_200D_202E_202A_202B_200B_202D_206A_206B_200B_206A_202A_202C_206C_206C_200B_206E_202D_200D_202C_200F_206C_206F_206B_206A_206E_206C_206A_200C_202E_202E_206B_202A_206A_206D_202D_202D_206F_202E(_200D_206A_206B_206D_206B_202D_202B_206F_206C_200F_202D_200C_202B_202A_200B_206E_206F_200B_206B_206C_206D_200D_200D_206F_206C_206F_200E_200B_200C_202E_206D_206D_200E_202B_202D_202C_200B_200C_206C_202E((object)questAcceptCondition.QuestId))); - num = -588005027; - break; - case 14: - { - JObject jObject2 = _202A_202B_202E_206A_202D_200C_206E_200C_202E_200B_206E_206A_206E_206C_206D_206A_206B_200D_206B_202B_202D_202A_202D_202D_206B_206A_202D_202B_206D_202B_206D_202A_202D_202E_202E_200E_202D_200D_202E_206A_202E(); - _202C_200D_202D_206A_200C_200F_206B_202B_206F_200D_200D_200C_202E_200E_206E_206F_202B_202E_200F_202E_202E_200D_202C_202C_206C_206B_202C_202B_206A_200D_206C_206F_202C_202D_206A_206A_206D_200E_202C_202E(jObject2, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1591043485), _206B_202A_206F_200D_202E_202A_202B_200B_202D_206A_206B_200B_206A_202A_202C_206C_206C_200B_206E_202D_200D_202C_200F_206C_206F_206B_206A_206E_206C_206A_200C_202E_202E_206B_202A_206A_206D_202D_202D_206F_202E(value.Type.ToString())); - _202C_200D_202D_206A_200C_200F_206B_202B_206F_200D_200D_200C_202E_200E_206E_206F_202B_202E_200F_202E_202E_200D_202C_202C_206C_206B_202C_202B_206A_200D_206C_206F_202C_202D_206A_206A_206D_200E_202C_202E(jObject2, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1945719235), _202C_200E_202B_206A_202B_206A_206E_206E_202C_200E_202C_202A_206A_206C_206F_202A_200E_202D_200C_200E_200D_202C_206F_202D_206A_202C_200F_200B_202C_202E_200D_202A_202B_206D_206D_202B_202E_200F_202D_200E_202E((int)value.Mode)); - jObject = jObject2; - questCompleteCondition = value as QuestCompleteCondition; - num = ((questCompleteCondition != null) ? (-588005036) : (-588005031)); - break; - } - case 7: - _202C_200D_202D_206A_200C_200F_206B_202B_206F_200D_200D_200C_202E_200E_206E_206F_202B_202E_200F_202E_202E_200D_202C_202C_206C_206B_202C_202B_206A_200D_206C_206F_202C_202D_206A_206A_206D_200E_202C_202E(jObject, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-5124988), _202E_206B_200F_202D_202A_200B_202C_202B_200E_202E_206D_202A_206E_206A_206E_206A_206D_206B_206E_206E_200F_206E_206F_202B_202C_206D_202D_206B_206E_202A_202A_206F_206E_202B_200D_200B_202D_206F_202A_202E_202E(questCompleteCondition.Sequence)); - num = -588005027; - break; - case 1: - gilThresholdCondition = value as GilThresholdCondition; - num = ((gilThresholdCondition != null) ? (-588005035) : (-588005029)); - break; - case 10: - _202C_200D_202D_206A_200C_200F_206B_202B_206F_200D_200D_200C_202E_200E_206E_206F_202B_202E_200F_202E_202E_200D_202C_202C_206C_206B_202C_202B_206A_200D_206C_206F_202C_202D_206A_206A_206D_200E_202C_202E(jObject, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-51044274), _202C_200E_202B_206A_202B_206A_206E_206E_202C_200E_202C_202A_206A_206C_206F_202A_200E_202D_200C_200E_200D_202C_206F_202D_206A_202C_200F_200B_202C_202E_200D_202A_202B_206D_206D_202B_202E_200F_202D_200E_202E(gilThresholdCondition.MinGil)); - num = -588005027; - break; - case 12: - levelCondition = value as LevelCondition; - num = ((levelCondition != null) ? (-588005038) : (-588005034)); - break; - case 8: - _202B_206F_206B_202D_200F_202E_206B_206E_202C_202A_202B_200E_202B_206F_202D_206B_206A_200E_206E_206A_202A_202B_202C_202C_200D_206B_200B_206A_200D_206E_202C_206C_200B_202D_206C_200E_200E_206F_200D_202D_202E(writer); - return; - case 4: - num = -588005027; - break; - case 2: - _200F_206E_200B_206B_200B_200F_200B_200F_206F_206A_206D_200F_206F_202A_202E_202B_202C_202B_206B_200E_200B_206F_202D_200B_206E_206A_206C_200B_200E_202A_202A_200D_202E_206B_200B_206B_200E_206F_200B_200F_202E((JToken)jObject, writer); - return; - case 3: - _202C_200D_202D_206A_200C_200F_206B_202B_206F_200D_200D_200C_202E_200E_206E_206F_202B_202E_200F_202E_202E_200D_202C_202C_206C_206B_202C_202B_206A_200D_206C_206F_202C_202D_206A_206A_206D_200E_202C_202E(jObject, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-512840921), _202C_200E_202B_206A_202B_206A_206E_206E_202C_200E_202C_202A_206A_206C_206F_202A_200E_202D_200C_200E_200D_202C_206F_202D_206A_202C_200F_200B_202C_202E_200D_202A_202B_206D_206D_202B_202E_200F_202D_200E_202E(globalSequenceCondition.TargetSequence)); - num = -588005027; - break; - case 15: - num = ((!value.IsSession) ? (-588005039) : (-588005033)); - break; + jObject["Sequence"] = questCompleteCondition.Sequence; } } + jObject.WriteTo(writer); } private static ElementId? DeserializeElementId(JToken? token) { - int num = ((token != null) ? (-620565956) : (-620565958)); - ElementId result = default(ElementId); - string text = default(string); - while (true) + string text = token?.Value<string>(); + if (text == null) { - int num2 = num; - int num3 = -620565956; - int num4 = num2; - object obj; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = -620565958; - break; - case 2: - return null; - case 1: - return result; - case 0: - obj = token.Value<string>(); - goto IL_0069; - case 4: - num = (_200C_202C_200F_202B_202B_206A_200C_202B_206A_202D_202B_206B_202B_202D_202D_202C_200C_206F_202D_206D_202B_202B_202E_200F_202E_202A_206F_206A_202B_200C_202E_202A_206C_202D_206C_206F_206F_202E_206E_202D_202E(text, ref result) ? (-620565955) : (-620565954)); - break; - case 5: - return null; - case 6: - { - obj = null; - goto IL_0069; - } - IL_0069: - text = (string)obj; - num = ((text != null) ? (-620565960) : (-620565959)); - break; - } + return null; } - } - - static JObject _206C_200E_206F_200F_202C_202D_200B_200E_200D_200D_200F_202E_206B_206E_202C_206B_206F_200E_206C_202D_200E_202E_206D_206E_202C_202E_206D_200C_206E_202E_206F_200C_202E_206D_206E_202D_206E_202C_206B_200D_202E(JsonReader P_0) - { - return JObject.Load(P_0); - } - - static JToken _200F_202B_202C_206A_206F_200F_206B_202C_200C_202C_200B_202B_200E_206C_200F_200D_200E_206D_202D_206C_206B_200D_200B_202E_200B_200F_202E_202B_206E_206D_206D_202C_202D_206B_206E_206A_200B_206C_206E_202E_202E(JObject P_0, string P_1) - { - return P_0[P_1]; - } - - static int _206F_202A_200E_206F_206E_206C_206D_206A_202D_202B_202B_206C_206B_206B_202B_200C_200F_200C_202D_202E_206B_206E_200B_200D_202C_206E_206C_202A_202D_200E_206F_202C_200D_206E_202A_202D_202B_200C_206D_206A_202E(string P_0) - { - return P_0.Length; - } - - static char _206D_206F_202A_202E_202A_200F_206C_202D_202E_200D_200F_206B_206C_206C_200C_202E_200B_202A_202C_206A_202C_200F_200B_206F_206C_206A_200D_200C_206C_200D_206E_200F_206E_206E_202D_206A_206D_200C_202C_202A_202E(string P_0, int P_1) - { - return P_0[P_1]; - } - - static bool _206A_206B_206D_206E_206B_202D_200F_202C_200C_202B_206A_200C_206F_202B_206F_206F_200E_200F_202C_206A_200E_202A_200B_202B_202A_206D_206E_200C_200B_206F_200D_206F_202D_202D_200E_200F_200E_202E_200D_206A_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static void _202B_206F_206B_202D_200F_202E_206B_206E_202C_202A_202B_200E_202B_206F_202D_206B_206A_200E_206E_206A_202A_202B_202C_202C_200D_206B_200B_206A_200D_206E_202C_206C_200B_202D_206C_200E_200E_206F_200D_202D_202E(JsonWriter P_0) - { - P_0.WriteNull(); - } - - static JObject _202A_202B_202E_206A_202D_200C_206E_200C_202E_200B_206E_206A_206E_206C_206D_206A_206B_200D_206B_202B_202D_202A_202D_202D_206B_206A_202D_202B_206D_202B_206D_202A_202D_202E_202E_200E_202D_200D_202E_206A_202E() - { - return new JObject(); - } - - static JToken _206B_202A_206F_200D_202E_202A_202B_200B_202D_206A_206B_200B_206A_202A_202C_206C_206C_200B_206E_202D_200D_202C_200F_206C_206F_206B_206A_206E_206C_206A_200C_202E_202E_206B_202A_206A_206D_202D_202D_206F_202E(string P_0) - { - return P_0; - } - - static void _202C_200D_202D_206A_200C_200F_206B_202B_206F_200D_200D_200C_202E_200E_206E_206F_202B_202E_200F_202E_202E_200D_202C_202C_206C_206B_202C_202B_206A_200D_206C_206F_202C_202D_206A_206A_206D_200E_202C_202E(JObject P_0, string P_1, JToken P_2) - { - P_0[P_1] = P_2; - } - - static JToken _202C_200E_202B_206A_202B_206A_206E_206E_202C_200E_202C_202A_206A_206C_206F_202A_200E_202D_200C_200E_200D_202C_206F_202D_206A_202C_200F_200B_202C_202E_200D_202A_202B_206D_206D_202B_202E_200F_202D_200E_202E(int P_0) - { - return P_0; - } - - static string _200D_206A_206B_206D_206B_202D_202B_206F_206C_200F_202D_200C_202B_202A_200B_206E_206F_200B_206B_206C_206D_200D_200D_206F_206C_206F_200E_200B_200C_202E_206D_206D_200E_202B_202D_202C_200B_200C_206C_202E(object P_0) - { - return P_0.ToString(); - } - - static JToken _202E_206B_200F_202D_202A_200B_202C_202B_200E_202E_206D_202A_206E_206A_206E_206A_206D_206B_206E_206E_200F_206E_206F_202B_202C_206D_202D_206B_206E_202A_202A_206F_206E_202B_200D_200B_202D_206F_202A_202E_202E(int? P_0) - { - return P_0; - } - - static void _200F_206E_200B_206B_200B_200F_200B_200F_206F_206A_206D_200F_206F_202A_202E_202B_202C_202B_206B_200E_200B_206F_202D_200B_206E_206A_206C_200B_200E_202A_202A_200D_202E_206B_200B_206B_200E_206F_200B_200F_202E(JToken P_0, JsonWriter P_1) - { - P_0.WriteTo(P_1); - } - - static bool _200C_202C_200F_202B_202B_206A_200C_202B_206A_202D_202B_206B_202B_202D_202D_202C_200C_206F_202D_206D_202B_202B_202E_200F_202E_202A_206F_206A_202B_200C_202E_202A_206C_202D_206C_206F_206F_202E_206E_202D_202E(string P_0, ref ElementId P_1) - { - return ElementId.TryFromString(P_0, out P_1); + if (!ElementId.TryFromString(text, out ElementId elementId)) + { + return null; + } + return elementId; } } diff --git a/Questionable/Questionable.Controller.Conditions/TimePlayedCondition.cs b/Questionable/Questionable.Controller.Conditions/TimePlayedCondition.cs index 0fca105..c0b51b9 100644 --- a/Questionable/Questionable.Controller.Conditions/TimePlayedCondition.cs +++ b/Questionable/Questionable.Controller.Conditions/TimePlayedCondition.cs @@ -1,5 +1,4 @@ using System; -using System.Runtime.CompilerServices; namespace Questionable.Controller.Conditions; @@ -16,12 +15,8 @@ internal sealed class TimePlayedCondition : StopCondition return context.ElapsedSinceStart >= TimeSpan.FromMinutes(Minutes); } - [MethodImpl(MethodImplOptions.NoInlining)] public override string GetDescription() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(8, 1); - defaultInterpolatedStringHandler.AppendFormatted(Minutes); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-470345411)); - return defaultInterpolatedStringHandler.ToStringAndClear(); + return $"{Minutes} minutes"; } } diff --git a/Questionable/Questionable.Controller.CustomDelivery/CustomDeliveryNpc.cs b/Questionable/Questionable.Controller.CustomDelivery/CustomDeliveryNpc.cs new file mode 100644 index 0000000..dd664cc --- /dev/null +++ b/Questionable/Questionable.Controller.CustomDelivery/CustomDeliveryNpc.cs @@ -0,0 +1,6 @@ +using Questionable.Model; +using Questionable.Model.Questing; + +namespace Questionable.Controller.CustomDelivery; + +internal sealed record CustomDeliveryNpc(int NpcIndex, ushort NpcRowId, string Name, ushort Level, EExpansionVersion Expansion, QuestId UnlockQuestId); diff --git a/Questionable/Questionable.Controller.CustomDelivery/CustomDeliveryNpcData.cs b/Questionable/Questionable.Controller.CustomDelivery/CustomDeliveryNpcData.cs new file mode 100644 index 0000000..4bdf7fc --- /dev/null +++ b/Questionable/Questionable.Controller.CustomDelivery/CustomDeliveryNpcData.cs @@ -0,0 +1,31 @@ +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Linq; +using Dalamud.Plugin.Services; +using Lumina.Excel.Sheets; +using Questionable.Model; +using Questionable.Model.Questing; + +namespace Questionable.Controller.CustomDelivery; + +internal sealed class CustomDeliveryNpcData +{ + private readonly List<CustomDeliveryNpc> _npcs; + + private readonly Dictionary<ushort, CustomDeliveryNpc> _npcsByRowId; + + public IReadOnlyList<CustomDeliveryNpc> AllNpcs => _npcs; + + public CustomDeliveryNpcData(IDataManager dataManager) + { + _npcs = (from x in dataManager.GetExcelSheet<SatisfactionNpc>() + where x.RowId != 0 && x.Npc.RowId != 0 + select new CustomDeliveryNpc((int)(x.RowId - 1), (ushort)x.RowId, x.Npc.Value.Singular.ToString(), x.LevelUnlock, (EExpansionVersion)x.QuestRequired.Value.Expansion.RowId, QuestId.FromRowId(x.QuestRequired.RowId))).ToList(); + _npcsByRowId = _npcs.ToDictionary((CustomDeliveryNpc x) => x.NpcRowId); + } + + public bool TryGetByRowId(ushort npcRowId, [NotNullWhen(true)] out CustomDeliveryNpc? npc) + { + return _npcsByRowId.TryGetValue(npcRowId, out npc); + } +} diff --git a/Questionable/Questionable.Controller.CustomDelivery/DeliveryNpcApproachExecutor.cs b/Questionable/Questionable.Controller.CustomDelivery/DeliveryNpcApproachExecutor.cs index 0099145..67c1dd6 100644 --- a/Questionable/Questionable.Controller.CustomDelivery/DeliveryNpcApproachExecutor.cs +++ b/Questionable/Questionable.Controller.CustomDelivery/DeliveryNpcApproachExecutor.cs @@ -1,8 +1,6 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; using Dalamud.Game.ClientState.Objects.SubKinds; @@ -34,276 +32,116 @@ internal sealed class DeliveryNpcApproachExecutor(NavmeshIpc navmeshIpc, Movemen private Vector3 _npcPosition; - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { _candidates.Clear(); _candidateIndex = 0; _moving = false; _pathfindTask = null; - _cancellationTokenSource = _202C_206C_202B_200E_200E_206D_202D_202C_200E_206F_206A_202B_202B_202A_206B_206A_206E_206B_200E_200F_206A_206B_200B_200D_206A_206D_200E_206C_200D_202D_202E_202B_202B_202A_200F_200F_200D_200F_202A_202A_202E(TimeSpan.FromSeconds(30L)); - IPlayerCharacter playerCharacter = _206D_202C_200D_202A_206B_202B_206F_202C_206A_200B_206F_200F_200E_202A_200F_202B_202A_206E_200E_206D_202A_200B_206C_202D_206E_206F_206E_206C_206F_202C_206F_202B_202A_200B_200E_202D_206A_206D_202E_206C_202E(objectTable); + _cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(30L)); + IPlayerCharacter localPlayer = objectTable.LocalPlayer; IGameObject gameObject = gameFunctions.FindObjectByDataId(base.Task.NpcDataId, null, warnIfMissing: false); - _npcPosition = ((gameObject != null) ? _200E_200C_200C_200B_202B_202D_206F_200F_202A_206A_206E_206F_206F_206E_202A_206B_206C_202B_206B_202B_206C_202E_206A_206A_206C_202B_206E_202A_206D_206A_202E_200B_200F_202E_200F_206C_200E_202D_200C_202A_202E(gameObject) : base.Task.NpcPosition); - _interactionDistance = 3f + ((gameObject != null) ? _200B_200D_202E_206D_206E_200F_200E_200B_206D_202D_202C_200E_200E_200B_206D_200E_200C_202B_206E_202E_202B_202A_202A_206D_206A_206B_206C_200B_206F_206A_202B_202B_202C_206B_200E_202A_206D_206A_200C_202B_202E(gameObject) : 0f) + ((playerCharacter != null) ? _200B_200D_202E_206D_206E_200F_200E_200B_206D_202D_202C_200E_200E_200B_206D_200E_200C_202B_206E_202E_202B_202A_202A_206D_206A_206B_206C_200B_206F_206A_202B_202B_202C_206B_200E_202A_206D_206A_200C_202B_202E((IGameObject)playerCharacter) : 0f); - int num = ((playerCharacter == null) ? (-965250056) : (-965250059)); - int num5 = default(int); - Vector3? pointOnFloor = default(Vector3?); - float num6 = default(float); - float num7 = default(float); - while (true) + _npcPosition = gameObject?.Position ?? base.Task.NpcPosition; + _interactionDistance = 3f + (gameObject?.HitboxRadius ?? 0f) + (localPlayer?.HitboxRadius ?? 0f); + if (localPlayer == null || clientState.TerritoryType != base.Task.TerritoryId) { - int num2 = num; - int num3 = -965250056; - int num4 = num2; - int num14; - int num15; - float num16; - Vector3 position; - switch ((num4 | num3) - (num4 & num3)) + return true; + } + float num = MathF.Atan2(localPlayer.Position.X - _npcPosition.X, localPlayer.Position.Z - _npcPosition.Z); + float num2 = MathF.Max(1f, _interactionDistance - 0.5f); + for (int i = 0; i < 24; i++) + { + int num3 = ((i != 0) ? ((i + 1) / 2 * ((i % 2 == 1) ? 1 : (-1))) : 0); + float x = num + (float)Math.PI * 2f * (float)num3 / 24f; + Vector3 position = new Vector3(_npcPosition.X + MathF.Sin(x) * num2, _npcPosition.Y + 5f, _npcPosition.Z + MathF.Cos(x) * num2); + Vector3? pointOnFloor = navmeshIpc.GetPointOnFloor(position, unlandable: false, 0.75f); + if (pointOnFloor.HasValue && Vector2.Distance(new Vector2(pointOnFloor.Value.X, pointOnFloor.Value.Z), new Vector2(_npcPosition.X, _npcPosition.Z)) <= _interactionDistance && HasLineOfSight(pointOnFloor.Value, _npcPosition) && HasBodyClearance(pointOnFloor.Value, localPlayer.HitboxRadius + 0.5f)) { - case 7: - _202A_200F_206B_200E_200D_206D_206F_206F_200D_206A_206A_202C_206C_206A_202C_206F_206A_202D_200B_206E_206D_202D_202C_206E_202E_200E_200B_206E_202B_206D_202E_200B_200D_206B_206E_206D_206E_200B_206B_202D_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(90792700), new object[3] - { - _candidates.Count, - base.Task.NpcDataId, - _interactionDistance - }); - StartNextPathfind(); - return true; - case 12: - num = ((num5 == 0) ? (-965250052) : (-965250055)); - break; - case 4: - num14 = 0; - goto IL_01a9; - case 9: - num = ((!(Vector2.Distance(new Vector2(pointOnFloor.Value.X, pointOnFloor.Value.Z), new Vector2(_npcPosition.X, _npcPosition.Z)) <= _interactionDistance)) ? (-965250064) : (-965250051)); - break; - case 13: - num = ((_200C_202B_200C_206A_206D_206A_202E_202B_206A_200F_200F_200F_202A_206F_206D_202B_200B_202C_200F_200D_206B_206D_200B_202E_202A_202A_202C_200C_206F_202E_200C_200F_202B_200D_200D_202C_202E_202E_200D_206A_202E(clientState) == base.Task.TerritoryId) ? (-965250054) : (-965250056)); - break; - case 5: - num = ((!HasLineOfSight(pointOnFloor.Value, _npcPosition)) ? (-965250064) : (-965250061)); - break; - case 0: - return true; - case 1: - { - int num11 = num5; - num3 = 1; - num4 = num11; - int num12 = num4 ^ num3; - int num13 = num4 & num3; - num14 = (num12 + (num13 + num13)) / 2 * ((num5 % 2 == 1) ? 1 : (-1)); - goto IL_01a9; - } - case 10: - num = ((num5 < 24) ? (-965250060) : (-965250049)); - break; - case 8: - { - int num8 = num5; - num3 = 1; - num4 = num8; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - num5 = num9 + (num10 + num10); - num = -965250062; - break; - } - case 3: - num = -965250059; - break; - case 2: - num6 = _200E_200F_200D_206C_206A_202C_206B_206F_202B_202C_200E_200D_206A_200E_206D_200B_200B_202A_206E_202A_202D_202E_206B_200C_200B_206A_200B_200C_206E_200B_200D_206D_200C_202B_206F_200F_200B_202B_200C_200E_202E(_200E_200C_200C_200B_202B_202D_206F_200F_202A_206A_206E_206F_206F_206E_202A_206B_206C_202B_206B_202B_206C_202E_206A_206A_206C_202B_206E_202A_206D_206A_202E_200B_200F_202E_200F_206C_200E_202D_200C_202A_202E((IGameObject)playerCharacter).X - _npcPosition.X, _200E_200C_200C_200B_202B_202D_206F_200F_202A_206A_206E_206F_206F_206E_202A_206B_206C_202B_206B_202B_206C_202E_206A_206A_206C_202B_206E_202A_206D_206A_202E_200B_200F_202E_200F_206C_200E_202D_200C_202A_202E((IGameObject)playerCharacter).Z - _npcPosition.Z); - num7 = _202B_200F_200E_206C_200E_206B_202C_202D_200B_200C_202A_206C_200F_200B_200D_200C_200B_206E_206D_202C_202D_200E_200D_202C_202A_206F_200B_200C_202B_206E_200B_202B_200F_206B_206A_200B_206E_202A_206D_206F_202E(1f, _interactionDistance - 0.5f); - num5 = 0; - num = -965250062; - break; - case 11: - num = ((!HasBodyClearance(pointOnFloor.Value, _200B_200D_202E_206D_206E_200F_200E_200B_206D_202D_202C_200E_200E_200B_206D_200E_200C_202B_206E_202E_202B_202A_202A_206D_206A_206B_206C_200B_206F_206A_202B_202B_202C_206B_200E_202A_206D_206A_200C_202B_202E((IGameObject)playerCharacter) + 0.5f)) ? (-965250064) : (-965250050)); - break; - case 6: - { - _candidates.Add(pointOnFloor.Value); - num = -965250064; - break; - } - IL_01a9: - num15 = num14; - num16 = num6 + MathF.PI * 2f * (float)num15 / 24f; - position = new Vector3(_npcPosition.X + _202B_202D_206B_200B_200B_200B_202A_206A_202B_206F_202B_206F_206F_206D_206B_200C_206D_202A_206B_202D_200C_206B_206C_206F_206D_206B_202E_202A_202D_206A_206E_206F_200D_202C_200F_202A_206F_200D_206A_202E_202E(num16) * num7, _npcPosition.Y + 5f, _npcPosition.Z + _200B_202E_202E_206A_202B_202B_202A_200E_206A_202E_202D_200B_200C_202D_202D_202E_202C_200C_206C_200E_200F_206D_200D_200B_200C_202A_200B_206E_206E_202C_202D_202A_200B_202C_206C_206C_202C_202E_206D_202E_202E(num16) * num7); - pointOnFloor = navmeshIpc.GetPointOnFloor(position, unlandable: false, 0.75f); - num = ((!pointOnFloor.HasValue) ? (-965250064) : (-965250063)); - break; + _candidates.Add(pointOnFloor.Value); } } + logger.LogDebug("Searching {CandidateCount} reachable approaches to delivery NPC {DataId} within {Distance:F1}y", _candidates.Count, base.Task.NpcDataId, _interactionDistance); + StartNextPathfind(); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - int num = ((!_moving) ? (-1907182923) : (-1907182931)); - Vector3 vector = default(Vector3); - NavPathfindResult result = default(NavPathfindResult); - IPlayerCharacter playerCharacter = default(IPlayerCharacter); - float num6 = default(float); - IPlayerCharacter playerCharacter2 = default(IPlayerCharacter); - while (true) + if (_moving) { - int num2 = num; - int num3 = -1907182938; - int num4 = num2; - float num5; - switch ((num4 | num3) - (num4 & num3)) + if (movementController.IsPathfinding || movementController.IsPathRunning) { - case 17: - { - List<Vector3> candidates = _candidates; - int candidateIndex = _candidateIndex; - num3 = 1; - num4 = candidateIndex; - vector = candidates[~(~num4 + num3)]; - result = _pathfindTask.Result; - num = (result.HasPartialInfo ? (-1907182936) : (-1907182924)); - break; + return ETaskResult.StillRunning; } - case 16: - num = ((_candidateIndex < _candidates.Count) ? (-1907182927) : (-1907182930)); - break; - case 19: - num = ((_pathfindTask != null) ? (-1907182940) : (-1907182922)); - break; - case 8: - throw new MovementController.PathfindingFailedException(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1585195763)); - case 6: - num = ((!movementController.IsPathRunning) ? (-1907182925) : (-1907182941)); - break; - case 29: - num = ((!_202C_202E_202A_200B_206B_200F_200F_206E_202A_206B_202A_206A_202C_202A_200C_206A_202A_200C_200D_200C_202A_206E_206A_200D_206C_206E_206C_202C_202C_206E_206C_200D_202A_206D_202C_206A_202D_202C_202C_200E_202E((System.Threading.Tasks.Task)_pathfindTask)) ? (-1907182937) : (-1907182928)); - break; - case 7: - _202A_200F_206B_200E_200D_206D_206F_206F_200D_206A_206A_202C_206C_206A_202C_206F_206A_202D_200B_206E_206D_202D_202C_206E_202E_200E_200B_206E_202B_206D_202E_200B_200D_206B_206E_206D_206E_200B_206B_202D_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(190605907), new object[1] { vector }); - movementController.NavigateTo(EMovementType.Quest, base.Task.NpcDataId, result.Waypoints, fly: false, sprint: true, 0.5f); - _moving = true; - return ETaskResult.StillRunning; - case 24: - num = (result.IsPartial ? (-1907182929) : (-1907182933)); - break; - case 20: - throw new MovementController.PathfindingFailedException(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1442579003)); - case 2: - num = (_200F_200F_202B_206F_206E_202E_206A_206B_202B_200D_200F_200F_202A_206E_206A_200F_200E_200D_206B_202E_206E_206D_206B_202E_206C_200C_200E_202B_202E_200B_200F_202D_200B_200E_200E_206B_202B_200C_206E_206D_202E((System.Threading.Tasks.Task)_pathfindTask) ? (-1907182917) : (-1907182913)); - break; - case 22: - throw new MovementController.PathfindingFailedException(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(688174064)); - case 27: - num = ((playerCharacter == null) ? (-1907182929) : (-1907182942)); - break; - case 14: - num5 = result.EndDistance; - goto IL_02ae; - case 23: - StartNextPathfind(); - return ETaskResult.StillRunning; - case 11: - num = (movementController.IsPathfinding ? (-1907182941) : (-1907182944)); - break; - case 1: - num = ((!_202E_202B_206F_200E_200D_206D_206B_206F_206B_200B_206F_206F_200D_200D_200C_200F_200C_206F_200D_200B_200C_202D_206D_202D_206A_200D_206D_206B_206E_202E_206C_202C_206B_202E_200E_200F_202E_200D_206F_206B_202E((System.Threading.Tasks.Task)_pathfindTask)) ? (-1907182921) : (-1907182939)); - break; - case 0: - num = -1907182931; - break; - case 12: - num = ((!result.HasPartialInfo) ? (-1907182933) : (-1907182914)); - break; - case 13: - num = ((!(num6 <= 1f)) ? (-1907182929) : (-1907182915)); - break; - case 15: + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + if (localPlayer != null && Vector3.Distance(localPlayer.Position, _npcPosition) <= _interactionDistance + 0.5f) + { + return ETaskResult.TaskComplete; + } + throw new MovementController.PathfindingFailedException("Delivery NPC approach ended outside interaction range"); + } + if (_pathfindTask == null) + { + if (_candidateIndex >= _candidates.Count) + { + throw new MovementController.PathfindingFailedException("No reachable approach within delivery NPC interaction range"); + } + StartNextPathfind(); + return ETaskResult.StillRunning; + } + if (!_pathfindTask.IsCompleted) + { + return ETaskResult.StillRunning; + } + if (_pathfindTask.IsCanceled) + { + throw new MovementController.PathfindingFailedException("Delivery NPC approach search timed out"); + } + if (_pathfindTask.IsFaulted) + { + logger.LogDebug(_pathfindTask.Exception, "Delivery NPC approach candidate pathfinding failed"); + _pathfindTask = null; + return ETaskResult.StillRunning; + } + Vector3 vector = _candidates[_candidateIndex - 1]; + NavPathfindResult result = _pathfindTask.Result; + float num; + if (!result.HasPartialInfo) + { + if (result.Waypoints.Count <= 0) + { + num = float.MaxValue; + } + else { List<Vector3> waypoints = result.Waypoints; - num5 = Vector3.Distance(waypoints[waypoints.Count - 1], vector); - goto IL_02ae; - } - case 21: - playerCharacter2 = _206D_202C_200D_202A_206B_202B_206F_202C_206A_200B_206F_200F_200E_202A_200F_202B_202A_206E_200E_206D_202A_200B_206C_202D_206E_206F_206E_206C_206F_202C_206F_202B_202A_200B_200E_202D_206A_206D_202E_206C_202E(objectTable); - num = ((playerCharacter2 == null) ? (-1907182926) : (-1907182918)); - break; - case 3: - _200E_206D_206E_206A_200C_202B_206B_202D_206B_200C_200D_202C_206A_206B_200F_206C_200D_200F_206B_202B_206E_202E_206B_202A_200C_206F_206A_206D_200E_200F_202D_202E_206E_206B_202D_200B_202C_202D_202B_200E_202E((ILogger)logger, (Exception)_206B_206A_200F_206E_202E_206D_200C_202A_200E_202A_202A_206F_206C_200B_202C_202E_206A_202C_202B_200D_200C_206D_200E_202C_206E_202B_206B_202C_202E_200C_200D_206E_206A_200D_200E_206B_200E_202A_206D_200D_202E((System.Threading.Tasks.Task)_pathfindTask), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1595020908), Array.Empty<object>()); - _pathfindTask = null; - return ETaskResult.StillRunning; - case 28: - num = ((!(Vector3.Distance(_200E_200C_200C_200B_202B_202D_206F_200F_202A_206A_206E_206F_206F_206E_202A_206B_206C_202B_206B_202B_206C_202E_206A_206A_206C_202B_206E_202A_206D_206A_202E_200B_200F_202E_200F_206C_200E_202D_200C_202A_202E((IGameObject)playerCharacter2), _npcPosition) <= _interactionDistance + 0.5f)) ? (-1907182926) : (-1907182916)); - break; - case 25: - return ETaskResult.StillRunning; - case 26: - return ETaskResult.TaskComplete; - case 18: - num = ((result.Waypoints.Count > 0) ? (-1907182935) : (-1907182932)); - break; - case 10: - num5 = float.MaxValue; - goto IL_02ae; - case 9: - _pathfindTask = null; - return ETaskResult.StillRunning; - case 4: - num = ((!HasCollisionFreePath(_200E_200C_200C_200B_202B_202D_206F_200F_202A_206A_206E_206F_206F_206E_202A_206B_206C_202B_206B_202B_206C_202E_206A_206A_206C_202B_206E_202A_206D_206A_202E_200B_200F_202E_200F_206C_200E_202D_200C_202A_202E((IGameObject)playerCharacter), result.Waypoints)) ? (-1907182929) : (-1907182943)); - break; - case 5: - { - return ETaskResult.StillRunning; - } - IL_02ae: - num6 = num5; - playerCharacter = _206D_202C_200D_202A_206B_202B_206F_202C_206A_200B_206F_200F_200E_202A_200F_202B_202A_206E_200E_206D_202A_200B_206C_202D_206E_206F_206E_206C_206F_202C_206F_202B_202A_200B_200E_202D_206A_206D_202E_206C_202E(objectTable); - num = ((result.Waypoints.Count <= 0) ? (-1907182929) : (-1907182934)); - break; + num = Vector3.Distance(waypoints[waypoints.Count - 1], vector); } } + else + { + num = result.EndDistance; + } + float num2 = num; + IPlayerCharacter localPlayer2 = objectTable.LocalPlayer; + if (result.Waypoints.Count > 0 && (!result.HasPartialInfo || !result.IsPartial) && num2 <= 1f && localPlayer2 != null && HasCollisionFreePath(localPlayer2.Position, result.Waypoints)) + { + logger.LogDebug("Selected reachable delivery NPC approach {Approach}", vector); + movementController.NavigateTo(EMovementType.Quest, base.Task.NpcDataId, result.Waypoints, fly: false, sprint: true, 0.5f); + _moving = true; + return ETaskResult.StillRunning; + } + _pathfindTask = null; + return ETaskResult.StillRunning; } private void StartNextPathfind() { - IPlayerCharacter playerCharacter = _206D_202C_200D_202A_206B_202B_206F_202C_206A_200B_206F_200F_200E_202A_200F_202B_202A_206E_200E_206D_202A_200B_206C_202D_206E_206F_206E_206C_206F_202C_206F_202B_202A_200B_200E_202D_206A_206D_202E_206C_202E(objectTable); - int num = ((playerCharacter == null) ? 461991521 : 461991527); - while (true) + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + if (localPlayer != null && _candidateIndex < _candidates.Count && _cancellationTokenSource != null) { - int num2 = num; - int num3 = 461991523; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = ((_cancellationTokenSource != null) ? 461991520 : 461991521); - break; - case 4: - num = ((_candidateIndex >= _candidates.Count) ? 461991521 : 461991522); - break; - case 2: - return; - case 0: - num = 461991527; - break; - case 3: - { - List<Vector3> candidates = _candidates; - int candidateIndex = _candidateIndex; - num3 = 1; - num4 = candidateIndex; - int num5 = num4 ^ num3; - int num6 = num4 & num3; - _candidateIndex = num5 + (num6 + num6); - Vector3 targetPosition = candidates[candidateIndex]; - _pathfindTask = navmeshIpc.Pathfind(_200E_200C_200C_200B_202B_202D_206F_200F_202A_206A_206E_206F_206F_206E_202A_206B_206C_202B_206B_202B_206C_202E_206A_206A_206C_202B_206E_202A_206D_206A_202E_200B_200F_202E_200F_206C_200E_202D_200C_202A_202E((IGameObject)playerCharacter), targetPosition, fly: false, _202E_206E_200F_206F_200D_200C_206D_202A_200C_200D_202C_200F_202D_206F_206D_206F_206E_200D_206E_202C_200C_206E_200C_206F_206B_206B_200D_200C_200F_200D_202E_206E_202A_206F_202D_202C_206D_200C_206F_200D_202E(_cancellationTokenSource)); - return; - } - } + Vector3 targetPosition = _candidates[_candidateIndex++]; + _pathfindTask = navmeshIpc.Pathfind(localPlayer.Position, targetPosition, fly: false, _cancellationTokenSource.Token); } } @@ -314,114 +152,27 @@ internal sealed class DeliveryNpcApproachExecutor(NavmeshIpc navmeshIpc, Movemen private static bool HasBodyClearance(Vector3 position, float radius) { - int num = 0; - int num2 = 883120263; - while (true) + for (int i = 0; i < 8; i++) { - int num3 = num2; - int num4 = 883120261; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) + float x = (float)Math.PI * 2f * (float)i / 8f; + if (!HasLineOfSightAtHeight(to: new Vector3(position.X + MathF.Sin(x) * radius, position.Y, position.Z + MathF.Cos(x) * radius), from: position, height: 1f)) { - case 4: - num2 = 883120263; - break; - case 0: return false; - case 1: - return true; - case 2: - num2 = ((num < 8) ? 883120262 : 883120260); - break; - case 5: - { - int num9 = num; - num4 = 1; - num5 = num9; - num = (num5 | num4) + (num5 & num4); - num2 = 883120263; - break; - } - case 3: - { - float num8 = MathF.PI * 2f * (float)num / 8f; - num2 = (HasLineOfSightAtHeight(to: new Vector3(position.X + _202B_202D_206B_200B_200B_200B_202A_206A_202B_206F_202B_206F_206F_206D_206B_200C_206D_202A_206B_202D_200C_206B_206C_206F_206D_206B_202E_202A_202D_206A_206E_206F_200D_202C_200F_202A_206F_200D_206A_202E_202E(num8) * radius, position.Y, position.Z + _200B_202E_202E_206A_202B_202B_202A_200E_206A_202E_202D_200B_200C_202D_202D_202E_202C_200C_206C_200E_200F_206D_200D_200B_200C_202A_200B_206E_206E_202C_202D_202A_200B_202C_206C_206C_202C_202E_206D_202E_202E(num8) * radius), from: position, height: 1f) ? 883120256 : 883120261); - break; - } } } + return true; } private static bool HasCollisionFreePath(Vector3 start, IReadOnlyList<Vector3> waypoints) { Vector3 vector = start; - IEnumerator<Vector3> enumerator = waypoints.GetEnumerator(); - try + foreach (Vector3 waypoint in waypoints) { - int num = -1337017310; - Vector3 current = default(Vector3); - while (true) + if (!HasLineOfSightAtHeight(vector, waypoint, 0.75f) || !HasLineOfSightAtHeight(vector, waypoint, 1.5f)) { - int num2 = num; - int num3 = -1337017311; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - num = -1337017310; - break; - case 4: - return false; - case 1: - current = enumerator.Current; - num = ((!HasLineOfSightAtHeight(vector, current, 0.75f)) ? (-1337017307) : (-1337017309)); - break; - case 2: - num = (HasLineOfSightAtHeight(vector, current, 1.5f) ? (-1337017311) : (-1337017307)); - break; - case 3: - num = (_206D_202B_202E_200E_202C_206A_200E_200B_206E_202E_206F_206A_200C_206D_200B_206E_200F_202D_202C_206D_200D_206F_202A_200C_206D_200B_202E_200D_206A_206B_202D_202A_202A_206F_202D_200C_202C_206A_200B_200D_202E((IEnumerator)enumerator) ? (-1337017312) : (-1337017308)); - break; - case 0: - vector = current; - num = -1337017310; - break; - case 5: - goto end_IL_0015; - } - continue; - end_IL_0015: - break; - } - } - finally - { - int num = ((enumerator == null) ? (-1236481576) : (-1236481575)); - while (true) - { - int num5 = num; - int num3 = -1236481576; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 2: - num = -1236481575; - break; - case 0: - goto end_IL_011d; - case 1: - _200F_200B_206B_200E_202D_202A_202C_200F_202B_206E_200D_200B_206D_206C_202C_206F_202D_200C_206F_202D_202A_202D_206F_202E_206B_206F_200B_202D_200B_200D_200E_202A_200F_200E_200E_200E_200F_206F_206E_206E_202E((IDisposable)enumerator); - num = -1236481576; - break; - } - continue; - end_IL_011d: - break; + return false; } + vector = waypoint; } return true; } @@ -429,175 +180,37 @@ internal sealed class DeliveryNpcApproachExecutor(NavmeshIpc navmeshIpc, Movemen private unsafe static bool HasLineOfSightAtHeight(Vector3 from, Vector3 to, float height) { Framework* ptr = Framework.Instance(); - int num = ((ptr == null) ? (-2105382518) : (-2105382517)); - Vector3 vector = default(Vector3); - float num7 = default(float); - RaycastHit raycastHit = default(RaycastHit); - while (true) + if (ptr == null || ptr->BGCollisionModule == null) { - int num2 = num; - int num3 = -2105382513; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - return true; - case 1: - return true; - case 3: - { - Vector3 vector2 = vector / num7; - int* flags = stackalloc int[4] { 16384, 0, 16384, 0 }; - return !ptr->BGCollisionModule->RaycastMaterialFilter(&raycastHit, &from, &vector2, num7, 1, flags); - } - case 0: - num = -2105382517; - break; - case 4: - num = ((ptr->BGCollisionModule != null) ? (-2105382515) : (-2105382518)); - break; - case 2: - from.Y += height; - to.Y += height; - vector = to - from; - num7 = vector.Length(); - num = ((!(num7 < 0.1f)) ? (-2105382516) : (-2105382514)); - break; - } + return true; } + from.Y += height; + to.Y += height; + Vector3 vector = to - from; + float num = vector.Length(); + if (num < 0.1f) + { + return true; + } + Vector3 vector2 = vector / num; + int* flags = stackalloc int[4] { 16384, 0, 16384, 0 }; + RaycastHit raycastHit = default(RaycastHit); + return !ptr->BGCollisionModule->RaycastMaterialFilter(&raycastHit, &from, &vector2, num, 1, flags); } public void StopNow() { - CancellationTokenSource? cancellationTokenSource = _cancellationTokenSource; - if (cancellationTokenSource != null) - { - _200B_206A_202A_202E_200F_206E_206D_200F_206D_206C_206E_202E_200F_206A_202A_206A_206E_200F_202A_206F_206A_206F_202A_206D_200E_200B_202A_200E_206C_202E_202B_206F_206D_206C_206C_200E_206F_200C_202D_202D_202E(cancellationTokenSource); - } + _cancellationTokenSource?.Cancel(); movementController.Stop(); } - void IStoppableTaskExecutor.StopNow() - { - //ILSpy generated this explicit interface implementation from .override directive in StopNow - this.StopNow(); - } - public void Dispose() { - ((DeliveryNpcApproachExecutor)(object)_cancellationTokenSource)?._206B_200B_202D_206F_206A_206E_202D_202A_206A_206E_206B_206B_200B_202B_202E_206C_202E_200B_200C_200C_200F_206A_200F_206C_206B_200C_206C_206C_200B_202D_206C_202C_206E_202A_200C_200F_206A_206F_206B_206F_202E(); - } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); + _cancellationTokenSource?.Dispose(); } public override bool ShouldInterruptOnDamage() { return false; } - - static CancellationTokenSource _202C_206C_202B_200E_200E_206D_202D_202C_200E_206F_206A_202B_202B_202A_206B_206A_206E_206B_200E_200F_206A_206B_200B_200D_206A_206D_200E_206C_200D_202D_202E_202B_202B_202A_200F_200F_200D_200F_202A_202A_202E(TimeSpan P_0) - { - return new CancellationTokenSource(P_0); - } - - static IPlayerCharacter _206D_202C_200D_202A_206B_202B_206F_202C_206A_200B_206F_200F_200E_202A_200F_202B_202A_206E_200E_206D_202A_200B_206C_202D_206E_206F_206E_206C_206F_202C_206F_202B_202A_200B_200E_202D_206A_206D_202E_206C_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static Vector3 _200E_200C_200C_200B_202B_202D_206F_200F_202A_206A_206E_206F_206F_206E_202A_206B_206C_202B_206B_202B_206C_202E_206A_206A_206C_202B_206E_202A_206D_206A_202E_200B_200F_202E_200F_206C_200E_202D_200C_202A_202E(IGameObject P_0) - { - return P_0.Position; - } - - static float _200B_200D_202E_206D_206E_200F_200E_200B_206D_202D_202C_200E_200E_200B_206D_200E_200C_202B_206E_202E_202B_202A_202A_206D_206A_206B_206C_200B_206F_206A_202B_202B_202C_206B_200E_202A_206D_206A_200C_202B_202E(IGameObject P_0) - { - return P_0.HitboxRadius; - } - - static uint _200C_202B_200C_206A_206D_206A_202E_202B_206A_200F_200F_200F_202A_206F_206D_202B_200B_202C_200F_200D_206B_206D_200B_202E_202A_202A_202C_200C_206F_202E_200C_200F_202B_200D_200D_202C_202E_202E_200D_206A_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static float _200E_200F_200D_206C_206A_202C_206B_206F_202B_202C_200E_200D_206A_200E_206D_200B_200B_202A_206E_202A_202D_202E_206B_200C_200B_206A_200B_200C_206E_200B_200D_206D_200C_202B_206F_200F_200B_202B_200C_200E_202E(float P_0, float P_1) - { - return MathF.Atan2(P_0, P_1); - } - - static float _202B_200F_200E_206C_200E_206B_202C_202D_200B_200C_202A_206C_200F_200B_200D_200C_200B_206E_206D_202C_202D_200E_200D_202C_202A_206F_200B_200C_202B_206E_200B_202B_200F_206B_206A_200B_206E_202A_206D_206F_202E(float P_0, float P_1) - { - return MathF.Max(P_0, P_1); - } - - static float _202B_202D_206B_200B_200B_200B_202A_206A_202B_206F_202B_206F_206F_206D_206B_200C_206D_202A_206B_202D_200C_206B_206C_206F_206D_206B_202E_202A_202D_206A_206E_206F_200D_202C_200F_202A_206F_200D_206A_202E_202E(float P_0) - { - return MathF.Sin(P_0); - } - - static float _200B_202E_202E_206A_202B_202B_202A_200E_206A_202E_202D_200B_200C_202D_202D_202E_202C_200C_206C_200E_200F_206D_200D_200B_200C_202A_200B_206E_206E_202C_202D_202A_200B_202C_206C_206C_202C_202E_206D_202E_202E(float P_0) - { - return MathF.Cos(P_0); - } - - static void _202A_200F_206B_200E_200D_206D_206F_206F_200D_206A_206A_202C_206C_206A_202C_206F_206A_202D_200B_206E_206D_202D_202C_206E_202E_200E_200B_206E_202B_206D_202E_200B_200D_206B_206E_206D_206E_200B_206B_202D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _200F_200F_202B_206F_206E_202E_206A_206B_202B_200D_200F_200F_202A_206E_206A_200F_200E_200D_206B_202E_206E_206D_206B_202E_206C_200C_200E_202B_202E_200B_200F_202D_200B_200E_200E_206B_202B_200C_206E_206D_202E(System.Threading.Tasks.Task P_0) - { - return P_0.IsCompleted; - } - - static bool _202C_202E_202A_200B_206B_200F_200F_206E_202A_206B_202A_206A_202C_202A_200C_206A_202A_200C_200D_200C_202A_206E_206A_200D_206C_206E_206C_202C_202C_206E_206C_200D_202A_206D_202C_206A_202D_202C_202C_200E_202E(System.Threading.Tasks.Task P_0) - { - return P_0.IsCanceled; - } - - static bool _202E_202B_206F_200E_200D_206D_206B_206F_206B_200B_206F_206F_200D_200D_200C_200F_200C_206F_200D_200B_200C_202D_206D_202D_206A_200D_206D_206B_206E_202E_206C_202C_206B_202E_200E_200F_202E_200D_206F_206B_202E(System.Threading.Tasks.Task P_0) - { - return P_0.IsFaulted; - } - - static AggregateException _206B_206A_200F_206E_202E_206D_200C_202A_200E_202A_202A_206F_206C_200B_202C_202E_206A_202C_202B_200D_200C_206D_200E_202C_206E_202B_206B_202C_202E_200C_200D_206E_206A_200D_200E_206B_200E_202A_206D_200D_202E(System.Threading.Tasks.Task P_0) - { - return P_0.Exception; - } - - static void _200E_206D_206E_206A_200C_202B_206B_202D_206B_200C_200D_202C_206A_206B_200F_206C_200D_200F_206B_202B_206E_202E_206B_202A_200C_206F_206A_206D_200E_200F_202D_202E_206E_206B_202D_200B_202C_202D_202B_200E_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogDebug(P_1, P_2, P_3); - } - - static CancellationToken _202E_206E_200F_206F_200D_200C_206D_202A_200C_200D_202C_200F_202D_206F_206D_206F_206E_200D_206E_202C_200C_206E_200C_206F_206B_206B_200D_200C_200F_200D_202E_206E_202A_206F_202D_202C_206D_200C_206F_200D_202E(CancellationTokenSource P_0) - { - return P_0.Token; - } - - static bool _206D_202B_202E_200E_202C_206A_200E_200B_206E_202E_206F_206A_200C_206D_200B_206E_200F_202D_202C_206D_200D_206F_202A_200C_206D_200B_202E_200D_206A_206B_202D_202A_202A_206F_202D_200C_202C_206A_200B_200D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200F_200B_206B_200E_202D_202A_202C_200F_202B_206E_200D_200B_206D_206C_202C_206F_202D_200C_206F_202D_202A_202D_206F_202E_206B_206F_200B_202D_200B_200D_200E_202A_200F_200E_200E_200E_200F_206F_206E_206E_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _200B_206A_202A_202E_200F_206E_206D_200F_206D_206C_206E_202E_200F_206A_202A_206A_206E_200F_202A_206F_206A_206F_202A_206D_200E_200B_202A_200E_206C_202E_202B_206F_206D_206C_206C_200E_206F_200C_202D_202D_202E(CancellationTokenSource P_0) - { - P_0.Cancel(); - } - - void _206B_200B_202D_206F_206A_206E_202D_202A_206A_206E_206B_206B_200B_202B_202E_206C_202E_200B_200C_200C_200F_206A_200F_206C_206B_200C_206C_206C_200B_202D_206C_202C_206E_202A_200C_200F_206A_206F_206B_206F_202E() - { - ((CancellationTokenSource)(object)this).Dispose(); - } } diff --git a/Questionable/Questionable.Controller.CustomDelivery/DeliveryNpcApproachTask.cs b/Questionable/Questionable.Controller.CustomDelivery/DeliveryNpcApproachTask.cs index 54107db..b6143c2 100644 --- a/Questionable/Questionable.Controller.CustomDelivery/DeliveryNpcApproachTask.cs +++ b/Questionable/Questionable.Controller.CustomDelivery/DeliveryNpcApproachTask.cs @@ -1,109 +1,12 @@ -using System; -using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Questionable.Controller.Steps; namespace Questionable.Controller.CustomDelivery; internal sealed record DeliveryNpcApproachTask(ushort TerritoryId, Vector3 NpcPosition, uint NpcDataId) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202B_206C_200F_206B_200B_202D_200D_200F_200C_206C_202A_206C_200E_206B_206A_200F_202A_200F_202E_206D_206D_202A_200C_206C_200D_200C_200D_202A_202C_202D_206F_206C_202B_206F_200C_202E_202C_202E_202C_206E_202E(typeof(DeliveryNpcApproachTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(21, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(853725271)); - defaultInterpolatedStringHandler.AppendFormatted(NpcDataId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202A_202A_202C_202E_206B_206A_200C_200E_206E_206A_200D_206C_200E_202D_206E_206E_200F_200E_202C_200E_202D_206F_200D_200D_200D_206E_200D_202D_206F_206E_206A_202A_206E_206C_206E_202C_202B_200C_202E_200C_202E(); - _202C_206E_200C_200D_202B_206D_206E_206A_200B_206C_202E_206F_202E_200C_206F_200C_206D_202C_206D_206E_206E_206B_202A_202E_206E_202D_200C_202E_202C_206F_200E_202A_206C_202A_206D_206B_202A_206A_200F_200C_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2145374973)); - _202C_206E_200C_200D_202B_206D_206E_206A_200B_206C_202E_206F_202E_200C_206F_200C_206D_202C_206D_206E_206E_206B_202A_202E_206E_202D_200C_202E_202C_206F_200E_202A_206C_202A_206D_206B_202A_206A_200F_200C_202E(builder, TerritoryId.ToString()); - _202C_206E_200C_200D_202B_206D_206E_206A_200B_206C_202E_206F_202E_200C_206F_200C_206D_202C_206D_206E_206E_206B_202A_202E_206E_202D_200C_202E_202C_206F_200E_202A_206C_202A_206D_206B_202A_206A_200F_200C_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1319777869)); - _202C_206E_200C_200D_202B_206D_206E_206A_200B_206C_202E_206F_202E_200C_206F_200C_206D_202C_206D_206E_206E_206B_202A_202E_206E_202D_200C_202E_202C_206F_200E_202A_206C_202A_206D_206B_202A_206A_200F_200C_202E(builder, NpcPosition.ToString()); - _202C_206E_200C_200D_202B_206D_206E_206A_200B_206C_202E_206F_202E_200C_206F_200C_206D_202C_206D_206E_206E_206B_202A_202E_206E_202D_200C_202E_202C_206F_200E_202A_206C_202A_206D_206B_202A_206A_200F_200C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-323573035)); - _202C_206E_200C_200D_202B_206D_206E_206A_200B_206C_202E_206F_202E_200C_206F_200C_206D_202C_206D_206E_206E_206B_202A_202E_206E_202D_200C_202E_202C_206F_200E_202A_206C_202A_206D_206B_202A_206A_200F_200C_202E(builder, NpcDataId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(DeliveryNpcApproachTask? other) - { - int num = (((object)this == other) ? (-2005585280) : (-2005585273)); - while (true) - { - int num2 = num; - int num3 = -2005585274; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -2005585273; - break; - case 7: - num = ((!_200C_202D_202D_202D_200F_200C_200E_202E_200C_200E_206E_200E_200B_202E_206A_206A_202D_202D_200C_202E_200C_202D_206F_200E_202E_206D_200E_206A_202B_200F_200C_202A_206E_202B_206A_206A_200E_206A_200E_202B_202E(EqualityContract, other.EqualityContract)) ? (-2005585274) : (-2005585275)); - break; - case 1: - num = (((object)other == null) ? (-2005585274) : (-2005585279)); - break; - case 6: - return true; - case 5: - return EqualityComparer<uint>.Default.Equals(NpcDataId, other.NpcDataId); - case 0: - return false; - case 3: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? (-2005585274) : (-2005585278)); - break; - case 4: - num = ((!EqualityComparer<Vector3>.Default.Equals(NpcPosition, other.NpcPosition)) ? (-2005585274) : (-2005585277)); - break; - } - } - } - - bool IEquatable<DeliveryNpcApproachTask>.Equals(DeliveryNpcApproachTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202B_206C_200F_206B_200B_202D_200D_200F_200C_206C_202A_206C_200E_206B_206A_200F_202A_200F_202E_206D_206D_202A_200C_206C_200D_200C_200D_202A_202C_202D_206F_206C_202B_206F_200C_202E_202C_202E_202C_206E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _202A_202A_202C_202E_206B_206A_200C_200E_206E_206A_200D_206C_200E_202D_206E_206E_200F_200E_202C_200E_202D_206F_200D_200D_200D_206E_200D_202D_206F_206E_206A_202A_206E_206C_206E_202C_202B_200C_202E_200C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202C_206E_200C_200D_202B_206D_206E_206A_200B_206C_202E_206F_202E_200C_206F_200C_206D_202C_206D_206E_206E_206B_202A_202E_206E_202D_200C_202E_202C_206F_200E_202A_206C_202A_206D_206B_202A_206A_200F_200C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _200C_202D_202D_202D_200F_200C_200E_202E_200C_200E_206E_200E_200B_202E_206A_206A_202D_202D_200C_202E_200C_202D_206F_200E_202E_206D_200E_206A_202B_200F_200C_202A_206E_202B_206A_206A_200E_206A_200E_202B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"ApproachDeliveryNpc({NpcDataId})"; } } diff --git a/Questionable/Questionable.Controller.CustomDelivery/DeliveryPlannerService.cs b/Questionable/Questionable.Controller.CustomDelivery/DeliveryPlannerService.cs index 96bd44b..5d1f65c 100644 --- a/Questionable/Questionable.Controller.CustomDelivery/DeliveryPlannerService.cs +++ b/Questionable/Questionable.Controller.CustomDelivery/DeliveryPlannerService.cs @@ -1,7 +1,5 @@ using System; -using System.Collections; using System.Collections.Generic; -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using LLib.GameData; @@ -38,622 +36,233 @@ internal sealed class DeliveryPlannerService _logger = logger; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe DeliveryPlan? CreatePlan(int npcIndex, EDeliverySlot slot) { - int num = (_200D_206E_202C_202A_202A_202E_202E_206C_200D_200C_200E_200C_206B_206C_200D_200B_206B_206D_206C_202E_202A_206C_206E_200D_200B_206C_200D_200F_206B_202A_202C_202D_206A_206B_206F_200B_200F_202E_200F_200D_202E() ? (-1888935827) : (-1888935840)); - uint rowId = default(uint); - SatisfactionSupply subrow = default(SatisfactionSupply); - Configuration.CustomDeliveryConfiguration.ECollectabilityTier collectabilityTier = default(Configuration.CustomDeliveryConfiguration.ECollectabilityTier); - int num20 = default(int); - int num21 = default(int); - int num30 = default(int); - SatisfactionSupplyActions.NpcState npcState = default(SatisfactionSupplyActions.NpcState); - uint supplyIndex = default(uint); - SatisfactionNpc row = default(SatisfactionNpc); - uint num28 = default(uint); - uint num29 = default(uint); - Configuration.AchievementGoal value = default(Configuration.AchievementGoal); - int num27 = default(int); - int num9 = default(int); - int num19 = default(int); - VendorResolverService.RecipeInfo? recipe = default(VendorResolverService.RecipeInfo?); - List<IngredientPlan> list = default(List<IngredientPlan>); - ushort num7 = default(ushort); - ushort num18 = default(ushort); - ushort levelUnlock = default(ushort); - int satisfactionRequired = default(int); - int num26 = default(int); - VendorResolverService.IngredientInfo current = default(VendorResolverService.IngredientInfo); - int num15 = default(int); - int count = default(int); - int num14 = default(int); - VendorResolverService.VendorInfo? vendor = default(VendorResolverService.VendorInfo?); - while (true) + if (!InventoryHelper.HasFreeInventorySlot()) { - int num2 = num; - int num3 = -1888935819; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + _logger.LogWarning("No free inventory slots, cannot plan custom delivery"); + return null; + } + if (!IsNpcUnlocked(npcIndex)) + { + _logger.LogDebug("NPC {NpcIndex} prerequisite quest not complete", npcIndex); + return null; + } + SatisfactionSupplyActions.NpcState npcState = SatisfactionSupplyActions.GetNpcState(npcIndex); + int remainingAllowances = SatisfactionSupplyActions.GetRemainingAllowances(); + uint supplySeed = SatisfactionSupplyActions.GetSupplySeed(); + if (npcState.Rank <= 0) + { + _logger.LogDebug("NPC {NpcIndex} is locked (rank {Rank})", npcIndex, npcState.Rank); + return null; + } + if (remainingAllowances <= 0) + { + _logger.LogDebug("No remaining weekly allowances"); + return null; + } + if (!_dataManager.GetExcelSheet<SatisfactionNpc>().TryGetRow((uint)(npcIndex + 1), out var row)) + { + _logger.LogWarning("SatisfactionNpc row not found for index {NpcIndex}", npcIndex); + return null; + } + ushort levelUnlock = row.LevelUnlock; + if (!HasJobAtLevel(slot, levelUnlock)) + { + _logger.LogDebug("No job at level {Level} for slot {Slot}, NPC {NpcIndex}", levelUnlock, slot, npcIndex); + return null; + } + uint supplyIndex = (uint)row.SatisfactionNpcParams[npcState.Rank].SupplyIndex; + uint num = _supplyHelper.CalculateRequestedItems(supplyIndex, supplySeed)[(int)slot]; + if (num == uint.MaxValue) + { + _logger.LogDebug("No item predicted for NPC {NpcIndex} slot {Slot}", npcIndex, slot); + return null; + } + if (!_dataManager.GetSubrowExcelSheet<SatisfactionSupply>().TryGetSubrow(supplyIndex, (ushort)num, out var subrow)) + { + _logger.LogWarning("SatisfactionSupply subrow ({SupplyIndex}, {SubrowIndex}) not found", supplyIndex, num); + return null; + } + uint rowId = subrow.Item.RowId; + ushort num2 = _configuration.CustomDeliveries.CollectabilityTier switch + { + Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Low => subrow.CollectabilityLow, + Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Mid => subrow.CollectabilityMid, + _ => subrow.CollectabilityHigh, + }; + if (rowId == 0) + { + _logger.LogWarning("SatisfactionSupply subrow ({SupplyIndex}, {SubrowIndex}) has no item", supplyIndex, num); + return null; + } + int num3 = row.DeliveriesPerWeek - npcState.UsedDeliveries; + int num4 = Math.Min(num3, remainingAllowances); + if (num4 <= 0) + { + _logger.LogDebug("No deliveries available for NPC {NpcIndex} (npc remaining: {NpcRemaining}, global remaining: {GlobalRemaining})", npcIndex, num3, remainingAllowances); + return null; + } + int satisfactionRequired = row.SatisfactionNpcParams[npcState.Rank].SatisfactionRequired; + if (satisfactionRequired > 0) + { + Configuration.CustomDeliveryConfiguration.ECollectabilityTier collectabilityTier = _configuration.CustomDeliveries.CollectabilityTier; + int num5 = _rewardCalculator.CalculateSatisfactionPerDelivery(subrow.Reward.RowId, subrow.IsBonus, collectabilityTier); + if (num5 > 0) { - default: - continue; - case 14: - rowId = subrow.Item.RowId; - collectabilityTier = _configuration.CustomDeliveries.CollectabilityTier; - num = ((collectabilityTier == Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Mid) ? (-1888935855) : (-1888935835)); - continue; - case 23: - _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1441943308), new object[3] { npcIndex, num20, num21 }); - return null; - case 1: - _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-325747451), new object[1] { npcIndex }); - return null; - case 30: - { - uint rowId2 = subrow.Reward.RowId; - bool isBonus = subrow.IsBonus; - num30 = _rewardCalculator.MaxDeliveriesBeforeOvercap(rowId2, isBonus, _configuration.CustomDeliveries.CollectabilityTier); - num = ((num30 > 0) ? (-1888935826) : (-1888935820)); - continue; - } - case 39: - _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(72727050), new object[1] { npcIndex }); - return null; - case 31: - _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(350000111), new object[2] { npcIndex, npcState.Rank }); - return null; - case 40: - supplyIndex = (uint)row.SatisfactionNpcParams[npcState.Rank].SupplyIndex; - num28 = _202C_206E_206A_202A_206E_206D_206D_206C_200E_200C_206B_200C_202B_202E_200C_200B_206A_200D_202A_202D_202D_206D_206E_206A_206D_206F_200C_206C_206B_206B_202B_202E_206D_206A_206E_202A_202C_206F_200B_200E_202E(_supplyHelper, supplyIndex, num29)[(int)slot]; - num = ((num28 != uint.MaxValue) ? (-1888935833) : (-1888935823)); - continue; - case 6: - _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1592384275), new object[3] { npcIndex, npcState.UsedDeliveries, value.TargetCount }); - return null; - case 18: - num = (_dataManager.GetSubrowExcelSheet<SatisfactionSupply>().TryGetSubrow(supplyIndex, (ushort)num28, out subrow) ? (-1888935813) : (-1888935852)); - continue; - case 29: - num = ((num27 >= num9) ? (-1888935844) : (-1888935810)); - continue; - case 13: - { - ExcelSheet<SatisfactionNpc> excelSheet = _dataManager.GetExcelSheet<SatisfactionNpc>(); - num3 = 1; - num4 = npcIndex; - int num22 = num4 ^ num3; - int num23 = num4 & num3; - num = (excelSheet.TryGetRow((uint)(num22 + (num23 + num23)), out row) ? (-1888935842) : (-1888935849)); - continue; - } - case 35: - num = ((_configuration.CustomDeliveries.ScripOvercapMode == Configuration.CustomDeliveryConfiguration.EScripOvercapMode.Ignore) ? (-1888935856) : (-1888935829)); - continue; - case 2: - num19 = (int)value.TargetCount - npcState.UsedDeliveries; - num = ((num19 <= 0) ? (-1888935821) : (-1888935836)); - continue; - case 16: - num = ((collectabilityTier != Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Low) ? (-1888935824) : (-1888935818)); - continue; - case 37: - recipe = null; - list = new List<IngredientPlan>(); - if (slot == EDeliverySlot.Craft) + int num6 = (satisfactionRequired - npcState.SatisfactionCurrent + num5 - 1) / num5; + if (num6 > 0 && num6 < num4) { - num = -1888935831; - continue; + _logger.LogDebug("Capping deliveries from {Original} to {Capped} to avoid rank-up mid-batch (sat: {Current}/{Required}, per delivery: {PerDelivery})", num4, num6, npcState.SatisfactionCurrent, satisfactionRequired, num5); + num4 = num6; } - break; - case 15: - _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-349074918), Array.Empty<object>()); - return null; - case 33: - _206C_206F_206E_206A_206F_200F_202B_206D_206E_200D_202E_202D_206D_200B_200F_202B_202D_200F_200D_206C_202A_200C_200E_200E_206C_200D_206B_200F_206D_200E_202A_206C_200D_200B_202B_200B_202A_202C_202C_200F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-583199100), new object[2] { supplyIndex, num28 }); - return null; - case 32: - num7 = num18; - num = ((rowId != 0) ? (-1888935837) : (-1888935811)); - continue; - case 36: - num18 = subrow.CollectabilityMid; - num = -1888935851; - continue; - case 19: - _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(758096436), new object[3] { levelUnlock, slot, npcIndex }); - return null; - case 22: - num20 = row.DeliveriesPerWeek - npcState.UsedDeliveries; - num9 = _202E_200E_200B_202D_200C_200D_206B_202B_206F_202D_206F_200D_200E_200C_206B_202C_206A_202A_200F_206A_202A_200B_200B_202E_206F_202A_200C_200D_200D_200D_200D_206B_202E_202A_200B_206A_200C_206D_206D_200F_202E(num20, num21); - num = ((num9 > 0) ? (-1888935822) : (-1888935838)); - continue; - case 17: - num9 = _202E_200E_200B_202D_200C_200D_206B_202B_206F_202D_206F_200D_200E_200C_206B_202C_206A_202A_200F_206A_202A_200B_200B_202E_206F_202A_200C_200D_200D_200D_200D_206B_202E_202A_200B_206A_200C_206D_206D_200F_202E(num9, num19); - num = -1888935850; - continue; - case 27: - num = ((num30 >= num9) ? (-1888935856) : (-1888935812)); - continue; - case 9: - _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-252217524), new object[3] { num9, num30, npcIndex }); - num9 = num30; - num = -1888935856; - continue; - case 43: - levelUnlock = row.LevelUnlock; - num = (HasJobAtLevel(slot, levelUnlock) ? (-1888935843) : (-1888935834)); - continue; - case 8: - _206C_206F_206E_206A_206F_200F_202B_206D_206E_200D_202E_202D_206D_200B_200F_202B_202D_200F_200D_206C_202A_200C_200E_200E_206C_200D_206B_200F_206D_200E_202A_206C_200D_200B_202B_200B_202A_202C_202C_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1074922241), new object[2] { supplyIndex, num28 }); - return null; - case 12: - npcState = _200F_206F_206A_200F_202C_206F_206E_200E_202B_200C_200B_200D_200B_202C_206D_202B_206E_200B_202C_202D_202D_200D_206D_202E_200B_206E_202A_202D_202A_206E_202D_200B_202E_202E_202A_200B_202B_202D_202E_206C_202E(npcIndex); - num21 = _206F_206A_202D_202B_200F_206F_202E_206D_206F_200D_202D_206C_206C_206D_202C_206C_202B_202E_206D_202B_200D_202B_200D_200E_202E_206D_206B_206D_200E_202A_202A_206A_200C_202A_206F_202B_206C_206D_200E_200D_202E(); - num29 = _200C_206C_200F_202B_206A_206F_200B_206C_202A_206F_206F_206C_206B_202B_200F_202A_206D_206A_200D_206E_202A_206A_206D_206C_206D_202C_206F_200D_202E_200D_200E_202D_200E_206F_202C_206E_202C_202E_202A_206F_202E(); - num = ((npcState.Rank > 0) ? (-1888935853) : (-1888935830)); - continue; - case 10: - num = -1888935840; - continue; - case 38: - num = ((num21 > 0) ? (-1888935816) : (-1888935814)); - continue; - case 11: - _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1847422502), new object[5] { num9, num27, npcState.SatisfactionCurrent, satisfactionRequired, num26 }); - num9 = num27; - num = -1888935844; - continue; - case 0: - num27 = (satisfactionRequired - npcState.SatisfactionCurrent + num26 - 1) / num26; - num = ((num27 <= 0) ? (-1888935844) : (-1888935832)); - continue; - case 34: - _206C_206F_206E_206A_206F_200F_202B_206D_206E_200D_202E_202D_206D_200B_200F_202B_202D_200F_200D_206C_202A_200C_200E_200E_206C_200D_206B_200F_206D_200E_202A_206C_200D_200B_202B_200B_202A_202C_202C_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1005271434), new object[1] { npcIndex }); - return null; - case 28: - recipe = _vendorResolver.ResolveRecipe(rowId); - num = (recipe.HasValue ? (-1888935828) : (-1888935825)); - continue; - case 24: - num = (IsNpcUnlocked(npcIndex) ? (-1888935815) : (-1888935854)); - continue; - case 42: - { - Configuration.CustomDeliveryConfiguration.ECollectabilityTier collectabilityTier2 = _configuration.CustomDeliveries.CollectabilityTier; - num26 = _rewardCalculator.CalculateSatisfactionPerDelivery(subrow.Reward.RowId, subrow.IsBonus, collectabilityTier2); - num = ((num26 <= 0) ? (-1888935844) : (-1888935819)); - continue; } - case 21: - _206C_206F_206E_206A_206F_200F_202B_206D_206E_200D_202E_202D_206D_200B_200F_202B_202D_200F_200D_206C_202A_200C_200E_200E_206C_200D_206B_200F_206D_200E_202A_206C_200D_200B_202B_200B_202A_202C_202C_200F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(929546920), Array.Empty<object>()); - return null; - case 41: + } + ushort key = (ushort)(npcIndex + 1); + if (_configuration.CustomDeliveries.AchievementGoals.TryGetValue(key, out Configuration.AchievementGoal value) && value.Active) + { + int num7 = (int)value.TargetCount - npcState.UsedDeliveries; + if (num7 <= 0) { - num3 = 1; - num4 = npcIndex; - int num24 = num4 ^ num3; - int num25 = num4 & num3; - ushort key = (ushort)(num24 + (num25 + num25)); - num = ((!_configuration.CustomDeliveries.AchievementGoals.TryGetValue(key, out value)) ? (-1888935850) : (-1888935839)); - continue; + _logger.LogDebug("Achievement goal already met for NPC {NpcIndex} (used: {Used}, target: {Target})", npcIndex, npcState.UsedDeliveries, value.TargetCount); + return null; } - case 7: - satisfactionRequired = row.SatisfactionNpcParams[npcState.Rank].SatisfactionRequired; - num = ((satisfactionRequired <= 0) ? (-1888935844) : (-1888935841)); - continue; - case 26: - _202E_202D_202C_206E_202C_206A_206E_202D_202E_202D_206C_200B_200E_202E_206C_200B_206A_202E_206B_206D_206B_200E_200B_200E_206B_206D_202A_206F_200C_202D_206E_206D_206C_206A_206B_200F_202E_200E_202B_200E_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-375018658), new object[1] { rowId }); - return null; - case 20: - num = ((!value.Active) ? (-1888935850) : (-1888935817)); - continue; - case 3: - num18 = subrow.CollectabilityLow; - num = -1888935851; - continue; - case 5: - num18 = subrow.CollectabilityHigh; - num = -1888935851; - continue; - case 4: - _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1585031772), new object[2] { npcIndex, slot }); - return null; - case 25: + num4 = Math.Min(num4, num7); + } + if (_configuration.CustomDeliveries.ScripOvercapMode != Configuration.CustomDeliveryConfiguration.EScripOvercapMode.Ignore) + { + uint rowId2 = subrow.Reward.RowId; + bool isBonus = subrow.IsBonus; + int num8 = _rewardCalculator.MaxDeliveriesBeforeOvercap(rowId2, isBonus, _configuration.CustomDeliveries.CollectabilityTier); + if (num8 <= 0) { - int inventoryItemCount = InventoryManager.Instance()->GetInventoryItemCount(rowId, isHq: false, checkEquipped: true, checkArmory: true, (short)num7); - int num8 = num9; - num3 = inventoryItemCount; + _logger.LogDebug("Scrip overcap: blocking delivery for NPC {NpcIndex}", npcIndex); + return null; + } + if (num8 < num4) + { + _logger.LogDebug("Scrip overcap: capping delivery count from {Original} to {Capped} for NPC {NpcIndex}", num4, num8, npcIndex); num4 = num8; - int num10 = _200C_206C_200D_202C_202B_202C_206A_206E_200E_200E_202D_202A_202C_206D_206B_206D_206D_200B_202B_206A_206D_202D_206D_200C_206C_200D_200E_200D_200C_202C_206D_206F_206B_206D_202A_200C_202B_200B_200C_206A_202E(0, ~(~num4 + num3)); - IEnumerator<VendorResolverService.IngredientInfo> enumerator = recipe.Value.Ingredients.GetEnumerator(); - try - { - num = -2147286294; - while (true) - { - int num11 = num; - num3 = -2147286291; - num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) - { - case 2: - num = -2147286294; - break; - case 1: - { - current = enumerator.Current; - num15 = num10 * current.CountPerCraft; - count = ((ItemHandle)current.ItemId).GetCount(); - int num16 = num15; - num3 = count; - num4 = num16; - num14 = _200C_206C_200D_202C_202B_202C_206A_206E_200E_200E_202D_202A_202C_206D_206B_206D_206D_200B_202B_206A_206D_202D_206D_200C_206C_200D_200E_200D_200C_202C_206D_206F_206B_206D_202A_200C_202B_200B_200C_206A_202E(0, ~(~num4 + num3)); - vendor = null; - num = ((num14 <= 0) ? (-2147286293) : (-2147286291)); - break; - } - case 3: - num = (vendor.HasValue ? (-2147286296) : (-2147286299)); - break; - case 6: - num = ((num14 <= 0) ? (-2147286296) : (-2147286290)); - break; - case 7: - num = (_202D_202B_206D_202B_202E_200E_200E_206F_202C_200E_200F_200E_200D_206B_202A_202C_206B_202E_202D_200F_200E_206C_200D_200D_202E_206C_202A_206A_200E_200D_202E_200E_206A_202E_206D_206D_206B_206B_202C_202B_202E((IEnumerator)enumerator) ? (-2147286292) : (-2147286295)); - break; - case 5: - list.Add(new IngredientPlan - { - ItemId = current.ItemId, - TotalNeeded = num15, - InInventory = count, - ToBuy = num14, - Vendor = vendor - }); - num = -2147286294; - break; - case 0: - vendor = _vendorResolver.ResolveVendor(current.ItemId); - num = -2147286293; - break; - case 8: - _206C_206F_206E_206A_206F_200F_202B_206D_206E_200D_202E_202D_206D_200B_200F_202B_202D_200F_200D_206C_202A_200C_200E_200E_206C_200D_206B_200F_206D_200E_202A_206C_200D_200B_202B_200B_202A_202C_202C_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1168604579), new object[3] { rowId, num14, current.ItemId }); - return null; - case 4: - goto end_IL_097f; - } - continue; - end_IL_097f: - break; - } - } - finally - { - num = ((enumerator == null) ? 903605072 : 903605073); - while (true) - { - int num17 = num; - num3 = 903605072; - num4 = num17; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 903605073; - break; - case 1: - _206B_202C_200B_202D_202C_206A_202A_202E_200B_202D_200E_202B_202A_200D_206A_206E_202D_202A_202A_206D_200E_206D_202A_206B_206C_206A_200F_200E_206B_202E_200D_200E_206D_200D_206C_202E_202E_202D_206D_200C_202E((IDisposable)enumerator); - num = 903605072; - break; - case 0: - goto end_IL_0b81; - } - continue; - end_IL_0b81: - break; - } - } - break; } + } + VendorResolverService.RecipeInfo? recipe = null; + List<IngredientPlan> list = new List<IngredientPlan>(); + if (slot == EDeliverySlot.Craft) + { + recipe = _vendorResolver.ResolveRecipe(rowId); + if (!recipe.HasValue) + { + _logger.LogError("Cannot resolve recipe for craft item {ItemId}", rowId); + return null; + } + int inventoryItemCount = InventoryManager.Instance()->GetInventoryItemCount(rowId, isHq: false, checkEquipped: true, checkArmory: true, (short)num2); + int num9 = Math.Max(0, num4 - inventoryItemCount); + foreach (VendorResolverService.IngredientInfo ingredient in recipe.Value.Ingredients) + { + int num10 = num9 * ingredient.CountPerCraft; + int count = ((ItemHandle)ingredient.ItemId).GetCount(); + int num11 = Math.Max(0, num10 - count); + VendorResolverService.VendorInfo? vendor = null; + if (num11 > 0) + { + vendor = _vendorResolver.ResolveVendor(ingredient.ItemId); + } + if (num11 > 0 && !vendor.HasValue) + { + _logger.LogWarning("Cannot plan craft delivery for item {ItemId}: missing {ToBuy}x ingredient {IngredientId} with no gil vendor", rowId, num11, ingredient.ItemId); + return null; + } + list.Add(new IngredientPlan + { + ItemId = ingredient.ItemId, + TotalNeeded = num10, + InInventory = count, + ToBuy = num11, + Vendor = vendor + }); } - break; } DeliveryPlan result = new DeliveryPlan { NpcIndex = npcIndex, Slot = slot, ItemId = rowId, - Collectability = num7, - DeliveryCount = num9, + Collectability = num2, + DeliveryCount = num4, Recipe = recipe, IngredientPlans = list }; - int num31 = 0; - using (List<IngredientPlan>.Enumerator enumerator2 = list.GetEnumerator()) + int num12 = 0; + foreach (IngredientPlan item in list) { - num = -832133554; - while (true) - { - int num32 = num; - int num3 = -832133554; - int num4 = num32; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = (enumerator2.MoveNext() ? (-832133553) : (-832133555)); - break; - case 1: - { - IngredientPlan current2 = enumerator2.Current; - num31 += current2.ToBuy; - num = -832133554; - break; - } - case 2: - num = -832133554; - break; - case 3: - goto end_IL_0c22; - } - continue; - end_IL_0c22: - break; - } + num12 += item.ToBuy; } - _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-251047374), new object[5] { npcIndex, slot, rowId, num9, num31 }); + _logger.LogDebug("Delivery plan: NPC {NpcIndex} slot {Slot}, item {ItemId} x{Count}, ingredients to buy: {ToBuy}", npcIndex, slot, rowId, num4, num12); return result; } public bool IsNpcUnlocked(int npcIndex) { - ExcelSheet<SatisfactionNpc> excelSheet = _dataManager.GetExcelSheet<SatisfactionNpc>(); - int num = 1; - int num2 = npcIndex; - int num3 = num2 ^ num; - int num4 = num2 & num; - SatisfactionNpc row; - int num5 = (excelSheet.TryGetRow((uint)(num3 + (num4 + num4)), out row) ? (-1323628219) : (-1323628220)); - uint rowId = default(uint); - while (true) + if (!_dataManager.GetExcelSheet<SatisfactionNpc>().TryGetRow((uint)(npcIndex + 1), out var row)) { - int num6 = num5; - num = -1323628219; - num2 = num6; - int num7 = num2 + num; - int num8 = num2 & num; - switch (num7 - (num8 + num8)) - { - case 3: - num5 = -1323628220; - break; - case 2: - return true; - case 0: - rowId = row.QuestRequired.RowId; - num5 = ((rowId != 0) ? (-1323628223) : (-1323628217)); - break; - case 1: - return false; - case 4: - return QuestManager.IsQuestComplete((ushort)rowId); - } + return false; } + uint rowId = row.QuestRequired.RowId; + if (rowId == 0) + { + return true; + } + return QuestManager.IsQuestComplete((ushort)rowId); } private bool HasJobAtLevel(EDeliverySlot slot, ushort requiredLevel) { ExcelSheet<ClassJob> excelSheet = _dataManager.GetExcelSheet<ClassJob>(); - int num; - EClassJob[] array = default(EClassJob[]); - int num8 = default(int); - ClassJob row = default(ClassJob); - EClassJob[] array2; - switch (slot) + EClassJob[] array = slot switch { - default: - num = 208972121; - goto IL_0034; - case EDeliverySlot.Fish: - array = new EClassJob[1] { EClassJob.Fisher }; - num = 208972119; - goto IL_0034; - case EDeliverySlot.Gather: - goto IL_00fb; - case EDeliverySlot.Craft: - goto IL_0192; - IL_0034: - while (true) + EDeliverySlot.Craft => new EClassJob[8] { - int num2 = num; - int num3 = 208972117; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - goto IL_008a; - case 12: - num = 208972112; - break; - case 10: - goto IL_00c2; - case 7: - goto end_IL_0034; - case 6: - goto IL_00fb; - case 2: - array = array; - num8 = 0; - num = 208972127; - break; - case 3: - num = 208972121; - break; - case 1: - { - int num7 = num8; - num3 = 1; - num4 = num7; - num8 = (num4 | num3) + (num4 & num3); - num = 208972127; - break; - } - case 11: - return false; - case 8: - return true; - case 5: - array = Array.Empty<EClassJob>(); - num = 208972119; - break; - case 0: - goto IL_0168; - case 9: - goto IL_0192; - } - continue; - IL_0168: - num = ((_202D_206B_206F_200C_200E_200F_202A_206D_202D_202D_202C_202D_206F_206F_202D_202E_202A_206B_202A_202D_206E_202D_200D_200D_202D_202A_200C_200B_200E_202E_200D_206A_206D_202B_206F_202D_200B_200E_206F_202A_202E((int)row.ExpArrayIndex) < requiredLevel) ? 208972116 : 208972125); - continue; - IL_00c2: - num = ((num8 < array.Length) ? 208972113 : 208972126); - continue; - IL_008a: - EClassJob rowId = array[num8]; - num = ((!excelSheet.TryGetRow((uint)rowId, out row)) ? 208972116 : 208972117); - continue; - end_IL_0034: - break; - } - goto case EDeliverySlot.Fish; - IL_0192: - array2 = new EClassJob[8]; - _202A_200D_202C_202B_202D_202B_202B_202C_200F_202A_206F_200B_200D_202E_206E_202A_200B_200B_202D_206E_206B_202C_206C_200D_202A_206A_206F_200B_202E_202E_200E_200B_206A_200C_206F_206D_202B_202B_206C_206C_202E((Array)array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - array = array2; - num = 208972119; - goto IL_0034; - IL_00fb: - array = new EClassJob[2] + EClassJob.Carpenter, + EClassJob.Blacksmith, + EClassJob.Armorer, + EClassJob.Goldsmith, + EClassJob.Leatherworker, + EClassJob.Weaver, + EClassJob.Alchemist, + EClassJob.Culinarian + }, + EDeliverySlot.Gather => new EClassJob[2] { EClassJob.Miner, EClassJob.Botanist - }; - num = 208972119; - goto IL_0034; + }, + EDeliverySlot.Fish => new EClassJob[1] { EClassJob.Fisher }, + _ => Array.Empty<EClassJob>(), + }; + foreach (EClassJob rowId in array) + { + if (excelSheet.TryGetRow((uint)rowId, out var row) && PlayerStateHelper.GetClassJobLevel(row.ExpArrayIndex) >= requiredLevel) + { + return true; + } } + return false; } public EDeliverySlot? AutoSelectSlot(int npcIndex, ArtisanIpc artisanIpc, AutoHookIpc autoHookIpc) { - int num = ((!artisanIpc.IsAvailable()) ? 1675924989 : 1675924988); - while (true) + if (artisanIpc.IsAvailable() && CreatePlan(npcIndex, EDeliverySlot.Craft) != null) { - int num2 = num; - int num3 = 1675924986; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = ((!autoHookIpc.IsAvailable()) ? 1675924990 : 1675924985); - break; - case 4: - return null; - case 1: - return EDeliverySlot.Gather; - case 2: - num = 1675924988; - break; - case 8: - return EDeliverySlot.Fish; - case 3: - num = ((CreatePlan(npcIndex, EDeliverySlot.Fish) == null) ? 1675924990 : 1675924978); - break; - case 7: - num = ((CreatePlan(npcIndex, EDeliverySlot.Gather) == null) ? 1675924986 : 1675924987); - break; - case 5: - return EDeliverySlot.Craft; - case 6: - num = ((CreatePlan(npcIndex, EDeliverySlot.Craft) == null) ? 1675924989 : 1675924991); - break; - } + return EDeliverySlot.Craft; } - } - - static bool _200D_206E_202C_202A_202A_202E_202E_206C_200D_200C_200E_200C_206B_206C_200D_200B_206B_206D_206C_202E_202A_206C_206E_200D_200B_206C_200D_200F_206B_202A_202C_202D_206A_206B_206F_200B_200F_202E_200F_200D_202E() - { - return InventoryHelper.HasFreeInventorySlot(); - } - - static void _206C_206F_206E_206A_206F_200F_202B_206D_206E_200D_202E_202D_206D_200B_200F_202B_202D_200F_200D_206C_202A_200C_200E_200E_206C_200D_206B_200F_206D_200E_202A_206C_200D_200B_202B_200B_202A_202C_202C_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static void _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static SatisfactionSupplyActions.NpcState _200F_206F_206A_200F_202C_206F_206E_200E_202B_200C_200B_200D_200B_202C_206D_202B_206E_200B_202C_202D_202D_200D_206D_202E_200B_206E_202A_202D_202A_206E_202D_200B_202E_202E_202A_200B_202B_202D_202E_206C_202E(int P_0) - { - return SatisfactionSupplyActions.GetNpcState(P_0); - } - - static int _206F_206A_202D_202B_200F_206F_202E_206D_206F_200D_202D_206C_206C_206D_202C_206C_202B_202E_206D_202B_200D_202B_200D_200E_202E_206D_206B_206D_200E_202A_202A_206A_200C_202A_206F_202B_206C_206D_200E_200D_202E() - { - return SatisfactionSupplyActions.GetRemainingAllowances(); - } - - static uint _200C_206C_200F_202B_206A_206F_200B_206C_202A_206F_206F_206C_206B_202B_200F_202A_206D_206A_200D_206E_202A_206A_206D_206C_206D_202C_206F_200D_202E_200D_200E_202D_200E_206F_202C_206E_202C_202E_202A_206F_202E() - { - return SatisfactionSupplyActions.GetSupplySeed(); - } - - static uint[] _202C_206E_206A_202A_206E_206D_206D_206C_200E_200C_206B_200C_202B_202E_200C_200B_206A_200D_202A_202D_202D_206D_206E_206A_206D_206F_200C_206C_206B_206B_202B_202E_206D_206A_206E_202A_202C_206F_200B_200E_202E(SatisfactionSupplyHelper P_0, uint P_1, uint P_2) - { - return P_0.CalculateRequestedItems(P_1, P_2); - } - - static int _202E_200E_200B_202D_200C_200D_206B_202B_206F_202D_206F_200D_200E_200C_206B_202C_206A_202A_200F_206A_202A_200B_200B_202E_206F_202A_200C_200D_200D_200D_200D_206B_202E_202A_200B_206A_200C_206D_206D_200F_202E(int P_0, int P_1) - { - return Math.Min(P_0, P_1); - } - - static void _202E_202D_202C_206E_202C_206A_206E_202D_202E_202D_206C_200B_200E_202E_206C_200B_206A_202E_206B_206D_206B_200E_200B_200E_206B_206D_202A_206F_200C_202D_206E_206D_206C_206A_206B_200F_202E_200E_202B_200E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogError(P_1, P_2); - } - - static int _200C_206C_200D_202C_202B_202C_206A_206E_200E_200E_202D_202A_202C_206D_206B_206D_206D_200B_202B_206A_206D_202D_206D_200C_206C_200D_200E_200D_200C_202C_206D_206F_206B_206D_202A_200C_202B_200B_200C_206A_202E(int P_0, int P_1) - { - return Math.Max(P_0, P_1); - } - - static bool _202D_202B_206D_202B_202E_200E_200E_206F_202C_200E_200F_200E_200D_206B_202A_202C_206B_202E_202D_200F_200E_206C_200D_200D_202E_206C_202A_206A_200E_200D_202E_200E_206A_202E_206D_206D_206B_206B_202C_202B_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206B_202C_200B_202D_202C_206A_202A_202E_200B_202D_200E_202B_202A_200D_206A_206E_202D_202A_202A_206D_200E_206D_202A_206B_206C_206A_200F_200E_206B_202E_200D_200E_206D_200D_206C_202E_202E_202D_206D_200C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _202A_200D_202C_202B_202D_202B_202B_202C_200F_202A_206F_200B_200D_202E_206E_202A_200B_200B_202D_206E_206B_202C_206C_200D_202A_206A_206F_200B_202E_202E_200E_200B_206A_200C_206F_206D_202B_202B_206C_206C_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); - } - - static short _202D_206B_206F_200C_200E_200F_202A_206D_202D_202D_202C_202D_206F_206F_202D_202E_202A_206B_202A_202D_206E_202D_200D_200D_202D_202A_200C_200B_200E_202E_200D_206A_206D_202B_206F_202D_200B_200E_206F_202A_202E(int P_0) - { - return PlayerStateHelper.GetClassJobLevel(P_0); + if (CreatePlan(npcIndex, EDeliverySlot.Gather) != null) + { + return EDeliverySlot.Gather; + } + if (autoHookIpc.IsAvailable() && CreatePlan(npcIndex, EDeliverySlot.Fish) != null) + { + return EDeliverySlot.Fish; + } + return null; } } diff --git a/Questionable/Questionable.Controller.CustomDelivery/DeliveryRewardCalculator.cs b/Questionable/Questionable.Controller.CustomDelivery/DeliveryRewardCalculator.cs index 18547cc..8deb364 100644 --- a/Questionable/Questionable.Controller.CustomDelivery/DeliveryRewardCalculator.cs +++ b/Questionable/Questionable.Controller.CustomDelivery/DeliveryRewardCalculator.cs @@ -1,118 +1,14 @@ using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Plugin.Services; using LLib.Inventory; -using Lumina.Excel; using Lumina.Excel.Sheets; namespace Questionable.Controller.CustomDelivery; internal sealed class DeliveryRewardCalculator(IDataManager dataManager) { - internal record struct CurrencyReward(uint CurrencyItemId, string CurrencyName, int AmountPerDelivery) - { - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override readonly string ToString() - { - StringBuilder stringBuilder = _206A_200C_202B_206F_202E_202C_202C_200D_200D_206E_200C_206C_202C_200F_206F_206E_202C_200D_200C_202E_206A_206A_206C_202A_206C_206A_200E_200D_202E_200B_206A_202D_202A_206A_206B_206F_206C_200B_206B_202B_202E(); - _200C_200E_206E_206A_206D_202A_206B_202A_206A_202D_206F_200F_202E_200B_200B_206E_200F_202C_206E_206F_200D_200B_206E_202C_200B_202A_200B_200F_202A_200F_206E_200C_206B_200F_202A_200F_200E_206A_202C_202B_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(175214569)); - _200C_200E_206E_206A_206D_202A_206B_202A_206A_202D_206F_200F_202E_200B_200B_206E_200F_202C_206E_206F_200D_200B_206E_202C_200B_202A_200B_200F_202A_200F_206E_200C_206B_200F_202A_200F_200E_206A_202C_202B_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125)); - int num = ((!PrintMembers(stringBuilder)) ? 851670769 : 851670770); - while (true) - { - int num2 = num; - int num3 = 851670771; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 851670770; - break; - case 2: - _206E_200E_200B_200B_200F_206E_202C_206A_200B_200B_206C_206C_202C_200E_206A_202A_206D_202E_202C_206C_200F_206B_202C_206A_206C_202B_200B_200E_202B_200B_200E_202C_202B_206F_202E_200D_202D_202C_206B_206D_202E(stringBuilder, '}'); - return _200C_200D_200C_200E_206A_202A_206A_202A_202B_200B_200D_200E_200C_200F_200B_200D_206B_206D_200F_200D_206B_206B_206C_202E_206F_202E_200E_200C_200E_206F_200B_206B_202A_206A_206D_206C_200C_206C_206A_206E_202E((object)stringBuilder); - case 1: - _206E_200E_200B_200B_200F_206E_202C_206A_200B_200B_206C_206C_202C_200E_206A_202A_206D_202E_202C_206C_200F_206B_202C_206A_206C_202B_200B_200E_202B_200B_200E_202C_202B_206F_202E_200D_202D_202C_206B_206D_202E(stringBuilder, ' '); - num = 851670769; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private readonly bool PrintMembers(StringBuilder builder) - { - _200C_200E_206E_206A_206D_202A_206B_202A_206A_202D_206F_200F_202E_200B_200B_206E_200F_202C_206E_206F_200D_200B_206E_202C_200B_202A_200B_200F_202A_200F_206E_200C_206B_200F_202A_200F_200E_206A_202C_202B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(557355409)); - _200C_200E_206E_206A_206D_202A_206B_202A_206A_202D_206F_200F_202E_200B_200B_206E_200F_202C_206E_206F_200D_200B_206E_202C_200B_202A_200B_200F_202A_200F_206E_200C_206B_200F_202A_200F_200E_206A_202C_202B_202E(builder, CurrencyItemId.ToString()); - _200C_200E_206E_206A_206D_202A_206B_202A_206A_202D_206F_200F_202E_200B_200B_206E_200F_202C_206E_206F_200D_200B_206E_202C_200B_202A_200B_200F_202A_200F_206E_200C_206B_200F_202A_200F_200E_206A_202C_202B_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1370044589)); - _200B_206F_200D_202B_202B_200C_206C_206F_202B_202C_206D_200F_206F_200D_206D_206C_200F_206B_206A_206A_200F_202E_206B_202B_206B_200D_206E_202B_206A_200E_206F_202E_206B_206C_202B_200F_200F_202D_200E_206C_202E(builder, (object)CurrencyName); - _200C_200E_206E_206A_206D_202A_206B_202A_206A_202D_206F_200F_202E_200B_200B_206E_200F_202C_206E_206F_200D_200B_206E_202C_200B_202A_200B_200F_202A_200F_206E_200C_206B_200F_202A_200F_200E_206A_202C_202B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1289637212)); - _200C_200E_206E_206A_206D_202A_206B_202A_206A_202D_206F_200F_202E_200B_200B_206E_200F_202C_206E_206F_200D_200B_206E_202C_200B_202A_200B_200F_202A_200F_206E_200C_206B_200F_202A_200F_200E_206A_202C_202B_202E(builder, AmountPerDelivery.ToString()); - return true; - } - - [CompilerGenerated] - public readonly bool Equals(CurrencyReward other) - { - int num = ((!EqualityComparer<uint>.Default.Equals(CurrencyItemId, other.CurrencyItemId)) ? (-1286878871) : (-1286878870)); - while (true) - { - int num2 = num; - int num3 = -1286878869; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return false; - case 1: - num = ((!EqualityComparer<string>.Default.Equals(CurrencyName, other.CurrencyName)) ? (-1286878871) : (-1286878869)); - break; - case 0: - return EqualityComparer<int>.Default.Equals(AmountPerDelivery, other.AmountPerDelivery); - case 3: - num = -1286878870; - break; - } - } - } - - bool IEquatable<CurrencyReward>.Equals(CurrencyReward other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _206A_200C_202B_206F_202E_202C_202C_200D_200D_206E_200C_206C_202C_200F_206F_206E_202C_200D_200C_202E_206A_206A_206C_202A_206C_206A_200E_200D_202E_200B_206A_202D_202A_206A_206B_206F_206C_200B_206B_202B_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200C_200E_206E_206A_206D_202A_206B_202A_206A_202D_206F_200F_202E_200B_200B_206E_200F_202C_206E_206F_200D_200B_206E_202C_200B_202A_200B_200F_202A_200F_206E_200C_206B_200F_202A_200F_200E_206A_202C_202B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206E_200E_200B_200B_200F_206E_202C_206A_200B_200B_206C_206C_202C_200E_206A_202A_206D_202E_202C_206C_200F_206B_202C_206A_206C_202B_200B_200E_202B_200B_200E_202C_202B_206F_202E_200D_202D_202C_206B_206D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200C_200D_200C_200E_206A_202A_206A_202A_202B_200B_200D_200E_200C_200F_200B_200D_206B_206D_200F_200D_206B_206B_206C_202E_206F_202E_200E_200C_200E_206F_200B_206B_202A_206A_206D_206C_200C_206C_206A_206E_202E(object P_0) - { - return P_0.ToString(); - } - - static StringBuilder _200B_206F_200D_202B_202B_200C_206C_206F_202B_202C_206D_200F_206F_200D_206D_206C_200F_206B_206A_206A_200F_202E_206B_202B_206B_200D_206E_202B_206A_200E_206F_202E_206B_206C_202B_200F_200F_202D_200E_206C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - } + internal record struct CurrencyReward(uint CurrencyItemId, string CurrencyName, int AmountPerDelivery); private static readonly Dictionary<uint, int> ScripCaps = new Dictionary<uint, int> { @@ -123,289 +19,87 @@ internal sealed class DeliveryRewardCalculator(IDataManager dataManager) internal List<CurrencyReward> CalculateRewards(uint rewardRowId, bool hasBonus, Configuration.CustomDeliveryConfiguration.ECollectabilityTier tier = Configuration.CustomDeliveryConfiguration.ECollectabilityTier.High) { List<CurrencyReward> list = new List<CurrencyReward>(); - int num = (dataManager.GetExcelSheet<SatisfactionSupplyReward>().TryGetRow(rewardRowId, out var row) ? 1083172624 : 1083172627); - uint rewardCurrency = default(uint); - int num8 = default(int); - ushort num9 = default(ushort); - SatisfactionSupplyReward.SatisfactionSupplyRewardDataStruct current = default(SatisfactionSupplyReward.SatisfactionSupplyRewardDataStruct); - while (true) + if (!dataManager.GetExcelSheet<SatisfactionSupplyReward>().TryGetRow(rewardRowId, out var row)) { - int num2 = num; - int num3 = 1083172625; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_006c; - case 2: - return list; - case 1: - { - using Collection<SatisfactionSupplyReward.SatisfactionSupplyRewardDataStruct>.Enumerator enumerator = row.SatisfactionSupplyRewardData.GetEnumerator(); - num = 328961127; - while (true) - { - int num5 = num; - num3 = 328961135; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 6: - { - string currencyName = GetCurrencyName(rewardCurrency); - list.Add(new CurrencyReward(rewardCurrency, currencyName, num8)); - num = 328961127; - break; - } - case 9: - num = ((tier != Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Low) ? 328961125 : 328961132); - break; - case 4: - num = ((tier == Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Mid) ? 328961128 : 328961126); - break; - case 1: - num8 = num9; - num = ((!hasBonus) ? 328961129 : 328961135); - break; - case 11: - num = 328961127; - break; - case 10: - num9 = current.QuantityHigh; - num = 328961134; - break; - case 3: - num9 = current.QuantityLow; - num = 328961134; - break; - case 8: - num = (enumerator.MoveNext() ? 328961130 : 328961133); - break; - case 5: - current = enumerator.Current; - rewardCurrency = current.RewardCurrency; - num = ((rewardCurrency == 0) ? 328961127 : 328961131); - break; - case 7: - num9 = current.QuantityMid; - num = 328961134; - break; - case 0: - num8 = num8 * row.BonusMultiplier / 100; - num = 328961129; - break; - case 2: - return list; - } - } - } - } - continue; - IL_006c: - num = 1083172627; + return list; } + foreach (SatisfactionSupplyReward.SatisfactionSupplyRewardDataStruct satisfactionSupplyRewardDatum in row.SatisfactionSupplyRewardData) + { + uint rewardCurrency = satisfactionSupplyRewardDatum.RewardCurrency; + if (rewardCurrency != 0) + { + int num = tier switch + { + Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Low => satisfactionSupplyRewardDatum.QuantityLow, + Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Mid => satisfactionSupplyRewardDatum.QuantityMid, + _ => satisfactionSupplyRewardDatum.QuantityHigh, + }; + if (hasBonus) + { + num = num * row.BonusMultiplier / 100; + } + string currencyName = GetCurrencyName(rewardCurrency); + list.Add(new CurrencyReward(rewardCurrency, currencyName, num)); + } + } + return list; } internal static bool WouldOvercap(uint currencyItemId, int amountPerDelivery, int deliveryCount) { - int value; - int num = (ScripCaps.TryGetValue(currencyItemId, out value) ? (-1863089792) : (-1863089789)); - while (true) + if (!ScripCaps.TryGetValue(currencyItemId, out var value)) { - int num2 = num; - int num3 = -1863089790; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004d; - case 1: - return false; - case 2: - return _202B_200E_206D_200C_206E_200D_202B_206E_206A_200C_200B_206E_202A_206F_202B_200F_206C_202C_200F_200C_202B_206A_202D_206D_202C_202E_206B_202D_206D_202A_206A_200B_206C_206F_206C_202B_200D_202E_206A_202A_202E(currencyItemId, false, false) + amountPerDelivery * deliveryCount > value; - } - continue; - IL_004d: - num = -1863089789; + return false; } + return InventoryHelper.GetItemCount(currencyItemId) + amountPerDelivery * deliveryCount > value; } internal int MaxDeliveriesBeforeOvercap(uint rewardRowId, bool hasBonus, Configuration.CustomDeliveryConfiguration.ECollectabilityTier tier = Configuration.CustomDeliveryConfiguration.ECollectabilityTier.High) { List<CurrencyReward> list = CalculateRewards(rewardRowId, hasBonus, tier); int num = int.MaxValue; - int num2; - using (List<CurrencyReward>.Enumerator enumerator = list.GetEnumerator()) + foreach (CurrencyReward item in list) { - num2 = -1256353988; - int num10 = default(int); - CurrencyReward current = default(CurrencyReward); - int value = default(int); - while (true) + if (ScripCaps.TryGetValue(item.CurrencyItemId, out var value) && item.AmountPerDelivery > 0) { - int num3 = num2; - int num4 = -1256353985; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - int num12; - int num11; - switch (num6 - (num7 + num7)) - { - case 4: - num12 = num10 / current.AmountPerDelivery; - goto IL_006d; - case 1: - current = enumerator.Current; - num2 = ((!ScripCaps.TryGetValue(current.CurrencyItemId, out value)) ? (-1256353988) : (-1256353985)); - break; - case 2: - num2 = -1256353988; - break; - case 5: - num12 = 0; - goto IL_006d; - case 3: - num2 = (enumerator.MoveNext() ? (-1256353986) : (-1256353992)); - break; - case 0: - num2 = ((current.AmountPerDelivery <= 0) ? (-1256353988) : (-1256353991)); - break; - case 6: - { - int num8 = _202B_200E_206D_200C_206E_200D_202B_206E_206A_200C_200B_206E_202A_206F_202B_200F_206C_202C_200F_200C_202B_206A_202D_206D_202C_202E_206B_202D_206D_202A_206A_200B_206C_206F_206C_202B_200D_202E_206A_202A_202E(current.CurrencyItemId, false, false); - int num9 = value; - num4 = num8; - num5 = num9; - num10 = ~(~num5 + num4); - num2 = ((num10 > 0) ? (-1256353989) : (-1256353990)); - break; - } - case 7: - goto end_IL_0021; - IL_006d: - num11 = num12; - num = _200E_202E_200C_200F_206B_206C_200E_200B_202A_206A_200D_200D_200D_202A_200D_200C_206B_202A_200B_206C_206C_202A_200E_200F_206E_206E_200D_206B_206B_206F_202E_206C_200B_202B_206B_206A_202B_200E_206A_200D_202E(num, num11); - num2 = -1256353988; - break; - } - continue; - end_IL_0021: - break; + int itemCount = InventoryHelper.GetItemCount(item.CurrencyItemId); + int num2 = value - itemCount; + int val = ((num2 > 0) ? (num2 / item.AmountPerDelivery) : 0); + num = Math.Min(num, val); } } - num2 = ((num == int.MaxValue) ? 1414795502 : 1414795503); - while (true) + if (num != int.MaxValue) { - int num13 = num2; - int num4 = 1414795502; - int num5 = num13; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - goto IL_01c5; - case 1: - return num; - case 0: - return int.MaxValue; - } - continue; - IL_01c5: - num2 = 1414795503; + return num; } + return int.MaxValue; } internal int CalculateSatisfactionPerDelivery(uint rewardRowId, bool hasBonus, Configuration.CustomDeliveryConfiguration.ECollectabilityTier tier = Configuration.CustomDeliveryConfiguration.ECollectabilityTier.High) { - SatisfactionSupplyReward row; - int num = (dataManager.GetExcelSheet<SatisfactionSupplyReward>().TryGetRow(rewardRowId, out row) ? 284816978 : 284816979); - ushort num8 = default(ushort); - int num7 = default(int); - while (true) + if (!dataManager.GetExcelSheet<SatisfactionSupplyReward>().TryGetRow(rewardRowId, out var row)) { - int num2 = num; - int num3 = 284816978; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - num8 = row.SatisfactionHigh; - num = 284816981; - break; - case 4: - num = ((tier != Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Low) ? 284816983 : 284816977); - break; - case 0: - num = ((tier == Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Mid) ? 284816980 : 284816982); - break; - case 6: - num8 = row.SatisfactionMid; - num = 284816981; - break; - case 9: - return num7; - case 7: - num7 = num8; - num = ((!hasBonus) ? 284816987 : 284816986); - break; - case 2: - num = 284816979; - break; - case 3: - num8 = row.SatisfactionLow; - num = 284816981; - break; - case 8: - num7 = num7 * row.BonusMultiplier / 100; - num = 284816987; - break; - case 1: - return 0; - } + return 0; } + int num = tier switch + { + Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Low => row.SatisfactionLow, + Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Mid => row.SatisfactionMid, + _ => row.SatisfactionHigh, + }; + if (hasBonus) + { + num = num * row.BonusMultiplier / 100; + } + return num; } - [MethodImpl(MethodImplOptions.NoInlining)] private string GetCurrencyName(uint currencyItemId) { - Item row; - int num = ((!dataManager.GetExcelSheet<Item>().TryGetRow(currencyItemId, out row)) ? (-1217003400) : (-1217003397)); - while (true) + if (dataManager.GetExcelSheet<Item>().TryGetRow(currencyItemId, out var row)) { - int num2 = num; - int num3 = -1217003399; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(9, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1297490435)); - defaultInterpolatedStringHandler.AppendFormatted(currencyItemId); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - case 2: - return row.Name.ToString(); - case 0: - goto IL_00a7; - } - continue; - IL_00a7: - num = -1217003397; + return row.Name.ToString(); } - } - - static int _202B_200E_206D_200C_206E_200D_202B_206E_206A_200C_200B_206E_202A_206F_202B_200F_206C_202C_200F_200C_202B_206A_202D_206D_202C_202E_206B_202D_206D_202A_206A_200B_206C_206F_206C_202B_200D_202E_206A_202A_202E(uint P_0, bool P_1, bool P_2) - { - return InventoryHelper.GetItemCount(P_0, P_1, P_2); - } - - static int _200E_202E_200C_200F_206B_206C_200E_200B_202A_206A_200D_200D_200D_202A_200D_200C_206B_202A_200B_206C_206C_202A_200E_200F_206E_206E_200D_206B_206B_206F_202E_206C_200B_202B_206B_206A_202B_200E_206A_200D_202E(int P_0, int P_1) - { - return Math.Min(P_0, P_1); + return $"Currency#{currencyItemId}"; } } diff --git a/Questionable/Questionable.Controller.CustomDelivery/SatisfactionSupplyTurnInExecutor.cs b/Questionable/Questionable.Controller.CustomDelivery/SatisfactionSupplyTurnInExecutor.cs index 8adfc98..4a584dc 100644 --- a/Questionable/Questionable.Controller.CustomDelivery/SatisfactionSupplyTurnInExecutor.cs +++ b/Questionable/Questionable.Controller.CustomDelivery/SatisfactionSupplyTurnInExecutor.cs @@ -1,5 +1,4 @@ using System; -using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Conditions; using Dalamud.Plugin.Services; using LLib; @@ -38,391 +37,163 @@ internal sealed class SatisfactionSupplyTurnInExecutor(GameFunctions gameFunctio private long _phaseStartMs; - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { _phase = EPhase.InteractWithNpc; _remaining = base.Task.DeliveryCount; - _lastUsedDeliveries = _206D_206D_202E_206B_206B_206F_206D_206E_206A_200C_206F_206F_200C_206C_206C_206E_206B_206D_202D_202D_202E_206D_200D_200C_202D_202E_206B_206E_202E_202B_206C_206E_200E_206F_200F_202D_200C_202E_202B_200E_202E(base.Task.NpcIndex).UsedDeliveries; + _lastUsedDeliveries = SatisfactionSupplyActions.GetNpcState(base.Task.NpcIndex).UsedDeliveries; _throttle.Clear(); - _phaseStartMs = _202D_206E_200C_202C_206E_206A_202D_206D_200C_202B_206E_206A_200E_200E_202C_202B_202B_200D_206E_200E_202D_206A_206B_202C_202E_202C_200C_200C_202E_200D_200F_200E_200B_200C_200F_202B_202A_206F_206A_200C_202E(); - _206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1474000530), new object[3] - { - base.Task.NpcIndex, - base.Task.Slot, - base.Task.DeliveryCount - }); + _phaseStartMs = Environment.TickCount64; + logger.LogDebug("Starting satisfaction supply turn-in: npc={NpcIndex}, slot={Slot}, count={Count}", base.Task.NpcIndex, base.Task.Slot, base.Task.DeliveryCount); return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - long num = _202D_206E_200C_202C_206E_206A_202D_206D_200C_202B_206E_206A_200E_200E_202C_202B_202B_200D_206E_200E_202D_206A_206B_202C_202E_202C_200C_200C_202E_200D_200F_200E_200B_200C_200F_202B_202A_206F_206A_200C_202E() - _phaseStartMs; - int num2 = ((_phase != EPhase.WaitForCutsceneEnd) ? 427799827 : 427799864); - int usedDeliveries = default(int); - int num6 = default(int); - bool flag = default(bool); - while (true) + long num = Environment.TickCount64 - _phaseStartMs; + if ((_phase != EPhase.WaitForCutsceneEnd) ? (num > 15000) : (num > 60000)) { - int num3 = num2; - int num4 = 427799834; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 2: - num2 = ((!_throttle.TryReset(0.5)) ? 427799816 : 427799857); - continue; - case 44: - SetPhase(EPhase.Closing); - num2 = 427799816; - continue; - case 20: - num2 = 427799864; - continue; - case 31: - goto IL_015d; - case 19: - num2 = 427799816; - continue; - case 11: - _206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(350961385), Array.Empty<object>()); - SetPhase(EPhase.CheckCompletion); - num2 = 427799816; - continue; - case 3: - goto IL_01c7; - case 25: - { - int remaining = _remaining; - int num7 = usedDeliveries; - num4 = _lastUsedDeliveries; - num5 = num7; - num4 = ~(~num5 + num4); - num5 = remaining; - _remaining = _206F_200D_200C_202C_200F_202A_206B_200B_206D_202A_206D_202B_200E_202D_200D_200C_202B_206D_202A_206F_200B_202E_206F_202E_206A_206A_200D_200E_200E_200E_206B_202A_200E_206A_202C_206B_206A_200B_202D_202E_202E(0, ~(~num5 + num4)); - _lastUsedDeliveries = usedDeliveries; - num6 = _202D_200F_202C_202A_206D_206A_200C_206F_206E_206E_202C_206E_202D_206A_200B_206F_202E_202A_200C_202A_202C_200D_202E_200D_202C_206D_200D_206B_206F_200C_202A_200F_200B_202E_200D_206F_206C_200D_202D_200F_202E(); - _206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-306504982), new object[2] { _remaining, num6 }); - num2 = ((_remaining <= 0) ? 427799862 : 427799860); - continue; - } - case 34: - flag = num > 60000; - num2 = 427799835; - continue; - case 32: - _206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1631440184), new object[1] { base.Task.Slot }); - SetPhase(EPhase.WaitForCutsceneStart); - num2 = 427799816; - continue; - case 33: - _206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1374604529), Array.Empty<object>()); - return ETaskResult.TaskComplete; - case 40: - goto IL_02fd; - case 4: - num2 = ((!_206B_206A_202A_202D_206C_202C_202C_202A_206D_202C_200E_200D_202E_200C_202A_202A_206A_200E_206A_206C_200D_202A_202A_200E_200B_202C_206A_206F_206B_202D_206D_202B_200C_200E_206B_202B_200C_206D_202A_200D_202E(gameGui)) ? 427799836 : 427799815); - continue; - case 28: - _206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1574397942), Array.Empty<object>()); - return ETaskResult.TaskComplete; - case 24: - num2 = ((!_206B_206A_202A_202D_206C_202C_202C_202A_206D_202C_200E_200D_202E_200C_202A_202A_206A_200E_206A_206C_200D_202A_202A_200E_200B_202C_206A_206F_206B_202D_206D_202B_200C_200E_206B_202B_200C_206D_202A_200D_202E(gameGui)) ? 427799816 : 427799826); - continue; - case 5: - num2 = (TryDismissResultAddon() ? 427799816 : 427799856); - continue; - case 42: - num2 = ((!_200C_206C_200D_202C_206C_202E_202E_202E_200B_200F_200D_202A_206E_200C_200F_202C_206E_206E_200B_202C_202D_202E_200E_200E_206D_202E_202C_206C_200B_206F_202C_200F_200E_206D_200F_202B_206B_206F_206D_206B_202E(gameGui)) ? 427799828 : 427799867); - continue; - case 22: - _206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1456862888), Array.Empty<object>()); - SetPhase(EPhase.ConfirmTrade); - num2 = 427799816; - continue; - case 18: - return ETaskResult.StillRunning; - case 0: - num2 = ((!_200B_200E_206A_200F_206F_206A_206F_200C_206B_202E_206D_200C_200C_200B_202D_200F_202B_206D_202A_202B_202B_202A_206A_202E_202B_206E_200D_206C_202D_202E_206C_206F_202A_206E_200E_200F_206A_200D_200B_200E_202E(condition, ConditionFlag.OccupiedInCutSceneEvent)) ? 427799816 : 427799829); - continue; - case 26: - _206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1394771024), Array.Empty<object>()); - num2 = 427799816; - continue; - case 21: - goto IL_0464; - case 37: - SetPhase(EPhase.InteractWithNpc); - num2 = 427799816; - continue; - case 12: - _206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-251211365), new object[1] { base.Task.NpcDataId }); - SetPhase(EPhase.WaitForAddon); - num2 = 427799816; - continue; - case 10: - SetPhase(EPhase.WaitForAddon); - num2 = 427799816; - continue; - case 38: - goto IL_0509; - case 9: - flag = num > 15000; - num2 = 427799835; - continue; - case 17: - _206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1397355813), Array.Empty<object>()); - SetPhase(EPhase.CheckCompletion); - num2 = 427799816; - continue; - case 29: - _206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1083762627), Array.Empty<object>()); - SetPhase(EPhase.SelectSlot); - num2 = 427799816; - continue; - case 13: - num2 = ((!TryDismissResultAddon()) ? 427799810 : 427799871); - continue; - case 27: - num2 = ((!gameFunctions.InteractWith(base.Task.NpcDataId)) ? 427799816 : 427799830); - continue; - case 43: - num2 = ((base.Task.NpcDataId == 0) ? 427799816 : 427799809); - continue; - case 1: - num2 = ((!flag) ? 427799818 : 427799863); - continue; - case 16: - switch (_phase) - { - case EPhase.InteractWithNpc: - break; - case EPhase.SelectSlot: - goto IL_015d; - case EPhase.WaitForAddon: - goto IL_01c7; - case EPhase.ConfirmTrade: - goto IL_02fd; - case EPhase.CheckCompletion: - goto IL_0464; - case EPhase.WaitForCutsceneEnd: - goto IL_0509; - default: - goto IL_0678; - case EPhase.WaitForCutsceneStart: - goto IL_06e7; - case EPhase.Closing: - goto end_IL_0047; - } - goto case 2; - case 46: - num2 = ((num6 <= 0) ? 427799862 : 427799824); - continue; - case 23: - num2 = ((!_202E_200B_202B_202C_202B_202D_206D_206A_202B_206F_200D_200B_206B_206D_206C_206C_206A_202C_206E_206D_202E_206B_200F_200B_202D_200B_206D_202D_200B_202E_200F_202D_206F_206D_202A_202D_202E_202E_206E_206C_202E()) ? 427799816 : 427799866); - continue; - case 7: - num2 = ((!_200E_200F_206E_206C_200E_200F_206D_202C_202E_200E_202A_200D_202E_202D_206E_200B_206C_206A_200C_200E_202A_206E_202B_206C_206E_200C_200E_202E_200F_200C_206D_202B_206C_206E_200F_206B_206C_202A_202B_202B_202E()) ? 427799831 : 427799820); - continue; - case 30: - goto IL_06e7; - case 45: - _206C_202A_206F_200F_206C_202A_200B_200D_206D_206D_202E_206C_202D_206D_206D_202E_200D_202C_200B_200E_202D_200B_200E_202B_200B_202D_202A_206A_200E_206B_202B_202D_206E_206F_206D_200C_202E_202E_206E_206F_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1661028568), new object[2] { _phase, num }); - TryDismissResultAddon(); - _200C_206C_200D_202C_206C_202E_202E_202E_200B_200F_200D_202A_206E_200C_200F_202C_206E_206E_200B_202C_202D_202E_200E_200E_206D_202E_202C_206C_200B_206F_202C_200F_200E_206D_200F_202B_206B_206F_206D_206B_202E(gameGui); - return ETaskResult.RetryStep; - case 15: - _206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-285034380), Array.Empty<object>()); - SetPhase(EPhase.WaitForCutsceneEnd); - num2 = 427799816; - continue; - case 36: - num2 = (TryDismissResultAddon() ? 427799816 : 427799838); - continue; - case 6: - num2 = ((!_200F_206A_200F_200E_206A_202E_206C_202E_202A_206D_202D_202B_202D_206B_206B_206F_202D_200E_202A_202C_206A_202C_200C_206A_202C_200B_202C_206A_200E_206F_206E_200C_206F_206A_206E_202B_200C_200B_206A_202E_202E(gameGui)) ? 427799859 : 427799865); - continue; - case 14: - num2 = (_202E_200B_202E_200D_206C_206F_206E_200D_202B_206B_202D_200B_200D_202A_206D_202E_200D_202A_200E_200F_206F_206C_202E_206E_206E_206D_200F_202A_206D_206B_202A_200D_206B_200E_200E_206B_202C_206D_200B_202D_202E(gameGui) ? 427799816 : 427799814); - continue; - case 41: - num2 = ((!_200C_206A_206B_200D_200C_202C_206D_206A_206D_206C_202E_200C_202E_202A_206C_206E_202E_206D_202D_200B_200F_202B_200D_206E_200E_200D_206A_206B_206A_206B_206F_206E_200C_202A_202E_206E_202D_206F_200B_200F_202E(gameGui)) ? 427799816 : 427799808); - continue; - case 8: - _202C_200D_206E_206E_200B_202C_206A_206D_206C_202E_200F_206C_206A_200F_202C_206B_206C_202B_202A_206D_206E_202C_206C_200B_206A_202A_200C_202C_200F_202E_200F_206E_206A_206A_202D_200C_206C_202A_206A_206F_202E(gameGui, (int)base.Task.Slot); - _206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1693755949), new object[1] { base.Task.Slot }); - num2 = 427799816; - continue; - case 35: - _202A_206D_206A_200C_202B_200C_206F_200F_200E_200D_206C_202C_200D_202A_202C_206E_206F_200C_202B_206F_206A_202E_206D_206E_202E_206D_202B_206E_202C_202D_206C_206D_200E_206F_200F_206C_200C_200B_200D_206A_202E(gameGui, 0); - _206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2145457438), Array.Empty<object>()); - num2 = 427799816; - continue; - case 39: - break; - IL_0464: - usedDeliveries = _206D_206D_202E_206B_206B_206F_206D_206E_206A_200C_206F_206F_200C_206C_206C_206E_206B_206D_202D_202D_202E_206D_200D_200C_202D_202E_206B_206E_202E_202B_206C_206E_200E_206F_200F_202D_200C_202E_202B_200E_202E(base.Task.NpcIndex).UsedDeliveries; - num2 = ((usedDeliveries <= _lastUsedDeliveries) ? 427799816 : 427799811); - continue; - IL_02fd: - num2 = ((!_throttle.TryReset(0.5)) ? 427799816 : 427799821); - continue; - IL_06e7: - num2 = ((!HasDeliveryRegistered()) ? 427799834 : 427799819); - continue; - IL_0678: - num2 = 427799817; - continue; - IL_015d: - num2 = ((!_throttle.TryReset(0.5)) ? 427799816 : 427799837); - continue; - IL_01c7: - num2 = ((!_throttle.TryReset(0.5)) ? 427799816 : 427799870); - continue; - IL_0509: - num2 = (_200B_200E_206A_200F_206F_206A_206F_200C_206B_202E_206D_200C_200C_200B_202D_200F_202B_206D_202A_202B_202B_202A_206A_202E_202B_206E_200D_206C_202D_202E_206C_206F_202A_206E_200E_200F_206A_200D_200B_200E_202E(condition, ConditionFlag.OccupiedInCutSceneEvent) ? 427799816 : 427799825); - continue; - end_IL_0047: - break; - } - num2 = ((!_throttle.TryReset(0.5)) ? 427799816 : 427799839); + logger.LogWarning("Turn-in timed out in phase {Phase} after {Elapsed}ms, retrying", _phase, num); + TryDismissResultAddon(); + SatisfactionSupplyActions.TryCloseSatisfactionSupply(gameGui); + return ETaskResult.RetryStep; } + switch (_phase) + { + case EPhase.InteractWithNpc: + if (_throttle.TryReset(0.5) && base.Task.NpcDataId != 0 && gameFunctions.InteractWith(base.Task.NpcDataId)) + { + logger.LogDebug("Interacted with delivery NPC {DataId}", base.Task.NpcDataId); + SetPhase(EPhase.WaitForAddon); + } + break; + case EPhase.WaitForAddon: + if (_throttle.TryReset(0.5) && !TryDismissResultAddon()) + { + if (SatisfactionSupplyActions.IsSatisfactionSupplyFullyReady(gameGui)) + { + logger.LogDebug("SatisfactionSupply addon fully ready"); + SetPhase(EPhase.SelectSlot); + } + else if (VendorPurchaseActions.IsDialogReady(gameGui)) + { + VendorPurchaseActions.TrySelectDialogOption(gameGui, 0); + logger.LogDebug("Dismissed NPC dialog to reach SatisfactionSupply"); + } + else if (SatisfactionSupplyActions.TryProgressTalk(gameGui)) + { + logger.LogDebug("Progressed NPC dialog to reach SatisfactionSupply"); + } + } + break; + case EPhase.SelectSlot: + if (_throttle.TryReset(0.5)) + { + if (SatisfactionSupplyActions.IsNpcTradeReady()) + { + logger.LogDebug("NpcTrade agent ready"); + SetPhase(EPhase.ConfirmTrade); + } + else if (TryDismissResultAddon()) + { + SetPhase(EPhase.InteractWithNpc); + } + else if (SatisfactionSupplyActions.IsSatisfactionSupplyFullyReady(gameGui)) + { + SatisfactionSupplyActions.TrySelectDeliverySlot(gameGui, (int)base.Task.Slot); + logger.LogDebug("Fired delivery slot {Slot} selection", base.Task.Slot); + } + } + break; + case EPhase.ConfirmTrade: + if (_throttle.TryReset(0.5) && SatisfactionSupplyActions.TryConfirmTrade()) + { + logger.LogDebug("Confirmed trade for slot {Slot}", base.Task.Slot); + SetPhase(EPhase.WaitForCutsceneStart); + } + break; + case EPhase.WaitForCutsceneStart: + if (HasDeliveryRegistered()) + { + logger.LogDebug("Delivery registered before cutscene state was observed"); + SetPhase(EPhase.CheckCompletion); + } + else if (condition[ConditionFlag.OccupiedInCutSceneEvent]) + { + logger.LogDebug("Cutscene started"); + SetPhase(EPhase.WaitForCutsceneEnd); + } + break; + case EPhase.WaitForCutsceneEnd: + if (!condition[ConditionFlag.OccupiedInCutSceneEvent]) + { + logger.LogDebug("Cutscene ended"); + SetPhase(EPhase.CheckCompletion); + } + break; + case EPhase.CheckCompletion: + { + int usedDeliveries = SatisfactionSupplyActions.GetNpcState(base.Task.NpcIndex).UsedDeliveries; + if (usedDeliveries > _lastUsedDeliveries) + { + _remaining = Math.Max(0, _remaining - (usedDeliveries - _lastUsedDeliveries)); + _lastUsedDeliveries = usedDeliveries; + int remainingAllowances = SatisfactionSupplyActions.GetRemainingAllowances(); + logger.LogDebug("Delivery complete, remaining={Remaining}, allowances={Allowances}", _remaining, remainingAllowances); + if (_remaining > 0 && remainingAllowances > 0) + { + SetPhase(EPhase.WaitForAddon); + } + else + { + SetPhase(EPhase.Closing); + } + } + break; + } + case EPhase.Closing: + if (_throttle.TryReset(0.5) && !TryDismissResultAddon()) + { + if (SatisfactionSupplyActions.TryCloseSatisfactionSupply(gameGui)) + { + logger.LogDebug("Closed SatisfactionSupply addon"); + return ETaskResult.TaskComplete; + } + if (!SatisfactionSupplyActions.IsSatisfactionSupplyReady(gameGui)) + { + logger.LogDebug("SatisfactionSupply addon already closed"); + return ETaskResult.TaskComplete; + } + } + break; + } + return ETaskResult.StillRunning; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool TryDismissResultAddon() { - int num = (_200D_206D_202C_206F_200E_200D_206D_206A_206D_206F_202C_200C_200D_202E_200F_202C_206D_200C_202D_202E_202A_206A_206F_200F_206A_200D_200C_200E_206B_206A_202E_200D_200B_202C_202B_206C_206D_206C_206C_200F_202E(gameGui) ? 1612697595 : 1612697592); - while (true) + if (!SatisfactionSupplyActions.IsSatisfactionSupplyResultVisible(gameGui)) { - int num2 = num; - int num3 = 1612697593; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004d; - case 2: - _206D_200B_200E_202D_206C_202D_202A_206C_206A_206B_202A_206F_202D_200B_200D_202D_202C_202C_202D_206C_202A_200B_206B_202A_200D_206F_202B_202C_206B_202D_200F_202B_200C_200B_202C_202D_206C_200B_206C_206B_202E(gameGui); - _206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1119009587), Array.Empty<object>()); - return true; - case 1: - return false; - } - continue; - IL_004d: - num = 1612697592; + return false; } + SatisfactionSupplyActions.TryCloseSatisfactionSupplyResult(gameGui); + logger.LogDebug("Closed rank-up result addon"); + return true; } private void SetPhase(EPhase phase) { _phase = phase; - _phaseStartMs = _202D_206E_200C_202C_206E_206A_202D_206D_200C_202B_206E_206A_200E_200E_202C_202B_202B_200D_206E_200E_202D_206A_206B_202C_202E_202C_200C_200C_202E_200D_200F_200E_200B_200C_200F_202B_202A_206F_206A_200C_202E(); + _phaseStartMs = Environment.TickCount64; } private bool HasDeliveryRegistered() { - return _206D_206D_202E_206B_206B_206F_206D_206E_206A_200C_206F_206F_200C_206C_206C_206E_206B_206D_202D_202D_202E_206D_200D_200C_202D_202E_206B_206E_202E_202B_206C_206E_200E_206F_200F_202D_200C_202E_202B_200E_202E(base.Task.NpcIndex).UsedDeliveries > _lastUsedDeliveries; + return SatisfactionSupplyActions.GetNpcState(base.Task.NpcIndex).UsedDeliveries > _lastUsedDeliveries; } public override bool ShouldInterruptOnDamage() { return false; } - - static SatisfactionSupplyActions.NpcState _206D_206D_202E_206B_206B_206F_206D_206E_206A_200C_206F_206F_200C_206C_206C_206E_206B_206D_202D_202D_202E_206D_200D_200C_202D_202E_206B_206E_202E_202B_206C_206E_200E_206F_200F_202D_200C_202E_202B_200E_202E(int P_0) - { - return SatisfactionSupplyActions.GetNpcState(P_0); - } - - static long _202D_206E_200C_202C_206E_206A_202D_206D_200C_202B_206E_206A_200E_200E_202C_202B_202B_200D_206E_200E_202D_206A_206B_202C_202E_202C_200C_200C_202E_200D_200F_200E_200B_200C_200F_202B_202A_206F_206A_200C_202E() - { - return Environment.TickCount64; - } - - static void _206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _206C_202A_206F_200F_206C_202A_200B_200D_206D_206D_202E_206C_202D_206D_206D_202E_200D_202C_200B_200E_202D_200B_200E_202B_200B_202D_202A_206A_200E_206B_202B_202D_206E_206F_206D_200C_202E_202E_206E_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static bool _200C_206C_200D_202C_206C_202E_202E_202E_200B_200F_200D_202A_206E_200C_200F_202C_206E_206E_200B_202C_202D_202E_200E_200E_206D_202E_202C_206C_200B_206F_202C_200F_200E_206D_200F_202B_206B_206F_206D_206B_202E(IGameGui P_0) - { - return SatisfactionSupplyActions.TryCloseSatisfactionSupply(P_0); - } - - static bool _206B_206A_202A_202D_206C_202C_202C_202A_206D_202C_200E_200D_202E_200C_202A_202A_206A_200E_206A_206C_200D_202A_202A_200E_200B_202C_206A_206F_206B_202D_206D_202B_200C_200E_206B_202B_200C_206D_202A_200D_202E(IGameGui P_0) - { - return SatisfactionSupplyActions.IsSatisfactionSupplyFullyReady(P_0); - } - - static bool _200F_206A_200F_200E_206A_202E_206C_202E_202A_206D_202D_202B_202D_206B_206B_206F_202D_200E_202A_202C_206A_202C_200C_206A_202C_200B_202C_206A_200E_206F_206E_200C_206F_206A_206E_202B_200C_200B_206A_202E_202E(IGameGui P_0) - { - return VendorPurchaseActions.IsDialogReady(P_0); - } - - static bool _202A_206D_206A_200C_202B_200C_206F_200F_200E_200D_206C_202C_200D_202A_202C_206E_206F_200C_202B_206F_206A_202E_206D_206E_202E_206D_202B_206E_202C_202D_206C_206D_200E_206F_200F_206C_200C_200B_200D_206A_202E(IGameGui P_0, int P_1) - { - return VendorPurchaseActions.TrySelectDialogOption(P_0, P_1); - } - - static bool _200C_206A_206B_200D_200C_202C_206D_206A_206D_206C_202E_200C_202E_202A_206C_206E_202E_206D_202D_200B_200F_202B_200D_206E_200E_200D_206A_206B_206A_206B_206F_206E_200C_202A_202E_206E_202D_206F_200B_200F_202E(IGameGui P_0) - { - return SatisfactionSupplyActions.TryProgressTalk(P_0); - } - - static bool _200E_200F_206E_206C_200E_200F_206D_202C_202E_200E_202A_200D_202E_202D_206E_200B_206C_206A_200C_200E_202A_206E_202B_206C_206E_200C_200E_202E_200F_200C_206D_202B_206C_206E_200F_206B_206C_202A_202B_202B_202E() - { - return SatisfactionSupplyActions.IsNpcTradeReady(); - } - - static bool _202C_200D_206E_206E_200B_202C_206A_206D_206C_202E_200F_206C_206A_200F_202C_206B_206C_202B_202A_206D_206E_202C_206C_200B_206A_202A_200C_202C_200F_202E_200F_206E_206A_206A_202D_200C_206C_202A_206A_206F_202E(IGameGui P_0, int P_1) - { - return SatisfactionSupplyActions.TrySelectDeliverySlot(P_0, P_1); - } - - static bool _202E_200B_202B_202C_202B_202D_206D_206A_202B_206F_200D_200B_206B_206D_206C_206C_206A_202C_206E_206D_202E_206B_200F_200B_202D_200B_206D_202D_200B_202E_200F_202D_206F_206D_202A_202D_202E_202E_206E_206C_202E() - { - return SatisfactionSupplyActions.TryConfirmTrade(); - } - - static bool _200B_200E_206A_200F_206F_206A_206F_200C_206B_202E_206D_200C_200C_200B_202D_200F_202B_206D_202A_202B_202B_202A_206A_202E_202B_206E_200D_206C_202D_202E_206C_206F_202A_206E_200E_200F_206A_200D_200B_200E_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static int _206F_200D_200C_202C_200F_202A_206B_200B_206D_202A_206D_202B_200E_202D_200D_200C_202B_206D_202A_206F_200B_202E_206F_202E_206A_206A_200D_200E_200E_200E_206B_202A_200E_206A_202C_206B_206A_200B_202D_202E_202E(int P_0, int P_1) - { - return Math.Max(P_0, P_1); - } - - static int _202D_200F_202C_202A_206D_206A_200C_206F_206E_206E_202C_206E_202D_206A_200B_206F_202E_202A_200C_202A_202C_200D_202E_200D_202C_206D_200D_206B_206F_200C_202A_200F_200B_202E_200D_206F_206C_200D_202D_200F_202E() - { - return SatisfactionSupplyActions.GetRemainingAllowances(); - } - - static bool _202E_200B_202E_200D_206C_206F_206E_200D_202B_206B_202D_200B_200D_202A_206D_202E_200D_202A_200E_200F_206F_206C_202E_206E_206E_206D_200F_202A_206D_206B_202A_200D_206B_200E_200E_206B_202C_206D_200B_202D_202E(IGameGui P_0) - { - return SatisfactionSupplyActions.IsSatisfactionSupplyReady(P_0); - } - - static bool _200D_206D_202C_206F_200E_200D_206D_206A_206D_206F_202C_200C_200D_202E_200F_202C_206D_200C_202D_202E_202A_206A_206F_200F_206A_200D_200C_200E_206B_206A_202E_200D_200B_202C_202B_206C_206D_206C_206C_200F_202E(IGameGui P_0) - { - return SatisfactionSupplyActions.IsSatisfactionSupplyResultVisible(P_0); - } - - static bool _206D_200B_200E_202D_206C_202D_202A_206C_206A_206B_202A_206F_202D_200B_200D_202D_202C_202C_202D_206C_202A_200B_206B_202A_200D_206F_202B_202C_206B_202D_200F_202B_200C_200B_202C_202D_206C_200B_206C_206B_202E(IGameGui P_0) - { - return SatisfactionSupplyActions.TryCloseSatisfactionSupplyResult(P_0); - } } diff --git a/Questionable/Questionable.Controller.CustomDelivery/SatisfactionSupplyTurnInTask.cs b/Questionable/Questionable.Controller.CustomDelivery/SatisfactionSupplyTurnInTask.cs index efcad29..f19fc8b 100644 --- a/Questionable/Questionable.Controller.CustomDelivery/SatisfactionSupplyTurnInTask.cs +++ b/Questionable/Questionable.Controller.CustomDelivery/SatisfactionSupplyTurnInTask.cs @@ -1,117 +1,11 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Questionable.Controller.Steps; namespace Questionable.Controller.CustomDelivery; internal sealed record SatisfactionSupplyTurnInTask(int NpcIndex, EDeliverySlot Slot, int DeliveryCount, uint NpcDataId) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200F_206E_202C_200D_206E_200F_200F_202C_200C_206B_206A_202A_206C_202E_202B_206D_200C_206F_206B_206E_200F_200E_200F_202E_206B_200D_206A_202A_206D_200D_202D_206A_202A_202C_206B_206F_202B_202E_202D_206C_202E(typeof(SatisfactionSupplyTurnInTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(27, 3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1300446303)); - defaultInterpolatedStringHandler.AppendFormatted(NpcIndex); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1337890915)); - defaultInterpolatedStringHandler.AppendFormatted(Slot); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1866089119)); - defaultInterpolatedStringHandler.AppendFormatted(DeliveryCount); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206C_206B_206E_200D_200C_200F_200C_206F_202C_202E_206D_200C_202D_202C_202C_200F_202B_202E_200F_202B_202E_206D_200E_200F_206E_206E_200F_202E_202D_206B_206D_206A_200C_206E_202C_200F_200D_202B_206D_200C_202E(); - _200B_202B_206D_202C_200D_200B_200D_202A_206F_202B_206E_202C_202D_206D_206D_200B_206D_206B_206B_202C_202C_206C_202C_200C_206D_202C_200F_202A_202D_200F_200D_200D_206C_206C_202A_202E_200E_206A_206A_206F_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1595512881)); - _200B_202B_206D_202C_200D_200B_200D_202A_206F_202B_206E_202C_202D_206D_206D_200B_206D_206B_206B_202C_202C_206C_202C_200C_206D_202C_200F_202A_202D_200F_200D_200D_206C_206C_202A_202E_200E_206A_206A_206F_202E(builder, NpcIndex.ToString()); - _200B_202B_206D_202C_200D_200B_200D_202A_206F_202B_206E_202C_202D_206D_206D_200B_206D_206B_206B_202C_202C_206C_202C_200C_206D_202C_200F_202A_202D_200F_200D_200D_206C_206C_202A_202E_200E_206A_206A_206F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1002596104)); - _200B_202B_206D_202C_200D_200B_200D_202A_206F_202B_206E_202C_202D_206D_206D_200B_206D_206B_206B_202C_202C_206C_202C_200C_206D_202C_200F_202A_202D_200F_200D_200D_206C_206C_202A_202E_200E_206A_206A_206F_202E(builder, Slot.ToString()); - _200B_202B_206D_202C_200D_200B_200D_202A_206F_202B_206E_202C_202D_206D_206D_200B_206D_206B_206B_202C_202C_206C_202C_200C_206D_202C_200F_202A_202D_200F_200D_200D_206C_206C_202A_202E_200E_206A_206A_206F_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1495805969)); - _200B_202B_206D_202C_200D_200B_200D_202A_206F_202B_206E_202C_202D_206D_206D_200B_206D_206B_206B_202C_202C_206C_202C_200C_206D_202C_200F_202A_202D_200F_200D_200D_206C_206C_202A_202E_200E_206A_206A_206F_202E(builder, DeliveryCount.ToString()); - _200B_202B_206D_202C_200D_200B_200D_202A_206F_202B_206E_202C_202D_206D_206D_200B_206D_206B_206B_202C_202C_206C_202C_200C_206D_202C_200F_202A_202D_200F_200D_200D_206C_206C_202A_202E_200E_206A_206A_206F_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1084145586)); - _200B_202B_206D_202C_200D_200B_200D_202A_206F_202B_206E_202C_202D_206D_206D_200B_206D_206B_206B_202C_202C_206C_202C_200C_206D_202C_200F_202A_202D_200F_200D_200D_206C_206C_202A_202E_200E_206A_206A_206F_202E(builder, NpcDataId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(SatisfactionSupplyTurnInTask? other) - { - int num = (((object)this == other) ? 887679026 : 887679031); - while (true) - { - int num2 = num; - int num3 = 887679025; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 8: - return EqualityComparer<uint>.Default.Equals(NpcDataId, other.NpcDataId); - case 1: - num = ((!EqualityComparer<int>.Default.Equals(DeliveryCount, other.DeliveryCount)) ? 887679029 : 887679033); - break; - case 5: - num = ((!EqualityComparer<int>.Default.Equals(NpcIndex, other.NpcIndex)) ? 887679029 : 887679027); - break; - case 6: - num = (((object)other == null) ? 887679029 : 887679030); - break; - case 2: - num = ((!EqualityComparer<EDeliverySlot>.Default.Equals(Slot, other.Slot)) ? 887679029 : 887679024); - break; - case 3: - return true; - case 4: - return false; - case 0: - num = 887679031; - break; - case 7: - num = ((!_200F_206E_202C_200B_206A_200D_206E_202C_206E_202D_202D_200D_202B_200B_202E_206E_200F_200D_200C_200C_206F_206C_200B_200E_202E_200F_200E_206F_200D_200C_202A_200F_202C_206C_202E_200D_206B_206F_202A_200F_202E(EqualityContract, other.EqualityContract)) ? 887679029 : 887679028); - break; - } - } - } - - bool IEquatable<SatisfactionSupplyTurnInTask>.Equals(SatisfactionSupplyTurnInTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200F_206E_202C_200D_206E_200F_200F_202C_200C_206B_206A_202A_206C_202E_202B_206D_200C_206F_206B_206E_200F_200E_200F_202E_206B_200D_206A_202A_206D_200D_202D_206A_202A_202C_206B_206F_202B_202E_202D_206C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206C_206B_206E_200D_200C_200F_200C_206F_202C_202E_206D_200C_202D_202C_202C_200F_202B_202E_200F_202B_202E_206D_200E_200F_206E_206E_200F_202E_202D_206B_206D_206A_200C_206E_202C_200F_200D_202B_206D_200C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200B_202B_206D_202C_200D_200B_200D_202A_206F_202B_206E_202C_202D_206D_206D_200B_206D_206B_206B_202C_202C_206C_202C_200C_206D_202C_200F_202A_202D_200F_200D_200D_206C_206C_202A_202E_200E_206A_206A_206F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _200F_206E_202C_200B_206A_200D_206E_202C_206E_202D_202D_200D_202B_200B_202E_206E_200F_200D_200C_200C_206F_206C_200B_200E_202E_200F_200E_206F_200D_200C_202A_200F_202C_206C_202E_200D_206B_206F_202A_200F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"TurnIn(npc={NpcIndex}, slot={Slot}, count={DeliveryCount})"; } } diff --git a/Questionable/Questionable.Controller.CustomDelivery/VendorPurchaseExecutor.cs b/Questionable/Questionable.Controller.CustomDelivery/VendorPurchaseExecutor.cs index 01de942..20ad679 100644 --- a/Questionable/Questionable.Controller.CustomDelivery/VendorPurchaseExecutor.cs +++ b/Questionable/Questionable.Controller.CustomDelivery/VendorPurchaseExecutor.cs @@ -1,5 +1,4 @@ using System; -using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Conditions; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; @@ -50,7 +49,7 @@ internal sealed class VendorPurchaseExecutor(GameFunctions gameFunctions, IGameG _state = EState.InteractWithNpc; _throttle.Clear(); _purchaseIndex = 0; - _stateStartMs = _206E_206E_200E_202B_202A_206A_200C_206D_206A_202D_202B_206E_206D_206E_200C_200D_202A_200D_200C_202D_202E_200F_206D_206E_206C_202C_206C_206A_200E_206D_200F_206C_206E_202B_206A_206B_200E_200F_206E_206B_202E(); + _stateStartMs = Environment.TickCount64; _failed = false; _countBeforeBuy = 0; _buyAttempts = 0; @@ -58,362 +57,167 @@ internal sealed class VendorPurchaseExecutor(GameFunctions gameFunctions, IGameG return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe override ETaskResult Update() { - long num = _206E_206E_200E_202B_202A_206A_200C_206D_206A_202D_202B_206E_206D_206E_200C_200D_202A_200D_200C_202D_202E_200F_206D_206E_206C_202C_206C_206A_200E_206D_200F_206C_206E_202B_206A_206B_200E_200F_206E_206B_202E() - _stateStartMs; - int num2 = ((_state == EState.WaitForBuy) ? 839409606 : 839409644); - int inventoryItemCount = default(int); - VendorPurchaseTask.PurchaseItem purchaseItem = default(VendorPurchaseTask.PurchaseItem); - VendorPurchaseTask.PurchaseItem purchaseItem2 = default(VendorPurchaseTask.PurchaseItem); - int num16 = default(int); - while (true) + long num = Environment.TickCount64 - _stateStartMs; + if (_state != EState.WaitForBuy && num > 15000) { - int num3 = num2; - int num4 = 839409609; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) + logger.LogWarning("Vendor purchase timed out in state {State} after {Elapsed}ms, retrying", _state, num); + return ETaskResult.RetryStep; + } + switch (_state) + { + case EState.InteractWithNpc: + if (!_throttle.TryReset(1.0)) { - case 11: - num2 = 839409644; - break; - case 26: return ETaskResult.StillRunning; - case 10: - return ETaskResult.StillRunning; - case 7: - return ETaskResult.StillRunning; - case 34: - num2 = ((!_206F_200E_200B_206B_202C_206A_206B_200E_206B_202E_206A_206D_202C_200D_200F_200B_200B_206B_202D_200C_200D_202C_202A_200E_206D_200E_200B_202A_206A_206F_206F_202C_202B_200F_202D_206C_200F_202C_202A_206B_202E(gameGui)) ? 839409635 : 839409631); - break; - case 37: - num2 = ((num <= 15000) ? 839409606 : 839409622); - break; - case 6: - goto IL_0195; - case 23: - return ETaskResult.StillRunning; - case 21: - inventoryItemCount = InventoryManager.Instance()->GetInventoryItemCount(purchaseItem.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0); - num2 = ((inventoryItemCount > _countBeforeBuy) ? 839409605 : 839409604); - break; - case 51: - return ETaskResult.StillRunning; - case 32: - return ETaskResult.StillRunning; - case 35: - num2 = (_202D_202E_202D_206E_202A_202A_206B_206B_202C_202E_200B_200D_202B_202C_202E_200B_202B_200E_200D_206E_202B_206B_206C_206C_202A_202D_202B_202E_200C_200C_206C_202A_200D_200C_200F_202C_202C_200F_206B_202D_202E(condition, ConditionFlag.OccupiedInEvent) ? 839409603 : 839409656); - break; - case 30: - _206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1366453963), Array.Empty<object>()); - SetState(EState.WaitForClose); - num2 = 839409637; - break; - case 44: - return ETaskResult.StillRunning; - case 46: - num2 = (_throttle.TryReset(0.5) ? 839409607 : 839409614); - break; - case 56: - goto IL_0292; - case 52: - { - int buyAttempts2 = _buyAttempts; - num4 = 1; - num5 = buyAttempts2; - int num14 = num5 ^ num4; - int num15 = num5 & num4; - _buyAttempts = num14 + (num15 + num15); - _confirmationClicked = false; - ILogger<VendorPurchaseExecutor> logger3 = logger; - string text3 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1763985144); - object[] obj2 = new object[7] { purchaseItem2.ItemId, num16, purchaseItem2.Quantity, _buyAttempts, 3, null, null }; - int purchaseIndex3 = _purchaseIndex; - num4 = 1; - num5 = purchaseIndex3; - int num17 = num5 ^ num4; - int num18 = num5 & num4; - obj2[5] = num17 + (num18 + num18); - obj2[6] = base.Task.Purchases.Count; - _206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_202E((ILogger)logger3, text3, obj2); - SetState(EState.WaitForBuy); - num2 = 839409636; - break; } - case 33: - _206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(519166747), Array.Empty<object>()); + if (gameFunctions.InteractWith(base.Task.VendorNpcId)) + { + logger.LogDebug("Interacted with vendor NPC {NpcId}", base.Task.VendorNpcId); + SetState(EState.WaitForShopOrDialog); + } + return ETaskResult.StillRunning; + case EState.WaitForShopOrDialog: + if (VendorPurchaseActions.IsShopReady(gameGui)) + { + logger.LogDebug("Shop is ready, moving to BuyItem"); SetState(EState.BuyItem); - num2 = 839409658; - break; - case 14: - num2 = ((!_200D_206B_206A_200C_200F_206A_202A_200E_200F_206D_202E_200D_200B_206A_200D_202B_200D_206C_202E_206A_202C_206B_202E_206F_206A_202B_202B_206B_202A_200C_202B_200B_202B_202C_206A_200C_202D_206B_206D_202B_202E(gameGui, base.Task.DialogOptionIndex)) ? 839409658 : 839409638); - break; - case 17: - num2 = ((!gameFunctions.InteractWith(base.Task.VendorNpcId)) ? 839409618 : 839409616); - break; - case 55: - return ETaskResult.StillRunning; - case 47: - _206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(457605072), new object[1] { base.Task.DialogOptionIndex }); - num2 = 839409658; - break; - case 53: - num2 = ((_buyAttempts >= 3) ? 839409659 : 839409633); - break; - case 9: - return ETaskResult.StillRunning; - case 41: - { - _206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-87832125), new object[3] { purchaseItem.ItemId, _countBeforeBuy, inventoryItemCount }); - int purchaseIndex = _purchaseIndex; - num4 = 1; - num5 = purchaseIndex; - int num8 = num5 ^ num4; - int num9 = num5 & num4; - _purchaseIndex = num8 + (num9 + num9); - num2 = ((_purchaseIndex >= base.Task.Purchases.Count) ? 839409629 : 839409601); - break; } - case 36: - purchaseItem2 = base.Task.Purchases[_purchaseIndex]; - num16 = _200B_206D_202D_202A_202A_202E_206A_206E_206A_200C_202A_206C_206D_200E_206D_200D_206B_202D_202D_206A_206C_202C_202D_200F_206E_202D_206F_206F_206C_202C_202B_202A_200E_200E_200D_202B_200E_200C_206C_200D_202E(gameGui, purchaseItem2.ItemId); - num2 = ((num16 >= 0) ? 839409611 : 839409617); - break; - case 1: - goto IL_055e; - case 2: - _countBeforeBuy = InventoryManager.Instance()->GetInventoryItemCount(purchaseItem2.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0); - num2 = ((!_206F_200D_206B_206C_202C_202D_206A_200F_200B_206E_206A_206B_200C_206D_200D_200E_206B_202E_200F_206B_200C_200E_206F_206D_202A_202C_200B_206D_202A_206D_200E_202D_202A_200E_202A_200F_200C_202E_202B_202A_202E(gameGui, num16, purchaseItem2.Quantity)) ? 839409636 : 839409661); - break; - case 50: - _200E_202B_200C_200C_206A_200E_206D_202D_200C_200F_200F_202C_200C_206F_206A_206D_202A_202A_202A_200F_206B_200C_200E_206C_206B_206F_202E_200E_206B_206F_206C_202E_206B_206B_202B_200C_202B_200C_206E_200D_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-968313219), new object[2] { purchaseItem.ItemId, _buyAttempts }); + else if (VendorPurchaseActions.IsDialogReady(gameGui)) + { + if (!_throttle.TryReset(0.5)) + { + return ETaskResult.StillRunning; + } + if (VendorPurchaseActions.TrySelectDialogOption(gameGui, base.Task.DialogOptionIndex)) + { + logger.LogDebug("Selected dialog option {Index} to open shop", base.Task.DialogOptionIndex); + } + } + return ETaskResult.StillRunning; + case EState.BuyItem: + { + if (!_throttle.TryReset(0.5)) + { + return ETaskResult.StillRunning; + } + VendorPurchaseTask.PurchaseItem purchaseItem2 = base.Task.Purchases[_purchaseIndex]; + int num2 = VendorPurchaseActions.FindItemDisplayIndex(gameGui, purchaseItem2.ItemId); + if (num2 < 0) + { + logger.LogError("Item {ItemId} not found in shop display list", purchaseItem2.ItemId); _failed = true; SetState(EState.CloseShop); return ETaskResult.StillRunning; - case 24: - _200E_202B_200C_200C_206A_200E_206D_202D_200C_200F_200F_202C_200C_206F_206A_206D_202A_202A_202A_200F_206B_200C_200E_206C_206B_206F_202E_200E_206B_206F_206C_202E_206B_206B_202B_200C_202B_200C_206E_200D_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(326113005), new object[1] { purchaseItem2.ItemId }); - _failed = true; - SetState(EState.CloseShop); - return ETaskResult.StillRunning; - case 18: + } + _countBeforeBuy = InventoryManager.Instance()->GetInventoryItemCount(purchaseItem2.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0); + if (VendorPurchaseActions.TryBuyItem(gameGui, num2, purchaseItem2.Quantity)) + { + _buyAttempts++; + _confirmationClicked = false; + logger.LogDebug("Submitted purchase for item {ItemId} (display index {DisplayIndex}) x{Quantity}, attempt {Attempt}/{MaxAttempts} ({Current}/{Total})", purchaseItem2.ItemId, num2, purchaseItem2.Quantity, _buyAttempts, 3, _purchaseIndex + 1, base.Task.Purchases.Count); + SetState(EState.WaitForBuy); + } + return ETaskResult.StillRunning; + } + case EState.WaitForBuy: + { + VendorPurchaseTask.PurchaseItem purchaseItem = base.Task.Purchases[_purchaseIndex]; + if (!_confirmationClicked && VendorPurchaseActions.TryConfirmPurchase(gameGui)) + { _confirmationClicked = true; - _206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1038383555), new object[1] { purchaseItem.ItemId }); + logger.LogDebug("Confirmed purchase of item {ItemId}", purchaseItem.ItemId); SetState(EState.WaitForBuy); return ETaskResult.StillRunning; - case 13: - num2 = ((num >= 2000) ? 839409660 : 839409641); - break; - case 31: - _206D_202B_206F_206B_200B_206E_202B_206A_200B_206C_206C_202C_206A_206B_206F_206B_200D_200B_206A_206A_202A_202B_200F_202E_202B_200B_200E_200B_206D_200B_202E_202D_202B_206A_206D_202D_202A_200B_200B_200C_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-208232877), new object[2] { _state, num }); - return ETaskResult.RetryStep; - case 19: - num2 = (_throttle.TryReset(0.5) ? 839409657 : 839409600); - break; - case 54: + } + int inventoryItemCount = InventoryManager.Instance()->GetInventoryItemCount(purchaseItem.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0); + if (inventoryItemCount <= _countBeforeBuy) + { + if (num < 2000) + { + return ETaskResult.StillRunning; + } + if (_buyAttempts < 3) + { + logger.LogWarning("Purchase of item {ItemId} was not reflected in inventory; retrying ({Attempt}/{MaxAttempts})", purchaseItem.ItemId, _buyAttempts + 1, 3); + SetState(EState.BuyItem); + return ETaskResult.StillRunning; + } + logger.LogError("Purchase of item {ItemId} failed after {Attempts} attempts", purchaseItem.ItemId, _buyAttempts); + _failed = true; + SetState(EState.CloseShop); return ETaskResult.StillRunning; - case 38: + } + if (!_throttle.TryReset(0.5)) + { return ETaskResult.StillRunning; - case 8: + } + logger.LogDebug("Verified purchase of item {ItemId}: inventory {Before} -> {After}", purchaseItem.ItemId, _countBeforeBuy, inventoryItemCount); + _purchaseIndex++; + if (_purchaseIndex < base.Task.Purchases.Count) { _buyAttempts = 0; - ILogger<VendorPurchaseExecutor> logger2 = logger; - string text2 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-274284666); - object[] array = new object[2]; - int purchaseIndex2 = _purchaseIndex; - num4 = 1; - num5 = purchaseIndex2; - int num12 = num5 ^ num4; - int num13 = num5 & num4; - array[0] = num12 + (num13 + num13); - array[1] = base.Task.Purchases.Count; - _206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_202E((ILogger)logger2, text2, array); + logger.LogDebug("Buying next item ({Index}/{Total})", _purchaseIndex + 1, base.Task.Purchases.Count); SetState(EState.BuyItem); - num2 = 839409663; - break; } - case 20: - _206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1561512200), Array.Empty<object>()); - SetState(EState.CloseShop); - num2 = 839409663; - break; - case 27: - return ETaskResult.StillRunning; - case 49: - num2 = ((!_failed) ? 839409610 : 839409625); - break; - case 25: - _206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(816270239), new object[1] { base.Task.VendorNpcId }); - SetState(EState.WaitForShopOrDialog); - num2 = 839409618; - break; - case 22: - return ETaskResult.StillRunning; - case 39: - num2 = 839409662; - break; - case 43: - goto IL_0831; - case 15: - switch (_state) - { - case EState.WaitForClose: - break; - case EState.BuyItem: - goto IL_0195; - case EState.WaitForShopOrDialog: - goto IL_0292; - case EState.CloseShop: - goto IL_055e; - case EState.WaitForBuy: - goto IL_0831; - default: - goto IL_0892; - case EState.InteractWithNpc: - goto IL_0a14; - } - goto case 34; - case 40: + else + { + logger.LogDebug("All purchases complete, closing shop"); + SetState(EState.CloseShop); + } + return ETaskResult.StillRunning; + } + case EState.CloseShop: + if (!_throttle.TryReset(0.5)) { - ILogger<VendorPurchaseExecutor> logger = logger; - string text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-366147931); - object[] obj = new object[3] { purchaseItem.ItemId, null, null }; - int buyAttempts = _buyAttempts; - num4 = 1; - num5 = buyAttempts; - int num10 = num5 ^ num4; - int num11 = num5 & num4; - obj[1] = num10 + (num11 + num11); - obj[2] = 3; - _206D_202B_206F_206B_200B_206E_202B_206A_200B_206C_206C_202C_206A_206B_206F_206B_200D_200B_206A_206A_202A_202B_200F_202E_202B_200B_200E_200B_206D_200B_202E_202D_202B_206A_206D_202D_202A_200B_200B_200C_202E((ILogger)logger, text, obj); - SetState(EState.BuyItem); return ETaskResult.StillRunning; } - case 42: - num2 = ((!_206F_200D_202E_206A_206F_200C_206A_200C_202B_206F_206A_200D_200E_206B_200E_200D_200B_200D_202A_206A_200F_206E_206A_206A_200D_206E_202C_206F_202D_206A_206B_206F_200D_206A_206B_206E_206C_206A_206A_206A_202E(gameGui)) ? 839409642 : 839409626); - break; - case 45: + if (VendorPurchaseActions.TryCloseShop(gameGui)) + { + logger.LogDebug("Closing shop"); + SetState(EState.WaitForClose); + } + return ETaskResult.StillRunning; + case EState.WaitForClose: + if (VendorPurchaseActions.IsShopReady(gameGui)) + { return ETaskResult.StillRunning; - case 0: - num2 = ((!_206B_200B_206C_202D_206B_206C_202E_202E_202C_206E_206E_200C_206F_202D_200B_200C_206A_200B_202B_202C_206C_206D_206A_202A_200F_200C_206C_200F_202A_200D_206A_206C_200E_202A_206B_206B_202C_200D_200C_200D_202E(gameGui)) ? 839409628 : 839409627); - break; - case 12: - num2 = (_throttle.TryReset(0.5) ? 839409632 : 839409647); - break; - case 29: - num2 = ((!_206F_200D_202E_206A_206F_200C_206A_200C_202B_206F_206A_200D_200E_206B_200E_200D_200B_200D_202A_206A_200F_206E_206A_206A_200D_206E_202C_206F_202D_206A_206B_206F_200D_206A_206B_206E_206C_206A_206A_206A_202E(gameGui)) ? 839409658 : 839409639); - break; - case 3: - _206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1460452754), Array.Empty<object>()); - return ETaskResult.TaskComplete; - case 4: - return ETaskResult.StillRunning; - case 28: - num2 = ((!_206D_202A_202D_200F_206C_202A_200D_206A_202E_206A_206B_200C_206F_206B_202C_206D_200C_206C_202D_200F_202D_200F_206C_206C_200C_200D_202D_200C_202A_200D_202D_206D_200B_200D_202C_206D_206F_206A_202A_202C_202E(gameGui)) ? 839409637 : 839409623); - break; - case 48: - _200D_206B_206A_200C_200F_206A_202A_200E_200F_206D_202E_200D_200B_206A_200D_202B_200D_206C_202E_206A_202C_206B_202E_206F_206A_202B_202B_206B_202A_200C_202B_200B_202B_202C_206A_200C_202D_206B_206D_202B_202E(gameGui, -1); - _206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(408167584), Array.Empty<object>()); - return ETaskResult.StillRunning; - case 5: - goto IL_0a14; - case 16: + } + if (VendorPurchaseActions.IsDialogReady(gameGui)) + { + if (!_throttle.TryReset(0.5)) { - _206D_202B_206F_206B_200B_206E_202B_206A_200B_206C_206C_202C_206A_206B_206F_206B_200D_200B_206A_206A_202A_202B_200F_202E_202B_200B_200E_200B_206D_200B_202E_202D_202B_206A_206D_202D_202A_200B_200B_200C_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1743816671), Array.Empty<object>()); + return ETaskResult.StillRunning; + } + VendorPurchaseActions.TrySelectDialogOption(gameGui, -1); + logger.LogDebug("Dismissing post-shop dialog"); + return ETaskResult.StillRunning; + } + if (!condition[ConditionFlag.OccupiedInEvent]) + { + if (_failed) + { + logger.LogWarning("Shop closed after failed purchase, retrying"); return ETaskResult.RetryStep; } - IL_0a14: - num2 = (_throttle.TryReset(1.0) ? 839409624 : 839409619); - break; - IL_0892: - num2 = 839409646; - break; - IL_0831: - purchaseItem = base.Task.Purchases[_purchaseIndex]; - num2 = (_confirmationClicked ? 839409628 : 839409609); - break; - IL_0292: - num2 = ((!_206F_200E_200B_206B_202C_206A_206B_200E_206B_202E_206A_206D_202C_200D_200F_200B_200B_206B_202D_200C_200D_202C_202A_200E_206D_200E_200B_202A_206A_206F_206F_202C_202B_200F_202D_206C_200F_202C_202A_206B_202E(gameGui)) ? 839409620 : 839409640); - break; - IL_0195: - num2 = (_throttle.TryReset(0.5) ? 839409645 : 839409613); - break; - IL_055e: - num2 = (_throttle.TryReset(0.5) ? 839409621 : 839409630); - break; + logger.LogDebug("Shop closed, vendor purchase complete"); + return ETaskResult.TaskComplete; } + return ETaskResult.StillRunning; + default: + return ETaskResult.StillRunning; } } private void SetState(EState state) { _state = state; - _stateStartMs = _206E_206E_200E_202B_202A_206A_200C_206D_206A_202D_202B_206E_206D_206E_200C_200D_202A_200D_200C_202D_202E_200F_206D_206E_206C_202C_206C_206A_200E_206D_200F_206C_206E_202B_206A_206B_200E_200F_206E_206B_202E(); + _stateStartMs = Environment.TickCount64; } public override bool ShouldInterruptOnDamage() { return false; } - - static long _206E_206E_200E_202B_202A_206A_200C_206D_206A_202D_202B_206E_206D_206E_200C_200D_202A_200D_200C_202D_202E_200F_206D_206E_206C_202C_206C_206A_200E_206D_200F_206C_206E_202B_206A_206B_200E_200F_206E_206B_202E() - { - return Environment.TickCount64; - } - - static void _206D_202B_206F_206B_200B_206E_202B_206A_200B_206C_206C_202C_206A_206B_206F_206B_200D_200B_206A_206A_202A_202B_200F_202E_202B_200B_200E_200B_206D_200B_202E_202D_202B_206A_206D_202D_202A_200B_200B_200C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static void _206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _206F_200E_200B_206B_202C_206A_206B_200E_206B_202E_206A_206D_202C_200D_200F_200B_200B_206B_202D_200C_200D_202C_202A_200E_206D_200E_200B_202A_206A_206F_206F_202C_202B_200F_202D_206C_200F_202C_202A_206B_202E(IGameGui P_0) - { - return VendorPurchaseActions.IsShopReady(P_0); - } - - static bool _206F_200D_202E_206A_206F_200C_206A_200C_202B_206F_206A_200D_200E_206B_200E_200D_200B_200D_202A_206A_200F_206E_206A_206A_200D_206E_202C_206F_202D_206A_206B_206F_200D_206A_206B_206E_206C_206A_206A_206A_202E(IGameGui P_0) - { - return VendorPurchaseActions.IsDialogReady(P_0); - } - - static bool _200D_206B_206A_200C_200F_206A_202A_200E_200F_206D_202E_200D_200B_206A_200D_202B_200D_206C_202E_206A_202C_206B_202E_206F_206A_202B_202B_206B_202A_200C_202B_200B_202B_202C_206A_200C_202D_206B_206D_202B_202E(IGameGui P_0, int P_1) - { - return VendorPurchaseActions.TrySelectDialogOption(P_0, P_1); - } - - static int _200B_206D_202D_202A_202A_202E_206A_206E_206A_200C_202A_206C_206D_200E_206D_200D_206B_202D_202D_206A_206C_202C_202D_200F_206E_202D_206F_206F_206C_202C_202B_202A_200E_200E_200D_202B_200E_200C_206C_200D_202E(IGameGui P_0, uint P_1) - { - return VendorPurchaseActions.FindItemDisplayIndex(P_0, P_1); - } - - static void _200E_202B_200C_200C_206A_200E_206D_202D_200C_200F_200F_202C_200C_206F_206A_206D_202A_202A_202A_200F_206B_200C_200E_206C_206B_206F_202E_200E_206B_206F_206C_202E_206B_206B_202B_200C_202B_200C_206E_200D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogError(P_1, P_2); - } - - static bool _206F_200D_206B_206C_202C_202D_206A_200F_200B_206E_206A_206B_200C_206D_200D_200E_206B_202E_200F_206B_200C_200E_206F_206D_202A_202C_200B_206D_202A_206D_200E_202D_202A_200E_202A_200F_200C_202E_202B_202A_202E(IGameGui P_0, int P_1, int P_2) - { - return VendorPurchaseActions.TryBuyItem(P_0, P_1, P_2); - } - - static bool _206B_200B_206C_202D_206B_206C_202E_202E_202C_206E_206E_200C_206F_202D_200B_200C_206A_200B_202B_202C_206C_206D_206A_202A_200F_200C_206C_200F_202A_200D_206A_206C_200E_202A_206B_206B_202C_200D_200C_200D_202E(IGameGui P_0) - { - return VendorPurchaseActions.TryConfirmPurchase(P_0); - } - - static bool _206D_202A_202D_200F_206C_202A_200D_206A_202E_206A_206B_200C_206F_206B_202C_206D_200C_206C_202D_200F_202D_200F_206C_206C_200C_200D_202D_200C_202A_200D_202D_206D_200B_200D_202C_206D_206F_206A_202A_202C_202E(IGameGui P_0) - { - return VendorPurchaseActions.TryCloseShop(P_0); - } - - static bool _202D_202E_202D_206E_202A_202A_206B_206B_202C_202E_200B_200D_202B_202C_202E_200B_202B_200E_200D_206E_202B_206B_206C_206C_202A_202D_202B_202E_200C_200C_206C_202A_200D_200C_200F_202C_202C_200F_206B_202D_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } } diff --git a/Questionable/Questionable.Controller.CustomDelivery/VendorPurchaseTask.cs b/Questionable/Questionable.Controller.CustomDelivery/VendorPurchaseTask.cs index 9d7db25..bbb87a8 100644 --- a/Questionable/Questionable.Controller.CustomDelivery/VendorPurchaseTask.cs +++ b/Questionable/Questionable.Controller.CustomDelivery/VendorPurchaseTask.cs @@ -1,244 +1,18 @@ -using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Questionable.Controller.Steps; namespace Questionable.Controller.CustomDelivery; internal sealed record VendorPurchaseTask(uint VendorNpcId, IReadOnlyList<PurchaseItem> Purchases, int DialogOptionIndex = 0) : ITask { - internal readonly record struct PurchaseItem(uint ItemId, int Quantity) - { - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206F_200F_200F_206B_200C_206F_200D_202E_206F_202D_200D_200E_202C_202E_206F_206C_200D_206D_206F_206D_206E_206A_206B_206F_206E_200D_200C_206B_200F_200D_200C_202A_202B_200F_206D_200E_202C_202D_206A_202C_202E(); - _202E_200B_206F_206D_202A_200F_206B_200D_200F_202C_202E_200B_206B_206D_202D_206B_202B_206F_206A_200E_202C_202C_202A_206B_206A_206B_202B_206A_202B_206A_206D_202D_206F_206C_206C_206A_206D_206C_202B_202E_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1504160608)); - _202E_200B_206F_206D_202A_200F_206B_200D_200F_202C_202E_200B_206B_206D_202D_206B_202B_206F_206A_200E_202C_202C_202A_206B_206A_206B_202B_206A_202B_206A_206D_202D_206F_206C_206C_206A_206D_206C_202B_202E_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125)); - int num = ((!PrintMembers(stringBuilder)) ? 1320909858 : 1320909859); - while (true) - { - int num2 = num; - int num3 = 1320909858; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 1320909859; - break; - case 1: - _202A_202A_206F_206C_206B_200F_202A_200F_200C_200D_206B_200E_206B_200E_200E_202D_206F_202E_206A_202E_206B_202B_200E_200F_200B_202E_200F_200B_202C_200D_200B_202A_206E_206D_200C_202C_202E_206A_200B_200F_202E(stringBuilder, ' '); - num = 1320909858; - break; - case 0: - _202A_202A_206F_206C_206B_200F_202A_200F_200C_200D_206B_200E_206B_200E_200E_202D_206F_202E_206A_202E_206B_202B_200E_200F_200B_202E_200F_200B_202C_200D_200B_202A_206E_206D_200C_202C_202E_206A_200B_200F_202E(stringBuilder, '}'); - return _206C_202D_206D_200E_200B_200F_200E_200C_202C_206D_206A_202E_202E_200C_206D_202E_200B_202C_206B_200F_206A_200D_202E_206D_200B_206A_202B_202C_200F_200F_200B_202E_202C_202B_200E_202B_206C_206E_200E_200C_202E((object)stringBuilder); - } - } - } + internal readonly record struct PurchaseItem(uint ItemId, int Quantity); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202E_200B_206F_206D_202A_200F_206B_200D_200F_202C_202E_200B_206B_206D_202D_206B_202B_206F_206A_200E_202C_202C_202A_206B_206A_206B_202B_206A_202B_206A_206D_202D_206F_206C_206C_206A_206D_206C_202B_202E_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1176260912)); - _202E_200B_206F_206D_202A_200F_206B_200D_200F_202C_202E_200B_206B_206D_202D_206B_202B_206F_206A_200E_202C_202C_202A_206B_206A_206B_202B_206A_202B_206A_206D_202D_206F_206C_206C_206A_206D_206C_202B_202E_202E(builder, ItemId.ToString()); - _202E_200B_206F_206D_202A_200F_206B_200D_200F_202C_202E_200B_206B_206D_202D_206B_202B_206F_206A_200E_202C_202C_202A_206B_206A_206B_202B_206A_202B_206A_206D_202D_206F_206C_206C_206A_206D_206C_202B_202E_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-640041388)); - _202E_200B_206F_206D_202A_200F_206B_200D_200F_202C_202E_200B_206B_206D_202D_206B_202B_206F_206A_200E_202C_202C_202A_206B_206A_206B_202B_206A_202B_206A_206D_202D_206F_206C_206C_206A_206D_206C_202B_202E_202E(builder, Quantity.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(PurchaseItem other) - { - int num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? (-997799700) : (-997799699)); - while (true) - { - int num2 = num; - int num3 = -997799700; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0058; - case 1: - return EqualityComparer<int>.Default.Equals(Quantity, other.Quantity); - case 0: - return false; - } - continue; - IL_0058: - num = -997799699; - } - } - - bool IEquatable<PurchaseItem>.Equals(PurchaseItem other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _206F_200F_200F_206B_200C_206F_200D_202E_206F_202D_200D_200E_202C_202E_206F_206C_200D_206D_206F_206D_206E_206A_206B_206F_206E_200D_200C_206B_200F_200D_200C_202A_202B_200F_206D_200E_202C_202D_206A_202C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202E_200B_206F_206D_202A_200F_206B_200D_200F_202C_202E_200B_206B_206D_202D_206B_202B_206F_206A_200E_202C_202C_202A_206B_206A_206B_202B_206A_202B_206A_206D_202D_206F_206C_206C_206A_206D_206C_202B_202E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202A_202A_206F_206C_206B_200F_202A_200F_200C_200D_206B_200E_206B_200E_200E_202D_206F_202E_206A_202E_206B_202B_200E_200F_200B_202E_200F_200B_202C_200D_200B_202A_206E_206D_200C_202C_202E_206A_200B_200F_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206C_202D_206D_200E_200B_200F_200E_200C_202C_206D_206A_202E_202E_200C_206D_202E_200B_202C_206B_200F_206A_200D_202E_206D_200B_206A_202B_202C_200F_200F_200B_202E_202C_202B_200E_202B_206C_206E_200E_200C_202E(object P_0) - { - return P_0.ToString(); - } - } - - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206B_206B_206F_200C_206F_202C_206A_200C_206B_206C_200C_200B_200F_200B_202E_202A_200E_200C_206E_206B_202D_202E_202D_206A_200F_202B_202E_202B_206A_206F_206A_200B_200C_200D_200B_206A_206D_200B_206B_202E(typeof(VendorPurchaseTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - int num = ((Purchases.Count == 1) ? 681809870 : 681809871); - while (true) + if (Purchases.Count == 1) { - int num2 = num; - int num3 = 681809870; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0052; - case 0: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(34, 4); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-426748651)); - defaultInterpolatedStringHandler2.AppendFormatted(VendorNpcId); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1317325121)); - defaultInterpolatedStringHandler2.AppendFormatted(Purchases[0].ItemId); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1725354679)); - defaultInterpolatedStringHandler2.AppendFormatted(Purchases[0].Quantity); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1203794399)); - defaultInterpolatedStringHandler2.AppendFormatted(DialogOptionIndex); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - return defaultInterpolatedStringHandler2.ToStringAndClear(); - } - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(33, 3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1531781508)); - defaultInterpolatedStringHandler.AppendFormatted(VendorNpcId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1467939024)); - defaultInterpolatedStringHandler.AppendFormatted(Purchases.Count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1987907938)); - defaultInterpolatedStringHandler.AppendFormatted(DialogOptionIndex); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - } - continue; - IL_0052: - num = 681809871; + return $"VendorPurchase({VendorNpcId}, item {Purchases[0].ItemId} x{Purchases[0].Quantity}, dialog {DialogOptionIndex})"; } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200C_200B_202C_202A_206A_206D_206B_200C_202A_202C_202A_202A_202E_206E_206B_206B_200B_206B_200B_200E_206A_200C_206A_206C_206E_200F_202E_200E_202D_206E_202D_202C_202E_202A_206A_206C_206D_200D_200E_200E_202E(); - _206A_206F_206E_206E_202A_202A_206A_200C_200F_200B_206F_206A_202A_200C_206A_202E_206F_200E_206C_206B_200F_206A_200E_200E_206F_200D_202B_202B_200D_206F_206D_200C_200B_206F_206E_200C_206E_200B_200D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(206754998)); - _206A_206F_206E_206E_202A_202A_206A_200C_200F_200B_206F_206A_202A_200C_206A_202E_206F_200E_206C_206B_200F_206A_200E_200E_206F_200D_202B_202B_200D_206F_206D_200C_200B_206F_206E_200C_206E_200B_200D_202E(builder, VendorNpcId.ToString()); - _206A_206F_206E_206E_202A_202A_206A_200C_200F_200B_206F_206A_202A_200C_206A_202E_206F_200E_206C_206B_200F_206A_200E_200E_206F_200D_202B_202B_200D_206F_206D_200C_200B_206F_206E_200C_206E_200B_200D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(166759684)); - _202E_206F_200B_202B_202B_202E_200F_206C_200B_200B_202A_206F_200E_200E_206B_202E_202B_206E_206C_202B_200F_200E_202B_206F_202D_202A_206A_200E_200E_206F_206A_200B_206E_206D_206F_206F_202C_202D_206A_202A_202E(builder, (object)Purchases); - _206A_206F_206E_206E_202A_202A_206A_200C_200F_200B_206F_206A_202A_200C_206A_202E_206F_200E_206C_206B_200F_206A_200E_200E_206F_200D_202B_202B_200D_206F_206D_200C_200B_206F_206E_200C_206E_200B_200D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(474766985)); - _206A_206F_206E_206E_202A_202A_206A_200C_200F_200B_206F_206A_202A_200C_206A_202E_206F_200E_206C_206B_200F_206A_200E_200E_206F_200D_202B_202B_200D_206F_206D_200C_200B_206F_206E_200C_206E_200B_200D_202E(builder, DialogOptionIndex.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(VendorPurchaseTask? other) - { - int num = (((object)this == other) ? (-1933996366) : (-1933996367)); - while (true) - { - int num2 = num; - int num3 = -1933996361; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1933996367; - break; - case 5: - return true; - case 6: - num = (((object)other == null) ? (-1933996364) : (-1933996362)); - break; - case 2: - return EqualityComparer<int>.Default.Equals(DialogOptionIndex, other.DialogOptionIndex); - case 7: - num = ((!EqualityComparer<uint>.Default.Equals(VendorNpcId, other.VendorNpcId)) ? (-1933996364) : (-1933996365)); - break; - case 4: - num = ((!EqualityComparer<IReadOnlyList<PurchaseItem>>.Default.Equals(Purchases, other.Purchases)) ? (-1933996364) : (-1933996363)); - break; - case 1: - num = ((!_202C_202E_200C_202E_202C_200D_200B_200F_206C_202E_202A_200D_200C_200D_202E_206F_202A_202C_202A_200F_200D_202D_206F_206D_206B_206F_206A_202E_200F_202D_202A_202A_200E_200B_202D_206D_206B_200B_202A_202B_202E(EqualityContract, other.EqualityContract)) ? (-1933996364) : (-1933996368)); - break; - case 3: - return false; - } - } - } - - bool IEquatable<VendorPurchaseTask>.Equals(VendorPurchaseTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206B_206B_206F_200C_206F_202C_206A_200C_206B_206C_200C_200B_200F_200B_202E_202A_200E_200C_206E_206B_202D_202E_202D_206A_200F_202B_202E_202B_206A_206F_206A_200B_200C_200D_200B_206A_206D_200B_206B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _200C_200B_202C_202A_206A_206D_206B_200C_202A_202C_202A_202A_202E_206E_206B_206B_200B_206B_200B_200E_206A_200C_206A_206C_206E_200F_202E_200E_202D_206E_202D_202C_202E_202A_206A_206C_206D_200D_200E_200E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206A_206F_206E_206E_202A_202A_206A_200C_200F_200B_206F_206A_202A_200C_206A_202E_206F_200E_206C_206B_200F_206A_200E_200E_206F_200D_202B_202B_200D_206F_206D_200C_200B_206F_206E_200C_206E_200B_200D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202E_206F_200B_202B_202B_202E_200F_206C_200B_200B_202A_206F_200E_200E_206B_202E_202B_206E_206C_202B_200F_200E_202B_206F_202D_202A_206A_200E_200E_206F_206A_200B_206E_206D_206F_206F_202C_202D_206A_202A_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202C_202E_200C_202E_202C_200D_200B_200F_206C_202E_202A_200D_200C_200D_202E_206F_202A_202C_202A_200F_200D_202D_206F_206D_206B_206F_206A_202E_200F_202D_202A_202A_200E_200B_202D_206D_206B_200B_202A_202B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"VendorPurchase({VendorNpcId}, {Purchases.Count} items, dialog {DialogOptionIndex})"; } } diff --git a/Questionable/Questionable.Controller.CustomDelivery/VendorResolverService.cs b/Questionable/Questionable.Controller.CustomDelivery/VendorResolverService.cs index 3f0d17d..004dd0e 100644 --- a/Questionable/Questionable.Controller.CustomDelivery/VendorResolverService.cs +++ b/Questionable/Questionable.Controller.CustomDelivery/VendorResolverService.cs @@ -1,8 +1,5 @@ -using System; using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Plugin.Services; using LLib.GameData; using LLib.Shop; @@ -14,579 +11,100 @@ namespace Questionable.Controller.CustomDelivery; internal sealed class VendorResolverService(IDataManager dataManager, VendorResolver vendorResolver, NpcPositionCache npcPositionCache, ILogger<VendorResolverService> logger) { - internal readonly record struct IngredientInfo(uint ItemId, int CountPerCraft) - { - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200E_206E_200E_206F_200D_200E_202C_206A_200C_202A_206B_200E_200E_202E_202C_200D_202A_206E_206D_200C_200F_202A_206C_200E_202D_200B_200C_206D_206A_206B_202D_206B_200C_206C_206F_206B_202D_202E_206C_200D_202E(); - _202C_206A_206F_206A_200F_206C_200E_200B_202E_200F_202E_200C_206F_202B_206C_206E_202C_200C_206A_202B_206E_202E_200F_200E_206E_202E_200B_206C_200D_206F_200E_202B_202D_206D_202A_200B_206C_206A_206F_206C_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1900362320)); - _202C_206A_206F_206A_200F_206C_200E_200B_202E_200F_202E_200C_206F_202B_206C_206E_202C_200C_206A_202B_206E_202E_200F_200E_206E_202E_200B_206C_200D_206F_200E_202B_202D_206D_202A_200B_206C_206A_206F_206C_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(556540328)); - int num = ((!PrintMembers(stringBuilder)) ? 985551290 : 985551291); - while (true) - { - int num2 = num; - int num3 = 985551290; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 985551291; - break; - case 0: - _202D_206F_206D_200C_206E_206F_200C_200D_202C_200B_202D_202B_206E_202A_206F_200F_200C_200B_206C_202B_206F_200C_202E_202D_200E_202D_202B_200F_200D_202D_200B_202C_202E_200E_206A_202E_206A_206E_202B_206C_202E(stringBuilder, '}'); - return _200C_206D_202E_202B_202E_202D_206B_200C_206B_202B_206D_200B_206F_206F_200C_200E_206F_202B_200B_200C_202D_206A_202C_206A_206D_200F_206E_200F_200E_206C_202B_200B_202E_202E_200B_202C_202D_202D_200E_206E_202E((object)stringBuilder); - case 1: - _202D_206F_206D_200C_206E_206F_200C_200D_202C_200B_202D_202B_206E_202A_206F_200F_200C_200B_206C_202B_206F_200C_202E_202D_200E_202D_202B_200F_200D_202D_200B_202C_202E_200E_206A_202E_206A_206E_202B_206C_202E(stringBuilder, ' '); - num = 985551290; - break; - } - } - } + internal readonly record struct IngredientInfo(uint ItemId, int CountPerCraft); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202C_206A_206F_206A_200F_206C_200E_200B_202E_200F_202E_200C_206F_202B_206C_206E_202C_200C_206A_202B_206E_202E_200F_200E_206E_202E_200B_206C_200D_206F_200E_202B_202D_206D_202A_200B_206C_206A_206F_206C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1176260912)); - _202C_206A_206F_206A_200F_206C_200E_200B_202E_200F_202E_200C_206F_202B_206C_206E_202C_200C_206A_202B_206E_202E_200F_200E_206E_202E_200B_206C_200D_206F_200E_202B_202D_206D_202A_200B_206C_206A_206F_206C_202E(builder, ItemId.ToString()); - _202C_206A_206F_206A_200F_206C_200E_200B_202E_200F_202E_200C_206F_202B_206C_206E_202C_200C_206A_202B_206E_202E_200F_200E_206E_202E_200B_206C_200D_206F_200E_202B_202D_206D_202A_200B_206C_206A_206F_206C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-710805120)); - _202C_206A_206F_206A_200F_206C_200E_200B_202E_200F_202E_200C_206F_202B_206C_206E_202C_200C_206A_202B_206E_202E_200F_200E_206E_202E_200B_206C_200D_206F_200E_202B_202D_206D_202A_200B_206C_206A_206F_206C_202E(builder, CountPerCraft.ToString()); - return true; - } + internal readonly record struct RecipeInfo(uint RecipeId, uint CraftedItemId, IReadOnlyList<IngredientInfo> Ingredients, EClassJob CraftingClass); - [CompilerGenerated] - public bool Equals(IngredientInfo other) - { - int num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? (-577386697) : (-577386700)); - while (true) - { - int num2 = num; - int num3 = -577386698; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return false; - case 2: - return EqualityComparer<int>.Default.Equals(CountPerCraft, other.CountPerCraft); - case 0: - goto IL_0071; - } - continue; - IL_0071: - num = -577386700; - } - } + internal readonly record struct VendorInfo(uint ShopId, uint VendorNpcId, ushort TerritoryId, Vector3 Position, int DialogOptionIndex); - bool IEquatable<IngredientInfo>.Equals(IngredientInfo other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _200E_206E_200E_206F_200D_200E_202C_206A_200C_202A_206B_200E_200E_202E_202C_200D_202A_206E_206D_200C_200F_202A_206C_200E_202D_200B_200C_206D_206A_206B_202D_206B_200C_206C_206F_206B_202D_202E_206C_200D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202C_206A_206F_206A_200F_206C_200E_200B_202E_200F_202E_200C_206F_202B_206C_206E_202C_200C_206A_202B_206E_202E_200F_200E_206E_202E_200B_206C_200D_206F_200E_202B_202D_206D_202A_200B_206C_206A_206F_206C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202D_206F_206D_200C_206E_206F_200C_200D_202C_200B_202D_202B_206E_202A_206F_200F_200C_200B_206C_202B_206F_200C_202E_202D_200E_202D_202B_200F_200D_202D_200B_202C_202E_200E_206A_202E_206A_206E_202B_206C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200C_206D_202E_202B_202E_202D_206B_200C_206B_202B_206D_200B_206F_206F_200C_200E_206F_202B_200B_200C_202D_206A_202C_206A_206D_200F_206E_200F_200E_206C_202B_200B_202E_202E_200B_202C_202D_202D_200E_206E_202E(object P_0) - { - return P_0.ToString(); - } - } - - internal readonly record struct RecipeInfo(uint RecipeId, uint CraftedItemId, IReadOnlyList<IngredientInfo> Ingredients, EClassJob CraftingClass) - { - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206C_206D_202C_206A_206C_206D_206A_200C_202C_206A_206A_202B_206F_200E_206C_206F_206F_200D_200F_200C_206E_202C_206E_206F_202D_202B_200F_206F_202A_206E_202E_202E_206F_202C_202C_206F_202E_200E_202A_206F_202E(); - _200E_202B_200F_200B_200F_206A_200E_206C_206C_206E_200C_206F_206B_202E_206F_202A_200E_202D_202C_206E_202A_202A_206D_200F_202D_206E_202A_202E_206E_200F_206D_200F_200C_206E_200B_202C_206D_200D_202C_200E_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1038169593)); - _200E_202B_200F_200B_200F_206A_200E_206C_206C_206E_200C_206F_206B_202E_206F_202A_200E_202D_202C_206E_202A_202A_206D_200F_202D_206E_202A_202E_206E_200F_206D_200F_200C_206E_200B_202C_206D_200D_202C_200E_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125)); - int num = ((!PrintMembers(stringBuilder)) ? 935744891 : 935744888); - while (true) - { - int num2 = num; - int num3 = 935744890; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 935744888; - break; - case 1: - _202A_202B_202D_206F_206C_206D_202E_202A_206D_200F_200D_202A_202A_200E_206E_206E_206B_200D_206A_202C_200B_206A_202A_202C_206D_200F_200F_200C_200E_206E_200D_206B_202E_200F_202D_200B_202B_202C_202B_202C_202E(stringBuilder, '}'); - return _206C_202A_202D_202C_206F_206A_200C_202B_200C_200E_206B_200C_200E_206D_206E_202C_206F_206E_200E_200C_202C_206E_206A_202D_206B_202B_200D_200E_202E_206D_206C_202C_200C_206F_200B_202C_200F_202B_200F_206D_202E((object)stringBuilder); - case 2: - _202A_202B_202D_206F_206C_206D_202E_202A_206D_200F_200D_202A_202A_200E_206E_206E_206B_200D_206A_202C_200B_206A_202A_202C_206D_200F_200F_200C_200E_206E_200D_206B_202E_200F_202D_200B_202B_202C_202B_202C_202E(stringBuilder, ' '); - num = 935744891; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200E_202B_200F_200B_200F_206A_200E_206C_206C_206E_200C_206F_206B_202E_206F_202A_200E_202D_202C_206E_202A_202A_206D_200F_202D_206E_202A_202E_206E_200F_206D_200F_200C_206E_200B_202C_206D_200D_202C_200E_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1168472186)); - _200E_202B_200F_200B_200F_206A_200E_206C_206C_206E_200C_206F_206B_202E_206F_202A_200E_202D_202C_206E_202A_202A_206D_200F_202D_206E_202A_202E_206E_200F_206D_200F_200C_206E_200B_202C_206D_200D_202C_200E_202E(builder, RecipeId.ToString()); - _200E_202B_200F_200B_200F_206A_200E_206C_206C_206E_200C_206F_206B_202E_206F_202A_200E_202D_202C_206E_202A_202A_206D_200F_202D_206E_202A_202E_206E_200F_206D_200F_200C_206E_200B_202C_206D_200D_202C_200E_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-229385593)); - _200E_202B_200F_200B_200F_206A_200E_206C_206C_206E_200C_206F_206B_202E_206F_202A_200E_202D_202C_206E_202A_202A_206D_200F_202D_206E_202A_202E_206E_200F_206D_200F_200C_206E_200B_202C_206D_200D_202C_200E_202E(builder, CraftedItemId.ToString()); - _200E_202B_200F_200B_200F_206A_200E_206C_206C_206E_200C_206F_206B_202E_206F_202A_200E_202D_202C_206E_202A_202A_206D_200F_202D_206E_202A_202E_206E_200F_206D_200F_200C_206E_200B_202C_206D_200D_202C_200E_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1346587480)); - _200D_202A_202C_206A_206F_202D_206A_202C_206D_206F_206D_202A_202B_200E_200E_206B_200F_206C_206D_206D_206E_202B_200C_200D_200D_202D_202C_200C_200F_206F_202D_206A_202E_206A_200F_202B_206C_206A_200D_206B_202E(builder, (object)Ingredients); - _200E_202B_200F_200B_200F_206A_200E_206C_206C_206E_200C_206F_206B_202E_206F_202A_200E_202D_202C_206E_202A_202A_206D_200F_202D_206E_202A_202E_206E_200F_206D_200F_200C_206E_200B_202C_206D_200D_202C_200E_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-356853243)); - _200E_202B_200F_200B_200F_206A_200E_206C_206C_206E_200C_206F_206B_202E_206F_202A_200E_202D_202C_206E_202A_202A_206D_200F_202D_206E_202A_202E_206E_200F_206D_200F_200C_206E_200B_202C_206D_200D_202C_200E_202E(builder, CraftingClass.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(RecipeInfo other) - { - int num = ((!EqualityComparer<uint>.Default.Equals(RecipeId, other.RecipeId)) ? 1163014536 : 1163014541); - while (true) - { - int num2 = num; - int num3 = 1163014537; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = 1163014541; - break; - case 1: - return false; - case 0: - num = ((!EqualityComparer<IReadOnlyList<IngredientInfo>>.Default.Equals(Ingredients, other.Ingredients)) ? 1163014536 : 1163014539); - break; - case 2: - return EqualityComparer<EClassJob>.Default.Equals(CraftingClass, other.CraftingClass); - case 4: - num = ((!EqualityComparer<uint>.Default.Equals(CraftedItemId, other.CraftedItemId)) ? 1163014536 : 1163014537); - break; - } - } - } - - bool IEquatable<RecipeInfo>.Equals(RecipeInfo other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _206C_206D_202C_206A_206C_206D_206A_200C_202C_206A_206A_202B_206F_200E_206C_206F_206F_200D_200F_200C_206E_202C_206E_206F_202D_202B_200F_206F_202A_206E_202E_202E_206F_202C_202C_206F_202E_200E_202A_206F_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200E_202B_200F_200B_200F_206A_200E_206C_206C_206E_200C_206F_206B_202E_206F_202A_200E_202D_202C_206E_202A_202A_206D_200F_202D_206E_202A_202E_206E_200F_206D_200F_200C_206E_200B_202C_206D_200D_202C_200E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202A_202B_202D_206F_206C_206D_202E_202A_206D_200F_200D_202A_202A_200E_206E_206E_206B_200D_206A_202C_200B_206A_202A_202C_206D_200F_200F_200C_200E_206E_200D_206B_202E_200F_202D_200B_202B_202C_202B_202C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206C_202A_202D_202C_206F_206A_200C_202B_200C_200E_206B_200C_200E_206D_206E_202C_206F_206E_200E_200C_202C_206E_206A_202D_206B_202B_200D_200E_202E_206D_206C_202C_200C_206F_200B_202C_200F_202B_200F_206D_202E(object P_0) - { - return P_0.ToString(); - } - - static StringBuilder _200D_202A_202C_206A_206F_202D_206A_202C_206D_206F_206D_202A_202B_200E_200E_206B_200F_206C_206D_206D_206E_202B_200C_200D_200D_202D_202C_200C_200F_206F_202D_206A_202E_206A_200F_202B_206C_206A_200D_206B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - } - - internal readonly record struct VendorInfo(uint ShopId, uint VendorNpcId, ushort TerritoryId, Vector3 Position, int DialogOptionIndex) - { - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206E_200F_206A_202A_206C_202A_202A_200B_202D_206E_202E_202B_206C_206D_206D_202A_202A_206F_202A_202B_206B_200C_200E_206F_206F_200F_202D_206F_206F_206C_206C_202A_206B_202D_200C_200B_200E_202A_206E_200D_202E(); - _206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1730025500)); - _206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125)); - int num = ((!PrintMembers(stringBuilder)) ? (-1077906353) : (-1077906356)); - while (true) - { - int num2 = num; - int num3 = -1077906354; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1077906356; - break; - case 2: - _206B_206D_202D_200B_202A_200B_206D_200E_206A_200F_202E_202D_200E_202B_200F_206A_200C_206B_206B_206A_200F_206B_206E_202B_200B_206A_206D_200B_206E_200C_200B_202E_202D_202D_200C_202E_202B_200C_202A_200D_202E(stringBuilder, ' '); - num = -1077906353; - break; - case 1: - _206B_206D_202D_200B_202A_200B_206D_200E_206A_200F_202E_202D_200E_202B_200F_206A_200C_206B_206B_206A_200F_206B_206E_202B_200B_206A_206D_200B_206E_200C_200B_202E_202D_202D_200C_202E_202B_200C_202A_200D_202E(stringBuilder, '}'); - return _206D_200E_200B_202D_202E_206B_200F_202B_206D_206A_202E_206C_202B_200C_202B_206D_200D_202C_202E_202A_202D_200E_206B_202B_206B_202E_202D_206C_202E_200D_202A_206B_206F_200D_200E_200F_206D_202B_206A_206F_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(317359128)); - _206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(builder, ShopId.ToString()); - _206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-88160107)); - _206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(builder, VendorNpcId.ToString()); - _206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1428648191)); - _206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(builder, TerritoryId.ToString()); - _206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1993330002)); - _206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(builder, Position.ToString()); - _206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2076481420)); - _206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(builder, DialogOptionIndex.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(VendorInfo other) - { - int num = ((!EqualityComparer<uint>.Default.Equals(ShopId, other.ShopId)) ? 756999807 : 756999806); - while (true) - { - int num2 = num; - int num3 = 756999804; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = ((!EqualityComparer<Vector3>.Default.Equals(Position, other.Position)) ? 756999807 : 756999800); - break; - case 2: - num = ((!EqualityComparer<uint>.Default.Equals(VendorNpcId, other.VendorNpcId)) ? 756999807 : 756999805); - break; - case 3: - return false; - case 1: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? 756999807 : 756999804); - break; - case 5: - num = 756999806; - break; - case 4: - return EqualityComparer<int>.Default.Equals(DialogOptionIndex, other.DialogOptionIndex); - } - } - } - - bool IEquatable<VendorInfo>.Equals(VendorInfo other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _206E_200F_206A_202A_206C_202A_202A_200B_202D_206E_202E_202B_206C_206D_206D_202A_202A_206F_202A_202B_206B_200C_200E_206F_206F_200F_202D_206F_206F_206C_206C_202A_206B_202D_200C_200B_200E_202A_206E_200D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206B_206D_202D_200B_202A_200B_206D_200E_206A_200F_202E_202D_200E_202B_200F_206A_200C_206B_206B_206A_200F_206B_206E_202B_200B_206A_206D_200B_206E_200C_200B_202E_202D_202D_200C_202E_202B_200C_202A_200D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206D_200E_200B_202D_202E_206B_200F_202B_206D_206A_202E_206C_202B_200C_202B_206D_200D_202C_202E_202A_202D_200E_206B_202B_206B_202E_202D_206C_202E_200D_202A_206B_206F_200D_200E_200F_206D_202B_206A_206F_202E(object P_0) - { - return P_0.ToString(); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public RecipeInfo? ResolveRecipe(uint craftedItemId, EClassJob? preferredJob = null) { - RecipeLookup row; - int num = (dataManager.GetExcelSheet<RecipeLookup>().TryGetRow(craftedItemId, out row) ? (-1604445138) : (-1604445150)); - List<IngredientInfo> list = default(List<IngredientInfo>); - Recipe row3 = default(Recipe); - List<IngredientInfo> list2 = default(List<IngredientInfo>); - Recipe row2 = default(Recipe); - uint item = default(uint); - (EClassJob, uint)[] array2 = default((EClassJob, uint)[]); - int num5 = default(int); - EClassJob item2 = default(EClassJob); - (EClassJob, uint)[] array = default((EClassJob, uint)[]); - EClassJob item4 = default(EClassJob); - uint item3 = default(uint); - while (true) + if (!dataManager.GetExcelSheet<RecipeLookup>().TryGetRow(craftedItemId, out var row)) { - int num2 = num; - int num3 = -1604445143; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + logger.LogDebug("No RecipeLookup row for item {ItemId}", craftedItemId); + return null; + } + (EClassJob, uint)[] array = new(EClassJob, uint)[8] + { + (EClassJob.Carpenter, row.CRP.RowId), + (EClassJob.Blacksmith, row.BSM.RowId), + (EClassJob.Armorer, row.ARM.RowId), + (EClassJob.Goldsmith, row.GSM.RowId), + (EClassJob.Leatherworker, row.LTW.RowId), + (EClassJob.Weaver, row.WVR.RowId), + (EClassJob.Alchemist, row.ALC.RowId), + (EClassJob.Culinarian, row.CUL.RowId) + }; + (EClassJob, uint)[] array2; + if (preferredJob.HasValue) + { + array2 = array; + for (int i = 0; i < array2.Length; i++) { - case 9: - list = CollectIngredients(row3); - num = ((list.Count == 0) ? (-1604445141) : (-1604445146)); - break; - case 4: - list2 = CollectIngredients(row2); - num = ((list2.Count == 0) ? (-1604445143) : (-1604445128)); - break; - case 8: - num = ((item == 0) ? (-1604445148) : (-1604445145)); - break; - case 3: - { - (EClassJob, uint) tuple = array2[num5]; - item2 = tuple.Item1; - item = tuple.Item2; - num = ((item2 != preferredJob.Value) ? (-1604445148) : (-1604445151)); - break; - } - case 2: - array2 = array; - num5 = 0; - num = -1604445125; - break; - case 5: - { - (EClassJob, uint) tuple2 = array2[num5]; - item4 = tuple2.Item1; - item3 = tuple2.Item2; - num = ((item3 == 0) ? (-1604445143) : (-1604445147)); - break; - } - case 6: - num = -1604445150; - break; - case 12: - num = ((!dataManager.GetExcelSheet<Recipe>().TryGetRow(item3, out row2)) ? (-1604445143) : (-1604445139)); - break; - case 14: - num = ((!dataManager.GetExcelSheet<Recipe>().TryGetRow(item, out row3)) ? (-1604445141) : (-1604445152)); - break; - case 0: - { - int num7 = num5; - num3 = 1; - num4 = num7; - int num8 = num4 ^ num3; - int num9 = num4 & num3; - num5 = num8 + (num9 + num9); - num = -1604445125; - break; - } - case 11: - _202D_202B_202B_200D_202A_202B_206C_202D_200F_206F_206C_202D_200C_202D_206B_202C_200D_206B_206F_206F_200B_202A_200B_200B_206C_202A_200E_202D_206B_206F_202A_200B_206E_200C_202B_202A_206A_200F_202D_202B_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1431969650), new object[1] { craftedItemId }); - return null; - case 16: - num = ((num5 < array2.Length) ? (-1604445142) : (-1604445141)); - break; - case 10: - array2 = array; - num5 = 0; - num = -1604445127; - break; - case 18: - num = ((num5 < array2.Length) ? (-1604445140) : (-1604445144)); - break; - case 13: - { - int num6 = num5; - num3 = 1; - num4 = num6; - num5 = (num4 | num3) + (num4 & num3); - num = -1604445127; - break; - } - case 7: - array = new(EClassJob, uint)[8] + var (eClassJob, num) = array2[i]; + if (eClassJob == preferredJob.Value && num != 0) { - (EClassJob.Carpenter, row.CRP.RowId), - (EClassJob.Blacksmith, row.BSM.RowId), - (EClassJob.Armorer, row.ARM.RowId), - (EClassJob.Goldsmith, row.GSM.RowId), - (EClassJob.Leatherworker, row.LTW.RowId), - (EClassJob.Weaver, row.WVR.RowId), - (EClassJob.Alchemist, row.ALC.RowId), - (EClassJob.Culinarian, row.CUL.RowId) - }; - num = ((!preferredJob.HasValue) ? (-1604445141) : (-1604445149)); - break; - case 17: - _202D_202B_202B_200D_202A_202B_206C_202D_200F_206F_206C_202D_200C_202D_206B_202C_200D_206B_206F_206F_200B_202A_200B_200B_206C_202A_200E_202D_206B_206F_202A_200B_206E_200C_202B_202A_206A_200F_202D_202B_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1407786323), new object[4] { item3, item4, craftedItemId, list2.Count }); - return new RecipeInfo(item3, craftedItemId, list2, item4); - case 1: - _202D_202B_202B_200D_202A_202B_206C_202D_200F_206F_206C_202D_200C_202D_206B_202C_200D_206B_206F_206F_200B_202A_200B_200B_206C_202A_200E_202D_206B_206F_202A_200B_206E_200C_202B_202A_206A_200F_202D_202B_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1806969075), new object[1] { craftedItemId }); - return null; - case 15: - _202D_202B_202B_200D_202A_202B_206C_202D_200F_206F_206C_202D_200C_202D_206B_202C_200D_206B_206F_206F_200B_202A_200B_200B_206C_202A_200E_202D_206B_206F_202A_200B_206E_200C_202B_202A_206A_200F_202D_202B_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1664800932), new object[4] { item, item2, craftedItemId, list.Count }); - return new RecipeInfo(item, craftedItemId, list, item2); + if (!dataManager.GetExcelSheet<Recipe>().TryGetRow(num, out var row2)) + { + break; + } + List<IngredientInfo> list = CollectIngredients(row2); + if (list.Count == 0) + { + break; + } + logger.LogDebug("Resolved recipe {RecipeId} ({ClassJob}) for item {ItemId} via preferred job: {Count} ingredient(s)", num, eClassJob, craftedItemId, list.Count); + return new RecipeInfo(num, craftedItemId, list, eClassJob); + } } } + array2 = array; + for (int i = 0; i < array2.Length; i++) + { + var (eClassJob2, num2) = array2[i]; + if (num2 != 0 && dataManager.GetExcelSheet<Recipe>().TryGetRow(num2, out var row3)) + { + List<IngredientInfo> list2 = CollectIngredients(row3); + if (list2.Count != 0) + { + logger.LogDebug("Resolved recipe {RecipeId} ({ClassJob}) for item {ItemId}: {Count} ingredient(s)", num2, eClassJob2, craftedItemId, list2.Count); + return new RecipeInfo(num2, craftedItemId, list2, eClassJob2); + } + } + } + logger.LogDebug("No valid recipe found for item {ItemId}", craftedItemId); + return null; } - [MethodImpl(MethodImplOptions.NoInlining)] public VendorInfo? ResolveVendor(uint ingredientId) { - int num = (_200B_202E_200F_200C_206F_202B_206F_200E_206B_200E_200E_206E_206D_202D_200E_206C_206A_200F_200C_206F_202D_202E_206C_206B_202D_206E_206C_200E_206B_206B_202E_202E_200C_200F_206B_206D_202B_200C_200E_202B_202E(npcPositionCache) ? 1075940384 : 1075940385); - ShopSearchResult shopSearchResult = default(ShopSearchResult); - while (true) + if (!npcPositionCache.IsBuilt) { - int num2 = num; - int num3 = 1075940386; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _202D_202B_202B_200D_202A_202B_206C_202D_200F_206F_206C_202D_200C_202D_206B_202C_200D_206B_206F_206F_200B_202A_200B_200B_206C_202A_200E_202D_206B_206F_202A_200B_206E_200C_202B_202A_206A_200F_202D_202B_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-563414727), new object[1] { ingredientId }); - return null; - case 3: - _200D_202E_206C_202D_200B_202A_202E_202B_202D_200D_200F_206E_206B_200E_200C_200C_200D_206F_206C_202D_200E_206D_202C_202A_200C_200E_200C_200C_206F_202A_202C_200D_202B_202D_200C_206B_200B_206E_200E_202D_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1813598717), new object[1] { ingredientId }); - return null; - case 4: - num = 1075940385; - break; - case 0: - _202D_202B_202B_200D_202A_202B_206C_202D_200F_206F_206C_202D_200C_202D_206B_202C_200D_206B_206F_206F_200B_202A_200B_200B_206C_202A_200E_202D_206B_206F_202A_200B_206E_200C_202B_202A_206A_200F_202D_202B_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1256305400), new object[5] - { - _202D_202E_206F_206C_206F_202E_200B_200E_202B_202B_200F_200F_206A_200F_200E_206A_202C_202D_206B_206E_200D_206C_206E_206E_200D_200E_200F_200B_202A_202B_206B_202D_206B_200B_202D_200E_202A_206B_200B_202E_202E(shopSearchResult), - ingredientId, - _200D_200D_206C_202A_200D_206A_206E_202E_206D_206F_206E_200B_206D_202E_206D_200C_200F_206C_202C_206E_206E_206E_202B_206F_200C_206B_206F_206D_202E_206C_206C_200B_206B_206E_202D_206B_206D_202E_206F_206A_202E(shopSearchResult), - _206D_202B_200C_206D_206F_200E_202E_202C_200C_202A_206B_202D_202E_200F_202A_202A_200C_200F_202B_206F_206D_206B_206F_202A_206E_206F_200D_206E_202B_206C_206E_206C_200B_206A_202E_200C_206B_202A_206B_206C_202E(shopSearchResult), - _206B_200C_200C_202B_202B_200F_202C_206F_200E_200B_200D_200C_202D_202A_200E_200C_206A_200C_206F_202A_206C_202E_206B_202B_206D_202C_200B_200B_200B_200D_206D_200B_202B_202E_202B_202D_200E_200C_202A_200C_202E(shopSearchResult) - }); - return new VendorInfo(_200D_200D_206C_202A_200D_206A_206E_202E_206D_206F_206E_200B_206D_202E_206D_200C_200F_206C_202C_206E_206E_206E_202B_206F_200C_206B_206F_206D_202E_206C_206C_200B_206B_206E_202D_206B_206D_202E_206F_206A_202E(shopSearchResult), _202D_202E_206F_206C_206F_202E_200B_200E_202B_202B_200F_200F_206A_200F_200E_206A_202C_202D_206B_206E_200D_206C_206E_206E_200D_200E_200F_200B_202A_202B_206B_202D_206B_200B_202D_200E_202A_206B_200B_202E_202E(shopSearchResult), _206D_202B_200C_206D_206F_200E_202E_202C_200C_202A_206B_202D_202E_200F_202A_202A_200C_200F_202B_206F_206D_206B_206F_202A_206E_206F_200D_206E_202B_206C_206E_206C_200B_206A_202E_200C_206B_202A_206B_206C_202E(shopSearchResult), _202A_200E_206F_206C_202B_202E_200F_206F_202C_202A_206E_200C_200B_202B_200D_206C_206F_206F_200F_206E_206C_200D_202B_202D_200F_206D_206B_200C_206D_206A_206C_206F_200C_206C_200C_206A_200B_202A_200B_202A_202E(shopSearchResult), _206B_200C_200C_202B_202B_200F_202C_206F_200E_200B_200D_200C_202D_202A_200E_200C_206A_200C_206F_202A_206C_202E_206B_202B_206D_202C_200B_200B_200B_200D_206D_200B_202B_202E_202B_202D_200E_200C_202A_200C_202E(shopSearchResult)); - case 2: - shopSearchResult = _206A_202E_202A_200E_202C_202E_202A_200D_200B_200C_200F_200B_202A_206F_202A_200F_202E_202E_206B_202A_200C_200F_206F_200B_200B_200B_202B_206B_202D_202B_206C_202B_206B_200C_206F_200C_206F_206A_206C_206E_202E(vendorResolver, ingredientId); - num = ((!_206D_200F_206D_202D_202D_200E_206B_206A_200E_200F_200C_202D_202C_202E_206D_206F_202C_200F_206A_200B_202A_206A_202B_206C_200D_202B_202C_202A_200B_206E_202E_206D_200E_200D_200C_206C_200D_200D_206B_206A_202E(shopSearchResult, (ShopSearchResult)null)) ? 1075940386 : 1075940387); - break; - } + logger.LogWarning("NPC position cache not built yet, cannot resolve a vendor for ingredient {IngredientId}", ingredientId); + return null; } + ShopSearchResult shopSearchResult = vendorResolver.FindGilVendor(ingredientId); + if (shopSearchResult == null) + { + logger.LogDebug("No vendor with known position found for ingredient {IngredientId}", ingredientId); + return null; + } + logger.LogDebug("Found vendor NPC {NpcId} selling ingredient {IngredientId} at shop {ShopId} in territory {TerritoryId} (dialog option {DialogOption})", shopSearchResult.NpcId, ingredientId, shopSearchResult.ShopId, shopSearchResult.TerritoryId, shopSearchResult.DialogOptionIndex); + return new VendorInfo(shopSearchResult.ShopId, shopSearchResult.NpcId, shopSearchResult.TerritoryId, shopSearchResult.NpcPosition, shopSearchResult.DialogOptionIndex); } private static List<IngredientInfo> CollectIngredients(Recipe recipe) { List<IngredientInfo> list = new List<IngredientInfo>(); - int num = 0; - int num2 = 1773501195; - uint rowId = default(uint); - int num6 = default(int); - while (true) + for (int i = 0; i < recipe.Ingredient.Count; i++) { - int num3 = num2; - int num4 = 1773501198; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + uint rowId = recipe.Ingredient[i].RowId; + int num = recipe.AmountIngredient[i]; + if (rowId != 0 && num > 0) { - case 5: - num2 = ((num < recipe.Ingredient.Count) ? 1773501197 : 1773501196); - break; - case 1: - list.Add(new IngredientInfo(rowId, num6)); - num2 = 1773501192; - break; - case 2: - return list; - case 0: - num2 = ((num6 <= 0) ? 1773501192 : 1773501199); - break; - case 4: - num2 = 1773501195; - break; - case 6: - { - int num7 = num; - num4 = 1; - num5 = num7; - num = (num5 | num4) + (num5 & num4); - num2 = 1773501195; - break; - } - case 3: - rowId = recipe.Ingredient[num].RowId; - num6 = recipe.AmountIngredient[num]; - num2 = ((rowId == 0) ? 1773501192 : 1773501198); - break; + list.Add(new IngredientInfo(rowId, num)); } } - } - - static void _202D_202B_202B_200D_202A_202B_206C_202D_200F_206F_206C_202D_200C_202D_206B_202C_200D_206B_206F_206F_200B_202A_200B_200B_206C_202A_200E_202D_206B_206F_202A_200B_206E_200C_202B_202A_206A_200F_202D_202B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _200B_202E_200F_200C_206F_202B_206F_200E_206B_200E_200E_206E_206D_202D_200E_206C_206A_200F_200C_206F_202D_202E_206C_206B_202D_206E_206C_200E_206B_206B_202E_202E_200C_200F_206B_206D_202B_200C_200E_202B_202E(NpcPositionCache P_0) - { - return P_0.IsBuilt; - } - - static void _200D_202E_206C_202D_200B_202A_202E_202B_202D_200D_200F_206E_206B_200E_200C_200C_200D_206F_206C_202D_200E_206D_202C_202A_200C_200E_200C_200C_206F_202A_202C_200D_202B_202D_200C_206B_200B_206E_200E_202D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static ShopSearchResult _206A_202E_202A_200E_202C_202E_202A_200D_200B_200C_200F_200B_202A_206F_202A_200F_202E_202E_206B_202A_200C_200F_206F_200B_200B_200B_202B_206B_202D_202B_206C_202B_206B_200C_206F_200C_206F_206A_206C_206E_202E(VendorResolver P_0, uint P_1) - { - return P_0.FindGilVendor(P_1); - } - - static bool _206D_200F_206D_202D_202D_200E_206B_206A_200E_200F_200C_202D_202C_202E_206D_206F_202C_200F_206A_200B_202A_206A_202B_206C_200D_202B_202C_202A_200B_206E_202E_206D_200E_200D_200C_206C_200D_200D_206B_206A_202E(ShopSearchResult P_0, ShopSearchResult P_1) - { - return P_0 == P_1; - } - - static uint _202D_202E_206F_206C_206F_202E_200B_200E_202B_202B_200F_200F_206A_200F_200E_206A_202C_202D_206B_206E_200D_206C_206E_206E_200D_200E_200F_200B_202A_202B_206B_202D_206B_200B_202D_200E_202A_206B_200B_202E_202E(ShopSearchResult P_0) - { - return P_0.NpcId; - } - - static uint _200D_200D_206C_202A_200D_206A_206E_202E_206D_206F_206E_200B_206D_202E_206D_200C_200F_206C_202C_206E_206E_206E_202B_206F_200C_206B_206F_206D_202E_206C_206C_200B_206B_206E_202D_206B_206D_202E_206F_206A_202E(ShopSearchResult P_0) - { - return P_0.ShopId; - } - - static ushort _206D_202B_200C_206D_206F_200E_202E_202C_200C_202A_206B_202D_202E_200F_202A_202A_200C_200F_202B_206F_206D_206B_206F_202A_206E_206F_200D_206E_202B_206C_206E_206C_200B_206A_202E_200C_206B_202A_206B_206C_202E(ShopSearchResult P_0) - { - return P_0.TerritoryId; - } - - static int _206B_200C_200C_202B_202B_200F_202C_206F_200E_200B_200D_200C_202D_202A_200E_200C_206A_200C_206F_202A_206C_202E_206B_202B_206D_202C_200B_200B_200B_200D_206D_200B_202B_202E_202B_202D_200E_200C_202A_200C_202E(ShopSearchResult P_0) - { - return P_0.DialogOptionIndex; - } - - static Vector3 _202A_200E_206F_206C_202B_202E_200F_206F_202C_202A_206E_200C_200B_202B_200D_206C_206F_206F_200F_206E_206C_200D_202B_202D_200F_206D_206B_200C_206D_206A_206C_206F_200C_206C_200C_206A_200B_202A_200B_202A_202E(ShopSearchResult P_0) - { - return P_0.NpcPosition; + return list; } } diff --git a/Questionable/Questionable.Controller.DebugCommands/AbandonDutyCommandHandler.cs b/Questionable/Questionable.Controller.DebugCommands/AbandonDutyCommandHandler.cs index 35df1d2..f3e7452 100644 --- a/Questionable/Questionable.Controller.DebugCommands/AbandonDutyCommandHandler.cs +++ b/Questionable/Questionable.Controller.DebugCommands/AbandonDutyCommandHandler.cs @@ -1,4 +1,3 @@ -using System.Runtime.CompilerServices; using Questionable.Functions; namespace Questionable.Controller.DebugCommands; @@ -7,14 +6,7 @@ internal sealed class AbandonDutyCommandHandler : IDebugCommandHandler { private readonly GameFunctions _gameFunctions; - public string CommandName - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2080095221); - } - } + public string CommandName => "abandon-duty"; public AbandonDutyCommandHandler(GameFunctions gameFunctions) { @@ -25,10 +17,4 @@ internal sealed class AbandonDutyCommandHandler : IDebugCommandHandler { _gameFunctions.AbandonDuty(); } - - void IDebugCommandHandler.Execute(string[] arguments) - { - //ILSpy generated this explicit interface implementation from .override directive in Execute - this.Execute(arguments); - } } diff --git a/Questionable/Questionable.Controller.DebugCommands/AethernetCommandHandler.cs b/Questionable/Questionable.Controller.DebugCommands/AethernetCommandHandler.cs index c4dd3ac..58a2f5c 100644 --- a/Questionable/Questionable.Controller.DebugCommands/AethernetCommandHandler.cs +++ b/Questionable/Questionable.Controller.DebugCommands/AethernetCommandHandler.cs @@ -1,9 +1,6 @@ using System; -using System.Collections; using System.Collections.Generic; -using System.Collections.ObjectModel; using System.Linq; -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using Questionable.Functions; using Questionable.Model.Questing.Converter; @@ -22,14 +19,7 @@ internal sealed class AethernetCommandHandler : IDebugCommandHandler private readonly IChatGui _chatGui; - public string CommandName - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-753561834); - } - } + public string CommandName => "aethernet"; public AethernetCommandHandler(IDataManager dataManager, IClientState clientState, AetheryteFunctions aetheryteFunctions, IChatGui chatGui) { @@ -39,418 +29,88 @@ internal sealed class AethernetCommandHandler : IDebugCommandHandler _chatGui = chatGui; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Execute(string[] arguments) { - uint num = _200E_206C_202A_202B_200F_202E_206A_200F_200F_200F_202B_202C_206D_202B_206A_200F_202D_202D_202D_202A_206B_202E_202E_200B_206F_200E_206F_206A_202E_202C_206E_200E_202C_200D_206C_202E_206E_200D_206E_202A_202E(_clientState); + uint territoryType = _clientState.TerritoryType; Dictionary<EAetheryteLocation, string> values = AethernetShardConverter.Values; - AetheryteData aetheryteData = _200C_206E_206B_202A_200B_206A_206C_202D_206B_200F_202C_200B_206D_202A_206F_202C_202E_200C_206D_202B_202B_200D_202B_202B_202C_200D_206D_200B_206D_202D_202A_200D_202A_200B_202B_200E_200B_206E_200D_200F_202E(_dataManager); + AetheryteData aetheryteData = new AetheryteData(_dataManager); HashSet<string> hashSet = new HashSet<string>(); Dictionary<string, List<(EAetheryteLocation, string, bool)>> dictionary = new Dictionary<string, List<(EAetheryteLocation, string, bool)>>(); EAetheryteLocation key; - string value2; - int num2; - using (Dictionary<EAetheryteLocation, string>.Enumerator enumerator = values.GetEnumerator()) + string value; + foreach (KeyValuePair<EAetheryteLocation, string> item3 in values) { - num2 = 743370573; - string text = default(string); - int num8 = default(int); - ushort value = default(ushort); - while (true) + item3.Deconstruct(out key, out value); + EAetheryteLocation key2 = key; + string text = value; + if (aetheryteData.TerritoryIds.TryGetValue(key2, out var value2) && value2 == territoryType) { - int num3 = num2; - int num4 = 743370569; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) + int num = text.IndexOf(']', StringComparison.Ordinal); + if (num > 0) { - case 4: - num2 = (enumerator.MoveNext() ? 743370572 : 743370570); - break; - case 1: - { - string text2 = text; - int num9 = num8; - num4 = 1; - num5 = num9; - string item = _206C_206B_202C_202B_202A_206A_202D_206C_202D_206F_202D_200C_206E_200D_200B_206A_202D_202D_202B_202D_200D_206E_202C_202D_200E_202B_206C_206D_202B_200D_202E_202C_200E_200B_200B_206E_206B_200C_202A_206B_202E(text2, 1, ~(~num5 + num4)); + string item = text.Substring(1, num - 1); hashSet.Add(item); - num2 = 743370573; - break; } - case 2: - num2 = 743370573; - break; - case 6: - num2 = ((value != num) ? 743370573 : 743370569); - break; - case 5: - { - enumerator.Current.Deconstruct(out key, out value2); - EAetheryteLocation key2 = key; - text = value2; - num2 = ((!_200C_206A_206A_206E_200E_200C_200D_202E_200B_200E_200B_200E_200B_200C_200D_206F_200D_200E_206D_200E_206E_206F_206B_202A_206A_206D_202C_206B_200E_200F_206D_200B_200E_206E_206F_202E_200B_206C_206A_206A_202E(aetheryteData).TryGetValue(key2, out value)) ? 743370573 : 743370575); - break; - } - case 0: - num8 = _202C_206E_202A_200F_200F_202B_206F_202A_206B_206E_200C_200C_200D_206E_206A_200D_206E_202A_202A_200D_202C_206D_202D_202D_206C_200E_200D_200D_206E_202C_200B_206A_202D_202D_200E_206D_206A_202A_206F_202C_202E(text, ']', StringComparison.Ordinal); - num2 = ((num8 <= 0) ? 743370573 : 743370568); - break; - case 3: - goto end_IL_003f; - } - continue; - end_IL_003f: - break; } } - num2 = ((hashSet.Count != 0) ? 1358822914 : 1358822913); - string text3 = default(string); - int num12 = default(int); - string text4 = default(string); - EAetheryteLocation eAetheryteLocation = default(EAetheryteLocation); - while (true) + if (hashSet.Count == 0) { - int num10 = num2; - int num4 = 1358822915; - int num5 = num10; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - goto IL_01d0; - case 2: - _200C_206F_206B_206A_202D_206F_200E_206B_202C_202B_206C_206D_200C_200F_206B_200C_206D_206D_206E_202A_206E_202D_202B_206C_202B_206B_206E_206E_206F_202B_202E_206A_202D_200F_206B_202D_206A_200B_206F_206F_202E(_chatGui, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1644635197), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - return; - case 1: - { - using (Dictionary<EAetheryteLocation, string>.Enumerator enumerator = values.GetEnumerator()) - { - num2 = 229198899; - while (true) - { - int num11 = num2; - num4 = 229198902; - num5 = num11; - switch ((num5 | num4) - (num5 & num4)) - { - case 3: - { - string text5 = text3; - int num13 = num12; - num4 = 1; - num5 = num13; - text4 = _206C_206B_202C_202B_202A_206A_202D_206C_202D_206F_202D_200C_206E_200D_200B_206A_202D_202D_202B_202D_200D_206E_202C_202D_200E_202B_206C_206D_202B_200D_202E_202C_200E_200B_200B_206E_206B_200C_202A_206B_202E(text5, 1, ~(~num5 + num4)); - num2 = ((!hashSet.Contains(text4)) ? 229198899 : 229198897); - break; - } - case 4: - dictionary[text4] = new List<(EAetheryteLocation, string, bool)>(); - num2 = 229198900; - break; - case 0: - num2 = 229198899; - break; - case 1: - enumerator.Current.Deconstruct(out key, out value2); - eAetheryteLocation = key; - text3 = value2; - num12 = _202C_206E_202A_200F_200F_202B_206F_202A_206B_206E_200C_200C_200D_206E_206A_200D_206E_202A_202A_200D_202C_206D_202D_202D_206C_200E_200D_200D_206E_202C_200B_206A_202D_202D_200E_206D_206A_202A_206F_202C_202E(text3, ']', StringComparison.Ordinal); - num2 = ((num12 <= 0) ? 229198899 : 229198901); - break; - case 2: - { - bool item2 = _aetheryteFunctions.IsAetheryteUnlocked(eAetheryteLocation); - dictionary[text4].Add((eAetheryteLocation, text3, item2)); - num2 = 229198899; - break; - } - case 7: - num2 = (dictionary.ContainsKey(text4) ? 229198900 : 229198898); - break; - case 5: - num2 = (enumerator.MoveNext() ? 229198903 : 229198896); - break; - case 6: - goto end_IL_021a; - } - continue; - end_IL_021a: - break; - } - } - IEnumerator<KeyValuePair<string, List<(EAetheryteLocation, string, bool)>>> enumerator2 = dictionary.OrderBy<KeyValuePair<string, List<(EAetheryteLocation, string, bool)>>, string>((KeyValuePair<string, List<(EAetheryteLocation Location, string Name, bool Unlocked)>> x) => x.Key).GetEnumerator(); - try - { - while (true) - { - if (_202A_200B_202A_202E_206E_202A_206D_206B_206E_202C_202A_200F_200E_202E_202B_200C_202A_206F_206E_206A_202A_200E_206D_200C_206A_202E_206C_202D_202B_200E_200C_206F_200E_202A_206C_206A_206D_202D_202C_200D_202E((IEnumerator)enumerator2)) - { - enumerator2.Current.Deconstruct(out value2, out var value3); - string value4 = value2; - List<(EAetheryteLocation, string, bool)> list = value3; - List<(EAetheryteLocation, string, bool)> list2 = list.Where<(EAetheryteLocation, string, bool)>(((EAetheryteLocation Location, string Name, bool Unlocked) x) => x.Unlocked).ToList(); - List<(EAetheryteLocation, string, bool)> list3 = list.Where<(EAetheryteLocation, string, bool)>(((EAetheryteLocation Location, string Name, bool Unlocked) x) => !x.Unlocked).ToList(); - IChatGui chatGui = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(30, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-259971891)); - defaultInterpolatedStringHandler.AppendFormatted(value4); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(588901087)); - defaultInterpolatedStringHandler.AppendFormatted(list.Count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(626621693)); - _200C_206F_206B_206A_202D_206F_200E_206B_202C_202B_206C_206D_200C_200F_206B_200C_206D_206D_206E_202A_206E_202D_202B_206C_202B_206B_206E_206E_206F_202B_202E_206A_202D_200F_206B_202D_206A_200B_206F_206F_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712), (ushort?)(ushort)576); - IChatGui chatGui2 = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(12, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1594528935)); - defaultInterpolatedStringHandler2.AppendFormatted(list2.Count); - _200C_206F_206B_206A_202D_206F_200E_206B_202C_202B_206C_206D_200C_200F_206B_200C_206D_206D_206E_202A_206E_202D_202B_206C_202B_206B_206E_206E_206F_202B_202E_206A_202D_200F_206B_202D_206A_200B_206F_206F_202E(chatGui2, defaultInterpolatedStringHandler2.ToStringAndClear(), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - IChatGui chatGui3 = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(11, 1); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1397817883)); - defaultInterpolatedStringHandler3.AppendFormatted(list3.Count); - _200C_206F_206B_206A_202D_206F_200E_206B_202C_202B_206C_206D_200C_200F_206B_200C_206D_206D_206E_202A_206E_202D_202B_206C_202B_206B_206E_206E_206F_202B_202E_206A_202D_200F_206B_202D_206A_200B_206F_206F_202E(chatGui3, defaultInterpolatedStringHandler3.ToStringAndClear(), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - _200C_206F_206B_206A_202D_206F_200E_206B_202C_202B_206C_206D_200C_200F_206B_200C_206D_206D_206E_202A_206E_202D_202B_206C_202B_206B_206E_206E_206F_202B_202E_206A_202D_200F_206B_202D_206A_200B_206F_206F_202E(_chatGui, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1200342830), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - if (list3.Count > 0) - { - _200C_206F_206B_206A_202D_206F_200E_206B_202C_202B_206C_206D_200C_200F_206B_200C_206D_206D_206E_202A_206E_202D_202B_206C_202B_206B_206E_206E_206F_202B_202E_206A_202D_200F_206B_202D_206A_200B_206F_206F_202E(_chatGui, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1492898966), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - IEnumerator<(EAetheryteLocation, string, bool)> enumerator3 = list3.OrderBy<(EAetheryteLocation, string, bool), string>(((EAetheryteLocation Location, string Name, bool Unlocked) x) => x.Name).GetEnumerator(); - try - { - num2 = 2044246783; - while (true) - { - int num14 = num2; - num4 = 2044246780; - num5 = num14; - int num15 = num5 + num4; - int num16 = num5 & num4; - switch (num15 - (num16 + num16)) - { - case 3: - num2 = (_202A_200B_202A_202E_206E_202A_206D_206B_206E_202C_202A_200F_200E_202E_202B_200C_202A_206F_206E_206A_202A_200E_206D_200C_206A_202E_206C_202D_202B_200E_200C_206F_200E_202A_206C_206A_206D_202D_202C_200D_202E((IEnumerator)enumerator3) ? 2044246782 : 2044246781); - break; - case 2: - { - (EAetheryteLocation, string, bool) current = enumerator3.Current; - _200C_206F_206B_206A_202D_206F_200E_206B_202C_202B_206C_206D_200C_200F_206B_200C_206D_206D_206E_202A_206E_202D_202B_206C_202B_206B_206E_206E_206F_202B_202E_206A_202D_200F_206B_202D_206A_200B_206F_206F_202E(_chatGui, _206B_206F_202C_206F_200D_200C_206C_200C_206F_206E_206E_206A_202B_202B_202C_206F_200B_202C_206C_202D_202A_200B_202B_202A_200D_206B_206B_200C_202B_202A_202D_200D_202E_206E_206A_206C_202E_206A_206A_202C_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1427836459), current.Item2), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - num2 = 2044246783; - break; - } - case 0: - num2 = 2044246783; - break; - case 1: - goto end_IL_05fa; - } - continue; - end_IL_05fa: - break; - } - } - finally - { - num2 = ((enumerator3 == null) ? 273930028 : 273930029); - while (true) - { - int num17 = num2; - num4 = 273930028; - num5 = num17; - int num18 = num5 + num4; - int num19 = num5 & num4; - switch (num18 - (num19 + num19)) - { - case 2: - num2 = 273930029; - break; - case 1: - _206E_200E_206B_206C_206E_200F_206D_200F_206D_200C_206B_202E_202B_200E_202C_206F_206F_200B_206A_200D_200D_200F_200E_206A_206D_202D_202E_200D_200C_206F_200B_200B_200B_206F_202B_206E_206B_202A_202D_206D_202E((IDisposable)enumerator3); - num2 = 273930028; - break; - case 0: - goto end_IL_06ca; - } - continue; - end_IL_06ca: - break; - } - } - _200C_206F_206B_206A_202D_206F_200E_206B_202C_202B_206C_206D_200C_200F_206B_200C_206D_206D_206E_202A_206E_202D_202B_206C_202B_206B_206E_206E_206F_202B_202E_206A_202D_200F_206B_202D_206A_200B_206F_206F_202E(_chatGui, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1720149641), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712), (ushort?)(ushort)576); - } - if (list2.Count > 0) - { - _200C_206F_206B_206A_202D_206F_200E_206B_202C_202B_206C_206D_200C_200F_206B_200C_206D_206D_206E_202A_206E_202D_202B_206C_202B_206B_206E_206E_206F_202B_202E_206A_202D_200F_206B_202D_206A_200B_206F_206F_202E(_chatGui, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1522560698), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - IEnumerator<(EAetheryteLocation, string, bool)> enumerator3 = list2.OrderBy<(EAetheryteLocation, string, bool), string>(((EAetheryteLocation Location, string Name, bool Unlocked) x) => x.Name).GetEnumerator(); - try - { - num2 = 111331971; - while (true) - { - int num20 = num2; - num4 = 111331970; - num5 = num20; - switch ((num5 | num4) - (num5 & num4)) - { - case 3: - num2 = 111331971; - break; - case 1: - num2 = (_202A_200B_202A_202E_206E_202A_206D_206B_206E_202C_202A_200F_200E_202E_202B_200C_202A_206F_206E_206A_202A_200E_206D_200C_206A_202E_206C_202D_202B_200E_200C_206F_200E_202A_206C_206A_206D_202D_202C_200D_202E((IEnumerator)enumerator3) ? 111331968 : 111331970); - break; - case 2: - { - (EAetheryteLocation, string, bool) current2 = enumerator3.Current; - _200C_206F_206B_206A_202D_206F_200E_206B_202C_202B_206C_206D_200C_200F_206B_200C_206D_206D_206E_202A_206E_202D_202B_206C_202B_206B_206E_206E_206F_202B_202E_206A_202D_200F_206B_202D_206A_200B_206F_206F_202E(_chatGui, _206B_206F_202C_206F_200D_200C_206C_200C_206F_206E_206E_206A_202B_202B_202C_206F_200B_202C_206C_202D_202A_200B_202B_202A_200D_206B_206B_200C_202B_202A_202D_200D_202E_206E_206A_206C_202E_206A_206A_202C_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(244795324), current2.Item2), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - num2 = 111331971; - break; - } - case 0: - goto end_IL_07b3; - } - continue; - end_IL_07b3: - break; - } - } - finally - { - num2 = ((enumerator3 == null) ? 842300158 : 842300157); - while (true) - { - int num21 = num2; - num4 = 842300156; - num5 = num21; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - goto end_IL_0881; - case 1: - _206E_200E_206B_206C_206E_200F_206D_200F_206D_200C_206B_202E_202B_200E_202C_206F_206F_200B_206A_200D_200D_200F_200E_206A_206D_202D_202E_200D_200C_206F_200B_200B_200B_206F_202B_206E_206B_202A_202D_206D_202E((IDisposable)enumerator3); - num2 = 842300158; - break; - case 0: - num2 = 842300157; - break; - } - continue; - end_IL_0881: - break; - } - } - } - num2 = ((dictionary.Count <= 1) ? (-941740781) : (-941740784)); - } - else - { - num2 = -941740782; - } - while (true) - { - int num22 = num2; - num4 = -941740782; - num5 = num22; - int num23 = num5 + num4; - int num24 = num5 & num4; - switch (num23 - (num24 + num24)) - { - default: - continue; - case 3: - num2 = -941740784; - continue; - case 1: - break; - case 2: - _200C_206F_206B_206A_202D_206F_200E_206B_202C_202B_206C_206D_200C_200F_206B_200C_206D_206D_206E_202A_206E_202D_202B_206C_202B_206B_206E_206E_206F_202B_202E_206A_202D_200F_206B_202D_206A_200B_206F_206F_202E(_chatGui, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1694032531), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); - num2 = -941740781; - continue; - case 0: - return; - } - break; - } - } - } - finally - { - num2 = ((enumerator2 == null) ? (-992508169) : (-992508172)); - while (true) - { - int num25 = num2; - num4 = -992508170; - num5 = num25; - switch ((num5 | num4) - (num5 & num4)) - { - case 1: - goto end_IL_09a1; - case 2: - _206E_200E_206B_206C_206E_200F_206D_200F_206D_200C_206B_202E_202B_200E_202C_206F_206F_200B_206A_200D_200D_200F_200E_206A_206D_202D_202E_200D_200C_206F_200B_200B_200B_206F_202B_206E_206B_202A_202D_206D_202E((IDisposable)enumerator2); - num2 = -992508169; - break; - case 0: - num2 = -992508172; - break; - } - continue; - end_IL_09a1: - break; - } - } - } - } - continue; - IL_01d0: - num2 = 1358822913; + _chatGui.Print("No aethernet shards found in current zone.", "Questionable", 576); + return; + } + foreach (KeyValuePair<EAetheryteLocation, string> item4 in values) + { + item4.Deconstruct(out key, out value); + EAetheryteLocation eAetheryteLocation = key; + string text2 = value; + int num2 = text2.IndexOf(']', StringComparison.Ordinal); + if (num2 <= 0) + { + continue; + } + string text3 = text2.Substring(1, num2 - 1); + if (hashSet.Contains(text3)) + { + if (!dictionary.ContainsKey(text3)) + { + dictionary[text3] = new List<(EAetheryteLocation, string, bool)>(); + } + bool item2 = _aetheryteFunctions.IsAetheryteUnlocked(eAetheryteLocation); + dictionary[text3].Add((eAetheryteLocation, text2, item2)); + } + } + foreach (KeyValuePair<string, List<(EAetheryteLocation, string, bool)>> item5 in dictionary.OrderBy<KeyValuePair<string, List<(EAetheryteLocation, string, bool)>>, string>((KeyValuePair<string, List<(EAetheryteLocation Location, string Name, bool Unlocked)>> x) => x.Key)) + { + item5.Deconstruct(out value, out var value3); + string value4 = value; + List<(EAetheryteLocation, string, bool)> list = value3; + List<(EAetheryteLocation, string, bool)> list2 = list.Where<(EAetheryteLocation, string, bool)>(((EAetheryteLocation Location, string Name, bool Unlocked) x) => x.Unlocked).ToList(); + List<(EAetheryteLocation, string, bool)> list3 = list.Where<(EAetheryteLocation, string, bool)>(((EAetheryteLocation Location, string Name, bool Unlocked) x) => !x.Unlocked).ToList(); + _chatGui.Print($"Aethernet Shards in {value4} ({list.Count} total):", "Questionable", 576); + _chatGui.Print($" Unlocked: {list2.Count}", "Questionable", 576); + _chatGui.Print($" Missing: {list3.Count}", "Questionable", 576); + _chatGui.Print("", "Questionable", 576); + if (list3.Count > 0) + { + _chatGui.Print("Missing/Unattuned Aethernet Shards:", "Questionable", 576); + foreach (var item6 in list3.OrderBy<(EAetheryteLocation, string, bool), string>(((EAetheryteLocation Location, string Name, bool Unlocked) x) => x.Name)) + { + _chatGui.Print(" " + item6.Item2, "Questionable", 576); + } + _chatGui.Print("", "Questionable", 576); + } + if (list2.Count > 0) + { + _chatGui.Print("Unlocked Aethernet Shards:", "Questionable", 576); + foreach (var item7 in list2.OrderBy<(EAetheryteLocation, string, bool), string>(((EAetheryteLocation Location, string Name, bool Unlocked) x) => x.Name)) + { + _chatGui.Print(" " + item7.Item2, "Questionable", 576); + } + } + if (dictionary.Count > 1) + { + _chatGui.Print("", "Questionable", 576); + } } - } - - void IDebugCommandHandler.Execute(string[] arguments) - { - //ILSpy generated this explicit interface implementation from .override directive in Execute - this.Execute(arguments); - } - - static uint _200E_206C_202A_202B_200F_202E_206A_200F_200F_200F_202B_202C_206D_202B_206A_200F_202D_202D_202D_202A_206B_202E_202E_200B_206F_200E_206F_206A_202E_202C_206E_200E_202C_200D_206C_202E_206E_200D_206E_202A_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static AetheryteData _200C_206E_206B_202A_200B_206A_206C_202D_206B_200F_202C_200B_206D_202A_206F_202C_202E_200C_206D_202B_202B_200D_202B_202B_202C_200D_206D_200B_206D_202D_202A_200D_202A_200B_202B_200E_200B_206E_200D_200F_202E(IDataManager P_0) - { - return new AetheryteData(P_0); - } - - static ReadOnlyDictionary<EAetheryteLocation, ushort> _200C_206A_206A_206E_200E_200C_200D_202E_200B_200E_200B_200E_200B_200C_200D_206F_200D_200E_206D_200E_206E_206F_206B_202A_206A_206D_202C_206B_200E_200F_206D_200B_200E_206E_206F_202E_200B_206C_206A_206A_202E(AetheryteData P_0) - { - return P_0.TerritoryIds; - } - - static int _202C_206E_202A_200F_200F_202B_206F_202A_206B_206E_200C_200C_200D_206E_206A_200D_206E_202A_202A_200D_202C_206D_202D_202D_206C_200E_200D_200D_206E_202C_200B_206A_202D_202D_200E_206D_206A_202A_206F_202C_202E(string P_0, char P_1, StringComparison P_2) - { - return P_0.IndexOf(P_1, P_2); - } - - static string _206C_206B_202C_202B_202A_206A_202D_206C_202D_206F_202D_200C_206E_200D_200B_206A_202D_202D_202B_202D_200D_206E_202C_202D_200E_202B_206C_206D_202B_200D_202E_202C_200E_200B_200B_206E_206B_200C_202A_206B_202E(string P_0, int P_1, int P_2) - { - return P_0.Substring(P_1, P_2); - } - - static void _200C_206F_206B_206A_202D_206F_200E_206B_202C_202B_206C_206D_200C_200F_206B_200C_206D_206D_206E_202A_206E_202D_202B_206C_202B_206B_206E_206E_206F_202B_202E_206A_202D_200F_206B_202D_206A_200B_206F_206F_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); - } - - static string _206B_206F_202C_206F_200D_200C_206C_200C_206F_206E_206E_206A_202B_202B_202C_206F_200B_202C_206C_202D_202A_200B_202B_202A_200D_206B_206B_200C_202B_202A_202D_200D_202E_206E_206A_206C_202E_206A_206A_202C_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static bool _202A_200B_202A_202E_206E_202A_206D_206B_206E_202C_202A_200F_200E_202E_202B_200C_202A_206F_206E_206A_202A_200E_206D_200C_206A_202E_206C_202D_202B_200E_200C_206F_200E_202A_206C_206A_206D_202D_202C_200D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206E_200E_206B_206C_206E_200F_206D_200F_206D_200C_206B_202E_202B_200E_202C_206F_206F_200B_206A_200D_200D_200F_200E_206A_206D_202D_202E_200D_200C_206F_200B_200B_200B_206F_202B_206E_206B_202A_202D_206D_202E(IDisposable P_0) - { - P_0.Dispose(); } } diff --git a/Questionable/Questionable.Controller.DebugCommands/DebugCommandExecutor.cs b/Questionable/Questionable.Controller.DebugCommands/DebugCommandExecutor.cs index 4cbbb33..b2fd9fd 100644 --- a/Questionable/Questionable.Controller.DebugCommands/DebugCommandExecutor.cs +++ b/Questionable/Questionable.Controller.DebugCommands/DebugCommandExecutor.cs @@ -10,36 +10,16 @@ internal sealed class DebugCommandExecutor public DebugCommandExecutor(IEnumerable<IDebugCommandHandler> handlers) { - _handlers = handlers.ToDictionary<IDebugCommandHandler, string>((IDebugCommandHandler h) => h.CommandName, _202E_200E_202A_202D_206B_202D_206D_202B_206F_200E_202E_200F_200E_200E_202D_200C_200B_202C_202A_202B_200C_202C_206F_200C_200E_206B_202D_200F_200D_206E_202D_200F_200D_202E_200F_202D_202A_202C_206B_206C_202E()); + _handlers = handlers.ToDictionary<IDebugCommandHandler, string>((IDebugCommandHandler h) => h.CommandName, StringComparer.OrdinalIgnoreCase); } public bool TryExecute(string command, string[] arguments) { - IDebugCommandHandler value; - int num = ((!_handlers.TryGetValue(command, out value)) ? (-573165882) : (-573165881)); - while (true) + if (_handlers.TryGetValue(command, out IDebugCommandHandler value)) { - int num2 = num; - int num3 = -573165882; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return false; - case 1: - value.Execute(arguments); - return true; - case 2: - goto IL_0059; - } - continue; - IL_0059: - num = -573165881; + value.Execute(arguments); + return true; } - } - - static StringComparer _202E_200E_202A_202D_206B_202D_206D_202B_206F_200E_202E_200F_200E_200E_202D_200C_200B_202C_202A_202B_200C_202C_206F_200C_200E_206B_202D_200F_200D_206E_202D_200F_200D_202E_200F_202D_202A_202C_206B_206C_202E() - { - return StringComparer.OrdinalIgnoreCase; + return false; } } diff --git a/Questionable/Questionable.Controller.DebugCommands/FestivalsCommandHandler.cs b/Questionable/Questionable.Controller.DebugCommands/FestivalsCommandHandler.cs index 233f2bd..b855864 100644 --- a/Questionable/Questionable.Controller.DebugCommands/FestivalsCommandHandler.cs +++ b/Questionable/Questionable.Controller.DebugCommands/FestivalsCommandHandler.cs @@ -1,5 +1,4 @@ using System.Collections.Generic; -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; @@ -9,126 +8,32 @@ internal sealed class FestivalsCommandHandler : IDebugCommandHandler { private readonly IChatGui _chatGui; - public string CommandName - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-121174418); - } - } + public string CommandName => "festivals"; public FestivalsCommandHandler(IChatGui chatGui) { _chatGui = chatGui; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe void Execute(string[] arguments) { List<string> list = new List<string>(); - byte b = 0; - int num = 1430954904; - GameMain.Festival festival = default(GameMain.Festival); - while (true) + for (byte b = 0; b < 4; b++) { - int num2 = num; - int num3 = 1430954907; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + GameMain.Festival festival = GameMain.Instance()->ActiveFestivals[b]; + if (festival.Id == 0) { - case 6: - { - byte num8 = b; - num3 = 1; - num4 = num8; - b = (byte)((num4 | num3) + (num4 & num3)); - num = 1430954904; - break; + list.Add($"Slot {b}: None"); } - case 0: + else { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(9, 3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1926210210)); - defaultInterpolatedStringHandler.AppendFormatted(b); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2074665157)); - defaultInterpolatedStringHandler.AppendFormatted(festival.Id); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1721352497)); - defaultInterpolatedStringHandler.AppendFormatted(festival.Phase); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - list.Add(defaultInterpolatedStringHandler.ToStringAndClear()); - num = 1430954909; - break; - } - case 4: - festival = GameMain.Instance()->ActiveFestivals[b]; - num = ((festival.Id != 0) ? 1430954907 : 1430954906); - break; - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(11, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1926210210)); - defaultInterpolatedStringHandler2.AppendFormatted(b); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-911476888)); - list.Add(defaultInterpolatedStringHandler2.ToStringAndClear()); - num = 1430954909; - break; - } - case 3: - num = ((b < 4) ? 1430954911 : 1430954905); - break; - case 5: - num = 1430954904; - break; - case 2: - { - _206E_202E_202D_206B_206E_206E_202A_202D_202C_206B_202A_200D_200F_202B_206B_200D_206D_206E_202D_206C_206B_200B_202D_200B_200B_206C_200E_206F_206F_200E_202E_206F_206A_202B_202B_200C_200F_202E_206E_200F_202E(_chatGui, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(968833819), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712), (ushort?)(ushort)576); - using List<string>.Enumerator enumerator = list.GetEnumerator(); - num = 1158746389; - while (true) - { - int num7 = num; - num3 = 1158746390; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1158746389; - break; - case 2: - { - string current = enumerator.Current; - _206E_202E_202D_206B_206E_206E_202A_202D_202C_206B_202A_200D_200F_202B_206B_200D_206D_206E_202D_206C_206B_200B_202D_200B_200B_206C_200E_206F_206F_200E_202E_206F_206A_202B_202B_200C_200F_202E_206E_200F_202E(_chatGui, _202A_206E_202B_206B_200D_206A_200C_200F_200E_202A_200B_200D_202A_202E_206D_206A_200E_200B_206A_202D_202B_206C_206F_202B_200C_206D_206B_200E_202C_206E_200D_202B_206C_206A_202B_202E_206F_206A_200F_200E_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-616133030), current), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); - num = 1158746389; - break; - } - case 3: - num = (enumerator.MoveNext() ? 1158746388 : 1158746391); - break; - case 1: - return; - } - } - } + list.Add($"Slot {b}: {festival.Id}({festival.Phase})"); } } - } - - void IDebugCommandHandler.Execute(string[] arguments) - { - //ILSpy generated this explicit interface implementation from .override directive in Execute - this.Execute(arguments); - } - - static void _206E_202E_202D_206B_206E_206E_202A_202D_202C_206B_202A_200D_200F_202B_206B_200D_206D_206E_202D_206C_206B_200B_202D_200B_200B_206C_200E_206F_206F_200E_202E_206F_206A_202B_202B_200C_200F_202E_206E_200F_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); - } - - static string _202A_206E_202B_206B_200D_206A_200C_200F_200E_202A_200B_200D_202A_202E_206D_206A_200E_200B_206A_202D_202B_206C_206F_202B_200C_206D_206B_200E_202C_206E_200D_202B_206C_206A_202B_202E_206F_206A_200F_200E_202E(string P_0, string P_1) - { - return P_0 + P_1; + _chatGui.Print("Festival slots:", "Questionable", 576); + foreach (string item in list) + { + _chatGui.Print(" " + item, "Questionable", 576); + } } } diff --git a/Questionable/Questionable.Controller.DebugCommands/MountIdCommandHandler.cs b/Questionable/Questionable.Controller.DebugCommands/MountIdCommandHandler.cs index 2aa84b7..29962f3 100644 --- a/Questionable/Questionable.Controller.DebugCommands/MountIdCommandHandler.cs +++ b/Questionable/Questionable.Controller.DebugCommands/MountIdCommandHandler.cs @@ -1,4 +1,3 @@ -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using Lumina.Excel.Sheets; using Questionable.Functions; @@ -13,14 +12,7 @@ internal sealed class MountIdCommandHandler : IDebugCommandHandler private readonly IChatGui _chatGui; - public string CommandName - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1623938064); - } - } + public string CommandName => "mountid"; public MountIdCommandHandler(GameFunctions gameFunctions, IDataManager dataManager, IChatGui chatGui) { @@ -29,52 +21,17 @@ internal sealed class MountIdCommandHandler : IDebugCommandHandler _chatGui = chatGui; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Execute(string[] arguments) { ushort? mountId = _gameFunctions.GetMountId(); - int num = ((!mountId.HasValue) ? (-816888412) : (-816888409)); - while (true) + if (mountId.HasValue) { - int num2 = num; - int num3 = -816888410; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_005c; - case 1: - { - Mount? rowOrDefault = _dataManager.GetExcelSheet<Mount>().GetRowOrDefault(mountId.Value); - IChatGui chatGui = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(32, 3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-724667410)); - defaultInterpolatedStringHandler.AppendFormatted(mountId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1645361832)); - defaultInterpolatedStringHandler.AppendFormatted(rowOrDefault?.Singular); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1660044622)); - defaultInterpolatedStringHandler.AppendFormatted((rowOrDefault?.Order == -1) ? global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(474250124) : global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(514511304)); - _202E_206C_202D_206C_202C_206D_202E_200D_202B_206F_206D_206F_206B_202B_202D_206D_200E_206C_202B_202E_202E_202C_202E_206D_200D_202B_202C_202B_202D_200B_206C_200F_200F_202C_206D_202B_206F_202E_200F_202D_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - return; - } - case 2: - _202E_206C_202D_206C_202C_206D_202E_200D_202B_206F_206D_206F_206B_202B_202D_206D_200E_206C_202B_202E_202E_202C_202E_206D_200D_202B_202C_202B_202D_200B_206C_200F_200F_202C_206D_202B_206F_202E_200F_202D_202E(_chatGui, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2009796622), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - return; - } - continue; - IL_005c: - num = -816888409; + Mount? rowOrDefault = _dataManager.GetExcelSheet<Mount>().GetRowOrDefault(mountId.Value); + _chatGui.Print($"Mount ID: {mountId}, Name: {rowOrDefault?.Singular}, Obtainable: {((rowOrDefault?.Order == -1) ? "No" : "Yes")}", "Questionable", 576); + } + else + { + _chatGui.Print("You are not mounted.", "Questionable", 576); } } - - void IDebugCommandHandler.Execute(string[] arguments) - { - //ILSpy generated this explicit interface implementation from .override directive in Execute - this.Execute(arguments); - } - - static void _202E_206C_202D_206C_202C_206D_202E_200D_202B_206F_206D_206F_206B_202B_202D_206D_200E_206C_202B_202E_202E_202C_202E_206D_200D_202B_202C_202B_202D_200B_206C_200F_200F_202C_206D_202B_206F_202E_200F_202D_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); - } } diff --git a/Questionable/Questionable.Controller.DebugCommands/NextQuestCommandHandler.cs b/Questionable/Questionable.Controller.DebugCommands/NextQuestCommandHandler.cs index 5c00604..bf640eb 100644 --- a/Questionable/Questionable.Controller.DebugCommands/NextQuestCommandHandler.cs +++ b/Questionable/Questionable.Controller.DebugCommands/NextQuestCommandHandler.cs @@ -1,4 +1,3 @@ -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using Questionable.Functions; using Questionable.Model; @@ -16,14 +15,7 @@ internal sealed class NextQuestCommandHandler : IDebugCommandHandler private readonly IChatGui _chatGui; - public string CommandName - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1283200128); - } - } + public string CommandName => "next"; public NextQuestCommandHandler(QuestController questController, QuestRegistry questRegistry, QuestFunctions questFunctions, IChatGui chatGui) { @@ -33,98 +25,29 @@ internal sealed class NextQuestCommandHandler : IDebugCommandHandler _chatGui = chatGui; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Execute(string[] arguments) { - int num = ((arguments.Length < 1) ? 618054138 : 618054137); - ElementId elementId = default(ElementId); - Quest quest = default(Quest); - while (true) + if (arguments.Length >= 1 && ElementId.TryFromString(arguments[0], out ElementId elementId) && elementId != null) { - int num2 = num; - int num3 = 618054140; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + Quest quest; + if (_questFunctions.IsQuestLocked(elementId)) { - case 3: - num = ((!_questRegistry.TryGetQuest(elementId, out quest)) ? 618054132 : 618054141); - break; - case 1: + _chatGui.PrintError($"Quest {elementId} is locked.", "Questionable", 576); + } + else if (_questRegistry.TryGetQuest(elementId, out quest)) { _questController.SetNextQuest(quest); - IChatGui chatGui2 = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(22, 2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1603211036)); - defaultInterpolatedStringHandler2.AppendFormatted(elementId); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1473546846)); - defaultInterpolatedStringHandler2.AppendFormatted(quest.Info.Name); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1109945913)); - _206A_206B_206E_202B_200B_202E_206F_206E_202C_202B_200D_200D_206C_200D_202A_206C_202A_206B_200E_200C_202C_206C_202D_200C_200F_202E_200C_202D_206A_200D_206C_202E_202E_206D_206A_206B_202B_206B_200F_206B_202E(chatGui2, defaultInterpolatedStringHandler2.ToStringAndClear(), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - return; + _chatGui.Print($"Set next quest to {elementId} ({quest.Info.Name}).", "Questionable", 576); } - case 5: - num = ((!_200F_206D_206E_206A_206B_206F_202C_206F_202B_206C_206E_200E_206D_200D_200D_206A_202E_200B_202C_200D_200D_200B_206B_202C_200C_206C_202D_206D_200B_200F_202B_206F_200F_206E_202A_206E_200E_206A_206A_202C_202E(arguments[0], ref elementId)) ? 618054138 : 618054136); - break; - case 8: + else { - IChatGui chatGui = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(15, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-13913784)); - defaultInterpolatedStringHandler.AppendFormatted(elementId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-293246245)); - _200D_206D_200F_202B_200F_206F_200F_200B_206C_200B_202A_206C_202C_206D_202D_206A_200E_202A_202A_202E_202B_200E_200B_202A_202D_202E_200B_206A_206B_206E_202B_206A_206C_200E_206D_200C_200B_202E_200E_202D_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); - return; - } - case 2: - { - IChatGui chatGui3 = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(17, 1); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(18748268)); - defaultInterpolatedStringHandler3.AppendFormatted(elementId); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-832519361)); - _200D_206D_200F_202B_200F_206F_200F_200B_206C_200B_202A_206C_202C_206D_202D_206A_200E_202A_202A_202E_202B_200E_200B_202A_202D_202E_200B_206A_206B_206E_202B_206A_206C_200E_206D_200C_200B_202E_200E_202D_202E(chatGui3, defaultInterpolatedStringHandler3.ToStringAndClear(), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - return; - } - case 7: - num = ((!_questFunctions.IsQuestLocked(elementId)) ? 618054143 : 618054142); - break; - case 4: - num = ((!_202C_202A_206C_202D_200E_202D_200F_202C_206B_200B_202C_206B_200C_202C_202D_202E_200D_200B_206E_206B_200E_200F_206F_202A_206E_206C_200B_202E_206B_206B_206B_202D_206E_200E_202E_206F_202E_206E_202E_202D_202E(elementId, (ElementId)null)) ? 618054138 : 618054139); - break; - case 0: - num = 618054137; - break; - case 6: - _questController.SetNextQuest(null); - _206A_206B_206E_202B_200B_202E_206F_206E_202C_202B_200D_200D_206C_200D_202A_206C_202A_206B_200E_200C_202C_206C_202D_200C_200F_202E_200C_202D_206A_200D_206C_202E_202E_206D_206A_206B_202B_206B_200F_206B_202E(_chatGui, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-925408437), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - return; + _chatGui.PrintError($"Unknown quest {elementId}.", "Questionable", 576); } } - } - - void IDebugCommandHandler.Execute(string[] arguments) - { - //ILSpy generated this explicit interface implementation from .override directive in Execute - this.Execute(arguments); - } - - static bool _200F_206D_206E_206A_206B_206F_202C_206F_202B_206C_206E_200E_206D_200D_200D_206A_202E_200B_202C_200D_200D_200B_206B_202C_200C_206C_202D_206D_200B_200F_202B_206F_200F_206E_202A_206E_200E_206A_206A_202C_202E(string P_0, ref ElementId P_1) - { - return ElementId.TryFromString(P_0, out P_1); - } - - static bool _202C_202A_206C_202D_200E_202D_200F_202C_206B_200B_202C_206B_200C_202C_202D_202E_200D_200B_206E_206B_200E_200F_206F_202A_206E_206C_200B_202E_206B_206B_206B_202D_206E_200E_202E_206F_202E_206E_202E_202D_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } - - static void _200D_206D_200F_202B_200F_206F_200F_200B_206C_200B_202A_206C_202C_206D_202D_206A_200E_202A_202A_202E_202B_200E_200B_202A_202D_202E_200B_206A_206B_206E_202B_206A_206C_200E_206D_200C_200B_202E_200E_202D_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } - - static void _206A_206B_206E_202B_200B_202E_206F_206E_202C_202B_200D_200D_206C_200D_202A_206C_202A_206B_200E_200C_202C_206C_202D_200C_200F_202E_200C_202D_206A_200D_206C_202E_202E_206D_206A_206B_202B_206B_200F_206B_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); + else + { + _questController.SetNextQuest(null); + _chatGui.Print("Cleared next quest.", "Questionable", 576); + } } } diff --git a/Questionable/Questionable.Controller.DebugCommands/QuestKillsCommandHandler.cs b/Questionable/Questionable.Controller.DebugCommands/QuestKillsCommandHandler.cs index ca96a70..72c9403 100644 --- a/Questionable/Questionable.Controller.DebugCommands/QuestKillsCommandHandler.cs +++ b/Questionable/Questionable.Controller.DebugCommands/QuestKillsCommandHandler.cs @@ -1,9 +1,6 @@ -using System; -using System.Collections; using System.Collections.Generic; using System.Globalization; using System.Linq; -using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using Lumina.Excel; @@ -26,14 +23,7 @@ internal sealed class QuestKillsCommandHandler : IDebugCommandHandler private readonly IChatGui _chatGui; - public string CommandName - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-882231323); - } - } + public string CommandName => "quest-kills"; public QuestKillsCommandHandler(QuestController questController, QuestFunctions questFunctions, IDataManager dataManager, IObjectTable objectTable, IChatGui chatGui) { @@ -44,993 +34,187 @@ internal sealed class QuestKillsCommandHandler : IDebugCommandHandler _chatGui = chatGui; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Execute(string[] arguments) { (QuestController.QuestProgress, QuestController.ECurrentQuestType)? currentQuestDetails = _questController.CurrentQuestDetails; - int num = (currentQuestDetails.HasValue ? (-2091724656) : (-2091724646)); - QuestController.QuestProgress item = default(QuestController.QuestProgress); - Questionable.Model.Quest quest = default(Questionable.Model.Quest); - QuestSequence questSequence = default(QuestSequence); - QuestProgressInfo questProgressInfo = default(QuestProgressInfo); - QuestId questId = default(QuestId); - QuestStep questStep = default(QuestStep); - string item2 = default(string); - uint current2 = default(uint); - byte b = default(byte); - byte? b3 = default(byte?); - byte? b2 = default(byte?); - int num14 = default(int); - int num15 = default(int); - QuestWorkValue questWorkValue = default(QuestWorkValue); - ComplexCombatData complexCombatData = default(ComplexCombatData); - string value = default(string); - uint current3 = default(uint); - string item3 = default(string); - int num18 = default(int); - int num24 = default(int); - string value5 = default(string); - BNpcName? bNpcName = default(BNpcName?); - string item4 = default(string); - int num26 = default(int); - int num25 = default(int); - ComplexCombatData complexCombatData2 = default(ComplexCombatData); - byte b8 = default(byte); - byte? b5 = default(byte?); - QuestWorkValue questWorkValue3 = default(QuestWorkValue); - bool flag = default(bool); - byte b4 = default(byte); - byte b6 = default(byte); - byte b7 = default(byte); - QuestWorkValue questWorkValue2 = default(QuestWorkValue); - string value4 = default(string); - string value6 = default(string); - while (true) + if (!currentQuestDetails.HasValue) { - int num2 = num; - int num3 = -2091724647; - int num4 = num2; - object obj; - ExcelSheet<BNpcName> bnpcNameSheet; - switch ((num4 | num3) - (num4 & num3)) + _chatGui.PrintError("No active quest.", "Questionable", 576); + return; + } + QuestController.QuestProgress item = currentQuestDetails.Value.Item1; + Questionable.Model.Quest quest = item.Quest; + QuestProgressInfo questProgressInfo = null; + if (quest.Id is QuestId elementId) + { + questProgressInfo = _questFunctions.GetQuestProgressInfo(elementId); + } + if (questProgressInfo == null) + { + _chatGui.PrintError("Unable to retrieve quest progress information.", "Questionable", 576); + return; + } + QuestSequence questSequence = quest.FindSequence(item.Sequence); + if (questSequence == null) + { + _chatGui.PrintError($"Sequence {item.Sequence} not found for quest {quest.Id}.", "Questionable", 576); + return; + } + QuestStep questStep = ((item.Step < questSequence.Steps.Count) ? questSequence.Steps[item.Step] : null); + if (questStep == null) + { + _chatGui.PrintError($"Step {item.Step} not found in sequence {item.Sequence}.", "Questionable", 576); + return; + } + _chatGui.Print($"Quest: {quest.Info.Name} ({quest.Id})", "Questionable", 576); + _chatGui.Print($"Sequence: {item.Sequence}, Step: {item.Step}", "Questionable", 576); + _chatGui.Print("", "Questionable", 576); + _chatGui.Print("Quest Variables: " + string.Join(", ", questProgressInfo.Variables.Select((byte v, int i) => $"[{i}]={v}")), "Questionable", 576); + _chatGui.Print("", "Questionable", 576); + ExcelSheet<BNpcName> bnpcNameSheet = _dataManager.GetExcelSheet<BNpcName>(); + HashSet<uint> hashSet = new HashSet<uint>(questStep.KillEnemyDataIds); + foreach (ComplexCombatData complexCombatDatum in questStep.ComplexCombatData) + { + hashSet.Add(complexCombatDatum.DataId); + } + if (hashSet.Count > 0) + { + _chatGui.Print($"All Enemy DataIds Found: {hashSet.Count}", "Questionable", 576); + foreach (uint item3 in hashSet.OrderBy((uint x) => x)) { - case 5: - { - IChatGui chatGui10 = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler11 = new DefaultInterpolatedStringHandler(31, 2); - defaultInterpolatedStringHandler11.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-998481792)); - defaultInterpolatedStringHandler11.AppendFormatted(item.Sequence); - defaultInterpolatedStringHandler11.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1605795825)); - defaultInterpolatedStringHandler11.AppendFormatted(quest.Id); - defaultInterpolatedStringHandler11.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2093316539)); - _202B_200B_206E_206C_206E_202C_206B_202D_200D_202A_206A_200B_206E_206A_200D_200E_200D_200D_200E_200D_202E_200B_202D_202E_200E_200E_202A_202C_202B_200C_200F_200D_200C_202A_202E_202C_202A_200C_206F_206F_202E(chatGui10, defaultInterpolatedStringHandler11.ToStringAndClear(), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - return; - } - case 4: - num = ((item.Step < _206C_202A_206B_206B_206D_202A_200C_206A_202C_202B_202B_202E_206C_202D_200C_206F_206B_202C_200F_200D_206E_200B_202C_206A_206D_202C_200E_202B_202C_206C_206C_200E_202A_206C_202A_202B_200C_206D_206F_200C_202E(questSequence).Count) ? (-2091724642) : (-2091724655)); - break; - case 9: - item = currentQuestDetails.Value.Item1; - quest = item.Quest; - questProgressInfo = null; - questId = quest.Id as QuestId; - num = (((object)questId == null) ? (-2091724645) : (-2091724648)); - break; - case 7: - obj = _206C_202A_206B_206B_206D_202A_200C_206A_202C_202B_202B_202E_206C_202D_200C_206F_206B_202C_200F_200D_206E_200B_202C_206A_206D_202C_200E_202B_202C_206C_206C_200E_202A_206C_202A_202B_200C_206D_206F_200C_202E(questSequence)[item.Step]; - goto IL_0186; - case 0: - _202B_200B_206E_206C_206E_202C_206B_202D_200D_202A_206A_200B_206E_206A_200D_200E_200D_200D_200E_200D_202E_200B_202D_202E_200E_200E_202A_202C_202B_200C_200F_200D_200C_202A_202E_202C_202A_200C_206F_206F_202E(_chatGui, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1880590323), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - return; - case 2: - num = ((questProgressInfo != null) ? (-2091724651) : (-2091724647)); - break; - case 12: - questSequence = quest.FindSequence(item.Sequence); - num = ((questSequence != null) ? (-2091724643) : (-2091724644)); - break; - case 1: - questProgressInfo = _questFunctions.GetQuestProgressInfo(questId); - num = -2091724645; - break; - case 3: - _202B_200B_206E_206C_206E_202C_206B_202D_200D_202A_206A_200B_206E_206A_200D_200E_200D_200D_200E_200D_202E_200B_202D_202E_200E_200E_202A_202C_202B_200C_200F_200D_200C_202A_202E_202C_202A_200C_206F_206F_202E(_chatGui, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(882400571), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - return; - case 6: - num = -2091724646; - break; - case 11: - { - IChatGui chatGui9 = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler10 = new DefaultInterpolatedStringHandler(29, 2); - defaultInterpolatedStringHandler10.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-965467699)); - defaultInterpolatedStringHandler10.AppendFormatted(item.Step); - defaultInterpolatedStringHandler10.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1303781530)); - defaultInterpolatedStringHandler10.AppendFormatted(item.Sequence); - defaultInterpolatedStringHandler10.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-293246245)); - _202B_200B_206E_206C_206E_202C_206B_202D_200D_202A_206A_200B_206E_206A_200D_200E_200D_200D_200E_200D_202E_200B_202D_202E_200E_200E_202A_202C_202B_200C_200F_200D_200C_202A_202E_202C_202A_200C_206F_206F_202E(chatGui9, defaultInterpolatedStringHandler10.ToStringAndClear(), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - return; - } - case 8: - obj = null; - goto IL_0186; - case 10: + (string Name, bool Found) tuple = GetEnemyName(item3); + var (value, _) = tuple; + if (tuple.Found) { - IChatGui chatGui = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(10, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1585494658)); - defaultInterpolatedStringHandler.AppendFormatted(quest.Info.Name); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1473546846)); - defaultInterpolatedStringHandler.AppendFormatted(quest.Id); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - _206C_206B_202B_206F_200D_202B_200B_200C_206C_206B_206A_200B_206B_206A_200F_200D_202A_200D_200E_206A_206A_200B_200F_202A_202E_200F_200F_200D_202A_202A_206A_206D_206A_206C_206E_206B_202D_200D_200D_202E_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - IChatGui chatGui2 = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(18, 2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1490060220)); - defaultInterpolatedStringHandler2.AppendFormatted(item.Sequence); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1683192731)); - defaultInterpolatedStringHandler2.AppendFormatted(item.Step); - _206C_206B_202B_206F_200D_202B_200B_200C_206C_206B_206A_200B_206B_206A_200F_200D_202A_200D_200E_206A_206A_200B_200F_202A_202E_200F_200F_200D_202A_202A_206A_206D_206A_206C_206E_206B_202D_200D_200D_202E_202E(chatGui2, defaultInterpolatedStringHandler2.ToStringAndClear(), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); - _206C_206B_202B_206F_200D_202B_200B_200C_206C_206B_206A_200B_206B_206A_200F_200D_202A_200D_200E_206A_206A_200B_200F_202A_202E_200F_200F_200D_202A_202A_206A_206D_206A_206C_206E_206B_202D_200D_200D_202E_202E(_chatGui, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1694032531), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - _206C_206B_202B_206F_200D_202B_200B_200C_206C_206B_206A_200B_206B_206A_200F_200D_202A_200D_200E_206A_206A_200B_200F_202A_202E_200F_200F_200D_202A_202A_206A_206D_206A_206C_206E_206B_202D_200D_200D_202E_202E(_chatGui, _200C_200E_202E_206C_202B_200B_200D_206E_202A_206C_202B_200E_206D_206D_200D_206B_200B_202A_206C_202B_202C_200D_202D_200D_200F_202B_206F_202A_200D_206C_202B_206C_206F_200C_200E_200E_206A_206F_202D_202B_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(426079486), _202C_200D_202A_200B_200B_206F_200D_202E_200D_202D_200F_200D_206F_202A_200B_206B_206D_206F_200E_206A_206E_200F_206A_206E_200B_206A_206B_206E_200D_200E_202E_202B_200E_206E_202B_200C_202C_202B_202D_206F_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1087086507), questProgressInfo.Variables.Select([MethodImpl(MethodImplOptions.NoInlining)] (byte v, int i) => - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler17 = new DefaultInterpolatedStringHandler(3, 2); - defaultInterpolatedStringHandler17.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1234830832)); - defaultInterpolatedStringHandler17.AppendFormatted(i); - defaultInterpolatedStringHandler17.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-534324276)); - defaultInterpolatedStringHandler17.AppendFormatted(v); - return defaultInterpolatedStringHandler17.ToStringAndClear(); - }))), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - _206C_206B_202B_206F_200D_202B_200B_200C_206C_206B_206A_200B_206B_206A_200F_200D_202A_200D_200E_206A_206A_200B_200F_202A_202E_200F_200F_200D_202A_202A_206A_206D_206A_206C_206E_206B_202D_200D_200D_202E_202E(_chatGui, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-87324410), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - bnpcNameSheet = _dataManager.GetExcelSheet<BNpcName>(); - HashSet<uint> hashSet = new HashSet<uint>(_200E_200E_206F_200F_206C_200C_202C_206F_202B_200F_202B_202E_200B_206A_206E_200C_200D_206D_202E_202C_202C_200D_206D_206A_200F_206B_206F_200C_200D_206F_202E_202C_200E_200F_202B_200B_202B_202E_206A_202E(questStep)); - using (List<ComplexCombatData>.Enumerator enumerator = _200F_206E_200E_202A_202D_206F_202D_200F_202C_206B_200B_206B_200D_200E_200B_200D_206A_202D_200C_200D_202C_202D_206A_202A_206C_206C_200E_206C_202B_200E_206A_200D_202B_202C_202C_200F_200F_202B_200D_202B_202E(questStep).GetEnumerator()) - { - num = 199057681; - while (true) - { - int num5 = num; - num3 = 199057682; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = (enumerator.MoveNext() ? 199057680 : 199057683); - break; - case 2: - { - ComplexCombatData current = enumerator.Current; - hashSet.Add(_200C_206A_206C_202B_202E_206F_206C_202C_200B_202A_202C_200F_200B_202E_200F_202A_206C_206F_206E_200C_202D_200B_200C_200C_202D_200E_200F_202A_206F_200C_206B_200E_200D_200F_206B_206F_200C_206E_206C_206F_202E(current)); - num = 199057681; - break; - } - case 0: - num = 199057681; - break; - case 1: - goto end_IL_04ee; - } - continue; - end_IL_04ee: - break; - } - } - if (hashSet.Count > 0) - { - IChatGui chatGui3 = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(25, 1); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-102593290)); - defaultInterpolatedStringHandler3.AppendFormatted(hashSet.Count); - _206C_206B_202B_206F_200D_202B_200B_200C_206C_206B_206A_200B_206B_206A_200F_200D_202A_200D_200E_206A_206A_200B_200F_202A_202E_200F_200F_200D_202A_202A_206A_206D_206A_206C_206E_206B_202D_200D_200D_202E_202E(chatGui3, defaultInterpolatedStringHandler3.ToStringAndClear(), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712), (ushort?)(ushort)576); - IEnumerator<uint> enumerator2 = hashSet.OrderBy((uint x) => x).GetEnumerator(); - try - { - num = 1388776285; - while (true) - { - int num6 = num; - num3 = 1388776281; - num4 = num6; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1388776285; - break; - case 1: - { - IChatGui chatGui4 = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler4 = new DefaultInterpolatedStringHandler(15, 2); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-302791330)); - defaultInterpolatedStringHandler4.AppendFormatted(item2); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(600656782)); - defaultInterpolatedStringHandler4.AppendFormatted(current2); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - _206C_206B_202B_206F_200D_202B_200B_200C_206C_206B_206A_200B_206B_206A_200F_200D_202A_200D_200E_206A_206A_200B_200F_202A_202E_200F_200F_200D_202A_202A_206A_206D_206A_206C_206E_206B_202D_200D_200D_202E_202E(chatGui4, defaultInterpolatedStringHandler4.ToStringAndClear(), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712), (ushort?)(ushort)576); - num = 1388776285; - break; - } - case 3: - { - current2 = enumerator2.Current; - (string Name, bool Found) tuple = GetEnemyName(current2); - item2 = tuple.Name; - num = ((!tuple.Found) ? 1388776283 : 1388776280); - break; - } - case 2: - { - IChatGui chatGui5 = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler5 = new DefaultInterpolatedStringHandler(12, 1); - defaultInterpolatedStringHandler5.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(500943606)); - defaultInterpolatedStringHandler5.AppendFormatted(current2); - _206C_206B_202B_206F_200D_202B_200B_200C_206C_206B_206A_200B_206B_206A_200F_200D_202A_200D_200E_206A_206A_200B_200F_202A_202E_200F_200F_200D_202A_202A_206A_206D_206A_206C_206E_206B_202D_200D_200D_202E_202E(chatGui5, defaultInterpolatedStringHandler5.ToStringAndClear(), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); - num = 1388776285; - break; - } - case 4: - num = (_206D_202D_202A_202A_200B_206C_200D_206B_206F_200F_206C_202B_200C_206E_200F_200D_200C_206E_206C_200C_200C_202D_200F_202D_202D_202A_202B_206D_206D_200C_202B_206A_200B_200F_200B_200C_202D_200B_206B_200C_202E((IEnumerator)enumerator2) ? 1388776282 : 1388776284); - break; - case 5: - goto end_IL_061d; - } - continue; - end_IL_061d: - break; - } - } - finally - { - num = ((enumerator2 == null) ? 166814860 : 166814863); - while (true) - { - int num7 = num; - num3 = 166814862; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 166814863; - break; - case 2: - goto end_IL_07bd; - case 1: - _202E_206E_200F_206E_202A_206A_200F_206F_200B_206F_206D_200D_202A_200D_202E_206E_206A_206A_206A_202B_200E_200C_202D_200E_202D_206E_200B_206A_206F_206B_206A_202D_206F_206B_200B_200D_200D_202B_202A_206F_202E((IDisposable)enumerator2); - num = 166814860; - break; - } - continue; - end_IL_07bd: - break; - } - } - _206C_206B_202B_206F_200D_202B_200B_200C_206C_206B_206A_200B_206B_206A_200F_200D_202A_200D_200E_206A_206A_200B_200F_202A_202E_200F_200F_200D_202A_202A_206A_206D_206A_206C_206E_206B_202D_200D_200D_202E_202E(_chatGui, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1720149641), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - } - if (_200F_206E_200E_202A_202D_206F_202D_200F_202C_206B_200B_206B_200D_200E_200B_200D_206A_202D_200C_200D_202C_202D_206A_202A_206C_206C_200E_206C_202B_200E_206A_200D_202B_202C_202C_200F_200F_202B_200D_202B_202E(questStep).Count > 0) - { - num = 974555832; - while (true) - { - int num8 = num; - num3 = 974555816; - num4 = num8; - string text; - int num13; - string text2; - string value2; - IEnumerator<uint> enumerator2; - switch ((num4 | num3) - (num4 & num3)) - { - case 12: - goto IL_08bc; - case 11: - { - byte num17 = b; - b3 = b2; - if (num17 >= b3) - { - num = 974555816; - break; - } - goto case 17; - } - case 9: - num14 = num15; - b2 = _200C_206D_200E_206B_202D_206E_206B_200C_206D_202D_202D_200B_206D_202D_200C_200F_206B_206F_200F_200D_202C_202B_206A_206D_200E_206A_206D_200D_200F_200D_200B_202D_206E_206B_202E_202C_206C_202D_202A_202E_202E(questWorkValue); - num = 974555812; - break; - case 1: - text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1522766800); - goto IL_0c16; - case 5: - goto IL_0964; - case 10: - num13 = 0; - goto IL_0a25; - case 6: - { - int num16 = num15; - num3 = 1; - num4 = num16; - num15 = (num4 | num3) + (num4 & num3); - num = 974555821; - break; - } - case 13: - goto IL_09c1; - case 18: - complexCombatData = _200F_206E_200E_202A_202D_206F_202D_200F_202C_206B_200B_206B_200D_200E_200B_200D_206A_202D_200C_200D_202C_202D_206A_202A_206C_206C_200E_206C_202B_200E_206A_200D_202B_202C_202C_200F_200F_202B_200D_202B_202E(questStep)[0]; - num14 = -1; - b2 = null; - num15 = 0; - num = 974555821; - break; - case 2: - num13 = questProgressInfo.Variables[num14]; - goto IL_0a25; - case 17: - num = 974555817; - break; - case 4: - text2 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-87324410); - goto IL_0acc; - case 8: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler6 = new DefaultInterpolatedStringHandler(2, 2); - defaultInterpolatedStringHandler6.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1051702537)); - defaultInterpolatedStringHandler6.AppendFormatted(b); - defaultInterpolatedStringHandler6.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-70733513)); - defaultInterpolatedStringHandler6.AppendFormatted(b2); - text2 = defaultInterpolatedStringHandler6.ToStringAndClear(); - goto IL_0acc; - } - case 7: - goto IL_0af2; - case 14: - num = 974555832; - break; - case 16: - goto IL_0b17; - case 3: - goto IL_0bb2; - case 15: - goto IL_0be1; - case 0: - { - text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-557889982); - goto IL_0c16; - } - IL_0acc: - value = text2; - num = ((!b2.HasValue) ? 974555833 : 974555811); - break; - IL_0c16: - value2 = text; - enumerator2 = hashSet.OrderBy((uint x) => x).GetEnumerator(); - try - { - num = 180586777; - while (true) - { - int num9 = num; - num3 = 180586780; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 0: - { - IChatGui chatGui7 = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler8 = new DefaultInterpolatedStringHandler(25, 3); - defaultInterpolatedStringHandler8.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2047193429)); - defaultInterpolatedStringHandler8.AppendFormatted(value2); - defaultInterpolatedStringHandler8.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1785539984)); - defaultInterpolatedStringHandler8.AppendFormatted(value); - defaultInterpolatedStringHandler8.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1864270054)); - defaultInterpolatedStringHandler8.AppendFormatted(current3); - defaultInterpolatedStringHandler8.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - _206C_206B_202B_206F_200D_202B_200B_200C_206C_206B_206A_200B_206B_206A_200F_200D_202A_200D_200E_206A_206A_200B_200F_202A_202E_200F_200F_200D_202A_202A_206A_206D_206A_206C_206E_206B_202D_200D_200D_202E_202E(chatGui7, defaultInterpolatedStringHandler8.ToStringAndClear(), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - num = 180586777; - break; - } - case 2: - { - IChatGui chatGui6 = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler7 = new DefaultInterpolatedStringHandler(20, 4); - defaultInterpolatedStringHandler7.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(244795324)); - defaultInterpolatedStringHandler7.AppendFormatted(value2); - defaultInterpolatedStringHandler7.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(722906616)); - defaultInterpolatedStringHandler7.AppendFormatted(item3); - defaultInterpolatedStringHandler7.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2093316539)); - defaultInterpolatedStringHandler7.AppendFormatted(value); - defaultInterpolatedStringHandler7.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(600656782)); - defaultInterpolatedStringHandler7.AppendFormatted(current3); - defaultInterpolatedStringHandler7.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - _206C_206B_202B_206F_200D_202B_200B_200C_206C_206B_206A_200B_206B_206A_200F_200D_202A_200D_200E_206A_206A_200B_200F_202A_202E_200F_200F_200D_202A_202A_206A_206D_206A_206C_206E_206B_202D_200D_200D_202E_202E(chatGui6, defaultInterpolatedStringHandler7.ToStringAndClear(), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - num = 180586777; - break; - } - case 1: - { - current3 = enumerator2.Current; - (string Name, bool Found) tuple2 = GetEnemyName(current3); - item3 = tuple2.Name; - num = ((!tuple2.Found) ? 180586780 : 180586782); - break; - } - case 5: - num = (_206D_202D_202A_202A_200B_206C_200D_206B_206F_200F_206C_202B_200C_206E_200F_200D_200C_206E_206C_200C_200C_202D_200F_202D_202D_202A_202B_206D_206D_200C_202B_206A_200B_200F_200B_200C_202D_200B_206B_200C_202E((IEnumerator)enumerator2) ? 180586781 : 180586776); - break; - case 3: - num = 180586777; - break; - case 4: - goto end_IL_0c54; - } - continue; - end_IL_0c54: - break; - } - } - finally - { - num = ((enumerator2 == null) ? (-170666151) : (-170666150)); - while (true) - { - int num12 = num; - num3 = -170666152; - num4 = num12; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - goto end_IL_0e6f; - case 2: - _202E_206E_200F_206E_202A_206A_200F_206F_200B_206F_206D_200D_202A_200D_202E_206E_206A_206A_206A_202B_200E_200C_202D_200E_202D_206E_200B_206A_206F_206B_206A_202D_206F_206B_200B_200D_200D_202B_202A_206F_202E((IDisposable)enumerator2); - num = -170666151; - break; - case 0: - num = -170666150; - break; - } - continue; - end_IL_0e6f: - break; - } - } - goto end_IL_0850; - IL_0a25: - b = (byte)(num13 & 0xF); - num = (b2.HasValue ? 974555808 : 974555820); - break; - } - continue; - IL_0be1: - num = ((num14 < questProgressInfo.Variables.Count) ? 974555818 : 974555810); - continue; - IL_0964: - num = ((num15 < _200B_206F_206B_200E_202A_202E_202B_200C_200F_206E_202A_200E_202A_202E_200F_200C_206A_206F_206D_200D_200F_202C_200F_202B_206D_200C_202D_206B_202B_206D_200B_206E_202C_202C_200D_200C_200D_202C_202B_200F_202E(complexCombatData).Count) ? 974555819 : 974555812); - continue; - IL_0af2: - if (hashSet.Count > 1) - { - num = 974555834; - continue; - } - goto IL_0ebb; - IL_0bb2: - questWorkValue = _200B_206F_206B_200E_202A_202E_202B_200C_200F_206E_202A_200E_202A_202E_200F_200C_206A_206F_206D_200D_200F_202C_200F_202B_206D_200C_202D_206B_202B_206D_200B_206E_202C_202C_200D_200C_200D_202C_202B_200F_202E(complexCombatData)[num15]; - num = ((questWorkValue == null) ? 974555822 : 974555813); - continue; - IL_08bc: - num = ((num14 < 0) ? 974555810 : 974555815); - continue; - IL_09c1: - b3 = _200C_206D_200E_206B_202D_206E_206B_200C_206D_202D_202D_200B_206D_202D_200C_200F_206B_206F_200F_200D_202C_202B_206A_206D_200E_206A_206D_200D_200F_200D_200B_202D_206E_206B_202E_202C_206C_202D_202A_202E_202E(questWorkValue); - num = ((!b3.HasValue) ? 974555822 : 974555809); - continue; - IL_0b17: - IChatGui chatGui8 = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler9 = new DefaultInterpolatedStringHandler(29, 1); - defaultInterpolatedStringHandler9.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-658090933)); - defaultInterpolatedStringHandler9.AppendFormatted(_200F_206E_200E_202A_202D_206F_202D_200F_202C_206B_200B_206B_200D_200E_200B_200D_206A_202D_200C_200D_202C_202D_206A_202A_206C_206C_200E_206C_202B_200E_206A_200D_202B_202C_202C_200F_200F_202B_200D_202B_202E(questStep).Count); - _206C_206B_202B_206F_200D_202B_200B_200C_206C_206B_206A_200B_206B_206A_200F_200D_202A_200D_200E_206A_206A_200B_200F_202A_202E_200F_200F_200D_202A_202A_206A_206D_206A_206C_206E_206B_202D_200D_200D_202E_202E(chatGui8, defaultInterpolatedStringHandler9.ToStringAndClear(), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - _206C_206B_202B_206F_200D_202B_200B_200C_206C_206B_206A_200B_206B_206A_200F_200D_202A_200D_200E_206A_206A_200B_200F_202A_202E_200F_200F_200D_202A_202A_206A_206D_206A_206C_206E_206B_202D_200D_200D_202E_202E(_chatGui, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(831519376), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - if (_200F_206E_200E_202A_202D_206F_202D_200F_202C_206B_200B_206B_200D_200E_200B_200D_206A_202D_200C_200D_202C_202D_206A_202A_206C_206C_200E_206C_202B_200E_206A_200D_202B_202C_202C_200F_200F_202B_200D_202B_202E(questStep).Count == 1) - { - num = 974555823; - continue; - } - goto IL_0ebb; - continue; - end_IL_0850: - break; - } - goto IL_15ce; - } - if (_200E_200E_206F_200F_206C_200C_202C_206F_202B_200F_202B_202E_200B_206A_206E_200C_200D_206D_202E_202C_202C_200D_206D_206A_200F_206B_206F_200C_200D_206F_202E_202C_200E_200F_202B_200B_202B_202E_206A_202E(questStep).Count == 0) - { - _206C_206B_202B_206F_200D_202B_200B_200C_206C_206B_206A_200B_206B_206A_200F_200D_202A_200D_200E_206A_206A_200B_200F_202A_202E_200F_200F_200D_202A_202A_206A_206D_206A_206C_206E_206B_202D_200D_200D_202E_202E(_chatGui, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1983270106), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712), (ushort?)(ushort)576); - _206C_206B_202B_206F_200D_202B_200B_200C_206C_206B_206A_200B_206B_206A_200F_200D_202A_200D_200E_206A_206A_200B_200F_202A_202E_200F_200F_200D_202A_202A_206A_206D_206A_206C_206E_206B_202D_200D_200D_202E_202E(_chatGui, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1720149641), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - num = 1524603349; - goto IL_0eca; - } - goto IL_18fe; + _chatGui.Print($" - {value} (DataId: {item3})", "Questionable", 576); } - IL_15ce: - _206C_206B_202B_206F_200D_202B_200B_200C_206C_206B_206A_200B_206B_206A_200F_200D_202A_200D_200E_206A_206A_200B_200F_202A_202E_200F_200F_200D_202A_202A_206A_206D_206A_206C_206E_206B_202D_200D_200D_202E_202E(_chatGui, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1720149641), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - goto IL_18fe; - IL_0186: - questStep = (QuestStep)obj; - num = ((questStep != null) ? (-2091724653) : (-2091724654)); - break; - IL_0ebb: - num18 = 0; - num = 1524603363; - goto IL_0eca; - IL_18fe: - num = ((_200F_206E_202D_206C_206B_206F_202B_200E_200C_202C_200E_206E_200F_206E_200B_202C_206A_202C_202D_200F_206D_202D_206C_206E_202E_206A_202B_202D_202A_206F_202D_200D_202E_200D_206A_206C_202A_200C_202C_202E(questStep).Count <= 0) ? 1524603368 : 1524603367); - goto IL_0eca; - IL_0eca: - while (true) + else { - int num19 = num; - num3 = 1524603367; - num4 = num19; - int num20 = num4 + num3; - int num21 = num4 & num3; - int num23; - int? obj2; - int? obj3; - string text5; - string text6; - string text7; - int num28; - string text4; - string text3; - int num27; - string value3; - IChatGui chatGui11; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler15; - int num33; - string value7; - IChatGui chatGui12; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler16; - switch (num20 - (num21 + num21)) - { - case 7: - goto IL_0fbc; - case 51: - num23 = questProgressInfo.Variables[num24]; - goto IL_0ff7; - case 47: - value5 = bNpcName.Value.Singular.ToString(); - num = 1524603334; - break; - case 36: - obj2 = null; - goto IL_16a2; - case 44: - goto IL_1078; - case 42: - obj3 = b3.GetValueOrDefault(); - goto IL_10a4; - case 16: - text5 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1281927779); - goto IL_186a; - case 12: - obj3 = null; - goto IL_10a4; - case 9: - value5 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-163993857); - num = 1524603334; - break; - case 5: - text6 = item4; - goto IL_112a; - case 49: - goto IL_1138; - case 10: - text7 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1061070267); - goto IL_118a; - case 1: - text7 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1706582457); - goto IL_118a; - case 4: - goto IL_12e5; - case 48: - goto IL_1310; - case 18: - { - int num34 = num26; - num3 = 1; - num4 = num34; - num26 = (num4 | num3) + (num4 & num3); - num = 1524603332; - break; - } - case 45: - goto IL_135b; - case 27: - num28 = questProgressInfo.Variables[num25]; - goto IL_1398; - case 14: - text4 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-971719931); - goto IL_13c3; - case 38: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler14 = new DefaultInterpolatedStringHandler(21, 2); - defaultInterpolatedStringHandler14.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(54370243)); - defaultInterpolatedStringHandler14.AppendFormatted(_200C_206A_206C_202B_202E_206F_206C_202C_200B_202A_202C_200F_200B_202E_200F_202A_206C_206F_206E_200C_202D_200B_200C_200C_202D_200E_200F_202A_206F_200C_206B_200E_200D_200F_206B_206F_200C_206E_206C_206F_202E(complexCombatData2)); - defaultInterpolatedStringHandler14.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1194311042)); - defaultInterpolatedStringHandler14.AppendFormatted(_200B_202C_200C_206C_202B_202B_200C_200D_206C_202D_206A_206E_202B_206E_200E_206A_202B_202E_202D_206C_200B_202D_200E_206D_202B_200E_206A_206F_206C_206D_202B_202D_200F_202D_200D_206C_200E_200C_202D_200F_202E(complexCombatData2)); - defaultInterpolatedStringHandler14.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - text3 = defaultInterpolatedStringHandler14.ToStringAndClear(); - goto IL_1452; - } - case 23: - _206C_206B_202B_206F_200D_202B_200B_200C_206C_206B_206A_200B_206B_206A_200F_200D_202A_200D_200E_206A_206A_200B_200F_202A_202E_200F_200F_200D_202A_202A_206A_206D_206A_206C_206E_206B_202D_200D_200D_202E_202E(_chatGui, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1454492371), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - num24 = 0; - num = 1524603343; - break; - case 22: - text6 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(44675168); - goto IL_112a; - case 3: - { - byte num32 = b8; - num3 = 15; - num4 = num32; - num27 = (byte)(num4 + num3 - (num4 | num3)); - goto IL_17cc; - } - case 11: - num = 1524603363; - break; - case 29: - { - int num29 = num24; - num3 = 1; - num4 = num29; - int num30 = num4 ^ num3; - int num31 = num4 & num3; - num24 = num30 + (num31 + num31); - num = 1524603343; - break; - } - case 46: - goto IL_15a1; - case 21: - goto end_IL_0eca; - case 24: - goto IL_166b; - case 43: - obj2 = b3.GetValueOrDefault(); - goto IL_16a2; - case 15: - return; - case 26: - num = 1524603328; - break; - case 34: - num28 = 0; - goto IL_1398; - case 28: - num25 = num26; - b5 = _202D_200B_206F_206C_202C_202B_206D_202E_202A_202A_200B_202C_202B_200D_202B_202C_202A_206B_200E_206B_206C_206D_206E_206F_206E_200C_206D_206C_206B_200F_206D_202A_202A_200D_202D_200E_206C_202A_206A_206A_202E(questWorkValue3); - flag = true; - num = 1524603339; - break; - case 37: - num23 = 0; - goto IL_0ff7; - case 31: - goto IL_1737; - case 2: - goto IL_178e; - case 17: - num27 = (byte)(b8 >> 4); - goto IL_17cc; - case 35: - goto IL_17fb; - case 20: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler13 = new DefaultInterpolatedStringHandler(2, 2); - defaultInterpolatedStringHandler13.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(751790982)); - defaultInterpolatedStringHandler13.AppendFormatted(b4); - defaultInterpolatedStringHandler13.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1392036559)); - defaultInterpolatedStringHandler13.AppendFormatted(b5); - text5 = defaultInterpolatedStringHandler13.ToStringAndClear(); - goto IL_186a; - } - case 8: - goto IL_1890; - case 32: - complexCombatData2 = _200F_206E_200E_202A_202D_206F_202D_200F_202C_206B_200B_206B_200D_200E_200B_200D_206A_202D_200C_200D_202C_202D_206A_202A_206C_206C_200E_206C_202B_200E_206A_200D_202B_202C_202C_200F_200F_202B_200D_202B_202E(questStep)[num18]; - num25 = -1; - b5 = null; - flag = false; - num26 = 0; - num = 1524603332; - break; - case 50: - goto IL_18fe; - case 6: - num25 = num26; - b5 = _200C_206D_200E_206B_202D_206E_206B_200C_206D_202D_202D_200B_206D_202D_200C_200F_206B_206F_200F_200D_202C_202B_206A_206D_200E_206A_206D_200D_200F_200D_200B_202D_206E_206B_202E_202C_206C_202D_202A_202E_202E(questWorkValue3); - flag = false; - num = 1524603339; - break; - case 0: - goto IL_1944; - case 39: - text4 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1070075457); - goto IL_13c3; - case 13: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler12 = new DefaultInterpolatedStringHandler(11, 1); - defaultInterpolatedStringHandler12.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(821000004)); - defaultInterpolatedStringHandler12.AppendFormatted(_200C_206A_206C_202B_202E_206F_206C_202C_200B_202A_202C_200F_200B_202E_200F_202A_206C_206F_206E_200C_202D_200B_200C_200C_202D_200E_200F_202A_206F_200C_206B_200E_200D_200F_206B_206F_200C_206E_206C_206F_202E(complexCombatData2)); - defaultInterpolatedStringHandler12.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - text3 = defaultInterpolatedStringHandler12.ToStringAndClear(); - goto IL_1452; - } - case 40: - goto IL_19fc; - case 33: - goto IL_1a27; - case 19: - goto IL_1a4b; - case 41: - goto IL_1a78; - case 25: - { - byte num22 = b4; - b3 = b5; - if (num22 >= b3) - { - num = 1524603369; - break; - } - goto case 26; - } - case 30: - goto IL_1af9; - IL_16a2: - num = ((obj2 != b6) ? 1524603373 : 1524603350); - break; - IL_10a4: - num = ((obj3 == b7) ? 1524603366 : 1524603373); - break; - IL_0ff7: - b6 = (byte)(num23 >> 4); - b7 = (byte)(num23 & 0xF); - b3 = _202D_200B_206F_206C_202C_202B_206D_202E_202A_202A_200B_202C_202B_200D_202B_202C_202A_206B_200E_206B_206C_206D_206E_206F_206E_200C_206D_206C_206B_200F_206D_202A_202A_200D_202D_200E_206C_202A_206A_206A_202E(questWorkValue2); - num = ((!b3.HasValue) ? 1524603350 : 1524603342); - break; - IL_17cc: - b4 = (byte)num27; - num = ((!_200B_202C_200C_206C_202B_202B_200C_200D_206C_202D_206A_206E_202B_206E_200E_206A_202B_202E_202D_206C_200B_202D_200E_206D_202B_200E_206A_206F_206C_206D_202B_202D_200F_202D_200D_206C_200E_200C_202D_200F_202E(complexCombatData2).HasValue) ? 1524603365 : 1524603384); - break; - IL_1452: - value3 = text3; - chatGui11 = _chatGui; - defaultInterpolatedStringHandler15 = new DefaultInterpolatedStringHandler(9, 4); - defaultInterpolatedStringHandler15.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-616133030)); - defaultInterpolatedStringHandler15.AppendFormatted(value4); - defaultInterpolatedStringHandler15.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1549383798)); - defaultInterpolatedStringHandler15.AppendFormatted(value5); - defaultInterpolatedStringHandler15.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-293246245)); - defaultInterpolatedStringHandler15.AppendFormatted(value6); - defaultInterpolatedStringHandler15.AppendFormatted(value3); - _206C_206B_202B_206F_200D_202B_200B_200C_206C_206B_206A_200B_206B_206A_200F_200D_202A_200D_200E_206A_206A_200B_200F_202A_202E_200F_200F_200D_202A_202A_206A_206D_206A_206C_206E_206B_202D_200D_200D_202E_202E(chatGui11, defaultInterpolatedStringHandler15.ToStringAndClear(), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - num33 = num18; - num3 = 1; - num4 = num33; - num18 = (num4 | num3) + (num4 & num3); - num = 1524603363; - break; - IL_13c3: - value4 = text4; - num = (_200B_202C_200C_206C_202B_202B_200C_200D_206C_202D_206A_206E_202B_206E_200E_206A_202B_202E_202D_206C_200B_202D_200E_206D_202B_200E_206A_206F_206C_206D_202B_202D_200F_202D_200D_206C_200E_200C_202D_200F_202E(complexCombatData2).HasValue ? 1524603329 : 1524603370); - break; - IL_1398: - b8 = (byte)num28; - num = (flag ? 1524603382 : 1524603364); - break; - IL_112a: - value5 = text6; - num = 1524603334; - break; - IL_118a: - value7 = text7; - chatGui12 = _chatGui; - defaultInterpolatedStringHandler16 = new DefaultInterpolatedStringHandler(36, 6); - defaultInterpolatedStringHandler16.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1298792990)); - defaultInterpolatedStringHandler16.AppendFormatted(num24); - defaultInterpolatedStringHandler16.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-97652402)); - defaultInterpolatedStringHandler16.AppendFormatted(_202D_200B_206F_206C_202C_202B_206D_202E_202A_202A_200B_202C_202B_200D_202B_202C_202A_206B_200E_206B_206C_206D_206E_206F_206E_200C_206D_206C_206B_200F_206D_202A_202A_200D_202D_200E_206C_202A_206A_206A_202E(questWorkValue2)?.ToString(_206E_202D_206F_200C_206F_202C_206B_200F_200B_206B_206A_200F_200F_206F_202B_200E_202A_206A_206B_206E_202D_200B_202D_202A_200F_206B_206B_206D_206D_202E_200D_200C_206C_206A_206A_200F_206E_206B_202B_202E()) ?? global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-575051895)); - defaultInterpolatedStringHandler16.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1233946670)); - b3 = _200C_206D_200E_206B_202D_206E_206B_200C_206D_202D_202D_200B_206D_202D_200C_200F_206B_206F_200F_200D_202C_202B_206A_206D_200E_206A_206D_200D_200F_200D_200B_202D_206E_206B_202E_202C_206C_202D_202A_202E_202E(questWorkValue2); - defaultInterpolatedStringHandler16.AppendFormatted(b3?.ToString(_206E_202D_206F_200C_206F_202C_206B_200F_200B_206B_206A_200F_200F_206F_202B_200E_202A_206A_206B_206E_202D_200B_202D_202A_200F_206B_206B_206D_206D_202E_200D_200C_206C_206A_206A_200F_206E_206B_202B_202E()) ?? global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(351843544)); - defaultInterpolatedStringHandler16.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1790161765)); - defaultInterpolatedStringHandler16.AppendFormatted(b6.ToString(_206E_202D_206F_200C_206F_202C_206B_200F_200B_206B_206A_200F_200F_206F_202B_200E_202A_206A_206B_206E_202D_200B_202D_202A_200F_206B_206B_206D_206D_202E_200D_200C_206C_206A_206A_200F_206E_206B_202B_202E())); - defaultInterpolatedStringHandler16.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(389824923)); - defaultInterpolatedStringHandler16.AppendFormatted(b7.ToString(_206E_202D_206F_200C_206F_202C_206B_200F_200B_206B_206A_200F_200F_206F_202B_200E_202A_206A_206B_206E_202D_200B_202D_202A_200F_206B_206B_206D_206D_202E_200D_200C_206C_206A_206A_200F_206E_206B_202B_202E())); - defaultInterpolatedStringHandler16.AppendFormatted(value7); - _206C_206B_202B_206F_200D_202B_200B_200C_206C_206B_206A_200B_206B_206A_200F_200D_202A_200D_200E_206A_206A_200B_200F_202A_202E_200F_200F_200D_202A_202A_206A_206D_206A_206C_206E_206B_202D_200D_200D_202E_202E(chatGui12, defaultInterpolatedStringHandler16.ToStringAndClear(), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712), (ushort?)(ushort)576); - num = 1524603386; - break; - IL_186a: - value6 = text5; - num = ((!b5.HasValue) ? 1524603389 : 1524603390); - break; - } - continue; - IL_1af9: - questWorkValue2 = _200F_206E_202D_206C_206B_206F_202B_200E_200C_202C_200E_206E_200F_206E_200B_202C_206A_202C_202D_200F_206D_202D_206C_206E_202E_206A_202B_202D_202A_206F_202D_200D_202E_200D_206A_206C_202A_200C_202C_202E(questStep)[num24]; - num = ((questWorkValue2 == null) ? 1524603386 : 1524603351); - continue; - IL_0fbc: - b3 = _202D_200B_206F_206C_202C_202B_206D_202E_202A_202A_200B_202C_202B_200D_202B_202C_202A_206B_200E_206B_206C_206D_206E_206F_206E_200C_206D_206C_206B_200F_206D_202A_202A_200D_202D_200E_206C_202A_206A_206A_202E(questWorkValue3); - num = ((!b3.HasValue) ? 1524603381 : 1524603387); - continue; - IL_1138: - b3 = _200C_206D_200E_206B_202D_206E_206B_200C_206D_202D_202D_200B_206D_202D_200C_200F_206B_206F_200F_200D_202C_202B_206A_206D_200E_206A_206D_200D_200F_200D_200B_202D_206E_206B_202E_202C_206C_202D_202A_202E_202E(questWorkValue2); - num = ((!b3.HasValue) ? 1524603366 : 1524603337); - continue; - IL_1a78: - b3 = _202D_200B_206F_206C_202C_202B_206D_202E_202A_202A_200B_202C_202B_200D_202B_202C_202A_206B_200E_206B_206C_206D_206E_206F_206E_200C_206D_206C_206B_200F_206D_202A_202A_200D_202D_200E_206C_202A_206A_206A_202E(questWorkValue2); - num = (b3.HasValue ? 1524603340 : 1524603331); - continue; - IL_1890: - num = (_206D_200C_200E_200B_200B_202E_206C_200E_200B_206D_206E_202C_202C_206F_202A_202C_200B_200E_200D_206E_206D_202C_202A_202A_206E_200B_200C_202C_202C_206B_206E_202D_200B_200C_202E_206D_202B_206A_202B_200D_202E(bNpcName.Value.Singular.ToString()) ? 1524603374 : 1524603336); - continue; - IL_15a1: - b3 = _200C_206D_200E_206B_202D_206E_206B_200C_206D_202D_202D_200B_206D_202D_200C_200F_206B_206F_200F_200D_202C_202B_206A_206D_200E_206A_206D_200D_200F_200D_200B_202D_206E_206B_202E_202C_206C_202D_202A_202E_202E(questWorkValue2); - num = (b3.HasValue ? 1524603341 : 1524603371); - continue; - IL_1a4b: - b3 = _200C_206D_200E_206B_202D_206E_206B_200C_206D_202D_202D_200B_206D_202D_200C_200F_206B_206F_200F_200D_202C_202B_206A_206D_200E_206A_206D_200D_200F_200D_200B_202D_206E_206B_202E_202C_206C_202D_202A_202E_202E(questWorkValue3); - num = ((!b3.HasValue) ? 1524603360 : 1524603361); - continue; - IL_135b: - questWorkValue3 = _200B_206F_206B_200E_202A_202E_202B_200C_200F_206E_202A_200E_202A_202E_200F_200C_206A_206F_206D_200D_200F_202C_200F_202B_206D_200C_202D_206B_202B_206D_200B_206E_202C_202C_200D_200C_200D_202C_202B_200F_202E(complexCombatData2)[num26]; - num = ((questWorkValue3 == null) ? 1524603381 : 1524603380); - continue; - IL_17fb: - num = ((num26 < _200B_206F_206B_200E_202A_202E_202B_200C_200F_206E_202A_200E_202A_202E_200F_200C_206A_206F_206D_200D_200F_202C_200F_202B_206D_200C_202D_206B_202B_206D_200B_206E_202C_202C_200D_200C_200D_202C_202B_200F_202E(complexCombatData2).Count) ? 1524603338 : 1524603339); - continue; - IL_1a27: - num = (b5.HasValue ? 1524603379 : 1524603383); - continue; - IL_12e5: - num = ((num18 < _200F_206E_200E_202A_202D_206F_202D_200F_202C_206B_200B_206B_200D_200E_200B_200D_206A_202D_200C_200D_202C_202D_206A_202A_206C_206C_200E_206C_202B_200E_206A_200D_202B_202C_202C_200F_200F_202B_200D_202B_202E(questStep).Count) ? 1524603335 : 1524603378); - continue; - IL_166b: - num = ((num25 < questProgressInfo.Variables.Count) ? 1524603388 : 1524603333); - continue; - IL_19fc: - num = ((num24 < _200F_206E_202D_206C_206B_206F_202B_200E_200C_202C_200E_206E_200F_206E_200B_202C_206A_202C_202D_200F_206D_202D_206C_206E_202E_206A_202B_202D_202A_206F_202D_200D_202E_200D_206A_206C_202A_200C_202C_202E(questStep).Count) ? 1524603385 : 1524603368); - continue; - IL_178e: - (string Name, bool Found) tuple3 = GetEnemyName(_200C_206A_206C_202B_202E_206F_206C_202C_200B_202A_202C_200F_200B_202E_200F_202A_206C_206F_206E_200C_202D_200B_200C_200C_202D_200E_200F_202A_206F_200C_206B_200E_200D_200F_206B_206F_200C_206E_206C_206F_202E(complexCombatData2)); - item4 = tuple3.Name; - num = (tuple3.Found ? 1524603362 : 1524603377); - continue; - IL_1078: - num = ((num25 < 0) ? 1524603333 : 1524603391); - continue; - IL_1944: - num = ((!_200F_206E_202D_206C_206B_206F_202B_200E_200C_202C_200E_206E_200F_206E_200B_202C_206A_202C_202D_200F_206D_202D_206C_206E_202E_206A_202B_202D_202A_206F_202D_200D_202E_200D_206A_206C_202A_200C_202C_202E(questStep).Any((QuestWorkValue x) => x != null)) ? 1524603368 : 1524603376); - continue; - IL_1737: - bNpcName = bnpcNameSheet?.GetRowOrDefault(_200B_202C_200C_206C_202B_202B_200C_200D_206C_202D_206A_206E_202B_206E_200E_206A_202B_202E_202D_206C_200B_202D_200E_206D_202B_200E_206A_206F_206C_206D_202B_202D_200F_202D_200D_206C_200E_200C_202D_200F_202E(complexCombatData2).Value); - num = ((!bNpcName.HasValue) ? 1524603374 : 1524603375); - continue; - IL_1310: - num = ((num24 < questProgressInfo.Variables.Count) ? 1524603348 : 1524603330); - continue; - end_IL_0eca: - break; + _chatGui.Print($" - DataId: {item3}", "Questionable", 576); } - goto IL_15ce; + } + _chatGui.Print("", "Questionable", 576); + } + if (questStep.ComplexCombatData.Count > 0) + { + _chatGui.Print($"Complex Combat Data Entries: {questStep.ComplexCombatData.Count}", "Questionable", 576); + _chatGui.Print("Kill Progress:", "Questionable", 576); + if (questStep.ComplexCombatData.Count == 1 && hashSet.Count > 1) + { + ComplexCombatData complexCombatData = questStep.ComplexCombatData[0]; + int num = -1; + byte? b = null; + for (int num2 = 0; num2 < complexCombatData.CompletionQuestVariablesFlags.Count; num2++) + { + QuestWorkValue questWorkValue = complexCombatData.CompletionQuestVariablesFlags[num2]; + if (questWorkValue != null && questWorkValue.Low.HasValue) + { + num = num2; + b = questWorkValue.Low; + break; + } + } + byte b2 = (byte)(((num >= 0 && num < questProgressInfo.Variables.Count) ? questProgressInfo.Variables[num] : 0) & 0xF); + string value2 = (b.HasValue ? $" {b2}/{b}" : ""); + string value3 = ((b.HasValue && b2 >= b) ? "✓" : "○"); + foreach (uint item4 in hashSet.OrderBy((uint x) => x)) + { + (string Name, bool Found) tuple3 = GetEnemyName(item4); + var (value4, _) = tuple3; + if (tuple3.Found) + { + _chatGui.Print($" {value3} Slay {value4}.{value2} (DataId: {item4})", "Questionable", 576); + } + else + { + _chatGui.Print($" {value3} Slay enemy.{value2} (DataId: {item4})", "Questionable", 576); + } + } + } + else + { + for (int num3 = 0; num3 < questStep.ComplexCombatData.Count; num3++) + { + ComplexCombatData complexCombatData2 = questStep.ComplexCombatData[num3]; + int num4 = -1; + byte? b3 = null; + bool flag = false; + for (int num5 = 0; num5 < complexCombatData2.CompletionQuestVariablesFlags.Count; num5++) + { + QuestWorkValue questWorkValue2 = complexCombatData2.CompletionQuestVariablesFlags[num5]; + if (questWorkValue2 != null) + { + if (questWorkValue2.Low.HasValue) + { + num4 = num5; + b3 = questWorkValue2.Low; + flag = false; + break; + } + if (questWorkValue2.High.HasValue) + { + num4 = num5; + b3 = questWorkValue2.High; + flag = true; + break; + } + } + } + byte b4 = (byte)((num4 >= 0 && num4 < questProgressInfo.Variables.Count) ? questProgressInfo.Variables[num4] : 0); + byte b5 = (flag ? ((byte)(b4 >> 4)) : ((byte)(b4 & 0xF))); + string value5; + if (complexCombatData2.NameId.HasValue) + { + BNpcName? bNpcName = bnpcNameSheet?.GetRowOrDefault(complexCombatData2.NameId.Value); + value5 = ((!bNpcName.HasValue || string.IsNullOrEmpty(bNpcName.Value.Singular.ToString())) ? "enemy" : bNpcName.Value.Singular.ToString()); + } + else + { + (string Name, bool Found) tuple5 = GetEnemyName(complexCombatData2.DataId); + string item2 = tuple5.Name; + value5 = (tuple5.Found ? item2 : "enemy"); + } + string value6 = (b3.HasValue ? $" {b5}/{b3}" : ""); + string value7 = ((b3.HasValue && b5 >= b3) ? "✓" : "○"); + string value8 = (complexCombatData2.NameId.HasValue ? $" (DataId: {complexCombatData2.DataId}, NameId: {complexCombatData2.NameId})" : $" (DataId: {complexCombatData2.DataId})"); + _chatGui.Print($" {value7} Slay {value5}.{value6}{value8}", "Questionable", 576); + } + } + _chatGui.Print("", "Questionable", 576); + } + else if (questStep.KillEnemyDataIds.Count == 0) + { + _chatGui.Print("No kill enemy data for this step.", "Questionable", 576); + _chatGui.Print("", "Questionable", 576); + } + if (questStep.CompletionQuestVariablesFlags.Count <= 0 || !questStep.CompletionQuestVariablesFlags.Any((QuestWorkValue x) => x != null)) + { + return; + } + _chatGui.Print("Completion Flags (Debug):", "Questionable", 576); + for (int num6 = 0; num6 < questStep.CompletionQuestVariablesFlags.Count; num6++) + { + QuestWorkValue questWorkValue3 = questStep.CompletionQuestVariablesFlags[num6]; + if (questWorkValue3 != null) + { + int num7 = ((num6 < questProgressInfo.Variables.Count) ? questProgressInfo.Variables[num6] : 0); + byte b6 = (byte)(num7 >> 4); + byte b7 = (byte)(num7 & 0xF); + string value9 = (((!questWorkValue3.High.HasValue || questWorkValue3.High == b6) && (!questWorkValue3.Low.HasValue || questWorkValue3.Low == b7)) ? " ✓" : " ✗"); + _chatGui.Print($" [{num6}] Expected: H={questWorkValue3.High?.ToString(CultureInfo.InvariantCulture) ?? "any"} L={questWorkValue3.Low?.ToString(CultureInfo.InvariantCulture) ?? "any"} | Actual: H={b6.ToString(CultureInfo.InvariantCulture)} L={b7.ToString(CultureInfo.InvariantCulture)}{value9}", "Questionable", 576); } } - } - - void IDebugCommandHandler.Execute(string[] arguments) - { - //ILSpy generated this explicit interface implementation from .override directive in Execute - this.Execute(arguments); - } - - static void _202B_200B_206E_206C_206E_202C_206B_202D_200D_202A_206A_200B_206E_206A_200D_200E_200D_200D_200E_200D_202E_200B_202D_202E_200E_200E_202A_202C_202B_200C_200F_200D_200C_202A_202E_202C_202A_200C_206F_206F_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } - - static List<QuestStep> _206C_202A_206B_206B_206D_202A_200C_206A_202C_202B_202B_202E_206C_202D_200C_206F_206B_202C_200F_200D_206E_200B_202C_206A_206D_202C_200E_202B_202C_206C_206C_200E_202A_206C_202A_202B_200C_206D_206F_200C_202E(QuestSequence P_0) - { - return P_0.Steps; - } - - static void _206C_206B_202B_206F_200D_202B_200B_200C_206C_206B_206A_200B_206B_206A_200F_200D_202A_200D_200E_206A_206A_200B_200F_202A_202E_200F_200F_200D_202A_202A_206A_206D_206A_206C_206E_206B_202D_200D_200D_202E_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); - } - - static string _202C_200D_202A_200B_200B_206F_200D_202E_200D_202D_200F_200D_206F_202A_200B_206B_206D_206F_200E_206A_206E_200F_206A_206E_200B_206A_206B_206E_200D_200E_202E_202B_200E_206E_202B_200C_202C_202B_202D_206F_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); - } - - static string _200C_200E_202E_206C_202B_200B_200D_206E_202A_206C_202B_200E_206D_206D_200D_206B_200B_202A_206C_202B_202C_200D_202D_200D_200F_202B_206F_202A_200D_206C_202B_206C_206F_200C_200E_200E_206A_206F_202D_202B_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static List<uint> _200E_200E_206F_200F_206C_200C_202C_206F_202B_200F_202B_202E_200B_206A_206E_200C_200D_206D_202E_202C_202C_200D_206D_206A_200F_206B_206F_200C_200D_206F_202E_202C_200E_200F_202B_200B_202B_202E_206A_202E(QuestStep P_0) - { - return P_0.KillEnemyDataIds; - } - - static List<ComplexCombatData> _200F_206E_200E_202A_202D_206F_202D_200F_202C_206B_200B_206B_200D_200E_200B_200D_206A_202D_200C_200D_202C_202D_206A_202A_206C_206C_200E_206C_202B_200E_206A_200D_202B_202C_202C_200F_200F_202B_200D_202B_202E(QuestStep P_0) - { - return P_0.ComplexCombatData; - } - - static uint _200C_206A_206C_202B_202E_206F_206C_202C_200B_202A_202C_200F_200B_202E_200F_202A_206C_206F_206E_200C_202D_200B_200C_200C_202D_200E_200F_202A_206F_200C_206B_200E_200D_200F_206B_206F_200C_206E_206C_206F_202E(ComplexCombatData P_0) - { - return P_0.DataId; - } - - static bool _206D_202D_202A_202A_200B_206C_200D_206B_206F_200F_206C_202B_200C_206E_200F_200D_200C_206E_206C_200C_200C_202D_200F_202D_202D_202A_202B_206D_206D_200C_202B_206A_200B_200F_200B_200C_202D_200B_206B_200C_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202E_206E_200F_206E_202A_206A_200F_206F_200B_206F_206D_200D_202A_200D_202E_206E_206A_206A_206A_202B_200E_200C_202D_200E_202D_206E_200B_206A_206F_206B_206A_202D_206F_206B_200B_200D_200D_202B_202A_206F_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static IList<QuestWorkValue> _200B_206F_206B_200E_202A_202E_202B_200C_200F_206E_202A_200E_202A_202E_200F_200C_206A_206F_206D_200D_200F_202C_200F_202B_206D_200C_202D_206B_202B_206D_200B_206E_202C_202C_200D_200C_200D_202C_202B_200F_202E(ComplexCombatData P_0) - { - return P_0.CompletionQuestVariablesFlags; - } - - static byte? _200C_206D_200E_206B_202D_206E_206B_200C_206D_202D_202D_200B_206D_202D_200C_200F_206B_206F_200F_200D_202C_202B_206A_206D_200E_206A_206D_200D_200F_200D_200B_202D_206E_206B_202E_202C_206C_202D_202A_202E_202E(QuestWorkValue P_0) - { - return P_0.Low; - } - - static byte? _202D_200B_206F_206C_202C_202B_206D_202E_202A_202A_200B_202C_202B_200D_202B_202C_202A_206B_200E_206B_206C_206D_206E_206F_206E_200C_206D_206C_206B_200F_206D_202A_202A_200D_202D_200E_206C_202A_206A_206A_202E(QuestWorkValue P_0) - { - return P_0.High; - } - - static uint? _200B_202C_200C_206C_202B_202B_200C_200D_206C_202D_206A_206E_202B_206E_200E_206A_202B_202E_202D_206C_200B_202D_200E_206D_202B_200E_206A_206F_206C_206D_202B_202D_200F_202D_200D_206C_200E_200C_202D_200F_202E(ComplexCombatData P_0) - { - return P_0.NameId; - } - - static bool _206D_200C_200E_200B_200B_202E_206C_200E_200B_206D_206E_202C_202C_206F_202A_202C_200B_200E_200D_206E_206D_202C_202A_202A_206E_200B_200C_202C_202C_206B_206E_202D_200B_200C_202E_206D_202B_206A_202B_200D_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static List<QuestWorkValue> _200F_206E_202D_206C_206B_206F_202B_200E_200C_202C_200E_206E_200F_206E_200B_202C_206A_202C_202D_200F_206D_202D_206C_206E_202E_206A_202B_202D_202A_206F_202D_200D_202E_200D_206A_206C_202A_200C_202C_202E(QuestStep P_0) - { - return P_0.CompletionQuestVariablesFlags; - } - - static CultureInfo _206E_202D_206F_200C_206F_202C_206B_200F_200B_206B_206A_200F_200F_206F_202B_200E_202A_206A_206B_206E_202D_200B_202D_202A_200F_206B_206B_206D_206D_202E_200D_200C_206C_206A_206A_200F_206E_206B_202B_202E() - { - return CultureInfo.InvariantCulture; - } - - static uint _202C_202E_200C_206C_206B_200B_200F_200F_200D_200E_202E_206B_206E_200D_202B_202E_206C_206F_200C_200C_206E_206B_206E_200E_206A_200F_200D_206E_202B_200F_202C_202E_206B_206F_202E_202B_202E_206B_202E_200E_202E(ICharacter P_0) - { - return P_0.NameId; + (string Name, bool Found) GetEnemyName(uint dataId) + { + if (_objectTable.FirstOrDefault((IGameObject x) => x is IBattleNpc battleNpc2 && battleNpc2.BaseId == dataId) is IBattleNpc { NameId: not 0u } battleNpc) + { + BNpcName? bNpcName2 = bnpcNameSheet?.GetRowOrDefault(battleNpc.NameId); + if (bNpcName2.HasValue && !string.IsNullOrEmpty(bNpcName2.Value.Singular.ToString())) + { + return (Name: bNpcName2.Value.Singular.ToString(), Found: true); + } + } + return (Name: string.Empty, Found: false); + } } } diff --git a/Questionable/Questionable.Controller.DebugCommands/SequencesCommandHandler.cs b/Questionable/Questionable.Controller.DebugCommands/SequencesCommandHandler.cs index 7664cde..3e3c9f6 100644 --- a/Questionable/Questionable.Controller.DebugCommands/SequencesCommandHandler.cs +++ b/Questionable/Questionable.Controller.DebugCommands/SequencesCommandHandler.cs @@ -1,5 +1,3 @@ -using System.Runtime.CompilerServices; -using LLib.ImGui; using Questionable.Model.Questing; using Questionable.Windows; @@ -9,14 +7,7 @@ internal sealed class SequencesCommandHandler : IDebugCommandHandler { private readonly QuestSequenceWindow _questSequenceWindow; - public string CommandName - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2123114850); - } - } + public string CommandName => "seq"; public SequencesCommandHandler(QuestSequenceWindow questSequenceWindow) { @@ -25,52 +16,13 @@ internal sealed class SequencesCommandHandler : IDebugCommandHandler public void Execute(string[] arguments) { - int num = ((arguments.Length < 1) ? (-723182513) : (-723182515)); - ElementId elementId = default(ElementId); - while (true) + if (arguments.Length >= 1 && ElementId.TryFromString(arguments[0], out ElementId elementId) && elementId != null) { - int num2 = num; - int num3 = -723182516; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -723182515; - break; - case 1: - num = ((!_206E_202A_206F_206A_202C_202A_206B_202D_206F_206F_200C_206B_202A_200E_202A_206C_206C_200D_206D_202E_206C_202E_200B_202C_200C_206F_206A_206C_206E_200C_202E_206A_206A_206A_202B_202B_206D_200F_202B_206A_202E(arguments[0], ref elementId)) ? (-723182513) : (-723182516)); - break; - case 0: - num = ((!_200F_200D_202B_206C_202A_206C_200D_200E_206E_202D_206E_200B_200C_200E_200B_200E_202B_200E_200B_206D_202D_206B_206F_200F_200E_200B_200E_202A_206D_206A_202C_202B_200E_202D_202C_202E_200D_206E_202D_206E_202E(elementId, (ElementId)null)) ? (-723182513) : (-723182520)); - break; - case 3: - _206D_202A_206F_206A_206C_202E_206F_206E_206B_200D_202B_206E_200D_202B_202A_202B_206F_206E_206B_206B_200E_206F_200D_202B_206F_200E_200D_202A_206F_202E_202D_206C_206F_206F_200B_206E_200F_206B_206D_200D_202E((LWindow)_questSequenceWindow); - return; - case 4: - _questSequenceWindow.OpenForQuest(elementId); - return; - } + _questSequenceWindow.OpenForQuest(elementId); + } + else + { + _questSequenceWindow.ToggleOrUncollapse(); } } - - void IDebugCommandHandler.Execute(string[] arguments) - { - //ILSpy generated this explicit interface implementation from .override directive in Execute - this.Execute(arguments); - } - - static bool _206E_202A_206F_206A_202C_202A_206B_202D_206F_206F_200C_206B_202A_200E_202A_206C_206C_200D_206D_202E_206C_202E_200B_202C_200C_206F_206A_206C_206E_200C_202E_206A_206A_206A_202B_202B_206D_200F_202B_206A_202E(string P_0, ref ElementId P_1) - { - return ElementId.TryFromString(P_0, out P_1); - } - - static bool _200F_200D_202B_206C_202A_206C_200D_200E_206E_202D_206E_200B_200C_200E_200B_200E_202B_200E_200B_206D_202D_206B_206F_200F_200E_200B_200E_202A_206D_206A_202C_202B_200E_202D_202C_202E_200D_206E_202D_206E_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } - - static void _206D_202A_206F_206A_206C_202E_206F_206E_206B_200D_202B_206E_200D_202B_202A_202B_206F_206E_206B_206B_200E_206F_200D_202B_206F_200E_200D_202A_206F_202E_202D_206C_206F_206F_200B_206E_200F_206B_206D_200D_202E(LWindow P_0) - { - P_0.ToggleOrUncollapse(); - } } diff --git a/Questionable/Questionable.Controller.DebugCommands/SetupCommandHandler.cs b/Questionable/Questionable.Controller.DebugCommands/SetupCommandHandler.cs index edb1aee..685b435 100644 --- a/Questionable/Questionable.Controller.DebugCommands/SetupCommandHandler.cs +++ b/Questionable/Questionable.Controller.DebugCommands/SetupCommandHandler.cs @@ -1,5 +1,3 @@ -using System.Runtime.CompilerServices; -using LLib.ImGui; using Questionable.Windows; namespace Questionable.Controller.DebugCommands; @@ -8,14 +6,7 @@ internal sealed class SetupCommandHandler : IDebugCommandHandler { private readonly OneTimeSetupWindow _oneTimeSetupWindow; - public string CommandName - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2087530843); - } - } + public string CommandName => "setup"; public SetupCommandHandler(OneTimeSetupWindow oneTimeSetupWindow) { @@ -24,17 +15,6 @@ internal sealed class SetupCommandHandler : IDebugCommandHandler public void Execute(string[] arguments) { - _206D_200D_200D_202D_200C_206A_200D_202C_202E_206F_200B_206E_200B_202A_200E_202D_202B_202B_200D_200F_202A_200B_206C_202C_200C_202D_206A_200F_202A_206E_206E_206C_202C_202C_206B_202C_200F_200D_206E_200E_202E((LWindow)_oneTimeSetupWindow, true); - } - - void IDebugCommandHandler.Execute(string[] arguments) - { - //ILSpy generated this explicit interface implementation from .override directive in Execute - this.Execute(arguments); - } - - static void _206D_200D_200D_202D_200C_206A_200D_202C_202E_206F_200B_206E_200B_202A_200E_202D_202B_202B_200D_200F_202A_200B_206C_202C_200C_202D_206A_200F_202A_206E_206E_206C_202C_202C_206B_202C_200F_200D_206E_200E_202E(LWindow P_0, bool P_1) - { - P_0.IsOpenAndUncollapsed = P_1; + _oneTimeSetupWindow.IsOpenAndUncollapsed = true; } } diff --git a/Questionable/Questionable.Controller.DebugCommands/SimulateQuestCommandHandler.cs b/Questionable/Questionable.Controller.DebugCommands/SimulateQuestCommandHandler.cs index b48fc38..da762f3 100644 --- a/Questionable/Questionable.Controller.DebugCommands/SimulateQuestCommandHandler.cs +++ b/Questionable/Questionable.Controller.DebugCommands/SimulateQuestCommandHandler.cs @@ -1,4 +1,3 @@ -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using Questionable.Model; using Questionable.Model.Questing; @@ -13,14 +12,7 @@ internal sealed class SimulateQuestCommandHandler : IDebugCommandHandler private readonly IChatGui _chatGui; - public string CommandName - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(408484576); - } - } + public string CommandName => "sim"; public SimulateQuestCommandHandler(QuestController questController, QuestRegistry questRegistry, IChatGui chatGui) { @@ -29,126 +21,38 @@ internal sealed class SimulateQuestCommandHandler : IDebugCommandHandler _chatGui = chatGui; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Execute(string[] arguments) { - int num = ((arguments.Length < 1) ? 75346620 : 75346609); - int step = default(int); - int result = default(int); - ElementId elementId = default(ElementId); - byte result2 = default(byte); - byte sequence = default(byte); - QuestSequence questSequence = default(QuestSequence); - Quest quest = default(Quest); - while (true) + if (arguments.Length >= 1 && ElementId.TryFromString(arguments[0], out ElementId elementId) && elementId != null) { - int num2 = num; - int num3 = 75346615; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 12: - step = result; - num = 75346611; - break; - case 7: - { - IChatGui chatGui2 = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(15, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-742005049)); - defaultInterpolatedStringHandler2.AppendFormatted(elementId); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-404473860)); - _200B_206F_202C_200F_200E_200C_200E_200B_202C_200F_206F_200D_200E_202A_202D_200C_200D_202B_200C_200B_206B_202B_200C_202A_202D_206F_206E_202B_206E_200E_202D_206D_202E_200E_200D_200E_202E_200F_200D_202B_202E(chatGui2, defaultInterpolatedStringHandler2.ToStringAndClear(), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); - return; - } - case 0: - num = ((!byte.TryParse(arguments[1], out result2)) ? 75346611 : 75346614); - break; - case 9: - num = ((!_206F_200B_200F_202E_206B_206A_202C_202B_206A_200B_202E_202B_202C_202A_200C_200B_202B_202D_206E_206C_202E_206A_202A_200C_206B_200F_200F_200B_206E_202C_206C_206A_202B_206D_206F_202D_206E_206E_200C_206B_202E(elementId, (ElementId)null)) ? 75346620 : 75346613); - break; - case 3: - num = ((!int.TryParse(arguments[2], out result)) ? 75346611 : 75346618); - break; - case 10: - num = 75346609; - break; - case 8: - sequence = 0; - step = 0; - num = ((arguments.Length < 2) ? 75346611 : 75346615); - break; - case 13: - num = ((_206E_200E_202A_206C_202A_200D_206D_200D_202B_202D_200C_200F_202D_202C_202D_202E_206B_202C_206F_200C_206E_206B_202D_206D_206A_206D_200E_202A_206C_206A_206A_206C_206E_206D_206A_206B_200E_206E_206E_200E_202E(questSequence, result) == null) ? 75346611 : 75346619); - break; - case 11: - _questController.SimulateQuest(null, 0, 0); - _200B_206D_206B_206E_206E_202C_200C_202C_202D_202C_206E_202A_206E_206B_206D_206E_200E_206B_206A_200C_200C_206B_202D_200C_206F_200E_202C_206E_206D_202A_206B_202B_202A_206E_206A_202C_206C_206C_206E_206E_202E(_chatGui, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(31159756), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - return; - case 2: - num = ((!_questRegistry.TryGetQuest(elementId, out quest)) ? 75346608 : 75346623); - break; - case 5: - sequence = _206A_200B_206E_206D_200F_206F_202A_206A_202D_202E_200F_200E_202C_200E_206C_206F_200C_202A_202E_202E_206C_200F_202C_206A_200B_200F_200E_206F_206D_202A_206E_202A_202A_200B_206C_206D_206A_200D_206E_202B_202E(questSequence); - num = ((arguments.Length < 3) ? 75346611 : 75346612); - break; - case 1: - questSequence = quest.FindSequence(result2); - num = ((questSequence == null) ? 75346611 : 75346610); - break; - case 4: + if (_questRegistry.TryGetQuest(elementId, out Quest quest)) { + byte sequence = 0; + int step = 0; + if (arguments.Length >= 2 && byte.TryParse(arguments[1], out var result)) + { + QuestSequence questSequence = quest.FindSequence(result); + if (questSequence != null) + { + sequence = questSequence.Sequence; + if (arguments.Length >= 3 && int.TryParse(arguments[2], out var result2) && questSequence.FindStep(result2) != null) + { + step = result2; + } + } + } _questController.SimulateQuest(quest, sequence, step); - IChatGui chatGui = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(21, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1180305998)); - defaultInterpolatedStringHandler.AppendFormatted(elementId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1099691430)); - defaultInterpolatedStringHandler.AppendFormatted(quest.Info.Name); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1109945913)); - _200B_206D_206B_206E_206E_202C_200C_202C_202D_202C_206E_202A_206E_206B_206D_206E_200E_206B_206A_200C_200C_206B_202D_200C_206F_200E_202C_206E_206D_202A_206B_202B_202A_206E_206A_202C_206C_206C_206E_206E_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - return; + _chatGui.Print($"Simulating quest {elementId} ({quest.Info.Name}).", "Questionable", 576); } - case 6: - num = ((!_202A_206D_206D_206D_206C_200D_200E_202D_202A_206A_202C_206F_200B_202B_206E_200C_200E_200C_206E_206A_200C_206F_200E_202A_202C_206F_200F_200B_206D_202D_202B_202D_202E_200E_202D_200E_200D_200B_206E_200E_202E(arguments[0], ref elementId)) ? 75346620 : 75346622); - break; + else + { + _chatGui.PrintError($"Unknown quest {elementId}.", "Questionable", 576); } } - } - - void IDebugCommandHandler.Execute(string[] arguments) - { - //ILSpy generated this explicit interface implementation from .override directive in Execute - this.Execute(arguments); - } - - static bool _202A_206D_206D_206D_206C_200D_200E_202D_202A_206A_202C_206F_200B_202B_206E_200C_200E_200C_206E_206A_200C_206F_200E_202A_202C_206F_200F_200B_206D_202D_202B_202D_202E_200E_202D_200E_200D_200B_206E_200E_202E(string P_0, ref ElementId P_1) - { - return ElementId.TryFromString(P_0, out P_1); - } - - static bool _206F_200B_200F_202E_206B_206A_202C_202B_206A_200B_202E_202B_202C_202A_200C_200B_202B_202D_206E_206C_202E_206A_202A_200C_206B_200F_200F_200B_206E_202C_206C_206A_202B_206D_206F_202D_206E_206E_200C_206B_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } - - static byte _206A_200B_206E_206D_200F_206F_202A_206A_202D_202E_200F_200E_202C_200E_206C_206F_200C_202A_202E_202E_206C_200F_202C_206A_200B_200F_200E_206F_206D_202A_206E_202A_202A_200B_206C_206D_206A_200D_206E_202B_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - - static QuestStep _206E_200E_202A_206C_202A_200D_206D_200D_202B_202D_200C_200F_202D_202C_202D_202E_206B_202C_206F_200C_206E_206B_202D_206D_206A_206D_200E_202A_206C_206A_206A_206C_206E_206D_206A_206B_200E_206E_206E_200E_202E(QuestSequence P_0, int P_1) - { - return P_0.FindStep(P_1); - } - - static void _200B_206D_206B_206E_206E_202C_200C_202C_202D_202C_206E_202A_206E_206B_206D_206E_200E_206B_206A_200C_200C_206B_202D_200C_206F_200E_202C_206E_206D_202A_206B_202B_202A_206E_206A_202C_206C_206C_206E_206E_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); - } - - static void _200B_206F_202C_200F_200E_200C_200E_200B_202C_200F_206F_200D_200E_202A_202D_200C_200D_202B_200C_200B_206B_202B_200C_202A_202D_206F_206E_202B_206E_200E_202D_206D_202E_200E_200D_200E_202E_200F_200D_202B_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); + else + { + _questController.SimulateQuest(null, 0, 0); + _chatGui.Print("Cleared simulated quest.", "Questionable", 576); + } } } diff --git a/Questionable/Questionable.Controller.DebugCommands/TaxiCommandHandler.cs b/Questionable/Questionable.Controller.DebugCommands/TaxiCommandHandler.cs index 3581a0d..45de1dc 100644 --- a/Questionable/Questionable.Controller.DebugCommands/TaxiCommandHandler.cs +++ b/Questionable/Questionable.Controller.DebugCommands/TaxiCommandHandler.cs @@ -1,5 +1,4 @@ using System.Collections.Generic; -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game.UI; using Lumina.Excel; @@ -15,14 +14,7 @@ internal sealed class TaxiCommandHandler : IDebugCommandHandler private readonly IChatGui _chatGui; - public string CommandName - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(36013436); - } - } + public string CommandName => "taxi"; public TaxiCommandHandler(IDataManager dataManager, IClientState clientState, IChatGui chatGui) { @@ -31,177 +23,44 @@ internal sealed class TaxiCommandHandler : IDebugCommandHandler _chatGui = chatGui; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe void Execute(string[] arguments) { List<string> list = new List<string>(); ExcelSheet<ChocoboTaxiStand> excelSheet = _dataManager.GetExcelSheet<ChocoboTaxiStand>(); UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? (-1504900883) : (-1504900882)); - string text = default(string); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1504900881; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _chatGui.PrintError("UIState is null", "Questionable", 576); + return; + } + for (int i = 0; i < 192; i++) + { + uint num = (uint)(i + 1179648); + try { - case 0: - goto IL_006e; - case 1: - _202A_202A_206C_200D_200B_202A_206E_206C_206D_200B_200D_200C_202B_206E_200E_200C_206B_202B_206D_206C_200C_202E_206E_200C_202A_206F_202B_206E_202A_200B_206D_206F_202B_202E_206A_200C_206D_200D_206F_202D_202E(_chatGui, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(450011813), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - return; - case 2: - { - for (int num5 = 0; num5 < 192; num5 = (num4 | num3) + (num4 & num3)) + if (excelSheet.HasRow(num) && ptr->IsChocoboTaxiStandUnlocked(num)) { - int num6 = num5; - num3 = 1179648; - num4 = num6; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - uint num9 = (uint)(num7 + (num8 + num8)); - try + string value = excelSheet.GetRow(num).PlaceName.ToString(); + if (string.IsNullOrEmpty(value)) { - num = (excelSheet.HasRow(num9) ? (-1045043585) : (-1045043591)); - while (true) - { - int num10 = num; - num3 = -1045043587; - num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - num = -1045043591; - break; - case 3: - text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-934792339); - num = -1045043587; - break; - case 4: - goto end_IL_00eb; - case 2: - num = ((!ptr->IsChocoboTaxiStandUnlocked(num9)) ? (-1045043592) : (-1045043588)); - break; - case 1: - text = excelSheet.GetRow(num9).PlaceName.ToString(); - num = ((!_200D_200E_202E_200F_202B_200B_206B_200C_202B_206A_202E_200D_206E_200C_206D_206A_202B_200C_206E_200E_202B_202D_202B_200E_200C_206C_206A_206F_206B_202A_202E_202D_202A_202A_200C_200E_202A_206C_200E_206E_202E(text)) ? (-1045043587) : (-1045043586)); - break; - case 0: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(16, 3); - defaultInterpolatedStringHandler.AppendFormatted(text); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(911808460)); - defaultInterpolatedStringHandler.AppendFormatted(num5); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(201911383)); - defaultInterpolatedStringHandler.AppendFormatted(num9, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(906389666)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - list.Add(defaultInterpolatedStringHandler.ToStringAndClear()); - num = -1045043592; - break; - } - case 5: - goto end_IL_00eb; - } - continue; - end_IL_00eb: - break; - } - } - catch - { - } - int num11 = num5; - num3 = 1; - num4 = num11; - } - num = 2067861557; - while (true) - { - int num12 = num; - num3 = 2067861556; - num4 = num12; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 2067861557; - break; - case 1: - { - IChatGui chatGui = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(24, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(527408719)); - defaultInterpolatedStringHandler2.AppendFormatted(list.Count); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1060622796)); - _206E_200B_202D_200B_200B_200C_202E_200C_206D_200C_206E_206B_202C_206B_202A_202C_202D_202E_200C_202E_206A_202C_206A_202D_206A_206C_200B_200B_202E_206F_200B_200D_200F_202E_202E_202B_200B_206A_206A_200C_202E(chatGui, defaultInterpolatedStringHandler2.ToStringAndClear(), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); - num = ((list.Count != 0) ? 2067861559 : 2067861556); - break; - } - case 0: - _206E_200B_202D_200B_200B_200C_202E_200C_206D_200C_206E_206B_202C_206B_202A_202C_202D_202E_200C_202E_206A_202C_206A_202D_206A_206C_200B_200B_202E_206F_200B_200D_200F_202E_202E_202B_200B_206A_206A_200C_202E(_chatGui, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(372663010), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712), (ushort?)(ushort)576); - return; - case 3: - { - using List<string>.Enumerator enumerator = list.GetEnumerator(); - num = -1727299586; - while (true) - { - int num13 = num; - num3 = -1727299586; - num4 = num13; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1727299586; - break; - case 0: - num = (enumerator.MoveNext() ? (-1727299585) : (-1727299587)); - break; - case 1: - { - string current = enumerator.Current; - _206E_200B_202D_200B_200B_200C_202E_200C_206D_200C_206E_206B_202C_206B_202A_202C_202D_202E_200C_202E_206A_202C_206A_202D_206A_206C_200B_200B_202E_206F_200B_200D_200F_202E_202E_202B_200B_206A_206A_200C_202E(_chatGui, _202A_202E_206A_206D_200C_202A_206C_206E_202C_206E_206C_206D_202B_202E_206D_200D_202A_206D_200F_200E_206F_202E_200C_200C_200E_202E_202C_202A_202A_202C_200E_202C_200B_206A_202A_206B_202E_206A_200F_206C_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(232485537), current), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - num = -1727299586; - break; - } - case 3: - return; - } - } - } + value = "Unknown"; } + list.Add($"{value} (ID: {i}, Row: 0x{num:X})"); } } + catch + { } - continue; - IL_006e: - num = -1504900882; + } + _chatGui.Print($"Unlocked taxi stands ({list.Count}):", "Questionable", 576); + if (list.Count == 0) + { + _chatGui.Print(" (No unlocked taxi stands found)", "Questionable", 576); + return; + } + foreach (string item in list) + { + _chatGui.Print(" - " + item, "Questionable", 576); } } - - void IDebugCommandHandler.Execute(string[] arguments) - { - //ILSpy generated this explicit interface implementation from .override directive in Execute - this.Execute(arguments); - } - - static void _202A_202A_206C_200D_200B_202A_206E_206C_206D_200B_200D_200C_202B_206E_200E_200C_206B_202B_206D_206C_200C_202E_206E_200C_202A_206F_202B_206E_202A_200B_206D_206F_202B_202E_206A_200C_206D_200D_206F_202D_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } - - static bool _200D_200E_202E_200F_202B_200B_206B_200C_202B_206A_202E_200D_206E_200C_206D_206A_202B_200C_206E_200E_202B_202D_202B_200E_200C_206C_206A_206F_206B_202A_202E_202D_202A_202A_200C_200E_202A_206C_200E_206E_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static void _206E_200B_202D_200B_200B_200C_202E_200C_206D_200C_206E_206B_202C_206B_202A_202C_202D_202E_200C_202E_206A_202C_206A_202D_206A_206C_200B_200B_202E_206F_200B_200D_200F_202E_202E_202B_200B_206A_206A_200C_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); - } - - static string _202A_202E_206A_206D_200C_202A_206C_206E_202C_206E_206C_206D_202B_202E_206D_200D_202A_206D_200F_200E_206F_202E_200C_200C_200E_202E_202C_202A_202A_202C_200E_202C_200B_206A_202A_206B_202E_206A_200F_206C_202E(string P_0, string P_1) - { - return P_0 + P_1; - } } diff --git a/Questionable/Questionable.Controller.DebugCommands/UnlockLinksCommandHandler.cs b/Questionable/Questionable.Controller.DebugCommands/UnlockLinksCommandHandler.cs index ecc5574..06dc43d 100644 --- a/Questionable/Questionable.Controller.DebugCommands/UnlockLinksCommandHandler.cs +++ b/Questionable/Questionable.Controller.DebugCommands/UnlockLinksCommandHandler.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using Questionable.Functions; @@ -15,14 +14,7 @@ internal sealed class UnlockLinksCommandHandler : IDebugCommandHandler private IReadOnlyList<uint> _previouslyUnlockedUnlockLinks = Array.Empty<uint>(); - public string CommandName - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1519844067); - } - } + public string CommandName => "unlock-links"; public UnlockLinksCommandHandler(GameFunctions gameFunctions, IChatGui chatGui) { @@ -30,77 +22,27 @@ internal sealed class UnlockLinksCommandHandler : IDebugCommandHandler _chatGui = chatGui; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Execute(string[] arguments) { IReadOnlyList<uint> unlockLinks = _gameFunctions.GetUnlockLinks(); - int num = ((unlockLinks.Count < 0) ? (-529327854) : (-529327856)); - List<uint> list = default(List<uint>); - while (true) + if (unlockLinks.Count >= 0) { - int num2 = num; - int num3 = -529327853; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + _chatGui.Print($"Saved {unlockLinks.Count} unlock links to log.", "Questionable", 576); + List<uint> list = unlockLinks.Except(_previouslyUnlockedUnlockLinks).ToList(); + if (_previouslyUnlockedUnlockLinks.Count > 0 && list.Count > 0) { - case 2: - num = -529327856; - break; - case 5: - _206B_202A_200C_200E_202B_206D_202D_206A_202C_200F_206B_206D_206C_206A_206E_202C_206E_200B_202E_200C_202D_202A_206C_206B_206C_202A_202E_200C_202E_200E_206E_206D_202A_200E_206D_200D_206D_202D_202B_206B_202E(_chatGui, _206A_200D_200D_202A_202A_200B_200C_206E_200D_200F_200D_202A_202C_206A_206F_200B_206F_200D_200D_206F_200B_206A_200F_202C_200E_202C_206A_202E_206E_200D_200C_200B_206B_202A_202B_200C_202E_202C_200D_206B_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1421488541), string.Join(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1095822044), list)), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - num = -529327849; - break; - case 4: - _previouslyUnlockedUnlockLinks = unlockLinks; - return; - case 1: - _206B_202A_200F_200D_200B_200B_202E_200D_202D_200C_202A_206B_206B_202A_206F_200B_202A_202E_200D_200E_202D_206C_200F_206C_206B_202B_206A_202E_206A_202C_200B_206D_202D_200C_206A_200F_202C_206A_206E_202B_202E(_chatGui, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(929710911), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - num = -529327849; - break; - case 0: - num = ((list.Count <= 0) ? (-529327849) : (-529327850)); - break; - case 3: - { - IChatGui chatGui = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(27, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(278706240)); - defaultInterpolatedStringHandler.AppendFormatted(unlockLinks.Count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1528398919)); - _206B_202A_200C_200E_202B_206D_202D_206A_202C_200F_206B_206D_206C_206A_206E_202C_206E_200B_202E_200C_202D_202A_206C_206B_206C_202A_202E_200C_202E_200E_206E_206D_202A_200E_206D_200D_206D_202D_202B_206B_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712), (ushort?)(ushort)576); - list = unlockLinks.Except(_previouslyUnlockedUnlockLinks).ToList(); - num = ((_previouslyUnlockedUnlockLinks.Count <= 0) ? (-529327849) : (-529327853)); - break; - } + _chatGui.Print("New unlock links: " + string.Join(", ", list), "Questionable", 576); } } - } - - void IDebugCommandHandler.Execute(string[] arguments) - { - //ILSpy generated this explicit interface implementation from .override directive in Execute - this.Execute(arguments); + else + { + _chatGui.PrintError("Could not query unlock links.", "Questionable", 576); + } + _previouslyUnlockedUnlockLinks = unlockLinks; } public void Reset() { _previouslyUnlockedUnlockLinks = Array.Empty<uint>(); } - - static void _206B_202A_200C_200E_202B_206D_202D_206A_202C_200F_206B_206D_206C_206A_206E_202C_206E_200B_202E_200C_202D_202A_206C_206B_206C_202A_202E_200C_202E_200E_206E_206D_202A_200E_206D_200D_206D_202D_202B_206B_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); - } - - static string _206A_200D_200D_202A_202A_200B_200C_206E_200D_200F_200D_202A_202C_206A_206F_200B_206F_200D_200D_206F_200B_206A_200F_202C_200E_202C_206A_202E_206E_200D_200C_200B_206B_202A_202B_200C_202E_202C_200D_206B_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static void _206B_202A_200F_200D_200B_200B_202E_200D_202D_200C_202A_206B_206B_202A_206F_200B_202A_202E_200D_200E_202D_206C_200F_206C_206B_202B_206A_202E_206A_202C_200B_206D_202D_200C_206A_200F_202C_206A_206E_202B_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } } diff --git a/Questionable/Questionable.Controller.GameUi/AutoSnipeHandler.cs b/Questionable/Questionable.Controller.GameUi/AutoSnipeHandler.cs index 663631e..a9cfba7 100644 --- a/Questionable/Questionable.Controller.GameUi/AutoSnipeHandler.cs +++ b/Questionable/Questionable.Controller.GameUi/AutoSnipeHandler.cs @@ -1,5 +1,4 @@ using System; -using System.Runtime.CompilerServices; using Dalamud.Hooking; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game.Event; @@ -20,7 +19,6 @@ internal sealed class AutoSnipeHandler : IDisposable private readonly Hook<EnqueueSnipeTaskDelegate>? _enqueueSnipeTaskHook; - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe AutoSnipeHandler(QuestController questController, Configuration configuration, IGameInteropProvider gameInteropProvider, ILogger<AutoSnipeHandler> logger) { _questController = questController; @@ -28,90 +26,38 @@ internal sealed class AutoSnipeHandler : IDisposable _logger = logger; try { - _enqueueSnipeTaskHook = gameInteropProvider.HookFromSignature<EnqueueSnipeTaskDelegate>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-116900171), EnqueueSnipeTask); + _enqueueSnipeTaskHook = gameInteropProvider.HookFromSignature<EnqueueSnipeTaskDelegate>("48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 48 83 EC 50 48 8B F9 48 8D 4C 24 ??", EnqueueSnipeTask); _enqueueSnipeTaskHook.Enable(); - _200C_200C_200F_202D_200B_202A_206A_206A_200C_206E_206E_206A_206E_206A_206B_206F_200B_206C_202B_206B_206A_206A_200B_202E_200F_200F_206F_202A_206D_202B_200E_206E_200E_200B_202B_202D_202D_206F_200D_206E_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2135730328), Array.Empty<object>()); + _logger.LogDebug("AutoSnipeHandler enabled"); } - catch (Exception ex) + catch (Exception exception) { - _202C_200E_206A_200D_206C_206C_200F_206F_200D_206A_206E_200D_202B_202E_202D_206C_206B_202C_202A_206F_206D_200B_200C_200C_206D_202C_206F_206A_202A_206E_200C_200E_200C_202D_206D_202A_206C_200E_202B_202D_202E((ILogger)_logger, ex, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(309361772), Array.Empty<object>()); + _logger.LogError(exception, "Failed to initialize AutoSnipeHandler"); _enqueueSnipeTaskHook = null; } } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe ulong EnqueueSnipeTask(EventSceneModuleImplBase* scene, lua_State* state) { - int num = ((!_configuration.General.AutoSnipe) ? 905347558 : 905347556); - while (true) + if (_configuration.General.AutoSnipe && _questController.IsRunning) { - int num2 = num; - int num3 = 905347557; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 905347556; - break; - case 3: - return _enqueueSnipeTaskHook.Original(scene, state); - case 1: - num = ((!_questController.IsRunning) ? 905347558 : 905347557); - break; - case 0: - { - _200C_200C_200F_202D_200B_202A_206A_206A_200C_206E_206E_206A_206E_206A_206B_206F_200B_206C_202B_206B_206A_206A_200B_202E_200F_200F_206F_202A_206D_202B_200E_206E_200E_200B_202B_202D_202D_206F_200D_206E_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(486539700), Array.Empty<object>()); - TValue* top = state->top; - top->tt = 3; - top->value.n = 1.0; - state->top++; - return 1uL; - } - } + _logger.LogDebug("Auto-completing snipe task"); + TValue* top = state->top; + top->tt = 3; + top->value.n = 1.0; + state->top++; + return 1uL; } + return _enqueueSnipeTaskHook.Original(scene, state); } - [MethodImpl(MethodImplOptions.NoInlining)] public void Dispose() { - int num = ((_enqueueSnipeTaskHook == null) ? 1906347675 : 1906347672); - while (true) + if (_enqueueSnipeTaskHook != null) { - int num2 = num; - int num3 = 1906347673; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return; - case 1: - _enqueueSnipeTaskHook.Disable(); - _enqueueSnipeTaskHook.Dispose(); - _200C_200C_200F_202D_200B_202A_206A_206A_200C_206E_206E_206A_206E_206A_206B_206F_200B_206C_202B_206B_206A_206A_200B_202E_200F_200F_206F_202A_206D_202B_200E_206E_200E_200B_202B_202D_202D_206F_200D_206E_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(135526562), Array.Empty<object>()); - num = 1906347675; - break; - case 0: - num = 1906347672; - break; - } + _enqueueSnipeTaskHook.Disable(); + _enqueueSnipeTaskHook.Dispose(); + _logger.LogDebug("AutoSnipeHandler disabled"); } } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static void _200C_200C_200F_202D_200B_202A_206A_206A_200C_206E_206E_206A_206E_206A_206B_206F_200B_206C_202B_206B_206A_206A_200B_202E_200F_200F_206F_202A_206D_202B_200E_206E_200E_200B_202B_202D_202D_206F_200D_206E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _202C_200E_206A_200D_206C_206C_200F_206F_200D_206A_206E_200D_202B_202E_202D_206C_206B_202C_202A_206F_206D_200B_200C_200C_206D_202C_206F_206A_202A_206E_200C_200E_200C_202D_206D_202A_206C_200E_202B_202D_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } } diff --git a/Questionable/Questionable.Controller.GameUi/ChocoboNameHandler.cs b/Questionable/Questionable.Controller.GameUi/ChocoboNameHandler.cs index 1a4f6a6..c9d2749 100644 --- a/Questionable/Questionable.Controller.GameUi/ChocoboNameHandler.cs +++ b/Questionable/Questionable.Controller.GameUi/ChocoboNameHandler.cs @@ -1,11 +1,9 @@ using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Text; using Dalamud.Game.Addon.Lifecycle; using Dalamud.Game.Addon.Lifecycle.AddonArgTypes; -using Dalamud.Game.NativeWrapper; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Component.GUI; using LLib.GameUI; @@ -18,9 +16,9 @@ internal sealed class ChocoboNameHandler : IDisposable { private static readonly HashSet<ElementId> ChocoboQuestIds = new HashSet<ElementId> { - _206C_206C_202C_202A_202B_202C_202C_202C_202D_200C_200D_206D_202E_200E_202E_206D_206A_202C_206E_206E_202C_200B_206D_200C_202B_206E_202D_206B_206F_206B_200F_206B_202D_206C_202C_200B_206F_206E_206E_202C_202E((ushort)700), - _206C_206C_202C_202A_202B_202C_202C_202C_202D_200C_200D_206D_202E_200E_202E_206D_206A_202C_206E_206E_202C_200B_206D_200C_202B_206E_202D_206B_206F_206B_200F_206B_202D_206C_202C_200B_206F_206E_206E_202C_202E((ushort)701), - _206C_206C_202C_202A_202B_202C_202C_202C_202D_200C_200D_206D_202E_200E_202E_206D_206A_202C_206E_206E_202C_200B_206D_200C_202B_206E_202D_206B_206F_206B_200F_206B_202D_206C_202C_200B_206F_206E_206E_202C_202E((ushort)702) + new QuestId(700), + new QuestId(701), + new QuestId(702) }; private readonly QuestController _questController; @@ -33,328 +31,108 @@ internal sealed class ChocoboNameHandler : IDisposable private bool _awaitingConfirmation; - [MethodImpl(MethodImplOptions.NoInlining)] public ChocoboNameHandler(QuestController questController, Configuration configuration, IAddonLifecycle addonLifecycle, ILogger<ChocoboNameHandler> logger) { _questController = questController; _configuration = configuration; _addonLifecycle = addonLifecycle; _logger = logger; - _206F_206A_206D_206E_202D_202B_202A_202D_206A_202B_200C_206F_200B_200E_202C_200F_202D_202A_206E_202D_206B_206A_202E_206A_202A_206F_206B_202C_206D_200C_206D_202D_200C_202E_200D_202D_202D_206C_202E_202B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(86143620), (IAddonLifecycle.AddonEventDelegate)OnInputStringSetup); - _206F_206A_206D_206E_202D_202B_202A_202D_206A_202B_200C_206F_200B_200E_202C_200F_202D_202A_206E_202D_206B_206A_202E_206A_202A_206F_206B_202C_206D_200C_206D_202D_200C_202E_200D_202D_202D_206C_202E_202B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(559979746), (IAddonLifecycle.AddonEventDelegate)OnSelectYesNoSetup); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "InputString", OnInputStringSetup); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "SelectYesno", OnSelectYesNoSetup); } - [MethodImpl(MethodImplOptions.NoInlining)] public void Dispose() { - _200D_200C_206E_202B_200C_200D_202C_200D_202A_200D_202D_200D_206D_200C_206D_202A_200B_206E_202A_206F_200B_202D_200B_200B_206B_200B_202D_206A_206E_200F_206C_200F_202C_200F_200F_206A_206F_206C_202B_202A_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1652110159), (IAddonLifecycle.AddonEventDelegate)OnSelectYesNoSetup); - _200D_200C_206E_202B_200C_200D_202C_200D_202A_200D_202D_200D_206D_200C_206D_202A_200B_206E_202A_206F_200B_202D_200B_200B_206B_200B_202D_206A_206E_200F_206C_200F_202C_200F_200F_206A_206F_206C_202B_202A_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1424112397), (IAddonLifecycle.AddonEventDelegate)OnInputStringSetup); - } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "SelectYesno", OnSelectYesNoSetup); + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "InputString", OnInputStringSetup); } private bool IsChocoboQuestActive() { QuestController.QuestProgress currentQuest = _questController.CurrentQuest; - int num = ((currentQuest == null) ? (-1870798202) : (-1870798201)); - while (true) + if (currentQuest != null) { - int num2 = num; - int num3 = -1870798202; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_004d; - case 0: - return false; - case 1: - return ChocoboQuestIds.Contains(currentQuest.Quest.Id); - } - continue; - IL_004d: - num = -1870798201; + return ChocoboQuestIds.Contains(currentQuest.Quest.Id); } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void OnInputStringSetup(AddonEvent type, AddonArgs args) { - int num = (_questController.IsRunning ? 1822557266 : 1822557269); - AtkUnitBase* address = default(AtkUnitBase*); - while (true) + if (_questController.IsRunning && IsChocoboQuestActive()) { - int num2 = num; - int num3 = 1822557265; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: + AtkUnitBase* address = (AtkUnitBase*)args.Addon.Address; + if (LAddon.IsAddonReady(address)) { string validatedChocoboName = GetValidatedChocoboName(_configuration.Advanced.ChocoboName); - _202B_202A_200B_200B_202A_202A_206C_202D_200F_206E_200D_200B_206B_200B_202A_200C_202E_206D_206A_206E_200C_200E_206A_206E_206C_206A_202A_206C_206C_200B_206B_206C_206B_206A_202B_202C_200C_200D_206F_206C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1006446610), new object[1] { validatedChocoboName }); + _logger.LogDebug("Entering chocobo name: {Name}", validatedChocoboName); FireInputStringCallback(address, validatedChocoboName); _awaitingConfirmation = true; - return; - } - case 6: - return; - case 2: - num = 1822557269; - break; - case 4: - return; - case 1: - address = (AtkUnitBase*)_200E_202E_206D_200B_206C_202B_200E_200C_200C_200D_200E_206F_200D_206A_200D_202A_202D_200E_206B_202A_206C_202D_200E_202A_202E_206D_202C_202E_206D_206D_202C_200F_206D_206D_200F_202B_202E_202B_206E_206E_202E(args).Address; - num = (_200F_206F_206E_206B_202C_202E_200F_206A_202D_206D_206A_200F_206A_202B_200E_202A_206E_200B_202D_206B_206E_206B_206F_206D_206C_202D_202C_202A_206D_202C_200C_202A_202A_206F_206D_206E_202E_202B_200D_200E_202E(address) ? 1822557268 : 1822557271); - break; - case 0: - return; - case 3: - num = (IsChocoboQuestActive() ? 1822557264 : 1822557265); - break; } } } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void OnSelectYesNoSetup(AddonEvent type, AddonArgs args) { - int num = (_questController.IsRunning ? (-693008591) : (-693008586)); - AtkUnitBase* address = default(AtkUnitBase*); - while (true) + if (_questController.IsRunning && _awaitingConfirmation) { - int num2 = num; - int num3 = -693008590; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + AtkUnitBase* address = (AtkUnitBase*)args.Addon.Address; + if (LAddon.IsAddonReady(address)) { - case 2: - return; - case 4: - return; - case 1: - return; - case 6: - _202B_202A_200B_200B_202A_202A_206C_202D_200F_206E_200D_200B_206B_200B_202A_200C_202E_206D_206A_206E_200C_200E_206A_206E_206C_206A_202A_206C_206C_200B_206B_206C_206B_206A_202B_202C_200C_200D_206F_206C_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-410002708), Array.Empty<object>()); + _logger.LogDebug("Confirming chocobo name"); ClickYes(address); _awaitingConfirmation = false; - return; - case 5: - address = (AtkUnitBase*)_200E_202E_206D_200B_206C_202B_200E_200C_200C_200D_200E_206F_200D_206A_200D_202A_202D_200E_206B_202A_206C_202D_200E_202A_202E_206D_202C_202E_206D_206D_202C_200F_206D_206D_200F_202B_202E_202B_206E_206E_202E(args).Address; - num = (_200F_206F_206E_206B_202C_202E_200F_206A_202D_206D_206A_200F_206A_202B_200E_202A_206E_200B_202D_206B_206E_206B_206F_206D_206C_202D_202C_202A_206D_202C_200C_202A_202A_206F_206D_206E_202E_202B_200D_200E_202E(address) ? (-693008588) : (-693008589)); - break; - case 0: - num = -693008586; - break; - case 3: - num = (_awaitingConfirmation ? (-693008585) : (-693008592)); - break; } } } - [MethodImpl(MethodImplOptions.NoInlining)] private static string GetValidatedChocoboName(string? configuredName) { - int num = ((!_206D_202E_200E_202A_202E_200B_202B_200F_206E_200F_202C_202E_206C_200C_206E_202A_202D_200B_202B_206E_206B_206A_202D_202C_206B_200B_202D_206C_206A_202C_206C_206D_206B_206C_200C_200B_202B_206D_206E_200C_202E(configuredName)) ? 807668921 : 807668920); - string text = default(string); - while (true) + if (string.IsNullOrWhiteSpace(configuredName)) { - int num2 = num; - int num3 = 807668921; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = ((_200B_202B_206F_202D_202C_206F_200B_202E_202E_206D_200E_202B_202B_200F_202A_200E_206B_202C_206C_206D_206F_202B_202C_202C_200B_200C_200D_200D_206A_206F_202A_202E_202C_202D_202B_206C_200C_206D_200D_200F_202E(text) <= 20) ? 807668925 : 807668924); - break; - case 1: - return global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1639602730); - case 0: - text = _206B_202B_206E_206B_206F_202D_202D_200F_202A_200C_200B_202E_206B_206E_206B_200C_206B_206E_200D_200E_200E_202E_206E_202A_206C_206A_202E_206F_206B_202C_206E_206C_206D_200F_206A_202C_206E_200C_200E_200C_202E(configuredName); - num = ((_200B_202B_206F_202D_202C_206F_200B_202E_202E_206D_200E_202B_202B_200F_202A_200E_206B_202C_206C_206D_206F_202B_202C_202C_200B_200C_200D_200D_206A_206F_202A_202E_202C_202D_202B_206C_200C_206D_200D_200F_202E(text) < 2) ? 807668924 : 807668923); - break; - case 5: - return global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1096463492); - case 4: - return _202B_202B_206C_200C_202D_206C_200F_202B_200B_200B_206E_206D_206B_202A_206E_206F_202B_202A_200C_206F_206E_200E_200D_202C_206D_200C_206E_202D_206A_206C_206D_200C_206D_200D_206E_206B_206E_206C_206B_202E(_202A_206E_202A_202B_202A_206F_202B_202E_200B_206D_202D_202D_202C_202B_200B_202E_206A_200B_206E_200D_202C_206D_202A_200E_206C_206E_200E_202B_206E_200C_200D_200B_206A_200D_202B_206D_206B_206D_202C_202E(_200F_206E_206F_206A_206B_206F_206C_206E_206C_202A_200E_206D_206B_202D_206D_206E_200D_202A_202C_206A_206D_200C_206A_200D_202B_202D_206C_206B_202B_206A_202D_206E_200E_206E_200B_206D_202C_206A_202A_202E_202E(text, 0, 1)), (_200B_202B_206F_202D_202C_206F_200B_202E_202E_206D_200E_202B_202B_200F_202A_200E_206B_202C_206C_206D_206F_202B_202C_202C_200B_200C_200D_200D_206A_206F_202A_202E_202C_202D_202B_206C_200C_206D_200D_200F_202E(text) > 1) ? _200F_200E_206B_202E_206E_206A_206B_200E_200B_206A_202B_200D_202B_206F_206F_206F_202D_206F_200F_200F_206B_200D_206B_206E_200D_206E_206E_202B_202C_206E_206E_200E_202E_206D_206C_206C_206C_206E_202A_206E_202E(_202D_206D_200B_206E_202B_200F_206B_200B_206D_200F_202E_200D_206A_206F_200D_202E_200C_202D_206E_202A_206F_206B_206B_202A_200C_206C_206A_200B_206A_206C_202B_202B_202B_206A_202C_206B_206E_200D_206C_202C_202E(text, 1)) : string.Empty); - case 3: - num = 807668920; - break; - } + return "Kweh"; } + string text = configuredName.Trim(); + if (text.Length < 2 || text.Length > 20) + { + return "Kweh"; + } + return text.Substring(0, 1).ToUpperInvariant() + ((text.Length > 1) ? text.Substring(1).ToLowerInvariant() : string.Empty); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void FireInputStringCallback(AtkUnitBase* addon, string text) { AtkComponentNode* componentNodeById = addon->GetComponentNodeById(9u); - int num = ((componentNodeById != null) ? 1161429663 : 1161429658); - AtkComponentTextInput* asAtkComponentTextInput = default(AtkComponentTextInput*); - while (true) + if (componentNodeById == null) { - int num2 = num; - int num3 = 1161429659; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - asAtkComponentTextInput = componentNodeById->GetAsAtkComponentTextInput(); - num = ((asAtkComponentTextInput != null) ? 1161429659 : 1161429656); - break; - case 3: - _202B_206C_200C_202C_200F_200C_202A_200D_202D_206D_202B_202C_200E_206C_206C_206D_206C_200B_206C_206A_202A_206A_202D_200E_202A_202A_202D_206B_206F_202E_202C_200F_202E_206A_202B_206F_200B_202B_206A_202D_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1465025434), Array.Empty<object>()); - return; - case 0: - { - asAtkComponentTextInput->SetText(text); - AtkValue* ptr = stackalloc AtkValue[2]; - ptr->Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Int; - ptr->Int = 0; - byte[] array = _202A_202B_202A_200E_206F_200F_200F_206C_200B_206A_202A_200B_200F_202B_202B_206B_206F_202A_202E_200F_200E_206A_202D_206F_200C_202E_206B_200B_202D_206C_206E_202D_202D_200B_206A_200D_200B_200C_202A_202C_202E(_200F_200C_202C_206C_200C_206D_202C_206D_202C_200B_206B_206D_206D_202D_200B_206D_202B_206D_206C_206C_206D_206B_206F_206C_206A_202E_206A_200D_200F_202A_200E_202B_200D_206A_200B_206E_206E_206D_200C_200C_202E(), text); - int num7 = array.Length; - num3 = 1; - num4 = num7; - int num8 = num4 ^ num3; - int num9 = num4 & num3; - nint num10 = _202B_202E_202A_200F_200E_202A_206A_202A_206C_202D_206A_202D_202B_200E_200F_206F_206E_200E_202B_200B_206E_206F_202B_200B_206A_200B_202B_200E_200C_200D_202D_206D_200C_202C_200F_202B_206D_206D_206A_202E_202E(num8 + (num9 + num9)); - _202D_200F_200B_206D_202E_206C_200C_206A_202B_200E_202B_202C_206E_206E_206C_200D_206B_202A_206B_206F_200F_206C_206E_200E_200C_206E_202A_202D_202C_202A_202B_200E_202D_200E_200C_202A_202D_200F_200D_200E_202E(array, 0, num10, array.Length); - _200D_206D_200B_202C_202C_200B_206E_206C_206C_200B_206E_206A_206E_200F_202B_202B_202E_200D_202A_206A_202E_202D_200B_202E_206C_206F_200C_206A_200B_200F_200B_206D_202E_200F_202D_200E_202A_206B_200D_206C_202E(num10 + array.Length, (byte)0); - ptr[1].Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.String; - ptr[1].String = (byte*)num10; - addon->FireCallback(2u, ptr); - _206E_200B_200B_200E_200E_202B_202D_202E_206E_206B_206B_202D_206D_202D_200B_206D_202D_206E_206D_206C_202C_206F_206E_206A_206E_200E_206D_202D_206B_202A_202B_202A_206C_206A_200B_206D_202C_202A_200F_200E_202E(num10); - return; - } - case 1: - _202B_206C_200C_202C_200F_200C_202A_200D_202D_206D_202B_202C_200E_206C_206C_206D_206C_200B_206C_206A_202A_206A_202D_200E_202A_202A_202D_206B_206F_202E_202C_200F_202E_206A_202B_206F_200B_202B_206A_202D_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-740037157), Array.Empty<object>()); - return; - case 2: - num = 1161429658; - break; - } + _logger.LogWarning("Could not find text input node in InputString addon"); + return; } + AtkComponentTextInput* asAtkComponentTextInput = componentNodeById->GetAsAtkComponentTextInput(); + if (asAtkComponentTextInput == null) + { + _logger.LogWarning("Node is not a text input component"); + return; + } + asAtkComponentTextInput->SetText(text); + AtkValue* ptr = stackalloc AtkValue[2]; + ptr->Type = AtkValueType.Int; + ptr->Int = 0; + byte[] bytes = Encoding.UTF8.GetBytes(text); + nint num = Marshal.AllocHGlobal(bytes.Length + 1); + Marshal.Copy(bytes, 0, num, bytes.Length); + Marshal.WriteByte(num + bytes.Length, 0); + ptr[1].Type = AtkValueType.String; + ptr[1].String = (byte*)num; + addon->FireCallback(2u, ptr); + Marshal.FreeHGlobal(num); } private unsafe static void ClickYes(AtkUnitBase* addon) { AtkValue* ptr = stackalloc AtkValue[1]; - ptr->Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Int; + ptr->Type = AtkValueType.Int; ptr->Int = 0; addon->FireCallback(1u, ptr); } - - static void _206F_206A_206D_206E_202D_202B_202A_202D_206A_202B_200C_206F_200B_200E_202C_200F_202D_202A_206E_202D_206B_206A_202E_206A_202A_206F_206B_202C_206D_200C_206D_202D_200C_202E_200D_202D_202D_206C_202E_202B_202E(IAddonLifecycle P_0, AddonEvent P_1, string P_2, IAddonLifecycle.AddonEventDelegate P_3) - { - P_0.RegisterListener(P_1, P_2, P_3); - } - - static void _200D_200C_206E_202B_200C_200D_202C_200D_202A_200D_202D_200D_206D_200C_206D_202A_200B_206E_202A_206F_200B_202D_200B_200B_206B_200B_202D_206A_206E_200F_206C_200F_202C_200F_200F_206A_206F_206C_202B_202A_202E(IAddonLifecycle P_0, AddonEvent P_1, string P_2, IAddonLifecycle.AddonEventDelegate P_3) - { - P_0.UnregisterListener(P_1, P_2, P_3); - } - - static AtkUnitBasePtr _200E_202E_206D_200B_206C_202B_200E_200C_200C_200D_200E_206F_200D_206A_200D_202A_202D_200E_206B_202A_206C_202D_200E_202A_202E_206D_202C_202E_206D_206D_202C_200F_206D_206D_200F_202B_202E_202B_206E_206E_202E(AddonArgs P_0) - { - return P_0.Addon; - } - - unsafe static bool _200F_206F_206E_206B_202C_202E_200F_206A_202D_206D_206A_200F_206A_202B_200E_202A_206E_200B_202D_206B_206E_206B_206F_206D_206C_202D_202C_202A_206D_202C_200C_202A_202A_206F_206D_206E_202E_202B_200D_200E_202E(AtkUnitBase* P_0) - { - return LAddon.IsAddonReady(P_0); - } - - static void _202B_202A_200B_200B_202A_202A_206C_202D_200F_206E_200D_200B_206B_200B_202A_200C_202E_206D_206A_206E_200C_200E_206A_206E_206C_206A_202A_206C_206C_200B_206B_206C_206B_206A_202B_202C_200C_200D_206F_206C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _206D_202E_200E_202A_202E_200B_202B_200F_206E_200F_202C_202E_206C_200C_206E_202A_202D_200B_202B_206E_206B_206A_202D_202C_206B_200B_202D_206C_206A_202C_206C_206D_206B_206C_200C_200B_202B_206D_206E_200C_202E(string P_0) - { - return string.IsNullOrWhiteSpace(P_0); - } - - static string _206B_202B_206E_206B_206F_202D_202D_200F_202A_200C_200B_202E_206B_206E_206B_200C_206B_206E_200D_200E_200E_202E_206E_202A_206C_206A_202E_206F_206B_202C_206E_206C_206D_200F_206A_202C_206E_200C_200E_200C_202E(string P_0) - { - return P_0.Trim(); - } - - static int _200B_202B_206F_202D_202C_206F_200B_202E_202E_206D_200E_202B_202B_200F_202A_200E_206B_202C_206C_206D_206F_202B_202C_202C_200B_200C_200D_200D_206A_206F_202A_202E_202C_202D_202B_206C_200C_206D_200D_200F_202E(string P_0) - { - return P_0.Length; - } - - static string _200F_206E_206F_206A_206B_206F_206C_206E_206C_202A_200E_206D_206B_202D_206D_206E_200D_202A_202C_206A_206D_200C_206A_200D_202B_202D_206C_206B_202B_206A_202D_206E_200E_206E_200B_206D_202C_206A_202A_202E_202E(string P_0, int P_1, int P_2) - { - return P_0.Substring(P_1, P_2); - } - - static string _202A_206E_202A_202B_202A_206F_202B_202E_200B_206D_202D_202D_202C_202B_200B_202E_206A_200B_206E_200D_202C_206D_202A_200E_206C_206E_200E_202B_206E_200C_200D_200B_206A_200D_202B_206D_206B_206D_202C_202E(string P_0) - { - return P_0.ToUpperInvariant(); - } - - static string _202D_206D_200B_206E_202B_200F_206B_200B_206D_200F_202E_200D_206A_206F_200D_202E_200C_202D_206E_202A_206F_206B_206B_202A_200C_206C_206A_200B_206A_206C_202B_202B_202B_206A_202C_206B_206E_200D_206C_202C_202E(string P_0, int P_1) - { - return P_0.Substring(P_1); - } - - static string _200F_200E_206B_202E_206E_206A_206B_200E_200B_206A_202B_200D_202B_206F_206F_206F_202D_206F_200F_200F_206B_200D_206B_206E_200D_206E_206E_202B_202C_206E_206E_200E_202E_206D_206C_206C_206C_206E_202A_206E_202E(string P_0) - { - return P_0.ToLowerInvariant(); - } - - static string _202B_202B_206C_200C_202D_206C_200F_202B_200B_200B_206E_206D_206B_202A_206E_206F_202B_202A_200C_206F_206E_200E_200D_202C_206D_200C_206E_202D_206A_206C_206D_200C_206D_200D_206E_206B_206E_206C_206B_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static void _202B_206C_200C_202C_200F_200C_202A_200D_202D_206D_202B_202C_200E_206C_206C_206D_206C_200B_206C_206A_202A_206A_202D_200E_202A_202A_202D_206B_206F_202E_202C_200F_202E_206A_202B_206F_200B_202B_206A_202D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static Encoding _200F_200C_202C_206C_200C_206D_202C_206D_202C_200B_206B_206D_206D_202D_200B_206D_202B_206D_206C_206C_206D_206B_206F_206C_206A_202E_206A_200D_200F_202A_200E_202B_200D_206A_200B_206E_206E_206D_200C_200C_202E() - { - return Encoding.UTF8; - } - - static byte[] _202A_202B_202A_200E_206F_200F_200F_206C_200B_206A_202A_200B_200F_202B_202B_206B_206F_202A_202E_200F_200E_206A_202D_206F_200C_202E_206B_200B_202D_206C_206E_202D_202D_200B_206A_200D_200B_200C_202A_202C_202E(Encoding P_0, string P_1) - { - return P_0.GetBytes(P_1); - } - - static nint _202B_202E_202A_200F_200E_202A_206A_202A_206C_202D_206A_202D_202B_200E_200F_206F_206E_200E_202B_200B_206E_206F_202B_200B_206A_200B_202B_200E_200C_200D_202D_206D_200C_202C_200F_202B_206D_206D_206A_202E_202E(int P_0) - { - return Marshal.AllocHGlobal(P_0); - } - - static void _202D_200F_200B_206D_202E_206C_200C_206A_202B_200E_202B_202C_206E_206E_206C_200D_206B_202A_206B_206F_200F_206C_206E_200E_200C_206E_202A_202D_202C_202A_202B_200E_202D_200E_200C_202A_202D_200F_200D_200E_202E(byte[] P_0, int P_1, nint P_2, int P_3) - { - Marshal.Copy(P_0, P_1, P_2, P_3); - } - - static void _200D_206D_200B_202C_202C_200B_206E_206C_206C_200B_206E_206A_206E_200F_202B_202B_202E_200D_202A_206A_202E_202D_200B_202E_206C_206F_200C_206A_200B_200F_200B_206D_202E_200F_202D_200E_202A_206B_200D_206C_202E(nint P_0, byte P_1) - { - Marshal.WriteByte(P_0, P_1); - } - - static void _206E_200B_200B_200E_200E_202B_202D_202E_206E_206B_206B_202D_206D_202D_200B_206D_202D_206E_206D_206C_202C_206F_206E_206A_206E_200E_206D_202D_206B_202A_202B_202A_206C_206A_200B_206D_202C_202A_200F_200E_202E(nint P_0) - { - Marshal.FreeHGlobal(P_0); - } - - static QuestId _206C_206C_202C_202A_202B_202C_202C_202C_202D_200C_200D_206D_202E_200E_202E_206D_206A_202C_206E_206E_202C_200B_206D_200C_202B_206E_202D_206B_206F_206B_200F_206B_202D_206C_202C_200B_206F_206E_206E_202C_202E(ushort P_0) - { - return new QuestId(P_0); - } } diff --git a/Questionable/Questionable.Controller.GameUi/CraftworksSupplyController.cs b/Questionable/Questionable.Controller.GameUi/CraftworksSupplyController.cs index 0a42842..d329937 100644 --- a/Questionable/Questionable.Controller.GameUi/CraftworksSupplyController.cs +++ b/Questionable/Questionable.Controller.GameUi/CraftworksSupplyController.cs @@ -1,10 +1,7 @@ using System; -using System.Runtime.CompilerServices; using System.Threading; -using System.Threading.Tasks; using Dalamud.Game.Addon.Lifecycle; using Dalamud.Game.Addon.Lifecycle.AddonArgTypes; -using Dalamud.Game.NativeWrapper; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.UI; using FFXIVClientStructs.FFXIV.Component.GUI; @@ -27,7 +24,6 @@ internal sealed class CraftworksSupplyController : IDisposable private bool ShouldHandleUiInteractions => _questController.IsRunning; - [MethodImpl(MethodImplOptions.NoInlining)] public CraftworksSupplyController(QuestController questController, IAddonLifecycle addonLifecycle, IGameGui gameGui, IFramework framework, ILogger<CraftworksSupplyController> logger) { _questController = questController; @@ -35,273 +31,125 @@ internal sealed class CraftworksSupplyController : IDisposable _gameGui = gameGui; _framework = framework; _logger = logger; - _206A_206B_206F_200B_200D_206D_200F_200D_202D_206B_200E_206B_200F_206D_200F_206F_206C_206A_206B_206F_202D_206B_206D_206B_206F_206F_202B_202C_200B_206C_206D_200F_200F_206E_206F_206A_202E_206B_200B_206D_202E(_addonLifecycle, AddonEvent.PostReceiveEvent, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1810521484), (IAddonLifecycle.AddonEventDelegate)ContextIconMenuPostReceiveEvent); - _206A_206B_206F_200B_200D_206D_200F_200D_202D_206B_200E_206B_200F_206D_200F_206F_206C_206A_206B_206F_202D_206B_206D_206B_206F_206F_202B_202C_200B_206C_206D_200F_200F_206E_206F_206A_202E_206B_200B_206D_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-145476245), (IAddonLifecycle.AddonEventDelegate)BankaCraftworksSupplyPostUpdate); + _addonLifecycle.RegisterListener(AddonEvent.PostReceiveEvent, "ContextIconMenu", ContextIconMenuPostReceiveEvent); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "BankaCraftworksSupply", BankaCraftworksSupplyPostUpdate); } private unsafe void BankaCraftworksSupplyPostUpdate(AddonEvent type, AddonArgs args) { - int num = (ShouldHandleUiInteractions ? (-1071885415) : (-1071885414)); - while (true) + if (ShouldHandleUiInteractions) { - int num2 = num; - int num3 = -1071885413; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - { - AtkUnitBase* address = (AtkUnitBase*)_202D_202C_206E_200E_200F_200C_200B_200E_202B_206B_200D_200F_200F_206A_202E_202A_200B_202B_206E_200C_206D_202B_200C_202C_200B_202E_200D_200E_206D_206C_202B_206A_200D_206C_206C_200D_200C_200C_202E(args).Address; - InteractWithBankaCraftworksSupply(address); - return; - } - case 1: - return; - case 0: - goto IL_005b; - } - continue; - IL_005b: - num = -1071885414; + AtkUnitBase* address = (AtkUnitBase*)args.Addon.Address; + InteractWithBankaCraftworksSupply(address); } } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void InteractWithBankaCraftworksSupply() { - AtkUnitBase* addonPtr; - int num = ((!_gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(473068994), out addonPtr)) ? 1997830523 : 1997830520); - while (true) + if (_gameGui.TryGetAddonByName<AtkUnitBase>("BankaCraftworksSupply", out var addonPtr)) { - int num2 = num; - int num3 = 1997830522; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return; - case 2: - InteractWithBankaCraftworksSupply(addonPtr); - num = 1997830523; - break; - case 0: - num = 1997830520; - break; - } + InteractWithBankaCraftworksSupply(addonPtr); } } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void InteractWithBankaCraftworksSupply(AtkUnitBase* addon) { AtkValue* atkValues = addon->AtkValues; uint uInt = atkValues[7].UInt; - int num = (int)uInt; - int num2 = 6; - uint num3 = (uint)(~(~num2 + num)); - int num4 = 0; - int num5 = 571288913; - while (true) + uint num = 6 - uInt; + for (int i = 0; i < num; i++) { - int num6 = num5; - num = 571288917; - num2 = num6; - int num7 = num2 + num; - int num8 = num2 & num; - switch (num7 - (num8 + num8)) + if (atkValues[31 + i].UInt == 0) { - case 7: - _200F_200E_206D_202E_206A_206E_202E_202E_200E_206F_200E_206A_202E_200E_202C_200E_200D_202C_206B_200C_202A_202C_206E_200B_200D_206A_202C_200E_200F_206E_206C_200C_202B_200D_200B_202B_202E_200E_202A_206C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1814180026), Array.Empty<object>()); - addon->FireCallbackInt(0); - num5 = 571288916; - break; - case 2: - { - int num11 = num4; - num = 1; - num2 = num11; - int num12 = num2 ^ num; - int num13 = num2 & num; - num4 = num12 + (num13 + num13); - num5 = 571288913; - break; - } - case 3: - num5 = 571288913; - break; - case 1: - return; - case 5: - { - _200F_200E_206D_202E_206A_206E_202E_202E_200E_206F_200E_206A_202E_200E_202C_200E_200D_202C_206B_200C_202A_202C_206E_200B_200D_206A_202C_200E_200F_206E_206C_200C_202B_200D_200B_202B_202E_200E_202A_206C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2009382844), new object[1] { num4 }); + _logger.LogDebug("Selecting an item for slot {Slot}", i); AtkValue* values = stackalloc AtkValue[2] { new AtkValue { - Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Int, + Type = AtkValueType.Int, Int = 2 }, new AtkValue { - Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Int, - Int = num4 + Type = AtkValueType.Int, + Int = i } }; addon->FireCallback(2u, values); return; } - case 4: - num5 = ((num4 < num3) ? 571288915 : 571288917); - break; - case 0: - num5 = ((atkValues[31].UInt == 0) ? 571288916 : 571288914); - break; - case 6: - { - num = num4; - num2 = 31; - int num9 = num2 ^ num; - int num10 = num2 & num; - num5 = ((atkValues[num9 + (num10 + num10)].UInt != 0) ? 571288919 : 571288912); - break; - } - } + } + if (atkValues[31].UInt != 0) + { + _logger.LogDebug("Confirming turn-in"); + addon->FireCallbackInt(0); } } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void ContextIconMenuPostReceiveEvent(AddonEvent type, AddonArgs args) { - int num = (ShouldHandleUiInteractions ? 127250467 : 127250479); - AtkUnitBase* addonById = default(AtkUnitBase*); - ushort blockedParentId = default(ushort); - AddonContextIconMenu* address = default(AddonContextIconMenu*); - while (true) + if (!ShouldHandleUiInteractions) { - int num2 = num; - int num3 = 127250475; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + AddonContextIconMenu* address = (AddonContextIconMenu*)args.Addon.Address; + if (!address->IsVisible) + { + return; + } + ushort blockedParentId = address->BlockedParentId; + if (blockedParentId == 0) + { + return; + } + AtkUnitBase* addonById = AtkStage.Instance()->RaptureAtkUnitManager->GetAddonById(blockedParentId); + if (addonById->NameString == "BankaCraftworksSupply") + { + _logger.LogDebug("Picking item for {AddonName}", addonById->NameString); + AtkValue* values = stackalloc AtkValue[5] { - case 7: - return; - case 10: - addonById = AtkStage.Instance()->RaptureAtkUnitManager->GetAddonById(blockedParentId); - num = ((!_206B_200E_202C_202E_200F_200E_206C_202E_206F_200E_202D_200F_200D_202E_200E_200E_206F_206E_200E_206F_200B_202D_200B_206D_202B_206A_200D_206A_202E_200B_202A_206E_202B_206F_202B_200B_200E_206B_200B_202B_202E(addonById->NameString, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-145476245))) ? 127250475 : 127250473); - break; - case 4: - return; - case 5: - return; - case 9: - num = 127250479; - break; - case 2: - { - _200F_200E_206D_202E_206A_206E_202E_202E_200E_206F_200E_206A_202E_200E_202C_200E_200D_202C_206B_200C_202A_202C_206E_200B_200D_206A_202C_200E_200F_206E_206C_200C_202B_200D_200B_202B_202E_200E_202A_206C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1861072248), new object[1] { addonById->NameString }); - AtkValue* values = stackalloc AtkValue[5] + new AtkValue { - new AtkValue - { - Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Int, - Int = 0 - }, - new AtkValue - { - Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Int, - Int = 0 - }, - new AtkValue - { - Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.UInt, - UInt = 20802u - }, - new AtkValue - { - Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.UInt, - UInt = 0u - }, - new AtkValue - { - Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Undefined, - Int = 0 - } - }; - address->FireCallback(5u, values); - address->Close(fireCallback: true); - num = ((!_206B_200E_202C_202E_200F_200E_206C_202E_206F_200E_202D_200F_200D_202E_200E_200E_206F_206E_200E_206F_200B_202D_200B_206D_202B_206A_200D_206A_202E_200B_202A_206E_202B_206F_202B_200B_200E_206B_200B_202B_202E(addonById->NameString, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(473068994))) ? 127250476 : 127250477); - break; - } - case 8: - address = (AddonContextIconMenu*)_202D_202C_206E_200E_200F_200C_200B_200E_202B_206B_200D_200F_200F_206A_202E_202A_200B_202B_206E_200C_206D_202B_200C_202C_200B_202E_200D_200E_206D_206C_202B_206A_200D_206C_206C_200D_200C_200C_202E(args).Address; - num = (address->IsVisible ? 127250472 : 127250474); - break; - case 1: - return; - case 3: - blockedParentId = address->BlockedParentId; - num = ((blockedParentId != 0) ? 127250465 : 127250478); - break; - case 6: - _206E_202E_200E_200E_200D_206B_200E_200F_206E_202B_202E_202C_202C_206D_202B_202B_206D_206C_206A_206B_206D_202E_206D_202A_206B_202A_200F_206B_200B_202A_202D_200E_206C_200D_200E_206A_202A_200F_200F_200D_202E(_framework, (Action)InteractWithBankaCraftworksSupply, TimeSpan.FromMilliseconds(50L), 0, default(CancellationToken)); - return; - case 0: - _200D_200B_202D_200D_200D_202D_200F_206A_202C_206A_200F_206F_202E_206A_206C_206D_200B_206F_206D_206F_206F_200E_202B_202D_202E_202E_200F_206A_200E_200B_206B_202B_206E_200F_200C_202A_206E_206E_200E_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(599931769), new object[1] { addonById->NameString }); - num = 127250476; - break; + Type = AtkValueType.Int, + Int = 0 + }, + new AtkValue + { + Type = AtkValueType.Int, + Int = 0 + }, + new AtkValue + { + Type = AtkValueType.UInt, + UInt = 20802u + }, + new AtkValue + { + Type = AtkValueType.UInt, + UInt = 0u + }, + new AtkValue + { + Type = AtkValueType.Undefined, + Int = 0 + } + }; + address->FireCallback(5u, values); + address->Close(fireCallback: true); + if (addonById->NameString == "BankaCraftworksSupply") + { + _framework.RunOnTick((Action)InteractWithBankaCraftworksSupply, TimeSpan.FromMilliseconds(50L), 0, default(CancellationToken)); } } + else + { + _logger.LogTrace("Ignoring contextmenu event for {AddonName}", addonById->NameString); + } } - [MethodImpl(MethodImplOptions.NoInlining)] public void Dispose() { - _202C_202A_200D_206E_206B_206E_202E_206F_200C_202D_200E_202A_202D_202A_206E_202D_200E_202C_206E_202B_206F_206F_200F_206D_200D_200E_202B_206D_202C_202C_206F_202C_200C_206F_200F_206B_202E_200F_202C_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-145476245), (IAddonLifecycle.AddonEventDelegate)BankaCraftworksSupplyPostUpdate); - _202C_202A_200D_206E_206B_206E_202E_206F_200C_202D_200E_202A_202D_202A_206E_202D_200E_202C_206E_202B_206F_206F_200F_206D_200D_200E_202B_206D_202C_202C_206F_202C_200C_206F_200F_206B_202E_200F_202C_202E(_addonLifecycle, AddonEvent.PostReceiveEvent, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1517352896), (IAddonLifecycle.AddonEventDelegate)ContextIconMenuPostReceiveEvent); - } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static void _206A_206B_206F_200B_200D_206D_200F_200D_202D_206B_200E_206B_200F_206D_200F_206F_206C_206A_206B_206F_202D_206B_206D_206B_206F_206F_202B_202C_200B_206C_206D_200F_200F_206E_206F_206A_202E_206B_200B_206D_202E(IAddonLifecycle P_0, AddonEvent P_1, string P_2, IAddonLifecycle.AddonEventDelegate P_3) - { - P_0.RegisterListener(P_1, P_2, P_3); - } - - static AtkUnitBasePtr _202D_202C_206E_200E_200F_200C_200B_200E_202B_206B_200D_200F_200F_206A_202E_202A_200B_202B_206E_200C_206D_202B_200C_202C_200B_202E_200D_200E_206D_206C_202B_206A_200D_206C_206C_200D_200C_200C_202E(AddonArgs P_0) - { - return P_0.Addon; - } - - static void _200F_200E_206D_202E_206A_206E_202E_202E_200E_206F_200E_206A_202E_200E_202C_200E_200D_202C_206B_200C_202A_202C_206E_200B_200D_206A_202C_200E_200F_206E_206C_200C_202B_200D_200B_202B_202E_200E_202A_206C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _206B_200E_202C_202E_200F_200E_206C_202E_206F_200E_202D_200F_200D_202E_200E_200E_206F_206E_200E_206F_200B_202D_200B_206D_202B_206A_200D_206A_202E_200B_202A_206E_202B_206F_202B_200B_200E_206B_200B_202B_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static Task _206E_202E_200E_200E_200D_206B_200E_200F_206E_202B_202E_202C_202C_206D_202B_202B_206D_206C_206A_206B_206D_202E_206D_202A_206B_202A_200F_206B_200B_202A_202D_200E_206C_200D_200E_206A_202A_200F_200F_200D_202E(IFramework P_0, Action P_1, TimeSpan P_2, int P_3, CancellationToken P_4) - { - return P_0.RunOnTick(P_1, P_2, P_3, P_4); - } - - static void _200D_200B_202D_200D_200D_202D_200F_206A_202C_206A_200F_206F_202E_206A_206C_206D_200B_206F_206D_206F_206F_200E_202B_202D_202E_202E_200F_206A_200E_200B_206B_202B_206E_200F_200C_202A_206E_206E_200E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogTrace(P_1, P_2); - } - - static void _202C_202A_200D_206E_206B_206E_202E_206F_200C_202D_200E_202A_202D_202A_206E_202D_200E_202C_206E_202B_206F_206F_200F_206D_200D_200E_202B_206D_202C_202C_206F_202C_200C_206F_200F_206B_202E_200F_202C_202E(IAddonLifecycle P_0, AddonEvent P_1, string P_2, IAddonLifecycle.AddonEventDelegate P_3) - { - P_0.UnregisterListener(P_1, P_2, P_3); + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "BankaCraftworksSupply", BankaCraftworksSupplyPostUpdate); + _addonLifecycle.UnregisterListener(AddonEvent.PostReceiveEvent, "ContextIconMenu", ContextIconMenuPostReceiveEvent); } } diff --git a/Questionable/Questionable.Controller.GameUi/CreditsController.cs b/Questionable/Questionable.Controller.GameUi/CreditsController.cs index ec751e7..01c385b 100644 --- a/Questionable/Questionable.Controller.GameUi/CreditsController.cs +++ b/Questionable/Questionable.Controller.GameUi/CreditsController.cs @@ -1,11 +1,7 @@ using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Threading; using Dalamud.Game.Addon.Lifecycle; using Dalamud.Game.Addon.Lifecycle.AddonArgTypes; using Dalamud.Game.ClientState.Conditions; -using Dalamud.Game.NativeWrapper; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Component.GUI; using Microsoft.Extensions.Logging; @@ -14,84 +10,6 @@ namespace Questionable.Controller.GameUi; internal sealed class CreditsController : IDisposable { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass23_0 - { - public CreditsController _003C_003E4__this; - - public AddonArgs args; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal unsafe void _003CCreditScrollPostSetup_003Eb__0() - { - _202C_202D_202B_206B_200E_200F_200E_206B_206A_206D_206B_200B_200F_202E_206C_206F_202C_206C_206E_200D_202B_206A_206D_202B_202D_206D_206C_202E_202C_200E_200F_202D_206B_202C_202B_206B_202E_200F_206F_202E((ILogger)_003C_003E4__this._logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1595844089), Array.Empty<object>()); - AtkUnitBase* address = (AtkUnitBase*)_202C_200E_200E_202A_206A_200C_202B_206F_206C_206F_200C_206F_206E_200C_200D_202C_202C_206F_202A_206C_202C_202A_202B_200E_206E_200F_202C_206E_202B_206B_202A_200C_200D_200C_206C_202A_200D_202E_200D_206B_202E(args).Address; - address->FireCallbackInt(-2); - } - - static void _202C_202D_202B_206B_200E_200F_200E_206B_206A_206D_206B_200B_200F_202E_206C_206F_202C_206C_206E_200D_202B_206A_206D_202B_202D_206D_206C_202E_202C_200E_200F_202D_206B_202C_202B_206B_202E_200F_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static AtkUnitBasePtr _202C_200E_200E_202A_206A_200C_202B_206F_206C_206F_200C_206F_206E_200C_200D_202C_202C_206F_202A_206C_202C_202A_202B_200E_206E_200F_202C_206E_202B_206B_202A_200C_200D_200C_206C_202A_200D_202E_200D_206B_202E(AddonArgs P_0) - { - return P_0.Addon; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass24_0 - { - public CreditsController _003C_003E4__this; - - public AddonArgs args; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal unsafe void _003CCreditPostSetup_003Eb__0() - { - _206F_202B_200E_206B_200F_206B_206D_202E_200B_202C_202C_206E_200C_202D_202D_200B_202B_200E_202C_206B_206D_200D_200D_202C_200F_200C_200E_202C_206F_206B_200B_202D_200E_202B_206E_202A_200F_200D_200C_202E((ILogger)_003C_003E4__this._logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1464866894), Array.Empty<object>()); - AtkUnitBase* address = (AtkUnitBase*)_202E_206A_206F_206F_200D_200D_202B_206B_206F_200D_202E_202E_202C_202A_202C_202E_206A_206D_206D_206D_206D_200E_202B_200D_200B_200F_206F_202D_202B_206E_200F_206E_206A_206A_200E_200B_202D_206A_202C_202C_202E(args).Address; - address->FireCallbackInt(-2); - } - - static void _206F_202B_200E_206B_200F_206B_206D_202E_200B_202C_202C_206E_200C_202D_202D_200B_202B_200E_202C_206B_206D_200D_200D_202C_200F_200C_200E_202C_206F_206B_200B_202D_200E_202B_206E_202A_200F_200D_200C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static AtkUnitBasePtr _202E_206A_206F_206F_200D_200D_202B_206B_206F_200D_202E_202E_202C_202A_202C_202E_206A_206D_206D_206D_206D_200E_202B_200D_200B_200F_206F_202D_202B_206E_200F_206E_206A_206A_200E_200B_202D_206A_202C_202C_202E(AddonArgs P_0) - { - return P_0.Addon; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass25_0 - { - public CreditsController _003C_003E4__this; - - public AddonArgs args; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal unsafe void _003CCreditPlayerPostSetup_003Eb__0() - { - _200C_206E_200C_200D_202D_202C_206C_200B_200C_206B_202B_200B_202A_206B_202C_206B_202A_206F_206E_206B_200E_202A_200E_200E_200C_202D_202A_202B_200E_202A_200C_200C_206D_200C_202D_200F_200F_202D_206B_202A_202E((ILogger)_003C_003E4__this._logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(586600745), Array.Empty<object>()); - AtkUnitBase* address = (AtkUnitBase*)_200D_200B_202D_202A_200B_200F_200B_206F_206C_202C_202C_206E_206D_206E_200D_200D_200F_206A_202C_206B_206A_202A_200F_202A_206C_206E_206E_202D_202B_206B_202A_202B_200B_200D_206A_202D_200D_206B_202E_202E(args).Address; - address->Close(fireCallback: true); - } - - static void _200C_206E_200C_200D_202D_202C_206C_200B_200C_206B_202B_200B_202A_206B_202C_206B_202A_206F_206E_206B_200E_202A_200E_200E_200C_202D_202A_202B_200E_202A_200C_200C_206D_200C_202D_200F_200F_202D_206B_202A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static AtkUnitBasePtr _200D_200B_202D_202A_200B_200F_200B_206F_206C_202C_202C_206E_206D_206E_200D_200D_200F_206A_202C_206B_206A_202A_200F_202A_206C_206E_206E_202D_202B_206B_202A_202B_200B_200D_206A_202D_200D_206B_202E_202E(AddonArgs P_0) - { - return P_0.Addon; - } - } - private static CreditsController? _instance; private static IAddonLifecycle? _registeredLifecycle; @@ -111,11 +29,11 @@ internal sealed class CreditsController : IDisposable _instance?.CreditPlayerPostSetup(t, a); }; - private static readonly string[] CreditScrollArray = new string[1] { global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1480537905) }; + private static readonly string[] CreditScrollArray = new string[1] { "CreditScroll" }; - private static readonly string[] CreditArray = new string[1] { global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1278080404) }; + private static readonly string[] CreditArray = new string[1] { "Credit" }; - private static readonly string[] CreditPlayerArray = new string[1] { global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1133859703) }; + private static readonly string[] CreditPlayerArray = new string[1] { "CreditPlayer" }; private static bool _deferDisposeUntilCutsceneEnds; @@ -141,558 +59,191 @@ internal sealed class CreditsController : IDisposable private readonly ILogger<CreditsController> _logger; - private static readonly object _lock = _202A_206C_206F_202E_200B_206A_206D_202C_202B_200E_200E_206E_206B_202D_206B_206E_200D_202A_202C_206B_206A_202D_200C_206D_202E_200F_202A_206B_200E_206E_202C_200F_200D_202C_206A_200E_206C_206B_202A_206D_202E(); + private static readonly object _lock = new object(); - [MethodImpl(MethodImplOptions.NoInlining)] public CreditsController(IAddonLifecycle addonLifecycle, Configuration configuration, ICondition condition, ILogger<CreditsController> logger) { _addonLifecycle = addonLifecycle; _configuration = configuration; _condition = condition; _logger = logger; - object obj = _lock; - bool flag = false; - try + lock (_lock) { - _200B_200F_202B_200E_200D_206E_200E_206D_206F_202D_206C_200B_206E_200D_202B_206E_202C_200E_202D_200E_202D_202D_206C_202B_200D_202B_206C_202B_202C_206B_202E_202A_202E_202C_206A_206A_206E_206A_206D_202E_202E(obj, ref flag); if (_instance == null) { _instance = this; _registeredLifecycle = _addonLifecycle; - _200C_202A_202A_202B_202A_200F_200F_206A_206C_200F_200F_202B_206A_206F_202B_200B_200B_202C_206D_206A_202B_200F_200F_202D_202D_200B_206A_200D_200D_202C_202B_200E_200F_200F_200D_206C_206D_202D_206B_200F_202E(_addonLifecycle, AddonEvent.PostSetup, (IEnumerable<string>)CreditScrollArray, _creditScrollHandler); - _200C_202A_202A_202B_202A_200F_200F_206A_206C_200F_200F_202B_206A_206F_202B_200B_200B_202C_206D_206A_202B_200F_200F_202D_202D_200B_206A_200D_200D_202C_202B_200E_200F_200F_200D_206C_206D_202D_206B_200F_202E(_addonLifecycle, AddonEvent.PostSetup, (IEnumerable<string>)CreditArray, _creditHandler); - _200C_202A_202A_202B_202A_200F_200F_206A_206C_200F_200F_202B_206A_206F_202B_200B_200B_202C_206D_206A_202B_200F_200F_202D_202D_200B_206A_200D_200D_202C_202B_200E_200F_200F_200D_206C_206D_202D_206B_200F_202E(_addonLifecycle, AddonEvent.PostSetup, (IEnumerable<string>)CreditPlayerArray, _creditPlayerHandler); - _202D_200E_206B_200C_206D_200C_202C_206E_200E_206C_206C_200F_206D_206C_206B_202E_202B_206F_200F_206D_206B_206F_200B_200D_206E_200F_200C_202A_202B_200F_202D_200E_202E_206B_202C_206C_206F_200B_206B_202C_202E(_condition, (ICondition.ConditionChangeDelegate)OnConditionChange); - _200C_200C_202A_206D_206F_206B_206C_206C_200D_200B_202E_202C_202C_206E_202D_200E_200C_200F_200E_206F_206E_206B_206F_206D_200F_202E_202D_202E_206C_200C_202A_206C_200D_206A_206E_206E_206B_200F_206C_200D_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1181221171), new object[1] { _maxConsecutiveSkips }); - } - } - finally - { - if (flag) - { - _200C_206A_200D_200F_202D_200B_206C_206B_202A_202C_202A_200B_202A_202E_206E_202B_206D_200F_206A_200C_202B_200F_200D_206F_206F_200F_200B_200C_202D_202D_206B_200C_206A_206E_200B_206D_200C_200E_206E_202E(obj); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, CreditScrollArray, _creditScrollHandler); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, CreditArray, _creditHandler); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, CreditPlayerArray, _creditPlayerHandler); + _condition.ConditionChange += OnConditionChange; + _logger.LogDebug("CreditsController: registered listeners and ready to skip up to {MaxSkips} successive cutscenes.", _maxConsecutiveSkips); } } } private void OnConditionChange(ConditionFlag flag, bool value) { - int num = ((flag == ConditionFlag.OccupiedInCutSceneEvent) ? 186472363 : 186472362); - bool flag2 = default(bool); - while (true) + if ((flag == ConditionFlag.OccupiedInCutSceneEvent || flag == ConditionFlag.WatchingCutscene || flag == ConditionFlag.WatchingCutscene78) ? true : false) { - int num2 = num; - int num3 = 186472361; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (value) { - case 10: - num = 186472362; - break; - case 0: - num = ((!value) ? 186472366 : 186472352); - break; - case 4: - num = ((flag != ConditionFlag.WatchingCutscene78) ? 186472367 : 186472363); - break; - case 11: - NotifyCutsceneEnded(); - num = 186472360; - break; - case 9: DeferDisposeUntilCutsceneEnds(); - return; - case 12: - num = (flag2 ? 186472361 : 186472364); - break; - case 6: - flag2 = false; - num = 186472357; - break; - case 2: - flag2 = true; - num = 186472357; - break; - case 5: - return; - case 13: - num = (_206F_200E_202C_206A_200D_202D_206A_202A_202A_202B_200B_202D_200B_200F_200C_206E_206E_202B_206E_200E_206E_206A_202B_206A_200E_202D_200C_206C_200E_200D_206B_206E_202A_200B_200B_200D_202E_202C_206F_202B_202E(_condition, ConditionFlag.WatchingCutscene78) ? 186472360 : 186472354); - break; - case 8: - num = (_206F_200E_202C_206A_200D_202D_206A_202A_202A_202B_200B_202D_200B_200F_200C_206E_206E_202B_206E_200E_206E_206A_202B_206A_200E_202D_200C_206C_200E_200D_206B_206E_202A_200B_200B_200D_202E_202C_206F_202B_202E(_condition, ConditionFlag.WatchingCutscene) ? 186472360 : 186472356); - break; - case 1: - return; - case 7: - num = (_206F_200E_202C_206A_200D_202D_206A_202A_202A_202B_200B_202D_200B_200F_200C_206E_206E_202B_206E_200E_206E_206A_202B_206A_200E_202D_200C_206C_200E_200D_206B_206E_202A_200B_200B_200D_202E_202C_206F_202B_202E(_condition, ConditionFlag.OccupiedInCutSceneEvent) ? 186472360 : 186472353); - break; - case 3: - num = ((flag == ConditionFlag.WatchingCutscene) ? 186472363 : 186472365); - break; + } + else if (!_condition[ConditionFlag.OccupiedInCutSceneEvent] && !_condition[ConditionFlag.WatchingCutscene] && !_condition[ConditionFlag.WatchingCutscene78]) + { + NotifyCutsceneEnded(); } } } private unsafe void CreditScrollPostSetup(AddonEvent type, AddonArgs args) { - HandleCutscene([MethodImpl(MethodImplOptions.NoInlining)] () => + HandleCutscene(delegate { - _003C_003Ec__DisplayClass23_0._202C_202D_202B_206B_200E_200F_200E_206B_206A_206D_206B_200B_200F_202E_206C_206F_202C_206C_206E_200D_202B_206A_206D_202B_202D_206D_206C_202E_202C_200E_200F_202D_206B_202C_202B_206B_202E_200F_206F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1595844089), Array.Empty<object>()); - AtkUnitBase* address = (AtkUnitBase*)_003C_003Ec__DisplayClass23_0._202C_200E_200E_202A_206A_200C_202B_206F_206C_206F_200C_206F_206E_200C_200D_202C_202C_206F_202A_206C_202C_202A_202B_200E_206E_200F_202C_206E_202B_206B_202A_200C_200D_200C_206C_202A_200D_202E_200D_206B_202E(args).Address; + _logger.LogDebug("CreditScrollPostSetup: attempting to close credits sequence (scroll)."); + AtkUnitBase* address = (AtkUnitBase*)args.Addon.Address; address->FireCallbackInt(-2); }, args); } private unsafe void CreditPostSetup(AddonEvent type, AddonArgs args) { - HandleCutscene([MethodImpl(MethodImplOptions.NoInlining)] () => + HandleCutscene(delegate { - _003C_003Ec__DisplayClass24_0._206F_202B_200E_206B_200F_206B_206D_202E_200B_202C_202C_206E_200C_202D_202D_200B_202B_200E_202C_206B_206D_200D_200D_202C_200F_200C_200E_202C_206F_206B_200B_202D_200E_202B_206E_202A_200F_200D_200C_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1464866894), Array.Empty<object>()); - AtkUnitBase* address = (AtkUnitBase*)_003C_003Ec__DisplayClass24_0._202E_206A_206F_206F_200D_200D_202B_206B_206F_200D_202E_202E_202C_202A_202C_202E_206A_206D_206D_206D_206D_200E_202B_200D_200B_200F_206F_202D_202B_206E_200F_206E_206A_206A_200E_200B_202D_206A_202C_202C_202E(args).Address; + _logger.LogDebug("CreditPostSetup: attempting to close credits sequence."); + AtkUnitBase* address = (AtkUnitBase*)args.Addon.Address; address->FireCallbackInt(-2); }, args); } private unsafe void CreditPlayerPostSetup(AddonEvent type, AddonArgs args) { - HandleCutscene([MethodImpl(MethodImplOptions.NoInlining)] () => + HandleCutscene(delegate { - _003C_003Ec__DisplayClass25_0._200C_206E_200C_200D_202D_202C_206C_200B_200C_206B_202B_200B_202A_206B_202C_206B_202A_206F_206E_206B_200E_202A_200E_200E_200C_202D_202A_202B_200E_202A_200C_200C_206D_200C_202D_200F_200F_202D_206B_202A_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(586600745), Array.Empty<object>()); - AtkUnitBase* address = (AtkUnitBase*)_003C_003Ec__DisplayClass25_0._200D_200B_202D_202A_200B_200F_200B_206F_206C_202C_202C_206E_206D_206E_200D_200D_200F_206A_202C_206B_206A_202A_200F_202A_206C_206E_206E_202D_202B_206B_202A_202B_200B_200D_206A_202D_200D_206B_202E_202E(args).Address; + _logger.LogDebug("CreditPlayerPostSetup: attempting to close CreditPlayer."); + AtkUnitBase* address = (AtkUnitBase*)args.Addon.Address; address->Close(fireCallback: true); }, args); } - [MethodImpl(MethodImplOptions.NoInlining)] private void HandleCutscene(Action nativeAction, AddonArgs args) { - int num = ((!_configuration.General.CinemaMode) ? 1928788595 : 1928788597); - long valueOrDefault = default(long); - long num8 = default(long); - while (true) + if (_configuration.General.CinemaMode) { - int num2 = num; - int num3 = 1928788595; - int num4 = num2; - long num10; - switch ((num4 | num3) - (num4 & num3)) + _logger.LogDebug("HandleCutscene: Cinema Mode enabled, not skipping cutscene."); + return; + } + long num = ((args.Addon.Address == IntPtr.Zero) ? 0 : ((IntPtr)args.Addon.Address).ToInt64()); + if (num == 0L) + { + _logger.LogDebug("HandleCutscene: Addon address is zero, skipping."); + return; + } + lock (_lock) + { + long? lastHandledAt = _lastHandledAt; + if (lastHandledAt.HasValue) { - case 3: - num = 1928788597; - break; - case 5: - num10 = 0L; - goto IL_0077; - case 2: - _200C_200C_202A_206D_206F_206B_206C_206C_200D_200B_202E_202C_202C_206E_202D_200E_200C_200F_200E_206F_206E_206B_206F_206D_200F_202E_202D_202E_206C_200C_202A_206C_200D_206A_206E_206E_206B_200F_206C_200D_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2015596937), Array.Empty<object>()); - return; - case 0: - num = ((_206A_206F_200B_206C_200C_200C_206D_200D_206D_206D_202A_206E_200F_206E_206A_206A_200F_202D_206E_202D_202D_200C_206A_206A_200F_206F_202B_200D_206B_200B_200B_206C_202C_206F_200F_206D_200B_200B_206D_202A_202E(args).Address == IntPtr.Zero) ? 1928788598 : 1928788599); - break; - case 4: - num10 = ((IntPtr)_206A_206F_200B_206C_200C_200C_206D_200D_206D_206D_202A_206E_200F_206E_206A_206A_200F_202D_206E_202D_202D_200C_206A_206A_200F_206F_202B_200D_206B_200B_200B_206C_202C_206F_200F_206D_200B_200B_206D_202A_202E(args).Address).ToInt64(); - goto IL_0077; - case 6: - _200C_200C_202A_206D_206F_206B_206C_206C_200D_200B_202E_202C_202C_206E_202D_200E_200C_200F_200E_206F_206E_206B_206F_206D_200F_202E_202D_202E_206C_200C_202A_206C_200D_206A_206E_206E_206B_200F_206C_200D_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(643918301), Array.Empty<object>()); - return; - case 1: + long valueOrDefault = lastHandledAt.GetValueOrDefault(); + if (Environment.TickCount64 - valueOrDefault > 10000) { - object obj = _lock; - bool flag = false; - try + if (_handledConsecutiveCutscenes != 0) { - _200B_200F_202B_200E_200D_206E_200E_206D_206F_202D_206C_200B_206E_200D_202B_206E_202C_200E_202D_200E_202D_202D_206C_202B_200D_202B_206C_202B_202C_206B_202E_202A_202E_202C_206A_206A_206E_206A_206D_202E_202E(obj, ref flag); - long? lastHandledAt = _lastHandledAt; - num = ((!lastHandledAt.HasValue) ? (-333719538) : (-333719537)); - while (true) - { - int num5 = num; - num3 = -333719546; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 5: - _handledConsecutiveCutscenes = 0; - num = -333719538; - break; - case 4: - num = ((_handledConsecutiveCutscenes < _maxConsecutiveSkips) ? (-333719551) : (-333719539)); - break; - case 9: - valueOrDefault = lastHandledAt.GetValueOrDefault(); - num = ((_206B_200C_206C_202E_200C_200F_200E_206E_202E_206C_206B_200F_202C_202E_200F_200B_206C_202A_200E_202C_206C_206E_206A_202D_202B_206B_202B_206E_200B_202A_206E_200B_206B_200F_202B_206A_200B_200F_206D_206F_202E() - valueOrDefault <= 10000) ? (-333719538) : (-333719548)); - break; - case 2: - num = ((_handledConsecutiveCutscenes == 0) ? (-333719549) : (-333719547)); - break; - case 10: - num = ((num8 != _lastHandledAddr) ? (-333719550) : (-333719552)); - break; - case 1: - { - long valueOrDefault2 = lastHandledAt.GetValueOrDefault(); - num = ((_206B_200C_206C_202E_200C_200F_200E_206E_202E_206C_206B_200F_202C_202E_200F_200B_206C_202A_200E_202C_206C_206E_206A_202D_202B_206B_202B_206E_200B_202A_206E_200B_206B_200F_202B_206A_200B_200F_206D_206F_202E() - valueOrDefault2 >= 500) ? (-333719550) : (-333719540)); - break; - } - case 3: - _200C_200C_202A_206D_206F_206B_206C_206C_200D_200B_202E_202C_202C_206E_202D_200E_200C_200F_200E_206F_206E_206B_206F_206D_200F_202E_202D_202E_206C_200C_202A_206C_200D_206A_206E_206E_206B_200F_206C_200D_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1948237893), new object[2] - { - _206B_200C_206C_202E_200C_200F_200E_206E_202E_206C_206B_200F_202C_202E_200F_200B_206C_202A_200E_202C_206C_206E_206A_202D_202B_206B_202B_206E_200B_202A_206E_200B_206B_200F_202B_206A_200B_200F_206D_206F_202E() - valueOrDefault, - _handledConsecutiveCutscenes - }); - num = -333719549; - break; - case 11: - _202E_202C_200F_200D_206C_200F_206B_200D_200C_200F_202D_206E_200E_202E_206E_206C_206B_202D_206B_200E_200B_200C_200B_200B_206E_202E_202C_202C_206E_200E_200F_206B_200B_206A_200B_200B_202D_206B_202D_200D_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(767914834), new object[1] { _maxConsecutiveSkips }); - return; - case 0: - num = -333719537; - break; - case 8: - lastHandledAt = _lastHandledAt; - num = ((!lastHandledAt.HasValue) ? (-333719550) : (-333719545)); - break; - case 6: - _200C_200C_202A_206D_206F_206B_206C_206C_200D_200B_202E_202C_202C_206E_202D_200E_200C_200F_200E_206F_206E_206B_206F_206D_200F_202E_202D_202E_206C_200C_202A_206C_200D_206A_206E_206E_206B_200F_206C_200D_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-915129815), new object[1] { num8 }); - return; - case 7: - { - _lastHandledAt = _206B_200C_206C_202E_200C_200F_200E_206E_202E_206C_206B_200F_202C_202E_200F_200B_206C_202A_200E_202C_206C_206E_206A_202D_202B_206B_202B_206E_200B_202A_206E_200B_206B_200F_202B_206A_200B_200F_206D_206F_202E(); - _lastHandledAddr = num8; - int handledConsecutiveCutscenes = _handledConsecutiveCutscenes; - num3 = 1; - num4 = handledConsecutiveCutscenes; - _handledConsecutiveCutscenes = (num4 | num3) + (num4 & num3); - _200C_200C_202A_206D_206F_206B_206C_206C_200D_200B_202E_202C_202C_206E_202D_200E_200C_200F_200E_206F_206E_206B_206F_206D_200F_202E_202D_202E_206C_200C_202A_206C_200D_206A_206E_206E_206B_200F_206C_200D_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-84388314), new object[2] { _handledConsecutiveCutscenes, num8 }); - goto end_IL_0158; - } - } - continue; - end_IL_0158: - break; - } + _logger.LogDebug("HandleCutscene: long pause detected ({ElapsedMs}ms), resetting consecutive counter (was {Was}).", Environment.TickCount64 - valueOrDefault, _handledConsecutiveCutscenes); } - finally - { - num = ((!flag) ? 1553266183 : 1553266182); - while (true) - { - int num9 = num; - num3 = 1553266183; - num4 = num9; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1553266182; - break; - case 0: - goto end_IL_03fc; - case 1: - _200C_206A_200D_200F_202D_200B_206C_206B_202A_202C_202A_200B_202A_202E_206E_202B_206D_200F_206A_200C_202B_200F_200D_206F_206F_200F_200B_200C_202D_202D_206B_200C_206A_206E_200B_206D_200C_200E_206E_202E(obj); - num = 1553266183; - break; - } - continue; - end_IL_03fc: - break; - } - } - try - { - nativeAction(); - _200C_200C_202A_206D_206F_206B_206C_206C_200D_200B_202E_202C_202C_206E_202D_200E_200C_200F_200E_206F_206E_206B_206F_206D_200F_202E_202D_202E_206C_200C_202A_206C_200D_206A_206E_206E_206B_200F_206C_200D_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1887133010), new object[1] { num8 }); - } - catch (Exception ex) - { - _206C_206C_202C_200C_202C_206E_206E_206A_202E_200F_202D_200B_202B_200C_206D_200B_202E_206A_200E_200F_206C_206D_206F_200E_206D_206F_202C_202B_206C_202D_200B_206E_200B_202A_206A_200D_202A_202A_200D_202A_202E((ILogger)_logger, ex, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(873524230), new object[1] { num8 }); - } - _200C_200C_202A_206D_206F_206B_206C_206C_200D_200B_202E_202C_202C_206E_202D_200E_200C_200F_200E_206F_206E_206B_206F_206D_200F_202E_202D_202E_206C_200C_202A_206C_200D_206A_206E_206E_206B_200F_206C_200D_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2081767975), new object[2] { _handledConsecutiveCutscenes, _maxConsecutiveSkips }); + _handledConsecutiveCutscenes = 0; + } + } + lastHandledAt = _lastHandledAt; + if (lastHandledAt.HasValue) + { + long valueOrDefault2 = lastHandledAt.GetValueOrDefault(); + if (Environment.TickCount64 - valueOrDefault2 < 500 && num == _lastHandledAddr) + { + _logger.LogDebug("HandleCutscene: suppressed re-entrant invocation for same addon (addr=0x{Address:X}).", num); return; } - IL_0077: - num8 = num10; - num = ((num8 != 0L) ? 1928788594 : 1928788593); - break; } + if (_handledConsecutiveCutscenes >= _maxConsecutiveSkips) + { + _logger.LogInformation("HandleCutscene: reached max consecutive skips ({MaxSkips}), pausing until cutscenes stop for a while.", _maxConsecutiveSkips); + return; + } + _lastHandledAt = Environment.TickCount64; + _lastHandledAddr = num; + _handledConsecutiveCutscenes++; + _logger.LogDebug("HandleCutscene: handling cutscene #{Count} (addr=0x{Address:X}).", _handledConsecutiveCutscenes, num); } + try + { + nativeAction(); + _logger.LogDebug("HandleCutscene: native action executed for addon at 0x{Address:X}.", num); + } + catch (Exception exception) + { + _logger.LogError(exception, "HandleCutscene: exception while executing native action for addon at 0x{Address:X}.", num); + } + _logger.LogDebug("HandleCutscene: handled {Count}/{Max} consecutive cutscenes.", _handledConsecutiveCutscenes, _maxConsecutiveSkips); } - [MethodImpl(MethodImplOptions.NoInlining)] public static void DeferDisposeUntilCutsceneEnds() { - object obj = _lock; - bool flag = false; - try + lock (_lock) { - _200B_200F_202B_200E_200D_206E_200E_206D_206F_202D_206C_200B_206E_200D_202B_206E_202C_200E_202D_200E_202D_202D_206C_202B_200D_202B_206C_202B_202C_206B_202E_202A_202E_202C_206A_206A_206E_206A_206D_202E_202E(obj, ref flag); _deferDisposeUntilCutsceneEnds = true; - int num = ((_instance == null) ? 1593867446 : 1593867445); - while (true) + if (_instance != null) { - int num2 = num; - int num3 = 1593867444; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1593867445; - break; - case 1: - _200C_200C_202A_206D_206F_206B_206C_206C_200D_200B_202E_202C_202C_206E_202D_200E_200C_200F_200E_206F_206E_206B_206F_206D_200F_202E_202D_202E_206C_200C_202A_206C_200D_206A_206E_206E_206B_200F_206C_200D_202E((ILogger)_instance._logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1723920399), Array.Empty<object>()); - num = 1593867446; - break; - case 2: - return; - } - } - } - finally - { - int num = ((!flag) ? (-821324345) : (-821324348)); - while (true) - { - int num7 = num; - int num3 = -821324347; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_00b5; - case 1: - _200C_206A_200D_200F_202D_200B_206C_206B_202A_202C_202A_200B_202A_202E_206E_202B_206D_200F_206A_200C_202B_200F_200D_206F_206F_200F_200B_200C_202D_202D_206B_200C_206A_206E_200B_206D_200C_200E_206E_202E(obj); - num = -821324345; - break; - case 0: - num = -821324348; - break; - } - continue; - end_IL_00b5: - break; + _instance._logger.LogDebug("CreditsController: deferring dispose until cutscene ends."); } } } - [MethodImpl(MethodImplOptions.NoInlining)] public static void NotifyCutsceneEnded() { - object obj = _lock; - bool flag = false; - try + lock (_lock) { - _200B_200F_202B_200E_200D_206E_200E_206D_206F_202D_206C_200B_206E_200D_202B_206E_202C_200E_202D_200E_202D_202D_206C_202B_200D_202B_206C_202B_202C_206B_202E_202A_202E_202C_206A_206A_206E_206A_206D_202E_202E(obj, ref flag); _deferDisposeUntilCutsceneEnds = false; - int num = ((_instance == null) ? 1205296441 : 1205296446); - while (true) + if (_instance != null) { - int num2 = num; - int num3 = 1205296442; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = ((_instance == null) ? 1205296442 : 1205296440); - break; - case 3: - num = ((!_pendingDispose) ? 1205296442 : 1205296443); - break; - case 4: - _200C_200C_202A_206D_206F_206B_206C_206C_200D_200B_202E_202C_202C_206E_202D_200E_200C_200F_200E_206F_206E_206B_206F_206D_200F_202E_202D_202E_206C_200C_202A_206C_200D_206A_206E_206E_206B_200F_206C_200D_202E((ILogger)_instance._logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1784202689), Array.Empty<object>()); - num = 1205296441; - break; - case 2: - _200C_200C_202A_206D_206F_206B_206C_206C_200D_200B_202E_202C_202C_206E_202D_200E_200C_200F_200E_206F_206E_206B_206F_206D_200F_202E_202D_202E_206C_200C_202A_206C_200D_206A_206E_206E_206B_200F_206C_200D_202E((ILogger)_instance._logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1095714007), Array.Empty<object>()); - _instance.Dispose(); - num = 1205296442; - break; - case 5: - num = 1205296446; - break; - case 0: - return; - } + _instance._logger.LogDebug("CreditsController: cutscene ended, processing pending dispose state."); } - } - finally - { - int num = ((!flag) ? (-15651437) : (-15651440)); - while (true) + if (_pendingDispose && _instance != null) { - int num5 = num; - int num3 = -15651439; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_0132; - case 1: - _200C_206A_200D_200F_202D_200B_206C_206B_202A_202C_202A_200B_202A_202E_206E_202B_206D_200F_206A_200C_202B_200F_200D_206F_206F_200F_200B_200C_202D_202D_206B_200C_206A_206E_200B_206D_200C_200E_206E_202E(obj); - num = -15651437; - break; - case 0: - num = -15651440; - break; - } - continue; - end_IL_0132: - break; + _instance._logger.LogDebug("CreditsController: pending dispose detected, performing unregister now."); + _instance.Dispose(); } } } - [MethodImpl(MethodImplOptions.NoInlining)] public void Dispose() { - object obj = _lock; - bool flag = false; - try + lock (_lock) { - _200B_200F_202B_200E_200D_206E_200E_206D_206F_202D_206C_200B_206E_200D_202B_206E_202C_200E_202D_200E_202D_202D_206C_202B_200D_202B_206C_202B_202C_206B_202E_202A_202E_202C_206A_206A_206E_206A_206D_202E_202E(obj, ref flag); - int num = ((_instance == this) ? (-273121773) : (-273121772)); - while (true) + if (_instance != this) { - int num2 = num; - int num3 = -273121774; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - num = ((!_deferDisposeUntilCutsceneEnds) ? (-273121776) : (-273121775)); - break; - case 6: - return; - case 2: - num = ((_registeredLifecycle == null) ? (-273121770) : (-273121774)); - break; - case 0: - _206B_200C_202E_206C_200F_206D_206F_206C_202B_206F_206A_200B_202C_206B_206D_206E_206A_202B_206F_200D_202A_206F_200B_202E_206D_202C_202E_202C_202E_202B_200D_202A_202B_202E_206C_206C_200F_202E_206B_206D_202E(_registeredLifecycle, AddonEvent.PostSetup, (IEnumerable<string>)CreditPlayerArray, _creditPlayerHandler); - _206B_200C_202E_206C_200F_206D_206F_206C_202B_206F_206A_200B_202C_206B_206D_206E_206A_202B_206F_200D_202A_206F_200B_202E_206D_202C_202E_202C_202E_202B_200D_202A_202B_202E_206C_206C_200F_202E_206B_206D_202E(_registeredLifecycle, AddonEvent.PostSetup, (IEnumerable<string>)CreditArray, _creditHandler); - _206B_200C_202E_206C_200F_206D_206F_206C_202B_206F_206A_200B_202C_206B_206D_206E_206A_202B_206F_200D_202A_206F_200B_202E_206D_202C_202E_202C_202E_202B_200D_202A_202B_202E_206C_206C_200F_202E_206B_206D_202E(_registeredLifecycle, AddonEvent.PostSetup, (IEnumerable<string>)CreditScrollArray, _creditScrollHandler); - num = -273121770; - break; - case 3: - _pendingDispose = true; - _200C_200C_202A_206D_206F_206B_206C_206C_200D_200B_202E_202C_202C_206E_202D_200E_200C_200F_200E_206F_206E_206B_206F_206D_200F_202E_202D_202E_206C_200C_202A_206C_200D_206A_206E_206E_206B_200F_206C_200D_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1915726020), Array.Empty<object>()); - return; - case 5: - num = -273121772; - break; - case 4: - _200D_200B_206D_200E_206C_200B_206C_206D_200E_200C_200E_206E_200E_206D_206C_202C_200E_206A_206A_202E_202B_202B_202C_202C_206B_202B_206A_200B_206D_200B_200F_200D_202C_202D_202E_202B_206F_200C_206F_202B_202E(_condition, (ICondition.ConditionChangeDelegate)OnConditionChange); - _registeredLifecycle = null; - _instance = null; - _pendingDispose = false; - _handledConsecutiveCutscenes = 0; - _lastHandledAddr = 0L; - _lastHandledAt = null; - _200C_200C_202A_206D_206F_206B_206C_206C_200D_200B_202E_202C_202C_206E_202D_200E_200C_200F_200E_206F_206E_206B_206F_206D_200F_202E_202D_202E_206C_200C_202A_206C_200D_206A_206E_206E_206B_200F_206C_200D_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-677486284), Array.Empty<object>()); - return; - } + return; } - } - finally - { - int num = ((!flag) ? 1603499567 : 1603499564); - while (true) + if (_deferDisposeUntilCutsceneEnds) { - int num7 = num; - int num3 = 1603499566; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - num = 1603499564; - break; - case 1: - goto end_IL_01bc; - case 2: - _200C_206A_200D_200F_202D_200B_206C_206B_202A_202C_202A_200B_202A_202E_206E_202B_206D_200F_206A_200C_202B_200F_200D_206F_206F_200F_200B_200C_202D_202D_206B_200C_206A_206E_200B_206D_200C_200E_206E_202E(obj); - num = 1603499567; - break; - } - continue; - end_IL_01bc: - break; + _pendingDispose = true; + _logger.LogDebug("CreditsController.Dispose deferred until cutscene end."); + return; } + if (_registeredLifecycle != null) + { + _registeredLifecycle.UnregisterListener(AddonEvent.PostSetup, CreditPlayerArray, _creditPlayerHandler); + _registeredLifecycle.UnregisterListener(AddonEvent.PostSetup, CreditArray, _creditHandler); + _registeredLifecycle.UnregisterListener(AddonEvent.PostSetup, CreditScrollArray, _creditScrollHandler); + } + _condition.ConditionChange -= OnConditionChange; + _registeredLifecycle = null; + _instance = null; + _pendingDispose = false; + _handledConsecutiveCutscenes = 0; + _lastHandledAddr = 0L; + _lastHandledAt = null; + _logger.LogDebug("CreditsController listeners unregistered and disposed (primary instance)."); } } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static void _200B_200F_202B_200E_200D_206E_200E_206D_206F_202D_206C_200B_206E_200D_202B_206E_202C_200E_202D_200E_202D_202D_206C_202B_200D_202B_206C_202B_202C_206B_202E_202A_202E_202C_206A_206A_206E_206A_206D_202E_202E(object P_0, ref bool P_1) - { - Monitor.Enter(P_0, ref P_1); - } - - static void _200C_202A_202A_202B_202A_200F_200F_206A_206C_200F_200F_202B_206A_206F_202B_200B_200B_202C_206D_206A_202B_200F_200F_202D_202D_200B_206A_200D_200D_202C_202B_200E_200F_200F_200D_206C_206D_202D_206B_200F_202E(IAddonLifecycle P_0, AddonEvent P_1, IEnumerable<string> P_2, IAddonLifecycle.AddonEventDelegate P_3) - { - P_0.RegisterListener(P_1, P_2, P_3); - } - - static void _202D_200E_206B_200C_206D_200C_202C_206E_200E_206C_206C_200F_206D_206C_206B_202E_202B_206F_200F_206D_206B_206F_200B_200D_206E_200F_200C_202A_202B_200F_202D_200E_202E_206B_202C_206C_206F_200B_206B_202C_202E(ICondition P_0, ICondition.ConditionChangeDelegate P_1) - { - P_0.ConditionChange += P_1; - } - - static void _200C_200C_202A_206D_206F_206B_206C_206C_200D_200B_202E_202C_202C_206E_202D_200E_200C_200F_200E_206F_206E_206B_206F_206D_200F_202E_202D_202E_206C_200C_202A_206C_200D_206A_206E_206E_206B_200F_206C_200D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _200C_206A_200D_200F_202D_200B_206C_206B_202A_202C_202A_200B_202A_202E_206E_202B_206D_200F_206A_200C_202B_200F_200D_206F_206F_200F_200B_200C_202D_202D_206B_200C_206A_206E_200B_206D_200C_200E_206E_202E(object P_0) - { - Monitor.Exit(P_0); - } - - static bool _206F_200E_202C_206A_200D_202D_206A_202A_202A_202B_200B_202D_200B_200F_200C_206E_206E_202B_206E_200E_206E_206A_202B_206A_200E_202D_200C_206C_200E_200D_206B_206E_202A_200B_200B_200D_202E_202C_206F_202B_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static AtkUnitBasePtr _206A_206F_200B_206C_200C_200C_206D_200D_206D_206D_202A_206E_200F_206E_206A_206A_200F_202D_206E_202D_202D_200C_206A_206A_200F_206F_202B_200D_206B_200B_200B_206C_202C_206F_200F_206D_200B_200B_206D_202A_202E(AddonArgs P_0) - { - return P_0.Addon; - } - - static long _206B_200C_206C_202E_200C_200F_200E_206E_202E_206C_206B_200F_202C_202E_200F_200B_206C_202A_200E_202C_206C_206E_206A_202D_202B_206B_202B_206E_200B_202A_206E_200B_206B_200F_202B_206A_200B_200F_206D_206F_202E() - { - return Environment.TickCount64; - } - - static void _202E_202C_200F_200D_206C_200F_206B_200D_200C_200F_202D_206E_200E_202E_206E_206C_206B_202D_206B_200E_200B_200C_200B_200B_206E_202E_202C_202C_206E_200E_200F_206B_200B_206A_200B_200B_202D_206B_202D_200D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static void _206C_206C_202C_200C_202C_206E_206E_206A_202E_200F_202D_200B_202B_200C_206D_200B_202E_206A_200E_200F_206C_206D_206F_200E_206D_206F_202C_202B_206C_202D_200B_206E_200B_202A_206A_200D_202A_202A_200D_202A_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - - static void _206B_200C_202E_206C_200F_206D_206F_206C_202B_206F_206A_200B_202C_206B_206D_206E_206A_202B_206F_200D_202A_206F_200B_202E_206D_202C_202E_202C_202E_202B_200D_202A_202B_202E_206C_206C_200F_202E_206B_206D_202E(IAddonLifecycle P_0, AddonEvent P_1, IEnumerable<string> P_2, IAddonLifecycle.AddonEventDelegate P_3) - { - P_0.UnregisterListener(P_1, P_2, P_3); - } - - static void _200D_200B_206D_200E_206C_200B_206C_206D_200E_200C_200E_206E_200E_206D_206C_202C_200E_206A_206A_202E_202B_202B_202C_202C_206B_202B_206A_200B_206D_200B_200F_200D_202C_202D_202E_202B_206F_200C_206F_202B_202E(ICondition P_0, ICondition.ConditionChangeDelegate P_1) - { - P_0.ConditionChange -= P_1; - } - - static object _202A_206C_206F_202E_200B_206A_206D_202C_202B_200E_200E_206E_206B_202D_206B_206E_200D_202A_202C_206B_206A_202D_200C_206D_202E_200F_202A_206B_200E_206E_202C_200F_200D_202C_206A_200E_206C_206B_202A_206D_202E() - { - return new object(); - } } diff --git a/Questionable/Questionable.Controller.GameUi/GCShopHandler.cs b/Questionable/Questionable.Controller.GameUi/GCShopHandler.cs index f2277ae..df5bad7 100644 --- a/Questionable/Questionable.Controller.GameUi/GCShopHandler.cs +++ b/Questionable/Questionable.Controller.GameUi/GCShopHandler.cs @@ -1,6 +1,4 @@ using System; -using System.Runtime.CompilerServices; -using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Plugin.Services; using LLib.Shop; using Microsoft.Extensions.Logging; @@ -44,371 +42,115 @@ internal sealed class GCShopHandler : IDisposable _objectTable = objectTable; _framework = framework; _logger = logger; - _206A_200B_200C_200F_202A_206F_202C_202A_200D_200D_200E_202A_206C_206C_206D_200F_206A_206A_206B_202A_206E_202C_200F_202B_206E_200C_202A_200D_202D_202C_206D_200C_206F_200D_206E_202B_200E_200B_206B_202A_202E(_gcShop, (EventHandler<PurchaseCompletedEventArgs>)OnPurchaseCompleted); - _202E_200B_202E_200B_200B_202A_206D_206F_202D_200F_200C_206D_206E_200D_200F_206E_202D_206F_206A_206D_206B_206E_200E_200B_200D_200D_202E_206E_206F_202A_206E_200C_206A_200B_200D_200F_200D_206F_202D_206B_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkUpdate); + _gcShop.PurchaseCompleted += OnPurchaseCompleted; + _framework.Update += OnFrameworkUpdate; } public void Dispose() { - _202E_206A_206E_206C_200F_202E_206C_200B_206B_206B_202A_206F_202B_206A_200D_202E_200D_200E_202B_206F_202C_200C_206E_206D_202B_206E_200B_206B_206C_200B_200B_202B_200C_206A_202E_206D_206A_206D_200B_206C_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkUpdate); - _202B_200D_200C_206D_206B_202B_200F_206C_200F_206A_202E_206E_206B_206A_200F_200E_202B_206B_206D_206E_206A_202B_200F_202D_202B_200D_202C_206F_200D_202C_202A_200F_202C_200B_202A_202B_202C_206A_206F_202B_202E(_gcShop, (EventHandler<PurchaseCompletedEventArgs>)OnPurchaseCompleted); + _framework.Update -= OnFrameworkUpdate; + _gcShop.PurchaseCompleted -= OnPurchaseCompleted; } - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] private void OnFrameworkUpdate(IFramework framework) { - int num = ((_206F_202D_200C_206C_206A_202C_202E_202E_200E_202D_202B_206C_202C_202A_200E_206A_200F_200B_206A_200D_200C_202E_206A_206C_200D_206C_206E_200C_202E_200B_200B_202B_202B_200E_202A_206D_206F_206A_206E_206C_202E(_objectTable) != null) ? (-1672254239) : (-1672254236)); - while (true) + if (_objectTable.LocalPlayer == null) { - int num2 = num; - int num3 = -1672254240; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + if (!_questController.IsRunning) + { + if (_state != GCShopState.Inactive) { - case 0: - HandlePurchasing(); - return; - case 1: - num = (_questController.IsRunning ? (-1672254233) : (-1672254232)); - break; - case 4: - return; - case 2: - return; - case 7: - CheckForGCPurchase(); - num = ((_state != GCShopState.Purchasing) ? (-1672254234) : (-1672254240)); - break; - case 10: Reset(); - num = -1672254238; - break; - case 8: - num = ((_state == GCShopState.Inactive) ? (-1672254238) : (-1672254230)); - break; - case 5: - return; - case 9: - num = -1672254236; - break; - case 6: - num = ((_state != GCShopState.Completed) ? (-1672254235) : (-1672254237)); - break; - case 3: - _200B_206A_206D_206D_206F_200E_200E_202E_200B_200E_206A_200E_206D_202A_206C_202E_206C_206D_200D_206F_200B_206C_200C_200E_200E_206A_200B_202B_202A_200B_206A_200D_206D_200F_202B_200B_200B_200E_202A_206D_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-314267187), Array.Empty<object>()); - _state = GCShopState.Inactive; - _lastActionMs = 0L; - num = -1672254235; - break; } + return; + } + CheckForGCPurchase(); + if (_state == GCShopState.Purchasing) + { + HandlePurchasing(); + } + else if (_state == GCShopState.Completed) + { + _logger.LogDebug("GC shop purchase completed!"); + _state = GCShopState.Inactive; + _lastActionMs = 0L; } } - [MethodImpl(MethodImplOptions.NoInlining)] private void CheckForGCPurchase() { QuestController.QuestProgress currentQuest = _questController.CurrentQuest; - int num = ((currentQuest != null) ? (-837261037) : (-837261044)); - GCPurchaseInfo gCPurchaseInfo = default(GCPurchaseInfo); - while (true) + if (currentQuest == null) { - int num2 = num; - int num3 = -837261053; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (_currentPurchase != null) { - case 13: - _currentPurchase = gCPurchaseInfo; - _purchaseCompletedThisStep = false; - num = -837261041; - break; - case 15: - num = ((_currentPurchase == null) ? (-837261054) : (-837261055)); - break; - case 8: - return; - case 2: Reset(); - num = -837261054; - break; - case 6: - num = ((_currentPurchase == gCPurchaseInfo) ? (-837261041) : (-837261042)); - break; - case 10: - num = (_purchaseCompletedThisStep ? (-837261046) : (-837261048)); - break; - case 3: - num = ((!_200C_200C_202E_200F_202A_206B_206B_206F_202B_206A_202D_206F_200D_206B_202E_202A_200D_206C_206E_206B_206C_200D_206C_200B_206F_202B_200B_202A_206C_202B_200F_206B_202C_200F_206D_200F_206B_200D_200E_200F_202E(_gcShop)) ? (-837261045) : (-837261043)); - break; - case 0: - num = -837261044; - break; - case 7: + } + return; + } + GCPurchaseInfo gCPurchaseInfo = (currentQuest.Quest.FindSequence(currentQuest.Sequence)?.FindStep(currentQuest.Step))?.GCPurchase; + if (gCPurchaseInfo == null) + { + if (_currentPurchase != null) + { _currentPurchase = null; _purchaseCompletedThisStep = false; - num = -837261056; - break; - case 14: - _200B_206A_206D_206D_206F_200E_200E_202E_200B_200E_206A_200E_206D_202A_206C_202E_206C_206D_200D_206F_200B_206C_200C_200E_200E_206A_200B_202B_202A_200B_206A_200D_206D_200F_202B_200B_200B_200E_202A_206D_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1787866068), new object[3] - { - currentQuest.Quest.Id, - currentQuest.Sequence, - currentQuest.Step - }); - num = -837261045; - break; - case 1: - return; - case 12: - num = ((!_200C_200C_202E_200F_202A_206B_206B_206F_202B_206A_202D_206F_200D_206B_202E_202A_200D_206C_206E_206B_206C_200D_206C_200B_206F_202B_200B_202A_206C_202B_200F_206B_202C_200F_206D_200F_206B_200D_200E_200F_202E(_gcShop)) ? (-837261046) : (-837261049)); - break; - case 16: - { - QuestSequence? questSequence = currentQuest.Quest.FindSequence(currentQuest.Sequence); - QuestStep obj = ((questSequence != null) ? _206D_202A_200B_206B_206A_202E_202D_200B_206B_206A_200C_200B_200E_206C_202B_202B_200B_206F_200B_202A_202D_202B_206E_206A_202B_202C_200C_202B_200B_200B_202C_202E_202C_202E_202A_200C_206D_202E_200B_200C_202E(questSequence, currentQuest.Step) : null); - gCPurchaseInfo = ((obj != null) ? _202E_206F_206D_202E_206B_206F_206B_202A_200E_206D_202B_202A_206C_206B_206E_206A_200B_206F_202B_200B_200B_202A_202B_200E_200F_206A_206C_206D_200E_202C_202B_202E_200E_200C_206D_206E_206B_200B_200B_200F_202E(obj) : null); - num = ((gCPurchaseInfo != null) ? (-837261051) : (-837261050)); - break; } - case 11: - _200F_202B_206A_200C_200B_200E_200B_202E_202D_200E_202A_200C_200C_200D_202E_200C_200C_200F_206F_200B_200C_206F_206A_202E_202E_200D_200D_206F_202C_200D_206C_202B_206A_206C_206A_200D_202C_200E_206A_206A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-478138400), new object[1] { _206D_206B_200F_206B_200B_200D_202B_206D_202B_200C_202A_206F_206F_200D_202A_206E_202E_206C_206F_202A_200E_200E_202E_200F_200C_206E_202C_206A_206B_202C_206D_200B_202B_206B_202C_206F_206C_202D_206A_206F_202E(gCPurchaseInfo) }); + if (_gcShop.IsOpen) + { + _logger.LogDebug("GC shop is open but current step has no GCPurchase. Quest={QuestId}, Seq={Sequence}, Step={Step}", currentQuest.Quest.Id, currentQuest.Sequence, currentQuest.Step); + } + } + else + { + if (_currentPurchase != gCPurchaseInfo) + { + _currentPurchase = gCPurchaseInfo; + _purchaseCompletedThisStep = false; + } + if (_gcShop.IsOpen && _state == GCShopState.Inactive && !_purchaseCompletedThisStep) + { + _logger.LogInformation("GC shop is open. Starting purchase of item {ItemId}.", gCPurchaseInfo.ItemId); _state = GCShopState.Purchasing; - num = -837261046; - break; - case 4: - num = ((_state != GCShopState.Inactive) ? (-837261046) : (-837261047)); - break; - case 5: - num = ((_currentPurchase == null) ? (-837261056) : (-837261052)); - break; - case 9: - return; } } } private void HandlePurchasing() { - int num = ((!_200C_200C_202E_200F_202A_206B_206B_206F_202B_206A_202D_206F_200D_206B_202E_202A_200D_206C_206E_206B_206C_200D_206C_200B_206F_202B_200B_202A_206C_202B_200F_206B_202C_200F_206D_200F_206B_200D_200E_200F_202E(_gcShop)) ? 252931591 : 252931585); - while (true) + if (_gcShop.IsOpen && _currentPurchase != null && Environment.TickCount64 - _lastActionMs >= 500) { - int num2 = num; - int num3 = 252931587; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (!_gcShop.IsPurchaseInProgress) { - case 0: - _200C_206B_202A_202C_206B_202C_200B_202B_200B_200E_206E_206F_206F_202D_200F_202B_206F_206C_200F_200F_200D_200D_202A_202A_206A_202E_200D_200B_202E_206C_206D_200D_202D_202C_202A_206E_206A_202B_206D_206C_202E(_gcShop, _206D_206B_200F_206B_200B_200D_202B_206D_202B_200C_202A_206F_206F_200D_202A_206E_202E_206C_206F_202A_200E_200E_202E_200F_200C_206E_202C_206A_206B_202C_206D_200B_202B_206B_202C_206F_206C_202D_206A_206F_202E(_currentPurchase), _200C_206E_202B_206A_202E_206F_202D_202A_206C_200D_202A_206C_200C_200C_206A_200B_202E_200C_206A_206D_206C_200B_200F_200B_202A_200B_202D_202A_200D_202B_202D_206A_202C_206E_206D_202D_202D_200C_206C_206D_202E(_currentPurchase), _202C_202A_200D_202D_202B_200E_202C_200D_200C_202D_206B_206F_200C_200E_200B_202B_206F_206E_206B_206E_202C_202D_202C_200D_206A_200E_202B_202C_202E_200C_206C_202B_206C_200F_200B_200B_206D_202D_202E_202E_202E(_currentPurchase), 1); - _lastActionMs = _206A_200B_202B_202A_206F_206B_206E_200E_206C_200C_202C_200E_206C_206B_206E_202B_200B_200B_206C_206B_206A_202B_206A_202B_202D_206B_200E_206E_202D_206B_200E_206B_200C_202C_200F_200F_206B_202C_206A_200C_202E(); - num = 252931586; - break; - case 5: - num = ((_206A_200B_202B_202A_206F_206B_206E_200E_206C_200C_202C_200E_206C_206B_206E_202B_200B_200B_206C_206B_206A_202B_206A_202B_202D_206B_200E_206E_202D_206B_200E_206B_200C_202C_200F_200F_206B_202C_206A_200C_202E() - _lastActionMs >= 500) ? 252931588 : 252931584); - break; - case 3: - return; - case 7: - num = (_200E_206B_200F_206C_202A_202C_200B_202E_202B_202A_202D_206F_200B_206C_202C_206F_206E_206A_206F_202B_200B_206B_200D_202B_202E_200C_200D_202A_202A_206E_206C_202B_206D_206A_200F_200D_202D_200C_200F_206C_202E(_gcShop) ? 252931586 : 252931587); - break; - case 6: - num = 252931585; - break; - case 2: - num = ((_currentPurchase != null) ? 252931590 : 252931591); - break; - case 1: - _202D_206C_206A_200E_206C_202E_202D_202C_200D_200D_202C_206E_202E_200B_200E_206A_206F_206E_202C_206C_202C_202A_200C_202A_200C_206E_200B_206F_206F_206A_206B_206A_206E_200F_202D_206E_202E_206F_200F_206F_202E(_gcShop); - return; - case 4: - return; + _gcShop.StartPurchase(_currentPurchase.ItemId, _currentPurchase.RankTab, _currentPurchase.CategoryTab, 1); + _lastActionMs = Environment.TickCount64; } + _gcShop.ProcessPurchase(); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void OnPurchaseCompleted(object? sender, PurchaseCompletedEventArgs e) { - int num = ((_state != GCShopState.Purchasing) ? 191751636 : 191751642); - while (true) + if (_state == GCShopState.Purchasing && _currentPurchase != null && _questController.IsRunning && e.Success && e.ItemId == _currentPurchase.ItemId) { - int num2 = num; - int num3 = 191751644; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 8: - return; - case 6: - num = ((_currentPurchase != null) ? 191751641 : 191751636); - break; - case 1: - num = ((!_202E_200D_202E_206C_206C_202B_206D_202C_206F_202E_206A_206B_200F_206F_206C_206C_206C_206A_200E_206B_206E_206D_206C_202A_202D_202A_202A_206D_202B_200B_206A_206F_200F_206D_200B_206C_202E_202B_200D_202E_202E(e)) ? 191751646 : 191751640); - break; - case 4: - num = ((_200E_202D_206A_200B_206C_206A_206A_202A_200B_202E_200B_206D_200F_200E_202A_202B_206D_202A_202A_200F_206A_206B_206B_206F_206A_206D_202C_206E_200D_202B_200F_206A_200B_202C_202C_206D_202D_200D_200D_202D_202E(e) != _206D_206B_200F_206B_200B_200D_202B_206D_202B_200C_202A_206F_206F_200D_202A_206E_202E_206C_206F_202A_200E_200E_202E_200F_200C_206E_202C_206A_206B_202C_206D_200B_202B_206B_202C_206F_206C_202D_206A_206F_202E(_currentPurchase)) ? 191751646 : 191751643); - break; - case 7: - _200F_202B_206A_200C_200B_200E_200B_202E_202D_200E_202A_200C_200C_200D_202E_200C_200C_200F_206F_200B_200C_206F_206A_202E_202E_200D_200D_206F_202C_200D_206C_202B_206A_206C_206A_200D_202C_200E_206A_206A_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(134659059), new object[1] { _200E_202D_206A_200B_206C_206A_206A_202A_200B_202E_200B_206D_200F_200E_202A_202B_206D_202A_202A_200F_206A_206B_206B_206F_206A_206D_202C_206E_200D_202B_200F_206A_200B_202C_202C_206D_202D_200D_200D_202D_202E(e) }); - _200B_200B_202C_206F_202E_206C_206F_206C_206C_202A_200E_202B_206D_200F_200D_202D_200D_200F_202C_200B_202D_206B_200C_200F_206B_206A_206C_206A_206E_202C_202D_206C_206A_206A_206C_206B_202D_206B_200F_202B_202E(_gcShop); - _purchaseCompletedThisStep = true; - _state = GCShopState.Completed; - num = 191751646; - break; - case 2: - return; - case 5: - num = (_questController.IsRunning ? 191751645 : 191751647); - break; - case 0: - num = 191751642; - break; - case 3: - return; - } + _logger.LogInformation("GC purchase of item {ItemId} completed successfully", e.ItemId); + _gcShop.CloseShop(); + _purchaseCompletedThisStep = true; + _state = GCShopState.Completed; } } private void Reset() { - int num = ((!_200E_206B_200F_206C_202A_202C_200B_202E_202B_202A_202D_206F_200B_206C_202C_206F_206E_206A_206F_202B_200B_206B_200D_202B_202E_200C_200D_202A_202A_206E_206C_202B_206D_206A_200F_200D_202D_200C_200F_206C_202E(_gcShop)) ? (-1390147797) : (-1390147798)); - while (true) + if (_gcShop.IsPurchaseInProgress) { - int num2 = num; - int num3 = -1390147797; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -1390147798; - break; - case 1: - _200C_206B_206A_202D_206D_206F_206A_202B_202D_200D_202C_202A_200C_206A_200E_202C_206F_206B_206E_202E_200F_200F_202C_206F_206F_202E_202B_202C_206B_200C_202B_206A_206E_202B_200D_202B_202E_206E_200E_202E_202E(_gcShop); - num = -1390147797; - break; - case 0: - _state = GCShopState.Inactive; - _currentPurchase = null; - _lastActionMs = 0L; - _purchaseCompletedThisStep = false; - return; - } + _gcShop.CancelPurchase(); } - } - - static void _206A_200B_200C_200F_202A_206F_202C_202A_200D_200D_200E_202A_206C_206C_206D_200F_206A_206A_206B_202A_206E_202C_200F_202B_206E_200C_202A_200D_202D_202C_206D_200C_206F_200D_206E_202B_200E_200B_206B_202A_202E(GrandCompanyShop P_0, EventHandler<PurchaseCompletedEventArgs> P_1) - { - P_0.PurchaseCompleted += P_1; - } - - static void _202E_200B_202E_200B_200B_202A_206D_206F_202D_200F_200C_206D_206E_200D_200F_206E_202D_206F_206A_206D_206B_206E_200E_200B_200D_200D_202E_206E_206F_202A_206E_200C_206A_200B_200D_200F_200D_206F_202D_206B_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update += P_1; - } - - static void _202E_206A_206E_206C_200F_202E_206C_200B_206B_206B_202A_206F_202B_206A_200D_202E_200D_200E_202B_206F_202C_200C_206E_206D_202B_206E_200B_206B_206C_200B_200B_202B_200C_206A_202E_206D_206A_206D_200B_206C_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update -= P_1; - } - - static void _202B_200D_200C_206D_206B_202B_200F_206C_200F_206A_202E_206E_206B_206A_200F_200E_202B_206B_206D_206E_206A_202B_200F_202D_202B_200D_202C_206F_200D_202C_202A_200F_202C_200B_202A_202B_202C_206A_206F_202B_202E(GrandCompanyShop P_0, EventHandler<PurchaseCompletedEventArgs> P_1) - { - P_0.PurchaseCompleted -= P_1; - } - - static IPlayerCharacter _206F_202D_200C_206C_206A_202C_202E_202E_200E_202D_202B_206C_202C_202A_200E_206A_200F_200B_206A_200D_200C_202E_206A_206C_200D_206C_206E_200C_202E_200B_200B_202B_202B_200E_202A_206D_206F_206A_206E_206C_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static void _200B_206A_206D_206D_206F_200E_200E_202E_200B_200E_206A_200E_206D_202A_206C_202E_206C_206D_200D_206F_200B_206C_200C_200E_200E_206A_200B_202B_202A_200B_206A_200D_206D_200F_202B_200B_200B_200E_202A_206D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static QuestStep _206D_202A_200B_206B_206A_202E_202D_200B_206B_206A_200C_200B_200E_206C_202B_202B_200B_206F_200B_202A_202D_202B_206E_206A_202B_202C_200C_202B_200B_200B_202C_202E_202C_202E_202A_200C_206D_202E_200B_200C_202E(QuestSequence P_0, int P_1) - { - return P_0.FindStep(P_1); - } - - static GCPurchaseInfo _202E_206F_206D_202E_206B_206F_206B_202A_200E_206D_202B_202A_206C_206B_206E_206A_200B_206F_202B_200B_200B_202A_202B_200E_200F_206A_206C_206D_200E_202C_202B_202E_200E_200C_206D_206E_206B_200B_200B_200F_202E(QuestStep P_0) - { - return P_0.GCPurchase; - } - - static bool _200C_200C_202E_200F_202A_206B_206B_206F_202B_206A_202D_206F_200D_206B_202E_202A_200D_206C_206E_206B_206C_200D_206C_200B_206F_202B_200B_202A_206C_202B_200F_206B_202C_200F_206D_200F_206B_200D_200E_200F_202E(GrandCompanyShop P_0) - { - return P_0.IsOpen; - } - - static uint _206D_206B_200F_206B_200B_200D_202B_206D_202B_200C_202A_206F_206F_200D_202A_206E_202E_206C_206F_202A_200E_200E_202E_200F_200C_206E_202C_206A_206B_202C_206D_200B_202B_206B_202C_206F_206C_202D_206A_206F_202E(GCPurchaseInfo P_0) - { - return P_0.ItemId; - } - - static void _200F_202B_206A_200C_200B_200E_200B_202E_202D_200E_202A_200C_200C_200D_202E_200C_200C_200F_206F_200B_200C_206F_206A_202E_202E_200D_200D_206F_202C_200D_206C_202B_206A_206C_206A_200D_202C_200E_206A_206A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static long _206A_200B_202B_202A_206F_206B_206E_200E_206C_200C_202C_200E_206C_206B_206E_202B_200B_200B_206C_206B_206A_202B_206A_202B_202D_206B_200E_206E_202D_206B_200E_206B_200C_202C_200F_200F_206B_202C_206A_200C_202E() - { - return Environment.TickCount64; - } - - static bool _200E_206B_200F_206C_202A_202C_200B_202E_202B_202A_202D_206F_200B_206C_202C_206F_206E_206A_206F_202B_200B_206B_200D_202B_202E_200C_200D_202A_202A_206E_206C_202B_206D_206A_200F_200D_202D_200C_200F_206C_202E(GrandCompanyShop P_0) - { - return P_0.IsPurchaseInProgress; - } - - static int _200C_206E_202B_206A_202E_206F_202D_202A_206C_200D_202A_206C_200C_200C_206A_200B_202E_200C_206A_206D_206C_200B_200F_200B_202A_200B_202D_202A_200D_202B_202D_206A_202C_206E_206D_202D_202D_200C_206C_206D_202E(GCPurchaseInfo P_0) - { - return P_0.RankTab; - } - - static int _202C_202A_200D_202D_202B_200E_202C_200D_200C_202D_206B_206F_200C_200E_200B_202B_206F_206E_206B_206E_202C_202D_202C_200D_206A_200E_202B_202C_202E_200C_206C_202B_206C_200F_200B_200B_206D_202D_202E_202E_202E(GCPurchaseInfo P_0) - { - return P_0.CategoryTab; - } - - static bool _200C_206B_202A_202C_206B_202C_200B_202B_200B_200E_206E_206F_206F_202D_200F_202B_206F_206C_200F_200F_200D_200D_202A_202A_206A_202E_200D_200B_202E_206C_206D_200D_202D_202C_202A_206E_206A_202B_206D_206C_202E(GrandCompanyShop P_0, uint P_1, int P_2, int P_3, int P_4) - { - return P_0.StartPurchase(P_1, P_2, P_3, P_4); - } - - static bool _202D_206C_206A_200E_206C_202E_202D_202C_200D_200D_202C_206E_202E_200B_200E_206A_206F_206E_202C_206C_202C_202A_200C_202A_200C_206E_200B_206F_206F_206A_206B_206A_206E_200F_202D_206E_202E_206F_200F_206F_202E(GrandCompanyShop P_0) - { - return P_0.ProcessPurchase(); - } - - static bool _202E_200D_202E_206C_206C_202B_206D_202C_206F_202E_206A_206B_200F_206F_206C_206C_206C_206A_200E_206B_206E_206D_206C_202A_202D_202A_202A_206D_202B_200B_206A_206F_200F_206D_200B_206C_202E_202B_200D_202E_202E(PurchaseCompletedEventArgs P_0) - { - return P_0.Success; - } - - static uint _200E_202D_206A_200B_206C_206A_206A_202A_200B_202E_200B_206D_200F_200E_202A_202B_206D_202A_202A_200F_206A_206B_206B_206F_206A_206D_202C_206E_200D_202B_200F_206A_200B_202C_202C_206D_202D_200D_200D_202D_202E(PurchaseCompletedEventArgs P_0) - { - return P_0.ItemId; - } - - static void _200B_200B_202C_206F_202E_206C_206F_206C_206C_202A_200E_202B_206D_200F_200D_202D_200D_200F_202C_200B_202D_206B_200C_200F_206B_206A_206C_206A_206E_202C_202D_206C_206A_206A_206C_206B_202D_206B_200F_202B_202E(GrandCompanyShop P_0) - { - P_0.CloseShop(); - } - - static void _200C_206B_206A_202D_206D_206F_206A_202B_202D_200D_202C_202A_200C_206A_200E_202C_206F_206B_206E_202E_200F_200F_202C_206F_206F_202E_202B_202C_206B_200C_202B_206A_206E_202B_200D_202B_202E_206E_200E_202E_202E(GrandCompanyShop P_0) - { - P_0.CancelPurchase(); + _state = GCShopState.Inactive; + _currentPurchase = null; + _lastActionMs = 0L; + _purchaseCompletedThisStep = false; } } diff --git a/Questionable/Questionable.Controller.GameUi/HelpUiController.cs b/Questionable/Questionable.Controller.GameUi/HelpUiController.cs index e4398e4..e649e98 100644 --- a/Questionable/Questionable.Controller.GameUi/HelpUiController.cs +++ b/Questionable/Questionable.Controller.GameUi/HelpUiController.cs @@ -1,15 +1,10 @@ using System; -using System.Runtime.CompilerServices; -using System.Threading; -using System.Threading.Tasks; using Dalamud.Game.Addon.Lifecycle; using Dalamud.Game.Addon.Lifecycle.AddonArgTypes; -using Dalamud.Game.NativeWrapper; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Component.GUI; using LLib.GameUI; using Microsoft.Extensions.Logging; -using Questionable.Model.Questing; namespace Questionable.Controller.GameUi; @@ -25,7 +20,6 @@ internal sealed class HelpUiController : IDisposable private readonly ILogger<HelpUiController> _logger; - [MethodImpl(MethodImplOptions.NoInlining)] public HelpUiController(QuestController questController, IAddonLifecycle addonLifecycle, IGameGui gameGui, IFramework framework, ILogger<HelpUiController> logger) { _questController = questController; @@ -34,419 +28,157 @@ internal sealed class HelpUiController : IDisposable _framework = framework; _logger = logger; _questController.AutomationTypeChanged += CloseHelpWindowsWhenStartingQuests; - _206B_206F_206A_206D_206D_206D_200D_202C_202B_200E_206F_202E_206C_200F_206D_202E_206C_206F_202A_206E_206A_202E_200F_200F_206B_200B_206C_206B_200E_206A_200E_206A_202D_200D_200B_206D_202A_206E_202B_200E_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(475712939), (IAddonLifecycle.AddonEventDelegate)UnendingCodexPostSetup); - _206B_206F_206A_206D_206D_206D_200D_202C_202B_200E_206F_202E_206C_200F_206D_202E_206C_206F_202A_206E_206A_202E_200F_200F_206B_200B_206C_206B_200E_206A_200E_206A_202D_200D_200B_206D_202A_206E_202B_200E_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1875325540), (IAddonLifecycle.AddonEventDelegate)ContentsTutorialPostSetup); - _206B_206F_206A_206D_206D_206D_200D_202C_202B_200E_206F_202E_206C_200F_206D_202E_206C_206F_202A_206E_206A_202E_200F_200F_206B_200B_206C_206B_200E_206A_200E_206A_202D_200D_200B_206D_202A_206E_202B_200E_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(539331049), (IAddonLifecycle.AddonEventDelegate)MultipleHelpWindowPostSetup); - _206B_206F_206A_206D_206D_206D_200D_202C_202B_200E_206F_202E_206C_200F_206D_202E_206C_206F_202A_206E_206A_202E_200F_200F_206B_200B_206C_206B_200E_206A_200E_206A_202D_200D_200B_206D_202A_206E_202B_200E_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-923307026), (IAddonLifecycle.AddonEventDelegate)JobHudNoticePostSetup); - _206B_206F_206A_206D_206D_206D_200D_202C_202B_200E_206F_202E_206C_200F_206D_202E_206C_206F_202A_206E_206A_202E_200F_200F_206B_200B_206C_206B_200E_206A_200E_206A_202D_200D_200B_206D_202A_206E_202B_200E_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(891874771), (IAddonLifecycle.AddonEventDelegate)GuidePostSetup); - _206B_206F_206A_206D_206D_206D_200D_202C_202B_200E_206F_202E_206C_200F_206D_202E_206C_206F_202A_206E_206A_202E_200F_200F_206B_200B_206C_206B_200E_206A_200E_206A_202D_200D_200B_206D_202A_206E_202B_200E_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2059724302), (IAddonLifecycle.AddonEventDelegate)EventTutorialPostSetup); - _206B_206F_206A_206D_206D_206D_200D_202C_202B_200E_206F_202E_206C_200F_206D_202E_206C_206F_202A_206E_206A_202E_200F_200F_206B_200B_206C_206B_200E_206A_200E_206A_202D_200D_200B_206D_202A_206E_202B_200E_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1877366658), (IAddonLifecycle.AddonEventDelegate)DescriptionPostSetup); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "AkatsukiNote", UnendingCodexPostSetup); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "ContentsTutorial", ContentsTutorialPostSetup); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "MultipleHelpWindow", MultipleHelpWindowPostSetup); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "JobHudNotice", JobHudNoticePostSetup); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "Guide", GuidePostSetup); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "EventTutorial", EventTutorialPostSetup); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "Description", DescriptionPostSetup); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void CloseHelpWindowsWhenStartingQuests(object sender, QuestController.EAutomationType e) { - int num = ((e != QuestController.EAutomationType.Manual) ? 153660423 : 153660419); - AtkUnitBase* addonPtr4 = default(AtkUnitBase*); - AtkUnitBase* addonPtr2 = default(AtkUnitBase*); - AtkUnitBase* addonPtr3 = default(AtkUnitBase*); - AtkUnitBase* addonPtr = default(AtkUnitBase*); - while (true) + if (e != QuestController.EAutomationType.Manual) { - int num2 = num; - int num3 = 153660420; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (_gameGui.TryGetAddonByName<AtkUnitBase>("Guide", out var addonPtr)) { - case 3: - num = ((!_gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-696336610), out addonPtr4)) ? 153660418 : 153660417); - break; - case 5: - _206E_202E_206B_206E_202A_206A_206F_200E_202E_200B_202C_200F_200D_200E_206D_200C_202A_202E_202A_202D_200D_202C_202D_200E_200D_202A_200C_202C_206B_200B_206E_202B_200E_200E_202C_202E_206A_202A_206E_206A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-889278169), Array.Empty<object>()); - GuidePostSetup(addonPtr4); - num = 153660418; - break; - case 8: - num = ((!_gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(535644183), out addonPtr2)) ? 153660422 : 153660429); - break; - case 7: - return; - case 2: - return; - case 4: - _206E_202E_206B_206E_202A_206A_206F_200E_202E_200B_202C_200F_200D_200E_206D_200C_202A_202E_202A_202D_200D_202C_202D_200E_200D_202A_200C_202C_206B_200B_206E_202B_200E_200E_202C_202E_206A_202A_206E_206A_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2009840112), Array.Empty<object>()); - EventTutorialPostSetup(addonPtr3); - num = 153660421; - break; - case 6: - num = ((!_gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1259257238), out addonPtr3)) ? 153660421 : 153660416); - break; - case 1: - num = ((!_gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1889051347), out addonPtr)) ? 153660428 : 153660430); - break; - case 9: - _206E_202E_206B_206E_202A_206A_206F_200E_202E_200B_202C_200F_200D_200E_206D_200C_202A_202E_202A_202D_200D_202C_202D_200E_200D_202A_200C_202C_206B_200B_206E_202B_200E_200E_202C_202E_206A_202A_206E_206A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-829695307), Array.Empty<object>()); - JobHudNoticePostSetup(addonPtr2); - num = 153660422; - break; - case 10: - _206E_202E_206B_206E_202A_206A_206F_200E_202E_200B_202C_200F_200D_200E_206D_200C_202A_202E_202A_202D_200D_202C_202D_200E_200D_202A_200C_202C_206B_200B_206E_202B_200E_200E_202C_202E_206A_202A_206E_206A_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-574086776), Array.Empty<object>()); - ContentsTutorialPostSetup(addonPtr); - num = 153660428; - break; - case 0: - num = 153660419; - break; + _logger.LogDebug("Guide window is open"); + GuidePostSetup(addonPtr); + } + if (_gameGui.TryGetAddonByName<AtkUnitBase>("EventTutorial", out var addonPtr2)) + { + _logger.LogDebug("EventTutorial window is open"); + EventTutorialPostSetup(addonPtr2); + } + if (_gameGui.TryGetAddonByName<AtkUnitBase>("ContentsTutorial", out var addonPtr3)) + { + _logger.LogDebug("ContentsTutorial window is open"); + ContentsTutorialPostSetup(addonPtr3); + } + if (_gameGui.TryGetAddonByName<AtkUnitBase>("JobHudNotice", out var addonPtr4)) + { + _logger.LogDebug("JobHudNotice window is open"); + JobHudNoticePostSetup(addonPtr4); } } } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void UnendingCodexPostSetup(AddonEvent type, AddonArgs args) { - QuestController.QuestProgress? startedQuest = _questController.StartedQuest; - ushort? num = ((startedQuest != null) ? new ushort?(_202E_200F_206D_200E_202D_202E_200F_200B_200F_206E_202E_202D_206F_202D_206C_202B_202D_200F_206A_202B_200B_206B_202A_206C_200C_200D_202C_200B_202E_200D_202C_206A_206E_200D_202D_202D_206C_202E_202C_206F_202E(startedQuest.Quest.Id)) : ((ushort?)null)); - int num2 = (num.HasValue ? (-1404777382) : (-1404777383)); - while (true) + if (_questController.StartedQuest?.Quest.Id.Value == 4526) { - int num3 = num2; - int num4 = -1404777381; - int num5 = num3; - int? obj; - switch ((num5 | num4) - (num5 & num4)) - { - case 1: - obj = num.GetValueOrDefault(); - goto IL_0099; - case 3: - return; - case 0: - num2 = -1404777383; - break; - case 4: - { - _206E_202E_206B_206E_202A_206A_206F_200E_202E_200B_202C_200F_200D_200E_206D_200C_202A_202E_202A_202D_200D_202C_202D_200E_200D_202A_200C_202C_206B_200B_206E_202B_200E_200E_202C_202E_206A_202A_206E_206A_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(24407879), Array.Empty<object>()); - AtkUnitBase* address = (AtkUnitBase*)_206E_206A_206A_206F_202B_202B_202B_206B_206B_206A_200B_202A_206E_206B_206F_200E_200E_206E_206C_202A_206A_200D_202C_206A_206B_200F_206F_202B_206E_200F_202C_200E_202B_206C_206A_202C_202B_200B_202B_206E_202E(args).Address; - address->FireCallbackInt(-2); - num2 = -1404777384; - break; - } - case 2: - { - obj = null; - goto IL_0099; - } - IL_0099: - num2 = ((obj != 4526) ? (-1404777384) : (-1404777377)); - break; - } + _logger.LogDebug("Closing Unending Codex"); + AtkUnitBase* address = (AtkUnitBase*)args.Addon.Address; + address->FireCallbackInt(-2); } } private unsafe void ContentsTutorialPostSetup(AddonEvent type, AddonArgs args) { - QuestController.QuestProgress? startedQuest = _questController.StartedQuest; - ushort? num = ((startedQuest != null) ? new ushort?(_202E_200F_206D_200E_202D_202E_200F_200B_200F_206E_202E_202D_206F_202D_206C_202B_202D_200F_206A_202B_200B_206B_202A_206C_200C_200D_202C_200B_202E_200D_202C_206A_206E_200D_202D_202D_206C_202E_202C_206F_202E(startedQuest.Quest.Id)) : ((ushort?)null)); - int num2 = ((!num.HasValue) ? (-763031592) : (-763031600)); - bool flag = default(bool); - ushort valueOrDefault = default(ushort); - while (true) + bool flag; + switch (_questController.StartedQuest?.Quest.Id.Value) { - int num3 = num2; - int num4 = -763031592; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 4: - num2 = -763031600; - break; - case 5: - flag = true; - num2 = -763031589; - break; - case 1: - num2 = ((valueOrDefault == 3872) ? (-763031587) : (-763031586)); - break; - case 8: - valueOrDefault = num.GetValueOrDefault(); - num2 = ((valueOrDefault == 245) ? (-763031587) : (-763031591)); - break; - case 3: - num2 = ((!flag) ? (-763031585) : (-763031590)); - break; - case 7: - return; - case 0: - flag = false; - num2 = -763031589; - break; - case 2: - ContentsTutorialPostSetup((AtkUnitBase*)_206E_206A_206A_206F_202B_202B_202B_206B_206B_206A_200B_202A_206E_206B_206F_200E_200E_206E_206C_202A_206A_200D_202C_206A_206B_200F_206F_202B_206E_200F_202C_200E_202B_206C_206A_202C_202B_200B_202B_206E_202E(args).Address); - num2 = -763031585; - break; - case 6: - num2 = ((valueOrDefault != 5253) ? (-763031592) : (-763031587)); - break; - } + case 245: + case 3872: + case 5253: + flag = true; + break; + default: + flag = false; + break; + } + if (flag) + { + ContentsTutorialPostSetup((AtkUnitBase*)args.Addon.Address); } } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void ContentsTutorialPostSetup(AtkUnitBase* addon) { - _206E_202E_206B_206E_202A_206A_206F_200E_202E_200B_202C_200F_200D_200E_206D_200C_202A_202E_202A_202D_200D_202C_202D_200E_200D_202A_200C_202C_206B_200B_206E_202B_200E_200E_202C_202E_206A_202A_206E_206A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(997030499), Array.Empty<object>()); + _logger.LogDebug("Closing ContentsTutorial"); addon->FireCallbackInt(13); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void MultipleHelpWindowPostSetup(AddonEvent type, AddonArgs args) { - QuestController.QuestProgress? startedQuest = _questController.StartedQuest; - ushort? num = ((startedQuest != null) ? new ushort?(_202E_200F_206D_200E_202D_202E_200F_200B_200F_206E_202E_202D_206F_202D_206C_202B_202D_200F_206A_202B_200B_206B_202A_206C_200C_200D_202C_200B_202E_200D_202C_206A_206E_200D_202D_202D_206C_202E_202C_206F_202E(startedQuest.Quest.Id)) : ((ushort?)null)); - int num2 = (num.HasValue ? 841439404 : 841439402); - while (true) + if (_questController.StartedQuest?.Quest.Id.Value == 245) { - int num3 = num2; - int num4 = 841439400; - int num5 = num3; - int? obj; - switch ((num5 | num4) - (num5 & num4)) - { - case 4: - obj = num.GetValueOrDefault(); - goto IL_0099; - case 2: - obj = null; - goto IL_0099; - case 0: - { - _206E_202E_206B_206E_202A_206A_206F_200E_202E_200B_202C_200F_200D_200E_206D_200C_202A_202E_202A_202D_200D_202C_202D_200E_200D_202A_200C_202C_206B_200B_206E_202B_200E_200E_202C_202E_206A_202A_206E_206A_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1717636655), Array.Empty<object>()); - AtkUnitBase* address = (AtkUnitBase*)_206E_206A_206A_206F_202B_202B_202B_206B_206B_206A_200B_202A_206E_206B_206F_200E_200E_206E_206C_202A_206A_200D_202C_206A_206B_200F_206F_202B_206E_200F_202C_200E_202B_206C_206A_202C_202B_200B_202B_206E_202E(args).Address; - address->FireCallbackInt(-2); - address->FireCallbackInt(-1); - num2 = 841439401; - break; - } - case 1: - return; - case 3: - { - num2 = 841439402; - break; - } - IL_0099: - num2 = ((obj != 245) ? 841439401 : 841439400); - break; - } + _logger.LogDebug("Closing MultipleHelpWindow"); + AtkUnitBase* address = (AtkUnitBase*)args.Addon.Address; + address->FireCallbackInt(-2); + address->FireCallbackInt(-1); } } private unsafe void JobHudNoticePostSetup(AddonEvent type, AddonArgs args) { - int num = (_questController.IsRunning ? (-1467614893) : (-1467614895)); - while (true) + if (_questController.IsRunning || _questController.AutomationType != QuestController.EAutomationType.Manual) { - int num2 = num; - int num3 = -1467614894; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1467614895; - break; - case 3: - num = ((_questController.AutomationType == QuestController.EAutomationType.Manual) ? (-1467614896) : (-1467614893)); - break; - case 1: - JobHudNoticePostSetup((AtkUnitBase*)_206E_206A_206A_206F_202B_202B_202B_206B_206B_206A_200B_202A_206E_206B_206F_200E_200E_206E_206C_202A_206A_200D_202C_206A_206B_200F_206F_202B_206E_200F_202C_200E_202B_206C_206A_202C_202B_200B_202B_206E_202E(args).Address); - num = -1467614896; - break; - case 2: - return; - } + JobHudNoticePostSetup((AtkUnitBase*)args.Addon.Address); } } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void JobHudNoticePostSetup(AtkUnitBase* addon) { - _206E_202E_206B_206E_202A_206A_206F_200E_202E_200B_202C_200F_200D_200E_206D_200C_202A_202E_202A_202D_200D_202C_202D_200E_200D_202A_200C_202C_206B_200B_206E_202B_200E_200E_202C_202E_206A_202A_206E_206A_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(365911133), Array.Empty<object>()); + _logger.LogDebug("Clicking the JobHudNotice window to open the relevant Guide page"); addon->FireCallbackInt(0); } private unsafe void GuidePostSetup(AddonEvent type, AddonArgs args) { - int num = (_questController.IsRunning ? 373369011 : 373369010); - while (true) + if (_questController.IsRunning || _questController.AutomationType != QuestController.EAutomationType.Manual) { - int num2 = num; - int num3 = 373369009; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 373369010; - break; - case 1: - return; - case 3: - num = ((_questController.AutomationType == QuestController.EAutomationType.Manual) ? 373369008 : 373369011); - break; - case 2: - GuidePostSetup((AtkUnitBase*)_206E_206A_206A_206F_202B_202B_202B_206B_206B_206A_200B_202A_206E_206B_206F_200E_200E_206E_206C_202A_206A_200D_202C_206A_206B_200F_206F_202B_206E_200F_202C_200E_202B_206C_206A_202C_202B_200B_202B_206E_202E(args).Address); - num = 373369008; - break; - } + GuidePostSetup((AtkUnitBase*)args.Addon.Address); } } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void GuidePostSetup(AtkUnitBase* addon) { - _206E_202E_206B_206E_202A_206A_206F_200E_202E_200B_202C_200F_200D_200E_206D_200C_202A_202E_202A_202D_200D_202C_202D_200E_200D_202A_200C_202C_206B_200B_206E_202B_200E_200E_202C_202E_206A_202A_206E_206A_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1393090876), Array.Empty<object>()); + _logger.LogDebug("Closing Guide window"); addon->FireCallbackInt(-1); } private unsafe void EventTutorialPostSetup(AddonEvent type, AddonArgs args) { - int num = (_questController.IsRunning ? (-1567711917) : (-1567711920)); - while (true) + if (!_questController.IsRunning && _questController.AutomationType == QuestController.EAutomationType.Manual) { - int num2 = num; - int num3 = -1567711918; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return; - case 2: - num = ((_questController.AutomationType == QuestController.EAutomationType.Manual) ? (-1567711918) : (-1567711917)); - break; - case 1: - _200D_206E_202D_200C_202D_206E_206C_202B_202A_206B_206E_202B_202D_206D_202E_206D_200D_206C_206A_200E_206E_200C_200D_206F_202C_200E_206F_200B_206F_200D_200E_200E_202D_206A_200B_202A_200E_200D_200D_206B_202E(_framework, (Action)([MethodImpl(MethodImplOptions.NoInlining)] () => - { - AtkUnitBase* addonPtr; - int num5 = ((!_gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1630487467), out addonPtr)) ? 912686340 : 912686341); - while (true) - { - int num6 = num5; - int num7 = 912686340; - int num8 = num6; - switch ((num8 | num7) - (num8 & num7)) - { - case 0: - return; - case 1: - EventTutorialPostSetup(addonPtr); - num5 = 912686340; - break; - case 2: - num5 = 912686341; - break; - } - } - }), default(TimeSpan), 0, default(CancellationToken)); - num = -1567711918; - break; - case 3: - num = -1567711920; - break; - } + return; } + _framework.RunOnTick(delegate + { + if (_gameGui.TryGetAddonByName<AtkUnitBase>("EventTutorial", out var addonPtr)) + { + EventTutorialPostSetup(addonPtr); + } + }); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void EventTutorialPostSetup(AtkUnitBase* addon) { - _206E_202E_206B_206E_202A_206A_206F_200E_202E_200B_202C_200F_200D_200E_206D_200C_202A_202E_202A_202D_200D_202C_202D_200E_200D_202A_200C_202C_206B_200B_206E_202B_200E_200E_202C_202E_206A_202A_206E_206A_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1936999602), Array.Empty<object>()); + _logger.LogDebug("Closing EventTutorial window"); addon->FireCallbackInt(-1); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void DescriptionPostSetup(AddonEvent type, AddonArgs args) { - int num = (_questController.IsRunning ? (-1356307906) : (-1356307905)); - while (true) + if (_questController.IsRunning || _questController.AutomationType != QuestController.EAutomationType.Manual) { - int num2 = num; - int num3 = -1356307907; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - { - _206E_202E_206B_206E_202A_206A_206F_200E_202E_200B_202C_200F_200D_200E_206D_200C_202A_202E_202A_202D_200D_202C_202D_200E_200D_202A_200C_202C_206B_200B_206E_202B_200E_200E_202C_202E_206A_202A_206E_206A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1957969933), Array.Empty<object>()); - AtkUnitBase* address = (AtkUnitBase*)_206E_206A_206A_206F_202B_202B_202B_206B_206B_206A_200B_202A_206E_206B_206F_200E_200E_206E_206C_202A_206A_200D_202C_206A_206B_200F_206F_202B_206E_200F_202C_200E_202B_206C_206A_202C_202B_200B_202B_206E_202E(args).Address; - address->FireCallbackInt(-1); - num = -1356307908; - break; - } - case 1: - return; - case 0: - num = -1356307905; - break; - case 2: - num = ((_questController.AutomationType == QuestController.EAutomationType.Manual) ? (-1356307908) : (-1356307906)); - break; - } + _logger.LogDebug("Closing Description window"); + AtkUnitBase* address = (AtkUnitBase*)args.Addon.Address; + address->FireCallbackInt(-1); } } - [MethodImpl(MethodImplOptions.NoInlining)] public void Dispose() { - _200B_200B_200F_202B_202B_206B_202E_200D_202C_206F_206C_202D_202B_206D_206D_200E_202A_202C_206C_206A_202D_200D_206C_202D_206E_202B_206B_206A_202D_200E_202C_206E_200E_206E_200E_200D_206D_200B_200C_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1877366658), (IAddonLifecycle.AddonEventDelegate)DescriptionPostSetup); - _200B_200B_200F_202B_202B_206B_202E_200D_202C_206F_206C_202D_202B_206D_206D_200E_202A_202C_206C_206A_202D_200D_206C_202D_206E_202B_206B_206A_202D_200E_202C_206E_200E_206E_200E_200D_206D_200B_200C_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-547923045), (IAddonLifecycle.AddonEventDelegate)EventTutorialPostSetup); - _200B_200B_200F_202B_202B_206B_202E_200D_202C_206F_206C_202D_202B_206D_206D_200E_202A_202C_206C_206A_202D_200D_206C_202D_206E_202B_206B_206A_202D_200E_202C_206E_200E_206E_200E_200D_206D_200B_200C_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-968492780), (IAddonLifecycle.AddonEventDelegate)GuidePostSetup); - _200B_200B_200F_202B_202B_206B_202E_200D_202C_206F_206C_202D_202B_206D_206D_200E_202A_202C_206C_206A_202D_200D_206C_202D_206E_202B_206B_206A_202D_200E_202C_206E_200E_206E_200E_200D_206D_200B_200C_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1813722758), (IAddonLifecycle.AddonEventDelegate)JobHudNoticePostSetup); - _200B_200B_200F_202B_202B_206B_202E_200D_202C_206F_206C_202D_202B_206D_206D_200E_202A_202C_206C_206A_202D_200D_206C_202D_206E_202B_206B_206A_202D_200E_202C_206E_200E_206E_200E_200D_206D_200B_200C_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(341545647), (IAddonLifecycle.AddonEventDelegate)MultipleHelpWindowPostSetup); - _200B_200B_200F_202B_202B_206B_202E_200D_202C_206F_206C_202D_202B_206D_206D_200E_202A_202C_206C_206A_202D_200D_206C_202D_206E_202B_206B_206A_202D_200E_202C_206E_200E_206E_200E_200D_206D_200B_200C_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1889051347), (IAddonLifecycle.AddonEventDelegate)ContentsTutorialPostSetup); - _200B_200B_200F_202B_202B_206B_202E_200D_202C_206F_206C_202D_202B_206D_206D_200E_202A_202C_206C_206A_202D_200D_206C_202D_206E_202B_206B_206A_202D_200E_202C_206E_200E_206E_200E_200D_206D_200B_200C_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(40702289), (IAddonLifecycle.AddonEventDelegate)UnendingCodexPostSetup); + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "Description", DescriptionPostSetup); + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "EventTutorial", EventTutorialPostSetup); + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "Guide", GuidePostSetup); + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "JobHudNotice", JobHudNoticePostSetup); + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "MultipleHelpWindow", MultipleHelpWindowPostSetup); + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "ContentsTutorial", ContentsTutorialPostSetup); + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "AkatsukiNote", UnendingCodexPostSetup); _questController.AutomationTypeChanged -= CloseHelpWindowsWhenStartingQuests; } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static void _206B_206F_206A_206D_206D_206D_200D_202C_202B_200E_206F_202E_206C_200F_206D_202E_206C_206F_202A_206E_206A_202E_200F_200F_206B_200B_206C_206B_200E_206A_200E_206A_202D_200D_200B_206D_202A_206E_202B_200E_202E(IAddonLifecycle P_0, AddonEvent P_1, string P_2, IAddonLifecycle.AddonEventDelegate P_3) - { - P_0.RegisterListener(P_1, P_2, P_3); - } - - static void _206E_202E_206B_206E_202A_206A_206F_200E_202E_200B_202C_200F_200D_200E_206D_200C_202A_202E_202A_202D_200D_202C_202D_200E_200D_202A_200C_202C_206B_200B_206E_202B_200E_200E_202C_202E_206A_202A_206E_206A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static ushort _202E_200F_206D_200E_202D_202E_200F_200B_200F_206E_202E_202D_206F_202D_206C_202B_202D_200F_206A_202B_200B_206B_202A_206C_200C_200D_202C_200B_202E_200D_202C_206A_206E_200D_202D_202D_206C_202E_202C_206F_202E(ElementId P_0) - { - return P_0.Value; - } - - static AtkUnitBasePtr _206E_206A_206A_206F_202B_202B_202B_206B_206B_206A_200B_202A_206E_206B_206F_200E_200E_206E_206C_202A_206A_200D_202C_206A_206B_200F_206F_202B_206E_200F_202C_200E_202B_206C_206A_202C_202B_200B_202B_206E_202E(AddonArgs P_0) - { - return P_0.Addon; - } - - static Task _200D_206E_202D_200C_202D_206E_206C_202B_202A_206B_206E_202B_202D_206D_202E_206D_200D_206C_206A_200E_206E_200C_200D_206F_202C_200E_206F_200B_206F_200D_200E_200E_202D_206A_200B_202A_200E_200D_200D_206B_202E(IFramework P_0, Action P_1, TimeSpan P_2, int P_3, CancellationToken P_4) - { - return P_0.RunOnTick(P_1, P_2, P_3, P_4); - } - - static void _200B_200B_200F_202B_202B_206B_202E_200D_202C_206F_206C_202D_202B_206D_206D_200E_202A_202C_206C_206A_202D_200D_206C_202D_206E_202B_206B_206A_202D_200E_202C_206E_200E_206E_200E_200D_206D_200B_200C_206B_202E(IAddonLifecycle P_0, AddonEvent P_1, string P_2, IAddonLifecycle.AddonEventDelegate P_3) - { - P_0.UnregisterListener(P_1, P_2, P_3); - } } diff --git a/Questionable/Questionable.Controller.GameUi/InteractionUiController.cs b/Questionable/Questionable.Controller.GameUi/InteractionUiController.cs index e8a6a7f..d3baaf0 100644 --- a/Questionable/Questionable.Controller.GameUi/InteractionUiController.cs +++ b/Questionable/Questionable.Controller.GameUi/InteractionUiController.cs @@ -1,17 +1,13 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using System.Text; using System.Text.RegularExpressions; using Dalamud.Game.Addon.Lifecycle; using Dalamud.Game.Addon.Lifecycle.AddonArgTypes; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.Types; -using Dalamud.Game.NativeWrapper; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game.Event; using FFXIVClientStructs.FFXIV.Client.Game.InstanceContent; @@ -20,9 +16,7 @@ using FFXIVClientStructs.FFXIV.Component.GUI; using LLib; using LLib.GameData; using LLib.GameUI; -using Lumina.Excel; using Lumina.Excel.Sheets; -using Lumina.Text.ReadOnly; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Interactions; using Questionable.Data; @@ -37,340 +31,7 @@ namespace Questionable.Controller.GameUi; internal sealed class InteractionUiController : IDisposable { - private sealed record DialogueChoiceInfo(Questionable.Model.Quest? Quest, DialogueChoice DialogueChoice) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202D_200E_202C_206B_202E_200D_206F_206F_206D_200F_200E_202B_206A_202B_202C_200B_202C_200D_202C_200D_200C_206B_200E_206C_200B_202A_200E_202B_202D_206F_206D_202B_200F_202D_200D_206E_202A_202B_200D_202E_202E(typeof(DialogueChoiceInfo).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202A_200B_200B_202C_202B_200F_202D_206F_200C_202E_206F_206F_202C_206C_206A_202A_200E_202E_200B_206E_206D_200C_200D_206A_206B_200E_206C_206C_200E_202A_200F_202C_206C_200D_200D_206D_200D_206A_206C_202C_202E(); - _200C_200C_200E_200B_206F_202C_200D_202B_202E_206D_200C_202C_200B_202A_200D_202E_200B_206C_200C_202A_202A_206C_206D_200B_200E_200D_200E_206B_202C_200E_200B_202C_200C_206F_202A_206B_206B_206E_200E_200F_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2025267953)); - _200C_200C_200E_200B_206F_202C_200D_202B_202E_206D_200C_202C_200B_202A_200D_202E_200B_206C_200C_202A_202A_206C_206D_200B_200E_200D_200E_206B_202C_200E_200B_202C_200C_206F_202A_206B_206B_206E_200E_200F_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1344697862)); - int num = ((!PrintMembers(stringBuilder)) ? (-35304262) : (-35304261)); - while (true) - { - int num2 = num; - int num3 = -35304262; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -35304261; - break; - case 0: - _200C_200E_206D_202E_206D_206F_200F_206B_206A_206A_200D_200B_206F_202E_202B_200C_202A_206D_206C_200D_206C_202A_202D_200F_206A_200C_206A_206A_200C_202E_200C_202D_206A_206C_202C_202D_200D_200F_206D_202B_202E(stringBuilder, '}'); - return _202B_202B_202C_202B_206B_200F_200F_200F_200B_200E_202D_202D_202A_202E_202C_200B_206B_206A_202A_200B_200B_206D_200F_202D_206A_202A_206D_200C_202B_200E_206A_206B_202C_200E_200B_206A_200E_202E_206D_206E_202E((object)stringBuilder); - case 1: - _200C_200E_206D_202E_206D_206F_200F_206B_206A_206A_200D_200B_206F_202E_202B_200C_202A_206D_206C_200D_206C_202A_202D_200F_206A_200C_206A_206A_200C_202E_200C_202D_206A_206C_202C_202D_200D_200F_206D_202B_202E(stringBuilder, ' '); - num = -35304262; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202D_206C_200D_206B_202E_200E_200F_202C_200C_202D_202C_202B_202D_206E_206B_202D_206D_206C_200D_206F_206E_200F_206C_200D_206A_200D_200C_206D_206D_206E_200D_202A_200D_202D_200F_200D_206A_206C_200C_206F_202E(); - _200C_200C_200E_200B_206F_202C_200D_202B_202E_206D_200C_202C_200B_202A_200D_202E_200B_206C_200C_202A_202A_206C_206D_200B_200E_200D_200E_206B_202C_200E_200B_202C_200C_206F_202A_206B_206B_206E_200E_200F_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1155335586)); - _200F_206E_200B_206C_200F_202E_202C_206A_206A_206F_206F_206E_206C_206A_202C_200D_200B_200B_200F_200E_206A_202B_200D_206D_200B_200C_206F_200C_200B_200B_206E_206C_200F_202B_206C_202E_200F_206F_200E_202B_202E(builder, (object)Quest); - _200C_200C_200E_200B_206F_202C_200D_202B_202E_206D_200C_202C_200B_202A_200D_202E_200B_206C_200C_202A_202A_206C_206D_200B_200E_200D_200E_206B_202C_200E_200B_202C_200C_206F_202A_206B_206B_206E_200E_200F_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1903054558)); - _200F_206E_200B_206C_200F_202E_202C_206A_206A_206F_206F_206E_206C_206A_202C_200D_200B_200B_200F_200E_206A_202B_200D_206D_200B_200C_206F_200C_200B_200B_206E_206C_200F_202B_206C_202E_200F_206F_200E_202B_202E(builder, (object)DialogueChoice); - return true; - } - - [CompilerGenerated] - public bool Equals(DialogueChoiceInfo? other) - { - int num = (((object)this == other) ? (-1316842306) : (-1316842311)); - while (true) - { - int num2 = num; - int num3 = -1316842307; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = ((!EqualityComparer<Questionable.Model.Quest>.Default.Equals(Quest, other.Quest)) ? (-1316842305) : (-1316842309)); - break; - case 4: - num = (((object)other == null) ? (-1316842305) : (-1316842307)); - break; - case 3: - return true; - case 5: - num = -1316842311; - break; - case 2: - return false; - case 6: - return EqualityComparer<Questionable.Model.Questing.DialogueChoice>.Default.Equals(DialogueChoice, other.DialogueChoice); - case 0: - num = ((!_206C_200E_202B_202E_200F_202B_206A_206E_206D_202D_202E_200D_206E_206F_206B_202D_202A_202D_206F_206C_202E_202C_200B_202D_206D_202D_202B_206C_202C_206E_206B_200E_206A_206E_200B_206F_206C_200B_206C_200F_202E(EqualityContract, other.EqualityContract)) ? (-1316842305) : (-1316842308)); - break; - } - } - } - - bool IEquatable<DialogueChoiceInfo>.Equals(DialogueChoiceInfo? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202D_200E_202C_206B_202E_200D_206F_206F_206D_200F_200E_202B_206A_202B_202C_200B_202C_200D_202C_200D_200C_206B_200E_206C_200B_202A_200E_202B_202D_206F_206D_202B_200F_202D_200D_206E_202A_202B_200D_202E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202A_200B_200B_202C_202B_200F_202D_206F_200C_202E_206F_206F_202C_206C_206A_202A_200E_202E_200B_206E_206D_200C_200D_206A_206B_200E_206C_206C_200E_202A_200F_202C_206C_200D_200D_206D_200D_206A_206C_202C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200C_200C_200E_200B_206F_202C_200D_202B_202E_206D_200C_202C_200B_202A_200D_202E_200B_206C_200C_202A_202A_206C_206D_200B_200E_200D_200E_206B_202C_200E_200B_202C_200C_206F_202A_206B_206B_206E_200E_200F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200C_200E_206D_202E_206D_206F_200F_206B_206A_206A_200D_200B_206F_202E_202B_200C_202A_206D_206C_200D_206C_202A_202D_200F_206A_200C_206A_206A_200C_202E_200C_202D_206A_206C_202C_202D_200D_200F_206D_202B_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202B_202B_202C_202B_206B_200F_200F_200F_200B_200E_202D_202D_202A_202E_202C_200B_206B_206A_202A_200B_200B_206D_200F_202D_206A_202A_206D_200C_202B_200E_206A_206B_202C_200E_200B_206A_200E_202E_206D_206E_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202D_206C_200D_206B_202E_200E_200F_202C_200C_202D_202C_202B_202D_206E_206B_202D_206D_206C_200D_206F_206E_200F_206C_200D_206A_200D_200C_206D_206D_206E_200D_202A_200D_202D_200F_200D_206A_206C_200C_206F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200F_206E_200B_206C_200F_202E_202C_206A_206A_206F_206F_206E_206C_206A_202C_200D_200B_200B_200F_200E_206A_202B_200D_206D_200B_200C_206F_200C_200B_200B_206E_206C_200F_202B_206C_202E_200F_206F_200E_202B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206C_200E_202B_202E_200F_202B_206A_206E_206D_202D_202E_200D_206E_206F_206B_202D_202A_202D_206F_206C_202E_202C_200B_202D_206D_202D_202B_206C_202C_206E_206B_200E_206A_206E_200B_206F_206C_200B_206C_200F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<Addon, ReadOnlySeString?> _003C_003E9__42_0; - - public static Func<Addon, ReadOnlySeString?> _003C_003E9__42_1; - - public static Func<QuestStep, IEnumerable<DialogueChoice>> _003C_003E9__55_4; - - public static Func<QuestStep, bool> _003C_003E9__55_6; - - public static Func<QuestStep, bool> _003C_003E9__55_7; - - public static Func<QuestStep, EAetheryteLocation> _003C_003E9__55_8; - - public static Func<QuestStep, bool> _003C_003E9__55_9; - - public static Func<IQuestInfo, bool> _003C_003E9__55_11; - - public static Func<QuestStep, IEnumerable<DialogueChoice>> _003C_003E9__55_12; - - public static Func<DialogueChoice, DialogueChoiceInfo> _003C_003E9__55_0; - - public static Func<DialogueChoice, DialogueChoiceInfo> _003C_003E9__55_1; - - public static Func<string, int, global::_003C_003Ef__AnonymousType0<string, int>> _003C_003E9__57_0; - - public static Func<global::_003C_003Ef__AnonymousType0<string, int>, int> _003C_003E9__57_2; - - internal ReadOnlySeString? _003C_002Ector_003Eb__42_0(Addon addon) - { - return addon.Text; - } - - internal ReadOnlySeString? _003C_002Ector_003Eb__42_1(Addon addon) - { - return addon.Text; - } - - internal IEnumerable<DialogueChoice> _003CHandleListChoice_003Eb__55_4(QuestStep x) - { - return _200C_202A_206B_202A_202C_200E_200B_202A_206F_206A_206F_200E_206A_202D_200C_200D_202A_202E_200D_206C_206C_200D_206A_206B_202B_202E_206E_202E_202B_206D_200F_206B_206D_206B_206A_206D_200C_200D_206D_206F_202E(x); - } - - internal bool _003CHandleListChoice_003Eb__55_6(QuestStep x) - { - return _206B_202D_206F_202A_202B_200E_202B_202B_206D_206A_206D_202E_200D_206A_200F_202D_206D_206C_206F_202D_200C_200C_206E_206F_202D_200E_202C_200B_206E_202C_206D_206C_200F_202C_206B_200B_200F_206B_202C_202E(x) == EInteractionType.UnlockTaxiStand; - } - - internal bool _003CHandleListChoice_003Eb__55_7(QuestStep x) - { - int num = ((x == null) ? (-59017433) : (-59017434)); - while (true) - { - int num2 = num; - int num3 = -59017433; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return _202B_202B_206C_200D_202B_200D_206D_202D_200C_200B_200F_202A_206C_202D_206B_206E_202A_200D_200B_206E_202E_202A_202B_200B_206E_202D_202C_206B_202A_200C_200D_202D_200B_200E_202E_202B_200E_200B_200E_202B_202E(x).HasValue; - case 1: - num = ((_206B_202D_206F_202A_202B_200E_202B_202B_206D_206A_206D_202E_200D_206A_200F_202D_206D_206C_206F_202D_200C_200C_206E_206F_202D_200E_202C_200B_206E_202C_206D_206C_200F_202C_206B_200B_200F_206B_202C_202E(x) != EInteractionType.RegisterFreeOrFavoredAetheryte) ? (-59017433) : (-59017435)); - break; - case 3: - num = -59017434; - break; - case 0: - return false; - } - } - } - - internal EAetheryteLocation _003CHandleListChoice_003Eb__55_8(QuestStep x) - { - return _202B_202B_206C_200D_202B_200D_206D_202D_200C_200B_200F_202A_206C_202D_206B_206E_202A_200D_200B_206E_202E_202A_202B_200B_206E_202D_202C_206B_202A_200C_200D_202D_200B_200E_202E_202B_200E_200B_200E_202B_202E(x).Value; - } - - internal bool _003CHandleListChoice_003Eb__55_9(QuestStep x) - { - return _206B_202D_206F_202A_202B_200E_202B_202B_206D_206A_206D_202E_200D_206A_200F_202D_206D_206C_206F_202D_200C_200C_206E_206F_202D_200E_202C_200B_206E_202C_206D_206C_200F_202C_206B_200B_200F_206B_202C_202E(x) == EInteractionType.SinglePlayerDuty; - } - - internal bool _003CHandleListChoice_003Eb__55_11(IQuestInfo x) - { - return x.QuestId is QuestId; - } - - internal IEnumerable<DialogueChoice> _003CHandleListChoice_003Eb__55_12(QuestStep x) - { - return _200C_202A_206B_202A_202C_200E_200B_202A_206F_206A_206F_200E_206A_202D_200C_200D_202A_202E_200D_206C_206C_200D_206A_206B_202B_202E_206E_202E_202B_206D_200F_206B_206D_206B_206A_206D_200C_200D_206D_206F_202E(x); - } - - internal DialogueChoiceInfo _003CHandleListChoice_003Eb__55_0(DialogueChoice x) - { - return new DialogueChoiceInfo(null, x); - } - - internal DialogueChoiceInfo _003CHandleListChoice_003Eb__55_1(DialogueChoice x) - { - return new DialogueChoiceInfo(null, x); - } - - internal global::_003C_003Ef__AnonymousType0<string, int> _003CFindBestRegexMatch_003Eb__57_0(string answer, int index) - { - return new { answer, index }; - } - - internal int _003CFindBestRegexMatch_003Eb__57_2(global::_003C_003Ef__AnonymousType0<string, int> x) - { - return x.index; - } - - static List<DialogueChoice> _200C_202A_206B_202A_202C_200E_200B_202A_206F_206A_206F_200E_206A_202D_200C_200D_202A_202E_200D_206C_206C_200D_206A_206B_202B_202E_206E_202E_202B_206D_200F_206B_206D_206B_206A_206D_200C_200D_206D_206F_202E(QuestStep P_0) - { - return P_0.DialogueChoices; - } - - static EInteractionType _206B_202D_206F_202A_202B_200E_202B_202B_206D_206A_206D_202E_200D_206A_200F_202D_206D_206C_206F_202D_200C_200C_206E_206F_202D_200E_202C_200B_206E_202C_206D_206C_200F_202C_206B_200B_200F_206B_202C_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static EAetheryteLocation? _202B_202B_206C_200D_202B_200D_206D_202D_200C_200B_200F_202A_206C_202D_206B_206E_202A_200D_200B_206E_202E_202A_202B_200B_206E_202D_202C_206B_202A_200C_200D_202D_200B_200E_202E_202B_200E_200B_200E_202B_202E(QuestStep P_0) - { - return P_0.Aetheryte; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass55_0 - { - public Questionable.Model.Quest quest; - - internal DialogueChoiceInfo _003CHandleListChoice_003Eb__5(DialogueChoice x) - { - return new DialogueChoiceInfo(quest, x); - } - - internal DialogueChoiceInfo _003CHandleListChoice_003Eb__10(DialogueChoice x) - { - return new DialogueChoiceInfo(quest, x); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass55_1 - { - public Questionable.Model.Quest knownQuest; - - internal DialogueChoiceInfo _003CHandleListChoice_003Eb__13(DialogueChoice x) - { - return new DialogueChoiceInfo(knownQuest, x); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass58_0 - { - public List<string?> answers; - - internal int _003CGetBestMatchFromQuestPath_003Eb__0(int i) - { - string? text = answers[i]; - if (text == null) - { - return int.MaxValue; - } - return _202A_202B_206C_202A_202B_206B_206D_202D_206F_202C_200F_206B_200E_200B_202E_206B_200D_202D_206C_206E_200D_202A_206D_206E_202B_206E_206C_200D_202C_202E_200B_202D_206B_206E_200E_200D_202E_206F_206A_200C_202E(text); - } - - static int _202A_202B_206C_202A_202B_206B_206D_202D_206F_202C_200F_206B_200E_200B_202E_206B_200D_202D_206C_206E_200D_202A_206D_206E_202B_206E_206C_200D_202C_202E_200B_202D_206B_206E_200E_200D_202E_206F_206A_200C_202E(string P_0) - { - return P_0.Length; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass64_0 - { - public InteractionUiController _003C_003E4__this; - - public unsafe AddonSelectYesno* addonSelectYesno; - - public Questionable.Model.Quest quest; - - public string actualPrompt; - - internal unsafe bool _003CCheckQuestYesNo_003Eb__0(QuestStep step) - { - return _003C_003E4__this.HandleDefaultYesNo(addonSelectYesno, quest, step, _200F_206D_206D_202C_202E_206B_206F_202D_200E_206D_202C_200D_206E_206B_200E_200E_206F_206C_200C_202A_200E_206E_200B_200C_202D_202D_206E_206D_200B_200D_202C_206F_206E_206F_206A_202B_200E_206C_206C_200D_202E(step), actualPrompt); - } - - static List<DialogueChoice> _200F_206D_206D_202C_202E_206B_206F_202D_200E_206D_202C_200D_206E_206B_200E_200E_206F_206C_200C_202A_200E_206E_200B_200C_202D_202D_206E_206D_200B_200D_202C_206F_206E_206F_206A_202B_200E_206C_206C_200D_202E(QuestStep P_0) - { - return P_0.DialogueChoices; - } - } + private sealed record DialogueChoiceInfo(Questionable.Model.Quest? Quest, DialogueChoice DialogueChoice); private readonly IAddonLifecycle _addonLifecycle; @@ -436,36 +97,14 @@ internal sealed class InteractionUiController : IDisposable { get { - int num = (_questController.IsRunning ? (-301711873) : (-301711880)); - while (true) + if (!_questController.IsRunning && !_fateController.IsRunning && !_seasonalDutyController.IsRunning && !_attunementController.IsRunning) { - int num2 = num; - int num3 = -301711875; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = -301711880; - break; - case 2: - return true; - case 3: - num = (_attunementController.IsRunning ? (-301711873) : (-301711875)); - break; - case 1: - num = (_seasonalDutyController.IsRunning ? (-301711873) : (-301711874)); - break; - case 5: - num = (_fateController.IsRunning ? (-301711873) : (-301711876)); - break; - case 0: - return _territoryData.IsQuestBattleInstance(_200D_206E_200C_200C_202A_200B_200E_202D_206E_206E_200E_200D_206D_200C_202B_200B_202A_206F_206F_206F_206C_206B_200C_200B_200F_200E_200D_200E_206B_202E_200E_200C_206E_200C_206F_206E_202B_206D_206B_202E(_clientState)); - } + return _territoryData.IsQuestBattleInstance(_clientState.TerritoryType); } + return true; } } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe InteractionUiController(IAddonLifecycle addonLifecycle, IDataManager dataManager, QuestFunctions questFunctions, AetheryteFunctions aetheryteFunctions, ExcelFunctions excelFunctions, QuestController questController, GatheringPointRegistry gatheringPointRegistry, QuestRegistry questRegistry, QuestData questData, TerritoryData territoryData, IGameGui gameGui, ITargetManager targetManager, IPluginLog pluginLog, IClientState clientState, IObjectTable objectTable, ShopController shopController, FateController fateController, SeasonalDutyController seasonalDutyController, AttunementController attunementController, BossModIpc bossModIpc, DutyRetryState dutyRetryState, ICondition condition, Configuration configuration, ILogger<InteractionUiController> logger) { _addonLifecycle = addonLifecycle; @@ -494,16 +133,16 @@ internal sealed class InteractionUiController : IDisposable _returnRegex = _dataManager.GetExcelSheet<Addon>().GetRow(196u).GetRegex((Addon addon) => addon.Text, pluginLog); _purchaseItemRegex = _dataManager.GetRegex(3406u, (Addon addon) => addon.Text, pluginLog); _questController.AutomationTypeChanged += HandleCurrentDialogueChoices; - _206C_202C_200D_200B_206E_200F_206E_206E_206C_206A_206B_206E_206A_202C_202B_200D_200C_200D_206E_206C_200F_200D_202D_200B_200D_202A_202E_200E_206B_206D_202A_206B_200C_200F_200B_206C_202E_200C_206E_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-422420534), (IAddonLifecycle.AddonEventDelegate)SelectStringPostSetup); - _206C_202C_200D_200B_206E_200F_206E_206E_206C_206A_206B_206E_206A_202C_202B_200D_200C_200D_206E_206C_200F_200D_202D_200B_200D_202A_202E_200E_206B_206D_202A_206B_200C_200F_200B_206C_202E_200C_206E_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(316394614), (IAddonLifecycle.AddonEventDelegate)CutsceneSelectStringPostSetup); - _206C_202C_200D_200B_206E_200F_206E_206E_206C_206A_206B_206E_206A_202C_202B_200D_200C_200D_206E_206C_200F_200D_202D_200B_200D_202A_202E_200E_206B_206D_202A_206B_200C_200F_200B_206C_202E_200C_206E_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(706325697), (IAddonLifecycle.AddonEventDelegate)SelectIconStringPostSetup); - _206C_202C_200D_200B_206E_200F_206E_206E_206C_206A_206B_206E_206A_202C_202B_200D_200C_200D_206E_206C_200F_200D_202D_200B_200D_202A_202E_200E_206B_206D_202A_206B_200C_200F_200B_206C_202E_200C_206E_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(559979746), (IAddonLifecycle.AddonEventDelegate)SelectYesnoPostSetup); - _206C_202C_200D_200B_206E_200F_206E_206E_206C_206A_206B_206E_206A_202C_202B_200D_200C_200D_206E_206C_200F_200D_202D_200B_200D_202A_202E_200E_206B_206D_202A_206B_200C_200F_200B_206C_202E_200C_206E_206B_202E(_addonLifecycle, AddonEvent.PostUpdate, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2133528248), (IAddonLifecycle.AddonEventDelegate)SelectYesnoDeathRecoveryPostUpdate); - _206C_202C_200D_200B_206E_200F_206E_206E_206C_206A_206B_206E_206A_202C_202B_200D_200C_200D_206E_206C_200F_200D_202D_200B_200D_202A_202E_200E_206B_206D_202A_206B_200C_200F_200B_206C_202E_200C_206E_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1560213177), (IAddonLifecycle.AddonEventDelegate)DifficultySelectYesNoPostSetup); - _206C_202C_200D_200B_206E_200F_206E_206E_206C_206A_206B_206E_206A_202C_202B_200D_200C_200D_206E_206C_200F_200D_202D_200B_200D_202A_202E_200E_206B_206D_202A_206B_200C_200F_200B_206C_202E_200C_206E_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1285367197), (IAddonLifecycle.AddonEventDelegate)PointMenuPostSetup); - _206C_202C_200D_200B_206E_200F_206E_206E_206C_206A_206B_206E_206A_202C_202B_200D_200C_200D_206E_206C_200F_200D_202D_200B_200D_202A_202E_200E_206B_206D_202A_206B_200C_200F_200B_206C_202E_200C_206E_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-880835995), (IAddonLifecycle.AddonEventDelegate)HousingSelectBlockPostSetup); - _206C_202C_200D_200B_206E_200F_206E_206E_206C_206A_206B_206E_206A_202C_202B_200D_200C_200D_206E_206C_200F_200D_202D_200B_200D_202A_202E_200E_206B_206D_202A_206B_200C_200F_200B_206C_202E_200C_206E_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-445790534), (IAddonLifecycle.AddonEventDelegate)EasterMowingResultPostSetup); - if (_gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-740095251), out var addonPtr)) + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "SelectString", SelectStringPostSetup); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "CutSceneSelectString", CutsceneSelectStringPostSetup); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "SelectIconString", SelectIconStringPostSetup); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "SelectYesno", SelectYesnoPostSetup); + _addonLifecycle.RegisterListener(AddonEvent.PostUpdate, "SelectYesno", SelectYesnoDeathRecoveryPostUpdate); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "DifficultySelectYesNo", DifficultySelectYesNoPostSetup); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "PointMenu", PointMenuPostSetup); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "HousingSelectBlock", HousingSelectBlockPostSetup); + _addonLifecycle.RegisterListener(AddonEvent.PostSetup, "EasterMowingResult", EasterMowingResultPostSetup); + if (_gameGui.TryGetAddonByName<AtkUnitBase>("RhythmAction", out var addonPtr)) { addonPtr->Close(fireCallback: true); } @@ -511,1831 +150,694 @@ internal sealed class InteractionUiController : IDisposable private void HandleCurrentDialogueChoices(object sender, QuestController.EAutomationType automationType) { - int num = ((automationType == QuestController.EAutomationType.Manual) ? 1384116977 : 1384116978); - while (true) + if (automationType != QuestController.EAutomationType.Manual) { - int num2 = num; - int num3 = 1384116976; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1384116978; - break; - case 1: - return; - case 2: - HandleCurrentDialogueChoices(); - num = 1384116977; - break; - } + HandleCurrentDialogueChoices(); } } - [MethodImpl(MethodImplOptions.NoInlining)] internal unsafe void HandleCurrentDialogueChoices() { - AddonSelectString* addonPtr; - int num = ((!_gameGui.TryGetAddonByName<AddonSelectString>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(534731026), out addonPtr)) ? (-1609490153) : (-1609490155)); - AtkUnitBase* addonPtr6 = default(AtkUnitBase*); - AddonSelectYesno* addonPtr4 = default(AddonSelectYesno*); - AtkUnitBase* addonPtr3 = default(AtkUnitBase*); - AddonCutSceneSelectString* addonPtr5 = default(AddonCutSceneSelectString*); - AddonSelectIconString* addonPtr2 = default(AddonSelectIconString*); - while (true) + if (_gameGui.TryGetAddonByName<AddonSelectString>("SelectString", out var addonPtr)) { - int num2 = num; - int num3 = -1609490145; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 11: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-800287418), Array.Empty<object>()); - PointMenuPostSetup(addonPtr6, checkAllSteps: true); - num = -1609490151; - break; - case 9: - num = ((!_gameGui.TryGetAddonByName<AddonSelectYesno>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(559979746), out addonPtr4)) ? (-1609490146) : (-1609490157)); - break; - case 0: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-591681686), Array.Empty<object>()); - DifficultySelectYesNoPostSetup(addonPtr3, checkAllSteps: true); - num = -1609490148; - break; - case 10: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1862678185), Array.Empty<object>()); - SelectStringPostSetup(addonPtr, checkAllSteps: true); - num = -1609490153; - break; - case 12: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-368581114), Array.Empty<object>()); - SelectYesnoPostSetup(addonPtr4, checkAllSteps: true); - num = -1609490146; - break; - case 1: - num = ((!_gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(19567484), out addonPtr3)) ? (-1609490148) : (-1609490145)); - break; - case 5: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1921123424), Array.Empty<object>()); - CutsceneSelectStringPostSetup(addonPtr5, checkAllSteps: true); - num = -1609490149; - break; - case 6: - return; - case 2: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(462301389), Array.Empty<object>()); - SelectIconStringPostSetup(addonPtr2, checkAllSteps: true); - num = -1609490154; - break; - case 3: - num = ((!_gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1295086227), out addonPtr6)) ? (-1609490151) : (-1609490156)); - break; - case 7: - num = -1609490155; - break; - case 8: - num = ((!_gameGui.TryGetAddonByName<AddonCutSceneSelectString>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1487047646), out addonPtr5)) ? (-1609490149) : (-1609490150)); - break; - case 4: - num = ((!_gameGui.TryGetAddonByName<AddonSelectIconString>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1216084341), out addonPtr2)) ? (-1609490154) : (-1609490147)); - break; - } + _logger.LogDebug("SelectString window is open"); + SelectStringPostSetup(addonPtr, checkAllSteps: true); + } + if (_gameGui.TryGetAddonByName<AddonCutSceneSelectString>("CutSceneSelectString", out var addonPtr2)) + { + _logger.LogDebug("CutSceneSelectString window is open"); + CutsceneSelectStringPostSetup(addonPtr2, checkAllSteps: true); + } + if (_gameGui.TryGetAddonByName<AddonSelectIconString>("SelectIconString", out var addonPtr3)) + { + _logger.LogDebug("SelectIconString window is open"); + SelectIconStringPostSetup(addonPtr3, checkAllSteps: true); + } + if (_gameGui.TryGetAddonByName<AddonSelectYesno>("SelectYesno", out var addonPtr4)) + { + _logger.LogDebug("SelectYesno window is open"); + SelectYesnoPostSetup(addonPtr4, checkAllSteps: true); + } + if (_gameGui.TryGetAddonByName<AtkUnitBase>("DifficultySelectYesNo", out var addonPtr5)) + { + _logger.LogDebug("DifficultySelectYesNo window is open"); + DifficultySelectYesNoPostSetup(addonPtr5, checkAllSteps: true); + } + if (_gameGui.TryGetAddonByName<AtkUnitBase>("PointMenu", out var addonPtr6)) + { + _logger.LogDebug("PointMenu is open"); + PointMenuPostSetup(addonPtr6, checkAllSteps: true); } } private unsafe void SelectStringPostSetup(AddonEvent type, AddonArgs args) { - AddonSelectString* address = (AddonSelectString*)_200C_202E_202E_200C_206B_202B_200C_206B_200C_200D_206C_206C_200F_202A_206F_202B_206C_206E_206E_206C_200F_200D_206A_206F_200E_206E_202E_200F_200C_206B_206E_202E_200B_202C_200D_202A_200B_200D_200F_200D_202E(args).Address; + AddonSelectString* address = (AddonSelectString*)args.Addon.Address; SelectStringPostSetup(address, checkAllSteps: false); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void SelectStringPostSetup(AddonSelectString* addonSelectString, bool checkAllSteps) { - int num = (checkAllSteps ? (-141072502) : (-141072507)); - string text = default(string); - List<string> list = default(List<string>); - ushort num8 = default(ushort); - int? num10 = default(int?); - int? num7 = default(int?); - while (true) + if (!checkAllSteps && !ShouldHandleUiInteractions) { - int num2 = num; - int num3 = -141072508; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int? num9; - switch (num5 - (num6 + num6)) + return; + } + string text = addonSelectString->AtkUnitBase.AtkValues[2].ReadAtkString(); + if (text == null) + { + return; + } + List<string> list = new List<string>(); + for (ushort num = 7; num < addonSelectString->AtkUnitBase.AtkValuesCount; num++) + { + if (addonSelectString->AtkUnitBase.AtkValues[(int)num].Type == AtkValueType.String) { - case 5: - num9 = HandleInstanceListChoice(text); - goto IL_01fe; - case 1: - num = (ShouldHandleUiInteractions ? (-141072502) : (-141072498)); - break; - case 2: - list.Add(_202C_206E_202E_206D_202C_200F_202A_202E_202D_202C_200D_206E_202E_202C_200E_202E_202C_200B_206F_202B_202E_202A_202E_206D_206F_202A_200C_202E_202D_200D_202A_200E_200E_206D_202D_202D_206D_202D_200B_200C_202E(addonSelectString->AtkUnitBase.AtkValues[(int)num8])); - num = -141072504; - break; - case 14: - text = _202C_206E_202E_206D_202C_200F_202A_202E_202D_202C_200D_206E_202E_202C_200E_202E_202C_200B_206F_202B_202E_202A_202E_206D_206F_202A_200C_202E_202D_200D_202A_200E_200E_206D_202D_202D_206D_202D_200B_200C_202E(addonSelectString->AtkUnitBase.AtkValues[2]); - num = ((text != null) ? (-141072499) : (-141072512)); - break; - case 13: - return; - case 11: - num = -141072507; - break; - case 0: - num = ((num8 < addonSelectString->AtkUnitBase.AtkValuesCount) ? (-141072509) : (-141072505)); - break; - case 12: - { - ushort num11 = num8; - num3 = 1; - num4 = num11; - int num12 = num4 ^ num3; - int num13 = num4 & num3; - num8 = (ushort)(num12 + (num13 + num13)); - num = -141072508; - break; - } - case 7: - num = ((addonSelectString->AtkUnitBase.AtkValues[(int)num8].Type != FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.String) ? (-141072504) : (-141072506)); - break; - case 8: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(937798958), new object[2] { num10, text }); - addonSelectString->AtkUnitBase.FireCallbackInt(num10.Value); - num = -141072503; - break; - case 6: - num9 = num7; - goto IL_01fe; - case 4: - return; - case 9: - list = new List<string>(); - num8 = 7; - num = -141072508; - break; - case 3: - num7 = HandleListChoice(text, list, checkAllSteps); - num = (num7.HasValue ? (-141072510) : (-141072511)); - break; - case 10: - return; - IL_01fe: - num10 = num9; - num = ((!num10.HasValue) ? (-141072503) : (-141072500)); - break; + list.Add(addonSelectString->AtkUnitBase.AtkValues[(int)num].ReadAtkString()); } } + int? num2 = HandleListChoice(text, list, checkAllSteps) ?? HandleInstanceListChoice(text); + if (num2.HasValue) + { + _logger.LogDebug("Using choice {Choice} for list prompt '{Prompt}'", num2, text); + addonSelectString->AtkUnitBase.FireCallbackInt(num2.Value); + } } private unsafe void CutsceneSelectStringPostSetup(AddonEvent type, AddonArgs args) { - AddonCutSceneSelectString* address = (AddonCutSceneSelectString*)_200C_202E_202E_200C_206B_202B_200C_206B_200C_200D_206C_206C_200F_202A_206F_202B_206C_206E_206E_206C_200F_200D_206A_206F_200E_206E_202E_200F_200C_206B_206E_202E_200B_202C_200D_202A_200B_200D_200F_200D_202E(args).Address; + AddonCutSceneSelectString* address = (AddonCutSceneSelectString*)args.Addon.Address; CutsceneSelectStringPostSetup(address, checkAllSteps: false); } private unsafe void CutsceneSelectStringPostSetup(AddonCutSceneSelectString* addonCutSceneSelectString, bool checkAllSteps) { - int num = (checkAllSteps ? (-1410911193) : (-1410911188)); - string text = default(string); - int? num7 = default(int?); - int num5 = default(int); - List<string> list = default(List<string>); - while (true) + if (!checkAllSteps && !ShouldHandleUiInteractions) { - int num2 = num; - int num3 = -1410911195; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return; + } + string text = addonCutSceneSelectString->AtkUnitBase.AtkValues[2].ReadAtkString(); + if (text != null) + { + List<string> list = new List<string>(); + for (int i = 5; i < addonCutSceneSelectString->AtkUnitBase.AtkValuesCount; i++) { - case 2: - text = _202C_206E_202E_206D_202C_200F_202A_202E_202D_202C_200D_206E_202E_202C_200E_202E_202C_200B_206F_202B_202E_202A_202E_206D_206F_202A_200C_202E_202D_200D_202A_200E_200E_206D_202D_202D_206D_202D_200B_200C_202E(addonCutSceneSelectString->AtkUnitBase.AtkValues[2]); - num = ((text != null) ? (-1410911198) : (-1410911195)); - break; - case 3: - return; - case 10: - addonCutSceneSelectString->AtkUnitBase.FireCallbackInt(num7.Value); - num = -1410911194; - break; - case 6: - num = -1410911188; - break; - case 1: - num = ((num5 < addonCutSceneSelectString->AtkUnitBase.AtkValuesCount) ? (-1410911199) : (-1410911200)); - break; - case 9: - num = (ShouldHandleUiInteractions ? (-1410911193) : (-1410911187)); - break; - case 7: - list = new List<string>(); - num5 = 5; - num = -1410911196; - break; - case 5: - num7 = HandleListChoice(text, list, checkAllSteps); - num = ((!num7.HasValue) ? (-1410911194) : (-1410911185)); - break; - case 8: - return; - case 0: - return; - case 4: - { - list.Add(_202C_206E_202E_206D_202C_200F_202A_202E_202D_202C_200D_206E_202E_202C_200E_202E_202C_200B_206F_202B_202E_202A_202E_206D_206F_202A_200C_202E_202D_200D_202A_200E_200E_206D_202D_202D_206D_202D_200B_200C_202E(addonCutSceneSelectString->AtkUnitBase.AtkValues[num5])); - int num6 = num5; - num3 = 1; - num4 = num6; - num5 = (num4 | num3) + (num4 & num3); - num = -1410911196; - break; + list.Add(addonCutSceneSelectString->AtkUnitBase.AtkValues[i].ReadAtkString()); } + int? num = HandleListChoice(text, list, checkAllSteps); + if (num.HasValue) + { + addonCutSceneSelectString->AtkUnitBase.FireCallbackInt(num.Value); } } } private unsafe void SelectIconStringPostSetup(AddonEvent type, AddonArgs args) { - AddonSelectIconString* address = (AddonSelectIconString*)_200C_202E_202E_200C_206B_202B_200C_206B_200C_200D_206C_206C_200F_202A_206F_202B_206C_206E_206E_206C_200F_200D_206A_206F_200E_206E_202E_200F_200C_206B_206E_202E_200B_202C_200D_202A_200B_200D_200F_200D_202E(args).Address; + AddonSelectIconString* address = (AddonSelectIconString*)args.Addon.Address; SelectIconStringPostSetup(address, checkAllSteps: false); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void SelectIconStringPostSetup(AddonSelectIconString* addonSelectIconString, bool checkAllSteps) { - int num = (checkAllSteps ? (-12129082) : (-12129078)); - QuestController.QuestProgress startedQuest = default(QuestController.QuestProgress); - QuestStep questStep = default(QuestStep); - List<string> choices = default(List<string>); - string text = default(string); - QuestController.QuestProgress nextQuest = default(QuestController.QuestProgress); - int? num5 = default(int?); - Questionable.Model.Quest quest = default(Questionable.Model.Quest); - string text2 = default(string); - while (true) + if (!checkAllSteps && !ShouldHandleUiInteractions) { - int num2 = num; - int num3 = -12129083; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return; + } + string text = addonSelectIconString->AtkUnitBase.AtkValues[3].ReadAtkString(); + if (string.IsNullOrEmpty(text)) + { + text = null; + } + List<string> choices = GetChoices(addonSelectIconString); + int? num = HandleListChoice(text, choices, checkAllSteps); + if (num.HasValue) + { + _logger.LogDebug("Using choice {Choice} for list prompt '{Prompt}'", num, text); + addonSelectIconString->AtkUnitBase.FireCallbackInt(num.Value); + return; + } + string text2 = (*addonSelectIconString->AtkValues).ReadAtkString(); + QuestController.QuestProgress startedQuest = _questController.StartedQuest; + if (startedQuest != null && (text == null || text2 != null)) + { + _logger.LogDebug("Checking if current quest {Name} is on the list", startedQuest.Quest.Info.Name); + if (CheckQuestSelection(addonSelectIconString, startedQuest.Quest, choices)) { - case 12: + return; + } + QuestStep questStep = startedQuest.Quest.FindSequence(startedQuest.Sequence)?.FindStep(startedQuest.Step); + if (questStep != null && questStep.InteractionType == EInteractionType.AcceptQuest && (object)questStep.PickUpQuestId != null && _questRegistry.TryGetQuest(questStep.PickUpQuestId, out Questionable.Model.Quest quest)) { - QuestSequence? questSequence = startedQuest.Quest.FindSequence(startedQuest.Sequence); - questStep = ((questSequence != null) ? _200D_200E_200D_206C_206D_200C_200F_200C_206A_206C_202A_206C_202A_200C_200C_202A_206C_202E_206C_200E_202C_202D_200E_202A_200F_200F_200E_202E_200C_200D_206C_202C_200E_200B_206E_206A_200D_200D_200C_200D_202E(questSequence, startedQuest.Step) : null); - num = ((questStep == null) ? (-12129084) : (-12129065)); - break; - } - case 7: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-821203051), new object[1] { startedQuest.Quest.Info.Name }); - num = ((!CheckQuestSelection(addonSelectIconString, startedQuest.Quest, choices)) ? (-12129079) : (-12129066)); - break; - case 3: - text = _202C_206E_202E_206D_202C_200F_202A_202E_202D_202C_200D_206E_202E_202C_200E_202E_202C_200B_206F_202B_202E_202A_202E_206D_206F_202A_200C_202E_202D_200D_202A_200E_200E_206D_202D_202D_206D_202D_200B_200C_202E(addonSelectIconString->AtkUnitBase.AtkValues[3]); - num = ((!_200B_206D_200D_206B_202D_206E_200E_206C_206C_202E_206E_200D_200B_206B_206B_200F_200D_202A_202C_202C_200C_206A_206E_206F_206C_200B_206A_202A_200E_200B_200D_206B_206B_206F_206D_202C_206D_202B_202C_202A_202E(text)) ? (-12129087) : (-12129075)); - break; - case 1: - nextQuest = _questController.NextQuest; - num = ((nextQuest == null) ? (-12129088) : (-12129074)); - break; - case 18: - num = ((_202A_206C_200B_202D_206C_206E_206C_200F_200E_202B_206E_206D_200C_206E_206A_206C_202C_206F_200F_206A_200B_206F_200B_202B_200B_206B_200B_202E_202D_200B_202A_200E_206E_206C_202D_202B_200E_200E_200B_200E_202E(questStep) != EInteractionType.AcceptQuest) ? (-12129084) : (-12129080)); - break; - case 16: - return; - case 4: - choices = GetChoices(addonSelectIconString); - num5 = HandleListChoice(text, choices, checkAllSteps); - num = ((!num5.HasValue) ? (-12129085) : (-12129069)); - break; - case 0: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-986592503), new object[1] { quest.Info.Name }); - num = ((!CheckQuestSelection(addonSelectIconString, quest, choices)) ? (-12129084) : (-12129067)); - break; - case 2: - num = ((!_questRegistry.TryGetQuest(_200E_200E_200E_200B_202B_202D_206F_200E_206F_202D_206A_206A_200C_206E_200B_206B_202D_206F_202D_200B_200B_206A_202B_206F_200E_200F_206C_206F_202C_200F_206F_206F_206A_202B_202E_200C_200B_200E_200E_206B_202E(questStep), out quest)) ? (-12129084) : (-12129083)); - break; - case 6: - text2 = _202C_206E_202E_206D_202C_200F_202A_202E_202D_202C_200D_206E_202E_202C_200E_202E_202C_200B_206F_202B_202E_202A_202E_206D_206F_202A_200C_202E_202D_200D_202A_200E_200E_206D_202D_202D_206D_202D_200B_200C_202E(*addonSelectIconString->AtkValues); - startedQuest = _questController.StartedQuest; - num = ((startedQuest == null) ? (-12129084) : (-12129068)); - break; - case 22: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(937798958), new object[2] { num5, text }); - addonSelectIconString->AtkUnitBase.FireCallbackInt(num5.Value); - return; - case 11: - num = ((text == null) ? (-12129072) : (-12129076)); - break; - case 20: - num = -12129078; - break; - case 10: - num = ((text2 == null) ? (-12129084) : (-12129086)); - break; - case 8: - text = null; - num = -12129087; - break; - case 5: - return; - case 9: - num = ((text2 == null) ? (-12129088) : (-12129072)); - break; - case 14: - return; - case 17: - num = ((text == null) ? (-12129086) : (-12129073)); - break; - case 21: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(734639769), new object[1] { nextQuest.Quest.Info.Name }); - CheckQuestSelection(addonSelectIconString, nextQuest.Quest, choices); - return; - case 13: - num = (((object)_200E_200E_200E_200B_202B_202D_206F_200E_206F_202D_206A_206A_200C_206E_200B_206B_202D_206F_202D_200B_200B_206A_202B_206F_200E_200F_206C_206F_202C_200F_206F_206F_206A_202B_202E_200C_200B_200E_200E_206B_202E(questStep) == null) ? (-12129084) : (-12129081)); - break; - case 19: - return; - case 15: - num = (ShouldHandleUiInteractions ? (-12129082) : (-12129077)); - break; + _logger.LogDebug("Checking if current picked-up {Name} is on the list", quest.Info.Name); + if (CheckQuestSelection(addonSelectIconString, quest, choices)) + { + return; + } } } + QuestController.QuestProgress nextQuest = _questController.NextQuest; + if (nextQuest != null && (text == null || text2 != null)) + { + _logger.LogDebug("Checking if next quest {Name} is on the list", nextQuest.Quest.Info.Name); + CheckQuestSelection(addonSelectIconString, nextQuest.Quest, choices); + } } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe bool CheckQuestSelection(AddonSelectIconString* addonSelectIconString, Questionable.Model.Quest quest, List<string?> answers) { string questName = quest.Info.Name; int num = answers.FindIndex((string? x) => GameFunctions.GameStringEquals(questName, x)); - int num2 = ((num < 0) ? (-863924327) : (-863924326)); - while (true) + if (num >= 0) { - int num3 = num2; - int num4 = -863924325; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - goto IL_006f; - case 2: - return false; - case 1: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-172604722), new object[1] { questName }); - addonSelectIconString->AtkUnitBase.FireCallbackInt(num); - return true; - } - continue; - IL_006f: - num2 = -863924326; + _logger.LogDebug("Selecting quest {QuestName}", questName); + addonSelectIconString->AtkUnitBase.FireCallbackInt(num); + return true; } + return false; } public unsafe static List<string?> GetChoices(AddonSelectIconString* addonSelectIconString) { List<string> list = new List<string>(); ushort num = 0; - int num2 = 423527263; - while (true) + while (num < addonSelectIconString->AtkUnitBase.AtkValues[5].Int && num * 3 + 7 < addonSelectIconString->AtkUnitBase.AtkValuesCount) { - int num3 = num2; - int num4 = 423527261; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 4: - { - int num10 = num * 3; - num4 = 7; - num5 = num10; - int num11 = num5 ^ num4; - int num12 = num5 & num4; - num2 = ((num11 + (num12 + num12) < addonSelectIconString->AtkUnitBase.AtkValuesCount) ? 423527262 : 423527260); - break; - } - case 1: - return list; - case 2: - num2 = ((num >= addonSelectIconString->AtkUnitBase.AtkValues[5].Int) ? 423527260 : 423527257); - break; - case 0: - num2 = 423527263; - break; - case 3: - { - AtkValue* atkValues = addonSelectIconString->AtkValues; - int num6 = num * 3; - num4 = 7; - num5 = num6; - int num7 = num5 ^ num4; - int num8 = num5 & num4; - list.Add(_202C_206E_202E_206D_202C_200F_202A_202E_202D_202C_200D_206E_202E_202C_200E_202E_202C_200B_206F_202B_202E_202A_202E_206D_206F_202A_200C_202E_202D_200D_202A_200E_200E_206D_202D_202D_206D_202D_200B_200C_202E(atkValues[num7 + (num8 + num8)])); - ushort num9 = num; - num4 = 1; - num5 = num9; - num = (ushort)((num5 | num4) + (num5 & num4)); - num2 = 423527263; - break; - } - } + list.Add(addonSelectIconString->AtkValues[num * 3 + 7].ReadAtkString()); + num++; } + return list; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe int? HandleListChoice(string? actualPrompt, List<string?> answers, bool checkAllSteps) { List<DialogueChoiceInfo> list = new List<DialogueChoiceInfo>(); List<int> list2 = new List<int>(); - QuestController.QuestProgress questProgress = _questController.SimulatedQuest ?? _questController.GatheringQuest ?? _questController.StartedQuest; - int num; + QuestController.QuestProgress questProgress = _questController.SimulatedQuest ?? _questController.StartedQuest; if (questProgress != null) { - num = 897579792; - QuestSequence questSequence = default(QuestSequence); - _003C_003Ec__DisplayClass55_0 _003C_003Ec__DisplayClass55_ = default(_003C_003Ec__DisplayClass55_0); - QuestStep questStep = default(QuestStep); - bool flag = default(bool); - List<EAetheryteLocation> source = default(List<EAetheryteLocation>); - EAetheryteLocation? eAetheryteLocation = default(EAetheryteLocation?); - ushort? num10 = default(ushort?); - string current = default(string); - uint? warpId = default(uint?); - string warpText = default(string); - while (true) + Questionable.Model.Quest quest = questProgress.Quest; + bool flag = false; + List<EAetheryteLocation> source = new List<EAetheryteLocation>(); + if (checkAllSteps) { - int num2 = num; - int num3 = 897579799; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + QuestSequence? questSequence = quest.FindSequence(questProgress.Sequence); + IEnumerable<DialogueChoice> enumerable = questSequence?.Steps.SelectMany((QuestStep x) => x.DialogueChoices); + if (enumerable != null) { - default: - continue; - case 24: - questSequence = _003C_003Ec__DisplayClass55_.quest.FindSequence(questProgress.Sequence); - num = ((questSequence == null) ? 897579787 : 897579789); - continue; - case 18: - num = ((questProgress.Step != 255) ? 897579787 : 897579791); - continue; - case 25: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2056265490), Array.Empty<object>()); - num = 897579794; - continue; - case 19: - num = ((questStep != null) ? 897579787 : 897579781); - continue; - case 11: - flag = _202A_206C_200B_202D_206C_206E_206C_200F_200E_202B_206E_206D_200C_206E_206A_206C_202C_206F_200F_206A_200B_206F_200B_202B_200B_206B_200B_202E_202D_200B_202A_200E_206E_206C_202D_202B_200E_200E_200B_200E_202E(questStep) == EInteractionType.UnlockTaxiStand; - num = 897579794; - continue; - case 2: - num = ((questStep == null) ? 897579804 : 897579807); - continue; - case 3: - num = 897579792; - continue; - case 9: - { - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1911129672), Array.Empty<object>()); - Questionable.Model.Quest quest3 = _003C_003Ec__DisplayClass55_.quest; - DialogueChoice dialogueChoice3 = _200D_200E_206A_202E_200F_206B_206D_206B_200C_200E_202D_206C_206F_200B_200C_200F_202A_202D_206D_200B_206E_206F_200F_200B_202C_200B_202B_202B_202E_206B_202C_202B_200D_206B_206A_202B_206F_206B_202B_206D_202E(); - _202B_206E_200F_202A_206A_200C_202C_200D_200D_202A_206B_202C_200D_200C_202E_206D_206D_202D_202A_202B_206D_200E_202A_202E_200D_200B_200D_200C_202A_200E_200B_202A_200C_206D_200F_202D_206C_206C_206C_202C_202E(dialogueChoice3, EDialogChoiceType.List); - _202E_206A_200D_200B_206F_206C_202A_206B_202D_200C_202A_202D_202D_206D_200B_206F_202B_202B_202E_200D_202B_202C_202A_206B_206C_206D_200D_206E_200B_206C_206D_202C_202A_206A_206E_206A_200D_200E_206D_202E_202E(dialogueChoice3, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1089041782)); - _202A_202A_202B_206A_200F_202D_202D_206E_202D_200B_206A_206A_206D_206B_202E_206B_202A_202B_206E_206C_200D_202A_206B_206F_202D_202C_200B_200B_206E_206E_202D_200C_206E_206C_202C_202B_200B_206C_200E_200F_202E(dialogueChoice3, _202B_202C_206D_200C_200B_202E_202E_200B_202C_200B_202B_200C_206E_206A_200B_200F_206A_202C_200E_200B_200B_202D_206C_202C_200D_200C_206A_200D_202A_202C_202D_206B_202D_202B_202E_202A_206F_200F_202E_202D_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(842653526))); - _202B_206A_200C_202C_206F_206A_202D_202B_206B_202A_206B_200E_206D_202C_202B_202B_202D_202A_202C_202A_206D_202E_200E_206B_206A_202E_206C_200B_206F_200B_200F_202E_206C_202E_202C_202D_206B_202D_202B_206A_202E(dialogueChoice3, true); - _202A_200F_200B_202B_202A_200E_206D_200C_200C_202B_200D_200E_202E_202C_202E_202C_200E_202E_202D_206D_202B_206F_206F_206B_206C_206A_206A_200B_206C_202E_202C_202A_200B_200C_200F_200B_200B_206A_206C_200D_202E(dialogueChoice3, _202B_202C_206D_200C_200B_202E_202E_200B_202C_200B_202B_200C_206E_206A_200B_200F_206A_202C_200E_200B_200B_202D_206C_202C_200D_200C_206A_200D_202A_202C_202D_206B_202D_202B_202E_202A_206F_200F_202E_202D_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(57857705))); - _200D_202B_200F_206B_200D_206B_200B_200F_202B_206B_202B_202A_202B_200F_200F_200D_200C_206A_206B_202D_206D_206A_206D_206B_202C_200E_200E_206F_206A_202B_206D_202B_202A_206C_202E_202E_202A_200F_206C_206D_202E(dialogueChoice3, true); - list.Add(new DialogueChoiceInfo(quest3, dialogueChoice3)); - num = 897579788; - continue; + list.AddRange(enumerable.Select((DialogueChoice x) => new DialogueChoiceInfo(quest, x))); } - case 7: - _003C_003Ec__DisplayClass55_ = new _003C_003Ec__DisplayClass55_0(); - _003C_003Ec__DisplayClass55_.quest = questProgress.Quest; - flag = false; - source = new List<EAetheryteLocation>(); - num = ((!checkAllSteps) ? 897579777 : 897579779); - continue; - case 23: + flag = questSequence?.Steps.Any((QuestStep x) => x.InteractionType == EInteractionType.UnlockTaxiStand) ?? false; + source = (from x in questSequence?.Steps + where x != null && x.InteractionType == EInteractionType.RegisterFreeOrFavoredAetheryte && x.Aetheryte.HasValue + select x.Aetheryte.Value).ToList() ?? new List<EAetheryteLocation>(); + } + else + { + QuestStep questStep = null; + if (_territoryData.IsQuestBattleInstance(_clientState.TerritoryType)) { - Questionable.Model.Quest quest2 = _003C_003Ec__DisplayClass55_.quest; - DialogueChoice dialogueChoice2 = _200D_200E_206A_202E_200F_206B_206D_206B_200C_200E_202D_206C_206F_200B_200C_200F_202A_202D_206D_200B_206E_206F_200F_200B_202C_200B_202B_202B_202E_206B_202C_202B_200D_206B_206A_202B_206F_206B_202B_206D_202E(); - _202B_206E_200F_202A_206A_200C_202C_200D_200D_202A_206B_202C_200D_200C_202E_206D_206D_202D_202A_202B_206D_200E_202A_202E_200D_200B_200D_200C_202A_200E_200B_202A_200C_206D_200F_202D_206C_206C_206C_202C_202E(dialogueChoice2, EDialogChoiceType.List); - _202E_206A_200D_200B_206F_206C_202A_206B_202D_200C_202A_202D_202D_206D_200B_206F_202B_202B_202E_200D_202B_202C_202A_206B_206C_206D_200D_206E_200B_206C_206D_202C_202A_206A_206E_206A_200D_200E_206D_202E_202E(dialogueChoice2, _206E_202E_206E_200D_206D_202B_202D_202D_206A_206E_206F_200E_202D_206D_200B_206D_202D_202A_202C_200F_200F_202B_202E_202D_202A_202C_202E_202A_206E_206E_200F_206D_206F_202A_202C_200B_202E_200D_200E_206B_202E(_206E_200E_206F_202C_200F_206A_206D_202D_202C_202E_200B_200B_200E_206C_202D_206E_202E_206F_206C_200F_206E_200E_206A_200B_200F_202B_200E_206B_202A_206D_200E_202D_206E_206A_202E_202D_200D_206B_200D_200E_202E(questStep))); - _202A_202A_202B_206A_200F_202D_202D_206E_202D_200B_206A_206A_206D_206B_202E_206B_202A_202B_206E_206C_200D_202A_206B_206F_202D_202C_200B_200B_206E_206E_202D_200C_206E_206C_202C_202B_200B_206C_200E_200F_202E(dialogueChoice2, (ExcelRef)null); - _202A_200F_200B_202B_202A_200E_206D_200C_200C_202B_200D_200E_202E_202C_202E_202C_200E_202E_202D_206D_202B_206F_206F_206B_206C_206A_206A_200B_206C_202E_202C_202A_200B_200C_200F_200B_200B_206A_206C_200D_202E(dialogueChoice2, _206B_200F_206D_202E_202E_206C_206A_202E_206D_200D_206F_200C_200F_200D_206B_206C_200F_200C_206E_206F_206E_202B_200C_200D_200B_206A_206F_206D_206B_200E_202C_202E_202D_206C_206E_202A_200B_202C_202A_200F_202E(_206E_200E_206F_202C_200F_206A_206D_202D_202C_202E_200B_200B_200E_206C_202D_206E_202E_206F_206C_200F_206E_200E_206A_200B_200F_202B_200E_206B_202A_206D_200E_202D_206E_206A_202E_202D_200D_206B_200D_200E_202E(questStep))); - list.Add(new DialogueChoiceInfo(quest2, dialogueChoice2)); - num = 897579797; - continue; + questStep = quest.FindSequence(questProgress.Sequence)?.Steps.FirstOrDefault((QuestStep x) => x.InteractionType == EInteractionType.SinglePlayerDuty); } - case 16: - list.AddRange(_200E_206A_200F_200C_206D_206A_202B_206D_206E_206A_200B_200B_202E_206C_202C_206E_206F_200C_202E_202A_200C_200F_200E_206E_206F_202C_200B_202A_206B_206E_206F_200E_206D_206A_202E_200C_206C_206B_202E_202E(questStep).Select(_003C_003Ec__DisplayClass55_._003CHandleListChoice_003Eb__10)); - num = ((_206E_200E_206F_202C_200F_206A_206D_202D_202C_202E_200B_200B_200E_206C_202D_206E_202E_206F_206C_200F_206E_200E_206A_200B_200F_202B_200E_206B_202A_206D_200E_202D_206E_206A_202E_202D_200D_206B_200D_200E_202E(questStep) == null) ? 897579797 : 897579776); - continue; - case 4: + if (questStep == null) { - EAetheryteLocation valueOrDefault = eAetheryteLocation.GetValueOrDefault(); - int num11 = 1; - List<EAetheryteLocation> list3 = new List<EAetheryteLocation>(num11); - CollectionsMarshal.SetCount(list3, num11); - CollectionsMarshal.AsSpan(list3)[0] = valueOrDefault; - source = list3; - num = 897579804; - continue; + questStep = quest.FindSequence(questProgress.Sequence)?.FindStep(questProgress.Step); } - case 17: - num = ((!source.Any((EAetheryteLocation x) => _aetheryteFunctions.CanRegisterFreeOrFavoriteAetheryte(x) == AetheryteRegistrationResult.FavoredDestinationAvailable)) ? 897579788 : 897579806); - continue; - case 10: + if (questStep == null && questProgress.Step == 255) { - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(399617756), Array.Empty<object>()); - Questionable.Model.Quest quest4 = _003C_003Ec__DisplayClass55_.quest; - DialogueChoice dialogueChoice4 = _200D_200E_206A_202E_200F_206B_206D_206B_200C_200E_202D_206C_206F_200B_200C_200F_202A_202D_206D_200B_206E_206F_200F_200B_202C_200B_202B_202B_202E_206B_202C_202B_200D_206B_206A_202B_206F_206B_202B_206D_202E(); - _202B_206E_200F_202A_206A_200C_202C_200D_200D_202A_206B_202C_200D_200C_202E_206D_206D_202D_202A_202B_206D_200E_202A_202E_200D_200B_200D_200C_202A_200E_200B_202A_200C_206D_200F_202D_206C_206C_206C_202C_202E(dialogueChoice4, EDialogChoiceType.List); - _202E_206A_200D_200B_206F_206C_202A_206B_202D_200C_202A_202D_202D_206D_200B_206F_202B_202B_202E_200D_202B_202C_202A_206B_206C_206D_200D_206E_200B_206C_206D_202C_202A_206A_206E_206A_200D_200E_206D_202E_202E(dialogueChoice4, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2128324396)); - _202A_202A_202B_206A_200F_202D_202D_206E_202D_200B_206A_206A_206D_206B_202E_206B_202A_202B_206E_206C_200D_202A_206B_206F_202D_202C_200B_200B_206E_206E_202D_200C_206E_206C_202C_202B_200B_206C_200E_200F_202E(dialogueChoice4, _202B_202C_206D_200C_200B_202E_202E_200B_202C_200B_202B_200C_206E_206A_200B_200F_206A_202C_200E_200B_200B_202D_206C_202C_200D_200C_206A_200D_202A_202C_202D_206B_202D_202B_202E_202A_206F_200F_202E_202D_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(842653526))); - _202B_206A_200C_202C_206F_206A_202D_202B_206B_202A_206B_200E_206D_202C_202B_202B_202D_202A_202C_202A_206D_202E_200E_206B_206A_202E_206C_200B_206F_200B_200F_202E_206C_202E_202C_202D_206B_202D_202B_206A_202E(dialogueChoice4, true); - _202A_200F_200B_202B_202A_200E_206D_200C_200C_202B_200D_200E_202E_202C_202E_202C_200E_202E_202D_206D_202B_206F_206F_206B_206C_206A_206A_200B_206C_202E_202C_202A_200B_200C_200F_200B_200B_206A_206C_200D_202E(dialogueChoice4, _202B_202C_206D_200C_200B_202E_202E_200B_202C_200B_202B_200C_206E_206A_200B_200F_206A_202C_200E_200B_200B_202D_206C_202C_200D_200C_206A_200D_202A_202C_202D_206B_202D_202B_202E_202A_206F_200F_202E_202D_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1914742090))); - _200D_202B_200F_206B_200D_206B_200B_200F_202B_206B_202B_202A_202B_200F_200F_200D_200C_206A_206B_202D_206D_206A_206D_206B_202C_200E_200E_206F_206A_202B_206D_202B_202A_206C_202E_202E_202A_200F_206C_206D_202E(dialogueChoice4, true); - list.Add(new DialogueChoiceInfo(quest4, dialogueChoice4)); - num = 897579788; - continue; - } - case 1: - { - QuestSequence? questSequence2 = _003C_003Ec__DisplayClass55_.quest.FindSequence(questProgress.Sequence); - questStep = ((questSequence2 != null) ? _202B_200C_202E_200B_202E_202E_200C_206C_200B_200F_200D_200C_202C_202E_206A_202E_202D_206E_202C_206E_206E_200B_200D_200B_206A_200E_202A_206E_200D_200F_200E_200F_200D_206C_206B_200D_200F_200B_206A_202E_202E(questSequence2).FirstOrDefault((QuestStep x) => _003C_003Ec._206B_202D_206F_202A_202B_200E_202B_202B_206D_206A_206D_202E_200D_206A_200F_202D_206D_206C_206F_202D_200C_200C_206E_206F_202D_200E_202C_200B_206E_202C_206D_206C_200F_202C_206B_200B_200F_206B_202C_202E(x) == EInteractionType.SinglePlayerDuty) : null); - num = 897579778; - continue; - } - case 6: - eAetheryteLocation = _202C_200E_206D_206E_202B_206A_202E_202B_202E_200E_202E_206A_206C_200B_202B_206A_202C_206F_202D_200E_200D_200C_206B_202B_200F_206E_200E_206F_202C_202B_206E_206D_206E_206D_206F_202B_202D_206A_202D_202A_202E(questStep); - num = ((!eAetheryteLocation.HasValue) ? 897579804 : 897579795); - continue; - case 12: - { - QuestSequence? questSequence4 = _003C_003Ec__DisplayClass55_.quest.FindSequence(questProgress.Sequence); - questStep = ((questSequence4 != null) ? _200D_200E_200D_206C_206D_200C_200F_200C_206A_206C_202A_206C_202A_200C_200C_202A_206C_202E_206C_200E_202C_202D_200E_202A_200F_200F_200E_202E_200C_200D_206C_202C_200E_200B_206E_206A_200D_200D_200C_200D_202E(questSequence4, questProgress.Step) : null); - num = 897579780; - continue; - } - case 21: - num = ((questStep != null) ? 897579780 : 897579803); - continue; - case 14: - num = ((!source.Any((EAetheryteLocation x) => _aetheryteFunctions.CanRegisterFreeOrFavoriteAetheryte(x) == AetheryteRegistrationResult.SecurityTokenFreeDestinationAvailable)) ? 897579782 : 897579805); - continue; - case 27: - num10 = FindTargetTerritoryFromQuestStep(questProgress); - if (num10.HasValue) + QuestSequence questSequence2 = quest.FindSequence(questProgress.Sequence); + if (questSequence2 != null && questSequence2.Steps.Count > 0) { - num = 897579802; - continue; + List<QuestStep> steps = questSequence2.Steps; + questStep = steps[steps.Count - 1]; } - break; - case 15: - { - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1507339893), Array.Empty<object>()); - Questionable.Model.Quest quest5 = _003C_003Ec__DisplayClass55_.quest; - DialogueChoice dialogueChoice5 = _200D_200E_206A_202E_200F_206B_206D_206B_200C_200E_202D_206C_206F_200B_200C_200F_202A_202D_206D_200B_206E_206F_200F_200B_202C_200B_202B_202B_202E_206B_202C_202B_200D_206B_206A_202B_206F_206B_202B_206D_202E(); - _202B_206E_200F_202A_206A_200C_202C_200D_200D_202A_206B_202C_200D_200C_202E_206D_206D_202D_202A_202B_206D_200E_202A_202E_200D_200B_200D_200C_202A_200E_200B_202A_200C_206D_200F_202D_206C_206C_206C_202C_202E(dialogueChoice5, EDialogChoiceType.List); - _202E_206A_200D_200B_206F_206C_202A_206B_202D_200C_202A_202D_202D_206D_200B_206F_202B_202B_202E_200D_202B_202C_202A_206B_206C_206D_200D_206E_200B_206C_206D_202C_202A_206A_206E_206A_200D_200E_206D_202E_202E(dialogueChoice5, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2093996360)); - _202A_202A_202B_206A_200F_202D_202D_206E_202D_200B_206A_206A_206D_206B_202E_206B_202A_202B_206E_206C_200D_202A_206B_206F_202D_202C_200B_200B_206E_206E_202D_200C_206E_206C_202C_202B_200B_206C_200E_200F_202E(dialogueChoice5, _202B_202C_206D_200C_200B_202E_202E_200B_202C_200B_202B_200C_206E_206A_200B_200F_206A_202C_200E_200B_200B_202D_206C_202C_200D_200C_206A_200D_202A_202C_202D_206B_202D_202B_202E_202A_206F_200F_202E_202D_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1362537579))); - _202A_200F_200B_202B_202A_200E_206D_200C_200C_202B_200D_200E_202E_202C_202E_202C_200E_202E_202D_206D_202B_206F_206F_206B_206C_206A_206A_200B_206C_202E_202C_202A_200B_200C_200F_200B_200B_206A_206C_200D_202E(dialogueChoice5, _202B_202C_206D_200C_200B_202E_202E_200B_202C_200B_202B_200C_206E_206A_200B_200F_206A_202C_200E_200B_200B_202D_206C_202C_200D_200C_206A_200D_202A_202C_202D_206B_202D_202B_202E_202A_206F_200F_202E_202D_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(234500203))); - list.Add(new DialogueChoiceInfo(quest5, dialogueChoice5)); - num = 897579801; - continue; } - case 20: + if (questStep == null) { - QuestSequence? questSequence3 = _003C_003Ec__DisplayClass55_.quest.FindSequence(questProgress.Sequence); - IEnumerable<DialogueChoice> enumerable = ((questSequence3 != null) ? _202B_200C_202E_200B_202E_202E_200C_206C_200B_200F_200D_200C_202C_202E_206A_202E_202D_206E_202C_206E_206E_200B_200D_200B_206A_200E_202A_206E_200D_200F_200E_200F_200D_206C_206B_200D_200F_200B_206A_202E_202E(questSequence3).SelectMany((QuestStep x) => _003C_003Ec._200C_202A_206B_202A_202C_200E_200B_202A_206F_206A_206F_200E_206A_202D_200C_200D_202A_202E_200D_206C_206C_200D_206A_206B_202B_202E_206E_202E_202B_206D_200F_206B_206D_206B_206A_206D_200C_200D_206D_206F_202E(x)) : null); - if (enumerable != null) + _logger.LogDebug("Ignoring current quest dialogue choices, no active step"); + } + else + { + list.AddRange(questStep.DialogueChoices.Select((DialogueChoice x) => new DialogueChoiceInfo(quest, x))); + if (questStep.PurchaseMenu != null) { - list.AddRange(enumerable.Select(_003C_003Ec__DisplayClass55_._003CHandleListChoice_003Eb__5)); + list.Add(new DialogueChoiceInfo(quest, new DialogueChoice + { + Type = EDialogChoiceType.List, + ExcelSheet = questStep.PurchaseMenu.ExcelSheet, + Prompt = null, + Answer = questStep.PurchaseMenu.Key + })); } - flag = questSequence3 != null && _202B_200C_202E_200B_202E_202E_200C_206C_200B_200F_200D_200C_202C_202E_206A_202E_202D_206E_202C_206E_206E_200B_200D_200B_206A_200E_202A_206E_200D_200F_200E_200F_200D_206C_206B_200D_200F_200B_206A_202E_202E(questSequence3).Any((QuestStep x) => _003C_003Ec._206B_202D_206F_202A_202B_200E_202B_202B_206D_206A_206D_202E_200D_206A_200F_202D_206D_206C_206F_202D_200C_200C_206E_206F_202D_200E_202C_200B_206E_202C_206D_206C_200F_202C_206B_200B_200F_206B_202C_202E(x) == EInteractionType.UnlockTaxiStand); - source = ((questSequence3 != null) ? (from x in _202B_200C_202E_200B_202E_202E_200C_206C_200B_200F_200D_200C_202C_202E_206A_202E_202D_206E_202C_206E_206E_200B_200D_200B_206A_200E_202A_206E_200D_200F_200E_200F_200D_206C_206B_200D_200F_200B_206A_202E_202E(questSequence3).Where(delegate(QuestStep x) - { - int num37 = ((x == null) ? (-59017433) : (-59017434)); - while (true) - { - int num38 = num37; - int num39 = -59017433; - int num40 = num38; - switch ((num40 | num39) - (num40 & num39)) - { - case 2: - return _003C_003Ec._202B_202B_206C_200D_202B_200D_206D_202D_200C_200B_200F_202A_206C_202D_206B_206E_202A_200D_200B_206E_202E_202A_202B_200B_206E_202D_202C_206B_202A_200C_200D_202D_200B_200E_202E_202B_200E_200B_200E_202B_202E(x).HasValue; - case 1: - num37 = ((_003C_003Ec._206B_202D_206F_202A_202B_200E_202B_202B_206D_206A_206D_202E_200D_206A_200F_202D_206D_206C_206F_202D_200C_200C_206E_206F_202D_200E_202C_200B_206E_202C_206D_206C_200F_202C_206B_200B_200F_206B_202C_202E(x) != EInteractionType.RegisterFreeOrFavoredAetheryte) ? (-59017433) : (-59017435)); - break; - case 3: - num37 = -59017434; - break; - case 0: - return false; - } - } - }) - select _003C_003Ec._202B_202B_206C_200D_202B_200D_206D_202D_200C_200B_200F_202A_206C_202D_206B_206E_202A_200D_200B_206E_202E_202A_202B_200B_206E_202D_202C_206B_202A_200C_200D_202D_200B_200E_202E_202B_200E_200B_200E_202B_202E(x).Value).ToList() : null) ?? new List<EAetheryteLocation>(); - num = 897579794; - continue; - } - case 0: - { - List<QuestStep> list4 = _202C_206F_200B_206E_200D_200B_206B_202A_200E_206D_200F_202E_202C_206D_202C_200F_206B_206C_202C_202D_200B_202B_206F_202B_202A_206B_206B_200F_202C_206A_202B_202A_206A_202C_202E_200D_206D_200E_202E_206C_202E(questSequence); - questStep = list4[list4.Count - 1]; - num = 897579787; - continue; - } - case 8: - num = ((_202A_206C_200B_202D_206C_206E_206C_200F_200E_202B_206E_206D_200C_206E_206A_206C_202C_206F_200F_206A_200B_206F_200B_202B_200B_206B_200B_202E_202D_200B_202A_200E_206E_206C_202D_202B_200E_200E_200B_200E_202E(questStep) != EInteractionType.RegisterFreeOrFavoredAetheryte) ? 897579804 : 897579793); - continue; - case 22: - questStep = null; - num = ((!_territoryData.IsQuestBattleInstance(_200D_206E_200C_200C_202A_200B_200E_202D_206E_206E_200E_200D_206D_200C_202B_200B_202A_206F_206F_206F_206C_206B_200C_200B_200F_200E_200D_200E_206B_202E_200E_200C_206E_200C_206F_206E_202B_206D_206B_202E(_clientState))) ? 897579778 : 897579798); - continue; - case 28: - num = ((questStep != null) ? 897579783 : 897579790); - continue; - case 26: - num = ((_202B_200C_202E_200B_202E_202E_200C_206C_200B_200F_200D_200C_202C_202E_206A_202E_202D_206E_202C_206E_206E_200B_200D_200B_206A_200E_202A_206E_200D_200F_200E_200F_200D_206C_206B_200D_200F_200B_206A_202E_202E(questSequence).Count <= 0) ? 897579787 : 897579799); - continue; - case 5: - num = ((!flag) ? 897579801 : 897579800); - continue; - case 13: - { - using (List<string>.Enumerator enumerator = answers.GetEnumerator()) + if (questStep != null && questStep.InteractionType == EInteractionType.RegisterFreeOrFavoredAetheryte) { - num = -827856624; - while (true) + EAetheryteLocation? aetheryte = questStep.Aetheryte; + if (aetheryte.HasValue) { - int num7 = num; - num3 = -827856623; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 1: - num = (enumerator.MoveNext() ? (-827856622) : (-827856620)); - break; - case 3: - current = enumerator.Current; - num = ((current == null) ? (-827856624) : (-827856619)); - break; - case 2: - { - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1614302542), new object[2] { warpId, warpText }); - Questionable.Model.Quest quest = _003C_003Ec__DisplayClass55_.quest; - DialogueChoice dialogueChoice = _200D_200E_206A_202E_200F_206B_206D_206B_200C_200E_202D_206C_206F_200B_200C_200F_202A_202D_206D_200B_206E_206F_200F_200B_202C_200B_202B_202B_202E_206B_202C_202B_200D_206B_206A_202B_206F_206B_202B_206D_202E(); - _202B_206E_200F_202A_206A_200C_202C_200D_200D_202A_206B_202C_200D_200C_202E_206D_206D_202D_202A_202B_206D_200E_202A_202E_200D_200B_200D_200C_202A_200E_200B_202A_200C_206D_200F_202D_206C_206C_206C_202C_202E(dialogueChoice, EDialogChoiceType.List); - _202E_206A_200D_200B_206F_206C_202A_206B_202D_200C_202A_202D_202D_206D_200B_206F_202B_202B_202E_200D_202B_202C_202A_206B_206C_206D_200D_206E_200B_206C_206D_202C_202A_206A_206E_206A_200D_200E_206D_202E_202E(dialogueChoice, (string)null); - _202A_202A_202B_206A_200F_202D_202D_206E_202D_200B_206A_206A_206D_206B_202E_206B_202A_202B_206E_206C_200D_202A_206B_206F_202D_202C_200B_200B_206E_206E_202D_200C_206E_206C_202C_202B_200B_206C_200E_200F_202E(dialogueChoice, (ExcelRef)null); - _202A_200F_200B_202B_202A_200E_206D_200C_200C_202B_200D_200E_202E_202C_202E_202C_200E_202E_202D_206D_202B_206F_206F_206B_206C_206A_206A_200B_206C_202E_202C_202A_200B_200C_200F_200B_200B_206A_206C_200D_202E(dialogueChoice, _206D_206F_206D_206E_206B_206A_206C_206D_206C_202D_200D_202E_202C_206C_200F_200C_202B_200F_206E_202C_206F_200B_206C_206E_202C_202C_206E_202B_206E_206F_200C_200B_206E_202B_200C_200B_206B_202C_200E_206B_202E(warpText)); - list.Add(new DialogueChoiceInfo(quest, dialogueChoice)); - num = -827856624; - break; - } - case 4: - num = ((!TryFindWarp(num10.Value, current, out warpId, out warpText)) ? (-827856624) : (-827856621)); - break; - case 0: - num = -827856624; - break; - case 5: - goto end_IL_07ef; - } - continue; - end_IL_07ef: - break; + EAetheryteLocation valueOrDefault = aetheryte.GetValueOrDefault(); + int num = 1; + List<EAetheryteLocation> list3 = new List<EAetheryteLocation>(num); + CollectionsMarshal.SetCount(list3, num); + CollectionsMarshal.AsSpan(list3)[0] = valueOrDefault; + source = list3; } } - break; + flag = questStep.InteractionType == EInteractionType.UnlockTaxiStand; } + } + if (flag) + { + _logger.LogDebug("Adding chocobo taxi stand unlock dialogue choices"); + list.Add(new DialogueChoiceInfo(quest, new DialogueChoice + { + Type = EDialogChoiceType.List, + ExcelSheet = "transport/ChocoboTaxiStand", + Prompt = ExcelRef.FromKey("TEXT_CHOCOBOTAXISTAND_00000_Q1_000_1"), + Answer = ExcelRef.FromKey("TEXT_CHOCOBOTAXISTAND_00000_A1_000_3") + })); + } + if (source.Any((EAetheryteLocation x) => _aetheryteFunctions.CanRegisterFreeOrFavoriteAetheryte(x) == AetheryteRegistrationResult.SecurityTokenFreeDestinationAvailable)) + { + _logger.LogDebug("Adding security token aetheryte unlock dialogue choice"); + list.Add(new DialogueChoiceInfo(quest, new DialogueChoice + { + Type = EDialogChoiceType.List, + ExcelSheet = "transport/Aetheryte", + Prompt = ExcelRef.FromKey("TEXT_AETHERYTE_MAINMENU_TITLE"), + PromptIsRegularExpression = true, + Answer = ExcelRef.FromKey("TEXT_AETHERYTE_REGISTER_TOKEN_FAVORITE"), + AnswerIsRegularExpression = true + })); + } + else if (source.Any((EAetheryteLocation x) => _aetheryteFunctions.CanRegisterFreeOrFavoriteAetheryte(x) == AetheryteRegistrationResult.FavoredDestinationAvailable)) + { + _logger.LogDebug("Adding favored aetheryte unlock dialogue choice"); + list.Add(new DialogueChoiceInfo(quest, new DialogueChoice + { + Type = EDialogChoiceType.List, + ExcelSheet = "transport/Aetheryte", + Prompt = ExcelRef.FromKey("TEXT_AETHERYTE_MAINMENU_TITLE"), + PromptIsRegularExpression = true, + Answer = ExcelRef.FromKey("TEXT_AETHERYTE_REGISTER_FAVORITE"), + AnswerIsRegularExpression = true + })); + } + ushort? num2 = FindTargetTerritoryFromQuestStep(questProgress); + if (num2.HasValue) + { + foreach (string answer in answers) + { + if (answer != null && TryFindWarp(num2.Value, answer, out uint? warpId, out string warpText)) + { + _logger.LogDebug("Adding warp {Id}, {Prompt}", warpId, warpText); + list.Add(new DialogueChoiceInfo(quest, new DialogueChoice + { + Type = EDialogChoiceType.List, + ExcelSheet = null, + Prompt = null, + Answer = ExcelRef.FromSheetValue(warpText) + })); + } } - break; } } else { - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1928126356), Array.Empty<object>()); + _logger.LogDebug("Ignoring current quest dialogue choices, no active quest"); } - IGameObject gameObject = _206E_206B_206B_200F_206F_200C_206E_206C_202A_202E_202A_206D_206A_206B_206F_206A_200D_200B_202E_202C_206F_200D_206E_206D_200E_206D_206B_202E_202E_202E_202C_202E_200B_200E_200E_200E_200C_202C_200E_200C_202E(_targetManager); - if (gameObject != null) + IGameObject target = _targetManager.Target; + if (target != null) { - IEnumerator<IQuestInfo> enumerator2 = (from x in _questData.GetAllByIssuerDataId(_206B_202D_202B_206A_200C_202C_206B_206C_206E_200E_202C_202A_202D_206E_206C_200D_202A_206F_200E_206B_206B_206A_202B_202C_202C_200B_200C_202B_202B_200D_200C_202E_206D_206F_202B_200B_200B_200F_202C_206C_202E(gameObject)) + foreach (IQuestInfo item in from x in _questData.GetAllByIssuerDataId(target.BaseId) where x.QuestId is QuestId - select x).GetEnumerator(); - try + select x) { - num = 820791829; - _003C_003Ec__DisplayClass55_1 _003C_003Ec__DisplayClass55_2 = default(_003C_003Ec__DisplayClass55_1); - List<DialogueChoice> list5 = default(List<DialogueChoice>); - IQuestInfo current2 = default(IQuestInfo); - while (true) + if (!_questFunctions.IsReadyToAcceptQuest(item.QuestId) || !_questRegistry.TryGetQuest(item.QuestId, out Questionable.Model.Quest knownQuest)) { - int num12 = num; - int num3 = 820791831; - int num4 = num12; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = (_206C_206B_202B_206D_200F_202A_200B_202C_206B_206D_202B_202C_206A_206E_202C_206A_206B_202C_206E_206C_202D_206C_200E_202A_200B_200B_200C_200E_202D_206D_200B_202E_206C_202E_200B_200B_200D_206D_200E_202C_202E((IEnumerator)enumerator2) ? 820791826 : 820791828); - break; - case 7: - { - QuestSequence? questSequence5 = _003C_003Ec__DisplayClass55_2.knownQuest.FindSequence(0); - list5 = ((questSequence5 != null) ? _202B_200C_202E_200B_202E_202E_200C_206C_200B_200F_200D_200C_202C_202E_206A_202E_202D_206E_202C_206E_206E_200B_200D_200B_206A_200E_202A_206E_200D_200F_200E_200F_200D_206C_206B_200D_200F_200B_206A_202E_202E(questSequence5).SelectMany((QuestStep x) => _003C_003Ec._200C_202A_206B_202A_202C_200E_200B_202A_206F_206A_206F_200E_206A_202D_200C_200D_202A_202E_200D_206C_206C_200D_206A_206B_202B_202E_206E_202E_202B_206D_200F_206B_206D_206B_206A_206D_200C_200D_206D_206F_202E(x)).ToList() : null); - num = ((list5 == null) ? 820791829 : 820791825); - break; - } - case 0: - num = ((!_questRegistry.TryGetQuest(current2.QuestId, out _003C_003Ec__DisplayClass55_2.knownQuest)) ? 820791829 : 820791824); - break; - case 5: - current2 = enumerator2.Current; - _003C_003Ec__DisplayClass55_2 = new _003C_003Ec__DisplayClass55_1(); - num = ((!_questFunctions.IsReadyToAcceptQuest(current2.QuestId)) ? 820791829 : 820791831); - break; - case 6: - num = ((list5.Count <= 0) ? 820791829 : 820791830); - break; - case 1: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(638333770), new object[2] { list5.Count, current2.Name }); - list.AddRange(list5.Select(_003C_003Ec__DisplayClass55_2._003CHandleListChoice_003Eb__13)); - num = 820791829; - break; - case 4: - num = 820791829; - break; - case 3: - goto end_IL_09aa; - } continue; - end_IL_09aa: - break; } - } - finally - { - num = ((enumerator2 == null) ? 1718720169 : 1718720170); - while (true) + List<DialogueChoice> list4 = knownQuest.FindSequence(0)?.Steps.SelectMany((QuestStep x) => x.DialogueChoices).ToList(); + if (list4 != null && list4.Count > 0) { - int num13 = num; - int num3 = 1718720171; - int num4 = num13; - int num14 = num4 + num3; - int num15 = num4 & num3; - switch (num14 - (num15 + num15)) - { - case 2: - goto end_IL_0b9f; - case 1: - _202B_206A_200F_206A_206C_202C_206D_202D_200E_202C_200F_202A_202A_206B_200D_206B_206E_202D_202B_200C_202E_200B_200D_206C_200B_206E_206D_206B_202C_200D_200C_206F_202B_200D_200F_206E_206E_200E_202E_202D_202E((IDisposable)enumerator2); - num = 1718720169; - break; - case 0: - num = 1718720170; - break; - } - continue; - end_IL_0b9f: - break; + _logger.LogDebug("Adding {Count} dialogue choices from not accepted quest {QuestName}", list4.Count, item.Name); + list.AddRange(list4.Select((DialogueChoice x) => new DialogueChoiceInfo(knownQuest, x))); } } } - num = ((!_fateController.IsRunning) ? (-1183571135) : (-1183571133)); - List<DialogueChoice> list6 = default(List<DialogueChoice>); - ushort? smartNavDestTerritoryId = default(ushort?); - string current3 = default(string); - uint? warpId2 = default(uint?); - string warpText2 = default(string); - while (true) + if (_fateController.IsRunning) { - int num16 = num; - int num3 = -1183571136; - int num4 = num16; - switch ((num4 | num3) - (num4 & num3)) + List<DialogueChoice> list5 = _fateController.CurrentFate?.TransformDialogueChoices; + if (list5 != null) { - default: - continue; - case 2: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1083305359), new object[1] { list6.Count }); - list.AddRange(list6.Select((DialogueChoice x) => new DialogueChoiceInfo(null, x))); - num = -1183571135; - continue; - case 1: - smartNavDestTerritoryId = SmartNavDestTerritoryId; - if (smartNavDestTerritoryId.HasValue) - { - num = -1183571132; - continue; - } - break; - case 0: - num = -1183571133; - continue; - case 3: - { - FateDefinition? currentFate = _fateController.CurrentFate; - list6 = ((currentFate != null) ? _202C_200F_202B_202C_200F_202E_206A_200E_200D_206E_206C_202A_202C_202B_206D_202C_200D_206F_200B_202E_202B_202E_200F_202C_200F_200E_200E_202B_206A_206A_202A_202D_200D_200F_200E_206A_200B_202B_206D_202A_202E(currentFate) : null); - num = ((list6 == null) ? (-1183571135) : (-1183571134)); - continue; + _logger.LogDebug("Adding {Count} dialogue choices from active FATE", list5.Count); + list.AddRange(list5.Select((DialogueChoice x) => new DialogueChoiceInfo(null, x))); } - case 4: + } + ushort? smartNavDestTerritoryId = SmartNavDestTerritoryId; + if (smartNavDestTerritoryId.HasValue) + { + ushort valueOrDefault2 = smartNavDestTerritoryId.GetValueOrDefault(); + foreach (string answer2 in answers) { - ushort valueOrDefault2 = smartNavDestTerritoryId.GetValueOrDefault(); - using (List<string>.Enumerator enumerator = answers.GetEnumerator()) + if (answer2 != null && TryFindWarp(valueOrDefault2, answer2, out uint? warpId2, out string warpText2)) { - num = -1608964332; - while (true) + _logger.LogDebug("SmartNav: Adding warp {Id}, {Text} for list selection", warpId2, warpText2); + list.Add(new DialogueChoiceInfo(null, new DialogueChoice { - int num17 = num; - num3 = -1608964332; - num4 = num17; - int num18 = num4 + num3; - int num19 = num4 & num3; - switch (num18 - (num19 + num19)) - { - case 2: - num = ((!TryFindWarp(valueOrDefault2, current3, out warpId2, out warpText2)) ? (-1608964332) : (-1608964335)); - break; - case 1: - current3 = enumerator.Current; - num = ((current3 == null) ? (-1608964332) : (-1608964330)); - break; - case 0: - num = (enumerator.MoveNext() ? (-1608964331) : (-1608964329)); - break; - case 5: - { - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-609989729), new object[2] { warpId2, warpText2 }); - DialogueChoice dialogueChoice6 = _200D_200E_206A_202E_200F_206B_206D_206B_200C_200E_202D_206C_206F_200B_200C_200F_202A_202D_206D_200B_206E_206F_200F_200B_202C_200B_202B_202B_202E_206B_202C_202B_200D_206B_206A_202B_206F_206B_202B_206D_202E(); - _202B_206E_200F_202A_206A_200C_202C_200D_200D_202A_206B_202C_200D_200C_202E_206D_206D_202D_202A_202B_206D_200E_202A_202E_200D_200B_200D_200C_202A_200E_200B_202A_200C_206D_200F_202D_206C_206C_206C_202C_202E(dialogueChoice6, EDialogChoiceType.List); - _202A_202A_202B_206A_200F_202D_202D_206E_202D_200B_206A_206A_206D_206B_202E_206B_202A_202B_206E_206C_200D_202A_206B_206F_202D_202C_200B_200B_206E_206E_202D_200C_206E_206C_202C_202B_200B_206C_200E_200F_202E(dialogueChoice6, (ExcelRef)null); - _202A_200F_200B_202B_202A_200E_206D_200C_200C_202B_200D_200E_202E_202C_202E_202C_200E_202E_202D_206D_202B_206F_206F_206B_206C_206A_206A_200B_206C_202E_202C_202A_200B_200C_200F_200B_200B_206A_206C_200D_202E(dialogueChoice6, _206D_206F_206D_206E_206B_206A_206C_206D_206C_202D_200D_202E_202C_206C_200F_200C_202B_200F_206E_202C_206F_200B_206C_206E_202C_202C_206E_202B_206E_206F_200C_200B_206E_202B_200C_200B_206B_202C_200E_206B_202E(warpText2)); - list.Add(new DialogueChoiceInfo(null, dialogueChoice6)); - num = -1608964332; - break; - } - case 4: - num = -1608964332; - break; - case 3: - goto end_IL_0d35; - } - continue; - end_IL_0d35: - break; - } + Type = EDialogChoiceType.List, + Prompt = null, + Answer = ExcelRef.FromSheetValue(warpText2) + })); } - break; } - } - break; } string smartNavTaxiDestPlaceName = SmartNavTaxiDestPlaceName; if (smartNavTaxiDestPlaceName != null) { - using List<string>.Enumerator enumerator = answers.GetEnumerator(); - num = 1140002236; - string current4 = default(string); - while (true) + foreach (string answer3 in answers) { - int num20 = num; - int num3 = 1140002233; - int num4 = num20; - switch ((num4 | num3) - (num4 & num3)) + if (answer3 != null && GameFunctions.GameStringEquals(answer3, smartNavTaxiDestPlaceName)) { - case 4: - { - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1976115373), new object[1] { smartNavTaxiDestPlaceName }); - DialogueChoice dialogueChoice7 = _200D_200E_206A_202E_200F_206B_206D_206B_200C_200E_202D_206C_206F_200B_200C_200F_202A_202D_206D_200B_206E_206F_200F_200B_202C_200B_202B_202B_202E_206B_202C_202B_200D_206B_206A_202B_206F_206B_202B_206D_202E(); - _202B_206E_200F_202A_206A_200C_202C_200D_200D_202A_206B_202C_200D_200C_202E_206D_206D_202D_202A_202B_206D_200E_202A_202E_200D_200B_200D_200C_202A_200E_200B_202A_200C_206D_200F_202D_206C_206C_206C_202C_202E(dialogueChoice7, EDialogChoiceType.List); - _202A_202A_202B_206A_200F_202D_202D_206E_202D_200B_206A_206A_206D_206B_202E_206B_202A_202B_206E_206C_200D_202A_206B_206F_202D_202C_200B_200B_206E_206E_202D_200C_206E_206C_202C_202B_200B_206C_200E_200F_202E(dialogueChoice7, (ExcelRef)null); - _202A_200F_200B_202B_202A_200E_206D_200C_200C_202B_200D_200E_202E_202C_202E_202C_200E_202E_202D_206D_202B_206F_206F_206B_206C_206A_206A_200B_206C_202E_202C_202A_200B_200C_200F_200B_200B_206A_206C_200D_202E(dialogueChoice7, _206D_206F_206D_206E_206B_206A_206C_206D_206C_202D_200D_202E_202C_206C_200F_200C_202B_200F_206E_202C_206F_200B_206C_206E_202C_202C_206E_202B_206E_206F_200C_200B_206E_202B_200C_200B_206B_202C_200E_206B_202E(smartNavTaxiDestPlaceName)); - list.Add(new DialogueChoiceInfo(null, dialogueChoice7)); - num = 1140002236; - break; + _logger.LogDebug("SmartNav: Adding taxi destination {Dest} for list selection", smartNavTaxiDestPlaceName); + list.Add(new DialogueChoiceInfo(null, new DialogueChoice + { + Type = EDialogChoiceType.List, + Prompt = null, + Answer = ExcelRef.FromSheetValue(smartNavTaxiDestPlaceName) + })); } - case 2: - num = ((!GameFunctions.GameStringEquals(current4, smartNavTaxiDestPlaceName)) ? 1140002236 : 1140002237); - break; - case 1: - current4 = enumerator.Current; - num = ((current4 == null) ? 1140002236 : 1140002235); - break; - case 3: - num = 1140002236; - break; - case 5: - num = (enumerator.MoveNext() ? 1140002232 : 1140002233); - break; - case 0: - goto end_IL_0e8a; - } - continue; - end_IL_0e8a: - break; } } string aethernetDestinationName = AethernetDestinationName; if (aethernetDestinationName != null) { - using List<string>.Enumerator enumerator = answers.GetEnumerator(); - num = -62641593; - string current5 = default(string); - while (true) + foreach (string answer4 in answers) { - int num21 = num; - int num3 = -62641598; - int num4 = num21; - switch ((num4 | num3) - (num4 & num3)) + if (answer4 != null && GameFunctions.GameStringEquals(answer4, aethernetDestinationName)) { - case 2: - num = -62641593; - break; - case 0: - num = ((!GameFunctions.GameStringEquals(current5, aethernetDestinationName)) ? (-62641593) : (-62641594)); - break; - case 4: - { - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-588273048), new object[1] { aethernetDestinationName }); - DialogueChoice dialogueChoice8 = _200D_200E_206A_202E_200F_206B_206D_206B_200C_200E_202D_206C_206F_200B_200C_200F_202A_202D_206D_200B_206E_206F_200F_200B_202C_200B_202B_202B_202E_206B_202C_202B_200D_206B_206A_202B_206F_206B_202B_206D_202E(); - _202B_206E_200F_202A_206A_200C_202C_200D_200D_202A_206B_202C_200D_200C_202E_206D_206D_202D_202A_202B_206D_200E_202A_202E_200D_200B_200D_200C_202A_200E_200B_202A_200C_206D_200F_202D_206C_206C_206C_202C_202E(dialogueChoice8, EDialogChoiceType.List); - _202A_202A_202B_206A_200F_202D_202D_206E_202D_200B_206A_206A_206D_206B_202E_206B_202A_202B_206E_206C_200D_202A_206B_206F_202D_202C_200B_200B_206E_206E_202D_200C_206E_206C_202C_202B_200B_206C_200E_200F_202E(dialogueChoice8, (ExcelRef)null); - _202A_200F_200B_202B_202A_200E_206D_200C_200C_202B_200D_200E_202E_202C_202E_202C_200E_202E_202D_206D_202B_206F_206F_206B_206C_206A_206A_200B_206C_202E_202C_202A_200B_200C_200F_200B_200B_206A_206C_200D_202E(dialogueChoice8, _206D_206F_206D_206E_206B_206A_206C_206D_206C_202D_200D_202E_202C_206C_200F_200C_202B_200F_206E_202C_206F_200B_206C_206E_202C_202C_206E_202B_206E_206F_200C_200B_206E_202B_200C_200B_206B_202C_200E_206B_202E(aethernetDestinationName)); - list.Add(new DialogueChoiceInfo(null, dialogueChoice8)); - num = -62641593; - break; + _logger.LogDebug("SmartNav: Adding aethernet destination {Dest} for list selection", aethernetDestinationName); + list.Add(new DialogueChoiceInfo(null, new DialogueChoice + { + Type = EDialogChoiceType.List, + Prompt = null, + Answer = ExcelRef.FromSheetValue(aethernetDestinationName) + })); } - case 5: - num = (enumerator.MoveNext() ? (-62641597) : (-62641599)); - break; - case 1: - current5 = enumerator.Current; - num = ((current5 == null) ? (-62641593) : (-62641598)); - break; - case 3: - goto end_IL_0fce; + } + } + if (_seasonalDutyController.IsRunning) + { + List<DialogueChoice> list6 = _seasonalDutyController.CurrentDuty?.DialogueChoices; + if (list6 != null && list6.Count > 0) + { + _logger.LogDebug("Adding {Count} dialogue choices from active seasonal duty", list6.Count); + list.AddRange(list6.Select((DialogueChoice x) => new DialogueChoiceInfo(null, x))); + } + } + if (list.Count == 0) + { + _logger.LogDebug("No dialogue choices to check"); + return null; + } + foreach (var (quest3, dialogueChoice2) in list) + { + if (dialogueChoice2.Type != EDialogChoiceType.List) + { + continue; + } + if (dialogueChoice2.SpecialCondition == "NoDutyActions") + { + try + { + ContentDirector* contentDirector = EventFramework.Instance()->GetContentDirector(); + if (contentDirector != null && contentDirector->DutyActionManager.ActionsPresent) + { + _logger.LogDebug("NoDutyActions: actions present, skipping dialogue choice"); + continue; + } + } + catch (Exception exception) + { + _logger.LogError(exception, "Failed to check for duty actions"); + continue; + } + } + if (dialogueChoice2.Answer == null) + { + _logger.LogDebug("Ignoring entry in DialogueChoices, no answer"); + continue; + } + if (dialogueChoice2.DataId.HasValue && dialogueChoice2.DataId != _targetManager.Target?.BaseId) + { + _logger.LogDebug("Skipping entry in DialogueChoice expecting target dataId {ExpectedDataId}, actual target is {ActualTargetId}", dialogueChoice2.DataId, _targetManager.Target?.BaseId); + continue; + } + StringOrRegex stringOrRegex = ResolveReference(quest3, dialogueChoice2.ExcelSheet, dialogueChoice2.Prompt, dialogueChoice2.PromptIsRegularExpression); + StringOrRegex stringOrRegex2 = ResolveReference(quest3, dialogueChoice2.ExcelSheet, dialogueChoice2.Answer, dialogueChoice2.AnswerIsRegularExpression); + if (actualPrompt == null && stringOrRegex != null) + { + _logger.LogDebug("Unexpected excelPrompt: {ExcelPrompt}", stringOrRegex); + continue; + } + if (actualPrompt != null && stringOrRegex != null && !IsMatch(actualPrompt, stringOrRegex)) + { + _logger.LogDebug("Unexpected excelPrompt: {ExcelPrompt}, actualPrompt: {ActualPrompt}", stringOrRegex, actualPrompt); + int? num3 = TryFindAnswerMatchIndex(answers, stringOrRegex2, dialogueChoice2.AnswerIsRegularExpression, quest3, dialogueChoice2); + if (num3.HasValue) + { + list2.Add(num3.Value); } continue; - end_IL_0fce: - break; } - } - num = ((!_seasonalDutyController.IsRunning) ? (-1526467600) : (-1526467595)); - List<DialogueChoice> list7 = default(List<DialogueChoice>); - Questionable.Model.Quest quest7 = default(Questionable.Model.Quest); - DialogueChoice dialogueChoice10 = default(DialogueChoice); - StringOrRegex stringOrRegex = default(StringOrRegex); - int? num31 = default(int?); - StringOrRegex stringOrRegex2 = default(StringOrRegex); - int num27 = default(int); - int? num35 = default(int?); - while (true) - { - int num22 = num; - int num3 = -1526467599; - int num4 = num22; - switch ((num4 | num3) - (num4 & num3)) + if (dialogueChoice2.AnswerIsRegularExpression && stringOrRegex2 != null) { - case 6: - num = ((list7.Count <= 0) ? (-1526467600) : (-1526467598)); - break; - case 4: - { - SeasonalDutyDefinition? currentDuty = _seasonalDutyController.CurrentDuty; - list7 = ((currentDuty != null) ? _200F_200D_206C_200E_206F_202B_200D_206E_200B_206D_202D_206A_206D_200C_202D_206F_206D_206E_206D_206F_206D_202C_200E_200E_200F_200B_200D_206F_200E_200C_206D_206F_206D_206D_200E_206A_206A_206D_200E_206D_202E(currentDuty) : null); - num = ((list7 == null) ? (-1526467600) : (-1526467593)); - break; - } - case 2: - num = -1526467595; - break; - case 1: - num = ((list.Count != 0) ? (-1526467596) : (-1526467599)); - break; - case 3: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1534056102), new object[1] { list7.Count }); - list.AddRange(list7.Select((DialogueChoice x) => new DialogueChoiceInfo(null, x))); - num = -1526467600; - break; - case 0: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2104605404), Array.Empty<object>()); - return null; - case 5: - { - using (List<DialogueChoiceInfo>.Enumerator enumerator3 = list.GetEnumerator()) + int? num4 = FindBestRegexMatch(answers, stringOrRegex2, quest3, dialogueChoice2); + if (!num4.HasValue) { - while (true) - { - IL_182f: - if (enumerator3.MoveNext()) - { - (quest7, dialogueChoice10) = enumerator3.Current; - if (_202B_202C_206E_206A_202D_200E_202C_202B_200F_202E_202B_200B_202B_200E_206E_200B_206C_206F_206A_206B_206E_202E_206C_200D_202E_202B_206F_206A_206F_200E_202C_206A_206F_202B_206C_206C_202C_206D_202D_202C_202E(dialogueChoice10) != EDialogChoiceType.List) - { - continue; - } - if (_202B_200C_200D_200F_202A_206A_206C_206A_202D_206F_200B_200F_200D_206E_202D_200D_202D_200D_206C_200E_206A_202B_202B_206E_206D_206B_206D_202A_202A_200D_202B_202C_200F_202E_206A_200F_202A_206D_206A_206C_202E(_206A_200B_206D_206D_206B_200F_206E_202D_206D_202B_202B_206A_206C_200E_206A_206E_206F_202A_206A_200C_206E_202A_200C_202C_206C_200C_202B_202D_200D_202C_200F_200B_202C_206D_202A_200B_200F_200D_200F_206E_202E(dialogueChoice10), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1063732664))) - { - try - { - ContentDirector* contentDirector = EventFramework.Instance()->GetContentDirector(); - num = ((contentDirector == null) ? 665372634 : 665372633); - while (true) - { - int num23 = num; - num3 = 665372632; - num4 = num23; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 665372633; - break; - case 3: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1750706886), Array.Empty<object>()); - goto IL_182f; - case 1: - num = ((!contentDirector->DutyActionManager.ActionsPresent) ? 665372634 : 665372635); - break; - case 2: - goto end_IL_12e9; - } - continue; - end_IL_12e9: - break; - } - } - catch (Exception ex) - { - _206C_202C_200D_200B_200B_200B_202B_206B_202B_206B_200F_202E_202B_202C_206F_200E_202B_202B_200B_206B_202A_206D_202B_206A_200B_206C_206C_202A_206C_200F_202E_202E_206E_200F_202E_200D_200D_200E_200F_200F_202E((ILogger)_logger, ex, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2069415584), Array.Empty<object>()); - continue; - } - } - num = ((_200B_206B_202B_200F_200F_200E_206B_202D_206F_206A_200B_200C_200F_206C_200F_202E_200E_202E_206A_202C_206B_206E_202B_200E_200B_202B_202B_200C_206D_206A_206E_202E_200E_202E_202E_206F_200E_202B_206A_206E_202E(dialogueChoice10) != null) ? 426070677 : 426070674); - } - else - { - num = 426070686; - } - while (true) - { - int num24 = num; - num3 = 426070681; - num4 = num24; - int num25 = num4 + num3; - int num26 = num4 & num3; - switch (num25 - (num26 + num26)) - { - default: - continue; - case 14: - num = ((stringOrRegex == null) ? 426070683 : 426070676); - continue; - case 23: - num = ((actualPrompt == null) ? 426070685 : 426070678); - continue; - case 8: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-478958355), new object[3] - { - num31.Value, - answers[num31.Value], - actualPrompt - }); - return num31.Value; - case 1: - num = ((stringOrRegex2 == null) ? 426070670 : 426070672); - continue; - case 6: - num = (IsMatch(actualPrompt, stringOrRegex2) ? 426070685 : 426070664); - continue; - case 9: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1880137339), new object[1] { stringOrRegex2 }); - num = 426070666; - continue; - case 0: - { - int num32 = num27; - num3 = 1; - num4 = num32; - int num33 = num4 ^ num3; - int num34 = num4 & num3; - num27 = num33 + (num34 + num34); - num = 426070684; - continue; - } - case 20: - num = 426070674; - continue; - case 10: - { - ILogger<InteractionUiController> logger = _logger; - string text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(78334962); - object[] obj = new object[2] - { - _206D_206A_206E_200B_200D_202E_200D_206E_206F_200E_202A_202A_200E_206D_202D_206D_206D_202B_206C_206F_202A_206F_206E_202B_206B_202A_200C_202C_200C_202E_202B_200F_206A_200B_206F_200F_202E_206A_202A_206C_202E(dialogueChoice10), - null - }; - IGameObject gameObject3 = _206E_206B_206B_200F_206F_200C_206E_206C_202A_202E_202A_206D_206A_206B_206F_206A_200D_200B_202E_202C_206F_200D_206E_206D_200E_206D_206B_202E_202E_202E_202C_202E_200B_200E_200E_200E_200C_202C_200E_200C_202E(_targetManager); - obj[1] = ((gameObject3 != null) ? new uint?(_206B_202D_202B_206A_200C_202C_206B_206C_206E_200E_202C_202A_202D_206E_206C_200D_202A_206F_200E_206B_206B_206A_202B_202C_202C_200B_200C_202B_202B_200D_200C_202E_206D_206F_202B_200B_200B_200F_202C_206C_202E(gameObject3)) : ((uint?)null)); - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)logger, text, obj); - num = 426070666; - continue; - } - case 4: - num = ((!_202A_206A_206B_200F_206F_200C_200E_202E_206C_202E_200C_200C_200B_200E_206F_200E_200E_202C_206A_202A_202D_200F_202D_202E_200D_206B_206F_200E_206A_206F_202D_200E_206E_206B_202E_200D_206B_202C_200E_200C_202E(dialogueChoice10)) ? 426070683 : 426070679); - continue; - case 11: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1814235837), Array.Empty<object>()); - num = 426070666; - continue; - case 16: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(409856380), new object[3] - { - num27, - answers[num27], - actualPrompt - }); - return num27; - case 21: - { - uint? num28 = _206D_206A_206E_200B_200D_202E_200D_206E_206F_200E_202A_202A_200E_206D_202D_206D_206D_202B_206C_206F_202A_206F_206E_202B_206B_202A_200C_202C_200C_202E_202B_200F_206A_200B_206F_200F_202E_206A_202A_206C_202E(dialogueChoice10); - IGameObject gameObject2 = _206E_206B_206B_200F_206F_200C_206E_206C_202A_202E_202A_206D_206A_206B_206F_206A_200D_200B_202E_202C_206F_200D_206E_206D_200E_206D_206B_202E_202E_202E_202C_202E_200B_200E_200E_200E_200C_202C_200E_200C_202E(_targetManager); - uint? num29 = ((gameObject2 != null) ? new uint?(_206B_202D_202B_206A_200C_202C_206B_206C_206E_200E_202C_202A_202D_206E_206C_200D_202A_206F_200E_206B_206B_206A_202B_202C_202C_200B_200C_202B_202B_200D_200C_202E_206D_206F_202B_200B_200B_200F_202C_206C_202E(gameObject2)) : ((uint?)null)); - bool num30 = num28.GetValueOrDefault() == num29.GetValueOrDefault(); - num3 = ((num28.HasValue == num29.HasValue) ? 1 : 0); - num4 = (num30 ? 1 : 0); - num = ((num4 + num3 - (num4 | num3) != 0) ? 426070671 : 426070675); - continue; - } - case 17: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(209530327), new object[2] { stringOrRegex2, actualPrompt }); - num35 = TryFindAnswerMatchIndex(answers, stringOrRegex, _202A_206A_206B_200F_206F_200C_200E_202E_206C_202E_200C_200C_200B_200E_206F_200E_200E_202C_206A_202A_202D_200F_202D_202E_200D_206B_206F_200E_206A_206F_202D_200E_206E_206B_202E_200D_206B_202C_200E_200C_202E(dialogueChoice10), quest7, dialogueChoice10); - num = ((!num35.HasValue) ? 426070666 : 426070682); - continue; - case 2: - num27 = 0; - num = 426070684; - continue; - case 22: - stringOrRegex2 = ResolveReference(quest7, _206F_202C_206F_200C_200C_200D_202A_200F_206B_206B_206C_206C_200E_200F_202A_202D_200C_202C_200C_200B_202C_206E_200F_202B_200D_206C_206A_206F_206C_202C_206E_200F_200F_202E_206F_202E_200B_206B_206B_200E_202E(dialogueChoice10), _206F_202D_200F_200B_200E_206D_200E_206A_206E_200F_202C_200D_206E_202D_200E_206C_202D_200C_202A_200D_200B_200F_200E_202B_200F_202A_206A_206E_200F_206D_206B_202E_202D_202B_200D_206F_200C_200D_206E_200E_202E(dialogueChoice10), _206C_202A_202C_202B_206A_200B_200B_206A_206B_206E_206C_202A_200E_200E_206C_206F_206C_206E_202B_200B_206F_202B_206E_202A_206A_206A_206E_206F_206C_206A_200C_206C_202C_202D_200E_206E_202D_200C_200E_206B_202E(dialogueChoice10)); - stringOrRegex = ResolveReference(quest7, _206F_202C_206F_200C_200C_200D_202A_200F_206B_206B_206C_206C_200E_200F_202A_202D_200C_202C_200C_200B_202C_206E_200F_202B_200D_206C_206A_206F_206C_202C_206E_200F_200F_202E_206F_202E_200B_206B_206B_200E_202E(dialogueChoice10), _200B_206B_202B_200F_200F_200E_206B_202D_206F_206A_200B_200C_200F_206C_200F_202E_200E_202E_206A_202C_206B_206E_202B_200E_200B_202B_202B_200C_206D_206A_206E_202E_200E_202E_202E_206F_200E_202B_206A_206E_202E(dialogueChoice10), _202A_206A_206B_200F_206F_200C_200E_202E_206C_202E_200C_200C_200B_200E_206F_200E_200E_202C_206A_202A_202D_200F_202D_202E_200D_206B_206F_200E_206A_206F_202D_200E_206E_206B_202E_200D_206B_202C_200E_200C_202E(dialogueChoice10)); - num = ((actualPrompt != null) ? 426070670 : 426070680); - continue; - case 3: - list2.Add(num35.Value); - num = 426070666; - continue; - case 12: - num = ((!_206D_206A_206E_200B_200D_202E_200D_206E_206F_200E_202A_202A_200E_206D_202D_206D_206D_202B_206C_206F_202A_206F_206E_202B_206B_202A_200C_202C_200C_202E_202B_200F_206A_200B_206F_200F_202E_206A_202A_206C_202E(dialogueChoice10).HasValue) ? 426070671 : 426070668); - continue; - case 15: - num = ((stringOrRegex2 == null) ? 426070685 : 426070687); - continue; - case 19: - break; - case 5: - num = ((num27 < answers.Count) ? 426070667 : 426070666); - continue; - case 13: - num31 = FindBestRegexMatch(answers, stringOrRegex, quest7, dialogueChoice10); - num = ((!num31.HasValue) ? 426070666 : 426070673); - continue; - case 18: - _206D_200D_200E_202C_200F_200E_202E_206B_206A_202C_206E_202E_202D_206D_206E_206E_200D_200B_200B_206C_206E_200D_200D_206F_200D_202C_202B_200D_202C_200D_200E_206A_200F_202D_202B_202C_206C_200F_200D_200F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-661728963), new object[2] - { - answers[num27], - stringOrRegex - }); - num = ((!IsMatch(answers[num27], stringOrRegex)) ? 426070681 : 426070665); - continue; - case 7: - goto end_IL_13c5; - } - goto IL_182f; - continue; - end_IL_13c5: - break; - } - break; - } - } - int[] array = list2.Distinct().ToArray(); - num = ((array.Length != 1) ? (-1077307619) : (-1077307618)); - while (true) - { - int num36 = num; - num3 = -1077307617; - num4 = num36; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_1963; - case 2: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2079227718), new object[1] { actualPrompt }); - return null; - case 1: - _206D_202E_202E_200D_202C_206A_202B_200F_202D_206F_200C_206A_206C_202A_200D_200D_202A_206D_202D_206B_202D_206F_200C_200B_206B_200F_206A_206E_202D_206B_200C_206C_200E_206A_200D_206C_200E_206F_206B_202C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1985270948), new object[3] - { - actualPrompt, - array[0], - answers[array[0]] - }); - return array[0]; - } continue; - IL_1963: - num = -1077307618; + } + _logger.LogDebug("Returning {Index}: '{Answer}' for '{Prompt}' (best regex match)", num4.Value, answers[num4.Value], actualPrompt); + return num4.Value; + } + for (int num5 = 0; num5 < answers.Count; num5++) + { + _logger.LogTrace("Checking if {ActualAnswer} == {ExpectedAnswer}", answers[num5], stringOrRegex2); + if (IsMatch(answers[num5], stringOrRegex2)) + { + _logger.LogDebug("Returning {Index}: '{Answer}' for '{Prompt}'", num5, answers[num5], actualPrompt); + return num5; } } - } } + int[] array = list2.Distinct().ToArray(); + if (array.Length == 1) + { + _logger.LogWarning("Using answer-only fallback for prompt '{Prompt}'. Selected index {Index}: '{Answer}'", actualPrompt, array[0], answers[array[0]]); + return array[0]; + } + _logger.LogDebug("No matching answer found for {Prompt}.", actualPrompt); + return null; } private static int? TryFindAnswerMatchIndex(List<string?> answers, StringOrRegex? excelAnswer, bool answerIsRegularExpression, Questionable.Model.Quest? quest, DialogueChoice dialogueChoice) { - int num = ((excelAnswer != null) ? (-1499015005) : (-1499015008)); - int num5 = default(int); - while (true) + if (excelAnswer == null) { - int num2 = num; - int num3 = -1499015002; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return null; + } + if (answerIsRegularExpression) + { + return FindBestRegexMatch(answers, excelAnswer, quest, dialogueChoice); + } + for (int i = 0; i < answers.Count; i++) + { + if (IsMatch(answers[i], excelAnswer)) { - case 1: - return FindBestRegexMatch(answers, excelAnswer, quest, dialogueChoice); - case 9: - return null; - case 4: - num = ((!IsMatch(answers[num5], excelAnswer)) ? (-1499014994) : (-1499015007)); - break; - case 0: - num = -1499015008; - break; - case 2: - num5 = 0; - num = -1499015003; - break; - case 8: - { - int num6 = num5; - num3 = 1; - num4 = num6; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - num5 = num7 + (num8 + num8); - num = -1499015003; - break; - } - case 7: - return num5; - case 6: - return null; - case 5: - num = ((!answerIsRegularExpression) ? (-1499015004) : (-1499015001)); - break; - case 3: - num = ((num5 < answers.Count) ? (-1499015006) : (-1499014993)); - break; + return i; } } + return null; } private static int? FindBestRegexMatch(List<string?> answers, StringOrRegex expectedAnswer, Questionable.Model.Quest? quest, DialogueChoice dialogueChoice) { - List<int> list = (from x in answers.Select((string answer, int index) => new { answer, index }).Where(x => - { - int num7 = ((x.answer == null) ? 1616600266 : 1616600265); - while (true) - { - int num8 = num7; - int num9 = 1616600267; - int num10 = num8; - int num11 = num10 + num9; - int num12 = num10 & num9; - switch (num11 - (num12 + num12)) - { - case 0: - goto IL_0048; - case 1: - return false; - case 2: - return expectedAnswer.IsMatch(x.answer); - } - continue; - IL_0048: - num7 = 1616600265; - } - }) + List<int> list = (from x in answers.Select((string answer, int index) => new { answer, index }) + where x.answer != null && expectedAnswer.IsMatch(x.answer) select x.index).ToList(); - int count = list.Count; - int num = ((count == 0) ? 1658119131 : 1658119130); - int? result = default(int?); - while (true) + return list.Count switch { - int num2 = num; - int num3 = 1658119128; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return result; - case 2: - num = ((count == 1) ? 1658119133 : 1658119129); - break; - case 3: - result = null; - num = 1658119128; - break; - case 5: - result = list[0]; - num = 1658119128; - break; - case 6: - result = GetBestMatchFromQuestPath(answers, list, quest, dialogueChoice); - num = 1658119128; - break; - case 4: - num = 1658119130; - break; - case 1: - num = 1658119134; - break; - } - } + 0 => null, + 1 => list[0], + _ => GetBestMatchFromQuestPath(answers, list, quest, dialogueChoice), + }; } private static int GetBestMatchFromQuestPath(List<string?> answers, List<int> matchingIndexes, Questionable.Model.Quest? quest, DialogueChoice dialogueChoice) { - if (quest != null && _200B_206B_202B_200F_200F_200E_206B_202D_206F_206A_200B_200C_200F_206C_200F_202E_200E_202E_206A_202C_206B_206E_202B_200E_200B_202B_202B_200C_206D_206A_206E_202E_200E_202E_202E_206F_200E_202B_206A_206E_202E(dialogueChoice) != null) + if (quest != null && dialogueChoice.Answer != null) { try { string text = null; - int num = ((_202D_202D_206D_206C_206D_206B_206A_206F_206B_200F_206D_200E_206D_206D_206D_200C_200C_200D_202E_202A_206D_202B_202E_202D_206B_200F_202D_202D_202E_206C_202E_202D_202C_202E_200E_200F_206A_202A_206C_206D_202E(_200B_206B_202B_200F_200F_200E_206B_202D_206F_206A_200B_200C_200F_206C_200F_202E_200E_202E_206A_202C_206B_206E_202B_200E_200B_202B_202B_200C_206D_206A_206E_202E_200E_202E_202E_206F_200E_202B_206A_206E_202E(dialogueChoice)) != ExcelRef.EType.RawString) ? 716291791 : 716291789); - int current = default(int); - while (true) + if (dialogueChoice.Answer.Type == ExcelRef.EType.RawString) { - int num2 = num; - int num3 = 716291788; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + text = dialogueChoice.Answer.AsRawString(); + } + if (!string.IsNullOrEmpty(text)) + { + foreach (int matchingIndex in matchingIndexes) { - case 0: - num = 716291789; - break; - case 1: - text = _202C_200C_200B_202A_202A_202D_202C_202E_200F_206F_206A_200B_202A_202D_206A_202D_206D_202C_202B_200F_200F_200F_200C_206A_206C_200C_206B_206B_200E_202D_206F_200C_202E_206B_206F_200F_200B_206E_206C_206E_202E(_200B_206B_202B_200F_200F_200E_206B_202D_206F_206A_200B_200C_200F_206C_200F_202E_200E_202E_206A_202C_206B_206E_202B_200E_200B_202B_202B_200C_206D_206A_206E_202E_200E_202E_202E_206F_200E_202B_206A_206E_202E(dialogueChoice)); - num = 716291791; - break; - case 3: - if (!_200B_206D_200D_206B_202D_206E_200E_206C_206C_202E_206E_200D_200B_206B_206B_200F_200D_202A_202C_202C_200C_206A_206E_206F_206C_200B_206A_202A_200E_200B_200D_206B_206B_206F_206D_202C_206D_202B_202C_202A_202E(text)) + if (string.Equals(answers[matchingIndex], text, StringComparison.OrdinalIgnoreCase)) { - num = 716291790; - break; + return matchingIndex; } - goto end_IL_0049; - case 2: - { - using (List<int>.Enumerator enumerator = matchingIndexes.GetEnumerator()) - { - num = 284785868; - while (true) - { - int num7 = num; - num3 = 284785870; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 2: - num = (enumerator.MoveNext() ? 284785871 : 284785870); - break; - case 1: - current = enumerator.Current; - num = ((!_206D_200E_200D_202D_202D_200C_200F_206B_206B_206E_202A_206A_206F_202E_202C_200F_202B_202B_206C_206D_202E_200B_206F_206A_200C_206A_200F_206D_202A_206A_200D_200F_200D_206A_200D_206A_202C_202C_200F_202C_202E(answers[current], text, StringComparison.OrdinalIgnoreCase)) ? 284785868 : 284785869); - break; - case 4: - num = 284785868; - break; - case 3: - return current; - case 0: - goto end_IL_00c9; - } - continue; - end_IL_00c9: - break; - } - } - goto end_IL_0049; } - } - continue; - end_IL_0049: - break; } } catch { } } - return matchingIndexes.OrderBy(delegate(int i) - { - string? text2 = answers[i]; - return (text2 == null) ? int.MaxValue : _003C_003Ec__DisplayClass58_0._202A_202B_206C_202A_202B_206B_206D_202D_206F_202C_200F_206B_200E_200B_202E_206B_200D_202D_206C_206E_200D_202A_206D_206E_202B_206E_206C_200D_202C_202E_200B_202D_206B_206E_200E_200D_202E_206F_206A_200C_202E(text2); - }).First(); + return matchingIndexes.OrderBy((int i) => answers[i]?.Length ?? int.MaxValue).First(); } private static bool IsMatch(string? actualAnswer, StringOrRegex? expectedAnswer) { - int num = ((actualAnswer != null) ? (-391415350) : (-391415345)); - while (true) + if (actualAnswer == null && expectedAnswer == null) { - int num2 = num; - int num3 = -391415346; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = ((actualAnswer == null) ? (-391415349) : (-391415346)); - break; - case 0: - num = ((expectedAnswer != null) ? (-391415352) : (-391415349)); - break; - case 6: - return expectedAnswer.IsMatch(actualAnswer); - case 5: - return false; - case 3: - return true; - case 2: - num = -391415345; - break; - case 1: - num = ((expectedAnswer != null) ? (-391415350) : (-391415347)); - break; - } + return true; } + if (actualAnswer == null || expectedAnswer == null) + { + return false; + } + return expectedAnswer.IsMatch(actualAnswer); } - [MethodImpl(MethodImplOptions.NoInlining)] private int? HandleInstanceListChoice(string? actualPrompt) { - string b = _excelFunctions.GetDialogueTextByRowId(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1387823594), 2090u, isRegex: false).GetString(); - int num = ((!GameFunctions.GameStringEquals(actualPrompt, b)) ? 928090522 : 928090521); - while (true) + string b = _excelFunctions.GetDialogueTextByRowId("Addon", 2090u, isRegex: false).GetString(); + if (GameFunctions.GameStringEquals(actualPrompt, b)) { - int num2 = num; - int num3 = 928090523; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_006d; - case 2: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1170365373), new object[1] { actualPrompt }); - return 0; - case 1: - return null; - } - continue; - IL_006d: - num = 928090521; + _logger.LogDebug("Selecting no prefered instance as answer for '{Prompt}'", actualPrompt); + return 0; } + return null; } private unsafe void SelectYesnoPostSetup(AddonEvent type, AddonArgs args) { _deathRecoveryConfirmFired = false; - AddonSelectYesno* address = (AddonSelectYesno*)_200C_202E_202E_200C_206B_202B_200C_206B_200C_200D_206C_206C_200F_202A_206F_202B_206C_206E_206E_206C_200F_200D_206A_206F_200E_206E_202E_200F_200C_206B_206E_202E_200B_202C_200D_202A_200B_200D_200F_200D_202E(args).Address; + AddonSelectYesno* address = (AddonSelectYesno*)args.Addon.Address; SelectYesnoPostSetup(address, checkAllSteps: false); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void SelectYesnoDeathRecoveryPostUpdate(AddonEvent type, AddonArgs args) { - int num = ((!_questController.IsDeathRecoveryPending) ? (-2017828228) : (-2017828237)); - string text = default(string); - AddonSelectYesno* address = default(AddonSelectYesno*); - while (true) + if (_questController.IsDeathRecoveryPending && _condition[ConditionFlag.Unconscious] && !_deathRecoveryConfirmFired) { - int num2 = num; - int num3 = -2017828229; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + AddonSelectYesno* address = (AddonSelectYesno*)args.Addon.Address; + string text = (*address->AtkUnitBase.AtkValues).ReadAtkString(); + if (text != null && _returnRegex.IsMatch(text)) { - case 3: - num = ((!_202D_200E_200B_206E_206D_200D_206F_200E_202E_200F_202E_206F_206E_202E_202D_202D_206A_206D_206A_206C_202E_200F_206A_202D_206E_202D_206F_206B_206A_206B_200B_206E_202A_200E_200E_202C_202B_200C_200B_200D_202E(_returnRegex, text)) ? (-2017828227) : (-2017828226)); - break; - case 1: - return; - case 7: - return; - case 2: - num = -2017828237; - break; - case 6: - return; - case 4: - num = ((!_deathRecoveryConfirmFired) ? (-2017828229) : (-2017828230)); - break; - case 0: - address = (AddonSelectYesno*)_200C_202E_202E_200C_206B_202B_200C_206B_200C_200D_206C_206C_200F_202A_206F_202B_206C_206E_206E_206C_200F_200D_206A_206F_200E_206E_202E_200F_200C_206B_206E_202E_200B_202C_200D_202A_200B_200D_200F_200D_202E(args).Address; - text = _202C_206E_202E_206D_202C_200F_202A_202E_202D_202C_200D_206E_202E_202C_200E_202E_202C_200B_206F_202B_202E_202A_202E_206D_206F_202A_200C_202E_202D_200D_202A_200E_200E_206D_202D_202D_206D_202D_200B_200C_202E(*address->AtkUnitBase.AtkValues); - num = ((text == null) ? (-2017828227) : (-2017828232)); - break; - case 8: - num = (_202A_200B_206D_200E_206A_206A_200B_200C_206D_202D_206E_200D_200E_202E_206F_206F_206E_200E_206B_206B_200D_206C_200B_206F_206A_200D_202C_200C_200D_200F_206A_200E_202B_202B_206C_202D_202E_206F_206D_206C_202E(_condition, ConditionFlag.Unconscious) ? (-2017828225) : (-2017828228)); - break; - case 5: - _202B_202A_206C_206F_206E_202C_202B_206E_200F_206B_200E_202B_202E_206B_200B_206F_206E_202E_202A_200F_206E_202E_200C_206E_206C_200D_202C_200B_202C_200E_206E_206C_206B_200B_202E_202B_206C_202C_202A_202B_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1684981861), Array.Empty<object>()); + _logger.LogInformation("Death recovery: confirming return to home point (PostUpdate)"); address->AtkUnitBase.FireCallbackInt(0); _deathRecoveryConfirmFired = true; - num = -2017828227; - break; } } } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void SelectYesnoPostSetup(AddonSelectYesno* addonSelectYesno, bool checkAllSteps) { - int num = (checkAllSteps ? 898992558 : 898992547); - QuestController.QuestProgress startedQuest = default(QuestController.QuestProgress); - QuestController.QuestProgress simulatedQuest = default(QuestController.QuestProgress); - List<DialogueChoice> list = default(List<DialogueChoice>); - QuestController.QuestProgress nextQuest = default(QuestController.QuestProgress); - string text = default(string); - StringOrRegex stringOrRegex = default(StringOrRegex); - DialogueChoice current = default(DialogueChoice); - while (true) + if (!checkAllSteps && !ShouldHandleUiInteractions) { - int num2 = num; - int num3 = 898992559; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 14: - return; - case 21: - return; - case 22: - return; - case 12: - num = (ShouldHandleUiInteractions ? 898992558 : 898992545); - continue; - case 17: - startedQuest = _questController.StartedQuest; - num = ((startedQuest == null) ? 898992555 : 898992548); - continue; - case 10: - return; - case 4: - simulatedQuest = _questController.SimulatedQuest; - num = ((simulatedQuest == null) ? 898992556 : 898992551); - continue; - case 23: - { - FateDefinition? currentFate = _fateController.CurrentFate; - list = ((currentFate != null) ? _202C_200F_202B_202C_200F_202E_206A_200E_200D_206E_206C_202A_202C_202B_206D_202C_200D_206F_200B_202E_202B_202E_200F_202C_200F_200E_200E_202B_206A_206A_202A_202D_200D_200F_200E_206A_200B_202B_206D_202A_202E(currentFate) : null); - if (list != null) - { - num = 898992557; - continue; - } - break; - } - case 9: - addonSelectYesno->AtkUnitBase.FireCallbackInt(0); - _shopController.IsAwaitingYesNo = false; - return; - case 15: - num = ((!CheckQuestYesNo(addonSelectYesno, nextQuest, text, checkAllSteps)) ? 898992573 : 898992552); - continue; - case 8: - num = ((!HandleTravelYesNo(addonSelectYesno, simulatedQuest, text)) ? 898992556 : 898992570); - continue; - case 18: - if (_fateController.IsRunning) - { - num = 898992568; - continue; - } - break; - case 16: - num = ((!_202D_200E_200B_206E_206D_200D_206F_200E_202E_200F_202E_206F_206E_202E_202D_202D_206A_206D_206A_206C_202E_200F_206A_202D_206E_202D_206F_206B_206A_206B_200B_206E_202A_200E_200E_202C_202B_200C_200B_200D_202E(_purchaseItemRegex, text)) ? 898992574 : 898992550); - continue; - case 19: - _202B_202A_206C_206F_206E_202C_202B_206E_200F_206B_200E_202B_202E_206B_200B_206F_206E_202E_202A_200F_206E_202E_200C_206E_206C_200D_202C_200B_202C_200E_206E_206C_206B_200B_202E_202B_206C_202C_202A_202B_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(533532426), Array.Empty<object>()); - addonSelectYesno->AtkUnitBase.FireCallbackInt(0); - return; - case 5: - num = ((!_shopController.IsAwaitingYesNo) ? 898992574 : 898992575); - continue; - case 1: - text = _202C_206E_202E_206D_202C_200F_202A_202E_202D_202C_200D_206E_202E_202C_200E_202E_202C_200B_206F_202B_202E_202A_202E_206D_206F_202A_200C_202E_202D_200D_202A_200E_200E_206D_202D_202D_206D_202D_200B_200C_202E(*addonSelectYesno->AtkUnitBase.AtkValues); - num = ((text != null) ? 898992546 : 898992549); - continue; - case 20: - num = ((!_202A_200B_206D_200E_206A_206A_200B_200C_206D_202D_206E_200D_200E_202E_206F_206F_206E_200E_206B_206B_200D_206C_200B_206F_206A_200D_202C_200C_200D_200F_206A_200E_202B_202B_206C_202D_202E_206F_206D_206C_202E(_condition, ConditionFlag.Unconscious)) ? 898992554 : 898992559); - continue; - case 7: - return; - case 6: - num = 898992547; - continue; - case 3: - nextQuest = _questController.NextQuest; - num = ((nextQuest == null) ? 898992573 : 898992544); - continue; - case 11: - num = ((!CheckQuestYesNo(addonSelectYesno, startedQuest, text, checkAllSteps)) ? 898992555 : 898992569); - continue; - case 0: - num = ((!_202D_200E_200B_206E_206D_200D_206F_200E_202E_200F_202E_206F_206E_202E_202D_202D_206A_206D_206A_206C_202E_200F_206A_202D_206E_202D_206F_206B_206A_206B_200B_206E_202A_200E_200E_202C_202B_200C_200B_200D_202E(_returnRegex, text)) ? 898992554 : 898992572); - continue; - case 13: - _206D_200D_200E_202C_200F_200E_202E_206B_206A_202C_206E_202E_202D_206D_206E_206E_200D_200B_200B_206C_206E_200D_200D_206F_200D_202C_202B_200D_202C_200D_200E_206A_200F_202D_202B_202C_206C_200F_200D_200F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1498409244), new object[1] { text }); - num = ((!_questController.IsDeathRecoveryPending) ? 898992554 : 898992571); - continue; - case 2: - { - using (List<DialogueChoice>.Enumerator enumerator = list.GetEnumerator()) - { - num = 27807126; - while (true) - { - int num7 = num; - num3 = 27807120; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - num = 27807126; - break; - case 4: - stringOrRegex = ResolveReference(null, _206F_202C_206F_200C_200C_200D_202A_200F_206B_206B_206C_206C_200E_200F_202A_202D_200C_202C_200C_200B_202C_206E_200F_202B_200D_206C_206A_206F_206C_202C_206E_200F_200F_202E_206F_202E_200B_206B_206B_200E_202E(current), _206F_202D_200F_200B_200E_206D_200E_206A_206E_200F_202C_200D_206E_202D_200E_206C_202D_200C_202A_200D_200B_200F_200E_202B_200F_202A_206A_206E_200F_206D_206B_202E_202D_202B_200D_206F_200C_200D_206E_200E_202E(current), _206C_202A_202C_202B_206A_200B_200B_206A_206B_206E_206C_202A_200E_200E_206C_206F_206C_206E_202B_200B_206F_202B_206E_202A_206A_206A_206E_206F_206C_206A_200C_206C_202C_202D_200E_206E_202D_200C_200E_206B_202E(current)); - num = ((stringOrRegex == null) ? 27807126 : 27807125); - break; - case 5: - num = ((!IsMatch(text, stringOrRegex)) ? 27807126 : 27807122); - break; - case 1: - current = enumerator.Current; - num = ((_202B_202C_206E_206A_202D_200E_202C_202B_200F_202E_202B_200B_202B_200E_206E_200B_206C_206F_206A_206B_206E_202E_206C_200D_202E_202B_206F_206A_206F_200E_202C_206A_206F_202B_206C_206C_202C_206D_202D_202C_202E(current) != EDialogChoiceType.YesNo) ? 27807126 : 27807124); - break; - case 2: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1136244811), new object[2] - { - _200B_200E_202B_200C_206D_202E_202C_200B_206E_206D_202B_206E_202B_206F_206A_202E_200B_202C_202E_206B_200F_200B_200D_206F_202E_200C_200F_200B_202C_202C_202A_206D_200F_206C_206C_200B_200D_202C_202C_202E(current) ? global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1054717956) : global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1667933530), - text - }); - addonSelectYesno->AtkUnitBase.FireCallbackInt((!_200B_200E_202B_200C_206D_202E_202C_200B_206E_206D_202B_206E_202B_206F_206A_202E_200B_202C_202E_206B_200F_200B_200D_206F_202E_200C_200F_200B_202C_202C_202A_206D_200F_206C_206C_200B_200D_202C_202C_202E(current)) ? 1 : 0); - return; - case 6: - num = (enumerator.MoveNext() ? 27807121 : 27807123); - break; - case 3: - goto end_IL_0389; - } - continue; - end_IL_0389: - break; - } - } - break; - } - } - break; + return; } - num = ((!SmartNavWarpRowId.HasValue) ? (-1344390674) : (-1344390673)); - List<DialogueChoice> list2 = default(List<DialogueChoice>); - StringOrRegex stringOrRegex2 = default(StringOrRegex); - DialogueChoice current2 = default(DialogueChoice); - while (true) + string text = (*addonSelectYesno->AtkUnitBase.AtkValues).ReadAtkString(); + if (text == null) { - int num10 = num; - int num3 = -1344390679; - int num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) + return; + } + _logger.LogTrace("Prompt: '{Prompt}'", text); + if (_questController.IsDeathRecoveryPending && _condition[ConditionFlag.Unconscious] && _returnRegex.IsMatch(text)) + { + _logger.LogInformation("Death recovery: confirming return to home point"); + addonSelectYesno->AtkUnitBase.FireCallbackInt(0); + return; + } + if (_shopController.IsAwaitingYesNo && _purchaseItemRegex.IsMatch(text)) + { + addonSelectYesno->AtkUnitBase.FireCallbackInt(0); + _shopController.IsAwaitingYesNo = false; + return; + } + QuestController.QuestProgress startedQuest = _questController.StartedQuest; + if (startedQuest != null && CheckQuestYesNo(addonSelectYesno, startedQuest, text, checkAllSteps)) + { + return; + } + QuestController.QuestProgress simulatedQuest = _questController.SimulatedQuest; + if (simulatedQuest != null && HandleTravelYesNo(addonSelectYesno, simulatedQuest, text)) + { + return; + } + QuestController.QuestProgress nextQuest = _questController.NextQuest; + if (nextQuest != null && CheckQuestYesNo(addonSelectYesno, nextQuest, text, checkAllSteps)) + { + return; + } + if (_fateController.IsRunning) + { + List<DialogueChoice> list = _fateController.CurrentFate?.TransformDialogueChoices; + if (list != null) { - case 3: - { - SeasonalDutyDefinition? currentDuty = _seasonalDutyController.CurrentDuty; - list2 = ((currentDuty != null) ? _200F_200D_206C_200E_206F_202B_200D_206E_200B_206D_202D_206A_206D_200C_202D_206F_206D_206E_206D_206F_206D_202C_200E_200E_200F_200B_200D_206F_200E_200C_206D_206F_206D_206D_200E_206A_206A_206D_200E_206D_202E(currentDuty) : null); - if (list2 != null) + foreach (DialogueChoice item in list) { - num = -1344390675; - break; - } - return; - } - case 7: - num = ((SmartNavTaxiDestPlaceName == null) ? (-1344390677) : (-1344390679)); - break; - case 6: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1074279270), new object[1] { SmartNavWarpRowId }); - addonSelectYesno->AtkUnitBase.FireCallbackInt(0); - return; - case 5: - num = -1344390673; - break; - case 0: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(280259749), new object[1] { SmartNavTaxiDestPlaceName }); - addonSelectYesno->AtkUnitBase.FireCallbackInt(0); - return; - case 4: - if (list2.Count > 0) - { - num = -1344390680; - break; - } - return; - case 2: - if (_seasonalDutyController.IsRunning) - { - num = -1344390678; - break; - } - return; - case 1: - { - using List<DialogueChoice>.Enumerator enumerator = list2.GetEnumerator(); - num = 720151628; - while (true) - { - int num13 = num; - num3 = 720151630; - num4 = num13; - int num14 = num4 + num3; - int num15 = num4 & num3; - switch (num14 - (num15 + num15)) + if (item.Type == EDialogChoiceType.YesNo) { - case 0: - num = 720151628; - break; - case 6: - stringOrRegex2 = ResolveReference(null, _206F_202C_206F_200C_200C_200D_202A_200F_206B_206B_206C_206C_200E_200F_202A_202D_200C_202C_200C_200B_202C_206E_200F_202B_200D_206C_206A_206F_206C_202C_206E_200F_200F_202E_206F_202E_200B_206B_206B_200E_202E(current2), _206F_202D_200F_200B_200E_206D_200E_206A_206E_200F_202C_200D_206E_202D_200E_206C_202D_200C_202A_200D_200B_200F_200E_202B_200F_202A_206A_206E_200F_206D_206B_202E_202D_202B_200D_206F_200C_200D_206E_200E_202E(current2), _206C_202A_202C_202B_206A_200B_200B_206A_206B_206E_206C_202A_200E_200E_206C_206F_206C_206E_202B_200B_206F_202B_206E_202A_206A_206A_206E_206F_206C_206A_200C_206C_202C_202D_200E_206E_202D_200C_200E_206B_202E(current2)); - num = ((stringOrRegex2 == null) ? 720151628 : 720151626); - break; - case 4: - num = ((!IsMatch(text, stringOrRegex2)) ? 720151628 : 720151629); - break; - case 1: - current2 = enumerator.Current; - num = ((_202B_202C_206E_206A_202D_200E_202C_202B_200F_202E_202B_200B_202B_200E_206E_200B_206C_206F_206A_206B_206E_202E_206C_200D_202E_202B_206F_206A_206F_200E_202C_206A_206F_202B_206C_206C_202C_206D_202D_202C_202E(current2) != EDialogChoiceType.YesNo) ? 720151628 : 720151624); - break; - case 3: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(872691985), new object[2] + StringOrRegex stringOrRegex = ResolveReference(null, item.ExcelSheet, item.Prompt, item.PromptIsRegularExpression); + if (stringOrRegex != null && IsMatch(text, stringOrRegex)) { - _200B_200E_202B_200C_206D_202E_202C_200B_206E_206D_202B_206E_202B_206F_206A_202E_200B_202C_202E_206B_200F_200B_200D_206F_202E_200C_200F_200B_202C_202C_202A_206D_200F_206C_206C_200B_200D_202C_202C_202E(current2) ? global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1705182101) : global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1127405909), - text - }); - addonSelectYesno->AtkUnitBase.FireCallbackInt((!_200B_200E_202B_200C_206D_202E_202C_200B_206E_206D_202B_206E_202B_206F_206A_202E_200B_202C_202E_206B_200F_200B_200D_206F_202E_200C_200F_200B_202C_202C_202A_206D_200F_206C_206C_200B_200D_202C_202C_202E(current2)) ? 1 : 0); - return; - case 2: - num = (enumerator.MoveNext() ? 720151631 : 720151627); - break; - case 5: - return; + _logger.LogDebug("FATE: Returning {YesNo} for '{Prompt}'", item.Yes ? "Yes" : "No", text); + addonSelectYesno->AtkUnitBase.FireCallbackInt((!item.Yes) ? 1 : 0); + return; + } } } } + } + if (SmartNavWarpRowId.HasValue) + { + _logger.LogDebug("SmartNav: confirming warp YesNo for warp {WarpId}", SmartNavWarpRowId); + addonSelectYesno->AtkUnitBase.FireCallbackInt(0); + } + else if (SmartNavTaxiDestPlaceName != null) + { + _logger.LogDebug("SmartNav: confirming taxi YesNo for destination {Dest}", SmartNavTaxiDestPlaceName); + addonSelectYesno->AtkUnitBase.FireCallbackInt(0); + } + else + { + if (!_seasonalDutyController.IsRunning) + { + return; + } + List<DialogueChoice> list2 = _seasonalDutyController.CurrentDuty?.DialogueChoices; + if (list2 == null || list2.Count <= 0) + { + return; + } + foreach (DialogueChoice item2 in list2) + { + if (item2.Type == EDialogChoiceType.YesNo) + { + StringOrRegex stringOrRegex2 = ResolveReference(null, item2.ExcelSheet, item2.Prompt, item2.PromptIsRegularExpression); + if (stringOrRegex2 != null && IsMatch(text, stringOrRegex2)) + { + _logger.LogDebug("Seasonal duty: Returning {YesNo} for '{Prompt}'", item2.Yes ? "Yes" : "No", text); + addonSelectYesno->AtkUnitBase.FireCallbackInt((!item2.Yes) ? 1 : 0); + break; + } + } } } } @@ -2343,733 +845,278 @@ internal sealed class InteractionUiController : IDisposable private unsafe bool CheckQuestYesNo(AddonSelectYesno* addonSelectYesno, QuestController.QuestProgress currentQuest, string actualPrompt, bool checkAllSteps) { Questionable.Model.Quest quest = currentQuest.Quest; - int num = ((!checkAllSteps) ? 809682558 : 809682548); - QuestSequence questSequence3 = default(QuestSequence); - QuestSequence questSequence = default(QuestSequence); - QuestStep questStep = default(QuestStep); - while (true) + if (checkAllSteps) { - int num2 = num; - int num3 = 809682551; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + QuestSequence questSequence = quest.FindSequence(currentQuest.Sequence); + if (questSequence != null && questSequence.Steps.Any((QuestStep step) => HandleDefaultYesNo(addonSelectYesno, quest, step, step.DialogueChoices, actualPrompt))) { - case 7: - num = ((!_202C_206F_200B_206E_200D_200B_206B_202A_200E_206D_200F_202E_202C_206D_202C_200F_206B_206C_202C_202D_200B_202B_206F_202B_202A_206B_206B_200F_202C_206A_202B_202A_206A_202C_202E_200D_206D_200E_202E_206C_202E(questSequence3).Any((QuestStep step) => HandleDefaultYesNo(addonSelectYesno, quest, step, _003C_003Ec__DisplayClass64_0._200F_206D_206D_202C_202E_206B_206F_202D_200E_206D_202C_200D_206E_206B_200E_200E_206F_206C_200C_202A_200E_206E_200B_200C_202D_202D_206E_206D_200B_200D_202C_206F_206E_206F_206A_202B_200E_206C_206C_200D_202E(step), actualPrompt))) ? 809682555 : 809682545); - break; - case 10: - { - List<QuestStep> list = _202C_206F_200B_206E_200D_200B_206B_202A_200E_206D_200F_202E_202C_206D_202C_200F_206B_206C_202C_202D_200B_202B_206F_202B_202A_206B_206B_200F_202C_206A_202B_202A_206A_202C_202E_200D_206D_200E_202E_206C_202E(questSequence); - questStep = list[list.Count - 1]; - num = 809682559; - break; - } - case 14: - questSequence = quest.FindSequence(currentQuest.Sequence); - num = ((questSequence == null) ? 809682559 : 809682546); - break; - case 1: - num = ((currentQuest.Step != 255) ? 809682559 : 809682553); - break; - case 6: return true; - case 3: - questSequence3 = quest.FindSequence(currentQuest.Sequence); - num = ((questSequence3 == null) ? 809682555 : 809682544); - break; - case 13: - return true; - case 2: - return false; - case 4: - num = ((!HandleDefaultYesNo(addonSelectYesno, quest, questStep, _200E_206A_200F_200C_206D_206A_202B_206D_206E_206A_200B_200B_202E_206C_202C_206E_206F_200C_202E_202A_200C_200F_200E_206E_206F_202C_200B_202A_206B_206E_206F_200E_206D_206A_202E_200C_206C_206B_202E_202E(questStep), actualPrompt)) ? 809682555 : 809682554); - break; - case 12: - num = ((!HandleTravelYesNo(addonSelectYesno, currentQuest, actualPrompt)) ? 809682549 : 809682551); - break; - case 5: - num = ((_202B_200C_202E_200B_202E_202E_200C_206C_200B_200F_200D_200C_202C_202E_206A_202E_202D_206E_202C_206E_206E_200B_200D_200B_206A_200E_202A_206E_200D_200F_200E_200F_200D_206C_206B_200D_200F_200B_206A_202E_202E(questSequence).Count <= 0) ? 809682559 : 809682557); - break; - case 11: - num = 809682548; - break; - case 0: - return true; - case 9: - { - QuestSequence? questSequence2 = quest.FindSequence(currentQuest.Sequence); - questStep = ((questSequence2 != null) ? _200D_200E_200D_206C_206D_200C_200F_200C_206A_206C_202A_206C_202A_200C_200C_202A_206C_202E_206C_200E_202C_202D_200E_202A_200F_200F_200E_202E_200C_200D_206C_202C_200E_200B_206E_206A_200D_200D_200C_200D_202E(questSequence2, currentQuest.Step) : null); - num = ((questStep != null) ? 809682559 : 809682550); - break; - } - case 8: - num = ((questStep == null) ? 809682555 : 809682547); - break; } } + else + { + QuestStep questStep = quest.FindSequence(currentQuest.Sequence)?.FindStep(currentQuest.Step); + if (questStep == null && currentQuest.Step == 255) + { + QuestSequence questSequence2 = quest.FindSequence(currentQuest.Sequence); + if (questSequence2 != null && questSequence2.Steps.Count > 0) + { + List<QuestStep> steps = questSequence2.Steps; + questStep = steps[steps.Count - 1]; + } + } + if (questStep != null && HandleDefaultYesNo(addonSelectYesno, quest, questStep, questStep.DialogueChoices, actualPrompt)) + { + return true; + } + } + if (HandleTravelYesNo(addonSelectYesno, currentQuest, actualPrompt)) + { + return true; + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe bool HandleDefaultYesNo(AddonSelectYesno* addonSelectYesno, Questionable.Model.Quest quest, QuestStep? step, List<DialogueChoice> dialogueChoices, string actualPrompt) { - int num = ((step == null) ? 649941538 : 649941536); - EAetheryteLocation? eAetheryteLocation = default(EAetheryteLocation?); - AetheryteRegistrationResult aetheryteRegistrationResult = default(AetheryteRegistrationResult); - DialogueChoice current = default(DialogueChoice); - StringOrRegex stringOrRegex = default(StringOrRegex); - while (true) + if (step != null && step.InteractionType == EInteractionType.RegisterFreeOrFavoredAetheryte) { - int num2 = num; - int num3 = 649941541; - int num4 = num2; - Span<DialogueChoice> span; - switch ((num4 | num3) - (num4 & num3)) + EAetheryteLocation? aetheryte = step.Aetheryte; + if (aetheryte.HasValue) { - case 6: - { - List<DialogueChoice> list = dialogueChoices; - int num15 = 1 + list.Count; - List<DialogueChoice> list3 = new List<DialogueChoice>(num15); - CollectionsMarshal.SetCount(list3, num15); - Span<DialogueChoice> span3 = CollectionsMarshal.AsSpan(list3); - int num14 = 0; - span = CollectionsMarshal.AsSpan(list); - span.CopyTo(span3.Slice(num14, span.Length)); - num14 += span.Length; - ref DialogueChoice reference2 = ref span3[num14]; - DialogueChoice dialogueChoice2 = _200D_200E_206A_202E_200F_206B_206D_206B_200C_200E_202D_206C_206F_200B_200C_200F_202A_202D_206D_200B_206E_206F_200F_200B_202C_200B_202B_202B_202E_206B_202C_202B_200D_206B_206A_202B_206F_206B_202B_206D_202E(); - _202B_206E_200F_202A_206A_200C_202C_200D_200D_202A_206B_202C_200D_200C_202E_206D_206D_202D_202A_202B_206D_200E_202A_202E_200D_200B_200D_200C_202A_200E_200B_202A_200C_206D_200F_202D_206C_206C_206C_202C_202E(dialogueChoice2, EDialogChoiceType.YesNo); - _202E_206A_200D_200B_206F_206C_202A_206B_202D_200C_202A_202D_202D_206D_200B_206F_202B_202B_202E_200D_202B_202C_202A_206B_206C_206D_200D_206E_200B_206C_206D_202C_202A_206A_206E_206A_200D_200E_206D_202E_202E(dialogueChoice2, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1901839129)); - _202A_202A_202B_206A_200F_202D_202D_206E_202D_200B_206A_206A_206D_206B_202E_206B_202A_202B_206E_206C_200D_202A_206B_206F_202D_202C_200B_200B_206E_206E_202D_200C_206E_206C_202C_202B_200B_206C_200E_200F_202E(dialogueChoice2, _206D_202E_206F_202B_206B_200F_206B_206A_200F_200C_200E_200C_206F_206C_200E_202B_200F_200E_202D_202A_206B_200D_200B_206B_202B_206C_202B_200E_202A_206A_202D_202A_206E_206B_200F_200E_200F_200C_206E_206A_202E(102334u)); - _202A_200E_200E_206B_202B_200F_206E_206E_202B_200E_206F_200D_206D_202D_206A_206D_202C_202B_202C_202D_202E_202B_200C_202B_202E_206B_202D_202E_200C_202B_206F_202A_200D_200E_206A_206B_200E_202E_200F_202C_202E(dialogueChoice2, true); - reference2 = dialogueChoice2; - dialogueChoices = list3; - num = 649941538; - break; - } - case 4: - { - List<DialogueChoice> list = dialogueChoices; - int num14 = 1 + list.Count; - List<DialogueChoice> list2 = new List<DialogueChoice>(num14); - CollectionsMarshal.SetCount(list2, num14); - span = CollectionsMarshal.AsSpan(list2); - int num15 = 0; - Span<DialogueChoice> span2 = CollectionsMarshal.AsSpan(list); - span2.CopyTo(span.Slice(num15, span2.Length)); - num15 += span2.Length; - ref DialogueChoice reference = ref span[num15]; - DialogueChoice dialogueChoice = _200D_200E_206A_202E_200F_206B_206D_206B_200C_200E_202D_206C_206F_200B_200C_200F_202A_202D_206D_200B_206E_206F_200F_200B_202C_200B_202B_202B_202E_206B_202C_202B_200D_206B_206A_202B_206F_206B_202B_206D_202E(); - _202B_206E_200F_202A_206A_200C_202C_200D_200D_202A_206B_202C_200D_200C_202E_206D_206D_202D_202A_202B_206D_200E_202A_202E_200D_200B_200D_200C_202A_200E_200B_202A_200C_206D_200F_202D_206C_206C_206C_202C_202E(dialogueChoice, EDialogChoiceType.YesNo); - _202E_206A_200D_200B_206F_206C_202A_206B_202D_200C_202A_202D_202D_206D_200B_206F_202B_202B_202E_200D_202B_202C_202A_206B_206C_206D_200D_206E_200B_206C_206D_202C_202A_206A_206E_206A_200D_200E_206D_202E_202E(dialogueChoice, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(322628157)); - _202A_202A_202B_206A_200F_202D_202D_206E_202D_200B_206A_206A_206D_206B_202E_206B_202A_202B_206E_206C_200D_202A_206B_206F_202D_202C_200B_200B_206E_206E_202D_200C_206E_206C_202C_202B_200B_206C_200E_200F_202E(dialogueChoice, _206D_202E_206F_202B_206B_200F_206B_206A_200F_200C_200E_200C_206F_206C_200E_202B_200F_200E_202D_202A_206B_200D_200B_206B_202B_206C_202B_200E_202A_206A_202D_202A_206E_206B_200F_200E_200F_200C_206E_206A_202E(102306u)); - _202A_200E_200E_206B_202B_200F_206E_206E_202B_200E_206F_200D_206D_202D_206A_206D_202C_202B_202C_202D_202E_202B_200C_202B_202E_206B_202D_202E_200C_202B_206F_202A_200D_200E_206A_206B_200E_202E_200F_202C_202E(dialogueChoice, true); - reference = dialogueChoice; - dialogueChoices = list2; - num = 649941538; - break; - } - case 3: - num = 649941536; - break; - case 5: - num = ((_202A_206C_200B_202D_206C_206E_206C_200F_200E_202B_206E_206D_200C_206E_206A_206C_202C_206F_200F_206A_200B_206F_200B_202B_200B_206B_200B_202E_202D_200B_202A_200E_206E_206C_202D_202B_200E_200E_200B_200E_202E(step) != EInteractionType.RegisterFreeOrFavoredAetheryte) ? 649941538 : 649941540); - break; - case 1: - eAetheryteLocation = _202C_200E_206D_206E_202B_206A_202E_202B_202E_200E_202E_206A_206C_200B_202B_206A_202C_206F_202D_200E_200D_200C_206B_202B_200F_206E_200E_206F_202C_202B_206E_206D_206E_206D_206F_202B_202D_206A_202D_202A_202E(step); - num = ((!eAetheryteLocation.HasValue) ? 649941538 : 649941541); - break; - case 0: - { - EAetheryteLocation valueOrDefault = eAetheryteLocation.GetValueOrDefault(); - aetheryteRegistrationResult = _aetheryteFunctions.CanRegisterFreeOrFavoriteAetheryte(valueOrDefault); - num = ((aetheryteRegistrationResult != AetheryteRegistrationResult.SecurityTokenFreeDestinationAvailable) ? 649941543 : 649941539); - break; - } - case 2: - num = ((aetheryteRegistrationResult != AetheryteRegistrationResult.FavoredDestinationAvailable) ? 649941538 : 649941537); - break; - case 7: - { - _206D_200D_200E_202C_200F_200E_202E_206B_206A_202C_206E_202E_202D_206D_206E_206E_200D_200B_200B_206C_206E_200D_200D_206F_200D_202C_202B_200D_202C_200D_200E_206A_200F_202D_202B_202C_206C_200F_200D_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(549701124), new object[1] { dialogueChoices.Count }); - using (List<DialogueChoice>.Enumerator enumerator = dialogueChoices.GetEnumerator()) + EAetheryteLocation valueOrDefault = aetheryte.GetValueOrDefault(); + Span<DialogueChoice> span; + switch (_aetheryteFunctions.CanRegisterFreeOrFavoriteAetheryte(valueOrDefault)) { - num = -1231901395; - while (true) - { - int num5 = num; - num3 = -1231901403; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 9: - num = ((!_206D_206A_206E_200B_200D_202E_200D_206E_206F_200E_202A_202A_200E_206D_202D_206D_206D_202B_206C_206F_202A_206F_206E_202B_206B_202A_200C_202C_200C_202E_202B_200F_206A_200B_206F_200F_202E_206A_202A_206C_202E(current).HasValue) ? (-1231901393) : (-1231901402)); - break; - case 6: - num = (IsMatch(actualPrompt, stringOrRegex) ? (-1231901407) : (-1231901401)); - break; - case 0: - num = -1231901395; - break; - case 3: - { - uint? num8 = _206D_206A_206E_200B_200D_202E_200D_206E_206F_200E_202A_202A_200E_206D_202D_206D_206D_202B_206C_206F_202A_206F_206E_202B_206B_202A_200C_202C_200C_202E_202B_200F_206A_200B_206F_200F_202E_206A_202A_206C_202E(current); - IGameObject gameObject = _206E_206B_206B_200F_206F_200C_206E_206C_202A_202E_202A_206D_206A_206B_206F_206A_200D_200B_202E_202C_206F_200D_206E_206D_200E_206D_206B_202E_202E_202E_202C_202E_200B_200E_200E_200E_200C_202C_200E_200C_202E(_targetManager); - uint? num9 = ((gameObject != null) ? new uint?(_206B_202D_202B_206A_200C_202C_206B_206C_206E_200E_202C_202A_202D_206E_206C_200D_202A_206F_200E_206B_206B_206A_202B_202C_202C_200B_200C_202B_202B_200D_200C_202E_206D_206F_202B_200B_200B_200F_202C_206C_202E(gameObject)) : ((uint?)null)); - bool num10 = num8.GetValueOrDefault() == num9.GetValueOrDefault(); - num3 = ((num8.HasValue == num9.HasValue) ? 1 : 0); - num4 = (num10 ? 1 : 0); - num = (((num4 | num3) - (num4 ^ num3) != 0) ? (-1231901393) : (-1231901406)); - break; - } - case 8: - num = (enumerator.MoveNext() ? (-1231901404) : (-1231901408)); - break; - case 2: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1191229816), new object[2] { stringOrRegex, actualPrompt }); - num = -1231901395; - break; - case 4: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1148349469), new object[2] - { - _200B_200E_202B_200C_206D_202E_202C_200B_206E_206D_202B_206E_202B_206F_206A_202E_200B_202C_202E_206B_200F_200B_200D_206F_202E_200C_200F_200B_202C_202C_202A_206D_200F_206C_206C_200B_200D_202C_202C_202E(current) ? global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1295539558) : global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1191036459), - actualPrompt - }); - addonSelectYesno->AtkUnitBase.FireCallbackInt((!_200B_200E_202B_200C_206D_202E_202C_200B_206E_206D_202B_206E_202B_206F_206A_202E_200B_202C_202E_206B_200F_200B_200D_206F_202E_200C_200F_200B_202C_202C_202A_206D_200F_206C_206C_200B_200D_202C_202C_202E(current)) ? 1 : 0); - return true; - case 7: - { - ILogger<InteractionUiController> logger = _logger; - string text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-948190502); - object[] obj = new object[2] - { - _206D_206A_206E_200B_200D_202E_200D_206E_206F_200E_202A_202A_200E_206D_202D_206D_206D_202B_206C_206F_202A_206F_206E_202B_206B_202A_200C_202C_200C_202E_202B_200F_206A_200B_206F_200F_202E_206A_202A_206C_202E(current), - null - }; - IGameObject gameObject2 = _206E_206B_206B_200F_206F_200C_206E_206C_202A_202E_202A_206D_206A_206B_206F_206A_200D_200B_202E_202C_206F_200D_206E_206D_200E_206D_206B_202E_202E_202E_202C_202E_200B_200E_200E_200E_200C_202C_200E_200C_202E(_targetManager); - obj[1] = ((gameObject2 != null) ? new uint?(_206B_202D_202B_206A_200C_202C_206B_206C_206E_200E_202C_202A_202D_206E_206C_200D_202A_206F_200E_206B_206B_206A_202B_202C_202C_200B_200C_202B_202B_200D_200C_202E_206D_206F_202B_200B_200B_200F_202C_206C_202E(gameObject2)) : ((uint?)null)); - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)logger, text, obj); - num = -1231901395; - break; - } - case 1: - current = enumerator.Current; - num = ((_202B_202C_206E_206A_202D_200E_202C_202B_200F_202E_202B_200B_202B_200E_206E_200B_206C_206F_206A_206B_206E_202E_206C_200D_202E_202B_206F_206A_206F_200E_202C_206A_206F_202B_206C_206C_202C_206D_202D_202C_202E(current) != EDialogChoiceType.YesNo) ? (-1231901395) : (-1231901396)); - break; - case 10: - stringOrRegex = ResolveReference(quest, _206F_202C_206F_200C_200C_200D_202A_200F_206B_206B_206C_206C_200E_200F_202A_202D_200C_202C_200C_200B_202C_206E_200F_202B_200D_206C_206A_206F_206C_202C_206E_200F_200F_202E_206F_202E_200B_206B_206B_200E_202E(current), _206F_202D_200F_200B_200E_206D_200E_206A_206E_200F_202C_200D_206E_202D_200E_206C_202D_200C_202A_200D_200B_200F_200E_202B_200F_202A_206A_206E_200F_206D_206B_202E_202D_202B_200D_206F_200C_200D_206E_200E_202E(current), _206C_202A_202C_202B_206A_200B_200B_206A_206B_206E_206C_202A_200E_200E_206C_206F_206C_206E_202B_200B_206F_202B_206E_202A_206A_206A_206E_206F_206C_206A_200C_206C_202C_202D_200E_206E_202D_200C_200E_206B_202E(current)); - num = ((stringOrRegex == null) ? (-1231901401) : (-1231901405)); - break; - case 5: - goto end_IL_0285; - } - continue; - end_IL_0285: - break; - } - } - num = ((!CheckSinglePlayerDutyYesNo(quest.Id, step)) ? 1032501046 : 1032501045); - while (true) + case AetheryteRegistrationResult.SecurityTokenFreeDestinationAvailable: { - int num11 = num; - num3 = 1032501047; - num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) + List<DialogueChoice> list = dialogueChoices; + int num2 = 1 + list.Count; + List<DialogueChoice> list3 = new List<DialogueChoice>(num2); + CollectionsMarshal.SetCount(list3, num2); + Span<DialogueChoice> span3 = CollectionsMarshal.AsSpan(list3); + int num = 0; + span = CollectionsMarshal.AsSpan(list); + span.CopyTo(span3.Slice(num, span.Length)); + num += span.Length; + span3[num] = new DialogueChoice { - case 0: - goto IL_05ba; - case 2: - addonSelectYesno->AtkUnitBase.FireCallbackInt(0); - return true; - case 1: - return false; - } - continue; - IL_05ba: - num = 1032501045; + Type = EDialogChoiceType.YesNo, + ExcelSheet = "Addon", + Prompt = ExcelRef.FromRowId(102334u), + Yes = true + }; + dialogueChoices = list3; + break; + } + case AetheryteRegistrationResult.FavoredDestinationAvailable: + { + List<DialogueChoice> list = dialogueChoices; + int num = 1 + list.Count; + List<DialogueChoice> list2 = new List<DialogueChoice>(num); + CollectionsMarshal.SetCount(list2, num); + span = CollectionsMarshal.AsSpan(list2); + int num2 = 0; + Span<DialogueChoice> span2 = CollectionsMarshal.AsSpan(list); + span2.CopyTo(span.Slice(num2, span2.Length)); + num2 += span2.Length; + span[num2] = new DialogueChoice + { + Type = EDialogChoiceType.YesNo, + ExcelSheet = "Addon", + Prompt = ExcelRef.FromRowId(102306u), + Yes = true + }; + dialogueChoices = list2; + break; + } } - } } } + _logger.LogTrace("DefaultYesNo: Choice count: {Count}", dialogueChoices.Count); + foreach (DialogueChoice dialogueChoice in dialogueChoices) + { + if (dialogueChoice.Type != EDialogChoiceType.YesNo) + { + continue; + } + if (dialogueChoice.DataId.HasValue && dialogueChoice.DataId != _targetManager.Target?.BaseId) + { + _logger.LogDebug("Skipping entry in DialogueChoice expecting target dataId {ExpectedDataId}, actual target is {ActualTargetId}", dialogueChoice.DataId, _targetManager.Target?.BaseId); + continue; + } + StringOrRegex stringOrRegex = ResolveReference(quest, dialogueChoice.ExcelSheet, dialogueChoice.Prompt, dialogueChoice.PromptIsRegularExpression); + if (stringOrRegex == null || !IsMatch(actualPrompt, stringOrRegex)) + { + _logger.LogDebug("Unexpected excelPrompt: {ExcelPrompt}, actualPrompt: {ActualPrompt}", stringOrRegex, actualPrompt); + continue; + } + _logger.LogDebug("Returning {YesNo} for '{Prompt}'", dialogueChoice.Yes ? "Yes" : "No", actualPrompt); + addonSelectYesno->AtkUnitBase.FireCallbackInt((!dialogueChoice.Yes) ? 1 : 0); + return true; + } + if (CheckSinglePlayerDutyYesNo(quest.Id, step)) + { + addonSelectYesno->AtkUnitBase.FireCallbackInt(0); + return true; + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool CheckSinglePlayerDutyYesNo(ElementId questId, QuestStep? step) { - int num = ((step == null) ? (-67535065) : (-67535067)); - while (true) + if (step != null && step.InteractionType == EInteractionType.SinglePlayerDuty && _bossModIpc.IsConfiguredToRunSoloInstance(questId, step.SinglePlayerDutyOptions)) { - int num2 = num; - int num3 = -67535068; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = ((!_bossModIpc.IsConfiguredToRunSoloInstance(questId, _202A_200F_200B_206A_206B_206E_202B_206C_200B_206A_200B_206F_202A_200D_202C_206F_202C_206F_206F_206D_206E_202E_202A_200F_206D_206A_202B_200D_200E_202C_206D_206D_200E_206B_200F_206B_206D_206E_202E_206F_202E(step))) ? (-67535065) : (-67535068)); - break; - case 3: - return false; - case 2: - num = -67535067; - break; - case 1: - num = ((_202A_206C_200B_202D_206C_206E_206C_200F_200E_202B_206E_206D_200C_206E_206A_206C_202C_206F_200F_206A_200B_206F_200B_202B_200B_206B_200B_202E_202D_200B_202A_200E_206E_206C_202D_202B_200E_200E_200B_200E_202E(step) != EInteractionType.SinglePlayerDuty) ? (-67535065) : (-67535072)); - break; - case 0: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(889876292), Array.Empty<object>()); - return true; - } + _logger.LogDebug("SinglePlayerDutyYesNo: probably Single Player Duty"); + return true; } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe bool HandleTravelYesNo(AddonSelectYesno* addonSelectYesno, QuestController.QuestProgress currentQuest, string actualPrompt) { - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1960829333), Array.Empty<object>()); - int num = ((_206F_200E_200E_202D_206E_206A_202B_200E_206F_202A_202C_202D_200F_200F_206D_206A_200B_206B_202C_202E_200C_202B_200E_200C_202E_202C_200B_200B_202D_206B_206E_206D_206C_202D_200D_200C_202A_206B_202B_206F_202E() - _aetheryteFunctions.ReturnRequestedAt > 2000) ? 1655529223 : 1655529224); - uint? warpId = default(uint?); - string warpText = default(string); - ushort? num7 = default(ushort?); - while (true) + _logger.LogDebug("TravelYesNo"); + if (Environment.TickCount64 - _aetheryteFunctions.ReturnRequestedAt <= 2000 && _returnRegex.IsMatch(actualPrompt)) { - int num2 = num; - int num3 = 1655529216; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1010595978), new object[2] { warpId, warpText }); - addonSelectYesno->AtkUnitBase.FireCallbackInt(0); - return true; - case 1: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1154825939), Array.Empty<object>()); - addonSelectYesno->AtkUnitBase.FireCallbackInt(0); - return true; - case 8: - num = ((!_202D_200E_200B_206E_206D_200D_206F_200E_202E_200F_202E_206F_206E_202E_202D_202D_206A_206D_206A_206C_202E_200F_206A_202D_206E_202D_206F_206B_206A_206B_200B_206E_202A_200E_200E_202C_202B_200C_200B_200D_202E(_returnRegex, actualPrompt)) ? 1655529223 : 1655529221); - break; - case 2: - num = ((!TryFindWarp(num7.Value, actualPrompt, out warpId, out warpText)) ? 1655529216 : 1655529222); - break; - case 0: - return false; - case 5: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-890675885), Array.Empty<object>()); - addonSelectYesno->AtkUnitBase.FireCallbackInt(0); - return true; - case 7: - num = ((!_questController.IsRunning) ? 1655529220 : 1655529219); - break; - case 4: - num7 = FindTargetTerritoryFromQuestStep(currentQuest); - num = ((!num7.HasValue) ? 1655529216 : 1655529218); - break; - case 3: - { - num = ((!_gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1462282105), out var _)) ? 1655529220 : 1655529217); - break; - } - case 9: - num = 1655529224; - break; - } + _logger.LogDebug("Automatically confirming return..."); + addonSelectYesno->AtkUnitBase.FireCallbackInt(0); + return true; } + if (_questController.IsRunning && _gameGui.TryGetAddonByName<AtkUnitBase>("HousingSelectBlock", out var _)) + { + _logger.LogDebug("Automatically confirming ward selection"); + addonSelectYesno->AtkUnitBase.FireCallbackInt(0); + return true; + } + ushort? num = FindTargetTerritoryFromQuestStep(currentQuest); + if (num.HasValue && TryFindWarp(num.Value, actualPrompt, out uint? warpId, out string warpText)) + { + _logger.LogDebug("Using warp {Id}, {Prompt}", warpId, warpText); + addonSelectYesno->AtkUnitBase.FireCallbackInt(0); + return true; + } + return false; } private unsafe void DifficultySelectYesNoPostSetup(AddonEvent type, AddonArgs args) { - AtkUnitBase* address = (AtkUnitBase*)_200C_202E_202E_200C_206B_202B_200C_206B_200C_200D_206C_206C_200F_202A_206F_202B_206C_206E_206E_206C_200F_200D_206A_206F_200E_206E_202E_200F_200C_206B_206E_202E_200B_202C_200D_202A_200B_200D_200F_200D_202E(args).Address; + AtkUnitBase* address = (AtkUnitBase*)args.Addon.Address; DifficultySelectYesNoPostSetup(address, checkAllSteps: false); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void DifficultySelectYesNoPostSetup(AtkUnitBase* addonDifficultySelectYesNo, bool checkAllSteps) { - int num = (_questController.IsRunning ? 1023104881 : 1023104891); - QuestSequence questSequence2 = default(QuestSequence); - Questionable.Model.Quest quest = default(Questionable.Model.Quest); - QuestController.QuestProgress startedQuest = default(QuestController.QuestProgress); - QuestStep questStep = default(QuestStep); - bool flag = default(bool); - while (true) + if (!_questController.IsRunning) { - int num2 = num; - int num3 = 1023104895; - int num4 = num2; - int num5; - int num6; - switch ((num4 | num3) - (num4 & num3)) + return; + } + QuestController.QuestProgress startedQuest = _questController.StartedQuest; + if (startedQuest == null) + { + return; + } + Questionable.Model.Quest quest = startedQuest.Quest; + bool flag; + if (checkAllSteps) + { + flag = quest.FindSequence(startedQuest.Sequence)?.Steps.Any((QuestStep step) => CheckSinglePlayerDutyYesNo(quest.Id, step)) ?? false; + } + else + { + QuestStep questStep = quest.FindSequence(startedQuest.Sequence)?.FindStep(startedQuest.Step); + flag = questStep != null && CheckSinglePlayerDutyYesNo(quest.Id, questStep); + } + if (flag) + { + if (_dutyRetryState.AwaitingOutcome && !_dutyRetryState.CanRetry(_configuration.SinglePlayerDuties.MaxRetries)) { - case 5: - num = 1023104891; - break; - case 7: - { - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-174771791), new object[1] { _configuration.SinglePlayerDuties.RetryDifficulty }); - AtkValue* values = stackalloc AtkValue[2] - { - new AtkValue - { - Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Int, - Int = 0 - }, - new AtkValue - { - Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Int, - Int = (int)_configuration.SinglePlayerDuties.RetryDifficulty - } - }; - addonDifficultySelectYesNo->FireCallback(2u, values); - num = 1023104894; - break; + _logger.LogInformation("DifficultySelectYesNo: retry limit reached, not auto-confirming"); + return; } - case 10: - return; - case 13: - num = (_dutyRetryState.CanRetry(_configuration.SinglePlayerDuties.MaxRetries) ? 1023104888 : 1023104880); - break; - case 3: - questSequence2 = quest.FindSequence(startedQuest.Sequence); - num = ((questSequence2 == null) ? 1023104883 : 1023104886); - break; - case 9: - num5 = (_202C_206F_200B_206E_200D_200B_206B_202A_200E_206D_200F_202E_202C_206D_202C_200F_206B_206C_202C_202D_200B_202B_206F_202B_202A_206B_206B_200F_202C_206A_202B_202A_206A_202C_202E_200D_206D_200E_202E_206C_202E(questSequence2).Any((QuestStep step) => CheckSinglePlayerDutyYesNo(quest.Id, step)) ? 1 : 0); - goto IL_022c; - case 11: + _logger.LogDebug("Confirming difficulty ({Difficulty}) for quest battle", _configuration.SinglePlayerDuties.RetryDifficulty); + AtkValue* values = stackalloc AtkValue[2] { - QuestSequence? questSequence = quest.FindSequence(startedQuest.Sequence); - questStep = ((questSequence != null) ? _200D_200E_200D_206C_206D_200C_200F_200C_206A_206C_202A_206C_202A_200C_200C_202A_206C_202E_206C_200E_202C_202D_200E_202A_200F_200F_200E_202E_200C_200D_206C_202C_200E_200B_206E_206A_200D_200D_200C_200D_202E(questSequence, startedQuest.Step) : null); - num = ((questStep == null) ? 1023104889 : 1023104893); - break; - } - case 12: - num5 = 0; - goto IL_022c; - case 14: - startedQuest = _questController.StartedQuest; - num = ((startedQuest != null) ? 1023104879 : 1023104885); - break; - case 6: - num6 = 0; - goto IL_0264; - case 8: - num = ((!flag) ? 1023104894 : 1023104895); - break; - case 15: - _202B_202A_206C_206F_206E_202C_202B_206E_200F_206B_200E_202B_202E_206B_200B_206F_206E_202E_202A_200F_206E_202E_200C_206E_206C_200D_202C_200B_202C_200E_206E_206C_206B_200B_202E_202B_206C_202C_202A_202B_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1840610405), Array.Empty<object>()); - return; - case 4: - return; - case 1: - return; - case 2: - num6 = (CheckSinglePlayerDutyYesNo(quest.Id, questStep) ? 1 : 0); - goto IL_0264; - case 16: - quest = startedQuest.Quest; - num = ((!checkAllSteps) ? 1023104884 : 1023104892); - break; - case 0: + new AtkValue { - num = ((!_dutyRetryState.AwaitingOutcome) ? 1023104888 : 1023104882); - break; + Type = AtkValueType.Int, + Int = 0 + }, + new AtkValue + { + Type = AtkValueType.Int, + Int = (int)_configuration.SinglePlayerDuties.RetryDifficulty } - IL_022c: - flag = (byte)num5 != 0; - num = 1023104887; - break; - IL_0264: - flag = (byte)num6 != 0; - num = 1023104887; - break; - } + }; + addonDifficultySelectYesNo->FireCallback(2u, values); } } - [MethodImpl(MethodImplOptions.NoInlining)] private ushort? FindTargetTerritoryFromQuestStep(QuestController.QuestProgress currentQuest) { QuestSequence questSequence = currentQuest.Quest.FindSequence(currentQuest.Sequence); - int num = ((questSequence != null) ? (-1997211430) : (-1997211426)); - QuestStep questStep = default(QuestStep); - GatheringPointId gatheringPointId = default(GatheringPointId); - GatheringRoot gatheringRoot = default(GatheringRoot); - QuestStep current = default(QuestStep); - while (true) + if (questSequence == null) { - int num2 = num; - int num3 = -1997211425; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return null; + } + QuestStep questStep = questSequence.FindStep(currentQuest.Step); + if (questStep != null) + { + _logger.LogTrace("FindTargetTerritoryFromQuestStep (current): {CurrentTerritory}, {TargetTerritory}", questStep.TerritoryId, questStep.TargetTerritoryId); + } + if (questStep != null && (questStep.TerritoryId != _clientState.TerritoryType || !questStep.TargetTerritoryId.HasValue) && questStep.InteractionType == EInteractionType.Gather) + { + IGameObject gameObject = _objectTable[0]; + if (_gatheringPointRegistry.TryGetGatheringPointId(questStep.ItemsToGather[0].ItemId, ((EClassJob?)(gameObject as ICharacter)?.ClassJob.RowId).GetValueOrDefault(), out GatheringPointId gatheringPointId) && _gatheringPointRegistry.TryGetGatheringPoint(gatheringPointId, out GatheringRoot gatheringRoot)) { - default: - continue; - case 7: - if (questStep != null) + foreach (QuestStep step in gatheringRoot.Steps) { - num = -1997211431; - continue; - } - break; - case 1: - return null; - case 3: - if (_202A_206C_200B_202D_206C_206E_206C_200F_200E_202B_206E_206D_200C_206E_206A_206C_202C_206F_200F_206A_200B_206F_200B_202B_200B_206B_200B_202E_202D_200B_202A_200E_206E_206C_202D_202B_200E_200E_200B_200E_202E(questStep) == EInteractionType.Gather) - { - num = -1997211433; - continue; - } - break; - case 0: - if (!_200D_202A_200E_206B_200B_206B_206D_202E_202B_206C_206D_202C_206E_200C_206D_202B_206D_206B_206B_202E_206D_200C_206E_200D_202C_206E_206B_206B_206E_200B_202D_202A_206D_206A_206D_206E_206C_200E_202D_202B_202E(questStep).HasValue) - { - num = -1997211428; - continue; - } - break; - case 6: - num = ((_206E_200D_206B_202C_202B_202E_206C_200C_202D_206F_206F_206C_200B_206E_202D_200E_206F_202C_206B_202E_206F_206B_200F_202A_202D_200B_206A_202B_202B_206B_202D_202C_206A_206A_206E_200D_200E_202B_206A_202B_202E(questStep) != _200D_206E_200C_200C_202A_200B_200E_202D_206E_206E_200E_200D_206D_200C_202B_200B_202A_206F_206F_206F_206C_206B_200C_200B_200F_200E_200D_200E_206B_202E_200E_200C_206E_200C_206F_206E_202B_206D_206B_202E(_clientState)) ? (-1997211428) : (-1997211425)); - continue; - case 2: - _206D_200D_200E_202C_200F_200E_202E_206B_206A_202C_206E_202E_202D_206D_206E_206E_200D_200B_200B_206C_206E_200D_200D_206F_200D_202C_202B_200D_202C_200D_200E_206A_200F_202D_202B_202C_206C_200F_200D_200F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1599957604), new object[2] - { - _206E_200D_206B_202C_202B_202E_206C_200C_202D_206F_206F_206C_200B_206E_202D_200E_206F_202C_206B_202E_206F_206B_200F_202A_202D_200B_206A_202B_202B_206B_202D_202C_206A_206A_206E_200D_200E_202B_206A_202B_202E(questStep), - _200D_202A_200E_206B_200B_206B_206D_202E_202B_206C_206D_202C_206E_200C_206D_202B_206D_206B_206B_202E_206D_200C_206E_200D_202C_206E_206B_206B_206E_200B_202D_202A_206D_206A_206D_206E_206C_200E_202D_202B_202E(questStep) - }); - num = -1997211432; - continue; - case 8: - { - IGameObject gameObject = _206C_206D_200D_200F_202C_202D_200D_206A_200E_200F_206C_206A_206F_202A_206A_206C_200B_202B_206B_206A_200B_200F_202A_206D_202B_206F_206F_202C_202E_206E_206D_202C_206A_206E_200C_206B_206A_206E_202D_200D_202E(_objectTable, 0); - GatheringPointRegistry gatheringPointRegistry = _gatheringPointRegistry; - uint itemId = _202C_206A_200E_206D_206F_200E_202B_200B_202E_206D_200C_206B_202C_200C_206D_200D_206E_200D_202E_206E_200D_200B_206F_206E_206F_200F_206C_206E_206B_206E_200B_202B_202E_200C_202A_200E_200D_206F_200D_202E(_200C_206F_206A_206E_200B_206A_200C_202D_206A_206F_206D_200E_202B_206E_206C_206E_202B_200C_202A_202E_200B_200F_200E_202A_206D_202A_200F_206A_206F_206E_206C_202C_206D_206E_200B_200C_202A_206E_206E_206B_202E(questStep)[0]); - ICharacter obj = gameObject as ICharacter; - if (gatheringPointRegistry.TryGetGatheringPointId(itemId, ((EClassJob?)((obj != null) ? new uint?(_202A_206F_206C_200B_206F_200B_206E_206D_206F_202D_206D_202E_202A_200D_206B_206B_202E_206F_206B_200F_206D_202C_206B_206B_202D_206B_206A_202A_202B_202B_200D_202C_206E_206F_202B_206C_206F_206D_200E_206B_202E(obj).RowId) : ((uint?)null))).GetValueOrDefault(), out gatheringPointId)) - { - num = -1997211434; - continue; - } - break; - } - case 9: - if (_gatheringPointRegistry.TryGetGatheringPoint(gatheringPointId, out gatheringRoot)) - { - num = -1997211435; - continue; - } - break; - case 4: - num = -1997211426; - continue; - case 5: - questStep = _206D_200E_206F_202C_202B_206B_206B_200E_206F_200F_202D_206B_202D_206D_200E_206A_202D_202A_200C_200E_200E_206A_206C_202D_206C_206F_202B_206A_206B_206E_206F_200C_202D_200F_206A_200B_206D_202B_202B_200C_202E(questSequence, currentQuest.Step); - num = ((questStep == null) ? (-1997211432) : (-1997211427)); - continue; - case 10: - { - using (List<QuestStep>.Enumerator enumerator = _200F_202D_202C_202A_200D_200D_200B_200F_200E_206D_202B_206B_202C_202E_206E_202D_202D_206D_200C_206C_202B_200E_206C_206E_202B_202C_200B_206A_202C_206A_200C_206F_202E_206C_202E_202C_206A_206E_202B_200C_202E(gatheringRoot).GetEnumerator()) - { - num = 1631096220; - while (true) + if (step.TerritoryId == _clientState.TerritoryType && step.TargetTerritoryId.HasValue) { - int num7 = num; - num3 = 1631096222; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - _206D_200D_200E_202C_200F_200E_202E_206B_206A_202C_206E_202E_202D_206D_206E_206E_200D_200B_200B_206C_206E_200D_200D_206F_200D_202C_202B_200D_202C_200D_200E_206A_200F_202D_202B_202C_206C_200F_200D_200F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(460838574), new object[2] - { - _206E_200D_206B_202C_202B_202E_206C_200C_202D_206F_206F_206C_200B_206E_202D_200E_206F_202C_206B_202E_206F_206B_200F_202A_202D_200B_206A_202B_202B_206B_202D_202C_206A_206A_206E_200D_200E_202B_206A_202B_202E(current), - _200D_202A_200E_206B_200B_206B_206D_202E_202B_206C_206D_202C_206E_200C_206D_202B_206D_206B_206B_202E_206D_200C_206E_200D_202C_206E_206B_206B_206E_200B_202D_202A_206D_206A_206D_206E_206C_200E_202D_202B_202E(current) - }); - return _200D_202A_200E_206B_200B_206B_206D_202E_202B_206C_206D_202C_206E_200C_206D_202B_206D_206B_206B_202E_206D_200C_206E_200D_202C_206E_206B_206B_206E_200B_202D_202A_206D_206A_206D_206E_206C_200E_202D_202B_202E(current); - case 0: - num = ((!_200D_202A_200E_206B_200B_206B_206D_202E_202B_206C_206D_202C_206E_200C_206D_202B_206D_206B_206B_202E_206D_200C_206E_200D_202C_206E_206B_206B_206E_200B_202D_202A_206D_206A_206D_206E_206C_200E_202D_202B_202E(current).HasValue) ? 1631096220 : 1631096221); - break; - case 2: - num = (enumerator.MoveNext() ? 1631096219 : 1631096223); - break; - case 4: - num = 1631096220; - break; - case 5: - current = enumerator.Current; - num = ((_206E_200D_206B_202C_202B_202E_206C_200C_202D_206F_206F_206C_200B_206E_202D_200E_206F_202C_206B_202E_206F_206B_200F_202A_202D_200B_206A_202B_202B_206B_202D_202C_206A_206A_206E_200D_200E_202B_206A_202B_202E(current) != _200D_206E_200C_200C_202A_200B_200E_202D_206E_206E_200E_200D_206D_200C_202B_200B_202A_206F_206F_206F_206C_206B_200C_200B_200F_200E_200D_200E_206B_202E_200E_200C_206E_200C_206F_206E_202B_206D_206B_202E(_clientState)) ? 1631096220 : 1631096222); - break; - case 1: - goto end_IL_0251; - } - continue; - end_IL_0251: - break; + _logger.LogTrace("FindTargetTerritoryFromQuestStep (gathering): {CurrentTerritory}, {TargetTerritory}", step.TerritoryId, step.TargetTerritoryId); + return step.TargetTerritoryId; } } - break; } - } - break; } - num = ((questStep == null) ? 752015086 : 752015087); - while (true) + if (questStep == null || !questStep.TargetTerritoryId.HasValue) { - int num8 = num; - int num3 = 752015085; - int num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) + _logger.LogTrace("FindTargetTerritoryFromQuestStep: Checking previous step..."); + questStep = questSequence.FindStep((currentQuest.Step == 255) ? (questSequence.Steps.Count - 1) : (currentQuest.Step - 1)); + if (questStep != null) { - case 3: - _206D_200D_200E_202C_200F_200E_202E_206B_206A_202C_206E_202E_202D_206D_206E_206E_200D_200B_200B_206C_206E_200D_200D_206F_200D_202C_202B_200D_202C_200D_200E_206A_200F_202D_202B_202C_206C_200F_200D_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-731518161), Array.Empty<object>()); - questStep = _206D_200E_206F_202C_202B_206B_206B_200E_206F_200F_202D_206B_202D_206D_200E_206A_202D_202A_200C_200E_200E_206A_206C_202D_206C_206F_202B_206A_206B_206E_206F_200C_202D_200F_206A_200B_206D_202B_202B_200C_202E(questSequence, (currentQuest.Step == 255) ? (_202C_206F_200B_206E_200D_200B_206B_202A_200E_206D_200F_202E_202C_206D_202C_200F_206B_206C_202C_202D_200B_202B_206F_202B_202A_206B_206B_200F_202C_206A_202B_202A_206A_202C_202E_200D_206D_200E_202E_206C_202E(questSequence).Count - 1) : (currentQuest.Step - 1)); - num = ((questStep == null) ? 752015082 : 752015080); - break; - case 2: - num = (_200D_202A_200E_206B_200B_206B_206D_202E_202B_206C_206D_202C_206E_200C_206D_202B_206D_206B_206B_202E_206D_200C_206E_200D_202C_206E_206B_206B_206E_200B_202D_202A_206D_206A_206D_206E_206C_200E_202D_202B_202E(questStep).HasValue ? 752015082 : 752015086); - break; - case 0: - num = 752015087; - break; - case 1: - num = (_200D_202A_200E_206B_200B_206B_206D_202E_202B_206C_206D_202C_206E_200C_206D_202B_206D_206B_206B_202E_206D_200C_206E_200D_202C_206E_206B_206B_206E_200B_202D_202A_206D_206A_206D_206E_206C_200E_202D_202B_202E(questStep).HasValue ? 752015083 : 752015081); - break; - case 7: - num = ((questStep == null) ? 752015081 : 752015084); - break; - case 6: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-176972039), new object[1] { _200D_202A_200E_206B_200B_206B_206D_202E_202B_206C_206D_202C_206E_200C_206D_202B_206D_206B_206B_202E_206D_200C_206E_200D_202C_206E_206B_206B_206E_200B_202D_202A_206D_206A_206D_206E_206C_200E_202D_202B_202E(questStep) }); - return _200D_202A_200E_206B_200B_206B_206D_202E_202B_206C_206D_202C_206E_200C_206D_202B_206D_206B_206B_202E_206D_200C_206E_200D_202C_206E_206B_206B_206E_200B_202D_202A_206D_206A_206D_206E_206C_200E_202D_202B_202E(questStep); - case 5: - _206D_200D_200E_202C_200F_200E_202E_206B_206A_202C_206E_202E_202D_206D_206E_206E_200D_200B_200B_206C_206E_200D_200D_206F_200D_202C_202B_200D_202C_200D_200E_206A_200F_202D_202B_202C_206C_200F_200D_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1109011822), new object[2] - { - _206E_200D_206B_202C_202B_202E_206C_200C_202D_206F_206F_206C_200B_206E_202D_200E_206F_202C_206B_202E_206F_206B_200F_202A_202D_200B_206A_202B_202B_206B_202D_202C_206A_206A_206E_200D_200E_202B_206A_202B_202E(questStep), - _200D_202A_200E_206B_200B_206B_206D_202E_202B_206C_206D_202C_206E_200C_206D_202B_206D_206B_206B_202E_206D_200C_206E_200D_202C_206E_206B_206B_206E_200B_202D_202A_206D_206A_206D_206E_206C_200E_202D_202B_202E(questStep) - }); - num = 752015082; - break; - case 4: - _206D_200D_200E_202C_200F_200E_202E_206B_206A_202C_206E_202E_202D_206D_206E_206E_200D_200B_200B_206C_206E_200D_200D_206F_200D_202C_202B_200D_202C_200D_200E_206A_200F_202D_202B_202C_206C_200F_200D_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(179258549), Array.Empty<object>()); - return null; + _logger.LogTrace("FindTargetTerritoryFromQuestStep (previous): {CurrentTerritory}, {TargetTerritory}", questStep.TerritoryId, questStep.TargetTerritoryId); } } + if (questStep == null || !questStep.TargetTerritoryId.HasValue) + { + _logger.LogTrace("FindTargetTerritoryFromQuestStep: Not found"); + return null; + } + _logger.LogDebug("Target territory for quest step: {TargetTerritory}", questStep.TargetTerritoryId); + return questStep.TargetTerritoryId; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool TryFindWarp(ushort targetTerritoryId, string actualPrompt, [NotNullWhen(true)] out uint? warpId, [NotNullWhen(true)] out string? warpText) { - IEnumerator<Warp> enumerator = _dataManager.GetExcelSheet<Warp>().Where(delegate(Warp x) + foreach (Warp item in from x in _dataManager.GetExcelSheet<Warp>() + where x.RowId != 0 && x.TerritoryType.RowId == targetTerritoryId + select x) { - int num8 = ((x.RowId == 0) ? (-1261934104) : (-1261934103)); - while (true) + string text = item.Name.WithCertainMacroCodeReplacements(); + string text2 = item.Question.WithCertainMacroCodeReplacements(); + if (!string.IsNullOrEmpty(text2) && GameFunctions.GameStringEquals(text2, actualPrompt)) { - int num9 = num8; - int num10 = -1261934104; - int num11 = num9; - switch ((num11 | num10) - (num11 & num10)) - { - case 2: - goto IL_0048; - case 0: - return false; - case 1: - return x.TerritoryType.RowId == targetTerritoryId; - } - continue; - IL_0048: - num8 = -1261934103; + warpId = item.RowId; + warpText = text2; + return true; } - }).GetEnumerator(); - try - { - int num = -1235873289; - string text = default(string); - Warp current = default(Warp); - string text2 = default(string); - while (true) + if (!string.IsNullOrEmpty(text) && GameFunctions.GameStringEquals(text, actualPrompt)) { - int num2 = num; - int num3 = -1235873289; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - num = ((!GameFunctions.GameStringEquals(text, actualPrompt)) ? (-1235873291) : (-1235873282)); - break; - case 6: - current = enumerator.Current; - text2 = _200F_200F_206A_202B_200F_200E_200C_200F_202C_206A_206F_202C_200C_206C_200C_202D_202E_200B_200B_206F_206A_206D_200E_206D_202E_202B_200C_206A_200D_206C_202D_206D_206A_202B_202B_202A_200E_206E_206C_206C_202E(current.Name); - text = _200F_200F_206A_202B_200F_200E_200C_200F_202C_206A_206F_202C_200C_206C_200C_202D_202E_200B_200B_206F_206A_206D_200E_206D_202E_202B_200C_206A_200D_206C_202D_206D_206A_202B_202B_202A_200E_206E_206C_206C_202E(current.Question); - num = (_200B_206D_200D_206B_202D_206E_200E_206C_206C_202E_206E_200D_200B_206B_206B_200F_200D_202A_202C_202C_200C_206A_206E_206F_206C_200B_206A_202A_200E_200B_200D_206B_206B_206F_206D_202C_206D_202B_202C_202A_202E(text) ? (-1235873291) : (-1235873290)); - break; - case 0: - num = (_206C_206B_202B_206D_200F_202A_200B_202C_206B_206D_202B_202C_206A_206E_202C_206A_206B_202C_206E_206C_202D_206C_200E_202A_200B_200B_200C_200E_202D_206D_200B_202E_206C_202E_200B_200B_200D_206D_200E_202C_202E((IEnumerator)enumerator) ? (-1235873295) : (-1235873294)); - break; - case 2: - num = (_200B_206D_200D_206B_202D_206E_200E_206C_206C_202E_206E_200D_200B_206B_206B_200F_200D_202A_202C_202C_200C_206A_206E_206F_206C_200B_206A_202A_200E_200B_200D_206B_206B_206F_206D_202C_206D_202B_202C_202A_202E(text2) ? (-1235873281) : (-1235873292)); - break; - case 4: - warpId = current.RowId; - warpText = text2; - return true; - case 3: - num = ((!GameFunctions.GameStringEquals(text2, actualPrompt)) ? (-1235873281) : (-1235873293)); - break; - case 8: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1283589118), new object[1] { text }); - num = -1235873289; - break; - case 9: - warpId = current.RowId; - warpText = text; - return true; - case 7: - num = -1235873289; - break; - case 5: - goto end_IL_0045; - } - continue; - end_IL_0045: - break; - } - } - finally - { - int num = ((enumerator == null) ? (-64783073) : (-64783076)); - while (true) - { - int num7 = num; - int num3 = -64783074; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -64783076; - break; - case 1: - goto end_IL_0218; - case 2: - _202B_206A_200F_206A_206C_202C_206D_202D_200E_202C_200F_202A_202A_206B_200D_206B_206E_202D_202B_200C_202E_200B_200D_206C_200B_206E_206D_206B_202C_200D_200C_206F_202B_200D_200F_206E_206E_200E_202E_202D_202E((IDisposable)enumerator); - num = -64783073; - break; - } - continue; - end_IL_0218: - break; + warpId = item.RowId; + warpText = text; + return true; } + _logger.LogDebug("Ignoring prompt '{Prompt}'", text2); } warpId = null; warpText = null; @@ -3078,563 +1125,133 @@ internal sealed class InteractionUiController : IDisposable private unsafe void PointMenuPostSetup(AddonEvent type, AddonArgs args) { - AtkUnitBase* address = (AtkUnitBase*)_200C_202E_202E_200C_206B_202B_200C_206B_200C_200D_206C_206C_200F_202A_206F_202B_206C_206E_206E_206C_200F_200D_206A_206F_200E_206E_202E_200F_200C_206B_206E_202E_200B_202C_200D_202A_200B_200D_200F_200D_202E(args).Address; + AtkUnitBase* address = (AtkUnitBase*)args.Addon.Address; PointMenuPostSetup(address, checkAllSteps: false); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void PointMenuPostSetup(AtkUnitBase* addonPointMenu, bool checkAllSteps) { - int num = (checkAllSteps ? (-2076994705) : (-2076994712)); - QuestSequence questSequence = default(QuestSequence); - QuestController.QuestProgress startedQuest = default(QuestController.QuestProgress); - QuestStep questStep = default(QuestStep); - int pointMenuCounter = default(int); - while (true) + if (!checkAllSteps && !ShouldHandleUiInteractions) { - int num2 = num; - int num3 = -2076994710; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 13: - _206D_202E_202E_200D_202C_206A_202B_200F_202D_206F_200C_206A_206C_202A_200D_200D_202A_206D_202D_206B_202D_206F_200C_200B_206B_200F_206A_206E_202D_206B_200C_206C_200E_206A_200D_206C_200E_206F_206B_202C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-629140143), Array.Empty<object>()); - return; - case 2: - num = (ShouldHandleUiInteractions ? (-2076994705) : (-2076994707)); - break; - case 9: - questSequence = startedQuest.Quest.FindSequence(startedQuest.Sequence); - num = ((questSequence != null) ? (-2076994709) : (-2076994710)); - break; - case 0: - return; - case 4: - num = ((_202C_200F_206B_206F_202D_206D_200F_202B_202A_206F_202C_202D_202E_206A_202B_202D_200B_206B_206A_200C_200D_206E_200C_200E_206F_206D_206B_200F_206A_202A_206B_200F_202A_206C_200C_206D_202E_202E_202C_200F_202E(questStep).Count != 0) ? (-2076994714) : (-2076994708)); - break; - case 6: - _206D_202E_202E_200D_202C_206A_202B_200F_202D_206F_200C_206A_206C_202A_200D_200D_202A_206D_202D_206B_202D_206F_200C_200B_206B_200F_206A_206E_202D_206B_200C_206C_200E_206A_200D_206C_200E_206F_206B_202C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(600445072), Array.Empty<object>()); - return; - case 3: - return; - case 1: - questStep = _206D_200E_206F_202C_202B_206B_206B_200E_206F_200F_202D_206B_202D_206D_200E_206A_202D_202A_200C_200E_200E_206A_206C_202D_206C_206F_202B_206A_206B_206E_206F_200C_202D_200F_206A_200B_206D_202B_202B_200C_202E(questSequence, startedQuest.Step); - num = ((questStep != null) ? (-2076994706) : (-2076994711)); - break; - case 11: - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1939621760), Array.Empty<object>()); - return; - case 10: - { - uint num7 = _202C_200F_206B_206F_202D_206D_200F_202B_202A_206F_202C_202D_202E_206A_202B_202D_200B_206B_206A_200C_200D_206E_200C_200E_206F_206D_206B_200F_206A_202A_206B_200F_202A_206C_200C_206D_202E_202E_202C_200F_202E(questStep)[pointMenuCounter]; - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1247950313), new object[2] { num7, pointMenuCounter }); - AtkValue* values = stackalloc AtkValue[2] - { - new AtkValue - { - Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Int, - Int = 13 - }, - new AtkValue - { - Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.UInt, - UInt = num7 - } - }; - addonPointMenu->FireCallback(2u, values); - startedQuest.IncreasePointMenuCounter(); - return; - } - case 8: - num = -2076994712; - break; - case 7: - return; - case 5: - startedQuest = _questController.StartedQuest; - num = ((startedQuest != null) ? (-2076994717) : (-2076994719)); - break; - case 12: - pointMenuCounter = startedQuest.StepProgress.PointMenuCounter; - num = ((pointMenuCounter < _202C_200F_206B_206F_202D_206D_200F_202B_202A_206F_202C_202D_202E_206A_202B_202D_200B_206B_206A_200C_200D_206E_200C_200E_206F_206D_206B_200F_206A_202A_206B_200F_202A_206C_200C_206D_202E_202E_202C_200F_202E(questStep).Count) ? (-2076994720) : (-2076994713)); - break; - } + return; } + QuestController.QuestProgress startedQuest = _questController.StartedQuest; + if (startedQuest == null) + { + _logger.LogDebug("Ignoring point menu, no active quest"); + return; + } + QuestSequence questSequence = startedQuest.Quest.FindSequence(startedQuest.Sequence); + if (questSequence == null) + { + return; + } + QuestStep questStep = questSequence.FindStep(startedQuest.Step); + if (questStep == null) + { + return; + } + if (questStep.PointMenuChoices.Count == 0) + { + _logger.LogWarning("No point menu choices"); + return; + } + int pointMenuCounter = startedQuest.StepProgress.PointMenuCounter; + if (pointMenuCounter >= questStep.PointMenuChoices.Count) + { + _logger.LogWarning("No remaining point menu choices"); + return; + } + uint num = questStep.PointMenuChoices[pointMenuCounter]; + _logger.LogDebug("Handling point menu, picking choice {Choice} (index = {Index})", num, pointMenuCounter); + AtkValue* values = stackalloc AtkValue[2] + { + new AtkValue + { + Type = AtkValueType.Int, + Int = 13 + }, + new AtkValue + { + Type = AtkValueType.UInt, + UInt = num + } + }; + addonPointMenu->FireCallback(2u, values); + startedQuest.IncreasePointMenuCounter(); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void HousingSelectBlockPostSetup(AddonEvent type, AddonArgs args) { - int num = (ShouldHandleUiInteractions ? 514883216 : 514883217); - while (true) + if (ShouldHandleUiInteractions) { - int num2 = num; - int num3 = 514883216; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0048; - case 0: - { - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-457521013), Array.Empty<object>()); - AtkUnitBase* address = (AtkUnitBase*)_200C_202E_202E_200C_206B_202B_200C_206B_200C_200D_206C_206C_200F_202A_206F_202B_206C_206E_206E_206C_200F_200D_206A_206F_200E_206E_202E_200F_200C_206B_206E_202E_200B_202C_200D_202A_200B_200D_200F_200D_202E(args).Address; - address->FireCallbackInt(0); - return; - } - case 1: - return; - } - continue; - IL_0048: - num = 514883217; + _logger.LogDebug("Confirming selected housing ward"); + AtkUnitBase* address = (AtkUnitBase*)args.Addon.Address; + address->FireCallbackInt(0); } } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void EasterMowingResultPostSetup(AddonEvent type, AddonArgs args) { - int num = (_seasonalDutyController.IsRunning ? 1290654287 : 1290654286); - while (true) + if (_seasonalDutyController.IsRunning || ShouldHandleUiInteractions) { - int num2 = num; - int num3 = 1290654285; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + _logger.LogDebug("Dismissing EasterMowingResult"); + AtkUnitBase* address = (AtkUnitBase*)args.Addon.Address; + AtkValue* values = stackalloc AtkValue[3] { - case 2: - { - _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(175571683), Array.Empty<object>()); - AtkUnitBase* address = (AtkUnitBase*)_200C_202E_202E_200C_206B_202B_200C_206B_200C_200D_206C_206C_200F_202A_206F_202B_206C_206E_206E_206C_200F_200D_206A_206F_200E_206E_202E_200F_200C_206B_206E_202E_200B_202C_200D_202A_200B_200D_200F_200D_202E(args).Address; - AtkValue* values = stackalloc AtkValue[3] + new AtkValue { - new AtkValue - { - Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Int, - Int = -1 - }, - new AtkValue - { - Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Int, - Int = 1 - }, - new AtkValue - { - Type = FFXIVClientStructs.FFXIV.Component.GUI.AtkValueType.Int, - Int = 1 - } - }; - address->FireCallback(3u, values); - address->Close(fireCallback: true); - return; - } - case 1: - return; - case 3: - num = (ShouldHandleUiInteractions ? 1290654287 : 1290654284); - break; - case 0: - num = 1290654286; - break; - } + Type = AtkValueType.Int, + Int = -1 + }, + new AtkValue + { + Type = AtkValueType.Int, + Int = 1 + }, + new AtkValue + { + Type = AtkValueType.Int, + Int = 1 + } + }; + address->FireCallback(3u, values); + address->Close(fireCallback: true); } } private StringOrRegex? ResolveReference(Questionable.Model.Quest? quest, string? excelSheet, ExcelRef? excelRef, bool isRegExp) { - int num = ((excelRef != null) ? (-2041443838) : (-2041443828)); - while (true) + if (excelRef == null) { - int num2 = num; - int num3 = -2041443830; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return _excelFunctions.GetDialogueText(quest, excelSheet, _202E_202E_200B_206B_206C_202A_206F_206B_200C_206B_200F_206E_202E_206B_202E_206B_202A_206B_202B_202C_200D_202A_200E_202A_206D_200D_206F_202A_202A_206F_202A_200B_200E_200B_202E_200B_200E_206D_206B_206D_202E(excelRef), isRegExp); - case 5: - num = ((_202D_202D_206D_206C_206D_206B_206A_206F_206B_200F_206D_200E_206D_206D_206D_200C_200C_200D_202E_202A_206D_202B_202E_202D_206B_200F_202D_202D_202E_206C_202E_202D_202C_202E_200E_200F_206A_202A_206C_206D_202E(excelRef) != ExcelRef.EType.RowId) ? (-2041443826) : (-2041443829)); - break; - case 4: - num = ((_202D_202D_206D_206C_206D_206B_206A_206F_206B_200F_206D_200E_206D_206D_206D_200C_200C_200D_202E_202A_206D_202B_202E_202D_206B_200F_202D_202D_202E_206C_202E_202D_202C_202E_200E_200F_206A_202A_206C_206D_202E(excelRef) != ExcelRef.EType.RawString) ? (-2041443831) : (-2041443827)); - break; - case 3: - return null; - case 1: - return _excelFunctions.GetDialogueTextByRowId(excelSheet, _202D_200E_200C_202B_206A_200F_206F_202B_206D_206B_202B_206C_200D_202A_200E_200F_200B_202A_206D_206D_202D_202A_206A_206B_206A_206B_200B_202D_206F_206E_206A_200C_200D_206D_200E_200B_202A_206B_206B_202E(excelRef), isRegExp); - case 6: - return null; - case 8: - num = ((_202D_202D_206D_206C_206D_206B_206A_206F_206B_200F_206D_200E_206D_206D_206D_200C_200C_200D_202E_202A_206D_202B_202E_202D_206B_200F_202D_202D_202E_206C_202E_202D_202C_202E_200E_200F_206A_202A_206C_206D_202E(excelRef) != ExcelRef.EType.Key) ? (-2041443825) : (-2041443830)); - break; - case 2: - num = -2041443828; - break; - case 7: - return new StringOrRegex(_202C_200C_200B_202A_202A_202D_202C_202E_200F_206F_206A_200B_202A_202D_206A_202D_206D_202C_202B_200F_200F_200F_200C_206A_206C_200C_206B_206B_200E_202D_206F_200C_202E_206B_206F_200F_200B_206E_206C_206E_202E(excelRef)); - } + return null; } + if (excelRef.Type == ExcelRef.EType.Key) + { + return _excelFunctions.GetDialogueText(quest, excelSheet, excelRef.AsKey(), isRegExp); + } + if (excelRef.Type == ExcelRef.EType.RowId) + { + return _excelFunctions.GetDialogueTextByRowId(excelSheet, excelRef.AsRowId(), isRegExp); + } + if (excelRef.Type == ExcelRef.EType.RawString) + { + return new StringOrRegex(excelRef.AsRawString()); + } + return null; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Dispose() { - _206F_202A_200C_200E_202E_200D_202E_200C_206F_202A_202C_206F_202E_206A_202E_200B_206E_206F_200E_200D_202D_200F_206E_202A_202C_200F_206A_202E_202A_202A_202A_200E_202B_202A_206C_202B_206A_206D_202A_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1845712813), (IAddonLifecycle.AddonEventDelegate)EasterMowingResultPostSetup); - _206F_202A_200C_200E_202E_200D_202E_200C_206F_202A_202C_206F_202E_206A_202E_200B_206E_206F_200E_200D_202D_200F_206E_202A_202C_200F_206A_202E_202A_202A_202A_200E_202B_202A_206C_202B_206A_206D_202A_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1462282105), (IAddonLifecycle.AddonEventDelegate)HousingSelectBlockPostSetup); - _206F_202A_200C_200E_202E_200D_202E_200C_206F_202A_202C_206F_202E_206A_202E_200B_206E_206F_200E_200D_202D_200F_206E_202A_202C_200F_206A_202E_202A_202A_202A_200E_202B_202A_206C_202B_206A_206D_202A_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1285367197), (IAddonLifecycle.AddonEventDelegate)PointMenuPostSetup); - _206F_202A_200C_200E_202E_200D_202E_200C_206F_202A_202C_206F_202E_206A_202E_200B_206E_206F_200E_200D_202D_200F_206E_202A_202C_200F_206A_202E_202A_202A_202A_200E_202B_202A_206C_202B_206A_206D_202A_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2016464440), (IAddonLifecycle.AddonEventDelegate)DifficultySelectYesNoPostSetup); - _206F_202A_200C_200E_202E_200D_202E_200C_206F_202A_202C_206F_202E_206A_202E_200B_206E_206F_200E_200D_202D_200F_206E_202A_202C_200F_206A_202E_202A_202A_202A_200E_202B_202A_206C_202B_206A_206D_202A_206B_202E(_addonLifecycle, AddonEvent.PostUpdate, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1358767050), (IAddonLifecycle.AddonEventDelegate)SelectYesnoDeathRecoveryPostUpdate); - _206F_202A_200C_200E_202E_200D_202E_200C_206F_202A_202C_206F_202E_206A_202E_200B_206E_206F_200E_200D_202D_200F_206E_202A_202C_200F_206A_202E_202A_202A_202A_200E_202B_202A_206C_202B_206A_206D_202A_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(559979746), (IAddonLifecycle.AddonEventDelegate)SelectYesnoPostSetup); - _206F_202A_200C_200E_202E_200D_202E_200C_206F_202A_202C_206F_202E_206A_202E_200B_206E_206F_200E_200D_202D_200F_206E_202A_202C_200F_206A_202E_202A_202A_202A_200E_202B_202A_206C_202B_206A_206D_202A_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-888070793), (IAddonLifecycle.AddonEventDelegate)SelectIconStringPostSetup); - _206F_202A_200C_200E_202E_200D_202E_200C_206F_202A_202C_206F_202E_206A_202E_200B_206E_206F_200E_200D_202D_200F_206E_202A_202C_200F_206A_202E_202A_202A_202A_200E_202B_202A_206C_202B_206A_206D_202A_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1068435547), (IAddonLifecycle.AddonEventDelegate)CutsceneSelectStringPostSetup); - _206F_202A_200C_200E_202E_200D_202E_200C_206F_202A_202C_206F_202E_206A_202E_200B_206E_206F_200E_200D_202D_200F_206E_202A_202C_200F_206A_202E_202A_202A_202A_200E_202B_202A_206C_202B_206A_206D_202A_206B_202E(_addonLifecycle, AddonEvent.PostSetup, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-467046057), (IAddonLifecycle.AddonEventDelegate)SelectStringPostSetup); + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "EasterMowingResult", EasterMowingResultPostSetup); + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "HousingSelectBlock", HousingSelectBlockPostSetup); + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "PointMenu", PointMenuPostSetup); + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "DifficultySelectYesNo", DifficultySelectYesNoPostSetup); + _addonLifecycle.UnregisterListener(AddonEvent.PostUpdate, "SelectYesno", SelectYesnoDeathRecoveryPostUpdate); + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "SelectYesno", SelectYesnoPostSetup); + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "SelectIconString", SelectIconStringPostSetup); + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "CutSceneSelectString", CutsceneSelectStringPostSetup); + _addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "SelectString", SelectStringPostSetup); _questController.AutomationTypeChanged -= HandleCurrentDialogueChoices; } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static void _206C_202C_200D_200B_206E_200F_206E_206E_206C_206A_206B_206E_206A_202C_202B_200D_200C_200D_206E_206C_200F_200D_202D_200B_200D_202A_202E_200E_206B_206D_202A_206B_200C_200F_200B_206C_202E_200C_206E_206B_202E(IAddonLifecycle P_0, AddonEvent P_1, string P_2, IAddonLifecycle.AddonEventDelegate P_3) - { - P_0.RegisterListener(P_1, P_2, P_3); - } - - static uint _200D_206E_200C_200C_202A_200B_200E_202D_206E_206E_200E_200D_206D_200C_202B_200B_202A_206F_206F_206F_206C_206B_200C_200B_200F_200E_200D_200E_206B_202E_200E_200C_206E_200C_206F_206E_202B_206D_206B_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static void _200D_202E_202B_202E_202C_202A_206B_206E_206E_200E_206F_206A_202B_200B_202E_206D_206E_206B_206E_206B_200F_206F_200F_200F_200C_200D_206F_202A_206A_202D_206D_202A_202A_200B_202B_202A_200D_202A_202A_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static AtkUnitBasePtr _200C_202E_202E_200C_206B_202B_200C_206B_200C_200D_206C_206C_200F_202A_206F_202B_206C_206E_206E_206C_200F_200D_206A_206F_200E_206E_202E_200F_200C_206B_206E_202E_200B_202C_200D_202A_200B_200D_200F_200D_202E(AddonArgs P_0) - { - return P_0.Addon; - } - - static string _202C_206E_202E_206D_202C_200F_202A_202E_202D_202C_200D_206E_202E_202C_200E_202E_202C_200B_206F_202B_202E_202A_202E_206D_206F_202A_200C_202E_202D_200D_202A_200E_200E_206D_202D_202D_206D_202D_200B_200C_202E(AtkValue P_0) - { - return P_0.ReadAtkString(); - } - - static bool _200B_206D_200D_206B_202D_206E_200E_206C_206C_202E_206E_200D_200B_206B_206B_200F_200D_202A_202C_202C_200C_206A_206E_206F_206C_200B_206A_202A_200E_200B_200D_206B_206B_206F_206D_202C_206D_202B_202C_202A_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static QuestStep _200D_200E_200D_206C_206D_200C_200F_200C_206A_206C_202A_206C_202A_200C_200C_202A_206C_202E_206C_200E_202C_202D_200E_202A_200F_200F_200E_202E_200C_200D_206C_202C_200E_200B_206E_206A_200D_200D_200C_200D_202E(QuestSequence P_0, int P_1) - { - return P_0.FindStep(P_1); - } - - static EInteractionType _202A_206C_200B_202D_206C_206E_206C_200F_200E_202B_206E_206D_200C_206E_206A_206C_202C_206F_200F_206A_200B_206F_200B_202B_200B_206B_200B_202E_202D_200B_202A_200E_206E_206C_202D_202B_200E_200E_200B_200E_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static ElementId _200E_200E_200E_200B_202B_202D_206F_200E_206F_202D_206A_206A_200C_206E_200B_206B_202D_206F_202D_200B_200B_206A_202B_206F_200E_200F_206C_206F_202C_200F_206F_206F_206A_202B_202E_200C_200B_200E_200E_206B_202E(QuestStep P_0) - { - return P_0.PickUpQuestId; - } - - static List<QuestStep> _202B_200C_202E_200B_202E_202E_200C_206C_200B_200F_200D_200C_202C_202E_206A_202E_202D_206E_202C_206E_206E_200B_200D_200B_206A_200E_202A_206E_200D_200F_200E_200F_200D_206C_206B_200D_200F_200B_206A_202E_202E(QuestSequence P_0) - { - return P_0.Steps; - } - - static List<QuestStep> _202C_206F_200B_206E_200D_200B_206B_202A_200E_206D_200F_202E_202C_206D_202C_200F_206B_206C_202C_202D_200B_202B_206F_202B_202A_206B_206B_200F_202C_206A_202B_202A_206A_202C_202E_200D_206D_200E_202E_206C_202E(QuestSequence P_0) - { - return P_0.Steps; - } - - static List<DialogueChoice> _200E_206A_200F_200C_206D_206A_202B_206D_206E_206A_200B_200B_202E_206C_202C_206E_206F_200C_202E_202A_200C_200F_200E_206E_206F_202C_200B_202A_206B_206E_206F_200E_206D_206A_202E_200C_206C_206B_202E_202E(QuestStep P_0) - { - return P_0.DialogueChoices; - } - - static PurchaseMenu _206E_200E_206F_202C_200F_206A_206D_202D_202C_202E_200B_200B_200E_206C_202D_206E_202E_206F_206C_200F_206E_200E_206A_200B_200F_202B_200E_206B_202A_206D_200E_202D_206E_206A_202E_202D_200D_206B_200D_200E_202E(QuestStep P_0) - { - return P_0.PurchaseMenu; - } - - static DialogueChoice _200D_200E_206A_202E_200F_206B_206D_206B_200C_200E_202D_206C_206F_200B_200C_200F_202A_202D_206D_200B_206E_206F_200F_200B_202C_200B_202B_202B_202E_206B_202C_202B_200D_206B_206A_202B_206F_206B_202B_206D_202E() - { - return new DialogueChoice(); - } - - static void _202B_206E_200F_202A_206A_200C_202C_200D_200D_202A_206B_202C_200D_200C_202E_206D_206D_202D_202A_202B_206D_200E_202A_202E_200D_200B_200D_200C_202A_200E_200B_202A_200C_206D_200F_202D_206C_206C_206C_202C_202E(DialogueChoice P_0, EDialogChoiceType P_1) - { - P_0.Type = P_1; - } - - static string _206E_202E_206E_200D_206D_202B_202D_202D_206A_206E_206F_200E_202D_206D_200B_206D_202D_202A_202C_200F_200F_202B_202E_202D_202A_202C_202E_202A_206E_206E_200F_206D_206F_202A_202C_200B_202E_200D_200E_206B_202E(PurchaseMenu P_0) - { - return P_0.ExcelSheet; - } - - static void _202E_206A_200D_200B_206F_206C_202A_206B_202D_200C_202A_202D_202D_206D_200B_206F_202B_202B_202E_200D_202B_202C_202A_206B_206C_206D_200D_206E_200B_206C_206D_202C_202A_206A_206E_206A_200D_200E_206D_202E_202E(DialogueChoice P_0, string P_1) - { - P_0.ExcelSheet = P_1; - } - - static void _202A_202A_202B_206A_200F_202D_202D_206E_202D_200B_206A_206A_206D_206B_202E_206B_202A_202B_206E_206C_200D_202A_206B_206F_202D_202C_200B_200B_206E_206E_202D_200C_206E_206C_202C_202B_200B_206C_200E_200F_202E(DialogueChoice P_0, ExcelRef P_1) - { - P_0.Prompt = P_1; - } - - static ExcelRef _206B_200F_206D_202E_202E_206C_206A_202E_206D_200D_206F_200C_200F_200D_206B_206C_200F_200C_206E_206F_206E_202B_200C_200D_200B_206A_206F_206D_206B_200E_202C_202E_202D_206C_206E_202A_200B_202C_202A_200F_202E(PurchaseMenu P_0) - { - return P_0.Key; - } - - static void _202A_200F_200B_202B_202A_200E_206D_200C_200C_202B_200D_200E_202E_202C_202E_202C_200E_202E_202D_206D_202B_206F_206F_206B_206C_206A_206A_200B_206C_202E_202C_202A_200B_200C_200F_200B_200B_206A_206C_200D_202E(DialogueChoice P_0, ExcelRef P_1) - { - P_0.Answer = P_1; - } - - static EAetheryteLocation? _202C_200E_206D_206E_202B_206A_202E_202B_202E_200E_202E_206A_206C_200B_202B_206A_202C_206F_202D_200E_200D_200C_206B_202B_200F_206E_200E_206F_202C_202B_206E_206D_206E_206D_206F_202B_202D_206A_202D_202A_202E(QuestStep P_0) - { - return P_0.Aetheryte; - } - - static ExcelRef _202B_202C_206D_200C_200B_202E_202E_200B_202C_200B_202B_200C_206E_206A_200B_200F_206A_202C_200E_200B_200B_202D_206C_202C_200D_200C_206A_200D_202A_202C_202D_206B_202D_202B_202E_202A_206F_200F_202E_202D_202E(string P_0) - { - return ExcelRef.FromKey(P_0); - } - - static void _202B_206A_200C_202C_206F_206A_202D_202B_206B_202A_206B_200E_206D_202C_202B_202B_202D_202A_202C_202A_206D_202E_200E_206B_206A_202E_206C_200B_206F_200B_200F_202E_206C_202E_202C_202D_206B_202D_202B_206A_202E(DialogueChoice P_0, bool P_1) - { - P_0.PromptIsRegularExpression = P_1; - } - - static void _200D_202B_200F_206B_200D_206B_200B_200F_202B_206B_202B_202A_202B_200F_200F_200D_200C_206A_206B_202D_206D_206A_206D_206B_202C_200E_200E_206F_206A_202B_206D_202B_202A_206C_202E_202E_202A_200F_206C_206D_202E(DialogueChoice P_0, bool P_1) - { - P_0.AnswerIsRegularExpression = P_1; - } - - static ExcelRef _206D_206F_206D_206E_206B_206A_206C_206D_206C_202D_200D_202E_202C_206C_200F_200C_202B_200F_206E_202C_206F_200B_206C_206E_202C_202C_206E_202B_206E_206F_200C_200B_206E_202B_200C_200B_206B_202C_200E_206B_202E(string P_0) - { - return ExcelRef.FromSheetValue(P_0); - } - - static IGameObject _206E_206B_206B_200F_206F_200C_206E_206C_202A_202E_202A_206D_206A_206B_206F_206A_200D_200B_202E_202C_206F_200D_206E_206D_200E_206D_206B_202E_202E_202E_202C_202E_200B_200E_200E_200E_200C_202C_200E_200C_202E(ITargetManager P_0) - { - return P_0.Target; - } - - static uint _206B_202D_202B_206A_200C_202C_206B_206C_206E_200E_202C_202A_202D_206E_206C_200D_202A_206F_200E_206B_206B_206A_202B_202C_202C_200B_200C_202B_202B_200D_200C_202E_206D_206F_202B_200B_200B_200F_202C_206C_202E(IGameObject P_0) - { - return P_0.BaseId; - } - - static bool _206C_206B_202B_206D_200F_202A_200B_202C_206B_206D_202B_202C_206A_206E_202C_206A_206B_202C_206E_206C_202D_206C_200E_202A_200B_200B_200C_200E_202D_206D_200B_202E_206C_202E_200B_200B_200D_206D_200E_202C_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202B_206A_200F_206A_206C_202C_206D_202D_200E_202C_200F_202A_202A_206B_200D_206B_206E_202D_202B_200C_202E_200B_200D_206C_200B_206E_206D_206B_202C_200D_200C_206F_202B_200D_200F_206E_206E_200E_202E_202D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static List<DialogueChoice> _202C_200F_202B_202C_200F_202E_206A_200E_200D_206E_206C_202A_202C_202B_206D_202C_200D_206F_200B_202E_202B_202E_200F_202C_200F_200E_200E_202B_206A_206A_202A_202D_200D_200F_200E_206A_200B_202B_206D_202A_202E(FateDefinition P_0) - { - return P_0.TransformDialogueChoices; - } - - static List<DialogueChoice> _200F_200D_206C_200E_206F_202B_200D_206E_200B_206D_202D_206A_206D_200C_202D_206F_206D_206E_206D_206F_206D_202C_200E_200E_200F_200B_200D_206F_200E_200C_206D_206F_206D_206D_200E_206A_206A_206D_200E_206D_202E(SeasonalDutyDefinition P_0) - { - return P_0.DialogueChoices; - } - - static EDialogChoiceType _202B_202C_206E_206A_202D_200E_202C_202B_200F_202E_202B_200B_202B_200E_206E_200B_206C_206F_206A_206B_206E_202E_206C_200D_202E_202B_206F_206A_206F_200E_202C_206A_206F_202B_206C_206C_202C_206D_202D_202C_202E(DialogueChoice P_0) - { - return P_0.Type; - } - - static string _206A_200B_206D_206D_206B_200F_206E_202D_206D_202B_202B_206A_206C_200E_206A_206E_206F_202A_206A_200C_206E_202A_200C_202C_206C_200C_202B_202D_200D_202C_200F_200B_202C_206D_202A_200B_200F_200D_200F_206E_202E(DialogueChoice P_0) - { - return P_0.SpecialCondition; - } - - static bool _202B_200C_200D_200F_202A_206A_206C_206A_202D_206F_200B_200F_200D_206E_202D_200D_202D_200D_206C_200E_206A_202B_202B_206E_206D_206B_206D_202A_202A_200D_202B_202C_200F_202E_206A_200F_202A_206D_206A_206C_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static void _206C_202C_200D_200B_200B_200B_202B_206B_202B_206B_200F_202E_202B_202C_206F_200E_202B_202B_200B_206B_202A_206D_202B_206A_200B_206C_206C_202A_206C_200F_202E_202E_206E_200F_202E_200D_200D_200E_200F_200F_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - - static ExcelRef _200B_206B_202B_200F_200F_200E_206B_202D_206F_206A_200B_200C_200F_206C_200F_202E_200E_202E_206A_202C_206B_206E_202B_200E_200B_202B_202B_200C_206D_206A_206E_202E_200E_202E_202E_206F_200E_202B_206A_206E_202E(DialogueChoice P_0) - { - return P_0.Answer; - } - - static uint? _206D_206A_206E_200B_200D_202E_200D_206E_206F_200E_202A_202A_200E_206D_202D_206D_206D_202B_206C_206F_202A_206F_206E_202B_206B_202A_200C_202C_200C_202E_202B_200F_206A_200B_206F_200F_202E_206A_202A_206C_202E(DialogueChoice P_0) - { - return P_0.DataId; - } - - static string _206F_202C_206F_200C_200C_200D_202A_200F_206B_206B_206C_206C_200E_200F_202A_202D_200C_202C_200C_200B_202C_206E_200F_202B_200D_206C_206A_206F_206C_202C_206E_200F_200F_202E_206F_202E_200B_206B_206B_200E_202E(DialogueChoice P_0) - { - return P_0.ExcelSheet; - } - - static ExcelRef _206F_202D_200F_200B_200E_206D_200E_206A_206E_200F_202C_200D_206E_202D_200E_206C_202D_200C_202A_200D_200B_200F_200E_202B_200F_202A_206A_206E_200F_206D_206B_202E_202D_202B_200D_206F_200C_200D_206E_200E_202E(DialogueChoice P_0) - { - return P_0.Prompt; - } - - static bool _206C_202A_202C_202B_206A_200B_200B_206A_206B_206E_206C_202A_200E_200E_206C_206F_206C_206E_202B_200B_206F_202B_206E_202A_206A_206A_206E_206F_206C_206A_200C_206C_202C_202D_200E_206E_202D_200C_200E_206B_202E(DialogueChoice P_0) - { - return P_0.PromptIsRegularExpression; - } - - static bool _202A_206A_206B_200F_206F_200C_200E_202E_206C_202E_200C_200C_200B_200E_206F_200E_200E_202C_206A_202A_202D_200F_202D_202E_200D_206B_206F_200E_206A_206F_202D_200E_206E_206B_202E_200D_206B_202C_200E_200C_202E(DialogueChoice P_0) - { - return P_0.AnswerIsRegularExpression; - } - - static void _206D_200D_200E_202C_200F_200E_202E_206B_206A_202C_206E_202E_202D_206D_206E_206E_200D_200B_200B_206C_206E_200D_200D_206F_200D_202C_202B_200D_202C_200D_200E_206A_200F_202D_202B_202C_206C_200F_200D_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogTrace(P_1, P_2); - } - - static void _206D_202E_202E_200D_202C_206A_202B_200F_202D_206F_200C_206A_206C_202A_200D_200D_202A_206D_202D_206B_202D_206F_200C_200B_206B_200F_206A_206E_202D_206B_200C_206C_200E_206A_200D_206C_200E_206F_206B_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static ExcelRef.EType _202D_202D_206D_206C_206D_206B_206A_206F_206B_200F_206D_200E_206D_206D_206D_200C_200C_200D_202E_202A_206D_202B_202E_202D_206B_200F_202D_202D_202E_206C_202E_202D_202C_202E_200E_200F_206A_202A_206C_206D_202E(ExcelRef P_0) - { - return P_0.Type; - } - - static string _202C_200C_200B_202A_202A_202D_202C_202E_200F_206F_206A_200B_202A_202D_206A_202D_206D_202C_202B_200F_200F_200F_200C_206A_206C_200C_206B_206B_200E_202D_206F_200C_202E_206B_206F_200F_200B_206E_206C_206E_202E(ExcelRef P_0) - { - return P_0.AsRawString(); - } - - static bool _206D_200E_200D_202D_202D_200C_200F_206B_206B_206E_202A_206A_206F_202E_202C_200F_202B_202B_206C_206D_202E_200B_206F_206A_200C_206A_200F_206D_202A_206A_200D_200F_200D_206A_200D_206A_202C_202C_200F_202C_202E(string P_0, string P_1, StringComparison P_2) - { - return string.Equals(P_0, P_1, P_2); - } - - static bool _202A_200B_206D_200E_206A_206A_200B_200C_206D_202D_206E_200D_200E_202E_206F_206F_206E_200E_206B_206B_200D_206C_200B_206F_206A_200D_202C_200C_200D_200F_206A_200E_202B_202B_206C_202D_202E_206F_206D_206C_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static bool _202D_200E_200B_206E_206D_200D_206F_200E_202E_200F_202E_206F_206E_202E_202D_202D_206A_206D_206A_206C_202E_200F_206A_202D_206E_202D_206F_206B_206A_206B_200B_206E_202A_200E_200E_202C_202B_200C_200B_200D_202E(Regex P_0, string P_1) - { - return P_0.IsMatch(P_1); - } - - static void _202B_202A_206C_206F_206E_202C_202B_206E_200F_206B_200E_202B_202E_206B_200B_206F_206E_202E_202A_200F_206E_202E_200C_206E_206C_200D_202C_200B_202C_200E_206E_206C_206B_200B_202E_202B_206C_202C_202A_202B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static bool _200B_200E_202B_200C_206D_202E_202C_200B_206E_206D_202B_206E_202B_206F_206A_202E_200B_202C_202E_206B_200F_200B_200D_206F_202E_200C_200F_200B_202C_202C_202A_206D_200F_206C_206C_200B_200D_202C_202C_202E(DialogueChoice P_0) - { - return P_0.Yes; - } - - static ExcelRef _206D_202E_206F_202B_206B_200F_206B_206A_200F_200C_200E_200C_206F_206C_200E_202B_200F_200E_202D_202A_206B_200D_200B_206B_202B_206C_202B_200E_202A_206A_202D_202A_206E_206B_200F_200E_200F_200C_206E_206A_202E(uint P_0) - { - return ExcelRef.FromRowId(P_0); - } - - static void _202A_200E_200E_206B_202B_200F_206E_206E_202B_200E_206F_200D_206D_202D_206A_206D_202C_202B_202C_202D_202E_202B_200C_202B_202E_206B_202D_202E_200C_202B_206F_202A_200D_200E_206A_206B_200E_202E_200F_202C_202E(DialogueChoice P_0, bool P_1) - { - P_0.Yes = P_1; - } - - static SinglePlayerDutyOptions _202A_200F_200B_206A_206B_206E_202B_206C_200B_206A_200B_206F_202A_200D_202C_206F_202C_206F_206F_206D_206E_202E_202A_200F_206D_206A_202B_200D_200E_202C_206D_206D_200E_206B_200F_206B_206D_206E_202E_206F_202E(QuestStep P_0) - { - return P_0.SinglePlayerDutyOptions; - } - - static long _206F_200E_200E_202D_206E_206A_202B_200E_206F_202A_202C_202D_200F_200F_206D_206A_200B_206B_202C_202E_200C_202B_200E_200C_202E_202C_200B_200B_202D_206B_206E_206D_206C_202D_200D_200C_202A_206B_202B_206F_202E() - { - return Environment.TickCount64; - } - - static QuestStep _206D_200E_206F_202C_202B_206B_206B_200E_206F_200F_202D_206B_202D_206D_200E_206A_202D_202A_200C_200E_200E_206A_206C_202D_206C_206F_202B_206A_206B_206E_206F_200C_202D_200F_206A_200B_206D_202B_202B_200C_202E(QuestSequence P_0, int P_1) - { - return P_0.FindStep(P_1); - } - - static ushort _206E_200D_206B_202C_202B_202E_206C_200C_202D_206F_206F_206C_200B_206E_202D_200E_206F_202C_206B_202E_206F_206B_200F_202A_202D_200B_206A_202B_202B_206B_202D_202C_206A_206A_206E_200D_200E_202B_206A_202B_202E(QuestStep P_0) - { - return P_0.TerritoryId; - } - - static ushort? _200D_202A_200E_206B_200B_206B_206D_202E_202B_206C_206D_202C_206E_200C_206D_202B_206D_206B_206B_202E_206D_200C_206E_200D_202C_206E_206B_206B_206E_200B_202D_202A_206D_206A_206D_206E_206C_200E_202D_202B_202E(QuestStep P_0) - { - return P_0.TargetTerritoryId; - } - - static IGameObject _206C_206D_200D_200F_202C_202D_200D_206A_200E_200F_206C_206A_206F_202A_206A_206C_200B_202B_206B_206A_200B_200F_202A_206D_202B_206F_206F_202C_202E_206E_206D_202C_206A_206E_200C_206B_206A_206E_202D_200D_202E(IObjectTable P_0, int P_1) - { - return P_0[P_1]; - } - - static List<GatheredItem> _200C_206F_206A_206E_200B_206A_200C_202D_206A_206F_206D_200E_202B_206E_206C_206E_202B_200C_202A_202E_200B_200F_200E_202A_206D_202A_200F_206A_206F_206E_206C_202C_206D_206E_200B_200C_202A_206E_206E_206B_202E(QuestStep P_0) - { - return P_0.ItemsToGather; - } - - static uint _202C_206A_200E_206D_206F_200E_202B_200B_202E_206D_200C_206B_202C_200C_206D_200D_206E_200D_202E_206E_200D_200B_206F_206E_206F_200F_206C_206E_206B_206E_200B_202B_202E_200C_202A_200E_200D_206F_200D_202E(GatheredItem P_0) - { - return P_0.ItemId; - } - - static RowRef<ClassJob> _202A_206F_206C_200B_206F_200B_206E_206D_206F_202D_206D_202E_202A_200D_206B_206B_202E_206F_206B_200F_206D_202C_206B_206B_202D_206B_206A_202A_202B_202B_200D_202C_206E_206F_202B_206C_206F_206D_200E_206B_202E(ICharacter P_0) - { - return P_0.ClassJob; - } - - static List<QuestStep> _200F_202D_202C_202A_200D_200D_200B_200F_200E_206D_202B_206B_202C_202E_206E_202D_202D_206D_200C_206C_202B_200E_206C_206E_202B_202C_200B_206A_202C_206A_200C_206F_202E_206C_202E_202C_206A_206E_202B_200C_202E(GatheringRoot P_0) - { - return P_0.Steps; - } - - static string _200F_200F_206A_202B_200F_200E_200C_200F_202C_206A_206F_202C_200C_206C_200C_202D_202E_200B_200B_206F_206A_206D_200E_206D_202E_202B_200C_206A_200D_206C_202D_206D_206A_202B_202B_202A_200E_206E_206C_206C_202E(ReadOnlySeString P_0) - { - return P_0.WithCertainMacroCodeReplacements(); - } - - static List<uint> _202C_200F_206B_206F_202D_206D_200F_202B_202A_206F_202C_202D_202E_206A_202B_202D_200B_206B_206A_200C_200D_206E_200C_200E_206F_206D_206B_200F_206A_202A_206B_200F_202A_206C_200C_206D_202E_202E_202C_200F_202E(QuestStep P_0) - { - return P_0.PointMenuChoices; - } - - static string _202E_202E_200B_206B_206C_202A_206F_206B_200C_206B_200F_206E_202E_206B_202E_206B_202A_206B_202B_202C_200D_202A_200E_202A_206D_200D_206F_202A_202A_206F_202A_200B_200E_200B_202E_200B_200E_206D_206B_206D_202E(ExcelRef P_0) - { - return P_0.AsKey(); - } - - static uint _202D_200E_200C_202B_206A_200F_206F_202B_206D_206B_202B_206C_200D_202A_200E_200F_200B_202A_206D_206D_202D_202A_206A_206B_206A_206B_200B_202D_206F_206E_206A_200C_200D_206D_200E_200B_202A_206B_206B_202E(ExcelRef P_0) - { - return P_0.AsRowId(); - } - - static void _206F_202A_200C_200E_202E_200D_202E_200C_206F_202A_202C_206F_202E_206A_202E_200B_206E_206F_200E_200D_202D_200F_206E_202A_202C_200F_206A_202E_202A_202A_202A_200E_202B_202A_206C_202B_206A_206D_202A_206B_202E(IAddonLifecycle P_0, AddonEvent P_1, string P_2, IAddonLifecycle.AddonEventDelegate P_3) - { - P_0.UnregisterListener(P_1, P_2, P_3); - } } diff --git a/Questionable/Questionable.Controller.GameUi/QteController.cs b/Questionable/Questionable.Controller.GameUi/QteController.cs index d5f4318..a23ad6a 100644 --- a/Questionable/Questionable.Controller.GameUi/QteController.cs +++ b/Questionable/Questionable.Controller.GameUi/QteController.cs @@ -1,6 +1,4 @@ using System; -using System.Runtime.CompilerServices; -using Dalamud.Game.Config; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Component.GUI; using FFXIVClientStructs.Interop; @@ -25,7 +23,7 @@ internal sealed class QteController : IDisposable private Throttle _throttle; - private readonly Random _random = _206A_206D_200B_206B_202B_206B_206F_202C_200B_200C_202A_206B_206B_200F_206C_202E_206A_202D_202D_200E_206F_200B_206A_200B_206F_206F_202C_200D_200B_200C_202C_202E_202A_202E_202C_206D_206A_202C_200B_206B_202E(); + private readonly Random _random = new Random(); private bool _hasDirectChat; @@ -38,243 +36,81 @@ internal sealed class QteController : IDisposable _gameConfig = gameConfig; _framework = framework; _logger = logger; - _200C_206B_202C_202D_206D_202C_200B_202B_206E_206C_200E_206C_200D_206C_200B_206C_206C_200F_202D_202B_200B_206B_206C_200E_206C_200E_200E_206F_206A_206A_202B_206F_202E_206A_200D_206B_202E_200D_200E_202E_202E(_framework, (IFramework.OnUpdateDelegate)OnUpdate); + _framework.Update += OnUpdate; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void OnUpdate(IFramework framework) { - int num = (_configuration.General.AutoSolveQte ? (-1685552556) : (-1685552558)); - AtkUnitBase* addonPtr = default(AtkUnitBase*); - while (true) + AtkUnitBase* addonPtr; + if (!_configuration.General.AutoSolveQte) { - int num2 = num; - int num3 = -1685552557; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + EnableDirectChatIfNeeded(); + } + else if (_gameGui.TryGetAddonByName<AtkUnitBase>("QTE", out addonPtr) && LAddon.IsAddonReady(addonPtr) && addonPtr->IsVisible) + { + DisableDirectChatIfNeeded(); + if (_throttle.TryReset((double)_random.Next(25, 50) / 1000.0)) { - case 3: - _206B_202D_206C_206F_200D_200E_202D_202A_206B_206E_200E_200B_202C_206F_202C_206A_206D_200C_202E_206D_206C_200C_202B_206F_206B_206E_200B_206A_200C_200F_200C_200F_200D_206A_202B_202A_206F_200B_202D_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(495416041), Array.Empty<object>()); - WindowsKeypress.SendKeypress(WindowsKeypress.LimitedKeys.Escape); - num = -1685552559; - break; - case 5: - EnableDirectChatIfNeeded(); - num = -1685552550; - break; - case 1: - EnableDirectChatIfNeeded(); - return; - case 0: - num = ((!_206D_206D_200E_200E_206C_206A_202C_206D_200D_200D_206A_202B_202D_200E_206C_200E_206D_202B_206B_202C_206D_200D_206D_206F_200D_206F_200B_206C_202B_200F_200C_200F_206B_202D_206C_206E_206E_202C_200F_202C_202E(addonPtr)) ? (-1685552554) : (-1685552549)); - break; - case 9: - return; - case 4: - DisableDirectChatIfNeeded(); - num = ((!_throttle.TryReset((double)_206C_206E_200E_200C_202C_206C_202B_206C_202E_206E_206A_200B_206D_202B_202C_206B_202C_206C_200B_202B_206D_206D_206B_200B_206F_206F_202C_202D_206D_206C_206E_200C_200D_202C_202A_202D_206C_202C_200E_206F_202E(_random, 25, 50) / 1000.0)) ? (-1685552550) : (-1685552551)); - break; - case 10: - num = ((!IsChatLogFocused()) ? (-1685552559) : (-1685552560)); - break; - case 6: - num = -1685552558; - break; - case 7: - num = ((!_gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1397653892), out addonPtr)) ? (-1685552554) : (-1685552557)); - break; - case 2: + if (IsChatLogFocused()) + { + _logger.LogDebug("Chat is focused during QTE, sending Escape"); + WindowsKeypress.SendKeypress(WindowsKeypress.LimitedKeys.Escape); + } WindowsKeypress.SendKeypress(WindowsKeypress.LimitedKeys.A); - return; - case 8: - num = ((!addonPtr->IsVisible) ? (-1685552554) : (-1685552553)); - break; } } + else + { + EnableDirectChatIfNeeded(); + } } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe bool IsChatLogFocused() { AtkStage* ptr = AtkStage.Instance(); - int num = ((ptr != null) ? (-1746454886) : (-1746454891)); - int num5 = default(int); - Span<Pointer<AtkUnitBase>> entries = default(Span<Pointer<AtkUnitBase>>); - Pointer<AtkUnitBase> pointer = default(Pointer<AtkUnitBase>); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1746454883; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return false; + } + Span<Pointer<AtkUnitBase>> entries = ptr->RaptureAtkUnitManager->AtkUnitManager.FocusedUnitsList.Entries; + for (int i = 0; i < entries.Length; i++) + { + Pointer<AtkUnitBase> pointer = entries[i]; + if (pointer.Value != null && pointer.Value->NameString == "ChatLog") { - case 5: - num = ((num5 < entries.Length) ? (-1746454887) : (-1746454885)); - break; - case 8: - return false; - case 0: - num = -1746454891; - break; - case 6: - return false; - case 3: return true; - case 2: - { - int num6 = num5; - num3 = 1; - num4 = num6; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - num5 = num7 + (num8 + num8); - num = -1746454888; - break; - } - case 4: - pointer = entries[num5]; - num = ((pointer.Value == null) ? (-1746454881) : (-1746454884)); - break; - case 7: - entries = ptr->RaptureAtkUnitManager->AtkUnitManager.FocusedUnitsList.Entries; - num5 = 0; - num = -1746454888; - break; - case 1: - num = ((!_206D_200D_200D_206A_202C_200D_202A_206F_202C_206A_200D_200B_200E_202E_200E_200E_202D_200D_200F_202C_202A_200D_206B_206C_200F_202E_200C_206D_200B_200F_200F_206A_200D_202D_200C_206C_202E_206B_202C_202E_202E(pointer.Value->NameString, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-101701378))) ? (-1746454881) : (-1746454882)); - break; } } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private void EnableDirectChatIfNeeded() { - int num = ((!_hasDirectChat) ? 514735225 : 514735226); - while (true) + if (_hasDirectChat) { - int num2 = num; - int num3 = 514735224; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return; - case 2: - _202A_206D_202C_202A_200F_206B_200F_206D_200E_206E_200B_206F_202C_206B_206B_202A_206E_206F_202E_202E_200F_206F_206A_206E_200D_206C_206A_200C_206B_200D_200D_200E_206A_202C_200E_200C_202D_206D_202C_206E_202E(_200E_202C_206D_206C_200C_206E_200F_200F_200B_206E_200D_200D_206D_206C_206A_200C_206C_202E_202C_206C_206D_202E_202E_200C_206F_200E_206E_202B_200D_200D_200F_206B_200F_202C_200C_202B_206C_200D_202E(_gameConfig), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(12163311), _directChatWasEnabled); - _hasDirectChat = false; - _206B_202D_206C_206F_200D_200E_202D_202A_206B_206E_200E_200B_202C_206F_202C_206A_206D_200C_202E_206D_206C_200C_202B_206F_206B_206E_200B_206A_200C_200F_200C_200F_200D_206A_202B_202A_206F_200B_202D_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1824458648), new object[1] { _directChatWasEnabled }); - num = 514735225; - break; - case 0: - num = 514735226; - break; - } + _gameConfig.UiControl.Set("DirectChat", _directChatWasEnabled); + _hasDirectChat = false; + _logger.LogDebug("Restored DirectChat to {Value}", _directChatWasEnabled); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DisableDirectChatIfNeeded() { - int num = (_hasDirectChat ? 343908918 : 343908917); - bool flag = default(bool); - while (true) + if (!_hasDirectChat && _gameConfig.UiControl.TryGetBool("DirectChat", out var value)) { - int num2 = num; - int num3 = 343908918; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + _directChatWasEnabled = value; + if (value) { - case 0: - return; - case 3: - num = ((!_206B_206E_200C_206C_202A_202E_206A_206F_206D_206D_200E_200C_206D_200F_202E_202E_206F_206F_202D_202A_202A_206B_202E_200C_206A_206C_200E_200C_202A_200F_200C_206B_202A_200B_200E_206C_206D_202A_206B_200D_202E(_200E_202C_206D_206C_200C_206E_200F_200F_200B_206E_200D_200D_206D_206C_206A_200C_206C_202E_202C_206C_206D_202E_202E_200C_206F_200E_206E_202B_200D_200D_200F_206B_200F_202C_200C_202B_206C_200D_202E(_gameConfig), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1876854388), ref flag)) ? 343908918 : 343908916); - break; - case 5: - _hasDirectChat = true; - num = 343908918; - break; - case 1: - _202A_206D_202C_202A_200F_206B_200F_206D_200E_206E_200B_206F_202C_206B_206B_202A_206E_206F_202E_202E_200F_206F_206A_206E_200D_206C_206A_200C_206B_200D_200D_200E_206A_202C_200E_200C_202D_206D_202C_206E_202E(_200E_202C_206D_206C_200C_206E_200F_200F_200B_206E_200D_200D_206D_206C_206A_200C_206C_202E_202C_206C_206D_202E_202E_200C_206F_200E_206E_202B_200D_200D_200F_206B_200F_202C_200C_202B_206C_200D_202E(_gameConfig), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1876854388), false); - _206B_202D_206C_206F_200D_200E_202D_202A_206B_206E_200E_200B_202C_206F_202C_206A_206D_200C_202E_206D_206C_200C_202B_206F_206B_206E_200B_206A_200C_200F_200C_200F_200D_206A_202B_202A_206F_200B_202D_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1363621454), Array.Empty<object>()); - num = 343908915; - break; - case 4: - num = 343908917; - break; - case 2: - _directChatWasEnabled = flag; - num = ((!flag) ? 343908915 : 343908919); - break; + _gameConfig.UiControl.Set("DirectChat", value: false); + _logger.LogDebug("Temporarily disabled DirectChat for QTE handling"); } + _hasDirectChat = true; } } public void Dispose() { - _200D_200C_206B_206C_200F_200B_202B_202C_202E_200C_200E_202B_200E_200E_206A_200C_202A_202A_202D_206A_202C_202A_206D_202A_206F_206F_202B_206E_206B_200E_206E_202E_200B_200F_200B_202E_200E_202C_200F_206E_202E(_framework, (IFramework.OnUpdateDelegate)OnUpdate); + _framework.Update -= OnUpdate; EnableDirectChatIfNeeded(); } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static Random _206A_206D_200B_206B_202B_206B_206F_202C_200B_200C_202A_206B_206B_200F_206C_202E_206A_202D_202D_200E_206F_200B_206A_200B_206F_206F_202C_200D_200B_200C_202C_202E_202A_202E_202C_206D_206A_202C_200B_206B_202E() - { - return new Random(); - } - - static void _200C_206B_202C_202D_206D_202C_200B_202B_206E_206C_200E_206C_200D_206C_200B_206C_206C_200F_202D_202B_200B_206B_206C_200E_206C_200E_200E_206F_206A_206A_202B_206F_202E_206A_200D_206B_202E_200D_200E_202E_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update += P_1; - } - - unsafe static bool _206D_206D_200E_200E_206C_206A_202C_206D_200D_200D_206A_202B_202D_200E_206C_200E_206D_202B_206B_202C_206D_200D_206D_206F_200D_206F_200B_206C_202B_200F_200C_200F_206B_202D_206C_206E_206E_202C_200F_202C_202E(AtkUnitBase* P_0) - { - return LAddon.IsAddonReady(P_0); - } - - static int _206C_206E_200E_200C_202C_206C_202B_206C_202E_206E_206A_200B_206D_202B_202C_206B_202C_206C_200B_202B_206D_206D_206B_200B_206F_206F_202C_202D_206D_206C_206E_200C_200D_202C_202A_202D_206C_202C_200E_206F_202E(Random P_0, int P_1, int P_2) - { - return P_0.Next(P_1, P_2); - } - - static void _206B_202D_206C_206F_200D_200E_202D_202A_206B_206E_200E_200B_202C_206F_202C_206A_206D_200C_202E_206D_206C_200C_202B_206F_206B_206E_200B_206A_200C_200F_200C_200F_200D_206A_202B_202A_206F_200B_202D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _206D_200D_200D_206A_202C_200D_202A_206F_202C_206A_200D_200B_200E_202E_200E_200E_202D_200D_200F_202C_202A_200D_206B_206C_200F_202E_200C_206D_200B_200F_200F_206A_200D_202D_200C_206C_202E_206B_202C_202E_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static GameConfigSection _200E_202C_206D_206C_200C_206E_200F_200F_200B_206E_200D_200D_206D_206C_206A_200C_206C_202E_202C_206C_206D_202E_202E_200C_206F_200E_206E_202B_200D_200D_200F_206B_200F_202C_200C_202B_206C_200D_202E(IGameConfig P_0) - { - return P_0.UiControl; - } - - static void _202A_206D_202C_202A_200F_206B_200F_206D_200E_206E_200B_206F_202C_206B_206B_202A_206E_206F_202E_202E_200F_206F_206A_206E_200D_206C_206A_200C_206B_200D_200D_200E_206A_202C_200E_200C_202D_206D_202C_206E_202E(GameConfigSection P_0, string P_1, bool P_2) - { - P_0.Set(P_1, P_2); - } - - static bool _206B_206E_200C_206C_202A_202E_206A_206F_206D_206D_200E_200C_206D_200F_202E_202E_206F_206F_202D_202A_202A_206B_202E_200C_206A_206C_200E_200C_202A_200F_200C_206B_202A_200B_200E_206C_206D_202A_206B_200D_202E(GameConfigSection P_0, string P_1, ref bool P_2) - { - return P_0.TryGetBool(P_1, out P_2); - } - - static void _200D_200C_206B_206C_200F_200B_202B_202C_202E_200C_200E_202B_200E_200E_206A_200C_202A_202A_202D_206A_202C_202A_206D_202A_206F_206F_202B_206E_206B_200E_206E_202E_200B_200F_200B_202E_200E_202C_200F_206E_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update -= P_1; - } } diff --git a/Questionable/Questionable.Controller.GameUi/ShopController.cs b/Questionable/Questionable.Controller.GameUi/ShopController.cs index eefebfb..dbc1dd8 100644 --- a/Questionable/Questionable.Controller.GameUi/ShopController.cs +++ b/Questionable/Questionable.Controller.GameUi/ShopController.cs @@ -1,8 +1,6 @@ using System; -using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Component.GUI; using LLib.GameUI; @@ -15,93 +13,6 @@ namespace Questionable.Controller.GameUi; internal sealed class ShopController : IDisposable, IShopWindow { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass28_0 - { - public unsafe AtkValue* atkValues; - - public QuestStep currentStep; - - internal unsafe ItemForSale _003CUpdateShopStock_003Eb__0(int i) - { - ItemForSale itemForSale = _206D_206A_200F_206C_206E_200F_200E_202E_200B_200B_206F_206C_202D_206B_200E_200C_202E_202B_202A_206B_206A_206A_206F_206D_206A_200D_200C_202D_206F_200F_202D_206D_206C_200E_202D_200E_206F_206B_200E_202E_202E(); - _200D_202B_206C_206B_200D_202B_200F_206B_200E_206A_206E_200E_202D_200B_206E_206B_202A_200C_206A_206A_206D_202A_202B_206E_200F_206E_202C_202D_202A_200C_202C_202C_206E_206B_200E_202A_202B_206D_200B_206F_202E(itemForSale, i); - AtkValue* num = atkValues; - int num2 = i; - int num3 = 14; - _206F_202E_206F_202E_206A_202C_202C_202B_202E_202C_202D_200D_200B_202B_206B_206F_202D_200E_202D_206F_206A_200E_206A_202D_206E_206D_206E_206A_202A_202D_200F_200C_202D_202C_200D_206C_200C_206D_202A_202E(itemForSale, _200E_200C_202C_200E_200F_202E_202D_200C_200D_200C_200C_202B_200B_202C_200D_206B_206E_202D_200C_206E_200F_202D_206E_200B_202B_206F_200C_200B_200D_206F_202B_206B_202B_206F_200F_200C_206F_200E_206E_202C_202E(num[(num3 | num2) + (num3 & num2)])); - AtkValue* num4 = atkValues; - num2 = i; - num3 = 75; - _206A_200B_206E_206D_202D_206B_206A_206C_202E_202B_200C_206B_206B_206B_202E_200D_200E_202C_206B_206B_202D_202E_202E_206E_206A_206B_200F_200E_206D_200F_206C_202C_202D_200B_206D_206B_206D_202C_202A_206D_202E(itemForSale, num4[(num3 | num2) + (num3 & num2)].UInt); - _202C_206E_206F_202E_200B_206C_202C_200C_206A_206F_200E_202A_200B_200B_206A_206C_206C_202A_202C_202C_200C_200B_202C_206F_206D_202B_206A_202E_202C_206A_206A_200D_200C_200F_202A_202E_202D_200B_202C_206A_202E(itemForSale, 1u); - AtkValue* num5 = atkValues; - num2 = i; - num3 = 136; - _202D_200D_200E_206A_200F_200F_200D_206E_200C_206C_202E_206D_206F_200C_206A_200B_200F_200B_206D_202D_200F_200E_202E_206B_200C_200F_200C_200F_200D_200B_200D_200E_200C_200F_200D_206F_202D_206C_206B_206B_202E(itemForSale, num5[(num3 | num2) + (num3 & num2)].UInt); - AtkValue* num6 = atkValues; - num2 = i; - num3 = 441; - _200F_202C_202E_202D_206C_206A_200B_200C_200B_202E_202A_200B_202E_200D_202B_202E_200C_202D_206B_202C_202A_206F_206C_202A_200F_200C_202B_206D_202B_200D_206C_202A_200D_206D_200D_206F_202B_206D_200B_202C_202E(itemForSale, num6[(num3 | num2) + (num3 & num2)].UInt); - return itemForSale; - } - - internal bool _003CUpdateShopStock_003Eb__1(ItemForSale x) - { - return _206D_202C_206C_200B_200D_206D_206F_206C_206A_200D_206A_206E_200B_206F_200B_202E_206F_202C_206C_202C_206E_202A_206D_202D_200C_200D_206A_200F_202D_202C_202A_200F_206D_200F_206A_200D_200F_202D_202E_200D_202E(x) == _202D_202B_202E_206A_200F_202C_202A_206F_206E_206B_206D_206E_200C_200F_206A_202D_202B_200F_202B_200F_200B_206C_206E_202B_206F_206E_200E_200B_202B_200D_202C_202A_206E_202D_200D_200B_202C_206D_202D_206A_202E(currentStep); - } - - static ItemForSale _206D_206A_200F_206C_206E_200F_200E_202E_200B_200B_206F_206C_202D_206B_200E_200C_202E_202B_202A_206B_206A_206A_206F_206D_206A_200D_200C_202D_206F_200F_202D_206D_206C_200E_202D_200E_206F_206B_200E_202E_202E() - { - return new ItemForSale(); - } - - static void _200D_202B_206C_206B_200D_202B_200F_206B_200E_206A_206E_200E_202D_200B_206E_206B_202A_200C_206A_206A_206D_202A_202B_206E_200F_206E_202C_202D_202A_200C_202C_202C_206E_206B_200E_202A_202B_206D_200B_206F_202E(ItemForSale P_0, int P_1) - { - P_0.Position = P_1; - } - - static string _200E_200C_202C_200E_200F_202E_202D_200C_200D_200C_200C_202B_200B_202C_200D_206B_206E_202D_200C_206E_200F_202D_206E_200B_202B_206F_200C_200B_200D_206F_202B_206B_202B_206F_200F_200C_206F_200E_206E_202C_202E(AtkValue P_0) - { - return P_0.ReadAtkString(); - } - - static void _206F_202E_206F_202E_206A_202C_202C_202B_202E_202C_202D_200D_200B_202B_206B_206F_202D_200E_202D_206F_206A_200E_206A_202D_206E_206D_206E_206A_202A_202D_200F_200C_202D_202C_200D_206C_200C_206D_202A_202E(ItemForSale P_0, string P_1) - { - P_0.ItemName = P_1; - } - - static void _206A_200B_206E_206D_202D_206B_206A_206C_202E_202B_200C_206B_206B_206B_202E_200D_200E_202C_206B_206B_202D_202E_202E_206E_206A_206B_200F_200E_206D_200F_206C_202C_202D_200B_206D_206B_206D_202C_202A_206D_202E(ItemForSale P_0, uint P_1) - { - P_0.Price = P_1; - } - - static void _202C_206E_206F_202E_200B_206C_202C_200C_206A_206F_200E_202A_200B_200B_206A_206C_206C_202A_202C_202C_200C_200B_202C_206F_206D_202B_206A_202E_202C_206A_206A_200D_200C_200F_202A_202E_202D_200B_202C_206A_202E(ItemForSale P_0, uint P_1) - { - P_0.CurrencyItemId = P_1; - } - - static void _202D_200D_200E_206A_200F_200F_200D_206E_200C_206C_202E_206D_206F_200C_206A_200B_200F_200B_206D_202D_200F_200E_202E_206B_200C_200F_200C_200F_200D_200B_200D_200E_200C_200F_200D_206F_202D_206C_206B_206B_202E(ItemForSale P_0, uint P_1) - { - P_0.OwnedItems = P_1; - } - - static void _200F_202C_202E_202D_206C_206A_200B_200C_200B_202E_202A_200B_202E_200D_202B_202E_200C_202D_206B_202C_202A_206F_206C_202A_200F_200C_202B_206D_202B_200D_206C_202A_200D_206D_200D_206F_202B_206D_200B_202C_202E(ItemForSale P_0, uint P_1) - { - P_0.ItemId = P_1; - } - - static uint _206D_202C_206C_200B_200D_206D_206F_206C_206A_200D_206A_206E_200B_206F_200B_202E_206F_202C_206C_202C_206E_202A_206D_202D_200C_200D_206A_200F_202D_202C_202A_200F_206D_200F_206A_200D_200F_202D_202E_200D_202E(ItemForSale P_0) - { - return P_0.ItemId; - } - - static uint? _202D_202B_202E_206A_200F_202C_202A_206F_206E_206B_206D_206E_200C_200F_206A_202D_202B_200F_202B_200F_200B_206C_206E_202B_206F_206E_200E_200B_202B_200D_202C_202A_206E_202D_200D_200B_202C_206D_202D_206A_202E(QuestStep P_0) - { - return P_0.ItemId; - } - } - private readonly QuestController _questController; private readonly IGameGui _gameGui; @@ -124,262 +35,124 @@ internal sealed class ShopController : IDisposable, IShopWindow public bool IsOpen { get; set; } - public bool IsAutoBuyEnabled => _200C_202E_202B_202B_206C_206C_206E_200E_200B_200D_206E_202B_202A_202A_200B_200C_200D_206C_200D_206F_202A_202B_202A_200B_206B_202A_200B_200F_206F_202A_200E_202A_202B_206F_202B_200F_200E_200F_206F_202C_202E(_shop); + public bool IsAutoBuyEnabled => _shop.AutoBuyEnabled; public bool IsAwaitingYesNo { get { - return _206F_200B_202D_202B_206C_206B_200E_202B_200D_200E_206D_202D_202C_206D_206C_200F_200C_206F_200B_200E_202D_202D_200E_206E_202D_202C_206C_202D_202A_200F_202E_202D_202E_206F_202E_202D_200D_206B_202A_202A_202E(_shop); + return _shop.IsAwaitingYesNo; } set { - _202E_200F_206E_206E_202D_200F_202D_202E_206A_206F_202B_206A_200B_202B_202B_206A_200C_206D_202A_206F_206A_202A_206B_200B_202E_202C_202D_202A_206B_200C_206B_200F_206C_200F_202A_202C_200D_206B_206F_206C_202E(_shop, value); + _shop.IsAwaitingYesNo = value; } } public Vector2? Position { get; set; } - [MethodImpl(MethodImplOptions.NoInlining)] public ShopController(QuestController questController, IGameGui gameGui, IAddonLifecycle addonLifecycle, IFramework framework, ILogger<ShopController> logger, IPluginLog pluginLog, IDataManager dataManager) { _questController = questController; _gameGui = gameGui; _framework = framework; - _shop = _206D_202A_202E_206D_206B_202C_200C_206E_200B_202B_206D_202A_202B_206D_202E_200C_200B_206F_206C_206C_202C_206F_206C_202E_206B_202B_206E_202C_200D_206D_202A_206E_206B_206A_206B_206A_206E_206D_202E((IShopWindow)this, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2121285778), pluginLog, gameGui, addonLifecycle, dataManager); + _shop = new RegularShopBase(this, "Shop", pluginLog, gameGui, addonLifecycle, dataManager); _logger = logger; - _200B_202A_200F_206D_200C_200B_206B_206A_202E_202A_200D_202C_202B_200D_202A_206A_206F_202A_206C_206F_200D_202D_202B_206E_206A_200C_206A_206D_206D_202A_202B_202B_202E_202B_206B_200D_206D_202B_200B_206C_202E(_framework, (IFramework.OnUpdateDelegate)FrameworkUpdate); + _framework.Update += FrameworkUpdate; } public void Dispose() { - _202E_206A_206E_200F_206E_200C_206B_200B_200C_200D_200E_200C_206A_200D_206E_200C_202C_206E_206F_206D_202D_206F_200F_206E_202B_206A_206C_200D_206B_202C_206C_202D_206A_200C_206B_200B_206E_206D_200B_200E_202E(_framework, (IFramework.OnUpdateDelegate)FrameworkUpdate); - _200C_202E_206E_206C_202A_200C_202B_200C_202A_206E_206C_206F_202B_202C_202B_200E_206B_200F_202B_206D_206F_206E_200E_206F_206B_200B_202D_202E_206A_206B_200B_200E_200E_206C_202D_200E_202E_202C_206E_202A_202E(_shop); + _framework.Update -= FrameworkUpdate; + _shop.Dispose(); } - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] private void FrameworkUpdate(IFramework framework) { - int num = ((!IsOpen) ? (-1743708968) : (-1743708973)); - QuestStep questStep = default(QuestStep); - int num7 = default(int); - while (true) + if (!IsOpen || _shop.ItemForSale == null) { - int num2 = num; - int num3 = -1743708974; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - _202E_202A_200F_202E_200F_202E_200C_200D_206B_202D_202B_200E_206F_200C_202E_200D_200E_202E_206C_206D_206E_206C_202A_202A_202A_206F_206B_200F_202D_200B_202A_200B_202E_206C_206A_206E_200D_200F_202B_200D_202E(_shop, (ItemForSale)null); - RestoreExternalPluginState(); - num = -1743708968; - break; - case 8: - num = ((_202B_200D_200D_206C_200E_200C_202C_206F_206A_206E_206C_202E_202C_200E_206C_206D_202E_206E_206B_202D_202B_200E_206F_202D_206C_202B_206C_206F_206D_202A_202D_200F_200F_202B_202B_202D_206A_200F_200F_202C_202E(_shop) == null) ? (-1743708974) : (-1743708975)); - break; - case 1: - num = ((_206C_202C_206C_202D_206D_202A_206A_200C_202C_200B_202C_206F_200D_206B_206B_202C_206D_202D_200E_200B_206D_202B_206E_202D_202E_202E_206F_206E_206C_202E_206F_206A_206F_200B_202E_206E_200B_200D_200C_206F_202E(_shop) == null) ? (-1743708968) : (-1743708966)); - break; - case 5: - { - int num8 = _200E_206D_206B_202D_200C_206A_200E_206D_200B_202D_202E_206A_206B_206E_206D_200E_200C_202A_200F_202E_202C_206A_200F_206A_200C_200E_206A_206D_200E_200D_202E_206F_206F_202A_200B_202D_206D_200C_206C_200E_202E(0, _206C_202A_206F_200F_200B_200F_206F_200B_200B_206B_200B_202E_202B_200B_200F_200B_202A_206C_206B_202C_206E_200F_200F_206D_206A_200B_206C_200E_202B_200D_202D_200F_206A_200E_200B_200E_202C_202D_206D_206D_202E(questStep).GetValueOrDefault() - (int)_202E_206F_202B_202C_202E_206F_200D_206B_202A_202B_206B_206A_206D_200D_202E_202C_200D_206E_200E_200D_206E_202D_206E_200E_200E_206D_206C_200B_200F_200E_202C_206A_206B_200B_200C_206A_206C_206B_202B_202A_202E(_206C_202C_206C_202D_206D_202A_206A_200C_202C_200B_202C_206F_200D_206B_206B_202C_206D_202D_200E_200B_206D_202B_206E_202D_202E_202E_206F_206E_206C_202E_206F_206A_206F_200B_202E_206E_200B_200D_200C_206F_202E(_shop))); - num7 = _200F_202B_202B_206C_200D_200C_200F_206A_206D_206D_202D_206A_202C_202D_206F_206F_202D_206C_202E_202B_206E_202B_200C_206F_206F_200C_200F_200E_206A_206C_206B_200D_200E_206F_206B_202A_202E_202C_206A_202A_202E(_202D_202D_200D_200D_206A_202C_202C_200C_206B_206C_200D_206B_202B_202E_206F_202B_202B_200D_202C_206E_202E_200E_200E_200D_200C_200E_202B_206C_206D_200F_200F_202D_200D_200B_206B_206E_202B_202C_200C_202A_202E(_shop), num8); - num = ((num7 <= 0) ? (-1743708970) : (-1743708965)); - break; - } - case 2: - _202E_202A_200F_202E_200F_202E_200C_200D_206B_202D_202B_200E_206F_200C_202E_200D_200E_202E_206C_206D_206E_206C_202A_202A_202A_206F_206B_200F_202D_200B_202A_200B_202E_206C_206A_206E_200D_200F_202B_200D_202E(_shop, (ItemForSale)null); - RestoreExternalPluginState(); - return; - case 10: - return; - case 6: - num = -1743708973; - break; - case 0: - questStep = FindCurrentStep(); - num = ((questStep == null) ? (-1743708976) : (-1743708971)); - break; - case 7: - num = ((_206B_200F_206A_200C_206B_206B_202D_202E_206E_202D_200C_202C_206C_200F_202C_206B_206C_202B_202A_200F_202A_206A_206C_206C_206F_206D_200F_200D_206B_202C_202B_202B_206A_200E_206A_202C_200C_206D_206A_202B_202E(questStep) == EInteractionType.PurchaseItem) ? (-1743708969) : (-1743708976)); - break; - case 3: - _202E_200C_206B_202C_200E_202B_200C_206F_202A_206F_200D_206C_202D_202C_200F_206A_202B_200D_200B_202D_206F_206E_200E_206C_206F_206C_202E_206A_206C_202E_206B_206D_206C_206F_202A_200F_206B_206F_200E_202A_202E(_shop); - return; - case 9: - _202B_206A_206D_206D_206E_200E_202B_206E_202C_206D_200D_202A_202C_202D_206F_202C_202D_202D_206D_206E_206E_202A_202B_206F_200B_200E_202E_202E_202B_200B_206E_206A_206F_200E_202B_200C_200B_206C_200B_202E_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(434015474), new object[2] - { - num7, - _200F_202B_206D_202E_202E_202C_200C_202D_200F_202B_202A_206E_206E_200F_206F_202B_202D_202D_202A_202A_200E_200B_206C_206A_200E_206F_206C_200C_206D_206F_206B_202B_200C_200E_202E_206C_202C_206B_202C_206D_202E(_206C_202C_206C_202D_206D_202A_206A_200C_202C_200B_202C_206F_200D_206B_206B_202C_206D_202D_200E_200B_206D_202B_206E_202D_202E_202E_206F_206E_206C_202E_206F_206A_206F_200B_202E_206E_200B_200D_200C_206F_202E(_shop)) - }); - _200D_200E_202E_202A_206E_206F_202E_206D_206B_206F_206A_200D_206C_200D_202B_202D_200E_200E_200E_200D_200D_200B_202A_206B_202E_206F_202C_200E_206B_200D_200B_202E_202E_202C_200D_206A_206B_206F_206D_202A_202E(_shop, num7); - _202E_200C_206B_202C_200E_202B_200C_206F_202A_206F_200D_206C_202D_202C_200F_206A_202B_200D_200B_202D_206F_206E_200E_206C_206F_206C_202E_206A_206C_202E_206B_206D_206C_206F_202A_200F_206B_206F_200E_202A_202E(_shop); - return; - } + return; + } + if (_shop.PurchaseState != null) + { + _shop.HandleNextPurchaseStep(); + return; + } + QuestStep questStep = FindCurrentStep(); + if (questStep == null || questStep.InteractionType != EInteractionType.PurchaseItem) + { + _shop.ItemForSale = null; + RestoreExternalPluginState(); + return; + } + int val = Math.Max(0, questStep.ItemCount.GetValueOrDefault() - (int)_shop.ItemForSale.OwnedItems); + int num = Math.Min(_shop.GetMaxItemsToPurchase(), val); + if (num > 0) + { + _logger.LogDebug("Auto-buying {ToPurchase} {ItemName}", num, _shop.ItemForSale.ItemName); + _shop.StartAutoPurchase(num); + _shop.HandleNextPurchaseStep(); + } + else + { + _shop.ItemForSale = null; + RestoreExternalPluginState(); } } private QuestStep? FindCurrentStep() { QuestController.QuestProgress currentQuest = _questController.CurrentQuest; - int num = ((currentQuest != null) ? (-2079361187) : (-2079361188)); - object obj; - while (true) - { - int num2 = num; - int num3 = -2079361187; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 2: - goto IL_004d; - case 0: - obj = currentQuest.Quest.FindSequence(currentQuest.Sequence); - break; - case 1: - obj = null; - break; - } - break; - IL_004d: - num = -2079361188; - } - if (obj == null) - { - return null; - } - return _206C_206B_200C_202A_206C_206C_200B_200C_202C_206A_200B_206C_200E_202E_202C_200D_206A_200B_202A_206A_206B_202E_206D_202E_200C_202D_200D_206B_200D_200F_206C_206E_206A_202A_206B_206F_200E_206D_206A_202D_202E((QuestSequence)obj, currentQuest?.Step ?? 0); + return (currentQuest?.Quest.FindSequence(currentQuest.Sequence))?.FindStep(currentQuest?.Step ?? 0); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe void UpdateShopStock(AtkUnitBase* addon) { QuestStep currentStep = FindCurrentStep(); - int num = ((currentStep == null) ? 958087197 : 958087193); - uint uInt = default(uint); - AtkValue* atkValues = default(AtkValue*); - while (true) + if (currentStep == null || currentStep.InteractionType != EInteractionType.PurchaseItem) { - int num2 = num; - int num3 = 958087192; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - _202E_202A_200F_202E_200F_202E_200C_200D_206B_202D_202B_200E_206F_200C_202E_200D_200E_202E_206C_206D_206E_206C_202A_202A_202A_206F_206B_200F_202D_200B_202A_200B_202E_206C_206A_206E_200D_200F_202B_200D_202E(_shop, (ItemForSale)null); - return; - case 6: - return; - case 0: - uInt = atkValues[2].UInt; - num = ((uInt != 0) ? 958087189 : 958087196); - break; - case 7: - num = ((_currentStockSwitchAttempts >= 3) ? 958087198 : 958087195); - break; - case 9: - _lastPurchaseItemId = _206F_202C_200B_202C_200D_206E_202D_200C_200B_200F_202B_202C_200B_206E_206C_206E_202A_206A_200F_206B_200B_200F_202C_202D_206E_200D_200E_200E_206E_206F_206E_206C_202B_202D_206C_200E_206C_200E_200E_202D_202E(currentStep); - _currentStockSwitchAttempts = 0; - num = 958087192; - break; - case 5: - _202E_202A_200F_202E_200F_202E_200C_200D_206B_202D_202B_200E_206F_200C_202E_200D_200E_202E_206C_206D_206E_206C_202A_202A_202A_206F_206B_200F_202D_200B_202A_200B_202E_206C_206A_206E_200D_200F_202B_200D_202E(_shop, (ItemForSale)null); - return; - case 8: - _202A_200C_206E_202D_206D_206D_202C_202E_200B_200E_206C_200F_202A_200B_206F_206E_206E_206C_200F_200D_206E_202A_202E_202D_200B_200B_202E_206F_202D_206D_206A_202B_206E_202D_202A_206A_200C_206B_206E_206D_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-662596466), new object[1] { addon->AtkValuesCount }); - _202E_202A_200F_202E_200F_202E_200C_200D_206B_202D_202B_200E_206F_200C_202E_200D_200E_202E_206C_206D_206E_206C_202A_202A_202A_206F_206B_200F_202D_200B_202A_200B_202E_206C_206A_206E_200D_200F_202B_200D_202E(_shop, (ItemForSale)null); - return; - case 3: - num = ((_202B_206B_206D_206A_202B_200F_200B_200F_200F_202D_206E_206F_200F_200C_206F_202E_202E_202A_200B_202E_200D_206D_200B_206C_200E_206A_206B_206C_202D_206C_202B_200F_206D_202E_200C_206A_206C_206A_200E_206B_202E() - _lastCurrentStockSwitchMs <= 2000) ? 958087198 : 958087188); - break; - case 14: - _currentStockSwitchAttempts = 0; - return; - case 1: - num = ((_206B_200F_206A_200C_206B_206B_202D_202E_206E_202D_200C_202C_206C_200F_202C_206B_206C_202B_202A_200F_202A_206A_206C_206C_206F_206D_200F_200D_206B_202C_202B_202B_206A_200E_206A_202C_200C_206D_206A_202B_202E(currentStep) == EInteractionType.PurchaseItem) ? 958087186 : 958087197); - break; - case 10: - num = ((addon->AtkValuesCount == 625) ? 958087187 : 958087184); - break; - case 11: - { - atkValues = addon->AtkValues; - uint? num7 = _206F_202C_200B_202C_200D_206E_202D_200C_200B_200F_202B_202C_200B_206E_206C_206E_202A_206A_200F_206B_200B_200F_202C_202D_206E_200D_200E_200E_206E_206F_206E_206C_202B_202D_206C_200E_206C_200E_200E_202D_202E(currentStep); - uint? lastPurchaseItemId = _lastPurchaseItemId; - bool num8 = num7.GetValueOrDefault() == lastPurchaseItemId.GetValueOrDefault(); - num3 = ((num7.HasValue == lastPurchaseItemId.HasValue) ? 1 : 0); - num4 = (num8 ? 1 : 0); - num = (((num4 | num3) - (num4 ^ num3) != 0) ? 958087192 : 958087185); - break; - } - case 2: - num = 958087193; - break; - case 13: - _202E_202A_200F_202E_200F_202E_200C_200D_206B_202D_202B_200E_206F_200C_202E_200D_200E_202E_206C_206D_206E_206C_202A_202A_202A_206F_206B_200F_202D_200B_202A_200B_202E_206C_206A_206E_200D_200F_202B_200D_202E(_shop, _206C_202D_206B_206B_200E_206D_206B_200D_202C_200E_206C_206A_202D_206F_206C_200C_206A_206B_200E_200F_200E_206D_202D_206A_206D_206F_202D_200D_202A_202D_202D_202A_206C_200C_202C_206F_200E_202A_202D_206E_202E(0, (int)uInt).Select(delegate(int i) - { - ItemForSale itemForSale = _003C_003Ec__DisplayClass28_0._206D_206A_200F_206C_206E_200F_200E_202E_200B_200B_206F_206C_202D_206B_200E_200C_202E_202B_202A_206B_206A_206A_206F_206D_206A_200D_200C_202D_206F_200F_202D_206D_206C_200E_202D_200E_206F_206B_200E_202E_202E(); - _003C_003Ec__DisplayClass28_0._200D_202B_206C_206B_200D_202B_200F_206B_200E_206A_206E_200E_202D_200B_206E_206B_202A_200C_206A_206A_206D_202A_202B_206E_200F_206E_202C_202D_202A_200C_202C_202C_206E_206B_200E_202A_202B_206D_200B_206F_202E(itemForSale, i); - AtkValue* num9 = atkValues; - int num10 = i; - int num11 = 14; - _003C_003Ec__DisplayClass28_0._206F_202E_206F_202E_206A_202C_202C_202B_202E_202C_202D_200D_200B_202B_206B_206F_202D_200E_202D_206F_206A_200E_206A_202D_206E_206D_206E_206A_202A_202D_200F_200C_202D_202C_200D_206C_200C_206D_202A_202E(itemForSale, _003C_003Ec__DisplayClass28_0._200E_200C_202C_200E_200F_202E_202D_200C_200D_200C_200C_202B_200B_202C_200D_206B_206E_202D_200C_206E_200F_202D_206E_200B_202B_206F_200C_200B_200D_206F_202B_206B_202B_206F_200F_200C_206F_200E_206E_202C_202E(num9[(num11 | num10) + (num11 & num10)])); - AtkValue* num12 = atkValues; - num10 = i; - num11 = 75; - _003C_003Ec__DisplayClass28_0._206A_200B_206E_206D_202D_206B_206A_206C_202E_202B_200C_206B_206B_206B_202E_200D_200E_202C_206B_206B_202D_202E_202E_206E_206A_206B_200F_200E_206D_200F_206C_202C_202D_200B_206D_206B_206D_202C_202A_206D_202E(itemForSale, num12[(num11 | num10) + (num11 & num10)].UInt); - _003C_003Ec__DisplayClass28_0._202C_206E_206F_202E_200B_206C_202C_200C_206A_206F_200E_202A_200B_200B_206A_206C_206C_202A_202C_202C_200C_200B_202C_206F_206D_202B_206A_202E_202C_206A_206A_200D_200C_200F_202A_202E_202D_200B_202C_206A_202E(itemForSale, 1u); - AtkValue* num13 = atkValues; - num10 = i; - num11 = 136; - _003C_003Ec__DisplayClass28_0._202D_200D_200E_206A_200F_200F_200D_206E_200C_206C_202E_206D_206F_200C_206A_200B_200F_200B_206D_202D_200F_200E_202E_206B_200C_200F_200C_200F_200D_200B_200D_200E_200C_200F_200D_206F_202D_206C_206B_206B_202E(itemForSale, num13[(num11 | num10) + (num11 & num10)].UInt); - AtkValue* num14 = atkValues; - num10 = i; - num11 = 441; - _003C_003Ec__DisplayClass28_0._200F_202C_202E_202D_206C_206A_200B_200C_200B_202E_202A_200B_202E_200D_202B_202E_200C_202D_206B_202C_202A_206F_206C_202A_200F_200C_202B_206D_202B_200D_206C_202A_200D_206D_200D_206F_202B_206D_200B_202C_202E(itemForSale, num14[(num11 | num10) + (num11 & num10)].UInt); - return itemForSale; - }).FirstOrDefault((ItemForSale x) => _003C_003Ec__DisplayClass28_0._206D_202C_206C_200B_200D_206D_206F_206C_206A_200D_206A_206E_200B_206F_200B_202E_206F_202C_206C_202C_206E_202A_206D_202D_200C_200D_206A_200F_202D_202C_202A_200F_206D_200F_206A_200D_200F_202D_202E_200D_202E(x) == _003C_003Ec__DisplayClass28_0._202D_202B_202E_206A_200F_202C_202A_206F_206E_206B_206D_206E_200C_200F_206A_202D_202B_200F_202B_200F_200B_206C_206E_202B_206F_206E_200E_200B_202B_200D_202C_202A_206E_202D_200D_200B_202C_206D_202D_206A_202E(currentStep))); - num = ((_206C_202C_206C_202D_206D_202A_206A_200C_202C_200B_202C_206F_200D_206B_206B_202C_206D_202D_200E_200B_206D_202B_206E_202D_202E_202E_206F_206E_206C_202E_206F_206A_206F_200B_202E_206E_200B_200D_200C_206F_202E(_shop) == null) ? 958087199 : 958087190); - break; - case 12: - { - int currentStockSwitchAttempts = _currentStockSwitchAttempts; - num3 = 1; - num4 = currentStockSwitchAttempts; - int num5 = num4 ^ num3; - int num6 = num4 & num3; - _currentStockSwitchAttempts = num5 + (num6 + num6); - _lastCurrentStockSwitchMs = _202B_206B_206D_206A_202B_200F_200B_200F_200F_202D_206E_206F_200F_200C_206F_202E_202E_202A_200B_202E_200D_206D_200B_206C_200E_206A_206B_206C_202D_206C_202B_200F_206D_202E_200C_206A_206C_206A_200E_206B_202E(); - _200D_200B_200F_206C_200B_202D_202A_202A_206B_200D_202A_206A_206E_206E_206C_200E_206B_202E_200C_202A_202A_202E_206D_206C_206F_206F_206D_200D_206F_200C_200F_206B_200F_200B_206D_200B_200F_200B_202C_200E_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(773010987), new object[4] - { - uInt, - _206F_202C_200B_202C_200D_206E_202D_200C_200B_200F_202B_202C_200B_206E_206C_206E_202A_206A_200F_206B_200B_200F_202C_202D_206E_200D_200E_200E_206E_206F_206E_206C_202B_202D_206C_200E_206C_200E_200E_202D_202E(currentStep), - _currentStockSwitchAttempts, - 3 - }); - SwitchToCurrentStockTab(addon); - num = 958087198; - break; - } - } + _shop.ItemForSale = null; + return; + } + if (addon->AtkValuesCount != 625) + { + _logger.LogError("Unexpected amount of atkvalues for Shop addon ({AtkValueCount})", addon->AtkValuesCount); + _shop.ItemForSale = null; + return; + } + AtkValue* atkValues = addon->AtkValues; + if (currentStep.ItemId != _lastPurchaseItemId) + { + _lastPurchaseItemId = currentStep.ItemId; + _currentStockSwitchAttempts = 0; + } + uint uInt = atkValues[2].UInt; + if (uInt == 0) + { + _shop.ItemForSale = null; + return; + } + _shop.ItemForSale = (from i in Enumerable.Range(0, (int)uInt) + select new ItemForSale + { + Position = i, + ItemName = atkValues[14 + i].ReadAtkString(), + Price = atkValues[75 + i].UInt, + CurrencyItemId = 1u, + OwnedItems = atkValues[136 + i].UInt, + ItemId = atkValues[441 + i].UInt + }).FirstOrDefault((ItemForSale x) => x.ItemId == currentStep.ItemId); + if (_shop.ItemForSale != null) + { + _currentStockSwitchAttempts = 0; + } + else if (_currentStockSwitchAttempts < 3 && Environment.TickCount64 - _lastCurrentStockSwitchMs > 2000) + { + _currentStockSwitchAttempts++; + _lastCurrentStockSwitchMs = Environment.TickCount64; + _logger.LogWarning("Shop list has {ItemCount} item(s) but not {ItemId}; switching to Current Stock tab ({Attempt}/{Max})", uInt, currentStep.ItemId, _currentStockSwitchAttempts, 3); + SwitchToCurrentStockTab(addon); } - } - - unsafe void IShopWindow.UpdateShopStock(AtkUnitBase* addon) - { - //ILSpy generated this explicit interface implementation from .override directive in UpdateShopStock - this.UpdateShopStock(addon); } public unsafe void TriggerPurchase(AtkUnitBase* addonShop, int buyNow) @@ -394,7 +167,7 @@ internal sealed class ShopController : IDisposable, IShopWindow new AtkValue { Type = AtkValueType.Int, - Int = _202A_200F_202A_202D_206E_202A_200E_202A_202A_206E_206B_202C_200F_202C_202D_206A_206C_202E_202C_206A_200D_200B_202B_206E_202A_200E_202A_202D_206F_200C_202B_202A_206F_206C_200F_206A_200B_202A_206D_206C_202E(_206C_202C_206C_202D_206D_202A_206A_200C_202C_200B_202C_206F_200D_206B_206B_202C_206D_202D_200E_200B_206D_202B_206E_202D_202E_202E_206F_206E_206C_202E_206F_206A_206F_200B_202E_206E_200B_200D_200C_206F_202E(_shop)) + Int = _shop.ItemForSale.Position }, new AtkValue { @@ -410,12 +183,6 @@ internal sealed class ShopController : IDisposable, IShopWindow addonShop->FireCallback(4u, values); } - unsafe void IShopWindow.TriggerPurchase(AtkUnitBase* addonShop, int buyNow) - { - //ILSpy generated this explicit interface implementation from .override directive in TriggerPurchase - this.TriggerPurchase(addonShop, buyNow); - } - private unsafe void SwitchToCurrentStockTab(AtkUnitBase* addonShop) { AtkValue* values = stackalloc AtkValue[3] @@ -443,177 +210,11 @@ internal sealed class ShopController : IDisposable, IShopWindow { } - void IShopWindow.SaveExternalPluginState() - { - //ILSpy generated this explicit interface implementation from .override directive in SaveExternalPluginState - this.SaveExternalPluginState(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe void RestoreExternalPluginState() { - AtkUnitBase* addonPtr; - int num = ((!_gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(831697146), out addonPtr)) ? 2003329777 : 2003329778); - while (true) + if (_gameGui.TryGetAddonByName<AtkUnitBase>("Shop", out var addonPtr)) { - int num2 = num; - int num3 = 2003329776; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 2003329778; - break; - case 2: - addonPtr->FireCallbackInt(-1); - num = 2003329777; - break; - case 1: - return; - } + addonPtr->FireCallbackInt(-1); } } - - void IShopWindow.RestoreExternalPluginState() - { - //ILSpy generated this explicit interface implementation from .override directive in RestoreExternalPluginState - this.RestoreExternalPluginState(); - } - - static RegularShopBase _206D_202A_202E_206D_206B_202C_200C_206E_200B_202B_206D_202A_202B_206D_202E_200C_200B_206F_206C_206C_202C_206F_206C_202E_206B_202B_206E_202C_200D_206D_202A_206E_206B_206A_206B_206A_206E_206D_202E(IShopWindow P_0, string P_1, IPluginLog P_2, IGameGui P_3, IAddonLifecycle P_4, IDataManager P_5) - { - return new RegularShopBase(P_0, P_1, P_2, P_3, P_4, P_5); - } - - static void _200B_202A_200F_206D_200C_200B_206B_206A_202E_202A_200D_202C_202B_200D_202A_206A_206F_202A_206C_206F_200D_202D_202B_206E_206A_200C_206A_206D_206D_202A_202B_202B_202E_202B_206B_200D_206D_202B_200B_206C_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update += P_1; - } - - static bool _200C_202E_202B_202B_206C_206C_206E_200E_200B_200D_206E_202B_202A_202A_200B_200C_200D_206C_200D_206F_202A_202B_202A_200B_206B_202A_200B_200F_206F_202A_200E_202A_202B_206F_202B_200F_200E_200F_206F_202C_202E(RegularShopBase P_0) - { - return P_0.AutoBuyEnabled; - } - - static bool _206F_200B_202D_202B_206C_206B_200E_202B_200D_200E_206D_202D_202C_206D_206C_200F_200C_206F_200B_200E_202D_202D_200E_206E_202D_202C_206C_202D_202A_200F_202E_202D_202E_206F_202E_202D_200D_206B_202A_202A_202E(RegularShopBase P_0) - { - return P_0.IsAwaitingYesNo; - } - - static void _202E_200F_206E_206E_202D_200F_202D_202E_206A_206F_202B_206A_200B_202B_202B_206A_200C_206D_202A_206F_206A_202A_206B_200B_202E_202C_202D_202A_206B_200C_206B_200F_206C_200F_202A_202C_200D_206B_206F_206C_202E(RegularShopBase P_0, bool P_1) - { - P_0.IsAwaitingYesNo = P_1; - } - - static void _202E_206A_206E_200F_206E_200C_206B_200B_200C_200D_200E_200C_206A_200D_206E_200C_202C_206E_206F_206D_202D_206F_200F_206E_202B_206A_206C_200D_206B_202C_206C_202D_206A_200C_206B_200B_206E_206D_200B_200E_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update -= P_1; - } - - static void _200C_202E_206E_206C_202A_200C_202B_200C_202A_206E_206C_206F_202B_202C_202B_200E_206B_200F_202B_206D_206F_206E_200E_206F_206B_200B_202D_202E_206A_206B_200B_200E_200E_206C_202D_200E_202E_202C_206E_202A_202E(RegularShopBase P_0) - { - P_0.Dispose(); - } - - static ItemForSale _206C_202C_206C_202D_206D_202A_206A_200C_202C_200B_202C_206F_200D_206B_206B_202C_206D_202D_200E_200B_206D_202B_206E_202D_202E_202E_206F_206E_206C_202E_206F_206A_206F_200B_202E_206E_200B_200D_200C_206F_202E(RegularShopBase P_0) - { - return P_0.ItemForSale; - } - - static PurchaseState _202B_200D_200D_206C_200E_200C_202C_206F_206A_206E_206C_202E_202C_200E_206C_206D_202E_206E_206B_202D_202B_200E_206F_202D_206C_202B_206C_206F_206D_202A_202D_200F_200F_202B_202B_202D_206A_200F_200F_202C_202E(RegularShopBase P_0) - { - return P_0.PurchaseState; - } - - static void _202E_200C_206B_202C_200E_202B_200C_206F_202A_206F_200D_206C_202D_202C_200F_206A_202B_200D_200B_202D_206F_206E_200E_206C_206F_206C_202E_206A_206C_202E_206B_206D_206C_206F_202A_200F_206B_206F_200E_202A_202E(RegularShopBase P_0) - { - P_0.HandleNextPurchaseStep(); - } - - static EInteractionType _206B_200F_206A_200C_206B_206B_202D_202E_206E_202D_200C_202C_206C_200F_202C_206B_206C_202B_202A_200F_202A_206A_206C_206C_206F_206D_200F_200D_206B_202C_202B_202B_206A_200E_206A_202C_200C_206D_206A_202B_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static void _202E_202A_200F_202E_200F_202E_200C_200D_206B_202D_202B_200E_206F_200C_202E_200D_200E_202E_206C_206D_206E_206C_202A_202A_202A_206F_206B_200F_202D_200B_202A_200B_202E_206C_206A_206E_200D_200F_202B_200D_202E(RegularShopBase P_0, ItemForSale P_1) - { - P_0.ItemForSale = P_1; - } - - static int? _206C_202A_206F_200F_200B_200F_206F_200B_200B_206B_200B_202E_202B_200B_200F_200B_202A_206C_206B_202C_206E_200F_200F_206D_206A_200B_206C_200E_202B_200D_202D_200F_206A_200E_200B_200E_202C_202D_206D_206D_202E(QuestStep P_0) - { - return P_0.ItemCount; - } - - static uint _202E_206F_202B_202C_202E_206F_200D_206B_202A_202B_206B_206A_206D_200D_202E_202C_200D_206E_200E_200D_206E_202D_206E_200E_200E_206D_206C_200B_200F_200E_202C_206A_206B_200B_200C_206A_206C_206B_202B_202A_202E(ItemForSale P_0) - { - return P_0.OwnedItems; - } - - static int _200E_206D_206B_202D_200C_206A_200E_206D_200B_202D_202E_206A_206B_206E_206D_200E_200C_202A_200F_202E_202C_206A_200F_206A_200C_200E_206A_206D_200E_200D_202E_206F_206F_202A_200B_202D_206D_200C_206C_200E_202E(int P_0, int P_1) - { - return Math.Max(P_0, P_1); - } - - static int _202D_202D_200D_200D_206A_202C_202C_200C_206B_206C_200D_206B_202B_202E_206F_202B_202B_200D_202C_206E_202E_200E_200E_200D_200C_200E_202B_206C_206D_200F_200F_202D_200D_200B_206B_206E_202B_202C_200C_202A_202E(RegularShopBase P_0) - { - return P_0.GetMaxItemsToPurchase(); - } - - static int _200F_202B_202B_206C_200D_200C_200F_206A_206D_206D_202D_206A_202C_202D_206F_206F_202D_206C_202E_202B_206E_202B_200C_206F_206F_200C_200F_200E_206A_206C_206B_200D_200E_206F_206B_202A_202E_202C_206A_202A_202E(int P_0, int P_1) - { - return Math.Min(P_0, P_1); - } - - static string _200F_202B_206D_202E_202E_202C_200C_202D_200F_202B_202A_206E_206E_200F_206F_202B_202D_202D_202A_202A_200E_200B_206C_206A_200E_206F_206C_200C_206D_206F_206B_202B_200C_200E_202E_206C_202C_206B_202C_206D_202E(ItemForSale P_0) - { - return P_0.ItemName; - } - - static void _202B_206A_206D_206D_206E_200E_202B_206E_202C_206D_200D_202A_202C_202D_206F_202C_202D_202D_206D_206E_206E_202A_202B_206F_200B_200E_202E_202E_202B_200B_206E_206A_206F_200E_202B_200C_200B_206C_200B_202E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _200D_200E_202E_202A_206E_206F_202E_206D_206B_206F_206A_200D_206C_200D_202B_202D_200E_200E_200E_200D_200D_200B_202A_206B_202E_206F_202C_200E_206B_200D_200B_202E_202E_202C_200D_206A_206B_206F_206D_202A_202E(RegularShopBase P_0, int P_1) - { - P_0.StartAutoPurchase(P_1); - } - - static QuestStep _206C_206B_200C_202A_206C_206C_200B_200C_202C_206A_200B_206C_200E_202E_202C_200D_206A_200B_202A_206A_206B_202E_206D_202E_200C_202D_200D_206B_200D_200F_206C_206E_206A_202A_206B_206F_200E_206D_206A_202D_202E(QuestSequence P_0, int P_1) - { - return P_0.FindStep(P_1); - } - - static void _202A_200C_206E_202D_206D_206D_202C_202E_200B_200E_206C_200F_202A_200B_206F_206E_206E_206C_200F_200D_206E_202A_202E_202D_200B_200B_202E_206F_202D_206D_206A_202B_206E_202D_202A_206A_200C_206B_206E_206D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogError(P_1, P_2); - } - - static uint? _206F_202C_200B_202C_200D_206E_202D_200C_200B_200F_202B_202C_200B_206E_206C_206E_202A_206A_200F_206B_200B_200F_202C_202D_206E_200D_200E_200E_206E_206F_206E_206C_202B_202D_206C_200E_206C_200E_200E_202D_202E(QuestStep P_0) - { - return P_0.ItemId; - } - - static IEnumerable<int> _206C_202D_206B_206B_200E_206D_206B_200D_202C_200E_206C_206A_202D_206F_206C_200C_206A_206B_200E_200F_200E_206D_202D_206A_206D_206F_202D_200D_202A_202D_202D_202A_206C_200C_202C_206F_200E_202A_202D_206E_202E(int P_0, int P_1) - { - return Enumerable.Range(P_0, P_1); - } - - static long _202B_206B_206D_206A_202B_200F_200B_200F_200F_202D_206E_206F_200F_200C_206F_202E_202E_202A_200B_202E_200D_206D_200B_206C_200E_206A_206B_206C_202D_206C_202B_200F_206D_202E_200C_206A_206C_206A_200E_206B_202E() - { - return Environment.TickCount64; - } - - static void _200D_200B_200F_206C_200B_202D_202A_202A_206B_200D_202A_206A_206E_206E_206C_200E_206B_202E_200C_202A_202A_202E_206D_206C_206F_206F_206D_200D_206F_200C_200F_206B_200F_200B_206D_200B_200F_200B_202C_200E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static int _202A_200F_202A_202D_206E_202A_200E_202A_202A_206E_206B_202C_200F_202C_202D_206A_206C_202E_202C_206A_200D_200B_202B_206E_202A_200E_202A_202D_206F_200C_202B_202A_206F_206C_200F_206A_200B_202A_206D_206C_202E(ItemForSale P_0) - { - return P_0.Position; - } } diff --git a/Questionable/Questionable.Controller.NavigationOverrides/AlternateLocation.cs b/Questionable/Questionable.Controller.NavigationOverrides/AlternateLocation.cs index f3bf2cb..3b32343 100644 --- a/Questionable/Questionable.Controller.NavigationOverrides/AlternateLocation.cs +++ b/Questionable/Questionable.Controller.NavigationOverrides/AlternateLocation.cs @@ -1,117 +1,23 @@ using System; -using System.Collections.Generic; using System.Globalization; using System.Numerics; using System.Runtime.CompilerServices; -using System.Text; namespace Questionable.Controller.NavigationOverrides; public sealed record AlternateLocation(Vector3 Point, bool RecalculateNavmesh) { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206A_200D_200F_202C_206C_202B_200E_200F_206B_200F_206C_206B_206A_206F_206C_202A_202A_206E_202E_200F_200C_200B_200C_206A_206D_200C_202D_202D_200D_206E_200F_200D_206A_200C_200E_200D_200F_200D_206C_206B_202E(typeof(AlternateLocation).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - IFormatProvider formatProvider = _202E_206D_200D_206D_206E_202D_206C_202D_206A_202E_202C_202E_202B_200D_202E_200D_200E_206A_202D_200F_206D_200C_206A_206E_202A_206D_206E_200D_202D_206D_202C_202C_206C_206B_206A_200F_200F_200C_200F_200C_202E(); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(6, 4, formatProvider); - defaultInterpolatedStringHandler.AppendFormatted(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-772385023)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2035955381)); - defaultInterpolatedStringHandler.AppendFormatted(Point, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1450220880)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1577352017)); - defaultInterpolatedStringHandler.AppendFormatted(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(528515555)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2074665157)); - defaultInterpolatedStringHandler.AppendFormatted(RecalculateNavmesh); - return _206C_202D_206A_202C_200D_200D_202B_200E_206C_202E_206F_206B_200C_206C_206B_200B_206D_206E_206F_202C_206F_206B_200E_200D_206A_202D_202D_200E_200F_206D_206A_206E_206D_200B_202D_202C_202A_206D_206B_202D_202E(formatProvider, ref defaultInterpolatedStringHandler); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202B_200F_202C_206B_202B_202B_206D_206B_206D_202E_200C_206C_206E_202B_206F_200D_202B_200E_206E_206E_200B_206F_202D_202C_202B_202D_202C_206D_200B_206B_206D_202E_206D_200E_206F_206A_206F_202A_206C_202D_202E(); - _206D_202E_200E_200B_206E_200C_202A_202B_206B_200B_202A_206C_202C_202D_206D_206F_206A_206E_200E_206B_200B_202B_202B_206A_202D_200E_202B_206D_200D_206F_206B_206E_206D_206F_200D_206D_206B_200D_206B_206F_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1934952826)); - _206D_202E_200E_200B_206E_200C_202A_202B_206B_200B_202A_206C_202C_202D_206D_206F_206A_206E_200E_206B_200B_202B_202B_206A_202D_200E_202B_206D_200D_206F_206B_206E_206D_206F_200D_206D_206B_200D_206B_206F_202E(builder, Point.ToString()); - _206D_202E_200E_200B_206E_200C_202A_202B_206B_200B_202A_206C_202C_202D_206D_206F_206A_206E_200E_206B_200B_202B_202B_206A_202D_200E_202B_206D_200D_206F_206B_206E_206D_206F_200D_206D_206B_200D_206B_206F_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1357493032)); - _206D_202E_200E_200B_206E_200C_202A_202B_206B_200B_202A_206C_202C_202D_206D_206F_206A_206E_200E_206B_200B_202B_202B_206A_202D_200E_202B_206D_200D_206F_206B_206E_206D_206F_200D_206D_206B_200D_206B_206F_202E(builder, RecalculateNavmesh.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(AlternateLocation? other) - { - int num = (((object)this == other) ? 1935903240 : 1935903245); - while (true) - { - int num2 = num; - int num3 = 1935903244; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - num = ((!EqualityComparer<Vector3>.Default.Equals(Point, other.Point)) ? 1935903242 : 1935903244); - break; - case 1: - num = (((object)other == null) ? 1935903242 : 1935903246); - break; - case 6: - return false; - case 4: - return true; - case 3: - num = 1935903245; - break; - case 2: - num = ((!_206B_206B_206F_206B_202C_206C_202C_202B_200C_200B_206B_206F_206A_206B_206C_206F_200B_200F_200B_202A_202A_206B_206B_202D_206B_206C_206F_202A_202B_202D_202C_200F_200B_200B_200C_202B_200F_206D_200B_206A_202E(EqualityContract, other.EqualityContract)) ? 1935903242 : 1935903241); - break; - case 0: - return EqualityComparer<bool>.Default.Equals(RecalculateNavmesh, other.RecalculateNavmesh); - } - } - } - - bool IEquatable<AlternateLocation>.Equals(AlternateLocation? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206A_200D_200F_202C_206C_202B_200E_200F_206B_200F_206C_206B_206A_206F_206C_202A_202A_206E_202E_200F_200C_200B_200C_206A_206D_200C_202D_202D_200D_206E_200F_200D_206A_200C_200E_200D_200F_200D_206C_206B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static CultureInfo _202E_206D_200D_206D_206E_202D_206C_202D_206A_202E_202C_202E_202B_200D_202E_200D_200E_206A_202D_200F_206D_200C_206A_206E_202A_206D_206E_200D_202D_206D_202C_202C_206C_206B_206A_200F_200F_200C_200F_200C_202E() - { - return CultureInfo.InvariantCulture; - } - - static string _206C_202D_206A_202C_200D_200D_202B_200E_206C_202E_206F_206B_200C_206C_206B_200B_206D_206E_206F_202C_206F_206B_200E_200D_206A_202D_202D_200E_200F_206D_206A_206E_206D_200B_202D_202C_202A_206D_206B_202D_202E(IFormatProvider P_0, ref DefaultInterpolatedStringHandler P_1) - { - return string.Create(P_0, ref P_1); - } - - static void _202B_200F_202C_206B_202B_202B_206D_206B_206D_202E_200C_206C_206E_202B_206F_200D_202B_200E_206E_206E_200B_206F_202D_202C_202B_202D_202C_206D_200B_206B_206D_202E_206D_200E_206F_206A_206F_202A_206C_202D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206D_202E_200E_200B_206E_200C_202A_202B_206B_200B_202A_206C_202C_202D_206D_206F_206A_206E_200E_206B_200B_202B_202B_206A_202D_200E_202B_206D_200D_206F_206B_206E_206D_206F_200D_206D_206B_200D_206B_206F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _206B_206B_206F_206B_202C_206C_202C_202B_200C_200B_206B_206F_206A_206B_206C_206F_200B_200F_200B_202A_202A_206B_206B_202D_206B_206C_206F_202A_202B_202D_202C_200F_200B_200B_200C_202B_200F_206D_200B_206A_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + IFormatProvider invariantCulture = CultureInfo.InvariantCulture; + DefaultInterpolatedStringHandler handler = new DefaultInterpolatedStringHandler(6, 4, invariantCulture); + handler.AppendFormatted("Point"); + handler.AppendLiteral(": "); + handler.AppendFormatted(Point, "G"); + handler.AppendLiteral(", "); + handler.AppendFormatted("RecalculateNavmesh"); + handler.AppendLiteral(": "); + handler.AppendFormatted(RecalculateNavmesh); + return string.Create(invariantCulture, ref handler); } } diff --git a/Questionable/Questionable.Controller.NavigationOverrides/BlacklistedArea.cs b/Questionable/Questionable.Controller.NavigationOverrides/BlacklistedArea.cs index 305b2ca..2e46cd4 100644 --- a/Questionable/Questionable.Controller.NavigationOverrides/BlacklistedArea.cs +++ b/Questionable/Questionable.Controller.NavigationOverrides/BlacklistedArea.cs @@ -1,187 +1,16 @@ -using System; -using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; namespace Questionable.Controller.NavigationOverrides; internal sealed record BlacklistedArea(ushort TerritoryId, Vector3 Center, float MinDistance, float MaxDistance, bool RecalculateNavmesh = false) : IBlacklistedLocation { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202D_206B_206D_202C_206E_206A_206B_202C_206A_202C_206D_206F_202D_202A_200D_202B_200F_200C_206F_206A_200F_202E_206A_202A_202B_200F_200E_200F_206E_202A_202C_206B_206B_202D_202A_200E_200D_200B_200C_206C_202E(typeof(BlacklistedArea).TypeHandle); - } - } - public AlternateLocation? AdjustPoint(Vector3 point) { float num = (point - Center).Length(); - int num2 = ((num < MinDistance) ? 1953826546 : 1953826545); - while (true) + if (num < MinDistance || num > MaxDistance) { - int num3 = num2; - int num4 = 1953826547; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 3: - num2 = 1953826545; - break; - case 0: - return new AlternateLocation(Center + Vector3.Normalize(point - Center) * MaxDistance, RecalculateNavmesh); - case 2: - num2 = ((!(num > MaxDistance)) ? 1953826547 : 1953826546); - break; - case 1: - return null; - } + return null; } - } - - AlternateLocation? IBlacklistedLocation.AdjustPoint(Vector3 point) - { - //ILSpy generated this explicit interface implementation from .override directive in AdjustPoint - return this.AdjustPoint(point); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206B_202A_200E_202B_202E_202D_202C_200F_206A_202A_202C_202B_206C_200D_206E_206A_202E_206E_202B_200B_206D_202E_202D_206C_206D_202E_202E_200E_202C_200F_200F_202D_206A_206C_202D_202B_202B_202C_206C_200E_202E(); - _202A_202D_202E_206B_206B_200C_206F_202A_206D_200C_202B_200D_206F_206C_206E_202D_206F_206C_202A_206A_202E_206C_206E_202A_206C_206A_206F_206F_202B_200D_202A_200B_206C_202C_206F_206A_200C_200B_200E_202B_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(699267182)); - _202A_202D_202E_206B_206B_200C_206F_202A_206D_200C_202B_200D_206F_206C_206E_202D_206F_206C_202A_206A_202E_206C_206E_202A_206C_206A_206F_206F_202B_200D_202A_200B_206C_202C_206F_206A_200C_200B_200E_202B_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? 1630506085 : 1630506086); - while (true) - { - int num2 = num; - int num3 = 1630506087; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - _200C_202C_202B_206A_206E_200C_206B_202B_202A_200E_206C_200C_206C_200D_200B_206D_206F_206D_206E_202A_200B_206E_206D_206E_200C_200C_200F_206E_202B_206A_206C_206E_202E_202E_202A_206F_206B_206C_202C_202E_202E(stringBuilder, '}'); - return _202A_206B_206C_202B_206E_202B_200E_202D_202C_206F_206C_206D_200F_202E_206F_200C_200C_200F_202E_200E_200C_206E_202B_206C_200F_202A_206B_206B_202B_206A_206C_200B_200E_202A_200D_206D_200F_202D_206A_200E_202E((object)stringBuilder); - case 1: - _200C_202C_202B_206A_206E_200C_206B_202B_202A_200E_206C_200C_206C_200D_200B_206D_206F_206D_206E_202A_200B_206E_206D_206E_200C_200C_200F_206E_202B_206A_206C_206E_202E_202E_202A_206F_206B_206C_202C_202E_202E(stringBuilder, ' '); - num = 1630506085; - break; - case 0: - num = 1630506086; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200C_200D_206A_206E_206E_206E_206A_200C_206F_202C_200C_200D_206D_200C_206B_202C_202D_202E_200E_200F_202D_206F_202B_200C_206C_202E_206C_200B_202D_202C_202C_200B_206A_200D_206C_200B_202E_202E_206C_202B_202E(); - _202A_202D_202E_206B_206B_200C_206F_202A_206D_200C_202B_200D_206F_206C_206E_202D_206F_206C_202A_206A_202E_206C_206E_202A_206C_206A_206F_206F_202B_200D_202A_200B_206C_202C_206F_206A_200C_200B_200E_202B_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-871596524)); - _202A_202D_202E_206B_206B_200C_206F_202A_206D_200C_202B_200D_206F_206C_206E_202D_206F_206C_202A_206A_202E_206C_206E_202A_206C_206A_206F_206F_202B_200D_202A_200B_206C_202C_206F_206A_200C_200B_200E_202B_202E(builder, TerritoryId.ToString()); - _202A_202D_202E_206B_206B_200C_206F_202A_206D_200C_202B_200D_206F_206C_206E_202D_206F_206C_202A_206A_202E_206C_206E_202A_206C_206A_206F_206F_202B_200D_202A_200B_206C_202C_206F_206A_200C_200B_200E_202B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2067705783)); - _202A_202D_202E_206B_206B_200C_206F_202A_206D_200C_202B_200D_206F_206C_206E_202D_206F_206C_202A_206A_202E_206C_206E_202A_206C_206A_206F_206F_202B_200D_202A_200B_206C_202C_206F_206A_200C_200B_200E_202B_202E(builder, Center.ToString()); - _202A_202D_202E_206B_206B_200C_206F_202A_206D_200C_202B_200D_206F_206C_206E_202D_206F_206C_202A_206A_202E_206C_206E_202A_206C_206A_206F_206F_202B_200D_202A_200B_206C_202C_206F_206A_200C_200B_200E_202B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-950319635)); - _202A_202D_202E_206B_206B_200C_206F_202A_206D_200C_202B_200D_206F_206C_206E_202D_206F_206C_202A_206A_202E_206C_206E_202A_206C_206A_206F_206F_202B_200D_202A_200B_206C_202C_206F_206A_200C_200B_200E_202B_202E(builder, MinDistance.ToString()); - _202A_202D_202E_206B_206B_200C_206F_202A_206D_200C_202B_200D_206F_206C_206E_202D_206F_206C_202A_206A_202E_206C_206E_202A_206C_206A_206F_206F_202B_200D_202A_200B_206C_202C_206F_206A_200C_200B_200E_202B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1555143771)); - _202A_202D_202E_206B_206B_200C_206F_202A_206D_200C_202B_200D_206F_206C_206E_202D_206F_206C_202A_206A_202E_206C_206E_202A_206C_206A_206F_206F_202B_200D_202A_200B_206C_202C_206F_206A_200C_200B_200E_202B_202E(builder, MaxDistance.ToString()); - _202A_202D_202E_206B_206B_200C_206F_202A_206D_200C_202B_200D_206F_206C_206E_202D_206F_206C_202A_206A_202E_206C_206E_202A_206C_206A_206F_206F_202B_200D_202A_200B_206C_202C_206F_206A_200C_200B_200E_202B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1075142813)); - _202A_202D_202E_206B_206B_200C_206F_202A_206D_200C_202B_200D_206F_206C_206E_202D_206F_206C_202A_206A_202E_206C_206E_202A_206C_206A_206F_206F_202B_200D_202A_200B_206C_202C_206F_206A_200C_200B_200E_202B_202E(builder, RecalculateNavmesh.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(BlacklistedArea? other) - { - int num = (((object)this == other) ? 284124876 : 284124877); - while (true) - { - int num2 = num; - int num3 = 284124874; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = 284124877; - break; - case 8: - return EqualityComparer<bool>.Default.Equals(RecalculateNavmesh, other.RecalculateNavmesh); - case 0: - num = ((!EqualityComparer<Vector3>.Default.Equals(Center, other.Center)) ? 284124879 : 284124875); - break; - case 4: - num = ((!_206C_206E_200C_200D_206A_202B_206C_202B_206B_206C_202B_200D_200D_202D_206D_206F_200B_202C_206C_206B_206F_200F_202C_202B_200F_200B_202C_202E_202C_202C_202B_200B_206B_202E_202D_202B_200B_206F_200E_206B_202E(EqualityContract, other.EqualityContract)) ? 284124879 : 284124867); - break; - case 7: - num = (((object)other == null) ? 284124879 : 284124878); - break; - case 1: - num = ((!EqualityComparer<float>.Default.Equals(MinDistance, other.MinDistance)) ? 284124879 : 284124872); - break; - case 9: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? 284124879 : 284124874); - break; - case 2: - num = ((!EqualityComparer<float>.Default.Equals(MaxDistance, other.MaxDistance)) ? 284124879 : 284124866); - break; - case 6: - return true; - case 5: - return false; - } - } - } - - bool IEquatable<BlacklistedArea>.Equals(BlacklistedArea? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202D_206B_206D_202C_206E_206A_206B_202C_206A_202C_206D_206F_202D_202A_200D_202B_200F_200C_206F_206A_200F_202E_206A_202A_202B_200F_200E_200F_206E_202A_202C_206B_206B_202D_202A_200E_200D_200B_200C_206C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206B_202A_200E_202B_202E_202D_202C_200F_206A_202A_202C_202B_206C_200D_206E_206A_202E_206E_202B_200B_206D_202E_202D_206C_206D_202E_202E_200E_202C_200F_200F_202D_206A_206C_202D_202B_202B_202C_206C_200E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202A_202D_202E_206B_206B_200C_206F_202A_206D_200C_202B_200D_206F_206C_206E_202D_206F_206C_202A_206A_202E_206C_206E_202A_206C_206A_206F_206F_202B_200D_202A_200B_206C_202C_206F_206A_200C_200B_200E_202B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200C_202C_202B_206A_206E_200C_206B_202B_202A_200E_206C_200C_206C_200D_200B_206D_206F_206D_206E_202A_200B_206E_206D_206E_200C_200C_200F_206E_202B_206A_206C_206E_202E_202E_202A_206F_206B_206C_202C_202E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202A_206B_206C_202B_206E_202B_200E_202D_202C_206F_206C_206D_200F_202E_206F_200C_200C_200F_202E_200E_200C_206E_202B_206C_200F_202A_206B_206B_202B_206A_206C_200B_200E_202A_200D_206D_200F_202D_206A_200E_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200C_200D_206A_206E_206E_206E_206A_200C_206F_202C_200C_200D_206D_200C_206B_202C_202D_202E_200E_200F_202D_206F_202B_200C_206C_202E_206C_200B_202D_202C_202C_200B_206A_200D_206C_200B_202E_202E_206C_202B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _206C_206E_200C_200D_206A_202B_206C_202B_206B_206C_202B_200D_200D_202D_206D_206F_200B_202C_206C_206B_206F_200F_202C_202B_200F_200B_202C_202E_202C_202C_202B_200B_206B_202E_202D_202B_200B_206F_200E_206B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return new AlternateLocation(Center + Vector3.Normalize(point - Center) * MaxDistance, RecalculateNavmesh); } } diff --git a/Questionable/Questionable.Controller.NavigationOverrides/BlacklistedPoint.cs b/Questionable/Questionable.Controller.NavigationOverrides/BlacklistedPoint.cs index a6eeee5..99dc4c4 100644 --- a/Questionable/Questionable.Controller.NavigationOverrides/BlacklistedPoint.cs +++ b/Questionable/Questionable.Controller.NavigationOverrides/BlacklistedPoint.cs @@ -1,185 +1,15 @@ -using System; -using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; namespace Questionable.Controller.NavigationOverrides; public sealed record BlacklistedPoint(ushort TerritoryId, Vector3 Original, Vector3 Replacement, float CheckDistance = 0.05f, bool RecalculateNavmesh = false) : IBlacklistedLocation { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206C_200E_206E_200B_206A_206E_206F_200E_206C_206B_206B_206B_202B_202B_200D_200E_202C_200D_206B_206E_206B_202A_206A_202C_202A_206D_200D_200F_206A_206F_200C_202D_200D_202C_200C_206B_206B_206F_206D_202C_202E(typeof(BlacklistedPoint).TypeHandle); - } - } - public AlternateLocation? AdjustPoint(Vector3 point) { - int num = ((!((point - Original).Length() > CheckDistance)) ? (-2043857747) : (-2043857748)); - while (true) + if ((point - Original).Length() > CheckDistance) { - int num2 = num; - int num3 = -2043857747; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_005c; - case 1: - return null; - case 0: - return new AlternateLocation(Replacement, RecalculateNavmesh); - } - continue; - IL_005c: - num = -2043857748; + return null; } - } - - AlternateLocation? IBlacklistedLocation.AdjustPoint(Vector3 point) - { - //ILSpy generated this explicit interface implementation from .override directive in AdjustPoint - return this.AdjustPoint(point); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202A_202C_200B_202E_202D_202A_206B_202C_206B_206E_206D_206C_206F_200C_200D_200E_206B_206B_206C_200F_206C_206F_206A_202B_202B_202B_206C_202C_200C_202D_200E_206D_202E_202C_206B_202C_200F_206A_202A_202C_202E(); - _200B_200D_206C_202B_206E_200F_206B_200D_206E_206C_206E_200F_202B_206E_206D_202D_200E_200C_200E_202B_206A_200E_206B_202E_200F_200E_200D_200C_202D_202B_200E_206A_202A_202A_200B_200D_202A_202D_200C_202D_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2024611645)); - _200B_200D_206C_202B_206E_200F_206B_200D_206E_206C_206E_200F_202B_206E_206D_202D_200E_200C_200E_202B_206A_200E_206B_202E_200F_200E_200D_200C_202D_202B_200E_206A_202A_202A_200B_200D_202A_202D_200C_202D_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(556540328)); - int num = ((!PrintMembers(stringBuilder)) ? 156676506 : 156676505); - while (true) - { - int num2 = num; - int num3 = 156676504; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 156676505; - break; - case 2: - _202C_202E_200D_206B_206D_206B_202C_200E_206E_200B_200E_206B_202B_202C_206A_200B_202C_200F_202C_206D_202E_202B_200B_200D_202B_200F_200B_202A_200F_202C_200F_200B_206B_206A_202B_200D_202C_200E_206B_206D_202E(stringBuilder, '}'); - return _202C_200D_206F_206C_202A_200E_200D_206F_206B_206A_202A_206A_202D_200C_200D_206C_200F_202A_202A_200E_206A_202D_206B_202A_200B_206E_200D_206B_202A_202B_200B_206D_202B_202D_206F_206F_202C_202A_206C_200D_202E((object)stringBuilder); - case 1: - _202C_202E_200D_206B_206D_206B_202C_200E_206E_200B_200E_206B_202B_202C_206A_200B_202C_200F_202C_206D_202E_202B_200B_200D_202B_200F_200B_202A_200F_202C_200F_200B_206B_206A_202B_200D_202C_200E_206B_206D_202E(stringBuilder, ' '); - num = 156676506; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206B_200C_200E_202A_202B_200F_200E_202D_206F_202A_206A_206B_202C_206D_206D_206E_206C_206B_200E_202E_200C_206A_202E_206D_200C_206A_200C_202E_200E_206F_200D_206D_202B_200B_206D_200C_200E_202A_200C_202D_202E(); - _200B_200D_206C_202B_206E_200F_206B_200D_206E_206C_206E_200F_202B_206E_206D_202D_200E_200C_200E_202B_206A_200E_206B_202E_200F_200E_200D_200C_202D_202B_200E_206A_202A_202A_200B_200D_202A_202D_200C_202D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2023728416)); - _200B_200D_206C_202B_206E_200F_206B_200D_206E_206C_206E_200F_202B_206E_206D_202D_200E_200C_200E_202B_206A_200E_206B_202E_200F_200E_200D_200C_202D_202B_200E_206A_202A_202A_200B_200D_202A_202D_200C_202D_202E(builder, TerritoryId.ToString()); - _200B_200D_206C_202B_206E_200F_206B_200D_206E_206C_206E_200F_202B_206E_206D_202D_200E_200C_200E_202B_206A_200E_206B_202E_200F_200E_200D_200C_202D_202B_200E_206A_202A_202A_200B_200D_202A_202D_200C_202D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-268848232)); - _200B_200D_206C_202B_206E_200F_206B_200D_206E_206C_206E_200F_202B_206E_206D_202D_200E_200C_200E_202B_206A_200E_206B_202E_200F_200E_200D_200C_202D_202B_200E_206A_202A_202A_200B_200D_202A_202D_200C_202D_202E(builder, Original.ToString()); - _200B_200D_206C_202B_206E_200F_206B_200D_206E_206C_206E_200F_202B_206E_206D_202D_200E_200C_200E_202B_206A_200E_206B_202E_200F_200E_200D_200C_202D_202B_200E_206A_202A_202A_200B_200D_202A_202D_200C_202D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1594334695)); - _200B_200D_206C_202B_206E_200F_206B_200D_206E_206C_206E_200F_202B_206E_206D_202D_200E_200C_200E_202B_206A_200E_206B_202E_200F_200E_200D_200C_202D_202B_200E_206A_202A_202A_200B_200D_202A_202D_200C_202D_202E(builder, Replacement.ToString()); - _200B_200D_206C_202B_206E_200F_206B_200D_206E_206C_206E_200F_202B_206E_206D_202D_200E_200C_200E_202B_206A_200E_206B_202E_200F_200E_200D_200C_202D_202B_200E_206A_202A_202A_200B_200D_202A_202D_200C_202D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-453523176)); - _200B_200D_206C_202B_206E_200F_206B_200D_206E_206C_206E_200F_202B_206E_206D_202D_200E_200C_200E_202B_206A_200E_206B_202E_200F_200E_200D_200C_202D_202B_200E_206A_202A_202A_200B_200D_202A_202D_200C_202D_202E(builder, CheckDistance.ToString()); - _200B_200D_206C_202B_206E_200F_206B_200D_206E_206C_206E_200F_202B_206E_206D_202D_200E_200C_200E_202B_206A_200E_206B_202E_200F_200E_200D_200C_202D_202B_200E_206A_202A_202A_200B_200D_202A_202D_200C_202D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-901239)); - _200B_200D_206C_202B_206E_200F_206B_200D_206E_206C_206E_200F_202B_206E_206D_202D_200E_200C_200E_202B_206A_200E_206B_202E_200F_200E_200D_200C_202D_202B_200E_206A_202A_202A_200B_200D_202A_202D_200C_202D_202E(builder, RecalculateNavmesh.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(BlacklistedPoint? other) - { - int num = (((object)this == other) ? 1826590402 : 1826590405); - while (true) - { - int num2 = num; - int num3 = 1826590402; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return true; - case 5: - num = ((!EqualityComparer<Vector3>.Default.Equals(Original, other.Original)) ? 1826590403 : 1826590410); - break; - case 2: - num = ((!EqualityComparer<float>.Default.Equals(CheckDistance, other.CheckDistance)) ? 1826590403 : 1826590406); - break; - case 9: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? 1826590403 : 1826590407); - break; - case 1: - return false; - case 8: - num = ((!EqualityComparer<Vector3>.Default.Equals(Replacement, other.Replacement)) ? 1826590403 : 1826590400); - break; - case 6: - num = ((!_206A_206A_200D_202E_200D_206E_206C_202B_200C_200E_202C_202C_206D_206E_200B_206C_206F_202A_206B_202D_200F_206A_206E_202A_202A_206D_200C_202E_202D_202C_202C_206E_206B_206B_206A_202A_202D_200B_202B_202E(EqualityContract, other.EqualityContract)) ? 1826590403 : 1826590411); - break; - case 3: - num = 1826590405; - break; - case 7: - num = (((object)other == null) ? 1826590403 : 1826590404); - break; - case 4: - return EqualityComparer<bool>.Default.Equals(RecalculateNavmesh, other.RecalculateNavmesh); - } - } - } - - bool IEquatable<BlacklistedPoint>.Equals(BlacklistedPoint? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206C_200E_206E_200B_206A_206E_206F_200E_206C_206B_206B_206B_202B_202B_200D_200E_202C_200D_206B_206E_206B_202A_206A_202C_202A_206D_200D_200F_206A_206F_200C_202D_200D_202C_200C_206B_206B_206F_206D_202C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202A_202C_200B_202E_202D_202A_206B_202C_206B_206E_206D_206C_206F_200C_200D_200E_206B_206B_206C_200F_206C_206F_206A_202B_202B_202B_206C_202C_200C_202D_200E_206D_202E_202C_206B_202C_200F_206A_202A_202C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200B_200D_206C_202B_206E_200F_206B_200D_206E_206C_206E_200F_202B_206E_206D_202D_200E_200C_200E_202B_206A_200E_206B_202E_200F_200E_200D_200C_202D_202B_200E_206A_202A_202A_200B_200D_202A_202D_200C_202D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202C_202E_200D_206B_206D_206B_202C_200E_206E_200B_200E_206B_202B_202C_206A_200B_202C_200F_202C_206D_202E_202B_200B_200D_202B_200F_200B_202A_200F_202C_200F_200B_206B_206A_202B_200D_202C_200E_206B_206D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202C_200D_206F_206C_202A_200E_200D_206F_206B_206A_202A_206A_202D_200C_200D_206C_200F_202A_202A_200E_206A_202D_206B_202A_200B_206E_200D_206B_202A_202B_200B_206D_202B_202D_206F_206F_202C_202A_206C_200D_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206B_200C_200E_202A_202B_200F_200E_202D_206F_202A_206A_206B_202C_206D_206D_206E_206C_206B_200E_202E_200C_206A_202E_206D_200C_206A_200C_202E_200E_206F_200D_206D_202B_200B_206D_200C_200E_202A_200C_202D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _206A_206A_200D_202E_200D_206E_206C_202B_200C_200E_202C_202C_206D_206E_200B_206C_206F_202A_206B_202D_200F_206A_206E_202A_202A_206D_200C_202E_202D_202C_202C_206E_206B_206B_206A_202A_202D_200B_202B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return new AlternateLocation(Replacement, RecalculateNavmesh); } } diff --git a/Questionable/Questionable.Controller.NavigationOverrides/MovementOverrideController.cs b/Questionable/Questionable.Controller.NavigationOverrides/MovementOverrideController.cs index afa8883..c94c456 100644 --- a/Questionable/Questionable.Controller.NavigationOverrides/MovementOverrideController.cs +++ b/Questionable/Questionable.Controller.NavigationOverrides/MovementOverrideController.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Dalamud.Plugin.Services; using Microsoft.Extensions.Logging; @@ -24,78 +23,26 @@ internal sealed class MovementOverrideController _logger = logger; } - [MethodImpl(MethodImplOptions.NoInlining)] public (List<Vector3>, bool) AdjustPath(List<Vector3> navPoints) { - using (List<IBlacklistedLocation>.Enumerator enumerator = BlacklistedLocations.GetEnumerator()) + foreach (IBlacklistedLocation blacklistedLocation in BlacklistedLocations) { - int num = -1572847159; - AlternateLocation alternateLocation = default(AlternateLocation); - IBlacklistedLocation current = default(IBlacklistedLocation); - int num7 = default(int); - while (true) + if (_clientState.TerritoryType != blacklistedLocation.TerritoryId) { - int num2 = num; - int num3 = -1572847156; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - alternateLocation = current.AdjustPoint(navPoints[num7]); - num = ((!(alternateLocation != null)) ? (-1572847155) : (-1572847163)); - break; - case 5: - num = (enumerator.MoveNext() ? (-1572847154) : (-1572847160)); - break; - case 0: - num = -1572847159; - break; - case 8: - num7 = 0; - num = -1572847153; - break; - case 2: - current = enumerator.Current; - num = ((_206E_206C_202E_202C_206B_200E_206A_206D_200F_202E_202B_202C_200B_202D_202B_202C_206E_202C_206E_200B_202E_206E_206C_202E_206D_202E_202E_206B_202E_202A_200C_202A_206F_200D_206A_202D_206D_202E_206A_202D_202E(_clientState) != current.TerritoryId) ? (-1572847159) : (-1572847164)); - break; - case 3: - num = ((num7 < navPoints.Count) ? (-1572847158) : (-1572847159)); - break; - case 7: - { - int num11 = num7; - num3 = 1; - num4 = num11; - return (navPoints.Take((num4 | num3) + (num4 & num3)).ToList(), true); - } - case 1: - { - int num8 = num7; - num3 = 1; - num4 = num8; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - num7 = num9 + (num10 + num10); - num = -1572847153; - break; - } - case 9: - _200E_202B_200B_200F_206D_202C_202E_200D_200C_200C_202B_202D_200F_202B_206A_200E_202A_206C_200B_202D_202A_200D_206F_200E_200D_200F_200E_202E_202D_200D_200F_200D_202E_202E_202A_202A_206B_202E_206A_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1083711634), new object[2] - { - navPoints[num7].ToString(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2120763774), _202E_206B_200B_206E_202B_206F_202D_206B_202C_202C_202A_200F_206E_206B_202A_200C_200E_202E_200C_206A_202B_202C_200D_200E_202A_202B_202E_200E_200B_200C_202C_206C_206B_202A_202C_200D_206F_202D_206F_206E_202E()), - alternateLocation - }); - navPoints[num7] = alternateLocation.Point; - num = ((!alternateLocation.RecalculateNavmesh) ? (-1572847155) : (-1572847157)); - break; - case 4: - goto end_IL_0017; - } continue; - end_IL_0017: - break; + } + for (int i = 0; i < navPoints.Count; i++) + { + AlternateLocation alternateLocation = blacklistedLocation.AdjustPoint(navPoints[i]); + if (alternateLocation != null) + { + _logger.LogDebug("Fudging navmesh point from {Original} to {Replacement} in blacklisted area", navPoints[i].ToString("G", CultureInfo.InvariantCulture), alternateLocation); + navPoints[i] = alternateLocation.Point; + if (alternateLocation.RecalculateNavmesh) + { + return (navPoints.Take(i + 1).ToList(), true); + } + } } } return (navPoints, false); @@ -140,19 +87,4 @@ internal sealed class MovementOverrideController span[30] = new BlacklistedPoint(1186, new Vector3(287.75f, 51.25f, 172f), new Vector3(288.875f, 50.75f, 166.25f)); BlacklistedLocations = list; } - - static uint _206E_206C_202E_202C_206B_200E_206A_206D_200F_202E_202B_202C_200B_202D_202B_202C_206E_202C_206E_200B_202E_206E_206C_202E_206D_202E_202E_206B_202E_202A_200C_202A_206F_200D_206A_202D_206D_202E_206A_202D_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static CultureInfo _202E_206B_200B_206E_202B_206F_202D_206B_202C_202C_202A_200F_206E_206B_202A_200C_200E_202E_200C_206A_202B_202C_200D_200E_202A_202B_202E_200E_200B_200C_202C_206C_206B_202A_202C_200D_206F_202D_206F_206E_202E() - { - return CultureInfo.InvariantCulture; - } - - static void _200E_202B_200B_200F_206D_202C_202E_200D_200C_200C_202B_202D_200F_202B_206A_200E_202A_206C_200B_202D_202A_200D_206F_200E_200D_200F_200E_202E_202D_200D_200F_200D_202E_202E_202A_202A_206B_202E_206A_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } } diff --git a/Questionable/Questionable.Controller.Steps.Common/AbstractDelayedTaskExecutor.cs b/Questionable/Questionable.Controller.Steps.Common/AbstractDelayedTaskExecutor.cs index 303d1e8..e6e2fb4 100644 --- a/Questionable/Questionable.Controller.Steps.Common/AbstractDelayedTaskExecutor.cs +++ b/Questionable/Questionable.Controller.Steps.Common/AbstractDelayedTaskExecutor.cs @@ -21,7 +21,7 @@ internal abstract class AbstractDelayedTaskExecutor<T> : TaskExecutor<T> where T protected sealed override bool Start() { bool result = StartInternal(); - _continueAtMs = _200D_206E_200D_200E_202D_202A_206F_202D_200D_206F_206D_202E_202D_202C_200B_200B_206E_200D_202B_206A_200C_200C_202E_206F_206D_200B_200D_206A_200E_202D_200B_200D_202D_202E_206D_200E_202C_206F_200C_202C_202E() + (long)Delay.TotalMilliseconds; + _continueAtMs = Environment.TickCount64 + (long)Delay.TotalMilliseconds; return result; } @@ -29,36 +29,15 @@ internal abstract class AbstractDelayedTaskExecutor<T> : TaskExecutor<T> where T public override ETaskResult Update() { - int num = ((_200D_206E_200D_200E_202D_202A_206F_202D_200D_206F_206D_202E_202D_202C_200B_200B_206E_200D_202B_206A_200C_200C_202E_206F_206D_200B_200D_206A_200E_202D_200B_200D_202D_202E_206D_200E_202C_206F_200C_202C_202E() >= _continueAtMs) ? 741757895 : 741757892); - while (true) + if (Environment.TickCount64 < _continueAtMs) { - int num2 = num; - int num3 = 741757894; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004d; - case 1: - return UpdateInternal(); - case 2: - return ETaskResult.StillRunning; - } - continue; - IL_004d: - num = 741757892; + return ETaskResult.StillRunning; } + return UpdateInternal(); } protected virtual ETaskResult UpdateInternal() { return ETaskResult.TaskComplete; } - - static long _200D_206E_200D_200E_202D_202A_206F_202D_200D_206F_206D_202E_202D_202C_200B_200B_206E_200D_202B_206A_200C_200C_202E_206F_206D_200B_200D_206A_200E_202D_200B_200D_202D_202E_206D_200E_202C_206F_200C_202C_202E() - { - return Environment.TickCount64; - } } diff --git a/Questionable/Questionable.Controller.Steps.Common/Mount.cs b/Questionable/Questionable.Controller.Steps.Common/Mount.cs index 78d37d4..42c9f20 100644 --- a/Questionable/Questionable.Controller.Steps.Common/Mount.cs +++ b/Questionable/Questionable.Controller.Steps.Common/Mount.cs @@ -1,11 +1,8 @@ using System; -using System.Collections.Generic; using System.Numerics; using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.Character; @@ -20,28 +17,17 @@ internal static class Mount { internal sealed record MountTask : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206E_202A_200B_206E_202B_206B_202B_206B_200B_206D_206C_206B_206B_202D_206B_200E_202C_200B_202E_200F_202A_200B_202A_200E_200C_206C_206C_206D_200B_206A_206E_206F_202A_200D_200C_200E_200C_202C_202E_202E(typeof(MountTask).TypeHandle); - } - } - public ushort TerritoryId { get; init; } public EMountIf MountIf { get; init; } public FFXIVClientStructs.FFXIV.Common.Math.Vector3? Position { get; } - [MethodImpl(MethodImplOptions.NoInlining)] public MountTask(ushort TerritoryId, EMountIf MountIf, FFXIVClientStructs.FFXIV.Common.Math.Vector3? Position = null) { this.TerritoryId = TerritoryId; this.MountIf = MountIf; - this.Position = ((MountIf == EMountIf.AwayFromPosition) ? new FFXIVClientStructs.FFXIV.Common.Math.Vector3?(Position ?? throw _202C_200E_202C_200D_200F_206F_202E_206F_202A_202E_202D_206A_200D_206A_206D_200C_200C_206A_206E_206B_200B_200B_200B_200D_206A_202A_200F_206A_202B_202E_200E_200D_202A_202A_206F_200E_200C_202B_200D_206A_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1692510639))) : ((FFXIVClientStructs.FFXIV.Common.Math.Vector3?)null)); + this.Position = ((MountIf == EMountIf.AwayFromPosition) ? new FFXIVClientStructs.FFXIV.Common.Math.Vector3?(Position ?? throw new ArgumentNullException("Position")) : ((FFXIVClientStructs.FFXIV.Common.Math.Vector3?)null)); base._002Ector(); } @@ -50,72 +36,9 @@ internal static class Mount return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-9684774); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206A_206A_206A_206C_206E_200C_200D_202A_200C_200C_202B_202D_202A_206A_202C_206E_206D_206F_202A_206E_206F_202E_202E_206E_200E_206B_202A_200F_202B_202C_206B_202B_200F_200C_206F_206D_200B_200B_200C_206D_202E(); - _202B_202A_202E_202B_206B_206C_202E_200D_202C_200F_206D_202A_206E_202E_202A_202A_200E_200D_200F_206A_202D_202A_200C_202D_202B_200C_206B_206F_200B_202A_206B_202C_206C_202B_200E_200C_202B_200E_206B_200F_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-871596524)); - _202B_202A_202E_202B_206B_206C_202E_200D_202C_200F_206D_202A_206E_202E_202A_202A_200E_200D_200F_206A_202D_202A_200C_202D_202B_200C_206B_206F_200B_202A_206B_202C_206C_202B_200E_200C_202B_200E_206B_200F_202E(builder, TerritoryId.ToString()); - _202B_202A_202E_202B_206B_206C_202E_200D_202C_200F_206D_202A_206E_202E_202A_202A_200E_200D_200F_206A_202D_202A_200C_202D_202B_200C_206B_206F_200B_202A_206B_202C_206C_202B_200E_200C_202B_200E_206B_200F_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1100545370)); - _202B_202A_202E_202B_206B_206C_202E_200D_202C_200F_206D_202A_206E_202E_202A_202A_200E_200D_200F_206A_202D_202A_200C_202D_202B_200C_206B_206F_200B_202A_206B_202C_206C_202B_200E_200C_202B_200E_206B_200F_202E(builder, MountIf.ToString()); - _202B_202A_202E_202B_206B_206C_202E_200D_202C_200F_206D_202A_206E_202E_202A_202A_200E_200D_200F_206A_202D_202A_200C_202D_202B_200C_206B_206F_200B_202A_206B_202C_206C_202B_200E_200C_202B_200E_206B_200F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1993330002)); - _202B_202A_202E_202B_206B_206C_202E_200D_202C_200F_206D_202A_206E_202E_202A_202A_200E_200D_200F_206A_202D_202A_200C_202D_202B_200C_206B_206F_200B_202A_206B_202C_206C_202B_200E_200C_202B_200E_206B_200F_202E(builder, Position.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(MountTask? other) - { - int num = (((object)this == other) ? (-244243578) : (-244243579)); - while (true) - { - int num2 = num; - int num3 = -244243580; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -244243579; - break; - case 5: - return EqualityComparer<FFXIVClientStructs.FFXIV.Common.Math.Vector3?>.Default.Equals(Position, other.Position); - case 1: - num = (((object)other == null) ? (-244243582) : (-244243584)); - break; - case 6: - return false; - case 3: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? (-244243582) : (-244243581)); - break; - case 4: - num = ((!_206A_206E_206B_202B_206B_206A_200C_200D_202E_206B_202B_200B_206B_202E_202B_206A_206B_202A_200B_206D_202E_202A_202B_202B_206A_200F_202E_206A_206D_206C_206B_206F_206B_202E_202A_202D_202D_200F_202C_202B_202E(EqualityContract, other.EqualityContract)) ? (-244243582) : (-244243577)); - break; - case 2: - return true; - case 7: - num = ((!EqualityComparer<EMountIf>.Default.Equals(MountIf, other.MountIf)) ? (-244243582) : (-244243583)); - break; - } - } - } - - bool IEquatable<MountTask>.Equals(MountTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); + return "Mount"; } [CompilerGenerated] @@ -125,150 +48,47 @@ internal static class Mount MountIf = this.MountIf; Position = this.Position; } - - static ArgumentNullException _202C_200E_202C_200D_200F_206F_202E_206F_202A_202E_202D_206A_200D_206A_206D_200C_200C_206A_206E_206B_200B_200B_200B_200D_206A_202A_200F_206A_202B_202E_200E_200D_202A_202A_206F_200E_200C_202B_200D_206A_202E(string P_0) - { - return new ArgumentNullException(P_0); - } - - static Type _206E_202A_200B_206E_202B_206B_202B_206B_200B_206D_206C_206B_206B_202D_206B_200E_202C_200B_202E_200F_202A_200B_202A_200E_200C_206C_206C_206D_200B_206A_206E_206F_202A_200D_200C_200E_200C_202C_202E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206A_206A_206A_206C_206E_200C_200D_202A_200C_200C_202B_202D_202A_206A_202C_206E_206D_206F_202A_206E_206F_202E_202E_206E_200E_206B_202A_200F_202B_202C_206B_202B_200F_200C_206F_206D_200B_200B_200C_206D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202B_202A_202E_202B_206B_206C_202E_200D_202C_200F_206D_202A_206E_202E_202A_202A_200E_200D_200F_206A_202D_202A_200C_202D_202B_200C_206B_206F_200B_202A_206B_202C_206C_202B_200E_200C_202B_200E_206B_200F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _206A_206E_206B_202B_206B_206A_200C_200D_202E_206B_202B_200B_206B_202E_202B_206A_206B_202A_200B_206D_202E_202A_202B_202B_206A_200F_202E_206A_206D_206C_206B_206F_206B_202E_202A_202D_202D_200F_202C_202B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } } internal sealed class MountEvaluator(GameFunctions gameFunctions, ICondition condition, TerritoryData territoryData, IClientState clientState, IObjectTable objectTable, ILogger<MountEvaluator> logger) { - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe MountResult EvaluateMountState(MountTask task, bool dryRun, ref long retryAtMs) { - int num = ((!_200D_200F_200B_200B_200E_206D_206D_200C_206E_200C_202A_206D_202C_206B_206E_200F_206F_202D_202B_200B_202A_206B_206A_202A_202E_202D_200E_200F_202B_206C_200D_206C_206F_202D_206D_206E_202A_206D_206F_202E_202E(condition, ConditionFlag.Mounted)) ? (-1122253637) : (-1122253641)); - float num8 = default(float); - LogLevel logLevel = default(LogLevel); - while (true) + if (condition[ConditionFlag.Mounted]) { - int num2 = num; - int num3 = -1122253647; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num7; - switch (num5 - (num6 + num6)) - { - case 14: - num = ((!(num8 < 30f)) ? (-1122253635) : (-1122253640)); - break; - case 3: - num7 = 6; - goto IL_00b6; - case 8: - _202B_202E_200B_202E_206F_206F_202E_206A_200C_202E_206A_202E_206E_200D_200C_200D_200B_202E_200C_200E_206D_200C_202B_202D_206E_206B_206B_206C_202C_200C_206D_200B_202D_206E_200C_202E_206B_206E_200B_202C_202E((ILogger)logger, logLevel, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-353154207), new object[1] { task.TerritoryId }); - num = (_200D_200F_200B_200B_200E_206D_206D_200C_206E_200C_202A_206D_202C_206B_206E_200F_206F_202D_202B_200B_202A_206B_206A_202A_202E_202D_200E_200F_202B_206C_200D_206C_206F_202D_206D_206E_202A_206D_206F_202E_202E(condition, ConditionFlag.InCombat) ? (-1122253644) : (-1122253643)); - break; - case 4: - num = ((!dryRun) ? (-1122253642) : (-1122253663)); - break; - case 5: - return MountResult.WhenOutOfCombat; - case 12: - _202B_202E_200B_202E_206F_206F_202E_206A_200C_202E_206A_202E_206E_200D_200C_200D_200B_202E_200C_200E_206D_200C_202B_202D_206E_206B_206B_206C_202C_200C_206D_200B_202D_206E_200C_202E_206B_206E_200B_202C_202E((ILogger)logger, logLevel, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1123067859), new object[2] { num8, task.TerritoryId }); - num = -1122253639; - break; - case 2: - _202B_202E_200B_202E_206F_206F_202E_206A_200C_202E_206A_202E_206E_200D_200C_200D_200B_202E_200C_200E_206D_200C_202B_202D_206E_206B_206B_206C_202C_200C_206D_200B_202D_206E_200C_202E_206B_206E_200B_202C_202E((ILogger)logger, logLevel, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(603618635), Array.Empty<object>()); - return MountResult.DontMount; - case 11: - num7 = 1; - goto IL_00b6; - case 6: - return MountResult.DontMount; - case 10: - num = (dryRun ? (-1122253646) : (-1122253638)); - break; - case 17: - { - IPlayerCharacter playerCharacter = _206D_202A_206A_206C_206E_206B_206D_200F_200D_206C_202B_200F_206D_202B_202B_202A_200F_200D_206A_202D_200F_200C_206B_202A_202E_200B_202C_206B_206E_206D_206D_200C_202E_206B_200C_200F_200B_202B_202C_206F_202E(objectTable); - num8 = System.Numerics.Vector3.Distance((FFXIVClientStructs.FFXIV.Common.Math.Vector3)((playerCharacter != null) ? _206A_202D_206A_206C_202C_206D_200C_200D_202A_206C_202B_202D_206C_206D_206C_206C_202E_206D_200C_202C_206E_206B_202A_206C_200B_200B_206B_200E_206D_202D_200F_202D_206B_200F_206F_202B_202C_206B_200D_200D_202E((IGameObject)playerCharacter) : ((System.Numerics.Vector3)FFXIVClientStructs.FFXIV.Common.Math.Vector3.Zero)), task.Position.GetValueOrDefault()); - num = ((task.TerritoryId != _200D_200E_200C_202C_200D_202A_200E_206A_202B_206E_202E_206B_200B_202B_200D_202E_200C_206F_202A_206A_206D_206D_202B_206F_202A_206B_206F_200E_206E_200D_202C_206A_202C_202D_206C_206B_200E_200C_200B_200D_202E(clientState)) ? (-1122253635) : (-1122253633)); - break; - } - case 7: - return MountResult.Mount; - case 1: - num = ((task.MountIf != EMountIf.AwayFromPosition) ? (-1122253639) : (-1122253664)); - break; - case 15: - _202B_202E_200B_202E_206F_206F_202E_206A_200C_202E_206A_202E_206E_200D_200C_200D_200B_202E_200C_200E_206D_200C_202B_202D_206E_206B_206B_206C_202C_200C_206D_200B_202D_206E_200C_202E_206B_206E_200B_202C_202E((ILogger)logger, logLevel, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1312445464), Array.Empty<object>()); - return MountResult.DontMount; - case 0: - num = -1122253641; - break; - case 13: - num = ((!gameFunctions.HasStatusPreventingMount()) ? (-1122253648) : (-1122253634)); - break; - case 9: - num = (FFXIVClientStructs.FFXIV.Client.Game.Conditions.Instance()->Diving ? (-1122253635) : (-1122253645)); - break; - case 18: - _202B_202E_200B_202E_206F_206F_202E_206A_200C_202E_206A_202E_206E_200D_200C_200D_200B_202E_200C_200E_206D_200C_202B_202D_206E_206B_206B_206C_202C_200C_206D_200B_202D_206E_200C_202E_206B_206E_200B_202C_202E((ILogger)logger, logLevel, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2123178136), new object[1] { task.TerritoryId }); - return MountResult.DontMount; - case 16: - { - retryAtMs = _202A_206E_202A_202E_200C_200F_200E_206C_206A_206A_202A_206A_206C_202D_200D_202D_200B_202B_206C_206B_206A_200F_200C_206D_206C_206C_200E_200B_200B_202A_206C_202D_200F_200D_206E_200D_200D_206F_206A_202D_202E() + 500; - num = -1122253642; - break; - } - IL_00b6: - logLevel = (LogLevel)num7; - num = (territoryData.CanUseMount(task.TerritoryId) ? (-1122253636) : (-1122253661)); - break; - } + return MountResult.DontMount; } - } - - static bool _200D_200F_200B_200B_200E_206D_206D_200C_206E_200C_202A_206D_202C_206B_206E_200F_206F_202D_202B_200B_202A_206B_206A_202A_202E_202D_200E_200F_202B_206C_200D_206C_206F_202D_206D_206E_202A_206D_206F_202E_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static void _202B_202E_200B_202E_206F_206F_202E_206A_200C_202E_206A_202E_206E_200D_200C_200D_200B_202E_200C_200E_206D_200C_202B_202D_206E_206B_206B_206C_202C_200C_206D_200B_202D_206E_200C_202E_206B_206E_200B_202C_202E(ILogger P_0, LogLevel P_1, string P_2, object[] P_3) - { - P_0.Log(P_1, P_2, P_3); - } - - static IPlayerCharacter _206D_202A_206A_206C_206E_206B_206D_200F_200D_206C_202B_200F_206D_202B_202B_202A_200F_200D_206A_202D_200F_200C_206B_202A_202E_200B_202C_206B_206E_206D_206D_200C_202E_206B_200C_200F_200B_202B_202C_206F_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static System.Numerics.Vector3 _206A_202D_206A_206C_202C_206D_200C_200D_202A_206C_202B_202D_206C_206D_206C_206C_202E_206D_200C_202C_206E_206B_202A_206C_200B_200B_206B_200E_206D_202D_200F_202D_206B_200F_206F_202B_202C_206B_200D_200D_202E(IGameObject P_0) - { - return P_0.Position; - } - - static uint _200D_200E_200C_202C_200D_202A_200E_206A_202B_206E_202E_206B_200B_202B_200D_202E_200C_206F_202A_206A_206D_206D_202B_206F_202A_206B_206F_200E_206E_200D_202C_206A_202C_202D_206C_206B_200E_200C_200B_200D_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static long _202A_206E_202A_202E_200C_200F_200E_206C_206A_206A_202A_206A_206C_202D_200D_202D_200B_202B_206C_206B_206A_200F_200C_206D_206C_206C_200E_200B_200B_202A_206C_202D_200F_200D_206E_200D_200D_206F_206A_202D_202E() - { - return Environment.TickCount64; + LogLevel logLevel = ((!dryRun) ? LogLevel.Debug : LogLevel.None); + if (!territoryData.CanUseMount(task.TerritoryId)) + { + logger.Log(logLevel, "Can't use mount in current territory {Id}", task.TerritoryId); + return MountResult.DontMount; + } + if (gameFunctions.HasStatusPreventingMount()) + { + logger.Log(logLevel, "Can't mount due to status preventing sprint or mount"); + return MountResult.DontMount; + } + if (task.MountIf == EMountIf.AwayFromPosition) + { + float num = System.Numerics.Vector3.Distance((FFXIVClientStructs.FFXIV.Common.Math.Vector3)(objectTable.LocalPlayer?.Position ?? ((System.Numerics.Vector3)FFXIVClientStructs.FFXIV.Common.Math.Vector3.Zero)), task.Position.GetValueOrDefault()); + if (task.TerritoryId == clientState.TerritoryType && num < 30f && !FFXIVClientStructs.FFXIV.Client.Game.Conditions.Instance()->Diving) + { + logger.Log(logLevel, "Not using mount, as we're close to the target"); + return MountResult.DontMount; + } + logger.Log(logLevel, "Want to use mount if away from destination ({Distance} yalms), trying (in territory {Id})...", num, task.TerritoryId); + } + logger.Log(logLevel, "Want to use mount, trying (in territory {Id})...", task.TerritoryId); + if (!condition[ConditionFlag.InCombat]) + { + if (dryRun) + { + retryAtMs = Environment.TickCount64 + 500; + } + return MountResult.Mount; + } + return MountResult.WhenOutOfCombat; } } @@ -284,96 +104,51 @@ internal static class Mount return mountEvaluator.EvaluateMountState(base.Task, dryRun: false, ref _retryAtMs) == MountResult.Mount; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - int num = ((!_mountTriggered) ? (-694294955) : (-694294952)); - while (true) + if (_mountTriggered && !condition[ConditionFlag.Mounted] && Environment.TickCount64 > _retryAtMs) { - int num2 = num; - int num3 = -694294945; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + logger.LogDebug("Not mounted, retrying..."); + _mountTriggered = false; + _retryAtMs = long.MaxValue; + } + if (!_mountTriggered) + { + if (gameFunctions.HasStatusPreventingMount()) { - case 2: - num = ((!gameFunctions.HasStatusPreventingMount()) ? (-694294957) : (-694294950)); - break; - case 3: - ResetProgressTimer(); + logger.LogDebug("Can't mount due to status preventing sprint or mount"); return ETaskResult.TaskComplete; - case 5: - _200D_206B_202E_200F_200E_202A_200B_202B_200F_206A_202C_206D_202E_202C_200F_202A_206E_202A_202C_202A_202A_200E_206C_202A_206A_202E_206E_200F_202B_200B_200F_202A_206F_206C_200F_202E_202A_206A_202B_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1137964517), Array.Empty<object>()); - return ETaskResult.TaskComplete; - case 6: - _200D_206B_202E_200F_200E_202A_200B_202B_200F_206A_202C_206D_202E_202C_200F_202A_206E_202A_202C_202A_202A_200E_206C_202A_206A_202E_206E_200F_202B_200B_200F_202A_206F_206C_200F_202E_202A_206A_202B_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(614136280), Array.Empty<object>()); + } + base.ProgressContext = InteractionProgressContext.FromActionUse(() => _mountTriggered = gameFunctions.Mount()); + ResetProgressTimer(); + _retryAtMs = Environment.TickCount64 + 5000; + return ETaskResult.StillRunning; + } + if (condition[ConditionFlag.Mounted]) + { + ResetProgressTimer(); + return ETaskResult.TaskComplete; + } + if (base.ProgressContext != null) + { + if (base.ProgressContext.WasInterrupted()) + { + logger.LogDebug("Mount was interrupted"); _mountTriggered = false; - _retryAtMs = long.MaxValue; - num = -694294955; - break; - case 11: - ResetProgressTimer(); - num = -694294945; - break; - case 10: - num = (_mountTriggered ? (-694294946) : (-694294947)); - break; - case 9: - num = ((!base.ProgressContext.WasInterrupted()) ? (-694294958) : (-694294953)); - break; - case 15: - num = ((base.ProgressContext == null) ? (-694294945) : (-694294954)); - break; - case 14: - num = ((_206D_202C_200D_206E_202D_206D_206D_206B_202B_200F_200E_206C_202B_206B_200F_206E_202C_206F_200F_206E_206B_202C_202E_206F_206A_202B_202D_202A_206F_206A_200F_202B_206F_202E_202A_206C_200D_202A_206D_202E_202E() <= _retryAtMs) ? (-694294955) : (-694294951)); - break; - case 7: - num = (_200E_206F_200E_202D_200C_206F_200F_202C_202B_200F_202B_200E_206D_200F_202D_202D_206F_202D_200E_200D_200E_206A_206B_206F_202C_202E_202D_202B_206E_206E_206C_206A_206C_200E_200C_200C_206D_200B_200B_200C_202E(condition, ConditionFlag.Mounted) ? (-694294955) : (-694294959)); - break; - case 13: - num = ((!base.ProgressContext.WasSuccessful()) ? (-694294945) : (-694294956)); - break; - case 1: - num = ((!_200E_206F_200E_202D_200C_206F_200F_202C_202B_200F_202B_200E_206D_200F_202D_202D_206F_202D_200E_200D_200E_206A_206B_206F_202C_202E_202D_202B_206E_206E_206C_206A_206C_200E_200C_200C_206D_200B_200B_200C_202E(condition, ConditionFlag.Mounted)) ? (-694294960) : (-694294948)); - break; - case 4: - num = -694294952; - break; - case 8: - _200D_206B_202E_200F_200E_202A_200B_202B_200F_206A_202C_206D_202E_202C_200F_202A_206E_202A_202C_202A_202A_200E_206C_202A_206A_202E_206E_200F_202B_200B_200F_202A_206F_206C_200F_202E_202A_206A_202B_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1257322524), Array.Empty<object>()); - _mountTriggered = false; - return ETaskResult.StillRunning; - case 0: - return ETaskResult.StillRunning; - case 12: - base.ProgressContext = InteractionProgressContext.FromActionUse(() => _mountTriggered = gameFunctions.Mount()); - ResetProgressTimer(); - _retryAtMs = _206D_202C_200D_206E_202D_206D_206D_206B_202B_200F_200E_206C_202B_206B_200F_206E_202C_206F_200F_206E_206B_202C_202E_206F_206A_202B_202D_202A_206F_206A_200F_202B_206F_202E_202A_206C_200D_202A_206D_202E_202E() + 5000; return ETaskResult.StillRunning; } + if (base.ProgressContext.WasSuccessful()) + { + ResetProgressTimer(); + } } + return ETaskResult.StillRunning; } public override bool ShouldInterruptOnDamage() { return false; } - - static bool _200E_206F_200E_202D_200C_206F_200F_202C_202B_200F_202B_200E_206D_200F_202D_202D_206F_202D_200E_200D_200E_206A_206B_206F_202C_202E_202D_202B_206E_206E_206C_206A_206C_200E_200C_200C_206D_200B_200B_200C_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static long _206D_202C_200D_206E_202D_206D_206D_206B_202B_200F_200E_206C_202B_206B_200F_206E_202C_206F_200F_206E_206B_202C_202E_206F_206A_202B_202D_202A_206F_206A_200F_202B_206F_202E_202A_206C_200D_202A_206D_202E_202E() - { - return Environment.TickCount64; - } - - static void _200D_206B_202E_200F_200E_202A_200B_202B_200F_206A_202C_206D_202E_202C_200F_202A_206E_202A_202C_202A_202A_200E_206C_202A_206A_202E_206E_200F_202B_200B_200F_202A_206F_206C_200F_202E_202A_206A_202B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } } internal enum MountResult @@ -385,74 +160,14 @@ internal static class Mount internal sealed record UnmountTask : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200C_206C_200F_206C_202C_202E_200C_200D_202B_202B_200C_206B_200D_206D_202E_206E_206F_206E_206E_202B_202B_200C_206E_202B_200F_206C_200C_200E_206F_206C_206D_200B_200C_206D_206D_202C_206E_200F_200E_202B_202E(typeof(UnmountTask).TypeHandle); - } - } - public bool ShouldRedoOnInterrupt() { return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2092040442); - } - - [CompilerGenerated] - public bool Equals(UnmountTask? other) - { - int num = (((object)this == other) ? (-325437699) : (-325437704)); - while (true) - { - int num2 = num; - int num3 = -325437700; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return false; - case 0: - return _202E_200D_202B_206F_202E_206C_200C_200E_202A_206F_200E_206F_202E_202D_202C_206D_202E_200C_206D_206D_200F_200B_206F_202C_202D_206E_200E_206B_206F_200C_202E_206C_206C_206F_206B_206D_206B_200D_202D_206F_202E(EqualityContract, other.EqualityContract); - case 4: - num = (((object)other == null) ? (-325437697) : (-325437700)); - break; - case 1: - return true; - case 2: - num = -325437704; - break; - } - } - } - - bool IEquatable<UnmountTask>.Equals(UnmountTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200C_206C_200F_206C_202C_202E_200C_200D_202B_202B_200C_206B_200D_206D_202E_206E_206F_206E_206E_202B_202B_200C_206E_202B_200F_206C_200C_200E_206F_206C_206D_200B_200C_206D_206D_202C_206E_200F_200E_202B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _202E_200D_202B_206F_202E_206C_200C_200E_202A_206F_200E_206F_202E_202D_202C_206D_202E_200C_206D_206D_200F_200B_206F_202C_202D_206E_200E_206B_206F_200C_202E_206C_206C_206F_206B_206D_206B_200D_202D_206F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "Unmount"; } } @@ -462,161 +177,75 @@ internal static class Mount private long _continueAtMs; - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - int num = (_202B_202C_206F_200E_202E_206E_200E_200C_200C_206B_202D_200F_202C_206F_206D_206A_200E_202B_200D_206A_202C_202A_200B_206A_200D_202B_206B_206F_202B_202D_202D_200D_206A_206A_202E_200C_200F_200B_202C_206C_202E(condition, ConditionFlag.Mounted) ? 488246470 : 488246469); - while (true) + if (!condition[ConditionFlag.Mounted]) { - int num2 = num; - int num3 = 488246471; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _unmountTriggered = gameFunctions.Unmount(); - _continueAtMs = _202B_206A_206A_206D_206A_200C_200F_206E_206F_206D_206C_202A_206B_206C_200C_202C_206F_206D_206C_200E_202E_200C_200C_200C_202A_202E_206B_200E_206F_200B_206C_202B_200E_200F_206E_202C_202D_206A_200C_206D_202E() + 1000; - return true; - case 2: - return false; - case 4: - gameFunctions.Unmount(); - _continueAtMs = _202B_206A_206A_206D_206A_200C_200F_206E_206F_206D_206C_202A_206B_206C_200C_202C_206F_206D_206C_200E_202E_200C_200C_200C_202A_202E_206B_200E_206F_200B_206C_202B_200E_200F_206E_202C_202D_206A_200C_206D_202E() + 1000; - return true; - case 3: - num = 488246469; - break; - case 1: - _202C_202D_200C_202C_200B_206C_200E_200F_202B_200F_200C_200E_206C_206A_200C_206F_202A_200B_202D_206E_206A_202D_206A_206A_200C_202B_200D_206B_206D_206F_202C_206F_202A_206D_202E_202E_202B_200F_200D_202A_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-194036115), Array.Empty<object>()); - num = ((!_202B_202C_206F_200E_202E_206E_200E_200C_200C_206B_202D_200F_202C_206F_206D_206A_200E_202B_200D_206A_202C_202A_200B_206A_200D_202B_206B_206F_202B_202D_202D_200D_206A_206A_202E_200C_200F_200B_202C_206C_202E(condition, ConditionFlag.InFlight)) ? 488246471 : 488246467); - break; - } + return false; } + logger.LogDebug("Step explicitly wants no mount, trying to unmount..."); + if (condition[ConditionFlag.InFlight]) + { + gameFunctions.Unmount(); + _continueAtMs = Environment.TickCount64 + 1000; + return true; + } + _unmountTriggered = gameFunctions.Unmount(); + _continueAtMs = Environment.TickCount64 + 1000; + return true; } public override ETaskResult Update() { - int num = ((_202B_206A_206A_206D_206A_200C_200F_206E_206F_206D_206C_202A_206B_206C_200C_202C_206F_206D_206C_200E_202E_200C_200C_200C_202A_202E_206B_200E_206F_200B_206C_202B_200E_200F_206E_202C_202D_206A_200C_206D_202E() >= _continueAtMs) ? 353264902 : 353264910); - while (true) + if (Environment.TickCount64 < _continueAtMs) { - int num2 = num; - int num3 = 353264907; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 13: - num = ((!IsUnmounting()) ? 353264903 : 353264898); - break; - case 14: - num = ((!_202B_202C_206F_200E_202E_206E_200E_200C_200C_206B_202D_200F_202C_206F_206D_206A_200E_202B_200D_206A_202C_202A_200B_206A_200D_202B_206B_206F_202B_202D_202D_200D_206A_206A_202E_200C_200F_200B_202C_206C_202E(condition, ConditionFlag.InCombat)) ? 353264899 : 353264904); - break; - case 6: - _continueAtMs = _202B_206A_206A_206D_206A_200C_200F_206E_206F_206D_206C_202A_206B_206C_200C_202C_206F_206D_206C_200E_202E_200C_200C_200C_202A_202E_206B_200E_206F_200B_206C_202B_200E_200F_206E_202C_202D_206A_200C_206D_202E() + 1000; - return ETaskResult.StillRunning; - case 1: - num = ((!_202B_202C_206F_200E_202E_206E_200E_200C_200C_206B_202D_200F_202C_206F_206D_206A_200E_202B_200D_206A_202C_202A_200B_206A_200D_202B_206B_206F_202B_202D_202D_200D_206A_206A_202E_200C_200F_200B_202C_206C_202E(condition, ConditionFlag.Mounted)) ? 353264899 : 353264901); - break; - case 0: - num = 353264910; - break; - case 2: - return ETaskResult.TaskComplete; - case 3: - _unmountTriggered = gameFunctions.Unmount(); - _continueAtMs = _202B_206A_206A_206D_206A_200C_200F_206E_206F_206D_206C_202A_206B_206C_200C_202C_206F_206D_206C_200E_202E_200C_200C_200C_202A_202E_206B_200E_206F_200B_206C_202B_200E_200F_206E_202C_202D_206A_200C_206D_202E() + 1000; - return ETaskResult.StillRunning; - case 11: - num = ((!_202B_202C_206F_200E_202E_206E_200E_200C_200C_206B_202D_200F_202C_206F_206D_206A_200E_202B_200D_206A_202C_202A_200B_206A_200D_202B_206B_206F_202B_202D_202D_200D_206A_206A_202E_200C_200F_200B_202C_206C_202E(condition, ConditionFlag.InFlight)) ? 353264911 : 353264897); - break; - case 12: - num = (_unmountTriggered ? 353264906 : 353264896); - break; - case 5: - return ETaskResult.StillRunning; - case 7: - return ETaskResult.StillRunning; - case 4: - _unmountTriggered = gameFunctions.Unmount(); - num = 353264909; - break; - case 8: - num = (_202B_202C_206F_200E_202E_206E_200E_200C_200C_206B_202D_200F_202C_206F_206D_206A_200E_202B_200D_206A_202C_202A_200B_206A_200D_202B_206B_206F_202B_202D_202D_200D_206A_206A_202E_200C_200F_200B_202C_206C_202E(condition, ConditionFlag.Mounted) ? 353264908 : 353264905); - break; - case 10: - gameFunctions.Unmount(); - num = 353264909; - break; - case 9: - return ETaskResult.StillRunning; - } + return ETaskResult.StillRunning; } + if (IsUnmounting()) + { + return ETaskResult.StillRunning; + } + if (!_unmountTriggered) + { + if (condition[ConditionFlag.InFlight]) + { + gameFunctions.Unmount(); + } + else + { + _unmountTriggered = gameFunctions.Unmount(); + } + _continueAtMs = Environment.TickCount64 + 1000; + return ETaskResult.StillRunning; + } + if (condition[ConditionFlag.Mounted] && condition[ConditionFlag.InCombat]) + { + _unmountTriggered = gameFunctions.Unmount(); + _continueAtMs = Environment.TickCount64 + 1000; + return ETaskResult.StillRunning; + } + if (!condition[ConditionFlag.Mounted]) + { + return ETaskResult.TaskComplete; + } + return ETaskResult.StillRunning; } private unsafe bool IsUnmounting() { - IPlayerCharacter playerCharacter = _200B_202D_206D_206F_206B_202D_206B_206C_200C_202B_206F_206C_206E_200C_200E_202E_202D_202E_206C_206B_202B_200D_202B_206A_202B_206E_202B_206A_206E_206D_206D_200D_202D_202B_206E_200C_202D_206C_202E_202A_202E(objectTable); - int num = ((playerCharacter == null) ? 117430025 : 117430026); - while (true) + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + if (localPlayer != null) { - int num2 = num; - int num3 = 117430027; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0052; - case 2: - return false; - case 1: - { - BattleChara* ptr = (BattleChara*)_200F_202B_206E_200F_206E_200C_200C_200F_206E_206D_206C_200D_202D_206E_200C_200E_206B_202D_202C_206D_206A_206D_200C_206E_200D_202E_202B_206F_200B_202D_206F_202A_206C_200E_206E_200E_206A_200D_202E_202E((IGameObject)playerCharacter); - byte flags = ptr->Mount.Flags; - num3 = 1; - num4 = flags; - return num4 + num3 - (num4 | num3) == 1; - } - } - continue; - IL_0052: - num = 117430026; + BattleChara* address = (BattleChara*)localPlayer.Address; + return (address->Mount.Flags & 1) == 1; } + return false; } public override bool ShouldInterruptOnDamage() { return false; } - - static bool _202B_202C_206F_200E_202E_206E_200E_200C_200C_206B_202D_200F_202C_206F_206D_206A_200E_202B_200D_206A_202C_202A_200B_206A_200D_202B_206B_206F_202B_202D_202D_200D_206A_206A_202E_200C_200F_200B_202C_206C_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static void _202C_202D_200C_202C_200B_206C_200E_200F_202B_200F_200C_200E_206C_206A_200C_206F_202A_200B_202D_206E_206A_202D_206A_206A_200C_202B_200D_206B_206D_206F_202C_206F_202A_206D_202E_202E_202B_200F_200D_202A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static long _202B_206A_206A_206D_206A_200C_200F_206E_206F_206D_206C_202A_206B_206C_200C_202C_206F_206D_206C_200E_202E_200C_200C_200C_202A_202E_206B_200E_206F_200B_206C_202B_200E_200F_206E_202C_202D_206A_200C_206D_202E() - { - return Environment.TickCount64; - } - - static IPlayerCharacter _200B_202D_206D_206F_206B_202D_206B_206C_200C_202B_206F_206C_206E_200C_200E_202E_202D_202E_206C_206B_202B_200D_202B_206A_202B_206E_202B_206A_206E_206D_206D_200D_202D_202B_206E_200C_202D_206C_202E_202A_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static nint _200F_202B_206E_200F_206E_200C_200C_200F_206E_206D_206C_200D_202D_206E_200C_200E_206B_202D_202C_206D_206A_206D_200C_206E_200D_202E_202B_206F_200B_202D_206F_202A_206C_200E_206E_200E_206A_200D_202E_202E(IGameObject P_0) - { - return P_0.Address; - } } public enum EMountIf diff --git a/Questionable/Questionable.Controller.Steps.Common/NextQuest.cs b/Questionable/Questionable.Controller.Steps.Common/NextQuest.cs index ce7f348..d785cc3 100644 --- a/Questionable/Questionable.Controller.Steps.Common/NextQuest.cs +++ b/Questionable/Questionable.Controller.Steps.Common/NextQuest.cs @@ -1,7 +1,3 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Microsoft.Extensions.Logging; using Questionable.Functions; using Questionable.Model; @@ -15,234 +11,66 @@ internal static class NextQuest { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_202A_206F_206D_206A_200D_206F_200C_206B_202E_202D_202A_206A_206F_200C_200C_206C_202E_206D_202C_206A_206E_202E_202A_200E_206E_202B_202E_202B_206B_202C_200B_200D_200C_202E_202D_200B_202C_202B_206E_206E_202E(step) == EInteractionType.CompleteQuest) ? (-1909378292) : (-1909378290)); - while (true) + if (step.InteractionType != EInteractionType.CompleteQuest) { - int num2 = num; - int num3 = -1909378291; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 7: - num = -1909378290; - break; - case 0: - return null; - case 5: - return new SetQuestTask(_206F_206E_200D_200E_200B_202B_202B_202D_202D_202B_202E_202D_206F_200E_200B_200D_200E_200D_202B_202C_200E_202E_206C_200B_200E_200D_206D_206A_206F_202D_200C_200E_202B_206B_202D_206B_206E_202B_200B_200E_202E(step), quest.Id); - case 4: - return null; - case 1: - num = ((!_200B_202C_200B_206C_202A_200C_206F_206C_200D_202B_200F_200E_206A_200B_200D_202C_200E_206D_206B_202B_200C_202D_200D_206F_202D_200E_206A_202E_200B_202C_206A_202B_202D_206C_200B_200F_202E_206D_206B_206F_202E(_206F_206E_200D_200E_200B_202B_202B_202D_202D_202B_202E_202D_206F_200E_200B_200D_200E_200D_202B_202C_200E_202E_206C_200B_200E_200D_206D_206A_206F_202D_200C_200E_202B_206B_202D_206B_206E_202B_200B_200E_202E(step), (ElementId)null)) ? (-1909378293) : (-1909378299)); - break; - case 6: - num = ((!_200B_202C_200B_206C_202A_200C_206F_206C_200D_202B_200F_200E_206A_200B_200D_202C_200E_206D_206B_202B_200C_202D_200D_206F_202D_200E_206A_202E_200B_202C_206A_202B_202D_206C_200B_200F_202E_206D_206B_206F_202E(_206F_206E_200D_200E_200B_202B_202B_202D_202D_202B_202E_202D_206F_200E_200B_200D_200E_200D_202B_202C_200E_202E_206C_200B_200E_200D_206D_206A_206F_202D_200C_200E_202B_206B_202D_206B_206E_202B_200B_200E_202E(step), quest.Id)) ? (-1909378289) : (-1909378295)); - break; - case 2: - num = ((!questFunctions.GetPriorityQuests(onlyClassAndRoleQuests: true).Contains(_206F_206E_200D_200E_200B_202B_202B_202D_202D_202B_202E_202D_206F_200E_200B_200D_200E_200D_202B_202C_200E_202E_206C_200B_200E_200D_206D_206A_206F_202D_200C_200E_202B_206B_202D_206B_206E_202B_200B_200E_202E(step))) ? (-1909378296) : (-1909378291)); - break; - case 3: - return null; - case 8: - return null; - } + return null; } - } - - static EInteractionType _202A_206F_206D_206A_200D_206F_200C_206B_202E_202D_202A_206A_206F_200C_200C_206C_202E_206D_202C_206A_206E_202E_202A_200E_206E_202B_202E_202B_206B_202C_200B_200D_200C_202E_202D_200B_202C_202B_206E_206E_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static ElementId _206F_206E_200D_200E_200B_202B_202B_202D_202D_202B_202E_202D_206F_200E_200B_200D_200E_200D_202B_202C_200E_202E_206C_200B_200E_200D_206D_206A_206F_202D_200C_200E_202B_206B_202D_206B_206E_202B_200B_200E_202E(QuestStep P_0) - { - return P_0.NextQuestId; - } - - static bool _200B_202C_200B_206C_202A_200C_206F_206C_200D_202B_200F_200E_206A_200B_200D_202C_200E_206D_206B_202B_200C_202D_200D_206F_202D_200E_206A_202E_200B_202C_206A_202B_202D_206C_200B_200F_202E_206D_206B_206F_202E(ElementId P_0, ElementId P_1) - { - return P_0 == P_1; + if (step.NextQuestId == null) + { + return null; + } + if (step.NextQuestId == quest.Id) + { + return null; + } + if (questFunctions.GetPriorityQuests(onlyClassAndRoleQuests: true).Contains(step.NextQuestId)) + { + return null; + } + return new SetQuestTask(step.NextQuestId, quest.Id); } } internal sealed record SetQuestTask(ElementId NextQuestId, ElementId CurrentQuestId) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200E_202A_206A_200C_200D_202E_206B_206B_202B_206F_200D_202C_200C_202C_206A_200C_206B_206C_206C_206F_200E_202B_206C_200B_200C_206B_202A_200D_202A_206A_200B_200C_202C_202D_206A_202D_206E_202C_200B_206D_202E(typeof(SetQuestTask).TypeHandle); - } - } - public bool ShouldRedoOnInterrupt() { return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(14, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2031144159)); - defaultInterpolatedStringHandler.AppendFormatted(NextQuestId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202E_206B_202E_200B_200D_200B_206F_206B_202D_202C_200C_200E_206B_206F_206C_202E_206A_206B_200D_202D_206B_206F_206F_202A_202C_206B_202C_206F_202C_206D_200E_200B_202B_202D_206C_200E_202D_206E_202D_200D_202E(); - _206E_206A_206A_202B_200E_206D_206C_200B_200C_200E_206B_202A_200D_206E_206A_200E_206F_206F_202D_202E_206A_200E_202D_202C_200F_206F_206C_202D_206F_202C_202E_206C_200C_202B_202C_206A_206E_206F_202C_206F_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(129873473)); - _202D_202A_206B_200E_206B_200C_206C_206D_202D_202D_202A_202B_200F_202B_206C_206E_202C_200C_206D_200F_206A_200F_200F_202E_200B_200F_206F_200F_200B_206F_202B_202D_200C_206A_200B_206F_200D_206C_200D_206F_202E(builder, (object)NextQuestId); - _206E_206A_206A_202B_200E_206D_206C_200B_200C_200E_206B_202A_200D_206E_206A_200E_206F_206F_202D_202E_206A_200E_202D_202C_200F_206F_206C_202D_206F_202C_202E_206C_200C_202B_202C_206A_206E_206F_202C_206F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1559739733)); - _202D_202A_206B_200E_206B_200C_206C_206D_202D_202D_202A_202B_200F_202B_206C_206E_202C_200C_206D_200F_206A_200F_200F_202E_200B_200F_206F_200F_200B_206F_202B_202D_200C_206A_200B_206F_200D_206C_200D_206F_202E(builder, (object)CurrentQuestId); - return true; - } - - [CompilerGenerated] - public bool Equals(SetQuestTask? other) - { - int num = (((object)this == other) ? (-1393326810) : (-1393326816)); - while (true) - { - int num2 = num; - int num3 = -1393326814; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return EqualityComparer<ElementId>.Default.Equals(CurrentQuestId, other.CurrentQuestId); - case 2: - num = (((object)other == null) ? (-1393326813) : (-1393326809)); - break; - case 6: - num = ((!EqualityComparer<ElementId>.Default.Equals(NextQuestId, other.NextQuestId)) ? (-1393326813) : (-1393326815)); - break; - case 4: - return true; - case 5: - num = ((!_206E_200E_200E_200D_202D_206B_206B_200E_200F_206E_202B_200B_202D_206C_202B_202B_200C_206E_200C_202B_202A_206D_202C_200B_206D_206E_206C_206E_202D_202C_200F_206B_200D_200D_200B_200C_202A_206F_200B_202D_202E(EqualityContract, other.EqualityContract)) ? (-1393326813) : (-1393326812)); - break; - case 1: - return false; - case 0: - num = -1393326816; - break; - } - } - } - - bool IEquatable<SetQuestTask>.Equals(SetQuestTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200E_202A_206A_200C_200D_202E_206B_206B_202B_206F_200D_202C_200C_202C_206A_200C_206B_206C_206C_206F_200E_202B_206C_200B_200C_206B_202A_200D_202A_206A_200B_200C_202C_202D_206A_202D_206E_202C_200B_206D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _202E_206B_202E_200B_200D_200B_206F_206B_202D_202C_200C_200E_206B_206F_206C_202E_206A_206B_200D_202D_206B_206F_206F_202A_202C_206B_202C_206F_202C_206D_200E_200B_202B_202D_206C_200E_202D_206E_202D_200D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206E_206A_206A_202B_200E_206D_206C_200B_200C_200E_206B_202A_200D_206E_206A_200E_206F_206F_202D_202E_206A_200E_202D_202C_200F_206F_206C_202D_206F_202C_202E_206C_200C_202B_202C_206A_206E_206F_202C_206F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202D_202A_206B_200E_206B_200C_206C_206D_202D_202D_202A_202B_200F_202B_206C_206E_202C_200C_206D_200F_206A_200F_200F_202E_200B_200F_206F_200F_200B_206F_202B_202D_200C_206A_200B_206F_200D_206C_200D_206F_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206E_200E_200E_200D_202D_206B_206B_200E_200F_206E_202B_200B_202D_206C_202B_202B_200C_206E_200C_202B_202A_206D_202C_200B_206D_206E_206C_206E_202D_202C_200F_206B_200D_200D_200B_200C_202A_206F_200B_202D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"SetNextQuest({NextQuestId})"; } } internal sealed class NextQuestExecutor(QuestRegistry questRegistry, QuestController questController, QuestFunctions questFunctions, ILogger<NextQuestExecutor> logger) : TaskExecutor<SetQuestTask>() { - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { QuestController.EAutomationType automationType = questController.AutomationType; - int num = (((uint)(automationType - 3) > 1u) ? (-54591417) : (-54591410)); - bool flag = default(bool); - Quest quest = default(Quest); - while (true) + Quest quest; + if ((uint)(automationType - 2) <= 1u) { - int num2 = num; - int num3 = -54591409; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = ((!flag) ? (-54591415) : (-54591411)); - break; - case 8: - flag = false; - num = -54591409; - break; - case 7: - return true; - case 6: - num = ((!questFunctions.IsQuestLocked(base.Task.NextQuestId, base.Task.CurrentQuestId)) ? (-54591414) : (-54591418)); - break; - case 3: - num = -54591410; - break; - case 2: - _206A_200F_206F_206E_200E_200E_206D_202C_200C_200D_202C_200C_202D_206F_202A_202A_200B_200E_200E_202D_202B_200D_206A_206E_200B_200F_206E_202C_206E_206E_200D_202C_206E_200F_200F_200E_206C_206F_206C_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-517035289), new object[1] { base.Task.NextQuestId }); - questController.SetNextQuest(null); - num = -54591416; - break; - case 10: - _206A_200F_206F_206E_200E_200E_206D_202C_200C_200D_202C_200C_202D_206F_202A_202A_200B_200E_200E_202D_202B_200D_206A_206E_200B_200F_206E_202C_206E_206E_200D_202C_206E_200F_200F_200E_206C_206F_206C_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2109635352), new object[2] - { - base.Task.NextQuestId, - quest.Info.Name - }); - questController.SetNextQuest(quest); - num = -54591416; - break; - case 9: - _206A_200F_206F_206E_200E_200E_206D_202C_200C_200D_202C_200C_202D_206F_202A_202A_200B_200E_200E_202D_202B_200D_206A_206E_200B_200F_206E_202C_206E_206E_200D_202C_206E_200F_200F_200E_206C_206F_206C_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1849595001), new object[1] { base.Task.NextQuestId }); - questController.SetNextQuest(null); - num = -54591416; - break; - case 1: - flag = true; - num = -54591409; - break; - case 4: - _206A_200F_206F_206E_200E_200E_206D_202C_200C_200D_202C_200C_202D_206F_202A_202A_200B_200E_200E_202D_202B_200D_206A_206E_200B_200F_206E_202C_206E_206E_200D_202C_206E_200F_200F_200E_206C_206F_206C_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1489956066), new object[1] { base.Task.NextQuestId }); - questController.SetNextQuest(null); - num = -54591416; - break; - case 5: - num = ((!questRegistry.TryGetQuest(base.Task.NextQuestId, out quest)) ? (-54591413) : (-54591419)); - break; - } + logger.LogInformation("Won't set next quest to {QuestId}, automation type is CurrentQuestOnly", base.Task.NextQuestId); + questController.SetNextQuest(null); } + else if (questFunctions.IsQuestLocked(base.Task.NextQuestId, base.Task.CurrentQuestId)) + { + logger.LogInformation("Can't set next quest to {QuestId}, quest is locked", base.Task.NextQuestId); + questController.SetNextQuest(null); + } + else if (questRegistry.TryGetQuest(base.Task.NextQuestId, out quest)) + { + logger.LogInformation("Setting next quest to {QuestId}: '{QuestName}'", base.Task.NextQuestId, quest.Info.Name); + questController.SetNextQuest(quest); + } + else + { + logger.LogInformation("Next quest with id {QuestId} not found", base.Task.NextQuestId); + questController.SetNextQuest(null); + } + return true; } public override ETaskResult Update() @@ -254,10 +82,5 @@ internal static class NextQuest { return false; } - - static void _206A_200F_206F_206E_200E_200E_206D_202C_200C_200D_202C_200C_202D_206F_202A_202A_200B_200E_200E_202D_202B_200D_206A_206E_200B_200F_206E_202C_206E_206E_200D_202C_206E_200F_200F_200E_206C_206F_206C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Common/RepairGear.cs b/Questionable/Questionable.Controller.Steps.Common/RepairGear.cs index b327943..01ecd75 100644 --- a/Questionable/Questionable.Controller.Steps.Common/RepairGear.cs +++ b/Questionable/Questionable.Controller.Steps.Common/RepairGear.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Plugin.Services; using LLib.Gear; using Microsoft.Extensions.Logging; @@ -14,161 +11,17 @@ internal static class RepairGear { internal sealed record SelfRepairTask : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200D_206E_202A_200E_206D_200C_206C_202B_202C_200E_202A_200B_202D_206B_200F_200C_206C_200E_202A_206A_200C_206D_202C_206A_200D_206A_202D_200D_202B_202A_202C_200E_202B_200B_206E_206F_202E_200D_202A_202E(typeof(SelfRepairTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1902425230); - } - - [CompilerGenerated] - public bool Equals(SelfRepairTask? other) - { - int num = (((object)this == other) ? 995045173 : 995045172); - while (true) - { - int num2 = num; - int num3 = 995045173; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 995045172; - break; - case 0: - return true; - case 4: - return false; - case 1: - num = (((object)other == null) ? 995045169 : 995045174); - break; - case 3: - return _202D_206A_200F_202A_206B_200E_200E_200D_200C_206B_200D_206F_206E_202C_200E_206B_200E_200C_206C_206E_202C_202C_206D_200D_202C_206B_206C_206A_202D_202B_206C_206E_202A_200B_200E_202E_202E_202C_202B_200C_202E(EqualityContract, other.EqualityContract); - } - } - } - - bool IEquatable<SelfRepairTask>.Equals(SelfRepairTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200D_206E_202A_200E_206D_200C_206C_202B_202C_200E_202A_200B_202D_206B_200F_200C_206C_200E_202A_206A_200C_206D_202C_206A_200D_206A_202D_200D_202B_202A_202C_200E_202B_200B_206E_206F_202E_200D_202A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _202D_206A_200F_202A_206B_200E_200E_200D_200C_206B_200D_206F_206E_202C_200E_206B_200E_200C_206C_206E_202C_202C_206D_200D_202C_206B_206C_206A_202D_202B_206C_206E_202A_200B_200E_202E_202E_202C_202B_200C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "SelfRepair"; } } internal sealed record MenderRepairTask(MenderNpc Npc) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202C_206D_202C_206A_200D_206E_202E_200F_206E_206A_200F_206B_200B_200C_202B_202C_202A_202E_206A_200D_206C_202A_206F_200B_206E_206B_206D_202A_200F_206E_202E_202B_202B_206F_202C_202D_200F_206A_200D_200E_202E(typeof(MenderRepairTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(14, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1987309815)); - defaultInterpolatedStringHandler.AppendFormatted(Npc.DataId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206E_200D_206E_202B_200E_200B_200F_202C_200C_202D_206D_202D_202B_206C_206B_206B_200E_200B_200D_200D_200C_202C_200C_202E_200B_200D_206D_202E_200B_200C_200F_206D_202D_202D_200B_200C_202E_200B_206B_200F_202E(); - _202C_202D_206F_202B_202C_206B_206F_202B_200C_200D_206D_206A_206B_200E_200B_202B_202D_200F_200B_200F_200D_200E_202C_200D_200E_206D_206B_206B_202B_200C_202B_206E_206A_206C_200B_200E_206E_200C_206A_206A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2086626931)); - _206A_206B_202A_202E_200D_202D_202D_206B_200B_200E_200F_206A_206D_200F_200E_206A_202B_202D_200F_200C_200F_200F_202B_206C_206B_200F_206A_206D_206F_206F_206B_202B_206B_206F_206B_200B_200B_200C_200D_202A_202E(builder, (object)Npc); - return true; - } - - [CompilerGenerated] - public bool Equals(MenderRepairTask? other) - { - int num = (((object)this == other) ? (-799172425) : (-799172431)); - while (true) - { - int num2 = num; - int num3 = -799172430; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return EqualityComparer<MenderNpc>.Default.Equals(Npc, other.Npc); - case 5: - return true; - case 4: - num = -799172431; - break; - case 2: - num = ((!_206B_200D_202E_206B_202B_200D_200B_206E_202B_206C_200D_202E_206D_206E_202D_202C_202C_202D_200D_202D_202A_200D_206F_200B_206C_200E_202C_206F_200E_202A_206F_202B_206F_206D_200E_202A_202B_202C_202C_202A_202E(EqualityContract, other.EqualityContract)) ? (-799172430) : (-799172429)); - break; - case 0: - return false; - case 3: - num = (((object)other == null) ? (-799172430) : (-799172432)); - break; - } - } - } - - bool IEquatable<MenderRepairTask>.Equals(MenderRepairTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202C_206D_202C_206A_200D_206E_202E_200F_206E_206A_200F_206B_200B_200C_202B_202C_202A_202E_206A_200D_206C_202A_206F_200B_206E_206B_206D_202A_200F_206E_202E_202B_202B_206F_202C_202D_200F_206A_200D_200E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206E_200D_206E_202B_200E_200B_200F_202C_200C_202D_206D_202D_202B_206C_206B_206B_200E_200B_200D_200D_200C_202C_200C_202E_200B_200D_206D_202E_200B_200C_200F_206D_202D_202D_200B_200C_202E_200B_206B_200F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202C_202D_206F_202B_202C_206B_206F_202B_200C_200D_206D_206A_206B_200E_200B_202B_202D_200F_200B_200F_200D_200E_202C_200D_200E_206D_206B_206B_202B_200C_202B_206E_206A_206C_200B_200E_206E_200C_206A_206A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206A_206B_202A_202E_200D_202D_202D_206B_200B_200E_200F_206A_206D_200F_200E_206A_202B_202D_200F_200C_200F_200F_202B_206C_206B_200F_206A_206D_206F_206F_206B_202B_206B_206F_206B_200B_200B_200C_200D_202A_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206B_200D_202E_206B_202B_200D_200B_206E_202B_206C_200D_202E_206D_206E_202D_202C_202C_202D_200D_202D_202A_200D_206F_200B_206C_200E_202C_206F_200E_202A_206F_202B_206F_206D_200E_202A_202B_202C_202C_202A_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"MenderRepair({Npc.DataId})"; } } @@ -215,296 +68,134 @@ internal static class RepairGear protected sealed override bool Start() { - _conditionBefore = _206F_202D_200D_200E_202D_206E_202B_200D_206B_200B_206A_202B_202C_200D_202C_200B_206A_202E_206D_200F_200C_206F_200B_200E_200E_202E_200F_202D_200F_206E_206A_202E_206A_200D_206B_206F_206E_206A_200B_202E_202E(); + _conditionBefore = GearConditionHelper.GetLowestConditionPercent(); _attempt = 1; EnterState(InitialState); _nextPollAt = 0L; return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public sealed override ETaskResult Update() { - long num = _206B_202D_202A_206E_206C_206F_206F_202B_206E_202E_200E_202B_200F_200F_200F_202C_206A_206D_206D_202E_206A_202B_200E_206C_206E_200D_206B_200F_200B_206C_206B_206D_200D_206E_206A_206A_202A_206A_206E_206D_202E(); - int num2 = ((num >= _nextPollAt) ? 2095781305 : 2095781289); - while (true) + long tickCount = Environment.TickCount64; + if (tickCount < _nextPollAt) { - int num3 = num2; - int num4 = 2095781295; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 11: - num2 = 2095781289; - break; - case 5: - num2 = (UpdateCustomState(_state) ? 2095781294 : 2095781281); - break; - case 1: - return ETaskResult.StillRunning; - case 12: - num2 = 2095781290; - break; - case 22: - { - long num6 = 250L; - long num7 = num; - _nextPollAt = (num7 | num6) + (num7 & num6); - num2 = ((num <= _stateDeadline) ? 2095781287 : 2095781309); - break; - } - case 17: - EnterState(EState.FiringRepair); - num2 = 2095781294; - break; - case 6: - return ETaskResult.StillRunning; - case 3: - goto IL_0140; - case 24: - goto IL_0166; - case 4: - goto IL_018c; - case 19: - _200B_202E_200B_206C_202C_202C_206E_206D_202B_200F_200C_200B_202E_206C_202D_202E_206B_200D_200F_200B_206D_202C_200C_206E_206F_202B_200E_206C_206E_200D_200F_200B_206A_200B_202A_200C_202B_200C_200F_200E_202E(GameGui); - num2 = 2095781294; - break; - case 8: - switch (_state) - { - case EState.Settling: - break; - case EState.Confirming: - goto IL_0140; - case EState.WaitingForClose: - goto IL_0166; - case EState.FiringRepair: - goto IL_018c; - default: - goto IL_01f4; - case EState.Closing: - goto IL_0245; - case EState.WaitingForAddon: - goto IL_026b; - case EState.OpeningWindow: - goto IL_0291; - } - goto case 1; - case 18: - num2 = ((_state != EState.Settling) ? 2095781304 : 2095781302); - break; - case 13: - EnterState(EState.Settling); - num2 = 2095781294; - break; - case 25: - EnterState(EState.Closing); - num2 = 2095781287; - break; - case 15: - goto IL_0245; - case 20: - goto IL_026b; - case 7: - goto IL_0291; - case 16: - EnterState(EState.WaitingForAddon); - num2 = 2095781294; - break; - case 0: - EnterState(EState.Settling); - num2 = 2095781294; - break; - case 21: - EnterState(EState.WaitingForClose); - num2 = 2095781294; - break; - case 10: - EnterState(EState.Confirming); - num2 = 2095781294; - break; - case 23: - _206F_200D_206B_206E_200D_202E_200E_206D_206F_200D_200F_200F_200E_200C_200C_200E_200C_206A_200C_200C_202B_206F_202D_206D_200B_202D_206E_200F_206E_206D_206F_200C_206C_202A_206F_200D_200F_206D_206D_202B_202E(Logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-310683176), new object[2] - { - _state, - _200B_200E_200E_202D_202A_206F_206F_202A_202B_206D_200C_200D_202B_202B_206E_206F_206E_206B_206E_202C_202D_202E_202B_206C_200D_202A_200C_202A_200F_206F_206D_202E_202D_202E_202B_206B_206B_200F_206E_200E_202E(GameGui) - }); - _202D_200E_202D_202E_200E_202B_200E_206E_200F_202C_202B_202E_202B_202E_206C_200C_206F_200E_206D_200E_200E_206A_206D_200C_206B_200C_202B_202A_202E_206A_202B_206D_200E_200F_206E_200C_202E_202C_206C_206D_202E(GameGui); - return Finish(); - case 2: - return Finish(); - case 9: - num2 = ((!HasConditionImproved()) ? 2095781308 : 2095781295); - break; - case 14: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(23, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1145949598)); - defaultInterpolatedStringHandler.AppendFormatted(_state); - throw new TaskException(defaultInterpolatedStringHandler.ToStringAndClear()); - } - IL_018c: - num2 = ((!_200B_202E_200B_206C_202C_202C_206E_206D_202B_200F_200C_200B_202E_206C_202D_202E_206B_200D_200F_200B_206D_202C_200C_206E_206F_202B_200E_206C_206E_200D_200F_200B_206A_200B_202A_200C_202B_200C_200F_200E_202E(GameGui)) ? 2095781294 : 2095781285); - break; - IL_0166: - num2 = (_206B_202C_206A_202C_206F_206D_202E_202B_206B_206D_202C_206D_202B_206B_206E_200B_202C_202D_206C_200C_202E_202C_200D_202A_200C_200F_200F_200C_202E_200D_200E_206C_206C_200C_200C_200E_200F_206A_200D_202B_202E(GameGui) ? 2095781294 : 2095781293); - break; - IL_0291: - num2 = ((!_202A_202E_202D_200D_200C_202E_206C_200C_206C_206F_202B_200D_206E_206A_206D_202C_206D_206F_200C_202B_202A_206B_206E_202C_200C_202D_200C_202D_206D_200C_200B_200D_200D_202C_202C_206A_206E_200F_202D_206E_202E()) ? 2095781294 : 2095781311); - break; - IL_026b: - num2 = ((!_206B_202C_206A_202C_206F_206D_202E_202B_206B_206D_202C_206D_202B_206B_206E_200B_202C_202D_206C_200C_202E_202C_200D_202A_200C_200F_200F_200C_202E_200D_200E_206C_206C_200C_200C_200E_200F_206A_200D_202B_202E(GameGui)) ? 2095781294 : 2095781310); - break; - IL_0140: - num2 = ((!_202E_202D_206A_202E_206D_206F_206E_200B_202A_202E_200C_200F_200D_202C_206E_206C_200F_200C_202A_206C_202C_200C_206D_200E_200E_202B_200F_202D_200B_202B_200C_202E_206E_206C_202C_206C_206D_200E_202B_206E_202E(GameGui)) ? 2095781286 : 2095781282); - break; - IL_0245: - num2 = ((!_202D_200E_202D_202E_200E_202B_200E_206E_200F_202C_202B_202E_202B_202E_206C_200C_206F_200E_206D_200E_200E_206A_206D_200C_206B_200C_202B_202A_202E_206A_202B_206D_200E_200F_206E_200C_202E_202C_206C_206D_202E(GameGui)) ? 2095781294 : 2095781306); - break; - IL_01f4: - num2 = 2095781283; - break; - } + return ETaskResult.StillRunning; } + _nextPollAt = tickCount + 250; + if (tickCount > _stateDeadline) + { + if (_state != EState.Settling) + { + Logger.LogWarning("Repair timed out in state {State} ({Diagnostic}), giving up", _state, RepairActions.DescribeRepairAddon(GameGui)); + RepairActions.TryCloseRepairWindow(GameGui); + return Finish(); + } + EnterState(EState.Closing); + } + switch (_state) + { + case EState.OpeningWindow: + if (RepairActions.TryOpenRepairWindow()) + { + EnterState(EState.WaitingForAddon); + } + break; + case EState.WaitingForAddon: + if (RepairActions.IsRepairAddonReady(GameGui)) + { + EnterState(EState.FiringRepair); + } + break; + case EState.FiringRepair: + if (RepairActions.TryRepairAll(GameGui)) + { + EnterState(EState.Confirming); + } + break; + case EState.Confirming: + if (RepairActions.TryConfirmDialog(GameGui)) + { + EnterState(EState.Settling); + } + else if (HasConditionImproved()) + { + EnterState(EState.Settling); + } + else + { + RepairActions.TryRepairAll(GameGui); + } + break; + case EState.Closing: + if (RepairActions.TryCloseRepairWindow(GameGui)) + { + EnterState(EState.WaitingForClose); + } + break; + case EState.WaitingForClose: + if (!RepairActions.IsRepairAddonReady(GameGui)) + { + return Finish(); + } + break; + default: + if (!UpdateCustomState(_state)) + { + throw new TaskException($"Unhandled repair state {_state}"); + } + break; + case EState.Settling: + break; + } + return ETaskResult.StillRunning; } protected void EnterState(EState state) { _state = state; - _stateDeadline = _206B_202D_202A_206E_206C_206F_206F_202B_206E_202E_200E_202B_200F_200F_200F_202C_206A_206D_206D_202E_206A_202B_200E_206C_206E_200D_206B_200F_200B_206C_206B_206D_200D_206E_206A_206A_202A_206A_206E_206D_202E() + ((state == EState.Settling) ? 1000 : 5000); + _stateDeadline = Environment.TickCount64 + ((state == EState.Settling) ? 1000 : 5000); } private bool HasConditionImproved() { - int? num = _conditionBefore; - int num2 = ((!num.HasValue) ? (-1406824238) : (-1406824240)); - int valueOrDefault = default(int); - while (true) + int? conditionBefore = _conditionBefore; + if (conditionBefore.HasValue) { - int num3 = num2; - int num4 = -1406824237; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) + int valueOrDefault = conditionBefore.GetValueOrDefault(); + conditionBefore = GearConditionHelper.GetLowestConditionPercent(); + if (conditionBefore.HasValue) { - case 0: - num2 = -1406824240; - break; - case 2: - { - int valueOrDefault2 = num.GetValueOrDefault(); + int valueOrDefault2 = conditionBefore.GetValueOrDefault(); return valueOrDefault2 > valueOrDefault; } - case 1: - return false; - case 3: - valueOrDefault = num.GetValueOrDefault(); - num = _206F_202D_200D_200E_202D_206E_202B_200D_206B_200B_206A_202B_202C_200D_202C_200B_206A_202E_206D_200F_200C_206F_200B_200E_200E_202E_200F_202D_200F_206E_206A_202E_206A_200D_206B_206F_206E_206A_200B_202E_202E(); - num2 = ((!num.HasValue) ? (-1406824238) : (-1406824239)); - break; - } } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private ETaskResult Finish() { - int? num = _206F_202D_200D_200E_202D_206E_202B_200D_206B_200B_206A_202B_202C_200D_202C_200B_206A_202E_206D_200F_200C_206F_200B_200E_200E_202E_200F_202D_200F_206E_206A_202E_206A_200D_206B_206F_206E_206A_200B_202E_202E(); - int num2 = ((!HasConditionImproved()) ? 1917505746 : 1917505745); - while (true) + int? lowestConditionPercent = GearConditionHelper.GetLowestConditionPercent(); + if (HasConditionImproved()) { - int num3 = num2; - int num4 = 1917505746; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 1: - { - int attempt = _attempt; - num4 = 1; - num5 = attempt; - _attempt = (num5 | num4) + (num5 & num4); - _206F_200D_206B_206E_200D_202E_200E_206D_206F_200D_200F_200F_200E_200C_200C_200E_200C_206A_200C_200C_202B_206F_202D_206D_200B_202D_206E_200F_206E_206D_206F_200C_206C_202A_206F_200D_200F_206D_206D_202B_202E(Logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(146386847), new object[3] { num, _attempt, 3 }); - _202D_200E_202D_202E_200E_202B_200E_206E_200F_202C_202B_202E_202B_202E_206C_200C_206F_200E_206D_200E_200E_206A_206D_200C_206B_200C_202B_202A_202E_206A_202B_206D_200E_200F_206E_200C_202E_202C_206C_206D_202E(GameGui); - EnterState(InitialState); - return ETaskResult.StillRunning; - } - case 3: - _200E_206D_202E_200B_202B_202E_200E_202E_206F_202D_202B_206D_202B_206F_202D_206E_202B_202B_202C_200E_202B_200D_202A_202C_202B_200B_202D_202C_206F_202D_206E_202B_200E_206D_206E_202D_200E_206E_200F_206F_202E(Logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1763627757), new object[2] { _conditionBefore, num }); - return ETaskResult.TaskComplete; - case 0: - num2 = ((_attempt >= 3) ? 1917505750 : 1917505747); - break; - case 2: - num2 = 1917505745; - break; - case 4: - _206F_200D_206B_206E_200D_202E_200E_206D_206F_200D_200F_200F_200E_200C_200C_200E_200C_206A_200C_200C_202B_206F_202D_206D_200B_202D_206E_200F_206E_206D_206F_200C_206C_202A_206F_200D_200F_206D_206D_202B_202E(Logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1921865562), new object[1] { num }); - return ETaskResult.TaskComplete; - } + Logger.LogInformation("Repair complete, lowest condition {Before}% -> {After}%", _conditionBefore, lowestConditionPercent); + return ETaskResult.TaskComplete; } + if (_attempt < 3) + { + _attempt++; + Logger.LogWarning("Repair pass ended without improving condition (still {After}%), retrying ({Attempt}/{Max})", lowestConditionPercent, _attempt, 3); + RepairActions.TryCloseRepairWindow(GameGui); + EnterState(InitialState); + return ETaskResult.StillRunning; + } + Logger.LogWarning("Repair finished without improving condition (still {After}%)", lowestConditionPercent); + return ETaskResult.TaskComplete; } public void StopNow() { - _202D_200E_202D_202E_200E_202B_200E_206E_200F_202C_202B_202E_202B_202E_206C_200C_206F_200E_206D_200E_200E_206A_206D_200C_206B_200C_202B_202A_202E_206A_202B_206D_200E_200F_206E_200C_202E_202C_206C_206D_202E(GameGui); - } - - void IStoppableTaskExecutor.StopNow() - { - //ILSpy generated this explicit interface implementation from .override directive in StopNow - this.StopNow(); - } - - static int? _206F_202D_200D_200E_202D_206E_202B_200D_206B_200B_206A_202B_202C_200D_202C_200B_206A_202E_206D_200F_200C_206F_200B_200E_200E_202E_200F_202D_200F_206E_206A_202E_206A_200D_206B_206F_206E_206A_200B_202E_202E() - { - return GearConditionHelper.GetLowestConditionPercent(); - } - - static long _206B_202D_202A_206E_206C_206F_206F_202B_206E_202E_200E_202B_200F_200F_200F_202C_206A_206D_206D_202E_206A_202B_200E_206C_206E_200D_206B_200F_200B_206C_206B_206D_200D_206E_206A_206A_202A_206A_206E_206D_202E() - { - return Environment.TickCount64; - } - - static string _200B_200E_200E_202D_202A_206F_206F_202A_202B_206D_200C_200D_202B_202B_206E_206F_206E_206B_206E_202C_202D_202E_202B_206C_200D_202A_200C_202A_200F_206F_206D_202E_202D_202E_202B_206B_206B_200F_206E_200E_202E(IGameGui P_0) - { - return RepairActions.DescribeRepairAddon(P_0); - } - - static void _206F_200D_206B_206E_200D_202E_200E_206D_206F_200D_200F_200F_200E_200C_200C_200E_200C_206A_200C_200C_202B_206F_202D_206D_200B_202D_206E_200F_206E_206D_206F_200C_206C_202A_206F_200D_200F_206D_206D_202B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static bool _202D_200E_202D_202E_200E_202B_200E_206E_200F_202C_202B_202E_202B_202E_206C_200C_206F_200E_206D_200E_200E_206A_206D_200C_206B_200C_202B_202A_202E_206A_202B_206D_200E_200F_206E_200C_202E_202C_206C_206D_202E(IGameGui P_0) - { - return RepairActions.TryCloseRepairWindow(P_0); - } - - static bool _202A_202E_202D_200D_200C_202E_206C_200C_206C_206F_202B_200D_206E_206A_206D_202C_206D_206F_200C_202B_202A_206B_206E_202C_200C_202D_200C_202D_206D_200C_200B_200D_200D_202C_202C_206A_206E_200F_202D_206E_202E() - { - return RepairActions.TryOpenRepairWindow(); - } - - static bool _206B_202C_206A_202C_206F_206D_202E_202B_206B_206D_202C_206D_202B_206B_206E_200B_202C_202D_206C_200C_202E_202C_200D_202A_200C_200F_200F_200C_202E_200D_200E_206C_206C_200C_200C_200E_200F_206A_200D_202B_202E(IGameGui P_0) - { - return RepairActions.IsRepairAddonReady(P_0); - } - - static bool _200B_202E_200B_206C_202C_202C_206E_206D_202B_200F_200C_200B_202E_206C_202D_202E_206B_200D_200F_200B_206D_202C_200C_206E_206F_202B_200E_206C_206E_200D_200F_200B_206A_200B_202A_200C_202B_200C_200F_200E_202E(IGameGui P_0) - { - return RepairActions.TryRepairAll(P_0); - } - - static bool _202E_202D_206A_202E_206D_206F_206E_200B_202A_202E_200C_200F_200D_202C_206E_206C_200F_200C_202A_206C_202C_200C_206D_200E_200E_202B_200F_202D_200B_202B_200C_202E_206E_206C_202C_206C_206D_200E_202B_206E_202E(IGameGui P_0) - { - return RepairActions.TryConfirmDialog(P_0); - } - - static void _200E_206D_202E_200B_202B_202E_200E_202E_206F_202D_202B_206D_202B_206F_202D_206E_202B_202B_202C_200E_202B_200D_202A_202C_202B_200B_202D_202C_206F_202D_206E_202B_200E_206D_206E_202D_200E_206E_200F_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); + RepairActions.TryCloseRepairWindow(GameGui); } } @@ -539,64 +230,38 @@ internal static class RepairGear base._002Ector(gameGui, (ILogger)logger); } - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool UpdateCustomState(EState state) { - int num = ((state == EState.Interacting) ? 293305294 : 293305289); - int? num7 = default(int?); - while (true) + switch (state) { - int num2 = num; - int num3 = 293305291; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + case EState.Interacting: + if (_003CgameFunctions_003EP.InteractWith(base.Task.Npc.DataId)) + { + EnterState(EState.SelectingMenu); + } + return true; + case EState.SelectingMenu: + { + if (RepairActions.IsRepairAddonReady(base.GameGui)) { - case 12: EnterState(EState.FiringRepair); return true; - case 11: - return true; - case 2: - num = ((state == EState.SelectingMenu) ? 293305290 : 293305282); - break; - case 5: - num = ((!_003CgameFunctions_003EP.InteractWith(base.Task.Npc.DataId)) ? 293305280 : 293305283); - break; - case 9: - num = 293305281; - break; - case 4: - _202E_200D_202B_202E_202A_200F_206B_206A_200E_206D_206D_206A_206A_202D_202D_200D_200C_200F_202A_206F_202D_202A_200F_206D_202B_200D_206B_206D_206F_200D_202C_200D_206A_202D_202C_202A_206D_200C_200F_200C_202E(base.Logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2096442858), new object[1] { base.Task.Npc.DataId }); + } + int? num = RepairActions.FindRepairIndex(_003CdataManager_003EP, base.Task.Npc.DataId); + if (!num.HasValue) + { + base.Logger.LogWarning("NPC {DataId} has no repair menu entry", base.Task.Npc.DataId); EnterState(EState.Closing); return true; - case 0: - num = ((!_206D_200B_200C_206A_200B_202E_200B_200F_206D_200C_200D_206D_206E_206D_202C_202B_206A_202D_202C_206B_202D_202D_206A_202B_206E_206F_200D_202D_200C_202B_202D_200E_206B_200B_200B_202B_200B_206C_202E(base.GameGui, num7.Value)) ? 293305292 : 293305288); - break; - case 6: - num7 = _202E_200D_202B_206B_200E_200D_206B_200C_200B_202C_200F_200F_206A_200E_202C_206C_200C_202C_202D_202A_202A_206C_206F_206C_200F_200E_200B_200F_206C_202D_206B_202E_206E_202B_202A_200B_202E_200B_206C_206A_202E(_003CdataManager_003EP, base.Task.Npc.DataId); - num = (num7.HasValue ? 293305291 : 293305295); - break; - case 3: - EnterState(EState.WaitingForAddon); - num = 293305292; - break; - case 10: - return false; - case 13: - num = 293305289; - break; - case 1: - num = ((!_206D_202D_200D_200B_202D_202C_206E_206E_202C_206E_206F_206A_200D_206C_200C_202C_202C_206C_206D_200B_200F_206D_200E_202C_202A_206B_206F_200E_206C_200F_206C_202A_200C_206B_206C_200B_200B_200E_202E_202E(base.GameGui)) ? 293305293 : 293305287); - break; - case 8: - EnterState(EState.SelectingMenu); - num = 293305280; - break; - case 7: - return true; } + if (RepairActions.TrySelectRepairFromMenu(base.GameGui, num.Value)) + { + EnterState(EState.WaitingForAddon); + } + return true; + } + default: + return false; } } @@ -604,25 +269,5 @@ internal static class RepairGear { return true; } - - static bool _206D_202D_200D_200B_202D_202C_206E_206E_202C_206E_206F_206A_200D_206C_200C_202C_202C_206C_206D_200B_200F_206D_200E_202C_202A_206B_206F_200E_206C_200F_206C_202A_200C_206B_206C_200B_200B_200E_202E_202E(IGameGui P_0) - { - return RepairActions.IsRepairAddonReady(P_0); - } - - static int? _202E_200D_202B_206B_200E_200D_206B_200C_200B_202C_200F_200F_206A_200E_202C_206C_200C_202C_202D_202A_202A_206C_206F_206C_200F_200E_200B_200F_206C_202D_206B_202E_206E_202B_202A_200B_202E_200B_206C_206A_202E(IDataManager P_0, uint P_1) - { - return RepairActions.FindRepairIndex(P_0, P_1); - } - - static void _202E_200D_202B_202E_202A_200F_206B_206A_200E_206D_206D_206A_206A_202D_202D_200D_200C_200F_202A_206F_202D_202A_200F_206D_202B_200D_206B_206D_206F_200D_202C_200D_206A_202D_202C_202A_206D_200C_200F_200C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static bool _206D_200B_200C_206A_200B_202E_200B_200F_206D_200C_200D_206D_206E_206D_202C_202B_206A_202D_202C_206B_202D_202D_206A_202B_206E_206F_200D_202D_200C_202B_202D_200E_206B_200B_200B_202B_200B_206C_202E(IGameGui P_0, int P_1) - { - return RepairActions.TrySelectRepairFromMenu(P_0, P_1); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Common/SendNotification.cs b/Questionable/Questionable.Controller.Steps.Common/SendNotification.cs index ab06988..7668654 100644 --- a/Questionable/Questionable.Controller.Steps.Common/SendNotification.cs +++ b/Questionable/Questionable.Controller.Steps.Common/SendNotification.cs @@ -1,7 +1,3 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.Text; using Dalamud.Game.Text.SeStringHandling; using Dalamud.Plugin.Services; @@ -17,402 +13,148 @@ internal static class SendNotification { internal sealed class Factory(Configuration configuration, AutoDutyIpc autoDutyIpc, AutoHookIpc autoHookIpc, BossModIpc bossModIpc, TerritoryData territoryData) : SimpleTaskFactory() { - [MethodImpl(MethodImplOptions.NoInlining)] public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { - EInteractionType eInteractionType = _202E_200B_202D_202D_200C_200E_202D_202E_202B_200C_206A_200D_200C_202D_206E_206A_200F_206B_206B_202C_206C_202B_200B_200B_206F_200E_202B_200B_206A_202A_206E_200E_206E_202A_202A_206B_200C_202C_206A_200F_202E(step); - int num = ((eInteractionType > EInteractionType.SinglePlayerDuty) ? (-1478149782) : (-1478149769)); - Task result = default(Task); - while (true) + switch (step.InteractionType) { - int num2 = num; - int num3 = -1478149766; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + case EInteractionType.Snipe: + if (!configuration.General.AutoSnipe) { - case 4: - num = -1478149773; - break; - case 1: - num = (autoHookIpc.IsAvailable() ? (-1478149773) : (-1478149767)); - break; - case 11: - num = (bossModIpc.IsConfiguredToRunSoloInstance(quest.Id, _202B_206C_206E_202D_202E_206F_206B_200E_200B_202D_200C_206C_206E_200F_206D_202E_206D_200C_200D_200D_202C_206B_206D_200D_200B_200C_206A_200B_200C_206E_202C_206E_202B_202A_202B_200E_206F_200D_206A_206A_202E(step)) ? (-1478149773) : (-1478149776)); - break; - case 15: - return result; - case 13: - num = ((eInteractionType == EInteractionType.Duty) ? (-1478149761) : (-1478149763)); - break; - case 0: + return new Task(step.InteractionType, step.Comment); + } + break; + case EInteractionType.Duty: + if (!autoDutyIpc.IsConfiguredToRunContent(step.DutyOptions)) { - EInteractionType interactionType = _202E_200B_202D_202D_200C_200E_202D_202E_202B_200C_206A_200D_200C_202D_206E_206A_200F_206B_206B_202C_206C_202B_200B_200B_206F_200E_202B_200B_206A_202A_206E_200E_206E_202A_202A_206B_200C_202C_206A_200F_202E(step); - DutyOptions dutyOptions = _200F_200C_206E_206F_206B_202E_206B_200E_202D_202D_202C_202D_200D_202E_202E_200E_206A_200E_202A_200C_200B_206F_206C_206F_200C_200B_200F_206A_202D_202D_206F_202D_206A_202E_202D_200D_200F_202A_202D_202E(step); - uint? num5 = ((dutyOptions != null) ? new uint?(_202C_200E_202A_200D_200D_202D_200D_200B_200E_206F_206F_206C_200D_202C_200C_202D_206F_200E_202B_200B_200C_200D_206D_206B_206D_200D_206B_200D_202E_202B_206E_200B_202D_206C_200B_200E_206C_202D_202E_206D_202E(dutyOptions)) : ((uint?)null)); + EInteractionType interactionType = step.InteractionType; + uint? num = step.DutyOptions?.ContentFinderConditionId; object comment; - if (num5.HasValue) + if (num.HasValue) { - uint valueOrDefault = num5.GetValueOrDefault(); + uint valueOrDefault = num.GetValueOrDefault(); comment = territoryData.GetContentFinderCondition(valueOrDefault)?.Name; } else { - comment = _206F_206E_206A_202C_202E_200E_206F_202C_206F_206E_206F_206F_206C_202A_200C_202B_202A_206A_200D_202C_202C_206F_202A_202B_206B_200F_200C_206C_200C_206C_200E_202C_202C_202B_202C_206E_202B_206C_206C_206E_202E(step); + comment = step.Comment; } - result = new Task(interactionType, (string?)comment); - num = -1478149771; - break; + return new Task(interactionType, (string?)comment); } - case 3: - result = new Task(_202E_200B_202D_202D_200C_200E_202D_202E_202B_200C_206A_200D_200C_202D_206E_206A_200F_206B_206B_202C_206C_202B_200B_200B_206F_200E_202B_200B_206A_202A_206E_200E_206E_202A_202A_206B_200C_202C_206A_200F_202E(step), _206F_206E_206A_202C_202E_200E_206F_202C_206F_206E_206F_206F_206C_202A_200C_202B_202A_206A_200D_202C_202C_206F_202A_202B_206B_200F_200C_206C_200C_206C_200E_202C_202C_202B_202C_206E_202B_206C_206C_206E_202E(step) ?? global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1221849415)); - num = -1478149771; - break; - case 6: - num = -1478149773; - break; - case 2: - num = (configuration.General.AutoSnipe ? (-1478149773) : (-1478149772)); - break; - case 12: - num = ((eInteractionType == EInteractionType.Fish) ? (-1478149765) : (-1478149764)); - break; - case 14: - result = new Task(_202E_200B_202D_202D_200C_200E_202D_202E_202B_200C_206A_200D_200C_202D_206E_206A_200F_206B_206B_202C_206C_202B_200B_200B_206F_200E_202B_200B_206A_202A_206E_200E_206E_202A_202A_206B_200C_202C_206A_200F_202E(step), _206F_206E_206A_202C_202E_200E_206F_202C_206F_206E_206F_206F_206C_202A_200C_202B_202A_206A_200D_202C_202C_206F_202A_202B_206B_200F_200C_206C_200C_206C_200E_202C_202C_202B_202C_206E_202B_206C_206C_206E_202E(step)); - num = -1478149771; - break; - case 5: - num = (autoDutyIpc.IsConfiguredToRunContent(_200F_200C_206E_206F_206B_202E_206B_200E_202D_202D_202C_202D_200D_202E_202E_200E_206A_200E_202A_200C_200B_206F_206C_206F_200C_200B_200F_206A_202D_202D_206F_202D_206A_202E_202D_200D_200F_202A_202D_202E(step)) ? (-1478149773) : (-1478149766)); - break; - case 9: - result = null; - num = -1478149771; - break; - case 10: - result = new Task(_202E_200B_202D_202D_200C_200E_202D_202E_202B_200C_206A_200D_200C_202D_206E_206A_200F_206B_206B_202C_206C_202B_200B_200B_206F_200E_202B_200B_206A_202A_206E_200E_206E_202A_202A_206B_200C_202C_206A_200F_202E(step), quest.Info.Name); - num = -1478149771; - break; - case 16: - num = ((eInteractionType == EInteractionType.Snipe) ? (-1478149768) : (-1478149770)); - break; - case 7: - num = ((eInteractionType == EInteractionType.SinglePlayerDuty) ? (-1478149775) : (-1478149762)); - break; - case 8: - num = -1478149769; - break; + break; + case EInteractionType.SinglePlayerDuty: + if (!bossModIpc.IsConfiguredToRunSoloInstance(quest.Id, step.SinglePlayerDutyOptions)) + { + return new Task(step.InteractionType, quest.Info.Name); } + break; + case EInteractionType.Fish: + if (!autoHookIpc.IsAvailable()) + { + return new Task(step.InteractionType, step.Comment ?? "AutoHook plugin is required for automatic fishing"); + } + break; } - } - - static EInteractionType _202E_200B_202D_202D_200C_200E_202D_202E_202B_200C_206A_200D_200C_202D_206E_206A_200F_206B_206B_202C_206C_202B_200B_200B_206F_200E_202B_200B_206A_202A_206E_200E_206E_202A_202A_206B_200C_202C_206A_200F_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static string _206F_206E_206A_202C_202E_200E_206F_202C_206F_206E_206F_206F_206C_202A_200C_202B_202A_206A_200D_202C_202C_206F_202A_202B_206B_200F_200C_206C_200C_206C_200E_202C_202C_202B_202C_206E_202B_206C_206C_206E_202E(QuestStep P_0) - { - return P_0.Comment; - } - - static DutyOptions _200F_200C_206E_206F_206B_202E_206B_200E_202D_202D_202C_202D_200D_202E_202E_200E_206A_200E_202A_200C_200B_206F_206C_206F_200C_200B_200F_206A_202D_202D_206F_202D_206A_202E_202D_200D_200F_202A_202D_202E(QuestStep P_0) - { - return P_0.DutyOptions; - } - - static uint _202C_200E_202A_200D_200D_202D_200D_200B_200E_206F_206F_206C_200D_202C_200C_202D_206F_200E_202B_200B_200C_200D_206D_206B_206D_200D_206B_200D_202E_202B_206E_200B_202D_206C_200B_200E_206C_202D_202E_206D_202E(DutyOptions P_0) - { - return P_0.ContentFinderConditionId; - } - - static SinglePlayerDutyOptions _202B_206C_206E_202D_202E_206F_206B_200E_200B_202D_200C_206C_206E_200F_206D_202E_206D_200C_200D_200D_202C_206B_206D_200D_200B_200C_206A_200B_200C_206E_202C_206E_202B_202A_202B_200E_206F_200D_206A_206A_202E(QuestStep P_0) - { - return P_0.SinglePlayerDutyOptions; + return null; } } internal sealed record Task(EInteractionType InteractionType, string? Comment) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202B_206F_206A_202C_200B_202C_206E_202E_206C_206A_200D_202E_206C_200D_200F_202B_206C_200F_202D_206A_206E_202E_202E_202C_200C_206B_202A_202C_200F_206E_200B_206A_206E_206A_206E_200B_206C_206B_202A_200E_202E(typeof(Task).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1681305913); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206E_206C_202B_200D_206C_200F_206B_200F_202E_200E_200B_206E_206B_200C_206B_206A_202B_206D_202A_200C_200F_206B_200D_200F_202D_200D_200D_206A_200F_206E_200F_202A_202A_200F_200C_202B_206B_206E_202A_202A_202E(); - _200B_206B_202A_206F_200F_200E_206D_200D_202C_206F_206C_202E_202D_206B_202B_200F_202C_202A_200F_200F_200E_206B_200D_200C_202A_200B_200F_200F_202C_206B_202E_200F_206B_202E_206A_206C_202D_200E_206F_206D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(702947867)); - _200B_206B_202A_206F_200F_200E_206D_200D_202C_206F_206C_202E_202D_206B_202B_200F_202C_202A_200F_200F_200E_206B_200D_200C_202A_200B_200F_200F_202C_206B_202E_200F_206B_202E_206A_206C_202D_200E_206F_206D_202E(builder, InteractionType.ToString()); - _200B_206B_202A_206F_200F_200E_206D_200D_202C_206F_206C_202E_202D_206B_202B_200F_202C_202A_200F_200F_200E_206B_200D_200C_202A_200B_200F_200F_202C_206B_202E_200F_206B_202E_206A_206C_202D_200E_206F_206D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(430956117)); - _202E_202C_200C_206C_202E_206C_206F_206E_202B_200B_200D_206C_200D_202B_206B_202C_200C_206E_206D_206E_206E_200B_206A_202E_200D_206B_200D_202B_202A_202E_200D_206C_206C_206F_206A_200B_200D_200E_202C_202B_202E(builder, (object?)Comment); - return true; - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? (-845795892) : (-845795894)); - while (true) - { - int num2 = num; - int num3 = -845795889; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = ((!_206C_200B_202D_200D_200D_206B_206C_200D_200F_200C_200F_202B_200F_200C_206A_202E_200F_206E_206C_202C_202B_202D_206F_200C_206A_206A_202D_206D_206B_200E_206E_202D_200F_200C_200D_206A_202A_206D_202C_206F_202E(EqualityContract, other.EqualityContract)) ? (-845795895) : (-845795891)); - break; - case 5: - num = (((object)other == null) ? (-845795895) : (-845795893)); - break; - case 6: - return false; - case 0: - num = -845795894; - break; - case 2: - num = ((!EqualityComparer<EInteractionType>.Default.Equals(InteractionType, other.InteractionType)) ? (-845795895) : (-845795890)); - break; - case 1: - return EqualityComparer<string>.Default.Equals(Comment, other.Comment); - case 3: - return true; - } - } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type? _202B_206F_206A_202C_200B_202C_206E_202E_206C_206A_200D_202E_206C_200D_200F_202B_206C_200F_202D_206A_206E_202E_202E_202C_200C_206B_202A_202C_200F_206E_200B_206A_206E_206A_206E_200B_206C_206B_202A_200E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206E_206C_202B_200D_206C_200F_206B_200F_202E_200E_200B_206E_206B_200C_206B_206A_202B_206D_202A_200C_200F_206B_200D_200F_202D_200D_200D_206A_200F_206E_200F_202A_202A_200F_200C_202B_206B_206E_202A_202A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder? _200B_206B_202A_206F_200F_200E_206D_200D_202C_206F_206C_202E_202D_206B_202B_200F_202C_202A_200F_200F_200E_206B_200D_200C_202A_200B_200F_200F_202C_206B_202E_200F_206B_202E_206A_206C_202D_200E_206F_206D_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _202E_202C_200C_206C_202E_206C_206F_206E_202B_200B_200D_206C_200D_202B_206B_202C_200C_206E_206D_206E_206E_200B_206A_202E_200D_206B_200D_202B_202A_202E_200D_206C_206C_206F_206A_200B_200D_200E_202C_202B_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } - - static bool _206C_200B_202D_200D_200D_206B_206C_200D_200F_200C_200F_202B_200F_200C_206A_202E_200F_206E_206C_202C_202B_202D_206F_200C_206A_206A_202D_206D_206B_200E_206E_202D_200F_200C_200D_206A_202A_206D_202C_206F_202E(Type? P_0, Type? P_1) - { - return P_0 == P_1; + return "SendNotification"; } } internal sealed class Executor(NotificationService notificationService, IChatGui chatGui, Configuration configuration) : TaskExecutor<Task>() { - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - int num = (configuration.Notifications.Enabled ? 1129159902 : 1129159890); - string text = default(string); - string text2 = default(string); - EInteractionType interactionType = default(EInteractionType); - XivChatType chatType = default(XivChatType); - XivChatEntry xivChatEntry2 = default(XivChatEntry); - while (true) + if (!configuration.Notifications.Enabled) { - int num2 = num; - int num3 = 1129159886; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 18: - text = $"{base.Task.InteractionType}"; - num = 1129159877; - break; - case 8: - text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-279581808); - num = 1129159877; - break; - case 10: - num = 1129159915; - break; - case 6: - num = 1129159900; - break; - case 21: - notificationService.Notify(base.Task.InteractionType, text2); - return true; - case 33: - num = ((interactionType == EInteractionType.Snipe) ? 1129159891 : 1129159880); - break; - case 3: - switch (interactionType) - { - case EInteractionType.Duty: - break; - default: - goto IL_019b; - case EInteractionType.WaitForManualProgress: - goto IL_037c; - case EInteractionType.SinglePlayerDuty: - goto IL_0559; - } - goto case 8; - case 30: - text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1806447196); - num = 1129159877; - break; - case 23: - num = 1129159900; - break; - case 22: - num = 1129159890; - break; - case 28: - return false; - case 11: - text2 = text; - num = (_206E_202D_200F_202A_200F_202D_202D_200C_206F_206D_206B_206A_200D_206F_202C_206D_200C_206A_202E_200D_202C_202C_206F_200E_206D_202A_202B_200F_206A_206E_206D_206E_206F_200F_206B_200E_202C_206B_206E_202E(base.Task.Comment) ? 1129159912 : 1129159898); - break; - case 1: - num = ((chatType - 10 > (XivChatType)5) ? 1129159915 : 1129159883); - break; - case 16: - interactionType = base.Task.InteractionType; - num = ((interactionType > EInteractionType.Snipe) ? 1129159892 : 1129159885); - break; - case 19: - num = 1129159915; - break; - case 17: - { - XivChatEntry xivChatEntry = xivChatEntry2; - _206A_200D_202B_200E_202B_200E_206E_206F_206B_206D_200E_206F_202A_206F_206D_202D_206F_206A_206F_206A_206A_200C_206B_206C_206F_200C_206C_200F_202D_206C_206D_206F_200C_200B_202A_200E_200D_202D_202B_202E_202E(chatGui, xivChatEntry); - num = 1129159899; - break; - } - case 0: - num = (((int)chatType <= 107) ? 1129159883 : 1129159894); - break; - case 7: - num = ((chatType == XivChatType.NPCDialogueAnnouncements) ? 1129159883 : 1129159901); - break; - case 38: - num = ((configuration.Notifications.ChatType == XivChatType.None) ? 1129159899 : 1129159882); - break; - case 13: - num = ((interactionType == EInteractionType.CriticalEncounter) ? 1129159888 : 1129159897); - break; - case 31: - num = ((chatType == XivChatType.NPCDialogue) ? 1129159883 : 1129159881); - break; - case 24: - num = 1129159915; - break; - case 32: - num = ((interactionType == EInteractionType.Fish) ? 1129159891 : 1129159875); - break; - case 9: - num = (((int)chatType < 16) ? 1129159887 : 1129159914); - break; - case 29: - goto IL_037c; - case 37: - { - XivChatEntry xivChatEntry4 = _202A_202B_202E_200F_206A_200E_206B_200E_206E_200F_202B_200F_206B_202B_206F_200F_206D_206E_206E_202E_206F_206F_200D_200D_200B_202C_200D_200D_206F_206A_206E_206B_206D_202C_206F_200D_206C_200D_206E_200E_202E(); - _200D_200E_200E_206B_202C_206E_206C_202A_200F_200B_200C_206A_202B_200F_200E_206E_206D_206C_200F_206B_200E_206A_206F_206D_206E_206A_206D_200C_206E_202C_200B_206C_200D_200F_200E_200C_202D_206C_206A_202A_202E(xivChatEntry4, _202E_202E_200C_200D_206C_200C_202B_206B_202B_202A_200C_202E_206C_206A_202A_206F_206B_200F_200D_206E_202B_206A_200D_200B_202B_202B_200D_200B_206E_206C_206A_200F_206A_202B_200C_202A_202A_206D_200F_202E_202E(_200F_202C_202D_200C_206D_200C_206A_200C_202B_206A_200D_200E_200C_206F_206D_202A_206C_200B_206E_200C_200B_206D_202A_202E_202E_202A_202E_200B_200E_200E_202D_206D_202A_202C_200D_206F_200B_200F_206A_202A_202E(_200C_202C_202B_202C_202B_206B_206A_202E_206B_200C_202D_202A_200B_202A_206E_206F_206D_200E_202C_206A_200C_202D_206C_206D_206E_200F_206C_206C_202E_202D_206A_202A_200B_206C_206C_206C_200F_200B_206A_202D_202E(_200C_202B_206A_206A_206C_206B_202B_200F_200F_206B_206D_200F_202D_200D_202C_202B_206C_202B_206C_202A_202E_202A_206E_200C_202B_200F_206B_206A_202C_202A_206A_206F_200F_200E_200F_202C_206F_206C_200E_206D_202E(), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-365234196), (ushort)576), text2))); - _200E_200E_200D_202E_200B_206E_200D_206F_200B_206D_206A_200F_202C_200E_206F_202A_200C_202E_206B_206A_200C_206F_200C_202B_200F_206F_202E_202D_206F_206D_202C_200F_206B_200E_200E_202C_206B_202B_206C_200C_202E(xivChatEntry4, (XivChatType?)configuration.Notifications.ChatType); - xivChatEntry2 = xivChatEntry4; - num = 1129159903; - break; - } - case 20: - text2 = _202C_200E_206A_200E_206D_200E_200F_206D_206F_200C_202B_206E_200D_200C_202A_206E_202C_200C_206C_200F_206B_206A_206A_200F_202B_202D_206B_200F_202E_202E_206E_206A_202C_206B_200D_202C_202B_200D_206B_206A_202E(text2, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1186344051), base.Task.Comment); - num = 1129159912; - break; - case 14: - num = ((chatType - 36 <= XivChatType.Debug) ? 1129159883 : 1129159874); - break; - case 5: - { - XivChatEntry xivChatEntry3 = _202A_202B_202E_200F_206A_200E_206B_200E_206E_200F_202B_200F_206B_202B_206F_200F_206D_206E_206E_202E_206F_206F_200D_200D_200B_202C_200D_200D_206F_206A_206E_206B_206D_202C_206F_200D_206C_200D_206E_200E_202E(); - _200D_200E_200E_206B_202C_206E_206C_202A_200F_200B_200C_206A_202B_200F_200E_206E_206D_206C_200F_206B_200E_206A_206F_206D_206E_206A_206D_200C_206E_202C_200B_206C_200D_200F_200E_200C_202D_206C_206A_202A_202E(xivChatEntry3, _200C_206A_206D_202A_202C_202B_202B_202D_202D_200F_200E_206C_206B_206B_202A_200B_200C_200F_200D_206C_202E_206B_200F_206C_206D_206F_206D_206E_206A_202C_206E_202E_200B_206A_206F_200E_206D_206D_200E_206B_202E(text2)); - _200E_200E_200D_202E_200B_206E_200D_206F_200B_206D_206A_200F_202C_200E_206F_202A_200C_202E_206B_206A_200C_206F_200C_202B_200F_206F_202E_202D_206F_206D_202C_200F_206B_200E_200E_202C_206B_202B_206C_200C_202E(xivChatEntry3, (XivChatType?)configuration.Notifications.ChatType); - _206B_206A_200E_202D_200D_200E_202D_202A_200E_202B_206E_206E_202D_206B_202A_202C_206D_206A_206E_206D_202D_206B_202D_200E_206A_202D_200B_202B_206D_206E_202C_200E_206B_200E_202C_200C_206C_206C_200B_202D_202E(xivChatEntry3, _202E_202E_200C_200D_206C_200C_202B_206B_202B_202A_200C_202E_206C_206A_202A_206F_206B_200F_200D_206E_202B_206A_200D_200B_202B_202B_200D_200B_206E_206C_206A_200F_206A_202B_200C_202A_202A_206D_200F_202E_202E(_200C_202C_202B_202C_202B_206B_206A_202E_206B_200C_202D_202A_200B_202A_206E_206F_206D_200E_202C_206A_200C_202D_206C_206D_206E_200F_206C_206C_202E_202D_206A_202A_200B_206C_206C_206C_200F_200B_206A_202D_202E(_200C_202B_206A_206A_206C_206B_202B_200F_200F_206B_206D_200F_202D_200D_202C_202B_206C_202B_206C_202A_202E_202A_206E_200C_202B_200F_206B_206A_202C_202A_206A_206F_200F_200E_200F_202C_206F_206C_200E_206D_202E(), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort)576))); - xivChatEntry2 = xivChatEntry3; - num = 1129159903; - break; - } - case 39: - num = ((chatType == XivChatType.NoviceNetwork) ? 1129159883 : 1129159884); - break; - case 15: - num = ((chatType == XivChatType.FreeCompany) ? 1129159883 : 1129159913); - break; - case 36: - num = (((int)chatType <= 23) ? 1129159883 : 1129159893); - break; - case 27: - num = ((chatType > XivChatType.Yell) ? 1129159895 : 1129159873); - break; - case 26: - num = ((interactionType == EInteractionType.Instruction) ? 1129159891 : 1129159918); - break; - case 25: - num = ((chatType > XivChatType.CrossLinkShell1) ? 1129159889 : 1129159917); - break; - case 34: - goto IL_0559; - case 35: - num = ((chatType == XivChatType.CrossParty) ? 1129159883 : 1129159872); - break; - case 2: - num = ((chatType == XivChatType.Yell) ? 1129159883 : 1129159876); - break; - case 12: - num = 1129159915; - break; - case 4: - { - chatType = configuration.Notifications.ChatType; - num = (((int)chatType < 101) ? 1129159879 : 1129159886); - break; - } - IL_0559: - text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-984674976); - num = 1129159877; - break; - IL_037c: - text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2076274604); - num = 1129159877; - break; - IL_019b: - num = 1129159919; - break; - } + return false; } + string text; + switch (base.Task.InteractionType) + { + case EInteractionType.Duty: + text = "Duty"; + break; + case EInteractionType.SinglePlayerDuty: + text = "Single player duty"; + break; + case EInteractionType.CriticalEncounter: + text = "Critical encounter"; + break; + case EInteractionType.WaitForManualProgress: + case EInteractionType.Snipe: + case EInteractionType.Instruction: + case EInteractionType.Fish: + text = "Manual interaction required"; + break; + default: + text = $"{base.Task.InteractionType}"; + break; + } + string text2 = text; + if (!string.IsNullOrEmpty(base.Task.Comment)) + { + text2 = text2 + " - " + base.Task.Comment; + } + if (configuration.Notifications.ChatType != XivChatType.None) + { + XivChatEntry xivChatEntry; + switch (configuration.Notifications.ChatType) + { + case XivChatType.Say: + case XivChatType.Shout: + case XivChatType.TellOutgoing: + case XivChatType.TellIncoming: + case XivChatType.Party: + case XivChatType.Alliance: + case XivChatType.Ls1: + case XivChatType.Ls2: + case XivChatType.Ls3: + case XivChatType.Ls4: + case XivChatType.Ls5: + case XivChatType.Ls6: + case XivChatType.Ls7: + case XivChatType.Ls8: + case XivChatType.FreeCompany: + case XivChatType.NoviceNetwork: + case XivChatType.Yell: + case XivChatType.CrossParty: + case XivChatType.PvPTeam: + case XivChatType.CrossLinkShell1: + case XivChatType.NPCDialogue: + case XivChatType.NPCDialogueAnnouncements: + case XivChatType.CrossLinkShell2: + case XivChatType.CrossLinkShell3: + case XivChatType.CrossLinkShell4: + case XivChatType.CrossLinkShell5: + case XivChatType.CrossLinkShell6: + case XivChatType.CrossLinkShell7: + case XivChatType.CrossLinkShell8: + xivChatEntry = new XivChatEntry + { + Message = text2, + Type = configuration.Notifications.ChatType, + Name = new SeStringBuilder().AddUiForeground("Questionable", 576).Build() + }; + break; + default: + xivChatEntry = new XivChatEntry + { + Message = new SeStringBuilder().AddUiForeground("[Questionable] ", 576).Append(text2).Build(), + Type = configuration.Notifications.ChatType + }; + break; + } + XivChatEntry chat = xivChatEntry; + chatGui.Print(chat); + } + notificationService.Notify(base.Task.InteractionType, text2); + return true; } public override ETaskResult Update() @@ -424,65 +166,5 @@ internal static class SendNotification { return false; } - - static bool _206E_202D_200F_202A_200F_202D_202D_200C_206F_206D_206B_206A_200D_206F_202C_206D_200C_206A_202E_200D_202C_202C_206F_200E_206D_202A_202B_200F_206A_206E_206D_206E_206F_200F_206B_200E_202C_206B_206E_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static string _202C_200E_206A_200E_206D_200E_200F_206D_206F_200C_202B_206E_200D_200C_202A_206E_202C_200C_206C_200F_206B_206A_206A_200F_202B_202D_206B_200F_202E_202E_206E_206A_202C_206B_200D_202C_202B_200D_206B_206A_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static XivChatEntry _202A_202B_202E_200F_206A_200E_206B_200E_206E_200F_202B_200F_206B_202B_206F_200F_206D_206E_206E_202E_206F_206F_200D_200D_200B_202C_200D_200D_206F_206A_206E_206B_206D_202C_206F_200D_206C_200D_206E_200E_202E() - { - return new XivChatEntry(); - } - - static SeString _200C_206A_206D_202A_202C_202B_202B_202D_202D_200F_200E_206C_206B_206B_202A_200B_200C_200F_200D_206C_202E_206B_200F_206C_206D_206F_206D_206E_206A_202C_206E_202E_200B_206A_206F_200E_206D_206D_200E_206B_202E(string P_0) - { - return P_0; - } - - static void _200D_200E_200E_206B_202C_206E_206C_202A_200F_200B_200C_206A_202B_200F_200E_206E_206D_206C_200F_206B_200E_206A_206F_206D_206E_206A_206D_200C_206E_202C_200B_206C_200D_200F_200E_200C_202D_206C_206A_202A_202E(XivChatEntry P_0, SeString P_1) - { - P_0.Message = P_1; - } - - static void _200E_200E_200D_202E_200B_206E_200D_206F_200B_206D_206A_200F_202C_200E_206F_202A_200C_202E_206B_206A_200C_206F_200C_202B_200F_206F_202E_202D_206F_206D_202C_200F_206B_200E_200E_202C_206B_202B_206C_200C_202E(XivChatEntry P_0, XivChatType? P_1) - { - P_0.Type = P_1; - } - - static SeStringBuilder _200C_202B_206A_206A_206C_206B_202B_200F_200F_206B_206D_200F_202D_200D_202C_202B_206C_202B_206C_202A_202E_202A_206E_200C_202B_200F_206B_206A_202C_202A_206A_206F_200F_200E_200F_202C_206F_206C_200E_206D_202E() - { - return new SeStringBuilder(); - } - - static SeStringBuilder _200C_202C_202B_202C_202B_206B_206A_202E_206B_200C_202D_202A_200B_202A_206E_206F_206D_200E_202C_206A_200C_202D_206C_206D_206E_200F_206C_206C_202E_202D_206A_202A_200B_206C_206C_206C_200F_200B_206A_202D_202E(SeStringBuilder P_0, string P_1, ushort P_2) - { - return P_0.AddUiForeground(P_1, P_2); - } - - static SeString _202E_202E_200C_200D_206C_200C_202B_206B_202B_202A_200C_202E_206C_206A_202A_206F_206B_200F_200D_206E_202B_206A_200D_200B_202B_202B_200D_200B_206E_206C_206A_200F_206A_202B_200C_202A_202A_206D_200F_202E_202E(SeStringBuilder P_0) - { - return P_0.Build(); - } - - static void _206B_206A_200E_202D_200D_200E_202D_202A_200E_202B_206E_206E_202D_206B_202A_202C_206D_206A_206E_206D_202D_206B_202D_200E_206A_202D_200B_202B_206D_206E_202C_200E_206B_200E_202C_200C_206C_206C_200B_202D_202E(XivChatEntry P_0, SeString P_1) - { - P_0.Name = P_1; - } - - static SeStringBuilder _200F_202C_202D_200C_206D_200C_206A_200C_202B_206A_200D_200E_200C_206F_206D_202A_206C_200B_206E_200C_200B_206D_202A_202E_202E_202A_202E_200B_200E_200E_202D_206D_202A_202C_200D_206F_200B_200F_206A_202A_202E(SeStringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static void _206A_200D_202B_200E_202B_200E_206E_206F_206B_206D_200E_206F_202A_206F_206D_202D_206F_206A_206F_206A_206A_200C_206B_206C_206F_200C_206C_200F_202D_206C_206D_206F_200C_200B_202A_200E_200D_202D_202B_202E_202E(IChatGui P_0, XivChatEntry P_1) - { - P_0.Print(P_1); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Common/WaitCondition.cs b/Questionable/Questionable.Controller.Steps.Common/WaitCondition.cs index 0824d2d..fcbf0b8 100644 --- a/Questionable/Questionable.Controller.Steps.Common/WaitCondition.cs +++ b/Questionable/Questionable.Controller.Steps.Common/WaitCondition.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; namespace Questionable.Controller.Steps.Common; @@ -9,96 +6,10 @@ internal static class WaitCondition { internal sealed record Task(Func<bool> Predicate, string Description) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200C_200D_206B_202D_200F_206C_206B_206C_200B_206B_202B_202D_200C_200C_202D_202C_202D_200F_202B_202E_202D_206E_202A_200F_200C_202C_206F_206F_206F_206F_206F_202A_202A_206B_200F_200B_206E_206E_206C_202D_202E(typeof(Task).TypeHandle); - } - } - public override string ToString() { return Description; } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200F_206C_202E_200F_206D_200B_200B_206E_200B_202D_200F_202B_202E_200E_202B_206A_202A_206E_202E_200F_200E_206C_206B_206F_206A_202C_202A_202E_202A_206B_200C_202B_200D_206D_202D_200C_200C_200D_206F_206D_202E(); - _206F_206D_200B_206F_206A_202B_200E_206A_200E_206E_206A_200D_206F_200E_200E_200E_206F_206B_206A_200E_202C_200D_206C_202B_202D_200C_206B_202D_206A_206E_200B_206D_200F_206F_202B_206A_202C_200E_200E_202D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-466916562)); - _206C_206E_206A_200B_206E_206C_206E_200B_200C_200F_202C_200B_206B_206C_202E_202D_202D_206A_206C_206E_206B_206D_206B_200F_206B_202C_206C_206A_202D_202D_200E_200F_200E_206B_202E_200F_202A_202A_206D_206B_202E(builder, (object)Predicate); - _206F_206D_200B_206F_206A_202B_200E_206A_200E_206E_206A_200D_206F_200E_200E_200E_206F_206B_206A_200E_202C_200D_206C_202B_202D_200C_206B_202D_206A_206E_200B_206D_200F_206F_202B_206A_202C_200E_200E_202D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-127749891)); - _206C_206E_206A_200B_206E_206C_206E_200B_200C_200F_202C_200B_206B_206C_202E_202D_202D_206A_206C_206E_206B_206D_206B_200F_206B_202C_206C_206A_202D_202D_200E_200F_200E_206B_202E_200F_202A_202A_206D_206B_202E(builder, (object)Description); - return true; - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? 1126109151 : 1126109144); - while (true) - { - int num2 = num; - int num3 = 1126109146; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - return false; - case 3: - num = ((!EqualityComparer<Func<bool>>.Default.Equals(Predicate, other.Predicate)) ? 1126109148 : 1126109147); - break; - case 4: - num = ((!_200D_206C_206C_206C_206B_206D_206C_206A_206F_202B_200F_206B_200B_206B_206C_202B_200B_206D_200E_206F_202C_200E_202C_200B_206E_206C_202A_200C_202A_200F_206B_200B_206E_206C_200E_202B_200F_206D_200B_200F_202E(EqualityContract, other.EqualityContract)) ? 1126109148 : 1126109145); - break; - case 1: - return EqualityComparer<string>.Default.Equals(Description, other.Description); - case 2: - num = (((object)other == null) ? 1126109148 : 1126109150); - break; - case 5: - return true; - case 0: - num = 1126109144; - break; - } - } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200C_200D_206B_202D_200F_206C_206B_206C_200B_206B_202B_202D_200C_200C_202D_202C_202D_200F_202B_202E_202D_206E_202A_200F_200C_202C_206F_206F_206F_206F_206F_202A_202A_206B_200F_200B_206E_206E_206C_202D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _200F_206C_202E_200F_206D_200B_200B_206E_200B_202D_200F_202B_202E_200E_202B_206A_202A_206E_202E_200F_200E_206C_206B_206F_206A_202C_202A_202E_202A_206B_200C_202B_200D_206D_202D_200C_200C_200D_206F_206D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206F_206D_200B_206F_206A_202B_200E_206A_200E_206E_206A_200D_206F_200E_200E_200E_206F_206B_206A_200E_202C_200D_206C_202B_202D_200C_206B_202D_206A_206E_200B_206D_200F_206F_202B_206A_202C_200E_200E_202D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206C_206E_206A_200B_206E_206C_206E_200B_200C_200F_202C_200B_206B_206C_202E_202D_202D_206A_206C_206E_206B_206D_206B_200F_206B_202C_206C_206A_202D_202D_200E_200F_200E_206B_202E_200F_202A_202A_206D_206B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200D_206C_206C_206C_206B_206D_206C_206A_206F_202B_200F_206B_200B_206B_206C_202B_200B_206D_200E_206F_202C_200E_202C_200B_206E_206C_202A_200C_202A_200F_206B_200B_206E_206C_200E_202B_200F_206D_200B_200F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } } internal sealed class WaitConditionExecutor : TaskExecutor<Task> @@ -112,46 +23,20 @@ internal static class WaitCondition public override ETaskResult Update() { - int num = ((_continueAtMs != 0L) ? (-757332820) : (-757332817)); - while (true) + if (_continueAtMs == 0L && base.Task.Predicate()) { - int num2 = num; - int num3 = -757332822; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - _continueAtMs = _200E_206C_200D_200F_206F_202B_200B_206C_206D_206C_202E_202A_206D_200D_206A_200E_202D_200E_200B_200D_206D_200B_200B_202A_202D_200C_200B_206C_200E_202C_206A_202B_200B_206E_200B_200D_200D_200B_200B_206A_202E() + 500; - num = -757332820; - break; - case 4: - return ETaskResult.TaskComplete; - case 2: - num = -757332817; - break; - case 6: - num = ((_continueAtMs <= 0) ? (-757332821) : (-757332823)); - break; - case 1: - return ETaskResult.StillRunning; - case 5: - num = ((!base.Task.Predicate()) ? (-757332820) : (-757332822)); - break; - case 3: - num = ((_200E_206C_200D_200F_206F_202B_200B_206C_206D_206C_202E_202A_206D_200D_206A_200E_202D_200E_200B_200D_206D_200B_200B_202A_202D_200C_200B_206C_200E_202C_206A_202B_200B_206E_200B_200D_200D_200B_200B_206A_202E() >= _continueAtMs) ? (-757332818) : (-757332821)); - break; - } + _continueAtMs = Environment.TickCount64 + 500; } + if (_continueAtMs <= 0 || Environment.TickCount64 < _continueAtMs) + { + return ETaskResult.StillRunning; + } + return ETaskResult.TaskComplete; } public override bool ShouldInterruptOnDamage() { return false; } - - static long _200E_206C_200D_200F_206F_202B_200B_206C_206D_206C_202E_202A_206D_200D_206A_200E_202D_200E_200B_200D_206D_200B_200B_202A_202D_200C_200B_206C_200E_202C_206A_202B_200B_206E_200B_200D_200D_200B_200B_206A_202E() - { - return Environment.TickCount64; - } } } diff --git a/Questionable/Questionable.Controller.Steps.Common/WaitNavmesh.cs b/Questionable/Questionable.Controller.Steps.Common/WaitNavmesh.cs index b080bed..99f2515 100644 --- a/Questionable/Questionable.Controller.Steps.Common/WaitNavmesh.cs +++ b/Questionable/Questionable.Controller.Steps.Common/WaitNavmesh.cs @@ -1,71 +1,12 @@ -using System; -using System.Runtime.CompilerServices; - namespace Questionable.Controller.Steps.Common; internal sealed class WaitNavmesh { internal sealed record Task : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206B_200E_202D_206D_200E_206C_202E_206C_202E_202C_202C_200C_200B_202D_202C_202C_202C_206B_202C_206A_206F_202C_202C_202D_200B_200E_206A_202B_200D_206B_202C_206F_206A_206F_202A_200F_200C_202A_202D_206D_202E(typeof(Task).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(93055531); - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? 772746660 : 772746657); - while (true) - { - int num2 = num; - int num3 = 772746656; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - return true; - case 3: - return _202E_202C_206A_202B_206A_202B_200C_206D_200F_200E_206C_200E_200B_200C_200D_206F_200B_206A_202E_200E_206D_206C_202D_202C_200F_200B_200C_202D_206B_206F_206E_200D_206E_206D_206E_206A_206E_206F_202B_202E_202E(EqualityContract, other.EqualityContract); - case 1: - num = (((object)other == null) ? 772746656 : 772746659); - break; - case 0: - return false; - case 2: - num = 772746657; - break; - } - } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206B_200E_202D_206D_200E_206C_202E_206C_202E_202C_202C_200C_200B_202D_202C_202C_202C_206B_202C_206A_206F_202C_202C_202D_200B_200E_206A_202B_200D_206B_202C_206F_206A_206F_202A_200F_200C_202A_202D_206D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _202E_202C_206A_202B_206A_202B_200C_206D_200F_200E_206C_200E_200B_200C_200D_206F_200B_206A_202E_200E_206D_206C_202D_202C_200F_200B_200C_202D_206B_206F_206E_200D_206E_206D_206E_206A_206E_206F_202B_202E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "Wait(navmesh)"; } } @@ -78,27 +19,11 @@ internal sealed class WaitNavmesh public override ETaskResult Update() { - int num = (movementController.IsNavmeshReady ? 1367983807 : 1367983806); - while (true) + if (!movementController.IsNavmeshReady) { - int num2 = num; - int num3 = 1367983807; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_004d; - case 0: - return ETaskResult.TaskComplete; - case 1: - return ETaskResult.StillRunning; - } - continue; - IL_004d: - num = 1367983806; + return ETaskResult.StillRunning; } + return ETaskResult.TaskComplete; } public override bool ShouldInterruptOnDamage() @@ -106,40 +31,13 @@ internal sealed class WaitNavmesh return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public string? GetDebugState() { - int num = (movementController.IsNavmeshReady ? (-446165234) : (-446165233)); - while (true) + if (!movementController.IsNavmeshReady) { - int num2 = num; - int num3 = -446165234; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_004b; - case 0: - return null; - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(10, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1778800167)); - defaultInterpolatedStringHandler.AppendFormatted(movementController.BuiltNavmeshPercent); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1720204560)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - } - continue; - IL_004b: - num = -446165233; + return $"Navmesh: {movementController.BuiltNavmeshPercent}%"; } - } - - string? IDebugStateProvider.GetDebugState() - { - //ILSpy generated this explicit interface implementation from .override directive in GetDebugState - return this.GetDebugState(); + return null; } } } diff --git a/Questionable/Questionable.Controller.Steps.Gathering/DoGather.cs b/Questionable/Questionable.Controller.Steps.Gathering/DoGather.cs index f9d5aec..3e7972e 100644 --- a/Questionable/Questionable.Controller.Steps.Gathering/DoGather.cs +++ b/Questionable/Questionable.Controller.Steps.Gathering/DoGather.cs @@ -1,19 +1,13 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Conditions; -using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.UI; using FFXIVClientStructs.FFXIV.Component.GUI; -using LLib.GameData; using LLib.GameUI; -using Lumina.Excel; -using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.Functions; using Questionable.Model.Gathering; @@ -25,16 +19,6 @@ internal static class DoGather { internal sealed record Task(GatheringController.GatheringRequest Request, GatheringNode Node, bool RevisitRequired) : ITask, IRevisitAware { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202D_202C_206E_206C_202C_206E_200E_206C_206B_200C_206C_206C_206D_200B_202C_206D_202D_206B_206E_202A_202D_206E_206B_200E_206F_202D_200D_200C_200F_200E_200C_202A_206F_206A_206E_202C_202E_200C_200B_206E_202E(typeof(Task).TypeHandle); - } - } - public bool RevisitTriggered { get; private set; } public void OnRevisit() @@ -42,109 +26,9 @@ internal static class DoGather RevisitTriggered = true; } - void IRevisitAware.OnRevisit() - { - //ILSpy generated this explicit interface implementation from .override directive in OnRevisit - this.OnRevisit(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return _200E_206B_206C_206D_200C_200D_206A_206A_202C_202C_206F_206E_200F_200D_200D_206D_200D_200E_200B_206E_206C_206E_206D_206F_200F_202D_202B_206E_202E_200F_200E_202E_202A_202D_200D_202A_202B_200C_202A_202E_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1468970582), RevisitRequired ? global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-522204867) : global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1200342830)); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206F_206A_202E_200E_206E_200C_206F_202C_202B_206C_206C_200D_202B_202A_200D_200E_202D_202D_200D_206C_200C_206E_200B_202C_202D_206E_206B_206F_202B_200C_200D_202E_206C_200B_200D_202A_200C_200F_202A_202D_202E(); - _206F_202A_202E_206D_206C_206D_202B_202C_200B_202D_202E_202D_202E_200B_200D_200C_202D_200E_206E_200F_200F_202D_200D_206F_206E_202C_200F_200E_202E_202D_206D_206E_206F_200E_206F_206E_200E_206E_206B_200D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1211042409)); - _202A_202A_206C_200E_202A_206D_202C_206A_200F_200F_200B_206E_206F_202C_200B_202C_202A_200D_200C_202B_200B_202C_206E_202E_202B_206A_200E_206C_206B_200F_202D_206C_200C_206E_200B_202A_206E_202C_206C_200F_202E(builder, (object)Request); - _206F_202A_202E_206D_206C_206D_202B_202C_200B_202D_202E_202D_202E_200B_200D_200C_202D_200E_206E_200F_200F_202D_200D_206F_206E_202C_200F_200E_202E_202D_206D_206E_206F_200E_206F_206E_200E_206E_206B_200D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-722402907)); - _202A_202A_206C_200E_202A_206D_202C_206A_200F_200F_200B_206E_206F_202C_200B_202C_202A_200D_200C_202B_200B_202C_206E_202E_202B_206A_200E_206C_206B_200F_202D_206C_200C_206E_200B_202A_206E_202C_206C_200F_202E(builder, (object)Node); - _206F_202A_202E_206D_206C_206D_202B_202C_200B_202D_202E_202D_202E_200B_200D_200C_202D_200E_206E_200F_200F_202D_200D_206F_206E_202C_200F_200E_202E_202D_206D_206E_206F_200E_206F_206E_200E_206E_206B_200D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1324981721)); - _206F_202A_202E_206D_206C_206D_202B_202C_200B_202D_202E_202D_202E_200B_200D_200C_202D_200E_206E_200F_200F_202D_200D_206F_206E_202C_200F_200E_202E_202D_206D_206E_206F_200E_206F_206E_200E_206E_206B_200D_202E(builder, RevisitRequired.ToString()); - _206F_202A_202E_206D_206C_206D_202B_202C_200B_202D_202E_202D_202E_200B_200D_200C_202D_200E_206E_200F_200F_202D_200D_206F_206E_202C_200F_200E_202E_202D_206D_206E_206F_200E_206F_206E_200E_206E_206B_200D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-145983723)); - _206F_202A_202E_206D_206C_206D_202B_202C_200B_202D_202E_202D_202E_200B_200D_200C_202D_200E_206E_200F_200F_202D_200D_206F_206E_202C_200F_200E_202E_202D_206D_206E_206F_200E_206F_206E_200E_206E_206B_200D_202E(builder, RevisitTriggered.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? 2025080777 : 2025080782); - while (true) - { - int num2 = num; - int num3 = 2025080783; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = ((!EqualityComparer<GatheringNode>.Default.Equals(Node, other.Node)) ? 2025080779 : 2025080776); - break; - case 4: - return false; - case 3: - return EqualityComparer<bool>.Default.Equals(RevisitTriggered, other.RevisitTriggered); - case 0: - num = 2025080782; - break; - case 8: - num = ((!EqualityComparer<GatheringController.GatheringRequest>.Default.Equals(Request, other.Request)) ? 2025080779 : 2025080781); - break; - case 6: - return true; - case 7: - num = ((!EqualityComparer<bool>.Default.Equals(RevisitRequired, other.RevisitRequired)) ? 2025080779 : 2025080780); - break; - case 5: - num = ((!_206A_200B_200C_200E_202A_202B_200E_206A_206F_200B_206C_202E_202E_206B_202E_200C_200E_206E_206E_206E_202D_200E_202A_202A_200C_206B_206F_200B_206A_200C_202E_206D_200B_206F_206F_202B_200C_200D_206D_206C_202E(EqualityContract, other.EqualityContract)) ? 2025080779 : 2025080775); - break; - case 1: - num = (((object)other == null) ? 2025080779 : 2025080778); - break; - } - } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202D_202C_206E_206C_202C_206E_200E_206C_206B_200C_206C_206C_206D_200B_202C_206D_202D_206B_206E_202A_202D_206E_206B_200E_206F_202D_200D_200C_200F_200E_200C_202A_206F_206A_206E_202C_202E_200C_200B_206E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static string _200E_206B_206C_206D_200C_200D_206A_206A_202C_202C_206F_206E_200F_200D_200D_206D_200D_200E_200B_206E_206C_206E_206D_206F_200F_202D_202B_206E_202E_200F_200E_202E_202A_202D_200D_202A_202B_200C_202A_202E_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static void _206F_206A_202E_200E_206E_200C_206F_202C_202B_206C_206C_200D_202B_202A_200D_200E_202D_202D_200D_206C_200C_206E_200B_202C_202D_206E_206B_206F_202B_200C_200D_202E_206C_200B_200D_202A_200C_200F_202A_202D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206F_202A_202E_206D_206C_206D_202B_202C_200B_202D_202E_202D_202E_200B_200D_200C_202D_200E_206E_200F_200F_202D_200D_206F_206E_202C_200F_200E_202E_202D_206D_206E_206F_200E_206F_206E_200E_206E_206B_200D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202A_202A_206C_200E_202A_206D_202C_206A_200F_200F_200B_206E_206F_202C_200B_202C_202A_200D_200C_202B_200B_202C_206E_202E_202B_206A_200E_206C_206B_200F_202D_206C_200C_206E_200B_202A_206E_202C_206C_200F_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206A_200B_200C_200E_202A_202B_200E_206A_206F_200B_206C_202E_202E_206B_202E_200C_200E_206E_206E_206E_202D_200E_202A_202A_200C_206B_206F_200B_206A_200C_202E_206D_200B_206F_206F_202B_200C_200D_206D_206C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "DoGather" + (RevisitRequired ? " if revist" : ""); } } @@ -165,491 +49,259 @@ internal static class DoGather return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe override ETaskResult Update() { Task task = base.Task; - int num = (((object)task == null) ? 607159611 : 607159599); - SlotInfo slotInfo = default(SlotInfo); - EAction result = default(EAction); - AddonGathering* addonPtr = default(AddonGathering*); - NodeCondition nodeCondition = default(NodeCondition); - List<SlotInfo> list = default(List<SlotInfo>); - IGameObject gameObject = default(IGameObject); - uint valueOrDefault = default(uint); - uint? num5 = default(uint?); - while (true) + if ((object)task != null && task.RevisitRequired && !task.RevisitTriggered) { - int num2 = num; - int num3 = 607159603; - int num4 = num2; - uint? obj; - switch ((num4 | num3) - (num4 & num3)) + logger.LogDebug("No revisit"); + return ETaskResult.TaskComplete; + } + task = base.Task; + if ((object)task != null && task.RevisitRequired && task.RevisitTriggered && !condition[ConditionFlag.Gathering]) + { + if (_wasGathering) { - case 33: - slotInfo = null; - num = 607159606; - break; - case 7: - _202A_200F_200D_200C_200E_202E_200B_202C_206C_202E_202C_202B_206C_202A_200C_202B_200F_200B_200E_200E_202D_200F_200E_202C_202A_200F_206D_202B_200F_206B_206A_202B_206D_200B_200B_206E_206A_200B_206C_206E_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-198696990), new object[1] { _202E_202D_202A_202C_202E_206B_200F_200E_206A_202D_206D_202C_206C_200C_200C_206C_200B_200C_200D_206F_202A_206E_206C_200D_202C_200F_206F_200B_206A_206A_200F_206D_202E_202E_200B_202D_206A_206C_200F_206C_202E(base.Task.Node) }); - num = 607159576; - break; - case 16: - return ETaskResult.StillRunning; - case 13: - _202A_200F_200D_200C_200E_202E_200B_202C_206C_202E_202C_202B_206C_202A_200C_202B_200F_200B_200E_200E_202D_200F_200E_202C_202A_200F_206D_202B_200F_206B_206A_202B_206D_200B_200B_206E_206A_200B_206C_206E_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-380585303), Array.Empty<object>()); return ETaskResult.TaskComplete; - case 50: - num = ((!gameFunctions.UseAction(result)) ? 607159601 : 607159572); - break; - case 26: - num = 607159599; - break; - case 41: - num = ((_actionQueue.Count != 0) ? 607159577 : 607159596); - break; - case 46: - num = ((gameFunctions.GetFreeInventorySlots() != 0) ? 607159592 : 607159597); - break; - case 47: - return ETaskResult.StillRunning; - case 20: - addonPtr->FireCallbackInt(-1); - num = 607159577; - break; - case 21: - num = (_202C_202B_200D_206A_200F_200F_202A_206E_200C_202B_202A_202A_202B_200F_206A_200E_202C_200B_202B_206C_202E_202B_202E_200E_206C_206C_206B_200B_200C_206B_200F_206C_202C_206F_206B_200F_206B_200B_202B_202B_202E(condition, ConditionFlag.Gathering) ? 607159607 : 607159569); - break; - case 49: - _wasGathering = true; - num = ((!gameGui.TryGetAddonByName<AddonGathering>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2039761442), out addonPtr)) ? 607159577 : 607159583); - break; - case 1: - obj = slotInfo.ItemId; - goto IL_028d; - case 10: - addonPtr->FireCallbackInt(slotInfo.Index); - num = 607159577; - break; - case 22: - _actionQueue = GetNextActions(nodeCondition, list); - num = ((_actionQueue != null) ? 607159578 : 607159584); - break; - case 9: - { - uint uInt = addonPtr->AtkValues[109].UInt; - uint uInt2 = addonPtr->AtkValues[110].UInt; - _202A_200F_200D_200C_200E_202E_200B_202C_206C_202E_202C_202B_206C_202A_200C_202B_200F_200B_200E_200E_202D_200F_200E_202C_202A_200F_206D_202B_200F_206B_206A_202B_206D_200B_200B_206E_206A_200B_206C_206E_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2017511058), new object[2] { uInt, uInt2 }); - num = ((uInt == 0) ? 607159577 : 607159598); - break; } - case 6: - num = ((!_202C_202B_200D_206A_200F_200F_202A_206E_200C_202B_202A_202A_202B_200F_206A_200E_202C_200B_202B_206C_202E_202B_202E_200E_206C_206C_206B_200B_200C_206B_200F_206C_202C_206F_206B_200F_206B_200B_202B_202B_202E(condition, ConditionFlag.Gathering)) ? 607159585 : 607159587); - break; - case 32: + if (Environment.TickCount64 >= _nextRevisitInteractionAt) { - SlotInfo slotInfo2 = list.Single((SlotInfo x) => x.ItemId == base.Task.Request.ItemId); - addonPtr->FireCallbackInt(slotInfo2.Index); - num = 607159577; - break; - } - case 45: - num = ((!gameFunctions.InteractWith(gameObject)) ? 607159576 : 607159604); - break; - case 17: - num = ((!task.RevisitTriggered) ? 607159607 : 607159590); - break; - case 38: - num = ((valueOrDefault > 19) ? 607159606 : 607159588); - break; - case 2: - return ETaskResult.StillRunning; - case 30: - throw new TaskException(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(915709300)); - case 29: - addonPtr->FireCallbackInt(-1); - num = 607159577; - break; - case 27: - num = ((!_202C_202B_200D_206A_200F_200F_202A_206E_200C_202B_202A_202A_202B_200F_206A_200E_202C_200B_202B_206C_202E_202B_202E_200E_206C_206C_206B_200B_200C_206B_200F_206C_202C_206F_206B_200F_206B_200B_202B_202B_202E(condition, ConditionFlag.Gathering)) ? 607159577 : 607159595); - break; - case 40: - _202A_200F_200D_200C_200E_202E_200B_202C_206C_202E_202C_202B_206C_202A_200C_202B_200F_200B_200E_200E_202D_200F_200E_202C_202A_200F_206D_202B_200F_206B_206A_202B_206D_200B_200B_206E_206A_200B_206C_206E_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1731056646), Array.Empty<object>()); - return ETaskResult.TaskComplete; - case 4: - num = (base.Task.RevisitTriggered ? 607159581 : 607159613); - break; - case 14: - num = ((!gatheringController.HasNodeDisappeared(base.Task.Node)) ? 607159581 : 607159614); - break; - case 39: - _202A_200F_200D_200C_200E_202E_200B_202C_206C_202E_202C_202B_206C_202A_200C_202B_200F_200B_200E_200E_202D_200F_200E_202C_202A_200F_206D_202B_200F_206B_206A_202B_206D_200B_200B_206E_206A_200B_206C_206E_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1449186336), new object[1] { result }); - _actionQueue.Dequeue(); - num = 607159601; - break; - case 5: - num = ((!(slotInfo != null)) ? 607159591 : 607159609); - break; - case 19: - _202A_200F_200D_200C_200E_202E_200B_202C_206C_202E_202C_202B_206C_202A_200C_202B_200F_200B_200E_200E_202D_200F_200E_202C_202A_200F_206D_202B_200F_206B_206A_202B_206D_200B_200B_206E_206A_200B_206C_206E_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1296182537), Array.Empty<object>()); - addonPtr->FireCallbackInt(-1); - return ETaskResult.TaskComplete; - case 44: - num = ((!gatheringController.HasRequestedItems()) ? 607159615 : 607159610); - break; - case 11: - valueOrDefault = num5.GetValueOrDefault(); - num = ((valueOrDefault < 2) ? 607159606 : 607159573); - break; - case 12: - list = ReadSlots(addonPtr); - num = ((base.Task.Request.Collectability <= 0) ? 607159555 : 607159571); - break; - case 23: - num = ((InventoryManager.Instance()->GetInventoryItemCount(slotInfo.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0) != 9999) ? 607159606 : 607159570); - break; - case 34: - num = ((!_wasGathering) ? 607159600 : 607159568); - break; - case 31: - slotInfo = _slotToGather ?? list.SingleOrDefault((SlotInfo x) => x.ItemId == base.Task.Request.ItemId) ?? list.MinBy((SlotInfo x) => x.ItemId); - num = (((object)slotInfo != null) ? 607159602 : 607159552); - break; - case 37: - return ETaskResult.TaskComplete; - case 51: - obj = null; - goto IL_028d; - case 8: - task = base.Task; - num = (((object)task == null) ? 607159607 : 607159594); - break; - case 43: - _nextRevisitInteractionAt = _202C_206F_202B_200E_202E_200B_200E_206C_202A_206B_202C_202B_200F_206E_206C_202E_206E_200C_202E_200B_200E_206D_200B_202E_200E_206A_206A_202C_206D_200F_200E_200D_200E_200D_206C_206A_206C_200D_202D_202B_202E() + 1000; - num = 607159580; - break; - case 3: - num = ((_202C_206F_202B_200E_202E_200B_200E_206C_202A_206B_202C_202B_200F_206E_206C_202E_206E_200C_202E_200B_200E_206D_200B_202E_200E_206A_206A_202C_206D_200F_200E_200D_200E_200D_206C_206A_206C_200D_202D_202B_202E() < _nextRevisitInteractionAt) ? 607159580 : 607159603); - break; - case 15: - num = ((!_actionQueue.TryPeek(out result)) ? 607159589 : 607159553); - break; - case 48: - nodeCondition = new NodeCondition(addonPtr->AtkValues[109].UInt, addonPtr->AtkValues[110].UInt); - _202A_200F_200D_200C_200E_202E_200B_202C_206C_202E_202C_202B_206C_202A_200C_202B_200F_200B_200E_200E_202D_200F_200E_202C_202A_200F_206D_202B_200F_206B_206A_202B_206D_200B_200B_206E_206A_200B_206C_206E_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1490612030), new object[2] { nodeCondition.CurrentIntegrity, nodeCondition.MaxIntegrity }); - num = ((_actionQueue == null) ? 607159589 : 607159612); - break; - case 24: - { - num = ((!gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1601661822), out var _)) ? 607159554 : 607159574); - break; - } - case 35: - return ETaskResult.TaskComplete; - case 36: - num = (task.RevisitTriggered ? 607159611 : 607159579); - break; - case 18: - return ETaskResult.TaskComplete; - case 0: - gameObject = objectTable.FirstOrDefault(delegate(IGameObject x) + IGameObject gameObject = objectTable.FirstOrDefault((IGameObject x) => x.BaseId == base.Task.Node.DataId && x.IsTargetable); + if (gameObject != null && gameFunctions.InteractWith(gameObject)) { - int num6 = ((_206B_202A_200F_206F_202E_206A_206C_202E_202D_206A_202B_206D_200B_200C_202C_202A_202C_206B_206F_202E_206D_206E_202B_200D_206D_202A_206D_206E_206C_200C_202B_202C_202D_206F_200E_202C_200F_200B_206E_202E_202E(x) != _202E_202D_202A_202C_202E_206B_200F_200E_206A_202D_206D_202C_206C_200C_200C_206C_200B_200C_200D_206F_202A_206E_206C_200D_202C_200F_206F_200B_206A_206A_200F_206D_202E_202E_200B_202D_206A_206C_200F_206C_202E(base.Task.Node)) ? (-627265933) : (-627265936)); - while (true) - { - int num7 = num6; - int num8 = -627265935; - int num9 = num7; - switch ((num9 | num8) - (num9 & num8)) - { - case 0: - goto IL_0056; - case 1: - return _206D_202B_202C_202A_202E_202D_200B_200B_206B_202A_202E_206A_202E_202C_200C_202C_200B_200C_202E_206F_200B_206E_206B_202C_200F_206F_200D_200D_200B_202E_200C_200C_206D_200D_202D_202A_200F_202A_200D_200D_202E(x); - case 2: - return false; - } - continue; - IL_0056: - num6 = -627265936; - } - }); - num = ((gameObject == null) ? 607159576 : 607159582); - break; - case 25: - num = ((!task.RevisitRequired) ? 607159607 : 607159586); - break; - case 28: - num = ((!task.RevisitRequired) ? 607159611 : 607159575); - break; - case 42: - { - num = ((!_wasGathering) ? 607159587 : 607159605); - break; + logger.LogDebug("Revisit triggered, re-interacting with node {DataId}", base.Task.Node.DataId); + } + _nextRevisitInteractionAt = Environment.TickCount64 + 1000; + } + return ETaskResult.StillRunning; + } + if (!base.Task.RevisitTriggered && gatheringController.HasNodeDisappeared(base.Task.Node)) + { + logger.LogDebug("Node disappeared"); + return ETaskResult.TaskComplete; + } + if (gameFunctions.GetFreeInventorySlots() == 0) + { + throw new TaskException("Inventory full"); + } + if (condition[ConditionFlag.Gathering]) + { + if (gameGui.TryGetAddonByName<AtkUnitBase>("GatheringMasterpiece", out var _)) + { + return ETaskResult.TaskComplete; + } + _wasGathering = true; + if (gameGui.TryGetAddonByName<AddonGathering>("Gathering", out var addonPtr2)) + { + if (gatheringController.HasRequestedItems()) + { + uint uInt = addonPtr2->AtkValues[109].UInt; + uint uInt2 = addonPtr2->AtkValues[110].UInt; + logger.LogDebug("Requested items complete with node integrity {Current}/{Max}", uInt, uInt2); + if (uInt != 0) + { + addonPtr2->FireCallbackInt(-1); + } + } + else + { + List<SlotInfo> list = ReadSlots(addonPtr2); + if (base.Task.Request.Collectability > 0) + { + SlotInfo slotInfo = list.Single((SlotInfo x) => x.ItemId == base.Task.Request.ItemId); + addonPtr2->FireCallbackInt(slotInfo.Index); + } + else + { + NodeCondition nodeCondition = new NodeCondition(addonPtr2->AtkValues[109].UInt, addonPtr2->AtkValues[110].UInt); + logger.LogDebug("NodeCondition integrity: {Current}/{Max}", nodeCondition.CurrentIntegrity, nodeCondition.MaxIntegrity); + if (_actionQueue != null && _actionQueue.TryPeek(out var result)) + { + if (gameFunctions.UseAction(result)) + { + logger.LogDebug("Used action {Action} on node", result); + _actionQueue.Dequeue(); + } + return ETaskResult.StillRunning; + } + _actionQueue = GetNextActions(nodeCondition, list); + if (_actionQueue == null) + { + logger.LogDebug("Skipping the rest of gathering..."); + addonPtr2->FireCallbackInt(-1); + return ETaskResult.TaskComplete; + } + if (_actionQueue.Count == 0) + { + SlotInfo slotInfo2 = _slotToGather ?? list.SingleOrDefault((SlotInfo x) => x.ItemId == base.Task.Request.ItemId) ?? list.MinBy((SlotInfo x) => x.ItemId); + switch (slotInfo2?.ItemId) + { + case 2u: + case 3u: + case 4u: + case 5u: + case 6u: + case 7u: + case 8u: + case 9u: + case 10u: + case 11u: + case 12u: + case 13u: + case 14u: + case 15u: + case 16u: + case 17u: + case 18u: + case 19u: + if (InventoryManager.Instance()->GetInventoryItemCount(slotInfo2.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0) == 9999) + { + slotInfo2 = null; + } + break; + } + if (slotInfo2 != null) + { + addonPtr2->FireCallbackInt(slotInfo2.Index); + } + else + { + addonPtr2->FireCallbackInt(-1); + } + } + } } - IL_028d: - num5 = obj; - num = ((!num5.HasValue) ? 607159606 : 607159608); - break; } } + if (!_wasGathering || condition[ConditionFlag.Gathering]) + { + return ETaskResult.StillRunning; + } + return ETaskResult.TaskComplete; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe List<SlotInfo> ReadSlots(AddonGathering* addonGathering) { List<SlotInfo> list = new List<SlotInfo>(); - int num = 0; - int num2 = -324357243; - int result2 = default(int); - int result3 = default(int); - AtkTextNode* asAtkTextNode = default(AtkTextNode*); - uint num6 = default(uint); - int result = default(int); - while (true) + for (int i = 0; i < 8; i++) { - int num3 = num2; - int num4 = -324357247; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + uint num = addonGathering->ItemIds[i]; + if (num != 0) { - case 3: - num2 = -324357243; - break; - case 5: - _206E_200F_202C_202D_206E_200F_202E_202E_206E_202B_206D_202D_200C_200B_206D_206E_206C_206C_200F_200C_200C_202D_200F_200E_202D_206B_200B_206A_200E_202A_202D_206B_206C_206F_202C_200B_202E_206F_202C_206B_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1752800996), new object[1] { string.Join(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1577352017), list) }); - return list; - case 0: - { - AtkComponentCheckBox* value = addonGathering->GatheredItemComponentCheckbox[num].Value; - if (!int.TryParse(value->UldManager.SearchNodeById(10u)->GetAsAtkTextNode()->NodeText.ToString(), out result2)) + AtkComponentCheckBox* value = addonGathering->GatheredItemComponentCheckbox[i].Value; + if (!int.TryParse(value->UldManager.SearchNodeById(10u)->GetAsAtkTextNode()->NodeText.ToString(), out var result)) + { + result = 0; + } + if (!int.TryParse(value->UldManager.SearchNodeById(16u)->GetAsAtkTextNode()->NodeText.ToString(), out var result2)) { result2 = 0; } - if (!int.TryParse(value->UldManager.SearchNodeById(16u)->GetAsAtkTextNode()->NodeText.ToString(), out result3)) + AtkTextNode* asAtkTextNode = value->UldManager.SearchNodeById(31u)->GetAsAtkComponentNode()->Component->UldManager.SearchNodeById(7u)->GetAsAtkTextNode(); + if (!asAtkTextNode->IsVisible() || !int.TryParse(asAtkTextNode->NodeText.ToString(), out var result3)) { - result3 = 0; + result3 = 1; } - asAtkTextNode = value->UldManager.SearchNodeById(31u)->GetAsAtkComponentNode()->Component->UldManager.SearchNodeById(7u)->GetAsAtkTextNode(); - num2 = ((!asAtkTextNode->IsVisible()) ? (-324357245) : (-324357239)); - break; - } - case 6: - { - int num7 = num; - num4 = 1; - num5 = num7; - int num8 = num5 ^ num4; - int num9 = num5 & num4; - num = num8 + (num9 + num9); - num2 = -324357243; - break; - } - case 7: - { - SlotInfo item = new SlotInfo(num, num6, result2, result3, result); + SlotInfo item = new SlotInfo(i, num, result, result2, result3); list.Add(item); - num2 = -324357241; - break; - } - case 2: - result = 1; - num2 = -324357242; - break; - case 4: - num2 = ((num < 8) ? (-324357248) : (-324357244)); - break; - case 8: - num2 = (int.TryParse(asAtkTextNode->NodeText.ToString(), out result) ? (-324357242) : (-324357245)); - break; - case 1: - num6 = addonGathering->ItemIds[num]; - num2 = ((num6 == 0) ? (-324357241) : (-324357247)); - break; } } + logger.LogTrace("Slots: {Slots}", string.Join(", ", list)); + return list; } private Queue<EAction>? GetNextActions(NodeCondition nodeCondition, List<SlotInfo> slots) { - int num = ((!(_slotToGather != null)) ? (-828015562) : (-828015589)); - SlotInfo slotInfo2 = default(SlotInfo); - Queue<EAction> queue = default(Queue<EAction>); - SlotInfo slotInfo = default(SlotInfo); - int gatheringChance = default(int); - while (true) + if (_slotToGather != null && slots.All((SlotInfo x) => x.Index != _slotToGather.Index)) { - int num2 = num; - int num3 = -828015595; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + _slotToGather = null; + } + Queue<EAction> queue = new Queue<EAction>(); + if (!gameFunctions.HasStatus(EStatus.GatheringRateUp)) + { + if (base.Task.Request.AlternativeItemId != 0) { - case 38: - _slotToGather = null; - num = -828015562; - break; - case 9: - slotInfo2 = slots.Single((SlotInfo x) => x.ItemId == base.Task.Request.AlternativeItemId); - num = ((slotInfo2.GatheringChance != 100) ? (-828015564) : (-828015586)); - break; - case 3: - _slotToGather = slots.MinBy((SlotInfo x) => x.ItemId); - return queue; - case 34: - slotInfo = slots.SingleOrDefault((SlotInfo x) => x.ItemId == base.Task.Request.ItemId); - num = (((object)slotInfo == null) ? (-828015592) : (-828015606)); - break; - case 17: - num = ((!CanUseAction(EAction.SharpVision2, EAction.FieldMastery2)) ? (-828015563) : (-828015604)); - break; - case 13: - return queue; - case 4: - num = ((nodeCondition.CurrentIntegrity != nodeCondition.MaxIntegrity) ? (-828015597) : (-828015596)); - break; - case 15: - num = ((slotInfo.GatheringChance < 50) ? (-828015592) : (-828015616)); - break; - case 24: - num = ((!CanUseAction(EAction.SharpVision1, EAction.FieldMastery1)) ? (-828015598) : (-828015602)); - break; - case 18: - num = (_usedLuck ? (-828015597) : (-828015599)); - break; - case 27: - queue.Enqueue(PickAction(EAction.SharpVision1, EAction.FieldMastery1)); - return queue; - case 12: - num = -828015589; - break; - case 11: - _slotToGather = slotInfo2; - return queue; - case 7: - num = ((slotInfo.GatheringChance < 85) ? (-828015590) : (-828015585)); - break; - case 26: - return null; - case 20: - num = ((!CanUseAction(EAction.SharpVision3, EAction.FieldMastery3)) ? (-828015610) : (-828015567)); - break; - case 6: - num = ((!_usedLuck) ? (-828015561) : (-828015600)); - break; - case 23: - num = ((base.Task.Request.AlternativeItemId == 0) ? (-828015610) : (-828015588)); - break; - case 37: - num = ((!CanUseAction(EAction.SharpVision1, EAction.FieldMastery1)) ? (-828015593) : (-828015611)); - break; - case 32: - num = ((slotInfo2.GatheringChance < 50) ? (-828015610) : (-828015615)); - break; - case 16: - _slotToGather = slotInfo2; - queue.Enqueue(PickAction(EAction.SharpVision1, EAction.FieldMastery1)); - return queue; - case 29: - queue.Enqueue(PickAction(EAction.SharpVision2, EAction.FieldMastery2)); - return queue; - case 36: - _slotToGather = slotInfo2; - queue.Enqueue(PickAction(EAction.SharpVision3, EAction.FieldMastery3)); - return queue; - case 28: - num = ((slotInfo.GatheringChance < 95) ? (-828015598) : (-828015603)); - break; - case 22: - num = ((gatheringChance >= 100) ? (-828015592) : (-828015607)); - break; - case 31: - gatheringChance = slotInfo.GatheringChance; - num = ((gatheringChance <= 0) ? (-828015592) : (-828015613)); - break; - case 25: - _slotToGather = slotInfo2; - queue.Enqueue(PickAction(EAction.SharpVision2, EAction.FieldMastery2)); - return queue; - case 0: - num = ((slotInfo2.GatheringChance < 95) ? (-828015593) : (-828015568)); - break; - case 1: - num = ((!CanUseAction(EAction.LuckOfTheMountaineer, EAction.LuckOfThePioneer)) ? (-828015597) : (-828015605)); - break; - case 2: - num = ((slotInfo2.GatheringChance < 85) ? (-828015563) : (-828015612)); - break; - case 19: - slotInfo = slots.SingleOrDefault((SlotInfo x) => x.ItemId == base.Task.Request.ItemId); - num = ((!(slotInfo == null)) ? (-828015561) : (-828015609)); - break; - case 30: - _usedLuck = true; - queue.Enqueue(PickAction(EAction.LuckOfTheMountaineer, EAction.LuckOfThePioneer)); - return queue; - case 21: - num = ((!CanUseAction(EAction.SharpVision3, EAction.FieldMastery3)) ? (-828015592) : (-828015587)); - break; - case 14: - num = ((!slots.All((SlotInfo x) => x.Index != _slotToGather.Index)) ? (-828015562) : (-828015565)); - break; - case 5: - num = ((nodeCondition.CurrentIntegrity == nodeCondition.MaxIntegrity) ? (-828015594) : (-828015601)); - break; - case 35: - queue = new Queue<EAction>(); - num = (gameFunctions.HasStatus(EStatus.GatheringRateUp) ? (-828015592) : (-828015614)); - break; - case 8: - queue.Enqueue(PickAction(EAction.SharpVision3, EAction.FieldMastery3)); - return queue; - case 33: - num = ((slotInfo2.GatheringChance <= 0) ? (-828015610) : (-828015595)); - break; - case 10: - num = ((!CanUseAction(EAction.SharpVision2, EAction.FieldMastery2)) ? (-828015590) : (-828015608)); - break; + SlotInfo slotInfo = slots.Single((SlotInfo x) => x.ItemId == base.Task.Request.AlternativeItemId); + if (slotInfo.GatheringChance == 100) + { + _slotToGather = slotInfo; + return queue; + } + if (slotInfo.GatheringChance > 0) + { + if (slotInfo.GatheringChance >= 95 && CanUseAction(EAction.SharpVision1, EAction.FieldMastery1)) + { + _slotToGather = slotInfo; + queue.Enqueue(PickAction(EAction.SharpVision1, EAction.FieldMastery1)); + return queue; + } + if (slotInfo.GatheringChance >= 85 && CanUseAction(EAction.SharpVision2, EAction.FieldMastery2)) + { + _slotToGather = slotInfo; + queue.Enqueue(PickAction(EAction.SharpVision2, EAction.FieldMastery2)); + return queue; + } + if (slotInfo.GatheringChance >= 50 && CanUseAction(EAction.SharpVision3, EAction.FieldMastery3)) + { + _slotToGather = slotInfo; + queue.Enqueue(PickAction(EAction.SharpVision3, EAction.FieldMastery3)); + return queue; + } + } + } + SlotInfo slotInfo2 = slots.SingleOrDefault((SlotInfo x) => x.ItemId == base.Task.Request.ItemId); + if (slotInfo2 == null) + { + if (!_usedLuck && nodeCondition.CurrentIntegrity == nodeCondition.MaxIntegrity && CanUseAction(EAction.LuckOfTheMountaineer, EAction.LuckOfThePioneer)) + { + _usedLuck = true; + queue.Enqueue(PickAction(EAction.LuckOfTheMountaineer, EAction.LuckOfThePioneer)); + return queue; + } + if (_usedLuck) + { + if (nodeCondition.CurrentIntegrity != nodeCondition.MaxIntegrity) + { + return null; + } + _slotToGather = slots.MinBy((SlotInfo x) => x.ItemId); + return queue; + } + } + slotInfo2 = slots.SingleOrDefault((SlotInfo x) => x.ItemId == base.Task.Request.ItemId); + if ((object)slotInfo2 != null) + { + int gatheringChance = slotInfo2.GatheringChance; + if (gatheringChance > 0 && gatheringChance < 100) + { + if (slotInfo2.GatheringChance >= 95 && CanUseAction(EAction.SharpVision1, EAction.FieldMastery1)) + { + queue.Enqueue(PickAction(EAction.SharpVision1, EAction.FieldMastery1)); + return queue; + } + if (slotInfo2.GatheringChance >= 85 && CanUseAction(EAction.SharpVision2, EAction.FieldMastery2)) + { + queue.Enqueue(PickAction(EAction.SharpVision2, EAction.FieldMastery2)); + return queue; + } + if (slotInfo2.GatheringChance >= 50 && CanUseAction(EAction.SharpVision3, EAction.FieldMastery3)) + { + queue.Enqueue(PickAction(EAction.SharpVision3, EAction.FieldMastery3)); + return queue; + } + } } } + return queue; } private EAction PickAction(EAction minerAction, EAction botanistAction) { - IPlayerCharacter playerCharacter = _206B_206E_202D_200C_202E_206E_200C_200E_202E_200F_206E_200B_200F_200D_200E_200E_206E_200D_200B_202A_200F_206E_206C_202B_206F_206F_200C_206D_200C_200C_200C_206B_206A_206C_200C_202A_200D_202A_200D_206E_202E(objectTable); - uint? num = ((playerCharacter != null) ? new uint?(_200D_200F_206E_202D_200B_202C_200E_206C_200D_202A_202E_200D_202A_200C_206E_206D_206A_200F_202A_202B_202D_200D_206C_200C_206B_200D_206D_200D_206C_202A_206D_200E_206F_202D_202D_200D_206C_202E_206B_202E_202E((ICharacter)playerCharacter).RowId) : ((uint?)null)); - int num2 = (num.HasValue ? (-44125136) : (-44125135)); - while (true) + if (objectTable.LocalPlayer?.ClassJob.RowId == 16) { - int num3 = num2; - int num4 = -44125136; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - EClassJob? obj; - switch (num6 - (num7 + num7)) - { - case 2: - return minerAction; - case 1: - obj = null; - goto IL_00c1; - case 4: - num2 = -44125135; - break; - case 0: - obj = (EClassJob)num.GetValueOrDefault(); - goto IL_00c1; - case 3: - { - return botanistAction; - } - IL_00c1: - num2 = ((obj != EClassJob.Miner) ? (-44125133) : (-44125134)); - break; - } + return minerAction; } + return botanistAction; } private unsafe bool CanUseAction(EAction minerAction, EAction botanistAction) @@ -662,323 +314,9 @@ internal static class DoGather { return false; } - - static void _202A_200F_200D_200C_200E_202E_200B_202C_206C_202E_202C_202B_206C_202A_200C_202B_200F_200B_200E_200E_202D_200F_200E_202C_202A_200F_206D_202B_200F_206B_206A_202B_206D_200B_200B_206E_206A_200B_206C_206E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _202C_202B_200D_206A_200F_200F_202A_206E_200C_202B_202A_202A_202B_200F_206A_200E_202C_200B_202B_206C_202E_202B_202E_200E_206C_206C_206B_200B_200C_206B_200F_206C_202C_206F_206B_200F_206B_200B_202B_202B_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static long _202C_206F_202B_200E_202E_200B_200E_206C_202A_206B_202C_202B_200F_206E_206C_202E_206E_200C_202E_200B_200E_206D_200B_202E_200E_206A_206A_202C_206D_200F_200E_200D_200E_200D_206C_206A_206C_200D_202D_202B_202E() - { - return Environment.TickCount64; - } - - static uint _202E_202D_202A_202C_202E_206B_200F_200E_206A_202D_206D_202C_206C_200C_200C_206C_200B_200C_200D_206F_202A_206E_206C_200D_202C_200F_206F_200B_206A_206A_200F_206D_202E_202E_200B_202D_206A_206C_200F_206C_202E(GatheringNode P_0) - { - return P_0.DataId; - } - - static void _206E_200F_202C_202D_206E_200F_202E_202E_206E_202B_206D_202D_200C_200B_206D_206E_206C_206C_200F_200C_200C_202D_200F_200E_202D_206B_200B_206A_200E_202A_202D_206B_206C_206F_202C_200B_202E_206F_202C_206B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogTrace(P_1, P_2); - } - - static IPlayerCharacter _206B_206E_202D_200C_202E_206E_200C_200E_202E_200F_206E_200B_200F_200D_200E_200E_206E_200D_200B_202A_200F_206E_206C_202B_206F_206F_200C_206D_200C_200C_200C_206B_206A_206C_200C_202A_200D_202A_200D_206E_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static RowRef<ClassJob> _200D_200F_206E_202D_200B_202C_200E_206C_200D_202A_202E_200D_202A_200C_206E_206D_206A_200F_202A_202B_202D_200D_206C_200C_206B_200D_206D_200D_206C_202A_206D_200E_206F_202D_202D_200D_206C_202E_206B_202E_202E(ICharacter P_0) - { - return P_0.ClassJob; - } - - static uint _206B_202A_200F_206F_202E_206A_206C_202E_202D_206A_202B_206D_200B_200C_202C_202A_202C_206B_206F_202E_206D_206E_202B_200D_206D_202A_206D_206E_206C_200C_202B_202C_202D_206F_200E_202C_200F_200B_206E_202E_202E(IGameObject P_0) - { - return P_0.BaseId; - } - - static bool _206D_202B_202C_202A_202E_202D_200B_200B_206B_202A_202E_206A_202E_202C_200C_202C_200B_200C_202E_206F_200B_206E_206B_202C_200F_206F_200D_200D_200B_202E_200C_200C_206D_200D_202D_202A_200F_202A_200D_200D_202E(IGameObject P_0) - { - return P_0.IsTargetable; - } } - private sealed record SlotInfo(int Index, uint ItemId, int GatheringChance, int BoonChance, int Quantity) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200C_206D_200F_206E_202C_200C_200D_202B_202B_206F_206A_206B_202B_206E_206F_200B_206E_206E_200B_206C_206D_202D_206F_200E_200B_202B_202D_202C_206D_202A_200F_200E_202D_206A_202D_206D_206F_206E_206A_202A_202E(typeof(SlotInfo).TypeHandle); - } - } + private sealed record SlotInfo(int Index, uint ItemId, int GatheringChance, int BoonChance, int Quantity); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200B_206C_200B_202D_202A_206C_202C_206A_206B_202A_200C_206B_206B_200F_202D_202B_202D_200F_206B_200F_206C_206A_202C_200F_202A_200E_200E_200F_200B_200B_206D_202D_200C_202D_206A_206B_206A_206B_206A_202B_202E(); - _202D_200C_202B_206F_206A_202C_200F_202B_200D_200F_200C_202E_200E_202D_200E_206D_200E_200C_200F_206F_202C_202E_200E_206C_202A_200E_200D_200F_200F_200E_202B_202B_200D_202D_200C_206B_202C_200D_200F_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1163695056)); - _202D_200C_202B_206F_206A_202C_200F_202B_200D_200F_200C_202E_200E_202D_200E_206D_200E_200C_200F_206F_202C_202E_200E_206C_202A_200E_200D_200F_200F_200E_202B_202B_200D_202D_200C_206B_202C_200D_200F_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(556540328)); - int num = ((!PrintMembers(stringBuilder)) ? 2077194273 : 2077194272); - while (true) - { - int num2 = num; - int num3 = 2077194273; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - _206D_202D_202B_200B_202A_206F_200F_200B_200E_206E_200B_202C_206A_202C_202A_202E_202B_206B_200C_202A_200B_202C_200F_200F_200D_202A_206F_206D_206C_206F_206B_202D_202E_202D_200E_202C_202D_206C_202D_206A_202E(stringBuilder, '}'); - return _200E_206C_200D_206E_202A_202B_206A_206B_200B_206B_206A_200B_202A_200F_200D_200C_200F_200E_206F_206C_206F_202C_200D_200E_206A_206A_200E_200B_206C_200E_202A_200B_200E_200F_206E_206D_200C_206A_206C_202E_202E((object)stringBuilder); - case 1: - _206D_202D_202B_200B_202A_206F_200F_200B_200E_206E_200B_202C_206A_202C_202A_202E_202B_206B_200C_202A_200B_202C_200F_200F_200D_202A_206F_206D_206C_206F_206B_202D_202E_202D_200E_202C_202D_206C_202D_206A_202E(stringBuilder, ' '); - num = 2077194273; - break; - case 2: - num = 2077194272; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200D_202B_202A_200D_206C_202B_202E_200E_200B_206F_202A_200E_200C_206A_202C_202E_202D_206D_200F_202C_200B_206D_202E_200E_202C_200F_202C_202B_206F_206A_200D_202B_206B_202B_206A_200C_202A_202A_202C_202E(); - _202D_200C_202B_206F_206A_202C_200F_202B_200D_200F_200C_202E_200E_202D_200E_206D_200E_200C_200F_206F_202C_202E_200E_206C_202A_200E_200D_200F_200F_200E_202B_202B_200D_202D_200C_206B_202C_200D_200F_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1952999036)); - _202D_200C_202B_206F_206A_202C_200F_202B_200D_200F_200C_202E_200E_202D_200E_206D_200E_200C_200F_206F_202C_202E_200E_206C_202A_200E_200D_200F_200F_200E_202B_202B_200D_202D_200C_206B_202C_200D_200F_202E(builder, Index.ToString()); - _202D_200C_202B_206F_206A_202C_200F_202B_200D_200F_200C_202E_200E_202D_200E_206D_200E_200C_200F_206F_202C_202E_200E_206C_202A_200E_200D_200F_200F_200E_202B_202B_200D_202D_200C_206B_202C_200D_200F_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-727021518)); - _202D_200C_202B_206F_206A_202C_200F_202B_200D_200F_200C_202E_200E_202D_200E_206D_200E_200C_200F_206F_202C_202E_200E_206C_202A_200E_200D_200F_200F_200E_202B_202B_200D_202D_200C_206B_202C_200D_200F_202E(builder, ItemId.ToString()); - _202D_200C_202B_206F_206A_202C_200F_202B_200D_200F_200C_202E_200E_202D_200E_206D_200E_200C_200F_206F_202C_202E_200E_206C_202A_200E_200D_200F_200F_200E_202B_202B_200D_202D_200C_206B_202C_200D_200F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1315697333)); - _202D_200C_202B_206F_206A_202C_200F_202B_200D_200F_200C_202E_200E_202D_200E_206D_200E_200C_200F_206F_202C_202E_200E_206C_202A_200E_200D_200F_200F_200E_202B_202B_200D_202D_200C_206B_202C_200D_200F_202E(builder, GatheringChance.ToString()); - _202D_200C_202B_206F_206A_202C_200F_202B_200D_200F_200C_202E_200E_202D_200E_206D_200E_200C_200F_206F_202C_202E_200E_206C_202A_200E_200D_200F_200F_200E_202B_202B_200D_202D_200C_206B_202C_200D_200F_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1695865317)); - _202D_200C_202B_206F_206A_202C_200F_202B_200D_200F_200C_202E_200E_202D_200E_206D_200E_200C_200F_206F_202C_202E_200E_206C_202A_200E_200D_200F_200F_200E_202B_202B_200D_202D_200C_206B_202C_200D_200F_202E(builder, BoonChance.ToString()); - _202D_200C_202B_206F_206A_202C_200F_202B_200D_200F_200C_202E_200E_202D_200E_206D_200E_200C_200F_206F_202C_202E_200E_206C_202A_200E_200D_200F_200F_200E_202B_202B_200D_202D_200C_206B_202C_200D_200F_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-141714243)); - _202D_200C_202B_206F_206A_202C_200F_202B_200D_200F_200C_202E_200E_202D_200E_206D_200E_200C_200F_206F_202C_202E_200E_206C_202A_200E_200D_200F_200F_200E_202B_202B_200D_202D_200C_206B_202C_200D_200F_202E(builder, Quantity.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(SlotInfo? other) - { - int num = (((object)this == other) ? 1061388714 : 1061388708); - while (true) - { - int num2 = num; - int num3 = 1061388717; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - return EqualityComparer<int>.Default.Equals(Quantity, other.Quantity); - case 9: - num = (((object)other == null) ? 1061388713 : 1061388719); - break; - case 3: - num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? 1061388713 : 1061388717); - break; - case 7: - return true; - case 5: - num = 1061388708; - break; - case 1: - num = ((!EqualityComparer<int>.Default.Equals(Index, other.Index)) ? 1061388713 : 1061388718); - break; - case 8: - num = ((!EqualityComparer<int>.Default.Equals(BoonChance, other.BoonChance)) ? 1061388713 : 1061388715); - break; - case 2: - num = ((!_200B_206C_200C_206B_202A_206B_206C_202A_200F_200E_202B_202E_202A_200E_206D_206E_202D_206E_206F_206D_202D_202C_202C_202D_200C_202C_200C_200C_202A_200E_200B_206E_202B_206A_202D_206A_202C_200E_200B_206D_202E(EqualityContract, other.EqualityContract)) ? 1061388713 : 1061388716); - break; - case 0: - num = ((!EqualityComparer<int>.Default.Equals(GatheringChance, other.GatheringChance)) ? 1061388713 : 1061388709); - break; - case 4: - return false; - } - } - } - - bool IEquatable<SlotInfo>.Equals(SlotInfo? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200C_206D_200F_206E_202C_200C_200D_202B_202B_206F_206A_206B_202B_206E_206F_200B_206E_206E_200B_206C_206D_202D_206F_200E_200B_202B_202D_202C_206D_202A_200F_200E_202D_206A_202D_206D_206F_206E_206A_202A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200B_206C_200B_202D_202A_206C_202C_206A_206B_202A_200C_206B_206B_200F_202D_202B_202D_200F_206B_200F_206C_206A_202C_200F_202A_200E_200E_200F_200B_200B_206D_202D_200C_202D_206A_206B_206A_206B_206A_202B_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202D_200C_202B_206F_206A_202C_200F_202B_200D_200F_200C_202E_200E_202D_200E_206D_200E_200C_200F_206F_202C_202E_200E_206C_202A_200E_200D_200F_200F_200E_202B_202B_200D_202D_200C_206B_202C_200D_200F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206D_202D_202B_200B_202A_206F_200F_200B_200E_206E_200B_202C_206A_202C_202A_202E_202B_206B_200C_202A_200B_202C_200F_200F_200D_202A_206F_206D_206C_206F_206B_202D_202E_202D_200E_202C_202D_206C_202D_206A_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200E_206C_200D_206E_202A_202B_206A_206B_200B_206B_206A_200B_202A_200F_200D_200C_200F_200E_206F_206C_206F_202C_200D_200E_206A_206A_200E_200B_206C_200E_202A_200B_200E_200F_206E_206D_200C_206A_206C_202E_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200D_202B_202A_200D_206C_202B_202E_200E_200B_206F_202A_200E_200C_206A_202C_202E_202D_206D_200F_202C_200B_206D_202E_200E_202C_200F_202C_202B_206F_206A_200D_202B_206B_202B_206A_200C_202A_202A_202C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _200B_206C_200C_206B_202A_206B_206C_202A_200F_200E_202B_202E_202A_200E_206D_206E_202D_206E_206F_206D_202D_202C_202C_202D_200C_202C_200C_200C_202A_200E_200B_206E_202B_206A_202D_206A_202C_200E_200B_206D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - private sealed record NodeCondition(uint CurrentIntegrity, uint MaxIntegrity) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206A_206A_200F_202A_200D_206F_202D_206D_200D_200D_202E_200B_206D_206A_200B_200F_202D_200F_206C_200B_202A_202A_200B_202A_200D_206C_202E_202A_206C_200B_202C_200F_206D_206B_206C_202B_202D_202E_202D_202E(typeof(NodeCondition).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206E_202E_200C_202B_200E_206D_200D_202B_206B_206D_206F_202B_206D_202E_206A_206F_206F_202E_202D_202E_202A_206F_206E_200E_202D_202D_206B_206D_200E_200C_200F_206E_202D_202E_200E_202C_206E_206A_206A_202E_202E(); - _200D_202D_202D_202E_202E_200E_206D_200E_200D_206D_206F_200B_202E_206B_202B_200F_200F_202E_206F_206F_202B_202D_202B_206C_200C_206C_206D_200C_202B_206F_200B_200D_200D_202C_200D_202B_202A_206F_206C_202D_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1254648399)); - _200D_202D_202D_202E_202E_200E_206D_200E_200D_206D_206F_200B_202E_206B_202B_200F_200F_202E_206F_206F_202B_202D_202B_206C_200C_206C_206D_200C_202B_206F_200B_200D_200D_202C_200D_202B_202A_206F_206C_202D_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? 270539835 : 270539832); - while (true) - { - int num2 = num; - int num3 = 270539834; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 270539832; - break; - case 1: - _206E_206D_200F_202D_206D_200F_200C_206F_202E_200B_206B_206D_200B_202C_206A_202E_206A_206F_200B_200F_200E_206C_206A_200D_202D_200C_202C_206F_202B_202C_200D_200B_206D_202B_200D_206C_200C_200C_206D_200E_202E(stringBuilder, '}'); - return _206B_200E_202D_206F_206C_200E_206C_206A_200B_200D_206C_202C_202B_202E_206E_206E_206C_200F_206E_200F_206B_206B_200E_206E_202B_202D_206C_202C_206F_206E_200F_202E_200C_200B_202A_200E_200C_200E_206C_206C_202E((object)stringBuilder); - case 2: - _206E_206D_200F_202D_206D_200F_200C_206F_202E_200B_206B_206D_200B_202C_206A_202E_206A_206F_200B_200F_200E_206C_206A_200D_202D_200C_202C_206F_202B_202C_200D_200B_206D_202B_200D_206C_200C_200C_206D_200E_202E(stringBuilder, ' '); - num = 270539835; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206D_200F_200F_200D_206B_202C_206F_202D_206C_206D_202B_202D_200C_200C_206E_202C_202D_200F_200E_200E_202A_206F_202A_206F_200D_202E_206A_200B_206A_206C_206F_206A_200B_202E_202E_200C_200C_202C_206D_206D_202E(); - _200D_202D_202D_202E_202E_200E_206D_200E_200D_206D_206F_200B_202E_206B_202B_200F_200F_202E_206F_206F_202B_202D_202B_206C_200C_206C_206D_200C_202B_206F_200B_200D_200D_202C_200D_202B_202A_206F_206C_202D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1558737258)); - _200D_202D_202D_202E_202E_200E_206D_200E_200D_206D_206F_200B_202E_206B_202B_200F_200F_202E_206F_206F_202B_202D_202B_206C_200C_206C_206D_200C_202B_206F_200B_200D_200D_202C_200D_202B_202A_206F_206C_202D_202E(builder, CurrentIntegrity.ToString()); - _200D_202D_202D_202E_202E_200E_206D_200E_200D_206D_206F_200B_202E_206B_202B_200F_200F_202E_206F_206F_202B_202D_202B_206C_200C_206C_206D_200C_202B_206F_200B_200D_200D_202C_200D_202B_202A_206F_206C_202D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-799260044)); - _200D_202D_202D_202E_202E_200E_206D_200E_200D_206D_206F_200B_202E_206B_202B_200F_200F_202E_206F_206F_202B_202D_202B_206C_200C_206C_206D_200C_202B_206F_200B_200D_200D_202C_200D_202B_202A_206F_206C_202D_202E(builder, MaxIntegrity.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(NodeCondition? other) - { - int num = (((object)this == other) ? (-459204652) : (-459204650)); - while (true) - { - int num2 = num; - int num3 = -459204651; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 6: - return EqualityComparer<uint>.Default.Equals(MaxIntegrity, other.MaxIntegrity); - case 5: - num = ((!EqualityComparer<uint>.Default.Equals(CurrentIntegrity, other.CurrentIntegrity)) ? (-459204649) : (-459204653)); - break; - case 3: - num = (((object)other == null) ? (-459204649) : (-459204655)); - break; - case 1: - return true; - case 0: - num = -459204650; - break; - case 4: - num = ((!_206B_206F_200F_202A_206F_206D_206D_206C_206A_200C_200D_200C_206C_202D_206D_202C_202D_206A_202E_206C_206A_202E_200F_202A_200F_202A_202B_200C_202A_206B_200B_206B_200F_200B_206B_200B_206B_202D_206F_202D_202E(EqualityContract, other.EqualityContract)) ? (-459204649) : (-459204656)); - break; - } - } - } - - bool IEquatable<NodeCondition>.Equals(NodeCondition? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206A_206A_200F_202A_200D_206F_202D_206D_200D_200D_202E_200B_206D_206A_200B_200F_202D_200F_206C_200B_202A_202A_200B_202A_200D_206C_202E_202A_206C_200B_202C_200F_206D_206B_206C_202B_202D_202E_202D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206E_202E_200C_202B_200E_206D_200D_202B_206B_206D_206F_202B_206D_202E_206A_206F_206F_202E_202D_202E_202A_206F_206E_200E_202D_202D_206B_206D_200E_200C_200F_206E_202D_202E_200E_202C_206E_206A_206A_202E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200D_202D_202D_202E_202E_200E_206D_200E_200D_206D_206F_200B_202E_206B_202B_200F_200F_202E_206F_206F_202B_202D_202B_206C_200C_206C_206D_200C_202B_206F_200B_200D_200D_202C_200D_202B_202A_206F_206C_202D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206E_206D_200F_202D_206D_200F_200C_206F_202E_200B_206B_206D_200B_202C_206A_202E_206A_206F_200B_200F_200E_206C_206A_200D_202D_200C_202C_206F_202B_202C_200D_200B_206D_202B_200D_206C_200C_200C_206D_200E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206B_200E_202D_206F_206C_200E_206C_206A_200B_200D_206C_202C_202B_202E_206E_206E_206C_200F_206E_200F_206B_206B_200E_206E_202B_202D_206C_202C_206F_206E_200F_202E_200C_200B_202A_200E_200C_200E_206C_206C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206D_200F_200F_200D_206B_202C_206F_202D_206C_206D_202B_202D_200C_200C_206E_202C_202D_200F_200E_200E_202A_206F_202A_206F_200D_202E_206A_200B_206A_206C_206F_206A_200B_202E_202E_200C_200C_202C_206D_206D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _206B_206F_200F_202A_206F_206D_206D_206C_206A_200C_200D_200C_206C_202D_206D_202C_202D_206A_202E_206C_206A_202E_200F_202A_200F_202A_202B_200C_202A_206B_200B_206B_200F_200B_206B_200B_206B_202D_206F_202D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } + private sealed record NodeCondition(uint CurrentIntegrity, uint MaxIntegrity); } diff --git a/Questionable/Questionable.Controller.Steps.Gathering/DoGatherCollectable.cs b/Questionable/Questionable.Controller.Steps.Gathering/DoGatherCollectable.cs index f56d1ec..d5c6af1 100644 --- a/Questionable/Questionable.Controller.Steps.Gathering/DoGatherCollectable.cs +++ b/Questionable/Questionable.Controller.Steps.Gathering/DoGatherCollectable.cs @@ -1,18 +1,12 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Conditions; -using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Game.Text; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Component.GUI; -using LLib.GameData; using LLib.GameUI; -using Lumina.Excel; -using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.Functions; using Questionable.Model.Gathering; @@ -24,16 +18,6 @@ internal static class DoGatherCollectable { internal sealed record Task(GatheringController.GatheringRequest Request, GatheringNode Node, bool RevisitRequired) : ITask, IRevisitAware { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200F_200D_202D_206C_206C_206E_202C_200E_200C_206B_200D_200B_206F_202C_206B_206C_206B_202B_202D_200F_206C_200C_202B_206B_206F_206C_206B_200B_206A_202A_200D_202A_206F_200E_202C_200D_206C_202E_200C_206E_202E(typeof(Task).TypeHandle); - } - } - public bool RevisitTriggered { get; private set; } public void OnRevisit() @@ -41,116 +25,9 @@ internal static class DoGatherCollectable RevisitTriggered = true; } - void IRevisitAware.OnRevisit() - { - //ILSpy generated this explicit interface implementation from .override directive in OnRevisit - this.OnRevisit(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(22, 3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1601908547)); - defaultInterpolatedStringHandler.AppendFormatted(_202D_202B_206C_202D_206D_202C_202A_200E_206E_200B_202E_202D_200C_200B_202A_200F_200C_200D_206F_206E_206B_206A_206B_200F_200E_206E_200B_206B_200C_200E_206A_202D_200E_206F_206C_200E_202E_200E_200C_206A_202E(SeIconChar.Collectible)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(503298330)); - defaultInterpolatedStringHandler.AppendFormatted(Request.Collectability); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - defaultInterpolatedStringHandler.AppendFormatted(RevisitRequired ? global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1240368665) : global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1200342830)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200B_200E_200D_200F_202A_202D_200D_206B_206E_202A_202A_206A_202B_200F_206B_200C_202D_206B_202B_206F_206F_200D_206A_206C_202A_202A_200F_206F_200D_202D_200B_202A_200E_202C_200C_206D_206F_206A_200E_202B_202E(); - _202A_202E_206C_206D_206B_206C_206A_206D_202B_200E_206A_202C_206F_200B_200B_202B_200C_200B_206D_206A_206C_200D_206F_200B_202E_206B_206D_206B_206B_202A_200C_206C_200D_202A_202D_206D_206C_202D_202E_206A_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1124844995)); - _202D_202B_200C_200F_200D_200F_200E_200C_200D_202A_206C_206E_206A_200D_202B_206C_200D_202B_206A_206C_200F_202D_202A_200C_206B_202A_206C_206F_202A_200E_206A_206A_202D_200C_202E_202C_200E_202A_202D_206E_202E(builder, (object)Request); - _202A_202E_206C_206D_206B_206C_206A_206D_202B_200E_206A_202C_206F_200B_200B_202B_200C_200B_206D_206A_206C_200D_206F_200B_202E_206B_206D_206B_206B_202A_200C_206C_200D_202A_202D_206D_206C_202D_202E_206A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-722402907)); - _202D_202B_200C_200F_200D_200F_200E_200C_200D_202A_206C_206E_206A_200D_202B_206C_200D_202B_206A_206C_200F_202D_202A_200C_206B_202A_206C_206F_202A_200E_206A_206A_202D_200C_202E_202C_200E_202A_202D_206E_202E(builder, (object)Node); - _202A_202E_206C_206D_206B_206C_206A_206D_202B_200E_206A_202C_206F_200B_200B_202B_200C_200B_206D_206A_206C_200D_206F_200B_202E_206B_206D_206B_206B_202A_200C_206C_200D_202A_202D_206D_206C_202D_202E_206A_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(849152591)); - _202A_202E_206C_206D_206B_206C_206A_206D_202B_200E_206A_202C_206F_200B_200B_202B_200C_200B_206D_206A_206C_200D_206F_200B_202E_206B_206D_206B_206B_202A_200C_206C_200D_202A_202D_206D_206C_202D_202E_206A_202E(builder, RevisitRequired.ToString()); - _202A_202E_206C_206D_206B_206C_206A_206D_202B_200E_206A_202C_206F_200B_200B_202B_200C_200B_206D_206A_206C_200D_206F_200B_202E_206B_206D_206B_206B_202A_200C_206C_200D_202A_202D_206D_206C_202D_202E_206A_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-145983723)); - _202A_202E_206C_206D_206B_206C_206A_206D_202B_200E_206A_202C_206F_200B_200B_202B_200C_200B_206D_206A_206C_200D_206F_200B_202E_206B_206D_206B_206B_202A_200C_206C_200D_202A_202D_206D_206C_202D_202E_206A_202E(builder, RevisitTriggered.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? 1037561831 : 1037561826); - while (true) - { - int num2 = num; - int num3 = 1037561830; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - num = ((!EqualityComparer<GatheringNode>.Default.Equals(Node, other.Node)) ? 1037561825 : 1037561829); - break; - case 8: - return EqualityComparer<bool>.Default.Equals(RevisitTriggered, other.RevisitTriggered); - case 2: - num = ((!EqualityComparer<GatheringController.GatheringRequest>.Default.Equals(Request, other.Request)) ? 1037561825 : 1037561824); - break; - case 5: - num = ((!_206A_202E_202E_206D_206E_206B_200F_200D_200E_206A_200B_202D_202C_206C_202A_200D_202B_200F_206C_202B_206F_206D_202A_206F_202E_206B_206B_202A_202A_202C_202E_200D_202B_206B_206B_206C_206F_202D_200C_202D_202E(EqualityContract, other.EqualityContract)) ? 1037561825 : 1037561828); - break; - case 3: - num = ((!EqualityComparer<bool>.Default.Equals(RevisitRequired, other.RevisitRequired)) ? 1037561825 : 1037561838); - break; - case 0: - num = 1037561826; - break; - case 4: - num = (((object)other == null) ? 1037561825 : 1037561827); - break; - case 7: - return false; - case 1: - return true; - } - } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200F_200D_202D_206C_206C_206E_202C_200E_200C_206B_200D_200B_206F_202C_206B_206C_206B_202B_202D_200F_206C_200C_202B_206B_206F_206C_206B_200B_206A_202A_200D_202A_206F_200E_202C_200D_206C_202E_200C_206E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static string _202D_202B_206C_202D_206D_202C_202A_200E_206E_200B_202E_202D_200C_200B_202A_200F_200C_200D_206F_206E_206B_206A_206B_200F_200E_206E_200B_206B_200C_200E_206A_202D_200E_206F_206C_200E_202E_200E_200C_206A_202E(SeIconChar P_0) - { - return P_0.ToIconString(); - } - - static void _200B_200E_200D_200F_202A_202D_200D_206B_206E_202A_202A_206A_202B_200F_206B_200C_202D_206B_202B_206F_206F_200D_206A_206C_202A_202A_200F_206F_200D_202D_200B_202A_200E_202C_200C_206D_206F_206A_200E_202B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202A_202E_206C_206D_206B_206C_206A_206D_202B_200E_206A_202C_206F_200B_200B_202B_200C_200B_206D_206A_206C_200D_206F_200B_202E_206B_206D_206B_206B_202A_200C_206C_200D_202A_202D_206D_206C_202D_202E_206A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202D_202B_200C_200F_200D_200F_200E_200C_200D_202A_206C_206E_206A_200D_202B_206C_200D_202B_206A_206C_200F_202D_202A_200C_206B_202A_206C_206F_202A_200E_206A_206A_202D_200C_202E_202C_200E_202A_202D_206E_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206A_202E_202E_206D_206E_206B_200F_200D_200E_206A_200B_202D_202C_206C_202A_200D_202B_200F_206C_202B_206F_206D_202A_206F_202E_206B_206B_202A_202A_202C_202E_200D_202B_206B_206B_206C_206F_202D_200C_202D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"DoGatherCollectable({SeIconChar.Collectible.ToIconString()}/{Request.Collectability}){(RevisitRequired ? " if revist" : "")}"; } } @@ -169,665 +46,206 @@ internal static class DoGatherCollectable return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe override ETaskResult Update() { - int num = ((!base.Task.RevisitRequired) ? (-1306248143) : (-1306248180)); - NodeCondition nodeCondition = default(NodeCondition); - AtkUnitBase* addonPtr = default(AtkUnitBase*); - bool? flag = default(bool?); - EAction result = default(EAction); - IGameObject gameObject = default(IGameObject); - Task task = default(Task); - while (true) + if (base.Task.RevisitRequired && !base.Task.RevisitTriggered) { - int num2 = num; - int num3 = -1306248192; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + logger.LogDebug("No revisit"); + return ETaskResult.TaskComplete; + } + Task task = base.Task; + if ((object)task != null && task.RevisitRequired && task.RevisitTriggered && !condition[ConditionFlag.Gathering]) + { + if (_wasGathering) { - default: - continue; - case 50: - _actionQueue = GetNextActions(nodeCondition); - if (_actionQueue != null) - { - num = -1306248176; - continue; - } - break; - case 36: - return ETaskResult.StillRunning; - case 18: - { - uint uInt3 = addonPtr->AtkValues[62].UInt; - uint uInt4 = addonPtr->AtkValues[63].UInt; - _206B_200E_200D_206F_206B_206F_200C_200B_202D_206A_206E_206F_200F_206A_200B_202B_202D_200B_206E_200C_206D_206F_206E_202A_200E_206A_200F_206F_200B_200F_202B_200F_200B_202E_200B_200E_200C_200B_202C_200C_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1155490632), new object[2] { uInt3, uInt4 }); - num = ((uInt3 == 0) ? (-1306248152) : (-1306248189)); - continue; - } - case 7: - _expectedScrutiny = flag; - _206B_200E_200D_206F_206B_206F_200C_200B_202D_206A_206E_206F_200F_206A_200B_202B_202D_200B_206E_200C_206D_206F_206E_202A_200E_206A_200F_206F_200B_200F_202B_200F_200B_202E_200B_200E_200C_200B_202C_200C_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1760938028), new object[1] { result }); - _actionQueue.Dequeue(); - num = -1306248164; - continue; - case 51: - _206B_200E_200D_206F_206B_206F_200C_200B_202D_206A_206E_206F_200F_206A_200B_202B_202D_200B_206E_200C_206D_206F_206E_202A_200E_206A_200F_206F_200B_200F_202B_200F_200B_202E_200B_200E_200C_200B_202C_200C_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(509991167), Array.Empty<object>()); return ETaskResult.TaskComplete; - case 30: - num = ((!gameFunctions.InteractWith(gameObject)) ? (-1306248136) : (-1306248191)); - continue; - case 17: - num = ((!task.RevisitRequired) ? (-1306248182) : (-1306248173)); - continue; - case 4: - num = -1306248180; - continue; - case 33: - return ETaskResult.StillRunning; - case 45: - num = ((_actionQueue == null) ? (-1306248172) : (-1306248169)); - continue; - case 9: - num = ((!_206E_206B_202D_202E_202B_200F_200B_206F_200C_206A_206D_206E_202A_202E_200B_200C_202A_200B_200E_202E_200B_206B_206F_200F_206D_202A_206E_206F_206C_202C_206D_206E_206E_206D_206D_200D_206C_202D_202E_202A_202E(condition, ConditionFlag.Gathering)) ? (-1306248177) : (-1306248148)); - continue; - case 0: - num = ((!gameFunctions.UseAction(result)) ? (-1306248164) : (-1306248163)); - continue; - case 35: - num = ((!_wasGathering) ? (-1306248154) : (-1306248160)); - continue; - case 28: - return ETaskResult.StillRunning; - case 42: - throw new TaskException(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1562567850)); - case 49: - task = base.Task; - num = (((object)task == null) ? (-1306248161) : (-1306248165)); - continue; - case 14: - num = ((!_expectedScrutiny.HasValue) ? (-1306248147) : (-1306248170)); - continue; - case 56: - _nextRevisitInteractionAt = _206E_200B_200B_200B_206A_202E_200E_206A_202D_206E_206F_206B_206B_200C_206B_202E_206B_206D_206A_206D_206C_200F_206A_206E_206F_202C_206F_206F_202B_200C_200E_200E_202C_206B_200C_202A_202D_200F_202D_202C_202E() + 1000; - num = -1306248144; - continue; - case 26: - num = ((!gatheringController.HasNodeDisappeared(base.Task.Node)) ? (-1306248183) : (-1306248187)); - continue; - case 37: - task = base.Task; - num = (((object)task == null) ? (-1306248182) : (-1306248175)); - continue; - case 40: - return ETaskResult.StillRunning; - case 23: - num = ((!_actionQueue.TryPeek(out result)) ? (-1306248172) : (-1306248192)); - continue; - case 27: - num = ((!task.RevisitRequired) ? (-1306248161) : (-1306248168)); - continue; - case 55: - flag = true; - num = -1306248185; - continue; - case 6: - num = (_206E_206B_202D_202E_202B_200F_200B_206F_200C_206A_206D_206E_202A_202E_200B_200C_202A_200B_200E_202E_200B_206B_206F_200F_206D_202A_206E_206F_206C_202C_206D_206E_206E_206D_206D_200D_206C_202D_202E_202A_202E(condition, ConditionFlag.Gathering) ? (-1306248156) : (-1306248145)); - continue; - case 15: - num = ((!gatheringController.HasRequestedItems()) ? (-1306248138) : (-1306248153)); - continue; - case 22: - { - bool scrutinyActive = nodeCondition.ScrutinyActive; - flag = _expectedScrutiny; - num = ((scrutinyActive == flag) ? (-1306248190) : (-1306248158)); - continue; } - case 20: - if (nodeCondition.CollectabilityToGoal(base.Task.Request.Collectability) != 0) + if (Environment.TickCount64 >= _nextRevisitInteractionAt) + { + IGameObject gameObject = objectTable.FirstOrDefault((IGameObject x) => x.BaseId == base.Task.Node.DataId && x.IsTargetable); + if (gameObject != null && gameFunctions.InteractWith(gameObject)) { - num = -1306248142; - continue; + logger.LogDebug("Revisit triggered, re-interacting with node {DataId}", base.Task.Node.DataId); } - break; - case 29: + _nextRevisitInteractionAt = Environment.TickCount64 + 1000; + } + return ETaskResult.StillRunning; + } + if (!base.Task.RevisitTriggered && gatheringController.HasNodeDisappeared(base.Task.Node)) + { + logger.LogDebug("Node disappeared"); + return ETaskResult.TaskComplete; + } + if (condition[ConditionFlag.Gathering]) + { + _wasGathering = true; + } + if (gatheringController.HasRequestedItems()) + { + if (gameGui.TryGetAddonByName<AtkUnitBase>("GatheringMasterpiece", out var addonPtr)) + { + uint uInt = addonPtr->AtkValues[62].UInt; + uint uInt2 = addonPtr->AtkValues[63].UInt; + logger.LogDebug("Requested collectables complete with node integrity {Current}/{Max}", uInt, uInt2); + if (uInt != 0) + { + addonPtr->FireCallbackInt(1); + } + return ETaskResult.StillRunning; + } + if (gameGui.TryGetAddonByName<AtkUnitBase>("Gathering", out addonPtr)) + { + uint uInt3 = addonPtr->AtkValues[109].UInt; + uint uInt4 = addonPtr->AtkValues[110].UInt; + logger.LogDebug("Leaving gathering interface with node integrity {Current}/{Max}", uInt3, uInt4); + if (uInt3 != 0) + { + addonPtr->FireCallbackInt(-1); + } + return ETaskResult.StillRunning; + } + if (!condition[ConditionFlag.Gathering]) + { + return ETaskResult.TaskComplete; + } + return ETaskResult.StillRunning; + } + if (gameFunctions.GetFreeInventorySlots() == 0) + { + throw new TaskException("Inventory full"); + } + NodeCondition nodeCondition = GetNodeCondition(); + if (nodeCondition == null) + { + task = base.Task; + if ((object)task == null || !task.RevisitRequired || !task.RevisitTriggered) + { + return ETaskResult.TaskComplete; + } + return ETaskResult.StillRunning; + } + if (_expectedScrutiny.HasValue) + { + if (nodeCondition.ScrutinyActive != _expectedScrutiny) + { + return ETaskResult.StillRunning; + } + _expectedScrutiny = null; + return ETaskResult.StillRunning; + } + if (_actionQueue != null && _actionQueue.TryPeek(out var result)) + { + if (gameFunctions.UseAction(result)) + { + bool? expectedScrutiny; switch (result) { case EAction.ScrutinyMiner: case EAction.ScrutinyBotanist: + expectedScrutiny = true; break; - default: - goto IL_0540; case EAction.ScourMiner: case EAction.MeticulousMiner: case EAction.ScourBotanist: case EAction.MeticulousBotanist: - goto IL_0627; - case (EAction)22183: - case (EAction)22187: - goto IL_075a; + expectedScrutiny = false; + break; + default: + expectedScrutiny = null; + break; } - goto case 55; - case 5: - _206B_200E_200D_206F_206B_206F_200C_200B_202D_206A_206E_206F_200F_206A_200B_202B_202D_200B_206E_200C_206D_206F_206E_202A_200E_206A_200F_206F_200B_200F_202B_200F_200B_202E_200B_200E_200C_200B_202C_200C_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(670927983), Array.Empty<object>()); - return ETaskResult.TaskComplete; - case 48: - return ETaskResult.StillRunning; - case 32: - return ETaskResult.TaskComplete; - case 8: - gameObject = objectTable.FirstOrDefault(delegate(IGameObject x) - { - int num8 = ((_202E_200C_202C_202B_200F_202C_206B_202A_200B_200F_202C_200B_206E_202A_202B_202E_206B_206C_202C_202A_202C_202E_206E_200B_202C_202C_200F_202A_206C_206B_206B_202C_206E_206C_202B_206C_202C_200E_202C_202D_202E(x) != _202C_202A_202D_200E_206B_200D_206B_200B_206E_202C_200F_206C_206E_202D_202B_206A_206A_202A_200D_206B_206F_202D_200D_200C_206A_202E_206C_200C_200C_202D_202C_202E_202A_200F_206A_200D_206B_200D_200B_206A_202E(base.Task.Node)) ? 101007406 : 101007405); - while (true) - { - int num9 = num8; - int num10 = 101007407; - int num11 = num9; - int num12 = num11 + num10; - int num13 = num11 & num10; - switch (num12 - (num13 + num13)) - { - case 0: - goto IL_0058; - case 1: - return false; - case 2: - return _202A_206A_202A_200C_206B_202E_200E_206E_206E_200D_206C_202B_206B_206C_206D_202C_202B_200B_200C_200F_200B_202B_202D_206C_200B_200F_206F_202D_200B_200E_206E_202E_202B_200E_202C_202B_202C_206B_200D_202E_202E(x); - } - continue; - IL_0058: - num8 = 101007405; - } - }); - num = ((gameObject == null) ? (-1306248136) : (-1306248162)); - continue; - case 19: - num = (task.RevisitTriggered ? (-1306248139) : (-1306248182)); - continue; - case 3: - addonPtr->FireCallbackInt(1); - num = -1306248152; - continue; - case 47: - return ETaskResult.TaskComplete; - case 24: - num = ((!task.RevisitTriggered) ? (-1306248161) : (-1306248179)); - continue; - case 31: - num = (base.Task.RevisitTriggered ? (-1306248183) : (-1306248166)); - continue; - case 21: - goto IL_0627; - case 1: - _206B_200E_200D_206F_206B_206F_200C_200B_202D_206A_206E_206F_200F_206A_200B_202B_202D_200B_206E_200C_206D_206F_206E_202A_200E_206A_200F_206F_200B_200F_202B_200F_200B_202E_200B_200E_200C_200B_202C_200C_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(866221755), new object[1] { _202C_202A_202D_200E_206B_200D_206B_200B_206E_202C_200F_206C_206E_202D_202B_206A_206A_202A_200D_206B_206F_202D_200D_200C_206A_202E_206C_200C_200C_202D_202C_202E_202A_200F_206A_200D_206B_200D_200B_206A_202E(base.Task.Node) }); - num = -1306248136; - continue; - case 52: + _expectedScrutiny = expectedScrutiny; + logger.LogDebug("Used action {Action} on node", result); + _actionQueue.Dequeue(); + } + return ETaskResult.StillRunning; + } + if (nodeCondition.CollectabilityToGoal(base.Task.Request.Collectability) != 0) + { + _actionQueue = GetNextActions(nodeCondition); + if (_actionQueue != null) { - uint uInt = addonPtr->AtkValues[109].UInt; - uint uInt2 = addonPtr->AtkValues[110].UInt; - _206B_200E_200D_206F_206B_206F_200C_200B_202D_206A_206E_206F_200F_206A_200B_202B_202D_200B_206E_200C_206D_206F_206E_202A_200E_206A_200F_206F_200B_200F_202B_200F_200B_202E_200B_200E_200C_200B_202C_200C_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-749226007), new object[2] { uInt, uInt2 }); - num = ((uInt == 0) ? (-1306248159) : (-1306248151)); - continue; - } - case 11: - nodeCondition = GetNodeCondition(); - num = ((!(nodeCondition == null)) ? (-1306248178) : (-1306248155)); - continue; - case 39: - num = ((!gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(396218849), out addonPtr)) ? (-1306248149) : (-1306248174)); - continue; - case 25: - goto IL_075a; - case 46: - num = -1306248167; - continue; - case 44: - _wasGathering = true; - num = -1306248177; - continue; - case 54: - num = ((gameFunctions.GetFreeInventorySlots() != 0) ? (-1306248181) : (-1306248150)); - continue; - case 2: - _expectedScrutiny = null; - return ETaskResult.StillRunning; - case 38: - num = ((_206E_200B_200B_200B_206A_202E_200E_206A_202D_206E_206F_206B_206B_200C_206B_202E_206B_206D_206A_206D_206C_200F_206A_206E_206F_202C_206F_206F_202B_200C_200E_200E_202C_206B_200C_202A_202D_200F_202D_202C_202E() < _nextRevisitInteractionAt) ? (-1306248144) : (-1306248184)); - continue; - case 12: - num = (base.Task.RevisitTriggered ? (-1306248143) : (-1306248141)); - continue; - case 53: - return ETaskResult.StillRunning; - case 13: - num = (_206E_206B_202D_202E_202B_200F_200B_206F_200C_206A_206D_206E_202A_202E_200B_200C_202A_200B_200E_202E_200B_206B_206F_200F_206D_202A_206E_206F_206C_202C_206D_206E_206E_206D_206D_200D_206C_202D_202E_202A_202E(condition, ConditionFlag.Gathering) ? (-1306248161) : (-1306248157)); - continue; - case 10: - return ETaskResult.TaskComplete; - case 41: - addonPtr->FireCallbackInt(-1); - num = -1306248159; - continue; - case 43: - num = ((!gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2134680438), out addonPtr)) ? (-1306248186) : (-1306248140)); - continue; - case 34: - return ETaskResult.StillRunning; - case 16: + foreach (EAction item in _actionQueue) { - using (Queue<EAction>.Enumerator enumerator = _actionQueue.GetEnumerator()) - { - num = -1901885352; - while (true) - { - int num7 = num; - num3 = -1901885351; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1901885352; - break; - case 1: - num = (enumerator.MoveNext() ? (-1901885349) : (-1901885350)); - break; - case 2: - { - EAction current = enumerator.Current; - _206B_200E_200D_206F_206B_206F_200C_200B_202D_206A_206E_206F_200F_206A_200B_202B_202D_200B_206E_200C_206D_206F_206E_202A_200E_206A_200F_206F_200B_200F_202B_200F_200B_202E_200B_200E_200C_200B_202C_200C_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1559757228), new object[1] { current }); - num = -1901885352; - break; - } - case 3: - goto end_IL_08a8; - } - continue; - end_IL_08a8: - break; - } - } - return ETaskResult.StillRunning; + logger.LogDebug("Next Actions {Action}", item); } - IL_075a: - flag = null; - num = -1306248185; - continue; - IL_0627: - flag = false; - num = -1306248185; - continue; - IL_0540: - num = -1306248146; - continue; + return ETaskResult.StillRunning; } - break; } _actionQueue = new Queue<EAction>(); _actionQueue.Enqueue(PickAction(EAction.CollectMiner, EAction.CollectBotanist)); return ETaskResult.StillRunning; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe NodeCondition? GetNodeCondition() { - AtkUnitBase* addonPtr; - int num = ((!gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(206776723), out addonPtr)) ? 460399678 : 460399677); - while (true) + if (gameGui.TryGetAddonByName<AtkUnitBase>("GatheringMasterpiece", out var addonPtr)) { - int num2 = num; - int num3 = 460399676; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return null; - case 1: - { - AtkValue* atkValues = addonPtr->AtkValues; - return new NodeCondition(atkValues[13].UInt, atkValues[14].UInt, atkValues[62].UInt, atkValues[63].UInt, atkValues[54].Bool, atkValues[48].UInt, atkValues[51].UInt); - } - case 0: - goto IL_00e2; - } - continue; - IL_00e2: - num = 460399677; + AtkValue* atkValues = addonPtr->AtkValues; + return new NodeCondition(atkValues[13].UInt, atkValues[14].UInt, atkValues[62].UInt, atkValues[63].UInt, atkValues[54].Bool, atkValues[48].UInt, atkValues[51].UInt); } + return null; } - [MethodImpl(MethodImplOptions.NoInlining)] private Queue<EAction> GetNextActions(NodeCondition nodeCondition) { - IPlayerCharacter playerCharacter = _202C_202B_206D_200C_206C_202C_206A_202A_202C_206D_200C_206E_202E_206A_200D_200C_202C_200C_200B_206C_200E_202E_200E_202D_202E_206E_202D_200E_202D_202D_200F_206A_202A_206A_206B_202B_206B_202B_200B_206A_202E(objectTable); - uint num = ((playerCharacter != null) ? _202C_200B_202B_202B_206A_202E_200F_200B_206E_200C_206B_200F_206D_200D_200D_206F_206A_202E_202B_206A_200F_202C_202A_200B_206F_200F_202C_206F_206F_202D_206C_200D_206C_206E_206D_200D_200F_202A_200D_202A_202E((ICharacter)playerCharacter) : 0u); - _206B_206B_202A_200F_202A_200F_206E_202A_206C_206F_200E_202B_206D_206F_202D_202A_200C_200C_200F_206D_206A_202B_202C_202D_206D_200B_206A_202A_200B_202C_202E_206F_206B_206A_206D_202E_200B_200B_200B_206F_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-600944510), new object[3] { num, nodeCondition.CollectabilityFromMeticulous, nodeCondition.CollectabilityFromScour }); + uint num = objectTable.LocalPlayer?.CurrentGp ?? 0; + logger.LogTrace("Getting next actions (with {GP} GP, {MeticulousCollectability}~ meticulous, {ScourCollectability}~ scour)", num, nodeCondition.CollectabilityFromMeticulous, nodeCondition.CollectabilityFromScour); Queue<EAction> queue = new Queue<EAction>(); uint num2 = nodeCondition.CollectabilityToGoal(base.Task.Request.Collectability); - int num3 = ((num2 > nodeCondition.CollectabilityFromMeticulous) ? 1622338187 : 1622338185); - while (true) + if (num2 <= nodeCondition.CollectabilityFromMeticulous) { - int num4 = num3; - int num5 = 1622338188; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) - { - case 1: - _206B_206B_202A_200F_202A_200F_206E_202A_206C_206F_200E_202B_206D_206F_202D_202A_200C_200C_200F_206D_206A_202B_202C_202D_206D_200B_206A_202A_200B_202C_202E_206F_206B_206A_206D_202E_200B_200B_200B_206F_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1982406925), new object[2] { num2, nodeCondition.CollectabilityFromMeticulous }); - queue.Enqueue(PickAction(EAction.MeticulousMiner, EAction.MeticulousBotanist)); - return queue; - case 7: - num3 = ((num2 > nodeCondition.CollectabilityFromScour) ? 1622338191 : 1622338184); - break; - case 5: - _206B_206B_202A_200F_202A_200F_206E_202A_206C_206F_200E_202B_206D_206F_202D_202A_200C_200C_200F_206D_206A_202B_202C_202D_206D_200B_206A_202A_200B_202C_202E_206F_206B_206A_206D_202E_200B_200B_200B_206F_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1892669606), new object[2] { num2, nodeCondition.CollectabilityFromMeticulous }); - queue.Enqueue(PickAction(EAction.MeticulousMiner, EAction.MeticulousBotanist)); - return queue; - case 8: - num3 = ((!nodeCondition.ScrutinyActive) ? 1622338181 : 1622338189); - break; - case 4: - _206B_206B_202A_200F_202A_200F_206E_202A_206C_206F_200E_202B_206D_206F_202D_202A_200C_200C_200F_206D_206A_202B_202C_202D_206D_200B_206A_202A_200B_202C_202E_206F_206B_206A_206D_202E_200B_200B_200B_206F_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2113421034), new object[2] { num2, nodeCondition.CollectabilityFromScour }); - queue.Enqueue(PickAction(EAction.ScourMiner, EAction.ScourBotanist)); - return queue; - case 3: - num3 = (nodeCondition.ScrutinyActive ? 1622338180 : 1622338190); - break; - case 2: - num3 = ((num < 200) ? 1622338180 : 1622338186); - break; - case 6: - _206B_206B_202A_200F_202A_200F_206E_202A_206C_206F_200E_202B_206D_206F_202D_202A_200C_200C_200F_206D_206A_202B_202C_202D_206D_200B_206A_202A_200B_202C_202E_206F_206B_206A_206D_202E_200B_200B_200B_206F_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-837817091), new object[1] { num2 }); - queue.Enqueue(PickAction(EAction.ScrutinyMiner, EAction.ScrutinyBotanist)); - return queue; - case 9: - _206B_206B_202A_200F_202A_200F_206E_202A_206C_206F_200E_202B_206D_206F_202D_202A_200C_200C_200F_206D_206A_202B_202C_202D_206D_200B_206A_202A_200B_202C_202E_206F_206B_206A_206D_202E_200B_200B_200B_206F_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1121451143), new object[2] { num2, nodeCondition.CollectabilityFromScour }); - queue.Enqueue(PickAction(EAction.ScourMiner, EAction.ScourBotanist)); - return queue; - case 0: - num3 = 1622338185; - break; - } + logger.LogTrace("Can get all needed {NeededCollectability} from {Collectability}~ meticulous", num2, nodeCondition.CollectabilityFromMeticulous); + queue.Enqueue(PickAction(EAction.MeticulousMiner, EAction.MeticulousBotanist)); + return queue; } + if (num2 <= nodeCondition.CollectabilityFromScour) + { + logger.LogTrace("Can get all needed {NeededCollectability} from {Collectability}~ scour", num2, nodeCondition.CollectabilityFromScour); + queue.Enqueue(PickAction(EAction.ScourMiner, EAction.ScourBotanist)); + return queue; + } + if (!nodeCondition.ScrutinyActive && num >= 200) + { + logger.LogTrace("Still missing {NeededCollectability} collectability, scrutiny inactive", num2); + queue.Enqueue(PickAction(EAction.ScrutinyMiner, EAction.ScrutinyBotanist)); + return queue; + } + if (nodeCondition.ScrutinyActive) + { + logger.LogTrace("Scrutiny active, need {NeededCollectability} and we expect {Collectability}~ meticulous", num2, nodeCondition.CollectabilityFromMeticulous); + queue.Enqueue(PickAction(EAction.MeticulousMiner, EAction.MeticulousBotanist)); + return queue; + } + logger.LogTrace("Scrutiny inactive, need {NeededCollectability} and we expect {Collectability}~ scour", num2, nodeCondition.CollectabilityFromScour); + queue.Enqueue(PickAction(EAction.ScourMiner, EAction.ScourBotanist)); + return queue; } private EAction PickAction(EAction minerAction, EAction botanistAction) { - IPlayerCharacter playerCharacter = _202C_202B_206D_200C_206C_202C_206A_202A_202C_206D_200C_206E_202E_206A_200D_200C_202C_200C_200B_206C_200E_202E_200E_202D_202E_206E_202D_200E_202D_202D_200F_206A_202A_206A_206B_202B_206B_202B_200B_206A_202E(objectTable); - uint? num = ((playerCharacter != null) ? new uint?(_202C_202B_200F_202A_206B_200E_206D_200D_206D_202C_202E_202C_200B_206D_200E_200D_200E_202A_202B_200D_206D_202B_200B_206C_200E_202E_200E_206B_206A_200B_200E_206B_200E_200E_200C_202B_200F_202C_202C_202A_202E((ICharacter)playerCharacter).RowId) : ((uint?)null)); - int num2 = (num.HasValue ? (-2144175217) : (-2144175223)); - while (true) + if (objectTable.LocalPlayer?.ClassJob.RowId == 16) { - int num3 = num2; - int num4 = -2144175221; - int num5 = num3; - EClassJob? obj; - switch ((num5 | num4) - (num5 & num4)) - { - case 4: - obj = (EClassJob)num.GetValueOrDefault(); - goto IL_0097; - case 1: - return minerAction; - case 0: - num2 = -2144175223; - break; - case 3: - return botanistAction; - case 2: - { - obj = null; - goto IL_0097; - } - IL_0097: - num2 = ((obj != EClassJob.Miner) ? (-2144175224) : (-2144175222)); - break; - } + return minerAction; } + return botanistAction; } public override bool ShouldInterruptOnDamage() { return false; } - - static void _206B_200E_200D_206F_206B_206F_200C_200B_202D_206A_206E_206F_200F_206A_200B_202B_202D_200B_206E_200C_206D_206F_206E_202A_200E_206A_200F_206F_200B_200F_202B_200F_200B_202E_200B_200E_200C_200B_202C_200C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _206E_206B_202D_202E_202B_200F_200B_206F_200C_206A_206D_206E_202A_202E_200B_200C_202A_200B_200E_202E_200B_206B_206F_200F_206D_202A_206E_206F_206C_202C_206D_206E_206E_206D_206D_200D_206C_202D_202E_202A_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static long _206E_200B_200B_200B_206A_202E_200E_206A_202D_206E_206F_206B_206B_200C_206B_202E_206B_206D_206A_206D_206C_200F_206A_206E_206F_202C_206F_206F_202B_200C_200E_200E_202C_206B_200C_202A_202D_200F_202D_202C_202E() - { - return Environment.TickCount64; - } - - static uint _202C_202A_202D_200E_206B_200D_206B_200B_206E_202C_200F_206C_206E_202D_202B_206A_206A_202A_200D_206B_206F_202D_200D_200C_206A_202E_206C_200C_200C_202D_202C_202E_202A_200F_206A_200D_206B_200D_200B_206A_202E(GatheringNode P_0) - { - return P_0.DataId; - } - - static IPlayerCharacter _202C_202B_206D_200C_206C_202C_206A_202A_202C_206D_200C_206E_202E_206A_200D_200C_202C_200C_200B_206C_200E_202E_200E_202D_202E_206E_202D_200E_202D_202D_200F_206A_202A_206A_206B_202B_206B_202B_200B_206A_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static uint _202C_200B_202B_202B_206A_202E_200F_200B_206E_200C_206B_200F_206D_200D_200D_206F_206A_202E_202B_206A_200F_202C_202A_200B_206F_200F_202C_206F_206F_202D_206C_200D_206C_206E_206D_200D_200F_202A_200D_202A_202E(ICharacter P_0) - { - return P_0.CurrentGp; - } - - static void _206B_206B_202A_200F_202A_200F_206E_202A_206C_206F_200E_202B_206D_206F_202D_202A_200C_200C_200F_206D_206A_202B_202C_202D_206D_200B_206A_202A_200B_202C_202E_206F_206B_206A_206D_202E_200B_200B_200B_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogTrace(P_1, P_2); - } - - static RowRef<ClassJob> _202C_202B_200F_202A_206B_200E_206D_200D_206D_202C_202E_202C_200B_206D_200E_200D_200E_202A_202B_200D_206D_202B_200B_206C_200E_202E_200E_206B_206A_200B_200E_206B_200E_200E_200C_202B_200F_202C_202C_202A_202E(ICharacter P_0) - { - return P_0.ClassJob; - } - - static uint _202E_200C_202C_202B_200F_202C_206B_202A_200B_200F_202C_200B_206E_202A_202B_202E_206B_206C_202C_202A_202C_202E_206E_200B_202C_202C_200F_202A_206C_206B_206B_202C_206E_206C_202B_206C_202C_200E_202C_202D_202E(IGameObject P_0) - { - return P_0.BaseId; - } - - static bool _202A_206A_202A_200C_206B_202E_200E_206E_206E_200D_206C_202B_206B_206C_206D_202C_202B_200B_200C_200F_200B_202B_202D_206C_200B_200F_206F_202D_200B_200E_206E_202E_202B_200E_202C_202B_202C_206B_200D_202E_202E(IGameObject P_0) - { - return P_0.IsTargetable; - } } private sealed record NodeCondition(uint CurrentCollectability, uint MaxCollectability, uint CurrentIntegrity, uint MaxIntegrity, bool ScrutinyActive, uint CollectabilityFromScour, uint CollectabilityFromMeticulous) { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206A_206E_206D_206E_206E_202E_206C_206A_206D_202C_206D_206A_202D_202C_200F_202A_202A_202D_200F_206E_206C_206A_206E_200D_202C_200D_206B_206D_202C_206D_202B_200E_206E_200C_202E_200B_206F_202E_202D_200D_202E(typeof(NodeCondition).TypeHandle); - } - } - public uint CollectabilityToGoal(uint goal) { - int num = ((goal < CurrentCollectability) ? (-1343525975) : (-1343525974)); - while (true) + if (goal >= CurrentCollectability) { - int num2 = num; - int num3 = -1343525973; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return (CurrentCollectability == 0) ? 1u : 0u; - case 1: - return goal - CurrentCollectability; - case 0: - goto IL_005c; - } - continue; - IL_005c: - num = -1343525974; + return goal - CurrentCollectability; } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206E_202C_200C_206D_200D_202C_202E_206A_206D_206F_202A_202C_206D_202A_200C_206F_206C_202A_206D_202B_202A_202B_200B_206D_202D_202C_206B_206C_200B_206C_202A_200C_202E_202D_206E_206D_202E_206E_200B_206F_202E(); - _202C_200C_202D_200F_200B_200F_206B_202B_202B_202C_200E_200E_202C_200D_206F_206D_200C_200D_200F_200D_206C_206D_200E_200E_200E_200F_202A_206C_202E_200B_200B_200B_202C_202B_202C_206E_200F_200F_202C_200F_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1102678348)); - _202C_200C_202D_200F_200B_200F_206B_202B_202B_202C_200E_200E_202C_200D_206F_206D_200C_200D_200F_200D_206C_206D_200E_200E_200E_200F_202A_206C_202E_200B_200B_200B_202C_202B_202C_206E_200F_200F_202C_200F_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? 376930465 : 376930466); - while (true) - { - int num2 = num; - int num3 = 376930464; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _202C_206D_206A_202D_206B_202E_202C_206C_200D_200D_202B_206D_200C_202D_202C_202D_202C_200E_202D_202E_206A_200D_206A_202E_200D_200C_200C_206A_200C_206A_202E_200F_206A_202B_206D_202C_206D_202D_200C_206C_202E(stringBuilder, '}'); - return _200B_202B_202A_200E_200E_200D_200E_200E_202A_200B_202E_202A_206B_202A_200D_206C_206C_206F_202D_202A_200C_202D_200D_206F_206A_202D_200E_206F_206E_200B_202A_200C_206A_206F_206A_206B_202A_202D_202C_202E_202E((object)stringBuilder); - case 2: - _202C_206D_206A_202D_206B_202E_202C_206C_200D_200D_202B_206D_200C_202D_202C_202D_202C_200E_202D_202E_206A_200D_206A_202E_200D_200C_200C_206A_200C_206A_202E_200F_206A_202B_206D_202C_206D_202D_200C_206C_202E(stringBuilder, ' '); - num = 376930465; - break; - case 0: - num = 376930466; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202D_200D_206D_200E_202C_200F_202D_206A_202A_206A_202E_206D_206C_200C_202B_200B_200B_206F_206E_200F_202D_200D_206E_206D_202D_206A_206B_206A_202D_206D_202E_206B_202A_202D_202C_200F_206D_200C_206F_200D_202E(); - _202C_200C_202D_200F_200B_200F_206B_202B_202B_202C_200E_200E_202C_200D_206F_206D_200C_200D_200F_200D_206C_206D_200E_200E_200E_200F_202A_206C_202E_200B_200B_200B_202C_202B_202C_206E_200F_200F_202C_200F_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-608021837)); - _202C_200C_202D_200F_200B_200F_206B_202B_202B_202C_200E_200E_202C_200D_206F_206D_200C_200D_200F_200D_206C_206D_200E_200E_200E_200F_202A_206C_202E_200B_200B_200B_202C_202B_202C_206E_200F_200F_202C_200F_202E(builder, CurrentCollectability.ToString()); - _202C_200C_202D_200F_200B_200F_206B_202B_202B_202C_200E_200E_202C_200D_206F_206D_200C_200D_200F_200D_206C_206D_200E_200E_200E_200F_202A_206C_202E_200B_200B_200B_202C_202B_202C_206E_200F_200F_202C_200F_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2066958103)); - _202C_200C_202D_200F_200B_200F_206B_202B_202B_202C_200E_200E_202C_200D_206F_206D_200C_200D_200F_200D_206C_206D_200E_200E_200E_200F_202A_206C_202E_200B_200B_200B_202C_202B_202C_206E_200F_200F_202C_200F_202E(builder, MaxCollectability.ToString()); - _202C_200C_202D_200F_200B_200F_206B_202B_202B_202C_200E_200E_202C_200D_206F_206D_200C_200D_200F_200D_206C_206D_200E_200E_200E_200F_202A_206C_202E_200B_200B_200B_202C_202B_202C_206E_200F_200F_202C_200F_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-706377363)); - _202C_200C_202D_200F_200B_200F_206B_202B_202B_202C_200E_200E_202C_200D_206F_206D_200C_200D_200F_200D_206C_206D_200E_200E_200E_200F_202A_206C_202E_200B_200B_200B_202C_202B_202C_206E_200F_200F_202C_200F_202E(builder, CurrentIntegrity.ToString()); - _202C_200C_202D_200F_200B_200F_206B_202B_202B_202C_200E_200E_202C_200D_206F_206D_200C_200D_200F_200D_206C_206D_200E_200E_200E_200F_202A_206C_202E_200B_200B_200B_202C_202B_202C_206E_200F_200F_202C_200F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-634525791)); - _202C_200C_202D_200F_200B_200F_206B_202B_202B_202C_200E_200E_202C_200D_206F_206D_200C_200D_200F_200D_206C_206D_200E_200E_200E_200F_202A_206C_202E_200B_200B_200B_202C_202B_202C_206E_200F_200F_202C_200F_202E(builder, MaxIntegrity.ToString()); - _202C_200C_202D_200F_200B_200F_206B_202B_202B_202C_200E_200E_202C_200D_206F_206D_200C_200D_200F_200D_206C_206D_200E_200E_200E_200F_202A_206C_202E_200B_200B_200B_202C_202B_202C_206E_200F_200F_202C_200F_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(742968729)); - _202C_200C_202D_200F_200B_200F_206B_202B_202B_202C_200E_200E_202C_200D_206F_206D_200C_200D_200F_200D_206C_206D_200E_200E_200E_200F_202A_206C_202E_200B_200B_200B_202C_202B_202C_206E_200F_200F_202C_200F_202E(builder, ScrutinyActive.ToString()); - _202C_200C_202D_200F_200B_200F_206B_202B_202B_202C_200E_200E_202C_200D_206F_206D_200C_200D_200F_200D_206C_206D_200E_200E_200E_200F_202A_206C_202E_200B_200B_200B_202C_202B_202C_206E_200F_200F_202C_200F_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(506728788)); - _202C_200C_202D_200F_200B_200F_206B_202B_202B_202C_200E_200E_202C_200D_206F_206D_200C_200D_200F_200D_206C_206D_200E_200E_200E_200F_202A_206C_202E_200B_200B_200B_202C_202B_202C_206E_200F_200F_202C_200F_202E(builder, CollectabilityFromScour.ToString()); - _202C_200C_202D_200F_200B_200F_206B_202B_202B_202C_200E_200E_202C_200D_206F_206D_200C_200D_200F_200D_206C_206D_200E_200E_200E_200F_202A_206C_202E_200B_200B_200B_202C_202B_202C_206E_200F_200F_202C_200F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1577334643)); - _202C_200C_202D_200F_200B_200F_206B_202B_202B_202C_200E_200E_202C_200D_206F_206D_200C_200D_200F_200D_206C_206D_200E_200E_200E_200F_202A_206C_202E_200B_200B_200B_202C_202B_202C_206E_200F_200F_202C_200F_202E(builder, CollectabilityFromMeticulous.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(NodeCondition? other) - { - int num = (((object)this == other) ? (-1448578084) : (-1448578095)); - while (true) - { - int num2 = num; - int num3 = -1448578086; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = ((!EqualityComparer<uint>.Default.Equals(MaxIntegrity, other.MaxIntegrity)) ? (-1448578093) : (-1448578083)); - break; - case 11: - num = (((object)other == null) ? (-1448578093) : (-1448578088)); - break; - case 9: - return false; - case 4: - return EqualityComparer<uint>.Default.Equals(CollectabilityFromMeticulous, other.CollectabilityFromMeticulous); - case 0: - num = ((!EqualityComparer<uint>.Default.Equals(CollectabilityFromScour, other.CollectabilityFromScour)) ? (-1448578093) : (-1448578082)); - break; - case 3: - num = ((!EqualityComparer<uint>.Default.Equals(CurrentIntegrity, other.CurrentIntegrity)) ? (-1448578093) : (-1448578085)); - break; - case 8: - num = ((!EqualityComparer<uint>.Default.Equals(MaxCollectability, other.MaxCollectability)) ? (-1448578093) : (-1448578087)); - break; - case 5: - num = -1448578095; - break; - case 6: - return true; - case 10: - num = ((!EqualityComparer<uint>.Default.Equals(CurrentCollectability, other.CurrentCollectability)) ? (-1448578093) : (-1448578094)); - break; - case 2: - num = ((!_202D_206C_206A_206B_200B_200C_206F_200D_206B_206D_200B_206C_202A_206A_202E_206B_202E_206D_200E_206D_202A_200D_202A_200B_206F_202C_200C_206E_206F_206B_206A_200E_206B_200E_206D_206F_200B_202C_200D_200D_202E(EqualityContract, other.EqualityContract)) ? (-1448578093) : (-1448578096)); - break; - case 7: - num = ((!EqualityComparer<bool>.Default.Equals(ScrutinyActive, other.ScrutinyActive)) ? (-1448578093) : (-1448578086)); - break; - } - } - } - - bool IEquatable<NodeCondition>.Equals(NodeCondition? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206A_206E_206D_206E_206E_202E_206C_206A_206D_202C_206D_206A_202D_202C_200F_202A_202A_202D_200F_206E_206C_206A_206E_200D_202C_200D_206B_206D_202C_206D_202B_200E_206E_200C_202E_200B_206F_202E_202D_200D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206E_202C_200C_206D_200D_202C_202E_206A_206D_206F_202A_202C_206D_202A_200C_206F_206C_202A_206D_202B_202A_202B_200B_206D_202D_202C_206B_206C_200B_206C_202A_200C_202E_202D_206E_206D_202E_206E_200B_206F_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202C_200C_202D_200F_200B_200F_206B_202B_202B_202C_200E_200E_202C_200D_206F_206D_200C_200D_200F_200D_206C_206D_200E_200E_200E_200F_202A_206C_202E_200B_200B_200B_202C_202B_202C_206E_200F_200F_202C_200F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202C_206D_206A_202D_206B_202E_202C_206C_200D_200D_202B_206D_200C_202D_202C_202D_202C_200E_202D_202E_206A_200D_206A_202E_200D_200C_200C_206A_200C_206A_202E_200F_206A_202B_206D_202C_206D_202D_200C_206C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200B_202B_202A_200E_200E_200D_200E_200E_202A_200B_202E_202A_206B_202A_200D_206C_206C_206F_202D_202A_200C_202D_200D_206F_206A_202D_200E_206F_206E_200B_202A_200C_206A_206F_206A_206B_202A_202D_202C_202E_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202D_200D_206D_200E_202C_200F_202D_206A_202A_206A_202E_206D_206C_200C_202B_200B_200B_206F_206E_200F_202D_200D_206E_206D_202D_206A_206B_206A_202D_206D_202E_206B_202A_202D_202C_200F_206D_200C_206F_200D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _202D_206C_206A_206B_200B_200C_206F_200D_206B_206D_200B_206C_202A_206A_202E_206B_202E_206D_200E_206D_202A_200D_202A_200B_206F_202C_200C_206E_206F_206B_206A_200E_206B_200E_206D_206F_200B_202C_200D_200D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return (CurrentCollectability == 0) ? 1u : 0u; } } } diff --git a/Questionable/Questionable.Controller.Steps.Gathering/MoveToLandingLocation.cs b/Questionable/Questionable.Controller.Steps.Gathering/MoveToLandingLocation.cs index 82483ac..125ee15 100644 --- a/Questionable/Questionable.Controller.Steps.Gathering/MoveToLandingLocation.cs +++ b/Questionable/Questionable.Controller.Steps.Gathering/MoveToLandingLocation.cs @@ -1,10 +1,6 @@ -using System; -using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Objects.Enums; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Game.Text.SeStringHandling; @@ -22,224 +18,38 @@ internal static class MoveToLandingLocation { internal sealed record Task(ushort TerritoryId, bool FlyBetweenNodes, GatheringNode GatheringNode) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206D_206E_202C_202B_206A_200C_200C_200B_200B_206B_206F_206D_206C_202B_206D_200C_202B_206D_200C_206D_206E_202A_206B_200C_202A_206D_202E_202C_200F_206C_202E_202C_200E_202B_202D_202D_202B_206F_202B_200C_202E(typeof(Task).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(5, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1985466382)); - defaultInterpolatedStringHandler.AppendFormatted(FlyBetweenNodes); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206B_206E_202E_202A_206D_200D_202D_200C_202C_202C_206D_206C_202A_206E_206B_202A_202A_206A_202E_206F_202A_200E_202E_202A_202D_206E_202E_202D_206A_202B_200B_206C_202B_200B_206B_206D_200F_206E_206F_206A_202E(); - _206A_206F_206A_200E_206A_206E_202D_206A_202A_200B_206B_202B_200C_206A_206C_202B_200F_206B_202E_202D_202B_206C_202A_200B_202A_206D_202D_206F_200E_200F_206F_202E_202C_202D_206E_200C_202C_202A_202D_202D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1030915870)); - _206A_206F_206A_200E_206A_206E_202D_206A_202A_200B_206B_202B_200C_206A_206C_202B_200F_206B_202E_202D_202B_206C_202A_200B_202A_206D_202D_206F_200E_200F_206F_202E_202C_202D_206E_200C_202C_202A_202D_202D_202E(builder, TerritoryId.ToString()); - _206A_206F_206A_200E_206A_206E_202D_206A_202A_200B_206B_202B_200C_206A_206C_202B_200F_206B_202E_202D_202B_206C_202A_200B_202A_206D_202D_206F_200E_200F_206F_202E_202C_202D_206E_200C_202C_202A_202D_202D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1326412835)); - _206A_206F_206A_200E_206A_206E_202D_206A_202A_200B_206B_202B_200C_206A_206C_202B_200F_206B_202E_202D_202B_206C_202A_200B_202A_206D_202D_206F_200E_200F_206F_202E_202C_202D_206E_200C_202C_202A_202D_202D_202E(builder, FlyBetweenNodes.ToString()); - _206A_206F_206A_200E_206A_206E_202D_206A_202A_200B_206B_202B_200C_206A_206C_202B_200F_206B_202E_202D_202B_206C_202A_200B_202A_206D_202D_206F_200E_200F_206F_202E_202C_202D_206E_200C_202C_202A_202D_202D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-41827092)); - _202C_200F_206A_206A_202C_200C_206F_206E_202E_202C_200C_206C_202B_202A_206B_206E_200D_206D_202A_200E_202E_200E_200C_202D_202C_202A_200F_206D_202A_202E_206C_202C_206F_202A_206F_200B_202B_202A_202A_206A_202E(builder, (object)GatheringNode); - return true; - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? (-1523296508) : (-1523296507)); - while (true) - { - int num2 = num; - int num3 = -1523296508; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 7: - num = -1523296507; - break; - case 6: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? (-1523296505) : (-1523296512)); - break; - case 3: - return false; - case 1: - num = (((object)other == null) ? (-1523296505) : (-1523296506)); - break; - case 4: - num = ((!EqualityComparer<bool>.Default.Equals(FlyBetweenNodes, other.FlyBetweenNodes)) ? (-1523296505) : (-1523296511)); - break; - case 0: - return true; - case 5: - return EqualityComparer<Questionable.Model.Gathering.GatheringNode>.Default.Equals(GatheringNode, other.GatheringNode); - case 2: - num = ((!_200C_206D_202D_200F_206A_202B_206C_202A_206D_206E_202C_200F_202D_200D_206A_200D_202A_202E_206F_202B_206A_202A_206E_202A_206C_202C_202A_202B_206A_200E_206D_206D_202E_206E_202C_200C_200E_206D_202A_202C_202E(EqualityContract, other.EqualityContract)) ? (-1523296505) : (-1523296510)); - break; - } - } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206D_206E_202C_202B_206A_200C_200C_200B_200B_206B_206F_206D_206C_202B_206D_200C_202B_206D_200C_206D_206E_202A_206B_200C_202A_206D_202E_202C_200F_206C_202E_202C_200E_202B_202D_202D_202B_206F_202B_200C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206B_206E_202E_202A_206D_200D_202D_200C_202C_202C_206D_206C_202A_206E_206B_202A_202A_206A_202E_206F_202A_200E_202E_202A_202D_206E_202E_202D_206A_202B_200B_206C_202B_200B_206B_206D_200F_206E_206F_206A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206A_206F_206A_200E_206A_206E_202D_206A_202A_200B_206B_202B_200C_206A_206C_202B_200F_206B_202E_202D_202B_206C_202A_200B_202A_206D_202D_206F_200E_200F_206F_202E_202C_202D_206E_200C_202C_202A_202D_202D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202C_200F_206A_206A_202C_200C_206F_206E_202E_202C_200C_206C_202B_202A_206B_206E_200D_206D_202A_200E_202E_200E_200C_202D_202C_202A_200F_206D_202A_202E_206C_202C_206F_202A_206F_200B_202B_202A_202A_206A_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200C_206D_202D_200F_206A_202B_206C_202A_206D_206E_202C_200F_202D_200D_206A_200D_202A_202E_206F_202B_206A_202A_206E_202A_206C_202C_202A_202B_206A_200E_206D_206D_202E_206E_202C_200C_200E_206D_202A_202C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"Land/{FlyBetweenNodes}"; } } internal sealed class MoveToLandingLocationExecutor(MoveExecutor moveExecutor, GameFunctions gameFunctions, IObjectTable objectTable, ILogger<MoveToLandingLocationExecutor> logger) : TaskExecutor<Task>(), IToastAware, ITaskExecutor { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass6_0 - { - public IGameObject gameObject; - - internal bool _003CStart_003Eb__1(GatheringLocation x) - { - return Vector3.Distance(_206C_200F_206C_200E_202B_200C_202C_200E_206E_202D_202B_206C_202D_202B_202D_206E_200F_202E_206B_206E_200C_200D_202E_206E_200E_200C_202A_206C_206F_206B_206B_202D_200C_202D_200B_206F_200C_202A_206E_200F_202E(x), _206F_206F_200C_206F_206B_202A_200F_200D_206C_202D_206B_206B_202D_202C_200B_206F_206D_206D_206D_200C_200F_206F_206A_200D_202D_206D_206C_206D_202C_202D_202B_200D_200D_200E_200B_206E_202C_206E_202C_200D_202E(gameObject)) < 0.1f; - } - - static Vector3 _206C_200F_206C_200E_202B_200C_202C_200E_206E_202D_202B_206C_202D_202B_202D_206E_200F_202E_206B_206E_200C_200D_202E_206E_200E_200C_202A_206C_206F_206B_206B_202D_200C_202D_200B_206F_200C_202A_206E_200F_202E(GatheringLocation P_0) - { - return P_0.Position; - } - - static Vector3 _206F_206F_200C_206F_206B_202A_200F_200D_206C_202D_206B_206B_202D_202C_200B_206F_206D_206D_206D_200C_200F_206F_206A_200D_202D_206D_206C_206D_202C_202D_202B_200D_200D_200E_200B_206E_202C_206E_202C_200D_202E(IGameObject P_0) - { - return P_0.Position; - } - } - private ITask _moveTask; - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - GatheringLocation gatheringLocation = _202B_202D_206F_206B_202D_200B_200E_200F_200D_200F_202D_206E_200E_202C_200C_206C_206C_200F_202B_202C_200B_200E_202C_206F_206D_206A_200F_200D_206D_202D_200E_200B_206F_202D_206C_206C_206C_200D_206B_206C_202E(base.Task.GatheringNode).First(); - int num = ((_202B_202D_206F_206B_202D_200B_200E_200F_200D_200F_202D_206E_200E_202C_200C_206C_206C_200F_202B_202C_200B_200E_202C_206F_206D_206A_200F_200D_206D_202D_200E_200B_206F_202D_206C_206C_206C_200D_206B_206C_202E(base.Task.GatheringNode).Count <= 1) ? (-148025039) : (-148025036)); - _003C_003Ec__DisplayClass6_0 _003C_003Ec__DisplayClass6_ = default(_003C_003Ec__DisplayClass6_0); - Vector3 vector = default(Vector3); - while (true) + GatheringLocation location = base.Task.GatheringNode.Locations.First(); + if (base.Task.GatheringNode.Locations.Count > 1) { - int num2 = num; - int num3 = -148025039; - int num4 = num2; - int num5; - bool flag; - ushort territoryId; - Vector3 destination; - float? stopDistance; - uint? dataId; - bool fly; - switch ((num4 | num3) - (num4 & num3)) + IGameObject gameObject = objectTable.SingleOrDefault((IGameObject x) => x.ObjectKind == ObjectKind.GatheringPoint && x.BaseId == base.Task.GatheringNode.DataId && x.IsTargetable); + if (gameObject == null) { - case 3: - num5 = 0; - goto IL_0086; - case 4: return false; - case 5: - _003C_003Ec__DisplayClass6_ = new _003C_003Ec__DisplayClass6_0(); - _003C_003Ec__DisplayClass6_.gameObject = objectTable.SingleOrDefault(delegate(IGameObject x) - { - int num8 = ((_202D_202A_206A_206A_206A_202C_200E_206E_200D_202C_206A_206A_200E_206E_200E_200D_200C_202E_200E_200D_202B_206E_202A_200E_200C_202D_202A_200F_206A_206A_206D_200F_200C_202B_202D_206E_206D_206F_206B_202A_202E(x) != ObjectKind.GatheringPoint) ? 412306684 : 412306686); - while (true) - { - int num9 = num8; - int num10 = 412306687; - int num11 = num9; - int num12 = num11 + num10; - int num13 = num11 & num10; - switch (num12 - (num13 + num13)) - { - case 0: - num8 = 412306686; - break; - case 2: - return _206E_202D_206F_200D_206C_206F_206E_206F_200E_200B_206F_200D_206D_202B_206A_200F_206E_202A_202E_202E_206B_202C_200B_202D_202A_202A_200F_202D_206F_200B_202D_200C_202B_202E_200D_206E_200D_206A_206F_206D_202E(x); - case 3: - return false; - case 1: - num8 = ((_202D_202A_206D_202C_206F_206C_202A_206D_202B_202A_206F_206D_206C_202B_202E_200B_202A_206D_200F_200B_200F_202A_202E_200E_202A_200B_202A_200E_206F_202C_200D_206B_206D_202D_206C_206A_206A_206B_202D_202B_202E(x) != _202A_202B_206B_202E_200F_206B_202C_206D_206F_202C_202A_200F_202E_202E_206F_200D_206D_206E_206D_202D_200F_200E_202B_206B_206E_206E_206B_202C_200B_200D_206B_200D_206A_200E_206C_202D_200D_206D_200F_200C_202E(base.Task.GatheringNode)) ? 412306684 : 412306685); - break; - } - } - }); - num = ((_003C_003Ec__DisplayClass6_.gameObject != null) ? (-148025037) : (-148025035)); - break; - case 0: - { - int num6; - float num7; - (vector, num6, num7) = _206D_202A_202C_202B_200E_200B_206F_202C_202B_200F_200D_202C_200D_202E_206C_202C_202B_206C_206A_206A_202D_206B_200D_206C_200B_206C_206E_200E_200F_200C_200C_202A_202E_206B_200F_206E_200F_206B_206E_202D_202E(gatheringLocation); - _202C_200B_200F_206D_200B_202B_202B_206C_200F_206D_202C_200B_202C_206A_206D_202E_200F_200E_202E_206C_206B_202C_206F_206D_206D_202B_200D_202D_200C_206F_202C_200F_202A_200F_200D_200F_202E_200E_206A_206B_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1690558388), new object[3] - { - vector.ToString(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1318690943), _200D_202B_202B_206A_206B_206D_206A_202B_200B_206E_206E_200E_202B_200C_206C_206E_200C_206C_202E_202A_200C_200B_206C_206A_206C_206F_206B_200E_202A_202B_202A_206B_200D_202A_202A_206D_202A_202B_206C_202A_202E()), - num6, - num7 - }); - num = ((!base.Task.FlyBetweenNodes) ? (-148025038) : (-148025040)); - break; - } - case 6: - num = -148025036; - break; - case 1: - num5 = (gameFunctions.IsFlyingUnlocked(base.Task.TerritoryId) ? 1 : 0); - goto IL_0086; - case 2: - { - gatheringLocation = _202B_202D_206F_206B_202D_200B_200E_200F_200D_200F_202D_206E_200E_202C_200C_206C_206C_200F_202B_202C_200B_200E_202C_206F_206D_206A_200F_200D_206D_202D_200E_200B_206F_202D_206C_206C_206C_200D_206B_206C_202E(base.Task.GatheringNode).Single(_003C_003Ec__DisplayClass6_._003CStart_003Eb__1); - num = -148025039; - break; - } - IL_0086: - flag = (byte)num5 != 0; - territoryId = base.Task.TerritoryId; - destination = vector; - stopDistance = 0.25f; - dataId = _202A_202B_206B_202E_200F_206B_202C_206D_206F_202C_202A_200F_202E_202E_206F_200D_206D_206E_206D_202D_200F_200E_202B_206B_206E_206E_206B_202C_200B_200D_206B_200D_206A_200E_206C_202D_200D_206D_200F_200C_202E(base.Task.GatheringNode); - fly = flag; - _moveTask = new MoveTask(territoryId, destination, null, MountRequired: false, DismountRequired: false, stopDistance, dataId, DisableNavmesh: false, null, fly, Land: false, IgnoreDistanceToObject: true, RestartNavigation: true, EInteractionType.Gather); - return moveExecutor.Start(_moveTask); } + location = base.Task.GatheringNode.Locations.Single((GatheringLocation x) => Vector3.Distance(x.Position, gameObject.Position) < 0.1f); } + var (vector, num, num2) = GatheringMath.CalculateLandingLocation(location); + logger.LogDebug("Preliminary landing location: {Location}, with degrees = {Degrees}, range = {Range}", vector.ToString("G", CultureInfo.InvariantCulture), num, num2); + bool flag = base.Task.FlyBetweenNodes && gameFunctions.IsFlyingUnlocked(base.Task.TerritoryId); + ushort territoryId = base.Task.TerritoryId; + Vector3 destination = vector; + float? stopDistance = 0.25f; + uint? dataId = base.Task.GatheringNode.DataId; + bool fly = flag; + _moveTask = new MoveTask(territoryId, destination, null, MountRequired: false, DismountRequired: false, stopDistance, dataId, DisableNavmesh: false, null, fly, Land: false, IgnoreDistanceToObject: true, RestartNavigation: true, EInteractionType.Gather); + return moveExecutor.Start(_moveTask); } public override ETaskResult Update() @@ -252,55 +62,9 @@ internal static class MoveToLandingLocation return moveExecutor.OnErrorToast(message); } - bool IToastAware.OnErrorToast(SeString message) - { - //ILSpy generated this explicit interface implementation from .override directive in OnErrorToast - return this.OnErrorToast(message); - } - public override bool ShouldInterruptOnDamage() { return moveExecutor.ShouldInterruptOnDamage(); } - - static List<GatheringLocation> _202B_202D_206F_206B_202D_200B_200E_200F_200D_200F_202D_206E_200E_202C_200C_206C_206C_200F_202B_202C_200B_200E_202C_206F_206D_206A_200F_200D_206D_202D_200E_200B_206F_202D_206C_206C_206C_200D_206B_206C_202E(GatheringNode P_0) - { - return P_0.Locations; - } - - static (Vector3, int, float) _206D_202A_202C_202B_200E_200B_206F_202C_202B_200F_200D_202C_200D_202E_206C_202C_202B_206C_206A_206A_202D_206B_200D_206C_200B_206C_206E_200E_200F_200C_200C_202A_202E_206B_200F_206E_200F_206B_206E_202D_202E(GatheringLocation P_0) - { - return GatheringMath.CalculateLandingLocation(P_0); - } - - static CultureInfo _200D_202B_202B_206A_206B_206D_206A_202B_200B_206E_206E_200E_202B_200C_206C_206E_200C_206C_202E_202A_200C_200B_206C_206A_206C_206F_206B_200E_202A_202B_202A_206B_200D_202A_202A_206D_202A_202B_206C_202A_202E() - { - return CultureInfo.InvariantCulture; - } - - static void _202C_200B_200F_206D_200B_202B_202B_206C_200F_206D_202C_200B_202C_206A_206D_202E_200F_200E_202E_206C_206B_202C_206F_206D_206D_202B_200D_202D_200C_206F_202C_200F_202A_200F_200D_200F_202E_200E_206A_206B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static uint _202A_202B_206B_202E_200F_206B_202C_206D_206F_202C_202A_200F_202E_202E_206F_200D_206D_206E_206D_202D_200F_200E_202B_206B_206E_206E_206B_202C_200B_200D_206B_200D_206A_200E_206C_202D_200D_206D_200F_200C_202E(GatheringNode P_0) - { - return P_0.DataId; - } - - static ObjectKind _202D_202A_206A_206A_206A_202C_200E_206E_200D_202C_206A_206A_200E_206E_200E_200D_200C_202E_200E_200D_202B_206E_202A_200E_200C_202D_202A_200F_206A_206A_206D_200F_200C_202B_202D_206E_206D_206F_206B_202A_202E(IGameObject P_0) - { - return P_0.ObjectKind; - } - - static uint _202D_202A_206D_202C_206F_206C_202A_206D_202B_202A_206F_206D_206C_202B_202E_200B_202A_206D_200F_200B_200F_202A_202E_200E_202A_200B_202A_200E_206F_202C_200D_206B_206D_202D_206C_206A_206A_206B_202D_202B_202E(IGameObject P_0) - { - return P_0.BaseId; - } - - static bool _206E_202D_206F_200D_206C_206F_206E_206F_200E_200B_206F_200D_206D_202B_206A_200F_206E_202A_202E_202E_206B_202C_200B_202D_202A_202A_200F_202D_206F_200B_202D_200C_202B_202E_200D_206E_200D_206A_206F_206D_202E(IGameObject P_0) - { - return P_0.IsTargetable; - } } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/Action.cs b/Questionable/Questionable.Controller.Steps.Interactions/Action.cs index 46bae73..87e7f7a 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/Action.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/Action.cs @@ -1,8 +1,6 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Objects.Types; using FFXIVClientStructs.FFXIV.Client.Game; using Microsoft.Extensions.Logging; @@ -18,243 +16,50 @@ internal static class Action { internal sealed class Factory : ITaskFactory { - [MethodImpl(MethodImplOptions.NoInlining)] public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_202A_206F_206D_202A_200C_200D_206A_200C_200F_202A_206E_200D_200E_200B_202C_200D_206E_202C_202E_200D_206A_200D_206E_206B_206A_206D_200E_206F_206E_200F_202E_200F_202A_206E_206A_202E_202D_206E_202A_206E_202E(step) == EInteractionType.Action) ? (-1373347802) : (-1373347807)); - ITask task = default(ITask); - while (true) + if (step.InteractionType != EInteractionType.Action) { - int num2 = num; - int num3 = -1373347808; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] - { - new Mount.UnmountTask(), - task - }); - case 5: - _206D_202D_200B_200B_206D_202B_202D_200E_206C_206C_200B_200C_200F_206B_202B_202B_202B_206A_202E_202E_202A_200B_206F_206B_202C_202C_200C_206F_200E_202A_202C_206F_200B_200F_200B_206C_200E_202C_202E((object)_202E_202E_206A_200F_206B_202B_200B_202D_202D_200D_200D_200F_200C_200B_200D_206C_202E_202B_202E_202D_200C_200D_202A_206F_202A_202E_200C_206C_206C_200E_200E_206A_206A_202B_206B_202D_200C_206D_200E_206F_202E(step), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-47284709)); - task = OnObject(_202E_206B_206B_200F_200F_202E_202C_206A_200C_206C_200F_202C_200C_206D_202D_200B_206D_202A_200F_200D_202D_206E_202A_206B_206B_200C_200B_200B_200E_202C_202A_202B_200B_206B_206C_206D_206E_202E_200C_202A_202E(step), quest, _202E_202E_206A_200F_206B_202B_200B_202D_202D_200D_200D_200F_200C_200B_200D_206C_202E_202B_202E_202D_200C_200D_202A_206F_202A_202E_200C_206C_206C_200E_200E_206A_206A_202B_206B_202D_200C_206D_200E_206F_202E(step).Value, _206A_206D_206B_202A_200E_200F_200D_202B_202A_202E_200F_206C_206A_202C_206F_206B_202C_200E_206C_206B_202D_202A_202A_202A_206B_200D_200E_206A_202D_202B_202A_206B_202B_206C_200E_200D_200C_200D_206E_200E_202E(step)); - num = ((!_206C_206C_200B_202C_202D_206F_200E_206E_200C_206B_202D_200F_206B_206C_202B_206D_200E_200B_202C_206F_202B_200F_200F_202B_200C_202A_206A_206D_206E_200B_206D_202D_206C_206E_200B_202A_200B_206F_202C_202E_202E(_202E_202E_206A_200F_206B_202B_200B_202D_202D_200D_200D_200F_200C_200B_200D_206C_202E_202B_202E_202D_200C_200D_202A_206F_202A_202E_200C_206C_206C_200E_200E_206A_206A_202B_206B_202D_200C_206D_200E_206F_202E(step).Value)) ? (-1373347804) : (-1373347808)); - break; - case 1: - return Array.Empty<ITask>(); - case 6: - num = ((_206F_206E_206C_206B_200D_202C_202D_206A_200F_202A_200B_206C_200E_206C_200B_202D_200B_206D_206B_206F_202B_200C_202A_202C_200B_202E_202B_200B_202B_200B_200B_206F_202C_202D_206C_206A_202B_202D_206B_202E_202E(step).Count <= 0) ? (-1373347803) : (-1373347806)); - break; - case 0: - return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(task); - case 2: - return Array.Empty<ITask>(); - case 3: - num = -1373347807; - break; - } + return Array.Empty<ITask>(); } + if (step.DataIds.Count > 0) + { + return Array.Empty<ITask>(); + } + ArgumentNullException.ThrowIfNull(step.Action, "step.Action"); + ITask task = OnObject(step.DataId, quest, step.Action.Value, step.CompletionQuestVariablesFlags); + if (step.Action.Value.RequiresMount()) + { + return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(task); + } + return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] + { + new Mount.UnmountTask(), + task + }); } - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public static ITask OnObject(uint? dataId, Quest quest, EAction action, List<QuestWorkValue?>? completionQuestVariablesFlags) { - int num = (((uint)(action - 2265) > 2u) ? (-1095430213) : (-1095430209)); - bool flag = default(bool); - while (true) + if ((uint)(action - 2265) <= 2u) { - int num2 = num; - int num3 = -1095430210; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - _206D_202D_200B_200B_206D_202B_202D_200E_206C_206C_200B_200C_200F_206B_202B_202B_202B_206A_202E_202E_202A_200B_206F_206B_202C_202C_200C_206F_200E_202A_202C_206F_200B_200F_200B_206C_200E_202C_202E((object)dataId, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-435733247)); - return new UseMudraOnObject(dataId.Value, action); - case 2: - return new UseOnObject(dataId, quest, action, completionQuestVariablesFlags); - case 5: - flag = false; - num = -1095430210; - break; - case 0: - num = ((!flag) ? (-1095430212) : (-1095430214)); - break; - case 3: - num = -1095430209; - break; - case 1: - flag = true; - num = -1095430210; - break; - } + ArgumentNullException.ThrowIfNull(dataId, "dataId"); + return new UseMudraOnObject(dataId.Value, action); } - } - - static EInteractionType _202A_206F_206D_202A_200C_200D_206A_200C_200F_202A_206E_200D_200E_200B_202C_200D_206E_202C_202E_200D_206A_200D_206E_206B_206A_206D_200E_206F_206E_200F_202E_200F_202A_206E_206A_202E_202D_206E_202A_206E_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static List<uint> _206F_206E_206C_206B_200D_202C_202D_206A_200F_202A_200B_206C_200E_206C_200B_202D_200B_206D_206B_206F_202B_200C_202A_202C_200B_202E_202B_200B_202B_200B_200B_206F_202C_202D_206C_206A_202B_202D_206B_202E_202E(QuestStep P_0) - { - return P_0.DataIds; - } - - static EAction? _202E_202E_206A_200F_206B_202B_200B_202D_202D_200D_200D_200F_200C_200B_200D_206C_202E_202B_202E_202D_200C_200D_202A_206F_202A_202E_200C_206C_206C_200E_200E_206A_206A_202B_206B_202D_200C_206D_200E_206F_202E(QuestStep P_0) - { - return P_0.Action; - } - - static void _206D_202D_200B_200B_206D_202B_202D_200E_206C_206C_200B_200C_200F_206B_202B_202B_202B_206A_202E_202E_202A_200B_206F_206B_202C_202C_200C_206F_200E_202A_202C_206F_200B_200F_200B_206C_200E_202C_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static uint? _202E_206B_206B_200F_200F_202E_202C_206A_200C_206C_200F_202C_200C_206D_202D_200B_206D_202A_200F_200D_202D_206E_202A_206B_206B_200C_200B_200B_200E_202C_202A_202B_200B_206B_206C_206D_206E_202E_200C_202A_202E(QuestStep P_0) - { - return P_0.DataId; - } - - static List<QuestWorkValue> _206A_206D_206B_202A_200E_200F_200D_202B_202A_202E_200F_206C_206A_202C_206F_206B_202C_200E_206C_206B_202D_202A_202A_202A_206B_200D_200E_206A_202D_202B_202A_206B_202B_206C_200E_200D_200C_200D_206E_200E_202E(QuestStep P_0) - { - return P_0.CompletionQuestVariablesFlags; - } - - static bool _206C_206C_200B_202C_202D_206F_200E_206E_200C_206B_202D_200F_206B_206C_202B_206D_200E_200B_202C_206F_202B_200F_200F_202B_200C_202A_206A_206D_206E_200B_206D_202D_206C_206E_200B_202A_200B_206F_202C_202E_202E(EAction P_0) - { - return P_0.RequiresMount(); + return new UseOnObject(dataId, quest, action, completionQuestVariablesFlags); } } internal sealed record UseOnObject(uint? DataId, Quest? Quest, EAction Action, List<QuestWorkValue?>? CompletionQuestVariablesFlags) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200D_202A_200F_200E_206F_206B_202D_206D_200F_200B_206B_202D_202A_202E_202D_202D_200C_200E_200D_206E_200B_200E_206A_202D_202B_200C_202C_202B_202A_206E_206B_200C_206A_202E_200B_202E_206A_200B_206F_206B_202E(typeof(UseOnObject).TypeHandle); - } - } - public bool ShouldRedoOnInterrupt() { return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(8, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1657599072)); - defaultInterpolatedStringHandler.AppendFormatted(Action); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200F_202B_200C_200C_200F_200E_202D_200B_202C_206F_200B_202E_202E_206E_200C_206F_202E_206C_200F_206A_206D_202E_200D_206F_206A_202E_200B_206D_202E_202E_206A_206C_200C_202A_202B_200F_200B_206F_202A_202E_202E(); - _202E_206C_206D_206D_202C_202D_200C_202D_206C_206C_206C_206C_200C_200D_206F_202D_202C_200C_202B_206A_202D_200C_200D_202C_206A_206B_202C_202A_202E_200D_206C_206C_200D_206F_200D_200E_200F_200D_202D_200C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(931106117)); - _202E_206C_206D_206D_202C_202D_200C_202D_206C_206C_206C_206C_200C_200D_206F_202D_202C_200C_202B_206A_202D_200C_200D_202C_206A_206B_202C_202A_202E_200D_206C_206C_200D_206F_200D_200E_200F_200D_202D_200C_202E(builder, DataId.ToString()); - _202E_206C_206D_206D_202C_202D_200C_202D_206C_206C_206C_206C_200C_200D_206F_202D_202C_200C_202B_206A_202D_200C_200D_202C_206A_206B_202C_202A_202E_200D_206C_206C_200D_206F_200D_200E_200F_200D_202D_200C_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-862307262)); - _200E_202D_202A_202C_202A_202A_200E_206B_206C_200E_206A_200C_202C_202E_206D_206E_200F_206A_202D_200C_206E_200C_200D_200D_206F_200B_202E_206D_202B_200E_200D_200C_206A_206D_202A_200D_202C_200E_200F_200F_202E(builder, (object?)Quest); - _202E_206C_206D_206D_202C_202D_200C_202D_206C_206C_206C_206C_200C_200D_206F_202D_202C_200C_202B_206A_202D_200C_200D_202C_206A_206B_202C_202A_202E_200D_206C_206C_200D_206F_200D_200E_200F_200D_202D_200C_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(353413506)); - _202E_206C_206D_206D_202C_202D_200C_202D_206C_206C_206C_206C_200C_200D_206F_202D_202C_200C_202B_206A_202D_200C_200D_202C_206A_206B_202C_202A_202E_200D_206C_206C_200D_206F_200D_200E_200F_200D_202D_200C_202E(builder, Action.ToString()); - _202E_206C_206D_206D_202C_202D_200C_202D_206C_206C_206C_206C_200C_200D_206F_202D_202C_200C_202B_206A_202D_200C_200D_202C_206A_206B_202C_202A_202E_200D_206C_206C_200D_206F_200D_200E_200F_200D_202D_200C_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1930370304)); - _200E_202D_202A_202C_202A_202A_200E_206B_206C_200E_206A_200C_202C_202E_206D_206E_200F_206A_202D_200C_206E_200C_200D_200D_206F_200B_202E_206D_202B_200E_200D_200C_206A_206D_202A_200D_202C_200E_200F_200F_202E(builder, (object?)CompletionQuestVariablesFlags); - return true; - } - - [CompilerGenerated] - public bool Equals(UseOnObject? other) - { - int num = (((object)this == other) ? (-1034888155) : (-1034888156)); - while (true) - { - int num2 = num; - int num3 = -1034888158; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = ((!EqualityComparer<Questionable.Model.Quest>.Default.Equals(Quest, other.Quest)) ? (-1034888154) : (-1034888157)); - break; - case 4: - return false; - case 7: - return true; - case 1: - num = ((!EqualityComparer<EAction>.Default.Equals(Action, other.Action)) ? (-1034888154) : (-1034888153)); - break; - case 0: - num = ((!EqualityComparer<uint?>.Default.Equals(DataId, other.DataId)) ? (-1034888154) : (-1034888160)); - break; - case 3: - num = -1034888156; - break; - case 5: - return EqualityComparer<List<QuestWorkValue>>.Default.Equals(CompletionQuestVariablesFlags, other.CompletionQuestVariablesFlags); - case 6: - num = (((object)other == null) ? (-1034888154) : (-1034888150)); - break; - case 8: - num = ((!_200E_200D_200C_206C_206E_206B_200E_206E_202B_200F_206A_200F_202A_200F_206B_202D_206E_206C_200C_202E_200B_206F_206D_202E_202D_202C_200E_206D_202A_206F_200E_206C_206A_206D_200D_202E_202A_206C_202E_206A_202E(EqualityContract, other.EqualityContract)) ? (-1034888154) : (-1034888158)); - break; - } - } - } - - bool IEquatable<UseOnObject>.Equals(UseOnObject? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type? _200D_202A_200F_200E_206F_206B_202D_206D_200F_200B_206B_202D_202A_202E_202D_202D_200C_200E_200D_206E_200B_200E_206A_202D_202B_200C_202C_202B_202A_206E_206B_200C_206A_202E_200B_202E_206A_200B_206F_206B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _200F_202B_200C_200C_200F_200E_202D_200B_202C_206F_200B_202E_202E_206E_200C_206F_202E_206C_200F_206A_206D_202E_200D_206F_206A_202E_200B_206D_202E_202E_206A_206C_200C_202A_202B_200F_200B_206F_202A_202E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder? _202E_206C_206D_206D_202C_202D_200C_202D_206C_206C_206C_206C_200C_200D_206F_202D_202C_200C_202B_206A_202D_200C_200D_202C_206A_206B_202C_202A_202E_200D_206C_206C_200D_206F_200D_200E_200F_200D_202D_200C_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _200E_202D_202A_202C_202A_202A_200E_206B_206C_200E_206A_200C_202C_202E_206D_206E_200F_206A_202D_200C_206E_200C_200D_200D_206F_200B_202E_206D_202B_200E_200D_200C_206A_206D_202A_200D_202C_200E_200F_200F_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } - - static bool _200E_200D_200C_206C_206E_206B_200E_206E_202B_200F_206A_200F_202A_200F_206B_202D_206E_206C_200C_202E_200B_206F_206D_202E_202D_202C_200E_206D_202A_206F_200E_206C_206A_206D_200D_202E_202A_206C_202E_206A_202E(Type? P_0, Type? P_1) - { - return P_0 == P_1; + return $"Action({Action})"; } } @@ -270,278 +75,98 @@ internal static class Action public override bool HasTimedOut(float timeoutSeconds) { - int num = (_waitingForQuestFlags ? (-369880556) : (-369880555)); - while (true) + if (!_waitingForQuestFlags) { - int num2 = num; - int num3 = -369880553; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = ((base.ProgressContext == null) ? (-369880553) : (-369880554)); - break; - case 2: - return false; - case 4: - num = -369880555; - break; - case 0: - return _200C_206A_206B_202E_202B_200E_202A_206A_200F_202B_202D_200E_200F_206B_206E_200B_206E_200F_200C_206C_206A_200D_200C_202A_206A_206D_200E_200B_206F_202B_202D_202B_206C_206F_200D_206B_206F_206F_206B_202A_202E() - _questFlagWaitStarted > (long)(timeoutSeconds * 1000f); - case 1: - return base.HasTimedOut(timeoutSeconds); - } + return false; } + if (base.ProgressContext != null) + { + return base.HasTimedOut(timeoutSeconds); + } + return Environment.TickCount64 - _questFlagWaitStarted > (long)(timeoutSeconds * 1000f); } - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - int num = ((!base.Task.DataId.HasValue) ? (-1131442756) : (-1131442765)); - IGameObject gameObject = default(IGameObject); - while (true) + if (base.Task.DataId.HasValue) { - int num2 = num; - int num3 = -1131442757; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + IGameObject gameObject = gameFunctions.FindObjectByDataId(base.Task.DataId.Value); + if (gameObject == null) { - case 3: - num = -1131442765; - break; - case 0: - _continueAt = _200C_206A_206B_202E_202B_200E_202A_206A_200F_202B_202D_200E_200F_206B_206E_200B_206E_200F_200C_206C_206A_200D_200C_202A_206A_206D_200E_200B_206F_202B_202D_202B_206C_206F_200D_206B_206F_206F_206B_202A_202E() + 2000; + logger.LogDebug("Object with dataId {DataId} not found yet, waiting", base.Task.DataId); return true; - case 5: - num = ((!gameFunctions.HasStatus(EStatus.Eukrasia)) ? (-1131442759) : (-1131442758)); - break; - case 7: - _usedAction = gameFunctions.UseAction(base.Task.Action); - _continueAt = _200C_206A_206B_202E_202B_200E_202A_206A_200F_202B_202D_200E_200F_206B_206E_200B_206E_200F_200C_206C_206A_200D_200C_202A_206A_206D_200E_200B_206F_202B_202D_202B_206C_206F_200D_206B_206F_206F_206B_202A_202E() + 500; - return true; - case 10: - num = ((base.Task.Action != EAction.Diagnosis) ? (-1131442759) : (-1131442754)); - break; - case 6: - _202D_202C_202C_206B_202A_202E_200F_200F_206A_206B_206E_200E_200F_202D_202E_200F_202A_200C_202C_202D_206B_202C_206E_206D_202A_206E_206A_206D_206C_206A_200F_200C_202D_206F_202C_200B_206C_200B_202A_200D_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(600105394), new object[1] { base.Task.DataId }); - return true; - case 2: - _usedAction = gameFunctions.UseAction(gameObject, base.Task.Action); - _continueAt = _200C_206A_206B_202E_202B_200E_202A_206A_200F_202B_202D_200E_200F_206B_206E_200B_206E_200F_200C_206C_206A_200D_200C_202A_206A_206D_200E_200B_206F_202B_202D_202B_206C_206F_200D_206B_206F_206F_206B_202A_202E() + 500; - return true; - case 1: - num = ((!GameFunctions.RemoveStatus(EStatus.Eukrasia)) ? (-1131442759) : (-1131442757)); - break; - case 8: - gameObject = gameFunctions.FindObjectByDataId(base.Task.DataId.Value); - num = ((gameObject != null) ? (-1131442766) : (-1131442755)); - break; - case 4: - _202D_202C_202C_206B_202A_202E_200F_200F_206A_206B_206E_200E_200F_202D_202E_200F_202A_200C_202C_202D_206B_202C_206E_206D_202A_206E_206A_206D_206C_206A_200F_200C_202D_206F_202C_200B_206C_200B_202A_200D_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2073702986), new object[2] - { - base.Task.DataId, - base.Task.Action - }); - num = -1131442756; - break; - case 9: - num = ((!_200C_202B_200E_202A_206A_202C_200D_206C_202E_202D_206B_200E_200C_202C_200F_202E_206B_200B_200E_206F_200F_202A_206E_206F_200F_200B_202D_206F_206C_206E_206E_206F_206E_206C_206F_206E_206A_202D_200C_200C_202E(gameObject)) ? (-1131442753) : (-1131442767)); - break; } + if (gameObject.IsTargetable) + { + if (base.Task.Action == EAction.Diagnosis && gameFunctions.HasStatus(EStatus.Eukrasia) && GameFunctions.RemoveStatus(EStatus.Eukrasia)) + { + _continueAt = Environment.TickCount64 + 2000; + return true; + } + _usedAction = gameFunctions.UseAction(gameObject, base.Task.Action); + _continueAt = Environment.TickCount64 + 500; + return true; + } + logger.LogDebug("Object {DataId} is untargetable, using action {Action} without target", base.Task.DataId, base.Task.Action); } + _usedAction = gameFunctions.UseAction(base.Task.Action); + _continueAt = Environment.TickCount64 + 500; + return true; } public override ETaskResult Update() { - int num = ((_200C_206A_206B_202E_202B_200E_202A_206A_200F_202B_202D_200E_200F_206B_206E_200B_206E_200F_200C_206C_206A_200D_200C_202A_206A_206D_200E_200B_206F_202B_202D_202B_206C_206F_200D_206B_206F_206F_206B_202A_202E() > _continueAt) ? 1542849482 : 1542849479); - QuestProgressInfo questProgressInfo = default(QuestProgressInfo); - IGameObject gameObject = default(IGameObject); - while (true) + if (Environment.TickCount64 <= _continueAt) { - int num2 = num; - int num3 = 1542849472; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return ETaskResult.StillRunning; + } + if (!_usedAction) + { + if (base.Task.DataId.HasValue) + { + IGameObject gameObject = gameFunctions.FindObjectByDataId(base.Task.DataId.Value); + if (gameObject == null) + { + return ETaskResult.StillRunning; + } + _usedAction = (gameObject.IsTargetable ? gameFunctions.UseAction(gameObject, base.Task.Action) : gameFunctions.UseAction(base.Task.Action)); + } + else + { + _usedAction = gameFunctions.UseAction(base.Task.Action); + } + _continueAt = Environment.TickCount64 + 500; + return ETaskResult.StillRunning; + } + if (base.Task.Quest != null && base.Task.CompletionQuestVariablesFlags != null && QuestWorkUtils.HasCompletionFlags(base.Task.CompletionQuestVariablesFlags)) + { + if (!_waitingForQuestFlags) + { + _waitingForQuestFlags = true; + _questFlagWaitStarted = Environment.TickCount64; + } + QuestProgressInfo questProgressInfo = questFunctions.GetQuestProgressInfo(base.Task.Quest.Id); + if (questProgressInfo != null && QuestWorkUtils.MatchesQuestWork(base.Task.CompletionQuestVariablesFlags, questProgressInfo)) { - case 18: ResetProgressTimer(); return ETaskResult.TaskComplete; - case 0: - questProgressInfo = questFunctions.GetQuestProgressInfo(base.Task.Quest.Id); - num = ((questProgressInfo == null) ? 1542849476 : 1542849478); - break; - case 16: - _continueAt = _200C_206A_206B_202E_202B_200E_202A_206A_200F_202B_202D_200E_200F_206B_206E_200B_206E_200F_200C_206C_206A_200D_200C_202A_206A_206D_200E_200B_206F_202B_202D_202B_206C_206F_200D_206B_206F_206F_206B_202A_202E() + 500; - return ETaskResult.StillRunning; - case 10: - num = (_usedAction ? 1542849484 : 1542849474); - break; - case 11: - num = (_waitingForQuestFlags ? 1542849472 : 1542849489); - break; - case 14: - num = 1542849479; - break; - case 12: - num = ((base.Task.Quest == null) ? 1542849473 : 1542849481); - break; - case 7: - return ETaskResult.StillRunning; - case 6: - num = ((!QuestWorkUtils.MatchesQuestWork(base.Task.CompletionQuestVariablesFlags, questProgressInfo)) ? 1542849476 : 1542849490); - break; - case 17: - _waitingForQuestFlags = true; - _questFlagWaitStarted = _200C_206A_206B_202E_202B_200E_202A_206A_200F_202B_202D_200E_200F_206B_206E_200B_206E_200F_200C_206C_206A_200D_200C_202A_206A_206D_200E_200B_206F_202B_202D_202B_206C_206F_200D_206B_206F_206F_206B_202A_202E(); - num = 1542849472; - break; - case 5: - _usedAction = (_200C_202B_200E_202A_206A_202C_200D_206C_202E_202D_206B_200E_200C_202C_200F_202E_206B_200B_200E_206F_200F_202A_206E_206F_200F_200B_202D_206F_206C_206E_206E_206F_206E_206C_206F_206E_206A_202D_200C_200C_202E(gameObject) ? gameFunctions.UseAction(gameObject, base.Task.Action) : gameFunctions.UseAction(base.Task.Action)); - num = 1542849488; - break; - case 1: - return ETaskResult.TaskComplete; - case 4: - return ETaskResult.StillRunning; - case 2: - num = ((!base.Task.DataId.HasValue) ? 1542849487 : 1542849480); - break; - case 15: - _usedAction = gameFunctions.UseAction(base.Task.Action); - num = 1542849488; - break; - case 9: - num = ((base.Task.CompletionQuestVariablesFlags == null) ? 1542849473 : 1542849485); - break; - case 3: - return ETaskResult.StillRunning; - case 13: - num = ((!QuestWorkUtils.HasCompletionFlags(base.Task.CompletionQuestVariablesFlags)) ? 1542849473 : 1542849483); - break; - case 8: - gameObject = gameFunctions.FindObjectByDataId(base.Task.DataId.Value); - num = ((gameObject != null) ? 1542849477 : 1542849475); - break; } + return ETaskResult.StillRunning; } + return ETaskResult.TaskComplete; } public override bool ShouldInterruptOnDamage() { return true; } - - static long _200C_206A_206B_202E_202B_200E_202A_206A_200F_202B_202D_200E_200F_206B_206E_200B_206E_200F_200C_206C_206A_200D_200C_202A_206A_206D_200E_200B_206F_202B_202D_202B_206C_206F_200D_206B_206F_206F_206B_202A_202E() - { - return Environment.TickCount64; - } - - static void _202D_202C_202C_206B_202A_202E_200F_200F_206A_206B_206E_200E_200F_202D_202E_200F_202A_200C_202C_202D_206B_202C_206E_206D_202A_206E_206A_206D_206C_206A_200F_200C_202D_206F_202C_200B_206C_200B_202A_200D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _200C_202B_200E_202A_206A_202C_200D_206C_202E_202D_206B_200E_200C_202C_200F_202E_206B_200B_200E_206F_200F_202A_206E_206F_200F_200B_202D_206F_206C_206E_206E_206F_206E_206C_206F_206E_206A_202D_200C_200C_202E(IGameObject P_0) - { - return P_0.IsTargetable; - } } internal sealed record UseMudraOnObject(uint DataId, EAction Action) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206A_206F_202E_206E_206E_202E_206E_200B_206E_202D_200C_206C_200D_206C_206B_206B_202D_206E_200F_206B_206A_200F_202C_206B_206A_202B_206D_206B_206B_200B_206B_206D_206A_202C_200B_206C_200D_206F_200F_202E_202E(typeof(UseMudraOnObject).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(7, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-604906008)); - defaultInterpolatedStringHandler.AppendFormatted(Action); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206B_202C_206F_202D_202B_200B_206F_202E_202C_206B_200F_206B_200C_206C_206B_200E_200C_202E_202D_202E_202C_206C_202E_206B_200D_206F_206B_202B_200B_202A_202E_202D_206B_206F_200E_206D_206C_202B_206D_200F_202E(); - _200C_200C_206F_200D_206E_200B_200E_202A_200B_202D_200F_206E_206C_206E_206E_202E_206F_202D_200E_202A_206D_200D_206B_206E_206A_206F_200B_200F_200B_200F_206C_206A_202B_202A_206B_202B_200B_200F_200D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-813337770)); - _200C_200C_206F_200D_206E_200B_200E_202A_200B_202D_200F_206E_206C_206E_206E_202E_206F_202D_200E_202A_206D_200D_206B_206E_206A_206F_200B_200F_200B_200F_206C_206A_202B_202A_206B_202B_200B_200F_200D_202E(builder, DataId.ToString()); - _200C_200C_206F_200D_206E_200B_200E_202A_200B_202D_200F_206E_206C_206E_206E_202E_206F_202D_200E_202A_206D_200D_206B_206E_206A_206F_200B_200F_200B_200F_206C_206A_202B_202A_206B_202B_200B_200F_200D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(353413506)); - _200C_200C_206F_200D_206E_200B_200E_202A_200B_202D_200F_206E_206C_206E_206E_202E_206F_202D_200E_202A_206D_200D_206B_206E_206A_206F_200B_200F_200B_200F_206C_206A_202B_202A_206B_202B_200B_200F_200D_202E(builder, Action.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(UseMudraOnObject? other) - { - int num = (((object)this == other) ? 1487709451 : 1487709452); - while (true) - { - int num2 = num; - int num3 = 1487709453; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return EqualityComparer<EAction>.Default.Equals(Action, other.Action); - case 1: - num = (((object)other == null) ? 1487709455 : 1487709449); - break; - case 4: - num = ((!_200D_206A_202B_206F_202C_206A_206E_206E_206E_200E_202D_202A_202E_200C_202A_200F_202D_200C_202B_200E_206F_206E_206F_200B_202A_202D_200E_200C_202C_206D_200E_206C_202A_202D_206E_206F_206C_202E_200D_202D_202E(EqualityContract, other.EqualityContract)) ? 1487709455 : 1487709448); - break; - case 0: - num = 1487709452; - break; - case 5: - num = ((!EqualityComparer<uint>.Default.Equals(DataId, other.DataId)) ? 1487709455 : 1487709454); - break; - case 2: - return false; - case 6: - return true; - } - } - } - - bool IEquatable<UseMudraOnObject>.Equals(UseMudraOnObject? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206A_206F_202E_206E_206E_202E_206E_200B_206E_202D_200C_206C_200D_206C_206B_206B_202D_206E_200F_206B_206A_200F_202C_206B_206A_202B_206D_206B_206B_200B_206B_206D_206A_202C_200B_206C_200D_206F_200F_202E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206B_202C_206F_202D_202B_200B_206F_202E_202C_206B_200F_206B_200C_206C_206B_200E_200C_202E_202D_202E_202C_206C_202E_206B_200D_206F_206B_202B_200B_202A_202E_202D_206B_206F_200E_206D_206C_202B_206D_200F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200C_200C_206F_200D_206E_200B_200E_202A_200B_202D_200F_206E_206C_206E_206E_202E_206F_202D_200E_202A_206D_200D_206B_206E_206A_206F_200B_200F_200B_200F_206C_206A_202B_202A_206B_202B_200B_200F_200D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _200D_206A_202B_206F_202C_206A_206E_206E_206E_200E_202D_202A_202E_200C_202A_200F_202D_200C_202B_200E_206F_206E_206F_200B_202A_202D_200E_200C_202C_206D_200E_206C_202A_202D_206E_206F_206C_202E_200D_202D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"Mudra({Action})"; } } @@ -594,187 +219,58 @@ internal static class Action return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe override ETaskResult Update() { - int num = ((_202E_200B_202A_200B_200D_202D_200B_200D_202D_202C_200C_202D_206B_200F_202E_202C_202B_200D_206D_200E_200D_202C_206C_202D_206C_206D_206A_206A_202C_206C_202B_200F_202A_200E_202B_206A_202D_202C_202B_200E_202E() >= _continueAt) ? 1138571284 : 1138571280); - IGameObject gameObject = default(IGameObject); - EAction adjustedActionId = default(EAction); - Dictionary<EAction, EAction> value = default(Dictionary<EAction, EAction>); - EAction value2 = default(EAction); - while (true) + if (Environment.TickCount64 < _continueAt) { - int num2 = num; - int num3 = 1138571289; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return ETaskResult.StillRunning; + } + EAction adjustedActionId = (EAction)ActionManager.Instance()->GetAdjustedActionId(2260u); + if (adjustedActionId == EAction.RabbitMedium) + { + _continueAt = Environment.TickCount64 + 1000; + return ETaskResult.StillRunning; + } + IGameObject gameObject = gameFunctions.FindObjectByDataId(base.Task.DataId); + if (gameObject == null || !gameObject.IsTargetable) + { + return ETaskResult.StillRunning; + } + if (adjustedActionId == base.Task.Action) + { + _continueAt = Environment.TickCount64 + 250; + if (!gameFunctions.UseAction(gameObject, base.Task.Action)) { - case 1: - gameObject = gameFunctions.FindObjectByDataId(base.Task.DataId); - num = ((gameObject == null) ? 1138571290 : 1138571285); - break; - case 7: - num = ((adjustedActionId != base.Task.Action) ? 1138571287 : 1138571293); - break; - case 11: - _continueAt = _202E_200B_202A_200B_200D_202D_200B_200D_202D_202C_200C_202D_206B_200F_202E_202C_202B_200D_206D_200E_200D_202C_206C_202D_206C_206D_206A_206A_202C_206C_202B_200F_202A_200E_202B_206A_202D_202C_202B_200E_202E() + 250; - return ETaskResult.StillRunning; - case 9: - return ETaskResult.StillRunning; - case 10: - num = ((!value.TryGetValue(adjustedActionId, out value2)) ? 1138571282 : 1138571292); - break; - case 6: - _206D_206F_202E_206B_200D_200D_200E_202B_206B_202E_202C_200E_200B_200C_202A_202D_206E_200F_202B_206C_202E_200D_206D_200C_206C_200C_206A_200C_202B_206A_200E_206D_206B_206F_202D_206B_200D_200D_206A_206E_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(412191854), new object[1] { base.Task.Action }); - return ETaskResult.TaskComplete; - case 13: - adjustedActionId = (EAction)ActionManager.Instance()->GetAdjustedActionId(2260u); - num = ((adjustedActionId != EAction.RabbitMedium) ? 1138571288 : 1138571289); - break; - case 8: - return ETaskResult.StillRunning; - case 5: - _continueAt = _202E_200B_202A_200B_200D_202D_200B_200D_202D_202C_200C_202D_206B_200F_202E_202C_202B_200D_206D_200E_200D_202C_206C_202D_206C_206D_206A_206A_202C_206C_202B_200F_202A_200E_202B_206A_202D_202C_202B_200E_202E() + 250; - gameFunctions.UseAction(value2); - return ETaskResult.StillRunning; - case 14: - num = ((!Combos.TryGetValue(base.Task.Action, out value)) ? 1138571295 : 1138571283); - break; - case 4: - _continueAt = _202E_200B_202A_200B_200D_202D_200B_200D_202D_202C_200C_202D_206B_200F_202E_202C_202B_200D_206D_200E_200D_202C_206C_202D_206C_206D_206A_206A_202C_206C_202B_200F_202A_200E_202B_206A_202D_202C_202B_200E_202E() + 250; - num = (gameFunctions.UseAction(gameObject, base.Task.Action) ? 1138571291 : 1138571281); - break; - case 12: - num = (_206A_200C_206A_202D_200C_200D_202C_206C_202A_200F_206E_200F_200B_200E_200E_200F_206C_202D_200B_200B_206C_206D_202A_206B_202C_200F_202A_200D_200D_206D_200F_200F_206D_202A_206E_200D_200D_206B_206C_206E_202E(gameObject) ? 1138571294 : 1138571290); - break; - case 15: - num = 1138571280; - break; - case 3: - return ETaskResult.StillRunning; - case 2: - return ETaskResult.TaskComplete; - case 0: - _continueAt = _202E_200B_202A_200B_200D_202D_200B_200D_202D_202C_200C_202D_206B_200F_202E_202C_202B_200D_206D_200E_200D_202C_206C_202D_206C_206D_206A_206A_202C_206C_202B_200F_202A_200E_202B_206A_202D_202C_202B_200E_202E() + 1000; return ETaskResult.StillRunning; } + return ETaskResult.TaskComplete; } + if (Combos.TryGetValue(base.Task.Action, out Dictionary<EAction, EAction> value)) + { + if (value.TryGetValue(adjustedActionId, out var value2)) + { + _continueAt = Environment.TickCount64 + 250; + gameFunctions.UseAction(value2); + return ETaskResult.StillRunning; + } + _continueAt = Environment.TickCount64 + 250; + return ETaskResult.StillRunning; + } + logger.LogError("Unable to find relevant combo for {Action}", base.Task.Action); + return ETaskResult.TaskComplete; } public override bool ShouldInterruptOnDamage() { return false; } - - static long _202E_200B_202A_200B_200D_202D_200B_200D_202D_202C_200C_202D_206B_200F_202E_202C_202B_200D_206D_200E_200D_202C_206C_202D_206C_206D_206A_206A_202C_206C_202B_200F_202A_200E_202B_206A_202D_202C_202B_200E_202E() - { - return Environment.TickCount64; - } - - static bool _206A_200C_206A_202D_200C_200D_202C_206C_202A_200F_206E_200F_200B_200E_200E_200F_206C_202D_200B_200B_206C_206D_202A_206B_202C_200F_202A_200D_200D_206D_200F_200F_206D_202A_206E_200D_200D_206B_206C_206E_202E(IGameObject P_0) - { - return P_0.IsTargetable; - } - - static void _206D_206F_202E_206B_200D_200D_200E_202B_206B_202E_202C_200E_200B_200C_202A_202D_206E_200F_202B_206C_202E_200D_206D_200C_206C_200C_206A_200C_202B_206A_200E_206D_206B_206F_202D_206B_200D_200D_206A_206E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogError(P_1, P_2); - } } internal sealed record TriggerStatusIfMissing(EStatus Status, EAction Action) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200D_206C_202B_202A_202B_200F_202E_206D_206C_200E_206D_206B_206A_200C_202D_200C_200D_202A_206B_200F_200B_200C_206F_200D_206E_200F_206A_206F_202B_200D_200E_200B_202D_200C_206A_202A_206A_200F_206C_206F_202E(typeof(TriggerStatusIfMissing).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(15, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1306109477)); - defaultInterpolatedStringHandler.AppendFormatted(Status); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200F_206A_202D_206B_200B_200C_202B_206C_200C_206A_200B_202D_200D_200B_206B_200D_200E_202B_202B_200E_206B_206B_202A_206D_206F_206A_200F_202C_200D_202C_206A_202D_206F_200C_206B_200B_206C_200B_206C_202E(); - _200D_202D_206F_202E_206A_200C_202A_206E_200D_206C_200C_200C_202C_200B_206D_200C_202B_200D_200D_200C_202C_200B_202A_206D_200C_206E_202E_206F_206C_206F_200C_202C_202B_200B_206D_202B_206F_200C_200D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1195039164)); - _200D_202D_206F_202E_206A_200C_202A_206E_200D_206C_200C_200C_202C_200B_206D_200C_202B_200D_200D_200C_202C_200B_202A_206D_200C_206E_202E_206F_206C_206F_200C_202C_202B_200B_206D_202B_206F_200C_200D_202E(builder, Status.ToString()); - _200D_202D_206F_202E_206A_200C_202A_206E_200D_206C_200C_200C_202C_200B_206D_200C_202B_200D_200D_200C_202C_200B_202A_206D_200C_206E_202E_206F_206C_206F_200C_202C_202B_200B_206D_202B_206F_200C_200D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1765108266)); - _200D_202D_206F_202E_206A_200C_202A_206E_200D_206C_200C_200C_202C_200B_206D_200C_202B_200D_200D_200C_202C_200B_202A_206D_200C_206E_202E_206F_206C_206F_200C_202C_202B_200B_206D_202B_206F_200C_200D_202E(builder, Action.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(TriggerStatusIfMissing? other) - { - int num = (((object)this == other) ? (-1239545030) : (-1239545028)); - while (true) - { - int num2 = num; - int num3 = -1239545026; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return EqualityComparer<EAction>.Default.Equals(Action, other.Action); - case 2: - num = (((object)other == null) ? (-1239545029) : (-1239545025)); - break; - case 1: - num = ((!_206F_206A_200C_206E_202A_200C_200E_202A_200C_200F_206D_206C_206B_202A_200C_206A_206A_200E_206B_202E_202D_200F_206E_206D_206E_200F_202A_202B_206C_206A_200E_200C_206F_200C_202D_200B_206B_202A_206B_206D_202E(EqualityContract, other.EqualityContract)) ? (-1239545029) : (-1239545032)); - break; - case 0: - num = -1239545028; - break; - case 5: - return false; - case 4: - return true; - case 6: - num = ((!EqualityComparer<EStatus>.Default.Equals(Status, other.Status)) ? (-1239545029) : (-1239545027)); - break; - } - } - } - - bool IEquatable<TriggerStatusIfMissing>.Equals(TriggerStatusIfMissing? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200D_206C_202B_202A_202B_200F_202E_206D_206C_200E_206D_206B_206A_200C_202D_200C_200D_202A_206B_200F_200B_200C_206F_200D_206E_200F_206A_206F_202B_200D_200E_200B_202D_200C_206A_202A_206A_200F_206C_206F_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _200F_206A_202D_206B_200B_200C_202B_206C_200C_206A_200B_202D_200D_200B_206B_200D_200E_202B_202B_200E_206B_206B_202A_206D_206F_206A_200F_202C_200D_202C_206A_202D_206F_200C_206B_200B_206C_200B_206C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200D_202D_206F_202E_206A_200C_202A_206E_200D_206C_200C_200C_202C_200B_206D_200C_202B_200D_200D_200C_202C_200B_202A_206D_200C_206E_202E_206F_206C_206F_200C_202C_202B_200B_206D_202B_206F_200C_200D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _206F_206A_200C_206E_202A_200C_200E_202A_200C_200F_206D_206C_206B_202A_200C_206A_206A_200E_206B_202E_202D_200F_206E_206D_206E_200F_202A_202B_206C_206A_200E_200C_206F_200C_202D_200B_206B_202A_206B_206D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"TriggerStatus({Status})"; } } @@ -784,67 +280,32 @@ internal static class Action public override bool HasTimedOut(float timeoutSeconds) { - return _202B_206F_202D_200E_206E_200D_202D_202D_200C_200C_206F_202E_200F_206B_206B_200B_202A_200F_206F_200B_200E_200C_206C_200C_206F_206A_200D_200F_206B_200C_206A_200F_202A_200E_206D_202A_200E_202B_200B_202D_202E() - _startedAt > (long)(timeoutSeconds * 1000f); + return Environment.TickCount64 - _startedAt > (long)(timeoutSeconds * 1000f); } protected override bool Start() { - int num = ((!gameFunctions.HasStatus(base.Task.Status)) ? (-1632132812) : (-1632132809)); - while (true) + if (gameFunctions.HasStatus(base.Task.Status)) { - int num2 = num; - int num3 = -1632132811; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0056; - case 2: - return false; - case 1: - gameFunctions.UseAction(base.Task.Action); - _startedAt = _202B_206F_202D_200E_206E_200D_202D_202D_200C_200C_206F_202E_200F_206B_206B_200B_202A_200F_206F_200B_200E_200C_206C_200C_206F_206A_200D_200F_206B_200C_206A_200F_202A_200E_206D_202A_200E_202B_200B_202D_202E(); - return true; - } - continue; - IL_0056: - num = -1632132809; + return false; } + gameFunctions.UseAction(base.Task.Action); + _startedAt = Environment.TickCount64; + return true; } public override ETaskResult Update() { - int num = (gameFunctions.HasStatus(base.Task.Status) ? 81781723 : 81781720); - while (true) + if (!gameFunctions.HasStatus(base.Task.Status)) { - int num2 = num; - int num3 = 81781722; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0058; - case 2: - return ETaskResult.StillRunning; - case 1: - return ETaskResult.TaskComplete; - } - continue; - IL_0058: - num = 81781720; + return ETaskResult.StillRunning; } + return ETaskResult.TaskComplete; } public override bool ShouldInterruptOnDamage() { return false; } - - static long _202B_206F_202D_200E_206E_200D_202D_202D_200C_200C_206F_202E_200F_206B_206B_200B_202A_200F_206F_200B_200E_200C_206C_200C_206F_206A_200D_200F_206B_200C_206A_200F_202A_200E_206D_202A_200E_202B_200B_202D_202E() - { - return Environment.TickCount64; - } } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/AetherCurrent.cs b/Questionable/Questionable.Controller.Steps.Interactions/AetherCurrent.cs index 28adef5..b549ae1 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/AetherCurrent.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/AetherCurrent.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Objects.Enums; using Dalamud.Plugin.Services; using Microsoft.Extensions.Logging; @@ -16,272 +13,75 @@ internal static class AetherCurrent { internal sealed class Factory(AetherCurrentData aetherCurrentData, IChatGui chatGui) : SimpleTaskFactory() { - [MethodImpl(MethodImplOptions.NoInlining)] public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_206B_200B_202B_200C_206F_202E_200C_206D_206F_206F_202A_206D_200C_200C_206C_200D_202B_202E_200F_202C_202A_206B_202E_206E_206B_202B_202D_206C_200B_200B_200B_206C_202A_200F_202E_202D_202C_200F_200D_202B_202E(step) == EInteractionType.AttuneAetherCurrent) ? 1616096496 : 1616096497); - while (true) + if (step.InteractionType != EInteractionType.AttuneAetherCurrent) { - int num2 = num; - int num3 = 1616096499; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return new Attune(_202E_206C_200B_202C_200D_200C_206A_200B_206F_206D_206F_202E_202D_200F_200D_200B_202A_200D_200C_200D_202B_202D_206F_202B_202E_200F_206D_202B_202E_202A_200E_202D_200E_200E_206D_202B_206B_206C_200B_202D_202E(step).Value, _200B_200C_202D_206B_200F_202B_202A_200B_202B_202E_200D_206C_202A_206C_202A_202D_202D_200B_200D_202C_200C_206B_202A_206F_200B_206A_200C_206C_206A_206E_202E_202B_206F_202D_202E_200C_202C_206E_206B_206F_202E(step).Value); - case 2: - return null; - case 4: - num = 1616096497; - break; - case 1: - { - IChatGui chatGui = chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(86, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-494490534)); - defaultInterpolatedStringHandler.AppendFormatted(_200B_200C_202D_206B_200F_202B_202A_200B_202B_202E_200D_206C_202A_206C_202A_202D_202D_200B_200D_202C_200C_206B_202A_206F_200B_206A_200C_206C_206A_206E_202E_202B_206F_202D_202E_200C_202C_206E_206B_206F_202E(step)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(214778039)); - _202C_206F_206A_206F_202D_206B_200B_206E_206D_206E_202E_202B_200B_206E_200D_206A_206D_200B_206A_206D_200D_206E_206F_200E_206A_202B_206D_200C_202B_200E_206E_200D_202E_200C_202B_200B_200E_206E_200B_206D_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - return null; - } - case 3: - _200E_206F_206A_200C_202A_202A_202C_202D_206D_202C_202C_202B_202A_202D_206A_202D_202C_202C_206A_200D_206F_200E_206A_206C_200C_202A_200B_206D_200B_206D_200B_206A_202C_206F_202A_200E_206C_206C_206E_200E_202E((object)_202E_206C_200B_202C_200D_200C_206A_200B_206F_206D_206F_202E_202D_200F_200D_200B_202A_200D_200C_200D_202B_202D_206F_202B_202E_200F_206D_202B_202E_202A_200E_202D_200E_200E_206D_202B_206B_206C_200B_202D_202E(step), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1549410118)); - _200E_206F_206A_200C_202A_202A_202C_202D_206D_202C_202C_202B_202A_202D_206A_202D_202C_202C_206A_200D_206F_200E_206A_206C_200C_202A_200B_206D_200B_206D_200B_206A_202C_206F_202A_200E_206C_206C_206E_200E_202E((object)_200B_200C_202D_206B_200F_202B_202A_200B_202B_202E_200D_206C_202A_206C_202A_202D_202D_200B_200D_202C_200C_206B_202A_206F_200B_206A_200C_206C_206A_206E_202E_202B_206F_202D_202E_200C_202C_206E_206B_206F_202E(step), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-672605828)); - num = (aetherCurrentData.IsValidAetherCurrent(_200C_202A_206F_202E_206B_200B_200B_200B_202C_206F_202C_206F_206A_200D_202C_206F_200D_200F_202E_200B_206F_202B_206D_200D_200C_206E_202B_200B_202C_202E_200F_202D_200F_202C_206C_200E_200D_202B_202C_202A_202E(step), _200B_200C_202D_206B_200F_202B_202A_200B_202B_202E_200D_206C_202A_206C_202A_202D_202D_200B_200D_202C_200C_206B_202A_206F_200B_206A_200C_206C_206A_206E_202E_202B_206F_202D_202E_200C_202C_206E_206B_206F_202E(step).Value) ? 1616096499 : 1616096498); - break; - } + return null; } - } - - static EInteractionType _206B_200B_202B_200C_206F_202E_200C_206D_206F_206F_202A_206D_200C_200C_206C_200D_202B_202E_200F_202C_202A_206B_202E_206E_206B_202B_202D_206C_200B_200B_200B_206C_202A_200F_202E_202D_202C_200F_200D_202B_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static uint? _202E_206C_200B_202C_200D_200C_206A_200B_206F_206D_206F_202E_202D_200F_200D_200B_202A_200D_200C_200D_202B_202D_206F_202B_202E_200F_206D_202B_202E_202A_200E_202D_200E_200E_206D_202B_206B_206C_200B_202D_202E(QuestStep P_0) - { - return P_0.DataId; - } - - static void _200E_206F_206A_200C_202A_202A_202C_202D_206D_202C_202C_202B_202A_202D_206A_202D_202C_202C_206A_200D_206F_200E_206A_206C_200C_202A_200B_206D_200B_206D_200B_206A_202C_206F_202A_200E_206C_206C_206E_200E_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static uint? _200B_200C_202D_206B_200F_202B_202A_200B_202B_202E_200D_206C_202A_206C_202A_202D_202D_200B_200D_202C_200C_206B_202A_206F_200B_206A_200C_206C_206A_206E_202E_202B_206F_202D_202E_200C_202C_206E_206B_206F_202E(QuestStep P_0) - { - return P_0.AetherCurrentId; - } - - static ushort _200C_202A_206F_202E_206B_200B_200B_200B_202C_206F_202C_206F_206A_200D_202C_206F_200D_200F_202E_200B_206F_202B_206D_200D_200C_206E_202B_200B_202C_202E_200F_202D_200F_202C_206C_200E_200D_202B_202C_202A_202E(QuestStep P_0) - { - return P_0.TerritoryId; - } - - static void _202C_206F_206A_206F_202D_206B_200B_206E_206D_206E_202E_202B_200B_206E_200D_206A_206D_200B_206A_206D_200D_206E_206F_200E_206A_202B_206D_200C_202B_200E_206E_200D_202E_200C_202B_200B_200E_206E_200B_206D_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); + ArgumentNullException.ThrowIfNull(step.DataId, "step.DataId"); + ArgumentNullException.ThrowIfNull(step.AetherCurrentId, "step.AetherCurrentId"); + if (!aetherCurrentData.IsValidAetherCurrent(step.TerritoryId, step.AetherCurrentId.Value)) + { + chatGui.PrintError($"Aether current with id {step.AetherCurrentId} is referencing an invalid aether current, will skip attunement", "Questionable", 576); + return null; + } + return new Attune(step.DataId.Value, step.AetherCurrentId.Value); } } internal sealed record Attune(uint DataId, uint AetherCurrentId) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206E_200D_202C_202A_206C_200E_206F_200D_202B_206C_206C_202D_202C_200B_206A_200E_206E_206A_206C_202E_202A_200C_206E_202C_202A_206A_206D_202E_202B_202C_202A_202E_200E_200E_206F_202C_202E_206F_202D_200D_202E(typeof(Attune).TypeHandle); - } - } - public bool ShouldRedoOnInterrupt() { return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(21, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(361982327)); - defaultInterpolatedStringHandler.AppendFormatted(AetherCurrentId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206E_202E_200E_200F_206D_206E_206D_202C_202A_202A_200D_202C_200D_206B_202A_202D_200D_202A_200C_202C_202B_200D_200D_202E_200E_206A_202E_202A_202D_202A_200C_202E_206B_202C_200D_202E_200D_206B_200D_200E_202E(); - _202D_200C_206E_202D_202E_202E_200F_202D_200D_200C_200F_200C_200E_206E_206C_202E_202C_202A_202B_206F_202D_200F_200C_206C_202E_202C_200C_200F_206C_200D_206D_202C_206B_202D_206C_200C_200E_206F_206D_202B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-813337770)); - _202D_200C_206E_202D_202E_202E_200F_202D_200D_200C_200F_200C_200E_206E_206C_202E_202C_202A_202B_206F_202D_200F_200C_206C_202E_202C_200C_200F_206C_200D_206D_202C_206B_202D_206C_200C_200E_206F_206D_202B_202E(builder, DataId.ToString()); - _202D_200C_206E_202D_202E_202E_200F_202D_200D_200C_200F_200C_200E_206E_206C_202E_202C_202A_202B_206F_202D_200F_200C_206C_202E_202C_200C_200F_206C_200D_206D_202C_206B_202D_206C_200C_200E_206F_206D_202B_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1099263671)); - _202D_200C_206E_202D_202E_202E_200F_202D_200D_200C_200F_200C_200E_206E_206C_202E_202C_202A_202B_206F_202D_200F_200C_206C_202E_202C_200C_200F_206C_200D_206D_202C_206B_202D_206C_200C_200E_206F_206D_202B_202E(builder, AetherCurrentId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Attune? other) - { - int num = (((object)this == other) ? (-814902453) : (-814902454)); - while (true) - { - int num2 = num; - int num3 = -814902455; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return true; - case 3: - num = (((object)other == null) ? (-814902456) : (-814902455)); - break; - case 1: - return false; - case 4: - return EqualityComparer<uint>.Default.Equals(AetherCurrentId, other.AetherCurrentId); - case 6: - num = -814902454; - break; - case 5: - num = ((!EqualityComparer<uint>.Default.Equals(DataId, other.DataId)) ? (-814902456) : (-814902451)); - break; - case 0: - num = ((!_206B_200B_200B_206C_206B_200F_200F_206E_200D_206D_200C_206F_206D_206A_206F_206B_202E_206C_200B_202E_206E_202B_206C_206F_206E_200E_206E_202E_202B_200E_202C_206A_202D_200B_206F_200B_202C_200C_202E_206C_202E(EqualityContract, other.EqualityContract)) ? (-814902456) : (-814902452)); - break; - } - } - } - - bool IEquatable<Attune>.Equals(Attune? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206E_200D_202C_202A_206C_200E_206F_200D_202B_206C_206C_202D_202C_200B_206A_200E_206E_206A_206C_202E_202A_200C_206E_202C_202A_206A_206D_202E_202B_202C_202A_202E_200E_200E_206F_202C_202E_206F_202D_200D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206E_202E_200E_200F_206D_206E_206D_202C_202A_202A_200D_202C_200D_206B_202A_202D_200D_202A_200C_202C_202B_200D_200D_202E_200E_206A_202E_202A_202D_202A_200C_202E_206B_202C_200D_202E_200D_206B_200D_200E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202D_200C_206E_202D_202E_202E_200F_202D_200D_200C_200F_200C_200E_206E_206C_202E_202C_202A_202B_206F_202D_200F_200C_206C_202E_202C_200C_200F_206C_200D_206D_202C_206B_202D_206C_200C_200E_206F_206D_202B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _206B_200B_200B_206C_206B_200F_200F_206E_200D_206D_200C_206F_206D_206A_206F_206B_202E_206C_200B_202E_206E_202B_206C_206F_206E_200E_206E_202E_202B_200E_202C_206A_202D_200B_206F_200B_202C_200C_202E_206C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"AttuneAetherCurrent({AetherCurrentId})"; } } internal sealed class DoAttune(GameFunctions gameFunctions, ILogger<DoAttune> logger) : TaskExecutor<Attune>() { - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - int num = (GameFunctions.IsAetherCurrentUnlocked(base.Task.AetherCurrentId) ? 1079740231 : 1079740228); - while (true) + if (!GameFunctions.IsAetherCurrentUnlocked(base.Task.AetherCurrentId)) { - int num2 = num; - int num3 = 1079740230; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _200E_200C_202B_200D_206C_206B_206B_206F_200E_206D_200E_200E_202C_200E_200C_200D_202D_206C_206D_206E_206A_206A_200F_200E_202C_206E_206E_202C_206F_200C_200B_206E_206F_202C_200E_200E_200F_202A_206B_202D_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(693559237), new object[2] - { - base.Task.AetherCurrentId, - base.Task.DataId - }); - return false; - case 2: - _206B_202B_202B_202B_200D_206B_202E_202A_206B_202A_202B_202B_202A_200D_202C_200F_202C_200F_200B_200F_206E_206C_206E_200B_200B_202A_206F_206B_200E_200F_200F_200E_206A_200E_202C_206A_200D_202A_206A_200D_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2064140489), new object[2] - { - base.Task.AetherCurrentId, - base.Task.DataId - }); - base.ProgressContext = InteractionProgressContext.FromActionUseOrDefault(() => gameFunctions.InteractWith(base.Task.DataId, ObjectKind.EventObj)); - return true; - case 0: - goto IL_00ef; - } - continue; - IL_00ef: - num = 1079740228; + logger.LogInformation("Attuning to aether current {AetherCurrentId} / {DataId}", base.Task.AetherCurrentId, base.Task.DataId); + base.ProgressContext = InteractionProgressContext.FromActionUseOrDefault(() => gameFunctions.InteractWith(base.Task.DataId, ObjectKind.EventObj)); + return true; } + logger.LogDebug("Already attuned to aether current {AetherCurrentId} / {DataId}", base.Task.AetherCurrentId, base.Task.DataId); + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - int num = ((!GameFunctions.IsAetherCurrentUnlocked(base.Task.AetherCurrentId)) ? (-272165629) : (-272165626)); - while (true) + if (GameFunctions.IsAetherCurrentUnlocked(base.Task.AetherCurrentId)) { - int num2 = num; - int num3 = -272165632; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + ResetProgressTimer(); + return ETaskResult.TaskComplete; + } + if (base.ProgressContext != null) + { + if (base.ProgressContext.WasInterrupted()) { - case 4: - ResetProgressTimer(); - num = -272165630; - break; - case 3: - num = ((base.ProgressContext == null) ? (-272165630) : (-272165632)); - break; - case 6: - ResetProgressTimer(); - return ETaskResult.TaskComplete; - case 7: - num = -272165626; - break; - case 1: - _200E_200C_202B_200D_206C_206B_206B_206F_200E_206D_200E_200E_202C_200E_200C_200D_202D_206C_206D_206E_206A_206A_200F_200E_202C_206E_206E_202C_206F_200C_200B_206E_206F_202C_200E_200E_200F_202A_206B_202D_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-119711603), new object[1] { base.Task.AetherCurrentId }); + logger.LogDebug("Aether current {AetherCurrentId} attunement was interrupted", base.Task.AetherCurrentId); return ETaskResult.StillRunning; - case 2: - return ETaskResult.StillRunning; - case 0: - num = ((!base.ProgressContext.WasInterrupted()) ? (-272165627) : (-272165631)); - break; - case 5: - num = ((!base.ProgressContext.WasSuccessful()) ? (-272165630) : (-272165628)); - break; + } + if (base.ProgressContext.WasSuccessful()) + { + ResetProgressTimer(); } } + return ETaskResult.StillRunning; } public override bool ShouldInterruptOnDamage() { return true; } - - static void _206B_202B_202B_202B_200D_206B_202E_202A_206B_202A_202B_202B_202A_200D_202C_200F_202C_200F_200B_200F_206E_206C_206E_200B_200B_202A_206F_206B_200E_200F_200F_200E_206A_200E_202C_206A_200D_202A_206A_200D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static void _200E_200C_202B_200D_206C_206B_206B_206F_200E_206D_200E_200E_202C_200E_200C_200D_202D_206C_206D_206E_206A_206A_200F_200E_202C_206E_206E_202C_206F_200C_200B_206E_206F_202C_200E_200E_200F_202A_206B_202D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/AethernetShard.cs b/Questionable/Questionable.Controller.Steps.Interactions/AethernetShard.cs index 283f688..0f993b9 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/AethernetShard.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/AethernetShard.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Microsoft.Extensions.Logging; using Questionable.Functions; using Questionable.Model; @@ -14,156 +11,34 @@ internal static class AethernetShard { internal sealed class Factory : SimpleTaskFactory { - [MethodImpl(MethodImplOptions.NoInlining)] public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_200F_206C_200B_206A_206A_206A_206D_202C_200D_206A_202D_206C_200E_202E_200D_200D_200F_200F_200B_200C_200D_200E_200C_206B_202D_200D_206B_200F_206F_206A_206D_206A_202A_200B_200E_200C_202B_206B_206A_206B_202E(step) == EInteractionType.AttuneAethernetShard) ? (-1186743855) : (-1186743856)); - while (true) + if (step.InteractionType != EInteractionType.AttuneAethernetShard) { - int num2 = num; - int num3 = -1186743855; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0049; - case 0: - _202E_200E_202A_202A_202D_206E_202A_206E_200B_202A_206A_206A_206C_206C_202A_206E_202A_200E_206F_206F_206F_200C_202A_202C_206E_206B_206D_206B_202A_206E_202B_200F_206D_202D_200C_200C_206E_206A_200D_206C_202E((object)_206B_202B_202C_200E_206F_202A_206F_206E_200F_206A_200F_206E_200B_200C_206B_200D_206D_202E_200E_206A_200E_200D_206B_200B_206D_206E_202D_206B_202E_206F_202D_200E_202C_200D_206C_200B_200B_200B_200D_200D_202E(step), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-520107683)); - return new Attune(_206B_202B_202C_200E_206F_202A_206F_206E_200F_206A_200F_206E_200B_200C_206B_200D_206D_202E_200E_206A_200E_200D_206B_200B_206D_206E_202D_206B_202E_206F_202D_200E_202C_200D_206C_200B_200B_200B_200D_200D_202E(step).Value); - case 1: - return null; - } - continue; - IL_0049: - num = -1186743856; + return null; } - } - - static EInteractionType _200F_206C_200B_206A_206A_206A_206D_202C_200D_206A_202D_206C_200E_202E_200D_200D_200F_200F_200B_200C_200D_200E_200C_206B_202D_200D_206B_200F_206F_206A_206D_206A_202A_200B_200E_200C_202B_206B_206A_206B_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static EAetheryteLocation? _206B_202B_202C_200E_206F_202A_206F_206E_200F_206A_200F_206E_200B_200C_206B_200D_206D_202E_200E_206A_200E_200D_206B_200B_206D_206E_202D_206B_202E_206F_202D_200E_202C_200D_206C_200B_200B_200B_200D_200D_202E(QuestStep P_0) - { - return P_0.AethernetShard; - } - - static void _202E_200E_202A_202A_202D_206E_202A_206E_200B_202A_206A_206A_206C_206C_202A_206E_202A_200E_206F_206F_206F_200C_202A_202C_206E_206B_206D_206B_202A_206E_202B_200F_206D_202D_200C_200C_206E_206A_200D_206C_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); + ArgumentNullException.ThrowIfNull(step.AethernetShard, "step.AethernetShard"); + return new Attune(step.AethernetShard.Value); } } internal sealed record Attune(EAetheryteLocation AetheryteLocation) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206D_206A_206D_200E_206E_202B_202A_202B_206E_206D_200F_202C_200F_202C_200E_206E_202E_206E_206D_202B_200D_202B_206D_206E_202D_202D_200C_200C_202E_206B_200F_206A_200F_206D_202C_206B_202C_206C_200C_202E(typeof(Attune).TypeHandle); - } - } - public bool ShouldRedoOnInterrupt() { return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(22, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2083697024)); - defaultInterpolatedStringHandler.AppendFormatted(AetheryteLocation); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206A_202E_200E_206F_200C_202E_206E_206F_206B_200B_206F_206B_202C_200E_206A_202A_206E_200C_200F_200B_200B_202B_202D_200F_202B_206A_206B_202D_202E_206E_206A_202C_200F_200C_202A_206C_206D_206A_202A_200E_202E(); - _202A_206F_202A_202B_206D_202A_202A_200D_200F_200B_202C_206F_202D_206E_206F_202E_206D_200B_202B_206C_200F_206B_200D_200D_202E_206D_200E_202A_206F_206E_202E_206B_200D_200C_202B_206A_206E_206C_206B_200C_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1285909237)); - _202A_206F_202A_202B_206D_202A_202A_200D_200F_200B_202C_206F_202D_206E_206F_202E_206D_200B_202B_206C_200F_206B_200D_200D_202E_206D_200E_202A_206F_206E_202E_206B_200D_200C_202B_206A_206E_206C_206B_200C_202E(builder, AetheryteLocation.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Attune? other) - { - int num = (((object)this == other) ? 513184139 : 513184143); - while (true) - { - int num2 = num; - int num3 = 513184142; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 513184143; - break; - case 3: - num = ((!_202D_206E_202C_200D_206A_202B_202E_206C_200E_202E_202A_206E_206B_206B_206B_200F_206F_202D_202A_202A_202B_202B_206F_202D_206D_206A_200C_202B_206D_200E_202C_206D_200C_202A_206F_206C_206C_200C_200F_206E_202E(EqualityContract, other.EqualityContract)) ? 513184140 : 513184138); - break; - case 5: - return true; - case 1: - num = (((object)other == null) ? 513184140 : 513184141); - break; - case 4: - return EqualityComparer<EAetheryteLocation>.Default.Equals(AetheryteLocation, other.AetheryteLocation); - case 2: - return false; - } - } - } - - bool IEquatable<Attune>.Equals(Attune? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206D_206A_206D_200E_206E_202B_202A_202B_206E_206D_200F_202C_200F_202C_200E_206E_202E_206E_206D_202B_200D_202B_206D_206E_202D_202D_200C_200C_202E_206B_200F_206A_200F_206D_202C_206B_202C_206C_200C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206A_202E_200E_206F_200C_202E_206E_206F_206B_200B_206F_206B_202C_200E_206A_202A_206E_200C_200F_200B_200B_202B_202D_200F_202B_206A_206B_202D_202E_206E_206A_202C_200F_200C_202A_206C_206D_206A_202A_200E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202A_206F_202A_202B_206D_202A_202A_200D_200F_200B_202C_206F_202D_206E_206F_202E_206D_200B_202B_206C_200F_206B_200D_200D_202E_206D_200E_202A_206F_206E_202E_206B_200D_200C_202B_206A_206E_206C_206B_200C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _202D_206E_202C_200D_206A_202B_202E_206C_200E_202E_202A_206E_206B_206B_206B_200F_206F_202D_202A_202A_202B_202B_206F_202D_206D_206A_200C_202B_206D_200E_202C_206D_200C_202A_206F_206C_206C_200C_200F_206E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"AttuneAethernetShard({AetheryteLocation})"; } } internal sealed class DoAttune : Aetheryte.DoAttuneBase<Attune> { - [MethodImpl(MethodImplOptions.NoInlining)] public DoAttune(AetheryteFunctions aetheryteFunctions, GameFunctions gameFunctions, ILogger<DoAttune> logger) - : base(aetheryteFunctions, gameFunctions, (ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-577134927)) + : base(aetheryteFunctions, gameFunctions, (ILogger)logger, "aethernet shard") { } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/Aetheryte.cs b/Questionable/Questionable.Controller.Steps.Interactions/Aetheryte.cs index f424194..60b8123 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/Aetheryte.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/Aetheryte.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Objects.Enums; using Microsoft.Extensions.Logging; using Questionable.Functions; @@ -15,146 +12,27 @@ internal static class Aetheryte { internal sealed class Factory : SimpleTaskFactory { - [MethodImpl(MethodImplOptions.NoInlining)] public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_200F_206D_200C_206B_200C_206E_202B_202A_206E_200D_200E_206D_202E_202D_200C_202B_200B_206C_202B_206B_200B_206D_200F_206F_206B_200F_200B_200C_202D_202A_206C_202C_200C_202E_202E_200F_206C_202A_206A_202A_202E(step) == EInteractionType.AttuneAetheryte) ? (-343069115) : (-343069116)); - while (true) + if (step.InteractionType != EInteractionType.AttuneAetheryte) { - int num2 = num; - int num3 = -343069115; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0047; - case 1: - return null; - case 0: - _200B_206D_206E_200D_206F_202E_202D_206C_206A_206B_202B_200E_206C_200D_206A_206B_206D_202C_200D_202C_200B_202B_206A_202B_202A_200C_200D_206D_206F_206A_200D_206F_206A_206D_200D_206E_206F_200F_206B_200D_202E((object)_206F_206F_206B_200B_202A_200D_200D_200F_202C_202B_202A_202E_200D_200B_202B_200F_200D_206C_202E_200F_200B_202E_200F_200C_202C_206B_202B_200F_206B_202A_202A_206A_202C_202A_202E_202A_206D_200F_200D_206A_202E(step), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1584480667)); - return new Attune(_206F_206F_206B_200B_202A_200D_200D_200F_202C_202B_202A_202E_200D_200B_202B_200F_200D_206C_202E_200F_200B_202E_200F_200C_202C_206B_202B_200F_206B_202A_202A_206A_202C_202A_202E_202A_206D_200F_200D_206A_202E(step).Value); - } - continue; - IL_0047: - num = -343069116; + return null; } - } - - static EInteractionType _200F_206D_200C_206B_200C_206E_202B_202A_206E_200D_200E_206D_202E_202D_200C_202B_200B_206C_202B_206B_200B_206D_200F_206F_206B_200F_200B_200C_202D_202A_206C_202C_200C_202E_202E_200F_206C_202A_206A_202A_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static EAetheryteLocation? _206F_206F_206B_200B_202A_200D_200D_200F_202C_202B_202A_202E_200D_200B_202B_200F_200D_206C_202E_200F_200B_202E_200F_200C_202C_206B_202B_200F_206B_202A_202A_206A_202C_202A_202E_202A_206D_200F_200D_206A_202E(QuestStep P_0) - { - return P_0.Aetheryte; - } - - static void _200B_206D_206E_200D_206F_202E_202D_206C_206A_206B_202B_200E_206C_200D_206A_206B_206D_202C_200D_202C_200B_202B_206A_202B_202A_200C_200D_206D_206F_206A_200D_206F_206A_206D_200D_206E_206F_200F_206B_200D_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); + ArgumentNullException.ThrowIfNull(step.Aetheryte, "step.Aetheryte"); + return new Attune(step.Aetheryte.Value); } } internal sealed record Attune(EAetheryteLocation AetheryteLocation) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206F_206F_202A_200F_206F_202C_202B_206C_202A_200F_206E_200E_206F_206B_206A_200C_206D_200E_200F_206D_202E_206A_200C_206E_202B_200B_206E_206C_200D_206D_206D_206D_206E_200C_200D_202A_200D_206F_200B_202E_202E(typeof(Attune).TypeHandle); - } - } - public bool ShouldRedoOnInterrupt() { return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(17, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1240918148)); - defaultInterpolatedStringHandler.AppendFormatted(AetheryteLocation); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202E_206B_202C_200E_202A_200E_200D_200B_200B_206F_206E_206B_200B_200E_202C_200F_206A_200D_206A_200D_202E_200C_206D_206C_200D_206D_206A_206B_200E_206B_202A_202E_202E_206C_200C_206D_202E_206C_206C_202C_202E(); - _202B_202B_206C_202C_202E_200C_200B_206D_200F_202D_200D_202E_202C_206C_206B_206C_206E_200B_206D_202A_200C_202E_206B_202D_202D_206E_202D_202C_200E_200C_202A_202C_200D_200F_206C_200C_200F_202A_206B_202A_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1285909237)); - _202B_202B_206C_202C_202E_200C_200B_206D_200F_202D_200D_202E_202C_206C_206B_206C_206E_200B_206D_202A_200C_202E_206B_202D_202D_206E_202D_202C_200E_200C_202A_202C_200D_200F_206C_200C_200F_202A_206B_202A_202E(builder, AetheryteLocation.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Attune? other) - { - int num = (((object)this == other) ? (-82451630) : (-82451626)); - while (true) - { - int num2 = num; - int num3 = -82451625; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -82451626; - break; - case 1: - num = (((object)other == null) ? (-82451628) : (-82451625)); - break; - case 3: - return false; - case 4: - return EqualityComparer<EAetheryteLocation>.Default.Equals(AetheryteLocation, other.AetheryteLocation); - case 5: - return true; - case 0: - num = ((!_200C_206A_202D_206A_200D_206E_202A_200F_206A_202A_202D_206E_202E_202C_200E_200D_202D_206F_206F_200F_206C_200E_206C_206B_206E_202D_202B_206E_206D_206D_200C_206D_202E_202C_206C_202B_202D_200C_206D_202A_202E(EqualityContract, other.EqualityContract)) ? (-82451628) : (-82451629)); - break; - } - } - } - - bool IEquatable<Attune>.Equals(Attune? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206F_206F_202A_200F_206F_202C_202B_206C_202A_200F_206E_200E_206F_206B_206A_200C_206D_200E_200F_206D_202E_206A_200C_206E_202B_200B_206E_206C_200D_206D_206D_206D_206E_200C_200D_202A_200D_206F_200B_202E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _202E_206B_202C_200E_202A_200E_200D_200B_200B_206F_206E_206B_200B_200E_202C_200F_206A_200D_206A_200D_202E_200C_206D_206C_200D_206D_206A_206B_200E_206B_202A_202E_202E_206C_200C_206D_202E_206C_206C_202C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202B_202B_206C_202C_202E_200C_200B_206D_200F_202D_200D_202E_202C_206C_206B_206C_206E_200B_206D_202A_200C_202E_206B_202D_202D_206E_202D_202C_200E_200C_202A_202C_200D_200F_206C_200C_200F_202A_206B_202A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _200C_206A_202D_206A_200D_206E_202A_200F_206A_202A_202D_206E_202E_202C_200E_200D_202D_206F_206F_200F_206C_200E_206C_206B_206E_202D_202B_206E_206D_206D_200C_206D_202E_202C_206C_202B_202D_200C_206D_202A_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"AttuneAetheryte({AetheryteLocation})"; } } @@ -162,100 +40,51 @@ internal static class Aetheryte { protected abstract EAetheryteLocation GetLocation(); - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { EAetheryteLocation location = GetLocation(); - int num = (_003CaetheryteFunctions_003EP.IsAetheryteUnlocked(location) ? 1186609547 : 1186609544); - while (true) + if (!_003CaetheryteFunctions_003EP.IsAetheryteUnlocked(location)) { - int num2 = num; - int num3 = 1186609545; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - _202E_206B_200D_206D_206C_202B_202E_200B_200E_206D_202A_200D_206F_200C_202C_206C_206A_206F_202B_200D_200C_202E_200E_202A_206E_206D_200C_206B_200C_202A_202E_200D_202D_202D_202C_206E_202D_202A_202A_206E_202E(_003Clogger_003EP, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1529861734), new object[2] { _003Clabel_003EP, location }); - return false; - case 1: - _206A_200C_200D_202B_200B_202E_206A_206A_200D_200E_200B_200D_200D_200E_206F_202D_206E_200B_206E_202D_206F_206E_202A_200F_202A_206D_202C_200D_200E_202A_200C_200E_200E_200C_206B_200F_206C_200D_200D_206D_202E(_003Clogger_003EP, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1889927611), new object[2] { _003Clabel_003EP, location }); - base.ProgressContext = InteractionProgressContext.FromActionUseOrDefault(() => _003CgameFunctions_003EP.InteractWith((uint)location, ObjectKind.Aetheryte)); - return true; - case 0: - goto IL_00e9; - } - continue; - IL_00e9: - num = 1186609544; + _003Clogger_003EP.LogInformation("Attuning to {Label} {Location}", _003Clabel_003EP, location); + base.ProgressContext = InteractionProgressContext.FromActionUseOrDefault(() => _003CgameFunctions_003EP.InteractWith((uint)location, ObjectKind.Aetheryte)); + return true; } + _003Clogger_003EP.LogDebug("Already attuned to {Label} {Location}", _003Clabel_003EP, location); + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - int num = ((!_003CaetheryteFunctions_003EP.IsAetheryteUnlocked(GetLocation())) ? 1810240359 : 1810240355); - while (true) + if (_003CaetheryteFunctions_003EP.IsAetheryteUnlocked(GetLocation())) { - int num2 = num; - int num3 = 1810240354; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + ResetProgressTimer(); + return ETaskResult.TaskComplete; + } + if (base.ProgressContext != null) + { + if (base.ProgressContext.WasInterrupted()) { - case 4: - num = ((!base.ProgressContext.WasSuccessful()) ? 1810240357 : 1810240356); - break; - case 5: - num = ((base.ProgressContext == null) ? 1810240357 : 1810240352); - break; - case 7: + _003Clogger_003EP.LogDebug("Attunement to {Label} {Location} was interrupted", _003Clabel_003EP, GetLocation()); return ETaskResult.StillRunning; - case 2: - num = ((!base.ProgressContext.WasInterrupted()) ? 1810240358 : 1810240354); - break; - case 0: - _202E_206B_200D_206D_206C_202B_202E_200B_200E_206D_202A_200D_206F_200C_202C_206C_206A_206F_202B_200D_200C_202E_200E_202A_206E_206D_200C_206B_200C_202A_202E_200D_202D_202D_202C_206E_202D_202A_202A_206E_202E(_003Clogger_003EP, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-854407988), new object[2] - { - _003Clabel_003EP, - GetLocation() - }); - return ETaskResult.StillRunning; - case 3: - num = 1810240355; - break; - case 1: + } + if (base.ProgressContext.WasSuccessful()) + { ResetProgressTimer(); - return ETaskResult.TaskComplete; - case 6: - ResetProgressTimer(); - num = 1810240357; - break; } } + return ETaskResult.StillRunning; } public override bool ShouldInterruptOnDamage() { return true; } - - static void _206A_200C_200D_202B_200B_202E_206A_206A_200D_200E_200B_200D_200D_200E_206F_202D_206E_200B_206E_202D_206F_206E_202A_200F_202A_206D_202C_200D_200E_202A_200C_200E_200E_200C_206B_200F_206C_200D_200D_206D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static void _202E_206B_200D_206D_206C_202B_202E_200B_200E_206D_202A_200D_206F_200C_202C_206C_206A_206F_202B_200D_200C_202E_200E_202A_206E_206D_200C_206B_200C_202A_202E_200D_202D_202D_202C_206E_202D_202A_202A_206E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } } internal sealed class DoAttune : DoAttuneBase<Attune> { - [MethodImpl(MethodImplOptions.NoInlining)] public DoAttune(AetheryteFunctions aetheryteFunctions, GameFunctions gameFunctions, ILogger<DoAttune> logger) - : base(aetheryteFunctions, gameFunctions, (ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1427720199)) + : base(aetheryteFunctions, gameFunctions, (ILogger)logger, "aetheryte") { } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/AetheryteFreeOrFavored.cs b/Questionable/Questionable.Controller.Steps.Interactions/AetheryteFreeOrFavored.cs index 0fc822b..0340202 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/AetheryteFreeOrFavored.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/AetheryteFreeOrFavored.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Objects.Enums; using Microsoft.Extensions.Logging; using Questionable.Functions; @@ -15,233 +12,72 @@ internal static class AetheryteFreeOrFavored { internal sealed class Factory : SimpleTaskFactory { - [MethodImpl(MethodImplOptions.NoInlining)] public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_206C_200C_200E_202C_200E_202A_206A_202C_206D_202A_206F_206D_206A_200D_200B_200E_206B_202B_202E_202B_202A_202D_206B_206D_200B_200E_202E_206A_206A_202D_200B_206C_206D_200C_202A_200C_200D_206E_200D_200E_202E(step) == EInteractionType.RegisterFreeOrFavoredAetheryte) ? 499713839 : 499713836); - while (true) + if (step.InteractionType != EInteractionType.RegisterFreeOrFavoredAetheryte) { - int num2 = num; - int num3 = 499713838; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - _202D_206F_202E_200B_200B_206F_206D_202C_206A_202B_200F_202E_200C_206A_206A_202B_206A_200D_206F_202A_200E_206D_206F_202D_206D_202A_200F_202B_206B_202B_202A_200C_206F_200F_206F_202C_200D_206E_202E_206A_202E((object)_202B_202C_202E_202A_206D_202A_200E_200E_206B_200D_206F_206A_206E_206E_202D_202D_206D_206C_202B_202E_202B_206E_200F_202C_206F_200B_202C_206C_206A_202B_200D_200E_200B_206C_200C_206B_200B_200D_202B_202A_202E(step), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1584480667)); - return new Register(_202B_202C_202E_202A_206D_202A_200E_200E_206B_200D_206F_206A_206E_206E_202D_202D_206D_206C_202B_202E_202B_206E_200F_202C_206F_200B_202C_206C_206A_202B_200D_200E_200B_206C_200C_206B_200B_200D_202B_202A_202E(step).Value); - case 2: - return null; - case 0: - goto IL_0077; - } - continue; - IL_0077: - num = 499713836; + return null; } - } - - static EInteractionType _206C_200C_200E_202C_200E_202A_206A_202C_206D_202A_206F_206D_206A_200D_200B_200E_206B_202B_202E_202B_202A_202D_206B_206D_200B_200E_202E_206A_206A_202D_200B_206C_206D_200C_202A_200C_200D_206E_200D_200E_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static EAetheryteLocation? _202B_202C_202E_202A_206D_202A_200E_200E_206B_200D_206F_206A_206E_206E_202D_202D_206D_206C_202B_202E_202B_206E_200F_202C_206F_200B_202C_206C_206A_202B_200D_200E_200B_206C_200C_206B_200B_200D_202B_202A_202E(QuestStep P_0) - { - return P_0.Aetheryte; - } - - static void _202D_206F_202E_200B_200B_206F_206D_202C_206A_202B_200F_202E_200C_206A_206A_202B_206A_200D_206F_202A_200E_206D_206F_202D_206D_202A_200F_202B_206B_202B_202A_200C_206F_200F_206F_202C_200D_206E_202E_206A_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); + ArgumentNullException.ThrowIfNull(step.Aetheryte, "step.Aetheryte"); + return new Register(step.Aetheryte.Value); } } internal sealed record Register(EAetheryteLocation AetheryteLocation) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202B_202A_202B_200E_202B_206A_206D_206D_206E_202B_200E_200C_206B_200D_206B_200F_200C_200B_202D_200F_206D_206E_202D_206A_202C_200B_200B_200F_202C_206E_200B_200C_206A_202D_206D_206F_200B_202B_206E_200F_202E(typeof(Register).TypeHandle); - } - } - public bool ShouldRedoOnInterrupt() { return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(32, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(837587043)); - defaultInterpolatedStringHandler.AppendFormatted(AetheryteLocation); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202B_206C_200B_200F_206A_202B_206B_206E_202D_202C_202B_206F_206F_202D_206A_206C_202E_200C_202B_200F_202A_200B_200E_200E_200F_200E_206B_200E_206F_200B_200E_200C_200F_206C_200D_206D_200C_200D_202B_202A_202E(); - _206C_202E_202B_200F_206A_206D_202B_202C_200D_206B_206C_206B_200D_200D_200D_202A_200E_202B_200B_200E_206D_206B_202B_202B_206B_206A_206A_202A_200E_206B_200D_206A_200D_202B_202E_202B_200B_206B_206E_202D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(719371282)); - _206C_202E_202B_200F_206A_206D_202B_202C_200D_206B_206C_206B_200D_200D_200D_202A_200E_202B_200B_200E_206D_206B_202B_202B_206B_206A_206A_202A_200E_206B_200D_206A_200D_202B_202E_202B_200B_206B_206E_202D_202E(builder, AetheryteLocation.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Register? other) - { - int num = (((object)this == other) ? 602559884 : 602559880); - while (true) - { - int num2 = num; - int num3 = 602559881; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - return true; - case 2: - return false; - case 4: - num = 602559880; - break; - case 0: - return EqualityComparer<EAetheryteLocation>.Default.Equals(AetheryteLocation, other.AetheryteLocation); - case 1: - num = (((object)other == null) ? 602559883 : 602559882); - break; - case 3: - num = ((!_202E_206F_200D_200E_206F_200C_202D_202E_206D_200B_202B_200B_200D_200D_202B_202B_202C_200D_206A_202B_200C_206E_202C_200C_202C_200B_202A_206D_200C_202D_206E_206A_206C_202C_206E_200F_200B_200C_200E_206F_202E(EqualityContract, other.EqualityContract)) ? 602559883 : 602559881); - break; - } - } - } - - bool IEquatable<Register>.Equals(Register? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202B_202A_202B_200E_202B_206A_206D_206D_206E_202B_200E_200C_206B_200D_206B_200F_200C_200B_202D_200F_206D_206E_202D_206A_202C_200B_200B_200F_202C_206E_200B_200C_206A_202D_206D_206F_200B_202B_206E_200F_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _202B_206C_200B_200F_206A_202B_206B_206E_202D_202C_202B_206F_206F_202D_206A_206C_202E_200C_202B_200F_202A_200B_200E_200E_200F_200E_206B_200E_206F_200B_200E_200C_200F_206C_200D_206D_200C_200D_202B_202A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206C_202E_202B_200F_206A_206D_202B_202C_200D_206B_206C_206B_200D_200D_200D_202A_200E_202B_200B_200E_206D_206B_202B_202B_206B_206A_206A_202A_200E_206B_200D_206A_200D_202B_202E_202B_200B_206B_206E_202D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _202E_206F_200D_200E_206F_200C_202D_202E_206D_200B_202B_200B_200D_200D_202B_202B_202C_200D_206A_202B_200C_206E_202C_200C_202C_200B_202A_206D_200C_202D_206E_206A_206C_202C_206E_200F_200B_200C_200E_206F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"RegisterFreeOrFavoredAetheryte({AetheryteLocation})"; } } internal sealed class DoRegister(AetheryteFunctions aetheryteFunctions, GameFunctions gameFunctions, ILogger<DoRegister> logger) : TaskExecutor<Register>() { - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - int num = (aetheryteFunctions.IsAetheryteUnlocked(base.Task.AetheryteLocation) ? 1191746400 : 1191746407); - while (true) + if (!aetheryteFunctions.IsAetheryteUnlocked(base.Task.AetheryteLocation)) { - int num2 = num; - int num3 = 1191746404; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - _200C_202B_206D_200B_202A_202C_200B_206A_200D_202E_206C_202B_200B_206B_206F_206C_200F_200D_200B_206C_200D_202C_202C_206E_206F_206C_202E_206A_200D_206D_206F_202A_202A_206C_206F_206E_200E_200C_202D_202E_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(560864212), new object[1] { base.Task.AetheryteLocation }); - return false; - case 3: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(25, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1957444372)); - defaultInterpolatedStringHandler.AppendFormatted(base.Task.AetheryteLocation); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1174023517)); - throw new TaskException(defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 4: - num = ((aetheryteFunctions.CanRegisterFreeOrFavoriteAetheryte(base.Task.AetheryteLocation) != AetheryteRegistrationResult.NotPossible) ? 1191746404 : 1191746405); - break; - case 2: - num = 1191746407; - break; - case 0: - base.ProgressContext = InteractionProgressContext.FromActionUseOrDefault(() => gameFunctions.InteractWith((uint)base.Task.AetheryteLocation, ObjectKind.Aetheryte)); - return true; - } + throw new TaskException($"Aetheryte {base.Task.AetheryteLocation} is not attuned"); } + if (aetheryteFunctions.CanRegisterFreeOrFavoriteAetheryte(base.Task.AetheryteLocation) == AetheryteRegistrationResult.NotPossible) + { + logger.LogDebug("Could not register aetheryte {AetheryteLocation} as free or favored", base.Task.AetheryteLocation); + return false; + } + base.ProgressContext = InteractionProgressContext.FromActionUseOrDefault(() => gameFunctions.InteractWith((uint)base.Task.AetheryteLocation, ObjectKind.Aetheryte)); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - int num = ((aetheryteFunctions.CanRegisterFreeOrFavoriteAetheryte(base.Task.AetheryteLocation) != AetheryteRegistrationResult.NotPossible) ? 473627761 : 473627764); - while (true) + if (aetheryteFunctions.CanRegisterFreeOrFavoriteAetheryte(base.Task.AetheryteLocation) == AetheryteRegistrationResult.NotPossible) { - int num2 = num; - int num3 = 473627760; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + ResetProgressTimer(); + return ETaskResult.TaskComplete; + } + if (base.ProgressContext != null) + { + if (base.ProgressContext.WasInterrupted()) { - case 0: - num = 473627764; - break; - case 7: - num = ((!base.ProgressContext.WasSuccessful()) ? 473627762 : 473627766); - break; - case 2: + logger.LogDebug("Registration of {Location} was interrupted", base.Task.AetheryteLocation); return ETaskResult.StillRunning; - case 5: - _200C_202B_206D_200B_202A_202C_200B_206A_200D_202E_206C_202B_200B_206B_206F_206C_200F_200D_200B_206C_200D_202C_202C_206E_206F_206C_202E_206A_200D_206D_206F_202A_202A_206C_206F_206E_200E_200C_202D_202E_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-180503859), new object[1] { base.Task.AetheryteLocation }); - return ETaskResult.StillRunning; - case 4: + } + if (base.ProgressContext.WasSuccessful()) + { ResetProgressTimer(); - return ETaskResult.TaskComplete; - case 6: - ResetProgressTimer(); - num = 473627762; - break; - case 3: - num = ((!base.ProgressContext.WasInterrupted()) ? 473627767 : 473627765); - break; - case 1: - num = ((base.ProgressContext == null) ? 473627762 : 473627763); - break; } } + return ETaskResult.StillRunning; } public override bool ShouldInterruptOnDamage() { return true; } - - static void _200C_202B_206D_200B_202A_202C_200B_206A_200D_202E_206C_202B_200B_206B_206F_206C_200F_200D_200B_206C_200D_202C_202C_206E_206F_206C_202E_206A_200D_206D_206F_202A_202A_206C_206F_206E_200E_200C_202D_202E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/AutoVendorPurchase.cs b/Questionable/Questionable.Controller.Steps.Interactions/AutoVendorPurchase.cs index 51d306c..b370eba 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/AutoVendorPurchase.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/AutoVendorPurchase.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; -using System.Runtime.CompilerServices; using Microsoft.Extensions.Logging; using Questionable.Controller.CustomDelivery; using Questionable.Controller.Steps.Common; @@ -16,354 +12,25 @@ internal static class AutoVendorPurchase { internal sealed class Factory(VendorResolverService vendorResolver, SmartNavRouteEnqueuer routeEnqueuer, ILogger<Factory> logger) : ITaskFactory { - [CompilerGenerated] - private sealed class _003CCreateAllTasks_003Ed__4 : IEnumerable<ITask>, IEnumerable, IEnumerator<ITask>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ITask _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - private QuestStep step; - - public QuestStep _003C_003E3__step; - - public Factory _003C_003E4__this; - - private VendorResolverService.VendorInfo? _003Cvendor_003E5__2; - - private int _003Cquantity_003E5__3; - - private IEnumerator<ITask> _003C_003E7__wrap3; - - ITask IEnumerator<ITask>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CCreateAllTasks_003Ed__4(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _202E_200D_206C_200F_206B_202D_200B_206D_202A_206E_200F_202E_206D_202E_206A_206E_200B_206B_206D_206A_202E_202D_202D_200C_206D_206F_206C_206A_202B_206E_202E_200C_200F_206C_200B_200B_200E_202E_206F_200C_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num == -3) ? 1416042762 : 1416042763); - while (true) - { - int num3 = num2; - int num4 = 1416042762; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 2: - num2 = 1416042763; - continue; - case 1: - if (num == 1) - { - num2 = 1416042762; - continue; - } - break; - case 0: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E7__wrap3 = null; - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - try - { - int num = _003C_003E1__state; - Factory factory = _003C_003E4__this; - int num2; - switch (num) - { - default: - num2 = 94833750; - goto IL_0030; - case 2: - _003C_003E1__state = -1; - _003C_003E2__current = new VendorPurchaseTask(_003Cvendor_003E5__2.Value.VendorNpcId, new global::_003C_003Ez__ReadOnlySingleElementList<VendorPurchaseTask.PurchaseItem>(new VendorPurchaseTask.PurchaseItem(_206B_200E_206E_202C_206E_206C_200D_206D_200C_206B_202A_200D_202C_206C_202E_206B_202E_206D_200F_202D_200B_200E_206E_206A_202A_202A_200C_202D_200D_202A_206A_206D_206A_206C_200F_206F_200C_206D_206A_202C_202E(step).Value, _003Cquantity_003E5__3)), _003Cvendor_003E5__2.Value.DialogOptionIndex); - _003C_003E1__state = 3; - return true; - case 0: - goto IL_025b; - case 1: - goto IL_02d8; - case 3: - break; - IL_0030: - while (true) - { - int num3 = num2; - int num4 = 94833758; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 7: - _003C_003Em__Finally1(); - _003C_003E7__wrap3 = null; - _003C_003E2__current = new Mount.UnmountTask(); - _003C_003E1__state = 2; - return true; - case 0: - goto IL_00c0; - case 12: - _206A_202E_202C_206A_206F_206B_206F_206E_200B_200B_200B_200B_200E_206B_202A_202A_206E_206C_200B_206B_200F_206E_206D_202B_200E_200E_202B_202C_202B_206A_206A_206C_200B_206E_206E_200D_206D_200E_206B_206A_202E((ILogger)factory.logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(237865038), new object[1] { _206B_200E_206E_202C_206E_206C_200D_206D_200C_206B_202A_200D_202C_206C_202E_206B_202E_206D_200F_202D_200B_200E_206E_206A_202A_202A_200C_202D_200D_202A_206A_206D_206A_206C_200F_206F_200C_206D_206A_202C_202E(step) }); - return false; - case 8: - return false; - case 11: - { - ITask current = _003C_003E7__wrap3.Current; - _003C_003E2__current = current; - _003C_003E1__state = 1; - return true; - } - case 14: - _003Cquantity_003E5__3 = _206E_206C_206F_202E_200B_202B_200B_202C_200E_206A_202B_200D_202D_202D_206C_206E_206A_206E_202D_206A_202D_200D_200F_200C_202A_206F_206A_200F_202E_200C_202A_206E_202D_206F_200C_200C_206D_206D_200C_202A_202E(step) ?? 1; - _003C_003E7__wrap3 = factory.routeEnqueuer.BuildRoutedTasks(_003Cvendor_003E5__2.Value.TerritoryId, _003Cvendor_003E5__2.Value.Position).GetEnumerator(); - _003C_003E1__state = -3; - num2 = 94833758; - break; - case 2: - num2 = 94833750; - break; - case 6: - goto end_IL_0030; - case 10: - goto IL_025b; - case 1: - goto IL_028c; - case 5: - goto IL_02d8; - case 9: - goto IL_02ec; - case 3: - return false; - case 4: - goto IL_032f; - case 13: - goto end_IL_000f; - } - continue; - IL_032f: - num2 = (_206B_200E_206E_202C_206E_206C_200D_206D_200C_206B_202A_200D_202C_206C_202E_206B_202E_206D_200F_202D_200B_200E_206E_206A_202A_202A_200C_202D_200D_202A_206A_206D_206A_206C_200F_206F_200C_206D_206A_202C_202E(step).HasValue ? 94833759 : 94833757); - continue; - IL_028c: - _003Cvendor_003E5__2 = factory.vendorResolver.ResolveVendor(_206B_200E_206E_202C_206E_206C_200D_206D_200C_206B_202A_200D_202C_206C_202E_206B_202E_206D_200F_202D_200B_200E_206E_206A_202A_202A_200C_202D_200D_202A_206A_206D_206A_206C_200F_206F_200C_206D_206A_202C_202E(step).Value); - num2 = (_003Cvendor_003E5__2.HasValue ? 94833744 : 94833746); - continue; - IL_00c0: - num2 = (_202A_206B_200F_200F_200E_200D_206F_202A_206C_200C_206D_200E_206A_200E_202E_206D_206F_202B_202E_206C_202E_202D_202C_206E_202B_202D_206C_200B_200F_206F_206A_202B_206E_206C_206C_202E_206E_206B_206B_202A_202E((IEnumerator)_003C_003E7__wrap3) ? 94833749 : 94833753); - continue; - IL_02ec: - num2 = (_200C_200F_200C_202A_202D_202D_202A_200C_200D_206C_206C_200C_206E_202E_206A_206A_200D_202C_200E_202C_206B_200F_206A_202A_202A_200C_206E_200D_202D_200C_200E_202B_206F_202C_202C_200C_206E_206A_200E_206D_202E(step).HasValue ? 94833757 : 94833754); - continue; - end_IL_0030: - break; - } - goto case 2; - IL_02d8: - _003C_003E1__state = -3; - num2 = 94833758; - goto IL_0030; - IL_025b: - _003C_003E1__state = -1; - num2 = ((_200B_206A_200B_206E_200B_206D_202C_202D_206F_202E_200D_202E_202A_206F_202C_206B_202B_206D_200D_202E_206A_206D_200C_202A_206F_206B_200C_202D_202B_202A_200E_206B_206C_200D_200E_200D_202D_202B_206D_200C_202E(step) != EInteractionType.PurchaseItem) ? 94833757 : 94833751); - goto IL_0030; - end_IL_000f: - break; - } - _003C_003E1__state = -1; - return false; - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - int num = ((_003C_003E7__wrap3 == null) ? 2030073587 : 2030073584); - while (true) - { - int num2 = num; - int num3 = 2030073586; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return; - case 2: - _206D_202D_206A_200D_202C_206D_206A_206E_200E_206D_202E_206B_206D_206D_206D_200C_202C_200F_206F_200E_202B_202C_202B_202E_206E_200F_202C_202C_202E_200D_200F_202C_200F_202D_206F_200E_206D_202E_202E_202A_202E((IDisposable)_003C_003E7__wrap3); - num = 2030073587; - break; - case 0: - num = 2030073584; - break; - } - } - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _202E_200F_206F_202B_202B_202D_200C_206A_200B_206F_200D_202B_202C_202E_206F_202A_206E_200D_202A_200D_202D_206E_206F_206E_200E_206F_206E_200C_202A_206D_202E_200D_202C_202A_202D_206F_202E_206A_200E_206B_202E(); - } - - [DebuggerHidden] - IEnumerator<ITask> IEnumerable<ITask>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? (-566231640) : (-566231639)); - _003CCreateAllTasks_003Ed__4 _003CCreateAllTasks_003Ed__ = default(_003CCreateAllTasks_003Ed__4); - while (true) - { - int num2 = num; - int num3 = -566231638; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - _003C_003E1__state = 0; - _003CCreateAllTasks_003Ed__ = this; - num = -566231638; - break; - case 3: - num = ((_003C_003El__initialThreadId != _202E_200D_206C_200F_206B_202D_200B_206D_202A_206E_200F_202E_206D_202E_206A_206E_200B_206B_206D_206A_202E_202D_202D_200C_206D_206F_206C_206A_202B_206E_202E_200C_200F_206C_200B_200B_200E_202E_206F_200C_202E()) ? (-566231640) : (-566231637)); - break; - case 2: - _003CCreateAllTasks_003Ed__ = new _003CCreateAllTasks_003Ed__4(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = -566231638; - break; - case 4: - num = -566231639; - break; - case 0: - _003CCreateAllTasks_003Ed__.step = _003C_003E3__step; - return _003CCreateAllTasks_003Ed__; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ITask>)this).GetEnumerator(); - } - - static int _202E_200D_206C_200F_206B_202D_200B_206D_202A_206E_200F_202E_206D_202E_206A_206E_200B_206B_206D_206A_202E_202D_202D_200C_206D_206F_206C_206A_202B_206E_202E_200C_200F_206C_200B_200B_200E_202E_206F_200C_202E() - { - return Environment.CurrentManagedThreadId; - } - - static EInteractionType _200B_206A_200B_206E_200B_206D_202C_202D_206F_202E_200D_202E_202A_206F_202C_206B_202B_206D_200D_202E_206A_206D_200C_202A_206F_206B_200C_202D_202B_202A_200E_206B_206C_200D_200E_200D_202D_202B_206D_200C_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static uint? _200C_200F_200C_202A_202D_202D_202A_200C_200D_206C_206C_200C_206E_202E_206A_206A_200D_202C_200E_202C_206B_200F_206A_202A_202A_200C_206E_200D_202D_200C_200E_202B_206F_202C_202C_200C_206E_206A_200E_206D_202E(QuestStep P_0) - { - return P_0.DataId; - } - - static uint? _206B_200E_206E_202C_206E_206C_200D_206D_200C_206B_202A_200D_202C_206C_202E_206B_202E_206D_200F_202D_200B_200E_206E_206A_202A_202A_200C_202D_200D_202A_206A_206D_206A_206C_200F_206F_200C_206D_206A_202C_202E(QuestStep P_0) - { - return P_0.ItemId; - } - - static void _206A_202E_202C_206A_206F_206B_206F_206E_200B_200B_200B_200B_200E_206B_202A_202A_206E_206C_200B_206B_200F_206E_206D_202B_200E_200E_202B_202C_202B_206A_206A_206C_200B_206E_206E_200D_206D_200E_206B_206A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static int? _206E_206C_206F_202E_200B_202B_200B_202C_200E_206A_202B_200D_202D_202D_206C_206E_206A_206E_202D_206A_202D_200D_200F_200C_202A_206F_206A_200F_202E_200C_202A_206E_202D_206F_200C_200C_206D_206D_200C_202A_202E(QuestStep P_0) - { - return P_0.ItemCount; - } - - static bool _202A_206B_200F_200F_200E_200D_206F_202A_206C_200C_206D_200E_206A_200E_202E_206D_206F_202B_202E_206C_202E_202D_202C_206E_202B_202D_206C_200B_200F_206F_206A_202B_206E_206C_206C_202E_206E_206B_206B_202A_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206D_202D_206A_200D_202C_206D_206A_206E_200E_206D_202E_206B_206D_206D_206D_200C_202C_200F_206F_200E_202B_202C_202B_202E_206E_200F_202C_202C_202E_200D_200F_202C_200F_202D_206F_200E_206D_202E_202E_202A_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static NotSupportedException _202E_200F_206F_202B_202B_202D_200C_206A_200B_206F_200D_202B_202C_202E_206F_202A_206E_200D_202A_200D_202D_206E_206F_206E_200E_206F_206E_200C_202A_206D_202E_200D_202C_202A_202D_206F_202E_206A_200E_206B_202E() - { - return new NotSupportedException(); - } - } - - [IteratorStateMachine(typeof(_003CCreateAllTasks_003Ed__4))] public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CCreateAllTasks_003Ed__4(-2) + if (step.InteractionType != EInteractionType.PurchaseItem || step.DataId.HasValue || !step.ItemId.HasValue) { - _003C_003E4__this = this, - _003C_003E3__step = step - }; - } - - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); + yield break; + } + VendorResolverService.VendorInfo? vendor = vendorResolver.ResolveVendor(step.ItemId.Value); + if (!vendor.HasValue) + { + logger.LogWarning("No vendor with a known location sells item {ItemId}; cannot auto-purchase", step.ItemId); + yield break; + } + int quantity = step.ItemCount ?? 1; + foreach (ITask item in routeEnqueuer.BuildRoutedTasks(vendor.Value.TerritoryId, vendor.Value.Position)) + { + yield return item; + } + yield return new Mount.UnmountTask(); + yield return new VendorPurchaseTask(vendor.Value.VendorNpcId, new global::_003C_003Ez__ReadOnlySingleElementList<VendorPurchaseTask.PurchaseItem>(new VendorPurchaseTask.PurchaseItem(step.ItemId.Value, quantity)), vendor.Value.DialogOptionIndex); } } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/ClearObjectsWithAction.cs b/Questionable/Questionable.Controller.Steps.Interactions/ClearObjectsWithAction.cs index 10a802c..69881c8 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/ClearObjectsWithAction.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/ClearObjectsWithAction.cs @@ -1,9 +1,6 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Objects.Enums; using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Game.ClientState.Objects.Types; @@ -21,198 +18,32 @@ internal static class ClearObjectsWithAction { public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_200B_200D_200C_200C_202B_206D_200E_202C_200F_206F_206F_200B_206E_200B_200E_200E_202C_202C_206B_200D_200E_202B_206E_202A_200D_200F_200D_200D_202B_206F_206C_200F_202B_202E_206F_200F_206E_202E_200F_200F_202E(step) == EInteractionType.Action) ? (-1145008527) : (-1145008525)); - while (true) + if (step.InteractionType != EInteractionType.Action) { - int num2 = num; - int num3 = -1145008523; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1145008525; - break; - case 6: - return Array.Empty<ITask>(); - case 2: - return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(new ClearTask(_200E_202B_202D_200C_202A_200B_200E_200E_200E_200F_206F_206E_200D_202B_206F_202B_200F_206D_206A_202E_206A_206C_202C_200D_206C_202E_206D_202D_206B_206F_200D_206B_206B_206E_206D_202C_206B_202D_200B_200D_202E(step), _200F_200F_200F_200E_206E_200B_202E_206B_206C_200D_202D_200F_200D_202B_202B_206C_200F_206C_202B_202D_202B_202A_206A_206B_202B_202E_202A_202A_200D_200D_202E_200C_206C_202B_206D_200F_206B_202C_206E_200F_202E(step).Value, _206E_202E_202B_200D_206D_206B_206D_200F_200B_202C_202E_202B_206D_206D_206C_200C_202A_206E_200B_206B_200B_202D_200F_202A_202E_206F_202B_200F_206A_206D_202E_206C_200B_200B_200D_202D_202B_206C_200E_206A_202E(step), _202C_202A_202A_202A_200C_206C_202B_200F_202A_202E_206B_206E_202E_206D_202E_200F_200C_200F_206D_206D_200C_206C_202D_200F_202E_200B_200C_206E_206C_200E_200C_206C_200D_206D_202B_206E_206C_202A_200D_202A_202E(step), _202C_206B_200E_202D_200B_206A_202B_202B_206E_206C_202E_200E_206F_202A_200E_206D_200D_200D_206E_206B_200E_202E_206C_206B_202D_206F_202C_206C_202B_202C_206D_202D_202E_206A_206B_206E_200C_202B_206C_200D_202E(step))); - case 3: - num = (_200F_200F_200F_200E_206E_200B_202E_206B_206C_200D_202D_200F_200D_202B_202B_206C_200F_206C_202B_202D_202B_202A_206A_206B_202B_202E_202A_202A_200D_200D_202E_200C_206C_202B_206D_200F_206B_202C_206E_200F_202E(step).HasValue ? (-1145008521) : (-1145008524)); - break; - case 1: - return Array.Empty<ITask>(); - case 5: - return Array.Empty<ITask>(); - case 4: - num = ((_200E_202B_202D_200C_202A_200B_200E_200E_200E_200F_206F_206E_200D_202B_206F_202B_200F_206D_206A_202E_206A_206C_202C_200D_206C_202E_206D_202D_206B_206F_200D_206B_206B_206E_206D_202C_206B_202D_200B_200D_202E(step).Count != 0) ? (-1145008522) : (-1145008528)); - break; - } + return Array.Empty<ITask>(); } - } - - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); - } - - static EInteractionType _200B_200D_200C_200C_202B_206D_200E_202C_200F_206F_206F_200B_206E_200B_200E_200E_202C_202C_206B_200D_200E_202B_206E_202A_200D_200F_200D_200D_202B_206F_206C_200F_202B_202E_206F_200F_206E_202E_200F_200F_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static List<uint> _200E_202B_202D_200C_202A_200B_200E_200E_200E_200F_206F_206E_200D_202B_206F_202B_200F_206D_206A_202E_206A_206C_202C_200D_206C_202E_206D_202D_206B_206F_200D_206B_206B_206E_206D_202C_206B_202D_200B_200D_202E(QuestStep P_0) - { - return P_0.DataIds; - } - - static EAction? _200F_200F_200F_200E_206E_200B_202E_206B_206C_200D_202D_200F_200D_202B_202B_206C_200F_206C_202B_202D_202B_202A_206A_206B_202B_202E_202A_202A_200D_200D_202E_200C_206C_202B_206D_200F_206B_202C_206E_200F_202E(QuestStep P_0) - { - return P_0.Action; - } - - static ushort _206E_202E_202B_200D_206D_206B_206D_200F_200B_202C_202E_202B_206D_206D_206C_200C_202A_206E_200B_206B_200B_202D_200F_202A_202E_206F_202B_200F_206A_206D_202E_206C_200B_200B_200D_202D_202B_206C_200E_206A_202E(QuestStep P_0) - { - return P_0.TerritoryId; - } - - static float _202C_202A_202A_202A_200C_206C_202B_200F_202A_202E_206B_206E_202E_206D_202E_200F_200C_200F_206D_206D_200C_206C_202D_200F_202E_200B_200C_206E_206C_200E_200C_206C_200D_206D_202B_206E_206C_202A_200D_202A_202E(QuestStep P_0) - { - return P_0.CalculateActualStopDistance(); - } - - static List<Vector3> _202C_206B_200E_202D_200B_206A_202B_202B_206E_206C_202E_200E_206F_202A_200E_206D_200D_200D_206E_206B_200E_202E_206C_206B_202D_206F_202C_206C_202B_202C_206D_202D_202E_206A_206B_206E_200C_202B_206C_200D_202E(QuestStep P_0) - { - return P_0.WaypointPositions; + if (step.DataIds.Count == 0) + { + return Array.Empty<ITask>(); + } + if (!step.Action.HasValue) + { + return Array.Empty<ITask>(); + } + return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(new ClearTask(step.DataIds, step.Action.Value, step.TerritoryId, step.CalculateActualStopDistance(), step.WaypointPositions)); } } internal sealed record ClearTask(List<uint> DataIds, EAction Action, ushort TerritoryId, float StopDistance, List<Vector3> WaypointPositions) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202B_202A_200C_206D_200B_200F_200C_206D_206C_200F_206B_202E_202E_206F_202C_200E_206C_202D_206E_202E_206F_206A_200D_202E_202E_206E_200E_200E_202D_202A_206D_202C_202E_200F_206A_206A_200B_206F_206B_206F_202E(typeof(ClearTask).TypeHandle); - } - } - public bool ShouldRedoOnInterrupt() { return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(22, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2037963868)); - defaultInterpolatedStringHandler.AppendFormatted(Action); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1095822044)); - defaultInterpolatedStringHandler.AppendFormatted(DataIds.Count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1828980335)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202E_206A_202C_202D_206A_202D_202A_200E_202B_200B_202B_200F_200F_202B_202C_206A_206E_200D_206F_206B_200D_200E_206F_202C_202A_206D_202B_206D_206C_202B_206F_200F_206B_206E_206C_206E_200F_206B_206C_206E_202E(); - _206A_200E_200D_202A_202E_200C_202E_200B_202D_202D_200F_202B_202E_200D_206A_206E_206D_200F_206A_202C_206A_200D_202D_202B_202E_202C_200C_200E_206F_202E_206A_202C_206B_206A_200D_202E_200E_202D_202D_202B_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(552157557)); - _206C_206D_206F_202B_202E_200C_202D_206F_206C_200F_200E_200F_202E_202E_206D_202B_202A_200C_202B_202B_200F_200B_206C_200D_206B_206A_202D_200C_206A_200D_202B_202B_202B_200B_206D_200E_202C_206F_202D_202A_202E(builder, (object)DataIds); - _206A_200E_200D_202A_202E_200C_202E_200B_202D_202D_200F_202B_202E_200D_206A_206E_206D_200F_206A_202C_206A_200D_202D_202B_202E_202C_200C_200E_206F_202E_206A_202C_206B_206A_200D_202E_200E_202D_202D_202B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(353413506)); - _206A_200E_200D_202A_202E_200C_202E_200B_202D_202D_200F_202B_202E_200D_206A_206E_206D_200F_206A_202C_206A_200D_202D_202B_202E_202C_200C_200E_206F_202E_206A_202C_206B_206A_200D_202E_200E_202D_202D_202B_202E(builder, Action.ToString()); - _206A_200E_200D_202A_202E_200C_202E_200B_202D_202D_200F_202B_202E_200D_206A_206E_206D_200F_206A_202C_206A_200D_202D_202B_202E_202C_200C_200E_206F_202E_206A_202C_206B_206A_200D_202E_200E_202D_202D_202B_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1213099778)); - _206A_200E_200D_202A_202E_200C_202E_200B_202D_202D_200F_202B_202E_200D_206A_206E_206D_200F_206A_202C_206A_200D_202D_202B_202E_202C_200C_200E_206F_202E_206A_202C_206B_206A_200D_202E_200E_202D_202D_202B_202E(builder, TerritoryId.ToString()); - _206A_200E_200D_202A_202E_200C_202E_200B_202D_202D_200F_202B_202E_200D_206A_206E_206D_200F_206A_202C_206A_200D_202D_202B_202E_202C_200C_200E_206F_202E_206A_202C_206B_206A_200D_202E_200E_202D_202D_202B_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-925820105)); - _206A_200E_200D_202A_202E_200C_202E_200B_202D_202D_200F_202B_202E_200D_206A_206E_206D_200F_206A_202C_206A_200D_202D_202B_202E_202C_200C_200E_206F_202E_206A_202C_206B_206A_200D_202E_200E_202D_202D_202B_202E(builder, StopDistance.ToString()); - _206A_200E_200D_202A_202E_200C_202E_200B_202D_202D_200F_202B_202E_200D_206A_206E_206D_200F_206A_202C_206A_200D_202D_202B_202E_202C_200C_200E_206F_202E_206A_202C_206B_206A_200D_202E_200E_202D_202D_202B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1493071895)); - _206C_206D_206F_202B_202E_200C_202D_206F_206C_200F_200E_200F_202E_202E_206D_202B_202A_200C_202B_202B_200F_200B_206C_200D_206B_206A_202D_200C_206A_200D_202B_202B_202B_200B_206D_200E_202C_206F_202D_202A_202E(builder, (object)WaypointPositions); - return true; - } - - [CompilerGenerated] - public bool Equals(ClearTask? other) - { - int num = (((object)this == other) ? 1384445086 : 1384445077); - while (true) - { - int num2 = num; - int num3 = 1384445078; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - return false; - case 8: - return true; - case 6: - num = ((!EqualityComparer<EAction>.Default.Equals(Action, other.Action)) ? 1384445074 : 1384445078); - break; - case 0: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? 1384445074 : 1384445079); - break; - case 7: - num = 1384445077; - break; - case 3: - num = (((object)other == null) ? 1384445074 : 1384445075); - break; - case 9: - num = ((!EqualityComparer<List<uint>>.Default.Equals(DataIds, other.DataIds)) ? 1384445074 : 1384445072); - break; - case 2: - return EqualityComparer<List<Vector3>>.Default.Equals(WaypointPositions, other.WaypointPositions); - case 5: - num = ((!_206D_200C_206F_202D_206E_200F_200D_206A_202C_202A_202E_200B_206E_200F_206A_202E_206E_202B_202E_202C_200B_200F_202D_206B_206F_206C_200B_206B_202D_202C_202E_206C_200E_202B_206E_206C_202A_200C_200C_202B_202E(EqualityContract, other.EqualityContract)) ? 1384445074 : 1384445087); - break; - case 1: - num = ((!EqualityComparer<float>.Default.Equals(StopDistance, other.StopDistance)) ? 1384445074 : 1384445076); - break; - } - } - } - - bool IEquatable<ClearTask>.Equals(ClearTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202B_202A_200C_206D_200B_200F_200C_206D_206C_200F_206B_202E_202E_206F_202C_200E_206C_202D_206E_202E_206F_206A_200D_202E_202E_206E_200E_200E_202D_202A_206D_202C_202E_200F_206A_206A_200B_206F_206B_206F_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _202E_206A_202C_202D_206A_202D_202A_200E_202B_200B_202B_200F_200F_202B_202C_206A_206E_200D_206F_206B_200D_200E_206F_202C_202A_206D_202B_206D_206C_202B_206F_200F_206B_206E_206C_206E_200F_206B_206C_206E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206A_200E_200D_202A_202E_200C_202E_200B_202D_202D_200F_202B_202E_200D_206A_206E_206D_200F_206A_202C_206A_200D_202D_202B_202E_202C_200C_200E_206F_202E_206A_202C_206B_206A_200D_202E_200E_202D_202D_202B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206C_206D_206F_202B_202E_200C_202D_206F_206C_200F_200E_200F_202E_202E_206D_202B_202A_200C_202B_202B_200F_200B_206C_200D_206B_206A_202D_200C_206A_200D_202B_202B_202B_200B_206D_200E_202C_206F_202D_202A_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206D_200C_206F_202D_206E_200F_200D_206A_202C_202A_202E_200B_206E_200F_206A_202E_206E_202B_202E_202C_200B_200F_202D_206B_206F_206C_200B_206B_202D_202C_202E_206C_200E_202B_206E_206C_202A_200C_200C_202B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"ClearObjects({Action}, {DataIds.Count} types)"; } } @@ -246,60 +77,20 @@ internal static class ClearObjectsWithAction protected override bool Start() { - int num = ((_206B_200D_200C_200B_206B_200F_206E_202E_206C_200E_200E_206A_206C_202C_206B_202E_206D_200F_206D_200B_202E_200D_202D_202D_206B_200E_202B_206F_200F_206B_202D_206C_202B_206F_202D_206F_206E_206B_206B_202A_202E(clientState) == base.Task.TerritoryId) ? (-1211544197) : (-1211544198)); - while (true) + if (clientState.TerritoryType != base.Task.TerritoryId) { - int num2 = num; - int num3 = -1211544197; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0058; - case 0: - return TryFindAndMove(); - case 1: - return true; - } - continue; - IL_0058: - num = -1211544198; + return true; } + return TryFindAndMove(); } private bool IsVisitedPosition(Vector3 position) { - using (List<Vector3>.Enumerator enumerator = _visitedPositions.GetEnumerator()) + foreach (Vector3 visitedPosition in _visitedPositions) { - int num = -1511179571; - while (true) + if (Vector3.Distance(visitedPosition, position) <= 5f) { - int num2 = num; - int num3 = -1511179570; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = -1511179571; - break; - case 1: - return true; - case 2: - num = ((!(Vector3.Distance(enumerator.Current, position) <= 5f)) ? (-1511179571) : (-1511179569)); - break; - case 3: - num = (enumerator.MoveNext() ? (-1511179572) : (-1511179570)); - break; - case 0: - goto end_IL_0017; - } - continue; - end_IL_0017: - break; + return true; } } return false; @@ -307,573 +98,233 @@ internal static class ClearObjectsWithAction private IGameObject? FindNearestUnvisitedObject() { - IPlayerCharacter playerCharacter = _202E_202D_206A_206F_206E_206E_202E_206F_206E_202E_206E_202A_206F_202A_200D_202B_202C_200D_206A_200B_206F_206C_206B_200F_202E_206B_202B_202A_200B_206F_202E_202C_202A_202C_200F_202A_200D_206D_200E_206A_202E(objectTable); - int num = ((playerCharacter != null) ? 369863668 : 369863671); - ObjectKind objectKind = default(ObjectKind); - IGameObject current = default(IGameObject); - bool flag = default(bool); - float num9 = default(float); - while (true) + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + if (localPlayer == null) { - int num2 = num; - int num3 = 369863669; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0058; - case 2: - return null; - case 1: - { - IGameObject result = null; - float num7 = float.MaxValue; - IEnumerator<IGameObject> enumerator = objectTable.GetEnumerator(); - try - { - num = -809841108; - while (true) - { - int num8 = num; - num3 = -809841120; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - num = -809841108; - break; - case 8: - num = ((objectKind - 8 <= ObjectKind.BattleNpc) ? (-809841113) : (-809841120)); - break; - case 3: - num = ((!base.Task.DataIds.Contains(_200F_202E_202A_202C_202D_200C_206C_202D_202E_200F_202B_206F_206E_200D_206F_202D_206C_202B_200B_206B_206B_206E_206F_206D_206C_206D_200B_202D_200C_200D_206F_200C_202C_200F_206E_206D_206A_200B_200F_202E_202E(current))) ? (-809841108) : (-809841110)); - break; - case 10: - num = (IsVisitedPosition(_206F_206B_202E_202D_206E_206F_200C_206C_200D_200F_200C_202C_200E_202B_200D_200B_202D_206C_202D_206E_206A_200C_206F_202E_200C_200F_202A_206A_202E_206D_206C_202B_200F_200E_202C_202C_200C_202D_206E_200C_202E(current)) ? (-809841108) : (-809841116)); - break; - case 0: - num = ((objectKind != ObjectKind.HousingEventObject) ? (-809841119) : (-809841113)); - break; - case 7: - flag = true; - num = -809841111; - break; - case 5: - current = enumerator.Current; - objectKind = _206B_200C_206F_202D_200D_202E_200F_200B_200E_206A_200C_202D_206B_202A_206E_202A_206D_206C_200D_202D_200E_206C_206A_202E_206E_200B_200F_200B_202D_200C_206B_202C_200C_200D_200E_206A_200B_202A_206B_202A_202E(current); - num = ((objectKind == ObjectKind.Pc) ? (-809841113) : (-809841112)); - break; - case 1: - flag = false; - num = -809841111; - break; - case 12: - num = (_202B_200D_206A_206F_202C_202D_200C_200D_202A_200C_202C_206A_206B_202A_206E_200E_202D_206E_200C_206A_202A_200C_200E_202A_200C_202A_202D_202B_200F_200C_206F_200B_206D_200D_200B_206A_206F_202B_206C_206E_202E((IEnumerator)enumerator) ? (-809841115) : (-809841109)); - break; - case 2: - result = current; - num7 = num9; - num = -809841108; - break; - case 4: - num9 = Vector3.Distance(_206F_206B_202E_202D_206E_206F_200C_206C_200D_200F_200C_202C_200E_202B_200D_200B_202D_206C_202D_206E_206A_200C_206F_202E_200C_200F_202A_206A_202E_206D_206C_202B_200F_200E_202C_202C_200C_202D_206E_200C_202E((IGameObject)playerCharacter), _206F_206B_202E_202D_206E_206F_200C_206C_200D_200F_200C_202C_200E_202B_200D_200B_202D_206C_202D_206E_206A_200C_206F_202E_200C_200F_202A_206A_202E_206D_206C_202B_200F_200E_202C_202C_200C_202D_206E_200C_202E(current)); - num = ((!(num9 < num7)) ? (-809841108) : (-809841118)); - break; - case 9: - num = (flag ? (-809841108) : (-809841117)); - break; - case 11: - return result; - } - } - } - finally - { - num = ((enumerator == null) ? 1651401631 : 1651401630); - while (true) - { - int num10 = num; - num3 = 1651401631; - num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1651401630; - break; - case 1: - _202D_202E_206F_200D_200D_200C_200C_202E_202C_200B_206F_200B_202C_200F_202B_202C_206B_206E_206B_206C_200D_202D_202E_200E_202E_200B_200B_206C_206F_200D_206F_200D_200B_200F_202C_200F_206C_200F_202D_206F_202E((IDisposable)enumerator); - num = 1651401631; - break; - case 0: - goto end_IL_0281; - } - continue; - end_IL_0281: - break; - } - } - } - } - continue; - IL_0058: - num = 369863671; + return null; } + IGameObject result = null; + float num = float.MaxValue; + foreach (IGameObject item in objectTable) + { + ObjectKind objectKind = item.ObjectKind; + bool flag = ((objectKind == ObjectKind.Pc || objectKind - 8 <= ObjectKind.BattleNpc || objectKind == ObjectKind.HousingEventObject) ? true : false); + if (!flag && base.Task.DataIds.Contains(item.BaseId) && !IsVisitedPosition(item.Position)) + { + float num2 = Vector3.Distance(localPlayer.Position, item.Position); + if (num2 < num) + { + result = item; + num = num2; + } + } + } + return result; } private bool AnyMatchingObjectsExist() { - IEnumerator<IGameObject> enumerator = objectTable.GetEnumerator(); - try + foreach (IGameObject item in objectTable) { - int num = -1516506812; - bool flag = default(bool); - IGameObject current = default(IGameObject); - ObjectKind objectKind = default(ObjectKind); - while (true) + ObjectKind objectKind = item.ObjectKind; + bool flag = ((objectKind == ObjectKind.Pc || objectKind - 8 <= ObjectKind.BattleNpc || objectKind == ObjectKind.HousingEventObject) ? true : false); + if (!flag && base.Task.DataIds.Contains(item.BaseId)) { - int num2 = num; - int num3 = -1516506804; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - flag = false; - num = -1516506805; - break; - case 2: - current = enumerator.Current; - objectKind = _206B_200C_206F_202D_200D_202E_200F_200B_200E_206A_200C_202D_206B_202A_206E_202A_206D_206C_200D_202D_200E_206C_206A_202E_206E_200B_200F_200B_202D_200C_206B_202C_200C_200D_200E_206A_200B_202A_206B_202A_202E(current); - num = ((objectKind == ObjectKind.Pc) ? (-1516506811) : (-1516506803)); - break; - case 9: - flag = true; - num = -1516506805; - break; - case 7: - num = (flag ? (-1516506812) : (-1516506808)); - break; - case 3: - num = ((objectKind != ObjectKind.HousingEventObject) ? (-1516506806) : (-1516506811)); - break; - case 4: - num = ((!base.Task.DataIds.Contains(_200F_202E_202A_202C_202D_200C_206C_202D_202E_200F_202B_206F_206E_200D_206F_202D_206C_202B_200B_206B_206B_206E_206F_206D_206C_206D_200B_202D_200C_200D_206F_200C_202C_200F_206E_206D_206A_200B_200F_202E_202E(current))) ? (-1516506812) : (-1516506804)); - break; - case 1: - num = ((objectKind - 8 <= ObjectKind.BattleNpc) ? (-1516506811) : (-1516506801)); - break; - case 10: - num = -1516506812; - break; - case 8: - num = (_202B_200D_206A_206F_202C_202D_200C_200D_202A_200C_202C_206A_206B_202A_206E_200E_202D_206E_200C_206A_202A_200C_200E_202A_200C_202A_202D_202B_200F_200C_206F_200B_206D_200D_200B_206A_206F_202B_206C_206E_202E((IEnumerator)enumerator) ? (-1516506802) : (-1516506807)); - break; - case 0: - return true; - case 5: - goto end_IL_0018; - } - continue; - end_IL_0018: - break; - } - } - finally - { - int num = ((enumerator == null) ? 202718047 : 202718046); - while (true) - { - int num7 = num; - int num3 = 202718047; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 2: - num = 202718046; - break; - case 0: - goto end_IL_01a6; - case 1: - _202D_202E_206F_200D_200D_200C_200C_202E_202C_200B_206F_200B_202C_200F_202B_202C_206B_206E_206B_206C_200D_202D_202E_200E_202E_200B_200B_206C_206F_200D_206F_200D_200B_200F_202C_200F_206C_200F_202D_206F_202E((IDisposable)enumerator); - num = 202718047; - break; - } - continue; - end_IL_01a6: - break; + return true; } } return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool TryFindAndMove() { IGameObject gameObject = FindNearestUnvisitedObject(); - int num = ((gameObject != null) ? (-1389714717) : (-1389714719)); - while (true) + if (gameObject == null) { - int num2 = num; - int num3 = -1389714720; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _state = State.FindingObject; + long valueOrDefault = _noObjectFoundSince.GetValueOrDefault(); + if (!_noObjectFoundSince.HasValue) { - case 2: - { - long valueOrDefault = _206E_200B_206F_206F_206A_200B_202A_206C_200F_206A_206F_202A_202C_206D_206A_200B_202C_200D_202D_202A_202D_200C_206C_202A_206A_206F_200E_200F_200D_200F_200E_200F_206A_202B_206A_206C_200E_202B_202E_206E_202E(); + valueOrDefault = Environment.TickCount64; _noObjectFoundSince = valueOrDefault; - num = -1389714720; - break; - } - case 0: - return true; - case 4: - num = -1389714719; - break; - case 3: - { - _noObjectFoundSince = null; - Vector3 vector = _206F_206B_202E_202D_206E_206F_200C_206C_200D_200F_200C_202C_200E_202B_200D_200B_202D_206C_202D_206E_206A_200C_206F_202E_200C_200F_202A_206A_202E_206D_206C_202B_200F_200E_202C_202C_200C_202D_206E_200C_202E(gameObject); - _206D_202E_206F_206A_206A_202D_202D_200E_202A_200D_202B_200E_202E_206D_206C_202C_206D_206B_206C_200C_206A_206E_202D_206A_202E_200B_202D_200F_202A_206E_200D_206F_202D_200E_206D_200D_200C_200C_202E_202C_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-537067884), new object[2] - { - _200F_202E_202A_202C_202D_200C_206C_202D_202E_200F_202B_206F_206E_200D_206F_202D_206C_202B_200B_206B_206B_206E_206F_206D_206C_206D_200B_202D_200C_200D_206F_200C_202C_200F_206E_206D_206A_200B_200F_202E_202E(gameObject), - vector - }); - movementController.NavigateTo(EMovementType.Quest, _200F_202E_202A_202C_202D_200C_206C_202D_202E_200F_202B_206F_206E_200D_206F_202D_206C_202B_200B_206B_206B_206E_206F_206D_206C_206D_200B_202D_200C_200D_206F_200C_202C_200F_206E_206D_206A_200B_200F_202E_202E(gameObject), vector, fly: false, sprint: true, base.Task.StopDistance); - _state = State.MovingToObject; - return true; - } - case 1: - { - _state = State.FindingObject; - long valueOrDefault = _noObjectFoundSince.GetValueOrDefault(); - num = (_noObjectFoundSince.HasValue ? (-1389714720) : (-1389714718)); - break; - } } + return true; } + _noObjectFoundSince = null; + Vector3 position = gameObject.Position; + logger.LogDebug("Moving to object {DataId} at {Position}", gameObject.BaseId, position); + movementController.NavigateTo(EMovementType.Quest, gameObject.BaseId, position, fly: false, sprint: true, base.Task.StopDistance); + _state = State.MovingToObject; + return true; } private (Vector3 Position, int Index)? FindNextWaypoint() { - IPlayerCharacter playerCharacter = _202E_202D_206A_206F_206E_206E_202E_206F_206E_202E_206E_202A_206F_202A_200D_202B_202C_200D_206A_200B_206F_206C_206B_200F_202E_206B_202B_202A_200B_206F_202E_202C_202A_202C_200F_202A_200D_206D_200E_206A_202E(objectTable); - int num = ((playerCharacter == null) ? (-1282394500) : (-1282394504)); - int num5 = default(int); - (Vector3, int)? result = default((Vector3, int)?); - float num6 = default(float); - float num7 = default(float); - while (true) + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + if (localPlayer == null || base.Task.WaypointPositions.Count == 0) { - int num2 = num; - int num3 = -1282394500; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return null; + } + (Vector3, int)? result = null; + float num = float.MaxValue; + for (int i = 0; i < base.Task.WaypointPositions.Count; i++) + { + if (!_triedWaypointIndices.Contains(i)) { - case 9: - num = -1282394504; - break; - case 1: - num = (_triedWaypointIndices.Contains(num5) ? (-1282394497) : (-1282394503)); - break; - case 0: - return null; - case 7: - result = null; - num6 = float.MaxValue; - num5 = 0; - num = -1282394498; - break; - case 8: - return result; - case 5: - num7 = Vector3.Distance(_206F_206B_202E_202D_206E_206F_200C_206C_200D_200F_200C_202C_200E_202B_200D_200B_202D_206C_202D_206E_206A_200C_206F_202E_200C_200F_202A_206A_202E_206D_206C_202B_200F_200E_202C_202C_200C_202D_206E_200C_202E((IGameObject)playerCharacter), base.Task.WaypointPositions[num5]); - num = ((!(num7 < num6)) ? (-1282394497) : (-1282394502)); - break; - case 3: - { - int num8 = num5; - num3 = 1; - num4 = num8; - num5 = (num4 | num3) + (num4 & num3); - num = -1282394498; - break; - } - case 2: - num = ((num5 < base.Task.WaypointPositions.Count) ? (-1282394499) : (-1282394508)); - break; - case 6: - result = (base.Task.WaypointPositions[num5], num5); - num6 = num7; - num = -1282394497; - break; - case 4: - num = ((base.Task.WaypointPositions.Count != 0) ? (-1282394501) : (-1282394500)); - break; + float num2 = Vector3.Distance(localPlayer.Position, base.Task.WaypointPositions[i]); + if (num2 < num) + { + result = (base.Task.WaypointPositions[i], i); + num = num2; + } } } + return result; } - [MethodImpl(MethodImplOptions.NoInlining)] private void NavigateToNextWaypoint() { (Vector3, int)? tuple = FindNextWaypoint(); - int num = (tuple.HasValue ? (-2030731554) : (-2030731555)); - while (true) + if (!tuple.HasValue) { - int num2 = num; - int num3 = -2030731553; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + logger.LogDebug("All waypoints tried without transition, resetting"); + _triedWaypointIndices.Clear(); + tuple = FindNextWaypoint(); + if (!tuple.HasValue) { - case 0: - num = -2030731555; - break; - case 1: - _triedWaypointIndices.Add(tuple.Value.Item2); - _206D_202E_206F_206A_206A_202D_202D_200E_202A_200D_202B_200E_202E_206D_206C_202C_206D_206B_206C_200C_206A_206E_202D_206A_202E_200B_202D_200F_202A_206E_200D_206F_202D_200E_206D_200D_200C_200C_202E_202C_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-670749677), new object[2] - { - tuple.Value.Item2, - tuple.Value.Item1 - }); - movementController.NavigateTo(EMovementType.Quest, null, tuple.Value.Item1, fly: false, sprint: true, 0f); - _state = State.MovingToWaypoint; - return; - case 2: - _206D_202E_206F_206A_206A_202D_202D_200E_202A_200D_202B_200E_202E_206D_206C_202C_206D_206B_206C_200C_206A_206E_202D_206A_202E_200B_202D_200F_202A_206E_200D_206F_202D_200E_206D_200D_200C_200C_202E_202C_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1862499032), Array.Empty<object>()); - _triedWaypointIndices.Clear(); - tuple = FindNextWaypoint(); - num = (tuple.HasValue ? (-2030731554) : (-2030731556)); - break; - case 3: - { - _200C_206D_202C_202A_200E_200D_206A_202E_202A_202A_206D_200B_200B_206C_202C_206F_206D_206B_206E_200C_202E_202B_202C_206D_202D_202E_202A_202B_206E_206E_202C_206D_202C_206E_202E_206C_202C_202D_206B_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1139290965), Array.Empty<object>()); + logger.LogWarning("No waypoint positions configured, waiting for transition"); _state = State.WaitingForTransition; - IPlayerCharacter playerCharacter = _202E_202D_206A_206F_206E_206E_202E_206F_206E_202E_206E_202A_206F_202A_200D_202B_202C_200D_206A_200B_206F_206C_206B_200F_202E_206B_202B_202A_200B_206F_202E_202C_202A_202C_200F_202A_200D_206D_200E_206A_202E(objectTable); - _lastPlayerPosition = ((playerCharacter != null) ? _206F_206B_202E_202D_206E_206F_200C_206C_200D_200F_200C_202C_200E_202B_200D_200B_202D_206C_202D_206E_206A_200C_206F_202E_200C_200F_202A_206A_202E_206D_206C_202B_200F_200E_202C_202C_200C_202D_206E_200C_202E((IGameObject)playerCharacter) : Vector3.Zero); + _lastPlayerPosition = objectTable.LocalPlayer?.Position ?? Vector3.Zero; return; } - } } + _triedWaypointIndices.Add(tuple.Value.Item2); + logger.LogDebug("Moving to waypoint {Index} at {Position}", tuple.Value.Item2, tuple.Value.Item1); + movementController.NavigateTo(EMovementType.Quest, null, tuple.Value.Item1, fly: false, sprint: true, 0f); + _state = State.MovingToWaypoint; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - int num = ((_206B_200D_200C_200B_206B_200F_206E_202E_206C_200E_200E_206A_206C_202C_206B_202E_206D_200F_206D_200B_202E_200D_202D_202D_206B_200E_202B_206F_200F_206B_202D_206C_202B_206F_202D_206F_206E_206B_206B_202A_202E(clientState) == base.Task.TerritoryId) ? 1463547447 : 1463547454); - long? num5 = default(long?); - float num6 = default(float); - IPlayerCharacter playerCharacter2 = default(IPlayerCharacter); - IGameObject gameObject = default(IGameObject); - IPlayerCharacter playerCharacter = default(IPlayerCharacter); - while (true) + if (clientState.TerritoryType != base.Task.TerritoryId) { - int num2 = num; - int num3 = 1463547413; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return ETaskResult.TaskComplete; + } + switch (_state) + { + case State.FindingObject: + { + long? waypointReachedAt = _noObjectFoundSince; + if (waypointReachedAt.HasValue) { - case 28: - num = (movementController.HasBeenMovingForAtLeast(2000) ? 1463547404 : 1463547398); - break; - case 10: - TryFindAndMove(); - return ETaskResult.StillRunning; - case 32: - return ETaskResult.StillRunning; - case 40: - num = (movementController.HasBeenMovingForAtLeast(2000) ? 1463547406 : 1463547415); - break; - case 19: - return ETaskResult.StillRunning; - case 14: - return ETaskResult.StillRunning; - case 24: - return ETaskResult.StillRunning; - case 21: - _206D_202E_206F_206A_206A_202D_202D_200E_202A_200D_202B_200E_202E_206D_206C_202C_206D_206B_206C_200C_206A_206E_202D_206A_202E_200B_202D_200F_202A_206E_200D_206F_202D_200E_206D_200D_200C_200C_202E_202C_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1558405168), Array.Empty<object>()); - NavigateToNextWaypoint(); - num = 1463547419; - break; - case 41: - num = ((!AnyMatchingObjectsExist()) ? 1463547402 : 1463547443); - break; - case 31: - _206D_202E_206F_206A_206A_202D_202D_200E_202A_200D_202B_200E_202E_206D_206C_202C_206D_206B_206C_200C_206A_206E_202D_206A_202E_200B_202D_200F_202A_206E_200D_206F_202D_200E_206D_200D_200C_200C_202E_202C_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1555949411), Array.Empty<object>()); - NavigateToNextWaypoint(); - num = 1463547405; - break; - case 20: - num = 1463547440; - break; - case 7: - num5 = _noObjectFoundSince; - num = ((!num5.HasValue) ? 1463547423 : 1463547403); - break; - case 30: - { - long valueOrDefault2 = num5.GetValueOrDefault(); - long num12 = _206E_200B_206F_206F_206A_200B_202A_206C_200F_206A_206F_202A_202C_206D_206A_200B_202C_200D_202D_202A_202D_200C_206C_202A_206A_206F_200E_200F_200D_200F_200E_200F_206A_202B_206A_206C_200E_202B_202E_206E_202E(); - long num8 = 3000L; - long num9 = valueOrDefault2; - num = ((num12 <= (num9 | num8) + (num9 & num8)) ? 1463547423 : 1463547452); - break; + long valueOrDefault2 = waypointReachedAt.GetValueOrDefault(); + if (Environment.TickCount64 > valueOrDefault2 + 3000) + { + if (AnyMatchingObjectsExist()) + { + logger.LogDebug("Matching objects still exist, clearing visited positions and retrying"); + _visitedPositions.Clear(); + _noObjectFoundSince = null; + } + else + { + logger.LogDebug("No matching objects remain, moving to waypoint"); + NavigateToNextWaypoint(); + } + return ETaskResult.StillRunning; + } } - case 2: - return ETaskResult.StillRunning; - case 26: + TryFindAndMove(); + return ETaskResult.StillRunning; + } + case State.MovingToObject: + { + if (movementController.IsPathfinding || movementController.IsPathRunning) { - long valueOrDefault = num5.GetValueOrDefault(); - long num7 = _206E_200B_206F_206F_206A_200B_202A_206C_200F_206A_206F_202A_202C_206D_206A_200B_202C_200D_202D_202A_202D_200C_206C_202A_206A_206F_200E_200F_200D_200F_200E_200F_206A_202B_206A_206C_200E_202B_202E_206E_202E(); - long num8 = 3000L; - long num9 = valueOrDefault; - long num10 = num9 ^ num8; - long num11 = num9 & num8; - num = ((num7 <= num10 + (num11 + num11)) ? 1463547419 : 1463547392); - break; - } - case 5: - _206D_202E_206F_206A_206A_202D_202D_200E_202A_200D_202B_200E_202E_206D_206C_202C_206D_206B_206C_200C_206A_206E_202D_206A_202E_200B_202D_200F_202A_206E_200D_206F_202D_200E_206D_200D_200C_200C_202E_202C_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(928588385), new object[1] { num6 }); - ResetSearchState(); - _state = State.FindingObject; - return ETaskResult.StillRunning; - case 16: - return ETaskResult.StillRunning; - case 3: - return ETaskResult.StillRunning; - case 39: - num = ((FindNearestUnvisitedObject() == null) ? 1463547400 : 1463547444); - break; - case 15: - goto IL_0302; - case 9: - goto IL_0335; - case 29: - num5 = _waypointReachedAt; - num = ((!num5.HasValue) ? 1463547419 : 1463547407); - break; - case 25: - { - _206D_202E_206F_206A_206A_202D_202D_200E_202A_200D_202B_200E_202E_206D_206C_202C_206D_206B_206C_200C_206A_206E_202D_206A_202E_200B_202D_200F_202A_206E_200D_206F_202D_200E_206D_200D_200C_200C_202E_202C_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1901536067), Array.Empty<object>()); - _state = State.WaitingForTransition; - IPlayerCharacter playerCharacter3 = _202E_202D_206A_206F_206E_206E_202E_206F_206E_202E_206E_202A_206F_202A_200D_202B_202C_200D_206A_200B_206F_206C_206B_200F_202E_206B_202B_202A_200B_206F_202E_202C_202A_202C_200F_202A_200D_206D_200E_206A_202E(objectTable); - _lastPlayerPosition = ((playerCharacter3 != null) ? _206F_206B_202E_202D_206E_206F_200C_206C_200D_200F_200C_202C_200E_202B_200D_200B_202D_206C_202D_206E_206A_200C_206F_202E_200C_200F_202A_206A_202E_206D_206C_202B_200F_200E_202C_202C_200C_202D_206E_200C_202E((IGameObject)playerCharacter3) : Vector3.Zero); - _waypointReachedAt = _206E_200B_206F_206F_206A_200B_202A_206C_200F_206A_206F_202A_202C_206D_206A_200B_202C_200D_202D_202A_202D_200C_206C_202A_206A_206F_200E_200F_200D_200F_200E_200F_206A_202B_206A_206C_200E_202B_202E_206E_202E(); return ETaskResult.StillRunning; } - case 42: - num = ((playerCharacter2 == null) ? 1463547396 : 1463547394); - break; - case 18: - num = 1463547454; - break; - case 1: + if (!movementController.HasBeenMovingForAtLeast(2000)) + { return ETaskResult.StillRunning; - case 33: - _206D_202E_206F_206A_206A_202D_202D_200E_202A_200D_202B_200E_202E_206D_206C_202C_206D_206B_206C_200C_206A_206E_202D_206A_202E_200B_202D_200F_202A_206E_200D_206F_202D_200E_206D_200D_200C_200C_202E_202C_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1070649876), Array.Empty<object>()); - ResetSearchState(); - TryFindAndMove(); - return ETaskResult.StillRunning; - case 23: - num = ((!(Vector3.Distance(_206F_206B_202E_202D_206E_206F_200C_206C_200D_200F_200C_202C_200E_202B_200D_200B_202D_206C_202D_206E_206A_200C_206F_202E_200C_200F_202A_206A_202E_206D_206C_202B_200F_200E_202C_202C_200C_202D_206E_200C_202E((IGameObject)playerCharacter2), _206F_206B_202E_202D_206E_206F_200C_206C_200D_200F_200C_202C_200E_202B_200D_200B_202D_206C_202D_206E_206A_200C_206F_202E_200C_200F_202A_206A_202E_206D_206C_202B_200F_200E_202C_202C_200C_202D_206E_200C_202E(gameObject)) <= 5f)) ? 1463547396 : 1463547409); - break; - case 13: - goto IL_046d; - case 37: - return ETaskResult.TaskComplete; - case 38: - _206D_202E_206F_206A_206A_202D_202D_200E_202A_200D_202B_200E_202E_206D_206C_202C_206D_206B_206C_200C_206A_206E_202D_206A_202E_200B_202D_200F_202A_206E_200D_206F_202D_200E_206D_200D_200C_200C_202E_202C_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(913271275), Array.Empty<object>()); - _visitedPositions.Clear(); - _noObjectFoundSince = null; - num = 1463547405; - break; - case 36: - return ETaskResult.StillRunning; - case 17: - _206D_202E_206F_206A_206A_202D_202D_200E_202A_200D_202B_200E_202E_206D_206C_202C_206D_206B_206C_200C_206A_206E_202D_206A_202E_200B_202D_200F_202A_206E_200D_206F_202D_200E_206D_200D_200C_200C_202E_202C_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-342843260), Array.Empty<object>()); - TryFindAndMove(); - num = 1463547412; - break; - case 6: - num6 = Vector3.Distance(_lastPlayerPosition, _206F_206B_202E_202D_206E_206F_200C_206C_200D_200F_200C_202C_200E_202B_200D_200B_202D_206C_202D_206E_206A_200C_206F_202E_200C_200F_202A_206A_202E_206D_206C_202B_200F_200E_202C_202C_200C_202D_206E_200C_202E((IGameObject)playerCharacter)); - num = ((!(num6 > 50f)) ? 1463547442 : 1463547408); - break; - case 22: - TryFindAndMove(); - return ETaskResult.StillRunning; - case 11: - goto IL_0543; - case 27: - gameObject = FindNearestUnvisitedObject(); - playerCharacter2 = _202E_202D_206A_206F_206E_206E_202E_206F_206E_202E_206E_202A_206F_202A_200D_202B_202C_200D_206A_200B_206F_206C_206B_200F_202E_206B_202B_202A_200B_206F_202E_202C_202A_202C_200F_202A_200D_206D_200E_206A_202E(objectTable); - num = ((gameObject == null) ? 1463547396 : 1463547455); - break; - case 4: - _visitedPositions.Add(_206F_206B_202E_202D_206E_206F_200C_206C_200D_200F_200C_202C_200E_202B_200D_200B_202D_206C_202D_206E_206A_200C_206F_202E_200C_200F_202A_206A_202E_206D_206C_202B_200F_200E_202C_202C_200C_202D_206E_200C_202E(gameObject)); + } + IGameObject gameObject = FindNearestUnvisitedObject(); + IPlayerCharacter localPlayer2 = objectTable.LocalPlayer; + if (gameObject != null && localPlayer2 != null && Vector3.Distance(localPlayer2.Position, gameObject.Position) <= 5f) + { + _visitedPositions.Add(gameObject.Position); _state = State.UsingAction; - num = 1463547412; - break; - case 12: - goto IL_05c0; - case 43: - return ETaskResult.TaskComplete; - case 35: - num = ((!movementController.IsPathRunning) ? 1463547401 : 1463547397); - break; - case 34: - switch (_state) - { - case State.FindingObject: - break; - case State.UsingAction: - goto IL_0302; - case State.WaitingForTransition: - goto IL_0335; - case State.MovingToWaypoint: - goto IL_046d; - case State.MovingToObject: - goto IL_0543; - case State.WaitingAfterAction: - goto IL_05c0; - default: - goto IL_0639; - } - goto case 7; - case 8: - num = ((!movementController.IsPathRunning) ? 1463547453 : 1463547445); - break; - case 0: - { - _206D_202E_206F_206A_206A_202D_202D_200E_202A_200D_202B_200E_202E_206D_206C_202C_206D_206B_206C_200C_206A_206E_202D_206A_202E_200B_202D_200F_202A_206E_200D_206F_202D_200E_206D_200D_200C_200C_202E_202C_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1991658381), new object[1] { base.Task.Action }); - _waitUntil = _206E_200B_206F_206F_206A_200B_202A_206C_200F_206A_206F_202A_202C_206D_206A_200B_202C_200D_202D_202A_202D_200C_206C_202A_206A_206F_200E_200F_200D_200F_200E_200F_206A_202B_206A_206C_200E_202B_202E_206E_202E() + 1000; - _state = State.WaitingAfterAction; - num = 1463547441; - break; - } - IL_0639: - num = 1463547393; - break; - IL_0335: - playerCharacter = _202E_202D_206A_206F_206E_206E_202E_206F_206E_202E_206E_202A_206F_202A_200D_202B_202C_200D_206A_200B_206F_206C_206B_200F_202E_206B_202B_202A_200B_206F_202E_202C_202A_202C_200F_202A_200D_206D_200E_206A_202E(objectTable); - num = ((playerCharacter == null) ? 1463547442 : 1463547411); - break; - IL_05c0: - num = ((_206E_200B_206F_206F_206A_200B_202A_206C_200F_206A_206F_202A_202C_206D_206A_200B_202C_200D_202D_202A_202D_200C_206C_202A_206A_206F_200E_200F_200D_200F_200E_200F_206A_202B_206A_206C_200E_202B_202E_206E_202E() >= _waitUntil) ? 1463547395 : 1463547414); - break; - IL_0302: - num = ((!gameFunctions.UseAction(base.Task.Action)) ? 1463547441 : 1463547413); - break; - IL_0543: - num = (movementController.IsPathfinding ? 1463547445 : 1463547421); - break; - IL_046d: - num = (movementController.IsPathfinding ? 1463547397 : 1463547446); - break; } + else + { + logger.LogDebug("Target no longer valid at destination, finding next"); + TryFindAndMove(); + } + return ETaskResult.StillRunning; + } + case State.UsingAction: + if (gameFunctions.UseAction(base.Task.Action)) + { + logger.LogDebug("Used action {Action}", base.Task.Action); + _waitUntil = Environment.TickCount64 + 1000; + _state = State.WaitingAfterAction; + } + return ETaskResult.StillRunning; + case State.WaitingAfterAction: + if (Environment.TickCount64 < _waitUntil) + { + return ETaskResult.StillRunning; + } + TryFindAndMove(); + return ETaskResult.StillRunning; + case State.MovingToWaypoint: + if (movementController.IsPathfinding || movementController.IsPathRunning) + { + return ETaskResult.StillRunning; + } + if (!movementController.HasBeenMovingForAtLeast(2000)) + { + return ETaskResult.StillRunning; + } + logger.LogDebug("Reached waypoint, waiting for zone transition"); + _state = State.WaitingForTransition; + _lastPlayerPosition = objectTable.LocalPlayer?.Position ?? Vector3.Zero; + _waypointReachedAt = Environment.TickCount64; + return ETaskResult.StillRunning; + case State.WaitingForTransition: + { + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + if (localPlayer != null) + { + float num = Vector3.Distance(_lastPlayerPosition, localPlayer.Position); + if (num > 50f) + { + logger.LogDebug("Zone transition detected (moved {Distance}), resuming plant clearing", num); + ResetSearchState(); + _state = State.FindingObject; + return ETaskResult.StillRunning; + } + } + if (FindNearestUnvisitedObject() != null) + { + logger.LogDebug("New objects detected, resuming plant clearing"); + ResetSearchState(); + TryFindAndMove(); + return ETaskResult.StillRunning; + } + long? waypointReachedAt = _waypointReachedAt; + if (waypointReachedAt.HasValue) + { + long valueOrDefault = waypointReachedAt.GetValueOrDefault(); + if (Environment.TickCount64 > valueOrDefault + 3000) + { + logger.LogDebug("No transition at this waypoint, trying next"); + NavigateToNextWaypoint(); + } + } + return ETaskResult.StillRunning; + } + default: + return ETaskResult.TaskComplete; } } @@ -888,55 +339,5 @@ internal static class ClearObjectsWithAction { return false; } - - static uint _206B_200D_200C_200B_206B_200F_206E_202E_206C_200E_200E_206A_206C_202C_206B_202E_206D_200F_206D_200B_202E_200D_202D_202D_206B_200E_202B_206F_200F_206B_202D_206C_202B_206F_202D_206F_206E_206B_206B_202A_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static IPlayerCharacter _202E_202D_206A_206F_206E_206E_202E_206F_206E_202E_206E_202A_206F_202A_200D_202B_202C_200D_206A_200B_206F_206C_206B_200F_202E_206B_202B_202A_200B_206F_202E_202C_202A_202C_200F_202A_200D_206D_200E_206A_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static ObjectKind _206B_200C_206F_202D_200D_202E_200F_200B_200E_206A_200C_202D_206B_202A_206E_202A_206D_206C_200D_202D_200E_206C_206A_202E_206E_200B_200F_200B_202D_200C_206B_202C_200C_200D_200E_206A_200B_202A_206B_202A_202E(IGameObject P_0) - { - return P_0.ObjectKind; - } - - static uint _200F_202E_202A_202C_202D_200C_206C_202D_202E_200F_202B_206F_206E_200D_206F_202D_206C_202B_200B_206B_206B_206E_206F_206D_206C_206D_200B_202D_200C_200D_206F_200C_202C_200F_206E_206D_206A_200B_200F_202E_202E(IGameObject P_0) - { - return P_0.BaseId; - } - - static Vector3 _206F_206B_202E_202D_206E_206F_200C_206C_200D_200F_200C_202C_200E_202B_200D_200B_202D_206C_202D_206E_206A_200C_206F_202E_200C_200F_202A_206A_202E_206D_206C_202B_200F_200E_202C_202C_200C_202D_206E_200C_202E(IGameObject P_0) - { - return P_0.Position; - } - - static bool _202B_200D_206A_206F_202C_202D_200C_200D_202A_200C_202C_206A_206B_202A_206E_200E_202D_206E_200C_206A_202A_200C_200E_202A_200C_202A_202D_202B_200F_200C_206F_200B_206D_200D_200B_206A_206F_202B_206C_206E_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202D_202E_206F_200D_200D_200C_200C_202E_202C_200B_206F_200B_202C_200F_202B_202C_206B_206E_206B_206C_200D_202D_202E_200E_202E_200B_200B_206C_206F_200D_206F_200D_200B_200F_202C_200F_206C_200F_202D_206F_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static long _206E_200B_206F_206F_206A_200B_202A_206C_200F_206A_206F_202A_202C_206D_206A_200B_202C_200D_202D_202A_202D_200C_206C_202A_206A_206F_200E_200F_200D_200F_200E_200F_206A_202B_206A_206C_200E_202B_202E_206E_202E() - { - return Environment.TickCount64; - } - - static void _206D_202E_206F_206A_206A_202D_202D_200E_202A_200D_202B_200E_202E_206D_206C_202C_206D_206B_206C_200C_206A_206E_202D_206A_202E_200B_202D_200F_202A_206E_200D_206F_202D_200E_206D_200D_200C_200C_202E_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _200C_206D_202C_202A_200E_200D_206A_202E_202A_202A_206D_200B_200B_206C_202C_206F_206D_206B_206E_200C_202E_202B_202C_206D_202D_202E_202A_202B_206E_206E_202C_206D_202C_206E_202E_206C_202C_202D_206B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/Combat.cs b/Questionable/Questionable.Controller.Steps.Interactions/Combat.cs index e02e4e8..90c3b7a 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/Combat.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/Combat.cs @@ -1,11 +1,6 @@ using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; -using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Questionable.Controller.Steps.Common; using Questionable.Controller.Steps.Shared; using Questionable.Controller.Utils; @@ -19,912 +14,104 @@ internal static class Combat { internal sealed class Factory(GameFunctions gameFunctions) : ITaskFactory { - [CompilerGenerated] - private sealed class _003CCreateAllTasks_003Ed__2 : IEnumerable<ITask>, IEnumerable, IEnumerator<ITask>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ITask _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - private QuestStep step; - - public QuestStep _003C_003E3__step; - - public Factory _003C_003E4__this; - - private Quest quest; - - public Quest _003C_003E3__quest; - - private QuestSequence sequence; - - public QuestSequence _003C_003E3__sequence; - - ITask IEnumerator<ITask>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CCreateAllTasks_003Ed__2(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _200B_206D_206A_202A_206A_200C_202C_202D_200D_202B_202D_202C_200D_206A_200E_206E_206E_202A_200C_206F_206E_206E_206E_200D_200B_206F_200E_206A_206B_202A_200F_202B_206F_200E_202A_202B_202E_206B_202A_206F_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - int num = _003C_003E1__state; - Factory factory = _003C_003E4__this; - int num2; - ushort? num8 = default(ushort?); - EEnemySpawnType? eEnemySpawnType = default(EEnemySpawnType?); - ushort? mountId = default(ushort?); - switch (num) - { - default: - num2 = 1179923930; - goto IL_0084; - case 21: - _003C_003E1__state = -1; - num2 = 1179923917; - goto IL_0084; - case 6: - goto IL_022c; - case 8: - goto IL_0241; - case 16: - goto IL_0291; - case 11: - goto IL_02e5; - case 12: - goto IL_02f8; - case 5: - goto IL_030b; - case 23: - goto IL_031e; - case 22: - goto IL_0331; - case 1: - goto IL_03b6; - case 20: - goto IL_040b; - case 13: - goto IL_041e; - case 7: - goto IL_0485; - case 2: - goto IL_050d; - case 18: - goto IL_0796; - case 3: - goto IL_088c; - case 9: - goto IL_08ae; - case 17: - goto IL_0959; - case 14: - goto IL_096c; - case 19: - goto IL_099a; - case 4: - goto IL_09c8; - case 24: - goto IL_0a80; - case 15: - goto IL_0a93; - case 0: - goto IL_0b4b; - case 10: - break; - IL_0084: - while (true) - { - int num3 = num2; - int num4 = 1179923945; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - int? obj; - int? obj2; - switch (num6 - (num7 + num7)) - { - case 20: - goto IL_01a2; - case 23: - goto end_IL_0084; - case 35: - obj = num8.GetValueOrDefault(); - goto IL_01f2; - case 25: - return false; - case 60: - goto IL_022c; - case 49: - return false; - case 18: - goto IL_0241; - case 8: - _003C_003E2__current = new Emote.UseOnObject(_200F_200F_202C_200E_200D_200F_206D_202D_200D_202B_206B_206F_206D_200D_206F_200C_202E_202D_206A_206C_206A_206B_202A_206E_206E_206D_206C_206F_200F_206D_202C_202A_202B_206D_206D_206E_206E_200B_206B_202E_202E(step).Value, _202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(step).Value); - _003C_003E1__state = 17; - return true; - case 61: - goto IL_0291; - case 31: - _003C_003E2__current = new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1L)); - _003C_003E1__state = 19; - return true; - case 5: - goto IL_02e5; - case 4: - goto IL_02f8; - case 13: - goto IL_030b; - case 19: - goto IL_031e; - case 41: - goto IL_0331; - case 21: - _206E_206B_200B_206C_202C_206B_206C_202A_200C_206C_200C_200E_200E_206D_202E_200F_202B_200F_206D_202C_200E_202E_206A_200F_202C_206F_200D_202E_202D_200F_200D_200C_202D_206F_202B_200E_206A_202E_200B_202E_202E((object)_200E_206E_200B_206B_206C_202D_202C_206C_202A_206D_200F_206E_206A_200E_200F_202D_202A_206C_200F_206F_202B_200E_206B_202D_200D_206D_200F_206B_200B_200E_206A_202A_202D_200C_202D_206A_202A_206C_200F_202A_202E(step), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2143064378)); - _003C_003E2__current = new UseItem.UseOnPosition(quest.Id, _200E_206E_200B_206B_206C_202D_202C_206C_202A_206D_200F_206E_206A_200E_200F_202D_202A_206C_200F_206F_202B_200E_206B_202D_200D_206D_200F_206B_200B_200E_206A_202A_202D_200C_202D_206A_202A_206C_200F_202A_202E(step).Value, _202A_202B_206D_200F_202C_200E_202C_206A_202D_202C_202A_200D_200E_206E_200C_206C_206A_200E_202C_206D_202A_202E_202A_200F_206D_206B_206E_206F_206A_202A_202C_206A_200E_200D_206F_206C_202C_202D_202D_202A_202E(step).Value, _206A_202E_200B_206A_200B_202B_200C_206D_206D_206B_206F_200D_206E_202A_202E_200B_206C_202E_202A_202E_206E_206A_206F_206E_200B_202B_200F_206F_202D_202C_202A_202D_200F_200F_200C_202E_202E_202C_200D_200F_202E(step), StartingCombat: true); - _003C_003E1__state = 7; - return true; - case 9: - goto IL_03b6; - case 0: - _003C_003E2__current = CreateTask(quest, sequence, step); - _003C_003E1__state = 24; - return true; - case 33: - obj2 = null; - goto IL_05c8; - case 38: - goto IL_040b; - case 12: - goto IL_041e; - case 22: - _003C_003E2__current = new Action.UseOnObject(_202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(step).Value, null, _206D_206C_202C_202D_206F_200E_202E_206D_200F_200E_206D_200E_202A_200C_202A_206B_206F_202C_200D_202B_202C_200F_202E_202A_200D_200C_206B_200E_206D_202A_200E_202B_200F_206B_200B_200C_202B_206C_206E_200E_202E(step).Value, null); - _003C_003E1__state = 13; - return true; - case 46: - goto IL_0485; - case 29: - goto IL_0498; - case 54: - { - string text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1557910661); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(19, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2133040643)); - defaultInterpolatedStringHandler.AppendFormatted(_206E_200E_202E_206B_206B_200C_200F_200F_206F_206B_200E_202D_206A_206C_206E_206C_206A_206E_202A_206C_200D_202B_202B_206D_200B_200B_206B_200E_200E_200E_202B_202A_206A_200C_206A_206E_202E_202C_206E_200E_202E(step)); - throw _200B_200E_206F_200B_202B_200B_206B_202B_206B_206B_200E_202B_202A_202D_206A_206E_200F_206C_200E_202E_206C_202B_206B_202C_200C_206E_200C_202E_206F_202A_206C_206B_206C_202C_202E_206C_202A_200B_206B_202B_202E(text, defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 14: - goto IL_050d; - case 3: - goto IL_0520; - case 55: - _003C_003E2__current = new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1L)); - _003C_003E1__state = 21; - return true; - case 51: - return false; - case 59: - _003C_003E2__current = new Emote.UseOnSelf(_200F_200F_202C_200E_200D_200F_206D_202D_200D_202B_206B_206F_206D_200D_206F_200C_202E_202D_206A_206C_206A_206B_202A_206E_206E_206D_206C_206F_200F_206D_202C_202A_202B_206D_206D_206E_206E_200B_206B_202E_202E(step).Value); - _003C_003E1__state = 18; - return true; - case 28: - _003C_003E2__current = new WaitAtStart.WaitDelay(TimeSpan.FromSeconds(_200F_202B_206A_200C_200F_206E_202A_200C_202D_202C_202D_206B_202E_206F_200E_206F_200F_200E_206D_202E_200D_206A_200B_202C_202E_206E_200F_200B_206F_200B_206E_200C_206E_206B_202A_202B_202C_202C_200D_206D_202E(step).Value)); - _003C_003E1__state = 2; - return true; - case 50: - obj2 = num8.GetValueOrDefault(); - goto IL_05c8; - case 42: - _003C_003E2__current = new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1L)); - _003C_003E1__state = 10; - return true; - case 24: - goto IL_061c; - case 15: - _003C_003E2__current = new UseItem.UseOnObject(quest.Id, _202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(step).Value, _202A_202B_206D_200F_202C_200E_202C_206A_202D_202C_202A_200D_200E_206E_200C_206C_206A_200E_202C_206D_202A_202E_202A_200F_206D_206B_206E_206F_206A_202A_202C_206A_200E_200D_206F_206C_202C_202D_202D_202A_202E(step).Value, _206A_202E_200B_206A_200B_202B_200C_206D_206D_206B_206F_200D_206E_202A_202E_200B_206C_202E_202A_202E_206E_206A_206F_206E_200B_202B_200F_206F_202D_202C_202A_202D_200F_200F_200C_202E_202E_202C_200D_200F_202E(step), StartingCombat: true); - _003C_003E1__state = 8; - return true; - case 6: - goto IL_06a3; - case 40: - num2 = 1179923935; - break; - case 37: - goto IL_0729; - case 47: - _003C_003E2__current = new Mount.UnmountTask(); - _003C_003E1__state = 12; - return true; - case 11: - goto IL_0765; - case 44: - goto IL_0796; - case 58: - goto IL_07a9; - case 27: - switch (eEnemySpawnType.GetValueOrDefault()) - { - case EEnemySpawnType.FinishCombatIfAny: - break; - case EEnemySpawnType.AutoOnEnterArea: - goto IL_0498; - case EEnemySpawnType.AfterEmote: - goto IL_061c; - case EEnemySpawnType.AfterInteraction: - goto IL_06a3; - case EEnemySpawnType.OverworldEnemies: - case EEnemySpawnType.FateEnemies: - goto IL_0729; - default: - goto IL_080c; - case EEnemySpawnType.AfterAction: - goto IL_0818; - case EEnemySpawnType.AfterItemUse: - goto IL_09f5; - } - goto case 0; - case 30: - goto IL_0818; - case 1: - goto IL_088c; - case 39: - goto IL_08ae; - case 17: - _003C_003E2__current = new UseItem.UseOnSelf(quest.Id, _202A_202B_206D_200F_202C_200E_202C_206A_202D_202C_202A_200D_200E_206E_200C_206C_206A_200E_202C_206D_202A_202E_202A_200F_206D_206B_206E_206F_206A_202A_202C_206A_200E_200D_206F_206C_202C_202D_202D_202A_202E(step).Value, _206A_202E_200B_206A_200B_202B_200C_206D_206D_206B_206F_200D_206E_202A_202E_200B_206C_202E_202A_202E_206E_206A_206F_206E_200B_202B_200F_206F_202D_202C_202A_202D_200F_200F_200C_202E_202E_202C_200D_200F_202E(step), StartingCombat: true); - _003C_003E1__state = 9; - return true; - case 36: - _003C_003E2__current = CreateTask(quest, sequence, step); - _003C_003E1__state = 22; - return true; - case 52: - goto IL_0928; - case 62: - goto IL_0959; - case 32: - goto IL_096c; - case 7: - goto IL_099a; - case 2: - goto IL_09c8; - case 10: - goto IL_09f5; - case 53: - _003C_003E2__current = new Mount.UnmountTask(); - _003C_003E1__state = 1; - return true; - case 43: - obj = null; - goto IL_01f2; - case 45: - num2 = 1179923930; - break; - case 16: - goto IL_0a80; - case 57: - goto IL_0a93; - case 48: - goto IL_0aa6; - case 34: - _003C_003E2__current = new UseItem.UseOnGround(quest.Id, _202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(step).Value, _202A_202B_206D_200F_202C_200E_202C_206A_202D_202C_202A_200D_200E_206E_200C_206C_206A_200E_202C_206D_202A_202E_202A_200F_206D_206B_206E_206F_206A_202A_202C_206A_200E_200D_206F_206C_202C_202D_202D_202A_202E(step).Value, _206A_202E_200B_206A_200B_202B_200C_206D_206D_206B_206F_200D_206E_202A_202E_200B_206C_202E_202A_202E_206E_206A_206F_206E_200B_202B_200F_206F_202D_202C_202A_202D_200F_200F_200C_202E_202E_202C_200D_200F_202E(step), StartingCombat: true); - _003C_003E1__state = 6; - return true; - case 26: - goto IL_0b4b; - case 56: - goto end_IL_000f; - IL_080c: - num2 = 1179923905; - break; - IL_0729: - _003C_003E2__current = CreateTask(quest, sequence, step); - _003C_003E1__state = 23; - return true; - IL_06a3: - _206E_206B_200B_206C_202C_206B_206C_202A_200C_206C_200C_200E_200E_206D_202E_200F_202B_200F_206D_202C_200E_202E_206A_200F_202C_206F_200D_202E_202D_200F_200D_200C_202D_206F_202B_200E_206A_202E_200B_202E_202E((object)_202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(step), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-118248788)); - _003C_003E2__current = new Interact.Task(_202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(step).Value, quest, EInteractionType.None, SkipMarkerCheck: true); - _003C_003E1__state = 3; - return true; - IL_061c: - _206E_206B_200B_206C_202C_206B_206C_202A_200C_206C_200C_200E_200E_206D_202E_200F_202B_200F_206D_202C_200E_202E_206A_200F_202C_206F_200D_202E_202D_200F_200D_200C_202D_206F_202B_200E_206A_202E_200B_202E_202E((object)_200F_200F_202C_200E_200D_200F_206D_202D_200D_202B_206B_206F_206D_200D_206F_200C_202E_202D_206A_206C_206A_206B_202A_206E_206E_206D_206C_206F_200F_206D_202C_202A_202B_206D_206D_206E_206E_200B_206B_202E_202E(step), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-837937279)); - _003C_003E2__current = new Mount.UnmountTask(); - _003C_003E1__state = 16; - return true; - IL_05c8: - num2 = ((obj2 == 147) ? 1179923923 : 1179923932); - break; - IL_01f2: - num2 = ((obj == 128) ? 1179923923 : 1179923946); - break; - } - continue; - IL_0aa6: - _206E_206B_200B_206C_202C_206B_206C_202A_200C_206C_200C_200E_200E_206D_202E_200F_202B_200F_206D_202C_200E_202E_206A_200F_202C_206F_200D_202E_202D_200F_200D_200C_202D_206F_202B_200E_206A_202E_200B_202E_202E((object)_206E_200E_202E_206B_206B_200C_200F_200F_206F_206B_200E_202D_206A_206C_206E_206C_206A_206E_202A_206C_200D_202B_202B_206D_200B_200B_206B_200E_200E_200E_202B_202A_206A_200C_206A_206E_202E_202C_206E_200E_202E(step), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1048645435)); - mountId = factory.gameFunctions.GetMountId(); - num8 = mountId; - num2 = (num8.HasValue ? 1179923914 : 1179923906); - continue; - IL_0818: - _206E_206B_200B_206C_202C_206B_206C_202A_200C_206C_200C_200E_200E_206D_202E_200F_202B_200F_206D_202C_200E_202E_206A_200F_202C_206F_200D_202E_202D_200F_200D_200C_202D_206F_202B_200E_206A_202E_200B_202E_202E((object)_202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(step), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-751408309)); - _206E_206B_200B_206C_202C_206B_206C_202A_200C_206C_200C_200E_200E_206D_202E_200F_202B_200F_206D_202C_200E_202E_206A_200F_202C_206F_200D_202E_202D_200F_200D_200C_202D_206F_202B_200E_206A_202E_200B_202E_202E((object)_206D_206C_202C_202D_206F_200E_202E_206D_200F_200E_206D_200E_202A_200C_202A_206B_206F_202C_200D_202B_202C_200F_202E_202A_200D_200C_206B_200E_206D_202A_200E_202B_200F_206B_200B_200C_202B_206C_206E_200E_202E(step), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-791963835)); - num2 = (_206A_206B_202A_200C_202A_206C_202D_206D_202A_206F_206E_200D_200C_202E_200C_206D_200F_202E_206F_206F_200F_202D_206D_200F_202D_200F_200C_206F_202B_206B_206B_206F_200E_206F_202D_206D_206F_200D_200C_206B_202E(_206D_206C_202C_202D_206F_200E_202E_206D_200F_200E_206D_200E_202A_200C_202A_206B_206F_202C_200D_202B_202C_200F_202E_202A_200D_200C_206B_200E_206D_202A_200E_202B_200F_206B_200B_200C_202B_206C_206E_200E_202E(step).Value) ? 1179923967 : 1179923910); - continue; - IL_0765: - num2 = ((!_202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(step).HasValue) ? 1179923960 : 1179923942); - continue; - IL_0928: - eEnemySpawnType = _206E_200E_202E_206B_206B_200C_200F_200F_206F_206B_200E_202D_206A_206C_206E_206C_206A_206E_202A_206C_200D_202B_202B_206D_200B_200B_206B_200E_200E_200E_202B_202A_206A_200C_206A_206E_202E_202C_206E_200E_202E(step); - num2 = ((!eEnemySpawnType.HasValue) ? 1179923935 : 1179923954); - continue; - IL_01a2: - num2 = ((!_202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(step).HasValue) ? 1179923964 : 1179923915); - continue; - IL_0520: - num8 = mountId; - num2 = (num8.HasValue ? 1179923931 : 1179923912); - continue; - IL_09f5: - _206E_206B_200B_206C_202C_206B_206C_202A_200C_206C_200C_200E_200E_206D_202E_200F_202B_200F_206D_202C_200E_202E_206A_200F_202C_206F_200D_202E_202D_200F_200D_200C_202D_206F_202B_200E_206A_202E_200B_202E_202E((object)_202A_202B_206D_200F_202C_200E_202C_206A_202D_202C_202A_200D_200E_206E_200C_206C_206A_200E_202C_206D_202A_202E_202A_200F_206D_206B_206E_206F_206A_202A_202C_206A_200E_200D_206F_206C_202C_202D_202D_202A_202E(step), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2049264615)); - num2 = ((_200F_206C_206D_206F_206E_200D_202A_206E_200F_202A_202A_200D_202E_200C_202A_202E_206B_200C_206B_200C_200C_206C_200C_206B_200D_202D_202C_202A_200B_200D_202A_200B_202B_200B_202C_200C_202A_200B_206A_202E(step) != true) ? 1179923938 : 1179923965); - continue; - IL_0498: - num2 = (_200F_202B_206A_200C_200F_206E_202A_200C_202D_202C_202D_206B_202E_206F_200E_206F_200F_200E_206D_202E_200D_206A_200B_202C_202E_206E_200F_200B_206F_200B_206E_200C_206E_206B_202A_202B_202C_202C_200D_206D_202E(step).HasValue ? 1179923917 : 1179923934); - continue; - IL_07a9: - num2 = ((!_200F_202B_206A_200C_200F_206E_202A_200C_202D_202C_202D_206B_202E_206F_200E_206F_200F_200E_206D_202E_200D_206A_200B_202C_202E_206E_200F_200B_206F_200B_206E_200C_206E_206B_202A_202B_202C_202C_200D_206D_202E(step).HasValue) ? 1179923933 : 1179923957); - continue; - end_IL_0084: - break; - } - goto case 21; - IL_0b4b: - _003C_003E1__state = -1; - num2 = ((_200D_200C_206C_206D_200D_202C_202B_200F_206C_200B_202B_202B_202D_202D_200C_202E_206F_202A_202E_200B_200D_206B_206E_206D_202B_206F_202A_206D_206B_200E_206D_206E_206B_202B_206E_200F_200D_206B_200D_200F_202E(step) == EInteractionType.Combat) ? 1179923929 : 1179923928); - goto IL_0084; - IL_0241: - _003C_003E1__state = -1; - num2 = 1179923907; - goto IL_0084; - IL_0a93: - _003C_003E1__state = -1; - num2 = 1179923952; - goto IL_0084; - IL_0a80: - _003C_003E1__state = -1; - num2 = 1179923952; - goto IL_0084; - IL_09c8: - _003C_003E1__state = -1; - _003C_003E2__current = CreateTask(quest, sequence, step); - _003C_003E1__state = 5; - return true; - IL_099a: - _003C_003E1__state = -1; - _003C_003E2__current = CreateTask(quest, sequence, step); - _003C_003E1__state = 20; - return true; - IL_096c: - _003C_003E1__state = -1; - _003C_003E2__current = CreateTask(quest, sequence, step); - _003C_003E1__state = 15; - return true; - IL_0959: - _003C_003E1__state = -1; - num2 = 1179923958; - goto IL_0084; - IL_08ae: - _003C_003E1__state = -1; - num2 = 1179923907; - goto IL_0084; - IL_088c: - _003C_003E1__state = -1; - _003C_003E2__current = new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1L)); - _003C_003E1__state = 4; - return true; - IL_0796: - _003C_003E1__state = -1; - num2 = 1179923958; - goto IL_0084; - IL_050d: - _003C_003E1__state = -1; - num2 = 1179923933; - goto IL_0084; - IL_0485: - _003C_003E1__state = -1; - num2 = 1179923907; - goto IL_0084; - IL_041e: - _003C_003E1__state = -1; - _003C_003E2__current = new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1L)); - _003C_003E1__state = 14; - return true; - IL_040b: - _003C_003E1__state = -1; - num2 = 1179923952; - goto IL_0084; - IL_03b6: - _003C_003E1__state = -1; - num2 = 1179923923; - goto IL_0084; - IL_0331: - _003C_003E1__state = -1; - num2 = 1179923952; - goto IL_0084; - IL_031e: - _003C_003E1__state = -1; - num2 = 1179923952; - goto IL_0084; - IL_030b: - _003C_003E1__state = -1; - num2 = 1179923952; - goto IL_0084; - IL_02f8: - _003C_003E1__state = -1; - num2 = 1179923967; - goto IL_0084; - IL_02e5: - _003C_003E1__state = -1; - num2 = 1179923952; - goto IL_0084; - IL_0291: - _003C_003E1__state = -1; - num2 = ((!_202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(step).HasValue) ? 1179923922 : 1179923937); - goto IL_0084; - IL_022c: - _003C_003E1__state = -1; - num2 = 1179923907; - goto IL_0084; - end_IL_000f: - break; - } - _003C_003E1__state = -1; - _003C_003E2__current = CreateTask(quest, sequence, step); - _003C_003E1__state = 11; - return true; - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _202D_200C_200D_200B_202A_200B_200E_202E_206C_200C_202A_206A_206D_206C_200E_200E_202B_206F_200F_206B_206E_206E_200E_206C_202D_200B_202D_206C_200F_200B_200C_200E_200D_202A_200D_200F_206F_200B_202C_200D_202E(); - } - - [DebuggerHidden] - IEnumerator<ITask> IEnumerable<ITask>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? 1504087443 : 1504087444); - _003CCreateAllTasks_003Ed__2 _003CCreateAllTasks_003Ed__ = default(_003CCreateAllTasks_003Ed__2); - while (true) - { - int num2 = num; - int num3 = 1504087447; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1504087444; - break; - case 1: - _003C_003E1__state = 0; - _003CCreateAllTasks_003Ed__ = this; - num = 1504087445; - break; - case 4: - _003CCreateAllTasks_003Ed__ = new _003CCreateAllTasks_003Ed__2(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = 1504087445; - break; - case 2: - _003CCreateAllTasks_003Ed__.quest = _003C_003E3__quest; - _003CCreateAllTasks_003Ed__.sequence = _003C_003E3__sequence; - _003CCreateAllTasks_003Ed__.step = _003C_003E3__step; - return _003CCreateAllTasks_003Ed__; - case 3: - num = ((_003C_003El__initialThreadId != _200B_206D_206A_202A_206A_200C_202C_202D_200D_202B_202D_202C_200D_206A_200E_206E_206E_202A_200C_206F_206E_206E_206E_200D_200B_206F_200E_206A_206B_202A_200F_202B_206F_200E_202A_202B_202E_206B_202A_206F_202E()) ? 1504087443 : 1504087446); - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ITask>)this).GetEnumerator(); - } - - static int _200B_206D_206A_202A_206A_200C_202C_202D_200D_202B_202D_202C_200D_206A_200E_206E_206E_202A_200C_206F_206E_206E_206E_200D_200B_206F_200E_206A_206B_202A_200F_202B_206F_200E_202A_202B_202E_206B_202A_206F_202E() - { - return Environment.CurrentManagedThreadId; - } - - static EInteractionType _200D_200C_206C_206D_200D_202C_202B_200F_206C_200B_202B_202B_202D_202D_200C_202E_206F_202A_202E_200B_200D_206B_206E_206D_202B_206F_202A_206D_206B_200E_206D_206E_206B_202B_206E_200F_200D_206B_200D_200F_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static EEnemySpawnType? _206E_200E_202E_206B_206B_200C_200F_200F_206F_206B_200E_202D_206A_206C_206E_206C_206A_206E_202A_206C_200D_202B_202B_206D_200B_200B_206B_200E_200E_200E_202B_202A_206A_200C_206A_206E_202E_202C_206E_200E_202E(QuestStep P_0) - { - return P_0.EnemySpawnType; - } - - static void _206E_206B_200B_206C_202C_206B_206C_202A_200C_206C_200C_200E_200E_206D_202E_200F_202B_200F_206D_202C_200E_202E_206A_200F_202C_206F_200D_202E_202D_200F_200D_200C_202D_206F_202B_200E_206A_202E_200B_202E_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static float? _200F_202B_206A_200C_200F_206E_202A_200C_202D_202C_202D_206B_202E_206F_200E_206F_200F_200E_206D_202E_200D_206A_200B_202C_202E_206E_200F_200B_206F_200B_206E_200C_206E_206B_202A_202B_202C_202C_200D_206D_202E(QuestStep P_0) - { - return P_0.CombatDelaySecondsAtStart; - } - - static uint? _202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(QuestStep P_0) - { - return P_0.DataId; - } - - static uint? _202A_202B_206D_200F_202C_200E_202C_206A_202D_202C_202A_200D_200E_206E_200C_206C_206A_200E_202C_206D_202A_202E_202A_200F_206D_206B_206E_206F_206A_202A_202C_206A_200E_200D_206F_206C_202C_202D_202D_202A_202E(QuestStep P_0) - { - return P_0.ItemId; - } - - static bool? _200F_206C_206D_206F_206E_200D_202A_206E_200F_202A_202A_200D_202E_200C_202A_202E_206B_200C_206B_200C_200C_206C_200C_206B_200D_202D_202C_202A_200B_200D_202A_200B_202B_200B_202C_200C_202A_200B_206A_202E(QuestStep P_0) - { - return P_0.GroundTarget; - } - - static List<QuestWorkValue> _206A_202E_200B_206A_200B_202B_200C_206D_206D_206B_206F_200D_206E_202A_202E_200B_206C_202E_202A_202E_206E_206A_206F_206E_200B_202B_200F_206F_202D_202C_202A_202D_200F_200F_200C_202E_202E_202C_200D_200F_202E(QuestStep P_0) - { - return P_0.CompletionQuestVariablesFlags; - } - - static Vector3? _200E_206E_200B_206B_206C_202D_202C_206C_202A_206D_200F_206E_206A_200E_200F_202D_202A_206C_200F_206F_202B_200E_206B_202D_200D_206D_200F_206B_200B_200E_206A_202A_202D_200C_202D_206A_202A_206C_200F_202A_202E(QuestStep P_0) - { - return P_0.Position; - } - - static EAction? _206D_206C_202C_202D_206F_200E_202E_206D_200F_200E_206D_200E_202A_200C_202A_206B_206F_202C_200D_202B_202C_200F_202E_202A_200D_200C_206B_200E_206D_202A_200E_202B_200F_206B_200B_200C_202B_206C_206E_200E_202E(QuestStep P_0) - { - return P_0.Action; - } - - static bool _206A_206B_202A_200C_202A_206C_202D_206D_202A_206F_206E_200D_200C_202E_200C_206D_200F_202E_206F_206F_200F_202D_206D_200F_202D_200F_200C_206F_202B_206B_206B_206F_200E_206F_202D_206D_206F_200D_200C_206B_202E(EAction P_0) - { - return P_0.RequiresMount(); - } - - static EEmote? _200F_200F_202C_200E_200D_200F_206D_202D_200D_202B_206B_206F_206D_200D_206F_200C_202E_202D_206A_206C_206A_206B_202A_206E_206E_206D_206C_206F_200F_206D_202C_202A_202B_206D_206D_206E_206E_200B_206B_202E_202E(QuestStep P_0) - { - return P_0.Emote; - } - - static ArgumentOutOfRangeException _200B_200E_206F_200B_202B_200B_206B_202B_206B_206B_200E_202B_202A_202D_206A_206E_200F_206C_200E_202E_206C_202B_206B_202C_200C_206E_200C_202E_206F_202A_206C_206B_206C_202C_202E_206C_202A_200B_206B_202B_202E(string P_0, string P_1) - { - return new ArgumentOutOfRangeException(P_0, P_1); - } - - static NotSupportedException _202D_200C_200D_200B_202A_200B_200E_202E_206C_200C_202A_206A_206D_206C_200E_200E_202B_206F_200F_206B_206E_206E_200E_206C_202D_200B_202D_206C_200F_200B_200C_200E_200D_202A_200D_200F_206F_200B_202C_200D_202E() - { - return new NotSupportedException(); - } - } - public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - ushort? num7 = default(ushort?); - ushort? mountId = default(ushort?); - EEnemySpawnType? eEnemySpawnType = default(EEnemySpawnType?); - while (true) + if (step.InteractionType != EInteractionType.Combat) { - int num = ((_003CCreateAllTasks_003Ed__2._200D_200C_206C_206D_200D_202C_202B_200F_206C_200B_202B_202B_202D_202D_200C_202E_206F_202A_202E_200B_200D_206B_206E_206D_202B_206F_202A_206D_206B_200E_206D_206E_206B_202B_206E_200F_200D_206B_200D_200F_202E(step) == EInteractionType.Combat) ? 1179923929 : 1179923928); - while (true) + yield break; + } + ArgumentNullException.ThrowIfNull(step.EnemySpawnType, "step.EnemySpawnType"); + ushort? mountId = gameFunctions.GetMountId(); + if (mountId != 128 && mountId != 147) + { + yield return new Mount.UnmountTask(); + } + if (step.CombatDelaySecondsAtStart.HasValue) + { + yield return new WaitAtStart.WaitDelay(TimeSpan.FromSeconds(step.CombatDelaySecondsAtStart.Value)); + } + switch (step.EnemySpawnType) + { + case EEnemySpawnType.AfterInteraction: + ArgumentNullException.ThrowIfNull(step.DataId, "step.DataId"); + yield return new Interact.Task(step.DataId.Value, quest, EInteractionType.None, SkipMarkerCheck: true); + yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1L)); + yield return CreateTask(quest, sequence, step); + break; + case EEnemySpawnType.AfterItemUse: + ArgumentNullException.ThrowIfNull(step.ItemId, "step.ItemId"); + if (step.GroundTarget == true) { - int num2 = num; - int num3 = 1179923945; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int? obj; - int? obj2; - switch (num5 - (num6 + num6)) + if (step.DataId.HasValue) { - default: - continue; - case 20: - num = ((!_003CCreateAllTasks_003Ed__2._202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(step).HasValue) ? 1179923964 : 1179923915); - continue; - case 23: - num = 1179923917; - continue; - case 35: - obj = num7.GetValueOrDefault(); - goto IL_01f2; - case 25: - yield break; - case 60: - num = 1179923907; - continue; - case 49: - yield break; - case 18: - num = 1179923907; - continue; - case 8: - yield return new Emote.UseOnObject(_003CCreateAllTasks_003Ed__2._200F_200F_202C_200E_200D_200F_206D_202D_200D_202B_206B_206F_206D_200D_206F_200C_202E_202D_206A_206C_206A_206B_202A_206E_206E_206D_206C_206F_200F_206D_202C_202A_202B_206D_206D_206E_206E_200B_206B_202E_202E(step).Value, _003CCreateAllTasks_003Ed__2._202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(step).Value); - goto case 62; - case 61: - num = ((!_003CCreateAllTasks_003Ed__2._202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(step).HasValue) ? 1179923922 : 1179923937); - continue; - case 31: - yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1L)); - goto case 7; - case 5: - num = 1179923952; - continue; - case 4: - num = 1179923967; - continue; - case 13: - num = 1179923952; - continue; - case 19: - num = 1179923952; - continue; - case 41: - num = 1179923952; - continue; - case 21: - _003CCreateAllTasks_003Ed__2._206E_206B_200B_206C_202C_206B_206C_202A_200C_206C_200C_200E_200E_206D_202E_200F_202B_200F_206D_202C_200E_202E_206A_200F_202C_206F_200D_202E_202D_200F_200D_200C_202D_206F_202B_200E_206A_202E_200B_202E_202E((object)_003CCreateAllTasks_003Ed__2._200E_206E_200B_206B_206C_202D_202C_206C_202A_206D_200F_206E_206A_200E_200F_202D_202A_206C_200F_206F_202B_200E_206B_202D_200D_206D_200F_206B_200B_200E_206A_202A_202D_200C_202D_206A_202A_206C_200F_202A_202E(step), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2143064378)); - yield return new UseItem.UseOnPosition(quest.Id, _003CCreateAllTasks_003Ed__2._200E_206E_200B_206B_206C_202D_202C_206C_202A_206D_200F_206E_206A_200E_200F_202D_202A_206C_200F_206F_202B_200E_206B_202D_200D_206D_200F_206B_200B_200E_206A_202A_202D_200C_202D_206A_202A_206C_200F_202A_202E(step).Value, _003CCreateAllTasks_003Ed__2._202A_202B_206D_200F_202C_200E_202C_206A_202D_202C_202A_200D_200E_206E_200C_206C_206A_200E_202C_206D_202A_202E_202A_200F_206D_206B_206E_206F_206A_202A_202C_206A_200E_200D_206F_206C_202C_202D_202D_202A_202E(step).Value, _003CCreateAllTasks_003Ed__2._206A_202E_200B_206A_200B_202B_200C_206D_206D_206B_206F_200D_206E_202A_202E_200B_206C_202E_202A_202E_206E_206A_206F_206E_200B_202B_200F_206F_202D_202C_202A_202D_200F_200F_200C_202E_202E_202C_200D_200F_202E(step), StartingCombat: true); - goto case 46; - case 9: - num = 1179923923; - continue; - case 0: - yield return CreateTask(quest, sequence, step); - goto case 16; - case 33: - obj2 = null; - goto IL_05c8; - case 38: - num = 1179923952; - continue; - case 12: - yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1L)); - goto case 32; - case 22: - yield return new Action.UseOnObject(_003CCreateAllTasks_003Ed__2._202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(step).Value, null, _003CCreateAllTasks_003Ed__2._206D_206C_202C_202D_206F_200E_202E_206D_200F_200E_206D_200E_202A_200C_202A_206B_206F_202C_200D_202B_202C_200F_202E_202A_200D_200C_206B_200E_206D_202A_200E_202B_200F_206B_200B_200C_202B_206C_206E_200E_202E(step).Value, null); - goto case 12; - case 46: - num = 1179923907; - continue; - case 29: - goto IL_0498; - case 54: + yield return new UseItem.UseOnGround(quest.Id, step.DataId.Value, step.ItemId.Value, step.CompletionQuestVariablesFlags, StartingCombat: true); + } + else { - string text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1557910661); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(19, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2133040643)); - defaultInterpolatedStringHandler.AppendFormatted(_003CCreateAllTasks_003Ed__2._206E_200E_202E_206B_206B_200C_200F_200F_206F_206B_200E_202D_206A_206C_206E_206C_206A_206E_202A_206C_200D_202B_202B_206D_200B_200B_206B_200E_200E_200E_202B_202A_206A_200C_206A_206E_202E_202C_206E_200E_202E(step)); - throw _003CCreateAllTasks_003Ed__2._200B_200E_206F_200B_202B_200B_206B_202B_206B_206B_200E_202B_202A_202D_206A_206E_200F_206C_200E_202E_206C_202B_206B_202C_200C_206E_200C_202E_206F_202A_206C_206B_206C_202C_202E_206C_202A_200B_206B_202B_202E(text, defaultInterpolatedStringHandler.ToStringAndClear()); + ArgumentNullException.ThrowIfNull(step.Position, "step.Position"); + yield return new UseItem.UseOnPosition(quest.Id, step.Position.Value, step.ItemId.Value, step.CompletionQuestVariablesFlags, StartingCombat: true); } - case 14: - num = 1179923933; - continue; - case 3: - num7 = mountId; - num = (num7.HasValue ? 1179923931 : 1179923912); - continue; - case 55: - yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1L)); - goto case 23; - case 51: - yield break; - case 59: - yield return new Emote.UseOnSelf(_003CCreateAllTasks_003Ed__2._200F_200F_202C_200E_200D_200F_206D_202D_200D_202B_206B_206F_206D_200D_206F_200C_202E_202D_206A_206C_206A_206B_202A_206E_206E_206D_206C_206F_200F_206D_202C_202A_202B_206D_206D_206E_206E_200B_206B_202E_202E(step).Value); - goto case 44; - case 28: - yield return new WaitAtStart.WaitDelay(TimeSpan.FromSeconds(_003CCreateAllTasks_003Ed__2._200F_202B_206A_200C_200F_206E_202A_200C_202D_202C_202D_206B_202E_206F_200E_206F_200F_200E_206D_202E_200D_206A_200B_202C_202E_206E_200F_200B_206F_200B_206E_200C_206E_206B_202A_202B_202C_202C_200D_206D_202E(step).Value)); - goto case 14; - case 50: - obj2 = num7.GetValueOrDefault(); - goto IL_05c8; - case 42: - yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1L)); - goto case 56; - case 24: - goto IL_061c; - case 15: - yield return new UseItem.UseOnObject(quest.Id, _003CCreateAllTasks_003Ed__2._202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(step).Value, _003CCreateAllTasks_003Ed__2._202A_202B_206D_200F_202C_200E_202C_206A_202D_202C_202A_200D_200E_206E_200C_206C_206A_200E_202C_206D_202A_202E_202A_200F_206D_206B_206E_206F_206A_202A_202C_206A_200E_200D_206F_206C_202C_202D_202D_202A_202E(step).Value, _003CCreateAllTasks_003Ed__2._206A_202E_200B_206A_200B_202B_200C_206D_206D_206B_206F_200D_206E_202A_202E_200B_206C_202E_202A_202E_206E_206A_206F_206E_200B_202B_200F_206F_202D_202C_202A_202D_200F_200F_200C_202E_202E_202C_200D_200F_202E(step), StartingCombat: true); - goto case 18; - case 6: - goto IL_06a3; - case 40: - num = 1179923935; - continue; - case 37: - goto IL_0729; - case 47: - yield return new Mount.UnmountTask(); - goto case 4; - case 11: - num = ((!_003CCreateAllTasks_003Ed__2._202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(step).HasValue) ? 1179923960 : 1179923942); - continue; - case 44: - num = 1179923958; - continue; - case 58: - num = ((!_003CCreateAllTasks_003Ed__2._200F_202B_206A_200C_200F_206E_202A_200C_202D_202C_202D_206B_202E_206F_200E_206F_200F_200E_206D_202E_200D_206A_200B_202C_202E_206E_200F_200B_206F_200B_206E_200C_206E_206B_202A_202B_202C_202C_200D_206D_202E(step).HasValue) ? 1179923933 : 1179923957); - continue; - case 27: - switch (eEnemySpawnType.GetValueOrDefault()) - { - case EEnemySpawnType.FinishCombatIfAny: - break; - case EEnemySpawnType.AutoOnEnterArea: - goto IL_0498; - case EEnemySpawnType.AfterEmote: - goto IL_061c; - case EEnemySpawnType.AfterInteraction: - goto IL_06a3; - case EEnemySpawnType.OverworldEnemies: - case EEnemySpawnType.FateEnemies: - goto IL_0729; - default: - goto IL_080c; - case EEnemySpawnType.AfterAction: - goto IL_0818; - case EEnemySpawnType.AfterItemUse: - goto IL_09f5; - } - goto case 0; - case 30: - goto IL_0818; - case 1: - yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1L)); - goto case 2; - case 39: - num = 1179923907; - continue; - case 17: - yield return new UseItem.UseOnSelf(quest.Id, _003CCreateAllTasks_003Ed__2._202A_202B_206D_200F_202C_200E_202C_206A_202D_202C_202A_200D_200E_206E_200C_206C_206A_200E_202C_206D_202A_202E_202A_200F_206D_206B_206E_206F_206A_202A_202C_206A_200E_200D_206F_206C_202C_202D_202D_202A_202E(step).Value, _003CCreateAllTasks_003Ed__2._206A_202E_200B_206A_200B_202B_200C_206D_206D_206B_206F_200D_206E_202A_202E_200B_206C_202E_202A_202E_206E_206A_206F_206E_200B_202B_200F_206F_202D_202C_202A_202D_200F_200F_200C_202E_202E_202C_200D_200F_202E(step), StartingCombat: true); - goto case 39; - case 36: - yield return CreateTask(quest, sequence, step); - goto case 41; - case 52: - eEnemySpawnType = _003CCreateAllTasks_003Ed__2._206E_200E_202E_206B_206B_200C_200F_200F_206F_206B_200E_202D_206A_206C_206E_206C_206A_206E_202A_206C_200D_202B_202B_206D_200B_200B_206B_200E_200E_200E_202B_202A_206A_200C_206A_206E_202E_202C_206E_200E_202E(step); - num = ((!eEnemySpawnType.HasValue) ? 1179923935 : 1179923954); - continue; - case 62: - num = 1179923958; - continue; - case 32: - yield return CreateTask(quest, sequence, step); - goto case 57; - case 7: - yield return CreateTask(quest, sequence, step); - goto case 38; - case 2: - yield return CreateTask(quest, sequence, step); - goto case 13; - case 10: - goto IL_09f5; - case 53: - yield return new Mount.UnmountTask(); - goto case 9; - case 43: - obj = null; - goto IL_01f2; - case 45: - num = 1179923930; - continue; - case 16: - num = 1179923952; - continue; - case 57: - num = 1179923952; - continue; - case 48: - _003CCreateAllTasks_003Ed__2._206E_206B_200B_206C_202C_206B_206C_202A_200C_206C_200C_200E_200E_206D_202E_200F_202B_200F_206D_202C_200E_202E_206A_200F_202C_206F_200D_202E_202D_200F_200D_200C_202D_206F_202B_200E_206A_202E_200B_202E_202E((object)_003CCreateAllTasks_003Ed__2._206E_200E_202E_206B_206B_200C_200F_200F_206F_206B_200E_202D_206A_206C_206E_206C_206A_206E_202A_206C_200D_202B_202B_206D_200B_200B_206B_200E_200E_200E_202B_202A_206A_200C_206A_206E_202E_202C_206E_200E_202E(step), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1048645435)); - mountId = gameFunctions.GetMountId(); - num7 = mountId; - num = (num7.HasValue ? 1179923914 : 1179923906); - continue; - case 34: - yield return new UseItem.UseOnGround(quest.Id, _003CCreateAllTasks_003Ed__2._202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(step).Value, _003CCreateAllTasks_003Ed__2._202A_202B_206D_200F_202C_200E_202C_206A_202D_202C_202A_200D_200E_206E_200C_206C_206A_200E_202C_206D_202A_202E_202A_200F_206D_206B_206E_206F_206A_202A_202C_206A_200E_200D_206F_206C_202C_202D_202D_202A_202E(step).Value, _003CCreateAllTasks_003Ed__2._206A_202E_200B_206A_200B_202B_200C_206D_206D_206B_206F_200D_206E_202A_202E_200B_206C_202E_202A_202E_206E_206A_206F_206E_200B_202B_200F_206F_202D_202C_202A_202D_200F_200F_200C_202E_202E_202C_200D_200F_202E(step), StartingCombat: true); - goto case 60; - case 26: - break; - case 56: - { - yield return CreateTask(quest, sequence, step); - goto case 5; - } - IL_09f5: - _003CCreateAllTasks_003Ed__2._206E_206B_200B_206C_202C_206B_206C_202A_200C_206C_200C_200E_200E_206D_202E_200F_202B_200F_206D_202C_200E_202E_206A_200F_202C_206F_200D_202E_202D_200F_200D_200C_202D_206F_202B_200E_206A_202E_200B_202E_202E((object)_003CCreateAllTasks_003Ed__2._202A_202B_206D_200F_202C_200E_202C_206A_202D_202C_202A_200D_200E_206E_200C_206C_206A_200E_202C_206D_202A_202E_202A_200F_206D_206B_206E_206F_206A_202A_202C_206A_200E_200D_206F_206C_202C_202D_202D_202A_202E(step), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2049264615)); - num = ((_003CCreateAllTasks_003Ed__2._200F_206C_206D_206F_206E_200D_202A_206E_200F_202A_202A_200D_202E_200C_202A_202E_206B_200C_206B_200C_200C_206C_200C_206B_200D_202D_202C_202A_200B_200D_202A_200B_202B_200B_202C_200C_202A_200B_206A_202E(step) != true) ? 1179923938 : 1179923965); - continue; - IL_0818: - _003CCreateAllTasks_003Ed__2._206E_206B_200B_206C_202C_206B_206C_202A_200C_206C_200C_200E_200E_206D_202E_200F_202B_200F_206D_202C_200E_202E_206A_200F_202C_206F_200D_202E_202D_200F_200D_200C_202D_206F_202B_200E_206A_202E_200B_202E_202E((object)_003CCreateAllTasks_003Ed__2._202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(step), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-751408309)); - _003CCreateAllTasks_003Ed__2._206E_206B_200B_206C_202C_206B_206C_202A_200C_206C_200C_200E_200E_206D_202E_200F_202B_200F_206D_202C_200E_202E_206A_200F_202C_206F_200D_202E_202D_200F_200D_200C_202D_206F_202B_200E_206A_202E_200B_202E_202E((object)_003CCreateAllTasks_003Ed__2._206D_206C_202C_202D_206F_200E_202E_206D_200F_200E_206D_200E_202A_200C_202A_206B_206F_202C_200D_202B_202C_200F_202E_202A_200D_200C_206B_200E_206D_202A_200E_202B_200F_206B_200B_200C_202B_206C_206E_200E_202E(step), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-791963835)); - num = (_003CCreateAllTasks_003Ed__2._206A_206B_202A_200C_202A_206C_202D_206D_202A_206F_206E_200D_200C_202E_200C_206D_200F_202E_206F_206F_200F_202D_206D_200F_202D_200F_200C_206F_202B_206B_206B_206F_200E_206F_202D_206D_206F_200D_200C_206B_202E(_003CCreateAllTasks_003Ed__2._206D_206C_202C_202D_206F_200E_202E_206D_200F_200E_206D_200E_202A_200C_202A_206B_206F_202C_200D_202B_202C_200F_202E_202A_200D_200C_206B_200E_206D_202A_200E_202B_200F_206B_200B_200C_202B_206C_206E_200E_202E(step).Value) ? 1179923967 : 1179923910); - continue; - IL_080c: - num = 1179923905; - continue; - IL_0729: - yield return CreateTask(quest, sequence, step); - goto case 19; - IL_06a3: - _003CCreateAllTasks_003Ed__2._206E_206B_200B_206C_202C_206B_206C_202A_200C_206C_200C_200E_200E_206D_202E_200F_202B_200F_206D_202C_200E_202E_206A_200F_202C_206F_200D_202E_202D_200F_200D_200C_202D_206F_202B_200E_206A_202E_200B_202E_202E((object)_003CCreateAllTasks_003Ed__2._202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(step), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-118248788)); - yield return new Interact.Task(_003CCreateAllTasks_003Ed__2._202E_206A_202C_206D_206C_200B_206E_202A_202B_206C_200E_202B_206A_200C_206F_200F_202E_206D_202E_202B_206E_206D_206D_202E_202B_200B_200B_200D_206F_202D_206D_202C_202E_206C_200E_206B_202E_200E_200E_202D_202E(step).Value, quest, EInteractionType.None, SkipMarkerCheck: true); - goto case 1; - IL_061c: - _003CCreateAllTasks_003Ed__2._206E_206B_200B_206C_202C_206B_206C_202A_200C_206C_200C_200E_200E_206D_202E_200F_202B_200F_206D_202C_200E_202E_206A_200F_202C_206F_200D_202E_202D_200F_200D_200C_202D_206F_202B_200E_206A_202E_200B_202E_202E((object)_003CCreateAllTasks_003Ed__2._200F_200F_202C_200E_200D_200F_206D_202D_200D_202B_206B_206F_206D_200D_206F_200C_202E_202D_206A_206C_206A_206B_202A_206E_206E_206D_206C_206F_200F_206D_202C_202A_202B_206D_206D_206E_206E_200B_206B_202E_202E(step), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-837937279)); - yield return new Mount.UnmountTask(); - goto case 61; - IL_0498: - num = (_003CCreateAllTasks_003Ed__2._200F_202B_206A_200C_200F_206E_202A_200C_202D_202C_202D_206B_202E_206F_200E_206F_200F_200E_206D_202E_200D_206A_200B_202C_202E_206E_200F_200B_206F_200B_206E_200C_206E_206B_202A_202B_202C_202C_200D_206D_202E(step).HasValue ? 1179923917 : 1179923934); - continue; - IL_05c8: - num = ((obj2 == 147) ? 1179923923 : 1179923932); - continue; - IL_01f2: - num = ((obj == 128) ? 1179923923 : 1179923946); - continue; - } - break; } + else if (step.DataId.HasValue) + { + yield return new UseItem.UseOnObject(quest.Id, step.DataId.Value, step.ItemId.Value, step.CompletionQuestVariablesFlags, StartingCombat: true); + } + else + { + yield return new UseItem.UseOnSelf(quest.Id, step.ItemId.Value, step.CompletionQuestVariablesFlags, StartingCombat: true); + } + yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1L)); + yield return CreateTask(quest, sequence, step); + break; + case EEnemySpawnType.AfterAction: + ArgumentNullException.ThrowIfNull(step.DataId, "step.DataId"); + ArgumentNullException.ThrowIfNull(step.Action, "step.Action"); + if (!step.Action.Value.RequiresMount()) + { + yield return new Mount.UnmountTask(); + } + yield return new Action.UseOnObject(step.DataId.Value, null, step.Action.Value, null); + yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1L)); + yield return CreateTask(quest, sequence, step); + break; + case EEnemySpawnType.AfterEmote: + ArgumentNullException.ThrowIfNull(step.Emote, "step.Emote"); + yield return new Mount.UnmountTask(); + if (step.DataId.HasValue) + { + yield return new Emote.UseOnObject(step.Emote.Value, step.DataId.Value); + } + else + { + yield return new Emote.UseOnSelf(step.Emote.Value); + } + yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1L)); + yield return CreateTask(quest, sequence, step); + break; + case EEnemySpawnType.AutoOnEnterArea: + if (!step.CombatDelaySecondsAtStart.HasValue) + { + yield return new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(1L)); + } + yield return CreateTask(quest, sequence, step); + break; + case EEnemySpawnType.OverworldEnemies: + case EEnemySpawnType.FateEnemies: + yield return CreateTask(quest, sequence, step); + break; + case EEnemySpawnType.FinishCombatIfAny: + yield return CreateTask(quest, sequence, step); + break; + default: + throw new ArgumentOutOfRangeException("step", $"Unknown spawn type {step.EnemySpawnType}"); } } - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); - } - - [MethodImpl(MethodImplOptions.NoInlining)] private static Task CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { - _202D_202A_206C_202C_200B_202E_202C_206F_206D_206C_202B_202E_206F_202D_200B_206F_206C_206E_202E_200D_200D_200B_202D_206A_202C_202B_200C_206E_200C_206B_202C_200E_206B_206B_206D_200E_202C_202B_206B_202B_202E((object)_206F_202C_200E_202C_200E_206E_200F_206A_200F_200C_200F_200B_202E_200C_206F_206D_206F_200D_206A_202A_202B_206D_206D_206E_202B_200B_202D_202A_202B_206E_200E_200B_200F_206D_200F_200E_200C_206F_206A_206E_202E(step), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1048645435)); - bool isLastStep = _200D_200B_202B_200F_206B_206E_200E_202C_206A_200E_202E_206F_200D_202C_200B_200E_206C_200F_202C_202E_200F_206B_206E_200E_206C_202A_206E_206B_200C_200F_202E_206F_202B_200C_202A_200C_202C_200C_200D_202D_202E(sequence).Last() == step; - return CreateTask(quest.Id, _206A_200D_200C_202A_200B_202B_202D_206F_206F_200C_200E_206B_206B_206A_200E_200C_202B_202D_206D_206B_202C_206E_200F_202D_202E_202E_206C_206B_206A_206B_206C_206B_206F_206F_206A_200D_202E_200D_206E_206E_202E(sequence), isLastStep, _206F_202C_200E_202C_200E_206E_200F_206A_200F_200C_200F_200B_202E_200C_206F_206D_206F_200D_206A_202A_202B_206D_206D_206E_202B_200B_202D_202A_202B_206E_200E_200B_200F_206D_200F_200E_200C_206F_206A_206E_202E(step).Value, _206A_206E_206D_206F_206D_200B_202B_202A_206C_206F_200B_206C_200E_200B_202A_206E_200E_200C_206E_202D_200D_202E_200B_206B_200C_200F_202B_206A_202D_206A_206E_206D_206B_200D_206B_202E_200B_200B_200E_206D_202E(step), _206B_202A_206B_206B_206F_206C_206C_206E_206D_206F_206A_206B_202D_206F_200C_202E_200B_202C_202D_200F_206E_206B_206B_206C_202D_202C_200E_206A_200D_200C_202A_200D_206D_206C_200D_202C_200E_202E_206B_202A_202E(step), _206B_200F_200E_206F_206E_206C_206D_200F_202A_202C_200F_206A_200F_206D_200C_200B_200C_200F_202C_202C_202E_202D_200F_202B_200C_202C_200C_200C_206D_200E_206B_206D_206D_200D_200C_206D_202A_206E_202D_206D_202E(step), _200D_202E_200E_200B_202E_202A_206A_206A_206C_206A_206C_206F_202E_202B_200E_206C_200F_202C_200F_202A_200C_206F_206D_202D_202D_200E_200D_200F_206C_202C_202A_200C_206E_206A_200B_200E_200B_202A_206F_200D_202E(step)); + ArgumentNullException.ThrowIfNull(step.EnemySpawnType, "step.EnemySpawnType"); + bool isLastStep = sequence.Steps.Last() == step; + return CreateTask(quest.Id, sequence.Sequence, isLastStep, step.EnemySpawnType.Value, step.KillEnemyDataIds, step.CompletionQuestVariablesFlags, step.ComplexCombatData, step.CombatItemUse); } internal static Task CreateTask(ElementId? elementId, int sequence, bool isLastStep, EEnemySpawnType enemySpawnType, IList<uint> killEnemyDataIds, IList<QuestWorkValue?> completionQuestVariablesFlags, IList<ComplexCombatData> complexCombatData, CombatItemUse? combatItemUse) @@ -940,211 +127,30 @@ internal static class Combat CombatItemUse = combatItemUse }, completionQuestVariablesFlags, isLastStep); } - - static EEnemySpawnType? _206F_202C_200E_202C_200E_206E_200F_206A_200F_200C_200F_200B_202E_200C_206F_206D_206F_200D_206A_202A_202B_206D_206D_206E_202B_200B_202D_202A_202B_206E_200E_200B_200F_206D_200F_200E_200C_206F_206A_206E_202E(QuestStep P_0) - { - return P_0.EnemySpawnType; - } - - static void _202D_202A_206C_202C_200B_202E_202C_206F_206D_206C_202B_202E_206F_202D_200B_206F_206C_206E_202E_200D_200D_200B_202D_206A_202C_202B_200C_206E_200C_206B_202C_200E_206B_206B_206D_200E_202C_202B_206B_202B_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static List<QuestStep> _200D_200B_202B_200F_206B_206E_200E_202C_206A_200E_202E_206F_200D_202C_200B_200E_206C_200F_202C_202E_200F_206B_206E_200E_206C_202A_206E_206B_200C_200F_202E_206F_202B_200C_202A_200C_202C_200C_200D_202D_202E(QuestSequence P_0) - { - return P_0.Steps; - } - - static byte _206A_200D_200C_202A_200B_202B_202D_206F_206F_200C_200E_206B_206B_206A_200E_200C_202B_202D_206D_206B_202C_206E_200F_202D_202E_202E_206C_206B_206A_206B_206C_206B_206F_206F_206A_200D_202E_200D_206E_206E_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - - static List<uint> _206A_206E_206D_206F_206D_200B_202B_202A_206C_206F_200B_206C_200E_200B_202A_206E_200E_200C_206E_202D_200D_202E_200B_206B_200C_200F_202B_206A_202D_206A_206E_206D_206B_200D_206B_202E_200B_200B_200E_206D_202E(QuestStep P_0) - { - return P_0.KillEnemyDataIds; - } - - static List<QuestWorkValue> _206B_202A_206B_206B_206F_206C_206C_206E_206D_206F_206A_206B_202D_206F_200C_202E_200B_202C_202D_200F_206E_206B_206B_206C_202D_202C_200E_206A_200D_200C_202A_200D_206D_206C_200D_202C_200E_202E_206B_202A_202E(QuestStep P_0) - { - return P_0.CompletionQuestVariablesFlags; - } - - static List<ComplexCombatData> _206B_200F_200E_206F_206E_206C_206D_200F_202A_202C_200F_206A_200F_206D_200C_200B_200C_200F_202C_202C_202E_202D_200F_202B_200C_202C_200C_200C_206D_200E_206B_206D_206D_200D_200C_206D_202A_206E_202D_206D_202E(QuestStep P_0) - { - return P_0.ComplexCombatData; - } - - static CombatItemUse _200D_202E_200E_200B_202E_202A_206A_206A_206C_206A_206C_206F_202E_202B_200E_206C_200F_202C_200F_202A_200C_206F_206D_202D_202D_200E_200D_200F_206C_202C_202A_200C_206E_206A_200B_200E_200B_202A_206F_200D_202E(QuestStep P_0) - { - return P_0.CombatItemUse; - } } internal sealed record Task(CombatController.CombatData CombatData, IList<QuestWorkValue?> CompletionQuestVariableFlags, bool IsLastStep) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202E_206D_202D_202D_200F_202B_206E_202E_202E_206E_202C_200C_200D_200F_202E_202A_202C_206D_206C_206D_200F_206F_206C_202B_200B_200C_202C_202A_200D_206D_206A_206F_200D_200C_206E_202D_206B_206D_202E_206A_202E(typeof(Task).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - int num = ((CombatData.SpawnType != EEnemySpawnType.FinishCombatIfAny) ? 1574649423 : 1574649422); - while (true) + if (CombatData.SpawnType == EEnemySpawnType.FinishCombatIfAny) { - int num2 = num; - int num3 = 1574649423; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = ((!QuestWorkUtils.HasCompletionFlags(CompletionQuestVariableFlags)) ? 1574649420 : 1574649418); - break; - case 2: - return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1564114709); - case 3: - num = ((!IsLastStep) ? 1574649421 : 1574649419); - break; - case 6: - num = 1574649422; - break; - case 5: - return global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1359402350); - case 4: - return global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-37145119); - case 1: - return global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-421063306); - } + return "HandleCombat(wait: not in combat, optional)"; } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206E_202B_200E_206A_206F_206E_206E_200D_206B_202C_200B_206E_206B_206E_202B_200D_202C_200C_200D_206E_200F_200B_200D_206E_206C_202A_200B_200E_206F_206E_202D_206F_200F_200E_200D_206A_206D_206B_206C_200E_202E(); - _206B_206A_206D_200C_200F_200D_202B_202B_206A_200B_200F_200F_200B_206B_200D_200D_202D_202E_206F_202D_200F_202D_206E_200C_202A_202E_202C_206A_206C_206F_206E_202B_200F_206B_206A_200D_202D_200F_200B_202B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1165165478)); - _206B_200B_202B_206C_206C_200E_200C_206A_200C_206D_206B_206B_200E_200B_206E_202B_200E_200C_202B_202D_206E_202E_206F_206F_206D_200F_202C_206C_206C_200F_206F_206D_202D_200B_202C_200D_200E_200D_206C_206D_202E(builder, (object)CombatData); - _206B_206A_206D_200C_200F_200D_202B_202B_206A_200B_200F_200F_200B_206B_200D_200D_202D_202E_206F_202D_200F_202D_206E_200C_202A_202E_202C_206A_206C_206F_206E_202B_200F_206B_206A_200D_202D_200F_200B_202B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(179293478)); - _206B_200B_202B_206C_206C_200E_200C_206A_200C_206D_206B_206B_200E_200B_206E_202B_200E_200C_202B_202D_206E_202E_206F_206F_206D_200F_202C_206C_206C_200F_206F_206D_202D_200B_202C_200D_200E_200D_206C_206D_202E(builder, (object)CompletionQuestVariableFlags); - _206B_206A_206D_200C_200F_200D_202B_202B_206A_200B_200F_200F_200B_206B_200D_200D_202D_202E_206F_202D_200F_202D_206E_200C_202A_202E_202C_206A_206C_206F_206E_202B_200F_206B_206A_200D_202D_200F_200B_202B_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1123217053)); - _206B_206A_206D_200C_200F_200D_202B_202B_206A_200B_200F_200F_200B_206B_200D_200D_202D_202E_206F_202D_200F_202D_206E_200C_202A_202E_202C_206A_206C_206F_206E_202B_200F_206B_206A_200D_202D_200F_200B_202B_202E(builder, IsLastStep.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? 2136882810 : 2136882808); - while (true) + if (QuestWorkUtils.HasCompletionFlags(CompletionQuestVariableFlags)) { - int num2 = num; - int num3 = 2136882812; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 2136882808; - break; - case 4: - num = (((object)other == null) ? 2136882813 : 2136882811); - break; - case 1: - return false; - case 7: - num = ((!_200C_206B_206F_206B_202C_206B_206D_200F_202E_200F_200C_202E_202D_200C_202B_200F_202E_202B_200B_200C_202E_202C_200F_206A_202B_202A_202D_206F_206B_206A_206D_202A_202D_206E_206D_202B_202A_200D_206A_200E_202E(EqualityContract, other.EqualityContract)) ? 2136882813 : 2136882814); - break; - case 3: - return EqualityComparer<bool>.Default.Equals(IsLastStep, other.IsLastStep); - case 2: - num = ((!EqualityComparer<CombatController.CombatData>.Default.Equals(CombatData, other.CombatData)) ? 2136882813 : 2136882809); - break; - case 6: - return true; - case 5: - num = ((!EqualityComparer<IList<QuestWorkValue>>.Default.Equals(CompletionQuestVariableFlags, other.CompletionQuestVariableFlags)) ? 2136882813 : 2136882815); - break; - } + return "HandleCombat(wait: QW flags)"; } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202E_206D_202D_202D_200F_202B_206E_202E_202E_206E_202C_200C_200D_200F_202E_202A_202C_206D_206C_206D_200F_206F_206C_202B_200B_200C_202C_202A_200D_206D_206A_206F_200D_200C_206E_202D_206B_206D_202E_206A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206E_202B_200E_206A_206F_206E_206E_200D_206B_202C_200B_206E_206B_206E_202B_200D_202C_200C_200D_206E_200F_200B_200D_206E_206C_202A_200B_200E_206F_206E_202D_206F_200F_200E_200D_206A_206D_206B_206C_200E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206B_206A_206D_200C_200F_200D_202B_202B_206A_200B_200F_200F_200B_206B_200D_200D_202D_202E_206F_202D_200F_202D_206E_200C_202A_202E_202C_206A_206C_206F_206E_202B_200F_206B_206A_200D_202D_200F_200B_202B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206B_200B_202B_206C_206C_200E_200C_206A_200C_206D_206B_206B_200E_200B_206E_202B_200E_200C_202B_202D_206E_202E_206F_206F_206D_200F_202C_206C_206C_200F_206F_206D_202D_200B_202C_200D_200E_200D_206C_206D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200C_206B_206F_206B_202C_206B_206D_200F_202E_200F_200C_202E_202D_200C_202B_200F_202E_202B_200B_200C_202E_202C_200F_206A_202B_202A_202D_206F_206B_206A_206D_202A_202D_206E_206D_202B_202A_200D_206A_200E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + if (IsLastStep) + { + return "HandleCombat(wait: next sequence)"; + } + return "HandleCombat(wait: not in combat)"; } } internal sealed class HandleCombat(CombatController combatController, QuestFunctions questFunctions) : TaskExecutor<Task>() { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<ComplexCombatData, bool> _003C_003E9__6_0; - - public static Func<ComplexCombatData, int, (ComplexCombatData ccd, int index)> _003C_003E9__6_1; - - public static Func<(ComplexCombatData ccd, int index), bool> _003C_003E9__6_2; - - internal bool _003CUpdate_003Eb__6_0(ComplexCombatData x) - { - return _206C_206F_206F_206A_206F_200E_206B_202B_206F_200B_206E_202A_200F_206F_200F_200F_206B_206F_206B_202A_202B_202D_200D_202A_200E_206E_206B_200D_200D_206D_206D_200D_200C_206B_202C_200F_206D_200C_206D_206C_202E(x).HasValue; - } - - internal (ComplexCombatData ccd, int index) _003CUpdate_003Eb__6_1(ComplexCombatData ccd, int index) - { - return (ccd: ccd, index: index); - } - - internal bool _003CUpdate_003Eb__6_2((ComplexCombatData ccd, int index) x) - { - return _206C_206F_206F_206A_206F_200E_206B_202B_206F_200B_206E_202A_200F_206F_200F_200F_206B_206F_206B_202A_202B_202D_200D_202A_200E_206E_206B_200D_200D_206D_206D_200D_200C_206B_202C_200F_206D_200C_206D_206C_202E(x.ccd).HasValue; - } - - static uint? _206C_206F_206F_206A_206F_200E_206B_202B_206F_200B_206E_202A_200F_206F_200F_200F_206B_206F_206B_202A_202B_202D_200D_202A_200E_206E_206B_200D_200D_206D_206D_200D_200C_206B_202C_200F_206D_200C_206D_206C_202E(ComplexCombatData P_0) - { - return P_0.MinimumKillCount; - } - } - private CombatController.EStatus _status; private long _combatEndedAtMs; @@ -1154,150 +160,77 @@ internal static class Combat return combatController.Start(base.Task.CombatData); } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { _status = combatController.Update(); - QuestId questId = base.Task.CombatData.ElementId as QuestId; - int num = (((object)questId == null) ? 833084925 : 833084923); - QuestProgressInfo questProgressInfo = default(QuestProgressInfo); - while (true) + if (base.Task.CombatData.ElementId is QuestId elementId) { - int num2 = num; - int num3 = 833084915; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + QuestProgressInfo questProgressInfo = questFunctions.GetQuestProgressInfo(elementId); + if (questProgressInfo != null && AreQuestCombatFlagsMet(questProgressInfo)) { - case 16: - num = ((base.Task.CombatData.SpawnType != EEnemySpawnType.QuestInterruption) ? 833084917 : 833084914); - break; - case 6: - num = ((!base.Task.CombatData.ComplexCombatDatas.Any((ComplexCombatData x) => _003C_003Ec._206C_206F_206F_206A_206F_200E_206B_202B_206F_200B_206E_202A_200F_206F_200F_200F_206B_206F_206B_202A_202B_202D_200D_202A_200E_206E_206B_200D_200D_206D_206D_200D_200C_206B_202C_200F_206D_200C_206D_206C_202E(x).HasValue)) ? 833084926 : 833084924); - break; - case 14: - num = ((_status == CombatController.EStatus.Complete) ? 833084899 : 833084922); - break; - case 15: - num = ((!(from x in base.Task.CombatData.ComplexCombatDatas.Select((ComplexCombatData ccd, int index) => (ccd: ccd, index: index)) - where _003C_003Ec._206C_206F_206F_206A_206F_200E_206B_202B_206F_200B_206E_202A_200F_206F_200F_200F_206B_206F_206B_202A_202B_202D_200D_202A_200E_206E_206B_200D_200D_206D_206D_200D_200C_206B_202C_200F_206D_200C_206D_206C_202E(x.ccd).HasValue - select x).All(((ComplexCombatData ccd, int index) x) => base.Task.CombatData.CompletedComplexDatas.Contains(x.index))) ? 833084921 : 833084919); - break; - case 10: - return ETaskResult.StillRunning; - case 13: - num = ((!base.Task.IsLastStep) ? 833084898 : 833084912); - break; - case 7: - num = ((_206F_206F_200E_202C_206B_206A_206C_200F_200C_206E_206F_200C_206C_206B_202D_206E_200E_202C_206B_200F_200D_206B_200B_200E_206B_200F_200D_206F_206B_206B_202D_200D_200E_206A_202B_206A_206F_206B_200C_202D_202E() - _combatEndedAtMs >= 2000) ? 833084917 : 833084913); - break; - case 1: - num = ((_combatEndedAtMs != 0L) ? 833084916 : 833084927); - break; - case 5: - num = ((!AreQuestCombatFlagsMet(questProgressInfo)) ? 833084925 : 833084920); - break; - case 4: - combatController.Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1469554830)); - return ETaskResult.TaskComplete; - case 2: - return ETaskResult.StillRunning; - case 9: - _combatEndedAtMs = 0L; - return ETaskResult.StillRunning; - case 0: - num = 833084923; - break; - case 3: - return ETaskResult.StillRunning; - case 12: - _combatEndedAtMs = _206F_206F_200E_202C_206B_206A_206C_200F_200C_206E_206F_200C_206C_206B_202D_206E_200E_202C_206B_200F_200D_206B_200B_200E_206B_200F_200D_206F_206B_206B_202D_200D_200E_206A_202B_206A_206F_206B_200C_202D_202E(); - num = 833084916; - break; - case 8: - questProgressInfo = questFunctions.GetQuestProgressInfo(questId); - num = ((questProgressInfo == null) ? 833084925 : 833084918); - break; - case 17: - combatController.Stop(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1518429285)); - return ETaskResult.TaskComplete; - case 11: - combatController.Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(575032322)); + combatController.Stop("Quest combat objective met"); return ETaskResult.TaskComplete; } } + if (_status != CombatController.EStatus.Complete) + { + _combatEndedAtMs = 0L; + return ETaskResult.StillRunning; + } + if (base.Task.CombatData.SpawnType == EEnemySpawnType.QuestInterruption) + { + if (_combatEndedAtMs == 0L) + { + _combatEndedAtMs = Environment.TickCount64; + } + if (Environment.TickCount64 - _combatEndedAtMs < 2000) + { + return ETaskResult.StillRunning; + } + } + if (base.Task.CombatData.ComplexCombatDatas.Any((ComplexCombatData x) => x.MinimumKillCount.HasValue)) + { + if ((from x in base.Task.CombatData.ComplexCombatDatas.Select((ComplexCombatData ccd, int index) => (ccd: ccd, index: index)) + where x.ccd.MinimumKillCount.HasValue + select x).All(((ComplexCombatData ccd, int index) x) => base.Task.CombatData.CompletedComplexDatas.Contains(x.index))) + { + combatController.Stop("Kill count requirements met"); + return ETaskResult.TaskComplete; + } + return ETaskResult.StillRunning; + } + if (base.Task.IsLastStep) + { + return ETaskResult.StillRunning; + } + combatController.Stop("Combat task complete"); + return ETaskResult.TaskComplete; } private bool AreQuestCombatFlagsMet(QuestProgressInfo questWork) { - int num = ((!QuestWorkUtils.HasCompletionFlags(base.Task.CompletionQuestVariableFlags)) ? (-2101932045) : (-2101932046)); - ComplexCombatData current = default(ComplexCombatData); - while (true) + if (QuestWorkUtils.HasCompletionFlags(base.Task.CompletionQuestVariableFlags) && QuestWorkUtils.MatchesQuestWork(base.Task.CompletionQuestVariableFlags, questWork)) { - int num2 = num; - int num3 = -2101932047; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return true; + } + bool result = false; + foreach (ComplexCombatData complexCombatData in base.Task.CombatData.ComplexCombatDatas) + { + if (QuestWorkUtils.HasCompletionFlags(complexCombatData.CompletionQuestVariablesFlags)) { - case 0: - num = -2101932046; - break; - case 1: - return true; - case 3: - num = ((!QuestWorkUtils.MatchesQuestWork(base.Task.CompletionQuestVariableFlags, questWork)) ? (-2101932045) : (-2101932048)); - break; - case 2: - { - bool result = false; - using List<ComplexCombatData>.Enumerator enumerator = base.Task.CombatData.ComplexCombatDatas.GetEnumerator(); - num = 956628557; - while (true) + result = true; + if (!QuestWorkUtils.MatchesQuestWork(complexCombatData.CompletionQuestVariablesFlags, questWork)) { - int num7 = num; - num3 = 956628553; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - result = true; - num = (QuestWorkUtils.MatchesQuestWork(_200E_206D_200E_206E_200B_206E_206F_200C_206A_200D_206F_206D_200D_206D_206B_202D_200F_206A_202D_200B_206D_202C_202C_200D_200F_206E_200B_200E_200D_202A_202B_202E_206B_202E_206D_206B_202E_202D_206A_202A_202E(current), questWork) ? 956628557 : 956628554); - break; - case 3: - return false; - case 5: - num = 956628557; - break; - case 4: - num = (enumerator.MoveNext() ? 956628552 : 956628553); - break; - case 1: - current = enumerator.Current; - num = ((!QuestWorkUtils.HasCompletionFlags(_200E_206D_200E_206E_200B_206E_206F_200C_206A_200D_206F_206D_200D_206D_206B_202D_200F_206A_202D_200B_206D_202C_202C_200D_200F_206E_200B_200E_200D_202A_202B_202E_206B_202E_206D_206B_202E_202D_206A_202A_202E(current))) ? 956628557 : 956628555); - break; - case 0: - return result; - } + return false; } } - } } + return result; } public override bool ShouldInterruptOnDamage() { return false; } - - static long _206F_206F_200E_202C_206B_206A_206C_200F_200C_206E_206F_200C_206C_206B_202D_206E_200E_202C_206B_200F_200D_206B_200B_200E_206B_200F_200D_206F_206B_206B_202D_200D_200E_206A_202B_206A_206F_206B_200C_202D_202E() - { - return Environment.TickCount64; - } - - static IList<QuestWorkValue> _200E_206D_200E_206E_200B_206E_206F_200C_206A_200D_206F_206D_200D_206D_206B_202D_200F_206A_202D_200B_206D_202C_202C_200D_200F_206E_200B_200E_200D_202A_202B_202E_206B_202E_206D_206B_202E_202D_206A_202A_202E(ComplexCombatData P_0) - { - return P_0.CompletionQuestVariablesFlags; - } } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/CriticalEncounter.cs b/Questionable/Questionable.Controller.Steps.Interactions/CriticalEncounter.cs index 05072e0..164b672 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/CriticalEncounter.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/CriticalEncounter.cs @@ -1,7 +1,5 @@ using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using LLib.GameData; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Common; @@ -14,175 +12,26 @@ internal static class CriticalEncounter { internal sealed class Factory : ITaskFactory { - [MethodImpl(MethodImplOptions.NoInlining)] public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_202B_202A_206E_202D_206C_200F_200D_202A_200D_206C_200B_206A_202B_202D_200F_206F_206C_206E_200E_202E_202B_202E_206C_202C_206D_206A_202B_200F_206C_202A_206B_200B_202E_202D_206E_206C_200F_200D_206A_200E_202E(step) == EInteractionType.CriticalEncounter) ? 388534169 : 388534175); - bool flag = default(bool); - ushort? num5 = default(ushort?); - while (true) + if (step.InteractionType != EInteractionType.CriticalEncounter) { - int num2 = num; - int num3 = 388534174; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(new WaitForCriticalEncounter(_202B_202D_206C_206B_206B_206E_200E_206A_206C_206D_200E_202E_206E_202C_206B_206A_200F_202C_202E_202E_200F_206D_202D_206A_206F_206C_200B_206C_202C_200F_206F_206C_200D_206B_200C_202D_206F_202E_200F_202A_202E(step).Value, _200E_200B_202E_206D_202C_200C_206F_202A_206F_206D_206E_206C_206B_202C_202C_206D_206B_206C_206C_202E_206D_200C_202B_202C_206A_202A_206E_202A_206B_202B_206A_206B_206A_202E_200E_202C_202D_200C_200F_206C_202E(step))); - case 2: - num = ((!flag) ? 388534173 : 388534170); - break; - case 4: - throw _202D_206F_200D_202A_200C_200B_200C_200F_202A_202E_202C_200B_200F_206A_202D_206B_202D_200E_200F_206D_200D_206E_206D_200C_206B_200C_200E_202E_206A_202A_200F_200F_206D_202B_202E_206A_206A_202A_200E_200F_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(173883296)); - case 1: - return Array.Empty<ITask>(); - case 8: - num = 388534175; - break; - case 0: - num = ((num5.GetValueOrDefault() != 0) ? 388534171 : 388534168); - break; - case 5: - flag = false; - num = 388534172; - break; - case 6: - flag = true; - num = 388534172; - break; - case 7: - num5 = _202B_202D_206C_206B_206B_206E_200E_206A_206C_206D_200E_202E_206E_202C_206B_206A_200F_202C_202E_202E_200F_206D_202D_206A_206F_206C_200B_206C_202C_200F_206F_206C_200D_206B_200C_202D_206F_202E_200F_202A_202E(step); - num = ((!num5.HasValue) ? 388534168 : 388534174); - break; - } + return Array.Empty<ITask>(); } - } - - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); - } - - static EInteractionType _202B_202A_206E_202D_206C_200F_200D_202A_200D_206C_200B_206A_202B_202D_200F_206F_206C_206E_200E_202E_202B_202E_206C_202C_206D_206A_202B_200F_206C_202A_206B_200B_202E_202D_206E_206C_200F_200D_206A_200E_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static ushort? _202B_202D_206C_206B_206B_206E_200E_206A_206C_206D_200E_202E_206E_202C_206B_206A_200F_202C_202E_202E_200F_206D_202D_206A_206F_206C_200B_206C_202C_200F_206F_206C_200D_206B_200C_202D_206F_202E_200F_202A_202E(QuestStep P_0) - { - return P_0.CriticalEncounterId; - } - - static InvalidOperationException _202D_206F_200D_202A_200C_200B_200C_200F_202A_202E_202C_200B_200F_206A_202D_206B_202D_200E_200F_206D_200D_206E_206D_200C_206B_200C_200E_202E_206A_202A_200F_200F_206D_202B_202E_206A_206A_202A_200E_200F_202E(string P_0) - { - return new InvalidOperationException(P_0); - } - - static string _200E_200B_202E_206D_202C_200C_206F_202A_206F_206D_206E_206C_206B_202C_202C_206D_206B_206C_206C_202E_206D_200C_202B_202C_206A_202A_206E_202A_206B_202B_206A_206B_206A_202E_200E_202C_202D_200C_200F_206C_202E(QuestStep P_0) - { - return P_0.Comment; + ushort? criticalEncounterId = step.CriticalEncounterId; + if ((!criticalEncounterId.HasValue || criticalEncounterId.GetValueOrDefault() == 0) ? true : false) + { + throw new InvalidOperationException("CriticalEncounter step requires CriticalEncounterId"); + } + return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(new WaitForCriticalEncounter(step.CriticalEncounterId.Value, step.Comment)); } } internal sealed record WaitForCriticalEncounter(ushort CriticalEncounterId, string? Comment) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206C_206C_206A_202A_200B_206A_202D_202E_200C_200D_200B_202A_206D_206A_202E_202A_206D_206A_202D_202C_200C_206D_206A_206A_206C_206D_200C_200D_202D_202C_202E_206D_200D_206B_200B_202E_206E_202E_200F_200E_202E(typeof(WaitForCriticalEncounter).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(26, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1697755405)); - defaultInterpolatedStringHandler.AppendFormatted(CriticalEncounterId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200D_206D_202B_206B_206E_206A_200B_206A_206A_200D_202D_206C_202A_202E_206E_202B_200D_206E_206B_200E_202D_202E_202D_206F_206F_206A_206C_200C_206E_200C_202C_206D_206F_200D_200E_200C_202B_206F_202C_206A_202E(); - _206D_200B_200D_202E_200F_200E_206D_206B_206A_200C_200F_200C_202B_202A_202B_206F_200F_200D_202D_200B_202C_200E_202C_206B_206D_200C_202B_202D_206A_206D_206F_206E_200C_206C_202D_200E_206E_202E_206E_206C_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1797121182)); - _206D_200B_200D_202E_200F_200E_206D_206B_206A_200C_200F_200C_202B_202A_202B_206F_200F_200D_202D_200B_202C_200E_202C_206B_206D_200C_202B_202D_206A_206D_206F_206E_200C_206C_202D_200E_206E_202E_206E_206C_202E(builder, CriticalEncounterId.ToString()); - _206D_200B_200D_202E_200F_200E_206D_206B_206A_200C_200F_200C_202B_202A_202B_206F_200F_200D_202D_200B_202C_200E_202C_206B_206D_200C_202B_202D_206A_206D_206F_206E_200C_206C_202D_200E_206E_202E_206E_206C_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(161698568)); - _206D_206B_202C_200F_206B_202D_200D_206D_206E_202D_200D_200B_200B_202A_206F_202D_200D_200B_200E_202E_206F_206C_206D_200D_206E_200D_200E_206E_202D_206A_206E_200E_206B_206E_200D_202D_200C_206C_200D_202C_202E(builder, (object?)Comment); - return true; - } - - [CompilerGenerated] - public bool Equals(WaitForCriticalEncounter? other) - { - int num = (((object)this == other) ? 1889807727 : 1889807725); - while (true) - { - int num2 = num; - int num3 = 1889807724; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 1889807725; - break; - case 6: - num = ((!EqualityComparer<ushort>.Default.Equals(CriticalEncounterId, other.CriticalEncounterId)) ? 1889807720 : 1889807721); - break; - case 3: - return true; - case 1: - num = (((object)other == null) ? 1889807720 : 1889807724); - break; - case 5: - return EqualityComparer<string>.Default.Equals(Comment, other.Comment); - case 4: - return false; - case 0: - num = ((!_200B_202E_206B_202C_202A_200C_202E_200C_202C_200D_202E_200C_200C_200B_200F_200C_202D_202E_206D_202C_202B_202B_206C_200B_200F_206C_202C_200E_206C_206F_202B_206F_200B_202B_200C_200C_200F_206E_202A_202D_202E(EqualityContract, other.EqualityContract)) ? 1889807720 : 1889807722); - break; - } - } - } - - bool IEquatable<WaitForCriticalEncounter>.Equals(WaitForCriticalEncounter? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type? _206C_206C_206A_202A_200B_206A_202D_202E_200C_200D_200B_202A_206D_206A_202E_202A_206D_206A_202D_202C_200C_206D_206A_206A_206C_206D_200C_200D_202D_202C_202E_206D_200D_206B_200B_202E_206E_202E_200F_200E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _200D_206D_202B_206B_206E_206A_200B_206A_206A_200D_202D_206C_202A_202E_206E_202B_200D_206E_206B_200E_202D_202E_202D_206F_206F_206A_206C_200C_206E_200C_202C_206D_206F_200D_200E_200C_202B_206F_202C_206A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder? _206D_200B_200D_202E_200F_200E_206D_206B_206A_200C_200F_200C_202B_202A_202B_206F_200F_200D_202D_200B_202C_200E_202C_206B_206D_200C_202B_202D_206A_206D_206F_206E_200C_206C_202D_200E_206E_202E_206E_206C_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _206D_206B_202C_200F_206B_202D_200D_206D_206E_202D_200D_200B_200B_202A_206F_202D_200D_200B_200E_202E_206F_206C_206D_200D_206E_200D_200E_206E_202D_206A_206E_200E_206B_206E_200D_202D_200C_206C_200D_202C_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } - - static bool _200B_202E_206B_202C_202A_200C_202E_200C_202C_200D_202E_200C_200C_200B_200F_200C_202D_202E_206D_202C_202B_202B_206C_200B_200F_206C_202C_200E_206C_206F_202B_206F_200B_202B_200C_200C_200F_206E_202A_202D_202E(Type? P_0, Type? P_1) - { - return P_0 == P_1; + return $"WaitForCriticalEncounter({CriticalEncounterId})"; } } @@ -196,128 +45,61 @@ internal static class CriticalEncounter private bool _navigating; - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - _200D_206C_202E_206E_206C_200F_200C_200F_200D_206D_202D_200D_206C_206B_200D_200D_200C_202B_206D_200E_202C_202B_200B_206E_206A_200B_206C_206E_206C_206D_202D_206F_200B_202D_202E_206F_206F_206F_206B_206D_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(787186705), new object[1] { base.Task.CriticalEncounterId }); + logger.LogDebug("Waiting for critical encounter {Id}", base.Task.CriticalEncounterId); return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - int num = ((_202C_200B_200C_200C_202A_200E_206C_200C_206F_200E_202B_206F_202B_202B_206E_206F_200C_202D_206B_200B_202B_206F_206D_206D_202A_202A_206E_206D_206B_206C_202E_206F_202C_200C_200D_200F_200E_202B_202A_200F_202E() >= _nextPollAt) ? 547757229 : 547757246); - PublicEvent valueOrDefault = default(PublicEvent); - PublicEvent? publicEvent = default(PublicEvent?); - while (true) + if (Environment.TickCount64 < _nextPollAt) { - int num2 = num; - int num3 = 547757230; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return ETaskResult.StillRunning; + } + PublicEvent? eventById = publicEventHelper.GetEventById(EPublicEventType.DynamicEvent, base.Task.CriticalEncounterId); + if (eventById.HasValue) + { + PublicEvent valueOrDefault = eventById.GetValueOrDefault(); + if (!_notified) { - case 8: - num = (_loggedWaiting ? 547757221 : 547757227); - break; - case 4: - _nextPollAt = _202C_200B_200C_200C_202A_200E_206C_200C_206F_200E_202B_206F_202B_202B_206E_206F_200C_202D_206B_200B_202B_206F_206D_206D_202A_202A_206E_206D_206B_206C_202E_206F_202C_200C_200D_200F_200E_202B_202A_200F_202E() + 1000; - return ETaskResult.StillRunning; - case 1: - _nextPollAt = _202C_200B_200C_200C_202A_200E_206C_200C_206F_200E_202B_206F_202B_202B_206E_206F_200C_202D_206B_200B_202B_206F_206D_206D_202A_202A_206E_206D_206B_206C_202E_206F_202C_200C_200D_200F_200E_202B_202A_200F_202E() + 2000; - return ETaskResult.StillRunning; - case 12: - valueOrDefault = publicEvent.GetValueOrDefault(); - num = 547757223; - break; - case 2: - return ETaskResult.TaskComplete; - case 16: - return ETaskResult.StillRunning; - case 0: - num = 547757246; - break; - case 15: - num = ((publicEvent.GetValueOrDefault().Id != base.Task.CriticalEncounterId) ? 547757225 : 547757228); - break; - case 11: - _notified = false; - _navigating = false; - _nextPollAt = _202C_200B_200C_200C_202A_200E_206C_200C_206F_200E_202B_206F_202B_202B_206E_206F_200C_202D_206B_200B_202B_206F_206D_206D_202A_202A_206E_206D_206B_206C_202E_206F_202C_200C_200D_200F_200E_202B_202A_200F_202E() + 1000; - return ETaskResult.StillRunning; - case 10: - num = (_navigating ? 547757226 : 547757216); - break; - case 14: - _202C_206B_200F_206C_206B_206C_200F_206F_202C_200B_202D_202C_200E_202E_202A_202B_200C_206A_200D_206D_202E_200D_200F_206A_202A_206C_202A_200D_200D_206A_200C_202A_202B_206C_200B_200C_202B_200E_206B_206D_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1192929131), new object[2] - { - base.Task.CriticalEncounterId, - valueOrDefault.Position - }); - movementController.NavigateTo(EMovementType.Quest, null, valueOrDefault.Position, fly: false, sprint: true, 5f); - _navigating = true; - num = 547757226; - break; - case 7: - num = ((!valueOrDefault.IsActive) ? 547757220 : 547757231); - break; - case 6: - publicEvent = _206B_202D_206C_200D_202A_206C_206A_206C_202E_200F_206A_202C_202C_206E_200E_206D_202D_200E_202A_200C_206D_202A_206D_206F_206A_206F_202B_202E_206A_206E_200C_202A_200F_206D_200B_202C_202E_206B_200D_202E_202E(publicEventHelper); - num = ((!publicEvent.HasValue) ? 547757225 : 547757217); - break; - case 9: - num = (_notified ? 547757224 : 547757219); - break; - case 3: - publicEvent = _206B_200F_206E_200C_202C_206D_200D_202C_200C_202A_206A_200B_200E_202E_206A_206E_202D_202A_206B_206A_200B_202E_206A_206D_206F_200F_202A_206A_206F_202D_206D_202C_200E_202E_202B_200F_202A_202A_202A_206C_202E(publicEventHelper, EPublicEventType.DynamicEvent, (uint)base.Task.CriticalEncounterId); - num = ((!publicEvent.HasValue) ? 547757222 : 547757218); - break; - case 13: - _202C_206B_200F_206C_206B_206C_200F_206F_202C_200B_202D_202C_200E_202E_202A_202B_200C_206A_200D_206D_202E_200D_200F_206A_202A_206C_202A_200D_200D_206A_200C_202A_202B_206C_200B_200C_202B_200E_206B_206D_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1925066438), new object[2] - { - base.Task.CriticalEncounterId, - valueOrDefault.Name - }); + logger.LogInformation("Critical encounter {Id} ({Name}) is up", base.Task.CriticalEncounterId, valueOrDefault.Name); sendNotificationExecutor.Start(new SendNotification.Task(EInteractionType.CriticalEncounter, base.Task.Comment ?? valueOrDefault.Name)); _notified = true; - num = 547757224; - break; - case 5: - _200D_206C_202E_206E_206C_200F_200C_200F_200D_206D_202D_200D_206C_206B_200D_200D_200C_202B_206D_200E_202C_202B_200B_206E_206A_200B_206C_206E_206C_206D_202D_206F_200B_202D_202E_206F_206F_206F_206B_206D_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-103389765), new object[1] { base.Task.CriticalEncounterId }); - _loggedWaiting = true; - num = 547757221; - break; } + eventById = publicEventHelper.GetCurrentDynamicEvent(); + if (eventById.HasValue && eventById.GetValueOrDefault().Id == base.Task.CriticalEncounterId) + { + return ETaskResult.TaskComplete; + } + if (valueOrDefault.IsActive) + { + _nextPollAt = Environment.TickCount64 + 2000; + return ETaskResult.StillRunning; + } + if (!_navigating) + { + logger.LogInformation("Moving into critical encounter {Id} at {Position}", base.Task.CriticalEncounterId, valueOrDefault.Position); + movementController.NavigateTo(EMovementType.Quest, null, valueOrDefault.Position, fly: false, sprint: true, 5f); + _navigating = true; + } + _nextPollAt = Environment.TickCount64 + 1000; + return ETaskResult.StillRunning; } + if (!_loggedWaiting) + { + logger.LogDebug("Critical encounter {Id} not active yet, waiting for spawn", base.Task.CriticalEncounterId); + _loggedWaiting = true; + } + _notified = false; + _navigating = false; + _nextPollAt = Environment.TickCount64 + 1000; + return ETaskResult.StillRunning; } public override bool ShouldInterruptOnDamage() { return false; } - - static void _200D_206C_202E_206E_206C_200F_200C_200F_200D_206D_202D_200D_206C_206B_200D_200D_200C_202B_206D_200E_202C_202B_200B_206E_206A_200B_206C_206E_206C_206D_202D_206F_200B_202D_202E_206F_206F_206F_206B_206D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static long _202C_200B_200C_200C_202A_200E_206C_200C_206F_200E_202B_206F_202B_202B_206E_206F_200C_202D_206B_200B_202B_206F_206D_206D_202A_202A_206E_206D_206B_206C_202E_206F_202C_200C_200D_200F_200E_202B_202A_200F_202E() - { - return Environment.TickCount64; - } - - static PublicEvent? _206B_200F_206E_200C_202C_206D_200D_202C_200C_202A_206A_200B_200E_202E_206A_206E_202D_202A_206B_206A_200B_202E_206A_206D_206F_200F_202A_206A_206F_202D_206D_202C_200E_202E_202B_200F_202A_202A_202A_206C_202E(PublicEventHelper P_0, EPublicEventType P_1, uint P_2) - { - return P_0.GetEventById(P_1, P_2); - } - - static void _202C_206B_200F_206C_206B_206C_200F_206F_202C_200B_202D_202C_200E_202E_202A_202B_200C_206A_200D_206D_202E_200D_200F_206A_202A_206C_202A_200D_200D_206A_200C_202A_202B_206C_200B_200C_202B_200E_206B_206D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static PublicEvent? _206B_202D_206C_200D_202A_206C_206A_206C_202E_200F_206A_202C_202C_206E_200E_206D_202D_200E_202A_200C_206D_202A_206D_206F_206A_206F_202B_202E_206A_206E_200C_202A_200F_206D_200B_202C_202E_206B_200D_202E_202E(PublicEventHelper P_0) - { - return P_0.GetCurrentDynamicEvent(); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/Dive.cs b/Questionable/Questionable.Controller.Steps.Interactions/Dive.cs index c944d2c..08b327e 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/Dive.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/Dive.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Dalamud.Game.ClientState.Conditions; using Dalamud.Plugin.Services; @@ -22,39 +21,19 @@ internal static class Dive { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_206D_206E_202A_206D_200D_206F_206D_200C_206E_200E_206C_200C_200E_206F_206C_200B_202C_206C_202C_206B_200C_200B_200C_202C_206E_202D_200F_202B_202D_200F_202D_200D_206F_202A_206A_202B_202A_202B_206F_206C_202E(step) == EInteractionType.Dive) ? 912485956 : 912485959); - while (true) + if (step.InteractionType != EInteractionType.Dive) { - int num2 = num; - int num3 = 912485958; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return new Task(); - case 1: - return null; - case 0: - goto IL_0050; - } - continue; - IL_0050: - num = 912485959; + return null; } - } - - static EInteractionType _206D_206E_202A_206D_200D_206F_206D_200C_206E_200E_206C_200C_200E_206F_206C_200B_202C_206C_202C_206B_200C_200B_200C_202C_206E_202D_200F_202B_202D_200F_202D_200D_206F_202A_206A_202B_202A_202B_206F_206C_202E(QuestStep P_0) - { - return P_0.InteractionType; + return new Task(); } } internal sealed class Task : ITask { - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(377000525); + return "Dive"; } } @@ -66,183 +45,87 @@ internal static class Dive private int _attempts; - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool StartInternal() { - int num = ((!_200F_200F_200D_206B_200B_206D_206C_206F_206E_200D_200B_206E_206D_200E_206C_200B_200D_202D_206E_202C_206D_200C_200E_202C_202B_200C_206B_206B_206E_202C_200B_206F_206F_206E_206C_206F_202D_206C_200F_206F_202E(condition, ConditionFlag.Diving)) ? (-182833903) : (-182833899)); - while (true) + if (condition[ConditionFlag.Diving]) { - int num2 = num; - int num3 = -182833900; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = ((!_200F_200F_200D_206B_200B_206D_206C_206F_206E_200D_200B_206E_206D_200E_206C_200B_200D_202D_206E_202C_206D_200C_200E_202C_202B_200C_206B_206B_206E_202C_200B_206F_206F_206E_206C_206F_202D_206C_200F_206F_202E(condition, ConditionFlag.Swimming)) ? (-182833904) : (-182833900)); - break; - case 5: - num = (_200F_200F_200D_206B_200B_206D_206C_206F_206E_200D_200B_206E_206D_200E_206C_200B_200D_202D_206E_202C_206D_200C_200E_202C_202B_200C_206B_206B_206E_202C_200B_206F_206F_206E_206C_206F_202D_206C_200F_206F_202E(condition, ConditionFlag.Mounted) ? (-182833900) : (-182833898)); - break; - case 0: - Descend(); - return true; - case 3: - num = -182833899; - break; - case 4: - throw new TaskException(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-335869589)); - case 1: - return false; - } + return false; } + if (condition[ConditionFlag.Mounted] || condition[ConditionFlag.Swimming]) + { + Descend(); + return true; + } + throw new TaskException("You aren't swimming, so we can't dive."); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe override ETaskResult Update() { - (uint, nint) result; - int num = ((!_keysToPress.TryDequeue(out result)) ? 297362200 : 297362206); - while (true) + if (_keysToPress.TryDequeue(out (uint, nint) result)) { - int num2 = num; - int num3 = 297362202; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (result.Item1 == 0) { - case 6: - return ETaskResult.StillRunning; - case 4: - num = ((result.Item1 != 0) ? 297362201 : 297362204); - break; - case 3: - _200E_202C_206B_200B_202B_206C_206C_202C_202C_206B_206E_206F_202D_200F_200E_200D_200B_202A_202C_206B_200B_202E_200D_202D_206F_206C_200F_200E_206A_200F_202A_202C_206F_200E_206B_202C_206C_202C_206E_200E_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(547752152), new object[2] - { - (result.Item1 == 256) ? global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-211975877) : global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(378157279), - result.Item2 - }); - WindowsKeypress.SendMessage((nint)Device.Instance()->hWnd, result.Item1, result.Item2); - num = ((result.Item1 != 256) ? 297362202 : 297362203); - break; - case 8: - num = 297362206; - break; - case 5: - _pressedKeys.Remove(result.Item2); - num = 297362205; - break; - case 2: - return base.Update(); - case 1: - _pressedKeys.Add(result.Item2); - num = 297362205; - break; - case 0: - num = ((result.Item1 != 257) ? 297362205 : 297362207); - break; - case 7: return ETaskResult.StillRunning; } + logger.LogDebug("{Action} key {KeyCode:X2}", (result.Item1 == 256) ? "Pressing" : "Releasing", result.Item2); + WindowsKeypress.SendMessage((nint)Device.Instance()->hWnd, result.Item1, result.Item2); + if (result.Item1 == 256) + { + _pressedKeys.Add(result.Item2); + } + else if (result.Item1 == 257) + { + _pressedKeys.Remove(result.Item2); + } + return ETaskResult.StillRunning; } + return base.Update(); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe void StopNow() { - using (HashSet<nint>.Enumerator enumerator = _pressedKeys.GetEnumerator()) + foreach (nint pressedKey in _pressedKeys) { - int num = 169668245; - while (true) - { - int num2 = num; - int num3 = 169668244; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 169668245; - break; - case 1: - num = (enumerator.MoveNext() ? 169668246 : 169668247); - break; - case 2: - { - nint current = enumerator.Current; - _200E_202C_206B_200B_202B_206C_206C_202C_202C_206B_206E_206F_202D_200F_200E_200D_200B_202A_202C_206B_200B_202E_200D_202D_206F_206C_200F_200E_206A_200F_202A_202C_206F_200E_206B_202C_206C_202C_206E_200E_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(331258283), new object[1] { current }); - WindowsKeypress.SendMessage((nint)Device.Instance()->hWnd, 257u, current); - num = 169668245; - break; - } - case 3: - goto end_IL_0017; - } - continue; - end_IL_0017: - break; - } + logger.LogDebug("Releasing stuck key {KeyCode:X2} on stop", pressedKey); + WindowsKeypress.SendMessage((nint)Device.Instance()->hWnd, 257u, pressedKey); } _pressedKeys.Clear(); _keysToPress.Clear(); } - void IStoppableTaskExecutor.StopNow() - { - //ILSpy generated this explicit interface implementation from .override directive in StopNow - this.StopNow(); - } - public override bool ShouldInterruptOnDamage() { return false; } - [MethodImpl(MethodImplOptions.NoInlining)] protected override ETaskResult UpdateInternal() { - int num = ((!_200F_200F_200D_206B_200B_206D_206C_206F_206E_200D_200B_206E_206D_200E_206C_200B_200D_202D_206E_202C_206D_200C_200E_202C_202B_200C_206B_206B_206E_202C_200B_206F_206F_206E_206C_206F_202D_206C_200F_206F_202E(condition, ConditionFlag.Diving)) ? 1669924537 : 1669924536); - while (true) + if (condition[ConditionFlag.Diving]) { - int num2 = num; - int num3 = 1669924537; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = ((_attempts < 5) ? 1669924538 : 1669924541); - break; - case 1: - return ETaskResult.TaskComplete; - case 3: - { - Descend(); - int attempts = _attempts; - num3 = 1; - num4 = attempts; - _attempts = (num4 | num3) + (num4 & num3); - return ETaskResult.StillRunning; - } - case 4: - throw new TaskException(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1475958254)); - case 2: - num = 1669924536; - break; - } + return ETaskResult.TaskComplete; } + if (_attempts >= 5) + { + throw new TaskException("Please dive manually."); + } + Descend(); + _attempts++; + return ETaskResult.StillRunning; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void Descend() { Keybind* keybind = UIInputData.Instance()->GetKeybind(InputId.MOVE_DESCENT); if (keybind == null) { - throw new TaskException(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(472640545)); + throw new TaskException("Could not find descent keybind"); } Span<KeySetting> keySettings = keybind->KeySettings; SeVirtualKey key = keySettings[0].Key; KeyModifierFlag keyModifier = keySettings[0].KeyModifier; SeVirtualKey key2 = keySettings[1].Key; KeyModifierFlag keyModifier2 = keySettings[1].KeyModifier; - _200E_202C_206B_200B_202B_206C_206C_202C_202C_206B_206E_206F_202D_200F_200E_200D_200B_202A_202C_206B_200B_202E_200D_202D_206F_206C_200F_200E_206A_200F_202A_202C_206F_200E_206B_202C_206C_202C_206E_200E_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1313145476), new object[4] { key, keyModifier, key2, keyModifier2 }); + logger.LogDebug("Dive keybind: {Key1} + {Modifier1}, {Key2} + {Modifier2}", key, keyModifier, key2, keyModifier2); int num = 2; List<List<nint>> list = new List<List<nint>>(num); CollectionsMarshal.SetCount(list, num); @@ -250,196 +133,51 @@ internal static class Dive span[0] = GetKeysToPress(key, keyModifier); span[1] = GetKeysToPress(key2, keyModifier2); List<nint> list2 = list.OfType<List<nint>>().MinBy((List<nint> x) => x.Count); - int num2 = ((list2 == null) ? 326698319 : 326698316); - int num12 = default(int); - while (true) + if (list2 == null || list2.Count == 0) { - int num3 = num2; - int num4 = 326698319; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) + throw new TaskException("No useable keybind found for diving"); + } + foreach (nint item in list2) + { + _keysToPress.Enqueue((256u, item)); + for (int num2 = 0; num2 < 15; num2++) { - case 2: - num2 = 326698316; - break; - case 3: - num2 = ((list2.Count != 0) ? 326698318 : 326698319); - break; - case 0: - throw new TaskException(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-81108494)); - case 1: - { - using (List<nint>.Enumerator enumerator = list2.GetEnumerator()) - { - num2 = 1722000690; - while (true) - { - int num8 = num2; - num4 = 1722000690; - num5 = num8; - int num9 = num5 + num4; - int num10 = num5 & num4; - switch (num9 - (num10 + num10)) - { - case 2: - num2 = 1722000690; - break; - case 3: - { - nint current = enumerator.Current; - _keysToPress.Enqueue((256u, current)); - num12 = 0; - num2 = 1722000695; - break; - } - case 4: - { - _keysToPress.Enqueue((0u, 0)); - int num11 = num12; - num4 = 1; - num5 = num11; - int num13 = num5 ^ num4; - int num14 = num5 & num4; - num12 = num13 + (num14 + num14); - num2 = 1722000695; - break; - } - case 5: - num2 = ((num12 < 15) ? 1722000694 : 1722000690); - break; - case 0: - num2 = (enumerator.MoveNext() ? 1722000689 : 1722000691); - break; - case 1: - goto end_IL_01b5; - } - continue; - end_IL_01b5: - break; - } - } - int num15 = 0; - num2 = 624642844; - while (true) - { - int num16 = num2; - num4 = 624642847; - num5 = num16; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = 624642844; - break; - case 3: - num2 = ((num15 < 5) ? 624642846 : 624642845); - break; - case 1: - { - _keysToPress.Enqueue((0u, 0)); - int num20 = num15; - num4 = 1; - num5 = num20; - num15 = (num5 | num4) + (num5 & num4); - num2 = 624642844; - break; - } - case 2: - { - list2.Reverse(); - using List<nint>.Enumerator enumerator = list2.GetEnumerator(); - num2 = 2090140458; - while (true) - { - int num17 = num2; - num4 = 2090140458; - num5 = num17; - int num18 = num5 + num4; - int num19 = num5 & num4; - switch (num18 - (num19 + num19)) - { - case 2: - num2 = 2090140458; - break; - case 1: - { - nint current2 = enumerator.Current; - _keysToPress.Enqueue((257u, current2)); - num2 = 2090140458; - break; - } - case 0: - num2 = (enumerator.MoveNext() ? 2090140459 : 2090140457); - break; - case 3: - return; - } - } - } - } - } - } + _keysToPress.Enqueue((0u, 0)); } } - } - - static bool _200F_200F_200D_206B_200B_206D_206C_206F_206E_200D_200B_206E_206D_200E_206C_200B_200D_202D_206E_202C_206D_200C_200E_202C_202B_200C_206B_206B_206E_202C_200B_206F_206F_206E_206C_206F_202D_206C_200F_206F_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static void _200E_202C_206B_200B_202B_206C_206C_202C_202C_206B_206E_206F_202D_200F_200E_200D_200B_202A_202C_206B_200B_202E_200D_202D_206F_206C_200F_200E_206A_200F_202A_202C_206F_200E_206B_202C_206C_202C_206E_200E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); + for (int num3 = 0; num3 < 5; num3++) + { + _keysToPress.Enqueue((0u, 0)); + } + list2.Reverse(); + foreach (nint item2 in list2) + { + _keysToPress.Enqueue((257u, item2)); + } } } private static List<nint>? GetKeysToPress(SeVirtualKey key, KeyModifierFlag modifier) { List<nint> list = new List<nint>(); - int num = (((modifier & KeyModifierFlag.Ctrl) == 0) ? 1227229785 : 1227229790); - nint num7 = default(nint); - while (true) + if ((modifier & KeyModifierFlag.Ctrl) != KeyModifierFlag.None) { - int num2 = num; - int num3 = 1227229786; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return null; - case 3: - num = (((modifier & KeyModifierFlag.Shift) == 0) ? 1227229789 : 1227229787); - break; - case 4: - list.Add(17); - num = 1227229785; - break; - case 5: - list.Add(num7); - return list; - case 1: - list.Add(16); - num = 1227229789; - break; - case 7: - num = (((modifier & KeyModifierFlag.Alt) == 0) ? 1227229788 : 1227229786); - break; - case 6: - num7 = (nint)key; - num = ((num7 != 0) ? 1227229791 : 1227229784); - break; - case 8: - num = 1227229790; - break; - case 0: - list.Add(18); - num = 1227229788; - break; - } + list.Add(17); } + if ((modifier & KeyModifierFlag.Shift) != KeyModifierFlag.None) + { + list.Add(16); + } + if ((modifier & KeyModifierFlag.Alt) != KeyModifierFlag.None) + { + list.Add(18); + } + nint num = (nint)key; + if (num == 0) + { + return null; + } + list.Add(num); + return list; } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/Duty.cs b/Questionable/Questionable.Controller.Steps.Interactions/Duty.cs index 118c0f4..a852306 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/Duty.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/Duty.cs @@ -1,18 +1,11 @@ using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.Group; using LLib.Gear; -using Lumina.Excel; -using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.Controller.CombatModules; using Questionable.Controller.Steps.Common; @@ -31,800 +24,128 @@ internal static class Duty { internal sealed class Factory(AutoDutyIpc autoDutyIpc, WrathComboModule wrathComboModule, RotationSolverRebornModule rsrModule, BossModIpc bossModIpc, Configuration configuration, TerritoryData territoryData, GearStatsCalculator gearStatsCalculator, IObjectTable objectTable, ILogger<Factory> logger) : ITaskFactory { - [CompilerGenerated] - private sealed class _003CCreateAllTasks_003Ed__10 : IEnumerable<ITask>, IEnumerable, IEnumerator<ITask>, IEnumerator, IDisposable + public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - private int _003C_003E1__state; - - private ITask _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - private QuestStep step; - - public QuestStep _003C_003E3__step; - - public Factory _003C_003E4__this; - - private uint _003CcfcId_003E5__2; - - private AutoDutyIpc.DutyMode _003CdutyMode_003E5__3; - - ITask IEnumerator<ITask>.Current + if (step.InteractionType != EInteractionType.Duty) { - [DebuggerHidden] - get + yield break; + } + ArgumentNullException.ThrowIfNull(step.DutyOptions, "step.DutyOptions"); + uint cfcId = step.DutyOptions.ContentFinderConditionId; + DutyRegistry.Duties.TryGetValue(cfcId, out DutyEntry value); + EDutyMode? registryDutyMode = value?.DutyMode; + if (autoDutyIpc.IsConfiguredToRunContent(step.DutyOptions)) + { + EDutyMode effectiveEDutyMode = GetEffectiveEDutyMode(cfcId, registryDutyMode); + AutoDutyIpc.DutyMode dutyMode = ConvertToAutoDutyMode(effectiveEDutyMode); + if (dutyMode == AutoDutyIpc.DutyMode.UnsyncRegular && effectiveEDutyMode == EDutyMode.UnsyncParty) { - return _003C_003E2__current; + yield return new WaitForPartyTask(); } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get + if (!autoDutyIpc.ManagesRotationPluginState()) { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CCreateAllTasks_003Ed__10(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _200E_200F_206B_206F_200F_202B_206B_202B_206E_200E_202B_202A_202D_206D_202E_206B_200F_206A_202E_200C_202C_206F_200E_202E_202C_202B_202B_202D_200B_200D_200F_200D_206A_206E_202E_206B_206C_206B_202B_206D_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - int num = _003C_003E1__state; - Factory factory = _003C_003E4__this; - int num2; - EDutyMode effectiveEDutyMode = default(EDutyMode); - DutyEntry value = default(DutyEntry); - EDutyMode? registryDutyMode = default(EDutyMode?); - switch (num) - { - default: - num2 = -1986449047; - goto IL_004c; - case 2: - _003C_003E1__state = -1; - num2 = -1986449033; - goto IL_004c; - case 3: - goto IL_016b; - case 1: - goto IL_01e0; - case 6: - goto IL_0233; - case 5: - goto IL_0333; - case 10: - goto IL_0346; - case 4: - goto IL_03d5; - case 0: - goto IL_0424; - case 7: - break; - case 8: - goto IL_050a; - case 9: - goto IL_0566; - IL_004c: - while (true) + if (wrathComboModule.IsAvailable()) { - int num3 = num2; - int num4 = -1986449046; - int num5 = num3; - EDutyMode? obj; - switch ((num5 | num4) - (num5 & num4)) - { - case 5: - goto IL_0104; - case 27: - return false; - case 1: - goto end_IL_004c; - case 3: - return false; - case 24: - goto IL_0143; - case 16: - goto IL_016b; - case 23: - _003C_003E2__current = new StartAutoDutyTask(_003CcfcId_003E5__2, _003CdutyMode_003E5__3); - _003C_003E1__state = 6; - return true; - case 14: - _003C_003E2__current = new EnableWrathForDutyTask(); - _003C_003E1__state = 2; - return true; - case 36: - goto IL_01b2; - case 21: - goto IL_01e0; - case 13: - goto IL_01f3; - case 37: - num2 = -1986449047; - break; - case 7: - if (effectiveEDutyMode == EDutyMode.UnsyncParty) - { - num2 = -1986449077; - break; - } - goto case 26; - case 19: - goto IL_0233; - case 30: - goto IL_0254; - case 6: - goto IL_0294; - case 35: - obj = value.DutyMode; - goto IL_02c2; - case 34: - _003C_003E2__current = new WaitAtEnd.WaitNextStepOrSequence(); - _003C_003E1__state = 9; - return true; - case 20: - goto IL_030b; - case 22: - goto IL_0333; - case 15: - goto IL_0346; - case 2: - _003C_003E2__current = new OpenDutyFinderTask(_003CcfcId_003E5__2); - _003C_003E1__state = 10; - return true; - case 33: - _003C_003E2__current = new WaitForPartyTask(); - _003C_003E1__state = 1; - return true; - case 29: - goto IL_0388; - case 0: - goto IL_03b0; - case 17: - return false; - case 31: - goto IL_03d5; - case 25: - goto IL_03e8; - case 4: - _003C_003E2__current = new EnableBossModForDutyTask(); - _003C_003E1__state = 4; - return true; - case 10: - goto IL_0424; - case 26: - num2 = -1986449038; - break; - case 9: - goto IL_0473; - case 11: - goto end_IL_000f; - case 8: - obj = null; - goto IL_02c2; - case 12: - goto IL_050a; - case 28: - _003C_003E2__current = new EnableBossModPassiveForDutyTask(); - _003C_003E1__state = 5; - return true; - case 32: - _003C_003E2__current = new EnableRsrForDutyTask(); - _003C_003E1__state = 3; - return true; - case 18: - goto IL_0566; - IL_02c2: - registryDutyMode = obj; - num2 = ((!factory.autoDutyIpc.IsConfiguredToRunContent(_206A_200B_200F_202D_202C_202A_202E_202E_206E_206A_206C_202E_202D_202C_206A_206C_206D_206A_202B_206A_202C_206F_202C_202E_206B_206B_206C_206E_200B_206F_200E_206F_202E_200D_200E_206C_206A_206E_200F_202E_202E(step))) ? (-1986449049) : (-1986449036)); - break; - } - continue; - IL_0473: - _200B_202A_202C_206E_206B_206F_200D_200D_206C_200E_206C_206D_202C_202A_200D_200D_202E_200E_202C_200F_202E_206D_206C_200B_206D_202C_202C_206B_202D_200C_206E_200C_206A_206C_202E_206C_206F_200F_200D_202E((object)_206A_200B_200F_202D_202C_202A_202E_202E_206E_206A_206C_202E_202D_202C_206A_206C_206D_206A_202B_206A_202C_206F_202C_202E_206B_206B_206C_206E_200B_206F_200E_206F_202E_200D_200E_206C_206A_206E_200F_202E_202E(step), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(190396670)); - _003CcfcId_003E5__2 = _206F_206D_206C_202A_200D_202A_206E_200E_200F_206D_200E_206B_200F_206D_206A_202E_206F_202B_202E_200C_206C_200B_206B_200C_202D_200B_206C_200E_202A_206B_200C_202E_202A_202E_206E_200E_202E_206D_206B_200E_202E(_206A_200B_200F_202D_202C_202A_202E_202E_206E_206A_206C_202E_202D_202C_206A_206C_206D_206A_202B_206A_202C_206F_202C_202E_206B_206B_206C_206E_200B_206F_200E_206F_202E_200D_200E_206C_206A_206E_200F_202E_202E(step)); - DutyRegistry.Duties.TryGetValue(_003CcfcId_003E5__2, out value); - num2 = (((object)value != null) ? (-1986449079) : (-1986449054)); - continue; - IL_0254: - effectiveEDutyMode = factory.GetEffectiveEDutyMode(_003CcfcId_003E5__2, registryDutyMode); - _003CdutyMode_003E5__3 = ConvertToAutoDutyMode(effectiveEDutyMode); - num2 = ((_003CdutyMode_003E5__3 != AutoDutyIpc.DutyMode.UnsyncRegular) ? (-1986449040) : (-1986449043)); - continue; - IL_030b: - num2 = ((!factory.bossModIpc.IsSupported()) ? (-1986449027) : (-1986449034)); - continue; - IL_03e8: - num2 = ((!factory.bossModIpc.IsSupported()) ? (-1986449026) : (-1986449042)); - continue; - IL_0104: - num2 = ((!factory.wrathComboModule.IsAvailable()) ? (-1986449044) : (-1986449052)); - continue; - IL_01b2: - num2 = ((factory.configuration.General.CombatModule != Configuration.ECombatModule.BossMod) ? (-1986449026) : (-1986449037)); - continue; - IL_03b0: - num2 = (value.LowPriority ? (-1986449039) : (-1986449048)); - continue; - IL_0294: - num2 = ((!factory.rsrModule.IsAvailable()) ? (-1986449033) : (-1986449078)); - continue; - IL_01f3: - num2 = (((object)value == null) ? (-1986449048) : (-1986449046)); - continue; - IL_0388: - num2 = (factory.autoDutyIpc.ManagesBossModAiSettings() ? (-1986449027) : (-1986449074)); - continue; - IL_0143: - num2 = (factory.autoDutyIpc.ManagesRotationPluginState() ? (-1986449033) : (-1986449041)); - continue; - end_IL_004c: - break; - } - goto case 2; - IL_0566: - _003C_003E1__state = -1; - num2 = -1986449039; - goto IL_004c; - IL_050a: - _003C_003E1__state = -1; - num2 = (QuestWorkUtils.HasCompletionFlags(_206A_202D_202D_206B_202B_206C_206D_206E_206A_200D_206B_206F_202C_206C_206A_206D_200B_206D_200B_202D_202A_206E_202D_206D_200C_200D_200C_206D_200F_206C_206B_200D_200C_200C_202A_206C_202C_206A_206E_202A_202E(step)) ? (-1986449039) : (-1986449080)); - goto IL_004c; - IL_0233: - _003C_003E1__state = -1; - _003C_003E2__current = new WaitAutoDutyTask(_003CcfcId_003E5__2); - _003C_003E1__state = 7; - return true; - IL_01e0: - _003C_003E1__state = -1; - num2 = -1986449038; - goto IL_004c; - IL_0424: - _003C_003E1__state = -1; - num2 = ((_202B_200D_200D_200D_202B_200D_202D_200E_202A_206B_206C_206E_206A_200F_200C_206C_200E_200F_200C_206D_200B_206B_206B_206C_202E_200D_200E_202C_200B_202B_206F_202A_200B_206C_206F_206C_206F_206A_206A_202A_202E(step) == EInteractionType.Duty) ? (-1986449053) : (-1986449029)); - goto IL_004c; - IL_016b: - _003C_003E1__state = -1; - num2 = -1986449033; - goto IL_004c; - IL_03d5: - _003C_003E1__state = -1; - num2 = -1986449027; - goto IL_004c; - IL_0346: - _003C_003E1__state = -1; - num2 = -1986449039; - goto IL_004c; - IL_0333: - _003C_003E1__state = -1; - num2 = -1986449027; - goto IL_004c; - end_IL_000f: - break; - } - _003C_003E1__state = -1; - _003C_003E2__current = new DisableCombatPluginsForDutyTask(); - _003C_003E1__state = 8; - return true; - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _200B_202C_202C_200B_200B_206A_200F_202D_200F_206C_206D_206A_202B_200D_206A_202B_202A_200B_206F_202D_200F_202C_202C_202A_206C_200B_206E_200F_202A_200F_202E_202B_200D_206A_206E_200F_202D_202E_202E_200D_202E(); - } - - [DebuggerHidden] - IEnumerator<ITask> IEnumerable<ITask>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? (-408191389) : (-408191391)); - _003CCreateAllTasks_003Ed__10 _003CCreateAllTasks_003Ed__ = default(_003CCreateAllTasks_003Ed__10); - while (true) - { - int num2 = num; - int num3 = -408191392; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - _003CCreateAllTasks_003Ed__.step = _003C_003E3__step; - return _003CCreateAllTasks_003Ed__; - case 1: - num = ((_003C_003El__initialThreadId != _200E_200F_206B_206F_200F_202B_206B_202B_206E_200E_202B_202A_202D_206D_202E_206B_200F_206A_202E_200C_202C_206F_200E_202E_202C_202B_202B_202D_200B_200D_200F_200D_206A_206E_202E_206B_206C_206B_202B_206D_202E()) ? (-408191389) : (-408191392)); - break; - case 2: - num = -408191391; - break; - case 0: - _003C_003E1__state = 0; - _003CCreateAllTasks_003Ed__ = this; - num = -408191388; - break; - case 3: - _003CCreateAllTasks_003Ed__ = new _003CCreateAllTasks_003Ed__10(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = -408191388; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ITask>)this).GetEnumerator(); - } - - static int _200E_200F_206B_206F_200F_202B_206B_202B_206E_200E_202B_202A_202D_206D_202E_206B_200F_206A_202E_200C_202C_206F_200E_202E_202C_202B_202B_202D_200B_200D_200F_200D_206A_206E_202E_206B_206C_206B_202B_206D_202E() - { - return Environment.CurrentManagedThreadId; - } - - static EInteractionType _202B_200D_200D_200D_202B_200D_202D_200E_202A_206B_206C_206E_206A_200F_200C_206C_200E_200F_200C_206D_200B_206B_206B_206C_202E_200D_200E_202C_200B_202B_206F_202A_200B_206C_206F_206C_206F_206A_206A_202A_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static DutyOptions _206A_200B_200F_202D_202C_202A_202E_202E_206E_206A_206C_202E_202D_202C_206A_206C_206D_206A_202B_206A_202C_206F_202C_202E_206B_206B_206C_206E_200B_206F_200E_206F_202E_200D_200E_206C_206A_206E_200F_202E_202E(QuestStep P_0) - { - return P_0.DutyOptions; - } - - static void _200B_202A_202C_206E_206B_206F_200D_200D_206C_200E_206C_206D_202C_202A_200D_200D_202E_200E_202C_200F_202E_206D_206C_200B_206D_202C_202C_206B_202D_200C_206E_200C_206A_206C_202E_206C_206F_200F_200D_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static uint _206F_206D_206C_202A_200D_202A_206E_200E_200F_206D_200E_206B_200F_206D_206A_202E_206F_202B_202E_200C_206C_200B_206B_200C_202D_200B_206C_200E_202A_206B_200C_202E_202A_202E_206E_200E_202E_206D_206B_200E_202E(DutyOptions P_0) - { - return P_0.ContentFinderConditionId; - } - - static List<QuestWorkValue> _206A_202D_202D_206B_202B_206C_206D_206E_206A_200D_206B_206F_202C_206C_206A_206D_200B_206D_200B_202D_202A_206E_202D_206D_200C_200D_200C_206D_200F_206C_206B_200D_200C_200C_202A_206C_202C_206A_206E_202A_202E(QuestStep P_0) - { - return P_0.CompletionQuestVariablesFlags; - } - - static NotSupportedException _200B_202C_202C_200B_200B_206A_200F_202D_200F_206C_206D_206A_202B_200D_206A_202B_202A_200B_206F_202D_200F_202C_202C_202A_206C_200B_206E_200F_202A_200F_202E_202B_200D_206A_206E_200F_202D_202E_202E_200D_202E() - { - return new NotSupportedException(); - } - } - - public IEnumerable<ITask> CreateAllTasks(Questionable.Model.Quest quest, QuestSequence sequence, QuestStep step) - { - uint cfcId = default(uint); - AutoDutyIpc.DutyMode dutyMode = default(AutoDutyIpc.DutyMode); - DutyEntry value = default(DutyEntry); - EDutyMode effectiveEDutyMode = default(EDutyMode); - EDutyMode? registryDutyMode = default(EDutyMode?); - while (true) - { - int num = ((_003CCreateAllTasks_003Ed__10._202B_200D_200D_200D_202B_200D_202D_200E_202A_206B_206C_206E_206A_200F_200C_206C_200E_200F_200C_206D_200B_206B_206B_206C_202E_200D_200E_202C_200B_202B_206F_202A_200B_206C_206F_206C_206F_206A_206A_202A_202E(step) == EInteractionType.Duty) ? (-1986449053) : (-1986449029)); - while (true) - { - int num2 = num; - int num3 = -1986449046; - int num4 = num2; - int num5; - EDutyMode? obj; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 5: - num = ((!wrathComboModule.IsAvailable()) ? (-1986449044) : (-1986449052)); - continue; - case 27: - yield break; - case 1: - num = -1986449033; - continue; - case 3: - yield break; - case 24: - num = (autoDutyIpc.ManagesRotationPluginState() ? (-1986449033) : (-1986449041)); - continue; - case 16: - num = -1986449033; - continue; - case 23: - yield return new StartAutoDutyTask(cfcId, dutyMode); - goto case 19; - case 14: yield return new EnableWrathForDutyTask(); - goto case 1; - case 36: - num = ((configuration.General.CombatModule != Configuration.ECombatModule.BossMod) ? (-1986449026) : (-1986449037)); - continue; - case 21: - num = -1986449038; - continue; - case 13: - num = (((object)value == null) ? (-1986449048) : (-1986449046)); - continue; - case 37: - num = -1986449047; - continue; - case 7: - num5 = ((effectiveEDutyMode == EDutyMode.UnsyncParty) ? 1 : 0); - goto IL_0456; - case 19: - yield return new WaitAutoDutyTask(cfcId); - goto case 11; - case 30: - effectiveEDutyMode = GetEffectiveEDutyMode(cfcId, registryDutyMode); - dutyMode = ConvertToAutoDutyMode(effectiveEDutyMode); - num = ((dutyMode != AutoDutyIpc.DutyMode.UnsyncRegular) ? (-1986449040) : (-1986449043)); - continue; - case 6: - num = ((!rsrModule.IsAvailable()) ? (-1986449033) : (-1986449078)); - continue; - case 35: - obj = value.DutyMode; - goto IL_02c2; - case 34: - yield return new WaitAtEnd.WaitNextStepOrSequence(); - goto case 18; - case 20: - num = ((!bossModIpc.IsSupported()) ? (-1986449027) : (-1986449034)); - continue; - case 22: - num = -1986449027; - continue; - case 15: - num = -1986449039; - continue; - case 2: - yield return new OpenDutyFinderTask(cfcId); - goto case 15; - case 33: - yield return new WaitForPartyTask(); - goto case 21; - case 29: - num = (autoDutyIpc.ManagesBossModAiSettings() ? (-1986449027) : (-1986449074)); - continue; - case 0: - num = (value.LowPriority ? (-1986449039) : (-1986449048)); - continue; - case 17: - yield break; - case 31: - num = -1986449027; - continue; - case 25: - num = ((!bossModIpc.IsSupported()) ? (-1986449026) : (-1986449042)); - continue; - case 4: - yield return new EnableBossModForDutyTask(); - goto case 31; - case 10: - break; - case 26: - num5 = 0; - goto IL_0456; - case 9: - _003CCreateAllTasks_003Ed__10._200B_202A_202C_206E_206B_206F_200D_200D_206C_200E_206C_206D_202C_202A_200D_200D_202E_200E_202C_200F_202E_206D_206C_200B_206D_202C_202C_206B_202D_200C_206E_200C_206A_206C_202E_206C_206F_200F_200D_202E((object)_003CCreateAllTasks_003Ed__10._206A_200B_200F_202D_202C_202A_202E_202E_206E_206A_206C_202E_202D_202C_206A_206C_206D_206A_202B_206A_202C_206F_202C_202E_206B_206B_206C_206E_200B_206F_200E_206F_202E_200D_200E_206C_206A_206E_200F_202E_202E(step), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(190396670)); - cfcId = _003CCreateAllTasks_003Ed__10._206F_206D_206C_202A_200D_202A_206E_200E_200F_206D_200E_206B_200F_206D_206A_202E_206F_202B_202E_200C_206C_200B_206B_200C_202D_200B_206C_200E_202A_206B_200C_202E_202A_202E_206E_200E_202E_206D_206B_200E_202E(_003CCreateAllTasks_003Ed__10._206A_200B_200F_202D_202C_202A_202E_202E_206E_206A_206C_202E_202D_202C_206A_206C_206D_206A_202B_206A_202C_206F_202C_202E_206B_206B_206C_206E_200B_206F_200E_206F_202E_200D_200E_206C_206A_206E_200F_202E_202E(step)); - DutyRegistry.Duties.TryGetValue(cfcId, out value); - num = (((object)value != null) ? (-1986449079) : (-1986449054)); - continue; - case 11: - yield return new DisableCombatPluginsForDutyTask(); - goto case 12; - case 8: - obj = null; - goto IL_02c2; - case 12: - num = (QuestWorkUtils.HasCompletionFlags(_003CCreateAllTasks_003Ed__10._206A_202D_202D_206B_202B_206C_206D_206E_206A_200D_206B_206F_202C_206C_206A_206D_200B_206D_200B_202D_202A_206E_202D_206D_200C_200D_200C_206D_200F_206C_206B_200D_200C_200C_202A_206C_202C_206A_206E_202A_202E(step)) ? (-1986449039) : (-1986449080)); - continue; - case 28: - yield return new EnableBossModPassiveForDutyTask(); - goto case 22; - case 32: - yield return new EnableRsrForDutyTask(); - goto case 16; - case 18: - { - num = -1986449039; - continue; - } - IL_0456: - num = ((num5 == 0) ? (-1986449038) : (-1986449077)); - continue; - IL_02c2: - registryDutyMode = obj; - num = ((!autoDutyIpc.IsConfiguredToRunContent(_003CCreateAllTasks_003Ed__10._206A_200B_200F_202D_202C_202A_202E_202E_206E_206A_206C_202E_202D_202C_206A_206C_206D_206A_202B_206A_202C_206F_202C_202E_206B_206B_206C_206E_200B_206F_200E_206F_202E_200D_200E_206C_206A_206E_200F_202E_202E(step))) ? (-1986449049) : (-1986449036)); - continue; } - break; + else if (rsrModule.IsAvailable()) + { + yield return new EnableRsrForDutyTask(); + } } + if (!autoDutyIpc.ManagesBossModAiSettings()) + { + if (configuration.General.CombatModule == Configuration.ECombatModule.BossMod && bossModIpc.IsSupported()) + { + yield return new EnableBossModForDutyTask(); + } + else if (bossModIpc.IsSupported()) + { + yield return new EnableBossModPassiveForDutyTask(); + } + } + yield return new StartAutoDutyTask(cfcId, dutyMode); + yield return new WaitAutoDutyTask(cfcId); + yield return new DisableCombatPluginsForDutyTask(); + if (!QuestWorkUtils.HasCompletionFlags(step.CompletionQuestVariablesFlags)) + { + yield return new WaitAtEnd.WaitNextStepOrSequence(); + } + } + else if ((object)value == null || !value.LowPriority) + { + yield return new OpenDutyFinderTask(cfcId); } } - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Questionable.Model.Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); - } - - [MethodImpl(MethodImplOptions.NoInlining)] private EDutyMode GetEffectiveEDutyMode(uint cfcId, EDutyMode? registryDutyMode) { - int num = ((!registryDutyMode.HasValue) ? (-1266283203) : (-1266283204)); - EDutyMode defaultDutyMode = default(EDutyMode); - EDutyMode value = default(EDutyMode); - while (true) + if (registryDutyMode.HasValue) { - int num2 = num; - int num3 = -1266283202; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - defaultDutyMode = configuration.Duties.DefaultDutyMode; - num = ((defaultDutyMode != EDutyMode.Support) ? (-1266283205) : (-1266283210)); - break; - case 2: - return registryDutyMode.Value; - case 1: - num = ((!IsSafelyOverleveled(cfcId)) ? (-1266283205) : (-1266283206)); - break; - case 3: - num = ((!configuration.Duties.DutyModeOverrides.TryGetValue(cfcId, out value)) ? (-1266283208) : (-1266283207)); - break; - case 0: - num = -1266283204; - break; - case 8: - num = ((!configuration.Duties.AutoUnsyncOverleveled) ? (-1266283205) : (-1266283201)); - break; - case 4: - _200F_206A_202D_206F_200C_202B_206D_206F_206D_206E_200B_200E_202A_206D_206A_206C_206A_202A_206A_200B_206F_200F_200D_206F_206E_206F_200F_206B_206F_202D_206C_206C_206F_202B_202B_202C_206F_202D_206A_202A_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1793434316), new object[1] { cfcId }); - return EDutyMode.UnsyncSolo; - case 5: - return defaultDutyMode; - case 7: - return value; - } + return registryDutyMode.Value; } + if (configuration.Duties.DutyModeOverrides.TryGetValue(cfcId, out var value)) + { + return value; + } + EDutyMode defaultDutyMode = configuration.Duties.DefaultDutyMode; + if (defaultDutyMode == EDutyMode.Support && configuration.Duties.AutoUnsyncOverleveled && IsSafelyOverleveled(cfcId)) + { + logger.LogInformation("Running duty {CfcId} unsynced, as the player is safely overleveled", cfcId); + return EDutyMode.UnsyncSolo; + } + return defaultDutyMode; } private unsafe bool IsSafelyOverleveled(uint cfcId) { - TerritoryData.ContentFinderConditionData contentFinderConditionData; - int num = (territoryData.TryGetContentFinderCondition(cfcId, out contentFinderConditionData) ? 930630783 : 930630772); - int num7 = default(int); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - InventoryManager* ptr = default(InventoryManager*); - while (true) + if (!territoryData.TryGetContentFinderCondition(cfcId, out TerritoryData.ContentFinderConditionData contentFinderConditionData)) { - int num2 = num; - int num3 = 930630776; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - { - IPlayerCharacter playerCharacter = _206C_202A_206B_202A_202A_206D_202A_200B_202A_200F_202A_200B_206F_200E_200F_206B_206A_206B_200C_206F_200F_202E_200E_202B_200F_200C_202B_200B_206A_202C_200C_202A_206F_202C_206A_202B_206E_200B_202B_202E(objectTable); - num7 = ((playerCharacter != null) ? _202A_206D_200D_202C_200D_202B_206F_206D_206C_206C_200D_206C_206A_202C_202D_200C_202C_200E_200B_202E_202C_206E_202D_200D_200E_202D_202A_200F_206B_206C_206A_206E_202E_206C_202B_202B_206D_200E_200F_206F_202E((ICharacter)playerCharacter) : 0) - contentFinderConditionData.ClassJobLevelSync; - num = ((num7 < 15) ? 930630782 : 930630774); - break; - } - case 7: - num = ((!contentFinderConditionData.IsDungeon) ? 930630768 : 930630780); - break; - case 10: - num = ((contentFinderConditionData.ClassJobLevelSync != 0) ? 930630777 : 930630768); - break; - case 3: - num = 930630772; - break; - case 6: - num = ((num7 >= 10) ? 930630773 : 930630769); - break; - case 14: - return true; - case 8: - return false; - case 4: - num = ((!contentFinderConditionData.AllowUndersized) ? 930630768 : 930630770); - break; - case 9: - return false; - case 11: - inventoryContainer = ptr->GetInventoryContainer(InventoryType.EquippedItems); - num = ((inventoryContainer != null) ? 930630781 : 930630776); - break; - case 2: - return false; - case 12: - return false; - case 0: - return false; - case 5: - return _202C_206C_202C_206D_206E_202B_206C_200F_206C_200C_200F_200C_200E_206A_206E_202B_202E_200F_200C_200B_206C_200F_202B_200D_200D_206B_200C_200D_206C_206A_202D_202E_202B_202B_202B_206E_200C_200D_202A_202B_202E(gearStatsCalculator, inventoryContainer) - contentFinderConditionData.RequiredItemLevel >= 100; - case 13: - ptr = InventoryManager.Instance(); - num = ((ptr != null) ? 930630771 : 930630778); - break; - } + return false; } + if (!contentFinderConditionData.IsDungeon || !contentFinderConditionData.AllowUndersized || contentFinderConditionData.ClassJobLevelSync == 0) + { + return false; + } + int num = (objectTable.LocalPlayer?.Level ?? 0) - contentFinderConditionData.ClassJobLevelSync; + if (num >= 15) + { + return true; + } + if (num < 10) + { + return false; + } + InventoryManager* ptr = InventoryManager.Instance(); + if (ptr == null) + { + return false; + } + InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(InventoryType.EquippedItems); + if (inventoryContainer == null) + { + return false; + } + return gearStatsCalculator.CalculateAverageItemLevel(inventoryContainer) - contentFinderConditionData.RequiredItemLevel >= 100; } private static AutoDutyIpc.DutyMode ConvertToAutoDutyMode(EDutyMode mode) { - int num; - AutoDutyIpc.DutyMode result = default(AutoDutyIpc.DutyMode); - switch (mode) + return mode switch { - default: - num = 1970716629; - goto IL_001d; - case EDutyMode.UnsyncParty: - result = AutoDutyIpc.DutyMode.UnsyncRegular; - num = 1970716626; - goto IL_001d; - case EDutyMode.UnsyncSolo: - goto IL_0077; - case EDutyMode.Support: - goto IL_0084; - IL_001d: - while (true) - { - int num2 = num; - int num3 = 1970716624; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - goto end_IL_001d; - case 5: - num = 1970716630; - break; - case 0: - num = 1970716629; - break; - case 3: - goto IL_0077; - case 4: - goto IL_0084; - case 6: - result = AutoDutyIpc.DutyMode.Support; - num = 1970716626; - break; - case 2: - return result; - } - continue; - end_IL_001d: - break; - } - goto case EDutyMode.UnsyncParty; - IL_0084: - result = AutoDutyIpc.DutyMode.Support; - num = 1970716626; - goto IL_001d; - IL_0077: - result = AutoDutyIpc.DutyMode.UnsyncRegular; - num = 1970716626; - goto IL_001d; - } - } - - static void _200F_206A_202D_206F_200C_202B_206D_206F_206D_206E_200B_200E_202A_206D_206A_206C_206A_202A_206A_200B_206F_200F_200D_206F_206E_206F_200F_206B_206F_202D_206C_206C_206F_202B_202B_202C_206F_202D_206A_202A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static IPlayerCharacter _206C_202A_206B_202A_202A_206D_202A_200B_202A_200F_202A_200B_206F_200E_200F_206B_206A_206B_200C_206F_200F_202E_200E_202B_200F_200C_202B_200B_206A_202C_200C_202A_206F_202C_206A_202B_206E_200B_202B_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static byte _202A_206D_200D_202C_200D_202B_206F_206D_206C_206C_200D_206C_206A_202C_202D_200C_202C_200E_200B_202E_202C_206E_202D_200D_200E_202D_202A_200F_206B_206C_206A_206E_202E_206C_202B_202B_206D_200E_200F_206F_202E(ICharacter P_0) - { - return P_0.Level; - } - - unsafe static short _202C_206C_202C_206D_206E_202B_206C_200F_206C_200C_200F_200C_200E_206A_206E_202B_202E_200F_200C_200B_206C_200F_202B_200D_200D_206B_200C_200D_206C_206A_202D_202E_202B_202B_202B_206E_200C_200D_202A_202B_202E(GearStatsCalculator P_0, InventoryContainer* P_1) - { - return P_0.CalculateAverageItemLevel(P_1); + EDutyMode.Support => AutoDutyIpc.DutyMode.Support, + EDutyMode.UnsyncSolo => AutoDutyIpc.DutyMode.UnsyncRegular, + EDutyMode.UnsyncParty => AutoDutyIpc.DutyMode.UnsyncRegular, + _ => AutoDutyIpc.DutyMode.Support, + }; } } internal sealed record WaitForPartyTask : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206A_200B_206B_206F_202A_202C_202B_202E_200D_202B_206B_202B_202D_206B_206D_202B_206E_200E_202E_206B_206F_206A_200D_202A_206C_206C_202B_200D_202A_202E_200E_200C_202A_206F_202D_206E_202E_202A_202C_206A_202E(typeof(WaitForPartyTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-91915822); - } - - [CompilerGenerated] - public bool Equals(WaitForPartyTask? other) - { - int num = (((object)this == other) ? 354214905 : 354214910); - while (true) - { - int num2 = num; - int num3 = 354214909; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 354214910; - break; - case 4: - return true; - case 1: - return _200B_200B_202B_200C_206D_202C_202A_202C_206C_202B_206E_206E_200C_206B_202E_206F_202A_206D_200B_200B_202E_206B_206E_206D_206D_202A_200F_206C_200E_206E_206A_206F_200D_202C_206E_202B_200E_202C_202B_200D_202E(EqualityContract, other.EqualityContract); - case 3: - num = (((object)other == null) ? 354214911 : 354214908); - break; - case 2: - return false; - } - } - } - - bool IEquatable<WaitForPartyTask>.Equals(WaitForPartyTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206A_200B_206B_206F_202A_202C_202B_202E_200D_202B_206B_202B_202D_206B_206D_202B_206E_200E_202E_206B_206F_206A_200D_202A_206C_206C_202B_200D_202A_202E_200E_200C_202A_206F_202D_206E_202E_202A_202C_206A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _200B_200B_202B_200C_206D_202C_202A_202C_206C_202B_206E_206E_200C_206B_202E_206F_202A_206D_200B_200B_202E_206B_206E_206D_206D_202A_200F_206C_200E_206E_206A_206F_200D_202C_206E_202B_200E_202C_202B_200D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "WaitForParty"; } } @@ -834,204 +155,53 @@ internal static class Duty private long _startMs; - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - _206C_206A_202B_202A_202E_202C_202A_202E_206F_202B_206F_202E_202D_202D_200F_200B_200D_200D_202D_202A_200F_202B_202E_206B_202D_200C_206F_200E_200B_202D_202B_206A_200C_206E_206E_200D_202C_202E_202C_206A_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-48268655), Array.Empty<object>()); - _startMs = _200D_200F_200E_206A_206F_200C_200B_202D_202B_206F_200F_200C_206F_202E_200B_206A_206D_206F_200F_202D_202E_202E_202D_202E_202C_202E_200F_202A_200E_202D_206A_206C_206E_202A_206B_206A_206B_200E_202B_200C_202E(); + logger.LogDebug("Waiting for party members before starting duty..."); + _startMs = Environment.TickCount64; return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe override ETaskResult Update() { GroupManager* ptr = GroupManager.Instance(); - int num = ((ptr != null) ? (-782293747) : (-782293748)); - long num6 = default(long); - byte memberCount = default(byte); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -782293752; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - num = -782293748; - break; - case 3: - num = ((num6 < _warnNextMs) ? (-782293760) : (-782293752)); - break; - case 7: - _202D_200E_202B_202E_200B_200F_202D_200E_200D_200C_206F_200C_200E_206C_202C_206D_202B_206B_206C_206D_200C_202B_200D_202A_202D_200D_200D_206B_202C_200D_202C_202A_202A_206D_200E_200F_206D_200F_200E_206F_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(923058086), Array.Empty<object>()); - _206D_200D_200B_202E_200C_202C_206F_200C_202E_200C_202C_200E_202C_206C_202C_206D_206C_206E_206D_202A_202A_202E_206B_200F_206B_206B_202B_200F_206B_206F_202A_206D_206D_202D_206C_200E_206A_206C_202B_202A_202E(chatGui, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-323748972), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - return ETaskResult.End; - case 5: - { - memberCount = ptr->MainGroup.MemberCount; - bool isAlliance = ptr->MainGroup.IsAlliance; - bool num12 = memberCount > 1; - num3 = (isAlliance ? 1 : 0); - num4 = (num12 ? 1 : 0); - num = ((num4 + num3 - (num4 & num3) == 0) ? (-782293751) : (-782293750)); - break; - } - case 8: - return ETaskResult.StillRunning; - case 1: - { - num6 = _200D_200F_200E_206A_206F_200C_200B_202D_202B_206F_200F_200C_206F_202E_200B_206A_206D_206F_200F_202D_202E_202E_202D_202E_202C_202E_200F_202A_200E_202D_206A_206C_206E_202A_206B_206A_206B_200E_202B_200C_202E(); - long num11 = num6; - long num7 = _startMs; - long num8 = num11; - num = ((~(~num8 + num7) <= 300000) ? (-782293749) : (-782293745)); - break; - } - case 4: - return ETaskResult.StillRunning; - case 0: - { - _206D_202B_206E_206C_206F_202C_206E_202C_206C_202A_206A_206F_206D_202C_206C_202D_202E_206E_200E_202C_206E_200E_206B_200B_200E_202A_200E_200F_206F_206F_200B_202A_206D_202B_202E_200D_200C_206C_200B_200D_202E(chatGui, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1726719131), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - long num5 = num6; - long num7 = 10000L; - long num8 = num5; - long num9 = num8 ^ num7; - long num10 = num8 & num7; - _warnNextMs = num9 + (num10 + num10); - num = -782293760; - break; - } - case 2: - _206C_206A_202B_202A_202E_202C_202A_202E_206F_202B_206F_202E_202D_202D_200F_200B_200D_200D_202D_202A_200F_202B_202E_206B_202D_200C_206F_200E_200B_202D_202B_206A_200C_206E_206E_200D_202C_202E_202C_206A_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2115626228), new object[1] { memberCount }); - return ETaskResult.TaskComplete; - } + return ETaskResult.StillRunning; } + byte memberCount = ptr->MainGroup.MemberCount; + bool isAlliance = ptr->MainGroup.IsAlliance; + if (memberCount > 1 || isAlliance) + { + logger.LogDebug("Party detected with {MemberCount} members, proceeding with duty", memberCount); + return ETaskResult.TaskComplete; + } + long tickCount = Environment.TickCount64; + if (tickCount - _startMs > 300000) + { + logger.LogError("No party members joined within 5 minutes, stopping"); + chatGui.PrintError("No party members joined within 5 minutes, stopping.", "Questionable", 576); + return ETaskResult.End; + } + if (tickCount >= _warnNextMs) + { + chatGui.Print("[Questionable] Waiting for party members before starting duty (Unsync Party mode)...", "Questionable", 576); + _warnNextMs = tickCount + 10000; + } + return ETaskResult.StillRunning; } public override bool ShouldInterruptOnDamage() { return false; } - - static void _206C_206A_202B_202A_202E_202C_202A_202E_206F_202B_206F_202E_202D_202D_200F_200B_200D_200D_202D_202A_200F_202B_202E_206B_202D_200C_206F_200E_200B_202D_202B_206A_200C_206E_206E_200D_202C_202E_202C_206A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static long _200D_200F_200E_206A_206F_200C_200B_202D_202B_206F_200F_200C_206F_202E_200B_206A_206D_206F_200F_202D_202E_202E_202D_202E_202C_202E_200F_202A_200E_202D_206A_206C_206E_202A_206B_206A_206B_200E_202B_200C_202E() - { - return Environment.TickCount64; - } - - static void _202D_200E_202B_202E_200B_200F_202D_200E_200D_200C_206F_200C_200E_206C_202C_206D_202B_206B_206C_206D_200C_202B_200D_202A_202D_200D_200D_206B_202C_200D_202C_202A_202A_206D_200E_200F_206D_200F_200E_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogError(P_1, P_2); - } - - static void _206D_200D_200B_202E_200C_202C_206F_200C_202E_200C_202C_200E_202C_206C_202C_206D_206C_206E_206D_202A_202A_202E_206B_200F_206B_206B_202B_200F_206B_206F_202A_206D_206D_202D_206C_200E_206A_206C_202B_202A_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } - - static void _206D_202B_206E_206C_206F_202C_206E_202C_206C_202A_206A_206F_206D_202C_206C_202D_202E_206E_200E_202C_206E_200E_206B_200B_200E_202A_200E_200F_206F_206F_200B_202A_206D_202B_202E_200D_200C_206C_200B_200D_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); - } } internal sealed record StartAutoDutyTask(uint ContentFinderConditionId, AutoDutyIpc.DutyMode DutyMode) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200E_206F_200B_200D_200B_206C_202C_202A_200E_202B_206A_200E_206A_202C_200B_200C_206B_206F_206C_200F_200B_200D_202C_202A_200D_202D_200B_206E_206E_200F_206F_206D_200E_202E_202B_200B_202A_200B_202A_200C_202E(typeof(StartAutoDutyTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(17, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2068222385)); - defaultInterpolatedStringHandler.AppendFormatted(ContentFinderConditionId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1087086507)); - defaultInterpolatedStringHandler.AppendFormatted(DutyMode); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200E_206E_202E_202E_200F_202A_206B_202C_206C_202E_200F_200C_200B_200C_206A_206B_206D_200D_200C_200C_202B_200C_202E_202E_202C_202D_200C_206A_202A_202D_202E_206D_206C_202E_200B_200B_206B_200E_202A_202E_202E(); - _202C_202B_206F_202E_202A_202C_200B_206C_202D_202D_202D_206D_206E_206C_200B_200B_206F_200B_200D_206F_206D_206B_206A_202B_206D_206A_200E_202B_206A_206A_202E_206D_200F_206A_202A_200D_202E_202B_200C_200F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-532733746)); - _202C_202B_206F_202E_202A_202C_200B_206C_202D_202D_202D_206D_206E_206C_200B_200B_206F_200B_200D_206F_206D_206B_206A_202B_206D_206A_200E_202B_206A_206A_202E_206D_200F_206A_202A_200D_202E_202B_200C_200F_202E(builder, ContentFinderConditionId.ToString()); - _202C_202B_206F_202E_202A_202C_200B_206C_202D_202D_202D_206D_206E_206C_200B_200B_206F_200B_200D_206F_206D_206B_206A_202B_206D_206A_200E_202B_206A_206A_202E_206D_200F_206A_202A_200D_202E_202B_200C_200F_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1559637926)); - _202C_202B_206F_202E_202A_202C_200B_206C_202D_202D_202D_206D_206E_206C_200B_200B_206F_200B_200D_206F_206D_206B_206A_202B_206D_206A_200E_202B_206A_206A_202E_206D_200F_206A_202A_200D_202E_202B_200C_200F_202E(builder, DutyMode.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(StartAutoDutyTask? other) - { - int num = (((object)this == other) ? 1503405605 : 1503405604); - while (true) - { - int num2 = num; - int num3 = 1503405605; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - num = 1503405604; - break; - case 6: - num = ((!EqualityComparer<uint>.Default.Equals(ContentFinderConditionId, other.ContentFinderConditionId)) ? 1503405601 : 1503405606); - break; - case 3: - return EqualityComparer<AutoDutyIpc.DutyMode>.Default.Equals(DutyMode, other.DutyMode); - case 1: - num = (((object)other == null) ? 1503405601 : 1503405607); - break; - case 0: - return true; - case 4: - return false; - case 2: - num = ((!_206F_200D_206A_206D_200D_206B_206D_202E_202C_202B_206A_202A_202C_206D_200D_206B_202D_200C_202D_202C_202C_200D_206F_206B_206F_202E_200C_200E_206D_200E_206C_206E_206D_202E_202D_202E_206E_200B_202C_202E(EqualityContract, other.EqualityContract)) ? 1503405601 : 1503405603); - break; - } - } - } - - bool IEquatable<StartAutoDutyTask>.Equals(StartAutoDutyTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200E_206F_200B_200D_200B_206C_202C_202A_200E_202B_206A_200E_206A_202C_200B_200C_206B_206F_206C_200F_200B_200D_202C_202A_200D_202D_200B_206E_206E_200F_206F_206D_200E_202E_202B_200B_202A_200B_202A_200C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _200E_206E_202E_202E_200F_202A_206B_202C_206C_202E_200F_200C_200B_200C_206A_206B_206D_200D_200C_200C_202B_200C_202E_202E_202C_202D_200C_206A_202A_202D_202E_206D_206C_202E_200B_200B_206B_200E_202A_202E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202C_202B_206F_202E_202A_202C_200B_206C_202D_202D_202D_206D_206E_206C_200B_200B_206F_200B_200D_206F_206D_206B_206A_202B_206D_206A_200E_202B_206A_206A_202E_206D_200F_206A_202A_200D_202E_202B_200C_200F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _206F_200D_206A_206D_200D_206B_206D_202E_202C_202B_206A_202A_202C_206D_200D_206B_202D_200C_202D_202C_202C_200D_206F_206B_206F_202E_200C_200E_206D_200E_206C_206E_206D_202E_202D_202E_206E_200B_202C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"StartAutoDuty({ContentFinderConditionId}, {DutyMode})"; } } @@ -1039,116 +209,61 @@ internal static class Duty { private long _startMs; - [MethodImpl(MethodImplOptions.NoInlining)] protected unsafe override bool Start() { - TerritoryData.ContentFinderConditionData contentFinderConditionData; - int num = (territoryData.TryGetContentFinderCondition(base.Task.ContentFinderConditionId, out contentFinderConditionData) ? (-980640286) : (-980640288)); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - short num7 = default(short); - string text = default(string); - while (true) + if (!territoryData.TryGetContentFinderCondition(base.Task.ContentFinderConditionId, out TerritoryData.ContentFinderConditionData contentFinderConditionData)) { - int num2 = num; - int num3 = -980640281; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + throw new TaskException("Failed to get territory ID for content finder condition"); + } + if (base.Task.DutyMode != AutoDutyIpc.DutyMode.UnsyncRegular) + { + InventoryManager* intPtr = InventoryManager.Instance(); + if (intPtr == null) { - case 0: - num = -980640288; - break; - case 2: + throw new TaskException("Inventory unavailable"); + } + InventoryContainer* inventoryContainer = intPtr->GetInventoryContainer(InventoryType.EquippedItems); + if (inventoryContainer == null) { - InventoryManager* intPtr = InventoryManager.Instance(); - if (intPtr == null) + throw new TaskException("Equipped items unavailable"); + } + short num = gearStatsCalculator.CalculateAverageItemLevel(inventoryContainer); + if (contentFinderConditionData.RequiredItemLevel > num) + { + string text = $"Could not use AutoDuty to queue for {contentFinderConditionData.Name}, required item level: {contentFinderConditionData.RequiredItemLevel}, current item level: {num}."; + if (!sendNotificationExecutor.Start(new SendNotification.Task(EInteractionType.Duty, text))) { - throw new TaskException(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1365738455)); + chatGui.PrintError(text, "Questionable", 576); } - inventoryContainer = intPtr->GetInventoryContainer(InventoryType.EquippedItems); - num = ((inventoryContainer != null) ? (-980640274) : (-980640284)); - break; - } - case 1: return false; - case 4: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(82, 3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(379247300)); - defaultInterpolatedStringHandler.AppendFormatted(contentFinderConditionData.Name); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-314153188)); - defaultInterpolatedStringHandler.AppendFormatted(contentFinderConditionData.RequiredItemLevel); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-205350481)); - defaultInterpolatedStringHandler.AppendFormatted(num7); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-978038014)); - text = defaultInterpolatedStringHandler.ToStringAndClear(); - num = (sendNotificationExecutor.Start(new SendNotification.Task(EInteractionType.Duty, text)) ? (-980640282) : (-980640287)); - break; - } - case 8: - autoDutyIpc.StartInstance(base.Task.ContentFinderConditionId, base.Task.DutyMode); - _startMs = _206C_202E_206F_200F_206B_200E_206E_200C_206A_206E_202B_206D_202D_202D_200E_202A_206E_200F_200D_202A_206F_202B_200C_202B_206B_206F_206E_200E_200E_202A_200B_206B_202D_206A_206E_200D_200B_200B_206F_202A_202E(); - return true; - case 9: - num7 = _200F_202A_202B_206D_206A_206D_206C_200C_200F_202E_202B_200E_200E_206C_206F_200C_202D_200B_200D_206F_206C_202D_202E_206E_200F_200B_206A_206A_202A_206E_200D_200D_206D_200F_200E_200D_202B_202B_206F_206B_202E(gearStatsCalculator, inventoryContainer); - num = ((contentFinderConditionData.RequiredItemLevel <= num7) ? (-980640273) : (-980640285)); - break; - case 7: - throw new TaskException(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-474694589)); - case 6: - _206A_206D_200B_206F_206D_200E_202A_200C_202C_202E_202A_206D_200D_206E_202D_206D_202D_202B_200F_202A_206D_200C_202A_200E_206D_202A_200E_200E_202D_202B_206A_200C_202C_200C_200B_202A_202E_206F_206F_202A_202E(chatGui, text, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - num = -980640282; - break; - case 5: - num = ((base.Task.DutyMode == AutoDutyIpc.DutyMode.UnsyncRegular) ? (-980640273) : (-980640283)); - break; - case 3: - throw new TaskException(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1709557218)); } } + autoDutyIpc.StartInstance(base.Task.ContentFinderConditionId, base.Task.DutyMode); + _startMs = Environment.TickCount64; + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - TerritoryData.ContentFinderConditionData contentFinderConditionData; - int num = (territoryData.TryGetContentFinderCondition(base.Task.ContentFinderConditionId, out contentFinderConditionData) ? (-2114723665) : (-2114723668)); - while (true) + if (!territoryData.TryGetContentFinderCondition(base.Task.ContentFinderConditionId, out TerritoryData.ContentFinderConditionData contentFinderConditionData)) { - int num2 = num; - int num3 = -2114723665; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 8: - num = ((_206C_202E_206F_200F_206B_200E_206E_200C_206A_206E_202B_206D_202D_202D_200E_202A_206E_200F_200D_202A_206F_202B_200C_202B_206B_206F_206E_200E_200E_202A_200B_206B_202D_206A_206E_200D_200B_200B_206F_202A_202E() - _startMs >= 10000) ? (-2114723669) : (-2114723667)); - break; - case 1: - return ETaskResult.TaskComplete; - case 3: - throw new TaskException(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(502048434)); - case 7: - return ETaskResult.StillRunning; - case 6: - num = -2114723668; - break; - case 0: - num = ((_202B_202E_200B_200D_202E_206F_202E_200F_200B_206F_206B_202A_206C_202B_200B_206C_202E_206B_206B_200D_202D_202E_206F_206A_206F_200F_206F_202B_206A_202C_206B_200C_206B_202A_200F_202C_200C_206F_206D_200D_202E(clientState) != contentFinderConditionData.TerritoryId) ? (-2114723670) : (-2114723666)); - break; - case 2: - return ETaskResult.StillRunning; - case 5: - num = (autoDutyIpc.IsStopped() ? (-2114723673) : (-2114723672)); - break; - case 4: - _206D_206E_202E_202B_202E_206D_200E_200D_206E_200B_200C_200E_206F_206F_202E_206B_206C_202A_206A_202B_206E_206E_202D_202D_202E_206A_200E_202C_200E_200E_206D_202E_206C_202D_206E_202C_206B_200F_206F_202B_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1754806661), new object[1] { base.Task.ContentFinderConditionId }); - _206A_206D_200B_206F_206D_200E_202A_200C_202C_202E_202A_206D_200D_206E_202D_206D_202D_202B_200F_202A_206D_200C_202A_200E_206D_202A_200E_200E_202D_202B_206A_200C_202C_200C_200B_202A_202E_206F_206F_202A_202E(chatGui, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(170724657), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - return ETaskResult.End; - } + throw new TaskException("Failed to get territory ID for content finder condition"); } + if (clientState.TerritoryType == contentFinderConditionData.TerritoryId) + { + return ETaskResult.TaskComplete; + } + if (!autoDutyIpc.IsStopped()) + { + return ETaskResult.StillRunning; + } + if (Environment.TickCount64 - _startMs < 10000) + { + return ETaskResult.StillRunning; + } + logger.LogError("AutoDuty stopped without entering duty {CfcId} after 10 seconds", base.Task.ContentFinderConditionId); + chatGui.PrintError("AutoDuty failed to start the duty, stopping.", "Questionable", 576); + return ETaskResult.End; } public void StopNow() @@ -1156,129 +271,17 @@ internal static class Duty autoDutyIpc.Stop(); } - void IStoppableTaskExecutor.StopNow() - { - //ILSpy generated this explicit interface implementation from .override directive in StopNow - this.StopNow(); - } - public override bool ShouldInterruptOnDamage() { return false; } - - unsafe static short _200F_202A_202B_206D_206A_206D_206C_200C_200F_202E_202B_200E_200E_206C_206F_200C_202D_200B_200D_206F_206C_202D_202E_206E_200F_200B_206A_206A_202A_206E_200D_200D_206D_200F_200E_200D_202B_202B_206F_206B_202E(GearStatsCalculator P_0, InventoryContainer* P_1) - { - return P_0.CalculateAverageItemLevel(P_1); - } - - static void _206A_206D_200B_206F_206D_200E_202A_200C_202C_202E_202A_206D_200D_206E_202D_206D_202D_202B_200F_202A_206D_200C_202A_200E_206D_202A_200E_200E_202D_202B_206A_200C_202C_200C_200B_202A_202E_206F_206F_202A_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } - - static long _206C_202E_206F_200F_206B_200E_206E_200C_206A_206E_202B_206D_202D_202D_200E_202A_206E_200F_200D_202A_206F_202B_200C_202B_206B_206F_206E_200E_200E_202A_200B_206B_202D_206A_206E_200D_200B_200B_206F_202A_202E() - { - return Environment.TickCount64; - } - - static uint _202B_202E_200B_200D_202E_206F_202E_200F_200B_206F_206B_202A_206C_202B_200B_206C_202E_206B_206B_200D_202D_202E_206F_206A_206F_200F_206F_202B_206A_202C_206B_200C_206B_202A_200F_202C_200C_206F_206D_200D_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static void _206D_206E_202E_202B_202E_206D_200E_200D_206E_200B_200C_200E_206F_206F_202E_206B_206C_202A_206A_202B_206E_206E_202D_202D_202E_206A_200E_202C_200E_200E_206D_202E_206C_202D_206E_202C_206B_200F_206F_202B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogError(P_1, P_2); - } } internal sealed record WaitAutoDutyTask(uint ContentFinderConditionId) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202E_202C_206C_206B_206C_206F_206D_202B_206F_206F_202E_202A_200F_206E_202D_206B_202C_200C_206F_206A_200B_206E_200B_206F_202A_200D_200E_206C_206B_200F_202C_200E_202A_200B_200C_200C_206A_206B_202C_202B_202E(typeof(WaitAutoDutyTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(30, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2064501432)); - defaultInterpolatedStringHandler.AppendFormatted(ContentFinderConditionId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200C_202D_206B_206E_206D_206C_202C_206A_202C_206A_206F_202A_200F_206C_202D_202E_200C_206E_206A_206A_202A_202C_200B_206E_200E_200F_200F_200D_200C_206E_206A_202C_206C_202D_200D_206E_202A_202A_206D_202D_202E(); - _200E_200B_206F_202C_206C_206C_202D_202D_202D_200F_206F_206E_206A_202A_200F_206B_202B_200B_200F_202B_200F_206A_200E_202B_206D_206F_202B_202E_206B_200F_206F_206E_202E_202A_200E_202D_206C_206F_202B_200F_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-374667389)); - _200E_200B_206F_202C_206C_206C_202D_202D_202D_200F_206F_206E_206A_202A_200F_206B_202B_200B_200F_202B_200F_206A_200E_202B_206D_206F_202B_202E_206B_200F_206F_206E_202E_202A_200E_202D_206C_206F_202B_200F_202E(builder, ContentFinderConditionId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(WaitAutoDutyTask? other) - { - int num = (((object)this == other) ? 1302345077 : 1302345076); - while (true) - { - int num2 = num; - int num3 = 1302345078; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return false; - case 2: - num = (((object)other == null) ? 1302345079 : 1302345074); - break; - case 5: - return EqualityComparer<uint>.Default.Equals(ContentFinderConditionId, other.ContentFinderConditionId); - case 3: - return true; - case 0: - num = 1302345076; - break; - case 4: - num = ((!_200E_206C_202B_202C_200B_206A_200E_202C_200D_200D_202A_206B_206D_200E_206A_202B_206D_200B_202E_200F_200C_200E_202C_202B_200F_200E_206E_202D_206D_200F_200C_202C_206B_206E_200F_202A_202C_206B_206C_202A_202E(EqualityContract, other.EqualityContract)) ? 1302345079 : 1302345075); - break; - } - } - } - - bool IEquatable<WaitAutoDutyTask>.Equals(WaitAutoDutyTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202E_202C_206C_206B_206C_206F_206D_202B_206F_206F_202E_202A_200F_206E_202D_206B_202C_200C_206F_206A_200B_206E_200B_206F_202A_200D_200E_206C_206B_200F_202C_200E_202A_200B_200C_200C_206A_206B_202C_202B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _200C_202D_206B_206E_206D_206C_202C_206A_202C_206A_206F_202A_200F_206C_202D_202E_200C_206E_206A_206A_202A_202C_200B_206E_200E_200F_200F_200D_200C_206E_206A_202C_206C_202D_200D_206E_202A_202A_206D_202D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200E_200B_206F_202C_206C_206C_202D_202D_202D_200F_206F_206E_206A_202A_200F_206B_202B_200B_200F_202B_200F_206A_200E_202B_206D_206F_202B_202E_206B_200F_206F_206E_202E_202A_200E_202D_206C_206F_202B_200F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _200E_206C_202B_202C_200B_206A_200E_202C_200D_200D_202A_206B_206D_200E_206A_202B_206D_200B_202E_200F_200C_200E_202C_202B_200F_200E_206E_202D_206D_200F_200C_202C_206B_206E_200F_202A_202C_206B_206C_202A_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"Wait(AutoDuty, left instance {ContentFinderConditionId})"; } } @@ -1292,69 +295,37 @@ internal static class Duty return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - TerritoryData.ContentFinderConditionData contentFinderConditionData; - int num = (territoryData.TryGetContentFinderCondition(base.Task.ContentFinderConditionId, out contentFinderConditionData) ? 587590587 : 587590588); - long num6 = default(long); - bool flag = default(bool); - while (true) + if (!territoryData.TryGetContentFinderCondition(base.Task.ContentFinderConditionId, out TerritoryData.ContentFinderConditionData contentFinderConditionData)) { - int num2 = num; - int num3 = 587590583; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + throw new TaskException("Failed to get territory ID for content finder condition"); + } + bool flag = clientState.TerritoryType != contentFinderConditionData.TerritoryId; + if (flag && autoDutyIpc.IsStopped()) + { + notificationService.Notify(EInteractionType.Duty, "Duty complete - " + contentFinderConditionData.Name); + return ETaskResult.TaskComplete; + } + if (!flag && autoDutyIpc.IsStopped()) + { + long tickCount = Environment.TickCount64; + if (_stoppedInsideMs < 0) { - case 5: - _stoppedInsideMs = num6; - num = 587590590; - break; - case 6: - num = ((!autoDutyIpc.IsStopped()) ? 587590589 : 587590582); - break; - case 4: - return ETaskResult.StillRunning; - case 11: - throw new TaskException(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-474694589)); - case 12: - flag = _202A_206A_202A_206E_200F_202E_202B_206B_202A_206A_206B_206A_206E_206C_206F_206A_202C_206E_200F_202D_206A_206A_202A_200D_202D_200C_202B_206F_200B_206B_200B_202E_200C_200B_200B_206A_200F_202E_206A_202D_202E(clientState) != contentFinderConditionData.TerritoryId; - num = ((!flag) ? 587590589 : 587590577); - break; - case 9: - { - long num5 = num6; - long stoppedInsideMs = _stoppedInsideMs; - long num7 = num5; - num = ((~(~num7 + stoppedInsideMs) <= 60000) ? 587590579 : 587590583); - break; + _stoppedInsideMs = tickCount; } - case 1: - notificationService.Notify(EInteractionType.Duty, _202E_206A_200E_202E_202D_200D_200C_206E_206B_202C_200E_202B_206D_202D_206A_202E_202C_206D_200E_206C_200E_202D_206F_202B_202C_206E_200C_200E_200B_202D_200B_206D_202A_202E_200C_200C_200F_206F_200C_206C_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-310659385), contentFinderConditionData.Name)); - return ETaskResult.TaskComplete; - case 10: - num = (flag ? 587590580 : 587590576); - break; - case 2: - num6 = _200F_206C_200D_200E_200B_200C_206D_202D_206B_206A_206C_200C_200F_206F_206F_202E_200B_200E_206B_202D_200C_206C_202A_202C_206A_202D_206B_200D_200D_200D_202B_206E_206E_202D_200B_206C_206C_202E_202C_202E(); - num = ((_stoppedInsideMs >= 0) ? 587590590 : 587590578); - break; - case 7: - num = ((!autoDutyIpc.IsStopped()) ? 587590580 : 587590581); - break; - case 0: - _206E_206F_202A_202E_206A_202A_200C_202B_202C_206F_206F_200C_202B_202E_202A_200D_200C_202A_206C_200D_200E_200C_202D_206E_202C_200E_200D_200B_202E_202D_200D_202A_200B_200C_200B_206A_206C_202D_202B_206B_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2033898559), new object[1] { base.Task.ContentFinderConditionId }); - _200B_200F_200F_202B_202A_206E_206E_202B_202C_202D_206C_202A_202A_206D_206E_202E_206B_200F_206C_200C_200E_202B_200E_200D_202C_200E_202C_200D_200C_206C_206A_206C_206B_206F_200E_200C_200C_200C_202B_202E_202E(chatGui, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(623741352), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); + if (tickCount - _stoppedInsideMs > 60000) + { + logger.LogError("AutoDuty stopped inside duty {CfcId} and did not progress within 60s", base.Task.ContentFinderConditionId); + chatGui.PrintError("AutoDuty stopped inside the duty, stopping.", "Questionable", 576); return ETaskResult.End; - case 3: - _stoppedInsideMs = -1L; - num = 587590579; - break; - case 8: - num = 587590588; - break; } } + else + { + _stoppedInsideMs = -1L; + } + return ETaskResult.StillRunning; } public void StopNow() @@ -1362,131 +333,17 @@ internal static class Duty autoDutyIpc.Stop(); } - void IStoppableTaskExecutor.StopNow() - { - //ILSpy generated this explicit interface implementation from .override directive in StopNow - this.StopNow(); - } - public override bool ShouldInterruptOnDamage() { return false; } - - static uint _202A_206A_202A_206E_200F_202E_202B_206B_202A_206A_206B_206A_206E_206C_206F_206A_202C_206E_200F_202D_206A_206A_202A_200D_202D_200C_202B_206F_200B_206B_200B_202E_200C_200B_200B_206A_200F_202E_206A_202D_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static string _202E_206A_200E_202E_202D_200D_200C_206E_206B_202C_200E_202B_206D_202D_206A_202E_202C_206D_200E_206C_200E_202D_206F_202B_202C_206E_200C_200E_200B_202D_200B_206D_202A_202E_200C_200C_200F_206F_200C_206C_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static long _200F_206C_200D_200E_200B_200C_206D_202D_206B_206A_206C_200C_200F_206F_206F_202E_200B_200E_206B_202D_200C_206C_202A_202C_206A_202D_206B_200D_200D_200D_202B_206E_206E_202D_200B_206C_206C_202E_202C_202E() - { - return Environment.TickCount64; - } - - static void _206E_206F_202A_202E_206A_202A_200C_202B_202C_206F_206F_200C_202B_202E_202A_200D_200C_202A_206C_200D_200E_200C_202D_206E_202C_200E_200D_200B_202E_202D_200D_202A_200B_200C_200B_206A_206C_202D_202B_206B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogError(P_1, P_2); - } - - static void _200B_200F_200F_202B_202A_206E_206E_202B_202C_202D_206C_202A_202A_206D_206E_202E_206B_200F_206C_200C_200E_202B_200E_200D_202C_200E_202C_200D_200C_206C_206A_206C_206B_206F_200E_200C_200C_200C_202B_202E_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } } internal sealed record OpenDutyFinderTask(uint ContentFinderConditionId) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206F_206F_202D_206E_206C_206E_206B_206C_206B_202A_202E_202E_206F_206D_206D_202E_202C_202C_206E_206B_202A_202C_200E_200E_202C_202B_202C_206E_202B_206E_202A_206C_206B_202B_200D_202E_206E_206E_206E_206F_202E(typeof(OpenDutyFinderTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(16, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(806915853)); - defaultInterpolatedStringHandler.AppendFormatted(ContentFinderConditionId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202C_206E_206C_206E_206E_206B_206E_206C_206B_202C_202D_206C_206D_202B_206C_206E_202C_200E_202B_202A_202E_206E_200C_206A_200C_206A_200C_206F_206C_202B_200F_202D_206F_202D_202E_200F_202A_206B_206B_202E_202E(); - _200E_206F_206C_200B_200B_200C_202E_202C_200F_202D_206A_202C_202B_206F_202C_206E_200B_202B_200E_202A_202C_202C_202C_206F_206A_200C_206E_200C_202A_206F_202D_206E_206D_200D_202E_200D_200E_202B_200B_206D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-532733746)); - _200E_206F_206C_200B_200B_200C_202E_202C_200F_202D_206A_202C_202B_206F_202C_206E_200B_202B_200E_202A_202C_202C_202C_206F_206A_200C_206E_200C_202A_206F_202D_206E_206D_200D_202E_200D_200E_202B_200B_206D_202E(builder, ContentFinderConditionId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(OpenDutyFinderTask? other) - { - int num = (((object)this == other) ? (-235260412) : (-235260415)); - while (true) - { - int num2 = num; - int num3 = -235260416; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - return true; - case 2: - return EqualityComparer<uint>.Default.Equals(ContentFinderConditionId, other.ContentFinderConditionId); - case 1: - num = (((object)other == null) ? (-235260413) : (-235260411)); - break; - case 3: - return false; - case 5: - num = ((!_200B_200F_202A_206B_206B_206D_202C_202B_200D_200C_202B_200E_206D_200C_202E_202B_202E_200C_202E_206A_200D_206C_206D_202B_200E_206D_200D_202E_200F_206A_206A_202C_206E_202D_200E_206C_206F_206B_202A_202E(EqualityContract, other.EqualityContract)) ? (-235260413) : (-235260414)); - break; - case 0: - num = -235260415; - break; - } - } - } - - bool IEquatable<OpenDutyFinderTask>.Equals(OpenDutyFinderTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206F_206F_202D_206E_206C_206E_206B_206C_206B_202A_202E_202E_206F_206D_206D_202E_202C_202C_206E_206B_202A_202C_200E_200E_202C_202B_202C_206E_202B_206E_202A_206C_206B_202B_200D_202E_206E_206E_206E_206F_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _202C_206E_206C_206E_206E_206B_206E_206C_206B_202C_202D_206C_206D_202B_206C_206E_202C_200E_202B_202A_202E_206E_200C_206A_200C_206A_200C_206F_206C_202B_200F_202D_206F_202D_202E_200F_202A_206B_206B_202E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200E_206F_206C_200B_200B_200C_202E_202C_200F_202D_206A_202C_202B_206F_202C_206E_200B_202B_200E_202A_202C_202C_202C_206F_206A_200C_206E_200C_202A_206F_202D_206E_206D_200D_202E_200D_200E_202B_200B_206D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _200B_200F_202A_206B_206B_206D_202C_202B_200D_200C_202B_200E_206D_200C_202E_202B_202E_200C_202E_206A_200D_206C_206D_202B_200E_206D_200D_202E_200F_206A_206A_202C_206E_202D_200E_206C_206F_206B_202A_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"OpenDutyFinder({ContentFinderConditionId})"; } } @@ -1494,26 +351,12 @@ internal static class Duty { protected override bool Start() { - int num = ((!_206E_202C_206F_202D_206E_206B_202A_206D_202D_200E_202E_206A_200B_200B_200C_200C_206F_206A_200F_200C_202E_200F_206A_200B_206B_202E_206D_206C_202D_202E_206A_206A_206A_200F_202A_206E_202C_206D_202B_206E_202E(condition, ConditionFlag.InDutyQueue)) ? 28080166 : 28080167); - while (true) + if (condition[ConditionFlag.InDutyQueue]) { - int num2 = num; - int num3 = 28080166; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_004d; - case 1: - return false; - case 0: - gameFunctions.OpenDutyFinder(base.Task.ContentFinderConditionId); - return true; - } - continue; - IL_004d: - num = 28080167; + return false; } + gameFunctions.OpenDutyFinder(base.Task.ContentFinderConditionId); + return true; } public override ETaskResult Update() @@ -1525,127 +368,46 @@ internal static class Duty { return false; } - - static bool _206E_202C_206F_202D_206E_206B_202A_206D_202D_200E_202E_206A_200B_200B_200C_200C_206F_206A_200F_200C_202E_200F_206A_200B_206B_202E_206D_206C_202D_202E_206A_206A_206A_200F_202A_206E_202C_206D_202B_206E_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } } internal sealed record EnableBossModForDutyTask : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206E_200F_206D_206B_206D_200D_200C_200E_206F_200E_202B_202A_206F_206C_200F_200D_202D_200F_200E_202A_206D_202A_206B_206F_200E_200F_206D_202D_200D_202E_206C_206E_206E_206F_202A_200C_200E_200F_206E_206D_202E(typeof(EnableBossModForDutyTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1257245001); - } - - [CompilerGenerated] - public bool Equals(EnableBossModForDutyTask? other) - { - int num = (((object)this == other) ? 1984746115 : 1984746114); - while (true) - { - int num2 = num; - int num3 = 1984746112; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = 1984746114; - break; - case 1: - return _200C_206F_206B_206A_202D_200D_200E_200D_202C_202B_200D_200E_206C_206F_206D_202E_200F_202E_202D_206C_200E_200D_200C_202D_202E_202D_200C_206D_202C_206A_202D_202A_206E_200D_206C_206E_202C_206D_206E_206B_202E(EqualityContract, other.EqualityContract); - case 3: - return true; - case 0: - return false; - case 2: - num = (((object)other == null) ? 1984746112 : 1984746113); - break; - } - } - } - - bool IEquatable<EnableBossModForDutyTask>.Equals(EnableBossModForDutyTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206E_200F_206D_206B_206D_200D_200C_200E_206F_200E_202B_202A_206F_206C_200F_200D_202D_200F_200E_202A_206D_202A_206B_206F_200E_200F_206D_202D_200D_202E_206C_206E_206E_206F_202A_200C_200E_200F_206E_206D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _200C_206F_206B_206A_202D_200D_200E_200D_202C_202B_200D_200E_206C_206F_206D_202E_200F_202E_202D_206C_200E_200D_200C_202D_202E_202D_200C_206D_202C_206A_202D_202A_206E_200D_206C_206E_202C_206D_206E_206B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "EnableBossModForDuty"; } } internal sealed class EnableBossModForDutyExecutor(BossModIpc bossModIpc, IObjectTable objectTable, ILogger<EnableBossModForDutyExecutor> logger) : TaskExecutor<EnableBossModForDutyTask>() { - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { bossModIpc.EnableAi(BossModIpc.EPreset.Active); - IPlayerCharacter playerCharacter = _202E_202D_206C_200B_202C_200E_200E_200D_206B_206E_202A_202D_202C_202C_202D_206B_206C_206A_202C_202A_202E_202E_206B_200F_206D_200E_206A_202E_206A_202E_206D_206D_202E_206A_206A_206A_202B_202D_202C_200E_202E(objectTable); - int num = ((playerCharacter == null) ? 1728643060 : 1728643063); - bool flag = default(bool); - byte? b = default(byte?); - while (true) + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + bool flag; + if (localPlayer != null) { - int num2 = num; - int num3 = 1728643060; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - flag = true; - num = 1728643062; - break; - case 3: - b = _206F_200C_200D_206B_200B_206A_206C_206A_202E_202E_202A_206F_200C_200D_206B_200B_206C_200F_202B_202E_206F_202B_206D_206E_202E_202A_200F_202B_202A_206D_206A_200F_206E_200D_202B_200F_202A_200F_206C_202A_202E((ICharacter)playerCharacter).ValueNullable?.Role; - num = ((!b.HasValue) ? 1728643058 : 1728643057); - break; - case 5: + byte? b = localPlayer.ClassJob.ValueNullable?.Role; + if (b.HasValue) { byte valueOrDefault = b.GetValueOrDefault(); - num3 = 3; - num4 = valueOrDefault; - num = (((uint)(~(~num4 + num3)) > 1u) ? 1728643058 : 1728643061); - break; - } - case 4: - num = 1728643063; - break; - case 2: - { - bool isRanged = flag; - bossModIpc.SetRangeStrategy(BossModIpc.EPreset.Active, isRanged); - num = 1728643060; - break; - } - case 6: - flag = false; - num = 1728643062; - break; - case 0: - _206F_202D_202C_206F_200D_206D_200C_206A_202A_200C_200D_206D_202A_202B_200E_202B_206B_202A_200B_202C_202A_200E_202B_206E_200C_206F_202C_200B_200C_206E_202D_206C_200D_206E_200E_206C_206A_200F_202C_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-248169920), Array.Empty<object>()); - return true; + if ((uint)(valueOrDefault - 3) <= 1u) + { + flag = true; + goto IL_0077; + } } + flag = false; + goto IL_0077; } + goto IL_0087; + IL_0077: + bool isRanged = flag; + bossModIpc.SetRangeStrategy(BossModIpc.EPreset.Active, isRanged); + goto IL_0087; + IL_0087: + logger.LogDebug("Enabled BossMod Active preset for AutoDuty run"); + return true; } public override ETaskResult Update() @@ -1657,90 +419,18 @@ internal static class Duty { return false; } - - static IPlayerCharacter _202E_202D_206C_200B_202C_200E_200E_200D_206B_206E_202A_202D_202C_202C_202D_206B_206C_206A_202C_202A_202E_202E_206B_200F_206D_200E_206A_202E_206A_202E_206D_206D_202E_206A_206A_206A_202B_202D_202C_200E_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static RowRef<ClassJob> _206F_200C_200D_206B_200B_206A_206C_206A_202E_202E_202A_206F_200C_200D_206B_200B_206C_200F_202B_202E_206F_202B_206D_206E_202E_202A_200F_202B_202A_206D_206A_200F_206E_200D_202B_200F_202A_200F_206C_202A_202E(ICharacter P_0) - { - return P_0.ClassJob; - } - - static void _206F_202D_202C_206F_200D_206D_200C_206A_202A_200C_200D_206D_202A_202B_200E_202B_206B_202A_200B_202C_202A_200E_202B_206E_200C_206F_202C_200B_200C_206E_202D_206C_200D_206E_200E_206C_206A_200F_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } } internal sealed record EnableRsrForDutyTask : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200C_202C_200B_200E_202D_202B_206A_200F_206E_200F_202D_206D_202B_202A_202A_202D_202D_200B_200F_200F_200D_202D_206C_200E_206E_200E_200D_206F_202D_206A_200B_200E_202B_200B_200E_206D_202A_206B_206F_200F_202E(typeof(EnableRsrForDutyTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2113295925); - } - - [CompilerGenerated] - public bool Equals(EnableRsrForDutyTask? other) - { - int num = (((object)this == other) ? (-1091562402) : (-1091562403)); - while (true) - { - int num2 = num; - int num3 = -1091562402; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return true; - case 1: - return false; - case 2: - num = -1091562403; - break; - case 3: - num = (((object)other == null) ? (-1091562401) : (-1091562406)); - break; - case 4: - return _206F_200E_206D_200B_206F_202C_202E_200F_200E_206A_202E_202A_206C_200B_202A_206D_200E_206F_202A_202D_206A_200E_200E_206B_200B_202A_200B_200D_206F_200F_200F_202E_202B_206C_206F_202B_206F_200F_206C_200E_202E(EqualityContract, other.EqualityContract); - } - } - } - - bool IEquatable<EnableRsrForDutyTask>.Equals(EnableRsrForDutyTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200C_202C_200B_200E_202D_202B_206A_200F_206E_200F_202D_206D_202B_202A_202A_202D_202D_200B_200F_200F_200D_202D_206C_200E_206E_200E_200D_206F_202D_206A_200B_200E_202B_200B_200E_206D_202A_206B_206F_200F_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _206F_200E_206D_200B_206F_202C_202E_200F_200E_206A_202E_202A_206C_200B_202A_206D_200E_206F_202A_202D_206A_200E_200E_206B_200B_202A_200B_200D_206F_200F_200F_202E_202B_206C_206F_202B_206F_200F_206C_200E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "EnableRsrForDuty"; } } internal sealed class EnableRsrForDutyExecutor(RotationSolverRebornModule rsrModule, ILogger<EnableRsrForDutyExecutor> logger) : TaskExecutor<EnableRsrForDutyTask>() { - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { CombatController.CombatData combatData = new CombatController.CombatData @@ -1753,27 +443,13 @@ internal static class Duty ComplexCombatDatas = new List<ComplexCombatData>(), CombatItemUse = null }; - int num = ((!rsrModule.Start(combatData)) ? 2061228906 : 2061228905); - while (true) + if (rsrModule.Start(combatData)) { - int num2 = num; - int num3 = 2061228904; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_008f; - case 2: - _206E_206A_206A_200E_206E_200F_200E_206A_206D_206C_206C_206A_200D_200E_202D_206B_202A_200C_202A_202C_202C_206E_202B_200C_202E_206E_200E_206F_202D_202B_206C_206F_206A_202C_200F_200F_202B_206B_206B_206F_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-442018741), Array.Empty<object>()); - return true; - case 1: - _206A_202D_200C_206D_200F_202C_202C_200C_202E_202D_206F_202B_202E_206A_200B_200F_202E_206E_202A_200D_206C_206B_206F_202C_200F_206D_200E_206E_206D_200F_200C_200E_200F_202D_206E_202A_200B_202C_200F_202E_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1848587528), Array.Empty<object>()); - return true; - } - continue; - IL_008f: - num = 2061228905; + logger.LogDebug("Enabled RSR Henched mode for AutoDuty run"); + return true; } + logger.LogWarning("Failed to enable RSR for AutoDuty run"); + return true; } public override ETaskResult Update() @@ -1785,87 +461,22 @@ internal static class Duty { return false; } - - static void _206A_202D_200C_206D_200F_202C_202C_200C_202E_202D_206F_202B_202E_206A_200B_200F_202E_206E_202A_200D_206C_206B_206F_202C_200F_206D_200E_206E_206D_200F_200C_200E_200F_202D_206E_202A_200B_202C_200F_202E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _206E_206A_206A_200E_206E_200F_200E_206A_206D_206C_206C_206A_200D_200E_202D_206B_202A_200C_202A_202C_202C_206E_202B_200C_202E_206E_200E_206F_202D_202B_206C_206F_206A_202C_200F_200F_202B_206B_206B_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } } internal sealed record EnableBossModPassiveForDutyTask : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202B_200D_200F_206D_200E_200B_206F_200F_200B_200C_206F_200D_206D_202E_202B_206A_206E_200D_202C_200E_202B_202B_206A_202D_206B_202B_202E_206F_202D_200D_202E_200F_202B_202C_206F_200F_202C_202D_206C_202E_202E(typeof(EnableBossModPassiveForDutyTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1459576092); - } - - [CompilerGenerated] - public bool Equals(EnableBossModPassiveForDutyTask? other) - { - int num = (((object)this == other) ? (-1195583475) : (-1195583474)); - while (true) - { - int num2 = num; - int num3 = -1195583475; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return false; - case 1: - return _202C_206C_200F_202E_206C_206B_200C_202D_206E_206E_200E_202B_202A_202E_206D_200B_200E_202A_206B_200C_200B_206E_206C_202A_200D_202C_200D_200E_202E_206D_202A_202B_200B_200C_200F_206B_206E_200F_202B_202C_202E(EqualityContract, other.EqualityContract); - case 0: - return true; - case 4: - num = -1195583474; - break; - case 3: - num = (((object)other == null) ? (-1195583473) : (-1195583476)); - break; - } - } - } - - bool IEquatable<EnableBossModPassiveForDutyTask>.Equals(EnableBossModPassiveForDutyTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202B_200D_200F_206D_200E_200B_206F_200F_200B_200C_206F_200D_206D_202E_202B_206A_206E_200D_202C_200E_202B_202B_206A_202D_206B_202B_202E_206F_202D_200D_202E_200F_202B_202C_206F_200F_202C_202D_206C_202E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _202C_206C_200F_202E_206C_206B_200C_202D_206E_206E_200E_202B_202A_202E_206D_200B_200E_202A_206B_200C_200B_206E_206C_202A_200D_202C_200D_200E_202E_206D_202A_202B_200B_200C_200F_206B_206E_200F_202B_202C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "EnableBossModPassiveForDuty"; } } internal sealed class EnableBossModPassiveForDutyExecutor(BossModIpc bossModIpc, ILogger<EnableBossModPassiveForDutyExecutor> logger) : TaskExecutor<EnableBossModPassiveForDutyTask>() { - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { bossModIpc.EnableAi(BossModIpc.EPreset.Passive); - _206F_206F_200B_202B_206F_200F_202B_200F_200E_206C_202A_202D_206E_206F_206F_206F_200D_206F_206E_202B_200D_202E_200F_200E_206B_202D_202B_202D_200D_200F_200F_200E_206A_206C_206A_200C_200E_206B_200B_200E_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1506955003), Array.Empty<object>()); + logger.LogDebug("Enabled BossMod Passive preset for AutoDuty run (hazard avoidance)"); return true; } @@ -1878,78 +489,18 @@ internal static class Duty { return false; } - - static void _206F_206F_200B_202B_206F_200F_202B_200F_200E_206C_202A_202D_206E_206F_206F_206F_200D_206F_206E_202B_200D_202E_200F_200E_206B_202D_202B_202D_200D_200F_200F_200E_206A_206C_206A_200C_200E_206B_200B_200E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } } internal sealed record EnableWrathForDutyTask : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206D_202A_202D_206F_202A_206D_206B_200E_206C_202E_202C_200B_202E_202A_202C_202D_202A_202E_200F_200B_200F_202E_200E_202C_200D_206B_200C_206F_206E_202A_200C_202A_200E_200F_200D_202E_200C_200B_202D_206F_202E(typeof(EnableWrathForDutyTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(675489831); - } - - [CompilerGenerated] - public bool Equals(EnableWrathForDutyTask? other) - { - int num = (((object)this == other) ? 1904585332 : 1904585334); - while (true) - { - int num2 = num; - int num3 = 1904585335; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return false; - case 1: - num = (((object)other == null) ? 1904585335 : 1904585333); - break; - case 3: - return true; - case 4: - num = 1904585334; - break; - case 2: - return _202A_200D_200C_200F_202A_206A_202E_200D_202C_206C_200E_200E_200E_200B_206F_206C_206B_206B_206A_206E_206F_206B_200F_206C_202A_206B_202D_206A_206D_202A_206A_202B_206D_202A_200D_202A_206E_202E_202A_206D_202E(EqualityContract, other.EqualityContract); - } - } - } - - bool IEquatable<EnableWrathForDutyTask>.Equals(EnableWrathForDutyTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206D_202A_202D_206F_202A_206D_206B_200E_206C_202E_202C_200B_202E_202A_202C_202D_202A_202E_200F_200B_200F_202E_200E_202C_200D_206B_200C_206F_206E_202A_200C_202A_200E_200F_200D_202E_200C_200B_202D_206F_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _202A_200D_200C_200F_202A_206A_202E_200D_202C_206C_200E_200E_200E_200B_206F_206C_206B_206B_206A_206E_206F_206B_200F_206C_202A_206B_202D_206A_206D_202A_206A_202B_206D_202A_200D_202A_206E_202E_202A_206D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "EnableWrathForDuty"; } } internal sealed class EnableWrathForDutyExecutor(WrathComboModule wrathComboModule, ILogger<EnableWrathForDutyExecutor> logger) : TaskExecutor<EnableWrathForDutyTask>() { - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { CombatController.CombatData combatData = new CombatController.CombatData @@ -1962,29 +513,13 @@ internal static class Duty ComplexCombatDatas = new List<ComplexCombatData>(), CombatItemUse = null }; - int num = ((!wrathComboModule.Start(combatData)) ? (-846521954) : (-846521955)); - while (true) + if (wrathComboModule.Start(combatData)) { - int num2 = num; - int num3 = -846521953; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _202B_202B_202C_200E_202B_206C_202E_200E_206E_206D_206D_200E_202B_206A_202B_202E_202A_206B_206E_202A_200E_206F_202C_200E_206F_202E_200E_202D_202A_200C_206B_206F_206F_206C_202B_206E_202A_202C_202C_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-409178902), Array.Empty<object>()); - return true; - case 2: - _206E_202A_206F_206A_206E_206B_200C_206A_202A_206E_200F_202B_200E_206D_200E_202A_202E_206A_206B_202B_200B_206C_200C_206A_206F_202E_206B_200C_200D_206F_200F_202B_202A_202D_206B_202C_200F_200C_206D_202C_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(29508109), Array.Empty<object>()); - return true; - case 0: - goto IL_00c9; - } - continue; - IL_00c9: - num = -846521955; + logger.LogDebug("Enabled WrathCombo for AutoDuty run"); + return true; } + logger.LogWarning("Failed to enable WrathCombo for AutoDuty run"); + return true; } public override ETaskResult Update() @@ -1996,91 +531,24 @@ internal static class Duty { return false; } - - static void _206E_202A_206F_206A_206E_206B_200C_206A_202A_206E_200F_202B_200E_206D_200E_202A_202E_206A_206B_202B_200B_206C_200C_206A_206F_202E_206B_200C_200D_206F_200F_202B_202A_202D_206B_202C_200F_200C_206D_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _202B_202B_202C_200E_202B_206C_202E_200E_206E_206D_206D_200E_202B_206A_202B_202E_202A_206B_206E_202A_200E_206F_202C_200E_206F_202E_200E_202D_202A_200C_206B_206F_206F_206C_202B_206E_202A_202C_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } } internal sealed record DisableCombatPluginsForDutyTask : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202B_206C_206F_202C_202B_206F_202A_206A_202D_206E_200D_206D_206A_200E_202B_206E_202D_206A_202E_206A_200E_206A_202C_202D_206C_202B_202C_202D_206F_202D_206E_200E_206D_206D_202C_202C_206D_200D_206C_200C_202E(typeof(DisableCombatPluginsForDutyTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1157161609); - } - - [CompilerGenerated] - public bool Equals(DisableCombatPluginsForDutyTask? other) - { - int num = (((object)this == other) ? (-1653700635) : (-1653700636)); - while (true) - { - int num2 = num; - int num3 = -1653700633; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - return false; - case 3: - num = (((object)other == null) ? (-1653700637) : (-1653700634)); - break; - case 2: - return true; - case 0: - num = -1653700636; - break; - case 1: - return _206D_206A_206D_206D_206A_200C_200B_202A_202D_200E_206D_202D_206F_206A_206B_202E_200E_206B_200E_202D_200F_206B_206F_202C_206F_206C_206A_202C_202C_206B_200E_206D_202C_200E_206A_200D_206E_206B_202B_202D_202E(EqualityContract, other.EqualityContract); - } - } - } - - bool IEquatable<DisableCombatPluginsForDutyTask>.Equals(DisableCombatPluginsForDutyTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202B_206C_206F_202C_202B_206F_202A_206A_202D_206E_200D_206D_206A_200E_202B_206E_202D_206A_202E_206A_200E_206A_202C_202D_206C_202B_202C_202D_206F_202D_206E_200E_206D_206D_202C_202C_206D_200D_206C_200C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _206D_206A_206D_206D_206A_200C_200B_202A_202D_200E_206D_202D_206F_206A_206B_202E_200E_206B_200E_202D_200F_206B_206F_202C_206F_206C_206A_202C_202C_206B_200E_206D_202C_200E_206A_200D_206E_206B_202B_202D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "DisableCombatPluginsForDuty"; } } internal sealed class DisableCombatPluginsForDutyExecutor(WrathComboModule wrathComboModule, RotationSolverRebornModule rsrModule, BossModIpc bossModIpc, ILogger<DisableCombatPluginsForDutyExecutor> logger) : TaskExecutor<DisableCombatPluginsForDutyTask>() { - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { wrathComboModule.Stop(); rsrModule.Stop(); bossModIpc.DisableAi(); - _200F_200D_200E_202D_206A_202E_200C_206B_206D_202E_202A_206B_202C_202D_200E_206B_206E_202E_206A_200B_202A_206D_202E_200B_200E_202E_202D_206C_202B_206E_202D_202E_206F_200E_200D_206D_200D_206F_206C_206F_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-721701585), Array.Empty<object>()); + logger.LogDebug("Disabled combat plugins after AutoDuty run"); return true; } @@ -2093,111 +561,13 @@ internal static class Duty { return false; } - - static void _200F_200D_200E_202D_206A_202E_200C_206B_206D_202E_202A_206B_202C_202D_200E_206B_206E_202E_206A_200B_202A_206D_202E_200B_200E_202E_202D_206C_202B_206E_202D_202E_206F_200E_200D_206D_200D_206F_206C_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } } internal sealed record StartLevelingModeTask(int RequiredLevel, string? QuestName) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206A_206B_206F_200B_206C_206F_200E_202B_206C_200F_200B_202B_206D_206B_200C_200D_200E_200D_206F_200B_202B_206D_202C_206E_202A_206B_200E_202E_206D_202D_206E_206B_202E_202D_206B_202C_200D_202E_206D_202E(typeof(StartLevelingModeTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(36, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2016705418)); - defaultInterpolatedStringHandler.AppendFormatted(RequiredLevel); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(506226778)); - defaultInterpolatedStringHandler.AppendFormatted(QuestName); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1163511253)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200B_206D_206A_200F_206D_200F_202A_200E_200D_200B_206D_206F_206C_206E_200B_202E_202A_206F_200D_206F_200C_206B_200C_200F_200B_200B_200B_206F_202C_200F_200C_202A_202C_202E_206F_202E_200E_206C_206B_202A_202E(); - _206F_200C_202A_206F_206E_202C_206B_200F_206F_200D_202A_206A_206B_200C_202B_206D_200E_206C_202D_200F_202B_202B_202A_200B_200C_206B_206F_200F_200B_206C_200C_206D_202D_200C_202B_206E_206B_202A_206A_202E_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1394284169)); - _206F_200C_202A_206F_206E_202C_206B_200F_206F_200D_202A_206A_206B_200C_202B_206D_200E_206C_202D_200F_202B_202B_202A_200B_200C_206B_206F_200F_200B_206C_200C_206D_202D_200C_202B_206E_206B_202A_206A_202E_202E(builder, RequiredLevel.ToString()); - _206F_200C_202A_206F_206E_202C_206B_200F_206F_200D_202A_206A_206B_200C_202B_206D_200E_206C_202D_200F_202B_202B_202A_200B_200C_206B_206F_200F_200B_206C_200C_206D_202D_200C_202B_206E_206B_202A_206A_202E_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2013631228)); - _206F_206B_200C_200B_202B_206C_200E_200D_200C_202A_206B_206F_202D_206C_206D_206F_206C_206C_200F_202B_206C_200D_202C_200C_202C_202E_206E_200B_200F_200B_202E_206F_200E_200B_202A_206E_200F_200B_206B_200F_202E(builder, (object?)QuestName); - return true; - } - - [CompilerGenerated] - public bool Equals(StartLevelingModeTask? other) - { - int num = (((object)this == other) ? 767902798 : 767902795); - while (true) - { - int num2 = num; - int num3 = 767902794; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - return false; - case 0: - return EqualityComparer<string>.Default.Equals(QuestName, other.QuestName); - case 1: - num = (((object)other == null) ? 767902796 : 767902799); - break; - case 5: - num = ((!_200F_206E_206F_202D_206E_202A_202E_206C_206E_206E_200C_202A_206D_206A_202C_206F_200E_200E_200D_206F_206A_206F_200C_202E_206F_206A_206E_206D_206C_200F_202A_202E_206D_202D_200E_206D_202A_200B_200C_200F_202E(EqualityContract, other.EqualityContract)) ? 767902796 : 767902793); - break; - case 3: - num = ((!EqualityComparer<int>.Default.Equals(RequiredLevel, other.RequiredLevel)) ? 767902796 : 767902794); - break; - case 4: - return true; - case 2: - num = 767902795; - break; - } - } - } - - bool IEquatable<StartLevelingModeTask>.Equals(StartLevelingModeTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type? _206A_206B_206F_200B_206C_206F_200E_202B_206C_200F_200B_202B_206D_206B_200C_200D_200E_200D_206F_200B_202B_206D_202C_206E_202A_206B_200E_202E_206D_202D_206E_206B_202E_202D_206B_202C_200D_202E_206D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _200B_206D_206A_200F_206D_200F_202A_200E_200D_200B_206D_206F_206C_206E_200B_202E_202A_206F_200D_206F_200C_206B_200C_200F_200B_200B_200B_206F_202C_200F_200C_202A_202C_202E_206F_202E_200E_206C_206B_202A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder? _206F_200C_202A_206F_206E_202C_206B_200F_206F_200D_202A_206A_206B_200C_202B_206D_200E_206C_202D_200F_202B_202B_202A_200B_200C_206B_206F_200F_200B_206C_200C_206D_202D_200C_202B_206E_206B_202A_206A_202E_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _206F_206B_200C_200B_202B_206C_200E_200D_200C_202A_206B_206F_202D_206C_206D_206F_206C_206C_200F_202B_206C_200D_202C_200C_202C_202E_206E_200B_200F_200B_202E_206F_200E_200B_202A_206E_200F_200B_206B_200F_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } - - static bool _200F_206E_206F_202D_206E_202A_202E_206C_206E_206E_200C_202A_206D_206A_202C_206F_200E_200E_200D_206F_206A_206F_200C_202E_206F_206A_206E_206D_206C_200F_202A_202E_206D_202D_200E_206D_202A_200B_200C_200F_202E(Type? P_0, Type? P_1) - { - return P_0 == P_1; + return $"StartLevelingMode(target: Lv{RequiredLevel} for '{QuestName}')"; } } @@ -2205,85 +575,45 @@ internal static class Duty { private long _startMs; - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - _200E_200D_206E_206F_202C_202A_200F_202A_206D_202B_202D_206C_206D_200B_206E_202E_200B_202E_206E_202D_202A_202B_202C_202B_206F_200B_206A_202E_202A_206B_202C_206A_206F_206E_200C_206D_200D_200D_202C_202D_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(55261693), new object[2] + logger.LogInformation("Starting AutoDuty Leveling mode to reach level {RequiredLevel} for quest '{QuestName}'", base.Task.RequiredLevel, base.Task.QuestName); + if (condition[ConditionFlag.BoundByDuty] || condition[ConditionFlag.InDutyQueue]) { - base.Task.RequiredLevel, - base.Task.QuestName - }); - int num = (_202B_202C_206B_200B_200F_200F_206A_206F_202C_202A_206B_200F_202C_202A_202C_206C_200C_200D_200E_202C_202D_202B_200C_200B_206E_200F_206F_206B_200D_200D_200E_202A_206A_200E_202D_206F_206A_200D_206F_202A_202E(condition, ConditionFlag.BoundByDuty) ? 734035572 : 734035573); - while (true) - { - int num2 = num; - int num3 = 734035575; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 734035573; - break; - case 2: - num = ((!_202B_202C_206B_200B_200F_200F_206A_206F_202C_202A_206B_200F_202C_202A_202C_206C_200C_200D_200E_202C_202D_202B_200C_200B_206E_200F_206F_206B_200D_200D_200E_202A_206A_200E_202D_206F_206A_200D_206F_202A_202E(condition, ConditionFlag.InDutyQueue)) ? 734035570 : 734035572); - break; - case 1: - _206C_202B_200B_202B_200B_206B_206E_206A_206F_206C_202A_200B_202A_206E_206B_200F_200E_206C_200B_200B_206D_206A_202A_206B_206F_206F_202C_206C_202A_206D_202B_202D_206B_206D_200C_200F_200D_206C_200F_206D_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1265156459), Array.Empty<object>()); - _startMs = _202E_200D_202B_202B_206E_206C_200D_202B_206C_206E_200C_200C_202D_200F_200D_202D_202C_200C_202D_206D_200B_202D_202C_202A_206B_206E_200D_200E_200C_206D_206B_206C_206A_202A_200D_200F_206D_202B_202B_206A_202E(); - return true; - case 4: - autoDutyIpc.StartLevelingMode(); - _startMs = _202E_200D_202B_202B_206E_206C_200D_202B_206C_206E_200C_200C_202D_200F_200D_202D_202C_200C_202D_206D_200B_202D_202C_202A_206B_206E_200D_200E_200C_206D_206B_206C_206A_202A_200D_200F_206D_202B_202B_206A_202E(); - return true; - case 3: - _206C_202B_200B_202B_200B_206B_206E_206A_206F_206C_202A_200B_202A_206E_206B_200F_200E_206C_200B_200B_206D_206A_202A_206B_206F_206F_202C_206C_202A_206D_202B_202D_206B_206D_200C_200F_200D_206C_200F_206D_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1626350162), Array.Empty<object>()); - return true; - case 5: - num = (autoDutyIpc.IsStopped() ? 734035571 : 734035574); - break; - } + logger.LogDebug("Already in duty or queue, skipping start"); + return true; } + if (!autoDutyIpc.IsStopped()) + { + logger.LogDebug("AutoDuty is already running, waiting for it"); + _startMs = Environment.TickCount64; + return true; + } + autoDutyIpc.StartLevelingMode(); + _startMs = Environment.TickCount64; + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - bool flag = _202B_202C_206B_200B_200F_200F_206A_206F_202C_202A_206B_200F_202C_202A_202C_206C_200C_200D_200E_202C_202D_202B_200C_200B_206E_200F_206F_206B_200D_200D_200E_202A_206A_200E_202D_206F_206A_200D_206F_202A_202E(condition, ConditionFlag.BoundByDuty); - bool flag2 = _202B_202C_206B_200B_200F_200F_206A_206F_202C_202A_206B_200F_202C_202A_202C_206C_200C_200D_200E_202C_202D_202B_200C_200B_206E_200F_206F_206B_200D_200D_200E_202A_206A_200E_202D_206F_206A_200D_206F_202A_202E(condition, ConditionFlag.InDutyQueue); - int num = (flag2 ? 1 : 0); - int num2 = (flag ? 1 : 0); - int num3 = (((num2 & num) + (num2 ^ num) == 0) ? 108538645 : 108538644); - while (true) + bool flag = condition[ConditionFlag.BoundByDuty]; + bool flag2 = condition[ConditionFlag.InDutyQueue]; + if (flag || flag2) { - int num4 = num3; - num = 108538645; - num2 = num4; - int num5 = num2 + num; - int num6 = num2 & num; - switch (num5 - (num6 + num6)) - { - case 3: - return ETaskResult.StillRunning; - case 1: - _206C_202B_200B_202B_200B_206B_206E_206A_206F_206C_202A_200B_202A_206E_206B_200F_200E_206C_200B_200B_206D_206A_202A_206B_206F_206F_202C_206C_202A_206D_202B_202D_206B_206D_200C_200F_200D_206C_200F_206D_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1699127209), new object[2] { flag, flag2 }); - return ETaskResult.TaskComplete; - case 6: - _206D_206B_200C_202B_200E_206D_200D_206B_200E_202B_206C_202A_206A_206B_200B_202A_206D_200F_202B_206E_200B_202D_206F_206F_206A_206C_200B_206F_202D_200D_202B_202E_206D_202A_206D_206C_206E_202B_202B_202D_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1096810868), Array.Empty<object>()); - _200E_202B_200D_202A_206C_200C_200F_206A_206D_202B_206B_206A_206C_206C_202B_200E_202C_206B_200D_206A_200B_206C_200C_200B_200C_200F_200F_200F_200C_200B_200D_206A_200E_206E_206E_206F_206F_200C_206E_200D_202E(chatGui, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1253886514), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - return ETaskResult.End; - case 0: - num3 = (autoDutyIpc.IsStopped() ? 108538640 : 108538646); - break; - case 5: - num3 = ((_202E_200D_202B_202B_206E_206C_200D_202B_206C_206E_200C_200C_202D_200F_200D_202D_202C_200C_202D_206D_200B_202D_202C_202A_206B_206E_200D_200E_200C_206D_206B_206C_206A_202A_200D_200F_206D_202B_202B_206A_202E() - _startMs >= 10000) ? 108538643 : 108538647); - break; - case 2: - return ETaskResult.StillRunning; - case 4: - num3 = 108538644; - break; - } + logger.LogDebug("AutoDuty started successfully (inDuty={InDuty}, inQueue={InQueue})", flag, flag2); + return ETaskResult.TaskComplete; } + if (!autoDutyIpc.IsStopped()) + { + return ETaskResult.StillRunning; + } + if (Environment.TickCount64 - _startMs < 10000) + { + return ETaskResult.StillRunning; + } + logger.LogError("AutoDuty failed to start leveling mode after 10 seconds"); + chatGui.PrintError("AutoDuty failed to start leveling mode, stopping.", "Questionable", 576); + return ETaskResult.End; } public void StopNow() @@ -2291,136 +621,17 @@ internal static class Duty autoDutyIpc.Stop(); } - void IStoppableTaskExecutor.StopNow() - { - //ILSpy generated this explicit interface implementation from .override directive in StopNow - this.StopNow(); - } - public override bool ShouldInterruptOnDamage() { return false; } - - static void _200E_200D_206E_206F_202C_202A_200F_202A_206D_202B_202D_206C_206D_200B_206E_202E_200B_202E_206E_202D_202A_202B_202C_202B_206F_200B_206A_202E_202A_206B_202C_206A_206F_206E_200C_206D_200D_200D_202C_202D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static bool _202B_202C_206B_200B_200F_200F_206A_206F_202C_202A_206B_200F_202C_202A_202C_206C_200C_200D_200E_202C_202D_202B_200C_200B_206E_200F_206F_206B_200D_200D_200E_202A_206A_200E_202D_206F_206A_200D_206F_202A_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static void _206C_202B_200B_202B_200B_206B_206E_206A_206F_206C_202A_200B_202A_206E_206B_200F_200E_206C_200B_200B_206D_206A_202A_206B_206F_206F_202C_206C_202A_206D_202B_202D_206B_206D_200C_200F_200D_206C_200F_206D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static long _202E_200D_202B_202B_206E_206C_200D_202B_206C_206E_200C_200C_202D_200F_200D_202D_202C_200C_202D_206D_200B_202D_202C_202A_206B_206E_200D_200E_200C_206D_206B_206C_206A_202A_200D_200F_206D_202B_202B_206A_202E() - { - return Environment.TickCount64; - } - - static void _206D_206B_200C_202B_200E_206D_200D_206B_200E_202B_206C_202A_206A_206B_200B_202A_206D_200F_202B_206E_200B_202D_206F_206F_206A_206C_200B_206F_202D_200D_202B_202E_206D_202A_206D_206C_206E_202B_202B_202D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogError(P_1, P_2); - } - - static void _200E_202B_200D_202A_206C_200C_200F_206A_206D_202B_206B_206A_206C_206C_202B_200E_202C_206B_200D_206A_200B_206C_200C_200B_200C_200F_200F_200F_200C_200B_200D_206A_200E_206E_206E_206F_206F_200C_206E_200D_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } } internal sealed record WaitLevelingModeTask(int RequiredLevel) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200C_202C_206A_200F_202D_206A_202E_202E_202B_206F_206F_206B_206E_200F_200F_206D_200D_200E_200E_202C_206C_206E_206F_200F_206D_206D_200B_200D_200D_202E_200F_202C_206C_206D_202C_202C_202A_200B_202C_200F_202E(typeof(WaitLevelingModeTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(26, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1813991496)); - defaultInterpolatedStringHandler.AppendFormatted(RequiredLevel); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200E_206E_202D_206D_202E_206F_200C_200E_206E_200D_202C_202D_200D_206C_200F_206C_202C_200F_202A_202E_206B_202E_206A_200F_202C_206C_206E_206A_206C_202A_200C_202D_200E_200B_206A_200F_202D_202B_200B_202D_202E(); - _200B_206F_200D_206B_202C_200E_206E_202E_206E_202D_202A_206A_202B_202C_200D_202E_202A_202D_206C_202C_206B_206D_206F_200F_206B_200F_206B_206F_200F_206F_202D_206C_202A_202A_200F_202B_202E_202A_202E_206B_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2045243570)); - _200B_206F_200D_206B_202C_200E_206E_202E_206E_202D_202A_206A_202B_202C_200D_202E_202A_202D_206C_202C_206B_206D_206F_200F_206B_200F_206B_206F_200F_206F_202D_206C_202A_202A_200F_202B_202E_202A_202E_206B_202E(builder, RequiredLevel.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(WaitLevelingModeTask? other) - { - int num = (((object)this == other) ? (-1709227923) : (-1709227922)); - while (true) - { - int num2 = num; - int num3 = -1709227921; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = -1709227922; - break; - case 2: - return true; - case 1: - num = (((object)other == null) ? (-1709227921) : (-1709227926)); - break; - case 4: - return EqualityComparer<int>.Default.Equals(RequiredLevel, other.RequiredLevel); - case 5: - num = ((!_200C_200C_206F_206D_200B_202D_206C_200F_206A_206C_202D_206F_206A_202E_200D_200B_202D_200B_202B_202D_202E_200F_206B_202D_202B_206E_206A_202B_206F_202A_200C_206C_202D_206E_202C_200B_206C_202D_202D_206A_202E(EqualityContract, other.EqualityContract)) ? (-1709227921) : (-1709227925)); - break; - case 0: - return false; - } - } - } - - bool IEquatable<WaitLevelingModeTask>.Equals(WaitLevelingModeTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200C_202C_206A_200F_202D_206A_202E_202E_202B_206F_206F_206B_206E_200F_200F_206D_200D_200E_200E_202C_206C_206E_206F_200F_206D_206D_200B_200D_200D_202E_200F_202C_206C_206D_202C_202C_202A_200B_202C_200F_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _200E_206E_202D_206D_202E_206F_200C_200E_206E_200D_202C_202D_200D_206C_200F_206C_202C_200F_202A_202E_206B_202E_206A_200F_202C_206C_206E_206A_206C_202A_200C_202D_200E_200B_206A_200F_202D_202B_200B_202D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200B_206F_200D_206B_202C_200E_206E_202E_206E_202D_202A_206A_202B_202C_200D_202E_202A_202D_206C_202C_206B_206D_206F_200F_206B_200F_206B_206F_200F_206F_202D_206C_202A_202A_200F_202B_202E_202A_202E_206B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _200C_200C_206F_206D_200B_202D_206C_200F_206A_206C_202D_206F_206A_202E_200D_200B_202D_200B_202B_202D_202E_200F_206B_202D_202B_206E_206A_202B_206F_202A_200C_206C_202D_206E_202C_200B_206C_202D_202D_206A_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"WaitLevelingMode(until Lv{RequiredLevel})"; } } @@ -2443,147 +654,54 @@ internal static class Duty return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - bool flag = _200D_206B_200E_206B_200B_200C_200F_200B_200C_206A_200D_202B_202C_206A_202D_200B_200C_206F_202A_202B_206C_202A_200D_200B_200C_206E_202B_202C_200B_202D_202D_202D_202C_206F_202C_202A_206E_206E_202B_200C_202E(condition, ConditionFlag.BoundByDuty); - bool flag2 = _200D_206B_200E_206B_200B_200C_200F_200B_200C_206A_200D_202B_202C_206A_202D_200B_200C_206F_202A_202B_206C_202A_200D_200B_200C_206E_202B_202C_200B_202D_202D_202D_202C_206F_202C_202A_206E_206E_202B_200C_202E(condition, ConditionFlag.InDutyQueue); - int num = ((!flag) ? (-561621789) : (-561621778)); - byte b = default(byte); - long num7 = default(long); - while (true) + bool flag = condition[ConditionFlag.BoundByDuty]; + bool flag2 = condition[ConditionFlag.InDutyQueue]; + if (flag && !_wasInDuty) { - int num2 = num; - int num3 = -561621782; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + logger.LogDebug("Entered duty for leveling"); + _wasInDuty = true; + } + byte b = objectTable.LocalPlayer?.Level ?? 0; + if (b >= base.Task.RequiredLevel) + { + logger.LogInformation("Reached required level {RequiredLevel} (current: {CurrentLevel})", base.Task.RequiredLevel, b); + chatGui.Print($"Reached level {b}, can now continue MSQ.", "Questionable", 576); + autoDutyIpc.Stop(); + return ETaskResult.TaskComplete; + } + if (autoDutyIpc.IsStopped() && !flag && !flag2 && _wasInDuty) + { + long tickCount = Environment.TickCount64; + if (_idleSinceMs < 0) { - case 15: - _idleSinceMs = -1L; - num = -561621792; - break; - case 13: - _202C_200F_200E_206B_200C_202A_206F_202B_202C_202E_206B_200B_200C_200D_202E_202B_206F_206D_202B_206F_202B_202E_202E_202E_200B_200F_200B_206F_202C_202C_202C_202C_206C_206C_206A_206F_206C_202B_200E_206E_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1085997974), new object[2] - { - b, - base.Task.RequiredLevel - }); - _200F_206C_200C_202A_206B_206E_200D_200C_206C_202D_206E_200D_200E_202B_200C_202C_202E_200F_200E_206F_200D_202C_200D_206A_206F_200D_202A_200B_206F_202D_200E_206A_206C_206E_202C_206D_206E_200E_206E_202A_202E(chatGui, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555207029), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712), (ushort?)(ushort)576); + _idleSinceMs = tickCount; + } + if (tickCount >= _statusLogNextMs) + { + int num = base.Task.RequiredLevel - b; + logger.LogDebug("Leveling between dungeons (current: {CurrentLevel}, need: {RequiredLevel}, {LevelsNeeded} more levels needed)", b, base.Task.RequiredLevel, num); + _statusLogNextMs = tickCount + 30000; + } + if (tickCount - _idleSinceMs > 90000) + { + logger.LogError("AutoDuty leveling stalled at level {CurrentLevel} (need {RequiredLevel}) and did not resume within 90s", b, base.Task.RequiredLevel); + chatGui.PrintError("AutoDuty leveling stalled and didn't resume, stopping.", "Questionable", 576); return ETaskResult.End; - case 12: - num = ((!autoDutyIpc.IsStopped()) ? (-561621787) : (-561621767)); - break; - case 10: - return ETaskResult.StillRunning; - case 17: - if (!_200D_206B_200E_206B_200B_200C_200F_200B_200C_206A_200D_202B_202C_206A_202D_200B_200C_206F_202A_202B_206C_202A_200D_200B_200C_206E_202B_202C_200B_202D_202D_202D_202C_206F_202C_202A_206E_206E_202B_200C_202E(condition, ConditionFlag.BetweenAreas51)) - { - num = -561621762; - break; - } - goto case 14; - case 5: - _206C_200F_200E_206A_206A_200F_202A_206A_202A_206D_206D_206D_206D_206C_200B_206D_202B_200B_200B_206A_200E_200C_200F_202B_200B_206D_206C_202E_202E_200D_206D_200D_200F_206E_200B_206A_202A_206D_200C_202E_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2081714817), Array.Empty<object>()); - _wasInDuty = true; - num = -561621789; - break; - case 8: - num7 = _206C_206C_200B_200F_202A_200B_206C_202B_206C_202B_202C_200B_206E_206C_200D_200D_200F_200C_202C_202B_202C_206B_202B_200F_200E_200F_200B_200B_202D_202A_206D_200E_200B_206F_206D_202D_202E_200D_202B_200D_202E(); - num = ((_idleSinceMs >= 0) ? (-561621783) : (-561621782)); - break; - case 20: - num = ((num7 < _reissueNextMs) ? (-561621792) : (-561621781)); - break; - case 14: - num = -561621792; - break; - case 19: - num = (flag ? (-561621787) : (-561621766)); - break; - case 6: - { - _206D_202B_202A_206A_202B_202B_200C_200C_206A_206E_200B_202A_206F_200F_202D_200B_202D_200D_200B_202E_206A_206E_200D_200D_206C_206C_206B_200C_202A_202D_206F_202E_200F_200D_200F_206E_206B_202E_200C_206A_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-943071448), new object[2] - { - base.Task.RequiredLevel, - b - }); - IChatGui chatGui = chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(37, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1065319718)); - defaultInterpolatedStringHandler.AppendFormatted(b); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2026620031)); - _202D_200B_206A_200B_206E_206D_202C_206F_200D_202D_202A_206A_200C_200F_202D_200B_200C_202B_202C_206F_206A_200C_202A_200E_202A_206C_202D_202E_200C_200E_200B_206B_200D_206B_202B_206C_202D_206D_200E_206F_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - autoDutyIpc.Stop(); - return ETaskResult.TaskComplete; } - case 0: - _idleSinceMs = num7; - num = -561621783; - break; - case 11: - num = -561621778; - break; - case 21: - num = (_200D_206B_200E_206B_200B_200C_200F_200B_200C_206A_200D_202B_202C_206A_202D_200B_200C_206F_202A_202B_206C_202A_200D_200B_200C_206E_202B_202C_200B_202D_202D_202D_202C_206F_202C_202A_206E_206E_202B_200C_202E(condition, ConditionFlag.BetweenAreas) ? (-561621788) : (-561621765)); - break; - case 4: - num = (_wasInDuty ? (-561621789) : (-561621777)); - break; - case 18: + if (!condition[ConditionFlag.BetweenAreas] && !condition[ConditionFlag.BetweenAreas51] && tickCount >= _reissueNextMs) { - int num12 = base.Task.RequiredLevel - b; - _206C_200F_200E_206A_206A_200F_202A_206A_202A_206D_206D_206D_206D_206C_200B_206D_202B_200B_200B_206A_200E_200C_200F_202B_200B_206D_206C_202E_202E_200D_206D_200D_200F_206E_200B_206A_202A_206D_200C_202E_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2028353863), new object[3] - { - b, - base.Task.RequiredLevel, - num12 - }); - long num13 = num7; - long num9 = 30000L; - long num10 = num13; - _statusLogNextMs = (num10 | num9) + (num10 & num9); - num = -561621779; - break; - } - case 9: - { - IPlayerCharacter playerCharacter = _206C_202D_200F_200C_206E_206F_206C_202D_206D_202E_200C_200F_200C_206C_202C_202C_202E_202A_202D_202E_202B_200D_206B_202C_200B_202C_206A_206F_206E_200C_200D_202E_206F_206E_206B_202A_206F_200C_206C_200C_202E(objectTable); - b = (byte)((playerCharacter != null) ? _206A_200E_200F_206A_202C_206B_200B_202A_206D_206B_206F_206C_200B_206A_206F_202D_202A_206D_202D_200E_206D_200C_206E_206A_200C_200D_206E_200F_202D_206F_206F_202E_206A_202D_206B_202D_202E_200F_200F_202D_202E((ICharacter)playerCharacter) : 0); - num = ((b < base.Task.RequiredLevel) ? (-561621786) : (-561621780)); - break; - } - case 7: - { - long num11 = num7; - long num9 = _idleSinceMs; - long num10 = num11; - num = ((~(~num10 + num9) <= 90000) ? (-561621761) : (-561621785)); - break; - } - case 16: - num = (flag2 ? (-561621787) : (-561621784)); - break; - case 2: - num = ((!_wasInDuty) ? (-561621787) : (-561621790)); - break; - case 1: - { - _206C_200F_200E_206A_206A_200F_202A_206A_202A_206D_206D_206D_206D_206C_200B_206D_202B_200B_200B_206A_200E_200C_200F_202B_200B_206D_206C_202E_202E_200D_206D_200D_200F_206E_200B_206A_202A_206D_200C_202E_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1740398930), Array.Empty<object>()); + logger.LogDebug("Starting next leveling dungeon"); autoDutyIpc.StartLevelingMode(); - long num8 = num7; - long num9 = 5000L; - long num10 = num8; - _reissueNextMs = (num10 | num9) + (num10 & num9); - num = -561621792; - break; - } - case 3: - num = ((num7 < _statusLogNextMs) ? (-561621779) : (-561621768)); - break; + _reissueNextMs = tickCount + 5000; } } + else + { + _idleSinceMs = -1L; + } + return ETaskResult.StillRunning; } public void StopNow() @@ -2591,60 +709,9 @@ internal static class Duty autoDutyIpc.Stop(); } - void IStoppableTaskExecutor.StopNow() - { - //ILSpy generated this explicit interface implementation from .override directive in StopNow - this.StopNow(); - } - public override bool ShouldInterruptOnDamage() { return false; } - - static bool _200D_206B_200E_206B_200B_200C_200F_200B_200C_206A_200D_202B_202C_206A_202D_200B_200C_206F_202A_202B_206C_202A_200D_200B_200C_206E_202B_202C_200B_202D_202D_202D_202C_206F_202C_202A_206E_206E_202B_200C_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static void _206C_200F_200E_206A_206A_200F_202A_206A_202A_206D_206D_206D_206D_206C_200B_206D_202B_200B_200B_206A_200E_200C_200F_202B_200B_206D_206C_202E_202E_200D_206D_200D_200F_206E_200B_206A_202A_206D_200C_202E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static IPlayerCharacter _206C_202D_200F_200C_206E_206F_206C_202D_206D_202E_200C_200F_200C_206C_202C_202C_202E_202A_202D_202E_202B_200D_206B_202C_200B_202C_206A_206F_206E_200C_200D_202E_206F_206E_206B_202A_206F_200C_206C_200C_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static byte _206A_200E_200F_206A_202C_206B_200B_202A_206D_206B_206F_206C_200B_206A_206F_202D_202A_206D_202D_200E_206D_200C_206E_206A_200C_200D_206E_200F_202D_206F_206F_202E_206A_202D_206B_202D_202E_200F_200F_202D_202E(ICharacter P_0) - { - return P_0.Level; - } - - static void _206D_202B_202A_206A_202B_202B_200C_200C_206A_206E_200B_202A_206F_200F_202D_200B_202D_200D_200B_202E_206A_206E_200D_200D_206C_206C_206B_200C_202A_202D_206F_202E_200F_200D_200F_206E_206B_202E_200C_206A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static void _202D_200B_206A_200B_206E_206D_202C_206F_200D_202D_202A_206A_200C_200F_202D_200B_200C_202B_202C_206F_206A_200C_202A_200E_202A_206C_202D_202E_200C_200E_200B_206B_200D_206B_202B_206C_202D_206D_200E_206F_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); - } - - static long _206C_206C_200B_200F_202A_200B_206C_202B_206C_202B_202C_200B_206E_206C_200D_200D_200F_200C_202C_202B_202C_206B_202B_200F_200E_200F_200B_200B_202D_202A_206D_200E_200B_206F_206D_202D_202E_200D_202B_200D_202E() - { - return Environment.TickCount64; - } - - static void _202C_200F_200E_206B_200C_202A_206F_202B_202C_202E_206B_200B_200C_200D_202E_202B_206F_206D_202B_206F_202B_202E_202E_202E_200B_200F_200B_206F_202C_202C_202C_202C_206C_206C_206A_206F_206C_202B_200E_206E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogError(P_1, P_2); - } - - static void _200F_206C_200C_202A_206B_206E_200D_200C_206C_202D_206E_200D_200E_202B_200C_202C_202E_200F_200E_206F_200D_202C_200D_206A_206F_200D_202A_200B_206F_202D_200E_206A_206C_206E_202C_206D_206E_200E_206E_202A_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/DutyRetryState.cs b/Questionable/Questionable.Controller.Steps.Interactions/DutyRetryState.cs index e290bf1..56fa7ec 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/DutyRetryState.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/DutyRetryState.cs @@ -8,37 +8,15 @@ internal sealed class DutyRetryState public bool CanRetry(int maxRetries) { - int num = ((maxRetries < 0) ? 1447023727 : 1447023721); - bool result = default(bool); - while (true) + if (maxRetries >= 0) { - int num2 = num; - int num3 = 1447023724; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (maxRetries == 0) { - case 0: - num = 1447023721; - break; - case 4: - result = _retryCount < maxRetries; - num = 1447023725; - break; - case 3: - result = true; - num = 1447023725; - break; - case 2: - result = false; - num = 1447023725; - break; - case 5: - num = ((maxRetries != 0) ? 1447023720 : 1447023726); - break; - case 1: - return result; + return false; } + return _retryCount < maxRetries; } + return true; } public void BeginAwaitingOutcome() @@ -53,12 +31,7 @@ internal sealed class DutyRetryState public void RecordRetry() { - int retryCount = _retryCount; - int num = 1; - int num2 = retryCount; - int num3 = num2 ^ num; - int num4 = num2 & num; - _retryCount = num3 + (num4 + num4); + _retryCount++; AwaitingOutcome = false; } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/Emote.cs b/Questionable/Questionable.Controller.Steps.Interactions/Emote.cs index 7a5c947..0a2e851 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/Emote.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/Emote.cs @@ -1,7 +1,5 @@ using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Questionable.Controller.Steps.Common; using Questionable.Functions; using Questionable.Model; @@ -13,188 +11,37 @@ internal static class Emote { internal sealed class Factory : ITaskFactory { - [MethodImpl(MethodImplOptions.NoInlining)] public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - EInteractionType eInteractionType = _206E_200F_202D_200B_206F_206C_202E_200B_206F_200D_206D_206D_206E_200F_200F_206C_206D_200D_206D_200B_206D_202D_206E_206D_200B_200C_206F_202B_200E_206C_206F_200E_206E_200D_200F_206C_200F_202E_206E_200F_202E(step); - int num = ((eInteractionType == EInteractionType.SinglePlayerDuty) ? 600335815 : 600335808); - Mount.UnmountTask unmountTask = default(Mount.UnmountTask); - bool flag = default(bool); - while (true) + EInteractionType interactionType = step.InteractionType; + if ((interactionType == EInteractionType.SinglePlayerDuty || (uint)(interactionType - 30) <= 1u) ? true : false) { - int num2 = num; - int num3 = 600335812; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (!step.Emote.HasValue) { - case 8: return Array.Empty<ITask>(); - case 2: - _200E_200C_202D_206D_202C_200C_206B_206C_206D_200E_206C_200E_206E_206B_200C_206F_200B_200D_206E_200B_200B_202E_206B_200E_200D_206F_206A_200F_200E_202E_200B_206D_200E_200E_202C_202B_202D_206B_200D_206C_202E((object)_202C_206B_202E_200E_200F_200F_206F_200B_206A_206C_202B_202A_200E_202D_206D_206A_200D_200E_200E_206C_202A_202A_202E_200E_206D_206A_206F_202A_200C_202D_200F_202B_202C_200E_206C_200E_202C_206A_206A_200E_202E(step), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-837937279)); - unmountTask = new Mount.UnmountTask(); - num = ((!_202E_202D_206C_206B_206E_202A_202D_200B_200E_200B_202D_200C_200C_206B_202A_202B_202A_202C_206E_202C_206A_200C_200C_206B_200C_206C_200D_206D_202C_202B_206C_206B_206A_200F_202C_206D_206C_202C_206E_200F_202E(step).HasValue) ? 600335811 : 600335813); - break; - case 0: - num = 600335808; - break; - case 5: - num = ((!flag) ? 600335823 : 600335821); - break; - case 6: - return Array.Empty<ITask>(); - case 11: - num = ((_206E_200F_202D_200B_206F_206C_202E_200B_206F_200D_206D_206D_206E_200F_200F_206C_206D_200D_206D_200B_206D_202D_206E_206D_200B_200C_206F_202B_200E_206C_206F_200E_206E_200D_200F_206C_200F_202E_206E_200F_202E(step) == EInteractionType.Emote) ? 600335814 : 600335810); - break; - case 7: - { - UseOnSelf useOnSelf = new UseOnSelf(_202C_206B_202E_200E_200F_200F_206F_200B_206A_206C_202B_202A_200E_202D_206D_206A_200D_200E_200E_206C_202A_202A_202E_200E_206D_206A_206F_202A_200C_202D_200F_202B_202C_200E_206C_200E_202C_206A_206A_200E_202E(step).Value); - return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] { unmountTask, useOnSelf }); - } - case 9: - num = (_202C_206B_202E_200E_200F_200F_206F_200B_206A_206C_202B_202A_200E_202D_206D_206A_200D_200E_200E_206C_202A_202A_202E_200E_206D_206A_206F_202A_200C_202D_200F_202B_202C_200E_206C_200E_202C_206A_206A_200E_202E(step).HasValue ? 600335814 : 600335820); - break; - case 4: - num = (((uint)(eInteractionType - 30) > 1u) ? 600335822 : 600335815); - break; - case 10: - flag = false; - num = 600335809; - break; - case 1: - { - UseOnObject useOnObject = new UseOnObject(_202C_206B_202E_200E_200F_200F_206F_200B_206A_206C_202B_202A_200E_202D_206D_206A_200D_200E_200E_206C_202A_202A_202E_200E_206D_206A_206F_202A_200C_202D_200F_202B_202C_200E_206C_200E_202C_206A_206A_200E_202E(step).Value, _202E_202D_206C_206B_206E_202A_202D_200B_200E_200B_202D_200C_200C_206B_202A_202B_202A_202C_206E_202C_206A_200C_200C_206B_200C_206C_200D_206D_202C_202B_206C_206B_206A_200F_202C_206D_206C_202C_206E_200F_202E(step).Value); - return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] { unmountTask, useOnObject }); - } - case 3: - flag = true; - num = 600335809; - break; } } - } - - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); - } - - static EInteractionType _206E_200F_202D_200B_206F_206C_202E_200B_206F_200D_206D_206D_206E_200F_200F_206C_206D_200D_206D_200B_206D_202D_206E_206D_200B_200C_206F_202B_200E_206C_206F_200E_206E_200D_200F_206C_200F_202E_206E_200F_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static EEmote? _202C_206B_202E_200E_200F_200F_206F_200B_206A_206C_202B_202A_200E_202D_206D_206A_200D_200E_200E_206C_202A_202A_202E_200E_206D_206A_206F_202A_200C_202D_200F_202B_202C_200E_206C_200E_202C_206A_206A_200E_202E(QuestStep P_0) - { - return P_0.Emote; - } - - static void _200E_200C_202D_206D_202C_200C_206B_206C_206D_200E_206C_200E_206E_206B_200C_206F_200B_200D_206E_200B_200B_202E_206B_200E_200D_206F_206A_200F_200E_202E_200B_206D_200E_200E_202C_202B_202D_206B_200D_206C_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static uint? _202E_202D_206C_206B_206E_202A_202D_200B_200E_200B_202D_200C_200C_206B_202A_202B_202A_202C_206E_202C_206A_200C_200C_206B_200C_206C_200D_206D_202C_202B_206C_206B_206A_200F_202C_206D_206C_202C_206E_200F_202E(QuestStep P_0) - { - return P_0.DataId; + else if (step.InteractionType != EInteractionType.Emote) + { + return Array.Empty<ITask>(); + } + ArgumentNullException.ThrowIfNull(step.Emote, "step.Emote"); + Mount.UnmountTask unmountTask = new Mount.UnmountTask(); + if (step.DataId.HasValue) + { + UseOnObject useOnObject = new UseOnObject(step.Emote.Value, step.DataId.Value); + return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] { unmountTask, useOnObject }); + } + UseOnSelf useOnSelf = new UseOnSelf(step.Emote.Value); + return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] { unmountTask, useOnSelf }); } } internal sealed record UseOnObject(EEmote Emote, uint DataId) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206B_200D_206F_200D_206F_200C_202E_206A_202D_202E_200C_206E_206D_206D_202C_200D_202B_206D_200C_200C_200C_200E_206B_206C_202C_200D_206E_206F_206C_206D_206A_206E_206A_200F_202B_202E_206F_200B_206A_202C_202E(typeof(UseOnObject).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(11, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2087986807)); - defaultInterpolatedStringHandler.AppendFormatted(Emote); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(858401592)); - defaultInterpolatedStringHandler.AppendFormatted(DataId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200B_200C_202B_202E_202C_200D_206C_206E_202C_202B_202C_202A_200C_200B_206B_202B_202A_200E_202E_200E_206B_202B_202A_202D_206C_206B_202E_200E_200C_200F_206E_202A_200D_206A_200B_202D_200C_202C_206D_200C_202E(); - _202C_202E_200D_202C_200D_206E_202A_200F_202C_200C_200F_200D_206D_202A_202B_202A_206B_206C_202B_206A_206C_202E_200F_200C_206D_202E_202D_206A_202A_206A_202C_206C_200C_206A_206E_202E_206A_202C_202B_206E_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1120730526)); - _202C_202E_200D_202C_200D_206E_202A_200F_202C_200C_200F_200D_206D_202A_202B_202A_206B_206C_202B_206A_206C_202E_200F_200C_206D_202E_202D_206A_202A_206A_202C_206C_200C_206A_206E_202E_206A_202C_202B_206E_202E(builder, Emote.ToString()); - _202C_202E_200D_202C_200D_206E_202A_200F_202C_200C_200F_200D_206D_202A_202B_202A_206B_206C_202B_206A_206C_202E_200F_200C_206D_202E_202D_206A_202A_206A_202C_206C_200C_206A_206E_202E_206A_202C_202B_206E_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1696435016)); - _202C_202E_200D_202C_200D_206E_202A_200F_202C_200C_200F_200D_206D_202A_202B_202A_206B_206C_202B_206A_206C_202E_200F_200C_206D_202E_202D_206A_202A_206A_202C_206C_200C_206A_206E_202E_206A_202C_202B_206E_202E(builder, DataId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(UseOnObject? other) - { - int num = (((object)this == other) ? 1765406967 : 1765406963); - while (true) - { - int num2 = num; - int num3 = 1765406965; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return EqualityComparer<uint>.Default.Equals(DataId, other.DataId); - case 1: - num = ((!_200C_200B_202E_200E_202D_200C_200F_202B_202B_200B_206B_200B_206C_202D_206A_202A_200E_202B_206D_200D_206A_202D_200D_206D_200B_202A_206A_200E_202B_202E_206A_202D_206C_206B_200D_206D_202D_200D_200E_200E_202E(EqualityContract, other.EqualityContract)) ? 1765406965 : 1765406960); - break; - case 2: - return true; - case 0: - return false; - case 4: - num = 1765406963; - break; - case 5: - num = ((!EqualityComparer<EEmote>.Default.Equals(Emote, other.Emote)) ? 1765406965 : 1765406966); - break; - case 6: - num = (((object)other == null) ? 1765406965 : 1765406964); - break; - } - } - } - - bool IEquatable<UseOnObject>.Equals(UseOnObject? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206B_200D_206F_200D_206F_200C_202E_206A_202D_202E_200C_206E_206D_206D_202C_200D_202B_206D_200C_200C_200C_200E_206B_206C_202C_200D_206E_206F_206C_206D_206A_206E_206A_200F_202B_202E_206F_200B_206A_202C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _200B_200C_202B_202E_202C_200D_206C_206E_202C_202B_202C_202A_200C_200B_206B_202B_202A_200E_202E_200E_206B_202B_202A_202D_206C_206B_202E_200E_200C_200F_206E_202A_200D_206A_200B_202D_200C_202C_206D_200C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202C_202E_200D_202C_200D_206E_202A_200F_202C_200C_200F_200D_206D_202A_202B_202A_206B_206C_202B_206A_206C_202E_200F_200C_206D_202E_202D_206A_202A_206A_202C_206C_200C_206A_206E_202E_206A_202C_202B_206E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _200C_200B_202E_200E_202D_200C_200F_202B_202B_200B_206B_200B_206C_202D_206A_202A_200E_202B_206D_200D_206A_202D_200D_206D_200B_202A_206A_200E_202B_202E_206A_202D_206C_206B_200D_206D_202D_200D_200E_200E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"Emote({Emote} on {DataId})"; } } @@ -214,142 +61,35 @@ internal static class Emote protected override ETaskResult UpdateInternal() { - int num = (_emoteFired ? 594920649 : 594920652); - while (true) + if (!_emoteFired) { - int num2 = num; - int num3 = 594920655; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (Environment.TickCount64 < _retryAt) { - case 0: - num = 594920652; - break; - case 5: - _emoteFired = chatFunctions.UseEmote(base.Task.DataId, base.Task.Emote); - _retryAt = _200E_206B_200E_206D_200B_200D_202C_200F_202D_200F_202A_200F_206A_206D_206B_200D_206D_206A_202C_202D_200E_200C_202D_206A_206B_202C_200F_206A_200D_202B_200F_200D_200B_206B_202E_200E_206B_206F_200D_202B_202E() + 1000; return ETaskResult.StillRunning; - case 1: - { - int attempts = _attempts; - num3 = 1; - num4 = attempts; - _attempts = (num4 | num3) + (num4 & num3); - num = ((_attempts <= 10) ? 594920650 : 594920653); - break; } - case 3: - num = ((_200E_206B_200E_206D_200B_200D_202C_200F_202D_200F_202A_200F_206A_206D_206B_200D_206D_206A_202C_202D_200E_200C_202D_206A_206B_202C_200F_206A_200D_202B_200F_200D_200B_206B_202E_200E_206B_206F_200D_202B_202E() >= _retryAt) ? 594920654 : 594920651); - break; - case 2: + _attempts++; + if (_attempts > 10) + { return ETaskResult.RetryStep; - case 6: - return ETaskResult.TaskComplete; - case 4: - return ETaskResult.StillRunning; } + _emoteFired = chatFunctions.UseEmote(base.Task.DataId, base.Task.Emote); + _retryAt = Environment.TickCount64 + 1000; + return ETaskResult.StillRunning; } + return ETaskResult.TaskComplete; } public override bool ShouldInterruptOnDamage() { return true; } - - static long _200E_206B_200E_206D_200B_200D_202C_200F_202D_200F_202A_200F_206A_206D_206B_200D_206D_206A_202C_202D_200E_200C_202D_206A_206B_202C_200F_206A_200D_202B_200F_200D_200B_206B_202E_200E_206B_206F_200D_202B_202E() - { - return Environment.TickCount64; - } } internal sealed record UseOnSelf(EEmote Emote) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202B_202C_202A_202E_206A_202B_202A_206E_206D_206F_206C_206D_202E_202C_206F_202A_202E_206D_200D_206B_202C_206F_202E_206A_202C_206C_200C_200E_202E_206C_206E_200B_206E_206A_206B_206B_202B_200F_202C_206E_202E(typeof(UseOnSelf).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(7, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-683666426)); - defaultInterpolatedStringHandler.AppendFormatted(Emote); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206F_202B_200C_202E_202C_206C_206A_200B_200D_200D_202E_200B_200D_202A_200C_206A_200E_206F_200B_206A_206C_202E_202A_206F_206D_200F_206C_206E_206A_200F_202A_202A_206D_206F_202B_200B_206F_206E_206B_202C_202E(); - _202C_200C_202A_200B_202A_206E_206B_202E_202B_202C_200D_202B_206E_200F_200F_202E_200C_200E_206F_206B_200C_206A_200E_200F_206A_206E_206D_202C_200B_200B_206F_202B_206B_202A_200D_206E_202A_206B_206C_206A_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1730990163)); - _202C_200C_202A_200B_202A_206E_206B_202E_202B_202C_200D_202B_206E_200F_200F_202E_200C_200E_206F_206B_200C_206A_200E_200F_206A_206E_206D_202C_200B_200B_206F_202B_206B_202A_200D_206E_202A_206B_206C_206A_202E(builder, Emote.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(UseOnSelf? other) - { - int num = (((object)this == other) ? 748944123 : 748944126); - while (true) - { - int num2 = num; - int num3 = 748944127; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - return EqualityComparer<EEmote>.Default.Equals(Emote, other.Emote); - case 2: - num = ((!_202A_200B_206A_202D_206D_202E_206C_206E_200B_202C_202D_206C_206B_200D_202D_200B_202D_206D_200D_200C_206F_206B_202A_200C_202B_206A_200B_206B_206F_206C_200F_200E_200C_206D_206A_200C_202B_202A_206C_206B_202E(EqualityContract, other.EqualityContract)) ? 748944124 : 748944122); - break; - case 4: - return true; - case 0: - num = 748944126; - break; - case 3: - return false; - case 1: - num = (((object)other == null) ? 748944124 : 748944125); - break; - } - } - } - - bool IEquatable<UseOnSelf>.Equals(UseOnSelf? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202B_202C_202A_202E_206A_202B_202A_206E_206D_206F_206C_206D_202E_202C_206F_202A_202E_206D_200D_206B_202C_206F_202E_206A_202C_206C_200C_200E_202E_206C_206E_200B_206E_206A_206B_206B_202B_200F_202C_206E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206F_202B_200C_202E_202C_206C_206A_200B_200D_200D_202E_200B_200D_202A_200C_206A_200E_206F_200B_206A_206C_202E_202A_206F_206D_200F_206C_206E_206A_200F_202A_202A_206D_206F_202B_200B_206F_206E_206B_202C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202C_200C_202A_200B_202A_206E_206B_202E_202B_202C_200D_202B_206E_200F_200F_202E_200C_200E_206F_206B_200C_206A_200E_200F_206A_206E_206D_202C_200B_200B_206F_202B_206B_202A_200D_206E_202A_206B_206C_206A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _202A_200B_206A_202D_206D_202E_206C_206E_200B_202C_202D_206C_206B_200D_202D_200B_202D_206D_200D_200C_206F_206B_202A_200C_202B_206A_200B_206B_206F_206C_200F_200E_200C_206D_206A_200C_202B_202A_206C_206B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"Emote({Emote})"; } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/EquipItem.cs b/Questionable/Questionable.Controller.Steps.Interactions/EquipItem.cs index 7df1dab..53681d8 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/EquipItem.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/EquipItem.cs @@ -1,10 +1,7 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using System.Text; using Dalamud.Game.Text.SeStringHandling; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; @@ -22,135 +19,22 @@ internal static class EquipItem { internal sealed class Factory : SimpleTaskFactory { - [MethodImpl(MethodImplOptions.NoInlining)] public override ITask? CreateTask(Questionable.Model.Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_206E_202C_202B_206E_202A_200F_200F_200D_206D_200B_202E_206B_200D_200E_200E_206A_202A_200D_202D_202B_206A_202B_206A_206A_206E_206C_202E_206E_200E_206A_206F_206C_200E_202B_206D_202D_202A_202A_206E_206F_202E(step) == EInteractionType.EquipItem) ? (-1960316662) : (-1960316663)); - while (true) + if (step.InteractionType != EInteractionType.EquipItem) { - int num2 = num; - int num3 = -1960316664; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - _200C_206A_206A_206C_202C_206E_200B_202D_200E_206C_202B_206A_206F_206C_206C_202E_202C_206A_206C_200B_206D_206F_200F_202D_206A_202C_206F_206B_202A_202D_200C_206B_202E_200F_206C_200E_202A_202C_206C_202A_202E((object)_206A_202C_206D_200D_202B_206E_200B_206A_206E_206F_202D_200E_202E_206E_200B_202C_202B_202D_200F_202B_206B_202E_202C_200C_202B_202C_206A_206C_202C_206F_206F_206E_200C_206E_206B_206A_206C_202D_206E_200E_202E(step), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(775023194)); - return new Task(_206A_202C_206D_200D_202B_206E_200B_206A_206E_206F_202D_200E_202E_206E_200B_202C_202B_202D_200F_202B_206B_202E_202C_200C_202B_202C_206A_206C_202C_206F_206F_206E_200C_206E_206B_206A_206C_202D_206E_200E_202E(step).Value); - case 1: - return null; - case 0: - goto IL_0078; - } - continue; - IL_0078: - num = -1960316663; + return null; } - } - - static EInteractionType _206E_202C_202B_206E_202A_200F_200F_200D_206D_200B_202E_206B_200D_200E_200E_206A_202A_200D_202D_202B_206A_202B_206A_206A_206E_206C_202E_206E_200E_206A_206F_206C_200E_202B_206D_202D_202A_202A_206E_206F_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static uint? _206A_202C_206D_200D_202B_206E_200B_206A_206E_206F_202D_200E_202E_206E_200B_202C_202B_202D_200F_202B_206B_202E_202C_200C_202B_202C_206A_206C_202C_206F_206F_206E_200C_206E_206B_206A_206C_202D_206E_200E_202E(QuestStep P_0) - { - return P_0.ItemId; - } - - static void _200C_206A_206A_206C_202C_206E_200B_202D_200E_206C_202B_206A_206F_206C_206C_202E_202C_206A_206C_200B_206D_206F_200F_202D_206A_202C_206F_206B_202A_202D_200C_206B_202E_200F_206C_200E_202A_202C_206C_202A_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); + ArgumentNullException.ThrowIfNull(step.ItemId, "step.ItemId"); + return new Task(step.ItemId.Value); } } internal sealed record Task(uint ItemId) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202A_200B_202C_202C_206F_200C_202E_202A_200E_206E_206A_206F_206F_200E_206D_200B_206D_200B_206C_202C_206F_206E_206E_206A_202B_206D_206D_206C_200E_206F_200E_206D_200E_200B_206A_200C_206F_202B_200C_200C_202E(typeof(Task).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(7, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1269144091)); - defaultInterpolatedStringHandler.AppendFormatted(ItemId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206B_200F_206D_206D_206A_206A_206D_206F_202C_202D_206E_200D_200C_206D_200E_202B_206A_206F_200C_206F_202A_200E_202D_202E_202B_202E_206B_202C_200C_206C_202D_202A_206A_206C_202B_206A_202C_200D_206A_200E_202E(); - _206D_206A_202E_202A_206E_202D_200C_206C_206E_202D_202B_200E_202C_202B_206C_206C_206C_200F_206A_206F_200E_206C_206D_202A_200E_200B_206F_202C_202D_202D_202A_206E_206B_200D_200E_206F_202A_202A_202C_202A_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1149877868)); - _206D_206A_202E_202A_206E_202D_200C_206C_206E_202D_202B_200E_202C_202B_206C_206C_206C_200F_206A_206F_200E_206C_206D_202A_200E_200B_206F_202C_202D_202D_202A_206E_206B_200D_200E_206F_202A_202A_202C_202A_202E(builder, ItemId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? 916478318 : 916478314); - while (true) - { - int num2 = num; - int num3 = 916478319; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - return EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId); - case 5: - num = (((object)other == null) ? 916478317 : 916478319); - break; - case 3: - num = 916478314; - break; - case 2: - return false; - case 0: - num = ((!_206C_200B_202B_200E_202A_206E_206A_206B_200B_202D_206E_200B_200B_206D_206E_200F_202C_206C_200F_200F_202D_202D_206A_206B_200F_206A_202E_200E_202C_206B_202E_200E_206B_200D_202C_200F_202C_200E_200B_206F_202E(EqualityContract, other.EqualityContract)) ? 916478317 : 916478315); - break; - case 1: - return true; - } - } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202A_200B_202C_202C_206F_200C_202E_202A_200E_206E_206A_206F_206F_200E_206D_200B_206D_200B_206C_202C_206F_206E_206E_206A_202B_206D_206D_206C_200E_206F_200E_206D_200E_200B_206A_200C_206F_202B_200C_200C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206B_200F_206D_206D_206A_206A_206D_206F_202C_202D_206E_200D_200C_206D_200E_202B_206A_206F_200C_206F_202A_200E_202D_202E_202B_202E_206B_202C_200C_206C_202D_202A_206A_206C_202B_206A_202C_200D_206A_200E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206D_206A_202E_202A_206E_202D_200C_206C_206E_202D_202B_200E_202C_202B_206C_206C_206C_200F_206A_206F_200E_206C_206D_202A_200E_200B_206F_202C_202D_202D_202A_206E_206B_200D_200E_206F_202A_202A_202C_202A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _206C_200B_202B_200E_202A_206E_206A_206B_200B_202D_206E_200B_200B_206D_206E_200F_202C_206C_200F_200F_202D_202D_206A_206B_200F_206A_202E_200E_202C_206B_202E_200E_206B_200D_202C_200F_202C_200E_200B_206F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"Equip({ItemId})"; } } @@ -158,7 +42,25 @@ internal static class EquipItem { private const int MaxAttempts = 3; - private static readonly IReadOnlyList<InventoryType> SourceInventoryTypes; + private static readonly IReadOnlyList<InventoryType> SourceInventoryTypes = new global::_003C_003Ez__ReadOnlyArray<InventoryType>(new InventoryType[16] + { + InventoryType.ArmoryMainHand, + InventoryType.ArmoryOffHand, + InventoryType.ArmoryHead, + InventoryType.ArmoryBody, + InventoryType.ArmoryHands, + InventoryType.ArmoryLegs, + InventoryType.ArmoryFeets, + InventoryType.ArmoryEar, + InventoryType.ArmoryNeck, + InventoryType.ArmoryWrist, + InventoryType.ArmoryRings, + InventoryType.ArmorySoulCrystal, + InventoryType.Inventory1, + InventoryType.Inventory2, + InventoryType.Inventory3, + InventoryType.Inventory4 + }); private int _attempts; @@ -168,390 +70,144 @@ internal static class EquipItem private long _continueAt = long.MaxValue; - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - _item = ((ItemHandle)base.Task.ItemId).GetRow(dataManager) ?? throw _202D_206F_200D_200B_200E_200F_200C_200F_206A_200C_206E_202E_206F_202B_202B_200D_206B_200F_200B_206E_202A_200C_202B_202B_200F_206A_200F_202C_206F_206F_202C_200D_206F_206D_202B_206D_202A_206E_200F_206D_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1077249422)); - _targetSlots = GetEquipSlot(_item) ?? throw _202C_202B_200C_200E_206C_200C_206A_206A_206E_202D_200E_206D_202B_200F_206A_202C_202C_200C_206D_206E_202B_206A_200F_200F_200F_206C_200C_206C_200F_206C_200C_202C_206E_206F_202C_200C_206D_200D_200B_202A_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1196644281)); + _item = ((ItemHandle)base.Task.ItemId).GetRow(dataManager) ?? throw new ArgumentOutOfRangeException("ItemId"); + _targetSlots = GetEquipSlot(_item) ?? throw new InvalidOperationException("Not a piece of equipment"); Equip(); - _continueAt = _206D_202E_200E_200D_202A_206E_200E_200E_200F_206C_206F_206F_200F_200C_200D_206D_202A_206A_206C_206F_200E_206F_200F_206C_206F_202D_200D_202E_202E_202B_202C_206A_202D_206E_200C_206A_200B_206E_206D_206A_202E() + 1000; + _continueAt = Environment.TickCount64 + 1000; return true; } public override ETaskResult Update() { - int num = ((_206D_202E_200E_200D_202A_206E_200E_200E_200F_206C_206F_206F_200F_200C_200D_206D_202A_206A_206C_206F_200E_206F_200F_206C_206F_202D_200D_202E_202E_202B_202C_206A_202D_206E_200C_206A_200B_206E_206D_206A_202E() >= _continueAt) ? (-1725394015) : (-1725394009)); - while (true) + if (Environment.TickCount64 < _continueAt) { - int num2 = num; - int num3 = -1725394013; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = ((!_200B_206F_200E_202D_200D_206A_202C_200F_202E_206D_206A_206D_202A_200C_202C_206B_200D_206E_200E_202D_202B_200F_202C_206A_202B_202C_202A_200E_206A_200D_206C_206C_202E_202E_200C_202E_206F_202C_200B_206E_202E(base.Task.ItemId)) ? (-1725394014) : (-1725394016)); - break; - case 4: - return ETaskResult.StillRunning; - case 3: - return ETaskResult.TaskComplete; - case 0: - num = -1725394009; - break; - case 1: - Equip(); - _continueAt = _206D_202E_200E_200D_202A_206E_200E_200E_200F_206C_206F_206F_200F_200C_200D_206D_202A_206A_206C_206F_200E_206F_200F_206C_206F_202D_200D_202E_202E_202B_202C_206A_202D_206E_200C_206A_200B_206E_206D_206A_202E() + 1000; - return ETaskResult.StillRunning; - } + return ETaskResult.StillRunning; } + if (InventoryHelper.IsItemEquipped(base.Task.ItemId)) + { + return ETaskResult.TaskComplete; + } + Equip(); + _continueAt = Environment.TickCount64 + 1000; + return ETaskResult.StillRunning; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void Equip() { - int attempts = _attempts; - int num = 1; - int num2 = attempts; - _attempts = (num2 | num) + (num2 & num); - int num3 = ((_attempts <= 3) ? 2032675570 : 2032675573); - InventoryManager* inventoryManager = default(InventoryManager*); - ushort num11 = default(ushort); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - InventoryType current = default(InventoryType); - InventoryItem* inventorySlot = default(InventoryItem*); - while (true) + _attempts++; + if (_attempts > 3) { - int num4 = num3; - num = 2032675575; - num2 = num4; - int num5 = num2 + num; - int num6 = num2 & num; - switch (num5 - (num6 + num6)) + throw new TaskException("Unable to equip gear."); + } + InventoryManager* inventoryManager = InventoryManager.Instance(); + if (inventoryManager == null) + { + return; + } + if (InventoryHelper.IsItemEquipped(base.Task.ItemId)) + { + logger.LogDebug("Already equipped {Item}, skipping step", _item?.Name.ToString()); + return; + } + foreach (InventoryType sourceInventoryType in SourceInventoryTypes) + { + InventoryContainer* inventoryContainer = inventoryManager->GetInventoryContainer(sourceInventoryType); + if (inventoryContainer == null) { - case 0: - num3 = 2032675573; - break; - case 4: - num3 = ((!_200B_206F_200E_202D_200D_206A_202C_200F_202E_206D_206A_206D_202A_200C_202C_206B_200D_206E_200E_202D_202B_200F_202C_206A_202B_202C_202A_200E_206A_200D_206C_206C_202E_202E_200C_202E_206F_202C_200B_206E_202E(base.Task.ItemId)) ? 2032675572 : 2032675569); - break; - case 6: - _206C_206A_200D_200F_200F_202A_200B_206A_200C_206E_200E_200C_206D_200E_202B_206A_206C_202E_206D_206B_200D_206F_200B_202C_206C_200E_202A_200E_202C_202E_206B_200D_200C_202B_206B_200F_200E_200D_202A_200F_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(764444822), new object[1] { _item?.Name.ToString() }); - return; - case 2: - throw new TaskException(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2089703109)); - case 1: - return; - case 5: - inventoryManager = InventoryManager.Instance(); - num3 = ((inventoryManager != null) ? 2032675571 : 2032675574); - break; - case 3: - { - IEnumerator<InventoryType> enumerator = SourceInventoryTypes.GetEnumerator(); - try - { - num3 = -665926440; - while (true) - { - int num7 = num3; - num = -665926439; - num2 = num7; - int num8 = num2 + num; - int num9 = num2 & num; - switch (num8 - (num9 + num9)) - { - case 4: - num11 = 0; - num3 = -665926436; - break; - case 1: - num3 = (_206B_200C_206A_206B_206A_202D_206C_200F_206B_206A_206D_200F_200C_202B_200C_206B_202B_200B_200B_202E_200E_200B_200C_200B_202C_200F_206B_206D_200E_206C_206B_200B_200F_202E_200D_206F_200E_202A_200E_200D_202E((IEnumerator)enumerator) ? (-665926434) : (-665926439)); - break; - case 5: - num3 = ((num11 < inventoryContainer->Size) ? (-665926438) : (-665926440)); - break; - case 2: - { - ushort num14 = _targetSlots.Where(delegate(ushort x) - { - InventoryItem* inventorySlot2 = inventoryManager->GetInventorySlot(InventoryType.EquippedItems, x); - int num19 = ((inventorySlot2 == null) ? 1990589233 : 1990589234); - while (true) - { - int num20 = num19; - int num21 = 1990589232; - int num22 = num20; - int num23 = num22 + num21; - int num24 = num22 & num21; - switch (num23 - (num24 + num24)) - { - case 0: - goto IL_0057; - case 1: - return true; - case 2: - return inventorySlot2->ItemId == 0; - } - continue; - IL_0057: - num19 = 1990589234; - } - }).Concat(_targetSlots).First(); - _206C_206A_200D_200F_200F_202A_200B_206A_200C_206E_200E_200C_206D_200E_202B_206A_206C_202E_206D_206B_200D_206F_200B_202C_206C_200E_202A_200E_202C_202E_206B_200D_200C_202B_206B_200F_200E_200D_202A_200F_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2001963263), new object[4] - { - current, - num11, - InventoryType.EquippedItems, - num14 - }); - int num15 = inventoryManager->MoveItemSlot(current, num11, InventoryType.EquippedItems, num14, a6: true); - _206C_206A_200D_200F_200F_202A_200B_206A_200C_206E_200E_200C_206D_200E_202B_206A_206C_202E_206D_206B_200D_206F_200B_202C_206C_200E_202A_200E_202C_202E_206B_200D_200C_202B_206B_200F_200E_200D_202A_200F_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1852506223), new object[1] { num15 }); - return; - } - case 9: - num3 = -665926440; - break; - case 6: - { - ushort num10 = num11; - num = 1; - num2 = num10; - int num12 = num2 ^ num; - int num13 = num2 & num; - num11 = (ushort)(num12 + (num13 + num13)); - num3 = -665926436; - break; - } - case 8: - num3 = ((inventorySlot->ItemId != base.Task.ItemId) ? (-665926433) : (-665926437)); - break; - case 3: - inventorySlot = inventoryContainer->GetInventorySlot(num11); - num3 = ((inventorySlot == null) ? (-665926433) : (-665926447)); - break; - case 7: - current = enumerator.Current; - inventoryContainer = inventoryManager->GetInventoryContainer(current); - num3 = ((inventoryContainer == null) ? (-665926440) : (-665926435)); - break; - case 0: - goto end_IL_0167; - } - continue; - end_IL_0167: - break; - } - } - finally - { - num3 = ((enumerator == null) ? (-1329874453) : (-1329874454)); - while (true) - { - int num16 = num3; - num = -1329874453; - num2 = num16; - int num17 = num2 + num; - int num18 = num2 & num; - switch (num17 - (num18 + num18)) - { - case 2: - num3 = -1329874454; - break; - case 0: - goto end_IL_03c4; - case 1: - _200F_206D_202E_206B_200E_206D_202C_206A_206C_200B_206D_202A_200F_202B_200C_206E_206C_200B_206D_202B_206F_202B_202B_206D_202B_202A_202A_200E_200C_202A_200E_202E_200C_202C_206A_202C_206C_200D_202C_202E_202E((IDisposable)enumerator); - num3 = -1329874453; - break; - } - continue; - end_IL_03c4: - break; - } - } - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(22, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-639221766)); - defaultInterpolatedStringHandler.AppendFormatted(base.Task.ItemId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-978038014)); - throw new TaskException(defaultInterpolatedStringHandler.ToStringAndClear()); + continue; } + for (ushort num = 0; num < inventoryContainer->Size; num++) + { + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(num); + if (inventorySlot != null && inventorySlot->ItemId == base.Task.ItemId) + { + ushort num2 = _targetSlots.Where(delegate(ushort x) + { + InventoryItem* inventorySlot2 = inventoryManager->GetInventorySlot(InventoryType.EquippedItems, x); + return inventorySlot2 == null || inventorySlot2->ItemId == 0; + }).Concat(_targetSlots).First(); + logger.LogDebug("Equipping item from {SourceInventory}, {SourceSlot} to {TargetInventory}, {TargetSlot}", sourceInventoryType, num, InventoryType.EquippedItems, num2); + int num3 = inventoryManager->MoveItemSlot(sourceInventoryType, num, InventoryType.EquippedItems, num2, a6: true); + logger.LogDebug("MoveItemSlot result: {Result}", num3); + return; + } } } + throw new TaskException($"Could not equip item {base.Task.ItemId}."); } private static List<ushort>? GetEquipSlot(Item? item) { - int num = (item.HasValue ? 1849291533 : 1849291535); - uint rowId = default(uint); - List<ushort> result = default(List<ushort>); - while (true) + if (!item.HasValue) { - int num2 = num; - int num3 = 1849291534; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - num = ((rowId == 12) ? 1849291532 : 1849291523); - break; - case 3: - rowId = item.Value.EquipSlotCategory.RowId; - num = ((rowId < 1) ? 1849291526 : 1849291524); - break; - case 12: - { - int num5 = 1; - List<ushort> list4 = new List<ushort>(num5); - CollectionsMarshal.SetCount(list4, num5); - CollectionsMarshal.AsSpan(list4)[0] = 13; - result = list4; - num = 1849291527; - break; - } - case 1: - return null; - case 11: - { - int num5 = 1; - List<ushort> list2 = new List<ushort>(num5); - CollectionsMarshal.SetCount(list2, num5); - CollectionsMarshal.AsSpan(list2)[0] = 0; - result = list2; - num = 1849291527; - break; - } - case 13: - num = ((rowId == 13) ? 1849291525 : 1849291528); - break; - case 10: - num = ((rowId <= 11) ? 1849291530 : 1849291531); - break; - case 4: - { - int num5 = 1; - List<ushort> list3 = new List<ushort>(num5); - CollectionsMarshal.SetCount(list3, num5); - CollectionsMarshal.AsSpan(list3)[0] = (ushort)(item.Value.EquipSlotCategory.RowId - 1); - result = list3; - num = 1849291527; - break; - } - case 7: - num = 1849291535; - break; - case 6: - num = ((rowId == 17) ? 1849291522 : 1849291534); - break; - case 0: - num = 1849291526; - break; - case 8: - result = null; - num = 1849291527; - break; - case 9: - return result; - case 2: - { - int num5 = 2; - List<ushort> list = new List<ushort>(num5); - CollectionsMarshal.SetCount(list, num5); - Span<ushort> span = CollectionsMarshal.AsSpan(list); - span[0] = 11; - span[1] = 12; - result = list; - num = 1849291527; - break; - } - } + return null; + } + switch (item.Value.EquipSlotCategory.RowId) + { + case 1u: + case 2u: + case 3u: + case 4u: + case 5u: + case 6u: + case 7u: + case 8u: + case 9u: + case 10u: + case 11u: + { + int num = 1; + List<ushort> list4 = new List<ushort>(num); + CollectionsMarshal.SetCount(list4, num); + CollectionsMarshal.AsSpan(list4)[0] = (ushort)(item.Value.EquipSlotCategory.RowId - 1); + return list4; + } + case 12u: + { + int num = 2; + List<ushort> list3 = new List<ushort>(num); + CollectionsMarshal.SetCount(list3, num); + Span<ushort> span = CollectionsMarshal.AsSpan(list3); + span[0] = 11; + span[1] = 12; + return list3; + } + case 13u: + { + int num = 1; + List<ushort> list2 = new List<ushort>(num); + CollectionsMarshal.SetCount(list2, num); + CollectionsMarshal.AsSpan(list2)[0] = 0; + return list2; + } + case 17u: + { + int num = 1; + List<ushort> list = new List<ushort>(num); + CollectionsMarshal.SetCount(list, num); + CollectionsMarshal.AsSpan(list)[0] = 13; + return list; + } + default: + return null; } } public bool OnErrorToast(SeString message) { string b = dataManager.GetString(709u, (LogMessage x) => x.Text); - int num = ((!GameFunctions.GameStringEquals(_200C_206D_206F_202A_202B_206F_202C_206F_206E_206D_202B_200D_202E_202D_202C_202D_202E_200B_206A_202E_200D_200F_206D_206A_206D_206F_206A_206A_202D_202A_206D_206D_200B_206A_206D_202B_206C_206A_202D_202D_202E(message), b)) ? 1240228835 : 1240228832); - while (true) + if (GameFunctions.GameStringEquals(message.TextValue, b)) { - int num2 = num; - int num3 = 1240228834; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1240228832; - break; - case 2: - _attempts = 3; - num = 1240228835; - break; - case 1: - return false; - } + _attempts = 3; } - } - - bool IToastAware.OnErrorToast(SeString message) - { - //ILSpy generated this explicit interface implementation from .override directive in OnErrorToast - return this.OnErrorToast(message); + return false; } public override bool ShouldInterruptOnDamage() { return true; } - - static DoEquip() - { - InventoryType[] array = new InventoryType[16]; - _206C_202D_200F_202E_200F_202A_200E_206A_206C_206E_202B_200D_202E_200C_206C_200F_200C_202C_202E_200D_200D_202E_200B_206E_202B_206E_202E_206C_206B_206D_200F_200F_206A_206A_200B_200F_200C_202B_202E_202C_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - SourceInventoryTypes = new global::_003C_003Ez__ReadOnlyArray<InventoryType>(array); - } - - static ArgumentOutOfRangeException _202D_206F_200D_200B_200E_200F_200C_200F_206A_200C_206E_202E_206F_202B_202B_200D_206B_200F_200B_206E_202A_200C_202B_202B_200F_206A_200F_202C_206F_206F_202C_200D_206F_206D_202B_206D_202A_206E_200F_206D_202E(string P_0) - { - return new ArgumentOutOfRangeException(P_0); - } - - static InvalidOperationException _202C_202B_200C_200E_206C_200C_206A_206A_206E_202D_200E_206D_202B_200F_206A_202C_202C_200C_206D_206E_202B_206A_200F_200F_200F_206C_200C_206C_200F_206C_200C_202C_206E_206F_202C_200C_206D_200D_200B_202A_202E(string P_0) - { - return new InvalidOperationException(P_0); - } - - static long _206D_202E_200E_200D_202A_206E_200E_200E_200F_206C_206F_206F_200F_200C_200D_206D_202A_206A_206C_206F_200E_206F_200F_206C_206F_202D_200D_202E_202E_202B_202C_206A_202D_206E_200C_206A_200B_206E_206D_206A_202E() - { - return Environment.TickCount64; - } - - static bool _200B_206F_200E_202D_200D_206A_202C_200F_202E_206D_206A_206D_202A_200C_202C_206B_200D_206E_200E_202D_202B_200F_202C_206A_202B_202C_202A_200E_206A_200D_206C_206C_202E_202E_200C_202E_206F_202C_200B_206E_202E(uint P_0) - { - return InventoryHelper.IsItemEquipped(P_0); - } - - static void _206C_206A_200D_200F_200F_202A_200B_206A_200C_206E_200E_200C_206D_200E_202B_206A_206C_202E_206D_206B_200D_206F_200B_202C_206C_200E_202A_200E_202C_202E_206B_200D_200C_202B_206B_200F_200E_200D_202A_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _206B_200C_206A_206B_206A_202D_206C_200F_206B_206A_206D_200F_200C_202B_200C_206B_202B_200B_200B_202E_200E_200B_200C_200B_202C_200F_206B_206D_200E_206C_206B_200B_200F_202E_200D_206F_200E_202A_200E_200D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200F_206D_202E_206B_200E_206D_202C_206A_206C_200B_206D_202A_200F_202B_200C_206E_206C_200B_206D_202B_206F_202B_202B_206D_202B_202A_202A_200E_200C_202A_200E_202E_200C_202C_206A_202C_206C_200D_202C_202E_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static string _200C_206D_206F_202A_202B_206F_202C_206F_206E_206D_202B_200D_202E_202D_202C_202D_202E_200B_206A_202E_200D_200F_206D_206A_206D_206F_206A_206A_202D_202A_206D_206D_200B_206A_206D_202B_206C_206A_202D_202D_202E(SeString P_0) - { - return P_0.TextValue; - } - - static void _206C_202D_200F_202E_200F_202A_200E_206A_206C_206E_202B_200D_202E_200C_206C_200F_200C_202C_202E_200D_200D_202E_200B_206E_202B_206E_202E_206C_206B_206D_200F_200F_206A_206A_200B_200F_200C_202B_202E_202C_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/EquipRecommended.cs b/Questionable/Questionable.Controller.Steps.Interactions/EquipRecommended.cs index 3ccd781..e923791 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/EquipRecommended.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/EquipRecommended.cs @@ -1,8 +1,6 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Game.ClientState.Objects.Types; @@ -13,7 +11,6 @@ using FFXIVClientStructs.Interop; using LLib.GameData; using LLib.Gear; using LLib.Inventory; -using Lumina.Excel; using Lumina.Excel.Sheets; using Questionable.Model; using Questionable.Model.Questing; @@ -26,32 +23,11 @@ internal static class EquipRecommended { public override ITask? CreateTask(Questionable.Model.Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_200B_206C_206A_206C_202E_206C_200F_206E_202C_206B_200F_206C_202B_202D_200F_202D_206A_200B_200C_202D_206B_206D_206B_206A_202A_202D_206C_202B_202A_202B_206E_206B_202A_206F_200C_206B_206A_202A_206C_200C_202E(step) == EInteractionType.EquipRecommended) ? 2145116314 : 2145116313); - while (true) + if (step.InteractionType != EInteractionType.EquipRecommended) { - int num2 = num; - int num3 = 2145116312; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004a; - case 2: - return new EquipTask(); - case 1: - return null; - } - continue; - IL_004a: - num = 2145116313; + return null; } - } - - static EInteractionType _200B_206C_206A_206C_202E_206C_200F_206E_202C_206B_200F_206C_202B_202D_200F_202D_206A_200B_200C_202D_206B_206D_206B_206A_202A_202D_206C_202B_202A_202B_206E_206B_202A_206F_200C_206B_206A_202A_206C_200C_202E(QuestStep P_0) - { - return P_0.InteractionType; + return new EquipTask(); } } @@ -59,173 +35,41 @@ internal static class EquipRecommended { public override ITask? CreateTask(Questionable.Model.Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_206C_202B_200D_200E_202E_200C_200B_202A_206D_202E_200B_202E_200C_206F_200B_202B_200D_200F_206E_200C_200F_206C_200D_206E_206F_206A_206C_202E_206B_200C_202B_200D_206E_206A_202A_206C_206C_202B_200F_200F_202E(step) == EInteractionType.Duty) ? 590292274 : 590292275); - while (true) + if (step.InteractionType != EInteractionType.Duty && step.InteractionType != EInteractionType.SinglePlayerDuty && step.InteractionType != EInteractionType.Combat) { - int num2 = num; - int num3 = 590292273; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - num = ((_206C_202B_200D_200E_202E_200C_200B_202A_206D_202E_200B_202E_200C_206F_200B_202B_200D_200F_206E_200C_200F_206C_200D_206E_206F_206A_206C_202E_206B_200C_202B_200D_206E_206A_202A_206C_206C_202B_200F_200F_202E(step) == EInteractionType.Combat) ? 590292274 : 590292273); - break; - case 2: - num = ((_206C_202B_200D_200E_202E_200C_200B_202A_206D_202E_200B_202E_200C_206F_200B_202B_200D_200F_206E_200C_200F_206C_200D_206E_206F_206A_206C_202E_206B_200C_202B_200D_206E_206A_202A_206C_206C_202B_200F_200F_202E(step) == EInteractionType.SinglePlayerDuty) ? 590292274 : 590292272); - break; - case 3: - return new EquipTask(); - case 0: - return null; - case 4: - num = 590292275; - break; - } + return null; } - } - - static EInteractionType _206C_202B_200D_200E_202E_200C_200B_202A_206D_202E_200B_202E_200C_206F_200B_202B_200D_200F_206E_200C_200F_206C_200D_206E_206F_206A_206C_202E_206B_200C_202B_200D_206E_206A_202A_206C_206C_202B_200F_200F_202E(QuestStep P_0) - { - return P_0.InteractionType; + return new EquipTask(); } } internal sealed class EquipTask : ITask { - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-223560380); + return "EquipRecommended"; } } internal sealed class DoEquipRecommended(IObjectTable objectTable, IChatGui chatGui, ICondition condition, IDataManager dataManager, Configuration configuration, BestItemFinder bestItemFinder) : TaskExecutor<EquipTask>() { - private readonly record struct PendingMove(InventoryType SourceContainer, int SourceSlot, uint SourceItemId, InventoryType DestinationContainer, int DestinationSlot) - { - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202D_202D_206E_200E_200E_200F_202C_200D_206B_206B_200C_202E_206C_202E_200B_200F_206B_206A_206B_202C_202E_202A_200C_206E_200C_200E_206F_202B_202C_200B_206E_200F_206E_202D_200D_200B_200D_200E_206E_206F_202E(); - _200F_202C_206F_202D_202B_206B_202E_206D_206E_206A_200C_202E_202E_206E_202B_206E_206C_200C_202A_206E_202C_202A_200D_202D_206F_202B_200D_202D_202C_200C_206D_202A_202C_200E_206B_202D_206E_200D_206B_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-766310819)); - _200F_202C_206F_202D_202B_206B_202E_206D_206E_206A_200C_202E_202E_206E_202B_206E_206C_200C_202A_206E_202C_202A_200D_202D_206F_202B_200D_202D_202C_200C_206D_202A_202C_200E_206B_202D_206E_200D_206B_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(556540328)); - int num = ((!PrintMembers(stringBuilder)) ? (-916392380) : (-916392379)); - while (true) - { - int num2 = num; - int num3 = -916392380; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - _202D_200F_206A_206E_200F_200E_202A_202E_206E_206A_202C_202B_206A_202D_200C_202E_206A_206D_206E_200E_202C_206D_206F_206C_202E_202A_206C_206B_200C_202D_202A_202E_206C_200E_202C_200D_206C_200B_206F_206B_202E(stringBuilder, '}'); - return _202C_202A_200D_202B_206B_202A_202A_200E_200E_202D_200D_202B_200B_202E_206D_202C_200E_202A_206B_200C_202E_200B_200D_202D_206C_206A_206A_200D_202E_200E_200F_200F_202C_202B_200D_200C_200C_206D_200B_202C_202E((object)stringBuilder); - case 1: - _202D_200F_206A_206E_200F_200E_202A_202E_206E_206A_202C_202B_206A_202D_200C_202E_206A_206D_206E_200E_202C_206D_206F_206C_202E_202A_206C_206B_200C_202D_202A_202E_206C_200E_202C_200D_206C_200B_206F_206B_202E(stringBuilder, ' '); - num = -916392380; - break; - case 2: - num = -916392379; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200F_202C_206F_202D_202B_206B_202E_206D_206E_206A_200C_202E_202E_206E_202B_206E_206C_200C_202A_206E_202C_202A_200D_202D_206F_202B_200D_202D_202C_200C_206D_202A_202C_200E_206B_202D_206E_200D_206B_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(402998006)); - _200F_202C_206F_202D_202B_206B_202E_206D_206E_206A_200C_202E_202E_206E_202B_206E_206C_200C_202A_206E_202C_202A_200D_202D_206F_202B_200D_202D_202C_200C_206D_202A_202C_200E_206B_202D_206E_200D_206B_202E(builder, SourceContainer.ToString()); - _200F_202C_206F_202D_202B_206B_202E_206D_206E_206A_200C_202E_202E_206E_202B_206E_206C_200C_202A_206E_202C_202A_200D_202D_206F_202B_200D_202D_202C_200C_206D_202A_202C_200E_206B_202D_206E_200D_206B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-147608127)); - _200F_202C_206F_202D_202B_206B_202E_206D_206E_206A_200C_202E_202E_206E_202B_206E_206C_200C_202A_206E_202C_202A_200D_202D_206F_202B_200D_202D_202C_200C_206D_202A_202C_200E_206B_202D_206E_200D_206B_202E(builder, SourceSlot.ToString()); - _200F_202C_206F_202D_202B_206B_202E_206D_206E_206A_200C_202E_202E_206E_202B_206E_206C_200C_202A_206E_202C_202A_200D_202D_206F_202B_200D_202D_202C_200C_206D_202A_202C_200E_206B_202D_206E_200D_206B_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(45308124)); - _200F_202C_206F_202D_202B_206B_202E_206D_206E_206A_200C_202E_202E_206E_202B_206E_206C_200C_202A_206E_202C_202A_200D_202D_206F_202B_200D_202D_202C_200C_206D_202A_202C_200E_206B_202D_206E_200D_206B_202E(builder, SourceItemId.ToString()); - _200F_202C_206F_202D_202B_206B_202E_206D_206E_206A_200C_202E_202E_206E_202B_206E_206C_200C_202A_206E_202C_202A_200D_202D_206F_202B_200D_202D_202C_200C_206D_202A_202C_200E_206B_202D_206E_200D_206B_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(223423418)); - _200F_202C_206F_202D_202B_206B_202E_206D_206E_206A_200C_202E_202E_206E_202B_206E_206C_200C_202A_206E_202C_202A_200D_202D_206F_202B_200D_202D_202C_200C_206D_202A_202C_200E_206B_202D_206E_200D_206B_202E(builder, DestinationContainer.ToString()); - _200F_202C_206F_202D_202B_206B_202E_206D_206E_206A_200C_202E_202E_206E_202B_206E_206C_200C_202A_206E_202C_202A_200D_202D_206F_202B_200D_202D_202C_200C_206D_202A_202C_200E_206B_202D_206E_200D_206B_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-175990381)); - _200F_202C_206F_202D_202B_206B_202E_206D_206E_206A_200C_202E_202E_206E_202B_206E_206C_200C_202A_206E_202C_202A_200D_202D_206F_202B_200D_202D_202C_200C_206D_202A_202C_200E_206B_202D_206E_200D_206B_202E(builder, DestinationSlot.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(PendingMove other) - { - int num = ((!EqualityComparer<InventoryType>.Default.Equals(SourceContainer, other.SourceContainer)) ? (-560770928) : (-560770925)); - while (true) - { - int num2 = num; - int num3 = -560770928; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = -560770925; - break; - case 2: - num = ((!EqualityComparer<InventoryType>.Default.Equals(DestinationContainer, other.DestinationContainer)) ? (-560770928) : (-560770923)); - break; - case 0: - return false; - case 1: - num = ((!EqualityComparer<uint>.Default.Equals(SourceItemId, other.SourceItemId)) ? (-560770928) : (-560770926)); - break; - case 3: - num = ((!EqualityComparer<int>.Default.Equals(SourceSlot, other.SourceSlot)) ? (-560770928) : (-560770927)); - break; - case 5: - return EqualityComparer<int>.Default.Equals(DestinationSlot, other.DestinationSlot); - } - } - } - - bool IEquatable<PendingMove>.Equals(PendingMove other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _202D_202D_206E_200E_200E_200F_202C_200D_206B_206B_200C_202E_206C_202E_200B_200F_206B_206A_206B_202C_202E_202A_200C_206E_200C_200E_206F_202B_202C_200B_206E_200F_206E_202D_200D_200B_200D_200E_206E_206F_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200F_202C_206F_202D_202B_206B_202E_206D_206E_206A_200C_202E_202E_206E_202B_206E_206C_200C_202A_206E_202C_202A_200D_202D_206F_202B_200D_202D_202C_200C_206D_202A_202C_200E_206B_202D_206E_200D_206B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202D_200F_206A_206E_200F_200E_202A_202E_206E_206A_202C_202B_206A_202D_200C_202E_206A_206D_206E_200E_202C_206D_206F_206C_202E_202A_206C_206B_200C_202D_202A_202E_206C_200E_202C_200D_206C_200B_206F_206B_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202C_202A_200D_202B_206B_202A_202A_200E_200E_202D_200D_202B_200B_202E_206D_202C_200E_202A_206B_200C_202E_200B_200D_202D_206C_206A_206A_200D_202E_200E_200F_200F_202C_202B_200D_200C_200C_206D_200B_202C_202E(object P_0) - { - return P_0.ToString(); - } - } + private readonly record struct PendingMove(InventoryType SourceContainer, int SourceSlot, uint SourceItemId, InventoryType DestinationContainer, int DestinationSlot); private static readonly (string Name, uint[] Categories)[] SlotMap = new(string, uint[])[13] { - (global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1721146867), new uint[2] { 1u, 13u }), - (global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(105879929), new uint[1] { 2u }), - (global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1559165310), new uint[1] { 3u }), - (global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1871824440), new uint[1] { 4u }), - (global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(806048350), new uint[1] { 5u }), - (global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1506216771), Array.Empty<uint>()), - (global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1490430716), new uint[1] { 7u }), - (global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-136195547), new uint[1] { 8u }), - (global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1065647700), new uint[1] { 9u }), - (global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1628747569), new uint[1] { 10u }), - (global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-952953659), new uint[1] { 11u }), - (global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(639236081), new uint[1] { 12u }), - (global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1934160350), new uint[1] { 12u }) + ("MainHand", new uint[2] { 1u, 13u }), + ("OffHand", new uint[1] { 2u }), + ("Head", new uint[1] { 3u }), + ("Body", new uint[1] { 4u }), + ("Hands", new uint[1] { 5u }), + ("Belt", Array.Empty<uint>()), + ("Legs", new uint[1] { 7u }), + ("Feet", new uint[1] { 8u }), + ("Ears", new uint[1] { 9u }), + ("Neck", new uint[1] { 10u }), + ("Wrists", new uint[1] { 11u }), + ("Ring1", new uint[1] { 12u }), + ("Ring2", new uint[1] { 12u }) }; private const long EquipApplyTimeoutMs = 5000L; @@ -254,487 +98,222 @@ internal static class EquipRecommended protected unsafe override bool Start() { - int num = ((configuration.General.EquipMode != Configuration.EEquipMode.Disabled) ? 244763499 : 244763502); - IPlayerCharacter playerCharacter = default(IPlayerCharacter); - while (true) + if (configuration.General.EquipMode == Configuration.EEquipMode.Disabled) { - int num2 = num; - int num3 = 244763503; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _useSmart = false; - RecommendEquipModule.Instance()->SetupForClassJob((byte)_200F_202D_202B_200C_200F_206F_206B_200E_206C_200E_206C_206A_202B_200C_206A_206D_200E_200C_202C_206F_200D_200C_200D_206A_202C_200F_206A_202C_200B_202E_200D_206B_206F_202B_202A_206B_202A_200F_202B_206E_202E((ICharacter)playerCharacter).RowId); - return true; - case 1: - return false; - case 4: - num = ((!_206D_206D_206B_200F_200F_202D_206F_200C_206E_200E_200B_202A_206F_206D_206D_202A_200F_206C_200C_200C_200B_202A_200C_206B_202C_200B_206F_200D_200E_200B_206C_206C_206E_200B_200D_202D_202C_200C_206D_202A_202E(condition, ConditionFlag.InCombat)) ? 244763498 : 244763496); - break; - case 2: - return false; - case 9: - _useSmart = configuration.General.EquipMode == Configuration.EEquipMode.Smart; - num = ((!_useSmart) ? 244763503 : 244763495); - break; - case 6: - return true; - case 3: - num = 244763502; - break; - case 5: - playerCharacter = _200D_206A_206B_200E_202A_206A_206E_202D_200C_202E_200F_202B_202D_206F_200F_200E_200F_202C_206E_206E_202A_206F_206E_200D_200C_202E_206B_200E_206C_202B_202C_206A_202E_202A_206B_200D_206E_202A_202C_202E(objectTable); - num = ((playerCharacter != null) ? 244763494 : 244763501); - break; - case 8: - num = ((!TrySmartStart(playerCharacter)) ? 244763503 : 244763497); - break; - case 7: - return false; - } + return false; } + if (condition[ConditionFlag.InCombat]) + { + return false; + } + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + if (localPlayer == null) + { + return false; + } + _useSmart = configuration.General.EquipMode == Configuration.EEquipMode.Smart; + if (_useSmart && TrySmartStart(localPlayer)) + { + return true; + } + _useSmart = false; + RecommendEquipModule.Instance()->SetupForClassJob((byte)localPlayer.ClassJob.RowId); + return true; } public override ETaskResult Update() { - int num = ((!_useSmart) ? 210203164 : 210203167); - while (true) + if (_useSmart) { - int num2 = num; - int num3 = 210203166; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0048; - case 1: - return SmartUpdate(); - case 2: - return GameUpdate(); - } - continue; - IL_0048: - num = 210203167; + return SmartUpdate(); } + return GameUpdate(); } private unsafe bool TrySmartStart(ICharacter localPlayer) { - uint rowId = _200F_202D_202B_200C_200F_206F_206B_200E_206C_200E_206C_206A_202B_200C_206A_206D_200E_200C_202C_206F_200D_200C_200D_206A_202C_200F_206A_202C_200B_202E_200D_206B_206F_202B_202A_206B_202A_200F_202B_206E_202E(localPlayer).RowId; - int num = (_202D_206A_200D_202E_202D_206B_202E_200D_202E_206D_202A_202B_200B_206D_206B_206E_206C_202B_206A_206C_202A_206D_202A_202C_200E_200B_200F_202A_206A_200C_206E_202C_202B_200B_200F_206D_200C_206B_202A_200C_202E(_206B_206D_202E_200C_202C_202A_200F_206F_206B_200D_202A_206E_206D_206A_206C_202D_200F_200C_202C_206E_202E_200B_200F_202A_200F_202D_202E_200E_200D_202D_206C_202E_206E_206F_202D_206B_202D_202A_200F_200D_202E(typeof(EClassJob).TypeHandle), (object)rowId) ? 85530533 : 85530531); - int currentGearsetIndex = default(int); - RaptureGearsetModule* ptr = default(RaptureGearsetModule*); - while (true) + uint rowId = localPlayer.ClassJob.RowId; + if (!Enum.IsDefined(typeof(EClassJob), rowId)) { - int num2 = num; - int num3 = 85530532; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - currentGearsetIndex = ptr->CurrentGearsetIndex; - num = ((currentGearsetIndex < 0) ? 85530529 : 85530541); - break; - case 2: - return false; - case 5: - return false; - case 9: - num = (ptr->IsValidGearset(currentGearsetIndex) ? 85530540 : 85530529); - break; - case 1: - ptr = RaptureGearsetModule.Instance(); - num = ((ptr != null) ? 85530530 : 85530534); - break; - case 8: - { - EClassJob eClassJob = (EClassJob)rowId; - StatPriority priority = _202B_200D_200C_206E_206D_206D_206D_202C_200F_206D_202D_202D_206D_200B_206A_202C_200C_200C_206F_202D_200C_200D_202D_206D_206B_200E_202B_206B_202B_202D_206E_202A_206F_206D_206B_200D_202C_200F_202D_206B_202E(eClassJob); - byte playerLevel = GetPlayerLevel(eClassJob); - RaptureGearsetModule.GearsetEntry* entry = (RaptureGearsetModule.GearsetEntry*)Unsafe.AsPointer(in ptr->Entries[currentGearsetIndex]); - num = (TryComputeUpgradesAndMoves(eClassJob, priority, playerLevel, entry, out _smartUpgrades, out _smartMoves) ? 85530535 : 85530528); - break; - } - case 0: - num = 85530531; - break; - case 4: - _smartUpgrades = null; - _smartMoves = null; - return false; - case 7: - return false; - case 3: - _smartMoveCursor = 0; - _currentMoveStarted = false; - return true; - } + return false; } + RaptureGearsetModule* ptr = RaptureGearsetModule.Instance(); + if (ptr == null) + { + return false; + } + int currentGearsetIndex = ptr->CurrentGearsetIndex; + if (currentGearsetIndex < 0 || !ptr->IsValidGearset(currentGearsetIndex)) + { + return false; + } + EClassJob job = (EClassJob)rowId; + StatPriority priority = StatPriority.ForJob(job); + byte playerLevel = GetPlayerLevel(job); + RaptureGearsetModule.GearsetEntry* entry = (RaptureGearsetModule.GearsetEntry*)Unsafe.AsPointer(in ptr->Entries[currentGearsetIndex]); + if (!TryComputeUpgradesAndMoves(job, priority, playerLevel, entry, out _smartUpgrades, out _smartMoves)) + { + _smartUpgrades = null; + _smartMoves = null; + return false; + } + _smartMoveCursor = 0; + _currentMoveStarted = false; + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] private ETaskResult SmartUpdate() { List<PendingMove> smartMoves = _smartMoves; - int num = ((smartMoves == null) ? (-896452185) : (-896452172)); - PendingMove pendingMove = default(PendingMove); - List<(int, BestItemRef)> smartUpgrades2 = default(List<(int, BestItemRef)>); - List<(int, BestItemRef)> smartUpgrades = default(List<(int, BestItemRef)>); - while (true) + if (smartMoves != null && smartMoves.Count > 0 && _smartMoveCursor < smartMoves.Count) { - int num2 = num; - int num3 = -896452186; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + PendingMove pendingMove = smartMoves[_smartMoveCursor]; + if (!_currentMoveStarted) { - case 24: - num = ((_smartUpgrades == null) ? (-896452182) : (-896452184)); - break; - case 15: - pendingMove = smartMoves[_smartMoveCursor]; - num = (_currentMoveStarted ? (-896452175) : (-896452191)); - break; - case 27: - { - IChatGui chatGui2 = chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(35, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1393568432)); - defaultInterpolatedStringHandler2.AppendFormatted(smartUpgrades2.Count); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(583340872)); - _206B_206D_200F_206D_202E_200F_206C_206C_206E_206F_202E_206F_206C_206A_202A_202C_202D_200C_200D_206F_200C_206A_202E_200D_200C_200F_202E_200C_200D_206D_200F_202C_202D_206B_202C_206D_202D_202D_200B_206F_202E(chatGui2, defaultInterpolatedStringHandler2.ToStringAndClear(), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - ApplyUpgrades(smartUpgrades2); - _timeoutAt = _202E_206B_200E_200C_200B_200B_202E_206C_206F_206C_206F_200F_206E_202A_206F_206B_202E_202C_206D_206D_206D_202E_202D_202B_200C_206C_200F_206E_206E_206F_200F_206F_200C_206B_202C_206F_200D_206F_206D_200C_202E() + 5000; - num = -896452188; - break; - } - case 5: - { - IChatGui chatGui = chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(43, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(646015485)); - int smartMoveCursor = _smartMoveCursor; - num3 = 1; - num4 = smartMoveCursor; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - defaultInterpolatedStringHandler.AppendFormatted(num7 + (num8 + num8)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1680133376)); - defaultInterpolatedStringHandler.AppendFormatted(smartMoves.Count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1426065974)); - _206B_206D_200F_206D_202E_200F_206C_206C_206E_206F_202E_206F_206C_206A_202A_202C_202D_200C_200D_206F_200C_206A_202E_200D_200C_200F_202E_200C_200D_206D_200F_202C_202D_206B_202C_206D_202D_202D_200B_206F_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - return ETaskResult.TaskComplete; - } - case 4: + if (!TryStartMove(pendingMove)) + { + chatGui.Print($"Equip move {_smartMoveCursor + 1}/{smartMoves.Count} rejected; skipping equip step.", "Questionable", 576); + return ETaskResult.TaskComplete; + } + _currentMoveStarted = true; + _timeoutAt = Environment.TickCount64 + 2000; return ETaskResult.StillRunning; - case 0: - num = ((_smartMoveCursor >= smartMoves.Count) ? (-896452185) : (-896452183)); - break; - case 1: - num = ((!configuration.General.PreserveGearset) ? (-896452178) : (-896452179)); - break; - case 7: - num = (TryStartMove(pendingMove) ? (-896452169) : (-896452189)); - break; - case 2: - _smartApplied = true; - return ETaskResult.StillRunning; - case 26: - num = ((_202E_206B_200E_200C_200B_200B_202E_206C_206F_206C_206F_200F_206E_202A_206F_206B_202E_202C_206D_206D_206D_202E_202D_202B_200C_206C_200F_206E_206E_206F_200F_206F_200C_206B_202C_206F_200D_206F_206D_200C_202E() >= _timeoutAt) ? (-896452171) : (-896452190)); - break; - case 16: - smartUpgrades = _smartUpgrades; - num = ((smartUpgrades == null) ? (-896452164) : (-896452181)); - break; - case 22: - num = ((_202E_206B_200E_200C_200B_200B_202E_206C_206F_206C_206F_200F_206E_202A_206F_206B_202E_202C_206D_206D_206D_202E_202D_202B_200C_206C_200F_206E_206E_206F_200F_206F_200C_206B_202C_206F_200D_206F_206D_200C_202E() < _timeoutAt) ? (-896452173) : (-896452192)); - break; - case 12: + } + if (IsMoveApplied(pendingMove)) { - int smartMoveCursor3 = _smartMoveCursor; - num3 = 1; - num4 = smartMoveCursor3; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - _smartMoveCursor = num9 + (num10 + num10); + if (_smartUpgrades != null) + { + NotifyStagingMoveApplied(_smartUpgrades, pendingMove); + } + _smartMoveCursor++; _currentMoveStarted = false; return ETaskResult.StillRunning; } - case 11: - return DirectEquipPhase(); - case 9: - return ETaskResult.TaskComplete; - case 23: - num = ((!IsMoveApplied(pendingMove)) ? (-896452176) : (-896452162)); - break; - case 14: - NotifyStagingMoveApplied(_smartUpgrades, pendingMove); - num = -896452182; - break; - case 3: - return ETaskResult.TaskComplete; - case 21: - return ETaskResult.StillRunning; - case 19: - return ETaskResult.TaskComplete; - case 8: - num = (_smartApplied ? (-896452170) : (-896452161)); - break; - case 10: - num = -896452172; - break; - case 6: + if (Environment.TickCount64 >= _timeoutAt) { - IChatGui chatGui3 = chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(44, 2); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1622777026)); - int smartMoveCursor2 = _smartMoveCursor; - num3 = 1; - num4 = smartMoveCursor2; - defaultInterpolatedStringHandler3.AppendFormatted((num4 | num3) + (num4 & num3)); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1392036559)); - defaultInterpolatedStringHandler3.AppendFormatted(smartMoves.Count); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(907614092)); - _206B_206D_200F_206D_202E_200F_206C_206C_206E_206F_202E_206F_206C_206A_202A_202C_202D_200C_200D_206F_200C_206A_202E_200D_200C_200F_202E_200C_200D_206D_200F_202C_202D_206B_202C_206D_202D_202D_200B_206F_202E(chatGui3, defaultInterpolatedStringHandler3.ToStringAndClear(), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); + chatGui.Print($"Equip move {_smartMoveCursor + 1}/{smartMoves.Count} timed out; skipping equip step.", "Questionable", 576); return ETaskResult.TaskComplete; } - case 25: - smartUpgrades2 = _smartUpgrades; - num = ((smartUpgrades2 == null) ? (-896452187) : (-896452174)); - break; - case 18: - num = ((smartMoves.Count <= 0) ? (-896452185) : (-896452186)); - break; - case 20: - num = ((smartUpgrades2.Count <= 0) ? (-896452187) : (-896452163)); - break; - case 13: - num = ((!AreUpgradesApplied(smartUpgrades)) ? (-896452164) : (-896452177)); - break; - case 17: - _currentMoveStarted = true; - _timeoutAt = _202E_206B_200E_200C_200B_200B_202E_206C_206F_206C_206F_200F_206E_202A_206F_206B_202E_202C_206D_206D_206D_202E_202D_202B_200C_206C_200F_206E_206E_206F_200F_206F_200C_206B_202C_206F_200D_206F_206D_200C_202E() + 2000; + return ETaskResult.StillRunning; + } + if (configuration.General.PreserveGearset) + { + return DirectEquipPhase(); + } + if (!_smartApplied) + { + List<(int, BestItemRef)> smartUpgrades = _smartUpgrades; + if (smartUpgrades != null && smartUpgrades.Count > 0) + { + chatGui.Print($"Equipping {smartUpgrades.Count} gear upgrade(s) (smart).", "Questionable", 576); + ApplyUpgrades(smartUpgrades); + _timeoutAt = Environment.TickCount64 + 5000; + _smartApplied = true; return ETaskResult.StillRunning; } + return ETaskResult.TaskComplete; } + List<(int, BestItemRef)> smartUpgrades2 = _smartUpgrades; + if (smartUpgrades2 != null && AreUpgradesApplied(smartUpgrades2)) + { + return ETaskResult.TaskComplete; + } + if (Environment.TickCount64 < _timeoutAt) + { + return ETaskResult.StillRunning; + } + return ETaskResult.TaskComplete; } - [MethodImpl(MethodImplOptions.NoInlining)] private ETaskResult DirectEquipPhase() { List<(int, BestItemRef)> smartUpgrades = _smartUpgrades; - int num = ((smartUpgrades != null) ? (-760599422) : (-760599424)); - int item = default(int); - BestItemRef item2 = default(BestItemRef); - while (true) + if (smartUpgrades == null) { - int num2 = num; - int num3 = -760599423; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - { - int directEquipCursor3 = _directEquipCursor; - num3 = 1; - num4 = directEquipCursor3; - _directEquipCursor = (num4 | num3) + (num4 & num3); - _directEquipStarted = false; - return ETaskResult.StillRunning; - } - case 15: - { - (int, BestItemRef) tuple = smartUpgrades[_directEquipCursor]; - item = tuple.Item1; - item2 = tuple.Item2; - num = (_directEquipStarted ? (-760599412) : (-760599409)); - break; - } - case 16: - num = ((!AreUpgradesApplied(smartUpgrades)) ? (-760599423) : (-760599419)); - break; - case 1: - return ETaskResult.TaskComplete; - case 11: - num = -760599424; - break; - case 13: - num = ((!IsDirectEquipApplied(item2, item)) ? (-760599420) : (-760599421)); - break; - case 14: - num = (TryStartDirectEquip(item2, item) ? (-760599411) : (-760599417)); - break; - case 5: - num = ((_202E_206B_200E_200C_200B_200B_202E_206C_206F_206C_206F_200F_206E_202A_206F_206B_202E_202C_206D_206D_206D_202E_202D_202B_200C_206C_200F_206E_206E_206F_200F_206F_200C_206B_202C_206F_200D_206F_206D_200C_202E() < _timeoutAt) ? (-760599415) : (-760599416)); - break; - case 3: - num = ((_directEquipCursor < smartUpgrades.Count) ? (-760599410) : (-760599407)); - break; - case 6: - { - IChatGui chatGui = chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(42, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-129120304)); - defaultInterpolatedStringHandler.AppendFormatted(item); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(682498639)); - _206B_206D_200F_206D_202E_200F_206C_206C_206E_206F_202E_206F_206C_206A_202A_202C_202D_200C_200D_206F_200C_206A_202E_200D_200C_200F_202E_200C_200D_206D_200F_202C_202D_206B_202C_206D_202D_202D_200B_206F_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - int directEquipCursor2 = _directEquipCursor; - num3 = 1; - num4 = directEquipCursor2; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - _directEquipCursor = num7 + (num8 + num8); - return ETaskResult.StillRunning; - } - case 9: - { - int directEquipCursor = _directEquipCursor; - num3 = 1; - num4 = directEquipCursor; - _directEquipCursor = (num4 | num3) + (num4 & num3); - _directEquipStarted = false; - num = -760599415; - break; - } - case 12: - _directEquipStarted = true; - _timeoutAt = _202E_206B_200E_200C_200B_200B_202E_206C_206F_206C_206F_200F_206E_202A_206F_206B_202E_202C_206D_206D_206D_202E_202D_202B_200C_206C_200F_206E_206E_206F_200F_206F_200C_206B_202C_206F_200D_206F_206D_200C_202E() + 2000; - return ETaskResult.StillRunning; - case 10: - return ETaskResult.StillRunning; - case 8: - return ETaskResult.StillRunning; - case 0: - num = ((_202E_206B_200E_200C_200B_200B_202E_206C_206F_206C_206F_200F_206E_202A_206F_206B_202E_202C_206D_206D_206D_202E_202D_202B_200C_206C_200F_206E_206E_206F_200F_206F_200C_206B_202C_206F_200D_206F_206D_200C_202E() >= _timeoutAt) ? (-760599418) : (-760599413)); - break; - case 7: - return ETaskResult.TaskComplete; - case 4: - return ETaskResult.TaskComplete; - } + return ETaskResult.TaskComplete; } + if (_directEquipCursor >= smartUpgrades.Count) + { + if (AreUpgradesApplied(smartUpgrades)) + { + return ETaskResult.TaskComplete; + } + if (Environment.TickCount64 < _timeoutAt) + { + return ETaskResult.StillRunning; + } + return ETaskResult.TaskComplete; + } + var (num, item) = smartUpgrades[_directEquipCursor]; + if (!_directEquipStarted) + { + if (!TryStartDirectEquip(item, num)) + { + chatGui.Print($"Direct equip for slot {num} rejected, skipping.", "Questionable", 576); + _directEquipCursor++; + return ETaskResult.StillRunning; + } + _directEquipStarted = true; + _timeoutAt = Environment.TickCount64 + 2000; + return ETaskResult.StillRunning; + } + if (IsDirectEquipApplied(item, num)) + { + _directEquipCursor++; + _directEquipStarted = false; + return ETaskResult.StillRunning; + } + if (Environment.TickCount64 >= _timeoutAt) + { + _directEquipCursor++; + _directEquipStarted = false; + } + return ETaskResult.StillRunning; } private unsafe bool TryStartDirectEquip(BestItemRef item, int gearsetSlot) { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? (-2023162122) : (-2023162123)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -2023162121; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 1: - return ptr->MoveItemSlot(item.Container, (ushort)item.Slot, InventoryType.EquippedItems, (ushort)gearsetSlot) == 0; - case 2: - return false; - } - continue; - IL_0049: - num = -2023162123; + return false; } + return ptr->MoveItemSlot(item.Container, (ushort)item.Slot, InventoryType.EquippedItems, (ushort)gearsetSlot) == 0; } private unsafe bool IsDirectEquipApplied(BestItemRef item, int gearsetSlot) { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? 2075722394 : 2075722398); - InventoryItem* inventorySlot = default(InventoryItem*); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 2075722399; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - return false; - case 3: - inventorySlot = inventoryContainer->GetInventorySlot(gearsetSlot); - num = ((inventorySlot != null) ? 2075722393 : 2075722397); - break; - case 0: - num = 2075722398; - break; - case 5: - inventoryContainer = ptr->GetInventoryContainer(InventoryType.EquippedItems); - num = ((inventoryContainer != null) ? 2075722396 : 2075722395); - break; - case 6: - return ItemHandle.FromInventorySlot(inventorySlot).Id == ((ItemHandle)item.ItemId).Id; - case 1: - return false; - case 2: - return false; - } + return false; } + InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(InventoryType.EquippedItems); + if (inventoryContainer == null) + { + return false; + } + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(gearsetSlot); + if (inventorySlot == null) + { + return false; + } + return ItemHandle.FromInventorySlot(inventorySlot).Id == ((ItemHandle)item.ItemId).Id; } private static void NotifyStagingMoveApplied(List<(int Slot, BestItemRef Item)> upgrades, PendingMove appliedMove) { - int num = 0; - int num2 = 1319614186; - int item = default(int); - BestItemRef item2 = default(BestItemRef); - while (true) + for (int i = 0; i < upgrades.Count; i++) { - int num3 = num2; - int num4 = 1319614184; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + var (item, bestItemRef) = upgrades[i]; + if (bestItemRef.Container == appliedMove.SourceContainer && bestItemRef.Slot == appliedMove.SourceSlot) { - case 2: - num2 = ((num < upgrades.Count) ? 1319614187 : 1319614188); - break; - case 4: - return; - case 3: - { - (int Slot, BestItemRef Item) tuple = upgrades[num]; - item = tuple.Slot; - item2 = tuple.Item; - num2 = ((item2.Container != appliedMove.SourceContainer) ? 1319614185 : 1319614189); - break; - } - case 1: - { - int num6 = num; - num4 = 1; - num5 = num6; - int num7 = num5 ^ num4; - int num8 = num5 & num4; - num = num7 + (num8 + num8); - num2 = 1319614186; - break; - } - case 5: - num2 = ((item2.Slot != appliedMove.SourceSlot) ? 1319614185 : 1319614190); - break; - case 0: - num2 = 1319614186; - break; - case 6: - upgrades[num] = (item, item2 with + upgrades[i] = (item, bestItemRef with { Container = appliedMove.DestinationContainer, Slot = appliedMove.DestinationSlot }); - return; + break; } } } @@ -742,213 +321,86 @@ internal static class EquipRecommended private unsafe bool TryStartMove(PendingMove move) { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? 1497756716 : 1497756719); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1497756718; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 2: - return ptr->MoveItemSlot(move.SourceContainer, (ushort)move.SourceSlot, move.DestinationContainer, (ushort)move.DestinationSlot) == 0; - case 1: - return false; - } - continue; - IL_004b: - num = 1497756719; + return false; } + return ptr->MoveItemSlot(move.SourceContainer, (ushort)move.SourceSlot, move.DestinationContainer, (ushort)move.DestinationSlot) == 0; } private unsafe bool IsMoveApplied(PendingMove move) { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? (-1215933300) : (-1215933298)); - InventoryItem* inventorySlot = default(InventoryItem*); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1215933302; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return ItemHandle.FromInventorySlot(inventorySlot).Id == ((ItemHandle)move.SourceItemId).Id; - case 4: - return false; - case 1: - inventorySlot = inventoryContainer->GetInventorySlot(move.DestinationSlot); - num = ((inventorySlot != null) ? (-1215933302) : (-1215933304)); - break; - case 6: - inventoryContainer = ptr->GetInventoryContainer(move.DestinationContainer); - num = ((inventoryContainer != null) ? (-1215933301) : (-1215933297)); - break; - case 3: - num = -1215933298; - break; - case 2: - return false; - case 5: - return false; - } + return false; } + InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(move.DestinationContainer); + if (inventoryContainer == null) + { + return false; + } + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(move.DestinationSlot); + if (inventorySlot == null) + { + return false; + } + return ItemHandle.FromInventorySlot(inventorySlot).Id == ((ItemHandle)move.SourceItemId).Id; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe ETaskResult GameUpdate() { RecommendEquipModule* ptr = RecommendEquipModule.Instance(); - int num = ((!ptr->IsUpdating) ? (-598409727) : (-598409713)); - while (true) + if (ptr->IsUpdating) { - int num2 = num; - int num3 = -598409719; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return ETaskResult.StillRunning; + } + if (!_checkedOrTriggeredEquipmentUpdate) + { + if (IsAllRecommendedGearEquipped()) { - case 9: - num = ((!IsAllRecommendedGearEquipped()) ? (-598409725) : (-598409718)); - break; - case 10: - _206B_206D_200F_206D_202E_200F_206C_206C_206E_206F_202E_206F_206C_206A_202A_202C_202D_200C_200D_206F_200C_206A_202E_200D_200C_200F_202E_200C_200D_206D_200F_202C_202D_206B_202C_206D_202D_202D_200B_206F_202E(chatGui, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1029748516), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - ptr->EquipRecommendedGear(); - _timeoutAt = _202E_206B_200E_200C_200B_200B_202E_206C_206F_206C_206F_200F_206E_202A_206F_206B_202E_202C_206D_206D_206D_202E_202D_202B_200C_206C_200F_206E_206E_206F_200F_206F_200C_206B_202C_206F_200D_206F_206D_200C_202E() + 5000; - _checkedOrTriggeredEquipmentUpdate = true; - return ETaskResult.StillRunning; - case 7: - num = ((!IsAllRecommendedGearEquipped()) ? (-598409717) : (-598409720)); - break; - case 8: - num = (_checkedOrTriggeredEquipmentUpdate ? (-598409714) : (-598409728)); - break; - case 3: - return ETaskResult.TaskComplete; - case 4: - return ETaskResult.StillRunning; - case 0: - num = -598409713; - break; - case 2: - num = ((_202E_206B_200E_200C_200B_200B_202E_206C_206F_206C_206F_200F_206E_202A_206F_206B_202E_202C_206D_206D_206D_202E_202D_202B_200C_206C_200F_206E_206E_206F_200F_206F_200C_206B_202C_206F_200D_206F_206D_200C_202E() >= _timeoutAt) ? (-598409716) : (-598409715)); - break; - case 6: - return ETaskResult.StillRunning; - case 5: - return ETaskResult.TaskComplete; - case 1: return ETaskResult.TaskComplete; } + chatGui.Print("Equipping recommended gear.", "Questionable", 576); + ptr->EquipRecommendedGear(); + _timeoutAt = Environment.TickCount64 + 5000; + _checkedOrTriggeredEquipmentUpdate = true; + return ETaskResult.StillRunning; } + if (IsAllRecommendedGearEquipped()) + { + return ETaskResult.TaskComplete; + } + if (Environment.TickCount64 < _timeoutAt) + { + return ETaskResult.StillRunning; + } + return ETaskResult.TaskComplete; } private unsafe bool AreUpgradesApplied(IReadOnlyList<(int Slot, BestItemRef Item)> upgrades) { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? 503913681 : 503913682); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - BestItemRef item2 = default(BestItemRef); - InventoryItem* inventorySlot = default(InventoryItem*); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 503913680; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return false; + } + InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(InventoryType.EquippedItems); + if (inventoryContainer == null) + { + return false; + } + foreach (var upgrade in upgrades) + { + int item = upgrade.Slot; + BestItemRef item2 = upgrade.Item; + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(item); + if (inventorySlot == null || ItemHandle.FromInventorySlot(inventorySlot).Id != ((ItemHandle)item2.ItemId).Id) { - case 3: return false; - case 2: - return false; - case 0: - num = 503913682; - break; - case 1: - inventoryContainer = ptr->GetInventoryContainer(InventoryType.EquippedItems); - num = ((inventoryContainer != null) ? 503913684 : 503913683); - break; - case 4: - { - IEnumerator<(int, BestItemRef)> enumerator = upgrades.GetEnumerator(); - try - { - num = 986688417; - while (true) - { - int num5 = num; - num3 = 986688417; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 5: - return false; - case 3: - { - (int, BestItemRef) current = enumerator.Current; - int item = current.Item1; - item2 = current.Item2; - inventorySlot = inventoryContainer->GetInventorySlot(item); - num = ((inventorySlot == null) ? 986688420 : 986688416); - break; - } - case 1: - num = ((ItemHandle.FromInventorySlot(inventorySlot).Id == ((ItemHandle)item2.ItemId).Id) ? 986688417 : 986688420); - break; - case 0: - num = (_202B_206B_206E_206E_206B_202A_206E_202E_202C_202D_206F_200C_202C_206D_200D_206D_200D_206B_200D_202E_202D_206C_206E_206B_202E_200D_200F_206B_206F_200C_206E_206F_200C_202B_206D_206B_202D_206E_206A_200E_202E((IEnumerator)enumerator) ? 986688418 : 986688419); - break; - case 4: - num = 986688417; - break; - case 2: - goto end_IL_00a9; - } - continue; - end_IL_00a9: - break; - } - } - finally - { - num = ((enumerator == null) ? 1395008850 : 1395008849); - while (true) - { - int num8 = num; - num3 = 1395008851; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - goto end_IL_01c9; - case 2: - _200F_206C_202B_206E_206D_200D_202A_200B_202C_202A_202A_206C_202B_206B_206A_200C_200E_202D_200F_200B_202C_206B_202A_206D_206C_200D_206C_206A_200B_200B_202A_200D_206E_200D_206C_200F_206F_202B_202D_202E_202E((IDisposable)enumerator); - num = 1395008850; - break; - case 0: - num = 1395008849; - break; - } - continue; - end_IL_01c9: - break; - } - } - return true; - } } } + return true; } private unsafe bool TryComputeUpgradesAndMoves(EClassJob job, StatPriority priority, byte playerLevel, RaptureGearsetModule.GearsetEntry* entry, out List<(int Slot, BestItemRef Item)> upgrades, out List<PendingMove> moves) @@ -956,587 +408,175 @@ internal static class EquipRecommended upgrades = new List<(int, BestItemRef)>(); moves = new List<PendingMove>(); BestItemRef? bestItemRef = null; - int num = (_200F_200E_200B_200E_202B_206F_200D_206F_202C_202D_206E_200B_206F_206F_202E_206D_206F_206E_200E_202D_206A_202E_206F_206C_206D_206B_206E_200F_206A_206A_202C_206A_202A_200E_200E_202B_200D_202E_202E_202D_202E(job) ? (-1918647865) : (-1918647852)); - bool flag = default(bool); - int num5 = default(int); - BestItemRef? bestItemRef2 = default(BestItemRef?); - InventoryType? inventoryType = default(InventoryType?); - int nextFreeSlot = default(int); - bool flag2 = default(bool); - Dictionary<InventoryType, int> cursors = default(Dictionary<InventoryType, int>); - uint[] item = default(uint[]); - BestItemRef? bestItemRef3 = default(BestItemRef?); - bool flag3 = default(bool); - while (true) + bool flag = job.IsCrafter() || job.IsGatherer(); + Dictionary<InventoryType, int> cursors = new Dictionary<InventoryType, int>(); + for (int i = 0; i < SlotMap.Length; i++) { - int num2 = num; - int num3 = -1918647849; - int num4 = num2; - int num7; - BestItemRef? obj; - int num8; - EItemRankingMode eItemRankingMode; - switch ((num4 | num3) - (num4 & num3)) + uint[] item = SlotMap[i].Categories; + if (item.Length == 0) { - case 24: - num = (bestItemRef.HasValue ? (-1918647854) : (-1918647871)); - break; - case 23: - num7 = 2; - goto IL_00ec; - case 21: - flag = true; - num = -1918647859; - break; - case 12: - num = ((num5 != 12) ? (-1918647871) : (-1918647857)); - break; - case 5: - obj = bestItemRef; - goto IL_015d; - case 16: - num8 = 1; - goto IL_0185; - case 1: - num = ((!IsBagContainer(bestItemRef2.Value.Container)) ? (-1918647847) : (-1918647853)); - break; - case 20: - num = -1918647852; - break; - case 2: - moves.Add(new PendingMove(bestItemRef2.Value.Container, bestItemRef2.Value.Slot, bestItemRef2.Value.ItemId, inventoryType.Value, nextFreeSlot)); - num = -1918647847; - break; - case 26: - flag2 = flag; - num = -1918647849; - break; - case 22: - obj = null; - goto IL_015d; - case 14: - upgrades.Add((num5, bestItemRef2.Value)); - num = -1918647858; - break; - case 25: - { - int num6 = num5; - num3 = 1; - num4 = num6; - num5 = (num4 | num3) + (num4 & num3); - num = -1918647848; - break; + continue; } - case 17: - return false; - case 19: - num = (((uint)num5 > 1u) ? (-1918647867) : (-1918647870)); - break; - case 10: - num = ((num5 != 11) ? (-1918647844) : (-1918647841)); - break; - case 13: - nextFreeSlot = GetNextFreeSlot(inventoryType.Value, cursors); - num = ((nextFreeSlot >= 0) ? (-1918647851) : (-1918647866)); - break; - case 7: - item = SlotMap[num5].Categories; - num = ((item.Length == 0) ? (-1918647858) : (-1918647845)); - break; - case 4: - inventoryType = ResolveArmoryContainer(item); - num = ((!inventoryType.HasValue) ? (-1918647858) : (-1918647846)); - break; - case 11: - num = ((((ItemHandle)entry->GetItem((RaptureGearsetModule.GearsetItemIndex)num5).ItemId).Id == ((ItemHandle)bestItemRef2.Value.ItemId).Id) ? (-1918647858) : (-1918647850)); - break; - case 9: - return true; - case 3: - num8 = (_200E_202B_202D_206A_202B_200F_202B_206E_202C_200B_200F_202E_200C_200D_200B_200D_200F_206B_202D_206A_202E_206F_202E_202A_206A_206F_202D_202B_200F_202E_202D_202C_206A_206C_206C_200F_202E_202A_206A_200F_202E(job) ? 1 : 0); - goto IL_0185; - case 6: - num7 = 1; - goto IL_00ec; - case 0: - num = (flag2 ? (-1918647872) : (-1918647855)); - break; - case 8: + BestItemRef? excludeContainerSlot = ((i == 12 && bestItemRef.HasValue) ? bestItemRef : ((BestItemRef?)null)); + bool flag2 = !flag; + if (flag2) + { + bool flag3 = (uint)i <= 1u; + flag2 = flag3; + } + EItemRankingMode rankingMode = ((!flag2) ? EItemRankingMode.ScoreFirst : EItemRankingMode.DamageFirst); + BestItemRef? bestItemRef2 = bestItemFinder.FindBest(job, item, priority, BestItemFinder.ArmoryEquippedAndBags, playerLevel, rankingMode, excludeContainerSlot); + if (!bestItemRef2.HasValue) + { + continue; + } + if (i == 11) + { bestItemRef = bestItemRef2; - num = -1918647844; - break; - case 15: - num = ((num5 < SlotMap.Length) ? (-1918647856) : (-1918647842)); - break; - case 18: - { - flag = false; - num = -1918647859; - break; - } - IL_00ec: - eItemRankingMode = (EItemRankingMode)num7; - bestItemRef2 = _200B_206C_206F_206A_206D_200D_206B_202C_200D_202C_206D_200F_202A_206F_200C_202D_202E_200F_202B_202E_200C_202B_202B_200C_200C_200E_200F_202E_202A_206D_206D_200D_200B_200B_200D_206C_206E_200F_200B_206F_202E(bestItemFinder, job, (IReadOnlyList<uint>)item, priority, BestItemFinder.ArmoryEquippedAndBags, playerLevel, eItemRankingMode, bestItemRef3); - num = ((!bestItemRef2.HasValue) ? (-1918647858) : (-1918647843)); - break; - IL_0185: - flag3 = (byte)num8 != 0; - cursors = new Dictionary<InventoryType, int>(); - num5 = 0; - num = -1918647848; - break; - IL_015d: - bestItemRef3 = obj; - flag2 = !flag3; - num = ((!flag2) ? (-1918647849) : (-1918647868)); - break; } + if (((ItemHandle)entry->GetItem((RaptureGearsetModule.GearsetItemIndex)i).ItemId).Id == ((ItemHandle)bestItemRef2.Value.ItemId).Id) + { + continue; + } + if (IsBagContainer(bestItemRef2.Value.Container)) + { + InventoryType? inventoryType = ResolveArmoryContainer(item); + if (!inventoryType.HasValue) + { + continue; + } + int nextFreeSlot = GetNextFreeSlot(inventoryType.Value, cursors); + if (nextFreeSlot < 0) + { + return false; + } + moves.Add(new PendingMove(bestItemRef2.Value.Container, bestItemRef2.Value.Slot, bestItemRef2.Value.ItemId, inventoryType.Value, nextFreeSlot)); + } + upgrades.Add((i, bestItemRef2.Value)); } + return true; } private static bool IsBagContainer(InventoryType type) { - int num = ((type > InventoryType.Inventory4) ? 361543209 : 361543210); - bool result = default(bool); - while (true) + if (type <= InventoryType.Inventory4) { - int num2 = num; - int num3 = 361543211; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return result; - case 1: - result = true; - num = 361543208; - break; - case 2: - result = false; - num = 361543208; - break; - case 0: - num = 361543210; - break; - } + return true; } + return false; } private static InventoryType? ResolveArmoryContainer(uint[] acceptedCategories) { - int num = 0; - int num2 = -74376453; - InventoryType? result = default(InventoryType?); - while (true) + for (int i = 0; i < acceptedCategories.Length; i++) { - int num3 = num2; - int num4 = -74376455; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + InventoryType? armoryContainer = ((EEquipSlotCategory)acceptedCategories[i]).GetArmoryContainer(); + if (armoryContainer.HasValue) { - case 2: - num2 = ((num < acceptedCategories.Length) ? (-74376456) : (-74376452)); - break; - case 1: - result = _206D_206A_206C_206B_202E_202A_202B_200C_206B_202B_206B_200D_200E_202D_200F_200B_200D_200D_200C_200E_206D_206A_202C_206F_200E_200F_202A_202D_200F_202A_206E_202D_200D_200F_206B_200F_200C_200D_200D_202C_202E((EEquipSlotCategory)acceptedCategories[num]); - num2 = ((!result.HasValue) ? (-74376455) : (-74376451)); - break; - case 4: - return result; - case 0: - { - int num6 = num; - num4 = 1; - num5 = num6; - num = (num5 | num4) + (num5 & num4); - num2 = -74376453; - break; - } - case 5: - return null; - case 3: - num2 = -74376453; - break; + return armoryContainer; } } + return null; } private unsafe static int GetNextFreeSlot(InventoryType container, Dictionary<InventoryType, int> cursors) { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? (-2120371661) : (-2120371663)); - int value = default(int); - int num8 = default(int); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - InventoryItem* inventorySlot = default(InventoryItem*); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -2120371664; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num10; - switch (num5 - (num6 + num6)) + return -1; + } + InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(container); + if (inventoryContainer == null) + { + return -1; + } + int value; + for (int i = (cursors.TryGetValue(container, out value) ? value : 0); i < inventoryContainer->Size; i++) + { + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(i); + if (inventorySlot != null && inventorySlot->ItemId == 0) { - case 11: - return -1; - case 8: - return -1; - case 10: - num = (cursors.TryGetValue(container, out value) ? (-2120371652) : (-2120371657)); - break; - case 12: - num10 = value; - goto IL_00a7; - case 1: - return -1; - case 2: - num = -2120371663; - break; - case 4: - num = ((num8 < inventoryContainer->Size) ? (-2120371664) : (-2120371656)); - break; - case 3: - inventoryContainer = ptr->GetInventoryContainer(container); - num = ((inventoryContainer != null) ? (-2120371654) : (-2120371653)); - break; - case 0: - inventorySlot = inventoryContainer->GetInventorySlot(num8); - num = ((inventorySlot == null) ? (-2120371658) : (-2120371659)); - break; - case 7: - num10 = 0; - goto IL_00a7; - case 9: - { - int num9 = num8; - num3 = 1; - num4 = num9; - cursors[container] = (num4 | num3) + (num4 & num3); - return num8; - } - case 6: - { - int num7 = num8; - num3 = 1; - num4 = num7; - num8 = (num4 | num3) + (num4 & num3); - num = -2120371660; - break; - } - case 5: - { - num = ((inventorySlot->ItemId != 0) ? (-2120371658) : (-2120371655)); - break; - } - IL_00a7: - num8 = num10; - num = -2120371660; - break; + cursors[container] = i + 1; + return i; } } + return -1; } private unsafe void ApplyUpgrades(IReadOnlyList<(int Slot, BestItemRef Item)> upgrades) { RaptureGearsetModule* ptr = RaptureGearsetModule.Instance(); - int num = ((ptr != null) ? 366018770 : 366018771); - int currentGearsetIndex = default(int); - RaptureGearsetModule.GearsetEntry* ptr4 = default(RaptureGearsetModule.GearsetEntry*); - InventoryManager* ptr2 = default(InventoryManager*); - int num8 = default(int); - RaptureGearsetModule.GearsetItem* ptr3 = default(RaptureGearsetModule.GearsetItem*); - InventoryItem* inventorySlot = default(InventoryItem*); - int item = default(int); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - BestItemRef item2 = default(BestItemRef); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 366018772; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return; + } + int currentGearsetIndex = ptr->CurrentGearsetIndex; + if (currentGearsetIndex < 0 || !ptr->IsValidGearset(currentGearsetIndex)) + { + return; + } + RaptureGearsetModule.GearsetEntry* ptr2 = (RaptureGearsetModule.GearsetEntry*)Unsafe.AsPointer(in ptr->Entries[currentGearsetIndex]); + InventoryManager* ptr3 = InventoryManager.Instance(); + if (ptr3 == null) + { + return; + } + foreach (var upgrade in upgrades) + { + int item = upgrade.Slot; + BestItemRef item2 = upgrade.Item; + InventoryContainer* inventoryContainer = ptr3->GetInventoryContainer(item2.Container); + if (inventoryContainer == null) { - case 2: - num = (ptr->IsValidGearset(currentGearsetIndex) ? 366018775 : 366018769); - break; - case 5: - return; - case 6: - currentGearsetIndex = ptr->CurrentGearsetIndex; - num = ((currentGearsetIndex < 0) ? 366018769 : 366018774); - break; - case 0: - num = 366018771; - break; - case 3: - ptr4 = (RaptureGearsetModule.GearsetEntry*)Unsafe.AsPointer(in ptr->Entries[currentGearsetIndex]); - ptr2 = InventoryManager.Instance(); - num = ((ptr2 != null) ? 366018773 : 366018768); - break; - case 4: - return; - case 7: - return; - case 1: - { - IEnumerator<(int, BestItemRef)> enumerator = upgrades.GetEnumerator(); - try - { - num = 1240171448; - while (true) - { - int num5 = num; - num3 = 1240171448; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 4: - num = 1240171448; - break; - case 6: - num = ((num8 < 5) ? 1240171450 : 1240171448); - break; - case 2: - { - ptr3->Materia[num8] = inventorySlot->Materia[num8]; - ptr3->MateriaGrades[num8] = inventorySlot->MateriaGrades[num8]; - int num9 = num8; - num3 = 1; - num4 = num9; - num8 = (num4 | num3) + (num4 & num3); - num = 1240171454; - break; - } - case 8: - num = ((inventorySlot->ItemId == 0) ? 1240171448 : 1240171453); - break; - case 5: - ptr3 = (RaptureGearsetModule.GearsetItem*)Unsafe.AsPointer(in ptr4->Items[item]); - ptr3->ItemId = inventorySlot->ItemId; - ptr3->GlamourId = inventorySlot->GlamourId; - ptr3->Stain0Id = inventorySlot->Stains[0]; - ptr3->Stain1Id = inventorySlot->Stains[1]; - num8 = 0; - num = 1240171454; - break; - case 7: - inventorySlot = inventoryContainer->GetInventorySlot(item2.Slot); - num = ((inventorySlot == null) ? 1240171448 : 1240171440); - break; - case 0: - num = (_202B_206B_206E_206E_206B_202A_206E_202E_202C_202D_206F_200C_202C_206D_200D_206D_200D_206B_200D_202E_202D_206C_206E_206B_202E_200D_200F_206B_206F_200C_206E_206F_200C_202B_206D_206B_202D_206E_206A_200E_202E((IEnumerator)enumerator) ? 1240171449 : 1240171451); - break; - case 1: - { - (int, BestItemRef) current = enumerator.Current; - item = current.Item1; - item2 = current.Item2; - inventoryContainer = ptr2->GetInventoryContainer(item2.Container); - num = ((inventoryContainer == null) ? 1240171448 : 1240171455); - break; - } - case 3: - goto end_IL_010f; - } - continue; - end_IL_010f: - break; - } - } - finally - { - num = ((enumerator == null) ? 1335984006 : 1335984007); - while (true) - { - int num10 = num; - num3 = 1335984006; - num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_0345; - case 1: - _200F_206C_202B_206E_206D_200D_202A_200B_202C_202A_202A_206C_202B_206B_206A_200C_200E_202D_200F_200B_202C_206B_202A_206D_206C_200D_206C_206A_200B_200B_202A_200D_206E_200D_206C_200F_206F_202B_202D_202E_202E((IDisposable)enumerator); - num = 1335984006; - break; - case 2: - num = 1335984007; - break; - } - continue; - end_IL_0345: - break; - } - } - ptr->EquipGearset(currentGearsetIndex, 0); - return; + continue; } + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(item2.Slot); + if (inventorySlot != null && inventorySlot->ItemId != 0) + { + RaptureGearsetModule.GearsetItem* ptr4 = (RaptureGearsetModule.GearsetItem*)Unsafe.AsPointer(in ptr2->Items[item]); + ptr4->ItemId = inventorySlot->ItemId; + ptr4->GlamourId = inventorySlot->GlamourId; + ptr4->Stain0Id = inventorySlot->Stains[0]; + ptr4->Stain1Id = inventorySlot->Stains[1]; + for (int i = 0; i < 5; i++) + { + ptr4->Materia[i] = inventorySlot->Materia[i]; + ptr4->MateriaGrades[i] = inventorySlot->MateriaGrades[i]; + } } } + ptr->EquipGearset(currentGearsetIndex, 0); } private byte GetPlayerLevel(EClassJob job) { - short num = _202C_206B_200E_206D_200B_206E_206F_206B_202A_206A_202A_200F_200F_200D_206F_206F_206A_206E_202B_206C_206F_200B_200D_200E_202B_200B_206A_202B_202E_206C_202A_206C_202E_200D_206D_206E_202A_200D_206B_206C_202E((int)dataManager.GetExcelSheet<ClassJob>().GetRow((uint)job).ExpArrayIndex); - int num2 = ((num > 0) ? (-1894370690) : (-1894370691)); - while (true) + short classJobLevel = PlayerStateHelper.GetClassJobLevel(dataManager.GetExcelSheet<ClassJob>().GetRow((uint)job).ExpArrayIndex); + if (classJobLevel <= 0) { - int num3 = num2; - int num4 = -1894370692; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - goto IL_0071; - case 2: - return (byte)num; - case 1: - return 0; - } - continue; - IL_0071: - num2 = -1894370691; + return 0; } + return (byte)classJobLevel; } private unsafe bool IsAllRecommendedGearEquipped() { Span<Pointer<InventoryItem>> recommendedItems = RecommendEquipModule.Instance()->RecommendedItems; - int num = 0; - int num2 = 603510745; - InventoryItem* value = default(InventoryItem*); - while (true) + for (int i = 0; i < recommendedItems.Length; i++) { - int num3 = num2; - int num4 = 603510749; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + Pointer<InventoryItem> pointer = recommendedItems[i]; + InventoryItem* value = pointer.Value; + if (value != null && value->ItemId != 0 && !InventoryHelper.IsItemEquipped(value->ItemId)) { - case 2: - { - int num6 = num; - num4 = 1; - num5 = num6; - int num7 = num5 ^ num4; - int num8 = num5 & num4; - num = num7 + (num8 + num8); - num2 = 603510745; - break; - } - case 1: - num2 = ((value->ItemId == 0) ? 603510751 : 603510750); - break; - case 5: return false; - case 3: - num2 = (_202A_202E_206B_206C_200D_202B_202A_206B_206D_202E_206E_202A_206A_200C_206C_206B_202C_206A_202E_206C_206B_206A_200D_206C_200B_202D_202E_206B_200B_200F_202C_202A_202A_206D_206B_200F_206A_206B_200E_200C_202E(value->ItemId) ? 603510751 : 603510744); - break; - case 6: - { - Pointer<InventoryItem> pointer = recommendedItems[num]; - value = pointer.Value; - num2 = ((value == null) ? 603510751 : 603510748); - break; - } - case 7: - num2 = 603510745; - break; - case 0: - return true; - case 4: - num2 = ((num < recommendedItems.Length) ? 603510747 : 603510749); - break; } } + return true; } public override bool ShouldInterruptOnDamage() { return true; } - - static bool _206D_206D_206B_200F_200F_202D_206F_200C_206E_200E_200B_202A_206F_206D_206D_202A_200F_206C_200C_200C_200B_202A_200C_206B_202C_200B_206F_200D_200E_200B_206C_206C_206E_200B_200D_202D_202C_200C_206D_202A_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static IPlayerCharacter _200D_206A_206B_200E_202A_206A_206E_202D_200C_202E_200F_202B_202D_206F_200F_200E_200F_202C_206E_206E_202A_206F_206E_200D_200C_202E_206B_200E_206C_202B_202C_206A_202E_202A_206B_200D_206E_202A_202C_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static RowRef<ClassJob> _200F_202D_202B_200C_200F_206F_206B_200E_206C_200E_206C_206A_202B_200C_206A_206D_200E_200C_202C_206F_200D_200C_200D_206A_202C_200F_206A_202C_200B_202E_200D_206B_206F_202B_202A_206B_202A_200F_202B_206E_202E(ICharacter P_0) - { - return P_0.ClassJob; - } - - static Type _206B_206D_202E_200C_202C_202A_200F_206F_206B_200D_202A_206E_206D_206A_206C_202D_200F_200C_202C_206E_202E_200B_200F_202A_200F_202D_202E_200E_200D_202D_206C_202E_206E_206F_202D_206B_202D_202A_200F_200D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _202D_206A_200D_202E_202D_206B_202E_200D_202E_206D_202A_202B_200B_206D_206B_206E_206C_202B_206A_206C_202A_206D_202A_202C_200E_200B_200F_202A_206A_200C_206E_202C_202B_200B_200F_206D_200C_206B_202A_200C_202E(Type P_0, object P_1) - { - return Enum.IsDefined(P_0, P_1); - } - - static StatPriority _202B_200D_200C_206E_206D_206D_206D_202C_200F_206D_202D_202D_206D_200B_206A_202C_200C_200C_206F_202D_200C_200D_202D_206D_206B_200E_202B_206B_202B_202D_206E_202A_206F_206D_206B_200D_202C_200F_202D_206B_202E(EClassJob P_0) - { - return StatPriority.ForJob(P_0); - } - - static void _206B_206D_200F_206D_202E_200F_206C_206C_206E_206F_202E_206F_206C_206A_202A_202C_202D_200C_200D_206F_200C_206A_202E_200D_200C_200F_202E_200C_200D_206D_200F_202C_202D_206B_202C_206D_202D_202D_200B_206F_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); - } - - static long _202E_206B_200E_200C_200B_200B_202E_206C_206F_206C_206F_200F_206E_202A_206F_206B_202E_202C_206D_206D_206D_202E_202D_202B_200C_206C_200F_206E_206E_206F_200F_206F_200C_206B_202C_206F_200D_206F_206D_200C_202E() - { - return Environment.TickCount64; - } - - static bool _202B_206B_206E_206E_206B_202A_206E_202E_202C_202D_206F_200C_202C_206D_200D_206D_200D_206B_200D_202E_202D_206C_206E_206B_202E_200D_200F_206B_206F_200C_206E_206F_200C_202B_206D_206B_202D_206E_206A_200E_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200F_206C_202B_206E_206D_200D_202A_200B_202C_202A_202A_206C_202B_206B_206A_200C_200E_202D_200F_200B_202C_206B_202A_206D_206C_200D_206C_206A_200B_200B_202A_200D_206E_200D_206C_200F_206F_202B_202D_202E_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool _200F_200E_200B_200E_202B_206F_200D_206F_202C_202D_206E_200B_206F_206F_202E_206D_206F_206E_200E_202D_206A_202E_206F_206C_206D_206B_206E_200F_206A_206A_202C_206A_202A_200E_200E_202B_200D_202E_202E_202D_202E(EClassJob P_0) - { - return P_0.IsCrafter(); - } - - static bool _200E_202B_202D_206A_202B_200F_202B_206E_202C_200B_200F_202E_200C_200D_200B_200D_200F_206B_202D_206A_202E_206F_202E_202A_206A_206F_202D_202B_200F_202E_202D_202C_206A_206C_206C_200F_202E_202A_206A_200F_202E(EClassJob P_0) - { - return P_0.IsGatherer(); - } - - static BestItemRef? _200B_206C_206F_206A_206D_200D_206B_202C_200D_202C_206D_200F_202A_206F_200C_202D_202E_200F_202B_202E_200C_202B_202B_200C_200C_200E_200F_202E_202A_206D_206D_200D_200B_200B_200D_206C_206E_200F_200B_206F_202E(BestItemFinder P_0, EClassJob P_1, IReadOnlyList<uint> P_2, StatPriority P_3, IReadOnlyList<InventoryType> P_4, byte P_5, EItemRankingMode P_6, BestItemRef? P_7) - { - return P_0.FindBest(P_1, P_2, P_3, P_4, P_5, P_6, P_7); - } - - static InventoryType? _206D_206A_206C_206B_202E_202A_202B_200C_206B_202B_206B_200D_200E_202D_200F_200B_200D_200D_200C_200E_206D_206A_202C_206F_200E_200F_202A_202D_200F_202A_206E_202D_200D_200F_206B_200F_200C_200D_200D_202C_202E(EEquipSlotCategory P_0) - { - return P_0.GetArmoryContainer(); - } - - static short _202C_206B_200E_206D_200B_206E_206F_206B_202A_206A_202A_200F_200F_200D_206F_206F_206A_206E_202B_206C_206F_200B_200D_200E_202B_200B_206A_202B_202E_206C_202A_206C_202E_200D_206D_206E_202A_200D_206B_206C_202E(int P_0) - { - return PlayerStateHelper.GetClassJobLevel(P_0); - } - - static bool _202A_202E_206B_206C_200D_202B_202A_206B_206D_202E_206E_202A_206A_200C_206C_206B_202C_206A_202E_206C_206B_206A_200D_206C_200B_202D_202E_206B_200B_200F_202C_202A_202A_206D_206B_200F_206A_206B_200E_200C_202E(uint P_0) - { - return InventoryHelper.IsItemEquipped(P_0); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/FateAction.cs b/Questionable/Questionable.Controller.Steps.Interactions/FateAction.cs index 4256cd2..ef70cf2 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/FateAction.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/FateAction.cs @@ -1,9 +1,6 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Objects.Types; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Common; @@ -17,352 +14,70 @@ internal static class FateAction { internal sealed class Factory : ITaskFactory { - [MethodImpl(MethodImplOptions.NoInlining)] public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_206D_206F_206B_202C_200F_202E_206F_202E_206B_200D_200F_206E_200D_202D_200F_206A_200D_202D_206B_206A_206B_202A_206D_202D_206C_206D_206C_200D_200C_202C_206F_202B_206F_206A_202C_200C_206A_206D_200F_206A_202E(step) == EInteractionType.FateAction) ? (-43811176) : (-43811175)); - while (true) + if (step.InteractionType != EInteractionType.FateAction) { - int num2 = num; - int num3 = -43811176; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = -43811175; - break; - case 0: - num = ((_202B_200F_206C_202D_206F_200F_206E_200D_202E_200E_200E_200C_206A_206F_202D_202C_202E_202D_206D_202C_206C_200B_206A_206E_200B_202A_206F_202B_202E_206F_206B_202C_200D_206A_200D_202D_200C_202D_206D_200F_202E(step).Count != 0) ? (-43811174) : (-43811173)); - break; - case 1: - return Array.Empty<ITask>(); - case 3: - throw _202B_206E_202A_206F_202B_202D_202D_202A_206A_206D_202C_202C_206F_202D_206A_200D_200C_202E_202C_200E_200C_206D_202A_200D_202A_206E_206D_206E_200D_202B_202C_202A_200D_202A_202E_202D_200B_206E_202C_202A_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1866861544)); - case 2: - return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] - { - new Mount.UnmountTask(), - new UseOnTargets(_202B_200F_206C_202D_206F_200F_206E_200D_202E_200E_200E_200C_206A_206F_202D_202C_202E_202D_206D_202C_206C_200B_206A_206E_200B_202A_206F_202B_202E_206F_206B_202C_200D_206A_200D_202D_200C_202D_206D_200F_202E(step)) - }); - } + return Array.Empty<ITask>(); } - } - - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); - } - - static EInteractionType _206D_206F_206B_202C_200F_202E_206F_202E_206B_200D_200F_206E_200D_202D_200F_206A_200D_202D_206B_206A_206B_202A_206D_202D_206C_206D_206C_200D_200C_202C_206F_202B_206F_206A_202C_200C_206A_206D_200F_206A_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static List<FateActionTarget> _202B_200F_206C_202D_206F_200F_206E_200D_202E_200E_200E_200C_206A_206F_202D_202C_202E_202D_206D_202C_206C_200B_206A_206E_200B_202A_206F_202B_202E_206F_206B_202C_200D_206A_200D_202D_200C_202D_206D_200F_202E(QuestStep P_0) - { - return P_0.FateActionTargets; - } - - static InvalidOperationException _202B_206E_202A_206F_202B_202D_202D_202A_206A_206D_202C_202C_206F_202D_206A_200D_200C_202E_202C_200E_200C_206D_202A_200D_202A_206E_206D_206E_200D_202B_202C_202A_200D_202A_202E_202D_200B_206E_202C_202A_202E(string P_0) - { - return new InvalidOperationException(P_0); + if (step.FateActionTargets.Count == 0) + { + throw new InvalidOperationException("FateAction step requires FateActionTargets"); + } + return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] + { + new Mount.UnmountTask(), + new UseOnTargets(step.FateActionTargets) + }); } } internal sealed record UseOnTargets(IList<FateActionTarget> Targets) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202C_200F_200D_206C_200F_206E_206E_202E_200B_206C_206F_206F_200E_202A_206B_206E_206F_202C_200E_206C_206F_202A_206B_200D_206A_206A_200E_200D_206A_206C_206A_206D_206B_200F_200B_200B_202D_206C_206E_200C_202E(typeof(UseOnTargets).TypeHandle); - } - } - public bool ShouldRedoOnInterrupt() { return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(20, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(85708604)); - defaultInterpolatedStringHandler.AppendFormatted(Targets.Count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1905985229)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200F_200D_200C_202B_206F_200B_202A_206D_202B_200F_206B_206C_206D_202A_200B_200D_206F_200D_202A_206A_200E_206A_200F_200D_206C_202D_206A_202B_200D_206B_200F_200B_202C_200E_202C_202A_200F_206E_202B_202E(); - _206C_202E_206B_206E_200D_206A_206C_206F_202A_202B_200F_202E_200E_206C_200E_200D_200F_200D_200D_202B_200C_200B_202A_206E_202B_200D_200F_202D_200F_202E_206A_200D_206B_206B_206E_202A_202A_206B_200D_200E_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1742983719)); - _202D_200B_206B_200F_202D_200B_206B_206B_200B_202D_200F_206B_202A_206E_200C_206A_206B_202B_206F_206C_200F_206A_202C_202D_206A_206A_202A_202A_202B_202E_200B_200B_202B_206B_206E_202A_202D_200D_202E_202E(builder, (object)Targets); - return true; - } - - [CompilerGenerated] - public bool Equals(UseOnTargets? other) - { - int num = (((object)this == other) ? 877897699 : 877897703); - while (true) - { - int num2 = num; - int num3 = 877897698; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return EqualityComparer<IList<FateActionTarget>>.Default.Equals(Targets, other.Targets); - case 5: - num = (((object)other == null) ? 877897696 : 877897702); - break; - case 0: - num = 877897703; - break; - case 4: - num = ((!_206A_206F_206E_200D_206E_202A_200F_206D_202A_200E_202A_200F_206F_202E_202E_202E_200E_200B_200B_200F_206E_202A_206F_206B_202C_202A_202B_200B_202B_206B_202B_200C_206F_202C_206E_206E_202E_202B_206A_200C_202E(EqualityContract, other.EqualityContract)) ? 877897696 : 877897697); - break; - case 2: - return false; - case 1: - return true; - } - } - } - - bool IEquatable<UseOnTargets>.Equals(UseOnTargets? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202C_200F_200D_206C_200F_206E_206E_202E_200B_206C_206F_206F_200E_202A_206B_206E_206F_202C_200E_206C_206F_202A_206B_200D_206A_206A_200E_200D_206A_206C_206A_206D_206B_200F_200B_200B_202D_206C_206E_200C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _200F_200D_200C_202B_206F_200B_202A_206D_202B_200F_206B_206C_206D_202A_200B_200D_206F_200D_202A_206A_200E_206A_200F_200D_206C_202D_206A_202B_200D_206B_200F_200B_202C_200E_202C_202A_200F_206E_202B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206C_202E_206B_206E_200D_206A_206C_206F_202A_202B_200F_202E_200E_206C_200E_200D_200F_200D_200D_202B_200C_200B_202A_206E_202B_200D_200F_202D_200F_202E_206A_200D_206B_206B_206E_202A_202A_206B_200D_200E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202D_200B_206B_200F_202D_200B_206B_206B_200B_202D_200F_206B_202A_206E_200C_206A_206B_202B_206F_206C_200F_206A_202C_202D_206A_206A_202A_202A_202B_202E_200B_200B_202B_206B_206E_202A_202D_200D_202E_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206A_206F_206E_200D_206E_202A_200F_206D_202A_200E_202A_200F_206F_202E_202E_202E_200E_200B_200B_200F_206E_202A_206F_206B_202C_202A_202B_200B_202B_206B_202B_200C_206F_202C_206E_206E_202E_202B_206A_200C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"FateAction({Targets.Count} targets)"; } } internal sealed class UseOnTargetsExecutor(GameFunctions gameFunctions, ILogger<UseOnTargetsExecutor> logger) : TaskExecutor<UseOnTargets>() { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<FateActionTarget, string> _003C_003E9__4_0; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal string _003CStart_003Eb__4_0(FateActionTarget t) - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(1, 2); - defaultInterpolatedStringHandler.AppendFormatted(_202A_200B_206A_202E_202A_202E_200D_200C_202E_206B_206D_206F_200B_200C_202C_200F_202B_200D_202B_206E_206B_200F_206E_200B_202C_202A_202E_202B_202D_206E_202E_200B_202A_200E_206E_202B_202B_202A_202A_202C_202E(t)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(824360664)); - defaultInterpolatedStringHandler.AppendFormatted(_206B_206A_200C_200E_202C_206F_206E_200B_206A_206B_206D_200F_200C_200E_206C_200B_206C_202D_200C_202D_200E_200B_200E_200D_206A_202E_206B_200B_202C_200F_206B_202C_206B_206E_200F_200E_200C_200B_206C_206E_202E(t)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - static uint _202A_200B_206A_202E_202A_202E_200D_200C_202E_206B_206D_206F_200B_200C_202C_200F_202B_200D_202B_206E_206B_200F_206E_200B_202C_202A_202E_202B_202D_206E_202E_200B_202A_200E_206E_202B_202B_202A_202A_202C_202E(FateActionTarget P_0) - { - return P_0.DataId; - } - - static EAction _206B_206A_200C_200E_202C_206F_206E_200B_206A_206B_206D_200F_200C_200E_206C_200B_206C_202D_200C_202D_200E_200B_200E_200D_206A_202E_206B_200B_202C_200F_206B_202C_206B_206E_200F_200E_200C_200B_206C_206E_202E(FateActionTarget P_0) - { - return P_0.Action; - } - } - private long _nextActionAt; - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - _206F_206A_202C_200C_206F_202D_206B_200E_200C_206A_202B_200F_202A_206D_202D_202B_202C_206B_200E_200D_202C_200D_200B_200D_206F_206B_202A_202E_206A_206E_206B_206D_202A_206E_206F_200D_206E_202B_202D_202A_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1134200128), new object[2] - { - base.Task.Targets.Count, - _206D_206D_202C_200B_206E_200F_202C_200F_200F_200E_206A_202D_206A_202B_206E_206D_202B_200E_206B_206D_202A_202C_206B_202D_206D_200D_200D_202C_206B_202E_202E_202D_206D_206D_200D_200C_200F_206C_202C_202C_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1467939024), base.Task.Targets.Select([MethodImpl(MethodImplOptions.NoInlining)] (FateActionTarget t) => - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(1, 2); - defaultInterpolatedStringHandler.AppendFormatted(_003C_003Ec._202A_200B_206A_202E_202A_202E_200D_200C_202E_206B_206D_206F_200B_200C_202C_200F_202B_200D_202B_206E_206B_200F_206E_200B_202C_202A_202E_202B_202D_206E_202E_200B_202A_200E_206E_202B_202B_202A_202A_202C_202E(t)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(824360664)); - defaultInterpolatedStringHandler.AppendFormatted(_003C_003Ec._206B_206A_200C_200E_202C_206F_206E_200B_206A_206B_206D_200F_200C_200E_206C_200B_206C_202D_200C_202D_200E_200B_200E_200D_206A_202E_206B_200B_202C_200F_206B_202C_206B_206E_200F_200E_200C_200B_206C_206E_202E(t)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - })) - }); + logger.LogDebug("Starting FateAction: {Count} targets [{Targets}]", base.Task.Targets.Count, string.Join(", ", base.Task.Targets.Select((FateActionTarget t) => $"{t.DataId}→{t.Action}"))); return true; } public override ETaskResult Update() { - int num = ((_202B_202B_206B_206C_202A_202B_202D_206C_200C_202B_202E_206D_202E_200D_206F_200E_206D_200C_202C_206A_200C_200F_202C_202B_206E_202B_206A_206B_200C_202A_206A_202A_206B_200E_200F_206D_200B_202B_202A_206F_202E() >= _nextActionAt) ? 106298228 : 106298231); - IGameObject gameObject = default(IGameObject); - FateActionTarget current = default(FateActionTarget); - while (true) + if (Environment.TickCount64 < _nextActionAt) { - int num2 = num; - int num3 = 106298229; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0054; - case 2: - return ETaskResult.StillRunning; - case 1: - { - IEnumerator<FateActionTarget> enumerator = base.Task.Targets.GetEnumerator(); - try - { - num = -1088857839; - while (true) - { - int num5 = num; - num3 = -1088857839; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = (_206A_202C_202C_206E_206D_202E_202E_206E_202E_206E_206F_206C_206E_202D_200B_206F_200D_202C_206E_206C_206C_200F_206F_200C_200F_200C_206D_206A_206E_200F_206C_200C_200F_206E_206B_206C_206D_200B_206E_200E_202E((IEnumerator)enumerator) ? (-1088857837) : (-1088857836)); - break; - case 1: - num = ((!_202C_200D_200D_200D_200D_206B_202E_200D_202B_206F_202C_200E_200F_206D_200F_202E_200C_200D_206D_202D_200C_202A_200F_202A_206C_200B_202A_206B_202B_202D_206C_200D_200C_206F_202D_200E_202C_200C_200F_202B_202E(gameObject)) ? (-1088857839) : (-1088857835)); - break; - case 4: - { - bool flag = gameFunctions.UseAction(gameObject, _202E_200F_206B_206E_206F_206C_202E_200E_202A_202E_202D_200C_202E_200E_202E_206F_202B_202E_202D_202D_202B_206A_206B_206B_202B_202B_206E_200C_206A_206C_206A_202E_206F_200B_206E_202B_206C_206D_206E_206D_202E(current)); - _nextActionAt = (flag ? (_202B_202B_206B_206C_202A_202B_202D_206C_200C_202B_202E_206D_202E_200D_206F_200E_206D_200C_202C_206A_200C_200F_202C_202B_206E_202B_206A_206B_200C_202A_206A_202A_206B_200E_200F_206D_200B_202B_202A_206F_202E() + 2500) : (_202B_202B_206B_206C_202A_202B_202D_206C_200C_202B_202E_206D_202E_200D_206F_200E_206D_200C_202C_206A_200C_200F_202C_202B_206E_202B_206A_206B_200C_202A_206A_202A_206B_200E_200F_206D_200B_202B_202A_206F_202E() + 500)); - return ETaskResult.StillRunning; - } - case 2: - current = enumerator.Current; - gameObject = gameFunctions.FindObjectByDataId(_202D_206A_202D_202D_206A_206B_200C_206A_200D_202B_200F_206E_200F_200E_200D_206E_206A_200E_206E_202A_200F_202A_200D_206E_202A_202B_206E_206C_206E_202D_206E_202A_200C_202E_200F_206C_200E_206D_202A_202B_202E(current), null, warnIfMissing: false); - num = ((gameObject == null) ? (-1088857839) : (-1088857840)); - break; - case 3: - num = -1088857839; - break; - case 5: - goto end_IL_007f; - } - continue; - end_IL_007f: - break; - } - } - finally - { - num = ((enumerator == null) ? (-2091271449) : (-2091271452)); - while (true) - { - int num6 = num; - num3 = -2091271450; - num4 = num6; - int num7 = num4 + num3; - int num8 = num4 & num3; - switch (num7 - (num8 + num8)) - { - case 0: - num = -2091271452; - break; - case 1: - goto end_IL_01c0; - case 2: - _200D_202A_206C_206C_200B_206E_200C_206E_206A_200E_206A_200B_206D_206B_206F_206E_206E_206D_206A_206C_202E_206C_202D_202C_200F_200B_200F_200F_200B_200D_202D_206E_200F_206F_200F_206D_202A_200E_202E_206C_202E((IDisposable)enumerator); - num = -2091271449; - break; - } - continue; - end_IL_01c0: - break; - } - } - _nextActionAt = _202B_202B_206B_206C_202A_202B_202D_206C_200C_202B_202E_206D_202E_200D_206F_200E_206D_200C_202C_206A_200C_200F_202C_202B_206E_202B_206A_206B_200C_202A_206A_202A_206B_200E_200F_206D_200B_202B_202A_206F_202E() + 250; - return ETaskResult.StillRunning; - } - } - continue; - IL_0054: - num = 106298231; + return ETaskResult.StillRunning; } + foreach (FateActionTarget target in base.Task.Targets) + { + IGameObject gameObject = gameFunctions.FindObjectByDataId(target.DataId, null, warnIfMissing: false); + if (gameObject != null && gameObject.IsTargetable) + { + bool flag = gameFunctions.UseAction(gameObject, target.Action); + _nextActionAt = (flag ? (Environment.TickCount64 + 2500) : (Environment.TickCount64 + 500)); + return ETaskResult.StillRunning; + } + } + _nextActionAt = Environment.TickCount64 + 250; + return ETaskResult.StillRunning; } public override bool ShouldInterruptOnDamage() { return false; } - - static string _206D_206D_202C_200B_206E_200F_202C_200F_200F_200E_206A_202D_206A_202B_206E_206D_202B_200E_206B_206D_202A_202C_206B_202D_206D_200D_200D_202C_206B_202E_202E_202D_206D_206D_200D_200C_200F_206C_202C_202C_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); - } - - static void _206F_206A_202C_200C_206F_202D_206B_200E_200C_206A_202B_200F_202A_206D_202D_202B_202C_206B_200E_200D_202C_200D_200B_200D_206F_206B_202A_202E_206A_206E_206B_206D_202A_206E_206F_200D_206E_202B_202D_202A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static long _202B_202B_206B_206C_202A_202B_202D_206C_200C_202B_202E_206D_202E_200D_206F_200E_206D_200C_202C_206A_200C_200F_202C_202B_206E_202B_206A_206B_200C_202A_206A_202A_206B_200E_200F_206D_200B_202B_202A_206F_202E() - { - return Environment.TickCount64; - } - - static uint _202D_206A_202D_202D_206A_206B_200C_206A_200D_202B_200F_206E_200F_200E_200D_206E_206A_200E_206E_202A_200F_202A_200D_206E_202A_202B_206E_206C_206E_202D_206E_202A_200C_202E_200F_206C_200E_206D_202A_202B_202E(FateActionTarget P_0) - { - return P_0.DataId; - } - - static bool _202C_200D_200D_200D_200D_206B_202E_200D_202B_206F_202C_200E_200F_206D_200F_202E_200C_200D_206D_202D_200C_202A_200F_202A_206C_200B_202A_206B_202B_202D_206C_200D_200C_206F_202D_200E_202C_200C_200F_202B_202E(IGameObject P_0) - { - return P_0.IsTargetable; - } - - static EAction _202E_200F_206B_206E_206F_206C_202E_200E_202A_202E_202D_200C_202E_200E_202E_206F_202B_202E_202D_202D_202B_206A_206B_206B_202B_202B_206E_200C_206A_206C_206A_202E_206F_200B_206E_202B_206C_206D_206E_206D_202E(FateActionTarget P_0) - { - return P_0.Action; - } - - static bool _206A_202C_202C_206E_206D_202E_202E_206E_202E_206E_206F_206C_206E_202D_200B_206F_200D_202C_206E_206C_206C_200F_206F_200C_200F_200C_206D_206A_206E_200F_206C_200C_200F_206E_206B_206C_206D_200B_206E_200E_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200D_202A_206C_206C_200B_206E_200C_206E_206A_200E_206A_200B_206D_206B_206F_206E_206E_206D_206A_206C_202E_206C_202D_202C_200F_200B_200F_200F_200B_200D_202D_206E_200F_206F_200F_206D_202A_200E_202E_206C_202E(IDisposable P_0) - { - P_0.Dispose(); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/FateFarming.cs b/Questionable/Questionable.Controller.Steps.Interactions/FateFarming.cs index 06132c4..bc8fb24 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/FateFarming.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/FateFarming.cs @@ -1,8 +1,5 @@ using System; -using System.Collections; using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Objects.Types; using Microsoft.Extensions.Logging; using Questionable.Functions; @@ -14,97 +11,9 @@ internal static class FateFarming { internal sealed record WaitForFateTargets(IReadOnlyList<FateActionTarget> Targets) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206F_200D_200E_202C_202D_202D_200C_206D_206B_206B_206A_200E_200F_206D_202D_206B_206A_202D_200D_206C_206B_206B_206D_206B_206F_206F_202C_200E_200F_202C_206B_202C_202E_202B_202C_202A_202A_202C_206C_202B_202E(typeof(WaitForFateTargets).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(28, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-764429910)); - defaultInterpolatedStringHandler.AppendFormatted(Targets.Count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(81942764)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206C_202D_202C_200E_202E_206E_206E_200F_206A_200B_200E_206C_206F_200C_202D_206A_202E_200E_206D_200E_202E_206B_202E_202D_202A_202B_206A_206D_206D_202D_200E_206E_206B_202D_206F_206B_200E_206F_202E(); - _206C_202C_206F_206E_200C_206E_202A_206A_206A_206C_200C_206D_200E_202D_206D_206A_206E_206D_202D_200E_206D_206E_200F_200E_206D_206D_202E_202D_202C_202A_202D_200E_206D_202A_206F_206E_206D_206F_200C_202C_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1764240763)); - _202B_200F_200B_202B_202E_206A_206B_200D_206D_202C_206A_200D_206C_200F_200F_200D_206C_200D_202A_202E_206A_206B_206B_200C_200C_206B_202A_200D_200F_206A_206C_200B_200D_200C_206A_200C_200D_202A_202E_202E(builder, (object)Targets); - return true; - } - - [CompilerGenerated] - public bool Equals(WaitForFateTargets? other) - { - int num = (((object)this == other) ? (-989608852) : (-989608851)); - while (true) - { - int num2 = num; - int num3 = -989608856; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 5: - num = (((object)other == null) ? (-989608854) : (-989608853)); - break; - case 1: - return EqualityComparer<IReadOnlyList<FateActionTarget>>.Default.Equals(Targets, other.Targets); - case 4: - return true; - case 3: - num = ((!_206E_202A_200D_206C_202A_202B_206C_206D_206E_202D_202E_206E_206C_206D_202B_206C_206C_202C_200C_206C_202C_202B_206F_202B_202C_200C_202D_206F_206F_206C_200E_206D_206B_206F_206A_202C_202B_206D_200E_206D_202E(EqualityContract, other.EqualityContract)) ? (-989608854) : (-989608855)); - break; - case 0: - num = -989608851; - break; - } - } - } - - bool IEquatable<WaitForFateTargets>.Equals(WaitForFateTargets? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206F_200D_200E_202C_202D_202D_200C_206D_206B_206B_206A_200E_200F_206D_202D_206B_206A_202D_200D_206C_206B_206B_206D_206B_206F_206F_202C_200E_200F_202C_206B_202C_202E_202B_202C_202A_202A_202C_206C_202B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206C_202D_202C_200E_202E_206E_206E_200F_206A_200B_200E_206C_206F_200C_202D_206A_202E_200E_206D_200E_202E_206B_202E_202D_202A_202B_206A_206D_206D_202D_200E_206E_206B_202D_206F_206B_200E_206F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206C_202C_206F_206E_200C_206E_202A_206A_206A_206C_200C_206D_200E_202D_206D_206A_206E_206D_202D_200E_206D_206E_200F_200E_206D_206D_202E_202D_202C_202A_202D_200E_206D_202A_206F_206E_206D_206F_200C_202C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202B_200F_200B_202B_202E_206A_206B_200D_206D_202C_206A_200D_206C_200F_200F_200D_206C_200D_202A_202E_206A_206B_206B_200C_200C_206B_202A_200D_200F_206A_206C_200B_200D_200C_206A_200C_200D_202A_202E_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206E_202A_200D_206C_202A_202B_206C_206D_206E_202D_202E_206E_206C_206D_202B_206C_206C_202C_200C_206C_202C_202B_206F_202B_202C_200C_202D_206F_206F_206C_200E_206D_206B_206F_206A_202C_202B_206D_200E_206D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"WaitForFateTargets({Targets.Count} targets)"; } } @@ -114,383 +23,94 @@ internal static class FateFarming private bool _loggedWaitingForFate; - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - _202B_200F_202E_200F_206D_200F_206B_200D_206D_200D_200E_202C_206C_202E_206F_206A_206E_206D_202B_202B_202C_200B_206F_200F_202A_200D_200F_200C_202E_200B_206D_202E_206B_206A_206E_202B_200F_200F_202E_206D_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1410411632), new object[1] { base.Task.Targets.Count }); + logger.LogDebug("Waiting for FATE targets to appear ({Count} targets)", base.Task.Targets.Count); _loggedWaitingForFate = false; return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - int num = ((_202D_202D_200B_200D_202B_206A_202D_200C_202E_200B_200B_206B_202C_200C_206E_200E_200E_200D_202C_202B_202D_200C_200D_206B_200D_200F_206A_202C_202B_200C_206E_202A_206F_200D_206C_206F_206B_202E_202A_202E() >= _nextPollAt) ? 347657580 : 347657579); - ushort currentFateId = default(ushort); - FateActionTarget current = default(FateActionTarget); - IGameObject gameObject = default(IGameObject); - while (true) + if (Environment.TickCount64 < _nextPollAt) { - int num2 = num; - int num3 = 347657582; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return ETaskResult.StillRunning; + } + ushort currentFateId = gameFunctions.GetCurrentFateId(); + if (currentFateId == 0) + { + if (!_loggedWaitingForFate) { - case 3: - num = 347657579; - break; - case 5: - return ETaskResult.StillRunning; - case 1: - _nextPollAt = _202D_202D_200B_200D_202B_206A_202D_200C_202E_200B_200B_206B_202C_200C_206E_200E_200E_200D_202C_202B_202D_200C_200D_206B_200D_200F_206A_202C_202B_200C_206E_202A_206F_200D_206C_206F_206B_202E_202A_202E() + 1000; - return ETaskResult.StillRunning; - case 4: - _202B_200F_202E_200F_206D_200F_206B_200D_206D_200D_200E_202C_206C_202E_206F_206A_206E_206D_202B_202B_202C_200B_206F_200F_202A_200D_200F_200C_202E_200B_206D_202E_206B_206A_206E_202B_200F_200F_202E_206D_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1240055981), Array.Empty<object>()); + logger.LogDebug("No active FATE yet, waiting for FATE to start before checking targets"); _loggedWaitingForFate = true; - num = 347657583; - break; - case 2: - currentFateId = gameFunctions.GetCurrentFateId(); - num = ((currentFateId != 0) ? 347657576 : 347657582); - break; - case 0: - num = (_loggedWaitingForFate ? 347657583 : 347657578); - break; - case 6: - { - _loggedWaitingForFate = false; - IEnumerator<FateActionTarget> enumerator = base.Task.Targets.GetEnumerator(); - try - { - num = -373808532; - while (true) - { - int num7 = num; - num3 = -373808536; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -373808532; - break; - case 4: - num = (_202B_200B_206D_206A_200C_206A_200E_202A_200C_206D_202A_200D_200F_202A_202A_200D_206F_206E_200B_200B_206A_206F_206B_206D_206C_206B_200B_206F_202C_200E_202A_206B_206C_206B_206D_206A_202B_200F_206C_206C_202E((IEnumerator)enumerator) ? (-373808535) : (-373808534)); - break; - case 1: - current = enumerator.Current; - gameObject = gameFunctions.FindObjectByDataId(_206C_200C_206E_202D_200E_202B_200C_202E_200E_202A_206E_200E_202A_206F_206A_206E_206B_202E_206D_206B_200B_202E_206C_200C_200B_202D_200E_202D_206D_206E_206C_206A_200D_206A_200B_206D_202D_200D_200F_200E_202E(current), null, warnIfMissing: false); - num = ((gameObject == null) ? (-373808532) : (-373808531)); - break; - case 3: - _202B_200F_202E_200F_206D_200F_206B_200D_206D_200D_200E_202C_206C_202E_206F_206A_206E_206D_202B_202B_202C_200B_206F_200F_202A_200D_200F_200C_202E_200B_206D_202E_206B_206A_206E_202B_200F_200F_202E_206D_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(955603109), new object[2] - { - currentFateId, - _206C_200C_206E_202D_200E_202B_200C_202E_200E_202A_206E_200E_202A_206F_206A_206E_206B_202E_206D_206B_200B_202E_206C_200C_200B_202D_200E_202D_206D_206E_206C_206A_200D_206A_200B_206D_202D_200D_200F_200E_202E(current) - }); - return ETaskResult.TaskComplete; - case 5: - num = ((!_206E_202E_206B_200E_202C_202C_206D_200F_206F_200E_202C_200F_200E_202B_206E_206A_202C_202D_200F_200B_202C_202B_202E_206A_206A_200C_206B_202E_206C_200F_200F_206B_200F_200D_206F_200C_202D_200F_202E_202C_202E(gameObject)) ? (-373808532) : (-373808533)); - break; - case 2: - goto end_IL_0126; - } - continue; - end_IL_0126: - break; - } - } - finally - { - num = ((enumerator == null) ? (-816867460) : (-816867457)); - while (true) - { - int num8 = num; - num3 = -816867458; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 0: - num = -816867457; - break; - case 2: - goto end_IL_025b; - case 1: - _200D_200B_202C_206E_200C_200D_202E_200F_206E_206B_206F_206F_202C_206C_206B_200B_202E_206E_202E_206F_206B_206E_206B_206C_200B_206D_206C_200E_202B_202E_200D_200D_202D_206B_200B_206C_206C_202C_206D_206D_202E((IDisposable)enumerator); - num = -816867460; - break; - } - continue; - end_IL_025b: - break; - } - } - _nextPollAt = _202D_202D_200B_200D_202B_206A_202D_200C_202E_200B_200B_206B_202C_200C_206E_200E_200E_200D_202C_202B_202D_200C_200D_206B_200D_200F_206A_202C_202B_200C_206E_202A_206F_200D_206C_206F_206B_202E_202A_202E() + 1000; - return ETaskResult.StillRunning; } + _nextPollAt = Environment.TickCount64 + 1000; + return ETaskResult.StillRunning; + } + _loggedWaitingForFate = false; + foreach (FateActionTarget target in base.Task.Targets) + { + IGameObject gameObject = gameFunctions.FindObjectByDataId(target.DataId, null, warnIfMissing: false); + if (gameObject != null && gameObject.IsTargetable) + { + logger.LogDebug("FATE {FateId} active and target {DataId} is targetable", currentFateId, target.DataId); + return ETaskResult.TaskComplete; } } + _nextPollAt = Environment.TickCount64 + 1000; + return ETaskResult.StillRunning; } public override bool ShouldInterruptOnDamage() { return false; } - - static void _202B_200F_202E_200F_206D_200F_206B_200D_206D_200D_200E_202C_206C_202E_206F_206A_206E_206D_202B_202B_202C_200B_206F_200F_202A_200D_200F_200C_202E_200B_206D_202E_206B_206A_206E_202B_200F_200F_202E_206D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static long _202D_202D_200B_200D_202B_206A_202D_200C_202E_200B_200B_206B_202C_200C_206E_200E_200E_200D_202C_202B_202D_200C_200D_206B_200D_200F_206A_202C_202B_200C_206E_202A_206F_200D_206C_206F_206B_202E_202A_202E() - { - return Environment.TickCount64; - } - - static uint _206C_200C_206E_202D_200E_202B_200C_202E_200E_202A_206E_200E_202A_206F_206A_206E_206B_202E_206D_206B_200B_202E_206C_200C_200B_202D_200E_202D_206D_206E_206C_206A_200D_206A_200B_206D_202D_200D_200F_200E_202E(FateActionTarget P_0) - { - return P_0.DataId; - } - - static bool _206E_202E_206B_200E_202C_202C_206D_200F_206F_200E_202C_200F_200E_202B_206E_206A_202C_202D_200F_200B_202C_202B_202E_206A_206A_200C_206B_202E_206C_200F_200F_206B_200F_200D_206F_200C_202D_200F_202E_202C_202E(IGameObject P_0) - { - return P_0.IsTargetable; - } - - static bool _202B_200B_206D_206A_200C_206A_200E_202A_200C_206D_202A_200D_200F_202A_202A_200D_206F_206E_200B_200B_206A_206F_206B_206D_206C_206B_200B_206F_202C_200E_202A_206B_206C_206B_206D_206A_202B_200F_206C_206C_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200D_200B_202C_206E_200C_200D_202E_200F_206E_206B_206F_206F_202C_206C_206B_200B_202E_206E_202E_206F_206B_206E_206B_206C_200B_206D_206C_200E_202B_202E_200D_200D_202D_206B_200B_206C_206C_202C_206D_206D_202E(IDisposable P_0) - { - P_0.Dispose(); - } } internal sealed record SyncFateLevel : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200E_200E_202E_202C_206D_206D_202D_202D_206D_202D_202D_200E_202E_200B_206F_200F_206D_202A_202B_206C_202D_206C_200D_206B_206B_206D_200B_206B_202B_206D_202D_206C_206E_206A_202B_200C_202E_202A_202A_202E(typeof(SyncFateLevel).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-475022604); - } - - [CompilerGenerated] - public bool Equals(SyncFateLevel? other) - { - int num = (((object)this == other) ? (-1810746369) : (-1810746375)); - while (true) - { - int num2 = num; - int num3 = -1810746371; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return false; - case 4: - num = (((object)other == null) ? (-1810746370) : (-1810746372)); - break; - case 1: - return _202C_200F_206A_206F_202B_202E_200E_206A_206B_206E_206A_206C_206D_202B_200E_206F_206B_200B_200D_200D_202D_202E_206A_202A_200F_202D_202A_200B_206D_202D_202B_200B_202E_202C_202A_202B_200D_200E_206D_206E_202E(EqualityContract, other.EqualityContract); - case 2: - return true; - case 0: - num = -1810746375; - break; - } - } - } - - bool IEquatable<SyncFateLevel>.Equals(SyncFateLevel? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200E_200E_202E_202C_206D_206D_202D_202D_206D_202D_202D_200E_202E_200B_206F_200F_206D_202A_202B_206C_202D_206C_200D_206B_206B_206D_200B_206B_202B_206D_202D_206C_206E_206A_202B_200C_202E_202A_202A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _202C_200F_206A_206F_202B_202E_200E_206A_206B_206E_206A_206C_206D_202B_200E_206F_206B_200B_200D_200D_202D_202E_206A_202A_200F_202D_202A_200B_206D_202D_202B_200B_202E_202C_202A_202B_200D_200E_206D_206E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "SyncFateLevel"; } } internal sealed class SyncFateLevelExecutor(GameFunctions gameFunctions, ILogger<SyncFateLevelExecutor> logger) : TaskExecutor<SyncFateLevel>() { - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - _206B_206D_200B_202C_206D_206E_202E_206E_200E_202A_200E_206B_206E_200D_200E_206A_200D_202B_200D_202A_206C_200C_206E_206F_202B_202C_200D_200E_206E_206C_200F_202A_206F_202C_202E_202E_206D_206C_202B_202D_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(245649986), Array.Empty<object>()); + logger.LogDebug("Syncing to FATE level"); return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { ushort currentFateId = gameFunctions.GetCurrentFateId(); - int num = ((currentFateId != 0) ? (-666684793) : (-666684794)); - while (true) + if (currentFateId == 0) { - int num2 = num; - int num3 = -666684793; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - gameFunctions.SyncToFate(currentFateId); - return ETaskResult.TaskComplete; - case 1: - _206B_206D_200B_202C_206D_206E_202E_206E_200E_202A_200E_206B_206E_200D_200E_206A_200D_202B_200D_202A_206C_200C_206E_206F_202B_202C_200D_200E_206E_206C_200F_202A_206F_202C_202E_202E_206D_206C_202B_202D_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1969316216), Array.Empty<object>()); - return ETaskResult.TaskComplete; - case 2: - goto IL_007a; - } - continue; - IL_007a: - num = -666684794; + logger.LogDebug("No active FATE to sync to, skipping"); + return ETaskResult.TaskComplete; } + gameFunctions.SyncToFate(currentFateId); + return ETaskResult.TaskComplete; } public override bool ShouldInterruptOnDamage() { return false; } - - static void _206B_206D_200B_202C_206D_206E_202E_206E_200E_202A_200E_206B_206E_200D_200E_206A_200D_202B_200D_202A_206C_200C_206E_206F_202B_202C_200D_200E_206E_206C_200F_202A_206F_202C_202E_202E_206D_206C_202B_202D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } } internal sealed record FateActionLoop(IReadOnlyList<FateActionTarget> Targets, EStatus? RequiredStatusId = null) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200F_202C_206B_202D_200B_200D_206E_202C_202D_202C_206B_202A_200B_206F_206D_200C_202E_200E_202B_202B_206A_206E_200F_202C_206F_200B_202A_206A_200D_206A_206A_200B_202E_200F_200E_206D_206B_206F_202C_202E(typeof(FateActionLoop).TypeHandle); - } - } - public bool ShouldRedoOnInterrupt() { return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(24, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(213111494)); - defaultInterpolatedStringHandler.AppendFormatted(Targets.Count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1905985229)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200D_202A_200E_200D_206D_206D_206E_200F_206D_202A_206F_206E_200D_202E_206D_206C_200C_202E_206D_206F_206C_200F_200C_200C_202E_202B_206C_206F_206C_206E_206F_202A_202A_206D_200E_200D_206B_200F_202E_200C_202E(); - _206D_202A_200C_200C_202C_202D_206E_202B_206C_202E_202D_200C_202C_202C_202E_202C_206B_206C_202B_202C_206D_206D_200F_202A_200C_206E_206C_206D_200F_200F_206D_200E_206E_206A_202E_200F_206F_200E_200E_200D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-144611919)); - _200C_206F_202A_206F_202D_200D_206C_202E_202E_206C_206B_206F_206F_202E_200F_206D_202D_202B_206F_202B_202E_206B_206F_202C_200C_206C_200F_202A_206C_202A_202B_202B_206D_206A_206D_206A_206F_200B_202A_202B_202E(builder, (object)Targets); - _206D_202A_200C_200C_202C_202D_206E_202B_206C_202E_202D_200C_202C_202C_202E_202C_206B_206C_202B_202C_206D_206D_200F_202A_200C_206E_206C_206D_200F_200F_206D_200E_206E_206A_202E_200F_206F_200E_200E_200D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1576420107)); - _206D_202A_200C_200C_202C_202D_206E_202B_206C_202E_202D_200C_202C_202C_202E_202C_206B_206C_202B_202C_206D_206D_200F_202A_200C_206E_206C_206D_200F_200F_206D_200E_206E_206A_202E_200F_206F_200E_200E_200D_202E(builder, RequiredStatusId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(FateActionLoop? other) - { - int num = (((object)this == other) ? (-346298677) : (-346298676)); - while (true) - { - int num2 = num; - int num3 = -346298674; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = ((!EqualityComparer<IReadOnlyList<FateActionTarget>>.Default.Equals(Targets, other.Targets)) ? (-346298680) : (-346298673)); - break; - case 2: - num = (((object)other == null) ? (-346298680) : (-346298678)); - break; - case 6: - return false; - case 3: - num = -346298676; - break; - case 4: - num = ((!_206D_200C_202E_200C_202A_206D_200C_200B_200C_202B_206C_202E_206D_206B_202E_202B_202C_202B_200E_206D_202B_202C_206F_202D_206F_202C_200D_206B_206A_206C_206B_202C_202B_202A_206E_200F_200C_206E_200B_200D_202E(EqualityContract, other.EqualityContract)) ? (-346298680) : (-346298674)); - break; - case 5: - return true; - case 1: - return EqualityComparer<EStatus?>.Default.Equals(RequiredStatusId, other.RequiredStatusId); - } - } - } - - bool IEquatable<FateActionLoop>.Equals(FateActionLoop? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200F_202C_206B_202D_200B_200D_206E_202C_202D_202C_206B_202A_200B_206F_206D_200C_202E_200E_202B_202B_206A_206E_200F_202C_206F_200B_202A_206A_200D_206A_206A_200B_202E_200F_200E_206D_206B_206F_202C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _200D_202A_200E_200D_206D_206D_206E_200F_206D_202A_206F_206E_200D_202E_206D_206C_200C_202E_206D_206F_206C_200F_200C_200C_202E_202B_206C_206F_206C_206E_206F_202A_202A_206D_200E_200D_206B_200F_202E_200C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206D_202A_200C_200C_202C_202D_206E_202B_206C_202E_202D_200C_202C_202C_202E_202C_206B_206C_202B_202C_206D_206D_200F_202A_200C_206E_206C_206D_200F_200F_206D_200E_206E_206A_202E_200F_206F_200E_200E_200D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200C_206F_202A_206F_202D_200D_206C_202E_202E_206C_206B_206F_206F_202E_200F_206D_202D_202B_206F_202B_202E_206B_206F_202C_200C_206C_200F_202A_206C_202A_202B_202B_206D_206A_206D_206A_206F_200B_202A_202B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206D_200C_202E_200C_202A_206D_200C_200B_200C_202B_206C_202E_206D_206B_202E_202B_202C_202B_200E_206D_202B_202C_206F_202D_206F_202C_200D_206B_206A_206C_206B_202C_202B_202A_206E_200F_200C_206E_200B_200D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"FateActionLoop({Targets.Count} targets)"; } } @@ -502,196 +122,62 @@ internal static class FateFarming private bool _fateWasActive; - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { _trackedFateId = gameFunctions.GetCurrentFateId(); - _202E_202D_202C_202B_206F_200B_206E_202D_206A_202D_200D_202E_206C_206F_206D_206C_206D_200D_206E_206E_202E_206C_202A_206D_200F_206A_200B_200E_202A_200C_202A_200B_200C_206A_202D_200E_200C_202C_206F_200F_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2063272986), new object[2] - { - base.Task.Targets.Count, - _trackedFateId - }); + logger.LogDebug("Starting FATE action loop with {Count} targets, tracking FATE {FateId}", base.Task.Targets.Count, _trackedFateId); return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - int num = ((_202E_206D_202B_200D_206F_206C_202A_206F_206C_202D_206B_206D_202B_200D_202C_206B_200F_200E_202B_202D_206B_206E_206E_200D_206E_200E_200D_202A_200E_202A_206D_200C_202A_206D_200D_206E_206E_206E_202D_202A_202E() >= _nextActionAt) ? 464111573 : 464111570); - bool flag2 = default(bool); - ushort currentFateId = default(ushort); - IGameObject gameObject = default(IGameObject); - FateActionTarget current = default(FateActionTarget); - while (true) + if (Environment.TickCount64 < _nextActionAt) { - int num2 = num; - int num3 = 464111571; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return ETaskResult.StillRunning; + } + if (base.Task.RequiredStatusId.HasValue && !gameFunctions.HasStatus(base.Task.RequiredStatusId.Value)) + { + logger.LogDebug("Required status {StatusId} lost during FATE action loop, ending cycle to re-apply", base.Task.RequiredStatusId.Value); + return ETaskResult.TaskComplete; + } + ushort currentFateId = gameFunctions.GetCurrentFateId(); + bool flag = currentFateId != 0; + if (_fateWasActive && !flag) + { + logger.LogDebug("FATE {FateId} is no longer active, cycle complete", _trackedFateId); + return ETaskResult.TaskComplete; + } + _fateWasActive = flag; + if (_trackedFateId == 0) + { + _trackedFateId = currentFateId; + if (_trackedFateId != 0) { - case 10: - _202E_202D_202C_202B_206F_200B_206E_202D_206A_202D_200D_202E_206C_206F_206D_206C_206D_200D_206E_206E_202E_206C_202A_206D_200F_206A_200B_200E_202A_200C_202A_200B_200C_206A_202D_200E_200C_202C_206F_200F_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1515231479), new object[1] { _trackedFateId }); - num = 464111571; - break; - case 2: - _fateWasActive = flag2; - num = ((_trackedFateId != 0) ? 464111571 : 464111572); - break; - case 12: - num = (gameFunctions.HasStatus(base.Task.RequiredStatusId.Value) ? 464111581 : 464111574); - break; - case 7: - _trackedFateId = currentFateId; - num = ((_trackedFateId == 0) ? 464111571 : 464111577); - break; - case 14: - currentFateId = gameFunctions.GetCurrentFateId(); - flag2 = currentFateId != 0; - num = ((!_fateWasActive) ? 464111569 : 464111582); - break; - case 0: - num = ((_trackedFateId == 0) ? 464111576 : 464111568); - break; - case 3: - num = (gameFunctions.IsFateStillActive(_trackedFateId) ? 464111576 : 464111579); - break; - case 9: - num = 464111570; - break; - case 6: - num = ((!base.Task.RequiredStatusId.HasValue) ? 464111581 : 464111583); - break; - case 8: - _202E_202D_202C_202B_206F_200B_206E_202D_206A_202D_200D_202E_206C_206F_206D_206C_206D_200D_206E_206E_202E_206C_202A_206D_200F_206A_200B_200E_202A_200C_202A_200B_200C_206A_202D_200E_200C_202C_206F_200F_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1418980453), new object[1] { _trackedFateId }); - return ETaskResult.TaskComplete; - case 5: - _202E_202D_202C_202B_206F_200B_206E_202D_206A_202D_200D_202E_206C_206F_206D_206C_206D_200D_206E_206E_202E_206C_202A_206D_200F_206A_200B_200E_202A_200C_202A_200B_200C_206A_202D_200E_200C_202C_206F_200F_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1749346970), new object[1] { base.Task.RequiredStatusId.Value }); - return ETaskResult.TaskComplete; - case 4: - _202E_202D_202C_202B_206F_200B_206E_202D_206A_202D_200D_202E_206C_206F_206D_206C_206D_200D_206E_206E_202E_206C_202A_206D_200F_206A_200B_200E_202A_200C_202A_200B_200C_206A_202D_200E_200C_202C_206F_200F_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1750997403), new object[1] { _trackedFateId }); - return ETaskResult.TaskComplete; - case 1: - return ETaskResult.StillRunning; - case 13: - num = (flag2 ? 464111569 : 464111575); - break; - case 11: - { - IEnumerator<FateActionTarget> enumerator = base.Task.Targets.GetEnumerator(); - try - { - num = -742577641; - while (true) - { - int num7 = num; - num3 = -742577643; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 2: - num = (_206F_202D_200F_206F_200C_206E_206A_200D_200E_202D_206B_200F_202E_206D_202A_206A_202B_206F_200F_202D_200F_206E_200D_202E_206B_200E_206B_200C_202A_200E_206C_200F_206E_206C_202E_202D_206E_202D_200B_202C_202E((IEnumerator)enumerator) ? (-742577647) : (-742577642)); - break; - case 1: - num = ((!_200E_202B_202A_200B_200C_206B_206F_202A_202A_202C_206D_206A_206A_206E_206F_202C_202A_202E_202C_202B_200D_202A_200D_202D_206B_200B_202B_206E_206F_202B_206F_200B_202A_200F_206D_202B_206C_200F_202B_206D_202E(gameObject)) ? (-742577641) : (-742577648)); - break; - case 5: - { - bool flag = gameFunctions.UseAction(gameObject, _202C_202D_206A_200F_206B_202A_206B_202D_202B_202D_206F_200E_202D_206C_206A_202E_202A_200B_202D_206B_202B_206E_202D_206C_206D_202D_202B_200D_200B_202A_206F_200B_202A_200B_206A_202C_206B_206D_206F_206A_202E(current)); - _nextActionAt = (flag ? (_202E_206D_202B_200D_206F_206C_202A_206F_206C_202D_206B_206D_202B_200D_202C_206B_200F_200E_202B_202D_206B_206E_206E_200D_206E_200E_200D_202A_200E_202A_206D_200C_202A_206D_200D_206E_206E_206E_202D_202A_202E() + 2500) : (_202E_206D_202B_200D_206F_206C_202A_206F_206C_202D_206B_206D_202B_200D_202C_206B_200F_200E_202B_202D_206B_206E_206E_200D_206E_200E_200D_202A_200E_202A_206D_200C_202A_206D_200D_206E_206E_206E_202D_202A_202E() + 500)); - return ETaskResult.StillRunning; - } - case 4: - current = enumerator.Current; - gameObject = gameFunctions.FindObjectByDataId(_200F_206F_206E_206B_200D_206D_202E_206A_206E_202C_200B_200E_200D_200E_202A_200C_202C_206D_202B_206A_206D_200F_202C_200C_200C_202A_206B_206C_206E_202B_206A_206E_202A_202B_206A_206D_202E_206C_202D_202B_202E(current), null, warnIfMissing: false); - num = ((gameObject == null) ? (-742577641) : (-742577644)); - break; - case 0: - num = -742577641; - break; - case 3: - goto end_IL_02d6; - } - continue; - end_IL_02d6: - break; - } - } - finally - { - num = ((enumerator == null) ? (-2077958927) : (-2077958928)); - while (true) - { - int num10 = num; - num3 = -2077958927; - num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 0: - goto end_IL_0421; - case 1: - _202C_206B_202B_202B_206B_202C_200C_206D_206F_200B_200B_206C_206F_202E_200F_206C_206A_202B_200E_206D_200D_202E_206F_200F_206E_202B_202D_202B_200C_202C_206C_202B_206D_200F_202A_206A_200C_202A_206D_202E_202E((IDisposable)enumerator); - num = -2077958927; - break; - case 2: - num = -2077958928; - break; - } - continue; - end_IL_0421: - break; - } - } - _nextActionAt = _202E_206D_202B_200D_206F_206C_202A_206F_206C_202D_206B_206D_202B_200D_202C_206B_200F_200E_202B_202D_206B_206E_206E_200D_206E_200E_200D_202A_200E_202A_206D_200C_202A_206D_200D_206E_206E_206E_202D_202A_202E() + 250; - return ETaskResult.StillRunning; - } + logger.LogDebug("Now tracking FATE {FateId}", _trackedFateId); } } + if (_trackedFateId != 0 && !gameFunctions.IsFateStillActive(_trackedFateId)) + { + logger.LogDebug("FATE {FateId} is no longer running, cycle complete", _trackedFateId); + return ETaskResult.TaskComplete; + } + foreach (FateActionTarget target in base.Task.Targets) + { + IGameObject gameObject = gameFunctions.FindObjectByDataId(target.DataId, null, warnIfMissing: false); + if (gameObject != null && gameObject.IsTargetable) + { + bool flag2 = gameFunctions.UseAction(gameObject, target.Action); + _nextActionAt = (flag2 ? (Environment.TickCount64 + 2500) : (Environment.TickCount64 + 500)); + return ETaskResult.StillRunning; + } + } + _nextActionAt = Environment.TickCount64 + 250; + return ETaskResult.StillRunning; } public override bool ShouldInterruptOnDamage() { return false; } - - static void _202E_202D_202C_202B_206F_200B_206E_202D_206A_202D_200D_202E_206C_206F_206D_206C_206D_200D_206E_206E_202E_206C_202A_206D_200F_206A_200B_200E_202A_200C_202A_200B_200C_206A_202D_200E_200C_202C_206F_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static long _202E_206D_202B_200D_206F_206C_202A_206F_206C_202D_206B_206D_202B_200D_202C_206B_200F_200E_202B_202D_206B_206E_206E_200D_206E_200E_200D_202A_200E_202A_206D_200C_202A_206D_200D_206E_206E_206E_202D_202A_202E() - { - return Environment.TickCount64; - } - - static uint _200F_206F_206E_206B_200D_206D_202E_206A_206E_202C_200B_200E_200D_200E_202A_200C_202C_206D_202B_206A_206D_200F_202C_200C_200C_202A_206B_206C_206E_202B_206A_206E_202A_202B_206A_206D_202E_206C_202D_202B_202E(FateActionTarget P_0) - { - return P_0.DataId; - } - - static bool _200E_202B_202A_200B_200C_206B_206F_202A_202A_202C_206D_206A_206A_206E_206F_202C_202A_202E_202C_202B_200D_202A_200D_202D_206B_200B_202B_206E_206F_202B_206F_200B_202A_200F_206D_202B_206C_200F_202B_206D_202E(IGameObject P_0) - { - return P_0.IsTargetable; - } - - static EAction _202C_202D_206A_200F_206B_202A_206B_202D_202B_202D_206F_200E_202D_206C_206A_202E_202A_200B_202D_206B_202B_206E_202D_206C_206D_202D_202B_200D_200B_202A_206F_200B_202A_200B_206A_202C_206B_206D_206F_206A_202E(FateActionTarget P_0) - { - return P_0.Action; - } - - static bool _206F_202D_200F_206F_200C_206E_206A_200D_200E_202D_206B_200F_202E_206D_202A_206A_202B_206F_200F_202D_200F_206E_200D_202E_206B_200E_206B_200C_202A_200E_206C_200F_206E_206C_202E_202D_206E_202D_200B_202C_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202C_206B_202B_202B_206B_202C_200C_206D_206F_200B_200B_206C_206F_202E_200F_206C_206A_202B_200E_206D_200D_202E_206F_200F_206E_202B_202D_202B_200C_202C_206C_202B_206D_200F_202A_206A_200C_202A_206D_202E_202E(IDisposable P_0) - { - P_0.Dispose(); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/Interact.cs b/Questionable/Questionable.Controller.Steps.Interactions/Interact.cs index 8fcad0c..72500ee 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/Interact.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/Interact.cs @@ -1,9 +1,6 @@ using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.Enums; using Dalamud.Game.ClientState.Objects.Types; @@ -26,651 +23,83 @@ internal static class Interact { internal sealed class Factory(Configuration configuration) : ITaskFactory { - [CompilerGenerated] - private sealed class _003CCreateAllTasks_003Ed__2 : IEnumerable<ITask>, IEnumerable, IEnumerator<ITask>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ITask _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - private QuestStep step; - - public QuestStep _003C_003E3__step; - - public Factory _003C_003E4__this; - - private QuestSequence sequence; - - public QuestSequence _003C_003E3__sequence; - - private Quest quest; - - public Quest _003C_003E3__quest; - - ITask IEnumerator<ITask>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CCreateAllTasks_003Ed__2(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _202C_206C_202A_200B_206B_206D_202B_202B_206D_200F_200E_206B_202D_206F_202D_202D_200D_202D_200C_202E_202E_202C_202D_202D_206E_206E_206D_206C_206B_206B_200E_200E_202C_202A_206D_206B_202E_200E_206D_206F_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - int num = _003C_003E1__state; - Factory factory = _003C_003E4__this; - int num2; - EInteractionType eInteractionType = default(EInteractionType); - bool flag = default(bool); - switch (num) - { - default: - num2 = 1303320947; - goto IL_002c; - case 2: - break; - case 0: - _003C_003E1__state = -1; - eInteractionType = _200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(step); - num2 = ((eInteractionType == EInteractionType.SinglePlayerDuty) ? 1303320920 : 1303320944); - goto IL_002c; - case 1: - goto IL_0611; - IL_002c: - while (true) - { - int num3 = num2; - int num4 = 1303320952; - int num5 = num3; - uint value; - Quest obj; - EInteractionType interactionType; - int skipMarkerCheck; - uint? num6; - uint? pickUpItemId; - byte? taxiStandId; - SkipConditions skipConditions2; - SkipStepConditions skipConditions3; - List<QuestWorkValue> completionQuestVariablesFlags; - uint? purchaseItemId; - int purchaseItemCount; - switch ((num5 | num4) - (num5 & num4)) - { - case 21: - num2 = 1303320947; - break; - case 20: - goto IL_00e4; - case 12: - return false; - case 15: - goto IL_0117; - case 28: - return false; - case 8: - goto IL_0143; - case 26: - goto IL_0165; - case 9: - goto IL_0192; - case 23: - return false; - case 31: - goto IL_01c7; - case 4: - value = _206C_206A_202B_200F_206A_202D_206D_200C_200F_206C_202A_200D_202A_206F_206C_206E_202A_206C_202B_202A_202B_206A_206C_200D_206E_206F_202A_200B_202D_200E_200C_200E_206F_202E_200F_200D_200E_206C_202B_206B_202E(step).Value; - obj = quest; - interactionType = _200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(step); - if (!_200D_202B_200D_202B_206A_200C_202A_202E_206D_200D_202C_206C_206D_206C_206F_200B_206F_206B_202C_206E_200C_206E_202C_206C_202B_200B_200C_206B_200C_202C_202B_206F_206B_200C_200B_206B_202B_200B_206A_206A_202E(step) && !_206B_202D_206E_202B_200C_200F_202D_206B_200D_206E_206F_206C_202B_206A_202A_200B_202B_200C_202A_206C_200F_200E_202C_200D_202C_202B_206A_202A_206A_202D_206B_206E_202D_200D_206D_202D_202D_206C_202A_206E_202E(step).HasValue) - { - SkipConditions skipConditions = _200F_206F_206D_202B_206C_206D_200C_202B_202E_200D_200E_206E_200E_206A_202B_202E_200B_202E_200F_206A_206A_206E_206F_202C_202C_206A_200F_202C_202A_206B_200E_206E_202A_200E_202A_202A_200D_206C_202C_200E_202E(step); - if (skipConditions != null) - { - SkipStepConditions skipStepConditions = _202B_206D_202B_206E_206C_200F_202D_202C_206B_206D_202B_206B_202D_206D_200D_202C_206F_206E_202A_206B_206A_202B_200E_200D_206E_202E_202C_206A_206C_206F_206D_206F_202C_206A_202A_200E_202C_206E_202A_206A_202E(skipConditions); - if (skipStepConditions != null && _206E_200F_206F_202C_206A_206F_206B_206B_206F_206B_206C_200C_200C_200D_202E_202E_206B_202D_206D_200B_202C_200D_206A_206B_200E_200C_200D_200D_202E_206A_202A_206A_200D_206E_206C_200C_202D_202C_200C_200D_202E(skipStepConditions)) - { - goto IL_02b1; - } - } - if (_200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(step) != EInteractionType.PurchaseItem) - { - skipMarkerCheck = ((_206C_206A_202B_200F_206A_202D_206D_200C_200F_206C_202A_200D_202A_206F_206C_206E_202A_206C_202B_202A_202B_206A_206C_200D_206E_206F_202A_200B_202D_200E_200C_200E_206F_202E_200F_200D_200E_206C_202B_206B_202E(step) == 1052475) ? 1 : 0); - goto IL_02b2; - } - } - goto IL_02b1; - case 17: - goto IL_03ad; - case 27: - return false; - case 29: - goto end_IL_000f; - case 24: - return false; - case 18: - return false; - case 30: - goto IL_03ed; - case 19: - return false; - case 3: - goto end_IL_002c; - case 5: - return false; - case 32: - flag = true; - num2 = 1303320958; - break; - case 0: - goto IL_045a; - case 22: - goto IL_048b; - case 11: - return false; - case 33: - goto IL_04b6; - case 10: - goto IL_04e7; - case 7: - goto IL_052e; - case 34: - return false; - case 6: - goto IL_055a; - case 1: - goto IL_0578; - case 2: - _003C_003E2__current = new WaitAtEnd.WaitDelay(); - _003C_003E1__state = 1; - return true; - case 13: - goto IL_05b6; - case 14: - goto IL_05e0; - case 25: - goto IL_0611; - case 16: - { - flag = false; - num2 = 1303320958; - break; - } - IL_02b1: - skipMarkerCheck = 1; - goto IL_02b2; - IL_02b2: - num6 = _200D_206F_200B_200C_200B_202E_200B_206C_206D_202E_206C_206D_200F_206B_202B_206C_200D_202E_200C_200D_202A_200D_200F_202A_206C_202B_200F_200E_202D_200B_200B_206A_202E_200F_206D_200E_200D_206E_202C_206E_202E(step); - if (!num6.HasValue) - { - GCPurchaseInfo gCPurchaseInfo = _202E_200B_206E_206A_206B_202B_206E_200F_200F_202C_200D_202B_202B_202A_200B_206F_200D_206B_200B_200F_206F_202E_200D_200C_200D_200C_200F_200D_202A_206F_206D_206E_206D_200C_200C_202C_206B_200D_206B_200E_202E(step); - pickUpItemId = ((gCPurchaseInfo != null) ? new uint?(_202C_200E_206A_202D_202B_202C_202B_202E_200F_206E_200F_202A_202A_200B_200F_200B_206D_200C_202A_206C_200F_206F_206C_206E_202B_206D_200E_206A_202E_200D_202C_206F_202E_202A_206C_206C_206F_206D_202E_200D_202E(gCPurchaseInfo)) : ((uint?)null)); - } - else - { - pickUpItemId = num6; - } - taxiStandId = _200E_202D_200F_202C_202D_200D_202C_200E_200E_202B_206B_206A_202D_206D_202C_206A_206B_200F_202E_202D_202B_206C_202D_200F_200D_202A_200C_202C_200F_206B_206B_206A_202E_202A_200E_202C_200F_202E_206E_202A_202E(step); - skipConditions2 = _200F_206F_206D_202B_206C_206D_200C_202B_202E_200D_200E_206E_200E_206A_202B_202E_200B_202E_200F_206A_206A_206E_206F_202C_202C_206A_200F_202C_202A_206B_200E_206E_202A_200E_202A_202A_200D_206C_202C_200E_202E(step); - skipConditions3 = ((skipConditions2 != null) ? _202C_200D_202E_202A_206A_206B_206C_202E_206F_206D_206A_206C_206E_206D_206A_206A_200F_202E_206A_202A_200F_202A_200D_206D_206A_206F_202D_206E_206C_200E_202B_206E_202D_206D_200F_206E_206D_202B_206A_206E_202E(skipConditions2) : null); - completionQuestVariablesFlags = _206D_206A_206C_202A_202C_206D_206F_206D_206D_202B_200E_202A_200E_202B_206B_200E_200E_206B_202C_206D_206C_206C_206E_202E_200C_206C_202B_200E_206E_206F_200F_202B_200D_200B_200C_202B_206F_206E_206F_202E_202E(step); - purchaseItemId = ((_200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(step) == EInteractionType.PurchaseItem) ? _200F_200C_200F_206C_206B_202A_206C_206E_202D_206C_200B_206E_200C_200F_206E_206C_200C_200B_200D_206E_202B_206D_202E_200C_206C_202A_200D_202B_202C_202C_202B_206E_206B_200F_206F_206B_206F_200E_200E_202E(step) : ((uint?)null)); - purchaseItemCount = ((_200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(step) == EInteractionType.PurchaseItem) ? _200B_200F_200F_200B_200B_206C_202D_206C_200F_206D_200B_202C_202A_206C_206F_206E_206A_202D_200F_206D_206B_202D_200F_202A_200B_206A_202B_206C_202D_202D_202A_206C_202D_206B_206E_202A_200C_200D_202A_200C_202E(step).GetValueOrDefault() : 0); - _003C_003E2__current = new Task(value, obj, interactionType, (byte)skipMarkerCheck != 0, pickUpItemId, taxiStandId, skipConditions3, completionQuestVariablesFlags, null, purchaseItemId, purchaseItemCount); - _003C_003E1__state = 2; - return true; - } - continue; - IL_05e0: - num2 = (_206C_206A_202B_200F_206A_202D_206D_200C_200F_206C_202A_200D_202A_206F_206C_206E_202A_206C_202B_202A_202B_206A_206C_200D_206E_206F_202A_200B_202D_200E_200C_200E_206F_202E_200F_200D_200E_206C_202B_206B_202E(step).HasValue ? 1303320946 : 1303320931); - continue; - IL_0117: - num2 = ((_200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(step) != EInteractionType.UnlockTaxiStand) ? 1303320942 : 1303320937); - continue; - IL_04b6: - num2 = ((!_206F_206C_206E_206F_202B_202C_206A_206B_202C_200D_202E_206D_206F_200E_200D_200E_202B_200C_202D_206B_202E_206E_206E_200C_202E_206D_206E_206B_206B_200B_200C_206E_206E_200F_202E_206C_206D_200C_202B_202C_202E(step).HasValue) ? 1303320934 : 1303320943); - continue; - IL_05b6: - num2 = ((_200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(step) != EInteractionType.Snipe) ? 1303320951 : 1303320930); - continue; - IL_0192: - num2 = ((_206D_202D_206B_206E_200F_202A_206B_202A_200D_206D_200B_200F_200B_202C_206B_206E_202A_206D_200E_200F_200F_200B_202D_200E_200B_200D_200C_200D_200B_206B_202A_206F_206F_206E_206C_200E_200E_206D_206A_202E_202E(sequence).IndexOf(step) != 0) ? 1303320956 : 1303320954); - continue; - IL_03ad: - num2 = (_200E_202D_200F_202C_202D_200D_202C_200E_200E_202B_206B_206A_202D_206D_202C_206A_206B_200F_202E_202D_202B_206C_202D_200F_200D_202A_200C_202C_200F_206B_206B_206A_202E_202A_200E_202C_200F_202E_206E_202A_202E(step).HasValue ? 1303320946 : 1303320939); - continue; - IL_0578: - num2 = ((_200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(step) != EInteractionType.PurchaseItem) ? 1303320949 : 1303320952); - continue; - IL_048b: - num2 = ((_200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(step) == EInteractionType.Interact) ? 1303320946 : 1303320932); - continue; - IL_00e4: - num2 = ((!_200F_200C_200F_206C_206B_202A_206C_206E_202D_206C_200B_206E_200C_200F_206E_206C_200C_200B_200D_206E_202B_206D_202E_200C_206C_202A_200D_202B_202C_202C_202B_206E_206B_200F_206F_206B_206F_200E_200E_202E(step).HasValue) ? 1303320950 : 1303320948); - continue; - IL_055a: - num2 = ((!flag) ? 1303320953 : 1303320959); - continue; - IL_0143: - num2 = (((uint)(eInteractionType - 30) > 1u) ? 1303320936 : 1303320920); - continue; - IL_045a: - num2 = (_206C_206A_202B_200F_206A_202D_206D_200C_200F_206C_202A_200D_202A_206F_206C_206E_202A_206C_202B_202A_202B_206A_206C_200D_206E_206F_202A_200B_202D_200E_200C_200E_206F_202E_200F_200D_200E_206C_202B_206B_202E(step).HasValue ? 1303320946 : 1303320922); - continue; - IL_052e: - num2 = ((_200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(step) != EInteractionType.CompleteQuest) ? 1303320921 : 1303320935); - continue; - IL_01c7: - num2 = ((!factory.configuration.Advanced.PreventQuestCompletion) ? 1303320921 : 1303320938); - continue; - IL_0165: - num2 = (factory.configuration.General.AutoSnipe ? 1303320946 : 1303320928); - continue; - IL_04e7: - _202C_202D_202C_200D_202E_206C_206A_202C_200B_202C_202B_202A_202D_202D_200B_200B_206B_200F_202E_202C_202D_206B_206F_202B_200C_200D_202C_206E_202A_202E_202A_200F_200F_202B_202B_200B_202E_202D_202E_202A_202E((object)_206C_206A_202B_200F_206A_202D_206D_200C_200F_206C_202A_200D_202A_206F_206C_206E_202A_206C_202B_202A_202B_206A_206C_200D_206E_206F_202A_200B_202D_200E_200C_200E_206F_202E_200F_200D_200E_206C_202B_206B_202E(step), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-751408309)); - num2 = ((_206F_200D_202A_202B_206B_200D_200B_200D_206D_206B_202B_202E_206E_202A_200D_206C_206F_202D_200F_206A_202B_202D_202A_202B_206E_206A_200F_202C_206D_202D_206A_206C_206C_202C_206D_202B_200B_200D_206C_200F_202E(sequence) != 0) ? 1303320956 : 1303320945); - continue; - IL_03ed: - num2 = ((_200C_200F_206F_206A_206D_202A_202D_202E_202C_200F_206E_206C_206D_200E_200C_206F_206A_200C_202D_202E_200C_202A_202B_206A_200E_202C_200D_206B_206F_200E_206E_200E_202D_206D_200E_206D_206B_200F_202A_202C_202E(step) == null) ? 1303320940 : 1303320957); - continue; - end_IL_002c: - break; - } - goto case 0; - IL_0611: - _003C_003E1__state = -1; - num2 = 1303320956; - goto IL_002c; - end_IL_000f: - break; - } - _003C_003E1__state = -1; - return false; - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _206C_200D_206A_206E_206E_206C_200B_206A_202B_202E_200D_206C_206D_200C_200D_200E_200F_200D_200B_202A_206D_202D_206B_206D_202B_206E_206A_200D_206D_202A_200F_206E_206A_200F_202D_200E_206C_206F_202E_206F_202E(); - } - - [DebuggerHidden] - IEnumerator<ITask> IEnumerable<ITask>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? (-97785381) : (-97785384)); - _003CCreateAllTasks_003Ed__2 _003CCreateAllTasks_003Ed__ = default(_003CCreateAllTasks_003Ed__2); - while (true) - { - int num2 = num; - int num3 = -97785383; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - _003C_003E1__state = 0; - _003CCreateAllTasks_003Ed__ = this; - num = -97785379; - break; - case 4: - _003CCreateAllTasks_003Ed__.quest = _003C_003E3__quest; - _003CCreateAllTasks_003Ed__.sequence = _003C_003E3__sequence; - _003CCreateAllTasks_003Ed__.step = _003C_003E3__step; - return _003CCreateAllTasks_003Ed__; - case 0: - num = -97785384; - break; - case 1: - num = ((_003C_003El__initialThreadId != _202C_206C_202A_200B_206B_206D_202B_202B_206D_200F_200E_206B_202D_206F_202D_202D_200D_202D_200C_202E_202E_202C_202D_202D_206E_206E_206D_206C_206B_206B_200E_200E_202C_202A_206D_206B_202E_200E_206D_206F_202E()) ? (-97785381) : (-97785382)); - break; - case 2: - _003CCreateAllTasks_003Ed__ = new _003CCreateAllTasks_003Ed__2(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = -97785379; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ITask>)this).GetEnumerator(); - } - - static int _202C_206C_202A_200B_206B_206D_202B_202B_206D_200F_200E_206B_202D_206F_202D_202D_200D_202D_200C_202E_202E_202C_202D_202D_206E_206E_206D_206C_206B_206B_200E_200E_202C_202A_206D_206B_202E_200E_206D_206F_202E() - { - return Environment.CurrentManagedThreadId; - } - - static EInteractionType _200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static EEmote? _206F_206C_206E_206F_202B_202C_206A_206B_202C_200D_202E_206D_206F_200E_200D_200E_202B_200C_202D_206B_202E_206E_206E_200C_202E_206D_206E_206B_206B_200B_200C_206E_206E_200F_202E_206C_206D_200C_202B_202C_202E(QuestStep P_0) - { - return P_0.Emote; - } - - static ChatMessage _200C_200F_206F_206A_206D_202A_202D_202E_202C_200F_206E_206C_206D_200E_200C_206F_206A_200C_202D_202E_200C_202A_202B_206A_200E_202C_200D_206B_206F_200E_206E_200E_202D_206D_200E_206D_206B_200F_202A_202C_202E(QuestStep P_0) - { - return P_0.ChatMessage; - } - - static uint? _200F_200C_200F_206C_206B_202A_206C_206E_202D_206C_200B_206E_200C_200F_206E_206C_200C_200B_200D_206E_202B_206D_202E_200C_206C_202A_200D_202B_202C_202C_202B_206E_206B_200F_206F_206B_206F_200E_200E_202E(QuestStep P_0) - { - return P_0.ItemId; - } - - static uint? _206C_206A_202B_200F_206A_202D_206D_200C_200F_206C_202A_200D_202A_206F_206C_206E_202A_206C_202B_202A_202B_206A_206C_200D_206E_206F_202A_200B_202D_200E_200C_200E_206F_202E_200F_200D_200E_206C_202B_206B_202E(QuestStep P_0) - { - return P_0.DataId; - } - - static byte? _200E_202D_200F_202C_202D_200D_202C_200E_200E_202B_206B_206A_202D_206D_202C_206A_206B_200F_202E_202D_202B_206C_202D_200F_200D_202A_200C_202C_200F_206B_206B_206A_202E_202A_200E_202C_200F_202E_206E_202A_202E(QuestStep P_0) - { - return P_0.TaxiStandId; - } - - static void _202C_202D_202C_200D_202E_206C_206A_202C_200B_202C_202B_202A_202D_202D_200B_200B_206B_200F_202E_202C_202D_206B_206F_202B_200C_200D_202C_206E_202A_202E_202A_200F_200F_202B_202B_200B_202E_202D_202E_202A_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static byte _206F_200D_202A_202B_206B_200D_200B_200D_206D_206B_202B_202E_206E_202A_200D_206C_206F_202D_200F_206A_202B_202D_202A_202B_206E_206A_200F_202C_206D_202D_206A_206C_206C_202C_206D_202B_200B_200D_206C_200F_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - - static List<QuestStep> _206D_202D_206B_206E_200F_202A_206B_202A_200D_206D_200B_200F_200B_202C_206B_206E_202A_206D_200E_200F_200F_200B_202D_200E_200B_200D_200C_200D_200B_206B_202A_206F_206F_206E_206C_200E_200E_206D_206A_202E_202E(QuestSequence P_0) - { - return P_0.Steps; - } - - static bool _200D_202B_200D_202B_206A_200C_202A_202E_206D_200D_202C_206C_206D_206C_206F_200B_206F_206B_202C_206E_200C_206E_202C_206C_202B_200B_200C_206B_200C_202C_202B_206F_206B_200C_200B_206B_202B_200B_206A_206A_202E(QuestStep P_0) - { - return P_0.IgnoreQuestMarker; - } - - static ushort? _206B_202D_206E_202B_200C_200F_202D_206B_200D_206E_206F_206C_202B_206A_202A_200B_202B_200C_202A_206C_200F_200E_202C_200D_202C_202B_206A_202A_206A_202D_206B_206E_202D_200D_206D_202D_202D_206C_202A_206E_202E(QuestStep P_0) - { - return P_0.TargetTerritoryId; - } - - static SkipConditions _200F_206F_206D_202B_206C_206D_200C_202B_202E_200D_200E_206E_200E_206A_202B_202E_200B_202E_200F_206A_206A_206E_206F_202C_202C_206A_200F_202C_202A_206B_200E_206E_202A_200E_202A_202A_200D_206C_202C_200E_202E(QuestStep P_0) - { - return P_0.SkipConditions; - } - - static SkipStepConditions _202B_206D_202B_206E_206C_200F_202D_202C_206B_206D_202B_206B_202D_206D_200D_202C_206F_206E_202A_206B_206A_202B_200E_200D_206E_202E_202C_206A_206C_206F_206D_206F_202C_206A_202A_200E_202C_206E_202A_206A_202E(SkipConditions P_0) - { - return P_0.StepIf; - } - - static bool _206E_200F_206F_202C_206A_206F_206B_206B_206F_206B_206C_200C_200C_200D_202E_202E_206B_202D_206D_200B_202C_200D_206A_206B_200E_200C_200D_200D_202E_206A_202A_206A_200D_206E_206C_200C_202D_202C_200C_200D_202E(SkipStepConditions P_0) - { - return P_0.Never; - } - - static uint? _200D_206F_200B_200C_200B_202E_200B_206C_206D_202E_206C_206D_200F_206B_202B_206C_200D_202E_200C_200D_202A_200D_200F_202A_206C_202B_200F_200E_202D_200B_200B_206A_202E_200F_206D_200E_200D_206E_202C_206E_202E(QuestStep P_0) - { - return P_0.PickUpItemId; - } - - static GCPurchaseInfo _202E_200B_206E_206A_206B_202B_206E_200F_200F_202C_200D_202B_202B_202A_200B_206F_200D_206B_200B_200F_206F_202E_200D_200C_200D_200C_200F_200D_202A_206F_206D_206E_206D_200C_200C_202C_206B_200D_206B_200E_202E(QuestStep P_0) - { - return P_0.GCPurchase; - } - - static uint _202C_200E_206A_202D_202B_202C_202B_202E_200F_206E_200F_202A_202A_200B_200F_200B_206D_200C_202A_206C_200F_206F_206C_206E_202B_206D_200E_206A_202E_200D_202C_206F_202E_202A_206C_206C_206F_206D_202E_200D_202E(GCPurchaseInfo P_0) - { - return P_0.ItemId; - } - - static SkipStepConditions _202C_200D_202E_202A_206A_206B_206C_202E_206F_206D_206A_206C_206E_206D_206A_206A_200F_202E_206A_202A_200F_202A_200D_206D_206A_206F_202D_206E_206C_200E_202B_206E_202D_206D_200F_206E_206D_202B_206A_206E_202E(SkipConditions P_0) - { - return P_0.StepIf; - } - - static List<QuestWorkValue> _206D_206A_206C_202A_202C_206D_206F_206D_206D_202B_200E_202A_200E_202B_206B_200E_200E_206B_202C_206D_206C_206C_206E_202E_200C_206C_202B_200E_206E_206F_200F_202B_200D_200B_200C_202B_206F_206E_206F_202E_202E(QuestStep P_0) - { - return P_0.CompletionQuestVariablesFlags; - } - - static int? _200B_200F_200F_200B_200B_206C_202D_206C_200F_206D_200B_202C_202A_206C_206F_206E_206A_202D_200F_206D_206B_202D_200F_202A_200B_206A_202B_206C_202D_202D_202A_206C_202D_206B_206E_202A_200C_200D_202A_200C_202E(QuestStep P_0) - { - return P_0.ItemCount; - } - - static NotSupportedException _206C_200D_206A_206E_206E_206C_200B_206A_202B_202E_200D_206C_206D_200C_200D_200E_200F_200D_200B_202A_206D_202D_206B_206D_202B_206E_206A_200D_206D_202A_200F_206E_206A_200F_202D_200E_206C_206F_202E_206F_202E() - { - return new NotSupportedException(); - } - } - public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - bool flag = default(bool); - while (true) + EInteractionType interactionType = step.InteractionType; + if ((interactionType == EInteractionType.SinglePlayerDuty || (uint)(interactionType - 30) <= 1u) ? true : false) { - EInteractionType eInteractionType = _003CCreateAllTasks_003Ed__2._200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(step); - int num = ((eInteractionType == EInteractionType.SinglePlayerDuty) ? 1303320920 : 1303320944); - while (true) + if ((step.InteractionType == EInteractionType.CompleteQuest && configuration.Advanced.PreventQuestCompletion) || step.Emote.HasValue || step.ChatMessage != null || step.ItemId.HasValue || !step.DataId.HasValue) { - int num2 = num; - int num3 = 1303320952; - int num4 = num2; - uint value; - EInteractionType interactionType; - int skipMarkerCheck; - uint? num5; - uint? pickUpItemId; - byte? taxiStandId; - SkipConditions skipConditions; - SkipStepConditions skipConditions2; - List<QuestWorkValue> completionQuestVariablesFlags; - uint? purchaseItemId; - int purchaseItemCount; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 21: - num = 1303320947; - continue; - case 20: - num = ((!_003CCreateAllTasks_003Ed__2._200F_200C_200F_206C_206B_202A_206C_206E_202D_206C_200B_206E_200C_200F_206E_206C_200C_200B_200D_206E_202B_206D_202E_200C_206C_202A_200D_202B_202C_202C_202B_206E_206B_200F_206F_206B_206F_200E_200E_202E(step).HasValue) ? 1303320950 : 1303320948); - continue; - case 12: - yield break; - case 15: - num = ((_003CCreateAllTasks_003Ed__2._200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(step) != EInteractionType.UnlockTaxiStand) ? 1303320942 : 1303320937); - continue; - case 28: - yield break; - case 8: - num = (((uint)(eInteractionType - 30) > 1u) ? 1303320936 : 1303320920); - continue; - case 26: - num = (configuration.General.AutoSnipe ? 1303320946 : 1303320928); - continue; - case 9: - num = ((_003CCreateAllTasks_003Ed__2._206D_202D_206B_206E_200F_202A_206B_202A_200D_206D_200B_200F_200B_202C_206B_206E_202A_206D_200E_200F_200F_200B_202D_200E_200B_200D_200C_200D_200B_206B_202A_206F_206F_206E_206C_200E_200E_206D_206A_202E_202E(sequence).IndexOf(step) != 0) ? 1303320956 : 1303320954); - continue; - case 23: - yield break; - case 31: - num = ((!configuration.Advanced.PreventQuestCompletion) ? 1303320921 : 1303320938); - continue; - case 4: - value = _003CCreateAllTasks_003Ed__2._206C_206A_202B_200F_206A_202D_206D_200C_200F_206C_202A_200D_202A_206F_206C_206E_202A_206C_202B_202A_202B_206A_206C_200D_206E_206F_202A_200B_202D_200E_200C_200E_206F_202E_200F_200D_200E_206C_202B_206B_202E(step).Value; - interactionType = _003CCreateAllTasks_003Ed__2._200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(step); - if (!_003CCreateAllTasks_003Ed__2._200D_202B_200D_202B_206A_200C_202A_202E_206D_200D_202C_206C_206D_206C_206F_200B_206F_206B_202C_206E_200C_206E_202C_206C_202B_200B_200C_206B_200C_202C_202B_206F_206B_200C_200B_206B_202B_200B_206A_206A_202E(step) && !_003CCreateAllTasks_003Ed__2._206B_202D_206E_202B_200C_200F_202D_206B_200D_206E_206F_206C_202B_206A_202A_200B_202B_200C_202A_206C_200F_200E_202C_200D_202C_202B_206A_202A_206A_202D_206B_206E_202D_200D_206D_202D_202D_206C_202A_206E_202E(step).HasValue) - { - SkipConditions skipConditions3 = _003CCreateAllTasks_003Ed__2._200F_206F_206D_202B_206C_206D_200C_202B_202E_200D_200E_206E_200E_206A_202B_202E_200B_202E_200F_206A_206A_206E_206F_202C_202C_206A_200F_202C_202A_206B_200E_206E_202A_200E_202A_202A_200D_206C_202C_200E_202E(step); - if (skipConditions3 != null) - { - SkipStepConditions skipStepConditions = _003CCreateAllTasks_003Ed__2._202B_206D_202B_206E_206C_200F_202D_202C_206B_206D_202B_206B_202D_206D_200D_202C_206F_206E_202A_206B_206A_202B_200E_200D_206E_202E_202C_206A_206C_206F_206D_206F_202C_206A_202A_200E_202C_206E_202A_206A_202E(skipConditions3); - if (skipStepConditions != null && _003CCreateAllTasks_003Ed__2._206E_200F_206F_202C_206A_206F_206B_206B_206F_206B_206C_200C_200C_200D_202E_202E_206B_202D_206D_200B_202C_200D_206A_206B_200E_200C_200D_200D_202E_206A_202A_206A_200D_206E_206C_200C_202D_202C_200C_200D_202E(skipStepConditions)) - { - goto IL_02b1; - } - } - if (_003CCreateAllTasks_003Ed__2._200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(step) != EInteractionType.PurchaseItem) - { - skipMarkerCheck = ((_003CCreateAllTasks_003Ed__2._206C_206A_202B_200F_206A_202D_206D_200C_200F_206C_202A_200D_202A_206F_206C_206E_202A_206C_202B_202A_202B_206A_206C_200D_206E_206F_202A_200B_202D_200E_200C_200E_206F_202E_200F_200D_200E_206C_202B_206B_202E(step) == 1052475) ? 1 : 0); - goto IL_02b2; - } - } - goto IL_02b1; - case 17: - num = (_003CCreateAllTasks_003Ed__2._200E_202D_200F_202C_202D_200D_202C_200E_200E_202B_206B_206A_202D_206D_202C_206A_206B_200F_202E_202D_202B_206C_202D_200F_200D_202A_200C_202C_200F_206B_206B_206A_202E_202A_200E_202C_200F_202E_206E_202A_202E(step).HasValue ? 1303320946 : 1303320939); - continue; - case 27: - yield break; - case 29: - yield break; - case 24: - yield break; - case 18: - yield break; - case 30: - num = ((_003CCreateAllTasks_003Ed__2._200C_200F_206F_206A_206D_202A_202D_202E_202C_200F_206E_206C_206D_200E_200C_206F_206A_200C_202D_202E_200C_202A_202B_206A_200E_202C_200D_206B_206F_200E_206E_200E_202D_206D_200E_206D_206B_200F_202A_202C_202E(step) == null) ? 1303320940 : 1303320957); - continue; - case 19: - yield break; - case 3: - break; - case 5: - yield break; - case 32: - flag = true; - num = 1303320958; - continue; - case 0: - num = (_003CCreateAllTasks_003Ed__2._206C_206A_202B_200F_206A_202D_206D_200C_200F_206C_202A_200D_202A_206F_206C_206E_202A_206C_202B_202A_202B_206A_206C_200D_206E_206F_202A_200B_202D_200E_200C_200E_206F_202E_200F_200D_200E_206C_202B_206B_202E(step).HasValue ? 1303320946 : 1303320922); - continue; - case 22: - num = ((_003CCreateAllTasks_003Ed__2._200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(step) == EInteractionType.Interact) ? 1303320946 : 1303320932); - continue; - case 11: - yield break; - case 33: - num = ((!_003CCreateAllTasks_003Ed__2._206F_206C_206E_206F_202B_202C_206A_206B_202C_200D_202E_206D_206F_200E_200D_200E_202B_200C_202D_206B_202E_206E_206E_200C_202E_206D_206E_206B_206B_200B_200C_206E_206E_200F_202E_206C_206D_200C_202B_202C_202E(step).HasValue) ? 1303320934 : 1303320943); - continue; - case 10: - _003CCreateAllTasks_003Ed__2._202C_202D_202C_200D_202E_206C_206A_202C_200B_202C_202B_202A_202D_202D_200B_200B_206B_200F_202E_202C_202D_206B_206F_202B_200C_200D_202C_206E_202A_202E_202A_200F_200F_202B_202B_200B_202E_202D_202E_202A_202E((object)_003CCreateAllTasks_003Ed__2._206C_206A_202B_200F_206A_202D_206D_200C_200F_206C_202A_200D_202A_206F_206C_206E_202A_206C_202B_202A_202B_206A_206C_200D_206E_206F_202A_200B_202D_200E_200C_200E_206F_202E_200F_200D_200E_206C_202B_206B_202E(step), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-751408309)); - num = ((_003CCreateAllTasks_003Ed__2._206F_200D_202A_202B_206B_200D_200B_200D_206D_206B_202B_202E_206E_202A_200D_206C_206F_202D_200F_206A_202B_202D_202A_202B_206E_206A_200F_202C_206D_202D_206A_206C_206C_202C_206D_202B_200B_200D_206C_200F_202E(sequence) != 0) ? 1303320956 : 1303320945); - continue; - case 7: - num = ((_003CCreateAllTasks_003Ed__2._200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(step) != EInteractionType.CompleteQuest) ? 1303320921 : 1303320935); - continue; - case 34: - yield break; - case 6: - num = ((!flag) ? 1303320953 : 1303320959); - continue; - case 1: - num = ((_003CCreateAllTasks_003Ed__2._200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(step) != EInteractionType.PurchaseItem) ? 1303320949 : 1303320952); - continue; - case 2: - yield return new WaitAtEnd.WaitDelay(); - goto case 25; - case 13: - num = ((_003CCreateAllTasks_003Ed__2._200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(step) != EInteractionType.Snipe) ? 1303320951 : 1303320930); - continue; - case 14: - num = (_003CCreateAllTasks_003Ed__2._206C_206A_202B_200F_206A_202D_206D_200C_200F_206C_202A_200D_202A_206F_206C_206E_202A_206C_202B_202A_202B_206A_206C_200D_206E_206F_202A_200B_202D_200E_200C_200E_206F_202E_200F_200D_200E_206C_202B_206B_202E(step).HasValue ? 1303320946 : 1303320931); - continue; - case 25: - num = 1303320956; - continue; - case 16: - { - flag = false; - num = 1303320958; - continue; - } - IL_02b1: - skipMarkerCheck = 1; - goto IL_02b2; - IL_02b2: - num5 = _003CCreateAllTasks_003Ed__2._200D_206F_200B_200C_200B_202E_200B_206C_206D_202E_206C_206D_200F_206B_202B_206C_200D_202E_200C_200D_202A_200D_200F_202A_206C_202B_200F_200E_202D_200B_200B_206A_202E_200F_206D_200E_200D_206E_202C_206E_202E(step); - if (!num5.HasValue) - { - GCPurchaseInfo gCPurchaseInfo = _003CCreateAllTasks_003Ed__2._202E_200B_206E_206A_206B_202B_206E_200F_200F_202C_200D_202B_202B_202A_200B_206F_200D_206B_200B_200F_206F_202E_200D_200C_200D_200C_200F_200D_202A_206F_206D_206E_206D_200C_200C_202C_206B_200D_206B_200E_202E(step); - pickUpItemId = ((gCPurchaseInfo != null) ? new uint?(_003CCreateAllTasks_003Ed__2._202C_200E_206A_202D_202B_202C_202B_202E_200F_206E_200F_202A_202A_200B_200F_200B_206D_200C_202A_206C_200F_206F_206C_206E_202B_206D_200E_206A_202E_200D_202C_206F_202E_202A_206C_206C_206F_206D_202E_200D_202E(gCPurchaseInfo)) : ((uint?)null)); - } - else - { - pickUpItemId = num5; - } - taxiStandId = _003CCreateAllTasks_003Ed__2._200E_202D_200F_202C_202D_200D_202C_200E_200E_202B_206B_206A_202D_206D_202C_206A_206B_200F_202E_202D_202B_206C_202D_200F_200D_202A_200C_202C_200F_206B_206B_206A_202E_202A_200E_202C_200F_202E_206E_202A_202E(step); - skipConditions = _003CCreateAllTasks_003Ed__2._200F_206F_206D_202B_206C_206D_200C_202B_202E_200D_200E_206E_200E_206A_202B_202E_200B_202E_200F_206A_206A_206E_206F_202C_202C_206A_200F_202C_202A_206B_200E_206E_202A_200E_202A_202A_200D_206C_202C_200E_202E(step); - skipConditions2 = ((skipConditions != null) ? _003CCreateAllTasks_003Ed__2._202C_200D_202E_202A_206A_206B_206C_202E_206F_206D_206A_206C_206E_206D_206A_206A_200F_202E_206A_202A_200F_202A_200D_206D_206A_206F_202D_206E_206C_200E_202B_206E_202D_206D_200F_206E_206D_202B_206A_206E_202E(skipConditions) : null); - completionQuestVariablesFlags = _003CCreateAllTasks_003Ed__2._206D_206A_206C_202A_202C_206D_206F_206D_206D_202B_200E_202A_200E_202B_206B_200E_200E_206B_202C_206D_206C_206C_206E_202E_200C_206C_202B_200E_206E_206F_200F_202B_200D_200B_200C_202B_206F_206E_206F_202E_202E(step); - purchaseItemId = ((_003CCreateAllTasks_003Ed__2._200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(step) == EInteractionType.PurchaseItem) ? _003CCreateAllTasks_003Ed__2._200F_200C_200F_206C_206B_202A_206C_206E_202D_206C_200B_206E_200C_200F_206E_206C_200C_200B_200D_206E_202B_206D_202E_200C_206C_202A_200D_202B_202C_202C_202B_206E_206B_200F_206F_206B_206F_200E_200E_202E(step) : ((uint?)null)); - purchaseItemCount = ((_003CCreateAllTasks_003Ed__2._200C_200F_206C_206A_200E_206E_206A_200F_206A_200E_206B_200C_200E_206D_202C_206F_202E_206C_202E_200F_206B_200E_202A_202B_202B_200D_200F_206E_200C_206A_200B_206E_202A_202D_202D_206D_202C_206D_206D_206F_202E(step) == EInteractionType.PurchaseItem) ? _003CCreateAllTasks_003Ed__2._200B_200F_200F_200B_200B_206C_202D_206C_200F_206D_200B_202C_202A_206C_206F_206E_206A_202D_200F_206D_206B_202D_200F_202A_200B_206A_202B_206C_202D_202D_202A_206C_202D_206B_206E_202A_200C_200D_202A_200C_202E(step).GetValueOrDefault() : 0); - yield return new Task(value, quest, interactionType, (byte)skipMarkerCheck != 0, pickUpItemId, taxiStandId, skipConditions2, completionQuestVariablesFlags, null, purchaseItemId, purchaseItemCount); - yield break; - } - break; + yield break; } } - } - - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); + else if (step.InteractionType == EInteractionType.PurchaseItem) + { + if (!step.DataId.HasValue) + { + yield break; + } + } + else if (step.InteractionType == EInteractionType.Snipe) + { + if (!configuration.General.AutoSnipe) + { + yield break; + } + } + else if (step.InteractionType == EInteractionType.UnlockTaxiStand) + { + if (!step.TaxiStandId.HasValue) + { + yield break; + } + } + else if (step.InteractionType != EInteractionType.Interact) + { + yield break; + } + ArgumentNullException.ThrowIfNull(step.DataId, "step.DataId"); + if (sequence.Sequence == 0 && sequence.Steps.IndexOf(step) == 0) + { + yield return new WaitAtEnd.WaitDelay(); + } + uint value = step.DataId.Value; + EInteractionType interactionType2 = step.InteractionType; + int skipMarkerCheck; + if (!step.IgnoreQuestMarker && !step.TargetTerritoryId.HasValue) + { + SkipConditions skipConditions = step.SkipConditions; + if (skipConditions != null) + { + SkipStepConditions stepIf = skipConditions.StepIf; + if (stepIf != null && stepIf.Never) + { + goto IL_024a; + } + } + if (step.InteractionType != EInteractionType.PurchaseItem) + { + skipMarkerCheck = ((step.DataId == 1052475) ? 1 : 0); + goto IL_024b; + } + } + goto IL_024a; + IL_024a: + skipMarkerCheck = 1; + goto IL_024b; + IL_024b: + uint? pickUpItemId = step.PickUpItemId ?? step.GCPurchase?.ItemId; + byte? taxiStandId = step.TaxiStandId; + SkipStepConditions? skipConditions2 = step.SkipConditions?.StepIf; + List<QuestWorkValue?> completionQuestVariablesFlags = step.CompletionQuestVariablesFlags; + uint? purchaseItemId = ((step.InteractionType == EInteractionType.PurchaseItem) ? step.ItemId : ((uint?)null)); + int purchaseItemCount = ((step.InteractionType == EInteractionType.PurchaseItem) ? step.ItemCount.GetValueOrDefault() : 0); + yield return new Task(value, quest, interactionType2, (byte)skipMarkerCheck != 0, pickUpItemId, taxiStandId, skipConditions2, completionQuestVariablesFlags, null, purchaseItemId, purchaseItemCount); } } internal sealed record Task : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206E_206D_202B_202E_202A_206D_200C_200D_206F_200F_206D_206A_200C_202A_202C_206D_202A_206F_200E_206D_200D_202D_200C_206F_206D_206F_202B_206D_200B_206B_206D_206D_206C_206D_206E_206A_200B_200E_206D_200C_202E(typeof(Task).TypeHandle); - } - } - public uint DataId { get; init; } public Quest? Quest { get; init; } @@ -717,123 +146,9 @@ internal static class Interact return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(10, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1557612731)); - defaultInterpolatedStringHandler.AppendFormatted(HasCompletionQuestVariablesFlags ? global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1980443466) : global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1200342830)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1208656614)); - defaultInterpolatedStringHandler.AppendFormatted(DataId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202B_200E_202C_206D_200C_206A_200F_200C_206F_202C_202D_200D_206E_202B_206F_200C_206E_206D_206C_206F_206C_200D_206D_200E_200F_202E_200D_206E_202B_202A_202A_206F_200D_202A_200E_200C_200D_206B_202A_202B_202E(); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1430532645)); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, DataId.ToString()); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1099583199)); - _202B_202C_200E_206D_206D_202E_202A_206F_202A_206F_202B_206A_202B_206C_206F_200B_202D_200F_200E_202C_202A_202B_200C_206C_200F_200B_206D_206A_200F_206C_200F_206C_202A_202B_206C_206D_206C_206B_202C_206D_202E(builder, (object?)Quest); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(885106038)); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, InteractionType.ToString()); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1480615428)); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, SkipMarkerCheck.ToString()); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-272408231)); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, PickUpItemId.ToString()); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1754464364)); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, TaxiStandId.ToString()); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(904394934)); - _202B_202C_200E_206D_206D_202E_202A_206F_202A_206F_202B_206A_202B_206C_206F_200B_202D_200F_200E_202C_202A_202B_200C_206C_200F_200B_206D_206A_200F_206C_200F_206C_202A_202B_206C_206D_206C_206B_202C_206D_202E(builder, (object?)SkipConditions); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(615050816)); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, CompletionStatusId.ToString()); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2064962175)); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, PurchaseItemId.ToString()); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1758600695)); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, PurchaseItemCount.ToString()); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-755497586)); - _202B_202C_200E_206D_206D_202E_202A_206F_202A_206F_202B_206A_202B_206C_206F_200B_202D_200F_200E_202C_202A_202B_200C_206C_200F_200B_206D_206A_200F_206C_200F_206C_202A_202B_206C_206D_206C_206B_202C_206D_202E(builder, (object?)CompletionQuestVariablesFlags); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1206975050)); - _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(builder, HasCompletionQuestVariablesFlags.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? (-1634206361) : (-1634206353)); - while (true) - { - int num2 = num; - int num3 = -1634206354; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 15: - num = ((!EqualityComparer<byte?>.Default.Equals(TaxiStandId, other.TaxiStandId)) ? (-1634206356) : (-1634206338)); - break; - case 4: - num = ((!EqualityComparer<Questionable.Model.Quest>.Default.Equals(Quest, other.Quest)) ? (-1634206356) : (-1634206366)); - break; - case 7: - return EqualityComparer<bool>.Default.Equals(HasCompletionQuestVariablesFlags, other.HasCompletionQuestVariablesFlags); - case 6: - num = ((!EqualityComparer<uint>.Default.Equals(DataId, other.DataId)) ? (-1634206356) : (-1634206358)); - break; - case 8: - num = ((!EqualityComparer<int>.Default.Equals(PurchaseItemCount, other.PurchaseItemCount)) ? (-1634206356) : (-1634206363)); - break; - case 14: - num = ((!EqualityComparer<bool>.Default.Equals(SkipMarkerCheck, other.SkipMarkerCheck)) ? (-1634206356) : (-1634206364)); - break; - case 10: - num = ((!EqualityComparer<uint?>.Default.Equals(PickUpItemId, other.PickUpItemId)) ? (-1634206356) : (-1634206367)); - break; - case 0: - num = ((!EqualityComparer<uint?>.Default.Equals(PurchaseItemId, other.PurchaseItemId)) ? (-1634206356) : (-1634206362)); - break; - case 9: - return true; - case 12: - num = ((!EqualityComparer<EInteractionType>.Default.Equals(InteractionType, other.InteractionType)) ? (-1634206356) : (-1634206368)); - break; - case 1: - num = (((object)other == null) ? (-1634206356) : (-1634206355)); - break; - case 13: - num = ((!EqualityComparer<EStatus?>.Default.Equals(CompletionStatusId, other.CompletionStatusId)) ? (-1634206356) : (-1634206354)); - break; - case 2: - return false; - case 11: - num = ((!EqualityComparer<List<QuestWorkValue>>.Default.Equals(CompletionQuestVariablesFlags, other.CompletionQuestVariablesFlags)) ? (-1634206356) : (-1634206359)); - break; - case 16: - num = ((!EqualityComparer<SkipStepConditions>.Default.Equals(SkipConditions, other.SkipConditions)) ? (-1634206356) : (-1634206365)); - break; - case 3: - num = ((!_200E_202A_202D_200B_202E_200E_200E_202E_206A_200B_202C_206D_206A_202D_200E_206A_200B_202E_202A_206A_200E_202B_206E_202C_200F_206B_202A_206C_206D_202B_200C_206E_200D_200E_200F_206B_206F_202D_206D_206D_202E(EqualityContract, other.EqualityContract)) ? (-1634206356) : (-1634206360)); - break; - case 5: - num = -1634206353; - break; - } - } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); + return $"Interact{(HasCompletionQuestVariablesFlags ? "*" : "")}({DataId})"; } [CompilerGenerated] @@ -851,31 +166,6 @@ internal static class Interact PurchaseItemId = this.PurchaseItemId; PurchaseItemCount = this.PurchaseItemCount; } - - static Type? _206E_206D_202B_202E_202A_206D_200C_200D_206F_200F_206D_206A_200C_202A_202C_206D_202A_206F_200E_206D_200D_202D_200C_206F_206D_206F_202B_206D_200B_206B_206D_206D_206C_206D_206E_206A_200B_200E_206D_200C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _202B_200E_202C_206D_200C_206A_200F_200C_206F_202C_202D_200D_206E_202B_206F_200C_206E_206D_206C_206F_206C_200D_206D_200E_200F_202E_200D_206E_202B_202A_202A_206F_200D_202A_200E_200C_200D_206B_202A_202B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder? _200F_206A_200D_206D_200F_206B_202C_200D_200E_202E_202A_202C_202D_206D_200E_202D_200F_206A_202B_200E_206E_202C_206A_206D_206F_206D_200C_200B_206C_206E_206D_202A_202B_206B_202C_200B_200E_200D_206E_200E_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _202B_202C_200E_206D_206D_202E_202A_206F_202A_206F_202B_206A_202B_206C_206F_200B_202D_200F_200E_202C_202A_202B_200C_206C_200F_200B_206D_206A_200F_206C_200F_206C_202A_202B_206C_206D_206C_206B_202C_206D_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } - - static bool _200E_202A_202D_200B_202E_200E_200E_202E_206A_200B_202C_206D_206A_202D_200E_206A_200B_202E_202A_206A_200E_202B_206E_202C_200F_206B_202A_206C_206D_202B_200C_206E_200D_200E_200F_206B_206F_202D_206D_206D_202E(Type? P_0, Type? P_1) - { - return P_0 == P_1; - } } internal sealed class DoInteract(GameFunctions gameFunctions, QuestFunctions questFunctions, ShopController shopController, ICondition condition, ILogger<DoInteract> logger) : TaskExecutor<Task>(), IConditionChangeAware, ITaskExecutor @@ -905,7 +195,6 @@ internal static class Interact public EInteractionType InteractionType { get; set; } - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { InteractionType = base.Task.InteractionType; @@ -916,280 +205,176 @@ internal static class Interact _interactionAttempts = 0; _gatheringNodeMissingSince = 0L; IGameObject gameObject = gameFunctions.FindObjectByDataId(base.Task.DataId, null, warnIfMissing: false); - int num = ((gameObject != null) ? (-1137861430) : (-1137861440)); - SkipStepConditions skipConditions = default(SkipStepConditions); - while (true) + if (gameObject == null) { - int num2 = num; - int num3 = -1137861426; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (InteractionType == EInteractionType.Gather) { - case 8: - TriggerInteraction(gameObject); - return true; - case 14: - num = ((InteractionType != EInteractionType.Gather) ? (-1137861429) : (-1137861438)); - break; - case 4: - num = (_202E_200B_200B_200B_206B_202D_200B_200C_202D_200E_200C_206F_206F_200E_206D_200C_200D_202D_200F_200E_200B_206F_202D_202B_202D_200C_206F_200F_200B_206D_200C_202D_200C_200B_206D_200B_202D_200F_206B_200D_202E(gameObject) ? (-1137861437) : (-1137861427)); - break; - case 15: - _202E_200E_200E_200F_206A_202B_200C_206C_202A_202C_206C_202B_200C_206A_206E_202E_206F_200E_200C_206D_206E_206A_206F_202E_202B_200D_200F_206B_206F_206A_202B_206E_206E_202D_202E_206C_206E_200F_202D_206A_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1907014260), new object[1] { base.Task.DataId }); + _gatheringNodeMissingSince = Environment.TickCount64; + } + logger.LogDebug("Object with dataId {DataId} not found yet, waiting", base.Task.DataId); + return true; + } + if (!gameObject.IsTargetable) + { + SkipStepConditions skipConditions = base.Task.SkipConditions; + if (skipConditions != null && !skipConditions.Never && skipConditions.NotTargetable) + { + logger.LogDebug("Not interacting with {DataId} because it is not targetable (but skippable)", base.Task.DataId); return false; - case 1: - num = ((!HasAnyMarker(gameObject)) ? (-1137861435) : (-1137861434)); - break; - case 16: - num = ((_206C_206C_200C_206B_202E_206F_200D_200C_206E_200B_206A_206A_200C_202C_200C_200E_202B_206D_200B_202B_202D_206C_206B_202C_202D_202E_200B_202E_202C_206D_200F_206F_202E_200E_206D_206C_200F_202B_202B_202A_202E(gameObject) == Dalamud.Game.ClientState.Objects.Enums.ObjectKind.GatheringPoint) ? (-1137861432) : (-1137861433)); - break; - case 0: - num = ((!_202C_202A_202C_200B_206B_206A_202B_200E_206B_206B_200F_202C_202B_200D_202B_202E_206A_202B_206C_206A_200E_206F_206B_200F_206A_200C_202C_202E_200F_200C_202B_206E_202C_200D_206B_206B_206F_200E_202C_200C_202E(skipConditions)) ? (-1137861437) : (-1137861439)); - break; - case 2: - num = -1137861440; - break; - case 6: - num = ((!_202E_200B_200B_200B_206B_202D_200B_200C_202D_200E_200C_206F_206F_200E_206D_200C_200D_202D_200F_200E_200B_206F_202D_202B_202D_200C_206F_200F_200B_206D_200C_202D_200C_200B_206D_200B_202D_200F_206B_200D_202E(gameObject)) ? (-1137861435) : (-1137861425)); - break; - case 5: - _202E_200E_200E_200F_206A_202B_200C_206C_202A_202C_206C_202B_200C_206A_206E_202E_206F_200E_200C_206D_206E_206A_206F_202E_202B_200D_200F_206B_206F_206A_202B_206E_206E_202D_202E_206C_206E_200F_202D_206A_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1470799654), new object[1] { base.Task.DataId }); - return true; - case 12: - _gatheringNodeMissingSince = _202A_206D_202C_202B_200E_206E_200D_202B_206A_200F_202B_200D_200F_206B_200E_202E_202E_202E_200E_206F_202A_200B_200D_206F_202D_206F_206F_206F_200E_206A_202D_206C_206C_200F_202B_200F_200C_200B_206B_206A_202E(); - num = -1137861429; - break; - case 13: - num = (_202E_200B_200B_200B_206B_202D_200B_200C_202D_200E_200C_206F_206F_200E_206D_200C_200D_202D_200F_200E_200B_206F_202D_202B_202D_200C_206F_200F_200B_206D_200C_202D_200C_200B_206D_200B_202D_200F_206B_200D_202E(gameObject) ? (-1137861432) : (-1137861431)); - break; - case 7: - num = ((!_202D_200E_206B_200E_202E_206D_202A_206E_206E_202C_206A_206F_200D_200B_200B_200B_200E_202A_202E_206A_200D_206F_200B_202C_200B_206B_200F_206C_206B_206C_206C_202C_206D_202E_202A_206A_200D_200B_206C_206E_202E(condition, ConditionFlag.Mounted)) ? (-1137861432) : (-1137861410)); - break; - case 11: - return true; - case 3: - skipConditions = base.Task.SkipConditions; - num = ((skipConditions == null) ? (-1137861437) : (-1137861436)); - break; - case 10: - num = (_206D_206F_200D_202B_200B_202D_200C_202C_206E_202D_202B_200E_202A_200B_206C_206A_206D_200D_206C_200C_202B_200B_206C_206F_202D_202B_200F_200E_206B_200C_200F_200F_206A_202C_202C_206C_200B_200D_200B_206C_202E(skipConditions) ? (-1137861437) : (-1137861426)); - break; - case 9: - _202E_200E_200E_200F_206A_202B_200C_206C_202A_202C_206C_202B_200C_206A_206E_202E_206F_200E_200C_206D_206E_206A_206F_202E_202B_200D_200F_206B_206F_206A_202B_206E_206E_202D_202E_206C_206E_200F_202D_206A_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-114450363), new object[1] { base.Task.DataId }); - _needsUnmount = true; - gameFunctions.Unmount(); - _continueAt = _202A_206D_202C_202B_200E_206E_200D_202B_206A_200F_202B_200D_200F_206B_200E_202E_202E_202E_200E_206F_202A_200B_200D_206F_202D_206F_206F_206F_200E_206A_202D_206C_206C_200F_202B_200F_200C_200B_206B_206A_202E() + 1000; - return true; } } + if (!gameObject.IsTargetable && condition[ConditionFlag.Mounted] && gameObject.ObjectKind != Dalamud.Game.ClientState.Objects.Enums.ObjectKind.GatheringPoint) + { + logger.LogDebug("Preparing interaction for {DataId} by unmounting", base.Task.DataId); + _needsUnmount = true; + gameFunctions.Unmount(); + _continueAt = Environment.TickCount64 + 1000; + return true; + } + if (gameObject.IsTargetable && HasAnyMarker(gameObject)) + { + TriggerInteraction(gameObject); + return true; + } + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe override ETaskResult Update() { - int num = ((_202A_206D_202C_202B_200E_206E_200D_202B_206A_200F_202B_200D_200F_206B_200E_202E_202E_202E_200E_206F_202A_200B_200D_206F_202D_206F_206F_206F_200E_206A_202D_206C_206C_200F_202B_200F_200C_200B_206B_206A_202E() > _continueAt) ? 729824237 : 729824204); - EStatus? completionStatusId = default(EStatus?); - uint? num7 = default(uint?); - IGameObject gameObject = default(IGameObject); - QuestProgressInfo questProgressInfo = default(QuestProgressInfo); - byte? taxiStandId = default(byte?); - uint valueOrDefault = default(uint); - while (true) + if (Environment.TickCount64 <= _continueAt) { - int num2 = num; - int num3 = 729824194; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return ETaskResult.StillRunning; + } + if (_needsUnmount) + { + if (condition[ConditionFlag.Mounted]) { - case 45: - ResetProgressTimer(); - return ETaskResult.TaskComplete; - case 24: - return ETaskResult.TaskComplete; - case 40: - return ETaskResult.StillRunning; - case 15: - return ETaskResult.StillRunning; - case 0: - num = ((_interactionState != EInteractionState.InteractionConfirmed) ? 729824198 : 729824207); - break; - case 21: - num = ((base.ProgressContext == null) ? 729824198 : 729824233); - break; - case 44: - { - EStatus valueOrDefault3 = completionStatusId.GetValueOrDefault(); - num = ((!gameFunctions.HasStatus(valueOrDefault3)) ? 729824193 : 729824239); - break; - } - case 3: - num7 = base.Task.PickUpItemId; - num = ((!num7.HasValue) ? 729824195 : 729824228); - break; - case 27: - num = ((!_202D_200E_206B_200E_202E_206D_202A_206E_206E_202C_206A_206F_200D_200B_200B_200B_200E_202A_202E_206A_200D_206F_200B_202C_200B_206B_200F_206C_206B_206C_206C_202C_206D_202E_202A_206A_200D_200B_206C_206E_202E(condition, ConditionFlag.Mounted)) ? 729824199 : 729824222); - break; - case 6: - _202E_200E_200E_200F_206A_202B_200C_206C_202A_202C_206C_202B_200C_206A_206E_202E_206F_200E_200C_206D_206E_206A_206F_202E_202B_200D_200F_206B_206F_206A_202B_206E_206E_202D_202E_206C_206E_200F_202D_206A_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(482979701), new object[1] { base.Task.DataId }); - return ETaskResult.SkipRemainingTasksForStep; - case 5: - _needsUnmount = false; - num = 729824197; - break; - case 34: - _202B_202B_206C_206D_202A_206C_206C_206A_206F_206D_206D_200B_206D_200D_206C_202C_202A_206E_200B_202E_200B_200D_206C_202D_202A_200E_202E_200D_206A_200C_202B_200B_206A_202E_202C_200E_200B_206B_206D_202E_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1503004360), new object[2] - { - base.Task.DataId, - _interactionAttempts - }); - return ETaskResult.RetryStep; - case 32: - num = ((!_202D_200E_206B_200E_202E_206D_202A_206E_206E_202C_206A_206F_200D_200B_200B_200B_200E_202A_202E_206A_200D_206F_200B_202C_200B_206B_200F_206C_206B_206C_206C_202C_206D_202E_202A_206A_200D_200B_206C_206E_202E(condition, ConditionFlag.Gathering)) ? 729824232 : 729824230); - break; - case 8: - _gatheringNodeMissingSince = 0L; - num = (HasAnyMarker(gameObject) ? 729824192 : 729824234); - break; - case 33: - num = ((!QuestWorkUtils.MatchesQuestWork(base.Task.CompletionQuestVariablesFlags, questProgressInfo)) ? 729824198 : 729824201); - break; - case 42: - num = ((Quest == null) ? 729824215 : 729824206); - break; - case 17: - num = ((!shopController.IsOpen) ? 729824198 : 729824205); - break; - case 46: - num = (base.ProgressContext.WasSuccessful() ? 729824207 : 729824194); - break; - case 4: - gameObject = gameFunctions.FindObjectByDataId(base.Task.DataId, null, warnIfMissing: false); - num = ((gameObject == null) ? 729824220 : 729824243); - break; - case 36: - ResetProgressTimer(); - return ETaskResult.TaskComplete; - case 14: - return ETaskResult.StillRunning; - case 9: - ResetProgressTimer(); - return ETaskResult.TaskComplete; - case 30: - num = ((InteractionType != EInteractionType.Gather) ? 729824242 : 729824221); - break; - case 35: - _gatheringNodeMissingSince = _202A_206D_202C_202B_200E_206E_200D_202B_206A_200F_202B_200D_200F_206B_200E_202E_202E_202E_200E_206F_202A_200B_200D_206F_202D_206F_206F_206F_200E_206A_202D_206C_206C_200F_202B_200F_200C_200B_206B_206A_202E(); - num = 729824231; - break; - case 39: - _continueAt = _202A_206D_202C_202B_200E_206E_200D_202B_206A_200F_202B_200D_200F_206B_200E_202E_202E_202E_200E_206F_202A_200B_200D_206F_202D_206F_206F_206F_200E_206A_202D_206C_206C_200F_202B_200F_200C_200B_206B_206A_202E() + 200; - _delayedFinalCheck = true; - return ETaskResult.StillRunning; - case 47: - num = ((!_needsUnmount) ? 729824197 : 729824217); - break; - case 7: - completionStatusId = base.Task.CompletionStatusId; - num = ((!completionStatusId.HasValue) ? 729824193 : 729824238); - break; - case 12: - num = ((!base.Task.HasCompletionQuestVariablesFlags) ? 729824215 : 729824212); - break; - case 20: - num = ((InteractionType != EInteractionType.Gather) ? 729824232 : 729824226); - break; - case 38: - { - uint valueOrDefault4 = num7.GetValueOrDefault(); - num = ((InventoryManager.Instance()->GetInventoryItemCount(valueOrDefault4, isHq: false, checkEquipped: true, checkArmory: true, 0) <= 0) ? 729824198 : 729824209); - break; - } - case 29: - num = 729824204; - break; - case 26: - taxiStandId = base.Task.TaxiStandId; - num = ((!taxiStandId.HasValue) ? 729824214 : 729824219); - break; - case 28: gameFunctions.Unmount(); - _continueAt = _202A_206D_202C_202B_200E_206E_200D_202B_206A_200F_202B_200D_200F_206B_200E_202E_202E_202E_200E_206F_202A_200B_200D_206F_202D_206F_206F_206F_200E_206A_202D_206C_206C_200F_202B_200F_200C_200B_206B_206A_202E() + 1000; + _continueAt = Environment.TickCount64 + 1000; return ETaskResult.StillRunning; - case 48: - return ETaskResult.StillRunning; - case 22: - questProgressInfo = questFunctions.GetQuestProgressInfo(Quest.Id); - num = ((questProgressInfo == null) ? 729824198 : 729824227); - break; - case 49: - num = (_202E_200B_200B_200B_206B_202D_200B_200C_202D_200E_200C_206F_206F_200E_206D_200C_200D_202D_200F_200E_200B_206F_202D_202B_202D_200C_206F_200F_200B_206D_200C_202D_200C_200B_206D_200B_202D_200F_206B_200D_202E(gameObject) ? 729824202 : 729824220); - break; - case 41: - valueOrDefault = num7.GetValueOrDefault(); - num = ((base.Task.PurchaseItemCount <= 0) ? 729824216 : 729824210); - break; - case 2: - { - int interactionAttempts = _interactionAttempts; - num3 = 1; - num4 = interactionAttempts; - _interactionAttempts = (num4 | num3) + (num4 & num3); - num = ((_interactionAttempts <= 10) ? 729824213 : 729824224); - break; } - case 37: - num = ((_202A_206D_202C_202B_200E_206E_200D_202B_206A_200F_202B_200D_200F_206B_200E_202E_202E_202E_200E_206F_202A_200B_200D_206F_202D_206F_206F_206F_200E_206A_202D_206C_206C_200F_202B_200F_200C_200B_206B_206A_202E() - _gatheringNodeMissingSince < 1000) ? 729824242 : 729824196); - break; - case 1: - num7 = base.Task.PurchaseItemId; - num = ((!num7.HasValue) ? 729824216 : 729824235); - break; - case 25: + _needsUnmount = false; + } + EStatus? completionStatusId = base.Task.CompletionStatusId; + if (completionStatusId.HasValue) + { + EStatus valueOrDefault = completionStatusId.GetValueOrDefault(); + if (gameFunctions.HasStatus(valueOrDefault)) { - byte valueOrDefault2 = taxiStandId.GetValueOrDefault(); - UIState* intPtr = UIState.Instance(); - num3 = 1179648; - num4 = valueOrDefault2; - int num8 = num4 ^ num3; - int num9 = num4 & num3; - num = ((!intPtr->IsChocoboTaxiStandUnlocked((uint)(num8 + (num9 + num9)))) ? 729824198 : 729824203); - break; - } - case 23: - TriggerInteraction(gameObject); - ResetProgressTimer(); - return ETaskResult.StillRunning; - case 31: - num = ((_gatheringNodeMissingSince != 0L) ? 729824231 : 729824225); - break; - case 13: - ResetProgressTimer(); - num = ((!_delayedFinalCheck) ? 729824229 : 729824218); - break; - case 10: - _202E_200E_200E_200F_206A_202B_200C_206C_202A_202C_206C_202B_200C_206A_206E_202E_206F_200E_200C_206D_206E_206A_206F_202E_202B_200D_200F_206B_206F_206A_202B_206E_206E_202D_202E_206C_206E_200F_202D_206A_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-115096270), new object[1] { base.Task.DataId }); - return ETaskResult.StillRunning; - case 19: - ResetProgressTimer(); - return ETaskResult.TaskComplete; - case 16: - num = ((((ItemHandle)valueOrDefault).GetCount(checkEquipped: true, checkArmory: true) < base.Task.PurchaseItemCount) ? 729824211 : 729824208); - break; - case 18: - ResetProgressTimer(); - return ETaskResult.TaskComplete; - case 43: - num = ((!base.ProgressContext.WasInterrupted()) ? 729824236 : 729824200); - break; - case 11: ResetProgressTimer(); return ETaskResult.TaskComplete; } } + uint? pickUpItemId = base.Task.PickUpItemId; + if (pickUpItemId.HasValue) + { + uint valueOrDefault2 = pickUpItemId.GetValueOrDefault(); + if (InventoryManager.Instance()->GetInventoryItemCount(valueOrDefault2, isHq: false, checkEquipped: true, checkArmory: true, 0) > 0) + { + ResetProgressTimer(); + return ETaskResult.TaskComplete; + } + } + else + { + pickUpItemId = base.Task.PurchaseItemId; + if (pickUpItemId.HasValue) + { + uint valueOrDefault3 = pickUpItemId.GetValueOrDefault(); + if (base.Task.PurchaseItemCount > 0) + { + if (((ItemHandle)valueOrDefault3).GetCount(checkEquipped: true, checkArmory: true) >= base.Task.PurchaseItemCount) + { + ResetProgressTimer(); + return ETaskResult.TaskComplete; + } + if (shopController.IsOpen) + { + return ETaskResult.StillRunning; + } + goto IL_0252; + } + } + byte? taxiStandId = base.Task.TaxiStandId; + if (taxiStandId.HasValue) + { + byte valueOrDefault4 = taxiStandId.GetValueOrDefault(); + if (UIState.Instance()->IsChocoboTaxiStandUnlocked((uint)(valueOrDefault4 + 1179648))) + { + ResetProgressTimer(); + return ETaskResult.TaskComplete; + } + } + else + { + if (InteractionType == EInteractionType.Gather && condition[ConditionFlag.Gathering]) + { + ResetProgressTimer(); + return ETaskResult.TaskComplete; + } + if (Quest != null && base.Task.HasCompletionQuestVariablesFlags) + { + QuestProgressInfo questProgressInfo = questFunctions.GetQuestProgressInfo(Quest.Id); + if (questProgressInfo != null && QuestWorkUtils.MatchesQuestWork(base.Task.CompletionQuestVariablesFlags, questProgressInfo)) + { + ResetProgressTimer(); + return ETaskResult.TaskComplete; + } + } + else if (base.ProgressContext != null) + { + if (base.ProgressContext.WasInterrupted()) + { + logger.LogDebug("Interaction with {DataId} was interrupted", base.Task.DataId); + return ETaskResult.StillRunning; + } + if (base.ProgressContext.WasSuccessful() || _interactionState == EInteractionState.InteractionConfirmed) + { + ResetProgressTimer(); + if (_delayedFinalCheck) + { + return ETaskResult.TaskComplete; + } + _continueAt = Environment.TickCount64 + 200; + _delayedFinalCheck = true; + return ETaskResult.StillRunning; + } + } + } + } + goto IL_0252; + IL_0252: + IGameObject gameObject = gameFunctions.FindObjectByDataId(base.Task.DataId, null, warnIfMissing: false); + if (gameObject == null || !gameObject.IsTargetable) + { + if (InteractionType == EInteractionType.Gather) + { + if (_gatheringNodeMissingSince == 0L) + { + _gatheringNodeMissingSince = Environment.TickCount64; + } + if (Environment.TickCount64 - _gatheringNodeMissingSince >= 1000) + { + logger.LogDebug("Gathering node {DataId} is not active, selecting another node", base.Task.DataId); + return ETaskResult.SkipRemainingTasksForStep; + } + } + return ETaskResult.StillRunning; + } + _gatheringNodeMissingSince = 0L; + if (!HasAnyMarker(gameObject)) + { + return ETaskResult.StillRunning; + } + _interactionAttempts++; + if (_interactionAttempts > 10) + { + logger.LogWarning("Interaction with {DataId} failed after {Attempts} attempts, retrying step", base.Task.DataId, _interactionAttempts); + return ETaskResult.RetryStep; + } + TriggerInteraction(gameObject); + ResetProgressTimer(); + return ETaskResult.StillRunning; } private void TriggerInteraction(IGameObject gameObject) @@ -1199,153 +384,41 @@ internal static class Interact _interactionState = (gameFunctions.InteractWith(gameObject) ? EInteractionState.InteractionTriggered : EInteractionState.None); return _interactionState != EInteractionState.None; }); - _continueAt = _202A_206D_202C_202B_200E_206E_200D_202B_206A_200F_202B_200D_200F_206B_200E_202E_202E_202E_200E_206F_202A_200B_200D_206F_202D_206F_206F_206F_200E_206A_202D_206C_206C_200F_202B_200F_200C_200B_206B_206A_202E() + 500; + _continueAt = Environment.TickCount64 + 500; } private unsafe bool HasAnyMarker(IGameObject gameObject) { - int num = (base.Task.SkipMarkerCheck ? 882594710 : 882594709); - while (true) + if (base.Task.SkipMarkerCheck || gameObject.ObjectKind != Dalamud.Game.ClientState.Objects.Enums.ObjectKind.EventNpc) { - int num2 = num; - int num3 = 882594708; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - { - GameObject* ptr = (GameObject*)_200B_206D_206F_206E_202A_206E_202B_202D_202A_202C_200F_200C_206D_200E_200C_200D_200F_206C_206B_200E_206E_206B_200B_200D_206C_200F_206B_206F_206B_206D_202C_200C_206E_200D_202B_202E_200D_200C_202B_206A_202E(gameObject); - return ptr->NamePlateIconId != 0; - } - case 1: - num = ((_206C_206C_200C_206B_202E_206F_200D_200C_206E_200B_206A_206A_200C_202C_200C_200E_202B_206D_200B_202B_202D_206C_206B_202C_202D_202E_200B_202E_202C_206D_200F_206F_202E_200E_206D_206C_200F_202B_202B_202A_202E(gameObject) == Dalamud.Game.ClientState.Objects.Enums.ObjectKind.EventNpc) ? 882594708 : 882594710); - break; - case 2: - return true; - case 3: - num = 882594709; - break; - } + return true; } + GameObject* address = (GameObject*)gameObject.Address; + return address->NamePlateIconId != 0; } - [MethodImpl(MethodImplOptions.NoInlining)] public void OnConditionChange(ConditionFlag flag, bool value) { - int num = ((base.ProgressContext == null) ? (-592767209) : (-592767206)); - bool flag3 = default(bool); - bool flag2 = default(bool); - while (true) + if (base.ProgressContext == null || (!base.ProgressContext.WasInterrupted() && !base.ProgressContext.WasSuccessful())) { - int num2 = num; - int num3 = -592767203; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + logger.LogDebug("Condition change: {Flag} = {Value}", flag, value); + bool flag2 = _interactionState == EInteractionState.InteractionTriggered; + if (flag2) { - case 11: - num = (((uint)(flag - 31) > 1u) ? (-592767205) : (-592767208)); - break; - case 4: - return; - case 1: - flag3 = flag2; - num = -592767203; - break; - case 0: - { - bool num5 = flag3; - num3 = (value ? 1 : 0); - num4 = (num5 ? 1 : 0); - num = ((num4 + num3 - (num4 | num3) == 0) ? (-592767207) : (-592767211)); - break; + bool flag3 = (uint)(flag - 31) <= 1u; + flag2 = flag3; } - case 3: - num = -592767206; - break; - case 6: - flag2 = false; - num = -592767204; - break; - case 7: - num = (base.ProgressContext.WasInterrupted() ? (-592767212) : (-592767201)); - break; - case 8: - _202E_200E_200E_200F_206A_202B_200C_206C_202A_202C_206C_202B_200C_206A_206E_202E_206F_200E_200C_206D_206E_206A_206F_202E_202B_200D_200F_206B_206F_206A_202B_206E_206E_202D_202E_206C_206E_200F_202D_206A_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1899205764), Array.Empty<object>()); + if (flag2 && value) + { + logger.LogDebug("Interaction was most likely triggered"); _interactionState = EInteractionState.InteractionConfirmed; - num = -592767207; - break; - case 2: - num = ((!base.ProgressContext.WasSuccessful()) ? (-592767209) : (-592767212)); - break; - case 9: - return; - case 10: - _202E_200E_200E_200F_206A_202B_200C_206C_202A_202C_206C_202B_200C_206A_206E_202E_206F_200E_200C_206D_206E_206A_206F_202E_202B_200D_200F_206B_206F_206A_202B_206E_206E_202D_202E_206C_206E_200F_202D_206A_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-574362043), new object[2] { flag, value }); - flag3 = _interactionState == EInteractionState.InteractionTriggered; - num = ((!flag3) ? (-592767203) : (-592767210)); - break; - case 5: - flag2 = true; - num = -592767204; - break; } } } - void IConditionChangeAware.OnConditionChange(ConditionFlag flag, bool value) - { - //ILSpy generated this explicit interface implementation from .override directive in OnConditionChange - this.OnConditionChange(flag, value); - } - public override bool ShouldInterruptOnDamage() { return true; } - - static long _202A_206D_202C_202B_200E_206E_200D_202B_206A_200F_202B_200D_200F_206B_200E_202E_202E_202E_200E_206F_202A_200B_200D_206F_202D_206F_206F_206F_200E_206A_202D_206C_206C_200F_202B_200F_200C_200B_206B_206A_202E() - { - return Environment.TickCount64; - } - - static void _202E_200E_200E_200F_206A_202B_200C_206C_202A_202C_206C_202B_200C_206A_206E_202E_206F_200E_200C_206D_206E_206A_206F_202E_202B_200D_200F_206B_206F_206A_202B_206E_206E_202D_202E_206C_206E_200F_202D_206A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _202E_200B_200B_200B_206B_202D_200B_200C_202D_200E_200C_206F_206F_200E_206D_200C_200D_202D_200F_200E_200B_206F_202D_202B_202D_200C_206F_200F_200B_206D_200C_202D_200C_200B_206D_200B_202D_200F_206B_200D_202E(IGameObject P_0) - { - return P_0.IsTargetable; - } - - static bool _206D_206F_200D_202B_200B_202D_200C_202C_206E_202D_202B_200E_202A_200B_206C_206A_206D_200D_206C_200C_202B_200B_206C_206F_202D_202B_200F_200E_206B_200C_200F_200F_206A_202C_202C_206C_200B_200D_200B_206C_202E(SkipStepConditions P_0) - { - return P_0.Never; - } - - static bool _202C_202A_202C_200B_206B_206A_202B_200E_206B_206B_200F_202C_202B_200D_202B_202E_206A_202B_206C_206A_200E_206F_206B_200F_206A_200C_202C_202E_200F_200C_202B_206E_202C_200D_206B_206B_206F_200E_202C_200C_202E(SkipStepConditions P_0) - { - return P_0.NotTargetable; - } - - static bool _202D_200E_206B_200E_202E_206D_202A_206E_206E_202C_206A_206F_200D_200B_200B_200B_200E_202A_202E_206A_200D_206F_200B_202C_200B_206B_200F_206C_206B_206C_206C_202C_206D_202E_202A_206A_200D_200B_206C_206E_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static Dalamud.Game.ClientState.Objects.Enums.ObjectKind _206C_206C_200C_206B_202E_206F_200D_200C_206E_200B_206A_206A_200C_202C_200C_200E_202B_206D_200B_202B_202D_206C_206B_202C_202D_202E_200B_202E_202C_206D_200F_206F_202E_200E_206D_206C_200F_202B_202B_202A_202E(IGameObject P_0) - { - return P_0.ObjectKind; - } - - static void _202B_202B_206C_206D_202A_206C_206C_206A_206F_206D_206D_200B_206D_200D_206C_202C_202A_206E_200B_202E_200B_200D_206C_202D_202A_200E_202E_200D_206A_200C_202B_200B_206A_202E_202C_200E_200B_206B_206D_202E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static nint _200B_206D_206F_206E_202A_206E_202B_202D_202A_202C_200F_200C_206D_200E_200C_200D_200F_206C_206B_200E_206E_206B_200B_200D_206C_200F_206B_206F_206B_206D_202C_200C_206E_200D_202B_202E_200D_200C_202B_206A_202E(IGameObject P_0) - { - return P_0.Address; - } } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/Jump.cs b/Questionable/Questionable.Controller.Steps.Interactions/Jump.cs index e8a00e8..00ae829 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/Jump.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/Jump.cs @@ -1,14 +1,9 @@ using System; using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using System.Text; -using System.Threading; -using System.Threading.Tasks; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using Microsoft.Extensions.Logging; @@ -21,62 +16,18 @@ internal static class Jump { internal sealed class Factory : SimpleTaskFactory { - [MethodImpl(MethodImplOptions.NoInlining)] public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_200E_202A_202E_202C_206A_202E_200E_206A_206E_206E_202C_206E_206D_200D_200E_202D_200F_206E_200D_200D_206D_200C_200D_202B_202A_202A_200B_200B_206D_202B_200F_200B_200F_206D_206B_202E_206A_200C_202D_202B_202E(step) == EInteractionType.Jump) ? 1879754569 : 1879754570); - while (true) + if (step.InteractionType != EInteractionType.Jump) { - int num2 = num; - int num3 = 1879754571; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - return new SingleJumpTask(_200B_206E_202B_202E_202B_200F_202E_202C_206D_200F_202A_200B_206F_200B_200D_206C_202C_206A_206E_206F_200E_202D_206D_206D_206F_202A_206E_200F_202E_206E_202B_200D_206E_202B_206E_206D_200B_206A_200C_202D_202E(step), _200C_202C_206B_200F_200E_206E_202D_206E_200F_206C_206C_206B_206F_202D_200D_206F_202C_202A_202C_200B_200C_200E_200B_202B_206B_206D_202A_202C_200B_200F_200C_202B_202B_206A_206C_202A_202C_202D_200E_202E(step), _206D_200E_206F_200F_202D_206B_202E_200F_206F_206B_200B_206A_202C_200F_206D_206C_200C_206B_200D_206B_206D_200D_202E_206C_206A_206E_202B_200E_200F_200C_202E_206B_206D_206D_206B_200B_206C_206F_206B_200D_202E(step)); - case 1: - return null; - case 0: - return new RepeatedJumpTask(_200B_206E_202B_202E_202B_200F_202E_202C_206D_200F_202A_200B_206F_200B_200D_206C_202C_206A_206E_206F_200E_202D_206D_206D_206F_202A_206E_200F_202E_206E_202B_200D_206E_202B_206E_206D_200B_206A_200C_202D_202E(step), _200C_202C_206B_200F_200E_206E_202D_206E_200F_206C_206C_206B_206F_202D_200D_206F_202C_202A_202C_200B_200C_200E_200B_202B_206B_206D_202A_202C_200B_200F_200C_202B_202B_206A_206C_202A_202C_202D_200E_202E(step), _206D_200E_206F_200F_202D_206B_202E_200F_206F_206B_200B_206A_202C_200F_206D_206C_200C_206B_200D_206B_206D_200D_202E_206C_206A_206E_202B_200E_200F_200C_202E_206B_206D_206D_206B_200B_206C_206F_206B_200D_202E(step)); - case 2: - _206E_206C_206A_200C_206A_206C_202B_206C_206F_200C_200B_200B_202C_206D_202A_206B_206B_206A_202A_206B_206D_206A_200E_206B_202E_202D_200D_200B_200F_206E_200B_206B_200B_200C_206F_206B_206C_200F_200F_206F_202E((object)_200C_202C_206B_200F_200E_206E_202D_206E_200F_206C_206C_206B_206F_202D_200D_206F_202C_202A_202C_200B_200C_200E_200B_202B_206B_206D_202A_202C_200B_200F_200C_202B_202B_206A_206C_202A_202C_202D_200E_202E(step), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1260133087)); - num = ((_200E_206A_206A_206B_200D_200E_200F_202C_200B_202C_206E_206A_206A_202E_200B_200D_202E_206E_202D_202A_202A_202E_200E_206C_206F_206C_202B_206E_200C_206D_200E_202A_200E_200F_202A_200F_206E_206F_202C_200E_202E(_200C_202C_206B_200F_200E_206E_202D_206E_200F_206C_206C_206B_206F_202D_200D_206F_202C_202A_202C_200B_200C_200E_200B_202B_206B_206D_202A_202C_200B_200F_200C_202B_202B_206A_206C_202A_202C_202D_200E_202E(step)) != EJumpType.SingleJump) ? 1879754571 : 1879754575); - break; - case 3: - num = 1879754570; - break; - } + return null; } - } - - static EInteractionType _200E_202A_202E_202C_206A_202E_200E_206A_206E_206E_202C_206E_206D_200D_200E_202D_200F_206E_200D_200D_206D_200C_200D_202B_202A_202A_200B_200B_206D_202B_200F_200B_200F_206D_206B_202E_206A_200C_202D_202B_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static JumpDestination _200C_202C_206B_200F_200E_206E_202D_206E_200F_206C_206C_206B_206F_202D_200D_206F_202C_202A_202C_200B_200C_200E_200B_202B_206B_206D_202A_202C_200B_200F_200C_202B_202B_206A_206C_202A_202C_202D_200E_202E(QuestStep P_0) - { - return P_0.JumpDestination; - } - - static void _206E_206C_206A_200C_206A_206C_202B_206C_206F_200C_200B_200B_202C_206D_202A_206B_206B_206A_202A_206B_206D_206A_200E_206B_202E_202D_200D_200B_200F_206E_200B_206B_200B_200C_206F_206B_206C_200F_200F_206F_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static EJumpType _200E_206A_206A_206B_200D_200E_200F_202C_200B_202C_206E_206A_206A_202E_200B_200D_202E_206E_202D_202A_202A_202E_200E_206C_206F_206C_202B_206E_200C_206D_200E_202A_200E_200F_202A_200F_206E_206F_202C_200E_202E(JumpDestination P_0) - { - return P_0.Type; - } - - static uint? _200B_206E_202B_202E_202B_200F_202E_202C_206D_200F_202A_200B_206F_200B_200D_206C_202C_206A_206E_206F_200E_202D_206D_206D_206F_202A_206E_200F_202E_206E_202B_200D_206E_202B_206E_206D_200B_206A_200C_202D_202E(QuestStep P_0) - { - return P_0.DataId; - } - - static string _206D_200E_206F_200F_202D_206B_202E_200F_206F_206B_200B_206A_202C_200F_206D_206C_200C_206B_200D_206B_206D_200D_202E_206C_206A_206E_202B_200E_200F_200C_202E_206B_206D_206D_206B_200B_206C_206F_206B_200D_202E(QuestStep P_0) - { - return P_0.Comment; + ArgumentNullException.ThrowIfNull(step.JumpDestination, "step.JumpDestination"); + if (step.JumpDestination.Type == EJumpType.SingleJump) + { + return new SingleJumpTask(step.DataId, step.JumpDestination, step.Comment); + } + return new RepeatedJumpTask(step.DataId, step.JumpDestination, step.Comment); } } @@ -91,106 +42,9 @@ internal static class Jump internal sealed record SingleJumpTask(uint? DataId, JumpDestination JumpDestination, string? Comment) : IJumpTask, ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206F_202D_202A_206A_202C_202B_200C_202D_206B_202B_200F_200B_200D_202C_200F_202A_200C_202B_206D_206E_206B_202D_200E_202E_202E_200D_200C_202D_200F_202A_206D_202A_206B_202E_206B_200B_202B_200D_206E_200E_202E(typeof(SingleJumpTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return _200E_206E_200E_200E_202A_202B_206B_200D_200F_200B_200E_202E_202A_206A_206F_202E_200B_206A_202A_200C_206A_202D_202E_206C_206D_202E_206D_206F_202C_200E_206D_200B_202A_206A_202B_202C_206D_202E_200D_206D_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2069957391), Comment, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202D_200D_202B_202B_200B_206F_206D_202D_200D_206E_202A_202D_202B_202B_202A_206C_202E_202E_206F_202B_202B_202A_202B_202B_202A_200B_200C_200D_206E_202D_202A_202D_206F_206C_200B_206C_206E_206A_200B_206D_202E(); - _200D_200D_200D_200D_206D_206B_206A_206F_202D_200B_200E_202E_202A_206D_206A_200E_202D_206D_200B_200D_206C_200F_202B_206A_202A_200E_202A_202D_206C_202E_206D_202C_200D_206A_202D_206A_202D_206B_206E_202D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-813337770)); - _200D_200D_200D_200D_206D_206B_206A_206F_202D_200B_200E_202E_202A_206D_206A_200E_202D_206D_200B_200D_206C_200F_202B_206A_202A_200E_202A_202D_206C_202E_206D_202C_200D_206A_202D_206A_202D_206B_206E_202D_202E(builder, DataId.ToString()); - _200D_200D_200D_200D_206D_206B_206A_206F_202D_200B_200E_202E_202A_206D_206A_200E_202D_206D_200B_200D_206C_200F_202B_206A_202A_200E_202A_202D_206C_202E_206D_202C_200D_206A_202D_206A_202D_206B_206E_202D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(840372176)); - _206D_202B_206B_200C_202A_200B_202B_206D_200E_206B_206B_202E_202C_202B_206D_200C_202D_202E_202A_202E_206B_206D_206E_206A_202A_200F_206B_202D_202D_206D_202E_202C_200B_200E_206B_202B_200D_206C_202B_206D_202E(builder, (object)JumpDestination); - _200D_200D_200D_200D_206D_206B_206A_206F_202D_200B_200E_202E_202A_206D_206A_200E_202D_206D_200B_200D_206C_200F_202B_206A_202A_200E_202A_202D_206C_202E_206D_202C_200D_206A_202D_206A_202D_206B_206E_202D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1006174404)); - _206D_202B_206B_200C_202A_200B_202B_206D_200E_206B_206B_202E_202C_202B_206D_200C_202D_202E_202A_202E_206B_206D_206E_206A_202A_200F_206B_202D_202D_206D_202E_202C_200B_200E_206B_202B_200D_206C_202B_206D_202E(builder, (object)Comment); - return true; - } - - [CompilerGenerated] - public bool Equals(SingleJumpTask? other) - { - int num = (((object)this == other) ? (-1677814898) : (-1677814903)); - while (true) - { - int num2 = num; - int num3 = -1677814899; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return true; - case 4: - num = (((object)other == null) ? (-1677814901) : (-1677814902)); - break; - case 0: - num = -1677814903; - break; - case 5: - return EqualityComparer<string>.Default.Equals(Comment, other.Comment); - case 6: - return false; - case 7: - num = ((!_202E_200D_206E_206E_200B_202B_200F_202D_202D_206D_206B_202C_206E_202E_202C_206D_200C_206D_200D_206C_202C_200D_202C_202B_200D_206B_206A_202C_202C_200C_200B_202D_200D_206B_200D_202D_206A_200F_202E_200E_202E(EqualityContract, other.EqualityContract)) ? (-1677814901) : (-1677814900)); - break; - case 1: - num = ((!EqualityComparer<uint?>.Default.Equals(DataId, other.DataId)) ? (-1677814901) : (-1677814897)); - break; - case 2: - num = ((!EqualityComparer<Questionable.Model.Questing.JumpDestination>.Default.Equals(JumpDestination, other.JumpDestination)) ? (-1677814901) : (-1677814904)); - break; - } - } - } - - bool IEquatable<SingleJumpTask>.Equals(SingleJumpTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206F_202D_202A_206A_202C_202B_200C_202D_206B_202B_200F_200B_200D_202C_200F_202A_200C_202B_206D_206E_206B_202D_200E_202E_202E_200D_200C_202D_200F_202A_206D_202A_206B_202E_206B_200B_202B_200D_206E_200E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static string _200E_206E_200E_200E_202A_202B_206B_200D_200F_200B_200E_202E_202A_206A_206F_202E_200B_206A_202A_200C_206A_202D_202E_206C_206D_202E_206D_206F_202C_200E_206D_200B_202A_206A_202B_202C_206D_202E_200D_206D_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static void _202D_200D_202B_202B_200B_206F_206D_202D_200D_206E_202A_202D_202B_202B_202A_206C_202E_202E_206F_202B_202B_202A_202B_202B_202A_200B_200C_200D_206E_202D_202A_202D_206F_206C_200B_206C_206E_206A_200B_206D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200D_200D_200D_200D_206D_206B_206A_206F_202D_200B_200E_202E_202A_206D_206A_200E_202D_206D_200B_200D_206C_200F_202B_206A_202A_200E_202A_202D_206C_202E_206D_202C_200D_206A_202D_206A_202D_206B_206E_202D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206D_202B_206B_200C_202A_200B_202B_206D_200E_206B_206B_202E_202C_202B_206D_200C_202D_202E_202A_202E_206B_206D_206E_206A_202A_200F_206B_202D_202D_206D_202E_202C_200B_200E_206B_202B_200D_206C_202B_206D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202E_200D_206E_206E_200B_202B_200F_202D_202D_206D_206B_202C_206E_202E_202C_206D_200C_206D_200D_206C_202C_200D_202C_202B_200D_206B_206A_202C_202C_200C_200B_202D_200D_206B_200D_202D_206A_200F_202E_200E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "Jump(" + Comment + ")"; } } @@ -198,116 +52,47 @@ internal static class Jump { protected unsafe override bool Start() { - IPlayerCharacter playerCharacter = _206E_200D_202E_206B_206A_202B_200E_202C_202E_206A_202B_206D_200D_202A_200B_200F_206A_202C_206A_206D_202C_206B_200C_200D_200D_202C_206E_206C_200B_202A_202D_202C_206A_206C_200B_206A_200D_202A_202A_202A_202E(_003CobjectTable_003EP); - int num = ((playerCharacter != null) ? 279360376 : 279360377); - float num7 = default(float); - while (true) + IPlayerCharacter localPlayer = _003CobjectTable_003EP.LocalPlayer; + if (localPlayer == null) { - int num2 = num; - int num3 = 279360376; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - { - MovementController movementController = _003CmovementController_003EP; - uint? dataId = base.Task.DataId; - int num8 = 1; - List<Vector3> list = new List<Vector3>(num8); - CollectionsMarshal.SetCount(list, num8); - CollectionsMarshal.AsSpan(list)[0] = _200E_206A_206D_206E_206B_200B_200E_200C_202A_202A_206E_202E_200D_202D_202C_202A_206D_202C_206B_206A_206C_202D_202B_200F_200E_206D_200D_206E_200E_206F_202D_200B_200B_200C_206D_200B_200B_200F_202C_202D_202E(base.Task.JumpDestination); - movementController.NavigateTo(EMovementType.Quest, dataId, list, fly: false, sprint: false, _206B_206D_206F_202A_206F_202A_200F_202A_200D_202A_202B_206E_202B_202B_202E_200E_202C_200E_206F_200C_200D_202D_200C_202C_206B_202C_200B_200C_206D_200C_206D_202C_206B_202D_206B_200C_206A_200D_202A_206A_202E(base.Task.JumpDestination) ?? num7); - _206A_200C_206D_206D_202B_202C_206F_200E_200B_206C_202D_200E_206C_206D_206E_206E_202D_206D_206C_202B_206D_202E_206E_202B_202D_206C_200C_200F_206C_200F_200D_206B_206E_202C_202C_206E_202D_206C_200B_200F_202E(_003Cframework_003EP, (System.Action)delegate - { - ActionManager.Instance()->UseAction(ActionType.GeneralAction, 2u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); - }, TimeSpan.FromSeconds(_206E_202C_202D_206C_200F_206E_206D_200E_202B_206C_200E_206C_206C_200F_202D_202D_202B_206A_202D_202A_206C_206B_200B_200B_206B_206F_206D_206D_202A_206D_206F_200D_200F_206C_202E_200B_206F_202A_200F_206D_202E(base.Task.JumpDestination) ?? 0.5f), 0, default(CancellationToken)); - return true; - } - case 0: - num7 = _200D_200F_202A_202E_200F_200C_206F_206C_200B_206D_200D_202A_200F_202E_206D_200F_202B_202E_206F_206C_206F_200C_202D_200B_202C_200B_200D_206D_200F_200B_200C_202E_200B_200E_200C_202C_206B_202E_200E_202A_202E(base.Task.JumpDestination); - num = ((!((_206D_202A_206B_206F_202E_202A_206C_206C_200E_206F_206A_200E_206A_206B_202E_202E_206A_206B_202C_206A_200E_200C_200B_206E_202B_206B_206E_200D_206F_206E_206D_200E_206D_200D_202A_202C_206D_206B_202C_202A_202E((IGameObject)playerCharacter) - _200E_206A_206D_206E_206B_200B_200E_200C_202A_202A_206E_202E_200D_202D_202C_202A_206D_202C_206B_206A_206C_202D_202B_200F_200E_206D_200D_206E_200E_206F_202D_200B_200B_200C_206D_200B_200B_200F_202C_202D_202E(base.Task.JumpDestination)).Length() <= num7)) ? 279360378 : 279360380); - break; - case 1: - return false; - case 4: - return false; - case 3: - num = 279360377; - break; - } + return false; } + float num = base.Task.JumpDestination.CalculateStopDistance(); + if ((localPlayer.Position - base.Task.JumpDestination.Position).Length() <= num) + { + return false; + } + MovementController movementController = _003CmovementController_003EP; + uint? dataId = base.Task.DataId; + int num2 = 1; + List<Vector3> list = new List<Vector3>(num2); + CollectionsMarshal.SetCount(list, num2); + CollectionsMarshal.AsSpan(list)[0] = base.Task.JumpDestination.Position; + movementController.NavigateTo(EMovementType.Quest, dataId, list, fly: false, sprint: false, base.Task.JumpDestination.StopDistance ?? num); + _003Cframework_003EP.RunOnTick(delegate + { + ActionManager.Instance()->UseAction(ActionType.GeneralAction, 2u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); + }, TimeSpan.FromSeconds(base.Task.JumpDestination.DelaySeconds ?? 0.5f)); + return true; } public override ETaskResult Update() { - int num = (_003CmovementController_003EP.IsPathfinding ? (-470159093) : (-470159095)); - while (true) + if (_003CmovementController_003EP.IsPathfinding || _003CmovementController_003EP.IsPathRunning) { - int num2 = num; - int num3 = -470159096; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return ETaskResult.StillRunning; - case 1: - num = ((!_003CmovementController_003EP.IsPathRunning) ? (-470159096) : (-470159093)); - break; - case 0: - num = (_003CmovementController_003EP.HasBeenMovingForAtLeast(1000) ? (-470159094) : (-470159092)); - break; - case 5: - num = -470159095; - break; - case 4: - return ETaskResult.StillRunning; - case 2: - return ETaskResult.TaskComplete; - } + return ETaskResult.StillRunning; } + if (!_003CmovementController_003EP.HasBeenMovingForAtLeast(1000)) + { + return ETaskResult.StillRunning; + } + return ETaskResult.TaskComplete; } public override bool ShouldInterruptOnDamage() { return true; } - - static IPlayerCharacter _206E_200D_202E_206B_206A_202B_200E_202C_202E_206A_202B_206D_200D_202A_200B_200F_206A_202C_206A_206D_202C_206B_200C_200D_200D_202C_206E_206C_200B_202A_202D_202C_206A_206C_200B_206A_200D_202A_202A_202A_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static float _200D_200F_202A_202E_200F_200C_206F_206C_200B_206D_200D_202A_200F_202E_206D_200F_202B_202E_206F_206C_206F_200C_202D_200B_202C_200B_200D_206D_200F_200B_200C_202E_200B_200E_200C_202C_206B_202E_200E_202A_202E(JumpDestination P_0) - { - return P_0.CalculateStopDistance(); - } - - static Vector3 _206D_202A_206B_206F_202E_202A_206C_206C_200E_206F_206A_200E_206A_206B_202E_202E_206A_206B_202C_206A_200E_200C_200B_206E_202B_206B_206E_200D_206F_206E_206D_200E_206D_200D_202A_202C_206D_206B_202C_202A_202E(IGameObject P_0) - { - return P_0.Position; - } - - static Vector3 _200E_206A_206D_206E_206B_200B_200E_200C_202A_202A_206E_202E_200D_202D_202C_202A_206D_202C_206B_206A_206C_202D_202B_200F_200E_206D_200D_206E_200E_206F_202D_200B_200B_200C_206D_200B_200B_200F_202C_202D_202E(JumpDestination P_0) - { - return P_0.Position; - } - - static float? _206B_206D_206F_202A_206F_202A_200F_202A_200D_202A_202B_206E_202B_202B_202E_200E_202C_200E_206F_200C_200D_202D_200C_202C_206B_202C_200B_200C_206D_200C_206D_202C_206B_202D_206B_200C_206A_200D_202A_206A_202E(JumpDestination P_0) - { - return P_0.StopDistance; - } - - static float? _206E_202C_202D_206C_200F_206E_206D_200E_202B_206C_200E_206C_206C_200F_202D_202D_202B_206A_202D_202A_206C_206B_200B_200B_206B_206F_206D_206D_202A_206D_206F_200D_200F_206C_202E_200B_206F_202A_200F_206D_202E(JumpDestination P_0) - { - return P_0.DelaySeconds; - } - - static Task _206A_200C_206D_206D_202B_202C_206F_200E_200B_206C_202D_200E_206C_206D_206E_206E_202D_206D_206C_202B_206D_202E_206E_202B_202D_206C_200C_200F_206C_200F_200D_206B_206E_202C_202C_206E_202D_206C_200B_200F_202E(IFramework P_0, System.Action P_1, TimeSpan P_2, int P_3, CancellationToken P_4) - { - return P_0.RunOnTick(P_1, P_2, P_3, P_4); - } } internal sealed class DoSingleJump : JumpBase<SingleJumpTask> @@ -320,108 +105,9 @@ internal static class Jump internal sealed record RepeatedJumpTask(uint? DataId, JumpDestination JumpDestination, string? Comment) : IJumpTask, ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206F_206C_202B_206C_200C_202A_200E_200D_202B_206C_202A_202C_200F_206E_202C_206D_206A_200F_206C_206D_200E_206C_200D_206B_200D_206E_202C_200D_206E_202B_206C_202C_202E_202E_200D_206B_206C_206B_206E_206B_202E(typeof(RepeatedJumpTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return _202A_206C_206D_200C_200D_206B_202A_202E_206E_200E_202B_206F_200B_202C_202E_202B_206F_206F_206E_206D_202E_206D_206A_200B_206C_202B_206F_206D_202B_206F_206F_202A_200E_202E_206D_202D_200F_202D_206B_200E_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1812591984), Comment, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202B_200C_200F_202B_206D_202B_200E_206F_202A_206E_200E_202E_200F_202B_200F_200B_200D_200B_202E_200F_206C_200F_200E_202D_200B_202D_206E_200D_206E_206A_206E_200F_206D_200E_202C_206E_200D_206A_202D_202E(); - _200B_206A_200E_206C_200C_202D_206A_206F_202B_202A_202B_202C_200B_200C_206B_202E_206D_202D_206C_200F_206F_206F_200D_200B_206B_206D_206B_206A_200F_206D_202A_202A_206E_200D_200B_200C_200D_202D_200D_202A_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-813337770)); - _200B_206A_200E_206C_200C_202D_206A_206F_202B_202A_202B_202C_200B_200C_206B_202E_206D_202D_206C_200F_206F_206F_200D_200B_206B_206D_206B_206A_200F_206D_202A_202A_206E_200D_200B_200C_200D_202D_200D_202A_202E(builder, DataId.ToString()); - _200B_206A_200E_206C_200C_202D_206A_206F_202B_202A_202B_202C_200B_200C_206B_202E_206D_202D_206C_200F_206F_206F_200D_200B_206B_206D_206B_206A_200F_206D_202A_202A_206E_200D_200B_200C_200D_202D_200D_202A_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2048561311)); - _206A_206C_202A_202B_200F_200D_206C_202D_200F_206B_206C_202B_202C_200E_206F_202B_202D_200E_202A_200D_200C_200B_206D_206F_206F_206B_206B_206E_202C_206F_202B_206D_206A_202B_200F_202C_200F_206A_206E_206B_202E(builder, (object)JumpDestination); - _200B_206A_200E_206C_200C_202D_206A_206F_202B_202A_202B_202C_200B_200C_206B_202E_206D_202D_206C_200F_206F_206F_200D_200B_206B_206D_206B_206A_200F_206D_202A_202A_206E_200D_200B_200C_200D_202D_200D_202A_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(430956117)); - _206A_206C_202A_202B_200F_200D_206C_202D_200F_206B_206C_202B_202C_200E_206F_202B_202D_200E_202A_200D_200C_200B_206D_206F_206F_206B_206B_206E_202C_206F_202B_206D_206A_202B_200F_202C_200F_206A_206E_206B_202E(builder, (object)Comment); - return true; - } - - [CompilerGenerated] - public bool Equals(RepeatedJumpTask? other) - { - int num = (((object)this == other) ? (-565418878) : (-565418874)); - while (true) - { - int num2 = num; - int num3 = -565418873; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = ((!EqualityComparer<Questionable.Model.Questing.JumpDestination>.Default.Equals(JumpDestination, other.JumpDestination)) ? (-565418875) : (-565418880)); - break; - case 1: - num = (((object)other == null) ? (-565418875) : (-565418879)); - break; - case 6: - num = ((!_206B_206B_206F_202A_202C_206E_206A_206F_206E_200E_206A_206C_206B_202C_206C_206B_200E_202A_206A_206F_200C_206B_206B_202D_206E_202B_206A_202C_206D_202E_200E_206F_200B_200B_206C_200D_202B_200F_206E_202B_202E(EqualityContract, other.EqualityContract)) ? (-565418875) : (-565418877)); - break; - case 7: - return EqualityComparer<string>.Default.Equals(Comment, other.Comment); - case 4: - num = ((!EqualityComparer<uint?>.Default.Equals(DataId, other.DataId)) ? (-565418875) : (-565418873)); - break; - case 3: - num = -565418874; - break; - case 5: - return true; - case 2: - return false; - } - } - } - - bool IEquatable<RepeatedJumpTask>.Equals(RepeatedJumpTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206F_206C_202B_206C_200C_202A_200E_200D_202B_206C_202A_202C_200F_206E_202C_206D_206A_200F_206C_206D_200E_206C_200D_206B_200D_206E_202C_200D_206E_202B_206C_202C_202E_202E_200D_206B_206C_206B_206E_206B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static string _202A_206C_206D_200C_200D_206B_202A_202E_206E_200E_202B_206F_200B_202C_202E_202B_206F_206F_206E_206D_202E_206D_206A_200B_206C_202B_206F_206D_202B_206F_206F_202A_200E_202E_206D_202D_200F_202D_206B_200E_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static void _202B_200C_200F_202B_206D_202B_200E_206F_202A_206E_200E_202E_200F_202B_200F_200B_200D_200B_202E_200F_206C_200F_200E_202D_200B_202D_206E_200D_206E_206A_206E_200F_206D_200E_202C_206E_200D_206A_202D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200B_206A_200E_206C_200C_202D_206A_206F_202B_202A_202B_202C_200B_200C_206B_202E_206D_202D_206C_200F_206F_206F_200D_200B_206B_206D_206B_206A_200F_206D_202A_202A_206E_200D_200B_200C_200D_202D_200D_202A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206A_206C_202A_202B_200F_200D_206C_202D_200F_206B_206C_202B_202C_200E_206F_202B_202D_200E_202A_200D_200C_200B_206D_206F_206F_206B_206B_206E_202C_206F_202B_206D_206A_202B_200F_202C_200F_206A_206E_206B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206B_206B_206F_202A_202C_206E_206A_206F_206E_200E_206A_206C_206B_202C_206C_206B_200E_202A_206A_206F_200C_206B_206B_202D_206E_202B_206A_202C_206D_202E_200E_206F_200B_200B_206C_200D_202B_200F_206E_202B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "RepeatedJump(" + Comment + ")"; } } @@ -443,118 +129,37 @@ internal static class Jump protected override bool Start() { - _continueAt = _206A_202B_206B_202B_202C_200B_202B_202D_206F_200D_202D_200F_206F_206F_200F_202E_200D_200F_200B_202A_200B_200E_206D_206B_202A_206F_206A_206F_206C_206E_200D_206E_200B_202D_202A_206A_206C_200F_206A_206C_202E() + (long)(2000f * (_202E_200B_206E_200B_206D_202B_202C_206C_200E_206C_202E_206E_202D_200E_200F_206D_202C_206F_206A_202D_206E_200D_202D_202C_202B_200F_200C_202D_200B_206A_206A_202B_206C_206A_202C_202C_202B_206A_202A_202E(base.Task.JumpDestination) ?? 0.5f)); + _continueAt = Environment.TickCount64 + (long)(2000f * (base.Task.JumpDestination.DelaySeconds ?? 0.5f)); return base.Start(); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe override ETaskResult Update() { - int num = ((_206A_202B_206B_202B_202C_200B_202B_202D_206F_200D_202D_200F_206F_206F_200F_202E_200D_200F_200B_202A_200B_200E_206D_206B_202A_206F_206A_206F_206C_206E_200D_206E_200B_202D_202A_206A_206C_200F_206A_206C_202E() < _continueAt) ? 1172986635 : 1172986637); - IPlayerCharacter playerCharacter = default(IPlayerCharacter); - while (true) + if (Environment.TickCount64 < _continueAt || _003Ccondition_003EP[ConditionFlag.Jumping]) { - int num2 = num; - int num3 = 1172986631; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = ((_attempts < 50) ? 1172986624 : 1172986639); - break; - case 10: - num = ((!_206D_206B_206A_206D_202A_202D_206D_206A_200E_202A_202E_202E_206E_200C_206B_202D_206F_200E_200D_200C_206F_206E_202B_202D_200F_200B_206C_200C_202E_200F_206C_200E_202E_200C_202D_202B_206D_200E_202A_206A_202E(_003Ccondition_003EP, ConditionFlag.Jumping)) ? 1172986626 : 1172986635); - break; - case 2: - _200F_206F_200B_200C_202D_206C_202A_202A_202D_206D_200E_200B_202D_202B_206A_202A_206D_206F_200F_202E_200D_202A_200B_206F_200E_200B_206A_202B_200E_206A_206A_206F_200B_202A_200D_206D_200E_206F_200E_206C_202E((ILogger)_003Clogger_003EP, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1550993377), new object[2] - { - _202E_206C_206B_200D_200F_202D_202D_200B_206E_202A_202B_206B_200D_202E_200F_202C_202D_206D_202C_206B_206A_206E_200C_206A_202C_206E_206E_202C_200E_202D_202D_202E_206F_202E_206D_206F_202A_202C_200C_206B_202E((IGameObject)playerCharacter).Y, - _206A_200C_200D_200C_202B_202E_202A_206F_202E_206B_200D_200E_202E_202A_200F_206B_206B_206D_202B_200B_200D_202D_202D_200B_206C_206D_206C_202B_206C_202E_206F_200C_200C_200B_200E_200C_200B_200F_206F_206C_202E(base.Task.JumpDestination).Y - 0.5f - }); - num = ((!ActionManager.Instance()->UseAction(ActionType.GeneralAction, 2u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null)) ? 1172986627 : 1172986630); - break; - case 3: - num = 1172986637; - break; - case 7: - _continueAt = _206A_202B_206B_202B_202C_200B_202B_202D_206F_200D_202D_200F_206F_206F_200F_202E_200D_200F_200B_202A_200B_200E_206D_206B_202A_206F_206A_206F_206C_206E_200D_206E_200B_202D_202A_206A_206C_200F_206A_206C_202E() + (long)(1000f * (_202E_200B_206E_200B_206D_202B_202C_206C_200E_206C_202E_206E_202D_200E_200F_206D_202C_206F_206A_202D_206E_200D_202D_202C_202B_200F_200C_202D_200B_206A_206A_202B_206C_206A_202C_202C_202B_206A_202A_202E(base.Task.JumpDestination) ?? 0.5f)); - return ETaskResult.StillRunning; - case 9: - num = ((!(_202E_206C_206B_200D_200F_202D_202D_200B_206E_202A_202B_206B_200D_202E_200F_202C_202D_206D_202C_206B_206A_206E_200C_206A_202C_206E_206E_202C_200E_202D_202D_202E_206F_202E_206D_206F_202A_202C_200C_206B_202E((IGameObject)playerCharacter).Y >= _206A_200C_200D_200C_202B_202E_202A_206F_202E_206B_200D_200E_202E_202A_200F_206B_206B_206D_202B_200B_200D_202D_202D_200B_206C_206D_206C_202B_206C_202E_206F_200C_200C_200B_200E_200C_200B_200F_206F_206C_202E(base.Task.JumpDestination).Y - 0.5f)) ? 1172986629 : 1172986631); - break; - case 6: - return ETaskResult.TaskComplete; - case 12: - return ETaskResult.StillRunning; - case 5: - playerCharacter = _200F_200B_206F_202B_206B_202D_206F_206C_206A_200F_206F_200F_200D_206F_206C_206E_200C_200B_206D_206C_200D_200B_202E_200D_202E_202C_206C_200F_200F_202C_200E_206F_206E_202E_206B_200F_200F_200D_200F_206F_202E(_objectTable); - num = ((playerCharacter != null) ? 1172986636 : 1172986625); - break; - case 0: - return ETaskResult.TaskComplete; - case 8: - throw new TaskException(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1093799648)); - case 11: - { - float num9 = _200D_206B_202D_200B_206C_206A_200C_200F_202B_206A_202A_202A_202C_206D_202E_200C_202A_200B_202D_200F_206C_200B_202C_202A_200F_200B_206F_200B_200F_202B_202C_200E_200E_206A_200C_200B_202D_206B_200E_202C_202E(base.Task.JumpDestination); - num = (((_202E_206C_206B_200D_200F_202D_202D_200B_206E_202A_202B_206B_200D_202E_200F_202C_202D_206D_202C_206B_206A_206E_200C_206A_202C_206E_206E_202C_200E_202D_202D_202E_206F_202E_206D_206F_202A_202C_200C_206B_202E((IGameObject)playerCharacter) - _206A_200C_200D_200C_202B_202E_202A_206F_202E_206B_200D_200E_202E_202A_200F_206B_206B_206D_202B_200B_200D_202D_202D_200B_206C_206D_206C_202B_206C_202E_206F_200C_200C_200B_200E_200C_200B_200F_206F_206C_202E(base.Task.JumpDestination)).Length() <= num9) ? 1172986631 : 1172986638); - break; - } - case 1: - { - int attempts = _attempts; - num3 = 1; - num4 = attempts; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - _attempts = num7 + (num8 + num8); - num = 1172986627; - break; - } - } + return ETaskResult.StillRunning; } - } - - static long _206A_202B_206B_202B_202C_200B_202B_202D_206F_200D_202D_200F_206F_206F_200F_202E_200D_200F_200B_202A_200B_200E_206D_206B_202A_206F_206A_206F_206C_206E_200D_206E_200B_202D_202A_206A_206C_200F_206A_206C_202E() - { - return Environment.TickCount64; - } - - static float? _202E_200B_206E_200B_206D_202B_202C_206C_200E_206C_202E_206E_202D_200E_200F_206D_202C_206F_206A_202D_206E_200D_202D_202C_202B_200F_200C_202D_200B_206A_206A_202B_206C_206A_202C_202C_202B_206A_202A_202E(JumpDestination P_0) - { - return P_0.DelaySeconds; - } - - static bool _206D_206B_206A_206D_202A_202D_206D_206A_200E_202A_202E_202E_206E_200C_206B_202D_206F_200E_200D_200C_206F_206E_202B_202D_200F_200B_206C_200C_202E_200F_206C_200E_202E_200C_202D_202B_206D_200E_202A_206A_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static IPlayerCharacter _200F_200B_206F_202B_206B_202D_206F_206C_206A_200F_206F_200F_200D_206F_206C_206E_200C_200B_206D_206C_200D_200B_202E_200D_202E_202C_206C_200F_200F_202C_200E_206F_206E_202E_206B_200F_200F_200D_200F_206F_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static float _200D_206B_202D_200B_206C_206A_200C_200F_202B_206A_202A_202A_202C_206D_202E_200C_202A_200B_202D_200F_206C_200B_202C_202A_200F_200B_206F_200B_200F_202B_202C_200E_200E_206A_200C_200B_202D_206B_200E_202C_202E(JumpDestination P_0) - { - return P_0.CalculateStopDistance(); - } - - static Vector3 _202E_206C_206B_200D_200F_202D_202D_200B_206E_202A_202B_206B_200D_202E_200F_202C_202D_206D_202C_206B_206A_206E_200C_206A_202C_206E_206E_202C_200E_202D_202D_202E_206F_202E_206D_206F_202A_202C_200C_206B_202E(IGameObject P_0) - { - return P_0.Position; - } - - static Vector3 _206A_200C_200D_200C_202B_202E_202A_206F_202E_206B_200D_200E_202E_202A_200F_206B_206B_206D_202B_200B_200D_202D_202D_200B_206C_206D_206C_202B_206C_202E_206F_200C_200C_200B_200E_200C_200B_200F_206F_206C_202E(JumpDestination P_0) - { - return P_0.Position; - } - - static void _200F_206F_200B_200C_202D_206C_202A_202A_202D_206D_200E_200B_202D_202B_206A_202A_206D_206F_200F_202E_200D_202A_200B_206F_200E_200B_206A_202B_200E_206A_206A_206F_200B_202A_200D_206D_200E_206F_200E_206C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogTrace(P_1, P_2); + IPlayerCharacter localPlayer = _objectTable.LocalPlayer; + if (localPlayer == null) + { + return ETaskResult.TaskComplete; + } + float num = base.Task.JumpDestination.CalculateStopDistance(); + if ((localPlayer.Position - base.Task.JumpDestination.Position).Length() <= num || localPlayer.Position.Y >= base.Task.JumpDestination.Position.Y - 0.5f) + { + return ETaskResult.TaskComplete; + } + _003Clogger_003EP.LogTrace("Y-Heights for jumps: player={A}, target={B}", localPlayer.Position.Y, base.Task.JumpDestination.Position.Y - 0.5f); + if (ActionManager.Instance()->UseAction(ActionType.GeneralAction, 2u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null)) + { + _attempts++; + } + if (_attempts >= 50) + { + throw new TaskException("Tried to jump too many times, didn't reach the target"); + } + _continueAt = Environment.TickCount64 + (long)(1000f * (base.Task.JumpDestination.DelaySeconds ?? 0.5f)); + return ETaskResult.StillRunning; } } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/MeldMateria.cs b/Questionable/Questionable.Controller.Steps.Interactions/MeldMateria.cs index 7e76692..8c0191f 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/MeldMateria.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/MeldMateria.cs @@ -1,10 +1,7 @@ using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; -using FFXIVClientStructs.FFXIV.Client.UI.Agent; using LLib; using LLib.Gear; using Microsoft.Extensions.Logging; @@ -17,168 +14,22 @@ internal static class MeldMateria { internal sealed class Factory : ITaskFactory { - [MethodImpl(MethodImplOptions.NoInlining)] public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_206C_206F_206E_206D_200C_200C_200B_202D_202D_206A_202D_206E_202D_206B_206D_200C_202D_200C_202B_206A_202D_200D_206A_206D_202B_202C_200E_206A_202C_206E_200D_202D_202E_200B_202C_200D_202E_202C_202C_202D_202E(step) == EInteractionType.MeldMateria) ? (-35265804) : (-35265801)); - while (true) + if (step.InteractionType != EInteractionType.MeldMateria) { - int num2 = num; - int num3 = -35265802; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0048; - case 2: - _200E_202D_202A_206B_202B_200C_202B_202A_202D_202B_200B_206D_206A_200B_202C_206C_202B_206D_200D_206F_200D_206C_200C_200D_202D_206B_202A_200D_200F_200E_206B_200F_206C_202A_206C_206A_202D_206A_202D_206B_202E((object)_206D_200E_206B_202D_200E_206B_200B_206E_206A_200C_202C_200D_206F_200E_202E_202A_206B_200E_202C_202A_200E_206B_200F_206E_202B_200D_202B_206C_202B_206B_200F_206E_206E_206E_200C_202C_200D_206F_200B_206B_202E(step), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(87510835)); - return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(new MeldTask(_206D_200E_206B_202D_200E_206B_200B_206E_206A_200C_202C_200D_206F_200E_202E_202A_206B_200E_202C_202A_200E_206B_200F_206E_202B_200D_202B_206C_202B_206B_200F_206E_206E_206E_200C_202C_200D_206F_200B_206B_202E(step).Value, _202D_202C_200D_200E_206C_200B_202B_202A_200F_202C_206C_202D_206B_206C_206E_200E_202D_202D_200B_202C_206F_202C_206A_202B_206E_200C_202A_200F_202E_202B_202E_202E_202A_206E_202C_206E_200F_206C_206E_200C_202E(step))); - case 1: - return Array.Empty<ITask>(); - } - continue; - IL_0048: - num = -35265801; + return Array.Empty<ITask>(); } - } - - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); - } - - static EInteractionType _206C_206F_206E_206D_200C_200C_200B_202D_202D_206A_202D_206E_202D_206B_206D_200C_202D_200C_202B_206A_202D_200D_206A_206D_202B_202C_200E_206A_202C_206E_200D_202D_202E_200B_202C_200D_202E_202C_202C_202D_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static uint? _206D_200E_206B_202D_200E_206B_200B_206E_206A_200C_202C_200D_206F_200E_202E_202A_206B_200E_202C_202A_200E_206B_200F_206E_202B_200D_202B_206C_202B_206B_200F_206E_206E_206E_200C_202C_200D_206F_200B_206B_202E(QuestStep P_0) - { - return P_0.ItemId; - } - - static void _200E_202D_202A_206B_202B_200C_202B_202A_202D_202B_200B_206D_206A_200B_202C_206C_202B_206D_200D_206F_200D_206C_200C_200D_202D_206B_202A_200D_200F_200E_206B_200F_206C_202A_206C_206A_202D_206A_202D_206B_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static uint? _202D_202C_200D_200E_206C_200B_202B_202A_200F_202C_206C_202D_206B_206C_206E_200E_202D_202D_200B_202C_206F_202C_206A_202B_206E_200C_202A_200F_202E_202B_202E_202E_202A_206E_202C_206E_200F_206C_206E_200C_202E(QuestStep P_0) - { - return P_0.DataId; + ArgumentNullException.ThrowIfNull(step.ItemId, "step.ItemId"); + return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(new MeldTask(step.ItemId.Value, step.DataId)); } } internal sealed record MeldTask(uint MateriaItemId, uint? TargetItemId) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202C_206C_206F_200F_206B_206F_206E_202B_206F_206C_202A_202E_206D_200B_200E_206B_206B_206F_202C_202C_200D_200E_200E_200C_200B_202D_202C_202C_202D_206B_202B_206E_202A_202D_202D_206B_202A_202B_206C_202E(typeof(MeldTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(13, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1811893686)); - defaultInterpolatedStringHandler.AppendFormatted(MateriaItemId); - string text = defaultInterpolatedStringHandler.ToStringAndClear(); - string text2; - if (!TargetItemId.HasValue) - { - text2 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-87324410); - } - else - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(11, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1399814468)); - defaultInterpolatedStringHandler2.AppendFormatted(TargetItemId); - text2 = defaultInterpolatedStringHandler2.ToStringAndClear(); - } - return _202E_202C_202B_206C_202A_206A_206D_200F_206D_206D_202D_200B_202E_200B_202B_200D_206F_200C_202B_200D_206D_200F_200D_206D_202D_202B_202E_206B_202B_200E_202D_202D_202A_200F_202D_200C_202C_200F_206D_202B_202E(text, text2); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200F_206A_202E_200B_206E_206E_200E_206D_200E_206F_206D_200E_206E_202C_200E_206D_202A_206B_200F_200B_200C_206E_206B_206C_206D_202B_206B_206E_200E_200D_202C_200C_200F_200F_202E_200C_200F_206C_206D_202E_202E(); - _202B_206C_200B_206F_200E_206D_200F_200B_202E_206F_200D_200C_202D_202E_206D_202E_200F_206F_202A_200C_202E_202D_200E_206A_206B_200B_206B_206F_200B_200E_202E_202D_206D_202A_202E_206E_200B_200C_202D_200F_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1788087081)); - _202B_206C_200B_206F_200E_206D_200F_200B_202E_206F_200D_200C_202D_202E_206D_202E_200F_206F_202A_200C_202E_202D_200E_206A_206B_200B_206B_206F_200B_200E_202E_202D_206D_202A_202E_206E_200B_200C_202D_200F_202E(builder, MateriaItemId.ToString()); - _202B_206C_200B_206F_200E_206D_200F_200B_202E_206F_200D_200C_202D_202E_206D_202E_200F_206F_202A_200C_202E_202D_200E_206A_206B_200B_206B_206F_200B_200E_202E_202D_206D_202A_202E_206E_200B_200C_202D_200F_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-902104469)); - _202B_206C_200B_206F_200E_206D_200F_200B_202E_206F_200D_200C_202D_202E_206D_202E_200F_206F_202A_200C_202E_202D_200E_206A_206B_200B_206B_206F_200B_200E_202E_202D_206D_202A_202E_206E_200B_200C_202D_200F_202E(builder, TargetItemId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(MeldTask? other) - { - int num = (((object)this == other) ? (-74015245) : (-74015243)); - while (true) - { - int num2 = num; - int num3 = -74015241; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return EqualityComparer<uint?>.Default.Equals(TargetItemId, other.TargetItemId); - case 1: - return false; - case 4: - return true; - case 3: - num = -74015243; - break; - case 6: - num = ((!EqualityComparer<uint>.Default.Equals(MateriaItemId, other.MateriaItemId)) ? (-74015242) : (-74015241)); - break; - case 5: - num = ((!_206F_202C_206B_202E_202E_206E_200E_206F_202E_202A_200B_206F_206C_200C_206A_200B_202E_202B_206F_200C_202C_206E_206A_202D_202B_200F_202E_202B_200D_202A_202A_206B_200C_206F_200E_200B_202D_200D_206F_202D_202E(EqualityContract, other.EqualityContract)) ? (-74015242) : (-74015247)); - break; - case 2: - num = (((object)other == null) ? (-74015242) : (-74015246)); - break; - } - } - } - - bool IEquatable<MeldTask>.Equals(MeldTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202C_206C_206F_200F_206B_206F_206E_202B_206F_206C_202A_202E_206D_200B_200E_206B_206B_206F_202C_202C_200D_200E_200E_200C_200B_202D_202C_202C_202D_206B_202B_206E_202A_202D_202D_206B_202A_202B_206C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static string _202E_202C_202B_206C_202A_206A_206D_200F_206D_206D_202D_200B_202E_200B_202B_200D_206F_200C_202B_200D_206D_200F_200D_206D_202D_202B_202E_206B_202B_200E_202D_202D_202A_200F_202D_200C_202C_200F_206D_202B_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static void _200F_206A_202E_200B_206E_206E_200E_206D_200E_206F_206D_200E_206E_202C_200E_206D_202A_206B_200F_200B_200C_206E_206B_206C_206D_202B_206B_206E_200E_200D_202C_200C_200F_200F_202E_200C_200F_206C_206D_202E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202B_206C_200B_206F_200E_206D_200F_200B_202E_206F_200D_200C_202D_202E_206D_202E_200F_206F_202A_200C_202E_202D_200E_206A_206B_200B_206B_206F_200B_200E_202E_202D_206D_202A_202E_206E_200B_200C_202D_200F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _206F_202C_206B_202E_202E_206E_200E_206F_202E_202A_200B_206F_206C_200C_206A_200B_202E_202B_206F_200C_202C_206E_206A_202D_202B_200F_202E_202B_200D_202A_202A_206B_200C_206F_200E_200B_202D_200D_206F_202D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"Meld materia {MateriaItemId}" + (TargetItemId.HasValue ? $" into item {TargetItemId}" : ""); } } @@ -212,414 +63,172 @@ internal static class MeldMateria public override bool HasTimedOut(float timeoutSeconds) { - return _206E_200F_202E_202E_200F_202B_200C_200E_206E_202C_202B_202A_200E_200D_206E_200C_200C_206F_202A_200E_206A_200D_200B_202C_202C_206E_202A_202C_206A_206F_200B_206F_202B_202B_200C_206C_200D_202D_200D_200C_202E() - _stateChangedAt > (long)(timeoutSeconds * 1000f); + return Environment.TickCount64 - _stateChangedAt > (long)(timeoutSeconds * 1000f); } private void SetState(EMeldState state) { _state = state; - _stateChangedAt = _206E_200F_202E_202E_200F_202B_200C_200E_206E_202C_202B_202A_200E_200D_206E_200C_200C_206F_202A_200E_206A_200D_200B_202C_202C_206E_202A_202C_206A_206F_200B_206F_202B_202B_200C_206C_200D_202D_200D_200C_202E(); + _stateChangedAt = Environment.TickCount64; } - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - _materiaStartCount = _202D_200B_206A_206C_200F_206D_200E_202B_202A_202B_200F_200D_206A_206E_202B_200F_206E_206B_202C_200E_202A_202D_206C_202B_202D_202A_200F_202C_200D_202D_200E_202C_206E_206B_202B_200D_206A_206A_200D_200D_202E(base.Task.MateriaItemId); - int num = ((_materiaStartCount != 0) ? (-739386602) : (-739386601)); - while (true) + _materiaStartCount = MateriaHelper.CountMateriaInInventory(base.Task.MateriaItemId); + if (_materiaStartCount == 0) { - int num2 = num; - int num3 = -739386603; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - throw new TaskException(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(545128444)); - case 4: - SetState(EMeldState.OpeningAgent); - return true; - case 2: - _200D_202C_206C_200B_206C_202C_202C_200D_202A_200F_202C_202E_200C_206A_206E_202A_206D_206C_202D_206C_206D_202E_200E_206C_206A_206B_200E_200F_206E_206B_206B_200B_200E_200B_202C_200B_202E_202E_202E_200E_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1528987763), new object[1] { base.Task.MateriaItemId }); - return false; - case 0: - num = -739386601; - break; - case 3: - num = (FindTargetItem() ? (-739386607) : (-739386604)); - break; - } + logger.LogInformation("Already used materia {MateriaId} or don't have it", base.Task.MateriaItemId); + return false; } + if (!FindTargetItem()) + { + throw new TaskException("Cannot find target item to meld materia into"); + } + SetState(EMeldState.OpeningAgent); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe override ETaskResult Update() { - int num = (_throttle.TryReset(0.5) ? 2029212334 : 2029212339); - int? num9 = default(int?); - int? num8 = default(int?); - int num7 = default(int); - while (true) + if (!_throttle.TryReset(0.5)) { - int num2 = num; - int num3 = 2029212349; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 11: - num = ((!_202E_206C_202B_202B_206D_202B_206F_206E_200C_206D_206D_206E_206B_200E_206A_200F_206B_200E_206F_202D_206E_206A_206C_200F_200D_200C_200D_202A_200E_200B_200E_206E_202D_200C_206B_202E_206A_200D_202D_206E_202E()) ? 2029212348 : 2029212335); - break; - case 22: - SetState(EMeldState.WaitingAfterCategory); - num = 2029212348; - break; - case 24: - goto IL_00fc; - case 23: - num = ((!_206F_206B_206B_202B_206B_200E_200C_206A_206C_206A_206E_200F_200C_200B_200F_200C_200B_200F_206F_206E_202C_200E_202C_206C_200E_202E_206F_206E_200C_202E_202A_206F_206A_206B_202C_206D_202B_202E_200C_202D_202E(num9.Value)) ? 2029212348 : 2029212321); - break; - case 18: - SetState(EMeldState.SelectingCategory); - num = 2029212348; - break; - case 9: - num = 2029212348; - break; - case 3: - _200D_202C_200B_206B_202B_206E_202B_200B_202C_206D_202C_202A_200D_202B_202C_202B_206D_206E_206D_202B_206D_202A_202E_202A_200B_206B_200B_202A_202D_202B_202B_202D_202A_206C_200C_206E_206C_206B_202C_200C_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-554197545), Array.Empty<object>()); - num = 2029212348; - break; - case 12: - _200D_202C_206C_200B_206C_202C_202C_200D_202A_200F_202C_202E_200C_206A_206E_202A_206D_206C_202D_206C_206D_202E_200E_206C_206A_206B_200E_200F_206E_206B_206B_200B_200E_200B_202C_200B_202E_202E_202E_200E_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1216192232), new object[1] { num8.Value }); - SetState(EMeldState.WaitingAfterItem); - num = 2029212348; - break; - case 10: - _200D_202C_206C_200B_206C_202C_202C_200D_202A_200F_202C_202E_200C_206A_206E_202A_206D_206C_202D_206C_206D_202E_200E_206C_206A_206B_200E_200F_206E_206B_206B_200B_200E_200B_202C_200B_202E_202E_202E_200E_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-15165068), Array.Empty<object>()); - SetState(EMeldState.WaitingForCompletion); - num = 2029212348; - break; - case 28: - _200D_202C_206C_200B_206C_202C_202C_200D_202A_200F_202C_202E_200C_206A_206E_202A_206D_206C_202D_206C_206D_202E_200E_206C_206A_206B_200E_200F_206E_206B_206B_200B_200E_200B_202C_200B_202E_202E_202E_200E_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-775372938), new object[1] { num9.Value }); - SetState(EMeldState.WaitingForDialog); - num = 2029212348; - break; - case 7: - num = ((!_206B_202C_206F_206E_200E_206C_200F_200F_206A_206D_206D_206E_206A_202C_206B_206E_206C_202C_206E_200E_202C_202D_202E_206E_206B_200D_206E_206E_206F_200D_200B_200F_200B_202B_200D_206D_206B_200D_202E_202C_202E(num8.Value)) ? 2029212348 : 2029212337); - break; - case 5: - goto IL_025d; - case 20: - SetState(EMeldState.WaitingForAgent); - num = 2029212348; - break; - case 4: - SetState(EMeldState.SelectingItem); - num = 2029212348; - break; - case 26: - goto IL_02ab; - case 14: - return ETaskResult.StillRunning; - case 27: - SetState(EMeldState.Confirming); - num = 2029212348; - break; - case 15: - goto IL_02f5; - case 0: - goto IL_0317; - case 1: - goto IL_0344; - case 21: - goto IL_0346; - case 17: - goto IL_0368; - case 16: - num = 2029212339; - break; - case 13: - goto IL_039c; - case 25: - _200D_202C_200B_206B_202B_206E_202B_200B_202C_206D_202C_202A_200D_202B_202C_202B_206D_206E_206D_202B_206D_202A_202E_202A_200B_206B_200B_202A_202D_202B_202B_202D_202A_206C_200C_206E_206C_206B_202C_200C_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1073359256), new object[1] { base.Task.MateriaItemId }); - num = 2029212348; - break; - case 2: - _200D_202C_206C_200B_206C_202C_202C_200D_202A_200F_202C_202E_200C_206A_206E_202A_206D_206C_202D_206C_206D_202E_200E_206C_206A_206B_200E_200F_206E_206B_206B_200B_200E_200B_202C_200B_202E_202E_202E_200E_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1739389446), new object[3] - { - base.Task.MateriaItemId, - _materiaStartCount, - num7 - }); - _202C_202E_206F_206C_206C_202E_202D_202B_202E_200F_202E_202C_200D_200F_202B_200C_202C_200D_206E_200C_200E_206C_206E_202A_206D_206C_206B_200F_200C_206B_200F_206E_202E_206A_206E_202E_200B_200E_206F_202C_202E(); - return ETaskResult.TaskComplete; - case 6: - SetState(EMeldState.SelectingMateria); - num = 2029212348; - break; - case 19: - num7 = _202D_200B_206A_206C_200F_206D_200E_202B_202A_202B_200F_200D_206A_206E_202B_200F_206E_206B_202C_200E_202A_202D_206C_202B_202D_202A_200F_202C_200D_202D_200E_202C_206E_206B_202B_200D_206A_206A_200D_200D_202E(base.Task.MateriaItemId); - num = ((num7 >= _materiaStartCount) ? 2029212341 : 2029212351); - break; - case 8: - { - switch (_state) - { - case EMeldState.WaitingForAgent: - break; - case EMeldState.WaitingAfterItem: - goto IL_00fc; - case EMeldState.WaitingForDialog: - goto IL_025d; - case EMeldState.SelectingMateria: - goto IL_02ab; - case EMeldState.OpeningAgent: - goto IL_02f5; - case EMeldState.SelectingCategory: - goto IL_0317; - case EMeldState.WaitingForCompletion: - goto IL_0344; - case EMeldState.WaitingAfterCategory: - goto IL_0346; - case EMeldState.Confirming: - goto IL_0368; - case EMeldState.SelectingItem: - goto IL_039c; - default: - goto IL_04cf; - } - goto case 11; - } - IL_04cf: - num = 2029212340; - break; - IL_039c: - num8 = _202A_202D_202A_206C_200D_202C_206F_200D_200B_200F_202C_206D_206C_202C_200E_202E_202B_200F_206B_200F_202D_206B_200F_200C_206B_206B_202A_206F_202B_200D_206B_206C_202B_202C_202A_200F_206C_202E_206B_200F_202E(_targetItem); - num = (num8.HasValue ? 2029212346 : 2029212350); - break; - IL_025d: - num = ((!_206B_206D_206F_200C_206D_202A_206E_206A_200F_202A_206F_206B_202A_202E_200C_200D_202B_206C_202B_200B_206B_202C_206C_206B_206A_206D_202A_202B_200B_206F_202A_206C_202A_206C_202E_202E_202B_202C_200E_202B_202E(gameGui)) ? 2029212348 : 2029212326); - break; - IL_0368: - num = ((!_206F_202B_206B_206C_200D_206F_206E_206E_202A_200B_200C_200D_202C_202A_200D_202D_202E_206A_200C_200D_200D_206A_206C_200C_202A_206A_200E_202E_202C_200F_206F_200B_206B_206F_200F_200E_200C_206C_200B_202C_202E(gameGui)) ? 2029212348 : 2029212343); - break; - IL_0346: - num = (_200C_202D_206C_202C_202A_200F_202E_206B_200F_200E_200D_206A_206F_200F_200D_206D_200F_206D_206A_202D_202A_200C_200D_206B_206D_200B_200E_206E_206D_206B_202C_206C_200D_206D_200D_206A_200E_202A_206B_202C_202E() ? 2029212348 : 2029212345); - break; - IL_00fc: - num = (_200C_202D_206C_202C_202A_200F_202E_206B_200F_200E_200D_206A_206F_200F_200D_206D_200F_206D_206A_202D_202A_200C_200D_206B_206D_200B_200E_206E_206D_206B_202C_206C_200D_206D_200D_206A_200E_202A_206B_202C_202E() ? 2029212348 : 2029212347); - break; - IL_0344: - return ETaskResult.StillRunning; - IL_0317: - num = ((!_202B_202B_206D_206B_200F_200C_206D_200C_206A_200C_200F_206A_202E_200B_202E_206A_200D_206F_206F_206B_202D_200E_200E_206B_206A_200B_202B_202E_202E_202C_200D_206C_206E_202C_202D_202E_206B_202D_202B_202E((int)_206B_202A_206F_206A_202D_206D_200D_202C_202E_202D_206E_202C_202C_206D_202C_206F_206A_202B_206F_200B_202D_202E_200C_200D_200E_206D_200F_202A_202E_202E_200C_202E_202B_202B_202A_200C_202C_200D_200C_206D_202E(_targetInventoryType))) ? 2029212348 : 2029212331); - break; - IL_02f5: - num = ((!_206B_206B_200C_206F_200F_206C_206D_206B_200F_200D_200D_200F_202C_202D_200E_202B_200B_202E_206E_202D_202A_200D_200D_206A_200C_202E_200E_202C_202B_200F_206E_202C_202E_206D_206E_200F_202C_206A_202C_202E()) ? 2029212348 : 2029212329); - break; - IL_02ab: - num9 = _202A_206E_200B_202E_200D_206C_202B_202E_202C_202B_206A_206B_206A_200E_200D_200E_206C_202D_200C_202D_202B_200F_202E_200B_200B_206F_200E_206D_206F_200B_206E_206F_202C_200F_200F_202D_206B_206E_206A_206F_202E(base.Task.MateriaItemId); - num = (num9.HasValue ? 2029212330 : 2029212324); - break; - } + return ETaskResult.StillRunning; } + int num = MateriaHelper.CountMateriaInInventory(base.Task.MateriaItemId); + if (num < _materiaStartCount) + { + logger.LogInformation("Materia {MateriaId} melded successfully ({Old} -> {New})", base.Task.MateriaItemId, _materiaStartCount, num); + MeldActions.CloseMeldAgent(); + return ETaskResult.TaskComplete; + } + switch (_state) + { + case EMeldState.OpeningAgent: + if (MeldActions.TryOpenMeldAgent()) + { + SetState(EMeldState.WaitingForAgent); + } + break; + case EMeldState.WaitingForAgent: + if (MeldActions.IsMeldAgentReady()) + { + SetState(EMeldState.SelectingCategory); + } + break; + case EMeldState.SelectingCategory: + if (MeldActions.TrySelectItemCategory((int)MeldActions.GetFilterCategory(_targetInventoryType))) + { + SetState(EMeldState.WaitingAfterCategory); + } + break; + case EMeldState.WaitingAfterCategory: + if (!MeldActions.IsAgentLoading()) + { + SetState(EMeldState.SelectingItem); + } + break; + case EMeldState.SelectingItem: + { + int? num2 = MeldActions.FindItemIndex(_targetItem); + if (!num2.HasValue) + { + logger.LogWarning("Could not find target item in agent list"); + } + else if (MeldActions.TrySelectItem(num2.Value)) + { + logger.LogInformation("Selected item at agent index {Index}", num2.Value); + SetState(EMeldState.WaitingAfterItem); + } + break; + } + case EMeldState.WaitingAfterItem: + if (!MeldActions.IsAgentLoading()) + { + SetState(EMeldState.SelectingMateria); + } + break; + case EMeldState.SelectingMateria: + { + int? num3 = MeldActions.FindMateriaIndex(base.Task.MateriaItemId); + if (!num3.HasValue) + { + logger.LogWarning("Could not find materia {MateriaId} in agent list", base.Task.MateriaItemId); + } + else if (MeldActions.TrySelectMateria(num3.Value)) + { + logger.LogInformation("Selected materia at agent index {Index}", num3.Value); + SetState(EMeldState.WaitingForDialog); + } + break; + } + case EMeldState.WaitingForDialog: + if (MeldActions.IsMeldDialogReady(gameGui)) + { + SetState(EMeldState.Confirming); + } + break; + case EMeldState.Confirming: + if (MeldActions.TryConfirmMeld(gameGui)) + { + logger.LogInformation("Confirmed meld"); + SetState(EMeldState.WaitingForCompletion); + } + break; + } + return ETaskResult.StillRunning; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe bool FindTargetItem() { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? (-1479293445) : (-1479293444)); - int num5 = default(int); - ReadOnlySpan<InventoryType> readOnlySpan = default(ReadOnlySpan<InventoryType>); - InventoryType inventoryType = default(InventoryType); - InventoryContainer* inventoryContainer = default(InventoryContainer*); - int num6 = default(int); - InventoryItem* inventorySlot = default(InventoryItem*); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1479293451; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return false; + } + ReadOnlySpan<InventoryType> readOnlySpan = new InventoryType[15] + { + InventoryType.Inventory1, + InventoryType.Inventory2, + InventoryType.Inventory3, + InventoryType.Inventory4, + InventoryType.ArmoryMainHand, + InventoryType.ArmoryOffHand, + InventoryType.ArmoryHead, + InventoryType.ArmoryBody, + InventoryType.ArmoryHands, + InventoryType.ArmoryLegs, + InventoryType.ArmoryFeets, + InventoryType.ArmoryEar, + InventoryType.ArmoryNeck, + InventoryType.ArmoryWrist, + InventoryType.ArmoryRings + }; + for (int i = 0; i < readOnlySpan.Length; i++) + { + InventoryType inventoryType = readOnlySpan[i]; + InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(inventoryType); + if (inventoryContainer == null) { - case 7: - { - int num10 = num5; - num3 = 1; - num4 = num10; - int num11 = num4 ^ num3; - int num12 = num4 & num3; - num5 = num11 + (num12 + num12); - num = -1479293456; - break; + continue; } - case 5: - num = ((num5 < readOnlySpan.Length) ? (-1479293442) : (-1479293455)); - break; - case 11: - inventoryType = readOnlySpan[num5]; - inventoryContainer = ptr->GetInventoryContainer(inventoryType); - num = ((inventoryContainer == null) ? (-1479293454) : (-1479293452)); - break; - case 1: - num6 = 0; - num = -1479293441; - break; - case 13: - _targetItem = inventorySlot; - _targetInventoryType = inventoryType; - _200D_202C_206C_200B_206C_202C_202C_200D_202A_200F_202C_202E_200C_206A_206E_202A_206D_206C_202D_206C_206D_202E_200E_206C_206A_206B_200E_200F_206E_206B_206B_200B_200E_200B_202C_200B_202E_202E_202E_200E_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1804696669), new object[3] - { - inventorySlot->ItemId, - inventoryType, - num6 - }); - return true; - case 12: - num = -1479293444; - break; - case 2: - inventorySlot = inventoryContainer->GetInventorySlot(num6); - num = ((inventorySlot == null) ? (-1479293450) : (-1479293443)); - break; - case 14: - readOnlySpan = new InventoryType[15] - { - InventoryType.Inventory1, - InventoryType.Inventory2, - InventoryType.Inventory3, - InventoryType.Inventory4, - InventoryType.ArmoryMainHand, - InventoryType.ArmoryOffHand, - InventoryType.ArmoryHead, - InventoryType.ArmoryBody, - InventoryType.ArmoryHands, - InventoryType.ArmoryLegs, - InventoryType.ArmoryFeets, - InventoryType.ArmoryEar, - InventoryType.ArmoryNeck, - InventoryType.ArmoryWrist, - InventoryType.ArmoryRings - }; - num5 = 0; - num = -1479293456; - break; - case 0: - num = ((inventorySlot->ItemId != base.Task.TargetItemId.Value) ? (-1479293450) : (-1479293448)); - break; - case 4: - return false; - case 9: - return false; - case 6: - num = ((!base.Task.TargetItemId.HasValue) ? (-1479293448) : (-1479293451)); - break; - case 10: - num = ((num6 < inventoryContainer->Size) ? (-1479293449) : (-1479293454)); - break; - case 3: + for (int j = 0; j < inventoryContainer->Size; j++) { - int num7 = num6; - num3 = 1; - num4 = num7; - int num8 = num4 ^ num3; - int num9 = num4 & num3; - num6 = num8 + (num9 + num9); - num = -1479293441; - break; - } - case 8: - num = ((inventorySlot->ItemId == 0) ? (-1479293450) : (-1479293453)); - break; + InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(j); + if (inventorySlot != null && inventorySlot->ItemId != 0 && (!base.Task.TargetItemId.HasValue || inventorySlot->ItemId == base.Task.TargetItemId.Value)) + { + _targetItem = inventorySlot; + _targetInventoryType = inventoryType; + logger.LogInformation("Found target item {ItemId} in {InvType} slot {Slot}", inventorySlot->ItemId, inventoryType, j); + return true; + } } } + return false; } public override bool ShouldInterruptOnDamage() { return false; } - - static long _206E_200F_202E_202E_200F_202B_200C_200E_206E_202C_202B_202A_200E_200D_206E_200C_200C_206F_202A_200E_206A_200D_200B_202C_202C_206E_202A_202C_206A_206F_200B_206F_202B_202B_200C_206C_200D_202D_200D_200C_202E() - { - return Environment.TickCount64; - } - - static int _202D_200B_206A_206C_200F_206D_200E_202B_202A_202B_200F_200D_206A_206E_202B_200F_206E_206B_202C_200E_202A_202D_206C_202B_202D_202A_200F_202C_200D_202D_200E_202C_206E_206B_202B_200D_206A_206A_200D_200D_202E(uint P_0) - { - return MateriaHelper.CountMateriaInInventory(P_0); - } - - static void _200D_202C_206C_200B_206C_202C_202C_200D_202A_200F_202C_202E_200C_206A_206E_202A_206D_206C_202D_206C_206D_202E_200E_206C_206A_206B_200E_200F_206E_206B_206B_200B_200E_200B_202C_200B_202E_202E_202E_200E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static void _202C_202E_206F_206C_206C_202E_202D_202B_202E_200F_202E_202C_200D_200F_202B_200C_202C_200D_206E_200C_200E_206C_206E_202A_206D_206C_206B_200F_200C_206B_200F_206E_202E_206A_206E_202E_200B_200E_206F_202C_202E() - { - MeldActions.CloseMeldAgent(); - } - - static bool _206B_206B_200C_206F_200F_206C_206D_206B_200F_200D_200D_200F_202C_202D_200E_202B_200B_202E_206E_202D_202A_200D_200D_206A_200C_202E_200E_202C_202B_200F_206E_202C_202E_206D_206E_200F_202C_206A_202C_202E() - { - return MeldActions.TryOpenMeldAgent(); - } - - static bool _202E_206C_202B_202B_206D_202B_206F_206E_200C_206D_206D_206E_206B_200E_206A_200F_206B_200E_206F_202D_206E_206A_206C_200F_200D_200C_200D_202A_200E_200B_200E_206E_202D_200C_206B_202E_206A_200D_202D_206E_202E() - { - return MeldActions.IsMeldAgentReady(); - } - - static AgentMateriaAttach.FilterCategory _206B_202A_206F_206A_202D_206D_200D_202C_202E_202D_206E_202C_202C_206D_202C_206F_206A_202B_206F_200B_202D_202E_200C_200D_200E_206D_200F_202A_202E_202E_200C_202E_202B_202B_202A_200C_202C_200D_200C_206D_202E(InventoryType P_0) - { - return MeldActions.GetFilterCategory(P_0); - } - - static bool _202B_202B_206D_206B_200F_200C_206D_200C_206A_200C_200F_206A_202E_200B_202E_206A_200D_206F_206F_206B_202D_200E_200E_206B_206A_200B_202B_202E_202E_202C_200D_206C_206E_202C_202D_202E_206B_202D_202B_202E(int P_0) - { - return MeldActions.TrySelectItemCategory(P_0); - } - - static bool _200C_202D_206C_202C_202A_200F_202E_206B_200F_200E_200D_206A_206F_200F_200D_206D_200F_206D_206A_202D_202A_200C_200D_206B_206D_200B_200E_206E_206D_206B_202C_206C_200D_206D_200D_206A_200E_202A_206B_202C_202E() - { - return MeldActions.IsAgentLoading(); - } - - unsafe static int? _202A_202D_202A_206C_200D_202C_206F_200D_200B_200F_202C_206D_206C_202C_200E_202E_202B_200F_206B_200F_202D_206B_200F_200C_206B_206B_202A_206F_202B_200D_206B_206C_202B_202C_202A_200F_206C_202E_206B_200F_202E(InventoryItem* P_0) - { - return MeldActions.FindItemIndex(P_0); - } - - static void _200D_202C_200B_206B_202B_206E_202B_200B_202C_206D_202C_202A_200D_202B_202C_202B_206D_206E_206D_202B_206D_202A_202E_202A_200B_206B_200B_202A_202D_202B_202B_202D_202A_206C_200C_206E_206C_206B_202C_200C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static bool _206B_202C_206F_206E_200E_206C_200F_200F_206A_206D_206D_206E_206A_202C_206B_206E_206C_202C_206E_200E_202C_202D_202E_206E_206B_200D_206E_206E_206F_200D_200B_200F_200B_202B_200D_206D_206B_200D_202E_202C_202E(int P_0) - { - return MeldActions.TrySelectItem(P_0); - } - - static int? _202A_206E_200B_202E_200D_206C_202B_202E_202C_202B_206A_206B_206A_200E_200D_200E_206C_202D_200C_202D_202B_200F_202E_200B_200B_206F_200E_206D_206F_200B_206E_206F_202C_200F_200F_202D_206B_206E_206A_206F_202E(uint P_0) - { - return MeldActions.FindMateriaIndex(P_0); - } - - static bool _206F_206B_206B_202B_206B_200E_200C_206A_206C_206A_206E_200F_200C_200B_200F_200C_200B_200F_206F_206E_202C_200E_202C_206C_200E_202E_206F_206E_200C_202E_202A_206F_206A_206B_202C_206D_202B_202E_200C_202D_202E(int P_0) - { - return MeldActions.TrySelectMateria(P_0); - } - - static bool _206B_206D_206F_200C_206D_202A_206E_206A_200F_202A_206F_206B_202A_202E_200C_200D_202B_206C_202B_200B_206B_202C_206C_206B_206A_206D_202A_202B_200B_206F_202A_206C_202A_206C_202E_202E_202B_202C_200E_202B_202E(IGameGui P_0) - { - return MeldActions.IsMeldDialogReady(P_0); - } - - static bool _206F_202B_206B_206C_200D_206F_206E_206E_202A_200B_200C_200D_202C_202A_200D_202D_202E_206A_200C_200D_200D_206A_206C_200C_202A_206A_200E_202E_202C_200F_206F_200B_206B_206F_200F_200E_200C_206C_200B_202C_202E(IGameGui P_0) - { - return MeldActions.TryConfirmMeld(P_0); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/Say.cs b/Questionable/Questionable.Controller.Steps.Interactions/Say.cs index f64fb7f..7e28127 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/Say.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/Say.cs @@ -1,7 +1,5 @@ using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Questionable.Controller.Steps.Common; using Questionable.Functions; using Questionable.Model; @@ -13,189 +11,42 @@ internal static class Say { internal sealed class Factory(ExcelFunctions excelFunctions) : ITaskFactory { - [MethodImpl(MethodImplOptions.NoInlining)] public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - EInteractionType eInteractionType = _200F_200B_202D_200D_206C_200C_200F_200B_200D_202E_200C_202D_202C_200F_200D_202B_206A_206C_202E_200B_206A_206B_206B_206E_202D_206D_202E_206B_200F_206C_202C_200E_200E_206B_202B_200C_202A_206D_206C_206D_202E(step); - int num = (((uint)(eInteractionType - 30) > 1u) ? (-860411763) : (-860411770)); - bool flag = default(bool); - while (true) + EInteractionType interactionType = step.InteractionType; + if ((uint)(interactionType - 30) <= 1u) { - int num2 = num; - int num3 = -860411762; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (step.ChatMessage == null) { - case 3: - flag = false; - num = -860411767; - break; - case 1: - { - _206E_200C_202C_200D_206A_206A_202C_206A_202B_202B_200D_202C_202E_202D_206D_200B_202B_206E_206E_200B_206F_202C_200B_200B_202E_200C_206F_202A_202E_206C_206A_202E_202D_200F_200F_200F_206A_200B_200F_202E((object)_206B_200D_206E_206B_202E_202C_202D_202C_202A_202E_206F_200D_206D_206A_200D_206F_206C_202E_206D_200C_206B_200C_202D_202E_202E_200F_200B_206C_206E_202E_200C_200F_206A_206D_206E_202D_202E_202C_206D_200E_202E(step), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-312135304)); - string? text = excelFunctions.GetDialogueText(quest, _206F_200C_206F_206F_206B_200F_202C_202D_206D_200C_200E_206C_206A_200C_202C_200F_206A_202C_202E_206F_206A_206A_206F_200F_202A_200F_206E_200D_206D_200F_202E_206C_200C_206C_200D_206B_206E_200C_206E_202E(_206B_200D_206E_206B_202E_202C_202D_202C_202A_202E_206F_200D_206D_206A_200D_206F_206C_202E_206D_200C_206B_200C_202D_202E_202E_200F_200B_206C_206E_202E_200C_200F_206A_206D_206E_202D_202E_202C_206D_200E_202E(step)), _206C_206B_206C_200D_200E_202C_202C_202A_202B_206A_202C_202D_206B_202C_200C_206A_202E_202E_200D_202B_202A_200B_206A_200E_200F_200E_206D_200B_206B_202B_200B_202E_206E_200C_200F_202E_202D_200F_200D_202E(_206B_200D_206E_206B_202E_202C_202D_202C_202A_202E_206F_200D_206D_206A_200D_206F_206C_202E_206D_200C_206B_200C_202D_202E_202E_200F_200B_206C_206E_202E_200C_200F_206A_206D_206E_202D_202E_202C_206D_200E_202E(step)), isRegex: false).GetString(); - _206E_200C_202C_200D_206A_206A_202C_206A_202B_202B_200D_202C_202E_202D_206D_200B_202B_206E_206E_200B_206F_202C_200B_200B_202E_200C_206F_202A_202E_206C_206A_202E_202D_200F_200F_200F_206A_200B_200F_202E((object)text, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1509183422)); - Mount.UnmountTask unmountTask = new Mount.UnmountTask(); - Task task = new Task(text); - return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] { unmountTask, task }); - } - case 2: - num = -860411770; - break; - case 5: - num = ((_200F_200B_202D_200D_206C_200C_200F_200B_200D_202E_200C_202D_202C_200F_200D_202B_206A_206C_202E_200B_206A_206B_206B_206E_202D_206D_202E_206B_200F_206C_202C_200E_200E_206B_202B_200C_202A_206D_206C_206D_202E(step) == EInteractionType.Say) ? (-860411761) : (-860411768)); - break; - case 8: - flag = true; - num = -860411767; - break; - case 7: - num = ((!flag) ? (-860411765) : (-860411766)); - break; - case 0: return Array.Empty<ITask>(); - case 6: - return Array.Empty<ITask>(); - case 4: - num = ((_206B_200D_206E_206B_202E_202C_202D_202C_202A_202E_206F_200D_206D_206A_200D_206F_206C_202E_206D_200C_206B_200C_202D_202E_202E_200F_200B_206C_206E_202E_200C_200F_206A_206D_206E_202D_202E_202C_206D_200E_202E(step) != null) ? (-860411761) : (-860411762)); - break; } } - } - - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); - } - - static EInteractionType _200F_200B_202D_200D_206C_200C_200F_200B_200D_202E_200C_202D_202C_200F_200D_202B_206A_206C_202E_200B_206A_206B_206B_206E_202D_206D_202E_206B_200F_206C_202C_200E_200E_206B_202B_200C_202A_206D_206C_206D_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static ChatMessage _206B_200D_206E_206B_202E_202C_202D_202C_202A_202E_206F_200D_206D_206A_200D_206F_206C_202E_206D_200C_206B_200C_202D_202E_202E_200F_200B_206C_206E_202E_200C_200F_206A_206D_206E_202D_202E_202C_206D_200E_202E(QuestStep P_0) - { - return P_0.ChatMessage; - } - - static void _206E_200C_202C_200D_206A_206A_202C_206A_202B_202B_200D_202C_202E_202D_206D_200B_202B_206E_206E_200B_206F_202C_200B_200B_202E_200C_206F_202A_202E_206C_206A_202E_202D_200F_200F_200F_206A_200B_200F_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static string _206F_200C_206F_206F_206B_200F_202C_202D_206D_200C_200E_206C_206A_200C_202C_200F_206A_202C_202E_206F_206A_206A_206F_200F_202A_200F_206E_200D_206D_200F_202E_206C_200C_206C_200D_206B_206E_200C_206E_202E(ChatMessage P_0) - { - return P_0.ExcelSheet; - } - - static string _206C_206B_206C_200D_200E_202C_202C_202A_202B_206A_202C_202D_206B_202C_200C_206A_202E_202E_200D_202B_202A_200B_206A_200E_200F_200E_206D_200B_206B_202B_200B_202E_206E_200C_200F_202E_202D_200F_200D_202E(ChatMessage P_0) - { - return P_0.Key; + else if (step.InteractionType != EInteractionType.Say) + { + return Array.Empty<ITask>(); + } + ArgumentNullException.ThrowIfNull(step.ChatMessage, "step.ChatMessage"); + string? text = excelFunctions.GetDialogueText(quest, step.ChatMessage.ExcelSheet, step.ChatMessage.Key, isRegex: false).GetString(); + ArgumentNullException.ThrowIfNull(text, "excelString"); + Mount.UnmountTask unmountTask = new Mount.UnmountTask(); + Task task = new Task(text); + return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] { unmountTask, task }); } } internal sealed record Task(string ChatMessage) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202B_200D_200F_202A_206D_206C_202C_200F_206A_206F_206C_200E_200F_200C_202E_200D_206C_202A_206E_200B_206F_206D_202E_206E_200B_200C_206A_200D_206B_202A_202A_206F_202C_202E_202A_202D_206E_202B_202A_202E_202E(typeof(Task).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return _206D_200F_202C_202C_202B_202B_202C_200F_200C_202B_206B_206A_202C_206E_200D_206C_200F_206F_200C_206F_206D_200F_206B_202C_202C_206B_202D_200C_206F_200C_202C_200E_206C_202D_200C_200B_200E_206C_202D_206B_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-738399246), ChatMessage, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200B_202C_202A_200C_202C_206F_206B_206E_200B_200B_200F_202B_202D_202B_200C_200D_206A_200F_206A_200D_206C_206D_200D_206E_202E_206C_206F_206F_200B_202B_202B_206D_202B_200D_206F_202B_206A_202A_202C_202B_202E(); - _206E_206C_200E_206E_202B_200C_200D_200B_202C_206F_206C_202C_202C_206B_200D_200D_202A_200E_206C_206C_200E_200E_206B_206B_202A_200D_206C_206D_202A_202C_206F_200D_202D_200D_206C_206A_200E_206F_206B_200E_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1224470914)); - _206B_206F_200B_202D_202E_202D_206E_200F_206B_206F_200D_206F_200D_206C_202D_200F_202C_206D_202E_206A_206B_202A_202B_200C_200B_200E_200F_200D_202E_206B_206D_206D_200C_200E_200B_202D_202D_200E_202E_202B_202E(builder, (object)ChatMessage); - return true; - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? (-652063251) : (-652063254)); - while (true) - { - int num2 = num; - int num3 = -652063250; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return true; - case 4: - num = (((object)other == null) ? (-652063249) : (-652063250)); - break; - case 1: - return false; - case 2: - return EqualityComparer<string>.Default.Equals(ChatMessage, other.ChatMessage); - case 0: - num = ((!_202E_202D_202C_202D_202B_202D_202E_206E_200B_200F_200E_200E_206E_206A_202C_200F_202B_206D_200D_202A_202D_206A_206B_200D_206A_206E_200E_206F_202A_200C_202E_206D_200C_200B_202B_206B_206C_202B_200B_206F_202E(EqualityContract, other.EqualityContract)) ? (-652063249) : (-652063252)); - break; - case 5: - num = -652063254; - break; - } - } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202B_200D_200F_202A_206D_206C_202C_200F_206A_206F_206C_200E_200F_200C_202E_200D_206C_202A_206E_200B_206F_206D_202E_206E_200B_200C_206A_200D_206B_202A_202A_206F_202C_202E_202A_202D_206E_202B_202A_202E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static string _206D_200F_202C_202C_202B_202B_202C_200F_200C_202B_206B_206A_202C_206E_200D_206C_200F_206F_200C_206F_206D_200F_206B_202C_202C_206B_202D_200C_206F_200C_202C_200E_206C_202D_200C_200B_200E_206C_202D_206B_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static void _200B_202C_202A_200C_202C_206F_206B_206E_200B_200B_200F_202B_202D_202B_200C_200D_206A_200F_206A_200D_206C_206D_200D_206E_202E_206C_206F_206F_200B_202B_202B_206D_202B_200D_206F_202B_206A_202A_202C_202B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206E_206C_200E_206E_202B_200C_200D_200B_202C_206F_206C_202C_202C_206B_200D_200D_202A_200E_206C_206C_200E_200E_206B_206B_202A_200D_206C_206D_202A_202C_206F_200D_202D_200D_206C_206A_200E_206F_206B_200E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206B_206F_200B_202D_202E_202D_206E_200F_206B_206F_200D_206F_200D_206C_202D_200F_202C_206D_202E_206A_206B_202A_202B_200C_200B_200E_200F_200D_202E_206B_206D_206D_200C_200E_200B_202D_202D_200E_202E_202B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202E_202D_202C_202D_202B_202D_202E_206E_200B_200F_200E_200E_206E_206A_202C_200F_202B_206D_200D_202A_202D_206A_206B_200D_206A_206E_200E_206F_202A_200C_202E_206D_200C_200B_202B_206B_206C_202B_200B_206F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "Say(" + ChatMessage + ")"; } } internal sealed class UseChat : AbstractDelayedTaskExecutor<Task> { - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool StartInternal() { - ChatFunctions.ExecuteCommand(_206E_206D_200E_202D_200C_206C_202E_200F_206E_200B_202E_206D_202D_202D_206B_202A_202D_202B_200E_202A_200C_200B_206D_202D_200E_206E_202D_206A_200C_206D_202C_206C_202C_206E_202E_202A_200C_202E_202E_202E_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-565060687), base.Task.ChatMessage)); + ChatFunctions.ExecuteCommand("/say " + base.Task.ChatMessage); return true; } @@ -203,10 +54,5 @@ internal static class Say { return true; } - - static string _206E_206D_200E_202D_200C_206C_202E_200F_206E_200B_202E_206D_202D_202D_206B_202A_202D_202B_200E_202A_200C_200B_206D_202D_200E_206E_202D_206A_200C_206D_202C_206C_202C_206E_202E_202A_200C_202E_202E_202E_202E(string P_0, string P_1) - { - return P_0 + P_1; - } } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/SinglePlayerDuty.cs b/Questionable/Questionable.Controller.Steps.Interactions/SinglePlayerDuty.cs index a63f6b1..50fd8bf 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/SinglePlayerDuty.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/SinglePlayerDuty.cs @@ -1,11 +1,7 @@ using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; @@ -39,641 +35,98 @@ internal static class SinglePlayerDuty internal sealed class Factory(BossModIpc bossModIpc, WrathComboModule wrathComboModule, RotationSolverRebornModule rsrModule, Configuration configuration, TerritoryData territoryData, QuestFunctions questFunctions, DutyRetryState dutyRetryState, ICondition condition, IClientState clientState, IObjectTable objectTable) : ITaskFactory { - [CompilerGenerated] - private sealed class _003CCreateAllTasks_003Ed__11 : IEnumerable<ITask>, IEnumerable, IEnumerator<ITask>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ITask _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - private QuestStep step; - - public QuestStep _003C_003E3__step; - - public Factory _003C_003E4__this; - - private Quest quest; - - public Quest _003C_003E3__quest; - - private byte _003CseqBefore_003E5__2; - - private IReadOnlyList<byte> _003CvarsBefore_003E5__3; - - private List<ITask> _003CdutyTasks_003E5__4; - - private List<ITask>.Enumerator _003C_003E7__wrap4; - - ITask IEnumerator<ITask>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CCreateAllTasks_003Ed__11(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _206B_202C_206B_200B_200C_202B_202A_202E_206F_202C_200E_200C_206B_206D_200E_200D_200E_206E_200F_202E_206E_200E_202D_200C_202C_200B_206A_202C_206F_202C_206E_200E_206F_206E_200C_206C_206C_200B_202C_206A_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num == -3) ? (-1270802467) : (-1270802466)); - while (true) - { - int num3 = num2; - int num4 = -1270802465; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - default: - continue; - case 0: - num2 = -1270802466; - continue; - case 1: - if (num == 2) - { - num2 = -1270802467; - continue; - } - break; - case 2: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003CvarsBefore_003E5__3 = null; - _003CdutyTasks_003E5__4 = null; - _003C_003E7__wrap4 = default(List<ITask>.Enumerator); - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - try - { - int num = _003C_003E1__state; - Factory CS_0024_003C_003E8__locals17 = _003C_003E4__this; - switch (num) - { - case 2: - goto IL_0283; - case 1: - goto IL_03d6; - case 0: - goto IL_0449; - case 3: - goto IL_04a2; - } - int num2 = -114893671; - goto IL_0030; - IL_03d6: - _003C_003E1__state = -1; - num2 = ((!CS_0024_003C_003E8__locals17.bossModIpc.IsConfiguredToRunSoloInstance(quest.Id, _206D_202A_206D_200C_206C_202C_202A_202A_206C_202D_202B_202E_202B_200C_200F_202B_206C_202D_202A_202B_206D_206F_200D_206E_200C_206E_200E_206E_200B_206D_200E_206E_200C_202B_202B_200D_202E_202E_206A_200E_202E(step))) ? (-114893693) : (-114893690)); - goto IL_0030; - IL_0030: - TerritoryData.ContentFinderConditionData contentFinderConditionData = default(TerritoryData.ContentFinderConditionData); - while (true) - { - int num3 = num2; - int num4 = -114893684; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 0: - _003CdutyTasks_003E5__4.Add(new Duty.EnableBossModPassiveForDutyTask()); - num2 = -114893679; - break; - case 21: - return false; - case 3: - throw new TaskException(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1303253303)); - case 10: - goto IL_0109; - case 19: - _003CdutyTasks_003E5__4.Add(new WaitCondition.Task(delegate - { - int num8 = ((Factory._206A_206B_202D_202C_206C_202C_200C_202E_202B_202E_200C_200F_202B_206C_202E_202A_200B_206E_200E_206F_202A_206A_200E_202B_200E_202D_200C_202E_202C_206C_202A_200F_202C_200D_202D_200C_206A_202A_202E_206A_202E(CS_0024_003C_003E8__locals17.clientState) == 688) ? 594200038 : 594200037); - while (true) - { - int num9 = num8; - int num10 = 594200036; - int num11 = num9; - int num12 = num11 + num10; - int num13 = num11 & num10; - switch (num12 - (num13 + num13)) - { - case 0: - goto IL_0055; - case 1: - return true; - case 2: - { - IGameObject gameObject = Factory._202E_202A_202D_202C_200C_200F_206F_206C_202D_206F_206A_206F_202C_202C_202B_202E_206C_202B_200D_206C_206D_206E_202B_200F_206B_200E_206D_202D_202D_206B_202B_200E_200E_202D_202E_206F_202B_202E_206D_202C_202E(CS_0024_003C_003E8__locals17.objectTable, 0); - Vector3 vector = ((gameObject != null) ? Factory._206D_202B_202B_206E_200E_200D_200F_200C_202E_206B_202E_206B_206E_202B_206C_206A_202A_200E_202E_200C_206D_200D_202B_202B_206E_206E_206D_206C_206D_200E_200C_206E_200C_200D_200D_200E_200E_202D_200C_200C_202E(gameObject) : default(Vector3)); - return (new Vector3(352.01f, -1.45f, 288.59f) - vector).Length() < 10f; - } - } - continue; - IL_0055: - num8 = 594200037; - } - }, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-647590790))); - _003CdutyTasks_003E5__4.Add(new Mount.UnmountTask()); - _003CdutyTasks_003E5__4.Add(new EnableAi()); - num2 = -114893668; - break; - case 2: - _003CdutyTasks_003E5__4.Add(new SetTarget(14643u)); - _003CdutyTasks_003E5__4.Add(new WaitCondition.Task(delegate - { - int num8 = (Factory._200D_206F_202B_202A_202E_206C_200B_202B_206F_202D_202C_200B_206E_200C_200C_200B_206D_202B_206C_206C_206A_200F_202C_202D_202A_200D_202B_200D_200D_206F_202E_206B_200D_206A_206A_202D_206F_202A_206E_200F_202E(CS_0024_003C_003E8__locals17.condition, ConditionFlag.Unconscious) ? (-535748773) : (-535748776)); - while (true) - { - int num9 = num8; - int num10 = -535748774; - int num11 = num9; - switch ((num11 | num10) - (num11 & num10)) - { - case 0: - goto IL_004c; - case 2: - return Factory._206A_206B_202D_202C_206C_202C_200C_202E_202B_202E_200C_200F_202B_206C_202E_202A_200B_206E_200E_206F_202A_206A_200E_202B_200E_202D_200C_202E_202C_206C_202A_200F_202C_200D_202D_200C_206A_202A_202E_206A_202E(CS_0024_003C_003E8__locals17.clientState) != 1052; - case 1: - return true; - } - continue; - IL_004c: - num8 = -535748776; - } - }, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2114872246))); - _003CdutyTasks_003E5__4.Add(new DisableAi()); - _003CdutyTasks_003E5__4.Add(new WaitCondition.Task(delegate - { - int num8 = ((!Factory._200D_206F_202B_202A_202E_206C_200B_202B_206F_202D_202C_200B_206E_200C_200C_200B_206D_202B_206C_206C_206A_200F_202C_202D_202A_200D_202B_200D_200D_206F_202E_206B_200D_206A_206A_202D_206F_202A_206E_200F_202E(CS_0024_003C_003E8__locals17.condition, ConditionFlag.Unconscious)) ? 269561027 : 269561026); - while (true) - { - int num9 = num8; - int num10 = 269561027; - int num11 = num9; - int num12 = num11 + num10; - int num13 = num11 & num10; - switch (num12 - (num13 + num13)) - { - case 0: - return true; - case 1: - return Factory._206A_206B_202D_202C_206C_202C_200C_202E_202B_202E_200C_200F_202B_206C_202E_202A_200B_206E_200E_206F_202A_206A_200E_202B_200E_202D_200C_202E_202C_206C_202A_200F_202C_200D_202D_200C_206A_202A_202E_206A_202E(CS_0024_003C_003E8__locals17.clientState) != 1052; - case 2: - goto IL_0066; - } - continue; - IL_0066: - num8 = 269561026; - } - }, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(724387601))); - _003CdutyTasks_003E5__4.Add(new EnableAi()); - num2 = -114893668; - break; - case 16: - _003CdutyTasks_003E5__4.Add(new WaitSinglePlayerDuty(contentFinderConditionData.ContentFinderConditionId)); - _003CdutyTasks_003E5__4.Add(new DisableAi()); - _003CdutyTasks_003E5__4.Add(new Duty.DisableCombatPluginsForDutyTask()); - _003C_003E7__wrap4 = _003CdutyTasks_003E5__4.GetEnumerator(); - _003C_003E1__state = -3; - num2 = -114893694; - break; - case 7: - goto end_IL_0030; - case 27: - return false; - case 13: - _003CdutyTasks_003E5__4.Add(new Duty.EnableBossModForDutyTask()); - num2 = -114893679; - break; - case 4: - goto IL_02c6; - case 28: - goto IL_0355; - case 14: - goto IL_037d; - case 23: - _003C_003E2__current = new Mount.UnmountTask(); - _003C_003E1__state = 1; - return true; - case 26: - num2 = -114893671; - break; - case 8: - goto IL_03d6; - case 9: - goto IL_041b; - case 17: - goto IL_0449; - case 5: - goto IL_047a; - case 6: - goto IL_04a2; - case 11: - _003CdutyTasks_003E5__4.Add(new WaitCondition.Task(delegate - { - int num8 = (CS_0024_003C_003E8__locals17.DutyActionsAvailable() ? 1858330759 : 1858330756); - while (true) - { - int num9 = num8; - int num10 = 1858330758; - int num11 = num9; - switch ((num11 | num10) - (num11 & num10)) - { - case 0: - goto IL_0046; - case 2: - return Factory._206A_206B_202D_202C_206C_202C_200C_202E_202B_202E_200C_200F_202B_206C_202E_202A_200B_206E_200E_206F_202A_206A_200E_202B_200E_202D_200C_202E_202C_206C_202A_200F_202C_200D_202D_200C_206A_202A_202E_206A_202E(CS_0024_003C_003E8__locals17.clientState) != 665; - case 1: - return true; - } - continue; - IL_0046: - num8 = 1858330756; - } - }, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1936756952))); - _003CdutyTasks_003E5__4.Add(new EnableAi()); - num2 = -114893668; - break; - case 12: - _003CdutyTasks_003E5__4.Add(new Duty.EnableWrathForDutyTask()); - num2 = -114893691; - break; - case 25: - _003CdutyTasks_003E5__4.Add(new Duty.EnableRsrForDutyTask()); - num2 = -114893691; - break; - case 22: - goto IL_053d; - case 18: - goto IL_0565; - case 20: - _003C_003Em__Finally1(); - _003C_003E7__wrap4 = default(List<ITask>.Enumerator); - _003C_003E2__current = new CheckDutyOutcome(quest.Id, _003CseqBefore_003E5__2, _003CvarsBefore_003E5__3, _202B_206A_202B_206F_200F_200B_206C_206D_206C_200C_202A_202D_206F_202E_206F_206B_206B_206C_200C_206E_200C_202D_200C_206B_202A_200E_206A_206A_200F_200D_206A_206E_202A_202A_206D_202D_200D_200E_206B_206B_202E(step), _003CdutyTasks_003E5__4); - _003C_003E1__state = 3; - return true; - case 24: - goto IL_05ec; - case 1: - { - ITask current = _003C_003E7__wrap4.Current; - _003C_003E2__current = current; - _003C_003E1__state = 2; - return true; - } - case 29: - goto IL_0643; - case 15: - return false; - } - continue; - IL_0643: - _003CdutyTasks_003E5__4.Add(new StartSinglePlayerDuty(contentFinderConditionData.ContentFinderConditionId)); - _003CdutyTasks_003E5__4.Add(new WaitAtStart.WaitDelay(TimeSpan.FromSeconds(2L))); - _003CdutyTasks_003E5__4.Add(new EnableAi()); - num2 = ((contentFinderConditionData.TerritoryId != 1052) ? (-114893670) : (-114893682)); - continue; - IL_0109: - num2 = (CS_0024_003C_003E8__locals17.territoryData.TryGetContentFinderConditionForSoloInstance(quest.Id, _200F_206A_206D_206F_206B_202D_202B_206F_200B_200F_202C_206B_206F_206A_206B_202E_206F_200C_202B_206F_202A_206E_206D_206C_202C_200C_206E_206B_200B_200B_200B_202A_200C_206B_206C_206A_202C_202D_206B_200D_202E(step), out contentFinderConditionData) ? (-114893688) : (-114893681)); - continue; - IL_0355: - num2 = ((!CS_0024_003C_003E8__locals17.rsrModule.IsAvailable()) ? (-114893691) : (-114893675)); - continue; - IL_05ec: - num2 = ((!CS_0024_003C_003E8__locals17.bossModIpc.IsSupported()) ? (-114893679) : (-114893684)); - continue; - IL_047a: - num2 = ((!CS_0024_003C_003E8__locals17.bossModIpc.IsSupported()) ? (-114893676) : (-114893695)); - continue; - IL_037d: - num2 = (_003C_003E7__wrap4.MoveNext() ? (-114893683) : (-114893672)); - continue; - IL_0565: - num2 = ((contentFinderConditionData.TerritoryId != 688) ? (-114893668) : (-114893665)); - continue; - IL_02c6: - QuestProgressInfo questProgressInfo = CS_0024_003C_003E8__locals17.questFunctions.GetQuestProgressInfo(quest.Id); - _003CseqBefore_003E5__2 = questProgressInfo?.Sequence ?? 0; - _003CvarsBefore_003E5__3 = questProgressInfo?.Variables.ToArray(); - CS_0024_003C_003E8__locals17.dutyRetryState.Reset(); - _003CdutyTasks_003E5__4 = new List<ITask>(); - num2 = ((!CS_0024_003C_003E8__locals17.wrathComboModule.IsAvailable()) ? (-114893680) : (-114893696)); - continue; - IL_041b: - num2 = ((CS_0024_003C_003E8__locals17.configuration.General.CombatModule != Configuration.ECombatModule.BossMod) ? (-114893676) : (-114893687)); - continue; - IL_053d: - num2 = ((contentFinderConditionData.TerritoryId != 665) ? (-114893666) : (-114893689)); - continue; - end_IL_0030: - break; - } - goto IL_0283; - IL_04a2: - _003C_003E1__state = -1; - _003CvarsBefore_003E5__3 = null; - _003CdutyTasks_003E5__4 = null; - num2 = -114893693; - goto IL_0030; - IL_0449: - _003C_003E1__state = -1; - num2 = ((_206F_200E_206B_206F_202C_202C_200C_202C_206C_206D_200B_206C_200E_200B_202C_206A_200B_206F_202A_206C_200C_202D_202D_200D_206B_206E_200C_202A_206A_200B_200D_200C_202E_200D_202B_202E_200F_206A_206A_200F_202E(step) == EInteractionType.SinglePlayerDuty) ? (-114893669) : (-114893673)); - goto IL_0030; - IL_0283: - _003C_003E1__state = -3; - num2 = -114893694; - goto IL_0030; - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - ((IDisposable)_003C_003E7__wrap4/*cast due to .constrained prefix*/).Dispose(); - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _200B_200C_206A_206D_206D_200C_206B_206D_206B_206E_200B_206D_200B_200B_202A_200D_206D_202E_206F_200E_206D_200D_202B_200B_200B_200D_206B_202C_202C_202E_206B_200E_206E_206A_202B_202B_202C_202B_200D_206E_202E(); - } - - [DebuggerHidden] - IEnumerator<ITask> IEnumerable<ITask>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? (-2042698329) : (-2042698330)); - _003CCreateAllTasks_003Ed__11 _003CCreateAllTasks_003Ed__ = default(_003CCreateAllTasks_003Ed__11); - while (true) - { - int num2 = num; - int num3 = -2042698332; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = -2042698330; - break; - case 0: - _003CCreateAllTasks_003Ed__.quest = _003C_003E3__quest; - _003CCreateAllTasks_003Ed__.step = _003C_003E3__step; - return _003CCreateAllTasks_003Ed__; - case 3: - _003CCreateAllTasks_003Ed__ = new _003CCreateAllTasks_003Ed__11(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = -2042698332; - break; - case 1: - _003C_003E1__state = 0; - _003CCreateAllTasks_003Ed__ = this; - num = -2042698332; - break; - case 2: - num = ((_003C_003El__initialThreadId != _206B_202C_206B_200B_200C_202B_202A_202E_206F_202C_200E_200C_206B_206D_200E_200D_200E_206E_200F_202E_206E_200E_202D_200C_202C_200B_206A_202C_206F_202C_206E_200E_206F_206E_200C_206C_206C_200B_202C_206A_202E()) ? (-2042698329) : (-2042698331)); - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ITask>)this).GetEnumerator(); - } - - static int _206B_202C_206B_200B_200C_202B_202A_202E_206F_202C_200E_200C_206B_206D_200E_200D_200E_206E_200F_202E_206E_200E_202D_200C_202C_200B_206A_202C_206F_202C_206E_200E_206F_206E_200C_206C_206C_200B_202C_206A_202E() - { - return Environment.CurrentManagedThreadId; - } - - static EInteractionType _206F_200E_206B_206F_202C_202C_200C_202C_206C_206D_200B_206C_200E_200B_202C_206A_200B_206F_202A_206C_200C_202D_202D_200D_206B_206E_200C_202A_206A_200B_200D_200C_202E_200D_202B_202E_200F_206A_206A_200F_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static SinglePlayerDutyOptions _206D_202A_206D_200C_206C_202C_202A_202A_206C_202D_202B_202E_202B_200C_200F_202B_206C_202D_202A_202B_206D_206F_200D_206E_200C_206E_200E_206E_200B_206D_200E_206E_200C_202B_202B_200D_202E_202E_206A_200E_202E(QuestStep P_0) - { - return P_0.SinglePlayerDutyOptions; - } - - static byte _200F_206A_206D_206F_206B_202D_202B_206F_200B_200F_202C_206B_206F_206A_206B_202E_206F_200C_202B_206F_202A_206E_206D_206C_202C_200C_206E_206B_200B_200B_200B_202A_200C_206B_206C_206A_202C_202D_206B_200D_202E(QuestStep P_0) - { - return P_0.SinglePlayerDutyIndex; - } - - static List<QuestWorkValue> _202B_206A_202B_206F_200F_200B_206C_206D_206C_200C_202A_202D_206F_202E_206F_206B_206B_206C_200C_206E_200C_202D_200C_206B_202A_200E_206A_206A_200F_200D_206A_206E_202A_202A_206D_202D_200D_200E_206B_206B_202E(QuestStep P_0) - { - return P_0.CompletionQuestVariablesFlags; - } - - static NotSupportedException _200B_200C_206A_206D_206D_200C_206B_206D_206B_206E_200B_206D_200B_200B_202A_200D_206D_202E_206F_200E_206D_200D_202B_200B_200B_200D_206B_202C_202C_202E_206B_200E_206E_206A_202B_202B_202C_202B_200D_206E_202E() - { - return new NotSupportedException(); - } - } - - [IteratorStateMachine(typeof(_003CCreateAllTasks_003Ed__11))] public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CCreateAllTasks_003Ed__11(-2) + if (step.InteractionType != EInteractionType.SinglePlayerDuty) { - _003C_003E4__this = this, - _003C_003E3__quest = quest, - _003C_003E3__step = step - }; - } - - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); + yield break; + } + yield return new Mount.UnmountTask(); + if (!bossModIpc.IsConfiguredToRunSoloInstance(quest.Id, step.SinglePlayerDutyOptions)) + { + yield break; + } + if (!territoryData.TryGetContentFinderConditionForSoloInstance(quest.Id, step.SinglePlayerDutyIndex, out TerritoryData.ContentFinderConditionData contentFinderConditionData)) + { + throw new TaskException("Failed to get content finder condition for solo instance"); + } + QuestProgressInfo questProgressInfo = questFunctions.GetQuestProgressInfo(quest.Id); + byte seqBefore = questProgressInfo?.Sequence ?? 0; + IReadOnlyList<byte> varsBefore = questProgressInfo?.Variables.ToArray(); + dutyRetryState.Reset(); + List<ITask> dutyTasks = new List<ITask>(); + if (wrathComboModule.IsAvailable()) + { + dutyTasks.Add(new Duty.EnableWrathForDutyTask()); + } + else if (rsrModule.IsAvailable()) + { + dutyTasks.Add(new Duty.EnableRsrForDutyTask()); + } + if (configuration.General.CombatModule == Configuration.ECombatModule.BossMod && bossModIpc.IsSupported()) + { + dutyTasks.Add(new Duty.EnableBossModForDutyTask()); + } + else if (bossModIpc.IsSupported()) + { + dutyTasks.Add(new Duty.EnableBossModPassiveForDutyTask()); + } + dutyTasks.Add(new StartSinglePlayerDuty(contentFinderConditionData.ContentFinderConditionId)); + dutyTasks.Add(new WaitAtStart.WaitDelay(TimeSpan.FromSeconds(2L))); + dutyTasks.Add(new EnableAi()); + if (contentFinderConditionData.TerritoryId == 1052) + { + dutyTasks.Add(new SetTarget(14643u)); + dutyTasks.Add(new WaitCondition.Task(() => condition[ConditionFlag.Unconscious] || clientState.TerritoryType != 1052, "Wait(death)")); + dutyTasks.Add(new DisableAi()); + dutyTasks.Add(new WaitCondition.Task(() => !condition[ConditionFlag.Unconscious] || clientState.TerritoryType != 1052, "Wait(resurrection)")); + dutyTasks.Add(new EnableAi()); + } + else if (contentFinderConditionData.TerritoryId == 665) + { + dutyTasks.Add(new WaitCondition.Task(() => DutyActionsAvailable() || clientState.TerritoryType != 665, "Wait(Phase 2)")); + dutyTasks.Add(new EnableAi()); + } + else if (contentFinderConditionData.TerritoryId == 688) + { + dutyTasks.Add(new WaitCondition.Task(delegate + { + if (clientState.TerritoryType != 688) + { + return true; + } + Vector3 vector = objectTable[0]?.Position ?? default(Vector3); + return (new Vector3(352.01f, -1.45f, 288.59f) - vector).Length() < 10f; + }, "Wait(moving to Ovoo)")); + dutyTasks.Add(new Mount.UnmountTask()); + dutyTasks.Add(new EnableAi()); + } + dutyTasks.Add(new WaitSinglePlayerDuty(contentFinderConditionData.ContentFinderConditionId)); + dutyTasks.Add(new DisableAi()); + dutyTasks.Add(new Duty.DisableCombatPluginsForDutyTask()); + foreach (ITask item in dutyTasks) + { + yield return item; + } + yield return new CheckDutyOutcome(quest.Id, seqBefore, varsBefore, step.CompletionQuestVariablesFlags, dutyTasks); } private unsafe bool DutyActionsAvailable() { ContentDirector* contentDirector = EventFramework.Instance()->GetContentDirector(); - int num = ((contentDirector == null) ? (-1007812082) : (-1007812083)); - while (true) + if (contentDirector != null) { - int num2 = num; - int num3 = -1007812084; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0050; - case 1: - return contentDirector->DutyActionManager.ActionsPresent; - case 2: - return false; - } - continue; - IL_0050: - num = -1007812083; + return contentDirector->DutyActionManager.ActionsPresent; } - } - - static bool _200D_206F_202B_202A_202E_206C_200B_202B_206F_202D_202C_200B_206E_200C_200C_200B_206D_202B_206C_206C_206A_200F_202C_202D_202A_200D_202B_200D_200D_206F_202E_206B_200D_206A_206A_202D_206F_202A_206E_200F_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static uint _206A_206B_202D_202C_206C_202C_200C_202E_202B_202E_200C_200F_202B_206C_202E_202A_200B_206E_200E_206F_202A_206A_200E_202B_200E_202D_200C_202E_202C_206C_202A_200F_202C_200D_202D_200C_206A_202A_202E_206A_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static IGameObject _202E_202A_202D_202C_200C_200F_206F_206C_202D_206F_206A_206F_202C_202C_202B_202E_206C_202B_200D_206C_206D_206E_202B_200F_206B_200E_206D_202D_202D_206B_202B_200E_200E_202D_202E_206F_202B_202E_206D_202C_202E(IObjectTable P_0, int P_1) - { - return P_0[P_1]; - } - - static Vector3 _206D_202B_202B_206E_200E_200D_200F_200C_202E_206B_202E_206B_206E_202B_206C_206A_202A_200E_202E_200C_206D_200D_202B_202B_206E_206E_206D_206C_206D_200E_200C_206E_200C_200D_200D_200E_200E_202D_200C_200C_202E(IGameObject P_0) - { - return P_0.Position; + return false; } } internal sealed record StartSinglePlayerDuty(uint ContentFinderConditionId) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202A_202C_200C_206D_202C_206E_206A_200C_200D_206C_202E_206F_202A_202D_206C_206B_206C_202D_200B_200F_202D_200D_202C_202A_200C_200C_206F_200E_202C_206B_206E_202D_200F_202C_202B_200F_200C_206E_206F_206F_202E(typeof(StartSinglePlayerDuty).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(32, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1699884371)); - defaultInterpolatedStringHandler.AppendFormatted(ContentFinderConditionId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202A_206B_202A_200B_206B_200D_206C_200D_200B_206A_206C_200B_200C_206F_200E_200C_206F_200D_202E_202D_200D_206E_206A_206E_202B_200C_202E_200B_202D_202D_200D_200F_200F_206A_202B_200E_202A_202A_202C_206A_202E(); - _206D_206B_206B_200C_206D_206B_200D_206E_202D_206E_200F_206E_206A_200C_200C_206F_206C_206A_202A_202D_200B_202C_206E_202D_202A_200D_206C_200F_206C_202E_200B_206B_206E_202A_206A_206F_206A_206D_202D_200E_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(573777242)); - _206D_206B_206B_200C_206D_206B_200D_206E_202D_206E_200F_206E_206A_200C_200C_206F_206C_206A_202A_202D_200B_202C_206E_202D_202A_200D_206C_200F_206C_202E_200B_206B_206E_202A_206A_206F_206A_206D_202D_200E_202E(builder, ContentFinderConditionId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(StartSinglePlayerDuty? other) - { - int num = (((object)this == other) ? 182286437 : 182286433); - while (true) - { - int num2 = num; - int num3 = 182286432; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 182286433; - break; - case 0: - return false; - case 3: - return EqualityComparer<uint>.Default.Equals(ContentFinderConditionId, other.ContentFinderConditionId); - case 4: - num = ((!_202B_202D_206F_200E_200B_206C_206C_202C_200E_200D_206A_202C_206A_206E_200B_200C_200E_202E_206C_206A_200D_202C_206C_206A_200F_200B_202C_206D_206D_206D_206D_200F_202B_202C_202E_202D_200C_202A_200C_202D_202E(EqualityContract, other.EqualityContract)) ? 182286432 : 182286435); - break; - case 5: - return true; - case 1: - num = (((object)other == null) ? 182286432 : 182286436); - break; - } - } - } - - bool IEquatable<StartSinglePlayerDuty>.Equals(StartSinglePlayerDuty? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202A_202C_200C_206D_202C_206E_206A_200C_200D_206C_202E_206F_202A_202D_206C_206B_206C_202D_200B_200F_202D_200D_202C_202A_200C_200C_206F_200E_202C_206B_206E_202D_200F_202C_202B_200F_200C_206E_206F_206F_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _202A_206B_202A_200B_206B_200D_206C_200D_200B_206A_206C_200B_200C_206F_200E_200C_206F_200D_202E_202D_200D_206E_206A_206E_202B_200C_202E_200B_202D_202D_200D_200F_200F_206A_202B_200E_202A_202A_202C_206A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206D_206B_206B_200C_206D_206B_200D_206E_202D_206E_200F_206E_206A_200C_200C_206F_206C_206A_202A_202D_200B_202C_206E_202D_202A_200D_206C_200F_206C_202E_200B_206B_206E_202A_206A_206F_206A_206D_202D_200E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _202B_202D_206F_200E_200B_206C_206C_202C_200E_200D_206A_202C_206A_206E_200B_200C_200E_202E_206C_206A_200D_202C_206C_206A_200F_200B_202C_206D_206D_206D_206D_200F_202B_202C_202E_202D_200C_202A_200C_202D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"Wait(BossMod, entered instance {ContentFinderConditionId})"; } } @@ -688,119 +141,36 @@ internal static class SinglePlayerDuty public unsafe override ETaskResult Update() { - int num = ((GameMain.Instance()->CurrentContentFinderConditionId == base.Task.ContentFinderConditionId) ? (-1428211712) : (-1428211711)); - while (true) + if (GameMain.Instance()->CurrentContentFinderConditionId != base.Task.ContentFinderConditionId) { - int num2 = num; - int num3 = -1428211710; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1428211711; - break; - case 6: - num = ((_enteredAtMs != 0L) ? (-1428211706) : (-1428211705)); - break; - case 7: - return ETaskResult.StillRunning; - case 4: - num = ((_202E_206B_206B_206D_202D_202C_206E_206A_206C_206D_206C_206F_202E_206B_202E_202D_206E_202A_202E_202E_202E_206F_202B_206A_202A_206A_202D_206A_206E_200E_206D_206E_200F_202B_206D_202C_200F_202A_206F_202A_202E() - _enteredAtMs >= 2000) ? (-1428211709) : (-1428211702)); - break; - case 8: - return ETaskResult.StillRunning; - case 2: - num = (_202C_206C_206E_202C_200D_206D_202A_200C_200B_206E_206B_206E_200C_202B_206F_200C_202E_206D_200D_206F_206E_206B_200D_202B_202A_202C_206B_206A_200D_206C_200B_206E_202B_200E_206B_200E_206D_202A_206F_202C_202E(condition, ConditionFlag.BoundByDuty) ? (-1428211708) : (-1428211707)); - break; - case 5: - _enteredAtMs = _202E_206B_206B_206D_202D_202C_206E_206A_206C_206D_206C_206F_202E_206B_202E_202D_206E_202A_202E_202E_202E_206F_202B_206A_202A_206A_202D_206A_206E_200E_206D_206E_200F_202B_206D_202C_200F_202A_206F_202A_202E(); - num = -1428211706; - break; - case 1: - return ETaskResult.TaskComplete; - case 3: - return ETaskResult.StillRunning; - } + return ETaskResult.StillRunning; } + if (!condition[ConditionFlag.BoundByDuty]) + { + return ETaskResult.StillRunning; + } + if (_enteredAtMs == 0L) + { + _enteredAtMs = Environment.TickCount64; + } + if (Environment.TickCount64 - _enteredAtMs < 2000) + { + return ETaskResult.StillRunning; + } + return ETaskResult.TaskComplete; } public override bool ShouldInterruptOnDamage() { return false; } - - static bool _202C_206C_206E_202C_200D_206D_202A_200C_200B_206E_206B_206E_200C_202B_206F_200C_202E_206D_200D_206F_206E_206B_200D_202B_202A_202C_206B_206A_200D_206C_200B_206E_202B_200E_206B_200E_206D_202A_206F_202C_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static long _202E_206B_206B_206D_202D_202C_206E_206A_206C_206D_206C_206F_202E_206B_202E_202D_206E_202A_202E_202E_202E_206F_202B_206A_202A_206A_202D_206A_206E_200E_206D_206E_200F_202B_206D_202C_200F_202A_206F_202A_202E() - { - return Environment.TickCount64; - } } internal sealed record EnableAi : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206A_206E_200F_206C_206D_200B_202E_200D_206C_202E_206B_200D_202B_206C_200E_206D_206B_206F_206F_202C_200B_206B_200C_202A_202D_206B_200E_200B_202E_206C_202D_206A_202E_200F_202A_202C_200E_200F_200E_206C_202E(typeof(EnableAi).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1155426603); - } - - [CompilerGenerated] - public bool Equals(EnableAi? other) - { - int num = (((object)this == other) ? (-348645376) : (-348645374)); - while (true) - { - int num2 = num; - int num3 = -348645373; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - return false; - case 1: - num = (((object)other == null) ? (-348645369) : (-348645375)); - break; - case 0: - num = -348645374; - break; - case 3: - return true; - case 2: - return _206F_200B_202A_200E_200B_206F_202D_206B_202C_200F_206C_200B_200F_202C_200D_206B_206E_202A_202E_206B_200D_202A_206B_206B_200F_200D_202D_200E_206A_200F_202E_202A_202D_206E_200F_202B_206B_200C_202D_202E_202E(EqualityContract, other.EqualityContract); - } - } - } - - bool IEquatable<EnableAi>.Equals(EnableAi? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206A_206E_200F_206C_206D_200B_202E_200D_206C_202E_206B_200D_202B_206C_200E_206D_206B_206F_206F_202C_200B_206B_200C_202A_202D_206B_200E_200B_202E_206C_202D_206A_202E_200F_202A_202C_200E_200F_200E_206C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _206F_200B_202A_200E_200B_206F_202D_206B_202C_200F_206C_200B_200F_202C_200D_206B_206E_202A_202E_206B_200D_202A_206B_206B_200F_200D_202D_200E_206A_200F_202E_202A_202D_206E_200F_202B_206B_200C_202D_202E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "BossMod.EnableAi"; } } @@ -825,90 +195,9 @@ internal static class SinglePlayerDuty internal sealed record WaitSinglePlayerDuty(uint ContentFinderConditionId) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206E_200E_206D_202B_202C_202E_206B_202E_200C_202C_206B_200D_200D_200E_206E_202A_202C_206B_200E_206D_200C_200F_202C_202B_202A_202D_202E_202E_200E_206C_202D_200F_202E_206F_200F_206E_202C_206D_202E_202C_202E(typeof(WaitSinglePlayerDuty).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(29, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(453077313)); - defaultInterpolatedStringHandler.AppendFormatted(ContentFinderConditionId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206F_200D_202E_202D_202B_206C_202E_202D_202E_206E_202B_206F_206E_200D_202B_202B_206C_206E_200F_202D_206D_206F_200E_200F_206E_200C_202A_202E_200D_202B_202A_202D_202A_202A_206D_206E_206D_202C_206F_200D_202E(); - _206E_206D_200E_200C_202C_202A_206E_202A_206D_206D_200D_200B_206A_206E_206D_202D_206D_202B_206C_200D_202E_200F_200D_202B_202C_200E_206B_200C_200B_200C_202B_206D_200D_202B_206C_206E_202C_200C_206A_202A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-547124860)); - _206E_206D_200E_200C_202C_202A_206E_202A_206D_206D_200D_200B_206A_206E_206D_202D_206D_202B_206C_200D_202E_200F_200D_202B_202C_200E_206B_200C_200B_200C_202B_206D_200D_202B_206C_206E_202C_200C_206A_202A_202E(builder, ContentFinderConditionId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(WaitSinglePlayerDuty? other) - { - int num = (((object)this == other) ? 1295617410 : 1295617411); - while (true) - { - int num2 = num; - int num3 = 1295617414; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1295617411; - break; - case 3: - num = ((!_200D_202B_202A_202B_200C_200B_202D_200B_206D_206B_200C_202C_200D_206A_200E_202C_206C_200E_200D_206A_200C_200B_200B_206A_200E_200D_200C_200F_206A_200F_200E_202D_200D_202D_206A_206A_200B_202D_200E_206C_202E(EqualityContract, other.EqualityContract)) ? 1295617415 : 1295617412); - break; - case 4: - return true; - case 2: - return EqualityComparer<uint>.Default.Equals(ContentFinderConditionId, other.ContentFinderConditionId); - case 5: - num = (((object)other == null) ? 1295617415 : 1295617413); - break; - case 1: - return false; - } - } - } - - bool IEquatable<WaitSinglePlayerDuty>.Equals(WaitSinglePlayerDuty? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206E_200E_206D_202B_202C_202E_206B_202E_200C_202C_206B_200D_200D_200E_206E_202A_202C_206B_200E_206D_200C_200F_202C_202B_202A_202D_202E_202E_200E_206C_202D_200F_202E_206F_200F_206E_202C_206D_202E_202C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206F_200D_202E_202D_202B_206C_202E_202D_202E_206E_202B_206F_206E_200D_202B_202B_206C_206E_200F_202D_206D_206F_200E_200F_206E_200C_202A_202E_200D_202B_202A_202D_202A_202A_206D_206E_206D_202C_206F_200D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206E_206D_200E_200C_202C_202A_206E_202A_206D_206D_200D_200B_206A_206E_206D_202D_206D_202B_206C_200D_202E_200F_200D_202B_202C_200E_206B_200C_200B_200C_202B_206D_200D_202B_206C_206E_202C_200C_206A_202A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _200D_202B_202A_202B_200C_200B_202D_200B_206D_206B_200C_202C_200D_206A_200E_202C_206C_200E_200D_206A_200C_200B_200B_206A_200E_200D_200C_200F_206A_200F_200E_202D_200D_202D_206A_206A_200B_202D_200E_206C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"Wait(BossMod, left instance {ContentFinderConditionId})"; } } @@ -919,32 +208,15 @@ internal static class SinglePlayerDuty return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe override ETaskResult Update() { - int num = ((GameMain.Instance()->CurrentContentFinderConditionId == base.Task.ContentFinderConditionId) ? (-1834918135) : (-1834918134)); - while (true) + if (GameMain.Instance()->CurrentContentFinderConditionId != base.Task.ContentFinderConditionId) { - int num2 = num; - int num3 = -1834918136; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return ETaskResult.StillRunning; - case 2: - { - string text = territoryData.GetContentFinderCondition(base.Task.ContentFinderConditionId)?.Name ?? global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-259383863); - notificationService.Notify(EInteractionType.SinglePlayerDuty, _202A_200B_200D_202C_202E_200B_206F_206E_206D_206C_206E_200D_200D_206A_206F_202A_206E_206C_200E_206D_202D_202B_202B_200D_200E_202E_202D_200C_200D_200F_200B_206A_202C_200F_200D_200C_202A_200F_200B_202E_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(735471578), text)); - return ETaskResult.TaskComplete; - } - case 0: - goto IL_00b0; - } - continue; - IL_00b0: - num = -1834918134; + string text = territoryData.GetContentFinderCondition(base.Task.ContentFinderConditionId)?.Name ?? "Single player duty"; + notificationService.Notify(EInteractionType.SinglePlayerDuty, "Single player duty complete - " + text); + return ETaskResult.TaskComplete; } + return ETaskResult.StillRunning; } public void StopNow() @@ -952,120 +224,26 @@ internal static class SinglePlayerDuty bossModIpc.DisableQuestBattleAi(); } - void IStoppableTaskExecutor.StopNow() - { - //ILSpy generated this explicit interface implementation from .override directive in StopNow - this.StopNow(); - } - public override bool ShouldInterruptOnDamage() { return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public string? GetDebugState() { - int num = (movementController.IsNavmeshReady ? 584129140 : 584129143); - while (true) + if (!movementController.IsNavmeshReady) { - int num2 = num; - int num3 = 584129141; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004b; - case 1: - return null; - case 2: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(10, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(412480717)); - defaultInterpolatedStringHandler.AppendFormatted(movementController.BuiltNavmeshPercent); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1723959331)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - } - continue; - IL_004b: - num = 584129143; + return $"Navmesh: {movementController.BuiltNavmeshPercent}%"; } - } - - string? IDebugStateProvider.GetDebugState() - { - //ILSpy generated this explicit interface implementation from .override directive in GetDebugState - return this.GetDebugState(); - } - - static string _202A_200B_200D_202C_202E_200B_206F_206E_206D_206C_206E_200D_200D_206A_206F_202A_206E_206C_200E_206D_202D_202B_202B_200D_200E_202E_202D_200C_200D_200F_200B_206A_202C_200F_200D_200C_202A_200F_200B_202E_202E(string P_0, string P_1) - { - return P_0 + P_1; + return null; } } internal sealed record DisableAi : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206C_202C_202C_200C_206B_202C_206E_200F_200F_200D_200E_206A_202C_200E_202E_200B_202B_200D_200F_200B_206C_200F_206D_200B_202E_202E_206F_206E_206E_206C_200C_200F_200B_200D_206A_200F_206B_200E_206A_202C_202E(typeof(DisableAi).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1704444161); - } - - [CompilerGenerated] - public bool Equals(DisableAi? other) - { - int num = (((object)this == other) ? 1927354889 : 1927354891); - while (true) - { - int num2 = num; - int num3 = 1927354888; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return true; - case 3: - num = (((object)other == null) ? 1927354890 : 1927354892); - break; - case 2: - return false; - case 0: - num = 1927354891; - break; - case 4: - return _202E_206F_200C_206E_202C_202B_206A_206B_206E_206F_206C_202C_202C_202D_200B_200E_206C_200E_200C_206D_206F_200C_200F_206A_200F_202D_200B_206B_202C_200C_200C_206E_206B_206F_200D_200E_200F_200D_202E_202D_202E(EqualityContract, other.EqualityContract); - } - } - } - - bool IEquatable<DisableAi>.Equals(DisableAi? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206C_202C_202C_200C_206B_202C_206E_200F_200F_200D_200E_206A_202C_200E_202E_200B_202B_200D_200F_200B_206C_200F_206D_200B_202E_202E_206F_206E_206E_206C_200C_200F_200B_200D_206A_200F_206B_200E_206A_202C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _202E_206F_200C_206E_202C_202B_206A_206B_206E_206F_206C_202C_202C_202D_200B_200E_206C_200E_200C_206D_206F_200C_200F_206A_200F_202D_200B_206B_202C_200C_200C_206E_206B_206F_200D_200E_200F_200D_202E_202D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "BossMod.DisableAi"; } } @@ -1090,90 +268,9 @@ internal static class SinglePlayerDuty internal sealed record SetTarget(uint DataId) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202D_202A_206A_202D_202C_206A_200F_206B_206F_200E_200C_206B_206B_200E_202D_200E_206F_206C_202C_200F_202B_202C_202E_202D_202C_206C_206A_206C_206A_206C_200C_200C_206C_202D_206B_200E_202D_200C_206C_206C_202E(typeof(SetTarget).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(11, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(214601937)); - defaultInterpolatedStringHandler.AppendFormatted(DataId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206E_200C_206C_206E_200C_202D_200C_200B_200D_202C_200F_200C_202C_200B_200E_200D_200B_202C_206F_200D_200D_200D_206D_206E_206A_202C_206D_202B_206E_202B_202C_200B_200E_206C_206C_202B_202E_206B_206C_202E_202E(); - _200C_202E_206A_202E_202A_202C_202B_200D_200D_206C_200F_200C_206D_200E_202B_206C_206B_206E_206C_200C_206D_202C_202B_202D_202C_202C_206A_206C_200C_202C_200F_200E_200F_202E_206B_206E_202A_206A_202E_202E_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(931106117)); - _200C_202E_206A_202E_202A_202C_202B_200D_200D_206C_200F_200C_206D_200E_202B_206C_206B_206E_206C_200C_206D_202C_202B_202D_202C_202C_206A_206C_200C_202C_200F_200E_200F_202E_206B_206E_202A_206A_202E_202E_202E(builder, DataId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(SetTarget? other) - { - int num = (((object)this == other) ? (-1091938364) : (-1091938362)); - while (true) - { - int num2 = num; - int num3 = -1091938363; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = ((!_202D_206A_202E_206B_202A_200D_206F_206C_202B_202B_202E_200F_206C_202D_206D_202A_206C_206D_206C_202A_206C_202D_200B_206B_206C_206E_202A_202C_206A_202C_206D_206E_206A_202E_206E_202E_202B_206E_206E_206F_202E(EqualityContract, other.EqualityContract)) ? (-1091938361) : (-1091938368)); - break; - case 5: - return EqualityComparer<uint>.Default.Equals(DataId, other.DataId); - case 0: - num = -1091938362; - break; - case 1: - return true; - case 2: - return false; - case 3: - num = (((object)other == null) ? (-1091938361) : (-1091938367)); - break; - } - } - } - - bool IEquatable<SetTarget>.Equals(SetTarget? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202D_202A_206A_202D_202C_206A_200F_206B_206F_200E_200C_206B_206B_200E_202D_200E_206F_206C_202C_200F_202B_202C_202E_202D_202C_206C_206A_206C_206A_206C_200C_200C_206C_202D_206B_200E_202D_200C_206C_206C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206E_200C_206C_206E_200C_202D_200C_200B_200D_202C_200F_200C_202C_200B_200E_200D_200B_202C_206F_200D_200D_200D_206D_206E_206A_202C_206D_202B_206E_202B_202C_200B_200E_206C_206C_202B_202E_206B_206C_202E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200C_202E_206A_202E_202A_202C_202B_200D_200D_206C_200F_200C_206D_200E_202B_206C_206B_206E_206C_200C_206D_202C_202B_202D_202C_202C_206A_206C_200C_202C_200F_200E_200F_202E_206B_206E_202A_206A_202E_202E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _202D_206A_202E_206B_202A_200D_206F_206C_202B_202B_202E_200F_206C_202D_206D_202A_206C_206D_206C_202A_206C_202D_200B_206B_206C_206E_202A_202C_206A_202C_206D_206E_206A_202E_206E_202E_202B_206E_206E_206F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"SetTarget({DataId})"; } } @@ -1186,561 +283,103 @@ internal static class SinglePlayerDuty public override ETaskResult Update() { - IGameObject gameObject = _206E_202A_206C_206C_202D_200C_206B_206A_200D_202D_200F_202C_206B_202E_202E_202C_206D_206F_202D_206D_200B_202B_206B_202D_206B_206A_206C_202D_202C_200E_206F_200E_200C_206D_202D_200F_206E_202A_202D_206D_202E(targetManager); - int num = ((((gameObject != null) ? new uint?(_202D_206E_206D_202E_200B_206B_200F_202C_206E_206B_206A_200E_202A_202E_202D_202E_202C_202E_202C_206B_202D_202B_206B_206D_206E_202B_200C_200B_206C_202C_200D_202A_206B_202D_202C_206D_206C_200F_202E_206F_202E(gameObject)) : ((uint?)null)) != base.Task.DataId) ? (-1585152087) : (-1585152081)); - IGameObject gameObject2 = default(IGameObject); - while (true) + if (targetManager.Target?.BaseId == base.Task.DataId) { - int num2 = num; - int num3 = -1585152083; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1585152081; - break; - case 4: - gameObject2 = gameFunctions.FindObjectByDataId(base.Task.DataId, null, warnIfMissing: false); - num = ((gameObject2 != null) ? (-1585152084) : (-1585152082)); - break; - case 2: - return ETaskResult.TaskComplete; - case 1: - _200C_206D_200F_202D_202C_206F_206A_206C_206A_206F_206E_206C_206C_202B_202A_200B_202A_200B_206D_206C_206E_206D_200F_202B_200C_206A_206E_202A_200B_206F_202B_202B_200E_206B_200D_206F_200B_206A_202E_202C_202E(targetManager, gameObject2); - return ETaskResult.StillRunning; - case 3: - return ETaskResult.StillRunning; - } + return ETaskResult.TaskComplete; } + IGameObject gameObject = gameFunctions.FindObjectByDataId(base.Task.DataId, null, warnIfMissing: false); + if (gameObject == null) + { + return ETaskResult.StillRunning; + } + targetManager.Target = gameObject; + return ETaskResult.StillRunning; } public override bool ShouldInterruptOnDamage() { return false; } - - static IGameObject _206E_202A_206C_206C_202D_200C_206B_206A_200D_202D_200F_202C_206B_202E_202E_202C_206D_206F_202D_206D_200B_202B_206B_202D_206B_206A_206C_202D_202C_200E_206F_200E_200C_206D_202D_200F_206E_202A_202D_206D_202E(ITargetManager P_0) - { - return P_0.Target; - } - - static uint _202D_206E_206D_202E_200B_206B_200F_202C_206E_206B_206A_200E_202A_202E_202D_202E_202C_202E_202C_206B_202D_202B_206B_206D_206E_202B_200C_200B_206C_202C_200D_202A_206B_202D_202C_206D_206C_200F_202E_206F_202E(IGameObject P_0) - { - return P_0.BaseId; - } - - static void _200C_206D_200F_202D_202C_206F_206A_206C_206A_206F_206E_206C_206C_202B_202A_200B_202A_200B_206D_206C_206E_206D_200F_202B_200C_206A_206E_202A_200B_206F_202B_202B_200E_206B_200D_206F_200B_206A_202E_202C_202E(ITargetManager P_0, IGameObject P_1) - { - P_0.Target = P_1; - } } internal sealed record CheckDutyOutcome(ElementId QuestId, byte SequenceBeforeEntering, IReadOnlyList<byte>? VariablesBeforeEntering, IList<QuestWorkValue?> CompletionQuestVariablesFlags, IReadOnlyList<ITask> DutyTasks) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202D_200F_206B_200C_202C_200D_206D_202C_206E_206F_206C_202E_202D_206F_200D_200D_200F_200C_206F_206A_200C_200E_206F_202A_200E_202E_202B_200E_200E_206C_206D_206C_200B_202C_202E_200C_200C_202A_200F_202C_202E(typeof(CheckDutyOutcome).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2119118709); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200D_202D_202E_206C_206E_200E_206A_200E_206E_206F_200D_206D_200F_202A_206C_202A_202E_206B_206C_202D_202E_200F_200D_206C_200C_200E_206E_206C_206B_200D_206E_206A_200E_200D_202D_200F_206D_200C_202D_200D_202E(); - _202E_200B_200B_202E_206D_200F_206E_202E_202E_202A_206E_202B_206F_206D_206D_206D_202B_206C_202E_200E_206C_200C_206E_206D_200B_202B_202B_200F_206B_200D_202A_200E_206B_206D_202E_206C_202B_206A_206E_202A_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(65254652)); - _206F_202E_206D_206B_206F_200C_202B_200E_206D_206E_202E_206D_200B_200B_202D_200E_200C_206F_200C_202C_202D_200F_200B_200B_200F_202E_200F_202D_200F_200E_206E_206F_202E_200D_202C_200E_202A_200F_200E_206C_202E(builder, (object)QuestId); - _202E_200B_200B_202E_206D_200F_206E_202E_202E_202A_206E_202B_206F_206D_206D_206D_202B_206C_202E_200E_206C_200C_206E_206D_200B_202B_202B_200F_206B_200D_202A_200E_206B_206D_202E_206C_202B_206A_206E_202A_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1722041938)); - _202E_200B_200B_202E_206D_200F_206E_202E_202E_202A_206E_202B_206F_206D_206D_206D_202B_206C_202E_200E_206C_200C_206E_206D_200B_202B_202B_200F_206B_200D_202A_200E_206B_206D_202E_206C_202B_206A_206E_202A_202E(builder, SequenceBeforeEntering.ToString()); - _202E_200B_200B_202E_206D_200F_206E_202E_202E_202A_206E_202B_206F_206D_206D_206D_202B_206C_202E_200E_206C_200C_206E_206D_200B_202B_202B_200F_206B_200D_202A_200E_206B_206D_202E_206C_202B_206A_206E_202A_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(295162259)); - _206F_202E_206D_206B_206F_200C_202B_200E_206D_206E_202E_206D_200B_200B_202D_200E_200C_206F_200C_202C_202D_200F_200B_200B_200F_202E_200F_202D_200F_200E_206E_206F_202E_200D_202C_200E_202A_200F_200E_206C_202E(builder, (object)VariablesBeforeEntering); - _202E_200B_200B_202E_206D_200F_206E_202E_202E_202A_206E_202B_206F_206D_206D_206D_202B_206C_202E_200E_206C_200C_206E_206D_200B_202B_202B_200F_206B_200D_202A_200E_206B_206D_202E_206C_202B_206A_206E_202A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1930370304)); - _206F_202E_206D_206B_206F_200C_202B_200E_206D_206E_202E_206D_200B_200B_202D_200E_200C_206F_200C_202C_202D_200F_200B_200B_200F_202E_200F_202D_200F_200E_206E_206F_202E_200D_202C_200E_202A_200F_200E_206C_202E(builder, (object)CompletionQuestVariablesFlags); - _202E_200B_200B_202E_206D_200F_206E_202E_202E_202A_206E_202B_206F_206D_206D_206D_202B_206C_202E_200E_206C_200C_206E_206D_200B_202B_202B_200F_206B_200D_202A_200E_206B_206D_202E_206C_202B_206A_206E_202A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-369995844)); - _206F_202E_206D_206B_206F_200C_202B_200E_206D_206E_202E_206D_200B_200B_202D_200E_200C_206F_200C_202C_202D_200F_200B_200B_200F_202E_200F_202D_200F_200E_206E_206F_202E_200D_202C_200E_202A_200F_200E_206C_202E(builder, (object)DutyTasks); - return true; - } - - [CompilerGenerated] - public bool Equals(CheckDutyOutcome? other) - { - int num = (((object)this == other) ? 879204954 : 879204945); - while (true) - { - int num2 = num; - int num3 = 879204953; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 879204945; - break; - case 9: - num = ((!EqualityComparer<IReadOnlyList<byte>>.Default.Equals(VariablesBeforeEntering, other.VariablesBeforeEntering)) ? 879204958 : 879204955); - break; - case 6: - num = ((!_200E_206C_202E_200E_200D_202A_206A_200D_200B_200E_202B_200F_206C_202C_206F_206A_202D_206C_206D_202A_202A_202B_202C_200B_206E_200B_206D_200C_206C_206D_206B_200B_206B_200B_202C_202E_202A_206C_200C_200E_202E(EqualityContract, other.EqualityContract)) ? 879204958 : 879204952); - break; - case 2: - num = ((!EqualityComparer<IList<QuestWorkValue>>.Default.Equals(CompletionQuestVariablesFlags, other.CompletionQuestVariablesFlags)) ? 879204958 : 879204956); - break; - case 5: - return EqualityComparer<IReadOnlyList<ITask>>.Default.Equals(DutyTasks, other.DutyTasks); - case 1: - num = ((!EqualityComparer<ElementId>.Default.Equals(QuestId, other.QuestId)) ? 879204958 : 879204957); - break; - case 7: - return false; - case 3: - return true; - case 4: - num = ((!EqualityComparer<byte>.Default.Equals(SequenceBeforeEntering, other.SequenceBeforeEntering)) ? 879204958 : 879204944); - break; - case 8: - num = (((object)other == null) ? 879204958 : 879204959); - break; - } - } - } - - bool IEquatable<CheckDutyOutcome>.Equals(CheckDutyOutcome? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202D_200F_206B_200C_202C_200D_206D_202C_206E_206F_206C_202E_202D_206F_200D_200D_200F_200C_206F_206A_200C_200E_206F_202A_200E_202E_202B_200E_200E_206C_206D_206C_200B_202C_202E_200C_200C_202A_200F_202C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _200D_202D_202E_206C_206E_200E_206A_200E_206E_206F_200D_206D_200F_202A_206C_202A_202E_206B_206C_202D_202E_200F_200D_206C_200C_200E_206E_206C_206B_200D_206E_206A_200E_200D_202D_200F_206D_200C_202D_200D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202E_200B_200B_202E_206D_200F_206E_202E_202E_202A_206E_202B_206F_206D_206D_206D_202B_206C_202E_200E_206C_200C_206E_206D_200B_202B_202B_200F_206B_200D_202A_200E_206B_206D_202E_206C_202B_206A_206E_202A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206F_202E_206D_206B_206F_200C_202B_200E_206D_206E_202E_206D_200B_200B_202D_200E_200C_206F_200C_202C_202D_200F_200B_200B_200F_202E_200F_202D_200F_200E_206E_206F_202E_200D_202C_200E_202A_200F_200E_206C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200E_206C_202E_200E_200D_202A_206A_200D_200B_200E_202B_200F_206C_202C_206F_206A_202D_206C_206D_202A_202A_202B_202C_200B_206E_200B_206D_200C_206C_206D_206B_200B_206B_200B_202C_202E_202A_206C_200C_200E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "CheckDutyOutcome"; } } internal sealed class CheckDutyOutcomeExecutor(QuestFunctions questFunctions, DutyRetryState retryState, Configuration configuration, ILogger<CheckDutyOutcomeExecutor> logger) : TaskExecutor<CheckDutyOutcome>(), IExtraTaskCreator, ITaskExecutor { - [CompilerGenerated] - private sealed class _003CCreateExtraTasks_003Ed__9 : IEnumerable<ITask>, IEnumerable, IEnumerator<ITask>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ITask _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - public CheckDutyOutcomeExecutor _003C_003E4__this; - - private IEnumerator<ITask> _003C_003E7__wrap1; - - ITask IEnumerator<ITask>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CCreateExtraTasks_003Ed__9(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _206E_200B_202D_200C_200C_206D_206B_206D_202B_200F_206E_200F_206A_206C_202B_206A_206C_206C_206E_200C_206A_202E_206C_206B_202E_202D_200E_206F_206E_202D_200C_202C_200D_202A_206D_200C_200B_206A_206D_206E_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num == -3) ? (-1813267653) : (-1813267656)); - while (true) - { - int num3 = num2; - int num4 = -1813267654; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 0: - num2 = -1813267656; - continue; - case 2: - if (num == 1) - { - num2 = -1813267653; - continue; - } - break; - case 1: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E7__wrap1 = null; - _003C_003E1__state = -2; - } - - private bool MoveNext() - { - try - { - int num = _003C_003E1__state; - CheckDutyOutcomeExecutor checkDutyOutcomeExecutor = _003C_003E4__this; - int num2; - switch (num) - { - default: - num2 = -1102833708; - goto IL_002c; - case 1: - _003C_003E1__state = -3; - num2 = -1102833709; - goto IL_002c; - case 0: - goto IL_011b; - case 2: - break; - IL_002c: - while (true) - { - int num3 = num2; - int num4 = -1102833705; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 4: - goto IL_006c; - case 5: - { - ITask current = _003C_003E7__wrap1.Current; - _003C_003E2__current = current; - _003C_003E1__state = 1; - return true; - } - case 7: - _003C_003Em__Finally1(); - _003C_003E7__wrap1 = null; - _003C_003E2__current = checkDutyOutcomeExecutor.Task; - _003C_003E1__state = 2; - return true; - case 3: - return false; - case 2: - goto end_IL_002c; - case 6: - goto IL_011b; - case 0: - num2 = -1102833708; - break; - case 1: - goto end_IL_000f; - } - continue; - IL_006c: - num2 = (_202E_202A_200D_200F_202E_202D_202A_206A_200C_202A_200E_202C_200C_202C_200B_202D_206B_202D_200D_200F_200D_200D_202B_200E_202B_200B_202D_200F_202B_202A_202C_200B_200E_202D_200D_200F_202D_200F_206A_206E_202E((IEnumerator)_003C_003E7__wrap1) ? (-1102833710) : (-1102833712)); - continue; - end_IL_002c: - break; - } - goto case 1; - IL_011b: - _003C_003E1__state = -1; - _003C_003E7__wrap1 = checkDutyOutcomeExecutor.Task.DutyTasks.GetEnumerator(); - _003C_003E1__state = -3; - num2 = -1102833709; - goto IL_002c; - end_IL_000f: - break; - } - _003C_003E1__state = -1; - return false; - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - int num = ((_003C_003E7__wrap1 == null) ? (-1381992250) : (-1381992251)); - while (true) - { - int num2 = num; - int num3 = -1381992249; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return; - case 2: - _200F_206B_206B_202D_202B_202A_206F_200D_206C_202C_202D_202D_202D_206F_206F_200C_200F_206C_200C_202D_206E_200F_206E_200D_202B_206D_202D_206A_202C_206F_202D_206E_206F_206A_202C_206C_206A_206E_202D_202C_202E((IDisposable)_003C_003E7__wrap1); - num = -1381992250; - break; - case 0: - num = -1381992251; - break; - } - } - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _206F_200D_200B_200C_200F_202C_200E_200C_200E_200B_202A_200C_206F_202B_200B_200B_200C_202B_200B_202B_200E_200F_206C_202A_206C_202D_206D_206C_202A_200F_202B_206D_206F_206C_206D_202C_200C_202E_206E_206E_202E(); - } - - [DebuggerHidden] - IEnumerator<ITask> IEnumerable<ITask>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? 139527152 : 139527153); - _003CCreateExtraTasks_003Ed__9 result = default(_003CCreateExtraTasks_003Ed__9); - while (true) - { - int num2 = num; - int num3 = 139527155; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - _003C_003E1__state = 0; - result = this; - num = 139527155; - break; - case 2: - num = ((_003C_003El__initialThreadId != _206E_200B_202D_200C_200C_206D_206B_206D_202B_200F_206E_200F_206A_206C_202B_206A_206C_206C_206E_200C_206A_202E_206C_206B_202E_202D_200E_206F_206E_202D_200C_202C_200D_202A_206D_200C_200B_206A_206D_206E_202E()) ? 139527152 : 139527154); - break; - case 4: - num = 139527153; - break; - case 0: - return result; - case 3: - result = new _003CCreateExtraTasks_003Ed__9(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = 139527155; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ITask>)this).GetEnumerator(); - } - - static int _206E_200B_202D_200C_200C_206D_206B_206D_202B_200F_206E_200F_206A_206C_202B_206A_206C_206C_206E_200C_206A_202E_206C_206B_202E_202D_200E_206F_206E_202D_200C_202C_200D_202A_206D_200C_200B_206A_206D_206E_202E() - { - return Environment.CurrentManagedThreadId; - } - - static bool _202E_202A_200D_200F_202E_202D_202A_206A_200C_202A_200E_202C_200C_202C_200B_202D_206B_202D_200D_200F_200D_200D_202B_200E_202B_200B_202D_200F_202B_202A_202C_200B_200E_202D_200D_200F_202D_200F_206A_206E_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200F_206B_206B_202D_202B_202A_206F_200D_206C_202C_202D_202D_202D_206F_206F_200C_200F_206C_200C_202D_206E_200F_206E_200D_202B_206D_202D_206A_202C_206F_202D_206E_206F_206A_202C_206C_206A_206E_202D_202C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static NotSupportedException _206F_200D_200B_200C_200F_202C_200E_200C_200E_200B_202A_200C_206F_202B_200B_200B_200C_202B_200B_202B_200E_200F_206C_202A_206C_202D_206D_206C_202A_200F_202B_206D_206F_206C_206D_202C_200C_202E_206E_206E_202E() - { - return new NotSupportedException(); - } - } - private long _checkAtMs; protected override bool Start() { - _checkAtMs = _206C_206E_200E_206D_206E_202A_202E_206D_200E_202D_200B_206B_206D_206C_206C_200F_206A_202A_202C_202B_202C_202B_202A_206C_206D_202E_206A_206B_200D_202D_202B_206C_202E_202A_200F_200F_206A_202A_200C_206A_202E() + 2000; + _checkAtMs = Environment.TickCount64 + 2000; retryState.BeginAwaitingOutcome(); return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - int num = ((_206C_206E_200E_206D_206E_202A_202E_206D_200E_202D_200B_206B_206D_206C_206C_200F_206A_202A_202C_202B_202C_202B_202A_206C_206D_202E_206A_206B_200D_202D_202B_206C_202E_202A_200F_200F_206A_202A_200C_206A_202E() >= _checkAtMs) ? 1656852810 : 1656852811); - string text = default(string); - while (true) + if (Environment.TickCount64 < _checkAtMs) { - int num2 = num; - int num3 = 1656852809; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = 1656852811; - break; - case 2: - return ETaskResult.StillRunning; - case 6: - _202E_206C_206A_200C_206B_202A_200C_202C_200F_200E_206F_206F_206C_200E_200D_202B_200B_200D_206E_206E_202E_202A_202D_202D_202D_200D_206C_200F_202A_200C_200B_202C_206B_202D_200E_206F_202B_206A_200D_202B_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(237903421), Array.Empty<object>()); - retryState.EndAwaitingOutcome(); - return ETaskResult.End; - case 3: - text = DetectSuccess(); - num = ((text == null) ? 1656852812 : 1656852808); - break; - case 1: - _202E_206C_206A_200C_206B_202A_200C_202C_200F_200E_206F_206F_206C_200E_200D_202B_200B_200D_206E_206E_202E_202A_202D_202D_202D_200D_206C_200F_202A_200C_200B_202C_206B_202D_200E_206F_202B_206A_200D_202B_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1884362116), new object[1] { text }); - retryState.Reset(); - return ETaskResult.TaskComplete; - case 5: - { - int maxRetries = configuration.SinglePlayerDuties.MaxRetries; - num = (retryState.CanRetry(maxRetries) ? 1656852809 : 1656852815); - break; - } - case 0: - retryState.RecordRetry(); - _202E_206C_206A_200C_206B_202A_200C_202C_200F_200E_206F_206F_206C_200E_200D_202B_200B_200D_206E_206E_202E_202A_202D_202D_202D_200D_206C_200F_202A_200C_200B_202C_206B_202D_200E_206F_202B_206A_200D_202B_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(17889198), Array.Empty<object>()); - return ETaskResult.CreateNewTasks; - } + return ETaskResult.StillRunning; } + string text = DetectSuccess(); + if (text != null) + { + logger.LogInformation("Duty succeeded ({Reason})", text); + retryState.Reset(); + return ETaskResult.TaskComplete; + } + int maxRetries = configuration.SinglePlayerDuties.MaxRetries; + if (!retryState.CanRetry(maxRetries)) + { + logger.LogInformation("Duty failed, retry limit reached or retries disabled"); + retryState.EndAwaitingOutcome(); + return ETaskResult.End; + } + retryState.RecordRetry(); + logger.LogInformation("Duty failed, retrying"); + return ETaskResult.CreateNewTasks; } - [MethodImpl(MethodImplOptions.NoInlining)] private string? DetectSuccess() { QuestProgressInfo questProgressInfo = questFunctions.GetQuestProgressInfo(base.Task.QuestId); - int num = ((questProgressInfo != null) ? (-1549389800) : (-1549389796)); - while (true) + if (questProgressInfo == null) { - int num2 = num; - int num3 = -1549389800; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = (questProgressInfo.Variables.SequenceEqual(base.Task.VariablesBeforeEntering) ? (-1549389794) : (-1549389793)); - break; - case 1: - num = ((base.Task.VariablesBeforeEntering == null) ? (-1549389794) : (-1549389797)); - break; - case 4: - return global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1354389610); - case 9: - num = ((!QuestWorkUtils.MatchesQuestWork(base.Task.CompletionQuestVariablesFlags, questProgressInfo)) ? (-1549389799) : (-1549389806)); - break; - case 8: - num = ((!QuestWorkUtils.HasCompletionFlags(base.Task.CompletionQuestVariablesFlags)) ? (-1549389799) : (-1549389807)); - break; - case 7: - return global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1360167157); - case 0: - num = ((questProgressInfo.Sequence <= base.Task.SequenceBeforeEntering) ? (-1549389808) : (-1549389795)); - break; - case 5: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(13, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(534730551)); - defaultInterpolatedStringHandler.AppendFormatted(base.Task.SequenceBeforeEntering); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-116138750)); - defaultInterpolatedStringHandler.AppendFormatted(questProgressInfo.Sequence); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - case 6: - return null; - case 10: - return global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-181103930); - case 2: - num = -1549389796; - break; - } + return "quest completed"; } + if (questProgressInfo.Sequence > base.Task.SequenceBeforeEntering) + { + return $"sequence {base.Task.SequenceBeforeEntering} -> {questProgressInfo.Sequence}"; + } + if (QuestWorkUtils.HasCompletionFlags(base.Task.CompletionQuestVariablesFlags) && QuestWorkUtils.MatchesQuestWork(base.Task.CompletionQuestVariablesFlags, questProgressInfo)) + { + return "completion flags matched"; + } + if (base.Task.VariablesBeforeEntering != null && !questProgressInfo.Variables.SequenceEqual(base.Task.VariablesBeforeEntering)) + { + return "quest variables changed"; + } + return null; } - [IteratorStateMachine(typeof(_003CCreateExtraTasks_003Ed__9))] public IEnumerable<ITask> CreateExtraTasks() { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CCreateExtraTasks_003Ed__9(-2) + foreach (ITask dutyTask in base.Task.DutyTasks) { - _003C_003E4__this = this - }; - } - - IEnumerable<ITask> IExtraTaskCreator.CreateExtraTasks() - { - //ILSpy generated this explicit interface implementation from .override directive in CreateExtraTasks - return this.CreateExtraTasks(); + yield return dutyTask; + } + yield return base.Task; } public override bool ShouldInterruptOnDamage() { return false; } - - static long _206C_206E_200E_206D_206E_202A_202E_206D_200E_202D_200B_206B_206D_206C_206C_200F_206A_202A_202C_202B_202C_202B_202A_206C_206D_202E_206A_206B_200D_202D_202B_206C_202E_202A_200F_200F_206A_202A_200C_206A_202E() - { - return Environment.TickCount64; - } - - static void _202E_206C_206A_200C_206B_202A_200C_202C_200F_200E_206F_206F_206C_200E_200D_202B_200B_200D_206E_206E_202E_202A_202D_202D_202D_200D_206C_200F_202A_200C_200B_202C_206B_202D_200E_206F_202B_206A_200D_202B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/StatusOff.cs b/Questionable/Questionable.Controller.Steps.Interactions/StatusOff.cs index 4478a01..304eed7 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/StatusOff.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/StatusOff.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Questionable.Functions; using Questionable.Model; using Questionable.Model.Questing; @@ -12,146 +9,27 @@ internal static class StatusOff { internal sealed class Factory : SimpleTaskFactory { - [MethodImpl(MethodImplOptions.NoInlining)] public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_200E_200F_206A_206B_202A_202D_202D_206B_200E_200C_202E_202A_206B_202A_206E_206E_206F_202B_202B_200E_200B_202C_202D_200E_206E_200C_200B_200C_206D_206C_206D_206B_206A_200B_206D_206A_202B_200D_202C_206D_202E(step) == EInteractionType.StatusOff) ? 693666408 : 693666411); - while (true) + if (step.InteractionType != EInteractionType.StatusOff) { - int num2 = num; - int num3 = 693666410; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0048; - case 1: - return null; - case 2: - _200D_200C_200F_206F_200D_200C_206D_206C_200B_206F_200D_206D_206C_202E_200C_206F_206A_202D_206E_202C_200D_202D_200F_200E_206E_200F_206E_202E_206B_206B_202B_202D_206E_206A_206D_206F_202D_206F_206C_206B_202E((object)_200F_206B_206A_200E_200C_206E_200C_202D_206C_202B_200F_200B_202D_200F_200C_206B_200C_202C_200C_200E_206B_202A_206D_200C_206D_202A_200B_202E_202E_202A_202D_200B_206A_200B_206F_202B_206A_202E_202D_200E_202E(step), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1410720020)); - return new Task(_200F_206B_206A_200E_200C_206E_200C_202D_206C_202B_200F_200B_202D_200F_200C_206B_200C_202C_200C_200E_206B_202A_206D_200C_206D_202A_200B_202E_202E_202A_202D_200B_206A_200B_206F_202B_206A_202E_202D_200E_202E(step).Value); - } - continue; - IL_0048: - num = 693666411; + return null; } - } - - static EInteractionType _200E_200F_206A_206B_202A_202D_202D_206B_200E_200C_202E_202A_206B_202A_206E_206E_206F_202B_202B_200E_200B_202C_202D_200E_206E_200C_200B_200C_206D_206C_206D_206B_206A_200B_206D_206A_202B_200D_202C_206D_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static EStatus? _200F_206B_206A_200E_200C_206E_200C_202D_206C_202B_200F_200B_202D_200F_200C_206B_200C_202C_200C_200E_206B_202A_206D_200C_206D_202A_200B_202E_202E_202A_202D_200B_206A_200B_206F_202B_206A_202E_202D_200E_202E(QuestStep P_0) - { - return P_0.Status; - } - - static void _200D_200C_200F_206F_200D_200C_206D_206C_200B_206F_200D_206D_206C_202E_200C_206F_206A_202D_206E_202C_200D_202D_200F_200E_206E_200F_206E_202E_206B_206B_202B_202D_206E_206A_206D_206F_202D_206F_206C_206B_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); + ArgumentNullException.ThrowIfNull(step.Status, "step.Status"); + return new Task(step.Status.Value); } } internal sealed record Task(EStatus Status) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202C_206C_206E_202B_200D_206F_202A_206C_200C_200F_206C_202C_200D_202E_202D_206C_206F_202A_200F_200F_202E_200C_206F_206D_202E_202E_202E_202E_200D_202D_200F_202A_206C_202E_206A_202D_206F_200B_206A_200E_202E(typeof(Task).TypeHandle); - } - } - public bool ShouldRedoOnInterrupt() { return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(11, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1347082361)); - defaultInterpolatedStringHandler.AppendFormatted(Status); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200B_206B_200D_206E_202D_200B_206F_200C_202B_200B_206A_206C_206E_202A_206C_200B_200F_200C_206B_202D_206F_202D_202E_206D_206C_206D_206D_206D_206D_206E_200B_200B_206B_206A_206E_200D_202A_206A_200C_200C_202E(); - _202A_206D_202B_202E_202C_206D_200E_206A_200C_200C_200E_202C_202E_206C_202C_200E_206F_206B_202C_202C_206F_200C_202E_206E_202A_206C_206D_200E_202B_202B_200C_200F_206D_206F_206D_206E_202D_200E_206C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1195039164)); - _202A_206D_202B_202E_202C_206D_200E_206A_200C_200C_200E_202C_202E_206C_202C_200E_206F_206B_202C_202C_206F_200C_202E_206E_202A_206C_206D_200E_202B_202B_200C_200F_206D_206F_206D_206E_202D_200E_206C_202E(builder, Status.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? 1615016880 : 1615016884); - while (true) - { - int num2 = num; - int num3 = 1615016885; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - return true; - case 1: - num = (((object)other == null) ? 1615016885 : 1615016886); - break; - case 4: - num = 1615016884; - break; - case 0: - return false; - case 3: - num = ((!_206A_206F_202E_202E_200F_202A_200B_200F_202D_206D_206B_206C_206E_206D_200D_202C_200D_206C_206C_200D_200C_202B_206D_200C_206D_202D_206E_202A_206C_200F_202D_200D_206C_200D_202B_202E_202A_206B_200F_206D_202E(EqualityContract, other.EqualityContract)) ? 1615016885 : 1615016887); - break; - case 2: - return EqualityComparer<EStatus>.Default.Equals(Status, other.Status); - } - } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202C_206C_206E_202B_200D_206F_202A_206C_200C_200F_206C_202C_200D_202E_202D_206C_206F_202A_200F_200F_202E_200C_206F_206D_202E_202E_202E_202E_200D_202D_200F_202A_206C_202E_206A_202D_206F_200B_206A_200E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _200B_206B_200D_206E_202D_200B_206F_200C_202B_200B_206A_206C_206E_202A_206C_200B_200F_200C_206B_202D_206F_202D_202E_206D_206C_206D_206D_206D_206D_206E_200B_200B_206B_206A_206E_200D_202A_206A_200C_200C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202A_206D_202B_202E_202C_206D_200E_206A_200C_200C_200E_202C_202E_206C_202C_200E_206F_206B_202C_202C_206F_200C_202E_206E_202A_206C_206D_200E_202B_202B_200C_200F_206D_206F_206D_206E_202D_200E_206C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _206A_206F_202E_202E_200F_202A_200B_200F_202D_206D_206B_206C_206E_206D_200D_202C_200D_206C_206C_200D_200C_202B_206D_200C_206D_202D_206E_202A_206C_200F_202D_200D_206C_200D_202B_202E_202A_206B_200F_206D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"StatusOff({Status})"; } } @@ -159,52 +37,20 @@ internal static class StatusOff { protected override bool Start() { - int num = ((!gameFunctions.HasStatus(base.Task.Status)) ? 1955807885 : 1955807886); - while (true) + if (gameFunctions.HasStatus(base.Task.Status)) { - int num2 = num; - int num3 = 1955807884; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0058; - case 1: - return false; - case 2: - return GameFunctions.RemoveStatus(base.Task.Status); - } - continue; - IL_0058: - num = 1955807886; + return GameFunctions.RemoveStatus(base.Task.Status); } + return false; } public override ETaskResult Update() { - int num = (gameFunctions.HasStatus(base.Task.Status) ? 2085538414 : 2085538413); - while (true) + if (!gameFunctions.HasStatus(base.Task.Status)) { - int num2 = num; - int num3 = 2085538412; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0058; - case 1: - return ETaskResult.TaskComplete; - case 2: - return ETaskResult.StillRunning; - } - continue; - IL_0058: - num = 2085538413; + return ETaskResult.TaskComplete; } + return ETaskResult.StillRunning; } public override bool ShouldInterruptOnDamage() diff --git a/Questionable/Questionable.Controller.Steps.Interactions/UnequipItem.cs b/Questionable/Questionable.Controller.Steps.Interactions/UnequipItem.cs index d82b077..4bd83ff 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/UnequipItem.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/UnequipItem.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using LLib.Gear; using LLib.Inventory; using Microsoft.Extensions.Logging; @@ -14,137 +11,22 @@ internal static class UnequipItem { internal sealed class Factory : SimpleTaskFactory { - [MethodImpl(MethodImplOptions.NoInlining)] public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_206A_202E_200F_200C_206A_200D_200E_200B_202B_206F_206B_206C_200C_206A_202C_206C_202D_200C_200C_202D_200C_206C_202C_200E_200C_206E_202B_206A_206C_206D_206C_200E_200D_202D_200F_206E_202E_200B_202B_206A_202E(step) == EInteractionType.UnequipItem) ? (-861222854) : (-861222855)); - while (true) + if (step.InteractionType != EInteractionType.UnequipItem) { - int num2 = num; - int num3 = -861222853; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004a; - case 1: - _202E_206D_200F_200D_206C_206A_202A_202B_202E_200E_206B_200C_202A_202B_200E_200F_200F_206C_202B_206F_202C_206F_200C_202C_206D_202B_202A_200E_202E_206A_200F_202D_202C_200B_206E_206A_202D_206E_202B_202A_202E((object)_202E_200F_206D_200C_202D_206D_200F_206C_206C_200E_200D_200B_200E_202B_200D_200F_200D_202D_206A_202B_200E_202B_206B_206B_202D_206C_206F_200D_200E_200D_200F_200D_202D_206B_206E_206C_200B_202E_206F_206E_202E(step), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1496371967)); - return new Task(_202E_200F_206D_200C_202D_206D_200F_206C_206C_200E_200D_200B_200E_202B_200D_200F_200D_202D_206A_202B_200E_202B_206B_206B_202D_206C_206F_200D_200E_200D_200F_200D_202D_206B_206E_206C_200B_202E_206F_206E_202E(step).Value); - case 2: - return null; - } - continue; - IL_004a: - num = -861222855; + return null; } - } - - static EInteractionType _206A_202E_200F_200C_206A_200D_200E_200B_202B_206F_206B_206C_200C_206A_202C_206C_202D_200C_200C_202D_200C_206C_202C_200E_200C_206E_202B_206A_206C_206D_206C_200E_200D_202D_200F_206E_202E_200B_202B_206A_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static uint? _202E_200F_206D_200C_202D_206D_200F_206C_206C_200E_200D_200B_200E_202B_200D_200F_200D_202D_206A_202B_200E_202B_206B_206B_202D_206C_206F_200D_200E_200D_200F_200D_202D_206B_206E_206C_200B_202E_206F_206E_202E(QuestStep P_0) - { - return P_0.ItemId; - } - - static void _202E_206D_200F_200D_206C_206A_202A_202B_202E_200E_206B_200C_202A_202B_200E_200F_200F_206C_202B_206F_202C_206F_200C_202C_206D_202B_202A_200E_202E_206A_200F_202D_202C_200B_206E_206A_202D_206E_202B_202A_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); + ArgumentNullException.ThrowIfNull(step.ItemId, "step.ItemId"); + return new Task(step.ItemId.Value); } } internal sealed record Task(uint ItemId) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200C_200D_202C_202C_200C_206D_206D_206D_200C_206C_202A_206E_202B_200B_206C_202A_200F_202D_202D_206F_202B_206F_206E_200F_200D_200B_200F_206B_206B_202B_200C_202B_202C_206A_200C_200B_202E_206E_200E_202D_202E(typeof(Task).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(9, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-582671275)); - defaultInterpolatedStringHandler.AppendFormatted(ItemId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200C_200E_200E_202C_200C_202C_200D_206E_206F_206A_200D_200B_200C_202D_202E_200E_202A_206A_200B_200F_206B_202A_206E_200E_202E_206D_202E_206F_200F_200B_200F_202D_202A_206D_200E_206C_202B_200F_206F_206E_202E(); - _200F_200B_206D_200C_202E_206B_200F_206B_200E_206E_206C_206D_206F_200B_200C_200E_206D_206B_200B_206A_200F_206E_202D_202B_206E_206C_206D_200B_200E_202D_200E_206A_206F_200D_202D_202C_206A_202A_200C_202E_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1176260912)); - _200F_200B_206D_200C_202E_206B_200F_206B_200E_206E_206C_206D_206F_200B_200C_200E_206D_206B_200B_206A_200F_206E_202D_202B_206E_206C_206D_200B_200E_202D_200E_206A_206F_200D_202D_202C_206A_202A_200C_202E_202E(builder, ItemId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? 2131945258 : 2131945256); - while (true) - { - int num2 = num; - int num3 = 2131945259; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - return EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId); - case 3: - num = (((object)other == null) ? 2131945257 : 2131945263); - break; - case 2: - return false; - case 4: - num = ((!_200B_202B_202C_206B_206C_202A_206C_200B_200C_200B_202E_200E_206C_200D_200F_200D_206C_206C_206D_200E_200B_200C_206E_206E_206B_200D_202D_202E_206A_202C_202B_206F_202B_206D_206E_202B_202B_200B_200E_206F_202E(EqualityContract, other.EqualityContract)) ? 2131945257 : 2131945262); - break; - case 0: - num = 2131945256; - break; - case 1: - return true; - } - } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200C_200D_202C_202C_200C_206D_206D_206D_200C_206C_202A_206E_202B_200B_206C_202A_200F_202D_202D_206F_202B_206F_206E_200F_200D_200B_200F_206B_206B_202B_200C_202B_202C_206A_200C_200B_202E_206E_200E_202D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _200C_200E_200E_202C_200C_202C_200D_206E_206F_206A_200D_200B_200C_202D_202E_200E_202A_206A_200B_200F_206B_202A_206E_200E_202E_206D_202E_206F_200F_200B_200F_202D_202A_206D_200E_206C_202B_200F_206F_206E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200F_200B_206D_200C_202E_206B_200F_206B_200E_206E_206C_206D_206F_200B_200C_200E_206D_206B_200B_206A_200F_206E_202D_202B_206E_206C_206D_200B_200E_202D_200E_206A_206F_200D_202D_202C_206A_202A_200C_202E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _200B_202B_202C_206B_206C_202A_206C_200B_200C_200B_202E_200E_206C_200D_200F_200D_206C_206C_206D_200E_200B_200C_206E_206E_206B_200D_202D_202E_206A_202C_202B_206F_202B_206D_206E_202B_202B_200B_200E_206F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"Unequip({ItemId})"; } } @@ -154,131 +36,50 @@ internal static class UnequipItem private int _attempts; - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - int num = _200F_200E_202E_200C_200F_202C_202B_206B_206C_202A_206E_202A_206B_200B_206B_206E_200C_200E_200D_202D_206B_202E_202A_200D_206D_206C_202C_206E_206B_206B_202D_200E_202A_202D_206D_206D_200C_202C_202D_202E(base.Task.ItemId); - int num2 = ((num >= 0) ? 206916703 : 206916700); - while (true) + int equippedItemSlot = InventoryHelper.GetEquippedItemSlot(base.Task.ItemId); + if (equippedItemSlot < 0) { - int num3 = num2; - int num4 = 206916702; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 0: - num2 = 206916700; - break; - case 3: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(50, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-547465777)); - defaultInterpolatedStringHandler.AppendFormatted(base.Task.ItemId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(271275153)); - throw new TaskException(defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 2: - _202B_206F_206B_200B_206A_202E_206C_206E_206F_202C_206B_200D_200D_202D_202E_206B_202A_202D_200D_202A_206A_200D_206A_202E_200B_202B_200B_206F_200D_206E_202B_202B_200F_202D_202A_200C_200D_206B_200B_200D_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(539896609), new object[1] { base.Task.ItemId }); - return false; - case 1: - num2 = (_206F_200E_202D_202D_202E_202B_202A_206A_206B_206B_200D_202A_202C_206B_206C_200F_200C_202B_200E_202D_202D_206B_206B_206C_206D_206B_202B_200C_200C_202D_202E_200F_206C_206F_200E_206A_206A_202D_200F_202E(num) ? 206916698 : 206916701); - break; - case 4: - _continueAt = _206B_202A_206D_200D_202C_202E_202E_200E_200E_202E_202A_202D_200D_200C_206F_202E_200F_200B_206A_202B_202C_200F_202B_202C_206A_200D_206B_206D_206D_206C_206B_200D_202A_206B_206B_206F_206B_206A_200C_202B_202E() + 1000; - _attempts = 1; - return true; - } + logger.LogDebug("Item {ItemId} is not equipped, skipping", base.Task.ItemId); + return false; } + if (!EEquipSlotCategoryExtensions.TryUnequipItem(equippedItemSlot)) + { + throw new TaskException($"Failed to unequip item {base.Task.ItemId} - armory chest may be full"); + } + _continueAt = Environment.TickCount64 + 1000; + _attempts = 1; + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - int num = ((_206B_202A_206D_200D_202C_202E_202E_200E_200E_202E_202A_202D_200D_200C_206F_202E_200F_200B_206A_202B_202C_200F_202B_202C_206A_200D_206B_206D_206D_206C_206B_200D_202A_206B_206B_206F_206B_206A_200C_202B_202E() >= _continueAt) ? 77146182 : 77146191); - int num5 = default(int); - while (true) + if (Environment.TickCount64 < _continueAt) { - int num2 = num; - int num3 = 77146190; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(36, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1782220482)); - defaultInterpolatedStringHandler.AppendFormatted(base.Task.ItemId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-441186023)); - defaultInterpolatedStringHandler.AppendFormatted(_attempts); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-770584815)); - throw new TaskException(defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 1: - return ETaskResult.StillRunning; - case 5: - _continueAt = _206B_202A_206D_200D_202C_202E_202E_200E_200E_202E_202A_202D_200D_200C_206F_202E_200F_200B_206A_202B_202C_200F_202B_202C_206A_200D_206B_206D_206D_206C_206B_200D_202A_206B_206B_206F_206B_206A_200C_202B_202E() + 1000; - return ETaskResult.StillRunning; - case 2: - _206F_200E_202D_202D_202E_202B_202A_206A_206B_206B_200D_202A_202C_206B_206C_200F_200C_202B_200E_202D_202D_206B_206B_206C_206D_206B_202B_200C_200C_202D_202E_200F_206C_206F_200E_206A_206A_202D_200F_202E(num5); - num = 77146187; - break; - case 0: - { - int attempts = _attempts; - num3 = 1; - num4 = attempts; - int num6 = num4 ^ num3; - int num7 = num4 & num3; - _attempts = num6 + (num7 + num7); - num = ((_attempts <= 3) ? 77146185 : 77146184); - break; - } - case 7: - num5 = _200F_200E_202E_200C_200F_202C_202B_206B_206C_202A_206E_202A_206B_200B_206B_206E_200C_200E_200D_202D_206B_202E_202A_200D_206D_206C_202C_206E_206B_206B_202D_200E_202A_202D_206D_206D_200C_202C_202D_202E(base.Task.ItemId); - num = ((num5 < 0) ? 77146187 : 77146188); - break; - case 8: - num = (_202D_206D_206B_200D_206E_202E_206F_206B_200F_200C_202C_206D_200E_206E_202B_200C_206D_206F_200B_206E_200F_200F_200E_202B_202C_206F_200D_202C_202A_206E_206F_206A_202E_200F_206A_206E_202B_206F_202B_200F_202E(base.Task.ItemId) ? 77146190 : 77146189); - break; - case 4: - num = 77146191; - break; - case 3: - return ETaskResult.TaskComplete; - } + return ETaskResult.StillRunning; } + if (!InventoryHelper.IsItemEquipped(base.Task.ItemId)) + { + return ETaskResult.TaskComplete; + } + _attempts++; + if (_attempts > 3) + { + throw new TaskException($"Item {base.Task.ItemId} still equipped after {_attempts} attempts"); + } + int equippedItemSlot = InventoryHelper.GetEquippedItemSlot(base.Task.ItemId); + if (equippedItemSlot >= 0) + { + EEquipSlotCategoryExtensions.TryUnequipItem(equippedItemSlot); + } + _continueAt = Environment.TickCount64 + 1000; + return ETaskResult.StillRunning; } public override bool ShouldInterruptOnDamage() { return true; } - - static int _200F_200E_202E_200C_200F_202C_202B_206B_206C_202A_206E_202A_206B_200B_206B_206E_200C_200E_200D_202D_206B_202E_202A_200D_206D_206C_202C_206E_206B_206B_202D_200E_202A_202D_206D_206D_200C_202C_202D_202E(uint P_0) - { - return InventoryHelper.GetEquippedItemSlot(P_0); - } - - static void _202B_206F_206B_200B_206A_202E_206C_206E_206F_202C_206B_200D_200D_202D_202E_206B_202A_202D_200D_202A_206A_200D_206A_202E_200B_202B_200B_206F_200D_206E_202B_202B_200F_202D_202A_200C_200D_206B_200B_200D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _206F_200E_202D_202D_202E_202B_202A_206A_206B_206B_200D_202A_202C_206B_206C_200F_200C_202B_200E_202D_202D_206B_206B_206C_206D_206B_202B_200C_200C_202D_202E_200F_206C_206F_200E_206A_206A_202D_200F_202E(int P_0) - { - return EEquipSlotCategoryExtensions.TryUnequipItem(P_0); - } - - static long _206B_202A_206D_200D_202C_202E_202E_200E_200E_202E_202A_202D_200D_200C_206F_202E_200F_200B_206A_202B_202C_200F_202B_202C_206A_200D_206B_206D_206D_206C_206B_200D_202A_206B_206B_206F_206B_206A_200C_202B_202E() - { - return Environment.TickCount64; - } - - static bool _202D_206D_206B_200D_206E_202E_206F_206B_200F_200C_202C_206D_200E_206E_202B_200C_206D_206F_200B_206E_200F_200F_200E_202B_202C_206F_200D_202C_202A_206E_206F_206A_202E_200F_206A_206E_202B_206F_202B_200F_202E(uint P_0) - { - return InventoryHelper.IsItemEquipped(P_0); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Interactions/UseItem.cs b/Questionable/Questionable.Controller.Steps.Interactions/UseItem.cs index bb62e3a..90c7e73 100644 --- a/Questionable/Questionable.Controller.Steps.Interactions/UseItem.cs +++ b/Questionable/Questionable.Controller.Steps.Interactions/UseItem.cs @@ -1,11 +1,7 @@ using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; using System.Globalization; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.Text.SeStringHandling; using Dalamud.Plugin.Services; @@ -27,351 +23,70 @@ internal static class UseItem { internal sealed class Factory(IClientState clientState, TerritoryData territoryData, ILogger<Factory> logger) : ITaskFactory { - [CompilerGenerated] - private sealed class _003CCreateVesperBayFallbackTask_003Ed__5 : IEnumerable<ITask>, IEnumerable, IEnumerator<ITask>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ITask _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - public Factory _003C_003E4__this; - - private uint _003CnpcId_003E5__2; - - private ushort _003CterritoryId_003E5__3; - - private Vector3 _003Cdestination_003E5__4; - - ITask IEnumerator<ITask>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CCreateVesperBayFallbackTask_003Ed__5(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _206E_200C_200E_202D_206F_202D_200D_206A_206E_202A_206C_206E_206B_200E_200E_206D_202A_200F_206A_206B_206E_200F_200D_206F_200C_206A_202B_202A_200B_200C_206D_202D_206E_206B_206B_206D_200C_200F_202D_202B_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - int num = _003C_003E1__state; - Factory factory = _003C_003E4__this; - switch (num) - { - default: - { - int num2 = 1011060312; - while (true) - { - int num3 = num2; - int num4 = 1011060314; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 4: - goto end_IL_0038; - case 5: - goto IL_00d6; - case 7: - goto IL_0123; - case 3: - goto IL_013e; - case 2: - return false; - case 0: - goto IL_01ac; - case 1: - goto end_IL_000f; - case 6: - num2 = 1011060312; - break; - } - continue; - end_IL_0038: - break; - } - goto case 3; - } - case 3: - { - _003C_003E1__state = -1; - ushort territoryId = _003CterritoryId_003E5__3; - Vector3 destination = _003Cdestination_003E5__4; - uint? dataId = _003CnpcId_003E5__2; - bool? sprint = false; - _003C_003E2__current = new MoveTask(territoryId, destination, null, MountRequired: false, DismountRequired: false, null, dataId, DisableNavmesh: false, sprint, Fly: false, Land: false, IgnoreDistanceToObject: false, RestartNavigation: true, EInteractionType.WalkTo); - _003C_003E1__state = 4; - return true; - } - case 4: - goto IL_00d6; - case 2: - goto IL_0123; - case 0: - goto IL_013e; - case 5: - goto IL_01ac; - case 1: - break; - IL_01ac: - _003C_003E1__state = -1; - return false; - IL_013e: - _003C_003E1__state = -1; - _206D_206E_206F_206F_200F_202D_202C_202D_206B_202D_200E_202B_202B_206B_200C_202A_202C_206F_202A_202E_202B_206A_206B_206C_200E_206A_202E_200F_202E_202C_202B_200F_202B_202A_206C_202B_206D_202B_206D_202D_202E((ILogger)factory.logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(14202332), Array.Empty<object>()); - _003CnpcId_003E5__2 = 1003540u; - _003CterritoryId_003E5__3 = 129; - _003Cdestination_003E5__4 = new Vector3(-360.9217f, 8f, 38.92566f); - _003C_003E2__current = new AetheryteTeleport.Task(EAetheryteLocation.Limsa, _003CterritoryId_003E5__3); - _003C_003E1__state = 1; - return true; - IL_0123: - _003C_003E1__state = -1; - _003C_003E2__current = new WaitAtEnd.WaitDelay(); - _003C_003E1__state = 3; - return true; - IL_00d6: - _003C_003E1__state = -1; - _003C_003E2__current = new Interact.Task(_003CnpcId_003E5__2, null, EInteractionType.None, SkipMarkerCheck: true); - _003C_003E1__state = 5; - return true; - end_IL_000f: - break; - } - _003C_003E1__state = -1; - _003C_003E2__current = new AethernetRide.Task(EAetheryteLocation.Limsa, EAetheryteLocation.LimsaArcanist); - _003C_003E1__state = 2; - return true; - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _200C_200C_200B_206B_206A_200D_200E_202D_206A_200D_206D_206B_202E_206F_206B_206B_202E_206D_200C_206E_202C_200C_206C_202E_200E_200B_206A_206B_200B_202C_206B_206E_200C_200D_200F_200D_200D_206F_200D_202E_202E(); - } - - [DebuggerHidden] - IEnumerator<ITask> IEnumerable<ITask>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? 1539034441 : 1539034442); - _003CCreateVesperBayFallbackTask_003Ed__5 result = default(_003CCreateVesperBayFallbackTask_003Ed__5); - while (true) - { - int num2 = num; - int num3 = 1539034440; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - return result; - case 2: - num = ((_003C_003El__initialThreadId != _206E_200C_200E_202D_206F_202D_200D_206A_206E_202A_206C_206E_206B_200E_200E_206D_202A_200F_206A_206B_206E_200F_200D_206F_200C_206A_202B_202A_200B_200C_206D_202D_206E_206B_206B_206D_200C_200F_202D_202B_202E()) ? 1539034441 : 1539034443); - break; - case 1: - result = new _003CCreateVesperBayFallbackTask_003Ed__5(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = 1539034444; - break; - case 3: - _003C_003E1__state = 0; - result = this; - num = 1539034444; - break; - case 0: - num = 1539034442; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ITask>)this).GetEnumerator(); - } - - static int _206E_200C_200E_202D_206F_202D_200D_206A_206E_202A_206C_206E_206B_200E_200E_206D_202A_200F_206A_206B_206E_200F_200D_206F_200C_206A_202B_202A_200B_200C_206D_202D_206E_206B_206B_206D_200C_200F_202D_202B_202E() - { - return Environment.CurrentManagedThreadId; - } - - static void _206D_206E_206F_206F_200F_202D_202C_202D_206B_202D_200E_202B_202B_206B_200C_202A_202C_206F_202A_202E_202B_206A_206B_206C_200E_206A_202E_200F_202E_202C_202B_200F_202B_202A_206C_202B_206D_202B_206D_202D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static NotSupportedException _200C_200C_200B_206B_206A_200D_200E_202D_206A_200D_206D_206B_202E_206F_206B_206B_202E_206D_200C_206E_202C_200C_206C_202E_200E_200B_206A_206B_200B_202C_206B_206E_200C_200D_200F_200D_200D_206F_200D_202E_202E() - { - return new NotSupportedException(); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - EInteractionType eInteractionType = _202B_202D_206F_202E_200F_206B_206B_200E_202C_206E_200E_200C_202D_206D_202C_200F_202A_206F_206D_200C_200C_206E_200B_206A_206B_202C_206B_202D_200F_202D_202A_206C_206A_202A_200C_206B_202B_206E_200E_202E(step); - int num = ((eInteractionType == EInteractionType.SinglePlayerDuty) ? (-1534293715) : (-1534293701)); - Mount.UnmountTask unmountTask = default(Mount.UnmountTask); - bool flag = default(bool); - ITask task = default(ITask); - int num7 = default(int); - UseOnSelf useOnSelf = default(UseOnSelf); - while (true) + EInteractionType interactionType = step.InteractionType; + if ((interactionType == EInteractionType.SinglePlayerDuty || interactionType == EInteractionType.CompleteQuest) ? true : false) { - int num2 = num; - int num3 = -1534293714; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - object obj; - Vector3? vector; - switch (num5 - (num6 + num6)) + if (!step.ItemId.HasValue) { - case 7: - num = ((InventoryManager.Instance()->GetInventoryItemCount(_202D_206F_202E_206B_200B_206C_202A_202A_206B_206E_200D_200E_200D_206F_206D_200F_200D_202D_200C_206F_200C_206A_206A_206C_206E_200C_200B_206E_206C_200B_200E_206B_202C_202E_206F_206E_202A_202C_202D_206D_202E(step).Value, isHq: false, checkEquipped: true, checkArmory: true, 0) != 0) ? (-1534293698) : (-1534293717)); - break; - case 8: - unmountTask = new Mount.UnmountTask(); - num = ((_206B_202C_200E_206E_202C_206F_202E_202A_202A_200F_202A_206E_200F_200D_202E_200D_200D_200D_202C_206C_206F_206F_202C_202A_206F_200B_200E_202E_200E_200F_200C_200E_202E_202A_206F_206A_202E_202A_206B_206D_202E(step) != true) ? (-1534293702) : (-1534293727)); - break; - case 13: - num = ((!flag) ? (-1534293697) : (-1534293726)); - break; - case 17: - num = ((_202B_202D_206F_202E_200F_206B_206B_200E_202C_206E_200E_200C_202D_206D_202C_200F_202A_206F_206D_200C_200C_206E_200B_206A_206B_202C_206B_202D_200F_202D_202A_206C_206A_202A_200C_206B_202B_206E_200E_202E(step) == EInteractionType.UseItem) ? (-1534293713) : (-1534293720)); - break; - case 12: - num = (_202D_206F_202E_206B_200B_206C_202A_202A_206B_206E_200D_200E_200D_206F_206D_200F_200D_202D_200C_206F_200C_206A_206A_206C_206E_200C_200B_206E_206C_200B_200E_206B_202C_202E_206F_206E_202A_202C_202D_206D_202E(step).HasValue ? (-1534293713) : (-1534293714)); - break; - case 18: - task = new UseOnGround(quest.Id, _202B_202B_206A_202C_202E_206B_200B_206C_200B_206C_206A_206C_202E_202B_206F_200B_200D_206A_206C_202A_200E_206F_202C_206C_206D_202B_202D_206F_200D_202D_206C_206F_202A_206D_200F_200F_202D_206F_202E_200D_202E(step).Value, _202D_206F_202E_206B_200B_206C_202A_202A_206B_206E_200D_200E_200D_206F_206D_200F_200D_202D_200C_206F_200C_206A_206A_206C_206E_200C_200B_206E_206C_200B_200E_206B_202C_202E_206F_206E_202A_202C_202D_206D_202E(step).Value, _200B_206C_206F_206F_202B_202E_202C_206D_200B_200D_202A_200B_202E_206F_202A_202C_206F_202A_200C_200F_200B_202B_206A_206A_206A_206B_206A_202C_200E_202A_202B_202D_206B_206B_202C_200C_206D_200D_200F_206E_202E(step)); - num = -1534293699; - break; - case 20: - num = ((!_202B_202B_206A_202C_202E_206B_200B_206C_200B_206C_206A_206C_202E_202B_206F_200B_200D_206A_206C_202A_200E_206F_202C_206C_206D_202B_202D_206F_200D_202D_206C_206F_202A_206D_200F_200F_202D_206F_202E_200D_202E(step).HasValue) ? (-1534293718) : (-1534293728)); - break; - case 5: - return CreateVesperBayFallbackTask(); - case 15: - num = ((!_202B_202B_206A_202C_202E_206B_200B_206C_200B_206C_206A_206C_202E_202B_206F_200B_200D_206A_206C_202A_200E_206F_202C_206C_206D_202B_202D_206F_200D_202D_206C_206F_202A_206D_200F_200F_202D_206F_202E_200D_202E(step).HasValue) ? (-1534293724) : (-1534293700)); - break; - case 9: - obj = _202D_200D_202A_206F_200E_206A_202B_200C_202D_206B_200B_206A_206A_200F_206B_200B_206D_206C_202D_200E_206E_202E_202B_206B_200C_200D_200C_206D_202B_202E_200B_206E_202D_202E_200F_202E_200C_206F_206F_202E(sequence)[num7]; - goto IL_0223; - case 3: - flag = true; - num = -1534293725; - break; - case 11: - num = -1534293701; - break; - case 19: - return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[3] - { - unmountTask, - new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(0.5)), - task - }); - case 6: return Array.Empty<ITask>(); - case 14: - { - UseOnObject useOnObject = new UseOnObject(quest.Id, _202B_202B_206A_202C_202E_206B_200B_206C_200B_206C_206A_206C_202E_202B_206F_200B_200D_206A_206C_202A_200E_206F_202C_206C_206D_202B_202D_206F_200D_202D_206C_206F_202A_206D_200F_200F_202D_206F_202E_200D_202E(step).Value, _202D_206F_202E_206B_200B_206C_202A_202A_206B_206E_200D_200E_200D_206F_206D_200F_200D_202D_200C_206F_200C_206A_206A_206C_206E_200C_200B_206E_206C_200B_200E_206B_202C_202E_206F_206E_202A_202C_202D_206D_202E(step).Value, _200B_206C_206F_206F_202B_202E_202C_206D_200B_200D_202A_200B_202E_206F_202A_202C_206F_202A_200C_200F_200B_202B_206A_206A_206A_206B_206A_202C_200E_202A_202B_202D_206B_206B_202C_200C_206D_200D_200F_206E_202E(step)); - return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] { unmountTask, useOnObject }); - } - case 21: - num = ((eInteractionType != EInteractionType.CompleteQuest) ? (-1534293704) : (-1534293715)); - break; - case 0: - return Array.Empty<ITask>(); - case 4: - { - UseOnSelf useOnSelf2 = new UseOnSelf(quest.Id, _202D_206F_202E_206B_200B_206C_202A_202A_206B_206E_200D_200E_200D_206F_206D_200F_200D_202D_200C_206F_200C_206A_206A_206C_206E_200C_200B_206E_206C_200B_200E_206B_202C_202E_206F_206E_202A_202C_202D_206D_202E(step).Value, _200B_206C_206F_206F_202B_202E_202C_206D_200B_200D_202A_200B_202E_206F_202A_202C_206F_202A_200C_200F_200B_202B_206A_206A_206A_206B_206A_202C_200E_202A_202B_202D_206B_206B_202C_200C_206D_200D_200F_206E_202E(step)); - return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] { unmountTask, useOnSelf2 }); - } - case 16: - useOnSelf = new UseOnSelf(quest.Id, _202D_206F_202E_206B_200B_206C_202A_202A_206B_206E_200D_200E_200D_206F_206D_200F_200D_202D_200C_206F_200C_206A_206A_206C_206E_200C_200B_206E_206C_200B_200E_206B_202C_202E_206F_206E_202A_202C_202D_206D_202E(step).Value, _200B_206C_206F_206F_202B_202E_202C_206D_200B_200D_202A_200B_202E_206F_202A_202C_206F_202A_200C_200F_200B_202B_206A_206A_206A_206B_206A_202C_200E_202A_202B_202D_206B_206B_202C_200C_206D_200D_200F_206E_202E(step)); - num7 = _202D_200D_202A_206F_200E_206A_202B_200C_202D_206B_200B_206A_206A_200F_206B_200B_206D_206C_202D_200E_206E_202E_202B_206B_200C_200D_200C_206D_202B_202E_200B_206E_202D_202E_200F_202E_200C_206F_206F_202E(sequence).IndexOf(step) + 1; - num = ((num7 < _202D_200D_202A_206F_200E_206A_202B_200C_202D_206B_200B_206A_206A_200F_206B_200B_206D_206C_202D_200E_206E_202E_202B_206B_200C_200D_200C_206D_202B_202E_200B_206E_202D_202E_200F_202E_200C_206F_206F_202E(sequence).Count) ? (-1534293721) : (-1534293716)); - break; - case 2: - obj = null; - goto IL_0223; - case 22: - flag = false; - num = -1534293725; - break; - case 10: - _206F_202B_200D_202A_200F_202C_200D_206D_200E_202A_206F_202B_206A_200C_202B_206C_206C_206C_206D_200E_200B_206E_206D_200D_206B_202A_202B_206E_206C_206F_206A_206A_200E_202B_200E_200F_200F_202D_206F_202B_202E((object)_206C_200E_206B_206A_206E_202B_200B_200B_202D_200D_200C_206C_200D_202A_202A_200D_206D_202C_206B_206C_200B_206E_206F_202A_202B_206F_202E_200C_206D_206C_200F_202B_202B_202A_206F_200C_200D_200F_206B_202D_202E(step), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(843502510)); - task = new UseOnPosition(quest.Id, _206C_200E_206B_206A_206E_202B_200B_200B_202D_200D_200C_206C_200D_202A_202A_200D_206D_202C_206B_206C_200B_206E_206F_202A_202B_206F_202E_200C_206D_206C_200F_202B_202B_202A_206F_200C_200D_200F_206B_202D_202E(step).Value, _202D_206F_202E_206B_200B_206C_202A_202A_206B_206E_200D_200E_200D_206F_206D_200F_200D_202D_200C_206F_200C_206A_206A_206C_206E_200C_200B_206E_206C_200B_200E_206B_202C_202E_206F_206E_202A_202C_202D_206D_202E(step).Value, _200B_206C_206F_206F_202B_202E_202C_206D_200B_200D_202A_200B_202E_206F_202A_202C_206F_202A_200C_200F_200B_202B_206A_206A_206A_206B_206A_202C_200E_202A_202B_202D_206B_206B_202C_200C_206D_200D_200F_206E_202E(step)); - num = -1534293699; - break; - case 1: - { - _206F_202B_200D_202A_200F_202C_200D_206D_200E_202A_206F_202B_206A_200C_202B_206C_206C_206C_206D_200E_200B_206E_206D_200D_206B_202A_202B_206E_206C_206F_206A_206A_200E_202B_200E_200F_200F_202D_206F_202B_202E((object)_202D_206F_202E_206B_200B_206C_202A_202A_206B_206E_200D_200E_200D_206F_206D_200F_200D_202D_200C_206F_200C_206A_206A_206C_206E_200C_200B_206E_206C_200B_200E_206B_202C_202E_206F_206E_202A_202C_202D_206D_202E(step), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1167381922)); - num = ((_202D_206F_202E_206B_200B_206C_202A_202A_206B_206E_200D_200E_200D_206F_206D_200F_200D_202D_200C_206F_200C_206A_206A_206C_206E_200C_200B_206E_206C_200B_200E_206B_202C_202E_206F_206E_202A_202C_202D_206D_202E(step) != 30362) ? (-1534293722) : (-1534293719)); - break; - } - IL_0223: - if (obj == null) - { - obj = step; - } - vector = _206C_200E_206B_206A_206E_202B_200B_200B_202D_200D_200C_206C_200D_202A_202A_200D_206D_202C_206B_206C_200B_206E_206F_202A_202B_206F_202E_200C_206D_206C_200F_202B_202B_202A_206F_200C_200D_200F_206B_202D_202E((QuestStep)obj); - return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[4] - { - useOnSelf, - new WaitCondition.Task(() => _202E_206C_202D_206C_200D_202D_200E_206F_206F_206F_202B_200C_206C_200B_206E_202B_200C_206B_200B_206E_206E_206B_206B_200C_206F_206D_206A_200F_200E_200E_200E_202C_202A_206B_206F_200B_200C_206D_202E_206A_202E(clientState) == 140, _206C_200E_202B_202E_202A_202A_200D_206B_200F_200D_202A_202B_206B_200E_206A_206D_206F_206F_206D_202D_202E_200D_202B_202B_200B_200D_202E_206F_202B_202D_200E_200B_200C_206F_202C_206D_202D_200B_200E_202D_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(923276170), territoryData.GetNameAndId(140u), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659))), - new Mount.MountTask(140, vector.HasValue ? Mount.EMountIf.AwayFromPosition : Mount.EMountIf.Always, vector), - new MoveTask(140, new Vector3(-408.92343f, 23.167036f, -351.16223f), null, MountRequired: false, DismountRequired: false, 0.25f, null, DisableNavmesh: true, false, Fly: false, Land: false, IgnoreDistanceToObject: false, RestartNavigation: true, EInteractionType.WalkTo) - }); } } - } - - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); + else if (step.InteractionType != EInteractionType.UseItem) + { + return Array.Empty<ITask>(); + } + ArgumentNullException.ThrowIfNull(step.ItemId, "step.ItemId"); + if (step.ItemId == 30362) + { + if (InventoryManager.Instance()->GetInventoryItemCount(step.ItemId.Value, isHq: false, checkEquipped: true, checkArmory: true, 0) == 0) + { + return CreateVesperBayFallbackTask(); + } + UseOnSelf useOnSelf = new UseOnSelf(quest.Id, step.ItemId.Value, step.CompletionQuestVariablesFlags); + int num = sequence.Steps.IndexOf(step) + 1; + Vector3? position = (((num < sequence.Steps.Count) ? sequence.Steps[num] : null) ?? step).Position; + return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[4] + { + useOnSelf, + new WaitCondition.Task(() => clientState.TerritoryType == 140, "Wait(territory: " + territoryData.GetNameAndId(140u) + ")"), + new Mount.MountTask(140, position.HasValue ? Mount.EMountIf.AwayFromPosition : Mount.EMountIf.Always, position), + new MoveTask(140, new Vector3(-408.92343f, 23.167036f, -351.16223f), null, MountRequired: false, DismountRequired: false, 0.25f, null, DisableNavmesh: true, false, Fly: false, Land: false, IgnoreDistanceToObject: false, RestartNavigation: true, EInteractionType.WalkTo) + }); + } + Mount.UnmountTask unmountTask = new Mount.UnmountTask(); + if (step.GroundTarget == true) + { + ITask task; + if (step.DataId.HasValue) + { + task = new UseOnGround(quest.Id, step.DataId.Value, step.ItemId.Value, step.CompletionQuestVariablesFlags); + } + else + { + ArgumentNullException.ThrowIfNull(step.Position, "step.Position"); + task = new UseOnPosition(quest.Id, step.Position.Value, step.ItemId.Value, step.CompletionQuestVariablesFlags); + } + return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[3] + { + unmountTask, + new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(0.5)), + task + }); + } + if (step.DataId.HasValue) + { + UseOnObject useOnObject = new UseOnObject(quest.Id, step.DataId.Value, step.ItemId.Value, step.CompletionQuestVariablesFlags); + return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] { unmountTask, useOnObject }); + } + UseOnSelf useOnSelf2 = new UseOnSelf(quest.Id, step.ItemId.Value, step.CompletionQuestVariablesFlags); + return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] { unmountTask, useOnSelf2 }); } private IEnumerable<ITask> CreateVesperBayFallbackTask() { - _003CCreateVesperBayFallbackTask_003Ed__5._206D_206E_206F_206F_200F_202D_202C_202D_206B_202D_200E_202B_202B_206B_200C_202A_202C_206F_202A_202E_202B_206A_206B_206C_200E_206A_202E_200F_202E_202C_202B_200F_202B_202A_206C_202B_206D_202B_206D_202D_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(14202332), Array.Empty<object>()); + logger.LogWarning("No vesper bay aetheryte tickets in inventory, navigating via ferry in Limsa instead"); uint npcId = 1003540u; ushort territoryId = 129; Vector3 destination = new Vector3(-360.9217f, 8f, 38.92566f); @@ -383,56 +98,6 @@ internal static class UseItem yield return new MoveTask(territoryId, destination, null, MountRequired: false, DismountRequired: false, null, dataId, DisableNavmesh: false, sprint, Fly: false, Land: false, IgnoreDistanceToObject: false, RestartNavigation: true, EInteractionType.WalkTo); yield return new Interact.Task(npcId, null, EInteractionType.None, SkipMarkerCheck: true); } - - static EInteractionType _202B_202D_206F_202E_200F_206B_206B_200E_202C_206E_200E_200C_202D_206D_202C_200F_202A_206F_206D_200C_200C_206E_200B_206A_206B_202C_206B_202D_200F_202D_202A_206C_206A_202A_200C_206B_202B_206E_200E_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static uint? _202D_206F_202E_206B_200B_206C_202A_202A_206B_206E_200D_200E_200D_206F_206D_200F_200D_202D_200C_206F_200C_206A_206A_206C_206E_200C_200B_206E_206C_200B_200E_206B_202C_202E_206F_206E_202A_202C_202D_206D_202E(QuestStep P_0) - { - return P_0.ItemId; - } - - static void _206F_202B_200D_202A_200F_202C_200D_206D_200E_202A_206F_202B_206A_200C_202B_206C_206C_206C_206D_200E_200B_206E_206D_200D_206B_202A_202B_206E_206C_206F_206A_206A_200E_202B_200E_200F_200F_202D_206F_202B_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static List<QuestWorkValue> _200B_206C_206F_206F_202B_202E_202C_206D_200B_200D_202A_200B_202E_206F_202A_202C_206F_202A_200C_200F_200B_202B_206A_206A_206A_206B_206A_202C_200E_202A_202B_202D_206B_206B_202C_200C_206D_200D_200F_206E_202E(QuestStep P_0) - { - return P_0.CompletionQuestVariablesFlags; - } - - static List<QuestStep> _202D_200D_202A_206F_200E_206A_202B_200C_202D_206B_200B_206A_206A_200F_206B_200B_206D_206C_202D_200E_206E_202E_202B_206B_200C_200D_200C_206D_202B_202E_200B_206E_202D_202E_200F_202E_200C_206F_206F_202E(QuestSequence P_0) - { - return P_0.Steps; - } - - static Vector3? _206C_200E_206B_206A_206E_202B_200B_200B_202D_200D_200C_206C_200D_202A_202A_200D_206D_202C_206B_206C_200B_206E_206F_202A_202B_206F_202E_200C_206D_206C_200F_202B_202B_202A_206F_200C_200D_200F_206B_202D_202E(QuestStep P_0) - { - return P_0.Position; - } - - static string _206C_200E_202B_202E_202A_202A_200D_206B_200F_200D_202A_202B_206B_200E_206A_206D_206F_206F_206D_202D_202E_200D_202B_202B_200B_200D_202E_206F_202B_202D_200E_200B_200C_206F_202C_206D_202D_200B_200E_202D_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static bool? _206B_202C_200E_206E_202C_206F_202E_202A_202A_200F_202A_206E_200F_200D_202E_200D_200D_200D_202C_206C_206F_206F_202C_202A_206F_200B_200E_202E_200E_200F_200C_200E_202E_202A_206F_206A_202E_202A_206B_206D_202E(QuestStep P_0) - { - return P_0.GroundTarget; - } - - static uint? _202B_202B_206A_202C_202E_206B_200B_206C_200B_206C_206A_206C_202E_202B_206F_200B_200D_206A_206C_202A_200E_206F_202C_206C_206D_202B_202D_206F_200D_202D_206C_206F_202A_206D_200F_200F_202D_206F_202E_200D_202E(QuestStep P_0) - { - return P_0.DataId; - } - - static uint _202E_206C_202D_206C_200D_202D_200E_206F_206F_206F_202B_200C_206C_200B_206E_202B_200C_206B_200B_206E_206E_206B_206B_200C_206F_206D_206A_200F_200E_200E_200E_202C_202A_206B_206F_200B_200C_206D_202E_206A_202E(IClientState P_0) - { - return P_0.TerritoryType; - } } internal interface IUseItemBase : ITask @@ -462,326 +127,105 @@ internal static class UseItem protected abstract bool UseItem(); - [MethodImpl(MethodImplOptions.NoInlining)] protected unsafe override bool Start() { InventoryManager* intPtr = InventoryManager.Instance(); if (intPtr == null) { - throw new TaskException(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2059803831)); + throw new TaskException("No InventoryManager"); } - int num = ((intPtr->GetInventoryItemCount(ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0) != 0) ? (-144142272) : (-144142269)); - while (true) + if (intPtr->GetInventoryItemCount(ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0) == 0) { - int num2 = num; - int num3 = -144142270; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - base.ProgressContext = InteractionProgressContext.FromActionUseOrDefault(() => _usedItem = UseItem()); - _usedItemAt = _200E_206D_202C_200D_202B_206E_202E_202C_206A_206A_206A_202B_202B_200E_206D_202D_206E_202C_206F_200D_200D_206A_202B_206D_206D_202E_206B_206E_202E_200D_200D_200E_202C_202D_206A_202D_202C_200F_206D_206D_202E(); - _continueAt = _200E_206D_202C_200D_202B_206E_202E_202C_206A_206A_206A_202B_202B_200E_206D_202D_206E_202C_206F_200D_200D_206A_202B_206D_206D_202E_206B_206E_202E_200D_200D_200E_202C_202D_206A_202D_202C_200F_206D_206D_202E() + GetRetryDelayMs(); - return true; - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(45, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1123294576)); - defaultInterpolatedStringHandler.AppendFormatted(ItemId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(706546884)); - throw new TaskException(defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 0: - goto IL_00ea; - } - continue; - IL_00ea: - num = -144142269; + throw new TaskException($"Don't have any {ItemId} in inventory (checks NQ only)"); } + base.ProgressContext = InteractionProgressContext.FromActionUseOrDefault(() => _usedItem = UseItem()); + _usedItemAt = Environment.TickCount64; + _continueAt = Environment.TickCount64 + GetRetryDelayMs(); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - QuestId questId = base.Task.QuestId as QuestId; - int num = (((object)questId == null) ? 825457812 : 825457794); - QuestProgressInfo questProgressInfo = default(QuestProgressInfo); - while (true) + if (base.Task.QuestId is QuestId elementId && QuestWorkUtils.HasCompletionFlags(base.Task.CompletionQuestVariablesFlags)) { - int num2 = num; - int num3 = 825457810; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + QuestProgressInfo questProgressInfo = _003CquestFunctions_003EP.GetQuestProgressInfo(elementId); + if (questProgressInfo != null && QuestWorkUtils.MatchesQuestWork(base.Task.CompletionQuestVariablesFlags, questProgressInfo)) { - case 20: - questProgressInfo = _003CquestFunctions_003EP.GetQuestProgressInfo(questId); - num = ((questProgressInfo == null) ? 825457812 : 825457817); - break; - case 16: - num = ((!QuestWorkUtils.HasCompletionFlags(base.Task.CompletionQuestVariablesFlags)) ? 825457812 : 825457798); - break; - case 15: - num = ((!base.Task.StartingCombat) ? 825457815 : 825457795); - break; - case 19: - _errorToastReceived = false; - ResetProgressTimer(); - num = 825457813; - break; - case 10: - return ETaskResult.TaskComplete; - case 11: - num = ((!QuestWorkUtils.MatchesQuestWork(base.Task.CompletionQuestVariablesFlags, questProgressInfo)) ? 825457812 : 825457792); - break; - case 4: - base.ProgressContext = InteractionProgressContext.FromActionUseOrDefault(() => _usedItem = UseItem()); - _usedItemAt = _200E_206D_202C_200D_202B_206E_202E_202C_206A_206A_206A_202B_202B_200E_206D_202D_206E_202C_206F_200D_200D_206A_202B_206D_206D_202E_206B_206E_202E_200D_200D_200E_202C_202D_206A_202D_202C_200F_206D_206D_202E(); - _continueAt = _200E_206D_202C_200D_202B_206E_202E_202C_206A_206A_206A_202B_202B_200E_206D_202D_206E_202C_206F_200D_200D_206A_202B_206D_206D_202E_206B_206E_202E_200D_200D_200E_202C_202D_206A_202D_202C_200F_206D_206D_202E() + GetRetryDelayMs(); - return ETaskResult.StillRunning; - case 12: - num = (_usedItem ? 825457816 : 825457814); - break; - case 14: - num = ((!_errorToastReceived) ? 825457822 : 825457811); - break; - case 18: ResetProgressTimer(); return ETaskResult.TaskComplete; - case 0: - num = ((!base.ProgressContext.WasSuccessful()) ? 825457813 : 825457793); - break; - case 1: - _206B_202A_206B_200B_202B_206A_206F_200B_200C_206C_200B_202B_206A_206E_202C_200D_202B_206F_206A_206F_206B_206E_202E_200C_200C_206F_202B_202C_202C_202C_206E_202C_202D_206C_202D_202A_206A_206C_200B_206B_202E(_003Clogger_003EP, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(390633160), new object[1] { ItemId }); - _usedItem = false; - _errorToastReceived = false; - return ETaskResult.StillRunning; - case 13: - ResetProgressTimer(); - return ETaskResult.TaskComplete; - case 6: - num = ((_200E_206D_202C_200D_202B_206E_202E_202C_206A_206A_206A_202B_202B_200E_206D_202D_206E_202C_206F_200D_200D_206A_202B_206D_206D_202E_206B_206E_202E_200D_200D_200E_202C_202D_206A_202D_202C_200F_206D_206D_202E() > _continueAt) ? 825457821 : 825457819); - break; - case 8: - _206B_202A_206B_200B_202B_206A_206F_200B_200C_206C_200B_202B_206A_206E_202C_200D_202B_206F_206A_206F_206B_206E_202E_200C_200C_206F_202B_202C_202C_202C_206E_202C_202D_206C_202D_202A_206A_206C_200B_206B_202E(_003Clogger_003EP, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-652120701), new object[1] { ItemId }); - _usedItem = false; - _errorToastReceived = false; - return ETaskResult.StillRunning; - case 7: - num = ((!_usedItem) ? 825457822 : 825457820); - break; - case 2: - num = ((!base.ProgressContext.WasInterrupted()) ? 825457810 : 825457818); - break; - case 9: - return ETaskResult.StillRunning; - case 17: - num = ((!_206D_200E_206D_202C_200B_200F_200F_200D_200E_202E_206B_202A_200F_200C_200D_202C_206B_202D_202B_206C_202C_202D_202C_200C_200B_206B_206D_206D_202C_202A_200B_206A_200C_200E_202D_202B_202D_202B_206E_206D_202E(_003Ccondition_003EP, ConditionFlag.InCombat)) ? 825457815 : 825457823); - break; - case 3: - num = 825457794; - break; - case 5: - num = ((base.ProgressContext == null) ? 825457813 : 825457808); - break; } } + if (Environment.TickCount64 <= _continueAt) + { + return ETaskResult.StillRunning; + } + if (base.Task.StartingCombat && _003Ccondition_003EP[ConditionFlag.InCombat]) + { + ResetProgressTimer(); + return ETaskResult.TaskComplete; + } + if (base.ProgressContext != null) + { + if (base.ProgressContext.WasInterrupted()) + { + _003Clogger_003EP.LogDebug("Item use {ItemId} was interrupted", ItemId); + _usedItem = false; + _errorToastReceived = false; + return ETaskResult.StillRunning; + } + if (base.ProgressContext.WasSuccessful()) + { + _errorToastReceived = false; + ResetProgressTimer(); + } + } + if (_usedItem && _errorToastReceived) + { + _003Clogger_003EP.LogDebug("Item {ItemId} use failed (error toast received), retrying", ItemId); + _usedItem = false; + _errorToastReceived = false; + return ETaskResult.StillRunning; + } + if (!_usedItem) + { + base.ProgressContext = InteractionProgressContext.FromActionUseOrDefault(() => _usedItem = UseItem()); + _usedItemAt = Environment.TickCount64; + _continueAt = Environment.TickCount64 + GetRetryDelayMs(); + return ETaskResult.StillRunning; + } + return ETaskResult.TaskComplete; } private long GetRetryDelayMs() { - int num = ((ItemId != 30362) ? (-1735326033) : (-1735326036)); - while (true) + if (ItemId == 30362) { - int num2 = num; - int num3 = -1735326035; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004d; - case 1: - return 11000L; - case 2: - return 5000L; - } - continue; - IL_004d: - num = -1735326036; + return 11000L; } + return 5000L; } - [MethodImpl(MethodImplOptions.NoInlining)] public bool OnErrorToast(SeString message) { - int num = ((!_usedItem) ? 181701879 : 181701876); - while (true) + if (_usedItem && Environment.TickCount64 - _usedItemAt < 2000) { - int num2 = num; - int num3 = 181701878; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 181701876; - break; - case 2: - num = ((_200E_206D_202C_200D_202B_206E_202E_202C_206A_206A_206A_202B_202B_200E_206D_202D_206E_202C_206F_200D_200D_206A_202B_206D_206D_202E_206B_206E_202E_200D_200D_200E_202C_202D_206A_202D_202C_200F_206D_206D_202E() - _usedItemAt >= 2000) ? 181701879 : 181701877); - break; - case 3: - _206B_202A_206B_200B_202B_206A_206F_200B_200C_206C_200B_202B_206A_206E_202C_200D_202B_206F_206A_206F_206B_206E_202E_200C_200C_206F_202B_202C_202C_202C_206E_202C_202D_206C_202D_202A_206A_206C_200B_206B_202E(_003Clogger_003EP, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1034289192), new object[1] { message }); - _errorToastReceived = true; - num = 181701879; - break; - case 1: - return false; - } + _003Clogger_003EP.LogDebug("Error toast during item use: {Message}", message); + _errorToastReceived = true; } - } - - bool IToastAware.OnErrorToast(SeString message) - { - //ILSpy generated this explicit interface implementation from .override directive in OnErrorToast - return this.OnErrorToast(message); + return false; } public override bool ShouldInterruptOnDamage() { return true; } - - static long _200E_206D_202C_200D_202B_206E_202E_202C_206A_206A_206A_202B_202B_200E_206D_202D_206E_202C_206F_200D_200D_206A_202B_206D_206D_202E_206B_206E_202E_200D_200D_200E_202C_202D_206A_202D_202C_200F_206D_206D_202E() - { - return Environment.TickCount64; - } - - static bool _206D_200E_206D_202C_200B_200F_200F_200D_200E_202E_206B_202A_200F_200C_200D_202C_206B_202D_202B_206C_202C_202D_202C_200C_200B_206B_206D_206D_202C_202A_200B_206A_200C_200E_202D_202B_202D_202B_206E_206D_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static void _206B_202A_206B_200B_202B_206A_206F_200B_200C_206C_200B_202B_206A_206E_202C_200D_202B_206F_206A_206F_206B_206E_202E_200C_200C_206F_202B_202C_202C_202C_206E_202C_202D_206C_202D_202A_206A_206C_200B_206B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } } internal sealed record UseOnGround(ElementId? QuestId, uint DataId, uint ItemId, IList<QuestWorkValue?> CompletionQuestVariablesFlags, bool StartingCombat = false) : IUseItemBase, ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206C_202D_202C_200F_202D_202A_206F_200B_202E_202C_200F_202D_200F_202D_206A_206D_206E_206D_200E_202D_202A_202B_206F_200B_202E_206A_206E_200B_202E_202A_202D_202A_206C_202E_206A_206B_206C_200E_200F_202D_202E(typeof(UseOnGround).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(23, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-591224418)); - defaultInterpolatedStringHandler.AppendFormatted(ItemId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-103312242)); - defaultInterpolatedStringHandler.AppendFormatted(DataId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200E_202D_206E_200F_200D_206D_202B_202E_200C_202A_206F_202C_206B_202E_200B_206F_202E_200C_202C_200D_202B_202B_206B_202B_206B_206B_202A_206F_202A_200E_206C_206B_200D_202B_206E_200D_202E_202E_202B_206C_202E(); - _200B_206D_206E_200C_202D_202B_200E_206A_206F_200B_202D_200C_200D_202B_206E_202B_202E_206D_202E_202C_206D_206B_200B_202D_206D_200B_200D_200B_200D_200F_202D_206B_206D_200D_200F_206A_200B_202D_202D_200D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(397591495)); - _206B_206A_206C_206C_200C_200E_202E_200F_200C_202B_200E_202D_206D_206A_202C_206A_202B_200E_200B_200F_206A_202B_206F_200F_202E_202C_200E_200D_202B_202B_202A_202C_206C_200D_202D_200F_202B_206C_200B_202D_202E(builder, (object?)QuestId); - _200B_206D_206E_200C_202D_202B_200E_206A_206F_200B_202D_200C_200D_202B_206E_202B_202E_206D_202E_202C_206D_206B_200B_202D_206D_200B_200D_200B_200D_200F_202D_206B_206D_200D_200F_206A_200B_202D_202D_200D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(97441196)); - _200B_206D_206E_200C_202D_202B_200E_206A_206F_200B_202D_200C_200D_202B_206E_202B_202E_206D_202E_202C_206D_206B_200B_202D_206D_200B_200D_200B_200D_200F_202D_206B_206D_200D_200F_206A_200B_202D_202D_200D_202E(builder, DataId.ToString()); - _200B_206D_206E_200C_202D_202B_200E_206A_206F_200B_202D_200C_200D_202B_206E_202B_202E_206D_202E_202C_206D_206B_200B_202D_206D_200B_200D_200B_200D_200F_202D_206B_206D_200D_200F_206A_200B_202D_202D_200D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1061931861)); - _200B_206D_206E_200C_202D_202B_200E_206A_206F_200B_202D_200C_200D_202B_206E_202B_202E_206D_202E_202C_206D_206B_200B_202D_206D_200B_200D_200B_200D_200F_202D_206B_206D_200D_200F_206A_200B_202D_202D_200D_202E(builder, ItemId.ToString()); - _200B_206D_206E_200C_202D_202B_200E_206A_206F_200B_202D_200C_200D_202B_206E_202B_202E_206D_202E_202C_206D_206B_200B_202D_206D_200B_200D_200B_200D_200F_202D_206B_206D_200D_200F_206A_200B_202D_202D_200D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1595351351)); - _206B_206A_206C_206C_200C_200E_202E_200F_200C_202B_200E_202D_206D_206A_202C_206A_202B_200E_200B_200F_206A_202B_206F_200F_202E_202C_200E_200D_202B_202B_202A_202C_206C_200D_202D_200F_202B_206C_200B_202D_202E(builder, (object?)CompletionQuestVariablesFlags); - _200B_206D_206E_200C_202D_202B_200E_206A_206F_200B_202D_200C_200D_202B_206E_202B_202E_206D_202E_202C_206D_206B_200B_202D_206D_200B_200D_200B_200D_200F_202D_206B_206D_200D_200F_206A_200B_202D_202D_200D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1965435376)); - _200B_206D_206E_200C_202D_202B_200E_206A_206F_200B_202D_200C_200D_202B_206E_202B_202E_206D_202E_202C_206D_206B_200B_202D_206D_200B_200D_200B_200D_200F_202D_206B_206D_200D_200F_206A_200B_202D_202D_200D_202E(builder, StartingCombat.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(UseOnGround? other) - { - int num = (((object)this == other) ? 1460107890 : 1460107894); - while (true) - { - int num2 = num; - int num3 = 1460107893; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? 1460107900 : 1460107893); - break; - case 3: - num = (((object)other == null) ? 1460107900 : 1460107888); - break; - case 6: - return EqualityComparer<bool>.Default.Equals(StartingCombat, other.StartingCombat); - case 4: - num = ((!EqualityComparer<ElementId>.Default.Equals(QuestId, other.QuestId)) ? 1460107900 : 1460107895); - break; - case 7: - return true; - case 5: - num = ((!_206C_202C_202C_202C_202A_200F_200D_202A_202D_202D_206F_202A_200F_200C_200F_200F_206E_202C_206C_200C_202A_200F_206E_202B_200B_202A_206C_206D_206E_206A_206E_200D_200B_202C_202A_206A_206A_200E_206E_206D_202E(EqualityContract, other.EqualityContract)) ? 1460107900 : 1460107889); - break; - case 2: - num = ((!EqualityComparer<uint>.Default.Equals(DataId, other.DataId)) ? 1460107900 : 1460107892); - break; - case 8: - num = 1460107894; - break; - case 9: - return false; - case 0: - num = ((!EqualityComparer<IList<QuestWorkValue>>.Default.Equals(CompletionQuestVariablesFlags, other.CompletionQuestVariablesFlags)) ? 1460107900 : 1460107891); - break; - } - } - } - - bool IEquatable<UseOnGround>.Equals(UseOnGround? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type? _206C_202D_202C_200F_202D_202A_206F_200B_202E_202C_200F_202D_200F_202D_206A_206D_206E_206D_200E_202D_202A_202B_206F_200B_202E_206A_206E_200B_202E_202A_202D_202A_206C_202E_206A_206B_206C_200E_200F_202D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _200E_202D_206E_200F_200D_206D_202B_202E_200C_202A_206F_202C_206B_202E_200B_206F_202E_200C_202C_200D_202B_202B_206B_202B_206B_206B_202A_206F_202A_200E_206C_206B_200D_202B_206E_200D_202E_202E_202B_206C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder? _200B_206D_206E_200C_202D_202B_200E_206A_206F_200B_202D_200C_200D_202B_206E_202B_202E_206D_202E_202C_206D_206B_200B_202D_206D_200B_200D_200B_200D_200F_202D_206B_206D_200D_200F_206A_200B_202D_202D_200D_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _206B_206A_206C_206C_200C_200E_202E_200F_200C_202B_200E_202D_206D_206A_202C_206A_202B_200E_200B_200F_206A_202B_206F_200F_202E_202C_200E_200D_202B_202B_202A_202C_206C_200D_202D_200F_202B_206C_200B_202D_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } - - static bool _206C_202C_202C_202C_202A_200F_200D_202A_202D_202D_206F_202A_200F_200C_200F_200F_206E_202C_206C_200C_202A_200F_206E_202B_200B_202A_206C_206D_206E_206A_206E_200D_200B_202C_202A_206A_206A_200E_206E_206D_202E(Type? P_0, Type? P_1) - { - return P_0 == P_1; + return $"UseItem({ItemId} on ground at {DataId})"; } } @@ -801,122 +245,9 @@ internal static class UseItem internal sealed record UseOnPosition(ElementId? QuestId, Vector3 Position, uint ItemId, IList<QuestWorkValue?> CompletionQuestVariablesFlags, bool StartingCombat = false) : IUseItemBase, ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206B_202A_206F_206D_202C_202A_202E_206C_200B_200D_206E_200B_200D_206A_200C_202D_206E_206A_200C_206F_200B_202A_200D_200E_206E_202B_200B_206D_200C_202A_200D_206E_206B_206E_200E_206F_200E_206F_202C_200F_202E(typeof(UseOnPosition).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(23, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1918970186)); - defaultInterpolatedStringHandler.AppendFormatted(ItemId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-322006827)); - defaultInterpolatedStringHandler.AppendFormatted(Position.ToString(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1450220880), _200B_200E_206B_206C_202C_202B_202C_200F_206D_202A_202C_202B_202C_206E_202B_206A_200B_206D_206C_206F_200C_200C_202C_200D_206B_206D_202B_200B_206A_200E_202E_206B_202D_202A_206C_202C_206B_206D_202A_206F_202E())); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202A_202E_200D_206A_206A_202E_200E_202D_202A_200E_206A_202E_200B_206D_202C_202B_202E_202A_202D_206B_200F_200C_200D_206F_206E_202C_206F_202E_206B_200F_200D_206E_206B_202E_202C_206E_200E_200B_202C_202A_202E(); - _200D_200E_206D_200C_206A_206F_200C_206B_200B_202E_202D_200E_206D_200F_202D_202B_200D_200F_206F_200F_202A_202D_206C_202B_206E_202B_206A_206E_206D_206A_206D_206A_202C_206A_200B_200E_206E_206D_206F_200C_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(65254652)); - _202D_202C_206D_200D_200C_200E_202B_202D_206F_202A_200F_200B_202D_200F_202D_202C_206A_202D_200C_206F_206A_202B_206A_202B_200C_206B_200E_200E_200B_206A_200E_202E_202E_202C_206D_200F_202C_206B_200C_206E_202E(builder, (object?)QuestId); - _200D_200E_206D_200C_206A_206F_200C_206B_200B_202E_202D_200E_206D_200F_202D_202B_200D_200F_206F_200F_202A_202D_206C_202B_206E_202B_206A_206E_206D_206A_206D_206A_202C_206A_200B_200E_206E_206D_206F_200C_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1993330002)); - _200D_200E_206D_200C_206A_206F_200C_206B_200B_202E_202D_200E_206D_200F_202D_202B_200D_200F_206F_200F_202A_202D_206C_202B_206E_202B_206A_206E_206D_206A_206D_206A_202C_206A_200B_200E_206E_206D_206F_200C_202E(builder, Position.ToString()); - _200D_200E_206D_200C_206A_206F_200C_206B_200B_202E_202D_200E_206D_200F_202D_202B_200D_200F_206F_200F_202A_202D_206C_202B_206E_202B_206A_206E_206D_206A_206D_206A_202C_206A_200B_200E_206E_206D_206F_200C_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1085623692)); - _200D_200E_206D_200C_206A_206F_200C_206B_200B_202E_202D_200E_206D_200F_202D_202B_200D_200F_206F_200F_202A_202D_206C_202B_206E_202B_206A_206E_206D_206A_206D_206A_202C_206A_200B_200E_206E_206D_206F_200C_202E(builder, ItemId.ToString()); - _200D_200E_206D_200C_206A_206F_200C_206B_200B_202E_202D_200E_206D_200F_202D_202B_200D_200F_206F_200F_202A_202D_206C_202B_206E_202B_206A_206E_206D_206A_206D_206A_202C_206A_200B_200E_206E_206D_206F_200C_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2004134170)); - _202D_202C_206D_200D_200C_200E_202B_202D_206F_202A_200F_200B_202D_200F_202D_202C_206A_202D_200C_206F_206A_202B_206A_202B_200C_206B_200E_200E_200B_206A_200E_202E_202E_202C_206D_200F_202C_206B_200C_206E_202E(builder, (object?)CompletionQuestVariablesFlags); - _200D_200E_206D_200C_206A_206F_200C_206B_200B_202E_202D_200E_206D_200F_202D_202B_200D_200F_206F_200F_202A_202D_206C_202B_206E_202B_206A_206E_206D_206A_206D_206A_202C_206A_200B_200E_206E_206D_206F_200C_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-27417538)); - _200D_200E_206D_200C_206A_206F_200C_206B_200B_202E_202D_200E_206D_200F_202D_202B_200D_200F_206F_200F_202A_202D_206C_202B_206E_202B_206A_206E_206D_206A_206D_206A_202C_206A_200B_200E_206E_206D_206F_200C_202E(builder, StartingCombat.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(UseOnPosition? other) - { - int num = (((object)this == other) ? 495262041 : 495262040); - while (true) - { - int num2 = num; - int num3 = 495262033; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - num = 495262040; - break; - case 5: - return EqualityComparer<bool>.Default.Equals(StartingCombat, other.StartingCombat); - case 9: - num = (((object)other == null) ? 495262034 : 495262038); - break; - case 4: - num = ((!EqualityComparer<Vector3>.Default.Equals(Position, other.Position)) ? 495262034 : 495262035); - break; - case 2: - num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? 495262034 : 495262033); - break; - case 1: - num = ((!EqualityComparer<ElementId>.Default.Equals(QuestId, other.QuestId)) ? 495262034 : 495262037); - break; - case 8: - return true; - case 0: - num = ((!EqualityComparer<IList<QuestWorkValue>>.Default.Equals(CompletionQuestVariablesFlags, other.CompletionQuestVariablesFlags)) ? 495262034 : 495262036); - break; - case 7: - num = ((!_202B_206A_200D_206F_206C_206B_206D_200F_206A_202E_206E_200E_202C_202A_200C_202B_206C_206E_206C_202C_206E_202C_200E_206F_202B_200F_206F_200F_202B_202C_206C_206D_200D_206A_206F_200B_200C_206A_200D_200C_202E(EqualityContract, other.EqualityContract)) ? 495262034 : 495262032); - break; - case 3: - return false; - } - } - } - - bool IEquatable<UseOnPosition>.Equals(UseOnPosition? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type? _206B_202A_206F_206D_202C_202A_202E_206C_200B_200D_206E_200B_200D_206A_200C_202D_206E_206A_200C_206F_200B_202A_200D_200E_206E_202B_200B_206D_200C_202A_200D_206E_206B_206E_200E_206F_200E_206F_202C_200F_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static CultureInfo? _200B_200E_206B_206C_202C_202B_202C_200F_206D_202A_202C_202B_202C_206E_202B_206A_200B_206D_206C_206F_200C_200C_202C_200D_206B_206D_202B_200B_206A_200E_202E_206B_202D_202A_206C_202C_206B_206D_202A_206F_202E() - { - return CultureInfo.InvariantCulture; - } - - static void _202A_202E_200D_206A_206A_202E_200E_202D_202A_200E_206A_202E_200B_206D_202C_202B_202E_202A_202D_206B_200F_200C_200D_206F_206E_202C_206F_202E_206B_200F_200D_206E_206B_202E_202C_206E_200E_200B_202C_202A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder? _200D_200E_206D_200C_206A_206F_200C_206B_200B_202E_202D_200E_206D_200F_202D_202B_200D_200F_206F_200F_202A_202D_206C_202B_206E_202B_206A_206E_206D_206A_206D_206A_202C_206A_200B_200E_206E_206D_206F_200C_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _202D_202C_206D_200D_200C_200E_202B_202D_206F_202A_200F_200B_202D_200F_202D_202C_206A_202D_200C_206F_206A_202B_206A_202B_200C_206B_200E_200E_200B_206A_200E_202E_202E_202C_206D_200F_202C_206B_200C_206E_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } - - static bool _202B_206A_200D_206F_206C_206B_206D_200F_206A_202E_206E_200E_202C_202A_200C_202B_206C_206E_206C_202C_206E_202C_200E_206F_202B_200F_206F_200F_202B_202C_206C_206D_200D_206A_206F_200B_200C_206A_200D_200C_202E(Type? P_0, Type? P_1) - { - return P_0 == P_1; + return $"UseItem({ItemId} on ground at {Position.ToString("G", CultureInfo.InvariantCulture)})"; } } @@ -936,117 +267,9 @@ internal static class UseItem internal sealed record UseOnObject(ElementId? QuestId, uint DataId, uint ItemId, IList<QuestWorkValue?> CompletionQuestVariablesFlags, bool StartingCombat = false) : IUseItemBase, ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206D_206C_200B_206B_206F_202B_206B_206E_200F_202E_200F_206A_206D_206F_206B_202B_200D_200C_206A_206B_206C_202C_200C_200B_206C_202E_202D_206F_202D_206D_202E_202D_202B_206C_206B_200B_206C_200C_200B_202E_202E(typeof(UseOnObject).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(13, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-771729059)); - defaultInterpolatedStringHandler.AppendFormatted(ItemId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1909105457)); - defaultInterpolatedStringHandler.AppendFormatted(DataId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206A_206B_202C_202A_206B_200C_206A_202A_206A_206F_206C_206A_202B_202D_206F_202B_202C_200B_202A_206C_200D_206C_202E_202E_200F_200C_200E_206A_202E_202D_206A_200F_202D_206C_202E_206F_206C_206C_202E_200E_202E(); - _202D_206D_202A_202A_200B_206A_200C_200F_200F_200D_202B_202B_206C_200F_202B_200C_202D_200E_206F_206A_206D_202A_206C_202E_200F_202A_206F_206D_200C_206E_202C_200E_202D_202C_206E_202D_200F_202B_206E_202A_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(65254652)); - _206D_202D_206A_200D_200D_202A_200E_200E_206A_206D_202E_202B_202B_202E_200D_202D_202A_206D_202B_200D_202D_202D_206D_202A_200F_200D_206F_206D_202B_206F_206F_206F_200D_200B_200D_202B_206D_206B_206D_206C_202E(builder, (object?)QuestId); - _202D_206D_202A_202A_200B_206A_200C_200F_200F_200D_202B_202B_206C_200F_202B_200C_202D_200E_206F_206A_206D_202A_206C_202E_200F_202A_206F_206D_200C_206E_202C_200E_202D_202C_206E_202D_200F_202B_206E_202A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-223784845)); - _202D_206D_202A_202A_200B_206A_200C_200F_200F_200D_202B_202B_206C_200F_202B_200C_202D_200E_206F_206A_206D_202A_206C_202E_200F_202A_206F_206D_200C_206E_202C_200E_202D_202C_206E_202D_200F_202B_206E_202A_202E(builder, DataId.ToString()); - _202D_206D_202A_202A_200B_206A_200C_200F_200F_200D_202B_202B_206C_200F_202B_200C_202D_200E_206F_206A_206D_202A_206C_202E_200F_202A_206F_206D_200C_206E_202C_200E_202D_202C_206E_202D_200F_202B_206E_202A_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-829358037)); - _202D_206D_202A_202A_200B_206A_200C_200F_200F_200D_202B_202B_206C_200F_202B_200C_202D_200E_206F_206A_206D_202A_206C_202E_200F_202A_206F_206D_200C_206E_202C_200E_202D_202C_206E_202D_200F_202B_206E_202A_202E(builder, ItemId.ToString()); - _202D_206D_202A_202A_200B_206A_200C_200F_200F_200D_202B_202B_206C_200F_202B_200C_202D_200E_206F_206A_206D_202A_206C_202E_200F_202A_206F_206D_200C_206E_202C_200E_202D_202C_206E_202D_200F_202B_206E_202A_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-755497586)); - _206D_202D_206A_200D_200D_202A_200E_200E_206A_206D_202E_202B_202B_202E_200D_202D_202A_206D_202B_200D_202D_202D_206D_202A_200F_200D_206F_206D_202B_206F_206F_206F_200D_200B_200D_202B_206D_206B_206D_206C_202E(builder, (object?)CompletionQuestVariablesFlags); - _202D_206D_202A_202A_200B_206A_200C_200F_200F_200D_202B_202B_206C_200F_202B_200C_202D_200E_206F_206A_206D_202A_206C_202E_200F_202A_206F_206D_200C_206E_202C_200E_202D_202C_206E_202D_200F_202B_206E_202A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1965435376)); - _202D_206D_202A_202A_200B_206A_200C_200F_200F_200D_202B_202B_206C_200F_202B_200C_202D_200E_206F_206A_206D_202A_206C_202E_200F_202A_206F_206D_200C_206E_202C_200E_202D_202C_206E_202D_200F_202B_206E_202A_202E(builder, StartingCombat.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(UseOnObject? other) - { - int num = (((object)this == other) ? (-2092737050) : (-2092737056)); - while (true) - { - int num2 = num; - int num3 = -2092737051; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return EqualityComparer<bool>.Default.Equals(StartingCombat, other.StartingCombat); - case 8: - num = ((!EqualityComparer<ElementId>.Default.Equals(QuestId, other.QuestId)) ? (-2092737054) : (-2092737055)); - break; - case 7: - return false; - case 3: - return true; - case 5: - num = (((object)other == null) ? (-2092737054) : (-2092737049)); - break; - case 9: - num = ((!EqualityComparer<IList<QuestWorkValue>>.Default.Equals(CompletionQuestVariablesFlags, other.CompletionQuestVariablesFlags)) ? (-2092737054) : (-2092737052)); - break; - case 0: - num = -2092737056; - break; - case 2: - num = ((!_206F_206B_206F_202E_202B_202B_202B_206C_202B_202C_206D_206B_202B_202C_202C_202B_206D_202A_206C_206E_206C_202E_202E_202A_206C_206C_202E_200E_200E_206C_202E_202C_202C_202A_206F_206B_206F_206E_200E_200D_202E(EqualityContract, other.EqualityContract)) ? (-2092737054) : (-2092737043)); - break; - case 6: - num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? (-2092737054) : (-2092737044)); - break; - case 4: - num = ((!EqualityComparer<uint>.Default.Equals(DataId, other.DataId)) ? (-2092737054) : (-2092737053)); - break; - } - } - } - - bool IEquatable<UseOnObject>.Equals(UseOnObject? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type? _206D_206C_200B_206B_206F_202B_206B_206E_200F_202E_200F_206A_206D_206F_206B_202B_200D_200C_206A_206B_206C_202C_200C_200B_206C_202E_202D_206F_202D_206D_202E_202D_202B_206C_206B_200B_206C_200C_200B_202E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206A_206B_202C_202A_206B_200C_206A_202A_206A_206F_206C_206A_202B_202D_206F_202B_202C_200B_202A_206C_200D_206C_202E_202E_200F_200C_200E_206A_202E_202D_206A_200F_202D_206C_202E_206F_206C_206C_202E_200E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder? _202D_206D_202A_202A_200B_206A_200C_200F_200F_200D_202B_202B_206C_200F_202B_200C_202D_200E_206F_206A_206D_202A_206C_202E_200F_202A_206F_206D_200C_206E_202C_200E_202D_202C_206E_202D_200F_202B_206E_202A_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _206D_202D_206A_200D_200D_202A_200E_200E_206A_206D_202E_202B_202B_202E_200D_202D_202A_206D_202B_200D_202D_202D_206D_202A_200F_200D_206F_206D_202B_206F_206F_206F_200D_200B_200D_202B_206D_206B_206D_206C_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } - - static bool _206F_206B_206F_202E_202B_202B_202B_206C_202B_202C_206D_206B_202B_202C_202C_202B_206D_202A_206C_206E_206C_202E_202E_202A_206C_206C_202E_200E_200E_206C_202E_202C_202C_202A_206F_206B_206F_206E_200E_200D_202E(Type? P_0, Type? P_1) - { - return P_0 == P_1; + return $"UseItem({ItemId} on {DataId})"; } } @@ -1066,112 +289,9 @@ internal static class UseItem internal sealed record UseOnSelf(ElementId? QuestId, uint ItemId, IList<QuestWorkValue?> CompletionQuestVariablesFlags, bool StartingCombat = false) : IUseItemBase, ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200E_206F_206A_206A_206E_202E_200D_206D_200E_206A_206F_202C_200C_200E_206C_202E_200F_206B_200E_200C_206D_202A_206D_206E_202B_200F_200B_200D_202E_202E_206A_206F_202D_202E_200C_200C_202D_200D_206C_200C_202E(typeof(UseOnSelf).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(9, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1918970186)); - defaultInterpolatedStringHandler.AppendFormatted(ItemId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206C_200E_200B_200E_200B_200F_202A_200F_200C_202A_202E_206A_206A_202B_206A_200B_202B_200B_206D_206C_200B_202A_200B_206B_200B_206E_202C_202D_200E_206C_206D_202D_206E_206E_200D_202E_202C_202C_200F_202B_202E(); - _200B_206E_206C_206C_206B_206F_202C_206E_206B_200D_206A_206B_200D_206D_202B_202B_206D_202B_202E_200D_202E_202D_206B_202D_202A_200F_206E_202C_202B_200B_202B_200F_202A_202E_200E_206D_202D_200D_202B_206A_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(65254652)); - _200F_202A_206C_202E_200D_202B_202C_206B_206E_200D_200C_202E_200C_206B_200F_200F_202E_206C_202E_206C_202D_202B_202C_206E_202A_202A_200D_206F_202C_202C_202C_202E_206D_200D_206B_200E_202D_202A_200C_202A_202E(builder, (object?)QuestId); - _200B_206E_206C_206C_206B_206F_202C_206E_206B_200D_206A_206B_200D_206D_202B_202B_206D_202B_202E_200D_202E_202D_206B_202D_202A_200F_206E_202C_202B_200B_202B_200F_202A_202E_200E_206D_202D_200D_202B_206A_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-829358037)); - _200B_206E_206C_206C_206B_206F_202C_206E_206B_200D_206A_206B_200D_206D_202B_202B_206D_202B_202E_200D_202E_202D_206B_202D_202A_200F_206E_202C_202B_200B_202B_200F_202A_202E_200E_206D_202D_200D_202B_206A_202E(builder, ItemId.ToString()); - _200B_206E_206C_206C_206B_206F_202C_206E_206B_200D_206A_206B_200D_206D_202B_202B_206D_202B_202E_200D_202E_202D_206B_202D_202A_200F_206E_202C_202B_200B_202B_200F_202A_202E_200E_206D_202D_200D_202B_206A_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1595351351)); - _200F_202A_206C_202E_200D_202B_202C_206B_206E_200D_200C_202E_200C_206B_200F_200F_202E_206C_202E_206C_202D_202B_202C_206E_202A_202A_200D_206F_202C_202C_202C_202E_206D_200D_206B_200E_202D_202A_200C_202A_202E(builder, (object?)CompletionQuestVariablesFlags); - _200B_206E_206C_206C_206B_206F_202C_206E_206B_200D_206A_206B_200D_206D_202B_202B_206D_202B_202E_200D_202E_202D_206B_202D_202A_200F_206E_202C_202B_200B_202B_200F_202A_202E_200E_206D_202D_200D_202B_206A_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1628171030)); - _200B_206E_206C_206C_206B_206F_202C_206E_206B_200D_206A_206B_200D_206D_202B_202B_206D_202B_202E_200D_202E_202D_206B_202D_202A_200F_206E_202C_202B_200B_202B_200F_202A_202E_200E_206D_202D_200D_202B_206A_202E(builder, StartingCombat.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(UseOnSelf? other) - { - int num = (((object)this == other) ? (-911350056) : (-911350055)); - while (true) - { - int num2 = num; - int num3 = -911350050; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return false; - case 5: - num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? (-911350051) : (-911350050)); - break; - case 1: - num = ((!EqualityComparer<ElementId>.Default.Equals(QuestId, other.QuestId)) ? (-911350051) : (-911350053)); - break; - case 8: - num = ((!_206D_206D_200E_202B_202E_200B_206F_206E_202E_206E_200B_206D_200F_206F_206B_200E_200C_202C_202E_200C_200D_202C_206C_200C_200F_200C_206A_202E_206E_206F_206C_206E_202B_206C_202A_200E_202D_206A_202D_200C_202E(EqualityContract, other.EqualityContract)) ? (-911350051) : (-911350049)); - break; - case 2: - return EqualityComparer<bool>.Default.Equals(StartingCombat, other.StartingCombat); - case 6: - return true; - case 7: - num = (((object)other == null) ? (-911350051) : (-911350058)); - break; - case 4: - num = -911350055; - break; - case 0: - num = ((!EqualityComparer<IList<QuestWorkValue>>.Default.Equals(CompletionQuestVariablesFlags, other.CompletionQuestVariablesFlags)) ? (-911350051) : (-911350052)); - break; - } - } - } - - bool IEquatable<UseOnSelf>.Equals(UseOnSelf? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type? _200E_206F_206A_206A_206E_202E_200D_206D_200E_206A_206F_202C_200C_200E_206C_202E_200F_206B_200E_200C_206D_202A_206D_206E_202B_200F_200B_200D_202E_202E_206A_206F_202D_202E_200C_200C_202D_200D_206C_200C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206C_200E_200B_200E_200B_200F_202A_200F_200C_202A_202E_206A_206A_202B_206A_200B_202B_200B_206D_206C_200B_202A_200B_206B_200B_206E_202C_202D_200E_206C_206D_202D_206E_206E_200D_202E_202C_202C_200F_202B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder? _200B_206E_206C_206C_206B_206F_202C_206E_206B_200D_206A_206B_200D_206D_202B_202B_206D_202B_202E_200D_202E_202D_206B_202D_202A_200F_206E_202C_202B_200B_202B_200F_202A_202E_200E_206D_202D_200D_202B_206A_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _200F_202A_206C_202E_200D_202B_202C_206B_206E_200D_200C_202E_200C_206B_200F_200F_202E_206C_202E_206C_202D_202B_202C_206E_202A_202A_200D_206F_202C_202C_202C_202E_206D_200D_206B_200E_202D_202A_200C_202A_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } - - static bool _206D_206D_200E_202B_202E_200B_206F_206E_202E_206E_200B_206D_200F_206F_206B_200E_200C_202C_202E_200C_200D_202C_206C_200C_200F_200C_206A_202E_206E_206F_206C_206E_202B_206C_202A_200E_202D_206A_202D_200C_202E(Type? P_0, Type? P_1) - { - return P_0 == P_1; + return $"UseItem({ItemId})"; } } diff --git a/Questionable/Questionable.Controller.Steps.Movement/LandExecutor.cs b/Questionable/Questionable.Controller.Steps.Movement/LandExecutor.cs index c14b225..e2f9df3 100644 --- a/Questionable/Questionable.Controller.Steps.Movement/LandExecutor.cs +++ b/Questionable/Questionable.Controller.Steps.Movement/LandExecutor.cs @@ -1,8 +1,5 @@ using System; -using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Conditions; -using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.Character; @@ -16,126 +13,49 @@ internal sealed class LandExecutor(IObjectTable objectTable, ICondition conditio private long _continueAt; - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - int num = (_206F_200C_200B_202A_202A_200E_206B_200D_200F_202D_206F_202D_206B_206D_202E_200B_206E_206A_202B_202D_202C_206B_206B_206E_200E_206C_206D_206E_200E_206A_206A_206C_202C_202B_200C_202A_206F_200F_206B_206C_202E(condition, ConditionFlag.InFlight) ? 1222817093 : 1222817094); - while (true) + if (!condition[ConditionFlag.InFlight]) { - int num2 = num; - int num3 = 1222817092; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - _landing = AttemptLanding(); - _continueAt = _202B_202D_200D_206B_206F_206D_200D_206D_206C_202D_202E_202B_200E_202B_200B_206B_206D_206B_206A_200B_202A_202B_206F_200D_200F_206F_202D_200F_206C_202B_200C_202C_206E_202A_200E_200B_206E_202C_200D_200D_202E() + 250; - return true; - case 2: - _206C_206E_200B_202E_200E_200D_202E_206C_200B_200C_202D_202B_200E_206D_200B_206E_206F_202B_202D_200E_200D_206A_200C_200C_202C_202E_200D_206F_200C_206A_206F_206D_202A_200F_202D_200B_200D_202A_202A_200D_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(568911902), Array.Empty<object>()); - return false; - case 0: - goto IL_0089; - } - continue; - IL_0089: - num = 1222817094; + logger.LogDebug("Not flying, not attempting to land"); + return false; } + _landing = AttemptLanding(); + _continueAt = Environment.TickCount64 + 250; + return true; } public override ETaskResult Update() { - int num = ((_202B_202D_200D_206B_206F_206D_200D_206D_206C_202D_202E_202B_200E_202B_200B_206B_206D_206B_206A_200B_202A_202B_206F_200D_200F_206F_202D_200F_206C_202B_200C_202C_206E_202A_200E_200B_206E_202C_200D_200D_202E() >= _continueAt) ? (-1155847244) : (-1155847247)); - while (true) + if (Environment.TickCount64 < _continueAt) { - int num2 = num; - int num3 = -1155847244; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - return ETaskResult.TaskComplete; - case 5: - return ETaskResult.StillRunning; - case 6: - num = (_landing ? (-1155847243) : (-1155847241)); - break; - case 0: - num = ((!_206F_200C_200B_202A_202A_200E_206B_200D_200F_202D_206F_202D_206B_206D_202E_200B_206E_206A_202B_202D_202C_206B_206B_206E_200E_206C_206D_206E_200E_206A_206A_206C_202C_202B_200C_202A_206F_200F_206B_206C_202E(condition, ConditionFlag.InFlight)) ? (-1155847248) : (-1155847246)); - break; - case 1: - return ETaskResult.StillRunning; - case 2: - num = -1155847247; - break; - case 3: - _landing = AttemptLanding(); - _continueAt = _202B_202D_200D_206B_206F_206D_200D_206D_206C_202D_202E_202B_200E_202B_200B_206B_206D_206B_206A_200B_202A_202B_206F_200D_200F_206F_202D_200F_206C_202B_200C_202C_206E_202A_200E_200B_206E_202C_200D_200D_202E() + 250; - num = -1155847243; - break; - } + return ETaskResult.StillRunning; } + if (condition[ConditionFlag.InFlight]) + { + if (!_landing) + { + _landing = AttemptLanding(); + _continueAt = Environment.TickCount64 + 250; + } + return ETaskResult.StillRunning; + } + return ETaskResult.TaskComplete; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe bool AttemptLanding() { - IPlayerCharacter playerCharacter = _200E_206D_206D_200C_200C_202B_202B_202C_200C_202A_206F_206A_200E_202C_200D_206D_202E_200D_202D_206D_202E_202B_200C_200B_206B_206E_200F_206D_202A_206B_200B_206A_200D_202C_206D_200B_200B_202B_206A_202C_202E(objectTable); - Character* ptr = (Character*)((playerCharacter != null) ? _206C_202E_202A_200C_206E_202C_206B_202B_202D_206C_206E_200F_206B_202A_200E_202E_202E_206D_200F_206B_202E_206B_200E_202E_200C_206F_202B_206C_200F_202E_206D_206A_200D_202C_206B_200E_202C_206D_200F_202E((IGameObject)playerCharacter) : 0); - int num = ((ptr == null) ? (-1147951571) : (-1147951570)); - while (true) + Character* ptr = (Character*)(objectTable.LocalPlayer?.Address ?? 0); + if (ptr != null && ActionManager.Instance()->GetActionStatus(ActionType.GeneralAction, 23u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0) { - int num2 = num; - int num3 = -1147951569; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 1: - num = ((ActionManager.Instance()->GetActionStatus(ActionType.GeneralAction, 23u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) != 0) ? (-1147951571) : (-1147951569)); - break; - case 0: - _206C_206E_200B_202E_200E_200D_202E_206C_200B_200C_202D_202B_200E_206D_200B_206E_206F_202B_202D_200E_200D_206A_200C_200C_202C_202E_200D_206F_200C_206A_206F_206D_202A_200F_202D_200B_200D_202A_202A_200D_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1670122022), Array.Empty<object>()); - return ActionManager.Instance()->UseAction(ActionType.GeneralAction, 23u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); - case 3: - num = -1147951570; - break; - } + logger.LogDebug("Attempting to land"); + return ActionManager.Instance()->UseAction(ActionType.GeneralAction, 23u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); } + return false; } public override bool ShouldInterruptOnDamage() { return false; } - - static bool _206F_200C_200B_202A_202A_200E_206B_200D_200F_202D_206F_202D_206B_206D_202E_200B_206E_206A_202B_202D_202C_206B_206B_206E_200E_206C_206D_206E_200E_206A_206A_206C_202C_202B_200C_202A_206F_200F_206B_206C_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static void _206C_206E_200B_202E_200E_200D_202E_206C_200B_200C_202D_202B_200E_206D_200B_206E_206F_202B_202D_200E_200D_206A_200C_200C_202C_202E_200D_206F_200C_206A_206F_206D_202A_200F_202D_200B_200D_202A_202A_200D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static long _202B_202D_200D_206B_206F_206D_200D_206D_206C_202D_202E_202B_200E_202B_200B_206B_206D_206B_206A_200B_202A_202B_206F_200D_200F_206F_202D_200F_206C_202B_200C_202C_206E_202A_200E_200B_206E_202C_200D_200D_202E() - { - return Environment.TickCount64; - } - - static IPlayerCharacter _200E_206D_206D_200C_200C_202B_202B_202C_200C_202A_206F_206A_200E_202C_200D_206D_202E_200D_202D_206D_202E_202B_200C_200B_206B_206E_200F_206D_202A_206B_200B_206A_200D_202C_206D_200B_200B_202B_206A_202C_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static nint _206C_202E_202A_200C_206E_202C_206B_202B_202D_206C_206E_200F_206B_202A_200E_202E_202E_206D_200F_206B_202E_206B_200E_202E_200C_206F_202B_206C_200F_202E_206D_206A_200D_202C_206B_200E_202C_206D_200F_202E(IGameObject P_0) - { - return P_0.Address; - } } diff --git a/Questionable/Questionable.Controller.Steps.Movement/LandTask.cs b/Questionable/Questionable.Controller.Steps.Movement/LandTask.cs index c637c69..9557f85 100644 --- a/Questionable/Questionable.Controller.Steps.Movement/LandTask.cs +++ b/Questionable/Questionable.Controller.Steps.Movement/LandTask.cs @@ -1,5 +1,3 @@ -using System.Runtime.CompilerServices; - namespace Questionable.Controller.Steps.Movement; internal sealed class LandTask : ITask @@ -9,15 +7,8 @@ internal sealed class LandTask : ITask return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1439831950); + return "Land"; } } diff --git a/Questionable/Questionable.Controller.Steps.Movement/MoveExecutor.cs b/Questionable/Questionable.Controller.Steps.Movement/MoveExecutor.cs index f2af0a2..eaa3469 100644 --- a/Questionable/Questionable.Controller.Steps.Movement/MoveExecutor.cs +++ b/Questionable/Questionable.Controller.Steps.Movement/MoveExecutor.cs @@ -1,10 +1,8 @@ using System; using System.Collections.Generic; -using System.Collections.ObjectModel; using System.Globalization; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.SubKinds; @@ -84,695 +82,336 @@ internal sealed class MoveExecutor : TaskExecutor<MoveTask>, IToastAware, ITaskE private void PrepareMovementIfNeeded() { - int num = (_gameFunctions.IsFlyingUnlocked(base.Task.TerritoryId) ? (-1370225021) : (-1370225018)); - while (true) + if (!_gameFunctions.IsFlyingUnlocked(base.Task.TerritoryId)) { - int num2 = num; - int num3 = -1370225017; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + base.Task = base.Task with { - case 4: - num = (base.Task.DisableNavmesh ? (-1370225019) : (-1370225020)); - break; - case 3: - _startAction = delegate - { - _movementController.NavigateTo(EMovementType.Quest, base.Task.DataId, _destination, base.Task.Fly, base.Task.Sprint ?? (!_mountDuringMovement.HasValue), base.Task.StopDistance, base.Task.IgnoreDistanceToObject ? new float?(float.MaxValue) : ((float?)null), base.Task.Land, base.Task.SmartNavRouted); - }; - return; - case 0: - num = -1370225018; - break; - case 2: - _startAction = delegate - { - MovementController movementController = _movementController; - uint? dataId = base.Task.DataId; - int num7 = 1; - List<Vector3> list = new List<Vector3>(num7); - CollectionsMarshal.SetCount(list, num7); - CollectionsMarshal.AsSpan(list)[0] = _destination; - movementController.NavigateTo(EMovementType.Quest, dataId, list, base.Task.Fly, base.Task.Sprint ?? (!_mountDuringMovement.HasValue), base.Task.StopDistance, base.Task.IgnoreDistanceToObject ? new float?(float.MaxValue) : ((float?)null), base.Task.Land); - }; - return; - case 1: - base.Task = base.Task with - { - Fly = false, - Land = false - }; - num = -1370225021; - break; - } + Fly = false, + Land = false + }; } + if (!base.Task.DisableNavmesh) + { + _startAction = delegate + { + _movementController.NavigateTo(EMovementType.Quest, base.Task.DataId, _destination, base.Task.Fly, base.Task.Sprint ?? (!_mountDuringMovement.HasValue), base.Task.StopDistance, base.Task.IgnoreDistanceToObject ? new float?(float.MaxValue) : ((float?)null), base.Task.Land, base.Task.SmartNavRouted); + }; + return; + } + _startAction = delegate + { + MovementController movementController = _movementController; + uint? dataId = base.Task.DataId; + int num = 1; + List<Vector3> list = new List<Vector3>(num); + CollectionsMarshal.SetCount(list, num); + CollectionsMarshal.AsSpan(list)[0] = _destination; + movementController.NavigateTo(EMovementType.Quest, dataId, list, base.Task.Fly, base.Task.Sprint ?? (!_mountDuringMovement.HasValue), base.Task.StopDistance, base.Task.IgnoreDistanceToObject ? new float?(float.MaxValue) : ((float?)null), base.Task.Land); + }; } - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - int num = ((_206F_206B_206A_200C_206B_206C_206D_206B_202E_202D_206E_202C_200F_206B_206E_206C_200D_206F_200D_202E_202C_206C_206A_202B_202D_200C_202E_206B_206D_200F_200C_202D_206E_200E_200C_200D_206B_202E_202D_206B_202E(_clientState) == base.Task.TerritoryId) ? 555789073 : 555789093); - Questionable.Controller.Steps.Common.Mount.MountTask mountTask = default(Questionable.Controller.Steps.Common.Mount.MountTask); - long retryAtMs = default(long); - (Questionable.Controller.Steps.Common.Mount.MountExecutor, Questionable.Controller.Steps.Common.Mount.MountTask)? tuple = default((Questionable.Controller.Steps.Common.Mount.MountExecutor, Questionable.Controller.Steps.Common.Mount.MountTask)?); - float num13 = default(float); - float num9 = default(float); - Vector3? vector = default(Vector3?); - bool flag = default(bool); - float num12 = default(float); - while (true) + if (_clientState.TerritoryType != base.Task.TerritoryId) { - int num2 = num; - int num3 = 555789056; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - float num8; - float num10; - int num11; - int num7; - float num14; - Questionable.Controller.Steps.Common.Mount.EMountIf mountIf; - switch (num5 - (num6 + num6)) + _logger.LogDebug("Skipping movement - already in territory {Current} (task expects {Expected})", _clientState.TerritoryType, base.Task.TerritoryId); + return false; + } + _canRestart = base.Task.RestartNavigation; + _destination = base.Task.Destination; + if (_aetheryteData.Locations.Any((KeyValuePair<EAetheryteLocation, Vector3> kvp) => AetheryteConverter.IsLargeAetheryte(kvp.Key) && Vector3.Distance(kvp.Value, _destination) < 1f)) + { + float num = 7f; + if ((base.Task.StopDistance ?? 3f) < num) { - case 25: - num = ((_mountEvaluator.EvaluateMountState(mountTask, dryRun: true, ref retryAtMs) == Questionable.Controller.Steps.Common.Mount.MountResult.DontMount) ? 555789082 : 555789060); - break; - case 17: - _canRestart = base.Task.RestartNavigation; - _destination = base.Task.Destination; - num = ((!_202C_206A_206F_202B_202C_200B_206F_206B_200E_200B_206C_200C_202E_202E_206E_200F_202E_200D_202D_200D_200D_200E_202E_202C_202C_200E_206A_206B_202B_200C_206B_200C_202C_200E_200F_200F_206C_202D_202C_202E_202E(_aetheryteData).Any(delegate(KeyValuePair<EAetheryteLocation, Vector3> kvp) - { - int num15 = ((!_202E_206C_200D_206A_202E_200C_200C_206E_202D_206D_202D_202C_206C_200E_200E_200B_206C_200B_206A_200E_202E_202D_202B_202A_206F_200D_200D_200B_200E_202B_206D_206C_202A_202D_202A_200E_202D_206E_200F_200C_202E(kvp.Key)) ? (-1307834011) : (-1307834010)); - while (true) - { - int num16 = num15; - int num17 = -1307834009; - int num18 = num16; - int num19 = num18 + num17; - int num20 = num18 & num17; - switch (num19 - (num20 + num20)) - { - case 0: - goto IL_004e; - case 2: - return false; - case 1: - return Vector3.Distance(kvp.Value, _destination) < 1f; - } - continue; - IL_004e: - num15 = -1307834010; - } - })) ? 555789087 : 555789080); - break; - case 37: - _202D_200E_206D_206C_202B_206E_206B_206E_202E_206B_206B_206B_202C_200B_200D_200D_206B_200F_202A_202B_200D_202D_200B_202A_206C_200B_206B_206C_206E_202C_200C_202E_206B_206D_200B_202D_200F_202D_202E_206C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1454798504), new object[2] - { - _206F_206B_206A_200C_206B_206C_206D_206B_202E_202D_206E_202C_200F_206B_206E_206C_200D_206F_200D_202E_202C_206C_206A_202B_202D_200C_202E_206B_206D_200F_200C_202D_206E_200E_200C_200D_206B_202E_202D_206B_202E(_clientState), - base.Task.TerritoryId - }); - return false; - case 19: - _202D_200E_206D_206C_202B_206E_206B_206E_202E_206B_206B_206B_202C_200B_200D_200D_206B_200F_202A_202B_200D_202D_200B_202A_206C_200B_206B_206C_206E_202C_200C_202E_206B_206D_200B_202D_200F_202D_202E_206C_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1423606109), Array.Empty<object>()); base.Task = base.Task with { - Fly = false, - Land = false + StopDistance = num }; - num = 555789068; - break; - case 39: - { - Questionable.Controller.Steps.Common.Mount.UnmountTask unmountTask2 = new Questionable.Controller.Steps.Common.Mount.UnmountTask(); - _unmountBeforeMovement = (_serviceProvider.GetRequiredService<Questionable.Controller.Steps.Common.Mount.UnmountExecutor>(), unmountTask2); - num = (_unmountBeforeMovement.Value.Executor.Start(unmountTask2) ? 555789068 : 555789091); - break; } - case 36: + } + float num2 = base.Task.StopDistance ?? 3f; + Vector3? vector = _objectTable.LocalPlayer?.Position; + float num3 = ((!vector.HasValue) ? float.MaxValue : Vector3.Distance(vector.Value, _destination)); + if (num3 > num2) + { + PrepareMovementIfNeeded(); + } + if (base.Task.MountRequired) + { + Questionable.Controller.Steps.Common.Mount.MountTask mountTask = new Questionable.Controller.Steps.Common.Mount.MountTask(base.Task.TerritoryId, Questionable.Controller.Steps.Common.Mount.EMountIf.Always); + _mountBeforeMovement = (_serviceProvider.GetRequiredService<Questionable.Controller.Steps.Common.Mount.MountExecutor>(), mountTask); + if (!_mountBeforeMovement.Value.Executor.Start(mountTask)) { - Questionable.Controller.Steps.Common.Mount.MountTask mountTask2 = new Questionable.Controller.Steps.Common.Mount.MountTask(base.Task.TerritoryId, Questionable.Controller.Steps.Common.Mount.EMountIf.Always); - _mountBeforeMovement = (_serviceProvider.GetRequiredService<Questionable.Controller.Steps.Common.Mount.MountExecutor>(), mountTask2); - num = (_mountBeforeMovement.Value.Executor.Start(mountTask2) ? 555789068 : 555789056); - break; - } - case 14: - return true; - case 4: - tuple = (_serviceProvider.GetRequiredService<Questionable.Controller.Steps.Common.Mount.MountExecutor>(), mountTask); - tuple.Value.Item1.Start(mountTask); - num = 555789076; - break; - case 21: - num = (base.Task.DisableNavmesh ? 555789068 : 555789067); - break; - case 8: - num = (_200E_206B_202B_202C_206C_200B_200E_206E_202B_202C_206C_200F_206F_206D_202E_206A_200B_206F_200F_200D_206A_206F_206E_200F_200F_200E_200E_200F_202E_202B_206D_202B_206F_202D_206B_200F_206F_206C_200C_202E(_condition, ConditionFlag.Mounted) ? 555789068 : 555789075); - break; - case 40: - base.Task = base.Task with - { - StopDistance = num13 - }; - num = 555789087; - break; - case 23: _mountBeforeMovement = null; - num = 555789068; - break; - case 7: - num8 = float.MaxValue; - goto IL_03b1; - case 12: - num = (_mountBeforeMovement.HasValue ? 555789070 : 555789094); - break; - case 29: - PrepareMovementIfNeeded(); - num = 555789090; - break; - case 18: - num = ((base.Task.Mount != true) ? 555789084 : 555789092); - break; - case 38: - num = (_unmountBeforeMovement.HasValue ? 555789070 : 555789072); - break; - case 1: + } + } + else if (base.Task.DismountRequired) + { + Questionable.Controller.Steps.Common.Mount.UnmountTask unmountTask = new Questionable.Controller.Steps.Common.Mount.UnmountTask(); + _unmountBeforeMovement = (_serviceProvider.GetRequiredService<Questionable.Controller.Steps.Common.Mount.UnmountExecutor>(), unmountTask); + if (!_unmountBeforeMovement.Value.Executor.Start(unmountTask)) + { + _unmountBeforeMovement = null; + } + } + else if (base.Task.Mount == true) + { + Questionable.Controller.Steps.Common.Mount.MountTask mountTask2 = new Questionable.Controller.Steps.Common.Mount.MountTask(base.Task.TerritoryId, Questionable.Controller.Steps.Common.Mount.EMountIf.Always); + _mountBeforeMovement = (_serviceProvider.GetRequiredService<Questionable.Controller.Steps.Common.Mount.MountExecutor>(), mountTask2); + if (!_mountBeforeMovement.Value.Executor.Start(mountTask2)) + { + _mountBeforeMovement = null; + } + } + else if (base.Task.Mount == false) + { + Questionable.Controller.Steps.Common.Mount.UnmountTask unmountTask2 = new Questionable.Controller.Steps.Common.Mount.UnmountTask(); + _unmountBeforeMovement = (_serviceProvider.GetRequiredService<Questionable.Controller.Steps.Common.Mount.UnmountExecutor>(), unmountTask2); + if (!_unmountBeforeMovement.Value.Executor.Start(unmountTask2)) + { + _unmountBeforeMovement = null; + } + } + else if (!base.Task.DisableNavmesh) + { + bool flag = _gameFunctions.IsFlyingUnlocked(base.Task.TerritoryId); + if (!base.Task.SmartNavRouted && !base.Task.Fly && flag && num3 > _configuration.Navigation.MountFlyDistance) + { base.Task = base.Task with { Fly = true, Land = true }; - num = 555789058; - break; - case 26: + } + float num4 = (base.Task.Fly ? _configuration.Navigation.MountFlyDistance : _configuration.Navigation.MountGroundDistance); + Questionable.Controller.Steps.Common.Mount.EMountIf mountIf = ((!(num3 > num4)) ? Questionable.Controller.Steps.Common.Mount.EMountIf.AwayFromPosition : Questionable.Controller.Steps.Common.Mount.EMountIf.Always); + Questionable.Controller.Steps.Common.Mount.MountTask mountTask3 = new Questionable.Controller.Steps.Common.Mount.MountTask(base.Task.TerritoryId, mountIf, _destination); + long retryAtMs = 0L; + (Questionable.Controller.Steps.Common.Mount.MountExecutor, Questionable.Controller.Steps.Common.Mount.MountTask)? tuple; + if (!_condition[ConditionFlag.Mounted] && _mountEvaluator.EvaluateMountState(mountTask3, dryRun: true, ref retryAtMs) != Questionable.Controller.Steps.Common.Mount.MountResult.DontMount) + { + tuple = (_serviceProvider.GetRequiredService<Questionable.Controller.Steps.Common.Mount.MountExecutor>(), mountTask3); + tuple.Value.Item1.Start(mountTask3); + } + else + { tuple = null; - num = 555789076; - break; - case 33: - num10 = _configuration.Navigation.MountFlyDistance; - goto IL_04b5; - case 31: - { - num9 = base.Task.StopDistance ?? 3f; - IPlayerCharacter playerCharacter = _202A_202D_200B_206D_200F_200C_202D_202B_206F_206A_206B_200E_202E_206C_206E_206C_206B_200C_202B_200D_200F_206E_202D_206D_200F_202E_202D_200C_200F_206D_202B_200B_206A_202C_202B_200F_202C_200F_200C_202E(_objectTable); - vector = ((playerCharacter != null) ? new Vector3?(_200F_206B_200F_202B_202B_206F_200B_206C_202E_200C_200D_206A_206C_200E_206A_202E_202A_206B_202D_206F_202E_206E_202E_206E_200B_200E_200C_206B_200E_206F_206B_206D_202C_200E_206F_206C_200B_206F_206A_202C_202E((IGameObject)playerCharacter)) : ((Vector3?)null)); - num = ((!vector.HasValue) ? 555789063 : 555789061); - break; } - case 22: - _startAction(); - num = 555789070; - break; - case 2: - num = (base.Task.Fly ? 555789089 : 555789062); - break; - case 11: - flag = _gameFunctions.IsFlyingUnlocked(base.Task.TerritoryId); - num = (base.Task.SmartNavRouted ? 555789071 : 555789086); - break; - case 5: - num8 = Vector3.Distance(vector.Value, _destination); - goto IL_03b1; - case 27: - num = ((!(num12 > _configuration.Navigation.MountFlyDistance)) ? 555789058 : 555789057); - break; - case 28: - num = ((base.Task.Mount != false) ? 555789077 : 555789095); - break; - case 10: + if (base.Task.Fly) + { _mountBeforeMovement = tuple; - num = (tuple.HasValue ? 555789068 : 555789064); - break; - case 42: - num11 = 0; - goto IL_067e; - case 24: - num13 = 7f; - num = ((!((base.Task.StopDistance ?? 3f) < num13)) ? 555789087 : 555789096); - break; - case 41: - { - Questionable.Controller.Steps.Common.Mount.UnmountTask unmountTask = new Questionable.Controller.Steps.Common.Mount.UnmountTask(); - _unmountBeforeMovement = (_serviceProvider.GetRequiredService<Questionable.Controller.Steps.Common.Mount.UnmountExecutor>(), unmountTask); - num = (_unmountBeforeMovement.Value.Executor.Start(unmountTask) ? 555789068 : 555789069); - break; - } - case 44: - { - Questionable.Controller.Steps.Common.Mount.MountTask mountTask3 = new Questionable.Controller.Steps.Common.Mount.MountTask(base.Task.TerritoryId, Questionable.Controller.Steps.Common.Mount.EMountIf.Always); - _mountBeforeMovement = (_serviceProvider.GetRequiredService<Questionable.Controller.Steps.Common.Mount.MountExecutor>(), mountTask3); - num = (_mountBeforeMovement.Value.Executor.Start(mountTask3) ? 555789068 : 555789079); - break; - } - case 20: - num = ((!base.Task.Fly) ? 555789065 : 555789066); - break; - case 3: - num11 = 1; - goto IL_067e; - case 43: - num = ((!base.Task.DismountRequired) ? 555789074 : 555789097); - break; - case 6: - num10 = _configuration.Navigation.MountGroundDistance; - goto IL_04b5; - case 32: - num = 555789093; - break; - case 16: - num = ((_startAction == null) ? 555789070 : 555789078); - break; - case 9: - _mountDuringMovement = tuple; - num = 555789068; - break; - case 15: - num7 = 0; - goto IL_089b; - case 30: - num7 = ((!base.Task.Fly) ? 1 : 0); - goto IL_089b; - case 13: - _unmountBeforeMovement = null; - num = 555789068; - break; - case 34: - num = ((!base.Task.MountRequired) ? 555789099 : 555789100); - break; - case 0: - _mountBeforeMovement = null; - num = 555789068; - break; - case 35: + if (!tuple.HasValue && !_condition[ConditionFlag.Mounted]) { - _unmountBeforeMovement = null; - num = 555789068; - break; + _logger.LogDebug("Not mounting for short flight movement; navigating on foot instead"); + base.Task = base.Task with + { + Fly = false, + Land = false + }; } - IL_089b: - num = ((((uint)num7 & (flag ? 1u : 0u)) == 0) ? 555789058 : 555789083); - break; - IL_03b1: - num12 = num8; - num = ((!(num12 > num9)) ? 555789090 : 555789085); - break; - IL_04b5: - num14 = num10; - num = ((num12 > num14) ? 555789098 : 555789059); - break; - IL_067e: - mountIf = (Questionable.Controller.Steps.Common.Mount.EMountIf)num11; - mountTask = new Questionable.Controller.Steps.Common.Mount.MountTask(base.Task.TerritoryId, mountIf, _destination); - retryAtMs = 0L; - num = (_200E_206B_202B_202C_206C_200B_200E_206E_202B_202C_206C_200F_206F_206D_202E_206A_200B_206F_200F_200D_206A_206F_206E_200F_200F_200E_200E_200F_202E_202B_206D_202B_206F_202D_206B_200F_206F_206C_200C_202E(_condition, ConditionFlag.Mounted) ? 555789082 : 555789081); - break; + } + else + { + _mountDuringMovement = tuple; } } + if (!_mountBeforeMovement.HasValue && !_unmountBeforeMovement.HasValue && _startAction != null) + { + _startAction(); + } + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { ETaskResult? eTaskResult = UpdateMountState(); - int num = ((!eTaskResult.HasValue) ? 1297828071 : 1297828057); - IGameObject gameObject = default(IGameObject); - IPlayerCharacter playerCharacter = default(IPlayerCharacter); - float num7 = default(float); - float num9 = default(float); - while (true) + if (eTaskResult.HasValue) { - int num2 = num; - int num3 = 1297828090; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return eTaskResult.GetValueOrDefault(); + } + if (_startAction == null) + { + return ETaskResult.TaskComplete; + } + if (_movementController.IsPathfinding || _movementController.IsPathRunning) + { + return ETaskResult.StillRunning; + } + if (!_movementController.HasBeenMovingForAtLeast(2000)) + { + return ETaskResult.StillRunning; + } + IPlayerCharacter localPlayer = _objectTable.LocalPlayer; + float num = base.Task.StopDistance ?? 3f; + if (base.Task.Fly && base.Task.Land && _canRestart && localPlayer != null && _clientState.TerritoryType == base.Task.TerritoryId && Vector3.Distance(localPlayer.Position, _destination) > num) + { + if (_condition[ConditionFlag.InFlight]) { - case 24: - gameObject = _gameFunctions.FindObjectByDataId(base.Task.DataId.Value, null, warnIfMissing: false); - num = ((gameObject == null) ? 1297828091 : 1297828078); - break; - case 10: - num = (_adjustedToObject ? 1297828056 : 1297828069); - break; - case 25: - num = ((!(Vector3.Distance(_200F_206B_200F_202B_202B_206F_200B_206C_202E_200C_200D_206A_206C_200E_206A_202E_202A_206B_202D_206F_202E_206E_202E_206E_200B_200E_200C_206B_200E_206F_206B_206D_202C_200E_206F_206C_200B_206F_206A_202C_202E((IGameObject)playerCharacter), _destination) > num7 + 5f)) ? 1297828094 : 1297828095); - break; - case 33: - num = 1297828057; - break; - case 0: - playerCharacter = _202A_202D_200B_206D_200F_200C_202D_202B_206F_206A_206B_200E_202E_206C_206E_206C_206B_200C_202B_200D_200F_206E_202D_206D_200F_202E_202D_200C_200F_206D_202B_200B_206A_202C_202B_200F_202C_200F_200C_202E(_objectTable); - num7 = base.Task.StopDistance ?? 3f; - num = ((!base.Task.Fly) ? 1297828076 : 1297828082); - break; - case 38: - return ETaskResult.StillRunning; - case 1: - num = ((!_canRestart) ? 1297828094 : 1297828058); - break; - case 27: - num = ((_206F_206B_206A_200C_206B_206C_206D_206B_202E_202D_206E_202C_200F_206B_206E_206C_200D_206F_200D_202E_202C_206C_206A_202B_202D_200C_202E_206B_206D_200F_200C_202D_206E_200E_200C_200D_206B_202E_202D_206B_202E(_clientState) != base.Task.TerritoryId) ? 1297828091 : 1297828066); - break; - case 22: - num = ((!base.Task.DataId.HasValue) ? 1297828091 : 1297828050); - break; - case 2: - num = ((playerCharacter == null) ? 1297828091 : 1297828089); - break; - case 12: - { - Vector3 vector = _200F_206B_200F_202B_202B_206F_200B_206C_202E_200C_200D_206A_206C_200E_206A_202E_202A_206B_202D_206F_202E_206E_202E_206E_200B_200E_200C_206B_200E_206F_206B_206D_202C_200E_206F_206C_200B_206F_206A_202C_202E((IGameObject)playerCharacter); - vector.Y = _200F_206B_200F_202B_202B_206F_200B_206C_202E_200C_200D_206A_206C_200E_206A_202E_202A_206B_202D_206F_202E_206E_202E_206E_200B_200E_200C_206B_200E_206F_206B_206D_202C_200E_206F_206C_200B_206F_206A_202C_202E((IGameObject)playerCharacter).Y - 100f; - Vector3 vector2 = vector; + if (_descendAttempted) + { + _logger.LogWarning("Still airborne after descending, treating as unreachable"); + throw new MovementController.PathfindingFailedException("Still airborne after descending, cannot close gap on foot"); + } + if (!_movementController.IsNavmeshReady) + { + _logger.LogDebug("Airborne outside stop distance, waiting for navmesh to descend"); + return ETaskResult.StillRunning; + } + Vector3 position = localPlayer.Position; + position.Y = localPlayer.Position.Y - 100f; + Vector3 vector = position; _descendAttempted = true; - _202D_200E_206D_206C_202B_206E_206B_206E_202E_206B_206B_206B_202C_200B_200D_200D_206B_200F_202A_202B_200D_202D_200B_202A_206C_200B_206B_206C_206E_202C_200C_202E_206B_206D_200B_202D_200F_202D_202E_206C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1934924918), new object[1] { vector2.ToString(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1318690943), _206E_200D_202A_200B_202B_200B_206F_200D_202A_206A_200D_200E_202B_206B_200D_200D_202A_206C_200B_200C_206B_206E_202C_206B_200B_206A_200C_202E_206A_202C_202E_206B_206F_200F_202A_206B_200E_202A_200E_202B_202E()) }); - MovementController movementController2 = _movementController; - uint? dataId2 = base.Task.DataId; - int num10 = 1; - List<Vector3> list = new List<Vector3>(num10); - CollectionsMarshal.SetCount(list, num10); - CollectionsMarshal.AsSpan(list)[0] = vector2; - movementController2.NavigateTo(EMovementType.Landing, dataId2, list, fly: true, sprint: false, null); - return ETaskResult.StillRunning; - } - case 4: - num = ((!base.Task.SmartNavRouted) ? 1297828056 : 1297828080); - break; - case 31: - num = ((playerCharacter == null) ? 1297828056 : 1297828075); - break; - case 37: - _202D_200E_206D_206C_202B_206E_206B_206E_202E_206B_206B_206B_202C_200B_200D_200D_206B_200F_202A_202B_200D_202D_200B_202A_206C_200B_206B_206C_206E_202C_200C_202E_206B_206D_200B_202D_200F_202D_202E_206C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-541407425), new object[2] - { - _206F_206B_206A_200C_206B_206C_206D_206B_202E_202D_206E_202C_200F_206B_206E_206C_200D_206F_200D_202E_202C_206C_206A_202B_202D_200C_202E_206B_206D_200F_200C_202D_206E_200E_200C_200D_206B_202E_202D_206B_202E(_clientState), - base.Task.TerritoryId - }); - return ETaskResult.TaskComplete; - case 39: - num = ((!(Vector3.Distance(_200F_206B_200F_202B_202B_206F_200B_206C_202E_200C_200D_206A_206C_200E_206A_202E_202A_206B_202D_206F_202E_206E_202E_206E_200B_200E_200C_206B_200E_206F_206B_206D_202C_200E_206F_206C_200B_206F_206A_202C_202E((IGameObject)playerCharacter), _destination) > num7)) ? 1297828076 : 1297828048); - break; - case 32: - num = ((playerCharacter == null) ? 1297828094 : 1297828067); - break; - case 7: - num = (_movementController.HasBeenMovingForAtLeast(2000) ? 1297828090 : 1297828079); - break; - case 40: - num = (_adjustedToObject ? 1297828091 : 1297828088); - break; - case 13: - num = ((!_movementController.IsPathRunning) ? 1297828093 : 1297828060); - break; - case 28: - _200E_200B_202E_206C_202B_206D_200B_200F_206F_206D_202D_202D_202E_206D_200E_206A_202A_202E_206F_206C_206F_202B_200B_206B_200C_206B_206F_202D_206C_202C_206B_206C_206F_200F_206F_202C_200F_202B_202B_200E_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-735281418), Array.Empty<object>()); - _startAction(); - return ETaskResult.StillRunning; - case 26: - { - _206E_206E_206B_202B_202B_206B_206B_206E_206B_200C_200C_202C_206F_202D_200C_202D_202A_200E_206D_206B_200D_206B_206A_206F_202C_206B_206E_200B_200E_200E_206C_202E_206C_206A_200B_206C_200B_206E_206B_206D_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2121260240), new object[2] - { - _206F_206B_206A_200C_206B_206C_206D_206B_202E_202D_206E_202C_200F_206B_206E_206C_200D_206F_200D_202E_202C_206C_206A_202B_202D_200C_202E_206B_206D_200F_200C_202D_206E_200E_200C_200D_206B_202E_202D_206B_202E(_clientState), - base.Task.TerritoryId - }); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(61, 2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(906699758)); - defaultInterpolatedStringHandler2.AppendFormatted(_206F_206B_206A_200C_206B_206C_206D_206B_202E_202D_206E_202C_200F_206B_206E_206C_200D_206F_200D_202E_202C_206C_206A_202B_202D_200C_202E_206B_206D_200F_200C_202D_206E_200E_200C_200D_206B_202E_202D_206B_202E(_clientState)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-768285248)); - defaultInterpolatedStringHandler2.AppendFormatted(base.Task.TerritoryId); - throw new MovementController.PathfindingFailedException(defaultInterpolatedStringHandler2.ToStringAndClear()); - } - case 36: - num = ((!_canRestart) ? 1297828076 : 1297828073); - break; - case 29: - num = ((_startAction != null) ? 1297828084 : 1297828085); - break; - case 11: - { - float num8 = Vector3.Distance(_200F_206B_200F_202B_202B_206F_200B_206C_202E_200C_200D_206A_206C_200E_206A_202E_202A_206B_202D_206F_202E_206E_202E_206E_200B_200E_200C_206B_200E_206F_206B_206D_202C_200E_206F_206C_200B_206F_206A_202C_202E((IGameObject)playerCharacter), _destination); - _206E_206E_206B_202B_202B_206B_206B_206E_206B_200C_200C_202C_206F_202D_200C_202D_202A_200E_206D_206B_200D_206B_206A_206F_202C_206B_206E_200B_200E_200E_206C_202E_206C_206A_200B_206C_200B_206E_206B_206D_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1052299229), new object[2] { num8, num7 }); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(55, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-145312253)); - defaultInterpolatedStringHandler.AppendFormatted(num8, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1308263729)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1546666510)); - defaultInterpolatedStringHandler.AppendFormatted(num7, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1819906059)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-572338381)); - throw new MovementController.PathfindingFailedException(defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 8: - num = ((!base.Task.Land) ? 1297828076 : 1297828062); - break; - case 30: - num = ((!_descendAttempted) ? 1297828083 : 1297828054); - break; - case 23: - _202D_200E_206D_206C_202B_206E_206B_206E_202E_206B_206B_206B_202C_200B_200D_200D_206B_200F_202A_202B_200D_202D_200B_202A_206C_200B_206B_206C_206E_202C_200C_202E_206B_206D_200B_202D_200F_202D_202E_206C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1933566981), Array.Empty<object>()); - return ETaskResult.StillRunning; - case 19: - num = ((playerCharacter == null) ? 1297828076 : 1297828051); - break; - case 42: - num = ((!_200E_206B_202B_202C_206C_200B_200E_206E_202B_202C_206C_200F_206F_206D_202E_206A_200B_206F_200F_200D_206A_206F_206E_200F_200F_200E_200E_200F_202E_202B_206D_202B_206F_202D_206B_200F_206F_206C_200C_202E(_condition, ConditionFlag.InFlight)) ? 1297828092 : 1297828068); - break; - case 9: - num = (_movementController.IsNavmeshReady ? 1297828086 : 1297828077); - break; - case 17: - num = ((_206F_206B_206A_200C_206B_206C_206D_206B_202E_202D_206E_202C_200F_206B_206E_206C_200D_206F_200D_202E_202C_206C_206A_202B_202D_200C_202E_206B_206D_200F_200C_202D_206E_200E_200C_200D_206B_202E_202D_206B_202E(_clientState) != base.Task.TerritoryId) ? 1297828056 : 1297828072); - break; - case 21: - return ETaskResult.StillRunning; - case 35: - return eTaskResult.GetValueOrDefault(); - case 34: - return ETaskResult.TaskComplete; - case 20: - num9 = Vector3.Distance(_200F_206B_200F_202B_202B_206F_200B_206C_202E_200C_200D_206A_206C_200E_206A_202E_202A_206B_202D_206F_202E_206E_202E_206E_200B_200E_200C_206B_200E_206F_206B_206D_202C_200E_206F_206C_200B_206F_206A_202C_202E((IGameObject)playerCharacter), _200F_206B_200F_202B_202B_206F_200B_206C_202E_200C_200D_206A_206C_200E_206A_202E_202A_206B_202D_206F_202E_206E_202E_206E_200B_200E_200C_206B_200E_206F_206B_206D_202C_200E_206F_206C_200B_206F_206A_202C_202E(gameObject)); - num = ((!(num9 > num7)) ? 1297828091 : 1297828074); - break; - case 16: - _adjustedToObject = true; - _202D_200E_206D_206C_202B_206E_206B_206E_202E_206B_206B_206B_202C_200B_200D_200D_206B_200F_202A_202B_200D_202D_200B_202A_206C_200B_206B_206C_206E_202C_200C_202E_206B_206D_200B_202D_200F_202D_202E_206C_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(51562790), new object[1] { num9 }); - _movementController.NavigateTo(EMovementType.Quest, base.Task.DataId, _200F_206B_200F_202B_202B_206F_200B_206C_202E_200C_200D_206A_206C_200E_206A_202E_202A_206B_202D_206F_202E_206E_202E_206E_200B_200E_200C_206B_200E_206F_206B_206D_202C_200E_206F_206C_200B_206F_206A_202C_202E(gameObject), fly: false, sprint: false, base.Task.StopDistance); - return ETaskResult.StillRunning; - case 14: - num = (_movementController.IsPathfinding ? 1297828060 : 1297828087); - break; - case 44: - _206E_206E_206B_202B_202B_206B_206B_206E_206B_200C_200C_202C_206F_202D_200C_202D_202A_200E_206D_206B_200D_206B_206A_206F_202C_206B_206E_200B_200E_200E_206C_202E_206C_206A_200B_206C_200B_206E_206B_206D_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-790017102), Array.Empty<object>()); - throw new MovementController.PathfindingFailedException(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1822331045)); - case 18: - num = ((!(Vector3.Distance(_200F_206B_200F_202B_202B_206F_200B_206C_202E_200C_200D_206A_206C_200E_206A_202E_202A_206B_202D_206F_202E_206E_202E_206E_200B_200E_200C_206B_200E_206F_206B_206D_202C_200E_206F_206C_200B_206F_206A_202C_202E((IGameObject)playerCharacter), _destination) > num7 + 5f)) ? 1297828056 : 1297828081); - break; - case 43: - num = ((!base.Task.AllowZoneTransition) ? 1297828064 : 1297828063); - break; - case 6: - { - _canRestart = false; - _202D_200E_206D_206C_202B_206E_206B_206E_202E_206B_206B_206B_202C_200B_200D_200D_206B_200F_202A_202B_200D_202D_200B_202A_206C_200B_206B_206C_206E_202C_200C_202E_206B_206D_200B_202D_200F_202D_202E_206C_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(452937443), Array.Empty<object>()); + _logger.LogDebug("Outside stop distance but still airborne, descending to {Target}", vector.ToString("G", CultureInfo.InvariantCulture)); MovementController movementController = _movementController; uint? dataId = base.Task.DataId; - Vector3 destination = _destination; - float? stopDistance = base.Task.StopDistance; - bool smartNavRouted = base.Task.SmartNavRouted; - movementController.NavigateTo(EMovementType.Quest, dataId, destination, fly: false, sprint: false, stopDistance, null, land: false, smartNavRouted); + int num2 = 1; + List<Vector3> list = new List<Vector3>(num2); + CollectionsMarshal.SetCount(list, num2); + CollectionsMarshal.AsSpan(list)[0] = vector; + movementController.NavigateTo(EMovementType.Landing, dataId, list, fly: true, sprint: false, null); return ETaskResult.StillRunning; } - case 3: - num = (_200E_206B_202B_202C_206C_200B_200E_206E_202B_202C_206C_200F_206F_206D_202E_206A_200B_206F_200F_200D_206A_206F_206E_200F_200F_200E_200E_200F_202E_202B_206D_202B_206F_202D_206B_200F_206F_206C_200C_202E(_condition, ConditionFlag.InFlight) ? 1297828091 : 1297828065); - break; - case 41: - num = ((_206F_206B_206A_200C_206B_206C_206D_206B_202E_202D_206E_202C_200F_206B_206E_206C_200D_206F_200D_202E_202C_206C_206A_202B_202D_200C_202E_206B_206D_200F_200C_202D_206E_200E_200C_200D_206B_202E_202D_206B_202E(_clientState) != base.Task.TerritoryId) ? 1297828076 : 1297828061); - break; - case 5: - _canRestart = false; - num = ((_206F_206B_206A_200C_206B_206C_206D_206B_202E_202D_206E_202C_200F_206B_206E_206C_200D_206F_200D_202E_202C_206C_206A_202B_202D_200C_202E_206B_206D_200F_200C_202D_206E_200E_200C_200D_206B_202E_202D_206B_202E(_clientState) != base.Task.TerritoryId) ? 1297828049 : 1297828070); - break; - case 15: + _canRestart = false; + _logger.LogDebug("Landed outside stop distance, closing gap on foot"); + MovementController movementController2 = _movementController; + uint? dataId2 = base.Task.DataId; + Vector3 destination = _destination; + float? stopDistance = base.Task.StopDistance; + bool smartNavRouted = base.Task.SmartNavRouted; + movementController2.NavigateTo(EMovementType.Quest, dataId2, destination, fly: false, sprint: false, stopDistance, null, land: false, smartNavRouted); + return ETaskResult.StillRunning; + } + if (base.Task.DataId.HasValue && !_adjustedToObject && localPlayer != null && !_condition[ConditionFlag.InFlight] && _clientState.TerritoryType == base.Task.TerritoryId) + { + IGameObject gameObject = _gameFunctions.FindObjectByDataId(base.Task.DataId.Value, null, warnIfMissing: false); + if (gameObject != null) + { + float num3 = Vector3.Distance(localPlayer.Position, gameObject.Position); + if (num3 > num) + { + _adjustedToObject = true; + _logger.LogDebug("Adjusting to actual object position ({Distance:F1}y away)", num3); + _movementController.NavigateTo(EMovementType.Quest, base.Task.DataId, gameObject.Position, fly: false, sprint: false, base.Task.StopDistance); + return ETaskResult.StillRunning; + } + } + } + if (_canRestart && localPlayer != null && Vector3.Distance(localPlayer.Position, _destination) > num + 5f) + { + _canRestart = false; + if (_clientState.TerritoryType == base.Task.TerritoryId) + { + _logger.LogInformation("Looks like movement was interrupted, re-attempting to move"); + _startAction(); + return ETaskResult.StillRunning; + } + if (base.Task.AllowZoneTransition) + { + _logger.LogDebug("Zone transition during boundary crossing (now in {Current}, expected {Expected}), completing task", _clientState.TerritoryType, base.Task.TerritoryId); return ETaskResult.TaskComplete; } + _logger.LogWarning("Movement interrupted by zone transition (now in {Current}, task expected {Expected})", _clientState.TerritoryType, base.Task.TerritoryId); + throw new MovementController.PathfindingFailedException($"Zone transition during movement: now in territory {_clientState.TerritoryType}, expected {base.Task.TerritoryId}"); } + if (base.Task.SmartNavRouted && !_adjustedToObject && localPlayer != null && _clientState.TerritoryType == base.Task.TerritoryId && Vector3.Distance(localPlayer.Position, _destination) > num + 5f) + { + float num4 = Vector3.Distance(localPlayer.Position, _destination); + _logger.LogWarning("SmartNav movement ended {Distance:F1}y from target (stop distance {StopDistance:F1}y), treating as unreachable", num4, num); + throw new MovementController.PathfindingFailedException($"SmartNav movement ended {num4:F1}y from target (stop distance {num:F1}y)"); + } + return ETaskResult.TaskComplete; } - [MethodImpl(MethodImplOptions.NoInlining)] private ETaskResult? UpdateMountState() { - (Questionable.Controller.Steps.Common.Mount.MountExecutor, Questionable.Controller.Steps.Common.Mount.MountTask)? tuple = _mountBeforeMovement; - int num = ((!tuple.HasValue) ? 3060386 : 3060398); - (Questionable.Controller.Steps.Common.Mount.MountExecutor, Questionable.Controller.Steps.Common.Mount.MountTask) valueOrDefault = default((Questionable.Controller.Steps.Common.Mount.MountExecutor, Questionable.Controller.Steps.Common.Mount.MountTask)); - Questionable.Controller.Steps.Common.Mount.MountExecutor item = default(Questionable.Controller.Steps.Common.Mount.MountExecutor); - Questionable.Controller.Steps.Common.Mount.MountExecutor item3 = default(Questionable.Controller.Steps.Common.Mount.MountExecutor); - Questionable.Controller.Steps.Common.Mount.UnmountExecutor item2 = default(Questionable.Controller.Steps.Common.Mount.UnmountExecutor); - (Questionable.Controller.Steps.Common.Mount.UnmountExecutor, Questionable.Controller.Steps.Common.Mount.UnmountTask)? unmountBeforeMovement = default((Questionable.Controller.Steps.Common.Mount.UnmountExecutor, Questionable.Controller.Steps.Common.Mount.UnmountTask)?); - Questionable.Controller.Steps.Common.Mount.MountTask item4 = default(Questionable.Controller.Steps.Common.Mount.MountTask); - while (true) + (Questionable.Controller.Steps.Common.Mount.MountExecutor, Questionable.Controller.Steps.Common.Mount.MountTask)? mountBeforeMovement = _mountBeforeMovement; + if (mountBeforeMovement.HasValue) { - int num2 = num; - int num3 = 3060384; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + Questionable.Controller.Steps.Common.Mount.MountExecutor item = mountBeforeMovement.GetValueOrDefault().Item1; + if (item != null) { - case 16: - return null; - case 12: - _202D_200E_206D_206C_202B_206E_206B_206E_202E_206B_206B_206B_202C_200B_200D_200D_206B_200F_202A_202B_200D_202D_200B_202A_206C_200B_206B_206C_206E_202C_200C_202E_206B_206D_200B_202D_200F_202D_202E_206C_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1388598824), Array.Empty<object>()); - _mountDuringMovement = null; - return null; - case 15: - return ETaskResult.StillRunning; - case 8: - num = 3060398; - break; - case 10: - return ETaskResult.StillRunning; - case 4: - valueOrDefault = tuple.GetValueOrDefault(); - item = valueOrDefault.Item1; - num = ((item == null) ? 3060400 : 3060393); - break; - case 14: - item3 = tuple.GetValueOrDefault().Item1; - num = ((item3 == null) ? 3060386 : 3060384); - break; - case 6: - return null; - case 5: - item2 = unmountBeforeMovement.GetValueOrDefault().Item1; - num = ((item2 == null) ? 3060395 : 3060397); - break; - case 18: - { - long retryAtMs = 0L; - num = ((_mountEvaluator.EvaluateMountState(item4, dryRun: true, ref retryAtMs) != Questionable.Controller.Steps.Common.Mount.MountResult.DontMount) ? 3060401 : 3060396); - break; - } - case 20: - num = ((item.Update() != ETaskResult.TaskComplete) ? 3060402 : 3060385); - break; - case 1: - _202D_200E_206D_206C_202B_206E_206B_206E_202E_206B_206B_206B_202C_200B_200D_200D_206B_200F_202A_202B_200D_202D_200B_202A_206C_200B_206B_206C_206E_202C_200C_202E_206B_206D_200B_202D_200F_202D_202E_206C_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1325578565), Array.Empty<object>()); - _mountDuringMovement = null; - return null; - case 3: - { - _202D_200E_206D_206C_202B_206E_206B_206E_202E_206B_206B_206B_202C_200B_200D_200D_206B_200F_202A_202B_200D_202D_200B_202A_206C_200B_206B_206C_206E_202C_200C_202E_206B_206D_200B_202D_200F_202D_202E_206C_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(392554116), Array.Empty<object>()); - _mountBeforeMovement = null; - System.Action? startAction2 = _startAction; - if (startAction2 == null) + if (item.Update() == ETaskResult.TaskComplete) { - goto case 6; + _logger.LogDebug("MountBeforeMovement complete"); + _mountBeforeMovement = null; + _startAction?.Invoke(); + return null; } - startAction2(); - num = 3060390; - break; - } - case 2: - unmountBeforeMovement = _unmountBeforeMovement; - num = ((!unmountBeforeMovement.HasValue) ? 3060395 : 3060389); - break; - case 7: - return null; - case 19: - { - _202D_200E_206D_206C_202B_206E_206B_206E_202E_206B_206B_206B_202C_200B_200D_200D_206B_200F_202A_202B_200D_202D_200B_202A_206C_200B_206B_206C_206E_202C_200C_202E_206B_206D_200B_202D_200F_202D_202E_206C_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-319907060), Array.Empty<object>()); - _unmountBeforeMovement = null; - System.Action? startAction = _startAction; - if (startAction == null) - { - goto case 7; - } - startAction(); - num = 3060391; - break; - } - case 9: - item4 = valueOrDefault.Item2; - num = (((object)item4 == null) ? 3060400 : 3060404); - break; - case 0: - num = ((item3.Update() != ETaskResult.TaskComplete) ? 3060399 : 3060387); - break; - case 17: - return null; - case 13: - num = ((item2.Update() != ETaskResult.TaskComplete) ? 3060394 : 3060403); - break; - case 11: - tuple = _mountDuringMovement; - num = ((!tuple.HasValue) ? 3060400 : 3060388); - break; + return ETaskResult.StillRunning; } } + (Questionable.Controller.Steps.Common.Mount.UnmountExecutor, Questionable.Controller.Steps.Common.Mount.UnmountTask)? unmountBeforeMovement = _unmountBeforeMovement; + if (unmountBeforeMovement.HasValue) + { + Questionable.Controller.Steps.Common.Mount.UnmountExecutor item2 = unmountBeforeMovement.GetValueOrDefault().Item1; + if (item2 != null) + { + if (item2.Update() == ETaskResult.TaskComplete) + { + _logger.LogDebug("UnmountBeforeMovement complete"); + _unmountBeforeMovement = null; + _startAction?.Invoke(); + return null; + } + return ETaskResult.StillRunning; + } + } + mountBeforeMovement = _mountDuringMovement; + if (mountBeforeMovement.HasValue) + { + (Questionable.Controller.Steps.Common.Mount.MountExecutor, Questionable.Controller.Steps.Common.Mount.MountTask) valueOrDefault = mountBeforeMovement.GetValueOrDefault(); + var (mountExecutor, _) = valueOrDefault; + if (mountExecutor != null) + { + Questionable.Controller.Steps.Common.Mount.MountTask item3 = valueOrDefault.Item2; + if ((object)item3 != null) + { + if (mountExecutor.Update() == ETaskResult.TaskComplete) + { + _logger.LogDebug("MountDuringMovement complete (mounted)"); + _mountDuringMovement = null; + return null; + } + long retryAtMs = 0L; + if (_mountEvaluator.EvaluateMountState(item3, dryRun: true, ref retryAtMs) == Questionable.Controller.Steps.Common.Mount.MountResult.DontMount) + { + _logger.LogDebug("MountDuringMovement implicitly complete (shouldn't mount anymore)"); + _mountDuringMovement = null; + return null; + } + return null; + } + } + } + return null; } public override bool WasInterrupted() { long retryAtMs = 0L; - int num = ((!base.Task.Fly) ? (-794232927) : (-794232921)); - Questionable.Controller.Steps.Common.Mount.MountTask item = default(Questionable.Controller.Steps.Common.Mount.MountTask); - (Questionable.Controller.Steps.Common.Mount.MountExecutor, Questionable.Controller.Steps.Common.Mount.MountTask)? mountBeforeMovement = default((Questionable.Controller.Steps.Common.Mount.MountExecutor, Questionable.Controller.Steps.Common.Mount.MountTask)?); - while (true) + if (base.Task.Fly && _condition[ConditionFlag.InCombat] && !_condition[ConditionFlag.Mounted]) { - int num2 = num; - int num3 = -794232922; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + (Questionable.Controller.Steps.Common.Mount.MountExecutor, Questionable.Controller.Steps.Common.Mount.MountTask)? mountBeforeMovement = _mountBeforeMovement; + if (mountBeforeMovement.HasValue) { - case 0: - return true; - case 5: - num = (_200E_206B_202B_202C_206C_200B_200E_206E_202B_202C_206C_200F_206F_206D_202E_206A_200B_206F_200F_200D_206A_206F_206E_200F_200F_200E_200E_200F_202E_202B_206D_202B_206F_202D_206B_200F_206F_206C_200C_202E(_condition, ConditionFlag.Mounted) ? (-794232927) : (-794232926)); - break; - case 3: - num = ((_mountEvaluator.EvaluateMountState(item, dryRun: true, ref retryAtMs) != Questionable.Controller.Steps.Common.Mount.MountResult.WhenOutOfCombat) ? (-794232927) : (-794232922)); - break; - case 1: - num = ((!_200E_206B_202B_202C_206C_200B_200E_206E_202B_202C_206C_200F_206F_206D_202E_206A_200B_206F_200F_200D_206A_206F_206E_200F_200F_200E_200E_200F_202E_202B_206D_202B_206F_202D_206B_200F_206F_206C_200C_202E(_condition, ConditionFlag.InCombat)) ? (-794232927) : (-794232925)); - break; - case 7: - return base.WasInterrupted(); - case 4: - mountBeforeMovement = _mountBeforeMovement; - num = ((!mountBeforeMovement.HasValue) ? (-794232927) : (-794232924)); - break; - case 6: - num = -794232921; - break; - case 2: - item = mountBeforeMovement.GetValueOrDefault().Item2; - num = (((object)item == null) ? (-794232927) : (-794232923)); - break; + Questionable.Controller.Steps.Common.Mount.MountTask item = mountBeforeMovement.GetValueOrDefault().Item2; + if ((object)item != null && _mountEvaluator.EvaluateMountState(item, dryRun: true, ref retryAtMs) == Questionable.Controller.Steps.Common.Mount.MountResult.WhenOutOfCombat) + { + return true; + } } } + return base.WasInterrupted(); } public override bool ShouldInterruptOnDamage() { - int num = (_mountBeforeMovement.HasValue ? (-1609020690) : (-1609020689)); - while (true) + if (!_mountBeforeMovement.HasValue) { - int num2 = num; - int num3 = -1609020690; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return true; - case 1: - return ShouldResolveCombatBeforeNextInteraction(); - case 2: - goto IL_0054; - } - continue; - IL_0054: - num = -1609020689; + return ShouldResolveCombatBeforeNextInteraction(); } + return true; } private bool ShouldResolveCombatBeforeNextInteraction() @@ -782,67 +421,6 @@ internal sealed class MoveExecutor : TaskExecutor<MoveTask>, IToastAware, ITaskE public bool OnErrorToast(SeString message) { - return GameFunctions.GameStringEquals(_cannotExecuteAtThisTime, _202B_200B_202D_206B_206B_202D_202D_206D_200F_202B_202C_206F_202B_200B_200C_202E_206E_206E_200B_202C_206D_206E_206B_202E_202C_206A_206C_202B_206E_202E_206B_202E_206B_206A_206C_202D_200D_200C_202B_202C_202E(message)); - } - - bool IToastAware.OnErrorToast(SeString message) - { - //ILSpy generated this explicit interface implementation from .override directive in OnErrorToast - return this.OnErrorToast(message); - } - - static uint _206F_206B_206A_200C_206B_206C_206D_206B_202E_202D_206E_202C_200F_206B_206E_206C_200D_206F_200D_202E_202C_206C_206A_202B_202D_200C_202E_206B_206D_200F_200C_202D_206E_200E_200C_200D_206B_202E_202D_206B_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static void _202D_200E_206D_206C_202B_206E_206B_206E_202E_206B_206B_206B_202C_200B_200D_200D_206B_200F_202A_202B_200D_202D_200B_202A_206C_200B_206B_206C_206E_202C_200C_202E_206B_206D_200B_202D_200F_202D_202E_206C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static ReadOnlyDictionary<EAetheryteLocation, Vector3> _202C_206A_206F_202B_202C_200B_206F_206B_200E_200B_206C_200C_202E_202E_206E_200F_202E_200D_202D_200D_200D_200E_202E_202C_202C_200E_206A_206B_202B_200C_206B_200C_202C_200E_200F_200F_206C_202D_202C_202E_202E(AetheryteData P_0) - { - return P_0.Locations; - } - - static IPlayerCharacter _202A_202D_200B_206D_200F_200C_202D_202B_206F_206A_206B_200E_202E_206C_206E_206C_206B_200C_202B_200D_200F_206E_202D_206D_200F_202E_202D_200C_200F_206D_202B_200B_206A_202C_202B_200F_202C_200F_200C_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static Vector3 _200F_206B_200F_202B_202B_206F_200B_206C_202E_200C_200D_206A_206C_200E_206A_202E_202A_206B_202D_206F_202E_206E_202E_206E_200B_200E_200C_206B_200E_206F_206B_206D_202C_200E_206F_206C_200B_206F_206A_202C_202E(IGameObject P_0) - { - return P_0.Position; - } - - static bool _200E_206B_202B_202C_206C_200B_200E_206E_202B_202C_206C_200F_206F_206D_202E_206A_200B_206F_200F_200D_206A_206F_206E_200F_200F_200E_200E_200F_202E_202B_206D_202B_206F_202D_206B_200F_206F_206C_200C_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static void _206E_206E_206B_202B_202B_206B_206B_206E_206B_200C_200C_202C_206F_202D_200C_202D_202A_200E_206D_206B_200D_206B_206A_206F_202C_206B_206E_200B_200E_200E_206C_202E_206C_206A_200B_206C_200B_206E_206B_206D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static CultureInfo _206E_200D_202A_200B_202B_200B_206F_200D_202A_206A_200D_200E_202B_206B_200D_200D_202A_206C_200B_200C_206B_206E_202C_206B_200B_206A_200C_202E_206A_202C_202E_206B_206F_200F_202A_206B_200E_202A_200E_202B_202E() - { - return CultureInfo.InvariantCulture; - } - - static void _200E_200B_202E_206C_202B_206D_200B_200F_206F_206D_202D_202D_202E_206D_200E_206A_202A_202E_206F_206C_206F_202B_200B_206B_200C_206B_206F_202D_206C_202C_206B_206C_206F_200F_206F_202C_200F_202B_202B_200E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static string _202B_200B_202D_206B_206B_202D_202D_206D_200F_202B_202C_206F_202B_200B_200C_202E_206E_206E_200B_202C_206D_206E_206B_202E_202C_206A_206C_202B_206E_202E_206B_202E_206B_206A_206C_202D_200D_200C_202B_202C_202E(SeString P_0) - { - return P_0.TextValue; - } - - static bool _202E_206C_200D_206A_202E_200C_200C_206E_202D_206D_202D_202C_206C_200E_200E_200B_206C_200B_206A_200E_202E_202D_202B_202A_206F_200D_200D_200B_200E_202B_206D_206C_202A_202D_202A_200E_202D_206E_200F_200C_202E(EAetheryteLocation P_0) - { - return AetheryteConverter.IsLargeAetheryte(P_0); + return GameFunctions.GameStringEquals(_cannotExecuteAtThisTime, message.TextValue); } } diff --git a/Questionable/Questionable.Controller.Steps.Movement/MoveTask.cs b/Questionable/Questionable.Controller.Steps.Movement/MoveTask.cs index 270c5f2..32ad580 100644 --- a/Questionable/Questionable.Controller.Steps.Movement/MoveTask.cs +++ b/Questionable/Questionable.Controller.Steps.Movement/MoveTask.cs @@ -1,27 +1,13 @@ -using System; -using System.Collections.Generic; using System.Globalization; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Questionable.Model.Questing; namespace Questionable.Controller.Steps.Movement; internal sealed record MoveTask(ushort TerritoryId, Vector3 Destination, bool? Mount = null, bool MountRequired = false, bool DismountRequired = false, float? StopDistance = null, uint? DataId = null, bool DisableNavmesh = false, bool? Sprint = null, bool Fly = false, bool Land = false, bool IgnoreDistanceToObject = false, bool RestartNavigation = true, EInteractionType InteractionType = EInteractionType.None, bool SmartNavRouted = false, bool AllowZoneTransition = false, string? RouteTargetNodeId = null, string? RouteApproachNodeId = null) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200B_202D_206A_206A_206D_202A_206F_200E_202A_206A_202D_200F_200B_202E_202B_206B_202C_206F_202E_206F_202D_206A_200C_206B_206F_202D_202B_200C_206B_200D_206D_202E_200F_200F_202C_200B_202B_200E_202D_206E_202E(typeof(MoveTask).TypeHandle); - } - } - public MoveTask(QuestStep step, Vector3 destination) - : this(_200E_200E_200E_206D_200B_206A_200B_200D_206C_200B_202B_202E_202C_206E_200B_200C_206B_202A_206A_202E_202D_202D_202D_200C_202A_202B_206B_206E_200D_202D_206C_202A_200F_206E_202B_206F_206F_202D_206E_206E_202E(step), destination, _200D_200C_200C_200E_206F_206E_206B_206B_206E_206D_206A_206F_202D_202D_206C_206C_200E_200C_206C_202E_202A_206F_200F_206E_206C_206F_202D_202D_202A_202D_202B_206C_202B_206C_200D_202C_200D_206E_200C_202E_202E(step), _206A_202E_200B_206F_206C_206F_200C_202D_200C_200F_206B_200C_202C_206E_200E_206E_200C_200E_200E_206F_206F_202C_202B_200E_200B_206F_206C_206D_206F_206E_200E_202D_202B_200B_202B_206E_202C_200B_202B_200D_202E(step), _200B_206D_200B_202E_202B_202D_206A_206A_202E_202A_200F_200F_206B_200B_202C_200D_206D_200F_202B_206E_200D_206F_200F_202A_206C_206D_202C_200B_200F_200B_200C_202D_202D_200D_202A_206B_202E_200B_202E_206F_202E(step), _206E_200B_202C_200D_206C_202B_206B_200F_202E_206F_206C_200F_206F_200B_206F_202E_206C_202D_200D_202A_206D_206D_202D_200D_206E_202A_202D_206A_200E_202D_202E_206D_202D_200B_202C_206C_206B_200E_206C_202C_202E(step), _202A_200E_206D_202C_206B_206D_200E_206D_206B_202C_200E_202E_200B_202A_206A_200F_202E_200C_206E_200D_200B_200E_202D_206A_202D_200E_206A_200F_206A_200D_200E_200E_206E_202D_202D_200C_202B_200C_202E_202C_202E(step), _202D_202C_200E_202A_200F_202E_202B_202D_200F_206C_200C_200B_200E_206E_200B_200E_202C_200D_202D_200C_200E_202E_200F_202B_206C_200C_206E_200D_200B_202D_200C_206E_200F_200E_206E_206B_206E_200F_200B_200F_202E(step), _200B_206F_200B_202A_206A_202D_200C_202D_206C_202D_202B_200D_202A_202E_200D_202E_206E_200C_206B_206B_206B_206B_206C_200F_206B_200F_206B_202C_206D_202A_206D_202C_202A_202D_206F_206A_200E_206A_202E_202D_202E(step), _202B_200D_206E_206A_200C_202C_206C_200F_206F_202B_206F_206A_200C_202C_200E_200E_200E_200B_206B_200D_202B_200B_200C_202E_206D_206A_202E_200E_200E_206F_202A_206F_206C_200E_200D_206B_206B_200D_200D_202E(step) == true, _200F_200E_202D_206D_206A_206F_206B_206A_202D_200E_206B_202B_206D_200F_206A_200B_202B_200B_200F_200D_200C_202B_206F_200B_200F_202C_200C_206E_202A_206E_206F_200E_202D_200E_202A_200E_206F_206D_202B_202E(step) == true, _202A_202C_202D_206D_202A_200B_206D_202A_200B_202C_200D_206F_202D_206D_206C_200E_202D_200D_200F_202C_206F_202D_206F_202A_202B_206F_202C_206E_206D_202B_206B_206E_200D_200C_200E_206F_206C_200F_200F_202D_202E(step) == true, _200B_202B_200B_202D_200D_200D_206C_202E_200D_200F_202D_200E_202E_202E_206B_202C_206B_206A_206E_202B_200E_202A_206F_206D_202E_200C_202B_200E_202D_202B_200F_206A_206B_200D_206B_202C_200B_206A_206B_202D_202E(step) != false, _206C_202C_206E_202D_200C_200B_206A_202E_200D_202D_200D_202E_206B_206F_206F_200B_200F_200E_206E_200F_200E_206E_206D_206D_206A_206F_206C_202E_200D_206A_202B_206D_202A_206C_206F_202D_200E_206C_206B_206D_202E(step)) + : this(step.TerritoryId, destination, step.Mount, step.MountRequired, step.DismountRequired, step.CalculateActualStopDistance(), step.DataId, step.DisableNavmesh, step.Sprint, step.Fly == true, step.Land == true, step.IgnoreDistanceToObject == true, step.RestartNavigationIfCancelled != false, step.InteractionType) { } @@ -30,246 +16,8 @@ internal sealed record MoveTask(ushort TerritoryId, Vector3 Destination, bool? M return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return _206C_206B_202E_202E_206C_202B_202A_206C_206F_200D_200C_202D_202C_202D_200C_200D_202B_200B_202E_200C_200B_206A_202D_200C_200D_200E_200D_202C_202A_206F_200F_206C_202D_202D_200E_206E_206F_202A_206A_202A_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2086514441), Destination.ToString(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2120763774), _206B_202E_200F_200E_202B_206D_200B_200F_206C_200E_202E_200E_200D_200B_202C_200F_206C_200F_202D_206D_206D_202A_206F_206A_206C_206E_200F_200C_206A_202E_206D_206E_202E_202C_200E_202A_206D_202A_206C_206B_202E()), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206C_202D_206B_206D_206D_206E_206A_200E_206D_200B_206D_206C_202B_200C_202E_200F_206E_206D_200D_200D_200C_202B_202E_202A_200C_200D_200B_200E_202D_202D_206A_200D_206A_200C_206A_202E_206D_200F_202D_200F_202E(); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-871596524)); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, TerritoryId.ToString()); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(97945591)); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, Destination.ToString()); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(414886328)); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, Mount.ToString()); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(108142760)); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, MountRequired.ToString()); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(175881775)); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, DismountRequired.ToString()); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2020394805)); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, StopDistance.ToString()); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(97441196)); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, DataId.ToString()); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1802935875)); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, DisableNavmesh.ToString()); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1156954153)); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, Sprint.ToString()); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1335211848)); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, Fly.ToString()); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-968192419)); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, Land.ToString()); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2020626995)); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, IgnoreDistanceToObject.ToString()); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1563317227)); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, RestartNavigation.ToString()); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(537136162)); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, InteractionType.ToString()); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1260226869)); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, SmartNavRouted.ToString()); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-929404578)); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, AllowZoneTransition.ToString()); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1838772789)); - _206E_206E_200B_202A_206D_200C_202A_206F_200F_202E_202A_200F_202E_202B_200E_206E_200C_202E_206F_200F_200D_200E_206C_202C_200D_206A_200B_206B_202C_202E_202D_200C_202E_200F_202C_200C_200C_206F_200C_202E(builder, (object?)RouteTargetNodeId); - _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(778521406)); - _206E_206E_200B_202A_206D_200C_202A_206F_200F_202E_202A_200F_202E_202B_200E_206E_200C_202E_206F_200F_200D_200E_206C_202C_200D_206A_200B_206B_202C_202E_202D_200C_202E_200F_202C_200C_200C_206F_200C_202E(builder, (object?)RouteApproachNodeId); - return true; - } - - [CompilerGenerated] - public bool Equals(MoveTask? other) - { - int num = (((object)this == other) ? (-173643784) : (-173643785)); - while (true) - { - int num2 = num; - int num3 = -173643777; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 15: - num = ((!EqualityComparer<bool>.Default.Equals(IgnoreDistanceToObject, other.IgnoreDistanceToObject)) ? (-173643786) : (-173643787)); - break; - case 13: - num = ((!EqualityComparer<float?>.Default.Equals(StopDistance, other.StopDistance)) ? (-173643786) : (-173643783)); - break; - case 2: - num = ((!EqualityComparer<bool?>.Default.Equals(Mount, other.Mount)) ? (-173643786) : (-173643777)); - break; - case 20: - num = ((!EqualityComparer<string>.Default.Equals(RouteTargetNodeId, other.RouteTargetNodeId)) ? (-173643786) : (-173643791)); - break; - case 6: - num = ((!EqualityComparer<uint?>.Default.Equals(DataId, other.DataId)) ? (-173643786) : (-173643799)); - break; - case 14: - return EqualityComparer<string>.Default.Equals(RouteApproachNodeId, other.RouteApproachNodeId); - case 0: - num = ((!EqualityComparer<bool>.Default.Equals(MountRequired, other.MountRequired)) ? (-173643786) : (-173643788)); - break; - case 5: - num = ((!EqualityComparer<bool>.Default.Equals(Fly, other.Fly)) ? (-173643786) : (-173643778)); - break; - case 18: - num = ((!EqualityComparer<bool>.Default.Equals(AllowZoneTransition, other.AllowZoneTransition)) ? (-173643786) : (-173643797)); - break; - case 4: - num = ((!EqualityComparer<EInteractionType>.Default.Equals(InteractionType, other.InteractionType)) ? (-173643786) : (-173643796)); - break; - case 12: - num = ((!EqualityComparer<bool?>.Default.Equals(Sprint, other.Sprint)) ? (-173643786) : (-173643782)); - break; - case 11: - num = ((!EqualityComparer<bool>.Default.Equals(DismountRequired, other.DismountRequired)) ? (-173643786) : (-173643790)); - break; - case 10: - num = ((!EqualityComparer<bool>.Default.Equals(RestartNavigation, other.RestartNavigation)) ? (-173643786) : (-173643781)); - break; - case 3: - num = ((!_206A_202A_200C_206F_206E_202B_200C_202B_202A_206A_200D_200B_206B_206B_200D_200B_206D_200F_206B_200E_206A_200C_202A_202C_200B_206E_206A_200E_206D_202A_206D_206E_202B_206A_200D_206E_202D_200E_202A_202B_202E(EqualityContract, other.EqualityContract)) ? (-173643786) : (-173643798)); - break; - case 9: - return false; - case 1: - num = ((!EqualityComparer<bool>.Default.Equals(Land, other.Land)) ? (-173643786) : (-173643792)); - break; - case 17: - num = -173643785; - break; - case 8: - num = (((object)other == null) ? (-173643786) : (-173643780)); - break; - case 19: - num = ((!EqualityComparer<bool>.Default.Equals(SmartNavRouted, other.SmartNavRouted)) ? (-173643786) : (-173643795)); - break; - case 7: - return true; - case 16: - num = ((!EqualityComparer<Vector3>.Default.Equals(Destination, other.Destination)) ? (-173643786) : (-173643779)); - break; - case 21: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? (-173643786) : (-173643793)); - break; - case 22: - num = ((!EqualityComparer<bool>.Default.Equals(DisableNavmesh, other.DisableNavmesh)) ? (-173643786) : (-173643789)); - break; - } - } - } - - bool IEquatable<MoveTask>.Equals(MoveTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type? _200B_202D_206A_206A_206D_202A_206F_200E_202A_206A_202D_200F_200B_202E_202B_206B_202C_206F_202E_206F_202D_206A_200C_206B_206F_202D_202B_200C_206B_200D_206D_202E_200F_200F_202C_200B_202B_200E_202D_206E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static ushort _200E_200E_200E_206D_200B_206A_200B_200D_206C_200B_202B_202E_202C_206E_200B_200C_206B_202A_206A_202E_202D_202D_202D_200C_202A_202B_206B_206E_200D_202D_206C_202A_200F_206E_202B_206F_206F_202D_206E_206E_202E(QuestStep? P_0) - { - return P_0.TerritoryId; - } - - static bool? _200D_200C_200C_200E_206F_206E_206B_206B_206E_206D_206A_206F_202D_202D_206C_206C_200E_200C_206C_202E_202A_206F_200F_206E_206C_206F_202D_202D_202A_202D_202B_206C_202B_206C_200D_202C_200D_206E_200C_202E_202E(QuestStep? P_0) - { - return P_0.Mount; - } - - static bool _206A_202E_200B_206F_206C_206F_200C_202D_200C_200F_206B_200C_202C_206E_200E_206E_200C_200E_200E_206F_206F_202C_202B_200E_200B_206F_206C_206D_206F_206E_200E_202D_202B_200B_202B_206E_202C_200B_202B_200D_202E(QuestStep? P_0) - { - return P_0.MountRequired; - } - - static bool _200B_206D_200B_202E_202B_202D_206A_206A_202E_202A_200F_200F_206B_200B_202C_200D_206D_200F_202B_206E_200D_206F_200F_202A_206C_206D_202C_200B_200F_200B_200C_202D_202D_200D_202A_206B_202E_200B_202E_206F_202E(QuestStep? P_0) - { - return P_0.DismountRequired; - } - - static float _206E_200B_202C_200D_206C_202B_206B_200F_202E_206F_206C_200F_206F_200B_206F_202E_206C_202D_200D_202A_206D_206D_202D_200D_206E_202A_202D_206A_200E_202D_202E_206D_202D_200B_202C_206C_206B_200E_206C_202C_202E(QuestStep? P_0) - { - return P_0.CalculateActualStopDistance(); - } - - static uint? _202A_200E_206D_202C_206B_206D_200E_206D_206B_202C_200E_202E_200B_202A_206A_200F_202E_200C_206E_200D_200B_200E_202D_206A_202D_200E_206A_200F_206A_200D_200E_200E_206E_202D_202D_200C_202B_200C_202E_202C_202E(QuestStep? P_0) - { - return P_0.DataId; - } - - static bool _202D_202C_200E_202A_200F_202E_202B_202D_200F_206C_200C_200B_200E_206E_200B_200E_202C_200D_202D_200C_200E_202E_200F_202B_206C_200C_206E_200D_200B_202D_200C_206E_200F_200E_206E_206B_206E_200F_200B_200F_202E(QuestStep? P_0) - { - return P_0.DisableNavmesh; - } - - static bool? _200B_206F_200B_202A_206A_202D_200C_202D_206C_202D_202B_200D_202A_202E_200D_202E_206E_200C_206B_206B_206B_206B_206C_200F_206B_200F_206B_202C_206D_202A_206D_202C_202A_202D_206F_206A_200E_206A_202E_202D_202E(QuestStep? P_0) - { - return P_0.Sprint; - } - - static bool? _202B_200D_206E_206A_200C_202C_206C_200F_206F_202B_206F_206A_200C_202C_200E_200E_200E_200B_206B_200D_202B_200B_200C_202E_206D_206A_202E_200E_200E_206F_202A_206F_206C_200E_200D_206B_206B_200D_200D_202E(QuestStep? P_0) - { - return P_0.Fly; - } - - static bool? _200F_200E_202D_206D_206A_206F_206B_206A_202D_200E_206B_202B_206D_200F_206A_200B_202B_200B_200F_200D_200C_202B_206F_200B_200F_202C_200C_206E_202A_206E_206F_200E_202D_200E_202A_200E_206F_206D_202B_202E(QuestStep? P_0) - { - return P_0.Land; - } - - static bool? _202A_202C_202D_206D_202A_200B_206D_202A_200B_202C_200D_206F_202D_206D_206C_200E_202D_200D_200F_202C_206F_202D_206F_202A_202B_206F_202C_206E_206D_202B_206B_206E_200D_200C_200E_206F_206C_200F_200F_202D_202E(QuestStep? P_0) - { - return P_0.IgnoreDistanceToObject; - } - - static bool? _200B_202B_200B_202D_200D_200D_206C_202E_200D_200F_202D_200E_202E_202E_206B_202C_206B_206A_206E_202B_200E_202A_206F_206D_202E_200C_202B_200E_202D_202B_200F_206A_206B_200D_206B_202C_200B_206A_206B_202D_202E(QuestStep? P_0) - { - return P_0.RestartNavigationIfCancelled; - } - - static EInteractionType _206C_202C_206E_202D_200C_200B_206A_202E_200D_202D_200D_202E_206B_206F_206F_200B_200F_200E_206E_200F_200E_206E_206D_206D_206A_206F_206C_202E_200D_206A_202B_206D_202A_206C_206F_202D_200E_206C_206B_206D_202E(QuestStep? P_0) - { - return P_0.InteractionType; - } - - static CultureInfo? _206B_202E_200F_200E_202B_206D_200B_200F_206C_200E_202E_200E_200D_200B_202C_200F_206C_200F_202D_206D_206D_202A_206F_206A_206C_206E_200F_200C_206A_202E_206D_206E_202E_202C_200E_202A_206D_202A_206C_206B_202E() - { - return CultureInfo.InvariantCulture; - } - - static string? _206C_206B_202E_202E_206C_202B_202A_206C_206F_200D_200C_202D_202C_202D_200C_200D_202B_200B_202E_200C_200B_206A_202D_200C_200D_200E_200D_202C_202A_206F_200F_206C_202D_202D_200E_206E_206F_202A_206A_202A_202E(string? P_0, string? P_1, string? P_2) - { - return P_0 + P_1 + P_2; - } - - static void _206C_202D_206B_206D_206D_206E_206A_200E_206D_200B_206D_206C_202B_200C_202E_200F_206E_206D_200D_200D_200C_202B_202E_202A_200C_200D_200B_200E_202D_202D_206A_200D_206A_200C_206A_202E_206D_200F_202D_200F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder? _202E_200F_206B_202D_202E_202B_206A_206E_202D_206A_202E_206D_200E_200B_202D_202C_206F_206D_202B_200E_206F_206E_206E_206F_206F_206B_206B_202B_206B_202C_202B_202A_206D_200B_206A_206A_200D_200C_202B_206D_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _206E_206E_200B_202A_206D_200C_202A_206F_200F_202E_202A_200F_202E_202B_200E_206E_200C_202E_206F_200F_200D_200E_206C_202C_200D_206A_200B_206B_202C_202E_202D_200C_202E_200F_202C_200C_200C_206F_200C_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } - - static bool _206A_202A_200C_206F_206E_202B_200C_202B_202A_206A_200D_200B_206B_206B_200D_200B_206D_200F_206B_200E_206A_200C_202A_202C_200B_206E_206A_200E_206D_202A_206D_206E_202B_206A_200D_206E_202D_200E_202A_202B_202E(Type? P_0, Type? P_1) - { - return P_0 == P_1; + return "MoveTo(" + Destination.ToString("G", CultureInfo.InvariantCulture) + ")"; } } diff --git a/Questionable/Questionable.Controller.Steps.Movement/MoveTo.cs b/Questionable/Questionable.Controller.Steps.Movement/MoveTo.cs index b8734bf..33e1172 100644 --- a/Questionable/Questionable.Controller.Steps.Movement/MoveTo.cs +++ b/Questionable/Questionable.Controller.Steps.Movement/MoveTo.cs @@ -1,12 +1,7 @@ using System; -using System.Collections; using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Diagnostics; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Common; @@ -23,875 +18,97 @@ internal static class MoveTo { internal sealed class Factory(IClientState clientState, IObjectTable objectTable, AetheryteData aetheryteData, TerritoryData territoryData, SmartNavStep.Factory smartNavFactory, ILogger<Factory> logger) : ITaskFactory { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass8_0 - { - public Factory _003C_003E4__this; - - public QuestStep step; - - internal bool _003CCreateMoveToObjectTasks_003Eb__0() - { - return _206B_206A_206C_202D_200D_206A_202E_200F_202E_202C_202B_200B_200C_206D_200B_206F_206D_206F_200E_206A_202D_202A_206E_200B_206B_200D_206C_200C_202D_200F_206D_206B_206C_202A_206D_206F_202E_200D_206B_206E_202E(_003C_003E4__this.clientState) == _206B_202E_206D_202A_206D_200B_202E_200C_206D_206B_200F_206A_206C_200B_206B_206E_206B_202E_202C_202A_202C_206D_202C_206A_202E_200B_206E_206F_202B_206C_206B_206D_200E_206E_200D_206F_206D_200F_206A_202A_202E(step); - } - - static uint _206B_206A_206C_202D_200D_206A_202E_200F_202E_202C_202B_200B_200C_206D_200B_206F_206D_206F_200E_206A_202D_202A_206E_200B_206B_200D_206C_200C_202D_200F_206D_206B_206C_202A_206D_206F_202E_200D_206B_206E_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static ushort _206B_202E_206D_202A_206D_200B_202E_200C_206D_206B_200F_206A_206C_200B_206B_206E_206B_202E_202C_202A_202C_206D_202C_206A_202E_200B_206E_206F_202B_206C_206B_206D_200E_206E_200D_206F_206D_200F_206A_202A_202E(QuestStep P_0) - { - return P_0.TerritoryId; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass9_0 - { - public Factory _003C_003E4__this; - - public QuestStep step; - - internal bool _003CCreateMoveTasks_003Eb__0() - { - return _202A_202A_200F_200E_200E_202E_206B_200B_200C_202C_206E_206B_200E_200D_202D_200F_202E_206C_206D_206E_206C_200E_200E_206F_200D_200D_202E_206D_200F_206A_206D_206E_200D_202A_200E_202C_202D_202E_202C_202E(_003C_003E4__this.clientState) == _202A_206A_206A_200F_200F_206F_206E_202C_202B_200F_202D_206C_200C_200C_200E_202D_202C_200E_200B_206A_202D_200C_200B_206F_200F_202D_200B_206C_206E_202C_200B_202A_200F_202C_202E_200D_206D_206C_206A_206F_202E(step); - } - - static uint _202A_202A_200F_200E_200E_202E_206B_200B_200C_202C_206E_206B_200E_200D_202D_200F_202E_206C_206D_206E_206C_200E_200E_206F_200D_200D_202E_206D_200F_206A_206D_206E_200D_202A_200E_202C_202D_202E_202C_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static ushort _202A_206A_206A_200F_200F_206F_206E_202C_202B_200F_202D_206C_200C_200C_200E_202D_202C_200E_200B_206A_202D_200C_200B_206F_200F_202D_200B_206C_206E_202C_200B_202A_200F_202C_202E_200D_206D_206C_206A_206F_202E(QuestStep P_0) - { - return P_0.TerritoryId; - } - } - - [CompilerGenerated] - private sealed class _003CCreateMoveTasks_003Ed__9 : IEnumerable<ITask>, IEnumerable, IEnumerator<ITask>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ITask _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - public Factory _003C_003E4__this; - - private QuestStep step; - - public QuestStep _003C_003E3__step; - - private _003C_003Ec__DisplayClass9_0 _003C_003E8__1; - - private Vector3 destination; - - public Vector3 _003C_003E3__destination; - - ITask IEnumerator<ITask>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CCreateMoveTasks_003Ed__9(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _206E_200B_200D_206F_200E_202C_200E_202B_206B_206E_200B_206F_200C_202B_206E_206C_202E_206B_206A_202D_206E_206C_200E_202D_200B_200C_200D_200F_206B_206E_202D_206C_206E_202D_200E_206F_206C_202B_200C_206C_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - _003C_003E8__1 = null; - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - int num = _003C_003E1__state; - Factory factory = _003C_003E4__this; - switch (num) - { - case 2: - goto IL_0231; - case 3: - goto IL_02e4; - case 4: - goto IL_0313; - case 1: - goto IL_0326; - case 0: - goto IL_035a; - } - int num2 = -6884996; - goto IL_0034; - IL_0313: - _003C_003E1__state = -1; - num2 = -6885020; - goto IL_0034; - IL_0034: - IPlayerCharacter playerCharacter = default(IPlayerCharacter); - bool? flag = default(bool?); - bool? flag2 = default(bool?); - while (true) - { - int num3 = num2; - int num4 = -6885012; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 14: - goto IL_00a4; - case 12: - goto IL_00c8; - case 0: - _003C_003E2__current = new WaitNavmesh.Task(); - _003C_003E1__state = 2; - return true; - case 15: - _206D_206D_206E_200B_202C_200B_202A_200D_202E_202E_200E_200C_200D_206C_200E_206F_206A_206D_206A_200D_200E_200F_202C_206E_200D_206C_200E_206F_200F_202E_202A_200C_202D_206B_200D_206C_206D_200B_200D_206C_202E((ILogger)factory.logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2099763005), Array.Empty<object>()); - return false; - case 11: - goto IL_012e; - case 13: - _003C_003E2__current = new LandTask(); - _003C_003E1__state = 4; - return true; - case 1: - _003C_003E2__current = new MoveTask(_003C_003E8__1.step, destination); - _003C_003E1__state = 3; - return true; - case 16: - return false; - case 7: - _003C_003E2__current = new WaitCondition.Task(() => _003C_003Ec__DisplayClass9_0._202A_202A_200F_200E_200E_202E_206B_200B_200C_202C_206E_206B_200E_200D_202D_200F_202E_206C_206D_206E_206C_200E_200E_206F_200D_200D_202E_206D_200F_206A_206D_206E_200D_202A_200E_202C_202D_202E_202C_202E(_003C_003E8__1._003C_003E4__this.clientState) == _003C_003Ec__DisplayClass9_0._202A_206A_206A_200F_200F_206F_206E_202C_202B_200F_202D_206C_200C_200C_200E_202D_202C_200E_200B_206A_202D_200C_200B_206F_200F_202D_200B_206C_206E_202C_200B_202A_200F_202C_202E_200D_206D_206C_206A_206F_202E(_003C_003E8__1.step), _200B_206A_200C_206D_202C_200B_200C_206A_202C_206D_200B_206B_200F_202D_202B_202E_202B_202C_200C_206B_206D_202D_200C_206E_200D_206C_200F_200D_200D_200B_206F_206E_202B_200B_206E_202B_202D_200B_206C_206C_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(923276170), factory.territoryData.GetNameAndId(_206E_206B_200C_200E_200B_202B_200F_206F_202E_206C_206A_206C_202B_202A_200D_200C_206D_202B_202D_200C_206F_200B_202A_200D_202C_200D_206C_206F_206F_202A_202C_206E_206E_202C_206D_202A_206C_200D_206A_206D_202E(_003C_003E8__1.step)), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295))); - _003C_003E1__state = 1; - return true; - case 19: - goto IL_01e0; - case 4: - goto IL_020d; - case 5: - goto end_IL_0034; - case 3: - goto IL_0244; - case 18: - goto IL_027a; - case 8: - return false; - case 6: - goto IL_02e4; - case 17: - goto IL_0313; - case 2: - goto IL_0326; - case 10: - goto IL_035a; - case 9: - num2 = -6884996; - break; - } - continue; - IL_027a: - num2 = ((!((_206D_206A_200C_206C_200C_202D_206E_206C_200E_202D_206F_202A_200C_206F_202E_206F_206D_206C_206C_202D_206B_206D_202E_206E_206A_206F_200D_206E_200B_200F_202B_206E_202C_202A_200C_200F_200B_200B_206F_206D_202E((IGameObject)playerCharacter) - _202C_202A_202D_202A_206D_202C_202D_206F_202A_200E_202B_206B_200F_202C_206C_206E_206C_202D_202E_200E_202C_200B_202D_206E_206B_202E_206E_200C_206D_200D_202E_202E_200E_202C_202C_200C_200C_200D_200C_206F_202E(_206B_206D_202A_202C_206B_206A_202B_206C_200E_202E_202C_202D_206B_200D_206D_200E_202B_202E_200D_200F_200C_206A_206E_200C_206B_202B_200B_200F_202D_202A_206C_206C_206B_206F_202D_202D_200E_202E_200C_202C_202E(_003C_003E8__1.step))).Length() <= (_200B_200D_206B_200D_202E_200F_206C_206A_206C_200F_200E_202A_202B_200E_202A_206B_202D_202C_202A_202C_202D_206E_206E_206A_206E_200F_206C_206A_202C_200D_202D_200B_206D_202A_200C_206A_200F_206C_202E_200D_202E(_206B_206D_202A_202C_206B_206A_202B_206C_200E_202E_202C_202D_206B_200D_206D_200E_202B_202E_200D_200F_200C_206A_206E_200C_206B_202B_200B_200F_202D_202A_206C_206C_206B_206F_202D_202D_200E_202E_200C_202C_202E(_003C_003E8__1.step)) ?? 1f))) ? (-6885013) : (-6885021)); - continue; - IL_00a4: - num2 = ((flag != true) ? (-6885020) : (-6885023)); - continue; - IL_012e: - num2 = ((playerCharacter == null) ? (-6885013) : (-6884994)); - continue; - IL_0244: - flag2 = _200F_200F_206E_202E_206E_206C_206D_200F_200E_206D_200D_206A_202B_206B_200C_206B_206E_206B_206E_206B_202B_202C_202A_200F_206C_202C_200C_200D_206F_206E_200E_206C_206E_206A_202E_200F_206A_206E_200D_200D_202E(_003C_003E8__1.step); - num2 = ((!flag2.HasValue) ? (-6885020) : (-6885016)); - continue; - IL_01e0: - num2 = ((_206B_206D_202A_202C_206B_206A_202B_206C_200E_202E_202C_202D_206B_200D_206D_200E_202B_202E_200D_200F_200C_206A_206E_200C_206B_202B_200B_200F_202D_202A_206C_206C_206B_206F_202D_202D_200E_202E_200C_202C_202E(_003C_003E8__1.step) == null) ? (-6885013) : (-6885017)); - continue; - IL_00c8: - flag = _206E_202A_206C_200F_206B_202A_200F_206D_206D_206B_206F_206A_206C_206C_200C_200C_206F_206F_206C_206A_206D_206E_206F_202C_200C_202B_200B_202C_206C_200B_200B_202B_206F_202E_206F_200B_206F_206C_206E_202A_202E(_003C_003E8__1.step); - num2 = ((!flag.HasValue) ? (-6885020) : (-6885022)); - continue; - IL_020d: - num2 = ((flag2 != true) ? (-6885020) : (-6885024)); - continue; - end_IL_0034: - break; - } - goto IL_0231; - IL_02e4: - _003C_003E1__state = -1; - num2 = ((_003C_003E8__1.step == null) ? (-6885020) : (-6885009)); - goto IL_0034; - IL_0231: - _003C_003E1__state = -1; - num2 = -6885011; - goto IL_0034; - IL_0326: - _003C_003E1__state = -1; - num2 = (_202D_202B_200B_202D_206F_202A_206C_200F_206C_200D_202D_202A_200B_206F_202A_206D_200E_206D_200B_206F_206A_206A_200B_206D_200F_206A_206C_200D_200D_206B_200D_202E_200F_202C_200C_200B_206F_206C_206C_202E(_003C_003E8__1.step) ? (-6885011) : (-6885012)); - goto IL_0034; - IL_035a: - _003C_003E1__state = -1; - _003C_003E8__1 = new _003C_003Ec__DisplayClass9_0(); - _003C_003E8__1._003C_003E4__this = _003C_003E4__this; - _003C_003E8__1.step = step; - playerCharacter = _206E_202A_206D_206A_206A_206C_206C_206E_202D_200F_202B_202D_206C_206A_200E_206A_206E_206F_200C_202A_206F_206F_202B_206C_202D_206B_206C_206F_202D_200F_202A_200E_200D_200D_202C_202E_202D_206C_200F_202B_202E(factory.objectTable); - num2 = ((_206F_200E_206E_202E_206D_200E_206A_206F_200E_202E_202E_200C_206A_206C_202D_200F_206C_200B_200D_200C_202C_200C_206D_206E_200C_206B_206B_202D_206C_202E_202D_200D_206E_202E_202A_206A_200C_200E_202D_202E(_003C_003E8__1.step) != EInteractionType.Jump) ? (-6885013) : (-6884993)); - goto IL_0034; - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _206B_200F_202D_202D_202A_202C_206E_206C_206E_200D_202E_206F_200F_202B_202D_202B_206A_206F_206A_200B_202E_202B_202B_206B_206B_200D_206D_206F_206C_206A_202D_200B_200D_202C_202C_200F_200E_206D_202A_202E_202E(); - } - - [DebuggerHidden] - IEnumerator<ITask> IEnumerable<ITask>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? (-1841135018) : (-1841135017)); - _003CCreateMoveTasks_003Ed__9 _003CCreateMoveTasks_003Ed__ = default(_003CCreateMoveTasks_003Ed__9); - while (true) - { - int num2 = num; - int num3 = -1841135019; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - _003CCreateMoveTasks_003Ed__ = new _003CCreateMoveTasks_003Ed__9(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = -1841135019; - break; - case 0: - _003CCreateMoveTasks_003Ed__.step = _003C_003E3__step; - _003CCreateMoveTasks_003Ed__.destination = _003C_003E3__destination; - return _003CCreateMoveTasks_003Ed__; - case 4: - num = -1841135017; - break; - case 1: - _003C_003E1__state = 0; - _003CCreateMoveTasks_003Ed__ = this; - num = -1841135019; - break; - case 2: - num = ((_003C_003El__initialThreadId != _206E_200B_200D_206F_200E_202C_200E_202B_206B_206E_200B_206F_200C_202B_206E_206C_202E_206B_206A_202D_206E_206C_200E_202D_200B_200C_200D_200F_206B_206E_202D_206C_206E_202D_200E_206F_206C_202B_200C_206C_202E()) ? (-1841135018) : (-1841135020)); - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ITask>)this).GetEnumerator(); - } - - static int _206E_200B_200D_206F_200E_202C_200E_202B_206B_206E_200B_206F_200C_202B_206E_206C_202E_206B_206A_202D_206E_206C_200E_202D_200B_200C_200D_200F_206B_206E_202D_206C_206E_202D_200E_206F_206C_202B_200C_206C_202E() - { - return Environment.CurrentManagedThreadId; - } - - static IPlayerCharacter _206E_202A_206D_206A_206A_206C_206C_206E_202D_200F_202B_202D_206C_206A_200E_206A_206E_206F_200C_202A_206F_206F_202B_206C_202D_206B_206C_206F_202D_200F_202A_200E_200D_200D_202C_202E_202D_206C_200F_202B_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static EInteractionType _206F_200E_206E_202E_206D_200E_206A_206F_200E_202E_202E_200C_206A_206C_202D_200F_206C_200B_200D_200C_202C_200C_206D_206E_200C_206B_206B_202D_206C_202E_202D_200D_206E_202E_202A_206A_200C_200E_202D_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static JumpDestination _206B_206D_202A_202C_206B_206A_202B_206C_200E_202E_202C_202D_206B_200D_206D_200E_202B_202E_200D_200F_200C_206A_206E_200C_206B_202B_200B_200F_202D_202A_206C_206C_206B_206F_202D_202D_200E_202E_200C_202C_202E(QuestStep P_0) - { - return P_0.JumpDestination; - } - - static Vector3 _206D_206A_200C_206C_200C_202D_206E_206C_200E_202D_206F_202A_200C_206F_202E_206F_206D_206C_206C_202D_206B_206D_202E_206E_206A_206F_200D_206E_200B_200F_202B_206E_202C_202A_200C_200F_200B_200B_206F_206D_202E(IGameObject P_0) - { - return P_0.Position; - } - - static Vector3 _202C_202A_202D_202A_206D_202C_202D_206F_202A_200E_202B_206B_200F_202C_206C_206E_206C_202D_202E_200E_202C_200B_202D_206E_206B_202E_206E_200C_206D_200D_202E_202E_200E_202C_202C_200C_200C_200D_200C_206F_202E(JumpDestination P_0) - { - return P_0.Position; - } - - static float? _200B_200D_206B_200D_202E_200F_206C_206A_206C_200F_200E_202A_202B_200E_202A_206B_202D_202C_202A_202C_202D_206E_206E_206A_206E_200F_206C_206A_202C_200D_202D_200B_206D_202A_200C_206A_200F_206C_202E_200D_202E(JumpDestination P_0) - { - return P_0.StopDistance; - } - - static void _206D_206D_206E_200B_202C_200B_202A_200D_202E_202E_200E_200C_200D_206C_200E_206F_206A_206D_206A_200D_200E_200F_202C_206E_200D_206C_200E_206F_200F_202E_202A_200C_202D_206B_200D_206C_206D_200B_200D_206C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static ushort _206E_206B_200C_200E_200B_202B_200F_206F_202E_206C_206A_206C_202B_202A_200D_200C_206D_202B_202D_200C_206F_200B_202A_200D_202C_200D_206C_206F_206F_202A_202C_206E_206E_202C_206D_202A_206C_200D_206A_206D_202E(QuestStep P_0) - { - return P_0.TerritoryId; - } - - static string _200B_206A_200C_206D_202C_200B_200C_206A_202C_206D_200B_206B_200F_202D_202B_202E_202B_202C_200C_206B_206D_202D_200C_206E_200D_206C_200F_200D_200D_200B_206F_206E_202B_200B_206E_202B_202D_200B_206C_206C_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static bool _202D_202B_200B_202D_206F_202A_206C_200F_206C_200D_202D_202A_200B_206F_202A_206D_200E_206D_200B_206F_206A_206A_200B_206D_200F_206A_206C_200D_200D_206B_200D_202E_200F_202C_200C_200B_206F_206C_206C_202E(QuestStep P_0) - { - return P_0.DisableNavmesh; - } - - static bool? _200F_200F_206E_202E_206E_206C_206D_200F_200E_206D_200D_206A_202B_206B_200C_206B_206E_206B_206E_206B_202B_202C_202A_200F_206C_202C_200C_200D_206F_206E_200E_206C_206E_206A_202E_200F_206A_206E_200D_200D_202E(QuestStep P_0) - { - return P_0.Fly; - } - - static bool? _206E_202A_206C_200F_206B_202A_200F_206D_206D_206B_206F_206A_206C_206C_200C_200C_206F_206F_206C_206A_206D_206E_206F_202C_200C_202B_200B_202C_206C_200B_200B_202B_206F_202E_206F_200B_206F_206C_206E_202A_202E(QuestStep P_0) - { - return P_0.Land; - } - - static NotSupportedException _206B_200F_202D_202D_202A_202C_206E_206C_206E_200D_202E_206F_200F_202B_202D_202B_206A_206F_206A_200B_202E_202B_202B_206B_206B_200D_206D_206F_206C_206A_202D_200B_200D_202C_202C_200F_200E_206D_202A_202E_202E() - { - return new NotSupportedException(); - } - } - - [CompilerGenerated] - private sealed class _003CCreateMoveToObjectTasks_003Ed__8 : IEnumerable<ITask>, IEnumerable, IEnumerator<ITask>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ITask _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - public Factory _003C_003E4__this; - - private QuestStep step; - - public QuestStep _003C_003E3__step; - - private _003C_003Ec__DisplayClass8_0 _003C_003E8__1; - - ITask IEnumerator<ITask>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CCreateMoveToObjectTasks_003Ed__8(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _206E_202C_200C_200E_206D_206B_206A_202E_202B_200B_206D_202B_200C_200E_206F_206F_202E_206E_206B_200F_200B_202D_200C_206F_200B_206A_202E_200F_202B_200C_206F_202A_202D_202D_206D_206B_206C_206A_202D_206F_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - _003C_003E8__1 = null; - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - int num = _003C_003E1__state; - Factory factory = _003C_003E4__this; - int num2; - switch (num) - { - default: - num2 = -1973141890; - goto IL_002f; - case 2: - _003C_003E1__state = -1; - num2 = -1973141894; - goto IL_002f; - case 1: - goto IL_007d; - case 0: - goto IL_00c3; - case 3: - break; - IL_002f: - while (true) - { - int num3 = num2; - int num4 = -1973141893; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 7: - goto end_IL_002f; - case 3: - goto IL_007d; - case 0: - _003C_003E2__current = new WaitNavmesh.Task(); - _003C_003E1__state = 2; - return true; - case 6: - goto IL_00c3; - case 2: - goto end_IL_000f; - case 1: - _003C_003E2__current = new MoveToObject(_003C_003E8__1.step); - _003C_003E1__state = 3; - return true; - case 4: - num2 = -1973141890; - break; - case 5: - return false; - } - continue; - end_IL_002f: - break; - } - goto case 2; - IL_00c3: - _003C_003E1__state = -1; - _003C_003E8__1 = new _003C_003Ec__DisplayClass8_0(); - _003C_003E8__1._003C_003E4__this = _003C_003E4__this; - _003C_003E8__1.step = step; - _003C_003E2__current = new WaitCondition.Task(() => _003C_003Ec__DisplayClass8_0._206B_206A_206C_202D_200D_206A_202E_200F_202E_202C_202B_200B_200C_206D_200B_206F_206D_206F_200E_206A_202D_202A_206E_200B_206B_200D_206C_200C_202D_200F_206D_206B_206C_202A_206D_206F_202E_200D_206B_206E_202E(_003C_003E8__1._003C_003E4__this.clientState) == _003C_003Ec__DisplayClass8_0._206B_202E_206D_202A_206D_200B_202E_200C_206D_206B_200F_206A_206C_200B_206B_206E_206B_202E_202C_202A_202C_206D_202C_206A_202E_200B_206E_206F_202B_206C_206B_206D_200E_206E_200D_206F_206D_200F_206A_202A_202E(_003C_003E8__1.step), _202B_202C_206F_202E_202E_202D_200B_206C_200C_202C_200D_206A_202E_206C_206E_200F_202D_202E_202E_202D_200E_200C_206B_200F_206C_206B_200D_200F_202E_202E_200F_200B_200F_202A_200C_206C_202C_206E_200B_206D_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-344536108), factory.territoryData.GetNameAndId(_206E_200D_200E_202B_206D_206D_202E_202B_206D_200D_200B_202A_200B_206A_206F_206D_202E_202B_200E_206C_206B_206F_202B_200E_206E_206E_202A_206E_202D_200D_200F_200D_202B_200B_202E_200B_200D_202E_206A_206E_202E(_003C_003E8__1.step)), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295))); - _003C_003E1__state = 1; - return true; - IL_007d: - _003C_003E1__state = -1; - num2 = (_202E_200C_206C_200B_206D_200D_202E_206E_202C_202B_200F_202D_200E_202E_202B_200B_202B_202A_202E_206F_200F_200E_206F_200B_200C_206F_202E_206C_202E_202C_200F_206C_206B_206C_200D_206D_202C_200B_206F_202C_202E(_003C_003E8__1.step) ? (-1973141894) : (-1973141893)); - goto IL_002f; - end_IL_000f: - break; - } - _003C_003E1__state = -1; - return false; - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _202B_202D_206C_206F_202E_200E_200C_206D_202A_200B_202D_200C_206A_200E_206E_206B_206B_202B_200D_200B_202E_206A_202E_202C_206D_200B_206C_200B_202C_200F_202C_200F_206D_206C_200C_206C_202B_200D_206C_200D_202E(); - } - - [DebuggerHidden] - IEnumerator<ITask> IEnumerable<ITask>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? (-1685384377) : (-1685384379)); - _003CCreateMoveToObjectTasks_003Ed__8 _003CCreateMoveToObjectTasks_003Ed__ = default(_003CCreateMoveToObjectTasks_003Ed__8); - while (true) - { - int num2 = num; - int num3 = -1685384378; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _003CCreateMoveToObjectTasks_003Ed__.step = _003C_003E3__step; - return _003CCreateMoveToObjectTasks_003Ed__; - case 3: - num = ((_003C_003El__initialThreadId != _206E_202C_200C_200E_206D_206B_206A_202E_202B_200B_206D_202B_200C_200E_206F_206F_202E_206E_206B_200F_200B_202D_200C_206F_200B_206A_202E_200F_202B_200C_206F_202A_202D_202D_206D_206B_206C_206A_202D_206F_202E()) ? (-1685384377) : (-1685384382)); - break; - case 4: - _003C_003E1__state = 0; - _003CCreateMoveToObjectTasks_003Ed__ = this; - num = -1685384378; - break; - case 2: - num = -1685384379; - break; - case 1: - _003CCreateMoveToObjectTasks_003Ed__ = new _003CCreateMoveToObjectTasks_003Ed__8(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = -1685384378; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ITask>)this).GetEnumerator(); - } - - static int _206E_202C_200C_200E_206D_206B_206A_202E_202B_200B_206D_202B_200C_200E_206F_206F_202E_206E_206B_200F_200B_202D_200C_206F_200B_206A_202E_200F_202B_200C_206F_202A_202D_202D_206D_206B_206C_206A_202D_206F_202E() - { - return Environment.CurrentManagedThreadId; - } - - static ushort _206E_200D_200E_202B_206D_206D_202E_202B_206D_200D_200B_202A_200B_206A_206F_206D_202E_202B_200E_206C_206B_206F_202B_200E_206E_206E_202A_206E_202D_200D_200F_200D_202B_200B_202E_200B_200D_202E_206A_206E_202E(QuestStep P_0) - { - return P_0.TerritoryId; - } - - static string _202B_202C_206F_202E_202E_202D_200B_206C_200C_202C_200D_206A_202E_206C_206E_200F_202D_202E_202E_202D_200E_200C_206B_200F_206C_206B_200D_200F_202E_202E_200F_200B_200F_202A_200C_206C_202C_206E_200B_206D_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static bool _202E_200C_206C_200B_206D_200D_202E_206E_202C_202B_200F_202D_200E_202E_202B_200B_202B_202A_202E_206F_200F_200E_206F_200B_200C_206F_202E_206C_202E_202C_200F_206C_206B_206C_200D_206D_202C_200B_206F_202C_202E(QuestStep P_0) - { - return P_0.DisableNavmesh; - } - - static NotSupportedException _202B_202D_206C_206F_202E_200E_200C_206D_202A_200B_202D_200C_206A_200E_206E_206B_206B_202B_200D_200B_202E_206A_202E_202C_206D_200B_206C_200B_202C_200F_202C_200F_206D_206C_200C_206C_202B_200D_206C_200D_202E() - { - return new NotSupportedException(); - } - } - public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((!smartNavFactory.HandledRouting) ? (-434907777) : (-434907787)); - EAetheryteLocation valueOrDefault = default(EAetheryteLocation); - EAetheryteLocation? eAetheryteLocation = default(EAetheryteLocation?); - bool flag = default(bool); - List<LandingZone> list = default(List<LandingZone>); - Vector3 destination = default(Vector3); - while (true) + if (smartNavFactory.HandledRouting) { - int num2 = num; - int num3 = -434907786; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return Array.Empty<ITask>(); + } + if (step.DataIds.Count > 0) + { + return Array.Empty<ITask>(); + } + if (step.Position.HasValue) + { + List<LandingZone> landingZones = step.LandingZones; + Vector3 destination = ((landingZones == null || landingZones.Count <= 0) ? step.Position.Value : LandingZoneMath.CalculateLandingLocation(step.LandingZones)); + return CreateMoveTasks(step, destination); + } + if (step != null && step.DataId.HasValue && step.StopDistance.HasValue) + { + return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(new WaitForNearDataId(step.DataId.Value, step.StopDistance.Value)); + } + if (step != null && step.DataId.HasValue && !step.Position.HasValue) + { + return CreateMoveToObjectTasks(step); + } + EAetheryteLocation valueOrDefault = default(EAetheryteLocation); + bool flag; + if (step != null) + { + EInteractionType interactionType = step.InteractionType; + if ((uint)(interactionType - 4) <= 1u) { - case 23: - return Array.Empty<ITask>(); - case 1: - num = ((!_200B_200B_206B_206F_206A_202E_206D_200C_200F_200C_200E_200F_202A_202E_200E_206B_206B_202E_200B_206E_206C_200C_200C_206D_202B_206E_200E_206A_202B_202B_200C_200E_202E_202B_202D_206E_202C_200F_202C_200C_202E(step).HasValue) ? (-434907791) : (-434907783)); - break; - case 4: - num = ((_206A_202A_206A_206C_206C_202B_202D_206E_206B_202E_206E_206A_202E_206F_200B_206D_206D_200F_202B_202C_206F_202B_202D_206E_200B_206C_200C_206C_206C_200F_202A_200F_200E_202E_206D_202C_206A_202B_200B_202D_202E(step) != EInteractionType.AttuneAethernetShard) ? (-434907807) : (-434907786)); - break; - case 12: - valueOrDefault = eAetheryteLocation.GetValueOrDefault(); - flag = true; - num = -434907793; - break; - case 21: - return Array.Empty<ITask>(); - case 10: - return CreateMoveToObjectTasks(step); - case 6: - num = ((step == null) ? (-434907807) : (-434907790)); - break; - case 5: - list = _206D_202C_202D_206F_206F_206A_202B_206B_206F_206A_202C_200C_200C_206E_202E_206F_206E_202E_202D_202B_200E_206D_202A_206D_202B_200E_200C_206C_202E_202A_200D_202B_206A_202D_202D_200D_202D_206B_202B_202E(step); - num = ((list == null) ? (-434907794) : (-434907784)); - break; - case 14: - num = ((list.Count <= 0) ? (-434907794) : (-434907808)); - break; - case 15: - return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(new WaitForNearDataId(_202A_200D_206E_200D_200E_200B_202D_200B_202B_206B_206C_200E_202E_206B_206E_202E_200F_200D_200C_200B_202B_202B_206E_200C_206A_200C_200B_202A_202E_206B_200B_206B_206D_200C_206E_200C_202C_202A_200D_200E_202E(step).Value, _200B_200B_206B_206F_206A_202E_206D_200C_200F_200C_200E_200F_202A_202E_200E_206B_206B_202E_200B_206E_206C_200C_200C_206D_202B_206E_200E_206A_202B_202B_200C_200E_202E_202B_202D_206E_202C_200F_202C_200C_202E(step).Value)); - case 2: - num = ((!_206D_202C_202B_202A_202B_206B_200B_206A_202E_200D_202E_200C_206E_206B_200F_206A_200E_200C_200F_206B_202B_200E_202C_206E_200F_200D_200F_202D_200D_200E_206E_206B_206C_206F_206A_202B_206C_206E_206D_202B_202E(step).HasValue) ? (-434907781) : (-434907789)); - break; - case 17: - num = (_206D_202C_202B_202A_202B_206B_200B_206A_202E_200D_202E_200C_206E_206B_200F_206A_200E_200C_200F_206B_202B_200E_202C_206E_200F_200D_200F_202D_200D_200E_206E_206B_206C_206F_206A_202B_206C_206E_206D_202B_202E(step).HasValue ? (-434907804) : (-434907780)); - break; - case 26: - { - EAetheryteLocation valueOrDefault2 = eAetheryteLocation.GetValueOrDefault(); - return CreateMoveTasks(step, _206B_206E_206C_200C_200C_200F_206A_206E_202E_202D_202C_200B_206F_200D_200E_206A_202B_206C_206E_200F_206A_206B_206B_206F_206D_206D_200F_202C_200C_206C_206E_200C_202E_200F_200B_206B_206B_202C_202E_206F_202E(aetheryteData)[valueOrDefault2]); - } - case 0: - eAetheryteLocation = _200D_200C_206A_200D_202B_206B_200E_206B_200F_202A_200B_206A_206A_202D_200F_200B_200F_202E_206A_206D_202B_200C_200F_206E_206A_202C_206A_206D_206F_206C_202E_200D_200F_206D_206D_202C_202A_206A_206C_202B_202E(step); - num = ((!eAetheryteLocation.HasValue) ? (-434907807) : (-434907796)); - break; - case 27: - return CreateMoveTasks(step, _206B_206E_206C_200C_200C_200F_206A_206E_202E_202D_202C_200B_206F_200D_200E_206A_202B_206C_206E_200F_206A_206B_206B_206F_206D_206D_200F_202C_200C_206C_206E_200C_202E_200F_200B_206B_206B_202C_202E_206F_202E(aetheryteData)[valueOrDefault]); - case 18: - num = ((step == null) ? (-434907797) : (-434907798)); - break; - case 3: - return Array.Empty<ITask>(); - case 13: - num = ((step == null) ? (-434907791) : (-434907778)); - break; - case 9: - num = ((_202B_202E_202C_200C_202A_206E_206E_202B_206C_206A_200D_206D_206C_206C_200C_206A_202C_202D_206C_206F_206A_206A_202C_200C_202D_200C_202E_200E_202C_206C_206F_206B_202E_200E_206F_206D_206E_202E_206E_202E_202E(step).Count <= 0) ? (-434907788) : (-434907805)); - break; - case 29: - flag = false; - num = -434907793; - break; - case 16: - eAetheryteLocation = _200F_206A_202A_206F_206F_200E_206F_202B_200C_206C_202C_200C_206F_200C_200D_202A_206F_200E_206F_206A_206E_206C_200D_202D_206B_206E_202B_206E_200E_206F_200D_206B_206D_206E_206E_200B_200F_202C_202D_200E_202E(step); - num = ((!eAetheryteLocation.HasValue) ? (-434907797) : (-434907782)); - break; - case 7: - num = ((step == null) ? (-434907804) : (-434907779)); - break; - case 22: - destination = _202D_206B_200C_202E_200D_200F_202D_202D_200F_200D_200E_200B_206A_200E_202C_202B_202C_202D_200D_206C_200D_206F_202A_200D_202C_206A_200E_206B_202D_200D_206F_202D_206B_206B_200D_206B_206C_206A_206A_202D_202E((IReadOnlyList<LandingZone>)_206D_202C_202D_206F_206F_206A_202B_206B_206F_206A_202C_200C_200C_206E_202E_206F_206E_202E_202D_202B_200E_206D_202A_206D_202B_200E_200C_206C_202E_202A_200D_202B_206A_202D_202D_200D_202D_206B_202B_202E(step)); - num = -434907806; - break; - case 28: - { - EInteractionType eInteractionType = _206A_202A_206A_206C_206C_202B_202D_206E_206B_202E_206E_206A_202E_206F_200B_206D_206D_200F_202B_202C_206F_202B_202D_206E_200B_206C_200C_206C_206C_200F_202A_200F_200E_202E_206D_202C_206A_202B_200B_202D_202E(step); - num = (((uint)(eInteractionType - 4) > 1u) ? (-434907797) : (-434907802)); - break; - } - case 20: - return CreateMoveTasks(step, destination); - case 8: - num = ((!_202A_200D_206E_200D_200E_200B_202D_200B_202B_206B_206C_200E_202E_206B_206E_202E_200F_200D_200C_200B_202B_202B_206E_200C_206A_200C_200B_202A_202E_206B_200B_206B_206D_200C_206E_200C_202C_202A_200D_200E_202E(step).HasValue) ? (-434907791) : (-434907785)); - break; - case 19: - num = -434907787; - break; - case 11: - num = ((!_202A_200D_206E_200D_200E_200B_202D_200B_202B_206B_206C_200E_202E_206B_206E_202E_200F_200D_200C_200B_202B_202B_206E_200C_206A_200C_200B_202A_202E_206B_200B_206B_206D_200C_206E_200C_202C_202A_200D_200E_202E(step).HasValue) ? (-434907804) : (-434907801)); - break; - case 24: - destination = _206D_202C_202B_202A_202B_206B_200B_206A_202E_200D_202E_200C_206E_206B_200F_206A_200E_200C_200F_206B_202B_200E_202C_206E_200F_200D_200F_202D_200D_200E_206E_206B_206C_206F_206A_202B_206C_206E_206D_202B_202E(step).Value; - num = -434907806; - break; - case 25: - num = ((!flag) ? (-434907792) : (-434907795)); - break; + EAetheryteLocation? aetheryte = step.Aetheryte; + if (aetheryte.HasValue) + { + valueOrDefault = aetheryte.GetValueOrDefault(); + flag = true; + goto IL_011b; + } } } - } - - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); + flag = false; + goto IL_011b; + IL_011b: + if (flag) + { + return CreateMoveTasks(step, aetheryteData.Locations[valueOrDefault]); + } + if (step != null && step.InteractionType == EInteractionType.AttuneAethernetShard) + { + EAetheryteLocation? aetheryte = step.AethernetShard; + if (aetheryte.HasValue) + { + EAetheryteLocation valueOrDefault2 = aetheryte.GetValueOrDefault(); + return CreateMoveTasks(step, aetheryteData.Locations[valueOrDefault2]); + } + } + return Array.Empty<ITask>(); } private IEnumerable<ITask> CreateMoveToObjectTasks(QuestStep step) { - while (true) + yield return new WaitCondition.Task(() => clientState.TerritoryType == step.TerritoryId, "Wait(territory: " + territoryData.GetNameAndId(step.TerritoryId) + ")"); + if (!step.DisableNavmesh) { - yield return new WaitCondition.Task(() => _003C_003Ec__DisplayClass8_0._206B_206A_206C_202D_200D_206A_202E_200F_202E_202C_202B_200B_200C_206D_200B_206F_206D_206F_200E_206A_202D_202A_206E_200B_206B_200D_206C_200C_202D_200F_206D_206B_206C_202A_206D_206F_202E_200D_206B_206E_202E(clientState) == _003C_003Ec__DisplayClass8_0._206B_202E_206D_202A_206D_200B_202E_200C_206D_206B_200F_206A_206C_200B_206B_206E_206B_202E_202C_202A_202C_206D_202C_206A_202E_200B_206E_206F_202B_206C_206B_206D_200E_206E_200D_206F_206D_200F_206A_202A_202E(step), _003CCreateMoveToObjectTasks_003Ed__8._202B_202C_206F_202E_202E_202D_200B_206C_200C_202C_200D_206A_202E_206C_206E_200F_202D_202E_202E_202D_200E_200C_206B_200F_206C_206B_200D_200F_202E_202E_200F_200B_200F_202A_200C_206C_202C_206E_200B_206D_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-344536108), territoryData.GetNameAndId(_003CCreateMoveToObjectTasks_003Ed__8._206E_200D_200E_202B_206D_206D_202E_202B_206D_200D_200B_202A_200B_206A_206F_206D_202E_202B_200E_206C_206B_206F_202B_200E_206E_206E_202A_206E_202D_200D_200F_200D_202B_200B_202E_200B_200D_202E_206A_206E_202E(step)), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295))); - while (true) - { - int num = (_003CCreateMoveToObjectTasks_003Ed__8._202E_200C_206C_200B_206D_200D_202E_206E_202C_202B_200F_202D_200E_202E_202B_200B_202B_202A_202E_206F_200F_200E_206F_200B_200C_206F_202E_206C_202E_202C_200F_206C_206B_206C_200D_206D_202C_200B_206F_202C_202E(step) ? (-1973141894) : (-1973141893)); - while (true) - { - int num2 = num; - int num3 = -1973141893; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 7: - num = -1973141894; - break; - case 3: - goto end_IL_002f; - case 0: - yield return new WaitNavmesh.Task(); - goto case 7; - case 6: - goto end_IL_007d; - case 2: - yield break; - case 1: - yield return new MoveToObject(step); - yield break; - case 4: - num = -1973141890; - break; - case 5: - yield break; - } - continue; - end_IL_002f: - break; - } - continue; - end_IL_007d: - break; - } + yield return new WaitNavmesh.Task(); } + yield return new MoveToObject(step); } private IEnumerable<ITask> CreateMoveTasks(QuestStep step, Vector3 destination) { - bool? flag2 = default(bool?); - bool? flag = default(bool?); - while (true) + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + if (step.InteractionType == EInteractionType.Jump && step.JumpDestination != null && localPlayer != null && (localPlayer.Position - step.JumpDestination.Position).Length() <= (step.JumpDestination.StopDistance ?? 1f)) { - IPlayerCharacter playerCharacter = _003CCreateMoveTasks_003Ed__9._206E_202A_206D_206A_206A_206C_206C_206E_202D_200F_202B_202D_206C_206A_200E_206A_206E_206F_200C_202A_206F_206F_202B_206C_202D_206B_206C_206F_202D_200F_202A_200E_200D_200D_202C_202E_202D_206C_200F_202B_202E(objectTable); - int num = ((_003CCreateMoveTasks_003Ed__9._206F_200E_206E_202E_206D_200E_206A_206F_200E_202E_202E_200C_206A_206C_202D_200F_206C_200B_200D_200C_202C_200C_206D_206E_200C_206B_206B_202D_206C_202E_202D_200D_206E_202E_202A_206A_200C_200E_202D_202E(step) != EInteractionType.Jump) ? (-6885013) : (-6884993)); - while (true) + logger.LogDebug("We're at the jump destination, skipping movement"); + yield break; + } + yield return new WaitCondition.Task(() => clientState.TerritoryType == step.TerritoryId, "Wait(territory: " + territoryData.GetNameAndId(step.TerritoryId) + ")"); + if (!step.DisableNavmesh) + { + yield return new WaitNavmesh.Task(); + } + yield return new MoveTask(step, destination); + if (step != null) + { + bool? fly = step.Fly; + if (fly.HasValue && fly == true && (step.Land ?? false)) { - int num2 = num; - int num3 = -6885012; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 14: - num = ((flag2 != true) ? (-6885020) : (-6885023)); - continue; - case 12: - flag2 = _003CCreateMoveTasks_003Ed__9._206E_202A_206C_200F_206B_202A_200F_206D_206D_206B_206F_206A_206C_206C_200C_200C_206F_206F_206C_206A_206D_206E_206F_202C_200C_202B_200B_202C_206C_200B_200B_202B_206F_202E_206F_200B_206F_206C_206E_202A_202E(step); - num = ((!flag2.HasValue) ? (-6885020) : (-6885022)); - continue; - case 0: - yield return new WaitNavmesh.Task(); - goto case 5; - case 15: - _003CCreateMoveTasks_003Ed__9._206D_206D_206E_200B_202C_200B_202A_200D_202E_202E_200E_200C_200D_206C_200E_206F_206A_206D_206A_200D_200E_200F_202C_206E_200D_206C_200E_206F_200F_202E_202A_200C_202D_206B_200D_206C_206D_200B_200D_206C_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2099763005), Array.Empty<object>()); - yield break; - case 11: - num = ((playerCharacter == null) ? (-6885013) : (-6884994)); - continue; - case 13: - yield return new LandTask(); - goto case 17; - case 1: - yield return new MoveTask(step, destination); - goto case 6; - case 16: - yield break; - case 7: - yield return new WaitCondition.Task(() => _003C_003Ec__DisplayClass9_0._202A_202A_200F_200E_200E_202E_206B_200B_200C_202C_206E_206B_200E_200D_202D_200F_202E_206C_206D_206E_206C_200E_200E_206F_200D_200D_202E_206D_200F_206A_206D_206E_200D_202A_200E_202C_202D_202E_202C_202E(clientState) == _003C_003Ec__DisplayClass9_0._202A_206A_206A_200F_200F_206F_206E_202C_202B_200F_202D_206C_200C_200C_200E_202D_202C_200E_200B_206A_202D_200C_200B_206F_200F_202D_200B_206C_206E_202C_200B_202A_200F_202C_202E_200D_206D_206C_206A_206F_202E(step), _003CCreateMoveTasks_003Ed__9._200B_206A_200C_206D_202C_200B_200C_206A_202C_206D_200B_206B_200F_202D_202B_202E_202B_202C_200C_206B_206D_202D_200C_206E_200D_206C_200F_200D_200D_200B_206F_206E_202B_200B_206E_202B_202D_200B_206C_206C_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(923276170), territoryData.GetNameAndId(_003CCreateMoveTasks_003Ed__9._206E_206B_200C_200E_200B_202B_200F_206F_202E_206C_206A_206C_202B_202A_200D_200C_206D_202B_202D_200C_206F_200B_202A_200D_202C_200D_206C_206F_206F_202A_202C_206E_206E_202C_206D_202A_206C_200D_206A_206D_202E(step)), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295))); - goto case 2; - case 19: - num = ((_003CCreateMoveTasks_003Ed__9._206B_206D_202A_202C_206B_206A_202B_206C_200E_202E_202C_202D_206B_200D_206D_200E_202B_202E_200D_200F_200C_206A_206E_200C_206B_202B_200B_200F_202D_202A_206C_206C_206B_206F_202D_202D_200E_202E_200C_202C_202E(step) == null) ? (-6885013) : (-6885017)); - continue; - case 4: - num = ((flag != true) ? (-6885020) : (-6885024)); - continue; - case 5: - num = -6885011; - continue; - case 3: - flag = _003CCreateMoveTasks_003Ed__9._200F_200F_206E_202E_206E_206C_206D_200F_200E_206D_200D_206A_202B_206B_200C_206B_206E_206B_206E_206B_202B_202C_202A_200F_206C_202C_200C_200D_206F_206E_200E_206C_206E_206A_202E_200F_206A_206E_200D_200D_202E(step); - num = ((!flag.HasValue) ? (-6885020) : (-6885016)); - continue; - case 18: - num = ((!((_003CCreateMoveTasks_003Ed__9._206D_206A_200C_206C_200C_202D_206E_206C_200E_202D_206F_202A_200C_206F_202E_206F_206D_206C_206C_202D_206B_206D_202E_206E_206A_206F_200D_206E_200B_200F_202B_206E_202C_202A_200C_200F_200B_200B_206F_206D_202E((IGameObject)playerCharacter) - _003CCreateMoveTasks_003Ed__9._202C_202A_202D_202A_206D_202C_202D_206F_202A_200E_202B_206B_200F_202C_206C_206E_206C_202D_202E_200E_202C_200B_202D_206E_206B_202E_206E_200C_206D_200D_202E_202E_200E_202C_202C_200C_200C_200D_200C_206F_202E(_003CCreateMoveTasks_003Ed__9._206B_206D_202A_202C_206B_206A_202B_206C_200E_202E_202C_202D_206B_200D_206D_200E_202B_202E_200D_200F_200C_206A_206E_200C_206B_202B_200B_200F_202D_202A_206C_206C_206B_206F_202D_202D_200E_202E_200C_202C_202E(step))).Length() <= (_003CCreateMoveTasks_003Ed__9._200B_200D_206B_200D_202E_200F_206C_206A_206C_200F_200E_202A_202B_200E_202A_206B_202D_202C_202A_202C_202D_206E_206E_206A_206E_200F_206C_206A_202C_200D_202D_200B_206D_202A_200C_206A_200F_206C_202E_200D_202E(_003CCreateMoveTasks_003Ed__9._206B_206D_202A_202C_206B_206A_202B_206C_200E_202E_202C_202D_206B_200D_206D_200E_202B_202E_200D_200F_200C_206A_206E_200C_206B_202B_200B_200F_202D_202A_206C_206C_206B_206F_202D_202D_200E_202E_200C_202C_202E(step)) ?? 1f))) ? (-6885013) : (-6885021)); - continue; - case 8: - yield break; - case 6: - num = ((step == null) ? (-6885020) : (-6885009)); - continue; - case 17: - num = -6885020; - continue; - case 2: - num = (_003CCreateMoveTasks_003Ed__9._202D_202B_200B_202D_206F_202A_206C_200F_206C_200D_202D_202A_200B_206F_202A_206D_200E_206D_200B_206F_206A_206A_200B_206D_200F_206A_206C_200D_200D_206B_200D_202E_200F_202C_200C_200B_206F_206C_206C_202E(step) ? (-6885011) : (-6885012)); - continue; - case 10: - break; - case 9: - num = -6884996; - continue; - } - break; + yield return new LandTask(); } } } - - static List<uint> _202B_202E_202C_200C_202A_206E_206E_202B_206C_206A_200D_206D_206C_206C_200C_206A_202C_202D_206C_206F_206A_206A_202C_200C_202D_200C_202E_200E_202C_206C_206F_206B_202E_200E_206F_206D_206E_202E_206E_202E_202E(QuestStep P_0) - { - return P_0.DataIds; - } - - static Vector3? _206D_202C_202B_202A_202B_206B_200B_206A_202E_200D_202E_200C_206E_206B_200F_206A_200E_200C_200F_206B_202B_200E_202C_206E_200F_200D_200F_202D_200D_200E_206E_206B_206C_206F_206A_202B_206C_206E_206D_202B_202E(QuestStep P_0) - { - return P_0.Position; - } - - static List<LandingZone> _206D_202C_202D_206F_206F_206A_202B_206B_206F_206A_202C_200C_200C_206E_202E_206F_206E_202E_202D_202B_200E_206D_202A_206D_202B_200E_200C_206C_202E_202A_200D_202B_206A_202D_202D_200D_202D_206B_202B_202E(QuestStep P_0) - { - return P_0.LandingZones; - } - - static Vector3 _202D_206B_200C_202E_200D_200F_202D_202D_200F_200D_200E_200B_206A_200E_202C_202B_202C_202D_200D_206C_200D_206F_202A_200D_202C_206A_200E_206B_202D_200D_206F_202D_206B_206B_200D_206B_206C_206A_206A_202D_202E(IReadOnlyList<LandingZone> P_0) - { - return LandingZoneMath.CalculateLandingLocation(P_0); - } - - static uint? _202A_200D_206E_200D_200E_200B_202D_200B_202B_206B_206C_200E_202E_206B_206E_202E_200F_200D_200C_200B_202B_202B_206E_200C_206A_200C_200B_202A_202E_206B_200B_206B_206D_200C_206E_200C_202C_202A_200D_200E_202E(QuestStep P_0) - { - return P_0.DataId; - } - - static float? _200B_200B_206B_206F_206A_202E_206D_200C_200F_200C_200E_200F_202A_202E_200E_206B_206B_202E_200B_206E_206C_200C_200C_206D_202B_206E_200E_206A_202B_202B_200C_200E_202E_202B_202D_206E_202C_200F_202C_200C_202E(QuestStep P_0) - { - return P_0.StopDistance; - } - - static EInteractionType _206A_202A_206A_206C_206C_202B_202D_206E_206B_202E_206E_206A_202E_206F_200B_206D_206D_200F_202B_202C_206F_202B_202D_206E_200B_206C_200C_206C_206C_200F_202A_200F_200E_202E_206D_202C_206A_202B_200B_202D_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static EAetheryteLocation? _200F_206A_202A_206F_206F_200E_206F_202B_200C_206C_202C_200C_206F_200C_200D_202A_206F_200E_206F_206A_206E_206C_200D_202D_206B_206E_202B_206E_200E_206F_200D_206B_206D_206E_206E_200B_200F_202C_202D_200E_202E(QuestStep P_0) - { - return P_0.Aetheryte; - } - - static ReadOnlyDictionary<EAetheryteLocation, Vector3> _206B_206E_206C_200C_200C_200F_206A_206E_202E_202D_202C_200B_206F_200D_200E_206A_202B_206C_206E_200F_206A_206B_206B_206F_206D_206D_200F_202C_200C_206C_206E_200C_202E_200F_200B_206B_206B_202C_202E_206F_202E(AetheryteData P_0) - { - return P_0.Locations; - } - - static EAetheryteLocation? _200D_200C_206A_200D_202B_206B_200E_206B_200F_202A_200B_206A_206A_202D_200F_200B_200F_202E_206A_206D_202B_200C_200F_206E_206A_202C_206A_206D_206F_206C_202E_200D_200F_206D_206D_202C_202A_206A_206C_202B_202E(QuestStep P_0) - { - return P_0.AethernetShard; - } } } diff --git a/Questionable/Questionable.Controller.Steps.Movement/MoveToObject.cs b/Questionable/Questionable.Controller.Steps.Movement/MoveToObject.cs index 5bb3af0..9424935 100644 --- a/Questionable/Questionable.Controller.Steps.Movement/MoveToObject.cs +++ b/Questionable/Questionable.Controller.Steps.Movement/MoveToObject.cs @@ -1,119 +1,16 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Questionable.Model.Questing; namespace Questionable.Controller.Steps.Movement; internal sealed record MoveToObject(QuestStep Step) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200F_202A_202B_200D_206A_200B_200E_200C_202E_200D_202D_200C_200F_200D_202E_202D_206C_206B_200F_200D_200E_200B_206F_202D_206A_206A_200C_200E_200B_200C_206E_206A_200B_206F_200E_200B_206B_202C_200B_202D_202E(typeof(MoveToObject).TypeHandle); - } - } - public bool ShouldRedoOnInterrupt() { return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(14, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1070925283)); - defaultInterpolatedStringHandler.AppendFormatted(_200D_206C_202A_202E_206E_202D_206F_206E_202D_202B_206E_202D_200E_200E_202E_206F_202A_202A_202D_206E_200B_202A_200F_202D_202A_200D_202E_200C_200F_206B_206A_206E_200E_206A_202A_202C_206E_206A_206C_200C_202E(Step)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206E_200C_206A_206B_202D_206B_206B_200C_200D_202D_206A_200E_200B_200E_200C_202A_202C_206A_206A_200B_200D_202A_206E_206B_206E_206D_202B_202A_202E_206D_200D_202B_202C_202E_206D_200C_202C_202E_206E_202D_202E(); - _206F_206D_202D_200C_202D_200E_200F_200E_206A_206B_206D_206A_202A_206B_200E_206D_206C_202E_200D_202C_206B_202D_206C_200E_200C_202C_206C_200F_200F_206F_200E_200C_200E_200F_200F_200E_206D_200B_202E_206D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(148385326)); - _200C_200B_200B_206E_200E_202C_200D_200C_202A_202D_200D_200C_200D_206E_206D_202D_202B_202D_206B_200E_206F_200B_200B_202B_200B_206F_200C_200B_206D_202D_200C_202C_202E_200B_206B_202D_200B_206A_200C_200E_202E(builder, (object)Step); - return true; - } - - [CompilerGenerated] - public bool Equals(MoveToObject? other) - { - int num = (((object)this == other) ? (-5837158) : (-5837160)); - while (true) - { - int num2 = num; - int num3 = -5837157; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = ((!_202B_206B_202A_200F_202C_202D_202E_206C_202E_206F_202E_200B_206B_206E_206F_200B_206F_200F_202E_202D_200C_206B_206B_200C_200E_206C_206C_202C_200D_206A_206B_202E_200F_200C_200B_202E_200C_206F_200F_206C_202E(EqualityContract, other.EqualityContract)) ? (-5837154) : (-5837159)); - break; - case 3: - num = (((object)other == null) ? (-5837154) : (-5837153)); - break; - case 0: - num = -5837160; - break; - case 5: - return false; - case 1: - return true; - case 2: - return EqualityComparer<QuestStep>.Default.Equals(Step, other.Step); - } - } - } - - bool IEquatable<MoveToObject>.Equals(MoveToObject? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200F_202A_202B_200D_206A_200B_200E_200C_202E_200D_202D_200C_200F_200D_202E_202D_206C_206B_200F_200D_200E_200B_206F_202D_206A_206A_200C_200E_200B_200C_206E_206A_200B_206F_200E_200B_206B_202C_200B_202D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static uint? _200D_206C_202A_202E_206E_202D_206F_206E_202D_202B_206E_202D_200E_200E_202E_206F_202A_202A_202D_206E_200B_202A_200F_202D_202A_200D_202E_200C_200F_206B_206A_206E_200E_206A_202A_202C_206E_206A_206C_200C_202E(QuestStep P_0) - { - return P_0.DataId; - } - - static void _206E_200C_206A_206B_202D_206B_206B_200C_200D_202D_206A_200E_200B_200E_200C_202A_202C_206A_206A_200B_200D_202A_206E_206B_206E_206D_202B_202A_202E_206D_200D_202B_202C_202E_206D_200C_202C_202E_206E_202D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206F_206D_202D_200C_202D_200E_200F_200E_206A_206B_206D_206A_202A_206B_200E_206D_206C_202E_200D_202C_206B_202D_206C_200E_200C_202C_206C_200F_200F_206F_200E_200C_200E_200F_200F_200E_206D_200B_202E_206D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200C_200B_200B_206E_200E_202C_200D_200C_202A_202D_200D_200C_200D_206E_206D_202D_202B_202D_206B_200E_206F_200B_200B_202B_200B_206F_200C_200B_206D_202D_200C_202C_202E_200B_206B_202D_200B_206A_200C_200E_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202B_206B_202A_200F_202C_202D_202E_206C_202E_206F_202E_200B_206B_206E_206F_200B_206F_200F_202E_202D_200C_206B_206B_200C_200E_206C_206C_202C_200D_206A_206B_202E_200F_200C_200B_202E_200C_206F_200F_206C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"MoveToObject({Step.DataId})"; } } diff --git a/Questionable/Questionable.Controller.Steps.Movement/MoveToObjectExecutor.cs b/Questionable/Questionable.Controller.Steps.Movement/MoveToObjectExecutor.cs index c99382a..239b0b5 100644 --- a/Questionable/Questionable.Controller.Steps.Movement/MoveToObjectExecutor.cs +++ b/Questionable/Questionable.Controller.Steps.Movement/MoveToObjectExecutor.cs @@ -1,8 +1,5 @@ using System; -using System.Collections; -using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Objects.Enums; using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Game.ClientState.Objects.Types; @@ -10,7 +7,6 @@ using Dalamud.Plugin.Services; using Microsoft.Extensions.Logging; using Questionable.Functions; using Questionable.Model; -using Questionable.Model.Questing; namespace Questionable.Controller.Steps.Movement; @@ -22,342 +18,115 @@ internal sealed class MoveToObjectExecutor(MovementController movementController private bool _moving; - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - int num = (_202A_202B_202A_200D_200E_206A_206D_202A_200C_202A_200F_202C_202C_200B_200D_202C_202C_202B_200B_200E_202B_206F_202A_200B_206B_206D_206E_206B_206E_200E_206D_206D_202D_202B_206B_200E_200C_200D_206F_206B_202E(base.Task.Step).HasValue ? 29975280 : 29975286); - while (true) + if (!base.Task.Step.DataId.HasValue) { - int num2 = num; - int num3 = 29975282; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = ((_206B_206E_200B_200D_206A_202D_206B_200C_200E_200F_200D_200C_202B_206A_200C_202B_202B_200F_200E_200C_200B_206A_202C_202A_200D_202E_200C_200C_206F_206D_202B_206F_200B_200F_206F_200B_200D_206A_206C_206C_202E(clientState) == _206B_206F_202D_200C_202B_202A_206B_200F_206B_206E_206C_206E_206A_202D_202A_200C_206B_202B_206D_202B_206C_200C_200F_206D_200B_202E_202C_206B_206E_206C_200C_206C_200E_202A_206F_206D_206B_206C_200B_202C_202E(base.Task.Step)) ? 29975281 : 29975283); - break; - case 3: - _startedLookingAt = _202C_200B_200E_200D_202C_206D_200D_200E_206E_200B_200E_206C_206B_206A_202D_200D_202D_200E_206F_200F_200D_200C_200B_200F_206C_200C_202C_202D_200D_206F_206E_206A_206B_202B_202E_202C_200E_200D_202B_200E_202E(); - return TryStartMovement(); - case 0: - num = 29975286; - break; - case 1: - _202E_200E_202D_206F_200C_200D_202A_200B_200C_200F_206B_206C_200B_206D_200C_200E_202C_206B_206D_206D_202C_206F_206A_206C_202B_200E_206B_200F_206A_202D_206F_200B_202E_200C_200C_202C_202E_206D_206A_206B_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(969274381), Array.Empty<object>()); - return true; - case 4: - _206E_202E_200C_200E_206C_202E_206E_200C_206D_206C_206D_202D_202A_200F_200F_206B_206F_206B_200C_200B_200B_200E_202C_202B_206C_200F_202B_200D_200E_206A_202B_200D_206C_206C_206B_202B_202D_206F_206F_206B_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-833964926), Array.Empty<object>()); - return false; - } + logger.LogWarning("MoveToObject task has no DataId"); + return false; } + if (clientState.TerritoryType != base.Task.Step.TerritoryId) + { + logger.LogDebug("Not in correct territory yet, waiting"); + return true; + } + _startedLookingAt = Environment.TickCount64; + return TryStartMovement(); } private IGameObject? FindDistantObjectByDataId(uint dataId) { - IPlayerCharacter playerCharacter = _202C_200D_206A_206B_200C_206A_202A_200B_206E_206C_206B_206C_200F_206C_202C_206E_200C_206A_206B_202C_206F_206C_202A_206A_200F_206B_202B_206E_206F_206F_200B_202C_202E_206F_206E_200D_206F_200D_202A_200D_202E(objectTable); - int num = ((playerCharacter != null) ? 1134612284 : 1134612287); - ObjectKind objectKind = default(ObjectKind); - bool flag = default(bool); - IGameObject current = default(IGameObject); - float num8 = default(float); - while (true) + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + if (localPlayer == null) { - int num2 = num; - int num3 = 1134612286; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0056; - case 1: - return null; - case 2: - { - float num5 = _200D_206F_206E_202C_200D_206D_206B_206F_206F_200C_200C_202B_206F_200C_200C_200E_206C_202D_200C_206A_206C_202E_200C_200D_206A_206B_202D_200F_206A_206A_206D_202A_200E_202E_202C_206D_202C_200D_206E_202E(base.Task.Step); - IGameObject result = null; - float num6 = float.MaxValue; - IEnumerator<IGameObject> enumerator = objectTable.GetEnumerator(); - try - { - num = -1624913686; - while (true) - { - int num7 = num; - num3 = -1624913683; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 12: - num = ((objectKind != ObjectKind.HousingEventObject) ? (-1624913692) : (-1624913681)); - break; - case 2: - flag = true; - num = -1624913690; - break; - case 3: - num = ((objectKind - 8 <= ObjectKind.BattleNpc) ? (-1624913681) : (-1624913695)); - break; - case 6: - result = current; - num6 = num8; - num = -1624913686; - break; - case 10: - num = ((!(num8 < num6)) ? (-1624913686) : (-1624913685)); - break; - case 5: - num8 = Vector3.Distance(_206F_200E_206A_200E_206C_200C_206C_202D_206A_206D_202C_206C_200B_202E_202E_206D_200E_206D_200F_200D_200D_206A_202B_200F_206C_206E_206B_206D_206D_206D_202A_200E_206C_200D_200F_202E_202A_200D_206F_200C_202E((IGameObject)playerCharacter), _206F_200E_206A_200E_206C_200C_206C_202D_206A_206D_202C_206C_200B_202E_202E_206D_200E_206D_200F_200D_200D_206A_202B_200F_206C_206E_206B_206D_206D_206D_202A_200E_206C_200D_200F_202E_202A_200D_206F_200C_202E(current)); - num = ((num8 <= num5) ? (-1624913686) : (-1624913689)); - break; - case 9: - flag = false; - num = -1624913690; - break; - case 1: - num = ((_202E_206F_200F_206E_200D_200E_202A_202E_200C_202C_206C_200C_202C_206B_206C_200D_202E_200E_202C_206B_206A_202A_200C_206D_202A_200F_202A_206C_200F_202A_202D_200B_202B_202A_202A_206D_202B_200F_206F_200C_202E(current) != dataId) ? (-1624913686) : (-1624913688)); - break; - case 0: - num = -1624913686; - break; - case 4: - current = enumerator.Current; - objectKind = _200F_206E_200F_206C_206A_200D_202C_200C_200E_200E_206A_206E_202E_200D_202A_202D_202C_206C_206D_202D_200D_200E_200D_206D_200E_206F_206C_200D_202C_206E_202B_200D_202E_206E_200E_200B_202D_206B_202E(current); - num = ((objectKind == ObjectKind.Pc) ? (-1624913681) : (-1624913682)); - break; - case 11: - num = (flag ? (-1624913686) : (-1624913684)); - break; - case 7: - num = (_206B_206F_200D_202E_206E_206D_206C_200B_206A_206A_206F_202A_202D_200B_202D_202B_200E_202A_200E_202C_206A_202D_200C_200E_202D_206F_200E_206E_206D_202E_202B_200E_202D_206E_206A_202A_206A_200E_206C_202E((IEnumerator)enumerator) ? (-1624913687) : (-1624913691)); - break; - case 8: - return result; - } - } - } - finally - { - num = ((enumerator == null) ? 2066825075 : 2066825072); - while (true) - { - int num9 = num; - num3 = 2066825073; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 0: - num = 2066825072; - break; - case 2: - goto end_IL_027b; - case 1: - _206E_202D_206F_200D_202E_206E_200B_202C_200C_206B_206B_200E_202B_206B_202E_202C_200D_200B_202D_200F_206E_206F_200C_202A_206E_202E_200B_206C_200C_202B_206B_206F_206D_206F_200D_206D_200E_202A_206A_202B_202E((IDisposable)enumerator); - num = 2066825075; - break; - } - continue; - end_IL_027b: - break; - } - } - } - } - continue; - IL_0056: - num = 1134612287; + return null; } + float num = base.Task.Step.CalculateActualStopDistance(); + IGameObject result = null; + float num2 = float.MaxValue; + foreach (IGameObject item in objectTable) + { + ObjectKind objectKind = item.ObjectKind; + bool flag = ((objectKind == ObjectKind.Pc || objectKind - 8 <= ObjectKind.BattleNpc || objectKind == ObjectKind.HousingEventObject) ? true : false); + if (!flag && item.BaseId == dataId) + { + float num3 = Vector3.Distance(localPlayer.Position, item.Position); + if (!(num3 <= num) && num3 < num2) + { + result = item; + num2 = num3; + } + } + } + return result; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool TryStartMovement() { - IGameObject gameObject = FindDistantObjectByDataId(_202A_202B_202A_200D_200E_206A_206D_202A_200C_202A_200F_202C_202C_200B_200D_202C_202C_202B_200B_200E_202B_206F_202A_200B_206B_206D_206E_206B_206E_200E_206D_206D_202D_202B_206B_200E_200C_200D_206F_206B_202E(base.Task.Step).Value); - int num = ((gameObject != null) ? 1351000987 : 1351000991); - IPlayerCharacter playerCharacter = default(IPlayerCharacter); - float num7 = default(float); - while (true) + IGameObject gameObject = FindDistantObjectByDataId(base.Task.Step.DataId.Value); + if (gameObject == null) { - int num2 = num; - int num3 = 1351000990; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + gameObject = gameFunctions.FindObjectByDataId(base.Task.Step.DataId.Value, null, warnIfMissing: false); + if (gameObject == null) { - case 3: - num = 1351000991; - break; - case 2: - playerCharacter = _202C_200D_206A_206B_200C_206A_202A_200B_206E_206C_206B_206C_200F_206C_202C_206E_200C_206A_206B_202C_206F_206C_202A_206A_200F_206B_202B_206E_206F_206F_200B_202C_202E_206F_206E_200D_206F_200D_202A_200D_202E(objectTable); - num7 = _200D_206F_206E_202C_200D_206D_206B_206F_206F_200C_200C_202B_206F_200C_200C_200E_206C_202D_200C_206A_206C_202E_200C_200D_206A_206B_202D_200F_206A_206A_206D_202A_200E_202E_202C_206D_202C_200D_206E_202E(base.Task.Step); - num = ((playerCharacter == null) ? 1351000987 : 1351000984); - break; - case 1: - gameObject = gameFunctions.FindObjectByDataId(_202A_202B_202A_200D_200E_206A_206D_202A_200C_202A_200F_202C_202C_200B_200D_202C_202C_202B_200B_200E_202B_206F_202A_200B_206B_206D_206E_206B_206E_200E_206D_206D_202D_202B_206B_200E_200C_200D_206F_206B_202E(base.Task.Step).Value, null, warnIfMissing: false); - num = ((gameObject != null) ? 1351000988 : 1351000986); - break; - case 4: - _202E_200E_202D_206F_200C_200D_202A_200B_200C_200F_206B_206C_200B_206D_200C_200E_202C_206B_206D_206D_202C_206F_206A_206C_202B_200E_206B_200F_206A_202D_206F_200B_202E_200C_200C_202C_202E_206D_206A_206B_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1977444893), new object[1] { _202A_202B_202A_200D_200E_206A_206D_202A_200C_202A_200F_202C_202C_200B_200D_202C_202C_202B_200B_200E_202B_206F_202A_200B_206B_206D_206E_206B_206E_200E_206D_206D_202D_202B_206B_200E_200C_200D_206F_206B_202E(base.Task.Step) }); + logger.LogDebug("Object {DataId} not found yet, waiting", base.Task.Step.DataId); return true; - case 5: - _destination = _206F_200E_206A_200E_206C_200C_206C_202D_206A_206D_202C_206C_200B_202E_202E_206D_200E_206D_200F_200D_200D_206A_202B_200F_206C_206E_206B_206D_206D_206D_202A_200E_206C_200D_200F_202E_202A_200D_206F_200C_202E(gameObject); - _202E_200E_202D_206F_200C_200D_202A_200B_200C_200F_206B_206C_200B_206D_200C_200E_202C_206B_206D_206D_202C_206F_206A_206C_202B_200E_206B_200F_206A_202D_206F_200B_202E_200C_200C_202C_202E_206D_206A_206B_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-581508250), new object[2] - { - _202A_202B_202A_200D_200E_206A_206D_202A_200C_202A_200F_202C_202C_200B_200D_202C_202C_202B_200B_200E_202B_206F_202A_200B_206B_206D_206E_206B_206E_200E_206D_206D_202D_202B_206B_200E_200C_200D_206F_206B_202E(base.Task.Step), - _destination - }); - movementController.NavigateTo(EMovementType.Quest, _202A_202B_202A_200D_200E_206A_206D_202A_200C_202A_200F_202C_202C_200B_200D_202C_202C_202B_200B_200E_202B_206F_202A_200B_206B_206D_206E_206B_206E_200E_206D_206D_202D_202B_206B_200E_200C_200D_206F_206B_202E(base.Task.Step), _destination, fly: false, _206E_200D_202B_202C_202E_202A_206C_206C_206C_206B_202A_202C_206C_202D_200C_206B_202A_200D_200F_202C_206D_202D_206F_200C_206B_200F_200E_206A_202C_206C_202E_200B_206F_200F_202E_202A_206A_202B_202E_206A_202E(base.Task.Step) ?? true, _200D_206F_206E_202C_200D_206D_206B_206F_206F_200C_200C_202B_206F_200C_200C_200E_206C_202D_200C_206A_206C_202E_200C_200D_206A_206B_202D_200F_206A_206A_206D_202A_200E_202E_202C_206D_202C_200D_206E_202E(base.Task.Step)); - _moving = true; + } + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + float num = base.Task.Step.CalculateActualStopDistance(); + if (localPlayer != null && Vector3.Distance(localPlayer.Position, gameObject.Position) <= num) + { + logger.LogDebug("Only nearby objects with DataId {DataId} remain, skipping", base.Task.Step.DataId); return true; - case 0: - _202E_200E_202D_206F_200C_200D_202A_200B_200C_200F_206B_206C_200B_206D_200C_200E_202C_206B_206D_206D_202C_206F_206A_206C_202B_200E_206B_200F_206A_202D_206F_200B_202E_200C_200C_202C_202E_206D_206A_206B_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-604742017), new object[1] { _202A_202B_202A_200D_200E_206A_206D_202A_200C_202A_200F_202C_202C_200B_200D_202C_202C_202B_200B_200E_202B_206F_202A_200B_206B_206D_206E_206B_206E_200E_206D_206D_202D_202B_206B_200E_200C_200D_206F_206B_202E(base.Task.Step) }); - return true; - case 6: - num = ((!(Vector3.Distance(_206F_200E_206A_200E_206C_200C_206C_202D_206A_206D_202C_206C_200B_202E_202E_206D_200E_206D_200F_200D_200D_206A_202B_200F_206C_206E_206B_206D_206D_206D_202A_200E_206C_200D_200F_202E_202A_200D_206F_200C_202E((IGameObject)playerCharacter), _206F_200E_206A_200E_206C_200C_206C_202D_206A_206D_202C_206C_200B_202E_202E_206D_200E_206D_200F_200D_200D_206A_202B_200F_206C_206E_206B_206D_206D_206D_202A_200E_206C_200D_200F_202E_202A_200D_206F_200C_202E(gameObject)) <= num7)) ? 1351000987 : 1351000990); - break; } } + _destination = gameObject.Position; + logger.LogDebug("Moving to object {DataId} at {Position}", base.Task.Step.DataId, _destination); + movementController.NavigateTo(EMovementType.Quest, base.Task.Step.DataId, _destination, fly: false, base.Task.Step.Sprint ?? true, base.Task.Step.CalculateActualStopDistance()); + _moving = true; + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - int num = ((_206B_206E_200B_200D_206A_202D_206B_200C_200E_200F_200D_200C_202B_206A_200C_202B_202B_200F_200E_200C_200B_206A_202C_202A_200D_202E_200C_200C_206F_206D_202B_206F_200B_200F_206F_200B_200D_206A_206C_206C_202E(clientState) == _206B_206F_202D_200C_202B_202A_206B_200F_206B_206E_206C_206E_206A_202D_202A_200C_206B_202B_206D_202B_206C_200C_200F_206D_200B_202E_202C_206B_206E_206C_200C_206C_200E_202A_206F_206D_206B_206C_200B_202C_202E(base.Task.Step)) ? (-1023711134) : (-1023711130)); - long? startedLookingAt = default(long?); - while (true) + if (clientState.TerritoryType != base.Task.Step.TerritoryId) { - int num2 = num; - int num3 = -1023711125; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 12: - startedLookingAt = _startedLookingAt; - num = ((!startedLookingAt.HasValue) ? (-1023711132) : (-1023711133)); - break; - case 14: - return ETaskResult.TaskComplete; - case 9: - num = (_moving ? (-1023711128) : (-1023711129)); - break; - case 15: - num = (TryStartMovement() ? (-1023711121) : (-1023711131)); - break; - case 8: + return ETaskResult.StillRunning; + } + if (!_moving) + { + long? startedLookingAt = _startedLookingAt; + if (startedLookingAt.HasValue) { long valueOrDefault = startedLookingAt.GetValueOrDefault(); - long num5 = _202C_200B_200E_200D_202C_206D_200D_200E_206E_200B_200E_206C_206B_206A_202D_200D_202D_200E_206F_200F_200D_200C_200B_200F_206C_200C_202C_202D_200D_206F_206E_206A_206B_202B_202E_202C_200E_200D_202B_200E_202E(); - long num6 = 3000L; - long num7 = valueOrDefault; - num = ((num5 <= (num7 | num6) + (num7 & num6)) ? (-1023711132) : (-1023711127)); - break; + if (Environment.TickCount64 > valueOrDefault + 3000) + { + logger.LogDebug("Object {DataId} not found after timeout, skipping step", base.Task.Step.DataId); + return ETaskResult.TaskComplete; + } } - case 4: - num = (_moving ? (-1023711128) : (-1023711135)); - break; - case 2: - _202E_200E_202D_206F_200C_200D_202A_200B_200C_200F_206B_206C_200B_206D_200C_200E_202C_206B_206D_206D_202C_206F_206A_206C_202B_200E_206B_200F_206A_202D_206F_200B_202E_200C_200C_202C_202E_206D_206A_206B_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1582144125), new object[1] { _202A_202B_202A_200D_200E_206A_206D_202A_200C_202A_200F_202C_202C_200B_200D_202C_202C_202B_200B_200E_202B_206F_202A_200B_206B_206D_206E_206B_206E_200E_206D_206D_202D_202B_206B_200E_200C_200D_206F_206B_202E(base.Task.Step) }); + if (!TryStartMovement()) + { return ETaskResult.TaskComplete; - case 5: - num = (movementController.HasBeenMovingForAtLeast(2000) ? (-1023711123) : (-1023711124)); - break; - case 0: - num = -1023711130; - break; - case 1: - num = ((!movementController.IsPathRunning) ? (-1023711122) : (-1023711136)); - break; - case 3: - num = (movementController.IsPathfinding ? (-1023711136) : (-1023711126)); - break; - case 7: - return ETaskResult.StillRunning; - case 13: - return ETaskResult.StillRunning; - case 6: - return ETaskResult.TaskComplete; - case 10: - return ETaskResult.StillRunning; - case 11: + } + if (!_moving) + { return ETaskResult.StillRunning; } } + if (movementController.IsPathfinding || movementController.IsPathRunning) + { + return ETaskResult.StillRunning; + } + if (!movementController.HasBeenMovingForAtLeast(2000)) + { + return ETaskResult.StillRunning; + } + return ETaskResult.TaskComplete; } public override bool ShouldInterruptOnDamage() { return false; } - - static uint? _202A_202B_202A_200D_200E_206A_206D_202A_200C_202A_200F_202C_202C_200B_200D_202C_202C_202B_200B_200E_202B_206F_202A_200B_206B_206D_206E_206B_206E_200E_206D_206D_202D_202B_206B_200E_200C_200D_206F_206B_202E(QuestStep P_0) - { - return P_0.DataId; - } - - static void _206E_202E_200C_200E_206C_202E_206E_200C_206D_206C_206D_202D_202A_200F_200F_206B_206F_206B_200C_200B_200B_200E_202C_202B_206C_200F_202B_200D_200E_206A_202B_200D_206C_206C_206B_202B_202D_206F_206F_206B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static uint _206B_206E_200B_200D_206A_202D_206B_200C_200E_200F_200D_200C_202B_206A_200C_202B_202B_200F_200E_200C_200B_206A_202C_202A_200D_202E_200C_200C_206F_206D_202B_206F_200B_200F_206F_200B_200D_206A_206C_206C_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static ushort _206B_206F_202D_200C_202B_202A_206B_200F_206B_206E_206C_206E_206A_202D_202A_200C_206B_202B_206D_202B_206C_200C_200F_206D_200B_202E_202C_206B_206E_206C_200C_206C_200E_202A_206F_206D_206B_206C_200B_202C_202E(QuestStep P_0) - { - return P_0.TerritoryId; - } - - static void _202E_200E_202D_206F_200C_200D_202A_200B_200C_200F_206B_206C_200B_206D_200C_200E_202C_206B_206D_206D_202C_206F_206A_206C_202B_200E_206B_200F_206A_202D_206F_200B_202E_200C_200C_202C_202E_206D_206A_206B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static long _202C_200B_200E_200D_202C_206D_200D_200E_206E_200B_200E_206C_206B_206A_202D_200D_202D_200E_206F_200F_200D_200C_200B_200F_206C_200C_202C_202D_200D_206F_206E_206A_206B_202B_202E_202C_200E_200D_202B_200E_202E() - { - return Environment.TickCount64; - } - - static IPlayerCharacter _202C_200D_206A_206B_200C_206A_202A_200B_206E_206C_206B_206C_200F_206C_202C_206E_200C_206A_206B_202C_206F_206C_202A_206A_200F_206B_202B_206E_206F_206F_200B_202C_202E_206F_206E_200D_206F_200D_202A_200D_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static float _200D_206F_206E_202C_200D_206D_206B_206F_206F_200C_200C_202B_206F_200C_200C_200E_206C_202D_200C_206A_206C_202E_200C_200D_206A_206B_202D_200F_206A_206A_206D_202A_200E_202E_202C_206D_202C_200D_206E_202E(QuestStep P_0) - { - return P_0.CalculateActualStopDistance(); - } - - static ObjectKind _200F_206E_200F_206C_206A_200D_202C_200C_200E_200E_206A_206E_202E_200D_202A_202D_202C_206C_206D_202D_200D_200E_200D_206D_200E_206F_206C_200D_202C_206E_202B_200D_202E_206E_200E_200B_202D_206B_202E(IGameObject P_0) - { - return P_0.ObjectKind; - } - - static uint _202E_206F_200F_206E_200D_200E_202A_202E_200C_202C_206C_200C_202C_206B_206C_200D_202E_200E_202C_206B_206A_202A_200C_206D_202A_200F_202A_206C_200F_202A_202D_200B_202B_202A_202A_206D_202B_200F_206F_200C_202E(IGameObject P_0) - { - return P_0.BaseId; - } - - static Vector3 _206F_200E_206A_200E_206C_200C_206C_202D_206A_206D_202C_206C_200B_202E_202E_206D_200E_206D_200F_200D_200D_206A_202B_200F_206C_206E_206B_206D_206D_206D_202A_200E_206C_200D_200F_202E_202A_200D_206F_200C_202E(IGameObject P_0) - { - return P_0.Position; - } - - static bool _206B_206F_200D_202E_206E_206D_206C_200B_206A_206A_206F_202A_202D_200B_202D_202B_200E_202A_200E_202C_206A_202D_200C_200E_202D_206F_200E_206E_206D_202E_202B_200E_202D_206E_206A_202A_206A_200E_206C_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206E_202D_206F_200D_202E_206E_200B_202C_200C_206B_206B_200E_202B_206B_202E_202C_200D_200B_202D_200F_206E_206F_200C_202A_206E_202E_200B_206C_200C_202B_206B_206F_206D_206F_200D_206D_200E_202A_206A_202B_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool? _206E_200D_202B_202C_202E_202A_206C_206C_206C_206B_202A_202C_206C_202D_200C_206B_202A_200D_200F_202C_206D_202D_206F_200C_206B_200F_200E_206A_202C_206C_202E_200B_206F_200F_202E_202A_206A_202B_202E_206A_202E(QuestStep P_0) - { - return P_0.Sprint; - } } diff --git a/Questionable/Questionable.Controller.Steps.Movement/NoOpTask.cs b/Questionable/Questionable.Controller.Steps.Movement/NoOpTask.cs index e73bc57..eebdc00 100644 --- a/Questionable/Questionable.Controller.Steps.Movement/NoOpTask.cs +++ b/Questionable/Questionable.Controller.Steps.Movement/NoOpTask.cs @@ -1,110 +1,3 @@ -using System; -using System.Runtime.CompilerServices; -using System.Text; - namespace Questionable.Controller.Steps.Movement; -internal sealed record NoOpTask : ITask -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206A_200F_206E_202E_200B_206B_200F_200B_206F_206A_206B_206B_202C_206D_206A_200C_200E_202D_200B_206D_200F_206C_202B_202D_202C_202E_206A_206D_206C_200E_202A_202B_200F_200B_200C_202C_206E_206E_202E_206A_202E(typeof(NoOpTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206B_202A_202E_202C_206A_206D_206E_202D_200C_202D_200F_206B_202C_202B_206C_202D_206A_206F_200D_206D_206E_200E_200C_206A_200F_202C_200F_206E_200C_206F_200F_202C_206A_200D_202D_202B_202B_200B_200C_206B_202E(); - _202E_200B_200C_200E_200C_206C_200F_206B_202B_202C_202B_206C_206A_206A_206E_206C_206C_202D_206A_202A_202A_202B_200E_200D_200F_206F_206F_200D_200D_206F_206A_202E_202D_200E_206E_202D_202E_206E_206E_200E_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1577194726)); - _202E_200B_200C_200E_200C_206C_200F_206B_202B_202C_202B_206C_206A_206A_206E_206C_206C_202D_206A_202A_202A_202B_200E_200D_200F_206F_206F_200D_200D_206F_206A_202E_202D_200E_206E_202D_202E_206E_206E_200E_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(556540328)); - int num = ((!PrintMembers(stringBuilder)) ? (-163441157) : (-163441160)); - while (true) - { - int num2 = num; - int num3 = -163441159; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -163441160; - break; - case 1: - _200C_200F_202D_202A_206B_206B_206E_202D_206B_206A_202E_200D_202A_206B_200B_202B_202D_206E_200F_202A_200B_202D_206A_200D_206A_202C_200B_202C_200D_206A_206F_200E_200F_206F_202D_200F_206B_206A_202A_200C_202E(stringBuilder, ' '); - num = -163441157; - break; - case 2: - _200C_200F_202D_202A_206B_206B_206E_202D_206B_206A_202E_200D_202A_206B_200B_202B_202D_206E_200F_202A_200B_202D_206A_200D_206A_202C_200B_202C_200D_206A_206F_200E_200F_206F_202D_200F_206B_206A_202A_200C_202E(stringBuilder, '}'); - return _202D_206C_200C_206F_202B_202A_206C_200F_206A_202D_206F_202A_202A_202C_202D_206E_206A_202B_202C_202A_202D_200B_200B_200B_202B_202E_206A_200E_202E_200B_200D_200B_200E_200C_206E_202D_200C_200B_200F_202A_202E((object)stringBuilder); - } - } - } - - [CompilerGenerated] - public bool Equals(NoOpTask? other) - { - int num = (((object)this == other) ? (-1727123602) : (-1727123605)); - while (true) - { - int num2 = num; - int num3 = -1727123606; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - return true; - case 3: - return _202C_202B_200C_200E_200B_200B_206D_202B_206F_206A_200B_202B_206C_202D_202B_202D_200F_202A_200C_202B_206A_200C_200E_202C_206B_206B_200D_202A_200C_202E_206B_206B_206A_206D_200E_206B_206E_206C_202E_206A_202E(EqualityContract, other.EqualityContract); - case 1: - num = (((object)other == null) ? (-1727123608) : (-1727123607)); - break; - case 2: - return false; - case 0: - num = -1727123605; - break; - } - } - } - - bool IEquatable<NoOpTask>.Equals(NoOpTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206A_200F_206E_202E_200B_206B_200F_200B_206F_206A_206B_206B_202C_206D_206A_200C_200E_202D_200B_206D_200F_206C_202B_202D_202C_202E_206A_206D_206C_200E_202A_202B_200F_200B_200C_202C_206E_206E_202E_206A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206B_202A_202E_202C_206A_206D_206E_202D_200C_202D_200F_206B_202C_202B_206C_202D_206A_206F_200D_206D_206E_200E_200C_206A_200F_202C_200F_206E_200C_206F_200F_202C_206A_200D_202D_202B_202B_200B_200C_206B_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202E_200B_200C_200E_200C_206C_200F_206B_202B_202C_202B_206C_206A_206A_206E_206C_206C_202D_206A_202A_202A_202B_200E_200D_200F_206F_206F_200D_200D_206F_206A_202E_202D_200E_206E_202D_202E_206E_206E_200E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200C_200F_202D_202A_206B_206B_206E_202D_206B_206A_202E_200D_202A_206B_200B_202B_202D_206E_200F_202A_200B_202D_206A_200D_206A_202C_200B_202C_200D_206A_206F_200E_200F_206F_202D_200F_206B_206A_202A_200C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202D_206C_200C_206F_202B_202A_206C_200F_206A_202D_206F_202A_202A_202C_202D_206E_206A_202B_202C_202A_202D_200B_200B_200B_202B_202E_206A_200E_202E_200B_200D_200B_200E_200C_206E_202D_200C_200B_200F_202A_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _202C_202B_200C_200E_200B_200B_206D_202B_206F_206A_200B_202B_206C_202D_202B_202D_200F_202A_200C_202B_206A_200C_200E_202C_206B_206B_200D_202A_200C_202E_206B_206B_206A_206D_200E_206B_206E_206C_202E_206A_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +internal sealed record NoOpTask : ITask; diff --git a/Questionable/Questionable.Controller.Steps.Movement/WaitForNearDataId.cs b/Questionable/Questionable.Controller.Steps.Movement/WaitForNearDataId.cs index a12a779..5e443ab 100644 --- a/Questionable/Questionable.Controller.Steps.Movement/WaitForNearDataId.cs +++ b/Questionable/Questionable.Controller.Steps.Movement/WaitForNearDataId.cs @@ -1,149 +1,9 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; - namespace Questionable.Controller.Steps.Movement; internal sealed record WaitForNearDataId(uint DataId, float StopDistance) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202C_200F_206A_200F_206E_200E_206F_206C_200C_202C_206D_206B_200C_202A_200F_200E_206B_206A_206E_206E_200B_206A_200E_202D_206A_206F_206E_200B_206C_200B_202B_206B_202E_200C_202A_200E_206B_206D_202B_200D_202E(typeof(WaitForNearDataId).TypeHandle); - } - } - public bool ShouldRedoOnInterrupt() { return true; } - - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206A_206C_202B_206C_206A_200B_206D_202E_200D_200E_202C_200F_202B_200D_202B_200B_206D_202A_202C_202E_200E_206B_202E_200D_206E_206C_200C_206C_206E_206D_202B_206C_202C_202E_206F_202C_202B_206A_202E_200E_202E(); - _202D_202B_202E_206E_200E_200C_200C_202A_202E_202A_206B_200F_206C_200E_206B_206A_206A_202A_200C_200B_202C_206F_202E_200D_202D_200B_206E_202A_206B_206E_206D_202E_200C_202B_206A_206D_200F_206F_206C_200D_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-877026305)); - _202D_202B_202E_206E_200E_200C_200C_202A_202E_202A_206B_200F_206C_200E_206B_206A_206A_202A_200C_200B_202C_206F_202E_200D_202D_200B_206E_202A_206B_206E_206D_202E_200C_202B_206A_206D_200F_206F_206C_200D_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? 738763042 : 738763043); - while (true) - { - int num2 = num; - int num3 = 738763042; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 738763043; - break; - case 1: - _206D_200D_200D_206C_206A_200D_206E_200C_206F_206B_206F_206E_202D_202D_206D_200D_202B_200D_200B_206B_202B_200C_206B_202D_202C_206A_206A_200B_206F_206D_202C_206B_206F_206E_206E_202E_206F_202E_206C_200C_202E(stringBuilder, ' '); - num = 738763042; - break; - case 0: - _206D_200D_200D_206C_206A_200D_206E_200C_206F_206B_206F_206E_202D_202D_206D_200D_202B_200D_200B_206B_202B_200C_206B_202D_202C_206A_206A_200B_206F_206D_202C_206B_206F_206E_206E_202E_206F_202E_206C_200C_202E(stringBuilder, '}'); - return _200E_202A_206C_200B_206A_200B_206C_202D_206B_200E_206F_206C_202B_206E_202B_202B_202E_202A_206F_202B_206D_206E_206C_202C_206D_206A_200B_206D_202A_202B_206E_202B_200B_200E_202C_202C_206A_206B_206A_200F_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202C_206B_200B_206C_206B_200E_200B_206A_206E_200B_200D_202C_200D_202A_200B_206C_206F_200B_206D_202C_200F_206D_202B_206F_206A_202E_200C_200C_206A_206D_200E_206F_206D_202B_200D_200C_200E_202D_200D_200F_202E(); - _202D_202B_202E_206E_200E_200C_200C_202A_202E_202A_206B_200F_206C_200E_206B_206A_206A_202A_200C_200B_202C_206F_202E_200D_202D_200B_206E_202A_206B_206E_206D_202E_200C_202B_206A_206D_200F_206F_206C_200D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(353274882)); - _202D_202B_202E_206E_200E_200C_200C_202A_202E_202A_206B_200F_206C_200E_206B_206A_206A_202A_200C_200B_202C_206F_202E_200D_202D_200B_206E_202A_206B_206E_206D_202E_200C_202B_206A_206D_200F_206F_206C_200D_202E(builder, DataId.ToString()); - _202D_202B_202E_206E_200E_200C_200C_202A_202E_202A_206B_200F_206C_200E_206B_206A_206A_202A_200C_200B_202C_206F_202E_200D_202D_200B_206E_202A_206B_206E_206D_202E_200C_202B_206A_206D_200F_206F_206C_200D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(647271640)); - _202D_202B_202E_206E_200E_200C_200C_202A_202E_202A_206B_200F_206C_200E_206B_206A_206A_202A_200C_200B_202C_206F_202E_200D_202D_200B_206E_202A_206B_206E_206D_202E_200C_202B_206A_206D_200F_206F_206C_200D_202E(builder, StopDistance.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(WaitForNearDataId? other) - { - int num = (((object)this == other) ? (-1584907554) : (-1584907555)); - while (true) - { - int num2 = num; - int num3 = -1584907556; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - num = -1584907555; - break; - case 1: - num = (((object)other == null) ? (-1584907558) : (-1584907560)); - break; - case 6: - return false; - case 4: - num = ((!_202E_200F_200D_202E_206D_200E_206F_202B_202E_206B_200E_206B_206F_200B_206D_202C_206E_206C_200E_200D_202B_200C_202A_202D_202A_206C_200B_202B_206C_202A_202E_202E_206B_202E_202D_206B_202A_202A_206B_200D_202E(EqualityContract, other.EqualityContract)) ? (-1584907558) : (-1584907556)); - break; - case 0: - num = ((!EqualityComparer<uint>.Default.Equals(DataId, other.DataId)) ? (-1584907558) : (-1584907553)); - break; - case 2: - return true; - case 3: - return EqualityComparer<float>.Default.Equals(StopDistance, other.StopDistance); - } - } - } - - bool IEquatable<WaitForNearDataId>.Equals(WaitForNearDataId? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202C_200F_206A_200F_206E_200E_206F_206C_200C_202C_206D_206B_200C_202A_200F_200E_206B_206A_206E_206E_200B_206A_200E_202D_206A_206F_206E_200B_206C_200B_202B_206B_202E_200C_202A_200E_206B_206D_202B_200D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206A_206C_202B_206C_206A_200B_206D_202E_200D_200E_202C_200F_202B_200D_202B_200B_206D_202A_202C_202E_200E_206B_202E_200D_206E_206C_200C_206C_206E_206D_202B_206C_202C_202E_206F_202C_202B_206A_202E_200E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202D_202B_202E_206E_200E_200C_200C_202A_202E_202A_206B_200F_206C_200E_206B_206A_206A_202A_200C_200B_202C_206F_202E_200D_202D_200B_206E_202A_206B_206E_206D_202E_200C_202B_206A_206D_200F_206F_206C_200D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206D_200D_200D_206C_206A_200D_206E_200C_206F_206B_206F_206E_202D_202D_206D_200D_202B_200D_200B_206B_202B_200C_206B_202D_202C_206A_206A_200B_206F_206D_202C_206B_206F_206E_206E_202E_206F_202E_206C_200C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200E_202A_206C_200B_206A_200B_206C_202D_206B_200E_206F_206C_202B_206E_202B_202B_202E_202A_206F_202B_206D_206E_206C_202C_206D_206A_200B_206D_202A_202B_206E_202B_200B_200E_202C_202C_206A_206B_206A_200F_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202C_206B_200B_206C_206B_200E_200B_206A_206E_200B_200D_202C_200D_202A_200B_206C_206F_200B_206D_202C_200F_206D_202B_206F_206A_202E_200C_200C_206A_206D_200E_206F_206D_202B_200D_200C_200E_202D_200D_200F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _202E_200F_200D_202E_206D_200E_206F_202B_202E_206B_200E_206B_206F_200B_206D_202C_206E_206C_200E_200D_202B_200C_202A_202D_202A_206C_200B_202B_206C_202A_202E_202E_206B_202E_202D_206B_202A_202A_206B_200D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } } diff --git a/Questionable/Questionable.Controller.Steps.Movement/WaitForNearDataIdExecutor.cs b/Questionable/Questionable.Controller.Steps.Movement/WaitForNearDataIdExecutor.cs index 3f441a3..7eb8a2a 100644 --- a/Questionable/Questionable.Controller.Steps.Movement/WaitForNearDataIdExecutor.cs +++ b/Questionable/Questionable.Controller.Steps.Movement/WaitForNearDataIdExecutor.cs @@ -1,5 +1,3 @@ -using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; @@ -14,48 +12,19 @@ internal sealed class WaitForNearDataIdExecutor(GameFunctions gameFunctions, IOb return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { IGameObject gameObject = gameFunctions.FindObjectByDataId(base.Task.DataId); - IPlayerCharacter playerCharacter = _202E_206D_202B_206B_206B_206A_206B_202D_200E_202D_206A_206A_200C_200B_206A_206E_206C_200D_206B_206D_206F_200C_202D_202C_200D_202E_206A_202E_202E_200B_200E_206E_202C_206F_206A_206E_206C_202A_202B_206A_202E(objectTable); - int num = ((gameObject == null) ? (-1888435881) : (-1888435883)); - while (true) + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + if (gameObject == null || localPlayer == null || (gameObject.Position - localPlayer.Position).Length() > base.Task.StopDistance) { - int num2 = num; - int num3 = -1888435882; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1888435883; - break; - case 2: - num = ((!((_202E_206C_202D_202D_206F_206F_202E_206F_202C_202A_202D_206C_202B_206C_202D_206E_202A_206D_206D_206A_202E_200D_200B_200E_200D_202D_206E_200D_202D_206A_200E_202D_202C_206B_200F_206B_206A_202D_206B_206B_202E(gameObject) - _202E_206C_202D_202D_206F_206F_202E_206F_202C_202A_202D_206C_202B_206C_202D_206E_202A_206D_206D_206A_202E_200D_200B_200E_200D_202D_206E_200D_202D_206A_200E_202D_202C_206B_200F_206B_206A_202D_206B_206B_202E((IGameObject)playerCharacter)).Length() > base.Task.StopDistance)) ? (-1888435886) : (-1888435881)); - break; - case 3: - num = ((playerCharacter == null) ? (-1888435881) : (-1888435884)); - break; - case 4: - return ETaskResult.TaskComplete; - case 1: - throw new TaskException(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1158873543)); - } + throw new TaskException("Object not found or too far away, no position so we can't move"); } + return ETaskResult.TaskComplete; } public override bool ShouldInterruptOnDamage() { return false; } - - static IPlayerCharacter _202E_206D_202B_206B_206B_206A_206B_202D_200E_202D_206A_206A_200C_200B_206A_206E_206C_200D_206B_206D_206F_200C_202D_202C_200D_202E_206A_202E_202E_200B_200E_206E_202C_206F_206A_206E_206C_202A_202B_206A_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static Vector3 _202E_206C_202D_202D_206F_206F_202E_206F_202C_202A_202D_206C_202B_206C_202D_206E_202A_206D_206D_206A_202E_200D_200B_200E_200D_202D_206E_200D_202D_206A_200E_202D_202C_206B_200F_206B_206A_202D_206B_206B_202E(IGameObject P_0) - { - return P_0.Position; - } } diff --git a/Questionable/Questionable.Controller.Steps.Shared/AethernetRide.cs b/Questionable/Questionable.Controller.Steps.Shared/AethernetRide.cs index 3e206e4..d39a501 100644 --- a/Questionable/Questionable.Controller.Steps.Shared/AethernetRide.cs +++ b/Questionable/Questionable.Controller.Steps.Shared/AethernetRide.cs @@ -1,11 +1,8 @@ using System; using System.Collections.Generic; -using System.Collections.ObjectModel; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using System.Text; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Game.ClientState.Objects.Types; @@ -24,97 +21,9 @@ internal static class AethernetRide { internal sealed record Task(EAetheryteLocation From, EAetheryteLocation To) : ISkippableTask, ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202A_202A_206E_202C_206D_206A_200C_200E_206E_200C_200D_200F_200B_200C_200F_200D_200F_200E_206B_200B_202A_200C_202B_202B_200F_200F_206F_206C_206B_206D_202A_200B_206E_202E_202B_202E_202C_202A_202D_206D_202E(typeof(Task).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(18, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1464179176)); - defaultInterpolatedStringHandler.AppendFormatted(From); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1415797485)); - defaultInterpolatedStringHandler.AppendFormatted(To); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200C_202A_202E_206F_206D_202C_200E_206B_206F_200B_202A_200B_200D_206C_202C_200E_200F_206F_206E_200D_206E_202A_200E_202E_206F_200C_202A_206A_206D_200C_200C_202B_202A_200B_200C_206E_202B_206F_206A_202D_202E(); - _200D_200E_202D_200C_202B_206E_202C_200C_202E_206F_200E_206C_206A_200F_202B_206B_200F_206B_206C_206E_200B_202E_202C_206E_206E_206B_206C_200E_206F_206D_206E_202D_202C_202E_206F_206C_202E_202E_202B_202C_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1869557730)); - _200D_200E_202D_200C_202B_206E_202C_200C_202E_206F_200E_206C_206A_200F_202B_206B_200F_206B_206C_206E_200B_202E_202C_206E_206E_206B_206C_200E_206F_206D_206E_202D_202C_202E_206F_206C_202E_202E_202B_202C_202E(builder, From.ToString()); - _200D_200E_202D_200C_202B_206E_202C_200C_202E_206F_200E_206C_206A_200F_202B_206B_200F_206B_206C_206E_200B_202E_202C_206E_206E_206B_206C_200E_206F_206D_206E_202D_202C_202E_206F_206C_202E_202E_202B_202C_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1257560035)); - _200D_200E_202D_200C_202B_206E_202C_200C_202E_206F_200E_206C_206A_200F_202B_206B_200F_206B_206C_206E_200B_202E_202C_206E_206E_206B_206C_200E_206F_206D_206E_202D_202C_202E_206F_206C_202E_202E_202B_202C_202E(builder, To.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? 921628929 : 921628935); - while (true) - { - int num2 = num; - int num3 = 921628932; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = ((!_200B_200D_202B_202B_200B_206D_200B_206A_206D_206A_202D_200B_202B_202E_202C_202A_200D_202B_202E_202C_200F_206F_200B_200F_200B_200F_200F_200F_202D_200B_200E_202E_206E_202A_206E_206B_200C_206A_202D_206B_202E(EqualityContract, other.EqualityContract)) ? 921628928 : 921628930); - break; - case 5: - return true; - case 4: - return false; - case 3: - num = (((object)other == null) ? 921628928 : 921628933); - break; - case 6: - num = ((!EqualityComparer<EAetheryteLocation>.Default.Equals(From, other.From)) ? 921628928 : 921628934); - break; - case 0: - num = 921628935; - break; - case 2: - return EqualityComparer<EAetheryteLocation>.Default.Equals(To, other.To); - } - } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202A_202A_206E_202C_206D_206A_200C_200E_206E_200C_200D_200F_200B_200C_200F_200D_200F_200E_206B_200B_202A_200C_202B_202B_200F_200F_206F_206C_206B_206D_202A_200B_206E_202E_202B_202E_202C_202A_202D_206D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _200C_202A_202E_206F_206D_202C_200E_206B_206F_200B_202A_200B_200D_206C_202C_200E_200F_206F_206E_200D_206E_202A_200E_202E_206F_200C_202A_206A_206D_200C_200C_202B_202A_200B_200C_206E_202B_206F_206A_202D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200D_200E_202D_200C_202B_206E_202C_200C_202E_206F_200E_206C_206A_200F_202B_206B_200F_206B_206C_206E_200B_202E_202C_206E_206E_206B_206C_200E_206F_206D_206E_202D_202C_202E_206F_206C_202E_202E_202B_202C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _200B_200D_202B_202B_200B_206D_200B_206A_206D_206A_202D_200B_202B_202E_202C_202A_200D_202B_202E_202C_200F_206F_200B_200F_200B_200F_200F_200F_202D_200B_200E_202E_206E_202A_206E_206B_200C_206A_202D_206B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"UseAethernet({From} -> {To})"; } } @@ -131,17 +40,6 @@ internal static class AethernetRide WaitingForArrival } - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass20_0 - { - public Vector3 playerPosition; - - internal float _003CStart_003Eb__0(Vector3 x) - { - return Vector3.Distance(playerPosition, x); - } - } - private EAethernetPhase _phase; private long _continueAt; @@ -157,7 +55,7 @@ internal static class AethernetRide private void SetPhase(EAethernetPhase phase) { _phase = phase; - _phaseStartedAt = _200E_206E_200C_200F_206F_202A_206D_200C_202A_202D_206E_200D_206B_206E_200B_202E_200F_206B_202E_200C_206A_206F_202D_206D_206A_200D_200B_206D_200C_206E_202E_202B_206B_206C_202C_206D_206E_202C_200E_206A_202E(); + _phaseStartedAt = Environment.TickCount64; } public void StopNow() @@ -165,474 +63,194 @@ internal static class AethernetRide aethernetTeleportService.Reset(); } - void IStoppableTaskExecutor.StopNow() - { - //ILSpy generated this explicit interface implementation from .override directive in StopNow - this.StopNow(); - } - public override bool HasTimedOut(float timeoutSeconds) { - int num = ((_phase != EAethernetPhase.None) ? 466261811 : 466261810); - while (true) + if (_phase == EAethernetPhase.None) { - int num2 = num; - int num3 = 466261811; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return _200E_206E_200C_200F_206F_202A_206D_200C_202A_202D_206E_200D_206B_206E_200B_202E_200F_206B_202E_200C_206A_206F_202D_206D_206A_200D_200B_206D_200C_206E_202E_202B_206B_206C_202C_206D_206E_202C_200E_206A_202E() - _phaseStartedAt > (long)(timeoutSeconds * 1000f); - case 1: - return false; - case 2: - goto IL_005f; - } - continue; - IL_005f: - num = 466261810; + return false; } + return Environment.TickCount64 - _phaseStartedAt > (long)(timeoutSeconds * 1000f); } - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { SetPhase(EAethernetPhase.None); _interactionAttempts = 0; aethernetTeleportService.Reset(); - int num = ((!aetheryteFunctions.IsAetheryteUnlocked(base.Task.From)) ? (-1371830101) : (-1371830111)); - _003C_003Ec__DisplayClass20_0 _003C_003Ec__DisplayClass20_ = default(_003C_003Ec__DisplayClass20_0); - uint num7 = default(uint); - IPlayerCharacter playerCharacter = default(IPlayerCharacter); - while (true) + if (aetheryteFunctions.IsAetheryteUnlocked(base.Task.From) && aetheryteFunctions.IsAetheryteUnlocked(base.Task.To)) { - int num2 = num; - int num3 = -1371830100; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - float num8; - float num10; - switch (num5 - (num6 + num6)) + uint territoryType = clientState.TerritoryType; + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + if (localPlayer == null) { - case 2: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(42, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1136097432)); - defaultInterpolatedStringHandler.AppendFormatted(base.Task.From); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-732790977)); - defaultInterpolatedStringHandler.AppendFormatted(base.Task.To); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - throw new TaskException(defaultInterpolatedStringHandler.ToStringAndClear()); + return false; } - case 11: + Vector3 playerPosition = localPlayer.Position; + if (aetheryteData.CalculateDistance(playerPosition, territoryType, base.Task.From) < aetheryteData.CalculateDistance(playerPosition, territoryType, base.Task.To)) + { + float num = (base.Task.From.IsFirmamentAetheryte() ? 11f : (AetheryteConverter.IsLargeAetheryte(base.Task.From) ? 11f : 4f)); + if (aetheryteData.CalculateDistance(playerPosition, territoryType, base.Task.From) < num) + { + BeginTeleport(); + return true; + } + if (base.Task.From == EAetheryteLocation.SolutionNine) + { + logger.LogDebug("Moving to S9 aetheryte"); + int num2 = 4; + List<Vector3> list = new List<Vector3>(num2); + CollectionsMarshal.SetCount(list, num2); + Span<Vector3> span = CollectionsMarshal.AsSpan(list); + span[0] = new Vector3(0f, 8.442986f, 9f); + span[1] = new Vector3(9f, 8.442986f, 0f); + span[2] = new Vector3(-9f, 8.442986f, 0f); + span[3] = new Vector3(0f, 8.442986f, -9f); + Vector3 to = list.MinBy((Vector3 x) => Vector3.Distance(playerPosition, x)); + SetPhase(EAethernetPhase.Moving); + movementController.NavigateTo(EMovementType.Quest, (uint)base.Task.From, to, fly: false, sprint: true, 0.25f); + return true; + } + if (territoryData.CanUseMount(territoryType) && aetheryteData.CalculateDistance(playerPosition, territoryType, base.Task.From) > 30f && !gameFunctions.HasStatusPreventingMount() && gameFunctions.Mount()) + { + SetPhase(EAethernetPhase.Mounting); + _continueAt = Environment.TickCount64 + 500; + return true; + } StartMoving(); return true; - case 6: - num8 = 11f; - goto IL_0145; - case 15: - num = ((!(_206C_206A_206C_202B_200C_200F_200D_200D_202D_202E_200B_206F_206C_200D_200D_200E_202E_206B_206E_206A_202A_200D_206B_202E_202D_202C_202C_206C_206E_200B_206C_202D_206D_206D_200D_200D_206A_202C_206C_206F_202E(aetheryteData, _003C_003Ec__DisplayClass20_.playerPosition, num7, base.Task.From) > 30f)) ? (-1371830105) : (-1371830104)); - break; - case 10: - return false; - case 5: - SetPhase(EAethernetPhase.Mounting); - _continueAt = _200E_206E_200C_200F_206F_202A_206D_200C_202A_202D_206E_200D_206B_206E_200B_202E_200F_206B_202E_200C_206A_206F_202D_206D_206A_200D_200B_206D_200C_206E_202E_202B_206B_206C_202C_206D_206E_202C_200E_206A_202E() + 500; - return true; - case 20: - num = ((base.Task.From != EAetheryteLocation.SolutionNine) ? (-1371830082) : (-1371830087)); - break; - case 19: - num = (_200D_200D_202D_200F_202B_200C_200B_206E_206D_206E_202A_202D_200F_206A_202E_206C_202A_202A_200C_202D_206A_202C_206C_202B_206C_200D_206F_206C_200F_202D_200B_200B_200D_202D_206D_206A_202B_206E_206E_202B_202E(base.Task.From) ? (-1371830099) : (-1371830083)); - break; - case 0: - BeginTeleport(); - return true; - case 13: - num = ((!aetheryteFunctions.IsAetheryteUnlocked(base.Task.To)) ? (-1371830101) : (-1371830097)); - break; - case 16: - num = -1371830111; - break; - case 22: - return false; - case 18: - num = ((!territoryData.CanUseMount(num7)) ? (-1371830105) : (-1371830109)); - break; - case 8: - _206F_206D_200D_200C_200F_200F_202A_206C_206D_206E_200E_202E_206C_206A_206E_206F_206F_200F_200B_206E_200F_200C_200F_206E_206E_202C_202E_200E_200E_202A_202A_200D_206A_202E_202E_202C_206A_200C_206F_202E_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1241997546), new object[2] - { - base.Task.From, - base.Task.To - }); - num = -1371830106; - break; - case 1: - num8 = 11f; - goto IL_0145; - case 21: - { - _202E_206A_206A_206B_206B_202B_202B_202B_206B_202D_200E_202C_200F_202E_206F_200D_202B_200E_206C_202D_202D_200D_202B_202E_200F_200C_206F_202B_206D_200E_202A_202B_206C_200E_206F_202D_202E_206E_206C_202D_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1883356497), Array.Empty<object>()); - int num9 = 4; - List<Vector3> list = new List<Vector3>(num9); - CollectionsMarshal.SetCount(list, num9); - Span<Vector3> span = CollectionsMarshal.AsSpan(list); - span[0] = new Vector3(0f, 8.442986f, 9f); - span[1] = new Vector3(9f, 8.442986f, 0f); - span[2] = new Vector3(-9f, 8.442986f, 0f); - span[3] = new Vector3(0f, 8.442986f, -9f); - Vector3 to = list.MinBy(_003C_003Ec__DisplayClass20_._003CStart_003Eb__0); - SetPhase(EAethernetPhase.Moving); - movementController.NavigateTo(EMovementType.Quest, (uint)base.Task.From, to, fly: false, sprint: true, 0.25f); - return true; - } - case 17: - num8 = 4f; - goto IL_0145; - case 14: - num = (_206D_200D_206F_206B_202D_200F_202B_202A_200E_202A_206B_202C_202D_200C_206B_206C_206B_200C_206A_202E_202A_206D_206D_206E_200B_200E_202A_202A_200E_206A_206C_206E_202E_202B_200B_206B_206F_202C_202B_202C_202E(base.Task.From) ? (-1371830102) : (-1371830081)); - break; - case 12: - _003C_003Ec__DisplayClass20_.playerPosition = _202C_200B_202C_206B_200E_200C_200E_200C_202E_200C_202D_202A_206C_202A_202D_202D_200D_200E_200F_202B_206E_202D_206E_200F_206D_206E_206B_200C_206A_202A_202D_202E_200D_206A_206A_206E_200E_206D_206D_206B_202E((IGameObject)playerCharacter); - num = ((!(_206C_206A_206C_202B_200C_200F_200D_200D_202D_202E_200B_206F_206C_200D_200D_200E_202E_206B_206E_206A_202A_200D_206B_202E_202D_202C_202C_206C_206E_200B_206C_202D_206D_206D_200D_200D_206A_202C_206C_206F_202E(aetheryteData, _003C_003Ec__DisplayClass20_.playerPosition, num7, base.Task.From) < _206C_206A_206C_202B_200C_200F_200D_200D_202D_202E_200B_206F_206C_200D_200D_200E_202E_206B_206E_206A_202A_200D_206B_202E_202D_202C_202C_206C_206E_200B_206C_202D_206D_206D_200D_200D_206A_202C_206C_206F_202E(aetheryteData, _003C_003Ec__DisplayClass20_.playerPosition, num7, base.Task.To))) ? (-1371830106) : (-1371830110)); - break; - case 3: - _003C_003Ec__DisplayClass20_ = new _003C_003Ec__DisplayClass20_0(); - num7 = _206B_206B_202C_202B_200F_202C_206C_202B_206C_202D_206E_200E_202D_206F_202A_200B_202B_200D_200F_202E_206B_206C_206E_200B_200C_206A_206C_206C_202B_200B_206E_202C_200B_202B_200D_206E_206D_200B_206B_206A_202E(clientState); - playerCharacter = _200E_206A_206E_206A_206F_206D_202D_200E_206A_200B_206F_200B_202E_202D_206E_206F_206D_202A_200E_200C_200C_200E_200D_206C_206E_206B_206F_202E_200D_200E_206A_202C_200B_202D_206F_206C_200B_200C_202C_202D_202E(objectTable); - num = ((playerCharacter != null) ? (-1371830112) : (-1371830086)); - break; - case 7: - num = ((_206B_206B_202C_202B_200F_202C_206C_202B_206C_202D_206E_200E_202D_206F_202A_200B_202B_200D_200F_202E_206B_206C_206E_200B_200C_206A_206C_206C_202B_200B_206E_202C_200B_202B_200D_206E_206D_200B_206B_206A_202E(clientState) != _206A_206D_202C_202C_202B_206E_202A_206D_200D_200B_206E_200C_200B_200F_206E_200E_200F_200B_200D_202C_200E_206E_202A_200B_200B_200B_206C_206D_206F_206D_200D_206B_206C_202A_200C_206C_200B_200C_206B_206D_202E(aetheryteData)[base.Task.To]) ? (-1371830098) : (-1371830108)); - break; - case 9: - num = ((!gameFunctions.Mount()) ? (-1371830105) : (-1371830103)); - break; - case 4: - { - num = (gameFunctions.HasStatusPreventingMount() ? (-1371830105) : (-1371830107)); - break; - } - IL_0145: - num10 = num8; - num = ((!(_206C_206A_206C_202B_200C_200F_200D_200D_202D_202E_200B_206F_206C_200D_200D_200E_202E_206B_206E_206A_202A_200D_206B_202E_202D_202C_202C_206C_206E_200B_206C_202D_206D_206D_200D_200D_206A_202C_206C_206F_202E(aetheryteData, _003C_003Ec__DisplayClass20_.playerPosition, num7, base.Task.From) < num10)) ? (-1371830088) : (-1371830100)); - break; } } + else + { + if (clientState.TerritoryType != aetheryteData.TerritoryIds[base.Task.To]) + { + throw new TaskException($"Aethernet ride not unlocked (from: {base.Task.From}, to: {base.Task.To})"); + } + logger.LogWarning("Aethernet ride not unlocked (from: {FromAetheryte}, to: {ToAetheryte}), skipping as we are already in the destination territory", base.Task.From, base.Task.To); + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private void StartMoving() { - _202E_206A_206A_206B_206B_202B_202B_202B_206B_202D_200E_202C_200F_202E_206F_200D_202B_200E_206C_202D_202D_200D_202B_202E_200F_200C_206F_202B_206D_200E_202A_202B_206C_200E_206F_202D_202E_206E_206C_202D_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1021163770), Array.Empty<object>()); + logger.LogDebug("Moving to aethernet shard"); SetPhase(EAethernetPhase.Moving); EAetheryteLocation eAetheryteLocation = base.Task.From; - int num = -280840246; - float value = default(float); - float num7 = default(float); - while (true) - { - int num2 = num; - int num3 = -280840247; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num8; - bool flag; - switch (num5 - (num6 + num6)) - { - case 3: - num = ((!_206D_200D_206F_206B_202D_200F_202B_202A_200E_202A_206B_202C_202D_200C_206B_206C_206B_200C_206A_202E_202A_206D_206D_206E_200B_200E_202A_202A_200E_206A_206C_206E_202E_202B_200B_206B_206F_202C_202B_202C_202E(base.Task.From)) ? (-280840254) : (-280840248)); - break; - case 6: - num = -280840253; - break; - case 8: - num8 = ((!_200D_200D_202D_200F_202B_200C_200B_206E_206D_206E_202A_202D_200F_206A_202E_206C_202A_202A_200C_202D_206A_202C_206C_202B_206C_200D_206F_206C_200F_202D_200B_200B_200D_202D_206D_206A_202B_206E_206E_202B_202E(base.Task.From)) ? 1 : 0); - goto IL_00e9; - case 7: - num8 = 0; - goto IL_00e9; - case 10: - num = ((!_200D_200D_202D_200F_202B_200C_200B_206E_206D_206E_202A_202D_200F_206A_202E_206C_202A_202A_200C_202D_206A_202C_206C_202B_206C_200D_206F_206C_200F_202D_200B_200B_200D_202D_206D_206A_202B_206E_206E_202B_202E(base.Task.From)) ? (-280840247) : (-280840243)); - break; - case 2: - num = -280840246; - break; - case 5: - value = num7; - num = ((!_202E_202E_202B_206A_200F_200D_202C_200B_206C_206B_206D_206E_200D_202C_200E_202B_200B_200B_206B_206F_202E_200B_202C_206D_200B_200B_200B_206B_200B_206E_202E_200E_202B_200B_200D_200D_206C_206D_202C_206E_202E(aetheryteData, base.Task.From)) ? (-280840242) : (-280840255)); - break; - case 0: - num7 = 6.9f; - num = -280840244; - break; - case 11: - num = ((eAetheryteLocation == EAetheryteLocation.UldahChamberOfRule) ? (-280840256) : (-280840241)); - break; - case 1: - num7 = 4.4f; - num = -280840244; - break; - case 4: - num7 = 10.9f; - num = -280840244; - break; - case 9: - { - num7 = 5f; - num = -280840244; - break; - } - IL_00e9: - flag = (byte)num8 != 0; - movementController.NavigateTo(EMovementType.Quest, (uint)base.Task.From, _202C_202C_202D_200C_202C_206C_200C_206F_202C_200C_206C_200C_202B_202A_200E_200C_202A_202C_202C_202E_200F_200B_206E_206E_206C_206C_202A_200C_206D_202D_202B_200F_206B_206E_202D_206B_206F_200D_202B_206E_202E(aetheryteData)[base.Task.From], fly: false, sprint: true, value, flag ? new float?(5f) : ((float?)null)); - return; - } - } + float num = (base.Task.From.IsFirmamentAetheryte() ? 4.4f : ((eAetheryteLocation != EAetheryteLocation.UldahChamberOfRule) ? ((!AetheryteConverter.IsLargeAetheryte(base.Task.From)) ? 6.9f : 10.9f) : 5f)); + float value = num; + bool flag = aetheryteData.IsGoldSaucerAetheryte(base.Task.From) && !AetheryteConverter.IsLargeAetheryte(base.Task.From); + movementController.NavigateTo(EMovementType.Quest, (uint)base.Task.From, aetheryteData.Locations[base.Task.From], fly: false, sprint: true, value, flag ? new float?(5f) : ((float?)null)); } - [MethodImpl(MethodImplOptions.NoInlining)] private void BeginTeleport() { - _206F_202A_200D_200D_202C_202D_202A_200D_202C_206E_200F_206B_202C_200D_206A_200D_206D_206B_200B_202E_206D_206A_206A_206C_202C_202E_200C_200E_202B_206C_206F_200E_200D_202E_202A_206E_200B_206D_202A_200F_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(668413368), new object[2] + logger.LogInformation("Initiating aethernet teleport to {Destination} via {From}", base.Task.To, base.Task.From); + if (condition[ConditionFlag.Mounted]) { - base.Task.To, - base.Task.From - }); - int num = ((!_202A_200F_202B_202E_202C_206C_206F_206D_206B_202E_202C_202B_206C_202C_200D_206A_200F_200F_202C_206E_206E_202D_206C_202A_200C_200B_200C_200C_206C_206F_202B_202E_200B_206C_202C_206E_202E_202B_202B_202E_202E(condition, ConditionFlag.Mounted)) ? 1024812396 : 1024812397); - while (true) + gameFunctions.Unmount(); + SetPhase(EAethernetPhase.Unmounting); + } + else { - int num2 = num; - int num3 = 1024812396; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_008d; - case 0: - SetPhase(EAethernetPhase.WaitingForTargetable); - return; - case 1: - gameFunctions.Unmount(); - SetPhase(EAethernetPhase.Unmounting); - return; - } - continue; - IL_008d: - num = 1024812397; + SetPhase(EAethernetPhase.WaitingForTargetable); } } private bool TryInteractWithShard() { IGameObject gameObject = gameFunctions.FindObjectByDataId((uint)base.Task.From, null, warnIfMissing: false); - int num = ((gameObject == null) ? 2057094986 : 2057094985); - while (true) + if (gameObject == null || !gameObject.IsTargetable) { - int num2 = num; - int num3 = 2057094987; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = 2057094985; - break; - case 2: - num = (_206D_200D_206E_200F_202D_206A_200B_200C_200D_200D_202D_206E_202B_206F_202C_202C_202C_200C_202A_206A_200F_202C_206E_200B_206F_206F_206F_200E_200F_200D_200B_206C_206A_206C_206A_200E_202D_202D_200B_200D_202E(gameObject) ? 2057094987 : 2057094986); - break; - case 1: - return false; - case 0: - { - aethernetTeleportService.RequestTeleport(base.Task.To); - gameFunctions.InteractWith(gameObject); - int interactionAttempts = _interactionAttempts; - num3 = 1; - num4 = interactionAttempts; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - _interactionAttempts = num7 + (num8 + num8); - SetPhase(EAethernetPhase.Interacting); - return true; - } - } + return false; } + aethernetTeleportService.RequestTeleport(base.Task.To); + gameFunctions.InteractWith(gameObject); + _interactionAttempts++; + SetPhase(EAethernetPhase.Interacting); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - int num = ((_200E_206E_200C_200F_206F_202A_206D_200C_202A_202D_206E_200D_206B_206E_200B_202E_200F_206B_202E_200C_206A_206F_202D_206D_206A_200D_200B_206D_200C_206E_202E_202B_206B_206C_202C_206D_206E_202C_200E_206A_202E() >= _continueAt) ? 1692805605 : 1692805604); - Vector3? vector = default(Vector3?); - while (true) + if (Environment.TickCount64 < _continueAt) { - int num2 = num; - int num3 = 1692805622; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - IPlayerCharacter playerCharacter; - switch (num5 - (num6 + num6)) + return ETaskResult.StillRunning; + } + switch (_phase) + { + case EAethernetPhase.Mounting: + if (condition[ConditionFlag.Mounted]) { - case 37: - return ETaskResult.StillRunning; - case 21: - num = ((aethernetTeleportService.State != AethernetTeleportService.ETeleportState.WaitingForAddon) ? 1692805588 : 1692805624); - break; - case 26: - return ETaskResult.StillRunning; - case 35: - goto IL_010a; - case 25: - SetPhase(EAethernetPhase.WaitingForArrival); - return ETaskResult.StillRunning; - case 30: - aethernetTeleportService.Reset(); - return ETaskResult.TaskComplete; - case 14: - num = ((_interactionAttempts >= 3) ? 1692805627 : 1692805611); - break; - case 1: - return ETaskResult.StillRunning; - case 6: - goto IL_016b; - case 15: - num = (movementController.IsPathRunning ? 1692805600 : 1692805609); - break; - case 24: - return ETaskResult.StillRunning; - case 36: - num = 1692805604; - break; - case 34: - num = ((aethernetTeleportService.State != AethernetTeleportService.ETeleportState.Failed) ? 1692805615 : 1692805620); - break; - case 4: - return ETaskResult.StillRunning; - case 16: - goto IL_0214; - case 3: - num = ((!(_206C_206A_206C_202B_200C_200F_200D_200D_202D_202E_200B_206F_206C_200D_200D_200E_202E_206B_206E_206A_202A_200D_206B_202E_202D_202C_202C_206C_206E_200B_206C_202D_206D_206D_200D_200D_206A_202C_206C_206F_202E(aetheryteData, vector.Value, _206B_206B_202C_202B_200F_202C_206C_202B_206C_202D_206E_200E_202D_206F_202A_200B_202B_200D_200F_202E_206B_206C_206E_200B_200C_206A_206C_206C_202B_200B_206E_202C_200B_202B_200D_206E_206D_200B_206B_206A_202E(clientState), base.Task.To) > 20f)) ? 1692805608 : 1692805590); - break; - case 28: StartMoving(); - num = 1692805623; - break; - case 29: - num = ((_200E_206E_200C_200F_206F_202A_206D_200C_202A_202D_206E_200D_206B_206E_200B_202E_200F_206B_202E_200C_206A_206F_202D_206D_206A_200D_200B_206D_200C_206E_202E_202B_206B_206C_202C_206D_206E_202C_200E_206A_202E() - _phaseStartedAt < 3000) ? 1692805627 : 1692805630); - break; - case 10: - num = ((_206B_206B_202C_202B_200F_202C_206C_202B_206C_202D_206E_200E_202D_206F_202A_200B_202B_200D_200F_202E_206B_206C_206E_200B_200C_206A_206C_206C_202B_200B_206E_202C_200B_202B_200D_206E_206D_200B_206B_206A_202E(clientState) == _206A_206D_202C_202C_202B_206E_202A_206D_200D_200B_206E_200C_200B_200F_206E_200E_200F_200B_200D_202C_200E_206E_202A_200B_200B_200B_206C_206D_206F_206D_200D_206B_206C_202A_200C_206C_200B_200C_206B_206D_202E(aetheryteData)[base.Task.To]) ? 1692805608 : 1692805614); - break; - case 7: - num = ((!_206A_202E_202A_206C_202D_202D_206A_206F_206E_200C_200F_200B_206C_200D_206C_202D_200D_206B_202E_202C_202E_202D_206B_206F_206D_200D_202B_206F_200E_202A_206D_202A_202E_200E_206C_206C_202A_206E_206F_206E_202E(aetheryteData, base.Task.To)) ? 1692805622 : 1692805626); - break; - case 17: - return ETaskResult.StillRunning; - case 0: - num = (_206D_200F_200C_202E_206C_202A_206D_206C_206D_200F_200D_206D_202B_200E_206A_200D_200C_200F_202B_206C_200E_200C_206D_202E_202C_202A_206B_200F_206B_200D_200D_206B_200D_200E_202C_202D_202B_200B_206B_206C_202E(aetheryteData, base.Task.To) ? 1692805621 : 1692805601); - break; - case 9: - SetPhase(EAethernetPhase.WaitingForTargetable); - num = 1692805607; - break; - case 11: - num = (movementController.IsPathfinding ? 1692805600 : 1692805625); - break; - case 31: - BeginTeleport(); - num = 1692805600; - break; - case 13: - return ETaskResult.StillRunning; - case 12: - num = ((!(_202C_200D_200F_206F_206D_206D_200C_200D_206D_200D_206A_200E_200F_206C_200D_202D_200D_202C_202B_200F_206F_206D_200C_200D_202B_200F_202C_200B_200E_206A_206E_206B_206F_200C_206A_200D_202B_206A_202D_200F_202E(aetheryteData, vector.Value, _206B_206B_202C_202B_200F_202C_206C_202B_206C_202D_206E_200E_202D_206F_202A_200B_202B_200D_200F_202E_206B_206C_206E_200B_200C_206A_206C_206C_202B_200B_206E_202C_200B_202B_200D_206E_206D_200B_206B_206A_202E(clientState), base.Task.To) > 5f)) ? 1692805608 : 1692805591); - break; - case 20: - num = 1692805618; - break; - case 22: - return ETaskResult.StillRunning; - case 18: - return ETaskResult.StillRunning; - case 27: - goto IL_03ea; - case 8: + } + return ETaskResult.StillRunning; + case EAethernetPhase.Moving: + if (!movementController.HasBeenMovingForAtLeast(2000)) + { + return ETaskResult.StillRunning; + } + if (!movementController.IsPathfinding && !movementController.IsPathRunning) + { + BeginTeleport(); + } + return ETaskResult.StillRunning; + case EAethernetPhase.Unmounting: + if (!condition[ConditionFlag.Mounted]) { - ILogger<AethernetRideExecutor> logger = logger; - string text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1660386919); - object[] array = new object[2]; - int interactionAttempts = _interactionAttempts; - num3 = 1; - num4 = interactionAttempts; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - array[0] = num7 + (num8 + num8); - array[1] = 3; - _206F_206D_200D_200C_200F_200F_202A_206C_206D_206E_200E_202E_206C_206A_206E_206F_206F_200F_200B_206E_200F_200C_200F_206E_206E_202C_202E_200E_200E_202A_202A_200D_206A_202E_202E_202C_206A_200C_206F_202E_202E((ILogger)logger, text, array); - aethernetTeleportService.Reset(); SetPhase(EAethernetPhase.WaitingForTargetable); - num = 1692805627; - break; } - case 32: - return ETaskResult.StillRunning; - case 5: - goto IL_0474; - case 19: - switch (_phase) - { - case EAethernetPhase.Interacting: - break; - case EAethernetPhase.Unmounting: - goto IL_010a; - case EAethernetPhase.WaitingForArrival: - goto IL_016b; - case EAethernetPhase.WaitingForTargetable: - goto IL_0214; - case EAethernetPhase.Mounting: - goto IL_03ea; - case EAethernetPhase.Moving: - goto IL_0474; - default: - goto IL_04c6; - } - goto case 21; - case 23: - num = ((!_202E_202E_202B_206A_200F_200D_202C_200B_206C_206B_206D_206E_200D_202C_200E_202B_200B_200B_206B_206F_202E_200B_202C_206D_200B_200B_200B_206B_200B_206E_202E_200E_202B_200B_200D_200D_206C_206D_202C_206E_202E(aetheryteData, base.Task.To)) ? 1692805628 : 1692805621); - break; - case 33: - return ETaskResult.StillRunning; - case 2: + return ETaskResult.StillRunning; + case EAethernetPhase.WaitingForTargetable: + TryInteractWithShard(); + return ETaskResult.StillRunning; + case EAethernetPhase.Interacting: + if (aethernetTeleportService.State == AethernetTeleportService.ETeleportState.WaitingForAddon) + { + if (_interactionAttempts < 3 && Environment.TickCount64 - _phaseStartedAt >= 3000) { + logger.LogWarning("Aethernet menu did not open; retrying interaction ({Attempt}/{Limit})", _interactionAttempts + 1, 3); aethernetTeleportService.Reset(); - throw new TaskException(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1110721623)); + SetPhase(EAethernetPhase.WaitingForTargetable); } - IL_04c6: - num = 1692805602; - break; - IL_0474: - num = (movementController.HasBeenMovingForAtLeast(2000) ? 1692805629 : 1692805587); - break; - IL_03ea: - num = ((!_202A_200F_202B_202E_202C_206C_206F_206D_206B_202E_202C_202B_206C_202C_200D_206A_200F_200F_202C_206E_206E_202D_206C_202A_200C_200B_200C_200C_206C_206F_202B_202E_200B_206C_202C_206E_202E_202B_202B_202E_202E(condition, ConditionFlag.Mounted)) ? 1692805623 : 1692805610); - break; - IL_010a: - num = (_202A_200F_202B_202E_202C_206C_206F_206D_206B_202E_202C_202B_206C_202C_200D_206A_200F_200F_202C_206E_206E_202D_206C_202A_200C_200B_200C_200C_206C_206F_202B_202E_200B_206C_202C_206E_202E_202B_202B_202E_202E(condition, ConditionFlag.Mounted) ? 1692805607 : 1692805631); - break; - IL_0214: - TryInteractWithShard(); return ETaskResult.StillRunning; - IL_016b: - playerCharacter = _200E_206A_206E_206A_206F_206D_202D_200E_206A_200B_206F_200B_202E_202D_206E_206F_206D_202A_200E_200C_200C_200E_200D_206C_206E_206B_206F_202E_200D_200E_206A_202C_200B_202D_206F_206C_200B_200C_202C_202D_202E(objectTable); - vector = ((playerCharacter != null) ? new Vector3?(_202C_200B_202C_206B_200E_200C_200E_200C_202E_200C_202D_202A_206C_202A_202D_202D_200D_200E_200F_202B_206E_202D_206E_200F_206D_206E_206B_200C_206A_202A_202D_202E_200D_206A_206A_206E_200E_206D_206D_206B_202E((IGameObject)playerCharacter)) : ((Vector3?)null)); - num = (vector.HasValue ? 1692805617 : 1692805612); - break; } + if (aethernetTeleportService.State == AethernetTeleportService.ETeleportState.Failed) + { + aethernetTeleportService.Reset(); + throw new TaskException("Aethernet teleport failed"); + } + SetPhase(EAethernetPhase.WaitingForArrival); + return ETaskResult.StillRunning; + case EAethernetPhase.WaitingForArrival: + { + Vector3? vector = objectTable.LocalPlayer?.Position; + if (!vector.HasValue) + { + return ETaskResult.StillRunning; + } + if (aetheryteData.IsAirshipLanding(base.Task.To)) + { + if (aetheryteData.CalculateAirshipLandingDistance(vector.Value, clientState.TerritoryType, base.Task.To) > 5f) + { + return ETaskResult.StillRunning; + } + } + else if (aetheryteData.IsCityAetheryte(base.Task.To) || aetheryteData.IsGoldSaucerAetheryte(base.Task.To)) + { + if (aetheryteData.CalculateDistance(vector.Value, clientState.TerritoryType, base.Task.To) > 20f) + { + return ETaskResult.StillRunning; + } + } + else if (clientState.TerritoryType != aetheryteData.TerritoryIds[base.Task.To]) + { + return ETaskResult.StillRunning; + } + aethernetTeleportService.Reset(); + return ETaskResult.TaskComplete; + } + default: + return ETaskResult.StillRunning; } } @@ -640,95 +258,5 @@ internal static class AethernetRide { return true; } - - static long _200E_206E_200C_200F_206F_202A_206D_200C_202A_202D_206E_200D_206B_206E_200B_202E_200F_206B_202E_200C_206A_206F_202D_206D_206A_200D_200B_206D_200C_206E_202E_202B_206B_206C_202C_206D_206E_202C_200E_206A_202E() - { - return Environment.TickCount64; - } - - static uint _206B_206B_202C_202B_200F_202C_206C_202B_206C_202D_206E_200E_202D_206F_202A_200B_202B_200D_200F_202E_206B_206C_206E_200B_200C_206A_206C_206C_202B_200B_206E_202C_200B_202B_200D_206E_206D_200B_206B_206A_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static IPlayerCharacter _200E_206A_206E_206A_206F_206D_202D_200E_206A_200B_206F_200B_202E_202D_206E_206F_206D_202A_200E_200C_200C_200E_200D_206C_206E_206B_206F_202E_200D_200E_206A_202C_200B_202D_206F_206C_200B_200C_202C_202D_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static Vector3 _202C_200B_202C_206B_200E_200C_200E_200C_202E_200C_202D_202A_206C_202A_202D_202D_200D_200E_200F_202B_206E_202D_206E_200F_206D_206E_206B_200C_206A_202A_202D_202E_200D_206A_206A_206E_200E_206D_206D_206B_202E(IGameObject P_0) - { - return P_0.Position; - } - - static float _206C_206A_206C_202B_200C_200F_200D_200D_202D_202E_200B_206F_206C_200D_200D_200E_202E_206B_206E_206A_202A_200D_206B_202E_202D_202C_202C_206C_206E_200B_206C_202D_206D_206D_200D_200D_206A_202C_206C_206F_202E(AetheryteData P_0, Vector3 P_1, uint P_2, EAetheryteLocation P_3) - { - return P_0.CalculateDistance(P_1, P_2, P_3); - } - - static bool _206D_200D_206F_206B_202D_200F_202B_202A_200E_202A_206B_202C_202D_200C_206B_206C_206B_200C_206A_202E_202A_206D_206D_206E_200B_200E_202A_202A_200E_206A_206C_206E_202E_202B_200B_206B_206F_202C_202B_202C_202E(EAetheryteLocation P_0) - { - return P_0.IsFirmamentAetheryte(); - } - - static bool _200D_200D_202D_200F_202B_200C_200B_206E_206D_206E_202A_202D_200F_206A_202E_206C_202A_202A_200C_202D_206A_202C_206C_202B_206C_200D_206F_206C_200F_202D_200B_200B_200D_202D_206D_206A_202B_206E_206E_202B_202E(EAetheryteLocation P_0) - { - return AetheryteConverter.IsLargeAetheryte(P_0); - } - - static void _202E_206A_206A_206B_206B_202B_202B_202B_206B_202D_200E_202C_200F_202E_206F_200D_202B_200E_206C_202D_202D_200D_202B_202E_200F_200C_206F_202B_206D_200E_202A_202B_206C_200E_206F_202D_202E_206E_206C_202D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static ReadOnlyDictionary<EAetheryteLocation, ushort> _206A_206D_202C_202C_202B_206E_202A_206D_200D_200B_206E_200C_200B_200F_206E_200E_200F_200B_200D_202C_200E_206E_202A_200B_200B_200B_206C_206D_206F_206D_200D_206B_206C_202A_200C_206C_200B_200C_206B_206D_202E(AetheryteData P_0) - { - return P_0.TerritoryIds; - } - - static void _206F_206D_200D_200C_200F_200F_202A_206C_206D_206E_200E_202E_206C_206A_206E_206F_206F_200F_200B_206E_200F_200C_200F_206E_206E_202C_202E_200E_200E_202A_202A_200D_206A_202E_202E_202C_206A_200C_206F_202E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static bool _202E_202E_202B_206A_200F_200D_202C_200B_206C_206B_206D_206E_200D_202C_200E_202B_200B_200B_206B_206F_202E_200B_202C_206D_200B_200B_200B_206B_200B_206E_202E_200E_202B_200B_200D_200D_206C_206D_202C_206E_202E(AetheryteData P_0, EAetheryteLocation P_1) - { - return P_0.IsGoldSaucerAetheryte(P_1); - } - - static ReadOnlyDictionary<EAetheryteLocation, Vector3> _202C_202C_202D_200C_202C_206C_200C_206F_202C_200C_206C_200C_202B_202A_200E_200C_202A_202C_202C_202E_200F_200B_206E_206E_206C_206C_202A_200C_206D_202D_202B_200F_206B_206E_202D_206B_206F_200D_202B_206E_202E(AetheryteData P_0) - { - return P_0.Locations; - } - - static void _206F_202A_200D_200D_202C_202D_202A_200D_202C_206E_200F_206B_202C_200D_206A_200D_206D_206B_200B_202E_206D_206A_206A_206C_202C_202E_200C_200E_202B_206C_206F_200E_200D_202E_202A_206E_200B_206D_202A_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static bool _202A_200F_202B_202E_202C_206C_206F_206D_206B_202E_202C_202B_206C_202C_200D_206A_200F_200F_202C_206E_206E_202D_206C_202A_200C_200B_200C_200C_206C_206F_202B_202E_200B_206C_202C_206E_202E_202B_202B_202E_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static bool _206D_200D_206E_200F_202D_206A_200B_200C_200D_200D_202D_206E_202B_206F_202C_202C_202C_200C_202A_206A_200F_202C_206E_200B_206F_206F_206F_200E_200F_200D_200B_206C_206A_206C_206A_200E_202D_202D_200B_200D_202E(IGameObject P_0) - { - return P_0.IsTargetable; - } - - static bool _206A_202E_202A_206C_202D_202D_206A_206F_206E_200C_200F_200B_206C_200D_206C_202D_200D_206B_202E_202C_202E_202D_206B_206F_206D_200D_202B_206F_200E_202A_206D_202A_202E_200E_206C_206C_202A_206E_206F_206E_202E(AetheryteData P_0, EAetheryteLocation P_1) - { - return P_0.IsAirshipLanding(P_1); - } - - static float _202C_200D_200F_206F_206D_206D_200C_200D_206D_200D_206A_200E_200F_206C_200D_202D_200D_202C_202B_200F_206F_206D_200C_200D_202B_200F_202C_200B_200E_206A_206E_206B_206F_200C_206A_200D_202B_206A_202D_200F_202E(AetheryteData P_0, Vector3 P_1, uint P_2, EAetheryteLocation P_3) - { - return P_0.CalculateAirshipLandingDistance(P_1, P_2, P_3); - } - - static bool _206D_200F_200C_202E_206C_202A_206D_206C_206D_200F_200D_206D_202B_200E_206A_200D_200C_200F_202B_206C_200E_200C_206D_202E_202C_202A_206B_200F_206B_200D_200D_206B_200D_200E_202C_202D_202B_200B_206B_206C_202E(AetheryteData P_0, EAetheryteLocation P_1) - { - return P_0.IsCityAetheryte(P_1); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Shared/AetheryteTeleport.cs b/Questionable/Questionable.Controller.Steps.Shared/AetheryteTeleport.cs index 507d6d9..cf5e763 100644 --- a/Questionable/Questionable.Controller.Steps.Shared/AetheryteTeleport.cs +++ b/Questionable/Questionable.Controller.Steps.Shared/AetheryteTeleport.cs @@ -1,14 +1,10 @@ using System; using System.Collections.Generic; -using System.Collections.ObjectModel; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using System.Text; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Movement; @@ -22,95 +18,9 @@ internal static class AetheryteTeleport { internal sealed record Task(EAetheryteLocation TargetAetheryte, ushort ExpectedTerritoryId) : ISkippableTask, ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202E_202E_206D_200B_200C_200E_206A_202B_206D_200E_206B_202A_202D_206C_206B_200F_200B_202E_202C_202D_202B_206B_200F_206F_202A_202D_206B_202D_200C_200D_206B_202C_206D_200D_200C_202B_200D_200E_202E_206D_202E(typeof(Task).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(14, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-749085387)); - defaultInterpolatedStringHandler.AppendFormatted(TargetAetheryte); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202E_200C_206B_202D_202C_200D_206C_202D_200E_206F_202C_206E_200C_200B_206E_206F_200B_202D_206F_202E_200F_206E_206F_206C_200E_202D_202D_206D_202D_202B_206D_200E_206C_206A_202E_202C_206D_206D_206C_202B_202E(); - _206B_202E_202E_206E_206A_200C_206D_200E_202C_200F_200D_206A_206A_200C_200E_200B_200B_206F_206F_202E_206B_206A_202E_206C_202E_202E_206C_206C_206E_200E_202E_202C_200C_202B_206A_206E_202E_206A_206A_206A_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1084557892)); - _206B_202E_202E_206E_206A_200C_206D_200E_202C_200F_200D_206A_206A_200C_200E_200B_200B_206F_206F_202E_206B_206A_202E_206C_202E_202E_206C_206C_206E_200E_202E_202C_200C_202B_206A_206E_202E_206A_206A_206A_202E(builder, TargetAetheryte.ToString()); - _206B_202E_202E_206E_206A_200C_206D_200E_202C_200F_200D_206A_206A_200C_200E_200B_200B_206F_206F_202E_206B_206A_202E_206C_202E_202E_206C_206C_206E_200E_202E_202C_200C_202B_206A_206E_202E_206A_206A_206A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1768197240)); - _206B_202E_202E_206E_206A_200C_206D_200E_202C_200F_200D_206A_206A_200C_200E_200B_200B_206F_206F_202E_206B_206A_202E_206C_202E_202E_206C_206C_206E_200E_202E_202C_200C_202B_206A_206E_202E_206A_206A_206A_202E(builder, ExpectedTerritoryId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? 712329357 : 712329359); - while (true) - { - int num2 = num; - int num3 = 712329358; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - return false; - case 2: - num = ((!EqualityComparer<EAetheryteLocation>.Default.Equals(TargetAetheryte, other.TargetAetheryte)) ? 712329352 : 712329355); - break; - case 3: - return true; - case 1: - num = (((object)other == null) ? 712329352 : 712329358); - break; - case 0: - num = ((!_200C_206F_206D_202A_202D_206F_206E_202E_202E_202D_202D_202A_202C_202C_202E_202E_200E_200E_200D_200B_202C_206F_200B_206A_206B_202A_200E_202A_202E_202D_200E_206A_202B_206C_206F_206A_206E_200C_202E_202D_202E(EqualityContract, other.EqualityContract)) ? 712329352 : 712329356); - break; - case 4: - num = 712329359; - break; - case 5: - return EqualityComparer<ushort>.Default.Equals(ExpectedTerritoryId, other.ExpectedTerritoryId); - } - } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202E_202E_206D_200B_200C_200E_206A_202B_206D_200E_206B_202A_202D_206C_206B_200F_200B_202E_202C_202D_202B_206B_200F_206F_202A_202D_206B_202D_200C_200D_206B_202C_206D_200D_200C_202B_200D_200E_202E_206D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _202E_200C_206B_202D_202C_200D_206C_202D_200E_206F_202C_206E_200C_200B_206E_206F_200B_202D_206F_202E_200F_206E_206F_206C_200E_202D_202D_206D_202D_202B_206D_200E_206C_206A_202E_202C_206D_206D_206C_202B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206B_202E_202E_206E_206A_200C_206D_200E_202C_200F_200D_206A_206A_200C_200E_200B_200B_206F_206F_202E_206B_206A_202E_206C_202E_202E_206C_206C_206E_200E_202E_202C_200C_202B_206A_206E_202E_206A_206A_206A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _200C_206F_206D_202A_202D_206F_206E_202E_202E_202D_202D_202A_202C_202C_202E_202E_200E_200E_200D_200B_202C_206F_200B_206A_206B_202A_200E_202A_202E_202D_200E_206A_202B_206C_206F_206A_206E_200C_202E_202D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"UseAetheryte({TargetAetheryte})"; } } @@ -129,305 +39,94 @@ internal static class AetheryteTeleport return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - int num = (_teleported ? 1711369376 : 1711369377); - IPlayerCharacter playerCharacter = default(IPlayerCharacter); - while (true) + if (!_teleported) { - int num2 = num; - int num3 = 1711369383; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (Environment.TickCount64 < _retryTeleportAt) { - case 9: return ETaskResult.StillRunning; - case 7: - num = ((_202E_200E_206B_200B_200F_202E_206E_206B_202B_206E_202B_206D_200D_206F_206E_200B_202D_206A_202A_200E_206E_206B_206A_206B_200B_200D_202C_200C_206F_206E_200E_206C_200B_200B_206E_200E_206B_202C_200B_200E_202E(clientState) != base.Task.ExpectedTerritoryId) ? 1711369378 : 1711369382); - break; - case 1: - playerCharacter = _200E_202E_200D_206B_206C_206D_202D_200D_200E_200C_202B_200E_206B_202C_202B_206F_200F_206A_200E_200B_206A_202D_202A_200E_200C_200E_202C_202E_202D_206A_206F_202E_202B_202E_206F_200C_202C_200F_200B_202B_202E(objectTable); - num = ((playerCharacter == null) ? 1711369386 : 1711369379); - break; - case 0: - return ETaskResult.StillRunning; - case 3: - _teleported = DoTeleport(); - return ETaskResult.StillRunning; - case 10: - ResetProgressTimer(); - num = 1711369390; - break; - case 11: - num = ((!base.ProgressContext.WasSuccessful()) ? 1711369390 : 1711369389); - break; - case 2: - num = 1711369377; - break; - case 12: - _206A_206E_206D_200B_200E_206F_202D_202C_200F_206A_200F_200F_200F_200E_202A_200C_202E_200E_206E_202E_202E_206E_200E_202E_200F_206F_206F_200D_200B_206D_206E_206F_200C_206F_200C_206B_200D_200B_200E_206F_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(460204205), new object[1] { base.Task.TargetAetheryte }); - return ETaskResult.StillRunning; - case 8: - num = ((!base.ProgressContext.WasInterrupted()) ? 1711369388 : 1711369387); - break; - case 5: - num = ((base.ProgressContext == null) ? 1711369390 : 1711369391); - break; - case 4: - num = ((!(_202E_200B_206C_206D_206A_206A_200D_200B_206E_202A_202A_206C_200E_202B_202A_202D_202E_206F_202C_206A_200C_200E_202B_206F_202C_202A_202A_206E_200F_200C_202D_202E_200B_206B_206D_206D_200D_200E_200B_202D_202E(aetheryteData, _206F_206C_202C_200C_200B_202D_202A_200C_206F_206B_206C_200F_206B_206A_206D_200C_202D_206F_206B_206E_202E_200C_206F_206F_200D_200D_202C_202D_206A_202B_202D_206A_206F_200F_206D_206B_202E_206E_200D_202E((IGameObject)playerCharacter), _202E_200E_206B_200B_200F_202E_206E_206B_202B_206E_202B_206D_200D_206F_206E_200B_202D_206A_202A_200E_206E_206B_206A_206B_200B_200D_202C_200C_206F_206E_200E_206C_200B_200B_206E_200E_206B_202C_200B_200E_202E(clientState), base.Task.TargetAetheryte) <= 50f)) ? 1711369378 : 1711369386); - break; - case 6: - num = ((_206A_202C_202B_206A_202C_202B_206B_202C_206F_206F_202B_206F_202D_206C_202D_202D_200C_200B_202B_206B_202E_202D_200F_202B_200E_206A_206A_206F_202B_200B_206B_202E_202D_200C_206C_200B_206A_206F_200D_202D_202E() >= _retryTeleportAt) ? 1711369380 : 1711369383); - break; - case 13: + } + _teleported = DoTeleport(); + return ETaskResult.StillRunning; + } + if (clientState.TerritoryType == base.Task.ExpectedTerritoryId) + { + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + if (localPlayer == null || aetheryteData.CalculateDistance(localPlayer.Position, clientState.TerritoryType, base.Task.TargetAetheryte) <= 50f) + { ResetProgressTimer(); return ETaskResult.TaskComplete; } } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool DoTeleport() - { - int num = (aetheryteFunctions.CanTeleport(base.Task.TargetAetheryte) ? (-1816428016) : (-1816428003)); - while (true) + if (base.ProgressContext != null) { - int num2 = num; - int num3 = -1816428007; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (base.ProgressContext.WasInterrupted()) { - case 3: - { - IChatGui chatGui = chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(27, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(599001678)); - defaultInterpolatedStringHandler.AppendFormatted(base.Task.TargetAetheryte); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1014635520)); - _202B_206D_206A_200C_202B_206E_206D_202A_200C_200E_200B_202C_202A_202C_202C_206F_206B_200B_200F_206B_200F_206A_202E_206F_206C_206B_206A_206B_206F_202A_200B_200C_202D_206A_206C_200C_200C_202C_202A_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - throw new TaskException(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1295664094)); + logger.LogDebug("Teleport to {Aetheryte} was interrupted", base.Task.TargetAetheryte); + return ETaskResult.StillRunning; } - case 10: - _206B_200D_202E_202D_202A_202D_202B_206E_200D_202E_206B_206E_200C_206F_206E_202A_206C_206A_200C_200C_200C_200B_206E_200B_206E_206A_202E_200F_206B_200B_206E_202A_206A_206F_200E_202E_206F_206E_202A_202A_202E(chatGui, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1266800824), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - throw new TaskException(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1604023920)); - case 4: - num = (aetheryteFunctions.IsTeleportUnlocked() ? (-1816428008) : (-1816428002)); - break; - case 6: - num = -1816428003; - break; - case 8: - _retryTeleportAt = _206A_202C_202B_206A_202C_202B_206B_202C_206F_206F_202B_206F_202D_206C_202D_202D_200C_200B_202B_206B_202E_202D_200F_202B_200E_206A_206A_206F_202B_200B_206B_202E_202D_200C_206C_200B_206A_206F_200D_202D_202E() + 1000; - _200C_200B_202D_200E_200B_200E_202C_206D_202C_206D_200F_200D_200F_202E_202D_202D_200C_206B_200B_200B_202B_206C_202B_206E_202A_206E_200C_202B_206B_202E_206E_206F_202E_206E_200C_200E_202D_200E_206B_206A_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-424744046), new object[2] { _teleportAttempts, 3 }); - return false; - case 1: - _retryTeleportAt = _206A_202C_202B_206A_202C_202B_206B_202C_206F_206F_202B_206F_202D_206C_202D_202D_200C_200B_202B_206B_202E_202D_200F_202B_200E_206A_206A_206F_202B_200B_206B_202E_202D_200C_206C_200B_206A_206F_200D_202D_202E() + 1000; - _206F_202C_206F_202A_200D_206E_206D_206B_206C_206F_200C_206D_200C_206E_200B_200D_206F_206F_202C_202A_202C_200B_200D_202D_206F_206A_206D_200D_202B_206B_206E_206E_202D_206F_202E_200C_202B_202E_200F_206D_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-501538903), Array.Empty<object>()); - return false; - case 5: - _206E_202D_206F_202B_206B_200F_200D_202C_202D_200D_202C_202A_202C_206C_202A_206B_206E_200E_206C_202A_202E_206C_200B_206A_206D_200C_200F_202D_200D_206A_206D_200B_202E_200C_206D_206E_200B_202C_202C_200F_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1089359613), Array.Empty<object>()); - return true; - case 0: - base.ProgressContext = InteractionProgressContext.FromActionUseOrDefault(() => aetheryteFunctions.TeleportAetheryte(base.Task.TargetAetheryte)); - num = ((base.ProgressContext == null) ? (-1816428005) : (-1816428004)); - break; - case 7: - throw new TaskException(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(451905220)); - case 2: + if (base.ProgressContext.WasSuccessful()) { - int teleportAttempts = _teleportAttempts; - num3 = 1; - num4 = teleportAttempts; - num = (((_teleportAttempts = (num4 | num3) + (num4 & num3)) >= 3) ? (-1816428013) : (-1816428015)); - break; - } - case 9: - num = (aetheryteFunctions.IsAetheryteUnlocked(base.Task.TargetAetheryte) ? (-1816428007) : (-1816428006)); - break; + ResetProgressTimer(); } } + return ETaskResult.StillRunning; + } + + private bool DoTeleport() + { + if (!aetheryteFunctions.CanTeleport(base.Task.TargetAetheryte)) + { + if (!aetheryteFunctions.IsTeleportUnlocked()) + { + throw new TaskException("Teleport is not unlocked, attune to any aetheryte first."); + } + _retryTeleportAt = Environment.TickCount64 + 1000; + logger.LogTrace("Waiting for teleport cooldown..."); + return false; + } + if (!aetheryteFunctions.IsAetheryteUnlocked(base.Task.TargetAetheryte)) + { + chatGui.PrintError($"Aetheryte {base.Task.TargetAetheryte} is not unlocked.", "Questionable", 576); + throw new TaskException("Aetheryte is not unlocked"); + } + base.ProgressContext = InteractionProgressContext.FromActionUseOrDefault(() => aetheryteFunctions.TeleportAetheryte(base.Task.TargetAetheryte)); + if (base.ProgressContext != null) + { + logger.LogInformation("Travelling via aetheryte..."); + return true; + } + if (++_teleportAttempts < 3) + { + _retryTeleportAt = Environment.TickCount64 + 1000; + logger.LogWarning("Teleport did not start (attempt {Attempt}/{Max}), retrying...", _teleportAttempts, 3); + return false; + } + chatGui.Print("Unable to teleport to aetheryte.", "Questionable", 576); + throw new TaskException("Unable to teleport to aetheryte"); } public override bool WasInterrupted() { - int num = (_200E_202C_206A_202E_202C_200E_206C_206A_200B_200D_200D_202B_202C_200C_200F_200C_206A_206D_200C_200F_206C_206A_200E_206B_202A_206B_206C_206E_206D_202A_206E_206E_206C_202C_206B_200C_200D_206D_200C_202B_202E(condition, ConditionFlag.InCombat) ? (-1702092527) : (-1702092528)); - while (true) + if (!condition[ConditionFlag.InCombat]) { - int num2 = num; - int num3 = -1702092527; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_004d; - case 1: - return base.WasInterrupted(); - case 0: - return true; - } - continue; - IL_004d: - num = -1702092528; + return base.WasInterrupted(); } + return true; } public override bool ShouldInterruptOnDamage() { return true; } - - static long _206A_202C_202B_206A_202C_202B_206B_202C_206F_206F_202B_206F_202D_206C_202D_202D_200C_200B_202B_206B_202E_202D_200F_202B_200E_206A_206A_206F_202B_200B_206B_202E_202D_200C_206C_200B_206A_206F_200D_202D_202E() - { - return Environment.TickCount64; - } - - static uint _202E_200E_206B_200B_200F_202E_206E_206B_202B_206E_202B_206D_200D_206F_206E_200B_202D_206A_202A_200E_206E_206B_206A_206B_200B_200D_202C_200C_206F_206E_200E_206C_200B_200B_206E_200E_206B_202C_200B_200E_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static IPlayerCharacter _200E_202E_200D_206B_206C_206D_202D_200D_200E_200C_202B_200E_206B_202C_202B_206F_200F_206A_200E_200B_206A_202D_202A_200E_200C_200E_202C_202E_202D_206A_206F_202E_202B_202E_206F_200C_202C_200F_200B_202B_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static Vector3 _206F_206C_202C_200C_200B_202D_202A_200C_206F_206B_206C_200F_206B_206A_206D_200C_202D_206F_206B_206E_202E_200C_206F_206F_200D_200D_202C_202D_206A_202B_202D_206A_206F_200F_206D_206B_202E_206E_200D_202E(IGameObject P_0) - { - return P_0.Position; - } - - static float _202E_200B_206C_206D_206A_206A_200D_200B_206E_202A_202A_206C_200E_202B_202A_202D_202E_206F_202C_206A_200C_200E_202B_206F_202C_202A_202A_206E_200F_200C_202D_202E_200B_206B_206D_206D_200D_200E_200B_202D_202E(AetheryteData P_0, Vector3 P_1, uint P_2, EAetheryteLocation P_3) - { - return P_0.CalculateDistance(P_1, P_2, P_3); - } - - static void _206A_206E_206D_200B_200E_206F_202D_202C_200F_206A_200F_200F_200F_200E_202A_200C_202E_200E_206E_202E_202E_206E_200E_202E_200F_206F_206F_200D_200B_206D_206E_206F_200C_206F_200C_206B_200D_200B_200E_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _206F_202C_206F_202A_200D_206E_206D_206B_206C_206F_200C_206D_200C_206E_200B_200D_206F_206F_202C_202A_202C_200B_200D_202D_206F_206A_206D_200D_202B_206B_206E_206E_202D_206F_202E_200C_202B_202E_200F_206D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogTrace(P_1, P_2); - } - - static void _202B_206D_206A_200C_202B_206E_206D_202A_200C_200E_200B_202C_202A_202C_202C_206F_206B_200B_200F_206B_200F_206A_202E_206F_206C_206B_206A_206B_206F_202A_200B_200C_202D_206A_206C_200C_200C_202C_202A_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } - - static void _206E_202D_206F_202B_206B_200F_200D_202C_202D_200D_202C_202A_202C_206C_202A_206B_206E_200E_206C_202A_202E_206C_200B_206A_206D_200C_200F_202D_200D_206A_206D_200B_202E_200C_206D_206E_200B_202C_202C_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static void _200C_200B_202D_200E_200B_200E_202C_206D_202C_206D_200F_200D_200F_202E_202D_202D_200C_206B_200B_200B_202B_206C_202B_206E_202A_206E_200C_202B_206B_202E_206E_206F_202E_206E_200C_200E_202D_200E_206B_206A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static void _206B_200D_202E_202D_202A_202D_202B_206E_200D_202E_206B_206E_200C_206F_206E_202A_206C_206A_200C_200C_200C_200B_206E_200B_206E_206A_202E_200F_206B_200B_206E_202A_206A_206F_200E_202E_206F_206E_202A_202A_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); - } - - static bool _200E_202C_206A_202E_202C_200E_206C_206A_200B_200D_200D_202B_202C_200C_200F_200C_206A_206D_200C_200F_206C_206A_200E_206B_202A_206B_206C_206E_206D_202A_206E_206E_206C_202C_206B_200C_200D_206D_200C_202B_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } } internal sealed record MoveAwayFromAetheryte(EAetheryteLocation TargetAetheryte) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202B_206F_206F_200D_200E_200E_206E_200B_200B_200F_202B_202B_206D_202E_206A_206F_200D_200E_202A_206C_206C_200C_202A_206D_200F_206E_206B_200C_200F_202B_202D_206D_202A_202B_200C_200E_200C_200B_206F_202E_202E(typeof(MoveAwayFromAetheryte).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(10, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(578312142)); - defaultInterpolatedStringHandler.AppendFormatted(TargetAetheryte); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202D_206B_202D_200B_202C_206F_206D_206B_202B_206B_206A_200F_200D_206D_202B_202D_202C_206A_206E_202E_202C_200D_206A_206A_200F_206E_206F_206E_202C_202C_206F_202A_200D_206D_200D_202A_202E_202A_206D_202E(); - _206F_200D_202B_202B_200E_200C_202D_200E_200E_206F_200D_206E_202C_206A_200B_206C_206C_200B_200F_202C_202D_202E_202C_206D_206F_206F_202D_202A_206D_202E_206F_202D_206F_202C_206B_202C_206D_200B_206B_200C_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1402978722)); - _206F_200D_202B_202B_200E_200C_202D_200E_200E_206F_200D_206E_202C_206A_200B_206C_206C_200B_200F_202C_202D_202E_202C_206D_206F_206F_202D_202A_206D_202E_206F_202D_206F_202C_206B_202C_206D_200B_206B_200C_202E(builder, TargetAetheryte.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(MoveAwayFromAetheryte? other) - { - int num = (((object)this == other) ? 278211642 : 278211645); - while (true) - { - int num2 = num; - int num3 = 278211641; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 278211645; - break; - case 5: - return false; - case 4: - num = (((object)other == null) ? 278211644 : 278211640); - break; - case 3: - return true; - case 2: - return EqualityComparer<EAetheryteLocation>.Default.Equals(TargetAetheryte, other.TargetAetheryte); - case 1: - num = ((!_200E_206C_202E_200E_200F_202B_202E_200F_202D_200B_206A_200C_206B_206B_206C_200F_200F_206A_200E_202D_200D_200B_200E_202C_206C_206A_200E_206B_200F_202D_200D_206C_200F_206D_200B_200D_200C_202D_200F_206F_202E(EqualityContract, other.EqualityContract)) ? 278211644 : 278211643); - break; - } - } - } - - bool IEquatable<MoveAwayFromAetheryte>.Equals(MoveAwayFromAetheryte? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202B_206F_206F_200D_200E_200E_206E_200B_200B_200F_202B_202B_206D_202E_206A_206F_200D_200E_202A_206C_206C_200C_202A_206D_200F_206E_206B_200C_200F_202B_202D_206D_202A_202B_200C_200E_200C_200B_206F_202E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _202D_206B_202D_200B_202C_206F_206D_206B_202B_206B_206A_200F_200D_206D_202B_202D_202C_206A_206E_202E_202C_200D_206A_206A_200F_206E_206F_206E_202C_202C_206F_202A_200D_206D_200D_202A_202E_202A_206D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206F_200D_202B_202B_200E_200C_202D_200E_200E_206F_200D_206E_202C_206A_200B_206C_206C_200B_200F_202C_202D_202E_202C_206D_206F_206F_202D_202A_206D_202E_206F_202D_206F_202C_206B_202C_206D_200B_206B_200C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _200E_206C_202E_200E_200F_202B_202E_200F_202D_200B_206A_200C_206B_206B_206C_200F_200F_206A_200E_202D_200D_200B_200E_202C_206C_206A_200E_206B_200F_202D_200D_206C_200F_206D_200B_200D_200C_202D_200F_206F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"MoveAway({TargetAetheryte})"; } } @@ -442,35 +141,19 @@ internal static class AetheryteTeleport protected override bool Start() { - IPlayerCharacter playerCharacter = _202B_206E_206F_206B_202E_206F_202B_200D_202B_202C_206E_206A_206D_202D_202C_202D_202A_206E_202D_200E_200D_206C_202B_206A_202B_206A_206C_206E_200D_206C_202D_206C_202B_202A_206C_206E_206D_200F_202D_206B_202E(objectTable); - int num = ((playerCharacter != null) ? 1693276113 : 1693276115); - Vector3 playerPosition = default(Vector3); - while (true) + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + if (localPlayer == null) { - int num2 = num; - int num3 = 1693276112; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1693276115; - break; - case 3: - return false; - case 1: - playerPosition = _206F_206F_206C_200E_206B_200F_200D_202C_206B_206F_202D_206B_200C_200D_206C_200B_202E_202E_202A_202D_202E_200C_206A_200E_202B_200F_200E_200F_206A_200B_202A_200E_202C_200F_200B_202A_202B_200D_206C_200C_202E((IGameObject)playerCharacter); - num = ((!(_206B_200B_200F_200C_202D_206F_200C_206F_200F_202B_206D_206F_202D_200B_200E_200C_206C_206C_206B_200C_202D_200C_200E_202B_200C_200B_202B_206C_200F_206B_206D_202D_202D_202D_202C_206D_202C_200E_202C_206D_202E(aetheryteData, playerPosition, _202B_200D_200F_202D_200F_206F_206D_202C_206A_206B_206B_202D_206E_206D_206A_202E_200C_200C_202B_206F_200E_206D_202B_206C_200C_206C_202D_206A_202A_206E_206F_200B_206B_202A_200B_206C_200E_202D_200E_202C_202E(clientState), base.Task.TargetAetheryte) >= 20f)) ? 1693276114 : 1693276116); - break; - case 4: - return false; - case 2: - { - Vector3 destination = AetherytesToMoveFrom[base.Task.TargetAetheryte].MinBy((Vector3 x) => Vector3.Distance(x, playerPosition)); - MoveTask task = new MoveTask(_202D_202E_202C_202E_200D_202A_206C_206F_200E_206A_200B_202D_206C_206E_202C_202E_206F_206E_200D_206A_202D_206F_206B_202A_202C_202D_200C_202A_200B_206F_200B_206C_200D_200D_202E_202C_202E_202D_202E_200D_202E(aetheryteData)[base.Task.TargetAetheryte], destination, false, MountRequired: false, DismountRequired: false, 0.25f, null, DisableNavmesh: true, null, Fly: false, Land: false, IgnoreDistanceToObject: false, RestartNavigation: false); - return moveExecutor.Start(task); - } - } + return false; } + Vector3 playerPosition = localPlayer.Position; + if (aetheryteData.CalculateDistance(playerPosition, clientState.TerritoryType, base.Task.TargetAetheryte) >= 20f) + { + return false; + } + Vector3 destination = AetherytesToMoveFrom[base.Task.TargetAetheryte].MinBy((Vector3 x) => Vector3.Distance(x, playerPosition)); + MoveTask task = new MoveTask(aetheryteData.TerritoryIds[base.Task.TargetAetheryte], destination, false, MountRequired: false, DismountRequired: false, 0.25f, null, DisableNavmesh: true, null, Fly: false, Land: false, IgnoreDistanceToObject: false, RestartNavigation: false); + return moveExecutor.Start(task); } public override ETaskResult Update() @@ -497,30 +180,5 @@ internal static class AetheryteTeleport dictionary.Add(EAetheryteLocation.SolutionNine, list); AetherytesToMoveFrom = dictionary; } - - static IPlayerCharacter _202B_206E_206F_206B_202E_206F_202B_200D_202B_202C_206E_206A_206D_202D_202C_202D_202A_206E_202D_200E_200D_206C_202B_206A_202B_206A_206C_206E_200D_206C_202D_206C_202B_202A_206C_206E_206D_200F_202D_206B_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static Vector3 _206F_206F_206C_200E_206B_200F_200D_202C_206B_206F_202D_206B_200C_200D_206C_200B_202E_202E_202A_202D_202E_200C_206A_200E_202B_200F_200E_200F_206A_200B_202A_200E_202C_200F_200B_202A_202B_200D_206C_200C_202E(IGameObject P_0) - { - return P_0.Position; - } - - static uint _202B_200D_200F_202D_200F_206F_206D_202C_206A_206B_206B_202D_206E_206D_206A_202E_200C_200C_202B_206F_200E_206D_202B_206C_200C_206C_202D_206A_202A_206E_206F_200B_206B_202A_200B_206C_200E_202D_200E_202C_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static float _206B_200B_200F_200C_202D_206F_200C_206F_200F_202B_206D_206F_202D_200B_200E_200C_206C_206C_206B_200C_202D_200C_200E_202B_200C_200B_202B_206C_200F_206B_206D_202D_202D_202D_202C_206D_202C_200E_202C_206D_202E(AetheryteData P_0, Vector3 P_1, uint P_2, EAetheryteLocation P_3) - { - return P_0.CalculateDistance(P_1, P_2, P_3); - } - - static ReadOnlyDictionary<EAetheryteLocation, ushort> _202D_202E_202C_202E_200D_202A_206C_206F_200E_206A_200B_202D_206C_206E_202C_202E_206F_206E_200D_206A_202D_206F_206B_202A_202C_202D_200C_202A_200B_206F_200B_206C_200D_200D_202E_202C_202E_202D_202E_200D_202E(AetheryteData P_0) - { - return P_0.TerritoryIds; - } } } diff --git a/Questionable/Questionable.Controller.Steps.Shared/Craft.cs b/Questionable/Questionable.Controller.Steps.Shared/Craft.cs index 16a860f..399896c 100644 --- a/Questionable/Questionable.Controller.Steps.Shared/Craft.cs +++ b/Questionable/Questionable.Controller.Steps.Shared/Craft.cs @@ -1,16 +1,11 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; -using System.Text; -using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.UI.Agent; using FFXIVClientStructs.FFXIV.Component.GUI; using LLib.GameData; -using Lumina.Excel; using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Common; @@ -24,430 +19,111 @@ internal static class Craft { internal sealed class Factory : ITaskFactory { - [MethodImpl(MethodImplOptions.NoInlining)] public IEnumerable<ITask> CreateAllTasks(Questionable.Model.Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_206A_202B_202D_206A_206B_200B_202A_202A_206B_202D_206A_206A_206C_206D_206A_200C_206B_200F_202A_206C_200B_206C_206C_202C_206A_200F_206F_206B_206A_206A_206D_206C_202A_206F_206D_206B_200B_200C_202D_206D_202E(step) == EInteractionType.Craft) ? 511987702 : 511987701); - while (true) + if (step.InteractionType != EInteractionType.Craft) { - int num2 = num; - int num3 = 511987703; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - _202D_200C_206B_202C_200D_200D_206B_206E_202A_202C_200B_202B_200D_206F_202C_206C_202B_200D_202C_200F_200C_202A_206C_200D_206E_206A_200B_202C_206E_202C_206C_206D_200B_206A_206F_206A_206F_200F_202C_206E_202E((object)_200E_206A_202C_200E_202B_200B_202A_200D_206D_200E_206F_200B_202E_200F_202A_200B_202B_206B_202D_200F_202B_206C_200B_202A_206B_200F_206A_202D_202A_206A_202C_206D_200E_202A_200F_202B_206E_200C_202E_200F_202E(step), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1496371967)); - _202D_200C_206B_202C_200D_200D_206B_206E_202A_202C_200B_202B_200D_206F_202C_206C_202B_200D_202C_200F_200C_202A_206C_200D_206E_206A_200B_202C_206E_202C_206C_206D_200B_206A_206F_206A_206F_200F_202C_206E_202E((object)_202C_206E_202A_202D_200E_202E_200E_206D_206E_206F_200D_200C_202C_200E_202E_200D_206A_202E_200D_202B_202D_206C_206E_202B_200F_206B_206B_202C_200F_202C_200E_200D_206D_206C_202E_206E_202B_200F_206E_206D_202E(step), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(98690158)); - return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] - { - new Questionable.Controller.Steps.Common.Mount.UnmountTask(), - new CraftTask(_200E_206A_202C_200E_202B_200B_202A_200D_206D_200E_206F_200B_202E_200F_202A_200B_202B_206B_202D_200F_202B_206C_200B_202A_206B_200F_206A_202D_202A_206A_202C_206D_200E_202A_200F_202B_206E_200C_202E_200F_202E(step).Value, _202C_206E_202A_202D_200E_202E_200E_206D_206E_206F_200D_200C_202C_200E_202E_200D_206A_202E_200D_202B_202D_206C_206E_202B_200F_206B_206B_202C_200F_202C_200E_200D_206D_206C_202E_206E_202B_200F_206E_206D_202E(step).Value, _202A_206E_200B_206A_202C_206D_206E_206F_206C_200B_200F_206E_206D_202E_206E_200D_202A_202A_206E_202E_206B_202C_200B_200D_200C_206D_202D_202C_200C_206A_206E_206C_200E_206C_202A_200F_200D_202E_206D_200E_202E(step) == true) - }); - case 2: - return Array.Empty<ITask>(); - case 0: - goto IL_00ce; - } - continue; - IL_00ce: - num = 511987701; + return Array.Empty<ITask>(); } - } - - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Questionable.Model.Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); - } - - static EInteractionType _206A_202B_202D_206A_206B_200B_202A_202A_206B_202D_206A_206A_206C_206D_206A_200C_206B_200F_202A_206C_200B_206C_206C_202C_206A_200F_206F_206B_206A_206A_206D_206C_202A_206F_206D_206B_200B_200C_202D_206D_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static uint? _200E_206A_202C_200E_202B_200B_202A_200D_206D_200E_206F_200B_202E_200F_202A_200B_202B_206B_202D_200F_202B_206C_200B_202A_206B_200F_206A_202D_202A_206A_202C_206D_200E_202A_200F_202B_206E_200C_202E_200F_202E(QuestStep P_0) - { - return P_0.ItemId; - } - - static void _202D_200C_206B_202C_200D_200D_206B_206E_202A_202C_200B_202B_200D_206F_202C_206C_202B_200D_202C_200F_200C_202A_206C_200D_206E_206A_200B_202C_206E_202C_206C_206D_200B_206A_206F_206A_206F_200F_202C_206E_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static int? _202C_206E_202A_202D_200E_202E_200E_206D_206E_206F_200D_200C_202C_200E_202E_200D_206A_202E_200D_202B_202D_206C_206E_202B_200F_206B_206B_202C_200F_202C_200E_200D_206D_206C_202E_206E_202B_200F_206E_206D_202E(QuestStep P_0) - { - return P_0.ItemCount; - } - - static bool? _202A_206E_200B_206A_202C_206D_206E_206F_206C_200B_200F_206E_206D_202E_206E_200D_202A_202A_206E_202E_206B_202C_200B_200D_200C_206D_202D_202C_200C_206A_206E_206C_200E_206C_202A_200F_200D_202E_206D_200E_202E(QuestStep P_0) - { - return P_0.RequireHq; + ArgumentNullException.ThrowIfNull(step.ItemId, "step.ItemId"); + ArgumentNullException.ThrowIfNull(step.ItemCount, "step.ItemCount"); + return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] + { + new Questionable.Controller.Steps.Common.Mount.UnmountTask(), + new CraftTask(step.ItemId.Value, step.ItemCount.Value, step.RequireHq == true) + }); } } internal sealed record CraftTask(uint ItemId, int ItemCount, bool RequireHq) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202D_200C_200D_202D_202E_206F_206E_202D_206C_206F_200C_202A_200F_200D_200B_200C_206D_206B_200E_202A_206F_202A_206C_200B_200E_202A_202D_202D_200F_200E_202A_206F_206B_206A_200B_206C_202D_200E_202C_200E_202E(typeof(CraftTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(23, 3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1781620549)); - defaultInterpolatedStringHandler.AppendFormatted(ItemCount); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(350814621)); - defaultInterpolatedStringHandler.AppendFormatted(ItemId); - defaultInterpolatedStringHandler.AppendFormatted(RequireHq ? global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-6445935) : global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1720149641)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1276730098)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206D_206E_206C_200D_200B_200B_206A_200C_202B_202D_206B_200F_206D_206A_202B_200C_206C_202B_206F_206C_206B_200D_200B_202B_202D_202C_202E_206D_200F_206A_206F_202C_200E_202C_206B_200E_202E_206E_206F_202B_202E(); - _206A_200B_202B_200E_206F_202B_202D_202E_206C_202B_206C_200B_200D_202B_202E_206F_206F_202A_206A_206A_200C_206A_202C_200F_202D_200D_200B_206B_200F_206E_200E_206C_202C_206C_206F_202B_200C_202C_202E_206D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1176260912)); - _206A_200B_202B_200E_206F_202B_202D_202E_206C_202B_206C_200B_200D_202B_202E_206F_206F_202A_206A_206A_200C_206A_202C_200F_202D_200D_200B_206B_200F_206E_200E_206C_202C_206C_206F_202B_200C_202C_202E_206D_202E(builder, ItemId.ToString()); - _206A_200B_202B_200E_206F_202B_202D_202E_206C_202B_206C_200B_200D_202B_202E_206F_206F_202A_206A_206A_200C_206A_202C_200F_202D_200D_200B_206B_200F_206E_200E_206C_202C_206C_206F_202B_200C_202C_202E_206D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-503598644)); - _206A_200B_202B_200E_206F_202B_202D_202E_206C_202B_206C_200B_200D_202B_202E_206F_206F_202A_206A_206A_200C_206A_202C_200F_202D_200D_200B_206B_200F_206E_200E_206C_202C_206C_206F_202B_200C_202C_202E_206D_202E(builder, ItemCount.ToString()); - _206A_200B_202B_200E_206F_202B_202D_202E_206C_202B_206C_200B_200D_202B_202E_206F_206F_202A_206A_206A_200C_206A_202C_200F_202D_200D_200B_206B_200F_206E_200E_206C_202C_206C_206F_202B_200C_202C_202E_206D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1102929611)); - _206A_200B_202B_200E_206F_202B_202D_202E_206C_202B_206C_200B_200D_202B_202E_206F_206F_202A_206A_206A_200C_206A_202C_200F_202D_200D_200B_206B_200F_206E_200E_206C_202C_206C_206F_202B_200C_202C_202E_206D_202E(builder, RequireHq.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(CraftTask? other) - { - int num = (((object)this == other) ? 528344161 : 528344167); - while (true) - { - int num2 = num; - int num3 = 528344166; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - num = 528344167; - break; - case 5: - num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? 528344166 : 528344162); - break; - case 4: - num = ((!EqualityComparer<int>.Default.Equals(ItemCount, other.ItemCount)) ? 528344166 : 528344165); - break; - case 7: - return true; - case 1: - num = (((object)other == null) ? 528344166 : 528344164); - break; - case 2: - num = ((!_206D_200F_206B_200C_206B_202E_206F_202E_202D_200F_200C_206F_206B_200C_206D_200B_202C_206A_206F_200C_200F_200F_200D_202E_202E_202B_206A_202E_200F_202B_200F_202A_200D_206D_202A_206D_206D_202A_206A_202E(EqualityContract, other.EqualityContract)) ? 528344166 : 528344163); - break; - case 0: - return false; - case 3: - return EqualityComparer<bool>.Default.Equals(RequireHq, other.RequireHq); - } - } - } - - bool IEquatable<CraftTask>.Equals(CraftTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202D_200C_200D_202D_202E_206F_206E_202D_206C_206F_200C_202A_200F_200D_200B_200C_206D_206B_200E_202A_206F_202A_206C_200B_200E_202A_202D_202D_200F_200E_202A_206F_206B_206A_200B_206C_202D_200E_202C_200E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206D_206E_206C_200D_200B_200B_206A_200C_202B_202D_206B_200F_206D_206A_202B_200C_206C_202B_206F_206C_206B_200D_200B_202B_202D_202C_202E_206D_200F_206A_206F_202C_200E_202C_206B_200E_202E_206E_206F_202B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206A_200B_202B_200E_206F_202B_202D_202E_206C_202B_206C_200B_200D_202B_202E_206F_206F_202A_206A_206A_200C_206A_202C_200F_202D_200D_200B_206B_200F_206E_200E_206C_202C_206C_206F_202B_200C_202C_202E_206D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _206D_200F_206B_200C_206B_202E_206F_202E_202D_200F_200C_206F_206B_200C_206D_200B_202C_206A_206F_200C_200F_200F_200D_202E_202E_202B_206A_202E_200F_202B_200F_202A_200D_206D_202A_206D_206D_202A_206A_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"Craft {ItemCount}x {ItemId}{(RequireHq ? " (HQ)" : "")} (with Artisan)"; } } internal sealed class DoCraft(IDataManager dataManager, IObjectTable objectTable, ArtisanIpc artisanIpc, ILogger<DoCraft> logger) : TaskExecutor<CraftTask>() { - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - int num = ((!HasRequestedItems()) ? (-227279258) : (-227279244)); - uint num8 = default(uint); - RecipeLookup? rowOrDefault = default(RecipeLookup?); - uint num7 = default(uint); - uint? num9 = default(uint?); - EClassJob? eClassJob = default(EClassJob?); - while (true) + if (HasRequestedItems()) { - int num2 = num; - int num3 = -227279260; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - EClassJob? obj; - switch (num5 - (num6 + num6)) - { - case 7: - num8 = rowOrDefault.Value.CUL.RowId; - num = -227279248; - break; - case 13: - num8 = 0u; - num = -227279248; - break; - case 18: - num = ((num7 != 0) ? (-227279246) : (-227279252)); - break; - case 8: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(36, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1859404714)); - defaultInterpolatedStringHandler.AppendFormatted(base.Task.ItemId); - throw new TaskException(defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 11: - num = -227279244; - break; - case 16: - _202B_206D_206C_202D_202E_200D_202E_202D_206D_200E_206A_202E_200C_206A_206D_206F_206C_206B_206C_206B_200D_200E_200F_206F_206D_200D_200E_202C_200F_206E_206E_202A_200C_206D_202E_200C_202E_206F_206E_206A_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-695579807), new object[3] - { - base.Task.ItemCount, - base.Task.ItemId, - base.Task.RequireHq ? global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-6445935) : global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1694032531) - }); - return false; - case 17: - goto IL_01b2; - case 19: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(41, 1); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1243369350)); - defaultInterpolatedStringHandler3.AppendFormatted(num7); - throw new TaskException(defaultInterpolatedStringHandler3.ToStringAndClear()); - } - case 3: - goto IL_0209; - case 9: - goto IL_0230; - case 1: - goto IL_0257; - case 15: - return true; - case 20: - num7 = num8; - num = ((num7 != 0) ? (-227279242) : (-227279256)); - break; - case 14: - goto IL_02a1; - case 22: - { - int num10 = base.Task.ItemCount - GetOwnedItemCount(); - _202B_206D_206C_202D_202E_200D_202E_202D_206D_200E_206A_202E_200C_206A_206D_206F_206C_206B_206C_206B_200D_200E_200F_206F_206D_200D_200E_202C_200F_206E_206E_202A_200C_206D_202E_200C_202E_206F_206E_206A_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1999201105), new object[4] - { - base.Task.ItemId, - num7, - num10, - base.Task.RequireHq ? global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-495381767) : global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-87324410) - }); - num = (artisanIpc.CraftItem((ushort)num7, num10) ? (-227279253) : (-227279241)); - break; - } - case 2: - rowOrDefault = dataManager.GetExcelSheet<RecipeLookup>().GetRowOrDefault(base.Task.ItemId); - num = (rowOrDefault.HasValue ? (-227279236) : (-227279264)); - break; - case 0: - goto IL_03bc; - case 23: - num = -227279255; - break; - case 4: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(22, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(335057319)); - defaultInterpolatedStringHandler2.AppendFormatted(base.Task.ItemId); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-37094116)); - throw new TaskException(defaultInterpolatedStringHandler2.ToStringAndClear()); - } - case 24: - { - IPlayerCharacter playerCharacter = _200F_202D_206E_206B_206B_206E_200B_206C_206D_206D_206E_202C_206A_202D_206C_200F_206A_200B_200E_206D_206E_202C_202C_202C_206A_206E_202B_200F_206A_206F_206D_202E_202A_206F_206B_206F_206D_200F_202B_202E_202E(objectTable); - num9 = ((playerCharacter != null) ? new uint?(_202D_206F_202B_200D_200B_202C_206F_202D_206E_200F_200E_202D_206D_206E_202D_200E_200F_206D_202D_202C_202A_200C_206C_200D_200D_200F_202A_206A_202C_202A_202C_200E_202D_200D_202D_200F_206F_206D_206E_202B_202E((ICharacter)playerCharacter).RowId) : ((uint?)null)); - num = (num9.HasValue ? (-227279250) : (-227279263)); - break; - } - case 5: - obj = null; - goto IL_04bb; - case 10: - obj = (EClassJob)num9.GetValueOrDefault(); - goto IL_04bb; - case 21: - goto IL_04e1; - case 6: - switch (eClassJob.GetValueOrDefault()) - { - case EClassJob.Culinarian: - break; - case EClassJob.Armorer: - goto IL_01b2; - case EClassJob.Leatherworker: - goto IL_0209; - case EClassJob.Weaver: - goto IL_0230; - case EClassJob.Carpenter: - goto IL_0257; - case EClassJob.Blacksmith: - goto IL_02a1; - case EClassJob.Goldsmith: - goto IL_03bc; - case EClassJob.Alchemist: - goto IL_04e1; - default: - goto IL_053a; - } - goto case 7; - case 12: - { - num7 = new uint[8] - { - rowOrDefault.Value.CRP.RowId, - rowOrDefault.Value.BSM.RowId, - rowOrDefault.Value.ARM.RowId, - rowOrDefault.Value.GSM.RowId, - rowOrDefault.Value.LTW.RowId, - rowOrDefault.Value.WVR.RowId, - rowOrDefault.Value.ALC.RowId, - rowOrDefault.Value.CUL.RowId - }.FirstOrDefault((uint x) => x != 0); - num = -227279242; - break; - } - IL_053a: - num = -227279245; - break; - IL_04e1: - num8 = rowOrDefault.Value.ALC.RowId; - num = -227279248; - break; - IL_04bb: - eClassJob = obj; - num = ((!eClassJob.HasValue) ? (-227279255) : (-227279262)); - break; - IL_02a1: - num8 = rowOrDefault.Value.BSM.RowId; - num = -227279248; - break; - IL_0257: - num8 = rowOrDefault.Value.CRP.RowId; - num = -227279248; - break; - IL_0230: - num8 = rowOrDefault.Value.WVR.RowId; - num = -227279248; - break; - IL_03bc: - num8 = rowOrDefault.Value.GSM.RowId; - num = -227279248; - break; - IL_0209: - num8 = rowOrDefault.Value.LTW.RowId; - num = -227279248; - break; - IL_01b2: - num8 = rowOrDefault.Value.ARM.RowId; - num = -227279248; - break; - } + logger.LogDebug("Already own {ItemCount}x {ItemId}{HqSuffix}", base.Task.ItemCount, base.Task.ItemId, base.Task.RequireHq ? " (HQ)" : ""); + return false; } + RecipeLookup? rowOrDefault = dataManager.GetExcelSheet<RecipeLookup>().GetRowOrDefault(base.Task.ItemId); + if (!rowOrDefault.HasValue) + { + throw new TaskException($"Item {base.Task.ItemId} is not craftable"); + } + uint num = (EClassJob?)objectTable.LocalPlayer?.ClassJob.RowId switch + { + EClassJob.Carpenter => rowOrDefault.Value.CRP.RowId, + EClassJob.Blacksmith => rowOrDefault.Value.BSM.RowId, + EClassJob.Armorer => rowOrDefault.Value.ARM.RowId, + EClassJob.Goldsmith => rowOrDefault.Value.GSM.RowId, + EClassJob.Leatherworker => rowOrDefault.Value.LTW.RowId, + EClassJob.Weaver => rowOrDefault.Value.WVR.RowId, + EClassJob.Alchemist => rowOrDefault.Value.ALC.RowId, + EClassJob.Culinarian => rowOrDefault.Value.CUL.RowId, + _ => 0u, + }; + if (num == 0) + { + num = new uint[8] + { + rowOrDefault.Value.CRP.RowId, + rowOrDefault.Value.BSM.RowId, + rowOrDefault.Value.ARM.RowId, + rowOrDefault.Value.GSM.RowId, + rowOrDefault.Value.LTW.RowId, + rowOrDefault.Value.WVR.RowId, + rowOrDefault.Value.ALC.RowId, + rowOrDefault.Value.CUL.RowId + }.FirstOrDefault((uint x) => x != 0); + } + if (num == 0) + { + throw new TaskException($"Unable to determine recipe for item {base.Task.ItemId}"); + } + int num2 = base.Task.ItemCount - GetOwnedItemCount(); + logger.LogDebug("Starting craft for item {ItemId} with recipe {RecipeId} for {RemainingItemCount} items{HqSuffix}", base.Task.ItemId, num, num2, base.Task.RequireHq ? " (HQ required)" : ""); + if (!artisanIpc.CraftItem((ushort)num, num2)) + { + throw new TaskException($"Failed to start Artisan craft for recipe {num}"); + } + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe override ETaskResult Update() { - int num = (artisanIpc.IsCrafting() ? (-1658987480) : (-1658987481)); - uint addonId = default(uint); - AgentRecipeNote* ptr = default(AgentRecipeNote*); - AtkUnitBase* addonById = default(AtkUnitBase*); - while (true) + if (!artisanIpc.IsCrafting()) { - int num2 = num; - int num3 = -1658987473; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - num = -1658987481; - break; - case 4: - addonId = ptr->GetAddonId(); - num = ((addonId != 0) ? (-1658987476) : (-1658987473)); - break; - case 3: - addonById = AtkStage.Instance()->RaptureAtkUnitManager->GetAddonById((ushort)addonId); - num = ((addonById == null) ? (-1658987480) : (-1658987479)); - break; - case 0: - return ETaskResult.StillRunning; - case 8: - num = ((!HasRequestedItems()) ? (-1658987475) : (-1658987474)); - break; - case 2: + if (!HasRequestedItems()) { int ownedItemCount = GetOwnedItemCount(); - _206F_200B_206F_200D_202B_202A_206C_200C_202D_202B_200F_206D_206A_206E_200D_206B_206E_202D_202C_206C_202C_206D_206C_202E_200E_202B_206B_206A_206D_200D_202B_200D_200C_206D_202E_206D_206E_202E_202A_200C_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1100170255), new object[3] - { - ownedItemCount, - base.Task.ItemCount, - base.Task.ItemId - }); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(52, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1173795697)); - defaultInterpolatedStringHandler.AppendFormatted(ownedItemCount); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1680133376)); - defaultInterpolatedStringHandler.AppendFormatted(base.Task.ItemCount); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1889609828)); - throw new TaskException(defaultInterpolatedStringHandler.ToStringAndClear()); + logger.LogError("Artisan stopped crafting but only have {Owned}/{Required} of item {ItemId}", ownedItemCount, base.Task.ItemCount, base.Task.ItemId); + throw new TaskException($"Artisan stopped crafting with only {ownedItemCount}/{base.Task.ItemCount} items completed"); } - case 1: - ptr = AgentRecipeNote.Instance(); - num = ((ptr == null) ? (-1658987480) : (-1658987482)); - break; - case 6: - _202B_206D_206C_202D_202E_200D_202E_202D_206D_200E_206A_202E_200C_206A_206D_206F_206C_206B_206C_206B_200D_200E_200F_206F_206D_200D_200E_202C_200F_206E_206E_202A_200C_206D_202E_200C_202E_206F_206E_206A_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1809407100), Array.Empty<object>()); - addonById->FireCallbackInt(-1); - return ETaskResult.TaskComplete; - case 9: - num = ((!ptr->IsAgentActive()) ? (-1658987480) : (-1658987477)); - break; - case 7: - return ETaskResult.StillRunning; + AgentRecipeNote* ptr = AgentRecipeNote.Instance(); + if (ptr != null && ptr->IsAgentActive()) + { + uint addonId = ptr->GetAddonId(); + if (addonId == 0) + { + return ETaskResult.StillRunning; + } + AtkUnitBase* addonById = AtkStage.Instance()->RaptureAtkUnitManager->GetAddonById((ushort)addonId); + if (addonById != null) + { + logger.LogDebug("Closing crafting window"); + addonById->FireCallbackInt(-1); + return ETaskResult.TaskComplete; + } } } + return ETaskResult.StillRunning; } private bool HasRequestedItems() @@ -455,88 +131,24 @@ internal static class Craft return GetOwnedItemCount() >= base.Task.ItemCount; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe int GetOwnedItemCount() { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((!base.Task.RequireHq) ? (-130787652) : (-130787651)); - while (true) + if (base.Task.RequireHq) { - int num2 = num; - int num3 = -130787652; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_005a; - case 1: - { - int inventoryItemCount3 = ptr->GetInventoryItemCount(base.Task.ItemId, isHq: true, checkEquipped: false, checkArmory: true, 0); - _206A_202B_206B_206B_202B_206B_200F_200D_206F_200E_206D_200F_206F_200B_206A_200F_206D_200D_200E_202B_202A_206E_200F_206A_206C_206B_206A_200D_202D_206D_200D_202D_202C_202C_200F_202E_200C_206E_206E_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-961372782), new object[2] - { - base.Task.ItemId, - inventoryItemCount3 - }); - return inventoryItemCount3; - } - case 0: - { - int inventoryItemCount = ptr->GetInventoryItemCount(base.Task.ItemId, isHq: false, checkEquipped: false, checkArmory: true, 0); - int inventoryItemCount2 = ptr->GetInventoryItemCount(base.Task.ItemId, isHq: true, checkEquipped: false, checkArmory: true, 0); - ILogger<DoCraft> logger = logger; - string text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1941678534); - object[] obj = new object[4] - { - base.Task.ItemId, - inventoryItemCount, - inventoryItemCount2, - null - }; - num3 = inventoryItemCount2; - num4 = inventoryItemCount; - obj[3] = (num4 | num3) + (num4 & num3); - _206A_202B_206B_206B_202B_206B_200F_200D_206F_200E_206D_200F_206F_200B_206A_200F_206D_200D_200E_202B_202A_206E_200F_206A_206C_206B_206A_200D_202D_206D_200D_202D_202C_202C_200F_202E_200C_206E_206E_202E((ILogger)logger, text, obj); - num3 = inventoryItemCount2; - num4 = inventoryItemCount; - int num5 = num4 ^ num3; - int num6 = num4 & num3; - return num5 + (num6 + num6); - } - } - continue; - IL_005a: - num = -130787651; + int inventoryItemCount = ptr->GetInventoryItemCount(base.Task.ItemId, isHq: true, checkEquipped: false, checkArmory: true, 0); + logger.LogTrace("HQ item count for {ItemId}: {Count}", base.Task.ItemId, inventoryItemCount); + return inventoryItemCount; } + int inventoryItemCount2 = ptr->GetInventoryItemCount(base.Task.ItemId, isHq: false, checkEquipped: false, checkArmory: true, 0); + int inventoryItemCount3 = ptr->GetInventoryItemCount(base.Task.ItemId, isHq: true, checkEquipped: false, checkArmory: true, 0); + logger.LogTrace("Total item count for {ItemId}: {NqCount} NQ + {HqCount} HQ = {Total}", base.Task.ItemId, inventoryItemCount2, inventoryItemCount3, inventoryItemCount2 + inventoryItemCount3); + return inventoryItemCount2 + inventoryItemCount3; } public override bool ShouldInterruptOnDamage() { return false; } - - static void _202B_206D_206C_202D_202E_200D_202E_202D_206D_200E_206A_202E_200C_206A_206D_206F_206C_206B_206C_206B_200D_200E_200F_206F_206D_200D_200E_202C_200F_206E_206E_202A_200C_206D_202E_200C_202E_206F_206E_206A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static IPlayerCharacter _200F_202D_206E_206B_206B_206E_200B_206C_206D_206D_206E_202C_206A_202D_206C_200F_206A_200B_200E_206D_206E_202C_202C_202C_206A_206E_202B_200F_206A_206F_206D_202E_202A_206F_206B_206F_206D_200F_202B_202E_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static RowRef<ClassJob> _202D_206F_202B_200D_200B_202C_206F_202D_206E_200F_200E_202D_206D_206E_202D_200E_200F_206D_202D_202C_202A_200C_206C_200D_200D_200F_202A_206A_202C_202A_202C_200E_202D_200D_202D_200F_206F_206D_206E_202B_202E(ICharacter P_0) - { - return P_0.ClassJob; - } - - static void _206F_200B_206F_200D_202B_202A_206C_200C_202D_202B_200F_206D_206A_206E_200D_206B_206E_202D_202C_206C_202C_206D_206C_202E_200E_202B_206B_206A_206D_200D_202B_200D_200C_206D_202E_206D_206E_202E_202A_200C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogError(P_1, P_2); - } - - static void _206A_202B_206B_206B_202B_206B_200F_200D_206F_200E_206D_200F_206F_200B_206A_200F_206D_200D_200E_202B_202A_206E_200F_206A_206C_206B_206A_200D_202D_206D_200D_202D_202C_202C_200F_202E_200C_206E_206E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogTrace(P_1, P_2); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Shared/ExtraConditionUtils.cs b/Questionable/Questionable.Controller.Steps.Shared/ExtraConditionUtils.cs index 76c77fd..0d8bae1 100644 --- a/Questionable/Questionable.Controller.Steps.Shared/ExtraConditionUtils.cs +++ b/Questionable/Questionable.Controller.Steps.Shared/ExtraConditionUtils.cs @@ -1,8 +1,5 @@ using System; using System.Numerics; -using System.Runtime.CompilerServices; -using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using Questionable.Model.Questing; @@ -22,196 +19,25 @@ internal sealed class ExtraConditionUtils public bool MatchesExtraCondition(EExtraSkipCondition skipCondition) { - IPlayerCharacter playerCharacter = _206A_202B_202C_200B_200B_200E_206C_200B_206C_206C_206F_206F_200B_202D_206A_206E_206B_202B_206B_202C_206B_202E_206F_202D_200F_206C_202A_202C_206B_206D_200B_202E_206F_206F_200F_206C_206E_200D_206A_206D_202E(_objectTable); - Vector3? vector = ((playerCharacter != null) ? new Vector3?(_206B_202E_202E_206A_200D_200B_202D_200F_206E_206B_206C_200C_206B_206A_206B_200D_202A_202B_202B_202C_200C_200B_200C_200C_206E_202D_202E_202A_206A_200D_202A_206F_206E_200D_202E_206B_202E_200B_202D_202E_202E((IGameObject)playerCharacter)) : ((Vector3?)null)); - int num = ((!vector.HasValue) ? 1142844286 : 1142844285); - while (true) + Vector3? vector = _objectTable.LocalPlayer?.Position; + if (vector.HasValue && _clientState.TerritoryType != 0) { - int num2 = num; - int num3 = 1142844284; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1142844285; - break; - case 3: - return MatchesExtraCondition(skipCondition, vector.Value, _202B_206D_206D_200E_206E_200C_206D_206B_206D_202D_206E_200F_200C_206D_202C_200B_206A_200D_202A_206C_202B_200D_206B_202D_206E_202A_200D_200C_202A_206B_202B_200B_200C_206C_206D_202A_202C_200F_206C_206F_202E(_clientState)); - case 2: - return false; - case 1: - num = ((_202B_206D_206D_200E_206E_200C_206D_206B_206D_202D_206E_200F_200C_206D_202C_200B_206A_200D_202A_206C_202B_200D_206B_202D_206E_202A_200D_200C_202A_206B_202B_200B_200C_206C_206D_202A_202C_200F_206C_206F_202E(_clientState) == 0) ? 1142844286 : 1142844287); - break; - } + return MatchesExtraCondition(skipCondition, vector.Value, _clientState.TerritoryType); } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public static bool MatchesExtraCondition(EExtraSkipCondition skipCondition, Vector3 position, uint territoryType) { - int num; - bool result = default(bool); - switch (skipCondition) + return skipCondition switch { - default: - num = 1143569671; - goto IL_002b; - case EExtraSkipCondition.DockStorehouse: - num = ((territoryType != 137) ? 1143569672 : 1143569666); - goto IL_002b; - case EExtraSkipCondition.WakingSandsMainArea: - goto IL_00cc; - case EExtraSkipCondition.NotRoguesGuild: - goto IL_0115; - case EExtraSkipCondition.RoguesGuild: - goto IL_0209; - case EExtraSkipCondition.RisingStonesSolar: - goto IL_022c; - case EExtraSkipCondition.WakingSandsSolar: - goto IL_024d; - IL_002b: - while (true) - { - int num2 = num; - int num3 = 1143569666; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num12; - int num11; - int num10; - int num8; - int num9; - int num7; - switch (num5 - (num6 + num6)) - { - case 16: - num12 = 0; - goto IL_009f; - case 18: - goto end_IL_002b; - case 19: - goto IL_00cc; - case 5: - num = 1143569683; - break; - case 12: - num12 = ((position.Y > -115f) ? 1 : 0); - goto IL_009f; - case 1: - goto IL_0115; - case 17: - throw _206B_200F_200F_200D_200F_202A_206D_200D_200D_202D_206C_206A_206E_206C_206E_202E_202B_206C_206C_200D_202C_200B_200C_202C_206A_200F_206D_206B_206C_202D_206F_202E_206F_202C_200B_206E_206A_200D_206B_206A_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-226080792), (object)skipCondition, (string)null); - case 0: - num11 = ((position.Y <= -20f) ? 1 : 0); - goto IL_018e; - case 7: - num10 = ((position.Z <= -28f) ? 1 : 0); - goto IL_01c5; - case 10: - num11 = 0; - goto IL_018e; - case 4: - num8 = ((position.X < 24f) ? 1 : 0); - goto IL_026f; - case 14: - num9 = 0; - goto IL_01b8; - case 13: - num10 = 0; - goto IL_01c5; - case 11: - num7 = 0; - goto IL_01d2; - case 20: - num = 1143569671; - break; - case 6: - num9 = ((position.X >= 24f) ? 1 : 0); - goto IL_01b8; - case 9: - goto IL_0209; - case 3: - return result; - case 15: - goto IL_022c; - case 8: - goto IL_024d; - case 2: - num8 = 0; - goto IL_026f; - case 21: - { - num7 = ((position.Y <= -115f) ? 1 : 0); - goto IL_01d2; - } - IL_01d2: - result = (byte)num7 != 0; - num = 1143569665; - break; - IL_01b8: - result = (byte)num9 != 0; - num = 1143569665; - break; - IL_026f: - result = (byte)num8 != 0; - num = 1143569665; - break; - IL_01c5: - result = (byte)num10 != 0; - num = 1143569665; - break; - IL_018e: - result = (byte)num11 != 0; - num = 1143569665; - break; - IL_009f: - result = (byte)num12 != 0; - num = 1143569665; - break; - } - continue; - end_IL_002b: - break; - } - goto case EExtraSkipCondition.DockStorehouse; - IL_024d: - num = ((territoryType != 212) ? 1143569676 : 1143569668); - goto IL_002b; - IL_0209: - num = ((territoryType != 129) ? 1143569673 : 1143569687); - goto IL_002b; - IL_0115: - num = ((territoryType != 129) ? 1143569682 : 1143569678); - goto IL_002b; - IL_022c: - num = ((territoryType != 351) ? 1143569679 : 1143569669); - goto IL_002b; - IL_00cc: - num = ((territoryType != 212) ? 1143569664 : 1143569670); - goto IL_002b; - } - } - - static IPlayerCharacter _206A_202B_202C_200B_200B_200E_206C_200B_206C_206C_206F_206F_200B_202D_206A_206E_206B_202B_206B_202C_206B_202E_206F_202D_200F_206C_202A_202C_206B_206D_200B_202E_206F_206F_200F_206C_206E_200D_206A_206D_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static Vector3 _206B_202E_202E_206A_200D_200B_202D_200F_206E_206B_206C_200C_206B_206A_206B_200D_202A_202B_202B_202C_200C_200B_200C_200C_206E_202D_202E_202A_206A_200D_202A_206F_206E_200D_202E_206B_202E_200B_202D_202E_202E(IGameObject P_0) - { - return P_0.Position; - } - - static uint _202B_206D_206D_200E_206E_200C_206D_206B_206D_202D_206E_200F_200C_206D_202C_200B_206A_200D_202A_206C_202B_200D_206B_202D_206E_202A_200D_200C_202A_206B_202B_200B_200C_206C_206D_202A_202C_200F_206C_206F_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static ArgumentOutOfRangeException _206B_200F_200F_200D_200F_202A_206D_200D_200D_202D_206C_206A_206E_206C_206E_202E_202B_206C_206C_200D_202C_200B_200C_202C_206A_200F_206D_206B_206C_202D_206F_202E_206F_202C_200B_206E_206A_200D_206B_206A_202E(string P_0, object P_1, string P_2) - { - return new ArgumentOutOfRangeException(P_0, P_1, P_2); + EExtraSkipCondition.WakingSandsMainArea => territoryType == 212 && position.X < 24f, + EExtraSkipCondition.WakingSandsSolar => territoryType == 212 && position.X >= 24f, + EExtraSkipCondition.RisingStonesSolar => territoryType == 351 && position.Z <= -28f, + EExtraSkipCondition.RoguesGuild => territoryType == 129 && position.Y <= -115f, + EExtraSkipCondition.NotRoguesGuild => territoryType == 129 && position.Y > -115f, + EExtraSkipCondition.DockStorehouse => territoryType == 137 && position.Y <= -20f, + _ => throw new ArgumentOutOfRangeException("skipCondition", skipCondition, null), + }; } } diff --git a/Questionable/Questionable.Controller.Steps.Shared/Fish.cs b/Questionable/Questionable.Controller.Steps.Shared/Fish.cs index 0f20499..02bcf0d 100644 --- a/Questionable/Questionable.Controller.Steps.Shared/Fish.cs +++ b/Questionable/Questionable.Controller.Steps.Shared/Fish.cs @@ -1,13 +1,7 @@ -using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using LLib.Fishing; @@ -27,480 +21,29 @@ internal static class Fish { internal sealed class Factory(AutoHookIpc autoHookIpc) : ITaskFactory { - [CompilerGenerated] - private sealed class _003CCreateAllTasks_003Ed__2 : IEnumerable<ITask>, IEnumerable, IEnumerator<ITask>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ITask _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - private QuestStep step; - - public QuestStep _003C_003E3__step; - - public Factory _003C_003E4__this; - - private Quest quest; - - public Quest _003C_003E3__quest; - - private IEnumerator<GatheredItem> _003C_003E7__wrap1; - - ITask IEnumerator<ITask>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CCreateAllTasks_003Ed__2(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _202E_202B_202D_200E_206D_202B_200E_202B_200B_202D_200B_206F_202A_200C_200E_206B_200F_206E_206B_206B_200B_202E_202E_206C_206F_202E_202C_202D_202E_202E_202D_202B_202A_202B_200E_206D_200E_200B_206B_206F_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num == -3) ? 1506831734 : 1506831733); - while (true) - { - int num3 = num2; - int num4 = 1506831732; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 0: - num2 = 1506831733; - continue; - case 1: - if (num == 4) - { - num2 = 1506831734; - continue; - } - break; - case 2: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E7__wrap1 = null; - _003C_003E1__state = -2; - } - - private bool MoveNext() - { - try - { - int num = _003C_003E1__state; - Factory factory = _003C_003E4__this; - int num2; - switch (num) - { - default: - num2 = -1493517574; - goto IL_0034; - case 0: - _003C_003E1__state = -1; - num2 = ((_202C_200C_202E_206F_200C_202A_206A_200D_200F_200C_202D_202A_206E_202C_200C_202A_202D_202D_206D_206A_206E_200E_202E_206E_206C_202E_200B_202D_202B_200F_200C_206F_202B_200F_202B_206C_202B_206E_200B_206B_202E(step) == EInteractionType.Fish) ? (-1493517569) : (-1493517576)); - goto IL_0034; - case 4: - goto IL_0153; - case 3: - goto IL_01aa; - case 2: - goto IL_01e1; - case 1: - break; - IL_0034: - while (true) - { - int num3 = num2; - int num4 = -1493517572; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 0: - num2 = -1493517574; - break; - case 4: - return false; - case 3: - goto IL_00ad; - case 9: - _003C_003E2__current = new Mount.UnmountTask(); - _003C_003E1__state = 1; - return true; - case 7: - goto end_IL_0034; - case 8: - goto IL_012b; - case 1: - goto IL_0153; - case 5: - { - GatheredItem current = _003C_003E7__wrap1.Current; - _003C_003E2__current = new FishTask(quest, current, _202D_206E_200F_206D_202A_202D_202C_200E_200D_206D_200F_202B_200B_200C_206A_202E_206E_200E_206E_200F_202A_206A_202C_200D_206E_206A_202A_202C_200C_200E_206B_206B_200B_202A_200E_206A_206A_200C_206C_206C_202E(step)); - _003C_003E1__state = 4; - return true; - } - case 11: - goto IL_01aa; - case 10: - goto IL_01e1; - case 6: - return false; - case 13: - goto end_IL_000f; - case 12: - return false; - case 2: - _003C_003Em__Finally1(); - _003C_003E7__wrap1 = null; - return false; - } - continue; - IL_012b: - num2 = (_202C_206E_202C_200D_206F_200F_200B_200C_200E_202D_200C_206E_202E_200C_200C_206D_206A_202A_202C_206D_202C_200D_202C_206A_206A_206B_200F_200E_202A_200D_202E_200C_200E_202C_200C_200D_206A_206F_202D_206E_202E((IEnumerator)_003C_003E7__wrap1) ? (-1493517575) : (-1493517570)); - continue; - IL_00ad: - num2 = (factory.autoHookIpc.IsAvailable() ? (-1493517579) : (-1493517584)); - continue; - end_IL_0034: - break; - } - goto case 0; - IL_01e1: - _003C_003E1__state = -1; - _003C_003E2__current = new FishTask(quest, _200E_202A_202B_202E_200D_202E_200B_202D_206B_206C_200C_206A_206F_206A_202E_200B_200B_206B_206A_206A_206F_200D_200F_206B_200B_206B_206B_206A_206E_202C_200E_202E_200F_202B_206D_206F_200B_200D_202D_202B_202E(step).FirstOrDefault(), _202D_206E_200F_206D_202A_202D_202C_200E_200D_206D_200F_202B_200B_200C_206A_202E_206E_200E_206E_200F_202A_206A_202C_200D_206E_206A_202A_202C_200C_200E_206B_206B_200B_202A_200E_206A_206A_200C_206C_206C_202E(step)); - _003C_003E1__state = 3; - return true; - IL_01aa: - _003C_003E1__state = -1; - _003C_003E7__wrap1 = _200E_202A_202B_202E_200D_202E_200B_202D_206B_206C_200C_206A_206F_206A_202E_200B_200B_206B_206A_206A_206F_200D_200F_206B_200B_206B_206B_206A_206E_202C_200E_202E_200F_202B_206D_206F_200B_200D_202D_202B_202E(step).Skip(1).GetEnumerator(); - _003C_003E1__state = -3; - num2 = -1493517580; - goto IL_0034; - IL_0153: - _003C_003E1__state = -3; - num2 = -1493517580; - goto IL_0034; - end_IL_000f: - break; - } - _003C_003E1__state = -1; - _003C_003E2__current = new SwitchClassJob.Task(EClassJob.Fisher); - _003C_003E1__state = 2; - return true; - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - int num = ((_003C_003E7__wrap1 == null) ? 1081455461 : 1081455462); - while (true) - { - int num2 = num; - int num3 = 1081455460; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return; - case 2: - _202C_200B_206C_200C_200F_200F_200F_200B_200C_206D_202E_206E_200E_200B_206D_206B_206A_206E_206B_206D_200F_206D_202D_200C_206D_200B_202D_202D_200D_202A_200E_206B_200C_202D_200F_206D_202B_206D_206C_206C_202E((IDisposable)_003C_003E7__wrap1); - num = 1081455461; - break; - case 0: - num = 1081455462; - break; - } - } - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _206F_200C_200C_200C_200C_206A_202A_206E_200D_200D_200E_200D_200E_202B_206B_200E_206B_202E_206D_200D_206F_202E_202A_200C_202B_202C_200F_202D_200C_206B_200F_200F_206E_202C_202D_206E_202E_206B_200D_206E_202E(); - } - - [DebuggerHidden] - IEnumerator<ITask> IEnumerable<ITask>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? 1872162257 : 1872162261); - _003CCreateAllTasks_003Ed__2 _003CCreateAllTasks_003Ed__ = default(_003CCreateAllTasks_003Ed__2); - while (true) - { - int num2 = num; - int num3 = 1872162257; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = 1872162261; - break; - case 4: - num = ((_003C_003El__initialThreadId != _202E_202B_202D_200E_206D_202B_200E_202B_200B_202D_200B_206F_202A_200C_200E_206B_200F_206E_206B_206B_200B_202E_202E_206C_206F_202E_202C_202D_202E_202E_202D_202B_202A_202B_200E_206D_200E_200B_206B_206F_202E()) ? 1872162257 : 1872162256); - break; - case 0: - _003CCreateAllTasks_003Ed__ = new _003CCreateAllTasks_003Ed__2(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = 1872162259; - break; - case 2: - _003CCreateAllTasks_003Ed__.quest = _003C_003E3__quest; - _003CCreateAllTasks_003Ed__.step = _003C_003E3__step; - return _003CCreateAllTasks_003Ed__; - case 1: - _003C_003E1__state = 0; - _003CCreateAllTasks_003Ed__ = this; - num = 1872162259; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ITask>)this).GetEnumerator(); - } - - static int _202E_202B_202D_200E_206D_202B_200E_202B_200B_202D_200B_206F_202A_200C_200E_206B_200F_206E_206B_206B_200B_202E_202E_206C_206F_202E_202C_202D_202E_202E_202D_202B_202A_202B_200E_206D_200E_200B_206B_206F_202E() - { - return Environment.CurrentManagedThreadId; - } - - static EInteractionType _202C_200C_202E_206F_200C_202A_206A_200D_200F_200C_202D_202A_206E_202C_200C_202A_202D_202D_206D_206A_206E_200E_202E_206E_206C_202E_200B_202D_202B_200F_200C_206F_202B_200F_202B_206C_202B_206E_200B_206B_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static List<GatheredItem> _200E_202A_202B_202E_200D_202E_200B_202D_206B_206C_200C_206A_206F_206A_202E_200B_200B_206B_206A_206A_206F_200D_200F_206B_200B_206B_206B_206A_206E_202C_200E_202E_200F_202B_206D_206F_200B_200D_202D_202B_202E(QuestStep P_0) - { - return P_0.ItemsToGather; - } - - static List<QuestWorkValue> _202D_206E_200F_206D_202A_202D_202C_200E_200D_206D_200F_202B_200B_200C_206A_202E_206E_200E_206E_200F_202A_206A_202C_200D_206E_206A_202A_202C_200C_200E_206B_206B_200B_202A_200E_206A_206A_200C_206C_206C_202E(QuestStep P_0) - { - return P_0.CompletionQuestVariablesFlags; - } - - static bool _202C_206E_202C_200D_206F_200F_200B_200C_200E_202D_200C_206E_202E_200C_200C_206D_206A_202A_202C_206D_202C_200D_202C_206A_206A_206B_200F_200E_202A_200D_202E_200C_200E_202C_200C_200D_206A_206F_202D_206E_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202C_200B_206C_200C_200F_200F_200F_200B_200C_206D_202E_206E_200E_200B_206D_206B_206A_206E_206B_206D_200F_206D_202D_200C_206D_200B_202D_202D_200D_202A_200E_206B_200C_202D_200F_206D_202B_206D_206C_206C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static NotSupportedException _206F_200C_200C_200C_200C_206A_202A_206E_200D_200D_200E_200D_200E_202B_206B_200E_206B_202E_206D_200D_206F_202E_202A_200C_202B_202C_200F_202D_200C_206B_200F_200F_206E_202C_202D_206E_202E_206B_200D_206E_202E() - { - return new NotSupportedException(); - } - } - - [IteratorStateMachine(typeof(_003CCreateAllTasks_003Ed__2))] public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CCreateAllTasks_003Ed__2(-2) + if (step.InteractionType != EInteractionType.Fish || !autoHookIpc.IsAvailable()) { - _003C_003E4__this = this, - _003C_003E3__quest = quest, - _003C_003E3__step = step - }; - } - - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); + yield break; + } + yield return new Mount.UnmountTask(); + yield return new SwitchClassJob.Task(EClassJob.Fisher); + yield return new FishTask(quest, step.ItemsToGather.FirstOrDefault(), step.CompletionQuestVariablesFlags); + foreach (GatheredItem item in step.ItemsToGather.Skip(1)) + { + yield return new FishTask(quest, item, step.CompletionQuestVariablesFlags); + } } } internal sealed record FishTask(Quest Quest, GatheredItem? GatheredItem, IList<QuestWorkValue?> CompletionQuestVariablesFlags) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202D_202B_200F_200F_200F_202D_206D_200F_206E_206E_206D_200B_206D_206A_202D_202E_202A_206C_202D_206D_206F_200F_200F_206A_206F_200C_206F_202B_200B_200C_202C_202D_202C_200C_200E_206F_206B_206E_200D_206A_202E(typeof(FishTask).TypeHandle); - } - } - public bool HasCompletionQuestVariablesFlags { get; } = QuestWorkUtils.HasCompletionFlags(CompletionQuestVariablesFlags); - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - string text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1580376260); - string obj = (HasCompletionQuestVariablesFlags ? global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(626978395) : global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1720149641)); - string text2; - if (GatheredItem == null) - { - text2 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1694032531); - } - else - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(4, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1824588032)); - defaultInterpolatedStringHandler.AppendFormatted(_200D_202D_202C_200F_202A_206A_200C_200C_202E_200B_206C_202E_206B_206C_200D_200B_202A_202B_200D_202D_206C_200D_200D_206E_206F_206B_202A_200E_200D_200C_206E_206D_200C_206C_200C_202A_200E_200E_206F_200D_202E(GatheredItem)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(350814621)); - defaultInterpolatedStringHandler.AppendFormatted(_206C_202A_206E_206C_200D_202A_206F_206C_200E_200B_200E_206D_200C_202B_202C_206F_200E_206F_200B_206F_202B_206D_202A_200B_200B_206D_200F_206F_202E_202B_206C_202D_200C_206C_206E_202E_206A_206A_202C_200E_202E(GatheredItem)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - text2 = defaultInterpolatedStringHandler.ToStringAndClear(); - } - return _200D_202D_202E_206B_200B_202C_202C_200E_202E_202C_200C_200C_206E_202B_206C_200B_200D_200D_206D_202C_200C_200C_202C_200E_206B_206E_206A_202B_206A_200C_200B_200C_206F_206D_200F_202A_202A_200B_206B_206F_202E(text, obj, text2); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200F_206E_202E_202D_202A_206E_200B_202B_206C_202D_202E_200E_200C_200B_206A_200E_200B_202A_206B_206F_206F_202D_202A_206E_200C_200D_200B_206E_206F_206E_206B_200C_200C_202C_206D_202A_202E_202A_202B_206B_202E(); - _202C_200B_202E_200E_202C_206C_202C_202D_206E_206C_206F_202D_206B_202B_202B_206D_200D_200C_200E_202E_206C_200C_200D_206A_202B_200F_202A_202D_206D_200B_206B_202A_206F_200B_200C_202B_202A_200B_202C_202E_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-501301525)); - _206D_202A_200B_200F_202D_200B_200E_206B_206B_206F_206E_206B_202C_200D_202B_200F_200B_206C_200E_202D_202A_200D_200F_202B_202B_202D_206F_206F_200D_206D_206A_200D_200B_200D_202D_202C_200C_202E_202B_200D_202E(builder, (object)Quest); - _202C_200B_202E_200E_202C_206C_202C_202D_206E_206C_206F_202D_206B_202B_202B_206D_200D_200C_200E_202E_206C_200C_200D_206A_202B_200F_202A_202D_206D_200B_206B_202A_206F_200B_200C_202B_202A_200B_202C_202E_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2119160719)); - _206D_202A_200B_200F_202D_200B_200E_206B_206B_206F_206E_206B_202C_200D_202B_200F_200B_206C_200E_202D_202A_200D_200F_202B_202B_202D_206F_206F_200D_206D_206A_200D_200B_200D_202D_202C_200C_202E_202B_200D_202E(builder, (object)GatheredItem); - _202C_200B_202E_200E_202C_206C_202C_202D_206E_206C_206F_202D_206B_202B_202B_206D_200D_200C_200E_202E_206C_200C_200D_206A_202B_200F_202A_202D_206D_200B_206B_202A_206F_200B_200C_202B_202A_200B_202C_202E_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1627383089)); - _206D_202A_200B_200F_202D_200B_200E_206B_206B_206F_206E_206B_202C_200D_202B_200F_200B_206C_200E_202D_202A_200D_200F_202B_202B_202D_206F_206F_200D_206D_206A_200D_200B_200D_202D_202C_200C_202E_202B_200D_202E(builder, (object)CompletionQuestVariablesFlags); - _202C_200B_202E_200E_202C_206C_202C_202D_206E_206C_206F_202D_206B_202B_202B_206D_200D_200C_200E_202E_206C_200C_200D_206A_202B_200F_202A_202D_206D_200B_206B_202A_206F_200B_200C_202B_202A_200B_202C_202E_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1417236057)); - _202C_200B_202E_200E_202C_206C_202C_202D_206E_206C_206F_202D_206B_202B_202B_206D_200D_200C_200E_202E_206C_200C_200D_206A_202B_200F_202A_202D_206D_200B_206B_202A_206F_200B_200C_202B_202A_200B_202C_202E_202E(builder, HasCompletionQuestVariablesFlags.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(FishTask? other) - { - int num = (((object)this == other) ? 2038737400 : 2038737406); - while (true) - { - int num2 = num; - int num3 = 2038737403; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = 2038737406; - break; - case 3: - return true; - case 6: - return false; - case 0: - num = ((!EqualityComparer<Questionable.Model.Questing.GatheredItem>.Default.Equals(GatheredItem, other.GatheredItem)) ? 2038737405 : 2038737402); - break; - case 5: - num = (((object)other == null) ? 2038737405 : 2038737401); - break; - case 8: - num = ((!EqualityComparer<Questionable.Model.Quest>.Default.Equals(Quest, other.Quest)) ? 2038737405 : 2038737403); - break; - case 2: - num = ((!_206F_200B_200C_202B_200F_200D_206D_200D_200F_206A_200B_202D_202C_206D_206B_206D_200E_202B_200C_202D_200D_200E_200C_206C_202C_202C_200D_206F_202E_202C_206A_202B_200F_200E_202A_200B_200D_200E_202E_206A_202E(EqualityContract, other.EqualityContract)) ? 2038737405 : 2038737395); - break; - case 1: - num = ((!EqualityComparer<IList<QuestWorkValue>>.Default.Equals(CompletionQuestVariablesFlags, other.CompletionQuestVariablesFlags)) ? 2038737405 : 2038737404); - break; - case 7: - return EqualityComparer<bool>.Default.Equals(HasCompletionQuestVariablesFlags, other.HasCompletionQuestVariablesFlags); - } - } - } - - bool IEquatable<FishTask>.Equals(FishTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202D_202B_200F_200F_200F_202D_206D_200F_206E_206E_206D_200B_206D_206A_202D_202E_202A_206C_202D_206D_206F_200F_200F_206A_206F_200C_206F_202B_200B_200C_202C_202D_202C_200C_200E_206F_206B_206E_200D_206A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static int _200D_202D_202C_200F_202A_206A_200C_200C_202E_200B_206C_202E_206B_206C_200D_200B_202A_202B_200D_202D_206C_200D_200D_206E_206F_206B_202A_200E_200D_200C_206E_206D_200C_206C_200C_202A_200E_200E_206F_200D_202E(GatheredItem P_0) - { - return P_0.ItemCount; - } - - static uint _206C_202A_206E_206C_200D_202A_206F_206C_200E_200B_200E_206D_200C_202B_202C_206F_200E_206F_200B_206F_202B_206D_202A_200B_200B_206D_200F_206F_202E_202B_206C_202D_200C_206C_206E_202E_206A_206A_202C_200E_202E(GatheredItem P_0) - { - return P_0.ItemId; - } - - static string _200D_202D_202E_206B_200B_202C_202C_200E_202E_202C_200C_200C_206E_202B_206C_200B_200D_200D_206D_202C_200C_200C_202C_200E_206B_206E_206A_202B_206A_200C_200B_200C_206F_206D_200F_202A_202A_200B_206B_206F_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static void _200F_206E_202E_202D_202A_206E_200B_202B_206C_202D_202E_200E_200C_200B_206A_200E_200B_202A_206B_206F_206F_202D_202A_206E_200C_200D_200B_206E_206F_206E_206B_200C_200C_202C_206D_202A_202E_202A_202B_206B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202C_200B_202E_200E_202C_206C_202C_202D_206E_206C_206F_202D_206B_202B_202B_206D_200D_200C_200E_202E_206C_200C_200D_206A_202B_200F_202A_202D_206D_200B_206B_202A_206F_200B_200C_202B_202A_200B_202C_202E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206D_202A_200B_200F_202D_200B_200E_206B_206B_206F_206E_206B_202C_200D_202B_200F_200B_206C_200E_202D_202A_200D_200F_202B_202B_202D_206F_206F_200D_206D_206A_200D_200B_200D_202D_202C_200C_202E_202B_200D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206F_200B_200C_202B_200F_200D_206D_200D_200F_206A_200B_202D_202C_206D_206B_206D_200E_202B_200C_202D_200D_200E_200C_206C_202C_202C_200D_206F_202E_202C_206A_202B_200F_200E_202A_200B_200D_200E_202E_206A_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "Fish" + (HasCompletionQuestVariablesFlags ? "*" : "") + ((GatheredItem != null) ? $"({GatheredItem.ItemCount}x {GatheredItem.ItemId})" : ""); } } @@ -512,133 +55,69 @@ internal static class Fish private bool _cleanupDone; - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - int num = ((!HasRequestedItem(base.Task.GatheredItem)) ? 1782485071 : 1782485057); - string value = default(string); - while (true) + if (HasRequestedItem(base.Task.GatheredItem)) { - int num2 = num; - int num3 = 1782485064; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + logger.LogInformation("Already have the requested fish in inventory, skipping fish task."); + return false; + } + if (HasMatchingCompletionQuestWork()) + { + logger.LogInformation("Quest variables already match, skipping fish task."); + return false; + } + if (!_wasAutoHookEnabled) + { + autoHookIpc.SetPluginState(enabled: true); + if (!autoHookIpc.GetPluginState()) { - case 10: - num = 1782485057; - break; - case 2: - throw new TaskException(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2028014185)); - case 4: - _206A_200C_202C_202C_202D_206D_200F_202B_202E_202B_202C_206B_200B_206A_200B_200E_206A_200E_200B_206A_202B_206F_202E_200B_200B_206E_200F_202D_202C_200D_202A_202E_200D_202D_206F_200D_206D_206B_202B_206D_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1855558187), Array.Empty<object>()); - return false; - case 0: - { - _200D_202D_206E_202D_206A_206A_206F_202E_200D_206A_202C_206F_202B_206D_206E_202A_202E_206E_202E_206E_206F_202A_200B_200C_202D_200E_206F_202A_202C_206E_200B_206F_206B_202B_200F_200C_200D_202D_206F_202C_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(704472200), new object[1] { base.Task.Quest.Id }); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(34, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(807535051)); - defaultInterpolatedStringHandler.AppendFormatted(base.Task.Quest.Id); - throw new TaskException(defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 6: - _206A_200C_202C_202C_202D_206D_200F_202B_202E_202B_202C_206B_200B_206A_200B_200E_206A_200E_200B_206A_202B_206F_202E_200B_200B_206E_200F_202D_202C_200D_202A_202E_200D_202D_206F_200D_206D_206B_202B_206D_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1839561848), new object[1] { base.Task.Quest.Id }); - autoHookIpc.CreateAndSelectAnonymousPreset(value); - OrientToWater(); - autoHookIpc.SetAutoStartFishing(enabled: true); - _started = true; - return true; - case 7: - num = ((!HasMatchingCompletionQuestWork()) ? 1782485065 : 1782485068); - break; - case 9: - _206A_200C_202C_202C_202D_206D_200F_202B_202E_202B_202C_206B_200B_206A_200B_200E_206A_200E_200B_206A_202B_206F_202E_200B_200B_206E_200F_202D_202C_200D_202A_202E_200D_202D_206F_200D_206D_206B_202B_206D_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2069167777), Array.Empty<object>()); - return false; - case 8: - _206B_200E_200D_200D_200F_200B_206C_206D_202B_206C_200F_202E_206B_202B_206D_202A_200D_202D_200E_206E_206D_200C_202D_206F_200E_200C_200E_206D_202B_200D_202E_200D_200B_202A_200C_206A_206A_206C_200C_206B_202E(chatGui, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2028014185), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); - num = 1782485066; - break; - case 1: - num = (_wasAutoHookEnabled ? 1782485059 : 1782485067); - break; - case 3: - autoHookIpc.SetPluginState(enabled: true); - num = (autoHookIpc.GetPluginState() ? 1782485059 : 1782485069); - break; - case 5: - _200D_202D_206E_202D_206A_206A_206F_202E_200D_206A_202C_206F_202B_206D_206E_202A_202E_206E_202E_206E_206F_202A_200B_200C_202D_200E_206F_202A_202C_206E_200B_206F_206B_202B_200F_200C_200D_202D_206F_202C_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1913024892), new object[1] { global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2025711816) }); - num = (sendNotificationExecutor.Start(new SendNotification.Task(EInteractionType.Fish, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(774695212))) ? 1782485066 : 1782485056); - break; - case 11: - num = (AutoHookPresetData.FishingPresets.TryGetValue((QuestId)base.Task.Quest.Id, out value) ? 1782485070 : 1782485064); - break; + logger.LogWarning("{ErrorText}", "AutoHook is required for fishing but could not be enabled. Please install or enable AutoHook."); + if (!sendNotificationExecutor.Start(new SendNotification.Task(EInteractionType.Fish, "AutoHook is required for fishing but could not be enabled. Please install or enable AutoHook."))) + { + chatGui.PrintError("AutoHook is required for fishing but could not be enabled. Please install or enable AutoHook.", "Questionable", 576); + } + throw new TaskException("AutoHook is required for fishing but could not be enabled. Please install or enable AutoHook."); } } + if (!AutoHookPresetData.FishingPresets.TryGetValue((QuestId)base.Task.Quest.Id, out string value)) + { + logger.LogWarning("No fishing preset found for quest {QuestId}", base.Task.Quest.Id); + throw new TaskException($"No fishing preset found for quest {base.Task.Quest.Id}"); + } + logger.LogInformation("Creating anonymous AutoHook preset for quest {QuestId}", base.Task.Quest.Id); + autoHookIpc.CreateAndSelectAnonymousPreset(value); + OrientToWater(); + autoHookIpc.SetAutoStartFishing(enabled: true); + _started = true; + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - int num = ((!HasRequestedItem(base.Task.GatheredItem)) ? (-1288503250) : (-1288503251)); - while (true) + if (HasRequestedItem(base.Task.GatheredItem)) { - int num2 = num; - int num3 = -1288503250; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -1288503251; - break; - case 1: - _200E_200F_200B_200B_202C_202B_206F_200E_206B_206F_206D_206D_206C_202E_206B_202B_206F_202E_206A_202E_200D_202C_200D_202B_202B_200B_202B_206A_200C_206F_202C_200B_202C_200B_202B_202D_206D_206C_202E_202C_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-571223897), Array.Empty<object>()); - Cleanup(); - return ETaskResult.TaskComplete; - case 4: - return ETaskResult.StillRunning; - case 0: - num = ((!HasMatchingCompletionQuestWork()) ? (-1288503254) : (-1288503249)); - break; - case 3: - _200E_200F_200B_200B_202C_202B_206F_200E_206B_206F_206D_206D_206C_202E_206B_202B_206F_202E_206A_202E_200D_202C_200D_202B_202B_200B_202B_206A_200C_206F_202C_200B_202C_200B_202B_202D_206D_206C_202E_202C_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(895316843), Array.Empty<object>()); - Cleanup(); - return ETaskResult.TaskComplete; - } + logger.LogDebug("Requested fish collected, completing task."); + Cleanup(); + return ETaskResult.TaskComplete; } + if (HasMatchingCompletionQuestWork()) + { + logger.LogDebug("Quest variables match, completing task."); + Cleanup(); + return ETaskResult.TaskComplete; + } + return ETaskResult.StillRunning; } public void StopNow() { - int num = ((!_started) ? (-861812504) : (-861812503)); - while (true) + if (_started) { - int num2 = num; - int num3 = -861812504; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -861812503; - break; - case 1: - Cleanup(); - num = -861812504; - break; - case 0: - return; - } + Cleanup(); } } - void IStoppableTaskExecutor.StopNow() - { - //ILSpy generated this explicit interface implementation from .override directive in StopNow - this.StopNow(); - } - public override bool ShouldInterruptOnDamage() { return false; @@ -646,203 +125,70 @@ internal static class Fish private bool HasMatchingCompletionQuestWork() { - int num = (base.Task.HasCompletionQuestVariablesFlags ? 631430922 : 631430921); - QuestProgressInfo questProgressInfo = default(QuestProgressInfo); - while (true) + if (!base.Task.HasCompletionQuestVariablesFlags) { - int num2 = num; - int num3 = 631430922; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return QuestWorkUtils.MatchesQuestWork(base.Task.CompletionQuestVariablesFlags, questProgressInfo); - case 4: - return false; - case 0: - questProgressInfo = questFunctions.GetQuestProgressInfo(base.Task.Quest.Id); - num = ((questProgressInfo == null) ? 631430926 : 631430923); - break; - case 2: - num = 631430921; - break; - case 3: - return false; - } + return false; } + QuestProgressInfo questProgressInfo = questFunctions.GetQuestProgressInfo(base.Task.Quest.Id); + if (questProgressInfo != null) + { + return QuestWorkUtils.MatchesQuestWork(base.Task.CompletionQuestVariablesFlags, questProgressInfo); + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private void Cleanup() { - int num = ((!_cleanupDone) ? (-880332252) : (-880332249)); - while (true) + if (!_cleanupDone) { - int num2 = num; - int num3 = -880332251; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0048; - case 1: - _200E_200F_200B_200B_202C_202B_206F_200E_206B_206F_206D_206D_206C_202E_206B_202B_206F_202E_206A_202E_200D_202C_200D_202B_202B_200B_202B_206A_200C_206F_202C_200B_202C_200B_202B_202D_206D_206C_202E_202C_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1552997573), Array.Empty<object>()); - autoHookIpc.SetAutoStartFishing(enabled: false); - StopFishing(); - autoHookIpc.DeleteAllAnonymousPresets(); - autoHookIpc.SetPluginState(_wasAutoHookEnabled); - _cleanupDone = true; - return; - case 2: - return; - } - continue; - IL_0048: - num = -880332249; + logger.LogDebug("Cleaning up fish task."); + autoHookIpc.SetAutoStartFishing(enabled: false); + StopFishing(); + autoHookIpc.DeleteAllAnonymousPresets(); + autoHookIpc.SetPluginState(_wasAutoHookEnabled); + _cleanupDone = true; } } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void OrientToWater() { - IPlayerCharacter playerCharacter = _200B_202C_200B_200B_202D_200F_206B_206D_200F_206A_206B_206F_206D_202D_200E_206E_202A_202C_206B_206C_202A_200E_202B_206B_206A_206B_200B_200C_200D_200E_206E_202D_206F_200B_200E_206C_200F_206C_200F_206F_202E(objectTable); - int num = ((playerCharacter != null) ? 2106892356 : 2106892353); - (float, Vector3)? tuple = default((float, Vector3)?); - while (true) + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + if (localPlayer != null) { - int num2 = num; - int num3 = 2106892352; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + (float, Vector3)? tuple = WaterSurfaceDetector.FindFishableRotation(localPlayer.Position); + if (!tuple.HasValue) { - case 0: - _200D_202D_206E_202D_206A_206A_206F_202E_200D_206A_202C_206F_202B_206D_206E_202A_202E_206E_202E_206E_206F_202A_200B_200C_202D_200E_206F_202A_202C_206E_200B_206F_206B_202B_200F_200C_200D_202D_206F_202C_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-977369121), Array.Empty<object>()); - return; - case 3: - { - Vector3 item = tuple.Value.Item2; - ActionManager.Instance()->AutoFaceTargetPosition(&item, 0uL); + logger.LogWarning("No fishable water found near the player; AutoHook may fail to cast."); return; } - case 1: - return; - case 2: - num = 2106892353; - break; - case 4: - tuple = _202A_202B_200D_200E_206C_206B_202C_200C_206F_206C_200C_200C_206F_202E_202B_206A_202D_202E_202E_202E_206E_200F_206E_202E_202E_200D_200B_202D_200D_200D_202C_206A_200C_200E_206C_206A_200C_200D_202D_200E_202E(_202D_202D_202E_206C_206E_206C_202C_202D_200F_206D_206B_200C_206B_200B_200B_202A_200C_206B_206E_200E_200E_202C_206D_200F_200F_206F_200F_202A_200D_200C_200E_200C_206B_206E_206D_202C_206C_206E_202C_206D_202E((IGameObject)playerCharacter), 36); - num = (tuple.HasValue ? 2106892355 : 2106892352); - break; - } + Vector3 item = tuple.Value.Item2; + ActionManager.Instance()->AutoFaceTargetPosition(&item, 0uL); } } private unsafe static void StopFishing() { ActionManager* ptr = ActionManager.Instance(); - int num = ((ptr == null) ? 1063786085 : 1063786084); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 1063786085; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return; - case 1: - ptr->UseAction(ActionType.Action, 299u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); - num = 1063786085; - break; - case 2: - num = 1063786084; - break; - } + ptr->UseAction(ActionType.Action, 299u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); } } - - static void _206A_200C_202C_202C_202D_206D_200F_202B_202E_202B_202C_206B_200B_206A_200B_200E_206A_200E_200B_206A_202B_206F_202E_200B_200B_206E_200F_202D_202C_200D_202A_202E_200D_202D_206F_200D_206D_206B_202B_206D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static void _200D_202D_206E_202D_206A_206A_206F_202E_200D_206A_202C_206F_202B_206D_206E_202A_202E_206E_202E_206E_206F_202A_200B_200C_202D_200E_206F_202A_202C_206E_200B_206F_206B_202B_200F_200C_200D_202D_206F_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static void _206B_200E_200D_200D_200F_200B_206C_206D_202B_206C_200F_202E_206B_202B_206D_202A_200D_202D_200E_206E_206D_200C_202D_206F_200E_200C_200E_206D_202B_200D_202E_200D_200B_202A_200C_206A_206A_206C_200C_206B_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } - - static void _200E_200F_200B_200B_202C_202B_206F_200E_206B_206F_206D_206D_206C_202E_206B_202B_206F_202E_206A_202E_200D_202C_200D_202B_202B_200B_202B_206A_200C_206F_202C_200B_202C_200B_202B_202D_206D_206C_202E_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static IPlayerCharacter _200B_202C_200B_200B_202D_200F_206B_206D_200F_206A_206B_206F_206D_202D_200E_206E_202A_202C_206B_206C_202A_200E_202B_206B_206A_206B_200B_200C_200D_200E_206E_202D_206F_200B_200E_206C_200F_206C_200F_206F_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static Vector3 _202D_202D_202E_206C_206E_206C_202C_202D_200F_206D_206B_200C_206B_200B_200B_202A_200C_206B_206E_200E_200E_202C_206D_200F_200F_206F_200F_202A_200D_200C_200E_200C_206B_206E_206D_202C_206C_206E_202C_206D_202E(IGameObject P_0) - { - return P_0.Position; - } - - static (float, Vector3)? _202A_202B_200D_200E_206C_206B_202C_200C_206F_206C_200C_200C_206F_202E_202B_206A_202D_202E_202E_202E_206E_200F_206E_202E_202E_200D_200B_202D_200D_200D_202C_206A_200C_200E_206C_206A_200C_200D_202D_200E_202E(Vector3 P_0, int P_1) - { - return WaterSurfaceDetector.FindFishableRotation(P_0, P_1); - } } private const uint QuitActionId = 299u; private unsafe static bool HasRequestedItem(GatheredItem? item) { - int num = ((item != null) ? 1208879957 : 1208879956); - InventoryManager* ptr = default(InventoryManager*); - while (true) + if (item == null) { - int num2 = num; - int num3 = 1208879957; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return false; - case 2: - return ptr->GetInventoryItemCount(_200C_202B_202C_206A_206B_202A_202C_202A_206C_202D_202A_202E_202C_206B_206A_202E_200F_202D_202A_206F_206B_202B_206D_202A_202E_200C_206A_202C_202A_206E_206F_202E_206E_202C_202B_202E_206A_200C_206E_206D_202E(item), isHq: false, checkEquipped: true, checkArmory: true, (short)_202D_206C_206F_202E_206D_206C_202A_200D_206D_202E_206B_200F_202A_202A_200B_206C_206A_206F_206B_206C_202C_200C_202A_206A_202D_200C_206A_206D_200B_200D_202B_202B_206C_200D_206F_206F_202C_206E_206B_202D_202E(item)) >= _206E_200B_206A_206D_200E_202D_206C_202D_206E_206B_206C_206B_202C_206A_206D_200B_206F_206B_206F_200C_202D_202D_206F_206E_200E_202E_206D_206D_200B_200D_202B_200D_206D_202A_202B_206E_200B_200F_206E_202D_202E(item); - case 1: - return false; - case 4: - num = 1208879956; - break; - case 0: - ptr = InventoryManager.Instance(); - num = ((ptr != null) ? 1208879959 : 1208879958); - break; - } + return false; } - } - - static uint _200C_202B_202C_206A_206B_202A_202C_202A_206C_202D_202A_202E_202C_206B_206A_202E_200F_202D_202A_206F_206B_202B_206D_202A_202E_200C_206A_202C_202A_206E_206F_202E_206E_202C_202B_202E_206A_200C_206E_206D_202E(GatheredItem P_0) - { - return P_0.ItemId; - } - - static ushort _202D_206C_206F_202E_206D_206C_202A_200D_206D_202E_206B_200F_202A_202A_200B_206C_206A_206F_206B_206C_202C_200C_202A_206A_202D_200C_206A_206D_200B_200D_202B_202B_206C_200D_206F_206F_202C_206E_206B_202D_202E(GatheredItem P_0) - { - return P_0.Collectability; - } - - static int _206E_200B_206A_206D_200E_202D_206C_202D_206E_206B_206C_206B_202C_206A_206D_200B_206F_206B_206F_200C_202D_202D_206F_206E_200E_202E_206D_206D_200B_200D_202B_200D_206D_202A_202B_206E_200B_200F_206E_202D_202E(GatheredItem P_0) - { - return P_0.ItemCount; + InventoryManager* ptr = InventoryManager.Instance(); + if (ptr == null) + { + return false; + } + return ptr->GetInventoryItemCount(item.ItemId, isHq: false, checkEquipped: true, checkArmory: true, (short)item.Collectability) >= item.ItemCount; } } diff --git a/Questionable/Questionable.Controller.Steps.Shared/Gather.cs b/Questionable/Questionable.Controller.Steps.Shared/Gather.cs index a66d85b..04af686 100644 --- a/Questionable/Questionable.Controller.Steps.Shared/Gather.cs +++ b/Questionable/Questionable.Controller.Steps.Shared/Gather.cs @@ -1,19 +1,11 @@ using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; -using System.Runtime.CompilerServices; -using System.Text; -using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Game.Text; using Dalamud.Game.Text.SeStringHandling; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using LLib.GameData; -using Lumina.Excel; -using Lumina.Excel.Sheets; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Common; @@ -29,990 +21,29 @@ internal static class Gather { internal sealed class Factory : ITaskFactory { - [CompilerGenerated] - private sealed class _003CCreateAllTasks_003Ed__0 : IEnumerable<ITask>, IEnumerable, IEnumerator<ITask>, IEnumerator, IDisposable + public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - private int _003C_003E1__state; - - private ITask _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - private QuestStep step; - - public QuestStep _003C_003E3__step; - - private Questionable.Model.Quest quest; - - public Questionable.Model.Quest _003C_003E3__quest; - - private QuestSequence sequence; - - public QuestSequence _003C_003E3__sequence; - - private List<GatheredItem>.Enumerator _003C_003E7__wrap1; - - ITask IEnumerator<ITask>.Current + if (step.InteractionType != EInteractionType.Gather) { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } + yield break; } - - object IEnumerator.Current + foreach (GatheredItem item in step.ItemsToGather) { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } + yield return new DelayedGatheringTask(item, quest, sequence.Sequence); } - - [DebuggerHidden] - public _003CCreateAllTasks_003Ed__0(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _200F_206D_206F_202E_202B_202E_200D_206A_206B_206F_206D_200D_206F_206A_206A_200C_202B_206E_206A_202D_206C_206E_206A_206D_202E_200F_206A_206B_200F_200E_202B_206B_206C_202A_200B_206E_202B_202E_200C_206D_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num == -3) ? 501970118 : 501970117); - while (true) - { - int num3 = num2; - int num4 = 501970116; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - default: - continue; - case 0: - num2 = 501970117; - continue; - case 1: - if (num == 1) - { - num2 = 501970118; - continue; - } - break; - case 2: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E7__wrap1 = default(List<GatheredItem>.Enumerator); - _003C_003E1__state = -2; - } - - private bool MoveNext() - { - try - { - int num = _003C_003E1__state; - int num2 = ((num == 0) ? (-716554226) : (-716554239)); - while (true) - { - int num3 = num2; - int num4 = -716554232; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 8: - num2 = (_003C_003E7__wrap1.MoveNext() ? (-716554228) : (-716554231)); - break; - case 5: - _003C_003E1__state = -3; - num2 = -716554240; - break; - case 2: - return false; - case 7: - return false; - case 0: - num2 = -716554239; - break; - case 3: - _003C_003E7__wrap1 = _206B_200E_206C_206C_206D_206F_202D_202B_200F_206B_200E_200B_202A_202A_206E_206A_200E_206F_206F_200C_206A_200D_200D_206A_206B_202A_200F_206F_206F_206D_202B_200C_200B_202B_200B_202D_202B_200C_202E_200E_202E(step).GetEnumerator(); - _003C_003E1__state = -3; - num2 = -716554240; - break; - case 9: - num2 = ((num == 1) ? (-716554227) : (-716554230)); - break; - case 4: - { - GatheredItem current = _003C_003E7__wrap1.Current; - _003C_003E2__current = new DelayedGatheringTask(current, quest, _206A_202B_202E_200F_202E_206E_206F_200D_200F_200F_202C_206B_206B_200F_206E_202B_206E_200C_202C_206E_206E_206D_206B_200B_206B_202B_202A_206C_206A_200F_202B_206B_200D_206A_206B_200E_206C_202E_206E_202E(sequence)); - _003C_003E1__state = 1; - return true; - } - case 6: - _003C_003E1__state = -1; - num2 = ((_200C_202A_202B_206A_202B_206A_206A_200F_206C_202C_206D_206E_202D_206F_206E_202A_206F_202A_206F_206E_206E_202A_202B_202B_206F_200D_200E_206E_206D_200D_200B_206B_200C_206B_206B_206E_206B_202D_206D_206C_202E(step) == EInteractionType.Gather) ? (-716554229) : (-716554225)); - break; - case 1: - _003C_003Em__Finally1(); - _003C_003E7__wrap1 = default(List<GatheredItem>.Enumerator); - return false; - } - } - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - ((IDisposable)_003C_003E7__wrap1/*cast due to .constrained prefix*/).Dispose(); - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _202C_206F_200C_200C_206F_200D_202A_206B_200D_202A_206B_202A_200D_202C_202A_202A_202B_202B_200D_206E_202E_202A_206D_206F_200B_202B_200E_206E_200B_206E_200B_202D_200D_202B_206F_200B_206E_206F_206C_200C_202E(); - } - - [DebuggerHidden] - IEnumerator<ITask> IEnumerable<ITask>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? (-1452607812) : (-1452607816)); - _003CCreateAllTasks_003Ed__0 _003CCreateAllTasks_003Ed__ = default(_003CCreateAllTasks_003Ed__0); - while (true) - { - int num2 = num; - int num3 = -1452607812; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _003CCreateAllTasks_003Ed__ = new _003CCreateAllTasks_003Ed__0(0); - num = -1452607810; - break; - case 4: - num = ((_003C_003El__initialThreadId != _200F_206D_206F_202E_202B_202E_200D_206A_206B_206F_206D_200D_206F_206A_206A_200C_202B_206E_206A_202D_206C_206E_206A_206D_202E_200F_206A_206B_200F_200E_202B_206B_206C_202A_200B_206E_202B_202E_200C_206D_202E()) ? (-1452607812) : (-1452607811)); - break; - case 3: - num = -1452607816; - break; - case 2: - _003CCreateAllTasks_003Ed__.quest = _003C_003E3__quest; - _003CCreateAllTasks_003Ed__.sequence = _003C_003E3__sequence; - _003CCreateAllTasks_003Ed__.step = _003C_003E3__step; - return _003CCreateAllTasks_003Ed__; - case 1: - _003C_003E1__state = 0; - _003CCreateAllTasks_003Ed__ = this; - num = -1452607810; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ITask>)this).GetEnumerator(); - } - - static int _200F_206D_206F_202E_202B_202E_200D_206A_206B_206F_206D_200D_206F_206A_206A_200C_202B_206E_206A_202D_206C_206E_206A_206D_202E_200F_206A_206B_200F_200E_202B_206B_206C_202A_200B_206E_202B_202E_200C_206D_202E() - { - return Environment.CurrentManagedThreadId; - } - - static EInteractionType _200C_202A_202B_206A_202B_206A_206A_200F_206C_202C_206D_206E_202D_206F_206E_202A_206F_202A_206F_206E_206E_202A_202B_202B_206F_200D_200E_206E_206D_200D_200B_206B_200C_206B_206B_206E_206B_202D_206D_206C_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static List<GatheredItem> _206B_200E_206C_206C_206D_206F_202D_202B_200F_206B_200E_200B_202A_202A_206E_206A_200E_206F_206F_200C_206A_200D_200D_206A_206B_202A_200F_206F_206F_206D_202B_200C_200B_202B_200B_202D_202B_200C_202E_200E_202E(QuestStep P_0) - { - return P_0.ItemsToGather; - } - - static byte _206A_202B_202E_200F_202E_206E_206F_200D_200F_200F_202C_206B_206B_200F_206E_202B_206E_200C_202C_206E_206E_206D_206B_200B_206B_202B_202A_206C_206A_200F_202B_206B_200D_206A_206B_200E_206C_202E_206E_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - - static NotSupportedException _202C_206F_200C_200C_206F_200D_202A_206B_200D_202A_206B_202A_200D_202C_202A_202A_202B_202B_200D_206E_202E_202A_206D_206F_200B_202B_200E_206E_200B_206E_200B_202D_200D_202B_206F_200B_206E_206F_206C_200C_202E() - { - return new NotSupportedException(); - } - } - - [IteratorStateMachine(typeof(_003CCreateAllTasks_003Ed__0))] - public IEnumerable<ITask> CreateAllTasks(Questionable.Model.Quest quest, QuestSequence sequence, QuestStep step) - { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CCreateAllTasks_003Ed__0(-2) - { - _003C_003E3__quest = quest, - _003C_003E3__sequence = sequence, - _003C_003E3__step = step - }; - } - - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Questionable.Model.Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); } } - internal sealed record DelayedGatheringTask(GatheredItem GatheredItem, Questionable.Model.Quest Quest, byte Sequence) : ITask + internal sealed record DelayedGatheringTask(GatheredItem GatheredItem, Quest Quest, byte Sequence) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206E_206E_206C_200B_200C_200C_200E_206B_206D_206A_200E_202D_202A_200B_202D_206F_206A_206D_202A_202B_202A_200B_200E_206E_200F_202C_200F_202A_200B_202C_206D_206A_202A_200B_202D_206A_200E_200F_206A_206D_202E(typeof(DelayedGatheringTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(23, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1524160923)); - defaultInterpolatedStringHandler.AppendFormatted(_206E_200F_206D_202D_206D_202D_200E_202D_202E_200F_202B_202B_206B_202A_206E_202B_202A_200C_206D_202E_200B_200D_206B_202D_206C_200E_202A_206A_200D_200F_202C_206E_206D_200C_202A_206F_206C_202A_206B_200E_202E(GatheredItem)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202C_206E_206B_200C_206C_200E_206A_206E_202A_206A_200B_202B_202D_202C_200C_200E_202D_202A_200C_206D_200E_206C_206B_200F_202D_200E_202C_206B_202E_200C_202D_202D_206D_206D_206D_202A_202A_200E_200C_200F_202E(); - _200C_206B_202C_200D_202B_202B_206B_202B_202D_206B_200C_206B_206D_200B_206E_202E_200B_200C_200B_200D_200D_200B_200B_202A_202C_202A_206B_200F_200C_206D_200D_206A_206B_200B_202B_200F_202A_202B_202D_206D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(872886747)); - _206B_200E_202B_200C_206C_206A_200B_200D_202A_206B_202B_206C_206E_202D_206A_206F_202C_206A_200C_206A_202A_202C_206A_206C_202A_206A_200E_202B_206B_202D_200B_202E_200D_206C_202B_202A_202D_200B_200B_206F_202E(builder, (object)GatheredItem); - _200C_206B_202C_200D_202B_202B_206B_202B_202D_206B_200C_206B_206D_200B_206E_202E_200B_200C_200B_200D_200D_200B_200B_202A_202C_202A_206B_200F_200C_206D_200D_206A_206B_200B_202B_200F_202A_202B_202D_206D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-119074861)); - _206B_200E_202B_200C_206C_206A_200B_200D_202A_206B_202B_206C_206E_202D_206A_206F_202C_206A_200C_206A_202A_202C_206A_206C_202A_206A_200E_202B_206B_202D_200B_202E_200D_206C_202B_202A_202D_200B_200B_206F_202E(builder, (object)Quest); - _200C_206B_202C_200D_202B_202B_206B_202B_202D_206B_200C_206B_206D_200B_206E_202E_200B_200C_200B_200D_200D_200B_200B_202A_202C_202A_206B_200F_200C_206D_200D_206A_206B_200B_202B_200F_202A_202B_202D_206D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1883281888)); - _200C_206B_202C_200D_202B_202B_206B_202B_202D_206B_200C_206B_206D_200B_206E_202E_200B_200C_200B_200D_200D_200B_200B_202A_202C_202A_206B_200F_200C_206D_200D_206A_206B_200B_202B_200F_202A_202B_202D_206D_202E(builder, Sequence.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(DelayedGatheringTask? other) - { - int num = (((object)this == other) ? (-2134449600) : (-2134449596)); - while (true) - { - int num2 = num; - int num3 = -2134449598; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - num = ((!EqualityComparer<Questionable.Model.Questing.GatheredItem>.Default.Equals(GatheredItem, other.GatheredItem)) ? (-2134449595) : (-2134449598)); - break; - case 4: - return EqualityComparer<byte>.Default.Equals(Sequence, other.Sequence); - case 6: - num = (((object)other == null) ? (-2134449595) : (-2134449597)); - break; - case 7: - return false; - case 3: - num = -2134449596; - break; - case 1: - num = ((!_206C_206E_200D_200E_206F_206F_202E_200B_200C_206E_206F_206B_200F_202C_202D_200B_202D_202B_200B_206A_206D_206D_200D_206E_200F_200C_206A_202A_200D_202E_206A_206E_200B_206C_206D_206A_202D_206C_206F_206E_202E(EqualityContract, other.EqualityContract)) ? (-2134449595) : (-2134449593)); - break; - case 2: - return true; - case 0: - num = ((!EqualityComparer<Questionable.Model.Quest>.Default.Equals(Quest, other.Quest)) ? (-2134449595) : (-2134449594)); - break; - } - } - } - - bool IEquatable<DelayedGatheringTask>.Equals(DelayedGatheringTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206E_206E_206C_200B_200C_200C_200E_206B_206D_206A_200E_202D_202A_200B_202D_206F_206A_206D_202A_202B_202A_200B_200E_206E_200F_202C_200F_202A_200B_202C_206D_206A_202A_200B_202D_206A_200E_200F_206A_206D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static uint _206E_200F_206D_202D_206D_202D_200E_202D_202E_200F_202B_202B_206B_202A_206E_202B_202A_200C_206D_202E_200B_200D_206B_202D_206C_200E_202A_206A_200D_200F_202C_206E_206D_200C_202A_206F_206C_202A_206B_200E_202E(GatheredItem P_0) - { - return P_0.ItemId; - } - - static void _202C_206E_206B_200C_206C_200E_206A_206E_202A_206A_200B_202B_202D_202C_200C_200E_202D_202A_200C_206D_200E_206C_206B_200F_202D_200E_202C_206B_202E_200C_202D_202D_206D_206D_206D_202A_202A_200E_200C_200F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200C_206B_202C_200D_202B_202B_206B_202B_202D_206B_200C_206B_206D_200B_206E_202E_200B_200C_200B_200D_200D_200B_200B_202A_202C_202A_206B_200F_200C_206D_200D_206A_206B_200B_202B_200F_202A_202B_202D_206D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206B_200E_202B_200C_206C_206A_200B_200D_202A_206B_202B_206C_206E_202D_206A_206F_202C_206A_200C_206A_202A_202C_206A_206C_202A_206A_200E_202B_206B_202D_200B_202E_200D_206C_202B_202A_202D_200B_200B_206F_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206C_206E_200D_200E_206F_206F_202E_200B_200C_206E_206F_206B_200F_202C_202D_200B_202D_202B_200B_206A_206D_206D_200D_206E_200F_200C_206A_202A_200D_202E_206A_206E_200B_206C_206D_206A_202D_206C_206F_206E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"Gathering(pending for {GatheredItem.ItemId})"; } } internal sealed class DelayedGatheringExecutor(GatheringPointRegistry gatheringPointRegistry, TerritoryData territoryData, IClientState clientState, IObjectTable objectTable, IServiceProvider serviceProvider, ILogger<DelayedGatheringExecutor> logger) : TaskExecutor<DelayedGatheringTask>(), IExtraTaskCreator, ITaskExecutor { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass9_0 - { - public DelayedGatheringExecutor _003C_003E4__this; - - public ushort territoryId; - - internal bool _003CCreateExtraTasks_003Eb__0() - { - return _200F_202D_200F_206F_206C_200D_200C_200B_206E_202A_202B_206E_200E_202E_200D_200F_206C_200D_206E_200B_200C_200D_202A_202E_200C_206E_202D_206C_206C_206A_206D_200C_202D_206B_206D_206A_200C_202E_206A_200C_202E(_003C_003E4__this.clientState) == territoryId; - } - - static uint _200F_202D_200F_206F_206C_200D_200C_200B_206E_202A_202B_206E_200E_202E_200D_200F_206C_200D_206E_200B_200C_200D_202A_202E_200C_206E_202D_206C_206C_206A_206D_200C_202D_206B_206D_206A_200C_202E_206A_200C_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - } - - [CompilerGenerated] - private sealed class _003CCreateExtraTasks_003Ed__9 : IEnumerable<ITask>, IEnumerable, IEnumerator<ITask>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ITask _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - public DelayedGatheringExecutor _003C_003E4__this; - - private _003C_003Ec__DisplayClass9_0 _003C_003E8__1; - - private GatheringPointId _003CgatheringPointId_003E5__2; - - private GatheringRoot _003CgatheringRoot_003E5__3; - - private IDisposable _003C__003E5__4; - - private QuestSequence _003CgatheringSequence_003E5__5; - - private List<QuestStep>.Enumerator _003C_003E7__wrap5; - - private IEnumerator<ITask> _003C_003E7__wrap6; - - ITask IEnumerator<ITask>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CCreateExtraTasks_003Ed__9(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _200D_200C_202C_200F_200B_202E_206D_202D_200B_202D_206C_206D_200D_200D_206C_200C_206E_202C_206C_200D_200E_202B_200E_206D_200D_200F_206D_202D_202A_202A_206E_202E_202A_202A_200C_206F_206E_200E_206B_206C_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = -5; - int num3 = num; - int num4 = (((uint)(~(~num3 + num2)) <= 2u) ? 1123138263 : 1123138260); - while (true) - { - int num5 = num4; - num2 = 1123138261; - num3 = num5; - int num6 = num3 + num2; - int num7 = num3 & num2; - switch (num6 - (num7 + num7)) - { - default: - continue; - case 0: - num4 = 1123138260; - continue; - case 1: - num2 = 3; - num3 = num; - if ((uint)(~(~num3 + num2)) <= 1u) - { - num4 = 1123138263; - continue; - } - break; - case 2: - try - { - num2 = -5; - num3 = num; - num4 = (((uint)(~(~num3 + num2)) <= 1u) ? (-1825309648) : (-1825309647)); - while (true) - { - int num8 = num4; - num2 = -1825309648; - num3 = num8; - switch ((num3 | num2) - (num3 & num2)) - { - case 3: - goto end_IL_00a0; - case 1: - num2 = 3; - num3 = num; - num4 = (((uint)(~(~num3 + num2)) <= 1u) ? (-1825309648) : (-1825309645)); - break; - case 2: - num4 = -1825309647; - break; - case 0: - try - { - num4 = ((num == -5) ? 1981551720 : 1981551722); - while (true) - { - int num9 = num4; - num2 = 1981551723; - num3 = num9; - int num10 = num3 + num2; - int num11 = num3 & num2; - switch (num10 - (num11 + num11)) - { - case 0: - num4 = 1981551722; - break; - case 1: - num2 = 3; - num3 = num; - num4 = (((uint)(~(~num3 + num2)) <= 1u) ? 1981551720 : 1981551721); - break; - case 2: - goto end_IL_0128; - case 3: - try - { - } - finally - { - _003C_003Em__Finally3(); - } - goto end_IL_0128; - } - continue; - end_IL_0128: - break; - } - } - finally - { - _003C_003Em__Finally2(); - } - goto end_IL_00a0; - } - continue; - end_IL_00a0: - break; - } - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E8__1 = null; - _003CgatheringPointId_003E5__2 = null; - _003CgatheringRoot_003E5__3 = null; - _003C__003E5__4 = null; - _003CgatheringSequence_003E5__5 = null; - _003C_003E7__wrap5 = default(List<QuestStep>.Enumerator); - _003C_003E7__wrap6 = null; - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - try - { - int num = _003C_003E1__state; - DelayedGatheringExecutor delayedGatheringExecutor = _003C_003E4__this; - int num2; - ITask current = default(ITask); - uint? num8 = default(uint?); - EClassJob valueOrDefault = default(EClassJob); - IPlayerCharacter playerCharacter; - switch (num) - { - default: - num2 = 89540057; - goto IL_0044; - case 4: - _003C_003E1__state = -5; - num2 = 89540053; - goto IL_0044; - case 5: - goto IL_027e; - case 7: - goto IL_02d2; - case 3: - goto IL_032f; - case 1: - goto IL_03e1; - case 0: - goto IL_0442; - case 6: - goto IL_05b7; - case 2: - goto IL_061c; - case 8: - break; - IL_0044: - while (true) - { - int num3 = num2; - int num4 = 89540036; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - EClassJob? obj; - EClassJob? eClassJob; - switch (num6 - (num7 + num7)) - { - case 7: - _003C_003E2__current = new Questionable.Controller.Steps.Interactions.Action.TriggerStatusIfMissing(EStatus.Triangulate, EAction.Triangulate); - _003C_003E1__state = 2; - return true; - case 2: - _003C_003E2__current = current; - _003C_003E1__state = 4; - return true; - case 27: - _003C_003Em__Finally2(); - _003C_003E7__wrap5 = default(List<QuestStep>.Enumerator); - _003CgatheringSequence_003E5__5 = null; - _003C_003Em__Finally1(); - _003C__003E5__4 = null; - _003C_003E8__1.territoryId = _200C_202D_202B_202C_202D_202B_200B_202D_206B_206E_202C_206D_202B_206E_202D_206A_200E_206E_206D_206F_200F_202E_200D_200B_202A_206D_206F_200F_200C_200C_206F_206A_202E_206B_202D_200D_206F_202D_200B_202E_202E(_206A_202E_206E_206A_200B_202A_206C_206C_200B_200F_200B_206A_200E_206F_202C_200E_202C_202C_200B_206A_202A_202E_206A_206A_206E_200D_202A_200E_202A_206A_206B_200B_206E_200F_202A_206D_206F_206A_200C_206C_202E(_003CgatheringRoot_003E5__3).Last()); - _003C_003E2__current = new WaitCondition.Task(() => _003C_003Ec__DisplayClass9_0._200F_202D_200F_206F_206C_200D_200C_200B_206E_202A_202B_206E_200E_202E_200D_200F_206C_200D_206E_200B_200C_200D_202A_202E_200C_206E_202D_206C_206C_206A_206D_200C_202D_206B_206D_206A_200C_202E_206A_200C_202E(_003C_003E8__1._003C_003E4__this.clientState) == _003C_003E8__1.territoryId, _200E_206E_206E_200F_202B_200F_200D_202E_200D_202A_206B_202A_206F_202D_202E_202D_200B_200B_206B_206E_206E_206D_206C_206A_200C_206B_206B_202B_206E_206B_200E_202E_206E_206A_202A_206D_202D_200B_206A_202A_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-344536108), delayedGatheringExecutor.territoryData.GetNameAndId(_003C_003E8__1.territoryId), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295))); - _003C_003E1__state = 5; - return true; - case 0: - _003C_003E2__current = new SkipMarker(); - _003C_003E1__state = 3; - return true; - case 19: - num2 = 89540057; - break; - case 6: - { - QuestStep current2 = _003C_003E7__wrap5.Current; - _003C_003E7__wrap6 = delayedGatheringExecutor.serviceProvider.GetRequiredService<TaskCreator>().CreateTasks(delayedGatheringExecutor.Task.Quest, delayedGatheringExecutor.Task.Sequence, _003CgatheringSequence_003E5__5, current2).GetEnumerator(); - _003C_003E1__state = -5; - num2 = 89540053; - break; - } - case 12: - goto end_IL_0044; - case 28: - goto IL_027e; - case 17: - goto IL_02aa; - case 3: - goto IL_02d2; - case 21: - goto IL_02fe; - case 14: - goto IL_032f; - case 11: - { - _003C__003E5__4 = delayedGatheringExecutor.logger.BeginScope(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2071352719)); - _003C_003E1__state = -3; - QuestSequence questSequence = _206C_200E_200D_200C_206C_202B_202B_200F_202A_206F_200B_200B_202D_200C_206A_200D_206D_206F_200F_202B_206F_206D_202B_206D_200C_206B_206F_200F_206A_206B_206C_202C_202C_200E_200B_206E_200E_206C_200C_206B_202E(); - _202E_200E_200D_202E_206D_202E_202B_202E_202E_206F_200D_200B_200E_206B_206B_200B_202D_200C_206B_206A_206F_206F_206D_202C_202D_206F_206C_202D_200C_200C_202A_206B_206E_200E_206A_206A_200C_202A_206F_202E(questSequence, (byte)0); - _206C_206E_202E_202A_200D_202D_202D_200D_200B_206A_206A_206C_202C_202D_206C_206A_202A_202A_206A_200D_202B_202C_206F_200C_200C_200D_202A_200B_206B_200F_206D_200C_206E_200B_206E_202E_206B_200B_202B_200D_202E(questSequence, _206A_202E_206E_206A_200B_202A_206C_206C_200B_200F_200B_206A_200E_206F_202C_200E_202C_202C_200B_206A_202A_202E_206A_206A_206E_200D_202A_200E_202A_206A_206B_200B_206E_200F_202A_206D_206F_206A_200C_206C_202E(_003CgatheringRoot_003E5__3)); - _003CgatheringSequence_003E5__5 = questSequence; - _003C_003E7__wrap5 = _202C_202E_206B_202A_206D_206E_202B_200D_206E_202D_206C_206C_200D_200C_200E_200B_200B_206E_206C_202C_206C_206A_200B_202C_206F_206F_206F_200E_206D_206F_206C_206B_202D_202C_206C_206D_200E_206F_206D_200D_202E(_003CgatheringSequence_003E5__5).GetEnumerator(); - _003C_003E1__state = -4; - num2 = 89540050; - break; - } - case 16: - return false; - case 5: - obj = null; - goto IL_04cb; - case 23: - goto IL_03e1; - case 26: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(34, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(671015877)); - defaultInterpolatedStringHandler2.AppendFormatted(_003CgatheringPointId_003E5__2); - throw new TaskException(defaultInterpolatedStringHandler2.ToStringAndClear()); - } - case 8: - _003C_003Em__Finally3(); - _003C_003E7__wrap6 = null; - num2 = 89540050; - break; - case 4: - goto IL_0442; - case 9: - obj = (EClassJob)num8.GetValueOrDefault(); - goto IL_04cb; - case 30: - goto IL_0514; - case 15: - _003C_003E2__current = new Questionable.Controller.Steps.Interactions.Action.TriggerStatusIfMissing(EStatus.Prospect, EAction.Prospect); - _003C_003E1__state = 1; - return true; - case 10: - goto IL_0577; - case 20: - goto IL_0597; - case 18: - goto IL_05b7; - case 22: - goto IL_05f4; - case 1: - goto IL_061c; - case 24: - goto IL_062f; - case 13: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(34, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1028708086)); - defaultInterpolatedStringHandler.AppendFormatted(_200B_206D_202A_202B_206A_202E_202D_200F_200F_202D_202D_200D_202C_206F_206B_206F_202E_206B_206C_206E_206F_200E_206D_206F_200F_206E_200F_202B_206F_206B_206E_200B_200F_206B_206D_206E_206A_200D_200F_206F_202E(delayedGatheringExecutor.Task.GatheredItem)); - throw new TaskException(defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 29: - return false; - case 25: - goto end_IL_000f; - IL_04cb: - eClassJob = obj; - valueOrDefault = eClassJob.GetValueOrDefault(); - num2 = (delayedGatheringExecutor.gatheringPointRegistry.TryGetGatheringPointId(_200B_206D_202A_202B_206A_202E_202D_200F_200F_202D_202D_200D_202C_206F_206B_206F_202E_206B_206C_206E_206F_200E_206D_206F_200F_206E_200F_202B_206F_206B_206E_200B_200F_206B_206D_206E_206A_200D_200F_206F_202E(delayedGatheringExecutor.Task.GatheredItem), valueOrDefault, out _003CgatheringPointId_003E5__2) ? 89540058 : 89540041); - break; - } - continue; - IL_062f: - num2 = ((!delayedGatheringExecutor.HasRequiredItems(delayedGatheringExecutor.Task.GatheredItem)) ? 89540048 : 89540052); - continue; - IL_02aa: - num2 = (_202B_202A_206A_206E_202B_206C_200D_200D_200F_206F_200E_202A_206D_202A_200B_206F_200C_202A_200F_200C_206E_206F_206C_202C_200B_202C_200C_200F_206E_202C_200D_200D_200D_202B_202A_202D_202D_202B_202B_206A_202E((IEnumerator)_003C_003E7__wrap6) ? 89540049 : 89540044); - continue; - IL_0514: - num2 = (delayedGatheringExecutor.gatheringPointRegistry.TryGetGatheringPoint(_003CgatheringPointId_003E5__2, out _003CgatheringRoot_003E5__3) ? 89540060 : 89540062); - continue; - IL_05f4: - num2 = (_003C_003E7__wrap5.MoveNext() ? 89540034 : 89540063); - continue; - IL_0577: - num2 = ((valueOrDefault != EClassJob.Botanist) ? 89540047 : 89540035); - continue; - IL_02fe: - current = _003C_003E7__wrap6.Current; - num2 = ((!(current is WaitAtEnd.NextStep)) ? 89540038 : 89540036); - continue; - IL_0597: - num2 = ((valueOrDefault != EClassJob.Miner) ? 89540046 : 89540043); - continue; - end_IL_0044: - break; - } - goto case 4; - IL_061c: - _003C_003E1__state = -1; - num2 = 89540047; - goto IL_0044; - IL_05b7: - _003C_003E1__state = -1; - _003C_003E2__current = new GatheringTask(_003CgatheringPointId_003E5__2, delayedGatheringExecutor.Task.GatheredItem); - _003C_003E1__state = 7; - return true; - IL_0442: - _003C_003E1__state = -1; - _003C_003E8__1 = new _003C_003Ec__DisplayClass9_0(); - _003C_003E8__1._003C_003E4__this = _003C_003E4__this; - playerCharacter = _206A_202E_200F_206A_206D_202C_206E_202C_206A_206F_206A_200F_202B_206D_202C_200F_206C_202A_200C_206D_206A_206F_200B_202B_202C_200D_206B_202A_200F_202A_200C_200B_206A_206F_202B_202E_200C_200F_206D_202E_202E(delayedGatheringExecutor.objectTable); - num8 = ((playerCharacter != null) ? new uint?(_202A_206A_200F_200B_206A_206C_200D_202C_206F_206C_200B_200C_202D_206B_206B_200B_202A_206A_206F_206A_202B_200B_206D_206E_206D_202A_206A_200F_200D_202E_202A_200C_200D_200D_200F_200B_200B_200C_200E_206F_202E((ICharacter)playerCharacter).RowId) : ((uint?)null)); - num2 = (num8.HasValue ? 89540045 : 89540033); - goto IL_0044; - IL_032f: - _003C_003E1__state = -5; - num2 = 89540053; - goto IL_0044; - IL_02d2: - _003C_003E1__state = -1; - _003C_003E2__current = new WaitAtEnd.WaitDelay(); - _003C_003E1__state = 8; - return true; - IL_03e1: - _003C_003E1__state = -1; - num2 = 89540047; - goto IL_0044; - IL_027e: - _003C_003E1__state = -1; - _003C_003E2__current = new WaitNavmesh.Task(); - _003C_003E1__state = 6; - return true; - end_IL_000f: - break; - } - _003C_003E1__state = -1; - return false; - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - int num = ((_003C__003E5__4 == null) ? (-1005292741) : (-1005292744)); - while (true) - { - int num2 = num; - int num3 = -1005292742; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return; - case 2: - _202E_206D_200E_202A_200F_200E_202C_202E_202E_202E_206A_202E_200B_206C_200B_206D_200B_202D_206B_202D_206B_206E_206C_206F_206A_206C_206D_200C_206A_200F_200D_206B_200E_206B_206F_206E_206E_202E_206F_200E_202E(_003C__003E5__4); - num = -1005292741; - break; - case 0: - num = -1005292744; - break; - } - } - } - - private void _003C_003Em__Finally2() - { - _003C_003E1__state = -3; - ((IDisposable)_003C_003E7__wrap5/*cast due to .constrained prefix*/).Dispose(); - } - - private void _003C_003Em__Finally3() - { - _003C_003E1__state = -4; - int num = ((_003C_003E7__wrap6 == null) ? (-1601712229) : (-1601712230)); - while (true) - { - int num2 = num; - int num3 = -1601712229; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -1601712230; - break; - case 1: - _202E_206D_200E_202A_200F_200E_202C_202E_202E_202E_206A_202E_200B_206C_200B_206D_200B_202D_206B_202D_206B_206E_206C_206F_206A_206C_206D_200C_206A_200F_200D_206B_200E_206B_206F_206E_206E_202E_206F_200E_202E((IDisposable)_003C_003E7__wrap6); - num = -1601712229; - break; - case 0: - return; - } - } - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _206B_200C_202A_202C_206F_202E_202D_206F_202D_202D_200F_206B_200E_202C_206E_200D_200F_200B_200D_200B_202D_202D_200F_202C_200D_206D_200F_200F_206D_200C_206A_206B_202D_202C_202D_202D_202A_206A_200F_202D_202E(); - } - - [DebuggerHidden] - IEnumerator<ITask> IEnumerable<ITask>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? 323197088 : 323197093); - _003CCreateExtraTasks_003Ed__9 result = default(_003CCreateExtraTasks_003Ed__9); - while (true) - { - int num2 = num; - int num3 = 323197089; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 323197093; - break; - case 2: - return result; - case 4: - num = ((_003C_003El__initialThreadId != _200D_200C_202C_200F_200B_202E_206D_202D_200B_202D_206C_206D_200D_200D_206C_200C_206E_202C_206C_200D_200E_202B_200E_206D_200D_200F_206D_202D_202A_202A_206E_202E_202A_202A_200C_206F_206E_200E_206B_206C_202E()) ? 323197088 : 323197090); - break; - case 3: - _003C_003E1__state = 0; - result = this; - num = 323197091; - break; - case 1: - result = new _003CCreateExtraTasks_003Ed__9(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = 323197091; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ITask>)this).GetEnumerator(); - } - - static int _200D_200C_202C_200F_200B_202E_206D_202D_200B_202D_206C_206D_200D_200D_206C_200C_206E_202C_206C_200D_200E_202B_200E_206D_200D_200F_206D_202D_202A_202A_206E_202E_202A_202A_200C_206F_206E_200E_206B_206C_202E() - { - return Environment.CurrentManagedThreadId; - } - - static IPlayerCharacter _206A_202E_200F_206A_206D_202C_206E_202C_206A_206F_206A_200F_202B_206D_202C_200F_206C_202A_200C_206D_206A_206F_200B_202B_202C_200D_206B_202A_200F_202A_200C_200B_206A_206F_202B_202E_200C_200F_206D_202E_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static RowRef<ClassJob> _202A_206A_200F_200B_206A_206C_200D_202C_206F_206C_200B_200C_202D_206B_206B_200B_202A_206A_206F_206A_202B_200B_206D_206E_206D_202A_206A_200F_200D_202E_202A_200C_200D_200D_200F_200B_200B_200C_200E_206F_202E(ICharacter P_0) - { - return P_0.ClassJob; - } - - static uint _200B_206D_202A_202B_206A_202E_202D_200F_200F_202D_202D_200D_202C_206F_206B_206F_202E_206B_206C_206E_206F_200E_206D_206F_200F_206E_200F_202B_206F_206B_206E_200B_200F_206B_206D_206E_206A_200D_200F_206F_202E(GatheredItem P_0) - { - return P_0.ItemId; - } - - static QuestSequence _206C_200E_200D_200C_206C_202B_202B_200F_202A_206F_200B_200B_202D_200C_206A_200D_206D_206F_200F_202B_206F_206D_202B_206D_200C_206B_206F_200F_206A_206B_206C_202C_202C_200E_200B_206E_200E_206C_200C_206B_202E() - { - return new QuestSequence(); - } - - static void _202E_200E_200D_202E_206D_202E_202B_202E_202E_206F_200D_200B_200E_206B_206B_200B_202D_200C_206B_206A_206F_206F_206D_202C_202D_206F_206C_202D_200C_200C_202A_206B_206E_200E_206A_206A_200C_202A_206F_202E(QuestSequence P_0, byte P_1) - { - P_0.Sequence = P_1; - } - - static List<QuestStep> _206A_202E_206E_206A_200B_202A_206C_206C_200B_200F_200B_206A_200E_206F_202C_200E_202C_202C_200B_206A_202A_202E_206A_206A_206E_200D_202A_200E_202A_206A_206B_200B_206E_200F_202A_206D_206F_206A_200C_206C_202E(GatheringRoot P_0) - { - return P_0.Steps; - } - - static void _206C_206E_202E_202A_200D_202D_202D_200D_200B_206A_206A_206C_202C_202D_206C_206A_202A_202A_206A_200D_202B_202C_206F_200C_200C_200D_202A_200B_206B_200F_206D_200C_206E_200B_206E_202E_206B_200B_202B_200D_202E(QuestSequence P_0, List<QuestStep> P_1) - { - P_0.Steps = P_1; - } - - static List<QuestStep> _202C_202E_206B_202A_206D_206E_202B_200D_206E_202D_206C_206C_200D_200C_200E_200B_200B_206E_206C_202C_206C_206A_200B_202C_206F_206F_206F_200E_206D_206F_206C_206B_202D_202C_206C_206D_200E_206F_206D_200D_202E(QuestSequence P_0) - { - return P_0.Steps; - } - - static bool _202B_202A_206A_206E_202B_206C_200D_200D_200F_206F_200E_202A_206D_202A_200B_206F_200C_202A_200F_200C_206E_206F_206C_202C_200B_202C_200C_200F_206E_202C_200D_200D_200D_202B_202A_202D_202D_202B_202B_206A_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static ushort _200C_202D_202B_202C_202D_202B_200B_202D_206B_206E_202C_206D_202B_206E_202D_206A_200E_206E_206D_206F_200F_202E_200D_200B_202A_206D_206F_200F_200C_200C_206F_206A_202E_206B_202D_200D_206F_202D_200B_202E_202E(QuestStep P_0) - { - return P_0.TerritoryId; - } - - static string _200E_206E_206E_200F_202B_200F_200D_202E_200D_202A_206B_202A_206F_202D_202E_202D_200B_200B_206B_206E_206E_206D_206C_206A_200C_206B_206B_202B_206E_206B_200E_202E_206E_206A_202A_206D_202D_200B_206A_202A_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static void _202E_206D_200E_202A_200F_200E_202C_202E_202E_202E_206A_202E_200B_206C_200B_206D_200B_202D_206B_202D_206B_206E_206C_206F_206A_206C_206D_200C_206A_200F_200D_206B_200E_206B_206F_206E_206E_202E_206F_200E_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static NotSupportedException _206B_200C_202A_202C_206F_202E_202D_206F_202D_202D_200F_206B_200E_202C_206E_200D_200F_200B_200D_200B_202D_202D_200F_202C_200D_206D_200F_200F_206D_200C_206A_206B_202D_202C_202D_202D_202A_206A_200F_202D_202E() - { - return new NotSupportedException(); - } - } - protected override bool Start() { return true; @@ -1023,221 +54,84 @@ internal static class Gather return ETaskResult.CreateNewTasks; } - [IteratorStateMachine(typeof(_003CCreateExtraTasks_003Ed__9))] public IEnumerable<ITask> CreateExtraTasks() { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CCreateExtraTasks_003Ed__9(-2) + EClassJob valueOrDefault = ((EClassJob?)objectTable.LocalPlayer?.ClassJob.RowId).GetValueOrDefault(); + if (!gatheringPointRegistry.TryGetGatheringPointId(base.Task.GatheredItem.ItemId, valueOrDefault, out GatheringPointId gatheringPointId)) { - _003C_003E4__this = this - }; - } - - IEnumerable<ITask> IExtraTaskCreator.CreateExtraTasks() - { - //ILSpy generated this explicit interface implementation from .override directive in CreateExtraTasks - return this.CreateExtraTasks(); + throw new TaskException($"No gathering point found for item {base.Task.GatheredItem.ItemId}"); + } + if (!gatheringPointRegistry.TryGetGatheringPoint(gatheringPointId, out GatheringRoot gatheringRoot)) + { + throw new TaskException($"No path found for gathering point {gatheringPointId}"); + } + if (HasRequiredItems(base.Task.GatheredItem)) + { + yield break; + } + switch (valueOrDefault) + { + case EClassJob.Miner: + yield return new Questionable.Controller.Steps.Interactions.Action.TriggerStatusIfMissing(EStatus.Prospect, EAction.Prospect); + break; + case EClassJob.Botanist: + yield return new Questionable.Controller.Steps.Interactions.Action.TriggerStatusIfMissing(EStatus.Triangulate, EAction.Triangulate); + break; + } + using (logger.BeginScope("Gathering(inner)")) + { + QuestSequence gatheringSequence = new QuestSequence + { + Sequence = 0, + Steps = gatheringRoot.Steps + }; + foreach (QuestStep step in gatheringSequence.Steps) + { + foreach (ITask item in serviceProvider.GetRequiredService<TaskCreator>().CreateTasks(base.Task.Quest, base.Task.Sequence, gatheringSequence, step)) + { + if (item is WaitAtEnd.NextStep) + { + yield return new SkipMarker(); + } + else + { + yield return item; + } + } + } + } + ushort territoryId = gatheringRoot.Steps.Last().TerritoryId; + yield return new WaitCondition.Task(() => clientState.TerritoryType == territoryId, "Wait(territory: " + territoryData.GetNameAndId(territoryId) + ")"); + yield return new WaitNavmesh.Task(); + yield return new GatheringTask(gatheringPointId, base.Task.GatheredItem); + yield return new WaitAtEnd.WaitDelay(); } private unsafe bool HasRequiredItems(GatheredItem itemToGather) { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr == null) ? 99162619 : 99162616); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 99162618; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return false; - case 2: - return ptr->GetInventoryItemCount(_200F_200C_202C_202B_200F_206F_202C_200B_202E_206E_200C_206A_200F_202E_200B_200E_202C_200F_200F_206D_202D_200E_206C_206E_200C_206C_202A_206A_202C_202D_200D_202D_206C_206A_200F_206D_202A_206C_202C_200C_202E(itemToGather), isHq: false, checkEquipped: true, checkArmory: true, (short)_202D_206C_202A_206D_200E_202D_200D_200E_202B_200D_202B_200C_200C_200E_200C_206D_200C_200B_200D_202D_202E_200C_202A_202D_202D_206F_206C_206E_200F_202A_200D_200E_206A_206E_200D_200D_200D_206E_206C_202D_202E(itemToGather)) >= _206E_202E_202A_206C_202A_206B_206F_202B_206F_202C_200D_202D_200B_202D_206F_202D_200F_200F_202B_202C_206A_206C_200E_206E_206E_202D_206A_202B_206D_206C_200E_202E_202A_206E_206A_206D_200B_206A_200D_202E_202E(itemToGather); - case 0: - goto IL_006f; - } - continue; - IL_006f: - num = 99162616; + return ptr->GetInventoryItemCount(itemToGather.ItemId, isHq: false, checkEquipped: true, checkArmory: true, (short)itemToGather.Collectability) >= itemToGather.ItemCount; } + return false; } public override bool ShouldInterruptOnDamage() { return false; } - - static uint _200F_200C_202C_202B_200F_206F_202C_200B_202E_206E_200C_206A_200F_202E_200B_200E_202C_200F_200F_206D_202D_200E_206C_206E_200C_206C_202A_206A_202C_202D_200D_202D_206C_206A_200F_206D_202A_206C_202C_200C_202E(GatheredItem P_0) - { - return P_0.ItemId; - } - - static ushort _202D_206C_202A_206D_200E_202D_200D_200E_202B_200D_202B_200C_200C_200E_200C_206D_200C_200B_200D_202D_202E_200C_202A_202D_202D_206F_206C_206E_200F_202A_200D_200E_206A_206E_200D_200D_200D_206E_206C_202D_202E(GatheredItem P_0) - { - return P_0.Collectability; - } - - static int _206E_202E_202A_206C_202A_206B_206F_202B_206F_202C_200D_202D_200B_202D_206F_202D_200F_200F_202B_202C_206A_206C_200E_206E_206E_202D_206A_202B_206D_206C_200E_202E_202A_206E_206A_206D_200B_206A_200D_202E_202E(GatheredItem P_0) - { - return P_0.ItemCount; - } } internal sealed record GatheringTask(GatheringPointId gatheringPointId, GatheredItem gatheredItem) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202B_206D_206F_206D_206B_202B_206A_202E_206A_200F_200D_200E_200C_200F_202C_200B_202A_206F_202C_202B_202E_206F_200C_206D_206E_202A_202D_202B_202C_200F_200B_206E_202C_200D_202B_200D_206C_202C_200F_206D_202E(typeof(GatheringTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - int num = ((_200E_202D_202E_200B_200B_202A_200E_200F_206E_202A_200B_206D_200F_206F_206B_202B_202C_200C_200B_206F_206B_206E_206C_202E_206F_200B_202D_200E_206A_200D_202A_200B_200C_202C_206A_200B_206B_206D_200D_206A_202E(gatheredItem) != 0) ? 728893262 : 728893261); - while (true) + if (gatheredItem.Collectability != 0) { - int num2 = num; - int num3 = 728893263; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004e; - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(12, 4); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-327203269)); - defaultInterpolatedStringHandler2.AppendFormatted(_202D_200E_202E_200B_202D_206B_200C_206B_202D_200F_200D_206C_200E_206C_206E_202E_206F_202C_200B_206C_202D_200F_202E_200D_206B_206E_200D_202A_200B_206B_202B_206A_206E_202B_200F_206E_206E_202A_200D_206F_202E(gatheredItem)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-208532066)); - defaultInterpolatedStringHandler2.AppendFormatted(_206A_202C_206F_202A_200F_200C_200E_202B_200F_206B_206F_200E_200E_200F_206B_200B_202D_206C_202D_200E_202C_200E_206B_202A_200D_202C_200D_206A_206C_202E_200E_202C_206F_202E_206B_206E_206A_206F_202A_200C_202E(gatheredItem)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(751790982)); - defaultInterpolatedStringHandler2.AppendFormatted(_206A_206E_200E_202C_200D_206C_200E_200C_202E_202B_202C_206D_206F_206E_202B_200B_206F_202D_206D_200D_206F_206D_200D_200D_202E_202B_206E_202C_206F_202D_202A_200D_206C_202C_202A_200F_206C_200C_206F_200F_202E(SeIconChar.Collectible)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-324914973)); - defaultInterpolatedStringHandler2.AppendFormatted(_200E_202D_202E_200B_200B_202A_200E_200F_206E_202A_200B_206D_200F_206F_206B_202B_202C_200C_200B_206F_206B_206E_206C_202E_206F_200B_202D_200E_206A_200D_202A_200B_200C_202C_206A_200B_206B_206D_200D_206A_202E(gatheredItem)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - return defaultInterpolatedStringHandler2.ToStringAndClear(); - } - case 2: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(10, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(426601948)); - defaultInterpolatedStringHandler.AppendFormatted(_202D_200E_202E_200B_202D_206B_200C_206B_202D_200F_200D_206C_200E_206C_206E_202E_206F_202C_200B_206C_202D_200F_202E_200D_206B_206E_200D_202A_200B_206B_202B_206A_206E_202B_200F_206E_206E_202A_200D_206F_202E(gatheredItem)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1106455763)); - defaultInterpolatedStringHandler.AppendFormatted(_206A_202C_206F_202A_200F_200C_200E_202B_200F_206B_206F_200E_200E_200F_206B_200B_202D_206C_202D_200E_202C_200E_206B_202A_200D_202C_200D_206A_206C_202E_200E_202C_206F_202E_206B_206E_206A_206F_202A_200C_202E(gatheredItem)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - } - continue; - IL_004e: - num = 728893261; + return $"Gather({gatheredItem.ItemCount}x {gatheredItem.ItemId} {SeIconChar.Collectible.ToIconString()} {gatheredItem.Collectability})"; } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202C_202C_206A_206E_200C_200E_200D_200F_200F_206C_200F_206F_200B_202A_200E_206F_202E_206D_206D_202D_206F_206A_202C_202C_200E_202E_206F_202E_206A_200D_200E_200D_200F_200F_200D_202B_202C_200D_202E_202C_202E(); - _200D_202E_200C_206E_206D_202C_202E_206F_200B_200F_206F_202D_206B_202B_206D_200F_206F_202B_202D_200B_200C_202A_206B_206D_200C_200C_206D_206F_200B_200E_206F_206A_206D_206A_200C_206E_200D_202C_202A_202C_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(840646262)); - _200E_202D_200B_206F_202B_202E_202C_200B_206A_202C_202A_200F_202C_206D_206D_206F_200E_202D_206F_202B_202C_206A_206B_202C_206B_200B_206E_206E_200F_200F_206D_200C_206F_200C_202B_200E_206F_200F_200F_206D_202E(builder, (object)gatheringPointId); - _200D_202E_200C_206E_206D_202C_202E_206F_200B_200F_206F_202D_206B_202B_206D_200F_206F_202B_202D_200B_200C_202A_206B_206D_200C_200C_206D_206F_200B_200E_206F_206A_206D_206A_200C_206E_200D_202C_202A_202C_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1356593095)); - _200E_202D_200B_206F_202B_202E_202C_200B_206A_202C_202A_200F_202C_206D_206D_206F_200E_202D_206F_202B_202C_206A_206B_202C_206B_200B_206E_206E_200F_200F_206D_200C_206F_200C_202B_200E_206F_200F_200F_206D_202E(builder, (object)gatheredItem); - return true; - } - - [CompilerGenerated] - public bool Equals(GatheringTask? other) - { - int num = (((object)this == other) ? 1583305302 : 1583305297); - while (true) - { - int num2 = num; - int num3 = 1583305303; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = 1583305297; - break; - case 1: - return true; - case 6: - num = (((object)other == null) ? 1583305298 : 1583305299); - break; - case 4: - num = ((!_200F_200B_200B_202D_202B_202A_200E_206E_206E_202B_206E_202E_200E_206C_200B_202B_202C_206D_202D_206B_202A_206C_206B_200B_202B_206F_206F_206E_200E_202D_200C_202E_206D_206E_200B_202A_200F_206B_200C_206D_202E(EqualityContract, other.EqualityContract)) ? 1583305298 : 1583305301); - break; - case 2: - num = ((!EqualityComparer<GatheringPointId>.Default.Equals(gatheringPointId, other.gatheringPointId)) ? 1583305298 : 1583305303); - break; - case 0: - return EqualityComparer<GatheredItem>.Default.Equals(gatheredItem, other.gatheredItem); - case 5: - return false; - } - } - } - - bool IEquatable<GatheringTask>.Equals(GatheringTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202B_206D_206F_206D_206B_202B_206A_202E_206A_200F_200D_200E_200C_200F_202C_200B_202A_206F_202C_202B_202E_206F_200C_206D_206E_202A_202D_202B_202C_200F_200B_206E_202C_200D_202B_200D_206C_202C_200F_206D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static ushort _200E_202D_202E_200B_200B_202A_200E_200F_206E_202A_200B_206D_200F_206F_206B_202B_202C_200C_200B_206F_206B_206E_206C_202E_206F_200B_202D_200E_206A_200D_202A_200B_200C_202C_206A_200B_206B_206D_200D_206A_202E(GatheredItem P_0) - { - return P_0.Collectability; - } - - static int _202D_200E_202E_200B_202D_206B_200C_206B_202D_200F_200D_206C_200E_206C_206E_202E_206F_202C_200B_206C_202D_200F_202E_200D_206B_206E_200D_202A_200B_206B_202B_206A_206E_202B_200F_206E_206E_202A_200D_206F_202E(GatheredItem P_0) - { - return P_0.ItemCount; - } - - static uint _206A_202C_206F_202A_200F_200C_200E_202B_200F_206B_206F_200E_200E_200F_206B_200B_202D_206C_202D_200E_202C_200E_206B_202A_200D_202C_200D_206A_206C_202E_200E_202C_206F_202E_206B_206E_206A_206F_202A_200C_202E(GatheredItem P_0) - { - return P_0.ItemId; - } - - static string _206A_206E_200E_202C_200D_206C_200E_200C_202E_202B_202C_206D_206F_206E_202B_200B_206F_202D_206D_200D_206F_206D_200D_200D_202E_202B_206E_202C_206F_202D_202A_200D_206C_202C_202A_200F_206C_200C_206F_200F_202E(SeIconChar P_0) - { - return P_0.ToIconString(); - } - - static void _202C_202C_206A_206E_200C_200E_200D_200F_200F_206C_200F_206F_200B_202A_200E_206F_202E_206D_206D_202D_206F_206A_202C_202C_200E_202E_206F_202E_206A_200D_200E_200D_200F_200F_200D_202B_202C_200D_202E_202C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200D_202E_200C_206E_206D_202C_202E_206F_200B_200F_206F_202D_206B_202B_206D_200F_206F_202B_202D_200B_200C_202A_206B_206D_200C_200C_206D_206F_200B_200E_206F_206A_206D_206A_200C_206E_200D_202C_202A_202C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200E_202D_200B_206F_202B_202E_202C_200B_206A_202C_202A_200F_202C_206D_206D_206F_200E_202D_206F_202B_202C_206A_206B_202C_206B_200B_206E_206E_200F_200F_206D_200C_206F_200C_202B_200E_206F_200F_200F_206D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200F_200B_200B_202D_202B_202A_200E_206E_206E_202B_206E_202E_200E_206C_200B_202B_202C_206D_202D_206B_202A_206C_206B_200B_202B_206F_206F_206E_200E_202D_200C_202E_206D_206E_200B_202A_200F_206B_200C_206D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"Gather({gatheredItem.ItemCount}x {gatheredItem.ItemId})"; } } @@ -1245,30 +139,16 @@ internal static class Gather { protected override bool Start() { - return gatheringController.Start(new GatheringController.GatheringRequest(base.Task.gatheringPointId, _200F_202B_202E_206C_206E_202B_206B_202A_202B_206D_200B_202A_202D_200D_200E_202D_200E_206E_202A_202E_206A_200D_202B_202B_202D_206B_202A_206C_200E_200C_202E_202A_200D_200D_200C_206F_200B_200C_200C_206E_202E(base.Task.gatheredItem), _200C_202D_202B_200C_202B_202E_200C_202B_200D_202A_206D_206A_200D_202B_202D_206C_202B_200D_200E_202E_202A_200C_202C_202A_200D_200C_200B_206C_206E_202E_202B_200B_200E_200D_206B_200E_206D_206D_206A_200F_202E(base.Task.gatheredItem), _200F_206D_200B_206E_200D_200B_202B_206F_206F_206C_200E_206C_206C_206E_206F_202A_202D_206F_206B_206C_202E_202D_200D_200C_206C_206F_202C_200F_200F_202B_206F_202B_200F_206F_202C_200D_202A_206E_206B_206E_202E(base.Task.gatheredItem), _200C_200C_202D_200B_202A_206A_200D_206C_200C_202A_206F_206C_206B_206A_202D_202A_206E_202C_202A_202B_202B_202C_200F_202E_202B_202C_200C_202D_200C_202E_200C_202E_206B_200F_206D_200B_200B_202E_206A_200C_202E(base.Task.gatheredItem))); + return gatheringController.Start(new GatheringController.GatheringRequest(base.Task.gatheringPointId, base.Task.gatheredItem.ItemId, base.Task.gatheredItem.AlternativeItemId, base.Task.gatheredItem.ItemCount, base.Task.gatheredItem.Collectability)); } public override ETaskResult Update() { - int num = ((gatheringController.Update() != GatheringController.EStatus.Complete) ? 947495587 : 947495584); - while (true) + if (gatheringController.Update() == GatheringController.EStatus.Complete) { - int num2 = num; - int num3 = 947495585; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004c; - case 2: - return ETaskResult.StillRunning; - case 1: - return ETaskResult.TaskComplete; - } - continue; - IL_004c: - num = 947495584; + return ETaskResult.TaskComplete; } + return ETaskResult.StillRunning; } public bool OnErrorToast(SeString message) @@ -1278,44 +158,17 @@ internal static class Gather return isHandled; } - bool IToastAware.OnErrorToast(SeString message) - { - //ILSpy generated this explicit interface implementation from .override directive in OnErrorToast - return this.OnErrorToast(message); - } - public override bool ShouldInterruptOnDamage() { return false; } - - static uint _200F_202B_202E_206C_206E_202B_206B_202A_202B_206D_200B_202A_202D_200D_200E_202D_200E_206E_202A_202E_206A_200D_202B_202B_202D_206B_202A_206C_200E_200C_202E_202A_200D_200D_200C_206F_200B_200C_200C_206E_202E(GatheredItem P_0) - { - return P_0.ItemId; - } - - static uint _200C_202D_202B_200C_202B_202E_200C_202B_200D_202A_206D_206A_200D_202B_202D_206C_202B_200D_200E_202E_202A_200C_202C_202A_200D_200C_200B_206C_206E_202E_202B_200B_200E_200D_206B_200E_206D_206D_206A_200F_202E(GatheredItem P_0) - { - return P_0.AlternativeItemId; - } - - static int _200F_206D_200B_206E_200D_200B_202B_206F_206F_206C_200E_206C_206C_206E_206F_202A_202D_206F_206B_206C_202E_202D_200D_200C_206C_206F_202C_200F_200F_202B_206F_202B_200F_206F_202C_200D_202A_206E_206B_206E_202E(GatheredItem P_0) - { - return P_0.ItemCount; - } - - static ushort _200C_200C_202D_200B_202A_206A_200D_206C_200C_202A_206F_206C_206B_206A_202D_202A_206E_202C_202A_202B_202B_202C_200F_202E_202B_202C_200C_202D_200C_202E_200C_202E_206B_200F_206D_200B_200B_202E_206A_200C_202E(GatheredItem P_0) - { - return P_0.Collectability; - } } internal sealed class SkipMarker : ITask { - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(484415674); + return "Gather/SkipMarker"; } } diff --git a/Questionable/Questionable.Controller.Steps.Shared/RedeemRewardItems.cs b/Questionable/Questionable.Controller.Steps.Shared/RedeemRewardItems.cs index 3440ff1..8140d2e 100644 --- a/Questionable/Questionable.Controller.Steps.Shared/RedeemRewardItems.cs +++ b/Questionable/Questionable.Controller.Steps.Shared/RedeemRewardItems.cs @@ -1,8 +1,5 @@ using System; using System.Collections.Generic; -using System.Collections.Immutable; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Conditions; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; @@ -23,216 +20,39 @@ internal static class RedeemRewardItems { public unsafe IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_206E_200D_206F_206B_200C_206D_200B_200F_206C_206E_200F_200E_200D_200C_202D_200F_202B_206B_206C_202A_200B_200E_206B_206F_202D_200F_202A_200F_202B_202E_206A_206E_200B_206D_206D_200F_202C_206B_206F_206A_202E(step) == EInteractionType.AcceptQuest) ? 1072934724 : 1072934722); - List<ITask> list = default(List<ITask>); - InventoryManager* ptr = default(InventoryManager*); - ItemReward current = default(ItemReward); - while (true) + if (step.InteractionType != EInteractionType.AcceptQuest) { - int num2 = num; - int num3 = 1072934726; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return Array.Empty<ITask>(); + } + List<ITask> list = new List<ITask>(); + InventoryManager* ptr = InventoryManager.Instance(); + if (ptr == null) + { + return list; + } + bool hasFreeInventorySlot = InventoryHelper.HasFreeInventorySlot(); + foreach (ItemReward redeemableItem in questData.RedeemableItems) + { + if (ptr->GetInventoryItemCount(redeemableItem.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0) != 0 && !redeemableItem.IsUnlocked() && PassesRedemptionFilters(redeemableItem.Type, redeemableItem.IsUntradable, configuration.General, hasFreeInventorySlot)) { - case 2: - list = new List<ITask>(); - ptr = InventoryManager.Instance(); - num = ((ptr != null) ? 1072934727 : 1072934725); - break; - case 3: - return list; - case 0: - num = 1072934722; - break; - case 4: - return Array.Empty<ITask>(); - case 1: - { - bool hasFreeInventorySlot = _202C_200B_206C_200F_206B_202C_202B_202D_206B_202A_202B_206A_202E_200D_206C_206C_206C_200E_206A_200E_206E_206D_202A_206E_202B_206D_206E_200E_206B_206E_202E_202D_206C_206B_202D_202B_202C_202A_202A_206D_202E(); - using (ImmutableHashSet<ItemReward>.Enumerator enumerator = questData.RedeemableItems.GetEnumerator()) - { - num = -498843277; - while (true) - { - int num7 = num; - num3 = -498843280; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 6: - num = -498843277; - break; - case 0: - list.Add(new Task(current)); - num = -498843277; - break; - case 1: - current = enumerator.Current; - num = ((ptr->GetInventoryItemCount(current.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0) == 0) ? (-498843277) : (-498843278)); - break; - case 3: - num = (enumerator.MoveNext() ? (-498843279) : (-498843276)); - break; - case 2: - num = (current.IsUnlocked() ? (-498843277) : (-498843275)); - break; - case 5: - num = ((!PassesRedemptionFilters(current.Type, current.IsUntradable, configuration.General, hasFreeInventorySlot)) ? (-498843277) : (-498843280)); - break; - case 4: - goto end_IL_00be; - } - continue; - end_IL_00be: - break; - } - } - num = ((list.Count <= 0) ? 1531306428 : 1531306429); - while (true) - { - int num10 = num; - num3 = 1531306428; - num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1531306429; - break; - case 0: - return list; - case 1: - list.Insert(0, new Mount.UnmountTask()); - num = 1531306428; - break; - } - } - } + list.Add(new Task(redeemableItem)); } } - } - - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); - } - - static EInteractionType _206E_200D_206F_206B_200C_206D_200B_200F_206C_206E_200F_200E_200D_200C_202D_200F_202B_206B_206C_202A_200B_200E_206B_206F_202D_200F_202A_200F_202B_202E_206A_206E_200B_206D_206D_200F_202C_206B_206F_206A_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static bool _202C_200B_206C_200F_206B_202C_202B_202D_206B_202A_202B_206A_202E_200D_206C_206C_206C_200E_206A_200E_206E_206D_202A_206E_202B_206D_206E_200E_206B_206E_202E_202D_206C_206B_202D_202B_202C_202A_202A_206D_202E() - { - return InventoryHelper.HasFreeInventorySlot(); + if (list.Count > 0) + { + list.Insert(0, new Mount.UnmountTask()); + } + return list; } } internal sealed record Task(ItemReward ItemReward) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202C_200B_202B_202B_202A_202D_202B_206D_200E_202D_202B_200B_202A_202C_202D_202C_200E_200F_206C_202A_206C_206E_202E_202E_200F_206F_200F_202E_200C_200F_200B_202A_206A_206D_202A_206C_202D_200B_206D_200E_202E(typeof(Task).TypeHandle); - } - } - public int OriginalGearsetIndex { get; set; } = -1; - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return _202C_202E_200D_206C_200B_206E_200D_206A_200F_206D_206B_202D_200F_202D_200C_200C_202A_200F_202C_206C_200C_206E_202B_206B_200E_202A_200D_202A_200E_206A_202D_202B_206D_200C_206C_202E_200B_202B_202D_206B_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(483102337), ItemReward.Name, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202D_202A_206E_202A_200D_206E_206E_202D_202A_202E_202E_206D_206F_206B_206C_206A_206E_202C_202D_200F_202D_202C_200F_200B_202E_206B_200E_206B_202A_202B_202D_202D_200F_206C_202D_206D_206B_206F_200C_200F_202E(); - _202A_200F_200D_206A_206F_206F_206E_206B_202E_202D_202D_206F_200D_206C_202A_200C_206F_202B_200D_202A_202E_206B_200F_206A_206B_200E_206D_200B_206C_202C_206B_202C_200B_206F_202A_206C_202B_200C_202C_200C_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1880324983)); - _206F_202D_200E_202D_206C_200C_200D_206E_202E_202A_202E_202C_200F_202A_206D_202D_202E_206C_200F_202C_200C_202C_200D_202D_200B_206D_200D_202E_206D_202C_206A_200E_200C_202A_206D_206F_206B_200D_200B_202C_202E(builder, (object)ItemReward); - _202A_200F_200D_206A_206F_206F_206E_206B_202E_202D_202D_206F_200D_206C_202A_200C_206F_202B_200D_202A_202E_206B_200F_206A_206B_200E_206D_200B_206C_202C_206B_202C_200B_206F_202A_206C_202B_200C_202C_200C_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-108687495)); - _202A_200F_200D_206A_206F_206F_206E_206B_202E_202D_202D_206F_200D_206C_202A_200C_206F_202B_200D_202A_202E_206B_200F_206A_206B_200E_206D_200B_206C_202C_206B_202C_200B_206F_202A_206C_202B_200C_202C_200C_202E(builder, OriginalGearsetIndex.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? (-2065789578) : (-2065789582)); - while (true) - { - int num2 = num; - int num3 = -2065789584; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - num = ((!EqualityComparer<Questionable.Model.ItemReward>.Default.Equals(ItemReward, other.ItemReward)) ? (-2065789584) : (-2065789580)); - break; - case 2: - num = (((object)other == null) ? (-2065789584) : (-2065789583)); - break; - case 1: - num = ((!_206A_206E_206A_202A_202A_206B_202C_200D_202E_200E_200E_200C_206D_206B_206F_202B_206E_202B_202D_202C_206A_202B_200F_200F_206E_206E_200C_202A_202B_206E_202D_206C_200D_206F_206A_202B_200D_200F_200E_200D_202E(EqualityContract, other.EqualityContract)) ? (-2065789584) : (-2065789579)); - break; - case 3: - num = -2065789582; - break; - case 6: - return true; - case 4: - return EqualityComparer<int>.Default.Equals(OriginalGearsetIndex, other.OriginalGearsetIndex); - case 0: - return false; - } - } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202C_200B_202B_202B_202A_202D_202B_206D_200E_202D_202B_200B_202A_202C_202D_202C_200E_200F_206C_202A_206C_206E_202E_202E_200F_206F_200F_202E_200C_200F_200B_202A_206A_206D_202A_206C_202D_200B_206D_200E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static string _202C_202E_200D_206C_200B_206E_200D_206A_200F_206D_206B_202D_200F_202D_200C_200C_202A_200F_202C_206C_200C_206E_202B_206B_200E_202A_200D_202A_200E_206A_202D_202B_206D_200C_206C_202E_200B_202B_202D_206B_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static void _202D_202A_206E_202A_200D_206E_206E_202D_202A_202E_202E_206D_206F_206B_206C_206A_206E_202C_202D_200F_202D_202C_200F_200B_202E_206B_200E_206B_202A_202B_202D_202D_200F_206C_202D_206D_206B_206F_200C_200F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202A_200F_200D_206A_206F_206F_206E_206B_202E_202D_202D_206F_200D_206C_202A_200C_206F_202B_200D_202A_202E_206B_200F_206A_206B_200E_206D_200B_206C_202C_206B_202C_200B_206F_202A_206C_202B_200C_202C_200C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206F_202D_200E_202D_206C_200C_200D_206E_202E_202A_202E_202C_200F_202A_206D_202D_202E_206C_200F_202C_200C_202C_200D_202D_200B_206D_200D_202E_206D_202C_206A_200E_200C_202A_206D_206F_206B_200D_200B_202C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206A_206E_206A_202A_202A_206B_202C_200D_202E_200E_200E_200C_206D_206B_206F_202B_206E_202B_202D_202C_206A_202B_200F_200F_206E_206E_200C_202A_202B_206E_202D_206C_200D_206F_206A_202B_200D_200F_200E_200D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "TryRedeem(" + ItemReward.Name + ")"; } } @@ -256,169 +76,81 @@ internal static class RedeemRewardItems protected override bool Start() { - int num = ((!_202A_202A_206C_206F_202D_206F_206B_206D_206F_202C_206A_200B_200B_202A_200C_200B_206A_200E_202C_206C_200D_206A_202E_202E_206A_206C_200D_202C_202A_206B_202B_200C_206E_200B_200F_200F_206D_202B_200B_206C_202E(condition, ConditionFlag.Mounted)) ? (-129962614) : (-129962617)); - long num9 = default(long); - int? cofferGearsetIndex = default(int?); - int valueOrDefault = default(int); - int num7 = default(int); - while (true) + if (condition[ConditionFlag.Mounted] && base.Task.OriginalGearsetIndex < 0) { - int num2 = num; - int num3 = -129962609; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return false; + } + long num = (_useItemAt = Environment.TickCount64); + if (base.Task.ItemReward is CofferReward) + { + int? cofferGearsetIndex = configuration.General.CofferGearsetIndex; + if (cofferGearsetIndex.HasValue) { - case 9: - return false; - case 7: - return true; - case 5: - num9 = (_useItemAt = _206B_202E_206A_206A_202E_206B_200C_202C_200D_206F_200E_202E_206E_206F_200D_202C_202E_202C_206F_202C_202E_200F_200B_200D_200C_206D_200D_202D_206D_206F_200F_202E_200D_206C_202D_200F_200F_200E_206F_206D_202E()); - num = ((!(base.Task.ItemReward is CofferReward)) ? (-129962616) : (-129962611)); - break; - case 2: - cofferGearsetIndex = configuration.General.CofferGearsetIndex; - num = ((!cofferGearsetIndex.HasValue) ? (-129962616) : (-129962615)); - break; - case 6: - valueOrDefault = cofferGearsetIndex.GetValueOrDefault(); - num = ((base.Task.OriginalGearsetIndex >= 0) ? (-129962619) : (-129962620)); - break; - case 10: - num = ((_206A_206F_206D_202E_202B_206D_202E_206C_206C_206A_206A_200E_202E_200C_206C_206E_202A_200C_200C_200E_202E_200F_200F_206D_200D_206D_202B_206B_206C_206C_200D_202A_206C_200C_206D_202E_200D_202C_202C_206A_202E() == valueOrDefault) ? (-129962616) : (-129962610)); - break; - case 11: - num7 = _206A_206F_206D_202E_202B_206D_202E_206C_206C_206A_206A_200E_202E_200C_206C_206E_202A_200C_200C_200E_202E_200F_200F_206D_200D_206D_202B_206B_206C_206C_200D_202A_206C_200C_206D_202E_200D_202C_202C_206A_202E(); - num = ((num7 == valueOrDefault) ? (-129962616) : (-129962609)); - break; - case 8: - num = ((base.Task.OriginalGearsetIndex >= 0) ? (-129962614) : (-129962618)); - break; - case 0: - num = ((!_206F_202E_200E_200E_206E_202E_200D_202B_200B_200C_200B_200F_202D_206D_200E_200B_202B_202C_206A_200C_202A_200E_202A_206C_200C_202D_200F_206B_202E_200C_202B_202A_202A_202C_206E_200B_206F_202D_206C_200D_202E(valueOrDefault)) ? (-129962616) : (-129962613)); - break; - case 1: - { - _206F_202E_200E_200E_206E_202E_200D_202B_200B_200C_200B_200F_202D_206D_200E_200B_202B_202C_206A_200C_202A_200E_202A_206C_200C_202D_200F_206B_202E_200C_202B_202A_202A_202C_206E_200B_206F_202D_206C_200D_202E(valueOrDefault); - long num12 = num9; - long num10 = 1000L; - long num11 = num12; - long num13 = num11 ^ num10; - long num14 = num11 & num10; - _useItemAt = num13 + (num14 + num14); - num = -129962616; - break; - } - case 3: - num = -129962617; - break; - case 4: - { - base.Task.OriginalGearsetIndex = num7; - long num8 = num9; - long num10 = 1000L; - long num11 = num8; - _useItemAt = (num11 | num10) + (num11 & num10); - num = -129962616; - break; - } + int valueOrDefault = cofferGearsetIndex.GetValueOrDefault(); + if (base.Task.OriginalGearsetIndex < 0) + { + int currentGearsetIndex = GearsetHelper.GetCurrentGearsetIndex(); + if (currentGearsetIndex != valueOrDefault && GearsetHelper.TryEquipGearset(valueOrDefault)) + { + base.Task.OriginalGearsetIndex = currentGearsetIndex; + _useItemAt = num + 1000; + } + } + else if (GearsetHelper.GetCurrentGearsetIndex() != valueOrDefault) + { + GearsetHelper.TryEquipGearset(valueOrDefault); + _useItemAt = num + 1000; + } } } + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - long num = _206B_202E_206A_206A_202E_206B_200C_202C_200D_206F_200E_202E_206E_206F_200D_202C_202E_202C_206F_202C_202E_200F_200B_200D_200C_206D_200D_202D_206D_206F_200F_202E_200D_206C_202D_200F_200F_200E_206F_206D_202E(); - int num2 = (_itemUsed ? (-1961745235) : (-1961745230)); - TimeSpan timeSpan = default(TimeSpan); - while (true) + long tickCount = Environment.TickCount64; + if (!_itemUsed) { - int num3 = num2; - int num4 = -1961745219; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + if (tickCount < _useItemAt) { - case 8: - RestoreGearset(); - return ETaskResult.TaskComplete; - case 17: - { - int useItemAttempts = _useItemAttempts; - num4 = 1; - num5 = useItemAttempts; - _useItemAttempts = (num5 | num4) + (num5 & num4); - num2 = ((_useItemAttempts < 5) ? (-1961745218) : (-1961745221)); - break; + return ETaskResult.StillRunning; } - case 6: - _200D_206F_202C_202C_200E_200F_206C_200F_200C_202A_202E_200B_200E_206F_200B_206A_200C_202E_200D_206B_202A_206F_202E_202A_206A_206D_202C_202D_202B_202E_202A_206D_206E_202B_200B_202A_206F_202B_202E_202D_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-96595266), new object[2] - { - base.Task.ItemReward.Name, - _useItemAttempts - }); + if (base.Task.ItemReward.IsUnlocked() || !HasItemInInventory(base.Task.ItemReward.ItemId)) + { RestoreGearset(); return ETaskResult.TaskComplete; - case 15: - num2 = ((num >= _useItemAt) ? (-1961745220) : (-1961745225)); - break; - case 11: + } + if (gameFunctions.UseItem(base.Task.ItemReward.ItemId)) + { _itemUsed = true; - timeSpan = base.Task.ItemReward.CastTime; - num2 = ((!(timeSpan < MinimumCastTime)) ? (-1961745232) : (-1961745217)); - break; - case 14: + TimeSpan timeSpan = base.Task.ItemReward.CastTime; + if (timeSpan < MinimumCastTime) + { + timeSpan = MinimumCastTime; + } + _continueAt = tickCount + (long)timeSpan.TotalMilliseconds + 3000; return ETaskResult.StillRunning; - case 10: - return ETaskResult.StillRunning; - case 12: - return ETaskResult.StillRunning; - case 4: - num2 = -1961745230; - break; - case 7: - num2 = ((!gameFunctions.UseItem(base.Task.ItemReward.ItemId)) ? (-1961745236) : (-1961745226)); - break; - case 0: - num2 = (HasItemInInventory(base.Task.ItemReward.ItemId) ? (-1961745222) : (-1961745228)); - break; - case 9: + } + _useItemAttempts++; + if (_useItemAttempts >= 5) + { + logger.LogWarning("Unable to use {ItemName} after {Attempts} attempts, giving up", base.Task.ItemReward.Name, _useItemAttempts); RestoreGearset(); return ETaskResult.TaskComplete; - case 16: - num2 = ((!_202A_202A_206C_206F_202D_206F_206B_206D_206F_202C_206A_200B_200B_202A_200C_200B_206A_200E_202C_206C_200D_206A_202E_202E_206A_206C_200D_202C_202A_206B_202B_200C_206E_200B_200F_200F_206D_202B_200B_206C_202E(condition, ConditionFlag.Casting)) ? (-1961745224) : (-1961745229)); - break; - case 5: - num2 = ((num > _continueAt) ? (-1961745227) : (-1961745231)); - break; - case 1: - num2 = (base.Task.ItemReward.IsUnlocked() ? (-1961745228) : (-1961745219)); - break; - case 3: - { - long num6 = 1000L; - long num7 = num; - _useItemAt = (num7 | num6) + (num7 & num6); - return ETaskResult.StillRunning; - } - case 13: - { - long num6 = (long)timeSpan.TotalMilliseconds; - long num7 = num; - long num8 = (num7 | num6) + (num7 & num6); - num6 = 3000L; - num7 = num8; - _continueAt = (num7 | num6) + (num7 & num6); - return ETaskResult.StillRunning; - } - case 2: - timeSpan = MinimumCastTime; - num2 = -1961745232; - break; } + _useItemAt = tickCount + 1000; + return ETaskResult.StillRunning; } + if (condition[ConditionFlag.Casting]) + { + return ETaskResult.StillRunning; + } + if (tickCount <= _continueAt) + { + return ETaskResult.StillRunning; + } + RestoreGearset(); + return ETaskResult.TaskComplete; } public void StopNow() @@ -426,129 +158,44 @@ internal static class RedeemRewardItems RestoreGearset(); } - void IStoppableTaskExecutor.StopNow() - { - //ILSpy generated this explicit interface implementation from .override directive in StopNow - this.StopNow(); - } - private void RestoreGearset() { - int num = ((base.Task.OriginalGearsetIndex < 0) ? (-1242962810) : (-1242962812)); - while (true) + if (base.Task.OriginalGearsetIndex >= 0 && GearsetHelper.TryEquipGearset(base.Task.OriginalGearsetIndex)) { - int num2 = num; - int num3 = -1242962809; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1242962812; - break; - case 2: - base.Task.OriginalGearsetIndex = -1; - num = -1242962810; - break; - case 1: - return; - case 3: - num = ((!_206F_202E_200E_200E_206E_202E_200D_202B_200B_200C_200B_200F_202D_206D_200E_200B_202B_202C_206A_200C_202A_200E_202A_206C_200C_202D_200F_206B_202E_200C_202B_202A_202A_202C_206E_200B_206F_202D_206C_200D_202E(base.Task.OriginalGearsetIndex)) ? (-1242962810) : (-1242962811)); - break; - } + base.Task.OriginalGearsetIndex = -1; } } private unsafe static bool HasItemInInventory(uint itemId) { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr == null) ? 1562440275 : 1562440272); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 1562440274; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 2: - return ptr->GetInventoryItemCount(itemId, isHq: false, checkEquipped: true, checkArmory: true, 0) > 0; - case 1: - return false; - } - continue; - IL_0049: - num = 1562440272; + return ptr->GetInventoryItemCount(itemId, isHq: false, checkEquipped: true, checkArmory: true, 0) > 0; } + return false; } public override bool ShouldInterruptOnDamage() { return true; } - - static bool _202A_202A_206C_206F_202D_206F_206B_206D_206F_202C_206A_200B_200B_202A_200C_200B_206A_200E_202C_206C_200D_206A_202E_202E_206A_206C_200D_202C_202A_206B_202B_200C_206E_200B_200F_200F_206D_202B_200B_206C_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static long _206B_202E_206A_206A_202E_206B_200C_202C_200D_206F_200E_202E_206E_206F_200D_202C_202E_202C_206F_202C_202E_200F_200B_200D_200C_206D_200D_202D_206D_206F_200F_202E_200D_206C_202D_200F_200F_200E_206F_206D_202E() - { - return Environment.TickCount64; - } - - static int _206A_206F_206D_202E_202B_206D_202E_206C_206C_206A_206A_200E_202E_200C_206C_206E_202A_200C_200C_200E_202E_200F_200F_206D_200D_206D_202B_206B_206C_206C_200D_202A_206C_200C_206D_202E_200D_202C_202C_206A_202E() - { - return GearsetHelper.GetCurrentGearsetIndex(); - } - - static bool _206F_202E_200E_200E_206E_202E_200D_202B_200B_200C_200B_200F_202D_206D_200E_200B_202B_202C_206A_200C_202A_200E_202A_206C_200C_202D_200F_206B_202E_200C_202B_202A_202A_202C_206E_200B_206F_202D_206C_200D_202E(int P_0) - { - return GearsetHelper.TryEquipGearset(P_0); - } - - static void _200D_206F_202C_202C_200E_200F_206C_200F_200C_202A_202E_200B_200E_206F_200B_206A_200C_202E_200D_206B_202A_206F_202E_202A_206A_206D_202C_202D_202B_202E_202A_206D_206E_202B_200B_202A_206F_202B_202E_202D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } } internal static bool PassesRedemptionFilters(EItemRewardType type, bool isUntradable, Configuration.GeneralConfiguration general, bool hasFreeInventorySlot) { - int num = ((!general.DisabledRewardTypes.Contains(type)) ? (-640252002) : (-640252008)); - while (true) + if (general.DisabledRewardTypes.Contains(type)) { - int num2 = num; - int num3 = -640252003; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = (hasFreeInventorySlot ? (-640252004) : (-640252006)); - break; - case 1: - return true; - case 0: - num = (isUntradable ? (-640252011) : (-640252001)); - break; - case 8: - num = ((type != EItemRewardType.Coffer) ? (-640252004) : (-640252007)); - break; - case 2: - return false; - case 6: - num = -640252008; - break; - case 3: - num = ((!general.SkipTradableRewards) ? (-640252011) : (-640252003)); - break; - case 5: - return false; - case 7: - return false; - } + return false; } + if (general.SkipTradableRewards && !isUntradable) + { + return false; + } + if (type == EItemRewardType.Coffer && !hasFreeInventorySlot) + { + return false; + } + return true; } } diff --git a/Questionable/Questionable.Controller.Steps.Shared/SkipCondition.cs b/Questionable/Questionable.Controller.Steps.Shared/SkipCondition.cs index fd67c20..b597148 100644 --- a/Questionable/Questionable.Controller.Steps.Shared/SkipCondition.cs +++ b/Questionable/Questionable.Controller.Steps.Shared/SkipCondition.cs @@ -2,8 +2,6 @@ using System; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Game.ClientState.Objects.Types; @@ -13,8 +11,6 @@ using FFXIVClientStructs.FFXIV.Client.Game.Object; using FFXIVClientStructs.FFXIV.Client.Game.UI; using LLib.GameData; using LLib.Inventory; -using Lumina.Excel; -using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.Controller.Utils; using Questionable.Data; @@ -29,1295 +25,522 @@ internal static class SkipCondition { internal sealed class Factory(Configuration configuration) : SimpleTaskFactory() { - public override ITask? CreateTask(Questionable.Model.Quest quest, QuestSequence sequence, QuestStep step) + public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { - SkipConditions skipConditions = _206D_200D_206F_206D_200D_206A_206A_206C_206B_200D_206E_202E_202C_200E_202A_200B_200E_202A_202C_206A_202E_200D_206B_200F_206A_206C_206F_202C_206C_206E_206A_200F_206D_202C_200C_202B_206A_206D_200D_200F_202E(step); - SkipStepConditions skipStepConditions = ((skipConditions != null) ? _206A_202C_206F_206E_206E_202B_206D_206E_202D_206C_202C_206A_206E_202C_206D_206E_202A_206C_200F_200D_206F_206A_206E_202E_206A_200B_206A_202E_206C_200B_206E_206C_200D_202B_206D_202E_202C_206E_206C_202C_202E(skipConditions) : null); - int num = ((skipStepConditions == null) ? (-1240422500) : (-1240422501)); - while (true) + SkipStepConditions skipStepConditions = step.SkipConditions?.StepIf; + if (skipStepConditions != null && skipStepConditions.Never) { - int num2 = num; - int num3 = -1240422499; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 13: - num = (_206D_200E_202C_206A_206D_202A_200D_202B_202A_200B_206C_206E_202A_206E_206B_206B_206E_200F_206D_202C_206A_200F_206E_202A_206A_202E_206D_200F_202E_206D_202B_206F_206B_202A_200E_206E_202E_206E_200F_206C_202E(skipStepConditions) ? (-1240422502) : (-1240422503)); - break; - case 1: - num = ((skipStepConditions == null) ? (-1240422503) : (-1240422512)); - break; - case 8: - num = ((_200C_202A_200F_206A_206A_202C_202D_202E_202C_206A_206D_202D_202C_206C_206F_206D_200C_202B_202C_200F_206A_200B_200E_206B_202E_206A_200F_200F_200E_206B_206A_202C_206C_206E_206E_206C_200F_206B_200E_200F_202E(step) != EInteractionType.PurchaseItem) ? (-1240422498) : (-1240422505)); - break; - case 16: - num = ((!_200E_200B_206B_202A_202B_206A_202E_200D_206D_202E_206A_202A_206E_200F_200E_200C_202C_202A_200B_202C_206F_206C_202D_206A_200D_200C_202C_202C_202C_206F_206D_202A_200C_206C_200B_206B_206D_202C_206D_200F_202E(_206C_200C_206A_200C_200C_206A_206E_200C_202C_202B_202B_206F_200D_200F_206C_206A_202E_206A_200B_202D_202C_206C_206D_206C_202E_202C_202A_206B_206E_206E_200F_200B_200E_202B_200E_200B_206A_202E_200B_202D_202E(step), (ElementId)null)) ? (-1240422502) : (-1240422504)); - break; - case 12: - num = -1240422501; - break; - case 14: - return null; - case 17: - num = (_200E_200E_202A_206B_202D_202C_200E_200C_200D_202D_206B_200F_206C_206A_200D_200F_206D_202A_206B_200B_200D_200F_202D_200D_200C_200E_202A_206B_202C_206D_200C_206E_202E_202C_202A_206D_200C_200C_200C_206E_202E(step).HasValue ? (-1240422502) : (-1240422506)); - break; - case 0: - num = ((_202E_202C_200D_200F_202B_202C_200E_206A_206B_206D_206E_200C_202D_206E_206D_200F_206C_202D_206B_200B_206D_206D_202A_200C_206C_206F_202D_206D_200B_200C_202A_202C_200D_200B_206A_202A_200B_202D_202C_202A_202E(step).Count != 0) ? (-1240422502) : (-1240422497)); - break; - case 7: - return new SkipTask(step, skipStepConditions ?? _202B_206A_200E_206C_206D_206D_202D_200F_202A_206F_202A_202B_206B_202C_202D_202D_202D_200E_202D_202C_202B_206E_200F_202D_202B_200D_200D_200D_200D_200E_202E_200D_206D_200B_206B_200B_202C_206A_202C_200D_202E(), quest.Id); - case 15: - num = ((_200C_200B_206E_202C_206C_200B_202D_206A_200D_206E_200B_202B_200C_206C_200D_202A_200B_206B_206C_200D_206E_206D_206E_202B_206B_200E_206E_200D_202B_200E_206F_206C_200F_206D_206A_200F_206A_206C_200F_206E_202E(step).Count != 0) ? (-1240422502) : (-1240422516)); - break; - case 11: - num = ((!_200E_200B_206B_202A_202B_206A_202E_200D_206D_202E_206A_202A_206E_200F_200E_200C_202C_202A_200B_202C_206F_206C_202D_206A_200D_200C_202C_202C_202C_206F_206D_202A_200C_206C_200B_206B_206D_202C_206D_200F_202E(_206C_206A_200E_202E_206A_206C_200C_206E_206C_202D_206B_206A_202C_202B_200C_202C_200D_200F_202B_202B_202E_202B_202A_206E_202A_202B_206C_206A_206D_206D_200F_200F_206B_206A_200E_202C_200E_206E_200C_202D_202E(step), (ElementId)null)) ? (-1240422502) : (-1240422515)); - break; - case 4: - num = (QuestWorkUtils.HasCompletionFlags(_206E_206D_206B_202D_202E_206D_206A_206A_202D_206C_206B_202E_202D_202C_206B_206F_200D_200D_206F_206F_200C_206A_206B_200E_206B_206B_202D_200D_202B_202A_200C_202A_206D_206D_202C_206A_206C_206A_200C_206C_202E(step)) ? (-1240422502) : (-1240422510)); - break; - case 6: - num = ((!_206E_202E_206C_206F_206F_202C_202D_200B_200E_200D_202C_206F_202A_206A_200D_202A_206F_200B_206E_200D_206D_200D_202D_206E_200C_206A_200F_200D_206E_202A_200F_200F_202C_202A_200B_206D_206A_200B_202D_202E(skipStepConditions)) ? (-1240422500) : (-1240422509)); - break; - case 5: - num = ((_200D_206D_206B_202E_206A_202D_200E_200D_206C_206C_206C_200F_206D_202E_200C_206E_206E_202B_202E_202E_200E_200E_202D_200D_200D_202C_202C_200E_200B_202E_202E_206C_206C_206C_206D_206F_206D_206E_202B_206A_202E(step).Count != 0) ? (-1240422502) : (-1240422499)); - break; - case 10: - num = (_206B_200C_202A_200B_202A_206A_206A_200D_202B_200D_206D_202C_200E_200B_202B_206C_200B_200F_200E_200C_206C_206C_200E_200F_202A_206F_206F_206A_200B_202B_202D_206A_206B_206A_202E_202A_202E_202D_202B_206E_202E(step).HasValue ? (-1240422502) : (-1240422498)); - break; - case 9: - num = (configuration.Advanced.SkipAetherCurrents ? (-1240422502) : (-1240422507)); - break; - case 2: - num = ((_200C_202A_200F_206A_206A_202C_202D_202E_202C_206A_206D_202D_202C_206C_206F_206D_200C_202B_202C_200F_206A_200B_200E_206B_202E_206A_200F_200F_200E_206B_206A_202C_206C_206E_206E_206C_200F_206B_200E_200F_202E(step) != EInteractionType.AttuneAetherCurrent) ? (-1240422507) : (-1240422508)); - break; - case 3: - return null; - } + return null; } - } - - static SkipConditions _206D_200D_206F_206D_200D_206A_206A_206C_206B_200D_206E_202E_202C_200E_202A_200B_200E_202A_202C_206A_202E_200D_206B_200F_206A_206C_206F_202C_206C_206E_206A_200F_206D_202C_200C_202B_206A_206D_200D_200F_202E(QuestStep P_0) - { - return P_0.SkipConditions; - } - - static SkipStepConditions _206A_202C_206F_206E_206E_202B_206D_206E_202D_206C_202C_206A_206E_202C_206D_206E_202A_206C_200F_200D_206F_206A_206E_202E_206A_200B_206A_202E_206C_200B_206E_206C_200D_202B_206D_202E_202C_206E_206C_202C_202E(SkipConditions P_0) - { - return P_0.StepIf; - } - - static bool _206E_202E_206C_206F_206F_202C_202D_200B_200E_200D_202C_206F_202A_206A_200D_202A_206F_200B_206E_200D_206D_200D_202D_206E_200C_206A_200F_200D_206E_202A_200F_200F_202C_202A_200B_206D_206A_200B_202D_202E(SkipStepConditions P_0) - { - return P_0.Never; - } - - static bool _206D_200E_202C_206A_206D_202A_200D_202B_202A_200B_206C_206E_202A_206E_206B_206B_206E_200F_206D_202C_206A_200F_206E_202A_206A_202E_206D_200F_202E_206D_202B_206F_206B_202A_200E_206E_202E_206E_200F_206C_202E(SkipStepConditions P_0) - { - return P_0.HasSkipConditions(); - } - - static List<QuestWorkValue> _206E_206D_206B_202D_202E_206D_206A_206A_202D_206C_206B_202E_202D_202C_206B_206F_200D_200D_206F_206F_200C_206A_206B_200E_206B_206B_202D_200D_202B_202A_200C_202A_206D_206D_202C_206A_206C_206A_200C_206C_202E(QuestStep P_0) - { - return P_0.CompletionQuestVariablesFlags; - } - - static List<List<QuestWorkValue>> _200C_200B_206E_202C_206C_200B_202D_206A_200D_206E_200B_202B_200C_206C_200D_202A_200B_206B_206C_200D_206E_206D_206E_202B_206B_200E_206E_200D_202B_200E_206F_206C_200F_206D_206A_200F_206A_206C_200F_206E_202E(QuestStep P_0) - { - return P_0.RequiredQuestVariables; - } - - static byte? _200E_200E_202A_206B_202D_202C_200E_200C_200D_202D_206B_200F_206C_206A_200D_200F_206D_202A_206B_200B_200D_200F_202D_200D_200C_200E_202A_206B_202C_206D_200C_206E_202E_202C_202A_206D_200C_200C_200C_206E_202E(QuestStep P_0) - { - return P_0.TaxiStandId; - } - - static ElementId _206C_206A_200E_202E_206A_206C_200C_206E_206C_202D_206B_206A_202C_202B_200C_202C_200D_200F_202B_202B_202E_202B_202A_206E_202A_202B_206C_206A_206D_206D_200F_200F_206B_206A_200E_202C_200E_206E_200C_202D_202E(QuestStep P_0) - { - return P_0.PickUpQuestId; - } - - static bool _200E_200B_206B_202A_202B_206A_202E_200D_206D_202E_206A_202A_206E_200F_200E_200C_202C_202A_200B_202C_206F_206C_202D_206A_200D_200C_202C_202C_202C_206F_206D_202A_200C_206C_200B_206B_206D_202C_206D_200F_202E(ElementId P_0, ElementId P_1) - { - return P_0 == P_1; - } - - static ElementId _206C_200C_206A_200C_200C_206A_206E_200C_202C_202B_202B_206F_200D_200F_206C_206A_202E_206A_200B_202D_202C_206C_206D_206C_202E_202C_202A_206B_206E_206E_200F_200B_200E_202B_200E_200B_206A_202E_200B_202D_202E(QuestStep P_0) - { - return P_0.NextQuestId; - } - - static List<EExtendedClassJob> _200D_206D_206B_202E_206A_202D_200E_200D_206C_206C_206C_200F_206D_202E_200C_206E_206E_202B_202E_202E_200E_200E_202D_200D_200D_202C_202C_200E_200B_202E_202E_206C_206C_206C_206D_206F_206D_206E_202B_206A_202E(QuestStep P_0) - { - return P_0.RequiredCurrentJob; - } - - static List<EExtendedClassJob> _202E_202C_200D_200F_202B_202C_200E_206A_206B_206D_206E_200C_202D_206E_206D_200F_206C_202D_206B_200B_206D_206D_202A_200C_206C_206F_202D_206D_200B_200C_202A_202C_200D_200B_206A_202A_200B_202D_202C_202A_202E(QuestStep P_0) - { - return P_0.RequiredQuestAcceptedJob; - } - - static EInteractionType _200C_202A_200F_206A_206A_202C_202D_202E_202C_206A_206D_202D_202C_206C_206F_206D_200C_202B_202C_200F_206A_200B_200E_206B_202E_206A_200F_200F_200E_206B_206A_202C_206C_206E_206E_206C_200F_206B_200E_200F_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static uint? _206B_200C_202A_200B_202A_206A_206A_200D_202B_200D_206D_202C_200E_200B_202B_206C_200B_200F_200E_200C_206C_206C_200E_200F_202A_206F_206F_206A_200B_202B_202D_206A_206B_206A_202E_202A_202E_202D_202B_206E_202E(QuestStep P_0) - { - return P_0.ItemId; - } - - static SkipStepConditions _202B_206A_200E_206C_206D_206D_202D_200F_202A_206F_202A_202B_206B_202C_202D_202D_202D_200E_202D_202C_202B_206E_200F_202D_202B_200D_200D_200D_200D_200E_202E_200D_206D_200B_206B_200B_202C_206A_202C_200D_202E() - { - return new SkipStepConditions(); + if ((skipStepConditions == null || !skipStepConditions.HasSkipConditions()) && !QuestWorkUtils.HasCompletionFlags(step.CompletionQuestVariablesFlags) && step.RequiredQuestVariables.Count == 0 && !step.TaxiStandId.HasValue && step.PickUpQuestId == null && step.NextQuestId == null && step.RequiredCurrentJob.Count == 0 && step.RequiredQuestAcceptedJob.Count == 0 && (step.InteractionType != EInteractionType.AttuneAetherCurrent || !configuration.Advanced.SkipAetherCurrents) && (step.InteractionType != EInteractionType.PurchaseItem || !step.ItemId.HasValue)) + { + return null; + } + return new SkipTask(step, skipStepConditions ?? new SkipStepConditions(), quest.Id); } } internal sealed record SkipTask(QuestStep Step, SkipStepConditions SkipConditions, ElementId ElementId) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206B_200F_202E_202C_202D_200B_206A_200B_206F_202B_206D_206F_202C_206C_202E_202E_202A_206D_202A_202A_202E_202A_200B_200F_202C_202A_206D_202C_200F_202C_200B_202E_200F_202E_202E_200D_206C_202C_202C_206C_202E(typeof(SkipTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-466111705); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200B_202E_206E_206A_200B_206F_206C_202C_200B_200C_200F_206F_206C_202D_206E_206B_200E_206A_206E_200C_200D_202E_202D_200D_206E_202E_200B_202D_200F_200D_200E_202E_202B_200B_202A_200D_200C_206B_206C_206F_202E(); - _206B_200E_206F_200D_206E_206D_200D_200B_206C_200B_206F_206E_206D_206E_200E_202B_206B_200F_206C_206B_200E_206D_202E_202E_200E_200C_206D_200E_206E_200F_206D_206F_206E_202D_202D_202E_200F_200B_200C_206C_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(148385326)); - _200F_202E_206E_206C_200F_202E_202B_200B_202C_202B_202C_200D_200D_200D_202A_200E_200D_206B_202B_200E_206B_206B_206C_202A_200C_206F_206D_206E_206F_206B_200F_206C_206F_206D_206E_200D_202E_206B_206F_202E_202E(builder, (object)Step); - _206B_200E_206F_200D_206E_206D_200D_200B_206C_200B_206F_206E_206D_206E_200E_202B_206B_200F_206C_206B_200E_206D_202E_202E_200E_200C_206D_200E_206E_200F_206D_206F_206E_202D_202D_202E_200F_200B_200C_206C_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1553810087)); - _200F_202E_206E_206C_200F_202E_202B_200B_202C_202B_202C_200D_200D_200D_202A_200E_200D_206B_202B_200E_206B_206B_206C_202A_200C_206F_206D_206E_206F_206B_200F_206C_206F_206D_206E_200D_202E_206B_206F_202E_202E(builder, (object)SkipConditions); - _206B_200E_206F_200D_206E_206D_200D_200B_206C_200B_206F_206E_206D_206E_200E_202B_206B_200F_206C_206B_200E_206D_202E_202E_200E_200C_206D_200E_206E_200F_206D_206F_206E_202D_202D_202E_200F_200B_200C_206C_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1329196647)); - _200F_202E_206E_206C_200F_202E_202B_200B_202C_202B_202C_200D_200D_200D_202A_200E_200D_206B_202B_200E_206B_206B_206C_202A_200C_206F_206D_206E_206F_206B_200F_206C_206F_206D_206E_200D_202E_206B_206F_202E_202E(builder, (object)ElementId); - return true; - } - - [CompilerGenerated] - public bool Equals(SkipTask? other) - { - int num = (((object)this == other) ? 1781129945 : 1781129947); - while (true) - { - int num2 = num; - int num3 = 1781129948; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return false; - case 6: - num = ((!_202C_206C_200D_200C_206B_200F_200E_202C_202B_202D_206E_206D_206E_202B_206C_206C_202C_202E_206F_206B_200E_202A_202B_206A_202A_206C_202B_202A_200C_200B_200B_202B_202D_206D_206A_202E_200C_202E_206F_202C_202E(EqualityContract, other.EqualityContract)) ? 1781129949 : 1781129948); - break; - case 7: - num = (((object)other == null) ? 1781129949 : 1781129946); - break; - case 5: - return true; - case 3: - num = 1781129947; - break; - case 0: - num = ((!EqualityComparer<QuestStep>.Default.Equals(Step, other.Step)) ? 1781129949 : 1781129944); - break; - case 2: - return EqualityComparer<Questionable.Model.Questing.ElementId>.Default.Equals(ElementId, other.ElementId); - case 4: - num = ((!EqualityComparer<SkipStepConditions>.Default.Equals(SkipConditions, other.SkipConditions)) ? 1781129949 : 1781129950); - break; - } - } - } - - bool IEquatable<SkipTask>.Equals(SkipTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206B_200F_202E_202C_202D_200B_206A_200B_206F_202B_206D_206F_202C_206C_202E_202E_202A_206D_202A_202A_202E_202A_200B_200F_202C_202A_206D_202C_200F_202C_200B_202E_200F_202E_202E_200D_206C_202C_202C_206C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _200B_202E_206E_206A_200B_206F_206C_202C_200B_200C_200F_206F_206C_202D_206E_206B_200E_206A_206E_200C_200D_202E_202D_200D_206E_202E_200B_202D_200F_200D_200E_202E_202B_200B_202A_200D_200C_206B_206C_206F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206B_200E_206F_200D_206E_206D_200D_200B_206C_200B_206F_206E_206D_206E_200E_202B_206B_200F_206C_206B_200E_206D_202E_202E_200E_200C_206D_200E_206E_200F_206D_206F_206E_202D_202D_202E_200F_200B_200C_206C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200F_202E_206E_206C_200F_202E_202B_200B_202C_202B_202C_200D_200D_200D_202A_200E_200D_206B_202B_200E_206B_206B_206C_202A_200C_206F_206D_206E_206F_206B_200F_206C_206F_206D_206E_200D_202E_206B_206F_202E_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202C_206C_200D_200C_206B_200F_200E_202C_202B_202D_206E_206D_206E_202B_206C_206C_202C_202E_206F_206B_200E_202A_202B_206A_202A_206C_202B_202A_200C_200B_200B_202B_202D_206D_206A_202E_200C_202E_206F_202C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "CheckSkip"; } } internal sealed class CheckSkip(ILogger<CheckSkip> logger, Configuration configuration, AetheryteFunctions aetheryteFunctions, GameFunctions gameFunctions, QuestFunctions questFunctions, IClientState clientState, IObjectTable objectTable, ICondition condition, ExtraConditionUtils extraConditionUtils, ClassJobUtils classJobUtils, QuestController questController) : TaskExecutor<SkipTask>() { - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { SkipStepConditions skipConditions = base.Task.SkipConditions; QuestStep step = base.Task.Step; ElementId elementId = base.Task.ElementId; ILogger<CheckSkip> logger = logger; - string text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1494350151); object[] array = new object[1]; - string text2 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1845592431); object reference = skipConditions; - array[0] = _206C_200C_206C_202A_202B_206A_200F_206C_200D_200E_202C_202B_202B_206F_200D_200C_206A_200B_206C_202D_202D_200E_200E_206B_206F_206D_200B_202D_206F_200E_202C_202C_206A_206F_206C_202E_200B_202E_200E_206C_202E(text2, new ReadOnlySpan<object>(in reference)); - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, text, array); - int num = ((!CheckFlyingCondition(step, skipConditions)) ? (-467436485) : (-467436493)); - while (true) + array[0] = string.Join(",", new ReadOnlySpan<object>(in reference)); + logger.LogDebug("Checking skip conditions; {ConfiguredConditions}", array); + if (CheckFlyingCondition(step, skipConditions)) { - int num2 = num; - int num3 = -467436482; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 8: - return true; - case 5: - num = ((!CheckUnlockedMountCondition(skipConditions)) ? (-467436512) : (-467436517)); - break; - case 9: - return true; - case 31: - return true; - case 20: - num = ((!CheckAetherCurrentCondition(step)) ? (-467436497) : (-467436504)); - break; - case 3: - num = ((!CheckAetheryteCondition(step, skipConditions)) ? (-467436502) : (-467436510)); - break; - case 10: - return false; - case 18: - num = ((!CheckNameplateCondition(step, skipConditions)) ? (-467436507) : (-467436508)); - break; - case 7: - num = ((!CheckPurchaseComplete(step)) ? (-467436483) : (-467436511)); - break; - case 4: - num = ((!CheckPickUpTurnInQuestIds(step)) ? (-467436498) : (-467436520)); - break; - case 26: - return true; - case 36: - num = -467436493; - break; - case 0: - num = ((!CheckQuestConditions(skipConditions)) ? (-467436516) : (-467436501)); - break; - case 13: - return true; - case 16: - num = ((!CheckTaxiStandUnlocked(step)) ? (-467436492) : (-467436489)); - break; - case 32: - num = ((!CheckQuestWorkConditions(elementId, step)) ? (-467436499) : (-467436484)); - break; - case 33: - return true; - case 17: - num = ((!CheckLevelCondition(skipConditions)) ? (-467436514) : (-467436496)); - break; - case 23: - return true; - case 34: - num = ((!CheckTargetableCondition(step, skipConditions)) ? (-467436500) : (-467436513)); - break; - case 21: - return true; - case 29: - return true; - case 37: - return true; - case 38: - return true; - case 22: - return true; - case 27: - num = ((!CheckItemCondition(step, skipConditions)) ? (-467436487) : (-467436509)); - break; - case 14: - return true; - case 1: - num = ((!CheckTerritoryCondition(skipConditions)) ? (-467436482) : (-467436503)); - break; - case 15: - num = ((!extraConditionUtils.MatchesExtraCondition(_200B_202B_200C_200D_206E_202D_206D_200B_200B_202A_200E_206A_206E_206A_206C_200C_200F_202A_202D_206E_206D_202B_206C_202B_200F_202C_206C_202C_200F_202A_206F_202C_206C_206E_200D_202B_206A_202E_200F_202D_202E(skipConditions).Value)) ? (-467436486) : (-467436494)); - break; - case 35: - num = ((!_200B_202B_200C_200D_206E_202D_206D_200B_200B_202A_200E_206A_206E_206A_206C_200C_200F_202A_202D_206E_206D_202B_206C_202B_200F_202C_206C_202C_200F_202A_206F_202C_206C_206E_200D_202B_206A_202E_200F_202D_202E(skipConditions).HasValue) ? (-467436486) : (-467436488)); - break; - case 25: - return true; - case 2: - return true; - case 24: - return true; - case 11: - num = ((!CheckPositionCondition(skipConditions)) ? (-467436515) : (-467436490)); - break; - case 28: - return true; - case 12: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1561211438), new object[1] { _200B_202B_200C_200D_206E_202D_206D_200B_200B_202A_200E_206A_206E_206A_206C_200C_200F_202A_202D_206E_206D_202B_206C_202B_200F_202C_206C_202C_200F_202A_206F_202C_206C_206E_200D_202B_206A_202E_200F_202D_202E(skipConditions) }); - return true; - case 6: - num = ((_200B_202B_200C_200D_206E_202D_206D_200B_200B_202A_200E_206A_206E_206A_206C_200C_200F_202A_202D_206E_206D_202B_206C_202B_200F_202C_206C_202C_200F_202A_206F_202C_206C_206E_200D_202B_206A_202E_200F_202D_202E(skipConditions) == EExtraSkipCondition.None) ? (-467436486) : (-467436495)); - break; - case 30: - num = ((!CheckDivingCondition(skipConditions)) ? (-467436481) : (-467436506)); - break; - case 19: - num = ((!CheckJobCondition(elementId, step)) ? (-467436491) : (-467436505)); - break; - } + return true; } + if (CheckUnlockedMountCondition(skipConditions)) + { + return true; + } + if (CheckDivingCondition(skipConditions)) + { + return true; + } + if (CheckTerritoryCondition(skipConditions)) + { + return true; + } + if (CheckQuestConditions(skipConditions)) + { + return true; + } + if (CheckTargetableCondition(step, skipConditions)) + { + return true; + } + if (CheckNameplateCondition(step, skipConditions)) + { + return true; + } + if (CheckItemCondition(step, skipConditions)) + { + return true; + } + if (CheckPurchaseComplete(step)) + { + return true; + } + if (CheckAetheryteCondition(step, skipConditions)) + { + return true; + } + if (CheckAetherCurrentCondition(step)) + { + return true; + } + if (CheckLevelCondition(skipConditions)) + { + return true; + } + if (CheckQuestWorkConditions(elementId, step)) + { + return true; + } + if (CheckJobCondition(elementId, step)) + { + return true; + } + if (CheckPositionCondition(skipConditions)) + { + return true; + } + if (skipConditions.ExtraCondition.HasValue && skipConditions.ExtraCondition != EExtraSkipCondition.None && extraConditionUtils.MatchesExtraCondition(skipConditions.ExtraCondition.Value)) + { + logger.LogDebug("Skipping step, extra condition {ExtraCondition} matches", skipConditions.ExtraCondition); + return true; + } + if (CheckPickUpTurnInQuestIds(step)) + { + return true; + } + if (CheckTaxiStandUnlocked(step)) + { + return true; + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool CheckFlyingCondition(QuestStep step, SkipStepConditions skipConditions) { - int num = ((_206D_202A_202D_206C_206B_200F_202B_206C_202B_206E_202A_200F_200B_206D_206E_206D_206B_206E_206A_200F_206F_202A_202B_200F_206C_206F_206A_200C_206A_202B_202C_200E_202B_202D_202D_206B_202B_206B_200E_206B_202E(skipConditions) != ELockedSkipCondition.Unlocked) ? (-185345438) : (-185345440)); - while (true) + if (skipConditions.Flying == ELockedSkipCondition.Unlocked && gameFunctions.IsFlyingUnlocked(step.TerritoryId)) { - int num2 = num; - int num3 = -185345436; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return false; - case 2: - num = (gameFunctions.IsFlyingUnlocked(_206A_202B_202C_200B_202D_206B_200F_202C_206E_200B_206C_200C_202B_202D_202C_200C_202A_200E_206E_206A_200E_200F_200C_206C_206A_206F_206C_200D_200C_206D_200D_206A_202E_206C_206F_200B_206E_200B_206E_200E_202E(step)) ? (-185345435) : (-185345439)); - break; - case 0: - num = -185345440; - break; - case 3: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-876619848), Array.Empty<object>()); - return true; - case 4: - num = ((!gameFunctions.IsFlyingUnlocked(_206A_202B_202C_200B_202D_206B_200F_202C_206E_200B_206C_200C_202B_202D_202C_200C_202A_200E_206E_206A_200E_200F_200C_206C_206A_206F_206C_200D_200C_206D_200D_206A_202E_206C_206F_200B_206E_200B_206E_200E_202E(step))) ? (-185345438) : (-185345433)); - break; - case 5: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1717360759), Array.Empty<object>()); - return true; - case 6: - num = ((_206D_202A_202D_206C_206B_200F_202B_206C_202B_206E_202A_200F_200B_206D_206E_206D_206B_206E_206A_200F_206F_202A_202B_200F_206C_206F_206A_200C_206A_202B_202C_200E_202B_202D_202D_206B_202B_206B_200E_206B_202E(skipConditions) != ELockedSkipCondition.Locked) ? (-185345435) : (-185345434)); - break; - } + logger.LogDebug("Skipping step, as flying is unlocked"); + return true; } + if (skipConditions.Flying == ELockedSkipCondition.Locked && !gameFunctions.IsFlyingUnlocked(step.TerritoryId)) + { + logger.LogDebug("Skipping step, as flying is locked"); + return true; + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool CheckUnlockedMountCondition(SkipStepConditions skipConditions) { - int num = ((_206A_202C_202A_202E_200E_206F_200E_202B_202D_200F_206A_202B_202A_200D_206E_202E_200E_202A_200D_206C_202D_206B_200D_202D_202E_206B_206E_206C_200D_206B_206E_206C_200D_206D_206E_206E_202E_200D_200F_202A_202E(skipConditions) != ELockedSkipCondition.Unlocked) ? (-1202468125) : (-1202468126)); - while (true) + if (skipConditions.Chocobo == ELockedSkipCondition.Unlocked && PlayerStateHelper.IsMountUnlocked(1u)) { - int num2 = num; - int num3 = -1202468125; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(594807310), Array.Empty<object>()); - return true; - case 0: - return false; - case 2: - num = -1202468126; - break; - case 1: - num = ((!_202D_202A_206D_202C_202C_200F_206F_206C_202B_200D_202A_206B_202B_202C_202E_202E_200B_206D_206C_206A_200D_202D_202E_202C_200B_200D_200E_206D_200E_206E_206F_202D_206E_200B_202D_206B_206B_206C_200F_202E(1u)) ? (-1202468125) : (-1202468128)); - break; - } + logger.LogDebug("Skipping step, as chocobo is unlocked"); + return true; } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool CheckTerritoryCondition(SkipStepConditions skipConditions) { - int num = ((_200C_200E_202A_200B_206F_206B_202D_206C_202B_206F_206F_206D_202B_202C_206D_206C_200E_202B_200B_200B_202B_202B_206F_206A_200C_206A_206B_206A_202D_206D_200E_200B_206B_202A_200B_200B_206B_202E_202D_202E(skipConditions).Count <= 0) ? 814489794 : 814489797); - while (true) + if (skipConditions.InTerritory.Count > 0 && skipConditions.InTerritory.Contains((ushort)clientState.TerritoryType)) { - int num2 = num; - int num3 = 814489799; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - return false; - case 2: - num = ((!_200C_200E_202A_200B_206F_206B_202D_206C_202B_206F_206F_206D_202B_202C_206D_206C_200E_202B_200B_200B_202B_202B_206F_206A_200C_206A_206B_206A_202D_206D_200E_200B_206B_202A_200B_200B_206B_202E_202D_202E(skipConditions).Contains((ushort)_206D_202A_206F_200B_206C_202A_202C_206D_206B_202E_206E_200E_206C_206F_200F_200F_202C_200D_206F_202B_200B_206E_200D_200C_206A_206E_206E_200D_206F_206D_206A_206C_206F_202C_202C_206E_202D_206F_202B_206D_202E(clientState))) ? 814489794 : 814489795); - break; - case 0: - num = 814489797; - break; - case 4: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-80638283), Array.Empty<object>()); - return true; - case 3: - num = (_206F_200F_206C_200B_206A_200D_200C_206A_202E_202B_202C_202B_202D_206E_200C_206C_200C_206A_206D_206D_206E_206B_202B_200C_200C_200E_202D_200F_200E_200F_206A_202D_202A_200C_206C_206F_202A_202E_206C_202C_202E(skipConditions).Contains((ushort)_206D_202A_206F_200B_206C_202A_202C_206D_206B_202E_206E_200E_206C_206F_200F_200F_202C_200D_206F_202B_200B_206E_200D_200C_206A_206E_206E_200D_206F_206D_206A_206C_206F_202C_202C_206E_202D_206F_202B_206D_202E(clientState)) ? 814489793 : 814489798); - break; - case 1: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-754370014), Array.Empty<object>()); - return true; - case 5: - num = ((_206F_200F_206C_200B_206A_200D_200C_206A_202E_202B_202C_202B_202D_206E_200C_206C_200C_206A_206D_206D_206E_206B_202B_200C_200C_200E_202D_200F_200E_200F_206A_202D_202A_200C_206C_206F_202A_202E_206C_202C_202E(skipConditions).Count <= 0) ? 814489793 : 814489796); - break; - } + logger.LogDebug("Skipping step, as in a skip.InTerritory"); + return true; } + if (skipConditions.NotInTerritory.Count > 0 && !skipConditions.NotInTerritory.Contains((ushort)clientState.TerritoryType)) + { + logger.LogDebug("Skipping step, as not in a skip.NotInTerritory"); + return true; + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool CheckDivingCondition(SkipStepConditions skipConditions) { - int num = ((_202B_200C_206C_206B_202C_206C_206C_202C_206C_206A_206B_202A_206F_206F_202A_200F_200E_200D_200C_200B_206C_202D_200D_206B_206E_202C_200B_206E_202D_200D_202B_206A_200C_200C_202B_206A_202C_200E_200B_202C_202E(skipConditions) != true) ? (-1984011023) : (-1984011021)); - while (true) + if (skipConditions.Diving == true && condition[ConditionFlag.Diving]) { - int num2 = num; - int num3 = -1984011019; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = ((_202B_200C_206C_206B_202C_206C_206C_202C_206C_206A_206B_202A_206F_206F_202A_200F_200E_200D_200C_200B_206C_202D_200D_206B_206E_202C_200B_206E_202D_200D_202B_206A_200C_200C_202B_206A_202C_200E_200B_202C_202E(skipConditions) != false) ? (-1984011024) : (-1984011017)); - break; - case 6: - num = ((!_200C_202C_202A_200C_206D_202D_200F_202B_200E_202C_202C_202A_202E_206A_206F_206F_202A_206F_202D_206E_206D_202C_206E_200F_206D_206B_202B_206F_200C_206C_206C_206A_200C_206D_200D_202A_206A_202D_202D_206A_202E(condition, ConditionFlag.Diving)) ? (-1984011023) : (-1984011019)); - break; - case 0: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-483706615), Array.Empty<object>()); - return true; - case 3: - num = -1984011021; - break; - case 1: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(696324995), Array.Empty<object>()); - return true; - case 5: - return false; - case 2: - num = (_200C_202C_202A_200C_206D_202D_200F_202B_200E_202C_202C_202A_202E_206A_206F_206F_202A_206F_202D_206E_206D_202C_206E_200F_206D_206B_202B_206F_200C_206C_206C_206A_200C_206D_200D_202A_206A_202D_202D_206A_202E(condition, ConditionFlag.Diving) ? (-1984011024) : (-1984011020)); - break; - } + logger.LogDebug("Skipping step, as you're currently diving underwater"); + return true; } + if (skipConditions.Diving == false && !condition[ConditionFlag.Diving]) + { + logger.LogDebug("Skipping step, as you're not currently diving underwater"); + return true; + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool CheckQuestConditions(SkipStepConditions skipConditions) { - int num = ((_206F_206C_202A_202B_202E_202E_200C_202B_206B_200C_202C_202D_202C_202C_202C_206D_206D_206F_200F_200F_202C_206E_202A_206B_200D_206D_200D_202D_206D_206E_202C_200E_200B_202C_200D_206D_200F_202C_200B_202C_202E(skipConditions).Count <= 0) ? 620685368 : 620685371); - while (true) + if (skipConditions.QuestsCompleted.Count > 0 && skipConditions.QuestsCompleted.All(questFunctions.IsQuestComplete)) { - int num2 = num; - int num3 = 620685374; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return false; - case 6: - num = ((_200B_206F_202E_206E_200B_206C_200B_206F_202A_200B_206B_202A_206A_200F_202D_202A_200D_206E_202D_200F_200B_206D_200C_202A_206A_206E_200B_206F_200E_200F_200E_202B_200D_206E_202C_200F_200C_206E_202E_200D_202E(skipConditions).Count <= 0) ? 620685374 : 620685375); - break; - case 2: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-981274772), Array.Empty<object>()); - return true; - case 1: - num = ((!_200B_206F_202E_206E_200B_206C_200B_206F_202A_200B_206B_202A_206A_200F_202D_202A_200D_206E_202D_200F_200B_206D_200C_202A_206A_206E_200B_206F_200E_200F_200E_202B_200D_206E_202C_200F_200C_206E_202E_200D_202E(skipConditions).All(questFunctions.IsQuestAccepted)) ? 620685374 : 620685370); - break; - case 5: - num = ((!_206F_206C_202A_202B_202E_202E_200C_202B_206B_200C_202C_202D_202C_202C_202C_206D_206D_206F_200F_200F_202C_206E_202A_206B_200D_206D_200D_202D_206D_206E_202C_200E_200B_202C_200D_206D_200F_202C_200B_202C_202E(skipConditions).All(questFunctions.IsQuestComplete)) ? 620685368 : 620685372); - break; - case 3: - num = 620685371; - break; - case 4: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(872402256), Array.Empty<object>()); - return true; - } + logger.LogDebug("Skipping step, all prequisite quests are complete"); + return true; } + if (skipConditions.QuestsAccepted.Count > 0 && skipConditions.QuestsAccepted.All(questFunctions.IsQuestAccepted)) + { + logger.LogDebug("Skipping step, all prequisite quests are accepted"); + return true; + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool CheckTargetableCondition(QuestStep step, SkipStepConditions skipConditions) { - int num = ((!_200F_206F_202E_202E_200F_202C_200C_206C_202C_202B_202B_200E_200F_202A_200D_202B_200E_202D_200F_206B_200E_200F_202D_206A_206C_200C_200F_200D_206D_206D_202D_206D_202B_206C_202C_206B_206D_206B_202E(skipConditions)) ? (-1215574028) : (-1215574031)); - IGameObject gameObject = default(IGameObject); - IPlayerCharacter playerCharacter = default(IPlayerCharacter); - while (true) + if (skipConditions.NotTargetable && step != null && step.DataId.HasValue) { - int num2 = num; - int num3 = -1215574029; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + IGameObject gameObject = gameFunctions.FindObjectByDataId(step.DataId.Value); + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + if (gameObject == null) { - case 4: - num = (_202C_202E_202B_200F_200C_202B_202E_206A_200D_206C_200C_206F_206B_200F_206D_202E_202C_200F_206D_202C_202A_200B_206E_206F_202C_202B_202C_206A_206E_206E_200E_200F_206C_200B_206E_206F_206C_206F_206D_202C_202E(gameObject) ? (-1215574028) : (-1215574029)); - break; - case 1: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1364336395), Array.Empty<object>()); + if (localPlayer != null && (step.Position.GetValueOrDefault() - localPlayer.Position).Length() < 100f) + { + logger.LogDebug("Skipping step, object is not nearby (but we are)"); + return true; + } + } + else if (!gameObject.IsTargetable) + { + logger.LogDebug("Skipping step, object is not targetable"); return true; - case 8: - num = ((!((_206E_200B_206E_206E_206C_206D_206C_206D_200D_202E_202E_202C_206A_200F_200C_206D_202E_200F_202B_200C_200D_206F_200D_202C_200C_202B_206B_206D_206A_206B_206A_202E_200F_202B_200F_200F_200C_206D_202A_200D_202E(step).GetValueOrDefault() - _200C_206D_202C_202D_202E_200C_202E_206D_200F_202E_202C_200C_202C_202B_200B_202D_206B_200F_200F_206C_206D_206F_202B_206B_200F_206D_200F_206A_206A_200F_206F_202C_206B_202C_206E_206E_200D_200C_202A_200D_202E((IGameObject)playerCharacter)).Length() < 100f)) ? (-1215574028) : (-1215574030)); - break; - case 7: - return false; - case 3: - num = ((playerCharacter == null) ? (-1215574028) : (-1215574021)); - break; - case 6: - gameObject = gameFunctions.FindObjectByDataId(_202D_202D_206E_202A_206D_200E_202B_202C_206C_200C_206C_200C_202E_202A_202A_206B_200B_206A_206E_206B_206F_200F_206F_200D_202A_206E_200E_200C_206D_200D_202B_202D_202C_206F_202B_206C_202C_202C_200E_200F_202E(step).Value); - playerCharacter = _202D_206B_202D_202C_200F_200F_206C_200C_202E_206C_206E_200C_202B_202B_202C_206E_206B_202D_206C_200C_206A_206F_202E_200C_200E_200F_206E_202B_202A_206E_200F_206D_200D_206E_200C_200B_206C_202E_200D_206B_202E(objectTable); - num = ((gameObject != null) ? (-1215574025) : (-1215574032)); - break; - case 0: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-972199543), Array.Empty<object>()); - return true; - case 5: - num = -1215574031; - break; - case 9: - num = ((!_202D_202D_206E_202A_206D_200E_202B_202C_206C_200C_206C_200C_202E_202A_202A_206B_200B_206A_206E_206B_206F_200F_206F_200D_202A_206E_200E_200C_206D_200D_202B_202D_202C_206F_202B_206C_202C_202C_200E_200F_202E(step).HasValue) ? (-1215574028) : (-1215574027)); - break; - case 2: - num = ((step == null) ? (-1215574028) : (-1215574022)); - break; } } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe bool CheckNameplateCondition(QuestStep step, SkipStepConditions skipConditions) { - int num = ((_202E_202E_202E_200F_202D_206B_206A_206D_206A_202A_206B_200E_202C_202D_206C_202B_200E_206F_200E_200F_202C_200E_206C_202B_206E_200E_206F_202A_202B_206B_202C_202A_206B_202B_206D_200E_200D_206D_202E_206A_202E(skipConditions).Count <= 0) ? 76989385 : 76989391); - IGameObject gameObject = default(IGameObject); - GameObject* ptr = default(GameObject*); - while (true) + if (skipConditions.NotNamePlateIconId.Count > 0 && step != null && step.DataId.HasValue) { - int num2 = num; - int num3 = 76989389; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + IGameObject gameObject = gameFunctions.FindObjectByDataId(step.DataId.Value); + if (gameObject != null) { - case 3: - num = ((!_202D_202D_206E_202A_206D_200E_202B_202C_206C_200C_206C_200C_202E_202A_202A_206B_200B_206A_206E_206B_206F_200F_206F_200D_202A_206E_200E_200C_206D_200D_202B_202D_202C_206F_202B_206C_202C_202C_200E_200F_202E(step).HasValue) ? 76989385 : 76989384); - break; - case 5: - gameObject = gameFunctions.FindObjectByDataId(_202D_202D_206E_202A_206D_200E_202B_202C_206C_200C_206C_200C_202E_202A_202A_206B_200B_206A_206E_206B_206F_200F_206F_200D_202A_206E_200E_200C_206D_200D_202B_202D_202C_206F_202B_206C_202C_202C_200E_200F_202E(step).Value); - num = ((gameObject == null) ? 76989385 : 76989387); - break; - case 0: - num = 76989391; - break; - case 2: - num = ((step == null) ? 76989385 : 76989390); - break; - case 4: - return false; - case 1: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1288687344), new object[1] { ptr->NamePlateIconId }); - return true; - case 6: - ptr = (GameObject*)_206D_200C_200B_206F_200E_202D_200D_200C_200E_200D_202E_206A_202A_202B_200D_202A_202E_200F_206F_206D_202D_206D_200D_202B_202E_206F_202B_202B_200C_206D_200C_206F_206E_200C_206D_200B_202C_206A_206B_206B_202E(gameObject); - num = (_202E_202E_202E_200F_202D_206B_206A_206D_206A_202A_206B_200E_202C_202D_206C_202B_200E_206F_200E_200F_202C_200E_206C_202B_206E_200E_206F_202A_202B_206B_202C_202A_206B_202B_206D_200E_200D_206D_202E_206A_202E(skipConditions).Contains(ptr->NamePlateIconId) ? 76989385 : 76989388); - break; + GameObject* address = (GameObject*)gameObject.Address; + if (!skipConditions.NotNamePlateIconId.Contains(address->NamePlateIconId)) + { + logger.LogDebug("Skipping step, object has icon id {IconId}", address->NamePlateIconId); + return true; + } } } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool CheckItemCondition(QuestStep step, SkipStepConditions skipConditions) { - SkipItemConditions skipItemConditions = _202D_202E_202B_200B_202D_206C_202A_200B_202D_200B_200C_206B_206F_202E_206F_206A_206F_206A_202A_200F_202A_202B_206D_200F_202C_202E_206B_200C_206C_206A_202E_206C_202B_200C_206A_206C_206B_206D_206E_206A_202E(skipConditions); - int num = ((skipItemConditions == null) ? 1122033800 : 1122033806); - while (true) + SkipItemConditions item = skipConditions.Item; + if (item != null && item.NotInInventory && step != null && step.ItemId.HasValue && ((ItemHandle)step.ItemId.Value).GetCount(checkEquipped: true, checkArmory: true) == 0) { - int num2 = num; - int num3 = 1122033792; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 16: - skipItemConditions = _202D_202E_202B_200B_202D_206C_202A_200B_202D_200B_200C_206B_206F_202E_206F_206A_206F_206A_202A_200F_202A_202B_206D_200F_202C_202E_206B_200C_206C_206A_202E_206C_202B_200C_206A_206C_206B_206D_206E_206A_202E(skipConditions); - num = ((skipItemConditions == null) ? 1122033803 : 1122033793); - break; - case 0: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-797671387), new object[1] { _202C_200C_202B_200B_200B_202A_202C_200E_200D_206A_200F_206A_206F_200D_200F_202D_200B_202E_200F_206C_200F_206A_206A_206F_206E_206A_200F_206F_200E_206D_202D_200E_200C_200E_200B_200C_206E_202C_202A_202E(step).Value }); - return true; - case 13: - num = ((step == null) ? 1122033803 : 1122033794); - break; - case 7: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1887294353), new object[1] { _202C_200C_202B_200B_200B_202A_202C_200E_200D_206A_200F_206A_206F_200D_200F_202D_200B_202E_200F_206C_200F_206A_206A_206F_206E_206A_200F_206F_200E_206D_202D_200E_200C_200E_200B_200C_206E_202C_202A_202E(step).Value }); - return true; - case 12: - num = 1122033806; - break; - case 10: - num = ((step == null) ? 1122033800 : 1122033801); - break; - case 14: - num = ((!_202E_200E_206B_202D_206D_200D_202E_206F_202A_200E_206D_202E_206E_206C_202C_202D_200D_200D_200E_206A_206D_206D_202A_200D_200F_202B_206B_202E_206D_202E_206F_200C_202A_206C_206C_200D_200E_200C_200E_202C_202E(skipItemConditions)) ? 1122033800 : 1122033802); - break; - case 3: - num = ((step == null) ? 1122033808 : 1122033807); - break; - case 17: - num = ((((ItemHandle)_202C_200C_202B_200B_200B_202A_202C_200E_200D_206A_200F_206A_206F_200D_200F_202D_200B_202E_200F_206C_200F_206A_206A_206F_206E_206A_200F_206F_200E_206D_202D_200E_200C_200E_200B_200C_206E_202C_202A_202E(step).Value).GetCount(checkEquipped: true, checkArmory: true) <= 0) ? 1122033808 : 1122033792); - break; - case 2: - num = ((!_202C_200C_202B_200B_200B_202A_202C_200E_200D_206A_200F_206A_206F_200D_200F_202D_200B_202E_200F_206C_200F_206A_206A_206F_206E_206A_200F_206F_200E_206D_202D_200E_200C_200E_200B_200C_206E_202C_202A_202E(step).HasValue) ? 1122033803 : 1122033798); - break; - case 18: - num = ((((ItemHandle)_202C_200C_202B_200B_200B_202A_202C_200E_200D_206A_200F_206A_206F_200D_200F_202D_200B_202E_200F_206C_200F_206A_206A_206F_206E_206A_200F_206F_200E_206D_202D_200E_200C_200E_200B_200C_206E_202C_202A_202E(step).Value).GetCount(checkEquipped: true, checkArmory: true) != 0) ? 1122033800 : 1122033799); - break; - case 9: - num = ((!_202C_200C_202B_200B_200B_202A_202C_200E_200D_206A_200F_206A_206F_200D_200F_202D_200B_202E_200F_206C_200F_206A_206A_206F_206E_206A_200F_206F_200E_206D_202D_200E_200C_200E_200B_200C_206E_202C_202A_202E(step).HasValue) ? 1122033800 : 1122033810); - break; - case 1: - num = ((!_206C_206F_206B_206F_202B_206E_206D_202A_206C_200F_206D_206B_200F_206B_202C_206B_202E_200D_206C_202D_206D_206D_202B_202B_206E_206F_206C_202D_202D_202A_200C_200D_206D_202E_200C_206F_202B_202D_200F_202A_202E(skipItemConditions)) ? 1122033803 : 1122033805); - break; - case 4: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1586329385), new object[1] { _202C_200C_202B_200B_200B_202A_202C_200E_200D_206A_200F_206A_206F_200D_200F_202D_200B_202E_200F_206C_200F_206A_206A_206F_206E_206A_200F_206F_200E_206D_202D_200E_200C_200E_200B_200C_206E_202C_202A_202E(step).Value }); - return true; - case 15: - num = ((!_202C_200C_202B_200B_200B_202A_202C_200E_200D_206A_200F_206A_206F_200D_200F_202D_200B_202E_200F_206C_200F_206A_206A_206F_206E_206A_200F_206F_200E_206D_202D_200E_200C_200E_200B_200C_206E_202C_202A_202E(step).HasValue) ? 1122033808 : 1122033809); - break; - case 11: - return false; - case 6: - num = ((!IsBetterOrEqualItemEquipped(_202C_200C_202B_200B_200B_202A_202C_200E_200D_206A_200F_206A_206F_200D_200F_202D_200B_202E_200F_206C_200F_206A_206A_206F_206E_206A_200F_206F_200E_206D_202D_200E_200C_200E_200B_200C_206E_202C_202A_202E(step).Value)) ? 1122033803 : 1122033796); - break; - case 5: - num = ((!_200D_200E_206B_200E_200B_206D_206A_200D_200E_200E_202D_200D_206B_202A_206C_202C_206E_200C_206D_206B_202B_206A_200C_206D_206D_202C_206F_200F_200F_200B_200F_206E_206A_202B_206E_202D_200C_202E_206C_202A_202E(skipItemConditions)) ? 1122033808 : 1122033795); - break; - case 8: - skipItemConditions = _202D_202E_202B_200B_202D_206C_202A_200B_202D_200B_200C_206B_206F_202E_206F_206A_206F_206A_202A_200F_202A_202B_206D_200F_202C_202E_206B_200C_206C_206A_202E_206C_202B_200C_206A_206C_206B_206D_206E_206A_202E(skipConditions); - num = ((skipItemConditions == null) ? 1122033808 : 1122033797); - break; - } + logger.LogDebug("Skipping step, no item with itemId {ItemId} in inventory", step.ItemId.Value); + return true; } + item = skipConditions.Item; + if (item != null && item.InInventory && step != null && step.ItemId.HasValue && ((ItemHandle)step.ItemId.Value).GetCount(checkEquipped: true, checkArmory: true) > 0) + { + logger.LogDebug("Skipping step, item with itemId {ItemId} already in inventory", step.ItemId.Value); + return true; + } + item = skipConditions.Item; + if (item != null && item.BetterOrEqualItemEquipped && step != null && step.ItemId.HasValue && IsBetterOrEqualItemEquipped(step.ItemId.Value)) + { + logger.LogDebug("Skipping step, better or equal item than {ItemId} is already equipped", step.ItemId.Value); + return true; + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool CheckPurchaseComplete(QuestStep step) { - int num = ((_200E_206D_206F_200B_200F_206E_202B_200E_200E_206C_206B_206F_200C_202A_206C_206F_200E_200B_202D_202B_200B_200B_206D_206A_200B_200C_202B_202C_202B_200B_202B_202C_206D_206D_206B_206D_206F_200F_202C_206C_202E(step) != EInteractionType.PurchaseItem) ? 24711942 : 24711941); - uint? num8 = default(uint?); - int valueOrDefault = default(int); - uint valueOrDefault2 = default(uint); - int? num7 = default(int?); - while (true) + if (step.InteractionType == EInteractionType.PurchaseItem) { - int num2 = num; - int num3 = 24711936; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + uint? itemId = step.ItemId; + if (itemId.HasValue) { - case 6: - return false; - case 5: - num8 = _202C_200C_202B_200B_200B_202A_202C_200E_200D_206A_200F_206A_206F_200D_200F_202D_200B_202E_200F_206C_200F_206A_206A_206F_206E_206A_200F_206F_200E_206D_202D_200E_200C_200E_200B_200C_206E_202C_202A_202E(step); - num = ((!num8.HasValue) ? 24711942 : 24711938); - break; - case 1: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1670622012), new object[2] { valueOrDefault, valueOrDefault2 }); - return true; - case 4: - num = 24711941; - break; - case 0: - num = ((((ItemHandle)valueOrDefault2).GetCount(checkEquipped: true, checkArmory: true) < valueOrDefault) ? 24711942 : 24711937); - break; - case 2: - valueOrDefault2 = num8.GetValueOrDefault(); - num7 = _202C_206B_202C_202C_206A_206B_200D_206B_202A_202D_202B_206A_206A_202C_206A_206F_200B_206A_202C_206A_206A_200F_206E_202D_202B_202C_200E_200F_206C_206C_200E_206C_200E_202A_200F_200F_202E_200B_206E_202D_202E(step); - num = ((!num7.HasValue) ? 24711942 : 24711939); - break; - case 3: - valueOrDefault = num7.GetValueOrDefault(); - num = ((valueOrDefault <= 0) ? 24711942 : 24711936); - break; + uint valueOrDefault = itemId.GetValueOrDefault(); + int? itemCount = step.ItemCount; + if (itemCount.HasValue) + { + int valueOrDefault2 = itemCount.GetValueOrDefault(); + if (valueOrDefault2 > 0 && ((ItemHandle)valueOrDefault).GetCount(checkEquipped: true, checkArmory: true) >= valueOrDefault2) + { + logger.LogDebug("Skipping step, already own {Count}+ of item {ItemId}", valueOrDefault2, valueOrDefault); + return true; + } + } } } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool CheckAetheryteCondition(QuestStep step, SkipStepConditions skipConditions) { - int num = ((step == null) ? (-1075014081) : (-1075014107)); - EAetheryteLocation valueOrDefault3 = default(EAetheryteLocation); - EAetheryteLocation? eAetheryteLocation = default(EAetheryteLocation?); - EAetheryteLocation valueOrDefault = default(EAetheryteLocation); - EAetheryteLocation valueOrDefault2 = default(EAetheryteLocation); - while (true) + if (step != null) { - int num2 = num; - int num3 = -1075014097; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + EAetheryteLocation? aetheryte = step.Aetheryte; + if (aetheryte.HasValue) { - case 3: - num = -1075014107; - break; - case 7: - num = ((aetheryteFunctions.CanRegisterFreeOrFavoriteAetheryte(valueOrDefault3) != AetheryteRegistrationResult.NotPossible) ? (-1075014082) : (-1075014098)); - break; - case 8: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1753969054), Array.Empty<object>()); - return true; - case 2: - { - AetheryteFunctions aetheryteFunctions = aetheryteFunctions; - eAetheryteLocation = _206C_206F_202B_202A_206F_202C_206B_202E_206A_202D_200F_206C_200B_200D_200C_206D_202E_206C_200D_202A_200E_200F_206A_206B_200E_200D_202C_206F_206C_206E_202C_206A_200C_206E_200E_200F_206F_206C_206D_206D_202E(skipConditions); - num = ((!aetheryteFunctions.IsAetheryteUnlocked(eAetheryteLocation.Value)) ? (-1075014110) : (-1075014105)); - break; - } - case 0: - { - AetheryteFunctions aetheryteFunctions2 = aetheryteFunctions; - eAetheryteLocation = _200D_200E_206B_202D_206D_202D_200C_206E_206B_200B_202A_200E_202A_200F_200C_206E_200B_200C_206A_206B_200B_206E_206A_206F_200F_202E_200C_202B_200E_202C_202B_200C_206B_200C_202C_206C_200E_202C_202B_200E_202E(skipConditions); - num = (aetheryteFunctions2.IsAetheryteUnlocked(eAetheryteLocation.Value) ? (-1075014111) : (-1075014109)); - break; - } - case 5: - valueOrDefault3 = eAetheryteLocation.GetValueOrDefault(); - num = ((_200E_206D_206F_200B_200F_206E_202B_200E_200E_206C_206B_206F_200C_202A_206C_206F_200E_200B_202D_202B_200B_200B_206D_206A_200B_200C_202B_202C_202B_200B_202B_202C_206D_206D_206B_206D_206F_200F_202C_206C_202E(step) != EInteractionType.RegisterFreeOrFavoredAetheryte) ? (-1075014082) : (-1075014104)); - break; - case 20: - num = ((!aetheryteFunctions.IsAetheryteUnlocked(valueOrDefault)) ? (-1075014083) : (-1075014103)); - break; - case 13: - return false; - case 17: - eAetheryteLocation = _200D_200E_206B_202D_206D_202D_200C_206E_206B_200B_202A_200E_202A_200F_200C_206E_200B_200C_206A_206B_200B_206E_206A_206F_200F_202E_200C_202B_200E_202C_202B_200C_206B_200C_202C_206C_200E_202C_202B_200E_202E(skipConditions); - num = ((!eAetheryteLocation.HasValue) ? (-1075014111) : (-1075014097)); - break; - case 10: - eAetheryteLocation = _200E_200D_206D_206D_200C_202B_206F_206C_200B_206F_206A_206B_202D_206A_206A_206A_200C_206A_206B_202E_206E_202D_200B_200F_206E_200D_206F_200D_200F_200B_206A_202A_206E_206C_200D_206A_206C_206F_200B_206D_202E(step); - num = ((!eAetheryteLocation.HasValue) ? (-1075014081) : (-1075014108)); - break; - case 19: - eAetheryteLocation = _200E_200D_206D_206D_200C_202B_206F_206C_200B_206F_206A_206B_202D_206A_206A_206A_200C_206A_206B_202E_206E_202D_200B_200F_206E_200D_206F_200D_200F_200B_206A_202A_206E_206C_200D_206A_206C_206F_200B_206D_202E(step); - num = ((!eAetheryteLocation.HasValue) ? (-1075014083) : (-1075014101)); - break; - case 16: - num = ((step == null) ? (-1075014083) : (-1075014084)); - break; - case 1: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1024576145), Array.Empty<object>()); - return true; - case 18: - num = ((step == null) ? (-1075014082) : (-1075014086)); - break; - case 11: - valueOrDefault2 = eAetheryteLocation.GetValueOrDefault(); - num = ((_200E_206D_206F_200B_200F_206E_202B_200E_200E_206C_206B_206F_200C_202A_206C_206F_200E_200B_202D_202B_200B_200B_206D_206A_200B_200C_202B_202C_202B_200B_202B_202C_206D_206D_206B_206D_206F_200F_202C_206C_202E(step) != EInteractionType.AttuneAetheryte) ? (-1075014081) : (-1075014112)); - break; - case 4: - valueOrDefault = eAetheryteLocation.GetValueOrDefault(); - num = ((_200E_206D_206F_200B_200F_206E_202B_200E_200E_206C_206B_206F_200C_202A_206C_206F_200E_200B_202D_202B_200B_200B_206D_206A_200B_200C_202B_202C_202B_200B_202B_202C_206D_206D_206B_206D_206F_200F_202C_206C_202E(step) != EInteractionType.AttuneAethernetShard) ? (-1075014083) : (-1075014085)); - break; - case 6: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1250183404), Array.Empty<object>()); - return true; - case 15: - num = ((!aetheryteFunctions.IsAetheryteUnlocked(valueOrDefault2)) ? (-1075014081) : (-1075014106)); - break; - case 21: - eAetheryteLocation = _200E_200D_206D_206D_200C_202B_206F_206C_200B_206F_206A_206B_202D_206A_206A_206A_200C_206A_206B_202E_206E_202D_200B_200F_206E_200D_206F_200D_200F_200B_206A_202A_206E_206C_200D_206A_206C_206F_200B_206D_202E(step); - num = ((!eAetheryteLocation.HasValue) ? (-1075014082) : (-1075014102)); - break; - case 9: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-963356390), Array.Empty<object>()); - return true; - case 12: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2127983555), Array.Empty<object>()); - return true; - case 14: - eAetheryteLocation = _206C_206F_202B_202A_206F_202C_206B_202E_206A_202D_200F_206C_200B_200D_200C_206D_202E_206C_200D_202A_200E_200F_206A_206B_200E_200D_202C_206F_206C_206E_202C_206A_200C_206E_200E_200F_206F_206C_206D_206D_202E(skipConditions); - num = ((!eAetheryteLocation.HasValue) ? (-1075014110) : (-1075014099)); - break; + EAetheryteLocation valueOrDefault = aetheryte.GetValueOrDefault(); + if (step.InteractionType == EInteractionType.AttuneAetheryte && aetheryteFunctions.IsAetheryteUnlocked(valueOrDefault)) + { + logger.LogDebug("Skipping step, as aetheryte is unlocked"); + return true; + } } } + if (step != null) + { + EAetheryteLocation? aetheryte = step.Aetheryte; + if (aetheryte.HasValue) + { + EAetheryteLocation valueOrDefault2 = aetheryte.GetValueOrDefault(); + if (step.InteractionType == EInteractionType.AttuneAethernetShard && aetheryteFunctions.IsAetheryteUnlocked(valueOrDefault2)) + { + logger.LogDebug("Skipping step, as aethernet shard is unlocked"); + return true; + } + } + } + if (step != null) + { + EAetheryteLocation? aetheryte = step.Aetheryte; + if (aetheryte.HasValue) + { + EAetheryteLocation valueOrDefault3 = aetheryte.GetValueOrDefault(); + if (step.InteractionType == EInteractionType.RegisterFreeOrFavoredAetheryte && aetheryteFunctions.CanRegisterFreeOrFavoriteAetheryte(valueOrDefault3) == AetheryteRegistrationResult.NotPossible) + { + logger.LogDebug("Skipping step, already registered all possible free or favored aetherytes"); + return true; + } + } + } + if (skipConditions.AetheryteLocked.HasValue && !aetheryteFunctions.IsAetheryteUnlocked(skipConditions.AetheryteLocked.Value)) + { + logger.LogDebug("Skipping step, as aetheryte is locked"); + return true; + } + if (skipConditions.AetheryteUnlocked.HasValue && aetheryteFunctions.IsAetheryteUnlocked(skipConditions.AetheryteUnlocked.Value)) + { + logger.LogDebug("Skipping step, as aetheryte is unlocked"); + return true; + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool CheckAetherCurrentCondition(QuestStep step) { - int num = ((_200E_206D_206F_200B_200F_206E_202B_200E_200E_206C_206B_206F_200C_202A_206C_206F_200E_200B_202D_202B_200B_200B_206D_206A_200B_200C_202B_202C_202B_200B_202B_202C_206D_206D_206B_206D_206F_200F_202C_206C_202E(step) != EInteractionType.AttuneAetherCurrent) ? 15149100 : 15149102); - while (true) + if (step.InteractionType == EInteractionType.AttuneAetherCurrent) { - int num2 = num; - int num3 = 15149100; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (configuration.Advanced.SkipAetherCurrents) { - case 1: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2126010367), Array.Empty<object>()); + logger.LogDebug("Skipping step, as aether currents should be skipped"); return true; - case 2: - num = ((!configuration.Advanced.SkipAetherCurrents) ? 15149097 : 15149103); - break; - case 3: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1497729888), Array.Empty<object>()); + } + if (step.DataId.HasValue && GameFunctions.IsAetherCurrentUnlocked(step.DataId.Value)) + { + logger.LogDebug("Skipping step, as current is unlocked"); return true; - case 0: - return false; - case 5: - num = ((!_202D_202D_206E_202A_206D_200E_202B_202C_206C_200C_206C_200C_202E_202A_202A_206B_200B_206A_206E_206B_206F_200F_206F_200D_202A_206E_200E_200C_206D_200D_202B_202D_202C_206F_202B_206C_202C_202C_200E_200F_202E(step).HasValue) ? 15149100 : 15149096); - break; - case 4: - num = ((!GameFunctions.IsAetherCurrentUnlocked(_202D_202D_206E_202A_206D_200E_202B_202C_206C_200C_206C_200C_202E_202A_202A_206B_200B_206A_206E_206B_206F_200F_206F_200D_202A_206E_200E_200C_206D_200D_202B_202D_202C_206F_202B_206C_202C_202C_200E_200F_202E(step).Value)) ? 15149100 : 15149101); - break; - case 6: - num = 15149102; - break; } } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool CheckLevelCondition(SkipStepConditions skipConditions) { - IPlayerCharacter playerCharacter = _202D_206B_202D_202C_200F_200F_206C_200C_202E_206C_206E_200C_202B_202B_202C_206E_206B_202D_206C_200C_206A_206F_202E_200C_200E_200F_206E_202B_202A_206E_200F_206D_200D_206E_200C_200B_206C_202E_200D_206B_202E(objectTable); - int num = ((!_206B_202A_206C_202A_200F_200B_202B_200D_206A_206F_200F_206C_202D_206B_202B_200C_206C_200F_206B_206D_200D_206C_200C_202C_206A_202C_206A_202C_200E_202B_202E_206E_206F_206E_202E_206F_200D_206D_206E_200C_202E(skipConditions).HasValue) ? (-1957890921) : (-1957890923)); - while (true) + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + if (skipConditions.MinimumLevel.HasValue && localPlayer != null && localPlayer.Level >= skipConditions.MinimumLevel.Value) { - int num2 = num; - int num3 = -1957890924; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1957890923; - break; - case 3: - return false; - case 2: - num = ((_200C_202D_200F_206E_206B_202A_206D_206F_202B_202A_206E_206C_206A_206B_202A_200F_202B_200B_206F_200E_202D_200D_206B_206D_202D_206D_206F_202E_202D_202C_200C_200B_206F_200C_206C_206F_200D_200B_202B_206B_202E((ICharacter)playerCharacter) < _206B_202A_206C_202A_200F_200B_202B_200D_206A_206F_200F_206C_202D_206B_202B_200C_206C_200F_206B_206D_200D_206C_200C_202C_206A_202C_206A_202C_200E_202B_202E_206E_206F_206E_202E_206F_200D_206D_206E_200C_202E(skipConditions).Value) ? (-1957890921) : (-1957890928)); - break; - case 4: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-898004694), new object[2] - { - _200C_202D_200F_206E_206B_202A_206D_206F_202B_202A_206E_206C_206A_206B_202A_200F_202B_200B_206F_200E_202D_200D_206B_206D_202D_206D_206F_202E_202D_202C_200C_200B_206F_200C_206C_206F_200D_200B_202B_206B_202E((ICharacter)playerCharacter), - _206B_202A_206C_202A_200F_200B_202B_200D_206A_206F_200F_206C_202D_206B_202B_200C_206C_200F_206B_206D_200D_206C_200C_202C_206A_202C_206A_202C_200E_202B_202E_206E_206F_206E_202E_206F_200D_206D_206E_200C_202E(skipConditions).Value - }); - return true; - case 1: - num = ((playerCharacter == null) ? (-1957890921) : (-1957890922)); - break; - } + logger.LogDebug("Skipping step, as player level {CurrentLevel} >= minimum level {MinLevel}", localPlayer.Level, skipConditions.MinimumLevel.Value); + return true; } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool CheckQuestWorkConditions(ElementId elementId, QuestStep step) { QuestProgressInfo questProgressInfo = questFunctions.GetQuestProgressInfo(elementId); - int num = ((questProgressInfo == null) ? (-268075335) : (-268075357)); - List<List<QuestWorkValue>> list2 = default(List<List<QuestWorkValue>>); - SkipConditions skipConditions = default(SkipConditions); - List<EExtendedClassJob> list = default(List<EExtendedClassJob>); - List<EClassJob> list3 = default(List<EClassJob>); - EClassJob classJob = default(EClassJob); - SkipStepConditions skipStepConditions = default(SkipStepConditions); - while (true) + if (questProgressInfo != null) { - int num2 = num; - int num3 = -268075352; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (QuestWorkUtils.HasCompletionFlags(step.CompletionQuestVariablesFlags) && QuestWorkUtils.MatchesQuestWork(step.CompletionQuestVariablesFlags, questProgressInfo)) { - case 17: - return false; - case 11: - num = ((!QuestWorkUtils.HasCompletionFlags(_202E_200C_200C_206E_206A_206E_206A_202A_202E_202E_200C_202B_206A_206B_202B_200B_202E_202B_206E_206A_200D_202C_206C_202A_202D_202E_206D_206E_200C_202D_206B_202C_202B_206C_206E_206F_202D_202E_202C_202D_202E(step))) ? (-268075346) : (-268075352)); - break; - case 12: - list2 = _202C_200E_202B_200F_200E_206D_200D_202C_206E_200B_200C_200E_200C_206D_206E_202B_200C_206C_200F_206B_206C_206F_202B_206B_200C_202D_206B_200F_202E_202B_202B_200E_202B_202B_200B_202E_202B_200C_202D_200E_202E(step); - num = ((list2 == null) ? (-268075333) : (-268075354)); - break; - case 3: - skipConditions = _202B_200B_206D_206E_206C_200F_200C_206F_200D_206A_206B_202B_202C_200D_206B_206D_206C_200C_206F_200F_206A_202D_200E_206A_206C_200B_202C_202C_200C_206C_200B_200E_206F_200E_202E_206E_202C_206F_202D_200D_202E(step); - num = ((skipConditions == null) ? (-268075348) : (-268075353)); - break; - case 9: - num = ((list.Count <= 0) ? (-268075335) : (-268075334)); - break; - case 2: - num = (list3.Contains(classJob) ? (-268075335) : (-268075345)); - break; - case 14: - { - QuestProgressInfo questWork = questController.GetInitialQuestProgressInfo(elementId) ?? questProgressInfo; - num = (QuestWorkUtils.MatchesRequiredQuestWorkConfig(list2, questWork, logger) ? (-268075333) : (-268075360)); - break; + logger.LogDebug("Skipping step, as quest variables match (step is complete)"); + return true; } - case 6: - num = ((step == null) ? (-268075348) : (-268075349)); - break; - case 7: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1199565168), Array.Empty<object>()); - return true; - case 5: - num = -268075357; - break; - case 1: - list = _206A_206E_200C_200F_206C_206B_200C_202E_206C_202C_200C_202D_206D_202A_200E_202B_200F_206E_202D_200C_206E_206D_206B_206D_206E_200C_202C_200B_202B_206D_206C_200F_206F_200F_202C_200C_206D_206B_200B_206D_202E(step); - num = ((list == null) ? (-268075335) : (-268075359)); - break; - case 10: - num = ((!QuestWorkUtils.MatchesQuestWork(_200E_206A_202D_202A_202B_202E_206B_202A_206B_206C_202A_206D_202D_202B_206F_206F_202E_206C_200F_200B_206D_200F_206D_200C_202B_200E_200D_200B_206A_202B_200D_202D_202C_202A_202C_202E_206C_206F_200C_202E_202E(skipStepConditions), questProgressInfo)) ? (-268075348) : (-268075355)); - break; - case 15: - skipStepConditions = _200C_206A_206A_206F_200D_206D_202C_202D_202D_202B_206D_202D_200D_202D_202C_206B_200B_202E_206E_202A_200F_206F_200F_200F_200B_206A_200D_206C_200E_200C_200B_202E_206F_206B_206E_200F_206E_206E_200B_202E_202E(skipConditions); - num = ((skipStepConditions == null) ? (-268075348) : (-268075358)); - break; - case 16: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1045107951), Array.Empty<object>()); - return true; - case 19: - num = ((step == null) ? (-268075335) : (-268075351)); - break; - case 13: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1316937506), Array.Empty<object>()); - return true; - case 8: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1110997016), Array.Empty<object>()); - return true; - case 18: - list3 = _206A_206E_200C_200F_206C_206B_200C_202E_206C_202C_200C_202D_206D_202A_200E_202B_200F_206E_202D_200C_206E_206D_206B_206D_206E_200C_202C_200B_202B_206D_206C_200F_206F_200F_202C_200C_206D_206B_200B_206D_202E(step).SelectMany((EExtendedClassJob x) => classJobUtils.AsIndividualJobs(x, elementId)).ToList(); - classJob = questProgressInfo.ClassJob; - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2052825077), new object[2] + if (step != null) + { + SkipConditions skipConditions = step.SkipConditions; + if (skipConditions != null) { - classJob, - string.Join(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1601568869), list3) - }); - num = ((classJob == EClassJob.Adventurer) ? (-268075335) : (-268075350)); - break; - case 4: - num = ((step == null) ? (-268075333) : (-268075356)); - break; - case 0: - num = ((!QuestWorkUtils.MatchesQuestWork(_202E_200C_200C_206E_206A_206E_206A_202A_202E_202E_200C_202B_206A_206B_202B_200B_202E_202B_206E_206A_200D_202C_206C_202A_202D_202E_206D_206E_200C_202D_206B_202C_202B_206C_206E_206F_202D_202E_202C_202D_202E(step), questProgressInfo)) ? (-268075346) : (-268075336)); - break; + SkipStepConditions stepIf = skipConditions.StepIf; + if (stepIf != null && QuestWorkUtils.MatchesQuestWork(stepIf.CompletionQuestVariablesFlags, questProgressInfo)) + { + logger.LogDebug("Skipping step, as quest variables match (step can be skipped)"); + return true; + } + } + } + if (step != null) + { + List<List<QuestWorkValue>> requiredQuestVariables = step.RequiredQuestVariables; + if (requiredQuestVariables != null) + { + QuestProgressInfo questWork = questController.GetInitialQuestProgressInfo(elementId) ?? questProgressInfo; + if (!QuestWorkUtils.MatchesRequiredQuestWorkConfig(requiredQuestVariables, questWork, logger)) + { + logger.LogDebug("Skipping step, as required variables do not match initial quest variables"); + return true; + } + } + } + if (step != null) + { + List<EExtendedClassJob> requiredQuestAcceptedJob = step.RequiredQuestAcceptedJob; + if (requiredQuestAcceptedJob != null && requiredQuestAcceptedJob.Count > 0) + { + List<EClassJob> list = step.RequiredQuestAcceptedJob.SelectMany((EExtendedClassJob x) => classJobUtils.AsIndividualJobs(x, elementId)).ToList(); + EClassJob classJob = questProgressInfo.ClassJob; + logger.LogDebug("Checking quest job {QuestJob} against {ExpectedJobs}", classJob, string.Join(",", list)); + if (classJob != EClassJob.Adventurer && !list.Contains(classJob)) + { + logger.LogDebug("Skipping step, as quest was accepted on a different job"); + return true; + } + } } } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool CheckJobCondition(ElementId elementId, QuestStep step) { - int num = ((step == null) ? (-324171431) : (-324171429)); - List<EExtendedClassJob> list = default(List<EExtendedClassJob>); - List<EClassJob> list2 = default(List<EClassJob>); - uint? num7 = default(uint?); - while (true) + if (step != null) { - int num2 = num; - int num3 = -324171430; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - EClassJob? obj; - switch (num5 - (num6 + num6)) + List<EExtendedClassJob> requiredCurrentJob = step.RequiredCurrentJob; + if (requiredCurrentJob != null && requiredCurrentJob.Count > 0) { - default: - continue; - case 6: - num = -324171429; - continue; - case 1: - list = _206C_200E_202C_206B_202E_206D_200B_206D_200C_202C_206B_202C_200B_202D_200F_202B_206C_200C_206D_206B_206F_200E_202E_206B_200E_202E_202A_202D_206D_200C_202C_206F_206F_200D_206A_200E_206F_200D_206F_200F_202E(step); - num = ((list == null) ? (-324171431) : (-324171426)); - continue; - case 2: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1964408447), Array.Empty<object>()); - return true; - case 3: - return false; - case 0: - obj = null; - break; - case 7: - { - list2 = _206C_200E_202C_206B_202E_206D_200B_206D_200C_202C_206B_202C_200B_202D_200F_202B_206C_200C_206D_206B_206F_200E_202E_206B_200E_202E_202A_202D_206D_200C_202C_206F_206F_200D_206A_200E_206F_200D_206F_200F_202E(step).SelectMany((EExtendedClassJob x) => classJobUtils.AsIndividualJobs(x, elementId)).ToList(); - IPlayerCharacter playerCharacter = _202D_206B_202D_202C_200F_200F_206C_200C_202E_206C_206E_200C_202B_202B_202C_206E_206B_202D_206C_200C_206A_206F_202E_200C_200E_200F_206E_202B_202A_206E_200F_206D_200D_206E_200C_200B_206C_202E_200D_206B_202E(objectTable); - num7 = ((playerCharacter != null) ? new uint?(_206D_200E_206E_202C_202B_206B_202A_200C_206B_206D_200E_206E_206F_202E_202D_206D_200F_202B_202B_202A_200F_202E_206E_206B_200F_200E_206D_206D_206B_200D_206B_206B_206E_206D_200D_206D_200F_200B_202E_206C_202E((ICharacter)playerCharacter).RowId) : ((uint?)null)); - num = (num7.HasValue ? (-324171425) : (-324171430)); - continue; + List<EClassJob> list = step.RequiredCurrentJob.SelectMany((EExtendedClassJob x) => classJobUtils.AsIndividualJobs(x, elementId)).ToList(); + EClassJob valueOrDefault = ((EClassJob?)objectTable.LocalPlayer?.ClassJob.RowId).GetValueOrDefault(); + logger.LogDebug("Checking current job {CurrentJob} against {ExpectedJobs}", valueOrDefault, string.Join(",", list)); + if (!list.Contains(valueOrDefault)) + { + logger.LogDebug("Skipping step, as step requires a different job"); + return true; + } } - case 4: - num = ((list.Count <= 0) ? (-324171431) : (-324171427)); - continue; - case 5: - obj = (EClassJob)num7.GetValueOrDefault(); - break; - } - EClassJob? eClassJob = obj; - EClassJob valueOrDefault = eClassJob.GetValueOrDefault(); - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1181558531), new object[2] - { - valueOrDefault, - string.Join(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1845592431), list2) - }); - num = (list2.Contains(valueOrDefault) ? (-324171431) : (-324171432)); } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool CheckPositionCondition(SkipStepConditions skipConditions) { - IPlayerCharacter playerCharacter = _202D_206B_202D_202C_200F_200F_206C_200C_202E_206C_206E_200C_202B_202B_202C_206E_206B_202D_206C_200C_206A_206F_202E_200C_200E_200F_206E_202B_202A_206E_200F_206D_200D_206E_200C_200B_206C_202E_200D_206B_202E(objectTable); - NearPositionCondition nearPositionCondition = _200B_202E_200C_202A_202B_202B_202C_200D_202E_206A_206D_206B_206F_200D_206C_200F_200E_202B_200C_202C_202A_202E_202A_202E_202A_206D_202A_202A_200C_200C_200B_200F_202C_206C_206F_202D_200E_200E_200D_202B_202E(skipConditions); - int num = ((nearPositionCondition == null) ? 1554570231 : 1554570226); - NearPositionCondition nearPositionCondition2 = default(NearPositionCondition); - while (true) + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + NearPositionCondition nearPosition = skipConditions.NearPosition; + if (nearPosition != null && clientState.TerritoryType == nearPosition.TerritoryId && localPlayer != null && Vector3.Distance(nearPosition.Position, localPlayer.Position) <= nearPosition.MaximumDistance) { - int num2 = num; - int num3 = 1554570227; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - nearPositionCondition2 = _202A_202A_200B_200C_202E_202D_206D_200C_202D_202C_202D_200E_202E_202D_202D_206A_202C_206D_206B_200F_200E_200D_206E_206F_200F_206F_206B_200B_202B_200D_202D_200E_200D_200D_200D_206B_200E_202C_200B_206B_202E(skipConditions); - num = ((nearPositionCondition2 == null) ? 1554570228 : 1554570234); - break; - case 8: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1631609441), Array.Empty<object>()); - return true; - case 10: - num = 1554570226; - break; - case 5: - num = ((playerCharacter == null) ? 1554570231 : 1554570229); - break; - case 9: - num = ((_206D_202A_206F_200B_206C_202A_202C_206D_206B_202E_206E_200E_206C_206F_200F_200F_202C_200D_206F_202B_200B_206E_200D_200C_206A_206E_206E_200D_206F_206D_206A_206C_206F_202C_202C_206E_202D_206F_202B_206D_202E(clientState) != _206D_200B_200F_202A_206C_200F_200F_200B_206A_206E_200E_206B_202B_206B_202B_202A_200C_206B_206A_200D_206F_200F_202A_206E_200E_202B_202B_206F_206D_206E_200F_206A_206B_200F_202D_200B_206C_206A_200E_200E_202E(nearPositionCondition2)) ? 1554570228 : 1554570227); - break; - case 6: - num = ((!(Vector3.Distance(_200C_202A_202B_206D_200F_202D_202B_206E_202D_202B_206E_200C_200D_206E_202C_202D_200E_202C_206D_206B_206C_206F_200D_200F_202D_206B_202D_206A_202A_206A_202D_206B_202B_200D_200B_206B_206F_200E_206A_206C_202E(nearPositionCondition), _200C_206D_202C_202D_202E_200C_202E_206D_200F_202E_202C_200C_202C_202B_200B_202D_206B_200F_200F_206C_206D_206F_202B_206B_200F_206D_200F_206A_206A_200F_206F_202C_206B_202C_206E_206E_200D_200C_202A_200D_202E((IGameObject)playerCharacter)) <= _206E_200E_206E_200E_206C_206C_200E_202E_206C_200B_206A_200D_206C_202A_200E_202B_206C_200E_202A_202E_206C_206C_206B_206C_200E_200C_202E_200F_200F_200B_202B_200E_200B_200D_202C_200F_202C_200C_202B_200D_202E(nearPositionCondition))) ? 1554570231 : 1554570235); - break; - case 1: - num = ((_206D_202A_206F_200B_206C_202A_202C_206D_206B_202E_206E_200E_206C_206F_200F_200F_202C_200D_206F_202B_200B_206E_200D_200C_206A_206E_206E_200D_206F_206D_206A_206C_206F_202C_202C_206E_202D_206F_202B_206D_202E(clientState) != _206D_200B_200F_202A_206C_200F_200F_200B_206A_206E_200E_206B_202B_206B_202B_202A_200C_206B_206A_200D_206F_200F_202A_206E_200E_202B_202B_206F_206D_206E_200F_206A_206B_200F_202D_200B_206C_206A_200E_200E_202E(nearPositionCondition)) ? 1554570231 : 1554570230); - break; - case 7: - return false; - case 0: - num = ((playerCharacter == null) ? 1554570228 : 1554570225); - break; - case 3: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1193189984), Array.Empty<object>()); - return true; - case 2: - num = ((!(_206E_200E_206E_200E_206C_206C_200E_202E_206C_200B_206A_200D_206C_202A_200E_202B_206C_200E_202A_202E_206C_206C_206B_206C_200E_200C_202E_200F_200F_200B_202B_200E_200B_200D_202C_200F_202C_200C_202B_200D_202E(nearPositionCondition2) <= Vector3.Distance(_200C_202A_202B_206D_200F_202D_202B_206E_202D_202B_206E_200C_200D_206E_202C_202D_200E_202C_206D_206B_206C_206F_200D_200F_202D_206B_202D_206A_202A_206A_202D_206B_202B_200D_200B_206B_206F_200E_206A_206C_202E(nearPositionCondition2), _200C_206D_202C_202D_202E_200C_202E_206D_200F_202E_202C_200C_202C_202B_200B_202D_206B_200F_200F_206C_206D_206F_202B_206B_200F_206D_200F_206A_206A_200F_206F_202C_206B_202C_206E_206E_200D_200C_202A_200D_202E((IGameObject)playerCharacter)))) ? 1554570228 : 1554570224); - break; - } + logger.LogDebug("Skipping step, as we're near the position"); + return true; } + NearPositionCondition notNearPosition = skipConditions.NotNearPosition; + if (notNearPosition != null && clientState.TerritoryType == notNearPosition.TerritoryId && localPlayer != null && notNearPosition.MaximumDistance <= Vector3.Distance(notNearPosition.Position, localPlayer.Position)) + { + logger.LogDebug("Skipping step, as we're not near the position"); + return true; + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool CheckPickUpTurnInQuestIds(QuestStep step) { - int num = ((!_200D_200F_200C_202A_206D_200E_202E_206B_200D_206C_206A_200E_200D_206D_202E_200B_200D_206D_200F_200D_200B_202B_206B_200F_200C_202D_202E_206F_206F_202D_202B_200F_206A_206C_206F_202D_202A_202B_206F_206B_202E(_206C_206E_206D_200B_200E_202A_202C_206F_200E_202C_200F_202A_206C_202A_200C_200E_202B_200B_200B_206C_202E_200E_206C_200C_200F_200B_206D_200F_200E_206C_206D_202B_202D_206D_206E_202C_200F_202B_202A_202C_202E(step), (ElementId)null)) ? (-743044795) : (-743044800)); - while (true) + if (step.PickUpQuestId != null && questFunctions.IsQuestAcceptedOrComplete(step.PickUpQuestId)) { - int num2 = num; - int num3 = -743044794; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = ((!_200D_200F_200C_202A_206D_200E_202E_206B_200D_206C_206A_200E_200D_206D_202E_200B_200D_206D_200F_200D_200B_202B_206B_200F_200C_202D_202E_206F_206F_202D_202B_200F_206A_206C_206F_202D_202A_202B_206F_206B_202E(_202E_200C_200D_202D_206A_202C_202D_202E_206D_206A_206D_206B_206B_206B_200B_206E_206A_206B_206C_202A_206A_202D_202C_202D_202A_200F_206D_200B_206C_206D_206D_206D_202C_206C_206F_206C_206C_206B_200D_200C_202E(step), (ElementId)null)) ? (-743044793) : (-743044799)); - break; - case 9: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-152774841), Array.Empty<object>()); - return true; - case 4: - num = ((!gameFunctions.IsFlyingUnlocked(_206A_202B_202C_200B_202D_206B_200F_202C_206E_200B_206C_200C_202B_202D_202C_200C_202A_200E_206E_206A_200E_200F_200C_206C_206A_206F_206C_200D_200C_206D_200D_206A_202E_206C_206F_200B_206E_200B_206E_200E_202E(step))) ? (-743044786) : (-743044785)); - break; - case 13: - num = -743044800; - break; - case 8: - num = ((!_200D_200F_200C_202A_206D_200E_202E_206B_200D_206C_206A_200E_200D_206D_202E_200B_200D_206D_200F_200D_200B_202B_206B_200F_200C_202D_202E_206F_206F_202D_202B_200F_206A_206C_206F_202D_202A_202B_206F_206B_202E(_206C_206E_206D_200B_200E_202A_202C_206F_200E_202C_200F_202A_206C_202A_200C_200E_202B_200B_200B_206C_202E_200E_206C_200C_200F_200B_206D_200F_200E_206C_206D_202B_202D_206D_206E_202C_200F_202B_202A_202C_202E(step), (ElementId)null)) ? (-743044791) : (-743044790)); - break; - case 14: - num = (configuration.Advanced.SkipAetherCurrents ? (-743044785) : (-743044798)); - break; - case 5: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1541475572), Array.Empty<object>()); - return true; - case 2: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(363473402), Array.Empty<object>()); - return true; - case 11: - num = ((!QuestData.HardModePrimals.Contains(_206C_206E_206D_200B_200E_202A_202C_206F_200E_202C_200F_202A_206C_202A_200C_200E_202B_200B_200B_206C_202E_200E_206C_200C_200F_200B_206D_200F_200E_206C_206D_202B_202D_206D_206E_202C_200F_202B_202A_202C_202E(step))) ? (-743044791) : (-743044796)); - break; - case 6: - num = ((!questFunctions.IsQuestAcceptedOrComplete(_206C_206E_206D_200B_200E_202A_202C_206F_200E_202C_200F_202A_206C_202A_200C_200E_202B_200B_200B_206C_202E_200E_206C_200C_200F_200B_206D_200F_200E_206C_206D_202B_202D_206D_206E_202C_200F_202B_202A_202C_202E(step))) ? (-743044795) : (-743044797)); - break; - case 1: - num = ((!_200D_200F_200C_202A_206D_200E_202E_206B_200D_206C_206A_200E_200D_206D_202E_200B_200D_206D_200F_200D_200B_202B_206B_200F_200C_202D_202E_206F_206F_202D_202B_200F_206A_206C_206F_202D_202A_202B_206F_206B_202E(_206C_206E_206D_200B_200E_202A_202C_206F_200E_202C_200F_202A_206C_202A_200C_200E_202B_200B_200B_206C_202E_200E_206C_200C_200F_200B_206D_200F_200E_206C_206D_202B_202D_206D_206E_202C_200F_202B_202A_202C_202E(step), (ElementId)null)) ? (-743044786) : (-743044788)); - break; - case 0: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-786278490), Array.Empty<object>()); - return true; - case 7: - num = ((!questFunctions.IsQuestComplete(_202E_200C_200D_202D_206A_202C_202D_202E_206D_206A_206D_206B_206B_206B_200B_206E_206A_206B_206C_202A_206A_202D_202C_202D_202A_200F_206D_200B_206C_206D_206D_206D_202C_206C_206F_206C_206C_206B_200D_200C_202E(step))) ? (-743044793) : (-743044794)); - break; - case 10: - num = ((!QuestData.AetherCurrentQuests.Contains(_206C_206E_206D_200B_200E_202A_202C_206F_200E_202C_200F_202A_206C_202A_200C_200E_202B_200B_200B_206C_202E_200E_206C_200C_200F_200B_206D_200F_200E_206C_206D_202B_202D_206D_206E_202C_200F_202B_202A_202C_202E(step))) ? (-743044786) : (-743044792)); - break; - case 15: - return false; - case 12: - num = ((!configuration.Advanced.SkipARealmRebornHardModePrimals) ? (-743044791) : (-743044787)); - break; - } + logger.LogDebug("Skipping step, as we have already picked up the relevant quest"); + return true; } + if (step.TurnInQuestId != null && questFunctions.IsQuestComplete(step.TurnInQuestId)) + { + logger.LogDebug("Skipping step, as we have already completed the relevant quest"); + return true; + } + if (step.PickUpQuestId != null && QuestData.AetherCurrentQuests.Contains(step.PickUpQuestId) && (configuration.Advanced.SkipAetherCurrents || gameFunctions.IsFlyingUnlocked(step.TerritoryId))) + { + logger.LogDebug("Skipping step, as aether current quests should be skipped"); + return true; + } + if (step.PickUpQuestId != null && configuration.Advanced.SkipARealmRebornHardModePrimals && QuestData.HardModePrimals.Contains(step.PickUpQuestId)) + { + logger.LogDebug("Skipping step, as hard mode primal quests should be skipped"); + return true; + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe bool CheckTaxiStandUnlocked(QuestStep step) { UIState* ptr = UIState.Instance(); - byte? b = _206A_200E_202A_206F_206D_200E_200F_206D_202E_206D_202E_200D_206C_200B_206A_202C_202A_202C_206A_202E_200B_200F_202E_202A_206E_202B_206C_200C_202A_200C_202B_200F_206E_200C_206E_206B_202C_200B_206B_202E(step); - int num = ((!b.HasValue) ? (-46785802) : (-46785804)); - byte valueOrDefault = default(byte); - while (true) + byte? taxiStandId = step.TaxiStandId; + if (taxiStandId.HasValue) { - int num2 = num; - int num3 = -46785803; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + byte valueOrDefault = taxiStandId.GetValueOrDefault(); + if (ptr->IsChocoboTaxiStandUnlocked((uint)(valueOrDefault + 1179648))) { - case 2: - num = -46785804; - break; - case 0: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(538050698), new object[1] { valueOrDefault }); + logger.LogDebug("Skipping step, as taxi stand {TaxiStandId} is unlocked", valueOrDefault); return true; - case 1: - { - valueOrDefault = b.GetValueOrDefault(); - byte num5 = valueOrDefault; - num3 = 1179648; - num4 = num5; - int num6 = num4 ^ num3; - int num7 = num4 & num3; - num = ((!ptr->IsChocoboTaxiStandUnlocked((uint)(num6 + (num7 + num7)))) ? (-46785802) : (-46785803)); - break; - } - case 3: - return false; } } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe bool IsBetterOrEqualItemEquipped(uint itemId) { - int num = ((_202D_206B_202D_202C_200F_200F_206C_200C_202E_206C_206E_200C_202B_202B_202C_206E_206B_202D_206C_200C_206A_206F_202E_200C_200E_200F_206E_202B_202A_206E_200F_206D_200D_206E_200C_200B_206C_202E_200D_206B_202E(objectTable) != null) ? (-1775728062) : (-1775728060)); - uint itemLevel = default(uint); - InventoryItem* inventorySlot = default(InventoryItem*); - InventoryManager* ptr = default(InventoryManager*); - while (true) + if (objectTable.LocalPlayer == null) { - int num2 = num; - int num3 = -1775728061; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 11: - _200B_202C_206E_206E_200E_206E_200C_200B_200C_202C_206A_202D_206C_200F_206B_202B_206D_206B_206E_206E_206A_202C_200E_200D_202A_202B_206E_202C_200D_206A_200B_202D_206B_202C_206C_200B_202E_202E_200C_206F_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2103966694), new object[1] { itemId }); - return true; - case 6: - itemLevel = gameFunctions.GetItemLevel(itemId); - num = ((itemLevel != 0) ? (-1775728053) : (-1775728056)); - break; - case 0: - num = -1775728060; - break; - case 7: - return false; - case 10: - return false; - case 3: - { - uint itemLevel2 = gameFunctions.GetItemLevel(inventorySlot->ItemId); - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1831085937), new object[2] { itemLevel2, itemLevel }); - return itemLevel2 >= itemLevel; - } - case 9: - inventorySlot = ptr->GetInventoryContainer(InventoryType.EquippedItems)->GetInventorySlot(0); - num = ((inventorySlot == null) ? (-1775728057) : (-1775728063)); - break; - case 8: - num = ((((ItemHandle)itemId).GetCount() != 0) ? (-1775728054) : (-1775728058)); - break; - case 4: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-92174121), new object[1] { itemId }); - return false; - case 1: - ptr = InventoryManager.Instance(); - num = ((ptr != null) ? (-1775728059) : (-1775728055)); - break; - case 5: - _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1557496953), new object[1] { itemId }); - return true; - case 2: - num = ((inventorySlot->ItemId != 0) ? (-1775728064) : (-1775728057)); - break; - } + return false; } + InventoryManager* ptr = InventoryManager.Instance(); + if (ptr == null) + { + return false; + } + uint itemLevel = gameFunctions.GetItemLevel(itemId); + if (itemLevel == 0) + { + logger.LogWarning("Could not get item level for item {ItemId}, skipping equip step", itemId); + return true; + } + if (((ItemHandle)itemId).GetCount() == 0) + { + logger.LogDebug("Item {ItemId} not found in inventory, skipping equip step", itemId); + return true; + } + InventoryItem* inventorySlot = ptr->GetInventoryContainer(InventoryType.EquippedItems)->GetInventorySlot(0); + if (inventorySlot == null || inventorySlot->ItemId == 0) + { + logger.LogDebug("No item equipped in main hand slot, should equip item {ItemId}", itemId); + return false; + } + uint itemLevel2 = gameFunctions.GetItemLevel(inventorySlot->ItemId); + logger.LogDebug("Comparing equipped item level {EquippedLevel} with target item level {TargetLevel}", itemLevel2, itemLevel); + return itemLevel2 >= itemLevel; } public override ETaskResult Update() @@ -1329,265 +552,5 @@ internal static class SkipCondition { return false; } - - static string _206C_200C_206C_202A_202B_206A_200F_206C_200D_200E_202C_202B_202B_206F_200D_200C_206A_200B_206C_202D_202D_200E_200E_206B_206F_206D_200B_202D_206F_200E_202C_202C_206A_206F_206C_202E_200B_202E_200E_206C_202E(string P_0, ReadOnlySpan<object> P_1) - { - return string.Join(P_0, P_1); - } - - static void _202C_202B_206F_206E_206F_202E_200D_202C_206B_206A_206E_200F_202B_202B_202A_206E_206E_206C_206C_200F_200D_206B_202C_200E_200F_200C_202A_206D_202A_200D_206A_200F_200E_202C_202D_202A_206F_200F_206A_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static EExtraSkipCondition? _200B_202B_200C_200D_206E_202D_206D_200B_200B_202A_200E_206A_206E_206A_206C_200C_200F_202A_202D_206E_206D_202B_206C_202B_200F_202C_206C_202C_200F_202A_206F_202C_206C_206E_200D_202B_206A_202E_200F_202D_202E(SkipStepConditions P_0) - { - return P_0.ExtraCondition; - } - - static ELockedSkipCondition? _206D_202A_202D_206C_206B_200F_202B_206C_202B_206E_202A_200F_200B_206D_206E_206D_206B_206E_206A_200F_206F_202A_202B_200F_206C_206F_206A_200C_206A_202B_202C_200E_202B_202D_202D_206B_202B_206B_200E_206B_202E(SkipStepConditions P_0) - { - return P_0.Flying; - } - - static ushort _206A_202B_202C_200B_202D_206B_200F_202C_206E_200B_206C_200C_202B_202D_202C_200C_202A_200E_206E_206A_200E_200F_200C_206C_206A_206F_206C_200D_200C_206D_200D_206A_202E_206C_206F_200B_206E_200B_206E_200E_202E(QuestStep P_0) - { - return P_0.TerritoryId; - } - - static ELockedSkipCondition? _206A_202C_202A_202E_200E_206F_200E_202B_202D_200F_206A_202B_202A_200D_206E_202E_200E_202A_200D_206C_202D_206B_200D_202D_202E_206B_206E_206C_200D_206B_206E_206C_200D_206D_206E_206E_202E_200D_200F_202A_202E(SkipStepConditions P_0) - { - return P_0.Chocobo; - } - - static bool _202D_202A_206D_202C_202C_200F_206F_206C_202B_200D_202A_206B_202B_202C_202E_202E_200B_206D_206C_206A_200D_202D_202E_202C_200B_200D_200E_206D_200E_206E_206F_202D_206E_200B_202D_206B_206B_206C_200F_202E(uint P_0) - { - return PlayerStateHelper.IsMountUnlocked(P_0); - } - - static List<ushort> _200C_200E_202A_200B_206F_206B_202D_206C_202B_206F_206F_206D_202B_202C_206D_206C_200E_202B_200B_200B_202B_202B_206F_206A_200C_206A_206B_206A_202D_206D_200E_200B_206B_202A_200B_200B_206B_202E_202D_202E(SkipStepConditions P_0) - { - return P_0.InTerritory; - } - - static uint _206D_202A_206F_200B_206C_202A_202C_206D_206B_202E_206E_200E_206C_206F_200F_200F_202C_200D_206F_202B_200B_206E_200D_200C_206A_206E_206E_200D_206F_206D_206A_206C_206F_202C_202C_206E_202D_206F_202B_206D_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static List<ushort> _206F_200F_206C_200B_206A_200D_200C_206A_202E_202B_202C_202B_202D_206E_200C_206C_200C_206A_206D_206D_206E_206B_202B_200C_200C_200E_202D_200F_200E_200F_206A_202D_202A_200C_206C_206F_202A_202E_206C_202C_202E(SkipStepConditions P_0) - { - return P_0.NotInTerritory; - } - - static bool? _202B_200C_206C_206B_202C_206C_206C_202C_206C_206A_206B_202A_206F_206F_202A_200F_200E_200D_200C_200B_206C_202D_200D_206B_206E_202C_200B_206E_202D_200D_202B_206A_200C_200C_202B_206A_202C_200E_200B_202C_202E(SkipStepConditions P_0) - { - return P_0.Diving; - } - - static bool _200C_202C_202A_200C_206D_202D_200F_202B_200E_202C_202C_202A_202E_206A_206F_206F_202A_206F_202D_206E_206D_202C_206E_200F_206D_206B_202B_206F_200C_206C_206C_206A_200C_206D_200D_202A_206A_202D_202D_206A_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static List<ElementId> _206F_206C_202A_202B_202E_202E_200C_202B_206B_200C_202C_202D_202C_202C_202C_206D_206D_206F_200F_200F_202C_206E_202A_206B_200D_206D_200D_202D_206D_206E_202C_200E_200B_202C_200D_206D_200F_202C_200B_202C_202E(SkipStepConditions P_0) - { - return P_0.QuestsCompleted; - } - - static List<ElementId> _200B_206F_202E_206E_200B_206C_200B_206F_202A_200B_206B_202A_206A_200F_202D_202A_200D_206E_202D_200F_200B_206D_200C_202A_206A_206E_200B_206F_200E_200F_200E_202B_200D_206E_202C_200F_200C_206E_202E_200D_202E(SkipStepConditions P_0) - { - return P_0.QuestsAccepted; - } - - static bool _200F_206F_202E_202E_200F_202C_200C_206C_202C_202B_202B_200E_200F_202A_200D_202B_200E_202D_200F_206B_200E_200F_202D_206A_206C_200C_200F_200D_206D_206D_202D_206D_202B_206C_202C_206B_206D_206B_202E(SkipStepConditions P_0) - { - return P_0.NotTargetable; - } - - static uint? _202D_202D_206E_202A_206D_200E_202B_202C_206C_200C_206C_200C_202E_202A_202A_206B_200B_206A_206E_206B_206F_200F_206F_200D_202A_206E_200E_200C_206D_200D_202B_202D_202C_206F_202B_206C_202C_202C_200E_200F_202E(QuestStep P_0) - { - return P_0.DataId; - } - - static IPlayerCharacter _202D_206B_202D_202C_200F_200F_206C_200C_202E_206C_206E_200C_202B_202B_202C_206E_206B_202D_206C_200C_206A_206F_202E_200C_200E_200F_206E_202B_202A_206E_200F_206D_200D_206E_200C_200B_206C_202E_200D_206B_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static Vector3? _206E_200B_206E_206E_206C_206D_206C_206D_200D_202E_202E_202C_206A_200F_200C_206D_202E_200F_202B_200C_200D_206F_200D_202C_200C_202B_206B_206D_206A_206B_206A_202E_200F_202B_200F_200F_200C_206D_202A_200D_202E(QuestStep P_0) - { - return P_0.Position; - } - - static Vector3 _200C_206D_202C_202D_202E_200C_202E_206D_200F_202E_202C_200C_202C_202B_200B_202D_206B_200F_200F_206C_206D_206F_202B_206B_200F_206D_200F_206A_206A_200F_206F_202C_206B_202C_206E_206E_200D_200C_202A_200D_202E(IGameObject P_0) - { - return P_0.Position; - } - - static bool _202C_202E_202B_200F_200C_202B_202E_206A_200D_206C_200C_206F_206B_200F_206D_202E_202C_200F_206D_202C_202A_200B_206E_206F_202C_202B_202C_206A_206E_206E_200E_200F_206C_200B_206E_206F_206C_206F_206D_202C_202E(IGameObject P_0) - { - return P_0.IsTargetable; - } - - static List<uint> _202E_202E_202E_200F_202D_206B_206A_206D_206A_202A_206B_200E_202C_202D_206C_202B_200E_206F_200E_200F_202C_200E_206C_202B_206E_200E_206F_202A_202B_206B_202C_202A_206B_202B_206D_200E_200D_206D_202E_206A_202E(SkipStepConditions P_0) - { - return P_0.NotNamePlateIconId; - } - - static nint _206D_200C_200B_206F_200E_202D_200D_200C_200E_200D_202E_206A_202A_202B_200D_202A_202E_200F_206F_206D_202D_206D_200D_202B_202E_206F_202B_202B_200C_206D_200C_206F_206E_200C_206D_200B_202C_206A_206B_206B_202E(IGameObject P_0) - { - return P_0.Address; - } - - static SkipItemConditions _202D_202E_202B_200B_202D_206C_202A_200B_202D_200B_200C_206B_206F_202E_206F_206A_206F_206A_202A_200F_202A_202B_206D_200F_202C_202E_206B_200C_206C_206A_202E_206C_202B_200C_206A_206C_206B_206D_206E_206A_202E(SkipStepConditions P_0) - { - return P_0.Item; - } - - static bool _202E_200E_206B_202D_206D_200D_202E_206F_202A_200E_206D_202E_206E_206C_202C_202D_200D_200D_200E_206A_206D_206D_202A_200D_200F_202B_206B_202E_206D_202E_206F_200C_202A_206C_206C_200D_200E_200C_200E_202C_202E(SkipItemConditions P_0) - { - return P_0.NotInInventory; - } - - static uint? _202C_200C_202B_200B_200B_202A_202C_200E_200D_206A_200F_206A_206F_200D_200F_202D_200B_202E_200F_206C_200F_206A_206A_206F_206E_206A_200F_206F_200E_206D_202D_200E_200C_200E_200B_200C_206E_202C_202A_202E(QuestStep P_0) - { - return P_0.ItemId; - } - - static bool _200D_200E_206B_200E_200B_206D_206A_200D_200E_200E_202D_200D_206B_202A_206C_202C_206E_200C_206D_206B_202B_206A_200C_206D_206D_202C_206F_200F_200F_200B_200F_206E_206A_202B_206E_202D_200C_202E_206C_202A_202E(SkipItemConditions P_0) - { - return P_0.InInventory; - } - - static bool _206C_206F_206B_206F_202B_206E_206D_202A_206C_200F_206D_206B_200F_206B_202C_206B_202E_200D_206C_202D_206D_206D_202B_202B_206E_206F_206C_202D_202D_202A_200C_200D_206D_202E_200C_206F_202B_202D_200F_202A_202E(SkipItemConditions P_0) - { - return P_0.BetterOrEqualItemEquipped; - } - - static EInteractionType _200E_206D_206F_200B_200F_206E_202B_200E_200E_206C_206B_206F_200C_202A_206C_206F_200E_200B_202D_202B_200B_200B_206D_206A_200B_200C_202B_202C_202B_200B_202B_202C_206D_206D_206B_206D_206F_200F_202C_206C_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static int? _202C_206B_202C_202C_206A_206B_200D_206B_202A_202D_202B_206A_206A_202C_206A_206F_200B_206A_202C_206A_206A_200F_206E_202D_202B_202C_200E_200F_206C_206C_200E_206C_200E_202A_200F_200F_202E_200B_206E_202D_202E(QuestStep P_0) - { - return P_0.ItemCount; - } - - static EAetheryteLocation? _200E_200D_206D_206D_200C_202B_206F_206C_200B_206F_206A_206B_202D_206A_206A_206A_200C_206A_206B_202E_206E_202D_200B_200F_206E_200D_206F_200D_200F_200B_206A_202A_206E_206C_200D_206A_206C_206F_200B_206D_202E(QuestStep P_0) - { - return P_0.Aetheryte; - } - - static EAetheryteLocation? _200D_200E_206B_202D_206D_202D_200C_206E_206B_200B_202A_200E_202A_200F_200C_206E_200B_200C_206A_206B_200B_206E_206A_206F_200F_202E_200C_202B_200E_202C_202B_200C_206B_200C_202C_206C_200E_202C_202B_200E_202E(SkipStepConditions P_0) - { - return P_0.AetheryteLocked; - } - - static EAetheryteLocation? _206C_206F_202B_202A_206F_202C_206B_202E_206A_202D_200F_206C_200B_200D_200C_206D_202E_206C_200D_202A_200E_200F_206A_206B_200E_200D_202C_206F_206C_206E_202C_206A_200C_206E_200E_200F_206F_206C_206D_206D_202E(SkipStepConditions P_0) - { - return P_0.AetheryteUnlocked; - } - - static ushort? _206B_202A_206C_202A_200F_200B_202B_200D_206A_206F_200F_206C_202D_206B_202B_200C_206C_200F_206B_206D_200D_206C_200C_202C_206A_202C_206A_202C_200E_202B_202E_206E_206F_206E_202E_206F_200D_206D_206E_200C_202E(SkipStepConditions P_0) - { - return P_0.MinimumLevel; - } - - static byte _200C_202D_200F_206E_206B_202A_206D_206F_202B_202A_206E_206C_206A_206B_202A_200F_202B_200B_206F_200E_202D_200D_206B_206D_202D_206D_206F_202E_202D_202C_200C_200B_206F_200C_206C_206F_200D_200B_202B_206B_202E(ICharacter P_0) - { - return P_0.Level; - } - - static List<QuestWorkValue> _202E_200C_200C_206E_206A_206E_206A_202A_202E_202E_200C_202B_206A_206B_202B_200B_202E_202B_206E_206A_200D_202C_206C_202A_202D_202E_206D_206E_200C_202D_206B_202C_202B_206C_206E_206F_202D_202E_202C_202D_202E(QuestStep P_0) - { - return P_0.CompletionQuestVariablesFlags; - } - - static SkipConditions _202B_200B_206D_206E_206C_200F_200C_206F_200D_206A_206B_202B_202C_200D_206B_206D_206C_200C_206F_200F_206A_202D_200E_206A_206C_200B_202C_202C_200C_206C_200B_200E_206F_200E_202E_206E_202C_206F_202D_200D_202E(QuestStep P_0) - { - return P_0.SkipConditions; - } - - static SkipStepConditions _200C_206A_206A_206F_200D_206D_202C_202D_202D_202B_206D_202D_200D_202D_202C_206B_200B_202E_206E_202A_200F_206F_200F_200F_200B_206A_200D_206C_200E_200C_200B_202E_206F_206B_206E_200F_206E_206E_200B_202E_202E(SkipConditions P_0) - { - return P_0.StepIf; - } - - static IList<QuestWorkValue> _200E_206A_202D_202A_202B_202E_206B_202A_206B_206C_202A_206D_202D_202B_206F_206F_202E_206C_200F_200B_206D_200F_206D_200C_202B_200E_200D_200B_206A_202B_200D_202D_202C_202A_202C_202E_206C_206F_200C_202E_202E(SkipStepConditions P_0) - { - return P_0.CompletionQuestVariablesFlags; - } - - static List<List<QuestWorkValue>> _202C_200E_202B_200F_200E_206D_200D_202C_206E_200B_200C_200E_200C_206D_206E_202B_200C_206C_200F_206B_206C_206F_202B_206B_200C_202D_206B_200F_202E_202B_202B_200E_202B_202B_200B_202E_202B_200C_202D_200E_202E(QuestStep P_0) - { - return P_0.RequiredQuestVariables; - } - - static List<EExtendedClassJob> _206A_206E_200C_200F_206C_206B_200C_202E_206C_202C_200C_202D_206D_202A_200E_202B_200F_206E_202D_200C_206E_206D_206B_206D_206E_200C_202C_200B_202B_206D_206C_200F_206F_200F_202C_200C_206D_206B_200B_206D_202E(QuestStep P_0) - { - return P_0.RequiredQuestAcceptedJob; - } - - static List<EExtendedClassJob> _206C_200E_202C_206B_202E_206D_200B_206D_200C_202C_206B_202C_200B_202D_200F_202B_206C_200C_206D_206B_206F_200E_202E_206B_200E_202E_202A_202D_206D_200C_202C_206F_206F_200D_206A_200E_206F_200D_206F_200F_202E(QuestStep P_0) - { - return P_0.RequiredCurrentJob; - } - - static RowRef<ClassJob> _206D_200E_206E_202C_202B_206B_202A_200C_206B_206D_200E_206E_206F_202E_202D_206D_200F_202B_202B_202A_200F_202E_206E_206B_200F_200E_206D_206D_206B_200D_206B_206B_206E_206D_200D_206D_200F_200B_202E_206C_202E(ICharacter P_0) - { - return P_0.ClassJob; - } - - static NearPositionCondition _200B_202E_200C_202A_202B_202B_202C_200D_202E_206A_206D_206B_206F_200D_206C_200F_200E_202B_200C_202C_202A_202E_202A_202E_202A_206D_202A_202A_200C_200C_200B_200F_202C_206C_206F_202D_200E_200E_200D_202B_202E(SkipStepConditions P_0) - { - return P_0.NearPosition; - } - - static ushort _206D_200B_200F_202A_206C_200F_200F_200B_206A_206E_200E_206B_202B_206B_202B_202A_200C_206B_206A_200D_206F_200F_202A_206E_200E_202B_202B_206F_206D_206E_200F_206A_206B_200F_202D_200B_206C_206A_200E_200E_202E(NearPositionCondition P_0) - { - return P_0.TerritoryId; - } - - static Vector3 _200C_202A_202B_206D_200F_202D_202B_206E_202D_202B_206E_200C_200D_206E_202C_202D_200E_202C_206D_206B_206C_206F_200D_200F_202D_206B_202D_206A_202A_206A_202D_206B_202B_200D_200B_206B_206F_200E_206A_206C_202E(NearPositionCondition P_0) - { - return P_0.Position; - } - - static float _206E_200E_206E_200E_206C_206C_200E_202E_206C_200B_206A_200D_206C_202A_200E_202B_206C_200E_202A_202E_206C_206C_206B_206C_200E_200C_202E_200F_200F_200B_202B_200E_200B_200D_202C_200F_202C_200C_202B_200D_202E(NearPositionCondition P_0) - { - return P_0.MaximumDistance; - } - - static NearPositionCondition _202A_202A_200B_200C_202E_202D_206D_200C_202D_202C_202D_200E_202E_202D_202D_206A_202C_206D_206B_200F_200E_200D_206E_206F_200F_206F_206B_200B_202B_200D_202D_200E_200D_200D_200D_206B_200E_202C_200B_206B_202E(SkipStepConditions P_0) - { - return P_0.NotNearPosition; - } - - static ElementId _206C_206E_206D_200B_200E_202A_202C_206F_200E_202C_200F_202A_206C_202A_200C_200E_202B_200B_200B_206C_202E_200E_206C_200C_200F_200B_206D_200F_200E_206C_206D_202B_202D_206D_206E_202C_200F_202B_202A_202C_202E(QuestStep P_0) - { - return P_0.PickUpQuestId; - } - - static bool _200D_200F_200C_202A_206D_200E_202E_206B_200D_206C_206A_200E_200D_206D_202E_200B_200D_206D_200F_200D_200B_202B_206B_200F_200C_202D_202E_206F_206F_202D_202B_200F_206A_206C_206F_202D_202A_202B_206F_206B_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } - - static ElementId _202E_200C_200D_202D_206A_202C_202D_202E_206D_206A_206D_206B_206B_206B_200B_206E_206A_206B_206C_202A_206A_202D_202C_202D_202A_200F_206D_200B_206C_206D_206D_206D_202C_206C_206F_206C_206C_206B_200D_200C_202E(QuestStep P_0) - { - return P_0.TurnInQuestId; - } - - static byte? _206A_200E_202A_206F_206D_200E_200F_206D_202E_206D_202E_200D_206C_200B_206A_202C_202A_202C_206A_202E_200B_200F_202E_202A_206E_202B_206C_200C_202A_200C_202B_200F_206E_200C_206E_206B_202C_200B_206B_202E(QuestStep P_0) - { - return P_0.TaxiStandId; - } - - static void _200B_202C_206E_206E_200E_206E_200C_200B_200C_202C_206A_202D_206C_200F_206B_202B_206D_206B_206E_206E_206A_202C_200E_200D_202A_202B_206E_202C_200D_206A_200B_202D_206B_202C_206C_200B_202E_202E_200C_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Shared/SkipMissingObject.cs b/Questionable/Questionable.Controller.Steps.Shared/SkipMissingObject.cs index e4f6e40..b545f91 100644 --- a/Questionable/Questionable.Controller.Steps.Shared/SkipMissingObject.cs +++ b/Questionable/Questionable.Controller.Steps.Shared/SkipMissingObject.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Microsoft.Extensions.Logging; using Questionable.Functions; using Questionable.Model.Questing; @@ -12,107 +9,9 @@ internal static class SkipMissingObject { internal sealed record Task(uint DataId, ElementId ElementId, int Sequence) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202C_200C_200F_202D_202C_206F_200B_206B_200D_202D_206B_202C_200B_206C_202C_202C_206A_202C_202C_200D_206C_200F_200E_206B_200B_200D_206E_202A_206F_206E_200F_200E_206D_206B_206E_202D_202B_200C_200E_202D_202E(typeof(Task).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(19, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(581809339)); - defaultInterpolatedStringHandler.AppendFormatted(DataId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202B_202B_200F_206A_202A_200F_200F_206F_202C_206C_200E_206B_202C_202B_206C_202E_206B_202E_202C_206E_206A_202C_200C_202E_202A_200F_206D_206C_200E_202A_206D_206E_202A_202B_200B_202C_200F_202B_206E_206D_202E(); - _202B_202B_206B_206C_202A_206D_200B_206B_202B_202E_202C_206F_200C_202D_200E_200B_202C_200D_200B_200B_202C_202D_206C_200E_202A_200F_202D_202A_206B_200F_206B_206A_200D_206B_200B_206A_206E_200F_206F_200E_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1430532645)); - _202B_202B_206B_206C_202A_206D_200B_206B_202B_202E_202C_206F_200C_202D_200E_200B_202C_200D_200B_200B_202C_202D_206C_200E_202A_200F_202D_202A_206B_200F_206B_206A_200D_206B_200B_206A_206E_200F_206F_200E_202E(builder, DataId.ToString()); - _202B_202B_206B_206C_202A_206D_200B_206B_202B_202E_202C_206F_200C_202D_200E_200B_202C_200D_200B_200B_202C_202D_206C_200E_202A_200F_202D_202A_206B_200F_206B_206A_200D_206B_200B_206A_206E_200F_206F_200E_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(70669024)); - _200F_200F_200E_200E_200E_206E_200B_200F_206D_200F_202D_206E_206E_206F_202D_202C_202C_202A_200D_200E_200C_206F_200C_200F_200F_200B_206A_200D_202A_200C_200E_200D_200C_206F_202A_206E_200D_206D_206D_200E_202E(builder, (object)ElementId); - _202B_202B_206B_206C_202A_206D_200B_206B_202B_202E_202C_206F_200C_202D_200E_200B_202C_200D_200B_200B_202C_202D_206C_200E_202A_200F_202D_202A_206B_200F_206B_206A_200D_206B_200B_206A_206E_200F_206F_200E_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1883281888)); - _202B_202B_206B_206C_202A_206D_200B_206B_202B_202E_202C_206F_200C_202D_200E_200B_202C_200D_200B_200B_202C_202D_206C_200E_202A_200F_202D_202A_206B_200F_206B_206A_200D_206B_200B_206A_206E_200F_206F_200E_202E(builder, Sequence.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? 1374562800 : 1374562801); - while (true) - { - int num2 = num; - int num3 = 1374562804; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return EqualityComparer<int>.Default.Equals(Sequence, other.Sequence); - case 3: - num = ((!EqualityComparer<Questionable.Model.Questing.ElementId>.Default.Equals(ElementId, other.ElementId)) ? 1374562806 : 1374562805); - break; - case 2: - return false; - case 5: - num = (((object)other == null) ? 1374562806 : 1374562803); - break; - case 6: - num = ((!EqualityComparer<uint>.Default.Equals(DataId, other.DataId)) ? 1374562806 : 1374562807); - break; - case 7: - num = ((!_202E_200D_206F_202A_206C_206F_206C_206B_206A_202E_200C_202D_206F_206D_206E_202D_200C_200B_200C_206B_206E_206B_206A_202B_206F_206C_206E_202A_200B_206A_202E_202A_206A_202E_206E_200D_206C_202C_206F_202E_202E(EqualityContract, other.EqualityContract)) ? 1374562806 : 1374562802); - break; - case 4: - return true; - case 0: - num = 1374562801; - break; - } - } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202C_200C_200F_202D_202C_206F_200B_206B_200D_202D_206B_202C_200B_206C_202C_202C_206A_202C_202C_200D_206C_200F_200E_206B_200B_200D_206E_202A_206F_206E_200F_200E_206D_206B_206E_202D_202B_200C_200E_202D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _202B_202B_200F_206A_202A_200F_200F_206F_202C_206C_200E_206B_202C_202B_206C_202E_206B_202E_202C_206E_206A_202C_200C_202E_202A_200F_206D_206C_200E_202A_206D_206E_202A_202B_200B_202C_200F_202B_206E_206D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202B_202B_206B_206C_202A_206D_200B_206B_202B_202E_202C_206F_200C_202D_200E_200B_202C_200D_200B_200B_202C_202D_206C_200E_202A_200F_202D_202A_206B_200F_206B_206A_200D_206B_200B_206A_206E_200F_206F_200E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200F_200F_200E_200E_200E_206E_200B_200F_206D_200F_202D_206E_206E_206F_202D_202C_202C_202A_200D_200E_200C_206F_200C_200F_200F_200B_206A_200D_202A_200C_200E_200D_200C_206F_202A_206E_200D_206D_206D_200E_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202E_200D_206F_202A_206C_206F_206C_206B_206A_202E_200C_202D_206F_206D_206E_202D_200C_200B_200C_206B_206E_206B_206A_202B_206F_206C_206E_202A_200B_206A_202E_202A_206A_202E_206E_200D_206C_202C_206F_202E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"SkipMissingObject({DataId})"; } } @@ -122,52 +21,28 @@ internal static class SkipMissingObject protected override bool Start() { - _skipAt = _206D_200B_206C_206E_200B_200D_206F_202E_206A_202E_200E_200C_206A_200C_200D_206C_200E_200F_206C_206F_206D_200E_206E_200E_200D_206A_200F_200E_206E_206C_206F_202E_206B_202D_202C_206F_200B_206B_206D_206B_202E() + 500; + _skipAt = Environment.TickCount64 + 500; return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - int num = ((gameFunctions.FindObjectByDataId(base.Task.DataId, null, warnIfMissing: false) == null) ? 54864098 : 54864097); - while (true) + if (gameFunctions.FindObjectByDataId(base.Task.DataId, null, warnIfMissing: false) != null) { - int num2 = num; - int num3 = 54864098; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - _206B_206A_206C_200B_206F_206F_202A_206F_200F_202D_202A_206C_202E_206A_206D_206F_206D_200E_200F_206A_202C_200F_202B_206C_206A_206E_200E_202C_206D_202A_206F_202D_200F_206B_206A_200C_206C_206F_200C_206F_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1261971575), new object[1] { base.Task.DataId }); - questController.IncreaseStepCount(base.Task.ElementId, base.Task.Sequence, shouldContinue: true); - return ETaskResult.SkipRemainingTasksForStep; - case 1: - return ETaskResult.StillRunning; - case 0: - num = ((_206D_200B_206C_206E_200B_200D_206F_202E_206A_202E_200E_200C_206A_200C_200D_206C_200E_200F_206C_206F_206D_200E_206E_200E_200D_206A_200F_200E_206E_206C_206F_202E_206B_202D_202C_206F_200B_206B_206D_206B_202E() >= _skipAt) ? 54864096 : 54864099); - break; - case 3: - return ETaskResult.TaskComplete; - case 4: - num = 54864097; - break; - } + return ETaskResult.TaskComplete; } + if (Environment.TickCount64 < _skipAt) + { + return ETaskResult.StillRunning; + } + logger.LogInformation("Skipping simulated actions because GameObject {DataId} is not present", base.Task.DataId); + questController.IncreaseStepCount(base.Task.ElementId, base.Task.Sequence, shouldContinue: true); + return ETaskResult.SkipRemainingTasksForStep; } public override bool ShouldInterruptOnDamage() { return false; } - - static long _206D_200B_206C_206E_200B_200D_206F_202E_206A_202E_200E_200C_206A_200C_200D_206C_200E_200F_206C_206F_206D_200E_206E_200E_200D_206A_200F_200E_206E_206C_206F_202E_206B_202D_202C_206F_200B_206B_206D_206B_202E() - { - return Environment.TickCount64; - } - - static void _206B_206A_206C_200B_206F_206F_202A_206F_200F_202D_202A_206C_202E_206A_206D_206F_206D_200E_200F_206A_202C_200F_202B_206C_206A_206E_200E_202C_206D_202A_206F_202D_200F_206B_206A_200C_206C_206F_200C_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Shared/SmartNavStep.cs b/Questionable/Questionable.Controller.Steps.Shared/SmartNavStep.cs index 676c844..b41e655 100644 --- a/Questionable/Questionable.Controller.Steps.Shared/SmartNavStep.cs +++ b/Questionable/Questionable.Controller.Steps.Shared/SmartNavStep.cs @@ -1,10 +1,5 @@ -using System; -using System.Collections; using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Diagnostics; using System.Numerics; -using System.Runtime.CompilerServices; using Microsoft.Extensions.Logging; using Questionable.Data; using Questionable.Model; @@ -20,432 +15,77 @@ internal static class SmartNavStep { internal sealed class Factory(NavRouter navRouter, PlayerNavStateBuilder playerNavStateBuilder, RouteInstructionBuilder instructionBuilder, SmartNavTaskMapper taskMapper, SmartNavReRouteService reRouteService, AetheryteData aetheryteData, TerritoryData territoryData, ILogger<Factory> logger) : ITaskFactory { - [CompilerGenerated] - private sealed class _003CCreateAllTasks_003Ed__13 : IEnumerable<ITask>, IEnumerable, IEnumerator<ITask>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ITask _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - public Factory _003C_003E4__this; - - private QuestStep step; - - public QuestStep _003C_003E3__step; - - private IEnumerator<ITask> _003C_003E7__wrap1; - - ITask IEnumerator<ITask>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CCreateAllTasks_003Ed__13(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _200F_200F_202C_206D_206F_202D_200D_206E_200B_202D_206A_202A_206B_202E_206D_200F_202E_206C_206C_206B_200C_206D_200B_206E_200F_200F_206F_206E_206A_200E_206B_206C_202C_202C_202B_206C_202D_206E_202D_200C_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num == -3) ? 605314869 : 605314870); - while (true) - { - int num3 = num2; - int num4 = 605314868; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 0: - num2 = 605314870; - continue; - case 2: - if (num == 1) - { - num2 = 605314869; - continue; - } - break; - case 1: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E7__wrap1 = null; - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - try - { - int num = _003C_003E1__state; - Factory factory = _003C_003E4__this; - int num2 = ((num == 0) ? 663941782 : 663941783); - Vector3? vector = default(Vector3?); - PlayerNavState playerNavState = default(PlayerNavState); - RouteResult routeResult = default(RouteResult); - while (true) - { - int num3 = num2; - int num4 = 663941778; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 8: - num2 = (_202D_200C_202E_202D_200B_206A_206E_206E_200C_200B_200F_200F_206F_206C_200C_206C_206D_200B_206B_200E_200D_206D_202A_206E_202E_200F_206C_206F_206F_202C_200B_206F_202E_200C_202C_202B_202B_200D_206F_202D_202E((IEnumerator)_003C_003E7__wrap1) ? 663941779 : 663941780); - break; - case 4: - _003C_003E1__state = -1; - factory.HandledRouting = false; - vector = factory.ResolveDestination(step); - num2 = (vector.HasValue ? 663941790 : 663941781); - break; - case 0: - num2 = 663941783; - break; - case 11: - return false; - case 12: - playerNavState = _200C_202A_206C_206D_206B_200D_200F_202A_202D_200E_206E_200D_200B_206C_206A_200F_202A_202B_206C_200E_206E_200B_202B_200F_202C_206B_206F_200E_202A_202B_202A_206E_206E_202C_200F_200F_202B_202A_206F_206F_202E(factory.playerNavStateBuilder, (int?)null); - num2 = ((playerNavState != null) ? 663941776 : 663941785); - break; - case 7: - return false; - case 3: - _003C_003E1__state = -3; - num2 = 663941786; - break; - case 13: - return false; - case 10: - return false; - case 1: - { - ITask current = _003C_003E7__wrap1.Current; - _003C_003E2__current = current; - _003C_003E1__state = 1; - return true; - } - case 2: - routeResult = _206C_200D_206E_200F_200D_200B_202A_202C_206B_206D_206E_206C_202A_206F_206B_206B_206B_202D_202B_200F_206C_206D_200F_206F_200B_202C_206A_202A_202E_202E_202D_206B_200E_206A_202B_206E_202E_206F_200C_206A_202E(factory.navRouter, playerNavState, (uint)_206D_206D_206C_200C_206D_202C_206E_202C_206B_202D_206B_206A_200F_206B_200D_206A_200D_206C_206D_202E_200F_202C_206B_206F_206C_206B_206B_200F_200B_202E_206E_206F_200C_202A_200F_206A_202C_206E_206C_202C_202E(step), vector.Value, (IReadOnlySet<string>)null); - num2 = ((_206F_206B_200F_202A_202E_200F_200B_200B_200B_200E_200D_206A_202A_206D_200D_200E_206F_202E_202A_206C_206B_200C_206E_202E_202C_202A_206E_200E_202E_206F_206D_206C_200D_202B_206E_202E_202E_200C_202A_202E_202E(routeResult).Count != 0) ? 663941787 : 663941791); - break; - case 5: - num2 = ((num == 1) ? 663941777 : 663941784); - break; - case 9: - factory.HandledRouting = true; - _200C_202B_200D_200E_206A_200E_200D_206B_206C_202B_206C_202D_202D_206A_206B_206D_200B_206D_202B_202D_206F_206C_200B_202E_200B_200F_200B_202B_206E_202C_206A_200D_200E_202B_206E_200D_206B_202E_206B_202E((ILogger)factory.logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1590358802), new object[2] - { - factory.territoryData.GetNameAndId(_206D_206D_206C_200C_206D_202C_206E_202C_206B_202D_206B_206A_200F_206B_200D_206A_200D_206C_206D_202E_200F_202C_206B_206F_206C_206B_206B_200F_200B_202E_206E_206F_200C_202A_200F_206A_202C_206E_206C_202C_202E(step)), - _206F_206B_200F_202A_202E_200F_200B_200B_200B_200E_200D_206A_202A_206D_200D_200E_206F_202E_202A_206C_206B_200C_206E_202E_202C_202A_206E_200E_202E_206F_206D_206C_200D_202B_206E_202E_202E_200C_202A_202E_202E(routeResult).Count - }); - factory.reRouteService.SetDestination(_206D_206D_206C_200C_206D_202C_206E_202C_206B_202D_206B_206A_200F_206B_200D_206A_200D_206C_206D_202E_200F_202C_206B_206F_206C_206B_206B_200F_200B_202E_206E_206F_200C_202A_200F_206A_202C_206E_206C_202C_202E(step), vector.Value); - _003C_003E7__wrap1 = factory.taskMapper.MapInstructions(_202C_206C_206A_202C_206B_206D_206B_206F_202A_202E_206E_206F_202A_206B_206C_206F_200B_206B_202B_202E_202C_200E_202A_200B_206D_200F_206F_202E_202B_200F_206F_202E_200B_202B_202A_202D_206D_206D_202B_202C_202E(factory.instructionBuilder, routeResult, (uint)_206D_206D_206C_200C_206D_202C_206E_202C_206B_202D_206B_206A_200F_206B_200D_206A_200D_206C_206D_202E_200F_202C_206B_206F_206C_206B_206B_200F_200B_202E_206E_206F_200C_202A_200F_206A_202C_206E_206C_202C_202E(step), _206D_202C_202E_200D_202A_200D_200B_200F_206C_200B_206F_206B_206F_206F_200D_200E_206B_206A_206C_200F_200C_200F_206A_200D_206D_206B_206A_202B_200B_200F_202E_200D_202C_206C_206E_206B_206D_202A_200B_202E_202E(step)), step).GetEnumerator(); - _003C_003E1__state = -3; - num2 = 663941786; - break; - case 6: - _003C_003Em__Finally1(); - _003C_003E7__wrap1 = null; - return false; - } - } - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - int num = ((_003C_003E7__wrap1 == null) ? 298667003 : 298667002); - while (true) - { - int num2 = num; - int num3 = 298667003; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 298667002; - break; - case 1: - _200E_202A_206A_200C_206E_206C_206B_206B_206D_206E_206B_202C_206D_206A_202B_202B_200C_202B_202E_202C_202D_200B_200D_202C_206B_202B_206F_202B_200F_200F_202B_202D_200C_206E_200F_206C_200F_206A_206F_206D_202E((IDisposable)_003C_003E7__wrap1); - num = 298667003; - break; - case 0: - return; - } - } - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _206C_206C_200B_202D_206A_200B_200C_206D_202D_206E_202A_202B_206A_206B_200D_202E_202D_200C_200C_200C_200D_206E_202E_202A_206A_200C_202B_202C_206E_206E_200B_200C_200D_206F_202C_200C_206E_206B_206F_206C_202E(); - } - - [DebuggerHidden] - IEnumerator<ITask> IEnumerable<ITask>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? (-183220830) : (-183220831)); - _003CCreateAllTasks_003Ed__13 _003CCreateAllTasks_003Ed__ = default(_003CCreateAllTasks_003Ed__13); - while (true) - { - int num2 = num; - int num3 = -183220832; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - _003C_003E1__state = 0; - _003CCreateAllTasks_003Ed__ = this; - num = -183220832; - break; - case 1: - num = ((_003C_003El__initialThreadId != _200F_200F_202C_206D_206F_202D_200D_206E_200B_202D_206A_202A_206B_202E_206D_200F_202E_206C_206C_206B_200C_206D_200B_206E_200F_200F_206F_206E_206A_200E_206B_206C_202C_202C_202B_206C_202D_206E_202D_200C_202E()) ? (-183220830) : (-183220828)); - break; - case 0: - _003CCreateAllTasks_003Ed__.step = _003C_003E3__step; - return _003CCreateAllTasks_003Ed__; - case 3: - num = -183220831; - break; - case 2: - _003CCreateAllTasks_003Ed__ = new _003CCreateAllTasks_003Ed__13(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = -183220832; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ITask>)this).GetEnumerator(); - } - - static int _200F_200F_202C_206D_206F_202D_200D_206E_200B_202D_206A_202A_206B_202E_206D_200F_202E_206C_206C_206B_200C_206D_200B_206E_200F_200F_206F_206E_206A_200E_206B_206C_202C_202C_202B_206C_202D_206E_202D_200C_202E() - { - return Environment.CurrentManagedThreadId; - } - - static PlayerNavState _200C_202A_206C_206D_206B_200D_200F_202A_202D_200E_206E_200D_200B_206C_206A_200F_202A_202B_206C_200E_206E_200B_202B_200F_202C_206B_206F_200E_202A_202B_202A_206E_206E_202C_200F_200F_202B_202A_206F_206F_202E(PlayerNavStateBuilder P_0, int? P_1) - { - return P_0.Build(P_1); - } - - static ushort _206D_206D_206C_200C_206D_202C_206E_202C_206B_202D_206B_206A_200F_206B_200D_206A_200D_206C_206D_202E_200F_202C_206B_206F_206C_206B_206B_200F_200B_202E_206E_206F_200C_202A_200F_206A_202C_206E_206C_202C_202E(QuestStep P_0) - { - return P_0.TerritoryId; - } - - static RouteResult _206C_200D_206E_200F_200D_200B_202A_202C_206B_206D_206E_206C_202A_206F_206B_206B_206B_202D_202B_200F_206C_206D_200F_206F_200B_202C_206A_202A_202E_202E_202D_206B_200E_206A_202B_206E_202E_206F_200C_206A_202E(NavRouter P_0, PlayerNavState P_1, uint P_2, Vector3 P_3, IReadOnlySet<string> P_4) - { - return P_0.FindRoute(P_1, P_2, P_3, P_4); - } - - static IReadOnlyList<RouteSegment> _206F_206B_200F_202A_202E_200F_200B_200B_200B_200E_200D_206A_202A_206D_200D_200E_206F_202E_202A_206C_206B_200C_206E_202E_202C_202A_206E_200E_202E_206F_206D_206C_200D_202B_206E_202E_202E_200C_202A_202E_202E(RouteResult P_0) - { - return P_0.Segments; - } - - static void _200C_202B_200D_200E_206A_200E_200D_206B_206C_202B_206C_202D_202D_206A_206B_206D_200B_206D_202B_202D_206F_206C_200B_202E_200B_200F_200B_202B_206E_202C_206A_200D_200E_202B_206E_200D_206B_202E_206B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _206D_202C_202E_200D_202A_200D_200B_200F_206C_200B_206F_206B_206F_206F_200D_200E_206B_206A_206C_200F_200C_200F_206A_200D_206D_206B_206A_202B_200B_200F_202E_200D_202C_206C_206E_206B_206D_202A_200B_202E_202E(QuestStep P_0) - { - return P_0.DisableNavmesh; - } - - static IReadOnlyList<NavInstruction> _202C_206C_206A_202C_206B_206D_206B_206F_202A_202E_206E_206F_202A_206B_206C_206F_200B_206B_202B_202E_202C_200E_202A_200B_206D_200F_206F_202E_202B_200F_206F_202E_200B_202B_202A_202D_206D_206D_202B_202C_202E(RouteInstructionBuilder P_0, RouteResult P_1, uint P_2, bool P_3) - { - return P_0.Build(P_1, P_2, P_3); - } - - static bool _202D_200C_202E_202D_200B_206A_206E_206E_200C_200B_200F_200F_206F_206C_200C_206C_206D_200B_206B_200E_200D_206D_202A_206E_202E_200F_206C_206F_206F_202C_200B_206F_202E_200C_202C_202B_202B_200D_206F_202D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200E_202A_206A_200C_206E_206C_206B_206B_206D_206E_206B_202C_206D_206A_202B_202B_200C_202B_202E_202C_202D_200B_200D_202C_206B_202B_206F_202B_200F_200F_202B_202D_200C_206E_200F_206C_200F_206A_206F_206D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static NotSupportedException _206C_206C_200B_202D_206A_200B_200C_206D_202D_206E_202A_202B_206A_206B_200D_202E_202D_200C_200C_200C_200D_206E_202E_202A_206A_200C_202B_202C_206E_206E_200B_200C_200D_206F_202C_200C_206E_206B_206F_206C_202E() - { - return new NotSupportedException(); - } - } - public bool HandledRouting { get; private set; } - [IteratorStateMachine(typeof(_003CCreateAllTasks_003Ed__13))] public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CCreateAllTasks_003Ed__13(-2) + HandledRouting = false; + Vector3? vector = ResolveDestination(step); + if (!vector.HasValue) { - _003C_003E4__this = this, - _003C_003E3__step = step - }; - } - - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); + yield break; + } + PlayerNavState playerNavState = playerNavStateBuilder.Build(); + if (playerNavState == null) + { + yield break; + } + RouteResult routeResult = navRouter.FindRoute(playerNavState, step.TerritoryId, vector.Value); + if (routeResult.Segments.Count == 0) + { + yield break; + } + HandledRouting = true; + logger.LogDebug("SmartNav routing to {Territory} with {Count} segments", territoryData.GetNameAndId(step.TerritoryId), routeResult.Segments.Count); + reRouteService.SetDestination(step.TerritoryId, vector.Value); + foreach (ITask item in taskMapper.MapInstructions(instructionBuilder.Build(routeResult, step.TerritoryId, step.DisableNavmesh), step)) + { + yield return item; + } } private Vector3? ResolveDestination(QuestStep step) { - int num = ((!_200C_200E_202E_206A_206E_202E_202E_200D_200D_206D_200C_200C_200B_200C_200E_200F_200C_206A_206F_202B_202A_206A_202E_200D_200D_200B_200E_200C_206B_200B_202B_202B_202A_206B_200F_206D_206A_200B_200F_202B_202E(step).HasValue) ? (-1099591953) : (-1099591967)); - Vector3 value2 = default(Vector3); - EAetheryteLocation? eAetheryteLocation = default(EAetheryteLocation?); - EAetheryteLocation valueOrDefault2 = default(EAetheryteLocation); - bool flag = default(bool); - Vector3 value = default(Vector3); - while (true) + if (step.Position.HasValue) { - int num2 = num; - int num3 = -1099591953; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return step.Position; + } + EAetheryteLocation valueOrDefault = default(EAetheryteLocation); + bool flag; + if (step != null) + { + EInteractionType interactionType = step.InteractionType; + if ((uint)(interactionType - 4) <= 1u) { - case 0: - num = ((step == null) ? (-1099591954) : (-1099591955)); - break; - case 7: - return value2; - case 13: - eAetheryteLocation = _202C_206D_200B_200C_202E_202B_206C_206F_206F_206E_202E_200F_206C_202D_202C_200D_200D_202B_206E_202A_200C_202D_202C_206A_206A_200E_206E_202B_206D_206D_202B_202E_206D_200F_202C_206D_206B_206E_200D_202E_202E(step); - num = ((!eAetheryteLocation.HasValue) ? (-1099591964) : (-1099591963)); - break; - case 15: - num = ((!_200D_200B_206D_206B_200B_200E_206C_202B_200D_200C_200C_202A_206F_206C_206E_206B_202A_206D_202B_206D_206D_202E_206B_200B_200F_202A_200C_206E_200B_202A_206B_200C_200E_200F_202D_200F_206A_206B_202C_200F_202E(aetheryteData).TryGetValue(valueOrDefault2, out value2)) ? (-1099591957) : (-1099591960)); - break; - case 5: - num = ((!flag) ? (-1099591957) : (-1099591968)); - break; - case 2: - { - EInteractionType eInteractionType = _200C_202C_206A_202D_206E_200D_206D_202D_206F_202E_200B_202E_206A_202D_200F_206F_200E_206E_202D_206B_202D_200E_200D_206F_202D_206B_202C_206F_200E_206C_206E_200F_202C_206A_206C_206E_206D_206E_206F_206D_202E(step); - num = (((uint)(eInteractionType - 4) > 1u) ? (-1099591954) : (-1099591962)); - break; - } - case 12: - num = ((_200C_202C_206A_202D_206E_200D_206D_202D_206F_202E_200B_202E_206A_202D_200F_206F_200E_206E_202D_206B_202D_200E_200D_206F_202D_206B_202C_206F_200E_206C_206E_200F_202C_206A_206C_206E_206D_206E_206F_206D_202E(step) != EInteractionType.AttuneAethernetShard) ? (-1099591964) : (-1099591966)); - break; - case 4: - num = ((step == null) ? (-1099591964) : (-1099591965)); - break; - case 3: - num = -1099591967; - break; - case 11: - return null; - case 6: - return value; - case 9: - eAetheryteLocation = _206D_202A_200F_206A_200E_206D_206D_202D_202D_206D_200E_202D_202D_200F_202E_202E_206F_206E_200E_200F_206A_200B_200E_202A_202C_206F_206C_206B_206D_202A_200B_200F_206D_200D_206B_202B_200D_202E_206F_200E_202E(step); - num = ((!eAetheryteLocation.HasValue) ? (-1099591954) : (-1099591961)); - break; - case 1: - flag = false; - num = -1099591958; - break; - case 8: - valueOrDefault2 = eAetheryteLocation.GetValueOrDefault(); - flag = true; - num = -1099591958; - break; - case 10: - { - EAetheryteLocation valueOrDefault = eAetheryteLocation.GetValueOrDefault(); - num = ((!_200D_200B_206D_206B_200B_200E_206C_202B_200D_200C_200C_202A_206F_206C_206E_206B_202A_206D_202B_206D_206D_202E_206B_200B_200F_202A_200C_206E_200B_202A_206B_200C_200E_200F_202D_200F_206A_206B_202C_200F_202E(aetheryteData).TryGetValue(valueOrDefault, out value)) ? (-1099591964) : (-1099591959)); - break; - } - case 14: - return _200C_200E_202E_206A_206E_202E_202E_200D_200D_206D_200C_200C_200B_200C_200E_200F_200C_206A_206F_202B_202A_206A_202E_200D_200D_200B_200E_200C_206B_200B_202B_202B_202A_206B_200F_206D_206A_200B_200F_202B_202E(step); + EAetheryteLocation? aetheryte = step.Aetheryte; + if (aetheryte.HasValue) + { + valueOrDefault = aetheryte.GetValueOrDefault(); + flag = true; + goto IL_004b; + } } } - } - - static Vector3? _200C_200E_202E_206A_206E_202E_202E_200D_200D_206D_200C_200C_200B_200C_200E_200F_200C_206A_206F_202B_202A_206A_202E_200D_200D_200B_200E_200C_206B_200B_202B_202B_202A_206B_200F_206D_206A_200B_200F_202B_202E(QuestStep P_0) - { - return P_0.Position; - } - - static EInteractionType _200C_202C_206A_202D_206E_200D_206D_202D_206F_202E_200B_202E_206A_202D_200F_206F_200E_206E_202D_206B_202D_200E_200D_206F_202D_206B_202C_206F_200E_206C_206E_200F_202C_206A_206C_206E_206D_206E_206F_206D_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static EAetheryteLocation? _206D_202A_200F_206A_200E_206D_206D_202D_202D_206D_200E_202D_202D_200F_202E_202E_206F_206E_200E_200F_206A_200B_200E_202A_202C_206F_206C_206B_206D_202A_200B_200F_206D_200D_206B_202B_200D_202E_206F_200E_202E(QuestStep P_0) - { - return P_0.Aetheryte; - } - - static ReadOnlyDictionary<EAetheryteLocation, Vector3> _200D_200B_206D_206B_200B_200E_206C_202B_200D_200C_200C_202A_206F_206C_206E_206B_202A_206D_202B_206D_206D_202E_206B_200B_200F_202A_200C_206E_200B_202A_206B_200C_200E_200F_202D_200F_206A_206B_202C_200F_202E(AetheryteData P_0) - { - return P_0.Locations; - } - - static EAetheryteLocation? _202C_206D_200B_200C_202E_202B_206C_206F_206F_206E_202E_200F_206C_202D_202C_200D_200D_202B_206E_202A_200C_202D_202C_206A_206A_200E_206E_202B_206D_206D_202B_202E_206D_200F_202C_206D_206B_206E_200D_202E_202E(QuestStep P_0) - { - return P_0.AethernetShard; + flag = false; + goto IL_004b; + IL_004b: + if (flag && aetheryteData.Locations.TryGetValue(valueOrDefault, out var value)) + { + return value; + } + if (step != null && step.InteractionType == EInteractionType.AttuneAethernetShard) + { + EAetheryteLocation? aetheryte = step.AethernetShard; + if (aetheryte.HasValue) + { + EAetheryteLocation valueOrDefault2 = aetheryte.GetValueOrDefault(); + if (aetheryteData.Locations.TryGetValue(valueOrDefault2, out var value2)) + { + return value2; + } + } + } + return null; } } } diff --git a/Questionable/Questionable.Controller.Steps.Shared/StepDisabled.cs b/Questionable/Questionable.Controller.Steps.Shared/StepDisabled.cs index 080eebd..d438efd 100644 --- a/Questionable/Questionable.Controller.Steps.Shared/StepDisabled.cs +++ b/Questionable/Questionable.Controller.Steps.Shared/StepDisabled.cs @@ -1,5 +1,3 @@ -using System; -using System.Runtime.CompilerServices; using Microsoft.Extensions.Logging; using Questionable.Model; using Questionable.Model.Questing; @@ -12,39 +10,19 @@ internal static class StepDisabled { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { - int num = (_200D_202A_202A_206E_200D_206F_206C_202D_206F_200C_200D_202A_206D_200C_202C_202A_202A_200C_206F_206F_200F_202E_202C_202C_206B_202A_200C_206F_206C_200E_206E_202D_202E_206E_206B_202D_202D_200B_206B_206D_202E(step) ? 1566722384 : 1566722387); - while (true) + if (!step.Disabled) { - int num2 = num; - int num3 = 1566722386; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return new SkipRemainingTasks(); - case 1: - return null; - case 0: - goto IL_004e; - } - continue; - IL_004e: - num = 1566722387; + return null; } - } - - static bool _200D_202A_202A_206E_200D_206F_206C_202D_206F_200C_200D_202A_206D_200C_202C_202A_202A_200C_206F_206F_200F_202E_202C_202C_206B_202A_200C_206F_206C_200E_206E_202D_202E_206E_206B_202D_202D_200B_206B_206D_202E(QuestStep P_0) - { - return P_0.Disabled; + return new SkipRemainingTasks(); } } internal sealed class SkipRemainingTasks : ITask { - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2111602818); + return "StepDisabled"; } } @@ -55,10 +33,9 @@ internal static class StepDisabled return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - _206E_202C_206C_206D_200C_200C_200D_200E_202C_202E_200D_206F_202D_200D_206C_202D_202D_200B_206B_206C_200E_200E_200F_200E_206F_206C_206A_200F_202D_202E_202C_200C_206A_206B_206A_202A_206F_206C_206E_206F_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1976171694), Array.Empty<object>()); + logger.LogDebug("Skipping step, as it is disabled"); return ETaskResult.SkipRemainingTasksForStep; } @@ -66,10 +43,5 @@ internal static class StepDisabled { return false; } - - static void _206E_202C_206C_206D_200C_200C_200D_200E_202C_202E_200D_206F_202D_200D_206C_202D_202D_200B_206B_206C_200E_200E_200F_200E_206F_206C_206A_200F_202D_202E_202C_200C_206A_206B_206A_202A_206F_206C_206E_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Shared/SubRegionTransport.cs b/Questionable/Questionable.Controller.Steps.Shared/SubRegionTransport.cs index baf5172..2fd283d 100644 --- a/Questionable/Questionable.Controller.Steps.Shared/SubRegionTransport.cs +++ b/Questionable/Questionable.Controller.Steps.Shared/SubRegionTransport.cs @@ -1,10 +1,6 @@ using System; -using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using Microsoft.Extensions.Logging; @@ -14,117 +10,14 @@ internal static class SubRegionTransport { internal sealed record Task(Vector3 SourcePosition, Vector3 DestPosition, ushort TerritoryId) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200D_200C_202B_200B_206F_200D_206B_206E_206B_202A_200E_200B_202E_202A_206A_206F_202E_200D_202C_206B_200F_206B_202B_202E_200F_206B_200F_206D_200E_206E_202B_200B_200B_206F_200D_200B_202C_206B_206F_206D_202E(typeof(Task).TypeHandle); - } - } - public bool ShouldRedoOnInterrupt() { return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(26, 3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-630206869)); - defaultInterpolatedStringHandler.AppendFormatted(TerritoryId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1095822044)); - defaultInterpolatedStringHandler.AppendFormatted(SourcePosition); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(198379463)); - defaultInterpolatedStringHandler.AppendFormatted(DestPosition); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202C_200F_206B_206E_202C_206B_200E_200B_200E_200F_206D_200B_202A_202E_206C_202E_202D_206F_202B_206B_206B_200D_202C_202D_202E_200F_206B_202D_206D_200F_202B_206E_202A_200D_202D_202C_200C_200E_202D_202E_202E(); - _202D_200E_202E_202E_200B_202E_206E_200B_200B_202B_200B_206D_206D_200B_206A_206A_206E_202C_202A_206A_202D_202A_202A_200D_200F_200B_200F_200F_206A_202B_202D_206E_202E_206A_202D_200F_206E_200C_202E_206C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-603430089)); - _202D_200E_202E_202E_200B_202E_206E_200B_200B_202B_200B_206D_206D_200B_206A_206A_206E_202C_202A_206A_202D_202A_202A_200D_200F_200B_200F_200F_206A_202B_202D_206E_202E_206A_202D_200F_206E_200C_202E_206C_202E(builder, SourcePosition.ToString()); - _202D_200E_202E_202E_200B_202E_206E_200B_200B_202B_200B_206D_206D_200B_206A_206A_206E_202C_202A_206A_202D_202A_202A_200D_200F_200B_200F_200F_206A_202B_202D_206E_202E_206A_202D_200F_206E_200C_202E_206C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1503839347)); - _202D_200E_202E_202E_200B_202E_206E_200B_200B_202B_200B_206D_206D_200B_206A_206A_206E_202C_202A_206A_202D_202A_202A_200D_200F_200B_200F_200F_206A_202B_202D_206E_202E_206A_202D_200F_206E_200C_202E_206C_202E(builder, DestPosition.ToString()); - _202D_200E_202E_202E_200B_202E_206E_200B_200B_202B_200B_206D_206D_200B_206A_206A_206E_202C_202A_206A_202D_202A_202A_200D_200F_200B_200F_200F_206A_202B_202D_206E_202E_206A_202D_200F_206E_200C_202E_206C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1428648191)); - _202D_200E_202E_202E_200B_202E_206E_200B_200B_202B_200B_206D_206D_200B_206A_206A_206E_202C_202A_206A_202D_202A_202A_200D_200F_200B_200F_200F_206A_202B_202D_206E_202E_206A_202D_200F_206E_200C_202E_206C_202E(builder, TerritoryId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? 627105870 : 627105869); - while (true) - { - int num2 = num; - int num3 = 627105866; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - return true; - case 5: - num = ((!EqualityComparer<Vector3>.Default.Equals(SourcePosition, other.SourcePosition)) ? 627105867 : 627105868); - break; - case 7: - num = (((object)other == null) ? 627105867 : 627105866); - break; - case 0: - num = ((!_202C_202C_206E_206B_200D_206A_200B_202D_206D_202E_202E_206D_206F_202C_200E_200E_202D_206F_200C_206D_202C_202D_200C_202E_206C_206A_200E_200C_202A_206F_202D_206F_206B_200F_202B_202A_202E_206D_206B_200E_202E(EqualityContract, other.EqualityContract)) ? 627105867 : 627105871); - break; - case 3: - return EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId); - case 6: - num = ((!EqualityComparer<Vector3>.Default.Equals(DestPosition, other.DestPosition)) ? 627105867 : 627105865); - break; - case 1: - return false; - case 2: - num = 627105869; - break; - } - } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200D_200C_202B_200B_206F_200D_206B_206E_206B_202A_200E_200B_202E_202A_206A_206F_202E_200D_202C_206B_200F_206B_202B_202E_200F_206B_200F_206D_200E_206E_202B_200B_200B_206F_200D_200B_202C_206B_206F_206D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _202C_200F_206B_206E_202C_206B_200E_200B_200E_200F_206D_200B_202A_202E_206C_202E_202D_206F_202B_206B_206B_200D_202C_202D_202E_200F_206B_202D_206D_200F_202B_206E_202A_200D_202D_202C_200C_200E_202D_202E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202D_200E_202E_202E_200B_202E_206E_200B_200B_202B_200B_206D_206D_200B_206A_206A_206E_202C_202A_206A_202D_202A_202A_200D_200F_200B_200F_200F_206A_202B_202D_206E_202E_206A_202D_200F_206E_200C_202E_206C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _202C_202C_206E_206B_200D_206A_200B_202D_206D_202E_202E_206D_206F_202C_200E_200E_202D_206F_200C_206D_202C_202D_200C_202E_206C_206A_200E_200C_202A_206F_202D_206F_206B_200F_202B_202A_202E_206D_206B_200E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"SubRegionTransport({TerritoryId}, {SourcePosition} -> {DestPosition})"; } } @@ -134,77 +27,33 @@ internal static class SubRegionTransport private long _startTime; - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { - IPlayerCharacter playerCharacter = _202E_206B_206E_206F_202D_206C_206B_206C_200D_202C_200D_202A_202B_206B_206E_202B_202D_206F_206F_202A_200E_206F_202D_202C_206F_200F_200F_206B_202A_206E_206C_206B_202B_202E_200D_206C_200D_202B_206F_202A_202E(objectTable); - _startPosition = ((playerCharacter != null) ? _200B_202A_206C_202E_206D_202A_202B_202B_202D_200F_200C_200E_206F_206B_206D_200F_206B_202E_200F_206D_202B_206B_206E_202A_202A_206B_200C_202A_202B_200D_200E_200D_206C_206C_202A_202D_202D_200F_200C_206D_202E((IGameObject)playerCharacter) : Vector3.Zero); - _startTime = _202E_206E_200D_200E_206C_206D_202D_202D_206D_206F_202E_200D_200D_200D_206C_206D_200E_200E_200E_200B_200E_206F_200D_200B_200D_200C_202D_200C_206A_206E_202B_200D_202B_202D_200B_206A_200B_202C_206C_200C_202E(); - _200F_202C_200F_202E_202C_200C_206E_206F_202E_200B_206B_202E_206D_200F_206A_206A_202B_202E_200F_206D_206D_206D_206B_206A_202B_200E_200C_200B_200F_202C_202A_202E_202B_200F_206F_206D_202C_200D_202A_206D_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1244283886), new object[1] { base.Task.SourcePosition }); + _startPosition = objectTable.LocalPlayer?.Position ?? Vector3.Zero; + _startTime = Environment.TickCount64; + logger.LogDebug("SubRegionTransport: Waiting for transport pad activation at {Position}", base.Task.SourcePosition); return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - IPlayerCharacter playerCharacter = _202E_206B_206E_206F_202D_206C_206B_206C_200D_202C_200D_202A_202B_206B_206E_202B_202D_206F_206F_202A_200E_206F_202D_202C_206F_200F_200F_206B_202A_206E_206C_206B_202B_202E_200D_206C_200D_202B_206F_202A_202E(objectTable); - int num = ((playerCharacter == null) ? 733700456 : 733700461); - while (true) + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + if (localPlayer != null && Vector3.Distance(localPlayer.Position, _startPosition) > 5f) { - int num2 = num; - int num3 = 733700460; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = 733700461; - break; - case 1: - num = ((!(Vector3.Distance(_200B_202A_206C_202E_206D_202A_202B_202B_202D_200F_200C_200E_206F_206B_206D_200F_206B_202E_200F_206D_202B_206B_206E_202A_202A_206B_200C_202A_202B_200D_200E_200D_206C_206C_202A_202D_202D_200F_200C_206D_202E((IGameObject)playerCharacter), _startPosition) > 5f)) ? 733700456 : 733700457); - break; - case 4: - num = ((_202E_206E_200D_200E_206C_206D_202D_202D_206D_206F_202E_200D_200D_200D_206C_206D_200E_200E_200E_200B_200E_206F_200D_200B_200D_200C_202D_200C_206A_206E_202B_200D_202B_202D_200B_206A_200B_202C_206C_200C_202E() - _startTime <= 15000) ? 733700462 : 733700460); - break; - case 0: - _202B_206B_200B_206A_206F_202E_202C_202C_200B_202A_206C_206E_200E_206D_206D_200E_200F_200E_200F_206B_200C_200E_202D_202D_202E_200B_206D_206A_202E_200E_200C_200E_202D_200C_206E_202E_206E_200F_206D_202C_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(21515827), Array.Empty<object>()); - return ETaskResult.RetryStep; - case 2: - return ETaskResult.StillRunning; - case 5: - _200F_202C_200F_202E_202C_200C_206E_206F_202E_200B_206B_202E_206D_200F_206A_206A_202B_202E_200F_206D_206D_206D_206B_206A_202B_200E_200C_200B_200F_202C_202A_202E_202B_200F_206F_206D_202C_200D_202A_206D_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(161211834), new object[1] { Vector3.Distance(_200B_202A_206C_202E_206D_202A_202B_202B_202D_200F_200C_200E_206F_206B_206D_200F_206B_202E_200F_206D_202B_206B_206E_202A_202A_206B_200C_202A_202B_200D_200E_200D_206C_206C_202A_202D_202D_200F_200C_206D_202E((IGameObject)playerCharacter), _startPosition) }); - return ETaskResult.TaskComplete; - } + logger.LogDebug("SubRegionTransport: Position changed ({Distance:F1}y), transport complete", Vector3.Distance(localPlayer.Position, _startPosition)); + return ETaskResult.TaskComplete; } + if (Environment.TickCount64 - _startTime > 15000) + { + logger.LogWarning("SubRegionTransport: Timed out waiting for transport activation"); + return ETaskResult.RetryStep; + } + return ETaskResult.StillRunning; } public override bool ShouldInterruptOnDamage() { return false; } - - static IPlayerCharacter _202E_206B_206E_206F_202D_206C_206B_206C_200D_202C_200D_202A_202B_206B_206E_202B_202D_206F_206F_202A_200E_206F_202D_202C_206F_200F_200F_206B_202A_206E_206C_206B_202B_202E_200D_206C_200D_202B_206F_202A_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static Vector3 _200B_202A_206C_202E_206D_202A_202B_202B_202D_200F_200C_200E_206F_206B_206D_200F_206B_202E_200F_206D_202B_206B_206E_202A_202A_206B_200C_202A_202B_200D_200E_200D_206C_206C_202A_202D_202D_200F_200C_206D_202E(IGameObject P_0) - { - return P_0.Position; - } - - static long _202E_206E_200D_200E_206C_206D_202D_202D_206D_206F_202E_200D_200D_200D_206C_206D_200E_200E_200E_200B_200E_206F_200D_200B_200D_200C_202D_200C_206A_206E_202B_200D_202B_202D_200B_206A_200B_202C_206C_200C_202E() - { - return Environment.TickCount64; - } - - static void _200F_202C_200F_202E_202C_200C_206E_206F_202E_200B_206B_202E_206D_200F_206A_206A_202B_202E_200F_206D_206D_206D_206B_206A_202B_200E_200C_200B_200F_202C_202A_202E_202B_200F_206F_206D_202C_200D_202A_206D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _202B_206B_200B_206A_206F_202E_202C_202C_200B_202A_206C_206E_200E_206D_206D_200E_200F_200E_200F_206B_200C_200E_202D_202D_202E_200B_206D_206A_202E_200E_200C_200E_202D_200C_206E_202E_206E_200F_206D_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } } } diff --git a/Questionable/Questionable.Controller.Steps.Shared/SwitchClassJob.cs b/Questionable/Questionable.Controller.Steps.Shared/SwitchClassJob.cs index 7cab848..a4210b2 100644 --- a/Questionable/Questionable.Controller.Steps.Shared/SwitchClassJob.cs +++ b/Questionable/Questionable.Controller.Steps.Shared/SwitchClassJob.cs @@ -1,15 +1,7 @@ -using System; -using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; -using System.Text; -using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.UI.Misc; using LLib.GameData; -using Lumina.Excel; -using Lumina.Excel.Sheets; using Questionable.Controller.Steps.Common; using Questionable.Data; using Questionable.Model; @@ -21,193 +13,46 @@ internal static class SwitchClassJob { internal sealed class Factory(ClassJobUtils classJobUtils) : SimpleTaskFactory() { - public override ITask? CreateTask(Questionable.Model.Quest quest, QuestSequence sequence, QuestStep step) + public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_206A_206B_200C_202D_202B_206A_200B_200D_206A_206D_200E_202B_206D_206E_202C_202B_206D_200F_206D_206E_202C_206A_206B_202D_206A_206A_202A_206D_206E_200C_200C_202C_206F_202A_206C_200E_202C_202E_200C_202E(step) == EInteractionType.SwitchClass) ? 1159912211 : 1159912210); - while (true) + if (step.InteractionType != EInteractionType.SwitchClass) { - int num2 = num; - int num3 = 1159912211; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return new Task(classJobUtils.AsIndividualJobs(_202B_206A_202A_206D_206D_200D_206D_202E_200B_206D_202B_200E_206E_206C_206A_202D_206B_206F_202C_200E_206A_206B_200C_206E_206A_206A_206C_202B_202A_206B_200C_206A_200F_200C_206B_206C_202E_206C_200B_206D_202E(step), quest.Id).Single()); - case 1: - return null; - case 2: - goto IL_006e; - } - continue; - IL_006e: - num = 1159912210; + return null; } - } - - static EInteractionType _206A_206B_200C_202D_202B_206A_200B_200D_206A_206D_200E_202B_206D_206E_202C_202B_206D_200F_206D_206E_202C_206A_206B_202D_206A_206A_202A_206D_206E_200C_200C_202C_206F_202A_206C_200E_202C_202E_200C_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static EExtendedClassJob _202B_206A_202A_206D_206D_200D_206D_202E_200B_206D_202B_200E_206E_206C_206A_202D_206B_206F_202C_200E_206A_206B_200C_206E_206A_206A_206C_202B_202A_206B_200C_206A_200F_200C_206B_206C_202E_206C_200B_206D_202E(QuestStep P_0) - { - return P_0.TargetClass; + return new Task(classJobUtils.AsIndividualJobs(step.TargetClass, quest.Id).Single()); } } internal sealed record Task(EClassJob ClassJob) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206E_206D_206D_200E_202C_206F_202E_202E_200B_206F_206B_200D_206B_206A_206A_200F_200B_200E_206C_200F_200F_206F_202D_200E_206F_202E_200E_200F_206F_200C_206E_200C_202D_200D_200D_200E_200F_202C_206A_200D_202E(typeof(Task).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(11, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(292179226)); - defaultInterpolatedStringHandler.AppendFormatted(ClassJob); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202C_200E_200C_206D_200F_206D_202D_200B_206B_206D_200E_206E_202E_206E_202E_200E_200F_200C_206C_206A_202C_202E_200E_200D_206A_206D_206B_200D_202B_202C_206D_200E_200F_206D_206F_202C_200C_200C_202A_200F_202E(); - _206E_206D_206E_206B_200C_200C_206C_206A_200C_202E_200F_206E_206E_202E_202B_200C_202C_202A_200C_206A_200C_200B_200D_200F_206A_206C_202C_200F_202E_200E_200C_202A_200D_202B_202B_200E_200F_202E_206E_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-27440332)); - _206E_206D_206E_206B_200C_200C_206C_206A_200C_202E_200F_206E_206E_202E_202B_200C_202C_202A_200C_206A_200C_200B_200D_200F_206A_206C_202C_200F_202E_200E_200C_202A_200D_202B_202B_200E_200F_202E_206E_202E(builder, ClassJob.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? (-777293331) : (-777293333)); - while (true) - { - int num2 = num; - int num3 = -777293335; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -777293333; - break; - case 2: - num = (((object)other == null) ? (-777293334) : (-777293332)); - break; - case 5: - num = ((!_200E_206D_200C_200F_202D_200B_206B_200E_206A_206C_202B_200D_206D_206C_202D_206F_202A_206E_206A_202A_206B_200D_206B_200D_200F_202B_202A_202D_200C_206A_206F_200F_206F_206C_202C_200B_200F_202D_202D_206D_202E(EqualityContract, other.EqualityContract)) ? (-777293334) : (-777293336)); - break; - case 1: - return EqualityComparer<EClassJob>.Default.Equals(ClassJob, other.ClassJob); - case 4: - return true; - case 3: - return false; - } - } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206E_206D_206D_200E_202C_206F_202E_202E_200B_206F_206B_200D_206B_206A_206A_200F_200B_200E_206C_200F_200F_206F_202D_200E_206F_202E_200E_200F_206F_200C_206E_200C_202D_200D_200D_200E_200F_202C_206A_200D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _202C_200E_200C_206D_200F_206D_202D_200B_206B_206D_200E_206E_202E_206E_202E_200E_200F_200C_206C_206A_202C_202E_200E_200D_206A_206D_206B_200D_202B_202C_206D_200E_200F_206D_206F_202C_200C_200C_202A_200F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206E_206D_206E_206B_200C_200C_206C_206A_200C_202E_200F_206E_206E_202E_202B_200C_202C_202A_200C_206A_200C_200B_200D_200F_206A_206C_202C_200F_202E_200E_200C_202A_200D_202B_202B_200E_200F_202E_206E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _200E_206D_200C_200F_202D_200B_206B_200E_206A_206C_202B_200D_206D_206C_202D_206F_202A_206E_206A_202A_206B_200D_206B_200D_200F_202B_202A_202D_200C_206A_206F_200F_206F_206C_202C_200B_200F_202D_202D_206D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"SwitchJob({ClassJob})"; } } internal sealed class SwitchClassJobExecutor(IObjectTable objectTable) : AbstractDelayedTaskExecutor<Task>() { - [MethodImpl(MethodImplOptions.NoInlining)] protected unsafe override bool StartInternal() { - IPlayerCharacter playerCharacter = _202A_206B_200E_206F_202C_202D_206D_200B_202E_202B_200E_200C_206A_202B_200F_200C_206B_200C_206B_202D_200E_202B_206F_202C_202C_206D_202E_202C_202B_206B_206B_202A_206C_200D_206D_200E_202A_202A_202A_206A_202E(objectTable); - int num = ((((playerCharacter != null) ? new uint?(_202B_200B_206B_200C_202D_206C_200E_202A_200E_206A_200B_206B_200B_206A_200B_200F_202B_206E_202C_206B_202B_206E_200D_206E_206A_202C_202C_200E_200D_206A_206B_200B_200D_206F_202D_202C_206B_206A_202E_200E_202E((ICharacter)playerCharacter).RowId) : ((uint?)null)) != (uint?)base.Task.ClassJob) ? (-402111789) : (-402111788)); - RaptureGearsetModule* ptr = default(RaptureGearsetModule*); - RaptureGearsetModule.GearsetEntry* gearset = default(RaptureGearsetModule.GearsetEntry*); - int num6 = default(int); - while (true) + if (objectTable.LocalPlayer?.ClassJob.RowId == (uint?)base.Task.ClassJob) { - int num2 = num; - int num3 = -402111787; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return false; + } + RaptureGearsetModule* ptr = RaptureGearsetModule.Instance(); + if (ptr != null) + { + for (int i = 0; i < 100; i++) { - case 4: - num = -402111788; - break; - case 1: - return false; - case 3: - ptr->EquipGearset(gearset->Id, 0); - return true; - case 7: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(21, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1883607487)); - defaultInterpolatedStringHandler.AppendFormatted(base.Task.ClassJob); - throw new TaskException(defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 5: - num6 = 0; - num = -402111779; - break; - case 8: - num = ((num6 < 100) ? (-402111787) : (-402111790)); - break; - case 0: - gearset = ptr->GetGearset(num6); - num = ((gearset->ClassJob != (byte)base.Task.ClassJob) ? (-402111785) : (-402111786)); - break; - case 6: - ptr = RaptureGearsetModule.Instance(); - num = ((ptr == null) ? (-402111790) : (-402111792)); - break; - case 2: - { - int num5 = num6; - num3 = 1; - num4 = num5; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - num6 = num7 + (num8 + num8); - num = -402111779; - break; - } + RaptureGearsetModule.GearsetEntry* gearset = ptr->GetGearset(i); + if (gearset->ClassJob == (byte)base.Task.ClassJob) + { + ptr->EquipGearset(gearset->Id, 0); + return true; + } } } + throw new TaskException($"No gearset found for {base.Task.ClassJob}"); } protected override ETaskResult UpdateInternal() @@ -219,15 +64,5 @@ internal static class SwitchClassJob { return false; } - - static IPlayerCharacter _202A_206B_200E_206F_202C_202D_206D_200B_202E_202B_200E_200C_206A_202B_200F_200C_206B_200C_206B_202D_200E_202B_206F_202C_202C_206D_202E_202C_202B_206B_206B_202A_206C_200D_206D_200E_202A_202A_202A_206A_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static RowRef<ClassJob> _202B_200B_206B_200C_202D_206C_200E_202A_200E_206A_200B_206B_200B_206A_200B_200F_202B_206E_202C_206B_202B_206E_200D_206E_206A_202C_202C_200E_200D_206A_206B_200B_200D_206F_202D_202C_206B_206A_202E_200E_202E(ICharacter P_0) - { - return P_0.ClassJob; - } } } diff --git a/Questionable/Questionable.Controller.Steps.Shared/TaxiInteract.cs b/Questionable/Questionable.Controller.Steps.Shared/TaxiInteract.cs index d3f010d..b09fa31 100644 --- a/Questionable/Questionable.Controller.Steps.Shared/TaxiInteract.cs +++ b/Questionable/Questionable.Controller.Steps.Shared/TaxiInteract.cs @@ -1,10 +1,6 @@ using System; -using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Conditions; -using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using Microsoft.Extensions.Logging; @@ -17,134 +13,14 @@ internal static class TaxiInteract { internal sealed record Task(uint NpcDataId, uint DestStandRowId, string DestPlaceName, ushort SourceTerritoryId, ushort DestTerritoryId) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202C_200E_200C_206D_202D_200B_200C_200C_206E_202B_206A_202E_202D_206F_206D_202E_202A_200B_206A_202A_206A_202D_202A_200C_206D_206E_206B_200C_200C_202D_200C_200D_206D_202B_202A_202A_200D_202C_206D_206A_202E(typeof(Task).TypeHandle); - } - } - public bool ShouldRedoOnInterrupt() { return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(25, 4); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1757266526)); - defaultInterpolatedStringHandler.AppendFormatted(NpcDataId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-144328307)); - defaultInterpolatedStringHandler.AppendFormatted(DestPlaceName); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1403263077)); - defaultInterpolatedStringHandler.AppendFormatted(SourceTerritoryId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1599740866)); - defaultInterpolatedStringHandler.AppendFormatted(DestTerritoryId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200D_202B_200E_206D_200D_206F_206A_206F_202C_202A_206A_200F_202A_200C_200E_202B_200C_200B_206C_200C_202D_206D_202B_206C_202C_206F_200F_206F_200E_202E_202C_206A_206B_200D_206A_206B_200D_202B_202D_206A_202E(); - _202B_202A_200D_202B_200C_206B_206E_202C_202E_200E_202A_200D_206D_202D_200F_206F_200D_206C_206B_202E_202E_202E_202A_200F_206E_200F_202B_200C_206F_206D_200D_200F_202E_206B_200F_206E_206E_200B_206B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1462199948)); - _202B_202A_200D_202B_200C_206B_206E_202C_202E_200E_202A_200D_206D_202D_200F_206F_200D_206C_206B_202E_202E_202E_202A_200F_206E_200F_202B_200C_206F_206D_200D_200F_202E_206B_200F_206E_206E_200B_206B_202E(builder, NpcDataId.ToString()); - _202B_202A_200D_202B_200C_206B_206E_202C_202E_200E_202A_200D_206D_202D_200F_206F_200D_206C_206B_202E_202E_202E_202A_200F_206E_200F_202B_200C_206F_206D_200D_200F_202E_206B_200F_206E_206E_200B_206B_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(756158436)); - _202B_202A_200D_202B_200C_206B_206E_202C_202E_200E_202A_200D_206D_202D_200F_206F_200D_206C_206B_202E_202E_202E_202A_200F_206E_200F_202B_200C_206F_206D_200D_200F_202E_206B_200F_206E_206E_200B_206B_202E(builder, DestStandRowId.ToString()); - _202B_202A_200D_202B_200C_206B_206E_202C_202E_200E_202A_200D_206D_202D_200F_206F_200D_206C_206B_202E_202E_202E_202A_200F_206E_200F_202B_200C_206F_206D_200D_200F_202E_206B_200F_206E_206E_200B_206B_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(247569825)); - _206B_200C_206B_200E_202E_200C_202C_200D_206B_206A_200B_202E_200D_206C_202A_200F_200E_206E_206E_200E_200C_206F_206B_200E_200E_200D_206F_206D_206A_200F_206C_202E_206C_206F_202D_206A_200D_206F_202A_206A_202E(builder, (object)DestPlaceName); - _202B_202A_200D_202B_200C_206B_206E_202C_202E_200E_202A_200D_206D_202D_200F_206F_200D_206C_206B_202E_202E_202E_202A_200F_206E_200F_202B_200C_206F_206D_200D_200F_202E_206B_200F_206E_206E_200B_206B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1994630997)); - _202B_202A_200D_202B_200C_206B_206E_202C_202E_200E_202A_200D_206D_202D_200F_206F_200D_206C_206B_202E_202E_202E_202A_200F_206E_200F_202B_200C_206F_206D_200D_200F_202E_206B_200F_206E_206E_200B_206B_202E(builder, SourceTerritoryId.ToString()); - _202B_202A_200D_202B_200C_206B_206E_202C_202E_200E_202A_200D_206D_202D_200F_206F_200D_206C_206B_202E_202E_202E_202A_200F_206E_200F_202B_200C_206F_206D_200D_200F_202E_206B_200F_206E_206E_200B_206B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1846217432)); - _202B_202A_200D_202B_200C_206B_206E_202C_202E_200E_202A_200D_206D_202D_200F_206F_200D_206C_206B_202E_202E_202E_202A_200F_206E_200F_202B_200C_206F_206D_200D_200F_202E_206B_200F_206E_206E_200B_206B_202E(builder, DestTerritoryId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? (-611933830) : (-611933829)); - while (true) - { - int num2 = num; - int num3 = -611933826; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -611933829; - break; - case 5: - num = (((object)other == null) ? (-611933833) : (-611933825)); - break; - case 9: - return false; - case 4: - return true; - case 1: - num = ((!_206E_206E_200E_200B_202B_202D_200D_200E_200F_202B_206F_202E_206D_202D_200E_202D_206C_200B_206F_202D_206A_202D_206D_202D_202B_200E_202C_202A_202C_202A_206A_200C_200E_202C_200C_202C_200D_202D_200B_202A_202E(EqualityContract, other.EqualityContract)) ? (-611933833) : (-611933828)); - break; - case 6: - num = ((!EqualityComparer<uint>.Default.Equals(DestStandRowId, other.DestStandRowId)) ? (-611933833) : (-611933831)); - break; - case 7: - num = ((!EqualityComparer<string>.Default.Equals(DestPlaceName, other.DestPlaceName)) ? (-611933833) : (-611933827)); - break; - case 8: - return EqualityComparer<ushort>.Default.Equals(DestTerritoryId, other.DestTerritoryId); - case 2: - num = ((!EqualityComparer<uint>.Default.Equals(NpcDataId, other.NpcDataId)) ? (-611933833) : (-611933832)); - break; - case 3: - num = ((!EqualityComparer<ushort>.Default.Equals(SourceTerritoryId, other.SourceTerritoryId)) ? (-611933833) : (-611933834)); - break; - } - } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202C_200E_200C_206D_202D_200B_200C_200C_206E_202B_206A_202E_202D_206F_206D_202E_202A_200B_206A_202A_206A_202D_202A_200C_206D_206E_206B_200C_200C_202D_200C_200D_206D_202B_202A_202A_200D_202C_206D_206A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _200D_202B_200E_206D_200D_206F_206A_206F_202C_202A_206A_200F_202A_200C_200E_202B_200C_200B_206C_200C_202D_206D_202B_206C_202C_206F_200F_206F_200E_202E_202C_206A_206B_200D_206A_206B_200D_202B_202D_206A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202B_202A_200D_202B_200C_206B_206E_202C_202E_200E_202A_200D_206D_202D_200F_206F_200D_206C_206B_202E_202E_202E_202A_200F_206E_200F_202B_200C_206F_206D_200D_200F_202E_206B_200F_206E_206E_200B_206B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206B_200C_206B_200E_202E_200C_202C_200D_206B_206A_200B_202E_200D_206C_202A_200F_200E_206E_206E_200E_200C_206F_206B_200E_200E_200D_206F_206D_206A_200F_206C_202E_206C_206F_202D_206A_200D_206F_202A_206A_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206E_206E_200E_200B_202B_202D_200D_200E_200F_202B_206F_202E_206D_202D_200E_202D_206C_200B_206F_202D_206A_202D_206D_202D_202B_200E_202C_202A_202C_202A_206A_200C_200E_202C_200C_202C_200D_202D_200B_202A_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"TaxiInteract({NpcDataId}, dest={DestPlaceName}, {SourceTerritoryId}->{DestTerritoryId})"; } } @@ -166,294 +42,127 @@ internal static class TaxiInteract private bool _wasRiding; - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { _phase = ETaxiPhase.None; _wasRiding = false; - IPlayerCharacter playerCharacter = _206B_206D_202B_202B_202D_200C_206C_200E_206E_206B_202B_206E_206C_200E_200E_206D_200D_206D_206B_202E_202A_202E_206B_200B_202C_200F_202D_206A_202A_202C_206D_206A_200C_200F_200D_202C_206E_202C_206C_206F_202E(objectTable); - _startPosition = ((playerCharacter != null) ? _200B_206F_202B_200F_202B_206F_200E_206F_206A_200F_206C_206C_200E_202C_202A_206C_200B_206F_200F_202C_200E_200B_200F_200D_200E_202A_206E_200C_202C_202D_206D_206F_200D_200D_200E_206E_206E_206D_202E_206D_202E((IGameObject)playerCharacter) : Vector3.Zero); + _startPosition = objectTable.LocalPlayer?.Position ?? Vector3.Zero; interactionUiController.SmartNavTaxiDestPlaceName = base.Task.DestPlaceName; IGameObject gameObject = gameFunctions.FindObjectByDataId(base.Task.NpcDataId); - int num = ((gameObject != null) ? 593300063 : 593300057); - while (true) + if (gameObject == null) { - int num2 = num; - int num3 = 593300058; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - _206F_202A_202C_200F_200F_206A_206F_200B_202C_202D_202A_202A_206B_206D_206F_206B_202C_200E_206D_202A_202D_206B_206E_200E_202E_202D_202D_206F_206D_202A_200B_202D_200F_202D_206C_206B_206A_206A_200D_202D_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1199220683), new object[2] - { - base.Task.NpcDataId, - base.Task.DestPlaceName - }); - _phase = ETaxiPhase.Interacting; - _interactingStartedAt = _206D_206E_200D_202B_206C_202E_206B_200B_200F_200B_206B_200F_206E_202D_206A_206D_200E_206D_200E_202A_202D_206A_206B_206D_202A_202B_206D_200B_206E_202C_206C_202A_206E_202B_200F_202E_200E_200E_200C_202E_202E(); - num = 593300059; - break; - case 5: - num = ((!_202A_202A_202D_202C_202D_206B_206F_202E_202A_202A_200D_202D_202A_206E_200C_200F_206C_200C_206C_206D_200D_206B_206C_206C_200D_206A_202D_200C_202A_206F_206D_206C_202A_202D_202C_200B_206F_200D_206C_202A_202E(condition, ConditionFlag.Mounted)) ? 593300060 : 593300056); - break; - case 2: - _206F_202A_202C_200F_200F_206A_206F_200B_202C_202D_202A_202A_206B_206D_206F_206B_202C_200E_206D_202A_202D_206B_206E_200E_202E_202D_202D_206F_206D_202A_200B_202D_200F_202D_206C_206B_206A_206A_200D_202D_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1789778383), Array.Empty<object>()); - gameFunctions.Unmount(); - _phase = ETaxiPhase.Unmounting; - return true; - case 3: - _206F_202A_202C_200F_200F_206A_206F_200B_202C_202D_202A_202A_206B_206D_206F_206B_202C_200E_206D_202A_202D_206B_206E_200E_202E_202D_202D_206F_206D_202A_200B_202D_200F_202D_206C_206B_206A_206A_200D_202D_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1881696787), new object[1] { base.Task.NpcDataId }); - return true; - case 6: - num = ((!gameFunctions.InteractWith(gameObject)) ? 593300059 : 593300062); - break; - case 1: - return true; - case 0: - num = 593300057; - break; - } + logger.LogDebug("TaxiInteract: NPC with DataId {DataId} not found yet, waiting", base.Task.NpcDataId); + return true; } + if (condition[ConditionFlag.Mounted]) + { + logger.LogDebug("TaxiInteract: Unmounting before taxi interaction"); + gameFunctions.Unmount(); + _phase = ETaxiPhase.Unmounting; + return true; + } + if (gameFunctions.InteractWith(gameObject)) + { + logger.LogDebug("TaxiInteract: Interacting with NPC {DataId} for taxi to {Dest}", base.Task.NpcDataId, base.Task.DestPlaceName); + _phase = ETaxiPhase.Interacting; + _interactingStartedAt = Environment.TickCount64; + } + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { switch (_phase) { case ETaxiPhase.Unmounting: - goto IL_0227; - case ETaxiPhase.Riding: - goto IL_0252; - case ETaxiPhase.None: - goto IL_0365; - case ETaxiPhase.Interacting: - goto IL_0478; - } - int num = -893031987; - goto IL_0029; - IL_0227: - num = ((!_202A_202A_202D_202C_202D_206B_206F_202E_202A_202A_200D_202D_202A_206E_200C_200F_206C_200C_206C_206D_200D_206B_206C_206C_200D_206A_202D_200C_202A_206F_206D_206C_202A_202D_202C_200B_206F_200D_206C_202A_202E(condition, ConditionFlag.Mounted)) ? (-893031938) : (-893031981)); - goto IL_0029; - IL_0478: - num = ((!_202A_202A_202D_202C_202D_206B_206F_202E_202A_202A_200D_202D_202A_206E_200C_200F_206C_200C_206C_206D_200D_206B_206C_206C_200D_206A_202D_200C_202A_206F_206D_206C_202A_202D_202C_200B_206F_200D_206C_202A_202E(condition, ConditionFlag.Mounted)) ? (-893031991) : (-893031973)); - goto IL_0029; - IL_0365: - IGameObject gameObject = gameFunctions.FindObjectByDataId(base.Task.NpcDataId); - num = ((gameObject != null) ? (-893031980) : (-893031976)); - goto IL_0029; - IL_0252: - num = ((_202B_206B_206B_206B_202E_202D_200C_206E_200E_200F_206E_206C_200C_202A_206D_206C_200B_202C_200C_206B_202E_202E_202E_202A_200C_206B_200C_202C_206B_200B_206B_206E_206B_202D_202E_200E_206D_202C_206B_202A_202E(clientState) == base.Task.SourceTerritoryId) ? (-893031994) : (-893031969)); - goto IL_0029; - IL_0029: - IGameObject gameObject2 = default(IGameObject); - while (true) { - int num2 = num; - int num3 = -893031969; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (condition[ConditionFlag.Mounted]) { - case 26: - num = -893031984; - break; - case 20: - num = -893031997; - break; - case 17: - _206F_202A_202C_200F_200F_206A_206F_200B_202C_202D_202A_202A_206B_206D_206F_206B_202C_200E_206D_202A_202D_206B_206E_200E_202E_202D_202D_206F_206D_202A_200B_202D_200F_202D_206C_206B_206A_206A_200D_202D_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-336207586), Array.Empty<object>()); - ClearContext(); - return ETaskResult.TaskComplete; - case 35: - goto IL_013f; - case 13: return ETaskResult.StillRunning; - case 32: - if (!_202A_202A_202D_202C_202D_206B_206F_202E_202A_202A_200D_202D_202A_206E_200C_200F_206C_200C_206C_206D_200D_206B_206C_206C_200D_206A_202D_200C_202A_206F_206D_206C_202A_202D_202C_200B_206F_200D_206C_202A_202E(condition, ConditionFlag.OccupiedInEvent)) - { - goto case 26; - } - goto case 20; - case 11: - goto IL_0189; - case 9: - _200B_202D_206E_202C_200C_206A_206C_206A_202B_202A_206E_202E_206D_202D_200E_200D_202D_202E_200F_206B_200C_202B_202D_200B_200D_200D_206E_206A_206A_200C_206A_206F_200D_202D_202C_202A_206F_200E_200E_202C_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(347542039), Array.Empty<object>()); - ClearContext(); - return ETaskResult.RetryStep; - case 24: - return ETaskResult.StillRunning; - case 25: - goto IL_01fe; - case 21: - goto end_IL_0029; - case 7: - return ETaskResult.StillRunning; - case 16: - goto IL_0252; - case 34: - return ETaskResult.StillRunning; - case 29: - return ETaskResult.StillRunning; - case 23: - if (_202A_202A_202D_202C_202D_206B_206F_202E_202A_202A_200D_202D_202A_206E_200C_200F_206C_200C_206C_206D_200D_206B_206C_206C_200D_206A_202D_200C_202A_206F_206D_206C_202A_202D_202C_200B_206F_200D_206C_202A_202E(condition, ConditionFlag.OccupiedInEvent)) - { - goto case 1; - } - goto case 22; - case 28: - return ETaskResult.StillRunning; - case 1: - num = -893031975; - break; - case 22: - num = -893031977; - break; - case 5: - gameFunctions.Unmount(); - _phase = ETaxiPhase.Unmounting; - return ETaskResult.StillRunning; - case 12: - return ETaskResult.StillRunning; - case 8: - goto IL_02de; - case 2: - _206F_202A_202C_200F_200F_206A_206F_200B_202C_202D_202A_202A_206B_206D_206F_206B_202C_200E_206D_202A_202D_206B_206E_200E_202E_202D_202D_206F_206D_202A_200B_202D_200F_202D_206C_206B_206A_206A_200D_202D_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1391970464), new object[1] { base.Task.NpcDataId }); - _phase = ETaxiPhase.Interacting; - _interactingStartedAt = _206D_206E_200D_202B_206C_202E_206B_200B_200F_200B_206B_200F_206E_202D_206A_206D_200E_206D_200E_202A_202D_206A_206B_206D_202A_202B_206D_200B_206E_202C_206C_202A_206E_202B_200F_202E_200E_200E_200C_202E_202E(); - num = -893031993; - break; - case 18: - num = -893031939; - break; - case 10: - goto IL_0365; - case 19: - goto IL_03a4; - case 3: - goto IL_03cd; - case 27: - _206F_202A_202C_200F_200F_206A_206F_200B_202C_202D_202A_202A_206B_206D_206F_206B_202C_200E_206D_202A_202D_206B_206E_200E_202E_202D_202D_206F_206D_202A_200B_202D_200F_202D_206C_206B_206A_206A_200D_202D_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-210335967), new object[1] { base.Task.NpcDataId }); - _phase = ETaxiPhase.Interacting; - _interactingStartedAt = _206D_206E_200D_202B_206C_202E_206B_200B_200F_200B_206B_200F_206E_202D_206A_206D_200E_206D_200E_202A_202D_206A_206B_206D_202A_202B_206D_200B_206E_202C_206C_202A_206E_202B_200F_202E_200E_200E_200C_202E_202E(); - num = -893031998; - break; - case 6: - _206F_202A_202C_200F_200F_206A_206F_200B_202C_202D_202A_202A_206B_206D_206F_206B_202C_200E_206D_202A_202D_206B_206E_200E_202E_202D_202D_206F_206D_202A_200B_202D_200F_202D_206C_206B_206A_206A_200D_202D_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1554309501), Array.Empty<object>()); - _wasRiding = true; - _phase = ETaxiPhase.Riding; - return ETaskResult.StillRunning; - case 14: - num = -893031987; - break; - case 30: - goto IL_0478; - case 33: - goto IL_04a1; - case 0: - _206F_202A_202C_200F_200F_206A_206F_200B_202C_202D_202A_202A_206B_206D_206F_206B_202C_200E_206D_202A_202D_206B_206E_200E_202E_202D_202D_206F_206D_202A_200B_202D_200F_202D_206C_206B_206A_206A_200D_202D_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-459829090), new object[1] { _202B_206B_206B_206B_202E_202D_200C_206E_200E_200F_206E_206C_200C_202A_206D_206C_200B_202C_200C_206B_202E_202E_202E_202A_200C_206B_200C_202C_206B_200B_206B_206E_206B_202D_202E_200E_206D_202C_206B_202A_202E(clientState) }); - ClearContext(); - return ETaskResult.TaskComplete; - case 15: - goto IL_0516; - case 4: - goto IL_0539; - case 31: - _206F_202A_202C_200F_200F_206A_206F_200B_202C_202D_202A_202A_206B_206D_206F_206B_202C_200E_206D_202A_202D_206B_206E_200E_202E_202D_202D_206F_206D_202A_200B_202D_200F_202D_206C_206B_206A_206A_200D_202D_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(117734441), Array.Empty<object>()); + } + IGameObject gameObject2 = gameFunctions.FindObjectByDataId(base.Task.NpcDataId); + if (gameObject2 == null) + { + logger.LogDebug("TaxiInteract: NPC not found after unmount, waiting"); _phase = ETaxiPhase.None; return ETaskResult.StillRunning; } - continue; - IL_0539: - num = (_202A_202A_202D_202C_202D_206B_206F_202E_202A_202A_200D_202D_202A_206E_200C_200F_206C_200C_206C_206D_200D_206B_206C_206C_200D_206A_202D_200C_202A_206F_206D_206C_202A_202D_202C_200B_206F_200D_206C_202A_202E(condition, ConditionFlag.Occupied) ? (-893031970) : (-893031992)); - continue; - IL_03cd: - num = ((!gameFunctions.InteractWith(gameObject)) ? (-893031998) : (-893031996)); - continue; - IL_02de: - num = ((_206D_206E_200D_202B_206C_202E_206B_200B_200F_200B_206B_200F_206E_202D_206A_206D_200E_206D_200E_202A_202D_206A_206B_206D_202A_202B_206D_200B_206E_202C_206C_202A_206E_202B_200F_202E_200E_200E_200C_202E_202E() - _interactingStartedAt <= 30000) ? (-893031982) : (-893031978)); - continue; - IL_0516: - num = ((!_wasRiding) ? (-893031997) : (-893031986)); - continue; - IL_0189: - IPlayerCharacter playerCharacter = _206B_206D_202B_202B_202D_200C_206C_200E_206E_206B_202B_206E_206C_200E_200E_206D_200D_206D_206B_202E_202A_202E_206B_200B_202C_200F_202D_206A_202A_202C_206D_206A_200C_200F_200D_202C_206E_202C_206C_206F_202E(objectTable); - _startPosition = ((playerCharacter != null) ? _200B_206F_202B_200F_202B_206F_200E_206F_206A_200F_206C_206C_200E_202C_202A_206C_200B_206F_200F_202C_200E_200B_200F_200D_200E_202A_206E_200C_202C_202D_206D_206F_200D_200D_200E_206E_206E_206D_202E_206D_202E((IGameObject)playerCharacter) : _startPosition); - num = ((!_202A_202A_202D_202C_202D_206B_206F_202E_202A_202A_200D_202D_202A_206E_200C_200F_206C_200C_206C_206D_200D_206B_206C_206C_200D_206A_202D_200C_202A_206F_206D_206C_202A_202D_202C_200B_206F_200D_206C_202A_202E(condition, ConditionFlag.Mounted)) ? (-893031972) : (-893031974)); - continue; - IL_03a4: - num = ((!gameFunctions.InteractWith(gameObject2)) ? (-893031993) : (-893031971)); - continue; - IL_04a1: - gameObject2 = gameFunctions.FindObjectByDataId(base.Task.NpcDataId); - num = ((gameObject2 != null) ? (-893031988) : (-893032000)); - continue; - IL_013f: - num = (_202A_202A_202D_202C_202D_206B_206F_202E_202A_202A_200D_202D_202A_206E_200C_200F_206C_200C_206C_206D_200D_206B_206C_206C_200D_206A_202D_200C_202A_206F_206D_206C_202A_202D_202C_200B_206F_200D_206C_202A_202E(condition, ConditionFlag.Occupied) ? (-893031989) : (-893031937)); - continue; - IL_01fe: - num = ((!_202A_202A_202D_202C_202D_206B_206F_202E_202A_202A_200D_202D_202A_206E_200C_200F_206C_200C_206C_206D_200D_206B_206C_206C_200D_206A_202D_200C_202A_206F_206D_206C_202A_202D_202C_200B_206F_200D_206C_202A_202E(condition, ConditionFlag.Mounted)) ? (-893031995) : (-893031940)); - continue; - end_IL_0029: - break; + if (gameFunctions.InteractWith(gameObject2)) + { + logger.LogDebug("TaxiInteract: Interacting with NPC {DataId} after unmount", base.Task.NpcDataId); + _phase = ETaxiPhase.Interacting; + _interactingStartedAt = Environment.TickCount64; + } + return ETaskResult.StillRunning; + } + case ETaxiPhase.Interacting: + if (condition[ConditionFlag.Mounted] && (condition[ConditionFlag.Occupied] || condition[ConditionFlag.OccupiedInEvent])) + { + logger.LogDebug("TaxiInteract: Taxi ride started"); + _wasRiding = true; + _phase = ETaxiPhase.Riding; + return ETaskResult.StillRunning; + } + if (Environment.TickCount64 - _interactingStartedAt > 30000) + { + logger.LogWarning("TaxiInteract: Timed out waiting for taxi ride to start, retrying step"); + ClearContext(); + return ETaskResult.RetryStep; + } + return ETaskResult.StillRunning; + case ETaxiPhase.Riding: + if (clientState.TerritoryType != base.Task.SourceTerritoryId) + { + logger.LogDebug("TaxiInteract: Territory changed to {Territory}, taxi ride complete", clientState.TerritoryType); + ClearContext(); + return ETaskResult.TaskComplete; + } + if ((!condition[ConditionFlag.Mounted] || (!condition[ConditionFlag.Occupied] && !condition[ConditionFlag.OccupiedInEvent])) && _wasRiding) + { + logger.LogDebug("TaxiInteract: Taxi ride ended (dismounted)"); + ClearContext(); + return ETaskResult.TaskComplete; + } + return ETaskResult.StillRunning; + case ETaxiPhase.None: + { + IGameObject gameObject = gameFunctions.FindObjectByDataId(base.Task.NpcDataId); + if (gameObject == null) + { + return ETaskResult.StillRunning; + } + _startPosition = objectTable.LocalPlayer?.Position ?? _startPosition; + if (condition[ConditionFlag.Mounted]) + { + gameFunctions.Unmount(); + _phase = ETaxiPhase.Unmounting; + return ETaskResult.StillRunning; + } + if (gameFunctions.InteractWith(gameObject)) + { + logger.LogDebug("TaxiInteract: Interacting with NPC {DataId}", base.Task.NpcDataId); + _phase = ETaxiPhase.Interacting; + _interactingStartedAt = Environment.TickCount64; + } + return ETaskResult.StillRunning; + } + default: + return ETaskResult.StillRunning; } - goto IL_0227; } - [MethodImpl(MethodImplOptions.NoInlining)] public void OnConditionChange(ConditionFlag flag, bool value) { bool flag2 = _phase == ETaxiPhase.Interacting; - int num = ((!flag2) ? 1668552207 : 1668552200); - bool flag3 = default(bool); - while (true) + if (flag2) { - int num2 = num; - int num3 = 1668552201; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - flag3 = false; - num = 1668552204; - break; - case 1: - num = (((uint)(flag - 31) > 1u) ? 1668552202 : 1668552203); - break; - case 5: - flag2 = flag3; - num = 1668552207; - break; - case 0: - num = 1668552200; - break; - case 4: - return; - case 2: - flag3 = true; - num = 1668552204; - break; - case 6: - { - bool num5 = flag2; - num3 = (value ? 1 : 0); - num4 = (num5 ? 1 : 0); - num = (((num4 | num3) - (num4 ^ num3) == 0) ? 1668552205 : 1668552206); - break; - } - case 7: - _206F_202A_202C_200F_200F_206A_206F_200B_202C_202D_202A_202A_206B_206D_206F_206B_202C_200E_206D_202A_202D_206B_206E_200E_202E_202D_202D_206F_206D_202A_200B_202D_200F_202D_206C_206B_206A_206A_200D_202D_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-919040948), Array.Empty<object>()); - num = 1668552205; - break; - } + bool flag3 = (uint)(flag - 31) <= 1u; + flag2 = flag3; + } + if (flag2 && value) + { + logger.LogDebug("TaxiInteract: Interaction confirmed via condition flag"); } - } - - void IConditionChangeAware.OnConditionChange(ConditionFlag flag, bool value) - { - //ILSpy generated this explicit interface implementation from .override directive in OnConditionChange - this.OnConditionChange(flag, value); } public override bool ShouldInterruptOnDamage() @@ -465,40 +174,5 @@ internal static class TaxiInteract { interactionUiController.SmartNavTaxiDestPlaceName = null; } - - static IPlayerCharacter _206B_206D_202B_202B_202D_200C_206C_200E_206E_206B_202B_206E_206C_200E_200E_206D_200D_206D_206B_202E_202A_202E_206B_200B_202C_200F_202D_206A_202A_202C_206D_206A_200C_200F_200D_202C_206E_202C_206C_206F_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static Vector3 _200B_206F_202B_200F_202B_206F_200E_206F_206A_200F_206C_206C_200E_202C_202A_206C_200B_206F_200F_202C_200E_200B_200F_200D_200E_202A_206E_200C_202C_202D_206D_206F_200D_200D_200E_206E_206E_206D_202E_206D_202E(IGameObject P_0) - { - return P_0.Position; - } - - static void _206F_202A_202C_200F_200F_206A_206F_200B_202C_202D_202A_202A_206B_206D_206F_206B_202C_200E_206D_202A_202D_206B_206E_200E_202E_202D_202D_206F_206D_202A_200B_202D_200F_202D_206C_206B_206A_206A_200D_202D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _202A_202A_202D_202C_202D_206B_206F_202E_202A_202A_200D_202D_202A_206E_200C_200F_206C_200C_206C_206D_200D_206B_206C_206C_200D_206A_202D_200C_202A_206F_206D_206C_202A_202D_202C_200B_206F_200D_206C_202A_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static long _206D_206E_200D_202B_206C_202E_206B_200B_200F_200B_206B_200F_206E_202D_206A_206D_200E_206D_200E_202A_202D_206A_206B_206D_202A_202B_206D_200B_206E_202C_206C_202A_206E_202B_200F_202E_200E_200E_200C_202E_202E() - { - return Environment.TickCount64; - } - - static void _200B_202D_206E_202C_200C_206A_206C_206A_202B_202A_206E_202E_206D_202D_200E_200D_202D_202E_200F_206B_200C_202B_202D_200B_200D_200D_206E_206A_206A_200C_206A_206F_200D_202D_202C_202A_206F_200E_200E_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static uint _202B_206B_206B_206B_202E_202D_200C_206E_200E_200F_206E_206C_200C_202A_206D_206C_200B_202C_200C_206B_202E_202E_202E_202A_200C_206B_200C_202C_206B_200B_206B_206E_206B_202D_202E_200E_206D_202C_206B_202A_202E(IClientState P_0) - { - return P_0.TerritoryType; - } } } diff --git a/Questionable/Questionable.Controller.Steps.Shared/TicketTeleport.cs b/Questionable/Questionable.Controller.Steps.Shared/TicketTeleport.cs index 311e20c..ed5591f 100644 --- a/Questionable/Questionable.Controller.Steps.Shared/TicketTeleport.cs +++ b/Questionable/Questionable.Controller.Steps.Shared/TicketTeleport.cs @@ -1,7 +1,4 @@ -using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Plugin.Services; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps.Interactions; @@ -14,16 +11,6 @@ internal static class TicketTeleport { internal sealed record Task(uint ItemId, ushort DestTerritoryId) : UseItem.IUseItemBase, ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206E_206B_206A_200E_206B_206F_200B_202A_206A_200C_200F_206B_206A_200E_206F_200B_200B_200D_206B_206F_206C_200C_206B_200C_200F_200F_200D_202D_202B_206B_202E_200E_206F_200B_200B_206D_202B_200F_206B_206C_202E(typeof(Task).TypeHandle); - } - } - public ElementId? QuestId => null; public IList<QuestWorkValue?> CompletionQuestVariablesFlags => new List<QuestWorkValue>(); @@ -35,104 +22,9 @@ internal static class TicketTeleport return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(30, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1384911958)); - defaultInterpolatedStringHandler.AppendFormatted(ItemId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1691935347)); - defaultInterpolatedStringHandler.AppendFormatted(DestTerritoryId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202B_206F_206F_206B_200E_202A_206A_206B_200C_202B_202E_206D_202A_202E_202B_202E_202E_206D_206D_206D_202D_206D_206E_200E_206B_206E_200B_206C_206C_206F_200D_200C_202E_206A_200F_202E_200D_200B_200B_206C_202E(); - _200C_200D_202D_206A_206C_206A_202A_206A_200E_202A_202D_200E_202C_206E_202D_200F_200B_202E_206C_200D_206B_200E_206F_202A_206A_202A_202A_206F_202D_202E_200F_200F_202C_206D_206B_200D_200B_202D_206B_206A_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1298229987)); - _200C_200D_202D_206A_206C_206A_202A_206A_200E_202A_202D_200E_202C_206E_202D_200F_200B_202E_206C_200D_206B_200E_206F_202A_206A_202A_202A_206F_202D_202E_200F_200F_202C_206D_206B_200D_200B_202D_206B_206A_202E(builder, ItemId.ToString()); - _200C_200D_202D_206A_206C_206A_202A_206A_200E_202A_202D_200E_202C_206E_202D_200F_200B_202E_206C_200D_206B_200E_206F_202A_206A_202A_202A_206F_202D_202E_200F_200F_202C_206D_206B_200D_200B_202D_206B_206A_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1798905925)); - _200C_200D_202D_206A_206C_206A_202A_206A_200E_202A_202D_200E_202C_206E_202D_200F_200B_202E_206C_200D_206B_200E_206F_202A_206A_202A_202A_206F_202D_202E_200F_200F_202C_206D_206B_200D_200B_202D_206B_206A_202E(builder, DestTerritoryId.ToString()); - _200C_200D_202D_206A_206C_206A_202A_206A_200E_202A_202D_200E_202C_206E_202D_200F_200B_202E_206C_200D_206B_200E_206F_202A_206A_202A_202A_206F_202D_202E_200F_200F_202C_206D_206B_200D_200B_202D_206B_206A_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1816920176)); - _206D_206E_206D_206C_206C_200E_206F_202D_206C_206F_206D_206F_200C_200C_200B_200F_200B_200D_206E_206F_200F_202B_206B_200B_200E_202A_202D_206C_202C_202A_200C_202A_202A_202B_206C_206E_202B_202E_200E_200E_202E(builder, (object?)QuestId); - _200C_200D_202D_206A_206C_206A_202A_206A_200E_202A_202D_200E_202C_206E_202D_200F_200B_202E_206C_200D_206B_200E_206F_202A_206A_202A_202A_206F_202D_202E_200F_200F_202C_206D_206B_200D_200B_202D_206B_206A_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-755497586)); - _206D_206E_206D_206C_206C_200E_206F_202D_206C_206F_206D_206F_200C_200C_200B_200F_200B_200D_206E_206F_200F_202B_206B_200B_200E_202A_202D_206C_202C_202A_200C_202A_202A_202B_206C_206E_202B_202E_200E_200E_202E(builder, (object?)CompletionQuestVariablesFlags); - _200C_200D_202D_206A_206C_206A_202A_206A_200E_202A_202D_200E_202C_206E_202D_200F_200B_202E_206C_200D_206B_200E_206F_202A_206A_202A_202A_206F_202D_202E_200F_200F_202C_206D_206B_200D_200B_202D_206B_206A_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-395177721)); - _200C_200D_202D_206A_206C_206A_202A_206A_200E_202A_202D_200E_202C_206E_202D_200F_200B_202E_206C_200D_206B_200E_206F_202A_206A_202A_202A_206F_202D_202E_200F_200F_202C_206D_206B_200D_200B_202D_206B_206A_202E(builder, StartingCombat.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? (-1363614777) : (-1363614778)); - while (true) - { - int num2 = num; - int num3 = -1363614780; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1363614778; - break; - case 1: - num = ((!_202A_206A_200E_206F_202D_202C_206D_200C_206C_206F_206E_202C_200D_206C_200E_202A_200F_202A_200B_202D_200F_202E_206B_200F_200F_202B_206B_202C_206C_200F_206D_200B_202C_200F_202E_200D_202E_200C_200E_206E_202E(EqualityContract, other.EqualityContract)) ? (-1363614784) : (-1363614782)); - break; - case 4: - return false; - case 2: - num = (((object)other == null) ? (-1363614784) : (-1363614779)); - break; - case 6: - num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? (-1363614784) : (-1363614783)); - break; - case 5: - return EqualityComparer<ushort>.Default.Equals(DestTerritoryId, other.DestTerritoryId); - case 3: - return true; - } - } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type? _206E_206B_206A_200E_206B_206F_200B_202A_206A_200C_200F_206B_206A_200E_206F_200B_200B_200D_206B_206F_206C_200C_206B_200C_200F_200F_200D_202D_202B_206B_202E_200E_206F_200B_200B_206D_202B_200F_206B_206C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _202B_206F_206F_206B_200E_202A_206A_206B_200C_202B_202E_206D_202A_202E_202B_202E_202E_206D_206D_206D_202D_206D_206E_200E_206B_206E_200B_206C_206C_206F_200D_200C_202E_206A_200F_202E_200D_200B_200B_206C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder? _200C_200D_202D_206A_206C_206A_202A_206A_200E_202A_202D_200E_202C_206E_202D_200F_200B_202E_206C_200D_206B_200E_206F_202A_206A_202A_202A_206F_202D_202E_200F_200F_202C_206D_206B_200D_200B_202D_206B_206A_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _206D_206E_206D_206C_206C_200E_206F_202D_206C_206F_206D_206F_200C_200C_200B_200F_200B_200D_206E_206F_200F_202B_206B_200B_200E_202A_202D_206C_202C_202A_200C_202A_202A_202B_206C_206E_202B_202E_200E_200E_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } - - static bool _202A_206A_200E_206F_202D_202C_206D_200C_206C_206F_206E_202C_200D_206C_200E_202A_200F_202A_200B_202D_200F_202E_206B_200F_200F_202B_206B_202C_206C_200F_206D_200B_202C_200F_202E_200D_202E_200C_200E_206E_202E(Type? P_0, Type? P_1) - { - return P_0 == P_1; + return $"TicketTeleport({ItemId} -> territory {DestTerritoryId})"; } } diff --git a/Questionable/Questionable.Controller.Steps.Shared/WaitAtEnd.cs b/Questionable/Questionable.Controller.Steps.Shared/WaitAtEnd.cs index bcfe228..907b4d6 100644 --- a/Questionable/Questionable.Controller.Steps.Shared/WaitAtEnd.cs +++ b/Questionable/Questionable.Controller.Steps.Shared/WaitAtEnd.cs @@ -3,11 +3,7 @@ using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Conditions; -using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using Questionable.Controller.Steps.Common; using Questionable.Controller.Utils; @@ -23,460 +19,153 @@ internal static class WaitAtEnd { internal sealed class Factory(IClientState clientState, IObjectTable objectTable, ICondition condition, TerritoryData territoryData, AutoDutyIpc autoDutyIpc, AutoHookIpc autoHookIpc, BossModIpc bossModIpc) : ITaskFactory { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass8_0 - { - public Factory _003C_003E4__this; - - public QuestStep step; - - internal bool _003CCreateAllTasks_003Eb__0() - { - return !_200B_202B_206C_200C_200D_202C_206E_202C_202A_202B_200D_200F_200C_206C_206F_200D_206D_206A_202E_200B_202C_206A_200C_200D_206B_202B_206A_202B_202E_202B_202A_206E_202D_206F_200F_200D_202B_200E_202E_202A_202E(_003C_003E4__this.condition, ConditionFlag.InCombat); - } - - internal bool _003CCreateAllTasks_003Eb__1() - { - return _206C_206F_200B_202B_206A_202E_202E_200B_206D_206E_206C_206B_206C_200D_202D_200D_206E_200C_206D_206D_200C_206A_202E_206A_200B_200D_200C_206A_200E_206C_206B_202E_206B_206B_200F_206A_200B_206E_202B_202C_202E(_003C_003E4__this.clientState) == _206C_206A_200C_206C_206F_206D_202E_202C_206B_206A_200E_200E_206E_206A_206A_200F_206B_202C_206F_200E_200C_206B_200D_202C_200C_200C_206C_200B_200E_206F_206B_202E_206D_206E_202A_202A_206F_202A_200C_206B_202E(step); - } - - static bool _200B_202B_206C_200C_200D_202C_206E_202C_202A_202B_200D_200F_200C_206C_206F_200D_206D_206A_202E_200B_202C_206A_200C_200D_206B_202B_206A_202B_202E_202B_202A_206E_202D_206F_200F_200D_202B_200E_202E_202A_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static uint _206C_206F_200B_202B_206A_202E_202E_200B_206D_206E_206C_206B_206C_200D_202D_200D_206E_200C_206D_206D_200C_206A_202E_206A_200B_200D_200C_206A_200E_206C_206B_202E_206B_206B_200F_206A_200B_206E_202B_202C_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static ushort? _206C_206A_200C_206C_206F_206D_202E_202C_206B_206A_200E_200E_206E_206A_206A_200F_206B_202C_206F_200E_200C_206B_200D_202C_200C_200C_206C_200B_200E_206F_206B_202E_206D_206E_202A_202A_206F_202A_200C_206B_202E(QuestStep P_0) - { - return P_0.TargetTerritoryId; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass8_1 - { - public Vector3 lastPosition; - - public _003C_003Ec__DisplayClass8_0 CS_0024_003C_003E8__locals1; - - internal bool _003CCreateAllTasks_003Eb__2() - { - IPlayerCharacter playerCharacter = _200D_202E_202C_206E_202D_206B_206C_200D_206D_200D_200B_202D_206F_202E_202A_206D_202B_202C_202C_202E_200D_200B_206C_200E_202C_200E_202E_206D_206A_206A_202A_200D_206D_200B_206F_202A_206A_206F_200B_200F_202E(CS_0024_003C_003E8__locals1._003C_003E4__this.objectTable); - Vector3? vector = ((playerCharacter != null) ? new Vector3?(_206D_200E_200C_200F_200F_200D_202E_206C_206D_202E_206C_200E_200D_206F_200E_200B_202E_206F_200B_206D_206F_200C_206B_200E_202B_200C_202E_206D_202D_200B_206E_206C_206C_202D_202B_206E_206D_202B_206A_206A_202E((IGameObject)playerCharacter)) : ((Vector3?)null)); - int num = (vector.HasValue ? (-1541036823) : (-1541036822)); - while (true) - { - int num2 = num; - int num3 = -1541036824; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0082; - case 2: - return false; - case 1: - return (lastPosition - vector.Value).Length() > 2f; - } - continue; - IL_0082: - num = -1541036822; - } - } - - static IPlayerCharacter _200D_202E_202C_206E_202D_206B_206C_200D_206D_200D_200B_202D_206F_202E_202A_206D_202B_202C_202C_202E_200D_200B_206C_200E_202C_200E_202E_206D_206A_206A_202A_200D_206D_200B_206F_202A_206A_206F_200B_200F_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static Vector3 _206D_200E_200C_200F_200F_200D_202E_206C_206D_202E_206C_200E_200D_206F_200E_200B_202E_206F_200B_206D_206F_200C_206B_200E_202B_200C_202E_206D_202D_200B_206E_206C_206C_202D_202B_206E_206D_202B_206A_206A_202E(IGameObject P_0) - { - return P_0.Position; - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_202B_202D_202A_206B_206B_200D_200E_202C_200B_206E_200B_206D_202D_200E_206D_202D_206B_206B_200D_202B_206A_202D_202A_206D_202D_202A_200D_200C_200D_206B_202E_200C_200C_202A_206F_200B_206D_202B_202E_202B_202E(step).Count != 6) ? 305029155 : 305029169); - WaitQuestAccepted waitQuestAccepted = default(WaitQuestAccepted); - WaitDelay waitDelay = default(WaitDelay); - EInteractionType eInteractionType = default(EInteractionType); - WaitQuestCompleted waitQuestCompleted = default(WaitQuestCompleted); - WaitDelay waitDelay2 = default(WaitDelay); - ITask task = default(ITask); - while (true) + if (step.CompletionQuestVariablesFlags.Count == 6 && QuestWorkUtils.HasCompletionFlags(step.CompletionQuestVariablesFlags)) { - int num2 = num; - int num3 = 305029181; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + WaitForCompletionFlags waitForCompletionFlags = new WaitForCompletionFlags((QuestId)quest.Id, step); + WaitDelay waitDelay = new WaitDelay(); + return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[3] + { + waitForCompletionFlags, + waitDelay, + Next(quest, sequence) + }); + } + ITask task2; + switch (step.InteractionType) + { + case EInteractionType.Combat: + { + if (step.EnemySpawnType == EEnemySpawnType.FinishCombatIfAny) + { + return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(Next(quest, sequence)); + } + WaitCondition.Task task = new WaitCondition.Task(() => !condition[ConditionFlag.InCombat], "Wait(not in combat)"); + return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[4] + { + new WaitDelay(), + task, + new WaitDelay(), + Next(quest, sequence) + }); + } + case EInteractionType.WaitForManualProgress: + case EInteractionType.Snipe: + case EInteractionType.Instruction: + case EInteractionType.FateAction: + case EInteractionType.CriticalEncounter: + return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(new WaitNextStepOrSequence()); + case EInteractionType.Duty: + if (autoDutyIpc.IsConfiguredToRunContent(step.DutyOptions)) { - case 26: - num = 305029156; break; - case 27: - _200F_202D_206D_206B_202D_202A_200E_202A_206A_202D_200C_200D_200E_200E_206E_200B_202D_206B_200B_200F_206F_202A_206F_206A_202A_200C_206F_206F_202C_202B_202A_206C_206D_206C_202A_206A_200E_206A_202A_206A_202E((object)_202A_202B_202C_202B_200C_206E_206A_202C_200B_206C_200B_200C_206E_202D_206E_202A_206D_202C_202C_200D_206F_206D_200E_200D_200B_202A_200C_200D_206D_202B_200F_206C_200C_206A_200B_202E_206D_202A_202C_206C_202E(step), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-751408309)); - _200F_202D_206D_206B_202D_202A_200E_202A_206A_202D_200C_200D_200E_200E_206E_200B_202D_206B_200B_200F_206F_202A_206F_206A_202A_200C_206F_206F_202C_202B_202A_206C_206D_206C_202A_206A_200E_206A_202A_206A_202E((object)_202E_206E_200F_202B_202D_202C_202D_200E_202D_200F_206A_206B_206D_202C_206C_206C_206A_206A_200E_200E_202D_200E_202E_200E_200F_200F_206E_206C_206E_200D_200D_206D_202C_200D_200D_200C_200C_206A_200B_206D_202E(step), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1724098705)); + } + goto IL_01bf; + case EInteractionType.SinglePlayerDuty: + if (bossModIpc.IsConfiguredToRunSoloInstance(quest.Id, step.SinglePlayerDutyOptions)) + { + break; + } + goto IL_01bf; + case EInteractionType.Fish: + if (autoHookIpc.IsAvailable()) + { + break; + } + goto IL_01bf; + case EInteractionType.WalkTo: + case EInteractionType.Jump: + return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(Next(quest, sequence)); + case EInteractionType.WaitForObjectAtPosition: + ArgumentNullException.ThrowIfNull(step.DataId, "step.DataId"); + ArgumentNullException.ThrowIfNull(step.Position, "step.Position"); + return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[3] + { + new WaitObjectAtPosition(step.DataId.Value, step.Position.Value, step.NpcWaitDistance ?? 0.5f), + new WaitDelay(), + Next(quest, sequence) + }); + case EInteractionType.Interact: + if (!step.TargetTerritoryId.HasValue) + { + break; + } + goto IL_02a6; + case EInteractionType.UseItem: + if (!step.TargetTerritoryId.HasValue) + { + break; + } + goto IL_02a6; + case EInteractionType.AcceptQuest: + { + WaitQuestAccepted waitQuestAccepted = new WaitQuestAccepted(step.PickUpQuestId ?? quest.Id); + WaitDelay waitDelay3 = new WaitDelay(); + if (step.PickUpQuestId != null) + { return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[3] { - new WaitObjectAtPosition(_202A_202B_202C_202B_200C_206E_206A_202C_200B_206C_200B_200C_206E_202D_206E_202A_206D_202C_202C_200D_206F_206D_200E_200D_200B_202A_200C_200D_206D_202B_200F_206C_200C_206A_200B_202E_206D_202A_202C_206C_202E(step).Value, _202E_206E_200F_202B_202D_202C_202D_200E_202D_200F_206A_206B_206D_202C_206C_206C_206A_206A_200E_200E_202D_200E_202E_200E_200F_200F_206E_206C_206E_200D_200D_206D_202C_200D_200D_200C_200C_206A_200B_206D_202E(step).Value, _206E_206B_206F_200E_200B_202B_200D_200E_202A_206A_202C_206B_200C_206F_206E_206D_206F_206D_200B_206B_202C_202B_200E_202A_206A_206F_206E_200D_202E_200E_202A_202B_202E_202C_202C_202C_206C_206F_202B_202A_202E(step) ?? 0.5f), - new WaitDelay(), - Next(quest, sequence) - }); - case 16: - return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] { waitQuestAccepted, waitDelay }); - case 0: - num = 305029156; - break; - case 24: - { - WaitForCompletionFlags waitForCompletionFlags = new WaitForCompletionFlags((QuestId)quest.Id, step); - WaitDelay waitDelay3 = new WaitDelay(); - return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[3] - { - waitForCompletionFlags, + waitQuestAccepted, waitDelay3, Next(quest, sequence) }); } - case 36: - goto IL_0204; - case 31: - return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(Next(quest, sequence)); - case 30: - eInteractionType = _202A_202C_202B_202D_202A_200B_206A_206C_202A_202E_200F_206A_202D_206E_200C_200B_202A_202C_200D_206B_206F_200E_202D_202A_202A_206C_206A_206A_202E_206D_202C_206D_206A_202D_206D_206F_206A_202B_206F_202C_202E(step); - num = ((eInteractionType > EInteractionType.WalkTo) ? 305029150 : 305029177); - break; - case 32: - return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] { waitQuestCompleted, waitDelay2 }); - case 5: - num = 305029156; - break; - case 10: - num = ((eInteractionType == EInteractionType.UseItem) ? 305029164 : 305029171); - break; - case 14: - switch (eInteractionType) - { - case EInteractionType.WaitForObjectAtPosition: - break; - case EInteractionType.AcceptQuest: - goto IL_0204; - default: - goto IL_0326; - case EInteractionType.WaitForManualProgress: - case EInteractionType.Snipe: - case EInteractionType.Instruction: - case EInteractionType.FateAction: - case EInteractionType.CriticalEncounter: - goto IL_0332; - case EInteractionType.SinglePlayerDuty: - goto IL_0490; - case EInteractionType.Dive: - case EInteractionType.Craft: - case EInteractionType.Gather: - case EInteractionType.SwitchClass: - case EInteractionType.UnlockTaxiStand: - case EInteractionType.MeldMateria: - goto IL_04f8; - case EInteractionType.Fish: - goto IL_059f; - case EInteractionType.Jump: - goto IL_0644; - case EInteractionType.CompleteQuest: - goto IL_0671; - case EInteractionType.Duty: - goto IL_06c5; - } - goto case 27; - case 22: - goto IL_0332; - case 8: - return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[3] - { - waitQuestAccepted, - waitDelay, - Next(quest, sequence) - }); - case 33: - { - WaitCondition.Task task2 = new WaitCondition.Task(() => !_003C_003Ec__DisplayClass8_0._200B_202B_206C_200C_200D_202C_206E_202C_202A_202B_200D_200F_200C_206C_206F_200D_206D_206A_202E_200B_202C_206A_200C_200D_206B_202B_206A_202B_202E_202B_202A_206E_202D_206F_200F_200D_202B_200E_202E_202A_202E(condition, ConditionFlag.InCombat), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1005542546)); - return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[4] - { - new WaitDelay(), - task2, - new WaitDelay(), - Next(quest, sequence) - }); - } - case 3: - num = (_200E_202C_206A_200D_200E_206C_206C_206B_206C_202D_202C_202B_206B_200F_202C_206F_202B_202E_206E_200D_206B_206D_206E_200F_206C_200F_202B_202D_200E_202E_206D_206B_202B_200C_200D_202B_202D_200F_202A_202E(step).HasValue ? 305029170 : 305029181); - break; - case 15: - num = ((_206A_200E_206D_200F_202E_206F_202E_202E_200F_206E_202A_200F_200B_206F_202D_202A_202A_200B_200C_200C_206D_202D_200B_202C_206E_202C_206C_202C_202A_202D_202D_200E_202E_206E_206C_206C_202E_202D_202E(step) == _200E_202C_206A_200D_200E_206C_206C_206B_206C_202D_202C_202B_206B_200F_202C_206F_202B_202E_206E_200D_206B_206D_206E_200F_206C_200F_202B_202D_200E_202E_206D_206B_202B_200C_200D_202B_202D_200F_202A_202E(step)) ? 305029178 : 305029174); - break; - case 35: - num = ((eInteractionType == EInteractionType.Combat) ? 305029151 : 305029175); - break; - case 12: - num = ((!QuestWorkUtils.HasCompletionFlags(_202B_202D_202A_206B_206B_200D_200E_202C_200B_206E_200B_206D_202D_200E_206D_202D_206B_206B_200D_202B_206A_202D_202A_206D_202D_202A_200D_200C_200D_206B_202E_200C_200C_202A_206F_200B_206D_202B_202E_202B_202E(step))) ? 305029155 : 305029157); - break; - case 2: - goto IL_0490; - case 9: - return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[3] - { - task, - new WaitDelay(), - Next(quest, sequence) - }); - case 20: - num = 305029169; - break; - case 25: - goto IL_04f8; - case 34: - num = ((_200B_200C_200E_206C_202E_206C_202C_200C_206B_206D_206B_200B_206E_206A_200C_200B_206C_200E_200F_200B_202A_206E_202C_202E_200E_202D_206F_206E_206E_200C_206C_200C_206B_200B_200E_206C_206F_206F_202D_206E_202E(step) != EEnemySpawnType.FinishCombatIfAny) ? 305029148 : 305029154); - break; - case 11: - task = new WaitCondition.Task(() => _003C_003Ec__DisplayClass8_0._206C_206F_200B_202B_206A_202E_202E_200B_206D_206E_206C_206B_206C_200D_202D_200D_206E_200C_206D_206D_200C_206A_202E_206A_200B_200D_200C_206A_200E_206C_206B_202E_206B_206B_200F_206A_200B_206E_202B_202C_202E(clientState) == _003C_003Ec__DisplayClass8_0._206C_206A_200C_206C_206F_206D_202E_202C_206B_206A_200E_200E_206E_206A_206A_200F_206B_202C_206F_200E_200C_206B_200D_202C_200C_200C_206C_200B_200E_206F_206B_202E_206D_206E_202A_202A_206F_202A_200C_206B_202E(step), _200F_206C_206C_206B_200F_206B_202E_206C_202E_202D_206B_200D_206B_202E_206C_206E_200E_206F_200C_206A_200C_206F_206B_200B_200F_202D_200C_206A_206C_206D_200C_206E_202C_202C_202B_206F_206F_200F_206C_206F_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-502648529), territoryData.GetNameAndId(_200E_202C_206A_200D_200E_206C_206C_206B_206C_202D_202C_202B_206B_200F_202C_206F_202B_202E_206E_200D_206B_206D_206E_200F_206C_200F_202B_202D_200E_202E_206D_206B_202B_200C_200D_202B_202D_200F_202A_202E(step).Value), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346))); - num = 305029172; - break; - case 23: - goto IL_059f; - case 18: - num = ((eInteractionType == EInteractionType.WalkTo) ? 305029168 : 305029159); - break; - case 4: - num = ((eInteractionType == EInteractionType.Interact) ? 305029182 : 305029167); - break; - case 29: - num = 305029156; - break; - case 17: - num = ((!_200E_202C_206A_200D_200E_206C_206C_206B_206C_202D_202C_202B_206B_200F_202C_206F_202B_202E_206E_200D_206B_206D_206E_200F_206C_200F_202B_202D_200E_202E_206D_206B_202B_200C_200D_202B_202D_200F_202A_202E(step).HasValue) ? 305029156 : 305029170); - break; - case 13: - goto IL_0644; - case 1: - return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[3] - { - waitQuestCompleted, - waitDelay2, - Next(quest, sequence) - }); - case 28: - goto IL_0671; - case 19: - goto IL_06c5; - case 21: - num = 305029156; - break; - case 7: - { - Vector3? vector = _202E_206E_200F_202B_202D_202C_202D_200E_202D_200F_206A_206B_206D_202C_206C_206C_206A_206A_200E_200E_202D_200E_202E_200E_200F_200F_206E_206C_206E_200D_200D_206D_202C_200D_200D_200C_200C_206A_200B_206D_202E(step); - Vector3 obj; - if (!vector.HasValue) - { - IPlayerCharacter playerCharacter = _206E_200C_206B_206D_206E_200E_200D_202A_202A_200C_202B_200D_206A_202C_206F_200E_206C_202A_206A_202E_206F_200B_202A_206B_206D_202D_200C_202C_206E_202E_200E_206D_202A_200E_200D_206C_200B_206B_206D_200E_202E(objectTable); - obj = ((playerCharacter != null) ? _206A_200C_202A_202C_200F_200B_206D_206F_200E_202A_202A_202C_206F_202B_202C_202D_202B_200C_202C_206A_206E_200E_200D_200F_206F_200C_200C_206C_206C_200B_200C_202D_206E_200E_206D_200F_202D_200D_200F_200C_202E((IGameObject)playerCharacter) : Vector3.Zero); - } - else - { - obj = vector.GetValueOrDefault(); - } - Vector3 lastPosition = obj; - task = new WaitCondition.Task(delegate - { - IPlayerCharacter playerCharacter2 = _003C_003Ec__DisplayClass8_1._200D_202E_202C_206E_202D_206B_206C_200D_206D_200D_200B_202D_206F_202E_202A_206D_202B_202C_202C_202E_200D_200B_206C_200E_202C_200E_202E_206D_206A_206A_202A_200D_206D_200B_206F_202A_206A_206F_200B_200F_202E(objectTable); - Vector3? vector2 = ((playerCharacter2 != null) ? new Vector3?(_003C_003Ec__DisplayClass8_1._206D_200E_200C_200F_200F_200D_202E_206C_206D_202E_206C_200E_200D_206F_200E_200B_202E_206F_200B_206D_206F_200C_206B_200E_202B_200C_202E_206D_202D_200B_206E_206C_206C_202D_202B_206E_206D_202B_206A_206A_202E((IGameObject)playerCharacter2)) : ((Vector3?)null)); - int num5 = (vector2.HasValue ? (-1541036823) : (-1541036822)); - while (true) - { - int num6 = num5; - int num7 = -1541036824; - int num8 = num6; - switch ((num8 | num7) - (num8 & num7)) - { - case 0: - goto IL_0082; - case 2: - return false; - case 1: - return (lastPosition - vector2.Value).Length() > 2f; - } - continue; - IL_0082: - num5 = -1541036822; - } - }, _200F_206C_206C_206B_200F_206B_202E_206C_202E_202D_206B_200D_206B_202E_206C_206E_200E_206F_200C_206A_200C_206F_206B_200B_200F_202D_200C_206A_206C_206D_200C_206E_202C_202C_202B_206F_206F_200F_206C_206F_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-650791102), lastPosition.ToString(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1450220880), _206A_200B_206C_206A_200D_206C_206E_202E_200F_202C_202E_200F_202E_202B_206C_202C_200D_206E_206A_200C_202B_200F_206F_206F_206F_202C_200F_206A_206D_200B_200F_202B_200F_206C_206F_206A_200C_202E_206B_206A_202E()), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578))); - num = 305029172; - break; - } - case 6: - { - return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(new EndAutomation()); - } - IL_0326: - num = 305029152; - break; - IL_06c5: - num = ((!autoDutyIpc.IsConfiguredToRunContent(_202D_200B_200D_206C_202B_202B_206E_206B_200C_206B_206C_202B_200C_206F_200F_200E_206F_206A_206E_202C_206B_202B_202E_206B_206D_202D_206B_202A_206A_202E_202A_200D_202C_202B_200C_206B_206D_206C_202C_206A_202E(step))) ? 305029179 : 305029160); - break; - IL_0671: - waitQuestCompleted = new WaitQuestCompleted(_200C_206A_202C_206F_202A_202E_206E_202E_206F_202B_202E_202A_206F_200F_206B_200F_200E_206C_200E_206D_202A_200B_206F_206F_202E_202B_200C_206E_200D_200E_206C_202B_200C_206C_200C_200D_206F_200D_200F_202A_202E(step) ?? quest.Id); - waitDelay2 = new WaitDelay(); - num = ((!_206D_202A_200D_206A_206B_200D_202D_200F_202B_202B_200C_206E_200E_200E_206F_206A_202D_200D_200B_206B_202C_206C_200F_206C_206F_206C_206D_202A_202C_206F_202B_200B_202C_202E_200E_206D_200C_206E_202D_202E_202E(_200C_206A_202C_206F_202A_202E_206E_202E_206F_202B_202E_202A_206F_200F_206B_200F_200E_206C_200E_206D_202A_200B_206F_206F_202E_202B_200C_206E_200D_200E_206C_202B_200C_206C_200C_200D_206F_200D_200F_202A_202E(step), (ElementId)null)) ? 305029149 : 305029180); - break; - IL_0644: - return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(Next(quest, sequence)); - IL_059f: - num = (autoHookIpc.IsAvailable() ? 305029156 : 305029179); - break; - IL_0490: - num = ((!bossModIpc.IsConfiguredToRunSoloInstance(quest.Id, _200B_206E_206A_202C_200C_202A_206F_206D_202B_206C_206A_200E_200F_202B_206C_202D_202D_200B_206D_206E_200B_202C_202D_200F_202E_202E_200F_206A_206E_200B_206E_202B_202A_206E_200C_202E_200E_200B_206B_202E_202E(step))) ? 305029179 : 305029176); - break; - IL_0204: - waitQuestAccepted = new WaitQuestAccepted(_200F_206E_202A_206A_202D_202D_206D_206C_206D_202B_202E_200E_200F_202D_206D_206A_206A_202C_206D_202E_206E_206A_206E_202A_200E_206A_206C_200B_200D_200E_206B_206E_206D_202A_200D_206B_200D_202E_200C_202E(step) ?? quest.Id); - waitDelay = new WaitDelay(); - num = ((!_206D_202A_200D_206A_206B_200D_202D_200F_202B_202B_200C_206E_200E_200E_206F_206A_202D_200D_200B_206B_202C_206C_200F_206C_206F_206C_206D_202A_202C_206F_202B_200B_202C_202E_200E_206D_200C_206E_202D_202E_202E(_200F_206E_202A_206A_202D_202D_206D_206C_206D_202B_202E_200E_200F_202D_206D_206A_206A_202C_206D_202E_206E_206A_206E_202A_200E_206A_206C_200B_200D_200E_206B_206E_206D_202A_200D_206B_200D_202E_200C_202E(step), (ElementId)null)) ? 305029165 : 305029173); - break; - IL_04f8: - return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] - { - new WaitDelay(), - Next(quest, sequence) - }); - IL_0332: - return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(new WaitNextStepOrSequence()); - } + return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] { waitQuestAccepted, waitDelay3 }); } - } - - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); + case EInteractionType.CompleteQuest: + { + WaitQuestCompleted waitQuestCompleted = new WaitQuestCompleted(step.TurnInQuestId ?? quest.Id); + WaitDelay waitDelay2 = new WaitDelay(); + if (step.TurnInQuestId != null) + { + return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[3] + { + waitQuestCompleted, + waitDelay2, + Next(quest, sequence) + }); + } + return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] { waitQuestCompleted, waitDelay2 }); + } + IL_01bf: + return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(new EndAutomation()); + IL_02a6: + if (step.TerritoryId != step.TargetTerritoryId) + { + task2 = new WaitCondition.Task(() => clientState.TerritoryType == step.TargetTerritoryId, "Wait(tp to territory: " + territoryData.GetNameAndId(step.TargetTerritoryId.Value) + ")"); + } + else + { + Vector3 lastPosition = step.Position ?? objectTable.LocalPlayer?.Position ?? Vector3.Zero; + task2 = new WaitCondition.Task(delegate + { + Vector3? vector = objectTable.LocalPlayer?.Position; + return vector.HasValue && (lastPosition - vector.Value).Length() > 2f; + }, "Wait(tp away from " + lastPosition.ToString("G", CultureInfo.InvariantCulture) + ")"); + } + return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[3] + { + task2, + new WaitDelay(), + Next(quest, sequence) + }); + } + return new global::_003C_003Ez__ReadOnlyArray<ITask>(new ITask[2] + { + new WaitDelay(), + Next(quest, sequence) + }); } private static NextStep Next(Quest quest, QuestSequence sequence) { - return new NextStep(quest.Id, _202C_200E_202A_200F_206E_200B_202E_206B_200D_202E_202B_200E_200C_200C_200D_202D_202A_206B_206F_206F_206B_206E_202A_206B_206D_200C_200E_202D_202A_202C_200D_202D_200F_200D_206F_200F_200C_202B_200B_200F_202E(sequence)); - } - - static List<QuestWorkValue> _202B_202D_202A_206B_206B_200D_200E_202C_200B_206E_200B_206D_202D_200E_206D_202D_206B_206B_200D_202B_206A_202D_202A_206D_202D_202A_200D_200C_200D_206B_202E_200C_200C_202A_206F_200B_206D_202B_202E_202B_202E(QuestStep P_0) - { - return P_0.CompletionQuestVariablesFlags; - } - - static EInteractionType _202A_202C_202B_202D_202A_200B_206A_206C_202A_202E_200F_206A_202D_206E_200C_200B_202A_202C_200D_206B_206F_200E_202D_202A_202A_206C_206A_206A_202E_206D_202C_206D_206A_202D_206D_206F_206A_202B_206F_202C_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static EEnemySpawnType? _200B_200C_200E_206C_202E_206C_202C_200C_206B_206D_206B_200B_206E_206A_200C_200B_206C_200E_200F_200B_202A_206E_202C_202E_200E_202D_206F_206E_206E_200C_206C_200C_206B_200B_200E_206C_206F_206F_202D_206E_202E(QuestStep P_0) - { - return P_0.EnemySpawnType; - } - - static DutyOptions _202D_200B_200D_206C_202B_202B_206E_206B_200C_206B_206C_202B_200C_206F_200F_200E_206F_206A_206E_202C_206B_202B_202E_206B_206D_202D_206B_202A_206A_202E_202A_200D_202C_202B_200C_206B_206D_206C_202C_206A_202E(QuestStep P_0) - { - return P_0.DutyOptions; - } - - static SinglePlayerDutyOptions _200B_206E_206A_202C_200C_202A_206F_206D_202B_206C_206A_200E_200F_202B_206C_202D_202D_200B_206D_206E_200B_202C_202D_200F_202E_202E_200F_206A_206E_200B_206E_202B_202A_206E_200C_202E_200E_200B_206B_202E_202E(QuestStep P_0) - { - return P_0.SinglePlayerDutyOptions; - } - - static uint? _202A_202B_202C_202B_200C_206E_206A_202C_200B_206C_200B_200C_206E_202D_206E_202A_206D_202C_202C_200D_206F_206D_200E_200D_200B_202A_200C_200D_206D_202B_200F_206C_200C_206A_200B_202E_206D_202A_202C_206C_202E(QuestStep P_0) - { - return P_0.DataId; - } - - static void _200F_202D_206D_206B_202D_202A_200E_202A_206A_202D_200C_200D_200E_200E_206E_200B_202D_206B_200B_200F_206F_202A_206F_206A_202A_200C_206F_206F_202C_202B_202A_206C_206D_206C_202A_206A_200E_206A_202A_206A_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static Vector3? _202E_206E_200F_202B_202D_202C_202D_200E_202D_200F_206A_206B_206D_202C_206C_206C_206A_206A_200E_200E_202D_200E_202E_200E_200F_200F_206E_206C_206E_200D_200D_206D_202C_200D_200D_200C_200C_206A_200B_206D_202E(QuestStep P_0) - { - return P_0.Position; - } - - static float? _206E_206B_206F_200E_200B_202B_200D_200E_202A_206A_202C_206B_200C_206F_206E_206D_206F_206D_200B_206B_202C_202B_200E_202A_206A_206F_206E_200D_202E_200E_202A_202B_202E_202C_202C_202C_206C_206F_202B_202A_202E(QuestStep P_0) - { - return P_0.NpcWaitDistance; - } - - static ushort? _200E_202C_206A_200D_200E_206C_206C_206B_206C_202D_202C_202B_206B_200F_202C_206F_202B_202E_206E_200D_206B_206D_206E_200F_206C_200F_202B_202D_200E_202E_206D_206B_202B_200C_200D_202B_202D_200F_202A_202E(QuestStep P_0) - { - return P_0.TargetTerritoryId; - } - - static ushort _206A_200E_206D_200F_202E_206F_202E_202E_200F_206E_202A_200F_200B_206F_202D_202A_202A_200B_200C_200C_206D_202D_200B_202C_206E_202C_206C_202C_202A_202D_202D_200E_202E_206E_206C_206C_202E_202D_202E(QuestStep P_0) - { - return P_0.TerritoryId; - } - - static string _200F_206C_206C_206B_200F_206B_202E_206C_202E_202D_206B_200D_206B_202E_206C_206E_200E_206F_200C_206A_200C_206F_206B_200B_200F_202D_200C_206A_206C_206D_200C_206E_202C_202C_202B_206F_206F_200F_206C_206F_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static IPlayerCharacter _206E_200C_206B_206D_206E_200E_200D_202A_202A_200C_202B_200D_206A_202C_206F_200E_206C_202A_206A_202E_206F_200B_202A_206B_206D_202D_200C_202C_206E_202E_200E_206D_202A_200E_200D_206C_200B_206B_206D_200E_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static Vector3 _206A_200C_202A_202C_200F_200B_206D_206F_200E_202A_202A_202C_206F_202B_202C_202D_202B_200C_202C_206A_206E_200E_200D_200F_206F_200C_200C_206C_206C_200B_200C_202D_206E_200E_206D_200F_202D_200D_200F_200C_202E(IGameObject P_0) - { - return P_0.Position; - } - - static CultureInfo _206A_200B_206C_206A_200D_206C_206E_202E_200F_202C_202E_200F_202E_202B_206C_202C_200D_206E_206A_200C_202B_200F_206F_206F_206F_202C_200F_206A_206D_200B_200F_202B_200F_206C_206F_206A_200C_202E_206B_206A_202E() - { - return CultureInfo.InvariantCulture; - } - - static ElementId _200F_206E_202A_206A_202D_202D_206D_206C_206D_202B_202E_200E_200F_202D_206D_206A_206A_202C_206D_202E_206E_206A_206E_202A_200E_206A_206C_200B_200D_200E_206B_206E_206D_202A_200D_206B_200D_202E_200C_202E(QuestStep P_0) - { - return P_0.PickUpQuestId; - } - - static bool _206D_202A_200D_206A_206B_200D_202D_200F_202B_202B_200C_206E_200E_200E_206F_206A_202D_200D_200B_206B_202C_206C_200F_206C_206F_206C_206D_202A_202C_206F_202B_200B_202C_202E_200E_206D_200C_206E_202D_202E_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } - - static ElementId _200C_206A_202C_206F_202A_202E_206E_202E_206F_202B_202E_202A_206F_200F_206B_200F_200E_206C_200E_206D_202A_200B_206F_206F_202E_202B_200C_206E_200D_200E_206C_202B_200C_206C_200C_200D_206F_200D_200F_202A_202E(QuestStep P_0) - { - return P_0.TurnInQuestId; - } - - static byte _202C_200E_202A_200F_206E_200B_202E_206B_200D_202E_202B_200E_200C_200C_200D_202D_202A_206B_206F_206F_206B_206E_202A_206B_206D_200C_200E_202D_202A_202C_200D_202D_200F_200D_206F_200F_200C_202B_200B_200F_202E(QuestSequence P_0) - { - return P_0.Sequence; + return new NextStep(quest.Id, sequence.Sequence); } } internal sealed record WaitDelay(TimeSpan Delay) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200E_200C_200F_202A_206D_202E_202A_200B_202B_206B_206E_200C_206E_206A_202A_200D_202E_202E_206B_206C_200C_206B_200D_200E_206B_200C_206A_202B_206A_202E_206C_206D_202C_200E_200E_206D_202A_200C_206D_202B_202E(typeof(WaitDelay).TypeHandle); - } - } - public WaitDelay() : this(TimeSpan.FromSeconds(1L)) { @@ -487,88 +176,9 @@ internal static class WaitAtEnd return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(15, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(728851100)); - defaultInterpolatedStringHandler.AppendFormatted(Delay.TotalSeconds); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202B_206B_206E_200D_202C_202E_202D_206C_202B_202A_202D_202B_206B_200F_206E_206D_200F_202A_206B_202C_206F_200E_200C_202B_200F_202B_200E_200D_206D_202A_200F_200B_206C_202D_206B_206E_202E_200D_202C_202A_202E(); - _200E_202E_200B_200C_202A_206D_202C_200E_202A_206B_206C_202B_206D_202C_202C_200C_200D_202E_200C_202C_202C_206C_202D_200F_202B_200B_206D_200C_202B_206E_200C_206C_200E_202B_202E_200B_206B_200E_200D_206D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-711525909)); - _200E_202E_200B_200C_202A_206D_202C_200E_202A_206B_206C_202B_206D_202C_202C_200C_200D_202E_200C_202C_202C_206C_202D_200F_202B_200B_206D_200C_202B_206E_200C_206C_200E_202B_202E_200B_206B_200E_200D_206D_202E(builder, Delay.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(WaitDelay? other) - { - int num = (((object)this == other) ? 325386797 : 325386793); - while (true) - { - int num2 = num; - int num3 = 325386792; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - return true; - case 4: - return false; - case 3: - num = ((!_206F_200C_206A_202B_202A_200D_202C_202E_200F_202E_200B_206B_200E_206B_202E_206B_206D_206D_200C_206D_202C_200C_202B_200E_200D_202E_200B_202A_206B_200B_202C_202D_202E_200E_206C_202D_202C_202D_202A_200F_202E(EqualityContract, other.EqualityContract)) ? 325386796 : 325386792); - break; - case 0: - return EqualityComparer<TimeSpan>.Default.Equals(Delay, other.Delay); - case 1: - num = (((object)other == null) ? 325386796 : 325386795); - break; - case 2: - num = 325386793; - break; - } - } - } - - bool IEquatable<WaitDelay>.Equals(WaitDelay? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200E_200C_200F_202A_206D_202E_202A_200B_202B_206B_206E_200C_206E_206A_202A_200D_202E_202E_206B_206C_200C_206B_200D_200E_206B_200C_206A_202B_206A_202E_206C_206D_202C_200E_200E_206D_202A_200C_206D_202B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _202B_206B_206E_200D_202C_202E_202D_206C_202B_202A_202D_202B_206B_200F_206E_206D_200F_202A_206B_202C_206F_200E_200C_202B_200F_202B_200E_200D_206D_202A_200F_200B_206C_202D_206B_206E_202E_200D_202C_202A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200E_202E_200B_200C_202A_206D_202C_200E_202A_206B_206C_202B_206D_202C_202C_200C_200D_202E_200C_202C_202C_206C_202D_200F_202B_200B_206D_200C_202B_206E_200C_206C_200E_202B_202E_200B_206B_200E_200D_206D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _206F_200C_206A_202B_202A_200D_202C_202E_200F_202E_200B_206B_200E_206B_202E_206B_206D_206D_200C_206D_202C_200C_202B_200E_200D_202E_200B_202A_206B_200B_202C_202D_202E_200E_206C_202D_202C_202D_202A_200F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"Wait(seconds: {Delay.TotalSeconds})"; } } @@ -588,10 +198,9 @@ internal static class WaitAtEnd internal sealed class WaitNextStepOrSequence : ITask { - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(642187919); + return "Wait(next step or sequence)"; } } @@ -606,269 +215,43 @@ internal static class WaitAtEnd protected override bool Start() { QuestController.QuestProgress currentQuest = questController.CurrentQuest; - int num = ((currentQuest == null) ? 1543604956 : 1543604959); - while (true) + if (currentQuest != null) { - int num2 = num; - int num3 = 1543604958; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return true; - case 1: - _questId = currentQuest.Quest.Id; - _initialSequence = currentQuest.Sequence; - _initialStep = currentQuest.Step; - num = 1543604956; - break; - case 0: - num = 1543604959; - break; - } + _questId = currentQuest.Quest.Id; + _initialSequence = currentQuest.Sequence; + _initialStep = currentQuest.Step; } + return true; } public override ETaskResult Update() { - int num = ((!_200B_200B_206F_206D_202D_202B_200E_200B_206D_206B_200C_200C_206D_206E_200C_202E_206A_202B_206C_200B_200E_206F_200E_202B_202B_202C_206D_202E_206D_202A_206B_206F_206A_200C_200F_200E_200C_206C_206C_202A_202E(_questId, (ElementId)null)) ? (-2044249358) : (-2044249357)); - QuestController.QuestProgress currentQuest = default(QuestController.QuestProgress); - while (true) + if (_questId != null) { - int num2 = num; - int num3 = -2044249358; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + QuestController.QuestProgress currentQuest = questController.CurrentQuest; + if (currentQuest == null || currentQuest.Quest.Id != _questId) { - case 4: - num = -2044249357; - break; - case 0: - return ETaskResult.StillRunning; - case 5: - num = ((currentQuest.Sequence != _initialSequence) ? (-2044249356) : (-2044249360)); - break; - case 7: - num = ((!_200B_200B_206F_206D_202D_202B_200E_200B_206D_206B_200C_200C_206D_206E_200C_202E_206A_202B_206C_200B_200E_206F_200E_202B_202B_202C_206D_202E_206D_202A_206B_206F_206A_200C_200F_200E_200C_206C_206C_202A_202E(currentQuest.Quest.Id, _questId)) ? (-2044249353) : (-2044249359)); - break; - case 2: - num = ((currentQuest.Step == _initialStep) ? (-2044249358) : (-2044249356)); - break; - case 1: - currentQuest = questController.CurrentQuest; - num = ((currentQuest == null) ? (-2044249359) : (-2044249355)); - break; - case 6: return ETaskResult.TaskComplete; - case 3: + } + if (currentQuest.Sequence != _initialSequence || currentQuest.Step != _initialStep) + { return ETaskResult.TaskComplete; } } + return ETaskResult.StillRunning; } public override bool ShouldInterruptOnDamage() { return false; } - - static bool _200B_200B_206F_206D_202D_202B_200E_200B_206D_206B_200C_200C_206D_206E_200C_202E_206A_202B_206C_200B_200E_206F_200E_202B_202B_202C_206D_202E_206D_202A_206B_206F_206A_200C_200F_200E_200C_206C_206C_202A_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } } internal sealed record WaitForCompletionFlags(QuestId Quest, QuestStep Step) : ITask { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<QuestWorkValue, string> _003C_003E9__11_0; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal string _003CToString_003Eb__11_0(QuestWorkValue x) - { - int num = ((x != null) ? 1915446989 : 1915446990); - object obj; - while (true) - { - int num2 = num; - int num3 = 1915446988; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 1: - obj = _206D_202C_206E_200B_200B_202D_202E_206A_200E_202B_202B_206C_200F_200C_202A_202D_202A_200C_206C_202D_206F_202B_206A_200F_200F_206D_200D_202C_206F_206F_206A_200F_202D_202E_202B_200F_200F_206F_206D_202E_202E((object)x); - break; - case 2: - obj = null; - break; - case 0: - goto IL_006c; - } - break; - IL_006c: - num = 1915446990; - } - if (obj == null) - { - obj = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2079705286); - } - return (string)obj; - } - - static string _206D_202C_206E_200B_200B_202D_202E_206A_200E_202B_202B_206C_200F_200C_202A_202D_202A_200C_206C_202D_206F_202B_206A_200F_200F_206D_200D_202C_206F_206F_206A_200F_202D_202E_202B_200F_200F_206F_206D_202E_202E(object P_0) - { - return P_0.ToString(); - } - } - - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206E_206B_206B_206A_206F_202C_200C_206C_206D_202B_202C_202C_200B_206C_202E_206F_200E_200B_206E_200F_202C_200E_200B_200E_202C_202A_206C_202E_200F_202A_200E_200E_200D_206A_202E_206F_200B_200F_206D_206C_202E(typeof(WaitForCompletionFlags).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return _206A_206C_202D_206A_206C_202B_206E_200D_202B_206A_202C_206E_200E_200E_206D_206A_202B_206F_206A_200D_200F_206A_206A_200C_200D_206D_206E_206C_200C_206E_200B_206C_202E_206C_200E_206F_202E_206D_202B_206C_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(960138318), _206D_206C_202A_200F_200C_206B_206D_202A_202E_200D_206A_202D_206A_206A_200F_202D_200F_202C_200E_200D_206E_206E_206B_202B_200F_200F_202B_202B_206A_206E_200E_206F_200D_200C_206B_202B_202E_202B_202E_206F_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1403263077), _200B_206A_200E_206A_202A_206E_206F_206D_200C_200D_202D_200B_200E_206A_206D_206D_200B_200B_202D_200F_206A_206C_206F_200D_202A_202A_206B_202B_206E_200D_202B_202E_206E_206D_206E_200F_206D_206F_206B_200D_202E(Step).Select([MethodImpl(MethodImplOptions.NoInlining)] (QuestWorkValue x) => - { - int num = ((x != null) ? 1915446989 : 1915446990); - object obj; - while (true) - { - int num2 = num; - int num3 = 1915446988; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 1: - obj = _003C_003Ec._206D_202C_206E_200B_200B_202D_202E_206A_200E_202B_202B_206C_200F_200C_202A_202D_202A_200C_206C_202D_206F_202B_206A_200F_200F_206D_200D_202C_206F_206F_206A_200F_202D_202E_202B_200F_200F_206F_206D_202E_202E((object)x); - break; - case 2: - obj = null; - break; - case 0: - goto IL_006c; - } - break; - IL_006c: - num = 1915446990; - } - if (obj == null) - { - obj = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2079705286); - } - return (string)obj; - })), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206C_202A_202A_200B_202C_202C_206B_206A_202B_202E_206A_206E_202B_202D_206B_200F_200E_206C_202C_200D_200F_202B_206C_202B_206B_206D_200E_202A_202D_202C_206F_200B_202B_200F_202A_202C_206A_206C_206C_202B_202E(); - _200F_200B_202D_200F_200E_206A_202B_200F_206A_200D_202A_200B_206F_206D_206D_202D_202A_202C_200B_206A_206D_206D_206B_206F_200D_202C_202B_206D_202E_200E_206B_202B_200F_200C_200D_206D_202D_200C_202E_200F_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1155335586)); - _200E_202D_202B_200D_206B_202D_200D_202C_206F_200B_202D_200C_206B_202E_206C_206A_206F_206B_202D_206D_206F_200B_202A_206D_206B_200E_206E_206F_200B_202D_200B_200C_206C_206B_200F_202D_200E_200E_206A_206B_202E(builder, (object)Quest); - _200F_200B_202D_200F_200E_206A_202B_200F_206A_200D_202A_200B_206F_206D_206D_202D_202A_202C_200B_206A_206D_206D_206B_206F_200D_202C_202B_206D_202E_200E_206B_202B_200F_200C_200D_206D_202D_200C_202E_200F_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-550319066)); - _200E_202D_202B_200D_206B_202D_200D_202C_206F_200B_202D_200C_206B_202E_206C_206A_206F_206B_202D_206D_206F_200B_202A_206D_206B_200E_206E_206F_200B_202D_200B_200C_206C_206B_200F_202D_200E_200E_206A_206B_202E(builder, (object)Step); - return true; - } - - [CompilerGenerated] - public bool Equals(WaitForCompletionFlags? other) - { - int num = (((object)this == other) ? (-191128448) : (-191128441)); - while (true) - { - int num2 = num; - int num3 = -191128445; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - num = -191128441; - break; - case 3: - return true; - case 0: - return false; - case 6: - num = ((!_202E_200E_206C_206A_206E_200D_206D_206D_202C_200C_200C_206F_200D_206C_200B_206F_206E_202B_202E_202D_206E_206D_200B_206F_200D_206E_200D_206F_200C_206E_206E_206C_202D_200B_200B_200F_206B_200E_206C_206B_202E(EqualityContract, other.EqualityContract)) ? (-191128445) : (-191128446)); - break; - case 1: - num = ((!EqualityComparer<QuestId>.Default.Equals(Quest, other.Quest)) ? (-191128445) : (-191128447)); - break; - case 2: - return EqualityComparer<QuestStep>.Default.Equals(Step, other.Step); - case 4: - num = (((object)other == null) ? (-191128445) : (-191128443)); - break; - } - } - } - - bool IEquatable<WaitForCompletionFlags>.Equals(WaitForCompletionFlags? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206E_206B_206B_206A_206F_202C_200C_206C_206D_202B_202C_202C_200B_206C_202E_206F_200E_200B_206E_200F_202C_200E_200B_200E_202C_202A_206C_202E_200F_202A_200E_200E_200D_206A_202E_206F_200B_200F_206D_206C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static List<QuestWorkValue> _200B_206A_200E_206A_202A_206E_206F_206D_200C_200D_202D_200B_200E_206A_206D_206D_200B_200B_202D_200F_206A_206C_206F_200D_202A_202A_206B_202B_206E_200D_202B_202E_206E_206D_206E_200F_206D_206F_206B_200D_202E(QuestStep P_0) - { - return P_0.CompletionQuestVariablesFlags; - } - - static string _206D_206C_202A_200F_200C_206B_206D_202A_202E_200D_206A_202D_206A_206A_200F_202D_200F_202C_200E_200D_206E_206E_206B_202B_200F_200F_202B_202B_206A_206E_200E_206F_200D_200C_206B_202B_202E_202B_202E_206F_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); - } - - static string _206A_206C_202D_206A_206C_202B_206E_200D_202B_206A_202C_206E_200E_200E_206D_206A_202B_206F_206A_200D_200F_206A_206A_200C_200D_206D_206E_206C_200C_206E_200B_206C_202E_206C_200E_206F_202E_206D_202B_206C_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static void _206C_202A_202A_200B_202C_202C_206B_206A_202B_202E_206A_206E_202B_202D_206B_200F_200E_206C_202C_200D_200F_202B_206C_202B_206B_206D_200E_202A_202D_202C_206F_200B_202B_200F_202A_202C_206A_206C_206C_202B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200F_200B_202D_200F_200E_206A_202B_200F_206A_200D_202A_200B_206F_206D_206D_202D_202A_202C_200B_206A_206D_206D_206B_206F_200D_202C_202B_206D_202E_200E_206B_202B_200F_200C_200D_206D_202D_200C_202E_200F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200E_202D_202B_200D_206B_202D_200D_202C_206F_200B_202D_200C_206B_202E_206C_206A_206F_206B_202D_206D_206F_200B_202A_206D_206B_200E_206E_206F_200B_202D_200B_200C_206C_206B_200F_202D_200E_200E_206A_206B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202E_200E_206C_206A_206E_200D_206D_206D_202C_200C_200C_206F_200D_206C_200B_206F_206E_202B_202E_202D_206E_206D_200B_206F_200D_206E_200D_206F_200C_206E_206E_206C_202D_200B_200B_200F_206B_200E_206C_206B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "Wait(QW: " + string.Join(", ", Step.CompletionQuestVariablesFlags.Select((QuestWorkValue x) => x?.ToString() ?? "-")) + ")"; } } @@ -882,146 +265,24 @@ internal static class WaitAtEnd public override ETaskResult Update() { QuestProgressInfo questProgressInfo = questFunctions.GetQuestProgressInfo(base.Task.Quest); - int num = ((questProgressInfo == null) ? (-2142345972) : (-2142345970)); - while (true) + if (questProgressInfo == null || !QuestWorkUtils.MatchesQuestWork(base.Task.Step.CompletionQuestVariablesFlags, questProgressInfo)) { - int num2 = num; - int num3 = -2142345971; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return ETaskResult.StillRunning; - case 2: - return ETaskResult.TaskComplete; - case 0: - num = -2142345970; - break; - case 3: - num = (QuestWorkUtils.MatchesQuestWork(_200E_202A_200C_200E_202B_200C_206B_202E_200F_200F_206D_202D_200C_202C_200C_202C_206A_200E_200B_206E_206E_202E_202E_202C_200B_200C_200C_202A_206A_206A_200F_202C_200B_202A_202D_206F_206A_206E_202B_200F_202E(base.Task.Step), questProgressInfo) ? (-2142345969) : (-2142345972)); - break; - } + return ETaskResult.StillRunning; } + return ETaskResult.TaskComplete; } public override bool ShouldInterruptOnDamage() { return false; } - - static List<QuestWorkValue> _200E_202A_200C_200E_202B_200C_206B_202E_200F_200F_206D_202D_200C_202C_200C_202C_206A_200E_200B_206E_206E_202E_202E_202C_200B_200C_200C_202A_206A_206A_200F_202C_200B_202A_202D_206F_206A_206E_202B_200F_202E(QuestStep P_0) - { - return P_0.CompletionQuestVariablesFlags; - } } internal sealed record WaitObjectAtPosition(uint DataId, Vector3 Destination, float Distance) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202D_202B_200F_200C_202C_202A_200C_202E_200D_202E_200D_202A_200D_202B_206E_202D_200B_202B_202C_202C_202D_206B_206F_202A_202A_202E_202E_202E_202A_202A_200C_202D_206F_200D_206D_200F_206C_206D_202A_200C_202E(typeof(WaitObjectAtPosition).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(16, 3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1147928064)); - defaultInterpolatedStringHandler.AppendFormatted(DataId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1538873063)); - defaultInterpolatedStringHandler.AppendFormatted(Destination.ToString(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1770759382), _206A_202E_200C_206B_206F_200C_202E_206F_206E_206B_206B_200F_202B_202C_206F_200F_200E_200F_206D_202E_200F_206B_200C_200F_206F_202C_206D_200C_206B_206C_206E_202C_206D_202D_206A_200D_206D_200E_202E_206E_202E())); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1505333226)); - defaultInterpolatedStringHandler.AppendFormatted(Distance); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206A_200C_206C_200B_200E_202A_200C_206B_200C_206C_200D_202E_200E_206F_202E_206D_206C_200C_206D_200E_200E_200E_202C_202D_206D_200B_206B_202E_202E_202E_202A_202A_200D_202A_200B_202B_206B_202D_200D_200E_202E(); - _206B_200F_200F_206B_200C_200B_206F_200F_202E_206D_206A_200C_200C_202C_200C_202C_206F_200D_200B_202C_206D_202C_206A_206E_206E_202D_202E_202E_200D_200D_206C_206E_202A_200D_206B_200B_200F_200D_202D_200F_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1430532645)); - _206B_200F_200F_206B_200C_200B_206F_200F_202E_206D_206A_200C_200C_202C_200C_202C_206F_200D_200B_202C_206D_202C_206A_206E_206E_202D_202E_202E_200D_200D_206C_206E_202A_200D_206B_200B_200F_200D_202D_200F_202E(builder, DataId.ToString()); - _206B_200F_200F_206B_200C_200B_206F_200F_202E_206D_206A_200C_200C_202C_200C_202C_206F_200D_200B_202C_206D_202C_206A_206E_206E_202D_202E_202E_200D_200D_206C_206E_202A_200D_206B_200B_200F_200D_202D_200F_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1363516440)); - _206B_200F_200F_206B_200C_200B_206F_200F_202E_206D_206A_200C_200C_202C_200C_202C_206F_200D_200B_202C_206D_202C_206A_206E_206E_202D_202E_202E_200D_200D_206C_206E_202A_200D_206B_200B_200F_200D_202D_200F_202E(builder, Destination.ToString()); - _206B_200F_200F_206B_200C_200B_206F_200F_202E_206D_206A_200C_200C_202C_200C_202C_206F_200D_200B_202C_206D_202C_206A_206E_206E_202D_202E_202E_200D_200D_206C_206E_202A_200D_206B_200B_200F_200D_202D_200F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(379696508)); - _206B_200F_200F_206B_200C_200B_206F_200F_202E_206D_206A_200C_200C_202C_200C_202C_206F_200D_200B_202C_206D_202C_206A_206E_206E_202D_202E_202E_200D_200D_206C_206E_202A_200D_206B_200B_200F_200D_202D_200F_202E(builder, Distance.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(WaitObjectAtPosition? other) - { - int num = (((object)this == other) ? 1337677760 : 1337677767); - while (true) - { - int num2 = num; - int num3 = 1337677765; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = ((!EqualityComparer<uint>.Default.Equals(DataId, other.DataId)) ? 1337677765 : 1337677766); - break; - case 3: - num = ((!EqualityComparer<Vector3>.Default.Equals(Destination, other.Destination)) ? 1337677765 : 1337677763); - break; - case 0: - return false; - case 7: - num = 1337677767; - break; - case 6: - return EqualityComparer<float>.Default.Equals(Distance, other.Distance); - case 2: - num = (((object)other == null) ? 1337677765 : 1337677764); - break; - case 1: - num = ((!_202C_200F_206D_200F_206D_200C_206B_202D_200F_206B_202A_206D_206C_200D_202C_202D_206E_206E_200D_206A_206C_202C_202D_202D_206D_202D_202A_200F_200D_200F_206E_200D_200F_200E_206E_206A_200B_202B_200F_206E_202E(EqualityContract, other.EqualityContract)) ? 1337677765 : 1337677761); - break; - case 5: - return true; - } - } - } - - bool IEquatable<WaitObjectAtPosition>.Equals(WaitObjectAtPosition? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202D_202B_200F_200C_202C_202A_200C_202E_200D_202E_200D_202A_200D_202B_206E_202D_200B_202B_202C_202C_202D_206B_206F_202A_202A_202E_202E_202E_202A_202A_200C_202D_206F_200D_206D_200F_206C_206D_202A_200C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static CultureInfo _206A_202E_200C_206B_206F_200C_202E_206F_206E_206B_206B_200F_202B_202C_206F_200F_200E_200F_206D_202E_200F_206B_200C_200F_206F_202C_206D_200C_206B_206C_206E_202C_206D_202D_206A_200D_206D_200E_202E_206E_202E() - { - return CultureInfo.InvariantCulture; - } - - static void _206A_200C_206C_200B_200E_202A_200C_206B_200C_206C_200D_202E_200E_206F_202E_206D_206C_200C_206D_200E_200E_200E_202C_202D_206D_200B_206B_202E_202E_202E_202A_202A_200D_202A_200B_202B_206B_202D_200D_200E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206B_200F_200F_206B_200C_200B_206F_200F_202E_206D_206A_200C_200C_202C_200C_202C_206F_200D_200B_202C_206D_202C_206A_206E_206E_202D_202E_202E_200D_200D_206C_206E_202A_200D_206B_200B_200F_200D_202D_200F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _202C_200F_206D_200F_206D_200C_206B_202D_200F_206B_202A_206D_206C_200D_202C_202D_206E_206E_200D_206A_206C_202C_202D_202D_206D_202D_202A_200F_200D_200F_206E_200D_200F_200E_206E_206A_200B_202B_200F_206E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"WaitObj({DataId} at {Destination.ToString("G", CultureInfo.InvariantCulture)} < {Distance})"; } } @@ -1034,27 +295,11 @@ internal static class WaitAtEnd public override ETaskResult Update() { - int num = (gameFunctions.IsObjectAtPosition(base.Task.DataId, base.Task.Destination, base.Task.Distance) ? (-555241839) : (-555241838)); - while (true) + if (!gameFunctions.IsObjectAtPosition(base.Task.DataId, base.Task.Destination, base.Task.Distance)) { - int num2 = num; - int num3 = -555241837; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_006e; - case 1: - return ETaskResult.StillRunning; - case 2: - return ETaskResult.TaskComplete; - } - continue; - IL_006e: - num = -555241838; + return ETaskResult.StillRunning; } + return ETaskResult.TaskComplete; } public override bool ShouldInterruptOnDamage() @@ -1065,97 +310,9 @@ internal static class WaitAtEnd internal sealed record WaitQuestAccepted(ElementId ElementId) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200E_206D_206C_206E_206E_200D_200D_200C_206A_206F_202E_202E_200B_200D_206F_202B_202E_206D_206F_202C_202C_202D_206D_202D_202E_200D_206B_206E_200B_200C_200C_200D_206D_202C_202C_200B_206B_206B_202D_202A_202E(typeof(WaitQuestAccepted).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(19, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1060680501)); - defaultInterpolatedStringHandler.AppendFormatted(ElementId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206C_200B_200F_200F_202A_200B_200C_202E_200F_206A_200C_202D_206F_206C_200C_206E_206E_202B_202A_206C_200F_206B_206D_206C_200C_202C_202A_206B_202E_206B_202E_206B_202E_206D_200E_202A_206E_206D_206D_206D_202E(); - _202A_206F_206E_200E_206B_202E_206E_200E_202D_206B_206B_206F_206A_202B_202C_206D_206D_202D_206B_200C_206E_202C_200F_206D_200D_202D_202D_200C_200B_206A_202C_202E_200F_200B_200D_200E_202E_206D_206A_206F_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2080079588)); - _206B_202A_202D_206D_200C_200D_200F_202A_206E_200E_200F_206D_206D_206F_206E_206F_200B_200F_206C_206E_202D_202E_206A_206C_206A_200E_200E_200D_206F_202B_202E_200C_202A_200E_202E_200F_206E_200E_200F_200C_202E(builder, (object)ElementId); - return true; - } - - [CompilerGenerated] - public bool Equals(WaitQuestAccepted? other) - { - int num = (((object)this == other) ? 1159852687 : 1159852686); - while (true) - { - int num2 = num; - int num3 = 1159852683; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1159852686; - break; - case 5: - num = (((object)other == null) ? 1159852682 : 1159852681); - break; - case 3: - return EqualityComparer<Questionable.Model.Questing.ElementId>.Default.Equals(ElementId, other.ElementId); - case 2: - num = ((!_200E_200B_200C_200C_202D_206E_202D_202E_200F_200F_200D_200B_206B_202E_206E_200D_206B_206B_200C_200F_206C_202B_202C_200D_206B_206B_206F_200B_202B_202A_202B_202D_200E_202C_202C_200E_200B_206A_202A_200C_202E(EqualityContract, other.EqualityContract)) ? 1159852682 : 1159852680); - break; - case 1: - return false; - case 4: - return true; - } - } - } - - bool IEquatable<WaitQuestAccepted>.Equals(WaitQuestAccepted? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200E_206D_206C_206E_206E_200D_200D_200C_206A_206F_202E_202E_200B_200D_206F_202B_202E_206D_206F_202C_202C_202D_206D_202D_202E_200D_206B_206E_200B_200C_200C_200D_206D_202C_202C_200B_206B_206B_202D_202A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206C_200B_200F_200F_202A_200B_200C_202E_200F_206A_200C_202D_206F_206C_200C_206E_206E_202B_202A_206C_200F_206B_206D_206C_200C_202C_202A_206B_202E_206B_202E_206B_202E_206D_200E_202A_206E_206D_206D_206D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202A_206F_206E_200E_206B_202E_206E_200E_202D_206B_206B_206F_206A_202B_202C_206D_206D_202D_206B_200C_206E_202C_200F_206D_200D_202D_202D_200C_200B_206A_202C_202E_200F_200B_200D_200E_202E_206D_206A_206F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206B_202A_202D_206D_200C_200D_200F_202A_206E_200E_200F_206D_206D_206F_206E_206F_200B_200F_206C_206E_202D_202E_206A_206C_206A_200E_200E_200D_206F_202B_202E_200C_202A_200E_202E_200F_206E_200E_200F_200C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200E_200B_200C_200C_202D_206E_202D_202E_200F_200F_200D_200B_206B_202E_206E_200D_206B_206B_200C_200F_206C_202B_202C_200D_206B_206B_206F_200B_202B_202A_202B_202D_200E_202C_202C_200E_200B_206A_202A_200C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"WaitQuestAccepted({ElementId})"; } } @@ -1168,26 +325,12 @@ internal static class WaitAtEnd public override ETaskResult Update() { - int num = (questFunctions.IsQuestAccepted(base.Task.ElementId) ? 789688700 : 789688703); - while (true) + if (!questFunctions.IsQuestAccepted(base.Task.ElementId)) { - int num2 = num; - int num3 = 789688701; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0056; - case 2: - return ETaskResult.StillRunning; - case 1: - questController.OnQuestAccepted(base.Task.ElementId); - return ETaskResult.TaskComplete; - } - continue; - IL_0056: - num = 789688703; + return ETaskResult.StillRunning; } + questController.OnQuestAccepted(base.Task.ElementId); + return ETaskResult.TaskComplete; } public override bool ShouldInterruptOnDamage() @@ -1198,97 +341,9 @@ internal static class WaitAtEnd internal sealed record WaitQuestCompleted(ElementId ElementId) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202A_200D_202E_206C_206C_206D_200C_206B_200E_200C_200B_200B_206E_200D_202A_206D_206C_200E_200D_200F_202C_202E_200D_206A_206D_206F_200E_200B_202D_202D_200D_206B_202B_200C_206A_202E_206E_202D_200D_202E_202E(typeof(WaitQuestCompleted).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(19, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-232492991)); - defaultInterpolatedStringHandler.AppendFormatted(ElementId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206B_206D_200F_206C_200B_200C_200C_200C_202A_206A_206A_206F_206F_200D_206F_202A_206D_202E_200C_206B_206E_200D_206E_200E_206F_206C_202B_200D_206F_206B_206E_206E_206A_202C_200C_206C_200E_206B_206D_206A_202E(); - _202D_200D_200E_206C_200B_206C_202D_202E_206B_206C_206F_206C_202E_206B_202E_206E_206E_202D_206D_206B_206F_200D_200E_206E_206E_200F_206E_206F_200C_206D_200F_200B_206A_206F_206D_200F_202E_200B_200E_206B_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-812236153)); - _206A_200C_200F_206E_206A_202C_200E_206F_200D_200C_200C_206E_200E_200F_200C_202D_206C_202B_200B_202C_206A_206A_206C_202D_200F_202C_206E_202B_202A_200C_200E_206F_202E_200E_200B_202B_202E_206F_200B_206C_202E(builder, (object)ElementId); - return true; - } - - [CompilerGenerated] - public bool Equals(WaitQuestCompleted? other) - { - int num = (((object)this == other) ? 837063026 : 837063025); - while (true) - { - int num2 = num; - int num3 = 837063026; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 4: - num = ((!_202A_206F_200F_200C_200D_200E_206A_206E_202D_206D_206E_206B_200F_206A_200B_200C_200B_206B_206E_202A_202A_200D_206C_200F_206F_200C_202B_206E_206B_206A_200B_200B_200C_206A_202B_206C_206F_200B_206C_200C_202E(EqualityContract, other.EqualityContract)) ? 837063024 : 837063027); - break; - case 0: - return true; - case 1: - return EqualityComparer<Questionable.Model.Questing.ElementId>.Default.Equals(ElementId, other.ElementId); - case 5: - num = 837063025; - break; - case 3: - num = (((object)other == null) ? 837063024 : 837063030); - break; - } - } - } - - bool IEquatable<WaitQuestCompleted>.Equals(WaitQuestCompleted? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202A_200D_202E_206C_206C_206D_200C_206B_200E_200C_200B_200B_206E_200D_202A_206D_206C_200E_200D_200F_202C_202E_200D_206A_206D_206F_200E_200B_202D_202D_200D_206B_202B_200C_206A_202E_206E_202D_200D_202E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206B_206D_200F_206C_200B_200C_200C_200C_202A_206A_206A_206F_206F_200D_206F_202A_206D_202E_200C_206B_206E_200D_206E_200E_206F_206C_202B_200D_206F_206B_206E_206E_206A_202C_200C_206C_200E_206B_206D_206A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202D_200D_200E_206C_200B_206C_202D_202E_206B_206C_206F_206C_202E_206B_202E_206E_206E_202D_206D_206B_206F_200D_200E_206E_206E_200F_206E_206F_200C_206D_200F_200B_206A_206F_206D_200F_202E_200B_200E_206B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206A_200C_200F_206E_206A_202C_200E_206F_200D_200C_200C_206E_200E_200F_200C_202D_206C_202B_200B_202C_206A_206A_206C_202D_200F_202C_206E_202B_202A_200C_200E_206F_202E_200E_200B_202B_202E_206F_200B_206C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202A_206F_200F_200C_200D_200E_206A_206E_202D_206D_206E_206B_200F_206A_200B_200C_200B_206B_206E_202A_202A_200D_206C_200F_206F_200C_202B_206E_206B_206A_200B_200B_200C_206A_202B_206C_206F_200B_206C_200C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"WaitQuestComplete({ElementId})"; } } @@ -1301,27 +356,11 @@ internal static class WaitAtEnd public override ETaskResult Update() { - int num = (questFunctions.IsQuestComplete(base.Task.ElementId) ? (-224597006) : (-224597005)); - while (true) + if (!questFunctions.IsQuestComplete(base.Task.ElementId)) { - int num2 = num; - int num3 = -224597006; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0058; - case 1: - return ETaskResult.StillRunning; - case 0: - return ETaskResult.TaskComplete; - } - continue; - IL_0058: - num = -224597005; + return ETaskResult.StillRunning; } + return ETaskResult.TaskComplete; } public override bool ShouldInterruptOnDamage() @@ -1332,96 +371,9 @@ internal static class WaitAtEnd internal sealed record NextStep(ElementId ElementId, int Sequence) : ILastTask, ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200C_202D_206C_200D_200B_206D_202E_200F_202C_200D_206A_202D_202E_206D_206E_202B_206C_206D_200D_206E_206F_202A_200F_200E_206E_206D_202C_202C_202B_206A_200B_200C_200D_206B_206B_200C_200D_206B_206A_202E_202E(typeof(NextStep).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(111357141); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206C_206C_200E_200B_202B_200C_206C_202B_200D_202C_200C_202E_206D_206C_200F_202E_206B_202D_206F_202C_206A_200E_206A_202A_202A_202A_200D_202D_202A_200E_200D_200D_200C_200B_206B_202C_202E_202B_206A_202E(); - _206A_200F_200E_202A_200B_200C_206B_206A_200D_206C_202A_206C_202B_206A_200B_206F_200E_202C_206E_202E_202D_206F_206D_202E_206D_206C_202E_200D_206E_206E_200F_200D_202E_206D_202A_202D_202D_206F_206B_200D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-812236153)); - _200D_206B_200E_200D_202C_206F_200D_200B_200D_206F_202C_206F_200B_202A_202C_202E_206B_206A_200D_206D_202E_206E_202D_206E_200C_206B_206D_200D_206C_202A_202E_206D_202D_206C_202A_206C_206F_200F_202D_200C_202E(builder, (object)ElementId); - _206A_200F_200E_202A_200B_200C_206B_206A_200D_206C_202A_206C_202B_206A_200B_206F_200E_202C_206E_202E_202D_206F_206D_202E_206D_206C_202E_200D_206E_206E_200F_200D_202E_206D_202A_202D_202D_206F_206B_200D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1350191881)); - _206A_200F_200E_202A_200B_200C_206B_206A_200D_206C_202A_206C_202B_206A_200B_206F_200E_202C_206E_202E_202D_206F_206D_202E_206D_206C_202E_200D_206E_206E_200F_200D_202E_206D_202A_202D_202D_206F_206B_200D_202E(builder, Sequence.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(NextStep? other) - { - int num = (((object)this == other) ? (-1420080126) : (-1420080124)); - while (true) - { - int num2 = num; - int num3 = -1420080127; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - return false; - case 5: - num = (((object)other == null) ? (-1420080121) : (-1420080123)); - break; - case 4: - num = ((!_200B_200C_206A_206A_206E_202D_206B_206E_206B_200F_206C_202A_200C_202A_202E_200C_206A_202A_200E_202C_202D_200B_200F_206C_206A_202E_206A_200C_202C_206D_202D_200C_202D_200C_206A_206D_200F_202A_200F_202E(EqualityContract, other.EqualityContract)) ? (-1420080121) : (-1420080125)); - break; - case 0: - num = -1420080124; - break; - case 2: - num = ((!EqualityComparer<Questionable.Model.Questing.ElementId>.Default.Equals(ElementId, other.ElementId)) ? (-1420080121) : (-1420080128)); - break; - case 3: - return true; - case 1: - return EqualityComparer<int>.Default.Equals(Sequence, other.Sequence); - } - } - } - - bool IEquatable<NextStep>.Equals(NextStep? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200C_202D_206C_200D_200B_206D_202E_200F_202C_200D_206A_202D_202E_206D_206E_202B_206C_206D_200D_206E_206F_202A_200F_200E_206E_206D_202C_202C_202B_206A_200B_200C_200D_206B_206B_200C_200D_206B_206A_202E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206C_206C_200E_200B_202B_200C_206C_202B_200D_202C_200C_202E_206D_206C_200F_202E_206B_202D_206F_202C_206A_200E_206A_202A_202A_202A_200D_202D_202A_200E_200D_200D_200C_200B_206B_202C_202E_202B_206A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206A_200F_200E_202A_200B_200C_206B_206A_200D_206C_202A_206C_202B_206A_200B_206F_200E_202C_206E_202E_202D_206F_206D_202E_206D_206C_202E_200D_206E_206E_200F_200D_202E_206D_202A_202D_202D_206F_206B_200D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200D_206B_200E_200D_202C_206F_200D_200B_200D_206F_202C_206F_200B_202A_202C_202E_206B_206A_200D_206D_202E_206E_202D_206E_200C_206B_206D_200D_206C_202A_202E_206D_202D_206C_202A_206C_206F_200F_202D_200C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200B_200C_206A_206A_206E_202D_206B_206E_206B_200F_206C_202A_200C_202A_202E_200C_206A_202A_200E_202C_202D_200B_200F_206C_206A_202E_206A_200C_202C_206D_202D_200C_202D_200C_206A_206D_200F_202A_200F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "NextStep"; } } @@ -1449,7 +401,7 @@ internal static class WaitAtEnd { get { - throw _200D_200E_206D_202E_206A_202C_200E_202A_206D_202E_202B_206B_202A_202B_200C_206A_200F_206C_202C_202B_206E_206F_200F_200F_202A_202C_206B_200C_200E_200C_202D_202D_206B_200D_202C_206D_206E_206F_206B_202C_202E(); + throw new InvalidOperationException(); } } @@ -1457,19 +409,13 @@ internal static class WaitAtEnd { get { - throw _200D_200E_206D_202E_206A_202C_200E_202A_206D_202E_202B_206B_202A_202B_200C_206A_200F_206C_202C_202B_206E_206F_200F_200F_202A_202C_206B_200C_200E_200C_202D_202D_206B_200D_202C_206D_206E_206F_206B_202C_202E(); + throw new InvalidOperationException(); } } - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-550637546); - } - - static InvalidOperationException _200D_200E_206D_202E_206A_202C_200E_202A_206D_202E_202B_206B_202A_202B_200C_206A_200F_206C_202C_202B_206E_206F_200F_200F_202A_202C_206B_200C_200E_200C_202D_202D_206B_200D_202C_206D_206E_206F_206B_202C_202E() - { - return new InvalidOperationException(); + return "EndAutomation"; } } diff --git a/Questionable/Questionable.Controller.Steps.Shared/WaitAtStart.cs b/Questionable/Questionable.Controller.Steps.Shared/WaitAtStart.cs index fc8468a..dc32b5a 100644 --- a/Questionable/Questionable.Controller.Steps.Shared/WaitAtStart.cs +++ b/Questionable/Questionable.Controller.Steps.Shared/WaitAtStart.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Questionable.Controller.Steps.Common; using Questionable.Model; using Questionable.Model.Questing; @@ -14,121 +11,19 @@ internal static class WaitAtStart { public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { - int num = (_202C_202C_206A_206A_206F_200F_202E_200C_206E_202D_206E_202D_206C_206B_202C_202B_200E_200B_200C_206A_200C_206F_200D_200F_200D_200D_202A_202C_202A_202A_200E_202A_206F_202A_202B_200E_206E_202A_206C_202B_202E(step).HasValue ? 917790050 : 917790049); - while (true) + if (!step.DelaySecondsAtStart.HasValue) { - int num2 = num; - int num3 = 917790048; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0050; - case 1: - return null; - case 2: - return new WaitDelay(TimeSpan.FromSeconds(_202C_202C_206A_206A_206F_200F_202E_200C_206E_202D_206E_202D_206C_206B_202C_202B_200E_200B_200C_206A_200C_206F_200D_200F_200D_200D_202A_202C_202A_202A_200E_202A_206F_202A_202B_200E_206E_202A_206C_202B_202E(step).Value)); - } - continue; - IL_0050: - num = 917790049; + return null; } - } - - static float? _202C_202C_206A_206A_206F_200F_202E_200C_206E_202D_206E_202D_206C_206B_202C_202B_200E_200B_200C_206A_200C_206F_200D_200F_200D_200D_202A_202C_202A_202A_200E_202A_206F_202A_202B_200E_206E_202A_206C_202B_202E(QuestStep P_0) - { - return P_0.DelaySecondsAtStart; + return new WaitDelay(TimeSpan.FromSeconds(step.DelaySecondsAtStart.Value)); } } internal sealed record WaitDelay(TimeSpan Delay) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202B_200F_206B_200D_206E_206B_206D_202E_206C_200B_200F_206B_202A_200D_202C_206F_206F_206C_202B_200E_200F_206A_202B_202D_206D_206D_206D_206E_200C_206A_200E_200E_206B_202D_206F_200B_206B_206A_202B_200C_202E(typeof(WaitDelay).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(18, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-761909785)); - defaultInterpolatedStringHandler.AppendFormatted(Delay.TotalSeconds); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206A_200E_206B_202D_202D_206C_202E_206F_202A_200F_206B_200C_206B_202D_200C_206C_206D_200F_206B_206D_206D_200C_202A_200D_206B_206C_202C_200D_206B_202C_206A_206F_206A_206B_200B_206E_200B_206A_202B_206B_202E(); - _200E_202A_206F_206B_206D_200E_202D_206A_206D_206A_200B_202D_200E_206E_202D_206E_200E_200E_200D_202E_202C_200D_202E_206E_200F_200C_200D_200F_200C_200C_202A_206C_200F_206F_202B_206F_202B_202E_202A_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(484837343)); - _200E_202A_206F_206B_206D_200E_202D_206A_206D_206A_200B_202D_200E_206E_202D_206E_200E_200E_200D_202E_202C_200D_202E_206E_200F_200C_200D_200F_200C_200C_202A_206C_200F_206F_202B_206F_202B_202E_202A_202E(builder, Delay.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(WaitDelay? other) - { - int num = (((object)this == other) ? 1541411164 : 1541411161); - while (true) - { - int num2 = num; - int num3 = 1541411165; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return true; - case 2: - num = ((!_202D_200D_206A_206E_200F_202C_202B_200E_206D_200C_200E_206B_200D_206C_206D_200D_202E_206B_206F_200E_206B_200C_200C_200E_200F_206D_202D_202B_206D_200D_202C_200D_202E_206B_200B_202C_200D_202E_206A_202D_202E(EqualityContract, other.EqualityContract)) ? 1541411160 : 1541411166); - break; - case 4: - num = (((object)other == null) ? 1541411160 : 1541411167); - break; - case 5: - return false; - case 0: - num = 1541411161; - break; - case 3: - return EqualityComparer<TimeSpan>.Default.Equals(Delay, other.Delay); - } - } - } - - bool IEquatable<WaitDelay>.Equals(WaitDelay? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202B_200F_206B_200D_206E_206B_206D_202E_206C_200B_200F_206B_202A_200D_202C_206F_206F_206C_202B_200E_200F_206A_202B_202D_206D_206D_206D_206E_200C_206A_200E_200E_206B_202D_206F_200B_206B_206A_202B_200C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _206A_200E_206B_202D_202D_206C_202E_206F_202A_200F_206B_200C_206B_202D_200C_206C_206D_200F_206B_206D_206D_200C_202A_200D_206B_206C_202C_200D_206B_202C_206A_206F_206A_206B_200B_206E_200B_206A_202B_206B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200E_202A_206F_206B_206D_200E_202D_206A_206D_206A_200B_202D_200E_206E_202D_206E_200E_200E_200D_202E_202C_200D_202E_206E_200F_200C_200D_200F_200C_200C_202A_206C_200F_206F_202B_206F_202B_202E_202A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _202D_200D_206A_206E_200F_202C_202B_200E_206D_200C_200E_206B_200D_206C_206D_200D_202E_206B_206F_200E_206B_200C_200C_200E_200F_206D_202D_202B_206D_200D_202C_200D_202E_206B_200B_202C_200D_202E_206A_202D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"Wait[S](seconds: {Delay.TotalSeconds})"; } } diff --git a/Questionable/Questionable.Controller.Steps.Shared/WarpInteract.cs b/Questionable/Questionable.Controller.Steps.Shared/WarpInteract.cs index 334da98..f4cbbbe 100644 --- a/Questionable/Questionable.Controller.Steps.Shared/WarpInteract.cs +++ b/Questionable/Questionable.Controller.Steps.Shared/WarpInteract.cs @@ -1,8 +1,5 @@ using System; -using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Game.ClientState.Objects.Types; @@ -18,122 +15,14 @@ internal static class WarpInteract { internal sealed record Task(uint NpcDataId, uint WarpRowId, ushort SourceTerritoryId, ushort DestTerritoryId) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202B_206A_206A_202D_206C_206E_202A_202B_200F_206C_202E_206C_206F_206C_200E_206E_200B_202D_206E_202E_202A_202D_202A_202A_206D_202B_200E_202A_200B_200D_202A_206F_202C_202B_200C_200E_200B_206B_206B_200D_202E(typeof(Task).TypeHandle); - } - } - public bool ShouldRedoOnInterrupt() { return true; } - bool ITask.ShouldRedoOnInterrupt() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt - return this.ShouldRedoOnInterrupt(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(25, 4); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1291326579)); - defaultInterpolatedStringHandler.AppendFormatted(NpcDataId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1494383823)); - defaultInterpolatedStringHandler.AppendFormatted(WarpRowId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1403263077)); - defaultInterpolatedStringHandler.AppendFormatted(SourceTerritoryId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1089831099)); - defaultInterpolatedStringHandler.AppendFormatted(DestTerritoryId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202E_202B_202C_200C_200E_202D_202D_200E_206D_206A_206B_202A_206F_202A_200B_202C_206C_200D_200B_200D_206D_206F_206C_200B_206F_202C_202B_206B_206F_200E_206A_200B_206B_202D_202B_206C_206F_202D_200F_200E_202E(); - _200F_202A_200D_206E_200F_206A_200E_206E_206B_202B_202D_206E_206B_202A_202E_202C_206D_206C_200C_202E_200C_206A_202E_206D_206A_206F_200B_206D_200C_202A_206A_200C_202B_202B_200E_206A_200B_202A_206D_200F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(143765661)); - _200F_202A_200D_206E_200F_206A_200E_206E_206B_202B_202D_206E_206B_202A_202E_202C_206D_206C_200C_202E_200C_206A_202E_206D_206A_206F_200B_206D_200C_202A_206A_200C_202B_202B_200E_206A_200B_202A_206D_200F_202E(builder, NpcDataId.ToString()); - _200F_202A_200D_206E_200F_206A_200E_206E_206B_202B_202D_206E_206B_202A_202E_202C_206D_206C_200C_202E_200C_206A_202E_206D_206A_206F_200B_206D_200C_202A_206A_200C_202B_202B_200E_206A_200B_202A_206D_200F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(388265329)); - _200F_202A_200D_206E_200F_206A_200E_206E_206B_202B_202D_206E_206B_202A_202E_202C_206D_206C_200C_202E_200C_206A_202E_206D_206A_206F_200B_206D_200C_202A_206A_200C_202B_202B_200E_206A_200B_202A_206D_200F_202E(builder, WarpRowId.ToString()); - _200F_202A_200D_206E_200F_206A_200E_206E_206B_202B_202D_206E_206B_202A_202E_202C_206D_206C_200C_202E_200C_206A_202E_206D_206A_206F_200B_206D_200C_202A_206A_200C_202B_202B_200E_206A_200B_202A_206D_200F_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1265544613)); - _200F_202A_200D_206E_200F_206A_200E_206E_206B_202B_202D_206E_206B_202A_202E_202C_206D_206C_200C_202E_200C_206A_202E_206D_206A_206F_200B_206D_200C_202A_206A_200C_202B_202B_200E_206A_200B_202A_206D_200F_202E(builder, SourceTerritoryId.ToString()); - _200F_202A_200D_206E_200F_206A_200E_206E_206B_202B_202D_206E_206B_202A_202E_202C_206D_206C_200C_202E_200C_206A_202E_206D_206A_206F_200B_206D_200C_202A_206A_200C_202B_202B_200E_206A_200B_202A_206D_200F_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1798905925)); - _200F_202A_200D_206E_200F_206A_200E_206E_206B_202B_202D_206E_206B_202A_202E_202C_206D_206C_200C_202E_200C_206A_202E_206D_206A_206F_200B_206D_200C_202A_206A_200C_202B_202B_200E_206A_200B_202A_206D_200F_202E(builder, DestTerritoryId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Task? other) - { - int num = (((object)this == other) ? (-962767338) : (-962767343)); - while (true) - { - int num2 = num; - int num3 = -962767344; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = ((!EqualityComparer<ushort>.Default.Equals(SourceTerritoryId, other.SourceTerritoryId)) ? (-962767344) : (-962767337)); - break; - case 1: - num = (((object)other == null) ? (-962767344) : (-962767340)); - break; - case 3: - num = -962767343; - break; - case 5: - num = ((!EqualityComparer<uint>.Default.Equals(NpcDataId, other.NpcDataId)) ? (-962767344) : (-962767336)); - break; - case 7: - return EqualityComparer<ushort>.Default.Equals(DestTerritoryId, other.DestTerritoryId); - case 6: - return true; - case 0: - return false; - case 4: - num = ((!_202C_202D_200E_200D_200E_202B_202E_202C_206A_200D_200E_206A_202D_202E_200D_206A_206F_206F_202A_206D_200F_206E_200C_202E_202E_202B_206B_200C_206A_200D_202C_206F_206F_206A_202D_202B_200C_202C_202E_206E_202E(EqualityContract, other.EqualityContract)) ? (-962767344) : (-962767339)); - break; - case 8: - num = ((!EqualityComparer<uint>.Default.Equals(WarpRowId, other.WarpRowId)) ? (-962767344) : (-962767342)); - break; - } - } - } - - bool IEquatable<Task>.Equals(Task? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202B_206A_206A_202D_206C_206E_202A_202B_200F_206C_202E_206C_206F_206C_200E_206E_200B_202D_206E_202E_202A_202D_202A_202A_206D_202B_200E_202A_200B_200D_202A_206F_202C_202B_200C_200E_200B_206B_206B_200D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static void _202E_202B_202C_200C_200E_202D_202D_200E_206D_206A_206B_202A_206F_202A_200B_202C_206C_200D_200B_200D_206D_206F_206C_200B_206F_202C_202B_206B_206F_200E_206A_200B_206B_202D_202B_206C_206F_202D_200F_200E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200F_202A_200D_206E_200F_206A_200E_206E_206B_202B_202D_206E_206B_202A_202E_202C_206D_206C_200C_202E_200C_206A_202E_206D_206A_206F_200B_206D_200C_202A_206A_200C_202B_202B_200E_206A_200B_202A_206D_200F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static bool _202C_202D_200E_200D_200E_202B_202E_202C_206A_200D_200E_206A_202D_202E_200D_206A_206F_206F_202A_206D_200F_206E_200C_202E_202E_202B_206B_200C_206A_200D_202C_206F_206F_206A_202D_202B_200C_202C_202E_206E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return $"WarpInteract({NpcDataId}, warp={WarpRowId}, {SourceTerritoryId}->{DestTerritoryId})"; } } @@ -157,266 +46,146 @@ internal static class WarpInteract private bool _abortToReroute; - [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { _phase = EWarpPhase.None; _abortToReroute = false; - IPlayerCharacter playerCharacter = _206A_206F_200C_200E_202B_200F_200D_206F_206A_206F_200F_202E_202E_206D_202C_206B_206C_200D_200E_206B_202C_200D_200D_202A_202A_206E_206C_200E_206B_206A_202A_206F_202A_206A_200E_206B_206C_200D_202E_202D_202E(objectTable); - _startPosition = ((playerCharacter != null) ? _202C_200F_202B_202E_202A_206C_206B_206C_202D_202B_206A_206E_200B_206B_202A_206E_206E_202D_202D_206D_200C_202B_200B_200F_200D_206A_202B_200C_206E_200B_202D_206C_206B_200E_206C_206E_206F_202D_202E_206A_202E((IGameObject)playerCharacter) : Vector3.Zero); - _200F_200F_206B_200C_202A_200C_200E_200D_200E_206C_206B_200E_206B_206B_206B_206E_206C_206F_206E_206C_200D_206E_206B_202B_206D_200F_202E_202B_200C_200E_206C_202E_200C_206F_200F_200E_202C_206A_206B_202A_202E(warpFailureTracker, base.Task.WarpRowId); - int num = ((!_200F_200B_200F_200F_200C_206B_200D_202C_206D_200D_206F_202D_200E_200D_206E_202E_202A_200F_200F_202E_202A_200E_200F_200C_206B_206B_202A_202E_200D_206E_202D_202E_206B_202C_206D_200E_202C_200C_200C_202C_202E(warpFailureTracker, base.Task.WarpRowId)) ? (-1825905291) : (-1825905296)); - IGameObject gameObject = default(IGameObject); - while (true) + _startPosition = objectTable.LocalPlayer?.Position ?? Vector3.Zero; + warpFailureTracker.RecordAttempt(base.Task.WarpRowId); + if (warpFailureTracker.IsBlacklisted(base.Task.WarpRowId)) { - int num2 = num; - int num3 = -1825905289; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1825905296; - break; - case 7: - _202C_202E_202D_202D_200B_200F_202B_202C_202D_200B_200E_206C_206F_206C_200F_206B_202D_206D_202E_200E_202B_200F_202D_202C_202B_200E_202B_206D_202B_200C_202E_206E_206F_200C_206E_200F_206F_202B_200C_202A_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1100961719), new object[1] { base.Task.WarpRowId }); - _abortToReroute = true; - return true; - case 6: - num = ((!_206B_200F_200D_202A_206B_206E_206D_200D_206F_206D_202D_206E_206C_202A_200C_202D_206D_200B_200E_206E_202B_202A_202C_206E_200F_202C_200D_206B_202E_202C_200D_206B_206D_202C_202B_206C_200D_202D_202D_200E_202E(condition, ConditionFlag.Mounted)) ? (-1825905292) : (-1825905281)); - break; - case 4: - _200C_206C_206F_206D_200F_206B_200E_202E_200B_200B_206E_202E_206C_206C_200B_202D_202E_200F_202D_206C_202B_200C_202A_206B_202C_202D_206D_206D_202A_202B_206A_206B_200B_206B_200F_202C_206C_206F_202C_200C_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(445312876), new object[1] { base.Task.NpcDataId }); - _phase = EWarpPhase.Interacting; - _interactingStartedAt = _200E_200E_202E_202E_206C_206D_202D_206B_200C_206D_200C_200C_202D_206C_200F_202A_202D_206D_202D_200C_202A_206A_202D_202A_206A_206B_200C_206F_206A_206B_200B_200B_200D_202C_206C_206B_200E_200D_202A_200E_202E(); - num = -1825905294; - break; - case 1: - _200C_206C_206F_206D_200F_206B_200E_202E_200B_200B_206E_202E_206C_206C_200B_202D_202E_200F_202D_206C_202B_200C_202A_206B_202C_202D_206D_206D_202A_202B_206A_206B_200B_206B_200F_202C_206C_206F_202C_200C_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-514363301), new object[1] { base.Task.NpcDataId }); - return true; - case 2: - interactionUiController.SmartNavWarpRowId = base.Task.WarpRowId; - interactionUiController.SmartNavDestTerritoryId = base.Task.DestTerritoryId; - gameObject = gameFunctions.FindObjectByDataId(base.Task.NpcDataId); - num = ((gameObject != null) ? (-1825905295) : (-1825905290)); - break; - case 3: - num = ((!gameFunctions.InteractWith(gameObject)) ? (-1825905294) : (-1825905293)); - break; - case 5: - return true; - case 8: - _200C_206C_206F_206D_200F_206B_200E_202E_200B_200B_206E_202E_206C_206C_200B_202D_202E_200F_202D_206C_202B_200C_202A_206B_202C_202D_206D_206D_202A_202B_206A_206B_200B_206B_200F_202C_206C_206F_202C_200C_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1872670698), Array.Empty<object>()); - gameFunctions.Unmount(); - _phase = EWarpPhase.Unmounting; - return true; - } + logger.LogWarning("WarpInteract: warp {WarpRowId} blacklisted after repeated failures, retrying step to re-route", base.Task.WarpRowId); + _abortToReroute = true; + return true; } + interactionUiController.SmartNavWarpRowId = base.Task.WarpRowId; + interactionUiController.SmartNavDestTerritoryId = base.Task.DestTerritoryId; + IGameObject gameObject = gameFunctions.FindObjectByDataId(base.Task.NpcDataId); + if (gameObject == null) + { + logger.LogDebug("WarpInteract: NPC with DataId {DataId} not found yet, waiting", base.Task.NpcDataId); + return true; + } + if (condition[ConditionFlag.Mounted]) + { + logger.LogDebug("WarpInteract: Unmounting before warp interaction"); + gameFunctions.Unmount(); + _phase = EWarpPhase.Unmounting; + return true; + } + if (gameFunctions.InteractWith(gameObject)) + { + logger.LogDebug("WarpInteract: Interacting with NPC {DataId}", base.Task.NpcDataId); + _phase = EWarpPhase.Interacting; + _interactingStartedAt = Environment.TickCount64; + } + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { - int num = ((!_abortToReroute) ? 1701566734 : 1701566735); - IGameObject gameObject = default(IGameObject); - IGameObject gameObject2 = default(IGameObject); - IPlayerCharacter playerCharacter2 = default(IPlayerCharacter); - while (true) + if (_abortToReroute) { - int num2 = num; - int num3 = 1701566722; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + ClearContext(); + return ETaskResult.RetryStep; + } + switch (_phase) + { + case EWarpPhase.Unmounting: + { + if (condition[ConditionFlag.Mounted]) { - case 28: - num = 1701566735; - break; - case 15: - _200C_206C_206F_206D_200F_206B_200E_202E_200B_200B_206E_202E_206C_206C_200B_202D_202E_200F_202D_206C_202B_200C_202A_206B_202C_202D_206D_206D_202A_202B_206A_206B_200B_206B_200F_202C_206C_206F_202C_200C_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(262599977), new object[1] { base.Task.NpcDataId }); - _phase = EWarpPhase.Interacting; - _interactingStartedAt = _200E_200E_202E_202E_206C_206D_202D_206B_200C_206D_200C_200C_202D_206C_200F_202A_202D_206D_202D_200C_202A_206A_202D_202A_206A_206B_200C_206F_206A_206B_200B_200B_200D_202C_206C_206B_200E_200D_202A_200E_202E(); - num = 1701566725; - break; - case 11: - num = ((!_206B_200F_200D_202A_206B_206E_206D_200D_206F_206D_202D_206E_206C_202A_200C_202D_206D_200B_200E_206E_202B_202A_202C_206E_200F_202C_200D_206B_202E_202C_200D_206B_206D_202C_202B_206C_200D_202D_202D_200E_202E(condition, ConditionFlag.Mounted)) ? 1701566747 : 1701566739); - break; - case 25: - gameObject = gameFunctions.FindObjectByDataId(base.Task.NpcDataId); - num = ((gameObject != null) ? 1701566723 : 1701566728); - break; - case 12: - switch (_phase) - { - case EWarpPhase.Unmounting: - break; - default: - goto IL_019b; - case EWarpPhase.Interacting: - goto IL_02e4; - case EWarpPhase.None: - goto IL_03cd; - case EWarpPhase.WaitingForSettle: - goto IL_04bb; - } - goto case 11; - case 8: - num = ((!gameFunctions.InteractWith(gameObject2)) ? 1701566725 : 1701566733); - break; - case 0: return ETaskResult.StillRunning; - case 26: - playerCharacter2 = _206A_206F_200C_200E_202B_200F_200D_206F_206A_206F_200F_202E_202E_206D_202C_206B_206C_200D_200E_206B_202C_200D_200D_202A_202A_206E_206C_200E_206B_206A_202A_206F_202A_206A_200E_206B_206C_200D_202E_202D_202E(objectTable); - num = ((playerCharacter2 == null) ? 1701566745 : 1701566746); - break; - case 3: + } + IGameObject gameObject2 = gameFunctions.FindObjectByDataId(base.Task.NpcDataId); + if (gameObject2 == null) + { + logger.LogDebug("WarpInteract: NPC not found after unmount, waiting"); + _phase = EWarpPhase.None; + return ETaskResult.StillRunning; + } + if (gameFunctions.InteractWith(gameObject2)) + { + logger.LogDebug("WarpInteract: Interacting with NPC {DataId} after unmount", base.Task.NpcDataId); + _phase = EWarpPhase.Interacting; + _interactingStartedAt = Environment.TickCount64; + } + return ETaskResult.StillRunning; + } + case EWarpPhase.Interacting: + { + if (clientState.TerritoryType != base.Task.SourceTerritoryId) + { + logger.LogDebug("WarpInteract: Territory changed to {Territory}, warp successful", clientState.TerritoryType); + warpFailureTracker.RecordSuccess(base.Task.WarpRowId); + _phase = EWarpPhase.WaitingForSettle; + _settleAt = Environment.TickCount64 + 500; + return ETaskResult.StillRunning; + } + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + if (localPlayer != null && Vector3.Distance(localPlayer.Position, _startPosition) > 2f) + { + logger.LogDebug("WarpInteract: Position changed significantly, same-zone warp detected"); + warpFailureTracker.RecordSuccess(base.Task.WarpRowId); + _phase = EWarpPhase.WaitingForSettle; + _settleAt = Environment.TickCount64 + 500; + return ETaskResult.StillRunning; + } + if (Environment.TickCount64 - _interactingStartedAt > 30000) + { + logger.LogWarning("WarpInteract: Timed out waiting for warp transition, retrying step"); + ClearContext(); + return ETaskResult.RetryStep; + } + return ETaskResult.StillRunning; + } + case EWarpPhase.WaitingForSettle: + if (Environment.TickCount64 >= _settleAt) + { + logger.LogDebug("WarpInteract: Warp complete"); + ClearContext(); + return ETaskResult.TaskComplete; + } + return ETaskResult.StillRunning; + case EWarpPhase.None: + { + IGameObject gameObject = gameFunctions.FindObjectByDataId(base.Task.NpcDataId); + if (gameObject == null) + { + return ETaskResult.StillRunning; + } + _startPosition = objectTable.LocalPlayer?.Position ?? _startPosition; + if (condition[ConditionFlag.Mounted]) + { gameFunctions.Unmount(); _phase = EWarpPhase.Unmounting; return ETaskResult.StillRunning; - case 14: - return ETaskResult.StillRunning; - case 24: - num = ((!(Vector3.Distance(_202C_200F_202B_202E_202A_206C_206B_206C_202D_202B_206A_206E_200B_206B_202A_206E_206E_202D_202D_206D_200C_202B_200B_200F_200D_206A_202B_200C_206E_200B_202D_206C_206B_200E_206C_206E_206F_202D_202E_206A_202E((IGameObject)playerCharacter2), _startPosition) > 2f)) ? 1701566745 : 1701566741); - break; - case 23: - _200C_206C_206F_206D_200F_206B_200E_202E_200B_200B_206E_202E_206C_206C_200B_202D_202E_200F_202D_206C_202B_200C_202A_206B_202C_202D_206D_206D_202A_202B_206A_206B_200B_206B_200F_202C_206C_206F_202C_200C_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1392527076), Array.Empty<object>()); - _206E_202C_202B_200B_206E_200D_200B_202B_206B_200C_206A_206B_200F_200B_202A_206C_202C_200B_206F_200F_202B_202A_202E_202E_202B_202D_206C_206B_200B_202C_200B_206D_206C_200F_206B_202A_200B_200D_206E_202E_202E(warpFailureTracker, base.Task.WarpRowId); - _phase = EWarpPhase.WaitingForSettle; - _settleAt = _200E_200E_202E_202E_206C_206D_202D_206B_200C_206D_200C_200C_202D_206C_200F_202A_202D_206D_202D_200C_202A_206A_202D_202A_206A_206B_200C_206F_206A_206B_200B_200B_200D_202C_206C_206B_200E_200D_202A_200E_202E() + 500; - return ETaskResult.StillRunning; - case 1: - num = ((!gameFunctions.InteractWith(gameObject)) ? 1701566751 : 1701566731); - break; - case 13: - ClearContext(); - return ETaskResult.RetryStep; - case 19: - _200C_206C_206F_206D_200F_206B_200E_202E_200B_200B_206E_202E_206C_206C_200B_202D_202E_200F_202D_206C_202B_200C_202A_206B_202C_202D_206D_206D_202A_202B_206A_206B_200B_206B_200F_202C_206C_206F_202C_200C_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-276179636), Array.Empty<object>()); - ClearContext(); - return ETaskResult.TaskComplete; - case 16: - goto IL_02e4; - case 7: - return ETaskResult.StillRunning; - case 18: - return ETaskResult.StillRunning; - case 21: - _200C_206C_206F_206D_200F_206B_200E_202E_200B_200B_206E_202E_206C_206C_200B_202D_202E_200F_202D_206C_202B_200C_202A_206B_202C_202D_206D_206D_202A_202B_206A_206B_200B_206B_200F_202C_206C_206F_202C_200C_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1718836678), new object[1] { _206D_200E_200D_202E_206F_206B_206C_206D_200C_206A_202A_200D_206B_206B_206C_206E_202A_206A_206E_200D_202D_206F_202B_206F_206B_202B_206F_200F_202B_206B_200D_200D_200F_206D_206F_202B_206D_202B_202E_200C_202E(clientState) }); - _206E_202C_202B_200B_206E_200D_200B_202B_206B_200C_206A_206B_200F_200B_202A_206C_202C_200B_206F_200F_202B_202A_202E_202E_202B_202D_206C_206B_200B_202C_200B_206D_206C_200F_206B_202A_200B_200D_206E_202E_202E(warpFailureTracker, base.Task.WarpRowId); - _phase = EWarpPhase.WaitingForSettle; - _settleAt = _200E_200E_202E_202E_206C_206D_202D_206B_200C_206D_200C_200C_202D_206C_200F_202A_202D_206D_202D_200C_202A_206A_202D_202A_206A_206B_200C_206F_206A_206B_200B_200B_200D_202C_206C_206B_200E_200D_202A_200E_202E() + 500; - return ETaskResult.StillRunning; - case 29: - return ETaskResult.StillRunning; - case 4: + } + if (gameFunctions.InteractWith(gameObject)) { - IPlayerCharacter playerCharacter = _206A_206F_200C_200E_202B_200F_200D_206F_206A_206F_200F_202E_202E_206D_202C_206B_206C_200D_200E_206B_202C_200D_200D_202A_202A_206E_206C_200E_206B_206A_202A_206F_202A_206A_200E_206B_206C_200D_202E_202D_202E(objectTable); - _startPosition = ((playerCharacter != null) ? _202C_200F_202B_202E_202A_206C_206B_206C_202D_202B_206A_206E_200B_206B_202A_206E_206E_202D_202D_206D_200C_202B_200B_200F_200D_206A_202B_200C_206E_200B_202D_206C_206B_200E_206C_206E_206F_202D_202E_206A_202E((IGameObject)playerCharacter) : _startPosition); - num = ((!_206B_200F_200D_202A_206B_206E_206D_200D_206F_206D_202D_206E_206C_202A_200C_202D_206D_200B_200E_206E_202B_202A_202C_206E_200F_202C_200D_206B_202E_202C_200D_206B_206D_202C_202B_206C_200D_202D_202D_200E_202E(condition, ConditionFlag.Mounted)) ? 1701566730 : 1701566721); - break; - } - case 2: - goto IL_03cd; - case 10: - _200C_206C_206F_206D_200F_206B_200E_202E_200B_200B_206E_202E_206C_206C_200B_202D_202E_200F_202D_206C_202B_200C_202A_206B_202C_202D_206D_206D_202A_202B_206A_206B_200B_206B_200F_202C_206C_206F_202C_200C_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-538242384), Array.Empty<object>()); - _phase = EWarpPhase.None; - return ETaskResult.StillRunning; - case 9: - _200C_206C_206F_206D_200F_206B_200E_202E_200B_200B_206E_202E_206C_206C_200B_202D_202E_200F_202D_206C_202B_200C_202A_206B_202C_202D_206D_206D_202A_202B_206A_206B_200B_206B_200F_202C_206C_206F_202C_200C_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-606870985), new object[1] { base.Task.NpcDataId }); + logger.LogDebug("WarpInteract: Interacting with NPC {DataId}", base.Task.NpcDataId); _phase = EWarpPhase.Interacting; - _interactingStartedAt = _200E_200E_202E_202E_206C_206D_202D_206B_200C_206D_200C_200C_202D_206C_200F_202A_202D_206D_202D_200C_202A_206A_202D_202A_206A_206B_200C_206F_206A_206B_200B_200B_200D_202C_206C_206B_200E_200D_202A_200E_202E(); - num = 1701566751; - break; - case 5: - num = 1701566722; - break; - case 22: - return ETaskResult.StillRunning; - case 17: - return ETaskResult.StillRunning; - case 27: - num = ((_200E_200E_202E_202E_206C_206D_202D_206B_200C_206D_200C_200C_202D_206C_200F_202A_202D_206D_202D_200C_202A_206A_202D_202A_206A_206B_200C_206F_206A_206B_200B_200B_200D_202C_206C_206B_200E_200D_202A_200E_202E() - _interactingStartedAt <= 30000) ? 1701566740 : 1701566724); - break; - case 20: - goto IL_04bb; - case 6: - { - _202C_202E_202D_202D_200B_200F_202B_202C_202D_200B_200E_206C_206F_206C_200F_206B_202D_206D_202E_200E_202B_200F_202D_202C_202B_200E_202B_206D_202B_200C_202E_206E_206F_200C_206E_200F_206F_202B_200C_202A_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-417221394), Array.Empty<object>()); - ClearContext(); - return ETaskResult.RetryStep; - } - IL_02e4: - num = ((_206D_200E_200D_202E_206F_206B_206C_206D_200C_206A_202A_200D_206B_206B_206C_206E_202A_206A_206E_200D_202D_206F_202B_206F_206B_202B_206F_200F_202B_206B_200D_200D_200F_206D_206F_202B_206D_202B_202E_200C_202E(clientState) == base.Task.SourceTerritoryId) ? 1701566744 : 1701566743); - break; - IL_04bb: - num = ((_200E_200E_202E_202E_206C_206D_202D_206B_200C_206D_200C_200C_202D_206C_200F_202A_202D_206D_202D_200C_202A_206A_202D_202A_206A_206B_200C_206F_206A_206B_200B_200B_200D_202C_206C_206B_200E_200D_202A_200E_202E() < _settleAt) ? 1701566732 : 1701566737); - break; - IL_019b: - num = 1701566727; - break; - IL_03cd: - gameObject2 = gameFunctions.FindObjectByDataId(base.Task.NpcDataId); - num = ((gameObject2 != null) ? 1701566726 : 1701566736); - break; + _interactingStartedAt = Environment.TickCount64; } + return ETaskResult.StillRunning; + } + default: + return ETaskResult.StillRunning; } } - [MethodImpl(MethodImplOptions.NoInlining)] public void OnConditionChange(ConditionFlag flag, bool value) { bool flag2 = _phase == EWarpPhase.Interacting; - int num = ((!flag2) ? (-693146461) : (-693146462)); - bool flag3 = default(bool); - while (true) + if (flag2) { - int num2 = num; - int num3 = -693146464; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - flag3 = false; - num = -693146459; - break; - case 2: - num = (((uint)(flag - 31) > 1u) ? (-693146458) : (-693146460)); - break; - case 7: - num = -693146462; - break; - case 3: - { - bool num7 = flag2; - num3 = (value ? 1 : 0); - num4 = (num7 ? 1 : 0); - num = (((num4 | num3) - (num4 ^ num3) == 0) ? (-693146464) : (-693146463)); - break; - } - case 0: - return; - case 1: - _200C_206C_206F_206D_200F_206B_200E_202E_200B_200B_206E_202E_206C_206C_200B_202D_202E_200F_202D_206C_202B_200C_202A_206B_202C_202D_206D_206D_202A_202B_206A_206B_200B_206B_200F_202C_206C_206F_202C_200C_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-438663173), Array.Empty<object>()); - num = -693146464; - break; - case 5: - flag2 = flag3; - num = -693146461; - break; - case 4: - flag3 = true; - num = -693146459; - break; - } + bool flag3 = (uint)(flag - 31) <= 1u; + flag2 = flag3; + } + if (flag2 && value) + { + logger.LogDebug("WarpInteract: Interaction confirmed via condition flag"); } - } - - void IConditionChangeAware.OnConditionChange(ConditionFlag flag, bool value) - { - //ILSpy generated this explicit interface implementation from .override directive in OnConditionChange - this.OnConditionChange(flag, value); } public override bool ShouldInterruptOnDamage() @@ -429,66 +198,10 @@ internal static class WarpInteract ClearContext(); } - void IStoppableTaskExecutor.StopNow() - { - //ILSpy generated this explicit interface implementation from .override directive in StopNow - this.StopNow(); - } - private void ClearContext() { interactionUiController.SmartNavWarpRowId = null; interactionUiController.SmartNavDestTerritoryId = null; } - - static IPlayerCharacter _206A_206F_200C_200E_202B_200F_200D_206F_206A_206F_200F_202E_202E_206D_202C_206B_206C_200D_200E_206B_202C_200D_200D_202A_202A_206E_206C_200E_206B_206A_202A_206F_202A_206A_200E_206B_206C_200D_202E_202D_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static Vector3 _202C_200F_202B_202E_202A_206C_206B_206C_202D_202B_206A_206E_200B_206B_202A_206E_206E_202D_202D_206D_200C_202B_200B_200F_200D_206A_202B_200C_206E_200B_202D_206C_206B_200E_206C_206E_206F_202D_202E_206A_202E(IGameObject P_0) - { - return P_0.Position; - } - - static bool _200F_200F_206B_200C_202A_200C_200E_200D_200E_206C_206B_200E_206B_206B_206B_206E_206C_206F_206E_206C_200D_206E_206B_202B_206D_200F_202E_202B_200C_200E_206C_202E_200C_206F_200F_200E_202C_206A_206B_202A_202E(WarpFailureTracker P_0, uint P_1) - { - return P_0.RecordAttempt(P_1); - } - - static bool _200F_200B_200F_200F_200C_206B_200D_202C_206D_200D_206F_202D_200E_200D_206E_202E_202A_200F_200F_202E_202A_200E_200F_200C_206B_206B_202A_202E_200D_206E_202D_202E_206B_202C_206D_200E_202C_200C_200C_202C_202E(WarpFailureTracker P_0, uint P_1) - { - return P_0.IsBlacklisted(P_1); - } - - static void _202C_202E_202D_202D_200B_200F_202B_202C_202D_200B_200E_206C_206F_206C_200F_206B_202D_206D_202E_200E_202B_200F_202D_202C_202B_200E_202B_206D_202B_200C_202E_206E_206F_200C_206E_200F_206F_202B_200C_202A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static void _200C_206C_206F_206D_200F_206B_200E_202E_200B_200B_206E_202E_206C_206C_200B_202D_202E_200F_202D_206C_202B_200C_202A_206B_202C_202D_206D_206D_202A_202B_206A_206B_200B_206B_200F_202C_206C_206F_202C_200C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _206B_200F_200D_202A_206B_206E_206D_200D_206F_206D_202D_206E_206C_202A_200C_202D_206D_200B_200E_206E_202B_202A_202C_206E_200F_202C_200D_206B_202E_202C_200D_206B_206D_202C_202B_206C_200D_202D_202D_200E_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static long _200E_200E_202E_202E_206C_206D_202D_206B_200C_206D_200C_200C_202D_206C_200F_202A_202D_206D_202D_200C_202A_206A_202D_202A_206A_206B_200C_206F_206A_206B_200B_200B_200D_202C_206C_206B_200E_200D_202A_200E_202E() - { - return Environment.TickCount64; - } - - static uint _206D_200E_200D_202E_206F_206B_206C_206D_200C_206A_202A_200D_206B_206B_206C_206E_202A_206A_206E_200D_202D_206F_202B_206F_206B_202B_206F_200F_202B_206B_200D_200D_200F_206D_206F_202B_206D_202B_202E_200C_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static void _206E_202C_202B_200B_206E_200D_200B_202B_206B_200C_206A_206B_200F_200B_202A_206C_202C_200B_206F_200F_202B_202A_202E_202E_202B_202D_206C_206B_200B_202C_200B_206D_206C_200F_206B_202A_200B_200D_206E_202E_202E(WarpFailureTracker P_0, uint P_1) - { - P_0.RecordSuccess(P_1); - } } } diff --git a/Questionable/Questionable.Controller.Steps/InteractionProgressContext.cs b/Questionable/Questionable.Controller.Steps/InteractionProgressContext.cs index 4820a56..11a7344 100644 --- a/Questionable/Questionable.Controller.Steps/InteractionProgressContext.cs +++ b/Questionable/Questionable.Controller.Steps/InteractionProgressContext.cs @@ -20,57 +20,26 @@ internal sealed class InteractionProgressContext public unsafe static InteractionProgressContext Create(bool checkSequence) { - int num = (checkSequence ? (-177703781) : (-177703782)); - while (true) + if (!checkSequence) { - int num2 = num; - int num3 = -177703781; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -177703782; - break; - case 1: - ActionManager.Instance()->CastTimeElapsed = ActionManager.Instance()->CastTimeTotal; - num = -177703781; - break; - case 0: - return new InteractionProgressContext(checkSequence, ActionManager.Instance()->LastUsedActionSequence); - } + ActionManager.Instance()->CastTimeElapsed = ActionManager.Instance()->CastTimeTotal; } + return new InteractionProgressContext(checkSequence, ActionManager.Instance()->LastUsedActionSequence); } private unsafe static (bool, InteractionProgressContext?) FromActionUseInternal(Func<bool> func) { int lastUsedActionSequence = ActionManager.Instance()->LastUsedActionSequence; - int num = (func() ? 1923074249 : 1923074254); - while (true) + if (!func()) { - int num2 = num; - int num3 = 1923074253; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - { - int lastUsedActionSequence2 = ActionManager.Instance()->LastUsedActionSequence; - num = ((lastUsedActionSequence != lastUsedActionSequence2) ? 1923074253 : 1923074252); - break; - } - case 3: - return (false, null); - case 1: - return (true, null); - case 2: - num = 1923074254; - break; - case 0: - return (true, Create(checkSequence: true)); - } + return (false, null); } + int lastUsedActionSequence2 = ActionManager.Instance()->LastUsedActionSequence; + if (lastUsedActionSequence == lastUsedActionSequence2) + { + return (true, null); + } + return (true, Create(checkSequence: true)); } public static InteractionProgressContext? FromActionUse(Func<bool> func) @@ -81,147 +50,63 @@ internal sealed class InteractionProgressContext public static InteractionProgressContext? FromActionUseOrDefault(Func<bool> func) { (bool, InteractionProgressContext) tuple = FromActionUseInternal(func); - int num = (tuple.Item1 ? 1006213129 : 1006213130); - while (true) + if (!tuple.Item1) { - int num2 = num; - int num3 = 1006213128; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004d; - case 2: - return null; - case 1: - return tuple.Item2 ?? Create(checkSequence: false); - } - continue; - IL_004d: - num = 1006213130; + return null; } + return tuple.Item2 ?? Create(checkSequence: false); } public unsafe void Update() { - int num = (_firstUpdateDone ? 862506309 : 862506305); - int lastUsedActionSequence = default(int); - while (true) + if (!_firstUpdateDone) { - int num2 = num; - int num3 = 862506308; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + int lastUsedActionSequence = ActionManager.Instance()->LastUsedActionSequence; + if (!CheckSequence && lastUsedActionSequence > CurrentSequence) { - case 3: - num = ((lastUsedActionSequence <= CurrentSequence) ? 862506308 : 862506304); - break; - case 1: - return; - case 2: - num = 862506305; - break; - case 5: - lastUsedActionSequence = ActionManager.Instance()->LastUsedActionSequence; - num = (CheckSequence ? 862506308 : 862506311); - break; - case 0: - _firstUpdateDone = true; - num = 862506309; - break; - case 4: CheckSequence = true; CurrentSequence = lastUsedActionSequence; - num = 862506308; - break; } + _firstUpdateDone = true; } } public unsafe bool WasSuccessful() { - int num = ((!CheckSequence) ? (-1110443467) : (-1110443470)); - while (true) + if (CheckSequence && (CurrentSequence != ActionManager.Instance()->LastUsedActionSequence || CurrentSequence != ActionManager.Instance()->LastHandledActionSequence)) { - int num2 = num; - int num3 = -1110443469; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - num = ((!(ActionManager.Instance()->CastTimeElapsed > 0f)) ? (-1110443465) : (-1110443472)); - break; - case 4: - return false; - case 5: - num = -1110443470; - break; - case 0: - num = ((CurrentSequence == ActionManager.Instance()->LastHandledActionSequence) ? (-1110443467) : (-1110443471)); - break; - case 2: - return false; - case 1: - num = ((CurrentSequence != ActionManager.Instance()->LastUsedActionSequence) ? (-1110443471) : (-1110443469)); - break; - case 3: - return _206A_200C_206C_200B_202A_200D_200B_206E_200F_206B_202B_202E_202B_200B_206F_200C_206C_206D_202E_206A_206E_202B_202B_202B_202C_202C_200D_200C_202E_202C_202E_206E_200E_200D_200C_202C_200F_200F_202A_202D_202E(ActionManager.Instance()->CastTimeElapsed - ActionManager.Instance()->CastTimeTotal) < 0.001f; - } + return false; } + if (ActionManager.Instance()->CastTimeElapsed > 0f) + { + return Math.Abs(ActionManager.Instance()->CastTimeElapsed - ActionManager.Instance()->CastTimeTotal) < 0.001f; + } + return false; } public unsafe bool WasInterrupted() { - int num = ((!CheckSequence) ? (-139740651) : (-139740650)); - while (true) + if (CheckSequence && CurrentSequence == ActionManager.Instance()->LastHandledActionSequence && CurrentSequence == ActionManager.Instance()->LastUsedActionSequence) { - int num2 = num; - int num3 = -139740649; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - num = -139740650; - break; - case 4: - num = ((CurrentSequence != ActionManager.Instance()->LastUsedActionSequence) ? (-139740651) : (-139740649)); - break; - case 3: - return false; - case 0: - return false; - case 2: - num = ((ActionManager.Instance()->CastTimeElapsed != 0f) ? (-139740652) : (-139740655)); - break; - case 6: - return ActionManager.Instance()->CastTimeTotal > 0f; - case 1: - num = ((CurrentSequence != ActionManager.Instance()->LastHandledActionSequence) ? (-139740651) : (-139740653)); - break; - } + return false; } + if (ActionManager.Instance()->CastTimeElapsed == 0f) + { + return ActionManager.Instance()->CastTimeTotal > 0f; + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(12, 3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1617315869)); - defaultInterpolatedStringHandler.AppendFormatted(CheckSequence ? ((object)CurrentSequence) : global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(792471175)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1687715325)); + defaultInterpolatedStringHandler.AppendLiteral("IPCtx("); + defaultInterpolatedStringHandler.AppendFormatted(CheckSequence ? ((object)CurrentSequence) : "-"); + defaultInterpolatedStringHandler.AppendLiteral(" - "); defaultInterpolatedStringHandler.AppendFormatted(WasSuccessful()); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1403263077)); + defaultInterpolatedStringHandler.AppendLiteral(", "); defaultInterpolatedStringHandler.AppendFormatted(WasInterrupted()); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); + defaultInterpolatedStringHandler.AppendLiteral(")"); return defaultInterpolatedStringHandler.ToStringAndClear(); } - - static float _206A_200C_206C_200B_202A_200D_200B_206E_200F_206B_202B_202E_202B_200B_206F_200C_206C_206D_202E_206A_206E_202B_202B_202B_202C_202C_200D_200C_202E_202C_202E_206E_200E_200D_200C_202C_200F_200F_202A_202D_202E(float P_0) - { - return Math.Abs(P_0); - } } diff --git a/Questionable/Questionable.Controller.Steps/QuestCleanUp.cs b/Questionable/Questionable.Controller.Steps/QuestCleanUp.cs index 7ccd131..bb2a9e4 100644 --- a/Questionable/Questionable.Controller.Steps/QuestCleanUp.cs +++ b/Questionable/Questionable.Controller.Steps/QuestCleanUp.cs @@ -1,9 +1,5 @@ -using System; using System.Collections.Generic; -using System.Collections.ObjectModel; using System.Linq; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Component.GUI; using LLib.GameUI; @@ -23,301 +19,53 @@ internal static class QuestCleanUp { internal sealed class CheckAlliedSocietyMount(GameFunctions gameFunctions, AetheryteData aetheryteData, AlliedSocietyData alliedSocietyData, ILogger<CheckAlliedSocietyMount> logger) : SimpleTaskFactory() { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<(QuestSequence Sequence, int StepId, QuestStep Step), bool> _003C_003E9__5_0; - - public static Func<QuestSequence, IEnumerable<QuestStep>> _003C_003E9__5_2; - - internal bool _003CCreateTask_003Eb__5_0((QuestSequence Sequence, int StepId, QuestStep Step) x) - { - EAction? eAction = _200F_200C_200F_206A_206E_202D_206E_200E_200F_200F_206A_200B_200F_200F_200C_206B_206B_200E_202C_200F_200C_202A_206C_206D_202A_206F_202D_202D_200B_200B_206D_206E_206D_206E_202E_206A_202C_202D_206E_200E_202E(x.Step); - int num = ((!eAction.HasValue) ? (-1478106214) : (-1478106210)); - while (true) - { - int num2 = num; - int num3 = -1478106214; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - num = -1478106210; - break; - case 1: - return false; - case 3: - return true; - case 4: - { - EAction valueOrDefault = eAction.GetValueOrDefault(); - num = (_202A_200C_202B_202B_202A_200B_200C_200E_206A_202D_206C_200E_206E_202B_206A_202E_206A_202E_202B_206F_206E_206B_206A_206B_200F_200C_200B_206A_202B_200C_202E_202C_206A_206D_202B_206E_200F_202D_200D_200C_202E(valueOrDefault) ? (-1478106215) : (-1478106214)); - break; - } - case 2: - return _202D_206A_202E_202E_200B_200B_202C_200B_206B_200D_206C_202A_206C_200D_206B_200E_206B_200E_206E_202A_206D_200B_202C_206C_206D_206B_200E_200F_206F_200D_202B_206B_202D_202C_202D_200B_200E_206C_200C_206E_202E(x.Step).Contains(8593u); - case 0: - num = ((_202D_206F_206C_202B_206B_202E_200F_206B_206E_200E_200E_202E_206D_206E_202A_202C_202A_202E_200E_206D_202D_206A_200F_200F_200F_202B_206E_206C_202A_206A_202E_206E_202B_206D_200E_200F_202B_200C_200C_206D_202E(x.Step) != EInteractionType.Combat) ? (-1478106213) : (-1478106216)); - break; - } - } - } - - internal IEnumerable<QuestStep> _003CCreateTask_003Eb__5_2(QuestSequence x) - { - return _206A_200D_206B_202B_200B_206F_200C_206D_206E_206D_206B_202B_200C_202C_200E_206D_202E_206E_200C_200E_206E_202C_206A_206E_200F_206D_200B_206C_202C_202B_206C_206A_200E_202C_200B_206E_206E_200B_202C_202B_202E(x); - } - - static EAction? _200F_200C_200F_206A_206E_202D_206E_200E_200F_200F_206A_200B_200F_200F_200C_206B_206B_200E_202C_200F_200C_202A_206C_206D_202A_206F_202D_202D_200B_200B_206D_206E_206D_206E_202E_206A_202C_202D_206E_200E_202E(QuestStep P_0) - { - return P_0.Action; - } - - static bool _202A_200C_202B_202B_202A_200B_200C_200E_206A_202D_206C_200E_206E_202B_206A_202E_206A_202E_202B_206F_206E_206B_206A_206B_200F_200C_200B_206A_202B_200C_202E_202C_206A_206D_202B_206E_200F_202D_200D_200C_202E(EAction P_0) - { - return P_0.RequiresMount(); - } - - static EInteractionType _202D_206F_206C_202B_206B_202E_200F_206B_206E_200E_200E_202E_206D_206E_202A_202C_202A_202E_200E_206D_202D_206A_200F_200F_200F_202B_206E_206C_202A_206A_202E_206E_202B_206D_200E_200F_202B_200C_200C_206D_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static List<uint> _202D_206A_202E_202E_200B_200B_202C_200B_206B_200D_206C_202A_206C_200D_206B_200E_206B_200E_206E_202A_206D_200B_202C_206C_206D_206B_200E_200F_206F_200D_202B_206B_202D_202C_202D_200B_200E_206C_200C_206E_202E(QuestStep P_0) - { - return P_0.KillEnemyDataIds; - } - - static List<QuestStep> _206A_200D_206B_202B_200B_206F_200C_206D_206E_206D_206B_202B_200C_202C_200E_206D_202E_206E_200C_200E_206E_202C_206A_206E_200F_206D_200B_206C_202C_202B_206C_206A_200E_202C_200B_206E_206E_200B_202C_202B_202E(QuestSequence P_0) - { - return P_0.Steps; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass5_0 - { - public QuestSequence sequence; - - public AlliedSocietyMountConfiguration mountConfiguration; - - internal bool _003CCreateTask_003Eb__1(QuestSequence x) - { - int num = ((_206B_200E_206E_200F_200F_200E_200C_206B_206B_202B_200C_206E_200D_206B_206A_200E_206C_202D_200B_206E_200E_202E_206D_200B_200E_206F_206E_202A_202D_206D_202A_202D_202C_202E_200B_206F_200D_202B_202D_206B_202E(x) <= 0) ? (-1832592614) : (-1832592615)); - while (true) - { - int num2 = num; - int num3 = -1832592616; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 1: - return _206B_200E_206E_200F_200F_200E_200C_206B_206B_202B_200C_206E_200D_206B_206A_200E_206C_202D_200B_206E_200E_202E_206D_200B_200E_206F_206E_202A_202D_206D_202A_202D_202C_202E_200B_206F_200D_202B_202D_206B_202E(x) < _206B_200E_206E_200F_200F_200E_200C_206B_206B_202B_200C_206E_200D_206B_206A_200E_206C_202D_200B_206E_200E_202E_206D_200B_200E_206F_206E_202A_202D_206D_202A_202D_202C_202E_200B_206F_200D_202B_202D_206B_202E(sequence); - case 0: - goto IL_005f; - } - continue; - IL_005f: - num = -1832592615; - } - } - - internal bool _003CCreateTask_003Eb__3(QuestStep x) - { - int num = ((!_206A_200C_202B_206E_206A_200B_206E_206B_206C_206B_200D_202C_200D_202B_206E_200B_202D_200F_206E_206E_202E_202C_200B_206B_206C_200F_202C_200C_206A_200E_206E_202D_200C_202C_202E_202C_200E_202E_200E_200D_202E(x).HasValue) ? 2029163806 : 2029163805); - while (true) - { - int num2 = num; - int num3 = 2029163804; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0050; - case 1: - return mountConfiguration.IssuerDataIds.Contains(_206A_200C_202B_206E_206A_200B_206E_206B_206C_206B_200D_202C_200D_202B_206E_200B_202D_200F_206E_206E_202E_202C_200B_206B_206C_200F_202C_200C_206A_200E_206E_202D_200C_202C_202E_202C_200E_202E_200E_200D_202E(x).Value); - case 2: - return false; - } - continue; - IL_0050: - num = 2029163805; - } - } - - static byte _206B_200E_206E_200F_200F_200E_200C_206B_206B_202B_200C_206E_200D_206B_206A_200E_206C_202D_200B_206E_200E_202E_206D_200B_200E_206F_206E_202A_202D_206D_202A_202D_202C_202E_200B_206F_200D_202B_202D_206B_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - - static uint? _206A_200C_202B_206E_206A_200B_206E_206B_206C_206B_200D_202C_200D_202B_206E_200B_202D_200F_206E_206E_202E_202C_200B_206B_206C_200F_202C_200C_206A_200E_206E_202D_200C_202C_202E_202C_200E_202E_200E_200D_202E(QuestStep P_0) - { - return P_0.DataId; - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) { - int num = ((_200C_200B_206A_206E_202A_200C_206B_200B_200E_202C_200B_206C_206D_200D_200C_200B_200F_200F_206F_206C_206E_206A_202D_206E_202A_202C_206D_206E_206D_200E_200B_202B_206B_202D_200F_202E_200F_202D_206F_202A_202E(sequence) != 0) ? 1124122820 : 1124122829); - AlliedSocietyMountConfiguration mountConfiguration = default(AlliedSocietyMountConfiguration); - ushort? mountId = default(ushort?); - ushort valueOrDefault = default(ushort); - AetheryteTeleport.Task result = default(AetheryteTeleport.Task); - while (true) + if (sequence.Sequence == 0) { - int num2 = num; - int num3 = 1124122821; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return null; + } + ushort? mountId = gameFunctions.GetMountId(); + if (mountId.HasValue) + { + ushort valueOrDefault = mountId.GetValueOrDefault(); + if (alliedSocietyData.Mounts.TryGetValue(valueOrDefault, out AlliedSocietyMountConfiguration mountConfiguration)) { - case 6: - num = (quest.AllSequences().Where(delegate(QuestSequence x) - { - int num5 = ((_003C_003Ec__DisplayClass5_0._206B_200E_206E_200F_200F_200E_200C_206B_206B_202B_200C_206E_200D_206B_206A_200E_206C_202D_200B_206E_200E_202E_206D_200B_200E_206F_206E_202A_202D_206D_202A_202D_202C_202E_200B_206F_200D_202B_202D_206B_202E(x) <= 0) ? (-1832592614) : (-1832592615)); - while (true) - { - int num6 = num5; - int num7 = -1832592616; - int num8 = num6; - int num9 = num8 + num7; - int num10 = num8 & num7; - switch (num9 - (num10 + num10)) - { - case 2: - return false; - case 1: - return _003C_003Ec__DisplayClass5_0._206B_200E_206E_200F_200F_200E_200C_206B_206B_202B_200C_206E_200D_206B_206A_200E_206C_202D_200B_206E_200E_202E_206D_200B_200E_206F_206E_202A_202D_206D_202A_202D_202C_202E_200B_206F_200D_202B_202D_206B_202E(x) < _003C_003Ec__DisplayClass5_0._206B_200E_206E_200F_200F_200E_200C_206B_206B_202B_200C_206E_200D_206B_206A_200E_206C_202D_200B_206E_200E_202E_206D_200B_200E_206F_206E_202A_202D_206D_202A_202D_202C_202E_200B_206F_200D_202B_202D_206B_202E(sequence); - case 0: - goto IL_005f; - } - continue; - IL_005f: - num5 = -1832592615; - } - }).SelectMany((QuestSequence x) => _003C_003Ec._206A_200D_206B_202B_200B_206F_200C_206D_206E_206D_206B_202B_200C_202C_200E_206D_202E_206E_200C_200E_206E_202C_206A_206E_200F_206D_200B_206C_202C_202B_206C_206A_200E_202C_200B_206E_206E_200B_202C_202B_202E(x)) - .ToList() - .Any(delegate(QuestStep x) - { - int num5 = ((!_003C_003Ec__DisplayClass5_0._206A_200C_202B_206E_206A_200B_206E_206B_206C_206B_200D_202C_200D_202B_206E_200B_202D_200F_206E_206E_202E_202C_200B_206B_206C_200F_202C_200C_206A_200E_206E_202D_200C_202C_202E_202C_200E_202E_200E_200D_202E(x).HasValue) ? 2029163806 : 2029163805); - while (true) - { - int num6 = num5; - int num7 = 2029163804; - int num8 = num6; - int num9 = num8 + num7; - int num10 = num8 & num7; - switch (num9 - (num10 + num10)) - { - case 0: - goto IL_0050; - case 1: - return mountConfiguration.IssuerDataIds.Contains(_003C_003Ec__DisplayClass5_0._206A_200C_202B_206E_206A_200B_206E_206B_206C_206B_200D_202C_200D_202B_206E_200B_202D_200F_206E_206E_202E_202C_200B_206B_206C_200F_202C_200C_206A_200E_206E_202D_200C_202C_202E_202C_200E_202E_200E_200D_202E(x).Value); - case 2: - return false; - } - continue; - IL_0050: - num5 = 2029163805; - } - }) ? 1124122821 : 1124122831); - break; - case 4: - _202D_206D_200B_206E_202D_206D_200C_202E_202B_206A_202D_202B_200B_206A_206B_206B_202D_200D_202D_206E_206E_206F_206E_200F_206A_206F_206B_200F_202D_200E_202B_200B_206D_200C_202C_206D_200F_202C_202D_200C_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-849084313), Array.Empty<object>()); - return new Mount.UnmountTask(); - case 1: - mountId = gameFunctions.GetMountId(); - num = ((!mountId.HasValue) ? 1124122821 : 1124122816); - break; - case 8: - return null; - case 5: - valueOrDefault = mountId.GetValueOrDefault(); - num = ((!alliedSocietyData.Mounts.TryGetValue(valueOrDefault, out mountConfiguration)) ? 1124122821 : 1124122823); - break; - case 9: - num = 1124122829; - break; - case 3: - _202D_206D_200B_206E_202D_206D_200C_202E_202B_206A_202D_202B_200B_206A_206B_206B_202D_200D_202D_206E_206E_206F_206E_200F_206A_206F_206B_200F_202D_200E_202B_200B_206D_200C_202C_206D_200F_202C_202D_200C_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(614679233), new object[1] { mountConfiguration.ClosestAetheryte }); - return result; - case 2: - { - _202D_206D_200B_206E_202D_206D_200C_202E_202B_206A_202D_202B_200B_206A_206B_206B_202D_200D_202D_206E_206E_206F_206E_200F_206A_206F_206B_200F_202D_200E_202B_200B_206D_200C_202C_206D_200F_202C_202D_200C_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1718232248), new object[1] { valueOrDefault }); + logger.LogDebug("We are on a known allied society mount with id = {MountId}", valueOrDefault); EAetheryteLocation closestAetheryte = mountConfiguration.ClosestAetheryte; - result = new AetheryteTeleport.Task(closestAetheryte, _206C_206A_206C_206C_206F_200B_200E_202A_202C_206C_200F_206D_206A_200D_202B_200F_206E_206F_206B_202A_206C_202C_206C_200F_202D_206D_202D_200D_202E_206C_200D_202E_206B_202A_206F_202D_202B_200C_206E_202D_202E(aetheryteData)[closestAetheryte]); - num = ((_200C_200B_206A_206E_202A_200C_206B_200B_200E_202C_200B_206C_206D_200D_200C_200B_200F_200F_206F_206C_206E_206A_202D_206E_202A_202C_206D_206E_206D_200E_200B_202B_206B_202D_200F_202E_200F_202D_206F_202A_202E(sequence) != byte.MaxValue) ? 1124122818 : 1124122822); - break; - } - case 0: - return null; - case 7: - num = (quest.AllSteps().Any<(QuestSequence, int, QuestStep)>(delegate((QuestSequence Sequence, int StepId, QuestStep Step) x) + AetheryteTeleport.Task result = new AetheryteTeleport.Task(closestAetheryte, aetheryteData.TerritoryIds[closestAetheryte]); + if (sequence.Sequence == byte.MaxValue) { - EAction? eAction = _003C_003Ec._200F_200C_200F_206A_206E_202D_206E_200E_200F_200F_206A_200B_200F_200F_200C_206B_206B_200E_202C_200F_200C_202A_206C_206D_202A_206F_202D_202D_200B_200B_206D_206E_206D_206E_202E_206A_202C_202D_206E_200E_202E(x.Step); - int num5 = ((!eAction.HasValue) ? (-1478106214) : (-1478106210)); - while (true) + logger.LogDebug("Mount can't be used to finish quest, teleporting to {Aetheryte}", mountConfiguration.ClosestAetheryte); + return result; + } + if (!quest.AllSteps().Any<(QuestSequence, int, QuestStep)>(delegate((QuestSequence Sequence, int StepId, QuestStep Step) x) + { + EAction? action = x.Step.Action; + if (action.HasValue) { - int num6 = num5; - int num7 = -1478106214; - int num8 = num6; - int num9 = num8 + num7; - int num10 = num8 & num7; - switch (num9 - (num10 + num10)) + EAction valueOrDefault2 = action.GetValueOrDefault(); + if (valueOrDefault2.RequiresMount()) { - case 5: - num5 = -1478106210; - break; - case 1: - return false; - case 3: return true; - case 4: - { - EAction valueOrDefault2 = eAction.GetValueOrDefault(); - num5 = (_003C_003Ec._202A_200C_202B_202B_202A_200B_200C_200E_206A_202D_206C_200E_206E_202B_206A_202E_206A_202E_202B_206F_206E_206B_206A_206B_200F_200C_200B_206A_202B_200C_202E_202C_206A_206D_202B_206E_200F_202D_200D_200C_202E(valueOrDefault2) ? (-1478106215) : (-1478106214)); - break; - } - case 2: - return _003C_003Ec._202D_206A_202E_202E_200B_200B_202C_200B_206B_200D_206C_202A_206C_200D_206B_200E_206B_200E_206E_202A_206D_200B_202C_206C_206D_206B_200E_200F_206F_200D_202B_206B_202D_202C_202D_200B_200E_206C_200C_206E_202E(x.Step).Contains(8593u); - case 0: - num5 = ((_003C_003Ec._202D_206F_206C_202B_206B_202E_200F_206B_206E_200E_200E_202E_206D_206E_202A_202C_202A_202E_200E_206D_202D_206A_200F_200F_200F_202B_206E_206C_202A_206A_202E_206E_202B_206D_200E_200F_202B_200C_200C_206D_202E(x.Step) != EInteractionType.Combat) ? (-1478106213) : (-1478106216)); - break; } } - }) ? 1124122819 : 1124122817); - break; - case 10: - _202D_206D_200B_206E_202D_206D_200C_202E_202B_206A_202D_202B_200B_206A_206B_206B_202D_200D_202D_206E_206E_206F_206E_200F_206A_206F_206B_200F_202D_200E_202B_200B_206D_200C_202C_206D_200F_202C_202D_200C_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1364311746), new object[1] { mountConfiguration.ClosestAetheryte }); - return result; + return x.Step.InteractionType == EInteractionType.Combat && x.Step.KillEnemyDataIds.Contains(8593u); + })) + { + logger.LogDebug("Quest doesn't use any mount actions, unmounting"); + return new Mount.UnmountTask(); + } + if (!(from x in quest.AllSequences() + where x.Sequence > 0 && x.Sequence < sequence.Sequence + select x).SelectMany((QuestSequence x) => x.Steps).ToList().Any((QuestStep x) => x.DataId.HasValue && mountConfiguration.IssuerDataIds.Contains(x.DataId.Value))) + { + logger.LogDebug("Haven't talked to mount NPC for this allied society quest; {Aetheryte}", mountConfiguration.ClosestAetheryte); + return result; + } } } - } - - static byte _200C_200B_206A_206E_202A_200C_206B_200B_200E_202C_200B_206C_206D_200D_200C_200B_200F_200F_206F_206C_206E_206A_202D_206E_202A_202C_206D_206E_206D_200E_200B_202B_206B_202D_200F_202E_200F_202D_206F_202A_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - - static void _202D_206D_200B_206E_202D_206D_200C_202E_202B_206A_202D_202B_200B_206A_206B_206B_202D_200D_202D_206E_206E_206F_206E_200F_206A_206F_206B_200F_202D_200E_202B_200B_206D_200C_202C_206D_200F_202C_202D_200C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static ReadOnlyDictionary<EAetheryteLocation, ushort> _206C_206A_206C_206C_206F_200B_200E_202A_202C_206C_200F_206D_206A_200D_202B_200F_206E_206F_206B_202A_206C_202C_206C_200F_202D_206D_202D_200D_202E_206C_200D_202E_206B_202A_206F_202D_202B_200C_206E_202D_202E(AetheryteData P_0) - { - return P_0.TerritoryIds; + return null; } } @@ -325,175 +73,31 @@ internal static class QuestCleanUp { public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - while (true) + if (IsAddonOpen("GatheringMasterpiece")) { - int num = ((!IsAddonOpen(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(206776723))) ? 1381266981 : 1381266983); - while (true) - { - int num2 = num; - int num3 = 1381266980; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 6: - num = 1381266979; - continue; - case 8: - break; - case 1: - num = ((!IsAddonOpen(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2006049295))) ? 1381266979 : 1381266976); - continue; - case 2: - num = 1381266981; - continue; - case 0: - num = 1381266977; - continue; - case 5: - yield break; - case 3: - yield return new CloseGatheringAddonTask(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(206776723)); - goto case 2; - case 4: - yield return new CloseGatheringAddonTask(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2015501527)); - goto case 6; - case 7: - yield break; - } - break; - } + yield return new CloseGatheringAddonTask("GatheringMasterpiece"); + } + if (IsAddonOpen("Gathering")) + { + yield return new CloseGatheringAddonTask("Gathering"); } - } - - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); } private unsafe bool IsAddonOpen(string name) { - AtkUnitBase* addonPtr; - int num = ((!gameGui.TryGetAddonByName<AtkUnitBase>(name, out addonPtr)) ? 1615612648 : 1615612651); - while (true) + if (gameGui.TryGetAddonByName<AtkUnitBase>(name, out var addonPtr)) { - int num2 = num; - int num3 = 1615612650; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return false; - case 1: - return addonPtr->IsVisible; - case 0: - goto IL_0057; - } - continue; - IL_0057: - num = 1615612651; + return addonPtr->IsVisible; } + return false; } } internal sealed record CloseGatheringAddonTask(string AddonName) : ITask { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206A_200B_200B_202E_200D_206D_206D_206D_206B_202E_206E_200F_202A_202B_206A_200C_202E_202C_206B_206E_202A_206D_206C_202E_206D_200C_200F_200B_200D_200E_202C_202E_200D_200E_202A_202E_202D_200B_200B_200E_202E(typeof(CloseGatheringAddonTask).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - return _202B_202E_202E_202E_202D_200B_202D_202B_202D_206B_206A_200D_202B_200B_206E_202D_206D_202A_200D_200C_206B_206D_202E_200E_200E_202B_202A_202B_206F_200F_200B_206D_200C_202B_200D_200D_202B_200D_206E_202E_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-927770525), AddonName, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200C_206C_206F_200B_206F_202D_200F_206D_202B_206A_206E_202D_206F_206B_206A_206A_206C_206E_206C_200E_202B_200F_202D_200D_202C_202B_206B_202E_202C_206D_202D_200B_206E_200C_202D_200F_200B_200C_202A_202D_202E(); - _202C_206D_202A_202B_200F_202E_202B_200B_200D_206A_202A_206E_200B_200E_200F_206E_206A_202C_202C_206E_206D_206C_200C_202D_202A_202C_206B_202B_202B_206C_206A_206C_206C_206A_206E_206D_206E_200C_200D_200F_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(709999480)); - _202A_206A_206E_202E_202D_200D_202C_202E_200E_206C_202D_200C_200E_200C_200C_202E_206A_202C_202C_202B_206F_206D_202E_200B_206F_202A_202A_206D_206F_200B_202B_206B_206D_206C_202D_200C_202A_200D_206E_200E_202E(builder, (object)AddonName); - return true; - } - - [CompilerGenerated] - public bool Equals(CloseGatheringAddonTask? other) - { - int num = (((object)this == other) ? (-344901136) : (-344901135)); - while (true) - { - int num2 = num; - int num3 = -344901132; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return EqualityComparer<string>.Default.Equals(AddonName, other.AddonName); - case 4: - return true; - case 2: - num = -344901135; - break; - case 0: - num = ((!_200C_202E_200B_202D_202E_202C_202B_200F_202D_206C_200F_202D_206B_202C_202D_202B_206E_206D_202B_206C_200B_206D_206A_200F_202D_202C_200F_206F_202B_206B_200C_206B_200F_202B_206D_202D_206B_200B_202D_202E_202E(EqualityContract, other.EqualityContract)) ? (-344901131) : (-344901129)); - break; - case 1: - return false; - case 5: - num = (((object)other == null) ? (-344901131) : (-344901132)); - break; - } - } - } - - bool IEquatable<CloseGatheringAddonTask>.Equals(CloseGatheringAddonTask? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206A_200B_200B_202E_200D_206D_206D_206D_206B_202E_206E_200F_202A_202B_206A_200C_202E_202C_206B_206E_202A_206D_206C_202E_206D_200C_200F_200B_200D_200E_202C_202E_200D_200E_202A_202E_202D_200B_200B_200E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static string _202B_202E_202E_202E_202D_200B_202D_202B_202D_206B_206A_200D_202B_200B_206E_202D_206D_202A_200D_200C_206B_206D_202E_200E_200E_202B_202A_202B_206F_200F_200B_206D_200C_202B_200D_200D_202B_200D_206E_202E_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static void _200C_206C_206F_200B_206F_202D_200F_206D_202B_206A_206E_202D_206F_206B_206A_206A_206C_206E_206C_200E_202B_200F_202D_200D_202C_202B_206B_202E_202C_206D_202D_200B_206E_200C_202D_200F_200B_200C_202A_202D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202C_206D_202A_202B_200F_202E_202B_200B_200D_206A_202A_206E_200B_200E_200F_206E_206A_202C_202C_206E_206D_206C_200C_202D_202A_202C_206B_202B_202B_206C_206A_206C_206C_206A_206E_206D_206E_200C_200D_200F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202A_206A_206E_202E_202D_200D_202C_202E_200E_206C_202D_200C_200E_200C_200C_202E_206A_202C_202C_202B_206F_206D_202E_200B_206F_202A_202A_206D_206F_200B_202B_206B_206D_206C_202D_200C_202A_200D_206E_200E_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200C_202E_200B_202D_202E_202C_202B_200F_202D_206C_200F_202D_206B_202C_202D_202B_206E_206D_202B_206C_200B_206D_206A_200F_202D_202C_200F_206F_202B_206B_200C_206B_200F_202B_206D_202D_206B_200B_202D_202E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return "CloseAddon(" + AddonName + ")"; } } @@ -501,27 +105,12 @@ internal static class QuestCleanUp { protected unsafe override bool Start() { - AtkUnitBase* addonPtr; - int num = ((!gameGui.TryGetAddonByName<AtkUnitBase>(base.Task.AddonName, out addonPtr)) ? 2057944997 : 2057944996); - while (true) + if (gameGui.TryGetAddonByName<AtkUnitBase>(base.Task.AddonName, out var addonPtr)) { - int num2 = num; - int num3 = 2057944997; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return false; - case 1: - addonPtr->FireCallbackInt(-1); - return true; - case 2: - goto IL_0064; - } - continue; - IL_0064: - num = 2057944996; + addonPtr->FireCallbackInt(-1); + return true; } + return false; } public override ETaskResult Update() diff --git a/Questionable/Questionable.Controller.Steps/SimpleTaskFactory.cs b/Questionable/Questionable.Controller.Steps/SimpleTaskFactory.cs index 44af8de..f6556b6 100644 --- a/Questionable/Questionable.Controller.Steps/SimpleTaskFactory.cs +++ b/Questionable/Questionable.Controller.Steps/SimpleTaskFactory.cs @@ -10,46 +10,10 @@ internal abstract class SimpleTaskFactory : ITaskFactory public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { - int num = 1047990270; - ITask task = default(ITask); - while (true) + ITask task = CreateTask(quest, sequence, step); + if (task != null) { - int num2 = num; - int num3 = 1047990264; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = 1047990265; - break; - case 5: - yield break; - case 2: - yield break; - case 4: - num = 1047990269; - break; - case 6: - task = CreateTask(quest, sequence, step); - num = ((task == null) ? 1047990269 : 1047990264); - break; - case 0: - yield return task; - num = 1047990265; - break; - case 1: - { - int num5; - num = ((num5 == 1) ? 1047990268 : 1047990266); - break; - } - } + yield return task; } } - - IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) - { - //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks - return this.CreateAllTasks(quest, sequence, step); - } } diff --git a/Questionable/Questionable.Controller.Steps/TaskCreator.cs b/Questionable/Questionable.Controller.Steps/TaskCreator.cs index f19f762..42a9a44 100644 --- a/Questionable/Questionable.Controller.Steps/TaskCreator.cs +++ b/Questionable/Questionable.Controller.Steps/TaskCreator.cs @@ -1,9 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Numerics; -using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Dalamud.Plugin.Services; using Microsoft.Extensions.DependencyInjection; @@ -19,174 +16,6 @@ namespace Questionable.Controller.Steps; internal sealed class TaskCreator { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<ITask, string> _003C_003E9__6_3; - - public static Predicate<ITask> _003C_003E9__6_4; - - public static Func<ITask, bool> _003C_003E9__6_2; - - public static Func<ITask, string> _003C_003E9__6_0; - - internal string _003CCreateTasks_003Eb__6_3(ITask y) - { - return _202E_206F_206D_200D_200C_206F_206A_202C_206D_202D_200D_206F_202A_202C_202B_206C_202C_200B_206B_200F_202A_206D_200C_200B_206C_206E_202C_200F_202E_202D_202E_202E_200D_206E_202C_200F_206D_200B_200E_202E((object)y); - } - - internal bool _003CCreateTasks_003Eb__6_4(ITask x) - { - int num = ((x is MoveTask) ? 506921039 : 506921036); - bool result = default(bool); - while (true) - { - int num2 = num; - int num3 = 506921038; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = 506921036; - break; - case 3: - return result; - case 0: - result = false; - num = 506921037; - break; - case 1: - result = true; - num = 506921037; - break; - case 2: - num = ((!(x is LandTask)) ? 506921038 : 506921039); - break; - } - } - } - - internal bool _003CCreateTasks_003Eb__6_2(ITask y) - { - return y is SinglePlayerDuty.StartSinglePlayerDuty; - } - - internal string _003CCreateTasks_003Eb__6_0(ITask x) - { - return _202E_206F_206D_200D_200C_206F_206A_202C_206D_202D_200D_206F_202A_202C_202B_206C_202C_200B_206B_200F_202A_206D_200C_200B_206C_206E_202C_200F_202E_202D_202E_202E_200D_206E_202C_200F_206D_200B_200E_202E((object)x); - } - - static string _202E_206F_206D_200D_200C_206F_206A_202C_206D_202D_200D_206F_202A_202C_202B_206C_202C_200B_206B_200F_202A_206D_200C_200B_206C_206E_202C_200F_202E_202D_202E_202E_200D_206E_202C_200F_206D_200B_200E_202E(object P_0) - { - return P_0.ToString(); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass6_0 - { - public Quest quest; - - public QuestSequence sequence; - - public QuestStep step; - - public TaskCreator _003C_003E4__this; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal IEnumerable<ITask> _003CCreateTasks_003Eb__1(ITaskFactory x) - { - List<ITask> list = x.CreateAllTasks(quest, sequence, step).ToList(); - int num = ((list.Count <= 0) ? 1319758247 : 1319758242); - string text = default(string); - while (true) - { - int num2 = num; - int num3 = 1319758243; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - return list; - case 5: - _206C_200C_202A_202E_200F_200B_206B_200F_206F_200B_202E_206A_206A_202D_200B_200E_206D_202E_206C_206B_200B_202B_206F_200B_200D_200B_202E_200F_202B_200D_206C_206B_200D_202E_200C_202A_206B_202E_202C_206D_202E((ILogger)_003C_003E4__this._logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(695947620), new object[2] - { - text, - _202E_202E_206A_206C_206E_202D_200D_206E_206B_200D_202E_202E_202A_200C_202B_200F_206E_206D_206E_206D_202A_206D_202C_206A_200F_200D_200E_206F_200F_200F_202D_202E_200D_206E_206E_202B_206B_202E_200F_200D_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1403263077), list.Select((ITask y) => _003C_003Ec._202E_206F_206D_200D_200C_206F_206A_202C_206D_202D_200D_206F_202A_202C_202B_206C_202C_200B_206B_200F_202A_206D_200C_200B_206C_206E_202C_200F_202E_202D_202E_202E_200D_206E_202C_200F_206D_200B_200E_202E((object)y))) - }); - num = 1319758247; - break; - case 1: - num = ((!_202A_206E_200D_206D_206C_200C_200D_206D_206F_206C_200C_206E_206F_200F_206F_206A_206F_200F_206B_206D_202B_202A_200E_206C_202A_206D_200C_206F_200D_206C_202E_200B_200B_202E_200D_206E_200E_206B_206A_202C_202E((ILogger)_003C_003E4__this._logger, LogLevel.Trace)) ? 1319758247 : 1319758241); - break; - case 2: - text = _200F_202A_200F_206C_202C_200E_202C_200B_200F_200F_200C_200B_200C_202D_200E_206D_202D_206C_200B_200D_206E_206F_206B_200E_202D_202B_206D_202B_206F_200B_206A_206B_200F_200C_200E_202A_206E_206A_200F_202D_202E(_202B_206C_200D_200E_200B_206A_202B_206C_206C_202E_202A_202B_206B_206C_202C_202A_202A_202C_200D_202E_202D_200D_206D_206E_202A_200D_202E_202A_202A_200C_206A_206D_202A_202A_202E_202B_202E_202A_202D_206A_202E((object)x)) ?? _200E_202E_202A_200B_202B_206C_200F_202A_206C_200E_202D_200E_206F_202A_200F_200E_206F_202C_202C_202C_200D_206A_200B_206C_206B_202C_202D_202C_206D_200B_202D_202E_206D_202C_202A_202E_206A_200E_202B_206E_202E((MemberInfo)_202B_206C_200D_200E_200B_206A_202B_206C_206C_202E_202A_202B_206B_206C_202C_202A_202A_202C_200D_202E_202D_200D_206D_206E_202A_200D_202E_202A_202A_200C_206A_206D_202A_202A_202E_202B_202E_202A_202D_206A_202E((object)x)); - num = ((!_200D_202B_206B_202B_202E_202E_202B_200E_206C_202A_202D_202B_200C_202B_206C_200B_202D_202D_202D_206E_206E_206F_206F_202A_200E_202B_200C_200D_200C_202D_202B_202E_200E_200E_202E_202B_200E_206C_202B_200C_202E(text, '.', StringComparison.Ordinal)) ? 1319758246 : 1319758243); - break; - case 0: - text = _200F_202D_200F_202D_206D_206D_206D_200D_200C_202B_206E_202E_202E_206B_200F_200F_206D_206E_206C_202B_202B_206C_206A_200C_206A_202A_206E_206E_200D_206F_202B_202E_200C_206F_200C_206A_202D_206A_200D_206A_202E(text, _202B_200E_200F_200B_202D_206F_200B_200E_200F_206B_202B_200B_202A_200C_202D_200B_202B_202A_206B_200F_206E_206D_206D_202E_200F_202B_206C_200C_202D_202D_200B_202E_206D_206C_206C_200F_206C_200E_200C_202C_202E(text, '.') + 1); - num = 1319758246; - break; - case 3: - num = 1319758242; - break; - } - } - } - - static bool _202A_206E_200D_206D_206C_200C_200D_206D_206F_206C_200C_206E_206F_200F_206F_206A_206F_200F_206B_206D_202B_202A_200E_206C_202A_206D_200C_206F_200D_206C_202E_200B_200B_202E_200D_206E_200E_206B_206A_202C_202E(ILogger P_0, LogLevel P_1) - { - return P_0.IsEnabled(P_1); - } - - static Type _202B_206C_200D_200E_200B_206A_202B_206C_206C_202E_202A_202B_206B_206C_202C_202A_202A_202C_200D_202E_202D_200D_206D_206E_202A_200D_202E_202A_202A_200C_206A_206D_202A_202A_202E_202B_202E_202A_202D_206A_202E(object P_0) - { - return P_0.GetType(); - } - - static string _200F_202A_200F_206C_202C_200E_202C_200B_200F_200F_200C_200B_200C_202D_200E_206D_202D_206C_200B_200D_206E_206F_206B_200E_202D_202B_206D_202B_206F_200B_206A_206B_200F_200C_200E_202A_206E_206A_200F_202D_202E(Type P_0) - { - return P_0.FullName; - } - - static string _200E_202E_202A_200B_202B_206C_200F_202A_206C_200E_202D_200E_206F_202A_200F_200E_206F_202C_202C_202C_200D_206A_200B_206C_206B_202C_202D_202C_206D_200B_202D_202E_206D_202C_202A_202E_206A_200E_202B_206E_202E(MemberInfo P_0) - { - return P_0.Name; - } - - static bool _200D_202B_206B_202B_202E_202E_202B_200E_206C_202A_202D_202B_200C_202B_206C_200B_202D_202D_202D_206E_206E_206F_206F_202A_200E_202B_200C_200D_200C_202D_202B_202E_200E_200E_202E_202B_200E_206C_202B_200C_202E(string P_0, char P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); - } - - static int _202B_200E_200F_200B_202D_206F_200B_200E_200F_206B_202B_200B_202A_200C_202D_200B_202B_202A_206B_200F_206E_206D_206D_202E_200F_202B_206C_200C_202D_202D_200B_202E_206D_206C_206C_200F_206C_200E_200C_202C_202E(string P_0, char P_1) - { - return P_0.LastIndexOf(P_1); - } - - static string _200F_202D_200F_202D_206D_206D_206D_200D_200C_202B_206E_202E_202E_206B_200F_200F_206D_206E_206C_202B_202B_206C_206A_200C_206A_202A_206E_206E_200D_206F_202B_202E_200C_206F_200C_206A_202D_206A_200D_206A_202E(string P_0, int P_1) - { - return P_0.Substring(P_1); - } - - static string _202E_202E_206A_206C_206E_202D_200D_206E_206B_200D_202E_202E_202A_200C_202B_200F_206E_206D_206E_206D_202A_206D_202C_206A_200F_200D_200E_206F_200F_200F_202D_202E_200D_206E_206E_202B_206B_202E_200F_200D_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); - } - - static void _206C_200C_202A_202E_200F_200B_206B_200F_206F_200B_202E_206A_206A_202D_200B_200E_206D_202E_206C_206B_200B_202B_206F_200B_200D_200B_202E_200F_202B_200D_206C_206B_200D_202E_200C_202A_206B_202E_202C_206D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogTrace(P_1, P_2); - } - } - private readonly IServiceProvider _serviceProvider; private readonly TerritoryData _territoryData; @@ -206,350 +35,76 @@ internal sealed class TaskCreator _logger = logger; } - [MethodImpl(MethodImplOptions.NoInlining)] public IReadOnlyList<ITask> CreateTasks(Quest quest, byte sequenceNumber, QuestSequence? sequence, QuestStep? step, bool isSimulation = false) { - int num = ((sequence != null) ? (-1823507682) : (-1823507683)); - List<ITask> list; - SinglePlayerDuty.StartSinglePlayerDuty startSinglePlayerDuty = default(SinglePlayerDuty.StartSinglePlayerDuty); - TerritoryData.ContentFinderConditionData contentFinderConditionData = default(TerritoryData.ContentFinderConditionData); - int num9 = default(int); - uint valueOrDefault = default(uint); - uint? num8 = default(uint?); - while (true) + List<ITask> list2; + if (sequence == null) { - int num2 = num; - int num3 = -1823507684; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _chatGui.PrintError($"Path for quest '{quest.Info.Name}' ({quest.Id}) does not contain sequence {sequenceNumber}, please report this.", "Questionable", 576); + int num = 1; + List<ITask> list = new List<ITask>(num); + CollectionsMarshal.SetCount(list, num); + CollectionsMarshal.AsSpan(list)[0] = new WaitAtEnd.WaitNextStepOrSequence(); + list2 = list; + } + else if (step == null) + { + int num = 1; + List<ITask> list3 = new List<ITask>(num); + CollectionsMarshal.SetCount(list3, num); + CollectionsMarshal.AsSpan(list3)[0] = new WaitAtEnd.WaitNextStepOrSequence(); + list2 = list3; + } + else + { + using IServiceScope serviceScope = _serviceProvider.CreateScope(); + list2 = serviceScope.ServiceProvider.GetRequiredService<IEnumerable<ITaskFactory>>().SelectMany(delegate(ITaskFactory x) { - default: - continue; - case 0: - num = -1823507683; - continue; - case 2: - num = ((step != null) ? (-1823507688) : (-1823507681)); - continue; - case 1: - { - IChatGui chatGui = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(68, 3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(112819953)); - defaultInterpolatedStringHandler.AppendFormatted(quest.Info.Name); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-151888444)); - defaultInterpolatedStringHandler.AppendFormatted(quest.Id); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(457619416)); - defaultInterpolatedStringHandler.AppendFormatted(sequenceNumber); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1870384358)); - _206D_202E_200E_206F_202C_202B_200D_206E_206B_200B_206E_200E_200E_206A_200D_202A_200E_202B_206A_206F_200E_200F_202C_206D_206F_206C_206A_200E_206C_200C_200B_200D_206F_206E_206A_206E_200F_206D_206A_200C_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); - int num17 = 1; - List<ITask> list5 = new List<ITask>(num17); - CollectionsMarshal.SetCount(list5, num17); - CollectionsMarshal.AsSpan(list5)[0] = new WaitAtEnd.WaitNextStepOrSequence(); - list = list5; - break; - } - case 3: - { - int num17 = 1; - List<ITask> list4 = new List<ITask>(num17); - CollectionsMarshal.SetCount(list4, num17); - CollectionsMarshal.AsSpan(list4)[0] = new WaitAtEnd.WaitNextStepOrSequence(); - list = list4; - break; - } - case 4: - { - IServiceScope serviceScope = _202C_202E_206F_206C_202E_200F_206B_202A_200F_202E_200B_200D_206E_206A_200C_206C_200E_200C_200F_200C_202C_206F_206B_206A_202A_202C_206D_206E_206B_206F_202B_202A_202C_202A_202D_202E_206F_206D_202B_206A_202E(_serviceProvider); - try + List<ITask> list4 = x.CreateAllTasks(quest, sequence, step).ToList(); + if (list4.Count > 0 && _logger.IsEnabled(LogLevel.Trace)) { - list = _202E_202C_202D_206A_200C_206C_200E_202A_202D_202B_206A_206F_206B_200B_200D_200B_200E_200D_202A_202D_200D_200B_202D_206E_206F_202A_200C_206F_206F_200B_200B_200B_202D_206D_200C_206F_206D_206A_206A_206A_202E(serviceScope).GetRequiredService<IEnumerable<ITaskFactory>>().SelectMany([MethodImpl(MethodImplOptions.NoInlining)] (ITaskFactory x) => + string text = x.GetType().FullName ?? x.GetType().Name; + if (text.Contains('.', StringComparison.Ordinal)) { - List<ITask> list6 = x.CreateAllTasks(quest, sequence, step).ToList(); - int num21 = ((list6.Count <= 0) ? 1319758247 : 1319758242); - string text3 = default(string); - while (true) - { - int num22 = num21; - int num23 = 1319758243; - int num24 = num22; - int num25 = num24 + num23; - int num26 = num24 & num23; - switch (num25 - (num26 + num26)) - { - case 4: - return list6; - case 5: - _003C_003Ec__DisplayClass6_0._206C_200C_202A_202E_200F_200B_206B_200F_206F_200B_202E_206A_206A_202D_200B_200E_206D_202E_206C_206B_200B_202B_206F_200B_200D_200B_202E_200F_202B_200D_206C_206B_200D_202E_200C_202A_206B_202E_202C_206D_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(695947620), new object[2] - { - text3, - _003C_003Ec__DisplayClass6_0._202E_202E_206A_206C_206E_202D_200D_206E_206B_200D_202E_202E_202A_200C_202B_200F_206E_206D_206E_206D_202A_206D_202C_206A_200F_200D_200E_206F_200F_200F_202D_202E_200D_206E_206E_202B_206B_202E_200F_200D_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1403263077), list6.Select((ITask y) => _003C_003Ec._202E_206F_206D_200D_200C_206F_206A_202C_206D_202D_200D_206F_202A_202C_202B_206C_202C_200B_206B_200F_202A_206D_200C_200B_206C_206E_202C_200F_202E_202D_202E_202E_200D_206E_202C_200F_206D_200B_200E_202E((object)y))) - }); - num21 = 1319758247; - break; - case 1: - num21 = ((!_003C_003Ec__DisplayClass6_0._202A_206E_200D_206D_206C_200C_200D_206D_206F_206C_200C_206E_206F_200F_206F_206A_206F_200F_206B_206D_202B_202A_200E_206C_202A_206D_200C_206F_200D_206C_202E_200B_200B_202E_200D_206E_200E_206B_206A_202C_202E((ILogger)_logger, LogLevel.Trace)) ? 1319758247 : 1319758241); - break; - case 2: - text3 = _003C_003Ec__DisplayClass6_0._200F_202A_200F_206C_202C_200E_202C_200B_200F_200F_200C_200B_200C_202D_200E_206D_202D_206C_200B_200D_206E_206F_206B_200E_202D_202B_206D_202B_206F_200B_206A_206B_200F_200C_200E_202A_206E_206A_200F_202D_202E(_003C_003Ec__DisplayClass6_0._202B_206C_200D_200E_200B_206A_202B_206C_206C_202E_202A_202B_206B_206C_202C_202A_202A_202C_200D_202E_202D_200D_206D_206E_202A_200D_202E_202A_202A_200C_206A_206D_202A_202A_202E_202B_202E_202A_202D_206A_202E((object)x)) ?? _003C_003Ec__DisplayClass6_0._200E_202E_202A_200B_202B_206C_200F_202A_206C_200E_202D_200E_206F_202A_200F_200E_206F_202C_202C_202C_200D_206A_200B_206C_206B_202C_202D_202C_206D_200B_202D_202E_206D_202C_202A_202E_206A_200E_202B_206E_202E((MemberInfo)_003C_003Ec__DisplayClass6_0._202B_206C_200D_200E_200B_206A_202B_206C_206C_202E_202A_202B_206B_206C_202C_202A_202A_202C_200D_202E_202D_200D_206D_206E_202A_200D_202E_202A_202A_200C_206A_206D_202A_202A_202E_202B_202E_202A_202D_206A_202E((object)x)); - num21 = ((!_003C_003Ec__DisplayClass6_0._200D_202B_206B_202B_202E_202E_202B_200E_206C_202A_202D_202B_200C_202B_206C_200B_202D_202D_202D_206E_206E_206F_206F_202A_200E_202B_200C_200D_200C_202D_202B_202E_200E_200E_202E_202B_200E_206C_202B_200C_202E(text3, '.', StringComparison.Ordinal)) ? 1319758246 : 1319758243); - break; - case 0: - text3 = _003C_003Ec__DisplayClass6_0._200F_202D_200F_202D_206D_206D_206D_200D_200C_202B_206E_202E_202E_206B_200F_200F_206D_206E_206C_202B_202B_206C_206A_200C_206A_202A_206E_206E_200D_206F_202B_202E_200C_206F_200C_206A_202D_206A_200D_206A_202E(text3, _003C_003Ec__DisplayClass6_0._202B_200E_200F_200B_202D_206F_200B_200E_200F_206B_202B_200B_202A_200C_202D_200B_202B_202A_206B_200F_206E_206D_206D_202E_200F_202B_206C_200C_202D_202D_200B_202E_206D_206C_206C_200F_206C_200E_200C_202C_202E(text3, '.') + 1); - num21 = 1319758246; - break; - case 3: - num21 = 1319758242; - break; - } - } - }).ToList(); - num = ((!isSimulation) ? (-675834383) : (-675834384)); - while (true) + text = text.Substring(text.LastIndexOf('.') + 1); + } + _logger.LogTrace("Factory {FactoryName} created Task {TaskNames}", text, string.Join(", ", list4.Select((ITask y) => y.ToString()))); + } + return list4; + }).ToList(); + if (isSimulation && step != null) + { + uint? dataId = step.DataId; + if (dataId.HasValue) + { + uint valueOrDefault = dataId.GetValueOrDefault(); + if (step.Position.HasValue) { - int num5 = num; - num3 = -675834382; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) + int num2 = list2.FindLastIndex((ITask x) => (x is MoveTask || x is LandTask) ? true : false); + if (num2 >= 0) { - case 4: - num = ((!_territoryData.TryGetContentFinderCondition(startSinglePlayerDuty.ContentFinderConditionId, out contentFinderConditionData)) ? (-675834379) : (-675834374)); - break; - case 8: - num = ((_202B_202A_200B_206E_200B_206B_202D_202A_202A_206B_200E_202D_202C_206F_206D_206C_202B_202C_202A_200B_200B_202B_206B_202D_206A_202B_200E_200B_206A_200D_202C_200B_206B_200E_202C_200F_200F_206E_206E_206A_202E(_clientState) != contentFinderConditionData.TerritoryId) ? (-675834379) : (-675834382)); - break; - case 9: - num9 = list.FindLastIndex(delegate(ITask x) - { - int num21 = ((x is MoveTask) ? 506921039 : 506921036); - bool result = default(bool); - while (true) - { - int num22 = num21; - int num23 = 506921038; - int num24 = num22; - int num25 = num24 + num23; - int num26 = num24 & num23; - switch (num25 - (num26 + num26)) - { - case 4: - num21 = 506921036; - break; - case 3: - return result; - case 0: - result = false; - num21 = 506921037; - break; - case 1: - result = true; - num21 = 506921037; - break; - case 2: - num21 = ((!(x is LandTask)) ? 506921038 : 506921039); - break; - } - } - }); - num = ((num9 < 0) ? (-675834383) : (-675834381)); - break; - case 10: - valueOrDefault = num8.GetValueOrDefault(); - num = ((!_206B_202C_206F_200C_202A_200B_200D_206C_206F_206F_200F_200B_200C_202D_206D_206D_206F_202E_206B_200C_206C_206A_200F_202D_202C_206F_206D_206A_200F_206B_206D_200C_206D_206A_200D_206A_200F_200C_206C_200D_202E(step).HasValue) ? (-675834383) : (-675834373)); - break; - case 3: - startSinglePlayerDuty = list.Where((ITask y) => y is SinglePlayerDuty.StartSinglePlayerDuty).Cast<SinglePlayerDuty.StartSinglePlayerDuty>().FirstOrDefault(); - num = ((!(startSinglePlayerDuty != null)) ? (-675834379) : (-675834378)); - break; - case 0: - { - int num13 = list.IndexOf(startSinglePlayerDuty); - ILogger<TaskCreator> logger = _logger; - string text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-604584645); - object[] array = new object[2]; - num3 = 1; - num4 = num13; - array[0] = (num4 | num3) + (num4 & num3); - array[1] = list.Count; - _202E_206B_206B_202C_202D_206C_206E_202D_202C_200C_206E_206B_200C_206F_206D_206B_206F_200C_200D_202D_202B_206B_202E_202A_202D_202B_206D_200D_202E_206A_200C_200B_206C_200E_200F_202E_206E_206C_200C_206B_202E((ILogger)logger, text, array); - List<ITask> list3 = list; - num3 = 1; - num4 = num13; - int num14 = num4 ^ num3; - int num15 = num4 & num3; - list3.RemoveRange(0, num14 + (num15 + num15)); - _206B_206E_200C_206E_200C_206F_200D_206F_200F_202D_200E_206E_206B_206E_206E_206E_206F_206D_200D_200B_202B_200F_206E_202B_206E_200D_206F_200B_206E_200C_206D_202C_202B_202C_206F_200E_200C_202A_202E_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(896688647), new object[2] - { - list.FirstOrDefault(), - list.Count - }); - num = -675834379; - break; + list2.Insert(num2 + 1, new SkipMissingObject.Task(valueOrDefault, quest.Id, sequence.Sequence)); } - case 6: - num = -675834384; - break; - case 1: - { - List<ITask> list2 = list; - int num10 = num9; - num3 = 1; - num4 = num10; - int num11 = num4 ^ num3; - int num12 = num4 & num3; - list2.Insert(num11 + (num12 + num12), new SkipMissingObject.Task(valueOrDefault, quest.Id, _206E_200F_200D_200F_206D_202B_200C_202E_206F_202E_206B_200B_200B_206B_200E_202C_206D_200E_202E_200D_200D_206D_206E_206A_202A_202C_202E_206E_200D_206B_200F_206E_200B_202E_200E_200E_200E_206E_200C_206A_202E(sequence))); - num = -675834383; - break; - } - case 2: - num = ((step == null) ? (-675834383) : (-675834377)); - break; - case 5: - num8 = _200B_200D_202D_202C_200B_200E_206D_206D_206C_200D_206C_202C_202B_206E_202C_206E_200C_200F_200D_206D_206E_206B_202A_200D_206B_200C_200D_202D_200D_206C_206D_202C_202E_206D_202D_206D_200F_202C_206B_200C_202E(step); - num = ((!num8.HasValue) ? (-675834383) : (-675834376)); - break; - case 7: - goto end_IL_020b; - } - continue; - end_IL_020b: - break; } } - finally - { - num = ((serviceScope == null) ? 1744804945 : 1744804946); - while (true) - { - int num16 = num; - num3 = 1744804947; - num4 = num16; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_0503; - case 1: - _200C_202B_200D_206A_206F_202D_206D_206D_206A_202B_202B_202D_202E_206C_200E_200C_200E_200F_206F_200F_200D_200F_206E_206C_202A_200E_206C_206A_206C_202E_206E_206A_206A_200C_202C_206E_206C_206E_200E_206C_202E((IDisposable)serviceScope); - num = 1744804945; - break; - case 0: - num = 1744804946; - break; - } - continue; - end_IL_0503: - break; - } - } - break; } + SinglePlayerDuty.StartSinglePlayerDuty startSinglePlayerDuty = list2.Where((ITask y) => y is SinglePlayerDuty.StartSinglePlayerDuty).Cast<SinglePlayerDuty.StartSinglePlayerDuty>().FirstOrDefault(); + if (startSinglePlayerDuty != null && _territoryData.TryGetContentFinderCondition(startSinglePlayerDuty.ContentFinderConditionId, out TerritoryData.ContentFinderConditionData contentFinderConditionData) && _clientState.TerritoryType == contentFinderConditionData.TerritoryId) + { + int num3 = list2.IndexOf(startSinglePlayerDuty); + _logger.LogWarning("Skipping {SkippedTaskCount} out of {TotalCount} tasks, questionable was started while in single player duty", num3 + 1, list2.Count); + list2.RemoveRange(0, num3 + 1); + _logger.LogDebug("Next actual task: {NextTask}, total tasks left: {RemainingTaskCount}", list2.FirstOrDefault(), list2.Count); } - break; } - num = ((list.Count != 0) ? 1667642531 : 1667642529); - while (true) + if (list2.Count == 0) { - int num18 = num; - int num3 = 1667642530; - int num4 = num18; - int num19 = num4 + num3; - int num20 = num4 & num3; - switch (num19 - (num20 + num20)) - { - case 0: - num = 1667642529; - break; - case 1: - { - ILogger<TaskCreator> logger2 = _logger; - string text2 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1018938481); - object[] obj = new object[4] { quest.Id, sequenceNumber, null, null }; - int? obj2; - if (step == null) - { - obj2 = null; - } - else - { - QuestSequence? questSequence = sequence; - obj2 = ((questSequence != null) ? new int?(_206A_206B_202A_206C_200E_206D_202A_202C_202E_206E_200F_202E_206B_206A_200F_202D_206F_202E_202A_202C_206F_200B_202E_206E_200F_202E_200C_206C_206A_200E_202D_200E_206A_202B_206B_200E_200E_206C_206A_202E(questSequence).IndexOf(step)) : ((int?)null)); - } - obj[2] = obj2; - obj[3] = _200C_206C_202D_206D_200B_202C_202E_206A_202B_202B_206C_200E_200C_206F_206F_200C_200C_200F_206F_200D_206C_206E_206B_200B_202A_202E_206F_206A_202B_200E_202A_206D_206B_206A_200E_206F_202E_202D_206B_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1095822044), list.Select((ITask x) => _003C_003Ec._202E_206F_206D_200D_200C_206F_206A_202C_206D_202D_200D_206F_202A_202C_202B_206C_202C_200B_206B_200F_202A_206D_200C_200B_206C_206E_202C_200F_202E_202D_202E_202E_200D_206E_202C_200F_206D_200B_200E_202E((object)x))); - _206B_206E_200C_206E_200C_206F_200D_206F_200F_202D_200E_206E_206B_206E_206E_206E_206F_206D_200D_200B_202B_200F_206E_202B_206E_200D_206F_200B_206E_200C_206D_202C_202B_202C_206F_200E_200C_202A_202E_200F_202E((ILogger)logger2, text2, obj); - num = 1667642528; - break; - } - case 2: - return list; - case 3: - _206B_206E_200C_206E_200C_206F_200D_206F_200F_202D_200E_206E_206B_206E_206E_206E_206F_206D_200D_200B_202B_200F_206E_202B_206E_200D_206F_200B_206E_200C_206D_202C_202B_202C_206F_200E_200C_202A_202E_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1026915460), Array.Empty<object>()); - num = 1667642528; - break; - } + _logger.LogDebug("Nothing to execute for step?"); } - } - - static void _206D_202E_200E_206F_202C_202B_200D_206E_206B_200B_206E_200E_200E_206A_200D_202A_200E_202B_206A_206F_200E_200F_202C_206D_206F_206C_206A_200E_206C_200C_200B_200D_206F_206E_206A_206E_200F_206D_206A_200C_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } - - static IServiceScope _202C_202E_206F_206C_202E_200F_206B_202A_200F_202E_200B_200D_206E_206A_200C_206C_200E_200C_200F_200C_202C_206F_206B_206A_202A_202C_206D_206E_206B_206F_202B_202A_202C_202A_202D_202E_206F_206D_202B_206A_202E(IServiceProvider P_0) - { - return P_0.CreateScope(); - } - - static IServiceProvider _202E_202C_202D_206A_200C_206C_200E_202A_202D_202B_206A_206F_206B_200B_200D_200B_200E_200D_202A_202D_200D_200B_202D_206E_206F_202A_200C_206F_206F_200B_200B_200B_202D_206D_200C_206F_206D_206A_206A_206A_202E(IServiceScope P_0) - { - return P_0.ServiceProvider; - } - - static uint? _200B_200D_202D_202C_200B_200E_206D_206D_206C_200D_206C_202C_202B_206E_202C_206E_200C_200F_200D_206D_206E_206B_202A_200D_206B_200C_200D_202D_200D_206C_206D_202C_202E_206D_202D_206D_200F_202C_206B_200C_202E(QuestStep P_0) - { - return P_0.DataId; - } - - static Vector3? _206B_202C_206F_200C_202A_200B_200D_206C_206F_206F_200F_200B_200C_202D_206D_206D_206F_202E_206B_200C_206C_206A_200F_202D_202C_206F_206D_206A_200F_206B_206D_200C_206D_206A_200D_206A_200F_200C_206C_200D_202E(QuestStep P_0) - { - return P_0.Position; - } - - static byte _206E_200F_200D_200F_206D_202B_200C_202E_206F_202E_206B_200B_200B_206B_200E_202C_206D_200E_202E_200D_200D_206D_206E_206A_202A_202C_202E_206E_200D_206B_200F_206E_200B_202E_200E_200E_200E_206E_200C_206A_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - - static uint _202B_202A_200B_206E_200B_206B_202D_202A_202A_206B_200E_202D_202C_206F_206D_206C_202B_202C_202A_200B_200B_202B_206B_202D_206A_202B_200E_200B_206A_200D_202C_200B_206B_200E_202C_200F_200F_206E_206E_206A_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static void _202E_206B_206B_202C_202D_206C_206E_202D_202C_200C_206E_206B_200C_206F_206D_206B_206F_200C_200D_202D_202B_206B_202E_202A_202D_202B_206D_200D_202E_206A_200C_200B_206C_200E_200F_202E_206E_206C_200C_206B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static void _206B_206E_200C_206E_200C_206F_200D_206F_200F_202D_200E_206E_206B_206E_206E_206E_206F_206D_200D_200B_202B_200F_206E_202B_206E_200D_206F_200B_206E_200C_206D_202C_202B_202C_206F_200E_200C_202A_202E_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _200C_202B_200D_206A_206F_202D_206D_206D_206A_202B_202B_202D_202E_206C_200E_200C_200E_200F_206F_200F_200D_200F_206E_206C_202A_200E_206C_206A_206C_202E_206E_206A_206A_200C_202C_206E_206C_206E_200E_206C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static List<QuestStep> _206A_206B_202A_206C_200E_206D_202A_202C_202E_206E_200F_202E_206B_206A_200F_202D_206F_202E_202A_202C_206F_200B_202E_206E_200F_202E_200C_206C_206A_200E_202D_200E_206A_202B_206B_200E_200E_206C_206A_202E(QuestSequence P_0) - { - return P_0.Steps; - } - - static string _200C_206C_202D_206D_200B_202C_202E_206A_202B_202B_206C_200E_200C_206F_206F_200C_200C_200F_206F_200D_206C_206E_206B_200B_202A_202E_206F_206A_202B_200E_202A_206D_206B_206A_200E_206F_202E_202D_206B_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); + else + { + _logger.LogDebug("Tasks for {QuestId}, {Sequence}, {Step}: {Tasks}", quest.Id, sequenceNumber, (step == null) ? ((int?)null) : sequence?.Steps.IndexOf(step), string.Join(", ", list2.Select((ITask x) => x.ToString()))); + } + return list2; } } diff --git a/Questionable/Questionable.Controller.Steps/TaskExecutor.cs b/Questionable/Questionable.Controller.Steps/TaskExecutor.cs index 7582419..2f87093 100644 --- a/Questionable/Questionable.Controller.Steps/TaskExecutor.cs +++ b/Questionable/Questionable.Controller.Steps/TaskExecutor.cs @@ -1,5 +1,4 @@ using System; -using System.Runtime.CompilerServices; namespace Questionable.Controller.Steps; @@ -16,142 +15,48 @@ internal abstract class TaskExecutor<T> : ITaskExecutor where T : class, ITask public virtual bool WasInterrupted() { InteractionProgressContext progressContext = ProgressContext; - int num = ((progressContext == null) ? 1406481972 : 1406481975); - while (true) + if (progressContext != null) { - int num2 = num; - int num3 = 1406481974; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0048; - case 1: - progressContext.Update(); - return progressContext.WasInterrupted(); - case 2: - return false; - } - continue; - IL_0048: - num = 1406481975; + progressContext.Update(); + return progressContext.WasInterrupted(); } - } - - bool ITaskExecutor.WasInterrupted() - { - //ILSpy generated this explicit interface implementation from .override directive in WasInterrupted - return this.WasInterrupted(); + return false; } public virtual bool HasTimedOut(float timeoutSeconds) { - int num = ((ProgressContext != null) ? (-1028990417) : (-1028990418)); - while (true) + if (ProgressContext == null) { - int num2 = num; - int num3 = -1028990417; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return _200F_202B_202E_202E_206A_202A_202D_202A_202B_202A_200D_206F_206A_202A_206D_202C_206B_200F_206E_200B_200D_206E_202C_202E_202E_200B_202B_200D_202E_206F_206D_206F_202E_200E_202C_202C_202C_200C_206C_206B_202E() - _lastProgressAt > (long)(timeoutSeconds * 1000f); - case 1: - return false; - case 2: - goto IL_0061; - } - continue; - IL_0061: - num = -1028990418; + return false; } - } - - bool ITaskExecutor.HasTimedOut(float timeoutSeconds) - { - //ILSpy generated this explicit interface implementation from .override directive in HasTimedOut - return this.HasTimedOut(timeoutSeconds); + return Environment.TickCount64 - _lastProgressAt > (long)(timeoutSeconds * 1000f); } protected void ResetProgressTimer() { - _lastProgressAt = _200F_202B_202E_202E_206A_202A_202D_202A_202B_202A_200D_206F_206A_202A_206D_202C_206B_200F_206E_200B_200D_206E_202C_202E_202E_200B_202B_200D_202E_206F_206D_206F_202E_200E_202C_202C_202C_200C_206C_206B_202E(); + _lastProgressAt = Environment.TickCount64; } public Type GetTaskType() { - return _200D_206E_206F_200E_206B_202A_202D_200C_202E_202B_206D_206F_200D_206A_202D_200E_206D_200E_206F_200F_206E_202A_200D_206F_200F_200C_206F_202C_206D_206F_206C_206F_200D_200B_202E_200D_202C_206C_202D_206D_202E(typeof(T).TypeHandle); - } - - Type ITaskExecutor.GetTaskType() - { - //ILSpy generated this explicit interface implementation from .override directive in GetTaskType - return this.GetTaskType(); + return typeof(T); } protected abstract bool Start(); - [MethodImpl(MethodImplOptions.NoInlining)] public bool Start(ITask task) { - T val = task as T; - int num = ((val == null) ? 746010718 : 746010717); - while (true) + if (task is T task2) { - int num2 = num; - int num3 = 746010719; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(19, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(78496127)); - defaultInterpolatedStringHandler.AppendFormatted(_202D_202E_206C_206C_202A_202B_200F_202D_200F_200C_206F_206B_206B_206D_200C_206F_200E_200E_202B_202C_206A_200E_206B_200F_206D_202B_200C_202D_202B_202E_200F_200F_206E_202E_206C_200B_202E_200D_202C_200F_202E((object)task)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-718265658)); - defaultInterpolatedStringHandler.AppendFormatted(_200D_206E_206F_200E_206B_202A_202D_200C_202E_202B_206D_206F_200D_206A_202D_200E_206D_200E_206F_200F_206E_202A_200D_206F_200F_200C_206F_202C_206D_206F_206C_206F_200D_200B_202E_200D_202C_206C_202D_206D_202E(typeof(T).TypeHandle)); - throw new TaskException(defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 2: - Task = val; - ProgressContext = null; - _lastProgressAt = _200F_202B_202E_202E_206A_202A_202D_202A_202B_202A_200D_206F_206A_202A_206D_202C_206B_200F_206E_200B_200D_206E_202C_202E_202E_200B_202B_200D_202E_206F_206D_206F_202E_200E_202C_202C_202C_200C_206C_206B_202E(); - return Start(); - case 0: - goto IL_00ce; - } - continue; - IL_00ce: - num = 746010717; + Task = task2; + ProgressContext = null; + _lastProgressAt = Environment.TickCount64; + return Start(); } - } - - bool ITaskExecutor.Start(ITask task) - { - //ILSpy generated this explicit interface implementation from .override directive in Start - return this.Start(task); + throw new TaskException($"Unable to cast {task.GetType()} to {typeof(T)}"); } public abstract ETaskResult Update(); public abstract bool ShouldInterruptOnDamage(); - - static long _200F_202B_202E_202E_206A_202A_202D_202A_202B_202A_200D_206F_206A_202A_206D_202C_206B_200F_206E_200B_200D_206E_202C_202E_202E_200B_202B_200D_202E_206F_206D_206F_202E_200E_202C_202C_202C_200C_206C_206B_202E() - { - return Environment.TickCount64; - } - - static Type _200D_206E_206F_200E_206B_202A_202D_200C_202E_202B_206D_206F_200D_206A_202D_200E_206D_200E_206F_200F_206E_202A_200D_206F_200F_200C_206F_202C_206D_206F_206C_206F_200D_200B_202E_200D_202C_206C_202D_206D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static Type _202D_202E_206C_206C_202A_202B_200F_202D_200F_200C_206F_206B_206B_206D_200C_206F_200E_200E_202B_202C_206A_200E_206B_200F_206D_202B_200C_202D_202B_202E_200F_200F_206E_202E_206C_200B_202E_200D_202C_200F_202E(object P_0) - { - return P_0.GetType(); - } } diff --git a/Questionable/Questionable.Controller.Steps/TaskQueue.cs b/Questionable/Questionable.Controller.Steps/TaskQueue.cs index 715d619..1d4f566 100644 --- a/Questionable/Questionable.Controller.Steps/TaskQueue.cs +++ b/Questionable/Questionable.Controller.Steps/TaskQueue.cs @@ -21,27 +21,11 @@ internal sealed class TaskQueue { get { - int num = ((CurrentTaskExecutor != null) ? (-477523234) : (-477523233)); - while (true) + if (CurrentTaskExecutor == null) { - int num2 = num; - int num3 = -477523234; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0048; - case 1: - return _tasks.Count == 0; - case 0: - return false; - } - continue; - IL_0048: - num = -477523233; + return _tasks.Count == 0; } + return false; } } @@ -50,29 +34,9 @@ internal sealed class TaskQueue public void Enqueue(ITask task) { _tasks.Add(task); - int num = ((!IsLevelingTask(task)) ? 171339134 : 171339133); - while (true) + if (IsLevelingTask(task)) { - int num2 = num; - int num3 = 171339135; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return; - case 2: - { - int levelingTaskCount = _levelingTaskCount; - num3 = 1; - num4 = levelingTaskCount; - _levelingTaskCount = (num4 | num3) + (num4 & num3); - num = 171339134; - break; - } - case 0: - num = 171339133; - break; - } + _levelingTaskCount++; } } @@ -85,45 +49,20 @@ internal sealed class TaskQueue public bool TryDequeue([NotNullWhen(true)] out ITask? task) { task = _tasks.FirstOrDefault(); - int num = ((task != null) ? (-2044560893) : (-2044560894)); - while (true) + if (task == null) { - int num2 = num; - int num3 = -2044560889; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -2044560894; - break; - case 1: - { - int levelingTaskCount = _levelingTaskCount; - num3 = 1; - num4 = levelingTaskCount; - _levelingTaskCount = ~(~num4 + num3); - num = -2044560895; - break; - } - case 5: - return false; - case 3: - _completedTasks.Add(task); - num = -2044560889; - break; - case 0: - _tasks.RemoveAt(0); - num = ((!IsLevelingTask(task)) ? (-2044560895) : (-2044560890)); - break; - case 4: - num = ((!task.ShouldRedoOnInterrupt()) ? (-2044560889) : (-2044560892)); - break; - case 6: - return true; - } + return false; } + if (task.ShouldRedoOnInterrupt()) + { + _completedTasks.Add(task); + } + _tasks.RemoveAt(0); + if (IsLevelingTask(task)) + { + _levelingTaskCount--; + } + return true; } public bool TryPeek([NotNullWhen(true)] out ITask? task) @@ -155,32 +94,10 @@ internal sealed class TaskQueue private static bool IsLevelingTask(ITask task) { - int num = ((task is Duty.StartLevelingModeTask) ? (-425833563) : (-425833568)); - bool result = default(bool); - while (true) + if (task is Duty.StartLevelingModeTask || task is Duty.WaitLevelingModeTask) { - int num2 = num; - int num3 = -425833564; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - result = true; - num = -425833562; - break; - case 2: - return result; - case 3: - result = false; - num = -425833562; - break; - case 0: - num = -425833568; - break; - case 4: - num = ((!(task is Duty.WaitLevelingModeTask)) ? (-425833561) : (-425833563)); - break; - } + return true; } + return false; } } diff --git a/Questionable/Questionable.Controller.Utils/ExpiryUtils.cs b/Questionable/Questionable.Controller.Utils/ExpiryUtils.cs index 37a91fb..8addf72 100644 --- a/Questionable/Questionable.Controller.Utils/ExpiryUtils.cs +++ b/Questionable/Questionable.Controller.Utils/ExpiryUtils.cs @@ -1,5 +1,4 @@ using System; -using System.Runtime.CompilerServices; namespace Questionable.Controller.Utils; @@ -17,83 +16,31 @@ internal static class ExpiryUtils public static DateTime NormalizeExpiry(DateTime expiry) { TimeSpan timeOfDay = expiry.TimeOfDay; - int num = ((timeOfDay == TimeSpan.Zero) ? (-1551554143) : (-1551554139)); - while (true) + if (timeOfDay == TimeSpan.Zero || timeOfDay == EndOfDaySentinel) { - int num2 = num; - int num3 = -1551554143; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return expiry.ToUniversalTime(); - case 4: - num = ((!(timeOfDay == EndOfDaySentinel)) ? (-1551554140) : (-1551554143)); - break; - case 5: - num = ((expiry.Kind == DateTimeKind.Utc) ? (-1551554141) : (-1551554144)); - break; - case 2: - return expiry; - case 0: - return AtDailyReset(DateOnly.FromDateTime(expiry)); - case 3: - num = -1551554139; - break; - } + return AtDailyReset(DateOnly.FromDateTime(expiry)); } + if (expiry.Kind != DateTimeKind.Utc) + { + return expiry.ToUniversalTime(); + } + return expiry; } - [MethodImpl(MethodImplOptions.NoInlining)] public static string FormatTimeSpan(TimeSpan timeSpan) { - int num = ((!(timeSpan.TotalMinutes < 1.0)) ? (-1793359174) : (-1793359173)); - while (true) + if (timeSpan.TotalMinutes < 1.0) { - int num2 = num; - int num3 = -1793359176; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(1, 1); - defaultInterpolatedStringHandler.AppendFormatted(timeSpan.Minutes); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(120194306)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - case 3: - return global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-610084152); - case 0: - num = ((!(timeSpan.TotalDays < 1.0)) ? (-1793359170) : (-1793359175)); - break; - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(3, 2); - defaultInterpolatedStringHandler3.AppendFormatted(timeSpan.Hours); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-794677548)); - defaultInterpolatedStringHandler3.AppendFormatted(timeSpan.Minutes); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(120194306)); - return defaultInterpolatedStringHandler3.ToStringAndClear(); - } - case 4: - num = -1793359173; - break; - case 6: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(3, 2); - defaultInterpolatedStringHandler2.AppendFormatted((int)timeSpan.TotalDays); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-70794689)); - defaultInterpolatedStringHandler2.AppendFormatted(timeSpan.Hours); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-568294376)); - return defaultInterpolatedStringHandler2.ToStringAndClear(); - } - case 2: - num = ((!(timeSpan.TotalHours < 1.0)) ? (-1793359176) : (-1793359171)); - break; - } + return "< 1m"; } + if (!(timeSpan.TotalHours < 1.0)) + { + if (!(timeSpan.TotalDays < 1.0)) + { + return $"{(int)timeSpan.TotalDays}d {timeSpan.Hours}h"; + } + return $"{timeSpan.Hours}h {timeSpan.Minutes}m"; + } + return $"{timeSpan.Minutes}m"; } } diff --git a/Questionable/Questionable.Controller.Utils/PartyWatchDog.cs b/Questionable/Questionable.Controller.Utils/PartyWatchDog.cs index 3f8e184..5c9d6d9 100644 --- a/Questionable/Questionable.Controller.Utils/PartyWatchDog.cs +++ b/Questionable/Questionable.Controller.Utils/PartyWatchDog.cs @@ -1,5 +1,4 @@ using System; -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.Group; @@ -34,273 +33,134 @@ internal sealed class PartyWatchdog : IDisposable _clientState = clientState; _chatGui = chatGui; _logger = logger; - _202E_202B_202C_200E_206F_202C_200D_206C_206A_206D_206D_206B_206C_206C_206B_206E_202D_200C_206B_202A_202C_206B_206C_200E_206E_202E_202D_200D_200D_206B_200C_206E_202A_206D_200C_200B_202D_200E_206D_200C_202E(_clientState, (Action<uint>)TerritoryChanged); + _clientState.TerritoryChanged += TerritoryChanged; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void TerritoryChanged(uint newTerritoryId) { - int num = ((!_configuration.Advanced.DisablePartyWatchdog) ? 546819972 : 546819975); - while (true) + if (!_configuration.Advanced.DisablePartyWatchdog) { - int num2 = num; - int num3 = 546819973; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler; - switch (num5 - (num6 + num6)) + switch ((ETerritoryIntendedUse)GameMain.Instance()->CurrentTerritoryIntendedUseId) { - case 5: - return; - case 1: - switch ((ETerritoryIntendedUse)GameMain.Instance()->CurrentTerritoryIntendedUseId) - { - case ETerritoryIntendedUse.MordionGaol: - case ETerritoryIntendedUse.Frontline: - case ETerritoryIntendedUse.LordOfVerminion: - case ETerritoryIntendedUse.ExploratoryMissions: - case ETerritoryIntendedUse.CrystallineConflict: - case ETerritoryIntendedUse.DeepDungeon: - case ETerritoryIntendedUse.TreasureMapInstance: - case ETerritoryIntendedUse.TripleTriadBattlehall: - case ETerritoryIntendedUse.CrystallineConflictCustomMatch: - case ETerritoryIntendedUse.DiademHuntingGrounds: - case ETerritoryIntendedUse.RivalWings: - case ETerritoryIntendedUse.Eureka: - case ETerritoryIntendedUse.LeapOfFaith: - case ETerritoryIntendedUse.OceanFishing: - case ETerritoryIntendedUse.Diadem: - case ETerritoryIntendedUse.Bozja: - case ETerritoryIntendedUse.TripleTriadOpenTournament: - case ETerritoryIntendedUse.TripleTriadInvitationalParlor: - case ETerritoryIntendedUse.DelubrumReginae: - case ETerritoryIntendedUse.DelubrumReginaeSavage: - case ETerritoryIntendedUse.Blunderville: - goto IL_0168; - case ETerritoryIntendedUse.Dungeon: - case ETerritoryIntendedUse.VariantDungeon: - case ETerritoryIntendedUse.AllianceRaid: - case ETerritoryIntendedUse.Trial: - case ETerritoryIntendedUse.Raid1: - case ETerritoryIntendedUse.Raid2: - case ETerritoryIntendedUse.Seasonal: - case ETerritoryIntendedUse.TheCalamityRetold: - case ETerritoryIntendedUse.CriterionDungeon: - case ETerritoryIntendedUse.CriterionDungeonSavage: - goto IL_01aa; - case ETerritoryIntendedUse.OpeningArea: - case ETerritoryIntendedUse.BeforeTrialDung: - case ETerritoryIntendedUse.PreEwOverworldQuestBattle: - case ETerritoryIntendedUse.Unknown11: - case ETerritoryIntendedUse.WaitingRoom: - case ETerritoryIntendedUse.HousingOutdoor: - case ETerritoryIntendedUse.HousingIndoor: - case ETerritoryIntendedUse.SoloOverworldInstances: - case ETerritoryIntendedUse.ChocoboSquareOld: - case ETerritoryIntendedUse.ChocoboRacing: - case ETerritoryIntendedUse.Firmament: - case ETerritoryIntendedUse.SanctumOfTheTwelve: - case ETerritoryIntendedUse.GoldSaucer: - case ETerritoryIntendedUse.OriginalStepsOfFaith: - case ETerritoryIntendedUse.HallOfTheNovice: - case ETerritoryIntendedUse.SoloDuty: - case ETerritoryIntendedUse.GrandCompanyBarracks: - case ETerritoryIntendedUse.SeasonalInstancedArea: - case ETerritoryIntendedUse.ChaoticRaid: - case ETerritoryIntendedUse.Unknown40: - case ETerritoryIntendedUse.Unknown42: - case ETerritoryIntendedUse.MaskedCarnival: - case ETerritoryIntendedUse.IslandSanctuary: - case ETerritoryIntendedUse.EndwalkerMsqSoloOverworld: - case ETerritoryIntendedUse.Unknown55: - case ETerritoryIntendedUse.Elysion: - return; - } - num = 546819968; + case ETerritoryIntendedUse.MordionGaol: + case ETerritoryIntendedUse.Frontline: + case ETerritoryIntendedUse.LordOfVerminion: + case ETerritoryIntendedUse.ExploratoryMissions: + case ETerritoryIntendedUse.CrystallineConflict: + case ETerritoryIntendedUse.DeepDungeon: + case ETerritoryIntendedUse.TreasureMapInstance: + case ETerritoryIntendedUse.TripleTriadBattlehall: + case ETerritoryIntendedUse.CrystallineConflictCustomMatch: + case ETerritoryIntendedUse.DiademHuntingGrounds: + case ETerritoryIntendedUse.RivalWings: + case ETerritoryIntendedUse.Eureka: + case ETerritoryIntendedUse.LeapOfFaith: + case ETerritoryIntendedUse.OceanFishing: + case ETerritoryIntendedUse.Diadem: + case ETerritoryIntendedUse.Bozja: + case ETerritoryIntendedUse.TripleTriadOpenTournament: + case ETerritoryIntendedUse.TripleTriadInvitationalParlor: + case ETerritoryIntendedUse.DelubrumReginae: + case ETerritoryIntendedUse.DelubrumReginaeSavage: + case ETerritoryIntendedUse.Blunderville: + StopIfRunning($"Unsupported Area entered ({newTerritoryId})"); break; - case 3: - goto IL_0168; - case 6: - goto IL_01aa; - case 2: - return; - case 0: - num = 546819975; - break; - case 4: - return; - IL_01aa: + case ETerritoryIntendedUse.Dungeon: + case ETerritoryIntendedUse.VariantDungeon: + case ETerritoryIntendedUse.AllianceRaid: + case ETerritoryIntendedUse.Trial: + case ETerritoryIntendedUse.Raid1: + case ETerritoryIntendedUse.Raid2: + case ETerritoryIntendedUse.Seasonal: + case ETerritoryIntendedUse.TheCalamityRetold: + case ETerritoryIntendedUse.CriterionDungeon: + case ETerritoryIntendedUse.CriterionDungeonSavage: _uncheckedTerritoryId = newTerritoryId; - _200E_202E_200F_200B_202B_206B_206D_206B_206F_206B_202B_200E_206E_202D_202B_200E_200B_206A_206F_202E_206C_206D_202B_200F_206A_206D_206C_200F_202A_202B_200E_202B_202A_200F_206A_200D_202C_202C_206B_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-863360954), new object[1] { newTerritoryId }); - num = 546819969; + _logger.LogDebug("Will check territory {TerritoryId} after loading", newTerritoryId); + break; + case ETerritoryIntendedUse.OpeningArea: + case ETerritoryIntendedUse.BeforeTrialDung: + case ETerritoryIntendedUse.PreEwOverworldQuestBattle: + case ETerritoryIntendedUse.Unknown11: + case ETerritoryIntendedUse.WaitingRoom: + case ETerritoryIntendedUse.HousingOutdoor: + case ETerritoryIntendedUse.HousingIndoor: + case ETerritoryIntendedUse.SoloOverworldInstances: + case ETerritoryIntendedUse.ChocoboSquareOld: + case ETerritoryIntendedUse.ChocoboRacing: + case ETerritoryIntendedUse.Firmament: + case ETerritoryIntendedUse.SanctumOfTheTwelve: + case ETerritoryIntendedUse.GoldSaucer: + case ETerritoryIntendedUse.OriginalStepsOfFaith: + case ETerritoryIntendedUse.HallOfTheNovice: + case ETerritoryIntendedUse.SoloDuty: + case ETerritoryIntendedUse.GrandCompanyBarracks: + case ETerritoryIntendedUse.SeasonalInstancedArea: + case ETerritoryIntendedUse.ChaoticRaid: + case ETerritoryIntendedUse.Unknown40: + case ETerritoryIntendedUse.Unknown42: + case ETerritoryIntendedUse.MaskedCarnival: + case ETerritoryIntendedUse.IslandSanctuary: + case ETerritoryIntendedUse.EndwalkerMsqSoloOverworld: + case ETerritoryIntendedUse.Unknown55: + case ETerritoryIntendedUse.Elysion: break; - IL_0168: - defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(27, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1856891210)); - defaultInterpolatedStringHandler.AppendFormatted(newTerritoryId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - StopIfRunning(defaultInterpolatedStringHandler.ToStringAndClear()); - return; } } } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe void Update() { - int num = ((!_configuration.Advanced.DisablePartyWatchdog) ? 783719390 : 783719389); - GroupManager* ptr = default(GroupManager*); - while (true) + if (_configuration.Advanced.DisablePartyWatchdog || _uncheckedTerritoryId != _clientState.TerritoryType || GameMain.Instance()->TerritoryLoadState != 2) { - int num2 = num; - int num3 = 783719387; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return; + } + GroupManager* ptr = GroupManager.Instance(); + if (ptr == null) + { + return; + } + byte memberCount = ptr->MainGroup.MemberCount; + bool isAlliance = ptr->MainGroup.IsAlliance; + _logger.LogDebug("Territory {TerritoryId} with {MemberCount} members, alliance: {IsInAlliance}", _uncheckedTerritoryId, memberCount, isAlliance); + if (memberCount > 1 || isAlliance) + { + if (!IsDutyConfiguredForParty(_uncheckedTerritoryId.Value)) { - case 9: - ptr = GroupManager.Instance(); - num = ((ptr != null) ? 783719391 : 783719387); - break; - case 6: - return; - case 10: - _200E_202E_200F_200B_202B_206B_206D_206B_206F_206B_202B_200E_206E_202D_202B_200E_200B_206A_206F_202E_206C_206D_202B_200F_206A_206D_206C_200F_202A_202B_200E_202B_202A_200F_206A_200D_202C_202C_206B_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-762149952), Array.Empty<object>()); - num = 783719379; - break; - case 0: - return; - case 7: - num = ((GameMain.Instance()->TerritoryLoadState != 2) ? 783719385 : 783719378); - break; - case 1: - StopIfRunning(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1306739522)); - num = 783719379; - break; - case 11: - num = 783719389; - break; - case 3: - num = (IsDutyConfiguredForParty(_uncheckedTerritoryId.Value) ? 783719377 : 783719386); - break; - case 4: - { - byte memberCount = ptr->MainGroup.MemberCount; - bool isAlliance = ptr->MainGroup.IsAlliance; - _200E_202E_200F_200B_202B_206B_206D_206B_206F_206B_202B_200E_206E_202D_202B_200E_200B_206A_206F_202E_206C_206D_202B_200F_206A_206D_206C_200F_202A_202B_200E_202B_202A_200F_206A_200D_202C_202C_206B_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(189353374), new object[3] { _uncheckedTerritoryId, memberCount, isAlliance }); - bool num5 = memberCount > 1; - num3 = (isAlliance ? 1 : 0); - num4 = (num5 ? 1 : 0); - num = (((num4 & num3) + (num4 ^ num3) == 0) ? 783719379 : 783719384); - break; + StopIfRunning("Other party members present"); } - case 5: - num = ((_uncheckedTerritoryId != _206B_202D_200B_200D_200B_202E_206B_200F_200C_206C_200B_202A_202E_206C_206B_200E_206A_202E_200D_200E_202B_200C_202E_200B_206D_206E_200C_200E_200B_206B_200D_206B_200E_200D_202A_206D_206E_200C_206C_206B_202E(_clientState)) ? 783719385 : 783719388); - break; - case 2: - return; - case 8: - _uncheckedTerritoryId = null; - num = 783719385; - break; + else + { + _logger.LogDebug("Party detected but duty is configured for Unsync (Party) mode, continuing"); } } + _uncheckedTerritoryId = null; } private bool IsDutyConfiguredForParty(uint territoryId) { - uint cfcId; - int num = (_territoryData.TryGetContentFinderConditionIdForTerritory(territoryId, out cfcId) ? 309783297 : 309783299); - EDutyMode value = default(EDutyMode); - while (true) + if (!_territoryData.TryGetContentFinderConditionIdForTerritory(territoryId, out var cfcId)) { - int num2 = num; - int num3 = 309783298; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - return value == EDutyMode.UnsyncParty; - case 3: - num = ((!_configuration.Duties.DutyModeOverrides.TryGetValue(cfcId, out value)) ? 309783296 : 309783302); - break; - case 2: - return _configuration.Duties.DefaultDutyMode == EDutyMode.UnsyncParty; - case 0: - num = 309783299; - break; - case 1: - return false; - } + return false; } + if (_configuration.Duties.DutyModeOverrides.TryGetValue(cfcId, out var value)) + { + return value == EDutyMode.UnsyncParty; + } + return _configuration.Duties.DefaultDutyMode == EDutyMode.UnsyncParty; } - [MethodImpl(MethodImplOptions.NoInlining)] private void StopIfRunning(string reason) { - int num = (_questController.IsRunning ? 1851860853 : 1851860852); - while (true) + if (_questController.IsRunning || _questController.AutomationType != QuestController.EAutomationType.Manual) { - int num2 = num; - int num3 = 1851860854; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1851860852; - break; - case 2: - num = ((_questController.AutomationType == QuestController.EAutomationType.Manual) ? 1851860855 : 1851860853); - break; - case 3: - _202C_202D_206F_200F_206F_200C_202B_200B_206D_200F_202C_200C_206B_202D_200C_200F_206F_200D_202E_206C_206F_202A_202E_200D_200C_202C_200C_202B_202B_206E_202E_202E_200C_200C_202D_202D_206B_206B_206D_200D_202E(_chatGui, _202E_202A_206C_206D_202C_202A_200B_200E_206B_200C_202A_206E_202B_206A_200D_206B_206D_206F_206F_202A_206C_202E_200D_200F_206E_200D_206B_200D_202C_200E_206F_206C_200D_206C_206B_200B_206C_200B_200E_202A_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(523838362), reason, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(677123386)), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712), (ushort?)(ushort)576); - _questController.Stop(reason); - num = 1851860855; - break; - case 1: - return; - } + _chatGui.PrintError("Stopping Questionable: " + reason + ". If you believe this to be correct, please restart Questionable manually.", "Questionable", 576); + _questController.Stop(reason); } } public void Dispose() { - _200E_206B_206A_200F_202A_200E_206D_202E_206B_206C_202A_206A_206C_200F_206F_206F_206C_206D_206F_200F_206A_206C_206A_206E_202A_202E_206C_206B_202E_206C_200F_206F_200E_202B_202C_202A_200E_206B_206E_202A_202E(_clientState, (Action<uint>)TerritoryChanged); - } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static void _202E_202B_202C_200E_206F_202C_200D_206C_206A_206D_206D_206B_206C_206C_206B_206E_202D_200C_206B_202A_202C_206B_206C_200E_206E_202E_202D_200D_200D_206B_200C_206E_202A_206D_200C_200B_202D_200E_206D_200C_202E(IClientState P_0, Action<uint> P_1) - { - P_0.TerritoryChanged += P_1; - } - - static void _200E_202E_200F_200B_202B_206B_206D_206B_206F_206B_202B_200E_206E_202D_202B_200E_200B_206A_206F_202E_206C_206D_202B_200F_206A_206D_206C_200F_202A_202B_200E_202B_202A_200F_206A_200D_202C_202C_206B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static uint _206B_202D_200B_200D_200B_202E_206B_200F_200C_206C_200B_202A_202E_206C_206B_200E_206A_202E_200D_200E_202B_200C_202E_200B_206D_206E_200C_200E_200B_206B_200D_206B_200E_200D_202A_206D_206E_200C_206C_206B_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static string _202E_202A_206C_206D_202C_202A_200B_200E_206B_200C_202A_206E_202B_206A_200D_206B_206D_206F_206F_202A_206C_202E_200D_200F_206E_200D_206B_200D_202C_200E_206F_206C_200D_206C_206B_200B_206C_200B_200E_202A_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static void _202C_202D_206F_200F_206F_200C_202B_200B_206D_200F_202C_200C_206B_202D_200C_200F_206F_200D_202E_206C_206F_202A_202E_200D_200C_202C_200C_202B_202B_206E_202E_202E_200C_200C_202D_202D_206B_206B_206D_200D_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } - - static void _200E_206B_206A_200F_202A_200E_206D_202E_206B_206C_202A_206A_206C_200F_206F_206F_206C_206D_206F_200F_206A_206C_206A_206E_202A_202E_206C_206B_202E_206C_200F_206F_200E_202B_202C_202A_200E_206B_206E_202A_202E(IClientState P_0, Action<uint> P_1) - { - P_0.TerritoryChanged -= P_1; + _clientState.TerritoryChanged -= TerritoryChanged; } } diff --git a/Questionable/Questionable.Controller.Utils/QuestWorkUtils.cs b/Questionable/Questionable.Controller.Utils/QuestWorkUtils.cs index 5289e1f..5cba313 100644 --- a/Questionable/Questionable.Controller.Utils/QuestWorkUtils.cs +++ b/Questionable/Questionable.Controller.Utils/QuestWorkUtils.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; using Microsoft.Extensions.Logging; using Questionable.Model; using Questionable.Model.Questing; @@ -10,388 +9,88 @@ namespace Questionable.Controller.Utils; internal static class QuestWorkUtils { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<QuestWorkValue, bool> _003C_003E9__1_0; - - public static Func<List<QuestWorkValue>, bool> _003C_003E9__3_0; - - internal bool _003CHasCompletionFlags_003Eb__1_0(QuestWorkValue x) - { - int num = ((x == null) ? (-2001484483) : (-2001484481)); - while (true) - { - int num2 = num; - int num3 = -2001484482; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return _200B_206E_202C_202A_200D_202B_200C_206D_200E_202E_202A_206A_202E_206A_202B_200E_202C_206A_200B_206E_206D_202E_202B_202C_206F_200F_202B_206E_200D_202B_200F_200F_206A_206C_206F_200B_202D_202A_206C_200E_202E(x).HasValue; - case 1: - num = (_202A_200E_206A_206A_200C_206C_206E_202A_206C_202D_206C_202B_202D_202A_200C_206B_202D_206B_200F_206D_206B_200C_202A_206D_200E_202E_200D_206F_202B_202A_200C_206D_202B_206E_206B_202E_202C_206B_202E_206E_202E(x).HasValue ? (-2001484484) : (-2001484482)); - break; - case 3: - return false; - case 2: - return true; - case 4: - num = -2001484481; - break; - } - } - } - - internal bool _003CMatchesRequiredQuestWorkConfig_003Eb__3_0(List<QuestWorkValue> x) - { - int num = ((x == null) ? 1977727420 : 1977727423); - while (true) - { - int num2 = num; - int num3 = 1977727421; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return true; - case 2: - return x.Count == 0; - case 0: - goto IL_004f; - } - continue; - IL_004f: - num = 1977727423; - } - } - - static byte? _202A_200E_206A_206A_200C_206C_206E_202A_206C_202D_206C_202B_202D_202A_200C_206B_202D_206B_200F_206D_206B_200C_202A_206D_200E_202E_200D_206F_202B_202A_200C_206D_202B_206E_206B_202E_202C_206B_202E_206E_202E(QuestWorkValue P_0) - { - return P_0.High; - } - - static byte? _200B_206E_202C_202A_200D_202B_200C_206D_200E_202E_202A_206A_202E_206A_202B_200E_202C_206A_200B_206E_206D_202E_202B_202C_206F_200F_202B_206E_200D_202B_200F_200F_206A_206C_206F_200B_202D_202A_206C_200E_202E(QuestWorkValue P_0) - { - return P_0.Low; - } - } - private const int QuestVariableCount = 6; public static bool HasCompletionFlags(IList<QuestWorkValue?> completionQuestVariablesFlags) { - int num = ((completionQuestVariablesFlags.Count != 6) ? (-1740438187) : (-1740438186)); - while (true) + if (completionQuestVariablesFlags.Count == 6) { - int num2 = num; - int num3 = -1740438188; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return false; - case 2: - return completionQuestVariablesFlags.Any(delegate(QuestWorkValue x) - { - int num5 = ((x == null) ? (-2001484483) : (-2001484481)); - while (true) - { - int num6 = num5; - int num7 = -2001484482; - int num8 = num6; - switch ((num8 | num7) - (num8 & num7)) - { - case 0: - return _003C_003Ec._200B_206E_202C_202A_200D_202B_200C_206D_200E_202E_202A_206A_202E_206A_202B_200E_202C_206A_200B_206E_206D_202E_202B_202C_206F_200F_202B_206E_200D_202B_200F_200F_206A_206C_206F_200B_202D_202A_206C_200E_202E(x).HasValue; - case 1: - num5 = (_003C_003Ec._202A_200E_206A_206A_200C_206C_206E_202A_206C_202D_206C_202B_202D_202A_200C_206B_202D_206B_200F_206D_206B_200C_202A_206D_200E_202E_200D_206F_202B_202A_200C_206D_202B_206E_206B_202E_202C_206B_202E_206E_202E(x).HasValue ? (-2001484484) : (-2001484482)); - break; - case 3: - return false; - case 2: - return true; - case 4: - num5 = -2001484481; - break; - } - } - }); - case 0: - goto IL_0072; - } - continue; - IL_0072: - num = -1740438186; + return completionQuestVariablesFlags.Any((QuestWorkValue x) => x != null && (x.High.HasValue || x.Low.HasValue)); } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public static bool MatchesQuestWork(IList<QuestWorkValue?> completionQuestVariablesFlags, QuestProgressInfo questProgressInfo) { - int num = ((!HasCompletionFlags(completionQuestVariablesFlags)) ? 1262230234 : 1262230237); - QuestWorkValue questWorkValue = default(QuestWorkValue); - byte b = default(byte); - int num7 = default(int); - EQuestWorkMode eQuestWorkMode = default(EQuestWorkMode); - byte b2 = default(byte); - while (true) + if (!HasCompletionFlags(completionQuestVariablesFlags) || questProgressInfo.Variables.Count != 6) { - int num2 = num; - int num3 = 1262230216; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return false; + } + for (int i = 0; i < questProgressInfo.Variables.Count; i++) + { + QuestWorkValue questWorkValue = completionQuestVariablesFlags[i]; + if (questWorkValue == null) { - case 5: - num = ((!_206B_202C_206F_200D_202B_202E_202C_206D_200F_206F_206A_206F_202C_206F_200D_200C_200E_200B_200B_200C_202A_206B_206C_206B_200E_202D_200B_206F_202B_200F_206C_206B_206C_200D_206A_202C_202C_202D_202C_202D_202E(questWorkValue).HasValue) ? 1262230236 : 1262230215); - break; - case 2: - num = ((!_202C_202C_206F_200F_202D_200B_206B_202A_200F_200E_206D_206F_206F_206A_206F_202A_202A_206C_202B_202D_206E_200D_206D_202D_200C_206E_200C_200D_206F_206B_206A_202E_200B_206C_206A_202A_206D_202D_202C_200D_202E(questWorkValue).HasValue) ? 1262230223 : 1262230213); - break; - case 14: - num = ((b == _206B_202C_206F_200D_202B_202E_202C_206D_200F_206F_206A_206F_202C_206F_200D_200C_200E_200B_200B_200C_202A_206B_206C_206B_200E_202D_200B_206F_202B_200F_206C_206B_206C_200D_206A_202C_202C_202D_202C_202D_202E(questWorkValue).Value) ? 1262230218 : 1262230220); - break; - case 1: - num = ((!_206B_202C_206F_200D_202B_202E_202C_206D_200F_206F_206A_206F_202C_206F_200D_200C_200E_200B_200B_200C_202A_206B_206C_206B_200E_202D_200B_206F_202B_200F_206C_206B_206C_200D_206A_202C_202C_202D_202C_202D_202E(questWorkValue).HasValue) ? 1262230218 : 1262230214); - break; - case 19: - questWorkValue = completionQuestVariablesFlags[num7]; - num = ((questWorkValue == null) ? 1262230223 : 1262230212); - break; - case 21: - num = ((questProgressInfo.Variables.Count == 6) ? 1262230222 : 1262230234); - break; - case 11: - num = ((eQuestWorkMode != EQuestWorkMode.Bitwise) ? 1262230233 : 1262230221); - break; - case 13: - num = ((b2 == _202C_202C_206F_200F_202D_200B_206B_202A_200F_200E_206D_206F_206F_206A_206F_202A_202A_206C_202B_202D_206E_200D_206D_202D_200C_206E_200C_200D_206F_206B_206A_202E_200B_206C_206A_202A_206D_202D_202C_200D_202E(questWorkValue).Value) ? 1262230223 : 1262230208); - break; - case 20: - num = ((!_202C_202C_206F_200F_202D_200B_206B_202A_200F_200E_206D_206F_206F_206A_206F_202A_202A_206C_202B_202D_206E_200D_206D_202D_200C_206E_200C_200D_206F_206B_206A_202E_200B_206C_206A_202A_206D_202D_202C_200D_202E(questWorkValue).HasValue) ? 1262230223 : 1262230216); - break; - case 0: - num = (((b2 & _202C_202C_206F_200F_202D_200B_206B_202A_200F_200E_206D_206F_206F_206A_206F_202A_202A_206C_202B_202D_206E_200D_206D_202D_200C_206E_200C_200D_206F_206B_206A_202E_200B_206C_206A_202A_206D_202D_202C_200D_202E(questWorkValue).Value) == _202C_202C_206F_200F_202D_200B_206B_202A_200F_200E_206D_206F_206F_206A_206F_202A_202A_206C_202B_202D_206E_200D_206D_202D_200C_206E_200C_200D_206F_206B_206A_202E_200B_206C_206A_202A_206D_202D_202C_200D_202E(questWorkValue).Value) ? 1262230223 : 1262230209); - break; - case 16: - return true; - case 22: - return false; - case 15: - num = (((b & _206B_202C_206F_200D_202B_202E_202C_206D_200F_206F_206A_206F_202C_206F_200D_200C_200E_200B_200B_200C_202A_206B_206C_206B_200E_202D_200B_206F_202B_200F_206C_206B_206C_200D_206A_202C_202C_202D_202C_202D_202E(questWorkValue).Value) == _206B_202C_206F_200D_202B_202E_202C_206D_200F_206F_206A_206F_202C_206F_200D_200C_200E_200B_200B_200C_202A_206B_206C_206B_200E_202D_200B_206F_202B_200F_206C_206B_206C_200D_206A_202C_202C_202D_202C_202D_202E(questWorkValue).Value) ? 1262230236 : 1262230238); - break; - case 10: - num = 1262230237; - break; - case 8: - return false; - case 17: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(16, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1223834109)); - defaultInterpolatedStringHandler.AppendFormatted(eQuestWorkMode); - throw _202D_200F_200C_200B_202B_202D_200E_200F_206D_206B_200E_206C_202A_200C_206E_200D_202B_202A_206C_202B_202B_202A_202B_202B_202A_202A_200E_202C_200D_206A_202C_202B_206F_200C_200F_206C_200D_206D_206D_202E(defaultInterpolatedStringHandler.ToStringAndClear()); + continue; } - case 9: - return false; - case 6: - num7 = 0; - num = 1262230219; - break; - case 4: - return false; - case 7: + EQuestWorkMode mode = questWorkValue.Mode; + byte b = (byte)(questProgressInfo.Variables[i] >> 4); + byte b2 = (byte)(questProgressInfo.Variables[i] & 0xF); + switch (mode) { - int num8 = num7; - num3 = 1; - num4 = num8; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - num7 = num9 + (num10 + num10); - num = 1262230219; + case EQuestWorkMode.Exact: + if (questWorkValue.High.HasValue && b != questWorkValue.High.Value) + { + return false; + } + if (questWorkValue.Low.HasValue && b2 != questWorkValue.Low.Value) + { + return false; + } break; - } - case 18: - return false; - case 3: - num = ((num7 < questProgressInfo.Variables.Count) ? 1262230235 : 1262230232); - break; - case 12: - eQuestWorkMode = _202D_206B_200E_206D_200D_206A_206C_200D_206C_202C_202A_202A_200B_200B_206D_202D_206A_202E_200D_206F_206D_202C_206B_200B_200B_202E_202D_200E_206D_202B_202D_202D_202B_206A_200E_200B_202E_200E_200C_206D_202E(questWorkValue); - b = (byte)(questProgressInfo.Variables[num7] >> 4); - b2 = (byte)(questProgressInfo.Variables[num7] & 0xF); - num = ((eQuestWorkMode != EQuestWorkMode.Exact) ? 1262230211 : 1262230217); + case EQuestWorkMode.Bitwise: + if (questWorkValue.High.HasValue && (b & questWorkValue.High.Value) != questWorkValue.High.Value) + { + return false; + } + if (questWorkValue.Low.HasValue && (b2 & questWorkValue.Low.Value) != questWorkValue.Low.Value) + { + return false; + } break; + default: + throw new InvalidOperationException($"Unknown qw mode {mode}"); } } + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public static bool MatchesRequiredQuestWorkConfig(List<List<QuestWorkValue>?> requiredQuestVariables, QuestProgressInfo questWork, ILogger logger) { - int num = ((requiredQuestVariables.Count != 6) ? 1755614910 : 1755614911); - byte? b3 = default(byte?); - QuestWorkValue current = default(QuestWorkValue); - while (true) + if (requiredQuestVariables.Count != 6 || requiredQuestVariables.All((List<QuestWorkValue> x) => x == null || x.Count == 0)) { - int num2 = num; - int num3 = 1755614908; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + logger.LogDebug("No RequiredQW defined"); + return true; + } + for (int num = 0; num < 6; num++) + { + if (requiredQuestVariables[num] == null) { - case 0: - num = 1755614911; - break; - case 2: - _200C_206F_200F_202A_200B_206E_200D_206C_202D_200D_206F_200B_206E_202A_202A_206B_200D_202B_202B_200E_202B_206A_200C_202A_206E_200E_206F_200D_206E_200C_200F_202D_200F_206C_202D_202E_200C_200E_202A_200D_202E(logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2029288838), Array.Empty<object>()); - return true; - case 3: - num = ((!requiredQuestVariables.All(delegate(List<QuestWorkValue> x) - { - int num8 = ((x == null) ? 1977727420 : 1977727423); - while (true) - { - int num9 = num8; - int num10 = 1977727421; - int num11 = num9; - int num12 = num11 + num10; - int num13 = num11 & num10; - switch (num12 - (num13 + num13)) - { - case 1: - return true; - case 2: - return x.Count == 0; - case 0: - goto IL_004f; - } - continue; - IL_004f: - num8 = 1977727423; - } - })) ? 1755614909 : 1755614910); - break; - case 1: - { - for (int num5 = 0; num5 < 6; num5 = (num4 | num3) + (num4 & num3)) - { - if (requiredQuestVariables[num5] == null) - { - _200C_206F_200F_202A_200B_206E_200D_206C_202D_200D_206F_200B_206E_202A_202A_206B_200D_202B_202B_200E_202B_206A_200C_202A_206E_200E_206F_200D_206E_200C_200F_202D_200F_206C_202D_202E_200C_200E_202A_200D_202E(logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(717523866), new object[1] { num5 }); - } - else - { - byte b = (byte)(questWork.Variables[num5] >> 4); - byte b2 = (byte)(questWork.Variables[num5] & 0xF); - using List<QuestWorkValue>.Enumerator enumerator = requiredQuestVariables[num5].GetEnumerator(); - num = 1830015771; - while (true) - { - int num6 = num; - num3 = 1830015762; - num4 = num6; - int? obj2; - int? obj; - switch ((num4 | num3) - (num4 & num3)) - { - case 11: - b3 = _206B_202C_206F_200D_202B_202E_202C_206D_200F_206F_206A_206F_202C_206F_200D_200C_200E_200B_200B_200C_202A_206B_206C_206B_200E_202D_200B_206F_202B_200F_206C_206B_206C_200D_206A_202C_202C_202D_202C_202D_202E(current); - num = (b3.HasValue ? 1830015766 : 1830015765); - break; - case 4: - obj2 = b3.GetValueOrDefault(); - goto IL_01b6; - case 0: - num = 1830015771; - break; - case 9: - num = (enumerator.MoveNext() ? 1830015760 : 1830015761); - break; - case 5: - obj = null; - goto IL_0306; - case 2: - current = enumerator.Current; - _200C_206F_200F_202A_200B_206E_200D_206C_202D_200D_206F_200B_206E_202A_202A_206B_200D_202B_202B_200E_202B_206A_200C_202A_206E_200E_206F_200D_206E_200C_200F_202D_200F_206C_202D_202E_200C_200E_202A_200D_202E(logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-826756493), new object[4] - { - _206B_202C_206F_200D_202B_202E_202C_206D_200F_206F_206A_206F_202C_206F_200D_200C_200E_200B_200B_200C_202A_206B_206C_206B_200E_202D_200B_206F_202B_200F_206C_206B_206C_200D_206A_202C_202C_202D_202C_202D_202E(current), - b, - _202C_202C_206F_200F_202D_200B_206B_202A_200F_200E_206D_206F_206F_206A_206F_202A_202A_206C_202B_202D_206E_200D_206D_202D_200C_206E_200C_200D_206F_206B_206A_202E_200B_206C_206A_202A_206D_202D_202C_200D_202E(current), - b2 - }); - b3 = _206B_202C_206F_200D_202B_202E_202C_206D_200F_206F_206A_206F_202C_206F_200D_200C_200E_200B_200B_200C_202A_206B_206C_206B_200E_202D_200B_206F_202B_200F_206C_206B_206C_200D_206A_202C_202C_202D_202C_202D_202E(current); - num = ((!b3.HasValue) ? 1830015763 : 1830015769); - break; - case 8: - b3 = _202C_202C_206F_200F_202D_200B_206B_202A_200F_200E_206D_206F_206F_206A_206F_202A_202A_206C_202B_202D_206E_200D_206D_202D_200C_206E_200C_200D_206F_206B_206A_202E_200B_206C_206A_202A_206D_202D_202C_200D_202E(current); - num = (b3.HasValue ? 1830015768 : 1830015767); - break; - case 7: - obj2 = null; - goto IL_01b6; - case 10: - obj = b3.GetValueOrDefault(); - goto IL_0306; - case 1: - b3 = _202C_202C_206F_200F_202D_200B_206B_202A_200F_200E_206D_206F_206F_206A_206F_202A_202A_206C_202B_202D_206E_200D_206D_202D_200C_206E_200C_200D_206F_206B_206A_202E_200B_206C_206A_202A_206D_202D_202C_200D_202E(current); - num = ((!b3.HasValue) ? 1830015764 : 1830015770); - break; - case 6: - return true; - case 3: - goto end_IL_012d; - IL_0306: - num = ((obj != b2) ? 1830015771 : 1830015764); - break; - IL_01b6: - num = ((obj2 != b) ? 1830015771 : 1830015763); - break; - } - continue; - end_IL_012d: - break; - } - } - int num7 = num5; - num3 = 1; - num4 = num7; - } - _200C_206F_200F_202A_200B_206E_200D_206C_202D_200D_206F_200B_206E_202A_202A_206B_200D_202B_202B_200E_202B_206A_200C_202A_206E_200E_206F_200D_206E_200C_200F_202D_200F_206C_202D_202E_200C_200E_202A_200D_202E(logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1053671033), Array.Empty<object>()); - return false; + logger.LogDebug("No RequiredQW {Index} defined", num); + continue; } + byte b = (byte)(questWork.Variables[num] >> 4); + byte b2 = (byte)(questWork.Variables[num] & 0xF); + foreach (QuestWorkValue item in requiredQuestVariables[num]) + { + logger.LogDebug("H: {ExpectedHigh} - {ActualHigh}, L: {ExpectedLow} - {ActualLow}", item.High, b, item.Low, b2); + if ((!item.High.HasValue || item.High == b) && (!item.Low.HasValue || item.Low == b2)) + { + return true; + } } } - } - - static EQuestWorkMode _202D_206B_200E_206D_200D_206A_206C_200D_206C_202C_202A_202A_200B_200B_206D_202D_206A_202E_200D_206F_206D_202C_206B_200B_200B_202E_202D_200E_206D_202B_202D_202D_202B_206A_200E_200B_202E_200E_200C_206D_202E(QuestWorkValue P_0) - { - return P_0.Mode; - } - - static byte? _206B_202C_206F_200D_202B_202E_202C_206D_200F_206F_206A_206F_202C_206F_200D_200C_200E_200B_200B_200C_202A_206B_206C_206B_200E_202D_200B_206F_202B_200F_206C_206B_206C_200D_206A_202C_202C_202D_202C_202D_202E(QuestWorkValue P_0) - { - return P_0.High; - } - - static byte? _202C_202C_206F_200F_202D_200B_206B_202A_200F_200E_206D_206F_206F_206A_206F_202A_202A_206C_202B_202D_206E_200D_206D_202D_200C_206E_200C_200D_206F_206B_206A_202E_200B_206C_206A_202A_206D_202D_202C_200D_202E(QuestWorkValue P_0) - { - return P_0.Low; - } - - static InvalidOperationException _202D_200F_200C_200B_202B_202D_200E_200F_206D_206B_200E_206C_202A_200C_206E_200D_202B_202A_206C_202B_202B_202A_202B_202B_202A_202A_200E_202C_200D_206A_202C_202B_206F_200C_200F_206C_200D_206D_206D_202E(string P_0) - { - return new InvalidOperationException(P_0); - } - - static void _200C_206F_200F_202A_200B_206E_200D_206C_202D_200D_206F_200B_206E_202A_202A_206B_200D_202B_202B_200E_202B_206A_200C_202A_206E_200E_206F_200D_206E_200C_200F_202D_200F_206C_202D_202E_200C_200E_202A_200D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); + logger.LogDebug("Required quest variables not matched"); + return false; } } diff --git a/Questionable/Questionable.Controller/AttunementController.cs b/Questionable/Questionable.Controller/AttunementController.cs index e124f6f..3f926e9 100644 --- a/Questionable/Questionable.Controller/AttunementController.cs +++ b/Questionable/Questionable.Controller/AttunementController.cs @@ -1,7 +1,5 @@ using System; -using System.Collections; using System.Collections.Generic; -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps; @@ -30,154 +28,41 @@ internal sealed class AttunementController : MiniTaskController<AttunementContro _gameFunctions = gameFunctions; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Start(string targetName, IEnumerable<ITask> tasks) { _currentTargetName = targetName; - _202C_200F_206C_200F_206C_206F_206E_206E_206B_202D_202D_200C_202B_202D_202D_206A_200E_206D_206E_200F_206E_206D_200C_206C_206B_206B_206A_200E_200C_206F_206C_202B_200E_206B_202A_206D_202A_206A_202E_206F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(447934629), new object[1] { targetName }); - IEnumerator<ITask> enumerator = tasks.GetEnumerator(); - try + _logger.LogInformation("Starting attunement: {Target}", targetName); + foreach (ITask task in tasks) { - int num = -1031196198; - while (true) - { - int num2 = num; - int num3 = -1031196198; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1031196198; - break; - case 0: - num = (_200E_200D_200B_200C_206C_206E_206C_206F_202E_200C_202D_202A_206E_200F_200D_200B_202D_200D_206C_202D_206E_202E_200F_206A_206E_206A_202B_206A_206B_200C_206F_206E_206C_200B_202A_206F_206C_202D_200E_206F_202E((IEnumerator)enumerator) ? (-1031196197) : (-1031196199)); - break; - case 1: - { - ITask current = enumerator.Current; - _taskQueue.Enqueue(current); - num = -1031196198; - break; - } - case 3: - return; - } - } - } - finally - { - int num = ((enumerator == null) ? (-1448008366) : (-1448008367)); - while (true) - { - int num5 = num; - int num3 = -1448008365; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 1: - goto end_IL_00cf; - case 2: - _202B_200D_206D_200C_200D_200D_206A_200E_202D_202C_206B_202E_206F_200F_206A_202C_202E_206A_202A_202C_206F_200B_206F_202B_200F_200E_202C_206A_200B_200B_206C_206F_200C_200D_206A_206A_200D_200E_206A_200D_202E((IDisposable)enumerator); - num = -1448008366; - break; - case 0: - num = -1448008367; - break; - } - continue; - end_IL_00cf: - break; - } + _taskQueue.Enqueue(task); } } - [MethodImpl(MethodImplOptions.NoInlining)] public void Update() { - int num = ((_currentTargetName != null) ? (-1300283249) : (-1300283261)); - while (true) + if (_currentTargetName != null && !_movementController.IsPathfinding && !_movementController.IsPathRunning && !_gameFunctions.IsOccupied()) { - int num2 = num; - int num3 = -1300283257; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (_taskQueue.AllTasksComplete) + { + _logger.LogInformation("Attunement complete: {Target}", _currentTargetName); + Stop("Attunement complete"); + } + else { - case 2: - num = ((!_movementController.IsPathRunning) ? (-1300283264) : (-1300283260)); - break; - case 1: - _202C_200F_206C_200F_206C_206F_206E_206E_206B_202D_202D_200C_202B_202D_202D_206A_200E_206D_206E_200F_206E_206D_200C_206C_206B_206B_206A_200E_200C_206F_206C_202B_200E_206B_202A_206D_202A_206A_202E_206F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1369637439), new object[1] { _currentTargetName }); - Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(88017175)); - return; - case 5: - return; - case 3: - return; - case 8: - num = (_movementController.IsPathfinding ? (-1300283260) : (-1300283259)); - break; - case 4: - return; - case 9: - num = -1300283261; - break; - case 0: - num = ((!_taskQueue.AllTasksComplete) ? (-1300283263) : (-1300283258)); - break; - case 6: UpdateCurrentTask(); - return; - case 7: - num = ((!_gameFunctions.IsOccupied()) ? (-1300283257) : (-1300283262)); - break; } } } - [MethodImpl(MethodImplOptions.NoInlining)] public override void Stop(string label) { base.Stop(label); - int num = ((_currentTargetName == null) ? (-931001069) : (-931001072)); - while (true) + if (_currentTargetName != null) { - int num2 = num; - int num3 = -931001071; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return; - case 1: - CompletedSuccessfully = _taskQueue.AllTasksComplete; - _202C_200F_206C_200F_206C_206F_206E_206E_206B_202D_202D_200C_202B_202D_202D_206A_200E_206D_206E_200F_206E_206D_200C_206C_206B_206B_206A_200E_200C_206F_206C_202B_200E_206B_202A_206D_202A_206A_202E_206F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(745396372), new object[1] { label }); - _currentTargetName = null; - _taskQueue.Reset(); - num = -931001069; - break; - case 0: - num = -931001072; - break; - } + CompletedSuccessfully = _taskQueue.AllTasksComplete; + _logger.LogInformation("Stopping attunement: {Label}", label); + _currentTargetName = null; + _taskQueue.Reset(); } } - - static void _202C_200F_206C_200F_206C_206F_206E_206E_206B_202D_202D_200C_202B_202D_202D_206A_200E_206D_206E_200F_206E_206D_200C_206C_206B_206B_206A_200E_200C_206F_206C_202B_200E_206B_202A_206D_202A_206A_202E_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static bool _200E_200D_200B_200C_206C_206E_206C_206F_202E_200C_202D_202A_206E_200F_200D_200B_202D_200D_206C_202D_206E_202E_200F_206A_206E_206A_202B_206A_206B_200C_206F_206E_206C_200B_202A_206F_206C_202D_200E_206F_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202B_200D_206D_200C_200D_200D_206A_200E_202D_202C_206B_202E_206F_200F_206A_202C_202E_206A_202A_202C_206F_200B_206F_202B_200F_200E_202C_206A_200B_200B_206C_206F_200C_200D_206A_206A_200D_200E_206A_200D_202E(IDisposable P_0) - { - P_0.Dispose(); - } } diff --git a/Questionable/Questionable.Controller/CombatController.cs b/Questionable/Questionable.Controller/CombatController.cs index bac30cb..cb6b6f0 100644 --- a/Questionable/Questionable.Controller/CombatController.cs +++ b/Questionable/Questionable.Controller/CombatController.cs @@ -1,10 +1,7 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.Enums; @@ -17,10 +14,10 @@ using FFXIVClientStructs.FFXIV.Client.Game.Object; using FFXIVClientStructs.FFXIV.Client.Game.UI; using FFXIVClientStructs.FFXIV.Client.System.Framework; using FFXIVClientStructs.FFXIV.Common.Component.BGCollision; -using Lumina.Excel; using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.Controller.CombatModules; +using Questionable.Controller.Steps; using Questionable.Controller.Utils; using Questionable.External; using Questionable.Functions; @@ -123,7 +120,6 @@ internal sealed class CombatController : IDisposable public bool IsRunning => _currentFight != null; - [MethodImpl(MethodImplOptions.NoInlining)] public CombatController(IEnumerable<ICombatModule> combatModules, MovementController movementController, GameFunctions gameFunctions, BossModIpc bossModIpc, ITargetManager targetManager, IObjectTable objectTable, ICondition condition, IClientState clientState, QuestFunctions questFunctions, IToastGui toastGui, IDataManager dataManager, ILogger<CombatController> logger) { _combatModules = combatModules.ToList(); @@ -137,1805 +133,600 @@ internal sealed class CombatController : IDisposable _questFunctions = questFunctions; _toastGui = toastGui; _logger = logger; - _200C_206B_206A_200E_200C_200C_202D_200C_202D_200F_200B_202E_202C_200B_200B_202D_200B_202C_200D_206A_202C_206C_206B_202D_206D_202B_200F_206C_202A_200D_202E_202D_206B_200F_206E_206B_202C_202C_206E_206B_202E(_clientState, (Action<uint>)TerritoryChanged); - _200B_206F_202C_206C_200D_200D_202A_206B_202D_200D_206C_206D_202C_206B_202C_206E_200F_202C_202B_200C_200B_206D_200F_200B_206B_200F_202A_202A_200C_206F_206D_206D_202B_206F_202C_206D_206B_200E_206C_202E_202E(toastGui, (IToastGui.OnErrorToastDelegate)OnErrorToast); + _clientState.TerritoryChanged += TerritoryChanged; + toastGui.ErrorToast += OnErrorToast; try { _cannotSeeTargetText = dataManager.GetExcelSheet<LogMessage>()?.GetRowOrDefault(562u)?.Text.ExtractText(); } - catch (Exception ex) + catch (Exception exception) { - _206B_202A_206B_200B_206A_202A_206C_200C_200F_206C_206B_202C_206E_202B_200E_200B_206C_200D_200E_202C_206C_206A_202D_206F_202E_202D_202E_206B_202E_202A_206E_202B_200B_202B_202D_200C_202D_202D_200D_202B_202E((ILogger)_logger, ex, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1180856396), Array.Empty<object>()); + _logger.LogDebug(exception, "Failed to load LoS failure text from game data"); _cannotSeeTargetText = null; } } - [MethodImpl(MethodImplOptions.NoInlining)] public bool Start(CombatData combatData) { - Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-348007694)); + Stop("Starting combat"); ICombatModule combatModule = _combatModules.FirstOrDefault((ICombatModule x) => x.CanHandleFight(combatData)); - int num = ((combatModule != null) ? 1913469931 : 1913469923); - ItemUseModule itemUseModule = default(ItemUseModule); - bool wasInCombat = default(bool); - while (true) + if (combatModule == null) { - int num2 = num; - int num3 = 1913469931; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 4: - _bossModIpc.EnableAi(BossModIpc.EPreset.Passive); - _passiveBossModEnabled = true; - num = 1913469921; - break; - case 6: - num = 1913469923; - break; - case 0: - num = (combatModule.Start(combatData) ? 1913469928 : 1913469929); - break; - case 14: - if (!(itemUseModule.Delegate is BossModModule)) - { - goto case 15; - } - goto case 13; - case 3: - { - _currentFight = new CurrentFight - { - Module = combatModule, - Data = combatData, - LastDistanceCheck = _200D_206B_206D_206C_200C_206F_200E_200C_202D_202A_200D_202D_202D_200B_206F_200C_202D_206B_202C_206B_200B_200B_200C_206A_202A_200D_206F_202E_200B_200F_200F_200C_200E_200F_200C_200F_200D_202D_202B_206F_202E() - }; - EEnemySpawnType spawnType = combatData.SpawnType; - num = (((uint)(spawnType - 8) > 1u) ? 1913469932 : 1913469930); - break; - } - case 12: - _wasInCombat = wasInCombat; - UpdateLastTargetAndQuestVariables(null); - _206C_206D_206E_202D_202D_202C_200B_206B_200E_206C_202A_206B_202A_200B_206D_200F_206E_202C_200F_206C_202B_206B_206F_206F_200B_206B_206D_206A_206A_200F_206F_206F_206C_206A_206E_202B_206E_200B_202C_206C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1561736538), new object[4] - { - _206D_206D_206A_206E_202A_206B_206E_202E_200E_206B_200C_206C_202A_200B_202B_202C_200E_202A_200D_206B_200B_202A_202A_206A_200B_200E_200D_206B_200F_202E_202C_200B_206E_206B_200E_202B_200E_200F_206A_206F_202E((MemberInfo)_202D_206B_206A_202A_200D_206C_206A_206D_200F_200B_202D_206A_200F_200B_200D_200D_206F_202E_200B_206A_206D_202D_200D_206A_200D_206E_200F_206D_202A_200F_202E_206C_202B_202E_206B_202C_206E_206F_206D_206E_202E((object)combatModule)), - combatData.SpawnType, - _bossModIpc.Variant, - _bossModIpc.IsSupported() - }); - num = ((combatModule is BossModModule) ? 1913469926 : 1913469920); - break; - case 7: - wasInCombat = false; - num = 1913469927; - break; - case 1: - wasInCombat = true; - num = 1913469927; - break; - case 11: - itemUseModule = combatModule as ItemUseModule; - num = ((itemUseModule == null) ? 1913469924 : 1913469925); - break; - case 15: - num = 1913469922; - break; - case 13: - num = 1913469921; - break; - case 10: - return true; - case 9: - num = ((!_bossModIpc.IsSupported()) ? 1913469921 : 1913469934); - break; - case 8: - return false; - case 5: - num = ((combatData.SpawnType == EEnemySpawnType.QuestInterruption) ? 1913469921 : 1913469935); - break; - } + return false; } + if (!combatModule.Start(combatData)) + { + return false; + } + _currentFight = new CurrentFight + { + Module = combatModule, + Data = combatData, + LastDistanceCheck = Environment.TickCount64 + }; + EEnemySpawnType spawnType = combatData.SpawnType; + bool wasInCombat = (uint)(spawnType - 8) <= 1u; + _wasInCombat = wasInCombat; + UpdateLastTargetAndQuestVariables(null); + _logger.LogDebug("Combat started: Module={Module}, SpawnType={SpawnType}, BossModVariant={Variant}, BossModSupported={Supported}", combatModule.GetType().Name, combatData.SpawnType, _bossModIpc.Variant, _bossModIpc.IsSupported()); + if (!(combatModule is BossModModule) && (!(combatModule is ItemUseModule itemUseModule) || !(itemUseModule.Delegate is BossModModule)) && _bossModIpc.IsSupported() && combatData.SpawnType != EEnemySpawnType.QuestInterruption) + { + _bossModIpc.EnableAi(BossModIpc.EPreset.Passive); + _passiveBossModEnabled = true; + } + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public EStatus Update() { - //Discarded unreachable code: IL_04dc - int num = ((_currentFight != null) ? (-1239032390) : (-1239032400)); - QuestProgressInfo questProgressInfo = default(QuestProgressInfo); - IGameObject gameObject3 = default(IGameObject); - ElementId elementId = default(ElementId); - IGameObject gameObject2 = default(IGameObject); - IGameObject gameObject = default(IGameObject); - int item = default(int); - int num6 = default(int); - while (true) + if (_currentFight == null) { - int num2 = num; - int num3 = -1239032412; - int num4 = num2; - int num5; - object obj; - switch ((num4 | num3) - (num4 & num3)) + return EStatus.Complete; + } + if (_movementController.IsPathfinding || _movementController.IsPathRunning || !_movementController.HasBeenMovingForAtLeast(1000)) + { + return EStatus.Moving; + } + if (_currentFight.Data.SpawnType == EEnemySpawnType.OverworldEnemies) + { + if (_targetManager.Target != null) { - case 4: - num = (_movementController.HasBeenMovingForAtLeast(1000) ? (-1239032415) : (-1239032399)); - break; - case 14: - num = ((questProgressInfo.Sequence != _currentFight.Data.Sequence) ? (-1239032393) : (-1239032394)); - break; - case 0: - TrackKillIfNeeded(gameObject3); - elementId = _currentFight.Data.ElementId; - num = (_202E_206B_200F_202A_200E_206E_206F_206E_206F_200D_202E_206E_206B_200B_202E_206B_200C_206C_200E_206D_200D_200D_202D_206F_206D_206F_202C_200E_206B_202D_202B_200C_202E_200D_206C_202A_200B_200C_202B_206D_202E(elementId, (ElementId)null) ? (-1239032398) : (-1239032387)); - break; - case 16: - gameObject3 = _objectTable.FirstOrDefault((IGameObject x) => _202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(x) == _lastTargetId); - num = ((gameObject3 == null) ? (-1239032388) : (-1239032386)); - break; - case 17: - _lastTargetId = _202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(_202B_202A_206E_200C_206F_202D_206D_206C_202D_200B_200E_206D_206C_206E_202D_206D_206D_202C_206D_202B_206C_200B_206E_202D_202C_206B_202A_202D_206E_200B_202B_206A_200D_206C_200F_200F_206D_206B_200E_200E_202E(_targetManager)); - num = -1239032403; - break; - case 10: - num5 = GetKillPriority(gameObject2).Priority; - goto IL_01c9; - case 22: - obj = _questFunctions.GetQuestProgressInfo(elementId); - goto IL_01ea; - case 19: - num = ((questProgressInfo == null) ? (-1239032389) : (-1239032404)); - break; - case 1: - num = ((_previousQuestVariables == null) ? (-1239032389) : (-1239032408)); - break; - case 18: - num = ((!QuestWorkUtils.HasCompletionFlags(_currentFight.Data.CompletionQuestVariablesFlags)) ? (-1239032393) : (-1239032407)); - break; - case 8: - num = ((questProgressInfo.Sequence != _currentFight.Data.Sequence) ? (-1239032389) : (-1239032411)); - break; - case 2: - num = ((_202B_202A_206E_200C_206F_202D_206D_206C_202D_200B_200E_206D_206C_206E_202D_206D_206D_202C_206D_202B_206C_200B_206E_202D_202C_206B_202A_202D_206E_200B_202B_206A_200D_206C_200F_200F_206D_206B_200E_200E_202E(_targetManager) == null) ? (-1239032397) : (-1239032395)); - break; - case 6: - if (!IsMovingOrShouldMove(gameObject)) - { - goto case 24; - } - goto IL_05c8; - case 24: - _lastTargetId = null; - num = -1239032403; - break; - case 26: - num = ((!_206C_202D_206B_206B_200B_200C_206C_202E_200D_206B_200E_206F_206B_206A_202C_206D_206E_206F_202B_202E_202D_200E_200E_202B_202E_206A_200F_200E_206C_202E_206E_206A_202B_202B_202A_206D_206B_206E_202A_200C_202E(gameObject3)) ? (-1239032403) : (-1239032412)); - break; - case 12: - num = (questProgressInfo.Variables.SequenceEqual(_previousQuestVariables) ? (-1239032389) : (-1239032392)); - break; - case 28: - UpdateLastTargetAndQuestVariables(null); - num = -1239032403; - break; - case 9: + _lastTargetId = _targetManager.Target.GameObjectId; + } + else if (_lastTargetId.HasValue) { - gameObject = _202B_202A_206E_200C_206F_202D_206D_206C_202D_200B_200E_206D_206C_206E_202D_206D_206D_202C_206D_202B_206C_200B_206E_202D_202C_206B_202A_202D_206E_200B_202B_206A_200D_206C_200F_200F_206D_206B_200E_200E_202E(_targetManager); + IGameObject gameObject = _objectTable.FirstOrDefault((IGameObject x) => x.GameObjectId == _lastTargetId); if (gameObject != null) { - num = -1239032385; - break; - } - IGameObject gameObject4 = FindNextTarget(); - if (gameObject4 != null && !_206C_202D_206B_206B_200B_200C_206C_202E_200D_206B_200E_206F_206B_206A_202C_206D_206E_206F_202B_202E_202D_200E_200E_202B_202E_206A_200F_200E_206C_202E_206E_206A_202B_202B_202A_206D_206B_206E_202A_200C_202E(gameObject4)) - { - SetTarget(gameObject4); - num = 1009368120; - goto IL_0524; - } - goto IL_05c8; - } - case 11: - num = (_movementController.IsPathRunning ? (-1239032399) : (-1239032416)); - break; - case 5: - num = ((_currentFight.Data.SpawnType != EEnemySpawnType.OverworldEnemies) ? (-1239032403) : (-1239032410)); - break; - case 3: - return EStatus.InCombat; - case 30: - num = (_movementController.IsPathfinding ? (-1239032399) : (-1239032401)); - break; - case 31: - return EStatus.InCombat; - case 29: - num5 = 0; - goto IL_01c9; - case 15: - if (gameObject2.Equals(gameObject)) - { - num = -1239032414; - break; - } - goto IL_0505; - case 25: - obj = null; - goto IL_01ea; - case 27: - item = GetKillPriority(gameObject).Priority; - gameObject2 = FindNextTarget(); - num = ((gameObject2 != null) ? (-1239032402) : (-1239032391)); - break; - case 21: - return EStatus.Moving; - case 7: - num = -1239032400; - break; - case 20: - return EStatus.Complete; - case 13: - num = ((!QuestWorkUtils.MatchesQuestWork(_currentFight.Data.CompletionQuestVariablesFlags, questProgressInfo)) ? (-1239032393) : (-1239032409)); - break; - case 23: - { - num = ((!_lastTargetId.HasValue) ? (-1239032403) : (-1239032396)); - break; - } - IL_01ea: - questProgressInfo = (QuestProgressInfo)obj; - num = ((questProgressInfo == null) ? (-1239032393) : (-1239032406)); - break; - IL_01c9: - num6 = num5; - if (gameObject2 != null) - { - num = -1239032405; - break; - } - goto IL_0505; - IL_0505: - num = ((gameObject2 == null) ? 1009368117 : 1009368126); - goto IL_0524; - IL_0524: - while (true) - { - int num7 = num; - num3 = 1009368124; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) + if (gameObject.IsDead) { - default: - continue; - case 0: - return EStatus.InCombat; - case 6: - _wasInCombat = true; - return EStatus.InCombat; - case 9: - SetTarget(null); - break; - case 5: - return EStatus.Complete; - case 7: - SetTarget(gameObject2); - num = 1009368120; - continue; - case 4: - break; - case 3: - num = ((!_wasInCombat) ? 1009368124 : 1009368121); - continue; - case 2: - num = ((num6 > item) ? 1009368123 : 1009368125); - continue; - case 8: - num = 1009368126; - continue; - case 1: - num = ((item != 0) ? 1009368120 : 1009368123); - continue; + TrackKillIfNeeded(gameObject); + ElementId elementId = _currentFight.Data.ElementId; + QuestProgressInfo questProgressInfo = ((elementId != null) ? _questFunctions.GetQuestProgressInfo(elementId) : null); + if (questProgressInfo != null && questProgressInfo.Sequence == _currentFight.Data.Sequence && QuestWorkUtils.HasCompletionFlags(_currentFight.Data.CompletionQuestVariablesFlags) && QuestWorkUtils.MatchesQuestWork(_currentFight.Data.CompletionQuestVariablesFlags, questProgressInfo)) + { + return EStatus.InCombat; + } + if (questProgressInfo == null || questProgressInfo.Sequence != _currentFight.Data.Sequence || _previousQuestVariables == null || questProgressInfo.Variables.SequenceEqual(_previousQuestVariables)) + { + return EStatus.InCombat; + } + UpdateLastTargetAndQuestVariables(null); } - break; } - goto IL_05c8; - IL_05c8: - num = ((!_202C_200D_202C_202A_202C_206C_202D_200C_200D_200F_202C_206C_206C_206E_206E_206B_202A_200E_202E_206A_202A_200C_206F_206A_206B_200D_206B_206F_206D_206A_200C_206C_202A_202A_202A_206D_202D_200D_202E_206A_202E(_condition, ConditionFlag.InCombat)) ? 1009368127 : 1009368122); - goto IL_0524; + else + { + _lastTargetId = null; + } } } + IGameObject target = _targetManager.Target; + if (target != null) + { + int item = GetKillPriority(target).Priority; + IGameObject gameObject2 = FindNextTarget(); + int num = ((gameObject2 != null) ? GetKillPriority(gameObject2).Priority : 0); + if (gameObject2 != null && gameObject2.Equals(target)) + { + if (!IsMovingOrShouldMove(target)) + { + try + { + _currentFight.Module.Update(target); + } + catch (TaskException) + { + Stop("Combat module failure"); + throw; + } + } + } + else if (gameObject2 != null) + { + if (num > item || item == 0) + { + SetTarget(gameObject2); + } + } + else + { + SetTarget(null); + } + } + else + { + IGameObject gameObject3 = FindNextTarget(); + if (gameObject3 != null && !gameObject3.IsDead) + { + SetTarget(gameObject3); + } + } + if (_condition[ConditionFlag.InCombat]) + { + _wasInCombat = true; + return EStatus.InCombat; + } + if (_wasInCombat) + { + return EStatus.Complete; + } + return EStatus.InCombat; } - [MethodImpl(MethodImplOptions.NoInlining)] private void TrackKillIfNeeded(IGameObject deadEnemy) { - int num = ((_currentFight == null) ? (-205896997) : (-205897020)); - ComplexCombatData complexCombatData = default(ComplexCombatData); - List<ComplexCombatData> complexCombatDatas = default(List<ComplexCombatData>); - int num7 = default(int); - IBattleNpc battleNpc = default(IBattleNpc); - while (true) + if (_currentFight == null || !(deadEnemy is IBattleNpc battleNpc) || !_currentFight.CountedEnemies.Add(deadEnemy.GameObjectId)) { - int num2 = num; - int num3 = -205897004; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + List<ComplexCombatData> complexCombatDatas = _currentFight.Data.ComplexCombatDatas; + for (int i = 0; i < complexCombatDatas.Count; i++) + { + ComplexCombatData complexCombatData = complexCombatDatas[i]; + if (complexCombatData.DataId == battleNpc.BaseId && (!complexCombatData.NameId.HasValue || complexCombatData.NameId == battleNpc.NameId) && complexCombatData.MinimumKillCount.HasValue) { - case 12: - num = ((!_206C_200B_206D_202C_200C_202D_200E_200C_200C_202D_200E_206D_200B_200C_206C_202E_206A_206C_200C_206E_206E_206A_200C_200C_206B_206A_206B_202A_206D_202A_206E_206E_206C_200E_200B_202B_202C_200E_206E_202E(complexCombatData).HasValue) ? (-205896995) : (-205896998)); - break; - case 4: - complexCombatDatas = _currentFight.Data.ComplexCombatDatas; - num7 = 0; - num = -205897003; - break; - case 15: - return; - case 0: - num = -205897020; - break; - case 6: - complexCombatData = complexCombatDatas[num7]; - num = ((_206C_206F_202B_202E_206D_200E_202A_200F_200E_200B_206D_206A_200F_200B_200D_206B_200C_200C_202E_200B_200B_200E_202B_202D_202A_206C_206E_200B_206B_206F_202A_202E_202B_200C_202C_206F_202A_202B_200F_202D_202E(complexCombatData) != _206F_202D_200F_200E_206F_206C_200C_200E_206E_206D_200F_202D_200E_202D_206B_200D_202B_202D_200E_202C_206B_202B_202C_202A_202C_202D_202A_206B_206B_200D_202B_202E_200C_200F_202C_206C_202D_206B_202D_206F_202E((IGameObject)battleNpc)) ? (-205896996) : (-205897000)); - break; - case 1: - num = ((num7 < complexCombatDatas.Count) ? (-205897006) : (-205896999)); - break; - case 13: - num = ((complexCombatDatas.Count != 0) ? (-205897001) : (-205896993)); - break; - case 9: - num = ((!_206B_206C_200C_200F_200F_206A_200F_202A_206D_206C_202E_202B_202C_202D_202A_206B_206C_200E_206A_202D_202C_206D_202E_206A_200D_200C_200E_206B_206A_206E_200C_200C_206B_202E_202C_206C_202A_200B_206B_206C_202E(complexCombatData).HasValue) ? (-205896996) : (-205897002)); - break; - case 3: - return; - case 14: - num = ((_206C_200B_206D_202C_200C_202D_200E_200C_200C_202D_200E_206D_200B_200C_206C_202E_206A_206C_200C_206E_206E_206A_200C_200C_206B_206A_206B_202A_206D_202A_206E_206E_206C_200E_200B_202B_202C_200E_206E_202E(complexCombatData) != _206A_206F_206D_206B_200B_200C_206B_202A_200C_202C_206B_206C_202D_200F_206D_206A_200F_202A_200D_206B_200D_202B_200F_206F_202C_202D_200D_200D_200C_206D_200C_200B_206D_202A_206E_206F_200F_206E_202E((ICharacter)battleNpc)) ? (-205896996) : (-205896995)); - break; - case 2: - { - int totalKillCount = (_currentFight.KillCountsByComplexDataIndex[num7] = _currentFight.KillCountsByComplexDataIndex.GetValueOrDefault(num7) + 1); - int num13 = totalKillCount; - _206C_206D_206E_202D_202D_202C_200B_206B_200E_206C_202A_206B_202A_200B_206D_200F_206E_202C_200F_206C_202B_206B_206F_206F_200B_206B_206D_206A_206A_200F_206F_206F_206C_206A_206E_202B_206E_200B_202C_206C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1964999202), new object[4] - { - num7, - _206C_206F_202B_202E_206D_200E_202A_200F_200E_200B_206D_206A_200F_200B_200D_206B_200C_200C_202E_200B_200B_200E_202B_202D_202A_206C_206E_200B_206B_206F_202A_202E_202B_200C_202C_206F_202A_202B_200F_202D_202E(complexCombatData), - num13, - _206B_206C_200C_200F_200F_206A_200F_202A_206D_206C_202E_202B_202C_202D_202A_206B_206C_200E_206A_202D_202C_206D_202E_206A_200D_200C_200E_206B_206A_206E_200C_200C_206B_202E_202C_206C_202A_200B_206B_206C_202E(complexCombatData).Value - }); - return; - } - case 16: - battleNpc = deadEnemy as IBattleNpc; - num = ((battleNpc != null) ? (-205897005) : (-205896997)); - break; - case 8: - { - int num11 = num7; - num3 = 1; - num4 = num11; - num7 = (num4 | num3) + (num4 & num3); - num = -205897003; - break; - } - case 5: - { - CurrentFight? currentFight = _currentFight; - int totalKillCount = currentFight.TotalKillCount; - int num8 = totalKillCount; - num3 = 1; - num4 = num8; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - currentFight.TotalKillCount = num9 + (num10 + num10); - _206C_206D_206E_202D_202D_202C_200B_206B_200E_206C_202A_206B_202A_200B_206D_200F_206E_202C_200F_206C_202B_206B_206F_206F_200B_206B_206D_206A_206A_200F_206F_206F_206C_206A_206E_202B_206E_200B_202C_206C_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1495434167), new object[2] - { - _206F_202D_200F_200E_206F_206C_200C_200E_206E_206D_200F_202D_200E_202D_206B_200D_202B_202D_200E_202C_206B_202B_202C_202A_202C_202D_202A_206B_206B_200D_202B_202E_200C_200F_202C_206C_202D_206B_202D_206F_202E((IGameObject)battleNpc), - _currentFight.TotalKillCount - }); - num = -205897001; - break; - } - case 11: - num = ((!_currentFight.Data.KillEnemyDataIds.Contains(_206F_202D_200F_200E_206F_206C_200C_200E_206E_206D_200F_202D_200E_202D_206B_200D_202B_202D_200E_202C_206B_202B_202C_202A_202C_202D_202A_206B_206B_200D_202B_202E_200C_200F_202C_206C_202D_206B_202D_206F_202E((IGameObject)battleNpc))) ? (-205897001) : (-205897007)); - break; - case 7: - num = (_currentFight.CountedEnemies.Add(_202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(deadEnemy)) ? (-205897008) : (-205896994)); - break; - case 10: + int num = (_currentFight.KillCountsByComplexDataIndex[i] = _currentFight.KillCountsByComplexDataIndex.GetValueOrDefault(i) + 1); + int num3 = num; + _logger.LogDebug("Tracked kill for ComplexCombatData[{Index}] ({DataId}): {Count}/{Required}", i, complexCombatData.DataId, num3, complexCombatData.MinimumKillCount.Value); return; } } + if (complexCombatDatas.Count == 0 && _currentFight.Data.KillEnemyDataIds.Contains(battleNpc.BaseId)) + { + _currentFight.TotalKillCount++; + _logger.LogDebug("Tracked kill for KillEnemyDataIds ({DataId}): Total count = {Count}", battleNpc.BaseId, _currentFight.TotalKillCount); + } } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe IGameObject? FindNextTarget() { - int num = ((_currentFight != null) ? (-1488947359) : (-1488947333)); - Vector3 vector; - int num5 = default(int); - ComplexCombatData complexCombatData = default(ComplexCombatData); - bool flag = default(bool); - bool flag2 = default(bool); - QuestProgressInfo questProgressInfo = default(QuestProgressInfo); - int valueOrDefault = default(int); - List<ComplexCombatData> complexCombatDatas = default(List<ComplexCombatData>); - bool hasValue = default(bool); - int inventoryItemCount = default(int); - bool flag4 = default(bool); - QuestId questId = default(QuestId); - IPlayerCharacter playerCharacter = default(IPlayerCharacter); - bool flag3 = default(bool); - while (true) + if (_currentFight == null) { - int num2 = num; - int num3 = -1488947345; - int num4 = num2; - int num10; - bool num11; - switch ((num4 | num3) - (num4 & num3)) + return null; + } + List<ComplexCombatData> complexCombatDatas = _currentFight.Data.ComplexCombatDatas; + if (complexCombatDatas.Count > 0) + { + for (int i = 0; i < complexCombatDatas.Count; i++) { - default: - continue; - case 4: - vector = Vector3.Zero; - break; - case 19: - { - int num6 = num5; - num3 = 1; - num4 = num6; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - num5 = num7 + (num8 + num8); - num = -1488947336; - continue; - } - case 25: - num = (_currentFight.Data.CompletedComplexDatas.Contains(num5) ? (-1488947332) : (-1488947337)); - continue; - case 10: - _206C_206D_206E_202D_202D_202C_200B_206B_200E_206C_202A_206B_202A_200B_206D_200F_206E_202C_200F_206C_202B_206B_206F_206F_200B_206B_206D_206A_206A_200F_206F_206F_206C_206A_206E_202B_206E_200B_202C_206C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1671303027), new object[4] + if (_currentFight.Data.CompletedComplexDatas.Contains(i)) { - num5, - _206C_206F_202B_202E_206D_200E_202A_200F_200E_200B_206D_206A_200F_200B_200D_206B_200C_200C_202E_200B_200B_200E_202B_202D_202A_206C_206E_200B_206B_206F_202A_202E_202B_200C_202C_206F_202A_202B_200F_202D_202E(complexCombatData), - flag, - flag2 - }); - _currentFight.Data.CompletedComplexDatas.Add(num5); - num = -1488947332; - continue; - case 1: - if (QuestWorkUtils.MatchesQuestWork(_206F_202C_206B_200C_202D_202A_200B_206B_200B_206C_200E_202D_200D_200D_200D_206F_206B_206B_200D_200C_206E_200D_206A_202D_202D_202A_200C_200C_200C_206A_200F_200E_202B_206F_200C_202D_200D_202E_202B_200C_202E(complexCombatData), questProgressInfo)) - { - num = -1488947339; continue; } - goto case 21; - case 3: - num = -1488947333; - continue; - case 18: - valueOrDefault = _currentFight.KillCountsByComplexDataIndex.GetValueOrDefault(num5, 0); - flag = valueOrDefault >= _206B_206C_200C_200F_200F_206A_200F_202A_206D_206C_202E_202B_202C_202D_202A_206B_206C_200E_206A_202D_202C_206D_202E_206A_200D_200C_200E_206B_206A_206E_200C_200C_206B_202E_202C_206C_202A_200B_206B_206C_202E(complexCombatData).Value; - num = ((!flag) ? (-1488947354) : (-1488947330)); - continue; - case 24: - complexCombatData = complexCombatDatas[num5]; - hasValue = _206B_206C_200C_200F_200F_206A_200F_202A_206D_206C_202E_202B_202C_202D_202A_206B_206C_200E_206A_202D_202C_206D_202E_206A_200D_200C_200E_206B_206A_206E_200C_200C_206B_202E_202C_206C_202A_200B_206B_206C_202E(complexCombatData).HasValue; - num = ((!_200F_202D_206D_200B_202D_202C_206E_202B_200B_202B_200D_206E_200D_202E_200C_200C_202E_206E_202E_206A_202D_200D_206A_206D_202A_206F_200F_206A_200D_202E_206E_200B_202B_200F_206D_200E_202C_202C_200E_202D_202E(complexCombatData).HasValue) ? (-1488947350) : (-1488947351)); - continue; - case 26: - _206C_206D_206E_202D_202D_202C_200B_206B_200E_206C_202A_206B_202A_200B_206D_200F_206E_202C_200F_206C_202B_206B_206F_206F_200B_206B_206D_206A_206A_200F_206F_206F_206C_206A_206E_202B_206E_200B_202C_206C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(335245466), new object[2] + ComplexCombatData complexCombatData = complexCombatDatas[i]; + bool hasValue = complexCombatData.MinimumKillCount.HasValue; + bool flag = complexCombatData.RewardItemId.HasValue && complexCombatData.RewardItemCount.HasValue; + bool flag2 = QuestWorkUtils.HasCompletionFlags(complexCombatData.CompletionQuestVariablesFlags); + if (hasValue || flag) { - num5, - _206C_206F_202B_202E_206D_200E_202A_200F_200E_200B_206D_206A_200F_200B_200D_206B_200C_200C_202E_200B_200B_200E_202B_202D_202A_206C_206E_200B_206B_206F_202A_202E_202B_200C_202C_206F_202A_202B_200F_202D_202E(complexCombatData) - }); - _currentFight.Data.CompletedComplexDatas.Add(num5); - num = -1488947332; - continue; - case 7: - _206C_206D_206E_202D_202D_202C_200B_206B_200E_206C_202A_206B_202A_200B_206D_200F_206E_202C_200F_206C_202B_206B_206F_206F_200B_206B_206D_206A_206A_200F_206F_206F_206C_206A_206E_202B_206E_200B_202C_206C_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(541601402), new object[4] - { - num5, - _200F_202D_206D_200B_202D_202C_206E_202B_200B_202B_200D_206E_200D_202E_200C_200C_202E_206E_202E_206A_202D_200D_206A_206D_202A_206F_200F_206A_200D_202E_206E_200B_202B_200F_206D_200E_202C_202C_200E_202D_202E(complexCombatData).Value, - inventoryItemCount, - _200F_206A_202E_202E_202D_202B_200D_206B_202D_202C_200E_202C_206C_200B_206A_200B_200B_202C_202D_206F_206A_202E_200E_202A_206C_206E_206E_200D_200C_200F_200B_206A_202C_202D_206D_200B_206E_202D_206E_202C_202E(complexCombatData).Value - }); - num = -1488947329; - continue; - case 12: - num = ((!flag4) ? (-1488947332) : (-1488947360)); - continue; - case 11: - questProgressInfo = _questFunctions.GetQuestProgressInfo(questId); - num = ((questProgressInfo == null) ? (-1488947334) : (-1488947346)); - continue; - case 15: - questId = _currentFight.Data.ElementId as QuestId; - num = (((object)questId == null) ? (-1488947332) : (-1488947356)); - continue; - case 5: - num10 = 0; - goto IL_0391; - case 2: - playerCharacter = _200D_206C_200C_200C_206E_200C_206B_202D_200F_202A_200B_206B_206A_202B_206D_200D_202C_200B_200D_206B_200D_202D_200B_202B_200E_206D_200C_202C_202B_200D_202E_202C_206A_202C_200C_206A_206B_206F_202C_200D_202E(_objectTable); - num = ((playerCharacter != null) ? (-1488947353) : (-1488947349)); - continue; - case 21: - num = -1488947332; - continue; - case 17: - _206C_206D_206E_202D_202D_202C_200B_206B_200E_206C_202A_206B_202A_200B_206D_200F_206E_202C_200F_206C_202B_206B_206F_206F_200B_206B_206D_206A_206A_200F_206F_206F_206C_206A_206E_202B_206E_200B_202C_206C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1334831780), new object[3] - { - num5, - valueOrDefault, - _206B_206C_200C_200F_200F_206A_200F_202A_206D_206C_202E_202B_202C_202D_202A_206B_206C_200E_206A_202D_202C_206D_202E_206A_200D_200C_200E_206B_206A_206E_200C_200C_206B_202E_202C_206C_202A_200B_206B_206C_202E(complexCombatData).Value - }); - num = -1488947354; - continue; - case 20: - return null; - case 6: - num10 = (_200F_206A_202E_202E_202D_202B_200D_206B_202D_202C_200E_202C_206C_200B_206A_200B_200B_202C_202D_206F_206A_202E_200E_202A_206C_206E_206E_200D_200C_200F_200B_206A_202C_202D_206D_200B_206E_202D_206E_202C_202E(complexCombatData).HasValue ? 1 : 0); - goto IL_0391; - case 13: - inventoryItemCount = InventoryManager.Instance()->GetInventoryItemCount(_200F_202D_206D_200B_202D_202C_206E_202B_200B_202B_200D_206E_200D_202E_200C_200C_202E_206E_202E_206A_202D_200D_206A_206D_202A_206F_200F_206A_200D_202E_206E_200B_202B_200F_206D_200E_202C_202C_200E_202D_202E(complexCombatData).Value, isHq: false, checkEquipped: true, checkArmory: true, 0); - flag2 = inventoryItemCount >= _200F_206A_202E_202E_202D_202B_200D_206B_202D_202C_200E_202C_206C_200B_206A_200B_200B_202C_202D_206F_206A_202E_200E_202A_206C_206E_206E_200D_200C_200F_200B_206A_202C_202D_206D_200B_206E_202D_206E_202C_202E(complexCombatData).Value; - num = ((!flag2) ? (-1488947329) : (-1488947352)); - continue; - case 16: - { - bool num9 = flag; - num3 = (flag2 ? 1 : 0); - num4 = (num9 ? 1 : 0); - num = (((num4 | num3) - (num4 ^ num3) == 0) ? (-1488947332) : (-1488947355)); - continue; - } - case 22: - flag = true; - flag2 = true; - num = ((!hasValue) ? (-1488947354) : (-1488947331)); - continue; - case 14: - complexCombatDatas = _currentFight.Data.ComplexCombatDatas; - num = ((complexCombatDatas.Count <= 0) ? (-1488947347) : (-1488947345)); - continue; - case 9: - num = ((!flag3) ? (-1488947329) : (-1488947358)); - continue; - case 0: - num5 = 0; - num = -1488947336; - continue; - case 23: - num = ((num5 < complexCombatDatas.Count) ? (-1488947338) : (-1488947347)); - continue; - case 8: - { - vector = _200C_202E_206B_200B_202D_206A_202B_200D_200D_200F_200D_202A_206C_202B_200E_200D_202E_206B_200C_200E_200B_200B_206C_200F_202E_200B_200B_202E_206D_200B_200D_200B_200D_200E_202B_206E_202A_206E_206F_200E_202E((IGameObject)playerCharacter); - break; + bool flag3 = true; + bool flag4 = true; + if (hasValue) + { + int valueOrDefault = _currentFight.KillCountsByComplexDataIndex.GetValueOrDefault(i, 0); + flag3 = valueOrDefault >= complexCombatData.MinimumKillCount.Value; + if (flag3) + { + _logger.LogDebug("Kill count condition met for ComplexCombatData[{Index}]: {Count}/{Required}", i, valueOrDefault, complexCombatData.MinimumKillCount.Value); + } + } + if (flag) + { + int inventoryItemCount = InventoryManager.Instance()->GetInventoryItemCount(complexCombatData.RewardItemId.Value, isHq: false, checkEquipped: true, checkArmory: true, 0); + flag4 = inventoryItemCount >= complexCombatData.RewardItemCount.Value; + if (flag4) + { + _logger.LogDebug("Item count condition met for ComplexCombatData[{Index}]: {ItemId} = {Count}/{Required}", i, complexCombatData.RewardItemId.Value, inventoryItemCount, complexCombatData.RewardItemCount.Value); + } + } + if (flag3 && flag4) + { + _logger.LogDebug("Complex combat condition fulfilled for ComplexCombatData[{Index}] ({DataId}): KillCount={KillCountMet}, Items={ItemMet}", i, complexCombatData.DataId, flag3, flag4); + _currentFight.Data.CompletedComplexDatas.Add(i); + } + } + else if (flag2 && _currentFight.Data.ElementId is QuestId elementId) + { + QuestProgressInfo questProgressInfo = _questFunctions.GetQuestProgressInfo(elementId); + if (questProgressInfo != null && QuestWorkUtils.MatchesQuestWork(complexCombatData.CompletionQuestVariablesFlags, questProgressInfo)) + { + _logger.LogDebug("Complex combat condition fulfilled for ComplexCombatData[{Index}] ({DataId}): QuestWork (fallback)", i, complexCombatData.DataId); + _currentFight.Data.CompletedComplexDatas.Add(i); + } } - IL_0391: - flag3 = (byte)num10 != 0; - flag4 = QuestWorkUtils.HasCompletionFlags(_206F_202C_206B_200C_202D_202A_200B_206B_200B_206C_200E_202D_200D_200D_200D_206F_206B_206B_200D_200C_206E_200D_206A_202D_202D_202A_200C_200C_200C_206A_200F_200E_202B_206F_200C_202D_200D_202E_202B_200C_202E(complexCombatData)); - num11 = hasValue; - num3 = (flag3 ? 1 : 0); - num4 = (num11 ? 1 : 0); - num = (((num4 & num3) + (num4 ^ num3) == 0) ? (-1488947357) : (-1488947335)); - continue; } - break; } - Vector3 value = vector; + IPlayerCharacter localPlayer = _objectTable.LocalPlayer; + Vector3 value = localPlayer?.Position ?? Vector3.Zero; IGameObject gameObject = null; - int num12 = 0; - float num13 = float.MaxValue; - bool flag5 = _206B_206D_202E_206E_206E_202D_206B_202E_200E_206B_206B_200F_206F_202B_202B_200C_202C_206A_202D_206B_202B_202B_206B_202E_206C_200E_202B_202E_206D_206A_206E_202B_202B_202E_200B_200F_202E_206C_202D_202B_202E((ILogger)_logger, LogLevel.Debug); - IEnumerator<IGameObject> enumerator = _objectTable.GetEnumerator(); - try + int num = 0; + float num2 = float.MaxValue; + bool flag5 = _logger.IsEnabled(LogLevel.Debug); + foreach (IGameObject item in _objectTable) { - num = -122850553; - IGameObject current = default(IGameObject); - int item = default(int); - string item2 = default(string); - float num15 = default(float); - long value2 = default(long); - while (true) + var (num3, text) = GetKillPriority(item, localPlayer); + if (num3 <= 0) { - int num14 = num; - int num3 = -122850546; - int num4 = num14; - switch ((num4 | num3) - (num4 & num3)) - { - case 12: - _206C_206D_206E_202D_202D_202C_200B_206B_200E_206C_202A_206B_202A_200B_206D_200F_206E_202C_200F_206C_202B_206B_206F_206F_200B_206B_206D_206A_206A_200F_206F_206F_206C_206A_206E_202B_206E_200B_202C_206C_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2012984101), new object[2] - { - _206A_202D_206F_206C_202B_206E_202E_202A_206F_200B_200C_202C_206B_202B_202A_206F_200B_206F_206A_206F_206C_206C_200E_202A_206B_200E_202D_200F_202D_200C_202C_202D_200E_202B_206E_200D_200F_202E_206C_200D_202E(current), - _202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(current) - }); - num = -122850559; - break; - case 9: - num = (_200C_202E_206C_202E_206E_206A_202E_200C_200C_206F_206E_200B_206B_200D_206A_202B_206F_206E_202B_200C_202A_202C_200C_202A_202C_200B_200E_200F_200E_200F_200D_200B_206A_202E_206F_202C_200D_202E_200D_202D_202E((IEnumerator)enumerator) ? (-122850550) : (-122850547)); - break; - case 0: - _206C_206D_206E_202D_202D_202C_200B_206B_200E_206C_202A_206B_202A_200B_206D_200F_206E_202C_200F_206C_202B_206B_206F_206F_200B_206B_206D_206A_206A_200F_206F_206F_206C_206A_206E_202B_206E_200B_202C_206C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1176210059), new object[6] - { - _206A_202D_206F_206C_202B_206E_202E_202A_206F_200B_200C_202C_206B_202B_202A_206F_200B_206F_206A_206F_206C_206C_200E_202A_206B_200E_202D_200F_202D_200C_202C_202D_200E_202B_206E_200D_200F_202E_206C_200D_202E(current), - _202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(current), - _206F_202D_200F_200E_206F_206C_200C_200E_206E_206D_200F_202D_200E_202D_206B_200D_202B_202D_200E_202C_206B_202B_202C_202A_202C_202D_202A_206B_206B_200D_202B_202E_200C_200F_202C_206C_202D_206B_202D_206F_202E(current), - item, - item2, - num15 - }); - num = -122850551; - break; - case 2: - _206C_206D_206E_202D_202D_202C_200B_206B_200E_206C_202A_206B_202A_200B_206D_200F_206E_202C_200F_206C_202B_206B_206F_206F_200B_206B_206D_206A_206A_200F_206F_206F_206C_206A_206E_202B_206E_200B_202C_206C_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(799418779), new object[3] - { - _206A_202D_206F_206C_202B_206E_202E_202A_206F_200B_200C_202C_206B_202B_202A_206F_200B_206F_206A_206F_206C_206C_200E_202A_206B_200E_202D_200F_202D_200C_202C_202D_200E_202B_206E_200D_200F_202E_206C_200D_202E(current), - _202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(current), - value2 - _200D_206B_206D_206C_200C_206F_200E_200C_202D_202A_200D_202D_202D_200B_206F_200C_202D_206B_202C_206B_200B_200B_200C_206A_202A_200D_206F_202E_200B_200F_200F_200C_200E_200F_200C_200F_200D_202D_202B_206F_202E() - }); - num = -122850553; - break; - case 1: - num = ((!(num15 < num13)) ? (-122850553) : (-122850556)); - break; - case 6: - num = -122850553; - break; - case 8: - _losIgnoreList.Remove(_202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(current)); - num = ((!flag5) ? (-122850559) : (-122850558)); - break; - case 5: - num = ((_200D_206B_206D_206C_200C_206F_200E_200C_202D_202A_200D_202D_202D_200B_206F_200C_202D_206B_202C_206B_200B_200B_200C_206A_202A_200D_206F_202E_200B_200F_200F_200C_200E_200F_200C_200F_200D_202D_202B_206F_202E() >= value2) ? (-122850554) : (-122850557)); - break; - case 15: - num15 = Vector3.Distance(_200C_202E_206B_200B_202D_206A_202B_200D_200D_200F_200D_202A_206C_202B_200E_200D_202E_206B_200C_200E_200B_200B_206C_200F_202E_200B_200B_202E_206D_200B_200D_200B_200D_200E_202B_206E_202A_206E_206F_200E_202E(current), value); - num = ((!flag5) ? (-122850551) : (-122850546)); - break; - case 13: - num = ((!flag5) ? (-122850553) : (-122850548)); - break; - case 11: - num = ((item != num12) ? (-122850553) : (-122850545)); - break; - case 7: - num = ((item > num12) ? (-122850556) : (-122850555)); - break; - case 10: - gameObject = current; - num12 = item; - num13 = num15; - num = -122850553; - break; - case 14: - num = ((!_losIgnoreList.TryGetValue(_202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(current), out value2)) ? (-122850559) : (-122850549)); - break; - case 4: - { - current = enumerator.Current; - (int Priority, string Reason) killPriority = GetKillPriority(current, playerCharacter); - item = killPriority.Priority; - item2 = killPriority.Reason; - num = ((item <= 0) ? (-122850553) : (-122850560)); - break; - } - case 3: - goto end_IL_05fe; - } continue; - end_IL_05fe: - break; + } + if (_losIgnoreList.TryGetValue(item.GameObjectId, out var value2)) + { + if (Environment.TickCount64 < value2) + { + if (flag5) + { + _logger.LogDebug("Target {Name} ({Id:X8}) skipped - LoS ignore list ({Remaining}ms left)", item.Name, item.GameObjectId, value2 - Environment.TickCount64); + } + continue; + } + _losIgnoreList.Remove(item.GameObjectId); + if (flag5) + { + _logger.LogDebug("Target {Name} ({Id:X8}) - LoS ignore expired", item.Name, item.GameObjectId); + } + } + float num4 = Vector3.Distance(item.Position, value); + if (flag5) + { + _logger.LogDebug("Target candidate: {Name} ({Id:X8}) BaseId={BaseId} Priority={Priority} ({Reason}) Distance={Distance:N1}", item.Name, item.GameObjectId, item.BaseId, num3, text, num4); + } + if (num3 > num || (num3 == num && num4 < num2)) + { + gameObject = item; + num = num3; + num2 = num4; } } - finally + ulong? num5 = gameObject?.GameObjectId; + if (num5 != _lastTargetId) { - num = ((enumerator == null) ? 544453572 : 544453575); - while (true) + if (gameObject != null) { - int num16 = num; - int num3 = 544453573; - int num4 = num16; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 544453575; - break; - case 1: - goto end_IL_0939; - case 2: - _206C_202A_202A_200D_206B_206C_206F_206F_206E_200C_202E_206E_206A_202A_200F_202B_202C_202D_206E_206D_202C_200F_206E_200F_202D_200E_202D_206F_200D_206C_206D_206A_206F_200D_200B_206E_202A_202E_200F_200D_202E((IDisposable)enumerator); - num = 544453572; - break; - } - continue; - end_IL_0939: - break; + _logger.LogDebug("Selected target: {Name} ({Id:X8}) BaseId={BaseId} Priority={Priority} Distance={Distance:N1}", gameObject.Name, gameObject.GameObjectId, gameObject.BaseId, num, num2); } - } - num = ((gameObject != null) ? (-1888193170) : (-1888193172)); - ushort currentFateId = default(ushort); - ulong? num20 = default(ulong?); - while (true) - { - int num17 = num; - int num3 = -1888193174; - int num4 = num17; - int num18 = num4 + num3; - int num19 = num4 & num3; - ulong? obj; - ulong? num21; - ulong? lastTargetId; - bool num22; - switch (num18 - (num19 + num19)) + else { - case 9: - _206C_206D_206E_202D_202D_202C_200B_206B_200E_206C_202A_206B_202A_200B_206D_200F_206E_202C_200F_206C_202B_206B_206F_206F_200B_206B_206D_206A_206A_200F_206F_206F_206C_206A_206E_202B_206E_200B_202C_206C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(660454310), new object[5] - { - _206A_202D_206F_206C_202B_206E_202E_202A_206F_200B_200C_202C_206B_202B_202A_206F_200B_206F_206A_206F_206C_206C_200E_202A_206B_200E_202D_200F_202D_200C_202C_202D_200E_202B_206E_200D_200F_202E_206C_200D_202E(gameObject), - _202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(gameObject), - _206F_202D_200F_200E_206F_206C_200C_200E_206E_206D_200F_202D_200E_202D_206B_200D_202B_202D_200E_202C_206B_202B_202C_202A_202C_202D_202A_206B_206B_200D_202B_202E_200C_200F_202C_206C_202D_206B_202D_206F_202E(gameObject), - num12, - num13 - }); - num = -1888193177; - break; - case 1: - num = (_currentFight.HasAttemptedFateSync ? (-1888193183) : (-1888193175)); - break; - case 3: - currentFateId = _gameFunctions.GetCurrentFateId(); - num = ((currentFateId == 0) ? (-1888193183) : (-1888193169)); - break; - case 0: - num = ((gameObject == null) ? (-1888193184) : (-1888193171)); - break; - case 15: - _206C_206D_206E_202D_202D_202C_200B_206B_200E_206C_202A_206B_202A_200B_206D_200F_206E_202C_200F_206C_202B_206B_206F_206F_200B_206B_206D_206A_206A_200F_206F_206F_206C_206A_206E_202B_206E_200B_202C_206C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1231500198), Array.Empty<object>()); - num = -1888193177; - break; - case 11: - return gameObject; - case 2: - num = ((_currentFight.Data.SpawnType != EEnemySpawnType.FateEnemies) ? (-1888193183) : (-1888193173)); - break; - case 14: - return null; - case 6: - obj = null; - goto IL_0bb0; - case 5: - _206C_206D_206E_202D_202D_202C_200B_206B_200E_206C_202A_206B_202A_200B_206D_200F_206E_202C_200F_206C_202B_206B_206F_206F_200B_206B_206D_206A_206A_200F_206F_206F_206C_206A_206E_202B_206E_200B_202C_206C_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1490895854), new object[1] { currentFateId }); + _logger.LogDebug("No valid target found"); + } + _lastTargetId = num5; + } + if (gameObject != null && num <= 15 && !_condition[ConditionFlag.InCombat]) + { + return null; + } + if (gameObject != null && _currentFight.Data.SpawnType == EEnemySpawnType.FateEnemies && !_currentFight.HasAttemptedFateSync) + { + ushort currentFateId = _gameFunctions.GetCurrentFateId(); + if (currentFateId != 0) + { + _logger.LogDebug("Checking FATE sync for FATE {FateId}", currentFateId); _gameFunctions.SyncToFate(currentFateId); _currentFight.HasAttemptedFateSync = true; - num = -1888193183; - break; - case 8: - num = -1888193172; - break; - case 4: - obj = _202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(gameObject); - goto IL_0bb0; - case 13: - _lastTargetId = num20; - num = -1888193174; - break; - case 7: - num = ((num12 > 15) ? (-1888193184) : (-1888193178)); - break; - case 12: - num = (_202C_200D_202C_202A_202C_206C_202D_200C_200D_200F_202C_206C_206C_206E_206E_206B_202A_200E_202E_206A_202A_200C_206F_206A_206B_200D_206B_206F_206D_206A_200C_206C_202A_202A_202A_206D_202D_200D_202E_206A_202E(_condition, ConditionFlag.InCombat) ? (-1888193184) : (-1888193180)); - break; - case 16: - num = ((gameObject == null) ? (-1888193179) : (-1888193181)); - break; - case 10: - { - num = ((gameObject == null) ? (-1888193183) : (-1888193176)); - break; - } - IL_0bb0: - num20 = obj; - num21 = num20; - lastTargetId = _lastTargetId; - num22 = num21.GetValueOrDefault() == lastTargetId.GetValueOrDefault(); - num3 = ((num21.HasValue == lastTargetId.HasValue) ? 1 : 0); - num4 = (num22 ? 1 : 0); - num = ((num4 + num3 - (num4 | num3) != 0) ? (-1888193174) : (-1888193158)); - break; } } + return gameObject; } public (int Priority, string Reason) GetKillPriority(IGameObject gameObject) { - return GetKillPriority(gameObject, _200D_206C_200C_200C_206E_200C_206B_202D_200F_202A_200B_206B_206A_202B_206D_200D_202C_200B_200D_206B_200D_202D_200B_202B_200E_206D_200C_202C_202B_200D_202E_202C_206A_202C_200C_206A_206B_206F_202C_200D_202E(_objectTable)); + return GetKillPriority(gameObject, _objectTable.LocalPlayer); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe (int Priority, string Reason) GetKillPriority(IGameObject gameObject, IGameObject? localPlayer) { - (int? Priority, string Reason) rawKillPriority = GetRawKillPriority(gameObject, localPlayer); - int? item = rawKillPriority.Priority; - string item2 = rawKillPriority.Reason; - int num = (item.HasValue ? (-317021037) : (-317021053)); - int num7 = default(int); - IBattleNpc battleNpc = default(IBattleNpc); - Hater hater = default(Hater); - IBattleNpc battleNpc2 = default(IBattleNpc); - int num8 = default(int); - Hater hater2 = default(Hater); - while (true) + var (num, text) = GetRawKillPriority(gameObject, localPlayer); + if (!num.HasValue) { - int num2 = num; - int num3 = -317021051; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (gameObject is IBattleNpc { IsDead: false, IsTargetable: not false } battleNpc && battleNpc.StatusFlags.HasFlag(StatusFlags.InCombat) && localPlayer != null && Vector3.Distance(localPlayer.Position, gameObject.Position) <= 30f) { - case 13: - { - int num12 = num7; - num3 = 1; - num4 = num12; - int num13 = num4 ^ num3; - int num14 = num4 & num3; - num7 = num13 + (num14 + num14); - num = -317021035; - break; + if (gameObject.TargetObjectId == localPlayer.GameObjectId) + { + return (Priority: 15, Reason: text + "/SelfDefense-Targeted"); + } + Hater hater = UIState.Instance()->Hater; + for (int i = 0; i < hater.HaterCount; i++) + { + if (hater.Haters[i].EntityId == gameObject.GameObjectId) + { + return (Priority: 10, Reason: text + "/SelfDefense-Enmity"); + } + } } - case 18: - num = (_206C_202D_206B_206B_200B_200C_206C_202E_200D_206B_200E_206F_206B_206A_202C_206D_206E_206F_202B_202E_202D_200E_200E_202B_202E_206A_200F_200E_206C_202E_206E_206A_202B_202B_202A_206D_206B_206E_202A_200C_202E((IGameObject)battleNpc) ? (-317021036) : (-317021054)); - break; - case 11: - num = ((localPlayer == null) ? (-317021036) : (-317021045)); - break; - case 7: - num = ((!_202A_202B_202C_200D_200D_200C_202C_206C_202C_202D_200C_202B_206C_202A_206B_206E_200E_202E_202B_206D_200B_202A_206A_206E_200C_200B_200B_200C_200F_206F_200C_206B_200C_200E_202B_206B_202A_200C_202B_202E((IGameObject)battleNpc)) ? (-317021036) : (-317021027)); - break; - case 12: - return (Priority: item.Value, Reason: item2); - case 6: - battleNpc = gameObject as IBattleNpc; - num = ((battleNpc == null) ? (-317021036) : (-317021033)); - break; - case 4: - hater = UIState.Instance()->Hater; - num7 = 0; - num = -317021035; - break; - case 0: - return (Priority: 15, Reason: _206A_206E_200B_200E_202C_202C_206A_200B_206D_200F_206A_200E_200F_202C_206C_206B_200D_202C_202C_200B_200E_206E_200F_200E_200B_200B_206C_200F_202D_202C_200F_206A_206B_202A_200D_202C_200C_206F_206C_206C_202E(item2, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1299574123))); - case 22: - battleNpc2 = gameObject as IBattleNpc; - num = ((battleNpc2 == null) ? (-317021047) : (-317021046)); - break; - case 8: - return (Priority: 10, Reason: _206A_206E_200B_200E_202C_202C_206A_200B_206D_200F_206A_200E_200F_202C_206C_206B_200D_202C_202C_200B_200E_206E_200F_200E_200B_200B_206C_200F_202D_202C_200F_206A_206B_202A_200D_202C_200C_206F_206C_206C_202E(item2, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-217140311))); - case 14: - num = ((!(Vector3.Distance(_200C_202E_206B_200B_202D_206A_202B_200D_200D_200F_200D_202A_206C_202B_200E_200D_202E_206B_200C_200E_200B_200B_206C_200F_202E_200B_200B_202E_206D_200B_200D_200B_200D_200E_202B_206E_202A_206E_206F_200E_202E(localPlayer), _200C_202E_206B_200B_202D_206A_202B_200D_200D_200F_200D_202A_206C_202B_200E_200D_202E_206B_200C_200E_200B_200B_206C_200F_202E_200B_200B_202E_206D_200B_200D_200B_200D_200E_202B_206E_202A_206E_206F_200E_202E(gameObject)) <= 30f)) ? (-317021036) : (-317021044)); - break; - case 24: - num = ((!_200C_200D_202B_202E_200C_202C_206E_200F_200E_202A_206A_206C_206D_202B_202E_200D_206F_200F_202B_200D_200B_200C_206E_200F_200C_202C_206B_202A_206F_200F_200F_206B_206D_202B_200D_200F_206C_206C_206F_202A_202E((Enum)_200B_200F_200D_200C_206C_206C_206F_200D_206C_200D_200E_200F_206B_202E_200E_200E_200E_206D_206E_206E_202D_202C_200B_202A_206B_206D_206C_202A_200E_206B_206C_206F_202E_206A_206A_206E_202A_200B_202B_206A_202E((ICharacter)battleNpc), (Enum)StatusFlags.InCombat)) ? (-317021036) : (-317021042)); - break; - case 5: + return (Priority: 0, Reason: text); + } + if (gameObject is IBattleNpc battleNpc2 && battleNpc2.StatusFlags.HasFlag(StatusFlags.InCombat)) + { + if (gameObject.TargetObjectId == localPlayer?.GameObjectId) { - int num9 = num8; - num3 = 1; - num4 = num9; - int num10 = num4 ^ num3; - int num11 = num4 & num3; - num8 = num10 + (num11 + num11); - num = -317021041; - break; + return (Priority: num.Value + 150, Reason: text + "/Targeted"); } - case 2: - hater2 = UIState.Instance()->Hater; - num8 = 0; - num = -317021041; - break; - case 9: - num = ((_206A_206E_202C_206B_206E_202B_202C_202E_202D_206E_200D_206F_206F_206D_202E_206F_200C_200B_200E_202E_206D_206F_202A_206D_206F_206B_206A_200D_200B_206E_202A_202E_200E_206A_206B_202E_200C_202A_206D_202E(gameObject) != _202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(localPlayer)) ? (-317021055) : (-317021051)); - break; - case 10: - num = ((num8 < hater2.HaterCount) ? (-317021039) : (-317021047)); - break; - case 3: - return (Priority: item.Value + 150, Reason: _206A_206E_200B_200E_202C_202C_206A_200B_206D_200F_206A_200E_200F_202C_206C_206B_200D_202C_202C_200B_200E_206E_200F_200E_200B_200B_206C_200F_202D_202C_200F_206A_206B_202A_200D_202C_200C_206F_206C_206C_202E(item2, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1551169636))); - case 17: - return (Priority: 0, Reason: item2); - case 15: - num = ((!_200C_200D_202B_202E_200C_202C_206E_200F_200E_202A_206A_206C_206D_202B_202E_200D_206F_200F_202B_200D_200B_200C_206E_200F_200C_202C_206B_202A_206F_200F_200F_206B_206D_202B_200D_200F_206C_206C_206F_202A_202E((Enum)_200B_200F_200D_200C_206C_206C_206F_200D_206C_200D_200E_200F_206B_202E_200E_200E_200E_206D_206E_206E_202D_202C_200B_202A_206B_206D_206C_202A_200E_206B_206C_206F_202E_206A_206A_206E_202A_200B_202B_206A_202E((ICharacter)battleNpc2), (Enum)StatusFlags.InCombat)) ? (-317021047) : (-317021052)); - break; - case 16: - num = ((num7 < hater.HaterCount) ? (-317021034) : (-317021036)); - break; - case 19: - num = ((hater.Haters[num7].EntityId != _202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(gameObject)) ? (-317021048) : (-317021043)); - break; - case 21: - num = -317021053; - break; - case 20: - num = ((hater2.Haters[num8].EntityId != _202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(gameObject)) ? (-317021056) : (-317021038)); - break; - case 23: - return (Priority: item.Value + 125, Reason: _206A_206E_200B_200E_202C_202C_206A_200B_206D_200F_206A_200E_200F_202C_206C_206B_200D_202C_202C_200B_200E_206E_200F_200E_200B_200B_206C_200F_202D_202C_200F_206A_206B_202A_200D_202C_200C_206F_206C_206C_202E(item2, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(915174382))); - case 1: - num = ((_206A_206E_202C_206B_206E_202B_202C_202E_202D_206E_200D_206F_206F_206D_202E_206F_200C_200B_200E_202E_206D_206F_202A_206D_206F_206B_206A_200D_200B_206E_202A_202E_200E_206A_206B_202E_200C_202A_206D_202E(gameObject) != ((localPlayer != null) ? new ulong?(_202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(localPlayer)) : ((ulong?)null))) ? (-317021049) : (-317021050)); - break; + Hater hater2 = UIState.Instance()->Hater; + for (int j = 0; j < hater2.HaterCount; j++) + { + if (hater2.Haters[j].EntityId == gameObject.GameObjectId) + { + return (Priority: num.Value + 125, Reason: text + "/Enmity"); + } } } + return (Priority: num.Value, Reason: text); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe (int? Priority, string Reason) GetRawKillPriority(IGameObject gameObject, IGameObject? localPlayer) { - int num = ((_currentFight != null) ? 1289895917 : 1289895914); - bool flag = default(bool); - uint num7 = default(uint); - List<ComplexCombatData> complexCombatDatas = default(List<ComplexCombatData>); - int num5 = default(int); - IBattleNpc battleNpc = default(IBattleNpc); - Vector3 value = default(Vector3); - Dalamud.Game.ClientState.Objects.Enums.BattleNpcSubKind battleNpcSubKind = default(Dalamud.Game.ClientState.Objects.Enums.BattleNpcSubKind); - GameObject* ptr = default(GameObject*); - bool flag2 = default(bool); - while (true) + if (_currentFight == null) { - int num2 = num; - int num3 = 1289895881; - int num4 = num2; - Vector3 vector; - switch ((num4 | num3) - (num4 & num3)) + return (Priority: null, Reason: "Not Fighting"); + } + if (!(gameObject is IBattleNpc battleNpc)) + { + return (Priority: null, Reason: "Not BattleNpc"); + } + if (!_currentFight.Module.CanAttack(battleNpc)) + { + return (Priority: null, Reason: "Can't attack"); + } + if (battleNpc.IsDead) + { + return (Priority: null, Reason: "Dead"); + } + if (!battleNpc.IsTargetable) + { + return (Priority: null, Reason: "Untargetable"); + } + List<ComplexCombatData> complexCombatDatas = _currentFight.Data.ComplexCombatDatas; + GameObject* address = (GameObject*)gameObject.Address; + if (address->FateId != 0 && _currentFight.Data.SpawnType != EEnemySpawnType.FateEnemies && gameObject.TargetObjectId != localPlayer?.GameObjectId) + { + return (Priority: null, Reason: "FATE mob"); + } + Vector3 value = localPlayer?.Position ?? Vector3.Zero; + bool flag; + switch (_currentFight.Data.SpawnType) + { + case EEnemySpawnType.FinishCombatIfAny: + flag = false; + break; + case EEnemySpawnType.FateEnemies: + flag = false; + break; + case EEnemySpawnType.OverworldEnemies: + if (Vector3.Distance(value, battleNpc.Position) >= 50f) { - case 3: - num = 1289895896; - break; - case 31: - num = ((!flag) ? 1289895911 : 1289895905); - break; - case 20: - num = ((num7 != 60732) ? 1289895895 : 1289895898); - break; - case 13: - return (Priority: null, Reason: global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-288691346)); - case 1: flag = false; - num = 1289895874; - break; - case 48: - { - uint? num6 = _206C_200B_206D_202C_200C_202D_200E_200C_200C_202D_200E_206D_200B_200C_206C_202E_206A_206C_200C_206E_206E_206A_200C_200C_206B_206A_206B_202A_206D_202A_206E_206E_206C_200E_200B_202B_202C_200E_206E_202E(complexCombatDatas[num5]); - num7 = _206A_206F_206D_206B_200B_200C_206B_202A_200C_202C_206B_206C_202D_200F_206D_206A_200F_202A_200D_206B_200D_202B_200F_206F_202C_202D_200D_200D_200C_206D_200C_200B_206D_202A_206E_206F_200F_206E_202E((ICharacter)battleNpc); - num = ((num6 != num7) ? 1289895904 : 1289895886); break; } - case 25: - flag = false; - num = 1289895875; - break; - case 51: - num = (_currentFight.Data.CompletedComplexDatas.Contains(num5) ? 1289895904 : 1289895919); - break; - case 8: - vector = Vector3.Zero; - goto IL_0263; - case 2: - num = ((!(Vector3.Distance(value, _200C_202E_206B_200B_202D_206A_202B_200D_200D_200F_200D_202A_206C_202B_200E_200D_202E_206B_200C_200E_200B_200B_206C_200F_202E_200B_200B_202E_206D_200B_200D_200B_200D_200E_202B_206E_202A_206E_206F_200E_202E((IGameObject)battleNpc)) >= 50f)) ? 1289895897 : 1289895888); - break; - case 24: - vector = _200C_202E_206B_200B_202D_206A_202B_200D_200D_200F_200D_202A_206C_202B_200E_200D_202E_206B_200C_200E_200B_200B_206C_200F_202E_200B_200B_202E_206D_200B_200D_200B_200D_200E_202B_206E_202A_206E_206F_200E_202E(localPlayer); - goto IL_0263; - case 40: - return (Priority: null, Reason: global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-509497961)); - case 6: - num = ((localPlayer != null) ? 1289895889 : 1289895873); - break; - case 35: - return (Priority: null, Reason: global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1709411628)); - case 17: - battleNpcSubKind = _200C_200C_202B_200C_200D_206D_200D_206A_202E_206F_206A_200D_206C_206C_200E_202C_206C_206A_202E_202A_202C_200B_202E_200E_200E_206D_200D_200C_200C_206A_206A_200B_206B_202C_200B_202A_202B_202A_200E_206B_202E(battleNpc); - num = ((battleNpcSubKind == Dalamud.Game.ClientState.Objects.Enums.BattleNpcSubKind.BNpcPart) ? 1289895918 : 1289895884); - break; - case 43: - return (Priority: 90, Reason: global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1135414095)); - case 11: - num = ((!flag) ? 1289895900 : 1289895899); - break; - case 22: - goto IL_0347; - case 50: - num = ((ptr->NamePlateIconId == 0) ? 1289895904 : 1289895902); - break; - case 10: - flag2 = flag; - num = ((complexCombatDatas.Count <= 0) ? 1289895892 : 1289895877); - break; - case 38: - num = ((!flag2) ? 1289895902 : 1289895916); - break; - case 14: - num = ((_currentFight.Data.SpawnType == EEnemySpawnType.FateEnemies) ? 1289895887 : 1289895881); - break; - case 15: - num = ((!_206C_200B_206D_202C_200C_202D_200E_200C_200C_202D_200E_206D_200B_200C_206C_202E_206A_206C_200C_206E_206E_206A_200C_200C_206B_206A_206B_202A_206D_202A_206E_206E_206C_200E_200B_202B_202C_200E_206E_202E(complexCombatDatas[num5]).HasValue) ? 1289895886 : 1289895929); - break; - case 37: - num = (_206B_202B_206A_202A_206C_206A_206E_202B_206E_206B_202E_206A_200F_206C_200E_202B_200F_202C_206A_202D_200D_202C_202B_200B_200C_206C_202E_206B_202E_200D_200B_206F_206D_202A_206F_200E_202A_200F_206F_206B_202E(complexCombatDatas[num5]) ? 1289895902 : 1289895931); - break; - case 16: - flag = true; - num = 1289895875; - break; - case 26: - return (Priority: null, Reason: global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(514778302)); - case 42: - num = (_202A_202B_202C_200D_200D_200C_202C_206C_202C_202D_200C_202B_206C_202A_206B_206E_200E_202E_202B_206D_200B_202A_206A_206E_200C_200B_200B_200C_200F_206F_200C_206B_200C_200E_202B_206B_202A_200C_202B_202E((IGameObject)battleNpc) ? 1289895933 : 1289895876); - break; - case 27: - num = ((!_206C_202D_206B_206B_200B_200C_206C_202E_200D_206B_200E_206F_206B_206A_202C_206D_206E_206F_202B_202E_202D_200E_200E_202B_202E_206A_200F_200E_206C_202E_206E_206A_202B_202B_202A_206D_206B_206E_202A_200C_202E((IGameObject)battleNpc)) ? 1289895907 : 1289895891); - break; - case 12: - num5 = 0; - num = 1289895915; - break; - case 44: - num = 1289895897; - break; - case 4: - goto IL_04d5; - case 7: - return (Priority: 100, Reason: global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(504188210)); - case 18: - num7 = ptr->NamePlateIconId; - num = ((num7 == 60093) ? 1289895898 : 1289895901); - break; - case 9: - return (Priority: null, Reason: global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1495762149)); - case 29: - num = ((!flag2) ? 1289895908 : 1289895913); - break; - case 5: - num = ((battleNpcSubKind != Dalamud.Game.ClientState.Objects.Enums.BattleNpcSubKind.Combatant) ? 1289895880 : 1289895918); - break; - case 21: - return (Priority: null, Reason: global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2144599743)); - case 28: - num = (_currentFight.Module.CanAttack(battleNpc) ? 1289895890 : 1289895872); - break; - case 33: - num = 1289895914; - break; - case 34: - num = ((num5 < complexCombatDatas.Count) ? 1289895930 : 1289895882); - break; - case 36: - battleNpc = gameObject as IBattleNpc; - num = ((battleNpc != null) ? 1289895893 : 1289895928); - break; - case 23: - num = ((_206C_206F_202B_202E_206D_200E_202A_200F_200E_200B_206D_206A_200F_200B_200D_206B_200C_200C_202E_200B_200B_200E_202B_202D_202A_206C_206E_200B_206B_206F_202A_202E_202B_200C_202C_206F_202A_202B_200F_202D_202E(complexCombatDatas[num5]) != _206F_202D_200F_200E_206F_206C_200C_200E_206E_206D_200F_202D_200E_202D_206B_200D_202B_202D_200E_202C_206B_202B_202C_202A_202C_202D_202A_206B_206B_200D_202B_202E_200C_200F_202C_206C_202D_206B_202D_206F_202E((IGameObject)battleNpc)) ? 1289895904 : 1289895878); - break; - case 47: - return (Priority: null, Reason: global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(654117506)); - case 46: - return (Priority: null, Reason: global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1739083176)); - case 41: + goto default; + default: + flag = true; + break; + } + bool flag2 = flag; + if (complexCombatDatas.Count > 0) + { + for (int i = 0; i < complexCombatDatas.Count; i++) { - int num8 = num5; - num3 = 1; - num4 = num8; - num5 = (num4 | num3) + (num4 & num3); - num = 1289895915; - break; - } - case 19: - flag = true; - num = 1289895894; - break; - case 39: - flag = true; - num = 1289895874; - break; - case 49: - return (Priority: null, Reason: global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1994402973)); - case 45: - num = ((!_currentFight.Data.KillEnemyDataIds.Contains(_206F_202D_200F_200E_206F_206C_200C_200E_206E_206D_200F_202D_200E_202D_206B_200D_202B_202D_200E_202C_206B_202B_202C_202A_202C_202D_202A_206B_206B_200D_202B_202E_200C_200F_202C_206C_202D_206B_202D_206F_202E((IGameObject)battleNpc))) ? 1289895896 : 1289895906); - break; - case 0: - num = ((_206A_206E_202C_206B_206E_202B_202C_202E_202D_206E_200D_206F_206F_206D_202E_206F_200C_200B_200E_202E_206D_206F_202A_206D_206F_206B_206A_200D_200B_206E_202A_202E_200E_206A_206B_202E_200C_202A_206D_202E(gameObject) == ((localPlayer != null) ? new ulong?(_202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(localPlayer)) : ((ulong?)null))) ? 1289895887 : 1289895910); - break; - case 32: - num = ((ptr->NamePlateIconId == 0) ? 1289895896 : 1289895908); - break; - case 30: - flag = false; - num = 1289895894; - break; - case 52: + if (!_currentFight.Data.CompletedComplexDatas.Contains(i) && (!flag2 || complexCombatDatas[i].IgnoreQuestMarker || address->NamePlateIconId != 0) && complexCombatDatas[i].DataId == battleNpc.BaseId && (!complexCombatDatas[i].NameId.HasValue || complexCombatDatas[i].NameId == battleNpc.NameId)) { - complexCombatDatas = _currentFight.Data.ComplexCombatDatas; - ptr = (GameObject*)_206B_200C_200E_200B_200C_206A_206F_200E_200C_200B_206C_200E_202B_202C_206E_206A_206A_200E_200F_206C_202B_206C_206A_200B_202C_202C_206D_206F_200D_202E_206F_206F_200D_200F_200F_200F_206D_202A_202A_200D_202E(gameObject); - num = ((ptr->FateId == 0) ? 1289895887 : 1289895879); - break; + return (Priority: 100, Reason: "CCD"); } - IL_0263: - value = vector; - switch (_currentFight.Data.SpawnType) - { - case EEnemySpawnType.OverworldEnemies: - break; - default: - goto IL_028b; - case EEnemySpawnType.FateEnemies: - goto IL_0347; - case EEnemySpawnType.FinishCombatIfAny: - goto IL_04d5; - } - goto case 2; - IL_04d5: - flag = false; - num = 1289895875; - break; - IL_0347: - flag = false; - num = 1289895875; - break; - IL_028b: - num = 1289895909; - break; } } + else if ((!flag2 || address->NamePlateIconId != 0) && _currentFight.Data.KillEnemyDataIds.Contains(battleNpc.BaseId)) + { + return (Priority: 90, Reason: "KED"); + } + Dalamud.Game.ClientState.Objects.Enums.BattleNpcSubKind battleNpcKind = battleNpc.BattleNpcKind; + if ((battleNpcKind == Dalamud.Game.ClientState.Objects.Enums.BattleNpcSubKind.BNpcPart || battleNpcKind == Dalamud.Game.ClientState.Objects.Enums.BattleNpcSubKind.Combatant) ? true : false) + { + uint namePlateIconId = address->NamePlateIconId; + if ((namePlateIconId == 60093 || namePlateIconId == 60732) ? true : false) + { + return (Priority: null, Reason: "FATE NPC"); + } + return (Priority: null, Reason: "Not part of quest"); + } + return (Priority: null, Reason: "Wrong BattleNpcKind"); } - [MethodImpl(MethodImplOptions.NoInlining)] private void SetTarget(IGameObject? target) { - int num = ((target != null) ? (-454863906) : (-454863912)); - IPlayerCharacter playerCharacter = default(IPlayerCharacter); - while (true) + if (target == null) { - int num2 = num; - int num3 = -454863908; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - float num7; - float num8; - bool flag; - switch (num5 - (num6 + num6)) + if (_targetManager.Target != null) { - case 5: - num = -454863912; - break; - case 2: - playerCharacter = _200D_206C_200C_200C_206E_200C_206B_202D_200F_202A_200B_206B_206A_202B_206D_200D_202C_200B_200D_206B_200D_202D_200B_202B_200E_206D_200C_202C_202B_200D_202E_202C_206A_202C_200C_206A_206B_206F_202C_200D_202E(_objectTable); - num = ((playerCharacter != null) ? (-454863909) : (-454863908)); - break; - case 0: - num7 = 0f; - goto IL_00ba; - case 7: - num7 = Vector3.Distance(_200C_202E_206B_200B_202D_206A_202B_200D_200D_200F_200D_202A_206C_202B_200E_200D_202E_206B_200C_200E_200B_200B_206C_200F_202E_200B_200B_202E_206D_200B_200D_200B_200D_200E_202B_206E_202A_206E_206F_200E_202E((IGameObject)playerCharacter), _200C_202E_206B_200B_202D_206A_202B_200D_200D_200F_200D_202A_206C_202B_200E_200D_202E_206B_200C_200E_200B_200B_206C_200F_202E_200B_200B_202E_206D_200B_200D_200B_200D_200E_202B_206E_202A_206E_206F_200E_202E(target)); - goto IL_00ba; - case 8: - return; - case 1: - return; - case 3: - _206C_206D_206E_202D_202D_202C_200B_206B_200E_206C_202A_206B_202A_200B_206D_200F_206E_202C_200F_206C_202B_206B_206F_206F_200B_206B_206D_206A_206A_200F_206F_206F_206C_206A_206E_202B_206E_200B_202C_206C_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1225516731), Array.Empty<object>()); - _202C_202A_206D_202D_202E_202C_200B_202D_200E_202B_202E_206E_200F_200E_206D_206C_200C_200F_206F_200C_200E_202E_202B_206A_202E_206D_200E_206C_206C_200B_206A_202B_202C_202B_202A_206E_206C_202D_202B_202E_202E(_targetManager, (IGameObject)null); - num = -454863916; - break; - case 6: - MoveToTarget(target); - num = -454863907; - break; - case 4: - { - num = ((_202B_202A_206E_200C_206F_202D_206D_206C_202D_200B_200E_206D_206C_206E_202D_206D_206D_202C_206D_202B_206C_200B_206E_202D_202C_206B_202A_202D_206E_200B_202B_206A_200D_206C_200F_200F_206D_206B_200E_200E_202E(_targetManager) == null) ? (-454863916) : (-454863905)); - break; - } - IL_00ba: - num8 = num7; - flag = _currentFight?.Module is BossModModule; - _206C_206D_206E_202D_202D_202C_200B_206B_200E_206C_202A_206B_202A_200B_206D_200F_206E_202C_200F_206C_202B_206B_206F_206F_200B_206B_206D_206A_206A_200F_206F_206F_206C_206A_206E_202B_206E_200B_202C_206C_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-270017519), new object[3] - { - _200D_200C_202E_200D_206A_206A_206A_200E_206F_206C_200E_200B_200D_206D_206F_200F_200E_200F_202B_206F_206C_202C_200C_202A_202E_202C_206E_206E_206A_206C_202D_200F_200D_202B_202E_206F_206C_202B_206C_200F_202E((object)_206A_202D_206F_206C_202B_206E_202E_202A_206F_200B_200C_202C_206B_202B_202A_206F_200B_206F_206A_206F_206C_206C_200E_202A_206B_200E_202D_200F_202D_200C_202C_202D_200E_202B_206E_200D_200F_202E_206C_200D_202E(target)), - _202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(target), - num8 - }); - _202C_202A_206D_202D_202E_202C_200B_202D_200E_202B_202E_206E_200F_200E_206D_206C_200C_200F_206F_200C_200E_202E_202B_206A_202E_206D_200E_206C_206C_200B_206A_202B_202C_202B_202A_206E_206C_202D_202B_202E_202E(_targetManager, target); - num = (flag ? (-454863907) : (-454863910)); - break; + _logger.LogDebug("Clearing target"); + _targetManager.Target = null; } + return; + } + IPlayerCharacter localPlayer = _objectTable.LocalPlayer; + float num = ((localPlayer != null) ? Vector3.Distance(localPlayer.Position, target.Position) : 0f); + bool flag = _currentFight?.Module is BossModModule; + _logger.LogDebug("Setting target to {TargetName} ({TargetId:X8}), distance: {Distance:N2}", target.Name.ToString(), target.GameObjectId, num); + _targetManager.Target = target; + if (!flag) + { + MoveToTarget(target); } } private bool IsMovingOrShouldMove(IGameObject gameObject) { - int num = ((!(_currentFight?.Module is BossModModule)) ? 1980419386 : 1980419385); - while (true) + if (_currentFight?.Module is BossModModule) { - int num2 = num; - int num3 = 1980419388; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return false; - case 6: - num = (_movementController.IsPathfinding ? 1980419390 : 1980419391); - break; - case 5: - return false; - case 3: - num = ((!_movementController.IsPathRunning) ? 1980419389 : 1980419390); - break; - case 2: - return true; - case 7: - num = 1980419385; - break; - case 4: - MoveToTarget(gameObject); - _currentFight.LastDistanceCheck = _200D_206B_206D_206C_200C_206F_200E_200C_202D_202A_200D_202D_202D_200B_206F_200C_202D_206B_202C_206B_200B_200B_200C_206A_202A_200D_206F_202E_200B_200F_200F_200C_200E_200F_200C_200F_200D_202D_202B_206F_202E(); - return true; - case 1: - num = ((_200D_206B_206D_206C_200C_206F_200E_200C_202D_202A_200D_202D_202D_200B_206F_200C_202D_206B_202C_206B_200B_200B_200C_206A_202A_200D_206F_202E_200B_200F_200F_200C_200E_200F_200C_200F_200D_202D_202B_206F_202E() <= _currentFight.LastDistanceCheck + 10000) ? 1980419388 : 1980419384); - break; - } + return false; } + if (_movementController.IsPathfinding || _movementController.IsPathRunning) + { + return true; + } + if (Environment.TickCount64 > _currentFight.LastDistanceCheck + 10000) + { + MoveToTarget(gameObject); + _currentFight.LastDistanceCheck = Environment.TickCount64; + return true; + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private void MoveToTarget(IGameObject gameObject) { - IPlayerCharacter playerCharacter = _200D_206C_200C_200C_206E_200C_206B_202D_200F_202A_200B_206B_206A_202B_206D_200D_202C_200B_200D_206B_200D_202D_200B_202B_200E_206D_200C_202C_202B_200D_202E_202C_206A_202C_200C_206A_206B_206F_202C_200D_202E(_objectTable); - int num = ((playerCharacter != null) ? 649091291 : 649091295); - bool flag4 = default(bool); - float num9 = default(float); - float num11 = default(float); - byte? b = default(byte?); - bool flag2 = default(bool); - bool flag3 = default(bool); - bool flag = default(bool); - float num8 = default(float); - while (true) + IPlayerCharacter localPlayer = _objectTable.LocalPlayer; + if (localPlayer == null) { - int num2 = num; - int num3 = 649091284; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - float num10; - switch (num5 - (num6 + num6)) + return; + } + float num = localPlayer.HitboxRadius + gameObject.HitboxRadius; + float num2 = Vector3.Distance(localPlayer.Position, gameObject.Position); + byte? b = localPlayer.ClassJob.ValueNullable?.Role; + bool flag; + if (b.HasValue) + { + byte valueOrDefault = b.GetValueOrDefault(); + if ((uint)(valueOrDefault - 3) <= 1u) { - case 2: - num10 = 20f; - goto IL_0095; - case 3: + flag = true; + goto IL_008e; + } + } + flag = false; + goto IL_008e; + IL_008e: + float num3 = (flag ? 20f : 2.9f); + bool flag2 = num2 - num >= num3; + bool flag3 = IsInLineOfSight(gameObject); + if (flag2 || !flag3) + { + bool flag4 = num2 - num > 5f; + if (!flag2 && !flag3) + { + num3 = Math.Min(num3, num2) / 2f; flag4 = true; - num = 649091283; - break; - case 15: - num9 = _200C_200B_200C_206F_200D_200E_200E_200D_200D_202D_202B_200B_200D_206B_202C_200D_200E_206B_206D_202D_206B_200C_206D_200D_200D_206C_200C_200F_206A_202E_202C_206A_202B_200F_206C_200B_206E_200B_202B_206A_202E((IGameObject)playerCharacter) + _200C_200B_200C_206F_200D_200E_200E_200D_200D_202D_202B_200B_200D_206B_202C_200D_200E_206B_206D_202D_206B_200C_206D_200D_200D_206C_200C_200F_206A_202E_202C_206A_202B_200F_206C_200B_206E_200B_202B_206A_202E(gameObject); - num11 = Vector3.Distance(_200C_202E_206B_200B_202D_206A_202B_200D_200D_200F_200D_202A_206C_202B_200E_200D_202E_206B_200C_200E_200B_200B_206C_200F_202E_200B_200B_202E_206D_200B_200D_200B_200D_200E_202B_206E_202A_206E_206F_200E_202E((IGameObject)playerCharacter), _200C_202E_206B_200B_202D_206A_202B_200D_200D_200F_200D_202A_206C_202B_200E_200D_202E_206B_200C_200E_200B_200B_206C_200F_202E_200B_200B_202E_206D_200B_200D_200B_200D_200E_202B_206E_202A_206E_206F_200E_202E(gameObject)); - b = _202B_206B_202C_200E_202D_202D_200F_206E_202B_200C_202A_206F_200F_202E_206C_200F_206B_200D_206E_206A_206F_200C_200F_206D_200B_206D_206E_206E_200E_206B_200E_200F_200C_202A_200B_200B_202E_200D_200D_200C_202E((ICharacter)playerCharacter).ValueNullable?.Role; - num = ((!b.HasValue) ? 649091282 : 649091293); - break; - case 12: - num10 = 2.9f; - goto IL_0095; - case 7: - num = (flag4 ? 649091286 : 649091288); - break; - case 8: - flag2 = num11 - num9 > 5f; - num = (flag3 ? 649091290 : 649091285); - break; - case 0: - num = (flag ? 649091268 : 649091292); - break; - case 6: - flag4 = false; - num = 649091283; - break; - case 13: - num8 = _206F_202A_200E_206D_206C_200B_206B_200F_202B_200D_206E_200E_200E_202E_200F_202C_206E_206E_206B_206E_200F_206E_206E_206D_200B_206E_200E_202C_206A_202A_200E_206F_206A_206F_202A_200F_202B_206F_206D_200D_202E(num8, num11) / 2f; - flag2 = true; - num = 649091290; - break; - case 14: - num = (flag2 ? 649091280 : 649091281); - break; - case 9: - { - byte valueOrDefault = b.GetValueOrDefault(); - num3 = 3; - num4 = valueOrDefault; - num = (((uint)(~(~num4 + num3)) > 1u) ? 649091282 : 649091287); - break; } - case 4: - _206C_206D_206E_202D_202D_202C_200B_206B_200E_206C_202A_206B_202A_200B_206D_200F_206E_202C_200F_206C_202B_206B_206F_206F_200B_206B_206D_206A_206A_200F_206F_206F_206C_206A_206E_202B_206E_200B_202C_206C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-899940516), new object[2] - { - _206A_202D_206F_206C_202B_206E_202E_202A_206F_200B_200C_202C_206B_202B_202A_206F_200B_206F_206A_206F_206C_206C_200E_202A_206B_200E_202D_200F_202D_200C_202C_202D_200E_202B_206E_200D_200F_202E_206C_200D_202E(gameObject), - _206F_202D_200F_200E_206F_206C_200C_200E_206E_206D_200F_202D_200E_202D_206B_200D_202B_202D_200E_202C_206B_202B_202C_202A_202C_202D_202A_206B_206B_200D_202B_202E_200C_200F_202C_206C_202D_206B_202D_206F_202E(gameObject) - }); - _movementController.NavigateTo(EMovementType.Combat, null, _200C_202E_206B_200B_202D_206A_202B_200D_200D_200F_200D_202A_206C_202B_200E_200D_202E_206B_200C_200E_200B_200B_206C_200F_202E_200B_200B_202E_206D_200B_200D_200B_200D_200E_202B_206E_202A_206E_206F_200E_202E(gameObject), fly: false, sprint: false, num8 + num9 - 0.25f, float.MaxValue); - num = 649091268; - break; - case 1: - num = (flag ? 649091290 : 649091289); - break; - case 5: + if (!flag4) { - _206C_206D_206E_202D_202D_202C_200B_206B_200E_206C_202A_206B_202A_200B_206D_200F_206E_202C_200F_206C_202B_206B_206F_206F_200B_206B_206D_206A_206A_200F_206F_206F_206C_206A_206E_202B_206E_200B_202C_206C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-131708960), new object[2] - { - _206A_202D_206F_206C_202B_206E_202E_202A_206F_200B_200C_202C_206B_202B_202A_206F_200B_206F_206A_206F_206C_206C_200E_202A_206B_200E_202D_200F_202D_200C_202C_202D_200E_202B_206E_200D_200F_202E_206C_200D_202E(gameObject), - _206F_202D_200F_200E_206F_206C_200C_200E_206E_206D_200F_202D_200E_202D_206B_200D_202B_202D_200E_202C_206B_202B_202C_202A_202C_202D_202A_206B_206B_200D_202B_202E_200C_200F_202C_206C_202D_206B_202D_206F_202E(gameObject) - }); + _logger.LogDebug("Moving to {TargetName} ({BaseId}) to attack", gameObject.Name, gameObject.BaseId); MovementController movementController = _movementController; - int num7 = 1; - List<Vector3> list = new List<Vector3>(num7); - CollectionsMarshal.SetCount(list, num7); - CollectionsMarshal.AsSpan(list)[0] = _200C_202E_206B_200B_202D_206A_202B_200D_200D_200F_200D_202A_206C_202B_200E_200D_202E_206B_200C_200E_200B_200B_206C_200F_202E_200B_200B_202E_206D_200B_200D_200B_200D_200E_202B_206E_202A_206E_206F_200E_202E(gameObject); - movementController.NavigateTo(EMovementType.Combat, null, list, fly: false, sprint: false, num8 + num9 - 0.25f, float.MaxValue); - return; + int num4 = 1; + List<Vector3> list = new List<Vector3>(num4); + CollectionsMarshal.SetCount(list, num4); + CollectionsMarshal.AsSpan(list)[0] = gameObject.Position; + movementController.NavigateTo(EMovementType.Combat, null, list, fly: false, sprint: false, num3 + num - 0.25f, float.MaxValue); } - case 16: - return; - case 10: - num = 649091295; - break; - case 11: - return; - IL_0095: - num8 = num10; - flag3 = num11 - num9 >= num8; - flag = IsInLineOfSight(gameObject); - num = (flag3 ? 649091292 : 649091284); - break; + else + { + _logger.LogDebug("Moving to {TargetName} ({BaseId}) to attack (with navmesh)", gameObject.Name, gameObject.BaseId); + _movementController.NavigateTo(EMovementType.Combat, null, gameObject.Position, fly: false, sprint: false, num3 + num - 0.25f, float.MaxValue); } } } internal unsafe bool IsInLineOfSight(IGameObject target) { - IPlayerCharacter playerCharacter = _200D_206C_200C_200C_206E_200C_206B_202D_200F_202A_200B_206B_206A_202B_206D_200D_202C_200B_200D_206B_200D_202D_200B_202B_200E_206D_200C_202C_202B_200D_202E_202C_206A_202C_200C_206A_206B_206F_202C_200D_202E(_objectTable); - int num = ((playerCharacter != null) ? 1116900231 : 1116900230); - RaycastHit raycastHit = default(RaycastHit); - while (true) + IPlayerCharacter localPlayer = _objectTable.LocalPlayer; + if (localPlayer == null) { - int num2 = num; - int num3 = 1116900231; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - { - Vector3 vector = _200C_202E_206B_200B_202D_206A_202B_200D_200D_200F_200D_202A_206C_202B_200E_200D_202E_206B_200C_200E_200B_200B_206C_200F_202E_200B_200B_202E_206D_200B_200D_200B_200D_200E_202B_206E_202A_206E_206F_200E_202E((IGameObject)playerCharacter); - vector.Y += 2f; - Vector3 vector2 = _200C_202E_206B_200B_202D_206A_202B_200D_200D_200F_200D_202A_206C_202B_200E_200D_202E_206B_200C_200E_200B_200B_206C_200F_202E_200B_200B_202E_206D_200B_200D_200B_200D_200E_202B_206E_202A_206E_206F_200E_202E(target); - vector2.Y += 2f; - Vector3 vector3 = Vector3.Normalize(vector2 - vector); - float maxDistance = Vector3.Distance(vector, vector2); - int* flags = stackalloc int[4] { 16384, 0, 16384, 0 }; - return !Framework.Instance()->BGCollisionModule->RaycastMaterialFilter(&raycastHit, &vector, &vector3, maxDistance, 1, flags); - } - case 1: - return false; - case 2: - goto IL_00e2; - } - continue; - IL_00e2: - num = 1116900230; + return false; } + Vector3 position = localPlayer.Position; + position.Y += 2f; + Vector3 position2 = target.Position; + position2.Y += 2f; + Vector3 vector = Vector3.Normalize(position2 - position); + float maxDistance = Vector3.Distance(position, position2); + int* flags = stackalloc int[4] { 16384, 0, 16384, 0 }; + RaycastHit raycastHit = default(RaycastHit); + return !Framework.Instance()->BGCollisionModule->RaycastMaterialFilter(&raycastHit, &position, &vector, maxDistance, 1, flags); } - [MethodImpl(MethodImplOptions.NoInlining)] private void OnErrorToast(ref SeString message, ref bool isHandled) { - int num = ((_cannotSeeTargetText == null) ? (-1612200543) : (-1612200538)); - long num5 = default(long); - IGameObject gameObject = default(IGameObject); - while (true) + if (_cannotSeeTargetText == null || _currentFight == null || !message.TextValue.Contains(_cannotSeeTargetText, StringComparison.Ordinal)) { - int num2 = num; - int num3 = -1612200540; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return; + } + IGameObject target = _targetManager.Target; + if (target == null) + { + return; + } + long tickCount = Environment.TickCount64; + if (_lastLoSFailTargetId == target.GameObjectId && tickCount - _lastLoSFailTimeMs < 2000) + { + _losFailCount++; + if (_losFailCount >= 2) { - case 10: - num = -1612200538; - break; - case 12: - num5 = _200D_206B_206D_206C_200C_206F_200E_200C_202D_202A_200D_202D_202D_200B_206F_200C_202D_206B_202C_206B_200B_200B_200C_206A_202A_200D_206F_202E_200B_200F_200F_200C_200E_200F_200C_200F_200D_202D_202B_206F_202E(); - num = ((_lastLoSFailTargetId != _202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(gameObject)) ? (-1612200540) : (-1612200542)); - break; - case 3: - { - Dictionary<ulong, long> losIgnoreList = _losIgnoreList; - ulong key = _202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(gameObject); - long num6 = num5; - long num7 = 10000L; - long num8 = num6; - long num9 = num8 ^ num7; - long num10 = num8 & num7; - losIgnoreList[key] = num9 + (num10 + num10); - _206C_206D_206E_202D_202D_202C_200B_206B_200E_206C_202A_206B_202A_200B_206D_200F_206E_202C_200F_206C_202B_206B_206F_206F_200B_206B_206D_206A_206A_200F_206F_206F_206C_206A_206E_202B_206E_200B_202C_206C_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1206180878), new object[1] { _202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(gameObject) }); + _losIgnoreList[target.GameObjectId] = tickCount + 10000; + _logger.LogDebug("Target {TargetId:X8} added to LoS ignore list for 10s", target.GameObjectId); _losFailCount = 0; - _202C_202A_206D_202D_202E_202C_200B_202D_200E_202B_202E_206E_200F_200E_206D_206C_200C_200F_206F_200C_200E_202E_202B_206A_202E_206D_200E_206C_206C_200B_206A_202B_202C_202B_202A_206E_206C_202D_202B_202E_202E(_targetManager, (IGameObject)null); - num = -1612200531; - break; - } - case 9: - _lastLoSFailTimeMs = num5; - return; - case 1: - return; - case 11: - num = (_200D_206E_202E_202D_202D_202D_200E_200F_202A_200B_206A_200E_206B_202D_200E_206E_206F_206C_206C_202B_202E_200C_200B_202E_206F_202D_206B_202D_206B_206E_202A_202D_202E_206F_200F_200B_200C_206A_206F_200D_202E(_200B_200E_202A_206B_200F_202A_206D_200E_206C_202D_202C_202A_200D_200F_206E_206D_200D_206F_202D_200D_206D_206A_200C_206B_206A_202D_202E_202E_206F_206A_206E_202D_202C_200F_200F_200E_200D_206A_202D_200D_202E(message), _cannotSeeTargetText, StringComparison.Ordinal) ? (-1612200544) : (-1612200541)); - break; - case 5: - return; - case 2: - num = ((_currentFight != null) ? (-1612200529) : (-1612200543)); - break; - case 6: - { - long num11 = num5; - long num7 = _lastLoSFailTimeMs; - long num8 = num11; - num = ((~(~num8 + num7) >= 2000) ? (-1612200540) : (-1612200532)); - break; - } - case 8: - { - int losFailCount = _losFailCount; - num3 = 1; - num4 = losFailCount; - _losFailCount = (num4 | num3) + (num4 & num3); - num = ((_losFailCount < 2) ? (-1612200531) : (-1612200537)); - break; - } - case 4: - gameObject = _202B_202A_206E_200C_206F_202D_206D_206C_202D_200B_200E_206D_206C_206E_202D_206D_206D_202C_206D_202B_206C_200B_206E_202D_202C_206B_202A_202D_206E_200B_202B_206A_200D_206C_200F_200F_206D_206B_200E_200E_202E(_targetManager); - num = ((gameObject != null) ? (-1612200536) : (-1612200539)); - break; - case 7: - return; - case 0: - _lastLoSFailTargetId = _202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(gameObject); - _losFailCount = 1; - num = -1612200531; - break; + _targetManager.Target = null; } } + else + { + _lastLoSFailTargetId = target.GameObjectId; + _losFailCount = 1; + } + _lastLoSFailTimeMs = tickCount; } private void UpdateLastTargetAndQuestVariables(IGameObject? target) { - _lastTargetId = ((target != null) ? new ulong?(_202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(target)) : ((ulong?)null)); - _previousQuestVariables = ((!_202E_206B_200F_202A_200E_206E_206F_206E_206F_200D_202E_206E_206B_200B_202E_206B_200C_206C_200E_206D_200D_200D_202D_206F_206D_206F_202C_200E_206B_202D_202B_200C_202E_200D_206C_202A_200B_200C_202B_206D_202E(_currentFight.Data.ElementId, (ElementId)null)) ? null : _questFunctions.GetQuestProgressInfo(_currentFight.Data.ElementId)?.Variables); + _lastTargetId = target?.GameObjectId; + _previousQuestVariables = ((!(_currentFight.Data.ElementId != null)) ? null : _questFunctions.GetQuestProgressInfo(_currentFight.Data.ElementId)?.Variables); } - [MethodImpl(MethodImplOptions.NoInlining)] public void Stop(string label) { - IDisposable disposable = _logger.BeginScope(label); - try + using (_logger.BeginScope(label)) { - int num = ((_currentFight == null) ? (-1148615998) : (-1148616000)); - while (true) + if (_currentFight != null) { - int num2 = num; - int num3 = -1148615999; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = ((!_passiveBossModEnabled) ? (-1148615999) : (-1148615995)); - break; - case 4: - _bossModIpc.DisableAi(); - _passiveBossModEnabled = false; - num = -1148615999; - break; - case 2: - num = -1148616000; - break; - case 1: - _206C_206D_206E_202D_202D_202C_200B_206B_200E_206C_202A_206B_202A_200B_206D_200F_206E_202C_200F_206C_202B_206B_206F_206F_200B_206B_206D_206A_206A_200F_206F_206F_206C_206A_206E_202B_206E_200B_202C_206C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(950471825), Array.Empty<object>()); - _currentFight.Module.Stop(); - num = -1148615998; - break; - case 0: - _losIgnoreList.Clear(); - _losFailCount = 0; - _currentFight = null; - _wasInCombat = false; - return; - } + _logger.LogDebug("Stopping current fight"); + _currentFight.Module.Stop(); } - } - finally - { - int num = ((disposable == null) ? (-1380771664) : (-1380771661)); - while (true) + if (_passiveBossModEnabled) { - int num5 = num; - int num3 = -1380771662; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1380771661; - break; - case 1: - _206C_202A_202A_200D_206B_206C_206F_206F_206E_200C_202E_206E_206A_202A_200F_202B_202C_202D_206E_206D_202C_200F_206E_200F_202D_200E_202D_206F_200D_206C_206D_206A_206F_200D_200B_206E_202A_202E_200F_200D_202E(disposable); - num = -1380771664; - break; - case 2: - goto end_IL_011b; - } - continue; - end_IL_011b: - break; + _bossModIpc.DisableAi(); + _passiveBossModEnabled = false; } + _losIgnoreList.Clear(); + _losFailCount = 0; + _currentFight = null; + _wasInCombat = false; } } - [MethodImpl(MethodImplOptions.NoInlining)] private void TerritoryChanged(uint territoryId) { - Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-685044721)); + Stop("TerritoryChanged"); } - [MethodImpl(MethodImplOptions.NoInlining)] public void Dispose() { - _206E_206A_206E_206E_202E_200E_200C_206C_200E_206A_200F_202E_206C_200C_202D_200E_206C_200F_200C_202B_206D_202D_200C_206E_200E_206F_202D_206F_206B_200F_202D_206C_206C_200C_202B_206A_206F_206C_200E_202E(_toastGui, (IToastGui.OnErrorToastDelegate)OnErrorToast); - _206C_202D_200D_202E_206B_200D_202D_202E_206F_206A_200E_202C_200B_202D_206E_206F_206E_206C_202E_206E_206E_202E_206B_200F_206D_202C_200B_206F_202E_200D_206B_200D_200F_206F_202C_206E_200E_200C_206D_202B_202E(_clientState, (Action<uint>)TerritoryChanged); - Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(610358865)); - } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static void _200C_206B_206A_200E_200C_200C_202D_200C_202D_200F_200B_202E_202C_200B_200B_202D_200B_202C_200D_206A_202C_206C_206B_202D_206D_202B_200F_206C_202A_200D_202E_202D_206B_200F_206E_206B_202C_202C_206E_206B_202E(IClientState P_0, Action<uint> P_1) - { - P_0.TerritoryChanged += P_1; - } - - static void _200B_206F_202C_206C_200D_200D_202A_206B_202D_200D_206C_206D_202C_206B_202C_206E_200F_202C_202B_200C_200B_206D_200F_200B_206B_200F_202A_202A_200C_206F_206D_206D_202B_206F_202C_206D_206B_200E_206C_202E_202E(IToastGui P_0, IToastGui.OnErrorToastDelegate P_1) - { - P_0.ErrorToast += P_1; - } - - static void _206B_202A_206B_200B_206A_202A_206C_200C_200F_206C_206B_202C_206E_202B_200E_200B_206C_200D_200E_202C_206C_206A_202D_206F_202E_202D_202E_206B_202E_202A_206E_202B_200B_202B_202D_200C_202D_202D_200D_202B_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogDebug(P_1, P_2, P_3); - } - - static long _200D_206B_206D_206C_200C_206F_200E_200C_202D_202A_200D_202D_202D_200B_206F_200C_202D_206B_202C_206B_200B_200B_200C_206A_202A_200D_206F_202E_200B_200F_200F_200C_200E_200F_200C_200F_200D_202D_202B_206F_202E() - { - return Environment.TickCount64; - } - - static Type _202D_206B_206A_202A_200D_206C_206A_206D_200F_200B_202D_206A_200F_200B_200D_200D_206F_202E_200B_206A_206D_202D_200D_206A_200D_206E_200F_206D_202A_200F_202E_206C_202B_202E_206B_202C_206E_206F_206D_206E_202E(object P_0) - { - return P_0.GetType(); - } - - static string _206D_206D_206A_206E_202A_206B_206E_202E_200E_206B_200C_206C_202A_200B_202B_202C_200E_202A_200D_206B_200B_202A_202A_206A_200B_200E_200D_206B_200F_202E_202C_200B_206E_206B_200E_202B_200E_200F_206A_206F_202E(MemberInfo P_0) - { - return P_0.Name; - } - - static void _206C_206D_206E_202D_202D_202C_200B_206B_200E_206C_202A_206B_202A_200B_206D_200F_206E_202C_200F_206C_202B_206B_206F_206F_200B_206B_206D_206A_206A_200F_206F_206F_206C_206A_206E_202B_206E_200B_202C_206C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static IGameObject _202B_202A_206E_200C_206F_202D_206D_206C_202D_200B_200E_206D_206C_206E_202D_206D_206D_202C_206D_202B_206C_200B_206E_202D_202C_206B_202A_202D_206E_200B_202B_206A_200D_206C_200F_200F_206D_206B_200E_200E_202E(ITargetManager P_0) - { - return P_0.Target; - } - - static ulong _202C_200F_202A_206D_202B_202C_206D_202C_206A_200E_206A_206F_202B_206F_206A_206C_206C_200D_202E_206C_200B_200E_202A_202C_206D_202D_202A_202D_202E_202B_200B_206C_206C_202A_202B_206F_200D_206C_206A_206D_202E(IGameObject P_0) - { - return P_0.GameObjectId; - } - - static bool _206C_202D_206B_206B_200B_200C_206C_202E_200D_206B_200E_206F_206B_206A_202C_206D_206E_206F_202B_202E_202D_200E_200E_202B_202E_206A_200F_200E_206C_202E_206E_206A_202B_202B_202A_206D_206B_206E_202A_200C_202E(IGameObject P_0) - { - return P_0.IsDead; - } - - static bool _202E_206B_200F_202A_200E_206E_206F_206E_206F_200D_202E_206E_206B_200B_202E_206B_200C_206C_200E_206D_200D_200D_202D_206F_206D_206F_202C_200E_206B_202D_202B_200C_202E_200D_206C_202A_200B_200C_202B_206D_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } - - static bool _202C_200D_202C_202A_202C_206C_202D_200C_200D_200F_202C_206C_206C_206E_206E_206B_202A_200E_202E_206A_202A_200C_206F_206A_206B_200D_206B_206F_206D_206A_200C_206C_202A_202A_202A_206D_202D_200D_202E_206A_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static uint _206C_206F_202B_202E_206D_200E_202A_200F_200E_200B_206D_206A_200F_200B_200D_206B_200C_200C_202E_200B_200B_200E_202B_202D_202A_206C_206E_200B_206B_206F_202A_202E_202B_200C_202C_206F_202A_202B_200F_202D_202E(ComplexCombatData P_0) - { - return P_0.DataId; - } - - static uint _206F_202D_200F_200E_206F_206C_200C_200E_206E_206D_200F_202D_200E_202D_206B_200D_202B_202D_200E_202C_206B_202B_202C_202A_202C_202D_202A_206B_206B_200D_202B_202E_200C_200F_202C_206C_202D_206B_202D_206F_202E(IGameObject P_0) - { - return P_0.BaseId; - } - - static uint? _206C_200B_206D_202C_200C_202D_200E_200C_200C_202D_200E_206D_200B_200C_206C_202E_206A_206C_200C_206E_206E_206A_200C_200C_206B_206A_206B_202A_206D_202A_206E_206E_206C_200E_200B_202B_202C_200E_206E_202E(ComplexCombatData P_0) - { - return P_0.NameId; - } - - static uint _206A_206F_206D_206B_200B_200C_206B_202A_200C_202C_206B_206C_202D_200F_206D_206A_200F_202A_200D_206B_200D_202B_200F_206F_202C_202D_200D_200D_200C_206D_200C_200B_206D_202A_206E_206F_200F_206E_202E(ICharacter P_0) - { - return P_0.NameId; - } - - static uint? _206B_206C_200C_200F_200F_206A_200F_202A_206D_206C_202E_202B_202C_202D_202A_206B_206C_200E_206A_202D_202C_206D_202E_206A_200D_200C_200E_206B_206A_206E_200C_200C_206B_202E_202C_206C_202A_200B_206B_206C_202E(ComplexCombatData P_0) - { - return P_0.MinimumKillCount; - } - - static uint? _200F_202D_206D_200B_202D_202C_206E_202B_200B_202B_200D_206E_200D_202E_200C_200C_202E_206E_202E_206A_202D_200D_206A_206D_202A_206F_200F_206A_200D_202E_206E_200B_202B_200F_206D_200E_202C_202C_200E_202D_202E(ComplexCombatData P_0) - { - return P_0.RewardItemId; - } - - static int? _200F_206A_202E_202E_202D_202B_200D_206B_202D_202C_200E_202C_206C_200B_206A_200B_200B_202C_202D_206F_206A_202E_200E_202A_206C_206E_206E_200D_200C_200F_200B_206A_202C_202D_206D_200B_206E_202D_206E_202C_202E(ComplexCombatData P_0) - { - return P_0.RewardItemCount; - } - - static IList<QuestWorkValue> _206F_202C_206B_200C_202D_202A_200B_206B_200B_206C_200E_202D_200D_200D_200D_206F_206B_206B_200D_200C_206E_200D_206A_202D_202D_202A_200C_200C_200C_206A_200F_200E_202B_206F_200C_202D_200D_202E_202B_200C_202E(ComplexCombatData P_0) - { - return P_0.CompletionQuestVariablesFlags; - } - - static IPlayerCharacter _200D_206C_200C_200C_206E_200C_206B_202D_200F_202A_200B_206B_206A_202B_206D_200D_202C_200B_200D_206B_200D_202D_200B_202B_200E_206D_200C_202C_202B_200D_202E_202C_206A_202C_200C_206A_206B_206F_202C_200D_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static Vector3 _200C_202E_206B_200B_202D_206A_202B_200D_200D_200F_200D_202A_206C_202B_200E_200D_202E_206B_200C_200E_200B_200B_206C_200F_202E_200B_200B_202E_206D_200B_200D_200B_200D_200E_202B_206E_202A_206E_206F_200E_202E(IGameObject P_0) - { - return P_0.Position; - } - - static bool _206B_206D_202E_206E_206E_202D_206B_202E_200E_206B_206B_200F_206F_202B_202B_200C_202C_206A_202D_206B_202B_202B_206B_202E_206C_200E_202B_202E_206D_206A_206E_202B_202B_202E_200B_200F_202E_206C_202D_202B_202E(ILogger P_0, LogLevel P_1) - { - return P_0.IsEnabled(P_1); - } - - static SeString _206A_202D_206F_206C_202B_206E_202E_202A_206F_200B_200C_202C_206B_202B_202A_206F_200B_206F_206A_206F_206C_206C_200E_202A_206B_200E_202D_200F_202D_200C_202C_202D_200E_202B_206E_200D_200F_202E_206C_200D_202E(IGameObject P_0) - { - return P_0.Name; - } - - static bool _200C_202E_206C_202E_206E_206A_202E_200C_200C_206F_206E_200B_206B_200D_206A_202B_206F_206E_202B_200C_202A_202C_200C_202A_202C_200B_200E_200F_200E_200F_200D_200B_206A_202E_206F_202C_200D_202E_200D_202D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206C_202A_202A_200D_206B_206C_206F_206F_206E_200C_202E_206E_206A_202A_200F_202B_202C_202D_206E_206D_202C_200F_206E_200F_202D_200E_202D_206F_200D_206C_206D_206A_206F_200D_200B_206E_202A_202E_200F_200D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool _202A_202B_202C_200D_200D_200C_202C_206C_202C_202D_200C_202B_206C_202A_206B_206E_200E_202E_202B_206D_200B_202A_206A_206E_200C_200B_200B_200C_200F_206F_200C_206B_200C_200E_202B_206B_202A_200C_202B_202E(IGameObject P_0) - { - return P_0.IsTargetable; - } - - static StatusFlags _200B_200F_200D_200C_206C_206C_206F_200D_206C_200D_200E_200F_206B_202E_200E_200E_200E_206D_206E_206E_202D_202C_200B_202A_206B_206D_206C_202A_200E_206B_206C_206F_202E_206A_206A_206E_202A_200B_202B_206A_202E(ICharacter P_0) - { - return P_0.StatusFlags; - } - - static bool _200C_200D_202B_202E_200C_202C_206E_200F_200E_202A_206A_206C_206D_202B_202E_200D_206F_200F_202B_200D_200B_200C_206E_200F_200C_202C_206B_202A_206F_200F_200F_206B_206D_202B_200D_200F_206C_206C_206F_202A_202E(Enum P_0, Enum P_1) - { - return P_0.HasFlag(P_1); - } - - static ulong _206A_206E_202C_206B_206E_202B_202C_202E_202D_206E_200D_206F_206F_206D_202E_206F_200C_200B_200E_202E_206D_206F_202A_206D_206F_206B_206A_200D_200B_206E_202A_202E_200E_206A_206B_202E_200C_202A_206D_202E(IGameObject P_0) - { - return P_0.TargetObjectId; - } - - static string _206A_206E_200B_200E_202C_202C_206A_200B_206D_200F_206A_200E_200F_202C_206C_206B_200D_202C_202C_200B_200E_206E_200F_200E_200B_200B_206C_200F_202D_202C_200F_206A_206B_202A_200D_202C_200C_206F_206C_206C_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static nint _206B_200C_200E_200B_200C_206A_206F_200E_200C_200B_206C_200E_202B_202C_206E_206A_206A_200E_200F_206C_202B_206C_206A_200B_202C_202C_206D_206F_200D_202E_206F_206F_200D_200F_200F_200F_206D_202A_202A_200D_202E(IGameObject P_0) - { - return P_0.Address; - } - - static bool _206B_202B_206A_202A_206C_206A_206E_202B_206E_206B_202E_206A_200F_206C_200E_202B_200F_202C_206A_202D_200D_202C_202B_200B_200C_206C_202E_206B_202E_200D_200B_206F_206D_202A_206F_200E_202A_200F_206F_206B_202E(ComplexCombatData P_0) - { - return P_0.IgnoreQuestMarker; - } - - static Dalamud.Game.ClientState.Objects.Enums.BattleNpcSubKind _200C_200C_202B_200C_200D_206D_200D_206A_202E_206F_206A_200D_206C_206C_200E_202C_206C_206A_202E_202A_202C_200B_202E_200E_200E_206D_200D_200C_200C_206A_206A_200B_206B_202C_200B_202A_202B_202A_200E_206B_202E(IBattleNpc P_0) - { - return P_0.BattleNpcKind; - } - - static void _202C_202A_206D_202D_202E_202C_200B_202D_200E_202B_202E_206E_200F_200E_206D_206C_200C_200F_206F_200C_200E_202E_202B_206A_202E_206D_200E_206C_206C_200B_206A_202B_202C_202B_202A_206E_206C_202D_202B_202E_202E(ITargetManager P_0, IGameObject P_1) - { - P_0.Target = P_1; - } - - static string _200D_200C_202E_200D_206A_206A_206A_200E_206F_206C_200E_200B_200D_206D_206F_200F_200E_200F_202B_206F_206C_202C_200C_202A_202E_202C_206E_206E_206A_206C_202D_200F_200D_202B_202E_206F_206C_202B_206C_200F_202E(object P_0) - { - return P_0.ToString(); - } - - static float _200C_200B_200C_206F_200D_200E_200E_200D_200D_202D_202B_200B_200D_206B_202C_200D_200E_206B_206D_202D_206B_200C_206D_200D_200D_206C_200C_200F_206A_202E_202C_206A_202B_200F_206C_200B_206E_200B_202B_206A_202E(IGameObject P_0) - { - return P_0.HitboxRadius; - } - - static RowRef<ClassJob> _202B_206B_202C_200E_202D_202D_200F_206E_202B_200C_202A_206F_200F_202E_206C_200F_206B_200D_206E_206A_206F_200C_200F_206D_200B_206D_206E_206E_200E_206B_200E_200F_200C_202A_200B_200B_202E_200D_200D_200C_202E(ICharacter P_0) - { - return P_0.ClassJob; - } - - static float _206F_202A_200E_206D_206C_200B_206B_200F_202B_200D_206E_200E_200E_202E_200F_202C_206E_206E_206B_206E_200F_206E_206E_206D_200B_206E_200E_202C_206A_202A_200E_206F_206A_206F_202A_200F_202B_206F_206D_200D_202E(float P_0, float P_1) - { - return Math.Min(P_0, P_1); - } - - static string _200B_200E_202A_206B_200F_202A_206D_200E_206C_202D_202C_202A_200D_200F_206E_206D_200D_206F_202D_200D_206D_206A_200C_206B_206A_202D_202E_202E_206F_206A_206E_202D_202C_200F_200F_200E_200D_206A_202D_200D_202E(SeString P_0) - { - return P_0.TextValue; - } - - static bool _200D_206E_202E_202D_202D_202D_200E_200F_202A_200B_206A_200E_206B_202D_200E_206E_206F_206C_206C_202B_202E_200C_200B_202E_206F_202D_206B_202D_206B_206E_202A_202D_202E_206F_200F_200B_200C_206A_206F_200D_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); - } - - static void _206E_206A_206E_206E_202E_200E_200C_206C_200E_206A_200F_202E_206C_200C_202D_200E_206C_200F_200C_202B_206D_202D_200C_206E_200E_206F_202D_206F_206B_200F_202D_206C_206C_200C_202B_206A_206F_206C_200E_202E(IToastGui P_0, IToastGui.OnErrorToastDelegate P_1) - { - P_0.ErrorToast -= P_1; - } - - static void _206C_202D_200D_202E_206B_200D_202D_202E_206F_206A_200E_202C_200B_202D_206E_206F_206E_206C_202E_206E_206E_202E_206B_200F_206D_202C_200B_206F_202E_200D_206B_200D_200F_206F_202C_206E_200E_200C_206D_202B_202E(IClientState P_0, Action<uint> P_1) - { - P_0.TerritoryChanged -= P_1; + _toastGui.ErrorToast -= OnErrorToast; + _clientState.TerritoryChanged -= TerritoryChanged; + Stop("Dispose"); } } diff --git a/Questionable/Questionable.Controller/CommandHandler.cs b/Questionable/Questionable.Controller/CommandHandler.cs index 07704d8..9c1a4ba 100644 --- a/Questionable/Questionable.Controller/CommandHandler.cs +++ b/Questionable/Questionable.Controller/CommandHandler.cs @@ -1,9 +1,7 @@ using System; using System.Runtime.CompilerServices; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Game.Command; using Dalamud.Plugin.Services; -using LLib.ImGui; using Questionable.Functions; using Questionable.Windows; @@ -55,7 +53,6 @@ internal sealed class CommandHandler : IDisposable private readonly ChangelogWindow _changelogWindow; - [MethodImpl(MethodImplOptions.NoInlining)] public CommandHandler(ICommandManager commandManager, IChatGui chatGui, QuestController questController, MovementController movementController, FateController fateController, SeasonalDutyController seasonalDutyController, AttunementController attunementController, CustomDeliveryController customDeliveryController, FishingController fishingController, QuestRegistry questRegistry, ConfigWindow configWindow, OneTimeSetupWindow oneTimeSetupWindow, QuestWindow questWindow, QuestSelectionWindow questSelectionWindow, QuestSequenceWindow questSequenceWindow, JournalProgressWindow journalProgressWindow, FateSelectionWindow fateSelectionWindow, SeasonalDutySelectionWindow seasonalDutySelectionWindow, ITargetManager targetManager, QuestFunctions questFunctions, GameFunctions gameFunctions, AetheryteFunctions aetheryteFunctions, IDataManager dataManager, IClientState clientState, IObjectTable objectTable, Configuration configuration, ChangelogWindow changelogWindow) { _commandManager = commandManager; @@ -78,567 +75,146 @@ internal sealed class CommandHandler : IDisposable _clientState = clientState; _configuration = configuration; _changelogWindow = changelogWindow; - _206F_202A_200D_206C_202E_206D_206D_200F_206B_202A_200D_202D_206F_206D_200E_206F_202A_200C_200E_200F_202B_200E_206F_206A_200F_200D_200D_202D_206B_206F_200D_202D_206C_202C_200E_200B_206B_200E_202C_200D_202E(_clientState, (IClientState.LogoutDelegate)OnLogout); + _clientState.Logout += OnLogout; ICommandManager commandManager2 = _commandManager; - string text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1083379744); - CommandInfo commandInfo = _206E_200B_200D_200C_206A_202B_202E_206D_202C_200E_202D_206E_206B_206D_202B_206C_200E_200E_206D_200E_202D_206F_206A_200D_200F_200C_206B_206E_206A_202B_200B_206D_200D_206C_206E_206D_202E_206D_200B_206C_202E((IReadOnlyCommandInfo.HandlerDelegate)ProcessCommand); - string text2 = _200C_206C_200E_206E_202A_200D_202E_206C_200C_206B_202E_202A_206E_200F_206E_200E_202C_202C_200B_206B_202E_202A_202C_200F_200E_200C_206C_202D_206F_200B_202C_206F_206E_206B_200F_200C_202E_206F_206C_206F_202E(_202D_206E_200B_200B_206B_202E_202D_206B_200F_202A_202A_202D_206C_206C_202E_202C_202B_202B_200F_200F_202A_206E_200C_202B_206D_202D_206D_200C_200C_206E_200B_206B_202D_202C_206F_206C_200C_200E_206C_202D_202E(), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1365294164)); + CommandInfo commandInfo = new CommandInfo(ProcessCommand); + string separator = Environment.NewLine + "\t"; InlineArray7<string> buffer = default(InlineArray7<string>); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 0) = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2027085169); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 1) = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1094157375); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 2) = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(762558285); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 3) = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-86108937); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 4) = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1230176856); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 5) = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(112790708); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 6) = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-794498605); - _202C_206D_202E_200C_206E_206C_200E_206D_206E_206F_206A_200F_206C_200E_206B_202A_202C_206D_200D_206E_200B_202B_206B_206B_206D_200F_206E_200F_206D_202D_200D_200E_202B_206A_206E_206F_206C_206F_206A_206F_202E(commandInfo, _206C_200F_206B_206C_200D_202A_202E_206C_200F_206E_206F_202C_206F_202B_206B_200E_200C_206A_202C_200F_206C_206D_200D_200E_202C_202E_206B_202C_200F_200B_206B_206B_206F_200F_202A_206E_200C_200D_206D_200F_202E(text2, global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<InlineArray7<string>, string>(in buffer, 7))); - _202E_200E_200C_202D_206B_200F_206B_206D_206E_202B_200D_202B_202E_202D_200C_206C_206F_202A_200B_200D_206F_206B_206A_202B_206F_206E_202D_202E_206B_200D_206D_206C_202D_206B_202E_206B_202E_202B_206B_200E_202E(commandManager2, text, commandInfo); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 0) = "Opens the Questing window"; + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 1) = "/qst help - displays simplified commands"; + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 2) = "/qst help-all - displays all available commands"; + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 3) = "/qst config - opens the configuration window"; + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 4) = "/qst changelog - opens the changelog window"; + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 5) = "/qst start - starts doing quests"; + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 6) = "/qst stop - stops doing quests"; + commandInfo.HelpMessage = string.Join(separator, global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<InlineArray7<string>, string>(in buffer, 7)); + commandManager2.AddHandler("/qst", commandInfo); } - [MethodImpl(MethodImplOptions.NoInlining)] private void ProcessCommand(string command, string arguments) { - int num = ((!_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(_200E_202E_200B_202C_206D_200F_206F_200C_200D_200E_202C_200D_206F_200B_200D_206E_206F_200C_202B_202D_206E_206B_200D_206B_206C_200B_206C_200D_206A_200E_202A_200C_202B_206E_200E_200B_202A_200B_202B_206B_202E(arguments), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(356304837))) ? (-1968296446) : (-1968296445)); - char c = default(char); - string text = default(string); - string[] array = default(string[]); - while (true) + if (arguments.Trim() == "setup") { - int num2 = num; - int num3 = -1968296431; - int num4 = num2; - char num5; - char num6; - switch ((num4 | num3) - (num4 & num3)) + _oneTimeSetupWindow.IsOpenAndUncollapsed = true; + } + else if (!OpenSetupIfNeeded(arguments)) + { + string[] array = arguments.Split(' '); + switch (array[0]) { - case 50: - num = -1968296366; - break; - case 14: - num = ((c == 'h') ? (-1968296420) : (-1968296390)); - break; - case 63: - switch (_206D_200C_206B_206B_206B_206C_200B_200C_202B_200C_200F_206C_206B_200B_206F_202D_202E_206A_200F_200E_200C_200E_200B_206C_206D_206C_206A_206B_202C_206E_206F_202D_206C_200C_206B_202B_202B_202A_200B_200E_202E(text)) - { - case 3: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - goto IL_021b; - case 5: - goto IL_024d; - case 16: - goto IL_0275; - case 6: - goto IL_0313; - case 1: - goto IL_033b; - case 2: - goto IL_0478; - case 8: - goto IL_04f2; - case 9: - goto IL_0579; - case 0: - goto IL_06cc; - case 4: - goto IL_0756; - case 7: - goto IL_07be; - } - num = -1968296367; - break; - case 45: - _206D_206D_200F_206F_206B_202C_200C_202A_206F_202E_206A_200D_202A_206C_206E_202C_206F_200F_200E_206D_202C_200E_200E_202C_206C_200E_200E_200B_206D_202E_206C_206C_206E_200D_200D_200B_200D_202D_200E_206E_202E((LWindow)_configWindow); - return; - case 31: - goto IL_01f7; - case 34: - num = -1968296366; - break; - case 61: - num = -1968296366; - break; - case 67: - goto IL_021b; - case 6: - goto IL_024d; - case 55: - goto IL_0275; - case 64: - num = -1968296366; - break; - case 28: - array = _206D_200E_200D_200B_200C_206D_206E_200E_200B_202D_200C_202A_202C_200D_200E_206B_200B_200B_202D_200C_202E_200B_206E_206B_202C_200E_206D_206D_206C_206F_200C_206A_202E_200E_206A_202E_202A_206C_206B_206F_202E(arguments, ' ', StringSplitOptions.None); - text = array[0]; - num = ((text == null) ? (-1968296366) : (-1968296402)); - break; - case 24: - num = -1968296366; - break; - case 13: - num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-452995351)) ? (-1968296442) : (-1968296405)); - break; - case 12: - goto IL_0313; - case 66: - goto IL_033b; - case 36: - num = ((c == 'z') ? (-1968296407) : (-1968296424)); - break; - case 19: - num = ((!OpenSetupIfNeeded(arguments)) ? (-1968296435) : (-1968296438)); - break; - case 52: - num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(125256215)) ? (-1968296407) : (-1968296397)); - break; - case 5: - _questWindow.Reload(); - return; - case 37: - goto IL_03ff; - case 22: - num = -1968296366; - break; - case 15: - num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-250062108)) ? (-1968296444) : (-1968296385)); - break; - case 39: - num = ((c == 'w') ? (-1968296437) : (-1968296448)); - break; - case 7: - goto IL_0460; - case 33: - num = -1968296366; - break; - case 2: - goto IL_0478; - case 40: - _questController.InterruptQueueWithCombat(); - return; - case 47: - num = -1968296366; - break; - case 27: - return; - case 44: - num = -1968296366; - break; - case 57: - goto IL_04c5; - case 16: - goto IL_04f2; - case 56: - _questSelectionWindow.OpenForCurrentZone(); - return; - case 51: - num = ((c == 's') ? (-1968296412) : (-1968296433)); - break; - case 46: - num = -1968296366; - break; - case 21: - _200B_202B_200E_206A_206D_202A_200D_200E_206B_200D_206D_200D_202A_206A_200C_200D_206E_200B_200F_200E_206E_202B_200B_202B_206C_206E_202B_202C_206A_200F_206F_206B_206A_206D_200C_206F_206A_200C_202E_206F_202E((LWindow)_questWindow, true); - _questController.Start(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1553553142)); - return; - case 4: - goto IL_0579; - case 8: - num = ((c == 'r') ? (-1968296406) : (-1968296413)); - break; - case 30: - num = ((c == 'z') ? (-1968296411) : (-1968296386)); - break; - case 60: - num = -1968296366; - break; - case 29: - _206D_206D_200F_206F_206B_202C_200C_202A_206F_202E_206A_200D_202A_206C_206E_202C_206F_200F_200E_206D_202C_200E_200E_202C_206C_200E_200E_200B_206D_202E_206C_206C_206E_200D_200D_200B_200D_202D_200E_206E_202E((LWindow)_changelogWindow); - return; - case 1: - _questSelectionWindow.OpenForTarget(_200E_200F_206B_202B_200D_206F_202B_206E_202D_202A_206A_200C_202C_202A_200B_202A_206C_206F_200F_202E_200F_200C_202E_206D_206A_202A_200B_202B_200C_206A_206C_206B_206F_202E_202D_206B_200D_202D_202E_202D_202E(_targetManager)); - return; - case 49: - num = -1968296366; - break; - case 54: - num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1011458983)) ? (-1968296436) : (-1968296421)); - break; - case 11: - goto IL_064e; - case 62: - goto IL_067b; - case 38: - num = -1968296366; - break; - case 10: - num = -1968296366; - break; - case 42: - num = -1968296366; - break; - case 41: - goto IL_06cc; - case 25: - goto IL_06d8; - case 32: - num = -1968296366; - break; - case 43: - num = -1968296366; - break; - case 18: - _200B_202B_200E_206A_206D_202A_200D_200E_206B_200D_206D_200D_202A_206A_200C_200D_206E_200B_200F_200E_206E_202B_200B_202B_206C_206E_202B_202C_206A_200F_206F_206B_206A_206D_200C_206F_206A_200C_202E_206F_202E((LWindow)_oneTimeSetupWindow, true); - return; - case 17: - num = -1968296366; - break; - case 23: - PrintHelp(showAll: true); - return; - case 58: - num = -1968296366; - break; - case 26: - num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(247506049)) ? (-1968296432) : (-1968296403)); - break; - case 3: - goto IL_0756; - case 59: - num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(389927297)) ? (-1968296428) : (-1968296400)); - break; - case 48: - goto IL_07be; - case 35: - num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(247173070)) ? (-1968296388) : (-1968296439)); - break; - case 53: - num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1935052277)) ? (-1968296431) : (-1968296416)); - break; - case 20: - num = -1968296445; - break; - case 0: - _movementController.Stop(); - _questController.Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1980456505)); - _fateController.Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1980456505)); - _seasonalDutyController.Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1980456505)); - _attunementController.Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-841271388)); - _customDeliveryController.Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1980456505)); - _fishingController.Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-276225839)); - return; - case 65: - num = -1968296366; - break; - case 9: - { - num = -1968296366; - break; - } - IL_0478: - c = _200B_206F_202D_202A_200E_202E_206C_200F_202E_202D_202B_200F_202C_202D_202B_200F_202C_200E_200B_202D_202B_200D_202C_202D_202C_206A_206F_200E_200F_200F_202C_200E_206A_202E_206F_202A_200B_202A_206E_206A_202E(text, 0); - num = ((c == 'c') ? (-1968296409) : (-1968296417)); - break; - IL_024d: - c = _200B_206F_202D_202A_200E_202E_206C_200F_202E_202D_202B_200F_202C_202D_202B_200F_202C_200E_200B_202D_202B_200D_202C_202D_202C_206A_206F_200E_200F_200F_202C_200E_206A_202E_206F_202A_200B_202A_206E_206A_202E(text, 0); - num = ((c == 's') ? (-1968296418) : (-1968296394)); - break; - IL_07be: - num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(651525904)) ? (-1968296426) : (-1968296399)); - break; - IL_033b: - c = _200B_206F_202D_202A_200E_202E_206C_200F_202E_202D_202B_200F_202C_202D_202B_200F_202C_200E_200B_202D_202B_200D_202C_202D_202C_206A_206F_200E_200F_200F_202C_200E_206A_202E_206F_202A_200B_202A_206E_206A_202E(text, 0); - num5 = c; - num3 = 99; - num4 = num5; - switch (~(~num4 + num3)) - { - case 0: - break; - case 1: - goto IL_01f7; - case 2: - case 4: - case 6: - goto IL_021b; - default: - goto IL_0376; - case 5: - goto IL_03ff; - case 7: - goto IL_0460; - case 3: - goto IL_06d8; - } - goto case 45; - IL_06d8: - _206D_206D_200F_206F_206B_202C_200C_202A_206F_202E_206A_200D_202A_206C_206E_202C_206F_200F_200E_206D_202C_200E_200E_202C_206C_200E_200E_200B_206D_202E_206C_206C_206E_200D_200D_200B_200D_202D_200E_206E_202E((LWindow)_fateSelectionWindow); - return; - IL_0756: - c = _200B_206F_202D_202A_200E_202E_206C_200F_202E_202D_202B_200F_202C_202D_202B_200F_202C_200E_200B_202D_202B_200D_202C_202D_202C_206A_206F_200E_200F_200F_202C_200E_206A_202E_206F_202A_200B_202A_206E_206A_202E(text, 0); - num6 = c; - num3 = 100; - num4 = num6; - switch (~(~num4 + num3)) - { - case 1: - case 3: - break; - case 2: - goto IL_04c5; - case 4: - goto IL_064e; - case 0: - goto IL_067b; - default: - goto IL_0785; - } - goto IL_021b; - IL_0785: - num = -1968296414; - break; - IL_067b: - num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1752048098)) ? (-1968296434) : (-1968296368)); - break; - IL_0460: - _206D_206D_200F_206F_206B_202C_200C_202A_206F_202E_206A_200D_202A_206C_206E_202C_206F_200F_200E_206D_202C_200E_200E_202C_206C_200E_200E_200B_206D_202E_206C_206C_206E_200D_200D_200B_200D_202D_200E_206E_202E((LWindow)_journalProgressWindow); - return; - IL_03ff: + case "h": + case "help": PrintHelp(showAll: false); - return; - IL_064e: - num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1436321725)) ? (-1968296396) : (-1968296387)); break; - IL_0376: - num = -1968296395; + case "ha": + case "help-all": + PrintHelp(showAll: true); break; - IL_01f7: - _206D_206D_200F_206F_206B_202C_200C_202A_206F_202E_206A_200D_202A_206C_206E_202C_206F_200F_200E_206D_202C_200E_200E_202C_206C_200E_200E_200B_206D_202E_206C_206C_206E_200D_200D_200B_200D_202D_200E_206E_202E((LWindow)_seasonalDutySelectionWindow); - return; - IL_04c5: - num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1573932804)) ? (-1968296440) : (-1968296404)); + case "c": + case "config": + _configWindow.ToggleOrUncollapse(); break; - IL_0313: - c = _200B_206F_202D_202A_200E_202E_206C_200F_202E_202D_202B_200F_202C_202D_202B_200F_202C_200E_200B_202D_202B_200D_202C_202D_202C_206A_206F_200E_200F_200F_202C_200E_206A_202E_206F_202A_200B_202A_206E_206A_202E(text, 0); - num = ((c == 'c') ? (-1968296398) : (-1968296423)); + case "cl": + case "changelog": + _changelogWindow.ToggleOrUncollapse(); break; - IL_06cc: - _206D_206D_200F_206F_206B_202C_200C_202A_206F_202E_206A_200D_202A_206C_206E_202C_206F_200F_200E_206D_202C_200E_200E_202C_206C_200E_200E_200B_206D_202E_206C_206C_206E_200D_200D_200B_200D_202D_200E_206E_202E((LWindow)_questWindow); - return; - IL_0579: - num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1367448256)) ? (-1968296436) : (-1968296441)); + case "start": + _questWindow.IsOpenAndUncollapsed = true; + _questController.Start("Start command"); break; - IL_04f2: - num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(979277832)) ? (-1968296442) : (-1968296389)); + case "stop": + _movementController.Stop(); + _questController.Stop("Stop command"); + _fateController.Stop("Stop command"); + _seasonalDutyController.Stop("Stop command"); + _attunementController.Stop("Stop command"); + _customDeliveryController.Stop("Stop command"); + _fishingController.Stop("Stop command"); break; - IL_0275: - num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-223898377)) ? (-1968296391) : (-1968296393)); + case "reload": + _questWindow.Reload(); + break; + case "which": + _questSelectionWindow.OpenForTarget(_targetManager.Target); + break; + case "z": + case "zone": + _questSelectionWindow.OpenForCurrentZone(); + break; + case "j": + case "journal": + _journalProgressWindow.ToggleOrUncollapse(); + break; + case "f": + case "fate": + _fateSelectionWindow.ToggleOrUncollapse(); + break; + case "d": + case "duty": + _seasonalDutySelectionWindow.ToggleOrUncollapse(); + break; + case "handle-interrupt": + _questController.InterruptQueueWithCombat(); + break; + case "": + _questWindow.ToggleOrUncollapse(); + break; + default: + _chatGui.PrintError("Unknown subcommand " + array[0], "Questionable", 576); break; - IL_021b: - _200C_206E_202E_206F_206D_206F_200E_206A_206B_206E_206D_202D_206B_206E_206D_200C_206E_206F_206C_206A_202A_200E_202D_206F_202A_200D_202B_206F_200C_202E_206A_200C_200D_206D_200F_202C_206C_206E_206C_206F_202E(_chatGui, _200C_206C_200E_206E_202A_200D_202E_206C_200C_206B_202E_202A_206E_200F_206E_200E_202C_202C_200B_206B_202E_202A_202C_200F_200E_200C_206C_202D_206F_200B_202C_206F_206E_206B_200F_200C_202E_206F_206C_206F_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(66928123), array[0]), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - return; } } } - [MethodImpl(MethodImplOptions.NoInlining)] private void PrintHelp(bool showAll) { - _206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(759427951), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - _206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2028773556), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - _206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1094157375), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - _206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(944582271), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - _206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-86108937), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); - _206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(369755883), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); - _206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1199190363), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - _206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2087796218), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712), (ushort?)(ushort)576); - _206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1446934470), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - _206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1296112140), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - int num = ((!showAll) ? (-1200394903) : (-1200394902)); - while (true) + _chatGui.Print("Available commands:", "Questionable", 576); + _chatGui.Print("/qst - toggles the Questing window", "Questionable", 576); + _chatGui.Print("/qst help - displays simplified commands", "Questionable", 576); + _chatGui.Print("/qst help-all - displays all available commands", "Questionable", 576); + _chatGui.Print("/qst config - opens the configuration window", "Questionable", 576); + _chatGui.Print("/qst setup - re-opens the first-time setup wizard", "Questionable", 576); + _chatGui.Print("/qst changelog - opens the changelog window", "Questionable", 576); + _chatGui.Print("/qst start - starts doing quests", "Questionable", 576); + _chatGui.Print("/qst stop - stops doing quests", "Questionable", 576); + _chatGui.Print("/qst reload - reload all quest data", "Questionable", 576); + if (showAll) { - int num2 = num; - int num3 = -1200394901; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1200394902; - break; - case 3: - _206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1602086836), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - num = -1200394897; - break; - case 2: - _206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1967115278), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); - num = ((!showAll) ? (-1200394897) : (-1200394904)); - break; - case 1: - _206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2039593709), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712), (ushort?)(ushort)576); - _206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-365682793), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712), (ushort?)(ushort)576); - _206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(29170112), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712), (ushort?)(ushort)576); - num = -1200394903; - break; - case 4: - return; - } + _chatGui.Print("/qst which - shows all quests starting with your selected target", "Questionable", 576); + _chatGui.Print("/qst zone - shows all quests starting in the current zone (only includes quests with a known quest path, and currently visible unaccepted quests)", "Questionable", 576); + _chatGui.Print("/qst journal - toggles the Journal Progress window", "Questionable", 576); + } + _chatGui.Print("/qst fate / duty - toggles the farming window", "Questionable", 576); + if (showAll) + { + _chatGui.Print("/qst handle-interrupt - makes Questionable handle queued interrupts immediately (useful if you manually start combat)", "Questionable", 576); } } - [MethodImpl(MethodImplOptions.NoInlining)] private bool OpenSetupIfNeeded(string arguments) { - int num = (_configuration.IsPluginSetupComplete() ? 6725766 : 6725767); - while (true) + if (!_configuration.IsPluginSetupComplete()) { - int num2 = num; - int num3 = 6725766; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (string.IsNullOrEmpty(arguments)) { - case 5: - num = 6725767; - break; - case 0: - return false; - case 4: - _200B_202B_200E_206A_206D_202A_200D_200E_206B_200D_206D_200D_202A_206A_200C_200D_206E_200B_200F_200E_206E_202B_200B_202B_206C_206E_202B_202C_206A_200F_206F_206B_206A_206D_200C_206F_206A_200C_202E_206F_202E((LWindow)_oneTimeSetupWindow, true); - num = 6725764; - break; - case 1: - num = ((!_200C_202B_200F_206D_200D_200C_206E_202D_200F_202D_206E_200B_200C_202B_200B_202D_206C_206E_202D_206E_200F_200B_206C_202A_202D_202D_202A_206E_202C_200F_206F_200D_206F_200D_206E_206E_200C_200B_206E_206E_202E(arguments)) ? 6725765 : 6725762); - break; - case 3: - _200C_206E_202E_206F_206D_206F_200E_206A_206B_206E_206D_202D_206B_206E_206D_200C_206E_206F_206C_206A_202A_200E_202D_206F_202A_200D_202B_206F_200C_202E_206A_200C_200D_206D_200F_202C_206C_206E_206C_206F_202E(_chatGui, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2108279054), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - num = 6725764; - break; - case 2: - return true; + _oneTimeSetupWindow.IsOpenAndUncollapsed = true; } + else + { + _chatGui.PrintError("Please complete the one-time setup first.", "Questionable", 576); + } + return true; } + return false; } private void OnLogout(int type, int code) { } - [MethodImpl(MethodImplOptions.NoInlining)] public void Dispose() { - _206D_206C_200F_200C_206B_200D_200B_202D_200F_200B_202E_206D_200B_202D_206A_200B_206E_206A_206D_200B_200E_202D_206D_206B_206E_206D_206A_200F_206F_200E_200E_200E_200C_206F_200E_202B_206A_200F_202A_202E_202E(_commandManager, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2086100270)); - _206A_200E_202D_200C_200C_206F_206E_200F_206C_202D_206C_200B_206B_206D_206D_200C_200D_206F_202C_202C_206E_206D_206E_202D_206C_206C_206B_206F_202D_202A_202A_200F_200B_202B_200E_200D_202B_206E_202B_200E_202E(_clientState, (IClientState.LogoutDelegate)OnLogout); - } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static void _206F_202A_200D_206C_202E_206D_206D_200F_206B_202A_200D_202D_206F_206D_200E_206F_202A_200C_200E_200F_202B_200E_206F_206A_200F_200D_200D_202D_206B_206F_200D_202D_206C_202C_200E_200B_206B_200E_202C_200D_202E(IClientState P_0, IClientState.LogoutDelegate P_1) - { - P_0.Logout += P_1; - } - - static CommandInfo _206E_200B_200D_200C_206A_202B_202E_206D_202C_200E_202D_206E_206B_206D_202B_206C_200E_200E_206D_200E_202D_206F_206A_200D_200F_200C_206B_206E_206A_202B_200B_206D_200D_206C_206E_206D_202E_206D_200B_206C_202E(IReadOnlyCommandInfo.HandlerDelegate P_0) - { - return new CommandInfo(P_0); - } - - static string _202D_206E_200B_200B_206B_202E_202D_206B_200F_202A_202A_202D_206C_206C_202E_202C_202B_202B_200F_200F_202A_206E_200C_202B_206D_202D_206D_200C_200C_206E_200B_206B_202D_202C_206F_206C_200C_200E_206C_202D_202E() - { - return Environment.NewLine; - } - - static string _200C_206C_200E_206E_202A_200D_202E_206C_200C_206B_202E_202A_206E_200F_206E_200E_202C_202C_200B_206B_202E_202A_202C_200F_200E_200C_206C_202D_206F_200B_202C_206F_206E_206B_200F_200C_202E_206F_206C_206F_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static string _206C_200F_206B_206C_200D_202A_202E_206C_200F_206E_206F_202C_206F_202B_206B_200E_200C_206A_202C_200F_206C_206D_200D_200E_202C_202E_206B_202C_200F_200B_206B_206B_206F_200F_202A_206E_200C_200D_206D_200F_202E(string P_0, ReadOnlySpan<string> P_1) - { - return string.Join(P_0, P_1); - } - - static void _202C_206D_202E_200C_206E_206C_200E_206D_206E_206F_206A_200F_206C_200E_206B_202A_202C_206D_200D_206E_200B_202B_206B_206B_206D_200F_206E_200F_206D_202D_200D_200E_202B_206A_206E_206F_206C_206F_206A_206F_202E(CommandInfo P_0, string P_1) - { - P_0.HelpMessage = P_1; - } - - static bool _202E_200E_200C_202D_206B_200F_206B_206D_206E_202B_200D_202B_202E_202D_200C_206C_206F_202A_200B_200D_206F_206B_206A_202B_206F_206E_202D_202E_206B_200D_206D_206C_202D_206B_202E_206B_202E_202B_206B_200E_202E(ICommandManager P_0, string P_1, CommandInfo P_2) - { - return P_0.AddHandler(P_1, P_2); - } - - static string _200E_202E_200B_202C_206D_200F_206F_200C_200D_200E_202C_200D_206F_200B_200D_206E_206F_200C_202B_202D_206E_206B_200D_206B_206C_200B_206C_200D_206A_200E_202A_200C_202B_206E_200E_200B_202A_200B_202B_206B_202E(string P_0) - { - return P_0.Trim(); - } - - static bool _202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static void _200B_202B_200E_206A_206D_202A_200D_200E_206B_200D_206D_200D_202A_206A_200C_200D_206E_200B_200F_200E_206E_202B_200B_202B_206C_206E_202B_202C_206A_200F_206F_206B_206A_206D_200C_206F_206A_200C_202E_206F_202E(LWindow P_0, bool P_1) - { - P_0.IsOpenAndUncollapsed = P_1; - } - - static string[] _206D_200E_200D_200B_200C_206D_206E_200E_200B_202D_200C_202A_202C_200D_200E_206B_200B_200B_202D_200C_202E_200B_206E_206B_202C_200E_206D_206D_206C_206F_200C_206A_202E_200E_206A_202E_202A_206C_206B_206F_202E(string P_0, char P_1, StringSplitOptions P_2) - { - return P_0.Split(P_1, P_2); - } - - static int _206D_200C_206B_206B_206B_206C_200B_200C_202B_200C_200F_206C_206B_200B_206F_202D_202E_206A_200F_200E_200C_200E_200B_206C_206D_206C_206A_206B_202C_206E_206F_202D_206C_200C_206B_202B_202B_202A_200B_200E_202E(string P_0) - { - return P_0.Length; - } - - static char _200B_206F_202D_202A_200E_202E_206C_200F_202E_202D_202B_200F_202C_202D_202B_200F_202C_200E_200B_202D_202B_200D_202C_202D_202C_206A_206F_200E_200F_200F_202C_200E_206A_202E_206F_202A_200B_202A_206E_206A_202E(string P_0, int P_1) - { - return P_0[P_1]; - } - - static void _206D_206D_200F_206F_206B_202C_200C_202A_206F_202E_206A_200D_202A_206C_206E_202C_206F_200F_200E_206D_202C_200E_200E_202C_206C_200E_200E_200B_206D_202E_206C_206C_206E_200D_200D_200B_200D_202D_200E_206E_202E(LWindow P_0) - { - P_0.ToggleOrUncollapse(); - } - - static IGameObject _200E_200F_206B_202B_200D_206F_202B_206E_202D_202A_206A_200C_202C_202A_200B_202A_206C_206F_200F_202E_200F_200C_202E_206D_206A_202A_200B_202B_200C_206A_206C_206B_206F_202E_202D_206B_200D_202D_202E_202D_202E(ITargetManager P_0) - { - return P_0.Target; - } - - static void _200C_206E_202E_206F_206D_206F_200E_206A_206B_206E_206D_202D_206B_206E_206D_200C_206E_206F_206C_206A_202A_200E_202D_206F_202A_200D_202B_206F_200C_202E_206A_200C_200D_206D_200F_202C_206C_206E_206C_206F_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } - - static void _206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); - } - - static bool _200C_202B_200F_206D_200D_200C_206E_202D_200F_202D_206E_200B_200C_202B_200B_202D_206C_206E_202D_206E_200F_200B_206C_202A_202D_202D_202A_206E_202C_200F_206F_200D_206F_200D_206E_206E_200C_200B_206E_206E_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static bool _206D_206C_200F_200C_206B_200D_200B_202D_200F_200B_202E_206D_200B_202D_206A_200B_206E_206A_206D_200B_200E_202D_206D_206B_206E_206D_206A_200F_206F_200E_200E_200E_200C_206F_200E_202B_206A_200F_202A_202E_202E(ICommandManager P_0, string P_1) - { - return P_0.RemoveHandler(P_1); - } - - static void _206A_200E_202D_200C_200C_206F_206E_200F_206C_202D_206C_200B_206B_206D_206D_200C_200D_206F_202C_202C_206E_206D_206E_202D_206C_206C_206B_206F_202D_202A_202A_200F_200B_202B_200E_200D_202B_206E_202B_200E_202E(IClientState P_0, IClientState.LogoutDelegate P_1) - { - P_0.Logout -= P_1; + _commandManager.RemoveHandler("/qst"); + _clientState.Logout -= OnLogout; } } diff --git a/Questionable/Questionable.Controller/ContextMenuController.cs b/Questionable/Questionable.Controller/ContextMenuController.cs index 608a885..2f0d919 100644 --- a/Questionable/Questionable.Controller/ContextMenuController.cs +++ b/Questionable/Questionable.Controller/ContextMenuController.cs @@ -1,78 +1,38 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Game.Gui.ContextMenu; using Dalamud.Game.Text; -using Dalamud.Game.Text.SeStringHandling; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.UI; using FFXIVClientStructs.FFXIV.Client.UI.Agent; -using FFXIVClientStructs.FFXIV.Component.GUI; using LLib.GameData; using LLib.GameUI; using LLib.Shop; -using Lumina.Excel; -using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; +using Questionable.Controller.CustomDelivery; using Questionable.Data; using Questionable.Functions; -using Questionable.Model; using Questionable.Model.Gathering; -using Questionable.Model.Questing; namespace Questionable.Controller; internal sealed class ContextMenuController : IDisposable { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<IQuestInfo, bool> _003C_003E9__16_0; - - public static Func<QuestStep, bool> _003C_003E9__16_1; - - public static Func<QuestStep, bool> _003C_003E9__16_2; - - internal bool _003CStartGathering_003Eb__16_0(IQuestInfo x) - { - return x is SatisfactionSupplyInfo; - } - - internal bool _003CStartGathering_003Eb__16_1(QuestStep x) - { - return _200D_202A_206C_200F_200E_202D_206F_206E_200D_200E_200F_202B_206A_206C_202B_202E_206C_206B_200F_206E_202D_202D_202E_206F_202D_200B_206F_202B_200F_200C_206A_206C_202C_202E_202C_200C_206B_206C_200C_206A_202E(x) == EInteractionType.SwitchClass; - } - - internal bool _003CStartGathering_003Eb__16_2(QuestStep x) - { - return _200D_202A_206C_200F_200E_202D_206F_206E_200D_200E_200F_202B_206A_206C_202B_202E_206C_206B_200F_206E_202D_202D_202E_206F_202D_200B_206F_202B_200F_200C_206A_206C_202C_202E_202C_200C_206B_206C_200C_206A_202E(x) == EInteractionType.Gather; - } - - static EInteractionType _200D_202A_206C_200F_200E_202D_206F_206E_200D_200E_200F_202B_206A_206C_202B_202E_206C_206B_200F_206E_202D_202D_202E_206F_202D_200B_206F_202B_200F_200C_206A_206C_202C_202E_202C_200C_206B_206C_200C_206A_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - } - private readonly IContextMenu _contextMenu; private readonly QuestController _questController; + private readonly CustomDeliveryController _customDeliveryController; + + private readonly FateController _fateController; + + private readonly SeasonalDutyController _seasonalDutyController; + + private readonly AttunementController _attunementController; + private readonly GatheringPointRegistry _gatheringPointRegistry; private readonly GatheringData _gatheringData; - private readonly QuestRegistry _questRegistry; - - private readonly QuestData _questData; - private readonly GameFunctions _gameFunctions; private readonly QuestFunctions _questFunctions; @@ -81,524 +41,158 @@ internal sealed class ContextMenuController : IDisposable private readonly IChatGui _chatGui; - private readonly IObjectTable _objectTable; - private readonly ILogger<ContextMenuController> _logger; - public ContextMenuController(IContextMenu contextMenu, QuestController questController, GatheringPointRegistry gatheringPointRegistry, GatheringData gatheringData, QuestRegistry questRegistry, QuestData questData, GameFunctions gameFunctions, QuestFunctions questFunctions, IGameGui gameGui, IChatGui chatGui, IObjectTable objectTable, ILogger<ContextMenuController> logger) + public ContextMenuController(IContextMenu contextMenu, QuestController questController, CustomDeliveryController customDeliveryController, FateController fateController, SeasonalDutyController seasonalDutyController, AttunementController attunementController, GatheringPointRegistry gatheringPointRegistry, GatheringData gatheringData, GameFunctions gameFunctions, QuestFunctions questFunctions, IGameGui gameGui, IChatGui chatGui, ILogger<ContextMenuController> logger) { _contextMenu = contextMenu; _questController = questController; + _customDeliveryController = customDeliveryController; + _fateController = fateController; + _seasonalDutyController = seasonalDutyController; + _attunementController = attunementController; _gatheringPointRegistry = gatheringPointRegistry; _gatheringData = gatheringData; - _questRegistry = questRegistry; - _questData = questData; _gameFunctions = gameFunctions; _questFunctions = questFunctions; _gameGui = gameGui; _chatGui = chatGui; - _objectTable = objectTable; _logger = logger; - _200F_206F_200F_206C_202E_200D_206B_206E_200B_206A_202A_206E_202C_200F_200B_206D_200C_206E_206F_202B_202E_202C_200C_206A_200C_206E_202D_200C_200F_200E_202A_202C_206E_206A_200B_206C_206F_202D_200D_202A_202E(_contextMenu, (IContextMenu.OnMenuOpenedDelegate)MenuOpened); + _contextMenu.OnMenuOpened += MenuOpened; } - [MethodImpl(MethodImplOptions.NoInlining)] private void MenuOpened(IMenuOpenedArgs args) { - int num = ((_206F_200E_206E_206C_206D_206E_206C_202B_202C_206C_200D_202D_200D_202C_206D_206F_200C_202C_200D_202E_200E_202C_206A_200E_202D_202B_202B_202D_200D_206F_206B_206A_202A_200E_202B_206D_206E_206D_206B_206B_202E((IMenuArgs)args) == null) ? (-1062811854) : (-1062811842)); - uint num6 = default(uint); - uint npcId = default(uint); - while (true) + if (args.AddonName != null) { - int num2 = num; - int num3 = -1062811852; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - AddContextMenuEntry(args, num6, npcId, EClassJob.Miner, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1250223418)); - AddContextMenuEntry(args, num6, npcId, EClassJob.Botanist, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1145016567)); - return; - case 9: - _206F_200F_202B_206E_200F_200B_202E_202C_200D_202A_206B_206C_202D_202C_202C_200D_206D_202A_200F_200D_202E_206B_202D_200B_202E_202A_202E_202C_206A_200E_202D_206B_206D_200C_206E_206D_200C_200D_206E_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1140543498), Array.Empty<object>()); - return; - case 3: - num = ((!_gatheringData.TryGetCustomDeliveryNpc(num6, out npcId)) ? (-1062811856) : (-1062811852)); - break; - case 7: - { - uint num7 = num6; - num3 = 500000; - num4 = (int)num7; - num6 = (uint)(~(~num4 + num3)); - num = -1062811849; - break; - } - case 5: - num = ((num6 < 500000) ? (-1062811849) : (-1062811853)); - break; - case 6: - num6 = GetHoveredSatisfactionSupplyItemId(); - num = ((num6 != 0) ? (-1062811851) : (-1062811843)); - break; - case 1: - num = ((num6 <= 1000000) ? (-1062811855) : (-1062811844)); - break; - case 10: - return; - case 4: - _206C_206A_200B_202B_202B_206D_200C_200B_206F_206B_200B_200B_200B_206D_206B_202A_202D_202C_206E_202C_206C_206D_200C_206D_206D_206D_200D_206E_202C_206F_202D_202E_202A_206B_202A_200C_206D_206C_200D_202C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-965966202), new object[1] { num6 }); - return; - case 8: - { - uint num5 = num6; - num3 = 1000000; - num4 = (int)num5; - num6 = (uint)(~(~num4 + num3)); - num = -1062811855; - break; - } - case 2: - num = -1062811842; - break; - } + return; } + uint num = GetHoveredSatisfactionSupplyItemId(); + if (num == 0) + { + _logger.LogTrace("Ignoring context menu, no item hovered"); + return; + } + if (num > 1000000) + { + num -= 1000000; + } + if (num >= 500000) + { + num -= 500000; + } + if (_gatheringData.TryGetCustomDeliveryNpc(num, out var _)) + { + AddContextMenuEntry(args, num); + return; + } + _logger.LogDebug("No custom delivery NPC found for item {ItemId}.", num); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe uint GetHoveredSatisfactionSupplyItemId() { AgentSatisfactionSupply* ptr = AgentSatisfactionSupply.Instance(); - int num = ((ptr == null) ? (-247318127) : (-247318126)); - int hoveredElementIndex = default(int); - AddonSatisfactionSupply* addonPtr = default(AddonSatisfactionSupply*); - while (true) + if (ptr == null || !ptr->IsAgentActive()) { - int num2 = num; - int num3 = -247318122; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return 0u; + } + if (_gameGui.TryGetAddonByName<AddonSatisfactionSupply>("SatisfactionSupply", out var addonPtr) && LAddon.IsAddonReady(&addonPtr->AtkUnitBase)) + { + int hoveredElementIndex = addonPtr->HoveredElementIndex; + if (hoveredElementIndex >= 0 && hoveredElementIndex <= 2) { - case 0: - hoveredElementIndex = addonPtr->HoveredElementIndex; - num = ((hoveredElementIndex < 0) ? (-247318114) : (-247318125)); - break; - case 4: - num = (ptr->IsAgentActive() ? (-247318121) : (-247318127)); - break; - case 7: - return 0u; - case 8: - return 0u; - case 2: - num = -247318126; - break; - case 6: return ptr->Items[addonPtr->HoveredElementIndex].Id; - case 3: - num = ((!_200F_206B_200B_202D_200D_206B_202A_200F_202A_200D_202B_202C_202B_206D_202D_202C_202C_202A_200F_200E_200C_202D_200D_202D_206E_202A_200D_200C_206F_200F_206A_200E_202A_206D_206B_200B_202E_206C_200C_202D_202E(&addonPtr->AtkUnitBase)) ? (-247318114) : (-247318122)); - break; - case 1: - num = ((!_gameGui.TryGetAddonByName<AddonSatisfactionSupply>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1921233017), out addonPtr)) ? (-247318114) : (-247318123)); - break; - case 5: - num = ((hoveredElementIndex > 2) ? (-247318114) : (-247318128)); - break; } } + return 0u; } - [MethodImpl(MethodImplOptions.NoInlining)] - private unsafe void AddContextMenuEntry(IMenuOpenedArgs args, uint itemId, uint npcId, EClassJob classJob, string verb) + private unsafe void AddContextMenuEntry(IMenuOpenedArgs args, uint itemId) { - ICharacter character = _200F_206F_202D_200D_202D_202C_206E_200B_206A_206F_202A_206C_202E_206F_202C_200C_202A_200E_200D_200C_206C_202B_202B_200E_202C_202C_206B_206D_202E_206E_206D_202B_200C_200C_206F_206D_202A_200B_200B_206C_202E(_objectTable); - int num = ((character != null) ? (-1338961886) : (-1338961880)); - bool flag2 = default(bool); - AgentSatisfactionSupply* ptr = default(AgentSatisfactionSupply*); - SatisfactionSupplyActions.NpcState npcState = default(SatisfactionSupplyActions.NpcState); - string text2 = default(string); - int quantityToGather = default(int); - string text = default(string); - ushort collectability = default(ushort); - bool flag = default(bool); - EClassJob rowId = default(EClassJob); - while (true) + GatheringPointId gatheringPointId; + bool flag = _gatheringPointRegistry.TryGetGatheringPointId(itemId, EClassJob.Miner, out gatheringPointId); + bool flag2 = _gatheringPointRegistry.TryGetGatheringPointId(itemId, EClassJob.Botanist, out gatheringPointId); + if (!flag && !flag2) { - int num2 = num; - int num3 = -1338961879; - int num4 = num2; - int num5; - int num6; - switch ((num4 | num3) - (num4 & num3)) + _logger.LogDebug("No gathering point found for item {ItemId}.", itemId); + } + else + { + if (_gatheringData.GetRecommendedCollectability(itemId) == 0) { - case 16: - flag2 = true; - num = -1338961860; - break; - case 3: - { - uint id = ptr->NpcInfo.Id; - num3 = 1; - num4 = (int)id; - npcState = _200F_206E_206E_206C_206B_202B_202A_206F_200F_206C_206A_200C_206E_206E_206E_202B_206B_206D_200C_206A_200F_206E_206F_200D_206F_200F_202E_202C_202E_202A_202C_200E_202C_200C_200E_206C_206A_202B_202D_206B_202E(~(~num4 + num3)); - num = ((ptr->NpcInfo.SatisfactionRank == 1) ? (-1338961874) : (-1338961864)); - break; + return; } - case 20: - num = ((!_gameFunctions.IsOccupied()) ? (-1338961877) : (-1338961862)); - break; - case 0: + AgentSatisfactionSupply* ptr = AgentSatisfactionSupply.Instance(); + if (ptr != null && ptr->IsAgentActive()) { - num = (_gatheringPointRegistry.TryGetGatheringPointId(itemId, classJob, out GatheringPointId _) ? (-1338961882) : (-1338961875)); - break; - } - case 12: - text2 = string.Empty; - num = (_questFunctions.IsClassJobUnlocked(classJob) ? (-1338961873) : (-1338961861)); - break; - case 1: - return; - case 6: - num = ((quantityToGather != 0) ? (-1338961884) : (-1338961881)); - break; - case 25: - return; - case 19: - text2 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-631894183); - num = -1338961877; - break; - case 5: - flag2 = false; - num = -1338961860; - break; - case 23: - return; - case 2: - text = _202B_206C_206F_202D_202C_206C_206C_206C_200E_206B_202C_206A_200F_206A_206F_200C_200C_200E_206E_202E_200B_200F_206F_206D_206C_206D_206E_200E_202A_206A_202D_202B_206F_200F_206D_200E_202A_200B_200C_200E_202E(verb, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-608478114)); - num = (_200D_206D_206D_202B_202D_200E_202D_200D_200B_200D_200D_202C_206C_206F_206B_202C_200D_202C_202C_202B_200C_202B_206E_202E_206E_200C_202A_200B_206C_200F_202E_206D_200C_200E_202C_206A_202B_206E_200B_202E_202E(text2) ? (-1338961888) : (-1338961885)); - break; - case 9: - { - MenuItem menuItem = _206C_200F_200F_202C_202B_206F_206B_202A_202A_206D_202E_206E_206E_200C_200F_206E_200E_206A_202D_202A_206E_206A_202C_206E_202C_200E_202A_206A_200B_200B_202E_200F_202C_200D_202C_206E_200C_202B_206F_206C_202E(); - _200F_202B_206E_202E_200E_202E_206B_202A_206D_202C_206B_202C_206C_202B_202A_206A_202A_200C_202B_200B_200F_206D_202B_200D_200E_202D_200E_206B_202C_200B_206C_200F_206D_200E_202E_200C_200E_202B_200F_202C_202E(menuItem, (SeIconChar?)SeIconChar.Hyadelyn); - _202A_206C_200E_206B_206C_206C_206E_200C_200E_202C_202E_200C_200F_206D_202E_200C_202E_206C_202A_202E_200F_206B_206A_202D_206B_200F_200D_200C_200D_200D_206E_200C_200C_200E_200C_206B_200D_202C_202E(menuItem, (ushort)52); - _200E_206C_206D_202C_206A_200D_206A_202C_202D_202C_202E_200E_200C_200B_202A_202C_200C_206B_206E_206B_200F_200B_206A_206C_206F_206E_206F_200B_202C_200B_200C_200B_206F_206E_200B_200D_206B_206C_202A_200E_202E(menuItem, _202D_206A_202C_206F_202B_202B_206B_206B_206F_202A_202E_206C_202A_202B_206D_200F_206D_206E_206F_202B_200D_202D_202D_206F_200D_200F_202E_206B_202D_200E_200D_206F_206B_202C_200B_200D_206C_206F_206B_202C_202E(text)); - _202C_206D_200F_202E_200F_200B_206A_200F_202B_206A_202B_206C_206E_202A_206E_202D_206D_200F_202B_206E_206B_206E_200D_200C_200E_200C_200D_200F_200E_206F_202D_206F_206D_206A_206D_206F_200D_202D_202D_202C_202E(menuItem, (Action<IMenuItemClickedArgs>)delegate + int npcIndex = (int)(ptr->NpcInfo.Id - 1); + SatisfactionSupplyActions.NpcState npcState = SatisfactionSupplyActions.GetNpcState(npcIndex); + int maxTurnIns = ((ptr->NpcInfo.SatisfactionRank == 1) ? 3 : 6); + int num = Math.Min(ptr->NpcData.RemainingAllowances, SatisfactionSupplyHelper.CalculateTurnInsToNextRank((ushort)npcState.SatisfactionCurrent, (ushort)npcState.SatisfactionMax, maxTurnIns)); + bool num2 = (flag && _questFunctions.IsClassJobUnlocked(EClassJob.Miner)) || (flag2 && _questFunctions.IsClassJobUnlocked(EClassJob.Botanist)); + string text = string.Empty; + if (!num2) { - StartGathering(npcId, itemId, quantityToGather, collectability, classJob); - }); - _206E_202A_202E_200F_202D_200D_202B_202D_206C_202B_200E_202B_206D_202B_202E_202C_200E_202D_200D_200C_202E_200D_202D_202C_200E_202A_206D_200C_202C_206C_206B_202C_200B_202A_202C_200C_200C_206B_206E_206A_202E(menuItem, _200D_206D_206D_202B_202D_200E_202D_200D_200B_200D_200D_202C_206C_206F_206B_202C_200D_202C_202C_202B_200C_202B_206E_202E_206E_200C_202A_200B_206C_200F_202E_206D_200C_200E_202C_206A_202B_206E_200B_202E_202E(text2)); - _200E_202A_200E_200B_202C_200E_206E_200C_206B_206E_202B_202E_206C_200D_200B_200D_202B_206F_200C_202D_202A_200D_200E_206E_206B_206C_202A_206A_202B_202B_206D_206D_206A_206E_206A_202D_202C_202E_200C_206E_202E(args, menuItem); - return; - } - case 7: - num5 = 3; - goto IL_0299; - case 15: - collectability = _gatheringData.GetRecommendedCollectability(itemId); - num = ((collectability != 0) ? (-1338961870) : (-1338961858)); - break; - case 4: - _206C_206A_200B_202B_202B_206D_200C_200B_206F_206B_200B_200B_200B_206D_206B_202A_202D_202C_206E_202C_206C_206D_200C_206D_206D_206D_200D_206E_202C_206F_202D_202E_202A_206B_202A_200C_206D_206C_200D_202C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(956356199), new object[1] { classJob }); - return; - case 14: - text2 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(782238798); - num = -1338961877; - break; - case 18: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(13, 1); - defaultInterpolatedStringHandler.AppendFormatted(classJob); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(162231008)); - text2 = defaultInterpolatedStringHandler.ToStringAndClear(); - num = -1338961877; - break; - } - case 24: - text2 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1616176717); - num = -1338961877; - break; - case 8: - num = ((!flag) ? (-1338961879) : (-1338961872)); - break; - case 17: - num5 = 6; - goto IL_0299; - case 10: - text = _206E_200F_206C_202A_206A_206D_200B_202D_200F_202E_206C_206E_200B_200E_202A_206D_200C_206D_202A_206F_202C_202D_202C_200E_200B_202B_202A_200E_202D_206A_202D_202A_200D_202E_202C_202A_200F_200D_206B_206C_202E(text, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1495931675), text2, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - num = -1338961888; - break; - case 27: - quantityToGather = 6; - ptr = AgentSatisfactionSupply.Instance(); - num = ((!ptr->IsAgentActive()) ? (-1338961883) : (-1338961878)); - break; - case 26: - num = -1338961880; - break; - case 21: - flag = flag2; - num = -1338961887; - break; - case 22: - num = ((rowId - 16 > EClassJob.Gladiator) ? (-1338961876) : (-1338961863)); - break; - case 11: - rowId = (EClassJob)_200B_206E_202D_206D_200F_200C_200D_206B_202D_200F_202B_206A_206F_200F_200E_202B_200E_206D_202C_202E_206C_206F_200B_200E_200E_206D_200F_202C_200E_206D_206D_202E_202C_200F_200E_206C_200F_202A_202D_206C_202E(character).RowId; - flag = classJob != rowId; - num = ((!flag) ? (-1338961887) : (-1338961857)); - break; - case 13: - { - num = ((quantityToGather <= _gameFunctions.GetFreeInventorySlots()) ? (-1338961859) : (-1338961871)); - break; + text = (flag ? "Miner not unlocked" : "Botanist not unlocked"); } - IL_0299: - num6 = num5; - quantityToGather = _206E_202E_206A_206F_200F_206B_206E_206F_202A_200C_200B_206A_200C_206D_206E_200E_200E_206A_200B_200D_202C_202E_200E_202C_206E_206E_202A_206B_206A_206B_200F_206B_206B_206A_202B_202D_206F_206E_206C_206C_202E((int)ptr->NpcData.RemainingAllowances, _200B_206A_202A_202D_202C_206C_202D_202C_206D_202E_200F_206C_202D_206F_202A_206C_206D_206E_202E_200D_202C_202D_206F_206E_200C_200F_202C_206F_206A_200F_206A_206D_206C_200B_202D_206A_200F_202D_200E_200F_202E((ushort)npcState.SatisfactionCurrent, (ushort)npcState.SatisfactionMax, num6)); - num = -1338961883; - break; + else if (num == 0) + { + text = "No allowances"; + } + else if (num > _gameFunctions.GetFreeInventorySlots()) + { + text = "Inventory full"; + } + else if (_gameFunctions.IsOccupied()) + { + text = "Can't be used while interacting"; + } + else if (_customDeliveryController.IsRunning) + { + text = "Delivery already in progress"; + } + else if (_questController.IsRunning || _fateController.IsRunning || _seasonalDutyController.IsRunning || _attunementController.IsRunning) + { + text = "Automation is running"; + } + string text2 = "Deliver with Questionable"; + if (!string.IsNullOrEmpty(text)) + { + text2 = text2 + " (" + text + ")"; + } + args.AddMenuItem(new MenuItem + { + Prefix = SeIconChar.Hyadelyn, + PrefixColor = 52, + Name = text2, + OnClicked = delegate + { + StartDelivery(npcIndex); + }, + IsEnabled = string.IsNullOrEmpty(text) + }); } } } - [MethodImpl(MethodImplOptions.NoInlining)] - private void StartGathering(uint npcId, uint itemId, int quantity, ushort collectability, EClassJob classJob) + private void StartDelivery(int npcIndex) { - SatisfactionSupplyInfo satisfactionSupplyInfo = (SatisfactionSupplyInfo)_questData.GetAllByIssuerDataId(npcId).Single((IQuestInfo x) => x is SatisfactionSupplyInfo); - Questionable.Model.Quest quest; - int num = ((!_questRegistry.TryGetQuest(satisfactionSupplyInfo.QuestId, out quest)) ? (-1785451051) : (-1785451044)); - EExtendedClassJob eExtendedClassJob = default(EExtendedClassJob); - QuestStep questStep = default(QuestStep); - QuestSequence questSequence = default(QuestSequence); - while (true) + _questController.Stop("Custom delivery start"); + _fateController.Stop("Custom delivery start"); + _seasonalDutyController.Stop("Custom delivery start"); + _attunementController.Stop("Custom delivery start"); + if (_customDeliveryController.State != CustomDeliveryController.EDeliveryState.Idle) { - int num2 = num; - int num3 = -1785451052; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = -1785451050; - break; - case 0: - eExtendedClassJob = EExtendedClassJob.Miner; - num = -1785451056; - break; - case 5: - num = -1785451044; - break; - case 4: - { - _206E_206F_200D_202A_206B_202D_202A_206C_202E_200D_200B_200C_202D_206E_206E_202A_202B_206C_202B_200D_200C_200D_200B_206D_206D_200B_202C_202A_206E_200D_200D_202A_206D_206E_202A_202E_206E_202A_206A_206F_202E(questStep, eExtendedClassJob); - QuestStep questStep2 = _202D_202E_202E_200D_206D_206F_206E_200E_200E_206D_206D_202C_200B_206C_206D_206F_206D_206E_200E_206E_206B_202A_202E_206E_202C_202C_202B_202E_206A_206A_206F_200B_202D_206C_202A_200D_202C_200F_206E_202B_202E(questSequence).Single((QuestStep x) => _003C_003Ec._200D_202A_206C_200F_200E_202D_206F_206E_200D_200E_200F_202B_206A_206C_202B_202E_206C_206B_200F_206E_202D_202D_202E_206F_202D_200B_206F_202B_200F_200C_206A_206C_202C_202E_202C_200C_206B_206C_200C_206A_202E(x) == EInteractionType.Gather); - int num5 = 1; - List<GatheredItem> list = new List<GatheredItem>(num5); - CollectionsMarshal.SetCount(list, num5); - ref GatheredItem reference = ref CollectionsMarshal.AsSpan(list)[0]; - GatheredItem gatheredItem = _206A_206F_200E_200E_206A_206E_202B_202B_206F_200B_200F_206E_200B_206E_200C_200E_206C_202C_202D_206A_202E_200E_206C_206D_202C_200B_206C_206C_202D_206E_200D_202C_200B_202D_200E_200F_202C_206E_206A_200C_202E(); - _202D_200F_206F_202A_200F_202E_206C_206B_200F_200C_202C_206C_200D_202E_202D_202A_206A_200B_206F_206F_200B_200B_200E_202E_200E_206C_202A_202D_202A_206B_206A_202D_200E_206A_202C_202C_206D_200B_202B_206A_202E(gatheredItem, itemId); - _202C_200B_200D_206C_206A_202C_202A_206D_202C_206F_200B_200D_206F_202E_206E_202E_206D_206B_200F_202A_202A_206F_200C_202A_206E_200B_202D_206C_206A_206C_206C_206E_206F_206D_206E_200F_202D_200D_200C_200E_202E(gatheredItem, quantity); - _206A_206C_200E_206B_206D_200D_200B_200F_200F_202C_206F_200E_200C_206F_202B_206D_206B_202C_206F_202D_206F_202A_202B_206B_206C_200C_206C_202A_200E_200C_200F_200C_202C_206D_202C_206B_206B_206B_200F_206B_202E(gatheredItem, collectability); - reference = gatheredItem; - _206A_200B_202E_202E_206F_202C_206A_206C_206B_202A_200D_202A_206D_202C_202A_202C_202A_202C_202A_206F_202C_202D_200C_206F_200D_206C_202E_206E_206E_200E_200D_206E_206B_200C_206A_202A_200B_200F_202C_206B_202E(questStep2, list); - _questController.SetGatheringQuest(quest); - _questController.StartGatheringQuest(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1798633897)); - return; - } - case 8: - questSequence = quest.FindSequence(0); - questStep = _202D_202E_202E_200D_206D_206F_206E_200E_200E_206D_206D_202C_200B_206C_206D_206F_206D_206E_200E_206E_206B_202A_202E_206E_202C_202C_202B_202E_206A_206A_206F_200B_202D_206C_202A_200D_202C_200F_206E_202B_202E(questSequence).Single((QuestStep x) => _003C_003Ec._200D_202A_206C_200F_200E_202D_206F_206E_200D_200E_200F_202B_206A_206C_202B_202E_206C_206B_200F_206E_202D_202D_202E_206F_202D_200B_206F_202B_200F_200C_206A_206C_202C_202E_202C_200C_206B_206C_200C_206A_202E(x) == EInteractionType.SwitchClass); - num = ((classJob == EClassJob.Miner) ? (-1785451052) : (-1785451054)); - break; - case 2: - throw _206E_206B_202C_206A_200C_200E_202A_206A_200B_206F_202D_200D_200B_200E_200C_200F_206A_200E_200B_200D_202D_202A_200D_200D_202E_206F_206E_202E_202B_202A_202A_202E_206E_206B_206F_206C_202A_200C_200D_202C_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(688705615), (object)classJob, (string)null); - case 6: - num = ((classJob == EClassJob.Botanist) ? (-1785451053) : (-1785451049)); - break; - case 1: - { - IChatGui chatGui = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(23, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1157681140)); - defaultInterpolatedStringHandler.AppendFormatted(satisfactionSupplyInfo.QuestId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(126419176)); - _202C_206D_206D_206D_206E_202C_206A_202A_200E_200C_206E_206F_206F_200F_200E_206A_200D_200F_200C_200D_206E_200B_202C_200C_206D_206C_200C_200F_206E_206F_202D_202D_206E_206A_206F_206E_206E_206F_200B_202C_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - return; - } - case 7: - eExtendedClassJob = EExtendedClassJob.Botanist; - num = -1785451056; - break; - } + _customDeliveryController.Stop("Custom delivery start"); + } + if (!_customDeliveryController.Start(npcIndex, EDeliverySlot.Gather)) + { + _chatGui.PrintError("Unable to start custom delivery.", "Questionable", 576); } } public void Dispose() { - _202E_202B_202D_200F_206F_206B_200D_200B_200D_202C_206C_200F_200B_206B_202E_200D_206C_200E_206E_200B_200D_200D_202B_206A_200B_206E_206D_206B_202C_206D_200D_206B_206C_202E_200E_200E_206E_200C_200E_206A_202E(_contextMenu, (IContextMenu.OnMenuOpenedDelegate)MenuOpened); - } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static void _200F_206F_200F_206C_202E_200D_206B_206E_200B_206A_202A_206E_202C_200F_200B_206D_200C_206E_206F_202B_202E_202C_200C_206A_200C_206E_202D_200C_200F_200E_202A_202C_206E_206A_200B_206C_206F_202D_200D_202A_202E(IContextMenu P_0, IContextMenu.OnMenuOpenedDelegate P_1) - { - P_0.OnMenuOpened += P_1; - } - - static string _206F_200E_206E_206C_206D_206E_206C_202B_202C_206C_200D_202D_200D_202C_206D_206F_200C_202C_200D_202E_200E_202C_206A_200E_202D_202B_202B_202D_200D_206F_206B_206A_202A_200E_202B_206D_206E_206D_206B_206B_202E(IMenuArgs P_0) - { - return P_0.AddonName; - } - - static void _206F_200F_202B_206E_200F_200B_202E_202C_200D_202A_206B_206C_202D_202C_202C_200D_206D_202A_200F_200D_202E_206B_202D_200B_202E_202A_202E_202C_206A_200E_202D_206B_206D_200C_206E_206D_200C_200D_206E_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogTrace(P_1, P_2); - } - - static void _206C_206A_200B_202B_202B_206D_200C_200B_206F_206B_200B_200B_200B_206D_206B_202A_202D_202C_206E_202C_206C_206D_200C_206D_206D_206D_200D_206E_202C_206F_202D_202E_202A_206B_202A_200C_206D_206C_200D_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - unsafe static bool _200F_206B_200B_202D_200D_206B_202A_200F_202A_200D_202B_202C_202B_206D_202D_202C_202C_202A_200F_200E_200C_202D_200D_202D_206E_202A_200D_200C_206F_200F_206A_200E_202A_206D_206B_200B_202E_206C_200C_202D_202E(AtkUnitBase* P_0) - { - return LAddon.IsAddonReady(P_0); - } - - static IPlayerCharacter _200F_206F_202D_200D_202D_202C_206E_200B_206A_206F_202A_206C_202E_206F_202C_200C_202A_200E_200D_200C_206C_202B_202B_200E_202C_202C_206B_206D_202E_206E_206D_202B_200C_200C_206F_206D_202A_200B_200B_206C_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static RowRef<ClassJob> _200B_206E_202D_206D_200F_200C_200D_206B_202D_200F_202B_206A_206F_200F_200E_202B_200E_206D_202C_202E_206C_206F_200B_200E_200E_206D_200F_202C_200E_206D_206D_202E_202C_200F_200E_206C_200F_202A_202D_206C_202E(ICharacter P_0) - { - return P_0.ClassJob; - } - - static SatisfactionSupplyActions.NpcState _200F_206E_206E_206C_206B_202B_202A_206F_200F_206C_206A_200C_206E_206E_206E_202B_206B_206D_200C_206A_200F_206E_206F_200D_206F_200F_202E_202C_202E_202A_202C_200E_202C_200C_200E_206C_206A_202B_202D_206B_202E(int P_0) - { - return SatisfactionSupplyActions.GetNpcState(P_0); - } - - static int _200B_206A_202A_202D_202C_206C_202D_202C_206D_202E_200F_206C_202D_206F_202A_206C_206D_206E_202E_200D_202C_202D_206F_206E_200C_200F_202C_206F_206A_200F_206A_206D_206C_200B_202D_206A_200F_202D_200E_200F_202E(ushort P_0, ushort P_1, int P_2) - { - return SatisfactionSupplyHelper.CalculateTurnInsToNextRank(P_0, P_1, P_2); - } - - static int _206E_202E_206A_206F_200F_206B_206E_206F_202A_200C_200B_206A_200C_206D_206E_200E_200E_206A_200B_200D_202C_202E_200E_202C_206E_206E_202A_206B_206A_206B_200F_206B_206B_206A_202B_202D_206F_206E_206C_206C_202E(int P_0, int P_1) - { - return Math.Min(P_0, P_1); - } - - static string _202B_206C_206F_202D_202C_206C_206C_206C_200E_206B_202C_206A_200F_206A_206F_200C_200C_200E_206E_202E_200B_200F_206F_206D_206C_206D_206E_200E_202A_206A_202D_202B_206F_200F_206D_200E_202A_200B_200C_200E_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static bool _200D_206D_206D_202B_202D_200E_202D_200D_200B_200D_200D_202C_206C_206F_206B_202C_200D_202C_202C_202B_200C_202B_206E_202E_206E_200C_202A_200B_206C_200F_202E_206D_200C_200E_202C_206A_202B_206E_200B_202E_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static string _206E_200F_206C_202A_206A_206D_200B_202D_200F_202E_206C_206E_200B_200E_202A_206D_200C_206D_202A_206F_202C_202D_202C_200E_200B_202B_202A_200E_202D_206A_202D_202A_200D_202E_202C_202A_200F_200D_206B_206C_202E(string P_0, string P_1, string P_2, string P_3) - { - return P_0 + P_1 + P_2 + P_3; - } - - static MenuItem _206C_200F_200F_202C_202B_206F_206B_202A_202A_206D_202E_206E_206E_200C_200F_206E_200E_206A_202D_202A_206E_206A_202C_206E_202C_200E_202A_206A_200B_200B_202E_200F_202C_200D_202C_206E_200C_202B_206F_206C_202E() - { - return new MenuItem(); - } - - static void _200F_202B_206E_202E_200E_202E_206B_202A_206D_202C_206B_202C_206C_202B_202A_206A_202A_200C_202B_200B_200F_206D_202B_200D_200E_202D_200E_206B_202C_200B_206C_200F_206D_200E_202E_200C_200E_202B_200F_202C_202E(MenuItem P_0, SeIconChar? P_1) - { - P_0.Prefix = P_1; - } - - static void _202A_206C_200E_206B_206C_206C_206E_200C_200E_202C_202E_200C_200F_206D_202E_200C_202E_206C_202A_202E_200F_206B_206A_202D_206B_200F_200D_200C_200D_200D_206E_200C_200C_200E_200C_206B_200D_202C_202E(MenuItem P_0, ushort P_1) - { - P_0.PrefixColor = P_1; - } - - static SeString _202D_206A_202C_206F_202B_202B_206B_206B_206F_202A_202E_206C_202A_202B_206D_200F_206D_206E_206F_202B_200D_202D_202D_206F_200D_200F_202E_206B_202D_200E_200D_206F_206B_202C_200B_200D_206C_206F_206B_202C_202E(string P_0) - { - return P_0; - } - - static void _200E_206C_206D_202C_206A_200D_206A_202C_202D_202C_202E_200E_200C_200B_202A_202C_200C_206B_206E_206B_200F_200B_206A_206C_206F_206E_206F_200B_202C_200B_200C_200B_206F_206E_200B_200D_206B_206C_202A_200E_202E(MenuItem P_0, SeString P_1) - { - P_0.Name = P_1; - } - - static void _202C_206D_200F_202E_200F_200B_206A_200F_202B_206A_202B_206C_206E_202A_206E_202D_206D_200F_202B_206E_206B_206E_200D_200C_200E_200C_200D_200F_200E_206F_202D_206F_206D_206A_206D_206F_200D_202D_202D_202C_202E(MenuItem P_0, Action<IMenuItemClickedArgs> P_1) - { - P_0.OnClicked = P_1; - } - - static void _206E_202A_202E_200F_202D_200D_202B_202D_206C_202B_200E_202B_206D_202B_202E_202C_200E_202D_200D_200C_202E_200D_202D_202C_200E_202A_206D_200C_202C_206C_206B_202C_200B_202A_202C_200C_200C_206B_206E_206A_202E(MenuItem P_0, bool P_1) - { - P_0.IsEnabled = P_1; - } - - static void _200E_202A_200E_200B_202C_200E_206E_200C_206B_206E_202B_202E_206C_200D_200B_200D_202B_206F_200C_202D_202A_200D_200E_206E_206B_206C_202A_206A_202B_202B_206D_206D_206A_206E_206A_202D_202C_202E_200C_206E_202E(IMenuOpenedArgs P_0, MenuItem P_1) - { - P_0.AddMenuItem(P_1); - } - - static List<QuestStep> _202D_202E_202E_200D_206D_206F_206E_200E_200E_206D_206D_202C_200B_206C_206D_206F_206D_206E_200E_206E_206B_202A_202E_206E_202C_202C_202B_202E_206A_206A_206F_200B_202D_206C_202A_200D_202C_200F_206E_202B_202E(QuestSequence P_0) - { - return P_0.Steps; - } - - static ArgumentOutOfRangeException _206E_206B_202C_206A_200C_200E_202A_206A_200B_206F_202D_200D_200B_200E_200C_200F_206A_200E_200B_200D_202D_202A_200D_200D_202E_206F_206E_202E_202B_202A_202A_202E_206E_206B_206F_206C_202A_200C_200D_202C_202E(string P_0, object P_1, string P_2) - { - return new ArgumentOutOfRangeException(P_0, P_1, P_2); - } - - static void _206E_206F_200D_202A_206B_202D_202A_206C_202E_200D_200B_200C_202D_206E_206E_202A_202B_206C_202B_200D_200C_200D_200B_206D_206D_200B_202C_202A_206E_200D_200D_202A_206D_206E_202A_202E_206E_202A_206A_206F_202E(QuestStep P_0, EExtendedClassJob P_1) - { - P_0.TargetClass = P_1; - } - - static GatheredItem _206A_206F_200E_200E_206A_206E_202B_202B_206F_200B_200F_206E_200B_206E_200C_200E_206C_202C_202D_206A_202E_200E_206C_206D_202C_200B_206C_206C_202D_206E_200D_202C_200B_202D_200E_200F_202C_206E_206A_200C_202E() - { - return new GatheredItem(); - } - - static void _202D_200F_206F_202A_200F_202E_206C_206B_200F_200C_202C_206C_200D_202E_202D_202A_206A_200B_206F_206F_200B_200B_200E_202E_200E_206C_202A_202D_202A_206B_206A_202D_200E_206A_202C_202C_206D_200B_202B_206A_202E(GatheredItem P_0, uint P_1) - { - P_0.ItemId = P_1; - } - - static void _202C_200B_200D_206C_206A_202C_202A_206D_202C_206F_200B_200D_206F_202E_206E_202E_206D_206B_200F_202A_202A_206F_200C_202A_206E_200B_202D_206C_206A_206C_206C_206E_206F_206D_206E_200F_202D_200D_200C_200E_202E(GatheredItem P_0, int P_1) - { - P_0.ItemCount = P_1; - } - - static void _206A_206C_200E_206B_206D_200D_200B_200F_200F_202C_206F_200E_200C_206F_202B_206D_206B_202C_206F_202D_206F_202A_202B_206B_206C_200C_206C_202A_200E_200C_200F_200C_202C_206D_202C_206B_206B_206B_200F_206B_202E(GatheredItem P_0, ushort P_1) - { - P_0.Collectability = P_1; - } - - static void _206A_200B_202E_202E_206F_202C_206A_206C_206B_202A_200D_202A_206D_202C_202A_202C_202A_202C_202A_206F_202C_202D_200C_206F_200D_206C_202E_206E_206E_200E_200D_206E_206B_200C_206A_202A_200B_200F_202C_206B_202E(QuestStep P_0, List<GatheredItem> P_1) - { - P_0.ItemsToGather = P_1; - } - - static void _202C_206D_206D_206D_206E_202C_206A_202A_200E_200C_206E_206F_206F_200F_200E_206A_200D_200F_200C_200D_206E_200B_202C_200C_206D_206C_200C_200F_206E_206F_202D_202D_206E_206A_206F_206E_206E_206F_200B_202C_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } - - static void _202E_202B_202D_200F_206F_206B_200D_200B_200D_202C_206C_200F_200B_206B_202E_200D_206C_200E_206E_200B_200D_200D_202B_206A_200B_206E_206D_206B_202C_206D_200D_206B_206C_202E_200E_200E_206E_200C_200E_206A_202E(IContextMenu P_0, IContextMenu.OnMenuOpenedDelegate P_1) - { - P_0.OnMenuOpened -= P_1; + _contextMenu.OnMenuOpened -= MenuOpened; } } diff --git a/Questionable/Questionable.Controller/CustomDeliveryController.cs b/Questionable/Questionable.Controller/CustomDeliveryController.cs index 0222d70..f293db1 100644 --- a/Questionable/Questionable.Controller/CustomDeliveryController.cs +++ b/Questionable/Questionable.Controller/CustomDeliveryController.cs @@ -1,16 +1,11 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using LLib.GameData; using LLib.Inventory; using LLib.Shop; -using Lumina.Excel; using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.Controller.CustomDelivery; @@ -106,151 +101,35 @@ internal sealed class CustomDeliveryController : MiniTaskController<CustomDelive { get { - int num = ((State == EDeliveryState.Idle) ? (-1281083645) : (-1281083648)); - while (true) + if (State != EDeliveryState.Idle) { - int num2 = num; - int num3 = -1281083646; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return false; - case 2: - return State != EDeliveryState.Complete; - case 0: - goto IL_0057; - } - continue; - IL_0057: - num = -1281083648; + return State != EDeliveryState.Complete; } + return false; } } public TaskQueue TaskQueue => _taskQueue; - public string StatusLabel + public string StatusLabel => State switch { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - int num; - string result = default(string); - switch (State) - { - default: - num = -508730957; - goto IL_002e; - case EDeliveryState.WaitingForCraft: - num = (_taskQueue.AllTasksComplete ? (-508730960) : (-508730949)); - goto IL_002e; - case EDeliveryState.WaitingForFish: - goto IL_00ed; - case EDeliveryState.Executing: - goto IL_0103; - case EDeliveryState.TurningIn: - goto IL_011b; - case EDeliveryState.WaitingForGather: - goto IL_0131; - IL_002e: - while (true) - { - int num2 = num; - int num3 = -508730958; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - string text; - switch (num5 - (num6 + num6)) - { - case 8: - result = State.ToString(); - num = -508730956; - break; - case 2: - text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1784684541); - goto IL_00a5; - case 0: - num = -508730957; - break; - case 1: - num = -508730950; - break; - case 4: - goto end_IL_002e; - case 10: - goto IL_00ed; - case 5: - goto IL_0103; - case 6: - return result; - case 7: - goto IL_011b; - case 3: - goto IL_0131; - case 9: - { - text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1578293826); - goto IL_00a5; - } - IL_00a5: - result = text; - num = -508730956; - break; - } - continue; - end_IL_002e: - break; - } - goto case EDeliveryState.WaitingForCraft; - IL_0131: - result = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-679143176); - num = -508730956; - goto IL_002e; - IL_011b: - result = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-40294992); - num = -508730956; - goto IL_002e; - IL_0103: - result = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1193075895); - num = -508730956; - goto IL_002e; - IL_00ed: - result = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1591061420); - num = -508730956; - goto IL_002e; - } - } - } + EDeliveryState.Executing => "Navigating", + EDeliveryState.WaitingForCraft => _taskQueue.AllTasksComplete ? "Crafting" : "Purchasing", + EDeliveryState.WaitingForGather => "Gathering", + EDeliveryState.WaitingForFish => "Fishing", + EDeliveryState.TurningIn => "Turning in", + _ => State.ToString(), + }; public string? CurrentNpcName { get { - int num = (IsRunning ? 1877176914 : 1877176913); - while (true) + if (!IsRunning) { - int num2 = num; - int num3 = 1877176912; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0048; - case 2: - return _npcNames.GetValueOrDefault(_npcIndex); - case 1: - return null; - } - continue; - IL_0048: - num = 1877176913; + return null; } + return _npcNames.GetValueOrDefault(_npcIndex); } } @@ -276,140 +155,85 @@ internal sealed class CustomDeliveryController : MiniTaskController<CustomDelive _npcNames = BuildNpcNameLookup(dataManager); } - [MethodImpl(MethodImplOptions.NoInlining)] public bool Start(int npcIndex, EDeliverySlot slot) { - int num = ((State == EDeliveryState.Idle) ? 1558967416 : 1558967423); - DeliveryPlan deliveryPlan = default(DeliveryPlan); - while (true) + if (State != EDeliveryState.Idle) { - int num2 = num; - int num3 = 1558967420; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - num = 1558967423; - break; - case 2: - _npcIndex = npcIndex; - _slot = slot; - _craftRetryCount = 0; - _pendingCraftRecipe = null; - _currentCraftRecipe = null; - _pendingGatherClass = null; - _pendingFishingStart = false; - _usedDeliveriesAtPlan = _202A_202E_202A_206B_202E_200F_206D_206B_206A_206C_200D_202A_200B_202D_202A_202A_202B_202E_206C_202C_202D_200F_200B_206A_202E_206D_202B_200D_206E_202A_202B_202E_200C_200D_202B_202A_206D_202C_200E_206D_202E(npcIndex).UsedDeliveries; - CurrentPlan = deliveryPlan; - State = EDeliveryState.Executing; - _202E_200D_206F_206E_200C_202B_200C_206C_206A_200B_202C_202D_206E_202C_200B_202C_206D_200B_206D_202A_200C_202C_202C_202D_202A_202C_200F_206E_206B_206F_206A_206A_200B_206A_206A_206C_206F_206A_200C_202B_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-579070225), new object[4] { npcIndex, slot, deliveryPlan.ItemId, deliveryPlan.DeliveryCount }); - PopulateTaskQueue(deliveryPlan); - return State != EDeliveryState.Idle; - case 3: - _206C_206C_200F_200C_200C_202C_206E_206E_206F_200C_206B_206E_202C_200D_202A_200B_206D_202C_202B_206F_200F_202B_202E_206C_200C_202E_202B_202B_206C_200D_206C_202A_206A_202C_200F_200B_202E_200B_206E_206E_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-649056096), new object[1] { State }); - return false; - case 5: - _206C_206C_200F_200C_200C_202C_206E_206E_206F_200C_206B_206E_202C_200D_202A_200B_206D_202C_202B_206F_200F_202B_202E_206C_200C_202E_202B_202B_206C_200D_206C_202A_206A_202C_200F_200B_202E_200B_206E_206E_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1536407158), Array.Empty<object>()); - return false; - case 4: - num = ((_202C_200C_200D_200D_200E_202A_206C_200B_206B_200F_206E_200C_200F_200C_202C_206F_206C_200B_206C_206A_202C_202E_206E_200F_206A_200B_206E_202B_206E_200C_202D_200F_206F_200D_202B_200D_202D_200E_206A_206F_202E() >= 1) ? 1558967420 : 1558967417); - break; - case 1: - _202E_200D_206F_206E_200C_202B_200C_206C_206A_200B_202C_202D_206E_202C_200B_202C_206D_200B_206D_202A_200C_202C_202C_202D_202A_202C_200F_206E_206B_206F_206A_206A_200B_206A_206A_206C_206F_206A_200C_202B_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1447098461), new object[2] { npcIndex, slot }); - return false; - case 0: - deliveryPlan = _plannerService.CreatePlan(npcIndex, slot); - num = ((deliveryPlan != null) ? 1558967422 : 1558967421); - break; - } + _logger.LogWarning("Cannot start delivery - already in state {State}", State); + return false; } + if (InventoryHelper.CountFreeInventorySlots() < 1) + { + _logger.LogWarning("No free inventory slots, cannot start custom delivery"); + return false; + } + DeliveryPlan deliveryPlan = _plannerService.CreatePlan(npcIndex, slot); + if (deliveryPlan == null) + { + _logger.LogInformation("No delivery plan created for NPC {NpcIndex} slot {Slot}", npcIndex, slot); + return false; + } + _npcIndex = npcIndex; + _slot = slot; + _craftRetryCount = 0; + _pendingCraftRecipe = null; + _currentCraftRecipe = null; + _pendingGatherClass = null; + _pendingFishingStart = false; + _usedDeliveriesAtPlan = SatisfactionSupplyActions.GetNpcState(npcIndex).UsedDeliveries; + CurrentPlan = deliveryPlan; + State = EDeliveryState.Executing; + _logger.LogInformation("Starting custom delivery: NPC {NpcIndex}, slot {Slot}, item {ItemId} x{Count}", npcIndex, slot, deliveryPlan.ItemId, deliveryPlan.DeliveryCount); + PopulateTaskQueue(deliveryPlan); + return State != EDeliveryState.Idle; } - [MethodImpl(MethodImplOptions.NoInlining)] public bool StartQueue() { - int num = ((_configuration.CustomDeliveries.DeliveryQueue.Count != 0) ? (-1159488106) : (-1159488105)); - while (true) + if (_configuration.CustomDeliveries.DeliveryQueue.Count == 0) { - int num2 = num; - int num3 = -1159488108; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = ((State == EDeliveryState.Idle) ? (-1159488111) : (-1159488107)); - break; - case 3: - _202E_200D_206F_206E_200C_202B_200C_206C_206A_200B_202C_202D_206E_202C_200B_202C_206D_200B_206D_202A_200C_202C_202C_202D_202A_202C_200F_206E_206B_206F_206A_206A_200B_206A_206A_206C_206F_206A_200C_202B_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1122948588), Array.Empty<object>()); - return false; - case 4: - num = -1159488105; - break; - case 6: - Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1825662693)); - num = -1159488108; - break; - case 2: - num = ((State != EDeliveryState.Complete) ? (-1159488108) : (-1159488110)); - break; - case 1: - _206C_206C_200F_200C_200C_202C_206E_206E_206F_200C_206B_206E_202C_200D_202A_200B_206D_202C_202B_206F_200F_202B_202E_206C_200C_202E_202B_202B_206C_200D_206C_202A_206A_202C_200F_200B_202E_200B_206E_206E_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2040498905), new object[1] { State }); - return false; - case 5: - return StartNextFromQueue(); - } + _logger.LogInformation("Delivery queue is empty"); + return false; } + if (State == EDeliveryState.Complete) + { + Stop("Restart queue from Complete"); + } + if (State != EDeliveryState.Idle) + { + _logger.LogWarning("Cannot start delivery queue - already in state {State}", State); + return false; + } + return StartNextFromQueue(); } - [MethodImpl(MethodImplOptions.NoInlining)] private bool StartNextFromQueue() { List<int> deliveryQueue = _configuration.CustomDeliveries.DeliveryQueue; - int num = ((deliveryQueue.Count <= 0) ? (-1711174098) : (-1711174104)); - int num5 = default(int); - EDeliverySlot? eDeliverySlot = default(EDeliverySlot?); - while (true) + if (deliveryQueue.Count > 0 && InventoryHelper.CountFreeInventorySlots() < 1) { - int num2 = num; - int num3 = -1711174102; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - _202E_200D_206F_206E_200C_202B_200C_206C_206A_200B_202C_202D_206E_202C_200B_202C_206D_200B_206D_202A_200C_202C_202C_202D_202A_202C_200F_206E_206B_206F_206A_206A_200B_206A_206A_206C_206F_206A_200C_202B_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1175276050), new object[2] { num5, eDeliverySlot.Value }); - num = ((!Start(num5, eDeliverySlot.Value)) ? (-1711174098) : (-1711174103)); - break; - case 7: - _206C_206C_200F_200C_200C_202C_206E_206E_206F_200C_206B_206E_202C_200D_202A_200B_206D_202C_202B_206F_200F_202B_202E_206C_200C_202E_202B_202B_206C_200D_206C_202A_206A_202C_200F_200B_202E_200B_206E_206E_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(116687394), new object[1] { deliveryQueue.Count }); - return false; - case 1: - _202E_200D_206F_206E_200C_202B_200C_206C_206A_200B_202C_202D_206E_202C_200B_202C_206D_200B_206D_202A_200C_202C_202C_202D_202A_202C_200F_206E_206B_206F_206A_206A_200B_206A_206A_206C_206F_206A_200C_202B_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(560717448), new object[1] { num5 }); - num = -1711174098; - break; - case 2: - num = ((_202C_200C_200D_200D_200E_202A_206C_200B_206B_200F_206E_200C_200F_200C_202C_206F_206C_200B_206C_206A_202C_202E_206E_200F_206A_200B_206E_202B_206E_200C_202D_200F_206F_200D_202B_200D_202D_200E_206A_206F_202E() >= 1) ? (-1711174098) : (-1711174099)); - break; - case 5: - num5 = deliveryQueue[0]; - deliveryQueue.RemoveAt(0); - eDeliverySlot = _plannerService.AutoSelectSlot(num5, _artisanIpc, _autoHookIpc); - num = (eDeliverySlot.HasValue ? (-1711174102) : (-1711174101)); - break; - case 8: - num = -1711174104; - break; - case 4: - num = ((deliveryQueue.Count > 0) ? (-1711174097) : (-1711174100)); - break; - case 3: - return true; - case 6: - _202E_200D_206F_206E_200C_202B_200C_206C_206A_200B_202C_202D_206E_202C_200B_202C_206D_200B_206D_202A_200C_202C_202C_202D_202A_202C_200F_206E_206B_206F_206A_206A_200B_206A_206A_206C_206F_206A_200C_202B_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-904612651), Array.Empty<object>()); - return false; - } + _logger.LogWarning("No free inventory slots, keeping {Count} queued deliveries", deliveryQueue.Count); + return false; } + while (deliveryQueue.Count > 0) + { + int num = deliveryQueue[0]; + deliveryQueue.RemoveAt(0); + EDeliverySlot? eDeliverySlot = _plannerService.AutoSelectSlot(num, _artisanIpc, _autoHookIpc); + if (!eDeliverySlot.HasValue) + { + _logger.LogInformation("No viable slot for NPC {NpcIndex}, skipping", num); + continue; + } + _logger.LogInformation("Queue: starting NPC {NpcIndex} with slot {Slot}", num, eDeliverySlot.Value); + if (!Start(num, eDeliverySlot.Value)) + { + continue; + } + return true; + } + _logger.LogInformation("Delivery queue exhausted"); + return false; } private void PopulateTaskQueue(DeliveryPlan plan) @@ -417,17 +241,44 @@ internal sealed class CustomDeliveryController : MiniTaskController<CustomDelive _taskQueue.Reset(); _pendingGatherClass = null; _pendingFishingStart = false; - IngredientPlan current = default(IngredientPlan); - int num2; - VendorResolverService.RecipeInfo? pendingCraftRecipe = default(VendorResolverService.RecipeInfo?); switch (plan.Slot) { - default: - num2 = -771458333; - goto IL_0043; case EDeliverySlot.Craft: - num2 = ((!HasEnoughItems(plan)) ? (-771458334) : (-771458335)); - goto IL_0043; + { + if (HasEnoughItems(plan)) + { + State = EDeliveryState.TurningIn; + EnqueueTurnInSequence(plan); + break; + } + Dictionary<(uint, uint), (ushort, Vector3, int, List<VendorPurchaseTask.PurchaseItem>)> dictionary = new Dictionary<(uint, uint), (ushort, Vector3, int, List<VendorPurchaseTask.PurchaseItem>)>(); + foreach (IngredientPlan ingredientPlan in plan.IngredientPlans) + { + if (ingredientPlan.ToBuy > 0 && ingredientPlan.Vendor.HasValue) + { + VendorResolverService.VendorInfo value = ingredientPlan.Vendor.Value; + (uint, uint) key = (value.VendorNpcId, value.ShopId); + dictionary.TryAdd(key, (value.TerritoryId, value.Position, value.DialogOptionIndex, new List<VendorPurchaseTask.PurchaseItem>())); + dictionary[key].Item4.Add(new VendorPurchaseTask.PurchaseItem(ingredientPlan.ItemId, ingredientPlan.ToBuy)); + } + } + foreach (var (tuple3, tuple4) in dictionary) + { + var (vendorNpcId, _) = tuple3; + var (territoryId, position, dialogOptionIndex, purchases) = tuple4; + EnqueueNavigateTo(territoryId, position); + _taskQueue.Enqueue(new Questionable.Controller.Steps.Common.Mount.UnmountTask()); + _taskQueue.Enqueue(new VendorPurchaseTask(vendorNpcId, purchases, dialogOptionIndex)); + } + (EClassJob Job, VendorResolverService.RecipeInfo? Recipe) tuple7 = ResolveCrafterClass(plan.ItemId); + EClassJob item = tuple7.Job; + VendorResolverService.RecipeInfo? recipeInfo = tuple7.Recipe ?? plan.Recipe; + EClassJob classJob = ((item != EClassJob.Adventurer) ? item : (recipeInfo?.CraftingClass ?? EClassJob.Carpenter)); + _taskQueue.Enqueue(new SwitchClassJob.Task(classJob)); + _pendingCraftRecipe = recipeInfo; + State = EDeliveryState.WaitingForCraft; + break; + } case EDeliverySlot.Gather: { if (HasEnoughItems(plan)) @@ -446,324 +297,84 @@ internal sealed class CustomDeliveryController : MiniTaskController<CustomDelive break; } case EDeliverySlot.Fish: + if (HasEnoughItems(plan)) { - if (HasEnoughItems(plan)) - { - State = EDeliveryState.TurningIn; - EnqueueTurnInSequence(plan); - } - else - { - _taskQueue.Enqueue(new SwitchClassJob.Task(EClassJob.Fisher)); - _pendingFishingStart = true; - State = EDeliveryState.WaitingForFish; - } - break; + State = EDeliveryState.TurningIn; + EnqueueTurnInSequence(plan); } - IL_0043: - while (true) + else { - int num = num2; - int num3 = -771458335; - int num4 = num; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 1: - break; - case 2: - return; - case 4: - goto IL_009c; - case 0: - State = EDeliveryState.TurningIn; - EnqueueTurnInSequence(plan); - return; - case 3: - { - Dictionary<(uint, uint), (ushort, Vector3, int, List<VendorPurchaseTask.PurchaseItem>)> dictionary = new Dictionary<(uint, uint), (ushort, Vector3, int, List<VendorPurchaseTask.PurchaseItem>)>(); - IEnumerator<IngredientPlan> enumerator = plan.IngredientPlans.GetEnumerator(); - try - { - num2 = -764308056; - while (true) - { - int num5 = num2; - num3 = -764308051; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 3: - { - VendorResolverService.VendorInfo value = current.Vendor.Value; - (uint, uint) key = (value.VendorNpcId, value.ShopId); - dictionary.TryAdd(key, (value.TerritoryId, value.Position, value.DialogOptionIndex, new List<VendorPurchaseTask.PurchaseItem>())); - dictionary[key].Item4.Add(new VendorPurchaseTask.PurchaseItem(current.ItemId, current.ToBuy)); - num2 = -764308056; - break; - } - case 2: - num2 = ((!current.Vendor.HasValue) ? (-764308056) : (-764308050)); - break; - case 4: - current = enumerator.Current; - num2 = ((current.ToBuy <= 0) ? (-764308056) : (-764308049)); - break; - case 5: - num2 = (_202D_200D_202B_200E_202C_206B_202A_206C_200F_206E_206E_206D_200E_206A_202B_202D_202A_200F_202B_200B_206D_200B_200D_200B_200F_200C_200D_200C_202D_206F_206C_200D_202A_202E_206F_200F_202B_206E_200F_200D_202E((IEnumerator)enumerator) ? (-764308055) : (-764308052)); - break; - case 0: - num2 = -764308056; - break; - case 1: - goto end_IL_00d6; - } - continue; - end_IL_00d6: - break; - } - } - finally - { - num2 = ((enumerator == null) ? 1364346553 : 1364346554); - while (true) - { - int num8 = num2; - num3 = 1364346552; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 0: - num2 = 1364346554; - break; - case 2: - _202B_202D_206D_206B_202B_206A_200E_202C_202A_206B_200E_206A_200C_206A_206A_200F_202C_202C_206C_200D_200E_200C_206E_206E_202D_202D_200F_206C_202C_202B_202B_206F_202E_200E_202D_206E_200B_202D_200F_202C_202E((IDisposable)enumerator); - num2 = 1364346553; - break; - case 1: - goto end_IL_023f; - } - continue; - end_IL_023f: - break; - } - } - using (Dictionary<(uint, uint), (ushort, Vector3, int, List<VendorPurchaseTask.PurchaseItem>)>.Enumerator enumerator2 = dictionary.GetEnumerator()) - { - num2 = 1462776817; - while (true) - { - int num11 = num2; - num3 = 1462776818; - num4 = num11; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num2 = 1462776817; - break; - case 3: - num2 = (enumerator2.MoveNext() ? 1462776816 : 1462776819); - break; - case 2: - var (tuple3, tuple4) = (KeyValuePair<(uint, uint), (ushort, Vector3, int, List<VendorPurchaseTask.PurchaseItem>)>)(ref enumerator2.Current); - var (vendorNpcId, _) = tuple3; - var (territoryId, position, dialogOptionIndex, purchases) = tuple4; - EnqueueNavigateTo(territoryId, position); - _taskQueue.Enqueue(new Questionable.Controller.Steps.Common.Mount.UnmountTask()); - _taskQueue.Enqueue(new VendorPurchaseTask(vendorNpcId, purchases, dialogOptionIndex)); - num2 = 1462776817; - break; - case 1: - goto end_IL_02a1; - } - continue; - end_IL_02a1: - break; - } - } - (EClassJob Job, VendorResolverService.RecipeInfo? Recipe) tuple7 = ResolveCrafterClass(plan.ItemId); - EClassJob item = tuple7.Job; - VendorResolverService.RecipeInfo? item2 = tuple7.Recipe; - num2 = (item2.HasValue ? (-746319838) : (-746319839)); - while (true) - { - int num12 = num2; - num3 = -746319837; - num4 = num12; - int num13; - VendorResolverService.RecipeInfo? recipeInfo; - EClassJob classJob; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num13 = (int)pendingCraftRecipe.GetValueOrDefault().CraftingClass; - goto IL_0487; - case 2: - recipeInfo = plan.Recipe; - goto IL_0455; - case 0: - num2 = -746319839; - break; - case 1: - recipeInfo = item2; - goto IL_0455; - case 5: - num13 = 8; - goto IL_0487; - case 4: - num13 = (int)item; - goto IL_0487; - case 6: - { - num2 = (pendingCraftRecipe.HasValue ? (-746319840) : (-746319834)); - break; - } - IL_0487: - classJob = (EClassJob)num13; - _taskQueue.Enqueue(new SwitchClassJob.Task(classJob)); - _pendingCraftRecipe = pendingCraftRecipe; - State = EDeliveryState.WaitingForCraft; - return; - IL_0455: - pendingCraftRecipe = recipeInfo; - num2 = ((item != EClassJob.Adventurer) ? (-746319833) : (-746319835)); - break; - } - } - } - } - break; - IL_009c: - num2 = -771458333; + _taskQueue.Enqueue(new SwitchClassJob.Task(EClassJob.Fisher)); + _pendingFishingStart = true; + State = EDeliveryState.WaitingForFish; } - goto case EDeliverySlot.Craft; + break; } } private (EClassJob Job, VendorResolverService.RecipeInfo? Recipe) ResolveCrafterClass(uint craftedItemId) { Configuration.CustomDeliveryConfiguration customDeliveries = _configuration.CustomDeliveries; - int num = ((customDeliveries.CraftJobMode != Configuration.CustomDeliveryConfiguration.EJobSelectionMode.Current) ? (-60646193) : (-60646205)); - VendorResolverService.RecipeInfo? item3 = default(VendorResolverService.RecipeInfo?); - VendorResolverService.RecipeInfo? item2 = default(VendorResolverService.RecipeInfo?); - EClassJob value = default(EClassJob); - uint? num7 = default(uint?); - VendorResolverService.RecipeInfo? item = default(VendorResolverService.RecipeInfo?); - while (true) + if (customDeliveries.CraftJobMode == Configuration.CustomDeliveryConfiguration.EJobSelectionMode.Current) { - int num2 = num; - int num3 = -60646201; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + uint? num = _objectTable.LocalPlayer?.ClassJob.RowId; + if (num.HasValue) { - case 3: - return (Job: item3.Value.CraftingClass, Recipe: item3); - case 1: - return (Job: item2.Value.CraftingClass, Recipe: item2); - case 8: - item3 = _vendorResolver.ResolveRecipe(craftedItemId, customDeliveries.PreferredCraftJob); - num = ((!item3.HasValue) ? (-60646194) : (-60646204)); - break; - case 6: - item2 = _vendorResolver.ResolveRecipe(craftedItemId, value); - num = ((!item2.HasValue) ? (-60646193) : (-60646202)); - break; - case 5: - value = (EClassJob)num7.Value; - num = ((!_206A_200B_206F_202E_200B_206C_206F_202C_202D_202E_206F_206A_202A_202C_200F_206D_206C_200C_206A_206C_206D_202D_206C_202A_206B_200E_200D_200D_200F_200F_206C_206F_202C_202E_206E_206F_206C_206C_200E_202C_202E(value)) ? (-60646193) : (-60646207)); - break; - case 4: - { - IPlayerCharacter playerCharacter = _200D_206F_206F_206D_200B_202C_202C_202A_200C_200D_206D_206A_202D_202C_202A_206A_200F_206D_202C_200E_200C_200C_202D_206E_202C_202D_200D_202B_206E_202C_206E_206B_202A_206E_200D_206A_202A_200C_202D_202A_202E(_objectTable); - num7 = ((playerCharacter != null) ? new uint?(_206D_206E_206C_202B_206F_206A_206E_200F_200D_206D_206A_206B_206E_202E_200B_206C_206E_200B_206E_200C_202E_200D_200D_206F_202A_200E_206F_200B_200C_200E_202C_206C_200D_200D_206D_202A_202A_200F_202E_206B_202E((ICharacter)playerCharacter).RowId) : ((uint?)null)); - num = ((!num7.HasValue) ? (-60646193) : (-60646206)); - break; - } - case 2: - num = -60646205; - break; - case 0: - return (Job: item.Value.CraftingClass, Recipe: item); - case 9: - item = _vendorResolver.ResolveRecipe(craftedItemId); - num = (item.HasValue ? (-60646201) : (-60646208)); - break; - case 7: - return (Job: EClassJob.Adventurer, Recipe: null); + EClassJob value = (EClassJob)num.Value; + if (value.IsCrafter()) + { + VendorResolverService.RecipeInfo? item = _vendorResolver.ResolveRecipe(craftedItemId, value); + if (item.HasValue) + { + return (Job: item.Value.CraftingClass, Recipe: item); + } + } } } + VendorResolverService.RecipeInfo? item2 = _vendorResolver.ResolveRecipe(craftedItemId, customDeliveries.PreferredCraftJob); + if (item2.HasValue) + { + return (Job: item2.Value.CraftingClass, Recipe: item2); + } + VendorResolverService.RecipeInfo? item3 = _vendorResolver.ResolveRecipe(craftedItemId); + if (!item3.HasValue) + { + return (Job: EClassJob.Adventurer, Recipe: null); + } + return (Job: item3.Value.CraftingClass, Recipe: item3); } private EClassJob ResolveGathererClass(uint itemId) { Configuration.CustomDeliveryConfiguration customDeliveries = _configuration.CustomDeliveries; - int num = ((customDeliveries.GatherJobMode != Configuration.CustomDeliveryConfiguration.EJobSelectionMode.Current) ? 1963293825 : 1963293838); - EClassJob value = default(EClassJob); - EClassJob eClassJob = default(EClassJob); - uint? num7 = default(uint?); - while (true) + if (customDeliveries.GatherJobMode == Configuration.CustomDeliveryConfiguration.EJobSelectionMode.Current) { - int num2 = num; - int num3 = 1963293831; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num8; - switch (num5 - (num6 + num6)) + uint? num = _objectTable.LocalPlayer?.ClassJob.RowId; + if (num.HasValue) { - case 1: - num8 = 16; - goto IL_0185; - case 8: - num = ((customDeliveries.PreferredGatherJob == EClassJob.Miner) ? 1963293836 : 1963293830); - break; - case 0: - num = 1963293838; - break; - case 5: - return EClassJob.Miner; - case 3: - num = ((!CanGather(value)) ? 1963293825 : 1963293829); - break; - case 12: - return customDeliveries.PreferredGatherJob; - case 6: - num = ((!CanGather(customDeliveries.PreferredGatherJob)) ? 1963293839 : 1963293835); - break; - case 10: - return eClassJob; - case 7: - num = ((value != EClassJob.Botanist) ? 1963293825 : 1963293828); - break; - case 4: - value = (EClassJob)num7.Value; - num = ((value == EClassJob.Miner) ? 1963293828 : 1963293824); - break; - case 11: - num8 = 17; - goto IL_0185; - case 2: - return value; - case 9: + EClassJob value = (EClassJob)num.Value; + switch (value) { - IPlayerCharacter playerCharacter = _200D_206F_206F_206D_200B_202C_202C_202A_200C_200D_206D_206A_202D_202C_202A_206A_200F_206D_202C_200E_200C_200C_202D_206E_202C_202D_200D_202B_206E_202C_206E_206B_202A_206E_200D_206A_202A_200C_202D_202A_202E(_objectTable); - num7 = ((playerCharacter != null) ? new uint?(_206D_206E_206C_202B_206F_206A_206E_200F_200D_206D_206A_206B_206E_202E_200B_206C_206E_200B_206E_200C_202E_200D_200D_206F_202A_200E_206F_200B_200C_200E_202C_206C_200D_200D_206D_202A_202A_200F_202E_206B_202E((ICharacter)playerCharacter).RowId) : ((uint?)null)); - num = ((!num7.HasValue) ? 1963293825 : 1963293827); + case EClassJob.Miner: + case EClassJob.Botanist: + if (CanGather(value)) + { + return value; + } break; } - IL_0185: - eClassJob = (EClassJob)num8; - num = ((!CanGather(eClassJob)) ? 1963293826 : 1963293837); - break; } } + if (CanGather(customDeliveries.PreferredGatherJob)) + { + return customDeliveries.PreferredGatherJob; + } + EClassJob eClassJob = ((customDeliveries.PreferredGatherJob == EClassJob.Miner) ? EClassJob.Botanist : EClassJob.Miner); + if (CanGather(eClassJob)) + { + return eClassJob; + } + return EClassJob.Miner; bool CanGather(EClassJob job) { GatheringPointId gatheringPointId; @@ -771,903 +382,421 @@ internal sealed class CustomDeliveryController : MiniTaskController<CustomDelive } } - [MethodImpl(MethodImplOptions.NoInlining)] private bool EnqueueGatheringTravel(DeliveryPlan plan, EClassJob gathererClass) { - int num = ((!_gatheringPointRegistry.TryGetGatheringPointId(plan.ItemId, gathererClass, out GatheringPointId gatheringPointId)) ? (-450669058) : (-450669062)); - GatheringRoot gatheringRoot = default(GatheringRoot); - int num7; - while (true) + if (!_gatheringPointRegistry.TryGetGatheringPointId(plan.ItemId, gathererClass, out GatheringPointId gatheringPointId) || !_gatheringPointRegistry.TryGetGatheringPoint(gatheringPointId, out GatheringRoot gatheringRoot)) { - int num2 = num; - int num3 = -450669058; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 5: - num = ((_206A_206D_202E_200F_202C_200C_206A_200B_202A_202A_206E_206E_200B_200E_206D_202E_202B_200E_200B_202B_202C_206B_202C_202B_202D_206E_200B_206D_200F_206D_202D_200F_202C_206E_200E_202A_206B_202B_206C_202B_202E(gatheringRoot).Count > 0) ? (-450669060) : (-450669057)); - continue; - case 1: - num7 = 0; - break; - case 3: - num = -450669062; - continue; - case 0: - _206C_200C_202C_206F_200F_200F_200E_200E_206E_202C_200E_206C_206D_206C_200B_200C_200E_202D_200E_202B_202B_200C_202D_206F_200B_202D_202D_206F_206C_200E_202D_206B_200F_206B_206E_200B_206B_202A_206E_202B_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1361509608), new object[2] { plan.ItemId, gathererClass }); - Stop(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(699795007)); - return false; - case 4: - num = (_gatheringPointRegistry.TryGetGatheringPoint(gatheringPointId, out gatheringRoot) ? (-450669061) : (-450669058)); - continue; - case 2: - { - List<QuestStep> list = _206A_206D_202E_200F_202C_200C_206A_200B_202A_202A_206E_206E_200B_200E_206D_202E_202B_200E_200B_202B_202C_206B_202C_202B_202D_206E_200B_206D_200F_206D_202D_200F_202C_206E_200E_202A_206B_202B_206C_202B_202E(gatheringRoot); - num7 = _200D_200C_206C_206F_206C_206C_200E_202A_200C_200E_202C_206F_200E_200E_200C_206A_202D_202A_206C_202D_206A_200C_206E_202A_200C_206D_200F_206A_206F_200E_206E_200C_202C_200D_206F_206B_200F_202A_200F_202C_202E(list[list.Count - 1]); - break; - } - } - break; + _logger.LogError("No gathering path found for item {ItemId} as {ClassJob}", plan.ItemId, gathererClass); + Stop("No gathering path"); + return false; } - ushort num8 = (ushort)num7; + int num; + if (gatheringRoot.Steps.Count <= 0) + { + num = 0; + } + else + { + List<QuestStep> steps = gatheringRoot.Steps; + num = steps[steps.Count - 1].TerritoryId; + } + ushort num2 = (ushort)num; GatheringLocation gatheringLocation = null; - int num9 = int.MaxValue; - GatheringNode current = default(GatheringNode); - foreach (GatheringNodeGroup item in _206C_206D_206D_206B_202E_206E_200C_202C_206C_200D_206E_202E_202B_200E_206E_200F_206F_206F_202C_202C_206F_200B_206C_202D_206C_200E_206A_206F_200B_206F_202A_200D_206C_206C_202A_206F_202D_200E_206A_206B_202E(gatheringRoot)) + int num3 = int.MaxValue; + foreach (GatheringNodeGroup group in gatheringRoot.Groups) { - using List<GatheringNode>.Enumerator enumerator2 = _200D_206C_202B_202D_200E_206F_200C_202E_202B_200E_206C_202B_200F_200F_206B_206D_200C_200C_202E_206C_202D_202B_202D_202C_206C_200D_202A_206E_202B_206C_202B_206B_200D_206D_202E_202A_206A_202A_206D_202A_202E(item).GetEnumerator(); - num = 1988846971; - while (true) + foreach (GatheringNode node in group.Nodes) { - int num10 = num; - int num3 = 1988846968; - int num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) + if (node.Locations.Count != 0 && node.Locations.Count < num3) { - case 1: - num = ((_206B_206D_202A_200B_206A_206C_206E_206A_202B_202A_206D_200D_202A_202A_200E_200F_202D_206A_200B_202B_202B_200C_202D_206E_206A_200D_206A_206E_202D_202B_206B_206F_202C_206B_200B_200F_206D_206A_200B_202D_202E(current).Count >= num9) ? 1988846971 : 1988846968); - break; - case 3: - num = (enumerator2.MoveNext() ? 1988846973 : 1988846970); - break; - case 4: - num = 1988846971; - break; - case 0: - num9 = _206B_206D_202A_200B_206A_206C_206E_206A_202B_202A_206D_200D_202A_202A_200E_200F_202D_206A_200B_202B_202B_200C_202D_206E_206A_200D_206A_206E_202D_202B_206B_206F_202C_206B_200B_200F_206D_206A_200B_202D_202E(current).Count; - gatheringLocation = _206B_206D_202A_200B_206A_206C_206E_206A_202B_202A_206D_200D_202A_202A_200E_200F_202D_206A_200B_202B_202B_200C_202D_206E_206A_200D_206A_206E_202D_202B_206B_206F_202C_206B_200B_200F_206D_206A_200B_202D_202E(current)[0]; - num = 1988846971; - break; - case 5: - current = enumerator2.Current; - num = ((_206B_206D_202A_200B_206A_206C_206E_206A_202B_202A_206D_200D_202A_202A_200E_200F_202D_206A_200B_202B_202B_200C_202D_206E_206A_200D_206A_206E_202D_202B_206B_206F_202C_206B_200B_200F_206D_206A_200B_202D_202E(current).Count == 0) ? 1988846971 : 1988846969); - break; - case 2: - goto end_IL_0174; + num3 = node.Locations.Count; + gatheringLocation = node.Locations[0]; } - continue; - end_IL_0174: - break; } } - num = ((gatheringLocation != null) ? 2137928922 : 2137928923); - Vector3? vector = default(Vector3?); - QuestStep current2 = default(QuestStep); - while (true) + Vector3? vector = ((gatheringLocation != null) ? new Vector3?(GatheringMath.CalculateLandingLocation(gatheringLocation).Item1) : ((Vector3?)null)); + if (!vector.HasValue) { - int num13 = num; - int num3 = 2137928920; - int num4 = num13; - Vector3? obj; - switch ((num4 | num3) - (num4 & num3)) + foreach (QuestStep step in gatheringRoot.Steps) { - default: - continue; - case 0: - num = 2137928923; - continue; - case 3: - obj = null; - goto IL_031a; - case 2: - obj = _202E_200F_202C_206E_202A_200F_206B_202C_202C_206C_206E_202D_206E_200F_202E_202B_200E_206C_202C_202E_206B_206A_206E_206F_200C_202E_200C_202C_200D_200E_206D_200B_202A_200E_206E_202A_206E_206E_202C_206F_202E(gatheringLocation).Item1; - goto IL_031a; - case 1: + if (step.Position.HasValue) { - using (List<QuestStep>.Enumerator enumerator3 = _206A_206D_202E_200F_202C_200C_206A_200B_202A_202A_206E_206E_200B_200E_206D_202E_202B_200E_200B_202B_202C_206B_202C_202B_202D_206E_200B_206D_200F_206D_202D_200F_202C_206E_200E_202A_206B_202B_206C_202B_202E(gatheringRoot).GetEnumerator()) - { - num = 1403664943; - while (true) - { - int num14 = num; - num3 = 1403664942; - num4 = num14; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = 1403664943; - break; - case 0: - vector = _206D_202C_206D_206E_200D_202A_200B_200F_206F_202D_200D_206D_206E_202B_206A_206F_202E_206E_202B_200D_206C_206E_206E_206E_202C_202E_206C_202C_206C_202D_200C_206F_202B_200C_202A_206F_200B_200F_206F_206C_202E(current2); - num = 1403664943; - break; - case 1: - num = (enumerator3.MoveNext() ? 1403664941 : 1403664940); - break; - case 3: - current2 = enumerator3.Current; - num = ((!_206D_202C_206D_206E_200D_202A_200B_200F_206F_202D_200D_206D_206E_202B_206A_206F_202E_206E_202B_200D_206C_206E_206E_206E_202C_202E_206C_202C_206C_202D_200C_206F_202B_200C_202A_206F_200B_200F_206F_206C_202E(current2).HasValue) ? 1403664943 : 1403664942); - break; - case 2: - goto end_IL_034d; - } - continue; - end_IL_034d: - break; - } - } - break; + vector = step.Position; } - IL_031a: - vector = obj; - if (!vector.HasValue) - { - num = 2137928921; - continue; - } - break; } - break; } - num = ((num8 == 0) ? 2083946218 : 2083946219); - while (true) + if (num2 == 0 || !vector.HasValue) { - int num15 = num; - int num3 = 2083946222; - int num4 = num15; - switch ((num4 | num3) - (num4 & num3)) + _logger.LogError("Gathering path {PointId} has no travel destination", gatheringPointId); + Stop("Invalid gathering path"); + return false; + } + _logger.LogDebug("Navigating to gathering point {PointId} in territory {TerritoryId}", gatheringPointId, num2); + if (_clientState.TerritoryType != num2) + { + if (!_routeEnqueuer.TryEnqueueToTerritory(_taskQueue, num2, vector.Value)) { - case 1: - _206C_200C_202C_206F_200F_200F_200E_200E_206E_202C_200E_206C_206D_206C_200B_200C_200E_202D_200E_202B_202B_200C_202D_206F_200B_202D_202D_206F_206C_200E_202D_206B_200F_206B_206E_200B_206B_202A_206E_202B_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-292255565), new object[2] - { - _202C_206F_202D_206E_200D_200B_206A_200E_202B_206C_206F_202D_206B_206C_202C_206C_200C_206E_200E_200D_202D_206F_202A_206F_206A_202C_206F_206C_206B_206F_200E_200D_206D_202E_200D_202B_206D_206B_200E_206F_202E(_clientState), - num8 - }); - Stop(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1723437266)); + _logger.LogError("No SmartNav route from territory {CurrentTerritoryId} to gathering territory {TerritoryId}", _clientState.TerritoryType, num2); + Stop("No route to gathering point"); return false; - case 7: - _202D_206D_202D_200F_200C_202A_202A_202A_200E_202E_200D_200C_202C_200F_200F_202A_202A_200B_202C_200B_200F_200F_200E_206E_206D_206A_206C_206F_200D_202B_200E_206E_206E_202A_202B_202B_200E_202C_206F_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1244741154), new object[1] { num8 }); - num = 2083946221; - break; - case 0: - num = 2083946219; - break; - case 4: - _206C_200C_202C_206F_200F_200F_200E_200E_206E_202C_200E_206C_206D_206C_200B_200C_200E_202D_200E_202B_202B_200C_202D_206F_200B_202D_202D_206F_206C_200E_202D_206B_200F_206B_206E_200B_206B_202A_206E_202B_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1962177128), new object[1] { gatheringPointId }); - Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(719367743)); - return false; - case 2: - _202D_206D_202D_200F_200C_202A_202A_202A_200E_202E_200D_200C_202C_200F_200F_202A_202A_200B_202C_200B_200F_200F_200E_206E_206D_206A_206C_206F_200D_202B_200E_206E_206E_202A_202B_202B_200E_202C_206F_200F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-726261913), new object[2] { gatheringPointId, num8 }); - num = ((_202C_206F_202D_206E_200D_200B_206A_200E_202B_206C_206F_202D_206B_206C_202C_206C_200C_206E_200E_200D_202D_206F_202A_206F_206A_202C_206F_206C_206B_206F_200E_200D_206D_202E_200D_202B_206D_206B_200E_206F_202E(_clientState) == num8) ? 2083946217 : 2083946216); - break; - case 6: - num = (_routeEnqueuer.TryEnqueueToTerritory(_taskQueue, num8, vector.Value) ? 2083946221 : 2083946223); - break; - case 5: - num = (vector.HasValue ? 2083946220 : 2083946218); - break; - case 3: - return true; } } + else + { + _logger.LogDebug("Already in gathering territory {TerritoryId}; leaving node movement to GatheringController", num2); + } + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] private void StartCrafting(DeliveryPlan plan, VendorResolverService.RecipeInfo? recipeOverride = null) { - VendorResolverService.RecipeInfo? recipeInfo = recipeOverride; - int num = (recipeInfo.HasValue ? (-1061305765) : (-1061305773)); - int num7 = default(int); - VendorResolverService.RecipeInfo? recipeInfo2 = default(VendorResolverService.RecipeInfo?); - while (true) + VendorResolverService.RecipeInfo? recipeInfo = recipeOverride ?? plan.Recipe; + if (!recipeInfo.HasValue) { - int num2 = num; - int num3 = -1061305774; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - VendorResolverService.RecipeInfo? recipeInfo3; - switch (num5 - (num6 + num6)) + _logger.LogError("No recipe available for craft delivery of item {ItemId}", plan.ItemId); + Stop("No recipe"); + return; + } + if (!_artisanIpc.IsAvailable()) + { + _logger.LogError("Artisan is not available, cannot craft"); + Stop("Artisan not available"); + return; + } + _artisanIpc.SetEnduranceStatus(enabled: false); + _artisanIpc.SetStopRequest(stop: false); + int itemCount = GetItemCount(plan); + int num = plan.DeliveryCount - itemCount; + if (num > 0) + { + _logger.LogDebug("Requesting Artisan to craft {Count}x recipe {RecipeId} ({ClassJob})", num, recipeInfo.Value.RecipeId, recipeInfo.Value.CraftingClass); + if (!_artisanIpc.CraftItem((ushort)recipeInfo.Value.RecipeId, num)) { - case 7: - return; - case 9: - recipeInfo3 = recipeInfo; - goto IL_0076; - case 5: - _202D_206D_202D_200F_200C_202A_202A_202A_200E_202E_200D_200C_202C_200F_200F_202A_202A_200B_202C_200B_200F_200F_200E_206E_206D_206A_206C_206F_200D_202B_200E_206E_206E_202A_202B_202B_200E_202C_206F_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1644581685), new object[3] - { - num7, - recipeInfo2.Value.RecipeId, - recipeInfo2.Value.CraftingClass - }); - num = (_artisanIpc.CraftItem((ushort)recipeInfo2.Value.RecipeId, num7) ? (-1061305768) : (-1061305774)); - break; - case 4: - _206C_200C_202C_206F_200F_200F_200E_200E_206E_202C_200E_206C_206D_206C_200B_200C_200E_202D_200E_202B_202B_200C_202D_206F_200B_202D_202D_206F_206C_200E_202D_206B_200F_206B_206E_200B_206B_202A_206E_202B_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(126261973), new object[1] { plan.ItemId }); - Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-328096033)); - return; - case 2: - num = -1061305773; - break; - case 1: - recipeInfo3 = plan.Recipe; - goto IL_0076; - case 0: - _206C_200C_202C_206F_200F_200F_200E_200E_206E_202C_200E_206C_206D_206C_200B_200C_200E_202D_200E_202B_202B_200C_202D_206F_200B_202D_202D_206F_206C_200E_202D_206B_200F_206B_206E_200B_206B_202A_206E_202B_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(553484995), new object[1] { recipeInfo2.Value.RecipeId }); - Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(486680247)); - return; - case 10: - _craftBusyGraceUntilMs = _202C_202E_202E_206F_200F_202A_200B_202C_206D_202D_200E_206D_202E_200F_200C_202C_200D_202E_202B_202C_202A_206B_206D_200D_206C_206A_202B_200C_202B_206C_206C_202D_202C_206A_206D_202E_206F_206D_200E_200F_202E() + 5000; - return; - case 3: - _206C_200C_202C_206F_200F_200F_200E_200E_206E_202C_200E_206C_206D_206C_200B_200C_200E_202D_200E_202B_202B_200C_202D_206F_200B_202D_202D_206F_206C_200E_202D_206B_200F_206B_206E_200B_206B_202A_206E_202B_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1241589322), Array.Empty<object>()); - Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1390689146)); - return; - case 8: - num = (_artisanIpc.IsAvailable() ? (-1061305772) : (-1061305775)); - break; - case 6: - { - _artisanIpc.SetEnduranceStatus(enabled: false); - _artisanIpc.SetStopRequest(stop: false); - int itemCount = GetItemCount(plan); - num7 = plan.DeliveryCount - itemCount; - num = ((num7 > 0) ? (-1061305769) : (-1061305771)); - break; - } - IL_0076: - recipeInfo2 = recipeInfo3; - num = (recipeInfo2.HasValue ? (-1061305766) : (-1061305770)); - break; + _logger.LogError("Failed to start Artisan crafting for recipe {RecipeId}", recipeInfo.Value.RecipeId); + Stop("Artisan craft failed"); + } + else + { + _craftBusyGraceUntilMs = Environment.TickCount64 + 5000; } } } - [MethodImpl(MethodImplOptions.NoInlining)] private void StartGathering(DeliveryPlan plan, EClassJob gathererClass) { - _gatherStartMs = _202C_202E_202E_206F_200F_202A_200B_202C_206D_202D_200E_206D_202E_200F_200C_202C_200D_202E_202B_202C_202A_206B_206D_200D_206C_206A_202B_200C_202B_206C_206C_202D_202C_206A_206D_202E_206F_206D_200E_200F_202E(); + _gatherStartMs = Environment.TickCount64; _lastGatherCount = GetItemCount(plan); - GatheringPointId gatheringPointId; - int num = (_gatheringPointRegistry.TryGetGatheringPointId(plan.ItemId, gathererClass, out gatheringPointId) ? 812153432 : 812153435); - while (true) + if (!_gatheringPointRegistry.TryGetGatheringPointId(plan.ItemId, gathererClass, out GatheringPointId gatheringPointId)) { - int num2 = num; - int num3 = 812153433; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + _logger.LogError("No gathering point found for item {ItemId} as {ClassJob}", plan.ItemId, gathererClass); + Stop("No gathering point"); + return; + } + GatheringController.GatheringRequest gatheringRequest = new GatheringController.GatheringRequest(gatheringPointId, plan.ItemId, 0u, plan.DeliveryCount, plan.Collectability); + if (!_gatheringController.Start(gatheringRequest)) + { + _logger.LogWarning("GatheringController.Start returned false for item {ItemId}", plan.ItemId); + if (HasEnoughItems(plan)) { - case 5: - Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1867171636)); - num = 812153439; - break; - case 2: - _206C_200C_202C_206F_200F_200F_200E_200E_206E_202C_200E_206C_206D_206C_200B_200C_200E_202D_200E_202B_202B_200C_202D_206F_200B_202D_202D_206F_206C_200E_202D_206B_200F_206B_206E_200B_206B_202A_206E_202B_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1443840658), new object[2] { plan.ItemId, gathererClass }); - Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1238480123)); - return; - case 1: - { - GatheringController.GatheringRequest gatheringRequest = new GatheringController.GatheringRequest(gatheringPointId, plan.ItemId, 0u, plan.DeliveryCount, plan.Collectability); - num = (_gatheringController.Start(gatheringRequest) ? 812153439 : 812153433); - break; - } - case 4: State = EDeliveryState.Executing; EnqueueTurnInSequence(plan); - return; - case 3: - num = 812153435; - break; - case 6: - return; - case 0: - _206C_206C_200F_200C_200C_202C_206E_206E_206F_200C_206B_206E_202C_200D_202A_200B_206D_202C_202B_206F_200F_202B_202E_206C_200C_202E_202B_202B_206C_200D_206C_202A_206A_202C_200F_200B_202E_200B_206E_206E_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-171113647), new object[1] { plan.ItemId }); - num = ((!HasEnoughItems(plan)) ? 812153436 : 812153437); - break; + } + else + { + Stop("Gathering start failed"); } } } - [MethodImpl(MethodImplOptions.NoInlining)] private void StartFishing(DeliveryPlan plan) { - _fishStartMs = _202C_202E_202E_206F_200F_202A_200B_202C_206D_202D_200E_206D_202E_200F_200C_202C_200D_202E_202B_202C_202A_206B_206D_200D_206C_206A_202B_200C_202B_206C_206C_202D_202C_206A_206D_202E_206F_206D_200E_200F_202E(); + _fishStartMs = Environment.TickCount64; _lastFishCount = GetItemCount(plan); FishingController.FishingRequest request = new FishingController.FishingRequest(plan.ItemId, plan.DeliveryCount, plan.Collectability); - int num = (_fishingController.Start(request) ? (-833732925) : (-833732926)); - while (true) + if (!_fishingController.Start(request)) { - int num2 = num; - int num3 = -833732925; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + _logger.LogWarning("FishingController.Start returned false for item {ItemId}", plan.ItemId); + if (HasEnoughItems(plan)) { - case 0: - return; - case 1: - _206C_206C_200F_200C_200C_202C_206E_206E_206F_200C_206B_206E_202C_200D_202A_200B_206D_202C_202B_206F_200F_202B_202E_206C_200C_202E_202B_202B_206C_200D_206C_202A_206A_202C_200F_200B_202E_200B_206E_206E_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1407243130), new object[1] { plan.ItemId }); - num = ((!HasEnoughItems(plan)) ? (-833732921) : (-833732928)); - break; - case 4: - Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1283884351)); - num = -833732925; - break; - case 2: - num = -833732926; - break; - case 3: State = EDeliveryState.Executing; EnqueueTurnInSequence(plan); - return; + } + else + { + Stop("Fishing start failed"); } } } - [MethodImpl(MethodImplOptions.NoInlining)] public EDeliveryState Update() { - int num = ((State == EDeliveryState.Idle) ? 1143859363 : 1143859375); - while (true) + if (State == EDeliveryState.Idle || State == EDeliveryState.Complete) { - int num2 = num; - int num3 = 1143859365; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return UpdateWaitingForGather(); - case 10: - num = ((State != EDeliveryState.Complete) ? 1143859372 : 1143859363); - break; - case 5: - goto IL_0095; - case 9: - num = ((CurrentPlan != null) ? 1143859373 : 1143859366); - break; - case 11: - num = 1143859375; - break; - case 7: - goto IL_00c8; - case 3: - Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1490740808)); - return EDeliveryState.Idle; - case 8: - switch (State) - { - case EDeliveryState.WaitingForGather: - break; - case EDeliveryState.WaitingForFish: - goto IL_0095; - case EDeliveryState.WaitingForCraft: - goto IL_00c8; - default: - goto IL_0104; - case EDeliveryState.Executing: - case EDeliveryState.TurningIn: - goto IL_0116; - } - goto case 2; - case 6: - return State; - case 4: - goto IL_0116; - case 1: - num = 1143859365; - break; - case 0: - { - return State; - } - IL_0116: - return UpdateExecuting(); - IL_0104: - num = 1143859364; - break; - IL_00c8: - return UpdateWaitingForCraft(); - IL_0095: - return UpdateWaitingForFish(); - } + return State; + } + if (CurrentPlan == null) + { + Stop("No plan"); + return EDeliveryState.Idle; + } + switch (State) + { + case EDeliveryState.WaitingForCraft: + return UpdateWaitingForCraft(); + case EDeliveryState.WaitingForGather: + return UpdateWaitingForGather(); + case EDeliveryState.WaitingForFish: + return UpdateWaitingForFish(); + case EDeliveryState.Executing: + case EDeliveryState.TurningIn: + return UpdateExecuting(); + default: + return State; } } - [MethodImpl(MethodImplOptions.NoInlining)] private EDeliveryState UpdateWaitingForCraft() { - int num = (_taskQueue.AllTasksComplete ? 327102909 : 327102911); - while (true) + if (!_taskQueue.AllTasksComplete) { - int num2 = num; - int num3 = 327102899; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - _206C_206C_200F_200C_200C_202C_206E_206E_206F_200C_206B_206E_202C_200D_202A_200B_206D_202C_202B_206F_200F_202B_202E_206C_200C_202E_202B_202B_206C_200D_206C_202A_206A_202C_200F_200B_202E_200B_206E_206E_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1415078577), new object[2] - { - GetItemCount(CurrentPlan), - CurrentPlan.DeliveryCount - }); - Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1487053942)); - num = 327102902; - break; - case 15: - return State; - case 4: - return State; - case 5: - return State; - case 9: - _currentCraftRecipe = _pendingCraftRecipe; - _pendingCraftRecipe = null; - StartCrafting(CurrentPlan, _currentCraftRecipe); - return State; - case 11: - { - int craftRetryCount = _craftRetryCount; - num3 = 1; - num4 = craftRetryCount; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - _craftRetryCount = num7 + (num8 + num8); - _206C_206C_200F_200C_200C_202C_206E_206E_206F_200C_206B_206E_202C_200D_202A_200B_206D_202C_202B_206F_200F_202B_202E_206C_200C_202E_202B_202B_206C_200D_206C_202A_206A_202C_200F_200B_202E_200B_206E_206E_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-472214292), new object[2] - { - GetItemCount(CurrentPlan), - CurrentPlan.DeliveryCount - }); - StartCrafting(CurrentPlan, _currentCraftRecipe); - num = 327102902; - break; - } - case 12: - UpdateCurrentTask(); - return State; - case 7: - num = ((!HasEnoughItems(CurrentPlan)) ? 327102898 : 327102907); - break; - case 8: - _202D_206D_202D_200F_200C_202A_202A_202A_200E_202E_200D_200C_202C_200F_200F_202A_202A_200B_202C_200B_200F_200F_200E_206E_206D_206A_206C_206F_200D_202B_200E_206E_206E_202A_202B_202B_200E_202C_206F_200F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1286697491), Array.Empty<object>()); - State = EDeliveryState.Executing; - EnqueueTurnInSequence(CurrentPlan); - num = 327102902; - break; - case 13: - num = ((!_artisanIpc.IsCrafting()) ? 327102899 : 327102908); - break; - case 1: - num = ((_craftRetryCount >= 3) ? 327102897 : 327102904); - break; - case 14: - num = ((!_pendingCraftRecipe.HasValue) ? 327102910 : 327102906); - break; - case 3: - num = 327102911; - break; - case 10: - _206C_206C_200F_200C_200C_202C_206E_206E_206F_200C_206B_206E_202C_200D_202A_200B_206D_202C_202B_206F_200F_202B_202E_206C_200C_202E_202B_202B_206C_200D_206C_202A_206A_202C_200F_200B_202E_200B_206E_206E_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-923915781), Array.Empty<object>()); - _artisanIpc.SetStopRequest(stop: false); - num = 327102900; - break; - case 6: - num = ((!_artisanIpc.GetStopRequest()) ? 327102900 : 327102905); - break; - case 0: - num = ((_202C_202E_202E_206F_200F_202A_200B_202C_206D_202D_200E_206D_202E_200F_200C_202C_200D_202E_202B_202C_202A_206B_206D_200D_206C_206A_202B_200C_202B_206C_206C_202D_202C_206A_206D_202E_206F_206D_200E_200F_202E() >= _craftBusyGraceUntilMs) ? 327102901 : 327102903); - break; - } + UpdateCurrentTask(); + return State; } + if (_pendingCraftRecipe.HasValue) + { + _currentCraftRecipe = _pendingCraftRecipe; + _pendingCraftRecipe = null; + StartCrafting(CurrentPlan, _currentCraftRecipe); + return State; + } + if (_artisanIpc.IsCrafting()) + { + return State; + } + if (Environment.TickCount64 < _craftBusyGraceUntilMs) + { + return State; + } + if (_artisanIpc.GetStopRequest()) + { + _logger.LogWarning("Artisan reported a stop request, checking items"); + _artisanIpc.SetStopRequest(stop: false); + } + if (HasEnoughItems(CurrentPlan)) + { + _logger.LogDebug("Crafting complete, transitioning to turn-in"); + State = EDeliveryState.Executing; + EnqueueTurnInSequence(CurrentPlan); + } + else if (_craftRetryCount < 3) + { + _craftRetryCount++; + _logger.LogWarning("Crafting finished but insufficient items (have {Have}, need {Need}), retrying", GetItemCount(CurrentPlan), CurrentPlan.DeliveryCount); + StartCrafting(CurrentPlan, _currentCraftRecipe); + } + else + { + _logger.LogWarning("Crafting finished but insufficient items after retry (have {Have}, need {Need})", GetItemCount(CurrentPlan), CurrentPlan.DeliveryCount); + Stop("Insufficient items after crafting"); + } + return State; } - [MethodImpl(MethodImplOptions.NoInlining)] private EDeliveryState UpdateWaitingForGather() { - int num = (_taskQueue.AllTasksComplete ? 800896901 : 800896910); - int itemCount = default(int); - GatheringController.EStatus eStatus = default(GatheringController.EStatus); - EClassJob? pendingGatherClass = default(EClassJob?); - while (true) + if (!_taskQueue.AllTasksComplete) { - int num2 = num; - int num3 = 800896909; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 13: - _lastGatherCount = itemCount; - _gatherStartMs = _202C_202E_202E_206F_200F_202A_200B_202C_206D_202D_200E_206D_202E_200F_200C_202C_200D_202E_202B_202C_202A_206B_206D_200D_206C_206A_202B_200C_202B_206C_206C_202D_202C_206A_206D_202E_206F_206D_200E_200F_202E(); - num = 800896904; - break; - case 6: - _206C_206C_200F_200C_200C_202C_206E_206E_206F_200C_206B_206E_202C_200D_202A_200B_206D_202C_202B_206F_200F_202B_202E_206C_200C_202E_202B_202B_206C_200D_206C_202A_206A_202C_200F_200B_202E_200B_206E_206E_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-857621269), new object[2] { itemCount, CurrentPlan.DeliveryCount }); - Stop(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-308420345)); - num = 800896908; - break; - case 11: - num = ((eStatus != GatheringController.EStatus.Complete) ? 800896908 : 800896907); - break; - case 3: - UpdateCurrentTask(); - return State; - case 8: - pendingGatherClass = _pendingGatherClass; - num = ((!pendingGatherClass.HasValue) ? 800896909 : 800896899); - break; - case 12: - return State; - case 7: - _202D_206D_202D_200F_200C_202A_202A_202A_200E_202E_200D_200C_202C_200F_200F_202A_202A_200B_202C_200B_200F_200F_200E_206E_206D_206A_206C_206F_200D_202B_200E_206E_206E_202A_202B_202B_200E_202C_206F_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2020357276), Array.Empty<object>()); - State = EDeliveryState.Executing; - EnqueueTurnInSequence(CurrentPlan); - num = 800896908; - break; - case 14: - { - EClassJob valueOrDefault = pendingGatherClass.GetValueOrDefault(); - _pendingGatherClass = null; - StartGathering(CurrentPlan, valueOrDefault); - return State; - } - case 2: - num = 800896910; - break; - case 9: - eStatus = _gatheringController.Update(); - num = ((!HasEnoughItems(CurrentPlan)) ? 800896902 : 800896905); - break; - case 5: - num = ((_202C_202E_202E_206F_200F_202A_200B_202C_206D_202D_200E_206D_202E_200F_200C_202C_200D_202E_202B_202C_202A_206B_206D_200D_206C_206A_202B_200C_202B_206C_206C_202D_202C_206A_206D_202E_206F_206D_200E_200F_202E() - _gatherStartMs <= 180000) ? 800896900 : 800896903); - break; - case 4: - num = ((eStatus == GatheringController.EStatus.Complete) ? 800896906 : 800896897); - break; - case 1: - return State; - case 10: - _206C_206C_200F_200C_200C_202C_206E_206E_206F_200C_206B_206E_202C_200D_202A_200B_206D_202C_202B_206F_200F_202B_202E_206C_200C_202E_202B_202B_206C_200D_206C_202A_206A_202C_200F_200B_202E_200B_206E_206E_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(704684499), new object[1] { 180000L }); - _gatheringController.Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1876936404)); - Stop(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1544538434)); - return State; - case 0: - itemCount = GetItemCount(CurrentPlan); - num = ((itemCount <= _lastGatherCount) ? 800896904 : 800896896); - break; - } + UpdateCurrentTask(); + return State; } + EClassJob? pendingGatherClass = _pendingGatherClass; + if (pendingGatherClass.HasValue) + { + EClassJob valueOrDefault = pendingGatherClass.GetValueOrDefault(); + _pendingGatherClass = null; + StartGathering(CurrentPlan, valueOrDefault); + return State; + } + int itemCount = GetItemCount(CurrentPlan); + if (itemCount > _lastGatherCount) + { + _lastGatherCount = itemCount; + _gatherStartMs = Environment.TickCount64; + } + if (Environment.TickCount64 - _gatherStartMs > 180000) + { + _logger.LogWarning("Gathering made no progress for {Timeout}ms", 180000L); + _gatheringController.Stop("Delivery gather timeout"); + Stop("Gathering timeout"); + return State; + } + GatheringController.EStatus eStatus = _gatheringController.Update(); + if (HasEnoughItems(CurrentPlan)) + { + if (eStatus != GatheringController.EStatus.Complete) + { + return State; + } + _logger.LogDebug("Gathering complete, transitioning to turn-in"); + State = EDeliveryState.Executing; + EnqueueTurnInSequence(CurrentPlan); + } + else if (eStatus == GatheringController.EStatus.Complete) + { + _logger.LogWarning("Gathering ended without enough items (have {Have}, need {Need})", itemCount, CurrentPlan.DeliveryCount); + Stop("Gathering ended without items"); + } + return State; } - [MethodImpl(MethodImplOptions.NoInlining)] private EDeliveryState UpdateWaitingForFish() { - int num = (_taskQueue.AllTasksComplete ? 603569481 : 603569476); - FishingController.EFishingState state = default(FishingController.EFishingState); - bool flag = default(bool); - int itemCount = default(int); - while (true) + if (!_taskQueue.AllTasksComplete) { - int num2 = num; - int num3 = 603569483; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 10: - num = ((state == FishingController.EFishingState.Idle) ? 603569487 : 603569477); - break; - case 12: - _pendingFishingStart = false; - StartFishing(CurrentPlan); - return State; - case 16: - num = ((_202C_202E_202E_206F_200F_202A_200B_202C_206D_202D_200E_206D_202E_200F_200C_202C_200D_202E_202B_202C_202A_206B_206D_200D_206C_206A_202B_200C_202B_206C_206C_202D_202C_206A_206D_202E_206F_206D_200E_200F_202E() - _fishStartMs <= 180000) ? 603569474 : 603569484); - break; - case 15: - UpdateCurrentTask(); - return State; - case 5: - _202D_206D_202D_200F_200C_202A_202A_202A_200E_202E_200D_200C_202C_200F_200F_202A_202A_200B_202C_200B_200F_200F_200E_206E_206D_206A_206C_206F_200D_202B_200E_206E_206E_202A_202B_202B_200E_202C_206F_200F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1433419751), Array.Empty<object>()); - _fishingController.Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2119482329)); - State = EDeliveryState.Executing; - EnqueueTurnInSequence(CurrentPlan); - num = 603569480; - break; - case 4: - flag = true; - num = 603569485; - break; - case 3: - return State; - case 0: - num = 603569476; - break; - case 6: - num = ((!flag) ? 603569480 : 603569472); - break; - case 2: - num = ((!_pendingFishingStart) ? 603569482 : 603569479); - break; - case 14: - num = ((state != FishingController.EFishingState.Complete) ? 603569478 : 603569487); - break; - case 13: - flag = false; - num = 603569485; - break; - case 7: - _206C_206C_200F_200C_200C_202C_206E_206E_206F_200C_206B_206E_202C_200D_202A_200B_206D_202C_202B_206F_200F_202B_202E_206C_200C_202E_202B_202B_206C_200D_206C_202A_206A_202C_200F_200B_202E_200B_206E_206E_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1025220962), new object[1] { 180000L }); - _fishingController.Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1574890847)); - Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-867001927)); - return State; - case 9: - state = _fishingController.State; - num = ((!HasEnoughItems(CurrentPlan)) ? 603569473 : 603569486); - break; - case 8: - _lastFishCount = itemCount; - _fishStartMs = _202C_202E_202E_206F_200F_202A_200B_202C_206D_202D_200E_206D_202E_200F_200C_202C_200D_202E_202B_202C_202A_206B_206D_200D_206C_206A_202B_200C_202B_206C_206C_202D_202C_206A_206D_202E_206F_206D_200E_200F_202E(); - num = 603569499; - break; - case 11: - _206C_206C_200F_200C_200C_202C_206E_206E_206F_200C_206B_206E_202C_200D_202A_200B_206D_202C_202B_206F_200F_202B_202E_206C_200C_202E_202B_202B_206C_200D_206C_202A_206A_202C_200F_200B_202E_200B_206E_206E_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1907020198), new object[2] { itemCount, CurrentPlan.DeliveryCount }); - Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1534884548)); - num = 603569480; - break; - case 1: - itemCount = GetItemCount(CurrentPlan); - num = ((itemCount <= _lastFishCount) ? 603569499 : 603569475); - break; - } + UpdateCurrentTask(); + return State; } + if (_pendingFishingStart) + { + _pendingFishingStart = false; + StartFishing(CurrentPlan); + return State; + } + int itemCount = GetItemCount(CurrentPlan); + if (itemCount > _lastFishCount) + { + _lastFishCount = itemCount; + _fishStartMs = Environment.TickCount64; + } + if (Environment.TickCount64 - _fishStartMs > 180000) + { + _logger.LogWarning("Fishing made no progress for {Timeout}ms", 180000L); + _fishingController.Stop("Delivery fishing timeout"); + Stop("Fishing timeout"); + return State; + } + FishingController.EFishingState state = _fishingController.State; + if (HasEnoughItems(CurrentPlan)) + { + _logger.LogDebug("Fishing complete, transitioning to turn-in"); + _fishingController.Stop("Delivery fishing complete"); + State = EDeliveryState.Executing; + EnqueueTurnInSequence(CurrentPlan); + } + else if ((state == FishingController.EFishingState.Idle || state == FishingController.EFishingState.Complete) ? true : false) + { + _logger.LogWarning("Fishing ended without enough items (have {Have}, need {Need})", itemCount, CurrentPlan.DeliveryCount); + Stop("Fishing ended without items"); + } + return State; } private EDeliveryState UpdateExecuting() { - int num = ((!_taskQueue.AllTasksComplete) ? 1712268803 : 1712268800); - while (true) + if (_taskQueue.AllTasksComplete) { - int num2 = num; - int num3 = 1712268801; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - UpdateCurrentTask(); - return State; - case 1: - OnAllTasksComplete(); - return State; - case 0: - goto IL_0067; - } - continue; - IL_0067: - num = 1712268800; + OnAllTasksComplete(); + return State; } + UpdateCurrentTask(); + return State; } - [MethodImpl(MethodImplOptions.NoInlining)] private void OnAllTasksComplete() { - int num = ((CurrentPlan != null) ? 2073064070 : 2073064064); - int usedDeliveries = default(int); - DeliveryPlan deliveryPlan = default(DeliveryPlan); - while (true) + if (CurrentPlan == null) { - int num2 = num; - int num3 = 2073064071; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + State = EDeliveryState.Complete; + return; + } + int usedDeliveries = SatisfactionSupplyActions.GetNpcState(CurrentPlan.NpcIndex).UsedDeliveries; + if (SatisfactionSupplyActions.GetRemainingAllowances() > 0) + { + if (usedDeliveries == _usedDeliveriesAtPlan) { - case 3: - num = ((_200B_206A_200E_206C_200F_206F_206F_206D_202C_202A_200C_200C_202E_202E_200F_206D_206E_202E_206A_206B_206A_206C_200F_206F_200C_202A_206B_206A_202C_202E_202D_200E_202B_200F_206A_206A_206D_202C_200B_202D_202E() <= 0) ? 2073064069 : 2073064071); - break; - case 6: - _202D_206D_202D_200F_200C_202A_202A_202A_200E_202E_200D_200C_202C_200F_200F_202A_202A_200B_202C_200B_200F_200F_200E_206E_206D_206A_206C_206F_200D_202B_200E_206E_206E_202A_202B_202B_200E_202C_206F_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-747643920), new object[1] { usedDeliveries }); - _usedDeliveriesAtPlan = usedDeliveries; - CurrentPlan = deliveryPlan; - PopulateTaskQueue(deliveryPlan); - return; - case 1: - usedDeliveries = _202A_202E_202A_206B_202E_200F_206D_206B_206A_206C_200D_202A_200B_202D_202A_202A_202B_202E_206C_202C_202D_200F_200B_206A_202E_206D_202B_200D_206E_202A_202B_202E_200C_200D_202B_202A_206D_202C_200E_206D_202E(CurrentPlan.NpcIndex).UsedDeliveries; - num = ((_200B_206A_200E_206C_200F_206F_206F_206D_202C_202A_200C_200C_202E_202E_200F_206D_206E_202E_206A_206B_206A_206C_200F_206F_200C_202A_206B_206A_202C_202E_202D_200E_202B_200F_206A_206A_206D_202C_200B_202D_202E() <= 0) ? 2073064067 : 2073064076); - break; - case 4: - _202E_200D_206F_206E_200C_202B_200C_206C_206A_200B_202C_202D_206E_202C_200B_202C_206D_200B_206D_202A_200C_202C_202C_202D_202A_202C_200F_206E_206B_206F_206A_206A_200B_206A_206A_206C_206F_206A_200C_202B_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1142165099), Array.Empty<object>()); - num = ((_configuration.CustomDeliveries.DeliveryQueue.Count <= 0) ? 2073064069 : 2073064068); - break; - case 8: - deliveryPlan = _plannerService.CreatePlan(_npcIndex, _slot); - num = ((deliveryPlan == null) ? 2073064067 : 2073064065); - break; - case 7: - State = EDeliveryState.Complete; - return; - case 0: - State = EDeliveryState.Idle; - num = ((!StartNextFromQueue()) ? 2073064069 : 2073064066); - break; - case 10: - _206C_206C_200F_200C_200C_202C_206E_206E_206F_200C_206B_206E_202C_200D_202A_200B_206D_202C_202B_206F_200F_202B_202E_206C_200C_202E_202B_202B_206C_200D_206C_202A_206A_202C_200F_200B_202E_200B_206E_206E_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-948955822), new object[1] { usedDeliveries }); - num = 2073064067; - break; - case 5: - return; - case 2: - State = EDeliveryState.Complete; - return; - case 9: - num = 2073064064; - break; - case 11: - num = ((usedDeliveries != _usedDeliveriesAtPlan) ? 2073064079 : 2073064077); - break; + _logger.LogWarning("Delivery batch completed without progress (used still {Used}), not re-planning", usedDeliveries); + } + else + { + DeliveryPlan deliveryPlan = _plannerService.CreatePlan(_npcIndex, _slot); + if (deliveryPlan != null) + { + _logger.LogDebug("Allowances remain (used: {Used}), re-planning", usedDeliveries); + _usedDeliveriesAtPlan = usedDeliveries; + CurrentPlan = deliveryPlan; + PopulateTaskQueue(deliveryPlan); + return; + } } } + _logger.LogInformation("NPC deliveries complete"); + if (_configuration.CustomDeliveries.DeliveryQueue.Count > 0 && SatisfactionSupplyActions.GetRemainingAllowances() > 0) + { + State = EDeliveryState.Idle; + if (StartNextFromQueue()) + { + return; + } + } + State = EDeliveryState.Complete; } protected override void OnTaskComplete(ITask task) { - int num = ((!(task is SatisfactionSupplyTurnInTask)) ? 604199381 : 604199382); - while (true) + if (task is SatisfactionSupplyTurnInTask) { - int num2 = num; - int num3 = 604199383; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 604199382; - break; - case 1: - ResetStepRetryCounter(); - num = 604199381; - break; - case 2: - return; - } + ResetStepRetryCounter(); } } - [MethodImpl(MethodImplOptions.NoInlining)] protected override void OnRetryStep() { DeliveryPlan deliveryPlan = _plannerService.CreatePlan(_npcIndex, _slot); - int num = ((deliveryPlan != null) ? (-1778762508) : (-1778762507)); - while (true) + if (deliveryPlan == null) { - int num2 = num; - int num3 = -1778762508; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_005b; - case 1: - Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1253309975)); - return; - case 0: - _202E_200D_206F_206E_200C_202B_200C_206C_206A_200B_202C_202D_206E_202C_200B_202C_206D_200B_206D_202A_200C_202C_202C_202D_202A_202C_200F_206E_206B_206F_206A_206A_200B_206A_206A_206C_206F_206A_200C_202B_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-930319114), Array.Empty<object>()); - CurrentPlan = deliveryPlan; - PopulateTaskQueue(deliveryPlan); - return; - } - continue; - IL_005b: - num = -1778762507; + Stop("Re-plan on retry failed"); + return; } + _logger.LogInformation("Retrying delivery step with a fresh plan"); + CurrentPlan = deliveryPlan; + PopulateTaskQueue(deliveryPlan); } - [MethodImpl(MethodImplOptions.NoInlining)] public override void Stop(string label) { base.Stop(label); - int num = ((State != EDeliveryState.Idle) ? (-1047670405) : (-1047670401)); - while (true) + if (State != EDeliveryState.Idle || CurrentPlan != null) { - int num2 = num; - int num3 = -1047670402; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _logger.LogInformation("Stopping custom delivery controller: {Label}", label); + if (_artisanIpc.IsCrafting()) { - case 5: - _202E_200D_206F_206E_200C_202B_200C_206C_206A_200B_202C_202D_206E_202C_200B_202C_206D_200B_206D_202A_200C_202C_202C_202D_202A_202C_200F_206E_206B_206F_206A_206A_200B_206A_206A_206C_206F_206A_200C_202B_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(855393726), new object[1] { label }); - num = ((!_artisanIpc.IsCrafting()) ? (-1047670402) : (-1047670404)); - break; - case 1: - num = ((CurrentPlan == null) ? (-1047670406) : (-1047670405)); - break; - case 0: - _fishingController.Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1761276025)); - _gatheringController.Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1742283330)); - _routeEnqueuer.ClearDestination(); - _taskQueue.Reset(); - CurrentPlan = null; - State = EDeliveryState.Idle; - num = -1047670406; - break; - case 4: - return; - case 3: - num = -1047670401; - break; - case 2: _artisanIpc.SetStopRequest(stop: true); - num = -1047670402; - break; } + _fishingController.Stop("Delivery stop"); + _gatheringController.Stop("Delivery stop"); + _routeEnqueuer.ClearDestination(); + _taskQueue.Reset(); + CurrentPlan = null; + State = EDeliveryState.Idle; } } - [MethodImpl(MethodImplOptions.NoInlining)] private void EnqueueNavigateToNpc(int npcIndex) { - (ushort, Vector3) value; - int num = (_npcPositions.TryGetValue(npcIndex, out value) ? 1771895941 : 1771895938); - uint valueOrDefault = default(uint); - while (true) + if (!_npcPositions.TryGetValue(npcIndex, out (ushort, Vector3) value)) { - int num2 = num; - int num3 = 1771895937; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - _taskQueue.Enqueue(new DeliveryNpcApproachTask(value.Item1, value.Item2, valueOrDefault)); - return; - case 2: - num = (_routeEnqueuer.TryEnqueueToTerritory(_taskQueue, value.Item1, value.Item2) ? 1771895940 : 1771895936); - break; - case 4: - valueOrDefault = _npcDataIds.GetValueOrDefault(npcIndex); - num = ((_202C_206F_202D_206E_200D_200B_206A_200E_202B_206C_206F_202D_206B_206C_202C_206C_200C_206E_200E_200D_202D_206F_202A_206F_206A_202C_206F_206C_206B_206F_200E_200D_206D_202E_200D_202B_206D_206B_200E_206F_202E(_clientState) == value.Item1) ? 1771895940 : 1771895939); - break; - case 3: - _206C_206C_200F_200C_200C_202C_206E_206E_206F_200C_206B_206E_202C_200D_202A_200B_206D_202C_202B_206F_200F_202B_202E_206C_200C_202E_202B_202B_206C_200D_206C_202A_206A_202C_200F_200B_202E_200B_206E_206E_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-24071886), new object[1] { npcIndex }); - return; - case 1: - _206C_206C_200F_200C_200C_202C_206E_206E_206F_200C_206B_206E_202C_200D_202A_200B_206D_202C_202B_206F_200F_202B_202E_206C_200C_202E_202B_202B_206C_200D_206C_202A_206A_202C_200F_200B_202E_200B_206E_206E_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(473496271), new object[1] { value.Item1 }); - EnqueueNavigateTo(value.Item1, value.Item2); - return; - case 0: - num = 1771895938; - break; - } + _logger.LogWarning("No position found for delivery NPC index {NpcIndex}, skipping navigation", npcIndex); + return; + } + uint valueOrDefault = _npcDataIds.GetValueOrDefault(npcIndex); + if (_clientState.TerritoryType != value.Item1 && !_routeEnqueuer.TryEnqueueToTerritory(_taskQueue, value.Item1, value.Item2)) + { + _logger.LogWarning("Could not route to delivery NPC territory {TerritoryId}; falling back to normal routing", value.Item1); + EnqueueNavigateTo(value.Item1, value.Item2); + } + else + { + _taskQueue.Enqueue(new DeliveryNpcApproachTask(value.Item1, value.Item2, valueOrDefault)); } } @@ -1676,192 +805,64 @@ internal sealed class CustomDeliveryController : MiniTaskController<CustomDelive _routeEnqueuer.Enqueue(_taskQueue, territoryId, position); } - [MethodImpl(MethodImplOptions.NoInlining)] private void EnqueueTurnInSequence(DeliveryPlan plan) { EnqueueNavigateToNpc(plan.NpcIndex); _taskQueue.Enqueue(new Questionable.Controller.Steps.Common.Mount.UnmountTask()); - int num = (_npcDataIds.ContainsKey(plan.NpcIndex) ? 1164890719 : 1164890718); - while (true) + if (!_npcDataIds.ContainsKey(plan.NpcIndex)) { - int num2 = num; - int num3 = 1164890719; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 1164890718; - break; - case 0: - _taskQueue.Enqueue(new SatisfactionSupplyTurnInTask(plan.NpcIndex, plan.Slot, plan.DeliveryCount, _npcDataIds.GetValueOrDefault(plan.NpcIndex))); - _taskQueue.Enqueue(new WaitAtEnd.WaitDelay()); - return; - case 1: - _206C_206C_200F_200C_200C_202C_206E_206E_206F_200C_206B_206E_202C_200D_202A_200B_206D_202C_202B_206F_200F_202B_202E_206C_200C_202E_202B_202B_206C_200D_206C_202A_206A_202C_200F_200B_202E_200B_206E_206E_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1680845560), new object[1] { plan.NpcIndex }); - num = 1164890719; - break; - } + _logger.LogWarning("No DataId for delivery NPC index {NpcIndex}, turn-in may fail", plan.NpcIndex); } + _taskQueue.Enqueue(new SatisfactionSupplyTurnInTask(plan.NpcIndex, plan.Slot, plan.DeliveryCount, _npcDataIds.GetValueOrDefault(plan.NpcIndex))); + _taskQueue.Enqueue(new WaitAtEnd.WaitDelay()); } private static Dictionary<int, (ushort TerritoryId, Vector3 Position)> BuildNpcPositionLookup(IDataManager dataManager) { Dictionary<int, (ushort, Vector3)> dictionary = new Dictionary<int, (ushort, Vector3)>(); Dictionary<uint, int> dictionary2 = new Dictionary<uint, int>(); - using (ExcelSheet<SatisfactionNpc>.Enumerator enumerator = dataManager.GetExcelSheet<SatisfactionNpc>().GetEnumerator()) + foreach (SatisfactionNpc item in dataManager.GetExcelSheet<SatisfactionNpc>()) { - int num = 998124636; - SatisfactionNpc current = default(SatisfactionNpc); - while (true) + if (item.RowId != 0 && item.Npc.RowId != 0) { - int num2 = num; - int num3 = 998124637; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - { - int value = (int)(current.RowId - 1); - dictionary2[current.Npc.RowId] = value; - num = 998124636; - break; - } - case 4: - num = ((current.Npc.RowId == 0) ? 998124636 : 998124637); - break; - case 1: - num = (enumerator.MoveNext() ? 998124632 : 998124639); - break; - case 3: - num = 998124636; - break; - case 5: - current = enumerator.Current; - num = ((current.RowId == 0) ? 998124636 : 998124633); - break; - case 2: - goto end_IL_002e; - } - continue; - end_IL_002e: - break; + int value = (int)(item.RowId - 1); + dictionary2[item.Npc.RowId] = value; } } - using ExcelSheet<Level>.Enumerator enumerator2 = dataManager.GetExcelSheet<Level>().GetEnumerator(); - int num = -193087717; - int value2 = default(int); - Level current2 = default(Level); - while (true) + foreach (Level item2 in dataManager.GetExcelSheet<Level>()) { - int num5 = num; - int num3 = -193087714; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) + if (item2.RowId != 0 && item2.Territory.IsValid && dictionary2.TryGetValue(item2.Object.RowId, out var value2)) { - case 3: - dictionary.TryAdd(value2, ((ushort)current2.Territory.RowId, new Vector3(current2.X, current2.Y, current2.Z))); - num = -193087717; - break; - case 5: - num = (enumerator2.MoveNext() ? (-193087720) : (-193087718)); - break; - case 0: - num = -193087717; - break; - case 6: - current2 = enumerator2.Current; - num = ((current2.RowId == 0) ? (-193087717) : (-193087713)); - break; - case 1: - num = ((!current2.Territory.IsValid) ? (-193087717) : (-193087716)); - break; - case 2: - num = ((!dictionary2.TryGetValue(current2.Object.RowId, out value2)) ? (-193087717) : (-193087715)); - break; - case 4: - return dictionary; + dictionary.TryAdd(value2, ((ushort)item2.Territory.RowId, new Vector3(item2.X, item2.Y, item2.Z))); } } + return dictionary; } private static Dictionary<int, uint> BuildNpcDataIdLookup(IDataManager dataManager) { Dictionary<int, uint> dictionary = new Dictionary<int, uint>(); - using ExcelSheet<SatisfactionNpc>.Enumerator enumerator = dataManager.GetExcelSheet<SatisfactionNpc>().GetEnumerator(); - int num = -348593404; - SatisfactionNpc current = default(SatisfactionNpc); - while (true) + foreach (SatisfactionNpc item in dataManager.GetExcelSheet<SatisfactionNpc>()) { - int num2 = num; - int num3 = -348593407; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (item.RowId != 0 && item.Npc.RowId != 0) { - case 4: - num = -348593404; - break; - case 1: - dictionary[(int)(current.RowId - 1)] = current.Npc.RowId; - num = -348593404; - break; - case 5: - num = (enumerator.MoveNext() ? (-348593406) : (-348593405)); - break; - case 0: - num = ((current.Npc.RowId == 0) ? (-348593404) : (-348593408)); - break; - case 3: - current = enumerator.Current; - num = ((current.RowId == 0) ? (-348593404) : (-348593407)); - break; - case 2: - return dictionary; + dictionary[(int)(item.RowId - 1)] = item.Npc.RowId; } } + return dictionary; } private static Dictionary<int, string> BuildNpcNameLookup(IDataManager dataManager) { Dictionary<int, string> dictionary = new Dictionary<int, string>(); - using ExcelSheet<SatisfactionNpc>.Enumerator enumerator = dataManager.GetExcelSheet<SatisfactionNpc>().GetEnumerator(); - int num = -1387344735; - SatisfactionNpc current = default(SatisfactionNpc); - while (true) + foreach (SatisfactionNpc item in dataManager.GetExcelSheet<SatisfactionNpc>()) { - int num2 = num; - int num3 = -1387344734; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (item.RowId != 0 && item.Npc.RowId != 0) { - case 5: - num = ((current.Npc.RowId == 0) ? (-1387344735) : (-1387344733)); - break; - case 2: - current = enumerator.Current; - num = ((current.RowId == 0) ? (-1387344735) : (-1387344729)); - break; - case 3: - num = (enumerator.MoveNext() ? (-1387344736) : (-1387344730)); - break; - case 1: - dictionary[(int)(current.RowId - 1)] = current.Npc.Value.Singular.ToString(); - num = -1387344735; - break; - case 0: - num = -1387344735; - break; - case 4: - return dictionary; + dictionary[(int)(item.RowId - 1)] = item.Npc.Value.Singular.ToString(); } } + return dictionary; } private bool HasEnoughItems(DeliveryPlan plan) @@ -1873,109 +874,4 @@ internal sealed class CustomDeliveryController : MiniTaskController<CustomDelive { return InventoryManager.Instance()->GetInventoryItemCount(plan.ItemId, isHq: false, checkEquipped: true, checkArmory: true, (short)plan.Collectability); } - - static void _206C_206C_200F_200C_200C_202C_206E_206E_206F_200C_206B_206E_202C_200D_202A_200B_206D_202C_202B_206F_200F_202B_202E_206C_200C_202E_202B_202B_206C_200D_206C_202A_206A_202C_200F_200B_202E_200B_206E_206E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static int _202C_200C_200D_200D_200E_202A_206C_200B_206B_200F_206E_200C_200F_200C_202C_206F_206C_200B_206C_206A_202C_202E_206E_200F_206A_200B_206E_202B_206E_200C_202D_200F_206F_200D_202B_200D_202D_200E_206A_206F_202E() - { - return InventoryHelper.CountFreeInventorySlots(); - } - - static void _202E_200D_206F_206E_200C_202B_200C_206C_206A_200B_202C_202D_206E_202C_200B_202C_206D_200B_206D_202A_200C_202C_202C_202D_202A_202C_200F_206E_206B_206F_206A_206A_200B_206A_206A_206C_206F_206A_200C_202B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static SatisfactionSupplyActions.NpcState _202A_202E_202A_206B_202E_200F_206D_206B_206A_206C_200D_202A_200B_202D_202A_202A_202B_202E_206C_202C_202D_200F_200B_206A_202E_206D_202B_200D_206E_202A_202B_202E_200C_200D_202B_202A_206D_202C_200E_206D_202E(int P_0) - { - return SatisfactionSupplyActions.GetNpcState(P_0); - } - - static bool _202D_200D_202B_200E_202C_206B_202A_206C_200F_206E_206E_206D_200E_206A_202B_202D_202A_200F_202B_200B_206D_200B_200D_200B_200F_200C_200D_200C_202D_206F_206C_200D_202A_202E_206F_200F_202B_206E_200F_200D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202B_202D_206D_206B_202B_206A_200E_202C_202A_206B_200E_206A_200C_206A_206A_200F_202C_202C_206C_200D_200E_200C_206E_206E_202D_202D_200F_206C_202C_202B_202B_206F_202E_200E_202D_206E_200B_202D_200F_202C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static IPlayerCharacter _200D_206F_206F_206D_200B_202C_202C_202A_200C_200D_206D_206A_202D_202C_202A_206A_200F_206D_202C_200E_200C_200C_202D_206E_202C_202D_200D_202B_206E_202C_206E_206B_202A_206E_200D_206A_202A_200C_202D_202A_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static RowRef<ClassJob> _206D_206E_206C_202B_206F_206A_206E_200F_200D_206D_206A_206B_206E_202E_200B_206C_206E_200B_206E_200C_202E_200D_200D_206F_202A_200E_206F_200B_200C_200E_202C_206C_200D_200D_206D_202A_202A_200F_202E_206B_202E(ICharacter P_0) - { - return P_0.ClassJob; - } - - static bool _206A_200B_206F_202E_200B_206C_206F_202C_202D_202E_206F_206A_202A_202C_200F_206D_206C_200C_206A_206C_206D_202D_206C_202A_206B_200E_200D_200D_200F_200F_206C_206F_202C_202E_206E_206F_206C_206C_200E_202C_202E(EClassJob P_0) - { - return P_0.IsCrafter(); - } - - static void _206C_200C_202C_206F_200F_200F_200E_200E_206E_202C_200E_206C_206D_206C_200B_200C_200E_202D_200E_202B_202B_200C_202D_206F_200B_202D_202D_206F_206C_200E_202D_206B_200F_206B_206E_200B_206B_202A_206E_202B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogError(P_1, P_2); - } - - static List<QuestStep> _206A_206D_202E_200F_202C_200C_206A_200B_202A_202A_206E_206E_200B_200E_206D_202E_202B_200E_200B_202B_202C_206B_202C_202B_202D_206E_200B_206D_200F_206D_202D_200F_202C_206E_200E_202A_206B_202B_206C_202B_202E(GatheringRoot P_0) - { - return P_0.Steps; - } - - static ushort _200D_200C_206C_206F_206C_206C_200E_202A_200C_200E_202C_206F_200E_200E_200C_206A_202D_202A_206C_202D_206A_200C_206E_202A_200C_206D_200F_206A_206F_200E_206E_200C_202C_200D_206F_206B_200F_202A_200F_202C_202E(QuestStep P_0) - { - return P_0.TerritoryId; - } - - static List<GatheringNodeGroup> _206C_206D_206D_206B_202E_206E_200C_202C_206C_200D_206E_202E_202B_200E_206E_200F_206F_206F_202C_202C_206F_200B_206C_202D_206C_200E_206A_206F_200B_206F_202A_200D_206C_206C_202A_206F_202D_200E_206A_206B_202E(GatheringRoot P_0) - { - return P_0.Groups; - } - - static List<GatheringNode> _200D_206C_202B_202D_200E_206F_200C_202E_202B_200E_206C_202B_200F_200F_206B_206D_200C_200C_202E_206C_202D_202B_202D_202C_206C_200D_202A_206E_202B_206C_202B_206B_200D_206D_202E_202A_206A_202A_206D_202A_202E(GatheringNodeGroup P_0) - { - return P_0.Nodes; - } - - static List<GatheringLocation> _206B_206D_202A_200B_206A_206C_206E_206A_202B_202A_206D_200D_202A_202A_200E_200F_202D_206A_200B_202B_202B_200C_202D_206E_206A_200D_206A_206E_202D_202B_206B_206F_202C_206B_200B_200F_206D_206A_200B_202D_202E(GatheringNode P_0) - { - return P_0.Locations; - } - - static (Vector3, int, float) _202E_200F_202C_206E_202A_200F_206B_202C_202C_206C_206E_202D_206E_200F_202E_202B_200E_206C_202C_202E_206B_206A_206E_206F_200C_202E_200C_202C_200D_200E_206D_200B_202A_200E_206E_202A_206E_206E_202C_206F_202E(GatheringLocation P_0) - { - return GatheringMath.CalculateLandingLocation(P_0); - } - - static Vector3? _206D_202C_206D_206E_200D_202A_200B_200F_206F_202D_200D_206D_206E_202B_206A_206F_202E_206E_202B_200D_206C_206E_206E_206E_202C_202E_206C_202C_206C_202D_200C_206F_202B_200C_202A_206F_200B_200F_206F_206C_202E(QuestStep P_0) - { - return P_0.Position; - } - - static void _202D_206D_202D_200F_200C_202A_202A_202A_200E_202E_200D_200C_202C_200F_200F_202A_202A_200B_202C_200B_200F_200F_200E_206E_206D_206A_206C_206F_200D_202B_200E_206E_206E_202A_202B_202B_200E_202C_206F_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static uint _202C_206F_202D_206E_200D_200B_206A_200E_202B_206C_206F_202D_206B_206C_202C_206C_200C_206E_200E_200D_202D_206F_202A_206F_206A_202C_206F_206C_206B_206F_200E_200D_206D_202E_200D_202B_206D_206B_200E_206F_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static long _202C_202E_202E_206F_200F_202A_200B_202C_206D_202D_200E_206D_202E_200F_200C_202C_200D_202E_202B_202C_202A_206B_206D_200D_206C_206A_202B_200C_202B_206C_206C_202D_202C_206A_206D_202E_206F_206D_200E_200F_202E() - { - return Environment.TickCount64; - } - - static int _200B_206A_200E_206C_200F_206F_206F_206D_202C_202A_200C_200C_202E_202E_200F_206D_206E_202E_206A_206B_206A_206C_200F_206F_200C_202A_206B_206A_202C_202E_202D_200E_202B_200F_206A_206A_206D_202C_200B_202D_202E() - { - return SatisfactionSupplyActions.GetRemainingAllowances(); - } } diff --git a/Questionable/Questionable.Controller/DefinitionRegistry.cs b/Questionable/Questionable.Controller/DefinitionRegistry.cs index 0ed23aa..c99439f 100644 --- a/Questionable/Questionable.Controller/DefinitionRegistry.cs +++ b/Questionable/Questionable.Controller/DefinitionRegistry.cs @@ -1,12 +1,10 @@ #define RELEASE using System; -using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.IO; using System.Linq; -using System.Runtime.CompilerServices; using System.Text.Json; using System.Text.Json.Nodes; using Dalamud.Plugin; @@ -59,7 +57,6 @@ internal abstract class DefinitionRegistry<TDefinition> where TDefinition : clas return null; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Reload() { _definitions.Clear(); @@ -67,511 +64,125 @@ internal abstract class DefinitionRegistry<TDefinition> where TDefinition : clas LoadFromAssembly(); try { - LoadFromDirectory(_202E_200D_200D_206F_200C_202D_200F_206D_200F_202D_200D_202C_202D_206B_200E_200B_200E_206D_202D_206D_202A_200D_202E_200C_206D_202E_202B_206A_206A_206D_206B_206A_206F_200F_200F_200F_206B_206E_202E_206E_202E(_206D_206F_202D_200C_206F_200D_206C_206C_200F_202A_202E_206D_200F_202C_200D_202D_200D_202B_200B_200F_200F_200D_202B_202C_206C_200B_206D_206A_202C_202C_206F_206A_206A_200C_202A_206A_206D_200E_206A_200C_202E(_206E_206A_206B_206F_200F_206D_206F_206B_206B_206E_200F_200C_200E_202D_200D_206E_200C_206C_206D_206B_202A_206A_206D_202E_206D_202D_202C_200E_206F_206C_200D_206C_206A_202A_206E_206B_200C_202E_200E_200F_202E((FileSystemInfo)_200D_206A_206C_200C_202C_200E_202B_200F_202D_202C_206F_206F_200D_206C_202E_206D_206E_206B_206B_202A_206F_202E_200F_200F_206D_200B_200C_202C_200F_200F_206F_206C_200D_206E_202C_200E_200C_206D_200C_206C_202E(_pluginInterface)), ConfigDirectoryName))); + LoadFromDirectory(new DirectoryInfo(Path.Combine(_pluginInterface.ConfigDirectory.FullName, ConfigDirectoryName))); } - catch (Exception ex) + catch (Exception exception) { - _200D_206C_202C_202D_200E_202D_200C_206D_202B_200C_206E_202B_200E_202D_206A_206F_206A_202D_200B_200C_200C_200E_202A_200F_206D_200E_206E_206B_206C_200D_202C_200D_202D_206C_202A_200C_206F_202B_206B_202B_202E(_logger, ex, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1480922246), new object[1] { TypeLabel }); + _logger.LogError(exception, "Failed to load {TypeLabel} definitions from user directory (some may have been successfully loaded)", TypeLabel); } - IEnumerator<ValidationIssue> enumerator = _schemaValidator.Validate().GetEnumerator(); - try + foreach (ValidationIssue item in _schemaValidator.Validate()) { - int num = -698035048; - while (true) - { - int num2 = num; - int num3 = -698035048; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = (_202C_206B_202D_200B_202E_206B_202D_202B_202C_200F_202E_206C_202A_200C_202C_200F_202B_202A_200D_202A_206C_206C_202E_206B_200C_202D_200C_200C_202C_200D_202E_206C_202B_200C_202C_200F_200C_206B_202D_202E((IEnumerator)enumerator) ? (-698035047) : (-698035045)); - break; - case 1: - { - ValidationIssue current = enumerator.Current; - _questValidator.AddValidationIssue(current); - num = -698035048; - break; - } - case 2: - num = -698035048; - break; - case 3: - goto end_IL_008e; - } - continue; - end_IL_008e: - break; - } - } - finally - { - int num = ((enumerator == null) ? 1453964763 : 1453964760); - while (true) - { - int num5 = num; - int num3 = 1453964762; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1453964760; - break; - case 1: - goto end_IL_0128; - case 2: - _202D_206A_200B_206C_202C_200F_202B_206E_200E_202E_206C_202D_202A_206A_202D_206F_206D_206B_200F_200F_202B_202A_202B_200E_206C_206F_206D_200E_200E_200B_202B_206F_202B_202E_206F_202B_200C_202C_200C_202E_202E((IDisposable)enumerator); - num = 1453964763; - break; - } - continue; - end_IL_0128: - break; - } + _questValidator.AddValidationIssue(item); } RemoveExpiredDefinitions(); - _202C_206E_206B_202D_202B_202B_206C_202E_206B_206A_206E_202C_200B_202B_200F_200B_202B_206B_200D_200E_200C_200B_202B_202B_200F_202B_200F_202A_206E_200E_206F_200C_206D_206B_206D_200F_206D_206C_206E_202C_202E(_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1196622981), new object[2] { _definitions.Count, TypeLabel }); + _logger.LogDebug("Loaded {Count} {TypeLabel} definitions in total", _definitions.Count, TypeLabel); } - [MethodImpl(MethodImplOptions.NoInlining)] [Conditional("RELEASE")] private void LoadFromAssembly() { IReadOnlyDictionary<ushort, TDefinition> assemblyDefinitions = GetAssemblyDefinitions(); - IEnumerator<KeyValuePair<ushort, TDefinition>> enumerator = assemblyDefinitions.GetEnumerator(); - try + foreach (var (key, value) in assemblyDefinitions) { - int num = -618996398; - while (true) - { - int num2 = num; - int num3 = -618996400; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = (_202C_206B_202D_200B_202E_206B_202D_202B_202C_200F_202E_206C_202A_200C_202C_200F_202B_202A_200D_202A_206C_206C_202E_206B_200C_202D_200C_200C_202C_200D_202E_206C_202B_200C_202C_200F_200C_206B_202D_202E((IEnumerator)enumerator) ? (-618996399) : (-618996400)); - break; - case 1: - var (key, value) = (KeyValuePair<ushort, TDefinition>)(ref enumerator.Current); - _definitions[key] = value; - num = -618996398; - break; - case 3: - num = -618996398; - break; - case 0: - goto end_IL_001a; - } - continue; - end_IL_001a: - break; - } + _definitions[key] = value; } - finally - { - int num = ((enumerator == null) ? 476280246 : 476280245); - while (true) - { - int num6 = num; - int num3 = 476280247; - int num4 = num6; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - goto end_IL_00ce; - case 2: - _202D_206A_200B_206C_202C_200F_202B_206E_200E_202E_206C_202D_202A_206A_202D_206F_206D_206B_200F_200F_202B_202A_202B_200E_206C_206F_206D_200E_200E_200B_202B_206F_202B_202E_206F_202B_200C_202C_200C_202E_202E((IDisposable)enumerator); - num = 476280246; - break; - case 0: - num = 476280245; - break; - } - continue; - end_IL_00ce: - break; - } - } - _202C_206E_206B_202D_202B_202B_206C_202E_206B_206A_206E_202C_200B_202B_200F_200B_202B_206B_200D_200E_200C_200B_202B_202B_200F_202B_200F_202A_206E_200E_206F_200C_206D_206B_206D_200F_206D_206C_206E_202C_202E(_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(416518745), new object[2] { assemblyDefinitions.Count, TypeLabel }); + _logger.LogDebug("Loaded {Count} {TypeLabel} definitions from assembly", assemblyDefinitions.Count, TypeLabel); } - [MethodImpl(MethodImplOptions.NoInlining)] [Conditional("DEBUG")] private void LoadFromProjectDirectory() { - DirectoryInfo directoryInfo = _200F_206E_206C_202B_200C_200D_202A_202A_206C_202B_202B_200D_202E_200D_206D_206E_206D_206F_206C_202E_202C_202B_200D_206D_200B_202A_206D_206C_206F_206D_200B_200E_200C_202C_206C_206B_202A_200C_202C_202D_202E(_206B_202E_200E_206D_206B_206F_206D_206E_200B_202A_206D_202D_202E_206B_200E_202C_200C_200E_206D_200C_206F_206D_200D_206E_206B_200B_206C_206F_206A_202A_200C_200F_200D_200D_206A_200C_200D_200B_202A_202E_202E(_pluginInterface)); - object obj; + DirectoryInfo directoryInfo = _pluginInterface.AssemblyLocation.Directory?.Parent?.Parent; if (directoryInfo == null) { - obj = null; + return; } - else + DirectoryInfo directory = new DirectoryInfo(Path.Combine(directoryInfo.FullName, "Paths", ProjectDirectoryName)); + try { - DirectoryInfo directoryInfo2 = _206F_206E_202B_200F_202D_202D_202E_200C_206C_200E_202D_202B_206B_200C_206C_200B_206B_206E_202A_200E_200D_200E_202A_202C_202E_206D_202E_202D_202A_202E_202C_206A_202E_202E_206D_202E_202E_202C_206F_200D_202E(directoryInfo); - obj = ((directoryInfo2 != null) ? _206F_206E_202B_200F_202D_202D_202E_200C_206C_200E_202D_202B_206B_200C_206C_200B_206B_206E_202A_200E_200D_200E_202A_202C_202E_206D_202E_202D_202A_202E_202C_206A_202E_202E_206D_202E_202E_202C_206F_200D_202E(directoryInfo2) : null); + LoadFromDirectory(directory); } - DirectoryInfo directoryInfo3 = (DirectoryInfo)obj; - int num = ((directoryInfo3 != null) ? 949795038 : 949795037); - while (true) + catch (Exception exception) { - int num2 = num; - int num3 = 949795039; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_007c; - case 2: - return; - case 1: - { - DirectoryInfo directory = _202E_200D_200D_206F_200C_202D_200F_206D_200F_202D_200D_202C_202D_206B_200E_200B_200E_206D_202D_206D_202A_200D_202E_200C_206D_202E_202B_206A_206A_206D_206B_206A_206F_200F_200F_200F_206B_206E_202E_206E_202E(_206C_200F_202D_202C_202C_202A_206A_202C_200E_206F_200E_200B_202E_206A_202B_202B_200D_206C_202A_206E_200B_200F_200D_202D_202E_206E_206F_200E_202C_202D_206A_200F_200D_206A_200C_200E_200F_200F_202E_206A_202E(_206E_206A_206B_206F_200F_206D_206F_206B_206B_206E_200F_200C_200E_202D_200D_206E_200C_206C_206D_206B_202A_206A_206D_202E_206D_202D_202C_200E_206F_206C_200D_206C_206A_202A_206E_206B_200C_202E_200E_200F_202E((FileSystemInfo)directoryInfo3), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-896958366), ProjectDirectoryName)); - try - { - LoadFromDirectory(directory); - return; - } - catch (Exception ex) - { - _definitions.Clear(); - _200D_206C_202C_202D_200E_202D_200C_206D_202B_200C_206E_202B_200E_202D_206A_206F_206A_202D_200B_200C_200C_200E_202A_200F_206D_200E_206E_206B_206C_200D_202C_200D_202D_206C_202A_200C_206F_202B_206B_202B_202E(_logger, ex, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1538126235), new object[1] { TypeLabel }); - return; - } - } - } - continue; - IL_007c: - num = 949795037; + _definitions.Clear(); + _logger.LogError(exception, "Failed to load {TypeLabel} definitions from project directory", TypeLabel); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void LoadFromDirectory(DirectoryInfo directory) { - int num = (_202A_206B_200D_200C_202E_206A_206E_206A_206D_206E_200D_200F_206B_200E_206D_200C_200F_206E_200E_202B_200B_200F_200F_202C_206F_206A_200E_200E_206A_200D_202D_202D_206A_200F_206E_202D_206F_202C_206A_202E((FileSystemInfo)directory) ? 1970314603 : 1970314600); - TDefinition val = default(TDefinition); - while (true) + if (!directory.Exists) { - int num2 = num; - int num3 = 1970314601; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _logger.LogDebug("Not loading {TypeLabel} definitions from {DirectoryName} (doesn't exist)", TypeLabel, directory); + return; + } + FileInfo[] files = directory.GetFiles("*.json"); + foreach (FileInfo fileInfo in files) + { + ushort? num = ExtractIdFromName(fileInfo.Name); + if (!num.HasValue) { - case 0: - goto IL_004f; - case 1: - _202C_206E_206B_202D_202B_202B_206C_202E_206B_206A_206E_202C_200B_202B_200F_200B_202B_206B_200D_200E_200C_200B_202B_202B_200F_202B_200F_202A_206E_200E_206F_200C_206D_206B_206D_200F_206D_206C_206E_202C_202E(_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1174512965), new object[2] { TypeLabel, directory }); - return; - case 2: + continue; + } + try { - FileInfo[] array = _206C_200E_206E_206B_206D_202A_206C_202C_200B_206B_200F_200B_206B_202E_200D_202C_206E_206F_200D_202A_202B_206F_206A_200B_202E_206F_202D_200C_206E_206D_200B_200D_202C_200B_206C_206A_206E_206D_200D_200E_202E(directory, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1831198397)); - for (int num5 = 0; num5 < array.Length; num5 = (num4 | num3) + (num4 & num3)) + using FileStream utf8Json = fileInfo.OpenRead(); + JsonNode jsonNode = JsonNode.Parse(utf8Json); + if (jsonNode != null) { - FileInfo fileInfo = array[num5]; - ushort? num6 = ExtractIdFromName(_200D_206F_200D_202C_206E_202A_206B_202C_206A_200D_206F_200C_206A_200B_202B_200F_206F_202E_206A_200F_206B_202B_206E_202D_200B_200B_206B_202B_206D_206D_202A_200C_202E_202C_206B_202B_200F_206D_206D_202A_202E((FileSystemInfo)fileInfo)); - if (num6.HasValue) + _schemaValidator.Enqueue(num.Value, jsonNode); + TDefinition val = jsonNode.Deserialize<TDefinition>(); + if (val != null) { - try - { - FileStream fileStream = _206D_202B_206D_202A_202D_200F_206D_206D_202C_200F_202E_200C_206D_202D_206A_200F_202D_200E_206A_206C_202B_200B_202C_206F_202B_200E_206B_200F_206C_200C_206C_202C_202C_206E_206F_200F_202C_202A_202A_200D_202E(fileInfo); - try - { - JsonNode jsonNode = _202B_202E_200B_206F_202C_202D_202C_206C_206D_206C_200C_202E_200B_206E_206C_202E_200C_206B_206B_202E_206F_206B_200E_200C_200C_206B_206F_202E_200C_202C_200E_200C_200F_206D_202E_206A_200C_200C_206C_200C_202E((Stream)fileStream, (JsonNodeOptions?)null, default(JsonDocumentOptions)); - num = ((jsonNode != null) ? (-48815400) : (-48815395)); - while (true) - { - int num7 = num; - num3 = -48815396; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - num = -48815395; - break; - case 1: - goto end_IL_00fd; - case 4: - _schemaValidator.Enqueue(num6.Value, jsonNode); - val = jsonNode.Deserialize<TDefinition>(); - num = ((val == null) ? (-48815393) : (-48815394)); - break; - case 2: - _definitions[num6.Value] = val; - num = -48815393; - break; - case 3: - goto end_IL_00fd; - } - continue; - end_IL_00fd: - break; - } - } - finally - { - num = ((fileStream == null) ? (-392038256) : (-392038253)); - while (true) - { - int num10 = num; - num3 = -392038254; - num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -392038253; - break; - case 2: - goto end_IL_01d6; - case 1: - _202D_206A_200B_206C_202C_200F_202B_206E_200E_202E_206C_202D_202A_206A_202D_206F_206D_206B_200F_200F_202B_202A_202B_200E_206C_206F_206D_200E_200E_200B_202B_206F_202B_202E_206F_202B_200C_202C_200C_202E_202E((IDisposable)fileStream); - num = -392038256; - break; - } - continue; - end_IL_01d6: - break; - } - } - } - catch (JsonException ex) - { - _200D_206C_202C_202D_200E_202D_200C_206D_202B_200C_206E_202B_200E_202D_206A_206F_206A_202D_200B_200C_200C_200E_202A_200F_206D_200E_206E_206B_206C_200D_202C_200D_202D_206C_202A_200C_206F_202B_206B_202B_202E(_logger, (Exception)ex, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1372108018), new object[2] - { - TypeLabel, - _206E_206A_206B_206F_200F_206D_206F_206B_206B_206E_200F_200C_200E_202D_200D_206E_200C_206C_206D_206B_202A_206A_206D_202E_206D_202D_202C_200E_206F_206C_200D_206C_206A_202A_206E_206B_200C_202E_200E_200F_202E((FileSystemInfo)fileInfo) - }); - _questValidator.AddValidationIssue(new ValidationIssue - { - PathType = PathType, - Id = num6.Value.ToString(_202A_206B_200D_200C_206D_206C_200E_206D_202C_206A_206F_206A_206A_200D_206F_202A_202D_206D_202B_206E_206E_206D_202E_200B_206E_200F_202E_202D_200E_206A_200E_206E_200F_200F_206D_200F_202A_202E_206B_202C_202E()), - Location = null, - Type = EIssueType.InvalidJsonSyntax, - Severity = EIssueSeverity.Error, - Description = _206E_200B_206E_202A_200F_206A_200F_200B_206B_200F_206C_202E_200F_206F_200E_202E_200D_200C_202C_202C_200B_206A_206C_202D_202C_206F_206C_202D_200D_200B_200F_206D_200E_206C_202C_206F_206E_206E_206A_202C_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1049555621), _200D_206F_200D_202C_206E_202A_206B_202C_206A_200D_206F_200C_206A_200B_202B_200F_206F_202E_206A_200F_206B_202B_206E_202D_200B_200B_206B_202B_206D_206D_202A_200C_202E_202C_206B_202B_200F_206D_206D_202A_202E((FileSystemInfo)fileInfo), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-437343681), _202A_202D_206C_206F_202B_202C_202D_206D_200D_206A_200F_202B_202B_202C_200F_200D_206F_200C_200E_202A_206B_206A_206F_202D_200B_200B_206D_206C_200B_200C_206C_200B_200E_206B_202A_200C_202B_200C_206B_206F_202E((Exception)ex)) - }); - } - catch (Exception ex2) - { - _200D_206C_202C_202D_200E_202D_200C_206D_202B_200C_206E_202B_200E_202D_206A_206F_206A_202D_200B_200C_200C_200E_202A_200F_206D_200E_206E_206B_206C_200D_202C_200D_202D_206C_202A_200C_206F_202B_206B_202B_202E(_logger, ex2, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1347495695), new object[2] - { - TypeLabel, - _206E_206A_206B_206F_200F_206D_206F_206B_206B_206E_200F_200C_200E_202D_200D_206E_200C_206C_206D_206B_202A_206A_206D_202E_206D_202D_202C_200E_206F_206C_200D_206C_206A_202A_206E_206B_200C_202E_200E_200F_202E((FileSystemInfo)fileInfo) - }); - } + _definitions[num.Value] = val; } - int num11 = num5; - num3 = 1; - num4 = num11; } - return; } + catch (JsonException ex) + { + _logger.LogError(ex, "Unable to parse {TypeLabel} definition file {FileName}", TypeLabel, fileInfo.FullName); + _questValidator.AddValidationIssue(new ValidationIssue + { + PathType = PathType, + Id = num.Value.ToString(CultureInfo.InvariantCulture), + Location = null, + Type = EIssueType.InvalidJsonSyntax, + Severity = EIssueSeverity.Error, + Description = "JSON syntax error in " + fileInfo.Name + ": " + ex.Message + }); + } + catch (Exception exception) + { + _logger.LogError(exception, "Unable to load {TypeLabel} definition file {FileName}", TypeLabel, fileInfo.FullName); } - continue; - IL_004f: - num = 1970314600; } } - [MethodImpl(MethodImplOptions.NoInlining)] private void RemoveExpiredDefinitions() { - using List<ushort>.Enumerator enumerator = (from kvp in _definitions.Where(delegate(KeyValuePair<ushort, TDefinition> kvp) + foreach (ushort item in (from kvp in _definitions.Where(delegate(KeyValuePair<ushort, TDefinition> kvp) { DateTime? expiry = GetExpiry(kvp.Value); - int num5 = ((!expiry.HasValue) ? (-748929161) : (-748929164)); - while (true) + if (expiry.HasValue) { - int num6 = num5; - int num7 = -748929162; - int num8 = num6; - switch ((num8 | num7) - (num8 & num7)) - { - case 0: - goto IL_0058; - case 1: - return false; - case 2: - { - DateTime valueOrDefault = expiry.GetValueOrDefault(); - return ExpiryUtils.NormalizeExpiry(valueOrDefault) < DateTime.UtcNow; - } - } - continue; - IL_0058: - num5 = -748929164; + DateTime valueOrDefault = expiry.GetValueOrDefault(); + return ExpiryUtils.NormalizeExpiry(valueOrDefault) < DateTime.UtcNow; } + return false; }) - select kvp.Key).ToList().GetEnumerator(); - int num = 1782167825; - while (true) + select kvp.Key).ToList()) { - int num2 = num; - int num3 = 1782167824; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = 1782167825; - break; - case 2: - { - ushort current = enumerator.Current; - _202C_206E_206B_202D_202B_202B_206C_202E_206B_206A_206E_202C_200B_202B_200F_200B_202B_206B_200D_200E_200C_200B_202B_202B_200F_202B_200F_202A_206E_200E_206F_200C_206D_206B_206D_200F_206D_206C_206E_202C_202E(_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-767454481), new object[3] - { - TypeLabel, - current, - GetName(_definitions[current]) ?? current.ToString(_202A_206B_200D_200C_206D_206C_200E_206D_202C_206A_206F_206A_206A_200D_206F_202A_202D_206D_202B_206E_206E_206D_202E_200B_206E_200F_202E_202D_200E_206A_200E_206E_200F_200F_206D_200F_202A_202E_206B_202C_202E()) - }); - _definitions.Remove(current); - num = 1782167825; - break; - } - case 1: - num = (enumerator.MoveNext() ? 1782167826 : 1782167824); - break; - case 0: - return; - } + _logger.LogDebug("Removing expired {TypeLabel} definition {Id} '{Name}'", TypeLabel, item, GetName(_definitions[item]) ?? item.ToString(CultureInfo.InvariantCulture)); + _definitions.Remove(item); } } private static ushort? ExtractIdFromName(string fileName) { - ushort result; - int num = (ushort.TryParse(_202E_200D_200F_206D_206E_200C_206E_200B_200F_206A_206E_206F_200D_206D_206A_202B_206C_200B_202C_200B_206B_200E_206A_200E_200F_206D_202E_202A_202C_202E_200C_202C_202A_200C_200C_206F_206F_206D_200B_206E_202E(_200E_200D_200F_206D_200B_202D_200E_200D_206C_200C_206C_206A_202C_206E_202E_200B_206E_202A_206C_200D_202D_200D_200F_200E_200D_200E_206A_202E_200F_200C_206B_206A_200B_202D_206E_206F_202D_206E_202E_206A_202E(fileName), '_', 2, StringSplitOptions.None)[0], out result) ? 271957257 : 271957258); - while (true) + if (!ushort.TryParse(Path.GetFileNameWithoutExtension(fileName).Split('_', 2)[0], out var result)) { - int num2 = num; - int num3 = 271957259; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return result; - case 1: - return null; - case 0: - goto IL_006e; - } - continue; - IL_006e: - num = 271957258; + return null; } - } - - static DirectoryInfo _200D_206A_206C_200C_202C_200E_202B_200F_202D_202C_206F_206F_200D_206C_202E_206D_206E_206B_206B_202A_206F_202E_200F_200F_206D_200B_200C_202C_200F_200F_206F_206C_200D_206E_202C_200E_200C_206D_200C_206C_202E(IDalamudPluginInterface P_0) - { - return P_0.ConfigDirectory; - } - - static string _206E_206A_206B_206F_200F_206D_206F_206B_206B_206E_200F_200C_200E_202D_200D_206E_200C_206C_206D_206B_202A_206A_206D_202E_206D_202D_202C_200E_206F_206C_200D_206C_206A_202A_206E_206B_200C_202E_200E_200F_202E(FileSystemInfo P_0) - { - return P_0.FullName; - } - - static string _206D_206F_202D_200C_206F_200D_206C_206C_200F_202A_202E_206D_200F_202C_200D_202D_200D_202B_200B_200F_200F_200D_202B_202C_206C_200B_206D_206A_202C_202C_206F_206A_206A_200C_202A_206A_206D_200E_206A_200C_202E(string P_0, string P_1) - { - return Path.Combine(P_0, P_1); - } - - static DirectoryInfo _202E_200D_200D_206F_200C_202D_200F_206D_200F_202D_200D_202C_202D_206B_200E_200B_200E_206D_202D_206D_202A_200D_202E_200C_206D_202E_202B_206A_206A_206D_206B_206A_206F_200F_200F_200F_206B_206E_202E_206E_202E(string P_0) - { - return new DirectoryInfo(P_0); - } - - static void _200D_206C_202C_202D_200E_202D_200C_206D_202B_200C_206E_202B_200E_202D_206A_206F_206A_202D_200B_200C_200C_200E_202A_200F_206D_200E_206E_206B_206C_200D_202C_200D_202D_206C_202A_200C_206F_202B_206B_202B_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - - static bool _202C_206B_202D_200B_202E_206B_202D_202B_202C_200F_202E_206C_202A_200C_202C_200F_202B_202A_200D_202A_206C_206C_202E_206B_200C_202D_200C_200C_202C_200D_202E_206C_202B_200C_202C_200F_200C_206B_202D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202D_206A_200B_206C_202C_200F_202B_206E_200E_202E_206C_202D_202A_206A_202D_206F_206D_206B_200F_200F_202B_202A_202B_200E_206C_206F_206D_200E_200E_200B_202B_206F_202B_202E_206F_202B_200C_202C_200C_202E_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _202C_206E_206B_202D_202B_202B_206C_202E_206B_206A_206E_202C_200B_202B_200F_200B_202B_206B_200D_200E_200C_200B_202B_202B_200F_202B_200F_202A_206E_200E_206F_200C_206D_206B_206D_200F_206D_206C_206E_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static FileInfo _206B_202E_200E_206D_206B_206F_206D_206E_200B_202A_206D_202D_202E_206B_200E_202C_200C_200E_206D_200C_206F_206D_200D_206E_206B_200B_206C_206F_206A_202A_200C_200F_200D_200D_206A_200C_200D_200B_202A_202E_202E(IDalamudPluginInterface P_0) - { - return P_0.AssemblyLocation; - } - - static DirectoryInfo _200F_206E_206C_202B_200C_200D_202A_202A_206C_202B_202B_200D_202E_200D_206D_206E_206D_206F_206C_202E_202C_202B_200D_206D_200B_202A_206D_206C_206F_206D_200B_200E_200C_202C_206C_206B_202A_200C_202C_202D_202E(FileInfo P_0) - { - return P_0.Directory; - } - - static DirectoryInfo _206F_206E_202B_200F_202D_202D_202E_200C_206C_200E_202D_202B_206B_200C_206C_200B_206B_206E_202A_200E_200D_200E_202A_202C_202E_206D_202E_202D_202A_202E_202C_206A_202E_202E_206D_202E_202E_202C_206F_200D_202E(DirectoryInfo P_0) - { - return P_0.Parent; - } - - static string _206C_200F_202D_202C_202C_202A_206A_202C_200E_206F_200E_200B_202E_206A_202B_202B_200D_206C_202A_206E_200B_200F_200D_202D_202E_206E_206F_200E_202C_202D_206A_200F_200D_206A_200C_200E_200F_200F_202E_206A_202E(string P_0, string P_1, string P_2) - { - return Path.Combine(P_0, P_1, P_2); - } - - static bool _202A_206B_200D_200C_202E_206A_206E_206A_206D_206E_200D_200F_206B_200E_206D_200C_200F_206E_200E_202B_200B_200F_200F_202C_206F_206A_200E_200E_206A_200D_202D_202D_206A_200F_206E_202D_206F_202C_206A_202E(FileSystemInfo P_0) - { - return P_0.Exists; - } - - static FileInfo[] _206C_200E_206E_206B_206D_202A_206C_202C_200B_206B_200F_200B_206B_202E_200D_202C_206E_206F_200D_202A_202B_206F_206A_200B_202E_206F_202D_200C_206E_206D_200B_200D_202C_200B_206C_206A_206E_206D_200D_200E_202E(DirectoryInfo P_0, string P_1) - { - return P_0.GetFiles(P_1); - } - - static string _200D_206F_200D_202C_206E_202A_206B_202C_206A_200D_206F_200C_206A_200B_202B_200F_206F_202E_206A_200F_206B_202B_206E_202D_200B_200B_206B_202B_206D_206D_202A_200C_202E_202C_206B_202B_200F_206D_206D_202A_202E(FileSystemInfo P_0) - { - return P_0.Name; - } - - static FileStream _206D_202B_206D_202A_202D_200F_206D_206D_202C_200F_202E_200C_206D_202D_206A_200F_202D_200E_206A_206C_202B_200B_202C_206F_202B_200E_206B_200F_206C_200C_206C_202C_202C_206E_206F_200F_202C_202A_202A_200D_202E(FileInfo P_0) - { - return P_0.OpenRead(); - } - - static JsonNode _202B_202E_200B_206F_202C_202D_202C_206C_206D_206C_200C_202E_200B_206E_206C_202E_200C_206B_206B_202E_206F_206B_200E_200C_200C_206B_206F_202E_200C_202C_200E_200C_200F_206D_202E_206A_200C_200C_206C_200C_202E(Stream P_0, JsonNodeOptions? P_1, JsonDocumentOptions P_2) - { - return JsonNode.Parse(P_0, P_1, P_2); - } - - static CultureInfo _202A_206B_200D_200C_206D_206C_200E_206D_202C_206A_206F_206A_206A_200D_206F_202A_202D_206D_202B_206E_206E_206D_202E_200B_206E_200F_202E_202D_200E_206A_200E_206E_200F_200F_206D_200F_202A_202E_206B_202C_202E() - { - return CultureInfo.InvariantCulture; - } - - static string _202A_202D_206C_206F_202B_202C_202D_206D_200D_206A_200F_202B_202B_202C_200F_200D_206F_200C_200E_202A_206B_206A_206F_202D_200B_200B_206D_206C_200B_200C_206C_200B_200E_206B_202A_200C_202B_200C_206B_206F_202E(Exception P_0) - { - return P_0.Message; - } - - static string _206E_200B_206E_202A_200F_206A_200F_200B_206B_200F_206C_202E_200F_206F_200E_202E_200D_200C_202C_202C_200B_206A_206C_202D_202C_206F_206C_202D_200D_200B_200F_206D_200E_206C_202C_206F_206E_206E_206A_202C_202E(string P_0, string P_1, string P_2, string P_3) - { - return P_0 + P_1 + P_2 + P_3; - } - - static string _200E_200D_200F_206D_200B_202D_200E_200D_206C_200C_206C_206A_202C_206E_202E_200B_206E_202A_206C_200D_202D_200D_200F_200E_200D_200E_206A_202E_200F_200C_206B_206A_200B_202D_206E_206F_202D_206E_202E_206A_202E(string P_0) - { - return Path.GetFileNameWithoutExtension(P_0); - } - - static string[] _202E_200D_200F_206D_206E_200C_206E_200B_200F_206A_206E_206F_200D_206D_206A_202B_206C_200B_202C_200B_206B_200E_206A_200E_200F_206D_202E_202A_202C_202E_200C_202C_202A_200C_200C_206F_206F_206D_200B_206E_202E(string P_0, char P_1, int P_2, StringSplitOptions P_3) - { - return P_0.Split(P_1, P_2, P_3); + return result; } } diff --git a/Questionable/Questionable.Controller/EQuestResolutionType.cs b/Questionable/Questionable.Controller/EQuestResolutionType.cs index e86e475..195822c 100644 --- a/Questionable/Questionable.Controller/EQuestResolutionType.cs +++ b/Questionable/Questionable.Controller/EQuestResolutionType.cs @@ -4,7 +4,6 @@ internal enum EQuestResolutionType { Simulated, NextQuest, - GatheringQuest, ManualPriority, InProgressClassQuest, NewClassQuest, diff --git a/Questionable/Questionable.Controller/FateController.cs b/Questionable/Questionable.Controller/FateController.cs index e8cf4dc..bfcb5d6 100644 --- a/Questionable/Questionable.Controller/FateController.cs +++ b/Questionable/Questionable.Controller/FateController.cs @@ -1,8 +1,5 @@ using System; -using System.Collections.Generic; using System.Globalization; -using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps; @@ -46,25 +43,11 @@ internal sealed class FateController : MiniTaskController<FateController> { get { - int num = (IsRunning ? (-1577720551) : (-1577720550)); - while (true) + if (!IsRunning) { - int num2 = num; - int num3 = -1577720549; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return DateTime.UtcNow - _startTime; - case 1: - return TimeSpan.Zero; - case 0: - goto IL_005d; - } - continue; - IL_005d: - num = -1577720550; + return TimeSpan.Zero; } + return DateTime.UtcNow - _startTime; } } @@ -76,262 +59,88 @@ internal sealed class FateController : MiniTaskController<FateController> _routeEnqueuer = routeEnqueuer; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Start(FateDefinition fate, int? cycleLimit = null) { _currentFate = fate; _completedCycles = 0; _cycleLimit = cycleLimit; _startTime = DateTime.UtcNow; - _202B_200F_202C_200F_202A_206F_200B_206A_202B_200B_202D_202D_202B_200D_206B_206C_202C_200C_200B_206A_202E_206C_200F_206B_206B_206C_202A_202D_200D_200E_206A_200F_202B_202D_206D_206A_206A_200E_206F_206E_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1566011469), new object[2] - { - _200D_206B_202C_206C_206E_206F_202E_206E_200D_202C_202D_200B_200E_206F_200B_202D_200B_202D_200D_202D_200D_200D_202E_200F_206D_202D_200F_200D_206A_202C_202A_200E_206F_206D_200E_206F_202B_206A_200F_200F_202E(fate), - cycleLimit?.ToString(_206F_200E_200D_202A_200F_200B_206A_202D_200D_202D_206A_206D_206E_206C_200B_200F_200E_206C_206B_206F_200B_200F_206B_202D_202A_206F_206E_200E_200E_200D_202B_202C_206D_206F_200E_206C_202B_206A_206B_206B_202E()) ?? global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1353267636) - }); + _logger.LogInformation("Starting FATE farming: {FateName} (limit: {Limit})", fate.Name, cycleLimit?.ToString(CultureInfo.InvariantCulture) ?? "unlimited"); EnqueueFateCycle(); } - [MethodImpl(MethodImplOptions.NoInlining)] public void Update() { - int num = ((_currentFate != null) ? 799509446 : 799509451); - while (true) + if (_currentFate == null || _movementController.IsPathfinding || _movementController.IsPathRunning || _gameFunctions.IsOccupied()) { - int num2 = num; - int num3 = 799509447; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 8: - num = ((!_gameFunctions.IsOccupied()) ? 799509443 : 799509442); - break; - case 2: - _202B_200F_202C_200F_202A_206F_200B_206A_202B_200B_202D_202D_202B_200D_206B_206C_202C_200C_200B_206A_202E_206C_200F_206B_206B_206C_202A_202D_200D_200E_206A_200F_202B_202D_206D_206A_206A_200E_206F_206E_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1655536442), new object[2] { _completedCycles, _cycleLimit.Value }); - Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1011465347)); - return; - case 12: - return; - case 6: - { - int completedCycles = _completedCycles; - num3 = 1; - num4 = completedCycles; - _completedCycles = (num4 | num3) + (num4 & num3); - num = ((!_cycleLimit.HasValue) ? 799509440 : 799509453); - break; - } - case 3: - num = ((!_movementController.IsPathRunning) ? 799509455 : 799509454); - break; - case 5: - return; - case 10: - num = ((_completedCycles < _cycleLimit.Value) ? 799509440 : 799509445); - break; - case 4: - num = ((!_taskQueue.AllTasksComplete) ? 799509452 : 799509441); - break; - case 7: - EnqueueFateCycle(); - num = 799509452; - break; - case 0: - num = 799509451; - break; - case 11: - UpdateCurrentTask(); - return; - case 1: - num = (_movementController.IsPathfinding ? 799509454 : 799509444); - break; - case 9: - return; - } + return; } + if (_taskQueue.AllTasksComplete) + { + _completedCycles++; + if (_cycleLimit.HasValue && _completedCycles >= _cycleLimit.Value) + { + _logger.LogInformation("FATE cycle limit reached ({Cycles}/{Limit})", _completedCycles, _cycleLimit.Value); + Stop("Cycle limit reached"); + return; + } + EnqueueFateCycle(); + } + UpdateCurrentTask(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void EnqueueFateCycle() { - int num = ((_currentFate != null) ? (-147335237) : (-147335233)); - while (true) + if (_currentFate != null) { - int num2 = num; - int num3 = -147335238; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + _logger.LogDebug("Enqueuing FATE cycle for {FateName}", _currentFate.Name); + _routeEnqueuer.Enqueue(_taskQueue, _currentFate.TerritoryId, _currentFate.Position, 5f); + if (_currentFate.RequiredStatusId.HasValue && _currentFate.TransformNpcDataId.HasValue && _currentFate.TransformNpcPosition.HasValue && !_gameFunctions.HasStatus(_currentFate.RequiredStatusId.Value)) { - case 4: - num = -147335233; - break; - case 3: - num = (_gameFunctions.HasStatus(_202D_202B_202E_200E_206C_200F_206D_206B_200D_200E_206E_206D_206B_206C_206C_200F_206F_200B_202A_206F_206B_202D_200D_200F_206F_206B_200F_200C_206F_202C_206F_206F_200D_200E_200C_202C_200B_206F_202E_206E_202E(_currentFate).Value) ? (-147335235) : (-147335238)); - break; - case 6: - num = ((!_202A_206E_202D_200E_202D_200E_206D_202A_202C_202B_202B_202E_206B_200B_202D_206C_202C_206D_200E_206E_202C_200E_200B_206F_202E_206A_206F_206F_200C_206A_202A_200C_200E_202A_206B_200D_200C_206C_206B_200E_202E(_currentFate).HasValue) ? (-147335235) : (-147335239)); - break; - case 0: - { - _200F_202D_200C_206D_206E_206B_200D_200C_200C_206F_202D_200F_200E_206A_200E_200B_206E_206C_206D_200B_200D_206A_206B_200B_206E_202E_202C_200C_200D_206B_206D_206C_206E_202A_200E_200E_200F_200F_202E_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(534849822), new object[1] { _202D_202B_202E_200E_206C_200F_206D_206B_200D_200E_206E_206D_206B_206C_206C_200F_206F_200B_202A_206F_206B_202D_200D_200F_206F_206B_200F_200C_206F_202C_206F_206F_200D_200E_200C_202C_200B_206F_202E_206E_202E(_currentFate).Value }); - _taskQueue.Enqueue(new MoveTask(_206F_206F_200C_206C_200E_206E_202B_202B_206D_200D_206D_202B_206D_206D_206A_202B_206D_206D_206E_202A_206F_206C_202D_206B_206D_202A_206F_200F_206F_206B_200E_206D_202A_202B_202A_206F_202A_202B_200E_200F_202E(_currentFate), _202A_206E_202D_200E_202D_200E_206D_202A_202C_202B_202B_202E_206B_200B_202D_206C_202C_206D_200E_206E_202C_200E_200B_206F_202E_206A_206F_206F_200C_206A_202A_200C_200E_202A_206B_200D_200C_206C_206B_200E_202E(_currentFate).Value, null, MountRequired: false, DismountRequired: false, 3f)); + _logger.LogDebug("Player missing required status {StatusId}, enqueuing transform", _currentFate.RequiredStatusId.Value); + _taskQueue.Enqueue(new MoveTask(_currentFate.TerritoryId, _currentFate.TransformNpcPosition.Value, null, MountRequired: false, DismountRequired: false, 3f)); _taskQueue.Enqueue(new Mount.UnmountTask()); TaskQueue taskQueue = _taskQueue; - uint value = _202A_200C_202E_202B_206C_206A_202E_206C_206D_202C_200E_200D_206D_206C_200C_200D_200B_200C_200E_200D_206C_206F_200E_206C_200F_206F_206E_206B_202E_206E_200D_206B_206F_206C_206D_206F_206A_202D_206A_200F_202E(_currentFate).Value; - EStatus? completionStatusId = _202D_202B_202E_200E_206C_200F_206D_206B_200D_200E_206E_206D_206B_206C_206C_200F_206F_200B_202A_206F_206B_202D_200D_200F_206F_206B_200F_200C_206F_202C_206F_206F_200D_200E_200C_202C_200B_206F_202E_206E_202E(_currentFate); - taskQueue.Enqueue(new Interact.Task(value, null, EInteractionType.Interact, SkipMarkerCheck: true, null, null, null, null, completionStatusId)); + uint value = _currentFate.TransformNpcDataId.Value; + EStatus? requiredStatusId = _currentFate.RequiredStatusId; + taskQueue.Enqueue(new Interact.Task(value, null, EInteractionType.Interact, SkipMarkerCheck: true, null, null, null, null, requiredStatusId)); _taskQueue.Enqueue(new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(2L))); - _taskQueue.Enqueue(new MoveTask(_206F_206F_200C_206C_200E_206E_202B_202B_206D_200D_206D_202B_206D_206D_206A_202B_206D_206D_206E_202A_206F_206C_202D_206B_206D_202A_206F_200F_206F_206B_200E_206D_202A_202B_202A_206F_202A_202B_200E_200F_202E(_currentFate), _206B_200F_200F_202B_206B_206C_200C_206A_206A_202D_202A_202B_206A_206F_202D_200D_200D_206B_202D_202B_202C_200F_200F_206A_202C_202D_206B_202C_206C_206C_202E_202E_206A_202E_202D_200F_200E_206A_200F_206D_202E(_currentFate), null, MountRequired: false, DismountRequired: false, 5f)); - num = -147335235; - break; - } - case 1: - _200F_202D_200C_206D_206E_206B_200D_200C_200C_206F_202D_200F_200E_206A_200E_200B_206E_206C_206D_200B_200D_206A_206B_200B_206E_202E_202C_200C_200D_206B_206D_206C_206E_202A_200E_200E_200F_200F_202E_200F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-371117818), new object[1] { _200D_206B_202C_206C_206E_206F_202E_206E_200D_202C_202D_200B_200E_206F_200B_202D_200B_202D_200D_202D_200D_200D_202E_200F_206D_202D_200F_200D_206A_202C_202A_200E_206F_206D_200E_206F_202B_206A_200F_200F_202E(_currentFate) }); - _routeEnqueuer.Enqueue(_taskQueue, _206F_206F_200C_206C_200E_206E_202B_202B_206D_200D_206D_202B_206D_206D_206A_202B_206D_206D_206E_202A_206F_206C_202D_206B_206D_202A_206F_200F_206F_206B_200E_206D_202A_202B_202A_206F_202A_202B_200E_200F_202E(_currentFate), _206B_200F_200F_202B_206B_206C_200C_206A_206A_202D_202A_202B_206A_206F_202D_200D_200D_206B_202D_202B_202C_200F_200F_206A_202C_202D_206B_202C_206C_206C_202E_202E_206A_202E_202D_200F_200E_206A_200F_206D_202E(_currentFate), 5f); - num = ((!_202D_202B_202E_200E_206C_200F_206D_206B_200D_200E_206E_206D_206B_206C_206C_200F_206F_200B_202A_206F_206B_202D_200D_200F_206F_206B_200F_200C_206F_202C_206F_206F_200D_200E_200C_202C_200B_206F_202E_206E_202E(_currentFate).HasValue) ? (-147335235) : (-147335240)); - break; - case 2: - num = ((!_202A_200C_202E_202B_206C_206A_202E_206C_206D_202C_200E_200D_206D_206C_200C_200D_200B_200C_200E_200D_206C_206F_200E_206C_200F_206F_206E_206B_202E_206E_200D_206B_206F_206C_206D_206F_206A_202D_206A_200F_202E(_currentFate).HasValue) ? (-147335235) : (-147335236)); - break; - case 7: - _taskQueue.Enqueue(new Mount.UnmountTask()); - _taskQueue.Enqueue(new FateFarming.WaitForFateTargets(_202C_200D_200B_206B_206C_200F_206E_202D_206F_206A_206D_202C_206D_202A_202C_202D_200E_202B_202D_202A_202D_202B_200E_200F_202A_206D_206D_202D_206A_206E_200B_202A_206B_206A_206E_206B_206B_202A_206E_206A_202E(_currentFate))); - _taskQueue.Enqueue(new FateFarming.SyncFateLevel()); - _taskQueue.Enqueue(new FateFarming.FateActionLoop(_202C_200D_200B_206B_206C_200F_206E_202D_206F_206A_206D_202C_206D_202A_202C_202D_200E_202B_202D_202A_202D_202B_200E_200F_202A_206D_206D_202D_206A_206E_200B_202A_206B_206A_206E_206B_206B_202A_206E_206A_202E(_currentFate), _202D_202B_202E_200E_206C_200F_206D_206B_200D_200E_206E_206D_206B_206C_206C_200F_206F_200B_202A_206F_206B_202D_200D_200F_206F_206B_200F_200C_206F_202C_206F_206F_200D_200E_200C_202C_200B_206F_202E_206E_202E(_currentFate))); - _taskQueue.Enqueue(new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(3L))); - return; - case 5: - return; + _taskQueue.Enqueue(new MoveTask(_currentFate.TerritoryId, _currentFate.Position, null, MountRequired: false, DismountRequired: false, 5f)); } + _taskQueue.Enqueue(new Mount.UnmountTask()); + _taskQueue.Enqueue(new FateFarming.WaitForFateTargets(_currentFate.Targets)); + _taskQueue.Enqueue(new FateFarming.SyncFateLevel()); + _taskQueue.Enqueue(new FateFarming.FateActionLoop(_currentFate.Targets, _currentFate.RequiredStatusId)); + _taskQueue.Enqueue(new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(3L))); } } - [MethodImpl(MethodImplOptions.NoInlining)] public void Replan() { - int num = ((_currentFate != null) ? 1044869375 : 1044869372); - while (true) + if (_currentFate != null) { - int num2 = num; - int num3 = 1044869374; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - _202B_200F_202C_200F_202A_206F_200B_206A_202B_200B_202D_202D_202B_200D_206B_206C_202C_200C_200B_206A_202E_206C_200F_206B_206B_206C_202A_202D_200D_200E_206A_200F_202B_202D_206D_206A_206A_200E_206F_206E_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(522631181), new object[1] { _200D_206B_202C_206C_206E_206F_202E_206E_200D_202C_202D_200B_200E_206F_200B_202D_200B_202D_200D_202D_200D_200D_202E_200F_206D_202D_200F_200D_206A_202C_202A_200E_206F_206D_200E_206F_202B_206A_200F_200F_202E(_currentFate) }); - _taskQueue.Reset(); - EnqueueFateCycle(); - return; - case 2: - return; - case 0: - goto IL_0082; - } - continue; - IL_0082: - num = 1044869372; + _logger.LogInformation("Re-planning FATE cycle for {FateName}", _currentFate.Name); + _taskQueue.Reset(); + EnqueueFateCycle(); } } - [MethodImpl(MethodImplOptions.NoInlining)] public override void Stop(string label) { base.Stop(label); - int num = ((_currentFate == null) ? 1034562538 : 1034562541); - while (true) + if (_currentFate != null) { - int num2 = num; - int num3 = 1034562539; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _logger.LogInformation("Stopping FATE farming: {Label} (completed {Cycles} cycles)", label, _completedCycles); + if (_currentFate.StopAction.HasValue && _currentFate.RequiredStatusId.HasValue && _gameFunctions.HasStatus(_currentFate.RequiredStatusId.Value)) { - case 2: - _202B_200F_202C_200F_202A_206F_200B_206A_202B_200B_202D_202D_202B_200D_206B_206C_202C_200C_200B_206A_202E_206C_200F_206B_206B_206C_202A_202D_200D_200E_206A_200F_202B_202D_206D_206A_206A_200E_206F_206E_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-757113622), new object[1] { _206B_200F_206B_202A_206A_202B_206C_206F_206C_202E_202A_200C_206F_206F_202C_206C_206D_206E_206B_206B_206B_200F_200D_206A_202E_202B_202C_206B_206B_206D_206A_206D_200E_202C_202E_206C_206C_202E_200D_200D_202E(_currentFate).Value }); - _gameFunctions.UseAction(_206B_200F_206B_202A_206A_202B_206C_206F_206C_202E_202A_200C_206F_206F_202C_206C_206D_206E_206B_206B_206B_200F_200D_206A_202E_202B_202C_206B_206B_206D_206A_206D_200E_202C_202E_206C_206C_202E_200D_200D_202E(_currentFate).Value); - num = 1034562543; - break; - case 0: - num = ((!_gameFunctions.HasStatus(_202D_202B_202E_200E_206C_200F_206D_206B_200D_200E_206E_206D_206B_206C_206C_200F_206F_200B_202A_206F_206B_202D_200D_200F_206F_206B_200F_200C_206F_202C_206F_206F_200D_200E_200C_202C_200B_206F_202E_206E_202E(_currentFate).Value)) ? 1034562543 : 1034562537); - break; - case 5: - num = ((!_202D_202B_202E_200E_206C_200F_206D_206B_200D_200E_206E_206D_206B_206C_206C_200F_206F_200B_202A_206F_206B_202D_200D_200F_206F_206B_200F_200C_206F_202C_206F_206F_200D_200E_200C_202C_200B_206F_202E_206E_202E(_currentFate).HasValue) ? 1034562543 : 1034562539); - break; - case 6: - _202B_200F_202C_200F_202A_206F_200B_206A_202B_200B_202D_202D_202B_200D_206B_206C_202C_200C_200B_206A_202E_206C_200F_206B_206B_206C_202A_202D_200D_200E_206A_200F_202B_202D_206D_206A_206A_200E_206F_206E_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1276129984), new object[2] { label, _completedCycles }); - num = ((!_206B_200F_206B_202A_206A_202B_206C_206F_206C_202E_202A_200C_206F_206F_202C_206C_206D_206E_206B_206B_206B_200F_200D_206A_202E_202B_202C_206B_206B_206D_206A_206D_200E_202C_202E_206C_206C_202E_200D_200D_202E(_currentFate).HasValue) ? 1034562543 : 1034562542); - break; - case 4: - _routeEnqueuer.ClearDestination(); - _currentFate = null; - _completedCycles = 0; - _cycleLimit = null; - _taskQueue.Reset(); - num = 1034562538; - break; - case 1: - return; - case 3: - num = 1034562541; - break; + _logger.LogInformation("Using stop action {Action} to remove transformation", _currentFate.StopAction.Value); + _gameFunctions.UseAction(_currentFate.StopAction.Value); } + _routeEnqueuer.ClearDestination(); + _currentFate = null; + _completedCycles = 0; + _cycleLimit = null; + _taskQueue.Reset(); } } - - static string _200D_206B_202C_206C_206E_206F_202E_206E_200D_202C_202D_200B_200E_206F_200B_202D_200B_202D_200D_202D_200D_200D_202E_200F_206D_202D_200F_200D_206A_202C_202A_200E_206F_206D_200E_206F_202B_206A_200F_200F_202E(FateDefinition P_0) - { - return P_0.Name; - } - - static CultureInfo _206F_200E_200D_202A_200F_200B_206A_202D_200D_202D_206A_206D_206E_206C_200B_200F_200E_206C_206B_206F_200B_200F_206B_202D_202A_206F_206E_200E_200E_200D_202B_202C_206D_206F_200E_206C_202B_206A_206B_206B_202E() - { - return CultureInfo.InvariantCulture; - } - - static void _202B_200F_202C_200F_202A_206F_200B_206A_202B_200B_202D_202D_202B_200D_206B_206C_202C_200C_200B_206A_202E_206C_200F_206B_206B_206C_202A_202D_200D_200E_206A_200F_202B_202D_206D_206A_206A_200E_206F_206E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static void _200F_202D_200C_206D_206E_206B_200D_200C_200C_206F_202D_200F_200E_206A_200E_200B_206E_206C_206D_200B_200D_206A_206B_200B_206E_202E_202C_200C_200D_206B_206D_206C_206E_202A_200E_200E_200F_200F_202E_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static ushort _206F_206F_200C_206C_200E_206E_202B_202B_206D_200D_206D_202B_206D_206D_206A_202B_206D_206D_206E_202A_206F_206C_202D_206B_206D_202A_206F_200F_206F_206B_200E_206D_202A_202B_202A_206F_202A_202B_200E_200F_202E(FateDefinition P_0) - { - return P_0.TerritoryId; - } - - static Vector3 _206B_200F_200F_202B_206B_206C_200C_206A_206A_202D_202A_202B_206A_206F_202D_200D_200D_206B_202D_202B_202C_200F_200F_206A_202C_202D_206B_202C_206C_206C_202E_202E_206A_202E_202D_200F_200E_206A_200F_206D_202E(FateDefinition P_0) - { - return P_0.Position; - } - - static EStatus? _202D_202B_202E_200E_206C_200F_206D_206B_200D_200E_206E_206D_206B_206C_206C_200F_206F_200B_202A_206F_206B_202D_200D_200F_206F_206B_200F_200C_206F_202C_206F_206F_200D_200E_200C_202C_200B_206F_202E_206E_202E(FateDefinition P_0) - { - return P_0.RequiredStatusId; - } - - static uint? _202A_200C_202E_202B_206C_206A_202E_206C_206D_202C_200E_200D_206D_206C_200C_200D_200B_200C_200E_200D_206C_206F_200E_206C_200F_206F_206E_206B_202E_206E_200D_206B_206F_206C_206D_206F_206A_202D_206A_200F_202E(FateDefinition P_0) - { - return P_0.TransformNpcDataId; - } - - static Vector3? _202A_206E_202D_200E_202D_200E_206D_202A_202C_202B_202B_202E_206B_200B_202D_206C_202C_206D_200E_206E_202C_200E_200B_206F_202E_206A_206F_206F_200C_206A_202A_200C_200E_202A_206B_200D_200C_206C_206B_200E_202E(FateDefinition P_0) - { - return P_0.TransformNpcPosition; - } - - static List<FateActionTarget> _202C_200D_200B_206B_206C_200F_206E_202D_206F_206A_206D_202C_206D_202A_202C_202D_200E_202B_202D_202A_202D_202B_200E_200F_202A_206D_206D_202D_206A_206E_200B_202A_206B_206A_206E_206B_206B_202A_206E_206A_202E(FateDefinition P_0) - { - return P_0.Targets; - } - - static EAction? _206B_200F_206B_202A_206A_202B_206C_206F_206C_202E_202A_200C_206F_206F_202C_206C_206D_206E_206B_206B_206B_200F_200D_206A_202E_202B_202C_206B_206B_206D_206A_206D_200E_202C_202E_206C_206C_202E_200D_200D_202E(FateDefinition P_0) - { - return P_0.StopAction; - } } diff --git a/Questionable/Questionable.Controller/FateDefinitionRegistry.cs b/Questionable/Questionable.Controller/FateDefinitionRegistry.cs index 0787348..278f50c 100644 --- a/Questionable/Questionable.Controller/FateDefinitionRegistry.cs +++ b/Questionable/Questionable.Controller/FateDefinitionRegistry.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; using Dalamud.Plugin; using Microsoft.Extensions.Logging; using Questionable.FatePaths; @@ -12,32 +11,11 @@ namespace Questionable.Controller; internal sealed class FateDefinitionRegistry : DefinitionRegistry<FateDefinition> { - protected override string TypeLabel - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(70009244); - } - } + protected override string TypeLabel => "FATE"; - protected override string ConfigDirectoryName - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(223633553); - } - } + protected override string ConfigDirectoryName => "FateDefinitions"; - protected override string ProjectDirectoryName - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1573744777); - } - } + protected override string ProjectDirectoryName => "FatePaths"; protected override EPathType PathType => EPathType.Fate; @@ -48,31 +26,16 @@ internal sealed class FateDefinitionRegistry : DefinitionRegistry<FateDefinition protected override IReadOnlyDictionary<ushort, FateDefinition> GetAssemblyDefinitions() { - return _206E_200D_202D_200F_206F_202C_202C_202E_200E_202B_202C_200F_206C_206F_206F_206A_206F_206D_206F_206D_200B_202C_206B_206F_206F_206C_202E_202C_200F_206B_202B_202C_206F_206B_200F_200D_206A_202D_202E_206D_202E(); + return AssemblyFateDefinitionLoader.GetDefinitions(); } protected override DateTime? GetExpiry(FateDefinition definition) { - return _206A_202B_200B_202E_206A_206B_206F_206D_202D_202A_202E_202B_200B_206D_206D_206B_206C_200E_206B_202E_202A_206E_206A_200C_202D_200E_200C_202B_202D_202B_202C_202B_200C_202A_202E_200B_202D_202C_200D_202C_202E(definition); + return definition.EventExpiry; } protected override string? GetName(FateDefinition definition) { - return _206D_200D_206C_202B_202C_206C_206B_202B_200D_206F_206E_202D_206E_200F_206A_206B_200D_200E_200D_200C_206F_206A_200F_200F_202C_206A_206F_200D_202D_206F_206A_200C_206E_202D_206E_200E_200D_200F_206E_202C_202E(definition); - } - - static IReadOnlyDictionary<ushort, FateDefinition> _206E_200D_202D_200F_206F_202C_202C_202E_200E_202B_202C_200F_206C_206F_206F_206A_206F_206D_206F_206D_200B_202C_206B_206F_206F_206C_202E_202C_200F_206B_202B_202C_206F_206B_200F_200D_206A_202D_202E_206D_202E() - { - return AssemblyFateDefinitionLoader.GetDefinitions(); - } - - static DateTime? _206A_202B_200B_202E_206A_206B_206F_206D_202D_202A_202E_202B_200B_206D_206D_206B_206C_200E_206B_202E_202A_206E_206A_200C_202D_200E_200C_202B_202D_202B_202C_202B_200C_202A_202E_200B_202D_202C_200D_202C_202E(FateDefinition P_0) - { - return P_0.EventExpiry; - } - - static string _206D_200D_206C_202B_202C_206C_206B_202B_200D_206F_206E_202D_206E_200F_206A_206B_200D_200E_200D_200C_206F_206A_200F_200F_202C_206A_206F_200D_202D_206F_206A_200C_206E_202D_206E_200E_200D_200F_206E_202C_202E(FateDefinition P_0) - { - return P_0.Name; + return definition.Name; } } diff --git a/Questionable/Questionable.Controller/FishingController.cs b/Questionable/Questionable.Controller/FishingController.cs index 48525d6..23c10d6 100644 --- a/Questionable/Questionable.Controller/FishingController.cs +++ b/Questionable/Questionable.Controller/FishingController.cs @@ -1,11 +1,7 @@ using System; -using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.Character; @@ -22,142 +18,7 @@ namespace Questionable.Controller; internal sealed class FishingController : MiniTaskController<FishingController> { - public sealed record FishingRequest(uint ItemId, int Quantity, ushort Collectability) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202A_200B_206F_202C_206E_206F_206E_202B_206A_200F_200D_206F_202A_200C_200C_206B_202A_206B_206B_202A_206A_206C_200D_206A_206C_202E_200F_202B_202D_202C_206D_202C_200C_200F_206D_202C_202C_200E_202B_202D_202E(typeof(FishingRequest).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200C_206F_200E_200F_202B_200D_200E_206F_206F_202B_206C_200C_202C_200B_202B_200D_200B_200F_206E_206F_202A_200C_202C_206E_200B_200C_206E_206B_202D_206E_200D_200E_202E_206F_200F_206C_206E_206A_200F_206E_202E(); - _200B_206F_202D_200E_202C_202A_200F_202D_200D_206F_206A_200E_200C_202C_206F_200C_202B_200E_200C_200D_202C_202E_202A_202B_202B_200C_202B_202D_200D_200E_206E_206F_200B_202C_206C_206C_206F_206F_206D_206B_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-149753861)); - _200B_206F_202D_200E_202C_202A_200F_202D_200D_206F_206A_200E_200C_202C_206F_200C_202B_200E_200C_200D_202C_202E_202A_202B_202B_200C_202B_202D_200D_200E_206E_206F_200B_202C_206C_206C_206F_206F_206D_206B_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? (-649209154) : (-649209155)); - while (true) - { - int num2 = num; - int num3 = -649209156; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -649209155; - break; - case 1: - _200C_206B_202B_206F_202D_206B_206E_200F_206B_200E_202A_206E_206E_202C_200E_200E_202B_206E_202E_200D_202B_200B_202D_206F_206E_200C_200C_206D_200B_206E_200B_200C_200D_206C_202B_200E_200E_202E_200F_206C_202E(stringBuilder, ' '); - num = -649209154; - break; - case 2: - _200C_206B_202B_206F_202D_206B_206E_200F_206B_200E_202A_206E_206E_202C_200E_200E_202B_206E_202E_200D_202B_200B_202D_206F_206E_200C_200C_206D_200B_206E_200B_200C_200D_206C_202B_200E_200E_202E_200F_206C_202E(stringBuilder, '}'); - return _200B_200E_200E_200C_206C_200B_206B_206F_202B_200C_200C_206B_200F_200C_200D_200B_200B_202D_206C_202D_200D_200E_200D_200E_206F_206A_206F_202C_202A_206A_206E_206E_206B_206A_206A_206B_202C_200F_206C_200C_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202B_202C_200F_200F_206D_206C_202C_202A_202E_206E_202C_200F_202B_206F_206E_206B_206E_202B_200E_200B_202A_206C_200E_202B_202E_200C_202A_206D_200C_202E_200E_200F_200C_200F_200E_202B_206A_202E_202B_206B_202E(); - _200B_206F_202D_200E_202C_202A_200F_202D_200D_206F_206A_200E_200C_202C_206F_200C_202B_200E_200C_200D_202C_202E_202A_202B_202B_200C_202B_202D_200D_200E_206E_206F_200B_202C_206C_206C_206F_206F_206D_206B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1176260912)); - _200B_206F_202D_200E_202C_202A_200F_202D_200D_206F_206A_200E_200C_202C_206F_200C_202B_200E_200C_200D_202C_202E_202A_202B_202B_200C_202B_202D_200D_200E_206E_206F_200B_202C_206C_206C_206F_206F_206D_206B_202E(builder, ItemId.ToString()); - _200B_206F_202D_200E_202C_202A_200F_202D_200D_206F_206A_200E_200C_202C_206F_200C_202B_200E_200C_200D_202C_202E_202A_202B_202B_200C_202B_202D_200D_200E_206E_206F_200B_202C_206C_206C_206F_206F_206D_206B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-563538637)); - _200B_206F_202D_200E_202C_202A_200F_202D_200D_206F_206A_200E_200C_202C_206F_200C_202B_200E_200C_200D_202C_202E_202A_202B_202B_200C_202B_202D_200D_200E_206E_206F_200B_202C_206C_206C_206F_206F_206D_206B_202E(builder, Quantity.ToString()); - _200B_206F_202D_200E_202C_202A_200F_202D_200D_206F_206A_200E_200C_202C_206F_200C_202B_200E_200C_200D_202C_202E_202A_202B_202B_200C_202B_202D_200D_200E_206E_206F_200B_202C_206C_206C_206F_206F_206D_206B_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1025003851)); - _200B_206F_202D_200E_202C_202A_200F_202D_200D_206F_206A_200E_200C_202C_206F_200C_202B_200E_200C_200D_202C_202E_202A_202B_202B_200C_202B_202D_200D_200E_206E_206F_200B_202C_206C_206C_206F_206F_206D_206B_202E(builder, Collectability.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(FishingRequest? other) - { - int num = (((object)this == other) ? 677274432 : 677274436); - while (true) - { - int num2 = num; - int num3 = 677274434; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 677274436; - break; - case 4: - num = ((!_200C_200C_202C_206E_200D_202B_200B_202E_202B_200F_206F_200B_202D_202B_200B_202E_202A_200B_200B_206E_200B_206A_206B_206D_206B_202A_200C_206F_202A_206E_206F_202E_206A_206E_202E_206D_200F_200B_202D_202A_202E(EqualityContract, other.EqualityContract)) ? 677274435 : 677274437); - break; - case 3: - num = ((!EqualityComparer<int>.Default.Equals(Quantity, other.Quantity)) ? 677274435 : 677274439); - break; - case 5: - return EqualityComparer<ushort>.Default.Equals(Collectability, other.Collectability); - case 7: - num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? 677274435 : 677274433); - break; - case 1: - return false; - case 6: - num = (((object)other == null) ? 677274435 : 677274438); - break; - case 2: - return true; - } - } - } - - bool IEquatable<FishingRequest>.Equals(FishingRequest? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202A_200B_206F_202C_206E_206F_206E_202B_206A_200F_200D_206F_202A_200C_200C_206B_202A_206B_206B_202A_206A_206C_200D_206A_206C_202E_200F_202B_202D_202C_206D_202C_200C_200F_206D_202C_202C_200E_202B_202D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200C_206F_200E_200F_202B_200D_200E_206F_206F_202B_206C_200C_202C_200B_202B_200D_200B_200F_206E_206F_202A_200C_202C_206E_200B_200C_206E_206B_202D_206E_200D_200E_202E_206F_200F_206C_206E_206A_200F_206E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200B_206F_202D_200E_202C_202A_200F_202D_200D_206F_206A_200E_200C_202C_206F_200C_202B_200E_200C_200D_202C_202E_202A_202B_202B_200C_202B_202D_200D_200E_206E_206F_200B_202C_206C_206C_206F_206F_206D_206B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200C_206B_202B_206F_202D_206B_206E_200F_206B_200E_202A_206E_206E_202C_200E_200E_202B_206E_202E_200D_202B_200B_202D_206F_206E_200C_200C_206D_200B_206E_200B_200C_200D_206C_202B_200E_200E_202E_200F_206C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200B_200E_200E_200C_206C_200B_206B_206F_202B_200C_200C_206B_200F_200C_200D_200B_200B_202D_206C_202D_200D_200E_200D_200E_206F_206A_206F_202C_202A_206A_206E_206E_206B_206A_206A_206B_202C_200F_206C_200C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202B_202C_200F_200F_206D_206C_202C_202A_202E_206E_202C_200F_202B_206F_206E_206B_206E_202B_200E_200B_202A_206C_200E_202B_202E_200C_202A_206D_200C_202E_200E_200F_200C_200F_200E_202B_206A_202E_202B_206B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _200C_200C_202C_206E_200D_202B_200B_202E_202B_200F_206F_200B_202D_202B_200B_202E_202A_200B_200B_206E_200B_206A_206B_206D_206B_202A_200C_206F_202A_206E_206F_202E_206A_206E_202E_206D_200F_200B_202D_202A_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } + public sealed record FishingRequest(uint ItemId, int Quantity, ushort Collectability); public enum EFishingState { @@ -211,25 +72,11 @@ internal sealed class FishingController : MiniTaskController<FishingController> { get { - int num = ((State == EFishingState.Idle) ? (-112078876) : (-112078873)); - while (true) + if (State != EFishingState.Idle) { - int num2 = num; - int num3 = -112078874; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0046; - case 2: - return false; - case 1: - return State != EFishingState.Complete; - } - continue; - IL_0046: - num = -112078873; + return State != EFishingState.Complete; } + return false; } } @@ -249,427 +96,216 @@ internal sealed class FishingController : MiniTaskController<FishingController> _condition = condition; } - [MethodImpl(MethodImplOptions.NoInlining)] public bool Start(FishingRequest request) { - int num = ((State == EFishingState.Idle) ? (-974820956) : (-974820954)); - while (true) + if (State != EFishingState.Idle) { - int num2 = num; - int num3 = -974820958; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - _200B_206E_200F_206F_202D_200B_202B_200B_202E_202D_206D_202E_206C_206F_206C_200E_200F_202E_206C_206A_202A_206B_202D_206E_202E_206C_200D_200F_202B_200B_200C_200B_206F_202C_200F_202A_206F_202C_206C_202B_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1404409549), Array.Empty<object>()); - return false; - case 6: - num = (_autoHookIpc.IsAvailable() ? (-974820957) : (-974820959)); - break; - case 5: - State = EFishingState.Navigating; - return true; - case 0: - _currentRequest = null; - return false; - case 2: - num = -974820954; - break; - case 1: - _currentRequest = request; - _actionThrottle = 0L; - _baitReady = false; - _taskQueue.Reset(); - num = (TryEnqueueApproach(request) ? (-974820953) : (-974820958)); - break; - case 4: - _200F_206C_202B_206E_206B_206F_202C_200E_202D_200C_206E_200E_206A_202C_206F_202C_200F_202B_202C_202C_200F_202A_202E_206A_206E_202B_200D_206E_206B_202C_200D_202D_200E_206B_206D_202E_202A_206C_206E_202C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1205637689), new object[1] { State }); - return false; - } + _logger.LogWarning("Cannot start fishing - already in state {State}", State); + return false; } + if (!_autoHookIpc.IsAvailable()) + { + _logger.LogError("AutoHook is not available, cannot fish"); + return false; + } + _currentRequest = request; + _actionThrottle = 0L; + _baitReady = false; + _taskQueue.Reset(); + if (!TryEnqueueApproach(request)) + { + _currentRequest = null; + return false; + } + State = EFishingState.Navigating; + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe bool TryEnqueueApproach(FishingRequest request) { - FishingSpotInfo? spot; - int num = (_fishingData.TryGetFishingSpot(request.ItemId, out spot) ? (-407149571) : (-407149573)); - FishingSpotInfo value = default(FishingSpotInfo); - Vector3 vector = default(Vector3); - while (true) + if (!_fishingData.TryGetFishingSpot(request.ItemId, out var spot)) { - int num2 = num; - int num3 = -407149570; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _200B_206E_200F_206F_202D_200B_202B_200B_202E_202D_206D_202E_206C_206F_206C_200E_200F_202E_206C_206A_202A_206B_202D_206E_202E_206C_200D_200F_202B_200B_200C_200B_206F_202C_200F_202A_206F_202C_206C_202B_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1931468190), Array.Empty<object>()); - return false; - case 4: - num = (EnqueueLurePurchase() ? (-407149572) : (-407149569)); - break; - case 3: - { - value = spot.Value; - Vector3 vector2 = new Vector3(value.X, 0f, value.Z); - vector = _navmeshIpc.GetPointOnFloor(vector2, unlandable: false) ?? vector2; - _202D_200F_200D_202D_202C_202A_200E_200D_206F_200D_200E_206E_206B_206E_200B_202E_202D_202B_202A_206F_206B_206C_206A_206B_206B_202E_202A_202B_206A_200B_206D_206E_206E_206F_206A_206E_206A_200B_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1546765915), new object[4] { request.ItemId, value.SpotId, value.TerritoryId, vector }); - num = ((InventoryManager.Instance()->GetInventoryItemCount(29717u, isHq: false, checkEquipped: true, checkArmory: true, 0) > 0) ? (-407149572) : (-407149574)); - break; - } - case 5: - _200B_206E_200F_206F_202D_200B_202B_200B_202E_202D_206D_202E_206C_206F_206C_200E_200F_202E_206C_206A_202A_206B_202D_206E_202E_206C_200D_200F_202B_200B_200C_200B_206F_202C_200F_202A_206F_202C_206C_202B_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(281781333), new object[1] { request.ItemId }); - return false; - case 2: - EnqueueNavigateTo(value.TerritoryId, vector); - _taskQueue.Enqueue(new Mount.UnmountTask()); - return true; - case 0: - num = -407149573; - break; - } + _logger.LogError("No fishing spot found for item {ItemId}", request.ItemId); + return false; } + FishingSpotInfo value = spot.Value; + Vector3 vector = new Vector3(value.X, 0f, value.Z); + Vector3 vector2 = _navmeshIpc.GetPointOnFloor(vector, unlandable: false) ?? vector; + _logger.LogInformation("Starting fishing: item {ItemId}, spot {SpotId}, territory {Territory}, position {Position}", request.ItemId, value.SpotId, value.TerritoryId, vector2); + if (InventoryManager.Instance()->GetInventoryItemCount(29717u, isHq: false, checkEquipped: true, checkArmory: true, 0) <= 0 && !EnqueueLurePurchase()) + { + _logger.LogError("No Versatile Lure and no vendor found, cannot fish"); + return false; + } + EnqueueNavigateTo(value.TerritoryId, vector2); + _taskQueue.Enqueue(new Mount.UnmountTask()); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] protected override void OnRetryStep() { - int num = ((!(_currentRequest == null)) ? 1913182215 : 1913182210); - while (true) + if (_currentRequest == null) { - int num2 = num; - int num3 = 1913182211; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1913182210; - break; - case 1: - Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-600131236)); - return; - case 3: - State = EFishingState.Navigating; - return; - case 4: - _202D_200F_200D_202D_202C_202A_200E_200D_206F_200D_200E_206E_206B_206E_200B_202E_202D_202B_202A_206F_206B_206C_206A_206B_206B_202E_202A_202B_206A_200B_206D_206E_206E_206F_206A_206E_206A_200B_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(665668477), Array.Empty<object>()); - _baitReady = false; - num = (TryEnqueueApproach(_currentRequest) ? 1913182208 : 1913182209); - break; - case 2: - Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1698802452)); - return; - } + Stop("Retry without request"); + return; + } + _logger.LogInformation("Retrying fishing approach"); + _baitReady = false; + if (!TryEnqueueApproach(_currentRequest)) + { + Stop("Retry failed"); + } + else + { + State = EFishingState.Navigating; } } - [MethodImpl(MethodImplOptions.NoInlining)] public EFishingState Update() { - int num = ((State == EFishingState.Idle) ? (-1688940603) : (-1688940605)); - while (true) + if (State == EFishingState.Idle || State == EFishingState.Complete) { - int num2 = num; - int num3 = -1688940604; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = -1688940607; - break; - case 2: - Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-975449559)); - return EFishingState.Idle; - case 6: - return UpdateOrienting(); - case 7: - num = ((State != EFishingState.Complete) ? (-1688940593) : (-1688940603)); - break; - case 10: - goto IL_00b0; - case 5: - return State; - case 0: - num = -1688940605; - break; - case 11: - num = ((!(_currentRequest == null)) ? (-1688940595) : (-1688940602)); - break; - case 1: - return State; - case 3: - goto IL_00f7; - case 8: - goto IL_00fe; - case 9: - { - switch (State) - { - case EFishingState.Orienting: - break; - case EFishingState.Preparing: - goto IL_00b0; - case EFishingState.Fishing: - goto IL_00f7; - case EFishingState.Navigating: - goto IL_00fe; - default: - goto IL_0124; - } - goto case 6; - } - IL_0124: - num = -1688940608; - break; - IL_00fe: - return UpdateNavigating(); - IL_00f7: - return UpdateFishing(); - IL_00b0: - return UpdatePreparing(); - } + return State; } + if (_currentRequest == null) + { + Stop("No request"); + return EFishingState.Idle; + } + return State switch + { + EFishingState.Navigating => UpdateNavigating(), + EFishingState.Orienting => UpdateOrienting(), + EFishingState.Preparing => UpdatePreparing(), + EFishingState.Fishing => UpdateFishing(), + _ => State, + }; } - [MethodImpl(MethodImplOptions.NoInlining)] private EFishingState UpdateNavigating() { - int num = ((!_taskQueue.AllTasksComplete) ? (-1280253675) : (-1280253674)); - while (true) + if (_taskQueue.AllTasksComplete) { - int num2 = num; - int num3 = -1280253673; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004d; - case 1: - _206E_202B_206A_202A_202E_206E_206A_206D_206A_200B_202B_206A_202D_202B_200C_206D_200F_206F_206D_206A_202B_202A_200F_202C_202A_202E_206F_200C_200E_206B_206A_200D_200C_206D_200F_202E_200C_206E_206D_206E_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2136190681), Array.Empty<object>()); - State = EFishingState.Orienting; - return State; - case 2: - UpdateCurrentTask(); - return State; - } - continue; - IL_004d: - num = -1280253674; + _logger.LogDebug("Navigation complete, transitioning to orienting"); + State = EFishingState.Orienting; + return State; } + UpdateCurrentTask(); + return State; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe EFishingState UpdateOrienting() { - IPlayerCharacter playerCharacter = _200F_202D_206D_206D_206C_206E_200B_202D_200E_202C_206B_202C_206C_206B_206D_200F_206C_200D_200C_202E_202B_200C_206A_206F_206A_202B_200D_200D_206B_206D_202B_200D_206B_200C_202B_202B_206B_200C_202A_202A_202E(_objectTable); - int num = ((playerCharacter != null) ? (-1536188772) : (-1536188775)); - Vector3 vector = default(Vector3); - (float, Vector3)? tuple = default((float, Vector3)?); - while (true) + IPlayerCharacter localPlayer = _objectTable.LocalPlayer; + if (localPlayer == null) { - int num2 = num; - int num3 = -1536188776; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - _200F_206C_202B_206E_206B_206F_202C_200E_202D_200C_206E_200E_206A_202C_206F_202C_200F_202B_202C_202C_200F_202A_202E_206A_206E_202B_200D_206E_206B_202C_200D_202D_200E_206B_206D_202E_202A_206C_206E_202C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1988024988), new object[1] { vector }); - Stop(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1777525514)); - return State; - case 0: - { - Vector3 item = tuple.Value.Item2; - _206E_202B_206A_202A_202E_206E_206A_206D_206A_200B_202B_206A_202D_202B_200C_206D_200F_206F_206D_206A_202B_202A_200F_202C_202A_202E_206F_200C_200E_206B_206A_200D_200C_206D_200F_202E_200C_206E_206D_206E_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-245731895), new object[1] { item }); - ActionManager.Instance()->AutoFaceTargetPosition(&item, 0uL); - State = EFishingState.Preparing; - return State; - } - case 4: - vector = _206F_206A_206A_200E_206E_200B_206E_202A_206D_206B_206F_206F_202E_206C_200D_200B_200C_206D_206B_202C_200C_202B_202A_202B_200B_200D_206F_202A_200F_202B_206A_206F_206C_206E_202A_202B_202D_202A_202C_202B_202E((IGameObject)playerCharacter); - tuple = _202D_206F_206C_206C_206D_202A_206E_206F_206E_206A_202C_200C_200D_202A_202E_206D_206E_206E_206F_200D_206D_200D_206C_200D_200E_200D_206B_200C_206D_206C_206C_206D_202E_202D_206E_206C_206E_206D_206C_202E_202E(vector, 36); - num = (tuple.HasValue ? (-1536188776) : (-1536188774)); - break; - case 3: - num = -1536188775; - break; - case 1: - return State; - } + return State; } + Vector3 position = localPlayer.Position; + (float, Vector3)? tuple = WaterSurfaceDetector.FindFishableRotation(position); + if (!tuple.HasValue) + { + _logger.LogWarning("No fishable rotation found at position {Position}", position); + Stop("No fishable water nearby"); + return State; + } + Vector3 item = tuple.Value.Item2; + _logger.LogDebug("Found fishable rotation, facing hit point {HitPoint}", item); + ActionManager.Instance()->AutoFaceTargetPosition(&item, 0uL); + State = EFishingState.Preparing; + return State; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe EFishingState UpdatePreparing() { - int num = (CanUseActionNow() ? (-747465758) : (-747465753)); - IPlayerCharacter playerCharacter = default(IPlayerCharacter); - while (true) + if (!CanUseActionNow()) { - int num2 = num; - int num3 = -747465756; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return State; + } + if (!_baitReady) + { + if (_autoHookIpc.SwapBaitById(29717u)) { - case 12: - num = ((_currentRequest.Collectability <= 0) ? (-747465748) : (-747465747)); - break; - case 7: - { - BattleChara* ptr = (BattleChara*)_200F_202E_200E_206A_202B_200E_206D_206B_200F_202E_206B_206B_200C_202A_206B_206F_206E_202D_202D_200F_202B_202D_206A_200C_206D_200D_202B_200B_206F_202C_206E_200D_206E_200D_206D_206A_202C_206C_206B_206C_202E((IGameObject)playerCharacter); - num = (ptr->GetStatusManager()->HasStatus(805u) ? (-747465748) : (-747465755)); - break; - } - case 3: - return State; - case 5: - num = ((!_autoHookIpc.SwapBaitById(29717u)) ? (-747465754) : (-747465746)); - break; - case 11: - return State; - case 8: - _autoHookIpc.SetPluginState(enabled: true); - _autoHookIpc.SetAutoStartFishing(enabled: true); - _fishStartMs = _200B_206B_202C_202E_206D_206F_202A_206D_206B_206B_206F_206A_206C_202B_206B_200B_200F_206E_200B_200B_200C_200D_200F_202A_206E_206A_200B_206C_206A_200E_200B_202A_202A_202B_200D_202C_206A_206D_206D_206D_202E(); - _lastFishCount = GetItemCount(); - State = EFishingState.Fishing; - _206E_202B_206A_202A_202E_206E_206A_206D_206A_200B_202B_206A_202D_202B_200C_206D_200F_206F_206D_206A_202B_202A_200F_202C_202A_202E_206F_200C_200E_206B_206A_200D_200C_206D_200F_202E_200C_206E_206D_206E_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1666126604), Array.Empty<object>()); - return State; - case 9: - playerCharacter = _200F_202D_206D_206D_206C_206E_200B_202D_200E_202C_206B_202C_206C_206B_206D_200F_206C_200D_200C_202E_202B_200C_206A_206F_206A_202B_200D_200D_206B_206D_202B_200D_206B_200C_202B_202B_206B_200C_202A_202A_202E(_objectTable); - num = ((playerCharacter == null) ? (-747465748) : (-747465757)); - break; - case 4: - num = -747465753; - break; - case 6: - num = (_baitReady ? (-747465752) : (-747465759)); - break; - case 1: - num = ((ActionManager.Instance()->GetActionStatus(ActionType.Action, 4101u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) != 0) ? (-747465745) : (-747465756)); - break; - case 10: - _206E_202B_206A_202A_202E_206E_206A_206D_206A_200B_202B_206A_202D_202B_200C_206D_200F_206F_206D_206A_202B_202A_200F_202C_202A_202E_206F_200C_200E_206B_206A_200D_200C_206D_200F_202E_200C_206E_206D_206E_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1055152276), Array.Empty<object>()); + _logger.LogDebug("Bait set to Versatile Lure"); _baitReady = true; - _actionThrottle = _200B_206B_202C_202E_206D_206F_202A_206D_206B_206B_206F_206A_206C_202B_206B_200B_200F_206E_200B_200B_200C_200D_200F_202A_206E_206A_200B_206C_206A_200E_200B_202A_202A_202B_200D_202C_206A_206D_206D_206D_202E() + 500; + _actionThrottle = Environment.TickCount64 + 500; return State; - case 2: - _200F_206C_202B_206E_206B_206F_202C_200E_202D_200C_206E_200E_206A_202C_206F_202C_200F_202B_202C_202C_200F_202A_202E_206A_206E_202B_200D_206E_206B_202C_200D_202D_200E_206B_206D_202E_202A_206C_206E_202C_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1448574380), Array.Empty<object>()); - Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1247119621)); - return State; - case 0: - _206E_202B_206A_202A_202E_206E_206A_206D_206A_200B_202B_206A_202D_202B_200C_206D_200F_206F_206D_206A_202B_202A_200F_202C_202A_202E_206F_200C_200E_206B_206A_200D_200C_206D_200F_202E_200C_206E_206D_206E_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1852976997), Array.Empty<object>()); - ActionManager.Instance()->UseAction(ActionType.Action, 4101u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); - _actionThrottle = _200B_206B_202C_202E_206D_206F_202A_206D_206B_206B_206F_206A_206C_202B_206B_200B_200F_206E_200B_200B_200C_200D_200F_202A_206E_206A_200B_206C_206A_200E_200B_202A_202A_202B_200D_202C_206A_206D_206D_206D_202E() + 1000; - num = -747465745; - break; + } + _logger.LogWarning("AutoHook failed to swap bait, stopping"); + Stop("Bait swap failed"); + return State; + } + if (_currentRequest.Collectability > 0) + { + IPlayerCharacter localPlayer = _objectTable.LocalPlayer; + if (localPlayer != null) + { + BattleChara* address = (BattleChara*)localPlayer.Address; + if (!address->GetStatusManager()->HasStatus(805u)) + { + if (ActionManager.Instance()->GetActionStatus(ActionType.Action, 4101u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0) + { + _logger.LogDebug("Activating Collector's Glove"); + ActionManager.Instance()->UseAction(ActionType.Action, 4101u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); + _actionThrottle = Environment.TickCount64 + 1000; + } + return State; + } } } + _autoHookIpc.SetPluginState(enabled: true); + _autoHookIpc.SetAutoStartFishing(enabled: true); + _fishStartMs = Environment.TickCount64; + _lastFishCount = GetItemCount(); + State = EFishingState.Fishing; + _logger.LogDebug("AutoHook enabled, transitioning to fishing state"); + return State; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe EFishingState UpdateFishing() { int itemCount = GetItemCount(); - int num = ((itemCount <= _lastFishCount) ? (-1919966564) : (-1919966563)); - while (true) + if (itemCount > _lastFishCount) { - int num2 = num; - int num3 = -1919966576; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _lastFishCount = itemCount; + _fishStartMs = Environment.TickCount64; + } + if (Environment.TickCount64 - _fishStartMs > 180000) + { + _logger.LogWarning("Fishing made no progress for {Timeout}ms", 180000L); + Stop("Fishing timeout"); + return State; + } + if (HasEnoughItems()) + { + if (!_condition[ConditionFlag.Fishing]) { - case 1: - return State; - case 0: - num = (_206D_200F_206C_200C_200E_202C_202C_206E_206A_202E_206B_206A_206E_200C_206B_202D_200B_202D_206D_200C_206B_202B_200B_206F_202D_206E_202A_200F_200B_202D_200F_206E_200F_206A_202E_200C_206C_200B_206B_206F_202E(_condition, ConditionFlag.Fishing) ? (-1919966565) : (-1919966569)); - break; - case 2: - _200F_206C_202B_206E_206B_206F_202C_200E_202D_200C_206E_200E_206A_202C_206F_202C_200F_202B_202C_202C_200F_202A_202E_206A_206E_202B_200D_206E_206B_202C_200D_202D_200E_206B_206D_202E_202A_206C_206E_202C_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1428296655), new object[1] { 180000L }); - Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1371551999)); - return State; - case 7: - _206E_202B_206A_202A_202E_206E_206A_206D_206A_200B_202B_206A_202D_202B_200C_206D_200F_206F_206D_206A_202B_202A_200F_202C_202A_202E_206F_200C_200E_206B_206A_200D_200C_206D_200F_202E_200C_206E_206D_206E_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(273212512), Array.Empty<object>()); + _logger.LogDebug("Have enough items, fishing complete"); State = EFishingState.Complete; DisableAutoHookAutoStart(); - num = -1919966565; - break; - case 12: - num = ((_200B_206B_202C_202E_206D_206F_202A_206D_206B_206B_206F_206A_206C_202B_206B_200B_200F_206E_200B_200B_200C_200D_200F_202A_206E_206A_200B_206C_206A_200E_200B_202A_202A_202B_200D_202C_206A_206D_206D_206D_202E() - _fishStartMs <= 180000) ? (-1919966568) : (-1919966574)); - break; - case 3: - num = ((ActionManager.Instance()->GetActionStatus(ActionType.Action, 289u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) != 0) ? (-1919966575) : (-1919966571)); - break; - case 13: - _lastFishCount = itemCount; - _fishStartMs = _200B_206B_202C_202E_206D_206F_202A_206D_206B_206B_206F_206A_206C_202B_206B_200B_200F_206E_200B_200B_200C_200D_200F_202A_206E_206A_200B_206C_206A_200E_200B_202A_202A_202B_200D_202C_206A_206D_206D_206D_202E(); - num = -1919966564; - break; - case 4: - num = (_206D_200F_206C_200C_200E_202C_202C_206E_206A_202E_206B_206A_206E_200C_206B_202D_200B_202D_206D_200C_206B_202B_200B_206F_202D_206E_202A_200F_200B_202D_200F_206E_200F_206A_202E_200C_206C_200B_206B_206F_202E(_condition, ConditionFlag.Fishing) ? (-1919966575) : (-1919966567)); - break; - case 5: - _206E_202B_206A_202A_202E_206E_206A_206D_206A_200B_202B_206A_202D_202B_200C_206D_200F_206F_206D_206A_202B_202A_200F_202C_202A_202E_206F_200C_200E_206B_206A_200D_200C_206D_200F_202E_200C_206E_206D_206E_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1571582558), Array.Empty<object>()); - ActionManager.Instance()->UseAction(ActionType.Action, 289u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); - _actionThrottle = _200B_206B_202C_202E_206D_206F_202A_206D_206B_206B_206F_206A_206C_202B_206B_200B_200F_206E_200B_200B_200C_200D_200F_202A_206E_206A_200B_206C_206A_200E_200B_202A_202A_202B_200D_202C_206A_206D_206D_206D_202E() + 2000; - num = -1919966575; - break; - case 9: - num = (_206D_200F_206C_200C_200E_202C_202C_206E_206A_202E_206B_206A_206E_200C_206B_202D_200B_202D_206D_200C_206B_202B_200B_206F_202D_206E_202A_200F_200B_202D_200F_206E_200F_206A_202E_200C_206C_200B_206B_206F_202E(_condition, ConditionFlag.Casting) ? (-1919966575) : (-1919966570)); - break; - case 6: - num = ((!CanUseActionNow()) ? (-1919966575) : (-1919966573)); - break; - case 8: - num = ((!HasEnoughItems()) ? (-1919966572) : (-1919966576)); - break; - case 11: - return State; - case 10: - num = -1919966563; - break; } + return State; } + if (!_condition[ConditionFlag.Fishing] && !_condition[ConditionFlag.Casting] && CanUseActionNow() && ActionManager.Instance()->GetActionStatus(ActionType.Action, 289u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0) + { + _logger.LogDebug("Casting fishing rod"); + ActionManager.Instance()->UseAction(ActionType.Action, 289u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); + _actionThrottle = Environment.TickCount64 + 2000; + } + return State; } - [MethodImpl(MethodImplOptions.NoInlining)] public override void Stop(string label) { base.Stop(label); - int num = ((State != EFishingState.Idle) ? 1276475840 : 1276475841); - while (true) + if (State != EFishingState.Idle || _currentRequest != null) { - int num2 = num; - int num3 = 1276475840; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - _202D_200F_200D_202D_202C_202A_200E_200D_206F_200D_200E_206E_206B_206E_200B_202E_202D_202B_202A_206F_206B_206C_206A_206B_206B_202E_202A_202B_206A_200B_206D_206E_206E_206F_206A_206E_206A_200B_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(447789808), new object[1] { label }); - DisableAutoHookAutoStart(); - _routeEnqueuer.ClearDestination(); - _taskQueue.Reset(); - _currentRequest = null; - State = EFishingState.Idle; - num = 1276475843; - break; - case 1: - num = ((!(_currentRequest != null)) ? 1276475843 : 1276475840); - break; - case 3: - return; - case 2: - num = 1276475841; - break; - } + _logger.LogInformation("Stopping fishing controller: {Label}", label); + DisableAutoHookAutoStart(); + _routeEnqueuer.ClearDestination(); + _taskQueue.Reset(); + _currentRequest = null; + State = EFishingState.Idle; } } @@ -686,57 +322,25 @@ internal sealed class FishingController : MiniTaskController<FishingController> private bool HasEnoughItems() { - int num = ((!(_currentRequest == null)) ? 1490081139 : 1490081136); - while (true) + if (_currentRequest == null) { - int num2 = num; - int num3 = 1490081137; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004e; - case 1: - return true; - case 2: - return GetItemCount() >= _currentRequest.Quantity; - } - continue; - IL_004e: - num = 1490081136; + return true; } + return GetItemCount() >= _currentRequest.Quantity; } private unsafe int GetItemCount() { - int num = ((!(_currentRequest == null)) ? 1670490552 : 1670490555); - while (true) + if (_currentRequest == null) { - int num2 = num; - int num3 = 1670490553; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004e; - case 1: - return InventoryManager.Instance()->GetInventoryItemCount(_currentRequest.ItemId, isHq: false, checkEquipped: true, checkArmory: true, (short)_currentRequest.Collectability); - case 2: - return 0; - } - continue; - IL_004e: - num = 1670490555; + return 0; } + return InventoryManager.Instance()->GetInventoryItemCount(_currentRequest.ItemId, isHq: false, checkEquipped: true, checkArmory: true, (short)_currentRequest.Collectability); } private bool CanUseActionNow() { - return _200B_206B_202C_202E_206D_206F_202A_206D_206B_206B_206F_206A_206C_202B_206B_200B_200F_206E_200B_200B_200C_200D_200F_202A_206E_206A_200B_206C_206A_200E_200B_202A_202A_202B_200D_202C_206A_206D_206D_206D_202E() >= _actionThrottle; + return Environment.TickCount64 >= _actionThrottle; } private void EnqueueNavigateTo(ushort territoryId, Vector3 position) @@ -744,87 +348,18 @@ internal sealed class FishingController : MiniTaskController<FishingController> _routeEnqueuer.Enqueue(_taskQueue, territoryId, position); } - [MethodImpl(MethodImplOptions.NoInlining)] private bool EnqueueLurePurchase() { VendorResolverService.VendorInfo? vendorInfo = _vendorResolver.ResolveVendor(29717u); - int num = (vendorInfo.HasValue ? 496459254 : 496459255); - while (true) + if (!vendorInfo.HasValue) { - int num2 = num; - int num3 = 496459254; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - _202D_200F_200D_202D_202C_202A_200E_200D_206F_200D_200E_206E_206B_206E_200B_202E_202D_202B_202A_206F_206B_206C_206A_206B_206B_202E_202A_202B_206A_200B_206D_206E_206E_206F_206A_206E_206A_200B_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-26952727), new object[2] - { - 99, - vendorInfo.Value.VendorNpcId - }); - EnqueueNavigateTo(vendorInfo.Value.TerritoryId, vendorInfo.Value.Position); - _taskQueue.Enqueue(new Mount.UnmountTask()); - _taskQueue.Enqueue(new VendorPurchaseTask(vendorInfo.Value.VendorNpcId, new global::_003C_003Ez__ReadOnlySingleElementList<VendorPurchaseTask.PurchaseItem>(new VendorPurchaseTask.PurchaseItem(29717u, 99)), vendorInfo.Value.DialogOptionIndex)); - return true; - case 1: - _200F_206C_202B_206E_206B_206F_202C_200E_202D_200C_206E_200E_206A_202C_206F_202C_200F_202B_202C_202C_200F_202A_202E_206A_206E_202B_200D_206E_206B_202C_200D_202D_200E_206B_206D_202E_202A_206C_206E_202C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(570039642), Array.Empty<object>()); - return false; - case 2: - goto IL_0128; - } - continue; - IL_0128: - num = 496459255; + _logger.LogWarning("No vendor found selling Versatile Lure"); + return false; } - } - - static void _200F_206C_202B_206E_206B_206F_202C_200E_202D_200C_206E_200E_206A_202C_206F_202C_200F_202B_202C_202C_200F_202A_202E_206A_206E_202B_200D_206E_206B_202C_200D_202D_200E_206B_206D_202E_202A_206C_206E_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static void _200B_206E_200F_206F_202D_200B_202B_200B_202E_202D_206D_202E_206C_206F_206C_200E_200F_202E_206C_206A_202A_206B_202D_206E_202E_206C_200D_200F_202B_200B_200C_200B_206F_202C_200F_202A_206F_202C_206C_202B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogError(P_1, P_2); - } - - static void _202D_200F_200D_202D_202C_202A_200E_200D_206F_200D_200E_206E_206B_206E_200B_202E_202D_202B_202A_206F_206B_206C_206A_206B_206B_202E_202A_202B_206A_200B_206D_206E_206E_206F_206A_206E_206A_200B_206D_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static void _206E_202B_206A_202A_202E_206E_206A_206D_206A_200B_202B_206A_202D_202B_200C_206D_200F_206F_206D_206A_202B_202A_200F_202C_202A_202E_206F_200C_200E_206B_206A_200D_200C_206D_200F_202E_200C_206E_206D_206E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static IPlayerCharacter _200F_202D_206D_206D_206C_206E_200B_202D_200E_202C_206B_202C_206C_206B_206D_200F_206C_200D_200C_202E_202B_200C_206A_206F_206A_202B_200D_200D_206B_206D_202B_200D_206B_200C_202B_202B_206B_200C_202A_202A_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static Vector3 _206F_206A_206A_200E_206E_200B_206E_202A_206D_206B_206F_206F_202E_206C_200D_200B_200C_206D_206B_202C_200C_202B_202A_202B_200B_200D_206F_202A_200F_202B_206A_206F_206C_206E_202A_202B_202D_202A_202C_202B_202E(IGameObject P_0) - { - return P_0.Position; - } - - static (float, Vector3)? _202D_206F_206C_206C_206D_202A_206E_206F_206E_206A_202C_200C_200D_202A_202E_206D_206E_206E_206F_200D_206D_200D_206C_200D_200E_200D_206B_200C_206D_206C_206C_206D_202E_202D_206E_206C_206E_206D_206C_202E_202E(Vector3 P_0, int P_1) - { - return WaterSurfaceDetector.FindFishableRotation(P_0, P_1); - } - - static long _200B_206B_202C_202E_206D_206F_202A_206D_206B_206B_206F_206A_206C_202B_206B_200B_200F_206E_200B_200B_200C_200D_200F_202A_206E_206A_200B_206C_206A_200E_200B_202A_202A_202B_200D_202C_206A_206D_206D_206D_202E() - { - return Environment.TickCount64; - } - - static nint _200F_202E_200E_206A_202B_200E_206D_206B_200F_202E_206B_206B_200C_202A_206B_206F_206E_202D_202D_200F_202B_202D_206A_200C_206D_200D_202B_200B_206F_202C_206E_200D_206E_200D_206D_206A_202C_206C_206B_206C_202E(IGameObject P_0) - { - return P_0.Address; - } - - static bool _206D_200F_206C_200C_200E_202C_202C_206E_206A_202E_206B_206A_206E_200C_206B_202D_200B_202D_206D_200C_206B_202B_200B_206F_202D_206E_202A_200F_200B_202D_200F_206E_200F_206A_202E_200C_206C_200B_206B_206F_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; + _logger.LogInformation("No bait in inventory, purchasing {Quantity} Versatile Lure from vendor {VendorId}", 99, vendorInfo.Value.VendorNpcId); + EnqueueNavigateTo(vendorInfo.Value.TerritoryId, vendorInfo.Value.Position); + _taskQueue.Enqueue(new Mount.UnmountTask()); + _taskQueue.Enqueue(new VendorPurchaseTask(vendorInfo.Value.VendorNpcId, new global::_003C_003Ez__ReadOnlySingleElementList<VendorPurchaseTask.PurchaseItem>(new VendorPurchaseTask.PurchaseItem(29717u, 99)), vendorInfo.Value.DialogOptionIndex)); + return true; } } diff --git a/Questionable/Questionable.Controller/GatheringController.cs b/Questionable/Questionable.Controller/GatheringController.cs index f0b1583..d38998f 100644 --- a/Questionable/Questionable.Controller/GatheringController.cs +++ b/Questionable/Questionable.Controller/GatheringController.cs @@ -1,12 +1,9 @@ using System; -using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using System.Text; using System.Text.RegularExpressions; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.Enums; @@ -16,7 +13,6 @@ using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using LLib; using Lumina.Excel.Sheets; -using Lumina.Text.ReadOnly; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps; using Questionable.Controller.Steps.Common; @@ -43,157 +39,7 @@ internal sealed class GatheringController : MiniTaskController<GatheringControll public int CurrentIndex { get; set; } } - public sealed record GatheringRequest(GatheringPointId GatheringPointId, uint ItemId, uint AlternativeItemId, int Quantity, ushort Collectability = 0) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202C_206B_202D_202B_206C_200E_200F_202C_206F_206A_206C_206D_206F_202A_200F_206E_206F_206F_206C_202B_202C_200D_200F_200F_206F_202C_202B_206B_206C_206D_202E_202D_206C_206C_200F_206E_202A_202E_200C_202C_202E(typeof(GatheringRequest).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200E_200F_200E_202E_206A_206F_202E_206F_206E_200C_206E_202A_206A_202C_206E_200C_206A_202E_200B_206B_200C_202E_206D_202D_200C_206E_206F_202C_202D_200C_200E_202E_206B_200B_200C_202B_200D_206C_206B_206D_202E(); - _200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1742836955)); - _200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(117284107)); - int num = ((!PrintMembers(stringBuilder)) ? (-1894192642) : (-1894192643)); - while (true) - { - int num2 = num; - int num3 = -1894192641; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _206E_202E_206E_200C_200E_202C_200E_206F_200B_202C_200D_202C_206D_200B_206E_206D_202D_206A_206C_206A_202A_206F_200D_202A_200F_202B_200D_202A_202B_200E_206E_200C_200B_206E_202C_206C_206E_206D_206D_202E_202E(stringBuilder, '}'); - return _200F_200E_200C_202C_206F_202B_202B_202A_200B_206A_200B_202A_200D_200E_200C_206D_202E_202A_202A_206F_202A_200D_200E_200D_206B_202A_202A_200D_202E_200B_202E_202C_200C_206E_200E_202B_206E_200F_200B_202C_202E((object)stringBuilder); - case 2: - _206E_202E_206E_200C_200E_202C_200E_206F_200B_202C_200D_202C_206D_200B_206E_206D_202D_206A_206C_206A_202A_206F_200D_202A_200F_202B_200D_202A_202B_200E_206E_200C_200B_206E_202C_206C_206E_206D_206D_202E_202E(stringBuilder, ' '); - num = -1894192642; - break; - case 0: - num = -1894192643; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200C_200B_200B_200B_206A_200F_202B_202A_206B_206F_200C_202C_202B_206A_202B_206A_200E_206C_200F_200F_202A_200E_202E_202B_206E_200E_200E_200C_200B_206A_202D_206B_206D_200F_202E_206D_206B_200E_206A_206F_202E(); - _200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-520775500)); - _202D_202D_202E_206F_206D_206B_200C_200E_200C_202E_206A_200E_206B_200E_202E_206C_200D_202D_206B_200F_206B_200D_206F_206B_206C_202B_200D_200F_200C_206E_200E_206D_206B_206C_206D_206D_200F_200E_200C_202C_202E(builder, (object)GatheringPointId); - _200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1061931861)); - _200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_202E(builder, ItemId.ToString()); - _200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1080842268)); - _200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_202E(builder, AlternativeItemId.ToString()); - _200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-141714243)); - _200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_202E(builder, Quantity.ToString()); - _200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2022024950)); - _200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_202E(builder, Collectability.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(GatheringRequest? other) - { - int num = (((object)this == other) ? (-561631960) : (-561631959)); - while (true) - { - int num2 = num; - int num3 = -561631967; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return EqualityComparer<ushort>.Default.Equals(Collectability, other.Collectability); - case 2: - num = ((!EqualityComparer<uint>.Default.Equals(AlternativeItemId, other.AlternativeItemId)) ? (-561631964) : (-561631968)); - break; - case 6: - num = ((!EqualityComparer<Questionable.Model.Gathering.GatheringPointId>.Default.Equals(GatheringPointId, other.GatheringPointId)) ? (-561631964) : (-561631967)); - break; - case 8: - num = (((object)other == null) ? (-561631964) : (-561631962)); - break; - case 5: - return false; - case 7: - num = ((!_206A_200F_202D_202C_202B_200C_206D_200D_202B_206D_202B_206D_206F_206F_200F_200F_200F_202E_200D_200E_200D_200B_202E_200E_206C_202E_200B_200E_202A_206C_200F_206A_206F_202A_206D_206F_206C_200E_206F_206B_202E(EqualityContract, other.EqualityContract)) ? (-561631964) : (-561631961)); - break; - case 9: - return true; - case 0: - num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? (-561631964) : (-561631965)); - break; - case 1: - num = ((!EqualityComparer<int>.Default.Equals(Quantity, other.Quantity)) ? (-561631964) : (-561631966)); - break; - case 4: - num = -561631959; - break; - } - } - } - - bool IEquatable<GatheringRequest>.Equals(GatheringRequest? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202C_206B_202D_202B_206C_200E_200F_202C_206F_206A_206C_206D_206F_202A_200F_206E_206F_206F_206C_202B_202C_200D_200F_200F_206F_202C_202B_206B_206C_206D_202E_202D_206C_206C_200F_206E_202A_202E_200C_202C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200E_200F_200E_202E_206A_206F_202E_206F_206E_200C_206E_202A_206A_202C_206E_200C_206A_202E_200B_206B_200C_202E_206D_202D_200C_206E_206F_202C_202D_200C_200E_202E_206B_200B_200C_202B_200D_206C_206B_206D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206E_202E_206E_200C_200E_202C_200E_206F_200B_202C_200D_202C_206D_200B_206E_206D_202D_206A_206C_206A_202A_206F_200D_202A_200F_202B_200D_202A_202B_200E_206E_200C_200B_206E_202C_206C_206E_206D_206D_202E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200F_200E_200C_202C_206F_202B_202B_202A_200B_206A_200B_202A_200D_200E_200C_206D_202E_202A_202A_206F_202A_200D_200E_200D_206B_202A_202A_200D_202E_200B_202E_202C_200C_206E_200E_202B_206E_200F_200B_202C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200C_200B_200B_200B_206A_200F_202B_202A_206B_206F_200C_202C_202B_206A_202B_206A_200E_206C_200F_200F_202A_200E_202E_202B_206E_200E_200E_200C_200B_206A_202D_206B_206D_200F_202E_206D_206B_200E_206A_206F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202D_202D_202E_206F_206D_206B_200C_200E_200C_202E_206A_200E_206B_200E_202E_206C_200D_202D_206B_200F_206B_200D_206F_206B_206C_202B_200D_200F_200C_206E_200E_206D_206B_206C_206D_206D_200F_200E_200C_202C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206A_200F_202D_202C_202B_200C_206D_200D_202B_206D_202B_206D_206F_206F_200F_200F_200F_202E_200D_200E_200D_200B_202E_200E_206C_202E_200B_200E_202A_206C_200F_206A_206F_202A_206D_206F_206C_200E_206F_206B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } + public sealed record GatheringRequest(GatheringPointId GatheringPointId, uint ItemId, uint AlternativeItemId, int Quantity, ushort Collectability = 0); public enum EStatus { @@ -202,277 +48,6 @@ internal sealed class GatheringController : MiniTaskController<GatheringControll Complete } - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<LogMessage, ReadOnlySeString?> _003C_003E9__10_0; - - public static Func<GatheringNode, int> _003C_003E9__15_1; - - public static Func<GatheringNodeGroup, IEnumerable<GatheringNode>> _003C_003E9__15_0; - - public static Func<GatheringLocation, float> _003C_003E9__22_0; - - public static Func<GatheringLocation, float> _003C_003E9__22_1; - - public static Func<GatheringLocation, float> _003C_003E9__22_2; - - public static Func<IGameObject, bool> _003C_003E9__26_2; - - internal ReadOnlySeString? _003C_002Ector_003Eb__10_0(LogMessage x) - { - return x.Text; - } - - internal IEnumerable<GatheringNode> _003CStart_003Eb__15_0(GatheringNodeGroup x) - { - return from y in _202C_200E_202A_200B_206D_202A_200F_206E_202B_206C_202D_206B_206A_200B_206D_200F_202A_202D_200E_206F_206A_202B_200E_206E_202E_202A_206D_206E_206E_206F_200D_206C_202A_200F_202E_200C_206D_202D_206D_202B_202E(x) - orderby _206D_206C_200B_200C_202E_202E_206D_200E_202E_206D_200D_206C_200D_200B_202A_200E_206D_200C_206F_200C_206C_206E_200C_202C_200F_206D_202E_206D_200E_200B_200F_200B_200B_206F_206A_206D_202A_206A_202E_202E_202E(y).Count - select y; - } - - internal int _003CStart_003Eb__15_1(GatheringNode y) - { - return _206D_206C_200B_200C_202E_202E_206D_200E_202E_206D_200D_206C_200D_200B_202A_200E_206D_200C_206F_200C_206C_206E_200C_202C_200F_206D_202E_206D_200E_200B_200F_200B_200B_206F_206A_206D_202A_206A_202E_202E_202E(y).Count; - } - - internal float _003CGoToNextNode_003Eb__22_0(GatheringLocation x) - { - return _206A_206E_202B_200E_202A_202C_202A_206B_206B_200B_206E_202E_200D_202C_202D_202A_202E_206E_200D_200B_206A_200D_202B_206E_200E_202C_202C_206A_202E_200F_200B_200E_202E_200B_200C_206D_200E_202B_202D_202D_202E(x).X; - } - - internal float _003CGoToNextNode_003Eb__22_1(GatheringLocation x) - { - return _206A_206E_202B_200E_202A_202C_202A_206B_206B_200B_206E_202E_200D_202C_202D_202A_202E_206E_200D_200B_206A_200D_202B_206E_200E_202C_202C_206A_202E_200F_200B_200E_202E_200B_200C_206D_200E_202B_202D_202D_202E(x).Y; - } - - internal float _003CGoToNextNode_003Eb__22_2(GatheringLocation x) - { - return _206A_206E_202B_200E_202A_202C_202A_206B_206B_200B_206E_202E_200D_202C_202D_202A_202E_206E_200D_200B_206A_200D_202B_206E_200E_202C_202C_206A_202E_200F_200B_200E_202E_200B_200C_206D_200E_202B_202D_202D_202E(x).Z; - } - - internal bool _003CFindNextTargetableNodeAndUpdateIndex_003Eb__26_2(IGameObject x) - { - return x == null; - } - - static List<GatheringNode> _202C_200E_202A_200B_206D_202A_200F_206E_202B_206C_202D_206B_206A_200B_206D_200F_202A_202D_200E_206F_206A_202B_200E_206E_202E_202A_206D_206E_206E_206F_200D_206C_202A_200F_202E_200C_206D_202D_206D_202B_202E(GatheringNodeGroup P_0) - { - return P_0.Nodes; - } - - static List<GatheringLocation> _206D_206C_200B_200C_202E_202E_206D_200E_202E_206D_200D_206C_200D_200B_202A_200E_206D_200C_206F_200C_206C_206E_200C_202C_200F_206D_202E_206D_200E_200B_200F_200B_200B_206F_206A_206D_202A_206A_202E_202E_202E(GatheringNode P_0) - { - return P_0.Locations; - } - - static Vector3 _206A_206E_202B_200E_202A_202C_202A_206B_206B_200B_206E_202E_200D_202C_202D_202A_202E_206E_200D_200B_206A_200D_202B_206E_200E_202C_202C_206A_202E_200F_200B_200E_202E_200B_200C_206D_200E_202B_202D_202D_202E(GatheringLocation P_0) - { - return P_0.Position; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass25_0 - { - public GatheringNode node; - - internal bool _003CHasNodeDisappeared_003Eb__0(IGameObject x) - { - int num = ((_206F_206D_206B_202C_206B_206F_200D_206C_206A_202D_206A_202D_200F_200C_206D_206F_202C_200C_206F_206F_206A_206B_200C_206F_206A_200C_202C_200E_206E_200B_202A_202D_202A_200D_200D_202A_200E_206B_202E_202B_202E(x) != ObjectKind.GatheringPoint) ? 1567152944 : 1567152945); - while (true) - { - int num2 = num; - int num3 = 1567152944; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 1567152945; - break; - case 0: - return false; - case 1: - num = ((!_200F_202A_202C_202D_206B_206D_206B_206B_200E_206B_206A_206E_202D_206F_206E_202E_202A_202E_202D_200D_206B_206C_202B_206A_200E_202A_206B_206A_200F_206B_206D_206F_202B_202D_206E_206C_200D_200E_202E_200C_202E(x)) ? 1567152944 : 1567152947); - break; - case 3: - return _202A_206D_200D_206E_206C_206C_202A_206B_200B_206F_200F_200F_202A_202D_206C_206B_200B_206C_200F_200E_202B_200E_206C_206F_206A_206C_200C_200D_202B_200F_200B_206D_206D_202C_206F_202C_206E_200C_200E_200F_202E(x) == _202C_202D_200D_202B_206D_200D_206B_206F_202A_200B_206E_206A_202E_206C_206C_200D_202E_200F_202C_206E_200D_202B_200E_202B_206D_202B_206C_206B_200C_200B_200D_206C_206E_206C_202D_206A_200F_206E_202D_202C_202E(node); - } - } - } - - static ObjectKind _206F_206D_206B_202C_206B_206F_200D_206C_206A_202D_206A_202D_200F_200C_206D_206F_202C_200C_206F_206F_206A_206B_200C_206F_206A_200C_202C_200E_206E_200B_202A_202D_202A_200D_200D_202A_200E_206B_202E_202B_202E(IGameObject P_0) - { - return P_0.ObjectKind; - } - - static bool _200F_202A_202C_202D_206B_206D_206B_206B_200E_206B_206A_206E_202D_206F_206E_202E_202A_202E_202D_200D_206B_206C_202B_206A_200E_202A_206B_206A_200F_206B_206D_206F_202B_202D_206E_206C_200D_200E_202E_200C_202E(IGameObject P_0) - { - return P_0.IsTargetable; - } - - static uint _202A_206D_200D_206E_206C_206C_202A_206B_200B_206F_200F_200F_202A_202D_206C_206B_200B_206C_200F_200E_202B_200E_206C_206F_206A_206C_200C_200D_202B_200F_200B_206D_206D_202C_206F_202C_206E_200C_200E_200F_202E(IGameObject P_0) - { - return P_0.BaseId; - } - - static uint _202C_202D_200D_202B_206D_200D_206B_206F_202A_200B_206E_206A_202E_206C_206C_200D_202E_200F_202C_206E_200D_202B_200E_202B_206D_202B_206C_206B_200C_200B_200D_206C_206E_206C_202D_206A_200F_206E_202D_202C_202E(GatheringNode P_0) - { - return P_0.DataId; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass26_0 - { - public GatheringNode currentNode; - - internal bool _003CFindNextTargetableNodeAndUpdateIndex_003Eb__0(IGameObject x) - { - int num = ((_202D_206E_206C_206B_200F_200B_206F_206B_206D_206F_206B_202E_200C_200B_202E_202C_202D_200F_200D_202A_202B_206D_202C_200C_206C_200F_206D_206A_202B_206B_200C_202E_200D_202A_206F_202A_202B_200B_200C_206D_202E(x) != ObjectKind.GatheringPoint) ? 774671159 : 774671157); - while (true) - { - int num2 = num; - int num3 = 774671156; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return _206F_200F_200C_200E_200F_206C_206F_200C_200D_202D_200B_206B_202B_206C_202B_206F_206F_200E_200C_200D_206C_200B_200E_206D_206D_206F_200D_202E_206E_202E_206C_206C_202A_200C_202D_206E_206E_200F_200D_200C_202E(x); - case 1: - num = ((_206C_200C_202C_202E_200F_202E_202E_206A_206C_202E_202D_206D_200C_206A_202B_202C_206F_206B_200C_200B_206A_202D_206E_206F_202A_202B_200D_202E_202E_200E_206B_200F_202A_200C_200E_202A_206F_206B_202C_202E_202E(x) != _206B_202B_206F_202B_206B_206C_200C_206F_206F_206E_200F_206F_200C_206F_202C_206F_206F_206D_202A_200F_206C_206A_200C_206E_200C_200E_200E_202C_206B_200B_200B_206C_202D_206A_200E_200B_200F_200C_202C_200C_202E(currentNode)) ? 774671159 : 774671158); - break; - case 0: - num = 774671157; - break; - case 3: - return false; - } - } - } - - static ObjectKind _202D_206E_206C_206B_200F_200B_206F_206B_206D_206F_206B_202E_200C_200B_202E_202C_202D_200F_200D_202A_202B_206D_202C_200C_206C_200F_206D_206A_202B_206B_200C_202E_200D_202A_206F_202A_202B_200B_200C_206D_202E(IGameObject P_0) - { - return P_0.ObjectKind; - } - - static uint _206C_200C_202C_202E_200F_202E_202E_206A_206C_202E_202D_206D_200C_206A_202B_202C_206F_206B_200C_200B_206A_202D_206E_206F_202A_202B_200D_202E_202E_200E_206B_200F_202A_200C_200E_202A_206F_206B_202C_202E_202E(IGameObject P_0) - { - return P_0.BaseId; - } - - static uint _206B_202B_206F_202B_206B_206C_200C_206F_206F_206E_200F_206F_200C_206F_202C_206F_206F_206D_202A_200F_206C_206A_200C_206E_200C_200E_200E_202C_206B_200B_200B_206C_202D_206A_200E_200B_200F_200C_202C_200C_202E(GatheringNode P_0) - { - return P_0.DataId; - } - - static bool _206F_200F_200C_200E_200F_206C_206F_200C_200D_202D_200B_206B_202B_206C_202B_206F_206F_200E_200C_200D_206C_200B_200E_206D_206D_206F_200D_202E_206E_202E_206C_206C_202A_200C_202D_206E_206E_200F_200D_200C_202E(IGameObject P_0) - { - return P_0.IsTargetable; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass26_1 - { - public GatheringNode currentNode; - - public GatheringController _003C_003E4__this; - - internal IGameObject _003CFindNextTargetableNodeAndUpdateIndex_003Eb__1(GatheringLocation x) - { - _003C_003Ec__DisplayClass26_2 CS_0024_003C_003E8__locals2 = new _003C_003Ec__DisplayClass26_2 - { - CS_0024_003C_003E8__locals1 = this, - x = x - }; - return _003C_003E4__this._objectTable.FirstOrDefault(delegate(IGameObject y) - { - int num = ((_003C_003Ec__DisplayClass26_2._200E_200F_206E_206B_200F_202D_202E_200D_202C_202D_206C_200F_206F_202C_206B_206C_202D_206A_200C_202B_206D_200E_200E_202A_200B_206A_202A_206E_202B_206D_206F_206D_200D_206B_206F_200C_202A_202A_200E_200C_202E(CS_0024_003C_003E8__locals2.CS_0024_003C_003E8__locals1.currentNode) != _003C_003Ec__DisplayClass26_2._202B_202D_202C_200C_200F_206B_206A_206E_202A_202A_202B_206C_200D_200E_206D_206B_206C_206E_200C_202A_206F_206F_206D_202E_200B_206A_200B_200D_206F_206C_202D_200E_202E_200D_202C_202D_202C_202D_200F_202E_202E(y)) ? 347949283 : 347949280); - while (true) - { - int num2 = num; - int num3 = 347949282; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0058; - case 2: - return Vector3.Distance(_003C_003Ec__DisplayClass26_2._200D_206F_202A_206E_202B_200D_202E_200D_202D_200F_202D_200E_202E_202C_202B_200E_202E_200E_202C_206E_200F_206C_206A_200B_200B_206B_202C_206F_200E_200E_200C_206D_202A_200B_200B_202B_206A_200E_200F_206D_202E(CS_0024_003C_003E8__locals2.x), _003C_003Ec__DisplayClass26_2._200C_202E_206B_202E_206A_202C_206F_206E_206E_202D_202B_206E_200C_202E_200F_200C_202C_206D_200E_200B_200C_206E_206D_206F_206D_206F_206E_206E_202E_202D_200C_202B_200E_202D_200C_206C_206E_206E_200D_200E_202E(y)) < 0.1f; - case 1: - return false; - } - continue; - IL_0058: - num = 347949280; - } - }); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass26_2 - { - public GatheringLocation x; - - public _003C_003Ec__DisplayClass26_1 CS_0024_003C_003E8__locals1; - - internal bool _003CFindNextTargetableNodeAndUpdateIndex_003Eb__3(IGameObject y) - { - int num = ((_200E_200F_206E_206B_200F_202D_202E_200D_202C_202D_206C_200F_206F_202C_206B_206C_202D_206A_200C_202B_206D_200E_200E_202A_200B_206A_202A_206E_202B_206D_206F_206D_200D_206B_206F_200C_202A_202A_200E_200C_202E(CS_0024_003C_003E8__locals1.currentNode) != _202B_202D_202C_200C_200F_206B_206A_206E_202A_202A_202B_206C_200D_200E_206D_206B_206C_206E_200C_202A_206F_206F_206D_202E_200B_206A_200B_200D_206F_206C_202D_200E_202E_200D_202C_202D_202C_202D_200F_202E_202E(y)) ? 347949283 : 347949280); - while (true) - { - int num2 = num; - int num3 = 347949282; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0058; - case 2: - return Vector3.Distance(_200D_206F_202A_206E_202B_200D_202E_200D_202D_200F_202D_200E_202E_202C_202B_200E_202E_200E_202C_206E_200F_206C_206A_200B_200B_206B_202C_206F_200E_200E_200C_206D_202A_200B_200B_202B_206A_200E_200F_206D_202E(x), _200C_202E_206B_202E_206A_202C_206F_206E_206E_202D_202B_206E_200C_202E_200F_200C_202C_206D_200E_200B_200C_206E_206D_206F_206D_206F_206E_206E_202E_202D_200C_202B_200E_202D_200C_206C_206E_206E_200D_200E_202E(y)) < 0.1f; - case 1: - return false; - } - continue; - IL_0058: - num = 347949280; - } - } - - static uint _200E_200F_206E_206B_200F_202D_202E_200D_202C_202D_206C_200F_206F_202C_206B_206C_202D_206A_200C_202B_206D_200E_200E_202A_200B_206A_202A_206E_202B_206D_206F_206D_200D_206B_206F_200C_202A_202A_200E_200C_202E(GatheringNode P_0) - { - return P_0.DataId; - } - - static uint _202B_202D_202C_200C_200F_206B_206A_206E_202A_202A_202B_206C_200D_200E_206D_206B_206C_206E_200C_202A_206F_206F_206D_202E_200B_206A_200B_200D_206F_206C_202D_200E_202E_200D_202C_202D_202C_202D_200F_202E_202E(IGameObject P_0) - { - return P_0.BaseId; - } - - static Vector3 _200D_206F_202A_206E_202B_200D_202E_200D_202D_200F_202D_200E_202E_202C_202B_200E_202E_200E_202C_206E_200F_206C_206A_200B_200B_206B_202C_206F_200E_200E_200C_206D_202A_200B_200B_202B_206A_200E_200F_206D_202E(GatheringLocation P_0) - { - return P_0.Position; - } - - static Vector3 _200C_202E_206B_202E_206A_202C_206F_206E_206E_202D_202B_206E_200C_202E_200F_200C_202C_206D_200E_200B_200C_206E_206D_206F_206D_206F_206E_206E_202E_202D_200C_202B_200E_202D_200C_206C_206E_206E_200D_200E_202E(IGameObject P_0) - { - return P_0.Position; - } - } - private readonly MovementController _movementController; private readonly GatheringPointRegistry _gatheringPointRegistry; @@ -497,7 +72,6 @@ internal sealed class GatheringController : MiniTaskController<GatheringControll public uint? CurrentItemId => _currentRequest?.Data.ItemId; - [MethodImpl(MethodImplOptions.NoInlining)] public GatheringController(MovementController movementController, GatheringPointRegistry gatheringPointRegistry, GameFunctions gameFunctions, NavmeshIpc navmeshIpc, IObjectTable objectTable, IChatGui chatGui, ILogger<GatheringController> logger, ICondition condition, IServiceProvider serviceProvider, InterruptHandler interruptHandler, IDataManager dataManager, Configuration configuration, IPluginLog pluginLog) : base(chatGui, condition, serviceProvider, interruptHandler, dataManager, configuration, logger) { @@ -508,238 +82,119 @@ internal sealed class GatheringController : MiniTaskController<GatheringControll _objectTable = objectTable; _condition = condition; _configuration = configuration; - _revisitRegex = dataManager.GetRegex(5574u, (LogMessage x) => x.Text, pluginLog) ?? throw _202B_206A_206F_200C_206A_202C_206F_200F_206E_200C_206E_206F_200E_200C_202B_200B_200B_206C_200C_200C_200C_206A_206B_200D_202B_206E_206F_200E_206D_206F_206C_200C_200F_200F_200C_202A_200F_200F_200D_202D_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(495587057)); + _revisitRegex = dataManager.GetRegex(5574u, (LogMessage x) => x.Text, pluginLog) ?? throw new InvalidDataException("No regex found for revisit message"); } - [MethodImpl(MethodImplOptions.NoInlining)] public bool Start(GatheringRequest gatheringRequest) { - Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1887351736)); - GatheringRoot gatheringRoot; - int num = (_gatheringPointRegistry.TryGetGatheringPoint(gatheringRequest.GatheringPointId, out gatheringRoot) ? (-1189096751) : (-1189096752)); - while (true) + Stop("Start"); + if (!_gatheringPointRegistry.TryGetGatheringPoint(gatheringRequest.GatheringPointId, out GatheringRoot gatheringRoot)) { - int num2 = num; - int num3 = -1189096751; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - _currentRequest = new CurrentRequest - { - Data = gatheringRequest, - Root = gatheringRoot, - Nodes = _202E_206E_206C_200C_200B_206C_200B_202C_206C_200D_206A_206B_206C_206A_200E_206E_206A_200B_206D_200B_200E_202A_202B_206D_206E_206F_202A_200F_200B_206B_206B_202E_200E_200C_206F_200B_202E_202C_200E_200D_202E(gatheringRoot).SelectMany((GatheringNodeGroup x) => from y in _003C_003Ec._202C_200E_202A_200B_206D_202A_200F_206E_202B_206C_202D_206B_206A_200B_206D_200F_202A_202D_200E_206F_206A_202B_200E_206E_202E_202A_206D_206E_206E_206F_200D_206C_202A_200F_202E_200C_206D_202D_206D_202B_202E(x) - orderby _003C_003Ec._206D_206C_200B_200C_202E_202E_206D_200E_202E_206D_200D_206C_200D_200B_202A_200E_206D_200C_206F_200C_206C_206E_200C_202C_200F_206D_202E_206D_200E_200B_200F_200B_200B_206F_206A_206D_202A_206A_202E_202E_202E(y).Count - select y).ToList() - }; - _movementFailureCount = 0; - num = ((!HasRequestedItems()) ? (-1189096747) : (-1189096749)); - break; - case 1: - _206B_206D_206C_202E_202D_206A_200E_202B_200C_206F_202C_206B_206E_206F_206C_206D_202C_206F_202E_200F_202A_202C_202A_202A_206C_206A_206D_202A_206D_206C_200F_202A_206C_200B_200E_206B_202A_206C_200F_202E_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1516319089), new object[2] { gatheringRequest.ItemId, gatheringRequest.GatheringPointId }); - return false; - case 2: - _currentRequest = null; - return false; - case 3: - num = -1189096752; - break; - case 4: - return true; - } + _logger.LogError("Unable to resolve gathering point, no path found for {ItemId} / point {PointId}", gatheringRequest.ItemId, gatheringRequest.GatheringPointId); + return false; } + _currentRequest = new CurrentRequest + { + Data = gatheringRequest, + Root = gatheringRoot, + Nodes = gatheringRoot.Groups.SelectMany((GatheringNodeGroup x) => x.Nodes.OrderBy((GatheringNode y) => y.Locations.Count)).ToList() + }; + _movementFailureCount = 0; + if (HasRequestedItems()) + { + _currentRequest = null; + return false; + } + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public EStatus Update() { - int num = ((_currentRequest != null) ? 227045222 : 227045219); - while (true) + if (_currentRequest == null) { - int num2 = num; - int num3 = 227045217; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - GoToNextNode(); - num = 227045225; - break; - case 4: - return EStatus.Moving; - case 6: - Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(46307754)); - return EStatus.Complete; - case 5: - num = ((!_movementController.IsPathRunning) ? 227045217 : 227045221); - break; - case 2: - Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1108669296)); - return EStatus.Complete; - case 9: - num = (_202A_200D_200B_206D_202D_206E_200E_202C_206D_206C_206F_200F_200D_202D_202E_202D_202B_206A_206F_202A_202E_202C_206F_200B_206D_200B_206E_200B_206F_200D_202C_202C_206C_200F_206C_206D_206C_202A_200F_206D_202E(_condition, ConditionFlag.Gathering) ? 227045218 : 227045223); - break; - case 3: - num = ((!_taskQueue.AllTasksComplete) ? 227045225 : 227045216); - break; - case 10: - num = 227045219; - break; - case 0: - num = ((!HasRequestedItems()) ? 227045218 : 227045224); - break; - case 8: - UpdateCurrentTask(); - return EStatus.Gathering; - case 7: - num = (_movementController.IsPathfinding ? 227045221 : 227045220); - break; - } + Stop("No request"); + return EStatus.Complete; } + if (_movementController.IsPathfinding || _movementController.IsPathRunning) + { + return EStatus.Moving; + } + if (HasRequestedItems() && !_condition[ConditionFlag.Gathering]) + { + Stop("Has all items"); + return EStatus.Complete; + } + if (_taskQueue.AllTasksComplete) + { + GoToNextNode(); + } + UpdateCurrentTask(); + return EStatus.Gathering; } protected override void OnTaskComplete(ITask task) { - int num = ((!(task is DoGather.Task)) ? 1397108557 : 1397108556); - while (true) + if (task is DoGather.Task) { - int num2 = num; - int num3 = 1397108557; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - GoToNextNode(); - return; - case 1: - ResetStepRetryCounter(); - _movementFailureCount = 0; - num = 1397108557; - break; - case 2: - num = 1397108556; - break; - } + ResetStepRetryCounter(); + _movementFailureCount = 0; } + GoToNextNode(); } - [MethodImpl(MethodImplOptions.NoInlining)] protected override void OnRetryStep() { - _200D_200D_202D_202E_206F_202C_206B_202E_206C_206A_200B_206B_200D_202D_202C_202A_202D_206C_206F_200C_206C_206F_206D_202A_200E_206F_206E_202A_206A_202D_206B_202D_206A_200F_202B_206C_202E_202C_202E_202C_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-825765376), Array.Empty<object>()); + _logger.LogInformation("Retrying gathering from the next targetable node"); } - [MethodImpl(MethodImplOptions.NoInlining)] public void Replan() { - int num = ((_currentRequest != null) ? 377740259 : 377740256); - while (true) + if (_currentRequest != null) { - int num2 = num; - int num3 = 377740257; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0046; - case 1: - return; - case 2: - _200D_200D_202D_202E_206F_202C_206B_202E_206C_206A_200B_206B_200D_202D_202C_202A_202D_206C_206F_200C_206C_206F_206D_202A_200E_206F_206E_202A_206A_202D_206B_202D_206A_200F_202B_206C_202E_202C_202E_202C_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2049839790), new object[1] { _currentRequest.Data.GatheringPointId }); - _taskQueue.Reset(); - return; - } - continue; - IL_0046: - num = 377740256; + _logger.LogInformation("Re-planning gathering for point {PointId}", _currentRequest.Data.GatheringPointId); + _taskQueue.Reset(); } } - [MethodImpl(MethodImplOptions.NoInlining)] public bool TryReplanAfterMovementFailure() { - int num = ((_currentRequest != null) ? 1767425441 : 1767425444); - MoveTask moveTask = default(MoveTask); - while (true) + if (_currentRequest == null) { - int num2 = num; - int num3 = 1767425445; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 9: - num = 1767425444; - break; - case 3: - num = ((moveTask.InteractionType != EInteractionType.WalkTo) ? 1767425453 : 1767425447); - break; - case 10: - moveTask = _taskQueue.CurrentTaskExecutor?.CurrentTask as MoveTask; - num = (((object)moveTask == null) ? 1767425453 : 1767425446); - break; - case 5: - num = ((!moveTask.Fly) ? 1767425453 : 1767425442); - break; - case 2: - num = (moveTask.DataId.HasValue ? 1767425453 : 1767425440); - break; - case 4: - { - int movementFailureCount = _movementFailureCount; - num3 = 1; - num4 = movementFailureCount; - _movementFailureCount = (num4 | num3) + (num4 & num3); - num = ((_movementFailureCount <= _configuration.Advanced.InteractionRetryLimit) ? 1767425455 : 1767425445); - break; - } - case 1: - return false; - case 8: - _200D_200D_202D_202E_206F_202C_206B_202E_206C_206A_200B_206B_200D_202D_202C_202A_202D_206C_206F_200C_206C_206F_206D_202A_200E_206F_206E_202A_206A_202D_206B_202D_206A_200F_202B_206C_202E_202C_202E_202C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-93536990), new object[2] - { - _movementFailureCount, - _configuration.Advanced.InteractionRetryLimit - }); - Replan(); - return true; - case 6: - { - List<ITask> list = _taskQueue.RemainingTasks.ToList(); - MoveTask moveTask2 = moveTask._003CClone_003E_0024(); - Vector3 destination = moveTask.Destination; - destination.Y = moveTask.Destination.Y + 30f; - moveTask2.Destination = destination; - moveTask2.DisableNavmesh = true; - MoveTask moveTask3 = moveTask2; - _200D_200D_202D_202E_206F_202C_206B_202E_206C_206A_200B_206B_200D_202D_202C_202A_202D_206C_206F_200C_206C_206F_206D_202A_200E_206F_206E_202A_206A_202D_206B_202D_206A_200F_202B_206C_202E_202C_202E_202C_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-782340659), Array.Empty<object>()); - _taskQueue.Reset(); - TaskQueue taskQueue = _taskQueue; - ITask task = moveTask3; - List<ITask> list2 = list; - int num7 = 0; - ITask[] array = new ITask[1 + list2.Count]; - array[num7] = task; - int num8 = num7; - num3 = 1; - num4 = num8; - num7 = (num4 | num3) + (num4 & num3); - Span<ITask> span = CollectionsMarshal.AsSpan(list2); - span.CopyTo(new Span<ITask>(array).Slice(num7, span.Length)); - num7 += span.Length; - taskQueue.EnqueueAll(new global::_003C_003Ez__ReadOnlyArray<ITask>(array)); - return true; - } - case 7: - num = (moveTask.DisableNavmesh ? 1767425453 : 1767425443); - break; - case 0: - _206B_206D_206C_202E_202D_206A_200E_202B_200C_206F_202C_206B_206E_206F_206C_206D_202C_206F_202E_200F_202A_202C_202A_202A_206C_206A_206D_202A_206D_206C_200F_202A_206C_200B_200E_206B_202A_206C_200F_202E_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1015868468), new object[1] { _movementFailureCount }); - return false; - } + return false; } + _movementFailureCount++; + if (_movementFailureCount > _configuration.Advanced.InteractionRetryLimit) + { + _logger.LogError("Gathering movement retry limit exceeded after {Count} failures", _movementFailureCount); + return false; + } + if (_taskQueue.CurrentTaskExecutor?.CurrentTask is MoveTask { InteractionType: EInteractionType.WalkTo, DataId: null, Fly: not false, DisableNavmesh: false } moveTask) + { + List<ITask> list = _taskQueue.RemainingTasks.ToList(); + MoveTask moveTask2 = moveTask._003CClone_003E_0024(); + Vector3 destination = moveTask.Destination; + destination.Y = moveTask.Destination.Y + 30f; + moveTask2.Destination = destination; + moveTask2.DisableNavmesh = true; + MoveTask moveTask3 = moveTask2; + _logger.LogInformation("Navmesh could not reach the gathering cluster; retrying the broad approach as a direct flight"); + _taskQueue.Reset(); + TaskQueue taskQueue = _taskQueue; + ITask task = moveTask3; + List<ITask> list2 = list; + int num = 0; + ITask[] array = new ITask[1 + list2.Count]; + array[num] = task; + num++; + Span<ITask> span = CollectionsMarshal.AsSpan(list2); + span.CopyTo(new Span<ITask>(array).Slice(num, span.Length)); + num += span.Length; + taskQueue.EnqueueAll(new global::_003C_003Ez__ReadOnlyArray<ITask>(array)); + return true; + } + _logger.LogInformation("Gathering movement failed, selecting another active node (attempt {Count}/{Limit})", _movementFailureCount, _configuration.Advanced.InteractionRetryLimit); + Replan(); + return true; } public override void Stop(string label) @@ -749,474 +204,128 @@ internal sealed class GatheringController : MiniTaskController<GatheringControll _taskQueue.Reset(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void GoToNextNode() { - int num = ((_currentRequest != null) ? (-102617644) : (-102617634)); - GatheringNode gatheringNode = default(GatheringNode); - ushort num7 = default(ushort); - Vector3? vector = default(Vector3?); - bool flag = default(bool); - Vector3 vector2 = default(Vector3); - while (true) + if (_currentRequest == null || !_taskQueue.AllTasksComplete) { - int num2 = num; - int num3 = -102617640; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num8; - switch (num5 - (num6 + num6)) - { - case 7: - return; - case 8: - gatheringNode = FindNextTargetableNodeAndUpdateIndex(_currentRequest); - num = ((gatheringNode != null) ? (-102617637) : (-102617645)); - break; - case 3: - num = ((_200B_206C_200C_206C_202E_206F_206A_200C_206D_202C_202C_202C_200F_200C_202C_202C_202C_202B_206B_206B_206E_200C_202D_200D_202B_202C_206D_206E_200E_200D_202E_206D_206D_206A_202B_200F_200D_206D_206F_202E_202E(_currentRequest.Root).Count == 0) ? (-102617642) : (-102617643)); - break; - case 0: - num = -102617634; - break; - case 10: - { - List<QuestStep> list = _200B_206C_200C_206C_202E_206F_206A_200C_206D_202C_202C_202C_200F_200C_202C_202C_202C_202B_206B_206B_206E_200C_202D_200D_202B_202C_206D_206E_200E_200D_202E_206D_206D_206A_202B_200F_200D_206D_206F_202E_202E(_currentRequest.Root); - num7 = _202A_202A_200B_202A_206A_202D_206F_206C_200B_206D_206E_206A_200E_202B_200B_200D_202A_202D_200F_200E_200E_202B_202E_200E_206B_202B_200F_206D_206D_206C_202E_206D_200E_202C_206F_206B_200E_202D_206E_206A_202E(list[list.Count - 1]); - bool? flag2 = _200D_206D_206E_202C_202B_200E_200C_202E_202D_202C_200E_206B_206D_202B_202A_202C_202E_206F_206E_202E_200D_200E_206B_202B_202D_206D_202A_200F_202E_202E_206F_206E_206D_206E_202D_202B_206B_200E_202B_206F_202E(gatheringNode); - bool? flag3 = _200D_206E_206C_206C_200B_202C_206D_200E_206D_202B_206F_202A_202D_202A_200C_200B_200B_200B_206C_202C_202E_206A_206D_200C_206A_206E_200B_206E_202E_206F_206B_206B_202D_200B_202C_202C_206A_206B_206B_202D_202E(_currentRequest.Root); - num = ((!(flag2 ?? flag3 ?? true)) ? (-102617636) : (-102617635)); - break; - } - case 1: - { - Vector3 value = vector.Value; - value.Y = vector.Value.Y + (flag ? 3f : 0f); - vector = value; - num = -102617647; - break; - } - case 13: - num = ((_200D_206C_206C_202A_200D_202D_202E_200C_206B_200E_202C_200D_202D_206B_200C_202B_202D_206D_202A_202C_200B_200E_206F_206E_200B_202B_206A_206E_206C_202D_206D_200C_200E_200E_202C_206D_202A_202E_206C_202B_202E(gatheringNode).Count != 0) ? (-102617646) : (-102617642)); - break; - case 2: - vector2 = new Vector3 - { - X = _200D_206C_206C_202A_200D_202D_202E_200C_206B_200E_202C_200D_202D_206B_200C_202B_202D_206D_202A_202C_200B_200E_206F_206E_200B_202B_206A_206E_206C_202D_206D_200C_200E_200E_202C_206D_202A_202E_206C_202B_202E(gatheringNode).Sum((GatheringLocation x) => _003C_003Ec._206A_206E_202B_200E_202A_202C_202A_206B_206B_200B_206E_202E_200D_202C_202D_202A_202E_206E_200D_200B_206A_200D_202B_206E_200E_202C_202C_206A_202E_200F_200B_200E_202E_200B_200C_206D_200E_202B_202D_202D_202E(x).X) / (float)_200D_206C_206C_202A_200D_202D_202E_200C_206B_200E_202C_200D_202D_206B_200C_202B_202D_206D_202A_202C_200B_200E_206F_206E_200B_202B_206A_206E_206C_202D_206D_200C_200E_200E_202C_206D_202A_202E_206C_202B_202E(gatheringNode).Count, - Y = _202C_206D_200E_200D_202D_206C_206C_200E_202C_206C_202B_206D_200D_206E_206B_200D_202D_200F_200C_206D_206A_206C_202A_200F_202E_202D_202A_206E_206B_200E_202E_206E_202D_206F_200F_202E_206B_206A_206D_202D_202E(from x in _200D_206C_206C_202A_200D_202D_202E_200C_206B_200E_202C_200D_202D_206B_200C_202B_202D_206D_202A_202C_200B_200E_206F_206E_200B_202B_206A_206E_206C_202D_206D_200C_200E_200E_202C_206D_202A_202E_206C_202B_202E(gatheringNode) - select _003C_003Ec._206A_206E_202B_200E_202A_202C_202A_206B_206B_200B_206E_202E_200D_202C_202D_202A_202E_206E_200D_200B_206A_200D_202B_206E_200E_202C_202C_206A_202E_200F_200B_200E_202E_200B_200C_206D_200E_202B_202D_202D_202E(x).Y) + 5f, - Z = _200D_206C_206C_202A_200D_202D_202E_200C_206B_200E_202C_200D_202D_206B_200C_202B_202D_206D_202A_202C_200B_200E_206F_206E_200B_202B_206A_206E_206C_202D_206D_200C_200E_200E_202C_206D_202A_202E_206C_202B_202E(gatheringNode).Sum((GatheringLocation x) => _003C_003Ec._206A_206E_202B_200E_202A_202C_202A_206B_206B_200B_206E_202E_200D_202C_202D_202A_202E_206E_200D_200B_206A_200D_202B_206E_200E_202C_202C_206A_202E_200F_200B_200E_202E_200B_200C_206D_200E_202B_202D_202D_202E(x).Z) / (float)_200D_206C_206C_202A_200D_202D_202E_200C_206B_200E_202C_200D_202D_206B_200C_202B_202D_206D_202A_202C_200B_200E_206F_206E_200B_202B_206A_206E_206C_202D_206D_200C_200E_200E_202C_206D_202A_202E_206C_202B_202E(gatheringNode).Count - }; - vector = _navmeshIpc.GetPointOnFloor(vector2, unlandable: true); - num = ((!vector.HasValue) ? (-102617647) : (-102617639)); - break; - case 14: - Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(631347653)); - return; - case 4: - num8 = 0; - goto IL_02d9; - case 6: - return; - case 12: - num = (_taskQueue.AllTasksComplete ? (-102617648) : (-102617633)); - break; - case 5: - num8 = (_gameFunctions.IsFlyingUnlocked(num7) ? 1 : 0); - goto IL_02d9; - case 11: - return; - case 15: - _taskQueue.Enqueue(new MoveToLandingLocation.Task(num7, flag, gatheringNode)); - _taskQueue.Enqueue(new Questionable.Controller.Steps.Common.Mount.UnmountTask()); - _taskQueue.Enqueue(new Interact.Task(_206A_200D_206D_206B_202C_200E_202A_200E_202C_200F_202A_206E_202D_206F_206E_206C_206B_200C_206B_202D_202A_202D_206D_202B_200E_206F_206B_206A_200B_206C_206F_200E_200E_200C_206B_202A_202A_202C_202E_206D_202E(gatheringNode), null, EInteractionType.Gather, SkipMarkerCheck: true)); - QueueGatherNode(gatheringNode); - return; - case 9: - { - TaskQueue taskQueue = _taskQueue; - ushort territoryId = num7; - Vector3 destination = vector ?? vector2; - float? stopDistance = 50f; - bool fly = flag; - taskQueue.Enqueue(new MoveTask(territoryId, destination, null, MountRequired: false, DismountRequired: false, stopDistance, null, DisableNavmesh: false, null, fly, Land: false, IgnoreDistanceToObject: true, RestartNavigation: true, EInteractionType.WalkTo)); - num = -102617641; - break; - } - IL_02d9: - flag = (byte)num8 != 0; - num = ((_200D_206C_206C_202A_200D_202D_202E_200C_206B_200E_202C_200D_202D_206B_200C_202B_202D_206D_202A_202C_200B_200E_206F_206E_200B_202B_206A_206E_206C_202D_206D_200C_200E_200E_202C_206D_202A_202E_206C_202B_202E(gatheringNode).Count <= 1) ? (-102617641) : (-102617638)); - break; - } + return; } + GatheringNode gatheringNode = FindNextTargetableNodeAndUpdateIndex(_currentRequest); + if (gatheringNode == null) + { + return; + } + if (_currentRequest.Root.Steps.Count == 0 || gatheringNode.Locations.Count == 0) + { + Stop("Empty gathering plan"); + return; + } + List<QuestStep> steps = _currentRequest.Root.Steps; + ushort territoryId = steps[steps.Count - 1].TerritoryId; + bool? fly = gatheringNode.Fly; + bool? flyBetweenNodes = _currentRequest.Root.FlyBetweenNodes; + bool flag = (fly ?? flyBetweenNodes ?? true) && _gameFunctions.IsFlyingUnlocked(territoryId); + if (gatheringNode.Locations.Count > 1) + { + Vector3 vector = new Vector3 + { + X = gatheringNode.Locations.Sum((GatheringLocation x) => x.Position.X) / (float)gatheringNode.Locations.Count, + Y = gatheringNode.Locations.Select((GatheringLocation x) => x.Position.Y).Max() + 5f, + Z = gatheringNode.Locations.Sum((GatheringLocation x) => x.Position.Z) / (float)gatheringNode.Locations.Count + }; + Vector3? vector2 = _navmeshIpc.GetPointOnFloor(vector, unlandable: true); + if (vector2.HasValue) + { + Vector3 value = vector2.Value; + value.Y = vector2.Value.Y + (flag ? 3f : 0f); + vector2 = value; + } + TaskQueue taskQueue = _taskQueue; + Vector3 destination = vector2 ?? vector; + float? stopDistance = 50f; + bool fly2 = flag; + taskQueue.Enqueue(new MoveTask(territoryId, destination, null, MountRequired: false, DismountRequired: false, stopDistance, null, DisableNavmesh: false, null, fly2, Land: false, IgnoreDistanceToObject: true, RestartNavigation: true, EInteractionType.WalkTo)); + } + _taskQueue.Enqueue(new MoveToLandingLocation.Task(territoryId, flag, gatheringNode)); + _taskQueue.Enqueue(new Questionable.Controller.Steps.Common.Mount.UnmountTask()); + _taskQueue.Enqueue(new Interact.Task(gatheringNode.DataId, null, EInteractionType.Gather, SkipMarkerCheck: true)); + QueueGatherNode(gatheringNode); } private void QueueGatherNode(GatheringNode currentNode) { bool[] array = new bool[2] { false, true }; - int num = 0; - int num2 = -107652498; - bool revisitRequired = default(bool); - while (true) + foreach (bool revisitRequired in array) { - int num3 = num2; - int num4 = -107652501; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) + _taskQueue.Enqueue(new DoGather.Task(_currentRequest.Data, currentNode, revisitRequired)); + if (_currentRequest.Data.Collectability > 0) { - case 1: _taskQueue.Enqueue(new DoGatherCollectable.Task(_currentRequest.Data, currentNode, revisitRequired)); - num2 = -107652497; - break; - case 4: - { - int num8 = num; - num4 = 1; - num5 = num8; - int num9 = num5 ^ num4; - int num10 = num5 & num4; - num = num9 + (num10 + num10); - num2 = -107652498; - break; - } - case 0: - num2 = -107652498; - break; - case 2: - revisitRequired = array[num]; - _taskQueue.Enqueue(new DoGather.Task(_currentRequest.Data, currentNode, revisitRequired)); - num2 = ((_currentRequest.Data.Collectability <= 0) ? (-107652497) : (-107652502)); - break; - case 5: - num2 = ((num < array.Length) ? (-107652503) : (-107652504)); - break; - case 3: - return; } } } public unsafe bool HasRequestedItems() { - int num = ((_currentRequest != null) ? 1376510250 : 1376510251); - InventoryManager* ptr = default(InventoryManager*); - while (true) + if (_currentRequest == null) { - int num2 = num; - int num3 = 1376510250; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - ptr = InventoryManager.Instance(); - num = ((ptr != null) ? 1376510254 : 1376510249); - break; - case 3: - return false; - case 4: - return ptr->GetInventoryItemCount(_currentRequest.Data.ItemId, isHq: false, checkEquipped: true, checkArmory: true, (short)_currentRequest.Data.Collectability) >= _currentRequest.Data.Quantity; - case 1: - return true; - case 2: - num = 1376510251; - break; - } + return true; } + InventoryManager* ptr = InventoryManager.Instance(); + if (ptr == null) + { + return false; + } + return ptr->GetInventoryItemCount(_currentRequest.Data.ItemId, isHq: false, checkEquipped: true, checkArmory: true, (short)_currentRequest.Data.Collectability) >= _currentRequest.Data.Quantity; } public bool HasNodeDisappeared(GatheringNode node) { - return !_objectTable.Any(delegate(IGameObject x) - { - int num = ((_003C_003Ec__DisplayClass25_0._206F_206D_206B_202C_206B_206F_200D_206C_206A_202D_206A_202D_200F_200C_206D_206F_202C_200C_206F_206F_206A_206B_200C_206F_206A_200C_202C_200E_206E_200B_202A_202D_202A_200D_200D_202A_200E_206B_202E_202B_202E(x) != ObjectKind.GatheringPoint) ? 1567152944 : 1567152945); - while (true) - { - int num2 = num; - int num3 = 1567152944; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 1567152945; - break; - case 0: - return false; - case 1: - num = ((!_003C_003Ec__DisplayClass25_0._200F_202A_202C_202D_206B_206D_206B_206B_200E_206B_206A_206E_202D_206F_206E_202E_202A_202E_202D_200D_206B_206C_202B_206A_200E_202A_206B_206A_200F_206B_206D_206F_202B_202D_206E_206C_200D_200E_202E_200C_202E(x)) ? 1567152944 : 1567152947); - break; - case 3: - return _003C_003Ec__DisplayClass25_0._202A_206D_200D_206E_206C_206C_202A_206B_200B_206F_200F_200F_202A_202D_206C_206B_200B_206C_200F_200E_202B_200E_206C_206F_206A_206C_200C_200D_202B_200F_200B_206D_206D_202C_206F_202C_206E_200C_200E_200F_202E(x) == _003C_003Ec__DisplayClass25_0._202C_202D_200D_202B_206D_200D_206B_206F_202A_200B_206E_206A_202E_206C_206C_200D_202E_200F_202C_206E_200D_202B_200E_202B_206D_202B_206C_206B_200C_200B_200D_206C_206E_206C_202D_206A_200F_206E_202D_202C_202E(node); - } - } - }); + return !_objectTable.Any((IGameObject x) => x.ObjectKind == ObjectKind.GatheringPoint && x.IsTargetable && x.BaseId == node.DataId); } private GatheringNode? FindNextTargetableNodeAndUpdateIndex(CurrentRequest currentRequest) { - int num = 0; - int num2 = 1101437805; - int num7 = default(int); - _003C_003Ec__DisplayClass26_0 _003C_003Ec__DisplayClass26_2 = default(_003C_003Ec__DisplayClass26_0); - int num14 = default(int); - _003C_003Ec__DisplayClass26_1 _003C_003Ec__DisplayClass26_ = default(_003C_003Ec__DisplayClass26_1); - int num9 = default(int); - while (true) + for (int i = 0; i < currentRequest.Nodes.Count; i++) { - int num3 = num2; - int num4 = 1101437799; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + int num = (currentRequest.CurrentIndex + i) % currentRequest.Nodes.Count; + GatheringNode currentNode = currentRequest.Nodes[num]; + if (_objectTable.Any((IGameObject x) => x.ObjectKind == ObjectKind.GatheringPoint && x.BaseId == currentNode.DataId && x.IsTargetable)) { - case 2: - num2 = 1101437805; - break; - case 9: - return null; - case 7: - num2 = ((num7 < currentRequest.Nodes.Count) ? 1101437795 : 1101437806); - break; - case 1: - _003C_003Ec__DisplayClass26_2 = new _003C_003Ec__DisplayClass26_0(); - num14 = (currentRequest.CurrentIndex + num) % currentRequest.Nodes.Count; - _003C_003Ec__DisplayClass26_2.currentNode = currentRequest.Nodes[num14]; - num2 = ((!_objectTable.Any(_003C_003Ec__DisplayClass26_2._003CFindNextTargetableNodeAndUpdateIndex_003Eb__0)) ? 1101437793 : 1101437796); - break; - case 6: - { - int num10 = num; - num4 = 1; - num5 = num10; - int num11 = num5 ^ num4; - int num12 = num5 & num4; - num = num11 + (num12 + num12); - num2 = 1101437805; - break; - } - case 3: - { - int num13 = num14; - num4 = 1; - num5 = num13; - currentRequest.CurrentIndex = ((num5 | num4) + (num5 & num4)) % currentRequest.Nodes.Count; - return _003C_003Ec__DisplayClass26_2.currentNode; - } - case 5: - num7 = 0; - num2 = 1101437792; - break; - case 10: - num2 = ((num < currentRequest.Nodes.Count) ? 1101437798 : 1101437794); - break; - case 4: - _003C_003Ec__DisplayClass26_ = new _003C_003Ec__DisplayClass26_1(); - _003C_003Ec__DisplayClass26_._003C_003E4__this = this; - num9 = (currentRequest.CurrentIndex + num7) % currentRequest.Nodes.Count; - _003C_003Ec__DisplayClass26_.currentNode = currentRequest.Nodes[num9]; - num2 = ((!_200D_206C_206C_202A_200D_202D_202E_200C_206B_200E_202C_200D_202D_206B_200C_202B_202D_206D_202A_202C_200B_200E_206F_206E_200B_202B_206A_206E_206C_202D_206D_200C_200E_200E_202C_206D_202A_202E_206C_202B_202E(_003C_003Ec__DisplayClass26_.currentNode).Select(_003C_003Ec__DisplayClass26_._003CFindNextTargetableNodeAndUpdateIndex_003Eb__1).ToList().Any((IGameObject x) => x == null)) ? 1101437799 : 1101437807); - break; - case 8: - { - int num8 = num9; - num4 = 1; - num5 = num8; - currentRequest.CurrentIndex = ((num5 | num4) + (num5 & num4)) % currentRequest.Nodes.Count; - return _003C_003Ec__DisplayClass26_.currentNode; - } - case 0: - { - int num6 = num7; - num4 = 1; - num5 = num6; - num7 = (num5 | num4) + (num5 & num4); - num2 = 1101437792; - break; - } + currentRequest.CurrentIndex = (num + 1) % currentRequest.Nodes.Count; + return currentNode; } } + for (int num2 = 0; num2 < currentRequest.Nodes.Count; num2++) + { + int num3 = (currentRequest.CurrentIndex + num2) % currentRequest.Nodes.Count; + GatheringNode currentNode2 = currentRequest.Nodes[num3]; + if (currentNode2.Locations.Select((GatheringLocation x) => _objectTable.FirstOrDefault((IGameObject y) => currentNode2.DataId == y.BaseId && Vector3.Distance(x.Position, y.Position) < 0.1f)).ToList().Any((IGameObject x) => x == null)) + { + currentRequest.CurrentIndex = (num3 + 1) % currentRequest.Nodes.Count; + return currentNode2; + } + } + return null; } - [MethodImpl(MethodImplOptions.NoInlining)] public void OnNormalToast(SeString message) { - if (!_206C_202B_200F_206E_202D_206C_206B_200D_200C_206D_206F_206A_206D_200C_202E_200F_206F_202A_200D_206F_206A_202B_206E_202D_202E_200E_206D_206D_200B_206D_202E_206A_202C_206A_200C_200C_206C_206D_200C_202E_202E(_revisitRegex, _206D_206D_202E_206A_206C_206C_206F_200C_200C_206D_206A_202D_202A_200B_202E_206C_202C_206F_202B_202B_206D_200E_206D_200F_206E_206B_206E_202E_200D_206F_206E_202D_202C_202E_202B_202B_202B_200D_200F_206B_202E(message))) + if (!_revisitRegex.IsMatch(message.TextValue)) { return; } - int num = -1389255310; - IRevisitAware revisitAware2 = default(IRevisitAware); - IRevisitAware revisitAware = default(IRevisitAware); - while (true) + _logger.LogDebug("Revisit triggered for the current gathering node"); + if (_taskQueue.CurrentTaskExecutor?.CurrentTask is IRevisitAware revisitAware) { - int num2 = num; - int num3 = -1389255312; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + revisitAware.OnRevisit(); + } + foreach (ITask remainingTask in _taskQueue.RemainingTasks) + { + if (remainingTask is IRevisitAware revisitAware2) { - case 0: - num = -1389255310; - break; - case 1: revisitAware2.OnRevisit(); - num = -1389255309; - break; - case 2: - _200F_200D_200D_206D_202A_206F_200E_202C_206A_206A_200D_202E_202E_200D_200C_206E_200E_200C_202B_202C_200D_200B_202E_200C_206F_206E_202B_206B_206F_206A_202E_206D_206F_206E_206B_202E_206D_202E_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1337892205), Array.Empty<object>()); - revisitAware2 = _taskQueue.CurrentTaskExecutor?.CurrentTask as IRevisitAware; - num = ((revisitAware2 == null) ? (-1389255309) : (-1389255311)); - break; - case 3: - { - IEnumerator<ITask> enumerator = _taskQueue.RemainingTasks.GetEnumerator(); - try - { - num = 1175940356; - while (true) - { - int num5 = num; - num3 = 1175940356; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 3: - num = 1175940356; - break; - case 4: - revisitAware.OnRevisit(); - num = 1175940356; - break; - case 2: - revisitAware = enumerator.Current as IRevisitAware; - num = ((revisitAware == null) ? 1175940356 : 1175940352); - break; - case 0: - num = (_200D_206A_202B_202E_202E_200B_206B_202B_206C_206C_200F_206A_206A_202E_202D_206D_206B_200C_200C_206E_206E_206A_206C_206B_206D_206C_200D_200D_206C_206D_200E_206C_200B_200B_202B_206A_200C_200F_200D_206D_202E((IEnumerator)enumerator) ? 1175940358 : 1175940357); - break; - case 1: - return; - } - } - } - finally - { - num = ((enumerator == null) ? (-1139545443) : (-1139545442)); - while (true) - { - int num8 = num; - num3 = -1139545444; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 0: - num = -1139545442; - break; - case 2: - _200C_200C_206F_206D_206E_206F_202D_202A_206A_206F_202C_206C_206E_202E_202B_206D_206E_206D_206B_200D_206D_202A_200F_200D_206F_200F_202C_206F_202D_202A_206E_200C_200D_202C_206D_200F_206E_200F_206C_200E_202E((IDisposable)enumerator); - num = -1139545443; - break; - case 1: - goto end_IL_019c; - } - continue; - end_IL_019c: - break; - } - } - } } } } - - static InvalidDataException _202B_206A_206F_200C_206A_202C_206F_200F_206E_200C_206E_206F_200E_200C_202B_200B_200B_206C_200C_200C_200C_206A_206B_200D_202B_206E_206F_200E_206D_206F_206C_200C_200F_200F_200C_202A_200F_200F_200D_202D_202E(string P_0) - { - return new InvalidDataException(P_0); - } - - static void _206B_206D_206C_202E_202D_206A_200E_202B_200C_206F_202C_206B_206E_206F_206C_206D_202C_206F_202E_200F_202A_202C_202A_202A_206C_206A_206D_202A_206D_206C_200F_202A_206C_200B_200E_206B_202A_206C_200F_202E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogError(P_1, P_2); - } - - static List<GatheringNodeGroup> _202E_206E_206C_200C_200B_206C_200B_202C_206C_200D_206A_206B_206C_206A_200E_206E_206A_200B_206D_200B_200E_202A_202B_206D_206E_206F_202A_200F_200B_206B_206B_202E_200E_200C_206F_200B_202E_202C_200E_200D_202E(GatheringRoot P_0) - { - return P_0.Groups; - } - - static bool _202A_200D_200B_206D_202D_206E_200E_202C_206D_206C_206F_200F_200D_202D_202E_202D_202B_206A_206F_202A_202E_202C_206F_200B_206D_200B_206E_200B_206F_200D_202C_202C_206C_200F_206C_206D_206C_202A_200F_206D_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static void _200D_200D_202D_202E_206F_202C_206B_202E_206C_206A_200B_206B_200D_202D_202C_202A_202D_206C_206F_200C_206C_206F_206D_202A_200E_206F_206E_202A_206A_202D_206B_202D_206A_200F_202B_206C_202E_202C_202E_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static List<QuestStep> _200B_206C_200C_206C_202E_206F_206A_200C_206D_202C_202C_202C_200F_200C_202C_202C_202C_202B_206B_206B_206E_200C_202D_200D_202B_202C_206D_206E_200E_200D_202E_206D_206D_206A_202B_200F_200D_206D_206F_202E_202E(GatheringRoot P_0) - { - return P_0.Steps; - } - - static List<GatheringLocation> _200D_206C_206C_202A_200D_202D_202E_200C_206B_200E_202C_200D_202D_206B_200C_202B_202D_206D_202A_202C_200B_200E_206F_206E_200B_202B_206A_206E_206C_202D_206D_200C_200E_200E_202C_206D_202A_202E_206C_202B_202E(GatheringNode P_0) - { - return P_0.Locations; - } - - static ushort _202A_202A_200B_202A_206A_202D_206F_206C_200B_206D_206E_206A_200E_202B_200B_200D_202A_202D_200F_200E_200E_202B_202E_200E_206B_202B_200F_206D_206D_206C_202E_206D_200E_202C_206F_206B_200E_202D_206E_206A_202E(QuestStep P_0) - { - return P_0.TerritoryId; - } - - static bool? _200D_206D_206E_202C_202B_200E_200C_202E_202D_202C_200E_206B_206D_202B_202A_202C_202E_206F_206E_202E_200D_200E_206B_202B_202D_206D_202A_200F_202E_202E_206F_206E_206D_206E_202D_202B_206B_200E_202B_206F_202E(GatheringNode P_0) - { - return P_0.Fly; - } - - static bool? _200D_206E_206C_206C_200B_202C_206D_200E_206D_202B_206F_202A_202D_202A_200C_200B_200B_200B_206C_202C_202E_206A_206D_200C_206A_206E_200B_206E_202E_206F_206B_206B_202D_200B_202C_202C_206A_206B_206B_202D_202E(GatheringRoot P_0) - { - return P_0.FlyBetweenNodes; - } - - static float _202C_206D_200E_200D_202D_206C_206C_200E_202C_206C_202B_206D_200D_206E_206B_200D_202D_200F_200C_206D_206A_206C_202A_200F_202E_202D_202A_206E_206B_200E_202E_206E_202D_206F_200F_202E_206B_206A_206D_202D_202E(IEnumerable<float> P_0) - { - return P_0.Max(); - } - - static uint _206A_200D_206D_206B_202C_200E_202A_200E_202C_200F_202A_206E_202D_206F_206E_206C_206B_200C_206B_202D_202A_202D_206D_202B_200E_206F_206B_206A_200B_206C_206F_200E_200E_200C_206B_202A_202A_202C_202E_206D_202E(GatheringNode P_0) - { - return P_0.DataId; - } - - static string _206D_206D_202E_206A_206C_206C_206F_200C_200C_206D_206A_202D_202A_200B_202E_206C_202C_206F_202B_202B_206D_200E_206D_200F_206E_206B_206E_202E_200D_206F_206E_202D_202C_202E_202B_202B_202B_200D_200F_206B_202E(SeString P_0) - { - return P_0.TextValue; - } - - static bool _206C_202B_200F_206E_202D_206C_206B_200D_200C_206D_206F_206A_206D_200C_202E_200F_206F_202A_200D_206F_206A_202B_206E_202D_202E_200E_206D_206D_200B_206D_202E_206A_202C_206A_200C_200C_206C_206D_200C_202E_202E(Regex P_0, string P_1) - { - return P_0.IsMatch(P_1); - } - - static void _200F_200D_200D_206D_202A_206F_200E_202C_206A_206A_200D_202E_202E_200D_200C_206E_200E_200C_202B_202C_200D_200B_202E_200C_206F_206E_202B_206B_206F_206A_202E_206D_206F_206E_206B_202E_206D_202E_202B_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _200D_206A_202B_202E_202E_200B_206B_202B_206C_206C_200F_206A_206A_202E_202D_206D_206B_200C_200C_206E_206E_206A_206C_206B_206D_206C_200D_200D_206C_206D_200E_206C_200B_200B_202B_206A_200C_200F_200D_206D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200C_200C_206F_206D_206E_206F_202D_202A_206A_206F_202C_206C_206E_202E_202B_206D_206E_206D_206B_200D_206D_202A_200F_200D_206F_200F_202C_206F_202D_202A_206E_200C_200D_202C_206D_200F_206E_200F_206C_200E_202E(IDisposable P_0) - { - P_0.Dispose(); - } } diff --git a/Questionable/Questionable.Controller/GatheringPointRegistry.cs b/Questionable/Questionable.Controller/GatheringPointRegistry.cs index 18f4f4d..3277e08 100644 --- a/Questionable/Questionable.Controller/GatheringPointRegistry.cs +++ b/Questionable/Questionable.Controller/GatheringPointRegistry.cs @@ -1,13 +1,11 @@ #define RELEASE using System; -using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.IO; using System.Linq; -using System.Runtime.CompilerServices; using System.Text.Json; using System.Text.Json.Nodes; using Dalamud.Plugin; @@ -24,39 +22,6 @@ namespace Questionable.Controller; internal sealed class GatheringPointRegistry { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass16_0 - { - public uint itemId; - - public GatheringPointRegistry _003C_003E4__this; - - internal bool _003CTryGetGatheringPointId_003Eb__0(KeyValuePair<GatheringPointId, GatheringRoot> x) - { - return _202A_202A_200D_206A_200E_202D_206E_206A_202A_200F_206D_200F_206C_206A_200B_202B_206A_202A_206F_200B_200D_206A_200E_200F_202A_200C_200E_200F_202C_200B_206C_200B_202C_200C_200B_206C_206F_206E_200F_200C_202E(x.Value).Contains(itemId); - } - - internal bool _003CTryGetGatheringPointId_003Eb__2(GatheringPointId x) - { - return _003C_003E4__this._gatheringData.MinerGatheringPoints.Contains(x); - } - - internal bool _003CTryGetGatheringPointId_003Eb__3(KeyValuePair<GatheringPointId, GatheringRoot> x) - { - return _202A_202A_200D_206A_200E_202D_206E_206A_202A_200F_206D_200F_206C_206A_200B_202B_206A_202A_206F_200B_200D_206A_200E_200F_202A_200C_200E_200F_202C_200B_206C_200B_202C_200C_200B_206C_206F_206E_200F_200C_202E(x.Value).Contains(itemId); - } - - internal bool _003CTryGetGatheringPointId_003Eb__5(GatheringPointId x) - { - return _003C_003E4__this._gatheringData.BotanistGatheringPoints.Contains(x); - } - - static List<uint> _202A_202A_200D_206A_200E_202D_206E_206A_202A_200F_206D_200F_206C_206A_200B_202B_206A_202A_206F_200B_200D_206A_200E_200F_202A_200C_200E_200F_202C_200B_206C_200B_202C_200C_200B_206C_206F_206E_200F_200C_202E(GatheringRoot P_0) - { - return P_0.ExtraQuestItems; - } - } - private readonly IDalamudPluginInterface _pluginInterface; private readonly GatheringData _gatheringData; @@ -78,7 +43,6 @@ internal sealed class GatheringPointRegistry _logger = logger; } - [MethodImpl(MethodImplOptions.NoInlining)] public Dictionary<GatheringPointId, GatheringRoot> Build() { Dictionary<GatheringPointId, GatheringRoot> dictionary = new Dictionary<GatheringPointId, GatheringRoot>(); @@ -86,72 +50,17 @@ internal sealed class GatheringPointRegistry LoadGatheringPointsFromAssembly(dictionary); try { - LoadFromDirectory(dictionary, _202C_202B_202C_206E_200E_206B_200F_206E_202A_200B_200F_206A_200D_200D_202E_206E_202A_206D_200E_200E_200D_202C_206D_206B_206B_200B_206D_200B_206A_202C_206C_206D_200C_202B_200F_200F_206E_200D_206A_206B_202E(_202A_206B_206E_206A_200F_206F_202E_202E_206E_200B_206F_202A_202C_200D_200C_200F_206A_206E_200F_202E_206A_200E_206A_202A_200B_202B_200B_206D_200E_202A_206D_202E_206E_206C_202C_202A_202E_202C_200F_206B_202E(_202B_200C_206B_202C_202D_202A_200C_206A_200F_202B_206A_206B_200D_206D_202A_206F_200C_202A_200F_200B_202C_206D_200B_200B_200F_206F_206E_202B_200D_206D_202D_206E_206A_202C_206F_202D_206F_206E_202E_206E_202E((FileSystemInfo)_202C_200E_206E_206B_200B_200D_206A_202C_202A_202A_206A_206E_200F_200D_206C_200F_206A_200C_206A_200F_200B_206A_206D_202A_200D_206F_206D_202C_200F_200C_200E_202A_202C_200E_202A_202C_200E_200C_200C_206D_202E(_pluginInterface)), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1200409228)))); + LoadFromDirectory(dictionary, new DirectoryInfo(Path.Combine(_pluginInterface.ConfigDirectory.FullName, "GatheringPoints"))); } - catch (Exception ex) + catch (Exception exception) { - _202D_202E_206E_206B_206F_200B_200E_206C_206E_206E_200B_202B_200E_206A_202B_200F_206D_206C_202A_206D_200F_202B_206D_200C_206E_206C_206E_206F_202A_206F_200E_200D_200E_202C_206C_200F_200D_206A_206F_202D_202E((ILogger)_logger, ex, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1765916983), Array.Empty<object>()); + _logger.LogError(exception, "Failed to load gathering points from user directory (some may have been successfully loaded)"); } - IEnumerator<ValidationIssue> enumerator = _gatheringSchemaValidator.Validate().GetEnumerator(); - try + foreach (ValidationIssue item in _gatheringSchemaValidator.Validate()) { - int num = 629723332; - while (true) - { - int num2 = num; - int num3 = 629723333; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - num = (_206E_200E_200E_202D_202D_202D_200F_202B_202E_206E_206C_202A_202E_206C_202D_206B_206C_206A_202C_200C_206C_206B_206F_200B_206B_200D_206F_200B_206E_206B_202E_200D_202D_206F_200C_200E_200D_202B_200D_200C_202E((IEnumerator)enumerator) ? 629723335 : 629723334); - break; - case 2: - { - ValidationIssue current = enumerator.Current; - _questValidator.AddValidationIssue(current); - num = 629723332; - break; - } - case 0: - num = 629723332; - break; - case 3: - goto end_IL_0086; - } - continue; - end_IL_0086: - break; - } + _questValidator.AddValidationIssue(item); } - finally - { - int num = ((enumerator == null) ? 914645726 : 914645725); - while (true) - { - int num7 = num; - int num3 = 914645724; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_0129; - case 1: - _200C_206B_206C_202A_200E_200D_206E_202B_200D_202D_200C_200C_206B_200F_200C_202A_206E_200D_206D_202A_200F_202A_202B_200D_200C_202E_200B_206B_206C_200D_202B_206D_206E_206F_202C_206D_202B_202C_202B_206F_202E((IDisposable)enumerator); - num = 914645726; - break; - case 0: - num = 914645725; - break; - } - continue; - end_IL_0129: - break; - } - } - _200F_206D_202C_206A_202E_200E_206A_202E_206D_200B_200E_202B_206A_206E_202B_206B_202B_200B_206E_200D_206F_206F_206B_200D_202A_200F_206A_200D_206E_202A_206C_202E_206F_202C_202E_200C_206B_200B_206F_202D_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(509143359), new object[1] { dictionary.Count }); + _logger.LogDebug("Loaded {Count} gathering points in total", dictionary.Count); return dictionary; } @@ -165,354 +74,104 @@ internal sealed class GatheringPointRegistry Publish(Build()); } - [MethodImpl(MethodImplOptions.NoInlining)] [Conditional("RELEASE")] private void LoadGatheringPointsFromAssembly(Dictionary<GatheringPointId, GatheringRoot> gatheringPoints) { - IEnumerator<KeyValuePair<ushort, GatheringRoot>> enumerator = _202B_206E_202A_202D_206C_200E_202E_206E_202D_202B_206F_200D_206F_206B_200E_202E_200F_206C_202B_200C_200C_200D_206D_206D_202C_200C_200B_200D_202D_200C_206B_206E_202C_200C_202B_206B_206D_206A_202E_202D_202E().GetEnumerator(); - try + foreach (var (value, value2) in AssemblyGatheringLocationLoader.GetLocations()) { - int num = 136315747; - while (true) - { - int num2 = num; - int num3 = 136315744; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 136315747; - break; - case 3: - num = (_206E_200E_200E_202D_202D_202D_200F_202B_202E_206E_206C_202A_202E_206C_202D_206B_206C_206A_202C_200C_206C_206B_206F_200B_206B_200D_206F_200B_206E_206B_202E_200D_202D_206F_200C_200E_200D_202B_200D_200C_202E((IEnumerator)enumerator) ? 136315746 : 136315745); - break; - case 2: - var (num8, value) = (KeyValuePair<ushort, GatheringRoot>)(ref enumerator.Current); - gatheringPoints[_206A_200B_206E_202D_202C_206C_206B_200E_202B_200B_200B_200D_206E_202B_206A_200D_206E_206E_200F_206E_200E_202B_200E_202D_200C_206F_200C_206E_206C_200F_206A_206F_206D_200B_200E_200B_200E_200E_206B_200E_202E(num8)] = value; - num = 136315747; - break; - case 1: - goto end_IL_0017; - } - continue; - end_IL_0017: - break; - } + gatheringPoints[new GatheringPointId(value)] = value2; } - finally - { - int num = ((enumerator == null) ? 1026507161 : 1026507162); - while (true) - { - int num9 = num; - int num3 = 1026507163; - int num4 = num9; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1026507162; - break; - case 1: - _200C_206B_206C_202A_200E_200D_206E_202B_200D_202D_200C_200C_206B_200F_200C_202A_206E_200D_206D_202A_200F_202A_202B_200D_200C_202E_200B_206B_206C_200D_202B_206D_206E_206F_202C_206D_202B_202C_202B_206F_202E((IDisposable)enumerator); - num = 1026507161; - break; - case 2: - goto end_IL_00cc; - } - continue; - end_IL_00cc: - break; - } - } - _200F_206D_202C_206A_202E_200E_206A_202E_206D_200B_200E_202B_206A_206E_202B_206B_202B_200B_206E_200D_206F_206F_206B_200D_202A_200F_206A_200D_206E_202A_206C_202E_206F_202C_202E_200C_206B_200B_206F_202D_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1162006669), new object[1] { gatheringPoints.Count }); + _logger.LogDebug("Loaded {Count} gathering points from assembly", gatheringPoints.Count); } - [MethodImpl(MethodImplOptions.NoInlining)] [Conditional("DEBUG")] private void LoadGatheringPointsFromProjectDirectory(Dictionary<GatheringPointId, GatheringRoot> gatheringPoints) { - DirectoryInfo directoryInfo = _200E_206A_200F_206A_206F_202B_202A_200C_200C_206B_206D_200D_200C_200E_206F_200D_206B_206E_206E_202B_206F_206F_206D_206F_206F_200F_200E_202A_202B_200B_206A_206A_206E_202B_202D_202A_206B_200E_200C_200F_202E(_200C_202C_206D_202E_202C_202B_200C_206F_200E_206C_206F_202E_200B_206F_200F_206C_206C_206F_206B_202A_200F_200C_200B_200C_200D_202D_200E_202A_206F_206F_200F_200C_200F_206E_200F_206F_200F_200F_202E_206B_202E(_pluginInterface)); - object obj; + DirectoryInfo directoryInfo = _pluginInterface.AssemblyLocation.Directory?.Parent?.Parent; if (directoryInfo == null) { - obj = null; + _logger.LogWarning("Could not determine solution directory from assembly location: {AssemblyLocation}", _pluginInterface.AssemblyLocation.FullName); + return; } - else + DirectoryInfo directoryInfo2 = new DirectoryInfo(Path.Combine(directoryInfo.FullName, "Paths", "GatheringPaths")); + try { - DirectoryInfo directoryInfo2 = _200C_206E_202A_200D_200B_202E_206B_200E_200C_200E_206F_202B_202C_200E_200F_206E_202B_200F_200B_202E_202E_206F_202D_206E_202B_200C_202C_206E_200C_206B_206B_200F_202E_206F_200C_200D_200E_200B_200F_200E_202E(directoryInfo); - obj = ((directoryInfo2 != null) ? _200C_206E_202A_200D_200B_202E_206B_200E_200C_200E_206F_202B_202C_200E_200F_206E_202B_200F_200B_202E_202E_206F_202D_206E_202B_200C_202C_206E_200C_206B_206B_200F_202E_206F_200C_200D_200E_200B_200F_200E_202E(directoryInfo2) : null); + foreach (string value in ExpansionData.ExpansionFolders.Values) + { + LoadFromDirectory(gatheringPoints, new DirectoryInfo(Path.Combine(directoryInfo2.FullName, value))); + } } - DirectoryInfo directoryInfo3 = (DirectoryInfo)obj; - int num = ((directoryInfo3 != null) ? 750633398 : 750633399); - while (true) + catch (Exception exception) { - int num2 = num; - int num3 = 750633398; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0081; - case 1: - _206D_200C_202C_206C_206D_206B_202C_202B_202D_206D_200B_206D_202A_200C_202C_206A_202D_200C_200C_200D_206F_200C_202A_206A_200F_200C_202C_200D_202A_200F_202B_200E_206E_202C_202C_202E_202E_206A_202A_200F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-793417510), new object[1] { _202B_200C_206B_202C_202D_202A_200C_206A_200F_202B_206A_206B_200D_206D_202A_206F_200C_202A_200F_200B_202C_206D_200B_200B_200F_206F_206E_202B_200D_206D_202D_206E_206A_202C_206F_202D_206F_206E_202E_206E_202E((FileSystemInfo)_200C_202C_206D_202E_202C_202B_200C_206F_200E_206C_206F_202E_200B_206F_200F_206C_206C_206F_206B_202A_200F_200C_200B_200C_200D_202D_200E_202A_206F_206F_200F_200C_200F_206E_200F_206F_200F_200F_202E_206B_202E(_pluginInterface)) }); - return; - case 0: - { - DirectoryInfo directoryInfo4 = _202C_202B_202C_206E_200E_206B_200F_206E_202A_200B_200F_206A_200D_200D_202E_206E_202A_206D_200E_200E_200D_202C_206D_206B_206B_200B_206D_200B_206A_202C_206C_206D_200C_202B_200F_200F_206E_200D_206A_206B_202E(_200D_200B_202E_200F_202A_206D_200C_206A_202A_206D_206F_202D_200B_206C_206D_202D_202C_202E_200D_206A_202A_206E_200D_206F_206C_202D_206F_200E_202D_202B_200D_202D_202D_206B_202E_200C_206D_200E_202A_202B_202E(_202B_200C_206B_202C_202D_202A_200C_206A_200F_202B_206A_206B_200D_206D_202A_206F_200C_202A_200F_200B_202C_206D_200B_200B_200F_206F_206E_202B_200D_206D_202D_206E_206A_202C_206F_202D_206F_206E_202E_206E_202E((FileSystemInfo)directoryInfo3), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1542749489), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1860611895))); - try - { - IEnumerator<string> enumerator = ExpansionData.ExpansionFolders.Values.GetEnumerator(); - try - { - num = 1661986268; - while (true) - { - int num7 = num; - num3 = 1661986269; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - num = 1661986268; - break; - case 2: - { - string current = enumerator.Current; - LoadFromDirectory(gatheringPoints, _202C_202B_202C_206E_200E_206B_200F_206E_202A_200B_200F_206A_200D_200D_202E_206E_202A_206D_200E_200E_200D_202C_206D_206B_206B_200B_206D_200B_206A_202C_206C_206D_200C_202B_200F_200F_206E_200D_206A_206B_202E(_202A_206B_206E_206A_200F_206F_202E_202E_206E_200B_206F_202A_202C_200D_200C_200F_206A_206E_200F_202E_206A_200E_206A_202A_200B_202B_200B_206D_200E_202A_206D_202E_206E_206C_202C_202A_202E_202C_200F_206B_202E(_202B_200C_206B_202C_202D_202A_200C_206A_200F_202B_206A_206B_200D_206D_202A_206F_200C_202A_200F_200B_202C_206D_200B_200B_200F_206F_206E_202B_200D_206D_202D_206E_206A_202C_206F_202D_206F_206E_202E_206E_202E((FileSystemInfo)directoryInfo4), current))); - num = 1661986268; - break; - } - case 1: - num = (_206E_200E_200E_202D_202D_202D_200F_202B_202E_206E_206C_202A_202E_206C_202D_206B_206C_206A_202C_200C_206C_206B_206F_200B_206B_200D_206F_200B_206E_206B_202E_200D_202D_206F_200C_200E_200D_202B_200D_200C_202E((IEnumerator)enumerator) ? 1661986271 : 1661986270); - break; - case 3: - return; - } - } - } - finally - { - num = ((enumerator == null) ? 867053132 : 867053133); - while (true) - { - int num10 = num; - num3 = 867053132; - num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 867053133; - break; - case 1: - _200C_206B_206C_202A_200E_200D_206E_202B_200D_202D_200C_200C_206B_200F_200C_202A_206E_200D_206D_202A_200F_202A_202B_200D_200C_202E_200B_206B_206C_200D_202B_206D_206E_206F_202C_206D_202B_202C_202B_206F_202E((IDisposable)enumerator); - num = 867053132; - break; - case 0: - goto end_IL_01ac; - } - continue; - end_IL_01ac: - break; - } - } - } - catch (Exception ex) - { - gatheringPoints.Clear(); - _202D_202E_206E_206B_206F_200B_200E_206C_206E_206E_200B_202B_200E_206A_202B_200F_206D_206C_202A_206D_200F_202B_206D_200C_206E_206C_206E_206F_202A_206F_200E_200D_200E_202C_206C_200F_200D_206A_206F_202D_202E((ILogger)_logger, ex, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1894668085), Array.Empty<object>()); - return; - } - } - } - continue; - IL_0081: - num = 750633399; + gatheringPoints.Clear(); + _logger.LogError(exception, "Failed to load gathering points from project directory"); } } private void LoadGatheringPointFromStream(Dictionary<GatheringPointId, GatheringRoot> gatheringPoints, string fileName, Stream stream) { GatheringPointId gatheringPointId = ExtractGatheringPointIdFromName(fileName); - int num = ((!_206F_206D_202E_206E_202B_200B_200F_206F_206E_206F_202A_206F_206C_206E_200E_206F_200E_202B_206F_202A_206B_202E_200F_202A_202D_206C_202A_206E_206F_206F_200C_206A_206F_202E_206B_202A_200E_206C_200F_202E(gatheringPointId, (GatheringPointId)null)) ? 1532040796 : 1532040799); - JsonNode jsonNode = default(JsonNode); - while (true) + if (!(gatheringPointId == null)) { - int num2 = num; - int num3 = 1532040798; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + JsonNode jsonNode = JsonNode.Parse(stream); + if (jsonNode != null) { - case 0: - return; - case 1: - return; - case 3: - num = 1532040799; - break; - case 2: - jsonNode = _200B_206C_202C_202B_206F_200D_202A_206D_206E_206B_206F_202C_200B_202B_200C_200F_206F_206F_202D_200C_206E_202C_206E_200D_200F_200F_200D_200F_206C_202E_206A_206F_200D_202D_202A_202B_206F_206B_206F_206B_202E(stream, (JsonNodeOptions?)null, default(JsonDocumentOptions)); - num = ((jsonNode != null) ? 1532040794 : 1532040798); - break; - case 4: - _gatheringSchemaValidator.Enqueue(_200B_200E_202E_202B_206C_200E_200B_206D_200B_200D_206C_206F_200E_202E_206C_206D_202B_206E_200B_200C_200C_200F_200D_200D_206B_200E_206A_206E_206D_202A_202C_202A_206E_200F_200F_200F_206D_206D_200E_200F_202E(gatheringPointId), jsonNode); + _gatheringSchemaValidator.Enqueue(gatheringPointId.Value, jsonNode); gatheringPoints[gatheringPointId] = jsonNode.Deserialize<GatheringRoot>(); - return; } } } - [MethodImpl(MethodImplOptions.NoInlining)] private void LoadFromDirectory(Dictionary<GatheringPointId, GatheringRoot> gatheringPoints, DirectoryInfo directory) { - int num = (_200E_202A_206F_200B_206E_206E_206D_200D_200B_202C_202C_206E_206D_206D_206E_202C_206E_200C_202A_206D_206E_200D_200B_206E_202C_202C_202B_200C_202D_200F_200D_200F_206C_202A_200D_206E_206B_202A_206A_206A_202E((FileSystemInfo)directory) ? (-2030197123) : (-2030197122)); - DirectoryInfo[] array2 = default(DirectoryInfo[]); - while (true) + if (!directory.Exists) { - int num2 = num; - int num3 = -2030197121; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + _logger.LogDebug("Not loading gathering points from {DirectoryName} (doesn't exist)", directory); + return; + } + FileInfo[] files = directory.GetFiles("*.json"); + foreach (FileInfo fileInfo in files) + { + try { - case 0: - goto IL_0051; - case 1: - _200F_206D_202C_206A_202E_200E_206A_202E_206D_200B_200E_202B_206A_206E_202B_206B_202B_200B_206E_200D_206F_206F_206B_200D_202A_200F_206A_200D_206E_202A_206C_202E_206F_202C_202E_200C_206B_200B_206F_202D_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1603379103), new object[1] { directory }); - return; - case 2: + using FileStream stream = fileInfo.OpenRead(); + LoadGatheringPointFromStream(gatheringPoints, fileInfo.Name, stream); + } + catch (JsonException ex) { - FileInfo[] array = _206F_202B_202A_202E_202C_206C_200F_200E_206A_202A_202A_200B_202C_206D_202E_206F_202A_200B_206A_206F_206F_202B_206E_200E_202E_200F_200F_202C_206D_200F_206D_206A_206B_202B_206F_206A_200D_200F_200F_202A_202E(directory, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1350212695)); - int num7; - for (num7 = 0; num7 < array.Length; num7 = (num4 | num3) + (num4 & num3)) + GatheringPointId gatheringPointId = ExtractGatheringPointIdFromName(fileInfo.Name); + _logger.LogError(ex, "Unable to parse gathering point file {FileName}", fileInfo.FullName); + _questValidator.AddValidationIssue(new ValidationIssue { - FileInfo fileInfo = array[num7]; - try - { - FileStream fileStream = _200C_206E_206C_206F_206C_206E_206E_200B_202D_200B_200E_200D_206F_202A_200F_206E_206D_202A_200B_200E_202B_202D_206B_206E_206B_202C_202C_206B_202A_202C_202A_202B_206A_200C_202A_206A_200F_202A_202D_202B_202E(fileInfo); - try - { - LoadGatheringPointFromStream(gatheringPoints, _200D_200D_200E_200D_206D_206B_202B_206D_202A_200D_200F_200D_206C_206E_200C_206C_206F_202B_200B_206D_200F_206F_206A_202D_202C_202C_206B_206C_202D_202E_202B_206C_206F_200F_202D_206B_206A_206A_200D_202E_202E((FileSystemInfo)fileInfo), fileStream); - } - finally - { - num = ((fileStream == null) ? (-1087514602) : (-1087514603)); - while (true) - { - int num8 = num; - num3 = -1087514601; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1087514603; - break; - case 2: - _200C_206B_206C_202A_200E_200D_206E_202B_200D_202D_200C_200C_206B_200F_200C_202A_206E_200D_206D_202A_200F_202A_202B_200D_200C_202E_200B_206B_206C_200D_202B_206D_206E_206F_202C_206D_202B_202C_202B_206F_202E((IDisposable)fileStream); - num = -1087514602; - break; - case 1: - goto end_IL_00d1; - } - continue; - end_IL_00d1: - break; - } - } - } - catch (JsonException ex) - { - GatheringPointId gatheringPointId = ExtractGatheringPointIdFromName(_200D_200D_200E_200D_206D_206B_202B_206D_202A_200D_200F_200D_206C_206E_200C_206C_206F_202B_200B_206D_200F_206F_206A_202D_202C_202C_206B_206C_202D_202E_202B_206C_206F_200F_202D_206B_206A_206A_200D_202E_202E((FileSystemInfo)fileInfo)); - _202D_202E_206E_206B_206F_200B_200E_206C_206E_206E_200B_202B_200E_206A_202B_200F_206D_206C_202A_206D_200F_202B_206D_200C_206E_206C_206E_206F_202A_206F_200E_200D_200E_202C_206C_200F_200D_206A_206F_202D_202E((ILogger)_logger, (Exception)ex, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1786995802), new object[1] { _202B_200C_206B_202C_202D_202A_200C_206A_200F_202B_206A_206B_200D_206D_202A_206F_200C_202A_200F_200B_202C_206D_200B_200B_200F_206F_206E_202B_200D_206D_202D_206E_206A_202C_206F_202D_206F_206E_202E_206E_202E((FileSystemInfo)fileInfo) }); - _questValidator.AddValidationIssue(new ValidationIssue - { - PathType = EPathType.Gathering, - Id = (((object)gatheringPointId != null) ? _202D_200D_200C_202A_206C_200F_202A_206E_206F_206E_206F_206F_202C_202C_202B_206F_202D_200B_202A_206E_202C_202D_200C_202D_202B_200C_202A_206C_200F_200F_202B_202B_200C_202C_202B_202E_200B_200B_202C_206A_202E(gatheringPointId).ToString(_206E_206F_206D_206A_202C_206E_206B_202E_206E_206E_202E_200D_206D_200D_200C_202D_206E_202A_200D_202A_202D_206A_202D_206B_206B_202D_202B_206E_206B_202E_202B_200F_206F_200F_200D_202E_200B_206E_206E_200E_202E()) : null), - Location = null, - Type = EIssueType.InvalidJsonSyntax, - Severity = EIssueSeverity.Error, - Description = _206D_202D_206D_200C_202D_206E_206F_200B_202D_200E_202D_206D_206B_206E_202D_206F_202B_200E_200C_206C_206A_206E_202C_206F_206F_206A_206A_206B_206E_206D_202B_200B_206A_200B_206A_200D_202C_200C_200C_202B_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1207352804), _200D_200D_200E_200D_206D_206B_202B_206D_202A_200D_200F_200D_206C_206E_200C_206C_206F_202B_200B_206D_200F_206F_206A_202D_202C_202C_206B_206C_202D_202E_202B_206C_206F_200F_202D_206B_206A_206A_200D_202E_202E((FileSystemInfo)fileInfo), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2035955381), _202C_202D_206A_206B_200E_206A_206D_206E_200C_206B_200D_202E_202B_200F_200E_206E_202C_206A_206A_206F_206B_202A_202A_206C_200D_200E_206D_200C_200E_206F_206F_200D_200C_202A_200C_206F_202E_200D_206B_202C_202E((Exception)ex)) - }); - } - catch (Exception ex2) - { - throw _200E_206E_206C_200D_200F_206A_202A_200B_200E_202A_202D_200F_200D_200E_202B_200C_206C_206E_206F_200F_202A_206B_202A_200E_202B_206D_202B_202E_200E_200B_202D_200C_206B_200C_200F_202C_200E_200D_202B_206E_202E(_206C_202D_202C_206C_202B_202B_206A_202A_202E_206D_206B_202D_202A_206A_202A_202B_202C_206B_202B_206A_200F_200F_202B_206A_206A_206D_206F_202B_200D_202B_202D_200E_202D_206F_200B_206A_200E_202D_200F_206C_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-912896990), _202B_200C_206B_202C_202D_202A_200C_206A_200F_202B_206A_206B_200D_206D_202A_206F_200C_202A_200F_200B_202C_206D_200B_200B_200F_206F_206E_202B_200D_206D_202D_206E_206A_202C_206F_202D_206F_206E_202E_206E_202E((FileSystemInfo)fileInfo)), ex2); - } - int num9 = num7; - num3 = 1; - num4 = num9; - } - num = 1535846665; - while (true) - { - int num10 = num; - num3 = 1535846664; - num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1535846665; - break; - case 3: - return; - case 0: - { - DirectoryInfo directory2 = array2[num7]; - LoadFromDirectory(gatheringPoints, directory2); - int num11 = num7; - num3 = 1; - num4 = num11; - num7 = (num4 | num3) + (num4 & num3); - num = 1535846668; - break; - } - case 1: - array2 = _200D_206D_200B_202E_206E_202D_200E_206F_202D_206A_202C_200B_200B_200F_200E_200D_206E_202B_200E_200B_200B_202E_206C_202D_206C_202E_200B_202D_202C_200B_200C_206F_202A_206F_202B_206E_202D_202C_200B_206C_202E(directory); - num7 = 0; - num = 1535846668; - break; - case 4: - num = ((num7 < array2.Length) ? 1535846664 : 1535846667); - break; - } - } + PathType = EPathType.Gathering, + Id = gatheringPointId?.Value.ToString(CultureInfo.InvariantCulture), + Location = null, + Type = EIssueType.InvalidJsonSyntax, + Severity = EIssueSeverity.Error, + Description = "JSON syntax error in " + fileInfo.Name + ": " + ex.Message + }); } + catch (Exception innerException) + { + throw new InvalidDataException("Unable to load file " + fileInfo.FullName, innerException); } - continue; - IL_0051: - num = -2030197122; + } + DirectoryInfo[] directories = directory.GetDirectories(); + foreach (DirectoryInfo directory2 in directories) + { + LoadFromDirectory(gatheringPoints, directory2); } } private static GatheringPointId? ExtractGatheringPointIdFromName(string resourceName) { - string text = _202C_206E_202D_202B_202B_206B_202A_206A_200F_202E_206D_202C_206B_202C_200F_206B_206B_206A_206E_202C_206B_206C_202E_202A_206D_206D_206A_206F_202D_206E_200B_200E_200D_202C_206C_206D_200E_206D_200F_206D_202E(resourceName); - text = _202A_202E_202D_202A_206E_206B_206B_200F_202C_202C_200F_202E_200C_206E_200F_200C_202B_200C_202A_200B_202B_200E_206F_206B_200B_200C_200C_202B_200C_202D_202D_206A_202B_200E_200F_206C_202D_200D_200D_202D_202E(text, _202A_202A_206A_206B_206F_206E_200D_206C_206C_202B_202D_200E_202E_200D_206A_202A_202E_206F_200B_202E_206B_206B_200E_200E_200E_206B_202C_202D_202A_200E_206A_206B_200B_202E_200F_200F_200E_206C_206F_206E_202E(text, '.') + 1); - int num = (_202B_200B_206B_200E_200E_200B_206C_200C_200B_202B_206A_202C_206E_206A_206A_202C_206A_202E_206D_202D_200F_200B_200E_202B_206D_206E_202B_202B_206D_202B_206D_200B_202B_200B_206A_200D_200D_202C_206B_200D_202E(text, '_', StringComparison.Ordinal) ? (-863946065) : (-863946068)); - while (true) + string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(resourceName); + fileNameWithoutExtension = fileNameWithoutExtension.Substring(fileNameWithoutExtension.LastIndexOf('.') + 1); + if (!fileNameWithoutExtension.Contains('_', StringComparison.Ordinal)) { - int num2 = num; - int num3 = -863946066; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0061; - case 2: - return null; - case 1: - return _206C_200E_206B_206B_200F_202D_202C_202E_202E_206A_202D_206A_202B_200B_202B_200D_206C_206C_200B_200B_206A_202A_206A_200E_200B_206A_206A_202A_202C_206C_202B_200B_202A_202A_200C_206B_206F_200B_206C_202E(_206D_202C_206B_200F_206A_200D_202D_202C_206D_206B_206E_206B_206F_202D_202B_200F_206E_202B_206D_202E_206C_202A_202D_200B_206D_200E_206C_202D_200C_206A_206E_202B_200E_200F_200C_206B_200E_202D_206E_202C_202E(text, '_', 2, StringSplitOptions.None)[0]); - } - continue; - IL_0061: - num = -863946068; + return null; } + return GatheringPointId.FromString(fileNameWithoutExtension.Split('_', 2)[0]); } public bool TryGetGatheringPoint(GatheringPointId gatheringPointId, [NotNullWhen(true)] out GatheringRoot? gatheringRoot) @@ -523,224 +182,29 @@ internal sealed class GatheringPointRegistry public bool TryGetGatheringPointId(uint itemId, EClassJob classJobId, [NotNullWhen(true)] out GatheringPointId? gatheringPointId) { Dictionary<GatheringPointId, GatheringRoot> gatheringPoints = _gatheringPoints; - int num = ((classJobId != EClassJob.Miner) ? 627004165 : 627004160); - while (true) + switch (classJobId) { - int num2 = num; - int num3 = 627004163; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + case EClassJob.Miner: + if (_gatheringData.TryGetMinerGatheringPointByItemId(itemId, out gatheringPointId)) { - case 5: return true; - case 2: - gatheringPointId = null; - return false; - case 6: - num = ((classJobId != EClassJob.Botanist) ? 627004161 : 627004171); - break; - case 8: - num = ((!_gatheringData.TryGetBotanistGatheringPointByItemId(itemId, out gatheringPointId)) ? 627004163 : 627004166); - break; - case 4: - return true; - case 7: - num = 627004160; - break; - case 1: - gatheringPointId = (from x in gatheringPoints - where _003C_003Ec__DisplayClass16_0._202A_202A_200D_206A_200E_202D_206E_206A_202A_200F_206D_200F_206C_206A_200B_202B_206A_202A_206F_200B_200D_206A_200E_200F_202A_200C_200E_200F_202C_200B_206C_200B_202C_200C_200B_206C_206F_206E_200F_200C_202E(x.Value).Contains(itemId) - select x.Key).FirstOrDefault((GatheringPointId x) => _gatheringData.MinerGatheringPoints.Contains(x)); - return _206F_202A_200D_200C_202A_206E_202A_200F_206B_202D_200F_206F_200B_202E_206C_206C_202D_202E_202E_206C_206E_206E_202C_200D_200C_200B_200F_202B_200F_206C_202D_200F_202A_200F_200F_200F_200B_202D_202B_200E_202E(gatheringPointId, (GatheringPointId)null); - case 0: - gatheringPointId = (from x in gatheringPoints - where _003C_003Ec__DisplayClass16_0._202A_202A_200D_206A_200E_202D_206E_206A_202A_200F_206D_200F_206C_206A_200B_202B_206A_202A_206F_200B_200D_206A_200E_200F_202A_200C_200E_200F_202C_200B_206C_200B_202C_200C_200B_206C_206F_206E_200F_200C_202E(x.Value).Contains(itemId) - select x.Key).FirstOrDefault((GatheringPointId x) => _gatheringData.BotanistGatheringPoints.Contains(x)); - return _206F_202A_200D_200C_202A_206E_202A_200F_206B_202D_200F_206F_200B_202E_206C_206C_202D_202E_202E_206C_206E_206E_202C_200D_200C_200B_200F_202B_200F_206C_202D_200F_202A_200F_200F_200F_200B_202D_202B_200E_202E(gatheringPointId, (GatheringPointId)null); - case 3: - num = ((!_gatheringData.TryGetMinerGatheringPointByItemId(itemId, out gatheringPointId)) ? 627004162 : 627004167); - break; } + gatheringPointId = (from x in gatheringPoints + where x.Value.ExtraQuestItems.Contains(itemId) + select x.Key).FirstOrDefault((GatheringPointId x) => _gatheringData.MinerGatheringPoints.Contains(x)); + return gatheringPointId != null; + case EClassJob.Botanist: + if (_gatheringData.TryGetBotanistGatheringPointByItemId(itemId, out gatheringPointId)) + { + return true; + } + gatheringPointId = (from x in gatheringPoints + where x.Value.ExtraQuestItems.Contains(itemId) + select x.Key).FirstOrDefault((GatheringPointId x) => _gatheringData.BotanistGatheringPoints.Contains(x)); + return gatheringPointId != null; + default: + gatheringPointId = null; + return false; } } - - static DirectoryInfo _202C_200E_206E_206B_200B_200D_206A_202C_202A_202A_206A_206E_200F_200D_206C_200F_206A_200C_206A_200F_200B_206A_206D_202A_200D_206F_206D_202C_200F_200C_200E_202A_202C_200E_202A_202C_200E_200C_200C_206D_202E(IDalamudPluginInterface P_0) - { - return P_0.ConfigDirectory; - } - - static string _202B_200C_206B_202C_202D_202A_200C_206A_200F_202B_206A_206B_200D_206D_202A_206F_200C_202A_200F_200B_202C_206D_200B_200B_200F_206F_206E_202B_200D_206D_202D_206E_206A_202C_206F_202D_206F_206E_202E_206E_202E(FileSystemInfo P_0) - { - return P_0.FullName; - } - - static string _202A_206B_206E_206A_200F_206F_202E_202E_206E_200B_206F_202A_202C_200D_200C_200F_206A_206E_200F_202E_206A_200E_206A_202A_200B_202B_200B_206D_200E_202A_206D_202E_206E_206C_202C_202A_202E_202C_200F_206B_202E(string P_0, string P_1) - { - return Path.Combine(P_0, P_1); - } - - static DirectoryInfo _202C_202B_202C_206E_200E_206B_200F_206E_202A_200B_200F_206A_200D_200D_202E_206E_202A_206D_200E_200E_200D_202C_206D_206B_206B_200B_206D_200B_206A_202C_206C_206D_200C_202B_200F_200F_206E_200D_206A_206B_202E(string P_0) - { - return new DirectoryInfo(P_0); - } - - static void _202D_202E_206E_206B_206F_200B_200E_206C_206E_206E_200B_202B_200E_206A_202B_200F_206D_206C_202A_206D_200F_202B_206D_200C_206E_206C_206E_206F_202A_206F_200E_200D_200E_202C_206C_200F_200D_206A_206F_202D_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - - static bool _206E_200E_200E_202D_202D_202D_200F_202B_202E_206E_206C_202A_202E_206C_202D_206B_206C_206A_202C_200C_206C_206B_206F_200B_206B_200D_206F_200B_206E_206B_202E_200D_202D_206F_200C_200E_200D_202B_200D_200C_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200C_206B_206C_202A_200E_200D_206E_202B_200D_202D_200C_200C_206B_200F_200C_202A_206E_200D_206D_202A_200F_202A_202B_200D_200C_202E_200B_206B_206C_200D_202B_206D_206E_206F_202C_206D_202B_202C_202B_206F_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _200F_206D_202C_206A_202E_200E_206A_202E_206D_200B_200E_202B_206A_206E_202B_206B_202B_200B_206E_200D_206F_206F_206B_200D_202A_200F_206A_200D_206E_202A_206C_202E_206F_202C_202E_200C_206B_200B_206F_202D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static IReadOnlyDictionary<ushort, GatheringRoot> _202B_206E_202A_202D_206C_200E_202E_206E_202D_202B_206F_200D_206F_206B_200E_202E_200F_206C_202B_200C_200C_200D_206D_206D_202C_200C_200B_200D_202D_200C_206B_206E_202C_200C_202B_206B_206D_206A_202E_202D_202E() - { - return AssemblyGatheringLocationLoader.GetLocations(); - } - - static GatheringPointId _206A_200B_206E_202D_202C_206C_206B_200E_202B_200B_200B_200D_206E_202B_206A_200D_206E_206E_200F_206E_200E_202B_200E_202D_200C_206F_200C_206E_206C_200F_206A_206F_206D_200B_200E_200B_200E_200E_206B_200E_202E(ushort P_0) - { - return new GatheringPointId(P_0); - } - - static FileInfo _200C_202C_206D_202E_202C_202B_200C_206F_200E_206C_206F_202E_200B_206F_200F_206C_206C_206F_206B_202A_200F_200C_200B_200C_200D_202D_200E_202A_206F_206F_200F_200C_200F_206E_200F_206F_200F_200F_202E_206B_202E(IDalamudPluginInterface P_0) - { - return P_0.AssemblyLocation; - } - - static DirectoryInfo _200E_206A_200F_206A_206F_202B_202A_200C_200C_206B_206D_200D_200C_200E_206F_200D_206B_206E_206E_202B_206F_206F_206D_206F_206F_200F_200E_202A_202B_200B_206A_206A_206E_202B_202D_202A_206B_200E_200C_200F_202E(FileInfo P_0) - { - return P_0.Directory; - } - - static DirectoryInfo _200C_206E_202A_200D_200B_202E_206B_200E_200C_200E_206F_202B_202C_200E_200F_206E_202B_200F_200B_202E_202E_206F_202D_206E_202B_200C_202C_206E_200C_206B_206B_200F_202E_206F_200C_200D_200E_200B_200F_200E_202E(DirectoryInfo P_0) - { - return P_0.Parent; - } - - static void _206D_200C_202C_206C_206D_206B_202C_202B_202D_206D_200B_206D_202A_200C_202C_206A_202D_200C_200C_200D_206F_200C_202A_206A_200F_200C_202C_200D_202A_200F_202B_200E_206E_202C_202C_202E_202E_206A_202A_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static string _200D_200B_202E_200F_202A_206D_200C_206A_202A_206D_206F_202D_200B_206C_206D_202D_202C_202E_200D_206A_202A_206E_200D_206F_206C_202D_206F_200E_202D_202B_200D_202D_202D_206B_202E_200C_206D_200E_202A_202B_202E(string P_0, string P_1, string P_2) - { - return Path.Combine(P_0, P_1, P_2); - } - - static bool _206F_206D_202E_206E_202B_200B_200F_206F_206E_206F_202A_206F_206C_206E_200E_206F_200E_202B_206F_202A_206B_202E_200F_202A_202D_206C_202A_206E_206F_206F_200C_206A_206F_202E_206B_202A_200E_206C_200F_202E(GatheringPointId P_0, GatheringPointId P_1) - { - return P_0 == P_1; - } - - static JsonNode _200B_206C_202C_202B_206F_200D_202A_206D_206E_206B_206F_202C_200B_202B_200C_200F_206F_206F_202D_200C_206E_202C_206E_200D_200F_200F_200D_200F_206C_202E_206A_206F_200D_202D_202A_202B_206F_206B_206F_206B_202E(Stream P_0, JsonNodeOptions? P_1, JsonDocumentOptions P_2) - { - return JsonNode.Parse(P_0, P_1, P_2); - } - - static ushort _200B_200E_202E_202B_206C_200E_200B_206D_200B_200D_206C_206F_200E_202E_206C_206D_202B_206E_200B_200C_200C_200F_200D_200D_206B_200E_206A_206E_206D_202A_202C_202A_206E_200F_200F_200F_206D_206D_200E_200F_202E(GatheringPointId P_0) - { - return P_0.Value; - } - - static bool _200E_202A_206F_200B_206E_206E_206D_200D_200B_202C_202C_206E_206D_206D_206E_202C_206E_200C_202A_206D_206E_200D_200B_206E_202C_202C_202B_200C_202D_200F_200D_200F_206C_202A_200D_206E_206B_202A_206A_206A_202E(FileSystemInfo P_0) - { - return P_0.Exists; - } - - static FileInfo[] _206F_202B_202A_202E_202C_206C_200F_200E_206A_202A_202A_200B_202C_206D_202E_206F_202A_200B_206A_206F_206F_202B_206E_200E_202E_200F_200F_202C_206D_200F_206D_206A_206B_202B_206F_206A_200D_200F_200F_202A_202E(DirectoryInfo P_0, string P_1) - { - return P_0.GetFiles(P_1); - } - - static FileStream _200C_206E_206C_206F_206C_206E_206E_200B_202D_200B_200E_200D_206F_202A_200F_206E_206D_202A_200B_200E_202B_202D_206B_206E_206B_202C_202C_206B_202A_202C_202A_202B_206A_200C_202A_206A_200F_202A_202D_202B_202E(FileInfo P_0) - { - return P_0.OpenRead(); - } - - static string _200D_200D_200E_200D_206D_206B_202B_206D_202A_200D_200F_200D_206C_206E_200C_206C_206F_202B_200B_206D_200F_206F_206A_202D_202C_202C_206B_206C_202D_202E_202B_206C_206F_200F_202D_206B_206A_206A_200D_202E_202E(FileSystemInfo P_0) - { - return P_0.Name; - } - - static ushort _202D_200D_200C_202A_206C_200F_202A_206E_206F_206E_206F_206F_202C_202C_202B_206F_202D_200B_202A_206E_202C_202D_200C_202D_202B_200C_202A_206C_200F_200F_202B_202B_200C_202C_202B_202E_200B_200B_202C_206A_202E(GatheringPointId P_0) - { - return P_0.Value; - } - - static CultureInfo _206E_206F_206D_206A_202C_206E_206B_202E_206E_206E_202E_200D_206D_200D_200C_202D_206E_202A_200D_202A_202D_206A_202D_206B_206B_202D_202B_206E_206B_202E_202B_200F_206F_200F_200D_202E_200B_206E_206E_200E_202E() - { - return CultureInfo.InvariantCulture; - } - - static string _202C_202D_206A_206B_200E_206A_206D_206E_200C_206B_200D_202E_202B_200F_200E_206E_202C_206A_206A_206F_206B_202A_202A_206C_200D_200E_206D_200C_200E_206F_206F_200D_200C_202A_200C_206F_202E_200D_206B_202C_202E(Exception P_0) - { - return P_0.Message; - } - - static string _206D_202D_206D_200C_202D_206E_206F_200B_202D_200E_202D_206D_206B_206E_202D_206F_202B_200E_200C_206C_206A_206E_202C_206F_206F_206A_206A_206B_206E_206D_202B_200B_206A_200B_206A_200D_202C_200C_200C_202B_202E(string P_0, string P_1, string P_2, string P_3) - { - return P_0 + P_1 + P_2 + P_3; - } - - static string _206C_202D_202C_206C_202B_202B_206A_202A_202E_206D_206B_202D_202A_206A_202A_202B_202C_206B_202B_206A_200F_200F_202B_206A_206A_206D_206F_202B_200D_202B_202D_200E_202D_206F_200B_206A_200E_202D_200F_206C_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static InvalidDataException _200E_206E_206C_200D_200F_206A_202A_200B_200E_202A_202D_200F_200D_200E_202B_200C_206C_206E_206F_200F_202A_206B_202A_200E_202B_206D_202B_202E_200E_200B_202D_200C_206B_200C_200F_202C_200E_200D_202B_206E_202E(string P_0, Exception P_1) - { - return new InvalidDataException(P_0, P_1); - } - - static DirectoryInfo[] _200D_206D_200B_202E_206E_202D_200E_206F_202D_206A_202C_200B_200B_200F_200E_200D_206E_202B_200E_200B_200B_202E_206C_202D_206C_202E_200B_202D_202C_200B_200C_206F_202A_206F_202B_206E_202D_202C_200B_206C_202E(DirectoryInfo P_0) - { - return P_0.GetDirectories(); - } - - static string _202C_206E_202D_202B_202B_206B_202A_206A_200F_202E_206D_202C_206B_202C_200F_206B_206B_206A_206E_202C_206B_206C_202E_202A_206D_206D_206A_206F_202D_206E_200B_200E_200D_202C_206C_206D_200E_206D_200F_206D_202E(string P_0) - { - return Path.GetFileNameWithoutExtension(P_0); - } - - static int _202A_202A_206A_206B_206F_206E_200D_206C_206C_202B_202D_200E_202E_200D_206A_202A_202E_206F_200B_202E_206B_206B_200E_200E_200E_206B_202C_202D_202A_200E_206A_206B_200B_202E_200F_200F_200E_206C_206F_206E_202E(string P_0, char P_1) - { - return P_0.LastIndexOf(P_1); - } - - static string _202A_202E_202D_202A_206E_206B_206B_200F_202C_202C_200F_202E_200C_206E_200F_200C_202B_200C_202A_200B_202B_200E_206F_206B_200B_200C_200C_202B_200C_202D_202D_206A_202B_200E_200F_206C_202D_200D_200D_202D_202E(string P_0, int P_1) - { - return P_0.Substring(P_1); - } - - static bool _202B_200B_206B_200E_200E_200B_206C_200C_200B_202B_206A_202C_206E_206A_206A_202C_206A_202E_206D_202D_200F_200B_200E_202B_206D_206E_202B_202B_206D_202B_206D_200B_202B_200B_206A_200D_200D_202C_206B_200D_202E(string P_0, char P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); - } - - static string[] _206D_202C_206B_200F_206A_200D_202D_202C_206D_206B_206E_206B_206F_202D_202B_200F_206E_202B_206D_202E_206C_202A_202D_200B_206D_200E_206C_202D_200C_206A_206E_202B_200E_200F_200C_206B_200E_202D_206E_202C_202E(string P_0, char P_1, int P_2, StringSplitOptions P_3) - { - return P_0.Split(P_1, P_2, P_3); - } - - static GatheringPointId _206C_200E_206B_206B_200F_202D_202C_202E_202E_206A_202D_206A_202B_200B_202B_200D_206C_206C_200B_200B_206A_202A_206A_200E_200B_206A_206A_202A_202C_206C_202B_200B_202A_202A_200C_206B_206F_200B_206C_202E(string P_0) - { - return GatheringPointId.FromString(P_0); - } - - static bool _206F_202A_200D_200C_202A_206E_202A_200F_206B_202D_200F_206F_200B_202E_206C_206C_202D_202E_202E_206C_206E_206E_202C_200D_200C_200B_200F_202B_200F_206C_202D_200F_202A_200F_200F_200F_200B_202D_202B_200E_202E(GatheringPointId P_0, GatheringPointId P_1) - { - return P_0 != P_1; - } } diff --git a/Questionable/Questionable.Controller/GearRepairService.cs b/Questionable/Questionable.Controller/GearRepairService.cs index 7926cb7..e409de9 100644 --- a/Questionable/Questionable.Controller/GearRepairService.cs +++ b/Questionable/Questionable.Controller/GearRepairService.cs @@ -1,11 +1,6 @@ using System; -using System.Collections; -using System.Collections.Generic; -using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using LLib.GameData; using LLib.Gear; @@ -23,41 +18,6 @@ namespace Questionable.Controller; internal sealed class GearRepairService(Configuration configuration, ICondition condition, IClientState clientState, IObjectTable objectTable, IDataManager dataManager, MenderDataService menderDataService, SmartNavRouteEnqueuer routeEnqueuer, AetheryteFunctions aetheryteFunctions, IChatGui chatGui, ILogger<GearRepairService> logger) { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass19_0 - { - public ExcelSheet<ClassJob> classJobSheet; - - internal byte _003CCanSelfRepair_003Eb__0(uint classJobId) - { - ClassJob row; - int num = (classJobSheet.TryGetRow(classJobId, out row) ? (-528090726) : (-528090727)); - while (true) - { - int num2 = num; - int num3 = -528090725; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004e; - case 2: - return 0; - case 1: - return (byte)_200C_206B_202B_202B_206C_200B_202D_206C_206D_206C_206E_202E_202E_202B_200B_206F_202B_202C_202A_200D_206E_202E_206C_200F_202C_206B_200D_206A_202E_202C_200B_206D_206C_200F_200E_206C_200F_206E_200D_202A_202E((int)row.ExpArrayIndex); - } - continue; - IL_004e: - num = -528090727; - } - } - - static short _200C_206B_202B_202B_206C_200B_202D_206C_206D_206C_206E_202E_202E_202B_200B_206F_202B_202C_202A_200D_206E_202E_206C_200F_202C_206B_200D_206A_202E_202C_200B_206D_206C_200F_200E_206C_200F_206E_200D_202A_202E(int P_0) - { - return PlayerStateHelper.GetClassJobLevel(P_0); - } - } - private const int CriticalConditionPercent = 10; private const long AttemptCooldownMs = 300000L; @@ -74,346 +34,110 @@ internal sealed class GearRepairService(Configuration configuration, ICondition _nextWarningAtMs = 0L; } - [MethodImpl(MethodImplOptions.NoInlining)] public ERepairDecision EvaluateAndEnqueue(EInteractionType upcomingType, TaskQueue taskQueue) { - int num = (((uint)(upcomingType - 19) > 1u) ? 1929941200 : 1929941198); - int? num7 = default(int?); - bool flag2 = default(bool); - bool flag4 = default(bool); - bool flag3 = default(bool); - bool flag = default(bool); - string failureReason = default(string); - while (true) + bool flag = (uint)(upcomingType - 19) <= 1u; + bool flag2 = flag; + flag = (uint)(upcomingType - 30) <= 1u; + bool flag3 = flag; + if (!flag2 && !flag3) { - int num2 = num; - int num3 = 1929941195; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num8; - switch (num5 - (num6 + num6)) - { - case 3: - _206A_200F_206D_200B_202C_200B_206D_206C_202E_202E_200F_200F_202B_200D_200D_206F_200B_206B_206D_202E_202D_206C_206A_202D_202A_206A_202B_200D_206D_206B_206C_206D_206F_202E_200D_202A_202C_202E_206A_206E_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(776424222), new object[1] { num7.Value }); - return ERepairDecision.BlockDuty; - case 22: - num7 = _200E_202E_202C_202C_200D_206E_200B_202B_200E_202E_202A_202C_202D_202B_202D_202B_200E_206C_206F_206E_206C_202C_202E_200C_202A_202C_202C_206D_206C_202B_200B_206C_202D_202E_200D_200E_206C_200C_206A_206C_202E(); - num = ((!num7.HasValue) ? 1929941188 : 1929941209); - break; - case 27: - flag2 = false; - num = 1929941208; - break; - case 10: - return ERepairDecision.NotNeeded; - case 20: - num = ((!flag4) ? 1929941210 : 1929941192); - break; - case 19: - flag3 = flag2; - num = (((uint)(upcomingType - 30) > 1u) ? 1929941194 : 1929941193); - break; - case 12: - num = (flag ? 1929941197 : 1929941202); - break; - case 14: - num = ((_202B_206C_202A_202A_206E_202C_200C_202A_202A_200E_200B_200D_206B_202D_206A_200B_200D_200E_200B_200F_206F_202C_202C_200F_200E_202E_206F_202E_202E_206B_202C_202D_200F_200C_200B_206F_206E_202E_206A_202A_202E() < _nextWarningAtMs) ? 1929941185 : 1929941190); - break; - case 13: - { - _nextWarningAtMs = _202B_206C_202A_202A_206E_202C_200C_202A_202A_200E_200B_200D_206B_202D_206A_200B_200D_200E_200B_200F_206F_202C_202C_200F_200E_202E_206F_202E_202E_206B_202C_202D_200F_200C_200B_206F_206E_202E_206A_202A_202E() + 300000; - IChatGui chatGui = chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(46, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1964571551)); - defaultInterpolatedStringHandler.AppendFormatted(num7.Value); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1599790962)); - defaultInterpolatedStringHandler.AppendFormatted(failureReason); - _200D_206B_206B_202C_200D_206C_200E_200D_202E_202C_206B_202D_206B_206C_206F_200D_200F_206D_200E_206C_206F_206B_202E_200B_200C_202E_202E_202B_206F_206C_206C_202A_206D_202A_200C_206B_200B_200F_202C_206C_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - num = 1929941185; - break; - } - case 26: - num8 = ((num7.Value < 10) ? 1 : 0); - goto IL_026c; - case 7: - num = ((!flag3) ? 1929941212 : 1929941201); - break; - case 15: - return ERepairDecision.NotNeeded; - case 23: - num8 = 0; - goto IL_026c; - case 17: - return ERepairDecision.NotNeeded; - case 28: - num = ((!TryEnqueueRepair(taskQueue, num7.Value, out failureReason)) ? 1929941184 : 1929941203); - break; - case 25: - return ERepairDecision.NotNeeded; - case 24: - return ERepairDecision.Enqueued; - case 18: - num = ((num7.Value < configuration.General.RepairThresholdPercent) ? 1929941196 : 1929941188); - break; - case 11: - num = ((!flag4) ? 1929941189 : 1929941195); - break; - case 1: - flag2 = false; - num = 1929941199; - break; - case 0: - _206A_200F_206D_200B_202C_200B_206D_206C_202E_202E_200F_200F_202B_200D_200D_206F_200B_206B_206D_202E_202D_206C_206A_202D_202A_206A_202B_200D_206D_206B_206C_206D_206F_202E_200D_202A_202C_202E_206A_206E_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1917801143), new object[2] { num7.Value, failureReason }); - return ERepairDecision.BlockDuty; - case 5: - flag2 = true; - num = 1929941208; - break; - case 2: - flag2 = true; - num = 1929941199; - break; - case 16: - num = ((!_202A_206F_206D_206C_200E_200C_206D_206A_200E_202A_206E_206F_206C_200C_200E_200F_202B_202B_206B_202C_200F_206C_202C_206C_202E_206C_206F_206C_200F_206E_200D_200E_202B_206B_202A_202D_202A_200C_202B_206A_202E(condition, ConditionFlag.InCombat)) ? 1929941213 : 1929941214); - break; - case 9: - return ERepairDecision.NotNeeded; - case 6: - num = (configuration.General.RepairGear ? 1929941211 : 1929941186); - break; - case 21: - return ERepairDecision.NotNeeded; - case 4: - flag = flag2; - num = (flag3 ? 1929941197 : 1929941191); - break; - case 8: - { - num = 1929941198; - break; - } - IL_026c: - flag4 = (byte)num8 != 0; - num = ((_202B_206C_202A_202A_206E_202C_200C_202A_202A_200E_200B_200D_206B_202D_206A_200B_200D_200E_200B_200F_206F_202C_202C_200F_200E_202E_206F_202E_202E_206B_202C_202D_200F_200C_200B_206F_206E_202E_206A_202A_202E() >= _nextAttemptAtMs) ? 1929941207 : 1929941215); - break; - } + return ERepairDecision.NotNeeded; } + if (!configuration.General.RepairGear) + { + return ERepairDecision.NotNeeded; + } + if (condition[ConditionFlag.InCombat]) + { + return ERepairDecision.NotNeeded; + } + int? lowestConditionPercent = GearConditionHelper.GetLowestConditionPercent(); + if (!lowestConditionPercent.HasValue || lowestConditionPercent.Value >= configuration.General.RepairThresholdPercent) + { + return ERepairDecision.NotNeeded; + } + bool flag4 = flag2 && lowestConditionPercent.Value < 10; + if (Environment.TickCount64 < _nextAttemptAtMs) + { + if (flag4) + { + logger.LogError("Gear still critically damaged ({Condition}%) after recent repair attempt", lowestConditionPercent.Value); + return ERepairDecision.BlockDuty; + } + return ERepairDecision.NotNeeded; + } + if (TryEnqueueRepair(taskQueue, lowestConditionPercent.Value, out string failureReason)) + { + return ERepairDecision.Enqueued; + } + if (flag4) + { + logger.LogError("Gear critically damaged ({Condition}%) and unrepairable: {Reason}", lowestConditionPercent.Value, failureReason); + return ERepairDecision.BlockDuty; + } + if (Environment.TickCount64 >= _nextWarningAtMs) + { + _nextWarningAtMs = Environment.TickCount64 + 300000; + chatGui.Print($"Gear is at {lowestConditionPercent.Value}% condition but can't be repaired: {failureReason}", "Questionable", 576); + } + return ERepairDecision.NotNeeded; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool TryEnqueueRepair(TaskQueue taskQueue, int lowestCondition, out string failureReason) { - int num = ((!CanSelfRepair()) ? (-1145158930) : (-1145158934)); - MenderNpc menderNpc = default(MenderNpc); - IPlayerCharacter playerCharacter = default(IPlayerCharacter); - MenderNpc current = default(MenderNpc); - while (true) + if (CanSelfRepair()) { - int num2 = num; - int num3 = -1145158932; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + logger.LogInformation("Lowest gear condition {Condition}%, self-repairing", lowestCondition); + taskQueue.Enqueue(new Questionable.Controller.Steps.Common.Mount.UnmountTask()); + taskQueue.Enqueue(new RepairGear.SelfRepairTask()); + MarkAttempt(); + failureReason = string.Empty; + return true; + } + IPlayerCharacter localPlayer = objectTable.LocalPlayer; + if (localPlayer != null) + { + MenderNpc menderNpc = menderDataService.FindNearestInTerritory((ushort)clientState.TerritoryType, localPlayer.Position); + if ((object)menderNpc != null) { - default: - continue; - case 1: - if (aetheryteFunctions.IsTeleportUnlocked()) - { - num = -1145158935; - continue; - } - break; - case 0: - _206A_206D_202D_200F_200E_202D_206E_206C_206B_202E_202D_200E_200D_200E_206B_206D_206B_200E_202D_206A_202B_200E_200B_202B_200F_206F_202C_200D_200B_202E_202E_206D_206C_202B_206F_206E_200F_206B_200D_206A_202E((ILogger)logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1341197987), new object[2] { lowestCondition, menderNpc.DataId }); + logger.LogInformation("Lowest gear condition {Condition}%, visiting mender {DataId} in current zone", lowestCondition, menderNpc.DataId); routeEnqueuer.Enqueue(taskQueue, menderNpc.TerritoryId, menderNpc.Position, 3f); taskQueue.Enqueue(new Questionable.Controller.Steps.Common.Mount.UnmountTask()); taskQueue.Enqueue(new RepairGear.MenderRepairTask(menderNpc)); MarkAttempt(); failureReason = string.Empty; return true; - case 2: - playerCharacter = _206D_202E_206C_206D_200F_202E_200C_200C_202B_202B_200D_200F_206A_206E_206F_206C_202E_206A_202D_202C_206B_206D_200B_206D_206A_202E_200D_200C_202D_200D_206C_200D_206C_206B_202C_206E_206B_206F_202C_202D_202E(objectTable); - num = ((playerCharacter == null) ? (-1145158931) : (-1145158929)); - continue; - case 3: - menderNpc = menderDataService.FindNearestInTerritory((ushort)_200E_206C_200F_200D_202E_206C_202D_206E_206C_206A_200C_202E_200E_206F_200F_200B_202B_202C_206A_202A_202A_200D_206F_206C_202C_202C_202A_202B_206D_206F_202B_202D_202D_202A_200E_200D_200D_202E_206E_206E_202E(clientState), _206C_202C_202B_206E_202C_200B_202C_202B_202D_202D_206D_206A_206A_202C_202E_206F_200C_202D_206A_202C_202B_202D_200F_206A_206A_202A_202E_202C_202B_202C_206B_200F_202D_202A_206B_206B_200F_202D_202D_202C_202E((IGameObject)playerCharacter)); - num = (((object)menderNpc == null) ? (-1145158931) : (-1145158932)); - continue; - case 6: - _206A_206D_202D_200F_200E_202D_206E_206C_206B_202E_202D_200E_200D_200E_206B_206D_206B_200E_202D_206A_202B_200E_200B_202B_200F_206F_202C_200D_200B_202E_202E_206D_206C_202B_206F_206E_200F_206B_200D_206A_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(517880176), new object[1] { lowestCondition }); - taskQueue.Enqueue(new Questionable.Controller.Steps.Common.Mount.UnmountTask()); - taskQueue.Enqueue(new RepairGear.SelfRepairTask()); - MarkAttempt(); - failureReason = string.Empty; - return true; - case 4: - num = -1145158934; - continue; - case 5: - { - IEnumerator<MenderNpc> enumerator = MenderDataService.CityFallbacks.GetEnumerator(); - try - { - num = -1950756902; - while (true) - { - int num5 = num; - num3 = -1950756902; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 0: - num = (_206B_200F_206D_206D_206B_206B_200B_206D_202A_206D_202A_206B_206E_200D_206E_202D_200D_206E_206A_206F_206A_202B_202E_200B_202A_206A_206A_206D_202D_202B_206C_206F_202D_206D_206F_202C_202A_202D_200B_202E_202E((IEnumerator)enumerator) ? (-1950756901) : (-1950756903)); - break; - case 1: - current = enumerator.Current; - num = ((!routeEnqueuer.TryEnqueueRouted(taskQueue, current.TerritoryId, current.Position)) ? (-1950756902) : (-1950756898)); - break; - case 4: - _206A_206D_202D_200F_200E_202D_206E_206C_206B_202E_202D_200E_200D_200E_206B_206D_206B_200E_202D_206A_202B_200E_200B_202B_200F_206F_202C_200D_200B_202E_202E_206D_206C_202B_206F_206E_200F_206B_200D_206A_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(90066395), new object[2] { lowestCondition, current.DataId }); - taskQueue.Enqueue(new Questionable.Controller.Steps.Common.Mount.UnmountTask()); - taskQueue.Enqueue(new RepairGear.MenderRepairTask(current)); - MarkAttempt(); - failureReason = string.Empty; - return true; - case 2: - num = -1950756902; - break; - case 3: - goto end_IL_01c7; - } - continue; - end_IL_01c7: - break; - } - } - finally - { - num = ((enumerator == null) ? (-462922479) : (-462922478)); - while (true) - { - int num8 = num; - num3 = -462922477; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -462922478; - break; - case 2: - goto end_IL_02f5; - case 1: - _200C_206C_200E_200B_202C_206C_206A_200E_200D_206F_206F_200D_200E_200E_200C_206A_206C_206F_200E_200B_206E_202E_202C_202D_200B_202D_202A_200D_206F_200E_202C_200B_202D_200B_200D_206B_206B_202D_206F_200C_202E((IDisposable)enumerator); - num = -462922479; - break; - } - continue; - end_IL_02f5: - break; - } - } - break; } - } - break; } - failureReason = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1806822311); + if (aetheryteFunctions.IsTeleportUnlocked()) + { + foreach (MenderNpc cityFallback in MenderDataService.CityFallbacks) + { + if (routeEnqueuer.TryEnqueueRouted(taskQueue, cityFallback.TerritoryId, cityFallback.Position)) + { + logger.LogInformation("Lowest gear condition {Condition}%, no zone mender - routing to city mender {DataId}", lowestCondition, cityFallback.DataId); + taskQueue.Enqueue(new Questionable.Controller.Steps.Common.Mount.UnmountTask()); + taskQueue.Enqueue(new RepairGear.MenderRepairTask(cityFallback)); + MarkAttempt(); + failureReason = string.Empty; + return true; + } + } + } + failureReason = "no dark matter or crafter levels for self-repair, and no reachable mender"; return false; } private bool CanSelfRepair() { ExcelSheet<ClassJob> classJobSheet = dataManager.GetExcelSheet<ClassJob>(); - return _206B_200B_200F_206D_202B_200D_206D_200E_202E_200D_200E_200C_200D_200C_206A_200D_202D_202B_206C_202C_206C_206C_206B_206B_206C_206E_200C_206F_206C_206F_200C_202C_202D_200F_206E_202E_206A_202B_206D_200C_202E(dataManager, (Func<uint, byte>)delegate(uint classJobId) - { - ClassJob row; - int num = (classJobSheet.TryGetRow(classJobId, out row) ? (-528090726) : (-528090727)); - while (true) - { - int num2 = num; - int num3 = -528090725; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004e; - case 2: - return 0; - case 1: - return (byte)_003C_003Ec__DisplayClass19_0._200C_206B_202B_202B_206C_200B_202D_206C_206D_206C_206E_202E_202E_202B_200B_206F_202B_202C_202A_200D_206E_202E_206C_200F_202C_206B_200D_206A_202E_202C_200B_206D_206C_200F_200E_206C_200F_206E_200D_202A_202E((int)row.ExpArrayIndex); - } - continue; - IL_004e: - num = -528090727; - } - }, configuration.General.RepairThresholdPercent); + ClassJob row; + return RepairActions.CanSelfRepairAny(dataManager, (uint classJobId) => (byte)(classJobSheet.TryGetRow(classJobId, out row) ? ((byte)PlayerStateHelper.GetClassJobLevel(row.ExpArrayIndex)) : 0), configuration.General.RepairThresholdPercent); } private void MarkAttempt() { - _nextAttemptAtMs = _202B_206C_202A_202A_206E_202C_200C_202A_202A_200E_200B_200D_206B_202D_206A_200B_200D_200E_200B_200F_206F_202C_202C_200F_200E_202E_206F_202E_202E_206B_202C_202D_200F_200C_200B_206F_206E_202E_206A_202A_202E() + 300000; - } - - static bool _202A_206F_206D_206C_200E_200C_206D_206A_200E_202A_206E_206F_206C_200C_200E_200F_202B_202B_206B_202C_200F_206C_202C_206C_202E_206C_206F_206C_200F_206E_200D_200E_202B_206B_202A_202D_202A_200C_202B_206A_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static int? _200E_202E_202C_202C_200D_206E_200B_202B_200E_202E_202A_202C_202D_202B_202D_202B_200E_206C_206F_206E_206C_202C_202E_200C_202A_202C_202C_206D_206C_202B_200B_206C_202D_202E_200D_200E_206C_200C_206A_206C_202E() - { - return GearConditionHelper.GetLowestConditionPercent(); - } - - static long _202B_206C_202A_202A_206E_202C_200C_202A_202A_200E_200B_200D_206B_202D_206A_200B_200D_200E_200B_200F_206F_202C_202C_200F_200E_202E_206F_202E_202E_206B_202C_202D_200F_200C_200B_206F_206E_202E_206A_202A_202E() - { - return Environment.TickCount64; - } - - static void _206A_200F_206D_200B_202C_200B_206D_206C_202E_202E_200F_200F_202B_200D_200D_206F_200B_206B_206D_202E_202D_206C_206A_202D_202A_206A_202B_200D_206D_206B_206C_206D_206F_202E_200D_202A_202C_202E_206A_206E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogError(P_1, P_2); - } - - static void _200D_206B_206B_202C_200D_206C_200E_200D_202E_202C_206B_202D_206B_206C_206F_200D_200F_206D_200E_206C_206F_206B_202E_200B_200C_202E_202E_202B_206F_206C_206C_202A_206D_202A_200C_206B_200B_200F_202C_206C_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); - } - - static void _206A_206D_202D_200F_200E_202D_206E_206C_206B_202E_202D_200E_200D_200E_206B_206D_206B_200E_202D_206A_202B_200E_200B_202B_200F_206F_202C_200D_200B_202E_202E_206D_206C_202B_206F_206E_200F_206B_200D_206A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static IPlayerCharacter _206D_202E_206C_206D_200F_202E_200C_200C_202B_202B_200D_200F_206A_206E_206F_206C_202E_206A_202D_202C_206B_206D_200B_206D_206A_202E_200D_200C_202D_200D_206C_200D_206C_206B_202C_206E_206B_206F_202C_202D_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static uint _200E_206C_200F_200D_202E_206C_202D_206E_206C_206A_200C_202E_200E_206F_200F_200B_202B_202C_206A_202A_202A_200D_206F_206C_202C_202C_202A_202B_206D_206F_202B_202D_202D_202A_200E_200D_200D_202E_206E_206E_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static Vector3 _206C_202C_202B_206E_202C_200B_202C_202B_202D_202D_206D_206A_206A_202C_202E_206F_200C_202D_206A_202C_202B_202D_200F_206A_206A_202A_202E_202C_202B_202C_206B_200F_202D_202A_206B_206B_200F_202D_202D_202C_202E(IGameObject P_0) - { - return P_0.Position; - } - - static bool _206B_200F_206D_206D_206B_206B_200B_206D_202A_206D_202A_206B_206E_200D_206E_202D_200D_206E_206A_206F_206A_202B_202E_200B_202A_206A_206A_206D_202D_202B_206C_206F_202D_206D_206F_202C_202A_202D_200B_202E_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200C_206C_200E_200B_202C_206C_206A_200E_200D_206F_206F_200D_200E_200E_200C_206A_206C_206F_200E_200B_206E_202E_202C_202D_200B_202D_202A_200D_206F_200E_202C_200B_202D_200B_200D_206B_206B_202D_206F_200C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool _206B_200B_200F_206D_202B_200D_206D_200E_202E_200D_200E_200C_200D_200C_206A_200D_202D_202B_206C_202C_206C_206C_206B_206B_206C_206E_200C_206F_206C_206F_200C_202C_202D_200F_206E_202E_206A_202B_206D_200C_202E(IDataManager P_0, Func<uint, byte> P_1, int P_2) - { - return RepairActions.CanSelfRepairAny(P_0, P_1, P_2); + _nextAttemptAtMs = Environment.TickCount64 + 300000; } } diff --git a/Questionable/Questionable.Controller/InterruptHandler.cs b/Questionable/Questionable.Controller/InterruptHandler.cs index c9ff281..3bc5d90 100644 --- a/Questionable/Questionable.Controller/InterruptHandler.cs +++ b/Questionable/Questionable.Controller/InterruptHandler.cs @@ -1,9 +1,6 @@ using System; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using System.Threading; using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Hooking; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; @@ -42,54 +39,11 @@ internal sealed class InterruptHandler : IDisposable [FieldOffset(6)] public ushort Value; - public byte AttackType - { - get - { - byte param = Param1; - int num = 15; - int num2 = param; - return (byte)(num2 + num - (num2 | num)); - } - } + public byte AttackType => (byte)(Param1 & 0xF); - [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(73, 11); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-725035009)); - defaultInterpolatedStringHandler.AppendFormatted(Type); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-496390848)); - defaultInterpolatedStringHandler.AppendFormatted(Param0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(609308249)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(877514922)); - defaultInterpolatedStringHandler.AppendFormatted(Param1, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1055630216)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(25938555)); - defaultInterpolatedStringHandler.AppendFormatted(Param2, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(609308249)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-845350805)); - defaultInterpolatedStringHandler.AppendFormatted(Param2, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1875656278)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1021698688)); - defaultInterpolatedStringHandler.AppendFormatted(_202B_202B_200B_202E_206A_206E_202A_202A_202E_206D_202E_200B_206A_206D_200B_200C_200F_200B_202B_202C_206A_200F_200D_200D_202C_200C_206B_202D_202C_202C_202B_206B_202E_206F_200F_206D_200B_200E_200E_206B_202E(_202E_200D_200B_206B_200C_206D_200D_202E_206B_206E_202C_206B_202A_206A_202A_206B_202A_206E_202D_200C_206A_200E_200F_202C_206F_206B_200C_200F_202C_202E_206E_200F_206E_206C_200D_206A_200C_202E_206C_202E_202E(Param2, 2), 8, '0')); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-884985363)); - defaultInterpolatedStringHandler.AppendFormatted(Mult, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-645152765)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1045548845)); - defaultInterpolatedStringHandler.AppendFormatted(Flags, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-645152765)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(594831569)); - defaultInterpolatedStringHandler.AppendFormatted(_202B_202B_200B_202E_206A_206E_202A_202A_202E_206D_202E_200B_206A_206D_200B_200C_200F_200B_202B_202C_206A_200F_200D_200D_202C_200C_206B_202D_202C_202C_202B_206B_202E_206F_200F_206D_200B_200E_200E_206B_202E(_202E_200D_200B_206B_200C_206D_200D_202E_206B_206E_202C_206B_202A_206A_202A_206B_202A_206E_202D_200C_206A_200E_200F_202C_206F_206B_200C_200F_202C_202E_206E_200F_206E_206C_200D_206A_200C_202E_206C_202E_202E(Flags, 2), 8, '0')); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1435755758)); - defaultInterpolatedStringHandler.AppendFormatted(Value, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(123427143)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(739800108)); - defaultInterpolatedStringHandler.AppendFormatted(AttackType); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - static string _202E_200D_200B_206B_200C_206D_200D_202E_206B_206E_202C_206B_202A_206A_202A_206B_202A_206E_202D_200C_206A_200E_200F_202C_206F_206B_200C_200F_202C_202E_206E_200F_206E_206C_200D_206A_200C_202E_206C_202E_202E(byte P_0, int P_1) - { - return Convert.ToString(P_0, P_1); - } - - static string _202B_202B_200B_202E_206A_206E_202A_202A_202E_206D_202E_200B_206A_206D_200B_200C_200F_200B_202B_202C_206A_200F_200D_200D_202C_200C_206B_202D_202C_202C_202B_206B_202E_206F_200F_206D_200B_200E_200E_206B_202E(string P_0, int P_1, char P_2) - { - return P_0.PadLeft(P_1, P_2); + return $"Type: {Type}, p0: {Param0:D3}, p1: {Param1:D3}, p2: {Param2:D3} 0x{Param2:X2} '{Convert.ToString(Param2, 2).PadLeft(8, '0')}', mult: {Mult:D3}, flags: {Flags:D3} | {Convert.ToString(Flags, 2).PadLeft(8, '0')}, value: {Value:D6} ATTACK TYPE: {AttackType}"; } } @@ -183,72 +137,8 @@ internal sealed class InterruptHandler : IDisposable private readonly ILogger<InterruptHandler> _logger; - [CompilerGenerated] - private EventHandler? m_Interrupted; + public event EventHandler? Interrupted; - public event EventHandler? Interrupted - { - [CompilerGenerated] - add - { - EventHandler eventHandler = this.m_Interrupted; - int num = -1990188142; - while (true) - { - int num2 = num; - int num3 = -1990188141; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1990188142; - break; - case 2: - return; - case 1: - { - EventHandler eventHandler2 = eventHandler; - EventHandler value2 = (EventHandler)_200D_200C_206C_200D_202D_202E_206A_202A_206E_202A_200C_202C_200E_200C_200D_206C_202C_200E_200B_206D_200D_200C_206B_206B_200E_206B_202B_200B_206A_200F_206E_200B_200B_206E_202A_206A_206D_202D_206B_202A_202E((Delegate)eventHandler2, (Delegate)value); - eventHandler = Interlocked.CompareExchange(ref this.m_Interrupted, value2, eventHandler2); - num = (((object)eventHandler != eventHandler2) ? (-1990188142) : (-1990188143)); - break; - } - } - } - } - [CompilerGenerated] - remove - { - EventHandler eventHandler = this.m_Interrupted; - int num = -2074209311; - while (true) - { - int num2 = num; - int num3 = -2074209312; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -2074209311; - break; - case 0: - return; - case 1: - { - EventHandler eventHandler2 = eventHandler; - EventHandler value2 = (EventHandler)_202C_200E_200C_202C_200E_202C_206F_202C_206A_206E_206E_206F_202E_200C_206F_200C_200F_202C_202D_206A_200F_202A_200F_202C_202A_202D_200B_206A_206B_202D_200B_200D_206F_200B_202B_200E_202A_200F_206B_202E_202E((Delegate)eventHandler2, (Delegate)value); - eventHandler = Interlocked.CompareExchange(ref this.m_Interrupted, value2, eventHandler2); - num = (((object)eventHandler != eventHandler2) ? (-2074209311) : (-2074209312)); - break; - } - } - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe InterruptHandler(IGameInteropProvider gameInteropProvider, IClientState clientState, IObjectTable objectTable, TerritoryData territoryData, ILogger<InterruptHandler> logger) { _clientState = clientState; @@ -260,110 +150,44 @@ internal sealed class InterruptHandler : IDisposable _processActionEffectHook = gameInteropProvider.HookFromAddress<ProcessActionEffect>(ActionEffectHandler.Addresses.Receive.Value, HandleProcessActionEffect); _processActionEffectHook.Enable(); } - catch (Exception ex) + catch (Exception exception) { - _202C_200C_206A_202B_206A_202E_206E_206A_202D_206C_200D_200E_206E_200C_200E_206F_200D_200B_200C_206B_206D_206C_202E_202B_206C_206F_202A_206D_202B_206F_200E_200D_200D_202A_206E_200E_202E_206A_206F_202E_202E((ILogger)_logger, ex, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1192049200), Array.Empty<object>()); + _logger.LogError(exception, "Failed to hook ProcessActionEffect; combat interrupt detection disabled (a game restart usually restores it)"); _processActionEffectHook = null; } } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void HandleProcessActionEffect(uint sourceId, Character* sourceCharacter, Vector3* pos, EffectHeader* effectHeader, EffectEntry* effectArray, ulong* effectTail) { try { - int num = (_territoryData.IsDutyInstance(_200C_206D_206C_206B_206C_206E_202D_206F_202A_200B_206E_206C_202D_202D_202C_202B_202E_202B_200C_206B_202D_200D_200E_206A_200F_206F_206C_206D_206D_202E_202C_206D_202D_206C_200D_206D_202B_200F_206F_200C_202E(_clientState)) ? (-1304675561) : (-1304675555)); - EActionEffectType type = default(EActionEffectType); - bool flag = default(bool); - bool flag2 = default(bool); - int num8 = default(int); - EffectEntry* ptr = default(EffectEntry*); - IPlayerCharacter playerCharacter = default(IPlayerCharacter); - while (true) + if (_territoryData.IsDutyInstance(_clientState.TerritoryType)) { - int num2 = num; - int num3 = -1304675562; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + IPlayerCharacter localPlayer = _objectTable.LocalPlayer; + for (int i = 0; i < effectHeader->TargetCount; i++) + { + int num = (int)(effectTail[i] & 0xFFFFFFFFu); + EffectEntry* ptr = effectArray + 8 * i; + bool flag = (uint)num == localPlayer?.GameObjectId; + if (flag) { - case 9: - num = ((type - 5 > EActionEffectType.Miss) ? (-1304675562) : (-1304675567)); - break; - case 4: + EActionEffectType type = ptr->Type; + bool flag2 = ((type == EActionEffectType.Damage || type - 5 <= EActionEffectType.Miss) ? true : false); flag = flag2; - num = -1304675556; - break; - case 5: - { - int num11 = (int)(effectTail[num8] & 0xFFFFFFFFu); - ptr = effectArray + 8 * num8; - flag = (uint)num11 == ((playerCharacter != null) ? new ulong?(_206C_202B_200E_206A_206E_200C_202D_200F_202E_206C_206F_202D_200F_202A_200B_202E_202D_200B_206B_206A_200F_202A_200E_202C_200D_206C_202E_206C_200B_200F_202E_206E_206F_202A_202E_200E_206E_206B_206D_202A_202E((IGameObject)playerCharacter)) : ((ulong?)null)); - num = ((!flag) ? (-1304675556) : (-1304675564)); - break; } - case 8: - num = -1304675555; - break; - case 3: + if (flag) { - _202A_202E_206C_206E_200D_202E_202E_206F_206B_202E_200C_200D_202A_200B_206E_206A_202D_200F_200D_202D_200B_200D_200D_206C_202B_206C_202A_202A_200E_202D_206A_206A_202C_200F_206B_202A_202E_202E_202E_200E_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1232681813), new object[2] - { - sourceId, - ptr->Type - }); - EventHandler? eventHandler = this.Interrupted; - if (eventHandler == null) - { - return; - } - eventHandler(this, EventArgs.Empty); - num = -1304675561; + _logger.LogTrace("Damage action effect on self, from {SourceId} ({EffectType})", sourceId, ptr->Type); + this.Interrupted?.Invoke(this, EventArgs.Empty); break; } - case 12: - num = ((num8 < effectHeader->TargetCount) ? (-1304675565) : (-1304675561)); - break; - case 2: - type = ptr->Type; - num = ((type == EActionEffectType.Damage) ? (-1304675567) : (-1304675553)); - break; - case 7: - flag2 = true; - num = -1304675566; - break; - case 0: - flag2 = false; - num = -1304675566; - break; - case 10: - num = ((!flag) ? (-1304675568) : (-1304675563)); - break; - case 11: - playerCharacter = _202E_200F_202B_200C_202B_202C_202D_200F_206B_200F_206E_200C_202E_200F_202E_202D_206E_200C_206E_206F_206D_206A_202D_200E_206A_200E_202B_206B_202A_202D_202C_200F_200E_200C_202C_200E_206E_206D_202B_202E_202E(_objectTable); - num8 = 0; - num = -1304675558; - break; - case 6: - { - int num7 = num8; - num3 = 1; - num4 = num7; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - num8 = num9 + (num10 + num10); - num = -1304675558; - break; - } - case 1: - return; - } } } - catch (Exception ex) + catch (Exception exception) { - _200D_200E_202A_206E_200C_200D_202E_200D_202C_206E_200F_200D_206F_202E_200C_200C_200E_202E_202E_206B_206A_206E_206B_202B_200C_200C_206E_206B_200C_202D_202C_202B_200E_202B_202A_206E_200B_202C_206A_206F_202E((ILogger)_logger, ex, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1383878648), Array.Empty<object>()); + _logger.LogWarning(exception, "Unable to process action effect"); } finally { @@ -373,73 +197,10 @@ internal sealed class InterruptHandler : IDisposable public void Dispose() { - int num = ((_processActionEffectHook == null) ? (-1959940168) : (-1959940165)); - while (true) + if (_processActionEffectHook != null) { - int num2 = num; - int num3 = -1959940166; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1959940165; - break; - case 1: - _processActionEffectHook.Disable(); - _processActionEffectHook.Dispose(); - num = -1959940168; - break; - case 2: - return; - } + _processActionEffectHook.Disable(); + _processActionEffectHook.Dispose(); } } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static void _202C_200C_206A_202B_206A_202E_206E_206A_202D_206C_200D_200E_206E_200C_200E_206F_200D_200B_200C_206B_206D_206C_202E_202B_206C_206F_202A_206D_202B_206F_200E_200D_200D_202A_206E_200E_202E_206A_206F_202E_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - - static Delegate _200D_200C_206C_200D_202D_202E_206A_202A_206E_202A_200C_202C_200E_200C_200D_206C_202C_200E_200B_206D_200D_200C_206B_206B_200E_206B_202B_200B_206A_200F_206E_200B_200B_206E_202A_206A_206D_202D_206B_202A_202E(Delegate P_0, Delegate P_1) - { - return Delegate.Combine(P_0, P_1); - } - - static Delegate _202C_200E_200C_202C_200E_202C_206F_202C_206A_206E_206E_206F_202E_200C_206F_200C_200F_202C_202D_206A_200F_202A_200F_202C_202A_202D_200B_206A_206B_202D_200B_200D_206F_200B_202B_200E_202A_200F_206B_202E_202E(Delegate P_0, Delegate P_1) - { - return Delegate.Remove(P_0, P_1); - } - - static uint _200C_206D_206C_206B_206C_206E_202D_206F_202A_200B_206E_206C_202D_202D_202C_202B_202E_202B_200C_206B_202D_200D_200E_206A_200F_206F_206C_206D_206D_202E_202C_206D_202D_206C_200D_206D_202B_200F_206F_200C_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static IPlayerCharacter _202E_200F_202B_200C_202B_202C_202D_200F_206B_200F_206E_200C_202E_200F_202E_202D_206E_200C_206E_206F_206D_206A_202D_200E_206A_200E_202B_206B_202A_202D_202C_200F_200E_200C_202C_200E_206E_206D_202B_202E_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static ulong _206C_202B_200E_206A_206E_200C_202D_200F_202E_206C_206F_202D_200F_202A_200B_202E_202D_200B_206B_206A_200F_202A_200E_202C_200D_206C_202E_206C_200B_200F_202E_206E_206F_202A_202E_200E_206E_206B_206D_202A_202E(IGameObject P_0) - { - return P_0.GameObjectId; - } - - static void _202A_202E_206C_206E_200D_202E_202E_206F_206B_202E_200C_200D_202A_200B_206E_206A_202D_200F_200D_202D_200B_200D_200D_206C_202B_206C_202A_202A_200E_202D_206A_206A_202C_200F_206B_202A_202E_202E_202E_200E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogTrace(P_1, P_2); - } - - static void _200D_200E_202A_206E_200C_200D_202E_200D_202C_206E_200F_200D_206F_202E_200C_200C_200E_202E_202E_206B_206A_206E_206B_202B_200C_200C_206E_206B_200C_202D_202C_202B_200E_202B_202A_206E_200B_202C_206A_206F_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogWarning(P_1, P_2, P_3); - } } diff --git a/Questionable/Questionable.Controller/MiniTaskController.cs b/Questionable/Questionable.Controller/MiniTaskController.cs index 00af23f..0b7d3c1 100644 --- a/Questionable/Questionable.Controller/MiniTaskController.cs +++ b/Questionable/Questionable.Controller/MiniTaskController.cs @@ -1,8 +1,6 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Text.RegularExpressions; using Dalamud.Game.ClientState.Conditions; @@ -10,7 +8,6 @@ using Dalamud.Game.Text.SeStringHandling; using Dalamud.Plugin.Services; using LLib; using Lumina.Excel.Sheets; -using Lumina.Text.ReadOnly; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps; @@ -24,55 +21,6 @@ namespace Questionable.Controller; internal abstract class MiniTaskController<T> : IDisposable { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<LogMessage, ReadOnlySeString?> _003C_003E9__13_0; - - public static Func<LogMessage, ReadOnlySeString?> _003C_003E9__13_1; - - public static Func<LogMessage, ReadOnlySeString?> _003C_003E9__13_2; - - public static Func<ITask, string> _003C_003E9__20_1; - - public static Func<ITask, string> _003C_003E9__20_0; - - internal ReadOnlySeString? _003C_002Ector_003Eb__13_0(LogMessage x) - { - return x.Text; - } - - internal ReadOnlySeString? _003C_002Ector_003Eb__13_1(LogMessage x) - { - return x.Text; - } - - internal ReadOnlySeString? _003C_002Ector_003Eb__13_2(LogMessage x) - { - return x.Text; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal string _003CGetRemainingTaskNames_003Eb__20_1(ITask x) - { - return _206B_202C_200C_206D_200D_200E_206B_202E_202C_206E_200E_200C_200F_202B_202A_206A_206D_200C_200F_202E_200D_200E_206B_200C_200F_200C_206C_202E_200E_206D_206A_200F_200B_206D_202D_206A_206D_200E_206D_206F_202E((object)x) ?? global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(656320081); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal string _003CGetRemainingTaskNames_003Eb__20_0(ITask x) - { - return _206B_202C_200C_206D_200D_200E_206B_202E_202C_206E_200E_200C_200F_202B_202A_206A_206D_200C_200F_202E_200D_200E_206B_200C_200F_200C_206C_202E_200E_206D_206A_200F_200B_206D_202D_206A_206D_200E_206D_206F_202E((object)x) ?? global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1887683575); - } - - static string _206B_202C_200C_206D_200D_200E_206B_202E_202C_206E_200E_200C_200F_202B_202A_206A_206D_200C_200F_202E_200D_200E_206B_200C_200F_200C_206C_202E_200E_206D_206A_200F_200B_206D_202D_206A_206D_200E_206D_206F_202E(object P_0) - { - return P_0.ToString(); - } - } - protected readonly TaskQueue _taskQueue = new TaskQueue(); private readonly IChatGui _chatGui; @@ -113,10 +61,8 @@ internal abstract class MiniTaskController<T> : IDisposable _interruptHandler.Interrupted += HandleInterruption; } - [MethodImpl(MethodImplOptions.NoInlining)] protected virtual void UpdateCurrentTask() { - int num; if (_taskQueue.CurrentTaskExecutor == null) { if (!_taskQueue.TryDequeue(out ITask task)) @@ -125,46 +71,28 @@ internal abstract class MiniTaskController<T> : IDisposable } try { - _206D_206B_206A_202B_206A_200F_202D_200C_206E_200E_200D_206C_206F_200B_200B_200C_200C_206E_206E_206E_202A_206C_206B_206C_200F_202D_206A_206B_206A_206D_202D_200F_200E_200D_206A_202C_206D_206F_200E_202C_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1429948586), new object[1] { _202D_200B_206C_206B_200E_202E_200D_206C_206A_206D_206C_206A_202E_202B_200C_202B_206F_206C_202A_200D_202B_200B_200B_200E_202C_202C_206D_200E_206D_206A_200F_206D_200E_202C_200D_206A_206B_202D_206E_206F_202E((object)task) }); - ITaskExecutor requiredKeyedService = _serviceProvider.GetRequiredKeyedService<ITaskExecutor>(_202B_200E_206B_202E_206D_200E_202A_206B_206F_206A_200D_200B_206A_200F_202C_202C_202A_202B_206E_202D_200F_206E_202D_200B_206E_202D_200B_206C_206E_200B_202E_200E_200B_202A_202A_206A_200C_202D_206D_206D_202E((object)task)); - num = ((!requiredKeyedService.Start(task)) ? (-231627347) : (-231627345)); - while (true) + _logger.LogDebug("Starting task {TaskName}", task.ToString()); + ITaskExecutor requiredKeyedService = _serviceProvider.GetRequiredKeyedService<ITaskExecutor>(task.GetType()); + if (requiredKeyedService.Start(task)) { - int num2 = num; - int num3 = -231627346; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _taskQueue.CurrentTaskExecutor = requiredKeyedService; + if (task != _lastInterruptedTask) { - case 2: _lastInterruptedTask = null; _interruptRetryCount = 0; - num = -231627346; - break; - case 1: - _taskQueue.CurrentTaskExecutor = requiredKeyedService; - num = ((task == _lastInterruptedTask) ? (-231627346) : (-231627348)); - break; - case 4: - num = -231627345; - break; - case 0: - return; - case 3: - _206C_200C_200B_206D_206A_206E_206A_206D_206A_200D_202E_206E_202B_206E_202E_202C_200F_202B_202B_202C_200C_206C_206C_200F_206B_200D_206D_206C_202C_200B_206E_200F_206F_200E_202A_206B_200F_202B_200E_200E_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(383569520), new object[1] { _202D_200B_206C_206B_200E_202E_200D_206C_206A_206D_206C_206A_202E_202B_200C_202B_206F_206C_202A_200D_202B_200B_200B_200E_202C_202C_206D_200E_206D_206A_200F_206D_200E_202C_200D_206A_206B_202D_206E_206F_202E((object)task) }); - return; } } + else + { + _logger.LogTrace("Task {TaskName} was skipped", task.ToString()); + } + return; } - catch (Exception ex) + catch (Exception exception) { - _206E_206B_200C_202D_206E_202E_200F_206B_206F_202B_206F_206D_206C_206C_202C_200B_206A_200E_200E_200D_202B_202E_202B_200D_206F_202C_206D_206A_202B_202A_206E_200B_206B_200F_206F_202D_200B_206A_202B_202A_202E((ILogger)_logger, ex, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-347977283), new object[1] { _202D_200B_206C_206B_200E_202E_200D_206C_206A_206D_206C_206A_202E_202B_200C_202B_206F_206C_202A_200D_202B_200B_200B_200E_202C_202C_206D_200E_206D_206A_200F_206D_200E_202C_200D_206A_206B_202D_206E_206F_202E((object)task) }); - IChatGui chatGui = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(57, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2137508884)); - defaultInterpolatedStringHandler.AppendFormatted(task); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(956431555)); - _200C_202A_200F_200D_200C_206A_202E_202E_206B_202B_200B_202D_200F_202C_202C_202A_206B_202C_206C_206B_202E_206D_200C_202C_202E_200F_200E_206C_202A_206B_202E_200D_200C_206D_200E_206A_200E_200C_206F_206E_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); - Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-728065814)); + _logger.LogError(exception, "Failed to start task {TaskName}", task.ToString()); + _chatGui.PrintError($"Failed to start task '{task}', please check /xllog for details.", "Questionable", 576); + Stop("Task failed to start"); return; } } @@ -173,232 +101,107 @@ internal abstract class MiniTaskController<T> : IDisposable ETaskResult eTaskResult; try { - num = ((!currentTaskExecutor.WasInterrupted()) ? 235217046 : 235217045); - while (true) + if (currentTaskExecutor.WasInterrupted()) { - int num5 = num; - int num3 = 235217046; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) + InterruptQueueWithCombat(); + return; + } + if (currentTaskExecutor.HasTimedOut(_configuration.Advanced.InteractionTimeoutSeconds)) + { + _logger.LogWarning("Task {TaskName} timed out after {Timeout}s", currentTask, _configuration.Advanced.InteractionTimeoutSeconds); + if (_condition[ConditionFlag.InCombat]) { - case 6: - return; - case 2: - _206D_202E_202E_206E_202A_202A_202D_202C_200C_200F_200B_200B_202A_206B_202D_206D_200E_206C_200B_206F_206D_200F_206D_206E_200F_202C_202E_202A_200E_206D_200E_206D_206C_200D_206A_202D_206B_206E_206F_206D_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1893436399), new object[1] { _retryStepCount }); - Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-209533649)); - return; - case 5: InterruptQueueWithCombat(); - num = 235217040; - break; - case 1: - _206F_206B_206C_200E_202E_206D_206C_200E_202B_206D_206B_202E_200C_200D_206D_200B_200F_200B_206C_200E_202B_202B_206E_206B_206C_206B_206E_200D_206A_202C_202D_206F_206B_200F_206D_200F_206E_206E_202D_206A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1774014248), new object[2] - { - currentTask, - _configuration.Advanced.InteractionTimeoutSeconds - }); - num = ((!_202D_206D_206E_202B_206C_200E_200B_200B_200B_202B_206A_202D_206C_200E_202D_200D_202C_200E_206F_206D_202C_206B_202B_200D_202A_202D_206A_206D_202D_206B_200E_200D_202D_202C_206D_206B_202D_206B_206D_206E_202E(_condition, ConditionFlag.InCombat)) ? 235217041 : 235217043); - break; - case 4: - _206D_206B_206A_202B_206A_200F_202D_200C_206E_200E_200D_206C_206F_200B_200B_200C_200C_206E_206E_206E_202A_206C_206B_206C_200F_202D_206A_206B_206A_206D_202D_200F_200E_200D_206A_202C_206D_206F_200E_202C_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1770635265), new object[2] - { - _retryStepCount, - _configuration.Advanced.InteractionRetryLimit - }); + return; + } + _retryStepCount++; + if (_retryStepCount > _configuration.Advanced.InteractionRetryLimit) + { + _logger.LogError("Non-combat timeout retry limit exceeded after {Count} retries, stopping", _retryStepCount); + Stop("Non-combat timeout retry limit exceeded"); + } + else + { + _logger.LogDebug("Not in combat, retrying step (attempt {Count}/{Limit})", _retryStepCount, _configuration.Advanced.InteractionRetryLimit); _taskQueue.Reset(); OnRetryStep(); - num = 235217040; - break; - case 8: - num = 235217045; - break; - case 0: - num = ((!currentTaskExecutor.HasTimedOut(_configuration.Advanced.InteractionTimeoutSeconds)) ? 235217055 : 235217047); - break; - case 3: - InterruptQueueWithCombat(); - return; - case 7: - { - int retryStepCount = _retryStepCount; - num3 = 1; - num4 = retryStepCount; - int num6 = num4 ^ num3; - int num7 = num4 & num3; - _retryStepCount = num6 + (num7 + num7); - num = ((_retryStepCount <= _configuration.Advanced.InteractionRetryLimit) ? 235217042 : 235217044); - break; } - case 9: - eTaskResult = currentTaskExecutor.Update(); - goto end_IL_0211; - } - continue; - end_IL_0211: - break; + return; } + eTaskResult = currentTaskExecutor.Update(); } catch (MovementController.PathfindingFailedException) { throw; } - catch (Exception ex3) + catch (Exception exception2) { - _206E_206B_200C_202D_206E_202E_200F_206B_206F_202B_206F_206D_206C_206C_202C_200B_206A_200E_200E_200D_202B_202E_202B_200D_206F_202C_206D_206A_202B_202A_206E_200B_206B_200F_206F_202D_200B_206A_202B_202A_202E((ILogger)_logger, ex3, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-407849183), new object[1] { currentTask }); - IChatGui chatGui2 = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(58, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(822530907)); - defaultInterpolatedStringHandler2.AppendFormatted(currentTask); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-201978855)); - _200C_202A_200F_200D_200C_206A_202E_202E_206B_202B_200B_202D_200F_202C_202C_202A_206B_202C_206C_206B_202E_206D_200C_202C_202E_200F_200E_206C_202A_206B_202E_200D_200C_206D_200E_206A_200E_200C_206F_206E_202E(chatGui2, defaultInterpolatedStringHandler2.ToStringAndClear(), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); - Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-391735924)); + _logger.LogError(exception2, "Failed to update task {TaskName}", currentTask); + _chatGui.PrintError($"Failed to update task '{currentTask}', please check /xllog for details.", "Questionable", 576); + Stop("Task failed to update"); return; } - num = ((_taskQueue.CurrentTaskExecutor == currentTaskExecutor) ? (-1790042060) : (-1790042062)); - bool flag = default(bool); - ITask task2 = default(ITask); - IExtraTaskCreator extraTaskCreator = default(IExtraTaskCreator); - while (true) + if (_taskQueue.CurrentTaskExecutor != currentTaskExecutor) { - int num8 = num; - int num3 = -1790042050; - int num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - int retryStepCount2; - ILastTask task3; - switch (num9 - (num10 + num10)) + return; + } + switch (eTaskResult) + { + case ETaskResult.StillRunning: + break; + case ETaskResult.SkipRemainingTasksForStep: + { + _logger.LogDebug("{Task} → {Result}, skipping remaining tasks for step", currentTask, eTaskResult); + _taskQueue.CurrentTaskExecutor = null; + ITask task3; + while (_taskQueue.TryDequeue(out task3)) { - case 1: - num = ((!flag) ? (-1790042054) : (-1790042068)); - break; - case 0: - num = ((!(task2 is Gather.SkipMarker)) ? (-1790042072) : (-1790042055)); - break; - case 17: - _206D_206B_206A_202B_206A_200F_202D_200C_206E_200E_200D_206C_206F_200B_200B_200C_200C_206E_206E_206E_202A_206C_206B_206C_200F_202D_206A_206B_206A_206D_202D_200F_200E_200D_206A_202C_206D_206F_200E_202C_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1662139304), new object[3] + if ((task3 is ILastTask || task3 is Gather.SkipMarker) ? true : false) { - currentTask, - eTaskResult, - _taskQueue.RemainingTasks.Count() - }); - OnTaskComplete(currentTask); - num = ((eTaskResult != ETaskResult.CreateNewTasks) ? (-1790042058) : (-1790042059)); - break; - case 18: - { - ITaskExecutor requiredKeyedService2 = _serviceProvider.GetRequiredKeyedService<ITaskExecutor>(_202B_200E_206B_202E_206D_200E_202A_206B_206F_206A_200D_200B_206A_200F_202C_202C_202A_202B_206E_202D_200F_206E_202D_200B_206E_202D_200B_206C_206E_200B_202E_200E_200B_202A_202A_206A_200C_202D_206D_206D_202E((object)task2)); - requiredKeyedService2.Start(task2); - _taskQueue.CurrentTaskExecutor = requiredKeyedService2; - return; - } - case 6: - num = -1790042062; - break; - case 21: - _206D_206B_206A_202B_206A_200F_202D_200C_206E_200E_200D_206C_206F_200B_200B_200C_200C_206E_206E_206E_202A_206C_206B_206C_200F_202D_206A_206B_206A_206D_202D_200F_200E_200D_206A_202C_206D_206F_200E_202C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-705700696), new object[4] - { - currentTask, - eTaskResult, - _retryStepCount, - _configuration.Advanced.InteractionRetryLimit - }); - _taskQueue.Reset(); - OnRetryStep(); - return; - case 19: - _taskQueue.EnqueueAll(extraTaskCreator.CreateExtraTasks()); - num = -1790042058; - break; - case 8: - _taskQueue.CurrentTaskExecutor = null; - return; - case 9: - _206D_202E_202E_206E_202A_202A_202D_202C_200C_200F_200B_200B_202A_206B_202D_206D_200E_206C_200B_206F_206D_200F_206D_206E_200F_202C_202E_202A_200E_206D_200E_206D_206C_200D_206A_202D_206B_206E_206F_206D_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1386872238), new object[1] { _retryStepCount }); - Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(724240837)); - return; - case 5: - goto IL_071a; - case 13: - return; - case 3: - goto IL_0761; - case 20: - return; - case 10: - switch (eTaskResult) - { - case ETaskResult.TaskComplete: - case ETaskResult.CreateNewTasks: + ITaskExecutor requiredKeyedService2 = _serviceProvider.GetRequiredKeyedService<ITaskExecutor>(task3.GetType()); + requiredKeyedService2.Start(task3); + _taskQueue.CurrentTaskExecutor = requiredKeyedService2; break; - case ETaskResult.End: - goto IL_071a; - case ETaskResult.StillRunning: - return; - case ETaskResult.NextStep: - goto IL_0761; - default: - goto IL_07d0; - case ETaskResult.RetryStep: - goto IL_0821; - case ETaskResult.SkipRemainingTasksForStep: - goto IL_0870; } - goto case 17; - case 22: - flag = false; - num = -1790042049; - break; - case 7: - flag = true; - num = -1790042049; - break; - case 11: - extraTaskCreator = currentTaskExecutor as IExtraTaskCreator; - num = ((extraTaskCreator == null) ? (-1790042058) : (-1790042067)); - break; - case 15: - goto IL_0821; - case 16: - goto IL_0870; - case 14: - num = ((task2 is ILastTask) ? (-1790042055) : (-1790042050)); - break; - case 12: - return; - case 4: - num = ((!_taskQueue.TryDequeue(out task2)) ? (-1790042070) : (-1790042064)); - break; - case 2: - return; - IL_0870: - _206D_206B_206A_202B_206A_200F_202D_200C_206E_200E_200D_206C_206F_200B_200B_200C_200C_206E_206E_206E_202A_206C_206B_206C_200F_202D_206A_206B_206A_206D_202D_200F_200E_200D_206A_202C_206D_206F_200E_202C_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1713413528), new object[2] { currentTask, eTaskResult }); - _taskQueue.CurrentTaskExecutor = null; - num = -1790042054; - break; - IL_0821: - retryStepCount2 = _retryStepCount; - num3 = 1; - num4 = retryStepCount2; - _retryStepCount = (num4 | num3) + (num4 & num3); - num = ((_retryStepCount <= _configuration.Advanced.InteractionRetryLimit) ? (-1790042069) : (-1790042057)); - break; - IL_07d0: - num = -1790042052; - break; - IL_0761: - _206D_206B_206A_202B_206A_200F_202D_200C_206E_200E_200D_206C_206F_200B_200B_200C_200C_206E_206E_206E_202A_206C_206B_206C_200F_202D_206A_206B_206A_206D_202D_200F_200E_200D_206A_202C_206D_206F_200E_202C_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(341325607), new object[2] { currentTask, eTaskResult }); - _retryStepCount = 0; - task3 = (ILastTask)currentTask; - _taskQueue.CurrentTaskExecutor = null; - OnNextStep(task3); - return; - IL_071a: - _206D_206B_206A_202B_206A_200F_202D_200C_206E_200E_200D_206C_206F_200B_200B_200C_200C_206E_206E_206E_202A_206C_206B_206C_200F_202D_206A_206B_206A_206D_202D_200F_200E_200D_206A_202C_206D_206F_200E_202C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1482182306), new object[2] { currentTask, eTaskResult }); - _taskQueue.CurrentTaskExecutor = null; - Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(910810307)); - return; } + break; + } + case ETaskResult.TaskComplete: + case ETaskResult.CreateNewTasks: + _logger.LogDebug("{Task} → {Result}, remaining tasks: {RemainingTaskCount}", currentTask, eTaskResult, _taskQueue.RemainingTasks.Count()); + OnTaskComplete(currentTask); + if (eTaskResult == ETaskResult.CreateNewTasks && currentTaskExecutor is IExtraTaskCreator extraTaskCreator) + { + _taskQueue.EnqueueAll(extraTaskCreator.CreateExtraTasks()); + } + _taskQueue.CurrentTaskExecutor = null; + break; + case ETaskResult.RetryStep: + _retryStepCount++; + if (_retryStepCount > _configuration.Advanced.InteractionRetryLimit) + { + _logger.LogError("RetryStep limit exceeded after {Count} retries, stopping", _retryStepCount); + Stop("RetryStep limit exceeded"); + break; + } + _logger.LogDebug("{Task} → {Result}, retrying current step (attempt {Count}/{Limit})", currentTask, eTaskResult, _retryStepCount, _configuration.Advanced.InteractionRetryLimit); + _taskQueue.Reset(); + OnRetryStep(); + break; + case ETaskResult.NextStep: + { + _logger.LogDebug("{Task} → {Result}", currentTask, eTaskResult); + _retryStepCount = 0; + ILastTask task2 = (ILastTask)currentTask; + _taskQueue.CurrentTaskExecutor = null; + OnNextStep(task2); + break; + } + case ETaskResult.End: + _logger.LogDebug("{Task} → {Result}", currentTask, eTaskResult); + _taskQueue.CurrentTaskExecutor = null; + Stop("Task end"); + break; } } @@ -406,11 +209,10 @@ internal abstract class MiniTaskController<T> : IDisposable { } - [MethodImpl(MethodImplOptions.NoInlining)] protected virtual void OnRetryStep() { - _206F_206B_206C_200E_202E_206D_206C_200E_202B_206D_206B_202E_200C_200D_206D_200B_200F_200B_206C_200E_202B_202B_206E_206B_206C_206B_206E_200D_206A_202C_202D_206F_206B_200F_206D_200F_206E_206E_202D_206A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(265028979), Array.Empty<object>()); - Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(542623925)); + _logger.LogWarning("RetryStep not handled by this controller, stopping"); + Stop("RetryStep not supported"); } protected void ResetStepRetryCounter() @@ -424,336 +226,130 @@ internal abstract class MiniTaskController<T> : IDisposable public virtual void Stop(string label) { - IStoppableTaskExecutor stoppableTaskExecutor = _taskQueue.CurrentTaskExecutor as IStoppableTaskExecutor; - int num = ((stoppableTaskExecutor == null) ? (-478245129) : (-478245132)); - while (true) + if (_taskQueue.CurrentTaskExecutor is IStoppableTaskExecutor stoppableTaskExecutor) { - int num2 = num; - int num3 = -478245130; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _retryStepCount = 0; - return; - case 2: - stoppableTaskExecutor.StopNow(); - num = -478245129; - break; - case 0: - num = -478245132; - break; - } + stoppableTaskExecutor.StopNow(); } + _retryStepCount = 0; } - [MethodImpl(MethodImplOptions.NoInlining)] public virtual IList<string> GetRemainingTaskNames() { ITask task = _taskQueue.CurrentTaskExecutor?.CurrentTask; - int num = ((task == null) ? 45674528 : 45674531); - while (true) + if (task != null) { - int num2 = num; - int num3 = 45674529; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_005f; - case 1: - return _taskQueue.RemainingTasks.Select([MethodImpl(MethodImplOptions.NoInlining)] (ITask x) => _003C_003Ec._206B_202C_200C_206D_200D_200E_206B_202E_202C_206E_200E_200C_200F_202B_202A_206A_206D_200C_200F_202E_200D_200E_206B_200C_200F_200C_206C_202E_200E_206D_206A_200F_200B_206D_202D_206A_206D_200E_206D_206F_202E((object)x) ?? global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1887683575)).ToList(); - case 2: - { - List<string> list = new List<string>(); - list.Add(_202D_200B_206C_206B_200E_202E_200D_206C_206A_206D_206C_206A_202E_202B_200C_202B_206F_206C_202A_200D_202B_200B_200B_200E_202C_202C_206D_200E_206D_206A_200F_206D_200E_202C_200D_206A_206B_202D_206E_206F_202E((object)task) ?? global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1887683575)); - list.AddRange(_taskQueue.RemainingTasks.Select([MethodImpl(MethodImplOptions.NoInlining)] (ITask x) => _003C_003Ec._206B_202C_200C_206D_200D_200E_206B_202E_202C_206E_200E_200C_200F_202B_202A_206A_206D_200C_200F_202E_200D_200E_206B_200C_200F_200C_206C_202E_200E_206D_206A_200F_200B_206D_202D_206A_206D_200E_206D_206F_202E((object)x) ?? global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(656320081))); - return list; - } - } - continue; - IL_005f: - num = 45674531; + List<string> list = new List<string>(); + list.Add(task.ToString() ?? "?"); + list.AddRange(_taskQueue.RemainingTasks.Select((ITask x) => x.ToString() ?? "?")); + return list; } + return _taskQueue.RemainingTasks.Select((ITask x) => x.ToString() ?? "?").ToList(); } - [MethodImpl(MethodImplOptions.NoInlining)] public void InterruptQueueWithCombat() { ITask task = _taskQueue.CurrentTaskExecutor?.CurrentTask; - int num = ((task != _lastInterruptedTask) ? (-2089841709) : (-2089841711)); - List<ITask> list = default(List<ITask>); - while (true) + if (task == _lastInterruptedTask) { - int num2 = num; - int num3 = -2089841710; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + _interruptRetryCount++; + if (_interruptRetryCount > _configuration.Advanced.InteractionRetryLimit) { - case 8: - { - _206D_202E_202E_206E_202A_202A_202D_202C_200C_200F_200B_200B_202A_206B_202D_206D_200E_206C_200B_206F_206D_200F_206D_206E_200F_202C_202E_202A_200E_206D_200E_206D_206C_200D_206A_202D_206B_206E_206F_206D_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-269456005), new object[2] - { - task, - _configuration.Advanced.InteractionRetryLimit - }); - IChatGui chatGui = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(30, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1056300213)); - defaultInterpolatedStringHandler.AppendFormatted(task); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1081019019)); - defaultInterpolatedStringHandler.AppendFormatted(_configuration.Advanced.InteractionRetryLimit); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(601161044)); - _200C_202A_200F_200D_200C_206A_202E_202E_206B_202B_200B_202D_200F_202C_202C_202A_206B_202C_206C_206B_202E_206D_200C_202C_202E_200F_200E_206C_202A_206B_202E_200D_200C_206D_200E_206A_200E_200C_206F_206E_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712), (ushort?)(ushort)576); - Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1773571268)); + _logger.LogError("Task {TaskName} exceeded retry limit of {Limit}, stopping", task, _configuration.Advanced.InteractionRetryLimit); + _chatGui.PrintError($"Task '{task}' failed after {_configuration.Advanced.InteractionRetryLimit} retries.", "Questionable", 576); + Stop("Retry limit exceeded"); return; } - case 2: - LogTasksAfterInterruption(); - return; - case 5: - list = new List<ITask>(); - num = ((!_202D_206D_206E_202B_206C_200E_200B_200B_200B_202B_206A_202D_206C_200E_202D_200D_202C_200E_206F_206D_202C_206B_202B_200D_202A_202D_206A_206D_202D_206B_200E_200D_202D_202C_206D_206B_202D_206B_206D_206E_202E(_condition, ConditionFlag.Mounted)) ? (-2089841701) : (-2089841707)); - break; - case 6: - num = -2089841711; - break; - case 7: - list.Add(new Questionable.Controller.Steps.Common.Mount.UnmountTask()); - num = -2089841701; - break; - case 1: - _lastInterruptedTask = task; - _interruptRetryCount = 1; - num = -2089841706; - break; - case 0: - { - TaskQueue taskQueue = _taskQueue; - int num7 = 1; - List<ITask> list2 = new List<ITask>(num7); - CollectionsMarshal.SetCount(list2, num7); - CollectionsMarshal.AsSpan(list2)[0] = new WaitAtEnd.WaitDelay(); - taskQueue.InterruptWith(list2); - num = -2089841712; - break; - } - case 4: - _206F_206B_206C_200E_202E_206D_206C_200E_202B_206D_206B_202E_200C_200D_206D_200B_200F_200B_206C_200E_202B_202B_206E_206B_206C_206B_206E_200D_206A_202C_202D_206F_206B_200F_206D_200F_206E_206E_202D_206A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1063396505), new object[2] - { - _interruptRetryCount, - _configuration.Advanced.InteractionRetryLimit - }); - num = ((!_202D_206D_206E_202B_206C_200E_200B_200B_200B_202B_206A_202D_206C_200E_202D_200D_202C_200E_206F_206D_202C_206B_202B_200D_202A_202D_206A_206D_202D_206B_200E_200D_202D_202C_206D_206B_202D_206B_206D_206E_202E(_condition, ConditionFlag.InCombat)) ? (-2089841710) : (-2089841705)); - break; - case 9: - list.Add(Combat.Factory.CreateTask(null, -1, isLastStep: false, EEnemySpawnType.QuestInterruption, new List<uint>(), new List<QuestWorkValue>(), new List<ComplexCombatData>(), null)); - list.Add(new WaitAtEnd.WaitDelay()); - _taskQueue.InterruptWith(list); - num = -2089841712; - break; - case 3: - { - int interruptRetryCount = _interruptRetryCount; - num3 = 1; - num4 = interruptRetryCount; - _interruptRetryCount = (num4 | num3) + (num4 & num3); - num = ((_interruptRetryCount <= _configuration.Advanced.InteractionRetryLimit) ? (-2089841706) : (-2089841702)); - break; - } - } } + else + { + _lastInterruptedTask = task; + _interruptRetryCount = 1; + } + _logger.LogWarning("Interrupted (attempt {Retry}/{Limit}), attempting to resolve (if in combat)", _interruptRetryCount, _configuration.Advanced.InteractionRetryLimit); + if (_condition[ConditionFlag.InCombat]) + { + List<ITask> list = new List<ITask>(); + if (_condition[ConditionFlag.Mounted]) + { + list.Add(new Questionable.Controller.Steps.Common.Mount.UnmountTask()); + } + list.Add(Combat.Factory.CreateTask(null, -1, isLastStep: false, EEnemySpawnType.QuestInterruption, new List<uint>(), new List<QuestWorkValue>(), new List<ComplexCombatData>(), null)); + list.Add(new WaitAtEnd.WaitDelay()); + _taskQueue.InterruptWith(list); + } + else + { + TaskQueue taskQueue = _taskQueue; + int num = 1; + List<ITask> list2 = new List<ITask>(num); + CollectionsMarshal.SetCount(list2, num); + CollectionsMarshal.AsSpan(list2)[0] = new WaitAtEnd.WaitDelay(); + taskQueue.InterruptWith(list2); + } + LogTasksAfterInterruption(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void InterruptWithoutCombat() { - int num = ((_taskQueue.CurrentTaskExecutor is SinglePlayerDuty.WaitSinglePlayerDutyExecutor) ? 1044838736 : 1044838739); - while (true) + if (!(_taskQueue.CurrentTaskExecutor is SinglePlayerDuty.WaitSinglePlayerDutyExecutor)) { - int num2 = num; - int num3 = 1044838737; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1044838739; - break; - case 2: - { - _206F_206B_206C_200E_202E_206D_206C_200E_202B_206D_206B_202E_200C_200D_206D_200B_200F_200B_206C_200E_202B_202B_206E_206B_206C_206B_206E_200D_206A_202C_202D_206F_206B_200F_206D_200F_206E_206E_202D_206A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1960045245), Array.Empty<object>()); - TaskQueue taskQueue = _taskQueue; - int num7 = 1; - List<ITask> list = new List<ITask>(num7); - CollectionsMarshal.SetCount(list, num7); - CollectionsMarshal.AsSpan(list)[0] = new WaitAtEnd.WaitDelay(); - taskQueue.InterruptWith(list); - LogTasksAfterInterruption(); - num = 1044838736; - break; - } - case 1: - return; - } + _logger.LogWarning("Interrupted, attempting to redo previous tasks (not in combat)"); + TaskQueue taskQueue = _taskQueue; + int num = 1; + List<ITask> list = new List<ITask>(num); + CollectionsMarshal.SetCount(list, num); + CollectionsMarshal.AsSpan(list)[0] = new WaitAtEnd.WaitDelay(); + taskQueue.InterruptWith(list); + LogTasksAfterInterruption(); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void LogTasksAfterInterruption() { - _206D_206B_206A_202B_206A_200F_202D_200C_206E_200E_200D_206C_206F_200B_200B_200C_200C_206E_206E_206E_202A_206C_206B_206C_200F_202D_206A_206B_206A_206D_202D_200F_200E_200D_206A_202C_206D_206F_200E_202C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1548875949), Array.Empty<object>()); - IEnumerator<ITask> enumerator = _taskQueue.RemainingTasks.GetEnumerator(); - try + _logger.LogDebug("Remaining tasks after interruption:"); + foreach (ITask remainingTask in _taskQueue.RemainingTasks) { - int num = -508230281; - while (true) - { - int num2 = num; - int num3 = -508230281; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = (_206C_200F_206D_200D_200E_206B_200C_206E_202C_206D_206E_200C_202E_202E_200E_200D_200F_200C_202E_200E_200D_202D_202D_202B_206F_206B_206E_202E_206E_206B_200C_206C_206C_202D_206F_206A_202E_206E_200E_200E_202E((IEnumerator)enumerator) ? (-508230284) : (-508230282)); - break; - case 3: - { - ITask current = enumerator.Current; - _206D_206B_206A_202B_206A_200F_202D_200C_206E_200E_200D_206C_206F_200B_200B_200C_200C_206E_206E_206E_202A_206C_206B_206C_200F_202D_206A_206B_206A_206D_202D_200F_200E_200D_206A_202C_206D_206F_200E_202C_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1033828461), new object[1] { current }); - num = -508230281; - break; - } - case 2: - num = -508230281; - break; - case 1: - return; - } - } - } - finally - { - int num = ((enumerator == null) ? 1241940011 : 1241940008); - while (true) - { - int num5 = num; - int num3 = 1241940009; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 2: - goto end_IL_00e0; - case 1: - _202E_202A_200D_200C_206E_202E_206F_202D_200D_206F_202B_202A_200D_200E_202D_200E_206D_202A_206D_206D_200D_206E_202E_206B_206E_200D_206F_206E_206D_206C_206E_200F_206D_202D_202B_202B_202A_200C_202B_202A_202E((IDisposable)enumerator); - num = 1241940011; - break; - case 0: - num = 1241940008; - break; - } - continue; - end_IL_00e0: - break; - } + _logger.LogDebug("- {TaskName}", remainingTask); } } public void OnErrorToast(ref SeString message, ref bool isHandled) { - int num = ((!_taskQueue.AllTasksComplete) ? 573119934 : 573119925); - IToastAware toastAware = default(IToastAware); - while (true) + if (_taskQueue.AllTasksComplete) { - int num2 = num; - int num3 = 573119928; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return; + } + if (_taskQueue.CurrentTaskExecutor is IToastAware toastAware && toastAware.OnErrorToast(message)) + { + isHandled = true; + } + if (isHandled) + { + return; + } + if (_actionCanceledText.IsMatch(message.TextValue) && !_condition[ConditionFlag.InFlight]) + { + ITaskExecutor? currentTaskExecutor = _taskQueue.CurrentTaskExecutor; + if (currentTaskExecutor != null && currentTaskExecutor.ShouldInterruptOnDamage()) { - case 0: - num = 573119925; - break; - case 10: - num = ((!toastAware.OnErrorToast(message)) ? 573119924 : 573119923); - break; - case 6: - toastAware = _taskQueue.CurrentTaskExecutor as IToastAware; - num = ((toastAware == null) ? 573119924 : 573119922); - break; - case 4: - num = ((!_206B_200C_202A_206F_206D_202C_200C_202A_202B_202C_206E_202D_206D_200B_202A_206D_202C_202A_206C_206E_202D_206D_200B_206D_200C_202B_206C_206E_206B_206D_206B_202A_202E_206E_206A_200B_206B_202D_206C_200C_202E(_actionCanceledText, _202A_200E_206A_206B_202A_206F_200F_200E_206B_202D_202A_200B_206C_206E_200E_206F_206A_202C_202B_206D_206E_206B_200D_206B_200B_206E_202A_206E_200E_202E_202B_202D_206A_202D_200B_202C_200E_206E_206E_202E(message))) ? 573119920 : 573119930); - break; - case 12: - num = (isHandled ? 573119935 : 573119932); - break; - case 8: - num = (GameFunctions.GameStringEquals(_cantExecuteDueToStatusText, _202A_200E_206A_206B_202A_206F_200F_200E_206B_202D_202A_200B_206C_206E_200E_206F_206A_202C_202B_206D_206E_206B_200D_206B_200B_206E_202A_206E_200E_202E_202B_202D_206A_202D_200B_202C_200E_206E_206E_202E(message)) ? 573119933 : 573119929); - break; - case 3: InterruptQueueWithCombat(); return; - case 5: - InterruptWithoutCombat(); - num = 573119935; - break; - case 7: - return; - case 9: - { - ITaskExecutor? currentTaskExecutor = _taskQueue.CurrentTaskExecutor; - num = ((currentTaskExecutor == null || !currentTaskExecutor.ShouldInterruptOnDamage()) ? 573119920 : 573119931); - break; - } - case 1: - num = ((!GameFunctions.GameStringEquals(_eventCanceledText, _202A_200E_206A_206B_202A_206F_200F_200E_206B_202D_202A_200B_206C_206E_200E_206F_206A_202C_202B_206D_206E_206B_200D_206B_200B_206E_202A_206E_200E_202E_202B_202D_206A_202D_200B_202C_200E_206E_206E_202E(message))) ? 573119935 : 573119933); - break; - case 11: - isHandled = true; - num = 573119924; - break; - case 13: - return; - case 2: - num = (_202D_206D_206E_202B_206C_200E_200B_200B_200B_202B_206A_202D_206C_200E_202D_200D_202C_200E_206F_206D_202C_206B_202B_200D_202A_202D_206A_206D_202D_206B_200E_200D_202D_202C_206D_206B_202D_206B_206D_206E_202E(_condition, ConditionFlag.InFlight) ? 573119920 : 573119921); - break; } } + if (GameFunctions.GameStringEquals(_cantExecuteDueToStatusText, message.TextValue) || GameFunctions.GameStringEquals(_eventCanceledText, message.TextValue)) + { + InterruptWithoutCombat(); + } } protected virtual void HandleInterruption(object? sender, EventArgs e) { - int num = (_202D_206D_206E_202B_206C_200E_200B_200B_200B_202B_206A_202D_206C_200E_202D_200D_202C_200E_206F_206D_202C_206B_202B_200D_202A_202D_206A_206D_202D_206B_200E_200D_202D_202C_206D_206B_202D_206B_206D_206E_202E(_condition, ConditionFlag.InFlight) ? 759202618 : 759202616); - while (true) + if (!_condition[ConditionFlag.InFlight]) { - int num2 = num; - int num3 = 759202619; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + ITaskExecutor? currentTaskExecutor = _taskQueue.CurrentTaskExecutor; + if (currentTaskExecutor != null && currentTaskExecutor.ShouldInterruptOnDamage()) { - case 1: - return; - case 3: - { - ITaskExecutor? currentTaskExecutor = _taskQueue.CurrentTaskExecutor; - num = ((currentTaskExecutor == null || !currentTaskExecutor.ShouldInterruptOnDamage()) ? 759202618 : 759202619); - break; - } - case 2: - num = 759202616; - break; - case 0: InterruptQueueWithCombat(); - num = 759202618; - break; } } } @@ -762,75 +358,4 @@ internal abstract class MiniTaskController<T> : IDisposable { _interruptHandler.Interrupted -= HandleInterruption; } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static string _202D_200B_206C_206B_200E_202E_200D_206C_206A_206D_206C_206A_202E_202B_200C_202B_206F_206C_202A_200D_202B_200B_200B_200E_202C_202C_206D_200E_206D_206A_200F_206D_200E_202C_200D_206A_206B_202D_206E_206F_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206D_206B_206A_202B_206A_200F_202D_200C_206E_200E_200D_206C_206F_200B_200B_200C_200C_206E_206E_206E_202A_206C_206B_206C_200F_202D_206A_206B_206A_206D_202D_200F_200E_200D_206A_202C_206D_206F_200E_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static Type _202B_200E_206B_202E_206D_200E_202A_206B_206F_206A_200D_200B_206A_200F_202C_202C_202A_202B_206E_202D_200F_206E_202D_200B_206E_202D_200B_206C_206E_200B_202E_200E_200B_202A_202A_206A_200C_202D_206D_206D_202E(object P_0) - { - return P_0.GetType(); - } - - static void _206C_200C_200B_206D_206A_206E_206A_206D_206A_200D_202E_206E_202B_206E_202E_202C_200F_202B_202B_202C_200C_206C_206C_200F_206B_200D_206D_206C_202C_200B_206E_200F_206F_200E_202A_206B_200F_202B_200E_200E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogTrace(P_1, P_2); - } - - static void _206E_206B_200C_202D_206E_202E_200F_206B_206F_202B_206F_206D_206C_206C_202C_200B_206A_200E_200E_200D_202B_202E_202B_200D_206F_202C_206D_206A_202B_202A_206E_200B_206B_200F_206F_202D_200B_206A_202B_202A_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - - static void _200C_202A_200F_200D_200C_206A_202E_202E_206B_202B_200B_202D_200F_202C_202C_202A_206B_202C_206C_206B_202E_206D_200C_202C_202E_200F_200E_206C_202A_206B_202E_200D_200C_206D_200E_206A_200E_200C_206F_206E_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } - - static void _206F_206B_206C_200E_202E_206D_206C_200E_202B_206D_206B_202E_200C_200D_206D_200B_200F_200B_206C_200E_202B_202B_206E_206B_206C_206B_206E_200D_206A_202C_202D_206F_206B_200F_206D_200F_206E_206E_202D_206A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static bool _202D_206D_206E_202B_206C_200E_200B_200B_200B_202B_206A_202D_206C_200E_202D_200D_202C_200E_206F_206D_202C_206B_202B_200D_202A_202D_206A_206D_202D_206B_200E_200D_202D_202C_206D_206B_202D_206B_206D_206E_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static void _206D_202E_202E_206E_202A_202A_202D_202C_200C_200F_200B_200B_202A_206B_202D_206D_200E_206C_200B_206F_206D_200F_206D_206E_200F_202C_202E_202A_200E_206D_200E_206D_206C_200D_206A_202D_206B_206E_206F_206D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogError(P_1, P_2); - } - - static bool _206C_200F_206D_200D_200E_206B_200C_206E_202C_206D_206E_200C_202E_202E_200E_200D_200F_200C_202E_200E_200D_202D_202D_202B_206F_206B_206E_202E_206E_206B_200C_206C_206C_202D_206F_206A_202E_206E_200E_200E_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202E_202A_200D_200C_206E_202E_206F_202D_200D_206F_202B_202A_200D_200E_202D_200E_206D_202A_206D_206D_200D_206E_202E_206B_206E_200D_206F_206E_206D_206C_206E_200F_206D_202D_202B_202B_202A_200C_202B_202A_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static string _202A_200E_206A_206B_202A_206F_200F_200E_206B_202D_202A_200B_206C_206E_200E_206F_206A_202C_202B_206D_206E_206B_200D_206B_200B_206E_202A_206E_200E_202E_202B_202D_206A_202D_200B_202C_200E_206E_206E_202E(SeString P_0) - { - return P_0.TextValue; - } - - static bool _206B_200C_202A_206F_206D_202C_200C_202A_202B_202C_206E_202D_206D_200B_202A_206D_202C_202A_206C_206E_202D_206D_200B_206D_200C_202B_206C_206E_206B_206D_206B_202A_202E_206E_206A_200B_206B_202D_206C_200C_202E(Regex P_0, string P_1) - { - return P_0.IsMatch(P_1); - } } diff --git a/Questionable/Questionable.Controller/MovementController.cs b/Questionable/Questionable.Controller/MovementController.cs index a8cb43b..7cac6b2 100644 --- a/Questionable/Questionable.Controller/MovementController.cs +++ b/Questionable/Questionable.Controller/MovementController.cs @@ -1,13 +1,10 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using System.Text; using System.Threading; using System.Threading.Tasks; using Dalamud.Game.ClientState.Conditions; @@ -36,339 +33,18 @@ internal sealed class MovementController : IDisposable { public sealed record DestinationData(EMovementType MovementType, uint? DataId, Vector3 Position, float StopDistance, bool IsFlying, bool CanSprint, float VerticalStopDistance, bool Land, bool UseNavmesh, bool IsSmartNavRouted) { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200D_200D_206E_200F_202B_200D_206C_206D_200E_202D_206E_202D_206E_206D_200B_206F_200B_206E_206A_206C_206E_200F_200F_202E_206F_206D_200E_200B_202D_200F_206A_200E_200C_206F_200B_200B_200E_202D_206E_200C_202E(typeof(DestinationData).TypeHandle); - } - } - public int NavmeshCalculations { get; set; } public List<Vector3> PartialRoute { get; } = new List<Vector3>(); public LastWaypointData? LastWaypoint { get; set; } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200F_206A_200F_202D_200F_206B_200E_206B_206A_206C_206B_206B_202E_200F_206D_202C_206F_200D_202D_202E_202A_202E_202A_202C_200D_202B_202C_206B_200E_200D_206F_202B_200E_206E_202B_206E_200D_206D_206D_206E_202E(); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1649215359)); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(117284107)); - int num = ((!PrintMembers(stringBuilder)) ? (-442565540) : (-442565537)); - while (true) - { - int num2 = num; - int num3 = -442565538; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - _206F_206B_206E_202C_202C_206E_200E_200B_206B_200C_200D_200B_206B_200B_206C_200B_202D_206B_200D_206D_200F_202B_206A_202E_202C_206C_200B_200B_206C_206D_206C_200D_206F_206A_206B_206E_206D_206A_206A_206E_202E(stringBuilder, '}'); - return _200F_200D_200B_206E_200E_202C_206E_206B_200D_206E_206E_206D_206E_206C_206A_202C_206D_202E_206B_202E_200D_200E_202B_200C_202C_200F_202C_206B_200C_206E_200F_206B_206B_202C_206A_206D_202D_200B_200E_202E_202E((object)stringBuilder); - case 1: - _206F_206B_206E_202C_202C_206E_200E_200B_206B_200C_200D_200B_206B_200B_206C_200B_202D_206B_200D_206D_200F_202B_206A_202E_202C_206C_200B_200B_206C_206D_206C_200D_206F_206A_206B_206E_206D_206A_206A_206E_202E(stringBuilder, ' '); - num = -442565540; - break; - case 0: - num = -442565537; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200E_200F_200F_200C_202D_206F_200B_202C_206C_200F_200D_200F_200D_206B_206A_202B_200B_202D_200E_200C_200B_206F_202B_200F_202E_200F_200D_200E_206D_200D_202E_206B_202D_202C_206F_206D_202B_200E_202A_206E_202E(); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1999561490)); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, MovementType.ToString()); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(97441196)); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, DataId.ToString()); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1993330002)); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, Position.ToString()); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1983390380)); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, StopDistance.ToString()); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(436934647)); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, IsFlying.ToString()); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2120828510)); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, CanSprint.ToString()); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-518067548)); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, VerticalStopDistance.ToString()); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1230528724)); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, Land.ToString()); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-336283620)); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, UseNavmesh.ToString()); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1710615926)); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, IsSmartNavRouted.ToString()); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1675587815)); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, NavmeshCalculations.ToString()); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1352596954)); - _206F_206F_206F_206F_206A_206B_202D_202B_202C_206A_200D_202A_206A_202D_200B_202D_202D_206D_202C_200D_202D_202D_206C_202C_202A_206A_202D_206B_200F_200C_202B_206F_200D_206A_206D_202A_202E_206E_200C_202A_202E(builder, (object)PartialRoute); - _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(73479256)); - _206F_206F_206F_206F_206A_206B_202D_202B_202C_206A_200D_202A_206A_202D_200B_202D_202D_206D_202C_200D_202D_202D_206C_202C_202A_206A_202D_206B_200F_200C_202B_206F_200D_206A_206D_202A_202E_206E_200C_202A_202E(builder, (object)LastWaypoint); - return true; - } - - [CompilerGenerated] - public bool Equals(DestinationData? other) - { - int num = (((object)this == other) ? 1399779328 : 1399779341); - while (true) - { - int num2 = num; - int num3 = 1399779332; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 16: - num = ((!EqualityComparer<EMovementType>.Default.Equals(MovementType, other.MovementType)) ? 1399779338 : 1399779335); - break; - case 0: - num = ((!EqualityComparer<bool>.Default.Equals(UseNavmesh, other.UseNavmesh)) ? 1399779338 : 1399779336); - break; - case 3: - num = ((!EqualityComparer<uint?>.Default.Equals(DataId, other.DataId)) ? 1399779338 : 1399779330); - break; - case 15: - num = ((!_202D_202A_206D_206A_200D_202A_206C_206A_202D_206A_202E_206E_202E_200C_200D_200F_206E_202C_202A_206D_200D_206F_206B_202B_206E_206A_206D_200F_206A_200C_202E_206B_200F_200D_206B_200C_200D_200E_200C_206A_202E(EqualityContract, other.EqualityContract)) ? 1399779338 : 1399779348); - break; - case 2: - num = ((!EqualityComparer<float>.Default.Equals(VerticalStopDistance, other.VerticalStopDistance)) ? 1399779338 : 1399779337); - break; - case 9: - num = (((object)other == null) ? 1399779338 : 1399779339); - break; - case 8: - num = ((!EqualityComparer<List<Vector3>>.Default.Equals(PartialRoute, other.PartialRoute)) ? 1399779338 : 1399779342); - break; - case 17: - num = ((!EqualityComparer<bool>.Default.Equals(CanSprint, other.CanSprint)) ? 1399779338 : 1399779334); - break; - case 10: - return EqualityComparer<LastWaypointData>.Default.Equals(LastWaypoint, other.LastWaypoint); - case 14: - return false; - case 12: - num = ((!EqualityComparer<bool>.Default.Equals(IsSmartNavRouted, other.IsSmartNavRouted)) ? 1399779338 : 1399779331); - break; - case 6: - num = ((!EqualityComparer<Vector3>.Default.Equals(Position, other.Position)) ? 1399779338 : 1399779343); - break; - case 13: - num = ((!EqualityComparer<bool>.Default.Equals(Land, other.Land)) ? 1399779338 : 1399779332); - break; - case 7: - num = ((!EqualityComparer<int>.Default.Equals(NavmeshCalculations, other.NavmeshCalculations)) ? 1399779338 : 1399779340); - break; - case 1: - num = ((!EqualityComparer<bool>.Default.Equals(IsFlying, other.IsFlying)) ? 1399779338 : 1399779349); - break; - case 4: - return true; - case 5: - num = 1399779341; - break; - case 11: - num = ((!EqualityComparer<float>.Default.Equals(StopDistance, other.StopDistance)) ? 1399779338 : 1399779333); - break; - } - } - } - - bool IEquatable<DestinationData>.Equals(DestinationData? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200D_200D_206E_200F_202B_200D_206C_206D_200E_202D_206E_202D_206E_206D_200B_206F_200B_206E_206A_206C_206E_200F_200F_202E_206F_206D_200E_200B_202D_200F_206A_200E_200C_206F_200B_200B_200E_202D_206E_200C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200F_206A_200F_202D_200F_206B_200E_206B_206A_206C_206B_206B_202E_200F_206D_202C_206F_200D_202D_202E_202A_202E_202A_202C_200D_202B_202C_206B_200E_200D_206F_202B_200E_206E_202B_206E_200D_206D_206D_206E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206A_206F_206D_200C_202B_202D_206F_206A_202A_206D_206E_202B_200B_200C_202C_202A_200C_202B_200C_206A_202D_200E_202A_202A_206A_200F_202A_200E_206F_206F_202B_202E_202E_200B_200C_202A_202E_200F_200F_200D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206F_206B_206E_202C_202C_206E_200E_200B_206B_200C_200D_200B_206B_200B_206C_200B_202D_206B_200D_206D_200F_202B_206A_202E_202C_206C_200B_200B_206C_206D_206C_200D_206F_206A_206B_206E_206D_206A_206A_206E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200F_200D_200B_206E_200E_202C_206E_206B_200D_206E_206E_206D_206E_206C_206A_202C_206D_202E_206B_202E_200D_200E_202B_200C_202C_200F_202C_206B_200C_206E_200F_206B_206B_202C_206A_206D_202D_200B_200E_202E_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200E_200F_200F_200C_202D_206F_200B_202C_206C_200F_200D_200F_200D_206B_206A_202B_200B_202D_200E_200C_200B_206F_202B_200F_202E_200F_200D_200E_206D_200D_202E_206B_202D_202C_206F_206D_202B_200E_202A_206E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206F_206F_206F_206F_206A_206B_202D_202B_202C_206A_200D_202A_206A_202D_200B_202D_202D_206D_202C_200D_202D_202D_206C_202C_202A_206A_202D_206B_200F_200C_202B_206F_200D_206A_206D_202A_202E_206E_200C_202A_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202D_202A_206D_206A_200D_202A_206C_206A_202D_206A_202E_206E_202E_200C_200D_200F_206E_202C_202A_206D_200D_206F_206B_202B_206E_206A_206D_200F_206A_200C_202E_206B_200F_200D_206B_200C_200D_200E_200C_206A_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } } public sealed record LastWaypointData(Vector3 Position) { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200C_200E_206A_206B_200F_200E_200C_202A_202A_206D_206B_206E_200D_200B_206D_206B_206E_202B_202C_200C_200D_206C_206A_206F_206E_206B_206F_200C_200B_206C_200D_202E_200D_206A_206D_206F_202D_202D_206D_206B_202E(typeof(LastWaypointData).TypeHandle); - } - } - public long UpdatedAt { get; set; } public double Distance2DAtLastUpdate { get; set; } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202A_200B_206D_202B_202E_206C_206C_200D_206B_202E_200C_202A_200F_206E_202C_202B_200C_206E_202D_206B_200E_200B_200C_202A_202C_202C_206F_206D_202A_200F_200C_206B_206A_200D_206A_206C_200E_202D_206B_200E_202E(); - _206E_200D_202C_200C_200D_206A_202E_206C_200D_206C_202A_202E_206A_202A_200C_200E_206C_200B_202E_200B_202E_200D_200D_206B_200D_200C_200D_206E_206D_206C_200E_200D_202A_206E_200D_206F_200D_206F_202C_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1301252306)); - _206E_200D_202C_200C_200D_206A_202E_206C_200D_206C_202A_202E_206A_202A_200C_200E_206C_200B_202E_200B_202E_200D_200D_206B_200D_200C_200D_206E_206D_206C_200E_200D_202A_206E_200D_206F_200D_206F_202C_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125)); - int num = ((!PrintMembers(stringBuilder)) ? 854055883 : 854055880); - while (true) - { - int num2 = num; - int num3 = 854055881; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 854055880; - break; - case 1: - _206B_202A_206B_200D_200F_206E_206A_200E_206A_200B_206C_200D_200F_206F_202D_202B_200E_200B_206B_206C_206E_202A_200E_206B_202C_206F_200E_202D_206B_202D_202D_206A_206C_202A_206A_206D_206B_202B_200D_206E_202E(stringBuilder, ' '); - num = 854055883; - break; - case 2: - _206B_202A_206B_200D_200F_206E_206A_200E_206A_200B_206C_200D_200F_206F_202D_202B_200E_200B_206B_206C_206E_202A_200E_206B_202C_206F_200E_202D_206B_202D_202D_206A_206C_202A_206A_206D_206B_202B_200D_206E_202E(stringBuilder, '}'); - return _200F_200E_202B_202E_200F_200F_206C_202D_200C_206C_206D_206F_206E_200B_200B_202C_206D_200E_200C_206C_202D_200D_206E_200F_200E_206A_206C_202C_206F_200D_202C_200D_200B_200F_202D_200B_202A_202B_200E_202B_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202A_200C_202A_206C_206F_206B_206C_202A_202D_202D_202C_206C_202C_202A_202E_206D_206D_206A_206D_200E_200E_200D_206D_206E_200F_206C_200E_202D_202C_206E_206B_200F_200F_206E_202D_200E_200F_200E_202C_206B_202E(); - _206E_200D_202C_200C_200D_206A_202E_206C_200D_206C_202A_202E_206A_202A_200C_200E_206C_200B_202E_200B_202E_200D_200D_206B_200D_200C_200D_206E_206D_206C_200E_200D_202A_206E_200D_206F_200D_206F_202C_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(675764215)); - _206E_200D_202C_200C_200D_206A_202E_206C_200D_206C_202A_202E_206A_202A_200C_200E_206C_200B_202E_200B_202E_200D_200D_206B_200D_200C_200D_206E_206D_206C_200E_200D_202A_206E_200D_206F_200D_206F_202C_202E(builder, Position.ToString()); - _206E_200D_202C_200C_200D_206A_202E_206C_200D_206C_202A_202E_206A_202A_200C_200E_206C_200B_202E_200B_202E_200D_200D_206B_200D_200C_200D_206E_206D_206C_200E_200D_202A_206E_200D_206F_200D_206F_202C_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1263085392)); - _206E_200D_202C_200C_200D_206A_202E_206C_200D_206C_202A_202E_206A_202A_200C_200E_206C_200B_202E_200B_202E_200D_200D_206B_200D_200C_200D_206E_206D_206C_200E_200D_202A_206E_200D_206F_200D_206F_202C_202E(builder, UpdatedAt.ToString()); - _206E_200D_202C_200C_200D_206A_202E_206C_200D_206C_202A_202E_206A_202A_200C_200E_206C_200B_202E_200B_202E_200D_200D_206B_200D_200C_200D_206E_206D_206C_200E_200D_202A_206E_200D_206F_200D_206F_202C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-696865885)); - _206E_200D_202C_200C_200D_206A_202E_206C_200D_206C_202A_202E_206A_202A_200C_200E_206C_200B_202E_200B_202E_200D_200D_206B_200D_200C_200D_206E_206D_206C_200E_200D_202A_206E_200D_206F_200D_206F_202C_202E(builder, Distance2DAtLastUpdate.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(LastWaypointData? other) - { - int num = (((object)this == other) ? (-768038203) : (-768038202)); - while (true) - { - int num2 = num; - int num3 = -768038206; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 7: - return true; - case 0: - num = ((!_206B_206A_200E_206F_200D_206D_200F_206C_200C_206D_206B_200F_206E_206B_202C_200E_200B_200F_206B_206C_206D_206F_206C_200E_202E_200B_202D_202D_202A_200D_200B_200B_206F_202B_200B_202C_206C_202A_202E_206E_202E(EqualityContract, other.EqualityContract)) ? (-768038205) : (-768038207)); - break; - case 3: - num = ((!EqualityComparer<Vector3>.Default.Equals(Position, other.Position)) ? (-768038205) : (-768038204)); - break; - case 4: - num = (((object)other == null) ? (-768038205) : (-768038206)); - break; - case 2: - return EqualityComparer<double>.Default.Equals(Distance2DAtLastUpdate, other.Distance2DAtLastUpdate); - case 1: - return false; - case 6: - num = ((!EqualityComparer<long>.Default.Equals(UpdatedAt, other.UpdatedAt)) ? (-768038205) : (-768038208)); - break; - case 5: - num = -768038202; - break; - } - } - } - - bool IEquatable<LastWaypointData>.Equals(LastWaypointData? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200C_200E_206A_206B_200F_200E_200C_202A_202A_206D_206B_206E_200D_200B_206D_206B_206E_202B_202C_200C_200D_206C_206A_206F_206E_206B_206F_200C_200B_206C_200D_202E_200D_206A_206D_206F_202D_202D_206D_206B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202A_200B_206D_202B_202E_206C_206C_200D_206B_202E_200C_202A_200F_206E_202C_202B_200C_206E_202D_206B_200E_200B_200C_202A_202C_202C_206F_206D_202A_200F_200C_206B_206A_200D_206A_206C_200E_202D_206B_200E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206E_200D_202C_200C_200D_206A_202E_206C_200D_206C_202A_202E_206A_202A_200C_200E_206C_200B_202E_200B_202E_200D_200D_206B_200D_200C_200D_206E_206D_206C_200E_200D_202A_206E_200D_206F_200D_206F_202C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206B_202A_206B_200D_200F_206E_206A_200E_206A_200B_206C_200D_200F_206F_202D_202B_200E_200B_206B_206C_206E_202A_200E_206B_202C_206F_200E_202D_206B_202D_202D_206A_206C_202A_206A_206D_206B_202B_200D_206E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200F_200E_202B_202E_200F_200F_206C_202D_200C_206C_206D_206F_206E_200B_200B_202C_206D_200E_200C_206C_202D_200D_206E_200F_200E_206A_206C_202C_206F_200D_202C_200D_200B_200F_202D_200B_202A_202B_200E_202B_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202A_200C_202A_206C_206F_206B_206C_202A_202D_202D_202C_206C_202C_202A_202E_206D_206D_206A_206D_200E_200E_200D_206D_206E_200F_206C_200E_202D_202C_206E_206B_200F_200F_206E_202D_200E_200F_200E_202C_206B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _206B_206A_200E_206F_200D_206D_200F_206C_200C_206D_206B_200F_206E_206B_202C_200E_200B_200F_206B_206C_206D_206F_206C_200E_202E_200B_202D_202D_202A_200D_200B_200B_206F_202B_200B_202C_206C_202A_202E_206E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } } public sealed class PathfindingFailedException : Exception @@ -388,26 +64,6 @@ internal sealed class MovementController : IDisposable } } - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<Vector3, string> _003C_003E9__58_0; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal string _003CUpdate_003Eb__58_0(Vector3 x) - { - return x.ToString(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1770759382), _206F_202E_206D_206C_206E_200B_200C_200B_200B_206C_202D_202A_202B_202E_202B_206E_200F_206B_206E_200F_206F_206D_206A_202A_202B_202D_202D_206C_200D_206C_202C_206F_206F_202C_200C_206E_206C_202C_200D_200D_202E()); - } - - static CultureInfo _206F_202E_206D_206C_206E_200B_200C_200B_200B_206C_202D_202A_202B_202E_202B_206E_200F_206B_206E_200F_206F_206D_206A_202A_202B_202D_202D_206C_200D_206C_202C_206F_206F_202C_200C_206E_206C_202C_200D_200D_202E() - { - return CultureInfo.InvariantCulture; - } - } - public const float DefaultVerticalInteractionDistance = 1.95f; private const float FlyLandHeightOffset = 2.6f; @@ -472,9 +128,6 @@ internal sealed class MovementController : IDisposable private volatile bool _disposed; - [CompilerGenerated] - private EventHandler? m_PlayerInputDetected; - public bool IsNavmeshReady { get @@ -510,31 +163,17 @@ internal sealed class MovementController : IDisposable get { Task<NavPathfindResult> pathfindTask = _pathfindTask; - int num = ((pathfindTask == null) ? 772287061 : 772287062); - while (true) + if (pathfindTask != null) { - int num2 = num; - int num3 = 772287060; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0048; - case 2: - return !_200F_206D_200C_202A_206C_206E_206E_206C_200D_202C_202B_200D_206B_200B_206C_200E_202A_206D_206D_200E_206D_200E_200C_206C_206D_200C_200F_200C_200D_202E_202B_200C_206E_200B_200F_206E_200E_200B_206C_200E_202E((Task)pathfindTask); - case 1: - return false; - } - continue; - IL_0048: - num = 772287062; + return !pathfindTask.IsCompleted; } + return false; } } public DestinationData? Destination { get; set; } - public long? MovementStartedAt { get; private set; } = _202A_206A_202A_200E_202B_200E_202B_202A_206D_206B_206A_202A_206D_206D_206D_206D_206B_202C_202A_200B_200F_206A_206C_206B_200E_200D_200F_202C_206E_202E_200D_202C_200C_202E_202D_200C_200C_200F_200B_206E_202E(); + public long? MovementStartedAt { get; private set; } = Environment.TickCount64; public int BuiltNavmeshPercent => _navmeshIpc.GetBuildProgress(); @@ -542,67 +181,7 @@ internal sealed class MovementController : IDisposable public int NumQueuedPathfindRequests => _navmeshIpc.NumQueuedPathfindRequests; - public event EventHandler? PlayerInputDetected - { - [CompilerGenerated] - add - { - EventHandler eventHandler = this.m_PlayerInputDetected; - int num = -400481209; - while (true) - { - int num2 = num; - int num3 = -400481210; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -400481209; - break; - case 1: - { - EventHandler eventHandler2 = eventHandler; - EventHandler value2 = (EventHandler)_202E_202B_200F_200E_206B_206A_206E_200E_200F_200B_202D_200F_206A_202C_202A_200F_202E_202B_200C_206A_200C_202D_202A_206B_206C_202B_206D_206F_206D_200F_206B_202B_206B_202E_206C_200E_206E_206C_206E_200E_202E((Delegate)eventHandler2, (Delegate)value); - eventHandler = Interlocked.CompareExchange(ref this.m_PlayerInputDetected, value2, eventHandler2); - num = (((object)eventHandler != eventHandler2) ? (-400481209) : (-400481212)); - break; - } - case 2: - return; - } - } - } - [CompilerGenerated] - remove - { - EventHandler eventHandler = this.m_PlayerInputDetected; - int num = -634928454; - while (true) - { - int num2 = num; - int num3 = -634928453; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -634928454; - break; - case 0: - return; - case 1: - { - EventHandler eventHandler2 = eventHandler; - EventHandler value2 = (EventHandler)_206C_206F_206A_202B_206D_206D_202D_200F_206C_206C_206F_202E_206B_202D_202A_200D_202C_200E_202C_202E_206E_206B_206C_206C_202B_200B_200D_202A_206B_206E_200E_206D_200E_206F_202A_206F_202B_200B_200C_202D_202E((Delegate)eventHandler2, (Delegate)value); - eventHandler = Interlocked.CompareExchange(ref this.m_PlayerInputDetected, value2, eventHandler2); - num = (((object)eventHandler != eventHandler2) ? (-634928454) : (-634928453)); - break; - } - } - } - } - } + public event EventHandler? PlayerInputDetected; public MovementController(NavmeshIpc navmeshIpc, WigglyNavAvailability wigglyNavAvailability, IFramework framework, IClientState clientState, IObjectTable objectTable, GameFunctions gameFunctions, ICondition condition, MovementOverrideController movementOverrideController, AetheryteData aetheryteData, TerritoryData territoryData, Configuration configuration, ILogger<MovementController> logger) { @@ -623,768 +202,354 @@ internal sealed class MovementController : IDisposable private void OnWigglyNavCompatibilityChanged() { - _202A_202B_202C_200E_206E_206E_200B_200C_200E_200D_200D_206F_206D_206D_206B_200B_202D_202C_206B_200C_206F_206A_206A_202D_202C_206C_202A_206F_206B_200E_200F_202A_202B_202A_200C_200C_206D_200D_200C_206D_202E(_framework, (Action)([MethodImpl(MethodImplOptions.NoInlining)] () => + _framework.RunOnFrameworkThread(delegate { - int num = ((!_disposed) ? 515706311 : 515706308); - DestinationData destination = default(DestinationData); - while (true) + if (!_disposed && _configuration.General.NavigationProvider == Configuration.ENavigationProvider.WigglyNav && (!(Destination == null) || IsPathfinding)) { - int num2 = num; - int num3 = 515706311; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + DestinationData destination = Destination; + _navmeshIpc.StopAll(); + if (destination != null && IsNavmeshReady) { - case 4: - num = 515706308; - break; - case 0: - num = ((_configuration.General.NavigationProvider != Configuration.ENavigationProvider.WigglyNav) ? 515706309 : 515706319); - break; - case 2: - return; - case 8: - num = ((!(Destination == null)) ? 515706306 : 515706304); - break; - case 9: - num = ((!IsNavmeshReady) ? 515706305 : 515706310); - break; - case 5: - destination = Destination; - _navmeshIpc.StopAll(); - num = ((!(destination != null)) ? 515706305 : 515706318); - break; - case 7: - num = (IsPathfinding ? 515706306 : 515706309); - break; - case 6: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-593232842), Array.Empty<object>()); - Stop(); - return; - case 3: - return; - case 1: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-79192567), Array.Empty<object>()); + _logger.LogWarning("WigglyNav compatibility changed with a path running or a pathfind in flight, restarting movement on the new provider"); Restart(destination); - return; + } + else + { + _logger.LogWarning("WigglyNav compatibility changed with a path running or a pathfind in flight, stopping movement (no destination to resume, or the new provider's navmesh is not ready)"); + Stop(); } } - })); + }); } public bool HasBeenMovingForAtLeast(int ms) { long? movementStartedAt = MovementStartedAt; - int num = ((!movementStartedAt.HasValue) ? 1811576790 : 1811576789); - while (true) + if (movementStartedAt.HasValue) { - int num2 = num; - int num3 = 1811576788; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0053; - case 2: - return false; - case 1: - { - long valueOrDefault = movementStartedAt.GetValueOrDefault(); - return _202A_206A_202A_200E_202B_200E_202B_202A_206D_206B_206A_202A_206D_206D_206D_206D_206B_202C_202A_200B_200F_206A_206C_206B_200E_200D_200F_202C_206E_202E_200D_202C_200C_202E_202D_200C_200C_200F_200B_206E_202E() - valueOrDefault >= ms; - } - } - continue; - IL_0053: - num = 1811576789; + long valueOrDefault = movementStartedAt.GetValueOrDefault(); + return Environment.TickCount64 - valueOrDefault >= ms; } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe void Update() { - int num = ((!IsPathRunning) ? (-1655935346) : (-1655935301)); - NavPathfindResult result = default(NavPathfindResult); - List<Vector3> list = default(List<Vector3>); - int navmeshCalculations2 = default(int); - DestinationData destination = default(DestinationData); - bool flag = default(bool); - float num7 = default(float); - NavPathfindResult result2 = default(NavPathfindResult); - List<Vector3> waypoints2 = default(List<Vector3>); - Vector3? vector2 = default(Vector3?); - IGameObject gameObject = default(IGameObject); - Vector3 vector3 = default(Vector3); - Vector3? vector4 = default(Vector3?); - Vector3 p = default(Vector3); - Vector3 vector = default(Vector3); - while (true) + DestinationData destination; + if (IsPathRunning && _isTrackingPlayerInput) { - int num2 = num; - int num3 = -1655935333; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + destination = Destination; + if (((object)destination == null || destination.MovementType != EMovementType.Landing) && DetectPlayerInputInterference()) { - case 108: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1718370293), Array.Empty<object>()); - return; - case 102: - num = ((!(result.EndDistance > Destination.StopDistance)) ? (-1655935246) : (-1655935248)); - break; - case 84: - num = ((!Destination.CanSprint) ? (-1655935273) : (-1655935239)); - break; - case 61: - _206F_206E_200D_206B_200C_202D_200B_202A_202A_206A_206A_206C_206A_202B_200F_200B_200F_206D_202E_206A_200E_200D_202C_200C_206B_202B_206B_200C_202A_200D_200F_202A_202D_200C_200C_200D_200E_200C_200E_202B_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1286507068), Array.Empty<object>()); + _logger.LogInformation("Player input detected during automatic movement, raising event to stop automation"); + this.PlayerInputDetected?.Invoke(this, EventArgs.Empty); Stop(); return; - case 80: - _206F_206E_200D_206B_200C_202D_200B_202A_202A_206A_206A_206C_206A_202B_200F_200B_200F_206D_202E_206A_200E_200D_202C_200C_206B_202B_206B_200C_202A_200D_200F_202A_202D_200C_200C_200D_200E_200C_200E_202B_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1218341412), new object[1] { _200B_206A_206A_206E_206F_200F_202B_202A_206E_200B_206F_202B_200F_202B_200D_200D_206C_206C_206D_200D_206C_206F_202E_200B_206A_206F_206E_202A_202C_206E_202E_200D_206A_202C_206F_200C_202E_200F_206A_206C_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-947374176), _pathfindTask.Result.Waypoints.Select([MethodImpl(MethodImplOptions.NoInlining)] (Vector3 x) => x.ToString(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1770759382), _003C_003Ec._206F_202E_206D_206C_206E_200B_200C_200B_200B_206C_202D_202A_202B_202E_202B_206E_200F_206B_206E_200F_206F_206D_206A_202A_202B_202D_202D_206C_200D_206C_202C_206F_206F_202C_200C_206E_206C_202C_200D_200D_202E()))) }); + } + } + if (_pathfindTask != null && Destination != null) + { + if (!_pathfindTask.IsCompleted && Environment.TickCount64 - _pathfindStartTime > 30000 && _navmeshIpc.NumQueuedPathfindRequests > 5) + { + if (!_pathfindTimeoutLogged) + { + _logger.LogWarning("Pathfinding appears stuck: {QueuedRequests} queued requests, task running for {Duration}ms", _navmeshIpc.NumQueuedPathfindRequests, Environment.TickCount64 - _pathfindStartTime); + _pathfindTimeoutLogged = true; + } + ResetPathfinding(); + throw new PathfindingFailedException("Pathfinding computation timed out after 30s"); + } + if (_pathfindTask.IsCompletedSuccessfully) + { + _logger.LogDebug("Pathfinding complete, got {Count} points", _pathfindTask.Result.Waypoints.Count); + if (_pathfindTask.Result.Waypoints.Count == 0) + { + if (Destination.NavmeshCalculations == 1) + { + _logger.LogWarning("Initial pathfinding returned 0 points, attempting to find accessible destination"); + Vector3? vector = TryFindAccessibleDestination(Destination.Position, Destination.IsFlying, Destination.Land); + if (vector.HasValue && Vector3.Distance(Destination.Position, vector.Value) < 30f) + { + _logger.LogDebug("Retrying pathfinding with adjusted destination: {AdjustedDestination}", vector.Value.ToString("G", CultureInfo.InvariantCulture)); + int navmeshCalculations = Destination.NavmeshCalculations; + Restart(Destination with + { + Position = vector.Value + }); + if (Destination != null) + { + Destination.NavmeshCalculations = navmeshCalculations + 1; + } + return; + } + if (Destination.IsFlying && Destination.Land) + { + _logger.LogWarning("Adjusted destination failed, trying tolerance-based pathfinding"); + if (!IsNavmeshReady) + { + _logger.LogWarning("Navmesh not ready for tolerance-based pathfinding"); + return; + } + Vector3 vector2 = _objectTable.LocalPlayer?.Position ?? Vector3.Zero; + if (Destination.IsFlying) + { + Vector3 vector3 = vector2; + vector3.Y = vector2.Y + 0.2f; + vector2 = vector3; + } + _pathfindStartTime = Environment.TickCount64; + _pathfindTolerance = 10f; + _pathfindTask = _navmeshIpc.PathfindWithTolerance(vector2, Destination.Position, Destination.IsFlying, 10f); + Destination.NavmeshCalculations++; + return; + } + } + ResetPathfinding(); + throw new PathfindingFailedException(); + } + List<Vector3> waypoints = _pathfindTask.Result.Waypoints; + List<Vector3> list = waypoints.Slice(1, waypoints.Count - 1); + Vector3 p = _objectTable.LocalPlayer?.Position ?? list[0]; + if (Destination.IsFlying && Destination.MovementType != EMovementType.Landing && !_condition[ConditionFlag.InFlight] && _condition[ConditionFlag.Mounted] && (IsOnFlightPath(p) || list.Any(IsOnFlightPath))) + { + ActionManager.Instance()->UseAction(ActionType.GeneralAction, 2u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); + } + if (!Destination.IsFlying) + { + (List<Vector3>, bool) tuple = _movementOverrideController.AdjustPath(list); + (list, _) = tuple; + if (tuple.Item2 && Destination.NavmeshCalculations < 10) + { + if (!IsNavmeshReady) + { + _logger.LogWarning("Navmesh not ready for recalculation"); + return; + } + Destination.NavmeshCalculations++; + Destination.PartialRoute.AddRange(list); + _logger.LogDebug("Running navmesh recalculation with fudged point ({From} to {To})", list.Last(), Destination.Position); + _cancellationTokenSource = new CancellationTokenSource(); + _cancellationTokenSource.CancelAfter(TimeSpan.FromSeconds(30L)); + _pathfindStartTime = Environment.TickCount64; + _pathfindTolerance = 0.25f; + _pathfindTask = _navmeshIpc.Pathfind(list.Last(), Destination.Position, Destination.IsFlying, _cancellationTokenSource.Token); + return; + } + } + list = Destination.PartialRoute.Concat(list).ToList(); + if (Destination.IsSmartNavRouted && !Destination.IsFlying) + { + NavPathfindResult result = _pathfindTask.Result; + if ((object)result != null && result.HasPartialInfo && result.IsPartial && result.EndDistance > Destination.StopDistance) + { + _logger.LogWarning("Provider reports a partial ground route to {Target} (end distance {WireEndDistance:F1}y, {Count} points), treating as unreachable", Destination.Position.ToString("G", CultureInfo.InvariantCulture), _pathfindTask.Result.EndDistance, list.Count); + float endDistance = _pathfindTask.Result.EndDistance; + ResetPathfinding(); + throw new PathfindingFailedException($"Provider reports a partial ground route to target (end distance {endDistance:F1}y)"); + } + } + if (Destination.IsSmartNavRouted && list.Count > 0) + { + NavPathfindResult result2 = _pathfindTask.Result; + List<Vector3> list2 = list; + float num = Vector3.Distance(list2[list2.Count - 1], Destination.Position); + if (!IsRouteEndAcceptable(num, Destination.StopDistance, Destination.IsFlying, Destination.Land, result2.HasPartialInfo, result2.IsPartial)) + { + if (result2.HasPartialInfo) + { + _logger.LogWarning("Computed route ends {Distance:F1}y from target {Target} (stop distance {StopDistance:F1}y), treating as unreachable (provider reports partial: {IsPartial}, end distance {WireEndDistance:F1}y)", num, Destination.Position.ToString("G", CultureInfo.InvariantCulture), Destination.StopDistance, result2.IsPartial, result2.EndDistance); + } + else + { + _logger.LogWarning("Computed route ends {Distance:F1}y from target {Target} (stop distance {StopDistance:F1}y), treating as unreachable", num, Destination.Position.ToString("G", CultureInfo.InvariantCulture), Destination.StopDistance); + } + ResetPathfinding(); + throw new PathfindingFailedException($"Computed route ends {num:F1}y from target (stop distance {Destination.StopDistance:F1}y)"); + } + if (Destination.IsFlying && (object)result2 != null && result2.HasPartialInfo && result2.IsPartial) + { + if (Destination.Land) + { + _logger.LogInformation("Fly+land route is partial (EndDistance {WireEndDistance:F1}y): accepting - descend/land/gap-close adjudicates reachability", result2.EndDistance); + } + else + { + _logger.LogInformation("Flying route is partial (EndDistance {WireEndDistance:F1}y): accepting - route-end distance heuristic adjudicates reachability", result2.EndDistance); + } + } + } + _logger.LogDebug("Navigating via route: [{Route}]", string.Join(" → ", _pathfindTask.Result.Waypoints.Select((Vector3 x) => x.ToString("G", CultureInfo.InvariantCulture)))); _navmeshIpc.MoveTo(list, Destination.IsFlying, _pathfindTolerance); - MovementStartedAt = _202A_206A_202A_200E_202B_200E_202B_202A_206D_206B_206A_202A_206D_206D_206D_206D_206B_202C_202A_200B_200F_206A_206C_206B_200E_200D_200F_202C_206E_202E_200D_202C_200C_202E_202D_200C_200C_200F_200B_206E_202E(); + MovementStartedAt = Environment.TickCount64; StartPlayerInputTracking(); ResetPathfinding(); - num = -1655935317; - break; - case 4: - num = ((!(Destination != null)) ? (-1655935273) : (-1655935279)); - break; - case 48: - num = ((!IsPathRunning) ? (-1655935273) : (-1655935329)); - break; - case 55: - { - DestinationData? destination3 = Destination; - int num9 = navmeshCalculations2; - num3 = 1; - num4 = num9; - destination3.NavmeshCalculations = (num4 | num3) + (num4 & num3); - num = -1655935283; - break; } - case 58: - num = ((_navmeshIpc.NumQueuedPathfindRequests <= 5) ? (-1655935339) : (-1655935278)); - break; - case 6: - Stop(); - num = -1655935273; - break; - case 2: - destination = Destination; - num = (((object)destination == null) ? (-1655935234) : (-1655935341)); - break; - case 59: - Stop(); - num = -1655935273; - break; - case 77: - num = ((!Destination.IsFlying) ? (-1655935337) : (-1655935306)); - break; - case 70: - num = (_200C_206A_200F_202C_200F_206D_202A_206C_200B_200E_206F_206C_206D_200F_200E_206F_206C_200B_200F_206A_206F_200B_200B_200B_202D_202A_202E_200F_206D_200F_202E_200F_206D_206B_202E_200D_202A_200D_206D_202E_202E(_condition, ConditionFlag.Mounted) ? (-1655935295) : (-1655935325)); - break; - case 8: - num = ((destination.MovementType == EMovementType.Landing) ? (-1655935346) : (-1655935234)); - break; - case 93: - return; - case 104: - Stop(); - return; - case 39: - flag = true; - num = -1655935243; - break; - case 3: + else if (_pathfindTask.IsCompleted) { - ResetPathfinding(); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(51, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2018070936)); - defaultInterpolatedStringHandler.AppendFormatted(num7, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1819906059)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-143213414)); - defaultInterpolatedStringHandler.AppendFormatted(Destination.StopDistance, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1308263729)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-572338381)); - throw new PathfindingFailedException(defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 34: - num = ((!result.IsPartial) ? (-1655935246) : (-1655935235)); - break; - case 22: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1387973698), Array.Empty<object>()); - return; - case 15: - num = (((object)result2 == null) ? (-1655935285) : (-1655935357)); - break; - case 57: - { - waypoints2 = _navmeshIpc.GetWaypoints(); - IPlayerCharacter playerCharacter3 = _206C_206C_206F_206F_202D_206B_206D_206E_202E_200D_206A_206C_200D_206A_202D_202E_206D_200F_206A_200F_202E_200F_206C_202D_206D_200F_206A_206D_200B_202B_202D_206A_200C_206F_202D_206A_200C_206F_202E_200C_202E(_objectTable); - vector2 = ((playerCharacter3 != null) ? new Vector3?(_200D_202E_202E_206E_200D_200F_206A_202E_200B_202D_206F_200E_200F_206C_202A_200F_206B_202B_202B_202D_206B_206D_202E_202D_200F_200C_202D_202E_200B_202E_200E_206B_200E_200B_200C_200B_202A_200E_200C_200E_202E((IGameObject)playerCharacter3)) : ((Vector3?)null)); - num = ((!vector2.HasValue) ? (-1655935273) : (-1655935350)); - break; - } - case 105: - num = ((!Destination.IsSmartNavRouted) ? (-1655935285) : (-1655935286)); - break; - case 101: - num = ((!DetectPlayerInputInterference()) ? (-1655935346) : (-1655935280)); - break; - case 78: - gameObject = _gameFunctions.FindObjectByDataId(Destination.DataId.Value); - num = ((gameObject is ICharacter) ? (-1655935300) : (-1655935345)); - break; - case 64: - Stop(); - num = -1655935273; - break; - case 11: - num = (_200C_206A_200F_202C_200F_206D_202A_206C_200B_200E_206F_206C_206D_200F_200E_206F_206C_200B_200F_206A_206F_200B_200B_200B_202D_202A_202E_200F_206D_200F_202E_200F_206D_206B_202E_200D_202A_200D_206D_202E_202E(_condition, ConditionFlag.Mounted) ? (-1655935273) : (-1655935254)); - break; - case 107: - { - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2035665846), new object[3] - { - Destination.Position.ToString(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1318690943), _202D_206D_200D_202A_202D_200D_202C_202E_202B_206C_202A_206E_206B_200F_200E_200E_200F_200D_206D_200C_206E_206A_202C_200D_200D_202B_206C_202D_206D_202D_206E_206B_200D_202B_200C_200D_200E_206C_200B_206B_202E()), - _pathfindTask.Result.EndDistance, - list.Count - }); - float endDistance = _pathfindTask.Result.EndDistance; - ResetPathfinding(); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(66, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(272297976)); - defaultInterpolatedStringHandler2.AppendFormatted(endDistance, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1308263729)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-572338381)); - throw new PathfindingFailedException(defaultInterpolatedStringHandler2.ToStringAndClear()); - } - case 69: - num = ((!(_206D_202E_206D_200C_206C_200B_202C_202D_206A_202C_202B_206A_200E_200E_202A_202D_206A_200C_200F_202C_202D_206E_202E_206A_200D_206C_200F_206D_206A_202B_206F_200B_206A_206B_206E_206B_200F_206B_200F_200D_202E(vector3.Y - _200D_202E_202E_206E_200D_200F_206A_202E_200B_202D_206F_200E_200F_206C_202A_200F_206B_202B_202B_202D_206B_206D_202E_202D_200F_200C_202D_202E_200B_202E_200E_206B_200E_200B_200C_200B_202A_200E_200C_200E_202E(gameObject).Y) < 1.95f)) ? (-1655935273) : (-1655935269)); - break; - case 43: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1977384111), Array.Empty<object>()); - throw new PathfindingFailedException(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(333651527)); - case 75: - { - _202C_200B_200C_202E_200F_202E_202D_200F_202C_206D_202A_202A_206C_200F_206B_206C_202E_206F_202D_200D_200F_200C_206E_200F_206F_200E_200D_206A_202D_200D_206B_200C_206E_200E_202E_206F_200E_206A_206E_202D_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1019459155), Array.Empty<object>()); - EventHandler? eventHandler = this.PlayerInputDetected; - if (eventHandler == null) - { - goto case 104; - } - eventHandler(this, EventArgs.Empty); - num = -1655935245; - break; - } - case 72: - num = ((!(Destination != null)) ? (-1655935317) : (-1655935356)); - break; - case 7: - _206F_206E_200D_206B_200C_202D_200B_202A_202A_206A_206A_206C_206A_202B_200F_200B_200F_206D_202E_206A_200E_200D_202C_200C_206B_202B_206B_200C_202A_200D_200F_202A_202D_200C_200C_200D_200E_200C_200E_202B_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1150941391), new object[1] { vector4.Value.ToString(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1770759382), _202D_206D_200D_202A_202D_200D_202C_202E_202B_206C_202A_206E_206B_200F_200E_200E_200F_200D_206D_200C_206E_206A_202C_200D_200D_202B_206C_202D_206D_202D_206E_206B_200D_202B_200C_200D_200E_206C_200B_206B_202E()) }); - navmeshCalculations2 = Destination.NavmeshCalculations; - Restart(Destination with - { - Position = vector4.Value - }); - num = ((!(Destination != null)) ? (-1655935283) : (-1655935316)); - break; - case 114: - num = ((!IsPathRunning) ? (-1655935318) : (-1655935338)); - break; - case 28: - _202C_200B_200C_202E_200F_202E_202D_200F_202C_206D_202A_202A_206C_200F_206B_206C_202E_206F_202D_200D_200F_200C_206E_200F_206F_200E_200D_206A_202D_200D_206B_200C_206E_200E_202E_206F_200E_206A_206E_202D_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(128816295), new object[1] { result2.EndDistance }); - num = -1655935285; - break; - case 87: - Stop(); - num = -1655935273; - break; - case 51: - { - result2 = _pathfindTask.Result; - List<Vector3> list2 = list; - num7 = Vector3.Distance(list2[list2.Count - 1], Destination.Position); - num = (IsRouteEndAcceptable(num7, Destination.StopDistance, Destination.IsFlying, Destination.Land, result2.HasPartialInfo, result2.IsPartial) ? (-1655935253) : (-1655935308)); - break; - } - case 74: - num = ((!_gameFunctions.IsLoadingScreenVisible()) ? (-1655935238) : (-1655935322)); - break; - case 20: - num = ((!(gameObject is IEventObj)) ? (-1655935307) : (-1655935300)); - break; - case 106: - num = ((destination.MovementType != EMovementType.Landing) ? (-1655935290) : (-1655935272)); - break; - case 98: - TriggerSprintIfNeeded(waypoints2, vector2.Value); - num = -1655935273; - break; - case 33: - num = (IsOnFlightPath(p) ? (-1655935294) : (-1655935299)); - break; - case 32: - num = ((!_isTrackingPlayerInput) ? (-1655935346) : (-1655935335)); - break; - case 66: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(778434954), new object[3] - { - num7, - Destination.Position.ToString(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1450220880), _202D_206D_200D_202A_202D_200D_202C_202E_202B_206C_202A_206E_206B_200F_200E_200E_200F_200D_206D_200C_206E_206A_202C_200D_200D_202B_206C_202D_206D_202D_206E_206B_200D_202B_200C_200D_200E_206C_200B_206B_202E()), - Destination.StopDistance - }); - num = -1655935336; - break; - case 95: - list = Destination.PartialRoute.Concat(list).ToList(); - num = ((!Destination.IsSmartNavRouted) ? (-1655935246) : (-1655935349)); - break; - case 90: - { - IPlayerCharacter playerCharacter4 = _206C_206C_206F_206F_202D_206B_206D_206E_202E_200D_206A_206C_200D_206A_202D_202E_206D_200F_206A_200F_202E_200F_206C_202D_206D_200F_206A_206D_200B_202B_202D_206A_200C_206F_202D_206A_200C_206F_202E_200C_202E(_objectTable); - vector3 = ((playerCharacter4 != null) ? _200D_202E_202E_206E_200D_200F_206A_202E_200B_202D_206F_200E_200F_206C_202A_200F_206B_202B_202B_202D_206B_206D_202E_202D_200F_200C_202D_202E_200B_202E_200E_206B_200E_200B_200C_200B_202A_200E_200C_200E_202E((IGameObject)playerCharacter4) : Vector3.Zero); - num = ((Destination.MovementType != EMovementType.Landing) ? (-1655935324) : (-1655935313)); - break; - } - case 9: - num = ((!Destination.Land) ? (-1655935353) : (-1655935297)); - break; - case 12: + _logger.LogWarning("Unable to complete pathfinding task"); ResetPathfinding(); throw new PathfindingFailedException(); - case 50: - ResetPathfinding(); - throw new PathfindingFailedException(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1937149461)); - case 10: - Stop(); - num = -1655935273; - break; - case 35: - num = (Destination.IsFlying ? (-1655935273) : (-1655935344)); - break; - case 31: - num = (_200F_206D_200C_202A_206C_206E_206E_206C_200D_202C_202B_200D_206B_200B_206C_200E_202A_206D_206D_200E_206D_200E_200C_206C_206D_200C_200F_200C_200D_202E_202B_200C_206E_200B_200F_206E_200E_200B_206C_200E_202E((Task)_pathfindTask) ? (-1655935339) : (-1655935305)); - break; - case 47: - num = ((!result2.HasPartialInfo) ? (-1655935271) : (-1655935351)); - break; - case 24: - num = ((!result2.HasPartialInfo) ? (-1655935285) : (-1655935237)); - break; - case 17: - num = ((!RecalculateNavmesh(waypoints2, vector2.Value)) ? (-1655935304) : (-1655935282)); - break; - case 42: + } + } + if (IsPathRunning && Destination != null) + { + if (_gameFunctions.IsLoadingScreenVisible()) { - DestinationData? destination4 = Destination; - int navmeshCalculations = destination4.NavmeshCalculations; - int num10 = navmeshCalculations; - num3 = 1; - num4 = num10; - destination4.NavmeshCalculations = (num4 | num3) + (num4 & num3); - Destination.PartialRoute.AddRange(list); - _206F_206E_200D_206B_200C_202D_200B_202A_202A_206A_206A_206C_206A_202B_200F_200B_200F_206D_202E_206A_200E_200D_202C_200C_206B_202B_206B_200C_202A_200D_200F_202A_202D_200C_200C_200D_200E_200C_200E_202B_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1286179086), new object[2] - { - list.Last(), - Destination.Position - }); - _cancellationTokenSource = _206B_202A_206A_202B_206C_202C_202A_206C_200F_206D_206A_202E_200C_206D_206B_206F_202E_202E_206D_202C_202B_206C_206D_206E_206A_202E_202C_202B_202C_206F_206C_200C_206C_206F_202A_206F_202D_200E_206D_200E_202E(); - _200D_200B_202B_200B_206B_206C_200F_200B_200B_202E_206D_202B_202D_202E_200C_200D_202A_200C_200E_200E_200F_200F_200B_200B_206C_206F_200F_206F_202D_206D_202B_202E_206C_202C_206A_202C_206B_200B_206E_206A_202E(_cancellationTokenSource, TimeSpan.FromSeconds(30L)); - _pathfindStartTime = _202A_206A_202A_200E_202B_200E_202B_202A_206D_206B_206A_202A_206D_206D_206D_206D_206B_202C_202A_200B_200F_206A_206C_206B_200E_200D_200F_202C_206E_202E_200D_202C_200C_202E_202D_200C_200C_200F_200B_206E_202E(); - _pathfindTolerance = 0.25f; - _pathfindTask = _navmeshIpc.Pathfind(list.Last(), Destination.Position, Destination.IsFlying, _202C_202B_202B_202E_202E_206E_200C_202E_206C_206C_202D_202E_202C_202C_200E_206B_206B_202B_206F_206D_200E_202D_206D_206C_206C_206E_200F_206C_206D_202B_200B_200F_202C_202D_200D_202D_200D_202D_202A_200D_202E(_cancellationTokenSource)); + _logger.LogDebug("Stopping movement, loading screen visible"); + Stop(); return; } - case 109: - num = ((_202B_200E_200B_200D_202A_202C_202D_202B_202E_200E_200B_200F_202E_206C_200E_200F_202A_206A_202A_202C_206A_206E_202C_200C_202B_202A_200E_200D_206A_200B_206B_206B_200C_200E_206D_202D_206C_206E_206C_206F_202E(gameObject) != ObjectKind.Aetheryte) ? (-1655935331) : (-1655935240)); - break; - case 81: - num = ((list.Count <= 0) ? (-1655935285) : (-1655935320)); - break; - case 76: - destination = Destination; - num = (((object)destination == null) ? (-1655935290) : (-1655935247)); - break; - case 19: - num = -1655935301; - break; - case 111: - num = ((!(_206D_202E_206D_200C_206C_200B_202C_202D_206A_202C_202B_206A_200E_200E_202A_202D_206A_200C_200F_202C_202D_206E_202E_206A_200D_206C_200F_206D_206A_202B_206F_200B_206A_206B_206E_206B_200F_206B_200F_200D_202E(vector3.Y - _200D_202E_202E_206E_200D_200F_206A_202E_200B_202D_206F_200E_200F_206C_202A_200F_206B_202B_202B_202D_206B_206D_202E_202D_200F_200C_202D_202E_200B_202E_200E_206B_200E_200B_200C_200B_202A_200E_200C_200E_202E(gameObject).Y) < 1.95f)) ? (-1655935273) : (-1655935343)); - break; - case 97: - destination = Destination; - num = (((object)destination == null) ? (-1655935295) : (-1655935323)); - break; - case 85: - return; - case 86: - return; - case 1: - num = ((!Destination.DataId.HasValue) ? (-1655935328) : (-1655935275)); - break; - case 63: - num = ((!((vector3 - Destination.Position).Length() < Destination.StopDistance)) ? (-1655935326) : (-1655935289)); - break; - case 62: - num = ((!destination.IsFlying) ? (-1655935295) : (-1655935315)); - break; - case 65: + destination = Destination; + if ((object)destination != null && destination.IsFlying && (_condition[ConditionFlag.Swimming] || !_condition[ConditionFlag.Mounted])) { - List<Vector3> waypoints = _pathfindTask.Result.Waypoints; - list = waypoints.Slice(1, waypoints.Count - 1); - IPlayerCharacter playerCharacter2 = _206C_206C_206F_206F_202D_206B_206D_206E_202E_200D_206A_206C_200D_206A_202D_202E_206D_200F_206A_200F_202E_200F_206C_202D_206D_200F_206A_206D_200B_202B_202D_206A_200C_206F_202D_206A_200C_206F_202E_200C_202E(_objectTable); - p = ((playerCharacter2 != null) ? _200D_202E_202E_206E_200D_200F_206A_202E_200B_202D_206F_200E_200F_206C_202A_200F_206B_202B_202B_202D_206B_206D_202E_202D_200F_200C_202D_202E_200B_202E_200E_206B_200E_200B_200C_200B_202A_200E_200C_200E_202E((IGameObject)playerCharacter2) : list[0]); - num = ((!Destination.IsFlying) ? (-1655935236) : (-1655935293)); - break; - } - case 52: - num = (_200C_206A_200F_202C_200F_206D_202A_206C_200B_200E_206F_206C_206D_200F_200E_206F_206C_200B_200F_206A_206F_200B_200B_200B_202D_202A_202E_200F_206D_200F_202E_200F_206D_206B_202E_200D_202A_200D_206D_202E_202E(_condition, ConditionFlag.InFlight) ? (-1655935273) : (-1655935284)); - break; - case 41: - result = _pathfindTask.Result; - num = (((object)result == null) ? (-1655935246) : (-1655935359)); - break; - case 0: - num = ((gameObject == null) ? (-1655935331) : (-1655935242)); - break; - case 21: - num = ((_pathfindTask == null) ? (-1655935317) : (-1655935277)); - break; - case 73: - num = (_pathfindTimeoutLogged ? (-1655935319) : (-1655935296)); - break; - case 91: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1046286467), new object[2] - { - _navmeshIpc.NumQueuedPathfindRequests, - _202A_206A_202A_200E_202B_200E_202B_202A_206D_206B_206A_202A_206D_206D_206D_206D_206B_202C_202A_200B_200F_206A_206C_206B_200E_200D_200F_202C_206E_202E_200D_202C_200C_202E_202D_200C_200C_200F_200B_206E_202E() - _pathfindStartTime - }); - _pathfindTimeoutLogged = true; - num = -1655935319; - break; - case 88: - num = ((Destination.MovementType == EMovementType.Landing) ? (-1655935236) : (-1655935348)); - break; - case 36: - _202C_200B_200C_202E_200F_202E_202D_200F_202C_206D_202A_202A_206C_200F_206B_206C_202E_206F_202D_200D_200F_200C_206E_200F_206F_200E_200D_206A_202D_200D_206B_200C_206E_200E_202E_206F_200E_206A_206E_202D_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-671975865), new object[1] { result2.EndDistance }); - num = -1655935285; - break; - case 27: - num = ((Destination.NavmeshCalculations >= 10) ? (-1655935292) : (-1655935287)); - break; - case 82: - num = (IsNavmeshReady ? (-1655935311) : (-1655935241)); - break; - case 67: - num = ((!HasBeenMovingForAtLeast(500)) ? (-1655935290) : (-1655935255)); - break; - case 40: - { - Vector3 vector5 = vector; - vector5.Y = vector.Y + 0.2f; - vector = vector5; - num = -1655935233; - break; - } - case 14: - num = ((!_206A_202C_202C_202B_202A_200E_200D_206D_206D_200B_202D_202E_202B_206D_200D_202C_200C_202B_202E_202C_206D_206C_202C_200B_200F_200F_200F_206C_200B_200D_200F_206E_200E_206B_200B_202E_202C_202D_206F_200D_202E((Task)_pathfindTask)) ? (-1655935355) : (-1655935298)); - break; - case 112: - num = ((!Destination.IsFlying) ? (-1655935285) : (-1655935340)); - break; - case 16: - num = (Destination.IsFlying ? (-1655935246) : (-1655935310)); - break; - case 68: - { - (List<Vector3>, bool) tuple = _movementOverrideController.AdjustPath(list); - list = tuple.Item1; - num = ((!tuple.Item2) ? (-1655935292) : (-1655935360)); - break; - } - case 113: - num = (_gameFunctions.HasStatusPreventingSprint() ? (-1655935273) : (-1655935281)); - break; - case 71: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(849626760), Array.Empty<object>()); - vector4 = TryFindAccessibleDestination(Destination.Position, Destination.IsFlying, Destination.Land); - num = ((!vector4.HasValue) ? (-1655935274) : (-1655935291)); - break; - case 53: - Stop(); - num = -1655935273; - break; - case 49: - { - bool num11 = _200C_206A_200F_202C_200F_206D_202A_206C_200B_200E_206F_206C_206D_200F_200E_206F_206C_200B_200F_206A_206F_200B_200B_200B_202D_202A_202E_200F_206D_200F_202E_200F_206D_206B_202E_200D_202A_200D_206D_202E_202E(_condition, ConditionFlag.InFlight); - Stop(); - num = ((!num11) ? (-1655935290) : (-1655935312)); - break; - } - case 13: - num = ((!HasBeenMovingForAtLeast(10000)) ? (-1655935290) : (-1655935318)); - break; - case 110: - num = ((!flag) ? (-1655935333) : (-1655935266)); - break; - case 56: - _206F_206E_200D_206B_200C_202D_200B_202A_202A_206A_206A_206C_206A_202B_200F_200B_200F_206D_202E_206A_200E_200D_202C_200C_206B_202B_206B_200C_202A_200D_200F_202A_202D_200C_200C_200D_200E_200C_200E_202B_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-453196697), new object[1] { _200C_206A_200F_202C_200F_206D_202A_206C_200B_200E_206F_206C_206D_200F_200E_206F_206C_200B_200F_206A_206F_200B_200B_200B_202D_202A_202E_200F_206D_200F_202E_200F_206D_206B_202E_200D_202A_200D_206D_202E_202E(_condition, ConditionFlag.Swimming) ? global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(534392554) : global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1682230213) }); + _logger.LogDebug("Flying but {Reason}, restarting as non-flying path...", _condition[ConditionFlag.Swimming] ? "swimming" : "not mounted"); Restart(Destination, false); return; - case 45: - num = ((!Destination.Land) ? (-1655935337) : (-1655935330)); - break; - case 18: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(160808973), new object[5] + } + Vector3 vector4 = _objectTable.LocalPlayer?.Position ?? Vector3.Zero; + if (Destination.MovementType == EMovementType.Landing) + { + if (!_condition[ConditionFlag.InFlight]) { - num7, - Destination.Position.ToString(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2120763774), _202D_206D_200D_202A_202D_200D_202C_202E_202B_206C_202A_206E_206B_200F_200E_200E_200F_200D_206D_200C_206E_206A_202C_200D_200D_202B_206C_202D_206D_202D_206E_206B_200D_202B_200C_200D_200E_206C_200B_206B_202E()), - Destination.StopDistance, - result2.IsPartial, - result2.EndDistance - }); - num = -1655935336; - break; - case 96: - num = ((!result2.IsPartial) ? (-1655935285) : (-1655935342)); - break; - case 99: - num = ((!_206B_200C_206B_200C_206C_202C_206C_200F_206B_202D_202A_202A_200C_200B_202D_200D_202D_200E_206E_200E_206B_200C_206E_202A_200F_206C_206A_200B_200C_200B_200D_200F_202A_202D_206A_200B_202B_200F_202A_202B_202E((EAetheryteLocation)Destination.DataId.Value)) ? (-1655935244) : (-1655935358)); - break; - case 89: - ActionManager.Instance()->UseAction(ActionType.GeneralAction, 2u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); - num = -1655935236; - break; - case 79: - num = ((Destination.NavmeshCalculations != 1) ? (-1655935337) : (-1655935268)); - break; - case 37: - _206F_206E_200D_206B_200C_202D_200B_202A_202A_206A_206A_206C_206A_202B_200F_200B_200F_206D_202E_206A_200E_200D_202C_200C_206B_202B_206B_200C_202A_200D_200F_202A_202D_200C_200C_200D_200E_200C_200E_202B_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-33261788), new object[1] { _pathfindTask.Result.Waypoints.Count }); - num = ((_pathfindTask.Result.Waypoints.Count != 0) ? (-1655935270) : (-1655935276)); - break; - case 30: - num = ((!_200F_206D_200C_202A_206C_206E_206E_206C_200D_202C_202B_200D_206B_200B_206C_200E_202A_206D_206D_200E_206D_200E_200C_206C_206D_200C_200F_200C_200D_202E_202B_200C_206E_200B_200F_206E_200E_200B_206C_200E_202E((Task)_pathfindTask)) ? (-1655935317) : (-1655935321)); - break; - case 26: - num = ((!result.HasPartialInfo) ? (-1655935246) : (-1655935303)); - break; - case 94: - num = ((!(Vector3.Distance(Destination.Position, vector4.Value) < 30f)) ? (-1655935274) : (-1655935332)); - break; - case 60: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1643203086), Array.Empty<object>()); - ResetPathfinding(); - throw new PathfindingFailedException(); - case 46: - flag = false; - num = -1655935243; - break; - case 54: - num = (_200C_206A_200F_202C_200F_206D_202A_206C_200B_200E_206F_206C_206D_200F_200E_206F_206C_200B_200F_206A_206F_200B_200B_200B_202D_202A_202E_200F_206D_200F_202E_200F_206D_206B_202E_200D_202A_200D_206D_202E_202E(_condition, ConditionFlag.Swimming) ? (-1655935325) : (-1655935267)); - break; - case 29: - num = ((!_200C_206A_200F_202C_200F_206D_202A_206C_200B_200E_206F_206C_206D_200F_200E_206F_206C_200B_200F_206A_206F_200B_200B_200B_202D_202A_202E_200F_206D_200F_202E_200F_206D_206B_202E_200D_202A_200D_206D_202E_202E(_condition, ConditionFlag.Mounted)) ? (-1655935236) : (-1655935302)); - break; - case 92: - num = ((!(vector3.Y - Destination.Position.Y <= Destination.VerticalStopDistance)) ? (-1655935334) : (-1655935314)); - break; - case 25: - Stop(); - num = -1655935273; - break; - case 23: - num = (_200C_206A_200F_202C_200F_206D_202A_206C_200B_200E_206F_206C_206D_200F_200E_206F_206C_200B_200F_206A_206F_200B_200B_200B_202D_202A_202E_200F_206D_200F_202E_200F_206D_206B_202E_200D_202A_200D_206D_202E_202E(_condition, ConditionFlag.InFlight) ? (-1655935236) : (-1655935354)); - break; - case 38: - num = ((!list.Any(IsOnFlightPath)) ? (-1655935236) : (-1655935294)); - break; - case 103: - num = (Destination.IsFlying ? (-1655935292) : (-1655935265)); - break; - case 100: - { - _pathfindStartTime = _202A_206A_202A_200E_202B_200E_202B_202A_206D_206B_206A_202A_206D_206D_206D_206D_206B_202C_202A_200B_200F_206A_206C_206B_200E_200D_200F_202C_206E_202E_200D_202C_200C_202E_202D_200C_200C_200F_200B_206E_202E(); - _pathfindTolerance = 10f; - _pathfindTask = _navmeshIpc.PathfindWithTolerance(vector, Destination.Position, Destination.IsFlying, 10f); - DestinationData? destination2 = Destination; - int navmeshCalculations = destination2.NavmeshCalculations; - int num8 = navmeshCalculations; - num3 = 1; - num4 = num8; - destination2.NavmeshCalculations = (num4 | num3) + (num4 & num3); - return; + Stop(); + } } - case 83: + else if ((vector4 - Destination.Position).Length() < Destination.StopDistance) { - IPlayerCharacter playerCharacter = _206C_206C_206F_206F_202D_206B_206D_206E_202E_200D_206A_206C_200D_206A_202D_202E_206D_200F_206A_200F_202E_200F_206C_202D_206D_200F_206A_206D_200B_202B_202D_206A_200C_206F_202D_206A_200C_206F_202E_200C_202E(_objectTable); - vector = ((playerCharacter != null) ? _200D_202E_202E_206E_200D_200F_206A_202E_200B_202D_206F_200E_200F_206C_202A_200F_206B_202B_202B_202D_206B_206D_202E_202D_200F_200C_202D_202E_200B_202E_200E_206B_200E_200B_200C_200B_202A_200E_200C_200E_202E((IGameObject)playerCharacter) : Vector3.Zero); - num = ((!Destination.IsFlying) ? (-1655935233) : (-1655935309)); - break; + if (vector4.Y - Destination.Position.Y <= Destination.VerticalStopDistance) + { + Stop(); + } + else if (Destination.DataId.HasValue) + { + IGameObject gameObject = _gameFunctions.FindObjectByDataId(Destination.DataId.Value); + if ((gameObject is ICharacter || gameObject is IEventObj) ? true : false) + { + if (Math.Abs(vector4.Y - gameObject.Position.Y) < 1.95f) + { + Stop(); + } + } + else if (gameObject != null && gameObject.ObjectKind == ObjectKind.Aetheryte) + { + if (AetheryteConverter.IsLargeAetheryte((EAetheryteLocation)Destination.DataId.Value)) + { + Stop(); + } + else if (Math.Abs(vector4.Y - gameObject.Position.Y) < 1.95f) + { + Stop(); + } + } + else + { + Stop(); + } + } + else + { + Stop(); + } } - case 5: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(935417340), Array.Empty<object>()); - num = (IsNavmeshReady ? (-1655935288) : (-1655935347)); - break; - case 44: - num = ((_202A_206A_202A_200E_202B_200E_202B_202A_206D_206B_206A_202A_206D_206D_206D_206D_206B_202C_202A_200B_200F_206A_206C_206B_200E_200D_200F_202C_206E_202E_200D_202C_200C_202E_202D_200C_200C_200F_200B_206E_202E() - _pathfindStartTime <= 30000) ? (-1655935339) : (-1655935327)); - break; + else + { + List<Vector3> waypoints2 = _navmeshIpc.GetWaypoints(); + Vector3? vector5 = _objectTable.LocalPlayer?.Position; + if (vector5.HasValue) + { + if (RecalculateNavmesh(waypoints2, vector5.Value)) + { + return; + } + if (!Destination.IsFlying && !_condition[ConditionFlag.Mounted] && !_gameFunctions.HasStatusPreventingSprint() && Destination.CanSprint) + { + TriggerSprintIfNeeded(waypoints2, vector5.Value); + } + } + } + } + destination = Destination; + if ((object)destination != null && destination.MovementType == EMovementType.Landing && HasBeenMovingForAtLeast(500) && (!IsPathRunning || HasBeenMovingForAtLeast(10000))) + { + bool num2 = _condition[ConditionFlag.InFlight]; + Stop(); + if (num2) + { + _logger.LogWarning("Descend ended while still airborne, treating as unreachable"); + throw new PathfindingFailedException("Descend ended while still airborne"); } } } internal static bool IsRouteEndAcceptable(float endDistance, float stopDistance, bool isFlying, bool land, bool hasPartialInfo, bool isPartial) { - int num = (land ? 1 : 0); - int num2 = (isFlying ? 1 : 0); - int num3 = (((num2 | num) - (num2 ^ num) == 0) ? (-927356858) : (-927356857)); - while (true) + if (isFlying && land) { - int num4 = num3; - num = -927356858; - num2 = num4; - int num5 = num2 + num; - int num6 = num2 & num; - switch (num5 - (num6 + num6)) - { - case 2: - return endDistance <= stopDistance; - case 1: - return true; - case 4: - num3 = -927356857; - break; - case 0: - { - bool num7 = !isFlying; - num = (hasPartialInfo ? 1 : 0); - num2 = (num7 ? 1 : 0); - int num8 = (num2 | num) - (num2 ^ num); - num = (isPartial ? 1 : 0); - num2 = num8; - num3 = (((num2 | num) - (num2 ^ num) == 0) ? (-927356859) : (-927356860)); - break; - } - case 3: - return endDistance <= stopDistance + 5f; - } + return true; } + if (!isFlying && hasPartialInfo && isPartial) + { + return endDistance <= stopDistance; + } + return endDistance <= stopDistance + 5f; } private void StartPlayerInputTracking() { - IPlayerCharacter playerCharacter = _206C_206C_206F_206F_202D_206B_206D_206E_202E_200D_206A_206C_200D_206A_202D_202E_206D_200F_206A_200F_202E_200F_206C_202D_206D_200F_206A_206D_200B_202B_202D_206A_200C_206F_202D_206A_200C_206F_202E_200C_202E(_objectTable); - int num = ((playerCharacter == null) ? 424392342 : 424392343); - while (true) + IPlayerCharacter localPlayer = _objectTable.LocalPlayer; + if (localPlayer != null) { - int num2 = num; - int num3 = 424392342; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 424392343; - break; - case 0: - return; - case 1: - _lastKnownPosition = _200D_202E_202E_206E_200D_200F_206A_202E_200B_202D_206F_200E_200F_206C_202A_200F_206B_202B_202B_202D_206B_206D_202E_202D_200F_200C_202D_202E_200B_202E_200E_206B_200E_200B_200C_200B_202A_200E_200C_200E_202E((IGameObject)playerCharacter); - _expectedPosition = _200D_202E_202E_206E_200D_200F_206A_202E_200B_202D_206F_200E_200F_206C_202A_200F_206B_202B_202B_202D_206B_206D_202E_202D_200F_200C_202D_202E_200B_202E_200E_206B_200E_200B_200C_200B_202A_200E_200C_200E_202E((IGameObject)playerCharacter); - _lastPositionUpdateTime = _202A_206A_202A_200E_202B_200E_202B_202A_206D_206B_206A_202A_206D_206D_206D_206D_206B_202C_202A_200B_200F_206A_206C_206B_200E_200D_200F_202C_206E_202E_200D_202C_200C_202E_202D_200C_200C_200F_200B_206E_202E(); - _isTrackingPlayerInput = true; - num = 424392342; - break; - } + _lastKnownPosition = localPlayer.Position; + _expectedPosition = localPlayer.Position; + _lastPositionUpdateTime = Environment.TickCount64; + _isTrackingPlayerInput = true; } } - [MethodImpl(MethodImplOptions.NoInlining)] private bool DetectPlayerInputInterference() { - int num = (_configuration.General.StopOnPlayerInput ? 1130252873 : 1130252878); - Vector3 vector = default(Vector3); - long num5 = default(long); - IPlayerCharacter playerCharacter = default(IPlayerCharacter); - List<Vector3> waypoints = default(List<Vector3>); - Vector3 vector3 = default(Vector3); - Vector3 value = default(Vector3); - float num8 = default(float); - while (true) + if (!_configuration.General.StopOnPlayerInput) { - int num2 = num; - int num3 = 1130252866; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 14: - return false; - case 6: - _lastKnownPosition = vector; - _lastPositionUpdateTime = num5; - return false; - case 3: - playerCharacter = _206C_206C_206F_206F_202D_206B_206D_206E_202E_200D_206A_206C_200D_206A_202D_202E_206D_200F_206A_200F_202E_200F_206C_202D_206D_200F_206A_206D_200B_202B_202D_206A_200C_206F_202D_206A_200C_206F_202E_200C_202E(_objectTable); - num = ((playerCharacter != null) ? 1130252875 : 1130252869); - break; - case 2: - num = (_lastKnownPosition.HasValue ? 1130252865 : 1130252877); - break; - case 5: - _expectedPosition = waypoints[0]; - num = 1130252866; - break; - case 10: - waypoints = _navmeshIpc.GetWaypoints(); - num = ((waypoints.Count <= 0) ? 1130252866 : 1130252871); - break; - case 7: - return false; - case 9: - { - vector = _200D_202E_202E_206E_200D_200F_206A_202E_200B_202D_206F_200E_200F_206C_202A_200F_206B_202B_202B_202D_206B_206D_202E_202D_200F_200C_202D_202E_200B_202E_200E_206B_200E_200B_200C_200B_202A_200E_200C_200E_202E((IGameObject)playerCharacter); - num5 = _202A_206A_202A_200E_202B_200E_202B_202A_206D_206B_206A_202A_206D_206D_206D_206D_206B_202C_202A_200B_200F_206A_206C_206B_200E_200D_200F_202C_206E_202E_200D_202C_200C_202E_202D_200C_200C_200F_200B_206E_202E(); - long num6 = num5; - long lastPositionUpdateTime = _lastPositionUpdateTime; - long num7 = num6; - num = ((~(~num7 + lastPositionUpdateTime) >= 100) ? 1130252872 : 1130252876); - break; - } - case 4: - num = 1130252878; - break; - case 8: - vector3 = Vector3.Normalize(_expectedPosition.Value - _lastKnownPosition.Value); - value = vector - _lastKnownPosition.Value; - num = ((!(value.Length() > 0.1f)) ? 1130252868 : 1130252867); - break; - case 11: - num = ((!_isTrackingPlayerInput) ? 1130252877 : 1130252864); - break; - case 15: - return false; - case 13: - _206F_206E_200D_206B_200C_202D_200B_202A_202A_206A_206A_206C_206A_202B_200F_200B_200F_206D_202E_206A_200E_200D_202C_200C_206B_202B_206B_200C_202A_200D_200F_202A_202D_200C_200C_200D_200E_200C_200E_202B_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-52800617), new object[3] - { - num8, - value.ToString(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1450220880), _202D_206D_200D_202A_202D_200D_202C_202E_202B_206C_202A_206E_206B_200F_200E_200E_200F_200D_206D_200C_206E_206A_202C_200D_200D_202B_206C_202D_206D_202D_206E_206B_200D_202B_200C_200D_200E_206C_200B_206B_202E()), - vector3.ToString(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1450220880), _202D_206D_200D_202A_202D_200D_202C_202E_202B_206C_202A_206E_206B_200F_200E_200E_200F_200D_206D_200C_206E_206A_202C_200D_200D_202B_206C_202D_206D_202D_206E_206B_200D_202B_200C_200D_200E_206C_200B_206B_202E()) - }); - return true; - case 12: - return false; - case 1: + return false; + } + if (!_isTrackingPlayerInput || !_lastKnownPosition.HasValue) + { + return false; + } + IPlayerCharacter localPlayer = _objectTable.LocalPlayer; + if (localPlayer == null) + { + return false; + } + Vector3 position = localPlayer.Position; + long tickCount = Environment.TickCount64; + if (tickCount - _lastPositionUpdateTime < 100) + { + return false; + } + List<Vector3> waypoints = _navmeshIpc.GetWaypoints(); + if (waypoints.Count > 0) + { + _expectedPosition = waypoints[0]; + } + if (_expectedPosition.HasValue) + { + Vector3 vector = Vector3.Normalize(_expectedPosition.Value - _lastKnownPosition.Value); + Vector3 value = position - _lastKnownPosition.Value; + if (value.Length() > 0.1f) { Vector3 vector2 = Vector3.Normalize(value); - num8 = Vector3.Dot(vector3, vector2); - num = ((!(num8 < 0.7f)) ? 1130252868 : 1130252879); - break; - } - case 0: - num = ((!_expectedPosition.HasValue) ? 1130252868 : 1130252874); - break; + float num = Vector3.Dot(vector, vector2); + if (num < 0.7f) + { + _logger.LogDebug("Player movement detected: alignment={Alignment:F2}, actual={Actual}, expected={Expected}", num, value.ToString("G", CultureInfo.InvariantCulture), vector.ToString("G", CultureInfo.InvariantCulture)); + return true; + } } } + _lastKnownPosition = position; + _lastPositionUpdateTime = tickCount; + return false; } private void StopPlayerInputTracking() @@ -1399,268 +564,117 @@ internal sealed class MovementController : IDisposable { Stop(); Vector3 vector = destination.Position; - int num = (((object)destination == null) ? 961052412 : 961052413); - bool? flag = default(bool?); - bool fly2 = default(bool); - while (true) + if ((object)destination != null && destination.IsFlying && destination.Land) { - int num2 = num; - int num3 = 961052415; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - bool num7; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 3: - flag = fly; - num = (flag.HasValue ? 961052410 : 961052415); - continue; - case 2: - num = ((!destination.IsFlying) ? 961052412 : 961052414); - continue; - case 6: - { - EMovementType movementType = destination.MovementType; - uint? dataId = destination.DataId; - int num8 = 1; - List<Vector3> list = new List<Vector3>(num8); - CollectionsMarshal.SetCount(list, num8); - CollectionsMarshal.AsSpan(list)[0] = vector; - NavigateTo(movementType, dataId, list, fly2, destination.CanSprint, destination.StopDistance, destination.VerticalStopDistance, destination.Land); - return; - } - case 7: - num = 961052413; - continue; - case 8: - NavigateTo(destination.MovementType, destination.DataId, vector, fly2, destination.CanSprint, destination.StopDistance, destination.VerticalStopDistance, destination.Land, destination.IsSmartNavRouted); - return; - case 0: - num7 = destination.IsFlying; - break; - case 4: - { - Vector3 vector2 = vector; - vector2.Y = vector.Y - 2.6f; - vector = vector2; - num = 961052412; - continue; - } - case 1: - num = ((!destination.Land) ? 961052412 : 961052411); - continue; - case 5: - num7 = flag == true; - break; - } - fly2 = num7; - num = ((!destination.UseNavmesh) ? 961052409 : 961052407); + Vector3 vector2 = vector; + vector2.Y = vector.Y - 2.6f; + vector = vector2; } + bool fly2 = fly ?? destination.IsFlying; + if (destination.UseNavmesh) + { + NavigateTo(destination.MovementType, destination.DataId, vector, fly2, destination.CanSprint, destination.StopDistance, destination.VerticalStopDistance, destination.Land, destination.IsSmartNavRouted); + return; + } + EMovementType movementType = destination.MovementType; + uint? dataId = destination.DataId; + int num = 1; + List<Vector3> list = new List<Vector3>(num); + CollectionsMarshal.SetCount(list, num); + CollectionsMarshal.AsSpan(list)[0] = vector; + NavigateTo(movementType, dataId, list, fly2, destination.CanSprint, destination.StopDistance, destination.VerticalStopDistance, destination.Land); } private bool IsOnFlightPath(Vector3 p) { Vector3? pointOnFloor = _navmeshIpc.GetPointOnFloor(p, unlandable: true); - int num = ((!pointOnFloor.HasValue) ? 1773669733 : 1773669734); - while (true) + if (pointOnFloor.HasValue) { - int num2 = num; - int num3 = 1773669732; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return false; - case 2: - return _206D_202E_206D_200C_206C_200B_202C_202D_206A_202C_202B_206A_200E_200E_202A_202D_206A_200C_200F_202C_202D_206E_202E_206A_200D_206C_200F_206D_206A_202B_206F_200B_206A_206B_206E_206B_200F_206B_200F_200D_202E(pointOnFloor.Value.Y - p.Y) > 0.5f; - case 0: - goto IL_0079; - } - continue; - IL_0079: - num = 1773669734; + return Math.Abs(pointOnFloor.Value.Y - p.Y) > 0.5f; } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] [MemberNotNull("Destination")] private void PrepareNavigation(EMovementType type, uint? dataId, Vector3 to, bool fly, bool sprint, float? stopDistance, float verticalStopDistance, bool land, bool useNavmesh, bool isSmartNavRouted) { ResetPathfinding(); - int num = ((!InputManager.IsAutoRunning()) ? 832014818 : 832014819); - while (true) + if (InputManager.IsAutoRunning()) { - int num2 = num; - int num3 = 832014818; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - Destination = new DestinationData(type, dataId, to, stopDistance ?? 2.8f, fly, sprint, verticalStopDistance, land, useNavmesh, isSmartNavRouted); - MovementStartedAt = null; - return; - case 1: - _206F_206E_200D_206B_200C_202D_200B_202A_202A_206A_206A_206C_206A_202B_200F_200B_200F_206D_202E_206A_200E_200D_202C_200C_206B_202B_206B_200C_202A_200D_200F_202A_202D_200C_200C_200D_200E_200C_200E_202B_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1560991692), Array.Empty<object>()); - _200E_202D_206F_206A_206A_206C_200F_206E_200C_206F_206B_206B_202E_202C_206E_202E_206A_200F_200B_206A_202E_202C_206E_200E_206A_202E_202B_202E_206C_206A_200F_202A_200D_206E_206F_202C_206D_202C_202B_202B_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1220827390)); - num = 832014818; - break; - case 2: - num = 832014819; - break; - } + _logger.LogDebug("Turning off auto-move"); + ChatHelper.SendCommand("/automove off"); } + Destination = new DestinationData(type, dataId, to, stopDistance ?? 2.8f, fly, sprint, verticalStopDistance, land, useNavmesh, isSmartNavRouted); + MovementStartedAt = null; } - [MethodImpl(MethodImplOptions.NoInlining)] public void NavigateTo(EMovementType type, uint? dataId, Vector3 to, bool fly, bool sprint, float? stopDistance = null, float? verticalStopDistance = null, bool land = false, bool isSmartNavRouted = false) { - int num = (IsNavmeshReady ? (-162149652) : (-162149649)); - Vector3 vector2 = default(Vector3); - while (true) + if (!IsNavmeshReady) { - int num2 = num; - int num3 = -162149651; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 9: - _206F_206E_200D_206B_200C_202D_200B_202A_202A_206A_206A_206C_206A_202B_200F_200B_200F_206D_202E_206A_200E_200D_202C_200C_206B_202B_206B_200C_202A_200D_200F_202A_202D_200C_200C_200D_200E_200C_200E_202B_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1778448689), new object[1] { 5f }); - _pathfindTolerance = 5f; - _pathfindTask = _navmeshIpc.PathfindWithTolerance(vector2, to, fly, 5f); - return; - case 5: - num = ((!(_206F_206E_206B_206A_206D_206A_200E_206F_202C_202E_202A_202C_200E_206F_206A_202C_200D_202D_202C_206B_206D_200F_206C_202D_200E_206B_202E_206D_200D_202B_200F_206D_206F_206E_200D_202A_206A_202E_206D_206E_202E(_aetheryteData, vector2, _206B_200E_206D_206D_200E_206C_202E_200C_206E_206C_202D_200F_206F_206C_200C_206C_200F_202D_200D_206B_202A_200F_202B_200C_202C_202A_206F_202B_206E_202C_202C_200E_206C_206B_200B_206C_202D_200F_202E_206E_202E(_clientState), EAetheryteLocation.CoerthasCentralHighlandsCampDragonhead) < 11f)) ? (-162149653) : (-162149651)); - break; - case 1: - { - fly |= _200C_206A_200F_202C_200F_206D_202A_206C_200B_200E_206F_206C_206D_200F_200E_206F_206C_200B_200F_206A_206F_200B_200B_200B_202D_202A_202E_200F_206D_200F_202E_200F_206D_206B_202E_200D_202A_200D_206D_202E_202E(_condition, ConditionFlag.Diving); - bool num5 = fly; - num3 = (land ? 1 : 0); - num4 = (num5 ? 1 : 0); - num = ((num4 + num3 - (num4 | num3) == 0) ? (-162149659) : (-162149658)); - break; - } - case 2: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(139323207), new object[1] { to.ToString(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2120763774), _202D_206D_200D_202A_202D_200D_202C_202E_202B_206C_202A_206E_206B_200F_200E_200E_200F_200D_206D_200C_206E_206A_202C_200D_200D_202B_206C_202D_206D_202D_206E_206B_200D_202B_200C_200D_200E_206C_200B_206B_202E()) }); - return; - case 8: - { - PrepareNavigation(type, dataId, to, fly, sprint, stopDistance, verticalStopDistance ?? 1.95f, land, useNavmesh: true, isSmartNavRouted); - _206F_206E_200D_206B_200C_202D_200B_202A_202A_206A_206A_206C_206A_202B_200F_200B_200F_206D_202E_206A_200E_200D_202C_200C_206B_202B_206B_200C_202A_200D_200F_202A_202D_200C_200C_200D_200E_200C_200E_202B_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-453779962), new object[1] { Destination }); - DestinationData? destination = Destination; - int navmeshCalculations = destination.NavmeshCalculations; - num3 = 1; - num4 = navmeshCalculations; - destination.NavmeshCalculations = (num4 | num3) + (num4 & num3); - IPlayerCharacter playerCharacter = _206C_206C_206F_206F_202D_206B_206D_206E_202E_200D_206A_206C_200D_206A_202D_202E_206D_200F_206A_200F_202E_200F_206C_202D_206D_200F_206A_206D_200B_202B_202D_206A_200C_206F_202D_206A_200C_206F_202E_200C_202E(_objectTable); - vector2 = ((playerCharacter != null) ? _200D_202E_202E_206E_200D_200F_206A_202E_200B_202D_206F_200E_200F_206C_202A_200F_206B_202B_202B_202D_206B_206D_202E_202D_200F_200C_202D_202E_200B_202E_200E_206B_200E_200B_200C_200B_202A_200E_200C_200E_202E((IGameObject)playerCharacter) : Vector3.Zero); - num = ((!fly) ? (-162149653) : (-162149656)); - break; - } - case 3: - { - _pathfindStartTime = _202A_206A_202A_200E_202B_200E_202B_202A_206D_206B_206A_202A_206D_206D_206D_206D_206B_202C_202A_200B_200F_206A_206C_206B_200E_200D_200F_202C_206E_202E_200D_202C_200C_202E_202D_200C_200C_200F_200B_206E_202E(); - bool num6 = fly; - num3 = (land ? 1 : 0); - num4 = (num6 ? 1 : 0); - num = ((num4 + num3 - (num4 | num3) == 0) ? (-162149654) : (-162149660)); - break; - } - case 7: - _cancellationTokenSource = _206B_202A_206A_202B_206C_202C_202A_206C_200F_206D_206A_202E_200C_206D_206B_206F_202E_202E_206D_202C_202B_206C_206D_206E_206A_202E_202C_202B_202C_206F_206C_200C_206C_206F_202A_206F_202D_200E_206D_200E_202E(); - _200D_200B_202B_200B_206B_206C_200F_200B_200B_202E_206D_202B_202D_202E_200C_200D_202A_200C_200E_200E_200F_200F_200B_200B_206C_206F_200F_206F_202D_206D_202B_202E_206C_202C_206A_202C_206B_200B_206E_206A_202E(_cancellationTokenSource, TimeSpan.FromSeconds(30L)); - _pathfindTolerance = 0.25f; - _pathfindTask = _navmeshIpc.Pathfind(vector2, to, fly, _202C_202B_202B_202E_202E_206E_200C_202E_206C_206C_202D_202E_202C_202C_200E_206B_206B_202B_206F_206D_200E_202D_206D_206C_206C_206E_200F_206C_206D_202B_200B_200F_202C_202D_200D_202D_200D_202D_202A_200D_202E(_cancellationTokenSource)); - return; - case 0: - { - Vector3 vector = vector2; - vector.Y = vector2.Y + 1f; - vector2 = vector; - _206F_206E_200D_206B_200C_202D_200B_202A_202A_206A_206A_206C_206A_202B_200F_200B_200F_206D_202E_206A_200E_200D_202C_200C_206B_202B_206B_200C_202A_200D_200F_202A_202D_200C_200C_200D_200E_200C_200E_202B_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1008345878), new object[1] { vector2.ToString(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2120763774), _202D_206D_200D_202A_202D_200D_202C_202E_202B_206C_202A_206E_206B_200F_200E_200E_200F_200D_206D_200C_206E_206A_202C_200D_200D_202B_206C_202D_206D_202D_206E_206B_200D_202B_200C_200D_200E_206C_200B_206B_202E()) }); - num = -162149650; - break; - } - case 11: - { - Vector3 vector = to; - vector.Y = to.Y + 2.6f; - to = vector; - num = -162149659; - break; - } - case 10: - { - Vector3 vector = vector2; - vector.Y = vector2.Y + 0.2f; - vector2 = vector; - num = -162149650; - break; - } - case 4: - num = -162149649; - break; - case 6: - num = ((!fly) ? (-162149650) : (-162149657)); - break; - } + _logger.LogWarning("Navmesh not ready, cannot start navigation to {Position}", to.ToString("G", CultureInfo.InvariantCulture)); + return; + } + fly |= _condition[ConditionFlag.Diving]; + if (fly && land) + { + Vector3 vector = to; + vector.Y = to.Y + 2.6f; + to = vector; + } + PrepareNavigation(type, dataId, to, fly, sprint, stopDistance, verticalStopDistance ?? 1.95f, land, useNavmesh: true, isSmartNavRouted); + _logger.LogDebug("Pathfinding to {Destination}", Destination); + Destination.NavmeshCalculations++; + Vector3 vector2 = _objectTable.LocalPlayer?.Position ?? Vector3.Zero; + if (fly && _aetheryteData.CalculateDistance(vector2, _clientState.TerritoryType, EAetheryteLocation.CoerthasCentralHighlandsCampDragonhead) < 11f) + { + Vector3 vector = vector2; + vector.Y = vector2.Y + 1f; + vector2 = vector; + _logger.LogDebug("Using modified start position for flying pathfinding: {StartPosition}", vector2.ToString("G", CultureInfo.InvariantCulture)); + } + else if (fly) + { + Vector3 vector = vector2; + vector.Y = vector2.Y + 0.2f; + vector2 = vector; + } + _pathfindStartTime = Environment.TickCount64; + if (fly && land) + { + _logger.LogDebug("Using tolerance-based pathfinding for landing (tolerance: {Tolerance})", 5f); + _pathfindTolerance = 5f; + _pathfindTask = _navmeshIpc.PathfindWithTolerance(vector2, to, fly, 5f); + } + else + { + _cancellationTokenSource = new CancellationTokenSource(); + _cancellationTokenSource.CancelAfter(TimeSpan.FromSeconds(30L)); + _pathfindTolerance = 0.25f; + _pathfindTask = _navmeshIpc.Pathfind(vector2, to, fly, _cancellationTokenSource.Token); } } - [MethodImpl(MethodImplOptions.NoInlining)] public void NavigateTo(EMovementType type, uint? dataId, List<Vector3> to, bool fly, bool sprint, float? stopDistance, float? verticalStopDistance = null, bool land = false) { - int num = (IsNavmeshReady ? (-1651197937) : (-1651197943)); - while (true) + if (!IsNavmeshReady) { - int num2 = num; - int num3 = -1651197940; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - { - fly |= _200C_206A_200F_202C_200F_206D_202A_206C_200B_200E_206F_206C_206D_200F_200E_206F_206C_200B_200F_206A_206F_200B_200B_200B_202D_202A_202E_200F_206D_200F_202E_200F_206D_206B_202E_200D_202A_200D_206D_202E_202E(_condition, ConditionFlag.Diving); - bool num5 = fly; - num3 = (land ? 1 : 0); - num4 = (num5 ? 1 : 0); - num = (((num4 | num3) - (num4 ^ num3) == 0) ? (-1651197944) : (-1651197938)); - break; - } - case 5: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(139323207), new object[1] { to.Last().ToString(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2120763774), _202D_206D_200D_202A_202D_200D_202C_202E_202B_206C_202A_206E_206B_200F_200E_200E_200F_200D_206D_200C_206E_206A_202C_200D_200D_202B_206C_202D_206D_202D_206E_206B_200D_202B_200C_200D_200E_206C_200B_206B_202E()) }); - return; - case 4: - PrepareNavigation(type, dataId, to.Last(), fly, sprint, stopDistance, verticalStopDistance ?? 1.95f, land, useNavmesh: false, isSmartNavRouted: false); - _206F_206E_200D_206B_200C_202D_200B_202A_202A_206A_206A_206C_206A_202B_200F_200B_200F_206D_202E_206A_200E_200D_202C_200C_206B_202B_206B_200C_202A_200D_200F_202A_202D_200C_200C_200D_200E_200C_200E_202B_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1893200715), new object[1] { Destination }); - _navmeshIpc.MoveTo(to, fly, 0.25f); - MovementStartedAt = _202A_206A_202A_200E_202B_200E_202B_202A_206D_206B_206A_202A_206D_206D_206D_206D_206B_202C_202A_200B_200F_206A_206C_206B_200E_200D_200F_202C_206E_202E_200D_202C_200C_202E_202D_200C_200C_200F_200B_206E_202E(); - StartPlayerInputTracking(); - return; - case 0: - num = -1651197943; - break; - case 1: - { - int index = to.Count - 1; - Vector3 value = to[to.Count - 1]; - value.Y = to[to.Count - 1].Y + 2.6f; - to[index] = value; - num = -1651197944; - break; - } - case 2: - num = ((to.Count <= 0) ? (-1651197944) : (-1651197939)); - break; - } + _logger.LogWarning("Navmesh not ready, cannot start navigation to {Position}", to.Last().ToString("G", CultureInfo.InvariantCulture)); + return; } + fly |= _condition[ConditionFlag.Diving]; + if (fly && land && to.Count > 0) + { + int index = to.Count - 1; + Vector3 value = to[to.Count - 1]; + value.Y = to[to.Count - 1].Y + 2.6f; + to[index] = value; + } + PrepareNavigation(type, dataId, to.Last(), fly, sprint, stopDistance, verticalStopDistance ?? 1.95f, land, useNavmesh: false, isSmartNavRouted: false); + _logger.LogDebug("Moving to {Destination}", Destination); + _navmeshIpc.MoveTo(to, fly, 0.25f); + MovementStartedAt = Environment.TickCount64; + StartPlayerInputTracking(); } public void ResetPathfinding() @@ -1669,584 +683,202 @@ internal sealed class MovementController : IDisposable { try { - _200C_200F_200E_206A_206F_206D_206D_206C_202B_200B_200C_202C_200E_206C_202E_206D_202C_206B_206B_202A_206B_206F_202C_200F_202D_200C_200F_200C_206B_202D_200F_202E_200C_206A_202C_200B_202E_206F_206D_200F_202E(_cancellationTokenSource); + _cancellationTokenSource.Cancel(); } catch (ObjectDisposedException) { } - _200E_206B_202B_206D_206B_200C_200D_202B_200C_202B_200E_200B_202C_202E_202E_202E_202E_206C_200F_206E_200E_202D_202A_206C_200F_200D_206B_200B_200F_202D_206F_206D_200F_206C_202B_202D_202B_200C_200F_200D_202E(_cancellationTokenSource); + _cancellationTokenSource.Dispose(); _cancellationTokenSource = null; } _pathfindTask = null; _pathfindTimeoutLogged = false; } - [MethodImpl(MethodImplOptions.NoInlining)] private Vector3? TryFindAccessibleDestination(Vector3 target, bool flying, bool landing) { - int num = (IsNavmeshReady ? 1901620247 : 1901620241); - Vector3? pointOnFloor = default(Vector3?); - float num13 = default(float); - float num8 = default(float); - float[] array = default(float[]); - int num7 = default(int); - float[] array5 = default(float[]); - float num11 = default(float); - Vector3? vector = default(Vector3?); - float num14 = default(float); - while (true) + if (!IsNavmeshReady) { - int num2 = num; - int num3 = 1901620246; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - float[] array3; - float[] array2; - switch (num5 - (num6 + num6)) + _logger.LogWarning("Navmesh not ready, cannot find accessible destination"); + return null; + } + float[] array = ((!(flying && landing)) ? ((!flying) ? new float[3] { 1f, 3f, 5f } : new float[3] { 2f, 5f, 10f }) : new float[3] { 5f, 10f, 15f }); + float[] array2 = ((!flying) ? new float[3] { 1f, 2f, 3f } : new float[3] { 3f, 5f, 10f }); + for (int i = 0; i < array.Length; i++) + { + float num = array[i]; + float num2 = array2[Math.Min(i, array2.Length - 1)]; + Vector3? vector = _navmeshIpc.FindNearestReachableMeshPoint(target, num, num2); + if (vector.HasValue) { - case 9: - _206F_206E_200D_206B_200C_202D_200B_202A_202A_206A_206A_206C_206A_202B_200F_200B_200F_206D_202E_206A_200E_200D_202C_200C_206B_202B_206B_200C_202A_200D_200F_202A_202D_200C_200C_200D_200E_200C_200E_202B_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(991342630), new object[4] + float num3 = Vector3.Distance(target, vector.Value); + if (num3 <= num * 1.5f) { - target.ToString(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1450220880), _202D_206D_200D_202A_202D_200D_202C_202E_202B_206C_202A_206E_206B_200F_200E_200E_200F_200D_206D_200C_206E_206A_202C_200D_200D_202B_206C_202D_206D_202D_206E_206B_200D_202B_200C_200D_200E_206C_200B_206B_202E()), - pointOnFloor.Value.ToString(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1770759382), _202D_206D_200D_202A_202D_200D_202C_202E_202B_206C_202A_206E_206B_200F_200E_200E_200F_200D_206D_200C_206E_206A_202C_200D_200D_202B_206C_202D_206D_202D_206E_206B_200D_202B_200C_200D_200E_206C_200B_206B_202E()), - num13, - num8 - }); - num = 1901620230; - break; - case 13: - { - num8 = array[num7]; - float[] array4 = array5; - int num9 = num7; - int num10 = array5.Length; - num3 = 1; - num4 = num10; - num11 = array4[_200F_206D_202D_202C_202C_202B_200D_200B_202C_202C_202B_202A_206B_206B_200C_206F_206B_206B_206B_202D_206C_206A_200E_202B_206B_202E_200F_206A_206E_206D_202C_202B_206E_202C_200C_200F_200E_202D_200E_200D_202E(num9, ~(~num4 + num3))]; - vector = _navmeshIpc.FindNearestReachableMeshPoint(target, num8, num11); - num = ((!vector.HasValue) ? 1901620227 : 1901620242); - break; - } - case 19: - array3 = new float[3]; - _200E_202E_202B_200D_206F_206E_202D_200C_206F_200D_200C_200B_206D_206B_202B_206E_200F_202D_206E_202A_206A_206B_206D_202D_206B_206C_200E_206A_206A_202D_202E_200E_206F_206E_202E_200E_200F_202E_200F_206E_202E((Array)array3, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - goto IL_0470; - case 6: - array2 = new float[3]; - _200E_202E_202B_200D_206F_206E_202D_200C_206F_200D_200C_200B_206D_206B_202B_206E_200F_202D_206E_202A_206A_206B_206D_202D_206B_206C_200E_206A_206A_202D_202E_200E_206F_206E_202E_200E_200F_202E_200F_206E_202E((Array)array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - goto IL_01bc; - case 8: - array2 = new float[3]; - _200E_202E_202B_200D_206F_206E_202D_200C_206F_200D_200C_200B_206D_206B_202B_206E_200F_202D_206E_202A_206A_206B_206D_202D_206B_206C_200E_206A_206A_202D_202E_200E_206F_206E_202E_200E_200F_202E_200F_206E_202E((Array)array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - goto IL_01bc; - case 10: - num13 = Vector3.Distance(target, pointOnFloor.Value); - num = ((!(num13 <= num8 * 1.5f)) ? 1901620226 : 1901620253); - break; - case 7: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1434607821), Array.Empty<object>()); - return null; - case 11: - num = ((num7 <= 0) ? 1901620230 : 1901620255); - break; - case 18: - num = 1901620241; - break; - case 21: - pointOnFloor = _navmeshIpc.GetPointOnFloor(target, flying, num8); - num = ((!pointOnFloor.HasValue) ? 1901620226 : 1901620252); - break; - case 20: - { - int num15 = num7; - num3 = 1; - num4 = num15; - int num16 = num4 ^ num3; - int num17 = num4 & num3; - num7 = num16 + (num17 + num17); - num = 1901620231; - break; - } - case 0: - array2 = new float[3]; - _200E_202E_202B_200D_206F_206E_202D_200C_206F_200D_200C_200B_206D_206B_202B_206E_200F_202D_206E_202A_206A_206B_206D_202D_206B_206C_200E_206A_206A_202D_202E_200E_206F_206E_202E_200E_200F_202E_200F_206E_202E((Array)array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - goto IL_01bc; - case 2: - _206F_206E_200D_206B_200C_202D_200B_202A_202A_206A_206A_206C_206A_202B_200F_200B_200F_206D_202E_206A_200E_200D_202C_200C_206B_202B_206B_200C_202A_200D_200F_202A_202D_200C_200C_200D_200E_200C_200E_202B_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1730269895), new object[5] - { - target.ToString(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1318690943), _202D_206D_200D_202A_202D_200D_202C_202E_202B_206C_202A_206E_206B_200F_200E_200E_200F_200D_206D_200C_206E_206A_202C_200D_200D_202B_206C_202D_206D_202D_206E_206B_200D_202B_200C_200D_200E_206C_200B_206B_202E()), - vector.Value.ToString(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1022996025), _202D_206D_200D_202A_202D_200D_202C_202E_202B_206C_202A_206E_206B_200F_200E_200E_200F_200D_206D_200C_206E_206A_202C_200D_200D_202B_206C_202D_206D_202D_206E_206B_200D_202B_200C_200D_200E_206C_200B_206B_202E()), - num14, - num8, - num11 - }); - num = 1901620250; - break; - case 12: - return vector.Value; - case 5: - num = ((num7 <= 0) ? 1901620250 : 1901620244); - break; - case 4: - num14 = Vector3.Distance(target, vector.Value); - num = ((!(num14 <= num8 * 1.5f)) ? 1901620227 : 1901620243); - break; - case 17: - num = ((num7 < array.Length) ? 1901620251 : 1901620248); - break; - case 14: - { - ILogger<MovementController> logger = _logger; - string text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1069787156); - object[] obj = new object[2] - { - target.ToString(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1770759382), _202D_206D_200D_202A_202D_200D_202C_202E_202B_206C_202A_206E_206B_200F_200E_200E_200F_200D_206D_200C_206E_206A_202C_200D_200D_202B_206C_202D_206D_202D_206E_206B_200D_202B_200C_200D_200E_206C_200B_206B_202E()), - null - }; - float[] array6 = array; - int num12 = array6.Length; - num3 = 1; - num4 = num12; - obj[1] = array6[~(~num4 + num3)]; - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)logger, text, obj); - return null; - } - case 1: - num3 = (landing ? 1 : 0); - num4 = (flying ? 1 : 0); - num = ((num4 + num3 - (num4 | num3) != 0) ? 1901620254 : 1901620245); - break; - case 15: - array3 = new float[3]; - _200E_202E_202B_200D_206F_206E_202D_200C_206F_200D_200C_200B_206D_206B_202B_206E_200F_202D_206E_202A_206A_206B_206D_202D_206B_206C_200E_206A_206A_202D_202E_200E_206F_206E_202E_200E_200F_202E_200F_206E_202E((Array)array3, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - goto IL_0470; - case 16: - return pointOnFloor.Value; - case 3: - { - num = (flying ? 1901620240 : 1901620246); - break; + if (i > 0) + { + _logger.LogDebug("Adjusted destination from {Original} to {Adjusted} (distance: {Distance:F2}, extent: {ExtentXZ}/{ExtentY})", target.ToString("G", CultureInfo.InvariantCulture), vector.Value.ToString("G", CultureInfo.InvariantCulture), num3, num, num2); + } + return vector.Value; } - IL_01bc: - array = array2; - num = (flying ? 1901620249 : 1901620229); - break; - IL_0470: - array5 = array3; - num7 = 0; - num = 1901620231; - break; + } + Vector3? pointOnFloor = _navmeshIpc.GetPointOnFloor(target, flying, num); + if (!pointOnFloor.HasValue) + { + continue; + } + float num4 = Vector3.Distance(target, pointOnFloor.Value); + if (num4 <= num * 1.5f) + { + if (i > 0) + { + _logger.LogDebug("Adjusted destination via floor point from {Original} to {Adjusted} (distance: {Distance:F2}, extent: {ExtentXZ})", target.ToString("G", CultureInfo.InvariantCulture), pointOnFloor.Value.ToString("G", CultureInfo.InvariantCulture), num4, num); + } + return pointOnFloor.Value; } } + _logger.LogWarning("Could not find accessible mesh point near {Target} within max extent {MaxExtent}", target.ToString("G", CultureInfo.InvariantCulture), array[^1]); + return null; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe bool RecalculateNavmesh(List<Vector3> navPoints, Vector3 start) { - int num = ((!(Destination == null)) ? (-392231919) : (-392231910)); - int navmeshCalculations = default(int); - EStuckRecoveryMode stuckRecoveryMode = default(EStuckRecoveryMode); - float num7 = default(float); - Vector3 vector = default(Vector3); - while (true) + if (Destination == null) { - int num2 = num; - int num3 = -392231929; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + throw new InvalidOperationException("Destination is null"); + } + if (!HasBeenMovingForAtLeast(5000)) + { + return false; + } + Vector3 vector = navPoints.FirstOrDefault(); + if (vector == default(Vector3)) + { + return false; + } + float num = Vector2.Distance(new Vector2(start.X, start.Z), new Vector2(vector.X, vector.Z)); + if (Destination.LastWaypoint == null || (Destination.LastWaypoint.Position - vector).Length() > 0.1f) + { + Destination.LastWaypoint = new LastWaypointData(vector) { - case 20: - num = -392231910; - break; - case 25: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1976407771), new object[2] - { - navmeshCalculations, - Destination.Position.ToString(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1318690943), _202D_206D_200D_202A_202D_200D_202C_202E_202B_206C_202A_206E_206B_200F_200E_200E_200F_200D_206D_200C_206E_206A_202C_200D_200D_202B_206C_202D_206D_202D_206E_206B_200D_202B_200C_200D_200E_206C_200B_206B_202E()) - }); - Restart(Destination); - num = -392231908; - break; - case 14: - num = (IsNavmeshReady ? (-392231906) : (-392231912)); - break; - case 27: + Distance2DAtLastUpdate = num, + UpdatedAt = Environment.TickCount64 + }; + return false; + } + if (Environment.TickCount64 - Destination.LastWaypoint.UpdatedAt > 500) + { + if (Math.Abs((double)num - Destination.LastWaypoint.Distance2DAtLastUpdate) < 0.5) { - DestinationData? destination2 = Destination; - int num10 = navmeshCalculations; - num3 = 1; - num4 = num10; - int num11 = num4 ^ num3; - int num12 = num4 & num3; - destination2.NavmeshCalculations = num11 + (num12 + num12); - return true; - } - case 13: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1388006533), new object[1] { navmeshCalculations }); - return false; - case 4: - num = ((_202A_206A_202A_200E_202B_200E_202B_202A_206D_206B_206A_202A_206D_206D_206D_206D_206B_202C_202A_200B_200F_206A_206C_206B_200E_200D_200F_202C_206E_202E_200D_202C_200C_202E_202D_200C_200C_200F_200B_206E_202E() - Destination.LastWaypoint.UpdatedAt <= 500) ? (-392231928) : (-392231915)); - break; - case 2: - goto IL_01e4; - case 19: - { - navmeshCalculations = Destination.NavmeshCalculations; - stuckRecoveryMode = _configuration.Navigation.StuckRecoveryMode; + int navmeshCalculations = Destination.NavmeshCalculations; + EStuckRecoveryMode stuckRecoveryMode = _configuration.Navigation.StuckRecoveryMode; int recoveryCap = GetRecoveryCap(stuckRecoveryMode); - num = ((navmeshCalculations < recoveryCap) ? (-392231913) : (-392231929)); - break; - } - case 11: - return false; - case 24: - goto IL_02a2; - case 15: - return false; - case 1: - goto IL_0319; - case 28: - Destination.LastWaypoint.Distance2DAtLastUpdate = num7; - Destination.LastWaypoint.UpdatedAt = _202A_206A_202A_200E_202B_200E_202B_202A_206D_206B_206A_202A_206D_206D_206D_206D_206B_202C_202A_200B_200F_206A_206C_206B_200E_200D_200F_202C_206E_202E_200D_202C_200C_202E_202D_200C_200C_200F_200B_206E_202E(); - return false; - case 29: - throw _202B_202E_202C_206D_206D_200E_206B_202C_202B_206B_206B_200E_206E_206C_202A_206E_206D_206D_200C_206F_200F_200C_200C_202B_206A_200E_206F_200F_206B_200C_206A_200D_202E_206C_200B_206E_206D_202A_200D_206C_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1790597621)); - case 0: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(49, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(227167531)); - defaultInterpolatedStringHandler.AppendFormatted(navmeshCalculations); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1562364070)); - defaultInterpolatedStringHandler.AppendFormatted(stuckRecoveryMode); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - throw new PathfindingFailedException(defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 23: - goto IL_042f; - case 10: - Destination.LastWaypoint = new LastWaypointData(vector) + if (navmeshCalculations >= recoveryCap) { - Distance2DAtLastUpdate = num7, - UpdatedAt = _202A_206A_202A_200E_202B_200E_202B_202A_206D_206B_206A_202A_206D_206D_206D_206D_206B_202C_202A_200B_200F_206A_206C_206B_200E_200D_200F_202C_206E_202E_200D_202C_200C_202E_202D_200C_200C_200F_200B_206E_202E() - }; - return false; - case 17: - _206F_206E_200D_206B_200C_202D_200B_202A_202A_206A_206A_206C_206A_202B_200F_200B_200F_206D_202E_206A_200E_200D_202C_200C_206B_202B_206B_200C_202A_200D_200F_202A_202D_200C_200C_200D_200E_200C_200E_202B_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1935768233), new object[1] { navmeshCalculations }); - Restart(Destination); - num = -392231908; - break; - case 30: - vector = navPoints.FirstOrDefault(); - num = ((!(vector == default(Vector3))) ? (-392231936) : (-392231924)); - break; - case 31: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1597622168), new object[1] { navmeshCalculations }); - return false; - case 16: - num = ((stuckRecoveryMode != EStuckRecoveryMode.Passive) ? (-392231918) : (-392231907)); - break; - case 12: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1548783703), new object[1] { navmeshCalculations }); - return false; - case 21: - { - int num9 = navmeshCalculations; - num3 = 1; - num4 = num9; - switch (~(~num4 + num3)) + throw new PathfindingFailedException($"Stuck recovery exhausted after {navmeshCalculations} attempts (mode: {stuckRecoveryMode})"); + } + if (stuckRecoveryMode == EStuckRecoveryMode.Passive) + { + _logger.LogDebug("Stuck detected but recovery mode is Passive, skipping (n = {Calculations})", navmeshCalculations); + Destination.NavmeshCalculations = navmeshCalculations + 1; + return true; + } + switch (navmeshCalculations) { case 1: - case 2: - case 3: - break; case 7: - goto IL_01e4; - case 4: - goto IL_02a2; - case 0: - case 6: - goto IL_0319; + _logger.LogWarning("Jumping to try and resolve navmesh problem (n = {Calculations}) at {Position}", navmeshCalculations, Destination.Position.ToString("G", CultureInfo.InvariantCulture)); + ActionManager.Instance()->UseAction(ActionType.GeneralAction, 2u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); + Destination.LastWaypoint.UpdatedAt = Environment.TickCount64; + break; case 5: - goto IL_042f; - default: - goto IL_0593; + _logger.LogWarning("Reloading navmesh (n = {Calculations}) at {Position}", navmeshCalculations, Destination.Position.ToString("G", CultureInfo.InvariantCulture)); + _navmeshIpc.Reload(); + Destination.LastWaypoint.UpdatedAt = Environment.TickCount64; + break; + case 6: + if (!IsNavmeshReady) + { + _logger.LogWarning("Navmesh not ready after reload (n = {Calculations})", navmeshCalculations); + return false; + } + _logger.LogDebug("Navmesh ready after reload, restarting navigation (n = {Calculations})", navmeshCalculations); + Restart(Destination); + break; case 8: - goto IL_0725; + _logger.LogWarning("Rebuilding navmesh (n = {Calculations}) at {Position}", navmeshCalculations, Destination.Position.ToString("G", CultureInfo.InvariantCulture)); + _navmeshIpc.Rebuild(); + Destination.LastWaypoint.UpdatedAt = Environment.TickCount64; + break; + case 9: + if (!IsNavmeshReady) + { + _logger.LogWarning("Navmesh not ready after rebuild (n = {Calculations})", navmeshCalculations); + return false; + } + _logger.LogDebug("Navmesh ready after rebuild, restarting navigation (n = {Calculations})", navmeshCalculations); + Restart(Destination); + break; + default: + if (!IsNavmeshReady) + { + _logger.LogWarning("Navmesh not ready for recalculation (n = {Calculations})", navmeshCalculations); + return false; + } + _logger.LogWarning("Recalculating navmesh (n = {Calculations}) at {Position}", navmeshCalculations, Destination.Position.ToString("G", CultureInfo.InvariantCulture)); + Restart(Destination); + break; } - goto case 14; - } - case 5: - return false; - case 9: - _206F_206E_200D_206B_200C_202D_200B_202A_202A_206A_206A_206C_206A_202B_200F_200B_200F_206D_202E_206A_200E_200D_202C_200C_206B_202B_206B_200C_202A_200D_200F_202A_202D_200C_200C_200D_200E_200C_200E_202B_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(224794329), new object[1] { navmeshCalculations }); - Restart(Destination); - num = -392231908; - break; - case 6: - num = ((!((Destination.LastWaypoint.Position - vector).Length() > 0.1f)) ? (-392231933) : (-392231923)); - break; - case 26: - { - _206F_206E_200D_206B_200C_202D_200B_202A_202A_206A_206A_206C_206A_202B_200F_200B_200F_206D_202E_206A_200E_200D_202C_200C_206B_202B_206B_200C_202A_200D_200F_202A_202D_200C_200C_200D_200E_200C_200E_202B_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(4831604), new object[1] { navmeshCalculations }); - DestinationData? destination = Destination; - int num8 = navmeshCalculations; - num3 = 1; - num4 = num8; - destination.NavmeshCalculations = (num4 | num3) + (num4 & num3); + Destination.NavmeshCalculations = navmeshCalculations + 1; return true; } - case 7: - num7 = Vector2.Distance(new Vector2(start.X, start.Z), new Vector2(vector.X, vector.Z)); - num = ((Destination.LastWaypoint == null) ? (-392231923) : (-392231935)); - break; - case 18: - num = ((!(_202D_206A_202C_202A_202E_206D_202E_200B_200E_206C_202E_206D_200B_206C_206C_202B_200D_206F_200E_206C_206C_202E_206F_202C_206D_206F_200D_202E_202E_200C_200B_202E_202E_206E_202E_202B_202B_206A_206F_206B_202E((double)num7 - Destination.LastWaypoint.Distance2DAtLastUpdate) < 0.5)) ? (-392231909) : (-392231916)); - break; - case 22: - num = (HasBeenMovingForAtLeast(5000) ? (-392231911) : (-392231934)); - break; - case 3: - goto IL_0725; - case 8: - { - num = -392231927; - break; - } - IL_0319: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1352350737), new object[2] - { - navmeshCalculations, - Destination.Position.ToString(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2120763774), _202D_206D_200D_202A_202D_200D_202C_202E_202B_206C_202A_206E_206B_200F_200E_200E_200F_200D_206D_200C_206E_206A_202C_200D_200D_202B_206C_202D_206D_202D_206E_206B_200D_202B_200C_200D_200E_206C_200B_206B_202E()) - }); - ActionManager.Instance()->UseAction(ActionType.GeneralAction, 2u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); - Destination.LastWaypoint.UpdatedAt = _202A_206A_202A_200E_202B_200E_202B_202A_206D_206B_206A_202A_206D_206D_206D_206D_206B_202C_202A_200B_200F_206A_206C_206B_200E_200D_200F_202C_206E_202E_200D_202C_200C_202E_202D_200C_200C_200F_200B_206E_202E(); - num = -392231908; - break; - IL_02a2: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1763630643), new object[2] - { - navmeshCalculations, - Destination.Position.ToString(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1318690943), _202D_206D_200D_202A_202D_200D_202C_202E_202B_206C_202A_206E_206B_200F_200E_200E_200F_200D_206D_200C_206E_206A_202C_200D_200D_202B_206C_202D_206D_202D_206E_206B_200D_202B_200C_200D_200E_206C_200B_206B_202E()) - }); - _navmeshIpc.Reload(); - Destination.LastWaypoint.UpdatedAt = _202A_206A_202A_200E_202B_200E_202B_202A_206D_206B_206A_202A_206D_206D_206D_206D_206B_202C_202A_200B_200F_206A_206C_206B_200E_200D_200F_202C_206E_202E_200D_202C_200C_202E_202D_200C_200C_200F_200B_206E_202E(); - num = -392231908; - break; - IL_0725: - num = (IsNavmeshReady ? (-392231922) : (-392231925)); - break; - IL_0593: - num = -392231921; - break; - IL_01e4: - _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(363591802), new object[2] - { - navmeshCalculations, - Destination.Position.ToString(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2120763774), _202D_206D_200D_202A_202D_200D_202C_202E_202B_206C_202A_206E_206B_200F_200E_200E_200F_200D_206D_200C_206E_206A_202C_200D_200D_202B_206C_202D_206D_202D_206E_206B_200D_202B_200C_200D_200E_206C_200B_206B_202E()) - }); - _navmeshIpc.Rebuild(); - Destination.LastWaypoint.UpdatedAt = _202A_206A_202A_200E_202B_200E_202B_202A_206D_206B_206A_202A_206D_206D_206D_206D_206B_202C_202A_200B_200F_206A_206C_206B_200E_200D_200F_202C_206E_202E_200D_202C_200C_202E_202D_200C_200C_200F_200B_206E_202E(); - num = -392231908; - break; - IL_042f: - num = (IsNavmeshReady ? (-392231914) : (-392231926)); - break; - } + Destination.LastWaypoint.Distance2DAtLastUpdate = num; + Destination.LastWaypoint.UpdatedAt = Environment.TickCount64; + return false; } + return false; } private static int GetRecoveryCap(EStuckRecoveryMode mode) { - int num; - int result = default(int); - switch (mode) + return mode switch { - default: - num = 2066456491; - goto IL_001d; - case EStuckRecoveryMode.Aggressive: - result = 10; - num = 2066456492; - goto IL_001d; - case EStuckRecoveryMode.Conservative: - goto IL_0086; - case EStuckRecoveryMode.Passive: - goto IL_0093; - IL_001d: - while (true) - { - int num2 = num; - int num3 = 2066456493; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_001d; - case 2: - result = 10; - num = 2066456492; - break; - case 4: - num = 2066456491; - break; - case 6: - num = 2066456495; - break; - case 1: - return result; - case 5: - goto IL_0086; - case 3: - goto IL_0093; - } - continue; - end_IL_001d: - break; - } - goto case EStuckRecoveryMode.Aggressive; - IL_0093: - result = 2; - num = 2066456492; - goto IL_001d; - IL_0086: - result = 5; - num = 2066456492; - goto IL_001d; - } + EStuckRecoveryMode.Aggressive => 10, + EStuckRecoveryMode.Conservative => 5, + EStuckRecoveryMode.Passive => 2, + _ => 10, + }; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void TriggerSprintIfNeeded(IEnumerable<Vector3> navPoints, Vector3 start) { float num = 0f; - IEnumerator<Vector3> enumerator = navPoints.GetEnumerator(); - int num2; - try + foreach (Vector3 navPoint in navPoints) { - num2 = 1560481778; - while (true) - { - int num3 = num2; - int num4 = 1560481777; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 0: - num2 = 1560481778; - break; - case 2: - { - Vector3 current = enumerator.Current; - num += (start - current).Length(); - start = current; - num2 = 1560481778; - break; - } - case 3: - num2 = (_202C_202B_202E_200C_202A_200C_200C_202E_200F_200C_206B_206E_200E_206D_206C_202C_206F_206A_206E_202B_202A_202B_206C_206B_202D_202B_206A_200E_202C_202E_200F_202D_206A_206F_206E_206D_206C_206C_200E_206F_202E((IEnumerator)enumerator) ? 1560481779 : 1560481776); - break; - case 1: - goto end_IL_0019; - } - continue; - end_IL_0019: - break; - } + num += (start - navPoint).Length(); + start = navPoint; } - finally + float num2 = _configuration.Navigation.SprintDistanceOpenWorld; + if (!_gameFunctions.HasStatus(EStatus.Jog) && !_territoryData.CanUseMount(_clientState.TerritoryType)) { - num2 = ((enumerator == null) ? 827766141 : 827766142); - while (true) - { - int num8 = num2; - int num4 = 827766140; - int num5 = num8; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = 827766142; - break; - case 2: - _200F_206A_206A_202C_202D_200D_200B_200D_202A_202E_206F_200E_202A_206A_202D_202E_202E_206F_202E_206B_202D_206A_202D_202E_200E_202A_202C_202A_200C_202E_202C_200B_202A_200D_206A_200B_200F_200C_200D_206A_202E((IDisposable)enumerator); - num2 = 827766141; - break; - case 1: - goto end_IL_00c5; - } - continue; - end_IL_00c5: - break; - } + num2 = _configuration.Navigation.SprintDistanceTown; } - float num9 = _configuration.Navigation.SprintDistanceOpenWorld; - num2 = (_gameFunctions.HasStatus(EStatus.Jog) ? 1159302720 : 1159302721); - while (true) + if (num > num2 && ActionManager.Instance()->GetActionStatus(ActionType.GeneralAction, 4u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0) { - int num10 = num2; - int num4 = 1159302720; - int num5 = num10; - int num11 = num5 + num4; - int num12 = num5 & num4; - switch (num11 - (num12 + num12)) - { - case 6: - num2 = ((ActionManager.Instance()->GetActionStatus(ActionType.GeneralAction, 4u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) != 0) ? 1159302723 : 1159302725); - break; - case 5: - _206F_206E_200D_206B_200C_202D_200B_202A_202A_206A_206A_206C_206A_202B_200F_200B_200F_206D_202E_206A_200E_200D_202C_200C_206B_202B_206B_200C_202A_200D_200F_202A_202D_200C_200C_200D_200E_200C_200E_202B_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1632286442), Array.Empty<object>()); - ActionManager.Instance()->UseAction(ActionType.GeneralAction, 4u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); - num2 = 1159302723; - break; - case 3: - return; - case 0: - num2 = ((!(num > num9)) ? 1159302723 : 1159302726); - break; - case 2: - num2 = 1159302721; - break; - case 4: - num9 = _configuration.Navigation.SprintDistanceTown; - num2 = 1159302720; - break; - case 1: - num2 = (_territoryData.CanUseMount(_206B_200E_206D_206D_200E_206C_202E_200C_206E_206C_202D_200F_206F_206C_200C_206C_200F_202D_200D_206B_202A_200F_202B_200C_202C_202A_206F_202B_206E_202C_202C_200E_206C_206B_200B_206C_202D_200F_202E_206E_202E(_clientState)) ? 1159302720 : 1159302724); - break; - } + _logger.LogDebug("Triggering Sprint"); + ActionManager.Instance()->UseAction(ActionType.GeneralAction, 4u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); } } - [MethodImpl(MethodImplOptions.NoInlining)] public void Stop() { StopPlayerInputTracking(); _navmeshIpc.Stop(); ResetPathfinding(); Destination = null; - int num = ((!InputManager.IsAutoRunning()) ? (-1332858374) : (-1332858375)); - while (true) + if (InputManager.IsAutoRunning()) { - int num2 = num; - int num3 = -1332858376; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return; - case 1: - _206F_206E_200D_206B_200C_202D_200B_202A_202A_206A_206A_206C_206A_202B_200F_200B_200F_206D_202E_206A_200E_200D_202C_200C_206B_202B_206B_200C_202A_200D_200F_202A_202D_200C_200C_200D_200E_200C_200E_202B_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-532830681), Array.Empty<object>()); - _200E_202D_206F_206A_206A_206C_200F_206E_200C_206F_206B_206B_202E_202C_206E_202E_206A_200F_200B_206A_202E_202C_206E_200E_206A_202E_202B_202E_206C_206A_200F_202A_200D_206E_206F_202C_206D_202C_202B_202B_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1812716843)); - num = -1332858374; - break; - case 0: - num = -1332858375; - break; - } + _logger.LogDebug("Turning off auto-move [stop]"); + ChatHelper.SendCommand("/automove off"); } } @@ -2256,165 +888,4 @@ internal sealed class MovementController : IDisposable _wigglyNavAvailability.CompatibilityChanged -= OnWigglyNavCompatibilityChanged; Stop(); } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static long _202A_206A_202A_200E_202B_200E_202B_202A_206D_206B_206A_202A_206D_206D_206D_206D_206B_202C_202A_200B_200F_206A_206C_206B_200E_200D_200F_202C_206E_202E_200D_202C_200C_202E_202D_200C_200C_200F_200B_206E_202E() - { - return Environment.TickCount64; - } - - static Task _202A_202B_202C_200E_206E_206E_200B_200C_200E_200D_200D_206F_206D_206D_206B_200B_202D_202C_206B_200C_206F_206A_206A_202D_202C_206C_202A_206F_206B_200E_200F_202A_202B_202A_200C_200C_206D_200D_200C_206D_202E(IFramework P_0, Action P_1) - { - return P_0.RunOnFrameworkThread(P_1); - } - - static bool _200F_206D_200C_202A_206C_206E_206E_206C_200D_202C_202B_200D_206B_200B_206C_200E_202A_206D_206D_200E_206D_200E_200C_206C_206D_200C_200F_200C_200D_202E_202B_200C_206E_200B_200F_206E_200E_200B_206C_200E_202E(Task P_0) - { - return P_0.IsCompleted; - } - - static Delegate _202E_202B_200F_200E_206B_206A_206E_200E_200F_200B_202D_200F_206A_202C_202A_200F_202E_202B_200C_206A_200C_202D_202A_206B_206C_202B_206D_206F_206D_200F_206B_202B_206B_202E_206C_200E_206E_206C_206E_200E_202E(Delegate P_0, Delegate P_1) - { - return Delegate.Combine(P_0, P_1); - } - - static Delegate _206C_206F_206A_202B_206D_206D_202D_200F_206C_206C_206F_202E_206B_202D_202A_200D_202C_200E_202C_202E_206E_206B_206C_206C_202B_200B_200D_202A_206B_206E_200E_206D_200E_206F_202A_206F_202B_200B_200C_202D_202E(Delegate P_0, Delegate P_1) - { - return Delegate.Remove(P_0, P_1); - } - - static void _202C_200B_200C_202E_200F_202E_202D_200F_202C_206D_202A_202A_206C_200F_206B_206C_202E_206F_202D_200D_200F_200C_206E_200F_206F_200E_200D_206A_202D_200D_206B_200C_206E_200E_202E_206F_200E_206A_206E_202D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static void _200B_202B_200F_202D_202E_202C_200E_202C_202E_206D_200D_206D_206B_200C_206A_200F_206D_206D_206E_202E_200E_206F_206B_200F_206F_200E_200B_200F_200C_202C_200F_206C_206D_200E_202A_200E_206B_200D_202B_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static bool _206A_202C_202C_202B_202A_200E_200D_206D_206D_200B_202D_202E_202B_206D_200D_202C_200C_202B_202E_202C_206D_206C_202C_200B_200F_200F_200F_206C_200B_200D_200F_206E_200E_206B_200B_202E_202C_202D_206F_200D_202E(Task P_0) - { - return P_0.IsCompletedSuccessfully; - } - - static void _206F_206E_200D_206B_200C_202D_200B_202A_202A_206A_206A_206C_206A_202B_200F_200B_200F_206D_202E_206A_200E_200D_202C_200C_206B_202B_206B_200C_202A_200D_200F_202A_202D_200C_200C_200D_200E_200C_200E_202B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static CultureInfo _202D_206D_200D_202A_202D_200D_202C_202E_202B_206C_202A_206E_206B_200F_200E_200E_200F_200D_206D_200C_206E_206A_202C_200D_200D_202B_206C_202D_206D_202D_206E_206B_200D_202B_200C_200D_200E_206C_200B_206B_202E() - { - return CultureInfo.InvariantCulture; - } - - static IPlayerCharacter _206C_206C_206F_206F_202D_206B_206D_206E_202E_200D_206A_206C_200D_206A_202D_202E_206D_200F_206A_200F_202E_200F_206C_202D_206D_200F_206A_206D_200B_202B_202D_206A_200C_206F_202D_206A_200C_206F_202E_200C_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static Vector3 _200D_202E_202E_206E_200D_200F_206A_202E_200B_202D_206F_200E_200F_206C_202A_200F_206B_202B_202B_202D_206B_206D_202E_202D_200F_200C_202D_202E_200B_202E_200E_206B_200E_200B_200C_200B_202A_200E_200C_200E_202E(IGameObject P_0) - { - return P_0.Position; - } - - static bool _200C_206A_200F_202C_200F_206D_202A_206C_200B_200E_206F_206C_206D_200F_200E_206F_206C_200B_200F_206A_206F_200B_200B_200B_202D_202A_202E_200F_206D_200F_202E_200F_206D_206B_202E_200D_202A_200D_206D_202E_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static CancellationTokenSource _206B_202A_206A_202B_206C_202C_202A_206C_200F_206D_206A_202E_200C_206D_206B_206F_202E_202E_206D_202C_202B_206C_206D_206E_206A_202E_202C_202B_202C_206F_206C_200C_206C_206F_202A_206F_202D_200E_206D_200E_202E() - { - return new CancellationTokenSource(); - } - - static void _200D_200B_202B_200B_206B_206C_200F_200B_200B_202E_206D_202B_202D_202E_200C_200D_202A_200C_200E_200E_200F_200F_200B_200B_206C_206F_200F_206F_202D_206D_202B_202E_206C_202C_206A_202C_206B_200B_206E_206A_202E(CancellationTokenSource P_0, TimeSpan P_1) - { - P_0.CancelAfter(P_1); - } - - static CancellationToken _202C_202B_202B_202E_202E_206E_200C_202E_206C_206C_202D_202E_202C_202C_200E_206B_206B_202B_206F_206D_200E_202D_206D_206C_206C_206E_200F_206C_206D_202B_200B_200F_202C_202D_200D_202D_200D_202D_202A_200D_202E(CancellationTokenSource P_0) - { - return P_0.Token; - } - - static string _200B_206A_206A_206E_206F_200F_202B_202A_206E_200B_206F_202B_200F_202B_200D_200D_206C_206C_206D_200D_206C_206F_202E_200B_206A_206F_206E_202A_202C_206E_202E_200D_206A_202C_206F_200C_202E_200F_206A_206C_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); - } - - static float _206D_202E_206D_200C_206C_200B_202C_202D_206A_202C_202B_206A_200E_200E_202A_202D_206A_200C_200F_202C_202D_206E_202E_206A_200D_206C_200F_206D_206A_202B_206F_200B_206A_206B_206E_206B_200F_206B_200F_200D_202E(float P_0) - { - return Math.Abs(P_0); - } - - static ObjectKind _202B_200E_200B_200D_202A_202C_202D_202B_202E_200E_200B_200F_202E_206C_200E_200F_202A_206A_202A_202C_206A_206E_202C_200C_202B_202A_200E_200D_206A_200B_206B_206B_200C_200E_206D_202D_206C_206E_206C_206F_202E(IGameObject P_0) - { - return P_0.ObjectKind; - } - - static bool _206B_200C_206B_200C_206C_202C_206C_200F_206B_202D_202A_202A_200C_200B_202D_200D_202D_200E_206E_200E_206B_200C_206E_202A_200F_206C_206A_200B_200C_200B_200D_200F_202A_202D_206A_200B_202B_200F_202A_202B_202E(EAetheryteLocation P_0) - { - return AetheryteConverter.IsLargeAetheryte(P_0); - } - - static void _200E_202D_206F_206A_206A_206C_200F_206E_200C_206F_206B_206B_202E_202C_206E_202E_206A_200F_200B_206A_202E_202C_206E_200E_206A_202E_202B_202E_206C_206A_200F_202A_200D_206E_206F_202C_206D_202C_202B_202B_202E(string P_0) - { - ChatHelper.SendCommand(P_0); - } - - static uint _206B_200E_206D_206D_200E_206C_202E_200C_206E_206C_202D_200F_206F_206C_200C_206C_200F_202D_200D_206B_202A_200F_202B_200C_202C_202A_206F_202B_206E_202C_202C_200E_206C_206B_200B_206C_202D_200F_202E_206E_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static float _206F_206E_206B_206A_206D_206A_200E_206F_202C_202E_202A_202C_200E_206F_206A_202C_200D_202D_202C_206B_206D_200F_206C_202D_200E_206B_202E_206D_200D_202B_200F_206D_206F_206E_200D_202A_206A_202E_206D_206E_202E(AetheryteData P_0, Vector3 P_1, uint P_2, EAetheryteLocation P_3) - { - return P_0.CalculateDistance(P_1, P_2, P_3); - } - - static void _200C_200F_200E_206A_206F_206D_206D_206C_202B_200B_200C_202C_200E_206C_202E_206D_202C_206B_206B_202A_206B_206F_202C_200F_202D_200C_200F_200C_206B_202D_200F_202E_200C_206A_202C_200B_202E_206F_206D_200F_202E(CancellationTokenSource P_0) - { - P_0.Cancel(); - } - - static void _200E_206B_202B_206D_206B_200C_200D_202B_200C_202B_200E_200B_202C_202E_202E_202E_202E_206C_200F_206E_200E_202D_202A_206C_200F_200D_206B_200B_200F_202D_206F_206D_200F_206C_202B_202D_202B_200C_200F_200D_202E(CancellationTokenSource P_0) - { - P_0.Dispose(); - } - - static void _200E_202E_202B_200D_206F_206E_202D_200C_206F_200D_200C_200B_206D_206B_202B_206E_200F_202D_206E_202A_206A_206B_206D_202D_206B_206C_200E_206A_206A_202D_202E_200E_206F_206E_202E_200E_200F_202E_200F_206E_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); - } - - static int _200F_206D_202D_202C_202C_202B_200D_200B_202C_202C_202B_202A_206B_206B_200C_206F_206B_206B_206B_202D_206C_206A_200E_202B_206B_202E_200F_206A_206E_206D_202C_202B_206E_202C_200C_200F_200E_202D_200E_200D_202E(int P_0, int P_1) - { - return Math.Min(P_0, P_1); - } - - static InvalidOperationException _202B_202E_202C_206D_206D_200E_206B_202C_202B_206B_206B_200E_206E_206C_202A_206E_206D_206D_200C_206F_200F_200C_200C_202B_206A_200E_206F_200F_206B_200C_206A_200D_202E_206C_200B_206E_206D_202A_200D_206C_202E(string P_0) - { - return new InvalidOperationException(P_0); - } - - static double _202D_206A_202C_202A_202E_206D_202E_200B_200E_206C_202E_206D_200B_206C_206C_202B_200D_206F_200E_206C_206C_202E_206F_202C_206D_206F_200D_202E_202E_200C_200B_202E_202E_206E_202E_202B_202B_206A_206F_206B_202E(double P_0) - { - return Math.Abs(P_0); - } - - static bool _202C_202B_202E_200C_202A_200C_200C_202E_200F_200C_206B_206E_200E_206D_206C_202C_206F_206A_206E_202B_202A_202B_206C_206B_202D_202B_206A_200E_202C_202E_200F_202D_206A_206F_206E_206D_206C_206C_200E_206F_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200F_206A_206A_202C_202D_200D_200B_200D_202A_202E_206F_200E_202A_206A_202D_202E_202E_206F_202E_206B_202D_206A_202D_202E_200E_202A_202C_202A_200C_202E_202C_200B_202A_200D_206A_200B_200F_200C_200D_206A_202E(IDisposable P_0) - { - P_0.Dispose(); - } } diff --git a/Questionable/Questionable.Controller/QuestController.cs b/Questionable/Questionable.Controller/QuestController.cs index 84bfc79..3b3694c 100644 --- a/Questionable/Questionable.Controller/QuestController.cs +++ b/Questionable/Questionable.Controller/QuestController.cs @@ -1,18 +1,10 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; -using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using Dalamud.Configuration; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Keys; using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Game.Gui.Toast; using Dalamud.Game.Text.SeStringHandling; using Dalamud.Plugin; @@ -20,8 +12,6 @@ using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using LLib.GameData; using LLib.Inventory; -using Lumina.Excel; -using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.Controller.CombatModules; using Questionable.Controller.Conditions; @@ -46,17 +36,17 @@ internal sealed class QuestController : MiniTaskController<QuestController> public sealed class QuestProgress { - public Questionable.Model.Quest Quest { get; private set; } + public Quest Quest { get; private set; } public byte Sequence { get; private set; } public int Step { get; private set; } - public StepProgress StepProgress { get; private set; } = new StepProgress(_206C_202D_202B_206F_206F_200D_200D_200B_200E_202E_206D_202B_200B_200D_206E_206B_206B_200D_202E_206D_206A_206F_200D_200C_200D_200C_206B_200D_206C_202A_206D_202D_202A_206A_206C_206E_200C_206A_202E_206D_202E()); + public StepProgress StepProgress { get; private set; } = new StepProgress(Environment.TickCount64); public QuestProgressInfo? InitialQuestWork { get; private set; } - public QuestProgress(Questionable.Model.Quest quest, byte sequence = 0, int step = 0, QuestProgressInfo? initialQuestWork = null) + public QuestProgress(Quest quest, byte sequence = 0, int step = 0, QuestProgressInfo? initialQuestWork = null) { Quest = quest; InitialQuestWork = initialQuestWork; @@ -65,26 +55,9 @@ internal sealed class QuestController : MiniTaskController<QuestController> internal void CaptureInitialQuestWork(QuestProgressInfo? questWork) { - int num = ((InitialQuestWork != null) ? (-1691555041) : (-1691555044)); - while (true) + if (InitialQuestWork == null) { - int num2 = num; - int num3 = -1691555042; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1691555044; - break; - case 2: - { - QuestProgressInfo questProgressInfo = (InitialQuestWork = questWork); - num = -1691555041; - break; - } - case 1: - return; - } + QuestProgressInfo questProgressInfo = (InitialQuestWork = questWork); } } @@ -97,10 +70,10 @@ internal sealed class QuestController : MiniTaskController<QuestController> public void SetStep(int step) { Step = step; - StepProgress = new StepProgress(_206C_202D_202B_206F_206F_200D_200D_200B_200E_202E_206D_202B_200B_200D_206E_206B_206B_200D_202E_206D_206A_206F_200D_200C_200D_200C_206B_200D_206C_202A_206D_202D_202A_206A_206C_206E_200C_206A_202E_206D_202E()); + StepProgress = new StepProgress(Environment.TickCount64); } - internal void ReplaceQuest(Questionable.Model.Quest quest) + internal void ReplaceQuest(Quest quest) { Quest = quest; } @@ -112,150 +85,14 @@ internal sealed class QuestController : MiniTaskController<QuestController> PointMenuCounter = StepProgress.PointMenuCounter + 1 }; } - - static long _206C_202D_202B_206F_206F_200D_200D_200B_200E_202E_206D_202B_200B_200D_206E_206B_206B_200D_202E_206D_206A_206F_200D_200C_200D_200C_206B_200D_206C_202A_206D_202D_202A_206A_206C_206E_200C_206A_202E_206D_202E() - { - return Environment.TickCount64; - } } - public sealed record StepProgress(long StartedAt, int PointMenuCounter = 0) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202C_206C_206C_206D_206E_200E_202D_202E_206A_200C_202C_200F_202E_202E_206B_202E_200D_200C_206B_200E_202E_200E_206A_206B_202B_200E_200F_206D_206A_200E_202B_206D_202D_202A_202D_200F_206F_202C_202D_200D_202E(typeof(StepProgress).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202E_206C_202E_202E_200B_206B_206B_206F_202D_206B_202C_202B_206F_202D_200E_202B_206B_200C_206F_206A_200B_206F_200C_202B_206E_206E_200E_202D_200E_206D_200E_206F_202B_200F_200E_206C_200B_200C_202C_206B_202E(); - _202A_206A_202E_202C_200B_206C_202B_200E_206F_206D_200F_200B_202B_202B_206E_202E_200B_202C_206A_202E_206D_206E_206A_206B_200F_206B_202D_202D_200F_200F_206B_200E_200D_202B_200F_200F_202A_202B_206C_206C_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(889034362)); - _202A_206A_202E_202C_200B_206C_202B_200E_206F_206D_200F_200B_202B_202B_206E_202E_200B_202C_206A_202E_206D_206E_206A_206B_200F_206B_202D_202D_200F_200F_206B_200E_200D_202B_200F_200F_202A_202B_206C_206C_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(556540328)); - int num = ((!PrintMembers(stringBuilder)) ? 433003168 : 433003171); - while (true) - { - int num2 = num; - int num3 = 433003170; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 433003171; - break; - case 2: - _202C_206A_202A_202D_206A_206A_206A_206C_206D_202A_202A_200D_206E_206A_206A_200D_200C_206D_200F_200F_200D_200E_202B_200D_206D_200D_206A_202D_206C_206E_200E_202A_206B_202C_202A_200E_200F_200E_200F_202D_202E(stringBuilder, '}'); - return _200D_202E_202D_200E_200C_202D_202B_202A_206E_200F_206F_206D_206D_206B_200B_200C_206B_202C_206C_206B_202C_200F_202D_202D_202D_206C_202A_202E_200C_202C_200C_206D_206A_200D_200D_200C_202C_206C_202B_202B_202E((object)stringBuilder); - case 1: - _202C_206A_202A_202D_206A_206A_206A_206C_206D_202A_202A_200D_206E_206A_206A_200D_200C_206D_200F_200F_200D_200E_202B_200D_206D_200D_206A_202D_206C_206E_200E_202A_206B_202C_202A_200E_200F_200E_200F_202D_202E(stringBuilder, ' '); - num = 433003168; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206A_202A_206C_206B_206A_200F_206E_206C_200F_202C_202D_202A_202D_202B_202D_206E_200F_206B_202E_206D_202A_206D_200F_206E_200C_206C_200D_206B_206A_200C_206A_200F_202D_200E_200B_200B_200B_206E_206C_200D_202E(); - _202A_206A_202E_202C_200B_206C_202B_200E_206F_206D_200F_200B_202B_202B_206E_202E_200B_202C_206A_202E_206D_206E_206A_206B_200F_206B_202D_202D_200F_200F_206B_200E_200D_202B_200F_200F_202A_202B_206C_206C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-272407843)); - _202A_206A_202E_202C_200B_206C_202B_200E_206F_206D_200F_200B_202B_202B_206E_202E_200B_202C_206A_202E_206D_206E_206A_206B_200F_206B_202D_202D_200F_200F_206B_200E_200D_202B_200F_200F_202A_202B_206C_206C_202E(builder, StartedAt.ToString()); - _202A_206A_202E_202C_200B_206C_202B_200E_206F_206D_200F_200B_202B_202B_206E_202E_200B_202C_206A_202E_206D_206E_206A_206B_200F_206B_202D_202D_200F_200F_206B_200E_200D_202B_200F_200F_202A_202B_206C_206C_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1345737934)); - _202A_206A_202E_202C_200B_206C_202B_200E_206F_206D_200F_200B_202B_202B_206E_202E_200B_202C_206A_202E_206D_206E_206A_206B_200F_206B_202D_202D_200F_200F_206B_200E_200D_202B_200F_200F_202A_202B_206C_206C_202E(builder, PointMenuCounter.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(StepProgress? other) - { - int num = (((object)this == other) ? (-1784225980) : (-1784225981)); - while (true) - { - int num2 = num; - int num3 = -1784225982; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return false; - case 1: - num = (((object)other == null) ? (-1784225982) : (-1784225983)); - break; - case 4: - num = ((!EqualityComparer<long>.Default.Equals(StartedAt, other.StartedAt)) ? (-1784225982) : (-1784225977)); - break; - case 5: - return EqualityComparer<int>.Default.Equals(PointMenuCounter, other.PointMenuCounter); - case 2: - num = -1784225981; - break; - case 3: - num = ((!_202C_202A_200F_202C_206C_200F_200D_206B_206B_200B_206E_200C_206F_206D_206B_202D_200C_206F_206A_200E_200F_206C_206F_202A_200C_200E_202E_202E_206E_202D_200D_206A_200C_200F_206D_206A_200C_202A_202D_200F_202E(EqualityContract, other.EqualityContract)) ? (-1784225982) : (-1784225978)); - break; - case 6: - return true; - } - } - } - - bool IEquatable<StepProgress>.Equals(StepProgress? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202C_206C_206C_206D_206E_200E_202D_202E_206A_200C_202C_200F_202E_202E_206B_202E_200D_200C_206B_200E_202E_200E_206A_206B_202B_200E_200F_206D_206A_200E_202B_206D_202D_202A_202D_200F_206F_202C_202D_200D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202E_206C_202E_202E_200B_206B_206B_206F_202D_206B_202C_202B_206F_202D_200E_202B_206B_200C_206F_206A_200B_206F_200C_202B_206E_206E_200E_202D_200E_206D_200E_206F_202B_200F_200E_206C_200B_200C_202C_206B_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202A_206A_202E_202C_200B_206C_202B_200E_206F_206D_200F_200B_202B_202B_206E_202E_200B_202C_206A_202E_206D_206E_206A_206B_200F_206B_202D_202D_200F_200F_206B_200E_200D_202B_200F_200F_202A_202B_206C_206C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202C_206A_202A_202D_206A_206A_206A_206C_206D_202A_202A_200D_206E_206A_206A_200D_200C_206D_200F_200F_200D_200E_202B_200D_206D_200D_206A_202D_206C_206E_200E_202A_206B_202C_202A_200E_200F_200E_200F_202D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200D_202E_202D_200E_200C_202D_202B_202A_206E_200F_206F_206D_206D_206B_200B_200C_206B_202C_206C_206B_202C_200F_202D_202D_202D_206C_202A_202E_200C_202C_200C_206D_206A_200D_200D_200C_202C_206C_202B_202B_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206A_202A_206C_206B_206A_200F_206E_206C_200F_202C_202D_202A_202D_202B_202D_206E_200F_206B_202E_206D_202A_206D_200F_206E_200C_206C_200D_206B_206A_200C_206A_200F_202D_200E_200B_200B_200B_206E_206C_200D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _202C_202A_200F_202C_206C_200F_200D_206B_206B_200B_206E_200C_206F_206D_206B_202D_200C_206F_206A_200E_200F_206C_206F_202A_200C_200E_202E_202E_206E_202D_200D_206A_200C_200F_206D_206A_200C_202A_202D_200F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } + public sealed record StepProgress(long StartedAt, int PointMenuCounter = 0); public enum ECurrentQuestType { Normal, Next, - Gathering, Simulated } @@ -263,65 +100,10 @@ internal sealed class QuestController : MiniTaskController<QuestController> { Manual, Automatic, - GatheringOnly, SingleQuestA, SingleQuestB } - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<bool> _003C_003E9__62_0; - - public static Func<PriorityQuestInfo, bool> _003C_003E9__152_0; - - public static Func<PriorityQuestInfo, ElementId> _003C_003E9__152_1; - - public static Func<Questionable.Model.Quest, string> _003C_003E9__155_0; - - public static Func<Questionable.Model.Quest, ElementId> _003C_003E9__158_1; - - public static Func<Questionable.Model.Quest, ElementId> _003C_003E9__161_0; - - internal bool _003C_002Ector_003Eb__62_0() - { - return true; - } - - internal bool _003CTryPickPriorityQuest_003Eb__152_0(PriorityQuestInfo x) - { - return x.IsAvailable; - } - - internal ElementId _003CTryPickPriorityQuest_003Eb__152_1(PriorityQuestInfo x) - { - return x.QuestId; - } - - internal string _003CExportQuestPriority_003Eb__155_0(Questionable.Model.Quest x) - { - return _202B_206B_206E_206A_200D_206F_202C_200F_206E_200D_200E_202E_200C_206E_200C_202A_200C_200B_202D_206D_202E_206B_202B_206B_206C_200F_200C_206C_206D_206F_200D_200E_202A_202B_206E_206F_200B_206E_206A_202E((object)x.Id); - } - - internal ElementId _003CAddAllAvailableQuests_003Eb__158_1(Questionable.Model.Quest q) - { - return q.Id; - } - - internal ElementId _003CSavePriorityQuests_003Eb__161_0(Questionable.Model.Quest q) - { - return q.Id; - } - - static string _202B_206B_206E_206A_200D_206F_202C_200F_206E_200D_200E_202E_200C_206E_200C_202A_200C_200B_202D_206D_202E_206B_202B_206B_206C_200F_200C_206C_206D_206F_200D_200E_202A_202B_206E_206F_200B_206E_206A_202E(object P_0) - { - return P_0.ToString(); - } - } - private readonly IClientState _clientState; private readonly IObjectTable _objectTable; @@ -396,8 +178,6 @@ internal sealed class QuestController : MiniTaskController<QuestController> private QuestProgress? _simulatedQuest; - private QuestProgress? _gatheringQuest; - private QuestProgress? _pendingQuest; private EAutomationType _automationType; @@ -432,9 +212,6 @@ internal sealed class QuestController : MiniTaskController<QuestController> private bool _runningDebugTasks; - [CompilerGenerated] - private AutomationTypeChangedEventHandler? m_AutomationTypeChanged; - private const char ClipboardSeparator = ';'; public string? LastStopReason { get; private set; } @@ -447,37 +224,17 @@ internal sealed class QuestController : MiniTaskController<QuestController> { return _automationType; } - [MethodImpl(MethodImplOptions.NoInlining)] set { - int num = ((value != _automationType) ? (-698969907) : (-698969909)); - while (true) + if (value != _automationType) { - int num2 = num; - int num3 = -698969911; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + _logger.LogDebug("Setting automation type to {NewAutomationType} (previous: {OldAutomationType})", value, _automationType); + _automationType = value; + if (value != EAutomationType.Manual) { - case 3: - num = -698969909; - break; - case 2: - return; - case 4: - _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(135636341), new object[2] { value, _automationType }); - _automationType = value; - num = ((value == EAutomationType.Manual) ? (-698969912) : (-698969911)); - break; - case 1: - this.AutomationTypeChanged?.Invoke(this, value); - return; - case 0: _commandAfterStopFired = false; - num = -698969912; - break; } + this.AutomationTypeChanged?.Invoke(this, value); } } } @@ -486,41 +243,19 @@ internal sealed class QuestController : MiniTaskController<QuestController> { get { - int num = ((_simulatedQuest == null) ? 836552805 : 836552801); - while (true) + if (_simulatedQuest != null) { - int num2 = num; - int num3 = 836552800; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 8: - return (_gatheringQuest, ECurrentQuestType.Gathering); - case 1: - return (_simulatedQuest, ECurrentQuestType.Simulated); - case 6: - num = 836552801; - break; - case 4: - return null; - case 2: - num = ((!_questFunctions.IsReadyToAcceptQuest(_nextQuest.Quest.Id)) ? 836552809 : 836552800); - break; - case 0: - return (_nextQuest, ECurrentQuestType.Next); - case 3: - return (_startedQuest, ECurrentQuestType.Normal); - case 7: - num = ((_startedQuest == null) ? 836552804 : 836552803); - break; - case 5: - num = ((_nextQuest == null) ? 836552809 : 836552802); - break; - case 9: - num = ((_gatheringQuest == null) ? 836552807 : 836552808); - break; - } + return (_simulatedQuest, ECurrentQuestType.Simulated); } + if (_nextQuest != null && _questFunctions.IsReadyToAcceptQuest(_nextQuest.Quest.Id)) + { + return (_nextQuest, ECurrentQuestType.Next); + } + if (_startedQuest != null) + { + return (_startedQuest, ECurrentQuestType.Normal); + } + return null; } } @@ -532,13 +267,11 @@ internal sealed class QuestController : MiniTaskController<QuestController> public QuestProgress? NextQuest => _nextQuest; - public QuestProgress? GatheringQuest => _gatheringQuest; - - private IPlayerCharacter? LocalPlayer => _202A_206E_200F_206E_206D_202E_206B_202A_206B_200F_200C_206C_202A_206E_200D_206B_206B_206C_206A_200D_202B_200F_206D_206E_202C_200B_200B_206B_202A_200E_206E_200F_202A_206F_206A_206F_202C_200D_202A_206B_202E(_objectTable); + private IPlayerCharacter? LocalPlayer => _objectTable.LocalPlayer; public QuestProgress? PendingQuest => _pendingQuest; - public List<Questionable.Model.Quest> ManualPriorityQuests { get; } = new List<Questionable.Model.Quest>(); + public List<Quest> ManualPriorityQuests { get; } = new List<Quest>(); public string? DebugState { get; private set; } @@ -556,90 +289,15 @@ internal sealed class QuestController : MiniTaskController<QuestController> { get { - IDebugStateProvider debugStateProvider = _taskQueue.CurrentTaskExecutor as IDebugStateProvider; - int num = ((debugStateProvider == null) ? (-1185520346) : (-1185520347)); - while (true) + if (_taskQueue.CurrentTaskExecutor is IDebugStateProvider debugStateProvider) { - int num2 = num; - int num3 = -1185520348; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return null; - case 1: - return debugStateProvider.GetDebugState(); - case 0: - goto IL_005b; - } - continue; - IL_005b: - num = -1185520347; + return debugStateProvider.GetDebugState(); } + return null; } } - public event AutomationTypeChangedEventHandler? AutomationTypeChanged - { - [CompilerGenerated] - add - { - AutomationTypeChangedEventHandler automationTypeChangedEventHandler = this.m_AutomationTypeChanged; - int num = 1773301825; - while (true) - { - int num2 = num; - int num3 = 1773301827; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1773301825; - break; - case 2: - { - AutomationTypeChangedEventHandler automationTypeChangedEventHandler2 = automationTypeChangedEventHandler; - AutomationTypeChangedEventHandler value2 = (AutomationTypeChangedEventHandler)_200E_202A_206A_202D_200B_202C_202C_200E_202C_200D_206A_202D_200E_206E_200C_206F_206C_200C_206E_202C_200E_200C_200F_200E_206B_206D_202D_206C_200D_202B_200D_202B_202E_206C_206E_200F_206E_206B_200D_206D_202E((Delegate)automationTypeChangedEventHandler2, (Delegate)value); - automationTypeChangedEventHandler = Interlocked.CompareExchange(ref this.m_AutomationTypeChanged, value2, automationTypeChangedEventHandler2); - num = (((object)automationTypeChangedEventHandler != automationTypeChangedEventHandler2) ? 1773301825 : 1773301826); - break; - } - case 1: - return; - } - } - } - [CompilerGenerated] - remove - { - AutomationTypeChangedEventHandler automationTypeChangedEventHandler = this.m_AutomationTypeChanged; - int num = -1372912432; - while (true) - { - int num2 = num; - int num3 = -1372912431; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return; - case 1: - { - AutomationTypeChangedEventHandler automationTypeChangedEventHandler2 = automationTypeChangedEventHandler; - AutomationTypeChangedEventHandler value2 = (AutomationTypeChangedEventHandler)_200B_206D_200F_202D_202D_206B_202A_200B_202B_200F_202A_200B_206F_206A_206B_200D_206B_206F_206F_200D_206E_206E_202B_202A_206B_206D_200B_206C_202A_206C_202D_206C_202B_206A_206A_206E_206F_202A_200D_206B_202E((Delegate)automationTypeChangedEventHandler2, (Delegate)value); - automationTypeChangedEventHandler = Interlocked.CompareExchange(ref this.m_AutomationTypeChanged, value2, automationTypeChangedEventHandler2); - num = (((object)automationTypeChangedEventHandler != automationTypeChangedEventHandler2) ? (-1372912432) : (-1372912429)); - break; - } - case 0: - num = -1372912432; - break; - } - } - } - } + public event AutomationTypeChangedEventHandler? AutomationTypeChanged; public QuestController(IClientState clientState, IObjectTable objectTable, GameFunctions gameFunctions, QuestFunctions questFunctions, MovementController movementController, CombatController combatController, WrathComboModule wrathComboModule, RotationSolverRebornModule rsrModule, BossModIpc bossModIpc, GatheringController gatheringController, FishingController fishingController, FateController fateController, SeasonalDutyController seasonalDutyController, CustomDeliveryController customDeliveryController, AttunementController attunementController, ILogger<QuestController> logger, QuestRegistry questRegistry, TerritoryData territoryData, JournalData journalData, IKeyState keyState, IChatGui chatGui, ICondition condition, IToastGui toastGui, Configuration configuration, TaskCreator taskCreator, IServiceProvider serviceProvider, InterruptHandler interruptHandler, IDataManager dataManager, GatheringPointRegistry gatheringPointRegistry, IFramework framework, AutoDutyIpc autoDutyIpc, IDalamudPluginInterface pluginInterface, QuestPriorityResolver priorityResolver, SmartNavReRouteService reRouteService, SmartNavRouteEnqueuer smartNavRouteEnqueuer, GearRepairService gearRepairService, NotificationService notificationService, ICommandManager commandManager) : base(chatGui, condition, serviceProvider, interruptHandler, dataManager, configuration, logger) @@ -678,914 +336,448 @@ internal sealed class QuestController : MiniTaskController<QuestController> _gearRepairService = gearRepairService; _notificationService = notificationService; _commandManager = commandManager; - _206C_202A_200E_200B_202B_206C_206E_202D_200D_200C_206B_206D_202B_206E_206F_202E_202D_206D_200E_200E_200D_206E_206B_202B_202A_206E_202B_200F_200D_200C_202D_202C_200F_206A_206F_206D_206D_206E_200E_206D_202E(_toastGui, (IToastGui.OnErrorToastDelegate)base.OnErrorToast); - _200C_206A_202E_202A_200F_202B_206D_200D_202B_206C_200E_202C_206F_206B_206C_206A_206F_206C_202D_200F_200E_206D_200D_202A_206A_206A_206F_206C_200D_206B_202A_200F_200F_200F_202C_206E_206A_206F_206D_202C_202E(_toastGui, (IToastGui.OnNormalToastDelegate)OnNormalToast); - _202C_202A_202A_200C_202C_200B_200D_200B_200F_202E_200C_202A_200D_206C_206C_206E_200C_200D_202C_200E_202C_200B_202D_206B_202B_200C_202C_202B_202C_206D_206F_200F_206A_202D_206C_200F_206C_200D_202A_206C_202E(_condition, (ICondition.ConditionChangeDelegate)OnConditionChange); - _202E_202A_206E_200D_202D_202D_202A_202A_200C_202A_200D_206F_206A_206A_206B_200C_200F_206C_200F_200D_206D_206B_202D_202E_200B_200F_206E_200F_200D_202E_200F_206C_200D_200D_202C_200B_200D_202B_202C_200C_202E(_clientState, (IClientState.LogoutDelegate)OnLogout); + _toastGui.ErrorToast += base.OnErrorToast; + _toastGui.Toast += OnNormalToast; + _condition.ConditionChange += OnConditionChange; + _clientState.Logout += OnLogout; _movementController.PlayerInputDetected += OnPlayerInputDetected; _questRegistry.Reloaded += OnQuestRegistryReloaded; } private static ushort GetQuestIdValue(ElementId id) { - QuestId questId = id as QuestId; - int num = (((object)questId != null) ? 725707103 : 725707100); - while (true) + if (!(id is QuestId questId)) { - int num2 = num; - int num3 = 725707101; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return _200E_202C_200B_200D_200F_202B_206C_206B_202A_206E_206D_200C_202C_206E_200F_200C_200C_206E_200D_202A_200B_206F_202B_202A_202C_202E_200F_206B_206D_200C_200D_202C_206D_200C_200D_200B_202E_202D_206A_200F_202E((ElementId)questId); - case 1: - return 0; - case 0: - goto IL_0051; - } - continue; - IL_0051: - num = 725707100; + return 0; } + return questId.Value; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Reload() { - _200B_202C_206A_200E_202B_206A_202B_206D_206A_202D_200C_200D_202D_200F_206B_206C_206B_206B_202C_202B_200D_202E_202C_206F_206C_202E_206C_202D_202A_200D_202E_200B_206B_200C_206E_200F_202D_206F_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1125370578), Array.Empty<object>()); + _logger.LogInformation("Reload, resetting current quest progress"); QuestRegistry.Snapshot questSnapshot = _questRegistry.Build(); Dictionary<GatheringPointId, GatheringRoot> gatheringPoints = _gatheringPointRegistry.Build(); - _202C_200F_200B_200E_206E_202A_206C_200C_206F_200E_206F_200E_206C_200E_202D_202D_200B_202B_202C_200E_202C_200C_200C_200D_206D_206A_206D_200F_200C_202E_200C_206F_202C_202E_206A_202A_202B_200F_206D_206E_202E(_206B_202B_206C_206B_206A_200C_206A_206B_206C_206E_200C_200C_200B_202D_202D_202B_206E_200F_206D_200C_206A_202E_206E_206D_200E_200F_206C_206F_200C_206B_200E_200B_202C_200B_202B_202A_206D_200B_202E_200F_202E(_framework, (System.Action)delegate + _framework.RunOnFrameworkThread(delegate { ResetInternalState(); _gatheringPointRegistry.Publish(gatheringPoints); _questRegistry.Publish(questSnapshot); - })).GetResult(); + }).GetAwaiter().GetResult(); } private void ResetInternalState() { _startedQuest = null; _nextQuest = null; - _gatheringQuest = null; _pendingQuest = null; _simulatedQuest = null; _safeAnimationEnd = 0L; DebugState = null; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe void Update() { ActionManager* ptr = ActionManager.Instance(); - int num = ((ptr == null) ? 119738168 : 119738155); - ITaskExecutor currentTaskExecutor = default(ITaskExecutor); - bool flag = default(bool); - float num5 = default(float); - long num6 = default(long); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 119738142; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + float num = Math.Max(ptr->AnimationLock, (ptr->CastTimeElapsed > 0f) ? (ptr->CastTimeTotal - ptr->CastTimeElapsed) : 0f); + if (num > 0f) { - case 49: - num = (_202C_202E_202E_202D_206F_200D_202D_202A_206E_202E_202E_200F_206E_206B_206C_202B_202E_202B_202A_200B_202C_206E_200C_202E_200B_206F_206D_206B_202C_200F_200C_202E_206C_206A_200F_202C_206F_200F_202E_202C_202E(_keyState, VirtualKey.ESCAPE) ? 119738174 : 119738115); - break; - case 45: - num = ((!_deathRecoveryPending) ? 119738157 : 119738126); - break; - case 4: - StopAllDueToConditionFailed(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(303863827)); - num = 119738158; - break; - case 2: - num = ((!_202C_202E_202E_202D_206F_200D_202D_202A_206E_202E_202E_200F_206E_206B_206C_202B_202E_202B_202A_200B_202C_206E_200C_202E_200B_206F_206D_206B_202C_200F_200C_202E_206C_206A_200F_202C_206F_200F_202E_202C_202E(_keyState, VirtualKey.ESCAPE)) ? 119738159 : 119738127); - break; - case 38: - num = ((AutomationType != EAutomationType.Manual) ? 119738123 : 119738129); - break; - case 27: - num = (_taskQueue.AllTasksComplete ? 119738158 : 119738121); - break; - case 39: - num = (_206F_202B_202C_206E_206C_200C_206E_206C_206A_206C_200D_202C_202E_202D_200F_200B_206A_206C_202D_202E_202D_206A_202A_202C_202E_200C_206F_206F_202B_206F_200F_202E_206E_202A_202B_206A_206E_200E_200C_206B_202E(_condition, ConditionFlag.InDeepDungeon) ? 119738158 : 119738117); - break; - case 51: - num = ((!_configuration.General.UseEscToCancelQuesting) ? 119738173 : 119738140); - break; - case 34: - UpdateCurrentTask(); - return; - case 25: - _escPressCount = 1; - num = 119738171; - break; - case 16: - num = ((!_206C_200C_206D_202E_206F_200B_206F_200F_206F_206D_200D_202A_200C_200C_200C_206F_202E_206F_200E_206D_200D_202B_200E_206B_202E_206B_200E_206C_202E_200D_206B_206B_202D_206E_206C_206C_200C_202C_206A_202E_202E(_condition)) ? 119738165 : 119738143); - break; - case 30: - currentTaskExecutor = _taskQueue.CurrentTaskExecutor; - num = ((currentTaskExecutor is Duty.WaitAutoDutyExecutor) ? 119738128 : 119738130); - break; - case 13: - num = (_206F_202B_202C_206E_206C_200C_206E_206C_206A_206C_200D_202C_202E_202D_200F_200B_206A_206C_202D_202E_202D_206A_202A_202C_202E_200C_206F_206F_202B_206F_200F_202E_206E_202A_202B_206A_206E_200E_200C_206B_202E(_condition, ConditionFlag.BoundByDuty56) ? 119738158 : 119738169); - break; - case 7: - num = ((!CheckStopConditions(BuildEvaluationContext())) ? 119738172 : 119738134); - break; - case 29: - num = ((_200F_202C_206D_200F_200D_206C_206B_200E_202D_202E_206E_206B_202C_200C_202E_202B_200E_202A_202D_200F_202E_206B_206A_206A_200B_202D_202E_200C_206D_202D_200B_202A_206E_206D_202E_200C_206F_200B_200F_206B_202E() - _lastEscPressTime <= 1000) ? 119738174 : 119738118); - break; - case 50: - _200F_206F_202B_206C_202D_202A_202A_200B_206F_206F_206C_206F_202C_206C_206E_200F_202A_202E_202B_202B_206E_206C_206A_202A_200E_202A_206B_206A_206E_202C_200C_206B_200D_200B_200C_202E_200F_200C_206A_206A_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1370191864), new object[1] { _deathCount }); - _deathCount = 0; - StopAllDueToConditionFailed(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-497867308)); - _deathRecoveryPending = true; - num = 119738158; - break; - case 41: - { - int escPressCount = _escPressCount; - num3 = 1; - num4 = escPressCount; - _escPressCount = (num4 | num3) + (num4 & num3); - num = 119738171; - break; + _safeAnimationEnd = Environment.TickCount64 + (long)(1000f * (1f + num)); } - case 54: + } + if (AutomationType == EAutomationType.Manual && !IsRunning && !IsQuestWindowOpen && !_deathRecoveryPending) + { + return; + } + UpdateCurrentQuest(); + if (!_clientState.IsLoggedIn) + { + return; + } + if (_condition[ConditionFlag.Unconscious]) + { + if (!_condition[ConditionFlag.SufferingStatusAffliction63] || _clientState.TerritoryType != 1052) { - int deathCount = _deathCount; - num3 = 1; - num4 = deathCount; - _deathCount = (num4 | num3) + (num4 & num3); - num = ((_configuration.General.MaxDeathsBeforeStop <= 0) ? 119738122 : 119738133); - break; + ITaskExecutor currentTaskExecutor = _taskQueue.CurrentTaskExecutor; + bool flag = ((currentTaskExecutor is Duty.WaitAutoDutyExecutor || currentTaskExecutor is Duty.WaitLevelingModeExecutor) ? true : false); + if (!flag && !_condition[ConditionFlag.BoundByDuty] && !_condition[ConditionFlag.BoundByDuty56] && !_condition[ConditionFlag.InDeepDungeon] && !_taskQueue.AllTasksComplete && !_deathRecoveryPending) + { + if (_configuration.General.DeathRecoveryEnabled) + { + _deathCount++; + if (_configuration.General.MaxDeathsBeforeStop > 0 && _deathCount >= _configuration.General.MaxDeathsBeforeStop) + { + _logger.LogWarning("Death recovery: max deaths ({Count}) reached, stopping", _deathCount); + _deathCount = 0; + StopAllDueToConditionFailed("HP = 0 (max deaths reached)"); + _deathRecoveryPending = true; + } + else + { + _logger.LogInformation("Death recovery: died ({Count}), waiting for respawn", _deathCount); + _deathRecoveryPending = true; + _movementController.Stop(); + _combatController.Stop("HP = 0"); + } + } + else + { + StopAllDueToConditionFailed("HP = 0"); + } + } } - case 19: - num = (flag ? 119738158 : 119738114); - break; - case 44: - num = (_taskQueue.AllTasksComplete ? 119738166 : 119738160); - break; - case 26: - num = ((!_configuration.General.DeathRecoveryEnabled) ? 119738138 : 119738152); - break; - case 46: - StopAllDueToConditionFailed(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-8306048)); - num = 119738166; - break; - case 43: - _deathRecoveryPending = false; - num = ((AutomationType == EAutomationType.Manual) ? 119738170 : 119738139); - break; - case 12: - num = ((!(currentTaskExecutor is Duty.WaitLevelingModeExecutor)) ? 119738142 : 119738128); - break; - case 52: - num = 119738155; - break; - case 1: + } + else + { + if (_deathRecoveryPending) + { + if (!ConditionHelper.IsBetweenAreas(_condition)) + { + _deathRecoveryPending = false; + if (AutomationType != EAutomationType.Manual) + { + _logger.LogInformation("Death recovery: respawned, re-planning current step"); + _gatheringController.Replan(); + _fateController.Replan(); + CheckNextTasks("Death recovery"); + } + else + { + _logger.LogInformation("Death recovery: respawned (automation stopped)"); + } + } return; - case 23: - num = (_deathRecoveryPending ? 119738158 : 119738116); - break; - case 8: - return; - case 32: - _lastEscDown = _202C_202E_202E_202D_206F_200D_202D_202A_206E_202E_202E_200F_206E_206B_206C_202B_202E_202B_202A_200B_202C_206E_200C_202E_200B_206F_206D_206B_202C_200F_200C_202E_206C_206A_200F_202C_206F_200F_202E_202C_202E(_keyState, VirtualKey.ESCAPE); - num = 119738158; - break; - case 35: - _lastEscDown = _202C_202E_202E_202D_206F_200D_202D_202A_206E_202E_202E_200F_206E_206B_206C_202B_202E_202B_202A_200B_202C_206E_200C_202E_200B_206F_206D_206B_202C_200F_200C_202E_206C_206A_200F_202C_206F_200F_202E_202C_202E(_keyState, VirtualKey.ESCAPE); + } + if (_configuration.General.UseEscToCancelQuesting) + { + if (_keyState[VirtualKey.ESCAPE] && !_lastEscDown) + { + long tickCount = Environment.TickCount64; + if (tickCount - _lastEscPressTime <= 1000) + { + _escPressCount++; + } + else + { + _escPressCount = 1; + } + _lastEscPressTime = tickCount; + if (_escPressCount >= 2) + { + if (!_taskQueue.AllTasksComplete) + { + StopAllDueToConditionFailed("ESC pressed twice"); + } + _escPressCount = 0; + } + } + if (!_keyState[VirtualKey.ESCAPE] && Environment.TickCount64 - _lastEscPressTime > 1000) + { + _escPressCount = 0; + } + _lastEscDown = _keyState[VirtualKey.ESCAPE]; + } + else + { + _lastEscDown = _keyState[VirtualKey.ESCAPE]; _escPressCount = 0; _lastEscPressTime = 0L; - num = 119738158; - break; - case 0: - flag = false; - num = 119738125; - break; - case 10: - _safeAnimationEnd = _200F_202C_206D_200F_200D_206C_206B_200E_202D_202E_206E_206B_202C_200C_202E_202B_200E_202A_202D_200F_202E_206B_206A_206A_200B_202D_202E_200C_206D_202D_200B_202A_206E_206D_202E_200C_206F_200B_200F_206B_202E() + (long)(1000f * (1f + num5)); - num = 119738168; - break; - case 28: - num = (_206F_202B_202C_206E_206C_200C_206E_206C_206A_206C_200D_202C_202E_202D_200F_200B_206A_206C_202D_202E_202D_206A_202A_202C_202E_200C_206F_206F_202B_206F_200F_202E_206E_202A_202B_206A_206E_200E_200C_206B_202E(_condition, ConditionFlag.BoundByDuty) ? 119738158 : 119738131); - break; - case 33: - return; - case 11: - num = ((_deathCount < _configuration.General.MaxDeathsBeforeStop) ? 119738122 : 119738156); - break; - case 9: - num = (IsQuestWindowOpen ? 119738123 : 119738136); - break; - case 47: - num = ((!_configuration.Stop.Enabled) ? 119738172 : 119738137); - break; - case 14: - flag = true; - num = 119738125; - break; - case 37: - _lastEscPressTime = num6; - num = ((_escPressCount < 2) ? 119738159 : 119738162); - break; - case 5: - _200B_202C_206A_200E_202B_206A_202B_206D_206A_202D_200C_200D_202D_200F_206B_206C_206B_206B_202C_202B_200D_202E_202C_206F_206C_202E_206C_202D_202A_200D_202E_200B_206B_200C_206E_200F_202D_206F_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-631514189), Array.Empty<object>()); - _gatheringController.Replan(); - _fateController.Replan(); - CheckNextTasks(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-729869715)); - return; - case 6: - num = (_deathRecoveryPending ? 119738123 : 119738175); - break; - case 22: - { - num6 = _200F_202C_206D_200F_200D_206C_206B_200E_202D_202E_206E_206B_202C_200C_202E_202B_200E_202A_202D_200F_202E_206B_206A_206A_200B_202D_202E_200C_206D_202D_200B_202A_206E_206D_202E_200C_206F_200B_200F_206B_202E(); - long num7 = num6; - long lastEscPressTime = _lastEscPressTime; - long num8 = num7; - num = ((~(~num8 + lastEscPressTime) > 1000) ? 119738119 : 119738167); - break; - } - case 24: - _escPressCount = 0; - num = 119738174; - break; - case 18: - return; - case 20: - _200B_202C_206A_200E_202B_206A_202B_206D_206A_202D_200C_200D_202D_200F_206B_206C_206B_206B_202C_202B_200D_202E_202C_206F_206C_202E_206C_202D_202A_200D_202E_200B_206B_200C_206E_200F_202D_206F_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1210328484), new object[1] { _deathCount }); - _deathRecoveryPending = true; - _movementController.Stop(); - _combatController.Stop(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(303863827)); - num = 119738158; - break; - case 17: - num = (_lastEscDown ? 119738159 : 119738120); - break; - case 21: - UpdateCurrentQuest(); - num = (_200C_206C_202D_202B_200C_202B_206D_202A_206E_206D_202E_202D_200D_202C_200F_202B_200B_206F_200D_206E_206D_202D_206E_206A_206B_200C_200E_200E_206F_200E_200B_206B_200D_202E_200B_200E_206C_202E_200D_206D_202E(_clientState) ? 119738113 : 119738124); - break; - case 36: - _200B_202C_206A_200E_202B_206A_202B_206D_206A_202D_200C_200D_202D_200F_206B_206C_206B_206B_202C_202B_200D_202E_202C_206F_206C_202E_206C_202D_202A_200D_202E_200B_206B_200C_206E_200F_202D_206F_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(645367081), Array.Empty<object>()); - return; - case 42: - num = ((_202B_206D_200E_202E_200F_202D_200B_206C_202B_206B_206F_202A_200B_200B_202C_206E_200B_202B_206E_202C_200E_206C_200F_206F_200B_202D_206C_206F_206B_200E_202D_202A_206D_200B_206E_200C_202E_202E_202A_206E_202E(_clientState) == 1052) ? 119738158 : 119738112); - break; - case 53: - num5 = _200C_200B_202E_200D_206A_206D_206E_202C_200B_206E_200C_200E_202A_200C_202C_202C_206B_206F_206D_206B_206F_202E_206F_206A_200E_206A_202D_206B_206E_200F_206C_206F_200F_206B_206E_206C_200C_202E_202E_206D_202E(ptr->AnimationLock, (ptr->CastTimeElapsed > 0f) ? (ptr->CastTimeTotal - ptr->CastTimeElapsed) : 0f); - num = ((!(num5 > 0f)) ? 119738168 : 119738132); - break; - case 31: - num = ((!_206F_202B_202C_206E_206C_200C_206E_206C_206A_206C_200D_202C_202E_202D_200F_200B_206A_206C_202D_202E_202D_206A_202A_202C_202E_200C_206F_206F_202B_206F_200F_202E_206E_202A_202B_206A_206E_200E_200C_206B_202E(_condition, ConditionFlag.Unconscious)) ? 119738163 : 119738141); - break; - case 3: - num = ((!_206F_202B_202C_206E_206C_200C_206E_206C_206A_206C_200D_202C_202E_202D_200F_200B_206A_206C_202D_202E_202D_206A_202A_202C_202E_200C_206F_206F_202B_206F_200F_202E_206E_202A_202B_206A_206E_200E_200C_206B_202E(_condition, ConditionFlag.SufferingStatusAffliction63)) ? 119738112 : 119738164); - break; - case 55: - num = ((!IsRunning) ? 119738172 : 119738161); - break; - case 40: - _escPressCount = 0; - num = 119738159; - break; - case 15: - num = (IsRunning ? 119738123 : 119738135); - break; - case 48: - num = ((AutomationType != EAutomationType.Manual) ? 119738161 : 119738153); - break; } } + if ((AutomationType == EAutomationType.Manual && !IsRunning) || !_configuration.Stop.Enabled || !CheckStopConditions(BuildEvaluationContext())) + { + UpdateCurrentTask(); + } } - [MethodImpl(MethodImplOptions.NoInlining)] private void UpdateCurrentQuest() { DebugState = null; - int num = (_200C_206C_202D_202B_200C_202B_206D_202A_206E_206D_202E_202D_200D_202C_200F_202B_200B_206F_200D_206E_206D_202D_206E_206A_206B_200C_200E_200E_206F_200E_200B_206B_200D_202E_200B_200E_206C_202E_200D_206D_202E(_clientState) ? 500553962 : 500553939); - QuestProgress questProgress = default(QuestProgress); - long num5 = default(long); - QuestProgress questProgress2 = default(QuestProgress); - ElementId id = default(ElementId); - QuestResolution resolution = default(QuestResolution); - QuestSequence questSequence = default(QuestSequence); - byte b = default(byte); - QuestSequence questSequence2 = default(QuestSequence); - int num6 = default(int); - bool flag = default(bool); - while (true) + if (!_clientState.IsLoggedIn) { - int num2 = num; - int num3 = 500553971; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + ResetInternalState(); + DebugState = "Not logged in"; + return; + } + if (_runningDebugTasks) + { + if (!_taskQueue.AllTasksComplete) { - default: - continue; - case 16: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler4 = new DefaultInterpolatedStringHandler(17, 1); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-431495923)); - defaultInterpolatedStringHandler4.AppendFormatted(_pendingQuest.Quest.Id); - DebugState = defaultInterpolatedStringHandler4.ToStringAndClear(); + DebugState = "Running debug tasks"; return; } - case 36: - _200F_206F_202B_206C_202D_202A_202A_200B_206F_206F_206C_206F_202C_206C_206E_200F_202A_202E_202B_202B_206E_206C_206A_202A_200E_202A_206B_206A_206E_202C_200C_206B_200D_200B_200C_202E_200F_200C_206A_206A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(876494549), Array.Empty<object>()); - return; - case 77: + _runningDebugTasks = false; + } + if (_resumeAfterSideTasks) + { + if (!_taskQueue.AllTasksComplete) { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(19, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1974788457)); - defaultInterpolatedStringHandler.AppendFormatted(questProgress.Sequence); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1164901664)); - DebugState = defaultInterpolatedStringHandler.ToStringAndClear(); - Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-566770488)); + DebugState = "Running side tasks (e.g. repair)"; return; } - case 9: - num5 = _200F_202C_206D_200F_200D_206C_206B_200E_202D_202E_206E_206B_202C_200C_202E_202B_200E_202A_202D_200F_202E_206B_206A_206A_200B_202D_202E_200C_206D_202D_200B_202A_206E_206D_202E_200C_206F_200B_200F_206B_202E() - CurrentQuest.StepProgress.StartedAt; - num = ((num5 <= 3000) ? 500553927 : 500553952); - continue; - case 68: - questProgress2 = _gatheringQuest; - num = 500553948; - continue; - case 39: - id = _nextQuest.Quest.Id; - _200B_202C_206A_200E_202B_206A_202B_206D_206A_202D_200C_200D_202D_200F_206B_206C_206B_206B_202C_202B_200D_202E_202C_206F_206C_202E_206C_202D_202A_200D_202E_200B_206B_200C_206E_200F_202D_206F_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1114857583), new object[1] { id }); - num = ((AutomationType != EAutomationType.SingleQuestA) ? 500553896 : 500553906); - continue; - case 30: - num = ((!_configuration.General.ClearPriorityQuestsOnCompletion) ? 500553917 : 500553919); - continue; - case 34: - num = ((resolution.Type != EQuestResolutionType.GatheringQuest) ? 500553947 : 500553928); - continue; - case 23: - num = 500553914; - continue; - case 85: - num = ((!_taskQueue.AllTasksComplete) ? 500553982 : 500553961); - continue; - case 94: - num = (_taskQueue.AllTasksComplete ? 500553972 : 500553977); - continue; - case 26: - _200B_202C_206A_200E_202B_206A_202B_206D_206A_202D_200C_200D_202D_200F_206B_206C_206B_206B_202C_202B_200D_202E_202C_206F_206C_202E_206C_202D_202A_200D_202E_200B_206B_200C_206E_200F_202D_206F_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(345467355), new object[2] { resolution.LevelingTargetLevel, resolution.LevelingQuestName }); - EnqueueLevelingTasks(resolution.LevelingTargetLevel, resolution.LevelingQuestName); - num = 500553982; - continue; - case 10: - DebugState = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(986870335); - return; - case 71: - num = ((!_taskQueue.AllTasksComplete) ? 500553947 : 500553904); - continue; - case 49: - DebugState = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1139429695); - Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-95366062)); - return; - case 5: - num = ((_nextQuest.Step != 0) ? 500553937 : 500553958); - continue; - case 6: - num = ((_206B_200F_202A_202A_200D_200E_202E_202C_202C_206F_206E_206D_206C_206D_202E_202A_200F_206D_206C_200F_206E_202B_206E_202E_200D_206F_206D_202D_202D_202A_200B_202E_206C_202C_202D_200E_206E_200E_206A_206B_202E(questSequence).Count <= 0) ? 500553927 : 500553891); - continue; - case 42: - DebugState = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(107162773); - return; - case 44: - num = ((!_resumeAfterSideTasks) ? 500553965 : 500553901); - continue; - case 57: - _200F_206F_202B_206C_202D_202A_202A_200B_206F_206F_206C_206F_202C_206C_206E_200F_202A_202E_202B_202B_206E_206C_206A_202A_200E_202A_206B_206A_206E_202C_200C_206B_200D_200B_200C_202E_200F_200C_206A_206A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1073205601), Array.Empty<object>()); - return; - case 69: - num = ((!IsLevelingModeActive()) ? 500553931 : 500553969); - continue; - case 58: - DebugState = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(480693288); - Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1459557493)); - return; - case 3: + _resumeAfterSideTasks = false; + CheckNextTasks("Resume step after side tasks"); + return; + } + if (_configuration.General.ClearPriorityQuestsOnCompletion && ManualPriorityQuests.Count > 0) + { + int num = ManualPriorityQuests.RemoveAll((Quest q) => _questFunctions.IsQuestComplete(q.Id) && !_questFunctions.IsQuestAccepted(q.Id)); + if (num > 0) { - questProgress.SetSequence(b); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(13, 1); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-785106425)); - defaultInterpolatedStringHandler3.AppendFormatted(questProgress == _startedQuest); - CheckNextTasks(defaultInterpolatedStringHandler3.ToStringAndClear()); + _logger.LogDebug("Removed {Count} completed priority {QuestWord}", num, (num == 1) ? "quest" : "quests"); + } + } + if (_pendingQuest != null) + { + if (!_questFunctions.IsQuestAccepted(_pendingQuest.Quest.Id)) + { + DebugState = $"Waiting for Leve {_pendingQuest.Quest.Id}"; return; } - case 54: - num = ((resolution.MsqState != MainScenarioQuestState.Unavailable) ? 500553963 : 500553930); - continue; - case 17: - num = ((CurrentQuest == null) ? 500553927 : 500553978); - continue; - case 24: - num = ((resolution.MsqState != MainScenarioQuestState.LoadingScreen) ? 500553938 : 500553943); - continue; - case 60: - num = ((resolution.Type != EQuestResolutionType.NoQuest) ? 500553959 : 500553895); - continue; - case 70: - return; - case 48: - CheckNextTasks(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(53047503)); - num = 500553979; - continue; - case 55: - num = ((!_gameFunctions.IsOccupied()) ? 500553936 : 500553950); - continue; - case 20: + _startedQuest = _pendingQuest; + _pendingQuest = null; + OnQuestAccepted(_startedQuest.Quest.Id); + if (AutomationType == EAutomationType.Manual) { - (QuestProgress?, byte) tuple = HandleGameStateTransition(resolution); - questProgress = tuple.Item1; - b = tuple.Item2; - num = ((questProgress != null) ? 500553947 : 500553909); - continue; + return; } - case 74: - num = ((_200F_202C_206D_200F_200D_206C_206B_200E_202D_202E_206E_206B_202C_200C_202E_202B_200E_202A_202D_200F_202E_206B_206A_206A_200B_202D_202E_200C_206D_202D_200B_202A_206E_206D_202E_200C_206F_200B_200F_206B_202E() >= _safeAnimationEnd) ? 500553941 : 500553933); - continue; - case 2: - DebugState = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(175297337); - return; - case 86: - num = ((_nextQuest == null) ? 500553900 : 500553889); - continue; - case 81: - num = ((questProgress.Step != 255) ? 500553924 : 500553907); - continue; - case 28: - DebugState = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(985351839); - return; - case 95: - resolution = _priorityResolver.Resolve(new QuestSlots(_simulatedQuest, _nextQuest, _gatheringQuest, ManualPriorityQuests, AutomationType)); - b = resolution.Sequence; - num = ((!resolution.IsSlotBased) ? 500553905 : 500553946); - continue; - case 84: - num = ((!IsLevelingModeActive()) ? 500553957 : 500553902); - continue; - case 32: - ResetInternalState(); - DebugState = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-148758110); - return; - case 80: - CurrentQuest.SetStep(_206B_200F_202A_202A_200D_200E_202E_202C_202C_206F_206E_206D_206C_206D_202E_202A_200F_206D_206C_200F_206E_202B_206E_202E_200D_206F_206D_202D_202D_202A_200B_202E_206C_202C_202D_200E_206E_200E_206A_206B_202E(questSequence).Count - 1); - CheckNextTasks(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1012011183)); - num = 500553927; - continue; - case 29: - goto IL_0812; - case 82: - num = ((!_nextQuest.Quest.Info.IsRepeatable) ? 500553926 : 500553942); - continue; - case 65: + CheckNextTasks("Pending quest accepted"); + } + if (_simulatedQuest == null && _nextQuest != null && !((!_nextQuest.Quest.Info.IsRepeatable) ? (!_questFunctions.IsQuestAcceptedOrComplete(_nextQuest.Quest.Id)) : (!_questFunctions.IsQuestAccepted(_nextQuest.Quest.Id)))) + { + ElementId id = _nextQuest.Quest.Id; + _logger.LogInformation("Next quest {QuestId} accepted or completed", id); + if (AutomationType == EAutomationType.SingleQuestA) + { _startedQuest = _nextQuest; AutomationType = EAutomationType.SingleQuestB; - num = 500553896; - continue; - case 41: - switch (resolution.Type) - { - case EQuestResolutionType.GatheringQuest: - break; - case EQuestResolutionType.NextQuest: - goto IL_0812; - default: - goto IL_0893; - case EQuestResolutionType.Simulated: - goto end_IL_0045; - } - goto case 68; - case 7: - _resumeAfterSideTasks = false; - CheckNextTasks(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(892046062)); - return; - case 33: - _200B_202C_206A_200E_202B_206A_202B_206D_206A_202D_200C_200D_202D_200F_206B_206C_206B_206B_202C_202B_200D_202E_202C_206F_206C_202E_206C_202D_202A_200D_202E_200B_206B_200C_206E_200F_202D_206F_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1491984430), new object[1] { resolution.DebugReason }); - _startedQuest = null; - Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1340199486)); - num = 500553929; - continue; - case 62: - DebugState = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1954349361); - return; - case 47: - questProgress = questProgress2; - num = ((resolution.Type != EQuestResolutionType.NextQuest) ? 500553937 : 500553964); - continue; - case 13: - return; - case 52: - return; - case 76: - num = ((ManualPriorityQuests.Count <= 0) ? 500553917 : 500553916); - continue; - case 43: - ExecuteNextStep(); - num = 500553947; - continue; - case 4: - num = ((_206B_200F_202A_202A_200D_200E_202E_202C_202C_206F_206E_206D_206C_206D_202E_202A_200F_206D_206C_200F_206E_202B_206E_202E_200D_206F_206D_202D_202D_202A_200B_202E_206C_202C_202D_200E_206E_200E_206A_206B_202E(questSequence2).Count <= 0) ? 500553934 : 500553953); - continue; - case 72: - num = ((questProgress.Sequence == b) ? 500553890 : 500553968); - continue; - case 87: - _startedQuest = _pendingQuest; - _pendingQuest = null; - OnQuestAccepted(_startedQuest.Quest.Id); - num = ((AutomationType != EAutomationType.Manual) ? 500553923 : 500553960); - continue; - case 90: - _runningDebugTasks = false; - num = 500553951; - continue; - case 11: - DebugState = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1546358832); - return; - case 88: - num = ((AutomationType != EAutomationType.Automatic) ? 500553937 : 500553944); - continue; - case 91: - _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1755037908), new object[1] { _startedQuest?.Quest.Id }); - _nextQuest = null; - OnQuestAccepted(id); - num = ((AutomationType != EAutomationType.Manual) ? 500553900 : 500553920); - continue; - case 31: - num = ((!_questFunctions.IsReadyToAcceptQuest(_nextQuest.Quest.Id)) ? 500553937 : 500553974); - continue; - case 63: - num = (_taskQueue.AllTasksComplete ? 500553897 : 500553976); - continue; - case 1: - ExecuteNextStep(); - num = 500553947; - continue; - case 93: - DebugState = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(985351839); - return; - case 18: - num = ((questProgress.Step < _206B_200F_202A_202A_200D_200E_202E_202C_202C_206F_206E_206D_206C_206D_202E_202A_200F_206D_206C_200F_206E_202B_206E_202E_200D_206F_206D_202D_202D_202A_200B_202E_206C_202C_202D_200E_206E_200E_206A_206B_202E(questSequence2).Count) ? 500553934 : 500553922); - continue; - case 79: - num6 = ManualPriorityQuests.RemoveAll(delegate(Questionable.Model.Quest q) - { - int num7 = ((!_questFunctions.IsQuestComplete(q.Id)) ? (-617280555) : (-617280556)); - while (true) - { - int num8 = num7; - int num9 = -617280555; - int num10 = num8; - switch ((num10 | num9) - (num10 & num9)) - { - case 2: - goto IL_0051; - case 1: - return !_questFunctions.IsQuestAccepted(q.Id); - case 0: - return false; - } - continue; - IL_0051: - num7 = -617280556; - } - }); - num = ((num6 <= 0) ? 500553917 : 500553981); - continue; - case 83: - DebugState = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1635772020); - return; - case 8: - num = ((_simulatedQuest != null) ? 500553900 : 500553893); - continue; - case 22: - num = ((_startedQuest == null) ? 500553929 : 500553925); - continue; - case 0: - DebugState = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(232950675); - return; - case 78: - num = ((_pendingQuest == null) ? 500553979 : 500553912); - continue; - case 21: - num = ((!_taskQueue.AllTasksComplete) ? 500553937 : 500553899); - continue; - case 14: - _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(123159112), new object[2] - { - num6, - (num6 == 1) ? global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2004137011) : global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1391970161) - }); - num = 500553917; - continue; - case 27: - return; - case 67: - num = ((AutomationType != EAutomationType.Automatic) ? 500553947 : 500553970); - continue; - case 56: - DebugState = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1681077109); - Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(291364474)); - return; - case 75: - num = (_questFunctions.IsQuestAccepted(_pendingQuest.Quest.Id) ? 500553892 : 500553955); - continue; - case 64: + } + _logger.LogDebug("Started: {StartedQuest}", _startedQuest?.Quest.Id); + _nextQuest = null; + OnQuestAccepted(id); + if (AutomationType == EAutomationType.Manual) { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(39, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1214957768)); - defaultInterpolatedStringHandler2.AppendFormatted(questProgress.Sequence); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - DebugState = defaultInterpolatedStringHandler2.ToStringAndClear(); - num = (_taskQueue.AllTasksComplete ? 500553954 : 500553903); - continue; + return; } - case 40: - num = ((questProgress != null) ? 500553915 : 500553910); - continue; - case 66: - num = ((resolution.Type != EQuestResolutionType.LevelingMode) ? 500553935 : 500553983); - continue; - case 73: - questProgress2 = null; - num = 500553948; - continue; - case 15: - num = 500553939; - continue; - case 51: - return; - case 12: - num = ((!IsLevelingModeActive()) ? 500553894 : 500553967); - continue; - case 59: - num = ((_gatheringQuest.Step != 0) ? 500553947 : 500553908); - continue; - case 38: - questSequence2 = questProgress.Quest.FindSequence(questProgress.Sequence); - num = ((questSequence2 != null) ? 500553975 : 500553918); - continue; - case 92: - DebugState = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(840560323); - return; - case 25: - num = ((!_runningDebugTasks) ? 500553951 : 500553932); - continue; - case 61: - DebugState = null; - return; - case 45: - num = (_gameFunctions.IsOccupiedWithCustomDeliveryNpc(questProgress.Quest) ? 500553936 : 500553971); - continue; - case 50: - num = ((!_movementController.IsPathRunning) ? 500553913 : 500553888); - continue; - case 19: - _200F_206F_202B_206C_202D_202A_202A_200B_206F_206F_206C_206F_202C_206C_206E_200F_202A_202E_202B_202B_206E_206C_206A_202A_200E_202A_206B_206A_206E_202C_200C_206B_200D_200B_200C_202E_200F_200C_206A_206A_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(131538696), new object[3] + } + QuestResolution resolution = _priorityResolver.Resolve(new QuestSlots(_simulatedQuest, _nextQuest, ManualPriorityQuests, AutomationType)); + byte b = resolution.Sequence; + QuestProgress questProgress; + if (resolution.IsSlotBased) + { + questProgress = resolution.Type switch + { + EQuestResolutionType.Simulated => _simulatedQuest, + EQuestResolutionType.NextQuest => _nextQuest, + _ => null, + }; + if (resolution.Type == EQuestResolutionType.NextQuest && _questFunctions.IsReadyToAcceptQuest(_nextQuest.Quest.Id) && _nextQuest.Step == 0 && _taskQueue.AllTasksComplete && AutomationType == EAutomationType.Automatic) + { + ExecuteNextStep(); + } + } + else + { + if (resolution.Type == EQuestResolutionType.LevelingMode) + { + if (IsLevelingModeActive()) { - (float)num5 / 1000f, - questProgress.Quest.Id, - questProgress.Sequence - }); - questSequence = questProgress.Quest.FindSequence(questProgress.Sequence); - num = ((questSequence == null) ? 500553927 : 500553973); - continue; - case 89: - num = (flag ? 500553900 : 500553940); - continue; - case 35: - num = ((!_movementController.IsPathfinding) ? 500553921 : 500553945); - continue; - case 37: - flag = !_questFunctions.IsQuestAccepted(_nextQuest.Quest.Id); - num = 500553898; - continue; - case 53: - flag = !_questFunctions.IsQuestAcceptedOrComplete(_nextQuest.Quest.Id); - num = 500553898; - continue; - case 46: - break; - IL_0893: - num = 500553956; - continue; - IL_0812: - questProgress2 = _nextQuest; - num = 500553948; - continue; - end_IL_0045: - break; + DebugState = "Leveling mode active"; + } + else if (_taskQueue.AllTasksComplete) + { + _logger.LogInformation("Starting AutoDuty Leveling mode for level {RequiredLevel} (quest: {QuestName})", resolution.LevelingTargetLevel, resolution.LevelingQuestName); + EnqueueLevelingTasks(resolution.LevelingTargetLevel, resolution.LevelingQuestName); + } + return; + } + if (resolution.Type == EQuestResolutionType.NoQuest) + { + if (IsLevelingModeActive()) + { + DebugState = "Leveling mode active"; + return; + } + if (_startedQuest != null) + { + if (resolution.MsqState == MainScenarioQuestState.Unavailable) + { + _logger.LogWarning("MSQ information not available, doing nothing"); + return; + } + if (resolution.MsqState == MainScenarioQuestState.LoadingScreen) + { + _logger.LogWarning("On loading screen, no MSQ - doing nothing"); + return; + } + _logger.LogInformation("No current quest, resetting data (resolution: {Reason})", resolution.DebugReason); + _startedQuest = null; + Stop("Resetting current quest"); + } + DebugState = "No quest active"; + Stop("No quest active"); + return; + } + (questProgress, b) = HandleGameStateTransition(resolution); + if (questProgress == null) + { + return; + } + } + if (questProgress == null) + { + if (IsLevelingModeActive()) + { + DebugState = "Leveling mode active"; + return; + } + DebugState = "No quest active"; + Stop("No quest active"); + } + else if (questProgress.Sequence != b) + { + questProgress.SetSequence(b); + CheckNextTasks($"New sequence {questProgress == _startedQuest}"); + } + else if (questProgress.Step == 255) + { + DebugState = $"Waiting for sequence update (current: {questProgress.Sequence})"; + if (!_taskQueue.AllTasksComplete) + { + DebugState = "Step 255 - processing interrupted tasks"; + } + else + { + if (CurrentQuest == null) + { + return; + } + long num2 = Environment.TickCount64 - CurrentQuest.StepProgress.StartedAt; + if (num2 > 3000) + { + _logger.LogWarning("Step 255 with no tasks for {WaitTime:F1}s, retrying step to ensure completion (quest: {QuestId}, sequence: {Sequence})", (float)num2 / 1000f, questProgress.Quest.Id, questProgress.Sequence); + QuestSequence questSequence = questProgress.Quest.FindSequence(questProgress.Sequence); + if (questSequence != null && questSequence.Steps.Count > 0) + { + CurrentQuest.SetStep(questSequence.Steps.Count - 1); + CheckNextTasks("Retry last step at 255"); + } + } + } + } + else if (_gameFunctions.IsOccupied()) + { + DebugState = "Occupied"; + } + else if (_movementController.IsPathfinding) + { + DebugState = "Pathfinding is running"; + } + else if (_movementController.IsPathRunning) + { + DebugState = "Path is running"; + } + else if (Environment.TickCount64 < _safeAnimationEnd) + { + DebugState = "Waiting for Animation"; + } + else + { + QuestSequence questSequence2 = questProgress.Quest.FindSequence(questProgress.Sequence); + if (questSequence2 == null) + { + DebugState = $"Sequence {questProgress.Sequence} not found"; + Stop("Unknown sequence"); + } + else if (questSequence2.Steps.Count > 0 && questProgress.Step >= questSequence2.Steps.Count) + { + DebugState = "Step not found"; + Stop("Unknown step"); + } + else + { + DebugState = null; } - questProgress2 = _simulatedQuest; - num = 500553948; } } - [MethodImpl(MethodImplOptions.NoInlining)] private (QuestProgress?, byte) HandleGameStateTransition(QuestResolution resolution) { ElementId questId = resolution.QuestId; byte sequence = resolution.Sequence; - int num = ((_startedQuest == null) ? (-1173757477) : (-1173757476)); - IPlayerCharacter localPlayer = default(IPlayerCharacter); - Questionable.Model.Quest quest = default(Questionable.Model.Quest); - EClassJob valueOrDefault = default(EClassJob); - uint? num5 = default(uint?); - while (true) + if (_startedQuest != null && _startedQuest.Quest.Id == questId) { - int num2 = num; - int num3 = -1173757479; - int num4 = num2; - EClassJob? obj; - EClassJob? eClassJob; - switch ((num4 | num3) - (num4 & num3)) - { - case 16: - obj = null; - goto IL_05e9; - case 20: - num = ((!CheckStopConditions(BuildEvaluationContext(_startedQuest.Quest.Id))) ? (-1173757499) : (-1173757497)); - break; - case 13: - localPlayer = LocalPlayer; - num = ((localPlayer == null) ? (-1173757483) : (-1173757494)); - break; - case 27: - return (null, 0); - case 25: - return (null, 0); - case 23: - num = ((!_priorityResolver.ShouldStartLevelingMode(_200C_206C_200D_202E_202B_206C_200B_202E_202E_206E_206F_202E_200F_202C_200F_200E_206B_206B_200E_202B_202A_202A_206C_200F_206A_206E_206B_206F_202E_206E_206A_206B_200E_202E_200C_200F_200C_200B_206E_202A_202E((ICharacter)localPlayer), AutomationType)) ? (-1173757480) : (-1173757500)); - break; - case 30: - _startedQuest = null; - return (null, 0); - case 31: - num = ((_startedQuest == null) ? (-1173757499) : (-1173757474)); - break; - case 11: - _200F_206F_202B_206C_202D_202A_202A_200B_206F_206F_206C_206F_202C_206C_206E_200F_202A_202E_202B_202B_206E_206C_206A_202A_200E_202A_206B_206A_206E_202C_200C_206B_200D_200B_200C_202E_200F_200C_206A_206A_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(602028547), Array.Empty<object>()); - _startedQuest = null; - Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1040882752)); - return (null, 0); - case 28: - num = ((!_questRegistry.TryGetQuest(questId, out quest)) ? (-1173757489) : (-1173757475)); - break; - case 0: - CheckNextTasks(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1782843254)); - return (null, 0); - case 14: - num = (quest.Info.ClassJobs.Contains(valueOrDefault) ? (-1173757485) : (-1173757496)); - break; - case 18: - return (null, 0); - case 15: - num = (_taskQueue.AllTasksComplete ? (-1173757498) : (-1173757492)); - break; - case 4: - { - _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1924633093), new object[2] - { - quest.Info.Name, - resolution.Type - }); - IPlayerCharacter? localPlayer2 = LocalPlayer; - num5 = ((localPlayer2 != null) ? new uint?(_206E_200C_200F_200B_202D_202C_200E_200E_206D_206B_206B_200E_206B_200D_200E_200E_200D_202B_206F_200B_202B_200B_206A_200D_200E_200E_206D_206D_206E_200B_206F_200C_206D_202E_200F_200F_200E_202C_202B_200D_202E((ICharacter)localPlayer2).RowId) : ((uint?)null)); - num = (num5.HasValue ? (-1173757503) : (-1173757495)); - break; - } - case 1: - _200B_202C_206A_200E_202B_206A_202B_206D_206A_202D_200C_200D_202D_200F_206B_206C_206B_206B_202C_202B_200D_202E_202C_206F_206C_202E_206C_202D_202A_200D_202E_200B_206B_200C_206E_200F_202D_206F_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(787738588), new object[2] - { - _200C_206C_200D_202E_202B_206C_200B_202E_202E_206E_206F_202E_200F_202C_200F_200E_206B_206B_200E_202B_202A_202A_206C_200F_206A_206E_206B_206F_202E_206E_206A_206B_200E_202E_200C_200F_200C_200B_206E_202A_202E((ICharacter)localPlayer), - quest.Info.Level - }); - Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-533650636)); - num = -1173757493; - break; - case 29: - _200B_202C_206A_200E_202B_206A_202B_206D_206A_202D_200C_200D_202D_200F_206B_206C_206B_206B_202C_202B_200D_202E_202C_206F_206C_202E_206C_202D_202A_200D_202E_200B_206B_200C_206E_200F_202D_206F_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-173068371), new object[2] - { - _200C_206C_200D_202E_202B_206C_200B_202E_202E_206E_206F_202E_200F_202C_200F_200E_206B_206B_200E_202B_202A_202A_206C_200F_206A_206E_206B_206F_202E_206E_206A_206B_200E_202E_200C_200F_200C_200B_206E_202A_202E((ICharacter)localPlayer), - quest.Info.Level - }); - ClearTasksInternal(); - EnqueueLevelingTasks(quest.Info.Level, quest.Info.Name); - num = -1173757493; - break; - case 2: - num = ((_startedQuest == null) ? (-1173757498) : (-1173757482)); - break; - case 19: - num = ((_200C_206C_200D_202E_202B_206C_200B_202E_202E_206E_206F_202E_200F_202C_200F_200E_206B_206B_200E_202B_202A_202A_206C_200F_206A_206E_206B_206F_202E_206E_206A_206B_200E_202E_200C_200F_200C_200B_206E_202A_202E((ICharacter)localPlayer) >= quest.Info.Level) ? (-1173757483) : (-1173757490)); - break; - case 22: - num = ((_startedQuest == null) ? (-1173757504) : (-1173757486)); - break; - case 26: - num = -1173757476; - break; - case 10: - _startedQuest = CreateQuestProgress(quest, sequence); - OnQuestAccepted(quest.Id); - num = ((AutomationType != EAutomationType.Manual) ? (-1173757484) : (-1173757502)); - break; - case 12: - num = ((AutomationType != EAutomationType.SingleQuestB) ? (-1173757479) : (-1173757488)); - break; - case 17: - _200F_206F_202B_206C_202D_202A_202A_200B_206F_206F_206C_206F_202C_206C_206E_200F_202A_202E_202B_202B_206E_206C_206A_202A_200E_202A_206B_206A_206E_202C_200C_206B_200D_200B_200C_202E_200F_200C_206A_206A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-992424436), new object[2] - { - quest.Info.Name, - _206F_200D_200C_206B_200F_206C_206A_200D_200D_200F_206F_206D_200D_200F_206E_206B_202C_202B_206B_206B_202E_200C_202B_202D_202E_200C_206E_200C_200F_206A_200E_200E_202A_202D_206B_206A_200F_202A_200E_206D_202E(valueOrDefault) - }); - Stop(_200D_200B_200C_200D_202C_200F_202C_202C_200E_200D_202B_200D_206A_202B_206F_202E_202A_202A_200E_206F_206B_202C_206E_206E_202E_200F_202A_206D_202B_206E_200E_200E_206C_206B_202B_200F_200C_200F_202A_202E_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1325975955), quest.Info.Name, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2120371242), _206F_200D_200C_206B_200F_206C_206A_200D_200D_200F_206F_206D_200D_200F_206E_206B_202C_202B_206B_206B_202E_200C_202B_202D_202E_200C_206E_200C_200F_206A_200E_200E_202A_202D_206B_206A_200F_202A_200E_206D_202E(valueOrDefault))); - return (null, 0); - case 8: - num = ((quest.Info.ClassJobs.Count <= 0) ? (-1173757485) : (-1173757481)); - break; - case 9: - _200B_202C_206A_200E_202B_206A_202B_206D_206A_202D_200C_200D_202D_200F_206B_206C_206B_206B_202C_202B_200D_202E_202C_206F_206C_202E_206C_202D_202A_200D_202E_200B_206B_200C_206E_200F_202D_206F_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1025428266), Array.Empty<object>()); - AutomationType = EAutomationType.Manual; - num = -1173757479; - break; - case 6: - num = (_questFunctions.IsQuestAccepted(_startedQuest.Quest.Id) ? (-1173757499) : (-1173757491)); - break; - case 24: - obj = (EClassJob)num5.GetValueOrDefault(); - goto IL_05e9; - case 7: - num = ((!_questFunctions.IsQuestComplete(_startedQuest.Quest.Id)) ? (-1173757499) : (-1173757473)); - break; - case 21: - return (_startedQuest, _startedQuest.Sequence); - case 5: - num = ((!_206F_202D_202C_200B_202C_202C_202A_206B_202B_200E_202B_206C_206D_206F_206F_200B_202B_200C_202E_206C_200B_206F_202D_200F_202C_202E_206D_206E_200E_206D_200D_206B_202C_206C_202E_200F_206D_202B_200B_200D_202E(_startedQuest.Quest.Id, questId)) ? (-1173757477) : (-1173757478)); - break; - case 3: - { - return (_startedQuest, sequence); - } - IL_05e9: - eClassJob = obj; - valueOrDefault = eClassJob.GetValueOrDefault(); - num = ((!_206C_206E_206A_200D_202A_206B_202E_202A_200E_200F_206A_202E_206A_206E_202D_206D_202B_202C_202A_202C_206E_206C_200E_200C_206C_202B_200F_202A_206B_202D_202E_200F_202D_200B_200C_202C_206A_206A_202C_206B_202E(valueOrDefault)) ? (-1173757485) : (-1173757487)); - break; - } + return (_startedQuest, sequence); } + if (_startedQuest != null && !_taskQueue.AllTasksComplete) + { + return (_startedQuest, _startedQuest.Sequence); + } + if (_startedQuest != null && _questFunctions.IsQuestComplete(_startedQuest.Quest.Id) && !_questFunctions.IsQuestAccepted(_startedQuest.Quest.Id) && CheckStopConditions(BuildEvaluationContext(_startedQuest.Quest.Id))) + { + _startedQuest = null; + return (null, 0); + } + if (_questRegistry.TryGetQuest(questId, out Quest quest)) + { + _logger.LogDebug("New quest: {QuestName} (via {ResolutionType})", quest.Info.Name, resolution.Type); + EClassJob valueOrDefault = ((EClassJob?)LocalPlayer?.ClassJob.RowId).GetValueOrDefault(); + if (valueOrDefault.IsLimitedJob() && quest.Info.ClassJobs.Count > 0 && !quest.Info.ClassJobs.Contains(valueOrDefault)) + { + _logger.LogWarning("Quest {QuestName} does not allow limited job {Job}, stopping", quest.Info.Name, valueOrDefault.ToFriendlyString()); + Stop("Quest '" + quest.Info.Name + "' cannot be progressed on " + valueOrDefault.ToFriendlyString()); + return (null, 0); + } + _startedQuest = CreateQuestProgress(quest, sequence); + OnQuestAccepted(quest.Id); + if (AutomationType == EAutomationType.Manual) + { + return (null, 0); + } + IPlayerCharacter localPlayer = LocalPlayer; + if (localPlayer != null && localPlayer.Level < quest.Info.Level) + { + if (_priorityResolver.ShouldStartLevelingMode(localPlayer.Level, AutomationType)) + { + _logger.LogInformation("Player level ({PlayerLevel}) < quest level ({QuestLevel}), starting AutoDuty Leveling mode", localPlayer.Level, quest.Info.Level); + ClearTasksInternal(); + EnqueueLevelingTasks(quest.Info.Level, quest.Info.Name); + } + else + { + _logger.LogInformation("Stopping automation, player level ({PlayerLevel}) < quest level ({QuestLevel})", localPlayer.Level, quest.Info.Level); + Stop("Quest level too high"); + } + return (null, 0); + } + if (AutomationType == EAutomationType.SingleQuestB) + { + _logger.LogInformation("Single quest is finished"); + AutomationType = EAutomationType.Manual; + } + CheckNextTasks("Different Quest"); + return (null, 0); + } + if (_startedQuest != null) + { + _logger.LogWarning("No active quest anymore? Not sure what happened..."); + _startedQuest = null; + Stop("No active Quest"); + return (null, 0); + } + return (null, 0); } private bool IsLevelingModeActive() { ITask task = _taskQueue.CurrentTaskExecutor?.CurrentTask; - int num = ((task is Duty.StartLevelingModeTask) ? (-1819957801) : (-1819957805)); - bool flag = default(bool); - while (true) + if ((!(task is Duty.StartLevelingModeTask) && !(task is Duty.WaitLevelingModeTask)) || 1 == 0) { - int num2 = num; - int num3 = -1819957803; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return _taskQueue.HasLevelingTasks; - case 4: - flag = false; - num = -1819957803; - break; - case 2: - flag = true; - num = -1819957803; - break; - case 5: - return true; - case 3: - num = -1819957805; - break; - case 0: - num = (flag ? (-1819957808) : (-1819957804)); - break; - case 6: - num = ((!(task is Duty.WaitLevelingModeTask)) ? (-1819957807) : (-1819957801)); - break; - } + return _taskQueue.HasLevelingTasks; } + return true; } private void EnqueueLevelingTasks(int targetLevel, string? questName) @@ -1596,290 +788,110 @@ internal sealed class QuestController : MiniTaskController<QuestController> public (QuestSequence? Sequence, QuestStep? Step, bool createTasks) GetNextStep() { - int num = ((CurrentQuest != null) ? 1297799609 : 1297799614); - QuestSequence questSequence = default(QuestSequence); - while (true) + if (CurrentQuest == null) { - int num2 = num; - int num3 = 1297799610; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - return (Sequence: null, Step: null, createTasks: true); - case 3: - questSequence = CurrentQuest.Quest.FindSequence(CurrentQuest.Sequence); - num = ((questSequence != null) ? 1297799611 : 1297799615); - break; - case 1: - num = ((_206B_200F_202A_202A_200D_200E_202E_202C_202C_206F_206E_206D_206C_206D_202E_202A_200F_206D_206C_200F_206E_202B_206E_202E_200D_206F_206D_202D_202D_202A_200B_202E_206C_202C_202D_200E_206E_200E_206A_206B_202E(questSequence).Count != 0) ? 1297799613 : 1297799612); - break; - case 2: - num = 1297799614; - break; - case 4: - return (Sequence: null, Step: null, createTasks: false); - case 6: - return (Sequence: questSequence, Step: null, createTasks: true); - case 0: - return (Sequence: questSequence, Step: _206B_200F_202A_202A_200D_200E_202E_202C_202C_206F_206E_206D_206C_206D_202E_202A_200F_206D_206C_200F_206E_202B_206E_202E_200D_206F_206D_202D_202D_202A_200B_202E_206C_202C_202D_200E_206E_200E_206A_206B_202E(questSequence)[CurrentQuest.Step], createTasks: true); - case 7: - num = ((CurrentQuest.Step < _206B_200F_202A_202A_200D_200E_202E_202C_202C_206F_206E_206D_206C_206D_202E_202A_200F_206D_206C_200F_206E_202B_206E_202E_200D_206F_206D_202D_202D_202A_200B_202E_206C_202C_202D_200E_206E_200E_206A_206B_202E(questSequence).Count) ? 1297799610 : 1297799602); - break; - case 8: - return (Sequence: null, Step: null, createTasks: false); - } + return (Sequence: null, Step: null, createTasks: false); } + QuestSequence questSequence = CurrentQuest.Quest.FindSequence(CurrentQuest.Sequence); + if (questSequence == null) + { + return (Sequence: null, Step: null, createTasks: true); + } + if (questSequence.Steps.Count == 0) + { + return (Sequence: questSequence, Step: null, createTasks: true); + } + if (CurrentQuest.Step >= questSequence.Steps.Count) + { + return (Sequence: null, Step: null, createTasks: false); + } + return (Sequence: questSequence, Step: questSequence.Steps[CurrentQuest.Step], createTasks: true); } - [MethodImpl(MethodImplOptions.NoInlining)] public void IncreaseStepCount(ElementId? questId, int? sequence, bool shouldContinue = false) { - (QuestSequence? Sequence, QuestStep? Step, bool createTasks) nextStep = GetNextStep(); - QuestSequence item = nextStep.Sequence; - QuestStep item2 = nextStep.Step; - int num = ((CurrentQuest == null) ? 291013817 : 291013812); - QuestResolution questResolution = default(QuestResolution); - while (true) + var (questSequence, questStep, _) = GetNextStep(); + if (CurrentQuest == null || questSequence == null || questStep == null) { - int num2 = num; - int num3 = 291013821; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _logger.LogWarning("Unable to retrieve next quest step, not increasing step count"); + return; + } + if (questId != null && CurrentQuest.Quest.Id != questId) + { + _logger.LogWarning("Ignoring 'increase step count' for different quest (expected {ExpectedQuestId}, but we are at {CurrentQuestId}", questId, CurrentQuest.Quest.Id); + return; + } + if (sequence.HasValue && questSequence.Sequence != sequence.Value) + { + _logger.LogWarning("Ignoring 'increase step count' for different sequence (expected {ExpectedSequence}, but we are at {CurrentSequence}", sequence, questSequence.Sequence); + return; + } + _logger.LogDebug("Increasing step count from {CurrentValue}", CurrentQuest.Step); + bool num = CurrentQuest.Step + 1 >= questSequence.Steps.Count; + if (num) + { + CurrentQuest.SetStep(255); + } + else + { + CurrentQuest.SetStep(CurrentQuest.Step + 1); + } + if (num) + { + _logger.LogDebug("Completed last step in sequence, waiting for game to update sequence"); + return; + } + using (_logger.BeginScope("IncStepCt")) + { + if (shouldContinue && AutomationType != EAutomationType.Manual) { - case 8: - _200F_206F_202B_206C_202D_202A_202A_200B_206F_206F_206C_206F_202C_206C_206E_200F_202A_202E_202B_202B_206E_206C_206A_202A_200E_202A_206B_206A_206E_202C_200C_206B_200D_200B_200C_202E_200F_200C_206A_206A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(909006406), new object[2] + QuestResolution questResolution = _priorityResolver.Resolve(new QuestSlots(_simulatedQuest, _nextQuest, ManualPriorityQuests, AutomationType)); + if (questResolution.HasQuest && questResolution.QuestId != CurrentQuest.Quest.Id) { - questId, - CurrentQuest.Quest.Id - }); - return; - case 1: - num = ((!_206B_202D_202B_202D_206D_206E_200E_202D_206A_200C_200B_200F_200B_206C_202C_206A_206C_206D_206A_202D_206D_200D_200E_206D_200E_202B_202E_200D_206E_200E_202A_206D_202B_206B_202A_206D_200E_206B_202C_206D_202E(CurrentQuest.Quest.Id, questId)) ? 291013818 : 291013813); - break; - case 11: - _200F_206F_202B_206C_202D_202A_202A_200B_206F_206F_206C_206F_202C_206C_206E_200F_202A_202E_202B_202B_206E_206C_206A_202A_200E_202A_206B_206A_206E_202C_200C_206B_200D_200B_200C_202E_200F_200C_206A_206A_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1685596718), new object[2] - { - sequence, - _200F_206E_200C_202B_206B_202C_202C_200B_200F_202C_202A_200F_206F_200B_200F_206D_206E_200B_200C_206A_200B_206A_200C_200E_202C_200E_200D_202D_206F_202B_206C_200B_206B_206F_202D_200C_202C_206E_202A_200D_202E(item) - }); - return; - case 3: - _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-290648518), Array.Empty<object>()); - return; - case 2: - num = ((_200F_206E_200C_202B_206B_202C_202C_200B_200F_202C_202A_200F_206F_200B_200F_206D_206E_200B_200C_206A_200B_206A_200C_200E_202C_200E_200D_202D_206F_202B_206C_200B_206B_206F_202D_200C_202C_206E_202A_200D_202E(item) == sequence.Value) ? 291013821 : 291013814); - break; - case 9: - num = ((item == null) ? 291013817 : 291013816); - break; - case 4: - _200F_206F_202B_206C_202D_202A_202A_200B_206F_206F_206C_206F_202C_206C_206E_200F_202A_202E_202B_202B_206E_206C_206A_202A_200E_202A_206B_206A_206E_202C_200C_206B_200D_200B_200C_202E_200F_200C_206A_206A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-500810797), Array.Empty<object>()); - return; - case 6: - num = ((!_206B_202D_202B_202D_206D_206E_200E_202D_206A_200C_200B_200F_200B_206C_202C_206A_206C_206D_206A_202D_206D_200D_200E_206D_200E_202B_202E_200D_206E_200E_202A_206D_202B_206B_202A_206D_200E_206B_202C_206D_202E(questId, (ElementId)null)) ? 291013818 : 291013820); - break; - case 0: - { - _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(154674055), new object[1] { CurrentQuest.Step }); - bool num11 = CurrentQuest.Step + 1 >= _206B_200F_202A_202A_200D_200E_202E_202C_202C_206F_206E_206D_206C_206D_202E_202A_200F_206D_206C_200F_206E_202B_206E_202E_200D_206F_206D_202D_202D_202A_200B_202E_206C_202C_202D_200E_206E_200E_206A_206B_202E(item).Count; - if (num11) - { - CurrentQuest.SetStep(255); + _logger.LogDebug("Deferring next step: resolver selected {ResolvedQuest} over current {CurrentQuest}", questResolution.QuestId, CurrentQuest.Quest.Id); } else { - CurrentQuest.SetStep(CurrentQuest.Step + 1); + ExecuteNextStep(); } - num = ((!num11) ? 291013809 : 291013822); - break; - } - case 5: - num = ((item2 != null) ? 291013819 : 291013817); - break; - case 10: - num = 291013812; - break; - case 7: - num = ((!sequence.HasValue) ? 291013821 : 291013823); - break; - case 12: - { - IDisposable disposable = _logger.BeginScope(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(432746736)); - try - { - num = ((!shouldContinue) ? 1479782828 : 1479782830); - while (true) - { - int num5 = num; - num3 = 1479782831; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 6: - num = ((!_206B_202D_202B_202D_206D_206E_200E_202D_206A_200C_200B_200F_200B_206C_202C_206A_206C_206D_206A_202D_206D_200D_200E_206D_200E_202B_202E_200D_206E_200E_202A_206D_202B_206B_202A_206D_200E_206B_202C_206D_202E(questResolution.QuestId, CurrentQuest.Quest.Id)) ? 1479782827 : 1479782826); - break; - case 2: - questResolution = _priorityResolver.Resolve(new QuestSlots(_simulatedQuest, _nextQuest, _gatheringQuest, ManualPriorityQuests, AutomationType)); - num = ((!questResolution.HasQuest) ? 1479782827 : 1479782825); - break; - case 1: - num = ((AutomationType == EAutomationType.Manual) ? 1479782828 : 1479782829); - break; - case 4: - ExecuteNextStep(); - num = 1479782828; - break; - case 0: - num = 1479782830; - break; - case 5: - _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1320658835), new object[2] - { - questResolution.QuestId, - CurrentQuest.Quest.Id - }); - return; - case 3: - return; - } - } - } - finally - { - num = ((disposable == null) ? 772084078 : 772084079); - while (true) - { - int num8 = num; - num3 = 772084078; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 2: - num = 772084079; - break; - case 1: - _202D_202E_200E_202A_202D_206D_202C_202B_202C_202D_206C_206A_200F_202E_200F_206A_202B_202A_200D_206D_206B_202E_206E_206D_206F_206A_200C_200B_206B_200C_200E_206D_202D_200D_200C_206A_202E_200F_202D_202E_202E(disposable); - num = 772084078; - break; - case 0: - goto end_IL_0459; - } - continue; - end_IL_0459: - break; - } - } - } } } } - [MethodImpl(MethodImplOptions.NoInlining)] private void ClearTasksInternal() { _runningDebugTasks = false; _reRouteService.ClearDestination(); - IStoppableTaskExecutor stoppableTaskExecutor = _taskQueue.CurrentTaskExecutor as IStoppableTaskExecutor; - int num = ((stoppableTaskExecutor == null) ? 201405430 : 201405429); - while (true) + if (_taskQueue.CurrentTaskExecutor is IStoppableTaskExecutor stoppableTaskExecutor) { - int num2 = num; - int num3 = 201405431; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _taskQueue.Reset(); - _combatController.Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1937637066)); - _wrathComboModule.Stop(); - _rsrModule.Stop(); - _bossModIpc.DisableQuestBattleAi(); - _gatheringController.Stop(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(986002832)); - _fateController.Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-422596647)); - _seasonalDutyController.Stop(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(986002832)); - return; - case 2: - stoppableTaskExecutor.StopNow(); - num = 201405430; - break; - case 0: - num = 201405429; - break; - } + stoppableTaskExecutor.StopNow(); } + _taskQueue.Reset(); + _combatController.Stop("ClearTasksInternal"); + _wrathComboModule.Stop(); + _rsrModule.Stop(); + _bossModIpc.DisableQuestBattleAi(); + _gatheringController.Stop("ClearTasksInternal"); + _fateController.Stop("ClearTasksInternal"); + _seasonalDutyController.Stop("ClearTasksInternal"); } - [MethodImpl(MethodImplOptions.NoInlining)] public override void Stop(string label) { base.Stop(label); - IDisposable disposable = _logger.BeginScope(_202A_206E_202E_206C_202A_202E_206A_202A_206B_202D_202B_200B_206B_206C_202D_200B_200D_202A_206F_206F_206A_200D_200F_206C_202E_206A_200D_200F_206B_206A_202B_202C_200F_200B_206A_200B_200C_206F_200C_200E_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1233538896), label)); - try + using (_logger.BeginScope("Stop/" + label)) { - int num = (IsRunning ? (-1411452826) : (-1411452825)); - while (true) + if (IsRunning || AutomationType != EAutomationType.Manual) { - int num2 = num; - int num3 = -1411452828; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - ClearTasksInternal(); - _200B_202C_206A_200E_202B_206A_202B_206D_206A_202D_200C_200D_202D_200F_206B_206C_206B_206B_202C_202B_200D_202E_202C_206F_206C_202E_206C_202D_202A_200D_202E_200B_206B_200C_206E_200F_202D_206F_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(923368178), Array.Empty<object>()); - AutomationType = EAutomationType.Manual; - _nextQuest = null; - _gatheringQuest = null; - _deathCount = 0; - _deathRecoveryPending = false; - _resumeAfterSideTasks = false; - SessionConditions.Clear(); - _conditionsMetAtStart.Clear(); - num = -1411452827; - break; - case 3: - num = ((AutomationType == EAutomationType.Manual) ? (-1411452827) : (-1411452826)); - break; - case 0: - num = -1411452825; - break; - case 1: - return; - } - } - } - finally - { - int num = ((disposable == null) ? 1565988730 : 1565988731); - while (true) - { - int num5 = num; - int num3 = 1565988730; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 2: - num = 1565988731; - break; - case 0: - goto end_IL_0125; - case 1: - _202D_202E_200E_202A_202D_206D_202C_202B_202C_202D_206C_206A_200F_202E_200F_206A_202B_202A_200D_206D_206B_202E_206E_206D_206F_206A_200C_200B_206B_200C_200E_206D_202D_200D_200C_206A_202E_200F_202D_202E_202E(disposable); - num = 1565988730; - break; - } - continue; - end_IL_0125: - break; + ClearTasksInternal(); + _logger.LogInformation("Stopping automatic questing"); + AutomationType = EAutomationType.Manual; + _nextQuest = null; + _deathCount = 0; + _deathRecoveryPending = false; + _resumeAfterSideTasks = false; + SessionConditions.Clear(); + _conditionsMetAtStart.Clear(); } } } @@ -1888,63 +900,9 @@ internal sealed class QuestController : MiniTaskController<QuestController> { Stop(label); _runningDebugTasks = true; - IEnumerator<ITask> enumerator = tasks.GetEnumerator(); - try + foreach (ITask task in tasks) { - int num = 2117311857; - while (true) - { - int num2 = num; - int num3 = 2117311856; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 2117311857; - break; - case 2: - { - ITask current = enumerator.Current; - _taskQueue.Enqueue(current); - num = 2117311857; - break; - } - case 1: - num = (_206A_202C_206C_200C_206E_202A_200D_200B_202D_200F_202E_206C_202E_206E_202A_200F_200D_206C_200E_206B_200B_202A_206D_202E_200B_202B_206D_202D_206D_202A_202B_202E_202A_202D_200F_202B_206F_206B_202E_202E_202E((IEnumerator)enumerator) ? 2117311858 : 2117311859); - break; - case 3: - return; - } - } - } - finally - { - int num = ((enumerator == null) ? 1846229563 : 1846229560); - while (true) - { - int num7 = num; - int num3 = 1846229561; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 2: - goto end_IL_00b9; - case 1: - _202D_202E_200E_202A_202D_206D_202C_202B_202C_202D_206C_206A_200F_202E_200F_206A_202B_202A_200D_206D_206B_202E_206E_206D_206F_206A_200C_200B_206B_200C_200E_206D_202D_200D_200C_206A_202E_200F_202D_202E_202E((IDisposable)enumerator); - num = 1846229563; - break; - case 0: - num = 1846229560; - break; - } - continue; - end_IL_00b9: - break; - } + _taskQueue.Enqueue(task); } } @@ -1961,297 +919,84 @@ internal sealed class QuestController : MiniTaskController<QuestController> _attunementController.Stop(label); } - [MethodImpl(MethodImplOptions.NoInlining)] private void CheckNextTasks(string label) { EAutomationType automationType = AutomationType; - int num = ((automationType == EAutomationType.Automatic) ? (-1750534180) : (-1750534184)); - bool flag = default(bool); - int valueOrDefault = default(int); - while (true) + if ((uint)(automationType - 1) <= 2u) { - int num2 = num; - int num3 = -1750534180; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + using (_logger.BeginScope(label)) { - case 3: - flag = false; - num = -1750534183; - break; - case 4: - num = (((uint)(automationType - 3) > 1u) ? (-1750534177) : (-1750534180)); - break; - case 0: - flag = true; - num = -1750534183; - break; - case 2: - num = -1750534184; - break; - case 5: - if (flag) + ClearTasksInternal(); + int? num = CurrentQuest?.Step; + if (num.HasValue) { - num = -1750534179; - break; - } - Stop(label); - return; - case 1: - { - IDisposable disposable = _logger.BeginScope(label); - try - { - ClearTasksInternal(); - int? num7 = CurrentQuest?.Step; - num = ((!num7.HasValue) ? 1513693932 : 1513693935); - while (true) + int valueOrDefault = num.GetValueOrDefault(); + if (valueOrDefault >= 0 && valueOrDefault < 255) { - int num8 = num; - num3 = 1513693932; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 2: - num = 1513693935; - break; - case 1: - ExecuteNextStep(); - return; - case 3: - valueOrDefault = num7.GetValueOrDefault(); - num = ((valueOrDefault < 0) ? 1513693932 : 1513693928); - break; - case 4: - num = ((valueOrDefault >= 255) ? 1513693932 : 1513693933); - break; - case 0: - _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1189463470), Array.Empty<object>()); - return; - } + ExecuteNextStep(); + return; } } - finally - { - num = ((disposable == null) ? 1327974694 : 1327974693); - while (true) - { - int num11 = num; - num3 = 1327974695; - num4 = num11; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1327974693; - break; - case 2: - _202D_202E_200E_202A_202D_206D_202C_202B_202C_202D_206C_206A_200F_202E_200F_206A_202B_202A_200D_206D_206B_202E_206E_206D_206F_206A_200C_200B_206B_200C_200E_206D_202D_200D_200C_206A_202E_200F_202D_202E_202E(disposable); - num = 1327974694; - break; - case 1: - goto end_IL_01fc; - } - continue; - end_IL_01fc: - break; - } - } - } + _logger.LogDebug("Couldn't execute next step during Stop() call"); + return; } } + Stop(label); } - [MethodImpl(MethodImplOptions.NoInlining)] - public void SimulateQuest(Questionable.Model.Quest? quest, byte sequence, int step) + public void SimulateQuest(Quest? quest, byte sequence, int step) { - _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1441974106), new object[1] { quest?.Id }); - int num = ((quest == null) ? (-561319017) : (-561319018)); - while (true) + _logger.LogDebug("SimulateQuest: {QuestId}", quest?.Id); + if (quest != null) { - int num2 = num; - int num3 = -561319017; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0073; - case 0: - _simulatedQuest = null; - return; - case 1: - _simulatedQuest = CreateQuestProgress(quest, sequence, step); - return; - } - continue; - IL_0073: - num = -561319018; + _simulatedQuest = CreateQuestProgress(quest, sequence, step); + } + else + { + _simulatedQuest = null; } } - [MethodImpl(MethodImplOptions.NoInlining)] - public void SetNextQuest(Questionable.Model.Quest? quest) + public void SetNextQuest(Quest? quest) { - _200B_202C_206A_200E_202B_206A_202B_206D_206A_202D_200C_200D_202D_200F_206B_206C_206B_206B_202C_202B_200D_202E_202C_206F_206C_202E_206C_202D_202A_200D_202E_200B_206B_200C_206E_200F_202D_206F_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1560722547), new object[1] { quest?.Id }); - int num = ((quest == null) ? (-1839803786) : (-1839803785)); - while (true) + _logger.LogInformation("NextQuest: {QuestId}", quest?.Id); + if (quest != null) { - int num2 = num; - int num3 = -1839803786; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0073; - case 1: - _nextQuest = CreateQuestProgress(quest, 0); - return; - case 0: - _nextQuest = null; - return; - } - continue; - IL_0073: - num = -1839803785; + _nextQuest = CreateQuestProgress(quest, 0); + } + else + { + _nextQuest = null; } } - [MethodImpl(MethodImplOptions.NoInlining)] - public void SetGatheringQuest(Questionable.Model.Quest? quest) - { - _200B_202C_206A_200E_202B_206A_202B_206D_206A_202D_200C_200D_202D_200F_206B_206C_206B_206B_202C_202B_200D_202E_202C_206F_206C_202E_206C_202D_202A_200D_202E_200B_206B_200C_206E_200F_202D_206F_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-465486273), new object[1] { quest?.Id }); - int num = ((quest == null) ? 1199664522 : 1199664523); - while (true) - { - int num2 = num; - int num3 = 1199664522; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0073; - case 1: - _gatheringQuest = CreateQuestProgress(quest, 0); - return; - case 0: - _gatheringQuest = null; - return; - } - continue; - IL_0073: - num = 1199664523; - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public void SetPendingQuest(QuestProgress? quest) { - _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1529451205), new object[1] { quest?.Quest.Id }); + _logger.LogDebug("PendingQuest: {QuestId}", quest?.Quest.Id); _pendingQuest = quest; } protected override void UpdateCurrentTask() { - int num = ((!_gameFunctions.IsOccupied()) ? 1443241001 : 1443240993); - bool flag2 = default(bool); - ITask task = default(ITask); - bool flag = default(bool); - while (true) + bool flag = _gameFunctions.IsOccupied(); + if (flag) { - int num2 = num; - int num3 = 1443241000; - int num4 = num2; - int num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - flag2 = false; - num = 1443241006; - break; - case 3: - base.UpdateCurrentTask(); - return; - case 2: - num = ((task is RepairGear.SelfRepairTask) ? 1443241005 : 1443240995); - break; - case 1: - num5 = 0; - goto IL_00ab; - case 8: - task = _taskQueue.CurrentTaskExecutor?.CurrentTask; - num = ((task is WaitAtEnd.WaitQuestAccepted) ? 1443241005 : 1443241002); - break; - case 9: - num5 = ((!_gameFunctions.IsOccupiedWithCustomDeliveryNpc(CurrentQuest?.Quest)) ? 1 : 0); - goto IL_00ab; - case 7: - num = ((!flag) ? 1443241003 : 1443241000); - break; - case 0: - return; - case 10: - num = 1443240993; - break; - case 5: - flag2 = true; - num = 1443241006; - break; - case 6: - flag = !flag2; - num = 1443241007; - break; - case 11: - { - num = ((!(task is RepairGear.MenderRepairTask)) ? 1443241004 : 1443241005); - break; - } - IL_00ab: - flag = (byte)num5 != 0; - num = ((!flag) ? 1443241007 : 1443240992); - break; - } + ITask task = _taskQueue.CurrentTaskExecutor?.CurrentTask; + bool flag2 = ((task is WaitAtEnd.WaitQuestAccepted || task is RepairGear.SelfRepairTask || task is RepairGear.MenderRepairTask) ? true : false); + flag = !flag2; + } + if (!flag) + { + base.UpdateCurrentTask(); } } protected override void OnTaskComplete(ITask task) { - int num = ((!(task is WaitAtEnd.WaitQuestCompleted)) ? (-1463008024) : (-1463008023)); - while (true) + if (task is WaitAtEnd.WaitQuestCompleted) { - int num2 = num; - int num3 = -1463008024; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -1463008023; - break; - case 1: - { - int questsCompletedThisSession = _questsCompletedThisSession; - num3 = 1; - num4 = questsCompletedThisSession; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - _questsCompletedThisSession = num7 + (num8 + num8); - _simulatedQuest = null; - num = -1463008024; - break; - } - case 0: - return; - } + _questsCompletedThisSession++; + _simulatedQuest = null; } } @@ -2266,221 +1011,41 @@ internal sealed class QuestController : MiniTaskController<QuestController> IncreaseStepCount(task.ElementId, task.Sequence, shouldContinue: true); } - [MethodImpl(MethodImplOptions.NoInlining)] public void Start(string label) { - IDisposable disposable = _logger.BeginScope(_202A_206E_202E_206C_202A_202E_206A_202A_206B_202D_202B_200B_206B_206C_202D_200B_200D_202A_206F_206F_206A_200D_200F_206C_202E_206A_200D_200F_206B_206A_202B_202C_200F_200B_206A_200B_200C_206F_200C_200E_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1346195202), label)); - try + using (_logger.BeginScope("Q/" + label)) { - int num = ((!CheckAndBlockForStopConditions()) ? (-1813766280) : (-1813766277)); - while (true) + if (!CheckAndBlockForStopConditions()) { - int num2 = num; - int num3 = -1813766279; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0064; - case 2: - return; - case 1: - RecordStopConditionsMetAtStart(); - _gearRepairService.ResetAttemptCooldown(); - AutomationType = EAutomationType.Automatic; - ExecuteNextStep(); - return; - } - continue; - IL_0064: - num = -1813766277; - } - } - finally - { - int num = ((disposable == null) ? 1551591494 : 1551591493); - while (true) - { - int num7 = num; - int num3 = 1551591495; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - num = 1551591493; - break; - case 2: - _202D_202E_200E_202A_202D_206D_202C_202B_202C_202D_206C_206A_200F_202E_200F_206A_202B_202A_200D_206D_206B_202E_206E_206D_206F_206A_200C_200B_206B_200C_200E_206D_202D_200D_200C_206A_202E_200F_202D_202E_202E(disposable); - num = 1551591494; - break; - case 1: - goto end_IL_00be; - } - continue; - end_IL_00be: - break; + RecordStopConditionsMetAtStart(); + _gearRepairService.ResetAttemptCooldown(); + AutomationType = EAutomationType.Automatic; + ExecuteNextStep(); } } } - [MethodImpl(MethodImplOptions.NoInlining)] - public void StartGatheringQuest(string label) - { - IDisposable disposable = _logger.BeginScope(_202A_206E_202E_206C_202A_202E_206A_202A_206B_202D_202B_200B_206B_206C_202D_200B_200D_202A_206F_206F_206A_200D_200F_206C_202E_206A_200D_200F_206B_206A_202B_202C_200F_200B_206A_200B_200C_206F_200C_200E_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1185404224), label)); - try - { - int num = ((!CheckAndBlockForStopConditions()) ? 1941180013 : 1941180014); - while (true) - { - int num2 = num; - int num3 = 1941180012; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0064; - case 2: - return; - case 1: - RecordStopConditionsMetAtStart(); - _gearRepairService.ResetAttemptCooldown(); - AutomationType = EAutomationType.GatheringOnly; - ExecuteNextStep(); - return; - } - continue; - IL_0064: - num = 1941180014; - } - } - finally - { - int num = ((disposable == null) ? 1261002497 : 1261002498); - while (true) - { - int num7 = num; - int num3 = 1261002499; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - num = 1261002498; - break; - case 1: - _202D_202E_200E_202A_202D_206D_202C_202B_202C_202D_206C_206A_200F_202E_200F_206A_202B_202A_200D_206D_206B_202E_206E_206D_206F_206A_200C_200B_206B_200C_200E_206D_202D_200D_200C_206A_202E_200F_202D_202E_202E(disposable); - num = 1261002497; - break; - case 2: - goto end_IL_00be; - } - continue; - end_IL_00be: - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public void StartSingleQuest(string label) { - IDisposable disposable = _logger.BeginScope(_202A_206E_202E_206C_202A_202E_206A_202A_206B_202D_202B_200B_206B_206C_202D_200B_200D_202A_206F_206F_206A_200D_200F_206C_202E_206A_200D_200F_206B_206A_202B_202C_200F_200B_206A_200B_200C_206F_200C_200E_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-5920385), label)); - try + using (_logger.BeginScope("SQ/" + label)) { - int num = ((!CheckAndBlockForStopConditions()) ? 1487711612 : 1487711615); - while (true) + if (!CheckAndBlockForStopConditions()) { - int num2 = num; - int num3 = 1487711614; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0062; - case 1: - return; - case 2: - RecordStopConditionsMetAtStart(); - _gearRepairService.ResetAttemptCooldown(); - AutomationType = EAutomationType.SingleQuestA; - ExecuteNextStep(); - return; - } - continue; - IL_0062: - num = 1487711615; - } - } - finally - { - int num = ((disposable == null) ? (-1831120012) : (-1831120011)); - while (true) - { - int num5 = num; - int num3 = -1831120012; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 0: - goto end_IL_00bc; - case 1: - _202D_202E_200E_202A_202D_206D_202C_202B_202C_202D_206C_206A_200F_202E_200F_206A_202B_202A_200D_206D_206B_202E_206E_206D_206F_206A_200C_200B_206B_200C_200E_206D_202D_200D_200C_206A_202E_200F_202D_202E_202E(disposable); - num = -1831120012; - break; - case 2: - num = -1831120011; - break; - } - continue; - end_IL_00bc: - break; + RecordStopConditionsMetAtStart(); + _gearRepairService.ResetAttemptCooldown(); + AutomationType = EAutomationType.SingleQuestA; + ExecuteNextStep(); } } } - [MethodImpl(MethodImplOptions.NoInlining)] public void StartSingleStep(string label) { - IDisposable disposable = _logger.BeginScope(_202A_206E_202E_206C_202A_202E_206A_202A_206B_202D_202B_200B_206B_206C_202D_200B_200D_202A_206F_206F_206A_200D_200F_206C_202E_206A_200D_200F_206B_206A_202B_202C_200F_200B_206A_200B_200C_206F_200C_200E_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(528425497), label)); - try + using (_logger.BeginScope("SS/" + label)) { AutomationType = EAutomationType.Manual; ExecuteNextStep(); } - finally - { - int num = ((disposable == null) ? 2052970200 : 2052970203); - while (true) - { - int num2 = num; - int num3 = 2052970202; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 2052970203; - break; - case 1: - _202D_202E_200E_202A_202D_206D_202C_202B_202C_202D_206C_206A_200F_202E_200F_206A_202B_202A_200D_206D_206B_202E_206E_206D_206F_206A_200C_200B_206B_200C_200E_206D_202D_200D_200C_206A_202E_200F_202D_202E_202E(disposable); - num = 2052970200; - break; - case 2: - goto end_IL_004a; - } - continue; - end_IL_004a: - break; - } - } } private StopEvaluationContext BuildEvaluationContext(ElementId? completedQuestId = null, ElementId? acceptedQuestId = null, EInteractionType? upcomingInteractionType = null) @@ -2488,13 +1053,13 @@ internal sealed class QuestController : MiniTaskController<QuestController> IPlayerCharacter localPlayer = LocalPlayer; return new StopEvaluationContext { - PlayerLevel = ((localPlayer != null) ? _200C_206C_200D_202E_202B_206C_200B_202E_202E_206E_206F_202E_200F_202C_200F_200E_206B_206B_200E_202B_202A_202A_206C_200F_206A_206E_206B_206F_202E_206E_206A_206B_200E_202E_200C_200F_200C_200B_206E_202A_202E((ICharacter)localPlayer) : 0), + PlayerLevel = (localPlayer?.Level ?? 0), CurrentQuestId = CurrentQuest?.Quest.Id, CurrentSequence = (CurrentQuest?.Sequence ?? 0), CompletedQuestId = completedQuestId, AcceptedQuestId = acceptedQuestId, Gil = GetCurrentGil(), - FreeInventorySlots = _200E_200D_202B_202D_206D_202B_202E_206C_200C_206B_206F_200D_206D_200F_200C_200E_200B_200B_202B_202C_206E_206B_200D_202A_202D_200E_202C_206A_206B_200C_202E_202C_206E_200B_200E_202B_202A_206A_202C_206E_202E(), + FreeInventorySlots = InventoryHelper.CountFreeInventorySlots(), ElapsedSinceStart = DateTime.UtcNow - _automationStartedAt, QuestsCompletedThisSession = _questsCompletedThisSession, UpcomingInteractionType = upcomingInteractionType @@ -2504,369 +1069,129 @@ internal sealed class QuestController : MiniTaskController<QuestController> private unsafe static int GetCurrentGil() { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? (-790277236) : (-790277233)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -790277235; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 1: - return ptr->GetItemCountInContainer(1u, InventoryType.Currency, isHq: false, 0); - case 2: - return 0; - } - continue; - IL_0049: - num = -790277233; + return 0; } + return ptr->GetItemCountInContainer(1u, InventoryType.Currency, isHq: false, 0); } private bool CheckStopConditions(StopEvaluationContext context) { - int num = (_configuration.Stop.Enabled ? (-255259633) : (-255259634)); - bool hasQuestSpecificSequence = default(bool); - QuestCompleteCondition questCompleteCondition = default(QuestCompleteCondition); - while (true) + if (!_configuration.Stop.Enabled) { - int num2 = num; - int num3 = -255259636; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 3: - hasQuestSpecificSequence = false; - if (_206B_202D_202B_202D_206D_206E_200E_202D_206A_200C_200B_200F_200B_206C_202C_206A_206C_206D_206A_202D_206D_200D_200E_206D_200E_202B_202E_200D_206E_200E_202A_206D_202B_206B_202A_206D_200E_206B_202C_206D_202E(context.CurrentQuestId, (ElementId)null)) - { - num = -255259635; - continue; - } - break; - case 2: - return false; - case 0: - num = -255259634; - continue; - case 1: - { - using (List<StopCondition>.Enumerator enumerator = _configuration.Stop.Conditions.GetEnumerator()) - { - num = 168449519; - while (true) - { - int num7 = num; - num3 = 168449518; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - hasQuestSpecificSequence = true; - goto end_IL_00af; - case 1: - num = (enumerator.MoveNext() ? 168449512 : 168449516); - break; - case 6: - questCompleteCondition = enumerator.Current as QuestCompleteCondition; - num = ((questCompleteCondition == null) ? 168449519 : 168449517); - break; - case 4: - num = 168449519; - break; - case 5: - num = ((!questCompleteCondition.Sequence.HasValue) ? 168449519 : 168449518); - break; - case 3: - num = ((!_200F_206F_202A_206A_206A_206A_202A_206B_206F_202E_206A_206F_202A_202D_202D_200C_206C_202C_206C_202A_202D_200B_202B_206A_206F_202D_206E_200B_206D_200C_206F_202B_200F_206B_200C_206C_206D_206C_202E(questCompleteCondition.QuestId, context.CurrentQuestId)) ? 168449519 : 168449515); - break; - case 2: - goto end_IL_00af; - } - continue; - end_IL_00af: - break; - } - } - break; - } - } - break; + return false; } - using (List<StopCondition>.Enumerator enumerator = _configuration.Stop.Conditions.GetEnumerator()) + bool hasQuestSpecificSequence = false; + if (context.CurrentQuestId != null) { - num = 1007175331; - while (true) + foreach (StopCondition condition in _configuration.Stop.Conditions) { - int num8 = num; - int num3 = 1007175328; - int num4 = num8; - switch ((num4 | num3) - (num4 & num3)) + if (condition is QuestCompleteCondition questCompleteCondition && questCompleteCondition.QuestId.Equals(context.CurrentQuestId) && questCompleteCondition.Sequence.HasValue) { - case 4: - return true; - case 1: - { - StopCondition current = enumerator.Current; - num = ((!EvaluateCondition(current, context, hasQuestSpecificSequence)) ? 1007175331 : 1007175332); + hasQuestSpecificSequence = true; break; } - case 3: - num = (enumerator.MoveNext() ? 1007175329 : 1007175330); - break; - case 0: - num = 1007175331; - break; - case 2: - goto end_IL_01e8; - } - continue; - end_IL_01e8: - break; } } - using (List<StopCondition>.Enumerator enumerator = SessionConditions.GetEnumerator()) + foreach (StopCondition condition2 in _configuration.Stop.Conditions) { - num = 1707456518; - while (true) + if (EvaluateCondition(condition2, context, hasQuestSpecificSequence)) { - int num9 = num; - int num3 = 1707456518; - int num4 = num9; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1707456518; - break; - case 3: - return true; - case 0: - num = (enumerator.MoveNext() ? 1707456519 : 1707456514); - break; - case 1: - { - StopCondition current2 = enumerator.Current; - num = ((!EvaluateCondition(current2, context, hasQuestSpecificSequence)) ? 1707456518 : 1707456517); - break; - } - case 4: - goto end_IL_02bb; - } - continue; - end_IL_02bb: - break; + return true; + } + } + foreach (StopCondition sessionCondition in SessionConditions) + { + if (EvaluateCondition(sessionCondition, context, hasQuestSpecificSequence)) + { + return true; } } return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool EvaluateCondition(StopCondition condition, StopEvaluationContext context, bool hasQuestSpecificSequence) { - int num = ((condition.Mode != EStopConditionMode.Off) ? 724372340 : 724372351); - string text = default(string); - while (true) + if (condition.Mode == EStopConditionMode.Off) { - int num2 = num; - int num3 = 724372347; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return false; + } + if (condition is GlobalSequenceCondition && hasQuestSpecificSequence) + { + return false; + } + if (!condition.Evaluate(context)) + { + return false; + } + if (condition.Mode == EStopConditionMode.Pause && _conditionsMetAtStart.Contains(condition)) + { + return false; + } + _logger.LogInformation("Stop condition met: {Description} (mode={Mode})", condition.GetDescription(), condition.Mode); + LastStopReason = $"{condition.Mode}: {condition.GetDescription()}"; + _notificationService.NotifyStopCondition("Stopped - " + condition.GetDescription()); + if (condition.IsSession) + { + SessionConditions.Remove(condition); + } + bool flag = AutomationType != EAutomationType.Manual; + Stop("Stop condition: " + condition.GetDescription()); + if (condition.Mode == EStopConditionMode.Stop && flag && !_commandAfterStopFired) + { + _commandAfterStopFired = true; + string text = _configuration.Stop.CommandAfterStop?.Trim() ?? string.Empty; + if (text.Length > 0) { - default: - continue; - case 12: - num = (_200C_200B_200C_200F_200B_200C_200D_202B_200D_206C_206D_202D_202C_200B_200C_202E_202E_202E_206D_200C_200B_202E_200D_202A_202E_202E_206F_202D_200D_200C_200C_202C_206D_202A_206C_206B_202C_206F_200D_200E_202E(text, '/') ? 724372336 : 724372341); - continue; - case 4: - return false; - case 5: - { - bool flag = AutomationType != EAutomationType.Manual; - Stop(_202A_206E_202E_206C_202A_202E_206A_202A_206B_202D_202B_200B_206B_206C_202D_200B_200D_202A_206F_206F_206A_200D_200F_206C_202E_206A_200D_200F_206B_206A_202B_202C_200F_200B_206A_200B_200C_206F_200C_200E_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1025756248), condition.GetDescription())); - bool num7 = condition.Mode == EStopConditionMode.Stop; - num3 = (flag ? 1 : 0); - num4 = (num7 ? 1 : 0); - if ((num4 | num3) - (num4 ^ num3) != 0) + if (!text.StartsWith('/')) { - num = 724372347; - continue; + text = "/" + text; } - break; - } - case 15: - { - bool num8 = condition is GlobalSequenceCondition; - num3 = (hasQuestSpecificSequence ? 1 : 0); - num4 = (num8 ? 1 : 0); - num = ((num4 + num3 - (num4 | num3) == 0) ? 724372344 : 724372346); - continue; - } - case 10: - return false; - case 8: - SessionConditions.Remove(condition); - num = 724372350; - continue; - case 7: - num = ((!_conditionsMetAtStart.Contains(condition)) ? 724372349 : 724372337); - continue; - case 3: - num = (condition.Evaluate(context) ? 724372342 : 724372338); - continue; - case 16: - { - _commandAfterStopFired = true; - string commandAfterStop = _configuration.Stop.CommandAfterStop; - text = ((commandAfterStop != null) ? _202C_200E_206D_206B_202D_206B_206B_200E_202B_202C_202E_206D_206C_200F_200E_206A_200E_202C_206B_206D_200B_206C_206F_206F_202E_202E_206A_200C_200E_206D_200D_206C_206D_200E_200B_200F_206B_206E_200B_202B_202E(commandAfterStop) : null) ?? string.Empty; - if (_206E_200F_206F_206F_200D_200C_200D_206E_206D_206D_206E_202B_200E_200B_206F_202C_206E_202E_206D_202A_202B_202E_200E_200E_206F_202C_206E_206B_200F_206E_206D_200E_200C_202C_206F_200E_206F_206A_200F_200C_202E(text) > 0) - { - num = 724372343; - continue; - } - break; - } - case 0: - if (!_commandAfterStopFired) - { - num = 724372331; - continue; - } - break; - case 2: - num = 724372351; - continue; - case 14: - text = _202A_206E_202E_206C_202A_202E_206A_202A_206B_202D_202B_200B_206B_206C_202D_200B_200D_202A_206F_206F_206A_200D_200F_206C_202E_206A_200D_200F_206B_206A_202B_202C_200F_200B_206A_200B_200C_206F_200C_200E_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1605560946), text); - num = 724372336; - continue; - case 13: - num = ((condition.Mode != EStopConditionMode.Pause) ? 724372349 : 724372348); - continue; - case 9: - return false; - case 6: - { - _200B_202C_206A_200E_202B_206A_202B_206D_206A_202D_200C_200D_202D_200F_206B_206C_206B_206B_202C_202B_200D_202E_202C_206F_206C_202E_206C_202D_202A_200D_202E_200B_206B_200C_206E_200F_202D_206F_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1648729243), new object[2] - { - condition.GetDescription(), - condition.Mode - }); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(2, 2); - defaultInterpolatedStringHandler.AppendFormatted(condition.Mode); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-437343681)); - defaultInterpolatedStringHandler.AppendFormatted(condition.GetDescription()); - LastStopReason = defaultInterpolatedStringHandler.ToStringAndClear(); - _notificationService.NotifyStopCondition(_202A_206E_202E_206C_202A_202E_206A_202A_206B_202D_202B_200B_206B_206C_202D_200B_200D_202A_206F_206F_206A_200D_200F_206C_202E_206A_200D_200F_206B_206A_202B_202C_200F_200B_206A_200B_200C_206F_200C_200E_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1912276781), condition.GetDescription())); - num = ((!condition.IsSession) ? 724372350 : 724372339); - continue; - } - case 1: - return false; - case 11: try { - _206A_202A_200F_206D_200B_202D_200C_206A_206D_206D_206A_202D_206D_200C_202B_202D_202E_200F_202D_206D_200C_206E_200E_200C_200E_202D_206D_202A_206C_206C_200B_202B_200E_202C_202E_202E_202C_200F_202B_200C_202E(_commandManager, text); + _commandManager.ProcessCommand(text); } - catch (Exception ex) + catch (Exception exception) { - _202A_206F_206A_206B_202D_202B_206A_200C_202D_202E_206E_206B_206F_200F_202D_202C_206B_200E_206B_200C_200F_200E_202E_202B_206C_206D_200F_206C_200C_202D_202E_200F_202C_200C_206A_200E_206B_200F_200E_206A_202E((ILogger)_logger, ex, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-106559220), new object[1] { text }); + _logger.LogWarning(exception, "CommandAfterStop failed: {Command}", text); } - break; } - break; } return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public void OnQuestAccepted(ElementId questId) { CaptureInitialQuestWork(_startedQuest, questId); CaptureInitialQuestWork(_nextQuest, questId); CaptureInitialQuestWork(_pendingQuest, questId); - int num = ((!CheckStopConditions(BuildEvaluationContext(null, questId))) ? (-113212620) : (-113212617)); - while (true) + if (CheckStopConditions(BuildEvaluationContext(null, questId))) { - int num2 = num; - int num3 = -113212619; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -113212617; - break; - case 2: - _200B_202C_206A_200E_202B_206A_202B_206D_206A_202D_200C_200D_202D_200F_206B_206C_206B_206B_202C_202B_200D_202E_202C_206F_206C_202E_206C_202D_202A_200D_202E_200B_206B_200C_206E_200F_202D_206F_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(390710683), new object[1] { questId }); - num = -113212620; - break; - case 1: - return; - } + _logger.LogInformation("Stopped after accepting quest {QuestId}", questId); } } public QuestProgressInfo? GetInitialQuestProgressInfo(ElementId questId) { QuestProgress questProgress = CurrentQuestDetails?.Progress; - int num = ((questProgress == null) ? 929631583 : 929631580); - while (true) + if (questProgress == null || !questProgress.Quest.Id.Equals(questId)) { - int num2 = num; - int num3 = 929631581; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return questProgress.InitialQuestWork; - case 2: - return null; - case 1: - num = (_200F_206F_202A_206A_206A_206A_202A_206B_206F_202E_206A_206F_202A_202D_202D_200C_206C_202C_206C_202A_202D_200B_202B_206A_206F_202D_206E_200B_206D_200C_206F_202B_200F_206B_200C_206C_206D_206C_202E(questProgress.Quest.Id, questId) ? 929631581 : 929631583); - break; - case 3: - num = 929631580; - break; - } + return null; } + return questProgress.InitialQuestWork; } - private QuestProgress CreateQuestProgress(Questionable.Model.Quest quest, byte sequence = 0, int step = 0) + private QuestProgress CreateQuestProgress(Quest quest, byte sequence = 0, int step = 0) { return new QuestProgress(quest, sequence, step, _questFunctions.GetQuestProgressInfo(quest.Id)); } private void CaptureInitialQuestWork(QuestProgress? progress, ElementId questId) { - int num = ((progress == null) ? 1618497954 : 1618497955); - while (true) + if (progress != null && progress.Quest.Id.Equals(questId)) { - int num2 = num; - int num3 = 1618497954; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1618497955; - break; - case 0: - return; - case 1: - num = ((!_200F_206F_202A_206A_206A_206A_202A_206B_206F_202E_206A_206F_202A_202D_202D_200C_206C_202C_206C_202A_202D_200B_202B_206A_206F_202D_206E_200B_206D_200C_206F_202B_200F_206B_200C_206C_206D_206C_202E(progress.Quest.Id, questId)) ? 1618497954 : 1618497953); - break; - case 3: - progress.CaptureInitialQuestWork(_questFunctions.GetQuestProgressInfo(questId)); - num = 1618497954; - break; - } + progress.CaptureInitialQuestWork(_questFunctions.GetQuestProgressInfo(questId)); } } @@ -2876,523 +1201,171 @@ internal sealed class QuestController : MiniTaskController<QuestController> _conditionsMetAtStart.Clear(); _automationStartedAt = DateTime.UtcNow; _questsCompletedThisSession = 0; - int num = (_configuration.Stop.Enabled ? (-96584475) : (-96584476)); - StopCondition current = default(StopCondition); - while (true) + if (!_configuration.Stop.Enabled) { - int num2 = num; - int num3 = -96584475; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return; + } + StopEvaluationContext context = BuildEvaluationContext(); + foreach (StopCondition item in _configuration.Stop.Conditions.Concat(SessionConditions)) + { + if (item.Mode == EStopConditionMode.Pause && item.Evaluate(context)) { - case 2: - goto IL_007d; - case 1: - return; - case 0: - { - StopEvaluationContext context = BuildEvaluationContext(); - IEnumerator<StopCondition> enumerator = _configuration.Stop.Conditions.Concat(SessionConditions).GetEnumerator(); - try - { - num = -166499016; - while (true) - { - int num5 = num; - num3 = -166499013; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 3: - num = (_206A_202C_206C_200C_206E_202A_200D_200B_202D_200F_202E_206C_202E_206E_202A_200F_200D_206C_200E_206B_200B_202A_206D_202E_200B_202B_206D_202D_206D_202A_202B_202E_202A_202D_200F_202B_206F_206B_202E_202E_202E((IEnumerator)enumerator) ? (-166499010) : (-166499014)); - break; - case 5: - current = enumerator.Current; - num = ((current.Mode != EStopConditionMode.Pause) ? (-166499016) : (-166499013)); - break; - case 0: - num = ((!current.Evaluate(context)) ? (-166499016) : (-166499009)); - break; - case 4: - _conditionsMetAtStart.Add(current); - num = -166499016; - break; - case 2: - num = -166499016; - break; - case 1: - return; - } - } - } - finally - { - num = ((enumerator == null) ? 193215139 : 193215138); - while (true) - { - int num8 = num; - num3 = 193215139; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 2: - num = 193215138; - break; - case 1: - _202D_202E_200E_202A_202D_206D_202C_202B_202C_202D_206C_206A_200F_202E_200F_206A_202B_202A_200D_206D_206B_202E_206E_206D_206F_206A_200C_200B_206B_200C_200E_206D_202D_200D_200C_206A_202E_200F_202D_202E_202E((IDisposable)enumerator); - num = 193215139; - break; - case 0: - goto end_IL_01bd; - } - continue; - end_IL_01bd: - break; - } - } + _conditionsMetAtStart.Add(item); } - } - continue; - IL_007d: - num = -96584476; } } - [MethodImpl(MethodImplOptions.NoInlining)] private bool CheckAndBlockForStopConditions() { - int num = (_configuration.Stop.Enabled ? (-1001493482) : (-1001493481)); - StopCondition current = default(StopCondition); - while (true) + if (!_configuration.Stop.Enabled) { - int num2 = num; - int num3 = -1001493482; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_005b; - case 1: - return false; - case 0: - { - StopEvaluationContext context = BuildEvaluationContext(); - using (List<StopCondition>.Enumerator enumerator = _configuration.Stop.Conditions.GetEnumerator()) - { - num = -1633715663; - while (true) - { - int num7 = num; - num3 = -1633715662; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 5: - _200B_202C_206A_200E_202B_206A_202B_206D_206A_202D_200C_200D_202D_200F_206B_206C_206B_206B_202C_202B_200D_202E_202C_206F_206C_202E_206C_202D_202A_200D_202E_200B_206B_200C_206E_200F_202D_206F_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2035077915), new object[1] { current.GetDescription() }); - _200F_202D_200F_206E_206F_206E_202C_200F_200F_206E_206C_206F_206E_206F_200E_200F_200E_206D_200B_200C_202C_206A_202E_206F_206F_200F_202C_202B_206E_206C_206D_200F_202A_206F_206A_200F_206E_206D_202E_206F_202E(_chatGui, _202A_206E_202E_206C_202A_202E_206A_202A_206B_202D_202B_200B_206B_206C_202D_200B_200D_202A_206F_206F_206A_200D_200F_206C_202E_206A_200D_200F_206B_206A_202B_202C_200F_200B_206A_200B_200C_206F_200C_200E_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-304427727), current.GetDescription()), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - return true; - case 2: - current = enumerator.Current; - num = ((current.Mode != EStopConditionMode.Stop) ? (-1633715663) : (-1633715661)); - break; - case 1: - num = ((!current.Evaluate(context)) ? (-1633715663) : (-1633715657)); - break; - case 3: - num = (enumerator.MoveNext() ? (-1633715664) : (-1633715658)); - break; - case 0: - num = -1633715663; - break; - case 4: - goto end_IL_009d; - } - continue; - end_IL_009d: - break; - } - } - return false; - } - } - continue; - IL_005b: - num = -1001493481; + return false; } + StopEvaluationContext context = BuildEvaluationContext(); + foreach (StopCondition condition in _configuration.Stop.Conditions) + { + if (condition.Mode == EStopConditionMode.Stop && condition.Evaluate(context)) + { + _logger.LogInformation("Blocking start: {Description}", condition.GetDescription()); + _chatGui.PrintError("Cannot start: " + condition.GetDescription(), "Questionable", 576); + return true; + } + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private void ExecuteNextStep() { - _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-307300247), new object[2] - { - AutomationType, - CurrentQuest?.Quest.Id - }); + _logger.LogDebug("ExecuteNextStep called. AutoType={AutoType}, CurrentQuest={CurrentQuest}", AutomationType, CurrentQuest?.Quest.Id); ClearTasksInternal(); - int num = ((!TryPickPriorityQuest()) ? (-988185666) : (-988185696)); - QuestSequence item = default(QuestSequence); - bool flag2 = default(bool); - QuestStep item2 = default(QuestStep); - ERepairDecision eRepairDecision = default(ERepairDecision); - bool flag = default(bool); - bool item3 = default(bool); - while (true) + if (TryPickPriorityQuest()) { - int num2 = num; - int num3 = -988185690; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + _logger.LogDebug("Using priority quest over current quest"); + } + var (questSequence, questStep, flag) = GetNextStep(); + if (CurrentQuest != null && questSequence != null && questStep == null && questSequence.Steps.Count == 0) + { + _logger.LogDebug("Sequence {Sequence} has no steps, waiting for game to advance sequence", CurrentQuest.Sequence); + CurrentQuest.SetStep(255); + return; + } + if (CurrentQuest == null || questSequence == null) + { + _logger.LogWarning("Could not retrieve next quest step, not doing anything [{QuestId}, {Sequence}, {Step}]", CurrentQuest?.Quest.Id, CurrentQuest?.Sequence, CurrentQuest?.Step); + if (CurrentQuest == null || !flag) { - case 5: - num = ((_206B_200F_202A_202A_200D_200E_202E_202C_202C_206F_206E_206D_206C_206D_202E_202A_200F_206D_206C_200F_206E_202B_206E_202E_200D_206F_206D_202D_202D_202A_200B_202E_206C_202C_202D_200E_206E_200E_206A_206B_202E(item).Count != 0) ? (-988185670) : (-988185689)); - break; - case 0: - flag2 = item2 != null; - num = ((!flag2) ? (-988185667) : (-988185677)); - break; - case 26: - _movementController.Stop(); - num = ((item2 == null) ? (-988185687) : (-988185674)); - break; - case 29: - num = ((item2 == null) ? (-988185690) : (-988185688)); - break; - case 14: - num = ((_206E_202A_206F_206D_206A_202E_200D_202E_206B_206D_202D_200C_200B_206C_202C_206D_200D_206F_202C_202A_200C_202E_206F_200B_206E_206C_206F_202A_200D_206D_206C_202B_202A_202C_200B_202D_200D_206D_206A_200D_202E(item2) == _202B_206D_200E_202E_200F_202D_200B_206C_202B_206B_206F_202A_200B_200B_202C_206E_200B_202B_206E_202C_200E_206C_200F_206F_200B_202D_206C_206F_206B_200E_202D_202A_206D_200B_206E_200C_202E_202E_202A_206E_202E(_clientState)) ? (-988185690) : (-988185684)); - break; - case 12: - _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1113169196), new object[2] - { - _206E_202A_206F_206D_206A_202E_200D_202E_206B_206D_202D_200C_200B_206C_202C_206D_200D_206F_202C_202A_200C_202E_206F_200B_206E_206C_206F_202A_200D_206D_206C_202B_202A_202C_200B_202D_200D_206D_206A_200D_202E(item2), - _202B_206D_200E_202E_200F_202D_200B_206C_202B_206B_206F_202A_200B_200B_202C_206E_200B_202B_206E_202C_200E_206C_200F_206F_200B_202D_206C_206F_206B_200E_202D_202A_206D_200B_206E_200C_202E_202E_202A_206E_202E(_clientState) - }); - DebugState = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1775330155); return; - case 1: - _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(121506234), new object[1] { CurrentQuest.Sequence }); - CurrentQuest.SetStep(255); - return; - case 17: - num = ((eRepairDecision == ERepairDecision.BlockDuty) ? (-988185665) : (-988185671)); - break; - case 16: - eRepairDecision = _gearRepairService.EvaluateAndEnqueue(_202B_200C_200E_206F_206B_200C_206D_200B_202A_202A_200C_200F_206E_200B_202A_202C_202A_206F_202E_202E_206B_206C_200B_200B_206B_200F_206C_200C_206D_202B_202B_200D_202E_200C_206B_206C_206C_200C_200F_202D_202E(item2), _taskQueue); - num = ((eRepairDecision == ERepairDecision.Enqueued) ? (-988185683) : (-988185673)); - break; - case 3: - flag = false; - num = -988185682; - break; - case 31: - num = -988185687; - break; - case 6: - _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1484694039), Array.Empty<object>()); - num = -988185666; - break; - case 30: - flag = true; - num = -988185682; - break; - case 20: - num = ((!_territoryData.IsQuestBattleInstance(_202B_206D_200E_202E_200F_202D_200B_206C_202B_206B_206F_202A_200B_200B_202C_206E_200B_202B_206E_202C_200E_206C_200F_206F_200B_202D_206C_206F_206B_200E_202D_202A_206D_200B_206E_200C_202E_202E_202A_206E_202E(_clientState))) ? (-988185690) : (-988185686)); - break; - case 7: - num = (item3 ? (-988185669) : (-988185692)); - break; - case 24: - { - (QuestSequence? Sequence, QuestStep? Step, bool createTasks) nextStep = GetNextStep(); - item = nextStep.Sequence; - item2 = nextStep.Step; - item3 = nextStep.createTasks; - num = ((CurrentQuest == null) ? (-988185670) : (-988185681)); - break; } - case 9: - num = ((item == null) ? (-988185670) : (-988185685)); - break; - case 19: - num = ((!CheckStopConditions(BuildEvaluationContext(null, null, _202B_200C_200E_206F_206B_200C_206D_200B_202A_202A_200C_200F_206E_200B_202A_202C_202A_206F_202E_202E_206B_206C_200B_200B_206B_200F_206C_200C_206D_202B_202B_200D_202E_200C_206B_206C_206C_200C_200F_202D_202E(item2)))) ? (-988185668) : (-988185694)); - break; - case 23: - _200F_206F_202B_206C_202D_202A_202A_200B_206F_206F_206C_206F_202C_206C_206E_200F_202A_202E_202B_202B_206E_206C_206A_202A_200E_202A_206B_206A_206E_202C_200C_206B_200D_200B_200C_202E_200F_200C_206A_206A_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1136462212), new object[3] - { - CurrentQuest?.Quest.Id, - CurrentQuest?.Sequence, - CurrentQuest?.Step - }); - num = ((CurrentQuest == null) ? (-988185692) : (-988185695)); - break; - case 10: - num = (_territoryData.IsDutyInstance(_202B_206D_200E_202E_200F_202D_200B_206C_202B_206B_206F_202A_200B_200B_202C_206E_200B_202B_206E_202C_200E_206C_200F_206F_200B_202D_206C_206F_206B_200E_202D_202A_206D_200B_206E_200C_202E_202E_202A_206E_202E(_clientState)) ? (-988185686) : (-988185678)); - break; - case 25: - _200F_202D_200F_206E_206F_206E_202C_200F_200F_206E_206C_206F_206E_206F_200E_200F_200E_206D_200B_200C_202C_206A_202E_206F_206F_200F_202C_202B_206E_206C_206D_200F_202A_206F_206A_200F_206E_206D_202E_206F_202E(_chatGui, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1616053395), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1301936537)); - return; - case 18: - num = ((item != null) ? (-988185669) : (-988185679)); - break; - case 2: - return; - case 11: + } + if (questStep != null && questStep.TerritoryId != _clientState.TerritoryType && (_territoryData.IsDutyInstance(_clientState.TerritoryType) || _territoryData.IsQuestBattleInstance(_clientState.TerritoryType))) + { + _logger.LogDebug("Deferring next step: step territory {StepTerritory} != current instance territory {CurrentTerritory}, waiting for duty exit", questStep.TerritoryId, _clientState.TerritoryType); + DebugState = "Waiting for duty exit"; + return; + } + bool flag2 = questStep != null; + if (flag2) + { + EInteractionType interactionType = questStep.InteractionType; + bool flag3 = (uint)(interactionType - 19) <= 1u; + flag2 = flag3; + } + if (flag2 && CheckStopConditions(BuildEvaluationContext(null, null, questStep.InteractionType))) + { + return; + } + _movementController.Stop(); + if (questStep != null) + { + switch (_gearRepairService.EvaluateAndEnqueue(questStep.InteractionType, _taskQueue)) + { + case ERepairDecision.Enqueued: _resumeAfterSideTasks = true; return; - case 28: - num = ((CurrentQuest == null) ? (-988185679) : (-988185676)); - break; - case 27: - num = ((!flag2) ? (-988185668) : (-988185675)); - break; - case 21: - { - EInteractionType eInteractionType = _202B_200C_200E_206F_206B_200C_206D_200B_202A_202A_200C_200F_206E_200B_202A_202C_202A_206F_202E_202E_206B_206C_200B_200B_206B_200F_206C_200C_206D_202B_202B_200D_202E_200C_206B_206C_206C_200C_200F_202D_202E(item2); - num = (((uint)(eInteractionType - 19) > 1u) ? (-988185691) : (-988185672)); - break; - } - case 8: - flag2 = flag; - num = -988185667; - break; - case 4: + case ERepairDecision.BlockDuty: + _chatGui.PrintError("Gear is critically damaged and cannot be repaired - stopping before duty.", "Questionable", 576); + Stop("Gear critically damaged"); return; - case 13: - num = ((item2 != null) ? (-988185670) : (-988185693)); - break; - case 22: - num = -988185696; - break; - case 15: - try - { - (QuestProgress, ECurrentQuestType)? currentQuestDetails = CurrentQuestDetails; - bool isSimulation = currentQuestDetails.HasValue && currentQuestDetails.GetValueOrDefault().Item2 == ECurrentQuestType.Simulated; - IEnumerator<ITask> enumerator = _taskCreator.CreateTasks(CurrentQuest.Quest, CurrentQuest.Sequence, item, item2, isSimulation).GetEnumerator(); - try - { - num = 410602803; - while (true) - { - int num7 = num; - num3 = 410602801; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 410602803; - break; - case 3: - { - ITask current = enumerator.Current; - _taskQueue.Enqueue(current); - num = 410602803; - break; - } - case 2: - num = (_206A_202C_206C_200C_206E_202A_200D_200B_202D_200F_202E_206C_202E_206E_202A_200F_200D_206C_200E_206B_200B_202A_206D_202E_200B_202B_206D_202D_206D_202A_202B_202E_202A_202D_200F_202B_206F_206B_202E_202E_202E((IEnumerator)enumerator) ? 410602802 : 410602800); - break; - case 1: - return; - } - } - } - finally - { - num = ((enumerator == null) ? 842777635 : 842777632); - while (true) - { - int num8 = num; - num3 = 842777633; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_06ec; - case 1: - _202D_202E_200E_202A_202D_206D_202C_202B_202C_202D_206C_206A_200F_202E_200F_206A_202B_202A_200D_206D_206B_202E_206E_206D_206F_206A_200C_200B_206B_200C_200E_206D_202D_200D_200C_206A_202E_200F_202D_202E_202E((IDisposable)enumerator); - num = 842777635; - break; - case 0: - num = 842777632; - break; - } - continue; - end_IL_06ec: - break; - } - } - } - catch (Exception ex) - { - _200F_202D_206C_200B_202E_206B_202A_202B_206C_206E_202D_200E_200C_200E_206B_206A_206A_202D_206A_202E_200E_206E_202A_206C_202C_206C_202A_202E_200C_202E_200B_206C_206B_206C_200E_206D_200E_206E_200E_200F_202E((ILogger)_logger, ex, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(57710941), Array.Empty<object>()); - _200F_202D_200F_206E_206F_206E_202C_200F_200F_206E_206C_206F_206E_206F_200E_200F_200E_206D_200B_200C_202C_206A_202E_206F_206F_200F_202C_202B_206E_206C_206D_200F_202A_206F_206A_200F_206E_206D_202E_206F_202E(_chatGui, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1443100882), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1531843937)); - return; - } } } + try + { + (QuestProgress, ECurrentQuestType)? currentQuestDetails = CurrentQuestDetails; + bool isSimulation = currentQuestDetails.HasValue && currentQuestDetails.GetValueOrDefault().Item2 == ECurrentQuestType.Simulated; + foreach (ITask item in _taskCreator.CreateTasks(CurrentQuest.Quest, CurrentQuest.Sequence, questSequence, questStep, isSimulation)) + { + _taskQueue.Enqueue(item); + } + } + catch (Exception exception) + { + _logger.LogError(exception, "Failed to create tasks"); + _chatGui.PrintError("Failed to start next task sequence, please check /xllog for details.", "Questionable", 576); + Stop("Tasks failed to create"); + } } - [MethodImpl(MethodImplOptions.NoInlining)] public string ToStatString() { ITask task = _taskQueue.CurrentTaskExecutor?.CurrentTask; - int num = ((task != null) ? 538826814 : 538826815); - while (true) + if (task != null) { - int num2 = num; - int num3 = 538826814; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(4, 2); - defaultInterpolatedStringHandler2.AppendFormatted(task); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1973925937)); - defaultInterpolatedStringHandler2.AppendFormatted(_taskQueue.RemainingTasks.Count()); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - return defaultInterpolatedStringHandler2.ToStringAndClear(); - } - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(5, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-7763818)); - defaultInterpolatedStringHandler.AppendFormatted(_taskQueue.RemainingTasks.Count()); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - case 2: - goto IL_0103; - } - continue; - IL_0103: - num = 538826815; + return $"{task} (+{_taskQueue.RemainingTasks.Count()})"; } + return $"- (+{_taskQueue.RemainingTasks.Count()})"; } public bool HasCurrentTaskExecutorMatching<T>([NotNullWhen(true)] out T? task) where T : class, ITaskExecutor { - T val = _taskQueue.CurrentTaskExecutor as T; - int num = ((val == null) ? 147381141 : 147381142); - while (true) + if (_taskQueue.CurrentTaskExecutor is T val) { - int num2 = num; - int num3 = 147381143; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_005e; - case 2: - task = null; - return false; - case 1: - task = val; - return true; - } - continue; - IL_005e: - num = 147381142; + task = val; + return true; } + task = null; + return false; } public bool HasCurrentTaskMatching<T>([NotNullWhen(true)] out T? task) where T : class, ITask { - T val = _taskQueue.CurrentTaskExecutor?.CurrentTask as T; - int num = ((val == null) ? 959194495 : 959194492); - while (true) + if (_taskQueue.CurrentTaskExecutor?.CurrentTask is T val) { - int num2 = num; - int num3 = 959194494; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_006e; - case 2: - task = val; - return true; - case 1: - task = null; - return false; - } - continue; - IL_006e: - num = 959194492; + task = val; + return true; } + task = null; + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Skip(ElementId elementId, byte currentQuestSequence) { - int num = ((!(_taskQueue.CurrentTaskExecutor?.CurrentTask is ISkippableTask)) ? (-1495300291) : (-1495300290)); - ITask task2 = default(ITask); - while (true) + if (_taskQueue.CurrentTaskExecutor?.CurrentTask is ISkippableTask) { - int num2 = num; - int num3 = -1495300294; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = -1495300290; - break; - case 4: - _taskQueue.CurrentTaskExecutor = null; - return; - case 1: - return; - case 7: - num = ((_taskQueue.CurrentTaskExecutor == null) ? (-1495300292) : (-1495300301)); - break; - case 9: - _taskQueue.CurrentTaskExecutor = null; - num = -1495300289; - break; - case 5: - num = ((!_taskQueue.TryPeek(out task2)) ? (-1495300304) : (-1495300296)); - break; - case 2: + _taskQueue.CurrentTaskExecutor = null; + } + else if (_taskQueue.CurrentTaskExecutor != null) + { + _taskQueue.CurrentTaskExecutor = null; + ITask task; + while (_taskQueue.TryPeek(out task)) { _taskQueue.TryDequeue(out ITask _); - num = ((!(task2 is ISkippableTask)) ? (-1495300289) : (-1495300302)); - break; + if (task is ISkippableTask) + { + return; + } } - case 0: - Stop(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1356164541)); + if (_taskQueue.AllTasksComplete) + { + Stop("Skip"); IncreaseStepCount(elementId, currentQuestSequence); - return; - case 10: - num = ((!_taskQueue.AllTasksComplete) ? (-1495300293) : (-1495300294)); - break; - case 6: - Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(645959712)); - IncreaseStepCount(elementId, currentQuestSequence); - num = -1495300293; - break; - case 8: - return; } } + else + { + Stop("SkipNx"); + IncreaseStepCount(elementId, currentQuestSequence); + } } public void SkipSimulatedTask() @@ -3403,261 +1376,109 @@ internal sealed class QuestController : MiniTaskController<QuestController> public bool IsInterruptible() { EAutomationType automationType = AutomationType; - int num = (((uint)(automationType - 3) > 1u) ? (-272252547) : (-272252565)); - QuestProgress item = default(QuestProgress); - bool flag2 = default(bool); - (ElementId, byte, bool, long) valueOrDefault = default((ElementId, byte, bool, long)); - QuestStep questStep = default(QuestStep); - (QuestProgress, ECurrentQuestType)? currentQuestDetails = default((QuestProgress, ECurrentQuestType)?); - QuestSequence questSequence = default(QuestSequence); - (ElementId, byte, bool, long)? interruptibleRouteCache = default((ElementId, byte, bool, long)?); - while (true) + if ((uint)(automationType - 2) <= 1u) { - int num2 = num; - int num3 = -272252566; - int num4 = num2; - object obj; - switch ((num4 | num3) - (num4 & num3)) + return false; + } + (QuestProgress, ECurrentQuestType)? currentQuestDetails = CurrentQuestDetails; + if (!currentQuestDetails.HasValue) + { + return false; + } + (QuestProgress, ECurrentQuestType) value = currentQuestDetails.Value; + var (questProgress, _) = value; + if (value.Item2 != ECurrentQuestType.Normal || !questProgress.Quest.Root.Interruptible || questProgress.Sequence == 0) + { + return false; + } + if (ManualPriorityQuests.Contains(questProgress.Quest)) + { + return false; + } + if (QuestData.HardModePrimals.Contains(questProgress.Quest.Id)) + { + return false; + } + if (questProgress.Quest.Info.AlliedSociety != EAlliedSociety.None) + { + return false; + } + QuestSequence questSequence = questProgress.Quest.FindSequence(questProgress.Sequence); + if (questProgress.Step > 0) + { + return false; + } + QuestStep questStep = questSequence?.FindStep(questProgress.Step); + if (questStep == null || !questStep.Position.HasValue) + { + return false; + } + (ElementId, byte, bool, long)? interruptibleRouteCache = _interruptibleRouteCache; + if (interruptibleRouteCache.HasValue) + { + (ElementId, byte, bool, long) valueOrDefault = interruptibleRouteCache.GetValueOrDefault(); + if (valueOrDefault.Item1 == questProgress.Quest.Id && valueOrDefault.Item2 == questProgress.Sequence && Environment.TickCount64 - valueOrDefault.Item4 < 2000) { - case 10: - num = ((!_200F_206B_206B_202C_200E_206D_202E_206D_206A_206C_200D_202C_200C_200E_200D_200D_206C_200E_202B_200C_202A_206F_202E_200C_200D_206A_200C_200F_206D_206E_206A_206F_206A_202C_206B_206A_200E_206F_200D_200D_202E(item.Quest.Root)) ? (-272252545) : (-272252558)); - break; - case 16: - obj = null; - goto IL_03ea; - case 11: - return false; - case 1: - flag2 = true; - num = -272252556; - break; - case 7: - return false; - case 3: - num = ((_200F_202C_206D_200F_200D_206C_206B_200E_202D_202E_206E_206B_202C_200C_202E_202B_200E_202A_202D_200F_202E_206B_206A_206A_200B_202D_202E_200C_206D_202D_200B_202A_206E_206D_202E_200C_206F_200B_200F_206B_202E() - valueOrDefault.Item4 >= 2000) ? (-272252568) : (-272252574)); - break; - case 22: - num = -272252565; - break; - case 27: - num = ((!QuestData.HardModePrimals.Contains(item.Quest.Id)) ? (-272252570) : (-272252573)); - break; - case 9: - return false; - case 30: - num = ((!flag2) ? (-272252572) : (-272252546)); - break; - case 23: - flag2 = false; - num = -272252556; - break; - case 2: - { - bool flag = _smartNavRouteEnqueuer.RouteStartsWithTeleport(_206E_202A_206F_206D_206A_202E_200D_202E_206B_206D_202D_200C_200B_206C_202C_206D_200D_206F_202C_202A_200C_202E_206F_200B_206E_206C_206F_202A_200D_206D_206C_202B_202A_202C_200B_202D_200D_206D_206A_200D_202E(questStep), _202C_202D_202C_200F_200E_206E_200B_200D_202E_200E_206D_202B_206E_206D_206B_202D_202E_206E_206E_200B_200D_200F_202D_200F_206D_206E_206E_206D_206D_206F_200F_200E_202E_200F_202C_202C_206D_200B_202E_200E_202E(questStep).Value); - _interruptibleRouteCache = (item.Quest.Id, item.Sequence, flag, _200F_202C_206D_200F_200D_206C_206B_200E_202D_202E_206E_206B_202C_200C_202E_202B_200E_202A_202D_200F_202E_206B_206A_206A_200B_202D_202E_200C_206D_202D_200B_202A_206E_206D_202E_200C_206F_200B_200F_206B_202E()); - return flag; - } - case 14: - currentQuestDetails = CurrentQuestDetails; - num = (currentQuestDetails.HasValue ? (-272252571) : (-272252549)); - break; - case 24: - num = ((item.Sequence != 0) ? (-272252564) : (-272252545)); - break; - case 18: - num = ((questSequence != null) ? (-272252557) : (-272252550)); - break; - case 13: - valueOrDefault = interruptibleRouteCache.GetValueOrDefault(); - num = ((!_206F_202D_202C_200B_202C_202C_202A_206B_202B_200E_202B_206C_206D_206F_206F_200B_202B_200C_202E_206C_200B_206F_202D_200F_202C_202E_206D_206E_200E_206D_200D_206B_202C_206C_202E_200F_206D_202B_200B_200D_202E(valueOrDefault.Item1, item.Quest.Id)) ? (-272252568) : (-272252561)); - break; - case 28: - return false; - case 12: - num = ((item.Quest.Info.AlliedSociety == EAlliedSociety.None) ? (-272252566) : (-272252563)); - break; - case 0: - questSequence = item.Quest.FindSequence(item.Sequence); - num = ((item.Step <= 0) ? (-272252552) : (-272252554)); - break; - case 20: - return false; - case 5: - num = ((valueOrDefault.Item2 != item.Sequence) ? (-272252568) : (-272252567)); - break; - case 19: - if (_202D_202A_206B_206A_200D_200F_200C_202C_200F_206A_200E_206D_202C_206B_206B_206D_202B_200C_202C_206A_200D_206B_202B_202B_200D_206C_200F_206A_206A_200B_200F_200B_200D_200C_200D_202C_206E_200F_206E_202E_202E(questStep).HasValue) - { - num = -272252562; - break; - } - goto case 29; - case 29: - num = -272252575; - break; - case 6: - num = ((!ManualPriorityQuests.Contains(item.Quest)) ? (-272252559) : (-272252560)); - break; - case 4: - interruptibleRouteCache = _interruptibleRouteCache; - num = ((!interruptibleRouteCache.HasValue) ? (-272252568) : (-272252569)); - break; - case 21: - return false; - case 26: - return false; - case 17: - return false; - case 25: - obj = _200D_202C_200C_202B_202C_200C_200C_200F_202C_200B_200E_200D_206E_200B_200E_202B_200B_206D_206D_200F_206F_202D_206A_206B_200E_206E_200F_206D_200B_200E_202A_202D_200E_200D_206C_200D_202D_202B_206A_206D_202E(questSequence, item.Step); - goto IL_03ea; - case 8: return valueOrDefault.Item3; - case 15: - { - (QuestProgress, ECurrentQuestType) value = currentQuestDetails.Value; - item = value.Item1; - num = ((value.Item2 != ECurrentQuestType.Normal) ? (-272252545) : (-272252576)); - break; - } - IL_03ea: - questStep = (QuestStep)obj; - num = ((questStep != null) ? (-272252551) : (-272252553)); - break; } } + bool flag = _smartNavRouteEnqueuer.RouteStartsWithTeleport(questStep.TerritoryId, questStep.Position.Value); + _interruptibleRouteCache = (questProgress.Quest.Id, questProgress.Sequence, flag, Environment.TickCount64); + return flag; } public bool TryPickPriorityQuest() { - int num = ((!IsInterruptible()) ? (-1793325779) : (-1793325780)); - Questionable.Model.Quest quest = default(Questionable.Model.Quest); - ElementId elementId = default(ElementId); - while (true) + if (!IsInterruptible() || _nextQuest != null || _simulatedQuest != null) { - int num2 = num; - int num3 = -1793325781; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 8: - SetNextQuest(quest); - return true; - case 6: - return false; - case 7: - num = ((_nextQuest != null) ? (-1793325779) : (-1793325783)); - break; - case 9: - num = ((!_206F_202D_202C_200B_202C_202C_202A_206B_202B_200E_202B_206C_206D_206F_206F_200B_202B_200C_202E_206C_200B_206F_202D_200F_202C_202E_206D_206E_200E_206D_200D_206B_202C_206C_202E_200F_206D_202B_200B_200D_202E(elementId, _startedQuest.Quest.Id)) ? (-1793325791) : (-1793325777)); - break; - case 1: - num = ((_startedQuest == null) ? (-1793325791) : (-1793325790)); - break; - case 11: - return false; - case 3: - elementId = (from x in _questFunctions.GetNextPriorityQuestsThatCanBeAccepted() - where x.IsAvailable - select x.QuestId).FirstOrDefault(); - num = ((!_206F_202D_202C_200B_202C_202C_202A_206B_202B_200E_202B_206C_206D_206F_206F_200B_202B_200C_202E_206C_200B_206F_202D_200F_202C_202E_206D_206E_200E_206D_200D_206B_202C_206C_202E_200F_206D_202B_200B_200D_202E(elementId, (ElementId)null)) ? (-1793325782) : (-1793325781)); - break; - case 0: - return false; - case 12: - num = ((_simulatedQuest == null) ? (-1793325784) : (-1793325779)); - break; - case 2: - num = ((_gatheringQuest != null) ? (-1793325779) : (-1793325785)); - break; - case 10: - num = ((!_questRegistry.TryGetQuest(elementId, out quest)) ? (-1793325792) : (-1793325789)); - break; - case 5: - num = -1793325780; - break; - case 4: - return false; - } + return false; } + ElementId elementId = (from x in _questFunctions.GetNextPriorityQuestsThatCanBeAccepted() + where x.IsAvailable + select x.QuestId).FirstOrDefault(); + if (elementId == null) + { + return false; + } + if (_startedQuest != null && elementId == _startedQuest.Quest.Id) + { + return false; + } + if (_questRegistry.TryGetQuest(elementId, out Quest quest)) + { + SetNextQuest(quest); + return true; + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public bool ImportQuestPriority(List<ElementId> questElements) { - List<Questionable.Model.Quest> list = new List<Questionable.Model.Quest>(); - int num; - using (List<ElementId>.Enumerator enumerator = questElements.GetEnumerator()) + List<Quest> list = new List<Quest>(); + foreach (ElementId questElement in questElements) { - num = 1088990833; - ElementId current = default(ElementId); - Questionable.Model.Quest quest = default(Questionable.Model.Quest); - while (true) + if (_questRegistry.TryGetQuest(questElement, out Quest quest)) { - int num2 = num; - int num3 = 1088990832; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - _200F_206F_202B_206C_202D_202A_202A_200B_206F_206F_206C_206F_202C_206C_206E_200F_202A_202E_202B_202B_206E_206C_206A_202A_200E_202A_206B_206A_206E_202C_200C_206B_200D_200B_200C_202E_200F_200C_206A_206A_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1620872938), new object[1] { current }); - num = 1088990833; - break; - case 4: - current = enumerator.Current; - num = ((!_questRegistry.TryGetQuest(current, out quest)) ? 1088990837 : 1088990832); - break; - case 0: - list.Add(quest); - num = 1088990833; - break; - case 1: - num = (enumerator.MoveNext() ? 1088990836 : 1088990834); - break; - case 3: - num = 1088990833; - break; - case 2: - goto end_IL_0019; - } + list.Add(quest); continue; - end_IL_0019: - break; } + _logger.LogWarning("Could not find quest {QuestId} during import", questElement); } - num = ((list.Count != 0) ? (-1930214335) : (-1930214334)); - while (true) + if (list.Count == 0) { - int num5 = num; - int num3 = -1930214333; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 0: - goto IL_0156; - case 2: - ManualPriorityQuests.Clear(); - ManualPriorityQuests.AddRange(list); - _200B_202C_206A_200E_202B_206A_202B_206D_206A_202D_200C_200D_202D_200F_206B_206C_206B_206B_202C_202B_200D_202E_202C_206F_206C_202E_206C_202D_202A_200D_202E_200B_206B_200C_206E_200F_202D_206F_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1848291425), new object[1] { ManualPriorityQuests.Count }); - SavePriorityQuests(); - return true; - case 1: - _200F_206F_202B_206C_202D_202A_202A_200B_206F_206F_206C_206F_202C_206C_206E_200F_202A_202E_202B_202B_206E_206C_206A_202A_200E_202A_206B_206A_206E_202C_200C_206B_200D_200B_200C_202E_200F_200C_206A_206A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(337890676), Array.Empty<object>()); - return false; - } - continue; - IL_0156: - num = -1930214334; + _logger.LogWarning("Priority import contained no known quests; keeping existing list"); + return false; } + ManualPriorityQuests.Clear(); + ManualPriorityQuests.AddRange(list); + _logger.LogInformation("Imported {Count} priority quests", ManualPriorityQuests.Count); + SavePriorityQuests(); + return true; } public string ExportQuestPriority() { - return string.Join(';', ManualPriorityQuests.Select((Questionable.Model.Quest x) => _003C_003Ec._202B_206B_206E_206A_200D_206F_202C_200F_206E_200D_200E_202E_200C_206E_200C_202A_200C_200B_202D_206D_202E_206B_202B_206B_206C_200F_200C_206C_206D_206F_200D_200E_202A_202B_206E_206F_200B_206E_206A_202E((object)x.Id))); + return string.Join(';', ManualPriorityQuests.Select((Quest x) => x.Id.ToString())); } public void ClearQuestPriority() @@ -3668,336 +1489,112 @@ internal sealed class QuestController : MiniTaskController<QuestController> public bool AddQuestPriority(ElementId elementId) { - Questionable.Model.Quest quest; - int num = ((!_questRegistry.TryGetQuest(elementId, out quest)) ? (-1948690757) : (-1948690759)); - while (true) + if (_questRegistry.TryGetQuest(elementId, out Quest quest) && !ManualPriorityQuests.Contains(quest)) { - int num2 = num; - int num3 = -1948690760; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1948690759; - break; - case 3: - return false; - case 1: - num = (ManualPriorityQuests.Contains(quest) ? (-1948690757) : (-1948690760)); - break; - case 0: - ManualPriorityQuests.Add(quest); - SavePriorityQuests(); - return true; - } + ManualPriorityQuests.Add(quest); + SavePriorityQuests(); + return true; } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public int AddAllAvailableQuests() { - List<ElementId> list = (from q in _questRegistry.AllQuests.Where([MethodImpl(MethodImplOptions.NoInlining)] (Questionable.Model.Quest quest2) => + List<ElementId> list = (from q in _questRegistry.AllQuests.Where(delegate(Quest quest2) { - int num14 = (_200E_202C_202A_202B_202C_202E_202A_200E_202A_200D_200E_202C_206F_206A_206C_200F_206D_206C_202D_206D_206C_202A_202E_202C_202A_202A_202C_206F_206F_206A_206A_206F_200F_200E_200E_200B_202C_200B_206C_202E_202E(quest2.Root) ? (-1663681159) : (-1663681160)); - QuestInfo questInfo = default(QuestInfo); - while (true) + if (quest2.Root.Disabled || _questFunctions.IsQuestRemoved(quest2.Id) || _questFunctions.IsQuestComplete(quest2.Id) || _questFunctions.IsQuestAccepted(quest2.Id) || quest2.Info.IsRepeatable) { - int num15 = num14; - int num16 = -1663681159; - int num17 = num15; - switch ((num17 | num16) - (num17 & num16)) - { - case 7: - num14 = ((questInfo.JournalGenre != _journalData.MoogleDeliveryGenreId.Value) ? (-1663681153) : (-1663681156)); - break; - case 3: - num14 = ((!_journalData.MoogleDeliveryGenreId.HasValue) ? (-1663681153) : (-1663681154)); - break; - case 6: - num14 = (_questFunctions.IsReadyToAcceptQuest(quest2.Id) ? (-1663681157) : (-1663681163)); - break; - case 11: - num14 = ((!quest2.Info.IsRepeatable) ? (-1663681165) : (-1663681159)); - break; - case 10: - questInfo = quest2.Info as QuestInfo; - num14 = ((questInfo == null) ? (-1663681153) : (-1663681158)); - break; - case 12: - _202B_206D_202D_206B_202B_206C_200C_206F_202B_206E_206C_202E_202E_206C_200B_202D_206E_206F_206E_206E_200C_206B_202E_202E_206A_202D_206D_206B_200F_200B_200C_202A_206C_202D_206F_202B_206E_202E_202E_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(151994669), new object[1] { quest2.Id }); - return false; - case 0: - return false; - case 1: - num14 = (_questFunctions.IsQuestRemoved(quest2.Id) ? (-1663681159) : (-1663681168)); - break; - case 4: - num14 = -1663681160; - break; - case 5: - _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1002258107), new object[1] { quest2.Id }); - return false; - case 2: - return true; - case 9: - num14 = (_questFunctions.IsQuestComplete(quest2.Id) ? (-1663681159) : (-1663681167)); - break; - case 8: - num14 = (_questFunctions.IsQuestAccepted(quest2.Id) ? (-1663681159) : (-1663681166)); - break; - } + return false; } + if (quest2.Info is QuestInfo questInfo && _journalData.MoogleDeliveryGenreId.HasValue && questInfo.JournalGenre == _journalData.MoogleDeliveryGenreId.Value) + { + _logger.LogDebug("Excluding moogle delivery quest {QuestId} from bulk add", quest2.Id); + return false; + } + if (!_questFunctions.IsReadyToAcceptQuest(quest2.Id)) + { + _logger.LogTrace("Quest {QuestId} not ready to accept", quest2.Id); + return false; + } + return true; }) select q.Id).ToList(); - _200B_202C_206A_200E_202B_206A_202B_206D_206A_202D_200C_200D_202D_200F_206B_206C_206B_206B_202C_202B_200D_202E_202C_206F_206C_202E_206C_202D_202A_200D_202E_200B_206B_200C_206E_200F_202D_206F_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-408449636), new object[1] { list.Count }); + _logger.LogInformation("Adding {Count} available quests to priority queue", list.Count); int num = 0; - int num2; - using (List<ElementId>.Enumerator enumerator = list.GetEnumerator()) + foreach (ElementId item in list) { - num2 = 1101482974; - Questionable.Model.Quest quest = default(Questionable.Model.Quest); - while (true) + if (_questRegistry.TryGetQuest(item, out Quest quest) && !ManualPriorityQuests.Contains(quest)) { - int num3 = num2; - int num4 = 1101482972; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 3: - num2 = 1101482974; - break; - case 5: - num2 = (ManualPriorityQuests.Contains(quest) ? 1101482974 : 1101482968); - break; - case 4: - { - ManualPriorityQuests.Add(quest); - int num8 = num; - num4 = 1; - num5 = num8; - int num9 = num5 ^ num4; - int num10 = num5 & num4; - num = num9 + (num10 + num10); - num2 = 1101482974; - break; - } - case 1: - { - ElementId current = enumerator.Current; - num2 = ((!_questRegistry.TryGetQuest(current, out quest)) ? 1101482974 : 1101482969); - break; - } - case 2: - num2 = (enumerator.MoveNext() ? 1101482973 : 1101482972); - break; - case 0: - goto end_IL_0087; - } - continue; - end_IL_0087: - break; + ManualPriorityQuests.Add(quest); + num++; } } - num2 = ((num <= 0) ? 346489570 : 346489569); - while (true) + if (num > 0) { - int num11 = num2; - int num4 = 346489571; - int num5 = num11; - int num12 = num5 + num4; - int num13 = num5 & num4; - switch (num12 - (num13 + num13)) - { - case 0: - num2 = 346489569; - break; - case 1: - return num; - case 2: - SavePriorityQuests(); - num2 = 346489570; - break; - } + SavePriorityQuests(); } + return num; } - [MethodImpl(MethodImplOptions.NoInlining)] public bool InsertQuestPriority(int index, ElementId elementId) { try { - Questionable.Model.Quest quest; - int num = ((!_questRegistry.TryGetQuest(elementId, out quest)) ? (-1714455878) : (-1714455877)); - while (true) + if (_questRegistry.TryGetQuest(elementId, out Quest quest) && !ManualPriorityQuests.Contains(quest)) { - int num2 = num; - int num3 = -1714455880; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1714455877; - break; - case 1: - ManualPriorityQuests.Insert(index, quest); - SavePriorityQuests(); - num = -1714455878; - break; - case 3: - num = (ManualPriorityQuests.Contains(quest) ? (-1714455878) : (-1714455879)); - break; - case 2: - return true; - } + ManualPriorityQuests.Insert(index, quest); + SavePriorityQuests(); } + return true; } - catch (Exception ex) + catch (Exception exception) { - _200F_202D_206C_200B_202E_206B_202A_202B_206C_206E_202D_200E_200C_200E_206B_206A_206A_202D_206A_202E_200E_206E_202A_206C_202C_206C_202A_202E_200C_202E_200B_206C_206B_206C_200E_206D_200E_206E_200E_200F_202E((ILogger)_logger, ex, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1714631835), Array.Empty<object>()); - _200F_202D_200F_206E_206F_206E_202C_200F_200F_206E_206C_206F_206E_206F_200E_200F_200E_206D_200B_200C_202C_206A_202E_206F_206F_200F_202C_202B_206E_206C_206D_200F_202A_206F_206A_200F_206E_206D_202E_206F_202E(_chatGui, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1891905702), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); + _logger.LogError(exception, "Failed to insert quest in priority list"); + _chatGui.PrintError("Failed to insert quest in priority list, please check /xllog for details.", "Questionable", 576); return false; } } - [MethodImpl(MethodImplOptions.NoInlining)] public void LoadPriorityQuests() { - int num = (_configuration.General.PersistPriorityQuestsBetweenSessions ? (-422838411) : (-422838410)); - ElementId current = default(ElementId); - Questionable.Model.Quest quest = default(Questionable.Model.Quest); - while (true) + if (!_configuration.General.PersistPriorityQuestsBetweenSessions) { - int num2 = num; - int num3 = -422838409; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _logger.LogDebug("Priority quest persistence is disabled, skipping load"); + return; + } + ManualPriorityQuests.Clear(); + foreach (ElementId priorityQuest in _configuration.General.PriorityQuests) + { + if (_questRegistry.TryGetQuest(priorityQuest, out Quest quest)) { - case 0: - goto IL_0056; - case 1: - _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(723025887), Array.Empty<object>()); - return; - case 2: - { - ManualPriorityQuests.Clear(); - using (List<ElementId>.Enumerator enumerator = _configuration.General.PriorityQuests.GetEnumerator()) - { - num = -422480032; - while (true) - { - int num5 = num; - num3 = -422480028; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 5: - num = -422480032; - break; - case 4: - num = (enumerator.MoveNext() ? (-422480027) : (-422480025)); - break; - case 0: - _200F_206F_202B_206C_202D_202A_202A_200B_206F_206F_206C_206F_202C_206C_206E_200F_202A_202E_202B_202B_206E_206C_206A_202A_200E_202A_206B_206A_206E_202C_200C_206B_200D_200B_200C_202E_200F_200C_206A_206A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-977297815), new object[1] { current }); - num = -422480032; - break; - case 2: - ManualPriorityQuests.Add(quest); - num = -422480032; - break; - case 1: - current = enumerator.Current; - num = ((!_questRegistry.TryGetQuest(current, out quest)) ? (-422480028) : (-422480026)); - break; - case 3: - goto end_IL_00a8; - } - continue; - end_IL_00a8: - break; - } - } - num = ((ManualPriorityQuests.Count <= 0) ? 414595989 : 414595988); - while (true) - { - int num8 = num; - num3 = 414595989; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 0: - return; - case 1: - _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(460931309), new object[1] { ManualPriorityQuests.Count }); - num = 414595989; - break; - case 2: - num = 414595988; - break; - } - } + ManualPriorityQuests.Add(quest); + continue; } - } - continue; - IL_0056: - num = -422838410; + _logger.LogWarning("Could not find quest {QuestId} during load from config", priorityQuest); + } + if (ManualPriorityQuests.Count > 0) + { + _logger.LogDebug("Loaded {Count} priority quests from configuration", ManualPriorityQuests.Count); } } - [MethodImpl(MethodImplOptions.NoInlining)] public void SavePriorityQuests() { - int num = (_configuration.General.PersistPriorityQuestsBetweenSessions ? (-2116182895) : (-2116182894)); - while (true) + if (!_configuration.General.PersistPriorityQuestsBetweenSessions) { - int num2 = num; - int num3 = -2116182893; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - _configuration.General.PriorityQuests = ManualPriorityQuests.Select((Questionable.Model.Quest q) => q.Id).ToList(); - _206C_206B_206A_206C_206E_202D_206B_202C_202A_206C_202A_202E_202C_202C_206F_200D_202D_206B_206B_202E_202C_206F_202E_206A_200C_206A_202C_206D_200E_202E_206F_200F_200C_206D_206D_206D_202D_202A_206C_206E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1313328163), new object[1] { ManualPriorityQuests.Count }); - return; - case 1: - _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1550865690), Array.Empty<object>()); - return; - case 0: - goto IL_00ed; - } - continue; - IL_00ed: - num = -2116182894; + _logger.LogDebug("Priority quest persistence is disabled, skipping save"); + return; } + _configuration.General.PriorityQuests = ManualPriorityQuests.Select((Quest q) => q.Id).ToList(); + _pluginInterface.SavePluginConfig(_configuration); + _logger.LogDebug("Saved {Count} priority quests to configuration", ManualPriorityQuests.Count); } private void OnConditionChange(ConditionFlag flag, bool value) { - IConditionChangeAware conditionChangeAware = _taskQueue.CurrentTaskExecutor as IConditionChangeAware; - int num = ((conditionChangeAware == null) ? 941144063 : 941144062); - while (true) + if (_taskQueue.CurrentTaskExecutor is IConditionChangeAware conditionChangeAware) { - int num2 = num; - int num3 = 941144063; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 941144062; - break; - case 1: - conditionChangeAware.OnConditionChange(flag, value); - num = 941144063; - break; - case 0: - return; - } + conditionChangeAware.OnConditionChange(flag, value); } } @@ -4008,90 +1605,34 @@ internal sealed class QuestController : MiniTaskController<QuestController> protected override void HandleInterruption(object? sender, EventArgs e) { - int num = (IsRunning ? (-1655978351) : (-1655978346)); - while (true) + if (IsRunning && AutomationType != EAutomationType.Manual) { - int num2 = num; - int num3 = -1655978350; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return; - case 4: - return; - case 2: - num = -1655978346; - break; - case 3: - num = ((AutomationType != EAutomationType.Manual) ? (-1655978349) : (-1655978350)); - break; - case 1: - base.HandleInterruption(sender, e); - return; - } + base.HandleInterruption(sender, e); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void OnLogout(int type, int code) { - StopAllDueToConditionFailed(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(388867250)); - int num = ((!_configuration.General.ClearPriorityQuestsOnLogout) ? (-1679940303) : (-1679940301)); - while (true) + StopAllDueToConditionFailed("Logged out"); + if (_configuration.General.ClearPriorityQuestsOnLogout) { - int num2 = num; - int num3 = -1679940302; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _logger.LogDebug("Clearing priority quests on logout"); + ManualPriorityQuests.Clear(); + if (_configuration.General.PersistPriorityQuestsBetweenSessions) { - case 2: - num = -1679940301; - break; - case 0: _configuration.General.PriorityQuests.Clear(); - _206C_206B_206A_206C_206E_202D_206B_202C_202A_206C_202A_202E_202C_202C_206F_200D_202D_206B_206B_202E_202C_206F_202E_206A_200C_206A_202C_206D_200E_202E_206F_200F_200C_206D_206D_206D_202D_202A_206C_206E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - num = -1679940303; - break; - case 1: - _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(367298565), Array.Empty<object>()); - ManualPriorityQuests.Clear(); - num = ((!_configuration.General.PersistPriorityQuestsBetweenSessions) ? (-1679940303) : (-1679940302)); - break; - case 3: - return; + _pluginInterface.SavePluginConfig(_configuration); } } } - [MethodImpl(MethodImplOptions.NoInlining)] private void OnPlayerInputDetected(object? sender, EventArgs e) { - int num = ((AutomationType == EAutomationType.Manual) ? (-1200992727) : (-1200992728)); - while (true) + if (AutomationType != EAutomationType.Manual && IsRunning) { - int num2 = num; - int num3 = -1200992727; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -1200992728; - break; - case 0: - return; - case 1: - num = ((!IsRunning) ? (-1200992727) : (-1200992726)); - break; - case 3: - _200B_202C_206A_200E_202B_206A_202B_206D_206A_202D_200C_200D_202D_200F_206B_206C_206B_206B_202C_202B_200D_202E_202C_206F_206C_202E_206C_202D_202A_200D_202E_200B_206B_200C_206E_200F_202D_206F_206D_206F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1330855423), Array.Empty<object>()); - _206B_200E_206D_202B_200F_206D_202C_206C_206B_200F_200D_202B_202A_200B_202E_206D_200B_206E_202D_200D_206F_202C_206E_202C_206A_206C_206F_200D_202D_200C_206A_206D_202E_200D_206F_202C_200E_202C_206E_200E_202E(_chatGui, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1328600292), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(983889024)); - num = -1200992727; - break; - } + _logger.LogInformation("Player input detected during movement, stopping quest automation"); + _chatGui.Print("Player input detected - stopping quest automation.", "Questionable", 576); + Stop("Player input detected"); } } @@ -4099,359 +1640,33 @@ internal sealed class QuestController : MiniTaskController<QuestController> { RefreshQuestReference(_startedQuest); RefreshQuestReference(_nextQuest); - RefreshQuestReference(_gatheringQuest); RefreshQuestReference(_pendingQuest); - int num = 0; - int num2 = -375466383; - Questionable.Model.Quest quest = default(Questionable.Model.Quest); - while (true) + for (int i = 0; i < ManualPriorityQuests.Count; i++) { - int num3 = num2; - int num4 = -375466384; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) + if (_questRegistry.TryGetQuest(ManualPriorityQuests[i].Id, out Quest quest)) { - case 3: - ManualPriorityQuests[num] = quest; - num2 = -375466380; - break; - case 1: - num2 = ((num < ManualPriorityQuests.Count) ? (-375466382) : (-375466379)); - break; - case 4: - { - int num8 = num; - num4 = 1; - num5 = num8; - num = (num5 | num4) + (num5 & num4); - num2 = -375466383; - break; - } - case 0: - num2 = -375466383; - break; - case 5: - _interruptibleRouteCache = null; - return; - case 2: - num2 = ((!_questRegistry.TryGetQuest(ManualPriorityQuests[num].Id, out quest)) ? (-375466380) : (-375466381)); - break; + ManualPriorityQuests[i] = quest; } } + _interruptibleRouteCache = null; } private void RefreshQuestReference(QuestProgress? progress) { - int num = ((progress == null) ? (-1904312467) : (-1904312465)); - Questionable.Model.Quest quest = default(Questionable.Model.Quest); - while (true) + if (progress != null && _questRegistry.TryGetQuest(progress.Quest.Id, out Quest quest)) { - int num2 = num; - int num3 = -1904312466; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1904312465; - break; - case 1: - num = ((!_questRegistry.TryGetQuest(progress.Quest.Id, out quest)) ? (-1904312467) : (-1904312466)); - break; - case 0: - progress.ReplaceQuest(quest); - num = -1904312467; - break; - case 3: - return; - } + progress.ReplaceQuest(quest); } } public override void Dispose() { _questRegistry.Reloaded -= OnQuestRegistryReloaded; - _200C_200D_200C_206E_206E_206E_206B_200D_206D_206B_202A_202D_206A_202E_206C_200B_206B_206C_206F_202C_206B_206D_200F_202C_202C_206D_202C_200C_206B_206C_202A_206A_202B_206E_200E_202D_202D_202B_202A_200F_202E(_toastGui, (IToastGui.OnErrorToastDelegate)base.OnErrorToast); - _202C_202B_206C_200F_206A_206F_206D_206C_200B_202D_206C_200D_202C_202B_200F_202E_206E_200B_200D_206B_206E_200F_202C_200D_200E_200C_206C_200E_202D_206B_202A_200C_206D_202B_206F_202B_202B_206C_206D_206B_202E(_toastGui, (IToastGui.OnNormalToastDelegate)OnNormalToast); - _200F_206A_206B_200C_206F_202B_200E_202D_200F_202E_206A_206C_202C_200F_206E_200D_206A_206D_206D_202B_200C_202A_200D_206C_202B_200D_200B_200D_200C_206D_206F_202A_202A_206D_202D_206A_202A_206C_202E_200C_202E(_condition, (ICondition.ConditionChangeDelegate)OnConditionChange); - _202B_206D_202D_202D_202B_206F_202C_200B_200D_202B_206F_202E_206B_206C_200F_206C_206A_206E_200E_206A_202B_200E_200C_206B_202A_202D_200E_206E_202B_206E_206E_206C_202A_206C_206F_202E_202B_206B_206B_202E(_clientState, (IClientState.LogoutDelegate)OnLogout); + _toastGui.ErrorToast -= base.OnErrorToast; + _toastGui.Toast -= OnNormalToast; + _condition.ConditionChange -= OnConditionChange; + _clientState.Logout -= OnLogout; _movementController.PlayerInputDetected -= OnPlayerInputDetected; base.Dispose(); } - - static void _206C_202A_200E_200B_202B_206C_206E_202D_200D_200C_206B_206D_202B_206E_206F_202E_202D_206D_200E_200E_200D_206E_206B_202B_202A_206E_202B_200F_200D_200C_202D_202C_200F_206A_206F_206D_206D_206E_200E_206D_202E(IToastGui P_0, IToastGui.OnErrorToastDelegate P_1) - { - P_0.ErrorToast += P_1; - } - - static void _200C_206A_202E_202A_200F_202B_206D_200D_202B_206C_200E_202C_206F_206B_206C_206A_206F_206C_202D_200F_200E_206D_200D_202A_206A_206A_206F_206C_200D_206B_202A_200F_200F_200F_202C_206E_206A_206F_206D_202C_202E(IToastGui P_0, IToastGui.OnNormalToastDelegate P_1) - { - P_0.Toast += P_1; - } - - static void _202C_202A_202A_200C_202C_200B_200D_200B_200F_202E_200C_202A_200D_206C_206C_206E_200C_200D_202C_200E_202C_200B_202D_206B_202B_200C_202C_202B_202C_206D_206F_200F_206A_202D_206C_200F_206C_200D_202A_206C_202E(ICondition P_0, ICondition.ConditionChangeDelegate P_1) - { - P_0.ConditionChange += P_1; - } - - static void _202E_202A_206E_200D_202D_202D_202A_202A_200C_202A_200D_206F_206A_206A_206B_200C_200F_206C_200F_200D_206D_206B_202D_202E_200B_200F_206E_200F_200D_202E_200F_206C_200D_200D_202C_200B_200D_202B_202C_200C_202E(IClientState P_0, IClientState.LogoutDelegate P_1) - { - P_0.Logout += P_1; - } - - static void _200B_202A_206E_206C_200E_206C_206E_202A_206E_200B_206E_206B_202C_202A_202C_200E_200C_202B_200C_200E_206A_200D_206B_200D_200D_202D_202C_200F_202C_206D_202C_200B_200B_202E_202A_200F_202C_200F_200B_206A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static Delegate _200E_202A_206A_202D_200B_202C_202C_200E_202C_200D_206A_202D_200E_206E_200C_206F_206C_200C_206E_202C_200E_200C_200F_200E_206B_206D_202D_206C_200D_202B_200D_202B_202E_206C_206E_200F_206E_206B_200D_206D_202E(Delegate P_0, Delegate P_1) - { - return Delegate.Combine(P_0, P_1); - } - - static Delegate _200B_206D_200F_202D_202D_206B_202A_200B_202B_200F_202A_200B_206F_206A_206B_200D_206B_206F_206F_200D_206E_206E_202B_202A_206B_206D_200B_206C_202A_206C_202D_206C_202B_206A_206A_206E_206F_202A_200D_206B_202E(Delegate P_0, Delegate P_1) - { - return Delegate.Remove(P_0, P_1); - } - - static IPlayerCharacter _202A_206E_200F_206E_206D_202E_206B_202A_206B_200F_200C_206C_202A_206E_200D_206B_206B_206C_206A_200D_202B_200F_206D_206E_202C_200B_200B_206B_202A_200E_206E_200F_202A_206F_206A_206F_202C_200D_202A_206B_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static ushort _200E_202C_200B_200D_200F_202B_206C_206B_202A_206E_206D_200C_202C_206E_200F_200C_200C_206E_200D_202A_200B_206F_202B_202A_202C_202E_200F_206B_206D_200C_200D_202C_206D_200C_200D_200B_202E_202D_206A_200F_202E(ElementId P_0) - { - return P_0.Value; - } - - static void _200B_202C_206A_200E_202B_206A_202B_206D_206A_202D_200C_200D_202D_200F_206B_206C_206B_206B_202C_202B_200D_202E_202C_206F_206C_202E_206C_202D_202A_200D_202E_200B_206B_200C_206E_200F_202D_206F_206D_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static Task _206B_202B_206C_206B_206A_200C_206A_206B_206C_206E_200C_200C_200B_202D_202D_202B_206E_200F_206D_200C_206A_202E_206E_206D_200E_200F_206C_206F_200C_206B_200E_200B_202C_200B_202B_202A_206D_200B_202E_200F_202E(IFramework P_0, System.Action P_1) - { - return P_0.RunOnFrameworkThread(P_1); - } - - static TaskAwaiter _202C_200F_200B_200E_206E_202A_206C_200C_206F_200E_206F_200E_206C_200E_202D_202D_200B_202B_202C_200E_202C_200C_200C_200D_206D_206A_206D_200F_200C_202E_200C_206F_202C_202E_206A_202A_202B_200F_206D_206E_202E(Task P_0) - { - return P_0.GetAwaiter(); - } - - static float _200C_200B_202E_200D_206A_206D_206E_202C_200B_206E_200C_200E_202A_200C_202C_202C_206B_206F_206D_206B_206F_202E_206F_206A_200E_206A_202D_206B_206E_200F_206C_206F_200F_206B_206E_206C_200C_202E_202E_206D_202E(float P_0, float P_1) - { - return Math.Max(P_0, P_1); - } - - static long _200F_202C_206D_200F_200D_206C_206B_200E_202D_202E_206E_206B_202C_200C_202E_202B_200E_202A_202D_200F_202E_206B_206A_206A_200B_202D_202E_200C_206D_202D_200B_202A_206E_206D_202E_200C_206F_200B_200F_206B_202E() - { - return Environment.TickCount64; - } - - static bool _200C_206C_202D_202B_200C_202B_206D_202A_206E_206D_202E_202D_200D_202C_200F_202B_200B_206F_200D_206E_206D_202D_206E_206A_206B_200C_200E_200E_206F_200E_200B_206B_200D_202E_200B_200E_206C_202E_200D_206D_202E(IClientState P_0) - { - return P_0.IsLoggedIn; - } - - static bool _206F_202B_202C_206E_206C_200C_206E_206C_206A_206C_200D_202C_202E_202D_200F_200B_206A_206C_202D_202E_202D_206A_202A_202C_202E_200C_206F_206F_202B_206F_200F_202E_206E_202A_202B_206A_206E_200E_200C_206B_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static uint _202B_206D_200E_202E_200F_202D_200B_206C_202B_206B_206F_202A_200B_200B_202C_206E_200B_202B_206E_202C_200E_206C_200F_206F_200B_202D_206C_206F_206B_200E_202D_202A_206D_200B_206E_200C_202E_202E_202A_206E_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static void _200F_206F_202B_206C_202D_202A_202A_200B_206F_206F_206C_206F_202C_206C_206E_200F_202A_202E_202B_202B_206E_206C_206A_202A_200E_202A_206B_206A_206E_202C_200C_206B_200D_200B_200C_202E_200F_200C_206A_206A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static bool _206C_200C_206D_202E_206F_200B_206F_200F_206F_206D_200D_202A_200C_200C_200C_206F_202E_206F_200E_206D_200D_202B_200E_206B_202E_206B_200E_206C_202E_200D_206B_206B_202D_206E_206C_206C_200C_202C_206A_202E_202E(ICondition P_0) - { - return ConditionHelper.IsBetweenAreas(P_0); - } - - static bool _202C_202E_202E_202D_206F_200D_202D_202A_206E_202E_202E_200F_206E_206B_206C_202B_202E_202B_202A_200B_202C_206E_200C_202E_200B_206F_206D_206B_202C_200F_200C_202E_206C_206A_200F_202C_206F_200F_202E_202C_202E(IKeyState P_0, VirtualKey P_1) - { - return P_0[P_1]; - } - - static List<QuestStep> _206B_200F_202A_202A_200D_200E_202E_202C_202C_206F_206E_206D_206C_206D_202E_202A_200F_206D_206C_200F_206E_202B_206E_202E_200D_206F_206D_202D_202D_202A_200B_202E_206C_202C_202D_200E_206E_200E_206A_206B_202E(QuestSequence P_0) - { - return P_0.Steps; - } - - static bool _206F_202D_202C_200B_202C_202C_202A_206B_202B_200E_202B_206C_206D_206F_206F_200B_202B_200C_202E_206C_200B_206F_202D_200F_202C_202E_206D_206E_200E_206D_200D_206B_202C_206C_202E_200F_206D_202B_200B_200D_202E(ElementId P_0, ElementId P_1) - { - return P_0 == P_1; - } - - static RowRef<ClassJob> _206E_200C_200F_200B_202D_202C_200E_200E_206D_206B_206B_200E_206B_200D_200E_200E_200D_202B_206F_200B_202B_200B_206A_200D_200E_200E_206D_206D_206E_200B_206F_200C_206D_202E_200F_200F_200E_202C_202B_200D_202E(ICharacter P_0) - { - return P_0.ClassJob; - } - - static bool _206C_206E_206A_200D_202A_206B_202E_202A_200E_200F_206A_202E_206A_206E_202D_206D_202B_202C_202A_202C_206E_206C_200E_200C_206C_202B_200F_202A_206B_202D_202E_200F_202D_200B_200C_202C_206A_206A_202C_206B_202E(EClassJob P_0) - { - return P_0.IsLimitedJob(); - } - - static string _206F_200D_200C_206B_200F_206C_206A_200D_200D_200F_206F_206D_200D_200F_206E_206B_202C_202B_206B_206B_202E_200C_202B_202D_202E_200C_206E_200C_200F_206A_200E_200E_202A_202D_206B_206A_200F_202A_200E_206D_202E(EClassJob P_0) - { - return P_0.ToFriendlyString(); - } - - static string _200D_200B_200C_200D_202C_200F_202C_202C_200E_200D_202B_200D_206A_202B_206F_202E_202A_202A_200E_206F_206B_202C_206E_206E_202E_200F_202A_206D_202B_206E_200E_200E_206C_206B_202B_200F_200C_200F_202A_202E_202E(string P_0, string P_1, string P_2, string P_3) - { - return P_0 + P_1 + P_2 + P_3; - } - - static byte _200C_206C_200D_202E_202B_206C_200B_202E_202E_206E_206F_202E_200F_202C_200F_200E_206B_206B_200E_202B_202A_202A_206C_200F_206A_206E_206B_206F_202E_206E_206A_206B_200E_202E_200C_200F_200C_200B_206E_202A_202E(ICharacter P_0) - { - return P_0.Level; - } - - static bool _206B_202D_202B_202D_206D_206E_200E_202D_206A_200C_200B_200F_200B_206C_202C_206A_206C_206D_206A_202D_206D_200D_200E_206D_200E_202B_202E_200D_206E_200E_202A_206D_202B_206B_202A_206D_200E_206B_202C_206D_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } - - static byte _200F_206E_200C_202B_206B_202C_202C_200B_200F_202C_202A_200F_206F_200B_200F_206D_206E_200B_200C_206A_200B_206A_200C_200E_202C_200E_200D_202D_206F_202B_206C_200B_206B_206F_202D_200C_202C_206E_202A_200D_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - - static void _202D_202E_200E_202A_202D_206D_202C_202B_202C_202D_206C_206A_200F_202E_200F_206A_202B_202A_200D_206D_206B_202E_206E_206D_206F_206A_200C_200B_206B_200C_200E_206D_202D_200D_200C_206A_202E_200F_202D_202E_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static string _202A_206E_202E_206C_202A_202E_206A_202A_206B_202D_202B_200B_206B_206C_202D_200B_200D_202A_206F_206F_206A_200D_200F_206C_202E_206A_200D_200F_206B_206A_202B_202C_200F_200B_206A_200B_200C_206F_200C_200E_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static bool _206A_202C_206C_200C_206E_202A_200D_200B_202D_200F_202E_206C_202E_206E_202A_200F_200D_206C_200E_206B_200B_202A_206D_202E_200B_202B_206D_202D_206D_202A_202B_202E_202A_202D_200F_202B_206F_206B_202E_202E_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static int _200E_200D_202B_202D_206D_202B_202E_206C_200C_206B_206F_200D_206D_200F_200C_200E_200B_200B_202B_202C_206E_206B_200D_202A_202D_200E_202C_206A_206B_200C_202E_202C_206E_200B_200E_202B_202A_206A_202C_206E_202E() - { - return InventoryHelper.CountFreeInventorySlots(); - } - - static bool _200F_206F_202A_206A_206A_206A_202A_206B_206F_202E_206A_206F_202A_202D_202D_200C_206C_202C_206C_202A_202D_200B_202B_206A_206F_202D_206E_200B_206D_200C_206F_202B_200F_206B_200C_206C_206D_206C_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - - static string _202C_200E_206D_206B_202D_206B_206B_200E_202B_202C_202E_206D_206C_200F_200E_206A_200E_202C_206B_206D_200B_206C_206F_206F_202E_202E_206A_200C_200E_206D_200D_206C_206D_200E_200B_200F_206B_206E_200B_202B_202E(string P_0) - { - return P_0.Trim(); - } - - static int _206E_200F_206F_206F_200D_200C_200D_206E_206D_206D_206E_202B_200E_200B_206F_202C_206E_202E_206D_202A_202B_202E_200E_200E_206F_202C_206E_206B_200F_206E_206D_200E_200C_202C_206F_200E_206F_206A_200F_200C_202E(string P_0) - { - return P_0.Length; - } - - static bool _200C_200B_200C_200F_200B_200C_200D_202B_200D_206C_206D_202D_202C_200B_200C_202E_202E_202E_206D_200C_200B_202E_200D_202A_202E_202E_206F_202D_200D_200C_200C_202C_206D_202A_206C_206B_202C_206F_200D_200E_202E(string P_0, char P_1) - { - return P_0.StartsWith(P_1); - } - - static bool _206A_202A_200F_206D_200B_202D_200C_206A_206D_206D_206A_202D_206D_200C_202B_202D_202E_200F_202D_206D_200C_206E_200E_200C_200E_202D_206D_202A_206C_206C_200B_202B_200E_202C_202E_202E_202C_200F_202B_200C_202E(ICommandManager P_0, string P_1) - { - return P_0.ProcessCommand(P_1); - } - - static void _202A_206F_206A_206B_202D_202B_206A_200C_202D_202E_206E_206B_206F_200F_202D_202C_206B_200E_206B_200C_200F_200E_202E_202B_206C_206D_200F_206C_200C_202D_202E_200F_202C_200C_206A_200E_206B_200F_200E_206A_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogWarning(P_1, P_2, P_3); - } - - static void _200F_202D_200F_206E_206F_206E_202C_200F_200F_206E_206C_206F_206E_206F_200E_200F_200E_206D_200B_200C_202C_206A_202E_206F_206F_200F_202C_202B_206E_206C_206D_200F_202A_206F_206A_200F_206E_206D_202E_206F_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } - - static ushort _206E_202A_206F_206D_206A_202E_200D_202E_206B_206D_202D_200C_200B_206C_202C_206D_200D_206F_202C_202A_200C_202E_206F_200B_206E_206C_206F_202A_200D_206D_206C_202B_202A_202C_200B_202D_200D_206D_206A_200D_202E(QuestStep P_0) - { - return P_0.TerritoryId; - } - - static EInteractionType _202B_200C_200E_206F_206B_200C_206D_200B_202A_202A_200C_200F_206E_200B_202A_202C_202A_206F_202E_202E_206B_206C_200B_200B_206B_200F_206C_200C_206D_202B_202B_200D_202E_200C_206B_206C_206C_200C_200F_202D_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static void _200F_202D_206C_200B_202E_206B_202A_202B_206C_206E_202D_200E_200C_200E_206B_206A_206A_202D_206A_202E_200E_206E_202A_206C_202C_206C_202A_202E_200C_202E_200B_206C_206B_206C_200E_206D_200E_206E_200E_200F_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - - static bool _200F_206B_206B_202C_200E_206D_202E_206D_206A_206C_200D_202C_200C_200E_200D_200D_206C_200E_202B_200C_202A_206F_202E_200C_200D_206A_200C_200F_206D_206E_206A_206F_206A_202C_206B_206A_200E_206F_200D_200D_202E(QuestRoot P_0) - { - return P_0.Interruptible; - } - - static QuestStep _200D_202C_200C_202B_202C_200C_200C_200F_202C_200B_200E_200D_206E_200B_200E_202B_200B_206D_206D_200F_206F_202D_206A_206B_200E_206E_200F_206D_200B_200E_202A_202D_200E_200D_206C_200D_202D_202B_206A_206D_202E(QuestSequence P_0, int P_1) - { - return P_0.FindStep(P_1); - } - - static Vector3? _202D_202A_206B_206A_200D_200F_200C_202C_200F_206A_200E_206D_202C_206B_206B_206D_202B_200C_202C_206A_200D_206B_202B_202B_200D_206C_200F_206A_206A_200B_200F_200B_200D_200C_200D_202C_206E_200F_206E_202E_202E(QuestStep P_0) - { - return P_0.Position; - } - - static Vector3? _202C_202D_202C_200F_200E_206E_200B_200D_202E_200E_206D_202B_206E_206D_206B_202D_202E_206E_206E_200B_200D_200F_202D_200F_206D_206E_206E_206D_206D_206F_200F_200E_202E_200F_202C_202C_206D_200B_202E_200E_202E(QuestStep P_0) - { - return P_0.Position; - } - - static void _206C_206B_206A_206C_206E_202D_206B_202C_202A_206C_202A_202E_202C_202C_206F_200D_202D_206B_206B_202E_202C_206F_202E_206A_200C_206A_202C_206D_200E_202E_206F_200F_200C_206D_206D_206D_202D_202A_206C_206E_202E(IDalamudPluginInterface P_0, IPluginConfiguration P_1) - { - P_0.SavePluginConfig(P_1); - } - - static void _206B_200E_206D_202B_200F_206D_202C_206C_206B_200F_200D_202B_202A_200B_202E_206D_200B_206E_202D_200D_206F_202C_206E_202C_206A_206C_206F_200D_202D_200C_206A_206D_202E_200D_206F_202C_200E_202C_206E_200E_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); - } - - static void _200C_200D_200C_206E_206E_206E_206B_200D_206D_206B_202A_202D_206A_202E_206C_200B_206B_206C_206F_202C_206B_206D_200F_202C_202C_206D_202C_200C_206B_206C_202A_206A_202B_206E_200E_202D_202D_202B_202A_200F_202E(IToastGui P_0, IToastGui.OnErrorToastDelegate P_1) - { - P_0.ErrorToast -= P_1; - } - - static void _202C_202B_206C_200F_206A_206F_206D_206C_200B_202D_206C_200D_202C_202B_200F_202E_206E_200B_200D_206B_206E_200F_202C_200D_200E_200C_206C_200E_202D_206B_202A_200C_206D_202B_206F_202B_202B_206C_206D_206B_202E(IToastGui P_0, IToastGui.OnNormalToastDelegate P_1) - { - P_0.Toast -= P_1; - } - - static void _200F_206A_206B_200C_206F_202B_200E_202D_200F_202E_206A_206C_202C_200F_206E_200D_206A_206D_206D_202B_200C_202A_200D_206C_202B_200D_200B_200D_200C_206D_206F_202A_202A_206D_202D_206A_202A_206C_202E_200C_202E(ICondition P_0, ICondition.ConditionChangeDelegate P_1) - { - P_0.ConditionChange -= P_1; - } - - static void _202B_206D_202D_202D_202B_206F_202C_200B_200D_202B_206F_202E_206B_206C_200F_206C_206A_206E_200E_206A_202B_200E_200C_206B_202A_202D_200E_206E_202B_206E_206E_206C_202A_206C_206F_202E_202B_206B_206B_202E(IClientState P_0, IClientState.LogoutDelegate P_1) - { - P_0.Logout -= P_1; - } - - static bool _200E_202C_202A_202B_202C_202E_202A_200E_202A_200D_200E_202C_206F_206A_206C_200F_206D_206C_202D_206D_206C_202A_202E_202C_202A_202A_202C_206F_206F_206A_206A_206F_200F_200E_200E_200B_202C_200B_206C_202E_202E(QuestRoot P_0) - { - return P_0.Disabled; - } - - static void _202B_206D_202D_206B_202B_206C_200C_206F_202B_206E_206C_202E_202E_206C_200B_202D_206E_206F_206E_206E_200C_206B_202E_202E_206A_202D_206D_206B_200F_200B_200C_202A_206C_202D_206F_202B_206E_202E_202E_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogTrace(P_1, P_2); - } } diff --git a/Questionable/Questionable.Controller/QuestPriorityResolver.cs b/Questionable/Questionable.Controller/QuestPriorityResolver.cs index e6d0149..ab6d83f 100644 --- a/Questionable/Questionable.Controller/QuestPriorityResolver.cs +++ b/Questionable/Questionable.Controller/QuestPriorityResolver.cs @@ -1,17 +1,11 @@ -using System; using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Conditions; -using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Application.Network.WorkDefinitions; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.UI.Agent; using LLib.GameData; -using Lumina.Excel; -using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.Data; using Questionable.External; @@ -23,154 +17,6 @@ namespace Questionable.Controller; internal sealed class QuestPriorityResolver { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<QuestInfo, ushort> _003C_003E9__26_1; - - public static Func<QuestInfo, ElementId> _003C_003E9__27_0; - - public static Func<PriorityQuestInfo, ElementId> _003C_003E9__27_2; - - public static Func<QuestInfo, ushort> _003C_003E9__29_1; - - public static Func<QuestInfo, ushort> _003C_003E9__29_3; - - public static Func<PriorityQuestInfo, bool> _003C_003E9__29_4; - - public static Func<EClassJob, bool> _003C_003E9__29_7; - - public static Func<PriorityQuestInfo, ElementId> _003C_003E9__29_6; - - public static Func<(ElementId Quest, byte Sequence), bool> _003C_003E9__31_5; - - public static Func<PriorityQuestInfo, bool> _003C_003E9__32_0; - - public static Func<PriorityQuestInfo, ElementId> _003C_003E9__32_1; - - internal ushort _003CTryResolveInProgressClassQuest_003Eb__26_1(QuestInfo x) - { - return x.Level; - } - - internal ElementId _003CTryResolveClassJobPriority_003Eb__27_0(QuestInfo x) - { - return x.QuestId; - } - - internal ElementId _003CTryResolveClassJobPriority_003Eb__27_2(PriorityQuestInfo x) - { - return x.QuestId; - } - - internal ushort _003CTryResolveNewClassQuest_003Eb__29_1(QuestInfo x) - { - return x.Level; - } - - internal ushort _003CTryResolveNewClassQuest_003Eb__29_3(QuestInfo x) - { - return x.Level; - } - - internal bool _003CTryResolveNewClassQuest_003Eb__29_4(PriorityQuestInfo x) - { - return x.IsAvailable; - } - - internal bool _003CTryResolveNewClassQuest_003Eb__29_7(EClassJob job) - { - int num = (_200C_200E_202A_206B_200D_206D_200F_206B_200D_202C_202D_202A_202D_206C_200F_206C_206D_200E_200E_202B_202C_206C_206E_202B_206B_200D_206D_206C_200C_200C_202C_206B_200F_206A_200E_200D_206C_206F_202A_206C_202E(job) ? 1077632249 : 1077632248); - while (true) - { - int num2 = num; - int num3 = 1077632249; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return false; - case 1: - return !_206C_200C_202D_200E_206E_202C_206F_202D_200F_200E_206C_200B_202B_202E_206C_202E_200F_200E_200D_202A_206B_200E_206D_200C_202A_200F_202E_202D_200D_202D_202B_200C_202E_202A_200E_206B_206D_200E_200C_206C_202E(job); - case 2: - goto IL_0052; - } - continue; - IL_0052: - num = 1077632248; - } - } - - internal ElementId _003CTryResolveNewClassQuest_003Eb__29_6(PriorityQuestInfo x) - { - return x.QuestId; - } - - internal bool _003CTryResolveTrackedQuest_003Eb__31_5((ElementId Quest, byte Sequence) x) - { - return x.Sequence < byte.MaxValue; - } - - internal bool _003CTryResolveAutoPriority_003Eb__32_0(PriorityQuestInfo x) - { - return x.IsAvailable; - } - - internal ElementId _003CTryResolveAutoPriority_003Eb__32_1(PriorityQuestInfo x) - { - return x.QuestId; - } - - static bool _200C_200E_202A_206B_200D_206D_200F_206B_200D_202C_202D_202A_202D_206C_200F_206C_206D_200E_200E_202B_202C_206C_206E_202B_206B_200D_206D_206C_200C_200C_202C_206B_200F_206A_200E_200D_206C_206F_202A_206C_202E(EClassJob P_0) - { - return P_0.IsCrafter(); - } - - static bool _206C_200C_202D_200E_206E_202C_206F_202D_200F_200E_206C_200B_202B_202E_206C_202E_200F_200E_200D_202A_206B_200E_206D_200C_202A_200F_202E_202D_200D_202D_202B_200C_202E_202A_200E_206B_206D_200E_200C_206C_202E(EClassJob P_0) - { - return P_0.IsGatherer(); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass31_2 - { - public (ElementId Quest, byte Sequence) x; - - internal bool _003CTryResolveTrackedQuest_003Eb__2((uint ContentFinderConditionId, ElementId QuestId, int Sequence) y) - { - int num = ((!_202B_200B_200D_206E_202C_206F_202A_202E_206D_200C_206C_206A_202C_206B_202D_200E_206F_206D_206F_202D_202E_202A_202D_206D_206F_206C_206F_202E_200B_202E_200B_206D_202D_200D_206E_206D_200C_206F_200F_202D_202E(x.Quest, y.QuestId)) ? (-1426961220) : (-1426961219)); - while (true) - { - int num2 = num; - int num3 = -1426961220; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return false; - case 1: - return x.Sequence == y.Sequence; - case 2: - goto IL_006e; - } - continue; - IL_006e: - num = -1426961219; - } - } - - static bool _202B_200B_200D_206E_202C_206F_202A_202E_206D_200C_206C_206A_202C_206B_202D_200E_206F_206D_206F_202D_202E_202A_202D_206D_206F_206C_206F_202E_200B_202E_200B_206D_202D_200D_206E_206D_200C_206F_200F_202D_202E(ElementId P_0, ElementId P_1) - { - return P_0 == P_1; - } - } - private readonly QuestFunctions _questFunctions; private readonly QuestRegistry _questRegistry; @@ -224,1621 +70,524 @@ internal sealed class QuestPriorityResolver public QuestReference GetCurrentQuest() { - QuestResolution questResolution = ResolveFromGameState(new List<Questionable.Model.Quest>(), QuestController.EAutomationType.Automatic); - int num = ((!questResolution.HasQuest) ? (-1148417368) : (-1148417365)); - while (true) + QuestResolution questResolution = ResolveFromGameState(new List<Quest>(), QuestController.EAutomationType.Automatic); + if (questResolution.HasQuest) { - int num2 = num; - int num3 = -1148417366; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return QuestReference.NoQuest(questResolution.MsqState); - case 1: - return new QuestReference(questResolution.QuestId, questResolution.Sequence, questResolution.MsqState); - case 0: - goto IL_007e; - } - continue; - IL_007e: - num = -1148417365; + return new QuestReference(questResolution.QuestId, questResolution.Sequence, questResolution.MsqState); } + return QuestReference.NoQuest(questResolution.MsqState); } - [MethodImpl(MethodImplOptions.NoInlining)] public QuestResolution Resolve(QuestSlots slots) { - int num = ((slots.Simulated == null) ? (-1753726603) : (-1753726602)); - while (true) + if (slots.Simulated != null) { - int num2 = num; - int num3 = -1753726608; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = ((slots.Gathering == null) ? (-1753726604) : (-1753726608)); - break; - case 6: - return QuestResolution.Slot(EQuestResolutionType.Simulated, slots.Simulated, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-305083691)); - case 2: - num = -1753726602; - break; - case 5: - num = ((slots.Next == null) ? (-1753726607) : (-1753726605)); - break; - case 0: - { - QuestController.QuestProgress? gathering = slots.Gathering; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(16, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-643110900)); - defaultInterpolatedStringHandler2.AppendFormatted(slots.Gathering.Quest.Id); - return QuestResolution.Slot(EQuestResolutionType.GatheringQuest, gathering, defaultInterpolatedStringHandler2.ToStringAndClear()); - } - case 3: - { - QuestController.QuestProgress? next = slots.Next; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(11, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1301444564)); - defaultInterpolatedStringHandler.AppendFormatted(slots.Next.Quest.Id); - return QuestResolution.Slot(EQuestResolutionType.NextQuest, next, defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 4: - return ResolveFromGameState(slots.ManualPriorityQuests, slots.AutomationType); - } + return QuestResolution.Slot(EQuestResolutionType.Simulated, slots.Simulated, "Simulated quest"); } + if (slots.Next != null) + { + return QuestResolution.Slot(EQuestResolutionType.NextQuest, slots.Next, $"Next quest {slots.Next.Quest.Id}"); + } + return ResolveFromGameState(slots.ManualPriorityQuests, slots.AutomationType); } - [MethodImpl(MethodImplOptions.NoInlining)] - private QuestResolution ResolveFromGameState(List<Questionable.Model.Quest> manualPriorityQuests, QuestController.EAutomationType automationType) + private QuestResolution ResolveFromGameState(List<Quest> manualPriorityQuests, QuestController.EAutomationType automationType) { bool allowNewMsq = automationType != QuestController.EAutomationType.SingleQuestB; QuestReference resolvedMsqQuest = GetResolvedMsqQuest(); - IPlayerCharacter playerCharacter = _206C_202B_206B_200C_206A_200C_202D_206E_200C_206C_202B_202E_206E_202E_200D_202A_202B_200D_206D_206B_202C_200F_202D_206C_206D_202C_200E_202D_206D_200D_200E_202C_200E_202D_202B_200E_206F_206E_206B_206D_202E(_objectTable); - int num = ((playerCharacter != null) ? _202D_206D_206C_206A_202B_202A_200C_206E_200C_200F_200F_202D_202A_206C_200B_202B_200D_200C_200D_206D_206A_200E_200B_202A_200B_206E_200C_202E_200C_202C_200E_206C_206C_206A_206B_200B_202C_202D_200B_206D_202E((ICharacter)playerCharacter) : 0); - IPlayerCharacter playerCharacter2 = _206C_202B_206B_200C_206A_200C_202D_206E_200C_206C_202B_202E_206E_202E_200D_202A_202B_200D_206D_206B_202C_200F_202D_206C_206D_202C_200E_202D_206D_200D_200E_202C_200E_202D_202B_200E_206F_206E_206B_206D_202E(_objectTable); - uint? num2 = ((playerCharacter2 != null) ? new uint?(_202D_206D_202A_200E_200D_202B_200C_202A_200B_202B_200C_202A_206A_200F_206C_200B_200F_202E_206F_202D_206F_206F_200D_206A_202C_202D_200D_206E_202E_202A_202A_200F_206D_206C_206B_202B_202C_206E_200F_206E_202E((ICharacter)playerCharacter2).RowId) : ((uint?)null)); - int num3 = (num2.HasValue ? 990805798 : 990805822); - QuestResolution? questResolution = default(QuestResolution?); - EClassJob valueOrDefault = default(EClassJob); - while (true) + int num = _objectTable.LocalPlayer?.Level ?? 0; + EClassJob valueOrDefault = ((EClassJob?)_objectTable.LocalPlayer?.ClassJob.RowId).GetValueOrDefault(); + QuestResolution? questResolution = TryResolveManualPriority(manualPriorityQuests, resolvedMsqQuest.State); + if (questResolution.HasValue) { - int num4 = num3; - int num5 = 990805812; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - EClassJob? obj; - EClassJob? eClassJob; - switch (num7 - (num8 + num8)) + QuestResolution valueOrDefault2 = questResolution.GetValueOrDefault(); + return ApplyQuestRedirects(valueOrDefault2); + } + questResolution = TryResolveInProgressClassQuest(valueOrDefault, resolvedMsqQuest.State); + if (questResolution.HasValue) + { + return questResolution.GetValueOrDefault(); + } + questResolution = TryResolveClassJobPriority(valueOrDefault, resolvedMsqQuest.State); + if (questResolution.HasValue) + { + return questResolution.GetValueOrDefault(); + } + if (resolvedMsqQuest.CurrentQuest != null && IsMsqLevelLocked(resolvedMsqQuest, num, automationType)) + { + if (_lastLoggedLevelLockedMsq != resolvedMsqQuest.CurrentQuest) { - case 8: - return questResolution.GetValueOrDefault(); - case 1: - num3 = ((!_202A_202A_202E_206E_206B_202D_206B_202A_200E_202E_200B_200F_206A_206B_200D_200C_206D_206A_202B_206E_202D_202E_202A_200F_200F_206E_202A_202E_200E_200D_202B_206B_200F_200E_206E_202E_200E_206B_206C_202E_202E(resolvedMsqQuest.CurrentQuest, (ElementId)null)) ? 990805810 : 990805800); - break; - case 22: - questResolution = TryResolveClassJobPriority(valueOrDefault, resolvedMsqQuest.State); - num3 = ((!questResolution.HasValue) ? 990805813 : 990805823); - break; - case 25: - num3 = (_202C_200F_202D_202A_206B_206D_202A_202A_200C_202D_200B_200C_200B_206C_206A_202D_206D_202D_202A_206E_206C_202A_200B_202A_202E_206C_200D_200D_206C_206A_206C_206B_200F_202D_202E_200D_206B_206C_202A_206A_202E(resolvedMsqQuest.CurrentQuest, (ElementId)null) ? 990805815 : 990805818); - break; - case 16: - questResolution = TryResolveLevelingMode(num, automationType, resolvedMsqQuest.State); - num3 = ((!questResolution.HasValue) ? 990805812 : 990805804); - break; - case 21: - questResolution = TryResolveTrackedQuest(resolvedMsqQuest.State); - num3 = ((!questResolution.HasValue) ? 990805817 : 990805816); - break; - case 13: - questResolution = TryResolveAutoPriority(resolvedMsqQuest.State); - num3 = ((!questResolution.HasValue) ? 990805819 : 990805792); - break; - case 10: - obj = null; - goto IL_030f; - case 4: - _202B_202C_200B_202B_200F_200B_202E_206B_206C_206B_200E_206B_206C_206E_200F_200B_206B_202C_206E_206F_206A_202A_202D_200C_206E_202B_200B_202E_206D_202A_206D_200C_206A_200B_200D_206A_206D_206F_206E_206C_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1771545689), new object[2] { resolvedMsqQuest.CurrentQuest, num }); + _logger.LogInformation("MSQ {MsqId} requires higher level, current level {CurrentLevel}. Checking for early class quests.", resolvedMsqQuest.CurrentQuest, num); _lastLoggedLevelLockedMsq = resolvedMsqQuest.CurrentQuest; _loggedNoClassQuestsAvailable = false; _loggedAdventurerClass = false; - num3 = 990805807; - break; - case 9: - questResolution = TryResolveInProgressClassQuest(valueOrDefault, resolvedMsqQuest.State); - num3 = ((!questResolution.HasValue) ? 990805794 : 990805820); - break; - case 19: - num3 = 990805822; - break; - case 26: - return questResolution.GetValueOrDefault(); - case 18: - obj = (EClassJob)num2.GetValueOrDefault(); - goto IL_030f; - case 7: - return questResolution.GetValueOrDefault(); - case 14: - num3 = ((_202E_206B_206E_200B_206A_202B_206C_202E_206E_202B_206E_206A_200B_202E_202A_206E_200E_202C_200F_206F_202E_206F_202E_200B_202B_200C_202D_200D_206A_202A_206E_200E_200B_202D_200E_206B_206A_200E_206C_206E_202E(resolvedMsqQuest.CurrentQuest) != 0) ? 990805814 : 990805815); - break; - case 27: - questResolution = TryResolveNewClassQuest(valueOrDefault, num, resolvedMsqQuest.State); - num3 = ((!questResolution.HasValue) ? 990805796 : 990805811); - break; - case 20: - { - QuestResolution valueOrDefault4 = questResolution.GetValueOrDefault(); - return ApplyQuestRedirects(valueOrDefault4); } - case 2: - return QuestResolution.None(resolvedMsqQuest.State, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(170717891)); - case 29: + return TryResolveNewClassQuest(valueOrDefault, num, resolvedMsqQuest.State) ?? TryResolveLevelingMode(num, automationType, resolvedMsqQuest.State) ?? QuestResolution.None(MainScenarioQuestState.Unavailable, "MSQ level-locked, no class quests or leveling available"); + } + _lastLoggedLevelLockedMsq = null; + _lastLoggedForcedClassQuest = null; + _lastLoggedRegistryClassQuest = null; + _lastLoggedPriorityClassQuest = null; + _loggedNoClassQuestsAvailable = false; + _loggedAdventurerClass = false; + questResolution = TryResolveMsqImmediate(resolvedMsqQuest, allowNewMsq); + if (questResolution.HasValue) + { + return questResolution.GetValueOrDefault(); + } + questResolution = TryResolveTrackedQuest(resolvedMsqQuest.State); + if (questResolution.HasValue) + { + QuestResolution valueOrDefault3 = questResolution.GetValueOrDefault(); + return ApplyQuestRedirects(valueOrDefault3); + } + questResolution = TryResolveAutoPriority(resolvedMsqQuest.State); + if (questResolution.HasValue) + { + QuestResolution valueOrDefault4 = questResolution.GetValueOrDefault(); + return ApplyQuestRedirects(valueOrDefault4); + } + questResolution = TryResolveMsqFallback(resolvedMsqQuest, allowNewMsq); + if (questResolution.HasValue) + { + return questResolution.GetValueOrDefault(); + } + if (resolvedMsqQuest.CurrentQuest == null || resolvedMsqQuest.CurrentQuest.Value == 0) + { + questResolution = TryResolveStartingCity(resolvedMsqQuest.State); + if (questResolution.HasValue) { - QuestResolution valueOrDefault3 = questResolution.GetValueOrDefault(); - return ApplyQuestRedirects(valueOrDefault3); - } - case 6: - _lastLoggedLevelLockedMsq = null; - _lastLoggedForcedClassQuest = null; - _lastLoggedRegistryClassQuest = null; - _lastLoggedPriorityClassQuest = null; - _loggedNoClassQuestsAvailable = false; - _loggedAdventurerClass = false; - questResolution = TryResolveMsqImmediate(resolvedMsqQuest, allowNewMsq); - num3 = ((!questResolution.HasValue) ? 990805793 : 990805809); - break; - case 12: - { - QuestResolution valueOrDefault2 = questResolution.GetValueOrDefault(); - return ApplyQuestRedirects(valueOrDefault2); - } - case 23: - num3 = ((!_202A_202A_202E_206E_206B_202D_206B_202A_200E_202E_200B_200F_206A_206B_200D_200C_206D_206A_202B_206E_202D_202E_202A_200F_200F_206E_202A_202E_200E_200D_202B_206B_200F_200E_206E_202E_200E_206B_206C_202E_202E(_lastLoggedLevelLockedMsq, resolvedMsqQuest.CurrentQuest)) ? 990805807 : 990805808); - break; - case 28: - num3 = ((!IsMsqLevelLocked(resolvedMsqQuest, num, automationType)) ? 990805810 : 990805795); - break; - case 5: return questResolution.GetValueOrDefault(); - case 17: - return questResolution.GetValueOrDefault(); - case 11: - return questResolution.GetValueOrDefault(); - case 15: - questResolution = TryResolveMsqFallback(resolvedMsqQuest, allowNewMsq); - num3 = ((!questResolution.HasValue) ? 990805805 : 990805797); - break; - case 3: - questResolution = TryResolveStartingCity(resolvedMsqQuest.State); - num3 = ((!questResolution.HasValue) ? 990805814 : 990805806); - break; - case 0: - return QuestResolution.None(MainScenarioQuestState.Unavailable, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1554700140)); - case 24: - { - return questResolution.GetValueOrDefault(); - } - IL_030f: - eClassJob = obj; - valueOrDefault = eClassJob.GetValueOrDefault(); - questResolution = TryResolveManualPriority(manualPriorityQuests, resolvedMsqQuest.State); - num3 = ((!questResolution.HasValue) ? 990805821 : 990805801); - break; } } + return QuestResolution.None(resolvedMsqQuest.State, "No quest available"); } - [MethodImpl(MethodImplOptions.NoInlining)] private QuestReference GetResolvedMsqQuest() { QuestReference questReference = _questFunctions.GetMainScenarioQuest().Item1; - int num = ((!_202A_202A_202E_206E_206B_202D_206B_202A_200E_202E_200B_200F_206A_206B_200D_200C_206D_206A_202B_206E_202D_202E_202A_200F_200F_206E_202A_202E_200E_200D_202B_206B_200F_200E_206E_202E_200E_206B_206C_202E_202E(questReference.CurrentQuest, (ElementId)null)) ? (-1219372527) : (-1219372523)); - QuestId questId = default(QuestId); - while (true) + if (questReference.CurrentQuest != null && !_questRegistry.IsKnownQuest(questReference.CurrentQuest)) { - int num2 = num; - int num3 = -1219372524; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (questReference.CurrentQuest is QuestId questId && _alreadyLoggedUnobtainableQuests.Add(questId.Value)) { - case 4: - num = -1219372523; - break; - case 2: - questReference = QuestReference.NoQuest(questReference.State); - num = -1219372527; - break; - case 1: - num = (_questRegistry.IsKnownQuest(questReference.CurrentQuest) ? (-1219372527) : (-1219372524)); - break; - case 6: - num = ((!_alreadyLoggedUnobtainableQuests.Add(_202E_206B_206E_200B_206A_202B_206C_202E_206E_202B_206E_206A_200B_202E_202A_206E_200E_202C_200F_206F_202E_206F_202E_200B_202B_200C_202D_200D_206A_202A_206E_200E_200B_202D_200E_206B_206A_200E_206C_206E_202E((ElementId)questId))) ? (-1219372522) : (-1219372521)); - break; - case 0: - questId = questReference.CurrentQuest as QuestId; - num = (((object)questId == null) ? (-1219372522) : (-1219372526)); - break; - case 5: - return ApplyMsqSpecialCases(questReference); - case 3: - _206E_206E_200E_206F_202B_200E_202D_206E_202B_206B_206D_202E_206F_202B_200B_200F_200B_206A_200E_206E_206B_206B_206D_200D_206E_206D_200C_200C_200C_200B_202B_206E_202C_200D_206C_202C_202C_206E_206C_206B_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2137239165), new object[1] { questReference.CurrentQuest }); - num = -1219372522; - break; + _logger.LogWarning("MSQ {MsqQuestId} is not in the quest registry", questReference.CurrentQuest); } + questReference = QuestReference.NoQuest(questReference.State); } + return ApplyMsqSpecialCases(questReference); } private QuestReference ApplyMsqSpecialCases(QuestReference msqQuest) { - msqQuest.Deconstruct(out ElementId CurrentQuest, out byte Sequence, out MainScenarioQuestState State); - ElementId elementId = CurrentQuest; - byte sequence = Sequence; - MainScenarioQuestState state = State; - int num = (_202C_200F_202D_202A_206B_206D_202A_202A_200C_202D_200B_200C_200B_206C_206A_202D_206D_202D_202A_206E_206C_202A_200B_202A_202E_206C_200D_200D_206C_206A_206C_206B_200F_202D_202E_200D_206B_206C_202A_206A_202E(elementId, (ElementId)null) ? 2062708693 : 2062708697); - ushort num7 = default(ushort); - ushort num8 = default(ushort); - QuestId questId = default(QuestId); - QuestReference result = default(QuestReference); - while (true) + var (elementId2, sequence, state) = msqQuest; + if (elementId2 == null || elementId2.Value == 0) { - int num2 = num; - int num3 = 2062708702; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return msqQuest; + } + if (elementId2.Value == 681) + { + if (_questFunctions.IsQuestAccepted(elementId2) || _questFunctions.IsQuestComplete(elementId2)) { - case 25: - num = ((!_questFunctions.IsQuestComplete(elementId)) ? 2062708701 : 2062708700); - break; - case 16: - num7 = num8; - num = ((num7 == 0) ? 2062708685 : 2062708674); - break; - case 23: - return new QuestReference(_202E_206A_206F_206E_202D_206B_206F_202A_202A_202A_202D_202C_206B_202B_202C_206B_202A_202E_202C_200F_200D_202E_200F_200B_202D_200E_202A_202A_200F_202E_206E_202E_202C_200E_202E_202B_202E_202C_206B_200F_202E(num7), QuestManager.GetQuestSequence(num7), state); - case 27: - num8 = 701; - num = 2062708686; - break; - case 12: - num = ((_202E_206B_206E_200B_206A_202B_206C_202E_206E_202B_206E_206A_200B_202E_202A_206E_200E_202C_200F_206F_202E_206F_202E_200B_202B_200C_202D_200D_206A_202A_206E_200E_200B_202D_200E_206B_206A_200E_206C_206E_202E(elementId) != 3856) ? 2062708685 : 2062708694); - break; - case 18: - questId = _202E_206A_206F_206E_202D_206B_206F_202A_202A_202A_202D_202C_206B_202B_202C_206B_202A_202E_202C_200F_200D_202E_200F_200B_202D_200E_202A_202A_200F_202E_206E_202E_202C_200E_202E_202B_202E_202C_206B_200F_202E((ushort)802); - num = ((!_questFunctions.IsQuestAccepted(questId)) ? 2062708692 : 2062708702); - break; - case 19: - num = ((_202E_206B_206E_200B_206A_202B_206C_202E_206E_202B_206E_206A_200B_202E_202A_206E_200E_202C_200F_206F_202E_206F_202E_200B_202B_200C_202D_200D_206A_202A_206E_200E_200B_202D_200E_206B_206A_200E_206C_206E_202E(elementId) != 801) ? 2062708692 : 2062708684); - break; - case 4: - goto IL_01c8; - case 28: - num = (QuestManager.IsQuestComplete(num7) ? 2062708685 : 2062708681); - break; - case 6: - result = QuestReference.NoQuest(MainScenarioQuestState.Unavailable); - num = 2062708680; - break; - case 13: - num = (_questFunctions.IsQuestAccepted(elementId) ? 2062708700 : 2062708679); - break; - case 26: - num = 2062708689; - break; - case 20: - result = new QuestReference(_202E_206A_206F_206E_202D_206B_206F_202A_202A_202A_202D_202C_206B_202B_202C_206B_202A_202E_202C_200F_200D_202E_200F_200B_202D_200E_202A_202A_200F_202E_206E_202E_202C_200E_202E_202B_202E_202C_206B_200F_202E((ushort)680), 0, state); - num = 2062708680; - break; - case 14: - num = 2062708696; - break; - case 24: - goto IL_0273; - case 22: - return result; - case 21: - num = 2062708697; - break; - case 10: - return msqQuest; - case 3: - switch (_configuration.General.GrandCompany) + return new QuestReference(elementId2, sequence, state); + } + GrandCompany grandCompany = _configuration.General.GrandCompany; + if (grandCompany == GrandCompany.None) + { + grandCompany = PlayerStateHelper.GetStartTown() switch { - case FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany.TwinAdder: - break; - case FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany.ImmortalFlames: - goto IL_0273; - default: - goto IL_02ca; - case FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany.Maelstrom: - goto IL_0351; - } - goto case 20; - case 9: - goto IL_02d6; - case 1: - num = ((_202E_206B_206E_200B_206A_202B_206C_202E_206E_202B_206E_206A_200B_202E_202A_206E_200E_202C_200F_206F_202E_206F_202E_200B_202B_200C_202D_200D_206A_202A_206E_200E_200B_202D_200E_206B_206A_200E_206C_206E_202E(elementId) != 681) ? 2062708690 : 2062708691); - break; - case 15: - num8 = 0; - num = 2062708686; - break; - case 2: - return new QuestReference(elementId, sequence, state); - case 17: - switch ((FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany)_200C_206C_202C_202E_206B_206B_200E_206C_200D_206D_206C_200E_206A_202B_206B_202B_202E_202D_206B_206E_200B_200F_206B_202E_202A_202A_206A_206D_202C_200D_200F_200F_202C_200D_206C_200B_202D_206C_206E_202E()) - { - case FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany.Maelstrom: - break; - case FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany.ImmortalFlames: - goto IL_01c8; - case FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany.TwinAdder: - goto IL_02d6; - default: - goto IL_0345; - } - goto case 27; - case 5: - goto IL_0351; - case 7: - num = ((_202E_206B_206E_200B_206A_202B_206C_202E_206E_202B_206E_206A_200B_202E_202A_206E_200E_202C_200F_206F_202E_206F_202E_200B_202B_200C_202D_200D_206A_202A_206E_200E_200B_202D_200E_206B_206A_200E_206C_206E_202E(elementId) != 0) ? 2062708703 : 2062708693); - break; - case 8: - num = (_200E_202A_200B_206E_206D_200B_206F_202D_206D_202A_206F_206A_200D_206E_206A_202D_202D_206E_202A_202C_200F_202A_202E_202A_200B_200C_200D_202C_206E_200E_206A_200C_206C_206D_206D_206B_200D_206A_200C_200C_202E(1u) ? 2062708685 : 2062708687); - break; - case 11: - return msqQuest; - case 0: - { - return new QuestReference(questId, QuestManager.GetQuestSequence(_202E_206B_206E_200B_206A_202B_206C_202E_206E_202B_206E_206A_200B_202E_202A_206E_200E_202C_200F_206F_202E_206F_202E_200B_202B_200C_202D_200D_206A_202A_206E_200E_200B_202D_200E_206B_206A_200E_206C_206E_202E((ElementId)questId)), state); - } - IL_01c8: - num8 = 702; - num = 2062708686; - break; - IL_0345: - num = 2062708676; - break; - IL_02d6: - num8 = 700; - num = 2062708686; - break; - IL_0351: - result = new QuestReference(_202E_206A_206F_206E_202D_206B_206F_202A_202A_202A_202D_202C_206B_202B_202C_206B_202A_202E_202C_200F_200D_202E_200F_200B_202D_200E_202A_202A_200F_202E_206E_202E_202C_200E_202E_202B_202E_202C_206B_200F_202E((ushort)681), 0, state); - num = 2062708680; - break; - IL_02ca: - num = 2062708688; - break; - IL_0273: - result = new QuestReference(_202E_206A_206F_206E_202D_206B_206F_202A_202A_202A_202D_202C_206B_202B_202C_206B_202A_202E_202C_200F_200D_202E_200F_200B_202D_200E_202A_202A_200F_202E_206E_202E_202C_200E_202E_202B_202E_202C_206B_200F_202E((ushort)682), 0, state); - num = 2062708680; - break; + 1 => GrandCompany.Maelstrom, + 2 => GrandCompany.TwinAdder, + 3 => GrandCompany.ImmortalFlames, + _ => GrandCompany.None, + }; + } + return grandCompany switch + { + GrandCompany.TwinAdder => new QuestReference(new QuestId(680), 0, state), + GrandCompany.Maelstrom => new QuestReference(new QuestId(681), 0, state), + GrandCompany.ImmortalFlames => new QuestReference(new QuestId(682), 0, state), + _ => QuestReference.NoQuest(MainScenarioQuestState.Unavailable), + }; + } + if (elementId2.Value == 3856 && !PlayerStateHelper.IsMountUnlocked(1u)) + { + ushort num = (GrandCompany)GrandCompanyHelper.GetGrandCompanyId() switch + { + GrandCompany.TwinAdder => 700, + GrandCompany.Maelstrom => 701, + GrandCompany.ImmortalFlames => 702, + _ => 0, + }; + if (num != 0 && !QuestManager.IsQuestComplete(num)) + { + return new QuestReference(new QuestId(num), QuestManager.GetQuestSequence(num), state); } } + if (elementId2.Value == 801) + { + QuestId questId = new QuestId(802); + if (_questFunctions.IsQuestAccepted(questId)) + { + return new QuestReference(questId, QuestManager.GetQuestSequence(questId.Value), state); + } + } + return msqQuest; } - [MethodImpl(MethodImplOptions.NoInlining)] private QuestResolution ApplyQuestRedirects(QuestResolution resolution) { ElementId questId = resolution.QuestId; - int num = (((object)questId == null) ? (-1525048564) : (-1525048561)); - QuestId questId2 = default(QuestId); - while (true) + if ((object)questId != null && questId.Value == 801) { - int num2 = num; - int num3 = -1525048564; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + QuestId questId2 = new QuestId(802); + if (_questFunctions.IsQuestAccepted(questId2)) { - case 2: - questId2 = _202E_206A_206F_206E_202D_206B_206F_202A_202A_202A_202D_202C_206B_202B_202C_206B_202A_202E_202C_200F_200D_202E_200F_200B_202D_200E_202A_202A_200F_202E_206E_202E_202C_200E_202E_202B_202E_202C_206B_200F_202E((ushort)802); - num = ((!_questFunctions.IsQuestAccepted(questId2)) ? (-1525048564) : (-1525048563)); - break; - case 3: - num = ((_202E_206B_206E_200B_206A_202B_206C_202E_206E_202B_206E_206A_200B_202E_202A_206E_200E_202C_200F_206F_202E_206F_202E_200B_202B_200C_202D_200D_206A_202A_206E_200E_200B_202D_200E_206B_206A_200E_206C_206E_202E(questId) != 801) ? (-1525048564) : (-1525048562)); - break; - case 4: - num = -1525048561; - break; - case 1: return resolution with { QuestId = questId2, - Sequence = QuestManager.GetQuestSequence(_202E_206B_206E_200B_206A_202B_206C_202E_206E_202B_206E_206A_200B_202E_202A_206E_200E_202C_200F_206F_202E_206F_202E_200B_202B_200C_202D_200D_206A_202A_206E_200E_200B_202D_200E_206B_206A_200E_206C_206E_202E((ElementId)questId2)), - DebugReason = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1290516416) + Sequence = QuestManager.GetQuestSequence(questId2.Value), + DebugReason = "Redirected 801 -> 802 (Broadening Horizons prerequisite)" }; - case 0: - return resolution; } } + return resolution; } - [MethodImpl(MethodImplOptions.NoInlining)] - private QuestResolution? TryResolveManualPriority(List<Questionable.Model.Quest> manualPriorityQuests, MainScenarioQuestState msqState) + private QuestResolution? TryResolveManualPriority(List<Quest> manualPriorityQuests, MainScenarioQuestState msqState) { - int num = ((manualPriorityQuests.Count != 0) ? 1342469805 : 1342469803); - (ElementId, byte) tuple = default((ElementId, byte)); - while (true) + if (manualPriorityQuests.Count == 0) { - int num2 = num; - int num3 = 1342469807; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - { - ElementId item = tuple.Item1; - byte item2 = tuple.Item2; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(22, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(822211932)); - defaultInterpolatedStringHandler.AppendFormatted(tuple.Item1); - return QuestResolution.ForQuest(EQuestResolutionType.ManualPriority, item, item2, msqState, defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 2: - tuple = (from x in manualPriorityQuests.Where(delegate(Questionable.Model.Quest x) - { - int num7 = ((!_questFunctions.IsQuestAccepted(x.Id)) ? (-104589985) : (-104589987)); - QuestId questId = default(QuestId); - while (true) - { - int num8 = num7; - int num9 = -104589989; - int num10 = num8; - switch ((num10 | num9) - (num10 & num9)) - { - case 0: - num7 = ((!_questFunctions.WouldOvercapAlliedSocietyReputation(questId)) ? (-104589986) : (-104589990)); - break; - case 5: - return true; - case 3: - num7 = -104589987; - break; - case 2: - questId = x.Id as QuestId; - num7 = (((object)questId == null) ? (-104589986) : (-104589989)); - break; - case 4: - return _questFunctions.IsReadyToAcceptQuest(x.Id); - case 1: - return false; - case 6: - num7 = ((!_configuration.Advanced.AutoPrioritizeAlliedSocietyRankUp) ? (-104589986) : (-104589991)); - break; - } - } - }) - select (QuestId: x.Id, Sequence: _questFunctions.GetQuestProgressInfo(x.Id)?.Sequence ?? 0)).FirstOrDefault(); - num = (((object)tuple.Item1 == null) ? 1342469806 : 1342469804); - break; - case 1: - return null; - case 0: - num = 1342469803; - break; - case 4: - return null; - } + return null; } + (ElementId, byte) tuple = (from x in manualPriorityQuests + where _questFunctions.IsQuestAccepted(x.Id) ? ((!_configuration.Advanced.AutoPrioritizeAlliedSocietyRankUp || !(x.Id is QuestId questId) || !_questFunctions.WouldOvercapAlliedSocietyReputation(questId)) ? true : false) : _questFunctions.IsReadyToAcceptQuest(x.Id) + select (QuestId: x.Id, Sequence: _questFunctions.GetQuestProgressInfo(x.Id)?.Sequence ?? 0)).FirstOrDefault(); + if ((object)tuple.Item1 != null) + { + return QuestResolution.ForQuest(EQuestResolutionType.ManualPriority, tuple.Item1, tuple.Item2, msqState, $"Manual priority quest {tuple.Item1}"); + } + return null; } - [MethodImpl(MethodImplOptions.NoInlining)] private QuestResolution? TryResolveInProgressClassQuest(EClassJob currentClassJob, MainScenarioQuestState msqState) { - int num = ((currentClassJob != EClassJob.Adventurer) ? 689468561 : 689468563); - QuestInfo questInfo = default(QuestInfo); - while (true) + if (currentClassJob == EClassJob.Adventurer) { - int num2 = num; - int num3 = 689468562; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = 689468563; - break; - case 2: - return null; - case 1: - return null; - case 3: - questInfo = (from x in _questData.GetClassJobQuests(currentClassJob).Where(delegate(QuestInfo x) - { - int num5 = ((x.Level <= 5) ? (-1239817522) : (-1239817521)); - while (true) - { - int num6 = num5; - int num7 = -1239817522; - int num8 = num6; - int num9 = num8 + num7; - int num10 = num8 & num7; - switch (num9 - (num10 + num10)) - { - case 3: - num5 = -1239817521; - break; - case 2: - return false; - case 4: - return !_questFunctions.IsQuestComplete(x.QuestId); - case 1: - num5 = (_configuration.Advanced.SkipClassJobQuests ? (-1239817524) : (-1239817522)); - break; - case 0: - num5 = ((!_questFunctions.IsQuestAccepted(x.QuestId)) ? (-1239817524) : (-1239817526)); - break; - } - } - }) - orderby x.Level - select x).FirstOrDefault(); - num = ((questInfo != null) ? 689468562 : 689468560); - break; - case 0: - { - _206F_202B_206B_200E_206F_202D_206D_202D_202B_202C_200D_202C_206D_202D_206D_206C_202C_202E_200F_200C_200B_200E_206E_206B_200F_200B_206A_200D_200E_206B_206A_202B_206B_206F_202B_202E_200E_200F_202A_202C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(993689286), new object[1] { questInfo.QuestId }); - ElementId questId = questInfo.QuestId; - byte questSequence = QuestManager.GetQuestSequence(_202E_206B_206E_200B_206A_202B_206C_202E_206E_202B_206E_206A_200B_202E_202A_206E_200E_202C_200F_206F_202E_206F_202E_200B_202B_200C_202D_200D_206A_202A_206E_200E_200B_202D_200E_206B_206A_200E_206C_206E_202E(questInfo.QuestId)); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(24, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1432274121)); - defaultInterpolatedStringHandler.AppendFormatted(questInfo.QuestId); - return QuestResolution.ForQuest(EQuestResolutionType.InProgressClassQuest, questId, questSequence, msqState, defaultInterpolatedStringHandler.ToStringAndClear()); - } - } + return null; } + QuestInfo questInfo = (from x in _questData.GetClassJobQuests(currentClassJob) + where (x.Level <= 5 || !_configuration.Advanced.SkipClassJobQuests) && _questFunctions.IsQuestAccepted(x.QuestId) && !_questFunctions.IsQuestComplete(x.QuestId) + orderby x.Level + select x).FirstOrDefault(); + if (questInfo == null) + { + return null; + } + _logger.LogTrace("Found in-progress class quest {QuestId}, continuing it", questInfo.QuestId); + return QuestResolution.ForQuest(EQuestResolutionType.InProgressClassQuest, questInfo.QuestId, QuestManager.GetQuestSequence(questInfo.QuestId.Value), msqState, $"In-progress class quest {questInfo.QuestId}"); } - [MethodImpl(MethodImplOptions.NoInlining)] private QuestResolution? TryResolveClassJobPriority(EClassJob currentClassJob, MainScenarioQuestState msqState) { - int num = (_configuration.Advanced.SkipClassJobQuests ? (-864803797) : (-864803795)); - HashSet<ElementId> classJobQuestIds; - ElementId elementId = default(ElementId); - while (true) + if (_configuration.Advanced.SkipClassJobQuests || currentClassJob == EClassJob.Adventurer) { - int num2 = num; - int num3 = -864803799; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return null; - case 4: - num = ((currentClassJob != EClassJob.Adventurer) ? (-864803799) : (-864803797)); - break; - case 0: - classJobQuestIds = (from x in _questRegistry.GetKnownClassJobQuests(currentClassJob, includeRoleQuests: false) - select x.QuestId).ToHashSet(); - elementId = (from x in _questFunctions.GetNextPriorityQuestsThatCanBeAccepted().Where(delegate(PriorityQuestInfo x) - { - int num5 = ((!x.IsAvailable) ? 161957132 : 161957135); - while (true) - { - int num6 = num5; - int num7 = 161957133; - int num8 = num6; - int num9 = num8 + num7; - int num10 = num8 & num7; - switch (num9 - (num10 + num10)) - { - case 0: - goto IL_0048; - case 1: - return false; - case 2: - return classJobQuestIds.Contains(x.QuestId); - } - continue; - IL_0048: - num5 = 161957135; - } - }) - select x.QuestId).FirstOrDefault(); - num = ((!_202C_200F_202D_202A_206B_206D_202A_202A_200C_202D_200B_200C_200B_206C_206A_202D_206D_202D_202A_206E_206C_202A_200B_202A_202E_206C_200D_200D_206C_206A_206C_206B_200F_202D_202E_200D_206B_206C_202A_206A_202E(elementId, (ElementId)null)) ? (-864803796) : (-864803800)); - break; - case 3: - num = -864803795; - break; - case 5: - { - ElementId questId = elementId; - byte questSequence = QuestManager.GetQuestSequence(_202E_206B_206E_200B_206A_202B_206C_202E_206E_202B_206E_206A_200B_202E_202A_206E_200E_202C_200F_206F_202E_206F_202E_200B_202B_200C_202D_200D_206A_202A_206E_200E_200B_202D_200E_206B_206A_200E_206C_206E_202E(elementId)); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(25, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-305237119)); - defaultInterpolatedStringHandler.AppendFormatted(elementId); - return QuestResolution.ForQuest(EQuestResolutionType.NewClassQuest, questId, questSequence, msqState, defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 2: - return null; - } + return null; } + HashSet<ElementId> classJobQuestIds = (from x in _questRegistry.GetKnownClassJobQuests(currentClassJob, includeRoleQuests: false) + select x.QuestId).ToHashSet(); + ElementId elementId = (from x in _questFunctions.GetNextPriorityQuestsThatCanBeAccepted() + where x.IsAvailable && classJobQuestIds.Contains(x.QuestId) + select x.QuestId).FirstOrDefault(); + if (elementId == null) + { + return null; + } + return QuestResolution.ForQuest(EQuestResolutionType.NewClassQuest, elementId, QuestManager.GetQuestSequence(elementId.Value), msqState, $"Class/job priority quest {elementId}"); } private bool IsMsqLevelLocked(QuestReference msqQuest, int currentLevel, QuestController.EAutomationType automationType) { - int num = ((!_202C_200F_202D_202A_206B_206D_202A_202A_200C_202D_200B_200C_200B_206C_206A_202D_206D_202D_202A_206E_206C_202A_200B_202A_202E_206C_200D_200D_206C_206A_206C_206B_200F_202D_202E_200D_206B_206C_202A_206A_202E(msqQuest.CurrentQuest, (ElementId)null)) ? (-1809239787) : (-1809239792)); - Questionable.Model.Quest quest = default(Questionable.Model.Quest); - while (true) + if (msqQuest.CurrentQuest == null) { - int num2 = num; - int num3 = -1809239791; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1809239792; - break; - case 6: - return false; - case 4: - num = (_questRegistry.TryGetQuest(msqQuest.CurrentQuest, out quest) ? (-1809239783) : (-1809239785)); - break; - case 7: - return false; - case 5: - num = ((_configuration.General.MsqPriority != Configuration.EMsqPriorityMode.Manual) ? (-1809239789) : (-1809239790)); - break; - case 1: - return false; - case 8: - num = ((!_questFunctions.IsQuestAccepted(msqQuest.CurrentQuest)) ? (-1809239788) : (-1809239786)); - break; - case 3: - return false; - case 2: - return quest.Info.Level > currentLevel; - } + return false; } + if (!_questRegistry.TryGetQuest(msqQuest.CurrentQuest, out Quest quest)) + { + return false; + } + if (_questFunctions.IsQuestAccepted(msqQuest.CurrentQuest)) + { + return false; + } + if (_configuration.General.MsqPriority == Configuration.EMsqPriorityMode.Manual) + { + return false; + } + return quest.Info.Level > currentLevel; } - [MethodImpl(MethodImplOptions.NoInlining)] private QuestResolution? TryResolveNewClassQuest(EClassJob currentClassJob, int currentLevel, MainScenarioQuestState msqState) { - int num = ((currentClassJob != EClassJob.Adventurer) ? 212422902 : 212422895); - QuestInfo questInfo2 = default(QuestInfo); - List<QuestId> lockedQuests; - QuestInfo questInfo = default(QuestInfo); - ElementId elementId = default(ElementId); - while (true) + if (currentClassJob == EClassJob.Adventurer) { - int num2 = num; - int num3 = 212422887; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (!_loggedAdventurerClass) { - case 4: - num = ((!_202A_202A_202E_206E_206B_202D_206B_202A_200E_202E_200B_200F_206A_206B_200D_200C_206D_206A_202B_206E_202D_202E_202A_200F_200F_206E_202A_202E_200E_200D_202B_206B_200F_200E_206E_202E_200E_206B_206C_202E_202E(_lastLoggedRegistryClassQuest, questInfo2.QuestId)) ? 212422890 : 212422886); - break; - case 17: - lockedQuests = QuestData.GetLockedClassQuests(); - questInfo = (from x in _questData.GetClassJobQuests(currentClassJob).Where(delegate(QuestInfo x) - { - int num7 = ((x.Level > currentLevel) ? (-789750315) : (-789750317)); - while (true) - { - int num8 = num7; - int num9 = -789750319; - int num10 = num8; - int num11 = num10 + num9; - int num12 = num10 & num9; - switch (num11 - (num12 + num12)) - { - case 0: - num7 = -789750317; - break; - case 2: - num7 = ((x.Level > 5) ? (-789750315) : (-789750320)); - break; - case 4: - return false; - case 1: - num7 = (_questFunctions.IsQuestComplete(x.QuestId) ? (-789750315) : (-789750318)); - break; - case 3: - return !lockedQuests.Contains(x.QuestId); - } - } - }) - orderby x.Level - select x).FirstOrDefault(); - num = ((questInfo == null) ? 212422889 : 212422894); - break; - case 7: - _206E_206E_200E_206F_202B_200E_202D_206E_202B_206B_206D_202E_206F_202B_200B_200F_200B_206A_200E_206E_206B_206B_206D_200D_206E_206D_200C_200C_200C_200B_202B_206E_202C_200D_206C_202C_202C_206E_206C_206B_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1017698295), Array.Empty<object>()); + _logger.LogWarning("Current class is Adventurer, cannot find class quests"); _loggedAdventurerClass = true; - num = 212422901; - break; - case 8: - num = (_loggedAdventurerClass ? 212422901 : 212422880); - break; - case 18: - return null; - case 12: - num = ((!_202A_202A_202E_206E_206B_202D_206B_202A_200E_202E_200B_200F_206A_206B_200D_200C_206D_206A_202B_206E_202D_202E_202A_200F_200F_206E_202A_202E_200E_200D_202B_206B_200F_200E_206E_202E_200E_206B_206C_202E_202E(_lastLoggedPriorityClassQuest, elementId)) ? 212422900 : 212422882); - break; - case 3: - _202B_202C_200B_202B_200F_200B_202E_206B_206C_206B_200E_206B_206C_206E_200F_200B_206B_202C_206E_206F_206A_202A_202D_200C_206E_202B_200B_202E_206D_202A_206D_200C_206A_200B_200D_206A_206D_206F_206E_206C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(915198093), new object[3] { questInfo.QuestId, currentClassJob, questInfo.Level }); - _lastLoggedForcedClassQuest = questInfo.QuestId; - num = 212422885; - break; - case 13: - { - ElementId questId2 = questInfo2.QuestId; - byte questSequence2 = QuestManager.GetQuestSequence(_202E_206B_206E_200B_206A_202B_206C_202E_206E_202B_206E_206A_200B_202E_202A_206E_200E_202C_200F_206F_202E_206F_202E_200B_202B_200C_202D_200D_206A_202A_206E_200E_200B_202D_200E_206B_206A_200E_206C_206E_202E(questInfo2.QuestId)); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(27, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1318858462)); - defaultInterpolatedStringHandler2.AppendFormatted(questInfo2.QuestId); - return QuestResolution.ForQuest(EQuestResolutionType.NewClassQuest, questId2, questSequence2, msqState, defaultInterpolatedStringHandler2.ToStringAndClear()); - } - case 10: - num = (_loggedNoClassQuestsAvailable ? 212422887 : 212422881); - break; - case 14: - questInfo2 = (from x in _questRegistry.GetKnownClassJobQuests(currentClassJob, includeRoleQuests: false).Where(delegate(QuestInfo x) - { - int num7 = ((x.Level > currentLevel) ? 2044877120 : 2044877123); - while (true) - { - int num8 = num7; - int num9 = 2044877122; - int num10 = num8; - int num11 = num10 + num9; - int num12 = num10 & num9; - switch (num11 - (num12 + num12)) - { - case 2: - return false; - case 1: - num7 = ((x.Level > 5) ? 2044877120 : 2044877121); - break; - case 3: - num7 = (_questFunctions.IsQuestAcceptedOrComplete(x.QuestId) ? 2044877120 : 2044877126); - break; - case 4: - return _questFunctions.IsReadyToAcceptQuest(x.QuestId); - case 0: - num7 = 2044877123; - break; - } - } - }) - orderby x.Level - select x).FirstOrDefault(); - num = ((questInfo2 == null) ? 212422903 : 212422883); - break; - case 15: - num = 212422895; - break; - case 19: - { - ElementId questId3 = elementId; - byte questSequence3 = QuestManager.GetQuestSequence(_202E_206B_206E_200B_206A_202B_206C_202E_206E_202B_206E_206A_200B_202E_202A_206E_200E_202C_200F_206F_202E_206F_202E_200B_202B_200C_202D_200D_206A_202A_206E_200E_200B_202D_200E_206B_206A_200E_206C_206E_202E(elementId)); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(27, 1); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1634688570)); - defaultInterpolatedStringHandler3.AppendFormatted(elementId); - return QuestResolution.ForQuest(EQuestResolutionType.NewClassQuest, questId3, questSequence3, msqState, defaultInterpolatedStringHandler3.ToStringAndClear()); - } - case 11: - num = ((!_202A_202A_202E_206E_206B_202D_206B_202A_200E_202E_200B_200F_206A_206B_200D_200C_206D_206A_202B_206E_202D_202E_202A_200F_200F_206E_202A_202E_200E_200D_202B_206B_200F_200E_206E_202E_200E_206B_206C_202E_202E(_lastLoggedForcedClassQuest, questInfo.QuestId)) ? 212422885 : 212422884); - break; - case 5: - _202B_202C_200B_202B_200F_200B_202E_206B_206C_206B_200E_206B_206C_206E_200F_200B_206B_202C_206E_206F_206A_202A_202D_200C_206E_202B_200B_202E_206D_202A_206D_200C_206A_200B_200D_206A_206D_206F_206E_206C_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2031319638), new object[1] { elementId }); - _lastLoggedPriorityClassQuest = elementId; - num = 212422900; - break; - case 16: - elementId = (from x in (from x in _questFunctions.GetNextPriorityQuestsThatCanBeAccepted() - where x.IsAvailable - select x).Where(delegate(PriorityQuestInfo x) - { - Questionable.Model.Quest quest; - int num7 = ((!_questRegistry.TryGetQuest(x.QuestId, out quest)) ? 323776079 : 323776077); - QuestInfo questInfo3 = default(QuestInfo); - while (true) - { - int num8 = num7; - int num9 = 323776079; - int num10 = num8; - int num11 = num10 + num9; - int num12 = num10 & num9; - switch (num11 - (num12 + num12)) - { - case 5: - num7 = 323776077; - break; - case 4: - return questInfo3.ClassJobs.Any(delegate(EClassJob job) - { - int num13 = (_003C_003Ec._200C_200E_202A_206B_200D_206D_200F_206B_200D_202C_202D_202A_202D_206C_200F_206C_206D_200E_200E_202B_202C_206C_206E_202B_206B_200D_206D_206C_200C_200C_202C_206B_200F_206A_200E_200D_206C_206F_202A_206C_202E(job) ? 1077632249 : 1077632248); - while (true) - { - int num14 = num13; - int num15 = 1077632249; - int num16 = num14; - switch ((num16 | num15) - (num16 & num15)) - { - case 0: - return false; - case 1: - return !_003C_003Ec._206C_200C_202D_200E_206E_202C_206F_202D_200F_200E_206C_200B_202B_202E_206C_202E_200F_200E_200D_202A_206B_200E_206D_200C_202A_200F_202E_202D_200D_202D_202B_200C_202E_202A_200E_206B_206D_200E_200C_206C_202E(job); - case 2: - goto IL_0052; - } - continue; - IL_0052: - num13 = 1077632248; - } - }); - case 2: - num7 = ((quest.Info.Level > currentLevel) ? 323776079 : 323776076); - break; - case 3: - questInfo3 = quest.Info as QuestInfo; - num7 = ((questInfo3 == null) ? 323776079 : 323776078); - break; - case 0: - return false; - case 1: - num7 = ((questInfo3.ClassJobs.Count <= 0) ? 323776079 : 323776075); - break; - } - } - }) - select x.QuestId).FirstOrDefault(); - num = ((!_202A_202A_202E_206E_206B_202D_206B_202A_200E_202E_200B_200F_206A_206B_200D_200C_206D_206A_202B_206E_202D_202E_202A_200F_200F_206E_202A_202E_200E_200D_202B_206B_200F_200E_206E_202E_200E_206B_206C_202E_202E(elementId, (ElementId)null)) ? 212422893 : 212422891); - break; - case 0: - return null; - case 9: - num = (_questFunctions.IsQuestComplete(questInfo.QuestId) ? 212422889 : 212422892); - break; - case 6: - _206E_206E_200E_206F_202B_200E_202D_206E_202B_206B_206D_202E_206F_202B_200B_200F_200B_206A_200E_206E_206B_206B_206D_200D_206E_206D_200C_200C_200C_200B_202B_206E_202C_200D_206C_202C_202C_206E_206C_206B_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2087960790), new object[2] { currentClassJob, currentLevel }); - _loggedNoClassQuestsAvailable = true; - num = 212422887; - break; - case 1: - _202B_202C_200B_202B_200F_200B_202E_206B_206C_206B_200E_206B_206C_206E_200F_200B_206B_202C_206E_206F_206A_202A_202D_200C_206E_202B_200B_202E_206D_202A_206D_200C_206A_200B_200D_206A_206D_206F_206E_206C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2057200465), new object[3] { questInfo2.QuestId, currentClassJob, questInfo2.Level }); - _lastLoggedRegistryClassQuest = questInfo2.QuestId; - num = 212422890; - break; - case 2: - { - ElementId questId = questInfo.QuestId; - byte questSequence = QuestManager.GetQuestSequence(_202E_206B_206E_200B_206A_202B_206C_202E_206E_202B_206E_206A_200B_202E_202A_206E_200E_202C_200F_206F_202E_206F_202E_200B_202B_200C_202D_200D_206A_202A_206E_200E_200B_202D_200E_206B_206A_200E_206C_206E_202E(questInfo.QuestId)); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(23, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-827615250)); - defaultInterpolatedStringHandler.AppendFormatted(questInfo.QuestId); - return QuestResolution.ForQuest(EQuestResolutionType.NewClassQuest, questId, questSequence, msqState, defaultInterpolatedStringHandler.ToStringAndClear()); - } } + return null; } + List<QuestId> lockedQuests = QuestData.GetLockedClassQuests(); + QuestInfo questInfo = (from x in _questData.GetClassJobQuests(currentClassJob) + where x.Level <= currentLevel && x.Level <= 5 && !_questFunctions.IsQuestComplete(x.QuestId) && !lockedQuests.Contains(x.QuestId) + orderby x.Level + select x).FirstOrDefault(); + if (questInfo != null && !_questFunctions.IsQuestComplete(questInfo.QuestId)) + { + if (_lastLoggedForcedClassQuest != questInfo.QuestId) + { + _logger.LogInformation("MSQ level locked. Forcing class quest {ClassQuestId} for {ClassJob} (level {QuestLevel})", questInfo.QuestId, currentClassJob, questInfo.Level); + _lastLoggedForcedClassQuest = questInfo.QuestId; + } + return QuestResolution.ForQuest(EQuestResolutionType.NewClassQuest, questInfo.QuestId, QuestManager.GetQuestSequence(questInfo.QuestId.Value), msqState, $"New class quest (data) {questInfo.QuestId}"); + } + QuestInfo questInfo2 = (from x in _questRegistry.GetKnownClassJobQuests(currentClassJob, includeRoleQuests: false) + where x.Level <= currentLevel && x.Level <= 5 && !_questFunctions.IsQuestAcceptedOrComplete(x.QuestId) && _questFunctions.IsReadyToAcceptQuest(x.QuestId) + orderby x.Level + select x).FirstOrDefault(); + if (questInfo2 != null) + { + if (_lastLoggedRegistryClassQuest != questInfo2.QuestId) + { + _logger.LogInformation("MSQ level locked. Prioritizing class quest {ClassQuestId} for {ClassJob} (level {QuestLevel}) from registry", questInfo2.QuestId, currentClassJob, questInfo2.Level); + _lastLoggedRegistryClassQuest = questInfo2.QuestId; + } + return QuestResolution.ForQuest(EQuestResolutionType.NewClassQuest, questInfo2.QuestId, QuestManager.GetQuestSequence(questInfo2.QuestId.Value), msqState, $"New class quest (registry) {questInfo2.QuestId}"); + } + Quest quest; + ElementId elementId = (from x in _questFunctions.GetNextPriorityQuestsThatCanBeAccepted() + where x.IsAvailable + where _questRegistry.TryGetQuest(x.QuestId, out quest) && quest.Info.Level <= currentLevel && quest.Info is QuestInfo questInfo3 && questInfo3.ClassJobs.Count > 0 && questInfo3.ClassJobs.Any((EClassJob job) => !job.IsCrafter() && !job.IsGatherer()) + select x.QuestId).FirstOrDefault(); + if (elementId != null) + { + if (_lastLoggedPriorityClassQuest != elementId) + { + _logger.LogInformation("MSQ level locked. Prioritizing class quest {ClassQuestId} from priority list", elementId); + _lastLoggedPriorityClassQuest = elementId; + } + return QuestResolution.ForQuest(EQuestResolutionType.NewClassQuest, elementId, QuestManager.GetQuestSequence(elementId.Value), msqState, $"New class quest (priority) {elementId}"); + } + if (!_loggedNoClassQuestsAvailable) + { + _logger.LogWarning("MSQ level locked but no available early class quests found for {ClassJob} at level {CurrentLevel}", currentClassJob, currentLevel); + _loggedNoClassQuestsAvailable = true; + } + return null; } - [MethodImpl(MethodImplOptions.NoInlining)] private QuestResolution? TryResolveMsqImmediate(QuestReference msqQuest, bool allowNewMsq) { - int num = (_202C_200F_202D_202A_206B_206D_202A_202A_200C_202D_200B_200C_200B_206C_206A_202D_206D_202D_202A_206E_206C_202A_200B_202A_202E_206C_200D_200D_206C_206A_206C_206B_200F_202D_202E_200D_206B_206C_202A_206A_202E(msqQuest.CurrentQuest, (ElementId)null) ? (-402712632) : (-402712625)); - while (true) + if (msqQuest.CurrentQuest == null || msqQuest.CurrentQuest.Value == 0) { - int num2 = num; - int num3 = -402712629; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 8: - num = -402712625; - break; - case 4: - num = ((_202E_206B_206E_200B_206A_202B_206C_202E_206E_202B_206E_206A_200B_202E_202A_206E_200E_202C_200F_206F_202E_206F_202E_200B_202B_200C_202D_200D_206A_202A_206E_200E_200B_202D_200E_206B_206A_200E_206C_206E_202E(msqQuest.CurrentQuest) != 0) ? (-402712638) : (-402712632)); - break; - case 0: - num = (allowNewMsq ? (-402712631) : (-402712626)); - break; - case 1: - return null; - case 7: - num = ((_configuration.General.MsqPriority == Configuration.EMsqPriorityMode.Always) ? (-402712629) : (-402712630)); - break; - case 6: - return null; - case 9: - num = ((!_questFunctions.IsQuestAccepted(msqQuest.CurrentQuest)) ? (-402712628) : (-402712627)); - break; - case 5: - return null; - case 3: - return null; - case 2: - { - ElementId? currentQuest = msqQuest.CurrentQuest; - byte sequence = msqQuest.Sequence; - MainScenarioQuestState state = msqQuest.State; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(28, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-161770655)); - defaultInterpolatedStringHandler.AppendFormatted(msqQuest.CurrentQuest); - return QuestResolution.ForQuest(EQuestResolutionType.MsqImmediate, currentQuest, sequence, state, defaultInterpolatedStringHandler.ToStringAndClear()); - } - } + return null; } + if (_questFunctions.IsQuestAccepted(msqQuest.CurrentQuest)) + { + return null; + } + if (_configuration.General.MsqPriority != Configuration.EMsqPriorityMode.Always) + { + return null; + } + if (!allowNewMsq) + { + return null; + } + return QuestResolution.ForQuest(EQuestResolutionType.MsqImmediate, msqQuest.CurrentQuest, msqQuest.Sequence, msqQuest.State, $"MSQ immediate (Always mode) {msqQuest.CurrentQuest}"); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe QuestResolution? TryResolveTrackedQuest(MainScenarioQuestState msqState) { QuestManager* ptr = QuestManager.Instance(); - int num = ((ptr != null) ? (-982372804) : (-982372807)); - ElementId elementId = default(ElementId); - TrackingWork trackingWork = default(TrackingWork); - byte item4 = default(byte); - List<(ElementId, byte)> list = default(List<(ElementId, byte)>); - ElementId item3 = default(ElementId); - EAlliedSociety firstTrackedAlliedSociety = default(EAlliedSociety); - int num16 = default(int); - List<(ElementId, byte)> list3 = default(List<(ElementId, byte)>); - byte questType = default(byte); - ElementId item = default(ElementId); - byte item2 = default(byte); - QuestId questId2 = default(QuestId); - ElementId item5 = default(ElementId); - byte item6 = default(byte); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -982372812; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return null; + } + List<(ElementId, byte)> list = new List<(ElementId, byte)>(); + for (int num = ptr->TrackedQuests.Length - 1; num >= 0; num--) + { + TrackingWork trackingWork = ptr->TrackedQuests[num]; + switch (trackingWork.QuestType) { - default: - continue; - case 6: - elementId = _202E_206A_206F_206E_202D_206B_206F_202A_202A_202A_202D_202C_206B_202B_202C_206B_202A_202E_202C_200F_200D_202E_200F_200B_202D_200E_202A_202A_200F_202E_206E_202E_202C_200E_202E_202B_202E_202C_206B_200F_202E(ptr->NormalQuests[trackingWork.Index].QuestId); - num = ((!_questRegistry.IsKnownQuest(elementId)) ? (-982372808) : (-982372809)); - continue; - case 18: - num = ((!_configuration.Advanced.AutoPrioritizeAlliedSocietyRankUp) ? (-982372831) : (-982372812)); - continue; - case 19: - { - if (item4 == byte.MaxValue) - { - num = -982372815; - continue; - } - if (_questFunctions.IsOnAlliedSocietyMount()) - { - break; - } - list.Insert(0, (item3, item4)); - _alliedSocietyData.GetCommonAlliedSocietyNpcs(firstTrackedAlliedSociety, out uint[] normalNpcs, out uint[] _); - if (normalNpcs.Length != 0) - { - (ElementId, byte)? tuple2 = (from x in list - where x.Sequence < byte.MaxValue - where _questFunctions.IsInteractSequence(x.Quest, x.Sequence, normalNpcs) - select x).Cast<(ElementId, byte)?>().FirstOrDefault(); - if (tuple2.HasValue) - { - ElementId item9 = tuple2.Value.Item1; - byte item10 = tuple2.Value.Item2; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler5 = new DefaultInterpolatedStringHandler(31, 1); - defaultInterpolatedStringHandler5.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2091308904)); - defaultInterpolatedStringHandler5.AppendFormatted(tuple2.Value.Item1); - return QuestResolution.ForQuest(EQuestResolutionType.TrackedQuest, item9, item10, msqState, defaultInterpolatedStringHandler5.ToStringAndClear()); - } - } - break; - } - case 22: - num = ((num16 >= 0) ? (-982372816) : (-982372827)); - continue; - case 11: - num = ((list3.Count <= 0) ? (-982372826) : (-982372811)); - continue; - case 3: - num = (_questFunctions.IsQuestBlacklisted(elementId) ? (-982372808) : (-982372806)); - continue; - case 21: - num = ((list3.Count != 0) ? (-982372802) : (-982372828)); - continue; - case 7: - num = -982372807; - continue; - case 17: - num = ((!_configuration.General.SkipLowPriorityDuties) ? (-982372826) : (-982372801)); - continue; - case 8: - list3 = new List<(ElementId, byte)>(); - num16 = ptr->TrackedQuests.Length - 1; - num = -982372830; - continue; case 1: { - IReadOnlyList<(uint ContentFinderConditionId, ElementId QuestId, int Sequence)> lowPriorityQuests = _questRegistry.LowPriorityContentFinderConditionQuests; - list3.RemoveAll(((ElementId Quest, byte Sequence) x) => lowPriorityQuests.Any<(uint, ElementId, int)>(delegate((uint ContentFinderConditionId, ElementId QuestId, int Sequence) y) + ElementId elementId = new QuestId(ptr->NormalQuests[trackingWork.Index].QuestId); + if (_questRegistry.IsKnownQuest(elementId) && !_questFunctions.IsQuestBlacklisted(elementId)) { - int num18 = ((!_003C_003Ec__DisplayClass31_2._202B_200B_200D_206E_202C_206F_202A_202E_206D_200C_206C_206A_202C_206B_202D_200E_206F_206D_206F_202D_202E_202A_202D_206D_206F_206C_206F_202E_200B_202E_200B_206D_202D_200D_206E_206D_200C_206F_200F_202D_202E(x.Quest, y.QuestId)) ? (-1426961220) : (-1426961219)); - while (true) - { - int num19 = num18; - int num20 = -1426961220; - int num21 = num19; - int num22 = num21 + num20; - int num23 = num21 & num20; - switch (num22 - (num23 + num23)) - { - case 0: - return false; - case 1: - return x.Sequence == y.Sequence; - case 2: - goto IL_006e; - } - continue; - IL_006e: - num18 = -1426961219; - } - })); - num = -982372826; - continue; - } - case 13: - return null; - case 15: - list3.RemoveAll(delegate((ElementId Quest, byte Sequence) x) - { - QuestId questId5 = x.Quest as QuestId; - int num18 = (((object)questId5 == null) ? 1720897796 : 1720897799); - while (true) - { - int num19 = num18; - int num20 = 1720897797; - int num21 = num19; - int num22 = num21 + num20; - int num23 = num21 & num20; - switch (num22 - (num23 + num23)) - { - case 1: - return false; - case 2: - return _questFunctions.WouldOvercapAlliedSocietyReputation(questId5); - case 0: - goto IL_0063; - } - continue; - IL_0063: - num18 = 1720897799; - } - }); - num = -982372831; - continue; - case 14: - list3.Add((elementId, QuestManager.GetQuestSequence(_202E_206B_206E_200B_206A_202B_206C_202E_206E_202B_206E_206A_200B_202E_202A_206E_200E_202C_200F_206F_202E_206F_202E_200B_202B_200C_202D_200D_206A_202A_206E_200E_200B_202D_200E_206B_206A_200E_206C_206E_202E(elementId)))); - num = -982372808; - continue; - case 16: - return null; - case 20: - list = (from quest in list3.Skip(1) - where _alliedSocietyData.GetCommonAlliedSocietyTurnIn(quest.Quest) == firstTrackedAlliedSociety - select quest).ToList(); - if (list.Count > 0) - { - num = -982372825; - continue; - } - break; - case 2: - num = ((questType == 2) ? (-982372808) : (-982372803)); - continue; - case 10: - { - (ElementId, byte) tuple = list3.First(); - item3 = tuple.Item1; - item4 = tuple.Item2; - firstTrackedAlliedSociety = _alliedSocietyData.GetCommonAlliedSocietyTurnIn(item3); - if (firstTrackedAlliedSociety != EAlliedSociety.None) - { - num = -982372832; - continue; + list.Add((elementId, QuestManager.GetQuestSequence(elementId.Value))); } break; } - case 4: - trackingWork = ptr->TrackedQuests[num16]; - questType = trackingWork.QuestType; - num = ((questType == 1) ? (-982372814) : (-982372810)); - continue; - case 0: - num = ((list3.Count <= 0) ? (-982372831) : (-982372805)); - continue; - case 9: - num = -982372808; - continue; - case 12: - { - int num17 = num16; - num3 = 1; - num4 = num17; - num16 = ~(~num4 + num3); - num = -982372830; - continue; } - case 5: - { - using (List<(ElementId, byte)>.Enumerator enumerator = list.GetEnumerator()) - { - num = -1720179368; - while (true) - { - int num7 = num; - num3 = -1720179364; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 2: - num = -1720179368; - break; - case 0: - { - ElementId questId = item; - byte sequence = item2; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(53, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1020310285)); - defaultInterpolatedStringHandler.AppendFormatted(item); - return QuestResolution.ForQuest(EQuestResolutionType.TrackedQuest, questId, sequence, msqState, defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 1: - { - (ElementId, byte) current = enumerator.Current; - item = current.Item1; - item2 = current.Item2; - num = ((item2 == byte.MaxValue) ? (-1720179368) : (-1720179364)); - break; - } - case 4: - num = (enumerator.MoveNext() ? (-1720179363) : (-1720179361)); - break; - case 3: - goto end_IL_03fb; - } - continue; - end_IL_03fb: - break; - } - } - if (!_configuration.Advanced.AutoPrioritizeAlliedSocietyRankUp) - { - break; - } - List<(ElementId, byte)> list2 = new List<(ElementId, byte)> { (item3, item4) }; - list2.AddRange(list); - list2.Sort(delegate((ElementId Quest, byte Sequence) a, (ElementId Quest, byte Sequence) b) - { - QuestId questId5 = a.Quest as QuestId; - int num18 = (((object)questId5 != null) ? (-1702301531) : (-1702301536)); - QuestId questId6 = default(QuestId); - ushort num26 = default(ushort); - while (true) - { - int num19 = num18; - int num20 = -1702301535; - int num21 = num19; - int num22 = num21 + num20; - int num23 = num21 & num20; - int num25; - int num24; - ushort value; - switch (num22 - (num23 + num23)) - { - default: - continue; - case 2: - num18 = -1702301536; - continue; - case 3: - num25 = _alliedSocietyQuestFunctions.GetQuestReputationReward(questId6); - goto IL_007d; - case 0: - num25 = 0; - goto IL_007d; - case 4: - num24 = _alliedSocietyQuestFunctions.GetQuestReputationReward(questId5); - break; - case 1: - { - num24 = 0; - break; - } - IL_007d: - value = (ushort)num25; - return num26.CompareTo(value); - } - num26 = (ushort)num24; - questId6 = b.Quest as QuestId; - num18 = (((object)questId6 != null) ? (-1702301534) : (-1702301535)); - } - }); - using (List<(ElementId, byte)>.Enumerator enumerator = list2.GetEnumerator()) - { - num = 401947856; - while (true) - { - int num10 = num; - num3 = 401947857; - num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 3: - num = (_alliedSocietyQuestFunctions.WouldOvercapReputation(questId2) ? 401947856 : 401947857); - break; - case 0: - { - ElementId questId3 = item5; - byte sequence2 = item6; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(40, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-716893854)); - defaultInterpolatedStringHandler2.AppendFormatted(item5); - return QuestResolution.ForQuest(EQuestResolutionType.TrackedQuest, questId3, sequence2, msqState, defaultInterpolatedStringHandler2.ToStringAndClear()); - } - case 2: - num = 401947856; - break; - case 1: - num = (enumerator.MoveNext() ? 401947861 : 401947860); - break; - case 4: - { - (ElementId, byte) current2 = enumerator.Current; - item5 = current2.Item1; - item6 = current2.Item2; - questId2 = item5 as QuestId; - num = (((object)questId2 == null) ? 401947856 : 401947858); - break; - } - case 5: - goto end_IL_0557; - } - continue; - end_IL_0557: - break; - } - } - QuestId rankUpQuestIfAtCapacity = _questFunctions.GetRankUpQuestIfAtCapacity(firstTrackedAlliedSociety); - num = ((!_202A_202A_202E_206E_206B_202D_206B_202A_200E_202E_200B_200F_206A_206B_200D_200C_206D_206A_202B_206E_202D_202E_202A_200F_200F_206E_202A_202E_200E_200D_202B_206B_200F_200E_206E_202E_200E_206B_206C_202E_202E((ElementId)rankUpQuestIfAtCapacity, (ElementId)null)) ? (-140380390) : (-140380389)); - while (true) - { - int num13 = num; - num3 = -140380385; - num4 = num13; - int num14 = num4 + num3; - int num15 = num4 & num3; - switch (num14 - (num15 + num15)) - { - case 3: - num = ((!_questFunctions.IsReadyToAcceptQuest(rankUpQuestIfAtCapacity)) ? (-140380390) : (-140380386)); - break; - case 5: - { - ElementId item7 = list2[0].Item1; - byte item8 = list2[0].Item2; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler4 = new DefaultInterpolatedStringHandler(43, 1); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1624970154)); - defaultInterpolatedStringHandler4.AppendFormatted(list2[0].Item1); - return QuestResolution.ForQuest(EQuestResolutionType.TrackedQuest, item7, item8, msqState, defaultInterpolatedStringHandler4.ToStringAndClear()); - } - case 4: - num = (_questFunctions.IsQuestComplete(rankUpQuestIfAtCapacity) ? (-140380390) : (-140380385)); - break; - case 2: - num = -140380389; - break; - case 1: - { - int sequence3 = (_questFunctions.IsQuestAccepted(rankUpQuestIfAtCapacity) ? QuestManager.GetQuestSequence(_202E_206B_206E_200B_206A_202B_206C_202E_206E_202B_206E_206A_200B_202E_202A_206E_200E_202C_200F_206F_202E_206F_202E_200B_202B_200C_202D_200D_206A_202A_206E_200E_200B_202D_200E_206B_206A_200E_206C_206E_202E((ElementId)rankUpQuestIfAtCapacity)) : 0); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(29, 1); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-184593145)); - defaultInterpolatedStringHandler3.AppendFormatted(rankUpQuestIfAtCapacity); - return QuestResolution.ForQuest(EQuestResolutionType.TrackedQuest, rankUpQuestIfAtCapacity, (byte)sequence3, msqState, defaultInterpolatedStringHandler3.ToStringAndClear()); - } - case 0: - num = (_questFunctions.IsQuestAccepted(rankUpQuestIfAtCapacity) ? (-140380386) : (-140380388)); - break; - } - } - } - } - break; } - ElementId questId4 = item3; - byte sequence4 = item4; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler6 = new DefaultInterpolatedStringHandler(14, 1); - defaultInterpolatedStringHandler6.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1055042837)); - defaultInterpolatedStringHandler6.AppendFormatted(item3); - return QuestResolution.ForQuest(EQuestResolutionType.TrackedQuest, questId4, sequence4, msqState, defaultInterpolatedStringHandler6.ToStringAndClear()); + if (_configuration.General.SkipLowPriorityDuties && list.Count > 0) + { + IReadOnlyList<(uint ContentFinderConditionId, ElementId QuestId, int Sequence)> lowPriorityQuests = _questRegistry.LowPriorityContentFinderConditionQuests; + list.RemoveAll(((ElementId Quest, byte Sequence) x) => lowPriorityQuests.Any<(uint, ElementId, int)>(((uint ContentFinderConditionId, ElementId QuestId, int Sequence) y) => x.Quest == y.QuestId && x.Sequence == y.Sequence)); + } + if (_configuration.Advanced.AutoPrioritizeAlliedSocietyRankUp && list.Count > 0) + { + list.RemoveAll(((ElementId Quest, byte Sequence) x) => x.Quest is QuestId questId2 && _questFunctions.WouldOvercapAlliedSocietyReputation(questId2)); + } + if (list.Count == 0) + { + return null; + } + (ElementId, byte) tuple = list.First(); + ElementId item = tuple.Item1; + byte item2 = tuple.Item2; + EAlliedSociety firstTrackedAlliedSociety = _alliedSocietyData.GetCommonAlliedSocietyTurnIn(item); + if (firstTrackedAlliedSociety != EAlliedSociety.None) + { + List<(ElementId, byte)> list2 = (from quest in list.Skip(1) + where _alliedSocietyData.GetCommonAlliedSocietyTurnIn(quest.Quest) == firstTrackedAlliedSociety + select quest).ToList(); + if (list2.Count > 0) + { + if (item2 == byte.MaxValue) + { + foreach (var (elementId2, b) in list2) + { + if (b != byte.MaxValue) + { + return QuestResolution.ForQuest(EQuestResolutionType.TrackedQuest, elementId2, b, msqState, $"Allied society quest needs completing before turn-in {elementId2}"); + } + } + if (_configuration.Advanced.AutoPrioritizeAlliedSocietyRankUp) + { + List<(ElementId, byte)> list3 = new List<(ElementId, byte)> { (item, item2) }; + list3.AddRange(list2); + list3.Sort(delegate((ElementId Quest, byte Sequence) a, (ElementId Quest, byte Sequence) tuple5) + { + ushort num2 = (ushort)((a.Quest is QuestId questId2) ? _alliedSocietyQuestFunctions.GetQuestReputationReward(questId2) : 0); + ushort value = (ushort)((tuple5.Quest is QuestId questId3) ? _alliedSocietyQuestFunctions.GetQuestReputationReward(questId3) : 0); + return num2.CompareTo(value); + }); + foreach (var (elementId3, sequence) in list3) + { + if (elementId3 is QuestId questId && !_alliedSocietyQuestFunctions.WouldOvercapReputation(questId)) + { + return QuestResolution.ForQuest(EQuestResolutionType.TrackedQuest, elementId3, sequence, msqState, $"Allied society turn-in (cheapest first) {elementId3}"); + } + } + QuestId rankUpQuestIfAtCapacity = _questFunctions.GetRankUpQuestIfAtCapacity(firstTrackedAlliedSociety); + if (rankUpQuestIfAtCapacity != null && !_questFunctions.IsQuestComplete(rankUpQuestIfAtCapacity) && (_questFunctions.IsQuestAccepted(rankUpQuestIfAtCapacity) || _questFunctions.IsReadyToAcceptQuest(rankUpQuestIfAtCapacity))) + { + return QuestResolution.ForQuest(EQuestResolutionType.TrackedQuest, rankUpQuestIfAtCapacity, (byte)(_questFunctions.IsQuestAccepted(rankUpQuestIfAtCapacity) ? QuestManager.GetQuestSequence(rankUpQuestIfAtCapacity.Value) : 0), msqState, $"Allied society rank-up quest {rankUpQuestIfAtCapacity}"); + } + return QuestResolution.ForQuest(EQuestResolutionType.TrackedQuest, list3[0].Item1, list3[0].Item2, msqState, $"Allied society turn-in (all would overcap) {list3[0].Item1}"); + } + } + else if (!_questFunctions.IsOnAlliedSocietyMount()) + { + list2.Insert(0, (item, item2)); + _alliedSocietyData.GetCommonAlliedSocietyNpcs(firstTrackedAlliedSociety, out uint[] normalNpcs, out uint[] _); + if (normalNpcs.Length != 0) + { + (ElementId, byte)? tuple4 = (from x in list2 + where x.Sequence < byte.MaxValue + where _questFunctions.IsInteractSequence(x.Quest, x.Sequence, normalNpcs) + select x).Cast<(ElementId, byte)?>().FirstOrDefault(); + if (tuple4.HasValue) + { + return QuestResolution.ForQuest(EQuestResolutionType.TrackedQuest, tuple4.Value.Item1, tuple4.Value.Item2, msqState, $"Allied society NPC interaction {tuple4.Value.Item1}"); + } + } + } + } + } + return QuestResolution.ForQuest(EQuestResolutionType.TrackedQuest, item, item2, msqState, $"Tracked quest {item}"); } - [MethodImpl(MethodImplOptions.NoInlining)] private QuestResolution? TryResolveAutoPriority(MainScenarioQuestState msqState) { ElementId elementId = (from x in _questFunctions.GetNextPriorityQuestsThatCanBeAccepted() where x.IsAvailable select x.QuestId).FirstOrDefault(); - int num = ((!_202C_200F_202D_202A_206B_206D_202A_202A_200C_202D_200B_200C_200B_206C_206A_202D_206D_202D_202A_206E_206C_202A_200B_202A_202E_206C_200D_200D_206C_206A_206C_206B_200F_202D_202E_200D_206B_206C_202A_206A_202E(elementId, (ElementId)null)) ? 1077185998 : 1077185999); - while (true) + if (elementId == null) { - int num2 = num; - int num3 = 1077185998; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_00ae; - case 0: - { - byte questSequence = QuestManager.GetQuestSequence(_202E_206B_206E_200B_206A_202B_206C_202E_206E_202B_206E_206A_200B_202E_202A_206E_200E_202C_200F_206F_202E_206F_202E_200B_202B_200C_202D_200D_206A_202A_206E_200E_200B_202D_200E_206B_206A_200E_206C_206E_202E(elementId)); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(20, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-830193133)); - defaultInterpolatedStringHandler.AppendFormatted(elementId); - return QuestResolution.ForQuest(EQuestResolutionType.AutoPriority, elementId, questSequence, msqState, defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 1: - return null; - } - continue; - IL_00ae: - num = 1077185999; + return null; } + return QuestResolution.ForQuest(EQuestResolutionType.AutoPriority, elementId, QuestManager.GetQuestSequence(elementId.Value), msqState, $"Auto priority quest {elementId}"); } - [MethodImpl(MethodImplOptions.NoInlining)] private QuestResolution? TryResolveMsqFallback(QuestReference msqQuest, bool allowNewMsq) { - int num = (_202C_200F_202D_202A_206B_206D_202A_202A_200C_202D_200B_200C_200B_206C_206A_202D_206D_202D_202A_206E_206C_202A_200B_202A_202E_206C_200D_200D_206C_206A_206C_206B_200F_202D_202E_200D_206B_206C_202A_206A_202E(msqQuest.CurrentQuest, (ElementId)null) ? (-509746362) : (-509746366)); - while (true) + if (msqQuest.CurrentQuest == null || msqQuest.CurrentQuest.Value == 0) { - int num2 = num; - int num3 = -509746364; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return null; - case 6: - num = ((_202E_206B_206E_200B_206A_202B_206C_202E_206E_202B_206E_206A_200B_202E_202A_206E_200E_202C_200F_206F_202E_206F_202E_200B_202B_200C_202D_200D_206A_202A_206E_200E_200B_202D_200E_206B_206A_200E_206C_206E_202E(msqQuest.CurrentQuest) != 0) ? (-509746355) : (-509746362)); - break; - case 9: - num = ((!_questFunctions.IsQuestAccepted(msqQuest.CurrentQuest)) ? (-509746361) : (-509746365)); - break; - case 4: - return null; - case 7: - return null; - case 0: - { - ElementId? currentQuest = msqQuest.CurrentQuest; - byte sequence = msqQuest.Sequence; - MainScenarioQuestState state = msqQuest.State; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(13, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-535126555)); - defaultInterpolatedStringHandler.AppendFormatted(msqQuest.CurrentQuest); - return QuestResolution.ForQuest(EQuestResolutionType.MsqFallback, currentQuest, sequence, state, defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 3: - num = ((_configuration.General.MsqPriority != Configuration.EMsqPriorityMode.Manual) ? (-509746367) : (-509746363)); - break; - case 8: - num = -509746366; - break; - case 1: - return null; - case 5: - num = (allowNewMsq ? (-509746364) : (-509746368)); - break; - } + return null; } + if (_questFunctions.IsQuestAccepted(msqQuest.CurrentQuest)) + { + return null; + } + if (_configuration.General.MsqPriority == Configuration.EMsqPriorityMode.Manual) + { + return null; + } + if (!allowNewMsq) + { + return null; + } + return QuestResolution.ForQuest(EQuestResolutionType.MsqFallback, msqQuest.CurrentQuest, msqQuest.Sequence, msqQuest.State, $"MSQ fallback {msqQuest.CurrentQuest}"); } - [MethodImpl(MethodImplOptions.NoInlining)] private QuestResolution? TryResolveStartingCity(MainScenarioQuestState msqState) { - int num = ((_206D_200D_206F_200F_200F_206F_206D_200B_206E_200D_206A_202A_202B_200F_202D_202A_202D_200C_206F_206E_202B_202A_202D_206F_206F_202D_200D_200C_206C_202B_202E_200C_206F_200E_206A_206E_200F_200C_206C_206B_202E(_clientState) != 181) ? (-244287801) : (-244287802)); - while (true) + if (_clientState.TerritoryType == 181) { - int num2 = num; - int num3 = -244287801; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = ((_206D_200D_206F_200F_200F_206F_206D_200B_206E_200D_206A_202A_202B_200F_202D_202A_202D_200C_206F_206E_202B_202A_202D_206F_206F_202D_200D_200C_206C_202B_202E_200C_206F_200E_206A_206E_200F_200C_206C_206B_202E(_clientState) != 182) ? (-244287803) : (-244287804)); - break; - case 2: - num = ((_206D_200D_206F_200F_200F_206F_206D_200B_206E_200D_206A_202A_202B_200F_202D_202A_202D_200C_206F_206E_202B_202A_202D_206F_206F_202D_200D_200C_206C_202B_202E_200C_206F_200E_206A_206E_200F_200C_206C_206B_202E(_clientState) != 183) ? (-244287805) : (-244287807)); - break; - case 5: - num = -244287802; - break; - case 6: - return QuestResolution.ForQuest(EQuestResolutionType.MsqImmediate, _202E_206A_206F_206E_202D_206B_206F_202A_202A_202A_202D_202C_206B_202B_202C_206B_202A_202E_202C_200F_200D_202E_200F_200B_202D_200E_202A_202A_200F_202E_206E_202E_202C_200E_202E_202B_202E_202C_206B_200F_202E((ushort)39), 0, MainScenarioQuestState.Available, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1912103919)); - case 3: - return QuestResolution.ForQuest(EQuestResolutionType.MsqImmediate, _202E_206A_206F_206E_202D_206B_206F_202A_202A_202A_202D_202C_206B_202B_202C_206B_202A_202E_202C_200F_200D_202E_200F_200B_202D_200E_202A_202A_200F_202E_206E_202E_202C_200E_202E_202B_202E_202C_206B_200F_202E((ushort)594), 0, MainScenarioQuestState.Available, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1218664531)); - case 4: - return null; - case 1: - return QuestResolution.ForQuest(EQuestResolutionType.MsqImmediate, _202E_206A_206F_206E_202D_206B_206F_202A_202A_202A_202D_202C_206B_202B_202C_206B_202A_202E_202C_200F_200D_202E_200F_200B_202D_200E_202A_202A_200F_202E_206E_202E_202C_200E_202E_202B_202E_202C_206B_200F_202E((ushort)107), 0, MainScenarioQuestState.Available, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1071401700)); - } + return QuestResolution.ForQuest(EQuestResolutionType.MsqImmediate, new QuestId(107), 0, MainScenarioQuestState.Available, "Starting city: Limsa Lominsa"); } + if (_clientState.TerritoryType == 182) + { + return QuestResolution.ForQuest(EQuestResolutionType.MsqImmediate, new QuestId(594), 0, MainScenarioQuestState.Available, "Starting city: Ul'dah"); + } + if (_clientState.TerritoryType == 183) + { + return QuestResolution.ForQuest(EQuestResolutionType.MsqImmediate, new QuestId(39), 0, MainScenarioQuestState.Available, "Starting city: Gridania"); + } + return null; } private QuestResolution? TryResolveLevelingMode(int currentPlayerLevel, QuestController.EAutomationType automationType, MainScenarioQuestState msqState) { - int num = (ShouldStartLevelingMode(currentPlayerLevel, automationType) ? (-430632054) : (-430632056)); - int item = default(int); - string item2 = default(string); - while (true) + if (!ShouldStartLevelingMode(currentPlayerLevel, automationType)) { - int num2 = num; - int num3 = -430632055; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -430632056; - break; - case 3: - { - (bool isLevelLocked, int levelsNeeded, int requiredLevel, string? questName) msqLevelLockInfo = _questFunctions.GetMsqLevelLockInfo(); - bool item3 = msqLevelLockInfo.isLevelLocked; - item = msqLevelLockInfo.requiredLevel; - item2 = msqLevelLockInfo.questName; - num = (item3 ? (-430632051) : (-430632053)); - break; - } - case 4: - return QuestResolution.Leveling(item, item2, msqState); - case 1: - return null; - case 2: - return null; - } + return null; } + var (flag, _, targetLevel, questName) = _questFunctions.GetMsqLevelLockInfo(); + if (!flag) + { + return null; + } + return QuestResolution.Leveling(targetLevel, questName, msqState); } public bool ShouldStartLevelingMode(int currentPlayerLevel, QuestController.EAutomationType automationType) { - int num = ((automationType == QuestController.EAutomationType.Automatic) ? (-451706510) : (-451706507)); - while (true) + if (automationType != QuestController.EAutomationType.Automatic) { - int num2 = num; - int num3 = -451706509; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return true; - case 7: - return false; - case 0: - num = -451706507; - break; - case 2: - return false; - case 6: - return false; - case 1: - num = (_206B_206A_200F_200D_202A_206F_200F_200F_202C_206E_206E_200F_200E_200F_202A_200D_200C_202C_206A_202A_202A_200E_206C_202D_200F_206B_206A_200E_202E_202E_200C_206A_202D_200C_200B_206E_206A_202D_206D_206A_202E(_condition, ConditionFlag.BoundByDuty) ? (-451706508) : (-451706506)); - break; - case 4: - num = (_autoDutyIpc.IsConfiguredToRunLevelingMode(currentPlayerLevel) ? (-451706512) : (-451706511)); - break; - case 5: - num = ((!_206B_206A_200F_200D_202A_206F_200F_200F_202C_206E_206E_200F_200E_200F_202A_200D_200C_202C_206A_202A_202A_200E_206C_202D_200F_206B_206A_200E_202E_202E_200C_206A_202D_200C_200B_206E_206A_202D_206D_206A_202E(_condition, ConditionFlag.InDutyQueue)) ? (-451706505) : (-451706508)); - break; - } + return false; } - } - - static IPlayerCharacter _206C_202B_206B_200C_206A_200C_202D_206E_200C_206C_202B_202E_206E_202E_200D_202A_202B_200D_206D_206B_202C_200F_202D_206C_206D_202C_200E_202D_206D_200D_200E_202C_200E_202D_202B_200E_206F_206E_206B_206D_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static byte _202D_206D_206C_206A_202B_202A_200C_206E_200C_200F_200F_202D_202A_206C_200B_202B_200D_200C_200D_206D_206A_200E_200B_202A_200B_206E_200C_202E_200C_202C_200E_206C_206C_206A_206B_200B_202C_202D_200B_206D_202E(ICharacter P_0) - { - return P_0.Level; - } - - static RowRef<ClassJob> _202D_206D_202A_200E_200D_202B_200C_202A_200B_202B_200C_202A_206A_200F_206C_200B_200F_202E_206F_202D_206F_206F_200D_206A_202C_202D_200D_206E_202E_202A_202A_200F_206D_206C_206B_202B_202C_206E_200F_206E_202E(ICharacter P_0) - { - return P_0.ClassJob; - } - - static bool _202A_202A_202E_206E_206B_202D_206B_202A_200E_202E_200B_200F_206A_206B_200D_200C_206D_206A_202B_206E_202D_202E_202A_200F_200F_206E_202A_202E_200E_200D_202B_206B_200F_200E_206E_202E_200E_206B_206C_202E_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } - - static void _202B_202C_200B_202B_200F_200B_202E_206B_206C_206B_200E_206B_206C_206E_200F_200B_206B_202C_206E_206F_206A_202A_202D_200C_206E_202B_200B_202E_206D_202A_206D_200C_206A_200B_200D_206A_206D_206F_206E_206C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static bool _202C_200F_202D_202A_206B_206D_202A_202A_200C_202D_200B_200C_200B_206C_206A_202D_206D_202D_202A_206E_206C_202A_200B_202A_202E_206C_200D_200D_206C_206A_206C_206B_200F_202D_202E_200D_206B_206C_202A_206A_202E(ElementId P_0, ElementId P_1) - { - return P_0 == P_1; - } - - static ushort _202E_206B_206E_200B_206A_202B_206C_202E_206E_202B_206E_206A_200B_202E_202A_206E_200E_202C_200F_206F_202E_206F_202E_200B_202B_200C_202D_200D_206A_202A_206E_200E_200B_202D_200E_206B_206A_200E_206C_206E_202E(ElementId P_0) - { - return P_0.Value; - } - - static void _206E_206E_200E_206F_202B_200E_202D_206E_202B_206B_206D_202E_206F_202B_200B_200F_200B_206A_200E_206E_206B_206B_206D_200D_206E_206D_200C_200C_200C_200B_202B_206E_202C_200D_206C_202C_202C_206E_206C_206B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static QuestId _202E_206A_206F_206E_202D_206B_206F_202A_202A_202A_202D_202C_206B_202B_202C_206B_202A_202E_202C_200F_200D_202E_200F_200B_202D_200E_202A_202A_200F_202E_206E_202E_202C_200E_202E_202B_202E_202C_206B_200F_202E(ushort P_0) - { - return new QuestId(P_0); - } - - static bool _200E_202A_200B_206E_206D_200B_206F_202D_206D_202A_206F_206A_200D_206E_206A_202D_202D_206E_202A_202C_200F_202A_202E_202A_200B_200C_200D_202C_206E_200E_206A_200C_206C_206D_206D_206B_200D_206A_200C_200C_202E(uint P_0) - { - return PlayerStateHelper.IsMountUnlocked(P_0); - } - - static byte _200C_206C_202C_202E_206B_206B_200E_206C_200D_206D_206C_200E_206A_202B_206B_202B_202E_202D_206B_206E_200B_200F_206B_202E_202A_202A_206A_206D_202C_200D_200F_200F_202C_200D_206C_200B_202D_206C_206E_202E() - { - return GrandCompanyHelper.GetGrandCompanyId(); - } - - static void _206F_202B_206B_200E_206F_202D_206D_202D_202B_202C_200D_202C_206D_202D_206D_206C_202C_202E_200F_200C_200B_200E_206E_206B_200F_200B_206A_200D_200E_206B_206A_202B_206B_206F_202B_202E_200E_200F_202A_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogTrace(P_1, P_2); - } - - static uint _206D_200D_206F_200F_200F_206F_206D_200B_206E_200D_206A_202A_202B_200F_202D_202A_202D_200C_206F_206E_202B_202A_202D_206F_206F_202D_200D_200C_206C_202B_202E_200C_206F_200E_206A_206E_200F_200C_206C_206B_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static bool _206B_206A_200F_200D_202A_206F_200F_200F_202C_206E_206E_200F_200E_200F_202A_200D_200C_202C_206A_202A_202A_200E_206C_202D_200F_206B_206A_200E_202E_202E_200C_206A_202D_200C_200B_206E_206A_202D_206D_206A_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; + if (_condition[ConditionFlag.BoundByDuty] || _condition[ConditionFlag.InDutyQueue]) + { + return false; + } + if (!_autoDutyIpc.IsConfiguredToRunLevelingMode(currentPlayerLevel)) + { + return false; + } + return true; } } diff --git a/Questionable/Questionable.Controller/QuestRegistry.cs b/Questionable/Questionable.Controller/QuestRegistry.cs index 5c60830..ce1b3ef 100644 --- a/Questionable/Questionable.Controller/QuestRegistry.cs +++ b/Questionable/Questionable.Controller/QuestRegistry.cs @@ -1,18 +1,13 @@ #define RELEASE using System; -using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.IO; using System.Linq; -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Text; using System.Text.Json; using System.Text.Json.Nodes; using System.Text.RegularExpressions; -using System.Threading; using Dalamud.Plugin; using Dalamud.Plugin.Ipc; using Dalamud.Plugin.Services; @@ -63,214 +58,7 @@ internal sealed class QuestRegistry : IDisposable } } - internal sealed record FailedQuestLoad(ElementId QuestId, string? FilePath, string ErrorMessage, Quest.ESource Source) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202E_206E_202A_200D_202D_206A_202B_202A_206B_206C_206E_202A_200C_206F_200B_206B_202A_202D_206F_206B_202C_202B_200E_200D_202B_202E_206C_206A_206C_206C_200B_202E_202A_206E_200D_202C_202B_206F_200D_206A_202E(typeof(FailedQuestLoad).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206B_200E_202A_200D_200E_206F_200F_202B_206A_200E_200D_202A_202A_202A_200E_200C_200C_202C_200D_202C_202D_202A_202C_206A_206A_200B_200F_206C_206D_200D_206E_202E_206C_202E_202D_200E_206B_200C_202E_200E_202E(); - _206E_202A_200D_206C_200E_202E_206F_202A_202C_202E_200D_206A_206F_206A_206A_200F_206D_202E_202D_206C_206C_202A_202C_206D_202C_206B_200C_202D_206F_206B_206F_202C_200F_206D_206D_202E_202B_202B_200E_206D_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-568130385)); - _206E_202A_200D_206C_200E_202E_206F_202A_202C_202E_200D_206A_206F_206A_206A_200F_206D_202E_202D_206C_206C_202A_202C_206D_202C_206B_200C_202D_206F_206B_206F_202C_200F_206D_206D_202E_202B_202B_200E_206D_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1344697862)); - int num = ((!PrintMembers(stringBuilder)) ? 1768715349 : 1768715350); - while (true) - { - int num2 = num; - int num3 = 1768715351; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - _206F_200D_206C_200C_202E_206A_200C_202D_200E_202E_200F_200C_206B_200F_200B_206A_206F_202A_206E_200D_202A_206C_200D_200C_206C_206F_202A_206E_200F_206D_206F_200B_200D_200F_202D_206A_200E_202E_202C_202E_202E(stringBuilder, '}'); - return _202E_202B_200F_200B_206C_206F_206F_200F_202A_206C_200F_200C_200F_200E_206C_206E_202B_202C_200F_206B_202C_200D_200C_202D_200C_206C_200B_202A_202A_202D_202E_206A_206E_202C_202E_206E_202E_200E_202E_202A_202E((object)stringBuilder); - case 1: - _206F_200D_206C_200C_202E_206A_200C_202D_200E_202E_200F_200C_206B_200F_200B_206A_206F_202A_206E_200D_202A_206C_200D_200C_206C_206F_202A_206E_200F_206D_206F_200B_200D_200F_202D_206A_200E_202E_202C_202E_202E(stringBuilder, ' '); - num = 1768715349; - break; - case 0: - num = 1768715350; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206C_202A_200D_202D_202E_206C_206C_202E_206D_202E_200D_206B_206B_206D_206E_202E_202B_202B_206D_200B_200F_200D_200B_202E_206C_200F_200E_202E_200E_202A_202E_206A_206A_206F_202A_206D_200D_206B_206E_202B_202E(); - _206E_202A_200D_206C_200E_202E_206F_202A_202C_202E_200D_206A_206F_206A_206A_200F_206D_202E_202D_206C_206C_202A_202C_206D_202C_206B_200C_202D_206F_206B_206F_202C_200F_206D_206D_202E_202B_202B_200E_206D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-196925368)); - _202C_202B_202A_200C_200B_200D_206A_200D_206B_202C_202A_202A_206B_202A_202D_200E_202D_202A_200E_200F_202E_206D_200D_200F_202A_200D_202D_200E_202C_206A_206E_200F_200C_206C_200B_200B_206F_200C_200D_200C_202E(builder, (object)QuestId); - _206E_202A_200D_206C_200E_202E_206F_202A_202C_202E_200D_206A_206F_206A_206A_200F_206D_202E_202D_206C_206C_202A_202C_206D_202C_206B_200C_202D_206F_206B_206F_202C_200F_206D_206D_202E_202B_202B_200E_206D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-201639177)); - _202C_202B_202A_200C_200B_200D_206A_200D_206B_202C_202A_202A_206B_202A_202D_200E_202D_202A_200E_200F_202E_206D_200D_200F_202A_200D_202D_200E_202C_206A_206E_200F_200C_206C_200B_200B_206F_200C_200D_200C_202E(builder, (object)FilePath); - _206E_202A_200D_206C_200E_202E_206F_202A_202C_202E_200D_206A_206F_206A_206A_200F_206D_202E_202D_206C_206C_202A_202C_206D_202C_206B_200C_202D_206F_206B_206F_202C_200F_206D_206D_202E_202B_202B_200E_206D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-607356140)); - _202C_202B_202A_200C_200B_200D_206A_200D_206B_202C_202A_202A_206B_202A_202D_200E_202D_202A_200E_200F_202E_206D_200D_200F_202A_200D_202D_200E_202C_206A_206E_200F_200C_206C_200B_200B_206F_200C_200D_200C_202E(builder, (object)ErrorMessage); - _206E_202A_200D_206C_200E_202E_206F_202A_202C_202E_200D_206A_206F_206A_206A_200F_206D_202E_202D_206C_206C_202A_202C_206D_202C_206B_200C_202D_206F_206B_206F_202C_200F_206D_206D_202E_202B_202B_200E_206D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1853246716)); - _206E_202A_200D_206C_200E_202E_206F_202A_202C_202E_200D_206A_206F_206A_206A_200F_206D_202E_202D_206C_206C_202A_202C_206D_202C_206B_200C_202D_206F_206B_206F_202C_200F_206D_206D_202E_202B_202B_200E_206D_202E(builder, Source.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(FailedQuestLoad? other) - { - int num = (((object)this == other) ? (-699833677) : (-699833676)); - while (true) - { - int num2 = num; - int num3 = -699833673; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = ((!EqualityComparer<string>.Default.Equals(FilePath, other.FilePath)) ? (-699833680) : (-699833679)); - break; - case 4: - return true; - case 8: - return EqualityComparer<Quest.ESource>.Default.Equals(Source, other.Source); - case 5: - num = -699833676; - break; - case 6: - num = ((!EqualityComparer<string>.Default.Equals(ErrorMessage, other.ErrorMessage)) ? (-699833680) : (-699833665)); - break; - case 2: - num = ((!EqualityComparer<ElementId>.Default.Equals(QuestId, other.QuestId)) ? (-699833680) : (-699833673)); - break; - case 3: - num = (((object)other == null) ? (-699833680) : (-699833674)); - break; - case 1: - num = ((!_200E_206C_200D_206D_206B_206F_202D_202B_202B_202C_206D_202D_206B_200D_200F_206C_206F_200C_202A_206F_206A_202B_202C_206C_206F_206B_200D_206B_200B_206F_200D_206F_206C_202E_206D_200C_200D_200C_200D_200E_202E(EqualityContract, other.EqualityContract)) ? (-699833680) : (-699833675)); - break; - case 7: - return false; - } - } - } - - bool IEquatable<FailedQuestLoad>.Equals(FailedQuestLoad? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202E_206E_202A_200D_202D_206A_202B_202A_206B_206C_206E_202A_200C_206F_200B_206B_202A_202D_206F_206B_202C_202B_200E_200D_202B_202E_206C_206A_206C_206C_200B_202E_202A_206E_200D_202C_202B_206F_200D_206A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206B_200E_202A_200D_200E_206F_200F_202B_206A_200E_200D_202A_202A_202A_200E_200C_200C_202C_200D_202C_202D_202A_202C_206A_206A_200B_200F_206C_206D_200D_206E_202E_206C_202E_202D_200E_206B_200C_202E_200E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206E_202A_200D_206C_200E_202E_206F_202A_202C_202E_200D_206A_206F_206A_206A_200F_206D_202E_202D_206C_206C_202A_202C_206D_202C_206B_200C_202D_206F_206B_206F_202C_200F_206D_206D_202E_202B_202B_200E_206D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206F_200D_206C_200C_202E_206A_200C_202D_200E_202E_200F_200C_206B_200F_200B_206A_206F_202A_206E_200D_202A_206C_200D_200C_206C_206F_202A_206E_200F_206D_206F_200B_200D_200F_202D_206A_200E_202E_202C_202E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202E_202B_200F_200B_206C_206F_206F_200F_202A_206C_200F_200C_200F_200E_206C_206E_202B_202C_200F_206B_202C_200D_200C_202D_200C_206C_200B_202A_202A_202D_202E_206A_206E_202C_202E_206E_202E_200E_202E_202A_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206C_202A_200D_202D_202E_206C_206C_202E_206D_202E_200D_206B_206B_206D_206E_202E_202B_202B_206D_200B_200F_200D_200B_202E_206C_200F_200E_202E_200E_202A_202E_206A_206A_206F_202A_206D_200D_206B_206E_202B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202C_202B_202A_200C_200B_200D_206A_200D_206B_202C_202A_202A_206B_202A_202D_200E_202D_202A_200E_200F_202E_206D_200D_200F_202A_200D_202D_200E_202C_206A_206E_200F_200C_206C_200B_200B_206F_200C_200D_200C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200E_206C_200D_206D_206B_206F_202D_202B_202B_202C_206D_202D_206B_200D_200F_206C_206F_200C_202A_206F_206A_202B_202C_206C_206F_206B_200D_206B_200B_206F_200D_206F_206C_202E_206D_200C_200D_200C_200D_200E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<KeyValuePair<ElementId, Quest>, bool> _003C_003E9__23_0; - - public static Func<QuestStep, bool> _003C_003E9__28_0; - - public static Func<Quest, bool> _003C_003E9__29_0; - - internal bool _003CBuild_003Eb__23_0(KeyValuePair<ElementId, Quest> x) - { - return !_206B_202E_202A_206F_200C_206E_202D_206D_200D_206E_202B_202A_202B_200C_200C_200C_200B_200F_200E_200D_206B_206B_206C_206D_206D_206A_206F_200E_206B_206B_202E_206D_206A_202D_206F_206A_202E_206A_200B_200E_202E(x.Value.Root); - } - - internal bool _003CLoadCfcIds_003Eb__28_0(QuestStep x) - { - EInteractionType eInteractionType = _202C_200F_200E_206A_200F_206F_202A_200B_206A_206B_202C_200E_200E_202E_206D_202A_200C_202C_202A_206C_206F_202E_202A_200F_200B_202C_206A_202A_200C_200E_202B_206A_202A_200B_206F_200B_202D_202B_202A_202A_202E(x); - int num = (((uint)(eInteractionType - 19) > 1u) ? (-105448729) : (-105448732)); - bool result = default(bool); - while (true) - { - int num2 = num; - int num3 = -105448731; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return result; - case 1: - result = true; - num = -105448731; - break; - case 3: - num = -105448732; - break; - case 2: - result = false; - num = -105448731; - break; - } - } - } - - internal bool _003CValidateQuests_003Eb__29_0(Quest x) - { - return x.Source != Quest.ESource.Assembly; - } - - static bool _206B_202E_202A_206F_200C_206E_202D_206D_200D_206E_202B_202A_202B_200C_200C_200C_200B_200F_200E_200D_206B_206B_206C_206D_206D_206A_206F_200E_206B_206B_202E_206D_206A_202D_206F_206A_202E_206A_200B_200E_202E(QuestRoot P_0) - { - return P_0.Disabled; - } - - static EInteractionType _202C_200F_200E_206A_200F_206F_202A_200B_206A_206B_202C_200E_200E_202E_206D_202A_200C_202C_202A_206C_206F_202E_202A_200F_200B_202C_206A_202A_200C_200E_202B_206A_202A_200B_206F_200B_202D_202B_202A_202A_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - } + internal sealed record FailedQuestLoad(ElementId QuestId, string? FilePath, string ErrorMessage, Quest.ESource Source); private readonly IDalamudPluginInterface _pluginInterface; @@ -290,9 +78,6 @@ internal sealed class QuestRegistry : IDisposable private volatile Snapshot _snapshot = new Snapshot(); - [CompilerGenerated] - private EventHandler? m_Reloaded; - public IEnumerable<Quest> AllQuests => _snapshot.Quests.Values; public int Count => _snapshot.Count; @@ -301,67 +86,8 @@ internal sealed class QuestRegistry : IDisposable public IReadOnlyList<(uint ContentFinderConditionId, ElementId QuestId, int Sequence)> LowPriorityContentFinderConditionQuests => _snapshot.LowPriorityContentFinderConditionQuests; - public event EventHandler? Reloaded - { - [CompilerGenerated] - add - { - EventHandler eventHandler = this.m_Reloaded; - int num = 237469917; - while (true) - { - int num2 = num; - int num3 = 237469916; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return; - case 1: - { - EventHandler eventHandler2 = eventHandler; - EventHandler value2 = (EventHandler)_202D_202A_202A_202C_202A_200B_202E_200B_200B_202D_206B_200F_200D_202B_206B_206E_200D_202C_206C_202D_200B_200F_206A_200C_200F_200E_206E_202D_206E_202A_202A_200E_202D_206D_206E_206F_200C_202D_206C_206C_202E((Delegate)eventHandler2, (Delegate)value); - eventHandler = Interlocked.CompareExchange(ref this.m_Reloaded, value2, eventHandler2); - num = (((object)eventHandler != eventHandler2) ? 237469917 : 237469918); - break; - } - case 0: - num = 237469917; - break; - } - } - } - [CompilerGenerated] - remove - { - EventHandler eventHandler = this.m_Reloaded; - int num = 268967393; - while (true) - { - int num2 = num; - int num3 = 268967392; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return; - case 1: - { - EventHandler eventHandler2 = eventHandler; - EventHandler value2 = (EventHandler)_202E_202D_202B_206E_200F_202B_206B_200B_202B_202B_206E_202B_206F_202A_200D_200B_200D_206E_202D_202D_206A_206E_206D_202C_200F_200F_206E_200E_202B_206C_202E_202C_200D_200B_206F_202B_200B_206E_200B_206D_202E((Delegate)eventHandler2, (Delegate)value); - eventHandler = Interlocked.CompareExchange(ref this.m_Reloaded, value2, eventHandler2); - num = (((object)eventHandler != eventHandler2) ? 268967393 : 268967392); - break; - } - case 2: - num = 268967393; - break; - } - } - } - } + public event EventHandler? Reloaded; - [MethodImpl(MethodImplOptions.NoInlining)] public QuestRegistry(IDalamudPluginInterface pluginInterface, QuestData questData, QuestValidator questValidator, JsonSchemaValidator jsonSchemaValidator, ILogger<QuestRegistry> logger, TerritoryData territoryData, IChatGui chatGui, IFramework framework) { _pluginInterface = pluginInterface; @@ -371,20 +97,13 @@ internal sealed class QuestRegistry : IDisposable _logger = logger; _territoryData = territoryData; _chatGui = chatGui; - _reloadDataIpc = _pluginInterface.GetIpcProvider<object>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(59906523)); + _reloadDataIpc = _pluginInterface.GetIpcProvider<object>("Questionable.ReloadData"); } public void Dispose() { } - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] internal Snapshot Build() { _questValidator.Reset(); @@ -392,68 +111,37 @@ internal sealed class QuestRegistry : IDisposable LoadQuestsFromAssembly(snapshot); try { - LoadFromDirectory(snapshot, _200D_200C_200B_206C_202B_200E_206B_202C_200C_202A_202D_206D_202A_200F_200E_200B_202E_206E_202D_202C_200B_206E_202C_206E_206B_200E_206A_206E_202E_200E_202D_202E_200F_202E_200C_202E_200F_202E_206F_202B_202E(_206F_200D_202E_206F_206C_200B_206E_202B_200C_200E_206D_206E_202A_206D_206A_206D_202D_206E_202B_200D_202B_206A_206A_200B_206D_202A_202B_202B_206A_206F_200D_200D_202A_200C_202E_202C_206B_206B_206B_206C_202E(_206E_200F_200B_206F_206C_206E_206A_206D_206D_202C_200D_206F_206B_200D_202D_200C_200C_202D_202A_202E_206C_202E_200B_202A_206A_202C_202D_202C_200B_206B_202E_200C_200E_200D_200C_206A_200F_202B_200D_202C_202E((FileSystemInfo)_206D_202C_206C_206D_206A_200C_200F_200C_206A_206D_206D_206C_200E_206B_200F_200E_206F_202A_206E_206E_202A_206A_206D_206C_206E_202C_206A_202E_206E_206D_202B_200D_206D_200C_202B_202C_202A_200C_202A_206E_202E(_pluginInterface)), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(483735086))), Quest.ESource.UserDirectory); + LoadFromDirectory(snapshot, new DirectoryInfo(Path.Combine(_pluginInterface.ConfigDirectory.FullName, "Quests")), Quest.ESource.UserDirectory); } - catch (Exception ex) + catch (Exception exception) { - _200B_200C_202D_202E_200D_206D_200E_200D_200C_206D_202B_202D_200E_200D_202D_202D_206A_202B_206F_200D_202E_202C_202C_200F_200E_206B_202B_202B_206B_202B_202A_202C_202C_206A_200F_206C_206B_206A_206F_200F_202E((ILogger)_logger, ex, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1413317878), Array.Empty<object>()); + _logger.LogError(exception, "Failed to load all quests from user directory (some may have been successfully loaded)"); } LoadCfcIds(snapshot); - snapshot.Count = snapshot.Quests.Count<KeyValuePair<ElementId, Quest>>((KeyValuePair<ElementId, Quest> x) => !_003C_003Ec._206B_202E_202A_206F_200C_206E_202D_206D_200D_206E_202B_202A_202B_200C_200C_200C_200B_200F_200E_200D_206B_206B_206C_206D_206D_206A_206F_200E_206B_206B_202E_206D_206A_202D_206F_206A_202E_206A_200B_200E_202E(x.Value.Root)); + snapshot.Count = snapshot.Quests.Count<KeyValuePair<ElementId, Quest>>((KeyValuePair<ElementId, Quest> x) => !x.Value.Root.Disabled); return snapshot; } - [MethodImpl(MethodImplOptions.NoInlining)] internal void Publish(Snapshot snapshot, bool sendReloadDataIpc = true, bool validateQuests = true) { _snapshot = snapshot; - int num = ((!validateQuests) ? (-104766368) : (-104766365)); - while (true) + if (validateQuests) { - int num2 = num; - int num3 = -104766366; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 3: - num = -104766365; - continue; - case 1: - ValidateQuests(); - num = -104766368; - continue; - case 2: - { - EventHandler? eventHandler = this.Reloaded; - if (eventHandler == null) - { - break; - } - eventHandler(this, EventArgs.Empty); - num = -104766366; - continue; - } - case 0: - break; - } - break; + ValidateQuests(); } + this.Reloaded?.Invoke(this, EventArgs.Empty); if (sendReloadDataIpc) { try { _reloadDataIpc.SendMessage(); } - catch (Exception ex) + catch (Exception exception) { - _202A_206C_200B_200D_202E_206F_206A_206E_206A_202B_206D_206E_206C_202A_202C_206E_206C_206A_200C_200B_206B_206E_202C_200D_206E_202E_202E_202E_200E_206E_200C_200B_202D_202D_200F_206C_202A_202C_202E_202C_202E((ILogger)_logger, ex, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1879264080), Array.Empty<object>()); + _logger.LogWarning(exception, "Error during Reload.SendMessage IPC"); } } - _200B_200F_200B_200B_200E_206A_206E_200B_200D_200E_200E_200D_206D_200D_206F_200F_200D_200B_206C_200D_200D_206E_202E_202D_206A_200C_202A_206A_202E_206A_206B_202E_202B_206D_206A_206D_200F_206C_200E_206B_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1981205639), new object[1] { snapshot.Quests.Count }); + _logger.LogDebug("Loaded {Count} quests in total", snapshot.Quests.Count); } public void Reload() @@ -461,432 +149,118 @@ internal sealed class QuestRegistry : IDisposable Publish(Build()); } - [MethodImpl(MethodImplOptions.NoInlining)] [Conditional("RELEASE")] private void LoadQuestsFromAssembly(Snapshot snapshot) { - IEnumerator<KeyValuePair<ElementId, QuestRoot>> enumerator = _200B_202D_200C_206B_200E_200E_200F_206C_200E_202E_202E_200B_206C_206E_200D_202B_206C_206E_202B_206A_202C_200B_200B_206A_206B_200B_206D_202E_206C_202A_200E_200F_202E_202C_206C_202B_200E_206C_202A_202C_202E().GetEnumerator(); - try + foreach (var (elementId2, questRoot2) in AssemblyQuestLoader.GetQuests()) { - string text3 = default(string); - string text = default(string); - string text2 = default(string); - UnlockLinkId unlockLinkId = default(UnlockLinkId); - IQuestInfo questInfo2 = default(IQuestInfo); - DateTime? dateTime = default(DateTime?); - while (_206A_200C_206F_202E_202B_202E_206A_206D_206B_200F_206F_206C_202B_206C_202E_200C_206D_202B_202E_206E_200E_200E_202E_206B_206F_206F_200B_206E_206A_200C_200F_202D_206F_200E_200B_206A_206E_202A_206A_206F_202E((IEnumerator)enumerator)) + try { - var (elementId2, questRoot2) = (KeyValuePair<ElementId, QuestRoot>)(ref enumerator.Current); - try + DateTime? dateTime = (questRoot2.SeasonalQuestExpiry.HasValue ? new DateTime?(DateTime.SpecifyKind(questRoot2.SeasonalQuestExpiry.Value, DateTimeKind.Utc)) : ((DateTime?)null)); + if (_questData.TryGetQuestInfo(elementId2, out IQuestInfo questInfo)) { - int num = (_200B_200F_206B_206D_202B_200B_206C_202C_202A_206B_200C_206D_202A_202A_200E_206C_200F_202C_206E_202C_202A_202D_206A_206E_202C_206D_200D_206A_200D_206D_202A_206B_206B_202B_202E_202C_200E_206B_202B_206F_202E(questRoot2).HasValue ? 1589830137 : 1589830112); - while (true) + goto IL_0173; + } + if (elementId2 is UnlockLinkId unlockLinkId) + { + string text = unlockLinkId.ToString(); + if (text.Length > 1 && text.StartsWith('U')) { - int num2 = num; - int num3 = 1589830123; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - DateTime? obj; - switch (num5 - (num6 + num6)) - { - case 4: - text3 = _200C_200C_200D_202C_200D_200C_206E_200C_200F_206E_202D_202C_206E_202B_202B_202C_200B_200D_202C_202B_206F_200B_206F_200E_202C_206C_206E_206B_200D_200F_206B_202B_206E_206D_206B_202C_206C_206E_206F_202B_202E(text, 1); - num = (_202D_206E_200E_206D_206D_206B_200D_200F_200C_200B_200D_206D_200E_202C_206E_206F_200F_200D_200D_200B_200F_206C_202B_206F_200B_202A_202C_206B_200B_200E_200F_202C_200F_206E_206C_206B_200C_200D_206C_202E(text3, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(679724514)) ? 1589830119 : 1589830114); - break; - case 11: - obj = null; - goto IL_0255; - case 13: - num = 1589830112; - break; - case 8: - text2 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(452449838); - num = 1589830138; - break; - case 6: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(12, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(252251798)); - defaultInterpolatedStringHandler.AppendFormatted(_206F_200F_200C_206A_206F_200E_206A_206A_200E_202E_206E_206A_206E_206F_200F_202E_206C_200F_202D_202A_200F_200B_202C_202C_200E_202C_200F_200F_200F_202B_200C_206D_206A_206C_206F_206A_202A_206E_202B_206F_202E((ElementId)unlockLinkId)); - text = defaultInterpolatedStringHandler.ToStringAndClear(); - num = 1589830113; - break; - } - case 9: - num = (_202D_206E_200E_206D_206D_206B_200D_200F_200C_200B_200D_206D_200E_202C_206E_206F_200F_200D_200D_200B_200F_206C_202B_206F_200B_202A_202C_206B_200B_200E_200F_202C_200F_206E_206C_206B_200C_200D_206C_202E(text3, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-909066060)) ? 1589830115 : 1589830136); - break; - case 5: - text2 = _200E_202A_200C_206A_202A_206C_200F_206C_202C_202B_206C_200E_200C_206C_200D_206F_200E_206C_202B_202D_200F_206E_202A_202C_206D_200E_202A_202C_200C_200D_202B_206B_206E_200D_200E_206C_206D_202B_200B_200C_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1766186702), text3); - num = 1589830138; - break; - case 10: - questInfo2 = new UnlockLinkQuestInfo(unlockLinkId, text, 0u, dateTime); - _200B_200F_200B_200B_200E_206A_206E_200B_200D_200E_200E_200D_206D_200D_206F_200F_200D_200B_206C_200D_200D_206E_202E_202D_206A_200C_202A_206A_202E_206A_206B_202E_202B_206D_206A_206D_200F_206C_200E_206B_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1875699124), new object[1] { elementId2 }); - _questData.AddOrReplaceQuestInfo(questInfo2); - num = 1589830124; - break; - case 7: - num = (_206E_206A_200C_206A_206A_200B_206E_200F_200F_202C_200B_202A_200C_200C_206D_206C_202E_202D_200E_202C_202A_202E_200F_206D_206E_206F_200D_202D_206D_200F_202A_206A_206E_200D_206D_202C_206D_202A_200E_206D_202E(questRoot2).HasValue ? 1589830117 : 1589830121); - break; - case 18: - obj = DateTime.SpecifyKind(_200B_200F_206B_206D_202B_200B_206C_202C_202A_206B_200C_206D_202A_202A_200E_206C_200F_202C_206E_202C_202A_202D_206A_206E_202C_206D_200D_206A_200D_206D_202A_206B_206B_202B_202E_202C_200E_206B_202B_206F_202E(questRoot2).Value, DateTimeKind.Utc); - goto IL_0255; - case 2: - num = ((!_200B_200F_206B_206D_202B_200B_206C_202C_202A_206B_200C_206D_202A_202A_200E_206C_200F_202C_206E_202C_202A_202D_206A_206E_202C_206D_200D_206A_200D_206D_202A_206B_206B_202B_202E_202C_200E_206B_202B_206F_202E(questRoot2).HasValue) ? 1589830123 : 1589830117); - break; - case 12: - text2 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1797110662); - num = 1589830138; - break; - case 19: - num = 1589830126; - break; - case 15: - text = _200B_200C_206D_206D_202A_206E_200C_206A_206D_206C_206D_202E_202D_202A_200D_206D_206D_202B_206F_206E_202B_206C_206F_206F_206E_202E_202A_200F_200B_202B_200F_202A_200E_202E_202B_206B_202A_202D_202D_202B_202E((object)unlockLinkId); - num = ((_202E_202B_206D_202E_200F_202B_206E_206C_202E_200E_206B_206B_200B_200C_200C_200D_200C_202C_206B_200B_206A_200D_206D_206C_206C_200F_202D_200D_206E_206A_202B_206D_206B_206F_200F_200F_200B_200D_206F_202C_202E(text) <= 1) ? 1589830125 : 1589830122); - break; - case 3: - _200E_200E_202D_200B_206D_202C_206E_202C_200E_206A_200E_206D_200C_206B_202D_206E_202A_206C_206F_206F_202E_200B_206F_202E_200C_206A_200D_206A_202D_200E_202B_206D_206F_202B_202B_200C_202D_206C_206F_202A_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1625142981), new object[1] { elementId2 }); - goto end_IL_0054; - case 17: - text = text2; - num = 1589830113; - break; - case 1: - num = ((!_206E_200E_206F_206B_206E_206B_206E_206C_200D_206E_206E_202E_206A_206E_206C_206C_200C_200C_200F_202A_206B_200F_202A_202A_206B_200F_202B_200B_206A_206F_206F_202A_202E_206F_202B_206F_206F_200C_206E_202E_202E(text, 'U')) ? 1589830125 : 1589830127); - break; - case 16: - unlockLinkId = elementId2 as UnlockLinkId; - num = (((object)unlockLinkId == null) ? 1589830120 : 1589830116); - break; - case 14: - _questData.ApplySeasonalOverride(elementId2, _206E_206A_200C_206A_206A_200B_206E_200F_200F_202C_200B_202A_200C_200C_206D_206C_202E_202D_200E_202C_202A_202E_200F_206D_206E_206F_200D_202D_206D_200F_202A_206A_206E_200D_206D_202C_206D_202A_200E_206D_202E(questRoot2) ?? questInfo2.IsSeasonalQuest, dateTime); - num = 1589830123; - break; - case 0: - { - IQuestInfo questInfo = _questData.GetQuestInfo(elementId2); - Quest quest = new Quest - { - Id = elementId2, - Root = questRoot2, - Info = questInfo, - Source = Quest.ESource.Assembly, - SourcePath = null - }; - snapshot.Quests[quest.Id] = quest; - goto end_IL_0054; - } - IL_0255: - dateTime = obj; - num = (_questData.TryGetQuestInfo(elementId2, out questInfo2) ? 1589830124 : 1589830139); - break; - } - continue; - end_IL_0054: - break; + string text2 = text.Substring(1); + string text3 = ((text2 == "568") ? "Patch 7.3 Fantasia" : ((!(text2 == "506")) ? ("U" + text2) : "Patch 7.2 Fantasia")); + text = text3; } - } - catch (Exception ex) - { - _200E_200E_202D_200B_206D_202C_206E_202C_200E_206A_200E_206D_200C_206B_202D_206E_202A_206C_206F_206F_202E_200B_206F_202E_200C_206A_200D_206A_202D_200E_202B_206D_206F_202B_202B_200C_202D_206C_206F_202A_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1294782276), new object[2] + else { - elementId2, - _202E_206D_202C_202B_200D_206A_200C_200E_200E_206B_206A_206F_200C_206E_200C_202C_200B_206A_200B_206D_206F_202E_200E_206E_200F_206C_202A_200B_206C_202A_206A_206D_206B_200F_206B_206F_200F_202B_206F_206C_202E(ex) - }); + text = $"Unlock Link {unlockLinkId.Value}"; + } + questInfo = new UnlockLinkQuestInfo(unlockLinkId, text, 0u, dateTime); + _logger.LogDebug("Created UnlockLinkQuestInfo for {QuestId} from assembly", elementId2); + _questData.AddOrReplaceQuestInfo(questInfo); + goto IL_0173; } - } - } - finally - { - int num = ((enumerator == null) ? 553378492 : 553378493); - while (true) - { - int num7 = num; - int num3 = 553378492; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) + _logger.LogWarning("Not loading unknown quest {QuestId} from assembly: Quest not found in quest data", elementId2); + goto end_IL_0028; + IL_0173: + if (questRoot2.IsSeasonalQuest.HasValue || questRoot2.SeasonalQuestExpiry.HasValue) { - case 2: - num = 553378493; - break; - case 0: - goto end_IL_047e; - case 1: - _206D_206E_202E_202C_206B_206D_206C_202E_200F_206B_202D_202A_200E_202C_202B_200E_202D_202E_202A_206F_206A_200F_206E_206B_200C_202C_200B_200D_206F_202C_200B_200B_200B_206A_202E_200D_200B_202D_206B_202B_202E((IDisposable)enumerator); - num = 553378492; - break; + _questData.ApplySeasonalOverride(elementId2, questRoot2.IsSeasonalQuest ?? questInfo.IsSeasonalQuest, dateTime); } - continue; - end_IL_047e: - break; + IQuestInfo questInfo2 = _questData.GetQuestInfo(elementId2); + Quest quest = new Quest + { + Id = elementId2, + Root = questRoot2, + Info = questInfo2, + Source = Quest.ESource.Assembly, + SourcePath = null + }; + snapshot.Quests[quest.Id] = quest; + end_IL_0028:; + } + catch (Exception ex) + { + _logger.LogWarning("Not loading unknown quest {QuestId} from assembly: {Message}", elementId2, ex.Message); } } - _200B_200F_200B_200B_200E_206A_206E_200B_200D_200E_200E_200D_206D_200D_206F_200F_200D_200B_206C_200D_200D_206E_202E_202D_206A_200C_202A_206A_202E_206A_206B_202E_202B_206D_206A_206D_200F_206C_200E_206B_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2012962831), new object[1] { snapshot.Quests.Count }); + _logger.LogDebug("Loaded {Count} quests from assembly", snapshot.Quests.Count); } - [MethodImpl(MethodImplOptions.NoInlining)] [Conditional("DEBUG")] private void LoadQuestsFromProjectDirectory(Snapshot snapshot) { - DirectoryInfo directoryInfo = _200E_206E_200D_202E_206A_202E_200D_206F_206E_202C_206A_206C_206E_202E_202A_200D_206F_206C_202E_202A_206C_206F_200D_200B_200D_206E_202B_200F_206A_200B_206F_200D_206F_200D_202A_200B_202B_200D_200B_206B_202E(_202A_200D_206F_202D_202B_202B_202D_200C_200C_206A_202E_206D_200F_200D_202A_206F_206A_206E_206B_200E_202D_202E_202A_200E_206D_206F_202C_206F_206B_200D_202B_202C_206A_206B_200F_202A_200C_202B_202B_202C_202E(_pluginInterface)); - object obj; + DirectoryInfo directoryInfo = _pluginInterface.AssemblyLocation.Directory?.Parent?.Parent; if (directoryInfo == null) { - obj = null; + return; } - else + DirectoryInfo directoryInfo2 = new DirectoryInfo(Path.Combine(directoryInfo.FullName, "Paths", "QuestPaths")); + try { - DirectoryInfo directoryInfo2 = _202E_206C_206B_202B_206D_206F_206C_200B_200E_200D_200B_200F_206B_200E_206F_200E_206E_202B_202D_206D_206E_202A_200E_202B_202D_206A_206B_202A_206B_206A_202D_206A_206D_206C_206A_206B_206D_202C_206C_202B_202E(directoryInfo); - obj = ((directoryInfo2 != null) ? _202E_206C_206B_202B_206D_206F_206C_200B_200E_200D_200B_200F_206B_200E_206F_200E_206E_202B_202D_206D_206E_202A_200E_202B_202D_206A_206B_202A_206B_206A_202D_206A_206D_206C_206A_206B_206D_202C_206C_202B_202E(directoryInfo2) : null); + foreach (string value in ExpansionData.ExpansionFolders.Values) + { + LoadFromDirectory(snapshot, new DirectoryInfo(Path.Combine(directoryInfo2.FullName, value)), Quest.ESource.ProjectDirectory, LogLevel.Trace); + } } - DirectoryInfo directoryInfo3 = (DirectoryInfo)obj; - int num = ((directoryInfo3 != null) ? 1130526346 : 1130526345); - while (true) + catch (Exception ex) { - int num2 = num; - int num3 = 1130526344; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0081; - case 1: - return; - case 2: - { - DirectoryInfo directoryInfo4 = _200D_200C_200B_206C_202B_200E_206B_202C_200C_202A_202D_206D_202A_200F_200E_200B_202E_206E_202D_202C_200B_206E_202C_206E_206B_200E_206A_206E_202E_200E_202D_202E_200F_202E_200C_202E_200F_202E_206F_202B_202E(_200E_206F_206F_202C_200F_200B_200C_206A_200C_200F_206F_206A_202A_200C_202C_202E_200F_200B_202E_206B_202E_200D_200B_202E_200B_202E_200E_206C_202D_202A_206F_202B_200C_206F_206C_202E_200D_200E_206B_206C_202E(_206E_200F_200B_206F_206C_206E_206A_206D_206D_202C_200D_206F_206B_200D_202D_200C_200C_202D_202A_202E_206C_202E_200B_202A_206A_202C_202D_202C_200B_206B_202E_200C_200E_200D_200C_206A_200F_202B_200D_202C_202E((FileSystemInfo)directoryInfo3), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-896958366), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1335689907))); - try - { - IEnumerator<string> enumerator = ExpansionData.ExpansionFolders.Values.GetEnumerator(); - try - { - num = 275238560; - while (true) - { - int num7 = num; - num3 = 275238560; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 3: - num = 275238560; - break; - case 1: - { - string current = enumerator.Current; - LoadFromDirectory(snapshot, _200D_200C_200B_206C_202B_200E_206B_202C_200C_202A_202D_206D_202A_200F_200E_200B_202E_206E_202D_202C_200B_206E_202C_206E_206B_200E_206A_206E_202E_200E_202D_202E_200F_202E_200C_202E_200F_202E_206F_202B_202E(_206F_200D_202E_206F_206C_200B_206E_202B_200C_200E_206D_206E_202A_206D_206A_206D_202D_206E_202B_200D_202B_206A_206A_200B_206D_202A_202B_202B_206A_206F_200D_200D_202A_200C_202E_202C_206B_206B_206B_206C_202E(_206E_200F_200B_206F_206C_206E_206A_206D_206D_202C_200D_206F_206B_200D_202D_200C_200C_202D_202A_202E_206C_202E_200B_202A_206A_202C_202D_202C_200B_206B_202E_200C_200E_200D_200C_206A_200F_202B_200D_202C_202E((FileSystemInfo)directoryInfo4), current)), Quest.ESource.ProjectDirectory, LogLevel.Trace); - num = 275238560; - break; - } - case 0: - num = (_206A_200C_206F_202E_202B_202E_206A_206D_206B_200F_206F_206C_202B_206C_202E_200C_206D_202B_202E_206E_200E_200E_202E_206B_206F_206F_200B_206E_206A_200C_200F_202D_206F_200E_200B_206A_206E_202A_206A_206F_202E((IEnumerator)enumerator) ? 275238561 : 275238562); - break; - case 2: - return; - } - } - } - finally - { - num = ((enumerator == null) ? (-1118979294) : (-1118979295)); - while (true) - { - int num10 = num; - num3 = -1118979296; - num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 2: - goto end_IL_0180; - case 1: - _206D_206E_202E_202C_206B_206D_206C_202E_200F_206B_202D_202A_200E_202C_202B_200E_202D_202E_202A_206F_206A_200F_206E_206B_200C_202C_200B_200D_206F_202C_200B_200B_200B_206A_202E_200D_200B_202D_206B_202B_202E((IDisposable)enumerator); - num = -1118979294; - break; - case 0: - num = -1118979295; - break; - } - continue; - end_IL_0180: - break; - } - } - } - catch (Exception ex) - { - snapshot.Quests.Clear(); - _206B_202D_206F_206B_206F_206B_206E_206D_202A_200D_206D_200F_200E_202E_206D_202D_206D_206C_206D_206B_206D_200B_206D_200D_206F_200E_200F_206B_202C_202C_206B_200C_202D_206B_202A_200D_206A_202C_206B_200F_202E(_chatGui, _206E_200C_202A_202D_202B_200B_206A_200B_206F_206A_206F_200D_202E_200C_200C_200C_206F_202D_200B_202D_206F_206B_202C_200F_206C_206B_206B_206C_206E_200B_200D_202C_206B_202D_206F_202B_202B_206B_200E_206D_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(207644226), _200E_202A_206F_206E_200F_200E_206C_202D_200D_200D_200B_206A_206E_206F_200F_200B_206A_202D_202B_202D_206A_206E_200D_206C_206A_200D_206C_202C_206B_206F_206D_200F_206A_206A_206F_202D_206D_206F_202B_202B_202E((MemberInfo)_202A_206F_206C_206F_202B_202D_206A_200C_206D_200C_206A_206B_200F_200D_200F_202B_200C_202E_206B_202B_206E_206D_200F_202E_206E_206D_200F_202E_200F_200B_206D_206C_202D_206A_202A_202C_206A_206B_206F_200E_202E(ex)), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2035955381), _202E_206D_202C_202B_200D_206A_200C_200E_200E_206B_206A_206F_200C_206E_200C_202C_200B_206A_200B_206D_206F_202E_200E_206E_200F_206C_202A_200B_206C_202A_206A_206D_206B_200F_206B_206F_200F_202B_206F_206C_202E(ex)), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - _200B_200C_202D_202E_200D_206D_200E_200D_200C_206D_202B_202D_200E_200D_202D_202D_206A_202B_206F_200D_202E_202C_202C_200F_200E_206B_202B_202B_206B_202B_202A_202C_202C_206A_200F_206C_206B_206A_206F_200F_202E((ILogger)_logger, ex, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1021940989), Array.Empty<object>()); - return; - } - } - } - continue; - IL_0081: - num = 1130526345; + snapshot.Quests.Clear(); + _chatGui.PrintError("Unable to load quests - " + ex.GetType().Name + ": " + ex.Message, "Questionable", 576); + _logger.LogError(ex, "Failed to load quests from project directory"); } } private void LoadCfcIds(Snapshot snapshot) { - DutyOptions dutyOptions = default(DutyOptions); - TerritoryData.ContentFinderConditionData contentFinderConditionData = default(TerritoryData.ContentFinderConditionData); - QuestStep current3 = default(QuestStep); - DutyEntry value = default(DutyEntry); foreach (Quest value2 in snapshot.Quests.Values) { - IEnumerator<QuestSequence> enumerator2 = value2.AllSequences().GetEnumerator(); - try + foreach (QuestSequence item in value2.AllSequences()) { - while (_206A_200C_206F_202E_202B_202E_206A_206D_206B_200F_206F_206C_202B_206C_202E_200C_206D_202B_202E_206E_200E_200E_202E_206B_206F_206F_200B_206E_206A_200C_200F_202D_206F_200E_200B_206A_206E_202A_206A_206F_202E((IEnumerator)enumerator2)) + foreach (QuestStep item2 in item.Steps.Where(delegate(QuestStep x) { - QuestSequence current2 = enumerator2.Current; - IEnumerator<QuestStep> enumerator3 = _200D_206D_200E_200F_202B_206F_200C_206F_206B_202A_202D_200D_200D_206B_206A_200E_202E_200D_206D_202B_200E_202E_200F_200F_206D_202E_200C_206E_200B_200E_202A_206E_202D_200E_206D_206E_202A_202A_202A_206E_202E(current2).Where(delegate(QuestStep x) + EInteractionType interactionType = x.InteractionType; + return (uint)(interactionType - 19) <= 1u; + })) + { + if (item2 != null && item2.InteractionType == EInteractionType.Duty) { - EInteractionType eInteractionType = _003C_003Ec._202C_200F_200E_206A_200F_206F_202A_200B_206A_206B_202C_200E_200E_202E_206D_202A_200C_202C_202A_206C_206F_202E_202A_200F_200B_202C_206A_202A_200C_200E_202B_206A_202A_200B_206F_200B_202D_202B_202A_202A_202E(x); - int num9 = (((uint)(eInteractionType - 19) > 1u) ? (-105448729) : (-105448732)); - bool result = default(bool); - while (true) + DutyOptions dutyOptions = item2.DutyOptions; + if (dutyOptions != null) { - int num10 = num9; - int num11 = -105448731; - int num12 = num10; - switch ((num12 | num11) - (num12 & num11)) + snapshot.ContentFinderConditionIds[dutyOptions.ContentFinderConditionId] = (value2.Id, item2); + if (DutyRegistry.Duties.TryGetValue(dutyOptions.ContentFinderConditionId, out DutyEntry value) && value.LowPriority) { - case 0: - return result; - case 1: - result = true; - num9 = -105448731; - break; - case 3: - num9 = -105448732; - break; - case 2: - result = false; - num9 = -105448731; - break; - } - } - }).GetEnumerator(); - try - { - int num = 1028023343; - while (true) - { - int num2 = num; - int num3 = 1028023342; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - snapshot.LowPriorityContentFinderConditionQuests.Add((_206B_202A_200B_206D_200D_206A_202A_202D_202B_206F_206A_206A_200B_202D_202E_202C_206F_206F_200E_200C_200B_202A_206F_202A_206F_206B_206D_206F_206D_200B_202A_200E_202E_202D_202E_202C_200D_200F_206F_206A_202E(dutyOptions), value2.Id, _200E_200C_206F_202C_202C_202A_202A_202E_206E_202B_206A_206E_200F_202C_200F_206D_206A_200D_206A_200B_200B_202E_202D_202D_200D_200B_200B_206B_200B_200F_200F_200F_206B_206D_200B_206F_200D_200F_206F_200C_202E(current2))); - num = 1028023343; - break; - case 8: - snapshot.ContentFinderConditionIds[contentFinderConditionData.ContentFinderConditionId] = (value2.Id, current3); - num = 1028023343; - break; - case 2: - num = ((_202D_200E_206B_202B_200B_200F_206F_202C_200F_202B_200C_206F_202E_206F_206D_206B_202D_206A_206B_202B_200B_206E_206F_202C_206D_200D_206A_202D_200D_202E_200F_202D_206D_200D_202E_206F_200C_200B_206C_206A_202E(current3) != EInteractionType.Duty) ? 1028023338 : 1028023336); - break; - case 10: - current3 = enumerator3.Current; - num = ((current3 == null) ? 1028023338 : 1028023340); - break; - case 5: - snapshot.ContentFinderConditionIds[_206B_202A_200B_206D_200D_206A_202A_202D_202B_206F_206A_206A_200B_202D_202E_202C_206F_206F_200E_200C_200B_202A_206F_202A_206F_206B_206D_206F_206D_200B_202A_200E_202E_202D_202E_202C_200D_200F_206F_206A_202E(dutyOptions)] = (value2.Id, current3); - num = ((!DutyRegistry.Duties.TryGetValue(_206B_202A_200B_206D_200D_206A_202A_202D_202B_206F_206A_206A_200B_202D_202E_202C_206F_206F_200E_200C_200B_202A_206F_202A_206F_206B_206D_206F_206D_200B_202A_200E_202E_202D_202E_202C_200D_200F_206F_206A_202E(dutyOptions), out value)) ? 1028023343 : 1028023342); - break; - case 0: - num = ((!value.LowPriority) ? 1028023343 : 1028023341); - break; - case 9: - num = ((!_territoryData.TryGetContentFinderConditionForSoloInstance(value2.Id, _202D_206F_206A_200D_206B_200B_200F_200D_202C_206F_200C_202A_206A_202D_200C_206A_200D_202A_200C_206F_200E_200C_202B_202B_202E_202B_202D_200D_200B_200E_200F_200B_202C_200B_202D_202C_202A_206F_206D_200F_202E(current3), out contentFinderConditionData)) ? 1028023343 : 1028023334); - break; - case 1: - num = (_206A_200C_206F_202E_202B_202E_206A_206D_206B_200F_206F_206C_202B_206C_202E_200C_206D_202B_202E_206E_200E_200E_202E_206B_206F_206F_200B_206E_206A_200C_200F_202D_206F_200E_200B_206A_206E_202A_206A_206F_202E((IEnumerator)enumerator3) ? 1028023332 : 1028023333); - break; - case 7: - num = 1028023343; - break; - case 6: - dutyOptions = _202B_200E_200B_202B_200F_202C_202C_200E_206E_200C_206E_200E_200B_206E_206B_200E_202A_200C_202B_206F_200C_206C_200B_202D_206D_200F_206B_206A_202A_200E_202D_200F_206F_206C_200D_206C_206D_206E_206E_206D_202E(current3); - num = ((dutyOptions == null) ? 1028023338 : 1028023339); - break; - case 4: - num = ((_202D_200E_206B_202B_200B_200F_206F_202C_200F_202B_200C_206F_202E_206F_206D_206B_202D_206A_206B_202B_200B_206E_206F_202C_206D_200D_206A_202D_200D_202E_200F_202D_206D_200D_202E_206F_200C_200B_206C_206A_202E(current3) != EInteractionType.SinglePlayerDuty) ? 1028023343 : 1028023335); - break; - case 11: - goto end_IL_0076; + snapshot.LowPriorityContentFinderConditionQuests.Add((dutyOptions.ContentFinderConditionId, value2.Id, item.Sequence)); } continue; - end_IL_0076: - break; } } - finally + if (item2.InteractionType == EInteractionType.SinglePlayerDuty && _territoryData.TryGetContentFinderConditionForSoloInstance(value2.Id, item2.SinglePlayerDutyIndex, out TerritoryData.ContentFinderConditionData contentFinderConditionData)) { - int num = ((enumerator3 == null) ? (-150656918) : (-150656919)); - while (true) - { - int num7 = num; - int num3 = -150656920; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -150656919; - break; - case 2: - goto end_IL_02bc; - case 1: - _206D_206E_202E_202C_206B_206D_206C_202E_200F_206B_202D_202A_200E_202C_202B_200E_202D_202E_202A_206F_206A_200F_206E_206B_200C_202C_200B_200D_206F_202C_200B_200B_200B_206A_202E_200D_200B_202D_206B_202B_202E((IDisposable)enumerator3); - num = -150656918; - break; - } - continue; - end_IL_02bc: - break; - } + snapshot.ContentFinderConditionIds[contentFinderConditionData.ContentFinderConditionId] = (value2.Id, item2); } } } - finally - { - int num = ((enumerator2 == null) ? (-660115982) : (-660115983)); - while (true) - { - int num8 = num; - int num3 = -660115984; - int num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -660115983; - break; - case 2: - goto end_IL_0336; - case 1: - _206D_206E_202E_202C_206B_206D_206C_202E_200F_206B_202D_202A_200E_202C_202B_200E_202D_202E_202A_206F_206A_200F_206E_206B_200C_202C_200B_200D_206F_202C_200B_200B_200B_206A_202E_200D_200B_202D_206B_202B_202E((IDisposable)enumerator2); - num = -660115982; - break; - } - continue; - end_IL_0336: - break; - } - } } } @@ -895,550 +269,206 @@ internal sealed class QuestRegistry : IDisposable _questValidator.Validate(_snapshot.Quests.Values.Where((Quest x) => x.Source != Quest.ESource.Assembly).ToList()); } - [MethodImpl(MethodImplOptions.NoInlining)] private void LoadQuestFromStream(Snapshot snapshot, string fileName, Stream stream, Quest.ESource source, string directoryName, string? sourcePath) { - //Discarded unreachable code: IL_04a0 - int num = ((source != Quest.ESource.UserDirectory) ? (-1633789934) : (-1633789936)); - ElementId elementId = default(ElementId); - int num12 = default(int); - string text5 = default(string); - JsonObject jsonObject = default(JsonObject); - JsonNode jsonNode3 = default(JsonNode); - UnlockLinkId unlockLinkId = default(UnlockLinkId); - JsonNode jsonNode2 = default(JsonNode); - string patch = default(string); - string name = default(string); - uint issuerDataId = default(uint); - while (true) + if (source == Quest.ESource.UserDirectory) { - int num2 = num; - int num3 = -1633789935; - int num4 = num2; - QuestRoot questRoot; - IQuestInfo questInfo; - switch ((num4 | num3) - (num4 & num3)) + _logger.LogTrace("Loading quest from '{FileName}'", fileName); + } + ElementId elementId = ExtractQuestIdFromName(fileName); + if (elementId == null) + { + return; + } + JsonNode jsonNode; + try + { + jsonNode = JsonNode.Parse(stream); + } + catch (JsonException ex) + { + ValidationIssue validationIssue = new ValidationIssue { - case 3: - elementId = ExtractQuestIdFromName(fileName); - num = ((!_206C_206A_200C_206C_200F_206B_206F_200E_200D_206F_206B_206D_202A_200C_202A_200D_200E_200B_200B_200C_202A_200C_206B_200F_206C_206B_206D_202B_206B_206C_206C_206D_202B_202E_206C_206A_206A_200D_206D_202E_202E(elementId, (ElementId)null)) ? (-1633789933) : (-1633789935)); - break; - case 1: - _200C_202D_206A_202D_206A_206F_200D_206F_206A_202A_202D_206B_206F_200F_202B_200B_200C_200E_200E_200C_206B_202B_202D_200D_202A_200F_200F_200B_200D_200B_206C_200F_206A_202E_206B_206B_202A_206D_200D_206C_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1755890010), new object[1] { fileName }); - num = -1633789934; - break; - case 4: - num = -1633789936; - break; - case 0: + PathType = EPathType.Quest, + Id = elementId.ToString(), + Location = null, + Type = EIssueType.InvalidJsonSyntax, + Severity = EIssueSeverity.Error, + Description = "JSON syntax error in " + fileName + ": " + ex.Message + }; + _questValidator.AddValidationIssue(validationIssue); + snapshot.FailedLoads[elementId] = new FailedQuestLoad(elementId, fileName, validationIssue.Description, source); + return; + } + try + { + List<ValidationIssue> list = _jsonSchemaValidator.ValidateImmediate(elementId, jsonNode); + if (list.Count > 0) + { + foreach (ValidationIssue item in list) + { + _questValidator.AddValidationIssue(item); + } return; - case 2: - { - JsonNode jsonNode; - try - { - jsonNode = _200F_206A_200D_206A_202E_206F_200F_202A_206D_200E_200F_200D_200F_200C_202A_206B_200C_200D_200F_206A_202E_206B_200D_206B_202C_202C_200B_206A_206A_202C_200B_200F_200E_202A_202D_200B_200D_202C_206B_202E_202E(stream, (JsonNodeOptions?)null, default(JsonDocumentOptions)); - } - catch (JsonException ex) - { - ValidationIssue validationIssue = new ValidationIssue - { - PathType = EPathType.Quest, - Id = _200B_200C_206D_206D_202A_206E_200C_206A_206D_206C_206D_202E_202D_202A_200D_206D_206D_202B_206F_206E_202B_206C_206F_206F_206E_202E_202A_200F_200B_202B_200F_202A_200E_202E_202B_206B_202A_202D_202D_202B_202E((object)elementId), - Location = null, - Type = EIssueType.InvalidJsonSyntax, - Severity = EIssueSeverity.Error, - Description = _206E_200C_202A_202D_202B_200B_206A_200B_206F_206A_206F_200D_202E_200C_200C_200C_206F_202D_200B_202D_206F_206B_202C_200F_206C_206B_206B_206C_206E_200B_200D_202C_206B_202D_206F_202B_202B_206B_200E_206D_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1049555621), fileName, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-437343681), _202E_206D_202C_202B_200D_206A_200C_200E_200E_206B_206A_206F_200C_206E_200C_202C_200B_206A_200B_206D_206F_202E_200E_206E_200F_206C_202A_200B_206C_202A_206A_206D_206B_200F_206B_206F_200F_202B_206F_206C_202E((Exception)ex)) - }; - _questValidator.AddValidationIssue(validationIssue); - snapshot.FailedLoads[elementId] = new FailedQuestLoad(elementId, fileName, validationIssue.Description, source); - return; - } - try - { - List<ValidationIssue> list = _jsonSchemaValidator.ValidateImmediate(elementId, jsonNode); - if (list.Count > 0) - { - using (List<ValidationIssue>.Enumerator enumerator = list.GetEnumerator()) - { - num = -1176381929; - while (true) - { - int num5 = num; - num3 = -1176381932; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 2: - num = -1176381929; - break; - case 3: - num = (enumerator.MoveNext() ? (-1176381931) : (-1176381932)); - break; - case 1: - { - ValidationIssue current = enumerator.Current; - _questValidator.AddValidationIssue(current); - num = -1176381929; - break; - } - case 0: - return; - } - } - } - } - } - catch (Exception ex2) - { - QuestValidator questValidator = _questValidator; - ValidationIssue obj = new ValidationIssue - { - PathType = EPathType.Quest, - Id = _200B_200C_206D_206D_202A_206E_200C_206A_206D_206C_206D_202E_202D_202A_200D_206D_206D_202B_206F_206E_202B_206C_206F_206F_206E_202E_202A_200F_200B_202B_200F_202A_200E_202E_202B_206B_202A_202D_202D_202B_202E((object)elementId), - Location = null, - Type = EIssueType.InvalidJsonSchema, - Severity = EIssueSeverity.Error - }; - string text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1879428071); - Exception ex3 = _200E_206A_200F_206E_206B_200C_202E_206C_202B_206C_200E_206E_202D_206D_206E_200E_206A_206B_206E_200B_206C_206F_200F_206E_206D_200D_206B_206A_206F_206F_202E_206A_206F_202E_206F_206D_202C_202C_200B_200E_202E(ex2); - obj.Description = _200E_202A_200C_206A_202A_206C_200F_206C_202C_202B_206C_200E_200C_206C_200D_206F_200E_206C_202B_202D_200F_206E_202A_202C_206D_200E_202A_202C_200C_200D_202B_206B_206E_200D_200E_206C_206D_202B_200B_200C_202E(text, ((ex3 != null) ? _202E_206D_202C_202B_200D_206A_200C_200E_200E_206B_206A_206F_200C_206E_200C_202C_200B_206A_200B_206D_206F_202E_200E_206E_200F_206C_202A_200B_206C_202A_206A_206D_206B_200F_206B_206F_200F_202B_206F_206C_202E(ex3) : null) ?? _202E_206D_202C_202B_200D_206A_200C_200E_200E_206B_206A_206F_200C_206E_200C_202C_200B_206A_200B_206D_206F_202E_200E_206E_200F_206C_202A_200B_206C_202A_206A_206D_206B_200F_206B_206F_200F_202B_206F_206C_202E(ex2)); - questValidator.AddValidationIssue(obj); - return; - } - try - { - questRoot = jsonNode.Deserialize<QuestRoot>(); - } - catch (JsonException ex4) - { - var (location, text2) = FormatDeserializationError(ex4); - _questValidator.AddValidationIssue(new ValidationIssue - { - PathType = EPathType.Quest, - Id = _200B_200C_206D_206D_202A_206E_200C_206A_206D_206C_206D_202E_202D_202A_200D_206D_206D_202B_206F_206E_202B_206C_206F_206F_206E_202E_202A_200F_200B_202B_200F_202A_200E_202E_202B_206B_202A_202D_202D_202B_202E((object)elementId), - Location = location, - Type = EIssueType.InvalidJsonSchema, - Severity = EIssueSeverity.Error, - Description = text2 - }); - snapshot.FailedLoads[elementId] = new FailedQuestLoad(elementId, fileName, text2, source); - return; - } - if (!_questData.TryGetQuestInfo(elementId, out questInfo)) - { - num = 1756411224; - while (true) - { - int num8 = num; - num3 = 1756411225; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - string text3; - switch (num9 - (num10 + num10)) - { - default: - continue; - case 5: - { - int num13 = num12; - num3 = 1; - num4 = num13; - num = (((num4 | num3) + (num4 & num3) < _202E_202B_206D_202E_200F_202B_206E_206C_202E_200E_206B_206B_200B_200C_200C_200D_200C_202C_206B_200B_206A_200D_206D_206C_206C_200F_202D_200D_206E_206A_202B_206D_206B_206F_200F_200F_200B_200D_206F_202C_202E(text5)) ? 1756411229 : 1756411231); - continue; - } - case 6: - text3 = text5; - goto IL_0459; - case 2: - num = 1756411224; - continue; - case 0: - if (_206C_206C_202E_206B_200B_200D_202A_200F_206B_202D_206F_206C_200C_200B_206D_206B_202D_202E_200B_202A_202E_206D_200B_200E_200C_200E_202D_206B_206F_202A_206B_202D_202A_200C_206C_206C_206B_202A_200D_206E_202E(jsonObject, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1530836944), ref jsonNode3)) - { - num = 1756411226; - continue; - } - goto IL_04b7; - case 3: - if (jsonNode3 != null) - { - goto case 7; - } - goto IL_04b7; - case 7: - text5 = _200E_200F_206A_200C_202A_202A_206F_200B_206B_206A_206F_200B_206A_200B_206D_206E_206E_206C_206F_206D_200F_200F_200F_202E_206D_206F_202E_200D_206A_206F_206C_206C_206D_202A_206B_200F_200D_206F_200D_206E_202E(fileName); - num12 = _206B_206F_202D_202A_200B_202E_202D_202E_206C_206E_206B_202B_200E_202C_202D_202B_200E_206E_200F_200D_206D_200B_200C_206F_206F_202D_200E_200D_202B_200F_202E_200F_200B_206D_202E_202D_206C_202E_202B_200D_202E(text5, '_', StringComparison.Ordinal); - num = ((num12 < 0) ? 1756411231 : 1756411228); - continue; - case 4: - { - string text4 = text5; - int num11 = num12; - num3 = 1; - num4 = num11; - text3 = _200C_200C_200D_202C_200D_200C_206E_200C_200F_206E_202D_202C_206E_202B_202B_202C_200B_200D_202C_202B_206F_200B_206F_200E_202C_206C_206E_206B_200D_200F_206B_202B_206E_206D_206B_202C_206C_206E_206F_202B_202E(text4, (num4 | num3) + (num4 & num3)); - goto IL_0459; - } - case 1: - { - unlockLinkId = elementId as UnlockLinkId; - if ((object)unlockLinkId != null) - { - num = 1756411230; - continue; - } - _200E_200E_202D_200B_206D_202C_206E_202C_200E_206A_200E_206D_200C_206B_202D_206E_202A_206C_206F_206F_202E_200B_206F_202E_200C_206A_200D_206A_202D_200E_202B_206D_206F_202B_202B_200C_202D_206C_206F_202A_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1061402361), new object[2] { elementId, fileName }); - return; - } - IL_04b7: - if (_206C_206C_202E_206B_200B_200D_202A_200F_206B_202D_206F_206C_200C_200B_206D_206B_202D_202E_200B_202A_202E_206D_200B_200E_200C_200E_202D_206B_206F_202A_206B_202D_202A_200C_206C_206C_206B_202A_200D_206E_202E(jsonObject, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(719899107), ref jsonNode2) && jsonNode2 != null) - { - try - { - patch = jsonNode2.GetValue<string>(); - } - catch (Exception) - { - patch = null; - } - } - break; - IL_0459: - name = text3; - name = NormalizeDerivedName(name); - issuerDataId = 0u; - patch = null; - jsonObject = jsonNode as JsonObject; - if (jsonObject != null) - { - num = 1756411225; - continue; - } - break; - } - break; - } - num = (_200B_200F_206B_206D_202B_200B_206C_202C_202A_206B_200C_206D_202A_202A_200E_206C_200F_202C_206E_202C_202A_202D_206A_206E_202C_206D_200D_206A_200D_206D_202A_206B_206B_202B_202E_202C_200E_206B_202B_206F_202E(questRoot).HasValue ? 1325179622 : 1325179621); - goto IL_0519; - } - goto IL_0677; - } - IL_0519: - while (true) - { - int num14 = num; - num3 = 1325179620; - num4 = num14; - DateTime? obj2; - DateTime? obj3; - DateTime? expiry; - DateTime? expiryTime; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 5: - num = 1325179621; - continue; - case 6: - obj2 = DateTime.SpecifyKind(_200B_200F_206B_206D_202B_200B_206C_202C_202A_206B_200C_206D_202A_202A_200E_206C_200F_202C_206E_202C_202A_202D_206A_206E_202C_206D_200D_206A_200D_206D_202A_206B_206B_202B_202E_202C_200E_206B_202B_206F_202E(questRoot).Value, DateTimeKind.Utc); - goto IL_058b; - case 0: - { - Quest quest = new Quest - { - Id = elementId, - Root = questRoot, - Info = questInfo, - Source = source, - SourcePath = sourcePath - }; - snapshot.Quests[quest.Id] = quest; - num = (_206F_206F_206E_202E_200F_206E_200C_202D_200B_206E_200B_202A_206F_206B_200F_202C_206D_202B_202D_202A_206C_202D_200F_206B_202B_206A_200F_206B_206B_206F_206C_206C_202B_206A_200C_206E_200C_206A_200F_200E_202E(directoryName) ? 1325179630 : 1325179623); - continue; - } - case 3: - snapshot.QuestFolderNames[elementId] = directoryName; - num = 1325179630; - continue; - case 7: - num = (_200B_200F_206B_206D_202B_200B_206C_202C_202A_206B_200C_206D_202A_202A_200E_206C_200F_202C_206E_202C_202A_202D_206A_206E_202C_206D_200D_206A_200D_206D_202A_206B_206B_202B_202E_202C_200E_206B_202B_206F_202E(questRoot).HasValue ? 1325179618 : 1325179629); - continue; - case 8: - break; - case 1: - obj3 = null; - goto IL_06f3; - case 9: - obj2 = null; - goto IL_058b; - case 2: - obj3 = DateTime.SpecifyKind(_200B_200F_206B_206D_202B_200B_206C_202C_202A_206B_200C_206D_202A_202A_200E_206C_200F_202C_206E_202C_202A_202D_206A_206E_202C_206D_200D_206A_200D_206D_202A_206B_206B_202B_202E_202C_200E_206B_202B_206F_202E(questRoot).Value, DateTimeKind.Utc); - goto IL_06f3; - case 10: - return; - case 4: - { - num = ((!_200B_200F_206B_206D_202B_200B_206C_202C_202A_206B_200C_206D_202A_202A_200E_206C_200F_202C_206E_202C_202A_202D_206A_206E_202C_206D_200D_206A_200D_206D_202A_206B_206B_202B_202E_202C_200E_206B_202B_206F_202E(questRoot).HasValue) ? 1325179620 : 1325179619); - continue; - } - IL_058b: - expiry = obj2; - _questData.ApplySeasonalOverride(elementId, _206E_206A_200C_206A_206A_200B_206E_200F_200F_202C_200B_202A_200C_200C_206D_206C_202E_202D_200E_202C_202A_202E_200F_206D_206E_206F_200D_202D_206D_200F_202A_206A_206E_200D_206D_202C_206D_202A_200E_206D_202E(questRoot) ?? questInfo.IsSeasonalQuest, expiry); - num = 1325179620; - continue; - IL_06f3: - expiryTime = obj3; - questInfo = new UnlockLinkQuestInfo(unlockLinkId, name, issuerDataId, expiryTime, patch); - _200B_200F_200B_200B_200E_206A_206E_200B_200D_200E_200E_200D_206D_200D_206F_200F_200D_200B_206C_200D_200D_206E_202E_202D_206A_200C_202A_206A_202E_206A_206B_202E_202B_206D_206A_206D_200F_206C_200E_206B_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1530339491), new object[2] { elementId, fileName }); - _questData.AddOrReplaceQuestInfo(questInfo); - break; - } - break; - } - goto IL_0677; - IL_0677: - num = (_206E_206A_200C_206A_206A_200B_206E_200F_200F_202C_200B_202A_200C_200C_206D_206C_202E_202D_200E_202C_202A_202E_200F_206D_206E_206F_200D_202D_206D_200F_202A_206A_206E_200D_206D_202C_206D_202A_200E_206D_202E(questRoot).HasValue ? 1325179619 : 1325179616); - goto IL_0519; } } + catch (Exception ex2) + { + _questValidator.AddValidationIssue(new ValidationIssue + { + PathType = EPathType.Quest, + Id = elementId.ToString(), + Location = null, + Type = EIssueType.InvalidJsonSchema, + Severity = EIssueSeverity.Error, + Description = "Schema validation error: " + (ex2.InnerException?.Message ?? ex2.Message) + }); + return; + } + QuestRoot questRoot; + try + { + questRoot = jsonNode.Deserialize<QuestRoot>(); + } + catch (JsonException ex3) + { + var (location, text) = FormatDeserializationError(ex3); + _questValidator.AddValidationIssue(new ValidationIssue + { + PathType = EPathType.Quest, + Id = elementId.ToString(), + Location = location, + Type = EIssueType.InvalidJsonSchema, + Severity = EIssueSeverity.Error, + Description = text + }); + snapshot.FailedLoads[elementId] = new FailedQuestLoad(elementId, fileName, text, source); + return; + } + if (!_questData.TryGetQuestInfo(elementId, out IQuestInfo questInfo)) + { + if (!(elementId is UnlockLinkId unlockLinkId)) + { + _logger.LogWarning("Not loading unknown quest {QuestId} from project file {FileName}", elementId, fileName); + return; + } + string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileName); + int num = fileNameWithoutExtension.IndexOf('_', StringComparison.Ordinal); + string name = ((num >= 0 && num + 1 < fileNameWithoutExtension.Length) ? fileNameWithoutExtension.Substring(num + 1) : fileNameWithoutExtension); + name = NormalizeDerivedName(name); + uint issuerDataId = 0u; + string patch = null; + if (jsonNode is JsonObject jsonObject) + { + if (jsonObject.TryGetPropertyValue("DataId", out JsonNode jsonNode2) && jsonNode2 != null) + { + try + { + issuerDataId = jsonNode2.GetValue<uint>(); + } + catch (Exception) + { + issuerDataId = 0u; + } + } + if (jsonObject.TryGetPropertyValue("Patch", out JsonNode jsonNode3) && jsonNode3 != null) + { + try + { + patch = jsonNode3.GetValue<string>(); + } + catch (Exception) + { + patch = null; + } + } + } + DateTime? expiryTime = (questRoot.SeasonalQuestExpiry.HasValue ? new DateTime?(DateTime.SpecifyKind(questRoot.SeasonalQuestExpiry.Value, DateTimeKind.Utc)) : ((DateTime?)null)); + questInfo = new UnlockLinkQuestInfo(unlockLinkId, name, issuerDataId, expiryTime, patch); + _logger.LogDebug("Created UnlockLinkQuestInfo for {QuestId} from project file '{FileName}'", elementId, fileName); + _questData.AddOrReplaceQuestInfo(questInfo); + } + if (questRoot.IsSeasonalQuest.HasValue || questRoot.SeasonalQuestExpiry.HasValue) + { + DateTime? expiry = (questRoot.SeasonalQuestExpiry.HasValue ? new DateTime?(DateTime.SpecifyKind(questRoot.SeasonalQuestExpiry.Value, DateTimeKind.Utc)) : ((DateTime?)null)); + _questData.ApplySeasonalOverride(elementId, questRoot.IsSeasonalQuest ?? questInfo.IsSeasonalQuest, expiry); + } + Quest quest = new Quest + { + Id = elementId, + Root = questRoot, + Info = questInfo, + Source = source, + SourcePath = sourcePath + }; + snapshot.Quests[quest.Id] = quest; + if (!string.IsNullOrEmpty(directoryName)) + { + snapshot.QuestFolderNames[elementId] = directoryName; + } } - [MethodImpl(MethodImplOptions.NoInlining)] private void LoadFromDirectory(Snapshot snapshot, DirectoryInfo directory, Quest.ESource source, LogLevel logLevel = LogLevel.Debug) { - int num = (_200D_206E_202D_202C_200D_206D_206B_200E_200B_200C_200F_206B_200E_206A_200B_202B_200E_206A_200B_206F_206D_202C_200D_200F_200C_206D_200F_206A_206F_206B_206C_202C_200C_202B_202D_200C_200D_202B_202C_200F_202E((FileSystemInfo)directory) ? (-275721768) : (-275721767)); - DirectoryInfo[] array2 = default(DirectoryInfo[]); - while (true) + if (!directory.Exists) { - int num2 = num; - int num3 = -275721768; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _logger.LogDebug("Not loading quests from {DirectoryName} (doesn't exist)", directory); + return; + } + if (source == Quest.ESource.UserDirectory) + { + _logger.Log(logLevel, "Loading quests from {DirectoryName}", directory); + } + FileInfo[] files = directory.GetFiles("*.json"); + foreach (FileInfo fileInfo in files) + { + try { - case 0: - num = ((source != Quest.ESource.UserDirectory) ? (-275721765) : (-275721766)); - break; - case 1: - _200B_200F_200B_200B_200E_206A_206E_200B_200D_200E_200E_200D_206D_200D_206F_200F_200D_200B_206C_200D_200D_206E_202E_202D_206A_200C_202A_206A_202E_206A_206B_202E_202B_206D_206A_206D_200F_206C_200E_206B_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-142032433), new object[1] { directory }); - return; - case 4: - num = -275721767; - break; - case 2: - _206B_200B_206F_206F_200C_202D_202B_200D_206A_206A_202A_202B_200B_202E_202A_202B_206A_200F_200F_200C_200E_206C_202A_202B_202A_202E_200F_206A_200B_202B_206B_200E_202C_200B_206D_202D_202A_200F_200C_202E((ILogger)_logger, logLevel, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(956239880), new object[1] { directory }); - num = -275721765; - break; - case 3: + using FileStream stream = fileInfo.OpenRead(); + LoadQuestFromStream(snapshot, fileInfo.Name, stream, source, directory.Name, fileInfo.FullName); + } + catch (Exception innerException) { - FileInfo[] array = _202A_200F_206E_202E_206A_200D_206A_200C_202E_206B_200F_202A_206C_206D_202A_206C_200D_200C_206C_206E_202E_206F_200D_206B_200C_202B_206B_200D_200B_202C_202D_202C_202E_202D_200F_202E_206C_206E_206D_202E(directory, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1350212695)); - int num5 = 0; - while (num5 < array.Length) - { - FileInfo fileInfo = array[num5]; - try - { - FileStream fileStream = _206A_202B_202D_200E_206B_206B_206D_206D_206E_202A_206D_202A_202D_200F_206F_206E_206B_200F_200B_206C_206F_206C_206B_206B_202D_200B_206E_206B_200D_200C_202E_206A_202D_206F_202B_202D_206A_200E_206F_206F_202E(fileInfo); - try - { - LoadQuestFromStream(snapshot, _202E_206C_206C_200B_202B_206A_206F_202E_200F_206C_202B_200D_206C_206E_202C_200E_200F_206D_202C_200C_206F_200F_206B_202C_206B_202C_202D_200B_202C_200F_206C_202B_202E_206E_202C_200F_200E_206E_200F_206A_202E((FileSystemInfo)fileInfo), fileStream, source, _202E_206C_206C_200B_202B_206A_206F_202E_200F_206C_202B_200D_206C_206E_202C_200E_200F_206D_202C_200C_206F_200F_206B_202C_206B_202C_202D_200B_202C_200F_206C_202B_202E_206E_202C_200F_200E_206E_200F_206A_202E((FileSystemInfo)directory), _206E_200F_200B_206F_206C_206E_206A_206D_206D_202C_200D_206F_206B_200D_202D_200C_200C_202D_202A_202E_206C_202E_200B_202A_206A_202C_202D_202C_200B_206B_202E_200C_200E_200D_200C_206A_200F_202B_200D_202C_202E((FileSystemInfo)fileInfo)); - } - finally - { - num = ((fileStream == null) ? 1614383146 : 1614383145); - while (true) - { - int num6 = num; - num3 = 1614383144; - num4 = num6; - int num7 = num4 + num3; - int num8 = num4 & num3; - switch (num7 - (num8 + num8)) - { - case 0: - num = 1614383145; - break; - case 2: - goto end_IL_0130; - case 1: - _206D_206E_202E_202C_206B_206D_206C_202E_200F_206B_202D_202A_200E_202C_202B_200E_202D_202E_202A_206F_206A_200F_206E_206B_200C_202C_200B_200D_206F_202C_200B_200B_200B_206A_202E_200D_200B_202D_206B_202B_202E((IDisposable)fileStream); - num = 1614383146; - break; - } - continue; - end_IL_0130: - break; - } - } - } - catch (Exception ex) - { - throw _200E_202B_200E_206E_200B_206D_202B_200D_206B_206F_206C_200B_200D_200C_200F_202B_202D_202A_206C_202B_202A_202D_206E_202D_200B_206E_202E_206A_200E_202D_202B_200E_200C_200C_200D_206C_200F_206A_206E_206C_202E(_200E_202A_200C_206A_202A_206C_200F_206C_202C_202B_206C_200E_200C_206C_200D_206F_200E_206C_202B_202D_200F_206E_202A_202C_206D_200E_202A_202C_200C_200D_202B_206B_206E_200D_200E_206C_206D_202B_200B_200C_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2100413596), _206E_200F_200B_206F_206C_206E_206A_206D_206D_202C_200D_206F_206B_200D_202D_200C_200C_202D_202A_202E_206C_202E_200B_202A_206A_202C_202D_202C_200B_206B_202E_200C_200E_200D_200C_206A_200F_202B_200D_202C_202E((FileSystemInfo)fileInfo)), ex); - } - int num9 = num5; - num3 = 1; - num4 = num9; - int num10 = num4 ^ num3; - int num11 = num4 & num3; - num5 = num10 + (num11 + num11); - } - num = 174838453; - while (true) - { - int num12 = num; - num3 = 174838449; - num4 = num12; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return; - case 4: - array2 = _202D_202C_200F_200F_200E_206A_206E_200F_202A_200C_206E_202D_206D_200B_206F_202A_206D_200F_200D_200D_206E_200E_206B_200E_200F_202D_200E_206F_202B_206A_202C_200D_206E_206E_200C_202D_200C_200E_206F_206D_202E(directory); - num5 = 0; - num = 174838450; - break; - case 0: - { - DirectoryInfo directory2 = array2[num5]; - LoadFromDirectory(snapshot, directory2, source, logLevel); - int num13 = num5; - num3 = 1; - num4 = num13; - num5 = (num4 | num3) + (num4 & num3); - num = 174838450; - break; - } - case 2: - num = 174838453; - break; - case 3: - num = ((num5 < array2.Length) ? 174838449 : 174838448); - break; - } - } - } + throw new InvalidDataException("Unable to load file " + fileInfo.FullName, innerException); } } + DirectoryInfo[] directories = directory.GetDirectories(); + foreach (DirectoryInfo directory2 in directories) + { + LoadFromDirectory(snapshot, directory2, source, logLevel); + } } - [MethodImpl(MethodImplOptions.NoInlining)] private static (string? Location, string Description) FormatDeserializationError(JsonException ex) { - string text = _202E_206C_206B_202C_206F_206B_200D_200F_200D_202E_206B_200E_200B_200E_206F_202E_200D_202B_200E_202A_202A_206A_206A_206D_206A_200E_206D_206B_202E_202B_206C_202A_206C_200E_206A_202E_200F_206C_206D_206D_202E(ex); - int num = ((!_206F_206F_206E_202E_200F_206E_200C_202D_200B_206E_200B_202A_206F_206B_200F_202C_206D_202B_202D_202A_206C_202D_200F_206B_202B_206A_200F_206B_206B_206F_206C_206C_202B_206A_200C_206E_200C_206A_200F_200E_202E(text)) ? (-1215246934) : (-1215246943)); - Match match = default(Match); - Match match2 = default(Match); - Match match3 = default(Match); - string item = default(string); - string text3 = default(string); - string text2 = default(string); - string item2 = default(string); - while (true) + string path = ex.Path; + if (string.IsNullOrEmpty(path)) { - int num2 = num; - int num3 = -1215246936; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - string text5; - string text6; - Exception ex3; - switch (num5 - (num6 + num6)) - { - case 3: - text5 = _206C_200F_206C_206A_200C_202D_200C_206B_202E_202C_206A_206A_206F_206F_200E_202D_200E_200E_200B_206C_206B_200E_202A_200D_200E_200F_200D_206D_200D_200E_200B_200C_202E_202B_202B_200D_202B_206E_200C_206F_202E((Capture)_206E_206C_200F_202A_202C_202D_206C_206D_206E_202D_202D_206A_206C_200B_206B_202B_202A_206B_202B_206A_206A_202E_200B_206F_206D_206D_206D_206F_206B_202C_202D_202D_202E_200C_200E_202D_206C_206E_202E_206E_202E(_200E_200C_200D_206C_206A_202A_202D_200C_206F_206C_202E_206A_202B_202C_206C_202A_202C_200F_202E_206B_206C_202B_202B_206F_202A_200D_206F_202A_202D_206C_206A_206C_202A_202E_206B_200F_206D_202A_202E_202A_202E(match), 1)); - goto IL_0096; - case 0: - text6 = _206E_200C_202A_202D_202B_200B_206A_200B_206F_206A_206F_200D_202E_200C_200C_200C_206F_202D_200B_202D_206F_206B_202C_200F_206C_206B_206B_206C_206E_200B_200D_202C_206B_202D_206F_202B_202B_206B_200E_206D_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1005707421), _206C_200F_206C_206A_200C_202D_200C_206B_202E_202C_206A_206A_206F_206F_200E_202D_200E_200E_200B_206C_206B_200E_202A_200D_200E_200F_200D_206D_200D_200E_200B_200C_202E_202B_202B_200D_202B_206E_200C_206F_202E((Capture)_206E_206C_200F_202A_202C_202D_206C_206D_206E_202D_202D_206A_206C_200B_206B_202B_202A_206B_202B_206A_206A_202E_200B_206F_206D_206D_206D_206F_206B_202C_202D_202D_202E_200C_200E_202D_206C_206E_202E_206E_202E(_200E_200C_200D_206C_206A_202A_202D_200C_206F_206C_202E_206A_202B_202C_206C_202A_202C_200F_202E_206B_206C_202B_202B_206F_202A_200D_206F_202A_202D_206C_206A_206C_202A_202E_206B_200F_206D_202A_202E_202A_202E(match2), 1)), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1896283891), _206C_200F_206C_206A_200C_202D_200C_206B_202E_202C_206A_206A_206F_206F_200E_202D_200E_200E_200B_206C_206B_200E_202A_200D_200E_200F_200D_206D_200D_200E_200B_200C_202E_202B_202B_200D_202B_206E_200C_206F_202E((Capture)_206E_206C_200F_202A_202C_202D_206C_206D_206E_202D_202D_206A_206C_200B_206B_202B_202A_206B_202B_206A_206A_202E_200B_206F_206D_206D_206D_206F_206B_202C_202D_202D_202E_200C_200E_202D_206C_206E_202E_206E_202E(_200E_200C_200D_206C_206A_202A_202D_200C_206F_206C_202E_206A_202B_202C_206C_202A_202C_200F_202E_206B_206C_202B_202B_206F_202A_200D_206F_202A_202D_206C_206A_206C_202A_202E_206B_200F_206D_202A_202E_202A_202E(match3), 1))); - goto IL_012d; - case 6: - text6 = _200E_202A_200C_206A_202A_206C_200F_206C_202C_202B_206C_200E_200C_206C_200D_206F_200E_206C_202B_202D_200F_206E_202A_202C_206D_200E_202A_202C_200C_200D_202B_206B_206E_200D_200E_206C_206D_202B_200B_200C_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1005707421), _206C_200F_206C_206A_200C_202D_200C_206B_202E_202C_206A_206A_206F_206F_200E_202D_200E_200E_200B_206C_206B_200E_202A_200D_200E_200F_200D_206D_200D_200E_200B_200C_202E_202B_202B_200D_202B_206E_200C_206F_202E((Capture)_206E_206C_200F_202A_202C_202D_206C_206D_206E_202D_202D_206A_206C_200B_206B_202B_202A_206B_202B_206A_206A_202E_200B_206F_206D_206D_206D_206F_206B_202C_202D_202D_202E_200C_200E_202D_206C_206E_202E_206E_202E(_200E_200C_200D_206C_206A_202A_202D_200C_206F_206C_202E_206A_202B_202C_206C_202A_202C_200F_202E_206B_206C_202B_202B_206F_202A_200D_206F_202A_202D_206C_206A_206C_202A_202E_206B_200F_206D_202A_202E_202A_202E(match2), 1))); - goto IL_012d; - case 5: - match = _202C_206C_206E_202E_200C_206B_200F_206E_202D_202E_200C_202E_206C_200E_200E_206D_202B_202E_206C_202A_206B_202E_202A_206D_200B_200B_206F_206C_206A_200B_202C_202C_206B_206A_200B_200E_200D_206F_200D_202D_202E(text, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1694046713)); - num = (_200F_206D_202D_202E_206D_206A_206D_202E_200D_206A_206F_206F_206F_200D_202C_202E_202C_206A_202C_206C_202B_206C_200B_206B_202B_200C_206E_200F_202D_200F_202B_202E_206D_206F_206E_202E_202C_200D_202E_200E_202E((Group)match) ? (-1215246933) : (-1215246935)); - break; - case 13: - item = _200E_206E_200E_206E_202B_202B_202D_202C_206C_206A_202D_200F_206D_200E_200B_206C_202C_200C_206A_202C_200D_206F_206D_200F_206A_200C_200F_200B_200E_202A_206C_202B_200E_202D_206A_206B_202A_202A_202A_202D_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1307535606), text3, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(415424875)); - num = -1215246942; - break; - case 1: - text5 = text; - goto IL_0096; - case 12: - item = _206E_200C_202A_202D_202B_200B_206A_200B_206F_206A_206F_200D_202E_200C_200C_200C_206F_202D_200B_202D_206F_206B_202C_200F_206C_206B_206B_206C_206E_200B_200D_202C_206B_202D_206F_202B_202B_206B_200E_206D_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1639651192), text3, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1253713181), text2); - num = -1215246942; - break; - case 7: - item = _200E_206E_200E_206E_202B_202B_202D_202C_206C_206A_202D_200F_206D_200E_200B_206C_202C_200C_206A_202C_200D_206F_206D_200F_206A_200C_200F_200B_200E_202A_206C_202B_200E_202D_206A_206B_202A_202A_202A_202D_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1307535606), text3, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1398980135)); - num = -1215246942; - break; - case 8: - num = -1215246943; - break; - case 11: - num = (_200F_206D_202D_202E_206D_206A_206D_202E_200D_206A_206F_206F_206F_200D_202C_202E_202C_206A_202C_206C_202B_206C_200B_206B_202B_200C_206E_200F_202D_200F_202B_202E_206D_206F_206E_202E_202C_200D_202E_200E_202E((Group)match3) ? (-1215246936) : (-1215246930)); - break; - case 2: - item2 = null; - match2 = _202C_206C_206E_202E_200C_206B_200F_206E_202D_202E_200C_202E_206C_200E_200E_206D_202B_202E_206C_202A_206B_202E_202A_206D_200B_200B_206F_206C_206A_200B_202C_202C_206B_206A_200B_200E_200D_206F_200D_202D_202E(text, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(573240518)); - match3 = _202C_206C_206E_202E_200C_206B_200F_206E_202D_202E_200C_202E_206C_200E_200E_206D_202B_202E_206C_202A_206B_202E_202A_206D_200B_200B_206F_206C_206A_200B_202C_202C_206B_206A_200B_200E_200D_206F_200D_202D_202E(text, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(779532051)); - num = ((!_200F_206D_202D_202E_206D_206A_206D_202E_200D_206A_206F_206F_206F_200D_202C_202E_202C_206A_202C_206C_202B_206C_200B_206B_202B_200C_206E_200F_202D_200F_202B_202E_206D_206F_206E_202E_202C_200D_202E_200E_202E((Group)match2)) ? (-1215246931) : (-1215246941)); - break; - case 9: - { - string text4 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(65663410); - Exception ex2 = _200E_206A_200F_206E_206B_200C_202E_206C_202B_206C_200E_206E_202D_206D_206E_200E_206A_206B_206E_200B_206C_206F_200F_206E_206D_200D_206B_206A_206F_206F_202E_206A_206F_202E_206F_206D_202C_202C_200B_200E_202E((Exception)ex); - return (Location: null, Description: _200E_202A_200C_206A_202A_206C_200F_206C_202C_202B_206C_200E_200C_206C_200D_206F_200E_206C_202B_202D_200F_206E_202A_202C_206D_200E_202A_202C_200C_200D_202B_206B_206E_200D_200E_206C_206D_202B_200B_200C_202E(text4, ((ex2 != null) ? _202E_206D_202C_202B_200D_206A_200C_200E_200E_206B_206A_206F_200C_206E_200C_202C_200B_206A_200B_206D_206F_202E_200E_206E_200F_206C_202A_200B_206C_202A_206A_206D_206B_200F_206B_206F_200F_202B_206F_206C_202E(ex2) : null) ?? _202E_206D_202C_202B_200D_206A_200C_200E_200E_206B_206A_206F_200C_206E_200C_202C_200B_206A_200B_206D_206F_202E_200E_206E_200F_206C_202A_200B_206C_202A_206A_206D_206B_200F_206B_206F_200F_202B_206F_206C_202E((Exception)ex))); - } - case 10: - return (Location: item2, Description: item); - case 4: - { - num = ((!_206B_202C_206B_202C_206E_202C_200B_202E_206F_202A_200F_200F_200C_206E_206E_206D_200B_200F_202D_200C_202A_206A_202C_202D_200B_202C_200F_206D_202B_202E_206D_206E_202E_202A_202A_200D_202C_202E_200F_206E_202E(text2, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1018481213), StringComparison.Ordinal)) ? (-1215246940) : (-1215246939)); - break; - } - IL_0096: - text3 = text5; - ex3 = _200E_206A_200F_206E_206B_200C_202E_206C_202B_206C_200E_206E_202D_206D_206E_200E_206A_206B_206E_200B_206C_206F_200F_206E_206D_200D_206B_206A_206F_206F_202E_206A_206F_202E_206F_206D_202C_202C_200B_200E_202E((Exception)ex); - text2 = ((ex3 != null) ? _202E_206D_202C_202B_200D_206A_200C_200E_200E_206B_206A_206F_200C_206E_200C_202C_200B_206A_200B_206D_206F_202E_200E_206E_200F_206C_202A_200B_206C_202A_206A_206D_206B_200F_206B_206F_200F_202B_206F_206C_202E(ex3) : null) ?? global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1281927779); - num = ((!_206B_202C_206B_202C_206E_202C_200B_202E_206F_202A_200F_200F_200C_206E_206E_206D_200B_200F_202D_200C_202A_206A_202C_202D_200B_202C_200F_206D_202B_202E_206D_206E_202E_202A_202A_200D_202C_202E_200F_206E_202E(text2, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-305903646), StringComparison.Ordinal)) ? (-1215246932) : (-1215246929)); - break; - IL_012d: - item2 = text6; - num = -1215246931; - break; - } + return (Location: null, Description: "Invalid value in quest file: " + (ex.InnerException?.Message ?? ex.Message)); } + string item = null; + Match match = Regex.Match(path, "QuestSequence\\[(\\d+)\\]"); + Match match2 = Regex.Match(path, "Steps\\[(\\d+)\\]"); + if (match.Success) + { + item = (match2.Success ? ("Seq " + match.Groups[1].Value + ", Step " + match2.Groups[1].Value) : ("Seq " + match.Groups[1].Value)); + } + Match match3 = Regex.Match(path, "\\.(\\w+)$"); + string text = (match3.Success ? match3.Groups[1].Value : path); + string text2 = ex.InnerException?.Message ?? ""; + string item2 = (text2.Contains("could not be converted", StringComparison.Ordinal) ? ("'" + text + "' has an invalid value") : ((!text2.Contains("is not supported", StringComparison.Ordinal)) ? ("'" + text + "' could not be read: " + text2) : ("'" + text + "' has an unrecognized value"))); + return (Location: item, Description: item2); } private static ElementId? ExtractQuestIdFromName(string resourceName) { - string text = _200E_200F_206A_200C_202A_202A_206F_200B_206B_206A_206F_200B_206A_200B_206D_206E_206E_206C_206F_206D_200F_200F_200F_202E_206D_206F_202E_200D_206A_206F_206C_206C_206D_202A_206B_200F_200D_206F_200D_206E_202E(resourceName); - text = _200C_200C_200D_202C_200D_200C_206E_200C_200F_206E_202D_202C_206E_202B_202B_202C_200B_200D_202C_202B_206F_200B_206F_200E_202C_206C_206E_206B_200D_200F_206B_202B_206E_206D_206B_202C_206C_206E_206F_202B_202E(text, _200F_202E_200E_202B_200C_202D_202E_206D_200D_202A_202C_206A_206A_202B_202A_200C_200D_200B_202D_202E_202D_206C_200E_202D_206B_200C_206F_202E_200E_206A_200D_202B_200F_206B_202D_200C_206D_206F_206F_200F_202E(text, '.') + 1); - int num = (_202D_206A_202A_202B_200B_200E_206E_206D_200F_202B_206C_202E_206F_206F_206F_206C_206B_202B_200F_200C_206B_202B_206A_200B_200B_200C_200E_202C_202A_202B_202E_200C_202D_200B_200E_206C_200E_200E_206D_206A_202E(text, '_', StringComparison.Ordinal) ? 2116929110 : 2116929111); - while (true) + string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(resourceName); + fileNameWithoutExtension = fileNameWithoutExtension.Substring(fileNameWithoutExtension.LastIndexOf('.') + 1); + if (!fileNameWithoutExtension.Contains('_', StringComparison.Ordinal)) { - int num2 = num; - int num3 = 2116929110; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0061; - case 0: - return _202C_202D_206D_206A_200B_200D_206E_200E_206F_206B_200F_200C_206F_202C_202C_202D_200D_202B_206F_200D_206B_206B_202B_206D_206C_202A_200F_202B_200B_206A_202A_206D_200D_206D_206E_200C_206D_200E_202C_202D_202E(_202C_206B_200B_200F_200B_206D_206A_206D_206E_202E_202A_206C_200F_200B_206D_206C_206F_200E_206F_202B_206A_206A_200F_202B_202A_200C_200D_206B_202D_206F_206A_200C_206A_200F_206E_200B_200F_200F_202B_200E_202E(text, '_', 2, StringSplitOptions.None)[0]); - case 1: - return null; - } - continue; - IL_0061: - num = 2116929111; + return null; } + return ElementId.FromString(fileNameWithoutExtension.Split('_', 2)[0]); } public bool IsKnownQuest(ElementId questId) @@ -1455,27 +485,11 @@ internal sealed class QuestRegistry : IDisposable { Dictionary<ElementId, Quest> quests = _snapshot.Quests; List<QuestInfo> list = _questData.GetClassJobQuests(classJob, includeRoleQuests).ToList(); - int num = ((_200B_206D_206F_202E_200C_206C_206A_200C_206A_200C_202B_200B_206E_206E_202C_206B_202B_206C_202D_202D_200D_202C_202A_202E_202C_200E_200F_206D_202C_202D_200D_200C_202C_206E_206C_206B_202D_200F_202B_200F_202E(classJob) == classJob) ? 951305919 : 951305916); - while (true) + if (classJob.AsJob() != classJob) { - int num2 = num; - int num3 = 951305918; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return list.Where((QuestInfo x) => quests.ContainsKey(x.QuestId)).ToList(); - case 2: - list.AddRange(_questData.GetClassJobQuests(_200B_206D_206F_202E_200C_206C_206A_200C_206A_200C_202B_200B_206E_206E_202C_206B_202B_206C_202D_202D_200D_202C_202A_202E_202C_200E_200F_206D_202C_202D_200D_200C_202C_206E_206C_206B_202D_200F_202B_200F_202E(classJob), includeRoleQuests)); - num = 951305919; - break; - case 0: - num = 951305916; - break; - } + list.AddRange(_questData.GetClassJobQuests(classJob.AsJob(), includeRoleQuests)); } + return list.Where((QuestInfo x) => quests.ContainsKey(x.QuestId)).ToList(); } public IEnumerable<ElementId> GetAllQuestIds() @@ -1488,377 +502,15 @@ internal sealed class QuestRegistry : IDisposable return _snapshot.QuestFolderNames.TryGetValue(questId, out folderName); } - [MethodImpl(MethodImplOptions.NoInlining)] private static string NormalizeDerivedName(string name) { - int num = ((!_200B_202C_206B_202D_206D_202A_200D_206A_200E_200D_206F_202C_202B_202D_206B_202E_206A_202C_200F_200D_200B_202E_200C_200C_200D_202C_202B_200B_202D_202C_206B_206D_206B_202B_202A_206B_206A_206A_206E_200E_202E(name)) ? (-1988237568) : (-1988237565)); - while (true) + if (string.IsNullOrWhiteSpace(name)) { - int num2 = num; - int num3 = -1988237566; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - name = _202E_200B_202E_200C_200E_206A_202D_206B_202B_206C_202C_202B_202A_206C_200D_206B_202D_206A_200E_202C_200B_202B_202B_202D_206C_206B_206E_206A_200C_202C_202C_206E_206D_206F_206D_206C_206C_200D_202C_206E_202E(name, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-546490491), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(751790982), StringComparison.OrdinalIgnoreCase); - name = _202E_206E_206E_206B_206B_206E_202E_202C_200F_202C_202B_206D_206C_200C_206E_206F_206C_202C_200B_200D_206D_206E_202E_202D_202B_202A_202A_200B_206E_202E_202A_202C_206C_202E_206C_202A_200B_202D_206D_200C_202E(name, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1726886552), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(751790982)); - name = _202C_206A_200D_206D_202A_202E_206E_200F_202C_206B_206B_200F_206A_200B_202E_200B_206A_206C_206B_202E_200C_206F_200E_206A_206F_200F_202B_200F_202B_200E_200E_202C_202C_206F_200E_202B_206C_202D_206F_206B_202E(name, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-86743715), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1887216830), RegexOptions.IgnoreCase); - return name; - case 1: - return name ?? string.Empty; - case 0: - goto IL_00ae; - } - continue; - IL_00ae: - num = -1988237565; + return name ?? string.Empty; } - } - - static Delegate _202D_202A_202A_202C_202A_200B_202E_200B_200B_202D_206B_200F_200D_202B_206B_206E_200D_202C_206C_202D_200B_200F_206A_200C_200F_200E_206E_202D_206E_202A_202A_200E_202D_206D_206E_206F_200C_202D_206C_206C_202E(Delegate P_0, Delegate P_1) - { - return Delegate.Combine(P_0, P_1); - } - - static Delegate _202E_202D_202B_206E_200F_202B_206B_200B_202B_202B_206E_202B_206F_202A_200D_200B_200D_206E_202D_202D_206A_206E_206D_202C_200F_200F_206E_200E_202B_206C_202E_202C_200D_200B_206F_202B_200B_206E_200B_206D_202E(Delegate P_0, Delegate P_1) - { - return Delegate.Remove(P_0, P_1); - } - - static DirectoryInfo _206D_202C_206C_206D_206A_200C_200F_200C_206A_206D_206D_206C_200E_206B_200F_200E_206F_202A_206E_206E_202A_206A_206D_206C_206E_202C_206A_202E_206E_206D_202B_200D_206D_200C_202B_202C_202A_200C_202A_206E_202E(IDalamudPluginInterface P_0) - { - return P_0.ConfigDirectory; - } - - static string _206E_200F_200B_206F_206C_206E_206A_206D_206D_202C_200D_206F_206B_200D_202D_200C_200C_202D_202A_202E_206C_202E_200B_202A_206A_202C_202D_202C_200B_206B_202E_200C_200E_200D_200C_206A_200F_202B_200D_202C_202E(FileSystemInfo P_0) - { - return P_0.FullName; - } - - static string _206F_200D_202E_206F_206C_200B_206E_202B_200C_200E_206D_206E_202A_206D_206A_206D_202D_206E_202B_200D_202B_206A_206A_200B_206D_202A_202B_202B_206A_206F_200D_200D_202A_200C_202E_202C_206B_206B_206B_206C_202E(string P_0, string P_1) - { - return Path.Combine(P_0, P_1); - } - - static DirectoryInfo _200D_200C_200B_206C_202B_200E_206B_202C_200C_202A_202D_206D_202A_200F_200E_200B_202E_206E_202D_202C_200B_206E_202C_206E_206B_200E_206A_206E_202E_200E_202D_202E_200F_202E_200C_202E_200F_202E_206F_202B_202E(string P_0) - { - return new DirectoryInfo(P_0); - } - - static void _200B_200C_202D_202E_200D_206D_200E_200D_200C_206D_202B_202D_200E_200D_202D_202D_206A_202B_206F_200D_202E_202C_202C_200F_200E_206B_202B_202B_206B_202B_202A_202C_202C_206A_200F_206C_206B_206A_206F_200F_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - - static void _202A_206C_200B_200D_202E_206F_206A_206E_206A_202B_206D_206E_206C_202A_202C_206E_206C_206A_200C_200B_206B_206E_202C_200D_206E_202E_202E_202E_200E_206E_200C_200B_202D_202D_200F_206C_202A_202C_202E_202C_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogWarning(P_1, P_2, P_3); - } - - static void _200B_200F_200B_200B_200E_206A_206E_200B_200D_200E_200E_200D_206D_200D_206F_200F_200D_200B_206C_200D_200D_206E_202E_202D_206A_200C_202A_206A_202E_206A_206B_202E_202B_206D_206A_206D_200F_206C_200E_206B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static IReadOnlyDictionary<ElementId, QuestRoot> _200B_202D_200C_206B_200E_200E_200F_206C_200E_202E_202E_200B_206C_206E_200D_202B_206C_206E_202B_206A_202C_200B_200B_206A_206B_200B_206D_202E_206C_202A_200E_200F_202E_202C_206C_202B_200E_206C_202A_202C_202E() - { - return AssemblyQuestLoader.GetQuests(); - } - - static DateTime? _200B_200F_206B_206D_202B_200B_206C_202C_202A_206B_200C_206D_202A_202A_200E_206C_200F_202C_206E_202C_202A_202D_206A_206E_202C_206D_200D_206A_200D_206D_202A_206B_206B_202B_202E_202C_200E_206B_202B_206F_202E(QuestRoot P_0) - { - return P_0.SeasonalQuestExpiry; - } - - static string _200B_200C_206D_206D_202A_206E_200C_206A_206D_206C_206D_202E_202D_202A_200D_206D_206D_202B_206F_206E_202B_206C_206F_206F_206E_202E_202A_200F_200B_202B_200F_202A_200E_202E_202B_206B_202A_202D_202D_202B_202E(object P_0) - { - return P_0.ToString(); - } - - static int _202E_202B_206D_202E_200F_202B_206E_206C_202E_200E_206B_206B_200B_200C_200C_200D_200C_202C_206B_200B_206A_200D_206D_206C_206C_200F_202D_200D_206E_206A_202B_206D_206B_206F_200F_200F_200B_200D_206F_202C_202E(string P_0) - { - return P_0.Length; - } - - static bool _206E_200E_206F_206B_206E_206B_206E_206C_200D_206E_206E_202E_206A_206E_206C_206C_200C_200C_200F_202A_206B_200F_202A_202A_206B_200F_202B_200B_206A_206F_206F_202A_202E_206F_202B_206F_206F_200C_206E_202E_202E(string P_0, char P_1) - { - return P_0.StartsWith(P_1); - } - - static string _200C_200C_200D_202C_200D_200C_206E_200C_200F_206E_202D_202C_206E_202B_202B_202C_200B_200D_202C_202B_206F_200B_206F_200E_202C_206C_206E_206B_200D_200F_206B_202B_206E_206D_206B_202C_206C_206E_206F_202B_202E(string P_0, int P_1) - { - return P_0.Substring(P_1); - } - - static bool _202D_206E_200E_206D_206D_206B_200D_200F_200C_200B_200D_206D_200E_202C_206E_206F_200F_200D_200D_200B_200F_206C_202B_206F_200B_202A_202C_206B_200B_200E_200F_202C_200F_206E_206C_206B_200C_200D_206C_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static string _200E_202A_200C_206A_202A_206C_200F_206C_202C_202B_206C_200E_200C_206C_200D_206F_200E_206C_202B_202D_200F_206E_202A_202C_206D_200E_202A_202C_200C_200D_202B_206B_206E_200D_200E_206C_206D_202B_200B_200C_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static ushort _206F_200F_200C_206A_206F_200E_206A_206A_200E_202E_206E_206A_206E_206F_200F_202E_206C_200F_202D_202A_200F_200B_202C_202C_200E_202C_200F_200F_200F_202B_200C_206D_206A_206C_206F_206A_202A_206E_202B_206F_202E(ElementId P_0) - { - return P_0.Value; - } - - static void _200E_200E_202D_200B_206D_202C_206E_202C_200E_206A_200E_206D_200C_206B_202D_206E_202A_206C_206F_206F_202E_200B_206F_202E_200C_206A_200D_206A_202D_200E_202B_206D_206F_202B_202B_200C_202D_206C_206F_202A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static bool? _206E_206A_200C_206A_206A_200B_206E_200F_200F_202C_200B_202A_200C_200C_206D_206C_202E_202D_200E_202C_202A_202E_200F_206D_206E_206F_200D_202D_206D_200F_202A_206A_206E_200D_206D_202C_206D_202A_200E_206D_202E(QuestRoot P_0) - { - return P_0.IsSeasonalQuest; - } - - static string _202E_206D_202C_202B_200D_206A_200C_200E_200E_206B_206A_206F_200C_206E_200C_202C_200B_206A_200B_206D_206F_202E_200E_206E_200F_206C_202A_200B_206C_202A_206A_206D_206B_200F_206B_206F_200F_202B_206F_206C_202E(Exception P_0) - { - return P_0.Message; - } - - static bool _206A_200C_206F_202E_202B_202E_206A_206D_206B_200F_206F_206C_202B_206C_202E_200C_206D_202B_202E_206E_200E_200E_202E_206B_206F_206F_200B_206E_206A_200C_200F_202D_206F_200E_200B_206A_206E_202A_206A_206F_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206D_206E_202E_202C_206B_206D_206C_202E_200F_206B_202D_202A_200E_202C_202B_200E_202D_202E_202A_206F_206A_200F_206E_206B_200C_202C_200B_200D_206F_202C_200B_200B_200B_206A_202E_200D_200B_202D_206B_202B_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static FileInfo _202A_200D_206F_202D_202B_202B_202D_200C_200C_206A_202E_206D_200F_200D_202A_206F_206A_206E_206B_200E_202D_202E_202A_200E_206D_206F_202C_206F_206B_200D_202B_202C_206A_206B_200F_202A_200C_202B_202B_202C_202E(IDalamudPluginInterface P_0) - { - return P_0.AssemblyLocation; - } - - static DirectoryInfo _200E_206E_200D_202E_206A_202E_200D_206F_206E_202C_206A_206C_206E_202E_202A_200D_206F_206C_202E_202A_206C_206F_200D_200B_200D_206E_202B_200F_206A_200B_206F_200D_206F_200D_202A_200B_202B_200D_200B_206B_202E(FileInfo P_0) - { - return P_0.Directory; - } - - static DirectoryInfo _202E_206C_206B_202B_206D_206F_206C_200B_200E_200D_200B_200F_206B_200E_206F_200E_206E_202B_202D_206D_206E_202A_200E_202B_202D_206A_206B_202A_206B_206A_202D_206A_206D_206C_206A_206B_206D_202C_206C_202B_202E(DirectoryInfo P_0) - { - return P_0.Parent; - } - - static string _200E_206F_206F_202C_200F_200B_200C_206A_200C_200F_206F_206A_202A_200C_202C_202E_200F_200B_202E_206B_202E_200D_200B_202E_200B_202E_200E_206C_202D_202A_206F_202B_200C_206F_206C_202E_200D_200E_206B_206C_202E(string P_0, string P_1, string P_2) - { - return Path.Combine(P_0, P_1, P_2); - } - - static Type _202A_206F_206C_206F_202B_202D_206A_200C_206D_200C_206A_206B_200F_200D_200F_202B_200C_202E_206B_202B_206E_206D_200F_202E_206E_206D_200F_202E_200F_200B_206D_206C_202D_206A_202A_202C_206A_206B_206F_200E_202E(Exception P_0) - { - return P_0.GetType(); - } - - static string _200E_202A_206F_206E_200F_200E_206C_202D_200D_200D_200B_206A_206E_206F_200F_200B_206A_202D_202B_202D_206A_206E_200D_206C_206A_200D_206C_202C_206B_206F_206D_200F_206A_206A_206F_202D_206D_206F_202B_202B_202E(MemberInfo P_0) - { - return P_0.Name; - } - - static string _206E_200C_202A_202D_202B_200B_206A_200B_206F_206A_206F_200D_202E_200C_200C_200C_206F_202D_200B_202D_206F_206B_202C_200F_206C_206B_206B_206C_206E_200B_200D_202C_206B_202D_206F_202B_202B_206B_200E_206D_202E(string P_0, string P_1, string P_2, string P_3) - { - return P_0 + P_1 + P_2 + P_3; - } - - static void _206B_202D_206F_206B_206F_206B_206E_206D_202A_200D_206D_200F_200E_202E_206D_202D_206D_206C_206D_206B_206D_200B_206D_200D_206F_200E_200F_206B_202C_202C_206B_200C_202D_206B_202A_200D_206A_202C_206B_200F_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } - - static List<QuestStep> _200D_206D_200E_200F_202B_206F_200C_206F_206B_202A_202D_200D_200D_206B_206A_200E_202E_200D_206D_202B_200E_202E_200F_200F_206D_202E_200C_206E_200B_200E_202A_206E_202D_200E_206D_206E_202A_202A_202A_206E_202E(QuestSequence P_0) - { - return P_0.Steps; - } - - static EInteractionType _202D_200E_206B_202B_200B_200F_206F_202C_200F_202B_200C_206F_202E_206F_206D_206B_202D_206A_206B_202B_200B_206E_206F_202C_206D_200D_206A_202D_200D_202E_200F_202D_206D_200D_202E_206F_200C_200B_206C_206A_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static DutyOptions _202B_200E_200B_202B_200F_202C_202C_200E_206E_200C_206E_200E_200B_206E_206B_200E_202A_200C_202B_206F_200C_206C_200B_202D_206D_200F_206B_206A_202A_200E_202D_200F_206F_206C_200D_206C_206D_206E_206E_206D_202E(QuestStep P_0) - { - return P_0.DutyOptions; - } - - static uint _206B_202A_200B_206D_200D_206A_202A_202D_202B_206F_206A_206A_200B_202D_202E_202C_206F_206F_200E_200C_200B_202A_206F_202A_206F_206B_206D_206F_206D_200B_202A_200E_202E_202D_202E_202C_200D_200F_206F_206A_202E(DutyOptions P_0) - { - return P_0.ContentFinderConditionId; - } - - static byte _200E_200C_206F_202C_202C_202A_202A_202E_206E_202B_206A_206E_200F_202C_200F_206D_206A_200D_206A_200B_200B_202E_202D_202D_200D_200B_200B_206B_200B_200F_200F_200F_206B_206D_200B_206F_200D_200F_206F_200C_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - - static byte _202D_206F_206A_200D_206B_200B_200F_200D_202C_206F_200C_202A_206A_202D_200C_206A_200D_202A_200C_206F_200E_200C_202B_202B_202E_202B_202D_200D_200B_200E_200F_200B_202C_200B_202D_202C_202A_206F_206D_200F_202E(QuestStep P_0) - { - return P_0.SinglePlayerDutyIndex; - } - - static void _200C_202D_206A_202D_206A_206F_200D_206F_206A_202A_202D_206B_206F_200F_202B_200B_200C_200E_200E_200C_206B_202B_202D_200D_202A_200F_200F_200B_200D_200B_206C_200F_206A_202E_206B_206B_202A_206D_200D_206C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogTrace(P_1, P_2); - } - - static bool _206C_206A_200C_206C_200F_206B_206F_200E_200D_206F_206B_206D_202A_200C_202A_200D_200E_200B_200B_200C_202A_200C_206B_200F_206C_206B_206D_202B_206B_206C_206C_206D_202B_202E_206C_206A_206A_200D_206D_202E_202E(ElementId P_0, ElementId P_1) - { - return P_0 == P_1; - } - - static JsonNode _200F_206A_200D_206A_202E_206F_200F_202A_206D_200E_200F_200D_200F_200C_202A_206B_200C_200D_200F_206A_202E_206B_200D_206B_202C_202C_200B_206A_206A_202C_200B_200F_200E_202A_202D_200B_200D_202C_206B_202E_202E(Stream P_0, JsonNodeOptions? P_1, JsonDocumentOptions P_2) - { - return JsonNode.Parse(P_0, P_1, P_2); - } - - static Exception _200E_206A_200F_206E_206B_200C_202E_206C_202B_206C_200E_206E_202D_206D_206E_200E_206A_206B_206E_200B_206C_206F_200F_206E_206D_200D_206B_206A_206F_206F_202E_206A_206F_202E_206F_206D_202C_202C_200B_200E_202E(Exception P_0) - { - return P_0.InnerException; - } - - static string _200E_200F_206A_200C_202A_202A_206F_200B_206B_206A_206F_200B_206A_200B_206D_206E_206E_206C_206F_206D_200F_200F_200F_202E_206D_206F_202E_200D_206A_206F_206C_206C_206D_202A_206B_200F_200D_206F_200D_206E_202E(string P_0) - { - return Path.GetFileNameWithoutExtension(P_0); - } - - static int _206B_206F_202D_202A_200B_202E_202D_202E_206C_206E_206B_202B_200E_202C_202D_202B_200E_206E_200F_200D_206D_200B_200C_206F_206F_202D_200E_200D_202B_200F_202E_200F_200B_206D_202E_202D_206C_202E_202B_200D_202E(string P_0, char P_1, StringComparison P_2) - { - return P_0.IndexOf(P_1, P_2); - } - - static bool _206C_206C_202E_206B_200B_200D_202A_200F_206B_202D_206F_206C_200C_200B_206D_206B_202D_202E_200B_202A_202E_206D_200B_200E_200C_200E_202D_206B_206F_202A_206B_202D_202A_200C_206C_206C_206B_202A_200D_206E_202E(JsonObject P_0, string P_1, ref JsonNode P_2) - { - return P_0.TryGetPropertyValue(P_1, out P_2); - } - - static bool _206F_206F_206E_202E_200F_206E_200C_202D_200B_206E_200B_202A_206F_206B_200F_202C_206D_202B_202D_202A_206C_202D_200F_206B_202B_206A_200F_206B_206B_206F_206C_206C_202B_206A_200C_206E_200C_206A_200F_200E_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static bool _200D_206E_202D_202C_200D_206D_206B_200E_200B_200C_200F_206B_200E_206A_200B_202B_200E_206A_200B_206F_206D_202C_200D_200F_200C_206D_200F_206A_206F_206B_206C_202C_200C_202B_202D_200C_200D_202B_202C_200F_202E(FileSystemInfo P_0) - { - return P_0.Exists; - } - - static void _206B_200B_206F_206F_200C_202D_202B_200D_206A_206A_202A_202B_200B_202E_202A_202B_206A_200F_200F_200C_200E_206C_202A_202B_202A_202E_200F_206A_200B_202B_206B_200E_202C_200B_206D_202D_202A_200F_200C_202E(ILogger P_0, LogLevel P_1, string P_2, object[] P_3) - { - P_0.Log(P_1, P_2, P_3); - } - - static FileInfo[] _202A_200F_206E_202E_206A_200D_206A_200C_202E_206B_200F_202A_206C_206D_202A_206C_200D_200C_206C_206E_202E_206F_200D_206B_200C_202B_206B_200D_200B_202C_202D_202C_202E_202D_200F_202E_206C_206E_206D_202E(DirectoryInfo P_0, string P_1) - { - return P_0.GetFiles(P_1); - } - - static FileStream _206A_202B_202D_200E_206B_206B_206D_206D_206E_202A_206D_202A_202D_200F_206F_206E_206B_200F_200B_206C_206F_206C_206B_206B_202D_200B_206E_206B_200D_200C_202E_206A_202D_206F_202B_202D_206A_200E_206F_206F_202E(FileInfo P_0) - { - return P_0.OpenRead(); - } - - static string _202E_206C_206C_200B_202B_206A_206F_202E_200F_206C_202B_200D_206C_206E_202C_200E_200F_206D_202C_200C_206F_200F_206B_202C_206B_202C_202D_200B_202C_200F_206C_202B_202E_206E_202C_200F_200E_206E_200F_206A_202E(FileSystemInfo P_0) - { - return P_0.Name; - } - - static InvalidDataException _200E_202B_200E_206E_200B_206D_202B_200D_206B_206F_206C_200B_200D_200C_200F_202B_202D_202A_206C_202B_202A_202D_206E_202D_200B_206E_202E_206A_200E_202D_202B_200E_200C_200C_200D_206C_200F_206A_206E_206C_202E(string P_0, Exception P_1) - { - return new InvalidDataException(P_0, P_1); - } - - static DirectoryInfo[] _202D_202C_200F_200F_200E_206A_206E_200F_202A_200C_206E_202D_206D_200B_206F_202A_206D_200F_200D_200D_206E_200E_206B_200E_200F_202D_200E_206F_202B_206A_202C_200D_206E_206E_200C_202D_200C_200E_206F_206D_202E(DirectoryInfo P_0) - { - return P_0.GetDirectories(); - } - - static string _202E_206C_206B_202C_206F_206B_200D_200F_200D_202E_206B_200E_200B_200E_206F_202E_200D_202B_200E_202A_202A_206A_206A_206D_206A_200E_206D_206B_202E_202B_206C_202A_206C_200E_206A_202E_200F_206C_206D_206D_202E(JsonException P_0) - { - return P_0.Path; - } - - static Match _202C_206C_206E_202E_200C_206B_200F_206E_202D_202E_200C_202E_206C_200E_200E_206D_202B_202E_206C_202A_206B_202E_202A_206D_200B_200B_206F_206C_206A_200B_202C_202C_206B_206A_200B_200E_200D_206F_200D_202D_202E(string P_0, string P_1) - { - return Regex.Match(P_0, P_1); - } - - static bool _200F_206D_202D_202E_206D_206A_206D_202E_200D_206A_206F_206F_206F_200D_202C_202E_202C_206A_202C_206C_202B_206C_200B_206B_202B_200C_206E_200F_202D_200F_202B_202E_206D_206F_206E_202E_202C_200D_202E_200E_202E(Group P_0) - { - return P_0.Success; - } - - static GroupCollection _200E_200C_200D_206C_206A_202A_202D_200C_206F_206C_202E_206A_202B_202C_206C_202A_202C_200F_202E_206B_206C_202B_202B_206F_202A_200D_206F_202A_202D_206C_206A_206C_202A_202E_206B_200F_206D_202A_202E_202A_202E(Match P_0) - { - return P_0.Groups; - } - - static Group _206E_206C_200F_202A_202C_202D_206C_206D_206E_202D_202D_206A_206C_200B_206B_202B_202A_206B_202B_206A_206A_202E_200B_206F_206D_206D_206D_206F_206B_202C_202D_202D_202E_200C_200E_202D_206C_206E_202E_206E_202E(GroupCollection P_0, int P_1) - { - return P_0[P_1]; - } - - static string _206C_200F_206C_206A_200C_202D_200C_206B_202E_202C_206A_206A_206F_206F_200E_202D_200E_200E_200B_206C_206B_200E_202A_200D_200E_200F_200D_206D_200D_200E_200B_200C_202E_202B_202B_200D_202B_206E_200C_206F_202E(Capture P_0) - { - return P_0.Value; - } - - static bool _206B_202C_206B_202C_206E_202C_200B_202E_206F_202A_200F_200F_200C_206E_206E_206D_200B_200F_202D_200C_202A_206A_202C_202D_200B_202C_200F_206D_202B_202E_206D_206E_202E_202A_202A_200D_202C_202E_200F_206E_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); - } - - static string _200E_206E_200E_206E_202B_202B_202D_202C_206C_206A_202D_200F_206D_200E_200B_206C_202C_200C_206A_202C_200D_206F_206D_200F_206A_200C_200F_200B_200E_202A_206C_202B_200E_202D_206A_206B_202A_202A_202A_202D_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static int _200F_202E_200E_202B_200C_202D_202E_206D_200D_202A_202C_206A_206A_202B_202A_200C_200D_200B_202D_202E_202D_206C_200E_202D_206B_200C_206F_202E_200E_206A_200D_202B_200F_206B_202D_200C_206D_206F_206F_200F_202E(string P_0, char P_1) - { - return P_0.LastIndexOf(P_1); - } - - static bool _202D_206A_202A_202B_200B_200E_206E_206D_200F_202B_206C_202E_206F_206F_206F_206C_206B_202B_200F_200C_206B_202B_206A_200B_200B_200C_200E_202C_202A_202B_202E_200C_202D_200B_200E_206C_200E_200E_206D_206A_202E(string P_0, char P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); - } - - static string[] _202C_206B_200B_200F_200B_206D_206A_206D_206E_202E_202A_206C_200F_200B_206D_206C_206F_200E_206F_202B_206A_206A_200F_202B_202A_200C_200D_206B_202D_206F_206A_200C_206A_200F_206E_200B_200F_200F_202B_200E_202E(string P_0, char P_1, int P_2, StringSplitOptions P_3) - { - return P_0.Split(P_1, P_2, P_3); - } - - static ElementId _202C_202D_206D_206A_200B_200D_206E_200E_206F_206B_200F_200C_206F_202C_202C_202D_200D_202B_206F_200D_206B_206B_202B_206D_206C_202A_200F_202B_200B_206A_202A_206D_200D_206D_206E_200C_206D_200E_202C_202D_202E(string P_0) - { - return ElementId.FromString(P_0); - } - - static EClassJob _200B_206D_206F_202E_200C_206C_206A_200C_206A_200C_202B_200B_206E_206E_202C_206B_202B_206C_202D_202D_200D_202C_202A_202E_202C_200E_200F_206D_202C_202D_200D_200C_202C_206E_206C_206B_202D_200F_202B_200F_202E(EClassJob P_0) - { - return P_0.AsJob(); - } - - static bool _200B_202C_206B_202D_206D_202A_200D_206A_200E_200D_206F_202C_202B_202D_206B_202E_206A_202C_200F_200D_200B_202E_200C_200C_200D_202C_202B_200B_202D_202C_206B_206D_206B_202B_202A_206B_206A_206A_206E_200E_202E(string P_0) - { - return string.IsNullOrWhiteSpace(P_0); - } - - static string _202E_200B_202E_200C_200E_206A_202D_206B_202B_206C_202C_202B_202A_206C_200D_206B_202D_206A_200E_202C_200B_202B_202B_202D_206C_206B_206E_206A_200C_202C_202C_206E_206D_206F_206D_206C_206C_200D_202C_206E_202E(string P_0, string P_1, string P_2, StringComparison P_3) - { - return P_0.Replace(P_1, P_2, P_3); - } - - static string _202E_206E_206E_206B_206B_206E_202E_202C_200F_202C_202B_206D_206C_200C_206E_206F_206C_202C_200B_200D_206D_206E_202E_202D_202B_202A_202A_200B_206E_202E_202A_202C_206C_202E_206C_202A_200B_202D_206D_200C_202E(string P_0, string P_1, string P_2) - { - return Regex.Replace(P_0, P_1, P_2); - } - - static string _202C_206A_200D_206D_202A_202E_206E_200F_202C_206B_206B_200F_206A_200B_202E_200B_206A_206C_206B_202E_200C_206F_200E_206A_206F_200F_202B_200F_202B_200E_200E_202C_202C_206F_200E_202B_206C_202D_206F_206B_202E(string P_0, string P_1, string P_2, RegexOptions P_3) - { - return Regex.Replace(P_0, P_1, P_2, P_3); + name = name.Replace("_", " ", StringComparison.OrdinalIgnoreCase); + name = Regex.Replace(name, "\\s+", " "); + name = Regex.Replace(name, "\\b(Patch)\\s+(\\d+)\\s+(\\d+)\\b", "$1 $2.$3", RegexOptions.IgnoreCase); + return name; } } diff --git a/Questionable/Questionable.Controller/QuestResolution.cs b/Questionable/Questionable.Controller/QuestResolution.cs index a5daa13..4c1a4d9 100644 --- a/Questionable/Questionable.Controller/QuestResolution.cs +++ b/Questionable/Questionable.Controller/QuestResolution.cs @@ -1,7 +1,3 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Questionable.Functions; using Questionable.Model.Questing; @@ -27,27 +23,11 @@ internal readonly record struct QuestResolution { get { - int num = ((!_206C_200E_200F_206F_200C_200D_206E_200E_202A_206B_206A_206E_206A_202B_206E_202D_200E_200E_206A_200B_200B_206F_206C_202A_202C_200B_200B_206C_206E_206D_200D_206D_206B_200F_206B_206D_206D_202A_206F_200F_202E(QuestId, (ElementId?)null)) ? 206897557 : 206897558); - while (true) + if (QuestId != null) { - int num2 = num; - int num3 = 206897556; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return false; - case 2: - return _200C_200F_202A_206B_200E_202E_206F_206C_206D_202C_202B_206B_206D_200C_206B_200E_206E_202C_202B_202B_200D_200C_202A_200F_202E_202D_206E_202A_202E_200E_200C_206C_200F_202D_202A_202B_202C_206C_200F_202E_202E(QuestId) != 0; - case 0: - goto IL_005f; - } - continue; - IL_005f: - num = 206897558; + return QuestId.Value != 0; } + return false; } } @@ -56,32 +36,11 @@ internal readonly record struct QuestResolution get { EQuestResolutionType type = Type; - int num = (((uint)type > 2u) ? 551053514 : 551053515); - bool result = default(bool); - while (true) + if ((uint)type <= 1u) { - int num2 = num; - int num3 = 551053514; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 551053515; - break; - case 1: - result = true; - num = 551053513; - break; - case 0: - result = false; - num = 551053513; - break; - case 3: - return result; - } + return true; } + return false; } } @@ -109,23 +68,16 @@ internal readonly record struct QuestResolution }; } - [MethodImpl(MethodImplOptions.NoInlining)] public static QuestResolution Leveling(int targetLevel, string? questName, MainScenarioQuestState msqState) { - QuestResolution result = new QuestResolution + return new QuestResolution { Type = EQuestResolutionType.LevelingMode, - MsqState = msqState + MsqState = msqState, + DebugReason = $"Leveling to {targetLevel} for {questName}", + LevelingTargetLevel = targetLevel, + LevelingQuestName = questName }; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(17, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(842342782)); - defaultInterpolatedStringHandler.AppendFormatted(targetLevel); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1386602519)); - defaultInterpolatedStringHandler.AppendFormatted(questName); - result.DebugReason = defaultInterpolatedStringHandler.ToStringAndClear(); - result.LevelingTargetLevel = targetLevel; - result.LevelingQuestName = questName; - return result; } public static QuestResolution None(MainScenarioQuestState msqState, string reason) @@ -137,138 +89,4 @@ internal readonly record struct QuestResolution DebugReason = reason }; } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206D_206A_202A_200C_206C_202B_206D_206B_200D_206D_206E_206D_202D_200D_206B_200E_202C_200D_202E_202C_202A_206D_200E_200E_206D_206E_206B_202D_200B_206E_200B_202A_206A_206E_206E_202A_200E_206E_202A_202A_202E(); - _206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1454729843)); - _206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(117284107)); - int num = ((!PrintMembers(stringBuilder)) ? 497105174 : 497105175); - while (true) - { - int num2 = num; - int num3 = 497105174; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _206B_206E_200B_206A_202D_206B_202C_206D_206B_202C_202C_206D_202E_206F_200C_206D_200E_206F_202B_200F_206B_200D_202C_206F_206D_206A_206E_202A_202B_206C_200E_202A_202B_200B_200E_206D_206A_200E_206F_200E_202E(stringBuilder, '}'); - return _202B_202D_206D_200C_200C_206C_206A_206E_206D_206C_200B_206B_202E_200E_202D_206B_206C_200F_206E_206D_206E_200C_200B_206D_206A_202A_202D_200D_200E_202A_206E_202C_200D_202A_202C_200D_206D_200E_202C_200F_202E((object?)stringBuilder); - case 1: - _206B_206E_200B_206A_202D_206B_202C_206D_206B_202C_202C_206D_202E_206F_200C_206D_200E_206F_202B_200F_206B_200D_202C_206F_206D_206A_206E_202A_202B_206C_200E_202A_202B_200B_200E_206D_206A_200E_206F_200E_202E(stringBuilder, ' '); - num = 497105174; - break; - case 2: - num = 497105175; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2142299818)); - _206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, Type.ToString()); - _206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1355464271)); - _200C_206D_206F_206A_200F_206C_200E_200F_202B_206A_202D_202E_202D_202E_206E_200C_202A_202C_202C_206B_206F_200D_202C_202B_200E_202E_206C_206B_202E_200C_200B_206A_200C_202B_202A_206E_206E_206B_206E_200F_202E(builder, (object?)QuestId); - _206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1883281888)); - _206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, Sequence.ToString()); - _206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1661504935)); - _206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, MsqState.ToString()); - _206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-940584201)); - _200C_206D_206F_206A_200F_206C_200E_200F_202B_206A_202D_202E_202D_202E_206E_200C_202A_202C_202C_206B_206F_200D_202C_202B_200E_202E_206C_206B_202E_200C_200B_206A_200C_202B_202A_206E_206E_206B_206E_200F_202E(builder, (object?)DebugReason); - _206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-436279056)); - _206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, LevelingTargetLevel.ToString()); - _206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2055448933)); - _200C_206D_206F_206A_200F_206C_200E_200F_202B_206A_202D_202E_202D_202E_206E_200C_202A_202C_202C_206B_206F_200D_202C_202B_200E_202E_206C_206B_202E_200C_200B_206A_200C_202B_202A_206E_206E_206B_206E_200F_202E(builder, (object?)LevelingQuestName); - _206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-660514735)); - _206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, HasQuest.ToString()); - _206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1071893673)); - _206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, IsSlotBased.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(QuestResolution other) - { - int num = ((!EqualityComparer<EQuestResolutionType>.Default.Equals(Type, other.Type)) ? 408097635 : 408097637); - while (true) - { - int num2 = num; - int num3 = 408097635; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - num = ((!EqualityComparer<byte>.Default.Equals(Sequence, other.Sequence)) ? 408097635 : 408097632); - break; - case 1: - num = ((!EqualityComparer<string>.Default.Equals(DebugReason, other.DebugReason)) ? 408097635 : 408097633); - break; - case 4: - return EqualityComparer<string>.Default.Equals(LevelingQuestName, other.LevelingQuestName); - case 2: - num = ((!EqualityComparer<int>.Default.Equals(LevelingTargetLevel, other.LevelingTargetLevel)) ? 408097635 : 408097639); - break; - case 0: - return false; - case 7: - num = 408097637; - break; - case 3: - num = ((!EqualityComparer<MainScenarioQuestState>.Default.Equals(MsqState, other.MsqState)) ? 408097635 : 408097634); - break; - case 6: - num = ((!EqualityComparer<ElementId>.Default.Equals(QuestId, other.QuestId)) ? 408097635 : 408097638); - break; - } - } - } - - bool IEquatable<QuestResolution>.Equals(QuestResolution other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static bool _206C_200E_200F_206F_200C_200D_206E_200E_202A_206B_206A_206E_206A_202B_206E_202D_200E_200E_206A_200B_200B_206F_206C_202A_202C_200B_200B_206C_206E_206D_200D_206D_206B_200F_206B_206D_206D_202A_206F_200F_202E(ElementId? P_0, ElementId? P_1) - { - return P_0 != P_1; - } - - static ushort _200C_200F_202A_206B_200E_202E_206F_206C_206D_202C_202B_206B_206D_200C_206B_200E_206E_202C_202B_202B_200D_200C_202A_200F_202E_202D_206E_202A_202E_200E_200C_206C_200F_202D_202A_202B_202C_206C_200F_202E_202E(ElementId? P_0) - { - return P_0.Value; - } - - static StringBuilder? _206D_206A_202A_200C_206C_202B_206D_206B_200D_206D_206E_206D_202D_200D_206B_200E_202C_200D_202E_202C_202A_206D_200E_200E_206D_206E_206B_202D_200B_206E_200B_202A_206A_206E_206E_202A_200E_206E_202A_202A_202E() - { - return new StringBuilder(); - } - - static StringBuilder? _206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _206B_206E_200B_206A_202D_206B_202C_206D_206B_202C_202C_206D_202E_206F_200C_206D_200E_206F_202B_200F_206B_200D_202C_206F_206D_206A_206E_202A_202B_206C_200E_202A_202B_200B_200E_206D_206A_200E_206F_200E_202E(StringBuilder? P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string? _202B_202D_206D_200C_200C_206C_206A_206E_206D_206C_200B_206B_202E_200E_202D_206B_206C_200F_206E_206D_206E_200C_200B_206D_206A_202A_202D_200D_200E_202A_206E_202C_200D_202A_202C_200D_206D_200E_202C_200F_202E(object? P_0) - { - return P_0.ToString(); - } - - static StringBuilder? _200C_206D_206F_206A_200F_206C_200E_200F_202B_206A_202D_202E_202D_202E_206E_200C_202A_202C_202C_206B_206F_200D_202C_202B_200E_202E_206C_206B_202E_200C_200B_206A_200C_202B_202A_206E_206E_206B_206E_200F_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } } diff --git a/Questionable/Questionable.Controller/QuestSlots.cs b/Questionable/Questionable.Controller/QuestSlots.cs index ebfd843..194c91a 100644 --- a/Questionable/Questionable.Controller/QuestSlots.cs +++ b/Questionable/Questionable.Controller/QuestSlots.cs @@ -1,120 +1,6 @@ -using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Questionable.Model; namespace Questionable.Controller; -internal readonly record struct QuestSlots(QuestController.QuestProgress? Simulated, QuestController.QuestProgress? Next, QuestController.QuestProgress? Gathering, List<Quest> ManualPriorityQuests, QuestController.EAutomationType AutomationType) -{ - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200F_206A_206A_206F_200F_202E_200B_200B_206C_202B_200B_206F_206C_206E_202B_202D_202B_200C_200B_206D_206C_202B_200F_202D_206F_206B_200E_200E_200F_202A_200D_200E_202A_206E_202E_206A_200F_206B_202B_206C_202E(); - _202E_200E_200F_202C_206F_200B_206D_202E_206E_202C_206B_200B_200C_202E_206C_202E_206F_200F_206E_200C_202E_202B_200B_206E_206A_202D_202C_200E_206A_202C_202C_206A_202B_200D_206D_200F_206A_202E_202D_202B_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1514472868)); - _202E_200E_200F_202C_206F_200B_206D_202E_206E_202C_206B_200B_200C_202E_206C_202E_206F_200F_206E_200C_202E_202B_200B_206E_206A_202D_202C_200E_206A_202C_202C_206A_202B_200D_206D_200F_206A_202E_202D_202B_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125)); - int num = ((!PrintMembers(stringBuilder)) ? (-1459143822) : (-1459143823)); - while (true) - { - int num2 = num; - int num3 = -1459143821; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _206B_202E_206C_202E_200B_202D_206A_202C_200B_202C_206E_202C_200C_200F_202C_206C_202D_200E_202A_202C_206A_206A_206E_206C_202B_202A_200E_202C_202E_200E_206C_200C_206B_202D_206F_206F_202D_206F_202A_206F_202E(stringBuilder, '}'); - return _202C_200B_200F_200D_200D_202D_206D_200B_206B_206A_200D_200F_206A_200B_206F_200B_206C_200C_206F_206F_202C_206B_200D_202C_200B_206F_206D_202D_202B_202E_202C_206E_202A_200E_200E_202B_200B_206A_206C_206D_202E((object?)stringBuilder); - case 2: - _206B_202E_206C_202E_200B_202D_206A_202C_200B_202C_206E_202C_200C_200F_202C_206C_202D_200E_202A_202C_206A_206A_206E_206C_202B_202A_200E_202C_202E_200E_206C_200C_206B_202D_206F_206F_202D_206F_202A_206F_202E(stringBuilder, ' '); - num = -1459143822; - break; - case 0: - num = -1459143823; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202E_200E_200F_202C_206F_200B_206D_202E_206E_202C_206B_200B_200C_202E_206C_202E_206F_200F_206E_200C_202E_202B_200B_206E_206A_202D_202C_200E_206A_202C_202C_206A_202B_200D_206D_200F_206A_202E_202D_202B_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1870703456)); - _202D_202B_206A_206E_206A_200E_202D_206B_200F_202E_206B_202D_200E_200B_200B_200E_202C_200F_206C_200D_200C_202D_202A_202B_202C_206B_206F_206D_206E_200F_206D_200F_202C_206B_202E_202A_200E_206C_200F_200C_202E(builder, (object?)Simulated); - _202E_200E_200F_202C_206F_200B_206D_202E_206E_202C_206B_200B_200C_202E_206C_202E_206F_200F_206E_200C_202E_202B_200B_206E_206A_202D_202C_200E_206A_202C_202C_206A_202B_200D_206D_200F_206A_202E_202D_202B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1249651831)); - _202D_202B_206A_206E_206A_200E_202D_206B_200F_202E_206B_202D_200E_200B_200B_200E_202C_200F_206C_200D_200C_202D_202A_202B_202C_206B_206F_206D_206E_200F_206D_200F_202C_206B_202E_202A_200E_206C_200F_200C_202E(builder, (object?)Next); - _202E_200E_200F_202C_206F_200B_206D_202E_206E_202C_206B_200B_200C_202E_206C_202E_206F_200F_206E_200C_202E_202B_200B_206E_206A_202D_202C_200E_206A_202C_202C_206A_202B_200D_206D_200F_206A_202E_202D_202B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-132265683)); - _202D_202B_206A_206E_206A_200E_202D_206B_200F_202E_206B_202D_200E_200B_200B_200E_202C_200F_206C_200D_200C_202D_202A_202B_202C_206B_206F_206D_206E_200F_206D_200F_202C_206B_202E_202A_200E_206C_200F_200C_202E(builder, (object?)Gathering); - _202E_200E_200F_202C_206F_200B_206D_202E_206E_202C_206B_200B_200C_202E_206C_202E_206F_200F_206E_200C_202E_202B_200B_206E_206A_202D_202C_200E_206A_202C_202C_206A_202B_200D_206D_200F_206A_202E_202D_202B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1954093048)); - _202D_202B_206A_206E_206A_200E_202D_206B_200F_202E_206B_202D_200E_200B_200B_200E_202C_200F_206C_200D_200C_202D_202A_202B_202C_206B_206F_206D_206E_200F_206D_200F_202C_206B_202E_202A_200E_206C_200F_200C_202E(builder, (object?)ManualPriorityQuests); - _202E_200E_200F_202C_206F_200B_206D_202E_206E_202C_206B_200B_200C_202E_206C_202E_206F_200F_206E_200C_202E_202B_200B_206E_206A_202D_202C_200E_206A_202C_202C_206A_202B_200D_206D_200F_206A_202E_202D_202B_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1435515341)); - _202E_200E_200F_202C_206F_200B_206D_202E_206E_202C_206B_200B_200C_202E_206C_202E_206F_200F_206E_200C_202E_202B_200B_206E_206A_202D_202C_200E_206A_202C_202C_206A_202B_200D_206D_200F_206A_202E_202D_202B_202E(builder, AutomationType.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(QuestSlots other) - { - int num = ((!EqualityComparer<QuestController.QuestProgress>.Default.Equals(Simulated, other.Simulated)) ? (-365980673) : (-365980680)); - while (true) - { - int num2 = num; - int num3 = -365980676; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -365980680; - break; - case 4: - num = ((!EqualityComparer<QuestController.QuestProgress>.Default.Equals(Next, other.Next)) ? (-365980673) : (-365980674)); - break; - case 2: - num = ((!EqualityComparer<QuestController.QuestProgress>.Default.Equals(Gathering, other.Gathering)) ? (-365980673) : (-365980675)); - break; - case 1: - num = ((!EqualityComparer<List<Quest>>.Default.Equals(ManualPriorityQuests, other.ManualPriorityQuests)) ? (-365980673) : (-365980679)); - break; - case 3: - return false; - case 5: - return EqualityComparer<QuestController.EAutomationType>.Default.Equals(AutomationType, other.AutomationType); - } - } - } - - bool IEquatable<QuestSlots>.Equals(QuestSlots other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder? _200F_206A_206A_206F_200F_202E_200B_200B_206C_202B_200B_206F_206C_206E_202B_202D_202B_200C_200B_206D_206C_202B_200F_202D_206F_206B_200E_200E_200F_202A_200D_200E_202A_206E_202E_206A_200F_206B_202B_206C_202E() - { - return new StringBuilder(); - } - - static StringBuilder? _202E_200E_200F_202C_206F_200B_206D_202E_206E_202C_206B_200B_200C_202E_206C_202E_206F_200F_206E_200C_202E_202B_200B_206E_206A_202D_202C_200E_206A_202C_202C_206A_202B_200D_206D_200F_206A_202E_202D_202B_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _206B_202E_206C_202E_200B_202D_206A_202C_200B_202C_206E_202C_200C_200F_202C_206C_202D_200E_202A_202C_206A_206A_206E_206C_202B_202A_200E_202C_202E_200E_206C_200C_206B_202D_206F_206F_202D_206F_202A_206F_202E(StringBuilder? P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string? _202C_200B_200F_200D_200D_202D_206D_200B_206B_206A_200D_200F_206A_200B_206F_200B_206C_200C_206F_206F_202C_206B_200D_202C_200B_206F_206D_202D_202B_202E_202C_206E_202A_200E_200E_202B_200B_206A_206C_206D_202E(object? P_0) - { - return P_0.ToString(); - } - - static StringBuilder? _202D_202B_206A_206E_206A_200E_202D_206B_200F_202E_206B_202D_200E_200B_200B_200E_202C_200F_206C_200D_200C_202D_202A_202B_202C_206B_206F_206D_206E_200F_206D_200F_202C_206B_202E_202A_200E_206C_200F_200C_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } -} +internal readonly record struct QuestSlots(QuestController.QuestProgress? Simulated, QuestController.QuestProgress? Next, List<Quest> ManualPriorityQuests, QuestController.EAutomationType AutomationType); diff --git a/Questionable/Questionable.Controller/SeasonalDutyController.cs b/Questionable/Questionable.Controller/SeasonalDutyController.cs index 42c4c66..139ebff 100644 --- a/Questionable/Questionable.Controller/SeasonalDutyController.cs +++ b/Questionable/Questionable.Controller/SeasonalDutyController.cs @@ -1,8 +1,5 @@ using System; -using System.Collections.Generic; using System.Globalization; -using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps; @@ -17,82 +14,6 @@ namespace Questionable.Controller; internal sealed class SeasonalDutyController : MiniTaskController<SeasonalDutyController> { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass23_0 - { - public SeasonalDutyController _003C_003E4__this; - - public SeasonalDutyDefinition duty; - - internal bool _003CEnqueueDutyCycle_003Eb__0() - { - return _200C_200D_200B_206D_202E_206E_200B_202A_200C_202D_206E_206B_200D_206F_202E_202D_206D_206B_202A_202D_200C_206B_202A_206A_200F_200D_202A_206B_202D_206F_200C_200D_206E_202B_206F_202D_202B_202D_200E_206B_202E(_003C_003E4__this._clientState) != _202B_206B_206C_202A_206B_202C_200B_200F_200C_200D_200D_206E_206D_206B_206F_206E_200F_206D_200F_202C_206A_202E_200D_206B_202E_202D_200C_206D_206E_202C_206A_202A_202E_206C_202B_202D_200F_206B_200D_202E(_003C_003E4__this._currentDuty); - } - - static uint _200C_200D_200B_206D_202E_206E_200B_202A_200C_202D_206E_206B_200D_206F_202E_202D_206D_206B_202A_202D_200C_206B_202A_206A_200F_200D_202A_206B_202D_206F_200C_200D_206E_202B_206F_202D_202B_202D_200E_206B_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static ushort _202B_206B_206C_202A_206B_202C_200B_200F_200C_200D_200D_206E_206D_206B_206F_206E_200F_206D_200F_202C_206A_202E_200D_206B_202E_202D_200C_206D_206E_202C_206A_202A_202E_206C_202B_202D_200F_206B_200D_202E(SeasonalDutyDefinition P_0) - { - return P_0.DutyTerritoryId; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass23_1 - { - public bool interacted; - - public _003C_003Ec__DisplayClass23_0 CS_0024_003C_003E8__locals1; - - internal bool _003CEnqueueDutyCycle_003Eb__1() - { - int num = ((_206D_206A_206F_200E_200E_206D_202D_200C_200E_202B_206D_200D_202E_200C_206E_206E_202A_202A_206F_206F_200E_206B_206B_206A_206C_202C_200B_206A_206B_206F_200B_206F_200B_200F_202E_202A_200F_202B_206A_206F_202E(CS_0024_003C_003E8__locals1._003C_003E4__this._clientState) != _206F_200F_206C_202A_200E_200E_200E_206A_202C_202E_200D_206B_206D_206D_202E_202E_206F_206E_206F_202A_206D_200E_206A_200D_200D_206E_200F_200D_200F_202E_206D_202A_206D_206E_200C_206E_200E_202D_206C_202A_202E(CS_0024_003C_003E8__locals1._003C_003E4__this._currentDuty)) ? 1413699678 : 1413699677); - while (true) - { - int num2 = num; - int num3 = 1413699679; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1413699677; - break; - case 4: - return false; - case 2: - return true; - case 1: - num = (interacted ? 1413699675 : 1413699676); - break; - case 3: - interacted = CS_0024_003C_003E8__locals1._003C_003E4__this._gameFunctions.InteractWith(_202C_206D_200D_200C_202E_200F_206C_206F_202B_206F_202C_206C_206C_206E_200B_206A_206A_206A_206F_200F_202D_200F_206A_206F_200D_202D_200F_206A_206C_206C_206A_202E_202E_206C_202B_206D_200B_206B_206B_206A_202E(CS_0024_003C_003E8__locals1.duty)); - num = 1413699675; - break; - } - } - } - - static uint _206D_206A_206F_200E_200E_206D_202D_200C_200E_202B_206D_200D_202E_200C_206E_206E_202A_202A_206F_206F_200E_206B_206B_206A_206C_202C_200B_206A_206B_206F_200B_206F_200B_200F_202E_202A_200F_202B_206A_206F_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static ushort _206F_200F_206C_202A_200E_200E_200E_206A_202C_202E_200D_206B_206D_206D_202E_202E_206F_206E_206F_202A_206D_200E_206A_200D_200D_206E_200F_200D_200F_202E_206D_202A_206D_206E_200C_206E_200E_202D_206C_202A_202E(SeasonalDutyDefinition P_0) - { - return P_0.DutyTerritoryId; - } - - static uint _202C_206D_200D_200C_202E_200F_206C_206F_202B_206F_202C_206C_206C_206E_200B_206A_206A_206A_206F_200F_202D_200F_206A_206F_200D_202D_200F_206A_206C_206C_206A_202E_202E_206C_202B_206D_200B_206B_206B_206A_202E(SeasonalDutyDefinition P_0) - { - return P_0.NpcDataId; - } - } - private readonly MovementController _movementController; private readonly GameFunctions _gameFunctions; @@ -123,27 +44,11 @@ internal sealed class SeasonalDutyController : MiniTaskController<SeasonalDutyCo { get { - int num = (IsRunning ? (-1081163331) : (-1081163330)); - while (true) + if (!IsRunning) { - int num2 = num; - int num3 = -1081163332; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return DateTime.UtcNow - _startTime; - case 2: - return TimeSpan.Zero; - case 0: - goto IL_005f; - } - continue; - IL_005f: - num = -1081163330; + return TimeSpan.Zero; } + return DateTime.UtcNow - _startTime; } } @@ -156,247 +61,78 @@ internal sealed class SeasonalDutyController : MiniTaskController<SeasonalDutyCo _routeEnqueuer = routeEnqueuer; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Start(SeasonalDutyDefinition duty, int? cycleLimit = null) { _currentDuty = duty; _completedCycles = 0; _cycleLimit = cycleLimit; _startTime = DateTime.UtcNow; - _202A_200D_200F_206C_200B_206E_206F_206D_202C_200B_202D_200B_206D_200E_200E_200C_206D_206E_206D_206F_202D_200C_206A_200E_206D_200F_200C_200C_200C_200D_200E_202A_200D_200C_206C_200C_206C_200D_206D_206A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(116039114), new object[2] - { - _202D_202B_202E_202C_202B_202B_200C_202D_200E_206E_202B_200D_206F_202B_202E_200E_206B_200D_206F_202C_200E_200E_206B_206C_206F_202E_200F_206C_206C_200E_200F_202B_200D_202D_202B_206A_200F_200D_206E_202E(duty), - cycleLimit?.ToString(_206D_202D_200B_202D_200D_200B_206D_200B_200B_202C_200F_206C_202A_202B_206A_202E_206D_202A_206E_202C_206C_206F_206C_202E_202A_202B_202E_206F_200E_206C_206C_206A_202B_200E_206C_200C_202A_206E_206E_202B_202E()) ?? global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(274217194) - }); + _logger.LogInformation("Starting seasonal duty farming: {DutyName} (limit: {Limit})", duty.Name, cycleLimit?.ToString(CultureInfo.InvariantCulture) ?? "unlimited"); EnqueueDutyCycle(); } - [MethodImpl(MethodImplOptions.NoInlining)] public void Update() { - int num = ((_currentDuty != null) ? 11397495 : 11397490); - while (true) + if (_currentDuty == null || _movementController.IsPathfinding || _movementController.IsPathRunning || _gameFunctions.IsOccupied()) { - int num2 = num; - int num3 = 11397493; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - num = 11397490; - break; - case 8: - _202A_200D_200F_206C_200B_206E_206F_206D_202C_200B_202D_200B_206D_200E_200E_200C_206D_206E_206D_206F_202D_200C_206A_200E_206D_200F_200C_200C_200C_200D_200E_202A_200D_200C_206C_200C_206C_200D_206D_206A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1317227354), new object[2] { _completedCycles, _cycleLimit.Value }); - Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-443148850)); - return; - case 11: - return; - case 5: - return; - case 4: - num = ((!_taskQueue.AllTasksComplete) ? 11397492 : 11397493); - break; - case 10: - EnqueueDutyCycle(); - num = 11397492; - break; - case 12: - num = ((!_gameFunctions.IsOccupied()) ? 11397489 : 11397502); - break; - case 2: - num = (_movementController.IsPathfinding ? 11397488 : 11397494); - break; - case 1: - UpdateCurrentTask(); - return; - case 7: - return; - case 0: - { - int completedCycles = _completedCycles; - num3 = 1; - num4 = completedCycles; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - _completedCycles = num7 + (num8 + num8); - num = ((!_cycleLimit.HasValue) ? 11397503 : 11397500); - break; - } - case 3: - num = ((!_movementController.IsPathRunning) ? 11397497 : 11397488); - break; - case 9: - num = ((_completedCycles < _cycleLimit.Value) ? 11397503 : 11397501); - break; - } + return; } + if (_taskQueue.AllTasksComplete) + { + _completedCycles++; + if (_cycleLimit.HasValue && _completedCycles >= _cycleLimit.Value) + { + _logger.LogInformation("Seasonal duty cycle limit reached ({Cycles}/{Limit})", _completedCycles, _cycleLimit.Value); + Stop("Cycle limit reached"); + return; + } + EnqueueDutyCycle(); + } + UpdateCurrentTask(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void EnqueueDutyCycle() { - int num = ((_currentDuty != null) ? (-363396158) : (-363396154)); - SeasonalDutyDefinition duty = default(SeasonalDutyDefinition); - while (true) + if (_currentDuty == null) { - int num2 = num; - int num3 = -363396158; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -363396154; - break; - case 4: - return; - case 1: - { - _routeEnqueuer.Enqueue(_taskQueue, _200E_202B_202B_206F_202B_202A_200E_200F_200B_200E_202C_206B_206E_202E_200D_206B_200D_202C_206E_200D_200B_200B_202C_206C_206C_202E_200D_202E_200B_200D_206E_206B_202E_202D_200F_202D_202C_206C_206B_200D_202E(duty), _202B_202A_202B_202B_206E_200E_202E_206A_200D_206A_202E_200E_200B_206B_206E_200B_202D_200F_206E_202B_200B_206D_206C_206F_206B_202C_200E_200B_200B_200B_206C_206D_202B_206A_200F_202B_206F_200C_206B_202C_202E(duty)); - _taskQueue.Enqueue(new Mount.UnmountTask()); - bool interacted = false; - TaskQueue taskQueue = _taskQueue; - Func<bool> predicate = delegate - { - int num5 = ((_003C_003Ec__DisplayClass23_1._206D_206A_206F_200E_200E_206D_202D_200C_200E_202B_206D_200D_202E_200C_206E_206E_202A_202A_206F_206F_200E_206B_206B_206A_206C_202C_200B_206A_206B_206F_200B_206F_200B_200F_202E_202A_200F_202B_206A_206F_202E(_clientState) != _003C_003Ec__DisplayClass23_1._206F_200F_206C_202A_200E_200E_200E_206A_202C_202E_200D_206B_206D_206D_202E_202E_206F_206E_206F_202A_206D_200E_206A_200D_200D_206E_200F_200D_200F_202E_206D_202A_206D_206E_200C_206E_200E_202D_206C_202A_202E(_currentDuty)) ? 1413699678 : 1413699677); - while (true) - { - int num6 = num5; - int num7 = 1413699679; - int num8 = num6; - int num9 = num8 + num7; - int num10 = num8 & num7; - switch (num9 - (num10 + num10)) - { - case 0: - num5 = 1413699677; - break; - case 4: - return false; - case 2: - return true; - case 1: - num5 = (interacted ? 1413699675 : 1413699676); - break; - case 3: - interacted = _gameFunctions.InteractWith(_003C_003Ec__DisplayClass23_1._202C_206D_200D_200C_202E_200F_206C_206F_202B_206F_202C_206C_206C_206E_200B_206A_206A_206A_206F_200F_202D_200F_206A_206F_200D_202D_200F_206A_206C_206C_206A_202E_202E_206C_202B_206D_200B_206B_206B_206A_202E(duty)); - num5 = 1413699675; - break; - } - } - }; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(28, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-439033438)); - defaultInterpolatedStringHandler.AppendFormatted(_200E_200C_200B_202A_202B_200E_200C_200D_200D_202B_200E_200F_200F_202B_200C_202B_202C_202D_202B_202E_202D_202A_206E_202D_206A_206B_200D_206B_200E_202A_206F_200B_206D_206F_206F_200F_200D_202C_202E_202E(duty)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - taskQueue.Enqueue(new WaitCondition.Task(predicate, defaultInterpolatedStringHandler.ToStringAndClear())); - num = -363396159; - break; - } - case 3: - _taskQueue.Enqueue(new ClearObjectsWithAction.ClearTask(_206C_206A_202C_202D_202E_200F_200B_200F_206E_202E_200E_202E_206E_206B_200F_206C_206E_202B_202B_200D_200C_206A_200D_200F_206C_206D_200E_202D_206F_200E_206A_206C_206E_202A_202E_206A_200E_200F_206A_206B_202E(duty), _200F_202B_206A_202A_200E_200F_200B_206E_200B_206F_202C_200E_206C_202E_202E_200C_200E_200C_206B_202B_206A_206A_200B_202B_206D_202D_206E_206F_200B_200F_202E_206A_206E_206F_202B_202E_200F_206D_206B_206B_202E(duty), _200E_200C_200B_202A_202B_200E_200C_200D_200D_202B_200E_200F_200F_202B_200C_202B_202C_202D_202B_202E_202D_202A_206E_202D_206A_206B_200D_206B_200E_202A_206F_200B_206D_206F_206F_200F_200D_202C_202E_202E(duty), _206D_206F_202E_200F_200E_200F_202A_206C_206B_202B_206A_206C_200D_206F_206F_206C_200B_206A_202C_206D_202E_202B_206C_206D_206F_206F_202C_206E_206F_206E_200C_202E_200F_200F_200C_206B_202D_202D_202D_200F_202E(duty), _200C_202C_200C_202A_206F_206E_200F_202C_206A_202C_200B_200D_202D_202A_206E_206E_206F_202B_202E_206F_202A_202B_200F_200B_206B_206B_200C_202B_206C_202C_202D_206D_202B_206B_200E_200D_202A_202D_202E_200C_202E(duty))); - _taskQueue.Enqueue(new WaitCondition.Task(() => _003C_003Ec__DisplayClass23_0._200C_200D_200B_206D_202E_206E_200B_202A_200C_202D_206E_206B_200D_206F_202E_202D_206D_206B_202A_202D_200C_206B_202A_206A_200F_200D_202A_206B_202D_206F_200C_200D_206E_202B_206F_202D_202B_202D_200E_206B_202E(_clientState) != _003C_003Ec__DisplayClass23_0._202B_206B_206C_202A_206B_202C_200B_200F_200C_200D_200D_206E_206D_206B_206F_206E_200F_206D_200F_202C_206A_202E_200D_206B_202E_202D_200C_206D_206E_202C_206A_202A_202E_206C_202B_202D_200F_206B_200D_202E(_currentDuty), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1272006970))); - _taskQueue.Enqueue(new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(3L))); - return; - case 0: - duty = _currentDuty; - _206C_200B_206D_200F_206F_200B_206A_202C_206B_200C_206B_202C_200B_206E_202D_200E_206C_206B_200B_202C_200B_202D_206C_206D_200E_206A_200F_200B_206B_200F_202D_202B_200B_200F_206E_206D_206A_206F_206C_200E_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1169265253), new object[1] { _202D_202B_202E_202C_202B_202B_200C_202D_200E_206E_202B_200D_206F_202B_202E_200E_206B_200D_206F_202C_200E_200E_206B_206C_206F_202E_200F_206C_206C_200E_200F_202B_200D_202D_202B_206A_200F_200D_206E_202E(duty) }); - num = ((_206B_206B_206A_206B_206B_206A_200E_206B_206C_206F_200C_200D_202C_206E_200D_200C_206F_206E_206B_202C_206A_202C_202C_206B_202B_206C_202C_200C_200B_200C_202B_202D_206A_200F_200F_202E_202B_200F_206F_200D_202E(_clientState) == _200E_200C_200B_202A_202B_200E_200C_200D_200D_202B_200E_200F_200F_202B_200C_202B_202C_202D_202B_202E_202D_202A_206E_202D_206A_206B_200D_206B_200E_202A_206F_200B_206D_206F_206F_200F_200D_202C_202E_202E(duty)) ? (-363396159) : (-363396157)); - break; - } + return; } + SeasonalDutyDefinition duty = _currentDuty; + _logger.LogDebug("Enqueuing seasonal duty cycle for {DutyName}", duty.Name); + if (_clientState.TerritoryType != duty.DutyTerritoryId) + { + _routeEnqueuer.Enqueue(_taskQueue, duty.TerritoryId, duty.NpcPosition); + _taskQueue.Enqueue(new Mount.UnmountTask()); + bool interacted = false; + _taskQueue.Enqueue(new WaitCondition.Task(delegate + { + if (_clientState.TerritoryType == _currentDuty.DutyTerritoryId) + { + return true; + } + if (!interacted) + { + interacted = _gameFunctions.InteractWith(duty.NpcDataId); + } + return false; + }, $"InteractAndWait(territory: {duty.DutyTerritoryId})")); + } + _taskQueue.Enqueue(new ClearObjectsWithAction.ClearTask(duty.DataIds, duty.Action, duty.DutyTerritoryId, duty.StopDistance, duty.WaypointPositions)); + _taskQueue.Enqueue(new WaitCondition.Task(() => _clientState.TerritoryType != _currentDuty.DutyTerritoryId, "Wait(duty end)")); + _taskQueue.Enqueue(new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(3L))); } - [MethodImpl(MethodImplOptions.NoInlining)] public override void Stop(string label) { base.Stop(label); - int num = ((_currentDuty == null) ? (-485245230) : (-485245231)); - while (true) + if (_currentDuty != null) { - int num2 = num; - int num3 = -485245232; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -485245231; - break; - case 1: - _202A_200D_200F_206C_200B_206E_206F_206D_202C_200B_202D_200B_206D_200E_200E_200C_206D_206E_206D_206F_202D_200C_206A_200E_206D_200F_200C_200C_200C_200D_200E_202A_200D_200C_206C_200C_206C_200D_206D_206A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(478807852), new object[2] { label, _completedCycles }); - _routeEnqueuer.ClearDestination(); - _currentDuty = null; - _completedCycles = 0; - _cycleLimit = null; - _taskQueue.Reset(); - num = -485245230; - break; - case 2: - return; - } + _logger.LogInformation("Stopping seasonal duty farming: {Label} (completed {Cycles} cycles)", label, _completedCycles); + _routeEnqueuer.ClearDestination(); + _currentDuty = null; + _completedCycles = 0; + _cycleLimit = null; + _taskQueue.Reset(); } } - - static string _202D_202B_202E_202C_202B_202B_200C_202D_200E_206E_202B_200D_206F_202B_202E_200E_206B_200D_206F_202C_200E_200E_206B_206C_206F_202E_200F_206C_206C_200E_200F_202B_200D_202D_202B_206A_200F_200D_206E_202E(SeasonalDutyDefinition P_0) - { - return P_0.Name; - } - - static CultureInfo _206D_202D_200B_202D_200D_200B_206D_200B_200B_202C_200F_206C_202A_202B_206A_202E_206D_202A_206E_202C_206C_206F_206C_202E_202A_202B_202E_206F_200E_206C_206C_206A_202B_200E_206C_200C_202A_206E_206E_202B_202E() - { - return CultureInfo.InvariantCulture; - } - - static void _202A_200D_200F_206C_200B_206E_206F_206D_202C_200B_202D_200B_206D_200E_200E_200C_206D_206E_206D_206F_202D_200C_206A_200E_206D_200F_200C_200C_200C_200D_200E_202A_200D_200C_206C_200C_206C_200D_206D_206A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static void _206C_200B_206D_200F_206F_200B_206A_202C_206B_200C_206B_202C_200B_206E_202D_200E_206C_206B_200B_202C_200B_202D_206C_206D_200E_206A_200F_200B_206B_200F_202D_202B_200B_200F_206E_206D_206A_206F_206C_200E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static uint _206B_206B_206A_206B_206B_206A_200E_206B_206C_206F_200C_200D_202C_206E_200D_200C_206F_206E_206B_202C_206A_202C_202C_206B_202B_206C_202C_200C_200B_200C_202B_202D_206A_200F_200F_202E_202B_200F_206F_200D_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static ushort _200E_200C_200B_202A_202B_200E_200C_200D_200D_202B_200E_200F_200F_202B_200C_202B_202C_202D_202B_202E_202D_202A_206E_202D_206A_206B_200D_206B_200E_202A_206F_200B_206D_206F_206F_200F_200D_202C_202E_202E(SeasonalDutyDefinition P_0) - { - return P_0.DutyTerritoryId; - } - - static ushort _200E_202B_202B_206F_202B_202A_200E_200F_200B_200E_202C_206B_206E_202E_200D_206B_200D_202C_206E_200D_200B_200B_202C_206C_206C_202E_200D_202E_200B_200D_206E_206B_202E_202D_200F_202D_202C_206C_206B_200D_202E(SeasonalDutyDefinition P_0) - { - return P_0.TerritoryId; - } - - static Vector3 _202B_202A_202B_202B_206E_200E_202E_206A_200D_206A_202E_200E_200B_206B_206E_200B_202D_200F_206E_202B_200B_206D_206C_206F_206B_202C_200E_200B_200B_200B_206C_206D_202B_206A_200F_202B_206F_200C_206B_202C_202E(SeasonalDutyDefinition P_0) - { - return P_0.NpcPosition; - } - - static List<uint> _206C_206A_202C_202D_202E_200F_200B_200F_206E_202E_200E_202E_206E_206B_200F_206C_206E_202B_202B_200D_200C_206A_200D_200F_206C_206D_200E_202D_206F_200E_206A_206C_206E_202A_202E_206A_200E_200F_206A_206B_202E(SeasonalDutyDefinition P_0) - { - return P_0.DataIds; - } - - static EAction _200F_202B_206A_202A_200E_200F_200B_206E_200B_206F_202C_200E_206C_202E_202E_200C_200E_200C_206B_202B_206A_206A_200B_202B_206D_202D_206E_206F_200B_200F_202E_206A_206E_206F_202B_202E_200F_206D_206B_206B_202E(SeasonalDutyDefinition P_0) - { - return P_0.Action; - } - - static float _206D_206F_202E_200F_200E_200F_202A_206C_206B_202B_206A_206C_200D_206F_206F_206C_200B_206A_202C_206D_202E_202B_206C_206D_206F_206F_202C_206E_206F_206E_200C_202E_200F_200F_200C_206B_202D_202D_202D_200F_202E(SeasonalDutyDefinition P_0) - { - return P_0.StopDistance; - } - - static List<Vector3> _200C_202C_200C_202A_206F_206E_200F_202C_206A_202C_200B_200D_202D_202A_206E_206E_206F_202B_202E_206F_202A_202B_200F_200B_206B_206B_200C_202B_206C_202C_202D_206D_202B_206B_200E_200D_202A_202D_202E_200C_202E(SeasonalDutyDefinition P_0) - { - return P_0.WaypointPositions; - } } diff --git a/Questionable/Questionable.Controller/SeasonalDutyDefinitionRegistry.cs b/Questionable/Questionable.Controller/SeasonalDutyDefinitionRegistry.cs index ab50089..83cdffc 100644 --- a/Questionable/Questionable.Controller/SeasonalDutyDefinitionRegistry.cs +++ b/Questionable/Questionable.Controller/SeasonalDutyDefinitionRegistry.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; using Dalamud.Plugin; using Microsoft.Extensions.Logging; using Questionable.Model.Questing; @@ -12,32 +11,11 @@ namespace Questionable.Controller; internal sealed class SeasonalDutyDefinitionRegistry : DefinitionRegistry<SeasonalDutyDefinition> { - protected override string TypeLabel - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1124229794); - } - } + protected override string TypeLabel => "seasonal duty"; - protected override string ConfigDirectoryName - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(393634060); - } - } + protected override string ConfigDirectoryName => "SeasonalDutyDefinitions"; - protected override string ProjectDirectoryName - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1200839821); - } - } + protected override string ProjectDirectoryName => "SeasonalDutyPaths"; protected override EPathType PathType => EPathType.SeasonalDuty; @@ -48,31 +26,16 @@ internal sealed class SeasonalDutyDefinitionRegistry : DefinitionRegistry<Season protected override IReadOnlyDictionary<ushort, SeasonalDutyDefinition> GetAssemblyDefinitions() { - return _206F_206D_202B_206C_202C_206F_206C_200C_202A_200F_200E_202E_206B_200F_206C_202E_202A_206F_202A_206D_206D_202D_200E_206F_200E_206E_206C_206D_202E_206F_202A_202B_200D_206C_202C_206B_200C_202A_206A_202E(); + return AssemblySeasonalDutyDefinitionLoader.GetDefinitions(); } protected override DateTime? GetExpiry(SeasonalDutyDefinition definition) { - return _206D_206E_202D_206B_200B_202E_202E_200E_206C_202C_202C_200C_202A_202C_206E_206A_202B_206D_206E_206B_202D_200C_206C_206F_200B_202E_206F_206E_202D_202E_202B_202C_200C_206E_200D_202D_202E_200E_206B_202E(definition); + return definition.EventExpiry; } protected override string? GetName(SeasonalDutyDefinition definition) { - return _200E_202A_200E_202E_202D_206B_202D_200F_200C_206E_206F_206A_200C_202D_206A_200F_206F_202C_202C_200F_202D_206D_200E_200B_206A_200D_202A_202D_200F_200F_206A_200E_200B_200C_200B_202D_200C_200C_206D_200C_202E(definition); - } - - static IReadOnlyDictionary<ushort, SeasonalDutyDefinition> _206F_206D_202B_206C_202C_206F_206C_200C_202A_200F_200E_202E_206B_200F_206C_202E_202A_206F_202A_206D_206D_202D_200E_206F_200E_206E_206C_206D_202E_206F_202A_202B_200D_206C_202C_206B_200C_202A_206A_202E() - { - return AssemblySeasonalDutyDefinitionLoader.GetDefinitions(); - } - - static DateTime? _206D_206E_202D_206B_200B_202E_202E_200E_206C_202C_202C_200C_202A_202C_206E_206A_202B_206D_206E_206B_202D_200C_206C_206F_200B_202E_206F_206E_202D_202E_202B_202C_200C_206E_200D_202D_202E_200E_206B_202E(SeasonalDutyDefinition P_0) - { - return P_0.EventExpiry; - } - - static string _200E_202A_200E_202E_202D_206B_202D_200F_200C_206E_206F_206A_200C_202D_206A_200F_206F_202C_202C_200F_202D_206D_200E_200B_206A_200D_202A_202D_200F_200F_206A_200E_200B_200C_200B_202D_200C_200C_206D_200C_202E(SeasonalDutyDefinition P_0) - { - return P_0.Name; + return definition.Name; } } diff --git a/Questionable/Questionable.Data/AetherCurrentData.cs b/Questionable/Questionable.Data/AetherCurrentData.cs index f3dafc4..609321e 100644 --- a/Questionable/Questionable.Data/AetherCurrentData.cs +++ b/Questionable/Questionable.Data/AetherCurrentData.cs @@ -31,28 +31,8 @@ internal sealed class AetherCurrentData _overworldCurrents = (from x in dataManager.GetExcelSheet<AetherCurrentCompFlgSet>() where x.RowId != 0 where x.Territory.IsValid - select x).ToImmutableDictionary((AetherCurrentCompFlgSet x) => (ushort)x.Territory.RowId, (AetherCurrentCompFlgSet x) => (from y in x.AetherCurrents.Where(delegate(RowRef<AetherCurrent> y) - { - int num = ((y.RowId == 0) ? (-280991559) : (-280991560)); - while (true) - { - int num2 = num; - int num3 = -280991559; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_004b; - case 0: - return false; - case 1: - return y.Value.Quest.RowId == 0; - } - continue; - IL_004b: - num = -280991560; - } - }) + select x).ToImmutableDictionary((AetherCurrentCompFlgSet x) => (ushort)x.Territory.RowId, (AetherCurrentCompFlgSet x) => (from y in x.AetherCurrents + where y.RowId != 0 && y.Value.Quest.RowId == 0 select y.RowId).ToImmutableList()); _allCurrentsByTerritory = (from x in dataManager.GetExcelSheet<AetherCurrentCompFlgSet>() where x.RowId != 0 @@ -69,28 +49,11 @@ internal sealed class AetherCurrentData public bool IsValidAetherCurrent(ushort territoryId, uint aetherCurrentId) { - ImmutableList<uint> value; - int num = ((!_overworldCurrents.TryGetValue(territoryId, out value)) ? (-1647784992) : (-1647784989)); - while (true) + if (_overworldCurrents.TryGetValue(territoryId, out ImmutableList<uint> value)) { - int num2 = num; - int num3 = -1647784990; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0050; - case 1: - return value.Contains(aetherCurrentId); - case 2: - return false; - } - continue; - IL_0050: - num = -1647784989; + return value.Contains(aetherCurrentId); } + return false; } public ImmutableList<AetherCurrentInfo> GetCurrentsForTerritory(ushort territoryId) @@ -112,95 +75,30 @@ internal sealed class AetherCurrentData { HashSet<uint> hashSet = _overworldCurrents.Values.SelectMany((ImmutableList<uint> list) => list).ToHashSet(); Dictionary<uint, uint> dictionary = new Dictionary<uint, uint>(); - using (ExcelSheet<EObj>.Enumerator enumerator = _dataManager.GetExcelSheet<EObj>().GetEnumerator()) + foreach (EObj item in _dataManager.GetExcelSheet<EObj>()) { - int num = -379834335; - uint rowId = default(uint); - EObj current = default(EObj); - while (true) + if (item.RowId != 0) { - int num2 = num; - int num3 = -379834333; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + uint rowId = item.Data.RowId; + if (rowId != 0 && hashSet.Contains(rowId)) { - case 2: - num = (enumerator.MoveNext() ? (-379834334) : (-379834330)); - break; - case 0: - dictionary[rowId] = current.RowId; - num = -379834335; - break; - case 1: - current = enumerator.Current; - num = ((current.RowId == 0) ? (-379834335) : (-379834336)); - break; - case 3: - rowId = current.Data.RowId; - num = ((rowId == 0) ? (-379834335) : (-379834331)); - break; - case 6: - num = ((!hashSet.Contains(rowId)) ? (-379834335) : (-379834333)); - break; - case 4: - num = -379834335; - break; - case 5: - goto end_IL_0067; + dictionary[rowId] = item.RowId; } - continue; - end_IL_0067: - break; } } Dictionary<uint, uint> dictionary2 = dictionary.ToDictionary((KeyValuePair<uint, uint> kv) => kv.Value, (KeyValuePair<uint, uint> kv) => kv.Key); ImmutableDictionary<uint, AetherCurrentPosition>.Builder builder = ImmutableDictionary.CreateBuilder<uint, AetherCurrentPosition>(); - using (ExcelSheet<Level>.Enumerator enumerator2 = _dataManager.GetExcelSheet<Level>().GetEnumerator()) + foreach (Level item2 in _dataManager.GetExcelSheet<Level>()) { - int num = 366195363; - Level current2 = default(Level); - uint value = default(uint); - uint rowId2 = default(uint); - while (true) + if (item2.RowId != 0) { - int num5 = num; - int num3 = 366195366; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) + uint rowId2 = item2.Object.RowId; + if (dictionary2.TryGetValue(rowId2, out var value) && item2.Territory.IsValid) { - case 6: - num = 366195363; - break; - case 2: - current2 = enumerator2.Current; - num = ((current2.RowId == 0) ? 366195363 : 366195367); - break; - case 3: - { - ushort territoryId = (ushort)current2.Territory.RowId; - Vector3 position = new Vector3(current2.X, current2.Y, current2.Z); + ushort territoryId = (ushort)item2.Territory.RowId; + Vector3 position = new Vector3(item2.X, item2.Y, item2.Z); builder[value] = new AetherCurrentPosition(territoryId, position, rowId2); - num = 366195363; - break; } - case 1: - rowId2 = current2.Object.RowId; - num = ((!dictionary2.TryGetValue(rowId2, out value)) ? 366195363 : 366195366); - break; - case 0: - num = ((!current2.Territory.IsValid) ? 366195363 : 366195365); - break; - case 5: - num = (enumerator2.MoveNext() ? 366195364 : 366195362); - break; - case 4: - goto end_IL_01ff; - } - continue; - end_IL_01ff: - break; } } return builder.ToImmutable(); diff --git a/Questionable/Questionable.Data/AetherCurrentInfo.cs b/Questionable/Questionable.Data/AetherCurrentInfo.cs index a487dc6..b7ed6c7 100644 --- a/Questionable/Questionable.Data/AetherCurrentInfo.cs +++ b/Questionable/Questionable.Data/AetherCurrentInfo.cs @@ -1,143 +1,3 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; - namespace Questionable.Data; -internal sealed record AetherCurrentInfo(uint AetherCurrentId, bool IsQuestGated, uint QuestId) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200C_202E_200F_200C_200C_206D_206C_206C_206B_206B_202C_206C_200F_202D_206D_202B_206D_200C_202B_206F_206A_206C_206A_200E_200B_206B_206F_200D_206A_200F_202E_206E_202E_202E_202D_206D_202E_206F_200E_206E_202E(typeof(AetherCurrentInfo).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202E_200C_200E_200C_206C_202D_206C_200E_206E_206B_206A_200D_202B_206D_206A_206C_200D_206D_200D_202B_200E_202A_202E_202A_206D_202E_200D_202D_206B_206D_202C_202B_206E_202C_206A_200B_206E_202D_206D_202E(); - _206B_206D_206E_202E_200D_206D_202A_202E_202E_202D_200C_200D_202E_206C_206F_206E_206F_202C_202C_202E_200D_200E_202E_200E_202C_202E_200E_200F_200D_200B_202D_202A_200C_200F_206E_202B_200D_206C_206B_202D_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-746982059)); - _206B_206D_206E_202E_200D_206D_202A_202E_202E_202D_200C_200D_202E_206C_206F_206E_206F_202C_202C_202E_200D_200E_202E_200E_202C_202E_200E_200F_200D_200B_202D_202A_200C_200F_206E_202B_200D_206C_206B_202D_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125)); - int num = ((!PrintMembers(stringBuilder)) ? (-384095084) : (-384095081)); - while (true) - { - int num2 = num; - int num3 = -384095082; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -384095081; - break; - case 2: - _206E_200C_202D_206A_200F_206F_206E_200F_206D_206C_202C_202E_206B_206A_200F_200D_202E_202C_200E_202D_200B_206E_202A_206C_202B_200D_200B_202C_206C_206A_200D_200F_202D_202B_206D_202A_206C_200D_200D_206B_202E(stringBuilder, '}'); - return _200B_202D_206E_202E_206D_200F_206A_206F_202B_202B_200D_206C_206B_206A_200C_206A_202D_200B_200B_200D_200B_206F_206A_202A_202E_200E_202A_200F_202C_206E_200D_202E_202E_200F_206D_202A_206A_206E_202B_206A_202E((object)stringBuilder); - case 1: - _206E_200C_202D_206A_200F_206F_206E_200F_206D_206C_202C_202E_206B_206A_200F_200D_202E_202C_200E_202D_200B_206E_202A_206C_202B_200D_200B_202C_206C_206A_200D_200F_202D_202B_206D_202A_206C_200D_200D_206B_202E(stringBuilder, ' '); - num = -384095084; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206F_206E_202E_200D_206B_206A_200F_206F_206F_202D_200B_202D_202C_206F_202C_202C_202A_200B_200D_206D_206F_202E_206A_202C_206C_206D_200C_200D_206B_206A_206B_206C_202C_200E_200D_202A_202B_206A_202E_200F_202E(); - _206B_206D_206E_202E_200D_206D_202A_202E_202E_202D_200C_200D_202E_206C_206F_206E_206F_202C_202C_202E_200D_200E_202E_200E_202C_202E_200E_200F_200D_200B_202D_202A_200C_200F_206E_202B_200D_206C_206B_202D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-981742792)); - _206B_206D_206E_202E_200D_206D_202A_202E_202E_202D_200C_200D_202E_206C_206F_206E_206F_202C_202C_202E_200D_200E_202E_200E_202C_202E_200E_200F_200D_200B_202D_202A_200C_200F_206E_202B_200D_206C_206B_202D_202E(builder, AetherCurrentId.ToString()); - _206B_206D_206E_202E_200D_206D_202A_202E_202E_202D_200C_200D_202E_206C_206F_206E_206F_202C_202C_202E_200D_200E_202E_200E_202C_202E_200E_200F_200D_200B_202D_202A_200C_200F_206E_202B_200D_206C_206B_202D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-823827738)); - _206B_206D_206E_202E_200D_206D_202A_202E_202E_202D_200C_200D_202E_206C_206F_206E_206F_202C_202C_202E_200D_200E_202E_200E_202C_202E_200E_200F_200D_200B_202D_202A_200C_200F_206E_202B_200D_206C_206B_202D_202E(builder, IsQuestGated.ToString()); - _206B_206D_206E_202E_200D_206D_202A_202E_202E_202D_200C_200D_202E_206C_206F_206E_206F_202C_202C_202E_200D_200E_202E_200E_202C_202E_200E_200F_200D_200B_202D_202A_200C_200F_206E_202B_200D_206C_206B_202D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1358173620)); - _206B_206D_206E_202E_200D_206D_202A_202E_202E_202D_200C_200D_202E_206C_206F_206E_206F_202C_202C_202E_200D_200E_202E_200E_202C_202E_200E_200F_200D_200B_202D_202A_200C_200F_206E_202B_200D_206C_206B_202D_202E(builder, QuestId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(AetherCurrentInfo? other) - { - int num = (((object)this == other) ? (-291635662) : (-291635660)); - while (true) - { - int num2 = num; - int num3 = -291635658; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = ((!_202E_200D_206B_206D_206C_200F_202B_206B_200D_200E_206E_206D_202B_200B_206D_202E_206A_206B_206F_200E_202E_206B_202D_206A_206E_202D_202E_206B_202E_200E_202A_202E_202C_202B_202A_206D_206A_202C_200D_206D_202E(EqualityContract, other.EqualityContract)) ? (-291635663) : (-291635664)); - break; - case 6: - num = ((!EqualityComparer<uint>.Default.Equals(AetherCurrentId, other.AetherCurrentId)) ? (-291635663) : (-291635657)); - break; - case 7: - return false; - case 2: - num = (((object)other == null) ? (-291635663) : (-291635659)); - break; - case 0: - num = -291635660; - break; - case 1: - num = ((!EqualityComparer<bool>.Default.Equals(IsQuestGated, other.IsQuestGated)) ? (-291635663) : (-291635661)); - break; - case 4: - return true; - case 5: - return EqualityComparer<uint>.Default.Equals(QuestId, other.QuestId); - } - } - } - - bool IEquatable<AetherCurrentInfo>.Equals(AetherCurrentInfo? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200C_202E_200F_200C_200C_206D_206C_206C_206B_206B_202C_206C_200F_202D_206D_202B_206D_200C_202B_206F_206A_206C_206A_200E_200B_206B_206F_200D_206A_200F_202E_206E_202E_202E_202D_206D_202E_206F_200E_206E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202E_200C_200E_200C_206C_202D_206C_200E_206E_206B_206A_200D_202B_206D_206A_206C_200D_206D_200D_202B_200E_202A_202E_202A_206D_202E_200D_202D_206B_206D_202C_202B_206E_202C_206A_200B_206E_202D_206D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206B_206D_206E_202E_200D_206D_202A_202E_202E_202D_200C_200D_202E_206C_206F_206E_206F_202C_202C_202E_200D_200E_202E_200E_202C_202E_200E_200F_200D_200B_202D_202A_200C_200F_206E_202B_200D_206C_206B_202D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206E_200C_202D_206A_200F_206F_206E_200F_206D_206C_202C_202E_206B_206A_200F_200D_202E_202C_200E_202D_200B_206E_202A_206C_202B_200D_200B_202C_206C_206A_200D_200F_202D_202B_206D_202A_206C_200D_200D_206B_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200B_202D_206E_202E_206D_200F_206A_206F_202B_202B_200D_206C_206B_206A_200C_206A_202D_200B_200B_200D_200B_206F_206A_202A_202E_200E_202A_200F_202C_206E_200D_202E_202E_200F_206D_202A_206A_206E_202B_206A_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206F_206E_202E_200D_206B_206A_200F_206F_206F_202D_200B_202D_202C_206F_202C_202C_202A_200B_200D_206D_206F_202E_206A_202C_206C_206D_200C_200D_206B_206A_206B_206C_202C_200E_200D_202A_202B_206A_202E_200F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _202E_200D_206B_206D_206C_200F_202B_206B_200D_200E_206E_206D_202B_200B_206D_202E_206A_206B_206F_200E_202E_206B_202D_206A_206E_202D_202E_206B_202E_200E_202A_202E_202C_202B_202A_206D_206A_202C_200D_206D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +internal sealed record AetherCurrentInfo(uint AetherCurrentId, bool IsQuestGated, uint QuestId); diff --git a/Questionable/Questionable.Data/AetherCurrentPosition.cs b/Questionable/Questionable.Data/AetherCurrentPosition.cs index 99eb8e0..5638fc6 100644 --- a/Questionable/Questionable.Data/AetherCurrentPosition.cs +++ b/Questionable/Questionable.Data/AetherCurrentPosition.cs @@ -1,144 +1,5 @@ -using System; -using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; namespace Questionable.Data; -internal sealed record AetherCurrentPosition(ushort TerritoryId, Vector3 Position, uint DataId) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200C_202C_202C_206A_202C_200B_202A_202C_202D_200D_200B_202C_200B_200F_206D_200B_206F_200E_200F_200E_206C_200B_200D_206A_206A_202B_200E_202D_206C_202B_206B_202E_202D_202E_202D_200E_202D_206F_202B_202C_202E(typeof(AetherCurrentPosition).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202A_200F_200F_200C_206F_206E_200C_202A_200D_206F_206A_206A_206F_202B_206F_202A_206C_206B_202D_206C_206F_200F_200D_206D_200F_206E_206E_200B_206B_202B_206B_200E_202C_200C_202C_200E_202C_202B_206C_202C_202E(); - _206A_200D_206B_200D_200E_206A_206A_200E_202D_206A_202D_200B_206A_202E_202C_200B_202D_206C_206A_202E_206C_206F_202B_206B_206F_200C_206A_202C_202D_202A_200C_200B_206A_202E_206D_206E_200E_206D_202D_206E_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2070971433)); - _206A_200D_206B_200D_200E_206A_206A_200E_202D_206A_202D_200B_206A_202E_202C_200B_202D_206C_206A_202E_206C_206F_202B_206B_206F_200C_206A_202C_202D_202A_200C_200B_206A_202E_206D_206E_200E_206D_202D_206E_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(556540328)); - int num = ((!PrintMembers(stringBuilder)) ? 1289693343 : 1289693340); - while (true) - { - int num2 = num; - int num3 = 1289693341; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1289693340; - break; - case 1: - _202C_202E_200D_206C_202B_202B_206F_200E_206A_200C_202A_202C_206F_202A_202D_200D_200E_206A_206C_206C_200B_206C_200C_202C_202E_202D_202D_200C_206F_202C_200E_206E_206D_206E_202C_206A_200E_202B_206F_200D_202E(stringBuilder, ' '); - num = 1289693343; - break; - case 2: - _202C_202E_200D_206C_202B_202B_206F_200E_206A_200C_202A_202C_206F_202A_202D_200D_200E_206A_206C_206C_200B_206C_200C_202C_202E_202D_202D_200C_206F_202C_200E_206E_206D_206E_202C_206A_200E_202B_206F_200D_202E(stringBuilder, '}'); - return _200E_206B_202C_206D_200F_206E_200F_206B_202B_202E_206F_202C_206B_202B_206C_200B_200F_200D_200C_200E_200D_200B_202E_200B_206E_200E_200D_200C_206A_206F_200D_206A_200C_206C_202D_200D_206C_202C_206F_202C_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200C_200E_206E_206D_206D_200D_200B_200F_200C_202B_206B_200C_202C_200E_202D_202C_206E_206D_200C_206B_206F_202E_206D_200B_206D_206D_202C_202B_206E_206B_200C_200E_202A_202E_202B_200C_206B_206E_200D_206C_202E(); - _206A_200D_206B_200D_200E_206A_206A_200E_202D_206A_202D_200B_206A_202E_202C_200B_202D_206C_206A_202E_206C_206F_202B_206B_206F_200C_206A_202C_202D_202A_200C_200B_206A_202E_206D_206E_200E_206D_202D_206E_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1030915870)); - _206A_200D_206B_200D_200E_206A_206A_200E_202D_206A_202D_200B_206A_202E_202C_200B_202D_206C_206A_202E_206C_206F_202B_206B_206F_200C_206A_202C_202D_202A_200C_200B_206A_202E_206D_206E_200E_206D_202D_206E_202E(builder, TerritoryId.ToString()); - _206A_200D_206B_200D_200E_206A_206A_200E_202D_206A_202D_200B_206A_202E_202C_200B_202D_206C_206A_202E_206C_206F_202B_206B_206F_200C_206A_202C_202D_202A_200C_200B_206A_202E_206D_206E_200E_206D_202D_206E_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-485383452)); - _206A_200D_206B_200D_200E_206A_206A_200E_202D_206A_202D_200B_206A_202E_202C_200B_202D_206C_206A_202E_206C_206F_202B_206B_206F_200C_206A_202C_202D_202A_200C_200B_206A_202E_206D_206E_200E_206D_202D_206E_202E(builder, Position.ToString()); - _206A_200D_206B_200D_200E_206A_206A_200E_202D_206A_202D_200B_206A_202E_202C_200B_202D_206C_206A_202E_206C_206F_202B_206B_206F_200C_206A_202C_202D_202A_200C_200B_206A_202E_206D_206E_200E_206D_202D_206E_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(861260285)); - _206A_200D_206B_200D_200E_206A_206A_200E_202D_206A_202D_200B_206A_202E_202C_200B_202D_206C_206A_202E_206C_206F_202B_206B_206F_200C_206A_202C_202D_202A_200C_200B_206A_202E_206D_206E_200E_206D_202D_206E_202E(builder, DataId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(AetherCurrentPosition? other) - { - int num = (((object)this == other) ? (-861681975) : (-861681973)); - while (true) - { - int num2 = num; - int num3 = -861681974; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? (-861681972) : (-861681969)); - break; - case 6: - return false; - case 7: - return EqualityComparer<uint>.Default.Equals(DataId, other.DataId); - case 5: - num = ((!EqualityComparer<Vector3>.Default.Equals(Position, other.Position)) ? (-861681972) : (-861681971)); - break; - case 0: - num = -861681973; - break; - case 4: - num = ((!_206A_202D_202C_206C_206B_206A_202D_202A_200B_206D_200C_200E_202E_200B_202B_206F_206E_202E_206E_206A_202A_200D_200D_206A_200B_206D_200D_200E_200B_206F_200E_200B_200E_206D_202D_206C_206D_200B_200D_206F_202E(EqualityContract, other.EqualityContract)) ? (-861681972) : (-861681976)); - break; - case 3: - return true; - case 1: - num = (((object)other == null) ? (-861681972) : (-861681970)); - break; - } - } - } - - bool IEquatable<AetherCurrentPosition>.Equals(AetherCurrentPosition? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200C_202C_202C_206A_202C_200B_202A_202C_202D_200D_200B_202C_200B_200F_206D_200B_206F_200E_200F_200E_206C_200B_200D_206A_206A_202B_200E_202D_206C_202B_206B_202E_202D_202E_202D_200E_202D_206F_202B_202C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202A_200F_200F_200C_206F_206E_200C_202A_200D_206F_206A_206A_206F_202B_206F_202A_206C_206B_202D_206C_206F_200F_200D_206D_200F_206E_206E_200B_206B_202B_206B_200E_202C_200C_202C_200E_202C_202B_206C_202C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206A_200D_206B_200D_200E_206A_206A_200E_202D_206A_202D_200B_206A_202E_202C_200B_202D_206C_206A_202E_206C_206F_202B_206B_206F_200C_206A_202C_202D_202A_200C_200B_206A_202E_206D_206E_200E_206D_202D_206E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202C_202E_200D_206C_202B_202B_206F_200E_206A_200C_202A_202C_206F_202A_202D_200D_200E_206A_206C_206C_200B_206C_200C_202C_202E_202D_202D_200C_206F_202C_200E_206E_206D_206E_202C_206A_200E_202B_206F_200D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200E_206B_202C_206D_200F_206E_200F_206B_202B_202E_206F_202C_206B_202B_206C_200B_200F_200D_200C_200E_200D_200B_202E_200B_206E_200E_200D_200C_206A_206F_200D_206A_200C_206C_202D_200D_206C_202C_206F_202C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200C_200E_206E_206D_206D_200D_200B_200F_200C_202B_206B_200C_202C_200E_202D_202C_206E_206D_200C_206B_206F_202E_206D_200B_206D_206D_202C_202B_206E_206B_200C_200E_202A_202E_202B_200C_206B_206E_200D_206C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _206A_202D_202C_206C_206B_206A_202D_202A_200B_206D_200C_200E_202E_200B_202B_206F_206E_202E_206E_206A_202A_200D_200D_206A_200B_206D_200D_200E_200B_206F_200E_200B_200E_206D_202D_206C_206D_200B_200D_206F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +internal sealed record AetherCurrentPosition(ushort TerritoryId, Vector3 Position, uint DataId); diff --git a/Questionable/Questionable.Data/AlliedSocietyData.cs b/Questionable/Questionable.Data/AlliedSocietyData.cs index c8f934c..43a2ec3 100644 --- a/Questionable/Questionable.Data/AlliedSocietyData.cs +++ b/Questionable/Questionable.Data/AlliedSocietyData.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; -using System.Runtime.CompilerServices; using Questionable.Model; using Questionable.Model.Questing; using SmartNav.Model; @@ -10,274 +9,298 @@ namespace Questionable.Data; internal sealed class AlliedSocietyData { - public ReadOnlyDictionary<ushort, AlliedSocietyMountConfiguration> Mounts { get; } + public ReadOnlyDictionary<ushort, AlliedSocietyMountConfiguration> Mounts { get; } = new Dictionary<ushort, AlliedSocietyMountConfiguration> + { + { + 66, + new AlliedSocietyMountConfiguration(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(1016093u), EAetheryteLocation.SeaOfCloudsOkZundu) + }, + { + 79, + new AlliedSocietyMountConfiguration(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(1017031u), EAetheryteLocation.DravanianForelandsAnyxTrine) + }, + { + 88, + new AlliedSocietyMountConfiguration(new global::_003C_003Ez__ReadOnlyArray<uint>(new uint[2] { 1017470u, 1017432u }), EAetheryteLocation.ChurningMistsZenith) + }, + { + 89, + new AlliedSocietyMountConfiguration(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(1017322u), EAetheryteLocation.ChurningMistsZenith) + }, + { + 147, + new AlliedSocietyMountConfiguration(new global::_003C_003Ez__ReadOnlyArray<uint>(new uint[2] { 1024777u, 1024912u }), EAetheryteLocation.FringesPeeringStones) + }, + { + 369, + new AlliedSocietyMountConfiguration(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(1051798u), EAetheryteLocation.KozamaukaDockPoga) + }, + { + 391, + new AlliedSocietyMountConfiguration(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(1052562u), EAetheryteLocation.YakTelMamook) + }, + { + 24, + new AlliedSocietyMountConfiguration(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(1008332u), EAetheryteLocation.EastShroudHawthorneHut) + }, + { + 23, + new AlliedSocietyMountConfiguration(new global::_003C_003Ez__ReadOnlyArray<uint>(new uint[4] { 1008327u, 1005848u, 1005860u, 1005581u }), EAetheryteLocation.SouthernThanalanLittleAlaMhigo) + } + }.AsReadOnly(); public EAlliedSociety GetCommonAlliedSocietyTurnIn(ElementId elementId) { - QuestId questId = elementId as QuestId; - int num = (((object)questId == null) ? (-47564873) : (-47564876)); - EAlliedSociety result = default(EAlliedSociety); - ushort num5 = default(ushort); - while (true) + if (elementId is QuestId { Value: var value }) { - int num2 = num; - int num3 = -47564884; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + switch (value) { - case 12: - num = -47564876; - break; - case 13: - num = -47564884; - break; - case 0: - result = EAlliedSociety.None; - num = -47564890; - break; - case 22: - num = ((num5 <= 5226) ? (-47564880) : (-47564865)); - break; - case 18: - result = EAlliedSociety.YokHuy; - num = -47564890; - break; - case 24: - num5 = _206B_206E_202C_202C_200B_206A_206F_200C_202B_202D_206A_200C_200C_202D_206D_200D_202E_202C_202D_200D_206C_202A_206D_206F_202B_206B_202A_206E_206D_202B_206E_206E_200B_206C_202C_200F_200C_206F_206C_202B_202E((ElementId)questId); - num = ((num5 < 2290) ? (-47564874) : (-47564881)); - break; - case 10: - return result; - case 19: - num = -47564884; - break; - case 9: - num = ((num5 < 5199) ? (-47564882) : (-47564870)); - break; - case 28: - result = EAlliedSociety.Pelupelu; - num = -47564890; - break; - case 1: - num = ((num5 <= 5288) ? (-47564878) : (-47564868)); - break; - case 7: - num = ((num5 < 5330) ? (-47564883) : (-47564888)); - break; - case 25: - result = EAlliedSociety.Amaljaa; - num = -47564890; - break; - case 6: - num = -47564884; - break; - case 23: - num = ((num5 <= 2280) ? (-47564887) : (-47564892)); - break; - case 3: - num = ((num5 < 5261) ? (-47564891) : (-47564885)); - break; - case 15: - num = ((num5 > 1251) ? (-47564884) : (-47564875)); - break; - case 27: + case 1222: + case 1223: + case 1224: + case 1225: + case 1226: + case 1227: + case 1228: + case 1229: + case 1230: + case 1231: + case 1232: + case 1233: + case 1234: + case 1235: + case 1236: + case 1237: + case 1238: + case 1239: + case 1240: + case 1241: + case 1242: + case 1243: + case 1244: + case 1245: + case 1246: + case 1247: + case 1248: + case 1249: + case 1250: + case 1251: + return EAlliedSociety.Amaljaa; + case 2171: + case 2172: + case 2173: + case 2174: + case 2175: + case 2176: + case 2177: + case 2178: + case 2179: + case 2180: + case 2181: + case 2182: + case 2183: + case 2184: + case 2185: + case 2186: + case 2187: + case 2188: + case 2189: + case 2190: + case 2191: + case 2192: + case 2193: + case 2194: + case 2195: + case 2196: + case 2197: + case 2198: + case 2199: + case 2200: + return EAlliedSociety.VanuVanu; + case 2261: + case 2262: + case 2263: + case 2264: + case 2265: + case 2266: + case 2267: + case 2268: + case 2269: + case 2270: + case 2271: + case 2272: + case 2273: + case 2274: + case 2275: + case 2276: + case 2277: + case 2278: + case 2279: + case 2280: + return EAlliedSociety.Vath; + case 2290: + case 2291: + case 2292: + case 2293: + case 2294: + case 2295: + case 2296: + case 2297: + case 2298: + case 2299: + case 2300: + case 2301: + case 2302: + case 2303: + case 2304: + case 2305: + case 2306: + case 2307: + case 2308: + case 2309: + case 2310: + case 2311: + case 2312: + case 2313: + case 2314: + case 2315: + case 2316: + case 2317: + case 2318: + case 2319: + return EAlliedSociety.Moogles; + case 5199: + case 5200: + case 5201: + case 5202: + case 5203: + case 5204: + case 5205: + case 5206: + case 5207: + case 5208: + case 5209: + case 5210: + case 5211: + case 5212: + case 5213: + case 5214: + case 5215: + case 5216: + case 5217: + case 5218: + case 5219: + case 5220: + case 5221: + case 5222: + case 5223: + case 5224: + case 5225: + case 5226: + return EAlliedSociety.Pelupelu; + case 5261: + case 5262: + case 5263: + case 5264: + case 5265: + case 5266: + case 5267: + case 5268: + case 5269: + case 5270: + case 5271: + case 5272: + case 5273: + case 5274: + case 5275: + case 5276: + case 5277: + case 5278: + case 5279: + case 5280: + case 5281: + case 5282: + case 5283: + case 5284: + case 5285: + case 5286: + case 5287: + case 5288: + return EAlliedSociety.MamoolJa; + case 5330: + case 5331: + case 5332: + case 5333: + case 5334: + case 5335: + case 5336: + case 5337: + case 5338: + case 5339: + case 5340: + case 5341: + case 5342: + case 5343: + case 5344: + case 5345: + case 5346: + case 5347: + case 5348: + case 5349: + case 5350: + case 5351: + case 5352: + case 5353: + case 5354: + case 5355: + case 5356: + case 5357: + case 5358: + case 5359: + case 5360: + case 5361: + case 5362: + case 5363: + return EAlliedSociety.YokHuy; + default: return EAlliedSociety.None; - case 21: - num = ((num5 < 2261) ? (-47564889) : (-47564869)); - break; - case 30: - result = EAlliedSociety.MamoolJa; - num = -47564890; - break; - case 8: - num = -47564884; - break; - case 20: - result = EAlliedSociety.Moogles; - num = -47564890; - break; - case 16: - num = -47564884; - break; - case 4: - num = ((num5 <= 5363) ? (-47564866) : (-47564886)); - break; - case 17: - result = EAlliedSociety.VanuVanu; - num = -47564890; - break; - case 5: - result = EAlliedSociety.Vath; - num = -47564890; - break; - case 14: - num = ((num5 < 1222) ? (-47564884) : (-47564893)); - break; - case 26: - num = ((num5 < 2171) ? (-47564894) : (-47564871)); - break; - case 29: - num = -47564884; - break; - case 2: - num = ((num5 <= 2319) ? (-47564872) : (-47564895)); - break; - case 11: - num = ((num5 <= 2200) ? (-47564867) : (-47564879)); - break; } } + return EAlliedSociety.None; } public void GetCommonAlliedSocietyNpcs(EAlliedSociety alliedSociety, out uint[] normalNpcs, out uint[] mountNpcs) { - uint[] array; - uint[] array2; - uint[] array3; switch (alliedSociety) { - default: - { - int num = -1576121943; - while (true) - { - int num2 = num; - int num3 = -1576121944; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - normalNpcs = new uint[1] { 1054635u }; - mountNpcs = Array.Empty<uint>(); - return; - case 1: - goto IL_008c; - case 7: - goto end_IL_0033; - case 0: - goto IL_00c2; - case 3: - num = -1576121943; - break; - case 6: - goto IL_00e8; - case 2: - goto IL_00f7; - case 4: - goto IL_0112; - case 8: - goto end_IL_0003; - case 9: - num = -1576121938; - break; - } - continue; - IL_008c: - num = ((alliedSociety == EAlliedSociety.YokHuy) ? (-1576121939) : (-1576121951)); - continue; - end_IL_0033: - break; - } - goto case EAlliedSociety.Vath; - } + case EAlliedSociety.Amaljaa: + normalNpcs = Array.Empty<uint>(); + mountNpcs = new uint[4] { 1008327u, 1005848u, 1005860u, 1005581u }; + break; + case EAlliedSociety.Ixal: + normalNpcs = new uint[6] { 1008945u, 1009218u, 1009217u, 1009219u, 1009220u, 1009221u }; + mountNpcs = Array.Empty<uint>(); + break; + case EAlliedSociety.VanuVanu: + normalNpcs = new uint[3] { 1016088u, 1016091u, 1016092u }; + mountNpcs = new uint[1] { 1016093u }; + break; case EAlliedSociety.Vath: normalNpcs = Array.Empty<uint>(); mountNpcs = new uint[1] { 1017031u }; - return; - case EAlliedSociety.Moogles: - goto IL_00c2; - case EAlliedSociety.Sylphs: - case EAlliedSociety.Kobolds: - case EAlliedSociety.Sahagin: - goto IL_00e8; - case EAlliedSociety.Ixal: - goto IL_00f7; - case EAlliedSociety.Amaljaa: - goto IL_0112; - case EAlliedSociety.VanuVanu: break; - IL_0112: + case EAlliedSociety.Moogles: normalNpcs = Array.Empty<uint>(); - array = new uint[4]; - _200B_202A_206C_202E_206E_202A_206D_206E_206C_206F_202D_206E_206B_200F_200E_200E_202C_202E_206D_202C_202C_202E_202E_206F_200E_202B_202A_200C_202B_206F_206B_200B_200C_200D_206E_206D_200D_202C_206B_200C_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - mountNpcs = array; - return; - IL_00f7: - array2 = new uint[6]; - _200B_202A_206C_202E_206E_202A_206D_206E_206C_206F_202D_206E_206B_200F_200E_200E_202C_202E_206D_202C_202C_202E_202E_206F_200E_202B_202A_200C_202B_206F_206B_200B_200C_200D_206E_206D_200D_202C_206B_200C_202E((Array)array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - normalNpcs = array2; + mountNpcs = new uint[3] { 1017322u, 1017470u, 1017471u }; + break; + case EAlliedSociety.YokHuy: + normalNpcs = new uint[1] { 1054635u }; mountNpcs = Array.Empty<uint>(); - return; - IL_00e8: + break; + default: normalNpcs = Array.Empty<uint>(); mountNpcs = Array.Empty<uint>(); - return; - IL_00c2: - normalNpcs = Array.Empty<uint>(); - array3 = new uint[3]; - _200B_202A_206C_202E_206E_202A_206D_206E_206C_206F_202D_206E_206B_200F_200E_200E_202C_202E_206D_202C_202C_202E_202E_206F_200E_202B_202A_200C_202B_206F_206B_200B_200C_200D_206E_206D_200D_202C_206B_200C_202E((Array)array3, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - mountNpcs = array3; - return; - end_IL_0003: break; } - uint[] array4 = new uint[3]; - _200B_202A_206C_202E_206E_202A_206D_206E_206C_206F_202D_206E_206B_200F_200E_200E_202C_202E_206D_202C_202C_202E_202E_206F_200E_202B_202A_200C_202B_206F_206B_200B_200C_200D_206E_206D_200D_202C_206B_200C_202E((Array)array4, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - normalNpcs = array4; - mountNpcs = new uint[1] { 1016093u }; - } - - public AlliedSocietyData() - { - Dictionary<ushort, AlliedSocietyMountConfiguration> dictionary = new Dictionary<ushort, AlliedSocietyMountConfiguration> - { - { - 66, - new AlliedSocietyMountConfiguration(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(1016093u), EAetheryteLocation.SeaOfCloudsOkZundu) - }, - { - 79, - new AlliedSocietyMountConfiguration(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(1017031u), EAetheryteLocation.DravanianForelandsAnyxTrine) - }, - { - 88, - new AlliedSocietyMountConfiguration(new global::_003C_003Ez__ReadOnlyArray<uint>(new uint[2] { 1017470u, 1017432u }), EAetheryteLocation.ChurningMistsZenith) - }, - { - 89, - new AlliedSocietyMountConfiguration(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(1017322u), EAetheryteLocation.ChurningMistsZenith) - }, - { - 147, - new AlliedSocietyMountConfiguration(new global::_003C_003Ez__ReadOnlyArray<uint>(new uint[2] { 1024777u, 1024912u }), EAetheryteLocation.FringesPeeringStones) - }, - { - 369, - new AlliedSocietyMountConfiguration(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(1051798u), EAetheryteLocation.KozamaukaDockPoga) - }, - { - 391, - new AlliedSocietyMountConfiguration(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(1052562u), EAetheryteLocation.YakTelMamook) - }, - { - 24, - new AlliedSocietyMountConfiguration(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(1008332u), EAetheryteLocation.EastShroudHawthorneHut) - } - }; - uint[] array = new uint[4]; - _200B_202A_206C_202E_206E_202A_206D_206E_206C_206F_202D_206E_206B_200F_200E_200E_202C_202E_206D_202C_202C_202E_202E_206F_200E_202B_202A_200C_202B_206F_206B_200B_200C_200D_206E_206D_200D_202C_206B_200C_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - dictionary.Add(23, new AlliedSocietyMountConfiguration(new global::_003C_003Ez__ReadOnlyArray<uint>(array), EAetheryteLocation.SouthernThanalanLittleAlaMhigo)); - Mounts = dictionary.AsReadOnly(); - base._002Ector(); - } - - static ushort _206B_206E_202C_202C_200B_206A_206F_200C_202B_202D_206A_200C_200C_202D_206D_200D_202E_202C_202D_200D_206C_202A_206D_206F_202B_206B_202A_206E_206D_202B_206E_206E_200B_206C_202C_200F_200C_206F_206C_202B_202E(ElementId P_0) - { - return P_0.Value; - } - - static void _200B_202A_206C_202E_206E_202A_206D_206E_206C_206F_202D_206E_206B_200F_200E_200E_202C_202E_206D_202C_202C_202E_202E_206F_200E_202B_202A_200C_202B_206F_206B_200B_200C_200D_206E_206D_200D_202C_206B_200C_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); } } diff --git a/Questionable/Questionable.Data/AlliedSocietyMountConfiguration.cs b/Questionable/Questionable.Data/AlliedSocietyMountConfiguration.cs index ff5ea8c..a8e5422 100644 --- a/Questionable/Questionable.Data/AlliedSocietyMountConfiguration.cs +++ b/Questionable/Questionable.Data/AlliedSocietyMountConfiguration.cs @@ -1,144 +1,6 @@ -using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using SmartNav.Model; namespace Questionable.Data; -public sealed record AlliedSocietyMountConfiguration(IReadOnlyList<uint> IssuerDataIds, EAetheryteLocation ClosestAetheryte) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200F_206F_206F_206C_202B_206A_200C_200C_202B_206E_200B_202D_202D_200F_200B_206C_200B_200D_206F_202D_206E_206F_206E_206B_202D_200D_206D_200F_206C_202D_200B_202B_200F_200B_200B_206D_202B_202C_202C_206C_202E(typeof(AlliedSocietyMountConfiguration).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206D_200B_202B_200D_200D_206C_206C_206C_200F_202A_202C_202E_206A_200E_206D_206C_206D_202A_206D_206B_206B_202B_202E_202E_200E_202E_206A_200C_202C_206B_200E_200E_200F_200B_206B_206B_202B_200B_200D_206A_202E(); - _200E_202D_200E_206D_206A_206B_202E_200F_202D_202E_200C_200E_200B_206D_200E_200E_200E_200C_206F_202C_200C_206A_202B_206A_202C_206C_200C_202D_206A_202B_206D_200B_206A_206F_206A_200E_206F_202D_206A_202A_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1360404668)); - _200E_202D_200E_206D_206A_206B_202E_200F_202D_202E_200C_200E_200B_206D_200E_200E_200E_200C_206F_202C_200C_206A_202B_206A_202C_206C_200C_202D_206A_202B_206D_200B_206A_206F_206A_200E_206F_202D_206A_202A_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? (-808815067) : (-808815066)); - while (true) - { - int num2 = num; - int num3 = -808815068; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -808815066; - break; - case 2: - _206B_200E_206E_202C_200F_206E_200E_200F_202E_200D_200C_206A_206E_200E_202C_202D_200B_202E_202B_202D_206B_202A_206A_206A_200D_202C_206D_200C_202B_202E_206E_206A_202A_202E_206E_206D_202D_202A_206E_206F_202E(stringBuilder, ' '); - num = -808815067; - break; - case 1: - _206B_200E_206E_202C_200F_206E_200E_200F_202E_200D_200C_206A_206E_200E_202C_202D_200B_202E_202B_202D_206B_202A_206A_206A_200D_202C_206D_200C_202B_202E_206E_206A_202A_202E_206E_206D_202D_202A_206E_206F_202E(stringBuilder, '}'); - return _202D_200D_202C_206A_200D_202E_206C_206A_206C_206A_202C_206F_200C_206F_200D_202A_206D_202E_206A_206B_202A_200E_200B_202E_202D_202C_200D_206A_202D_200E_206A_206C_200E_200F_200B_206D_202C_202E_206A_206E_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200D_200C_206D_200D_206F_200C_200F_202A_200E_202C_206E_202E_206F_206E_206A_202C_206B_206F_202B_206F_200E_206D_202E_202B_200C_202C_206D_200E_206F_206A_200F_206A_206F_200F_206D_200E_202A_202E_206C_206A_202E(); - _200E_202D_200E_206D_206A_206B_202E_200F_202D_202E_200C_200E_200B_206D_200E_200E_200E_200C_206F_202C_200C_206A_202B_206A_202C_206C_200C_202D_206A_202B_206D_200B_206A_206F_206A_200E_206F_202D_206A_202A_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1310547347)); - _200D_200E_206A_206E_202B_206C_206A_200D_202E_206F_202E_202B_200B_200D_202E_202A_200C_202B_206B_206A_206E_202B_202B_206A_202E_206E_206C_206A_206E_202C_206A_200C_206F_202C_202B_206F_202C_206C_206F_206B_202E(builder, (object)IssuerDataIds); - _200E_202D_200E_206D_206A_206B_202E_200F_202D_202E_200C_200E_200B_206D_200E_200E_200E_200C_206F_202C_200C_206A_202B_206A_202C_206C_200C_202D_206A_202B_206D_200B_206A_206F_206A_200E_206F_202D_206A_202A_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1251262177)); - _200E_202D_200E_206D_206A_206B_202E_200F_202D_202E_200C_200E_200B_206D_200E_200E_200E_200C_206F_202C_200C_206A_202B_206A_202C_206C_200C_202D_206A_202B_206D_200B_206A_206F_206A_200E_206F_202D_206A_202A_202E(builder, ClosestAetheryte.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(AlliedSocietyMountConfiguration? other) - { - int num = (((object)this == other) ? 1962730095 : 1962730088); - while (true) - { - int num2 = num; - int num3 = 1962730093; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return false; - case 5: - num = (((object)other == null) ? 1962730094 : 1962730089); - break; - case 4: - num = ((!_202D_206A_200C_206E_202A_206F_206B_200B_200F_202A_200D_206D_200B_202D_202B_202E_200D_202D_206C_206D_206D_200F_206E_206C_200E_202A_206B_202B_202E_202E_200E_200C_200B_200F_202A_206B_206C_200D_200C_206C_202E(EqualityContract, other.EqualityContract)) ? 1962730094 : 1962730092); - break; - case 1: - num = ((!EqualityComparer<IReadOnlyList<uint>>.Default.Equals(IssuerDataIds, other.IssuerDataIds)) ? 1962730094 : 1962730091); - break; - case 2: - return true; - case 6: - return EqualityComparer<EAetheryteLocation>.Default.Equals(ClosestAetheryte, other.ClosestAetheryte); - case 0: - num = 1962730088; - break; - } - } - } - - bool IEquatable<AlliedSocietyMountConfiguration>.Equals(AlliedSocietyMountConfiguration? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200F_206F_206F_206C_202B_206A_200C_200C_202B_206E_200B_202D_202D_200F_200B_206C_200B_200D_206F_202D_206E_206F_206E_206B_202D_200D_206D_200F_206C_202D_200B_202B_200F_200B_200B_206D_202B_202C_202C_206C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206D_200B_202B_200D_200D_206C_206C_206C_200F_202A_202C_202E_206A_200E_206D_206C_206D_202A_206D_206B_206B_202B_202E_202E_200E_202E_206A_200C_202C_206B_200E_200E_200F_200B_206B_206B_202B_200B_200D_206A_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200E_202D_200E_206D_206A_206B_202E_200F_202D_202E_200C_200E_200B_206D_200E_200E_200E_200C_206F_202C_200C_206A_202B_206A_202C_206C_200C_202D_206A_202B_206D_200B_206A_206F_206A_200E_206F_202D_206A_202A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206B_200E_206E_202C_200F_206E_200E_200F_202E_200D_200C_206A_206E_200E_202C_202D_200B_202E_202B_202D_206B_202A_206A_206A_200D_202C_206D_200C_202B_202E_206E_206A_202A_202E_206E_206D_202D_202A_206E_206F_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202D_200D_202C_206A_200D_202E_206C_206A_206C_206A_202C_206F_200C_206F_200D_202A_206D_202E_206A_206B_202A_200E_200B_202E_202D_202C_200D_206A_202D_200E_206A_206C_200E_200F_200B_206D_202C_202E_206A_206E_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200D_200C_206D_200D_206F_200C_200F_202A_200E_202C_206E_202E_206F_206E_206A_202C_206B_206F_202B_206F_200E_206D_202E_202B_200C_202C_206D_200E_206F_206A_200F_206A_206F_200F_206D_200E_202A_202E_206C_206A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200D_200E_206A_206E_202B_206C_206A_200D_202E_206F_202E_202B_200B_200D_202E_202A_200C_202B_206B_206A_206E_202B_202B_206A_202E_206E_206C_206A_206E_202C_206A_200C_206F_202C_202B_206F_202C_206C_206F_206B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202D_206A_200C_206E_202A_206F_206B_200B_200F_202A_200D_206D_200B_202D_202B_202E_200D_202D_206C_206D_206D_200F_206E_206C_200E_202A_206B_202B_202E_202E_200E_200C_200B_200F_202A_206B_206C_200D_200C_206C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +public sealed record AlliedSocietyMountConfiguration(IReadOnlyList<uint> IssuerDataIds, EAetheryteLocation ClosestAetheryte); diff --git a/Questionable/Questionable.Data/AutoHookPresetData.cs b/Questionable/Questionable.Data/AutoHookPresetData.cs index ee2d026..be72b16 100644 --- a/Questionable/Questionable.Data/AutoHookPresetData.cs +++ b/Questionable/Questionable.Data/AutoHookPresetData.cs @@ -8,57 +8,52 @@ internal sealed class AutoHookPresetData public static readonly IReadOnlyDictionary<QuestId, string> FishingPresets = new Dictionary<QuestId, string> { { - _200E_206E_202A_206D_200F_200B_200B_202E_200C_206F_206E_202B_206C_200E_206C_202C_206F_200C_202E_202A_202E_200F_200B_206E_206D_202B_200E_200C_202C_200F_206D_206B_200D_200C_200B_202E_206D_206E_202E_206B_202E((ushort)1109), - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1113836295) + new QuestId(1109), + "AH6_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" }, { - _200E_206E_202A_206D_200F_200B_200B_202E_200C_206F_206E_202B_206C_200E_206C_202C_206F_200C_202E_202A_202E_200F_200B_206E_206D_202B_200E_200C_202C_200F_206D_206B_200D_200C_200B_202E_206D_206E_202E_206B_202E((ushort)1111), - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(326172132) + new QuestId(1111), + "AH6_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" }, { - _200E_206E_202A_206D_200F_200B_200B_202E_200C_206F_206E_202B_206C_200E_206C_202C_206F_200C_202E_202A_202E_200F_200B_206E_206D_202B_200E_200C_202C_200F_206D_206B_200D_200C_200B_202E_206D_206E_202E_206B_202E((ushort)1112), - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(817129807) + new QuestId(1112), + "AH6_H4sIAAAAAAAACu1c33ObOBD+VzJ6hg4YsI3fHLfpZSZtOrEzeej0QYjF1gQjThJJfZn87zcStjG/WsfH9dwb3uyVkL9dfeyuWS0vaJpJNsNCilm0RJMX9CHBQQzTOEYTyTMw0HuWyBlOCMSfGCOrnfgOCBZymtA1lpQl+Qw0iXAswECLjCczFsdA5G0U7cWzVbY+7pIHKlcs0+tX5imwNzQBBfZ6mTAOJVw5/nD39TpEk8HYN9DHdLHiIFYsDtHEalXrC6eMU7lBE9tA1+LDdxJnIYSFOJ92sNo0YE+wk89YElKl3BwkmiRZHL/miLc/8oL0h0Fh6XCvmIY6HFeg2tZRYLtD2wjLH51iQatTEyrylOxW7LBrW+5pdmtGuFX97RBz/rbtrmtb9gl2HHRqxnmCl0uaLH8A0joBpNPtXjMeUhzrezx5Ar4T1LYo9wALuoYHmoTseT/QpNrQdo+3/+0TcILTOsRDrd1u+XNFxerDBkTNt/1AKde2vIpSnnfMjg27xf4JP8J8RSN5iam+A5RA7ARzicmjQBOvxcEMx3UtjtDB71aHL1hSSIiOLXcQqWs/YB5vFL80V1o2YFiFPjzK+Qw6Rs/pXzDDMg80bWauYh0c5yidbrEuVjim+FFc4SfGFdySYMcWxyjL74CwJ+BoYiuGN4X64bgWCY5Sr+Ob4ZIuP2LFmRc0TZYxcLFTadBMImdkubWdOQb4uOO7OIslXTH22BoeBpZXTafsI4B2lwsUzr45f/kuOS4ls3uG3IEAOWNZIoF/4erL/Bmne/WuGCegnZWW5tdoYaikOb9s19A58y0BnGh/XTFSaXAax3PJUtE8Ok+ZXtWqyJWGTfKmWLTgdLkELtDk6zcD3Sf0z0xfi0ahh31CRubI8YnpDiJsYuJZZhCEDgkDD48sH72qXZkmLNmsWVagvKFC3kZKabVuzY5qQOHRYWpvlZuMwycQAi8BTRAy0Gd9B6AZZ88XV/EG5RcuNqnypa8G+sz4Gsd/bMl2B39mlEM4l1gqKJaBdu74AbCeoqYKkFWL59+3g4d7txXlv+jaI99A9wI0xdP8AjUkLrV/5/v17gUU0NSM6oTy6CeaoIn1zqrJ8fet/F7AFw6ECsqStjVrE4pl60Olldkz8ChrBVsdP1i3OnK47FxCHGPetmpluFi0OrBfs4m8u1lNY2VjNqdhFbs0Tqoo2TSngrnRrey4OJec5clzlY2H/z9/TkbL6cl4LmR8QWvtb5ba2a11QCP6s0QTdEml/oPBZ++RgVI1naPJV/edZTjjd9a3VwNtA9brNwPh4iPsyfMb8vwGlpCEmG86cLw913vHezIh7wW8Z9mWZ0WGAvmfZUFw2jSei96eOGxHSgQeDPvE4Wx89W+XOORMPCFt6Kl45jlsnzZUWX5i0tAz/cyZ/ts53XsBC777k9+cNDSM56KOkoaRN+j/4vUMPpXBORe7Sht6Mp6TO+0ThyrPu0wceq6fE9d/u9RBqc8yeaDPKlvXhPcCZpmQbJ2XK0pphD6hlPG8jK8+HJQz8xrZVEpYp7JITDIOC8yXCkZLldkZeX79jMsvL7yxTDYZ9sBGjZdeJzLTwrZqj6cOPp1e72lyBH3Bp/cD/2rB56107B+D92Hpv6rL9Izsn7F0/4ylL8z0Jzr+t4WZ/nl1f7ro13KxL5/0h93OwjX25ZP+uOb/u3zSP1PuDw//ajb2RY7+NPu5uMe+yNF9kUN1+kwjCbzoMzooo7FUnT2hyXIuIdVHzOfPdB1gKvPQqaKUKsdthUU1qfGntrP2dZU3Xf2ZSRptbpN5RggIXaaqBUayYrMVlvuGnn0HP5YL+K7OxSMDvacijfFGtbotGBbFz+4ltblaqgFQol8DUJy+Kc+/irFYLbB4DDC/JgfzLjlNdHfdFeOw5CxLCtiXAOmBXlq63ZmmHT1ol3L9kBAvckyXRKHpBrZv4iAamuNhMMTegLjjsYPUqf68N2pbbPu6F+T9UPVeqcM+Kdf3vPY+qQfM189YAr9YcJbJUruU/RN6XYeQSEpwrGqPra17nl9tMXSO6hTusMdwnvEIE5jH6qF0K0zvtB5Vrzuc/fsa/lGpeJ5iDipOYXVzvrS2vHpveGuDupOuwwWbrYA81lvxB1aHu3/+XbDaN7C8uJN7F9Nu9y2fWQIlh+LoIIJTJWnwJ3l37G59ZKqV4Al4+XUE9aBmDdQbEfSbC35y5MnKW6zaOqb6ENVqsrwrTfcD42y5yneu6E17UqmEZyC6DThHtKfNt0RozCafcZqz4ScBFAeuF42dkWmTsWe6QTAyfQ9j03ZscEKCI+wHOoAqSob7xbaNy9fiY8wCBb3EwC19b54uBta7i+mF0vqCJhd/MHnxoGIlKmHwvSEMfH9k4gHYpusHI3PsEdt0bRIQB3w78h30+jeT1C0A9UgAAA==" }, { - _200E_206E_202A_206D_200F_200B_200B_202E_200C_206F_206E_202B_206C_200E_206C_202C_206F_200C_202E_202A_202E_200F_200B_206E_206D_202B_200E_200C_202C_200F_206D_206B_200D_200C_200B_202E_206D_206E_202E_206B_202E((ushort)1113), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1889300079) + new QuestId(1113), + "AH6_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" }, { - _200E_206E_202A_206D_200F_200B_200B_202E_200C_206F_206E_202B_206C_200E_206C_202C_206F_200C_202E_202A_202E_200F_200B_206E_206D_202B_200E_200C_202C_200F_206D_206B_200D_200C_200B_202E_206D_206E_202E_206B_202E((ushort)1114), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1472798990) + new QuestId(1114), + "AH6_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" }, { - _200E_206E_202A_206D_200F_200B_200B_202E_200C_206F_206E_202B_206C_200E_206C_202C_206F_200C_202E_202A_202E_200F_200B_206E_206D_202B_200E_200C_202C_200F_206D_206B_200D_200C_200B_202E_206D_206E_202E_206B_202E((ushort)1115), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(648481211) + new QuestId(1115), + "AH6_H4sIAAAAAAAACu1cyW7jOBD9lYBnK9BiycvNcZKeANkQOcgh6AMtlWwisqgmqSwT5N8HJL3KUrfj0fQ4Dd7s4uJXxadiUcXyOxoUgg4xF3yYTFD/HZ1leJzCIE1RX7ACWuiUZmKIswjSK0qj6UJ8BxHmYpCRGRaEZroH6ic45dBCo4JlQ5qmEImbJFmKh9NittuQByKmtFDzl/pJsJckAwn2YpJRBhu4NP548fUiRn2322uhb/loyoBPaRqjvl2r1i0jlBHxhvpOC13ws9coLWKIV2LdbW22wZg+w0I+pFlMpHIhCAlwpn5rgvqPi88R6j9+byGsR3x8byFA/axI048PrdsczjtSH9zVmsRLEyilgm5JKcfeSa0G9FJwW9Wwep19bG03BkqaUNKszm5tx27vZ7hqiPOpP49RU/0nMJ09DOk2ascww5MJySY/AWnvAdJrdrEpiwlOlTvInoEtBFtLpJ3FiMzggWQxfVk2VLiMwGnvbv6bZ2ARzrcRrivdbpY+54RPz96Ab3nBsk6by+WXlPL9XRYsaBb7FX6CcEoScYKJegCkgC8EocDRE0d9v8bBBN1tLXbQodesDrdYEMgitQvdQSLHnmGWvkl6Ka7ULEBQhh7s5HvchtEz8jcMsdAbTZ2Zy1jd3fyk1yzW0RSnBD/xc/xMmYS7IViwxWttyu8gos/AUN+RDK/TsLwT7KRfw0/DCZl8w5I072iQTVJgfKGTWw3c69jtraXZBXi34ce4SAWZUvpUuz24tl+OvJwdgDYXDKycfXUA8yoY3oh7l5vAHXAQQ1pkAtgtk1/CF5wv1TunLALlrZRUj1HCWEo1vyS9ZHh9EwHOlMMuGWmjcZCmoaA5r24Nc6pmtUtyqWGVvGozGjEymQDjOgK9z8iPQo1FHkAQeEHPAqcTWO0OuFYXY9/ynCQKfKfTCRIHfchVGWQ0e5vRYoXyknBxk0il5bxbdpQNEo/ap5ZWuSwYXAHneAKoj1ALXasnAN3RNCXZ5CgUNAOkR4/eculRP1romrIZTv+aM+4OfhSEQRwKLCQeu4UWTvkBsOoiu3IQZbPr7/PG9QWci/Qvtp1Or4XuOSie53qAbOInysuz5Xz3HFbQZI9yh83WK5Khvn1sb8nx61x+z+GWQUQ4oVndnFsdVtNuN23MTF+AJUUt2HL72rzllvVpQwFpilndrKXm1aTlhuWcVQxe9Kpq2zRmdTBWsktlp5KSVX1KmCt9y4KLoWBUR9BlNq6fV39NRtszZDwUMm6d6x19rn9HAvXRCRHqlMGGp6iFctmdof5j59hueb1j+/uHOvIvTv8VLwK+JM8vYQJZjNlbA47XcN043r0Jec/hlBZznq3CFNBHZh7hvKpdiz4fOMxbNgjsBiZwOBhf/eUCB83EPcIGQ8UDj2FN2FBm+Z5Bg2H6gTP9yzndew4jtjjkVwcNFe1a1FDQ0PFdc8QzDN6XwZqLTYUNhoyH5E5N4FDmeZOBg+H6IXH9y4UOUn1aiDV9psVsS3jPYVhwQWc6XbERRqgbTQXTyXz5YS2pqRNlAyFglotVYFIwGGE2kTBq0ptex+9tX3T57dk3Wogqw67ZqHLoRSYKJazL9vjy+tP++Z4qR2ASPsYP/KcJn8/S0bwGN9vS/5WXMYw071iaf8diEjPmRscfm5gx76vN7aLfy0WTPjGX3Q7CNZr0ibmu+WenT8w7ZXN5+Hez0SQ5zG32Q3GPJsnRfJJDlvsMEgFsVWy0lkajubx7QrJJKCBXV8zDFzIbYyL01il3KZmOmwtX2aTKn5r3WuZVPjX6mgqSvN1kYRFFwFWaamtjjKZ0OMViWdWzrPjHYgSv8l48aqFTwvMUv8l6txHFfPWzS8lWXyVVAEik/jZgdftms/95ivl0hPnTGLOLaK3fCSOZKrE7pwwmjBbZCvYJQL6ml5LOV6ZqRddqpsbdDrjtpG0FiWdb7QB6VtezAwucKGg7cbfbhQjJW/26QGqebHtcCnRR1HbB1HqxlG97Xn2x1ClwYOJoiEUix6xXSzm/YNdFDJkgEU5l6rG2fM/vlcsMvZ3KhRusMwwLluAIwlS+k66F6e9XqOo3h9P8acO/yhSHOWYgtyksn8332rJX/xP/3CAfpIt4RIdTiJ626/Fdu8HVP/xKWOUbqM7taOdiOfWu5bpcfumpPQTnUlLhT3SF7GJ+ZMmZ4BnY5n8SVO1p+r8Lqg+IZtMpVHw2t3tl7PaCc238X2xXCfbaQeTH1hgHidWOIbHGLh5bjjv2kh50EheD2q4kA+LlZPNa4Qv+LaVjGXNsLPicLZfPR55/fDQ4kot7RAtxRJOjByyAoQ0MbS+I/HHXttoJdq12krgWxq5rjTvdTuJApxsFHfTxD5UBkfaTSAAA" }, { - _200E_206E_202A_206D_200F_200B_200B_202E_200C_206F_206E_202B_206C_200E_206C_202C_206F_200C_202E_202A_202E_200F_200B_206E_206D_202B_200E_200C_202C_200F_206D_206B_200D_200C_200B_202E_206D_206E_202E_206B_202E((ushort)1116), - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-956549481) + new QuestId(1116), + "AH6_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" }, { - _200E_206E_202A_206D_200F_200B_200B_202E_200C_206F_206E_202B_206C_200E_206C_202C_206F_200C_202E_202A_202E_200F_200B_206E_206D_202B_200E_200C_202C_200F_206D_206B_200D_200C_200B_202E_206D_206E_202E_206B_202E((ushort)1117), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1514787902) + new QuestId(1117), + "AH6_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" }, { - _200E_206E_202A_206D_200F_200B_200B_202E_200C_206F_206E_202B_206C_200E_206C_202C_206F_200C_202E_202A_202E_200F_200B_206E_206D_202B_200E_200C_202C_200F_206D_206B_200D_200C_200B_202E_206D_206E_202E_206B_202E((ushort)1118), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(316530682) + new QuestId(1118), + "AH6_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" }, { - _200E_206E_202A_206D_200F_200B_200B_202E_200C_206F_206E_202B_206C_200E_206C_202C_206F_200C_202E_202A_202E_200F_200B_206E_206D_202B_200E_200C_202C_200F_206D_206B_200D_200C_200B_202E_206D_206E_202E_206B_202E((ushort)3240), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2108127523) + new QuestId(3240), + "AH6_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" }, { - _200E_206E_202A_206D_200F_200B_200B_202E_200C_206F_206E_202B_206C_200E_206C_202C_206F_200C_202E_202A_202E_200F_200B_206E_206D_202B_200E_200C_202C_200F_206D_206B_200D_200C_200B_202E_206D_206E_202E_206B_202E((ushort)3241), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(877674805) + new QuestId(3241), + "AH6_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" }, { - _200E_206E_202A_206D_200F_200B_200B_202E_200C_206F_206E_202B_206C_200E_206C_202C_206F_200C_202E_202A_202E_200F_200B_206E_206D_202B_200E_200C_202C_200F_206D_206B_200D_200C_200B_202E_206D_206E_202E_206B_202E((ushort)1514), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(218455464) + new QuestId(1514), + "AH6_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" } }; - - static QuestId _200E_206E_202A_206D_200F_200B_200B_202E_200C_206F_206E_202B_206C_200E_206C_202C_206F_200C_202E_202A_202E_200F_200B_206E_206D_202B_200E_200C_202C_200F_206D_206B_200D_200C_200B_202E_206D_206E_202E_206B_202E(ushort P_0) - { - return new QuestId(P_0); - } } diff --git a/Questionable/Questionable.Data/ChangelogData.cs b/Questionable/Questionable.Data/ChangelogData.cs index bb308ef..34aa9a5 100644 --- a/Questionable/Questionable.Data/ChangelogData.cs +++ b/Questionable/Questionable.Data/ChangelogData.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Questionable.Model.Changelog; @@ -10,1376 +9,1278 @@ internal static class ChangelogData { public static readonly List<ChangelogEntry> Changelogs; - [MethodImpl(MethodImplOptions.NoInlining)] static ChangelogData() { - int num = 71; + int num = 74; List<ChangelogEntry> list = new List<ChangelogEntry>(num); CollectionsMarshal.SetCount(list, num); Span<ChangelogEntry> span = CollectionsMarshal.AsSpan(list); ref ChangelogEntry reference = ref span[0]; - string version = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1962423327); - DateOnly releaseDate = new DateOnly(2026, 8, 12); - int num2 = 4; + DateOnly releaseDate = new DateOnly(2026, 8, 13); + int num2 = 3; List<ChangeEntry> list2 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list2, num2); Span<ChangeEntry> span2 = CollectionsMarshal.AsSpan(list2); ref ChangeEntry reference2 = ref span2[0]; - string description = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(816348566); - int num3 = 35; + int num3 = 1; List<string> list3 = new List<string>(num3); CollectionsMarshal.SetCount(list3, num3); - Span<string> span3 = CollectionsMarshal.AsSpan(list3); - span3[0] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-695795227); - span3[1] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(350484439); - span3[2] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1224915960); - span3[3] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-699968252); - span3[4] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(698833239); - span3[5] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(334339490); - span3[6] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2135692670); - span3[7] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1542589501); - span3[8] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(973293443); - span3[9] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(453697497); - span3[10] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(191632364); - span3[11] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1602382590); - span3[12] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1059660746); - span3[13] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(546867509); - span3[14] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1325767056); - span3[15] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(201420174); - span3[16] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(617555882); - span3[17] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(978383452); - span3[18] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1849303500); - span3[19] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1944251878); - span3[20] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(523995484); - span3[21] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1595097286); - span3[22] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1125340424); - span3[23] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1473476420); - span3[24] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2125579804); - span3[25] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-600722955); - span3[26] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1343491674); - span3[27] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(804175219); - span3[28] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-386149253); - span3[29] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(582823330); - span3[30] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1454610357); - span3[31] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1248652962); - span3[32] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1715637571); - span3[33] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-457234259); - span3[34] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-600852222); - reference2 = new ChangeEntry(EChangeCategory.Added, description, list3); + CollectionsMarshal.AsSpan(list3)[0] = "Added autodetection of your Grand Company based on player's starting city."; + reference2 = new ChangeEntry(EChangeCategory.Added, "Added", list3); ref ChangeEntry reference3 = ref span2[1]; - string description2 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1313916723); - num3 = 17; + num3 = 1; List<string> list4 = new List<string>(num3); CollectionsMarshal.SetCount(list4, num3); - Span<string> span4 = CollectionsMarshal.AsSpan(list4); - span4[0] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(539064689); - span4[1] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(611571080); - span4[2] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-928957354); - span4[3] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(41496532); - span4[4] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-779062486); - span4[5] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1241440823); - span4[6] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-863605658); - span4[7] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1763821834); - span4[8] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-338988189); - span4[9] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-234907353); - span4[10] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(589413832); - span4[11] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(807929606); - span4[12] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1124150128); - span4[13] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(250980976); - span4[14] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(352541251); - span4[15] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1224351914); - span4[16] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1738906556); - reference3 = new ChangeEntry(EChangeCategory.Changed, description2, list4); + CollectionsMarshal.AsSpan(list4)[0] = "Updated Moonfire Faire (2026) event paths to go around the pool."; + reference3 = new ChangeEntry(EChangeCategory.Changed, "Changed", list4); ref ChangeEntry reference4 = ref span2[2]; - string description3 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1988704596); - num3 = 41; + num3 = 3; List<string> list5 = new List<string>(num3); CollectionsMarshal.SetCount(list5, num3); - Span<string> span5 = CollectionsMarshal.AsSpan(list5); - span5[0] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(372741491); - span5[1] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1052180861); - span5[2] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1824505401); - span5[3] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(731947891); - span5[4] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1749133374); - span5[5] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(207962275); - span5[6] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1206251003); - span5[7] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(389254865); - span5[8] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1683453696); - span5[9] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-746835295); - span5[10] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-700114025); - span5[11] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2101341493); - span5[12] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(687935522); - span5[13] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1424586940); - span5[14] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1071503575); - span5[15] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(138039903); - span5[16] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(670336521); - span5[17] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-544503443); - span5[18] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(938977685); - span5[19] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1836049162); - span5[20] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(472934073); - span5[21] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2110043621); - span5[22] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1367933289); - span5[23] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-497013241); - span5[24] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-274292457); - span5[25] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(703701360); - span5[26] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(579738868); - span5[27] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1794923777); - span5[28] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-911252945); - span5[29] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(56541654); - span5[30] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1716432584); - span5[31] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1286571268); - span5[32] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1722111330); - span5[33] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1258011708); - span5[34] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1775113336); - span5[35] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1894377040); - span5[36] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1376304081); - span5[37] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-307132296); - span5[38] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2022285803); - span5[39] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1498553915); - span5[40] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1827440798); - reference4 = new ChangeEntry(EChangeCategory.Fixed, description3, list5); - ref ChangeEntry reference5 = ref span2[3]; - string description4 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1205328867); - num3 = 6; - List<string> list6 = new List<string>(num3); - CollectionsMarshal.SetCount(list6, num3); - Span<string> span6 = CollectionsMarshal.AsSpan(list6); - span6[0] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-963109121); - span6[1] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-583965998); - span6[2] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1766096444); - span6[3] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1672858002); - span6[4] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-418666543); - span6[5] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-787030756); - reference5 = new ChangeEntry(EChangeCategory.QuestUpdates, description4, list6); - reference = new ChangelogEntry(version, releaseDate, list2); - ref ChangelogEntry reference6 = ref span[1]; - string version2 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(782199067); - DateOnly releaseDate2 = new DateOnly(2026, 6, 25); + Span<string> span3 = CollectionsMarshal.AsSpan(list5); + span3[0] = "Fix an issue where Custom Deliveries were not working due to Questionable attempting to use old quest presets."; + span3[1] = "Fix race condition where Questionable is attempting to call Bossmod IPC before Bossmod had finished loading."; + span3[2] = "Fix Bossmod AI not working due to Questionable intializing an empty preset."; + reference4 = new ChangeEntry(EChangeCategory.Fixed, "Fixed", list5); + reference = new ChangelogEntry("7.5.11", releaseDate, list2); + ref ChangelogEntry reference5 = ref span[1]; + DateOnly releaseDate2 = new DateOnly(2026, 8, 12); num2 = 1; - List<ChangeEntry> list7 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list7, num2); - ref ChangeEntry reference7 = ref CollectionsMarshal.AsSpan(list7)[0]; - string description5 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1236459337); + List<ChangeEntry> list6 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list6, num2); + ref ChangeEntry reference6 = ref CollectionsMarshal.AsSpan(list6)[0]; num3 = 1; - List<string> list8 = new List<string>(num3); - CollectionsMarshal.SetCount(list8, num3); - CollectionsMarshal.AsSpan(list8)[0] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1791009598); - reference7 = new ChangeEntry(EChangeCategory.QuestUpdates, description5, list8); - reference6 = new ChangelogEntry(version2, releaseDate2, list7); - ref ChangelogEntry reference8 = ref span[2]; - string version3 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1035718310); - DateOnly releaseDate3 = new DateOnly(2026, 6, 6); + List<string> list7 = new List<string>(num3); + CollectionsMarshal.SetCount(list7, num3); + CollectionsMarshal.AsSpan(list7)[0] = "Fixed an issue which causes the plugin to fail to load and Dalamud to crash in rare occasions."; + reference6 = new ChangeEntry(EChangeCategory.Fixed, "Fixed", list7); + reference5 = new ChangelogEntry("7.5.9", releaseDate2, list6); + ref ChangelogEntry reference7 = ref span[2]; + DateOnly releaseDate3 = new DateOnly(2026, 8, 12); num2 = 1; - List<ChangeEntry> list9 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list9, num2); - ref ChangeEntry reference9 = ref CollectionsMarshal.AsSpan(list9)[0]; - string description6 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1205328867); - num3 = 1; - List<string> list10 = new List<string>(num3); - CollectionsMarshal.SetCount(list10, num3); - CollectionsMarshal.AsSpan(list10)[0] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1004165390); - reference9 = new ChangeEntry(EChangeCategory.QuestUpdates, description6, list10); - reference8 = new ChangelogEntry(version3, releaseDate3, list9); - ref ChangelogEntry reference10 = ref span[3]; - string version4 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1326263498); - DateOnly releaseDate4 = new DateOnly(2026, 5, 12); - num2 = 1; - List<ChangeEntry> list11 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list11, num2); - ref ChangeEntry reference11 = ref CollectionsMarshal.AsSpan(list11)[0]; - string description7 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(938485712); - num3 = 1; + List<ChangeEntry> list8 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list8, num2); + ref ChangeEntry reference8 = ref CollectionsMarshal.AsSpan(list8)[0]; + num3 = 2; + List<string> list9 = new List<string>(num3); + CollectionsMarshal.SetCount(list9, num3); + Span<string> span4 = CollectionsMarshal.AsSpan(list9); + span4[0] = "Move LGB scanning (NPC positions and zone boundaries) to an out-of-process worker to eliminate memory spikes on first load and after game patches"; + span4[1] = "Add Clear LGB Caches button in Advanced settings with cache size tooltip"; + reference8 = new ChangeEntry(EChangeCategory.Changed, "Changed", list9); + reference7 = new ChangelogEntry("7.5.7", releaseDate3, list8); + ref ChangelogEntry reference9 = ref span[3]; + DateOnly releaseDate4 = new DateOnly(2026, 8, 12); + num2 = 4; + List<ChangeEntry> list10 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list10, num2); + Span<ChangeEntry> span5 = CollectionsMarshal.AsSpan(list10); + ref ChangeEntry reference10 = ref span5[0]; + num3 = 35; + List<string> list11 = new List<string>(num3); + CollectionsMarshal.SetCount(list11, num3); + Span<string> span6 = CollectionsMarshal.AsSpan(list11); + span6[0] = "Add SmartNav automatic cross-zone routing with real-time gil cost awareness"; + span6[1] = "Add WigglyNav as an alternative navigation provider with provider-aware navmesh rebuild"; + span6[2] = "Add Custom Delivery automation with crafting, gathering, fishing, vendor purchases, and job selection"; + span6[3] = "Add Attunement tab to Journal with aetheryte/aethernet/aether current status and batch attune"; + span6[4] = "Add Fishing automation with AutoHook preset management and bait vendor resolution"; + span6[5] = "Add allied society overcap protection with reputation-aware turn-in ordering"; + span6[6] = "Add quest chain graph with queue management in Journal"; + span6[7] = "Add Gathering Editor as a sub-panel to Quest Editor Window"; + span6[8] = "Add smart equip with three modes: Game Default, Smart (stat-aware), and None"; + span6[9] = "Add gear coffer opening from quest rewards with gearset switching"; + span6[10] = "Add automatic repair at quest boundaries and duty gates via self-repair and menders"; + span6[11] = "Add out-of-game notifications with per-event alert toggles and sound selection"; + span6[12] = "Add run-command-after-stop for executing a command when a stop condition fires"; + span6[13] = "Add reward redemption settings with per-type filtering and skip-tradable option"; + span6[14] = "Add UnlockLink reward type for unlock-link quest rewards"; + span6[15] = "Add teleport ticket support for cheaper cross-zone travel"; + span6[16] = "Add chocobo taxi routing for zones with taxi stands"; + span6[17] = "Add warp-based travel (elevators, ferries, zone transitions)"; + span6[18] = "Add Critical Encounter and Fishing quest step types"; + span6[19] = "Add auto-unsync for 4-man dungeons when safely overleveled"; + span6[20] = "Add death recovery system that auto-respawns and re-routes"; + span6[21] = "Add RetryStep system that re-navigates on interaction failures"; + span6[22] = "Add UnequipItem step executor"; + span6[23] = "Add unified stop condition system with QuestCount, Level, and Sequence conditions"; + span6[24] = "Add setup wizard with guided steps, re-openable via command"; + span6[25] = "Add BossModReborn support alongside BossMod"; + span6[26] = "Add WrathCombo integration with explicit combo state management"; + span6[27] = "Add per-feature control for external plugin pausing"; + span6[28] = "Add hot-reloading and in-memory quest testing to Quest Editor"; + span6[29] = "Add Navigation config tab with mount, flying, and gil reserve settings"; + span6[30] = "Add config backup before version migrations"; + span6[31] = "Add option to disable coffer opening (None mode)"; + span6[32] = "Add detection of installed-but-disabled plugins with Enable button"; + span6[33] = "Add plugin alternative listing (vnavmesh-cn, BossModReborn) with conflict warnings"; + span6[34] = "Add accepted quests with no path shown with live game sequence"; + reference10 = new ChangeEntry(EChangeCategory.Added, "Added", list11); + ref ChangeEntry reference11 = ref span5[1]; + num3 = 17; List<string> list12 = new List<string>(num3); CollectionsMarshal.SetCount(list12, num3); - CollectionsMarshal.AsSpan(list12)[0] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(118965656); - reference11 = new ChangeEntry(EChangeCategory.QuestUpdates, description7, list12); - reference10 = new ChangelogEntry(version4, releaseDate4, list11); - ref ChangelogEntry reference12 = ref span[4]; - string version5 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-141071597); - DateOnly releaseDate5 = new DateOnly(2026, 5, 1); - num2 = 1; - List<ChangeEntry> list13 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list13, num2); - ref ChangeEntry reference13 = ref CollectionsMarshal.AsSpan(list13)[0]; - string description8 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(413775329); - num3 = 1; + Span<string> span7 = CollectionsMarshal.AsSpan(list12); + span7[0] = "Redesign Configuration window with grouped sidebar navigation and themed cards"; + span7[1] = "Redesign Journal with sidebar navigation, accordion layouts, and tracker tables"; + span7[2] = "Redesign main quest window with themed banners, titles, and stop buttons"; + span7[3] = "Redesign FATE and Seasonal Duty selection windows with search and shared cycle UI"; + span7[4] = "Replace quest-path-based custom deliveries with dynamic automation controller"; + span7[5] = "Move path data to external repository for community contributions"; + span7[6] = "Install and enable required plugins directly from the Dependencies tab"; + span7[7] = "Faster startup with parallel data loading"; + span7[8] = "SmartNav automatically determines mount, fly, and teleport decisions (replaces manual shortcuts)"; + span7[9] = "Replace native aethernet teleportation with direct implementation (removes Lifestream dependency)"; + span7[10] = "Remove aether current and city aethernet quest presets (replaced by Attunement tab)"; + span7[11] = "Remove 'Stop after current quest' and quest-count/timer stop buttons from main window"; + span7[12] = "Remove 'View All Quest Paths Online' button from journal"; + span7[13] = "Remove Explanation dropdown from Quests and Duties tabs"; + span7[14] = "Virtualize quest, duty, and gathering journals for better performance"; + span7[15] = "Default custom delivery scrip overcap mode to Ignore"; + span7[16] = "Default quest journal groups to collapsed"; + reference11 = new ChangeEntry(EChangeCategory.Changed, "Changed", list12); + ref ChangeEntry reference12 = ref span5[2]; + num3 = 41; + List<string> list13 = new List<string>(num3); + CollectionsMarshal.SetCount(list13, num3); + Span<string> span8 = CollectionsMarshal.AsSpan(list13); + span8[0] = "Fix zone transition hangs and re-routing after zone changes"; + span8[1] = "Fix flying route decisions based on mount ownership and flying unlock state"; + span8[2] = "Fix warp routing filtering by quest requirements and class level"; + span8[3] = "Fix zone boundary access respecting per-boundary quest requirements"; + span8[4] = "Fix custom delivery craft purchases, turn-in timeouts, and rank-up resume"; + span8[5] = "Fix custom delivery keeping queued deliveries when inventory is full"; + span8[6] = "Fix fishing approach rebuild on retry and no-progress timeout"; + span8[7] = "Fix smart equip ranking weapons by weapon damage and job-usable stats"; + span8[8] = "Fix repair retry when gear condition did not improve"; + span8[9] = "Fix gathering retry counter reset and node integrity checks"; + span8[10] = "Fix reward redemption for tradeable items and stale reward task completion"; + span8[11] = "Fix gear coffer gearset restore across interrupts and retries"; + span8[12] = "Fix AutoDuty leveling loop not continuing until target level reached"; + span8[13] = "Fix AutoDuty not persisting excessive LoopTimes values"; + span8[14] = "Fix quest editor schema validation, dirty tracking, and atomic save"; + span8[15] = "Fix death recovery respawn prompt clicking timing"; + span8[16] = "Fix same-zone teleport skipping when it gains no distance"; + span8[17] = "Fix stop condition removal and level-15 floor in StartLevelingMode IPC"; + span8[18] = "Fix stop conditions not firing during leveling mode"; + span8[19] = "Fix command-after-stop firing once per run instead of per frame"; + span8[20] = "Fix soft hyphens and escaped macros in game string/dialogue comparisons"; + span8[21] = "Fix skip aether current quest pickups once flying is unlocked"; + span8[22] = "Fix class quest prioritization and level-lock pickup logic"; + span8[23] = "Fix respecting skip setting for in-progress class quests over level 5"; + span8[24] = "Fix repeatable quest completion flag being checked while quest is accepted"; + span8[25] = "Fix priority quest pickup after shortcut-key strip"; + span8[26] = "Fix duty category classification"; + span8[27] = "Fix loading crash when InterruptHandler hook fails"; + span8[28] = "Fix shop opening on wrong tab during vendor purchases"; + span8[29] = "Fix aethernet destination selection and teleport retry on transient failures"; + span8[30] = "Fix combat targeting overpull and self-defense getting stuck on evading mobs"; + span8[31] = "Fix BossMod preset management during solo duties and between combat phases"; + span8[32] = "Fix WrathCombo rotation mode enum values"; + span8[33] = "Fix startup crash from Pictomancy initialization"; + span8[34] = "Fix emote retry when target NPC not found"; + span8[35] = "Fix interaction wait for missing objects instead of silently skipping"; + span8[36] = "Fix PurchaseItem vendor interaction retry when shop not open"; + span8[37] = "Fix GC shop cancel on handler reset"; + span8[38] = "Fix quest sequence window latching closed after first close"; + span8[39] = "Fix An Ill-conceived Venture locked without retainer entitlement"; + span8[40] = "Fix various UI text clipping and wrapping issues"; + reference12 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list13); + ref ChangeEntry reference13 = ref span5[3]; + num3 = 6; List<string> list14 = new List<string>(num3); CollectionsMarshal.SetCount(list14, num3); - CollectionsMarshal.AsSpan(list14)[0] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(686563718); - reference13 = new ChangeEntry(EChangeCategory.Fixed, description8, list14); - reference12 = new ChangelogEntry(version5, releaseDate5, list13); - ref ChangelogEntry reference14 = ref span[5]; - string version6 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(938321721); - DateOnly releaseDate6 = new DateOnly(2026, 4, 30); - num2 = 2; + Span<string> span9 = CollectionsMarshal.AsSpan(list14); + span9[0] = "Add Moonfire Faire (2026) quests"; + span9[1] = "Add 88 community-contributed quest ports"; + span9[2] = "Add all missing gathering paths"; + span9[3] = "Add AutoHook presets for ARR fishing quests"; + span9[4] = "Add Shadow of the First missing sequence"; + span9[5] = "Add Amaljaa, Sylph, and Ixal allied society NPC data"; + reference13 = new ChangeEntry(EChangeCategory.QuestUpdates, "New Quest Paths", list14); + reference9 = new ChangelogEntry("7.5.6", releaseDate4, list10); + ref ChangelogEntry reference14 = ref span[4]; + DateOnly releaseDate5 = new DateOnly(2026, 6, 25); + num2 = 1; List<ChangeEntry> list15 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list15, num2); - Span<ChangeEntry> span7 = CollectionsMarshal.AsSpan(list15); - ref ChangeEntry reference15 = ref span7[0]; - string description9 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1236459337); - num3 = 2; + ref ChangeEntry reference15 = ref CollectionsMarshal.AsSpan(list15)[0]; + num3 = 1; List<string> list16 = new List<string>(num3); CollectionsMarshal.SetCount(list16, num3); - Span<string> span8 = CollectionsMarshal.AsSpan(list16); - span8[0] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1061628638); - span8[1] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2143539424); - reference15 = new ChangeEntry(EChangeCategory.QuestUpdates, description9, list16); - ref ChangeEntry reference16 = ref span7[1]; - string description10 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1835095083); - num3 = 1; - List<string> list17 = new List<string>(num3); - CollectionsMarshal.SetCount(list17, num3); - CollectionsMarshal.AsSpan(list17)[0] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1523876749); - reference16 = new ChangeEntry(EChangeCategory.Changed, description10, list17); - reference14 = new ChangelogEntry(version6, releaseDate6, list15); - ref ChangelogEntry reference17 = ref span[6]; - string version7 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(971161560); - DateOnly releaseDate7 = new DateOnly(2026, 4, 29); + CollectionsMarshal.AsSpan(list16)[0] = "Add Breaking Brick Mountains (2026) event quest"; + reference15 = new ChangeEntry(EChangeCategory.QuestUpdates, "New Quest Paths", list16); + reference14 = new ChangelogEntry("7.5.5", releaseDate5, list15); + ref ChangelogEntry reference16 = ref span[5]; + DateOnly releaseDate6 = new DateOnly(2026, 6, 6); num2 = 1; - List<ChangeEntry> list18 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list18, num2); - ref ChangeEntry reference18 = ref CollectionsMarshal.AsSpan(list18)[0]; - string description11 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(413775329); + List<ChangeEntry> list17 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list17, num2); + ref ChangeEntry reference17 = ref CollectionsMarshal.AsSpan(list17)[0]; num3 = 1; - List<string> list19 = new List<string>(num3); - CollectionsMarshal.SetCount(list19, num3); - CollectionsMarshal.AsSpan(list19)[0] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-216010434); - reference18 = new ChangeEntry(EChangeCategory.Fixed, description11, list19); - reference17 = new ChangelogEntry(version7, releaseDate7, list18); - ref ChangelogEntry reference19 = ref span[7]; - string version8 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1266228138); - DateOnly releaseDate8 = new DateOnly(2026, 3, 24); + List<string> list18 = new List<string>(num3); + CollectionsMarshal.SetCount(list18, num3); + CollectionsMarshal.AsSpan(list18)[0] = "Add Make It Rain (2026) seasonal quest"; + reference17 = new ChangeEntry(EChangeCategory.QuestUpdates, "New Quest Paths", list18); + reference16 = new ChangelogEntry("7.5.4", releaseDate6, list17); + ref ChangelogEntry reference18 = ref span[6]; + DateOnly releaseDate7 = new DateOnly(2026, 5, 12); num2 = 1; - List<ChangeEntry> list20 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list20, num2); - ref ChangeEntry reference20 = ref CollectionsMarshal.AsSpan(list20)[0]; - string description12 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1835095083); + List<ChangeEntry> list19 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list19, num2); + ref ChangeEntry reference19 = ref CollectionsMarshal.AsSpan(list19)[0]; + num3 = 1; + List<string> list20 = new List<string>(num3); + CollectionsMarshal.SetCount(list20, num3); + CollectionsMarshal.AsSpan(list20)[0] = "Add The Maiden's Rhapsody (2026) event quest"; + reference19 = new ChangeEntry(EChangeCategory.QuestUpdates, "New Quest Paths", list20); + reference18 = new ChangelogEntry("7.5.3", releaseDate7, list19); + ref ChangelogEntry reference20 = ref span[7]; + DateOnly releaseDate8 = new DateOnly(2026, 5, 1); + num2 = 1; + List<ChangeEntry> list21 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list21, num2); + ref ChangeEntry reference21 = ref CollectionsMarshal.AsSpan(list21)[0]; + num3 = 1; + List<string> list22 = new List<string>(num3); + CollectionsMarshal.SetCount(list22, num3); + CollectionsMarshal.AsSpan(list22)[0] = "Revert vnavmesh SimpleMove IPC temporary fix"; + reference21 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list22); + reference20 = new ChangelogEntry("7.5.2", releaseDate8, list21); + ref ChangelogEntry reference22 = ref span[8]; + DateOnly releaseDate9 = new DateOnly(2026, 4, 30); + num2 = 2; + List<ChangeEntry> list23 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list23, num2); + Span<ChangeEntry> span10 = CollectionsMarshal.AsSpan(list23); + ref ChangeEntry reference23 = ref span10[0]; num3 = 2; - List<string> list21 = new List<string>(num3); - CollectionsMarshal.SetCount(list21, num3); - Span<string> span9 = CollectionsMarshal.AsSpan(list21); - span9[0] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1520566429); - span9[1] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-547252384); - reference20 = new ChangeEntry(EChangeCategory.Fixed, description12, list21); - reference19 = new ChangelogEntry(version8, releaseDate8, list20); - ref ChangelogEntry reference21 = ref span[8]; - string version9 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1969677057); - DateOnly releaseDate9 = new DateOnly(2026, 3, 24); - num2 = 3; - List<ChangeEntry> list22 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list22, num2); - Span<ChangeEntry> span10 = CollectionsMarshal.AsSpan(list22); - ref ChangeEntry reference22 = ref span10[0]; - string description13 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1299067977); - num3 = 1; - List<string> list23 = new List<string>(num3); - CollectionsMarshal.SetCount(list23, num3); - CollectionsMarshal.AsSpan(list23)[0] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-384089076); - reference22 = new ChangeEntry(EChangeCategory.Added, description13, list23); - ref ChangeEntry reference23 = ref span10[1]; - string description14 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1205328867); - num3 = 1; List<string> list24 = new List<string>(num3); CollectionsMarshal.SetCount(list24, num3); - CollectionsMarshal.AsSpan(list24)[0] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1180756033); - reference23 = new ChangeEntry(EChangeCategory.QuestUpdates, description14, list24); - ref ChangeEntry reference24 = ref span10[2]; - string description15 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(413775329); + Span<string> span11 = CollectionsMarshal.AsSpan(list24); + span11[0] = "Add Windurst: The Third Walk quests"; + span11[1] = "Add 7.5 MSQ"; + reference23 = new ChangeEntry(EChangeCategory.QuestUpdates, "New Quest Paths", list24); + ref ChangeEntry reference24 = ref span10[1]; num3 = 1; List<string> list25 = new List<string>(num3); CollectionsMarshal.SetCount(list25, num3); - CollectionsMarshal.AsSpan(list25)[0] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1893217209); - reference24 = new ChangeEntry(EChangeCategory.Fixed, description15, list25); - reference21 = new ChangelogEntry(version9, releaseDate9, list22); + CollectionsMarshal.AsSpan(list25)[0] = "Use vnavmesh SimpleMove IPC to fix navmesh hanging the game (temporary fix)"; + reference24 = new ChangeEntry(EChangeCategory.Changed, "Fixes", list25); + reference22 = new ChangelogEntry("7.5.1", releaseDate9, list23); ref ChangelogEntry reference25 = ref span[9]; - string version10 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(468685049); - DateOnly releaseDate10 = new DateOnly(2026, 3, 1); + DateOnly releaseDate10 = new DateOnly(2026, 4, 29); num2 = 1; List<ChangeEntry> list26 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list26, num2); ref ChangeEntry reference26 = ref CollectionsMarshal.AsSpan(list26)[0]; - string description16 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1988704596); num3 = 1; List<string> list27 = new List<string>(num3); CollectionsMarshal.SetCount(list27, num3); - CollectionsMarshal.AsSpan(list27)[0] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1430483504); - reference26 = new ChangeEntry(EChangeCategory.Fixed, description16, list27); - reference25 = new ChangelogEntry(version10, releaseDate10, list26); + CollectionsMarshal.AsSpan(list27)[0] = "Api15"; + reference26 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list27); + reference25 = new ChangelogEntry("7.5.0", releaseDate10, list26); ref ChangelogEntry reference27 = ref span[10]; - string version11 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1689288911); - DateOnly releaseDate11 = new DateOnly(2026, 3, 1); + DateOnly releaseDate11 = new DateOnly(2026, 3, 24); num2 = 1; List<ChangeEntry> list28 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list28, num2); ref ChangeEntry reference28 = ref CollectionsMarshal.AsSpan(list28)[0]; - string description17 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1579620133); - num3 = 1; + num3 = 2; List<string> list29 = new List<string>(num3); CollectionsMarshal.SetCount(list29, num3); - CollectionsMarshal.AsSpan(list29)[0] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(108330907); - reference28 = new ChangeEntry(EChangeCategory.Fixed, description17, list29); - reference27 = new ChangelogEntry(version11, releaseDate11, list28); + Span<string> span12 = CollectionsMarshal.AsSpan(list29); + span12[0] = "Add duty handling to external and qst"; + span12[1] = "Fix duty farming NPC interact getting stuck after zone transition into duty"; + reference28 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list29); + reference27 = new ChangelogEntry("7.4.19", releaseDate11, list28); ref ChangelogEntry reference29 = ref span[11]; - string version12 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(449834161); - DateOnly releaseDate12 = new DateOnly(2026, 2, 28); - num2 = 1; + DateOnly releaseDate12 = new DateOnly(2026, 3, 24); + num2 = 3; List<ChangeEntry> list30 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list30, num2); - ref ChangeEntry reference30 = ref CollectionsMarshal.AsSpan(list30)[0]; - string description18 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1579620133); - num3 = 2; + Span<ChangeEntry> span13 = CollectionsMarshal.AsSpan(list30); + ref ChangeEntry reference30 = ref span13[0]; + num3 = 1; List<string> list31 = new List<string>(num3); CollectionsMarshal.SetCount(list31, num3); - Span<string> span11 = CollectionsMarshal.AsSpan(list31); - span11[0] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1553570259); - span11[1] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1431104834); - reference30 = new ChangeEntry(EChangeCategory.Fixed, description18, list31); - reference29 = new ChangelogEntry(version12, releaseDate12, list30); - ref ChangelogEntry reference31 = ref span[12]; - string version13 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1492505401); - DateOnly releaseDate13 = new DateOnly(2026, 2, 27); - num2 = 2; - List<ChangeEntry> list32 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list32, num2); - Span<ChangeEntry> span12 = CollectionsMarshal.AsSpan(list32); - ref ChangeEntry reference32 = ref span12[0]; - string description19 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1654501195); - num3 = 2; + CollectionsMarshal.AsSpan(list31)[0] = "Add seasonal duty farming system (/qst duty)"; + reference30 = new ChangeEntry(EChangeCategory.Added, "New Features", list31); + ref ChangeEntry reference31 = ref span13[1]; + num3 = 1; + List<string> list32 = new List<string>(num3); + CollectionsMarshal.SetCount(list32, num3); + CollectionsMarshal.AsSpan(list32)[0] = "Add Hatching-tide 2026 quest"; + reference31 = new ChangeEntry(EChangeCategory.QuestUpdates, "New Quest Paths", list32); + ref ChangeEntry reference32 = ref span13[2]; + num3 = 1; List<string> list33 = new List<string>(num3); CollectionsMarshal.SetCount(list33, num3); - Span<string> span13 = CollectionsMarshal.AsSpan(list33); - span13[0] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(282508887); - span13[1] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1692326090); - reference32 = new ChangeEntry(EChangeCategory.Changed, description19, list33); - ref ChangeEntry reference33 = ref span12[1]; - string description20 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1835095083); - num3 = 1; - List<string> list34 = new List<string>(num3); - CollectionsMarshal.SetCount(list34, num3); - CollectionsMarshal.AsSpan(list34)[0] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(304767039); - reference33 = new ChangeEntry(EChangeCategory.Fixed, description20, list34); - reference31 = new ChangelogEntry(version13, releaseDate13, list32); - ref ChangelogEntry reference34 = ref span[13]; - string version14 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1472616570); - DateOnly releaseDate14 = new DateOnly(2026, 2, 27); + CollectionsMarshal.AsSpan(list33)[0] = "Quest path fixes"; + reference32 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list33); + reference29 = new ChangelogEntry("7.4.18", releaseDate12, list30); + ref ChangelogEntry reference33 = ref span[12]; + DateOnly releaseDate13 = new DateOnly(2026, 3, 1); num2 = 1; - List<ChangeEntry> list35 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list35, num2); - ref ChangeEntry reference35 = ref CollectionsMarshal.AsSpan(list35)[0]; - string description21 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1579620133); + List<ChangeEntry> list34 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list34, num2); + ref ChangeEntry reference34 = ref CollectionsMarshal.AsSpan(list34)[0]; num3 = 1; - List<string> list36 = new List<string>(num3); - CollectionsMarshal.SetCount(list36, num3); - CollectionsMarshal.AsSpan(list36)[0] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-548498980); - reference35 = new ChangeEntry(EChangeCategory.Fixed, description21, list36); - reference34 = new ChangelogEntry(version14, releaseDate14, list35); - ref ChangelogEntry reference36 = ref span[14]; - string version15 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1722757910); - DateOnly releaseDate15 = new DateOnly(2026, 2, 26); - num2 = 3; - List<ChangeEntry> list37 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list37, num2); - Span<ChangeEntry> span14 = CollectionsMarshal.AsSpan(list37); - ref ChangeEntry reference37 = ref span14[0]; - string description22 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(23444354); - num3 = 3; - List<string> list38 = new List<string>(num3); - CollectionsMarshal.SetCount(list38, num3); - Span<string> span15 = CollectionsMarshal.AsSpan(list38); - span15[0] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-134107942); - span15[1] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1699752210); - span15[2] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1079934219); - reference37 = new ChangeEntry(EChangeCategory.Added, description22, list38); - ref ChangeEntry reference38 = ref span14[1]; - string description23 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1205328867); + List<string> list35 = new List<string>(num3); + CollectionsMarshal.SetCount(list35, num3); + CollectionsMarshal.AsSpan(list35)[0] = "Quest path fixes"; + reference34 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list35); + reference33 = new ChangelogEntry("7.4.17", releaseDate13, list34); + ref ChangelogEntry reference35 = ref span[13]; + DateOnly releaseDate14 = new DateOnly(2026, 3, 1); + num2 = 1; + List<ChangeEntry> list36 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list36, num2); + ref ChangeEntry reference36 = ref CollectionsMarshal.AsSpan(list36)[0]; num3 = 1; + List<string> list37 = new List<string>(num3); + CollectionsMarshal.SetCount(list37, num3); + CollectionsMarshal.AsSpan(list37)[0] = "Enable TextAdvance, PandorasBox, and Automaton IPC integration during FATE farming"; + reference36 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list37); + reference35 = new ChangelogEntry("7.4.16", releaseDate14, list36); + ref ChangelogEntry reference37 = ref span[14]; + DateOnly releaseDate15 = new DateOnly(2026, 2, 28); + num2 = 1; + List<ChangeEntry> list38 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list38, num2); + ref ChangeEntry reference38 = ref CollectionsMarshal.AsSpan(list38)[0]; + num3 = 2; List<string> list39 = new List<string>(num3); CollectionsMarshal.SetCount(list39, num3); - CollectionsMarshal.AsSpan(list39)[0] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1816103115); - reference38 = new ChangeEntry(EChangeCategory.QuestUpdates, description23, list39); - ref ChangeEntry reference39 = ref span14[2]; - string description24 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1579620133); - num3 = 1; - List<string> list40 = new List<string>(num3); - CollectionsMarshal.SetCount(list40, num3); - CollectionsMarshal.AsSpan(list40)[0] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1027297538); - reference39 = new ChangeEntry(EChangeCategory.Fixed, description24, list40); - reference36 = new ChangelogEntry(version15, releaseDate15, list37); - ref ChangelogEntry reference40 = ref span[15]; - string version16 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(40550758); - DateOnly releaseDate16 = new DateOnly(2026, 2, 2); + Span<string> span14 = CollectionsMarshal.AsSpan(list39); + span14[0] = "Fix FATE transform interact task never completing after NPC dialogue"; + span14[1] = "Fix FATE farming loop not detecting completion when NPCs persist after FATE ends"; + reference38 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list39); + reference37 = new ChangelogEntry("7.4.15", releaseDate15, list38); + ref ChangelogEntry reference39 = ref span[15]; + DateOnly releaseDate16 = new DateOnly(2026, 2, 27); num2 = 2; - List<ChangeEntry> list41 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list41, num2); - Span<ChangeEntry> span16 = CollectionsMarshal.AsSpan(list41); - ref ChangeEntry reference41 = ref span16[0]; - string description25 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(938485712); + List<ChangeEntry> list40 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list40, num2); + Span<ChangeEntry> span15 = CollectionsMarshal.AsSpan(list40); + ref ChangeEntry reference40 = ref span15[0]; + num3 = 2; + List<string> list41 = new List<string>(num3); + CollectionsMarshal.SetCount(list41, num3); + Span<string> span16 = CollectionsMarshal.AsSpan(list41); + span16[0] = "Added prerequisite quest requirement to FATE farming definitions"; + span16[1] = "Show active FATE in main quest UI and disable quest start during FATE farming"; + reference40 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list41); + ref ChangeEntry reference41 = ref span15[1]; num3 = 1; List<string> list42 = new List<string>(num3); CollectionsMarshal.SetCount(list42, num3); - CollectionsMarshal.AsSpan(list42)[0] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-209432734); - reference41 = new ChangeEntry(EChangeCategory.QuestUpdates, description25, list42); - ref ChangeEntry reference42 = ref span16[1]; - string description26 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(774081000); - num3 = 2; - List<string> list43 = new List<string>(num3); - CollectionsMarshal.SetCount(list43, num3); - Span<string> span17 = CollectionsMarshal.AsSpan(list43); - span17[0] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1983159648); - span17[1] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(216829209); - reference42 = new ChangeEntry(EChangeCategory.Changed, description26, list43); - reference40 = new ChangelogEntry(version16, releaseDate16, list41); - ref ChangelogEntry reference43 = ref span[16]; - string version17 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1566696188); - DateOnly releaseDate17 = new DateOnly(2026, 1, 18); - num2 = 2; - List<ChangeEntry> list44 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list44, num2); - Span<ChangeEntry> span18 = CollectionsMarshal.AsSpan(list44); - ref ChangeEntry reference44 = ref span18[0]; - string description27 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(381625035); - num3 = 5; - List<string> list45 = new List<string>(num3); - CollectionsMarshal.SetCount(list45, num3); - Span<string> span19 = CollectionsMarshal.AsSpan(list45); - span19[0] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-373303947); - span19[1] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-806168638); - span19[2] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(642763170); - span19[3] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1757513795); - span19[4] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1364091691); - reference44 = new ChangeEntry(EChangeCategory.Added, description27, list45); - ref ChangeEntry reference45 = ref span18[1]; - string description28 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1654501195); - num3 = 5; + CollectionsMarshal.AsSpan(list42)[0] = "Fixed FATE farming buff expiry and added Curtain Call cleanup on stop"; + reference41 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list42); + reference39 = new ChangelogEntry("7.4.14", releaseDate16, list40); + ref ChangelogEntry reference42 = ref span[16]; + DateOnly releaseDate17 = new DateOnly(2026, 2, 27); + num2 = 1; + List<ChangeEntry> list43 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list43, num2); + ref ChangeEntry reference43 = ref CollectionsMarshal.AsSpan(list43)[0]; + num3 = 1; + List<string> list44 = new List<string>(num3); + CollectionsMarshal.SetCount(list44, num3); + CollectionsMarshal.AsSpan(list44)[0] = "Fixed an issue where FATE actions were not performed during the Little Ladies Day (2026) FATE event"; + reference43 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list44); + reference42 = new ChangelogEntry("7.4.13", releaseDate17, list43); + ref ChangelogEntry reference44 = ref span[17]; + DateOnly releaseDate18 = new DateOnly(2026, 2, 26); + num2 = 3; + List<ChangeEntry> list45 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list45, num2); + Span<ChangeEntry> span17 = CollectionsMarshal.AsSpan(list45); + ref ChangeEntry reference45 = ref span17[0]; + num3 = 3; List<string> list46 = new List<string>(num3); CollectionsMarshal.SetCount(list46, num3); - Span<string> span20 = CollectionsMarshal.AsSpan(list46); - span20[0] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(441686956); - span20[1] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1888709160); - span20[2] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1158425412); - span20[3] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1937684379); - span20[4] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(849091842); - reference45 = new ChangeEntry(EChangeCategory.Changed, description28, list46); - reference43 = new ChangelogEntry(version17, releaseDate17, list44); - ref ChangelogEntry reference46 = ref span[17]; - string version18 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1136892219); - DateOnly releaseDate18 = new DateOnly(2025, 12, 31); - num2 = 3; - List<ChangeEntry> list47 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list47, num2); - Span<ChangeEntry> span21 = CollectionsMarshal.AsSpan(list47); - ref ChangeEntry reference47 = ref span21[0]; - string description29 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(104530671); + Span<string> span18 = CollectionsMarshal.AsSpan(list46); + span18[0] = "Add Saved Presets tab to quest priority window"; + span18[1] = "Add passive FATE handling and per npc ability handling"; + span18[2] = "Add FATE farming support"; + reference45 = new ChangeEntry(EChangeCategory.Added, "New Features", list46); + ref ChangeEntry reference46 = ref span17[1]; + num3 = 1; + List<string> list47 = new List<string>(num3); + CollectionsMarshal.SetCount(list47, num3); + CollectionsMarshal.AsSpan(list47)[0] = "Add Little Ladies' Day 2026 quests"; + reference46 = new ChangeEntry(EChangeCategory.QuestUpdates, "New Quest Paths", list47); + ref ChangeEntry reference47 = ref span17[2]; num3 = 1; List<string> list48 = new List<string>(num3); CollectionsMarshal.SetCount(list48, num3); - CollectionsMarshal.AsSpan(list48)[0] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1863893760); - reference47 = new ChangeEntry(EChangeCategory.QuestUpdates, description29, list48); - ref ChangeEntry reference48 = ref span21[1]; - string description30 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(774081000); - num3 = 1; - List<string> list49 = new List<string>(num3); - CollectionsMarshal.SetCount(list49, num3); - CollectionsMarshal.AsSpan(list49)[0] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1610476665); - reference48 = new ChangeEntry(EChangeCategory.Changed, description30, list49); - ref ChangeEntry reference49 = ref span21[2]; - string description31 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1988704596); + CollectionsMarshal.AsSpan(list48)[0] = "Quest path fixes"; + reference47 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list48); + reference44 = new ChangelogEntry("7.4.12", releaseDate18, list45); + ref ChangelogEntry reference48 = ref span[18]; + DateOnly releaseDate19 = new DateOnly(2026, 2, 2); + num2 = 2; + List<ChangeEntry> list49 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list49, num2); + Span<ChangeEntry> span19 = CollectionsMarshal.AsSpan(list49); + ref ChangeEntry reference49 = ref span19[0]; num3 = 1; List<string> list50 = new List<string>(num3); CollectionsMarshal.SetCount(list50, num3); - CollectionsMarshal.AsSpan(list50)[0] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(670292315); - reference49 = new ChangeEntry(EChangeCategory.Fixed, description31, list50); - reference46 = new ChangelogEntry(version18, releaseDate18, list47); - ref ChangelogEntry reference50 = ref span[18]; - string version19 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(767500568); - DateOnly releaseDate19 = new DateOnly(2025, 12, 29); - num2 = 1; - List<ChangeEntry> list51 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list51, num2); - ref ChangeEntry reference51 = ref CollectionsMarshal.AsSpan(list51)[0]; - string description32 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1988704596); + CollectionsMarshal.AsSpan(list50)[0] = "Add Valentione's Day 2026 quest (The Icing on the Cake)"; + reference49 = new ChangeEntry(EChangeCategory.QuestUpdates, "New Quest Paths", list50); + ref ChangeEntry reference50 = ref span19[1]; num3 = 2; - List<string> list52 = new List<string>(num3); - CollectionsMarshal.SetCount(list52, num3); - Span<string> span22 = CollectionsMarshal.AsSpan(list52); - span22[0] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1855705330); - span22[1] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1665406747); - reference51 = new ChangeEntry(EChangeCategory.Fixed, description32, list52); - reference50 = new ChangelogEntry(version19, releaseDate19, list51); - ref ChangelogEntry reference52 = ref span[19]; - string version20 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(36788666); - DateOnly releaseDate20 = new DateOnly(2025, 12, 28); - num2 = 4; - List<ChangeEntry> list53 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list53, num2); - Span<ChangeEntry> span23 = CollectionsMarshal.AsSpan(list53); - ref ChangeEntry reference53 = ref span23[0]; - string description33 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(954784062); - num3 = 1; + List<string> list51 = new List<string>(num3); + CollectionsMarshal.SetCount(list51, num3); + Span<string> span20 = CollectionsMarshal.AsSpan(list51); + span20[0] = "Updated Duty journal to include missing duty types"; + span20[1] = "Added various missing sequences to quests"; + reference50 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list51); + reference48 = new ChangelogEntry("7.4.11", releaseDate19, list49); + ref ChangelogEntry reference51 = ref span[19]; + DateOnly releaseDate20 = new DateOnly(2026, 1, 18); + num2 = 2; + List<ChangeEntry> list52 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list52, num2); + Span<ChangeEntry> span21 = CollectionsMarshal.AsSpan(list52); + ref ChangeEntry reference52 = ref span21[0]; + num3 = 5; + List<string> list53 = new List<string>(num3); + CollectionsMarshal.SetCount(list53, num3); + Span<string> span22 = CollectionsMarshal.AsSpan(list53); + span22[0] = "Added quest blacklisting"; + span22[1] = "Added MSQ Priority config"; + span22[2] = "Added Quest priority persistence config"; + span22[3] = "Added Duties tab to Journal"; + span22[4] = "Added GC shop handling and chocobo naming for chocobo quests"; + reference52 = new ChangeEntry(EChangeCategory.Added, "Major Features", list53); + ref ChangeEntry reference53 = ref span21[1]; + num3 = 5; List<string> list54 = new List<string>(num3); CollectionsMarshal.SetCount(list54, num3); - CollectionsMarshal.AsSpan(list54)[0] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1845887674); - reference53 = new ChangeEntry(EChangeCategory.Added, description33, list54); - ref ChangeEntry reference54 = ref span23[1]; - string description34 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1654501195); - num3 = 3; - List<string> list55 = new List<string>(num3); - CollectionsMarshal.SetCount(list55, num3); - Span<string> span24 = CollectionsMarshal.AsSpan(list55); - span24[0] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-504827294); - span24[1] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1298412013); - span24[2] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(399097166); - reference54 = new ChangeEntry(EChangeCategory.Changed, description34, list55); - ref ChangeEntry reference55 = ref span23[2]; - string description35 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2048683542); + Span<string> span23 = CollectionsMarshal.AsSpan(list54); + span23[0] = "Removed PandorasBox dependency and added QTE handling"; + span23[1] = "Removed CBT dependency and added Snipe handling"; + span23[2] = "Added drag reordering to Stop condition quests"; + span23[3] = "Ignore item level requirements if using Unsync config"; + span23[4] = "Setting a Stop quest to Off no longer removes it from the list"; + reference53 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list54); + reference51 = new ChangelogEntry("7.4.10", releaseDate20, list52); + ref ChangelogEntry reference54 = ref span[20]; + DateOnly releaseDate21 = new DateOnly(2025, 12, 31); + num2 = 3; + List<ChangeEntry> list55 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list55, num2); + Span<ChangeEntry> span24 = CollectionsMarshal.AsSpan(list55); + ref ChangeEntry reference55 = ref span24[0]; num3 = 1; List<string> list56 = new List<string>(num3); CollectionsMarshal.SetCount(list56, num3); - CollectionsMarshal.AsSpan(list56)[0] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1581069025); - reference55 = new ChangeEntry(EChangeCategory.Added, description35, list56); - ref ChangeEntry reference56 = ref span23[3]; - string description36 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1835095083); + CollectionsMarshal.AsSpan(list56)[0] = "Add Heavensturn (2026) quests"; + reference55 = new ChangeEntry(EChangeCategory.QuestUpdates, "New Quest Paths", list56); + ref ChangeEntry reference56 = ref span24[1]; num3 = 1; List<string> list57 = new List<string>(num3); CollectionsMarshal.SetCount(list57, num3); - CollectionsMarshal.AsSpan(list57)[0] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1397502577); - reference56 = new ChangeEntry(EChangeCategory.Fixed, description36, list57); - reference52 = new ChangelogEntry(version20, releaseDate20, list53); - ref ChangelogEntry reference57 = ref span[20]; - string version21 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-832897702); - DateOnly releaseDate21 = new DateOnly(2025, 12, 23); - num2 = 2; - List<ChangeEntry> list58 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list58, num2); - Span<ChangeEntry> span25 = CollectionsMarshal.AsSpan(list58); - ref ChangeEntry reference58 = ref span25[0]; - string description37 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2066276421); + CollectionsMarshal.AsSpan(list57)[0] = "Added missing quest sequences"; + reference56 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list57); + ref ChangeEntry reference57 = ref span24[2]; num3 = 1; - List<string> list59 = new List<string>(num3); - CollectionsMarshal.SetCount(list59, num3); - CollectionsMarshal.AsSpan(list59)[0] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-947900172); - reference58 = new ChangeEntry(EChangeCategory.Added, description37, list59); - ref ChangeEntry reference59 = ref span25[1]; - string description38 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85797835); + List<string> list58 = new List<string>(num3); + CollectionsMarshal.SetCount(list58, num3); + CollectionsMarshal.AsSpan(list58)[0] = "Fixed leveling mode not restarting properly"; + reference57 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list58); + reference54 = new ChangelogEntry("7.4.9", releaseDate21, list55); + ref ChangelogEntry reference58 = ref span[21]; + DateOnly releaseDate22 = new DateOnly(2025, 12, 29); + num2 = 1; + List<ChangeEntry> list59 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list59, num2); + ref ChangeEntry reference59 = ref CollectionsMarshal.AsSpan(list59)[0]; num3 = 2; List<string> list60 = new List<string>(num3); CollectionsMarshal.SetCount(list60, num3); - Span<string> span26 = CollectionsMarshal.AsSpan(list60); - span26[0] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1200354981); - span26[1] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1129217432); - reference59 = new ChangeEntry(EChangeCategory.Changed, description38, list60); - reference57 = new ChangelogEntry(version21, releaseDate21, list58); - ref ChangelogEntry reference60 = ref span[21]; - string version22 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-996768915); - DateOnly releaseDate22 = new DateOnly(2025, 12, 22); - num2 = 1; + Span<string> span25 = CollectionsMarshal.AsSpan(list60); + span25[0] = "Fixed infinite teleport loop when multiple quests compete for priority"; + span25[1] = "Fixed leveling mode enabling for quest duties"; + reference59 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list60); + reference58 = new ChangelogEntry("7.4.8", releaseDate22, list59); + ref ChangelogEntry reference60 = ref span[22]; + DateOnly releaseDate23 = new DateOnly(2025, 12, 28); + num2 = 4; List<ChangeEntry> list61 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list61, num2); - ref ChangeEntry reference61 = ref CollectionsMarshal.AsSpan(list61)[0]; - string description39 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85797835); - num3 = 2; + Span<ChangeEntry> span26 = CollectionsMarshal.AsSpan(list61); + ref ChangeEntry reference61 = ref span26[0]; + num3 = 1; List<string> list62 = new List<string>(num3); CollectionsMarshal.SetCount(list62, num3); - Span<string> span27 = CollectionsMarshal.AsSpan(list62); - span27[0] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(751504229); - span27[1] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1213300876); - reference61 = new ChangeEntry(EChangeCategory.Changed, description39, list62); - reference60 = new ChangelogEntry(version22, releaseDate22, list61); - ref ChangelogEntry reference62 = ref span[22]; - string version23 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(18431859); - DateOnly releaseDate23 = new DateOnly(2025, 12, 21); - num2 = 2; - List<ChangeEntry> list63 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list63, num2); - Span<ChangeEntry> span28 = CollectionsMarshal.AsSpan(list63); - ref ChangeEntry reference63 = ref span28[0]; - string description40 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1932541412); + CollectionsMarshal.AsSpan(list62)[0] = "Added leveling mode when underleveled for MSQ"; + reference61 = new ChangeEntry(EChangeCategory.Added, "Major Features", list62); + ref ChangeEntry reference62 = ref span26[1]; + num3 = 3; + List<string> list63 = new List<string>(num3); + CollectionsMarshal.SetCount(list63, num3); + Span<string> span27 = CollectionsMarshal.AsSpan(list63); + span27[0] = "Added missing dungeons to Duties"; + span27[1] = "Added Normal Raids and Alliance Raids to duties tab"; + span27[2] = "Added Pause/Stop modes to stop conditions"; + reference62 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list63); + ref ChangeEntry reference63 = ref span26[2]; num3 = 1; List<string> list64 = new List<string>(num3); CollectionsMarshal.SetCount(list64, num3); - CollectionsMarshal.AsSpan(list64)[0] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1835611599); - reference63 = new ChangeEntry(EChangeCategory.Changed, description40, list64); - ref ChangeEntry reference64 = ref span28[1]; - string description41 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1507569216); + CollectionsMarshal.AsSpan(list64)[0] = "Added leveling mode IPC: IsLevelingModeEnabled, SetLevelingModeEnabled, GetMsqLevelLockInfo, StartLevelingMode, StopLevelingMode"; + reference63 = new ChangeEntry(EChangeCategory.Added, "IPC Changes", list64); + ref ChangeEntry reference64 = ref span26[3]; num3 = 1; List<string> list65 = new List<string>(num3); CollectionsMarshal.SetCount(list65, num3); - CollectionsMarshal.AsSpan(list65)[0] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1090499742); - reference64 = new ChangeEntry(EChangeCategory.Fixed, description41, list65); - reference62 = new ChangelogEntry(version23, releaseDate23, list63); + CollectionsMarshal.AsSpan(list65)[0] = "Fixed UI appearing in duties when debuff or interrupts occur"; + reference64 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list65); + reference60 = new ChangelogEntry("7.4.7", releaseDate23, list61); ref ChangelogEntry reference65 = ref span[23]; - string version24 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-695286279); - DateOnly releaseDate24 = new DateOnly(2025, 12, 21); - num2 = 1; + DateOnly releaseDate24 = new DateOnly(2025, 12, 23); + num2 = 2; List<ChangeEntry> list66 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list66, num2); - ref ChangeEntry reference66 = ref CollectionsMarshal.AsSpan(list66)[0]; - string description42 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1507569216); + Span<ChangeEntry> span28 = CollectionsMarshal.AsSpan(list66); + ref ChangeEntry reference66 = ref span28[0]; num3 = 1; List<string> list67 = new List<string>(num3); CollectionsMarshal.SetCount(list67, num3); - CollectionsMarshal.AsSpan(list67)[0] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1939293958); - reference66 = new ChangeEntry(EChangeCategory.Fixed, description42, list67); - reference65 = new ChangelogEntry(version24, releaseDate24, list66); - ref ChangelogEntry reference67 = ref span[24]; - string version25 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1477813935); - DateOnly releaseDate25 = new DateOnly(2025, 12, 20); - num2 = 2; - List<ChangeEntry> list68 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list68, num2); - Span<ChangeEntry> span29 = CollectionsMarshal.AsSpan(list68); - ref ChangeEntry reference68 = ref span29[0]; - string description43 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1236459337); - num3 = 1; - List<string> list69 = new List<string>(num3); - CollectionsMarshal.SetCount(list69, num3); - CollectionsMarshal.AsSpan(list69)[0] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(248228720); - reference68 = new ChangeEntry(EChangeCategory.QuestUpdates, description43, list69); - ref ChangeEntry reference69 = ref span29[1]; - string description44 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1579620133); - num3 = 1; + CollectionsMarshal.AsSpan(list67)[0] = "Added Cinema Mode to not skip cutscenes"; + reference66 = new ChangeEntry(EChangeCategory.Added, "Major Features", list67); + ref ChangeEntry reference67 = ref span28[1]; + num3 = 2; + List<string> list68 = new List<string>(num3); + CollectionsMarshal.SetCount(list68, num3); + Span<string> span29 = CollectionsMarshal.AsSpan(list68); + span29[0] = "Added handling for Unsync (Party) to Party Watchdog and configuration to disable if in party"; + span29[1] = "Stop conditions now act as a true stop"; + reference67 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list68); + reference65 = new ChangelogEntry("7.4.6", releaseDate24, list66); + ref ChangelogEntry reference68 = ref span[24]; + DateOnly releaseDate25 = new DateOnly(2025, 12, 22); + num2 = 1; + List<ChangeEntry> list69 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list69, num2); + ref ChangeEntry reference69 = ref CollectionsMarshal.AsSpan(list69)[0]; + num3 = 2; List<string> list70 = new List<string>(num3); CollectionsMarshal.SetCount(list70, num3); - CollectionsMarshal.AsSpan(list70)[0] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1755079218); - reference69 = new ChangeEntry(EChangeCategory.Fixed, description44, list70); - reference67 = new ChangelogEntry(version25, releaseDate25, list68); + Span<string> span30 = CollectionsMarshal.AsSpan(list70); + span30[0] = "Dive adjustments"; + span30[1] = "Logging message adjustments"; + reference69 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list70); + reference68 = new ChangelogEntry("7.4.5", releaseDate25, list69); ref ChangelogEntry reference70 = ref span[25]; - string version26 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1560310770); - DateOnly releaseDate26 = new DateOnly(2025, 12, 19); - num2 = 1; + DateOnly releaseDate26 = new DateOnly(2025, 12, 21); + num2 = 2; List<ChangeEntry> list71 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list71, num2); - ref ChangeEntry reference71 = ref CollectionsMarshal.AsSpan(list71)[0]; - string description45 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(104530671); - num3 = 2; + Span<ChangeEntry> span31 = CollectionsMarshal.AsSpan(list71); + ref ChangeEntry reference71 = ref span31[0]; + num3 = 1; List<string> list72 = new List<string>(num3); CollectionsMarshal.SetCount(list72, num3); - Span<string> span30 = CollectionsMarshal.AsSpan(list72); - span30[0] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-810604868); - span30[1] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(908882830); - reference71 = new ChangeEntry(EChangeCategory.QuestUpdates, description45, list72); - reference70 = new ChangelogEntry(version26, releaseDate26, list71); - ref ChangelogEntry reference72 = ref span[26]; - string version27 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(727206169); - DateOnly releaseDate27 = new DateOnly(2025, 12, 17); + CollectionsMarshal.AsSpan(list72)[0] = "Changelog only shows once per update now"; + reference71 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list72); + ref ChangeEntry reference72 = ref span31[1]; + num3 = 1; + List<string> list73 = new List<string>(num3); + CollectionsMarshal.SetCount(list73, num3); + CollectionsMarshal.AsSpan(list73)[0] = "Fixed gathering paths loading"; + reference72 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list73); + reference70 = new ChangelogEntry("7.4.4", releaseDate26, list71); + ref ChangelogEntry reference73 = ref span[26]; + DateOnly releaseDate27 = new DateOnly(2025, 12, 21); num2 = 1; - List<ChangeEntry> list73 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list73, num2); - CollectionsMarshal.AsSpan(list73)[0] = new ChangeEntry(EChangeCategory.Changed, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1604730059)); - reference72 = new ChangelogEntry(version27, releaseDate27, list73); - ref ChangelogEntry reference73 = ref span[27]; - string version28 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2099862460); - DateOnly releaseDate28 = new DateOnly(2025, 12, 6); - num2 = 2; List<ChangeEntry> list74 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list74, num2); - Span<ChangeEntry> span31 = CollectionsMarshal.AsSpan(list74); - ref ChangeEntry reference74 = ref span31[0]; - string description46 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85797835); - num3 = 4; + ref ChangeEntry reference74 = ref CollectionsMarshal.AsSpan(list74)[0]; + num3 = 1; List<string> list75 = new List<string>(num3); CollectionsMarshal.SetCount(list75, num3); - Span<string> span32 = CollectionsMarshal.AsSpan(list75); - span32[0] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1182594524); - span32[1] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-756473470); - span32[2] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(314528771); - span32[3] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(724681129); - reference74 = new ChangeEntry(EChangeCategory.Changed, description46, list75); - ref ChangeEntry reference75 = ref span31[1]; - string description47 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1835095083); - num3 = 1; - List<string> list76 = new List<string>(num3); - CollectionsMarshal.SetCount(list76, num3); - CollectionsMarshal.AsSpan(list76)[0] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-137511598); - reference75 = new ChangeEntry(EChangeCategory.Fixed, description47, list76); - reference73 = new ChangelogEntry(version28, releaseDate28, list74); - ref ChangelogEntry reference76 = ref span[28]; - string version29 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-46381476); - DateOnly releaseDate29 = new DateOnly(2025, 11, 29); + CollectionsMarshal.AsSpan(list75)[0] = "Fixed changelog version checks"; + reference74 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list75); + reference73 = new ChangelogEntry("7.4.3", releaseDate27, list74); + ref ChangelogEntry reference75 = ref span[27]; + DateOnly releaseDate28 = new DateOnly(2025, 12, 20); num2 = 2; - List<ChangeEntry> list77 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list77, num2); - Span<ChangeEntry> span33 = CollectionsMarshal.AsSpan(list77); - ref ChangeEntry reference77 = ref span33[0]; - string description48 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85797835); - num3 = 3; + List<ChangeEntry> list76 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list76, num2); + Span<ChangeEntry> span32 = CollectionsMarshal.AsSpan(list76); + ref ChangeEntry reference76 = ref span32[0]; + num3 = 1; + List<string> list77 = new List<string>(num3); + CollectionsMarshal.SetCount(list77, num3); + CollectionsMarshal.AsSpan(list77)[0] = "Add 7.4 Starlight Celebration (2025) quest"; + reference76 = new ChangeEntry(EChangeCategory.QuestUpdates, "New Quest Paths", list77); + ref ChangeEntry reference77 = ref span32[1]; + num3 = 1; List<string> list78 = new List<string>(num3); CollectionsMarshal.SetCount(list78, num3); - Span<string> span34 = CollectionsMarshal.AsSpan(list78); - span34[0] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-409468670); - span34[1] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1767459051); - span34[2] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1881526523); - reference77 = new ChangeEntry(EChangeCategory.Changed, description48, list78); - ref ChangeEntry reference78 = ref span33[1]; - string description49 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1584699393); - num3 = 3; - List<string> list79 = new List<string>(num3); - CollectionsMarshal.SetCount(list79, num3); - Span<string> span35 = CollectionsMarshal.AsSpan(list79); - span35[0] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1592881755); - span35[1] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-210252689); - span35[2] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(973706259); - reference78 = new ChangeEntry(EChangeCategory.Fixed, description49, list79); - reference76 = new ChangelogEntry(version29, releaseDate29, list77); - ref ChangelogEntry reference79 = ref span[29]; - string version30 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(179581068); - DateOnly releaseDate30 = new DateOnly(2025, 11, 25); + CollectionsMarshal.AsSpan(list78)[0] = "Fixed 7.4 MSQ"; + reference77 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list78); + reference75 = new ChangelogEntry("7.4.2", releaseDate28, list76); + ref ChangelogEntry reference78 = ref span[28]; + DateOnly releaseDate29 = new DateOnly(2025, 12, 19); + num2 = 1; + List<ChangeEntry> list79 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list79, num2); + ref ChangeEntry reference79 = ref CollectionsMarshal.AsSpan(list79)[0]; + num3 = 2; + List<string> list80 = new List<string>(num3); + CollectionsMarshal.SetCount(list80, num3); + Span<string> span33 = CollectionsMarshal.AsSpan(list80); + span33[0] = "Add 7.4 MSQ"; + span33[1] = "Add 7.4 Arcadion Raid quests"; + reference79 = new ChangeEntry(EChangeCategory.QuestUpdates, "New Quest Paths", list80); + reference78 = new ChangelogEntry("7.4.1", releaseDate29, list79); + ref ChangelogEntry reference80 = ref span[29]; + DateOnly releaseDate30 = new DateOnly(2025, 12, 17); + num2 = 1; + List<ChangeEntry> list81 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list81, num2); + CollectionsMarshal.AsSpan(list81)[0] = new ChangeEntry(EChangeCategory.Changed, "Api 14 update"); + reference80 = new ChangelogEntry("7.4.0", releaseDate30, list81); + ref ChangelogEntry reference81 = ref span[30]; + DateOnly releaseDate31 = new DateOnly(2025, 12, 6); num2 = 2; - List<ChangeEntry> list80 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list80, num2); - Span<ChangeEntry> span36 = CollectionsMarshal.AsSpan(list80); - ref ChangeEntry reference80 = ref span36[0]; - string description50 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(879749489); - num3 = 2; - List<string> list81 = new List<string>(num3); - CollectionsMarshal.SetCount(list81, num3); - Span<string> span37 = CollectionsMarshal.AsSpan(list81); - span37[0] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-204832208); - span37[1] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-179084099); - reference80 = new ChangeEntry(EChangeCategory.Added, description50, list81); - ref ChangeEntry reference81 = ref span36[1]; - string description51 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1221252743); + List<ChangeEntry> list82 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list82, num2); + Span<ChangeEntry> span34 = CollectionsMarshal.AsSpan(list82); + ref ChangeEntry reference82 = ref span34[0]; + num3 = 4; + List<string> list83 = new List<string>(num3); + CollectionsMarshal.SetCount(list83, num3); + Span<string> span35 = CollectionsMarshal.AsSpan(list83); + span35[0] = "Added reloading and rebuilding to movement system"; + span35[1] = "Improved interrupts and refresh states to allow continuation of questing"; + span35[2] = "Added player input detection to stop automation when manually moving character"; + span35[3] = "Added various missing quest sequences"; + reference82 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list83); + ref ChangeEntry reference83 = ref span34[1]; num3 = 1; - List<string> list82 = new List<string>(num3); - CollectionsMarshal.SetCount(list82, num3); - CollectionsMarshal.AsSpan(list82)[0] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(414985783); - reference81 = new ChangeEntry(EChangeCategory.Added, description51, list82); - reference79 = new ChangelogEntry(version30, releaseDate30, list80); - ref ChangelogEntry reference82 = ref span[30]; - string version31 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-833389675); - DateOnly releaseDate31 = new DateOnly(2025, 11, 25); - num2 = 3; - List<ChangeEntry> list83 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list83, num2); - Span<ChangeEntry> span38 = CollectionsMarshal.AsSpan(list83); - ref ChangeEntry reference83 = ref span38[0]; - string description52 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1932541412); - num3 = 2; List<string> list84 = new List<string>(num3); CollectionsMarshal.SetCount(list84, num3); - Span<string> span39 = CollectionsMarshal.AsSpan(list84); - span39[0] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1638683351); - span39[1] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(379716476); - reference83 = new ChangeEntry(EChangeCategory.Changed, description52, list84); - ref ChangeEntry reference84 = ref span38[1]; - string description53 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1221252743); - num3 = 1; - List<string> list85 = new List<string>(num3); - CollectionsMarshal.SetCount(list85, num3); - CollectionsMarshal.AsSpan(list85)[0] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2012802446); - reference84 = new ChangeEntry(EChangeCategory.Added, description53, list85); - ref ChangeEntry reference85 = ref span38[2]; - string description54 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1138488759); - num3 = 1; + CollectionsMarshal.AsSpan(list84)[0] = "Fixed reset task state to prevent stuck interactions after interruption"; + reference83 = new ChangeEntry(EChangeCategory.Fixed, "Fixes", list84); + reference81 = new ChangelogEntry("7.38.9", releaseDate31, list82); + ref ChangelogEntry reference84 = ref span[31]; + DateOnly releaseDate32 = new DateOnly(2025, 11, 29); + num2 = 2; + List<ChangeEntry> list85 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list85, num2); + Span<ChangeEntry> span36 = CollectionsMarshal.AsSpan(list85); + ref ChangeEntry reference85 = ref span36[0]; + num3 = 3; List<string> list86 = new List<string>(num3); CollectionsMarshal.SetCount(list86, num3); - CollectionsMarshal.AsSpan(list86)[0] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-743692222); - reference85 = new ChangeEntry(EChangeCategory.Fixed, description54, list86); - reference82 = new ChangelogEntry(version31, releaseDate31, list83); - ref ChangelogEntry reference86 = ref span[31]; - string version32 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-572940595); - DateOnly releaseDate32 = new DateOnly(2025, 11, 24); + Span<string> span37 = CollectionsMarshal.AsSpan(list86); + span37[0] = "Movement update with automatic retrying if character can't reach target position"; + span37[1] = "Added Hunt mob data"; + span37[2] = "Refactored commands"; + reference85 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list86); + ref ChangeEntry reference86 = ref span36[1]; + num3 = 3; + List<string> list87 = new List<string>(num3); + CollectionsMarshal.SetCount(list87, num3); + Span<string> span38 = CollectionsMarshal.AsSpan(list87); + span38[0] = "Fixed quest (Way of the Archer)"; + span38[1] = "Fixed quest (Spirithold Broken)"; + span38[2] = "Fixed quest (It's Probably Not Pirates)"; + reference86 = new ChangeEntry(EChangeCategory.Fixed, "Bug fixes", list87); + reference84 = new ChangelogEntry("7.38.8", releaseDate32, list85); + ref ChangelogEntry reference87 = ref span[32]; + DateOnly releaseDate33 = new DateOnly(2025, 11, 25); num2 = 2; - List<ChangeEntry> list87 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list87, num2); - Span<ChangeEntry> span40 = CollectionsMarshal.AsSpan(list87); - ref ChangeEntry reference87 = ref span40[0]; - string description55 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-517757456); - num3 = 1; - List<string> list88 = new List<string>(num3); - CollectionsMarshal.SetCount(list88, num3); - CollectionsMarshal.AsSpan(list88)[0] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2056981462); - reference87 = new ChangeEntry(EChangeCategory.Added, description55, list88); - ref ChangeEntry reference88 = ref span40[1]; - string description56 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1797741366); - num3 = 1; + List<ChangeEntry> list88 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list88, num2); + Span<ChangeEntry> span39 = CollectionsMarshal.AsSpan(list88); + ref ChangeEntry reference88 = ref span39[0]; + num3 = 2; List<string> list89 = new List<string>(num3); CollectionsMarshal.SetCount(list89, num3); - CollectionsMarshal.AsSpan(list89)[0] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1250463132); - reference88 = new ChangeEntry(EChangeCategory.Added, description56, list89); - reference86 = new ChangelogEntry(version32, releaseDate32, list87); - ref ChangelogEntry reference89 = ref span[32]; - string version33 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(729407823); - DateOnly releaseDate33 = new DateOnly(2025, 11, 23); - num2 = 2; - List<ChangeEntry> list90 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list90, num2); - Span<ChangeEntry> span41 = CollectionsMarshal.AsSpan(list90); - ref ChangeEntry reference90 = ref span41[0]; - string description57 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1862872262); + Span<string> span40 = CollectionsMarshal.AsSpan(list89); + span40[0] = "Added individual sequence stop condition for each quest"; + span40[1] = "Added Trials to Duties tab in config"; + reference88 = new ChangeEntry(EChangeCategory.Added, "Major features", list89); + ref ChangeEntry reference89 = ref span39[1]; num3 = 1; - List<string> list91 = new List<string>(num3); - CollectionsMarshal.SetCount(list91, num3); - CollectionsMarshal.AsSpan(list91)[0] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-402086315); - reference90 = new ChangeEntry(EChangeCategory.Changed, description57, list91); - ref ChangeEntry reference91 = ref span41[1]; - string description58 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1584699393); - num3 = 8; + List<string> list90 = new List<string>(num3); + CollectionsMarshal.SetCount(list90, num3); + CollectionsMarshal.AsSpan(list90)[0] = "Added IPC for stop conditions: GetQuestSequenceStopCondition, SetQuestSequenceStopCondition, RemoveQuestSequenceStopCondition, GetAllQuestSequenceStopConditions"; + reference89 = new ChangeEntry(EChangeCategory.Added, "IPC changes", list90); + reference87 = new ChangelogEntry("7.38.7", releaseDate33, list88); + ref ChangelogEntry reference90 = ref span[33]; + DateOnly releaseDate34 = new DateOnly(2025, 11, 25); + num2 = 3; + List<ChangeEntry> list91 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list91, num2); + Span<ChangeEntry> span41 = CollectionsMarshal.AsSpan(list91); + ref ChangeEntry reference91 = ref span41[0]; + num3 = 2; List<string> list92 = new List<string>(num3); CollectionsMarshal.SetCount(list92, num3); Span<string> span42 = CollectionsMarshal.AsSpan(list92); - span42[0] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1506905200); - span42[1] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1696740166); - span42[2] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(679276901); - span42[3] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1358007144); - span42[4] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1152975625); - span42[5] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1423850813); - span42[6] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(324156074); - span42[7] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2074155997); - reference91 = new ChangeEntry(EChangeCategory.Fixed, description58, list92); - reference89 = new ChangelogEntry(version33, releaseDate33, list90); - ref ChangelogEntry reference92 = ref span[33]; - string version34 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(756028822); - DateOnly releaseDate34 = new DateOnly(2025, 11, 23); - num2 = 3; - List<ChangeEntry> list93 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list93, num2); - Span<ChangeEntry> span43 = CollectionsMarshal.AsSpan(list93); - ref ChangeEntry reference93 = ref span43[0]; - string description59 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(774081000); - num3 = 2; + span42[0] = "Updated Allied Society journal text"; + span42[1] = "Improved Allied Society rank handling"; + reference91 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list92); + ref ChangeEntry reference92 = ref span41[1]; + num3 = 1; + List<string> list93 = new List<string>(num3); + CollectionsMarshal.SetCount(list93, num3); + CollectionsMarshal.AsSpan(list93)[0] = "Added IPC for Allied Society: AddAlliedSocietyOptimalQuests, GetAlliedSocietyOptimalQuests"; + reference92 = new ChangeEntry(EChangeCategory.Added, "IPC changes", list93); + ref ChangeEntry reference93 = ref span41[2]; + num3 = 1; List<string> list94 = new List<string>(num3); CollectionsMarshal.SetCount(list94, num3); - Span<string> span44 = CollectionsMarshal.AsSpan(list94); - span44[0] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1899046269); - span44[1] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1707331003); - reference93 = new ChangeEntry(EChangeCategory.Changed, description59, list94); - ref ChangeEntry reference94 = ref span43[1]; - string description60 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-702400365); - num3 = 2; - List<string> list95 = new List<string>(num3); - CollectionsMarshal.SetCount(list95, num3); - Span<string> span45 = CollectionsMarshal.AsSpan(list95); - span45[0] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1435980479); - span45[1] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(590020347); - reference94 = new ChangeEntry(EChangeCategory.Added, description60, list95); - ref ChangeEntry reference95 = ref span43[2]; - string description61 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1067663029); - num3 = 3; + CollectionsMarshal.AsSpan(list94)[0] = "Fixed quest (We Come in Peace)"; + reference93 = new ChangeEntry(EChangeCategory.Fixed, "Bug fixes", list94); + reference90 = new ChangelogEntry("7.38.6", releaseDate34, list91); + ref ChangelogEntry reference94 = ref span[34]; + DateOnly releaseDate35 = new DateOnly(2025, 11, 24); + num2 = 2; + List<ChangeEntry> list95 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list95, num2); + Span<ChangeEntry> span43 = CollectionsMarshal.AsSpan(list95); + ref ChangeEntry reference95 = ref span43[0]; + num3 = 1; List<string> list96 = new List<string>(num3); CollectionsMarshal.SetCount(list96, num3); - Span<string> span46 = CollectionsMarshal.AsSpan(list96); - span46[0] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2109705238); - span46[1] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(712270181); - span46[2] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(220065043); - reference95 = new ChangeEntry(EChangeCategory.Fixed, description61, list96); - reference92 = new ChangelogEntry(version34, releaseDate34, list93); - ref ChangelogEntry reference96 = ref span[34]; - string version35 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1756037876); - DateOnly releaseDate35 = new DateOnly(2025, 11, 18); - num2 = 3; - List<ChangeEntry> list97 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list97, num2); - Span<ChangeEntry> span47 = CollectionsMarshal.AsSpan(list97); - ref ChangeEntry reference97 = ref span47[0]; - string description62 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(707786884); - num3 = 2; - List<string> list98 = new List<string>(num3); - CollectionsMarshal.SetCount(list98, num3); - Span<string> span48 = CollectionsMarshal.AsSpan(list98); - span48[0] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1766930974); - span48[1] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1162740109); - reference97 = new ChangeEntry(EChangeCategory.Added, description62, list98); - ref ChangeEntry reference98 = ref span47[1]; - string description63 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1797741366); - num3 = 3; + CollectionsMarshal.AsSpan(list96)[0] = "Added Allied Society daily allowance tracker with bulk quest adding buttons"; + reference95 = new ChangeEntry(EChangeCategory.Added, "Major features", list96); + ref ChangeEntry reference96 = ref span43[1]; + num3 = 1; + List<string> list97 = new List<string>(num3); + CollectionsMarshal.SetCount(list97, num3); + CollectionsMarshal.AsSpan(list97)[0] = "Added IPC for Allied Society: GetRemainingAllowances, GetTimeUntilReset, GetAvailableQuestIds, GetAllAvailableQuestCounts, IsMaxRank, GetCurrentRank, GetSocietiesWithAvailableQuests"; + reference96 = new ChangeEntry(EChangeCategory.Added, "IPC changes", list97); + reference94 = new ChangelogEntry("7.38.5", releaseDate35, list95); + ref ChangelogEntry reference97 = ref span[35]; + DateOnly releaseDate36 = new DateOnly(2025, 11, 23); + num2 = 2; + List<ChangeEntry> list98 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list98, num2); + Span<ChangeEntry> span44 = CollectionsMarshal.AsSpan(list98); + ref ChangeEntry reference98 = ref span44[0]; + num3 = 1; List<string> list99 = new List<string>(num3); CollectionsMarshal.SetCount(list99, num3); - Span<string> span49 = CollectionsMarshal.AsSpan(list99); - span49[0] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1908218331); - span49[1] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1111869066); - span49[2] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1514865425); - reference98 = new ChangeEntry(EChangeCategory.Added, description63, list99); - span47[2] = new ChangeEntry(EChangeCategory.Fixed, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1365448920)); - reference96 = new ChangelogEntry(version35, releaseDate35, list97); - ref ChangelogEntry reference99 = ref span[35]; - string version36 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(51318086); - DateOnly releaseDate36 = new DateOnly(2025, 11, 18); + CollectionsMarshal.AsSpan(list99)[0] = "Explicitly declare support for BMR singleplayer duty (The Rematch)"; + reference98 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list99); + ref ChangeEntry reference99 = ref span44[1]; + num3 = 8; + List<string> list100 = new List<string>(num3); + CollectionsMarshal.SetCount(list100, num3); + Span<string> span45 = CollectionsMarshal.AsSpan(list100); + span45[0] = "Fixed quest (Microbrewing) to not get stuck near ramp"; + span45[1] = "Fixed quest (The Illuminated Land) where pathing would kill the player due to fall damage"; + span45[2] = "Fixed quest (It's Probably Not Pirates) improper pathing and removed unneeded step"; + span45[3] = "Fixed quest (The Black Wolf's Ultimatum) not exiting landing area"; + span45[4] = "Fixed quest (Magiteknical Failure) from not interacting with NPC due to being mounted"; + span45[5] = "Fixed quest (We Come in Peace) shortcut navigation"; + span45[6] = "Fixed quest (Poisoned Hearts) where incorrect pathing caused the player to die"; + span45[7] = "Fixed quests (Savage Snares) and (An Apple a Day) not detecting kills"; + reference99 = new ChangeEntry(EChangeCategory.Fixed, "Bug fixes", list100); + reference97 = new ChangelogEntry("7.38.4", releaseDate36, list98); + ref ChangelogEntry reference100 = ref span[36]; + DateOnly releaseDate37 = new DateOnly(2025, 11, 23); num2 = 3; - List<ChangeEntry> list100 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list100, num2); - Span<ChangeEntry> span50 = CollectionsMarshal.AsSpan(list100); - ref ChangeEntry reference100 = ref span50[0]; - string description64 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1932541412); - num3 = 1; - List<string> list101 = new List<string>(num3); - CollectionsMarshal.SetCount(list101, num3); - CollectionsMarshal.AsSpan(list101)[0] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1869325161); - reference100 = new ChangeEntry(EChangeCategory.Changed, description64, list101); - ref ChangeEntry reference101 = ref span50[1]; - string description65 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1810567874); - num3 = 3; + List<ChangeEntry> list101 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list101, num2); + Span<ChangeEntry> span46 = CollectionsMarshal.AsSpan(list101); + ref ChangeEntry reference101 = ref span46[0]; + num3 = 2; List<string> list102 = new List<string>(num3); CollectionsMarshal.SetCount(list102, num3); - Span<string> span51 = CollectionsMarshal.AsSpan(list102); - span51[0] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1256133354); - span51[1] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(129256587); - span51[2] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-683046242); - reference101 = new ChangeEntry(EChangeCategory.QuestUpdates, description65, list102); - ref ChangeEntry reference102 = ref span50[2]; - string description66 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2084764248); - num3 = 3; + Span<string> span47 = CollectionsMarshal.AsSpan(list102); + span47[0] = "Added RequireHq to crafting InteractionType"; + span47[1] = "Mark GC quests as Locked if rank not achieved"; + reference101 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list102); + ref ChangeEntry reference102 = ref span46[1]; + num3 = 2; List<string> list103 = new List<string>(num3); CollectionsMarshal.SetCount(list103, num3); - Span<string> span52 = CollectionsMarshal.AsSpan(list103); - span52[0] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-716939801); - span52[1] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-917137841); - span52[2] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(642718343); - reference102 = new ChangeEntry(EChangeCategory.Fixed, description66, list103); - reference99 = new ChangelogEntry(version36, releaseDate36, list100); - ref ChangelogEntry reference103 = ref span[36]; - string version37 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1419048494); - DateOnly releaseDate37 = new DateOnly(2025, 11, 17); - num2 = 5; - List<ChangeEntry> list104 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list104, num2); - Span<ChangeEntry> span53 = CollectionsMarshal.AsSpan(list104); - ref ChangeEntry reference104 = ref span53[0]; - string description67 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(707786884); - num3 = 2; - List<string> list105 = new List<string>(num3); - CollectionsMarshal.SetCount(list105, num3); - Span<string> span54 = CollectionsMarshal.AsSpan(list105); - span54[0] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(405845762); - span54[1] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-54945114); - reference104 = new ChangeEntry(EChangeCategory.Added, description67, list105); - ref ChangeEntry reference105 = ref span53[1]; - string description68 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(774081000); + Span<string> span48 = CollectionsMarshal.AsSpan(list103); + span48[0] = "Added IPC for stop conditions: GetStopConditionsEnabled, SetStopConditionsEnabled, GetStopQuestList, AddStopQuest, RemoveStopQuest, ClearStopQuests, GetLevelStopCondition, SetLevelStopCondition, GetSequenceStopCondition, SetSequenceStopCondition"; + span48[1] = "Added IPC for priority quests: GetPriorityQuests, RemovePriorityQuest, ReorderPriorityQuest, GetAvailablePresets, GetPresetQuests, AddPresetToPriority, IsPresetAvailable, IsQuestInPriority, GetQuestPriorityIndex, HasAvailablePriorityQuests"; + reference102 = new ChangeEntry(EChangeCategory.Added, "IPC changes", list103); + ref ChangeEntry reference103 = ref span46[2]; + num3 = 3; + List<string> list104 = new List<string>(num3); + CollectionsMarshal.SetCount(list104, num3); + Span<string> span49 = CollectionsMarshal.AsSpan(list104); + span49[0] = "Fixed line breaks not working in dialog strings"; + span49[1] = "Fixed quest (Labor of Love)"; + span49[2] = "Fixed quest (Sea of Sorrow)"; + reference103 = new ChangeEntry(EChangeCategory.Fixed, "Bug fixes", list104); + reference100 = new ChangelogEntry("7.38.3", releaseDate37, list101); + ref ChangelogEntry reference104 = ref span[37]; + DateOnly releaseDate38 = new DateOnly(2025, 11, 18); + num2 = 3; + List<ChangeEntry> list105 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list105, num2); + Span<ChangeEntry> span50 = CollectionsMarshal.AsSpan(list105); + ref ChangeEntry reference105 = ref span50[0]; num3 = 2; List<string> list106 = new List<string>(num3); CollectionsMarshal.SetCount(list106, num3); - Span<string> span55 = CollectionsMarshal.AsSpan(list106); - span55[0] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2098955524); - span55[1] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-441677591); - reference105 = new ChangeEntry(EChangeCategory.Changed, description68, list106); - ref ChangeEntry reference106 = ref span53[2]; - string description69 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1797741366); + Span<string> span51 = CollectionsMarshal.AsSpan(list106); + span51[0] = "Auto Duty unsync options for each duty (Duty Support, Unsync Solo, Unsync Party)"; + span51[1] = "Added Auto Duty unsync options to quest schema and updated quests using old unsync method"; + reference105 = new ChangeEntry(EChangeCategory.Added, "Major features", list106); + ref ChangeEntry reference106 = ref span50[1]; num3 = 3; List<string> list107 = new List<string>(num3); CollectionsMarshal.SetCount(list107, num3); - Span<string> span56 = CollectionsMarshal.AsSpan(list107); - span56[0] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2047151790); - span56[1] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(580274190); - span56[2] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(885475673); - reference106 = new ChangeEntry(EChangeCategory.Changed, description69, list107); - span53[3] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1719573355)); - span53[4] = new ChangeEntry(EChangeCategory.Fixed, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1679789910)); - reference103 = new ChangelogEntry(version37, releaseDate37, list104); - ref ChangelogEntry reference107 = ref span[37]; - string version38 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1509038283); - DateOnly releaseDate38 = new DateOnly(2025, 11, 8); - num2 = 1; + Span<string> span52 = CollectionsMarshal.AsSpan(list107); + span52[0] = "Added IPC for duty sync handling: GetDefaultDutyMode, SetDefaultDutyMode"; + span52[1] = "Added IPC for duty mode overrides: GetDutyModeOverride, SetDutyModeOverride"; + span52[2] = "Added IPC for clearing overrides: ClearDutyModeOverride, ClearAllDutyModeOverrides"; + reference106 = new ChangeEntry(EChangeCategory.Added, "IPC changes", list107); + span50[2] = new ChangeEntry(EChangeCategory.Fixed, "Fixed quest (Constant Cravings)"); + reference104 = new ChangelogEntry("7.38.2", releaseDate38, list105); + ref ChangelogEntry reference107 = ref span[38]; + DateOnly releaseDate39 = new DateOnly(2025, 11, 18); + num2 = 3; List<ChangeEntry> list108 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list108, num2); - CollectionsMarshal.AsSpan(list108)[0] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1577309578)); - reference107 = new ChangelogEntry(version38, releaseDate38, list108); - ref ChangelogEntry reference108 = ref span[38]; - string version39 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1194955886); - DateOnly releaseDate39 = new DateOnly(2025, 11, 8); - num2 = 1; - List<ChangeEntry> list109 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list109, num2); - CollectionsMarshal.AsSpan(list109)[0] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1883444568)); - reference108 = new ChangelogEntry(version39, releaseDate39, list109); - ref ChangelogEntry reference109 = ref span[39]; - string version40 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-458815233); - DateOnly releaseDate40 = new DateOnly(2025, 11, 2); - num2 = 1; - List<ChangeEntry> list110 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list110, num2); - CollectionsMarshal.AsSpan(list110)[0] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(703027607)); - reference109 = new ChangelogEntry(version40, releaseDate40, list110); - ref ChangelogEntry reference110 = ref span[40]; - string version41 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-296614981); - DateOnly releaseDate41 = new DateOnly(2025, 10, 28); - num2 = 1; - List<ChangeEntry> list111 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list111, num2); - CollectionsMarshal.AsSpan(list111)[0] = new ChangeEntry(EChangeCategory.Fixed, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1103721861)); - reference110 = new ChangelogEntry(version41, releaseDate41, list111); - ref ChangelogEntry reference111 = ref span[41]; - string version42 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1667356195); - DateOnly releaseDate42 = new DateOnly(2025, 10, 23); - num2 = 2; + Span<ChangeEntry> span53 = CollectionsMarshal.AsSpan(list108); + ref ChangeEntry reference108 = ref span53[0]; + num3 = 1; + List<string> list109 = new List<string>(num3); + CollectionsMarshal.SetCount(list109, num3); + CollectionsMarshal.AsSpan(list109)[0] = "Added new fields to quest schema"; + reference108 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list109); + ref ChangeEntry reference109 = ref span53[1]; + num3 = 3; + List<string> list110 = new List<string>(num3); + CollectionsMarshal.SetCount(list110, num3); + Span<string> span54 = CollectionsMarshal.AsSpan(list110); + span54[0] = "A Faerie Tale Come True"; + span54[1] = "Constant Cravings"; + span54[2] = "A Bridge Too Full"; + reference109 = new ChangeEntry(EChangeCategory.QuestUpdates, "Added new quest paths", list110); + ref ChangeEntry reference110 = ref span53[2]; + num3 = 3; + List<string> list111 = new List<string>(num3); + CollectionsMarshal.SetCount(list111, num3); + Span<string> span55 = CollectionsMarshal.AsSpan(list111); + span55[0] = "Fixed various quest schemas"; + span55[1] = "Fixed changelog bullet point encoding"; + span55[2] = "Fixed item use to wait until item is used before next action"; + reference110 = new ChangeEntry(EChangeCategory.Fixed, "Bug fixes", list111); + reference107 = new ChangelogEntry("7.38.1", releaseDate39, list108); + ref ChangelogEntry reference111 = ref span[39]; + DateOnly releaseDate40 = new DateOnly(2025, 11, 17); + num2 = 5; List<ChangeEntry> list112 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list112, num2); - Span<ChangeEntry> span57 = CollectionsMarshal.AsSpan(list112); - span57[0] = new ChangeEntry(EChangeCategory.Added, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(247701156)); - span57[1] = new ChangeEntry(EChangeCategory.Fixed, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(370312606)); - reference111 = new ChangelogEntry(version42, releaseDate42, list112); - ref ChangelogEntry reference112 = ref span[42]; - string version43 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-930549391); - DateOnly releaseDate43 = new DateOnly(2025, 10, 23); - num2 = 1; - List<ChangeEntry> list113 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list113, num2); - CollectionsMarshal.AsSpan(list113)[0] = new ChangeEntry(EChangeCategory.Fixed, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(818990204)); - reference112 = new ChangelogEntry(version43, releaseDate43, list113); - ref ChangelogEntry reference113 = ref span[43]; - string version44 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1578631884); - DateOnly releaseDate44 = new DateOnly(2025, 10, 23); - num2 = 1; - List<ChangeEntry> list114 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list114, num2); - CollectionsMarshal.AsSpan(list114)[0] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-725290155)); - reference113 = new ChangelogEntry(version44, releaseDate44, list114); - ref ChangelogEntry reference114 = ref span[44]; - string version45 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(70440809); - DateOnly releaseDate45 = new DateOnly(2025, 10, 21); - num2 = 1; - List<ChangeEntry> list115 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list115, num2); - CollectionsMarshal.AsSpan(list115)[0] = new ChangeEntry(EChangeCategory.Changed, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(994034103)); - reference114 = new ChangelogEntry(version45, releaseDate45, list115); - ref ChangelogEntry reference115 = ref span[45]; - string version46 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-506774381); - DateOnly releaseDate46 = new DateOnly(2025, 10, 21); + Span<ChangeEntry> span56 = CollectionsMarshal.AsSpan(list112); + ref ChangeEntry reference112 = ref span56[0]; + num3 = 2; + List<string> list113 = new List<string>(num3); + CollectionsMarshal.SetCount(list113, num3); + Span<string> span57 = CollectionsMarshal.AsSpan(list113); + span57[0] = "Quest sequence window to show expected sequences in each quest (with quest searching)"; + span57[1] = "Changelog"; + reference112 = new ChangeEntry(EChangeCategory.Added, "Major features", list113); + ref ChangeEntry reference113 = ref span56[1]; + num3 = 2; + List<string> list114 = new List<string>(num3); + CollectionsMarshal.SetCount(list114, num3); + Span<string> span58 = CollectionsMarshal.AsSpan(list114); + span58[0] = "Updated quest schemas"; + span58[1] = "Added search bar to preferred mounts and capitalization to mirror game mount names"; + reference113 = new ChangeEntry(EChangeCategory.Changed, "Improvements", list114); + ref ChangeEntry reference114 = ref span56[2]; + num3 = 3; + List<string> list115 = new List<string>(num3); + CollectionsMarshal.SetCount(list115, num3); + Span<string> span59 = CollectionsMarshal.AsSpan(list115); + span59[0] = "Renamed IsQuestCompleted → IsQuestComplete"; + span59[1] = "Renamed IsQuestAvailable → IsReadyToAcceptQuest"; + span59[2] = "Added GetCurrentTask IPC"; + reference114 = new ChangeEntry(EChangeCategory.Changed, "IPC changes", list115); + span56[3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added all Hildibrand quests"); + span56[4] = new ChangeEntry(EChangeCategory.Fixed, "Fixed credits/cutscenes playback"); + reference111 = new ChangelogEntry("7.38.0", releaseDate40, list112); + ref ChangelogEntry reference115 = ref span[40]; + DateOnly releaseDate41 = new DateOnly(2025, 11, 8); num2 = 1; List<ChangeEntry> list116 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list116, num2); - CollectionsMarshal.AsSpan(list116)[0] = new ChangeEntry(EChangeCategory.Added, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1919581107)); - reference115 = new ChangelogEntry(version46, releaseDate46, list116); - ref ChangelogEntry reference116 = ref span[46]; - string version47 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1219020768); - DateOnly releaseDate47 = new DateOnly(2025, 10, 20); - num2 = 2; + CollectionsMarshal.AsSpan(list116)[0] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added Fall Guys quest (Just Crowning Around)"); + reference115 = new ChangelogEntry("6.38", releaseDate41, list116); + ref ChangelogEntry reference116 = ref span[41]; + DateOnly releaseDate42 = new DateOnly(2025, 11, 8); + num2 = 1; List<ChangeEntry> list117 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list117, num2); - Span<ChangeEntry> span58 = CollectionsMarshal.AsSpan(list117); - ref ChangeEntry reference117 = ref span58[0]; - string description70 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1906775718); - num3 = 2; - List<string> list118 = new List<string>(num3); - CollectionsMarshal.SetCount(list118, num3); - Span<string> span59 = CollectionsMarshal.AsSpan(list118); - span59[0] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(181316074); - span59[1] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(561917383); - reference117 = new ChangeEntry(EChangeCategory.Changed, description70, list118); - span58[1] = new ChangeEntry(EChangeCategory.Fixed, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(383802089)); - reference116 = new ChangelogEntry(version47, releaseDate47, list117); - ref ChangelogEntry reference118 = ref span[47]; - string version48 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(201999929); - DateOnly releaseDate48 = new DateOnly(2025, 10, 19); + CollectionsMarshal.AsSpan(list117)[0] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added Cosmic Exploration and various unlock quests"); + reference116 = new ChangelogEntry("6.37", releaseDate42, list117); + ref ChangelogEntry reference117 = ref span[42]; + DateOnly releaseDate43 = new DateOnly(2025, 11, 2); + num2 = 1; + List<ChangeEntry> list118 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list118, num2); + CollectionsMarshal.AsSpan(list118)[0] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy Rank 6 quest (With High Spirits)"); + reference117 = new ChangelogEntry("6.36", releaseDate43, list118); + ref ChangelogEntry reference118 = ref span[43]; + DateOnly releaseDate44 = new DateOnly(2025, 10, 28); num2 = 1; List<ChangeEntry> list119 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list119, num2); - CollectionsMarshal.AsSpan(list119)[0] = new ChangeEntry(EChangeCategory.Changed, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(23884635)); - reference118 = new ChangelogEntry(version48, releaseDate48, list119); - ref ChangelogEntry reference119 = ref span[48]; - string version49 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1527764514); - DateOnly releaseDate49 = new DateOnly(2025, 10, 18); + CollectionsMarshal.AsSpan(list119)[0] = new ChangeEntry(EChangeCategory.Fixed, "Fixed level 3 MSQ handling if character started on non-XP buff world"); + reference118 = new ChangelogEntry("6.35", releaseDate44, list119); + ref ChangelogEntry reference119 = ref span[44]; + DateOnly releaseDate45 = new DateOnly(2025, 10, 23); num2 = 2; List<ChangeEntry> list120 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list120, num2); Span<ChangeEntry> span60 = CollectionsMarshal.AsSpan(list120); - span60[0] = new ChangeEntry(EChangeCategory.Changed, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(637188044)); - span60[1] = new ChangeEntry(EChangeCategory.Fixed, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-24626882)); - reference119 = new ChangelogEntry(version49, releaseDate49, list120); - ref ChangelogEntry reference120 = ref span[49]; - string version50 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1821061590); - DateOnly releaseDate50 = new DateOnly(2025, 10, 18); + span60[0] = new ChangeEntry(EChangeCategory.Added, "Added clear priority quests on logout and on completion config settings"); + span60[1] = new ChangeEntry(EChangeCategory.Fixed, "Fixed priority quest importing to respect import order"); + reference119 = new ChangelogEntry("6.34", releaseDate45, list120); + ref ChangelogEntry reference120 = ref span[45]; + DateOnly releaseDate46 = new DateOnly(2025, 10, 23); num2 = 1; List<ChangeEntry> list121 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list121, num2); - CollectionsMarshal.AsSpan(list121)[0] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(767012963)); - reference120 = new ChangelogEntry(version50, releaseDate50, list121); - ref ChangelogEntry reference121 = ref span[50]; - string version51 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1018773058); - DateOnly releaseDate51 = new DateOnly(2025, 10, 17); + CollectionsMarshal.AsSpan(list121)[0] = new ChangeEntry(EChangeCategory.Fixed, "Fixed RSR combat module"); + reference120 = new ChangelogEntry("6.33", releaseDate46, list121); + ref ChangelogEntry reference121 = ref span[46]; + DateOnly releaseDate47 = new DateOnly(2025, 10, 23); num2 = 1; List<ChangeEntry> list122 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list122, num2); - CollectionsMarshal.AsSpan(list122)[0] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(105018276)); - reference121 = new ChangelogEntry(version51, releaseDate51, list122); - ref ChangelogEntry reference122 = ref span[51]; - string version52 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2058716468); - DateOnly releaseDate52 = new DateOnly(2025, 10, 16); + CollectionsMarshal.AsSpan(list122)[0] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy Rank 5 quest (Forged in Corn)"); + reference121 = new ChangelogEntry("6.32", releaseDate47, list122); + ref ChangelogEntry reference122 = ref span[47]; + DateOnly releaseDate48 = new DateOnly(2025, 10, 21); num2 = 1; List<ChangeEntry> list123 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list123, num2); - CollectionsMarshal.AsSpan(list123)[0] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1850932711)); - reference122 = new ChangelogEntry(version52, releaseDate52, list123); - ref ChangelogEntry reference123 = ref span[52]; - string version53 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2065499201); - DateOnly releaseDate53 = new DateOnly(2025, 10, 13); + CollectionsMarshal.AsSpan(list123)[0] = new ChangeEntry(EChangeCategory.Changed, "Added checks for moogle and allied society quests when using add all available quests"); + reference122 = new ChangelogEntry("6.31", releaseDate48, list123); + ref ChangelogEntry reference123 = ref span[48]; + DateOnly releaseDate49 = new DateOnly(2025, 10, 21); num2 = 1; List<ChangeEntry> list124 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list124, num2); - CollectionsMarshal.AsSpan(list124)[0] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1836225832)); - reference123 = new ChangelogEntry(version53, releaseDate53, list124); - ref ChangelogEntry reference124 = ref span[53]; - string version54 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-905248882); - DateOnly releaseDate54 = new DateOnly(2025, 10, 12); - num2 = 3; + CollectionsMarshal.AsSpan(list124)[0] = new ChangeEntry(EChangeCategory.Added, "Added button to journal that allows adding all available quests to priority"); + reference123 = new ChangelogEntry("6.30", releaseDate49, list124); + ref ChangelogEntry reference124 = ref span[49]; + DateOnly releaseDate50 = new DateOnly(2025, 10, 20); + num2 = 2; List<ChangeEntry> list125 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list125, num2); Span<ChangeEntry> span61 = CollectionsMarshal.AsSpan(list125); - span61[0] = new ChangeEntry(EChangeCategory.Changed, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(205757689)); - span61[1] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(598630997)); - span61[2] = new ChangeEntry(EChangeCategory.Fixed, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(547260943)); - reference124 = new ChangelogEntry(version54, releaseDate54, list125); - ref ChangelogEntry reference125 = ref span[54]; - string version55 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(312724870); - DateOnly releaseDate55 = new DateOnly(2025, 10, 12); - num2 = 2; - List<ChangeEntry> list126 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list126, num2); - Span<ChangeEntry> span62 = CollectionsMarshal.AsSpan(list126); - span62[0] = new ChangeEntry(EChangeCategory.Added, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1476449463)); - span62[1] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(598630997)); - reference125 = new ChangelogEntry(version55, releaseDate55, list126); - ref ChangelogEntry reference126 = ref span[55]; - string version56 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1305697836); - DateOnly releaseDate56 = new DateOnly(2025, 10, 10); - num2 = 2; + ref ChangeEntry reference125 = ref span61[0]; + num3 = 2; + List<string> list126 = new List<string>(num3); + CollectionsMarshal.SetCount(list126, num3); + Span<string> span62 = CollectionsMarshal.AsSpan(list126); + span62[0] = "Added item count to combat handling rework"; + span62[1] = "Updated Pandora conflicting features"; + reference125 = new ChangeEntry(EChangeCategory.Changed, "Combat handling improvements", list126); + span61[1] = new ChangeEntry(EChangeCategory.Fixed, "Fixed quest to purchase Gysahl Greens if not in inventory"); + reference124 = new ChangelogEntry("6.29", releaseDate50, list125); + ref ChangelogEntry reference126 = ref span[50]; + DateOnly releaseDate51 = new DateOnly(2025, 10, 19); + num2 = 1; List<ChangeEntry> list127 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list127, num2); - Span<ChangeEntry> span63 = CollectionsMarshal.AsSpan(list127); - span63[0] = new ChangeEntry(EChangeCategory.Changed, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-340821018)); - span63[1] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1274213838)); - reference126 = new ChangelogEntry(version56, releaseDate56, list127); - ref ChangelogEntry reference127 = ref span[56]; - string version57 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-172587466); - DateOnly releaseDate57 = new DateOnly(2025, 10, 9); - num2 = 3; + CollectionsMarshal.AsSpan(list127)[0] = new ChangeEntry(EChangeCategory.Changed, "Reworked kill count combat handling - combat and enemy kills are now processed instantly"); + reference126 = new ChangelogEntry("6.28", releaseDate51, list127); + ref ChangelogEntry reference127 = ref span[51]; + DateOnly releaseDate52 = new DateOnly(2025, 10, 18); + num2 = 2; List<ChangeEntry> list128 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list128, num2); - Span<ChangeEntry> span64 = CollectionsMarshal.AsSpan(list128); - span64[0] = new ChangeEntry(EChangeCategory.Added, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1835561557)); - span64[1] = new ChangeEntry(EChangeCategory.Changed, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(553403373)); - span64[2] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1034346506)); - reference127 = new ChangelogEntry(version57, releaseDate57, list128); - ref ChangelogEntry reference128 = ref span[57]; - string version58 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(876402547); - DateOnly releaseDate58 = new DateOnly(2025, 10, 9); - num2 = 2; + Span<ChangeEntry> span63 = CollectionsMarshal.AsSpan(list128); + span63[0] = new ChangeEntry(EChangeCategory.Changed, "Improved Aether Current checking logic"); + span63[1] = new ChangeEntry(EChangeCategory.Fixed, "Fixed Chocobo Taxi Stand CheckSkip error and Patch 7.3 Fantasia unlock quest date/time"); + reference127 = new ChangelogEntry("6.27", releaseDate52, list128); + ref ChangelogEntry reference128 = ref span[52]; + DateOnly releaseDate53 = new DateOnly(2025, 10, 18); + num2 = 1; List<ChangeEntry> list129 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list129, num2); - Span<ChangeEntry> span65 = CollectionsMarshal.AsSpan(list129); - span65[0] = new ChangeEntry(EChangeCategory.Changed, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2000193881)); - span65[1] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(982019044)); - reference128 = new ChangelogEntry(version58, releaseDate58, list129); - ref ChangelogEntry reference129 = ref span[58]; - string version59 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-277572277); - DateOnly releaseDate59 = new DateOnly(2025, 10, 8); + CollectionsMarshal.AsSpan(list129)[0] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 4 quests"); + reference128 = new ChangelogEntry("6.26", releaseDate53, list129); + ref ChangelogEntry reference129 = ref span[53]; + DateOnly releaseDate54 = new DateOnly(2025, 10, 17); num2 = 1; List<ChangeEntry> list130 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list130, num2); - CollectionsMarshal.AsSpan(list130)[0] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(161460026)); - reference129 = new ChangelogEntry(version59, releaseDate59, list130); - ref ChangelogEntry reference130 = ref span[59]; - string version60 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1878380996); - DateOnly releaseDate60 = new DateOnly(2025, 10, 8); + CollectionsMarshal.AsSpan(list130)[0] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added All Saints' Wake 2025 quests and 7.35 Yok Huy rank 4 quests"); + reference129 = new ChangelogEntry("6.25", releaseDate54, list130); + ref ChangelogEntry reference130 = ref span[54]; + DateOnly releaseDate55 = new DateOnly(2025, 10, 16); num2 = 1; List<ChangeEntry> list131 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list131, num2); - CollectionsMarshal.AsSpan(list131)[0] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-954787702)); - reference130 = new ChangelogEntry(version60, releaseDate60, list131); - ref ChangelogEntry reference131 = ref span[60]; - string version61 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1791776096); - DateOnly releaseDate61 = new DateOnly(2025, 10, 8); - num2 = 2; + CollectionsMarshal.AsSpan(list131)[0] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 4 quests and Deep Dungeon quest"); + reference130 = new ChangelogEntry("6.24", releaseDate55, list131); + ref ChangelogEntry reference131 = ref span[55]; + DateOnly releaseDate56 = new DateOnly(2025, 10, 13); + num2 = 1; List<ChangeEntry> list132 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list132, num2); - Span<ChangeEntry> span66 = CollectionsMarshal.AsSpan(list132); - span66[0] = new ChangeEntry(EChangeCategory.Changed, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1481838677)); - span66[1] = new ChangeEntry(EChangeCategory.Fixed, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1724086869)); - reference131 = new ChangelogEntry(version61, releaseDate61, list132); - ref ChangelogEntry reference132 = ref span[61]; - string version62 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-220687627); - DateOnly releaseDate62 = new DateOnly(2025, 10, 8); - num2 = 1; + CollectionsMarshal.AsSpan(list132)[0] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 3 quest (Larder Logistics)"); + reference131 = new ChangelogEntry("6.23", releaseDate56, list132); + ref ChangelogEntry reference132 = ref span[56]; + DateOnly releaseDate57 = new DateOnly(2025, 10, 12); + num2 = 3; List<ChangeEntry> list133 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list133, num2); - CollectionsMarshal.AsSpan(list133)[0] = new ChangeEntry(EChangeCategory.Fixed, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-807512557)); - reference132 = new ChangelogEntry(version62, releaseDate62, list133); - ref ChangelogEntry reference133 = ref span[62]; - string version63 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(521410695); - DateOnly releaseDate63 = new DateOnly(2025, 10, 8); + Span<ChangeEntry> span64 = CollectionsMarshal.AsSpan(list133); + span64[0] = new ChangeEntry(EChangeCategory.Changed, "Prevent disabled or Locked quests from being started as 'Start as next quest'"); + span64[1] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 3 quests"); + span64[2] = new ChangeEntry(EChangeCategory.Fixed, "Fixed Yok Huy quest and journal quest chain priority issues"); + reference132 = new ChangelogEntry("6.22", releaseDate57, list133); + ref ChangelogEntry reference133 = ref span[57]; + DateOnly releaseDate58 = new DateOnly(2025, 10, 12); num2 = 2; List<ChangeEntry> list134 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list134, num2); - Span<ChangeEntry> span67 = CollectionsMarshal.AsSpan(list134); - ref ChangeEntry reference134 = ref span67[0]; - string description71 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1645202029); - num3 = 3; - List<string> list135 = new List<string>(num3); - CollectionsMarshal.SetCount(list135, num3); - Span<string> span68 = CollectionsMarshal.AsSpan(list135); - span68[0] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(321212655); - span68[1] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-471904200); - span68[2] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2064743449); - reference134 = new ChangeEntry(EChangeCategory.Added, description71, list135); - span67[1] = new ChangeEntry(EChangeCategory.Fixed, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2045598109)); - reference133 = new ChangelogEntry(version63, releaseDate63, list134); - ref ChangelogEntry reference135 = ref span[63]; - string version64 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-474447320); - DateOnly releaseDate64 = new DateOnly(2025, 10, 7); - num2 = 4; + Span<ChangeEntry> span65 = CollectionsMarshal.AsSpan(list134); + span65[0] = new ChangeEntry(EChangeCategory.Added, "Added expansion abbreviation to journal window"); + span65[1] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 3 quests"); + reference133 = new ChangelogEntry("6.21", releaseDate58, list134); + ref ChangelogEntry reference134 = ref span[58]; + DateOnly releaseDate59 = new DateOnly(2025, 10, 10); + num2 = 2; + List<ChangeEntry> list135 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list135, num2); + Span<ChangeEntry> span66 = CollectionsMarshal.AsSpan(list135); + span66[0] = new ChangeEntry(EChangeCategory.Changed, "Allow completed repeatable quests to be used with 'Add quest and requirements to priority' feature"); + span66[1] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 1 quest (A Work of Cart)"); + reference134 = new ChangelogEntry("6.20", releaseDate59, list135); + ref ChangelogEntry reference135 = ref span[59]; + DateOnly releaseDate60 = new DateOnly(2025, 10, 9); + num2 = 3; List<ChangeEntry> list136 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list136, num2); - Span<ChangeEntry> span69 = CollectionsMarshal.AsSpan(list136); - ref ChangeEntry reference136 = ref span69[0]; - string description72 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-376091794); - num3 = 4; - List<string> list137 = new List<string>(num3); - CollectionsMarshal.SetCount(list137, num3); - Span<string> span70 = CollectionsMarshal.AsSpan(list137); - span70[0] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1250491453); - span70[1] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(143865116); - span70[2] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1531914663); - span70[3] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-56875911); - reference136 = new ChangeEntry(EChangeCategory.Added, description72, list137); - ref ChangeEntry reference137 = ref span69[1]; - string description73 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1211779360); - num3 = 3; - List<string> list138 = new List<string>(num3); - CollectionsMarshal.SetCount(list138, num3); - Span<string> span71 = CollectionsMarshal.AsSpan(list138); - span71[0] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2131513407); - span71[1] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1195939832); - span71[2] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1363559479); - reference137 = new ChangeEntry(EChangeCategory.Changed, description73, list138); - span69[2] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1671611849)); - span69[3] = new ChangeEntry(EChangeCategory.Fixed, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-352098557)); - reference135 = new ChangelogEntry(version64, releaseDate64, list136); - ref ChangelogEntry reference138 = ref span[64]; - string version65 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(242245363); - DateOnly releaseDate65 = new DateOnly(2025, 10, 3); + Span<ChangeEntry> span67 = CollectionsMarshal.AsSpan(list136); + span67[0] = new ChangeEntry(EChangeCategory.Added, "Added config to batch Allied Society quest turn-ins"); + span67[1] = new ChangeEntry(EChangeCategory.Changed, "Repeatable quests now show correct availability state in journal"); + span67[2] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 2 quests"); + reference135 = new ChangelogEntry("6.19", releaseDate60, list136); + ref ChangelogEntry reference136 = ref span[60]; + DateOnly releaseDate61 = new DateOnly(2025, 10, 9); + num2 = 2; + List<ChangeEntry> list137 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list137, num2); + Span<ChangeEntry> span68 = CollectionsMarshal.AsSpan(list137); + span68[0] = new ChangeEntry(EChangeCategory.Changed, "Show once completed quests with improved state display"); + span68[1] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy daily quest and improvements to various Yok Huy quests"); + reference136 = new ChangelogEntry("6.18", releaseDate61, list137); + ref ChangelogEntry reference137 = ref span[61]; + DateOnly releaseDate62 = new DateOnly(2025, 10, 8); + num2 = 1; + List<ChangeEntry> list138 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list138, num2); + CollectionsMarshal.AsSpan(list138)[0] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Yok Huy rank 1 and rank 2 quests"); + reference137 = new ChangelogEntry("6.17", releaseDate62, list138); + ref ChangelogEntry reference138 = ref span[62]; + DateOnly releaseDate63 = new DateOnly(2025, 10, 8); num2 = 1; List<ChangeEntry> list139 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list139, num2); - CollectionsMarshal.AsSpan(list139)[0] = new ChangeEntry(EChangeCategory.Changed, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1754889939)); - reference138 = new ChangelogEntry(version65, releaseDate65, list139); - ref ChangelogEntry reference139 = ref span[65]; - string version66 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1825201563); - DateOnly releaseDate66 = new DateOnly(2025, 10, 2); - num2 = 1; + CollectionsMarshal.AsSpan(list139)[0] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Deep Dungeon quest (Faerie Tale)"); + reference138 = new ChangelogEntry("6.16", releaseDate63, list139); + ref ChangelogEntry reference139 = ref span[63]; + DateOnly releaseDate64 = new DateOnly(2025, 10, 8); + num2 = 2; List<ChangeEntry> list140 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list140, num2); - ref ChangeEntry reference140 = ref CollectionsMarshal.AsSpan(list140)[0]; - string description74 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2054962055); - num3 = 2; - List<string> list141 = new List<string>(num3); - CollectionsMarshal.SetCount(list141, num3); - Span<string> span72 = CollectionsMarshal.AsSpan(list141); - span72[0] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1854764015); - span72[1] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2083999023); - reference140 = new ChangeEntry(EChangeCategory.Changed, description74, list141); - reference139 = new ChangelogEntry(version66, releaseDate66, list140); - ref ChangelogEntry reference141 = ref span[66]; - string version67 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1696822631); - DateOnly releaseDate67 = new DateOnly(2025, 9, 21); - num2 = 5; + Span<ChangeEntry> span69 = CollectionsMarshal.AsSpan(list140); + span69[0] = new ChangeEntry(EChangeCategory.Changed, "Dalamud cleanup"); + span69[1] = new ChangeEntry(EChangeCategory.Fixed, "Fixed quest level requirement check log spam"); + reference139 = new ChangelogEntry("6.15", releaseDate64, list140); + ref ChangelogEntry reference140 = ref span[64]; + DateOnly releaseDate65 = new DateOnly(2025, 10, 8); + num2 = 1; + List<ChangeEntry> list141 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list141, num2); + CollectionsMarshal.AsSpan(list141)[0] = new ChangeEntry(EChangeCategory.Fixed, "Fixed abandoned quest check logic if quest were MSQ"); + reference140 = new ChangelogEntry("6.14", releaseDate65, list141); + ref ChangelogEntry reference141 = ref span[65]; + DateOnly releaseDate66 = new DateOnly(2025, 10, 8); + num2 = 2; List<ChangeEntry> list142 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list142, num2); - Span<ChangeEntry> span73 = CollectionsMarshal.AsSpan(list142); - ref ChangeEntry reference142 = ref span73[0]; - string description75 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-53823140); - num3 = 4; + Span<ChangeEntry> span70 = CollectionsMarshal.AsSpan(list142); + ref ChangeEntry reference142 = ref span70[0]; + num3 = 3; List<string> list143 = new List<string>(num3); CollectionsMarshal.SetCount(list143, num3); - Span<string> span74 = CollectionsMarshal.AsSpan(list143); - span74[0] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1885683489); - span74[1] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1712436443); - span74[2] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1887013739); - span74[3] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(659076671); - reference142 = new ChangeEntry(EChangeCategory.Added, description75, list143); - ref ChangeEntry reference143 = ref span73[1]; - string description76 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(743463860); + Span<string> span71 = CollectionsMarshal.AsSpan(list143); + span71[0] = "Context menu option to add required quests and their chain to priority list"; + span71[1] = "AetheryteShortcut to multiple quests"; + span71[2] = "Artisan as a recommended plugin/dependency"; + reference142 = new ChangeEntry(EChangeCategory.Added, "Quest improvements", list143); + span70[1] = new ChangeEntry(EChangeCategory.Fixed, "Fixed abandoned quest check and priority list issues"); + reference141 = new ChangelogEntry("6.13", releaseDate66, list142); + ref ChangelogEntry reference143 = ref span[66]; + DateOnly releaseDate67 = new DateOnly(2025, 10, 7); + num2 = 4; + List<ChangeEntry> list144 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list144, num2); + Span<ChangeEntry> span72 = CollectionsMarshal.AsSpan(list144); + ref ChangeEntry reference144 = ref span72[0]; num3 = 4; - List<string> list144 = new List<string>(num3); - CollectionsMarshal.SetCount(list144, num3); - Span<string> span75 = CollectionsMarshal.AsSpan(list144); - span75[0] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(455662819); - span75[1] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-947647841); - span75[2] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1750354769); - span75[3] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1683261916); - reference143 = new ChangeEntry(EChangeCategory.Added, description76, list144); - ref ChangeEntry reference144 = ref span73[2]; - string description77 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-958550459); - num3 = 5; List<string> list145 = new List<string>(num3); CollectionsMarshal.SetCount(list145, num3); - Span<string> span76 = CollectionsMarshal.AsSpan(list145); - span76[0] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1774583327); - span76[1] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1786400970); - span76[2] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-358241186); - span76[3] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-868361397); - span76[4] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1033233436); - reference144 = new ChangeEntry(EChangeCategory.Changed, description77, list145); - span73[3] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(695790285)); - span73[4] = new ChangeEntry(EChangeCategory.Fixed, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1951273009)); - reference141 = new ChangelogEntry(version67, releaseDate67, list142); - ref ChangelogEntry reference145 = ref span[67]; - string version68 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1740259501); - DateOnly releaseDate68 = new DateOnly(2025, 9, 2); - num2 = 4; - List<ChangeEntry> list146 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list146, num2); - Span<ChangeEntry> span77 = CollectionsMarshal.AsSpan(list146); - ref ChangeEntry reference146 = ref span77[0]; - string description78 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1705139781); + Span<string> span73 = CollectionsMarshal.AsSpan(list145); + span73[0] = "FATE combat handling with auto level syncing"; + span73[1] = "Start accepted quests from journal with 'Start as next quest'"; + span73[2] = "Update quest tracking when quests are hidden or prioritised in game"; + span73[3] = "QuestMap as a recommended plugin/dependency"; + reference144 = new ChangeEntry(EChangeCategory.Added, "FATE and quest tracking", list145); + ref ChangeEntry reference145 = ref span72[1]; num3 = 3; - List<string> list147 = new List<string>(num3); - CollectionsMarshal.SetCount(list147, num3); - Span<string> span78 = CollectionsMarshal.AsSpan(list147); - span78[0] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-808089594); - span78[1] = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-212876545); - span78[2] = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-548159302); - reference146 = new ChangeEntry(EChangeCategory.Added, description78, list147); - span77[1] = new ChangeEntry(EChangeCategory.Changed, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(705163028)); - span77[2] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2016624705)); - span77[3] = new ChangeEntry(EChangeCategory.Fixed, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1229780497)); - reference145 = new ChangelogEntry(version68, releaseDate68, list146); + List<string> list146 = new List<string>(num3); + CollectionsMarshal.SetCount(list146, num3); + Span<string> span74 = CollectionsMarshal.AsSpan(list146); + span74[0] = "Always prioritise next quest during teleportation/zone transitions"; + span74[1] = "Improved accepted quest logic with abandoned quest detection"; + span74[2] = "Show quests without quest paths as Locked"; + reference145 = new ChangeEntry(EChangeCategory.Changed, "Quest prioritisation improvements", list146); + span72[2] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.35 Deep Dungeon, Hildibrand, Yok Huy, Monster Hunter Wilds Collab, and Doman Enclave quests"); + span72[3] = new ChangeEntry(EChangeCategory.Fixed, "Fixed accepted/active quest display and Hildibrand quest issues"); + reference143 = new ChangelogEntry("6.12", releaseDate67, list144); + ref ChangelogEntry reference146 = ref span[67]; + DateOnly releaseDate68 = new DateOnly(2025, 10, 3); + num2 = 1; + List<ChangeEntry> list147 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list147, num2); + CollectionsMarshal.AsSpan(list147)[0] = new ChangeEntry(EChangeCategory.Changed, "Added remaining checks for quest priority to prevent infinite teleport looping"); + reference146 = new ChangelogEntry("6.11", releaseDate68, list147); ref ChangelogEntry reference147 = ref span[68]; - string version69 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(442936289); - DateOnly releaseDate69 = new DateOnly(2025, 8, 27); - num2 = 4; + DateOnly releaseDate69 = new DateOnly(2025, 10, 2); + num2 = 1; List<ChangeEntry> list148 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list148, num2); - Span<ChangeEntry> span79 = CollectionsMarshal.AsSpan(list148); - ref ChangeEntry reference148 = ref span79[0]; - string description79 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(541291815); + ref ChangeEntry reference148 = ref CollectionsMarshal.AsSpan(list148)[0]; num3 = 2; List<string> list149 = new List<string>(num3); CollectionsMarshal.SetCount(list149, num3); - Span<string> span80 = CollectionsMarshal.AsSpan(list149); - span80[0] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-906222997); - span80[1] = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1243277709); - reference148 = new ChangeEntry(EChangeCategory.Added, description79, list149); - span79[1] = new ChangeEntry(EChangeCategory.Changed, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1804882529)); - span79[2] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(723029441)); - span79[3] = new ChangeEntry(EChangeCategory.Fixed, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1471432592)); - reference147 = new ChangelogEntry(version69, releaseDate69, list148); + Span<string> span75 = CollectionsMarshal.AsSpan(list149); + span75[0] = "Don't show quests as available if player doesn't meet level requirements"; + span75[1] = "Updated 'required for MSQ' text in Crystal Tower quest preset window"; + reference148 = new ChangeEntry(EChangeCategory.Changed, "Quest window improvements", list149); + reference147 = new ChangelogEntry("6.10", releaseDate69, list148); ref ChangelogEntry reference149 = ref span[69]; - string version70 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1544122842); - DateOnly releaseDate70 = new DateOnly(2025, 8, 25); - num2 = 2; + DateOnly releaseDate70 = new DateOnly(2025, 9, 21); + num2 = 5; List<ChangeEntry> list150 = new List<ChangeEntry>(num2); CollectionsMarshal.SetCount(list150, num2); - Span<ChangeEntry> span81 = CollectionsMarshal.AsSpan(list150); - ref ChangeEntry reference150 = ref span81[0]; - string description80 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2058268484); - num3 = 2; + Span<ChangeEntry> span76 = CollectionsMarshal.AsSpan(list150); + ref ChangeEntry reference150 = ref span76[0]; + num3 = 4; List<string> list151 = new List<string>(num3); CollectionsMarshal.SetCount(list151, num3); - Span<string> span82 = CollectionsMarshal.AsSpan(list151); - span82[0] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1679645771); - span82[1] = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1394765065); - reference150 = new ChangeEntry(EChangeCategory.Added, description80, list151); - span81[1] = new ChangeEntry(EChangeCategory.Changed, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(176450734)); - reference149 = new ChangelogEntry(version70, releaseDate70, list150); - ref ChangelogEntry reference151 = ref span[70]; - string version71 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(611910758); - DateOnly releaseDate71 = new DateOnly(2025, 8, 25); + Span<string> span77 = CollectionsMarshal.AsSpan(list151); + span77[0] = "Reworked event quest handling - automatically displays when events are active"; + span77[1] = "Reworked journal system with improved filtering and display"; + span77[2] = "Reworked Priority Quests tab (Manual Priority and Quest Presets)"; + span77[3] = "Quest path viewer site (https://wigglymuffin.github.io/FFXIV-Tools/)"; + reference150 = new ChangeEntry(EChangeCategory.Added, "Major system reworks", list151); + ref ChangeEntry reference151 = ref span76[1]; + num3 = 4; + List<string> list152 = new List<string>(num3); + CollectionsMarshal.SetCount(list152, num3); + Span<string> span78 = CollectionsMarshal.AsSpan(list152); + span78[0] = "Questionable.IsQuestCompleted"; + span78[1] = "Questionable.IsQuestAvailable"; + span78[2] = "Questionable.IsQuestAccepted"; + span78[3] = "Questionable.IsQuestUnobtainable"; + reference151 = new ChangeEntry(EChangeCategory.Added, "New IPC commands", list152); + ref ChangeEntry reference152 = ref span76[2]; + num3 = 5; + List<string> list153 = new List<string>(num3); + CollectionsMarshal.SetCount(list153, num3); + Span<string> span79 = CollectionsMarshal.AsSpan(list153); + span79[0] = "Improved JSON quest validation with specific error reasons"; + span79[1] = "Added stop at sequence stop condition"; + span79[2] = "Improved Pandora plugin conflict detection"; + span79[3] = "Improved DialogueChoices regex matching"; + span79[4] = "Improved refresh checker for all quest states"; + reference152 = new ChangeEntry(EChangeCategory.Changed, "Various improvements", list153); + span76[3] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added 7.31 Occult Crescent quests"); + span76[4] = new ChangeEntry(EChangeCategory.Fixed, "Fixed cutscene crashes, Single Player Duty triggers, and various quest issues"); + reference149 = new ChangelogEntry("6.9", releaseDate70, list150); + ref ChangelogEntry reference153 = ref span[70]; + DateOnly releaseDate71 = new DateOnly(2025, 9, 2); + num2 = 4; + List<ChangeEntry> list154 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list154, num2); + Span<ChangeEntry> span80 = CollectionsMarshal.AsSpan(list154); + ref ChangeEntry reference154 = ref span80[0]; + num3 = 3; + List<string> list155 = new List<string>(num3); + CollectionsMarshal.SetCount(list155, num3); + Span<string> span81 = CollectionsMarshal.AsSpan(list155); + span81[0] = "Help commands and priority quest command"; + span81[1] = "Prevent 'CompleteQuest' step setting"; + span81[2] = "Duty counts and controls in 'Quest Battles' tab"; + reference154 = new ChangeEntry(EChangeCategory.Added, "Command and UI improvements", list155); + span80[1] = new ChangeEntry(EChangeCategory.Changed, "Improved 'Clear All' buttons to require CTRL being held"); + span80[2] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added Zodiac quests and 7.31 Cosmic/Occult Crescent quests"); + span80[3] = new ChangeEntry(EChangeCategory.Fixed, "Fixed Fishing for Friendship and Cosmic Exploration quests"); + reference153 = new ChangelogEntry("6.8", releaseDate71, list154); + ref ChangelogEntry reference155 = ref span[71]; + DateOnly releaseDate72 = new DateOnly(2025, 8, 27); + num2 = 4; + List<ChangeEntry> list156 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list156, num2); + Span<ChangeEntry> span82 = CollectionsMarshal.AsSpan(list156); + ref ChangeEntry reference156 = ref span82[0]; + num3 = 2; + List<string> list157 = new List<string>(num3); + CollectionsMarshal.SetCount(list157, num3); + Span<string> span83 = CollectionsMarshal.AsSpan(list157); + span83[0] = "Icon to 'Clear All' button in stop conditions"; + span83[1] = "Duty counts and 'Enable All' button in 'Duties' tab"; + reference156 = new ChangeEntry(EChangeCategory.Added, "UI improvements", list157); + span82[1] = new ChangeEntry(EChangeCategory.Changed, "Renamed 'Clear' button to 'Clear All' in priority window"); + span82[2] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added Rising 2025 Event Quests"); + span82[3] = new ChangeEntry(EChangeCategory.Fixed, "Fixed clipboard assigning blacklist to whitelist in 'Duties' tab"); + reference155 = new ChangelogEntry("6.7", releaseDate72, list156); + ref ChangelogEntry reference157 = ref span[72]; + DateOnly releaseDate73 = new DateOnly(2025, 8, 25); num2 = 2; - List<ChangeEntry> list152 = new List<ChangeEntry>(num2); - CollectionsMarshal.SetCount(list152, num2); - Span<ChangeEntry> span83 = CollectionsMarshal.AsSpan(list152); - span83[0] = new ChangeEntry(EChangeCategory.Fixed, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-494102919)); - span83[1] = new ChangeEntry(EChangeCategory.QuestUpdates, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1279249691)); - reference151 = new ChangelogEntry(version71, releaseDate71, list152); + List<ChangeEntry> list158 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list158, num2); + Span<ChangeEntry> span84 = CollectionsMarshal.AsSpan(list158); + ref ChangeEntry reference158 = ref span84[0]; + num3 = 2; + List<string> list159 = new List<string>(num3); + CollectionsMarshal.SetCount(list159, num3); + Span<string> span85 = CollectionsMarshal.AsSpan(list159); + span85[0] = "Missing emotes to schema and emote handler"; + span85[1] = "Improved stop conditions with 'Clear All' button"; + reference158 = new ChangeEntry(EChangeCategory.Added, "Emote support and stop conditions", list159); + span84[1] = new ChangeEntry(EChangeCategory.Changed, "Stop at level functionality"); + reference157 = new ChangelogEntry("6.6", releaseDate73, list158); + ref ChangelogEntry reference159 = ref span[73]; + DateOnly releaseDate74 = new DateOnly(2025, 8, 25); + num2 = 2; + List<ChangeEntry> list160 = new List<ChangeEntry>(num2); + CollectionsMarshal.SetCount(list160, num2); + Span<ChangeEntry> span86 = CollectionsMarshal.AsSpan(list160); + span86[0] = new ChangeEntry(EChangeCategory.Fixed, "Potential fix to single/solo duties softlocking"); + span86[1] = new ChangeEntry(EChangeCategory.QuestUpdates, "Added San d'Oria: The Second Walk and various side quests"); + reference159 = new ChangelogEntry("6.5", releaseDate74, list160); Changelogs = list; } } diff --git a/Questionable/Questionable.Data/ClassJobUtils.cs b/Questionable/Questionable.Data/ClassJobUtils.cs index f14a898..51becbb 100644 --- a/Questionable/Questionable.Data/ClassJobUtils.cs +++ b/Questionable/Questionable.Data/ClassJobUtils.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Application.Network.WorkDefinitions; using FFXIVClientStructs.FFXIV.Client.Game; @@ -15,273 +14,6 @@ namespace Questionable.Data; internal sealed class ClassJobUtils { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<ClassJob, bool> _003C_003E9__2_0; - - public static Func<ClassJob, EClassJob> _003C_003E9__2_1; - - public static Func<ClassJob, sbyte> _003C_003E9__2_2; - - public static Func<ClassJob, (EClassJob ClassJob, byte Priority)> _003C_003E9__2_3; - - public static Func<(EClassJob ClassJob, byte Priority), byte> _003C_003E9__2_4; - - public static Func<(EClassJob ClassJob, byte Priority), (EClassJob ClassJob, int)> _003C_003E9__2_5; - - public static Func<EClassJob, bool> _003C_003E9__4_0; - - public static Func<EClassJob, bool> _003C_003E9__4_1; - - public static Func<EClassJob, bool> _003C_003E9__4_2; - - public static Func<EClassJob, bool> _003C_003E9__4_3; - - public static Func<(EClassJob ClassJob, short Level, short ItemLevel), EClassJob> _003C_003E9__5_0; - - public static Func<(EClassJob ClassJob, short Level, short ItemLevel), short> _003C_003E9__5_1; - - public static Func<(EClassJob ClassJob, short Level, short ItemLevel), short> _003C_003E9__5_2; - - public static Func<(EClassJob ClassJob, short Level, short ItemLevel), int> _003C_003E9__5_3; - - public static Func<(EClassJob ClassJob, short Level, short ItemLevel), EClassJob> _003C_003E9__5_4; - - internal bool _003C_002Ector_003Eb__2_0(ClassJob x) - { - int num = ((x.RowId == 0) ? 1290142375 : 1290142372); - while (true) - { - int num2 = num; - int num3 = 1290142374; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0048; - case 2: - return x.ExpArrayIndex >= 0; - case 1: - return false; - } - continue; - IL_0048: - num = 1290142372; - } - } - - internal EClassJob _003C_002Ector_003Eb__2_1(ClassJob x) - { - return (EClassJob)x.RowId; - } - - internal sbyte _003C_002Ector_003Eb__2_2(ClassJob x) - { - return x.ExpArrayIndex; - } - - internal (EClassJob ClassJob, byte Priority) _003C_002Ector_003Eb__2_3(ClassJob x) - { - return (ClassJob: (EClassJob)x.RowId, Priority: x.UIPriority); - } - - internal byte _003C_002Ector_003Eb__2_4((EClassJob ClassJob, byte Priority) x) - { - return x.Priority; - } - - internal (EClassJob ClassJob, int) _003C_002Ector_003Eb__2_5((EClassJob ClassJob, byte Priority) x) - { - return (ClassJob: x.ClassJob, x.Priority / 10); - } - - internal bool _003CAsIndividualJobs_003Eb__4_0(EClassJob x) - { - return _206E_200D_206C_202B_202D_206E_202B_206C_200C_206A_206C_202E_206F_206E_206D_202B_206F_200F_200E_202C_206E_202B_200E_202A_200C_206A_200F_200F_200D_206D_202C_200C_202A_206B_202D_202D_202A_202E_202D_200C_202E(x); - } - - internal bool _003CAsIndividualJobs_003Eb__4_1(EClassJob x) - { - return _200B_200E_200F_202B_206B_206C_200B_206D_200F_200C_206D_202D_200E_200C_200E_200B_200C_202E_202D_206B_206A_200E_200F_206C_202B_206A_206C_206E_200D_202E_200E_206B_200D_200D_200E_206E_206E_200C_206A_202E_202E(x); - } - - internal bool _003CAsIndividualJobs_003Eb__4_2(EClassJob x) - { - return _202D_200D_200E_200B_200C_206D_206D_200C_202A_202D_200C_206B_206B_206D_206A_202E_200B_200D_206C_200E_200F_202D_200E_200F_200C_202B_206C_202E_202E_206D_200B_206A_202E_200B_200D_200D_206C_206D_200D_202D_202E(x); - } - - internal bool _003CAsIndividualJobs_003Eb__4_3(EClassJob x) - { - return _200C_200E_206F_206F_202C_200B_206D_202E_206C_206A_206F_200B_206E_202E_200D_206D_202E_202D_206B_206E_202E_206A_202B_206A_206A_202C_206B_202E_202C_202C_206E_202D_206D_206B_206D_202B_206D_202E_202D_202B_202E(x); - } - - internal EClassJob _003CLookupConfiguredCombatJob_003Eb__5_0((EClassJob ClassJob, short Level, short ItemLevel) x) - { - return x.ClassJob; - } - - internal short _003CLookupConfiguredCombatJob_003Eb__5_1((EClassJob ClassJob, short Level, short ItemLevel) x) - { - return x.Level; - } - - internal short _003CLookupConfiguredCombatJob_003Eb__5_2((EClassJob ClassJob, short Level, short ItemLevel) x) - { - return x.ItemLevel; - } - - internal int _003CLookupConfiguredCombatJob_003Eb__5_3((EClassJob ClassJob, short Level, short ItemLevel) x) - { - int num = ((!_202C_206E_206A_200E_202D_200D_206E_202E_206F_200E_206E_206C_206C_202B_200D_202D_206F_206C_206F_202C_200F_200F_202D_202B_206C_206C_202D_200E_206D_202D_206E_202D_206E_206D_206A_200D_202C_202E_202D_202B_202E(x.ClassJob)) ? (-716677051) : (-716677046)); - int result = default(int); - while (true) - { - int num2 = num; - int num3 = -716677043; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - result = 20; - num = -716677048; - break; - case 1: - result = 0; - num = -716677048; - break; - case 9: - result = 10; - num = -716677048; - break; - case 3: - num = -716677046; - break; - case 8: - num = ((!_202E_206C_200D_202E_206C_206C_202B_206A_200D_200C_206F_202A_206E_200B_206A_206E_200D_202C_202C_200E_206B_202C_202B_200C_206C_202B_202D_206F_200F_200D_202E_202E_206A_206A_200E_200F_206F_202C_202E_200C_202E(x.ClassJob)) ? (-716677045) : (-716677050)); - break; - case 7: - result = 50; - num = -716677048; - break; - case 6: - num = ((!_200F_200D_206D_206D_200B_202D_202B_202A_200C_202E_206E_200C_206B_200E_206B_202E_206F_200D_206A_202C_200B_206E_202C_200E_202A_202A_202E_200E_200F_200B_202B_200B_202C_206E_202A_200E_200E_200F_206F_206C_202E(x.ClassJob)) ? (-716677049) : (-716677041)); - break; - case 5: - return result; - case 11: - result = 40; - num = -716677048; - break; - case 10: - num = ((!_200D_206D_206D_200B_200B_202D_200E_202B_206E_202D_206C_200D_206C_202E_200E_202E_202E_202C_206C_206F_200D_200B_202B_200C_206D_200D_206C_202D_200D_206C_202B_202D_200D_206F_202D_200E_202C_200C_202B_206C_202E(x.ClassJob)) ? (-716677043) : (-716677047)); - break; - case 2: - result = 30; - num = -716677048; - break; - case 0: - num = ((!_206A_200B_200E_206A_206C_206F_202B_202A_200E_202C_206D_206F_206C_200B_206A_200C_206F_206E_202E_202D_206F_206E_206A_200C_200C_206C_206D_202E_200C_202B_202A_206B_202A_200C_202A_200E_206E_200D_202A_202E_202E(x.ClassJob)) ? (-716677044) : (-716677052)); - break; - } - } - } - - internal EClassJob _003CLookupConfiguredCombatJob_003Eb__5_4((EClassJob ClassJob, short Level, short ItemLevel) x) - { - return x.ClassJob; - } - - static bool _206E_200D_206C_202B_202D_206E_202B_206C_200C_206A_206C_202E_206F_206E_206D_202B_206F_200F_200E_202C_206E_202B_200E_202A_200C_206A_200F_200F_200D_206D_202C_200C_202A_206B_202D_202D_202A_202E_202D_200C_202E(EClassJob P_0) - { - return P_0.DealsPhysicalDamage(); - } - - static bool _200B_200E_200F_202B_206B_206C_200B_206D_200F_200C_206D_202D_200E_200C_200E_200B_200C_202E_202D_206B_206A_200E_200F_206C_202B_206A_206C_206E_200D_202E_200E_206B_200D_200D_200E_206E_206E_200C_206A_202E_202E(EClassJob P_0) - { - return P_0.DealsMagicDamage(); - } - - static bool _202D_200D_200E_200B_200C_206D_206D_200C_202A_202D_200C_206B_206B_206D_206A_202E_200B_200D_206C_200E_200F_202D_200E_200F_200C_202B_206C_202E_202E_206D_200B_206A_202E_200B_200D_200D_206C_206D_200D_202D_202E(EClassJob P_0) - { - return P_0.IsCrafter(); - } - - static bool _200C_200E_206F_206F_202C_200B_206D_202E_206C_206A_206F_200B_206E_202E_200D_206D_202E_202D_206B_206E_202E_206A_202B_206A_206A_202C_206B_202E_202C_202C_206E_202D_206D_206B_206D_202B_206D_202E_202D_202B_202E(EClassJob P_0) - { - return P_0.IsGatherer(); - } - - static bool _202C_206E_206A_200E_202D_200D_206E_202E_206F_200E_206E_206C_206C_202B_200D_202D_206F_206C_206F_202C_200F_200F_202D_202B_206C_206C_202D_200E_206D_202D_206E_202D_206E_206D_206A_200D_202C_202E_202D_202B_202E(EClassJob P_0) - { - return P_0.IsCaster(); - } - - static bool _202E_206C_200D_202E_206C_206C_202B_206A_200D_200C_206F_202A_206E_200B_206A_206E_200D_202C_202C_200E_206B_202C_202B_200C_206C_202B_202D_206F_200F_200D_202E_202E_206A_206A_200E_200F_206F_202C_202E_200C_202E(EClassJob P_0) - { - return P_0.IsPhysicalRanged(); - } - - static bool _200F_200D_206D_206D_200B_202D_202B_202A_200C_202E_206E_200C_206B_200E_206B_202E_206F_200D_206A_202C_200B_206E_202C_200E_202A_202A_202E_200E_200F_200B_202B_200B_202C_206E_202A_200E_200E_200F_206F_206C_202E(EClassJob P_0) - { - return P_0.IsMelee(); - } - - static bool _200D_206D_206D_200B_200B_202D_200E_202B_206E_202D_206C_200D_206C_202E_200E_202E_202E_202C_206C_206F_200D_200B_202B_200C_206D_200D_206C_202D_200D_206C_202B_202D_200D_206F_202D_200E_202C_200C_202B_206C_202E(EClassJob P_0) - { - return P_0.IsTank(); - } - - static bool _206A_200B_200E_206A_206C_206F_202B_202A_200E_202C_206D_206F_206C_200B_206A_200C_206F_206E_202E_202D_206F_206E_206A_200C_200C_206C_206D_202E_200C_202B_202A_206B_202A_200C_202A_200E_206E_200D_202A_202E_202E(EClassJob P_0) - { - return P_0.IsHealer(); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass5_0 - { - public EClassJob configuredJob; - - internal bool _003CLookupConfiguredCombatJob_003Eb__5(EClassJob x) - { - int num = ((!_202E_200B_200E_202C_206B_200B_200E_206C_200E_200D_206D_206E_200D_202D_206C_202B_206F_200F_200F_206A_200F_206B_206E_206A_202A_200E_200D_206B_206C_206D_200E_200F_206C_202B_202B_206D_202E_200E_202E_202B_202E(x)) ? 92311981 : 92311982); - while (true) - { - int num2 = num; - int num3 = 92311980; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0046; - case 2: - return _200C_206E_206C_206B_202E_206E_200D_206C_202D_200D_202B_206A_202A_206F_202D_206F_200C_202B_200D_200B_206E_202B_202D_200D_206B_206C_206E_200D_206D_206E_206D_200E_200D_202A_200B_206E_200D_200B_200E_202B_202E(x) == configuredJob; - case 1: - return false; - } - continue; - IL_0046: - num = 92311982; - } - } - - static bool _202E_200B_200E_202C_206B_200B_200E_206C_200E_200D_206D_206E_200D_202D_206C_202B_206F_200F_200F_206A_200F_206B_206E_206A_202A_200E_200D_206B_206C_206D_200E_200F_206C_202B_202B_206D_202E_200E_202E_202B_202E(EClassJob P_0) - { - return P_0.IsClass(); - } - - static EClassJob _200C_206E_206C_206B_202E_206E_200D_206C_202D_200D_202B_206A_202A_206F_202D_206F_200C_202B_200D_200B_206E_202B_202D_200D_206B_206C_206E_200D_206D_206E_206D_200E_200D_202A_200B_206E_200D_200B_200E_202B_202E(EClassJob P_0) - { - return P_0.AsJob(); - } - } - private readonly Configuration _configuration; private readonly ReadOnlyDictionary<EClassJob, sbyte> _classJobToExpArrayIndex; @@ -291,503 +23,155 @@ internal sealed class ClassJobUtils public ClassJobUtils(Configuration configuration, IDataManager dataManager) { _configuration = configuration; - _classJobToExpArrayIndex = dataManager.GetExcelSheet<ClassJob>().Where(delegate(ClassJob x) - { - int num = ((x.RowId == 0) ? 1290142375 : 1290142372); - while (true) - { - int num2 = num; - int num3 = 1290142374; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0048; - case 2: - return x.ExpArrayIndex >= 0; - case 1: - return false; - } - continue; - IL_0048: - num = 1290142372; - } - }).ToDictionary((ClassJob x) => (EClassJob)x.RowId, (ClassJob x) => x.ExpArrayIndex) - .AsReadOnly(); + _classJobToExpArrayIndex = (from x in dataManager.GetExcelSheet<ClassJob>() + where x.RowId != 0 && x.ExpArrayIndex >= 0 + select x).ToDictionary((ClassJob x) => (EClassJob)x.RowId, (ClassJob x) => x.ExpArrayIndex).AsReadOnly(); SortedClassJobs = (from x in dataManager.GetExcelSheet<ClassJob>() select (ClassJob: (EClassJob)x.RowId, Priority: x.UIPriority) into x orderby x.Priority select (ClassJob: x.ClassJob, x.Priority / 10)).ToList().AsReadOnly(); } - [MethodImpl(MethodImplOptions.NoInlining)] public IEnumerable<EClassJob> AsIndividualJobs(EExtendedClassJob classJob, ElementId? referenceQuest) { - int num; - IEnumerable<EClassJob> result = default(IEnumerable<EClassJob>); - EClassJob eClassJob2 = default(EClassJob); - EClassJob eClassJob = default(EClassJob); switch (classJob) { - default: - num = 1554917607; - goto IL_00d8; - case EExtendedClassJob.Summoner: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Summoner); - num = 1554917577; - goto IL_00d8; - case EExtendedClassJob.DoM: - goto IL_0205; - case EExtendedClassJob.WhiteMage: - goto IL_023e; - case EExtendedClassJob.Goldsmith: - goto IL_0252; - case EExtendedClassJob.Samurai: - goto IL_0266; - case EExtendedClassJob.QuestStartJob: - goto IL_027a; - case EExtendedClassJob.Dragoon: - goto IL_02a0; - case EExtendedClassJob.Rogue: - goto IL_02b4; - case EExtendedClassJob.Lancer: - goto IL_02c8; - case EExtendedClassJob.Arcanist: - goto IL_02db; - case EExtendedClassJob.Bard: - goto IL_02ef; - case EExtendedClassJob.DoW: - goto IL_0303; - case EExtendedClassJob.Dancer: - goto IL_033c; - case EExtendedClassJob.Astrologian: - goto IL_0350; - case EExtendedClassJob.Paladin: - goto IL_0364; - case EExtendedClassJob.Reaper: - goto IL_0378; - case EExtendedClassJob.Miner: - goto IL_038c; - case EExtendedClassJob.Machinist: - goto IL_03a0; - case EExtendedClassJob.Pugilist: - goto IL_03b4; - case EExtendedClassJob.Botanist: - goto IL_03df; - case EExtendedClassJob.Culinarian: - goto IL_03f3; - case EExtendedClassJob.Beastmaster: - goto IL_0407; - case EExtendedClassJob.Warrior: - goto IL_041b; - case EExtendedClassJob.Marauder: - goto IL_042f; - case EExtendedClassJob.ConfiguredCombatJob: - goto IL_0442; - case EExtendedClassJob.Pictomancer: - goto IL_0467; - case EExtendedClassJob.Fisher: - goto IL_047b; - case EExtendedClassJob.BlueMage: - goto IL_048f; - case EExtendedClassJob.Carpenter: - goto IL_04c7; - case EExtendedClassJob.Archer: - goto IL_04da; - case EExtendedClassJob.Armorer: - goto IL_04ed; - case EExtendedClassJob.Alchemist: - goto IL_0501; case EExtendedClassJob.Gladiator: - goto IL_0515; - case EExtendedClassJob.DoL: - goto IL_0528; - case EExtendedClassJob.Viper: - goto IL_0578; - case EExtendedClassJob.Blacksmith: - goto IL_058c; - case EExtendedClassJob.Thaumaturge: - goto IL_05a0; - case EExtendedClassJob.Monk: - goto IL_05b3; - case EExtendedClassJob.Scholar: - goto IL_05dc; - case EExtendedClassJob.Leatherworker: - goto IL_05fc; - case EExtendedClassJob.BlackMage: - goto IL_0610; - case EExtendedClassJob.Ninja: - goto IL_0624; + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Gladiator); + case EExtendedClassJob.Pugilist: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Pugilist); + case EExtendedClassJob.Marauder: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Marauder); + case EExtendedClassJob.Lancer: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Lancer); + case EExtendedClassJob.Archer: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Archer); case EExtendedClassJob.Conjurer: - goto IL_0638; - case EExtendedClassJob.DoH: - goto IL_064b; - case EExtendedClassJob.RedMage: - goto IL_0684; - case EExtendedClassJob.Gunbreaker: - goto IL_0698; + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Conjurer); + case EExtendedClassJob.Thaumaturge: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Thaumaturge); + case EExtendedClassJob.Carpenter: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Carpenter); + case EExtendedClassJob.Blacksmith: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Blacksmith); + case EExtendedClassJob.Armorer: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Armorer); + case EExtendedClassJob.Goldsmith: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Goldsmith); + case EExtendedClassJob.Leatherworker: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Leatherworker); case EExtendedClassJob.Weaver: - goto IL_06ae; - case EExtendedClassJob.Sage: - goto IL_06c2; + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Weaver); + case EExtendedClassJob.Alchemist: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Alchemist); + case EExtendedClassJob.Culinarian: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Culinarian); + case EExtendedClassJob.Miner: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Miner); + case EExtendedClassJob.Botanist: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Botanist); + case EExtendedClassJob.Fisher: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Fisher); + case EExtendedClassJob.Paladin: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Paladin); + case EExtendedClassJob.Monk: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Monk); + case EExtendedClassJob.Warrior: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Warrior); + case EExtendedClassJob.Dragoon: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Dragoon); + case EExtendedClassJob.Bard: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Bard); + case EExtendedClassJob.WhiteMage: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.WhiteMage); + case EExtendedClassJob.BlackMage: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.BlackMage); + case EExtendedClassJob.Arcanist: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Arcanist); + case EExtendedClassJob.Summoner: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Summoner); + case EExtendedClassJob.Scholar: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Scholar); + case EExtendedClassJob.Rogue: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Rogue); + case EExtendedClassJob.Ninja: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Ninja); + case EExtendedClassJob.Machinist: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Machinist); case EExtendedClassJob.DarkKnight: - goto IL_06d6; - IL_00d8: - while (true) + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.DarkKnight); + case EExtendedClassJob.Astrologian: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Astrologian); + case EExtendedClassJob.Samurai: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Samurai); + case EExtendedClassJob.RedMage: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.RedMage); + case EExtendedClassJob.BlueMage: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.BlueMage); + case EExtendedClassJob.Gunbreaker: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Gunbreaker); + case EExtendedClassJob.Dancer: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Dancer); + case EExtendedClassJob.Reaper: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Reaper); + case EExtendedClassJob.Sage: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Sage); + case EExtendedClassJob.Viper: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Viper); + case EExtendedClassJob.Pictomancer: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Pictomancer); + case EExtendedClassJob.Beastmaster: + return new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Beastmaster); + case EExtendedClassJob.DoW: + return from x in Enum.GetValues<EClassJob>() + where x.DealsPhysicalDamage() + select x; + case EExtendedClassJob.DoM: + return from x in Enum.GetValues<EClassJob>() + where x.DealsMagicDamage() + select x; + case EExtendedClassJob.DoH: + return from x in Enum.GetValues<EClassJob>() + where x.IsCrafter() + select x; + case EExtendedClassJob.DoL: + return from x in Enum.GetValues<EClassJob>() + where x.IsGatherer() + select x; + case EExtendedClassJob.ConfiguredCombatJob: + { + EClassJob eClassJob2 = LookupConfiguredCombatJob(); + IEnumerable<EClassJob> result2; + if (eClassJob2 == EClassJob.Adventurer) { - int num2 = num; - int num3 = 1554917578; - int num4 = num2; - IEnumerable<EClassJob> enumerable3; - IEnumerable<EClassJob> enumerable2; - switch ((num4 | num3) - (num4 & num3)) - { - case 46: - goto end_IL_00d8; - case 2: - { - IEnumerable<EClassJob> enumerable = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(eClassJob2); - enumerable3 = enumerable; - goto IL_01f8; - } - case 56: - goto IL_0205; - case 20: - goto IL_023e; - case 8: - goto IL_0252; - case 30: - goto IL_0266; - case 51: - goto IL_027a; - case 22: - goto IL_02a0; - case 10: - goto IL_02b4; - case 54: - goto IL_02c8; - case 39: - goto IL_02db; - case 37: - goto IL_02ef; - case 26: - goto IL_0303; - case 25: - goto IL_033c; - case 50: - goto IL_0350; - case 52: - goto IL_0364; - case 17: - goto IL_0378; - case 40: - goto IL_038c; - case 13: - goto IL_03a0; - case 0: - goto IL_03b4; - case 16: - { - IEnumerable<EClassJob> enumerable = Array.Empty<EClassJob>(); - enumerable3 = enumerable; - goto IL_01f8; - } - case 36: - goto IL_03df; - case 12: - goto IL_03f3; - case 31: - goto IL_0407; - case 34: - goto IL_041b; - case 41: - goto IL_042f; - case 9: - goto IL_0442; - case 28: - goto IL_0467; - case 18: - goto IL_047b; - case 32: - goto IL_048f; - case 45: - num = 1554917606; - break; - case 48: - { - IEnumerable<EClassJob> enumerable = Array.Empty<EClassJob>(); - enumerable2 = enumerable; - goto IL_05cf; - } - case 55: - goto IL_04c7; - case 42: - goto IL_04da; - case 33: - goto IL_04ed; - case 47: - goto IL_0501; - case 53: - goto IL_0515; - case 24: - goto IL_0528; - case 44: - throw _202D_200D_202D_200E_202D_206C_206A_206F_202C_206F_200C_202C_200B_202B_206C_200E_200B_206A_202B_200E_206F_206B_206A_202D_200D_206E_206B_200D_202A_202E_202E_202E_206B_206E_206D_206E_200B_206F_202D_206E_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(688705615), (object)classJob, (string)null); - case 35: - goto IL_0578; - case 38: - goto IL_058c; - case 6: - goto IL_05a0; - case 5: - goto IL_05b3; - case 19: - { - IEnumerable<EClassJob> enumerable = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(eClassJob); - enumerable2 = enumerable; - goto IL_05cf; - } - case 29: - goto IL_05dc; - case 23: - num = 1554917607; - break; - case 27: - goto IL_05fc; - case 21: - goto IL_0610; - case 1: - goto IL_0624; - case 11: - goto IL_0638; - case 4: - goto IL_064b; - case 43: - goto IL_0684; - case 49: - goto IL_0698; - case 3: - return result; - case 7: - goto IL_06ae; - case 15: - goto IL_06c2; - case 14: - goto IL_06d6; - IL_05cf: - result = enumerable2; - num = 1554917577; - break; - IL_01f8: - result = enumerable3; - num = 1554917577; - break; - } - continue; - end_IL_00d8: - break; + IEnumerable<EClassJob> enumerable = Array.Empty<EClassJob>(); + result2 = enumerable; } - goto case EExtendedClassJob.Summoner; - IL_06d6: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.DarkKnight); - num = 1554917577; - goto IL_00d8; - IL_06c2: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Sage); - num = 1554917577; - goto IL_00d8; - IL_06ae: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Weaver); - num = 1554917577; - goto IL_00d8; - IL_0698: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Gunbreaker); - num = 1554917577; - goto IL_00d8; - IL_0684: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.RedMage); - num = 1554917577; - goto IL_00d8; - IL_064b: - result = from x in Enum.GetValues<EClassJob>() - where _003C_003Ec._202D_200D_200E_200B_200C_206D_206D_200C_202A_202D_200C_206B_206B_206D_206A_202E_200B_200D_206C_200E_200F_202D_200E_200F_200C_202B_206C_202E_202E_206D_200B_206A_202E_200B_200D_200D_206C_206D_200D_202D_202E(x) - select x; - num = 1554917577; - goto IL_00d8; - IL_02a0: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Dragoon); - num = 1554917577; - goto IL_00d8; - IL_02b4: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Rogue); - num = 1554917577; - goto IL_00d8; - IL_0638: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Conjurer); - num = 1554917577; - goto IL_00d8; - IL_0624: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Ninja); - num = 1554917577; - goto IL_00d8; - IL_0610: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.BlackMage); - num = 1554917577; - goto IL_00d8; - IL_05fc: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Leatherworker); - num = 1554917577; - goto IL_00d8; - IL_05dc: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Scholar); - num = 1554917577; - goto IL_00d8; - IL_05b3: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Monk); - num = 1554917577; - goto IL_00d8; - IL_05a0: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Thaumaturge); - num = 1554917577; - goto IL_00d8; - IL_058c: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Blacksmith); - num = 1554917577; - goto IL_00d8; - IL_0578: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Viper); - num = 1554917577; - goto IL_00d8; - IL_0528: - result = from x in Enum.GetValues<EClassJob>() - where _003C_003Ec._200C_200E_206F_206F_202C_200B_206D_202E_206C_206A_206F_200B_206E_202E_200D_206D_202E_202D_206B_206E_202E_206A_202B_206A_206A_202C_206B_202E_202C_202C_206E_202D_206D_206B_206D_202B_206D_202E_202D_202B_202E(x) - select x; - num = 1554917577; - goto IL_00d8; - IL_0205: - result = from x in Enum.GetValues<EClassJob>() - where _003C_003Ec._200B_200E_200F_202B_206B_206C_200B_206D_200F_200C_206D_202D_200E_200C_200E_200B_200C_202E_202D_206B_206A_200E_200F_206C_202B_206A_206C_206E_200D_202E_200E_206B_200D_200D_200E_206E_206E_200C_206A_202E_202E(x) - select x; - num = 1554917577; - goto IL_00d8; - IL_027a: - eClassJob2 = LookupQuestStartJob(referenceQuest); - num = ((eClassJob2 != EClassJob.Adventurer) ? 1554917576 : 1554917594); - goto IL_00d8; - IL_0515: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Gladiator); - num = 1554917577; - goto IL_00d8; - IL_0501: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Alchemist); - num = 1554917577; - goto IL_00d8; - IL_04ed: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Armorer); - num = 1554917577; - goto IL_00d8; - IL_04da: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Archer); - num = 1554917577; - goto IL_00d8; - IL_04c7: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Carpenter); - num = 1554917577; - goto IL_00d8; - IL_048f: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.BlueMage); - num = 1554917577; - goto IL_00d8; - IL_047b: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Fisher); - num = 1554917577; - goto IL_00d8; - IL_0467: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Pictomancer); - num = 1554917577; - goto IL_00d8; - IL_0442: - eClassJob = LookupConfiguredCombatJob(); - num = ((eClassJob != EClassJob.Adventurer) ? 1554917593 : 1554917626); - goto IL_00d8; - IL_0266: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Samurai); - num = 1554917577; - goto IL_00d8; - IL_042f: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Marauder); - num = 1554917577; - goto IL_00d8; - IL_041b: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Warrior); - num = 1554917577; - goto IL_00d8; - IL_0407: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Beastmaster); - num = 1554917577; - goto IL_00d8; - IL_03f3: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Culinarian); - num = 1554917577; - goto IL_00d8; - IL_03df: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Botanist); - num = 1554917577; - goto IL_00d8; - IL_03b4: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Pugilist); - num = 1554917577; - goto IL_00d8; - IL_03a0: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Machinist); - num = 1554917577; - goto IL_00d8; - IL_038c: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Miner); - num = 1554917577; - goto IL_00d8; - IL_0378: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Reaper); - num = 1554917577; - goto IL_00d8; - IL_0364: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Paladin); - num = 1554917577; - goto IL_00d8; - IL_0350: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Astrologian); - num = 1554917577; - goto IL_00d8; - IL_033c: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Dancer); - num = 1554917577; - goto IL_00d8; - IL_0303: - result = from x in Enum.GetValues<EClassJob>() - where _003C_003Ec._206E_200D_206C_202B_202D_206E_202B_206C_200C_206A_206C_202E_206F_206E_206D_202B_206F_200F_200E_202C_206E_202B_200E_202A_200C_206A_200F_200F_200D_206D_202C_200C_202A_206B_202D_202D_202A_202E_202D_200C_202E(x) - select x; - num = 1554917577; - goto IL_00d8; - IL_023e: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.WhiteMage); - num = 1554917577; - goto IL_00d8; - IL_0252: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Goldsmith); - num = 1554917577; - goto IL_00d8; - IL_02ef: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Bard); - num = 1554917577; - goto IL_00d8; - IL_02db: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Arcanist); - num = 1554917577; - goto IL_00d8; - IL_02c8: - result = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(EClassJob.Lancer); - num = 1554917577; - goto IL_00d8; + else + { + IEnumerable<EClassJob> enumerable = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(eClassJob2); + result2 = enumerable; + } + return result2; + } + case EExtendedClassJob.QuestStartJob: + { + EClassJob eClassJob = LookupQuestStartJob(referenceQuest); + IEnumerable<EClassJob> result; + if (eClassJob == EClassJob.Adventurer) + { + IEnumerable<EClassJob> enumerable = Array.Empty<EClassJob>(); + result = enumerable; + } + else + { + IEnumerable<EClassJob> enumerable = new global::_003C_003Ez__ReadOnlySingleElementList<EClassJob>(eClassJob); + result = enumerable; + } + return result; + } + default: + throw new ArgumentOutOfRangeException("classJob", classJob, null); } } @@ -796,250 +180,83 @@ internal sealed class ClassJobUtils EClassJob configuredJob = _configuration.General.CombatJob; ReadOnlyCollection<(EClassJob, short, short)> combatJobGearSets = GetCombatJobGearSets(); HashSet<EClassJob> hashSet = combatJobGearSets.Select<(EClassJob, short, short), EClassJob>(((EClassJob ClassJob, short Level, short ItemLevel) x) => x.ClassJob).Distinct().ToHashSet(); - int num = ((configuredJob == EClassJob.Adventurer) ? 948516034 : 948516037); - EClassJob eClassJob = default(EClassJob); - while (true) + if (configuredJob != EClassJob.Adventurer) { - int num2 = num; - int num3 = 948516032; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (hashSet.Contains(configuredJob)) { - case 1: - num = ((!hashSet.Contains(eClassJob)) ? 948516034 : 948516038); - break; - case 6: - return eClassJob; - case 4: - eClassJob = Enum.GetValues<EClassJob>().SingleOrDefault(delegate(EClassJob x) - { - int num7 = ((!_003C_003Ec__DisplayClass5_0._202E_200B_200E_202C_206B_200B_200E_206C_200E_200D_206D_206E_200D_202D_206C_202B_206F_200F_200F_206A_200F_206B_206E_206A_202A_200E_200D_206B_206C_206D_200E_200F_206C_202B_202B_206D_202E_200E_202E_202B_202E(x)) ? 92311981 : 92311982); - while (true) - { - int num8 = num7; - int num9 = 92311980; - int num10 = num8; - switch ((num10 | num9) - (num10 & num9)) - { - case 0: - goto IL_0046; - case 2: - return _003C_003Ec__DisplayClass5_0._200C_206E_206C_206B_202E_206E_200D_206C_202D_200D_202B_206A_202A_206F_202D_206F_200C_202B_200D_200B_206E_202B_202D_200D_206B_206C_206E_200D_206D_206E_206D_200E_200D_202A_200B_206E_200D_200B_200E_202B_202E(x) == configuredJob; - case 1: - return false; - } - continue; - IL_0046: - num7 = 92311982; - } - }); - num = ((eClassJob == EClassJob.Adventurer) ? 948516034 : 948516033); - break; - case 3: return configuredJob; - case 0: - num = 948516037; - break; - case 2: - return (from x in (from x in combatJobGearSets - orderby x.Level descending, x.ItemLevel descending - select x).ThenByDescending<(EClassJob, short, short), int>(delegate((EClassJob ClassJob, short Level, short ItemLevel) x) - { - int num7 = ((!_003C_003Ec._202C_206E_206A_200E_202D_200D_206E_202E_206F_200E_206E_206C_206C_202B_200D_202D_206F_206C_206F_202C_200F_200F_202D_202B_206C_206C_202D_200E_206D_202D_206E_202D_206E_206D_206A_200D_202C_202E_202D_202B_202E(x.ClassJob)) ? (-716677051) : (-716677046)); - int result = default(int); - while (true) - { - int num8 = num7; - int num9 = -716677043; - int num10 = num8; - int num11 = num10 + num9; - int num12 = num10 & num9; - switch (num11 - (num12 + num12)) - { - case 4: - result = 20; - num7 = -716677048; - break; - case 1: - result = 0; - num7 = -716677048; - break; - case 9: - result = 10; - num7 = -716677048; - break; - case 3: - num7 = -716677046; - break; - case 8: - num7 = ((!_003C_003Ec._202E_206C_200D_202E_206C_206C_202B_206A_200D_200C_206F_202A_206E_200B_206A_206E_200D_202C_202C_200E_206B_202C_202B_200C_206C_202B_202D_206F_200F_200D_202E_202E_206A_206A_200E_200F_206F_202C_202E_200C_202E(x.ClassJob)) ? (-716677045) : (-716677050)); - break; - case 7: - result = 50; - num7 = -716677048; - break; - case 6: - num7 = ((!_003C_003Ec._200F_200D_206D_206D_200B_202D_202B_202A_200C_202E_206E_200C_206B_200E_206B_202E_206F_200D_206A_202C_200B_206E_202C_200E_202A_202A_202E_200E_200F_200B_202B_200B_202C_206E_202A_200E_200E_200F_206F_206C_202E(x.ClassJob)) ? (-716677049) : (-716677041)); - break; - case 5: - return result; - case 11: - result = 40; - num7 = -716677048; - break; - case 10: - num7 = ((!_003C_003Ec._200D_206D_206D_200B_200B_202D_200E_202B_206E_202D_206C_200D_206C_202E_200E_202E_202E_202C_206C_206F_200D_200B_202B_200C_206D_200D_206C_202D_200D_206C_202B_202D_200D_206F_202D_200E_202C_200C_202B_206C_202E(x.ClassJob)) ? (-716677043) : (-716677047)); - break; - case 2: - result = 30; - num7 = -716677048; - break; - case 0: - num7 = ((!_003C_003Ec._206A_200B_200E_206A_206C_206F_202B_202A_200E_202C_206D_206F_206C_200B_206A_200C_206F_206E_202E_202D_206F_206E_206A_200C_200C_206C_206D_202E_200C_202B_202A_206B_202A_200C_202A_200E_206E_200D_202A_202E_202E(x.ClassJob)) ? (-716677044) : (-716677052)); - break; - } - } - }) - select x.ClassJob).DefaultIfEmpty(EClassJob.Adventurer).FirstOrDefault(); - case 5: - num = ((!hashSet.Contains(configuredJob)) ? 948516036 : 948516035); - break; + } + EClassJob eClassJob = Enum.GetValues<EClassJob>().SingleOrDefault((EClassJob x) => x.IsClass() && x.AsJob() == configuredJob); + if (eClassJob != EClassJob.Adventurer && hashSet.Contains(eClassJob)) + { + return eClassJob; } } + return (from x in (from x in combatJobGearSets + orderby x.Level descending, x.ItemLevel descending + select x).ThenByDescending<(EClassJob, short, short), int>(delegate((EClassJob ClassJob, short Level, short ItemLevel) x) + { + if (x.ClassJob.IsCaster()) + { + return 50; + } + if (x.ClassJob.IsPhysicalRanged()) + { + return 40; + } + if (x.ClassJob.IsMelee()) + { + return 30; + } + if (x.ClassJob.IsTank()) + { + return 20; + } + return x.ClassJob.IsHealer() ? 10 : 0; + }) + select x.ClassJob).DefaultIfEmpty(EClassJob.Adventurer).FirstOrDefault(); } private unsafe ReadOnlyCollection<(EClassJob ClassJob, short Level, short ItemLevel)> GetCombatJobGearSets() { List<(EClassJob, short, short)> list = new List<(EClassJob, short, short)>(); RaptureGearsetModule* ptr = RaptureGearsetModule.Instance(); - int num = ((ptr != null) ? 414086816 : 414086821); - EClassJob classJob = default(EClassJob); - RaptureGearsetModule.GearsetEntry* gearset = default(RaptureGearsetModule.GearsetEntry*); - int num6 = default(int); - short num9 = default(short); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 414086819; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return list.AsReadOnly(); + } + for (int i = 0; i < 100; i++) + { + RaptureGearsetModule.GearsetEntry* gearset = ptr->GetGearset(i); + if (!gearset->Flags.HasFlag(RaptureGearsetModule.GearsetFlag.Exists)) { - case 10: - num = 414086821; - break; - case 8: - num = (_202C_206B_200F_200C_200E_200E_206E_202B_200F_202D_202E_206F_200D_202C_206A_206C_200D_200F_200C_206C_206A_202C_202E_200C_206B_200B_200C_200E_200B_202C_206C_202B_202B_200F_206E_202C_200B_202A_206A_202E_202E(classJob) ? 414086817 : 414086823); - break; - case 7: - gearset = ptr->GetGearset(num6); - num = ((!_200B_202A_206C_202D_200F_202E_200C_200E_202B_206A_200F_200D_200B_206F_206F_206A_200D_202B_206A_206B_200F_202D_202C_202E_200B_206D_206F_200D_206B_206B_202E_200F_202A_206C_202D_200C_206C_200D_206A_206B_202E((Enum)gearset->Flags, (Enum)RaptureGearsetModule.GearsetFlag.Exists)) ? 414086817 : 414086822); - break; - case 5: - classJob = (EClassJob)gearset->ClassJob; - num = (_202D_206B_202D_202B_200E_206A_206B_200F_206F_200E_202E_200F_206B_200B_206C_202A_200F_206F_200F_202B_202E_202C_202E_206D_202E_202C_200F_206A_202D_202A_200F_206E_200F_206A_206B_206A_202B_200B_202A_200C_202E(classJob) ? 414086817 : 414086827); - break; - case 3: - num6 = 0; - num = 414086826; - break; - case 6: - return list.AsReadOnly(); - case 0: - return list.AsReadOnly(); - case 1: - { - short itemLevel = gearset->ItemLevel; - list.Add((classJob, num9, itemLevel)); - num = 414086817; - break; + continue; } - case 9: - num = ((num6 < 100) ? 414086820 : 414086819); - break; - case 4: - num9 = _206E_206A_200E_206F_202C_200B_206B_200C_200C_202A_206D_200C_200F_206F_200E_206C_200F_206F_202E_200B_202D_200D_200C_202E_200E_206E_206C_202A_200D_200C_206D_200D_206C_200F_200D_202E_206A_206C_200E_202E((int)_classJobToExpArrayIndex[classJob]); - num = ((num9 == 0) ? 414086817 : 414086818); - break; - case 2: + EClassJob classJob = (EClassJob)gearset->ClassJob; + if (!classJob.IsCrafter() && !classJob.IsGatherer()) { - int num5 = num6; - num3 = 1; - num4 = num5; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - num6 = num7 + (num8 + num8); - num = 414086826; - break; - } + short classJobLevel = PlayerStateHelper.GetClassJobLevel(_classJobToExpArrayIndex[classJob]); + if (classJobLevel != 0) + { + short itemLevel = gearset->ItemLevel; + list.Add((classJob, classJobLevel, itemLevel)); + } } } + return list.AsReadOnly(); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe EClassJob LookupQuestStartJob(ElementId? elementId) { - _202A_206C_200B_200E_200D_200E_206A_200B_202C_206A_206F_200E_200B_200F_206B_200B_202C_206E_206B_206C_200E_202C_202B_206C_200C_206C_200F_206E_200B_206D_202D_206F_206D_200B_202E_206B_206B_202C_202E_200D_202E((object)elementId, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-390564641)); - QuestId questId = elementId as QuestId; - int num = (((object)questId == null) ? 1903187952 : 1903187954); - QuestWork* questById = default(QuestWork*); - while (true) + ArgumentNullException.ThrowIfNull(elementId, "elementId"); + if (elementId is QuestId questId) { - int num2 = num; - int num3 = 1903187955; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + QuestWork* questById = QuestManager.Instance()->GetQuestById(questId.Value); + if (questById->AcceptClassJob != 0) { - case 2: - num = 1903187954; - break; - case 3: - return EClassJob.Adventurer; - case 0: return (EClassJob)questById->AcceptClassJob; - case 1: - questById = QuestManager.Instance()->GetQuestById(_200E_206D_200B_206A_200F_202D_202C_202E_202A_206F_206E_206B_200D_206A_200F_200E_206E_202B_206B_202C_202E_200B_206D_202E_202A_206B_202E_200B_202E_202C_206E_200C_206E_206A_200D_206E_202E_200F_200D_200D_202E((ElementId)questId)); - num = ((questById->AcceptClassJob == 0) ? 1903187952 : 1903187955); - break; } } - } - - static ArgumentOutOfRangeException _202D_200D_202D_200E_202D_206C_206A_206F_202C_206F_200C_202C_200B_202B_206C_200E_200B_206A_202B_200E_206F_206B_206A_202D_200D_206E_206B_200D_202A_202E_202E_202E_206B_206E_206D_206E_200B_206F_202D_206E_202E(string P_0, object P_1, string P_2) - { - return new ArgumentOutOfRangeException(P_0, P_1, P_2); - } - - static bool _200B_202A_206C_202D_200F_202E_200C_200E_202B_206A_200F_200D_200B_206F_206F_206A_200D_202B_206A_206B_200F_202D_202C_202E_200B_206D_206F_200D_206B_206B_202E_200F_202A_206C_202D_200C_206C_200D_206A_206B_202E(Enum P_0, Enum P_1) - { - return P_0.HasFlag(P_1); - } - - static bool _202D_206B_202D_202B_200E_206A_206B_200F_206F_200E_202E_200F_206B_200B_206C_202A_200F_206F_200F_202B_202E_202C_202E_206D_202E_202C_200F_206A_202D_202A_200F_206E_200F_206A_206B_206A_202B_200B_202A_200C_202E(EClassJob P_0) - { - return P_0.IsCrafter(); - } - - static bool _202C_206B_200F_200C_200E_200E_206E_202B_200F_202D_202E_206F_200D_202C_206A_206C_200D_200F_200C_206C_206A_202C_202E_200C_206B_200B_200C_200E_200B_202C_206C_202B_202B_200F_206E_202C_200B_202A_206A_202E_202E(EClassJob P_0) - { - return P_0.IsGatherer(); - } - - static short _206E_206A_200E_206F_202C_200B_206B_200C_200C_202A_206D_200C_200F_206F_200E_206C_200F_206F_202E_200B_202D_200D_200C_202E_200E_206E_206C_202A_200D_200C_206D_200D_206C_200F_200D_202E_206A_206C_200E_202E(int P_0) - { - return PlayerStateHelper.GetClassJobLevel(P_0); - } - - static void _202A_206C_200B_200E_200D_200E_206A_200B_202C_206A_206F_200E_200B_200F_206B_200B_202C_206E_206B_206C_200E_202C_202B_206C_200C_206C_200F_206E_200B_206D_202D_206F_206D_200B_202E_206B_206B_202C_202E_200D_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static ushort _200E_206D_200B_206A_200F_202D_202C_202E_202A_206F_206E_206B_200D_206A_200F_200E_206E_202B_206B_202C_202E_200B_206D_202E_202A_206B_202E_200B_202E_202C_206E_200C_206E_206A_200D_206E_202E_200F_200D_200D_202E(ElementId P_0) - { - return P_0.Value; + return EClassJob.Adventurer; } } diff --git a/Questionable/Questionable.Data/DutyEntry.cs b/Questionable/Questionable.Data/DutyEntry.cs index eb3afdd..f299f31 100644 --- a/Questionable/Questionable.Data/DutyEntry.cs +++ b/Questionable/Questionable.Data/DutyEntry.cs @@ -1,162 +1,5 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Questionable.Model.Questing; namespace Questionable.Data; -public record DutyEntry(bool Enabled, EDutyMode? DutyMode = null, bool LowPriority = false, string? TestedAutoDutyVersion = null, string? TestedBossModVersion = null, params string[] Notes) -{ - [CompilerGenerated] - protected virtual Type EqualityContract - { - [CompilerGenerated] - get - { - return _206B_202C_206A_206B_202E_206D_200D_202A_202C_206E_202D_202D_202C_200E_200B_202D_206E_202A_206D_200B_202A_206F_202A_202A_200E_202D_202A_206A_206E_202A_202A_200C_200F_200E_206B_202B_200E_200E_202C_200E_202E(typeof(DutyEntry).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200B_200E_206C_206A_200E_202C_202E_206B_206D_202B_200C_200E_206D_202A_200D_202A_200B_206E_206E_202D_200E_202C_206B_200E_202A_206E_206E_206E_200B_200C_202D_206B_202A_202B_200B_202E_200D_200F_202A_202E_202E(); - _202B_200C_206C_206B_206A_206A_200C_200B_206B_202E_202D_202D_206B_206A_200F_200F_202E_200B_202B_206A_200E_206D_206B_206D_202E_202D_206D_202E_206B_206C_206A_206F_200B_206D_202D_206F_206B_206B_206C_206B_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1564111399)); - _202B_200C_206C_206B_206A_206A_200C_200B_206B_202E_202D_202D_206B_206A_200F_200F_202E_200B_202B_206A_200E_206D_206B_206D_202E_202D_206D_202E_206B_206C_206A_206F_200B_206D_202D_206F_206B_206B_206C_206B_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(556540328)); - int num = ((!PrintMembers(stringBuilder)) ? 1829663405 : 1829663404); - while (true) - { - int num2 = num; - int num3 = 1829663405; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _206F_202D_202E_206D_200F_200B_206A_202E_200B_200C_206B_202C_202D_200F_206A_206A_200C_200B_202D_200C_202D_206F_202E_200D_200C_202E_206B_200F_202A_200E_206B_206A_202E_202D_200F_206C_202E_202E_202A_200F_202E(stringBuilder, '}'); - return _206A_200C_200D_206B_206D_202D_200C_200F_200F_202C_206C_202C_200E_206C_202B_206E_200B_202A_206B_200C_206C_206B_206C_206D_206E_202C_206B_202B_206C_206A_206C_206F_206F_206C_206A_200B_200E_206B_200F_206C_202E((object?)stringBuilder); - case 1: - _206F_202D_202E_206D_200F_200B_206A_202E_200B_200C_206B_202C_202D_200F_206A_206A_200C_200B_202D_200C_202D_206F_202E_200D_200C_202E_206B_200F_202A_200E_206B_206A_202E_202D_200F_206C_202E_202E_202A_200F_202E(stringBuilder, ' '); - num = 1829663405; - break; - case 2: - num = 1829663404; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected virtual bool PrintMembers(StringBuilder builder) - { - _202C_200E_200F_200D_202B_206B_206D_202A_202D_202A_202E_202A_202D_206C_206C_202A_206D_200F_206D_206B_202A_206A_206E_206B_206A_202E_202B_206C_202C_202D_206D_200F_202D_206C_200D_200B_200F_200F_206C_200E_202E(); - _202B_200C_206C_206B_206A_206A_200C_200B_206B_202E_202D_202D_206B_206A_200F_200F_202E_200B_202B_206A_200E_206D_206B_206D_202E_202D_206D_202E_206B_206C_206A_206F_200B_206D_202D_206F_206B_206B_206C_206B_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2084857549)); - _202B_200C_206C_206B_206A_206A_200C_200B_206B_202E_202D_202D_206B_206A_200F_200F_202E_200B_202B_206A_200E_206D_206B_206D_202E_202D_206D_202E_206B_206C_206A_206F_200B_206D_202D_206F_206B_206B_206C_206B_202E(builder, Enabled.ToString()); - _202B_200C_206C_206B_206A_206A_200C_200B_206B_202E_202D_202D_206B_206A_200F_200F_202E_200B_202B_206A_200E_206D_206B_206D_202E_202D_206D_202E_206B_206C_206A_206F_200B_206D_202D_206F_206B_206B_206C_206B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-803397145)); - _202B_200C_206C_206B_206A_206A_200C_200B_206B_202E_202D_202D_206B_206A_200F_200F_202E_200B_202B_206A_200E_206D_206B_206D_202E_202D_206D_202E_206B_206C_206A_206F_200B_206D_202D_206F_206B_206B_206C_206B_202E(builder, DutyMode.ToString()); - _202B_200C_206C_206B_206A_206A_200C_200B_206B_202E_202D_202D_206B_206A_200F_200F_202E_200B_202B_206A_200E_206D_206B_206D_202E_202D_206D_202E_206B_206C_206A_206F_200B_206D_202D_206F_206B_206B_206C_206B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(46890329)); - _202B_200C_206C_206B_206A_206A_200C_200B_206B_202E_202D_202D_206B_206A_200F_200F_202E_200B_202B_206A_200E_206D_206B_206D_202E_202D_206D_202E_206B_206C_206A_206F_200B_206D_202D_206F_206B_206B_206C_206B_202E(builder, LowPriority.ToString()); - _202B_200C_206C_206B_206A_206A_200C_200B_206B_202E_202D_202D_206B_206A_200F_200F_202E_200B_202B_206A_200E_206D_206B_206D_202E_202D_206D_202E_206B_206C_206A_206F_200B_206D_202D_206F_206B_206B_206C_206B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1653418584)); - _200F_200C_200E_202A_200D_206C_202D_200B_202E_206F_206B_202B_202D_206C_206F_202C_206E_202A_202E_200F_202E_200C_202B_202B_202B_206F_200C_206B_206E_206C_206E_206E_200D_200B_206D_206B_206E_202B_200F_202A_202E(builder, (object?)TestedAutoDutyVersion); - _202B_200C_206C_206B_206A_206A_200C_200B_206B_202E_202D_202D_206B_206A_200F_200F_202E_200B_202B_206A_200E_206D_206B_206D_202E_202D_206D_202E_206B_206C_206A_206F_200B_206D_202D_206F_206B_206B_206C_206B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1902779577)); - _200F_200C_200E_202A_200D_206C_202D_200B_202E_206F_206B_202B_202D_206C_206F_202C_206E_202A_202E_200F_202E_200C_202B_202B_202B_206F_200C_206B_206E_206C_206E_206E_200D_200B_206D_206B_206E_202B_200F_202A_202E(builder, (object?)TestedBossModVersion); - _202B_200C_206C_206B_206A_206A_200C_200B_206B_202E_202D_202D_206B_206A_200F_200F_202E_200B_202B_206A_200E_206D_206B_206D_202E_202D_206D_202E_206B_206C_206A_206F_200B_206D_202D_206F_206B_206B_206C_206B_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(743555785)); - _200F_200C_200E_202A_200D_206C_202D_200B_202E_206F_206B_202B_202D_206C_206F_202C_206E_202A_202E_200F_202E_200C_202B_202B_202B_206F_200C_206B_206E_206C_206E_206E_200D_200B_206D_206B_206E_202B_200F_202A_202E(builder, (object?)Notes); - return true; - } - - [CompilerGenerated] - public virtual bool Equals(DutyEntry? other) - { - int num = (((object)this == other) ? (-1968311601) : (-1968311608)); - while (true) - { - int num2 = num; - int num3 = -1968311602; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = ((!EqualityComparer<string>.Default.Equals(TestedBossModVersion, other.TestedBossModVersion)) ? (-1968311609) : (-1968311604)); - break; - case 6: - num = (((object)other == null) ? (-1968311609) : (-1968311605)); - break; - case 0: - num = ((!EqualityComparer<bool>.Default.Equals(LowPriority, other.LowPriority)) ? (-1968311609) : (-1968311612)); - break; - case 2: - return EqualityComparer<string[]>.Default.Equals(Notes, other.Notes); - case 9: - return false; - case 10: - num = ((!EqualityComparer<string>.Default.Equals(TestedAutoDutyVersion, other.TestedAutoDutyVersion)) ? (-1968311609) : (-1968311603)); - break; - case 7: - num = ((!EqualityComparer<EDutyMode?>.Default.Equals(DutyMode, other.DutyMode)) ? (-1968311609) : (-1968311602)); - break; - case 5: - num = ((!_206E_202B_202E_206B_200F_206C_200F_206D_200B_206C_200B_206F_202D_206E_206B_206E_202E_202E_202E_206F_200D_206B_206B_200D_200E_200E_206D_206A_206A_202E_206D_206D_206B_200B_206C_200E_206D_202E_200E_206E_202E(EqualityContract, other.EqualityContract)) ? (-1968311609) : (-1968311606)); - break; - case 1: - return true; - case 8: - num = -1968311608; - break; - case 4: - num = ((!EqualityComparer<bool>.Default.Equals(Enabled, other.Enabled)) ? (-1968311609) : (-1968311607)); - break; - } - } - } - - bool IEquatable<DutyEntry>.Equals(DutyEntry? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type? _206B_202C_206A_206B_202E_206D_200D_202A_202C_206E_202D_202D_202C_200E_200B_202D_206E_202A_206D_200B_202A_206F_202A_202A_200E_202D_202A_206A_206E_202A_202A_200C_200F_200E_206B_202B_200E_200E_202C_200E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder? _200B_200E_206C_206A_200E_202C_202E_206B_206D_202B_200C_200E_206D_202A_200D_202A_200B_206E_206E_202D_200E_202C_206B_200E_202A_206E_206E_206E_200B_200C_202D_206B_202A_202B_200B_202E_200D_200F_202A_202E_202E() - { - return new StringBuilder(); - } - - static StringBuilder? _202B_200C_206C_206B_206A_206A_200C_200B_206B_202E_202D_202D_206B_206A_200F_200F_202E_200B_202B_206A_200E_206D_206B_206D_202E_202D_206D_202E_206B_206C_206A_206F_200B_206D_202D_206F_206B_206B_206C_206B_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _206F_202D_202E_206D_200F_200B_206A_202E_200B_200C_206B_202C_202D_200F_206A_206A_200C_200B_202D_200C_202D_206F_202E_200D_200C_202E_206B_200F_202A_200E_206B_206A_202E_202D_200F_206C_202E_202E_202A_200F_202E(StringBuilder? P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string? _206A_200C_200D_206B_206D_202D_200C_200F_200F_202C_206C_202C_200E_206C_202B_206E_200B_202A_206B_200C_206C_206B_206C_206D_206E_202C_206B_202B_206C_206A_206C_206F_206F_206C_206A_200B_200E_206B_200F_206C_202E(object? P_0) - { - return P_0.ToString(); - } - - static void _202C_200E_200F_200D_202B_206B_206D_202A_202D_202A_202E_202A_202D_206C_206C_202A_206D_200F_206D_206B_202A_206A_206E_206B_206A_202E_202B_206C_202C_202D_206D_200F_202D_206C_200D_200B_200F_200F_206C_200E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder? _200F_200C_200E_202A_200D_206C_202D_200B_202E_206F_206B_202B_202D_206C_206F_202C_206E_202A_202E_200F_202E_200C_202B_202B_202B_206F_200C_206B_206E_206C_206E_206E_200D_200B_206D_206B_206E_202B_200F_202A_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } - - static bool _206E_202B_202E_206B_200F_206C_200F_206D_200B_206C_200B_206F_202D_206E_206B_206E_202E_202E_202E_206F_200D_206B_206B_200D_200E_200E_206D_206A_206A_202E_206D_206D_206B_200B_206C_200E_206D_202E_200E_206E_202E(Type? P_0, Type? P_1) - { - return P_0 == P_1; - } -} +public record DutyEntry(bool Enabled, EDutyMode? DutyMode = null, bool LowPriority = false, string? TestedAutoDutyVersion = null, string? TestedBossModVersion = null, params string[] Notes); diff --git a/Questionable/Questionable.Data/DutyInfo.cs b/Questionable/Questionable.Data/DutyInfo.cs index ebfe83f..b37e13e 100644 --- a/Questionable/Questionable.Data/DutyInfo.cs +++ b/Questionable/Questionable.Data/DutyInfo.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; using System.Collections.Immutable; -using System.Runtime.CompilerServices; -using System.Text; using FFXIVClientStructs.FFXIV.Client.Game.UI; using Questionable.Model.Questing; @@ -10,211 +6,17 @@ namespace Questionable.Data; public sealed record DutyInfo(uint ContentFinderConditionId, uint ContentId, string Name, uint ContentTypeId, string ContentTypeName, ushort Level, ushort ItemLevel, ImmutableList<QuestId> UnlockQuests, bool IsHighEndDuty, EDutyCategory DutyCategory) { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200E_206E_206D_206C_206E_202C_206A_200C_202D_206A_202E_206B_206F_202E_202E_206C_206F_202D_200E_206A_200F_202D_202D_206C_202A_202B_200B_206E_202A_200D_200D_200B_202A_200E_200E_206A_202E_206C_202A_202E(typeof(DutyInfo).TypeHandle); - } - } - public bool IsUnlocked => UIState.IsInstanceContentUnlocked(ContentId); public bool? IsCompleted { get { - int num = ((DutyCategory == EDutyCategory.DeepDungeon) ? 1546922705 : 1546922706); - while (true) + if (DutyCategory != EDutyCategory.DeepDungeon) { - int num2 = num; - int num3 = 1546922707; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004a; - case 1: - return UIState.IsInstanceContentCompleted((ushort)ContentId); - case 2: - return null; - } - continue; - IL_004a: - num = 1546922706; + return UIState.IsInstanceContentCompleted((ushort)ContentId); } + return null; } } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206A_202E_206F_206D_202A_200E_200B_206C_206B_202D_206E_202A_200E_202E_202A_206A_200F_202A_202A_200E_200E_206B_206D_200E_206E_206B_206E_200D_202C_200D_206B_200B_200B_206A_200B_206A_206C_200E_206B_200D_202E(); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1059308005)); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? 2048669009 : 2048669008); - while (true) - { - int num2 = num; - int num3 = 2048669009; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _202B_202E_202E_200F_202B_202B_206B_200C_202C_206F_206E_206C_202B_206E_200C_202E_200B_202E_200F_202D_200C_206B_206B_206E_206F_202C_200F_206B_202B_202A_206A_202B_202E_206A_200B_202A_202C_202C_200E_202B_202E(stringBuilder, '}'); - return _202A_206B_200B_200C_200C_200C_200C_206B_206E_206D_202C_206F_200D_202B_200B_206C_202A_202B_206D_200F_202A_206C_202C_206B_206D_200C_206B_202C_206D_202C_206A_200F_200E_206D_202B_200E_206B_206D_206C_200E_202E((object)stringBuilder); - case 1: - _202B_202E_202E_200F_202B_202B_206B_200C_202C_206F_206E_206C_202B_206E_200C_202E_200B_202E_200F_202D_200C_206B_206B_206E_206F_202C_200F_206B_202B_202A_206A_202B_202E_206A_200B_202A_202C_202C_200E_202B_202E(stringBuilder, ' '); - num = 2048669009; - break; - case 2: - num = 2048669008; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202A_200E_202D_200F_200E_206A_202E_206B_200D_200E_206A_200E_200D_206A_206A_206E_200B_200F_200B_202A_206D_206F_206C_200D_202E_206E_200F_206F_202D_202C_202E_200C_202C_200D_200F_202E_202A_206A_202D_202E_202E(); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-532733746)); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, ContentFinderConditionId.ToString()); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1527461254)); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, ContentId.ToString()); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-838515035)); - _202E_206A_206C_202C_206B_206C_200C_206B_202D_202C_200C_202D_200F_202E_202E_202B_202B_206E_206C_202B_206C_206D_202B_200D_200C_206C_206A_206B_200F_202B_206A_206A_206D_202E_206B_206C_206A_202E_202D_202A_202E(builder, (object)Name); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1858187040)); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, ContentTypeId.ToString()); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-50463825)); - _202E_206A_206C_202C_206B_206C_200C_206B_202D_202C_200C_202D_200F_202E_202E_202B_202B_206E_206C_202B_206C_206D_202B_200D_200C_206C_206A_206B_200F_202B_206A_206A_206D_202E_206B_206C_206A_202E_202D_202A_202E(builder, (object)ContentTypeName); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2059092762)); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, Level.ToString()); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(296851361)); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, ItemLevel.ToString()); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-969668761)); - _202E_206A_206C_202C_206B_206C_200C_206B_202D_202C_200C_202D_200F_202E_202E_202B_202B_206E_206C_202B_206C_206D_202B_200D_200C_206C_206A_206B_200F_202B_206A_206A_206D_202E_206B_206C_206A_202E_202D_202A_202E(builder, (object)UnlockQuests); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(117454616)); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, IsHighEndDuty.ToString()); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(567514760)); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, DutyCategory.ToString()); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-728741772)); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, IsUnlocked.ToString()); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1427571993)); - _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(builder, IsCompleted.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(DutyInfo? other) - { - int num = (((object)this == other) ? (-489118801) : (-489118809)); - while (true) - { - int num2 = num; - int num3 = -489118804; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 8: - num = ((!EqualityComparer<uint>.Default.Equals(ContentTypeId, other.ContentTypeId)) ? (-489118815) : (-489118816)); - break; - case 6: - num = ((!EqualityComparer<ushort>.Default.Equals(Level, other.Level)) ? (-489118815) : (-489118810)); - break; - case 13: - return false; - case 12: - num = ((!EqualityComparer<string>.Default.Equals(ContentTypeName, other.ContentTypeName)) ? (-489118815) : (-489118806)); - break; - case 1: - num = ((!EqualityComparer<uint>.Default.Equals(ContentFinderConditionId, other.ContentFinderConditionId)) ? (-489118815) : (-489118802)); - break; - case 9: - num = ((!_200B_206E_206F_200E_206F_202A_200D_200C_206C_206E_206B_200C_200C_206A_206B_202A_206E_202D_200B_202E_202B_200E_206B_200D_202D_206C_202C_206C_206C_202A_200F_202E_202C_200C_202A_200F_200D_200B_206C_206C_202E(EqualityContract, other.EqualityContract)) ? (-489118815) : (-489118803)); - break; - case 10: - num = ((!EqualityComparer<ushort>.Default.Equals(ItemLevel, other.ItemLevel)) ? (-489118815) : (-489118805)); - break; - case 11: - num = (((object)other == null) ? (-489118815) : (-489118811)); - break; - case 3: - return true; - case 5: - num = -489118809; - break; - case 0: - num = ((!EqualityComparer<string>.Default.Equals(Name, other.Name)) ? (-489118815) : (-489118812)); - break; - case 14: - num = ((!EqualityComparer<bool>.Default.Equals(IsHighEndDuty, other.IsHighEndDuty)) ? (-489118815) : (-489118808)); - break; - case 2: - num = ((!EqualityComparer<uint>.Default.Equals(ContentId, other.ContentId)) ? (-489118815) : (-489118804)); - break; - case 4: - return EqualityComparer<EDutyCategory>.Default.Equals(DutyCategory, other.DutyCategory); - case 7: - num = ((!EqualityComparer<ImmutableList<QuestId>>.Default.Equals(UnlockQuests, other.UnlockQuests)) ? (-489118815) : (-489118814)); - break; - } - } - } - - bool IEquatable<DutyInfo>.Equals(DutyInfo? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200E_206E_206D_206C_206E_202C_206A_200C_202D_206A_202E_206B_206F_202E_202E_206C_206F_202D_200E_206A_200F_202D_202D_206C_202A_202B_200B_206E_202A_200D_200D_200B_202A_200E_200E_206A_202E_206C_202A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206A_202E_206F_206D_202A_200E_200B_206C_206B_202D_206E_202A_200E_202E_202A_206A_200F_202A_202A_200E_200E_206B_206D_200E_206E_206B_206E_200D_202C_200D_206B_200B_200B_206A_200B_206A_206C_200E_206B_200D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206F_200F_200E_202A_200C_202A_206C_206B_202B_206B_206C_206C_202D_200D_202C_206D_206D_202D_206F_202B_202C_206E_200B_202E_200E_206C_206C_202D_200C_200E_202E_202B_206C_200D_202D_206A_202D_206B_202D_206B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202B_202E_202E_200F_202B_202B_206B_200C_202C_206F_206E_206C_202B_206E_200C_202E_200B_202E_200F_202D_200C_206B_206B_206E_206F_202C_200F_206B_202B_202A_206A_202B_202E_206A_200B_202A_202C_202C_200E_202B_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202A_206B_200B_200C_200C_200C_200C_206B_206E_206D_202C_206F_200D_202B_200B_206C_202A_202B_206D_200F_202A_206C_202C_206B_206D_200C_206B_202C_206D_202C_206A_200F_200E_206D_202B_200E_206B_206D_206C_200E_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202A_200E_202D_200F_200E_206A_202E_206B_200D_200E_206A_200E_200D_206A_206A_206E_200B_200F_200B_202A_206D_206F_206C_200D_202E_206E_200F_206F_202D_202C_202E_200C_202C_200D_200F_202E_202A_206A_202D_202E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202E_206A_206C_202C_206B_206C_200C_206B_202D_202C_200C_202D_200F_202E_202E_202B_202B_206E_206C_202B_206C_206D_202B_200D_200C_206C_206A_206B_200F_202B_206A_206A_206D_202E_206B_206C_206A_202E_202D_202A_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200B_206E_206F_200E_206F_202A_200D_200C_206C_206E_206B_200C_200C_206A_206B_202A_206E_202D_200B_202E_202B_200E_206B_200D_202D_206C_202C_206C_206C_202A_200F_202E_202C_200C_202A_200F_200D_200B_206C_206C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } } diff --git a/Questionable/Questionable.Data/DutyRegistry.cs b/Questionable/Questionable.Data/DutyRegistry.cs index 5e7cc71..284a1ed 100644 --- a/Questionable/Questionable.Data/DutyRegistry.cs +++ b/Questionable/Questionable.Data/DutyRegistry.cs @@ -1,5 +1,4 @@ using System.Collections.Generic; -using System.Runtime.CompilerServices; using Questionable.Model.Questing; namespace Questionable.Data; @@ -10,7 +9,6 @@ internal static class DutyRegistry public static readonly Dictionary<ushort, SinglePlayerDutyEntry[]> SinglePlayerDuties; - [MethodImpl(MethodImplOptions.NoInlining)] static DutyRegistry() { Dictionary<uint, DutyEntry> dictionary = new Dictionary<uint, DutyEntry> @@ -21,16 +19,12 @@ internal static class DutyRegistry [4u] = new DutyEntry(true, null, false, null, null), [5u] = new DutyEntry(true, EDutyMode.UnsyncSolo, false, null, null) }; - string[] notes = new string[1] { global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-740056138) }; + string[] notes = new string[1] { "(after boss 2) Will not pick up the bloody parchment, and instead run off to open a random unrelated chest that it can't reach" }; dictionary[6u] = new DutyEntry(Enabled: false, null, LowPriority: false, null, null, notes); - notes = new string[1] { global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(500792075) }; + notes = new string[1] { "(boss 2) Will walk out of the boss arena to try and attack optional enemies on the upper level, thus resetting the boss and breaking the path" }; dictionary[8u] = new DutyEntry(Enabled: false, null, LowPriority: false, null, null, notes); dictionary[10u] = new DutyEntry(true, null, false, null, null); - notes = new string[2] - { - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-321137558), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1525766035) - }; + notes = new string[2] { "(boss 1) AI will not face cleaves away from healer, typically killing them", "(boss 3) AI will not face cleaves away from healer, which doesn't always kill them" }; dictionary[11u] = new DutyEntry(Enabled: false, null, LowPriority: false, null, null, notes); dictionary[13u] = new DutyEntry(true, EDutyMode.UnsyncSolo, false, null, null); dictionary[14u] = new DutyEntry(true, EDutyMode.UnsyncSolo, false, null, null); @@ -95,19 +89,12 @@ internal static class DutyRegistry dictionary[137u] = new DutyEntry(false, null, false, null, null); dictionary[138u] = new DutyEntry(false, null, false, null, null); dictionary[139u] = new DutyEntry(false, null, false, null, null); - dictionary[141u] = new DutyEntry(true, null, false, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-849445722), null); + dictionary[141u] = new DutyEntry(true, null, false, "0.0.0.191", null); dictionary[168u] = new DutyEntry(false, null, false, null, null); dictionary[169u] = new DutyEntry(false, null, false, null, null); - dictionary[171u] = new DutyEntry(Enabled: false, Notes: new string[2] - { - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-97471851), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1463285387) - }, DutyMode: null, LowPriority: false, TestedAutoDutyVersion: global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(544130609), TestedBossModVersion: global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1688701408)); - notes = new string[2] - { - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(606315529), - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(16182373) - }; + notes = new string[2] { "(boss 1) Doesn't knock all moogles out of the rez area", "(boss 3) Stack goal zone isn't properly removed from NPC, so the character will stack even for spread markers + slide into AOEs during ice" }; + dictionary[171u] = new DutyEntry(Enabled: false, null, LowPriority: false, "0.0.0.227", "0.3.0.5", notes); + notes = new string[2] { "(after boss 1) the drawbridges being up will lead you to die from the spikes", "(after boss 1) the lift isn't working properly" }; dictionary[182u] = new DutyEntry(Enabled: false, null, LowPriority: false, null, null, notes); dictionary[183u] = new DutyEntry(false, null, false, null, null); dictionary[186u] = new DutyEntry(false, null, false, null, null); @@ -123,11 +110,7 @@ internal static class DutyRegistry dictionary[239u] = new DutyEntry(false, null, false, null, null); dictionary[240u] = new DutyEntry(false, null, false, null, null); dictionary[241u] = new DutyEntry(true, null, false, null, null); - notes = new string[2] - { - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1573536567), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-595104119) - }; + notes = new string[2] { "(before boss 2) AD doesn't attack magitek pods, but waits for enemies to spawn from them (even though it has explicit waypoints)", "(boss 2) VBM moves out of the towers before their mechanic is resolved, sometimes killing the NPC healer" }; dictionary[242u] = new DutyEntry(Enabled: true, null, LowPriority: false, null, null, notes); dictionary[243u] = new DutyEntry(false, null, false, null, null); dictionary[247u] = new DutyEntry(false, null, false, null, null); @@ -195,7 +178,7 @@ internal static class DutyRegistry dictionary[781u] = new DutyEntry(false, null, false, null, null); dictionary[783u] = new DutyEntry(true, null, false, null, null); dictionary[785u] = new DutyEntry(false, null, false, null, null); - notes = new string[1] { global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1940255737) }; + notes = new string[1] { "No VBM module" }; dictionary[786u] = new DutyEntry(Enabled: false, null, LowPriority: false, null, null, notes); dictionary[787u] = new DutyEntry(true, null, false, null, null); dictionary[789u] = new DutyEntry(true, null, false, null, null); @@ -207,7 +190,7 @@ internal static class DutyRegistry dictionary[806u] = new DutyEntry(false, null, false, null, null); dictionary[808u] = new DutyEntry(false, null, false, null, null); dictionary[810u] = new DutyEntry(false, null, false, null, null); - notes = new string[1] { global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-719778432) }; + notes = new string[1] { "Navigation issues for area transitions" }; dictionary[822u] = new DutyEntry(Enabled: false, null, LowPriority: false, null, null, notes); dictionary[823u] = new DutyEntry(true, null, false, null, null); dictionary[824u] = new DutyEntry(true, null, false, null, null); @@ -219,10 +202,10 @@ internal static class DutyRegistry dictionary[831u] = new DutyEntry(true, null, false, null, null); dictionary[832u] = new DutyEntry(false, null, false, null, null); dictionary[834u] = new DutyEntry(false, null, false, null, null); - notes = new string[1] { global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-159916004) }; + notes = new string[1] { "No VBM module" }; dictionary[844u] = new DutyEntry(Enabled: false, null, LowPriority: false, null, null, notes); dictionary[866u] = new DutyEntry(false, null, false, null, null); - notes = new string[1] { global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2114799360) }; + notes = new string[1] { "No VBM module" }; dictionary[869u] = new DutyEntry(Enabled: false, null, LowPriority: false, null, null, notes); dictionary[870u] = new DutyEntry(false, null, false, null, null); dictionary[872u] = new DutyEntry(false, null, false, null, null); @@ -246,20 +229,16 @@ internal static class DutyRegistry dictionary[987u] = new DutyEntry(false, null, false, null, null); dictionary[989u] = new DutyEntry(false, null, false, null, null); dictionary[991u] = new DutyEntry(false, null, false, null, null); - notes = new string[1] { global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-159916004) }; + notes = new string[1] { "No VBM module" }; dictionary[995u] = new DutyEntry(Enabled: false, null, LowPriority: false, null, null, notes); - notes = new string[2] - { - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1305406828), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(586601640) - }; + notes = new string[2] { "(boss 2) Requires vbm's auto-turn gaze option", "(boss 3) Dashes (such as on SMN) will dash into the hole" }; dictionary[1008u] = new DutyEntry(Enabled: true, null, LowPriority: false, null, null, notes); dictionary[1015u] = new DutyEntry(false, null, false, null, null); dictionary[1019u] = new DutyEntry(false, null, false, null, null); dictionary[1021u] = new DutyEntry(false, null, false, null, null); dictionary[1023u] = new DutyEntry(false, null, false, null, null); dictionary[1025u] = new DutyEntry(false, null, false, null, null); - dictionary[1027u] = new DutyEntry(true, null, false, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-207523551), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2137277187)); + dictionary[1027u] = new DutyEntry(true, null, false, "0.0.0.230", "0.3.2.4"); dictionary[1028u] = new DutyEntry(false, null, false, null, null); dictionary[1030u] = new DutyEntry(false, null, false, null, null); dictionary[1043u] = new DutyEntry(false, null, false, null, null); @@ -280,8 +259,8 @@ internal static class DutyRegistry }, [56] = new SinglePlayerDutyEntry[2] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(399731535)), - new SinglePlayerDutyEntry(true, 1, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-139715764)) + new SinglePlayerDutyEntry(true, 0, "0.3.2.4"), + new SinglePlayerDutyEntry(true, 1, "0.3.2.4") }, [68] = new SinglePlayerDutyEntry[1] { @@ -302,23 +281,23 @@ internal static class DutyRegistry }, [88] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1819257689), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1985319516), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1068534247)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292", "Will target Eline first (other NPCs later), and move to some -other- group of NPCs; only re-targets once they're at 1 HP (for Eline) or die", "If the target isn't in melee range but other NPCs are, whether any AOEs are used for nearby enemies seems random") }, [91] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(492644870)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [92] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(492644870)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [126] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-62065112), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(278409112), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1377475822), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1492222972), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-123202390)) + new SinglePlayerDutyEntry(false, 0, "0.0.0.292", "(phase 1) AI doesn't move or pick up the stolen firearms", "(phase 1 + 2) AI automatically removes Hidden status", "(phase 2) AI only moves while targeted enemies are in range + gets stuck on corners while trying to get to irrelevant enemies", "(phase 2) AI doesn't even attempt to navigate to the end of the quest") }, [129] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1228756590)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [144] = new SinglePlayerDutyEntry[1] { @@ -334,7 +313,7 @@ internal static class DutyRegistry }, [147] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1740594943)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [148] = new SinglePlayerDutyEntry[1] { @@ -346,7 +325,7 @@ internal static class DutyRegistry }, [161] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-62065112), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1502595228)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292", "Healer NPC is only killed after the boss dies; all NPCs need to be killed for the duty to complete") }, [213] = new SinglePlayerDutyEntry[1] { @@ -386,7 +365,7 @@ internal static class DutyRegistry }, [265] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-427164286)) + new SinglePlayerDutyEntry(true, 0, "0.4.6.0") }, [288] = new SinglePlayerDutyEntry[1] { @@ -394,39 +373,39 @@ internal static class DutyRegistry }, [313] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-104173425)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [317] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-104173425)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [318] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-541438926)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [319] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1507724262)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [320] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1819257689)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [336] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1819257689)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [343] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-62065112)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [350] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(399731535), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1050531972), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1049973291)) + new SinglePlayerDutyEntry(false, 0, "0.3.2.4", "vbm doesn't move to the enemies automatically", "vbm doesn't interact with the urn") }, [351] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(399731535), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1674476193)) + new SinglePlayerDutyEntry(false, 0, "0.3.2.4", "Duty somewhat expects you to put the boss to sleep, vbm doesn't and lets the friendly NPC die") }, [352] = new SinglePlayerDutyEntry[1] { @@ -438,7 +417,7 @@ internal static class DutyRegistry }, [414] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(492644870), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1196358840)) + new SinglePlayerDutyEntry(false, 0, "0.0.0.292", "(Phase 1, second enemy group) Stuck with enemy being out of sight -- but still able to attack you (tested on ACN)") }, [439] = new SinglePlayerDutyEntry[2] { @@ -455,11 +434,11 @@ internal static class DutyRegistry }, [445] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1228756590), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2033549770)) + new SinglePlayerDutyEntry(false, 0, "0.0.0.292", "AI doesn't automatically target newly spawning adds until after the boss died, and dies (tested on CNJ)") }, [447] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(492644870), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2048480598)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292", "(Phase 1) Healer NPCs are only killed after the boss dies - allied NPCs will kill them eventually; all NPCs need to be killed for the duty to complete") }, [456] = new SinglePlayerDutyEntry[1] { @@ -483,31 +462,31 @@ internal static class DutyRegistry }, [469] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(492644870)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [521] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(179053243), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2115291333)) + new SinglePlayerDutyEntry(false, 0, "0.1.0.1", "(outside) Doesn't use obstacle maps or vnav to move to the shield generators, gets stuck on the big crates") }, [543] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(9507588)) + new SinglePlayerDutyEntry(true, 0, "0.3.2.5") }, [544] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(492644870), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1886068424)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292", "(Phase 1) Kills PGL NPCs and then the boss - allied NPCs will kill most other NPCs eventually; all NPCs need to be killed for the duty to complete") }, [550] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1740594943)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [551] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1740594943), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1046490574)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292", "(Phase 1) Healer NPCs are only killed after the boss dies - allied NPCs will kill them eventually; all NPCs need to be killed for the duty to complete") }, [558] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1819257689)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [562] = new SinglePlayerDutyEntry[1] { @@ -524,71 +503,71 @@ internal static class DutyRegistry }, [586] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1819257689)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [601] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1740594943)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [660] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1819257689)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [680] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-62065112)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [681] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1819257689)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [682] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1819257689)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [724] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1228756590)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [782] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1507724262)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [811] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(179053243)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [912] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-104173425)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [941] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(695907609)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [967] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-541438926)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [983] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(179053243)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [1004] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1507724262)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [1005] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(695907609)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [1049] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(179053243)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [1054] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(492644870)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [1059] = new SinglePlayerDutyEntry[1] { @@ -628,11 +607,11 @@ internal static class DutyRegistry }, [1088] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2088283823)) + new SinglePlayerDutyEntry(true, 0, "0.1.1.8") }, [1090] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2088283823)) + new SinglePlayerDutyEntry(true, 0, "0.1.1.8") }, [1091] = new SinglePlayerDutyEntry[1] { @@ -664,43 +643,43 @@ internal static class DutyRegistry }, [1456] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(492644870)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [1588] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1228756590)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [1595] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-62065112)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [1597] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-62065112)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [1601] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1819257689), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1282455856)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292", "Will not move into melee range to kill the gate; Alphinaud will kill it after a while") }, [1606] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(492644870)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [1639] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1819257689)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [1644] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-62065112)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [1657] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1228756590)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [1667] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-62065112)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [1672] = new SinglePlayerDutyEntry[1] { @@ -852,11 +831,11 @@ internal static class DutyRegistry }, [2163] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(695907609)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [2239] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-541438926)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [2288] = new SinglePlayerDutyEntry[1] { @@ -864,11 +843,11 @@ internal static class DutyRegistry }, [2349] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(695907609)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [2358] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-104173425), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-738477960)) + new SinglePlayerDutyEntry(false, 0, "0.1.0.1", "(phase 2) AI doesn't use any of the Red Baron's attacks, just moves with it and eventually dies (after a few minutes)") }, [2411] = new SinglePlayerDutyEntry[1] { @@ -896,39 +875,39 @@ internal static class DutyRegistry }, [2453] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(695907609)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [2463] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-541438926)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [2474] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-104173425)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [2498] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(179053243)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [2515] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(179053243)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [2528] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-104173425)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [2549] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(179053243), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1665199650)) + new SinglePlayerDutyEntry(false, 0, "0.1.0.1", "Navigation gets stuck in various places") }, [2550] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(179053243), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1687734342)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1", "(Fordola) Gets hit by AOEs due to moving into them before the mechanic resolves") }, [2552] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-541438926)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [2560] = new SinglePlayerDutyEntry[1] { @@ -1004,11 +983,11 @@ internal static class DutyRegistry }, [2900] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1507724262)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [2904] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(179053243), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1112300028)) + new SinglePlayerDutyEntry(false, 0, "0.1.0.1", "Keeps attacking the invulnerable boss instead of the mammoths, thus letting your allied NPC die") }, [2907] = new SinglePlayerDutyEntry[1] { @@ -1056,7 +1035,7 @@ internal static class DutyRegistry }, [2972] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-541438926)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [2977] = new SinglePlayerDutyEntry[1] { @@ -1068,11 +1047,11 @@ internal static class DutyRegistry }, [3024] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-104173425)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [3027] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1507724262)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [3031] = new SinglePlayerDutyEntry[1] { @@ -1084,23 +1063,23 @@ internal static class DutyRegistry }, [3076] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(179053243)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [3147] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(179053243), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1066548368)) + new SinglePlayerDutyEntry(false, 0, "0.1.0.1", "(Magnai) Keeps focussing the boss instead of the axes, thus getting killed by the AOEs") }, [3185] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, null, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1512696108), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1699214654), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(474464200), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-732560237)) + new SinglePlayerDutyEntry(false, 0, null, "(phase 1) Need to manually move in range to trigger combat", "(phase 1) VBM doesn't know about some AOEs (e.g. Vein Splitter)", "(phase 1) VBM ignores markers to stack on Lyse (she still survives)", "(phase 2) AI can walk outside the arena to get a bleed + damage down when dodging mechanics") }, [3247] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-104173425), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1689685354)) + new SinglePlayerDutyEntry(false, 0, "0.1.0.1", "AI doesn't pull enemies when spawning into the instance") }, [3248] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-378223677)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.293") }, [3250] = new SinglePlayerDutyEntry[1] { @@ -1124,7 +1103,7 @@ internal static class DutyRegistry }, [3272] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(695907609), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-504820768)) + new SinglePlayerDutyEntry(false, 0, "0.1.0.1", "Currently it won't work, because the logic is missing NPC healing.") }, [3276] = new SinglePlayerDutyEntry[1] { @@ -1136,27 +1115,27 @@ internal static class DutyRegistry }, [3305] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(179053243)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [3337] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(695907609), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-426707018)) + new SinglePlayerDutyEntry(false, 0, "0.1.0.1", "(room 2) AI tries to walk straight to the next door, ignoring all walls") }, [3606] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-541438926), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-823110227), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-561511620), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(961342529)) + new SinglePlayerDutyEntry(false, 0, "0.1.0.1", "(phase 1) AI gets stuck on trees/posts/walls.", "(phase 1) AI will never reach the Ostall Imperative, it instead walks circles around Radisca's Round even with all enemies dead.", "(phase 2) AI will still try to walk to Radisca's Round, but (usually) prioritizes fighting enemies.") }, [3619] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(179053243), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-592715493)) + new SinglePlayerDutyEntry(false, 0, "0.1.0.1", "(before Ran'jit wears the veil) AI doesn't pull, doesn't attack and VBM doesn't recognize any AOEs.") }, [3626] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1507724262), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(391489563)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1", "Sometimes the movement is the cause of a duty failing.") }, [3628] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(179053243)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [3631] = new SinglePlayerDutyEntry[1] { @@ -1164,11 +1143,11 @@ internal static class DutyRegistry }, [3638] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1507724262)) + new SinglePlayerDutyEntry(true, 0, "0.1.0.1") }, [3682] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-62065112), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2033092502), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-855102905), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1912720202), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1937006399)) + new SinglePlayerDutyEntry(false, 0, "0.0.0.292", "AI doesn't move automatically for the first boss", "AI doesn't move automatically for the dialogue with gaius on the bridge", "After walking downstairs automatically, AI tries to run back towards the stairs (ignoring the arena boudnary)", "After moving from the arena boundary, AI doesn't move into melee range and stops too far away when initially attacking") }, [3687] = new SinglePlayerDutyEntry[1] { @@ -1176,11 +1155,11 @@ internal static class DutyRegistry }, [3765] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1740594943), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(408292549)) + new SinglePlayerDutyEntry(false, 0, "0.0.0.292", "Doesn't walk to the teleporter to finish the duty") }, [3775] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(492644870), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1554639648), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1362106919)) + new SinglePlayerDutyEntry(false, 0, "0.0.0.292", "(phase 2) AI doesn't target Ardbert to start combat", "(phase 2) VBM module: Elidibus' line cleave only covers half the length of the actual line (survivable)") }, [3836] = new SinglePlayerDutyEntry[1] { @@ -1188,7 +1167,7 @@ internal static class DutyRegistry }, [3862] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-62065112), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(306455426)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292", "AI will kill initial adds before the boss, but not switch target whenever new enemies spawn; all NPCs need to be killed for the duty to complete") }, [3895] = new SinglePlayerDutyEntry[2] { @@ -1197,11 +1176,11 @@ internal static class DutyRegistry }, [4015] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(492644870)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [4066] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1424932868), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-740671790), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1395739987), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1988843156)) + new SinglePlayerDutyEntry(false, 0, "0.0.0.293", "(Lunar Odin) AI doesn't pull Odin to start combat", "(Lunar Ravana) AI doesn't pull Ravana to start combat", "(Lunar Ravana) AI doesn't move out of directional parry directions") }, [4068] = new SinglePlayerDutyEntry[1] { @@ -1221,15 +1200,15 @@ internal static class DutyRegistry }, [4107] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-541438926), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1083592363), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(539323923), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1952404066), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1440468780), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1191513629), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1317667646)) + new SinglePlayerDutyEntry(false, 0, "0.1.0.1", "There is currently no BossMod Supported Bosses Logic.", "BossMod doesn't use Interject.", "BossMod can't handle QuickButton Actions yet.", "BossMod doesn't use Healing Actions for Tanks.", "It will need alot of manual work", "And there is a part, where the user needs to interact.") }, [4113] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-313483273), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(507533013), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-222950458)) + new SinglePlayerDutyEntry(false, 0, "0.1.1.8", "AI doesn't target boss", "AI doesn't heal NPCs") }, [4119] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1246901539), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1293492283), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-995509957), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(112897989)) + new SinglePlayerDutyEntry(false, 0, "0.1.1.8", "AI doesn't attempt to move to the correct direction when killing orbs", "AI only dodges some, but not all AOEs", "AI doesn't move behind the shield for 'Extinction Flare' and dies") }, [4125] = new SinglePlayerDutyEntry[1] { @@ -1237,51 +1216,51 @@ internal static class DutyRegistry }, [4131] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1362434901), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-194717797), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-672969886), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1562193806), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-766926656)) + new SinglePlayerDutyEntry(false, 0, "0.1.1.4", "AI doesn't target Fafnir to start combat", "AI doesn't stand in towers", "AI doesn't kill ads", "AI doesn't move behind the shield to take cover and dies") }, [4383] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(568429296), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1388128744)) + new SinglePlayerDutyEntry(false, 0, "0.0.0.293", "(Thancred) How many enemies get pulled during the stealth section is random; if you pull multiple you can die here. Can probably be fixed by retrying on very easy.") }, [4394] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, null, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1391683818), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(96288699), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2014328831), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1030773571)) + new SinglePlayerDutyEntry(false, 0, null, "Instance probably only works on very easy difficulty", "AI doesn't move to first enemy", "AI doesn't unmount from the Magitek Reaper", "Navmesh takes 5+ minutes to build") }, [4432] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1666848730)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.294") }, [4439] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(735706993)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.294") }, [4464] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1612100416)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.294") }, [4521] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1740594943)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [4522] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1819257689)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.292") }, [4582] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2088283823), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(435284212), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1047030739)) + new SinglePlayerDutyEntry(false, 0, "0.1.1.8", "(phase 1) AI doesn't move automatically", "(phase 2) AI doesn't target enemy") }, [4591] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1408328984), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1006327605), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1624825631)) + new SinglePlayerDutyEntry(false, 0, "0.1.2.4", "AI doesn't move after starting the instance, so enemies won't be triggered", "(First Barrier) If the player is too far south, after being stunned by Vishap's roar, AI doesn't move out of the AOE and dies to the Cauterize") }, [4594] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(774825335)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.294") }, [4673] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(774825335)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.294") }, [4719] = new SinglePlayerDutyEntry[1] { @@ -1289,7 +1268,7 @@ internal static class DutyRegistry }, [4752] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1666848730), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1591985792), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1003729366)) + new SinglePlayerDutyEntry(false, 0, "0.0.0.294", "(phase 1) AI walks (a bit) towards enemies, but doesn't target them and doesn't attack", "(phase 1) AI doesn't move close enough to the tattered plumage; needs to be re-tested") }, [4823] = new SinglePlayerDutyEntry[1] { @@ -1329,19 +1308,19 @@ internal static class DutyRegistry }, [4883] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(774825335)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.294") }, [4902] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1666848730)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.294") }, [4908] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1612100416)) + new SinglePlayerDutyEntry(true, 0, "0.0.0.294") }, [4942] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1666848730), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(471673267)) + new SinglePlayerDutyEntry(false, 0, "0.0.0.294", "(phase 1) Gets stuck in the wall while walking to the evacuee NPCs") }, [5191] = new SinglePlayerDutyEntry[1] { @@ -1349,15 +1328,15 @@ internal static class DutyRegistry }, [5249] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1552037139), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1193123208), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1894210756), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1009055232), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-976928829)) + new SinglePlayerDutyEntry(false, 0, "0.1.0.0", "(pre-fight) AI doesn't move to the Rroneeks or interact with them", "(phase 1/2) No VBM module, so doesn't target the leg, doesn't avoid AOEs and dies", "(phase 1) AI doesn't pull boss", "(phase 2) AI runs away with the stack marker; doesn't pick up orbs") }, [5325] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(true, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-663552401), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-262818980)) + new SinglePlayerDutyEntry(true, 0, "0.4.19.4", "You only need to complete one cake layer to complete the duty.") }, [5433] = new SinglePlayerDutyEntry[1] { - new SinglePlayerDutyEntry(false, 0, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1397051405), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1325512167)) + new SinglePlayerDutyEntry(false, 0, "0.0.0.0", "Not implemented in Boss Mod yet.") } }; } diff --git a/Questionable/Questionable.Data/DutyUnlockData.cs b/Questionable/Questionable.Data/DutyUnlockData.cs index 2f28d88..3335ad4 100644 --- a/Questionable/Questionable.Data/DutyUnlockData.cs +++ b/Questionable/Questionable.Data/DutyUnlockData.cs @@ -1,20 +1,15 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Collections.Immutable; -using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; -using System.Runtime.CompilerServices; using Dalamud.Game; -using Dalamud.Game.Text.SeStringHandling; using Dalamud.Plugin.Services; using Dalamud.Utility; using FFXIVClientStructs.FFXIV.Client.Game.UI; using Lumina.Excel; using Lumina.Excel.Sheets; -using Lumina.Text.ReadOnly; using Microsoft.Extensions.Logging; using Questionable.Model.Questing; @@ -58,230 +53,6 @@ internal sealed class DutyUnlockData public const byte Alliance = 4; } - [CompilerGenerated] - private sealed class _003CGetDutiesUnlockedByQuest_003Ed__30 : IEnumerable<DutyInfo>, IEnumerable, IEnumerator<DutyInfo>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private DutyInfo _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - public DutyUnlockData _003C_003E4__this; - - private QuestId questId; - - public QuestId _003C_003E3__questId; - - private ImmutableList<uint>.Enumerator _003C_003E7__wrap1; - - DutyInfo IEnumerator<DutyInfo>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CGetDutiesUnlockedByQuest_003Ed__30(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _200F_200B_202A_202A_206B_202C_200C_206A_200B_206B_206E_202B_206C_206A_202E_200C_202E_206B_200F_202E_206F_200B_200C_202B_206B_200B_200B_206B_202A_200D_200E_206B_206E_202D_202E_206F_202A_206E_202D_206E_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num == -3) ? 1836799872 : 1836799875); - while (true) - { - int num3 = num2; - int num4 = 1836799874; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 0: - num2 = 1836799875; - continue; - case 1: - if (num == 1) - { - num2 = 1836799872; - continue; - } - break; - case 2: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E7__wrap1 = default(ImmutableList<uint>.Enumerator); - _003C_003E1__state = -2; - } - - private bool MoveNext() - { - try - { - int num = _003C_003E1__state; - DutyUnlockData dutyUnlockData = _003C_003E4__this; - int num2 = ((num == 0) ? (-1847566198) : (-1847566200)); - ImmutableList<uint> value2 = default(ImmutableList<uint>); - DutyInfo value = default(DutyInfo); - while (true) - { - int num3 = num2; - int num4 = -1847566194; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 1: - return false; - case 4: - _003C_003E1__state = -1; - num2 = ((!dutyUnlockData._questToDuties.TryGetValue(questId, out value2)) ? (-1847566197) : (-1847566196)); - break; - case 0: - num2 = -1847566200; - break; - case 7: - _003C_003E1__state = -3; - num2 = -1847566201; - break; - case 2: - _003C_003E7__wrap1 = value2.GetEnumerator(); - _003C_003E1__state = -3; - num2 = -1847566201; - break; - case 6: - num2 = ((num == 1) ? (-1847566199) : (-1847566193)); - break; - case 10: - _003C_003Em__Finally1(); - _003C_003E7__wrap1 = default(ImmutableList<uint>.Enumerator); - num2 = -1847566197; - break; - case 3: - _003C_003E2__current = value; - _003C_003E1__state = 1; - return true; - case 9: - num2 = (_003C_003E7__wrap1.MoveNext() ? (-1847566202) : (-1847566204)); - break; - case 8: - { - uint current = _003C_003E7__wrap1.Current; - num2 = ((!dutyUnlockData._duties.TryGetValue(current, out value)) ? (-1847566201) : (-1847566195)); - break; - } - case 5: - return false; - } - } - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - ((IDisposable)_003C_003E7__wrap1/*cast due to .constrained prefix*/).Dispose(); - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _200E_202E_206F_200C_200B_200F_200E_206C_206C_200B_202A_200B_202D_200C_200B_206C_202C_206E_200E_202A_200F_206A_202C_206F_206C_206B_206D_206D_200D_202B_202C_200F_200B_206C_200E_206E_200B_206E_206C_202D_202E(); - } - - [DebuggerHidden] - IEnumerator<DutyInfo> IEnumerable<DutyInfo>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? 240060194 : 240060192); - _003CGetDutiesUnlockedByQuest_003Ed__30 _003CGetDutiesUnlockedByQuest_003Ed__ = default(_003CGetDutiesUnlockedByQuest_003Ed__30); - while (true) - { - int num2 = num; - int num3 = 240060194; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - _003CGetDutiesUnlockedByQuest_003Ed__.questId = _003C_003E3__questId; - return _003CGetDutiesUnlockedByQuest_003Ed__; - case 0: - _003CGetDutiesUnlockedByQuest_003Ed__ = new _003CGetDutiesUnlockedByQuest_003Ed__30(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = 240060193; - break; - case 1: - _003C_003E1__state = 0; - _003CGetDutiesUnlockedByQuest_003Ed__ = this; - num = 240060193; - break; - case 2: - num = ((_003C_003El__initialThreadId != _200F_200B_202A_202A_206B_202C_200C_206A_200B_206B_206E_202B_206C_206A_202E_200C_202E_206B_200F_202E_206F_200B_200C_202B_206B_200B_200B_206B_202A_200D_200E_206B_206E_202D_202E_206F_202A_206E_202D_206E_202E()) ? 240060194 : 240060195); - break; - case 4: - num = 240060192; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<DutyInfo>)this).GetEnumerator(); - } - - static int _200F_200B_202A_202A_206B_202C_200C_206A_200B_206B_206E_202B_206C_206A_202E_200C_202E_206B_200F_202E_206F_200B_200C_202B_206B_200B_200B_206B_202A_200D_200E_206B_206E_202D_202E_206F_202A_206E_202D_206E_202E() - { - return Environment.CurrentManagedThreadId; - } - - static NotSupportedException _200E_202E_206F_200C_200B_200F_200E_206C_206C_200B_202A_200B_202D_200C_200B_206C_202C_206E_200E_202A_200F_206A_202C_206F_206C_206B_206D_206D_200D_202B_202C_200F_200B_206C_200E_206E_200B_206E_206C_202D_202E() - { - return new NotSupportedException(); - } - } - private readonly ImmutableDictionary<uint, DutyInfo> _duties; private readonly ImmutableDictionary<QuestId, ImmutableList<uint>> _questToDuties; @@ -290,396 +61,173 @@ internal sealed class DutyUnlockData private readonly ILogger<DutyUnlockData> _logger; - [MethodImpl(MethodImplOptions.NoInlining)] public DutyUnlockData(IDataManager dataManager, ILogger<DutyUnlockData> logger) { _logger = logger; ExcelSheet<ContentFinderCondition> excelSheet = dataManager.GetExcelSheet<ContentFinderCondition>(); ExcelSheet<Quest> excelSheet2 = dataManager.GetExcelSheet<Quest>(); - ImmutableDictionary<uint, uint> immutableDictionary = (from c in excelSheet.Where(delegate(ContentFinderCondition c) - { - int num3 = ((c.RowId == 0) ? 1025245727 : 1025245725); - while (true) - { - int num4 = num3; - int num5 = 1025245727; - int num6 = num4; - switch ((num6 | num5) - (num6 & num5)) - { - case 3: - num3 = 1025245725; - break; - case 2: - num3 = ((c.Content.RowId == 0) ? 1025245727 : 1025245726); - break; - case 0: - return false; - case 1: - return c.ContentLinkType == 1; - } - } - }) + ImmutableDictionary<uint, uint> immutableDictionary = (from c in excelSheet + where c.RowId != 0 && c.Content.RowId != 0 && c.ContentLinkType == 1 group c by c.Content.RowId).ToImmutableDictionary((IGrouping<uint, ContentFinderCondition> g) => g.Key, (IGrouping<uint, ContentFinderCondition> g) => g.First().RowId); Dictionary<QuestId, List<uint>> dictionary = new Dictionary<QuestId, List<uint>>(); Dictionary<uint, List<QuestId>> dictionary2 = new Dictionary<uint, List<QuestId>>(); - IEnumerator<Quest> enumerator = excelSheet2.Where((Quest q) => q.RowId != 0).GetEnumerator(); - try + foreach (Quest item in excelSheet2.Where((Quest q) => q.RowId != 0)) { - while (_202D_202A_202C_202E_200B_200F_206B_202D_200C_202A_206C_206B_202E_202B_200B_206A_200D_206C_206C_200C_202E_206E_206B_206A_200B_200C_200C_202D_206E_206C_202C_206A_202B_202A_202E_202B_200E_202D_200C_200C_202E((IEnumerator)enumerator)) + uint rowId = item.InstanceContentUnlock.RowId; + if (rowId != 0 && immutableDictionary.TryGetValue(rowId, out var value)) { - Quest current = enumerator.Current; - uint rowId = current.InstanceContentUnlock.RowId; - if (rowId != 0 && immutableDictionary.TryGetValue(rowId, out var value)) + QuestId questId = QuestId.FromRowId(item.RowId); + if (!dictionary.ContainsKey(questId)) { - QuestId questId = _206F_206A_206B_200D_202D_206F_206C_206A_206E_200F_202A_202D_200F_200E_206F_206C_202E_206E_200B_206A_206C_206A_202D_200F_200F_200B_200E_202A_200D_200F_206B_202E_202D_206F_206D_200D_206C_200B_206F_206C_202E(current.RowId); - if (!dictionary.ContainsKey(questId)) - { - dictionary[questId] = new List<uint>(); - } - dictionary[questId].Add(value); - if (!dictionary2.ContainsKey(value)) - { - dictionary2[value] = new List<QuestId>(); - } - dictionary2[value].Add(questId); + dictionary[questId] = new List<uint>(); } - } - } - finally - { - if (enumerator != null) - { - _206E_206D_206E_202E_202C_202E_202B_206F_206F_200C_200B_206B_206E_206C_200B_206B_202B_206D_202C_200E_202B_202A_202E_200B_200F_202C_202B_206A_200F_202B_200F_206A_206D_202D_200F_202B_206A_206D_206F_206C_202E((IDisposable)enumerator); + dictionary[questId].Add(value); + if (!dictionary2.ContainsKey(value)) + { + dictionary2[value] = new List<QuestId>(); + } + dictionary2[value].Add(questId); } } _questToDuties = dictionary.ToImmutableDictionary((KeyValuePair<QuestId, List<uint>> x) => x.Key, (KeyValuePair<QuestId, List<uint>> x) => x.Value.ToImmutableList()); _dutyToQuests = dictionary2.ToImmutableDictionary((KeyValuePair<uint, List<QuestId>> x) => x.Key, (KeyValuePair<uint, List<QuestId>> x) => x.Value.ToImmutableList()); Dictionary<uint, DutyInfo> dictionary3 = new Dictionary<uint, DutyInfo>(); ExcelSheet<ContentFinderCondition> excelSheet3 = dataManager.GetExcelSheet<ContentFinderCondition>(ClientLanguage.English); - IEnumerator<ContentFinderCondition> enumerator2 = excelSheet.Where(delegate(ContentFinderCondition x) + foreach (ContentFinderCondition item2 in excelSheet.Where((ContentFinderCondition x) => x.RowId != 0 && x.Content.RowId != 0)) { - int num3 = ((x.RowId == 0) ? (-494713515) : (-494713514)); - while (true) + if (item2.ContentLinkType != 1) { - int num4 = num3; - int num5 = -494713516; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) - { - case 0: - goto IL_004a; - case 2: - return x.Content.RowId != 0; - case 1: - return false; - } continue; - IL_004a: - num3 = -494713514; } - }).GetEnumerator(); - try - { - while (_202D_202A_202C_202E_200B_200F_206B_202D_200C_202A_206C_206B_202E_202B_200B_206A_200D_206C_206C_200C_202E_206E_206B_206A_200B_200C_200C_202D_206E_206C_202C_206A_202B_202A_202E_202B_200E_202D_200C_200C_202E((IEnumerator)enumerator2)) + ContentType? valueNullable = item2.ContentType.ValueNullable; + if (!valueNullable.HasValue) { - ContentFinderCondition current2 = enumerator2.Current; - if (current2.ContentLinkType != 1) - { - continue; - } - ContentType? valueNullable = current2.ContentType.ValueNullable; - if (!valueNullable.HasValue) - { - continue; - } - uint rowId2 = valueNullable.Value.RowId; - int num = 6; - int num2 = (int)rowId2; - if ((uint)(~(~num2 + num)) <= 1u) - { - continue; - } - string text = FixName(_200B_202B_202C_202C_202A_206D_206A_200E_206D_206F_206B_200D_202D_206F_202D_206E_202A_202B_200C_202A_200D_202D_206F_200B_206F_200F_206D_206D_202E_206C_200C_202E_206E_200C_202C_200F_206B_200C_206B_206B_202E((object)_202A_200C_200E_200E_202A_206B_200E_200D_200B_200F_200C_202A_200E_202C_206D_206C_206E_200F_206C_206B_202D_202D_200F_206A_206C_206C_206F_202B_206C_200E_206A_206E_202D_200F_200C_206B_206A_202D_200D_202E_202E(current2.Name)), _202E_200C_206B_200F_200B_200B_200B_200E_206F_200F_202E_206F_206D_206F_200C_200B_202C_206D_200F_202D_206B_200C_200E_202D_202C_202B_202A_200B_202E_202A_200D_206A_200E_202A_200C_206D_200C_206D_206F_200C_202E(dataManager)); - if (!_202D_206F_206E_206F_206C_206C_206A_206E_202B_206D_200C_202E_206C_200F_200E_200B_200E_200F_200F_200F_206E_206B_200E_206E_206D_206C_200F_206D_206E_206A_200B_206E_202C_206B_202C_206E_206C_200E_206A_202D_202E(text) && !IsExcludedContent(text, current2.RowId)) - { - List<QuestId> value2; - ImmutableList<QuestId> unlockQuests = (dictionary2.TryGetValue(current2.RowId, out value2) ? value2.ToImmutableList() : ImmutableList<QuestId>.Empty); - uint rowId3 = current2.ContentMemberType.RowId; - ContentFinderCondition? rowOrDefault = excelSheet3.GetRowOrDefault(current2.RowId); - string name = (rowOrDefault.HasValue ? _200B_202B_202C_202C_202A_206D_206A_200E_206D_206F_206B_200D_202D_206F_202D_206E_202A_202B_200C_202A_200D_202D_206F_200B_206F_200F_206D_206D_202E_206C_200C_202E_206E_200C_202C_200F_206B_200C_206B_206B_202E((object)_202A_200C_200E_200E_202A_206B_200E_200D_200B_200F_200C_202A_200E_202C_206D_206C_206E_200F_206C_206B_202D_202D_200F_206A_206C_206C_206F_202B_206C_200E_206A_206E_202D_200F_200C_206B_206A_202D_200D_202E_202E(rowOrDefault.GetValueOrDefault().Name)) : null) ?? text; - EDutyCategory? eDutyCategory = DetermineDutyCategory(rowId2, name, current2.HighEndDuty, current2.RowId, (byte)rowId3, current2.ContentLinkType); - if (eDutyCategory.HasValue) - { - DutyInfo value3 = new DutyInfo(current2.RowId, current2.Content.RowId, text, rowId2, _200B_202B_202C_202C_202A_206D_206A_200E_206D_206F_206B_200D_202D_206F_202D_206E_202A_202B_200C_202A_200D_202D_206F_200B_206F_200F_206D_206D_202E_206C_200C_202E_206E_200C_202C_200F_206B_200C_206B_206B_202E((object)_202A_200C_200E_200E_202A_206B_200E_200D_200B_200F_200C_202A_200E_202C_206D_206C_206E_200F_206C_206B_202D_202D_200F_206A_206C_206C_206F_202B_206C_200E_206A_206E_202D_200F_200C_206B_206A_202D_200D_202E_202E(valueNullable.Value.Name)), current2.ClassJobLevelRequired, current2.ItemLevelRequired, unlockQuests, current2.HighEndDuty, eDutyCategory.Value); - dictionary3[current2.RowId] = value3; - } - } + continue; } - } - finally - { - if (enumerator2 != null) + uint rowId2 = valueNullable.Value.RowId; + if (rowId2 - 6 <= 1) { - _206E_206D_206E_202E_202C_202E_202B_206F_206F_200C_200B_206B_206E_206C_200B_206B_202B_206D_202C_200E_202B_202A_202E_200B_200F_202C_202B_206A_200F_202B_200F_206A_206D_202D_200F_202B_206A_206D_206F_206C_202E((IDisposable)enumerator2); + continue; + } + string text = FixName(item2.Name.ToDalamudString().ToString(), dataManager.Language); + if (!string.IsNullOrWhiteSpace(text) && !IsExcludedContent(text, item2.RowId)) + { + List<QuestId> value2; + ImmutableList<QuestId> unlockQuests = (dictionary2.TryGetValue(item2.RowId, out value2) ? value2.ToImmutableList() : ImmutableList<QuestId>.Empty); + uint rowId3 = item2.ContentMemberType.RowId; + string name = excelSheet3.GetRowOrDefault(item2.RowId)?.Name.ToDalamudString().ToString() ?? text; + EDutyCategory? eDutyCategory = DetermineDutyCategory(rowId2, name, item2.HighEndDuty, item2.RowId, (byte)rowId3, item2.ContentLinkType); + if (eDutyCategory.HasValue) + { + DutyInfo value3 = new DutyInfo(item2.RowId, item2.Content.RowId, text, rowId2, valueNullable.Value.Name.ToDalamudString().ToString(), item2.ClassJobLevelRequired, item2.ItemLevelRequired, unlockQuests, item2.HighEndDuty, eDutyCategory.Value); + dictionary3[item2.RowId] = value3; + } } } _duties = dictionary3.ToImmutableDictionary(); - _206C_206C_206E_206B_206D_200D_206C_200B_206D_206F_206F_200D_202D_206C_200D_202C_206C_206F_202A_200F_202D_206F_206B_200C_202C_206A_206C_200F_200B_202E_206F_202A_202D_206C_200F_200E_206E_200C_206E_200F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-947520940), new object[2] - { - _duties.Count, - _questToDuties.Values.Sum((ImmutableList<uint> x) => x.Count) - }); + _logger.LogDebug("Loaded {DutyCount} duties with {QuestMappings} quest unlock mappings", _duties.Count, _questToDuties.Values.Sum((ImmutableList<uint> x) => x.Count)); } private static bool IsExcludedContent(string name, uint cfcId) { - int num = 69; - int num2 = (int)cfcId; - int num3 = (((uint)(~(~num2 + num)) > 2u) ? (-657110077) : (-657110076)); - bool flag = default(bool); - while (true) + if (cfcId - 69 <= 2) { - int num4 = num3; - num = -657110080; - num2 = num4; - switch ((num2 | num) - (num2 & num)) - { - case 2: - return true; - case 4: - flag = true; - num3 = -657110079; - break; - case 5: - return false; - case 1: - num3 = ((!flag) ? (-657110075) : (-657110078)); - break; - case 0: - num3 = -657110076; - break; - case 3: - flag = false; - num3 = -657110079; - break; - } + return true; } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private static EDutyCategory? DetermineDutyCategory(uint contentTypeId, string name, bool isHighEndDuty, uint cfcId, byte contentMemberType, byte contentLinkType) { - int num = ((!_206E_200B_202B_202A_202D_202C_200D_202A_206F_206D_202D_202E_200F_200F_206D_200C_206B_202D_200F_202D_200E_200F_206D_206A_200D_202E_202D_200C_200F_200D_206C_206A_206B_206D_206B_200F_202A_206C_202B_202C_202E(name, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1946947024), StringComparison.OrdinalIgnoreCase)) ? 1981410498 : 1981410526); - while (true) + if (name.EndsWith("(Chaotic)", StringComparison.OrdinalIgnoreCase)) { - int num2 = num; - int num3 = 1981410514; - int num4 = num2; - int num5; - switch ((num4 | num3) - (num4 & num3)) + return EDutyCategory.ChaoticAllianceRaid; + } + switch (contentTypeId) + { + case 2u: + if (name.EndsWith("(Hard)", StringComparison.OrdinalIgnoreCase)) { - case 14: - return EDutyCategory.ExtremeTrial; - case 0: - return EDutyCategory.SavageRaid; - case 2: - num = ((!_206E_200B_202B_202A_202D_202C_200D_202A_206F_206D_202D_202E_200F_200F_206D_200C_206B_202D_200F_202D_200E_200F_206D_206A_200D_202E_202D_200C_200F_200D_206C_206A_206B_206D_206B_200F_202A_206C_202B_202C_202E(name, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-829560876), StringComparison.OrdinalIgnoreCase)) ? 1981410511 : 1981410523); - break; - case 4: - num = ((!_206B_206B_206D_202A_200E_200F_200C_200D_206D_202D_200D_202D_200F_206A_200C_200F_202E_206A_206B_206D_202B_200F_202E_202E_202C_206F_202C_202A_200F_202C_200C_202B_200E_200B_200D_200D_202B_202B_200B_202C_202E(name, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(576666474), StringComparison.OrdinalIgnoreCase)) ? 1981410519 : 1981410505); - break; - case 38: - return EDutyCategory.NormalRaid; - case 42: - goto IL_0162; - case 32: - goto IL_016a; - case 13: - return EDutyCategory.UnrealTrial; - case 37: - goto IL_0179; - case 5: - return EDutyCategory.DeepDungeon; - case 31: - num = ((!isHighEndDuty) ? 1981410499 : 1981410516); - break; - case 9: return EDutyCategory.HardDungeon; - case 18: - goto IL_01c0; - case 33: - return null; - case 22: - num = ((!(_206E_200B_202B_202A_202D_202C_200D_202A_206F_206D_202D_202E_200F_200F_206D_200C_206B_202D_200F_202D_200E_200F_206D_206A_200D_202E_202D_200C_200F_200D_206C_206A_206B_206D_206B_200F_202A_206C_202B_202C_202E(name, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-805469566), StringComparison.OrdinalIgnoreCase) || isHighEndDuty)) ? 1981410548 : 1981410517); - break; - case 26: - return EDutyCategory.CriterionSavage; - case 24: - return EDutyCategory.CriterionDungeon; - case 20: - return EDutyCategory.HardTrial; - case 15: - num = (_206E_200B_202B_202A_202D_202C_200D_202A_206F_206D_202D_202E_200F_200F_206D_200C_206B_202D_200F_202D_200E_200F_206D_206A_200D_202E_202D_200C_200F_200D_206C_206A_206B_206D_206B_200F_202A_206C_202B_202C_202E(name, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2100853888), StringComparison.OrdinalIgnoreCase) ? 1981410524 : 1981410521); - break; - case 29: - return EDutyCategory.Dungeon; - case 23: - num = ((!_206E_200B_202B_202A_202D_202C_200D_202A_206F_206D_202D_202E_200F_200F_206D_200C_206B_202D_200F_202D_200E_200F_206D_206A_200D_202E_202D_200C_200F_200D_206C_206A_206B_206D_206B_200F_202A_206C_202B_202C_202E(name, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2079680527), StringComparison.OrdinalIgnoreCase)) ? 1981410520 : 1981410502); - break; - case 3: - num3 = 21; - num4 = (int)contentTypeId; - switch (~(~num4 + num3)) - { - case 0: - break; - case 10: - goto IL_0162; - case 7: - goto IL_016a; - case 5: - goto IL_0179; - case 1: - case 2: - case 3: - case 4: - case 6: - goto IL_01c0; - default: - goto IL_02d5; - case 8: - case 9: - goto IL_0301; - } - goto case 4; - case 28: - num5 = (_206D_206D_200E_206C_206F_206B_206E_206A_202D_202A_206E_206E_206C_200D_206C_202C_206E_202C_206F_202B_200B_206B_200E_202E_200C_206E_200F_206C_200E_206C_200C_200C_202E_206B_200E_200E_200E_202A_202B_202B_202E(name, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1784613949), StringComparison.OrdinalIgnoreCase) ? 1 : 0); - goto IL_0335; - case 40: - goto IL_0301; - case 7: - return EDutyCategory.SavageRaid; - case 43: - num5 = 1; - goto IL_0335; - case 11: - num = ((!_206D_206D_200E_206C_206F_206B_206E_206A_202D_202A_206E_206E_206C_200D_206C_202C_206E_202C_206F_202B_200B_206B_200E_202E_200C_206E_200F_206C_200E_206C_200C_200C_202E_206B_200E_200E_200E_202A_202B_202B_202E(name, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-707311042), StringComparison.OrdinalIgnoreCase)) ? 1981410547 : 1981410524); - break; - case 25: - num = (_206E_200B_202B_202A_202D_202C_200D_202A_206F_206D_202D_202E_200F_200F_206D_200C_206B_202D_200F_202D_200E_200F_206D_206A_200D_202E_202D_200C_200F_200D_206C_206A_206B_206D_206B_200F_202A_206C_202B_202C_202E(name, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1824697190), StringComparison.OrdinalIgnoreCase) ? 1981410553 : 1981410510); - break; - case 16: - num3 = 2; - num4 = (int)contentTypeId; - switch (~(~num4 + num3)) - { - case 0: - break; - default: - goto IL_03c8; - case 2: - goto IL_03db; - case 1: - goto IL_0407; - case 3: - goto IL_0425; - } - goto case 2; - case 12: - return EDutyCategory.ChaoticAllianceRaid; - case 8: - goto IL_03db; - case 36: - goto IL_0407; - case 21: + } + return EDutyCategory.Dungeon; + case 3u: + return EDutyCategory.Guildhest; + case 4u: + if (name.EndsWith("(Unreal)", StringComparison.OrdinalIgnoreCase)) + { + return EDutyCategory.UnrealTrial; + } + if (name.EndsWith("(Extreme)", StringComparison.OrdinalIgnoreCase) || name.StartsWith("The Minstrel's Ballad:", StringComparison.OrdinalIgnoreCase) || isHighEndDuty) + { return EDutyCategory.ExtremeTrial; - case 27: - return EDutyCategory.QuantumBattle; - case 6: - return EDutyCategory.ChaoticAllianceRaid; - case 39: - goto IL_0425; - case 19: - num = 1981410526; - break; - case 30: - num = ((!_206D_206D_200E_206C_206F_206B_206E_206A_202D_202A_206E_206E_206C_200D_206C_202C_206E_202C_206F_202B_200B_206B_200E_202E_200C_206E_200F_206C_200E_206C_200C_200C_202E_206B_200E_200E_200E_202A_202B_202B_202E(name, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-85328213), StringComparison.OrdinalIgnoreCase)) ? 1981410555 : 1981410506); - break; - case 10: - return EDutyCategory.Trial; - case 1: - return EDutyCategory.AllianceRaid; - case 34: - num = 1981410496; - break; - case 17: - return EDutyCategory.AllianceRaid; - case 41: - return EDutyCategory.VariantDungeon; - case 35: + } + if (name.EndsWith("(Hard)", StringComparison.OrdinalIgnoreCase)) + { + return EDutyCategory.HardTrial; + } + return EDutyCategory.Trial; + case 5u: + if (contentMemberType == 4) + { + if (isHighEndDuty) { return EDutyCategory.ChaoticAllianceRaid; } - IL_0425: - num = ((contentMemberType != 4) ? 1981410500 : 1981410509); - break; - IL_0407: - return EDutyCategory.Guildhest; - IL_03db: - num = ((!_206E_200B_202B_202A_202D_202C_200D_202A_206F_206D_202D_202E_200F_200F_206D_200C_206B_202D_200F_202D_200E_200F_206D_206A_200D_202E_202D_200C_200F_200D_206C_206A_206B_206D_206B_200F_202A_206C_202B_202C_202E(name, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1732316761), StringComparison.OrdinalIgnoreCase)) ? 1981410507 : 1981410527); - break; - IL_016a: - return EDutyCategory.Ultimate; - IL_03c8: - num = 1981410513; - break; - IL_01c0: - num = ((!_206E_200B_202B_202A_202D_202C_200D_202A_206F_206D_202D_202E_200F_200F_206D_200C_206B_202D_200F_202D_200E_200F_206D_206A_200D_202E_202D_200C_200F_200D_206C_206A_206B_206D_206B_200F_202A_206C_202B_202C_202E(name, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-805469566), StringComparison.OrdinalIgnoreCase)) ? 1981410525 : 1981410514); - break; - IL_0162: - return EDutyCategory.CriterionSavage; - IL_0335: - num = ((((uint)num5 | (isHighEndDuty ? 1u : 0u)) == 0) ? 1981410501 : 1981410503); - break; - IL_0301: - num = ((!_206E_200B_202B_202A_202D_202C_200D_202A_206F_206D_202D_202E_200F_200F_206D_200C_206B_202D_200F_202D_200E_200F_206D_206A_200D_202E_202D_200C_200F_200D_206C_206A_206B_206D_206B_200F_202A_206C_202B_202C_202E(name, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1526728021), StringComparison.OrdinalIgnoreCase)) ? 1981410508 : 1981410504); - break; - IL_02d5: - num = 1981410544; - break; - IL_0179: - num = ((!isHighEndDuty) ? 1981410515 : 1981410545); - break; + return EDutyCategory.AllianceRaid; } + if (name.EndsWith("(Savage)", StringComparison.OrdinalIgnoreCase) || isHighEndDuty) + { + return EDutyCategory.SavageRaid; + } + return EDutyCategory.NormalRaid; + case 21u: + if (name.Contains("Quantum", StringComparison.OrdinalIgnoreCase)) + { + return EDutyCategory.QuantumBattle; + } + return EDutyCategory.DeepDungeon; + case 26u: + if (isHighEndDuty) + { + return EDutyCategory.ChaoticAllianceRaid; + } + return EDutyCategory.AllianceRaid; + case 28u: + return EDutyCategory.Ultimate; + case 29u: + case 30u: + if (name.EndsWith("(Savage)", StringComparison.OrdinalIgnoreCase)) + { + return EDutyCategory.CriterionSavage; + } + if (name.StartsWith("Another", StringComparison.OrdinalIgnoreCase)) + { + return EDutyCategory.CriterionDungeon; + } + return EDutyCategory.VariantDungeon; + case 31u: + return EDutyCategory.CriterionSavage; + default: + if (name.EndsWith("(Savage)", StringComparison.OrdinalIgnoreCase)) + { + return EDutyCategory.SavageRaid; + } + if (name.EndsWith("(Extreme)", StringComparison.OrdinalIgnoreCase) || name.StartsWith("The Minstrel's Ballad:", StringComparison.OrdinalIgnoreCase)) + { + return EDutyCategory.ExtremeTrial; + } + return null; } } private static string FixName(string name, ClientLanguage language) { - int num = (_200F_200C_202B_206C_200D_200B_200B_206C_206E_200F_200F_206D_200B_200B_200D_202C_202C_206F_206B_200F_200E_202A_206A_200D_202C_206A_202B_206B_200B_202C_200E_202B_202C_206B_202A_202D_200C_202C_206C_202E(name) ? (-948301931) : (-948301932)); - while (true) + if (string.IsNullOrEmpty(name) || language != ClientLanguage.English) { - int num2 = num; - int num3 = -948301931; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return _202E_206C_200C_206A_202E_202B_200F_206A_202C_202A_200B_202E_206C_206B_202E_200F_202A_202A_202C_202E_206F_206A_206A_206F_202A_206B_202A_200B_206B_200D_206E_206D_200C_206A_206D_202C_202C_202D_202C_206D_202E(_206D_200D_200B_206B_200C_202C_202D_206B_206C_200B_200B_206D_206E_200F_206D_202D_202A_206B_202A_206D_206A_202B_206D_206F_206B_206E_206A_206A_202A_202B_202D_206B_200E_206C_202C_206F_200F_206F_202D_206E_202E(_200D_202A_206D_206D_200D_206F_206A_206D_202B_200F_202E_200F_202C_202E_200B_202E_200B_200B_200B_206A_206B_206F_206A_200E_206B_202A_200E_206A_202D_200E_206D_206B_202C_202C_206D_200E_202A_206A_200F_206D_202E(_206A_206A_200E_202B_206A_202A_200E_206E_202D_202A_202B_206B_206B_202C_200D_202A_206B_206B_206E_200C_200C_206F_202E_202C_206A_202A_206A_206E_200F_206A_200C_202B_202A_200C_202A_206D_200F_206B_206A_206F_202E(name, 0).ToString(), _202D_200E_200E_200D_206F_200D_200C_200F_200D_200E_206A_200C_202E_206E_200D_202B_206B_200B_200C_202A_200F_206E_200C_206E_200B_202A_202C_206F_206A_200D_200E_202D_200C_206E_206F_202E_200E_200C_202A_206B_202E())), _206B_202A_202A_206C_200C_200F_202C_206F_202A_202D_200F_200E_200B_206E_202B_200C_202E_206F_206E_202D_200F_202C_200C_202B_206F_206F_206C_202C_206A_202B_206A_206D_202B_202D_206E_200B_206F_202E_200C_202E(name, 1)); - case 1: - num = ((language == ClientLanguage.English) ? (-948301929) : (-948301931)); - break; - case 3: - num = -948301932; - break; - case 0: - return name; - } + return name; } + return string.Concat(name[0].ToString().ToUpper(CultureInfo.InvariantCulture).AsSpan(), name.AsSpan(1)); } public IEnumerable<DutyInfo> GetAllDuties() @@ -782,65 +330,37 @@ internal sealed class DutyUnlockData return GetDutiesByCategory(EDutyCategory.QuantumBattle); } - [IteratorStateMachine(typeof(_003CGetDutiesUnlockedByQuest_003Ed__30))] public IEnumerable<DutyInfo> GetDutiesUnlockedByQuest(QuestId questId) { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CGetDutiesUnlockedByQuest_003Ed__30(-2) + if (!_questToDuties.TryGetValue(questId, out ImmutableList<uint> value)) { - _003C_003E4__this = this, - _003C_003E3__questId = questId - }; + yield break; + } + foreach (uint item in value) + { + if (_duties.TryGetValue(item, out DutyInfo value2)) + { + yield return value2; + } + } } public IEnumerable<QuestId> GetUnlockQuestsForDuty(uint cfcId) { - ImmutableList<QuestId> value; - int num = ((!_dutyToQuests.TryGetValue(cfcId, out value)) ? (-140897364) : (-140897363)); - while (true) + if (_dutyToQuests.TryGetValue(cfcId, out ImmutableList<QuestId> value)) { - int num2 = num; - int num3 = -140897364; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return Array.Empty<QuestId>(); - case 1: - return value; - case 2: - goto IL_0056; - } - continue; - IL_0056: - num = -140897363; + return value; } + return Array.Empty<QuestId>(); } public bool IsDutyUnlocked(uint cfcId) { - DutyInfo value; - int num = (_duties.TryGetValue(cfcId, out value) ? (-1021007209) : (-1021007212)); - while (true) + if (!_duties.TryGetValue(cfcId, out DutyInfo value)) { - int num2 = num; - int num3 = -1021007211; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return UIState.IsInstanceContentUnlocked(value.ContentId); - case 1: - return false; - case 0: - goto IL_005e; - } - continue; - IL_005e: - num = -1021007212; + return false; } + return UIState.IsInstanceContentUnlocked(value.ContentId); } public static bool IsContentUnlocked(uint contentId) @@ -872,94 +392,4 @@ internal sealed class DutyUnlockData { return _duties.Values.Where((DutyInfo d) => d.UnlockQuests.Count > 0); } - - static QuestId _206F_206A_206B_200D_202D_206F_206C_206A_206E_200F_202A_202D_200F_200E_206F_206C_202E_206E_200B_206A_206C_206A_202D_200F_200F_200B_200E_202A_200D_200F_206B_202E_202D_206F_206D_200D_206C_200B_206F_206C_202E(uint P_0) - { - return QuestId.FromRowId(P_0); - } - - static bool _202D_202A_202C_202E_200B_200F_206B_202D_200C_202A_206C_206B_202E_202B_200B_206A_200D_206C_206C_200C_202E_206E_206B_206A_200B_200C_200C_202D_206E_206C_202C_206A_202B_202A_202E_202B_200E_202D_200C_200C_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206E_206D_206E_202E_202C_202E_202B_206F_206F_200C_200B_206B_206E_206C_200B_206B_202B_206D_202C_200E_202B_202A_202E_200B_200F_202C_202B_206A_200F_202B_200F_206A_206D_202D_200F_202B_206A_206D_206F_206C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static SeString _202A_200C_200E_200E_202A_206B_200E_200D_200B_200F_200C_202A_200E_202C_206D_206C_206E_200F_206C_206B_202D_202D_200F_206A_206C_206C_206F_202B_206C_200E_206A_206E_202D_200F_200C_206B_206A_202D_200D_202E_202E(ReadOnlySeString P_0) - { - return P_0.ToDalamudString(); - } - - static string _200B_202B_202C_202C_202A_206D_206A_200E_206D_206F_206B_200D_202D_206F_202D_206E_202A_202B_200C_202A_200D_202D_206F_200B_206F_200F_206D_206D_202E_206C_200C_202E_206E_200C_202C_200F_206B_200C_206B_206B_202E(object P_0) - { - return P_0.ToString(); - } - - static ClientLanguage _202E_200C_206B_200F_200B_200B_200B_200E_206F_200F_202E_206F_206D_206F_200C_200B_202C_206D_200F_202D_206B_200C_200E_202D_202C_202B_202A_200B_202E_202A_200D_206A_200E_202A_200C_206D_200C_206D_206F_200C_202E(IDataManager P_0) - { - return P_0.Language; - } - - static bool _202D_206F_206E_206F_206C_206C_206A_206E_202B_206D_200C_202E_206C_200F_200E_200B_200E_200F_200F_200F_206E_206B_200E_206E_206D_206C_200F_206D_206E_206A_200B_206E_202C_206B_202C_206E_206C_200E_206A_202D_202E(string P_0) - { - return string.IsNullOrWhiteSpace(P_0); - } - - static void _206C_206C_206E_206B_206D_200D_206C_200B_206D_206F_206F_200D_202D_206C_200D_202C_206C_206F_202A_200F_202D_206F_206B_200C_202C_206A_206C_200F_200B_202E_206F_202A_202D_206C_200F_200E_206E_200C_206E_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _206E_200B_202B_202A_202D_202C_200D_202A_206F_206D_202D_202E_200F_200F_206D_200C_206B_202D_200F_202D_200E_200F_206D_206A_200D_202E_202D_200C_200F_200D_206C_206A_206B_206D_206B_200F_202A_206C_202B_202C_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.EndsWith(P_1, P_2); - } - - static bool _206D_206D_200E_206C_206F_206B_206E_206A_202D_202A_206E_206E_206C_200D_206C_202C_206E_202C_206F_202B_200B_206B_200E_202E_200C_206E_200F_206C_200E_206C_200C_200C_202E_206B_200E_200E_200E_202A_202B_202B_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.StartsWith(P_1, P_2); - } - - static bool _206B_206B_206D_202A_200E_200F_200C_200D_206D_202D_200D_202D_200F_206A_200C_200F_202E_206A_206B_206D_202B_200F_202E_202E_202C_206F_202C_202A_200F_202C_200C_202B_200E_200B_200D_200D_202B_202B_200B_202C_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); - } - - static bool _200F_200C_202B_206C_200D_200B_200B_206C_206E_200F_200F_206D_200B_200B_200D_202C_202C_206F_206B_200F_200E_202A_206A_200D_202C_206A_202B_206B_200B_202C_200E_202B_202C_206B_202A_202D_200C_202C_206C_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static char _206A_206A_200E_202B_206A_202A_200E_206E_202D_202A_202B_206B_206B_202C_200D_202A_206B_206B_206E_200C_200C_206F_202E_202C_206A_202A_206A_206E_200F_206A_200C_202B_202A_200C_202A_206D_200F_206B_206A_206F_202E(string P_0, int P_1) - { - return P_0[P_1]; - } - - static CultureInfo _202D_200E_200E_200D_206F_200D_200C_200F_200D_200E_206A_200C_202E_206E_200D_202B_206B_200B_200C_202A_200F_206E_200C_206E_200B_202A_202C_206F_206A_200D_200E_202D_200C_206E_206F_202E_200E_200C_202A_206B_202E() - { - return CultureInfo.InvariantCulture; - } - - static string _200D_202A_206D_206D_200D_206F_206A_206D_202B_200F_202E_200F_202C_202E_200B_202E_200B_200B_200B_206A_206B_206F_206A_200E_206B_202A_200E_206A_202D_200E_206D_206B_202C_202C_206D_200E_202A_206A_200F_206D_202E(string P_0, CultureInfo P_1) - { - return P_0.ToUpper(P_1); - } - - static ReadOnlySpan<char> _206D_200D_200B_206B_200C_202C_202D_206B_206C_200B_200B_206D_206E_200F_206D_202D_202A_206B_202A_206D_206A_202B_206D_206F_206B_206E_206A_206A_202A_202B_202D_206B_200E_206C_202C_206F_200F_206F_202D_206E_202E(string P_0) - { - return P_0.AsSpan(); - } - - static ReadOnlySpan<char> _206B_202A_202A_206C_200C_200F_202C_206F_202A_202D_200F_200E_200B_206E_202B_200C_202E_206F_206E_202D_200F_202C_200C_202B_206F_206F_206C_202C_206A_202B_206A_206D_202B_202D_206E_200B_206F_202E_200C_202E(string P_0, int P_1) - { - return P_0.AsSpan(P_1); - } - - static string _202E_206C_200C_206A_202E_202B_200F_206A_202C_202A_200B_202E_206C_206B_202E_200F_202A_202A_202C_202E_206F_206A_206A_206F_202A_206B_202A_200B_206B_200D_206E_206D_200C_206A_206D_202C_202C_202D_202C_206D_202E(ReadOnlySpan<char> P_0, ReadOnlySpan<char> P_1) - { - return string.Concat(P_0, P_1); - } } diff --git a/Questionable/Questionable.Data/FishingData.cs b/Questionable/Questionable.Data/FishingData.cs index b268962..f0b7c7d 100644 --- a/Questionable/Questionable.Data/FishingData.cs +++ b/Questionable/Questionable.Data/FishingData.cs @@ -34,29 +34,12 @@ internal sealed class FishingData public bool TryGetFishingSpot(uint itemId, [NotNullWhen(true)] out FishingSpotInfo? spot) { - FishingSpotInfo value; - int num = ((!_itemToSpot.TryGetValue(itemId, out value)) ? 254023319 : 254023316); - while (true) + if (_itemToSpot.TryGetValue(itemId, out var value)) { - int num2 = num; - int num3 = 254023318; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - spot = null; - return false; - case 2: - spot = value; - return true; - case 0: - goto IL_0067; - } - continue; - IL_0067: - num = 254023316; + spot = value; + return true; } + spot = null; + return false; } } diff --git a/Questionable/Questionable.Data/FishingSpotInfo.cs b/Questionable/Questionable.Data/FishingSpotInfo.cs index 12ebac9..5ab8232 100644 --- a/Questionable/Questionable.Data/FishingSpotInfo.cs +++ b/Questionable/Questionable.Data/FishingSpotInfo.cs @@ -1,114 +1,3 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; - namespace Questionable.Data; -internal readonly record struct FishingSpotInfo(uint SpotId, ushort TerritoryId, float X, float Z, ushort GatheringLevel) -{ - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200D_200E_206C_206F_206C_200C_206D_202C_202A_206E_202D_200E_200B_206E_202E_206F_202C_206A_202E_200E_206D_200C_202A_206A_206A_200F_200C_200D_200F_200F_206A_200B_206B_200E_202B_202E_202C_202A_206D_206A_202E(); - _206C_206E_206F_206A_200E_202C_206A_206C_202E_202B_202C_206F_206A_206D_200B_200D_202E_206C_202E_206B_200D_200F_202E_206B_206C_202B_206A_202D_206D_206F_202E_206D_206A_202C_202D_200E_202A_202D_202D_200C_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-51629188)); - _206C_206E_206F_206A_200E_202C_206A_206C_202E_202B_202C_206F_206A_206D_200B_200D_202E_206C_202E_206B_200D_200F_202E_206B_206C_202B_206A_202D_206D_206F_202E_206D_206A_202C_202D_200E_202A_202D_202D_200C_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(556540328)); - int num = ((!PrintMembers(stringBuilder)) ? (-1583712030) : (-1583712029)); - while (true) - { - int num2 = num; - int num3 = -1583712030; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1583712029; - break; - case 1: - _200B_206E_200C_202A_202A_206A_200C_206F_202C_206F_200D_206A_206D_202E_202D_202E_206C_206F_202B_202C_206D_200E_202C_200D_206B_202D_206A_200F_206C_202B_206D_206B_202A_200C_200B_200E_202D_202A_206B_200E_202E(stringBuilder, ' '); - num = -1583712030; - break; - case 0: - _200B_206E_200C_202A_202A_206A_200C_206F_202C_206F_200D_206A_206D_202E_202D_202E_206C_206F_202B_202C_206D_200E_202C_200D_206B_202D_206A_200F_206C_202B_206D_206B_202A_200C_200B_200E_202D_202A_206B_200E_202E(stringBuilder, '}'); - return _206D_206C_206D_200D_206A_202A_200F_206E_200E_200B_206D_202B_200C_206A_202E_200F_200F_200D_200C_206B_200C_206B_200C_200B_200E_202C_200B_206E_206F_206E_200B_206A_202B_200D_200B_202B_202D_206D_206E_202A_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206C_206E_206F_206A_200E_202C_206A_206C_202E_202B_202C_206F_206A_206D_200B_200D_202E_206C_202E_206B_200D_200F_202E_206B_206C_202B_206A_202D_206D_206F_202E_206D_206A_202C_202D_200E_202A_202D_202D_200C_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-5346518)); - _206C_206E_206F_206A_200E_202C_206A_206C_202E_202B_202C_206F_206A_206D_200B_200D_202E_206C_202E_206B_200D_200F_202E_206B_206C_202B_206A_202D_206D_206F_202E_206D_206A_202C_202D_200E_202A_202D_202D_200C_202E(builder, SpotId.ToString()); - _206C_206E_206F_206A_200E_202C_206A_206C_202E_202B_202C_206F_206A_206D_200B_200D_202E_206C_202E_206B_200D_200F_202E_206B_206C_202B_206A_202D_206D_206F_202E_206D_206A_202C_202D_200E_202A_202D_202D_200C_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1213099778)); - _206C_206E_206F_206A_200E_202C_206A_206C_202E_202B_202C_206F_206A_206D_200B_200D_202E_206C_202E_206B_200D_200F_202E_206B_206C_202B_206A_202D_206D_206F_202E_206D_206A_202C_202D_200E_202A_202D_202D_200C_202E(builder, TerritoryId.ToString()); - _206C_206E_206F_206A_200E_202C_206A_206C_202E_202B_202C_206F_206A_206D_200B_200D_202E_206C_202E_206B_200D_200F_202E_206B_206C_202B_206A_202D_206D_206F_202E_206D_206A_202C_202D_200E_202A_202D_202D_200C_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2042038110)); - _206C_206E_206F_206A_200E_202C_206A_206C_202E_202B_202C_206F_206A_206D_200B_200D_202E_206C_202E_206B_200D_200F_202E_206B_206C_202B_206A_202D_206D_206F_202E_206D_206A_202C_202D_200E_202A_202D_202D_200C_202E(builder, X.ToString()); - _206C_206E_206F_206A_200E_202C_206A_206C_202E_202B_202C_206F_206A_206D_200B_200D_202E_206C_202E_206B_200D_200F_202E_206B_206C_202B_206A_202D_206D_206F_202E_206D_206A_202C_202D_200E_202A_202D_202D_200C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1035184448)); - _206C_206E_206F_206A_200E_202C_206A_206C_202E_202B_202C_206F_206A_206D_200B_200D_202E_206C_202E_206B_200D_200F_202E_206B_206C_202B_206A_202D_206D_206F_202E_206D_206A_202C_202D_200E_202A_202D_202D_200C_202E(builder, Z.ToString()); - _206C_206E_206F_206A_200E_202C_206A_206C_202E_202B_202C_206F_206A_206D_200B_200D_202E_206C_202E_206B_200D_200F_202E_206B_206C_202B_206A_202D_206D_206F_202E_206D_206A_202C_202D_200E_202A_202D_202D_200C_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-67625738)); - _206C_206E_206F_206A_200E_202C_206A_206C_202E_202B_202C_206F_206A_206D_200B_200D_202E_206C_202E_206B_200D_200F_202E_206B_206C_202B_206A_202D_206D_206F_202E_206D_206A_202C_202D_200E_202A_202D_202D_200C_202E(builder, GatheringLevel.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(FishingSpotInfo other) - { - int num = ((!EqualityComparer<uint>.Default.Equals(SpotId, other.SpotId)) ? 290247047 : 290247042); - while (true) - { - int num2 = num; - int num3 = 290247046; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = 290247042; - break; - case 0: - num = ((!EqualityComparer<float>.Default.Equals(Z, other.Z)) ? 290247047 : 290247044); - break; - case 4: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? 290247047 : 290247043); - break; - case 2: - return EqualityComparer<ushort>.Default.Equals(GatheringLevel, other.GatheringLevel); - case 1: - return false; - case 5: - num = ((!EqualityComparer<float>.Default.Equals(X, other.X)) ? 290247047 : 290247046); - break; - } - } - } - - bool IEquatable<FishingSpotInfo>.Equals(FishingSpotInfo other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _200D_200E_206C_206F_206C_200C_206D_202C_202A_206E_202D_200E_200B_206E_202E_206F_202C_206A_202E_200E_206D_200C_202A_206A_206A_200F_200C_200D_200F_200F_206A_200B_206B_200E_202B_202E_202C_202A_206D_206A_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206C_206E_206F_206A_200E_202C_206A_206C_202E_202B_202C_206F_206A_206D_200B_200D_202E_206C_202E_206B_200D_200F_202E_206B_206C_202B_206A_202D_206D_206F_202E_206D_206A_202C_202D_200E_202A_202D_202D_200C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200B_206E_200C_202A_202A_206A_200C_206F_202C_206F_200D_206A_206D_202E_202D_202E_206C_206F_202B_202C_206D_200E_202C_200D_206B_202D_206A_200F_206C_202B_206D_206B_202A_200C_200B_200E_202D_202A_206B_200E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206D_206C_206D_200D_206A_202A_200F_206E_200E_200B_206D_202B_200C_206A_202E_200F_200F_200D_200C_206B_200C_206B_200C_200B_200E_202C_200B_206E_206F_206E_200B_206A_202B_200D_200B_202B_202D_206D_206E_202A_202E(object P_0) - { - return P_0.ToString(); - } -} +internal readonly record struct FishingSpotInfo(uint SpotId, ushort TerritoryId, float X, float Z, ushort GatheringLevel); diff --git a/Questionable/Questionable.Data/GameQuestSequences.cs b/Questionable/Questionable.Data/GameQuestSequences.cs index 8304f9d..672acd8 100644 --- a/Questionable/Questionable.Data/GameQuestSequences.cs +++ b/Questionable/Questionable.Data/GameQuestSequences.cs @@ -11,47 +11,20 @@ internal static class GameQuestSequences { public static List<int> GetCompletionSequences(IDataManager dataManager, QuestId questId) { - Quest? rowOrDefault = dataManager.GetExcelSheet<Quest>().GetRowOrDefault((uint)(0x10000 | _202B_200F_206E_206E_206E_200B_202A_200C_206B_200C_200D_200C_206E_200B_200C_200B_206D_206F_200B_206B_206D_206D_202C_200D_206B_202D_206C_206D_200D_202B_202A_206B_200F_206D_202A_202A_206F_206F_200D_202B_202E((ElementId)questId))); - int num = ((!rowOrDefault.HasValue) ? (-1830847264) : (-1830847257)); - Quest valueOrDefault = default(Quest); - while (true) + Quest? rowOrDefault = dataManager.GetExcelSheet<Quest>().GetRowOrDefault((uint)(0x10000 | questId.Value)); + if (rowOrDefault.HasValue) { - int num2 = num; - int num3 = -1830847263; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + Quest valueOrDefault = rowOrDefault.GetValueOrDefault(); + if (valueOrDefault.TodoParams.Count == 0 || valueOrDefault.TodoParams[0].ToDoCompleteSeq == 0) { - case 0: - num = -1830847257; - break; - case 3: - return (from seq in (from seq in ((IEnumerable<Quest.TodoParamsStruct>)valueOrDefault.TodoParams).Select((Func<Quest.TodoParamsStruct, int>)((Quest.TodoParamsStruct x) => x.ToDoCompleteSeq)) - where seq != 0 - select seq).Distinct() - orderby seq - select seq).ToList(); - case 5: - num = ((valueOrDefault.TodoParams[0].ToDoCompleteSeq != 0) ? (-1830847262) : (-1830847259)); - break; - case 6: - valueOrDefault = rowOrDefault.GetValueOrDefault(); - num = -1830847261; - break; - case 4: - return new List<int>(); - case 2: - num = ((valueOrDefault.TodoParams.Count == 0) ? (-1830847259) : (-1830847260)); - break; - case 1: return new List<int>(); } + return (from seq in (from seq in ((IEnumerable<Quest.TodoParamsStruct>)valueOrDefault.TodoParams).Select((Func<Quest.TodoParamsStruct, int>)((Quest.TodoParamsStruct x) => x.ToDoCompleteSeq)) + where seq != 0 + select seq).Distinct() + orderby seq + select seq).ToList(); } - } - - static ushort _202B_200F_206E_206E_206E_200B_202A_200C_206B_200C_200D_200C_206E_200B_200C_200B_206D_206F_200B_206B_206D_206D_202C_200D_206B_202D_206C_206D_200D_202B_202A_206B_200F_206D_202A_202A_206F_206F_200D_202B_202E(ElementId P_0) - { - return P_0.Value; + return new List<int>(); } } diff --git a/Questionable/Questionable.Data/GatheringData.cs b/Questionable/Questionable.Data/GatheringData.cs index b866cbb..65c5418 100644 --- a/Questionable/Questionable.Data/GatheringData.cs +++ b/Questionable/Questionable.Data/GatheringData.cs @@ -1,5 +1,3 @@ -using System; -using System.Collections; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; @@ -26,60 +24,27 @@ internal sealed class GatheringData public GatheringData(IDataManager dataManager) { - Dictionary<uint, uint> dictionary = dataManager.GetExcelSheet<GatheringItem>().Where(delegate(GatheringItem x) - { - int num4 = ((x.RowId == 0) ? 1888358196 : 1888358199); - while (true) - { - int num5 = num4; - int num6 = 1888358198; - int num7 = num5; - switch ((num7 | num6) - (num7 & num6)) - { - case 0: - goto IL_0047; - case 1: - return x.Item.RowId != 0; - case 2: - return false; - } - continue; - IL_0047: - num4 = 1888358199; - } - }).ToDictionary((GatheringItem x) => x.RowId, (GatheringItem x) => x.Item.RowId); + Dictionary<uint, uint> dictionary = (from x in dataManager.GetExcelSheet<GatheringItem>() + where x.RowId != 0 && x.Item.RowId != 0 + select x).ToDictionary((GatheringItem x) => x.RowId, (GatheringItem x) => x.Item.RowId); foreach (GatheringPointBase item in dataManager.GetExcelSheet<GatheringPointBase>()) { - IEnumerator<RowRef> enumerator2 = item.Item.Where((RowRef x) => x.RowId != 0).GetEnumerator(); - try + foreach (RowRef item2 in item.Item.Where((RowRef x) => x.RowId != 0)) { - while (_200C_206A_206B_202B_200E_200C_200C_202B_206A_200B_206A_202A_202D_200E_206B_200B_200F_202B_200B_206D_206A_200D_202C_206A_206E_200E_206B_200D_206A_202D_202B_206D_200E_206C_202C_202E_200E_202B_202B_202E_202E((IEnumerator)enumerator2)) + if (!dictionary.TryGetValue(item2.RowId, out var value)) { - if (!dictionary.TryGetValue(enumerator2.Current.RowId, out var value)) - { - continue; - } - uint rowId = item.GatheringType.RowId; - if (rowId <= 1) - { - _minerGatheringPoints[value] = _200D_202D_200C_202B_200D_202B_206A_202E_200E_200F_200D_202C_202C_200D_206C_206E_202E_202E_206C_200B_202B_206B_200E_206D_206F_206F_200F_200C_200E_200D_206F_202D_200D_206C_202D_202B_206C_200F_202A_206E_202E((ushort)item.RowId); - continue; - } - rowId = item.GatheringType.RowId; - uint num = rowId; - int num2 = 2; - int num3 = (int)num; - if ((uint)(~(~num3 + num2)) <= 1u) - { - _botanistGatheringPoints[value] = _200D_202D_200C_202B_200D_202B_206A_202E_200E_200F_200D_202C_202C_200D_206C_206E_202E_202E_206C_200B_202B_206B_200E_206D_206F_206F_200F_200C_200E_200D_206F_202D_200D_206C_202D_202B_206C_200F_202A_206E_202E((ushort)item.RowId); - } + continue; } - } - finally - { - if (enumerator2 != null) + uint rowId = item.GatheringType.RowId; + if (rowId <= 1) { - _202A_200E_206D_200B_200E_202E_200D_200E_200C_200B_200E_200E_200D_206A_202A_206D_200B_200E_202C_206C_200C_202C_202E_200B_200B_202D_200F_202E_206E_200C_206D_200C_206D_206D_206C_206E_206F_206A_200F_202E_202E((IDisposable)enumerator2); + _minerGatheringPoints[value] = new GatheringPointId((ushort)item.RowId); + continue; + } + rowId = item.GatheringType.RowId; + if (rowId - 2 <= 1) + { + _botanistGatheringPoints[value] = new GatheringPointId((ushort)item.RowId); } } } @@ -123,19 +88,4 @@ internal sealed class GatheringData { return _npcForCustomDeliveries.TryGetValue(itemId, out npcId); } - - static GatheringPointId _200D_202D_200C_202B_200D_202B_206A_202E_200E_200F_200D_202C_202C_200D_206C_206E_202E_202E_206C_200B_202B_206B_200E_206D_206F_206F_200F_200C_200E_200D_206F_202D_200D_206C_202D_202B_206C_200F_202A_206E_202E(ushort P_0) - { - return new GatheringPointId(P_0); - } - - static bool _200C_206A_206B_202B_200E_200C_200C_202B_206A_200B_206A_202A_202D_200E_206B_200B_200F_202B_200B_206D_206A_200D_202C_206A_206E_200E_206B_200D_206A_202D_202B_206D_200E_206C_202C_202E_200E_202B_202B_202E_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202A_200E_206D_200B_200E_202E_200D_200E_200C_200B_200E_200E_200D_206A_202A_206D_200B_200E_202C_206C_200C_202C_202E_200B_200B_202D_200F_202E_206E_200C_206D_200C_206D_206D_206C_206E_206F_206A_200F_202E_202E(IDisposable P_0) - { - P_0.Dispose(); - } } diff --git a/Questionable/Questionable.Data/HuntMobData.cs b/Questionable/Questionable.Data/HuntMobData.cs index 4023fa2..ed478ca 100644 --- a/Questionable/Questionable.Data/HuntMobData.cs +++ b/Questionable/Questionable.Data/HuntMobData.cs @@ -31,9 +31,7 @@ internal sealed class HuntMobData foreach (NotoriousMonster item in excelSheet) { byte rank = item.Rank; - int num = 2; - int num2 = rank; - if ((uint)(~(~num2 + num)) > 1u) + if ((uint)(rank - 2) > 1u) { continue; } diff --git a/Questionable/Questionable.Data/JournalData.cs b/Questionable/Questionable.Data/JournalData.cs index 6d53560..c137f44 100644 --- a/Questionable/Questionable.Data/JournalData.cs +++ b/Questionable/Questionable.Data/JournalData.cs @@ -1,8 +1,6 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; using Dalamud.Game; using Dalamud.Plugin.Services; using Lumina.Excel; @@ -97,268 +95,6 @@ internal sealed class JournalData } } - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<JournalCategory, bool> _003C_003E9__10_0; - - public static Func<JournalGenre, uint> _003C_003E9__10_2; - - public static Func<uint, uint> _003C_003E9__10_3; - - public static Func<JournalGenre, bool> _003C_003E9__10_4; - - public static Func<JournalGenre, bool> _003C_003E9__10_5; - - public static Func<QuestRedo.QuestRedoParamStruct, uint> _003C_003E9__10_7; - - public static Func<uint, bool> _003C_003E9__10_8; - - public static Func<QuestRedo.QuestRedoParamStruct, uint> _003C_003E9__10_10; - - public static Func<uint, bool> _003C_003E9__10_11; - - public static Func<QuestRedo.QuestRedoParamStruct, uint> _003C_003E9__10_13; - - public static Func<uint, bool> _003C_003E9__10_14; - - public static Func<Genre, bool> _003C_003E9__10_16; - - public static Func<Genre, IEnumerable<IQuestInfo>> _003C_003E9__10_18; - - public static Func<IQuestInfo, ElementId> _003C_003E9__10_19; - - public static Func<QuestInfo, ushort> _003C_003E9__10_21; - - public static Func<QuestInfo, ElementId> _003C_003E9__10_22; - - public static Func<JournalCategory, bool> _003C_003E9__10_23; - - public static Func<JournalSection, bool> _003C_003E9__29_0; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal bool _003C_002Ector_003Eb__10_0(JournalCategory x) - { - return _202C_202E_200B_206E_202A_202D_202A_200B_206E_206D_206A_206A_200C_200E_200C_200B_206D_202C_200C_206C_200D_202B_200F_202E_200E_200E_200C_200B_202D_206C_206C_202E_200F_206D_202E_202E_206C_202D_200C_206B_202E(x.Name.ToString(), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(94738530), StringComparison.OrdinalIgnoreCase); - } - - internal uint _003C_002Ector_003Eb__10_2(JournalGenre x) - { - return x.RowId; - } - - internal uint _003C_002Ector_003Eb__10_3(uint x) - { - return x; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal bool _003C_002Ector_003Eb__10_4(JournalGenre x) - { - return _202C_202E_200B_206E_202A_202D_202A_200B_206E_206D_206A_206A_200C_200E_200C_200B_206D_202C_200C_206C_200D_202B_200F_202E_200E_200E_200C_200B_202D_206C_206C_202E_200F_206D_202E_202E_206C_202D_200C_206B_202E(x.Name.ToString(), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1098443665), StringComparison.OrdinalIgnoreCase); - } - - internal bool _003C_002Ector_003Eb__10_5(JournalGenre x) - { - int num = ((x.RowId == 0) ? 267334401 : 267334402); - while (true) - { - int num2 = num; - int num3 = 267334400; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0048; - case 2: - return x.Icon > 0; - case 1: - return false; - } - continue; - IL_0048: - num = 267334402; - } - } - - internal uint _003C_002Ector_003Eb__10_7(QuestRedo.QuestRedoParamStruct x) - { - return x.Quest.RowId; - } - - internal bool _003C_002Ector_003Eb__10_8(uint x) - { - return x != 0; - } - - internal uint _003C_002Ector_003Eb__10_10(QuestRedo.QuestRedoParamStruct x) - { - return x.Quest.RowId; - } - - internal bool _003C_002Ector_003Eb__10_11(uint x) - { - return x != 0; - } - - internal uint _003C_002Ector_003Eb__10_13(QuestRedo.QuestRedoParamStruct x) - { - return x.Quest.RowId; - } - - internal bool _003C_002Ector_003Eb__10_14(uint x) - { - return x != 0; - } - - internal bool _003C_002Ector_003Eb__10_16(Genre x) - { - return x.Id == 1; - } - - internal IEnumerable<IQuestInfo> _003C_002Ector_003Eb__10_18(Genre g) - { - return g.Quests; - } - - internal ElementId _003C_002Ector_003Eb__10_19(IQuestInfo q) - { - return q.QuestId; - } - - internal ushort _003C_002Ector_003Eb__10_21(QuestInfo x) - { - return x.SortKey; - } - - internal ElementId _003C_002Ector_003Eb__10_22(QuestInfo x) - { - return x.QuestId; - } - - internal bool _003C_002Ector_003Eb__10_23(JournalCategory x) - { - return x.RowId != 0; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal bool _003CGetOtherQuestsSectionRowId_003Eb__29_0(JournalSection s) - { - return _202B_200C_200B_202A_206D_206F_206C_200C_200C_200D_202C_202A_206E_206F_200E_202D_200B_200D_200B_202C_200C_202E_200F_200B_200C_200E_206D_202D_206C_202B_206C_206F_206C_200E_206E_206D_206D_200F_202D_202D_202E(s.Name.ToString(), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1421434526)); - } - - static bool _202C_202E_200B_206E_202A_202D_202A_200B_206E_206D_206A_206A_200C_200E_200C_200B_206D_202C_200C_206C_200D_202B_200F_202E_200E_200E_200C_200B_202D_206C_206C_202E_200F_206D_202E_202E_206C_202D_200C_206B_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.Equals(P_1, P_2); - } - - static bool _202B_200C_200B_202A_206D_206F_206C_200C_200C_200D_202C_202A_206E_206F_200E_202D_200B_200D_200B_202C_200C_202E_200F_200B_200C_200E_206D_202D_206C_202B_206C_206F_206C_200E_206E_206D_206D_200F_202D_202D_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass10_0 - { - public JournalData _003C_003E4__this; - - public QuestData questData; - - internal bool _003C_002Ector_003Eb__1(JournalGenre x) - { - int num = ((x.RowId == 0) ? 1055000676 : 1055000677); - while (true) - { - int num2 = num; - int num3 = 1055000676; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_004d; - case 0: - return false; - case 1: - return x.JournalCategory.RowId == _003C_003E4__this.SeasonalEventsCategoryId.Value; - } - continue; - IL_004d: - num = 1055000677; - } - } - - internal Genre _003C_002Ector_003Eb__6(JournalGenre x) - { - return new Genre(x, questData.GetAllByJournalGenre(x.RowId)); - } - - internal IQuestInfo _003C_002Ector_003Eb__9(uint x) - { - return questData.GetQuestInfo(_202A_200C_202A_202B_200E_206B_200E_200D_200C_202B_206D_206A_202A_200D_200B_202E_206C_202E_200C_202D_200C_206A_200E_200D_206E_206F_200C_206E_202E_206A_206D_200D_206D_206E_206F_206C_202B_206F_206C_202B_202E(x)); - } - - internal IQuestInfo _003C_002Ector_003Eb__12(uint x) - { - return questData.GetQuestInfo(_202A_200C_202A_202B_200E_206B_200E_200D_200C_202B_206D_206A_202A_200D_200B_202E_206C_202E_200C_202D_200C_206A_200E_200D_206E_206F_200C_206E_202E_206A_206D_200D_206D_206E_206F_206C_202B_206F_206C_202B_202E(x)); - } - - internal IQuestInfo _003C_002Ector_003Eb__15(uint x) - { - return questData.GetQuestInfo(_202A_200C_202A_202B_200E_206B_200E_200D_200C_202B_206D_206A_202A_200D_200B_202E_206C_202E_200C_202D_200C_206A_200E_200D_206E_206F_200C_206E_202E_206A_206D_200D_206D_206E_206F_206C_202B_206F_206C_202B_202E(x)); - } - - internal Category _003C_002Ector_003Eb__24(JournalCategory x) - { - _003C_003Ec__DisplayClass10_2 CS_0024_003C_003E8__locals2 = new _003C_003Ec__DisplayClass10_2 - { - x = x - }; - return new Category(CS_0024_003C_003E8__locals2.x, _003C_003E4__this.Genres.Where((Genre y) => y.CategoryId == CS_0024_003C_003E8__locals2.x.RowId).ToList()); - } - - internal Section _003C_002Ector_003Eb__25(JournalSection x) - { - _003C_003Ec__DisplayClass10_3 CS_0024_003C_003E8__locals2 = new _003C_003Ec__DisplayClass10_3 - { - x = x - }; - return new Section(CS_0024_003C_003E8__locals2.x, _003C_003E4__this.Categories.Where((Category y) => y.SectionId == CS_0024_003C_003E8__locals2.x.RowId).ToList()); - } - - static QuestId _202A_200C_202A_202B_200E_206B_200E_200D_200C_202B_206D_206A_202A_200D_200B_202E_206C_202E_200C_202D_200C_206A_200E_200D_206E_206F_200C_206E_202E_206A_206D_200D_206D_206E_206F_206C_202B_206F_206C_202B_202E(uint P_0) - { - return QuestId.FromRowId(P_0); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass10_2 - { - public JournalCategory x; - - internal bool _003C_002Ector_003Eb__26(Genre y) - { - return y.CategoryId == x.RowId; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass10_3 - { - public JournalSection x; - - internal bool _003C_002Ector_003Eb__27(Category y) - { - return y.SectionId == x.RowId; - } - } - private readonly ILogger<JournalData> _logger; private const uint UnassignedGenreId = 4294967291u; @@ -367,414 +103,108 @@ internal sealed class JournalData private static readonly Dictionary<ushort, string> QuestGenreOverrides = new Dictionary<ushort, string> { - { - 1119, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1305358158) - }, - { - 1120, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1582826252) - }, - { - 1121, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1520313259) - }, - { - 1122, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1305358158) - }, - { - 1123, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-412539435) - }, - { - 1124, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-412539435) - }, - { - 1125, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-412539435) - }, - { - 1126, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1305358158) - }, - { - 1127, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-811508698) - }, - { - 1579, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-412539435) - }, - { - 4173, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1693926997) - }, - { - 4196, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1143882431) - }, - { - 4197, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1495315526) - }, - { - 4198, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1396094695) - }, - { - 4199, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1495315526) - }, - { - 4200, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1495315526) - }, - { - 4201, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1396094695) - }, - { - 4202, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1495315526) - }, - { - 4203, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(736629864) - }, - { - 4204, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1396094695) - }, - { - 4205, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1143882431) - }, - { - 4206, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1143882431) - }, - { - 4207, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1495315526) - }, - { - 4208, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1842340562) - }, - { - 4209, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1495315526) - }, - { - 101, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1627004746) - }, - { - 177, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1664023325) - }, - { - 178, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-281039921) - }, - { - 179, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(171773541) - }, - { - 180, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1521567255) - }, - { - 181, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1572110383) - }, - { - 182, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1108841558) - }, - { - 183, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1735035275) - }, - { - 184, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1953715994) - }, - { - 185, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1073040588) - }, - { - 186, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1648905240) - }, - { - 187, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-981016817) - }, - { - 188, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(759686966) - }, - { - 189, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(950239454) - }, - { - 190, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(767562886) - }, - { - 191, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1873832748) - }, - { - 192, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-60872052) - }, - { - 193, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2079024563) - }, - { - 451, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1922634614) - }, - { - 1134, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-932900377) - }, - { - 2109, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-904481056) - }, - { - 437, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2121067052) - }, - { - 488, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1550833574) - }, - { - 489, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(402158112) - }, - { - 2106, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-953100617) - }, - { - 2107, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1850403653) - }, - { - 2110, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-953100617) - }, - { - 2123, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(997113777) - }, - { - 2334, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1916944327) - }, - { - 2387, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-87035783) - }, - { - 2389, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-558440209) - }, - { - 2390, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(24816158) - }, - { - 2391, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(931270108) - }, - { - 2612, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(310219815) - }, - { - 2613, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(46095454) - }, - { - 2920, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(45227288) - }, - { - 2921, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(290019575) - }, - { - 2941, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(481555478) - }, - { - 2942, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-917992694) - }, - { - 2943, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(290019575) - }, - { - 3019, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(387598708) - }, - { - 3088, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-577278110) - }, - { - 3602, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-944156425) - }, - { - 3603, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-671234880) - }, - { - 3604, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(384222801) - }, - { - 3605, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1806863325) - }, - { - 3662, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1806863325) - }, - { - 3759, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1550833574) - }, - { - 3760, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1790879174) - }, - { - 3841, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2047561568) - }, - { - 3842, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(199685168) - }, - { - 3942, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1587082942) - }, - { - 3972, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2047561568) - }, - { - 4027, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1142038998) - }, - { - 4030, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1550833574) - }, - { - 4041, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1142038998) - }, - { - 4042, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1790879174) - }, - { - 4044, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1095305312) - }, - { - 4045, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1238288409) - }, - { - 4046, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(607693116) - }, - { - 4047, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2108608255) - }, - { - 4048, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2108608255) - }, - { - 4049, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1095305312) - }, - { - 4094, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1587082942) - }, - { - 4170, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-600771060) - }, - { - 4171, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1450732885) - }, - { - 4174, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1450732885) - }, - { - 4175, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(795147105) - }, - { - 4644, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1817042905) - }, - { - 4651, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1561279270) - }, - { - 5003, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1668629340) - }, - { - 5004, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-523374154) - }, - { - 5006, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-523374154) - }, - { - 5007, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(111750052) - }, - { - 5008, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(711940049) - }, - { - 5408, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-937484886) - }, - { - 5459, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2035482034) - } + { 1119, "Zodiac Weapons" }, + { 1120, "Zodiac Weapons" }, + { 1121, "Zodiac Weapons" }, + { 1122, "Zodiac Weapons" }, + { 1123, "Zodiac Weapons" }, + { 1124, "Zodiac Weapons" }, + { 1125, "Zodiac Weapons" }, + { 1126, "Zodiac Weapons" }, + { 1127, "Zodiac Weapons" }, + { 1579, "Zodiac Weapons" }, + { 4173, "Radz-at-Han Sidequests" }, + { 4196, "Thavnairian Sidequests" }, + { 4197, "Thavnairian Sidequests" }, + { 4198, "Thavnairian Sidequests" }, + { 4199, "Thavnairian Sidequests" }, + { 4200, "Thavnairian Sidequests" }, + { 4201, "Thavnairian Sidequests" }, + { 4202, "Thavnairian Sidequests" }, + { 4203, "Thavnairian Sidequests" }, + { 4204, "Thavnairian Sidequests" }, + { 4205, "Thavnairian Sidequests" }, + { 4206, "Thavnairian Sidequests" }, + { 4207, "Thavnairian Sidequests" }, + { 4208, "Thavnairian Sidequests" }, + { 4209, "Thavnairian Sidequests" }, + { 101, "Rogue Quests" }, + { 177, "Gladiator Quests" }, + { 178, "Pugilist Quests" }, + { 179, "Marauder Quests" }, + { 180, "Lancer Quests" }, + { 181, "Archer Quests" }, + { 182, "Conjurer Quests" }, + { 183, "Thaumaturge Quests" }, + { 184, "Carpenter Quests" }, + { 185, "Blacksmith Quests" }, + { 186, "Armorer Quests" }, + { 187, "Goldsmith Quests" }, + { 188, "Leatherworker Quests" }, + { 189, "Weaver Quests" }, + { 190, "Alchemist Quests" }, + { 191, "Culinarian Quests" }, + { 192, "Miner Quests" }, + { 193, "Botanist Quests" }, + { 451, "Arcanist Quests" }, + { 1134, "Fisher Quests" }, + { 2109, "Machinist Quests" }, + { 437, "Ul'dahn Sidequests" }, + { 488, "Ul'dahn Sidequests" }, + { 489, "Ul'dahn Sidequests" }, + { 2106, "Ishgardian Sidequests" }, + { 2107, "Dravanian Forelands Sidequests" }, + { 2110, "Ishgardian Sidequests" }, + { 2123, "Ishgardian Sidequests" }, + { 2334, "Anima Weapons" }, + { 2387, "Palace of the Dead" }, + { 2389, "Order of the Twin Adder Quests" }, + { 2390, "Maelstrom Quests" }, + { 2391, "Immortal Flames Quests" }, + { 2612, "The Forbidden Land, Eureka" }, + { 2613, "The Forbidden Land, Eureka" }, + { 2920, "Rhalgr's Reach Sidequests" }, + { 2921, "Kugane Sidequests" }, + { 2941, "Rhalgr's Reach Sidequests" }, + { 2942, "The Forbidden Land, Eureka" }, + { 2943, "Kugane Sidequests" }, + { 3019, "Gridanian Sidequests" }, + { 3088, "Mor Dhonan Sidequests" }, + { 3602, "Crystarium Sidequests" }, + { 3603, "Eulmore Sidequests" }, + { 3604, "Crystarium Sidequests" }, + { 3605, "Crystarium Sidequests" }, + { 3662, "Crystarium Sidequests" }, + { 3759, "Ul'dahn Sidequests" }, + { 3760, "Ishgardian Restoration Main Quests" }, + { 3841, "Ishgardian Restoration Main Quests" }, + { 3842, "Lochs Sidequests" }, + { 3942, "Resistance Weapons" }, + { 3972, "Ishgardian Restoration Main Quests" }, + { 4027, "Resistance Weapons" }, + { 4030, "Ul'dahn Sidequests" }, + { 4041, "Resistance Weapons" }, + { 4042, "Ishgardian Restoration Main Quests" }, + { 4044, "YoRHa: Dark Apocalypse" }, + { 4045, "YoRHa: Dark Apocalypse" }, + { 4046, "YoRHa: Dark Apocalypse" }, + { 4047, "YoRHa: Dark Apocalypse" }, + { 4048, "YoRHa: Dark Apocalypse" }, + { 4049, "YoRHa: Dark Apocalypse" }, + { 4094, "Resistance Weapons" }, + { 4170, "Old Sharlayan Sidequests" }, + { 4171, "Old Sharlayan Sidequests" }, + { 4174, "Old Sharlayan Sidequests" }, + { 4175, "Radz-at-Han Sidequests" }, + { 4644, "Island Sanctuary Quests" }, + { 4651, "Old Sharlayan Sidequests" }, + { 5003, "Tuliyollal Sidequests" }, + { 5004, "Tuliyollal Sidequests" }, + { 5006, "Tuliyollal Sidequests" }, + { 5007, "Solution Nine Sidequests" }, + { 5008, "Solution Nine Sidequests" }, + { 5408, "Crystarium Sidequests" }, + { 5459, "Old Sharlayan Sidequests" } }; private static readonly HashSet<ushort> SortKeyZeroOverrides = new HashSet<ushort> { 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1579 }; @@ -793,174 +223,77 @@ internal sealed class JournalData public int? OtherQuestsSectionRowId { get; private set; } - [MethodImpl(MethodImplOptions.NoInlining)] public JournalData(IDataManager dataManager, QuestData questData, ILogger<JournalData> logger) { JournalData journalData = this; _logger = logger; ExcelSheet<JournalGenre> excelSheet = dataManager.GetExcelSheet<JournalGenre>(); ExcelSheet<JournalGenre> excelSheet2 = dataManager.GetExcelSheet<JournalGenre>(ClientLanguage.English); - JournalCategory journalCategory = dataManager.GetExcelSheet<JournalCategory>(ClientLanguage.English).FirstOrDefault([MethodImpl(MethodImplOptions.NoInlining)] (JournalCategory x) => _003C_003Ec._202C_202E_200B_206E_202A_202D_202A_200B_206E_206D_206A_206A_200C_200E_200C_200B_206D_202C_200C_206C_200D_202B_200F_202E_200E_200E_200C_200B_202D_206C_206C_202E_200F_206D_202E_202E_206C_202D_200C_206B_202E(x.Name.ToString(), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(94738530), StringComparison.OrdinalIgnoreCase)); + JournalCategory journalCategory = dataManager.GetExcelSheet<JournalCategory>(ClientLanguage.English).FirstOrDefault((JournalCategory x) => x.Name.ToString().Equals("Seasonal Events", StringComparison.OrdinalIgnoreCase)); if (journalCategory.RowId != 0) { SeasonalEventsCategoryId = journalCategory.RowId; - _200B_202D_200B_206B_206C_206C_206D_202A_200C_200C_206D_206D_202A_206D_206D_206D_200E_202C_202A_200D_200F_200C_206E_206B_206E_206F_200F_206F_200D_206F_206E_202A_206F_200E_206E_200B_206D_200E_206B_202B_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1195841722), new object[1] { SeasonalEventsCategoryId }); + _logger.LogDebug("Resolved 'Seasonal Events' JournalCategory ID: {CategoryId}", SeasonalEventsCategoryId); } else { SeasonalEventsCategoryId = null; - _202E_206B_206D_200E_202A_200D_206D_200F_200E_206A_200F_202D_206F_206C_200F_202B_206C_202E_200C_202B_202D_200C_206F_200B_202C_200D_202A_200B_202E_206A_206B_200C_206E_200B_206B_206F_200D_206E_202B_206C_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(795445642), Array.Empty<object>()); + _logger.LogWarning("Could not find 'Seasonal Events' JournalCategory - seasonal event detection may not work correctly"); } if (SeasonalEventsCategoryId.HasValue) { - SeasonalEventGenreIds = (from x in excelSheet.Where(delegate(JournalGenre x) - { - int num5 = ((x.RowId == 0) ? 1055000676 : 1055000677); - while (true) - { - int num6 = num5; - int num7 = 1055000676; - int num8 = num6; - int num9 = num8 + num7; - int num10 = num8 & num7; - switch (num9 - (num10 + num10)) - { - case 2: - goto IL_004d; - case 0: - return false; - case 1: - return x.JournalCategory.RowId == journalData.SeasonalEventsCategoryId.Value; - } - continue; - IL_004d: - num5 = 1055000677; - } - }) + SeasonalEventGenreIds = (from x in excelSheet + where x.RowId != 0 && x.JournalCategory.RowId == journalData.SeasonalEventsCategoryId.Value select x.RowId).ToHashSet(); - _200B_202D_200B_206B_206C_206C_206D_202A_200C_200C_206D_206D_202A_206D_206D_206D_200E_202C_202A_200D_200F_200C_206E_206B_206E_206F_200F_206F_200D_206F_206E_202A_206F_200E_206E_200B_206D_200E_206B_202B_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-180038721), new object[3] - { - SeasonalEventGenreIds.Count, - SeasonalEventsCategoryId.Value, - string.Join(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1467939024), SeasonalEventGenreIds.OrderBy((uint x) => x)) - }); + _logger.LogDebug("Resolved {Count} seasonal event JournalGenre IDs from JournalCategory {CategoryId}: [{Ids}]", SeasonalEventGenreIds.Count, SeasonalEventsCategoryId.Value, string.Join(", ", SeasonalEventGenreIds.OrderBy((uint x) => x))); } else { SeasonalEventGenreIds = new HashSet<uint>(); } - JournalGenre journalGenre = excelSheet2.FirstOrDefault([MethodImpl(MethodImplOptions.NoInlining)] (JournalGenre x) => _003C_003Ec._202C_202E_200B_206E_202A_202D_202A_200B_206E_206D_206A_206A_200C_200E_200C_200B_206D_202C_200C_206C_200D_202B_200F_202E_200E_200E_200C_200B_202D_206C_206C_202E_200F_206D_202E_202E_206C_202D_200C_206B_202E(x.Name.ToString(), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1098443665), StringComparison.OrdinalIgnoreCase)); + JournalGenre journalGenre = excelSheet2.FirstOrDefault((JournalGenre x) => x.Name.ToString().Equals("Delivery Moogle Quests", StringComparison.OrdinalIgnoreCase)); if (journalGenre.RowId != 0) { MoogleDeliveryGenreId = journalGenre.RowId; - _200B_202D_200B_206B_206C_206C_206D_202A_200C_200C_206D_206D_202A_206D_206D_206D_200E_202C_202A_200D_200F_200C_206E_206B_206E_206F_200F_206F_200D_206F_206E_202A_206F_200E_206E_200B_206D_200E_206B_202B_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1718606289), new object[1] { MoogleDeliveryGenreId }); + _logger.LogDebug("Resolved 'Delivery Moogle Quests' JournalGenre ID: {GenreId}", MoogleDeliveryGenreId); } else { MoogleDeliveryGenreId = null; - _202E_206B_206D_200E_202A_200D_206D_200F_200E_206A_200F_202D_206F_206C_200F_202B_206C_202E_200C_202B_202D_200C_206F_200B_202C_200D_202A_200B_202E_206A_206B_200C_206E_200B_206B_206F_200D_206E_202B_206C_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(931762081), Array.Empty<object>()); + _logger.LogWarning("Could not find 'Delivery Moogle Quests' JournalGenre - moogle delivery quest detection may not work correctly"); } ApplyGenreOverrides(excelSheet2, questData); - List<Genre> list = (from x in excelSheet.Where(delegate(JournalGenre x) - { - int num5 = ((x.RowId == 0) ? 267334401 : 267334402); - while (true) - { - int num6 = num5; - int num7 = 267334400; - int num8 = num6; - switch ((num8 | num7) - (num8 & num7)) - { - case 0: - goto IL_0048; - case 2: - return x.Icon > 0; - case 1: - return false; - } - continue; - IL_0048: - num5 = 267334402; - } - }) + List<Genre> list = (from x in excelSheet + where x.RowId != 0 && x.Icon > 0 select new Genre(x, questData.GetAllByJournalGenre(x.RowId))).ToList(); QuestRedo row = dataManager.GetExcelSheet<QuestRedo>().GetRow(1u); QuestRedo row2 = dataManager.GetExcelSheet<QuestRedo>().GetRow(2u); QuestRedo row3 = dataManager.GetExcelSheet<QuestRedo>().GetRow(3u); - Genre genreLimsa = new Genre(4294967292u, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-460614731), 1u, (from x in new uint[2] { 108u, 109u }.Concat(row.QuestRedoParam.Select((QuestRedo.QuestRedoParamStruct x) => x.Quest.RowId)) + Genre genreLimsa = new Genre(4294967292u, "Starting in Limsa Lominsa", 1u, (from x in new uint[2] { 108u, 109u }.Concat(row.QuestRedoParam.Select((QuestRedo.QuestRedoParamStruct x) => x.Quest.RowId)) where x != 0 - select questData.GetQuestInfo(_003C_003Ec__DisplayClass10_0._202A_200C_202A_202B_200E_206B_200E_200D_200C_202B_206D_206A_202A_200D_200B_202E_206C_202E_200C_202D_200C_206A_200E_200D_206E_206F_200C_206E_202E_206A_206D_200D_206D_206E_206F_206C_202B_206F_206C_202B_202E(x))).ToList()); - string name = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-890457159); - uint[] array = new uint[3]; - _206F_200F_202D_206E_202E_202C_200D_202D_202B_206A_202E_200F_202B_206E_200B_200D_206A_206A_200D_202A_200D_202D_202C_206A_200F_202E_202B_206F_202D_206A_202A_206F_200D_202D_200D_206A_200F_200B_200E_202B_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - Genre genreGridania = new Genre(4294967293u, name, 1u, (from x in array.Concat(row2.QuestRedoParam.Select((QuestRedo.QuestRedoParamStruct x) => x.Quest.RowId)) + select questData.GetQuestInfo(QuestId.FromRowId(x))).ToList()); + Genre genreGridania = new Genre(4294967293u, "Starting in Gridania", 1u, (from x in new uint[3] { 85u, 123u, 124u }.Concat(row2.QuestRedoParam.Select((QuestRedo.QuestRedoParamStruct x) => x.Quest.RowId)) where x != 0 - select questData.GetQuestInfo(_003C_003Ec__DisplayClass10_0._202A_200C_202A_202B_200E_206B_200E_200D_200C_202B_206D_206A_202A_200D_200B_202E_206C_202E_200C_202D_200C_206A_200E_200D_206E_206F_200C_206E_202E_206A_206D_200D_206D_206E_206F_206C_202B_206F_206C_202B_202E(x))).ToList()); - string name2 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1348050745); - uint[] array2 = new uint[3]; - _206F_200F_202D_206E_202E_202C_200D_202D_202B_206A_202E_200F_202B_206E_200B_200D_206A_206A_200D_202A_200D_202D_202C_206A_200F_202E_202B_206F_202D_206A_202A_206F_200D_202D_200D_206A_200F_200B_200E_202B_202E((Array)array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - Genre genreUldah = new Genre(4294967294u, name2, 1u, (from x in array2.Concat(row3.QuestRedoParam.Select((QuestRedo.QuestRedoParamStruct x) => x.Quest.RowId)) + select questData.GetQuestInfo(QuestId.FromRowId(x))).ToList()); + Genre genreUldah = new Genre(4294967294u, "Starting in Ul'dah", 1u, (from x in new uint[3] { 568u, 569u, 570u }.Concat(row3.QuestRedoParam.Select((QuestRedo.QuestRedoParamStruct x) => x.Quest.RowId)) where x != 0 - select questData.GetQuestInfo(_003C_003Ec__DisplayClass10_0._202A_200C_202A_202B_200E_206B_200E_200D_200C_202B_206D_206A_202A_200D_200B_202E_206C_202E_200C_202D_200C_206A_200E_200D_206E_206F_200C_206E_202E_206A_206D_200D_206D_206E_206F_206C_202B_206F_206C_202B_202E(x))).ToList()); + select questData.GetQuestInfo(QuestId.FromRowId(x))).ToList()); list.InsertRange(0, new Genre[3] { genreLimsa, genreGridania, genreUldah }); - list.Single((Genre x) => x.Id == 1).Quests.RemoveAll(delegate(IQuestInfo x) - { - int num5 = (genreLimsa.Quests.Contains(x) ? (-782963691) : (-782963692)); - while (true) - { - int num6 = num5; - int num7 = -782963690; - int num8 = num6; - switch ((num8 | num7) - (num8 & num7)) - { - case 0: - num5 = -782963692; - break; - case 3: - return true; - case 2: - num5 = (genreGridania.Quests.Contains(x) ? (-782963691) : (-782963689)); - break; - case 1: - return genreUldah.Quests.Contains(x); - } - } - }); + list.Single((Genre x) => x.Id == 1).Quests.RemoveAll((IQuestInfo x) => genreLimsa.Quests.Contains(x) || genreGridania.Quests.Contains(x) || genreUldah.Quests.Contains(x)); HashSet<ElementId> assignedQuestIds = new HashSet<ElementId>(from q in list.SelectMany((Genre g) => g.Quests) select q.QuestId); - List<QuestInfo> list2 = (from QuestInfo x in questData.AllQuests.Values.Where(delegate(IQuestInfo x) - { - int num5 = ((!(x is QuestInfo)) ? (-1514069229) : (-1514069232)); - while (true) - { - int num6 = num5; - int num7 = -1514069231; - int num8 = num6; - switch ((num8 | num7) - (num8 & num7)) - { - case 0: - goto IL_0046; - case 1: - return !assignedQuestIds.Contains(x.QuestId); - case 2: - return false; - } - continue; - IL_0046: - num5 = -1514069232; - } - }) + List<QuestInfo> list2 = (from QuestInfo x in questData.AllQuests.Values.Where((IQuestInfo x) => x is QuestInfo && !assignedQuestIds.Contains(x.QuestId)) orderby x.SortKey, x.QuestId select x).ToList(); Genre genre = null; if (list2.Count > 0) { - _202E_206B_206D_200E_202A_200D_206D_200F_200E_206A_200F_202D_206F_206C_200F_202B_206C_202E_200C_202B_202D_200C_206F_200B_202C_200D_202A_200B_202E_206A_206B_200C_206E_200B_206B_206F_200D_206E_202B_206C_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(767890868), new object[1] { list2.Count }); + _logger.LogWarning("Found {Count} quests not assigned to any journal genre:", list2.Count); foreach (QuestInfo item in list2) { - _202E_206B_206D_200E_202A_200D_206D_200F_200E_206A_200F_202D_206F_206C_200F_202B_206C_202E_200C_202B_202D_200C_206F_200B_202C_200D_202A_200B_202E_206A_206B_200C_206E_200B_206B_206F_200D_206E_202B_206C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-383819874), new object[3] { item.QuestId, item.Name, item.JournalGenre }); + _logger.LogWarning(" Orphaned quest {QuestId} '{Name}' (JournalGenre={Genre})", item.QuestId, item.Name, item.JournalGenre); } - genre = new Genre(4294967291u, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2017945527), 4294967291u, list2.Cast<IQuestInfo>().ToList()); + genre = new Genre(4294967291u, "Unassigned Quests", 4294967291u, list2.Cast<IQuestInfo>().ToList()); list.Add(genre); } Genres = list.ToList(); @@ -975,11 +308,11 @@ internal sealed class JournalData if (otherQuestsSectionRowId.HasValue) { int valueOrDefault = otherQuestsSectionRowId.GetValueOrDefault(); - Categories.Add(new Category(4294967291u, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-968948352), (uint)valueOrDefault, new global::_003C_003Ez__ReadOnlySingleElementList<Genre>(genre))); + Categories.Add(new Category(4294967291u, "Unassigned", (uint)valueOrDefault, new global::_003C_003Ez__ReadOnlySingleElementList<Genre>(genre))); } else { - _202E_206B_206D_200E_202A_200D_206D_200F_200E_206A_200F_202D_206F_206C_200F_202B_206C_202E_200C_202B_202D_200C_206F_200B_202C_200D_202A_200B_202E_206A_206B_200C_206E_200B_206B_206F_200D_206E_202B_206C_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(997441759), new object[1] { list2.Count }); + _logger.LogWarning("'Other Quests' section not found - {Count} unassigned quests will not be shown in the journal", list2.Count); } } Sections = (from x in dataManager.GetExcelSheet<JournalSection>() @@ -993,238 +326,74 @@ internal sealed class JournalData if (section != null) { int num = 0; - IEnumerator<Category> enumerator2 = section.Categories.GetEnumerator(); - try + foreach (Category category in section.Categories) { - while (_206A_200F_200F_200D_206B_206E_206F_206E_206E_202A_202B_206B_206C_202A_200C_200C_202E_200B_200E_200C_202A_202B_202D_206C_200B_200C_206E_206F_202A_202B_200E_206E_206F_202C_200D_206B_200B_202C_206E_200C_202E((IEnumerator)enumerator2)) + foreach (Genre genre2 in category.Genres) { - IEnumerator<Genre> enumerator3 = enumerator2.Current.Genres.GetEnumerator(); - try - { - while (_206A_200F_200F_200D_206B_206E_206F_206E_206E_202A_202B_206B_206C_202A_200C_200C_202E_200B_200E_200C_202A_202B_202D_206C_200B_200C_206E_206F_202A_202B_200E_206E_206F_202C_200D_206B_200B_202C_206E_200C_202E((IEnumerator)enumerator3)) - { - enumerator3.Current.IsUnderOtherQuests = true; - int num2 = num; - int num3 = 1; - int num4 = num2; - num = (num4 | num3) + (num4 & num3); - } - } - finally - { - if (enumerator3 != null) - { - _202A_202C_200B_200C_206E_200F_200B_200F_202B_206E_200D_202E_200C_200D_202A_200B_200E_206C_202B_200E_206C_206A_206F_202C_202C_206B_206C_206D_206D_200F_200F_206F_206D_200D_206B_206F_200D_206F_202E_200E_202E((IDisposable)enumerator3); - } - } + genre2.IsUnderOtherQuests = true; + num++; } } - finally - { - if (enumerator2 != null) - { - _202A_202C_200B_200C_206E_200F_200B_200F_202B_206E_200D_202E_200C_200D_202A_200B_200E_206C_202B_200E_206C_206A_206F_202C_202C_206B_206C_206D_206D_200F_200F_206F_206D_200D_206B_206F_200D_206F_202E_200E_202E((IDisposable)enumerator2); - } - } - _200B_202D_200B_206B_206C_206C_206D_202A_200C_200C_206D_206D_202A_206D_206D_206D_200E_202C_202A_200D_200F_200C_206E_206B_206E_206F_200F_206F_200D_206F_206E_202A_206F_200E_206E_200B_206D_200E_206B_202B_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1290974398), new object[2] { num, valueOrDefault2 }); + _logger.LogDebug("Marked {Count} genres as under 'Other Quests' (OtherQuestsSectionRowId={Id})", num, valueOrDefault2); } else { - _202E_206B_206D_200E_202A_200D_206D_200F_200E_206A_200F_202D_206F_206C_200F_202B_206C_202E_200C_202B_202D_200C_206F_200B_202C_200D_202A_200B_202E_206A_206B_200C_206E_200B_206B_206F_200D_206E_202B_206C_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(510378782), new object[1] { valueOrDefault2 }); + _logger.LogWarning("OtherQuestsSectionRowId = {Id} found, but matching Section not present in constructed Sections", valueOrDefault2); } } else { - _200B_202D_200B_206B_206C_206C_206D_202A_200C_200C_206D_206D_202A_206D_206D_206D_200E_202C_202A_200D_200F_200C_206E_206B_206E_206F_200F_206F_200D_206F_206E_202A_206F_200E_206E_200B_206D_200E_206B_202B_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1552904642), Array.Empty<object>()); + _logger.LogDebug("OtherQuestsSectionRowId not found - 'Other Quests' genre marking skipped"); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void ApplyGenreOverrides(ExcelSheet<JournalGenre> journalGenreSheetEnglish, QuestData questData) { - Dictionary<string, uint> dictionary = new Dictionary<string, uint>(_206C_200E_206D_200B_206E_206D_202D_202E_206E_202C_206E_202E_206C_202D_200C_202D_202C_206E_202E_200E_200F_200D_200F_202E_206F_206E_200C_206D_202C_206A_200D_206D_200C_202A_200E_200D_202C_206F_206E_206C_202E()); - int num; - using (ExcelSheet<JournalGenre>.Enumerator enumerator = journalGenreSheetEnglish.GetEnumerator()) + Dictionary<string, uint> dictionary = new Dictionary<string, uint>(StringComparer.OrdinalIgnoreCase); + foreach (JournalGenre item in journalGenreSheetEnglish) { - num = 1219654826; - JournalGenre current = default(JournalGenre); - while (true) + if (item.RowId != 0 && !item.Name.IsEmpty) { - int num2 = num; - int num3 = 1219654830; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - dictionary.TryAdd(current.Name.ToString(), current.RowId); - num = 1219654826; - break; - case 3: - num = (current.Name.IsEmpty ? 1219654826 : 1219654831); - break; - case 4: - num = (enumerator.MoveNext() ? 1219654827 : 1219654828); - break; - case 0: - num = 1219654826; - break; - case 5: - current = enumerator.Current; - num = ((current.RowId == 0) ? 1219654826 : 1219654829); - break; - case 2: - goto end_IL_001e; - } - continue; - end_IL_001e: - break; + dictionary.TryAdd(item.Name.ToString(), item.RowId); } } - int num7 = 0; - using (Dictionary<ushort, string>.Enumerator enumerator2 = QuestGenreOverrides.GetEnumerator()) + int num = 0; + foreach (var (num3, text2) in QuestGenreOverrides) { - num = -823786483; - ushort num10 = default(ushort); - string text = default(string); - uint value = default(uint); - IQuestInfo questInfo2 = default(IQuestInfo); - QuestInfo questInfo = default(QuestInfo); - while (true) + if (!dictionary.TryGetValue(text2, out var value)) { - int num8 = num; - int num3 = -823786491; - int num4 = num8; - switch ((num4 | num3) - (num4 & num3)) + _logger.LogWarning("Genre '{GenreName}' not found for quest {QuestId}", text2, num3); + } + else + { + if (!questData.TryGetQuestInfo(new QuestId(num3), out IQuestInfo questInfo)) { - case 8: - num = (enumerator2.MoveNext() ? (-823786495) : (-823786492)); - break; - case 4: + continue; + } + if (questInfo is QuestInfo questInfo2) { - enumerator2.Current.Deconstruct(out var key, out var value2); - num10 = key; - text = value2; - num = (dictionary.TryGetValue(text, out value) ? (-823786493) : (-823786484)); - break; + questInfo2.JournalGenre = value; + if (SortKeyZeroOverrides.Contains(num3)) + { + questInfo2.SortKey = 0; + } } - case 6: - num = ((!questData.TryGetQuestInfo(_206F_206B_200F_202D_206E_202D_200F_200D_202B_200C_200B_206C_202C_202E_200E_206D_200E_206F_206C_200F_200B_200C_202E_202A_206A_202B_200C_200E_200F_202C_202E_206A_202D_202D_206D_206E_200D_206B_200D_202B_202E(num10), out questInfo2)) ? (-823786483) : (-823786494)); - break; - case 0: - questInfo.JournalGenre = value; - num = ((!SortKeyZeroOverrides.Contains(num10)) ? (-823786490) : (-823786489)); - break; - case 5: - num = -823786483; - break; - case 9: - _202E_206B_206D_200E_202A_200D_206D_200F_200E_206A_200F_202D_206F_206C_200F_202B_206C_202E_200C_202B_202D_200C_206F_200B_202C_200D_202A_200B_202E_206A_206B_200C_206E_200B_206B_206F_200D_206E_202B_206C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(18183827), new object[2] { text, num10 }); - num = -823786483; - break; - case 2: - questInfo.SortKey = 0; - num = -823786490; - break; - case 7: - questInfo = questInfo2 as QuestInfo; - num = ((questInfo == null) ? (-823786490) : (-823786491)); - break; - case 3: - { - int num9 = num7; - num3 = 1; - num4 = num9; - num7 = (num4 | num3) + (num4 & num3); - num = -823786483; - break; - } - case 1: - goto end_IL_013f; - } - continue; - end_IL_013f: - break; + num++; } } - num = ((num7 <= 0) ? (-869321296) : (-869321295)); - while (true) + if (num > 0) { - int num11 = num; - int num3 = -869321296; - int num4 = num11; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -869321295; - break; - case 1: - _200B_202D_200B_206B_206C_206C_206D_202A_200C_200C_206D_206D_202A_206D_206D_206D_200E_202C_202A_200D_200F_200C_206E_206B_206E_206F_200F_206F_200D_206F_206E_202A_206F_200E_206E_200B_206D_200E_206B_202B_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2050146357), new object[1] { num7 }); - num = -869321296; - break; - case 0: - return; - } + _logger.LogDebug("Applied {Count} journal genre overrides", num); } } private static int? GetOtherQuestsSectionRowId(IDataManager dataManager) { - JournalSection journalSection = dataManager.GetExcelSheet<JournalSection>(ClientLanguage.English).FirstOrDefault([MethodImpl(MethodImplOptions.NoInlining)] (JournalSection s) => _003C_003Ec._202B_200C_200B_202A_206D_206F_206C_200C_200C_200D_202C_202A_206E_206F_200E_202D_200B_200D_200B_202C_200C_202E_200F_200B_200C_200E_206D_202D_206C_202B_206C_206F_206C_200E_206E_206D_206D_200F_202D_202D_202E(s.Name.ToString(), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1421434526))); - int num = ((journalSection.RowId != 0) ? (-24571895) : (-24571896)); - while (true) + JournalSection journalSection = dataManager.GetExcelSheet<JournalSection>(ClientLanguage.English).FirstOrDefault((JournalSection s) => s.Name.ToString() == "Other Quests"); + if (journalSection.RowId == 0) { - int num2 = num; - int num3 = -24571895; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_007f; - case 1: - return null; - case 0: - return (int)journalSection.RowId; - } - continue; - IL_007f: - num = -24571896; + return null; } - } - - static void _200B_202D_200B_206B_206C_206C_206D_202A_200C_200C_206D_206D_202A_206D_206D_206D_200E_202C_202A_200D_200F_200C_206E_206B_206E_206F_200F_206F_200D_206F_206E_202A_206F_200E_206E_200B_206D_200E_206B_202B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _202E_206B_206D_200E_202A_200D_206D_200F_200E_206A_200F_202D_206F_206C_200F_202B_206C_202E_200C_202B_202D_200C_206F_200B_202C_200D_202A_200B_202E_206A_206B_200C_206E_200B_206B_206F_200D_206E_202B_206C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static void _206F_200F_202D_206E_202E_202C_200D_202D_202B_206A_202E_200F_202B_206E_200B_200D_206A_206A_200D_202A_200D_202D_202C_206A_200F_202E_202B_206F_202D_206A_202A_206F_200D_202D_200D_206A_200F_200B_200E_202B_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); - } - - static bool _206A_200F_200F_200D_206B_206E_206F_206E_206E_202A_202B_206B_206C_202A_200C_200C_202E_200B_200E_200C_202A_202B_202D_206C_200B_200C_206E_206F_202A_202B_200E_206E_206F_202C_200D_206B_200B_202C_206E_200C_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202A_202C_200B_200C_206E_200F_200B_200F_202B_206E_200D_202E_200C_200D_202A_200B_200E_206C_202B_200E_206C_206A_206F_202C_202C_206B_206C_206D_206D_200F_200F_206F_206D_200D_206B_206F_200D_206F_202E_200E_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static StringComparer _206C_200E_206D_200B_206E_206D_202D_202E_206E_202C_206E_202E_206C_202D_200C_202D_202C_206E_202E_200E_200F_200D_200F_202E_206F_206E_200C_206D_202C_206A_200D_206D_200C_202A_200E_200D_202C_206F_206E_206C_202E() - { - return StringComparer.OrdinalIgnoreCase; - } - - static QuestId _206F_206B_200F_202D_206E_202D_200F_200D_202B_200C_200B_206C_202C_202E_200E_206D_200E_206F_206C_200F_200B_200C_202E_202A_206A_202B_200C_200E_200F_202C_202E_206A_202D_202D_206D_206E_200D_206B_200D_202B_202E(ushort P_0) - { - return new QuestId(P_0); + return (int)journalSection.RowId; } } diff --git a/Questionable/Questionable.Data/LgbWorkerSupervisor.cs b/Questionable/Questionable.Data/LgbWorkerSupervisor.cs new file mode 100644 index 0000000..44a692d --- /dev/null +++ b/Questionable/Questionable.Data/LgbWorkerSupervisor.cs @@ -0,0 +1,239 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Globalization; +using System.IO; +using System.IO.Pipes; +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Dalamud.Plugin.Services; +using Lumina.Excel; +using Lumina.Excel.Sheets; +using Microsoft.Extensions.Logging; +using Questionable.LgbWorker; + +namespace Questionable.Data; + +internal sealed class LgbWorkerSupervisor +{ + private const string WorkerExeName = "Questionable.LgbWorker.exe"; + + private const string WorkerSubDirectory = "lgb-worker"; + + private const string ManifestFileName = "lgb-worker-manifest.json"; + + private const string NpcCacheFileName = "npc-position-cache.bin"; + + private const string BoundaryCacheFileName = "zone-boundary-cache.bin"; + + private readonly IDataManager _dataManager; + + private readonly ILogger<LgbWorkerSupervisor> _logger; + + public LgbWorkerSupervisor(IDataManager dataManager, ILogger<LgbWorkerSupervisor> logger) + { + _dataManager = dataManager; + _logger = logger; + } + + public bool RunWorker(string sqpackPath, string gameVersion, string cacheDirectory, string pluginAssemblyDirectory, CancellationToken ct) + { + string text = Path.Combine(pluginAssemblyDirectory, "lgb-worker", "Questionable.LgbWorker.exe"); + if (!File.Exists(text)) + { + _logger.LogWarning("LGB worker not found at {Path}, falling back to in-process scan", text); + return false; + } + string npcCachePath = Path.Combine(cacheDirectory, "npc-position-cache.bin"); + string boundaryCachePath = Path.Combine(cacheDirectory, "zone-boundary-cache.bin"); + string text2 = Path.Combine(cacheDirectory, "lgb-worker-manifest.json"); + string text3 = $"Questionable.LgbWorker.{Guid.NewGuid():N}"; + Directory.CreateDirectory(cacheDirectory); + _logger.LogDebug("Building LGB worker manifest from Excel sheets..."); + List<TerritoryEntry> list = BuildTerritoryList(); + List<LevelEntry> list2 = BuildLevelEntries(); + _logger.LogDebug("Manifest: {TerritoryCount} territories, {LevelCount} level entries", list.Count, list2.Count); + LgbWorkerManifest value = new LgbWorkerManifest + { + SqpackPath = sqpackPath, + GameVersion = gameVersion, + NpcCachePath = npcCachePath, + BoundaryCachePath = boundaryCachePath, + Territories = list, + LevelEntries = list2 + }; + File.WriteAllText(text2, JsonSerializer.Serialize(value)); + using NamedPipeServerStream namedPipeServerStream = new NamedPipeServerStream(text3, PipeDirection.In, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous); + int processId = Environment.ProcessId; + ProcessStartInfo startInfo = new ProcessStartInfo + { + FileName = text, + Arguments = $"--pipe {text3} --manifest \"{text2}\" --parent-pid {processId.ToString(CultureInfo.InvariantCulture)}", + UseShellExecute = false, + CreateNoWindow = true, + RedirectStandardError = true + }; + Process process = Process.Start(startInfo); + try + { + if (process == null) + { + _logger.LogError("Failed to start LGB worker process"); + return false; + } + _logger.LogInformation("LGB worker started (PID {Pid})", process.Id); + Task.Run(delegate + { + try + { + while (true) + { + string text4 = process.StandardError.ReadLine(); + if (text4 == null) + { + break; + } + _logger.LogDebug("[LgbWorker] {Line}", text4); + } + } + catch + { + } + }, ct); + _logger.LogDebug("Waiting for LGB worker to connect..."); + try + { + namedPipeServerStream.WaitForConnection(); + } + catch (IOException exception) + { + _logger.LogError(exception, "LGB worker pipe connection failed"); + process.Kill(); + return false; + } + _logger.LogDebug("LGB worker connected, reading messages..."); + try + { + while (true) + { + ct.ThrowIfCancellationRequested(); + LgbWorkerMessage lgbWorkerMessage = LgbWorkerFraming.Read(namedPipeServerStream); + switch (lgbWorkerMessage.Type) + { + case LgbMessageType.Progress: + if (lgbWorkerMessage.Total > 0 && lgbWorkerMessage.Done % (lgbWorkerMessage.Total / 10 + 1) == 0) + { + _logger.LogDebug("LGB worker progress: {Done}/{Total}", lgbWorkerMessage.Done, lgbWorkerMessage.Total); + } + break; + case LgbMessageType.Final: + if (lgbWorkerMessage.Success) + { + _logger.LogInformation("LGB worker completed in {Duration}ms", lgbWorkerMessage.DurationMs); + process.WaitForExit(5000); + CleanupManifest(text2); + return true; + } + _logger.LogError("LGB worker reported failure: {Error}", lgbWorkerMessage.Error); + process.WaitForExit(5000); + CleanupManifest(text2); + return false; + } + } + } + catch (EndOfStreamException) + { + process.WaitForExit(5000); + _logger.LogError("LGB worker exited without a final message (exit code {Code})", process.ExitCode); + CleanupManifest(text2); + return false; + } + catch (OperationCanceledException) + { + process.Kill(); + CleanupManifest(text2); + throw; + } + } + finally + { + if (process != null) + { + ((IDisposable)process).Dispose(); + } + } + } + + private List<TerritoryEntry> BuildTerritoryList() + { + HashSet<uint> hashSet = new HashSet<uint>(); + foreach (Aetheryte item in _dataManager.GetExcelSheet<Aetheryte>()) + { + hashSet.Add(item.Territory.RowId); + } + List<TerritoryEntry> list = new List<TerritoryEntry>(); + List<TerritoryEntry> list2 = new List<TerritoryEntry>(); + foreach (TerritoryType item2 in _dataManager.GetExcelSheet<TerritoryType>()) + { + if (item2.RowId == 0) + { + continue; + } + string text = item2.Bg.ExtractText(); + if (!string.IsNullOrEmpty(text) && text.Contains("/level/", StringComparison.Ordinal)) + { + TerritoryEntry territoryEntry = new TerritoryEntry + { + RowId = item2.RowId, + BgPath = text, + IntendedUse = (byte)item2.TerritoryIntendedUse.RowId, + HasAetheryte = hashSet.Contains(item2.RowId) + }; + if (territoryEntry.HasAetheryte) + { + list.Add(territoryEntry); + } + else + { + list2.Add(territoryEntry); + } + } + } + list.AddRange(list2); + return list; + } + + private List<LevelEntry> BuildLevelEntries() + { + ExcelSheet<ENpcBase> excelSheet = _dataManager.GetExcelSheet<ENpcBase>(); + ExcelSheet<EObj> excelSheet2 = _dataManager.GetExcelSheet<EObj>(); + List<LevelEntry> list = new List<LevelEntry>(); + foreach (Level item in _dataManager.GetExcelSheet<Level>()) + { + if (item.RowId != 0 && item.Object.RowId != 0 && item.Territory.IsValid && (excelSheet.HasRow(item.Object.RowId) || excelSheet2.HasRow(item.Object.RowId))) + { + list.Add(new LevelEntry + { + ObjectId = item.Object.RowId, + TerritoryId = (ushort)item.Territory.RowId, + X = item.X, + Y = item.Y, + Z = item.Z + }); + } + } + return list; + } + + private static void CleanupManifest(string path) + { + try + { + File.Delete(path); + } + catch + { + } + } +} diff --git a/Questionable/Questionable.Data/MenderDataService.cs b/Questionable/Questionable.Data/MenderDataService.cs index 1d4beab..8528aae 100644 --- a/Questionable/Questionable.Data/MenderDataService.cs +++ b/Questionable/Questionable.Data/MenderDataService.cs @@ -1,10 +1,6 @@ -using System; -using System.Collections; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Threading; using Dalamud.Plugin.Services; using LLib.Shop; using Lumina.Excel; @@ -22,229 +18,54 @@ internal sealed class MenderDataService(IDataManager dataManager, NpcPositionCac new MenderNpc(1004416u, 130, new Vector3(32.85266f, 6.999999f, -81.31531f)) }); - private readonly object _lock = _202D_200B_206C_206F_206B_202D_202D_200C_206E_200B_202C_202E_202B_202B_202E_202B_206C_200E_200F_200D_202D_200F_206F_202D_200B_206D_200C_202D_206C_202D_200E_206C_200E_202E_206B_206D_202A_202A_206B_202D_202E(); + private readonly object _lock = new object(); private ILookup<ushort, MenderNpc>? _byTerritory; public MenderNpc? FindNearestInTerritory(ushort territoryId, Vector3 nearPosition) { - object obj = _lock; - bool flag = false; ILookup<ushort, MenderNpc> lookup; - try + lock (_lock) { - _206B_206E_200F_206B_206C_202D_202D_200F_200D_200D_202E_200B_202A_206C_202C_206F_202A_200F_206C_202E_202C_206E_200F_206C_200E_206F_202E_200F_202E_206E_200B_200E_202E_206D_202D_202B_200B_200E_206A_206D_202E(obj, ref flag); - int num = ((_byTerritory != null) ? 669180943 : 669180941); - while (true) + if (_byTerritory == null && !npcPositionCache.IsBuilt) { - int num2 = num; - int num3 = 669180942; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 669180941; - break; - case 2: - return null; - case 3: - num = (_206C_206D_206D_202A_206C_206A_206F_202C_200B_202E_206D_200C_206F_202A_200C_202D_202D_202E_206E_200C_202D_206B_200D_202D_200F_202C_200B_206D_200C_206A_206B_202D_202D_200E_206B_202E_202B_206B_206B_206C_202E(npcPositionCache) ? 669180943 : 669180940); - break; - case 1: - lookup = _byTerritory ?? (_byTerritory = BuildIndex()); - goto end_IL_0041; - } - continue; - end_IL_0041: - break; - } - } - finally - { - int num = ((!flag) ? 242402811 : 242402808); - while (true) - { - int num7 = num; - int num3 = 242402810; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 242402808; - break; - case 2: - _206A_202A_206B_200D_200F_206D_200B_202A_200E_206C_202B_200D_200E_202B_206D_200D_202D_200C_206C_200F_206F_206A_206A_206C_200C_206C_206B_200C_206A_202B_206A_202D_206A_206E_206C_206D_200F_206D_200B_206B_202E(obj); - num = 242402811; - break; - case 1: - goto end_IL_00fd; - } - continue; - end_IL_00fd: - break; + return null; } + lookup = _byTerritory ?? (_byTerritory = BuildIndex()); } return lookup[territoryId].OrderBy((MenderNpc x) => Vector3.DistanceSquared(x.Position, nearPosition)).FirstOrDefault(); } - [MethodImpl(MethodImplOptions.NoInlining)] private ILookup<ushort, MenderNpc> BuildIndex() { ExcelSheet<ENpcBase> excelSheet = dataManager.GetExcelSheet<ENpcBase>(); List<MenderNpc> list = new List<MenderNpc>(); - IEnumerator<uint> enumerator = _200C_206D_202E_200C_202C_206C_200E_206C_206B_202C_200B_202B_206A_202C_206B_206E_202E_200E_202C_202D_202E_202B_206A_202D_200E_206C_206D_200C_202B_202C_202A_206B_200E_206E_200C_206C_200C_206A_206A_202E_202E(npcPositionCache).GetEnumerator(); - try + foreach (uint allNpcId in npcPositionCache.GetAllNpcIds()) { - int num = -898238961; - bool flag = default(bool); - int num5 = default(int); - (ushort, Vector3)? tuple = default((ushort, Vector3)?); - uint current = default(uint); - ENpcBase row = default(ENpcBase); - while (true) + if (!excelSheet.TryGetRow(allNpcId, out var row)) { - int num2 = num; - int num3 = -898238961; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + continue; + } + bool flag = false; + for (int i = 0; i < row.ENpcData.Count; i++) + { + if (row.ENpcData[i].RowId == 720915) { - case 5: - flag = false; - num5 = 0; - num = -898238963; - break; - case 8: - tuple = _202E_202B_206D_200C_200B_200E_206F_200C_202B_202D_206A_206A_206A_206D_206B_200D_206B_206F_206A_206C_200E_206C_200F_202E_202B_206A_200B_206E_200D_206D_206F_206D_206E_206E_206A_206D_200E_200E_206B_206D_202E(npcPositionCache, current); - num = ((!tuple.HasValue) ? (-898238961) : (-898238971)); - break; - case 3: - num = -898238961; - break; - case 9: - { - int num6 = num5; - num3 = 1; - num4 = num6; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - num5 = num7 + (num8 + num8); - num = -898238963; - break; - } - case 1: flag = true; - num = -898238967; - break; - case 0: - num = (_202D_202D_200C_200B_202B_206B_206E_206E_202B_206B_206D_206D_202A_206F_202C_200F_202E_206B_202A_206E_206A_200E_206F_200B_206B_200B_202A_200C_202E_200E_202C_206A_206F_206F_200D_206D_200B_200E_200C_202D_202E((IEnumerator)enumerator) ? (-898238965) : (-898238972)); - break; - case 4: - current = enumerator.Current; - num = ((!excelSheet.TryGetRow(current, out row)) ? (-898238961) : (-898238966)); - break; - case 2: - num = ((num5 < row.ENpcData.Count) ? (-898238968) : (-898238967)); - break; - case 6: - num = ((!flag) ? (-898238961) : (-898238969)); - break; - case 7: - num = ((row.ENpcData[num5].RowId != 720915) ? (-898238970) : (-898238962)); - break; - case 10: - { - (ushort, Vector3) valueOrDefault = tuple.GetValueOrDefault(); - list.Add(new MenderNpc(current, valueOrDefault.Item1, valueOrDefault.Item2)); - num = -898238961; break; } - case 11: - goto end_IL_0039; - } - continue; - end_IL_0039: - break; } - } - finally - { - int num = ((enumerator == null) ? (-506737452) : (-506737451)); - while (true) + if (flag) { - int num9 = num; - int num3 = -506737452; - int num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) + (ushort, Vector3)? position = npcPositionCache.GetPosition(allNpcId); + if (position.HasValue) { - case 2: - num = -506737451; - break; - case 0: - goto end_IL_023b; - case 1: - _206F_206B_206A_202C_200F_200D_206D_200B_202B_206A_202E_202E_200E_200C_200F_206C_202E_202E_206A_202B_200E_206A_206D_202E_206C_202A_206B_200D_202C_206B_202C_202C_202C_200D_206E_202B_202E_200E_206F_206B_202E((IDisposable)enumerator); - num = -506737452; - break; + (ushort, Vector3) valueOrDefault = position.GetValueOrDefault(); + list.Add(new MenderNpc(allNpcId, valueOrDefault.Item1, valueOrDefault.Item2)); } - continue; - end_IL_023b: - break; } } - _206D_206B_200C_206E_202E_200B_206B_202C_206A_202A_202E_200C_206A_200E_206C_202A_200B_206C_202B_202B_206C_206D_202D_206A_202D_206D_202B_206E_200B_206B_200B_206A_206D_200B_206C_206D_206A_200E_202B_206B_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1337223984), new object[2] - { - list.Count, - list.Select((MenderNpc x) => x.TerritoryId).Distinct().Count() - }); + logger.LogDebug("Mender index built with {Count} menders across {Territories} territories", list.Count, list.Select((MenderNpc x) => x.TerritoryId).Distinct().Count()); return list.ToLookup((MenderNpc x) => x.TerritoryId); } - - static object _202D_200B_206C_206F_206B_202D_202D_200C_206E_200B_202C_202E_202B_202B_202E_202B_206C_200E_200F_200D_202D_200F_206F_202D_200B_206D_200C_202D_206C_202D_200E_206C_200E_202E_206B_206D_202A_202A_206B_202D_202E() - { - return new object(); - } - - static void _206B_206E_200F_206B_206C_202D_202D_200F_200D_200D_202E_200B_202A_206C_202C_206F_202A_200F_206C_202E_202C_206E_200F_206C_200E_206F_202E_200F_202E_206E_200B_200E_202E_206D_202D_202B_200B_200E_206A_206D_202E(object P_0, ref bool P_1) - { - Monitor.Enter(P_0, ref P_1); - } - - static bool _206C_206D_206D_202A_206C_206A_206F_202C_200B_202E_206D_200C_206F_202A_200C_202D_202D_202E_206E_200C_202D_206B_200D_202D_200F_202C_200B_206D_200C_206A_206B_202D_202D_200E_206B_202E_202B_206B_206B_206C_202E(NpcPositionCache P_0) - { - return P_0.IsBuilt; - } - - static void _206A_202A_206B_200D_200F_206D_200B_202A_200E_206C_202B_200D_200E_202B_206D_200D_202D_200C_206C_200F_206F_206A_206A_206C_200C_206C_206B_200C_206A_202B_206A_202D_206A_206E_206C_206D_200F_206D_200B_206B_202E(object P_0) - { - Monitor.Exit(P_0); - } - - static IReadOnlyCollection<uint> _200C_206D_202E_200C_202C_206C_200E_206C_206B_202C_200B_202B_206A_202C_206B_206E_202E_200E_202C_202D_202E_202B_206A_202D_200E_206C_206D_200C_202B_202C_202A_206B_200E_206E_200C_206C_200C_206A_206A_202E_202E(NpcPositionCache P_0) - { - return P_0.GetAllNpcIds(); - } - - static (ushort, Vector3)? _202E_202B_206D_200C_200B_200E_206F_200C_202B_202D_206A_206A_206A_206D_206B_200D_206B_206F_206A_206C_200E_206C_200F_202E_202B_206A_200B_206E_200D_206D_206F_206D_206E_206E_206A_206D_200E_200E_206B_206D_202E(NpcPositionCache P_0, uint P_1) - { - return P_0.GetPosition(P_1); - } - - static bool _202D_202D_200C_200B_202B_206B_206E_206E_202B_206B_206D_206D_202A_206F_202C_200F_202E_206B_202A_206E_206A_200E_206F_200B_206B_200B_202A_200C_202E_200E_202C_206A_206F_206F_200D_206D_200B_200E_200C_202D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206F_206B_206A_202C_200F_200D_206D_200B_202B_206A_202E_202E_200E_200C_200F_206C_202E_202E_206A_202B_200E_206A_206D_202E_206C_202A_206B_200D_202C_206B_202C_202C_202C_200D_206E_202B_202E_200E_206F_206B_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _206D_206B_200C_206E_202E_200B_206B_202C_206A_202A_202E_200C_206A_200E_206C_202A_200B_206C_202B_202B_206C_206D_202D_206A_202D_206D_202B_206E_200B_206B_200B_206A_206D_200B_206C_206D_206A_200E_202B_206B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } } diff --git a/Questionable/Questionable.Data/MenderNpc.cs b/Questionable/Questionable.Data/MenderNpc.cs index 32dd727..5d28621 100644 --- a/Questionable/Questionable.Data/MenderNpc.cs +++ b/Questionable/Questionable.Data/MenderNpc.cs @@ -1,142 +1,5 @@ -using System; -using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; namespace Questionable.Data; -internal sealed record MenderNpc(uint DataId, ushort TerritoryId, Vector3 Position) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202C_202D_202A_202B_202C_202C_200D_202A_200B_206A_206A_200F_200F_200D_200D_202B_200D_200F_202B_206E_200D_202A_200C_206C_200F_200E_206E_202B_202A_202E_202E_200E_200E_200B_206C_202E_200B_200C_200F_200D_202E(typeof(MenderNpc).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206B_200B_200E_200B_202E_200F_206D_202E_206A_206F_206F_202A_206D_200D_206C_206F_206B_202C_206D_202A_202E_206D_206B_206C_206F_206E_206C_202E_200D_200F_206A_200E_200F_206C_202C_206C_200E_200C_200B_206E_202E(); - _202D_200B_206F_206D_200F_202C_200B_206F_206F_206E_200E_206B_206F_202C_200C_202A_202A_200E_202A_200E_202B_200C_206B_200B_202D_206C_202B_200E_206A_202D_200B_202C_206A_202E_202A_206C_206E_202B_200F_206B_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2011938778)); - _202D_200B_206F_206D_200F_202C_200B_206F_206F_206E_200E_206B_206F_202C_200C_202A_202A_200E_202A_200E_202B_200C_206B_200B_202D_206C_202B_200E_206A_202D_200B_202C_206A_202E_202A_206C_206E_202B_200F_206B_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1344697862)); - int num = ((!PrintMembers(stringBuilder)) ? 1620281513 : 1620281514); - while (true) - { - int num2 = num; - int num3 = 1620281515; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1620281514; - break; - case 2: - _206B_206C_202A_202C_202A_202D_202E_200C_202D_206C_200C_206B_206F_202B_206A_200D_206F_206F_202D_200D_200B_200F_200C_206E_200E_206A_200F_206F_200B_200D_206D_206E_202E_206D_206F_206E_202C_200B_200D_202E_202E(stringBuilder, '}'); - return _206C_206D_202B_200F_200B_202D_200D_200D_206E_202E_202B_202E_200B_200F_206A_202B_200E_202D_202B_206E_202D_206D_200E_202B_200C_202A_202E_200D_202C_206A_202C_206C_200C_200B_200B_206C_202E_200D_206A_206C_202E((object)stringBuilder); - case 1: - _206B_206C_202A_202C_202A_202D_202E_200C_202D_206C_200C_206B_206F_202B_206A_200D_206F_206F_202D_200D_200B_200F_200C_206E_200E_206A_200F_206F_200B_200D_206D_206E_202E_206D_206F_206E_202C_200B_200D_202E_202E(stringBuilder, ' '); - num = 1620281513; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202C_200D_206D_202E_202D_200C_200E_200B_206A_206C_202D_202C_200E_200E_200D_206E_200C_202D_202D_206F_200E_200B_200D_202D_206B_200C_202C_200C_206F_206B_202A_200B_200E_202D_206A_202E_200C_200D_206F_206B_202E(); - _202D_200B_206F_206D_200F_202C_200B_206F_206F_206E_200E_206B_206F_202C_200C_202A_202A_200E_202A_200E_202B_200C_206B_200B_202D_206C_202B_200E_206A_202D_200B_202C_206A_202E_202A_206C_206E_202B_200F_206B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(931106117)); - _202D_200B_206F_206D_200F_202C_200B_206F_206F_206E_200E_206B_206F_202C_200C_202A_202A_200E_202A_200E_202B_200C_206B_200B_202D_206C_202B_200E_206A_202D_200B_202C_206A_202E_202A_206C_206E_202B_200F_206B_202E(builder, DataId.ToString()); - _202D_200B_206F_206D_200F_202C_200B_206F_206F_206E_200E_206B_206F_202C_200C_202A_202A_200E_202A_200E_202B_200C_206B_200B_202D_206C_202B_200E_206A_202D_200B_202C_206A_202E_202A_206C_206E_202B_200F_206B_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1203255248)); - _202D_200B_206F_206D_200F_202C_200B_206F_206F_206E_200E_206B_206F_202C_200C_202A_202A_200E_202A_200E_202B_200C_206B_200B_202D_206C_202B_200E_206A_202D_200B_202C_206A_202E_202A_206C_206E_202B_200F_206B_202E(builder, TerritoryId.ToString()); - _202D_200B_206F_206D_200F_202C_200B_206F_206F_206E_200E_206B_206F_202C_200C_202A_202A_200E_202A_200E_202B_200C_206B_200B_202D_206C_202B_200E_206A_202D_200B_202C_206A_202E_202A_206C_206E_202B_200F_206B_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-485383452)); - _202D_200B_206F_206D_200F_202C_200B_206F_206F_206E_200E_206B_206F_202C_200C_202A_202A_200E_202A_200E_202B_200C_206B_200B_202D_206C_202B_200E_206A_202D_200B_202C_206A_202E_202A_206C_206E_202B_200F_206B_202E(builder, Position.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(MenderNpc? other) - { - int num = (((object)this == other) ? (-1137408190) : (-1137408186)); - while (true) - { - int num2 = num; - int num3 = -1137408191; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - return EqualityComparer<Vector3>.Default.Equals(Position, other.Position); - case 7: - num = (((object)other == null) ? (-1137408192) : (-1137408185)); - break; - case 6: - num = ((!_202E_202B_202A_206A_202C_200F_206F_200B_200B_200F_202A_206A_200E_200E_200E_202D_202E_202B_206B_200E_206A_202D_206A_206B_206E_206D_206D_202E_206D_202A_206E_200E_200D_206F_206A_206D_200C_200E_206E_206E_202E(EqualityContract, other.EqualityContract)) ? (-1137408192) : (-1137408189)); - break; - case 1: - return false; - case 5: - num = -1137408186; - break; - case 2: - num = ((!EqualityComparer<uint>.Default.Equals(DataId, other.DataId)) ? (-1137408192) : (-1137408191)); - break; - case 0: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? (-1137408192) : (-1137408187)); - break; - case 3: - return true; - } - } - } - - bool IEquatable<MenderNpc>.Equals(MenderNpc? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202C_202D_202A_202B_202C_202C_200D_202A_200B_206A_206A_200F_200F_200D_200D_202B_200D_200F_202B_206E_200D_202A_200C_206C_200F_200E_206E_202B_202A_202E_202E_200E_200E_200B_206C_202E_200B_200C_200F_200D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206B_200B_200E_200B_202E_200F_206D_202E_206A_206F_206F_202A_206D_200D_206C_206F_206B_202C_206D_202A_202E_206D_206B_206C_206F_206E_206C_202E_200D_200F_206A_200E_200F_206C_202C_206C_200E_200C_200B_206E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202D_200B_206F_206D_200F_202C_200B_206F_206F_206E_200E_206B_206F_202C_200C_202A_202A_200E_202A_200E_202B_200C_206B_200B_202D_206C_202B_200E_206A_202D_200B_202C_206A_202E_202A_206C_206E_202B_200F_206B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206B_206C_202A_202C_202A_202D_202E_200C_202D_206C_200C_206B_206F_202B_206A_200D_206F_206F_202D_200D_200B_200F_200C_206E_200E_206A_200F_206F_200B_200D_206D_206E_202E_206D_206F_206E_202C_200B_200D_202E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206C_206D_202B_200F_200B_202D_200D_200D_206E_202E_202B_202E_200B_200F_206A_202B_200E_202D_202B_206E_202D_206D_200E_202B_200C_202A_202E_200D_202C_206A_202C_206C_200C_200B_200B_206C_202E_200D_206A_206C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202C_200D_206D_202E_202D_200C_200E_200B_206A_206C_202D_202C_200E_200E_200D_206E_200C_202D_202D_206F_200E_200B_200D_202D_206B_200C_202C_200C_206F_206B_202A_200B_200E_202D_206A_202E_200C_200D_206F_206B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _202E_202B_202A_206A_202C_200F_206F_200B_200B_200F_202A_206A_200E_200E_200E_202D_202E_202B_206B_200E_206A_202D_206A_206B_206E_206D_206D_202E_206D_202A_206E_200E_200D_206F_206A_206D_200C_200E_206E_206E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +internal sealed record MenderNpc(uint DataId, ushort TerritoryId, Vector3 Position); diff --git a/Questionable/Questionable.Data/NpcPositionCacheWarmer.cs b/Questionable/Questionable.Data/NpcPositionCacheWarmer.cs index c4e7474..9b8ef7a 100644 --- a/Questionable/Questionable.Data/NpcPositionCacheWarmer.cs +++ b/Questionable/Questionable.Data/NpcPositionCacheWarmer.cs @@ -1,6 +1,7 @@ using System; -using System.Runtime.CompilerServices; using System.Threading; +using Dalamud.Plugin; +using Dalamud.Plugin.Services; using LLib.Shop; using Microsoft.Extensions.Logging; using SmartNav; @@ -10,203 +11,65 @@ namespace Questionable.Data; internal sealed class NpcPositionCacheWarmer : IDisposable { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass2_0 - { - public NpcPositionCache npcPositionCache; - - public NpcPositionCacheWarmer _003C_003E4__this; - - public WarpDataService warpDataService; - - public NavRouter navRouter; - - public ILogger<NpcPositionCacheWarmer> logger; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal void _003C_002Ector_003Eb__0() - { - try - { - _200C_206B_200C_200D_202B_200D_200C_206F_200E_200B_206F_200F_206B_206A_202B_206B_200F_200D_200B_202C_206D_200F_200D_202E_200C_206F_202E_202B_202D_206A_206C_202D_200F_202E_200E_200F_200C_206E_206F_200D_202E(npcPositionCache, _206D_206C_200B_200B_206A_206C_200C_206F_200C_202D_206E_202D_206D_200B_206A_202B_200D_206B_206D_206A_200C_200F_200F_202C_200D_206F_200E_206B_206B_200B_200C_206B_206A_200C_200E_202B_206F_200E_200B_206A_202E(_003C_003E4__this._cts)); - int num = ((!_202A_202B_206C_200C_206A_200F_202B_202D_200C_200B_206D_202C_206D_206D_202A_206F_200C_206E_202E_206A_206E_202E_206B_206E_200B_202B_200E_202D_200D_206F_200C_206C_200B_200D_200D_200C_206A_206D_200F_200F_202E(warpDataService)) ? 2029447289 : 2029447288); - while (true) - { - int num2 = num; - int num3 = 2029447289; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 2029447288; - break; - case 1: - _206A_200B_206D_206D_202B_200D_206D_206C_200D_200F_206C_200D_202E_206C_206C_206F_200C_200B_206F_206C_206A_206E_206A_206D_200D_200F_202A_202A_200E_202A_200F_206C_206D_206C_202B_200D_200C_202B_202B_202E(navRouter); - _200F_200B_202D_200E_200E_200B_200D_202D_206A_200C_206F_202E_200B_202A_206C_206C_206C_200B_202C_206F_200F_202D_200F_200B_206D_200B_200C_206D_200D_202D_206D_206C_200C_206A_200C_206A_202D_206D_200F_202C_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1529690412), Array.Empty<object>()); - num = 2029447289; - break; - case 0: - return; - } - } - } - catch (OperationCanceledException) - { - } - catch (Exception ex2) - { - _206C_206D_206E_202A_200F_206A_202D_206C_206D_200F_206E_200D_206A_202A_200D_206A_206B_200F_206A_200D_206F_206C_206D_202D_200E_202B_202B_200C_206D_206F_202A_202A_202D_206E_200B_206F_200E_200B_200E_200E_202E((ILogger)logger, ex2, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-5610293), Array.Empty<object>()); - } - } - - static CancellationToken _206D_206C_200B_200B_206A_206C_200C_206F_200C_202D_206E_202D_206D_200B_206A_202B_200D_206B_206D_206A_200C_200F_200F_202C_200D_206F_200E_206B_206B_200B_200C_206B_206A_200C_200E_202B_206F_200E_200B_206A_202E(CancellationTokenSource P_0) - { - return P_0.Token; - } - - static void _200C_206B_200C_200D_202B_200D_200C_206F_200E_200B_206F_200F_206B_206A_202B_206B_200F_200D_200B_202C_206D_200F_200D_202E_200C_206F_202E_202B_202D_206A_206C_202D_200F_202E_200E_200F_200C_206E_206F_200D_202E(NpcPositionCache P_0, CancellationToken P_1) - { - P_0.WarmUp(P_1); - } - - static bool _202A_202B_206C_200C_206A_200F_202B_202D_200C_200B_206D_202C_206D_206D_202A_206F_200C_206E_202E_206A_206E_202E_206B_206E_200B_202B_200E_202D_200D_206F_200C_206C_200B_200D_200D_200C_206A_206D_200F_200F_202E(WarpDataService P_0) - { - return P_0.ApplyDerivedSources(); - } - - static void _206A_200B_206D_206D_202B_200D_206D_206C_200D_200F_206C_200D_202E_206C_206C_206F_200C_200B_206F_206C_206A_206E_206A_206D_200D_200F_202A_202A_200E_202A_200F_206C_206D_206C_202B_200D_200C_202B_202B_202E(NavRouter P_0) - { - P_0.InvalidateStaticGraph(); - } - - static void _200F_200B_202D_200E_200E_200B_200D_202D_206A_200C_206F_202E_200B_202A_206C_206C_206C_200B_202C_206F_200F_202D_200F_200B_206D_200B_200C_206D_200D_202D_206D_206C_200C_206A_200C_206A_202D_206D_200F_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static void _206C_206D_206E_202A_200F_206A_202D_206C_206D_200F_206E_200D_206A_202A_200D_206A_206B_200F_206A_200D_206F_206C_206D_202D_200E_202B_202B_200C_206D_206F_202A_202A_202D_206E_200B_206F_200E_200B_200E_200E_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - } - - private readonly CancellationTokenSource _cts = _206C_206D_202E_202B_202B_200F_202D_206B_206C_202B_200B_206B_202D_202C_206D_206A_202E_202B_202C_202B_206E_206D_206F_206E_200F_202C_206B_200C_206D_202E_202C_206A_202A_200D_206D_206F_202D_206E_206D_200D_202E(); + private readonly CancellationTokenSource _cts = new CancellationTokenSource(); private readonly Thread? _thread; - [MethodImpl(MethodImplOptions.NoInlining)] - public NpcPositionCacheWarmer(NpcPositionCache npcPositionCache, WarpDataService warpDataService, NavRouter navRouter, ILogger<NpcPositionCacheWarmer> logger) + public NpcPositionCacheWarmer(NpcPositionCache npcPositionCache, WarpDataService warpDataService, NavRouter navRouter, LgbWorkerSupervisor workerSupervisor, IDalamudPluginInterface pluginInterface, IDataManager dataManager, NpcPositionCacheOptions cacheOptions, ILogger<NpcPositionCacheWarmer> logger) { NpcPositionCacheWarmer npcPositionCacheWarmer = this; - if (_200F_202E_206E_202D_200D_200E_200B_200E_200E_202A_206F_206C_202A_202A_200F_206E_202A_206C_202A_200D_200C_206D_202E_200B_202E_200E_202C_202A_206D_200B_206F_206F_206E_202E_200D_202B_206C_200E_202B_202E(npcPositionCache)) + if (npcPositionCache.IsBuilt) { return; } - Thread thread = _206C_206C_202E_206A_200B_200D_200B_200E_200B_206D_200F_206F_200B_200E_200C_200D_200E_206F_206F_206C_200B_200C_206B_206B_202D_200E_206F_200E_202A_202C_206C_206E_206F_206D_202B_200E_200C_202B_206B_202C_202E((ThreadStart)([MethodImpl(MethodImplOptions.NoInlining)] () => + _thread = new Thread((ThreadStart)delegate { try { - _003C_003Ec__DisplayClass2_0._200C_206B_200C_200D_202B_200D_200C_206F_200E_200B_206F_200F_206B_206A_202B_206B_200F_200D_200B_202C_206D_200F_200D_202E_200C_206F_202E_202B_202D_206A_206C_202D_200F_202E_200E_200F_200C_206E_206F_200D_202E(npcPositionCache, _003C_003Ec__DisplayClass2_0._206D_206C_200B_200B_206A_206C_200C_206F_200C_202D_206E_202D_206D_200B_206A_202B_200D_206B_206D_206A_200C_200F_200F_202C_200D_206F_200E_206B_206B_200B_200C_206B_206A_200C_200E_202B_206F_200E_200B_206A_202E(npcPositionCacheWarmer._cts)); - int num = ((!_003C_003Ec__DisplayClass2_0._202A_202B_206C_200C_206A_200F_202B_202D_200C_200B_206D_202C_206D_206D_202A_206F_200C_206E_202E_206A_206E_202E_206B_206E_200B_202B_200E_202D_200D_206F_200C_206C_200B_200D_200D_200C_206A_206D_200F_200F_202E(warpDataService)) ? 2029447289 : 2029447288); - while (true) + bool flag = false; + string fullName = dataManager.GameData.DataPath.FullName; + string gameVersion = cacheOptions.GameVersion; + string cacheDirectory = cacheOptions.CacheDirectory; + string directoryName = pluginInterface.AssemblyLocation.DirectoryName; + if (fullName != null && gameVersion != null && cacheDirectory != null && directoryName != null) { - int num2 = num; - int num3 = 2029447289; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + flag = workerSupervisor.RunWorker(fullName, gameVersion, cacheDirectory, directoryName, npcPositionCacheWarmer._cts.Token); + if (flag) { - case 2: - num = 2029447288; - break; - case 1: - _003C_003Ec__DisplayClass2_0._206A_200B_206D_206D_202B_200D_206D_206C_200D_200F_206C_200D_202E_206C_206C_206F_200C_200B_206F_206C_206A_206E_206A_206D_200D_200F_202A_202A_200E_202A_200F_206C_206D_206C_202B_200D_200C_202B_202B_202E(navRouter); - _003C_003Ec__DisplayClass2_0._200F_200B_202D_200E_200E_200B_200D_202D_206A_200C_206F_202E_200B_202A_206C_206C_206C_200B_202C_206F_200F_202D_200F_200B_206D_200B_200C_206D_200D_202D_206D_206C_200C_206A_200C_206A_202D_206D_200F_202C_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1529690412), Array.Empty<object>()); - num = 2029447289; - break; - case 0: - return; + npcPositionCache.TryLoadFromDisk(); } } + if (!flag) + { + logger.LogInformation("Falling back to in-process LGB scan"); + npcPositionCache.WarmUp(npcPositionCacheWarmer._cts.Token); + } + if (warpDataService.ApplyDerivedSources()) + { + navRouter.InvalidateStaticGraph(); + logger.LogInformation("Applied derived warp sources after NPC position warm-up"); + } } catch (OperationCanceledException) { } - catch (Exception ex2) + catch (Exception exception) { - _003C_003Ec__DisplayClass2_0._206C_206D_206E_202A_200F_206A_202D_206C_206D_200F_206E_200D_206A_202A_200D_206A_206B_200F_206A_200D_206F_206C_206D_202D_200E_202B_202B_200C_206D_206F_202A_202A_202D_206E_200B_206F_200E_200B_200E_200E_202E((ILogger)logger, ex2, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-5610293), Array.Empty<object>()); + logger.LogError(exception, "NPC position cache warm-up failed"); } - })); - _202E_202A_200F_200E_202B_200F_200E_200B_202D_200F_206C_206D_202C_206E_202A_202C_202A_206C_200F_206B_200F_206F_206F_206F_206C_206B_206C_206D_206A_202C_200C_200C_200F_206D_206A_202C_202D_202A_206D_206A_202E(thread, true); - _206A_202B_202C_200E_200F_206B_200B_206F_202B_202A_206F_202B_206E_206D_206F_206B_206F_206F_206A_206F_206F_200B_200C_200D_200D_202C_206C_200E_202C_202A_202A_200C_202B_206F_206B_206E_206D_206E_202E_200D_202E(thread, ThreadPriority.BelowNormal); - _202B_206D_200D_206D_206B_202C_200D_202B_206A_206A_202C_202A_200E_202A_202D_200C_206E_200F_206D_206A_200B_200C_206E_206B_206B_200D_206C_200B_206B_206A_202C_202A_206E_206F_200D_206A_206B_200C_200E_202E_202E(thread, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(277884647)); - _thread = thread; - _206D_200E_206A_200C_202B_202A_200F_202D_200C_206C_206C_200B_200B_206A_206D_206E_202D_202E_206A_200F_202A_202D_202B_200D_206C_200C_206F_200D_200B_206B_200C_200D_202A_202D_200C_200C_202A_206B_206E_200D_202E(_thread); + }) + { + IsBackground = true, + Priority = ThreadPriority.BelowNormal, + Name = "Questionable.NpcPositionCacheWarmer" + }; + _thread.Start(); } public void Dispose() { - _200D_206C_206C_200B_200D_202E_202D_206D_200D_202B_206E_202E_206B_200D_202A_200B_200B_200F_202E_202B_200B_206D_202E_206C_200C_200F_206D_202A_202B_202B_200F_202D_206E_202D_202E_202B_202B_200C_206B_200D_202E(_cts); - Thread? thread = _thread; - if (thread != null) - { - _206B_206B_200B_200F_206B_206D_202A_200E_206C_206C_206B_206C_206D_200C_206A_206E_200C_206A_202C_200D_202D_206C_206A_206A_202D_206B_202B_200C_206E_200D_202B_206F_200D_200B_202A_206E_206E_200B_200F_206A_202E(thread, TimeSpan.FromSeconds(1L)); - } - _206D_200D_202E_202D_200B_200C_202D_202E_202E_206E_206E_202A_200E_206F_206C_206A_202B_200B_206E_206F_200E_200B_200F_206E_200B_202B_206C_202A_206B_202A_200D_202A_206F_206A_202D_200D_200D_200D_202A_202B_202E(_cts); - } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static CancellationTokenSource _206C_206D_202E_202B_202B_200F_202D_206B_206C_202B_200B_206B_202D_202C_206D_206A_202E_202B_202C_202B_206E_206D_206F_206E_200F_202C_206B_200C_206D_202E_202C_206A_202A_200D_206D_206F_202D_206E_206D_200D_202E() - { - return new CancellationTokenSource(); - } - - static bool _200F_202E_206E_202D_200D_200E_200B_200E_200E_202A_206F_206C_202A_202A_200F_206E_202A_206C_202A_200D_200C_206D_202E_200B_202E_200E_202C_202A_206D_200B_206F_206F_206E_202E_200D_202B_206C_200E_202B_202E(NpcPositionCache P_0) - { - return P_0.IsBuilt; - } - - static Thread _206C_206C_202E_206A_200B_200D_200B_200E_200B_206D_200F_206F_200B_200E_200C_200D_200E_206F_206F_206C_200B_200C_206B_206B_202D_200E_206F_200E_202A_202C_206C_206E_206F_206D_202B_200E_200C_202B_206B_202C_202E(ThreadStart P_0) - { - return new Thread(P_0); - } - - static void _202E_202A_200F_200E_202B_200F_200E_200B_202D_200F_206C_206D_202C_206E_202A_202C_202A_206C_200F_206B_200F_206F_206F_206F_206C_206B_206C_206D_206A_202C_200C_200C_200F_206D_206A_202C_202D_202A_206D_206A_202E(Thread P_0, bool P_1) - { - P_0.IsBackground = P_1; - } - - static void _206A_202B_202C_200E_200F_206B_200B_206F_202B_202A_206F_202B_206E_206D_206F_206B_206F_206F_206A_206F_206F_200B_200C_200D_200D_202C_206C_200E_202C_202A_202A_200C_202B_206F_206B_206E_206D_206E_202E_200D_202E(Thread P_0, ThreadPriority P_1) - { - P_0.Priority = P_1; - } - - static void _202B_206D_200D_206D_206B_202C_200D_202B_206A_206A_202C_202A_200E_202A_202D_200C_206E_200F_206D_206A_200B_200C_206E_206B_206B_200D_206C_200B_206B_206A_202C_202A_206E_206F_200D_206A_206B_200C_200E_202E_202E(Thread P_0, string P_1) - { - P_0.Name = P_1; - } - - static void _206D_200E_206A_200C_202B_202A_200F_202D_200C_206C_206C_200B_200B_206A_206D_206E_202D_202E_206A_200F_202A_202D_202B_200D_206C_200C_206F_200D_200B_206B_200C_200D_202A_202D_200C_200C_202A_206B_206E_200D_202E(Thread P_0) - { - P_0.Start(); - } - - static void _200D_206C_206C_200B_200D_202E_202D_206D_200D_202B_206E_202E_206B_200D_202A_200B_200B_200F_202E_202B_200B_206D_202E_206C_200C_200F_206D_202A_202B_202B_200F_202D_206E_202D_202E_202B_202B_200C_206B_200D_202E(CancellationTokenSource P_0) - { - P_0.Cancel(); - } - - static bool _206B_206B_200B_200F_206B_206D_202A_200E_206C_206C_206B_206C_206D_200C_206A_206E_200C_206A_202C_200D_202D_206C_206A_206A_202D_206B_202B_200C_206E_200D_202B_206F_200D_200B_202A_206E_206E_200B_200F_206A_202E(Thread P_0, TimeSpan P_1) - { - return P_0.Join(P_1); - } - - static void _206D_200D_202E_202D_200B_200C_202D_202E_202E_206E_206E_202A_200E_206F_206C_206A_202B_200B_206E_206F_200E_200B_200F_206E_200B_202B_206C_202A_206B_202A_200D_202A_206F_206A_202D_200D_200D_200D_202A_202B_202E(CancellationTokenSource P_0) - { - P_0.Dispose(); + _cts.Cancel(); + _thread?.Join(TimeSpan.FromSeconds(1L)); + _cts.Dispose(); } } diff --git a/Questionable/Questionable.Data/QuestChain.cs b/Questionable/Questionable.Data/QuestChain.cs index 7e71b3e..3755deb 100644 --- a/Questionable/Questionable.Data/QuestChain.cs +++ b/Questionable/Questionable.Data/QuestChain.cs @@ -1,147 +1,6 @@ -using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Questionable.Model.Questing; namespace Questionable.Data; -internal sealed record QuestChain(List<QuestId> Ancestors, List<QuestId> Descendants, QuestId SelectedQuest) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206F_200D_202C_206B_200E_200B_200E_206E_206D_202C_202E_200F_202B_206E_200F_202D_206D_202E_206F_200C_206F_200F_202C_200F_206B_200F_206A_206C_206B_206B_200D_206F_206D_202A_200E_200E_200B_206D_202D_200F_202E(typeof(QuestChain).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202A_206F_206F_206C_206E_206E_200C_202D_202B_206E_202E_206D_206A_202D_206D_200F_202D_200F_200C_200C_202A_206E_200B_202A_202C_202A_202A_200C_200C_206E_202D_206D_202A_202E_206F_200B_200E_202B_206C_206E_202E(); - _206B_206B_202A_200F_200D_206E_206B_202B_202B_200D_200E_200F_206E_206C_206C_200F_202E_206E_202A_200B_206A_202A_206C_202A_206B_206C_206F_200E_206A_200D_200B_200C_200D_206D_200E_206D_206D_200C_206D_202D_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(506864596)); - _206B_206B_202A_200F_200D_206E_206B_202B_202B_200D_200E_200F_206E_206C_206C_200F_202E_206E_202A_200B_206A_202A_206C_202A_206B_206C_206F_200E_206A_200D_200B_200C_200D_206D_200E_206D_206D_200C_206D_202D_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125)); - int num = ((!PrintMembers(stringBuilder)) ? (-121163571) : (-121163570)); - while (true) - { - int num2 = num; - int num3 = -121163569; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -121163570; - break; - case 1: - _206F_202C_206D_202C_202B_206C_206C_202C_206F_202C_200E_200B_200E_202A_202C_206F_200C_206C_200B_206B_200C_200F_206F_202E_206D_200B_206F_200E_200E_206F_202A_200B_202A_200F_206A_206C_202D_202E_206E_202C_202E(stringBuilder, ' '); - num = -121163571; - break; - case 2: - _206F_202C_206D_202C_202B_206C_206C_202C_206F_202C_200E_200B_200E_202A_202C_206F_200C_206C_200B_206B_200C_200F_206F_202E_206D_200B_206F_200E_200E_206F_202A_200B_202A_200F_206A_206C_202D_202E_206E_202C_202E(stringBuilder, '}'); - return _206A_200D_202E_200E_202C_202E_200F_200C_202E_206F_200E_202D_200C_202D_202B_202C_200E_202C_206A_206E_206A_202C_200B_202E_200B_206B_206D_200F_206A_200F_206D_202D_200F_202E_206A_206A_200C_206F_202E_206C_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200D_206E_206F_202A_200E_206E_206F_200E_202A_206D_206A_200B_202E_206A_206F_200B_206A_206B_200E_200C_206F_202B_206F_202D_200B_200F_200C_200B_202D_202A_200B_202B_202C_202A_202B_202A_200C_202E_202E_202E_202E(); - _206B_206B_202A_200F_200D_206E_206B_202B_202B_200D_200E_200F_206E_206C_206C_200F_202E_206E_202A_200B_206A_202A_206C_202A_206B_206C_206F_200E_206A_200D_200B_200C_200D_206D_200E_206D_206D_200C_206D_202D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1980341055)); - _200C_200F_206D_206D_200E_206A_206D_200D_202B_206E_200B_200B_206B_206B_202D_200C_200B_200F_202C_202D_200E_202D_206D_202B_202C_200D_200D_200D_206E_202E_202E_200C_206A_206F_202B_202A_202D_206A_200F_202D_202E(builder, (object)Ancestors); - _206B_206B_202A_200F_200D_206E_206B_202B_202B_200D_200E_200F_206E_206C_206C_200F_202E_206E_202A_200B_206A_202A_206C_202A_206B_206C_206F_200E_206A_200D_200B_200C_200D_206D_200E_206D_206D_200C_206D_202D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1369107064)); - _200C_200F_206D_206D_200E_206A_206D_200D_202B_206E_200B_200B_206B_206B_202D_200C_200B_200F_202C_202D_200E_202D_206D_202B_202C_200D_200D_200D_206E_202E_202E_200C_206A_206F_202B_202A_202D_206A_200F_202D_202E(builder, (object)Descendants); - _206B_206B_202A_200F_200D_206E_206B_202B_202B_200D_200E_200F_206E_206C_206C_200F_202E_206E_202A_200B_206A_202A_206C_202A_206B_206C_206F_200E_206A_200D_200B_200C_200D_206D_200E_206D_206D_200C_206D_202D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1311174638)); - _200C_200F_206D_206D_200E_206A_206D_200D_202B_206E_200B_200B_206B_206B_202D_200C_200B_200F_202C_202D_200E_202D_206D_202B_202C_200D_200D_200D_206E_202E_202E_200C_206A_206F_202B_202A_202D_206A_200F_202D_202E(builder, (object)SelectedQuest); - return true; - } - - [CompilerGenerated] - public bool Equals(QuestChain? other) - { - int num = (((object)this == other) ? 148556136 : 148556142); - while (true) - { - int num2 = num; - int num3 = 148556137; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = ((!_200E_200C_206D_206C_200D_206C_206E_202C_202C_206C_206E_206C_202E_200F_200F_200D_202D_202E_202E_202D_200D_200F_206B_200E_200E_206E_202A_202D_200D_202A_202B_206F_206D_200C_200D_206B_206C_200F_202E_206D_202E(EqualityContract, other.EqualityContract)) ? 148556141 : 148556140); - break; - case 0: - return EqualityComparer<QuestId>.Default.Equals(SelectedQuest, other.SelectedQuest); - case 1: - return true; - case 6: - num = ((!EqualityComparer<List<QuestId>>.Default.Equals(Descendants, other.Descendants)) ? 148556141 : 148556137); - break; - case 4: - return false; - case 5: - num = ((!EqualityComparer<List<QuestId>>.Default.Equals(Ancestors, other.Ancestors)) ? 148556141 : 148556143); - break; - case 7: - num = (((object)other == null) ? 148556141 : 148556138); - break; - case 2: - num = 148556142; - break; - } - } - } - - bool IEquatable<QuestChain>.Equals(QuestChain? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206F_200D_202C_206B_200E_200B_200E_206E_206D_202C_202E_200F_202B_206E_200F_202D_206D_202E_206F_200C_206F_200F_202C_200F_206B_200F_206A_206C_206B_206B_200D_206F_206D_202A_200E_200E_200B_206D_202D_200F_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202A_206F_206F_206C_206E_206E_200C_202D_202B_206E_202E_206D_206A_202D_206D_200F_202D_200F_200C_200C_202A_206E_200B_202A_202C_202A_202A_200C_200C_206E_202D_206D_202A_202E_206F_200B_200E_202B_206C_206E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206B_206B_202A_200F_200D_206E_206B_202B_202B_200D_200E_200F_206E_206C_206C_200F_202E_206E_202A_200B_206A_202A_206C_202A_206B_206C_206F_200E_206A_200D_200B_200C_200D_206D_200E_206D_206D_200C_206D_202D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206F_202C_206D_202C_202B_206C_206C_202C_206F_202C_200E_200B_200E_202A_202C_206F_200C_206C_200B_206B_200C_200F_206F_202E_206D_200B_206F_200E_200E_206F_202A_200B_202A_200F_206A_206C_202D_202E_206E_202C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206A_200D_202E_200E_202C_202E_200F_200C_202E_206F_200E_202D_200C_202D_202B_202C_200E_202C_206A_206E_206A_202C_200B_202E_200B_206B_206D_200F_206A_200F_206D_202D_200F_202E_206A_206A_200C_206F_202E_206C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200D_206E_206F_202A_200E_206E_206F_200E_202A_206D_206A_200B_202E_206A_206F_200B_206A_206B_200E_200C_206F_202B_206F_202D_200B_200F_200C_200B_202D_202A_200B_202B_202C_202A_202B_202A_200C_202E_202E_202E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200C_200F_206D_206D_200E_206A_206D_200D_202B_206E_200B_200B_206B_206B_202D_200C_200B_200F_202C_202D_200E_202D_206D_202B_202C_200D_200D_200D_206E_202E_202E_200C_206A_206F_202B_202A_202D_206A_200F_202D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200E_200C_206D_206C_200D_206C_206E_202C_202C_206C_206E_206C_202E_200F_200F_200D_202D_202E_202E_202D_200D_200F_206B_200E_200E_206E_202A_202D_200D_202A_202B_206F_206D_200C_200D_206B_206C_200F_202E_206D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +internal sealed record QuestChain(List<QuestId> Ancestors, List<QuestId> Descendants, QuestId SelectedQuest); diff --git a/Questionable/Questionable.Data/QuestChainBuilder.cs b/Questionable/Questionable.Data/QuestChainBuilder.cs index 6bf927d..0ea8f77 100644 --- a/Questionable/Questionable.Data/QuestChainBuilder.cs +++ b/Questionable/Questionable.Data/QuestChainBuilder.cs @@ -1,9 +1,5 @@ -using System; -using System.Collections; using System.Collections.Generic; -using System.Collections.Immutable; using System.Linq; -using System.Runtime.CompilerServices; using Questionable.Model; using Questionable.Model.Questing; @@ -11,25 +7,6 @@ namespace Questionable.Data; internal sealed class QuestChainBuilder { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Comparison<QuestId> _003C_003E9__6_1; - - internal int _003CGetChainGraph_003Eb__6_1(QuestId a, QuestId b) - { - return _200D_202A_200B_200D_202E_206E_202C_206E_200E_206E_200D_206A_200F_202B_206B_206F_200C_202C_206D_202D_200C_200E_200E_202D_200F_200F_200F_200D_206A_206F_200D_202D_202E_206E_202D_206D_202E_200F_206C_200F_202E((ElementId)a).CompareTo(_200D_202A_200B_200D_202E_206E_202C_206E_200E_206E_200D_206A_200F_202B_206B_206F_200C_202C_206D_202D_200C_200E_200E_202D_200F_200F_200F_200D_206A_206F_200D_202D_202E_206E_202D_206D_202E_200F_206C_200F_202E((ElementId)b)); - } - - static ushort _200D_202A_200B_200D_202E_206E_202C_206E_200E_206E_200D_206A_200F_202B_206B_206F_200C_202C_206D_202D_200C_200E_200E_202D_200F_200F_200F_200D_206A_206F_200D_202D_202E_206E_202D_206D_202E_200F_206C_200F_202E(ElementId P_0) - { - return P_0.Value; - } - } - private readonly QuestData _questData; private readonly Dictionary<QuestId, List<QuestId>> _descendants = new Dictionary<QuestId, List<QuestId>>(); @@ -41,459 +18,127 @@ internal sealed class QuestChainBuilder public QuestChainBuilder(QuestData questData) { _questData = questData; - IEnumerator<KeyValuePair<ElementId, IQuestInfo>> enumerator = _questData.AllQuests.GetEnumerator(); - try + foreach (var (elementId2, questInfo2) in _questData.AllQuests) { - while (_206F_202C_206E_206F_200B_206E_202D_200E_200E_200B_206A_206D_206E_200E_200E_200D_202E_200E_202B_206E_202E_206A_200C_202E_202C_206E_206B_200D_206C_200D_202A_202D_206D_206E_206B_200F_206C_206B_206D_206C_202E((IEnumerator)enumerator)) + if (!(elementId2 is QuestId item)) { - var (elementId2, questInfo2) = (KeyValuePair<ElementId, IQuestInfo>)(ref enumerator.Current); - if (!(elementId2 is QuestId item)) - { - continue; - } - foreach (PreviousQuestInfo previousQuest in questInfo2.PreviousQuests) - { - if (!_descendants.TryGetValue(previousQuest.QuestId, out List<QuestId> value)) - { - value = new List<QuestId>(); - _descendants[previousQuest.QuestId] = value; - } - value.Add(item); - } + continue; } - } - finally - { - if (enumerator != null) + foreach (PreviousQuestInfo previousQuest in questInfo2.PreviousQuests) { - _206F_202E_206D_200E_206A_206C_202D_206E_206E_206E_206F_206B_200D_200C_200D_202B_202A_200E_202A_206B_202A_206A_206A_200C_206F_206F_206F_206A_200B_202A_202E_202D_200E_202B_206E_206E_206D_200E_206F_200C_202E((IDisposable)enumerator); + if (!_descendants.TryGetValue(previousQuest.QuestId, out List<QuestId> value)) + { + value = new List<QuestId>(); + _descendants[previousQuest.QuestId] = value; + } + value.Add(item); } } } public QuestChain GetChain(QuestId questId) { - QuestChain value; - int num = ((!_cache.TryGetValue(questId, out value)) ? (-1661948315) : (-1661948316)); - while (true) + if (_cache.TryGetValue(questId, out QuestChain value)) { - int num2 = num; - int num3 = -1661948315; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - { - List<QuestId> list = new List<QuestId>(); - CollectAncestors(questId, list, new HashSet<QuestId>()); - list.Add(questId); - List<QuestId> list2 = new List<QuestId>(); - CollectDescendants(questId, list2, new HashSet<QuestId>()); - QuestChain questChain = new QuestChain(list, list2, questId); - _cache[questId] = questChain; - return questChain; - } - case 1: - return value; - case 2: - goto IL_009e; - } - continue; - IL_009e: - num = -1661948316; + return value; } + List<QuestId> list = new List<QuestId>(); + CollectAncestors(questId, list, new HashSet<QuestId>()); + list.Add(questId); + List<QuestId> list2 = new List<QuestId>(); + CollectDescendants(questId, list2, new HashSet<QuestId>()); + QuestChain questChain = new QuestChain(list, list2, questId); + _cache[questId] = questChain; + return questChain; } public QuestChainGraph GetChainGraph(QuestId questId) { - int num = ((!_graphCache.TryGetValue(questId, out QuestChainGraph value)) ? 194094588 : 194094591); - Dictionary<QuestId, List<QuestId>> prerequisites; - PreviousQuestInfo current3 = default(PreviousQuestInfo); - QuestId current7 = default(QuestId); - int num11 = default(int); - QuestId current8 = default(QuestId); - int num21 = default(int); - int num19 = default(int); - List<List<QuestId>> list2 = default(List<List<QuestId>>); - while (true) + if (_graphCache.TryGetValue(questId, out QuestChainGraph value)) { - int num2 = num; - int num3 = 194094590; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_005d; - case 1: - return value; - case 2: - { - HashSet<QuestId> hashSet = new HashSet<QuestId>(); - CollectAllRelated(questId, hashSet); - prerequisites = new Dictionary<QuestId, List<QuestId>>(); - Dictionary<QuestId, List<QuestId>> dictionary = new Dictionary<QuestId, List<QuestId>>(); - using (HashSet<QuestId>.Enumerator enumerator = hashSet.GetEnumerator()) - { - num = 102426660; - while (true) - { - int num5 = num; - num3 = 102426662; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 102426660; - break; - case 2: - num = (enumerator.MoveNext() ? 102426661 : 102426663); - break; - case 3: - { - QuestId current = enumerator.Current; - prerequisites[current] = new List<QuestId>(); - dictionary[current] = new List<QuestId>(); - num = 102426660; - break; - } - case 1: - goto end_IL_009e; - } - continue; - end_IL_009e: - break; - } - } - foreach (QuestId item in hashSet) - { - if (!_questData.TryGetQuestInfo(item, out IQuestInfo questInfo)) - { - continue; - } - using ImmutableList<PreviousQuestInfo>.Enumerator enumerator2 = questInfo.PreviousQuests.GetEnumerator(); - num = 986674695; - while (true) - { - int num6 = num; - num3 = 986674692; - num4 = num6; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = (enumerator2.MoveNext() ? 986674694 : 986674693); - break; - case 4: - prerequisites[item].Add(current3.QuestId); - dictionary[current3.QuestId].Add(item); - num = 986674695; - break; - case 2: - current3 = enumerator2.Current; - num = ((!hashSet.Contains(current3.QuestId)) ? 986674695 : 986674688); - break; - case 0: - num = 986674695; - break; - case 1: - goto end_IL_0189; - } - continue; - end_IL_0189: - break; - } - } - Dictionary<QuestId, int> dictionary2 = new Dictionary<QuestId, int>(); - List<QuestId> list = hashSet.Where((QuestId q) => prerequisites[q].Count == 0).ToList(); - using (HashSet<QuestId>.Enumerator enumerator = hashSet.GetEnumerator()) - { - num = 1881646025; - while (true) - { - int num7 = num; - num3 = 1881646027; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = 1881646025; - break; - case 2: - num = (enumerator.MoveNext() ? 1881646026 : 1881646027); - break; - case 1: - { - QuestId current4 = enumerator.Current; - dictionary2[current4] = 0; - num = 1881646025; - break; - } - case 0: - goto end_IL_02bf; - } - continue; - end_IL_02bf: - break; - } - } - Dictionary<QuestId, int> dictionary3 = new Dictionary<QuestId, int>(); - using (HashSet<QuestId>.Enumerator enumerator = hashSet.GetEnumerator()) - { - num = -45802294; - while (true) - { - int num8 = num; - num3 = -45802293; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = (enumerator.MoveNext() ? (-45802295) : (-45802296)); - break; - case 2: - { - QuestId current5 = enumerator.Current; - dictionary3[current5] = prerequisites[current5].Count; - num = -45802294; - break; - } - case 0: - num = -45802294; - break; - case 3: - goto end_IL_036c; - } - continue; - end_IL_036c: - break; - } - } - Queue<QuestId> queue = new Queue<QuestId>(list); - using (List<QuestId>.Enumerator enumerator3 = list.GetEnumerator()) - { - num = 32820321; - while (true) - { - int num9 = num; - num3 = 32820322; - num4 = num9; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 32820321; - break; - case 3: - num = (enumerator3.MoveNext() ? 32820323 : 32820320); - break; - case 1: - { - QuestId current6 = enumerator3.Current; - dictionary2[current6] = 0; - num = 32820321; - break; - } - case 2: - goto end_IL_042d; - } - continue; - end_IL_042d: - break; - } - } - while (queue.Count > 0) - { - QuestId key = queue.Dequeue(); - using List<QuestId>.Enumerator enumerator3 = dictionary[key].GetEnumerator(); - num = -1942600016; - while (true) - { - int num10 = num; - num3 = -1942600013; - num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1942600016; - break; - case 4: - current7 = enumerator3.Current; - num11 = dictionary2[key] + 1; - num = ((num11 <= dictionary2[current7]) ? (-1942600011) : (-1942600013)); - break; - case 1: - queue.Enqueue(current7); - num = -1942600016; - break; - case 0: - dictionary2[current7] = num11; - num = -1942600011; - break; - case 6: - { - QuestId key2 = current7; - int num12 = dictionary3[key2]; - num3 = 1; - num4 = num12; - dictionary3[key2] = ~(~num4 + num3); - num = ((dictionary3[current7] != 0) ? (-1942600016) : (-1942600014)); - break; - } - case 3: - num = (enumerator3.MoveNext() ? (-1942600009) : (-1942600010)); - break; - case 5: - goto end_IL_04e3; - } - continue; - end_IL_04e3: - break; - } - } - using (HashSet<QuestId>.Enumerator enumerator = hashSet.GetEnumerator()) - { - num = -234574320; - while (true) - { - int num13 = num; - num3 = -234574318; - num4 = num13; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = (enumerator.MoveNext() ? (-234574314) : (-234574319)); - break; - case 4: - current8 = enumerator.Current; - num = (dictionary2.ContainsKey(current8) ? (-234574320) : (-234574317)); - break; - case 0: - num = -234574320; - break; - case 1: - dictionary2[current8] = 0; - num = -234574320; - break; - case 3: - goto end_IL_0638; - } - continue; - end_IL_0638: - break; - } - } - num = ((hashSet.Count > 0) ? (-2059298114) : (-2059298113)); - while (true) - { - int num14 = num; - num3 = -2059298115; - num4 = num14; - int num15 = num4 + num3; - int num16 = num4 & num3; - int num20; - switch (num15 - (num16 + num16)) - { - case 0: - num = ((num21 <= num19) ? (-2059298120) : (-2059298116)); - break; - case 2: - num20 = 0; - goto IL_07cb; - case 5: - { - list2.Add(new List<QuestId>()); - int num22 = num21; - num3 = 1; - num4 = num22; - int num23 = num4 ^ num3; - int num24 = num4 & num3; - num21 = num23 + (num24 + num24); - num = -2059298115; - break; - } - case 4: - num = -2059298113; - break; - case 3: - num20 = _202C_206A_200F_200D_202D_206C_200B_206B_206D_200B_206B_206E_202E_202A_206C_202C_206B_200E_206C_200E_200D_200D_202B_202C_202E_200F_206D_202A_206C_202C_206E_202E_200F_206F_200C_200C_200B_200E_206D_206F_202E((IEnumerable<int>)dictionary2.Values); - goto IL_07cb; - case 1: - { - using (HashSet<QuestId>.Enumerator enumerator = hashSet.GetEnumerator()) - { - num = -1078522335; - while (true) - { - int num17 = num; - num3 = -1078522335; - num4 = num17; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = (enumerator.MoveNext() ? (-1078522336) : (-1078522334)); - break; - case 1: - { - QuestId current9 = enumerator.Current; - list2[dictionary2[current9]].Add(current9); - num = -1078522335; - break; - } - case 2: - num = -1078522335; - break; - case 3: - goto end_IL_07f7; - } - continue; - end_IL_07f7: - break; - } - } - using (List<List<QuestId>>.Enumerator enumerator4 = list2.GetEnumerator()) - { - num = -1375899676; - while (true) - { - int num18 = num; - num3 = -1375899676; - num4 = num18; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = (enumerator4.MoveNext() ? (-1375899673) : (-1375899675)); - break; - case 3: - enumerator4.Current.Sort((QuestId a, QuestId b) => _003C_003Ec._200D_202A_200B_200D_202E_206E_202C_206E_200E_206E_200D_206A_200F_202B_206B_206F_200C_202C_206D_202D_200C_200E_200E_202D_200F_200F_200F_200D_206A_206F_200D_202D_202E_206E_202D_206D_202E_200F_206C_200F_202E((ElementId)a).CompareTo(_003C_003Ec._200D_202A_200B_200D_202E_206E_202C_206E_200E_206E_200D_206A_200F_202B_206B_206F_200C_202C_206D_202D_200C_200E_200E_202D_200F_200F_200F_200D_206A_206F_200D_202D_202E_206E_202D_206D_202E_200F_206C_200F_202E((ElementId)b))); - num = -1375899676; - break; - case 2: - num = -1375899676; - break; - case 1: - goto end_IL_08ab; - } - continue; - end_IL_08ab: - break; - } - } - QuestChainGraph questChainGraph = new QuestChainGraph(prerequisites, dictionary, dictionary2, list2, questId); - _graphCache[questId] = questChainGraph; - return questChainGraph; - } - IL_07cb: - num19 = num20; - list2 = new List<List<QuestId>>(); - num21 = 0; - num = -2059298115; - break; - } - } - } - } - continue; - IL_005d: - num = 194094591; + return value; } + HashSet<QuestId> hashSet = new HashSet<QuestId>(); + CollectAllRelated(questId, hashSet); + Dictionary<QuestId, List<QuestId>> prerequisites = new Dictionary<QuestId, List<QuestId>>(); + Dictionary<QuestId, List<QuestId>> dictionary = new Dictionary<QuestId, List<QuestId>>(); + foreach (QuestId item in hashSet) + { + prerequisites[item] = new List<QuestId>(); + dictionary[item] = new List<QuestId>(); + } + foreach (QuestId item2 in hashSet) + { + if (!_questData.TryGetQuestInfo(item2, out IQuestInfo questInfo)) + { + continue; + } + foreach (PreviousQuestInfo previousQuest in questInfo.PreviousQuests) + { + if (hashSet.Contains(previousQuest.QuestId)) + { + prerequisites[item2].Add(previousQuest.QuestId); + dictionary[previousQuest.QuestId].Add(item2); + } + } + } + Dictionary<QuestId, int> dictionary2 = new Dictionary<QuestId, int>(); + List<QuestId> list = hashSet.Where((QuestId q) => prerequisites[q].Count == 0).ToList(); + foreach (QuestId item3 in hashSet) + { + dictionary2[item3] = 0; + } + Dictionary<QuestId, int> dictionary3 = new Dictionary<QuestId, int>(); + foreach (QuestId item4 in hashSet) + { + dictionary3[item4] = prerequisites[item4].Count; + } + Queue<QuestId> queue = new Queue<QuestId>(list); + foreach (QuestId item5 in list) + { + dictionary2[item5] = 0; + } + while (queue.Count > 0) + { + QuestId key = queue.Dequeue(); + foreach (QuestId item6 in dictionary[key]) + { + int num = dictionary2[key] + 1; + if (num > dictionary2[item6]) + { + dictionary2[item6] = num; + } + dictionary3[item6]--; + if (dictionary3[item6] == 0) + { + queue.Enqueue(item6); + } + } + } + foreach (QuestId item7 in hashSet) + { + if (!dictionary2.ContainsKey(item7)) + { + dictionary2[item7] = 0; + } + } + int num2 = ((hashSet.Count > 0) ? dictionary2.Values.Max() : 0); + List<List<QuestId>> list2 = new List<List<QuestId>>(); + for (int num3 = 0; num3 <= num2; num3++) + { + list2.Add(new List<QuestId>()); + } + foreach (QuestId item8 in hashSet) + { + list2[dictionary2[item8]].Add(item8); + } + foreach (List<QuestId> item9 in list2) + { + item9.Sort((QuestId a, QuestId b) => a.Value.CompareTo(b.Value)); + } + QuestChainGraph questChainGraph = new QuestChainGraph(prerequisites, dictionary, dictionary2, list2, questId); + _graphCache[questId] = questChainGraph; + return questChainGraph; } public void Invalidate() @@ -511,245 +156,57 @@ internal sealed class QuestChainBuilder private void CollectAncestorsSet(QuestId questId, HashSet<QuestId> visited) { - int num = (visited.Add(questId) ? 1731520860 : 1731520863); - IQuestInfo questInfo = default(IQuestInfo); - while (true) + if (!visited.Add(questId) || !_questData.TryGetQuestInfo(questId, out IQuestInfo questInfo)) { - int num2 = num; - int num3 = 1731520861; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = 1731520863; - break; - case 1: - num = (_questData.TryGetQuestInfo(questId, out questInfo) ? 1731520861 : 1731520862); - break; - case 2: - return; - case 3: - return; - case 0: - { - using ImmutableList<PreviousQuestInfo>.Enumerator enumerator = questInfo.PreviousQuests.GetEnumerator(); - num = -152844110; - while (true) - { - int num5 = num; - num3 = -152844109; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = -152844110; - break; - case 2: - { - PreviousQuestInfo current = enumerator.Current; - CollectAncestorsSet(current.QuestId, visited); - num = -152844110; - break; - } - case 1: - num = (enumerator.MoveNext() ? (-152844111) : (-152844109)); - break; - case 0: - return; - } - } - } - } + return; + } + foreach (PreviousQuestInfo previousQuest in questInfo.PreviousQuests) + { + CollectAncestorsSet(previousQuest.QuestId, visited); } } private void CollectDescendantsSet(QuestId questId, HashSet<QuestId> visited) { - int num = (visited.Add(questId) ? 1111057688 : 1111057690); - List<QuestId> value = default(List<QuestId>); - while (true) + if (!visited.Add(questId) || !_descendants.TryGetValue(questId, out List<QuestId> value)) { - int num2 = num; - int num3 = 1111057691; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = 1111057690; - break; - case 2: - return; - case 3: - num = (_descendants.TryGetValue(questId, out value) ? 1111057691 : 1111057689); - break; - case 1: - return; - case 0: - { - using List<QuestId>.Enumerator enumerator = value.GetEnumerator(); - num = 1156773667; - while (true) - { - int num7 = num; - num3 = 1156773667; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1156773667; - break; - case 1: - { - QuestId current = enumerator.Current; - CollectDescendantsSet(current, visited); - num = 1156773667; - break; - } - case 0: - num = (enumerator.MoveNext() ? 1156773666 : 1156773664); - break; - case 3: - return; - } - } - } - } + return; + } + foreach (QuestId item in value) + { + CollectDescendantsSet(item, visited); } } private void CollectAncestors(QuestId questId, List<QuestId> result, HashSet<QuestId> visited) { - int num = (visited.Add(questId) ? 807904870 : 807904864); - IQuestInfo questInfo = default(IQuestInfo); - PreviousQuestInfo current = default(PreviousQuestInfo); - while (true) + if (!visited.Add(questId) || !_questData.TryGetQuestInfo(questId, out IQuestInfo questInfo)) { - int num2 = num; - int num3 = 807904866; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return; + } + foreach (PreviousQuestInfo previousQuest in questInfo.PreviousQuests) + { + CollectAncestors(previousQuest.QuestId, result, visited); + if (!result.Contains(previousQuest.QuestId)) { - case 1: - return; - case 4: - num = (_questData.TryGetQuestInfo(questId, out questInfo) ? 807904865 : 807904867); - break; - case 2: - return; - case 0: - num = 807904864; - break; - case 3: - { - using ImmutableList<PreviousQuestInfo>.Enumerator enumerator = questInfo.PreviousQuests.GetEnumerator(); - num = 960895852; - while (true) - { - int num5 = num; - num3 = 960895855; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 960895852; - break; - case 3: - num = (enumerator.MoveNext() ? 960895851 : 960895854); - break; - case 2: - result.Add(current.QuestId); - num = 960895852; - break; - case 4: - current = enumerator.Current; - CollectAncestors(current.QuestId, result, visited); - num = (result.Contains(current.QuestId) ? 960895852 : 960895853); - break; - case 1: - return; - } - } - } + result.Add(previousQuest.QuestId); } } } private void CollectDescendants(QuestId questId, List<QuestId> result, HashSet<QuestId> visited) { - int num = (visited.Add(questId) ? (-599330933) : (-599330934)); - List<QuestId> value = default(List<QuestId>); - QuestId current = default(QuestId); - while (true) + if (!visited.Add(questId) || !_descendants.TryGetValue(questId, out List<QuestId> value)) { - int num2 = num; - int num3 = -599330936; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + foreach (QuestId item in value) + { + if (!result.Contains(item)) { - case 1: - return; - case 2: - return; - case 4: - num = -599330934; - break; - case 3: - num = (_descendants.TryGetValue(questId, out value) ? (-599330936) : (-599330935)); - break; - case 0: - { - using List<QuestId>.Enumerator enumerator = value.GetEnumerator(); - num = -1727068589; - while (true) - { - int num7 = num; - num3 = -1727068591; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - num = -1727068589; - break; - case 4: - result.Add(current); - num = -1727068592; - break; - case 3: - current = enumerator.Current; - num = (result.Contains(current) ? (-1727068592) : (-1727068587)); - break; - case 2: - num = (enumerator.MoveNext() ? (-1727068590) : (-1727068591)); - break; - case 1: - CollectDescendants(current, result, visited); - num = -1727068589; - break; - case 0: - return; - } - } - } + result.Add(item); } + CollectDescendants(item, result, visited); } } - - static bool _206F_202C_206E_206F_200B_206E_202D_200E_200E_200B_206A_206D_206E_200E_200E_200D_202E_200E_202B_206E_202E_206A_200C_202E_202C_206E_206B_200D_206C_200D_202A_202D_206D_206E_206B_200F_206C_206B_206D_206C_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206F_202E_206D_200E_206A_206C_202D_206E_206E_206E_206F_206B_200D_200C_200D_202B_202A_200E_202A_206B_202A_206A_206A_200C_206F_206F_206F_206A_200B_202A_202E_202D_200E_202B_206E_206E_206D_200E_206F_200C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static int _202C_206A_200F_200D_202D_206C_200B_206B_206D_200B_206B_206E_202E_202A_206C_202C_206B_200E_206C_200E_200D_200D_202B_202C_202E_200F_206D_202A_206C_202C_206E_202E_200F_206F_200C_200C_200B_200E_206D_206F_202E(IEnumerable<int> P_0) - { - return P_0.Max(); - } } diff --git a/Questionable/Questionable.Data/QuestChainGraph.cs b/Questionable/Questionable.Data/QuestChainGraph.cs index 0a78680..ee54020 100644 --- a/Questionable/Questionable.Data/QuestChainGraph.cs +++ b/Questionable/Questionable.Data/QuestChainGraph.cs @@ -1,155 +1,6 @@ -using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Questionable.Model.Questing; namespace Questionable.Data; -internal sealed record QuestChainGraph(Dictionary<QuestId, List<QuestId>> Prerequisites, Dictionary<QuestId, List<QuestId>> Dependents, Dictionary<QuestId, int> Layers, List<List<QuestId>> LayerOrder, QuestId SelectedQuest) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202E_206B_206A_206D_200B_202A_200F_202A_206A_200E_206A_200B_206E_200B_202C_200C_206C_206A_206F_206A_202A_206C_206D_206C_200F_202B_206B_202D_206A_202B_206C_200B_200C_202A_200C_202B_206D_200C_202C_206C_202E(typeof(QuestChainGraph).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200D_202A_206A_202B_202E_202D_202A_206F_206B_202B_200F_202C_206B_200C_206D_206A_200C_206E_200E_206C_206C_200C_202A_200C_206A_200D_200C_202D_202D_202A_200F_206E_202C_202B_206E_202C_200D_202A_200B_202D_202E(); - _206B_200B_202A_202B_206C_200B_202D_206D_200C_206C_200B_206A_202A_202D_206F_200F_200C_200E_206C_200D_206C_200E_200C_206B_206D_206F_202A_200D_200F_206A_206E_206B_206F_202C_200B_202B_206F_206F_200E_206B_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(952824243)); - _206B_200B_202A_202B_206C_200B_202D_206D_200C_206C_200B_206A_202A_202D_206F_200F_200C_200E_206C_200D_206C_200E_200C_206B_206D_206F_202A_200D_200F_206A_206E_206B_206F_202C_200B_202B_206F_206F_200E_206B_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(117284107)); - int num = ((!PrintMembers(stringBuilder)) ? 1169863664 : 1169863665); - while (true) - { - int num2 = num; - int num3 = 1169863664; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1169863665; - break; - case 1: - _206A_200D_206D_202E_202A_200E_200C_200C_200B_200D_202B_202D_202B_206D_200C_206B_206F_202C_206A_206D_202A_200B_206B_200F_206F_200C_202C_202E_200E_200C_206E_200B_202E_200C_206C_206A_200F_200C_200E_202B_202E(stringBuilder, ' '); - num = 1169863664; - break; - case 0: - _206A_200D_206D_202E_202A_200E_200C_200C_200B_200D_202B_202D_202B_206D_200C_206B_206F_202C_206A_206D_202A_200B_206B_200F_206F_200C_202C_202E_200E_200C_206E_200B_202E_200C_206C_206A_200F_200C_200E_202B_202E(stringBuilder, '}'); - return _206F_206B_202A_206B_202C_202E_206C_202D_202D_202E_206A_206C_206B_200C_202E_206C_206D_206E_202A_202B_206F_202E_206C_206E_202B_200F_206F_206E_202A_206F_200C_206F_200B_202C_200C_206B_202D_206A_202B_200E_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202A_202E_202A_206C_206F_200C_202B_206E_206A_206A_202B_206E_200E_206C_200F_206F_206B_206D_200B_206A_200B_200D_202C_206B_206F_200D_200B_200E_200E_200F_202C_200D_200E_202E_200B_200B_206E_202E_202D_200D_202E(); - _206B_200B_202A_202B_206C_200B_202D_206D_200C_206C_200B_206A_202A_202D_206F_200F_200C_200E_206C_200D_206C_200E_200C_206B_206D_206F_202A_200D_200F_206A_206E_206B_206F_202C_200B_202B_206F_206F_200E_206B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(845375176)); - _200D_202E_200E_206D_206E_200C_206C_202B_202C_202D_206B_206B_200F_202E_206F_200D_206B_206F_206F_206D_200E_206B_206B_206E_202B_202B_200F_202B_200B_202C_202D_202A_202E_206D_202C_200E_206C_206A_202B_206C_202E(builder, (object)Prerequisites); - _206B_200B_202A_202B_206C_200B_202D_206D_200C_206C_200B_206A_202A_202D_206F_200F_200C_200E_206C_200D_206C_200E_200C_206B_206D_206F_202A_200D_200F_206A_206E_206B_206F_202C_200B_202B_206F_206F_200E_206B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-420424537)); - _200D_202E_200E_206D_206E_200C_206C_202B_202C_202D_206B_206B_200F_202E_206F_200D_206B_206F_206F_206D_200E_206B_206B_206E_202B_202B_200F_202B_200B_202C_202D_202A_202E_206D_202C_200E_206C_206A_202B_206C_202E(builder, (object)Dependents); - _206B_200B_202A_202B_206C_200B_202D_206D_200C_206C_200B_206A_202A_202D_206F_200F_200C_200E_206C_200D_206C_200E_200C_206B_206D_206F_202A_200D_200F_206A_206E_206B_206F_202C_200B_202B_206F_206F_200E_206B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(308297113)); - _200D_202E_200E_206D_206E_200C_206C_202B_202C_202D_206B_206B_200F_202E_206F_200D_206B_206F_206F_206D_200E_206B_206B_206E_202B_202B_200F_202B_200B_202C_202D_202A_202E_206D_202C_200E_206C_206A_202B_206C_202E(builder, (object)Layers); - _206B_200B_202A_202B_206C_200B_202D_206D_200C_206C_200B_206A_202A_202D_206F_200F_200C_200E_206C_200D_206C_200E_200C_206B_206D_206F_202A_200D_200F_206A_206E_206B_206F_202C_200B_202B_206F_206F_200E_206B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(505008165)); - _200D_202E_200E_206D_206E_200C_206C_202B_202C_202D_206B_206B_200F_202E_206F_200D_206B_206F_206F_206D_200E_206B_206B_206E_202B_202B_200F_202B_200B_202C_202D_202A_202E_206D_202C_200E_206C_206A_202B_206C_202E(builder, (object)LayerOrder); - _206B_200B_202A_202B_206C_200B_202D_206D_200C_206C_200B_206A_202A_202D_206F_200F_200C_200E_206C_200D_206C_200E_200C_206B_206D_206F_202A_200D_200F_206A_206E_206B_206F_202C_200B_202B_206F_206F_200E_206B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(103307351)); - _200D_202E_200E_206D_206E_200C_206C_202B_202C_202D_206B_206B_200F_202E_206F_200D_206B_206F_206F_206D_200E_206B_206B_206E_202B_202B_200F_202B_200B_202C_202D_202A_202E_206D_202C_200E_206C_206A_202B_206C_202E(builder, (object)SelectedQuest); - return true; - } - - [CompilerGenerated] - public bool Equals(QuestChainGraph? other) - { - int num = (((object)this == other) ? 1244041790 : 1244041777); - while (true) - { - int num2 = num; - int num3 = 1244041782; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = ((!_206F_202C_206D_200F_206F_206A_200C_202E_206C_202C_206F_206C_200C_206C_202E_202C_200E_200B_206A_200D_202E_206C_202B_206F_206D_202C_206C_202D_206E_202E_202A_206C_200C_206C_202E_200E_200F_200D_206D_202D_202E(EqualityContract, other.EqualityContract)) ? 1244041782 : 1244041779); - break; - case 8: - return true; - case 6: - num = ((!EqualityComparer<List<List<QuestId>>>.Default.Equals(LayerOrder, other.LayerOrder)) ? 1244041782 : 1244041783); - break; - case 0: - return false; - case 1: - return EqualityComparer<QuestId>.Default.Equals(SelectedQuest, other.SelectedQuest); - case 3: - num = ((!EqualityComparer<Dictionary<QuestId, int>>.Default.Equals(Layers, other.Layers)) ? 1244041782 : 1244041776); - break; - case 5: - num = ((!EqualityComparer<Dictionary<QuestId, List<QuestId>>>.Default.Equals(Prerequisites, other.Prerequisites)) ? 1244041782 : 1244041778); - break; - case 9: - num = 1244041777; - break; - case 4: - num = ((!EqualityComparer<Dictionary<QuestId, List<QuestId>>>.Default.Equals(Dependents, other.Dependents)) ? 1244041782 : 1244041781); - break; - case 7: - num = (((object)other == null) ? 1244041782 : 1244041780); - break; - } - } - } - - bool IEquatable<QuestChainGraph>.Equals(QuestChainGraph? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202E_206B_206A_206D_200B_202A_200F_202A_206A_200E_206A_200B_206E_200B_202C_200C_206C_206A_206F_206A_202A_206C_206D_206C_200F_202B_206B_202D_206A_202B_206C_200B_200C_202A_200C_202B_206D_200C_202C_206C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200D_202A_206A_202B_202E_202D_202A_206F_206B_202B_200F_202C_206B_200C_206D_206A_200C_206E_200E_206C_206C_200C_202A_200C_206A_200D_200C_202D_202D_202A_200F_206E_202C_202B_206E_202C_200D_202A_200B_202D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206B_200B_202A_202B_206C_200B_202D_206D_200C_206C_200B_206A_202A_202D_206F_200F_200C_200E_206C_200D_206C_200E_200C_206B_206D_206F_202A_200D_200F_206A_206E_206B_206F_202C_200B_202B_206F_206F_200E_206B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206A_200D_206D_202E_202A_200E_200C_200C_200B_200D_202B_202D_202B_206D_200C_206B_206F_202C_206A_206D_202A_200B_206B_200F_206F_200C_202C_202E_200E_200C_206E_200B_202E_200C_206C_206A_200F_200C_200E_202B_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206F_206B_202A_206B_202C_202E_206C_202D_202D_202E_206A_206C_206B_200C_202E_206C_206D_206E_202A_202B_206F_202E_206C_206E_202B_200F_206F_206E_202A_206F_200C_206F_200B_202C_200C_206B_202D_206A_202B_200E_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202A_202E_202A_206C_206F_200C_202B_206E_206A_206A_202B_206E_200E_206C_200F_206F_206B_206D_200B_206A_200B_200D_202C_206B_206F_200D_200B_200E_200E_200F_202C_200D_200E_202E_200B_200B_206E_202E_202D_200D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200D_202E_200E_206D_206E_200C_206C_202B_202C_202D_206B_206B_200F_202E_206F_200D_206B_206F_206F_206D_200E_206B_206B_206E_202B_202B_200F_202B_200B_202C_202D_202A_202E_206D_202C_200E_206C_206A_202B_206C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206F_202C_206D_200F_206F_206A_200C_202E_206C_202C_206F_206C_200C_206C_202E_202C_200E_200B_206A_200D_202E_206C_202B_206F_206D_202C_206C_202D_206E_202E_202A_206C_200C_206C_202E_200E_200F_200D_206D_202D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +internal sealed record QuestChainGraph(Dictionary<QuestId, List<QuestId>> Prerequisites, Dictionary<QuestId, List<QuestId>> Dependents, Dictionary<QuestId, int> Layers, List<List<QuestId>> LayerOrder, QuestId SelectedQuest); diff --git a/Questionable/Questionable.Data/QuestData.cs b/Questionable/Questionable.Data/QuestData.cs index 4752cee..92c11f7 100644 --- a/Questionable/Questionable.Data/QuestData.cs +++ b/Questionable/Questionable.Data/QuestData.cs @@ -1,14 +1,10 @@ using System; -using System.Collections; using System.Collections.Concurrent; using System.Collections.Generic; using System.Collections.Immutable; using System.Diagnostics.CodeAnalysis; using System.Linq; -using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using System.Text; using Dalamud.Plugin.Services; using LLib.GameData; using Lumina.Excel.Sheets; @@ -21,511 +17,13 @@ namespace Questionable.Data; internal sealed class QuestData { - private sealed record RoleQuestData(IReadOnlyList<uint> Chapters, IReadOnlyList<QuestId> FinalQuests, Func<EClassJob, bool> JobMatch) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202B_206D_200D_200D_202C_200F_206F_200F_202E_206B_206D_206F_200C_202E_206B_206E_202B_206B_202A_200D_202E_200B_200D_206C_200C_202C_202D_202D_200B_200E_202C_202C_200B_206C_206B_206A_200C_206B_202A_200C_202E(typeof(RoleQuestData).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200C_200B_206D_200B_202D_206E_206F_202A_202E_206A_200D_202A_206D_200C_200B_206A_200D_202B_206A_200B_206D_206A_202D_206C_206E_202A_206C_200F_200E_206B_206E_206F_200F_200E_202C_206F_202D_202C_200E_202E(); - _206F_200D_202B_206D_206A_200B_200C_202C_200F_206D_206F_200E_206E_202A_206A_202E_206B_206F_202C_200D_202B_206F_200D_206A_206A_202A_200C_200E_206A_200F_206B_206B_206F_200F_200B_200B_206F_202C_206E_200C_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2128769799)); - _206F_200D_202B_206D_206A_200B_200C_202C_200F_206D_206F_200E_206E_202A_206A_202E_206B_206F_202C_200D_202B_206F_200D_206A_206A_202A_200C_200E_206A_200F_206B_206B_206F_200F_200B_200B_206F_202C_206E_200C_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125)); - int num = ((!PrintMembers(stringBuilder)) ? (-949265533) : (-949265536)); - while (true) - { - int num2 = num; - int num3 = -949265534; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _202D_202A_200C_206C_202C_206D_202C_202E_200E_206B_202B_202A_206E_200E_206F_206A_200E_200B_200B_202B_202D_202A_202E_202C_200F_206C_200B_202D_200F_206E_206A_206B_202D_206E_206C_202E_206E_206B_202A_206A_202E(stringBuilder, '}'); - return _200B_200D_200C_202B_206D_200B_206C_202B_206E_202C_202C_200E_206B_206E_200C_206C_206B_206D_200D_206E_206D_206A_200E_206C_206C_200F_206B_200C_202D_200F_206C_202D_200E_202D_206E_200E_200C_202B_202B_206C_202E((object)stringBuilder); - case 2: - _202D_202A_200C_206C_202C_206D_202C_202E_200E_206B_202B_202A_206E_200E_206F_206A_200E_200B_200B_202B_202D_202A_202E_202C_200F_206C_200B_202D_200F_206E_206A_206B_202D_206E_206C_202E_206E_206B_202A_206A_202E(stringBuilder, ' '); - num = -949265533; - break; - case 0: - num = -949265536; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202D_206B_200D_202C_206C_206D_200C_200D_206F_206F_206F_206E_202E_206C_206E_206B_202A_206E_206D_202E_206E_202B_200D_206D_202B_202C_206E_200E_202A_202D_200E_200D_202B_200D_200D_200E_206E_202A_200E_206F_202E(); - _206F_200D_202B_206D_206A_200B_200C_202C_200F_206D_206F_200E_206E_202A_206A_202E_206B_206F_202C_200D_202B_206F_200D_206A_206A_202A_200C_200E_206A_200F_206B_206B_206F_200F_200B_200B_206F_202C_206E_200C_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-428993358)); - _200C_200C_202D_200C_200F_200F_206F_206C_206E_206E_206A_202C_202B_202B_206B_206C_200C_202D_202B_202E_202A_202B_202A_206D_206B_206F_206E_202D_206C_200E_200B_206B_200B_202B_206B_206B_202A_206F_200C_202E(builder, (object)Chapters); - _206F_200D_202B_206D_206A_200B_200C_202C_200F_206D_206F_200E_206E_202A_206A_202E_206B_206F_202C_200D_202B_206F_200D_206A_206A_202A_200C_200E_206A_200F_206B_206B_206F_200F_200B_200B_206F_202C_206E_200C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(635711557)); - _200C_200C_202D_200C_200F_200F_206F_206C_206E_206E_206A_202C_202B_202B_206B_206C_200C_202D_202B_202E_202A_202B_202A_206D_206B_206F_206E_202D_206C_200E_200B_206B_200B_202B_206B_206B_202A_206F_200C_202E(builder, (object)FinalQuests); - _206F_200D_202B_206D_206A_200B_200C_202C_200F_206D_206F_200E_206E_202A_206A_202E_206B_206F_202C_200D_202B_206F_200D_206A_206A_202A_200C_200E_206A_200F_206B_206B_206F_200F_200B_200B_206F_202C_206E_200C_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1662807947)); - _200C_200C_202D_200C_200F_200F_206F_206C_206E_206E_206A_202C_202B_202B_206B_206C_200C_202D_202B_202E_202A_202B_202A_206D_206B_206F_206E_202D_206C_200E_200B_206B_200B_202B_206B_206B_202A_206F_200C_202E(builder, (object)JobMatch); - return true; - } - - [CompilerGenerated] - public bool Equals(RoleQuestData? other) - { - int num = (((object)this == other) ? 900942531 : 900942533); - while (true) - { - int num2 = num; - int num3 = 900942529; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return true; - case 6: - num = ((!_206C_206F_206D_200B_202C_202D_206D_200D_206A_200F_200D_206B_200E_206B_202A_206E_206A_202A_206C_206B_202C_206B_202C_206C_206C_202E_202A_206A_202E_202B_206C_202D_206E_202B_202B_206A_202A_202B_206D_206E_202E(EqualityContract, other.EqualityContract)) ? 900942532 : 900942534); - break; - case 7: - num = ((!EqualityComparer<IReadOnlyList<uint>>.Default.Equals(Chapters, other.Chapters)) ? 900942532 : 900942528); - break; - case 5: - return false; - case 0: - return EqualityComparer<Func<EClassJob, bool>>.Default.Equals(JobMatch, other.JobMatch); - case 3: - num = 900942533; - break; - case 4: - num = (((object)other == null) ? 900942532 : 900942535); - break; - case 1: - num = ((!EqualityComparer<IReadOnlyList<QuestId>>.Default.Equals(FinalQuests, other.FinalQuests)) ? 900942532 : 900942529); - break; - } - } - } - - bool IEquatable<RoleQuestData>.Equals(RoleQuestData? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202B_206D_200D_200D_202C_200F_206F_200F_202E_206B_206D_206F_200C_202E_206B_206E_202B_206B_202A_200D_202E_200B_200D_206C_200C_202C_202D_202D_200B_200E_202C_202C_200B_206C_206B_206A_200C_206B_202A_200C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200C_200B_206D_200B_202D_206E_206F_202A_202E_206A_200D_202A_206D_200C_200B_206A_200D_202B_206A_200B_206D_206A_202D_206C_206E_202A_206C_200F_200E_206B_206E_206F_200F_200E_202C_206F_202D_202C_200E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206F_200D_202B_206D_206A_200B_200C_202C_200F_206D_206F_200E_206E_202A_206A_202E_206B_206F_202C_200D_202B_206F_200D_206A_206A_202A_200C_200E_206A_200F_206B_206B_206F_200F_200B_200B_206F_202C_206E_200C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202D_202A_200C_206C_202C_206D_202C_202E_200E_206B_202B_202A_206E_200E_206F_206A_200E_200B_200B_202B_202D_202A_202E_202C_200F_206C_200B_202D_200F_206E_206A_206B_202D_206E_206C_202E_206E_206B_202A_206A_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200B_200D_200C_202B_206D_200B_206C_202B_206E_202C_202C_200E_206B_206E_200C_206C_206B_206D_200D_206E_206D_206A_200E_206C_206C_200F_206B_200C_202D_200F_206C_202D_200E_202D_206E_200E_200C_202B_202B_206C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202D_206B_200D_202C_206C_206D_200C_200D_206F_206F_206F_206E_202E_206C_206E_206B_202A_206E_206D_202E_206E_202B_200D_206D_202B_202C_206E_200E_202A_202D_200E_200D_202B_200D_200D_200E_206E_202A_200E_206F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200C_200C_202D_200C_200F_200F_206F_206C_206E_206E_206A_202C_202B_202B_206B_206C_200C_202D_202B_202E_202A_202B_202A_206D_206B_206F_206E_202D_206C_200E_200B_206B_200B_202B_206B_206B_202A_206F_200C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206C_206F_206D_200B_202C_202D_206D_200D_206A_200F_200D_206B_200E_206B_202A_206E_206A_202A_206C_206B_202C_206B_202C_206C_206C_202E_202A_206A_202E_202B_206C_202D_206E_202B_202B_206A_202A_202B_206D_206E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<QuestChapter, bool> _003C_003E9__25_0; - - public static Func<QuestChapter, uint> _003C_003E9__25_1; - - public static Func<QuestChapter, uint> _003C_003E9__25_2; - - public static Func<QuestRedo.QuestRedoParamStruct, bool> _003C_003E9__25_8; - - public static Func<Lumina.Excel.Sheets.Quest, bool> _003C_003E9__25_9; - - public static Func<Lumina.Excel.Sheets.Quest, bool> _003C_003E9__25_10; - - public static Func<Lumina.Excel.Sheets.Quest, bool> _003C_003E9__25_11; - - public static Func<SatisfactionNpc, bool> _003C_003E9__25_13; - - public static Func<SatisfactionNpc, SatisfactionSupplyInfo> _003C_003E9__25_14; - - public static Func<IQuestInfo, bool> _003C_003E9__25_3; - - public static Func<QuestInfo, QuestId> _003C_003E9__25_5; - - public static Func<IQuestInfo, bool> _003C_003E9__25_6; - - public static Func<QuestInfo, IEnumerable<ItemReward>> _003C_003E9__25_7; - - public static Func<ushort, QuestId> _003C_003E9__37_1; - - public static Func<IQuestInfo, ushort> _003C_003E9__44_1; - - public static Func<IQuestInfo, ElementId> _003C_003E9__44_2; - - public static Func<IQuestInfo, bool> _003C_003E9__45_0; - - public static Func<QuestInfo, ElementId> _003C_003E9__45_2; - - public static Func<IQuestInfo, bool> _003C_003E9__55_0; - - public static Func<List<ushort>, IEnumerable<ushort>> _003C_003E9__58_0; - - public static Func<ushort, QuestId> _003C_003E9__58_1; - - public static Func<ushort, QuestId> _003C_003E9__61_8; - - internal bool _003C_002Ector_003Eb__25_0(QuestChapter x) - { - int num = ((x.RowId == 0) ? 277631296 : 277631299); - while (true) - { - int num2 = num; - int num3 = 277631297; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0048; - case 1: - return false; - case 2: - return x.Quest.RowId != 0; - } - continue; - IL_0048: - num = 277631299; - } - } - - internal uint _003C_002Ector_003Eb__25_1(QuestChapter x) - { - return x.Quest.RowId; - } - - internal uint _003C_002Ector_003Eb__25_2(QuestChapter x) - { - return x.Redo.RowId; - } - - internal bool _003C_002Ector_003Eb__25_8(QuestRedo.QuestRedoParamStruct x) - { - return x.Quest.IsValid; - } - - internal bool _003C_002Ector_003Eb__25_9(Lumina.Excel.Sheets.Quest x) - { - return x.RowId != 0; - } - - internal bool _003C_002Ector_003Eb__25_10(Lumina.Excel.Sheets.Quest x) - { - return !x.Name.IsEmpty; - } - - internal bool _003C_002Ector_003Eb__25_11(Lumina.Excel.Sheets.Quest x) - { - return x.IssuerLocation.RowId != 0; - } - - internal bool _003C_002Ector_003Eb__25_13(SatisfactionNpc x) - { - int num = ((x.RowId == 0) ? (-1811955487) : (-1811955486)); - while (true) - { - int num2 = num; - int num3 = -1811955488; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004a; - case 1: - return false; - case 2: - return x.Npc.RowId != 0; - } - continue; - IL_004a: - num = -1811955486; - } - } - - internal SatisfactionSupplyInfo _003C_002Ector_003Eb__25_14(SatisfactionNpc x) - { - return new SatisfactionSupplyInfo(x); - } - - internal bool _003C_002Ector_003Eb__25_3(IQuestInfo x) - { - QuestInfo questInfo = x as QuestInfo; - int num = ((questInfo == null) ? 1962625655 : 1962625654); - while (true) - { - int num2 = num; - int num3 = 1962625655; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0048; - case 1: - return questInfo.IsMainScenarioQuest; - case 0: - return false; - } - continue; - IL_0048: - num = 1962625654; - } - } - - internal QuestId _003C_002Ector_003Eb__25_5(QuestInfo x) - { - return (QuestId)x.QuestId; - } - - internal bool _003C_002Ector_003Eb__25_6(IQuestInfo x) - { - return x is QuestInfo; - } - - internal IEnumerable<ItemReward> _003C_002Ector_003Eb__25_7(QuestInfo x) - { - return x.ItemRewards; - } - - internal QuestId _003CAddGcFollowUpQuests_003Eb__37_1(ushort x) - { - return _202E_202A_202C_200E_200C_200E_202C_206E_206A_200B_202D_200D_206A_202D_202E_202B_206F_200F_206A_202A_206C_206F_206C_202D_200D_202B_206A_200C_206D_202B_200E_200C_200E_202E_202D_202A_202A_206F_202E_200F_202E(x); - } - - internal ushort _003CGetAllByJournalGenre_003Eb__44_1(IQuestInfo x) - { - return x.SortKey; - } - - internal ElementId _003CGetAllByJournalGenre_003Eb__44_2(IQuestInfo x) - { - return x.QuestId; - } - - internal bool _003CGetAllByAlliedSociety_003Eb__45_0(IQuestInfo x) - { - return x is QuestInfo; - } - - internal ElementId _003CGetAllByAlliedSociety_003Eb__45_2(QuestInfo x) - { - return x.QuestId; - } - - internal bool _003CGetQuestsInNewGamePlusChapters_003Eb__55_0(IQuestInfo x) - { - return x is QuestInfo; - } - - internal IEnumerable<ushort> _003CGetLockedClassQuests_003Eb__58_0(List<ushort> x) - { - return x; - } - - internal QuestId _003CGetLockedClassQuests_003Eb__58_1(ushort x) - { - return _202E_202A_202C_200E_200C_200E_202C_206E_206A_200B_202D_200D_206A_202D_202E_202B_206F_200F_206A_202A_206C_206F_206C_202D_200D_202B_206A_200C_206D_202B_200E_200C_200E_202E_202D_202A_202A_206F_202E_200F_202E(x); - } - - internal uint _003C_002Ecctor_003Eb__61_0(KeyValuePair<uint, List<ushort>> x) - { - return x.Key; - } - - internal ImmutableList<QuestId> _003C_002Ecctor_003Eb__61_1(KeyValuePair<uint, List<ushort>> x) - { - return x.Value.Select((ushort y) => _202E_202A_202C_200E_200C_200E_202C_206E_206A_200B_202D_200D_206A_202D_202E_202B_206F_200F_206A_202A_206C_206F_206C_202D_200D_202B_206A_200C_206D_202B_200E_200C_200E_202E_202D_202A_202A_206F_202E_200F_202E(y)).ToImmutableList(); - } - - internal QuestId _003C_002Ecctor_003Eb__61_8(ushort y) - { - return _202E_202A_202C_200E_200C_200E_202C_206E_206A_200B_202D_200D_206A_202D_202E_202B_206F_200F_206A_202A_206C_206F_206C_202D_200D_202B_206A_200C_206D_202B_200E_200C_200E_202E_202D_202A_202A_206F_202E_200F_202E(y); - } - - internal IEnumerable<QuestId> _003C_002Ecctor_003Eb__61_2(ImmutableList<QuestId> x) - { - return x; - } - - internal bool _003C_002Ecctor_003Eb__61_3(EClassJob j) - { - return _206F_206E_206F_206F_200F_200B_202C_202C_206B_202E_206F_202A_206E_206B_202D_206D_206A_200F_200C_206A_206B_200B_202A_202D_202E_202D_200E_202A_200F_200C_202D_200D_200F_200D_200E_200E_200F_200E_206D_206A_202E(j); - } - - internal bool _003C_002Ecctor_003Eb__61_4(EClassJob j) - { - return _200E_202D_202A_200E_202E_206C_202D_200B_200B_206E_202E_206A_206C_200B_200D_200F_200B_200C_202D_206A_200C_206A_200F_200D_202B_206F_206F_200C_200B_202D_206E_206E_200E_202A_202E_206C_200E_206C_202B_206D_202E(j); - } - - internal bool _003C_002Ecctor_003Eb__61_5(EClassJob j) - { - int num = ((!_202A_200F_202A_206C_206D_202C_206A_200E_206F_200B_202C_202D_206D_200E_206C_206F_200F_206B_206D_200C_206B_202D_200C_206D_202C_200B_200C_202D_206B_200B_206F_206F_206B_200D_202E_206B_200C_202A_202E_202C_202E(j)) ? 218387131 : 218387128); - while (true) - { - int num2 = num; - int num3 = 218387129; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0048; - case 1: - return j != EClassJob.Beastmaster; - case 2: - return false; - } - continue; - IL_0048: - num = 218387128; - } - } - - internal bool _003C_002Ecctor_003Eb__61_6(EClassJob j) - { - return _200B_206B_202A_206E_200D_206B_200F_202A_206D_200E_200E_202E_200B_206A_206F_202A_206F_200E_202D_200C_206F_202A_202D_202C_202B_206A_202D_206B_200D_202D_202E_206D_200F_206C_200C_200E_200D_202C_206E_200D_202E(j); - } - - internal bool _003C_002Ecctor_003Eb__61_7(EClassJob j) - { - int num = ((!_200F_202B_206C_200B_202A_206D_200D_202E_200C_206C_206F_206D_200B_202D_200F_206E_202E_200B_206C_206C_202A_206D_202B_206B_200B_206B_200F_202D_200F_202A_206B_202A_200D_200F_206D_202D_206A_202C_202D_202D_202E(j)) ? (-542512) : (-542509)); - while (true) - { - int num2 = num; - int num3 = -542511; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0046; - case 1: - return false; - case 2: - return j != EClassJob.BlueMage; - } - continue; - IL_0046: - num = -542509; - } - } - - static QuestId _202E_202A_202C_200E_200C_200E_202C_206E_206A_200B_202D_200D_206A_202D_202E_202B_206F_200F_206A_202A_206C_206F_206C_202D_200D_202B_206A_200C_206D_202B_200E_200C_200E_202E_202D_202A_202A_206F_202E_200F_202E(ushort P_0) - { - return new QuestId(P_0); - } - - static bool _206F_206E_206F_206F_200F_200B_202C_202C_206B_202E_206F_202A_206E_206B_202D_206D_206A_200F_200C_206A_206B_200B_202A_202D_202E_202D_200E_202A_200F_200C_202D_200D_200F_200D_200E_200E_200F_200E_206D_206A_202E(EClassJob P_0) - { - return P_0.IsTank(); - } - - static bool _200E_202D_202A_200E_202E_206C_202D_200B_200B_206E_202E_206A_206C_200B_200D_200F_200B_200C_202D_206A_200C_206A_200F_200D_202B_206F_206F_200C_200B_202D_206E_206E_200E_202A_202E_206C_200E_206C_202B_206D_202E(EClassJob P_0) - { - return P_0.IsHealer(); - } - - static bool _202A_200F_202A_206C_206D_202C_206A_200E_206F_200B_202C_202D_206D_200E_206C_206F_200F_206B_206D_200C_206B_202D_200C_206D_202C_200B_200C_202D_206B_200B_206F_206F_206B_200D_202E_206B_200C_202A_202E_202C_202E(EClassJob P_0) - { - return P_0.IsMelee(); - } - - static bool _200B_206B_202A_206E_200D_206B_200F_202A_206D_200E_200E_202E_200B_206A_206F_202A_206F_200E_202D_200C_206F_202A_202D_202C_202B_206A_202D_206B_200D_202D_202E_206D_200F_206C_200C_200E_200D_202C_206E_200D_202E(EClassJob P_0) - { - return P_0.IsPhysicalRanged(); - } - - static bool _200F_202B_206C_200B_202A_206D_200D_202E_200C_206C_206F_206D_200B_202D_200F_206E_202E_200B_206C_206C_202A_206D_202B_206B_200B_206B_200F_202D_200F_202A_206B_202A_200D_200F_206D_202D_206A_202C_202D_202D_202E(EClassJob P_0) - { - return P_0.IsCaster(); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass25_1 - { - public QuestInfo x; - - public Func<PreviousQuestInfo, bool> _003C_003E9__16; - - internal bool _003C_002Ector_003Eb__15(QuestInfo y) - { - return y.PreviousQuests.Any((PreviousQuestInfo z) => _200E_206C_202B_206D_206F_206E_206E_200D_206A_202C_200B_206E_200E_202C_202B_206E_202B_202B_202C_200B_200F_202E_206D_200E_202B_206C_200F_206A_202E_206A_202D_200B_206E_206E_202B_206E_202B_206A_200E_202E((ElementId)z.QuestId, x.QuestId)); - } - - internal bool _003C_002Ector_003Eb__16(PreviousQuestInfo z) - { - return _200E_206C_202B_206D_206F_206E_206E_200D_206A_202C_200B_206E_200E_202C_202B_206E_202B_202B_202C_200B_200F_202E_206D_200E_202B_206C_200F_206A_202E_206A_202D_200B_206E_206E_202B_206E_202B_206A_200E_202E((ElementId)z.QuestId, x.QuestId); - } - - static bool _200E_206C_202B_206D_206F_206E_206E_200D_206A_202C_200B_206E_200E_202C_202B_206E_202B_202B_202C_200B_200F_202E_206D_200E_202B_206C_200F_206A_202E_206A_202D_200B_206E_206E_202B_206E_202B_206A_200E_202E(ElementId P_0, ElementId P_1) - { - return P_0 == P_1; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass37_0 - { - public ushort questId; - - internal bool _003CAddGcFollowUpQuests_003Eb__0(ushort x) - { - return x != questId; - } - } + private sealed record RoleQuestData(IReadOnlyList<uint> Chapters, IReadOnlyList<QuestId> FinalQuests, Func<EClassJob, bool> JobMatch); public static readonly IReadOnlyList<QuestId> HardModePrimals = new global::_003C_003Ez__ReadOnlyArray<QuestId>(new QuestId[3] { - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)1048), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)1157), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)1158) + new QuestId(1048), + new QuestId(1157), + new QuestId(1158) }); private static readonly Dictionary<ushort, byte> GcRankRequirements = new Dictionary<ushort, byte> @@ -540,14 +38,14 @@ internal sealed class QuestData public static readonly IReadOnlyList<QuestId> CrystalTowerQuests = new global::_003C_003Ez__ReadOnlyArray<QuestId>(new QuestId[8] { - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)1709), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)1200), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)1201), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)1202), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)1203), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)1474), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)494), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)495) + new QuestId(1709), + new QuestId(1200), + new QuestId(1201), + new QuestId(1202), + new QuestId(1203), + new QuestId(1474), + new QuestId(494), + new QuestId(495) }); public static readonly ImmutableDictionary<uint, ImmutableList<QuestId>> AetherCurrentQuestsByTerritory; @@ -600,98 +98,34 @@ internal sealed class QuestData public static byte GetRequiredGCRank(QuestId questId) { - return GcRankRequirements.GetValueOrDefault<ushort, byte>(_206D_202C_206E_206A_206E_202C_206E_200E_202D_202E_202A_202A_206C_200E_200E_206C_202D_206E_206B_206F_200E_200D_200E_202D_200F_202A_200D_200C_202E_200D_206E_206C_206D_206F_202E_200E_206F_202D_200F_206D_202E((ElementId)questId), 1); + return GcRankRequirements.GetValueOrDefault<ushort, byte>(questId.Value, 1); } - [MethodImpl(MethodImplOptions.NoInlining)] public QuestData(IDataManager dataManager, ILogger<QuestData> logger) { - _logger = logger ?? throw _202E_206B_200E_206E_206A_206D_206A_206B_206C_202D_202E_202E_200B_200E_206E_206E_202E_200F_202E_206C_206C_206F_202D_200B_206A_206A_200C_202B_206B_206A_206A_202D_202B_202B_200E_200B_206F_200E_202C_202E_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(901832441)); - Dictionary<uint, uint> questChapters = dataManager.GetExcelSheet<QuestChapter>().Where(delegate(QuestChapter x) - { - int num10 = ((x.RowId == 0) ? 277631296 : 277631299); - while (true) - { - int num11 = num10; - int num12 = 277631297; - int num13 = num11; - switch ((num13 | num12) - (num13 & num12)) - { - case 0: - goto IL_0048; - case 1: - return false; - case 2: - return x.Quest.RowId != 0; - } - continue; - IL_0048: - num10 = 277631299; - } - }).ToDictionary((QuestChapter x) => x.Quest.RowId, (QuestChapter x) => x.Redo.RowId); + _logger = logger ?? throw new ArgumentNullException("logger"); + Dictionary<uint, uint> questChapters = (from x in dataManager.GetExcelSheet<QuestChapter>() + where x.RowId != 0 && x.Quest.RowId != 0 + select x).ToDictionary((QuestChapter x) => x.Quest.RowId, (QuestChapter x) => x.Redo.RowId); Dictionary<uint, byte> startingCities = new Dictionary<uint, byte>(); - byte b = 1; - while (b <= 3) + for (byte b = 1; b <= 3; b++) { - IEnumerator<QuestRedo.QuestRedoParamStruct> enumerator = dataManager.GetExcelSheet<QuestRedo>().GetRow(b).QuestRedoParam.Where((QuestRedo.QuestRedoParamStruct x) => x.Quest.IsValid).GetEnumerator(); - try + foreach (QuestRedo.QuestRedoParamStruct item in dataManager.GetExcelSheet<QuestRedo>().GetRow(b).QuestRedoParam.Where((QuestRedo.QuestRedoParamStruct x) => x.Quest.IsValid)) { - while (_202D_200C_206B_200B_206A_202D_200C_200C_206B_206D_206C_200D_202C_202A_200E_200E_206F_202D_206A_200B_202C_200E_206D_202B_200D_206A_202C_200E_206F_200D_206A_202D_202C_202C_202E_206B_200D_202E_206D_202E((IEnumerator)enumerator)) - { - QuestRedo.QuestRedoParamStruct current = enumerator.Current; - startingCities[current.Quest.RowId] = b; - } + startingCities[item.Quest.RowId] = b; } - finally - { - if (enumerator != null) - { - _200E_202B_206F_202C_206E_200C_206B_206B_206A_206A_202D_202E_202B_202E_200F_200C_200E_206F_200F_202C_202E_206D_206B_202E_206D_200B_200F_206D_206C_206B_200B_202A_206F_206A_202C_202B_202A_202E_200E_200C_202E((IDisposable)enumerator); - } - } - byte num = b; - int num2 = 1; - int num3 = num; - b = (byte)((num3 | num2) + (num3 & num2)); } - List<IQuestInfo> list = new List<IQuestInfo>(); - list.AddRange(from x in dataManager.GetExcelSheet<Lumina.Excel.Sheets.Quest>() + List<IQuestInfo> list = ((IEnumerable<IQuestInfo>)(from x in dataManager.GetExcelSheet<Lumina.Excel.Sheets.Quest>() where x.RowId != 0 where !x.Name.IsEmpty where x.IssuerLocation.RowId != 0 - select new QuestInfo(x, questChapters.GetValueOrDefault(x.RowId), startingCities.GetValueOrDefault(x.RowId))); - list.AddRange(from x in dataManager.GetExcelSheet<SatisfactionNpc>().Where(delegate(SatisfactionNpc x) - { - int num10 = ((x.RowId == 0) ? (-1811955487) : (-1811955486)); - while (true) - { - int num11 = num10; - int num12 = -1811955488; - int num13 = num11; - int num14 = num13 + num12; - int num15 = num13 & num12; - switch (num14 - (num15 + num15)) - { - case 0: - goto IL_004a; - case 1: - return false; - case 2: - return x.Npc.RowId != 0; - } - continue; - IL_004a: - num10 = -1811955486; - } - }) - select new SatisfactionSupplyInfo(x)); - List<IQuestInfo> list2 = list; + select new QuestInfo(x, questChapters.GetValueOrDefault(x.RowId), startingCities.GetValueOrDefault(x.RowId)))).ToList(); _quests = new ConcurrentDictionary<ElementId, IQuestInfo>(); - foreach (IQuestInfo item in list2) + foreach (IQuestInfo item2 in list) { - if (!_quests.TryAdd(item.QuestId, item)) + if (!_quests.TryAdd(item2.QuestId, item2)) { - _200B_200E_202C_206C_200F_206A_206B_202E_206C_206C_206A_202C_202C_200B_200B_206D_206A_206C_202E_206A_206A_206C_206D_202B_202A_200D_200E_206F_206F_202C_206D_202C_206E_206C_200F_206B_202E_200E_202B_200F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2111536420), new object[1] { item.QuestId }); + _logger.LogDebug("Duplicate QuestId {QuestId}, keeping first entry", item2.QuestId); } } AddPreviousQuest(425, 495); @@ -771,200 +205,80 @@ internal sealed class QuestData AddPreviousQuest(5188, 4841); AddPreviousQuest(5188, 4847); AddPreviousQuest(5188, 4959); - ushort[] array = new ushort[20]; - _202E_200D_202B_202D_200C_206B_206F_200F_206A_202B_200F_200B_202A_200E_206A_200D_206C_200F_202D_200B_200B_200C_200D_206D_200B_202C_200D_206F_206B_206B_200B_200D_200F_202B_202B_206D_200D_200D_206B_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - ushort[] array2 = array; - int num4 = 0; - while (num4 < array2.Length) + ushort[] array = new ushort[20] + { + 107, 111, 112, 122, 663, 475, 472, 476, 470, 473, + 474, 477, 486, 478, 479, 59, 400, 401, 693, 405 + }; + foreach (ushort questId in array) { - ushort questId = array2[num4]; SetStartingCity(questId, 1); - int num5 = num4; - int num2 = 1; - int num3 = num5; - int num6 = num3 ^ num2; - int num7 = num3 & num2; - num4 = num6 + (num7 + num7); } - ushort[] array3 = new ushort[11]; - _202E_200D_202B_202D_200C_206B_206F_200F_206A_202B_200F_200B_202A_200E_206A_200D_206C_200F_202D_200B_200B_200C_200D_206D_200B_202C_200D_206F_206B_206B_200B_200D_200F_202B_202B_206D_200D_200D_206B_202E((Array)array3, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - array2 = array3; - num4 = 0; - while (num4 < array2.Length) + array = new ushort[11] + { + 39, 1, 32, 34, 37, 172, 127, 130, 60, 220, + 378 + }; + foreach (ushort questId2 in array) { - ushort questId2 = array2[num4]; SetStartingCity(questId2, 2); - int num8 = num4; - int num2 = 1; - int num3 = num8; - num4 = (num3 | num2) + (num3 & num2); } - ushort[] array4 = new ushort[19]; - _202E_200D_202B_202D_200C_206B_206F_200F_206A_202B_200F_200B_202A_200E_206A_200D_206C_200F_202D_200B_200B_200C_200D_206D_200B_202C_200D_206F_206B_206B_200B_200D_200F_202B_202B_206D_200D_200D_206B_202E((Array)array4, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - array2 = array4; - num4 = 0; - while (num4 < array2.Length) + array = new ushort[19] + { + 594, 389, 390, 321, 304, 322, 388, 308, 326, 58, + 687, 341, 504, 531, 506, 530, 573, 342, 505 + }; + foreach (ushort questId3 in array) { - ushort questId3 = array2[num4]; SetStartingCity(questId3, 3); - int num9 = num4; - int num2 = 1; - int num3 = num9; - num4 = (num3 | num2) + (num3 & num2); } AddGcFollowUpQuests(); - MainScenarioQuests = _quests.Values.Where(delegate(IQuestInfo x) - { - QuestInfo questInfo = x as QuestInfo; - int num10 = ((questInfo == null) ? 1962625655 : 1962625654); - while (true) - { - int num11 = num10; - int num12 = 1962625655; - int num13 = num11; - switch ((num13 | num12) - (num13 & num12)) - { - case 2: - goto IL_0048; - case 1: - return questInfo.IsMainScenarioQuest; - case 0: - return false; - } - continue; - IL_0048: - num10 = 1962625654; - } - }).Cast<QuestInfo>().ToList(); + MainScenarioQuests = _quests.Values.Where((IQuestInfo x) => x is QuestInfo questInfo && questInfo.IsMainScenarioQuest).Cast<QuestInfo>().ToList(); LastMainScenarioQuestId = (from x in MainScenarioQuests - where !MainScenarioQuests.Any((QuestInfo y) => y.PreviousQuests.Any((PreviousQuestInfo z) => _003C_003Ec__DisplayClass25_1._200E_206C_202B_206D_206F_206E_206E_200D_206A_202C_200B_206E_200E_202C_202B_206E_202B_202B_202C_200B_200F_202E_206D_200E_202B_206C_200F_206A_202E_206A_202D_200B_206E_206E_202B_206E_202B_206A_200E_202E((ElementId)z.QuestId, x.QuestId))) - select (QuestId)x.QuestId).FirstOrDefault() ?? _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)0); - RedeemableItems = list2.Where((IQuestInfo x) => x is QuestInfo).Cast<QuestInfo>().SelectMany((QuestInfo x) => x.ItemRewards) + where !MainScenarioQuests.Any((QuestInfo y) => y.PreviousQuests.Any((PreviousQuestInfo z) => z.QuestId == x.QuestId)) + select (QuestId)x.QuestId).FirstOrDefault() ?? new QuestId(0); + RedeemableItems = list.Where((IQuestInfo x) => x is QuestInfo).Cast<QuestInfo>().SelectMany((QuestInfo x) => x.ItemRewards) .ToImmutableHashSet(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void AddPreviousQuest(ushort questToUpdate, ushort requiredQuestId) { - QuestId questId = _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E(questToUpdate); - IQuestInfo value; - int num = ((!_quests.TryGetValue(questId, out value)) ? (-87793651) : (-87793652)); - QuestInfo questInfo = default(QuestInfo); - while (true) + QuestId questId = new QuestId(questToUpdate); + if (_quests.TryGetValue(questId, out IQuestInfo value) && value is QuestInfo questInfo) { - int num2 = num; - int num3 = -87793649; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -87793652; - break; - case 1: - questInfo.AddPreviousQuest(new PreviousQuestInfo(_200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E(requiredQuestId), 0)); - return; - case 3: - questInfo = value as QuestInfo; - num = ((questInfo == null) ? (-87793651) : (-87793650)); - break; - case 2: - _206A_200D_202A_202D_200D_202E_200E_206E_200C_206A_202C_206D_200C_202C_206D_200F_206C_200C_206B_202D_200C_200B_202B_206E_200E_202D_206E_202D_206A_202E_200B_206A_200E_202E_202E_202E_206F_202C_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1633400058), new object[1] { questId }); - return; - } + questInfo.AddPreviousQuest(new PreviousQuestInfo(new QuestId(requiredQuestId), 0)); + return; } + _logger.LogWarning("AddPreviousQuest: Quest {QuestId} not found or not a QuestInfo", questId); } - [MethodImpl(MethodImplOptions.NoInlining)] private void SetStartingCity(ushort questId, byte startingCity) { - QuestId questId2 = _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E(questId); - IQuestInfo value; - int num = ((!_quests.TryGetValue(questId2, out value)) ? (-2047917635) : (-2047917636)); - QuestInfo questInfo = default(QuestInfo); - while (true) + QuestId questId2 = new QuestId(questId); + if (_quests.TryGetValue(questId2, out IQuestInfo value) && value is QuestInfo questInfo) { - int num2 = num; - int num3 = -2047917634; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -2047917636; - break; - case 1: - questInfo.StartingCity = startingCity; - return; - case 3: - _206A_200D_202A_202D_200D_202E_200E_206E_200C_206A_202C_206D_200C_202C_206D_200F_206C_200C_206B_202D_200C_200B_202B_206E_200E_202D_206E_202D_206A_202E_200B_206A_200E_202E_202E_202E_206F_202C_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-352584003), new object[1] { questId2 }); - return; - case 2: - questInfo = value as QuestInfo; - num = ((questInfo == null) ? (-2047917635) : (-2047917633)); - break; - } + questInfo.StartingCity = startingCity; + return; } + _logger.LogWarning("SetStartingCity: Quest {QuestId} not found or not a QuestInfo", questId2); } - [MethodImpl(MethodImplOptions.NoInlining)] private void AddGcFollowUpQuests() { - ushort[] array = new ushort[3]; - _202E_200D_202B_202D_200C_206B_206F_200F_206A_202B_200F_200B_202A_200E_206A_200D_206C_200F_202D_200B_200B_200C_200D_206D_200B_202C_200D_206F_206B_206B_200B_200D_200F_202B_202B_206D_200D_200D_206B_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); + ushort[] array = new ushort[3] { 683, 684, 685 }; ushort[] array2 = array; - ushort[] array3 = array2; - int num = 0; - int num2 = -1969703842; - QuestId questId = default(QuestId); - _003C_003Ec__DisplayClass37_0 _003C_003Ec__DisplayClass37_ = default(_003C_003Ec__DisplayClass37_0); - IQuestInfo value = default(IQuestInfo); - QuestInfo questInfo = default(QuestInfo); - while (true) + foreach (ushort questId in array2) { - int num3 = num2; - int num4 = -1969703848; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + QuestId questId2 = new QuestId(questId); + if (_quests.TryGetValue(questId2, out IQuestInfo value) && value is QuestInfo questInfo) { - case 1: - _206A_200D_202A_202D_200D_202E_200E_206E_200C_206A_202C_206D_200C_202C_206D_200F_206C_200C_206B_202D_200C_200B_202B_206E_200E_202D_206E_202D_206A_202E_200B_206A_200E_202E_202E_202E_206F_202C_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1613940727), new object[1] { questId }); - num2 = -1969703846; - break; - case 4: - _003C_003Ec__DisplayClass37_ = new _003C_003Ec__DisplayClass37_0(); - _003C_003Ec__DisplayClass37_.questId = array3[num]; - questId = _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E(_003C_003Ec__DisplayClass37_.questId); - num2 = ((!_quests.TryGetValue(questId, out value)) ? (-1969703847) : (-1969703848)); - break; - case 5: - return; - case 3: - num2 = -1969703842; - break; - case 6: - num2 = ((num < array3.Length) ? (-1969703844) : (-1969703843)); - break; - case 7: - questInfo.AddQuestLocks(EQuestJoin.AtLeastOne, (from x in array2.Where(_003C_003Ec__DisplayClass37_._003CAddGcFollowUpQuests_003Eb__0) - select _003C_003Ec._202E_202A_202C_200E_200C_200E_202C_206E_206A_200B_202D_200D_206A_202D_202E_202B_206F_200F_206A_202A_206C_206F_206C_202D_200D_202B_206A_200C_206D_202B_200E_200C_200E_202E_202D_202A_202A_206F_202E_200F_202E(x)).ToArray()); - num2 = -1969703846; - break; - case 2: - { - int num6 = num; - num4 = 1; - num5 = num6; - int num7 = num5 ^ num4; - int num8 = num5 & num4; - num = num7 + (num8 + num8); - num2 = -1969703842; - break; + questInfo.AddQuestLocks(EQuestJoin.AtLeastOne, (from x in array + where x != questId + select new QuestId(x)).ToArray()); } - case 0: - questInfo = value as QuestInfo; - num2 = ((questInfo == null) ? (-1969703847) : (-1969703841)); - break; + else + { + _logger.LogWarning("AddGcFollowUpQuests: Quest {QuestId} not found or not a QuestInfo", questId2); } } } @@ -1005,719 +319,483 @@ internal sealed class QuestData select x).ToList(); } - [MethodImpl(MethodImplOptions.NoInlining)] public List<QuestInfo> GetClassJobQuests(EClassJob classJob, bool includeRoleQuests = false) { - int num; - List<uint> list2 = default(List<uint>); - List<uint> list = default(List<uint>); - List<uint> list3; - List<uint> list4; - List<uint> list5; - Span<uint> span; - List<uint> list6; - Span<uint> span2; - List<uint> list7; - List<uint> list8; - Span<uint> span3; - List<uint> list9; - List<uint> list10; - Span<uint> span4; - List<uint> list11; - List<uint> list12; - Span<uint> span5; - List<uint> list13; - Span<uint> span6; - List<uint> list14; - Span<uint> span7; - List<uint> list15; - Span<uint> span8; - List<uint> list16; - List<uint> list17; - Span<uint> span9; - List<uint> list18; - List<uint> list19; - List<uint> list20; - Span<uint> span10; - List<uint> list21; - Span<uint> span11; - List<uint> list22; - Span<uint> span12; - List<uint> list23; - Span<uint> span13; - List<uint> list24; - Span<uint> span14; - List<uint> list25; - Span<uint> span15; - List<uint> list26; - Span<uint> span16; - List<uint> list27; - Span<uint> span17; - List<uint> list28; - Span<uint> span18; - List<uint> list29; - Span<uint> span19; - List<uint> list30; - List<uint> list31; - Span<uint> span20; - List<uint> list32; - List<uint> list33; - Span<uint> span21; - List<uint> list34; - List<uint> list35; - List<uint> list36; - Span<uint> span22; - List<uint> list37; - List<uint> list38; - Span<uint> span23; - List<uint> list39; - Span<uint> span24; - List<uint> list40; - List<uint> list41; - Span<uint> span25; - List<uint> list42; - Span<uint> span26; - int num5; - List<uint> list43; + List<uint> list2; switch (classJob) { - default: - num = -311827817; - goto IL_00c2; - case EClassJob.Weaver: + case EClassJob.Adventurer: + throw new ArgumentOutOfRangeException("classJob"); + case EClassJob.Gladiator: { - num5 = 3; - List<uint> list44 = new List<uint>(num5); - CollectionsMarshal.SetCount(list44, num5); - Span<uint> span27 = CollectionsMarshal.AsSpan(list44); - span27[0] = 45u; - span27[1] = 46u; - span27[2] = 47u; - list2 = list44; - num = -311827835; - goto IL_00c2; + int num = 1; + List<uint> list43 = new List<uint>(num); + CollectionsMarshal.SetCount(list43, num); + CollectionsMarshal.AsSpan(list43)[0] = 63u; + list2 = list43; + break; + } + case EClassJob.Paladin: + { + int num = 3; + List<uint> list42 = new List<uint>(num); + CollectionsMarshal.SetCount(list42, num); + Span<uint> span27 = CollectionsMarshal.AsSpan(list42); + span27[0] = 72u; + span27[1] = 73u; + span27[2] = 74u; + list2 = list42; + break; + } + case EClassJob.Marauder: + { + int num = 1; + List<uint> list41 = new List<uint>(num); + CollectionsMarshal.SetCount(list41, num); + CollectionsMarshal.AsSpan(list41)[0] = 64u; + list2 = list41; + break; + } + case EClassJob.Warrior: + { + int num = 3; + List<uint> list40 = new List<uint>(num); + CollectionsMarshal.SetCount(list40, num); + Span<uint> span26 = CollectionsMarshal.AsSpan(list40); + span26[0] = 76u; + span26[1] = 77u; + span26[2] = 78u; + list2 = list40; + break; + } + case EClassJob.Conjurer: + { + int num = 1; + List<uint> list39 = new List<uint>(num); + CollectionsMarshal.SetCount(list39, num); + CollectionsMarshal.AsSpan(list39)[0] = 65u; + list2 = list39; + break; + } + case EClassJob.WhiteMage: + { + int num = 3; + List<uint> list38 = new List<uint>(num); + CollectionsMarshal.SetCount(list38, num); + Span<uint> span25 = CollectionsMarshal.AsSpan(list38); + span25[0] = 86u; + span25[1] = 87u; + span25[2] = 88u; + list2 = list38; + break; + } + case EClassJob.Arcanist: + { + int num = 1; + List<uint> list37 = new List<uint>(num); + CollectionsMarshal.SetCount(list37, num); + CollectionsMarshal.AsSpan(list37)[0] = 66u; + list2 = list37; + break; + } + case EClassJob.Summoner: + { + int num = 3; + List<uint> list36 = new List<uint>(num); + CollectionsMarshal.SetCount(list36, num); + Span<uint> span24 = CollectionsMarshal.AsSpan(list36); + span24[0] = 127u; + span24[1] = 128u; + span24[2] = 129u; + list2 = list36; + break; + } + case EClassJob.Scholar: + { + int num = 3; + List<uint> list35 = new List<uint>(num); + CollectionsMarshal.SetCount(list35, num); + Span<uint> span23 = CollectionsMarshal.AsSpan(list35); + span23[0] = 90u; + span23[1] = 91u; + span23[2] = 92u; + list2 = list35; + break; } case EClassJob.Pugilist: - goto IL_01ef; - case EClassJob.Goldsmith: - goto IL_021e; - case EClassJob.Machinist: - goto IL_0263; - case EClassJob.Arcanist: - goto IL_02a8; - case EClassJob.Leatherworker: - goto IL_02d7; - case EClassJob.RedMage: - goto IL_031c; - case EClassJob.Viper: - goto IL_035c; - case EClassJob.Blacksmith: - goto IL_038e; - case EClassJob.Rogue: - goto IL_03d3; - case EClassJob.Gladiator: - goto IL_0402; - case EClassJob.Dragoon: - goto IL_0430; - case EClassJob.Reaper: - goto IL_0485; - case EClassJob.Carpenter: - goto IL_04b7; - case EClassJob.Dancer: - goto IL_0504; - case EClassJob.Samurai: - goto IL_053f; - case EClassJob.Alchemist: - goto IL_0579; - case EClassJob.Astrologian: - goto IL_05be; - case EClassJob.Summoner: - goto IL_0603; - case EClassJob.BlackMage: - goto IL_066e; - case EClassJob.Beastmaster: - goto IL_06b3; - case EClassJob.Culinarian: - goto IL_06c5; - case EClassJob.Botanist: - goto IL_070a; - case EClassJob.Miner: - goto IL_074f; - case EClassJob.Ninja: - goto IL_0794; - case EClassJob.Fisher: - goto IL_07d9; - case EClassJob.Marauder: - goto IL_081e; - case EClassJob.Pictomancer: - goto IL_084d; - case EClassJob.Monk: - goto IL_087f; - case EClassJob.Conjurer: - goto IL_08c4; - case EClassJob.Armorer: - goto IL_08f3; - case EClassJob.Adventurer: + { + int num = 1; + List<uint> list34 = new List<uint>(num); + CollectionsMarshal.SetCount(list34, num); + CollectionsMarshal.AsSpan(list34)[0] = 67u; + list2 = list34; break; - case EClassJob.BlueMage: - goto IL_0948; - case EClassJob.Paladin: - goto IL_09a4; - case EClassJob.Warrior: - goto IL_09e9; + } + case EClassJob.Monk: + { + int num = 3; + List<uint> list33 = new List<uint>(num); + CollectionsMarshal.SetCount(list33, num); + Span<uint> span22 = CollectionsMarshal.AsSpan(list33); + span22[0] = 98u; + span22[1] = 99u; + span22[2] = 100u; + list2 = list33; + break; + } case EClassJob.Lancer: - goto IL_0a2e; - case EClassJob.Bard: - goto IL_0a5d; - case EClassJob.Sage: - goto IL_0aae; - case EClassJob.DarkKnight: - goto IL_0ae0; - case EClassJob.Thaumaturge: - goto IL_0b25; - case EClassJob.Scholar: - goto IL_0b54; - case EClassJob.WhiteMage: - goto IL_0b99; - case EClassJob.Archer: - goto IL_0bde; - case EClassJob.Gunbreaker: - goto IL_0c0d; - IL_00c2: - while (true) - { - int num2 = num; - int num3 = -311827818; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 37: - goto end_IL_00c2; - case 7: - goto IL_01ef; - case 18: - goto IL_021e; - case 6: - goto IL_0263; - case 28: - goto IL_02a8; - case 24: - goto IL_02d7; - case 44: - goto IL_031c; - case 36: - goto IL_035c; - case 23: - goto IL_038e; - case 39: - goto IL_03d3; - case 34: - goto IL_0402; - case 49: - goto IL_0430; - case 16: - throw _202D_200B_200E_202B_200D_200F_206E_206D_202B_202A_200C_202A_202C_206F_206F_206F_200D_200B_200C_200F_202A_200C_200F_206F_200F_206F_202D_200F_202D_206E_202E_202A_202A_202B_200F_202B_200B_200F_202B_206F_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1324842693)); - case 21: - goto IL_0485; - case 48: - goto IL_04b7; - case 13: - return GetQuestsInNewGamePlusChapters(list); - case 46: - goto IL_0504; - case 1: - num = -311827834; - break; - case 12: - goto IL_053f; - case 2: - goto IL_0579; - case 14: - goto IL_05be; - case 47: - goto IL_0603; - case 19: - goto IL_064e; - case 25: - goto IL_066e; - case 20: - goto IL_06b3; - case 5: - goto IL_06c5; - case 40: - goto IL_070a; - case 32: - goto IL_074f; - case 38: - goto IL_0794; - case 31: - goto IL_07d9; - case 10: - goto IL_081e; - case 43: - goto IL_084d; - case 41: - goto IL_087f; - case 42: - goto IL_08c4; - case 26: - goto IL_08f3; - case 45: - goto end_IL_0001; - case 11: - goto IL_0948; - case 33: - goto IL_09a4; - case 9: - goto IL_09e9; - case 0: - goto IL_0a2e; - case 15: - goto IL_0a5d; - case 17: - num = -311827817; - break; - case 29: - goto IL_0aae; - case 8: - goto IL_0ae0; - case 3: - goto IL_0b25; - case 35: - goto IL_0b54; - case 27: - goto IL_0b99; - case 22: - goto IL_0bde; - case 30: - goto IL_0c0d; - case 4: - list.AddRange(GetRoleQuestIds(classJob)); - num = -311827813; - break; - } - continue; - IL_064e: - list = list2; - num = ((!includeRoleQuests) ? (-311827813) : (-311827822)); - continue; - end_IL_00c2: - break; - } - goto case EClassJob.Weaver; - IL_0c0d: - num5 = 1; - list3 = new List<uint>(num5); - CollectionsMarshal.SetCount(list3, num5); - CollectionsMarshal.AsSpan(list3)[0] = 84u; - list2 = list3; - num = -311827835; - goto IL_00c2; - IL_0bde: - num5 = 1; - list4 = new List<uint>(num5); - CollectionsMarshal.SetCount(list4, num5); - CollectionsMarshal.AsSpan(list4)[0] = 70u; - list2 = list4; - num = -311827835; - goto IL_00c2; - IL_0b99: - num5 = 3; - list5 = new List<uint>(num5); - CollectionsMarshal.SetCount(list5, num5); - span = CollectionsMarshal.AsSpan(list5); - span[0] = 86u; - span[1] = 87u; - span[2] = 88u; - list2 = list5; - num = -311827835; - goto IL_00c2; - IL_0b54: - num5 = 3; - list6 = new List<uint>(num5); - CollectionsMarshal.SetCount(list6, num5); - span2 = CollectionsMarshal.AsSpan(list6); - span2[0] = 90u; - span2[1] = 91u; - span2[2] = 92u; - list2 = list6; - num = -311827835; - goto IL_00c2; - IL_0b25: - num5 = 1; - list7 = new List<uint>(num5); - CollectionsMarshal.SetCount(list7, num5); - CollectionsMarshal.AsSpan(list7)[0] = 71u; - list2 = list7; - num = -311827835; - goto IL_00c2; - IL_0ae0: - num5 = 3; - list8 = new List<uint>(num5); - CollectionsMarshal.SetCount(list8, num5); - span3 = CollectionsMarshal.AsSpan(list8); - span3[0] = 80u; - span3[1] = 81u; - span3[2] = 82u; - list2 = list8; - num = -311827835; - goto IL_00c2; - IL_0aae: - num5 = 1; - list9 = new List<uint>(num5); - CollectionsMarshal.SetCount(list9, num5); - CollectionsMarshal.AsSpan(list9)[0] = 152u; - list2 = list9; - num = -311827835; - goto IL_00c2; - IL_0a5d: - num5 = 3; - list10 = new List<uint>(num5); - CollectionsMarshal.SetCount(list10, num5); - span4 = CollectionsMarshal.AsSpan(list10); - span4[0] = 113u; - span4[1] = 114u; - span4[2] = 115u; - list2 = list10; - num = -311827835; - goto IL_00c2; - IL_0a2e: - num5 = 1; - list11 = new List<uint>(num5); - CollectionsMarshal.SetCount(list11, num5); - CollectionsMarshal.AsSpan(list11)[0] = 68u; - list2 = list11; - num = -311827835; - goto IL_00c2; - IL_09e9: - num5 = 3; - list12 = new List<uint>(num5); - CollectionsMarshal.SetCount(list12, num5); - span5 = CollectionsMarshal.AsSpan(list12); - span5[0] = 76u; - span5[1] = 77u; - span5[2] = 78u; - list2 = list12; - num = -311827835; - goto IL_00c2; - IL_09a4: - num5 = 3; - list13 = new List<uint>(num5); - CollectionsMarshal.SetCount(list13, num5); - span6 = CollectionsMarshal.AsSpan(list13); - span6[0] = 72u; - span6[1] = 73u; - span6[2] = 74u; - list2 = list13; - num = -311827835; - goto IL_00c2; - IL_0948: - num5 = 4; - list14 = new List<uint>(num5); - CollectionsMarshal.SetCount(list14, num5); - span7 = CollectionsMarshal.AsSpan(list14); - span7[0] = 134u; - span7[1] = 135u; - span7[2] = 146u; - span7[3] = 170u; - list2 = list14; - num = -311827835; - goto IL_00c2; - IL_08f3: - num5 = 3; - list15 = new List<uint>(num5); - CollectionsMarshal.SetCount(list15, num5); - span8 = CollectionsMarshal.AsSpan(list15); - span8[0] = 36u; - span8[1] = 37u; - span8[2] = 38u; - list2 = list15; - num = -311827835; - goto IL_00c2; - IL_08c4: - num5 = 1; - list16 = new List<uint>(num5); - CollectionsMarshal.SetCount(list16, num5); - CollectionsMarshal.AsSpan(list16)[0] = 65u; - list2 = list16; - num = -311827835; - goto IL_00c2; - IL_087f: - num5 = 3; - list17 = new List<uint>(num5); - CollectionsMarshal.SetCount(list17, num5); - span9 = CollectionsMarshal.AsSpan(list17); - span9[0] = 98u; - span9[1] = 99u; - span9[2] = 100u; - list2 = list17; - num = -311827835; - goto IL_00c2; - IL_084d: - num5 = 1; - list18 = new List<uint>(num5); - CollectionsMarshal.SetCount(list18, num5); - CollectionsMarshal.AsSpan(list18)[0] = 177u; - list2 = list18; - num = -311827835; - goto IL_00c2; - IL_081e: - num5 = 1; - list19 = new List<uint>(num5); - CollectionsMarshal.SetCount(list19, num5); - CollectionsMarshal.AsSpan(list19)[0] = 64u; - list2 = list19; - num = -311827835; - goto IL_00c2; - IL_07d9: - num5 = 3; - list20 = new List<uint>(num5); - CollectionsMarshal.SetCount(list20, num5); - span10 = CollectionsMarshal.AsSpan(list20); - span10[0] = 60u; - span10[1] = 61u; - span10[2] = 62u; - list2 = list20; - num = -311827835; - goto IL_00c2; - IL_0794: - num5 = 3; - list21 = new List<uint>(num5); - CollectionsMarshal.SetCount(list21, num5); - span11 = CollectionsMarshal.AsSpan(list21); - span11[0] = 106u; - span11[1] = 107u; - span11[2] = 108u; - list2 = list21; - num = -311827835; - goto IL_00c2; - IL_074f: - num5 = 3; - list22 = new List<uint>(num5); - CollectionsMarshal.SetCount(list22, num5); - span12 = CollectionsMarshal.AsSpan(list22); - span12[0] = 54u; - span12[1] = 55u; - span12[2] = 56u; - list2 = list22; - num = -311827835; - goto IL_00c2; - IL_070a: - num5 = 3; - list23 = new List<uint>(num5); - CollectionsMarshal.SetCount(list23, num5); - span13 = CollectionsMarshal.AsSpan(list23); - span13[0] = 57u; - span13[1] = 58u; - span13[2] = 59u; - list2 = list23; - num = -311827835; - goto IL_00c2; - IL_06c5: - num5 = 3; - list24 = new List<uint>(num5); - CollectionsMarshal.SetCount(list24, num5); - span14 = CollectionsMarshal.AsSpan(list24); - span14[0] = 51u; - span14[1] = 52u; - span14[2] = 53u; - list2 = list24; - num = -311827835; - goto IL_00c2; - IL_06b3: - list2 = new List<uint>(); - num = -311827835; - goto IL_00c2; - IL_066e: - num5 = 3; - list25 = new List<uint>(num5); - CollectionsMarshal.SetCount(list25, num5); - span15 = CollectionsMarshal.AsSpan(list25); - span15[0] = 123u; - span15[1] = 124u; - span15[2] = 125u; - list2 = list25; - num = -311827835; - goto IL_00c2; - IL_0603: - num5 = 3; - list26 = new List<uint>(num5); - CollectionsMarshal.SetCount(list26, num5); - span16 = CollectionsMarshal.AsSpan(list26); - span16[0] = 127u; - span16[1] = 128u; - span16[2] = 129u; - list2 = list26; - num = -311827835; - goto IL_00c2; - IL_05be: - num5 = 3; - list27 = new List<uint>(num5); - CollectionsMarshal.SetCount(list27, num5); - span17 = CollectionsMarshal.AsSpan(list27); - span17[0] = 94u; - span17[1] = 95u; - span17[2] = 96u; - list2 = list27; - num = -311827835; - goto IL_00c2; - IL_0579: - num5 = 3; - list28 = new List<uint>(num5); - CollectionsMarshal.SetCount(list28, num5); - span18 = CollectionsMarshal.AsSpan(list28); - span18[0] = 48u; - span18[1] = 49u; - span18[2] = 50u; - list2 = list28; - num = -311827835; - goto IL_00c2; - IL_053f: - num5 = 2; - list29 = new List<uint>(num5); - CollectionsMarshal.SetCount(list29, num5); - span19 = CollectionsMarshal.AsSpan(list29); - span19[0] = 110u; - span19[1] = 111u; - list2 = list29; - num = -311827835; - goto IL_00c2; - IL_0504: - num5 = 1; - list30 = new List<uint>(num5); - CollectionsMarshal.SetCount(list30, num5); - CollectionsMarshal.AsSpan(list30)[0] = 121u; - list2 = list30; - num = -311827835; - goto IL_00c2; - IL_04b7: - num5 = 3; - list31 = new List<uint>(num5); - CollectionsMarshal.SetCount(list31, num5); - span20 = CollectionsMarshal.AsSpan(list31); - span20[0] = 30u; - span20[1] = 31u; - span20[2] = 32u; - list2 = list31; - num = -311827835; - goto IL_00c2; - IL_0485: - num5 = 1; - list32 = new List<uint>(num5); - CollectionsMarshal.SetCount(list32, num5); - CollectionsMarshal.AsSpan(list32)[0] = 153u; + { + int num = 1; + List<uint> list32 = new List<uint>(num); + CollectionsMarshal.SetCount(list32, num); + CollectionsMarshal.AsSpan(list32)[0] = 68u; list2 = list32; - num = -311827835; - goto IL_00c2; - IL_0430: - num5 = 3; - list33 = new List<uint>(num5); - CollectionsMarshal.SetCount(list33, num5); - span21 = CollectionsMarshal.AsSpan(list33); + break; + } + case EClassJob.Dragoon: + { + int num = 3; + List<uint> list31 = new List<uint>(num); + CollectionsMarshal.SetCount(list31, num); + Span<uint> span21 = CollectionsMarshal.AsSpan(list31); span21[0] = 102u; span21[1] = 103u; span21[2] = 104u; - list2 = list33; - num = -311827835; - goto IL_00c2; - IL_0402: - num5 = 1; - list34 = new List<uint>(num5); - CollectionsMarshal.SetCount(list34, num5); - CollectionsMarshal.AsSpan(list34)[0] = 63u; - list2 = list34; - num = -311827835; - goto IL_00c2; - IL_03d3: - num5 = 1; - list35 = new List<uint>(num5); - CollectionsMarshal.SetCount(list35, num5); - CollectionsMarshal.AsSpan(list35)[0] = 69u; - list2 = list35; - num = -311827835; - goto IL_00c2; - IL_038e: - num5 = 3; - list36 = new List<uint>(num5); - CollectionsMarshal.SetCount(list36, num5); - span22 = CollectionsMarshal.AsSpan(list36); - span22[0] = 33u; - span22[1] = 34u; - span22[2] = 35u; - list2 = list36; - num = -311827835; - goto IL_00c2; - IL_035c: - num5 = 1; - list37 = new List<uint>(num5); - CollectionsMarshal.SetCount(list37, num5); - CollectionsMarshal.AsSpan(list37)[0] = 176u; - list2 = list37; - num = -311827835; - goto IL_00c2; - IL_031c: - num5 = 2; - list38 = new List<uint>(num5); - CollectionsMarshal.SetCount(list38, num5); - span23 = CollectionsMarshal.AsSpan(list38); - span23[0] = 131u; - span23[1] = 132u; - list2 = list38; - num = -311827835; - goto IL_00c2; - IL_02d7: - num5 = 3; - list39 = new List<uint>(num5); - CollectionsMarshal.SetCount(list39, num5); - span24 = CollectionsMarshal.AsSpan(list39); - span24[0] = 42u; - span24[1] = 43u; - span24[2] = 44u; - list2 = list39; - num = -311827835; - goto IL_00c2; - IL_02a8: - num5 = 1; - list40 = new List<uint>(num5); - CollectionsMarshal.SetCount(list40, num5); - CollectionsMarshal.AsSpan(list40)[0] = 66u; - list2 = list40; - num = -311827835; - goto IL_00c2; - IL_0263: - num5 = 3; - list41 = new List<uint>(num5); - CollectionsMarshal.SetCount(list41, num5); - span25 = CollectionsMarshal.AsSpan(list41); - span25[0] = 117u; - span25[1] = 118u; - span25[2] = 119u; - list2 = list41; - num = -311827835; - goto IL_00c2; - IL_021e: - num5 = 3; - list42 = new List<uint>(num5); - CollectionsMarshal.SetCount(list42, num5); - span26 = CollectionsMarshal.AsSpan(list42); - span26[0] = 39u; - span26[1] = 40u; - span26[2] = 41u; - list2 = list42; - num = -311827835; - goto IL_00c2; - IL_01ef: - num5 = 1; - list43 = new List<uint>(num5); - CollectionsMarshal.SetCount(list43, num5); - CollectionsMarshal.AsSpan(list43)[0] = 67u; - list2 = list43; - num = -311827835; - goto IL_00c2; - end_IL_0001: + list2 = list31; break; } - throw _202D_200B_200E_202B_200D_200F_206E_206D_202B_202A_200C_202A_202C_206F_206F_206F_200D_200B_200C_200F_202A_200C_200F_206F_200F_206F_202D_200F_202D_206E_202E_202A_202A_202B_200F_202B_200B_200F_202B_206F_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(688705615)); + case EClassJob.Rogue: + { + int num = 1; + List<uint> list30 = new List<uint>(num); + CollectionsMarshal.SetCount(list30, num); + CollectionsMarshal.AsSpan(list30)[0] = 69u; + list2 = list30; + break; + } + case EClassJob.Ninja: + { + int num = 3; + List<uint> list29 = new List<uint>(num); + CollectionsMarshal.SetCount(list29, num); + Span<uint> span20 = CollectionsMarshal.AsSpan(list29); + span20[0] = 106u; + span20[1] = 107u; + span20[2] = 108u; + list2 = list29; + break; + } + case EClassJob.Archer: + { + int num = 1; + List<uint> list28 = new List<uint>(num); + CollectionsMarshal.SetCount(list28, num); + CollectionsMarshal.AsSpan(list28)[0] = 70u; + list2 = list28; + break; + } + case EClassJob.Bard: + { + int num = 3; + List<uint> list27 = new List<uint>(num); + CollectionsMarshal.SetCount(list27, num); + Span<uint> span19 = CollectionsMarshal.AsSpan(list27); + span19[0] = 113u; + span19[1] = 114u; + span19[2] = 115u; + list2 = list27; + break; + } + case EClassJob.Thaumaturge: + { + int num = 1; + List<uint> list26 = new List<uint>(num); + CollectionsMarshal.SetCount(list26, num); + CollectionsMarshal.AsSpan(list26)[0] = 71u; + list2 = list26; + break; + } + case EClassJob.BlackMage: + { + int num = 3; + List<uint> list25 = new List<uint>(num); + CollectionsMarshal.SetCount(list25, num); + Span<uint> span18 = CollectionsMarshal.AsSpan(list25); + span18[0] = 123u; + span18[1] = 124u; + span18[2] = 125u; + list2 = list25; + break; + } + case EClassJob.DarkKnight: + { + int num = 3; + List<uint> list24 = new List<uint>(num); + CollectionsMarshal.SetCount(list24, num); + Span<uint> span17 = CollectionsMarshal.AsSpan(list24); + span17[0] = 80u; + span17[1] = 81u; + span17[2] = 82u; + list2 = list24; + break; + } + case EClassJob.Astrologian: + { + int num = 3; + List<uint> list23 = new List<uint>(num); + CollectionsMarshal.SetCount(list23, num); + Span<uint> span16 = CollectionsMarshal.AsSpan(list23); + span16[0] = 94u; + span16[1] = 95u; + span16[2] = 96u; + list2 = list23; + break; + } + case EClassJob.Machinist: + { + int num = 3; + List<uint> list22 = new List<uint>(num); + CollectionsMarshal.SetCount(list22, num); + Span<uint> span15 = CollectionsMarshal.AsSpan(list22); + span15[0] = 117u; + span15[1] = 118u; + span15[2] = 119u; + list2 = list22; + break; + } + case EClassJob.Samurai: + { + int num = 2; + List<uint> list21 = new List<uint>(num); + CollectionsMarshal.SetCount(list21, num); + Span<uint> span14 = CollectionsMarshal.AsSpan(list21); + span14[0] = 110u; + span14[1] = 111u; + list2 = list21; + break; + } + case EClassJob.RedMage: + { + int num = 2; + List<uint> list20 = new List<uint>(num); + CollectionsMarshal.SetCount(list20, num); + Span<uint> span13 = CollectionsMarshal.AsSpan(list20); + span13[0] = 131u; + span13[1] = 132u; + list2 = list20; + break; + } + case EClassJob.BlueMage: + { + int num = 4; + List<uint> list19 = new List<uint>(num); + CollectionsMarshal.SetCount(list19, num); + Span<uint> span12 = CollectionsMarshal.AsSpan(list19); + span12[0] = 134u; + span12[1] = 135u; + span12[2] = 146u; + span12[3] = 170u; + list2 = list19; + break; + } + case EClassJob.Gunbreaker: + { + int num = 1; + List<uint> list18 = new List<uint>(num); + CollectionsMarshal.SetCount(list18, num); + CollectionsMarshal.AsSpan(list18)[0] = 84u; + list2 = list18; + break; + } + case EClassJob.Dancer: + { + int num = 1; + List<uint> list17 = new List<uint>(num); + CollectionsMarshal.SetCount(list17, num); + CollectionsMarshal.AsSpan(list17)[0] = 121u; + list2 = list17; + break; + } + case EClassJob.Sage: + { + int num = 1; + List<uint> list16 = new List<uint>(num); + CollectionsMarshal.SetCount(list16, num); + CollectionsMarshal.AsSpan(list16)[0] = 152u; + list2 = list16; + break; + } + case EClassJob.Reaper: + { + int num = 1; + List<uint> list15 = new List<uint>(num); + CollectionsMarshal.SetCount(list15, num); + CollectionsMarshal.AsSpan(list15)[0] = 153u; + list2 = list15; + break; + } + case EClassJob.Viper: + { + int num = 1; + List<uint> list14 = new List<uint>(num); + CollectionsMarshal.SetCount(list14, num); + CollectionsMarshal.AsSpan(list14)[0] = 176u; + list2 = list14; + break; + } + case EClassJob.Pictomancer: + { + int num = 1; + List<uint> list13 = new List<uint>(num); + CollectionsMarshal.SetCount(list13, num); + CollectionsMarshal.AsSpan(list13)[0] = 177u; + list2 = list13; + break; + } + case EClassJob.Beastmaster: + list2 = new List<uint>(); + break; + case EClassJob.Alchemist: + { + int num = 3; + List<uint> list12 = new List<uint>(num); + CollectionsMarshal.SetCount(list12, num); + Span<uint> span11 = CollectionsMarshal.AsSpan(list12); + span11[0] = 48u; + span11[1] = 49u; + span11[2] = 50u; + list2 = list12; + break; + } + case EClassJob.Armorer: + { + int num = 3; + List<uint> list11 = new List<uint>(num); + CollectionsMarshal.SetCount(list11, num); + Span<uint> span10 = CollectionsMarshal.AsSpan(list11); + span10[0] = 36u; + span10[1] = 37u; + span10[2] = 38u; + list2 = list11; + break; + } + case EClassJob.Blacksmith: + { + int num = 3; + List<uint> list10 = new List<uint>(num); + CollectionsMarshal.SetCount(list10, num); + Span<uint> span9 = CollectionsMarshal.AsSpan(list10); + span9[0] = 33u; + span9[1] = 34u; + span9[2] = 35u; + list2 = list10; + break; + } + case EClassJob.Carpenter: + { + int num = 3; + List<uint> list9 = new List<uint>(num); + CollectionsMarshal.SetCount(list9, num); + Span<uint> span8 = CollectionsMarshal.AsSpan(list9); + span8[0] = 30u; + span8[1] = 31u; + span8[2] = 32u; + list2 = list9; + break; + } + case EClassJob.Culinarian: + { + int num = 3; + List<uint> list8 = new List<uint>(num); + CollectionsMarshal.SetCount(list8, num); + Span<uint> span7 = CollectionsMarshal.AsSpan(list8); + span7[0] = 51u; + span7[1] = 52u; + span7[2] = 53u; + list2 = list8; + break; + } + case EClassJob.Goldsmith: + { + int num = 3; + List<uint> list7 = new List<uint>(num); + CollectionsMarshal.SetCount(list7, num); + Span<uint> span6 = CollectionsMarshal.AsSpan(list7); + span6[0] = 39u; + span6[1] = 40u; + span6[2] = 41u; + list2 = list7; + break; + } + case EClassJob.Leatherworker: + { + int num = 3; + List<uint> list6 = new List<uint>(num); + CollectionsMarshal.SetCount(list6, num); + Span<uint> span5 = CollectionsMarshal.AsSpan(list6); + span5[0] = 42u; + span5[1] = 43u; + span5[2] = 44u; + list2 = list6; + break; + } + case EClassJob.Weaver: + { + int num = 3; + List<uint> list5 = new List<uint>(num); + CollectionsMarshal.SetCount(list5, num); + Span<uint> span4 = CollectionsMarshal.AsSpan(list5); + span4[0] = 45u; + span4[1] = 46u; + span4[2] = 47u; + list2 = list5; + break; + } + case EClassJob.Miner: + { + int num = 3; + List<uint> list4 = new List<uint>(num); + CollectionsMarshal.SetCount(list4, num); + Span<uint> span3 = CollectionsMarshal.AsSpan(list4); + span3[0] = 54u; + span3[1] = 55u; + span3[2] = 56u; + list2 = list4; + break; + } + case EClassJob.Botanist: + { + int num = 3; + List<uint> list3 = new List<uint>(num); + CollectionsMarshal.SetCount(list3, num); + Span<uint> span2 = CollectionsMarshal.AsSpan(list3); + span2[0] = 57u; + span2[1] = 58u; + span2[2] = 59u; + list2 = list3; + break; + } + case EClassJob.Fisher: + { + int num = 3; + List<uint> list = new List<uint>(num); + CollectionsMarshal.SetCount(list, num); + Span<uint> span = CollectionsMarshal.AsSpan(list); + span[0] = 60u; + span[1] = 61u; + span[2] = 62u; + list2 = list; + break; + } + default: + throw new ArgumentOutOfRangeException("classJob"); + } + List<uint> list44 = list2; + if (includeRoleQuests) + { + list44.AddRange(GetRoleQuestIds(classJob)); + } + return GetQuestsInNewGamePlusChapters(list44); } public List<QuestInfo> GetRoleQuests(EClassJob referenceClassJob) @@ -1751,56 +829,24 @@ internal sealed class QuestData public static bool JobMatchesRolePreference(ERoleQuestPreference preference, EClassJob classJob) { - int num = ((preference != ERoleQuestPreference.Default) ? 505783966 : 505783967); - RoleQuestData value = default(RoleQuestData); - while (true) + if (preference == ERoleQuestPreference.Default) { - int num2 = num; - int num3 = 505783964; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = 505783967; - break; - case 2: - num = ((!RoleDataByPreference.TryGetValue(preference, out value)) ? 505783964 : 505783965); - break; - case 0: - return false; - case 3: - return true; - case 1: - return value.JobMatch(classJob); - } + return true; } + if (RoleDataByPreference.TryGetValue(preference, out RoleQuestData value)) + { + return value.JobMatch(classJob); + } + return false; } private static RoleQuestData? ResolveRoleData(ERoleQuestPreference preference, EClassJob currentJob) { - int num = ((preference == ERoleQuestPreference.Default) ? (-1367229614) : (-1367229615)); - RoleQuestData value = default(RoleQuestData); - while (true) + if (preference != ERoleQuestPreference.Default && RoleDataByPreference.TryGetValue(preference, out RoleQuestData value)) { - int num2 = num; - int num3 = -1367229616; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return ResolveRoleDataForJob(currentJob); - case 1: - num = ((!RoleDataByPreference.TryGetValue(preference, out value)) ? (-1367229614) : (-1367229613)); - break; - case 0: - num = -1367229615; - break; - case 3: - return value; - } + return value; } + return ResolveRoleDataForJob(currentJob); } private static RoleQuestData? ResolveRoleDataForJob(EClassJob classJob) @@ -1817,308 +863,237 @@ internal sealed class QuestData public static List<QuestId> GetLockedClassQuests() { - byte b = _202A_202D_200C_202C_202D_206D_202C_200D_202C_200F_202E_202C_202B_206E_200F_202B_206A_200B_206D_202B_206C_206A_200C_200F_202D_200C_206B_206E_206F_206D_200D_202C_206F_206E_200D_206C_200B_202C_206D_202C_202E(); - int num = ((b != _cachedFirstClass) ? (-1241614056) : (-1241614050)); - EClassJob eClassJob = default(EClassJob); - while (true) + byte firstClass = PlayerStateHelper.GetFirstClass(); + if (firstClass == _cachedFirstClass && _cachedLockedClassQuests.Count > 0) { - int num2 = num; - int num3 = -1241614049; - int num4 = num2; - int num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return new List<QuestId>(); - case 7: - num = ((b != 0) ? (-1241614054) : (-1241614055)); - break; - case 2: - { - int num6 = 8; - List<List<ushort>> list = new List<List<ushort>>(num6); - CollectionsMarshal.SetCount(list, num6); - Span<List<ushort>> span = CollectionsMarshal.AsSpan(list); - ref List<ushort> reference = ref span[0]; - List<ushort> list2; - if (eClassJob != EClassJob.Gladiator) - { - int num7 = 2; - list2 = new List<ushort>(num7); - CollectionsMarshal.SetCount(list2, num7); - Span<ushort> span2 = CollectionsMarshal.AsSpan(list2); - span2[0] = 253; - span2[1] = 261; - } - else - { - int num7 = 4; - list2 = new List<ushort>(num7); - CollectionsMarshal.SetCount(list2, num7); - Span<ushort> span3 = CollectionsMarshal.AsSpan(list2); - span3[0] = 177; - span3[1] = 285; - span3[2] = 286; - span3[3] = 288; - } - reference = list2; - ref List<ushort> reference2 = ref span[1]; - List<ushort> list3; - if (eClassJob != EClassJob.Pugilist) - { - int num7 = 2; - list3 = new List<ushort>(num7); - CollectionsMarshal.SetCount(list3, num7); - Span<ushort> span4 = CollectionsMarshal.AsSpan(list3); - span4[0] = 533; - span4[1] = 555; - } - else - { - int num7 = 4; - list3 = new List<ushort>(num7); - CollectionsMarshal.SetCount(list3, num7); - Span<ushort> span5 = CollectionsMarshal.AsSpan(list3); - span5[0] = 178; - span5[1] = 532; - span5[2] = 553; - span5[3] = 698; - } - reference2 = list3; - ref List<ushort> reference3 = ref span[2]; - List<ushort> list4; - if (eClassJob != EClassJob.Marauder) - { - int num7 = 2; - list4 = new List<ushort>(num7); - CollectionsMarshal.SetCount(list4, num7); - Span<ushort> span6 = CollectionsMarshal.AsSpan(list4); - span6[0] = 311; - span6[1] = 314; - } - else - { - int num7 = 4; - list4 = new List<ushort>(num7); - CollectionsMarshal.SetCount(list4, num7); - Span<ushort> span7 = CollectionsMarshal.AsSpan(list4); - span7[0] = 179; - span7[1] = 310; - span7[2] = 312; - span7[3] = 315; - } - reference3 = list4; - ref List<ushort> reference4 = ref span[3]; - List<ushort> list5; - if (eClassJob != EClassJob.Lancer) - { - int num7 = 2; - list5 = new List<ushort>(num7); - CollectionsMarshal.SetCount(list5, num7); - Span<ushort> span8 = CollectionsMarshal.AsSpan(list5); - span8[0] = 23; - span8[1] = 35; - } - else - { - int num7 = 4; - list5 = new List<ushort>(num7); - CollectionsMarshal.SetCount(list5, num7); - Span<ushort> span9 = CollectionsMarshal.AsSpan(list5); - span9[0] = 180; - span9[1] = 132; - span9[2] = 218; - span9[3] = 143; - } - reference4 = list5; - ref List<ushort> reference5 = ref span[4]; - List<ushort> list6; - if (eClassJob != EClassJob.Archer) - { - int num7 = 2; - list6 = new List<ushort>(num7); - CollectionsMarshal.SetCount(list6, num7); - Span<ushort> span10 = CollectionsMarshal.AsSpan(list6); - span10[0] = 21; - span10[1] = 67; - } - else - { - int num7 = 4; - list6 = new List<ushort>(num7); - CollectionsMarshal.SetCount(list6, num7); - Span<ushort> span11 = CollectionsMarshal.AsSpan(list6); - span11[0] = 181; - span11[1] = 131; - span11[2] = 219; - span11[3] = 134; - } - reference5 = list6; - ref List<ushort> reference6 = ref span[5]; - List<ushort> list7; - if (eClassJob != EClassJob.Conjurer) - { - int num7 = 2; - list7 = new List<ushort>(num7); - CollectionsMarshal.SetCount(list7, num7); - Span<ushort> span12 = CollectionsMarshal.AsSpan(list7); - span12[0] = 22; - span12[1] = 91; - } - else - { - int num7 = 4; - list7 = new List<ushort>(num7); - CollectionsMarshal.SetCount(list7, num7); - Span<ushort> span13 = CollectionsMarshal.AsSpan(list7); - span13[0] = 182; - span13[1] = 133; - span13[2] = 211; - span13[3] = 147; - } - reference6 = list7; - ref List<ushort> reference7 = ref span[6]; - List<ushort> list8; - if (eClassJob != EClassJob.Thaumaturge) - { - int num7 = 2; - list8 = new List<ushort>(num7); - CollectionsMarshal.SetCount(list8, num7); - Span<ushort> span14 = CollectionsMarshal.AsSpan(list8); - span14[0] = 345; - span14[1] = 348; - } - else - { - int num7 = 4; - list8 = new List<ushort>(num7); - CollectionsMarshal.SetCount(list8, num7); - Span<ushort> span15 = CollectionsMarshal.AsSpan(list8); - span15[0] = 183; - span15[1] = 344; - span15[2] = 346; - span15[3] = 349; - } - reference7 = list8; - ref List<ushort> reference8 = ref span[7]; - List<ushort> list9; - if (eClassJob != EClassJob.Arcanist) - { - int num7 = 2; - list9 = new List<ushort>(num7); - CollectionsMarshal.SetCount(list9, num7); - Span<ushort> span16 = CollectionsMarshal.AsSpan(list9); - span16[0] = 453; - span16[1] = 456; - } - else - { - int num7 = 4; - list9 = new List<ushort>(num7); - CollectionsMarshal.SetCount(list9, num7); - Span<ushort> span17 = CollectionsMarshal.AsSpan(list9); - span17[0] = 451; - span17[1] = 452; - span17[2] = 454; - span17[3] = 457; - } - reference8 = list9; - _cachedFirstClass = b; - _cachedLockedClassQuests = (from x in list.SelectMany((List<ushort> x) => x) - select _003C_003Ec._202E_202A_202C_200E_200C_200E_202C_206E_206A_200B_202D_200D_206A_202D_202E_202B_206F_200F_206A_202A_206C_206F_206C_202D_200D_202B_206A_200C_206D_202B_200E_200C_200E_202E_202D_202A_202A_206F_202E_200F_202E(x)).ToList(); - return _cachedLockedClassQuests; - } - case 5: - num5 = b; - goto IL_05df; - case 4: - return _cachedLockedClassQuests; - case 1: - num = ((_cachedLockedClassQuests.Count <= 0) ? (-1241614056) : (-1241614053)); - break; - case 0: - num = -1241614050; - break; - case 6: - { - num5 = 0; - goto IL_05df; - } - IL_05df: - eClassJob = (EClassJob)num5; - num = ((eClassJob != EClassJob.Adventurer) ? (-1241614051) : (-1241614052)); - break; - } + return _cachedLockedClassQuests; } + EClassJob eClassJob = (EClassJob)((firstClass != 0) ? firstClass : 0); + if (eClassJob == EClassJob.Adventurer) + { + return new List<QuestId>(); + } + int num = 8; + List<List<ushort>> list = new List<List<ushort>>(num); + CollectionsMarshal.SetCount(list, num); + Span<List<ushort>> span = CollectionsMarshal.AsSpan(list); + ref List<ushort> reference = ref span[0]; + List<ushort> list2; + if (eClassJob != EClassJob.Gladiator) + { + int num2 = 2; + list2 = new List<ushort>(num2); + CollectionsMarshal.SetCount(list2, num2); + Span<ushort> span2 = CollectionsMarshal.AsSpan(list2); + span2[0] = 253; + span2[1] = 261; + } + else + { + int num2 = 4; + list2 = new List<ushort>(num2); + CollectionsMarshal.SetCount(list2, num2); + Span<ushort> span3 = CollectionsMarshal.AsSpan(list2); + span3[0] = 177; + span3[1] = 285; + span3[2] = 286; + span3[3] = 288; + } + reference = list2; + ref List<ushort> reference2 = ref span[1]; + List<ushort> list3; + if (eClassJob != EClassJob.Pugilist) + { + int num2 = 2; + list3 = new List<ushort>(num2); + CollectionsMarshal.SetCount(list3, num2); + Span<ushort> span4 = CollectionsMarshal.AsSpan(list3); + span4[0] = 533; + span4[1] = 555; + } + else + { + int num2 = 4; + list3 = new List<ushort>(num2); + CollectionsMarshal.SetCount(list3, num2); + Span<ushort> span5 = CollectionsMarshal.AsSpan(list3); + span5[0] = 178; + span5[1] = 532; + span5[2] = 553; + span5[3] = 698; + } + reference2 = list3; + ref List<ushort> reference3 = ref span[2]; + List<ushort> list4; + if (eClassJob != EClassJob.Marauder) + { + int num2 = 2; + list4 = new List<ushort>(num2); + CollectionsMarshal.SetCount(list4, num2); + Span<ushort> span6 = CollectionsMarshal.AsSpan(list4); + span6[0] = 311; + span6[1] = 314; + } + else + { + int num2 = 4; + list4 = new List<ushort>(num2); + CollectionsMarshal.SetCount(list4, num2); + Span<ushort> span7 = CollectionsMarshal.AsSpan(list4); + span7[0] = 179; + span7[1] = 310; + span7[2] = 312; + span7[3] = 315; + } + reference3 = list4; + ref List<ushort> reference4 = ref span[3]; + List<ushort> list5; + if (eClassJob != EClassJob.Lancer) + { + int num2 = 2; + list5 = new List<ushort>(num2); + CollectionsMarshal.SetCount(list5, num2); + Span<ushort> span8 = CollectionsMarshal.AsSpan(list5); + span8[0] = 23; + span8[1] = 35; + } + else + { + int num2 = 4; + list5 = new List<ushort>(num2); + CollectionsMarshal.SetCount(list5, num2); + Span<ushort> span9 = CollectionsMarshal.AsSpan(list5); + span9[0] = 180; + span9[1] = 132; + span9[2] = 218; + span9[3] = 143; + } + reference4 = list5; + ref List<ushort> reference5 = ref span[4]; + List<ushort> list6; + if (eClassJob != EClassJob.Archer) + { + int num2 = 2; + list6 = new List<ushort>(num2); + CollectionsMarshal.SetCount(list6, num2); + Span<ushort> span10 = CollectionsMarshal.AsSpan(list6); + span10[0] = 21; + span10[1] = 67; + } + else + { + int num2 = 4; + list6 = new List<ushort>(num2); + CollectionsMarshal.SetCount(list6, num2); + Span<ushort> span11 = CollectionsMarshal.AsSpan(list6); + span11[0] = 181; + span11[1] = 131; + span11[2] = 219; + span11[3] = 134; + } + reference5 = list6; + ref List<ushort> reference6 = ref span[5]; + List<ushort> list7; + if (eClassJob != EClassJob.Conjurer) + { + int num2 = 2; + list7 = new List<ushort>(num2); + CollectionsMarshal.SetCount(list7, num2); + Span<ushort> span12 = CollectionsMarshal.AsSpan(list7); + span12[0] = 22; + span12[1] = 91; + } + else + { + int num2 = 4; + list7 = new List<ushort>(num2); + CollectionsMarshal.SetCount(list7, num2); + Span<ushort> span13 = CollectionsMarshal.AsSpan(list7); + span13[0] = 182; + span13[1] = 133; + span13[2] = 211; + span13[3] = 147; + } + reference6 = list7; + ref List<ushort> reference7 = ref span[6]; + List<ushort> list8; + if (eClassJob != EClassJob.Thaumaturge) + { + int num2 = 2; + list8 = new List<ushort>(num2); + CollectionsMarshal.SetCount(list8, num2); + Span<ushort> span14 = CollectionsMarshal.AsSpan(list8); + span14[0] = 345; + span14[1] = 348; + } + else + { + int num2 = 4; + list8 = new List<ushort>(num2); + CollectionsMarshal.SetCount(list8, num2); + Span<ushort> span15 = CollectionsMarshal.AsSpan(list8); + span15[0] = 183; + span15[1] = 344; + span15[2] = 346; + span15[3] = 349; + } + reference7 = list8; + ref List<ushort> reference8 = ref span[7]; + List<ushort> list9; + if (eClassJob != EClassJob.Arcanist) + { + int num2 = 2; + list9 = new List<ushort>(num2); + CollectionsMarshal.SetCount(list9, num2); + Span<ushort> span16 = CollectionsMarshal.AsSpan(list9); + span16[0] = 453; + span16[1] = 456; + } + else + { + int num2 = 4; + list9 = new List<ushort>(num2); + CollectionsMarshal.SetCount(list9, num2); + Span<ushort> span17 = CollectionsMarshal.AsSpan(list9); + span17[0] = 451; + span17[1] = 452; + span17[2] = 454; + span17[3] = 457; + } + reference8 = list9; + _cachedFirstClass = firstClass; + _cachedLockedClassQuests = (from x in list.SelectMany((List<ushort> x) => x) + select new QuestId(x)).ToList(); + return _cachedLockedClassQuests; } - [MethodImpl(MethodImplOptions.NoInlining)] public void ApplySeasonalOverride(ElementId questId, bool isSeasonal, DateTime? expiry) { - IQuestInfo value; - int num = ((!_quests.TryGetValue(questId, out value)) ? 1563318805 : 1563318803); - QuestInfo questInfo = default(QuestInfo); - while (true) + if (_quests.TryGetValue(questId, out IQuestInfo value) && value is QuestInfo questInfo) { - int num2 = num; - int num3 = 1563318805; - int num4 = num2; - DateTime? obj; - DateTime? seasonalQuestExpiry; - switch ((num4 | num3) - (num4 & num3)) - { - case 9: - _200B_200E_202C_206C_200F_206A_206B_202E_206C_206C_206A_202C_202C_200B_200B_206D_206A_206C_202E_206A_206A_206C_206D_202B_202A_200D_200E_206F_206F_202C_206D_202C_206E_206C_200F_206B_202E_200E_202B_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(723364257), new object[1] { questId }); - return; - case 4: - num = (expiry.HasValue ? 1563318804 : 1563318813); - break; - case 7: - num = ((value == null) ? 1563318807 : 1563318806); - break; - case 6: - questInfo = value as QuestInfo; - num = ((questInfo == null) ? 1563318805 : 1563318801); - break; - case 1: - obj = ExpiryUtils.NormalizeExpiry(expiry.Value); - goto IL_010b; - case 5: - num = 1563318803; - break; - case 0: - num = ((!(value is UnlockLinkQuestInfo)) ? 1563318802 : 1563318812); - break; - case 8: - obj = null; - goto IL_010b; - case 3: - _200B_200E_202C_206C_200F_206A_206B_202E_206C_206C_206A_202C_202C_200B_200B_206D_206A_206C_202E_206A_206A_206C_206D_202B_202A_200D_200E_206F_206F_202C_206D_202C_206E_206C_200F_206B_202E_200E_202B_200F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1550302133), new object[2] - { - questId, - _206B_202D_206F_202B_206D_202D_200E_202E_206B_202D_200C_206A_202A_200B_202A_206C_202B_202A_202C_202E_202D_202A_202A_206B_200D_200E_206F_200F_202E_202C_206F_200E_202D_200E_206D_202C_200E_202B_206A_202E((MemberInfo)_206A_206E_206F_202B_200E_200C_206B_206B_200B_200F_206A_200E_200E_202A_202D_206A_206E_202B_206C_202C_202C_202E_200B_200E_200F_206E_202C_202A_202D_200F_206E_206B_200E_200C_200E_206B_200E_202A_200B_206D_202E((object)value)) - }); - return; - case 2: - { - _206A_200D_202A_202D_200D_202E_200E_206E_200C_206A_202C_206D_200C_202C_206D_200F_206C_200C_206B_202D_200C_200B_202B_206E_200E_202D_206E_202D_206A_202E_200B_206A_200E_202E_202E_202E_206F_202C_200B_206A_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1273478229), new object[1] { questId }); - return; - } - IL_010b: - seasonalQuestExpiry = obj; - questInfo.IsSeasonalQuest = isSeasonal; - questInfo.SeasonalQuestExpiry = seasonalQuestExpiry; - return; - } + DateTime? seasonalQuestExpiry = (expiry.HasValue ? new DateTime?(ExpiryUtils.NormalizeExpiry(expiry.Value)) : ((DateTime?)null)); + questInfo.IsSeasonalQuest = isSeasonal; + questInfo.SeasonalQuestExpiry = seasonalQuestExpiry; + } + else if (value is UnlockLinkQuestInfo) + { + _logger.LogDebug("ApplySeasonalOverride: Quest {QuestId} is UnlockLinkQuestInfo (expiry handled at construction)", questId); + } + else if (value != null) + { + _logger.LogDebug("ApplySeasonalOverride: Quest {QuestId} is {Type}, seasonal override not applicable", questId, value.GetType().Name); + } + else + { + _logger.LogWarning("ApplySeasonalOverride: Quest {QuestId} not found in QuestData", questId); } } - [MethodImpl(MethodImplOptions.NoInlining)] public void AddOrReplaceQuestInfo(IQuestInfo info) { - _200D_206A_200E_202A_206F_202B_202E_202D_200F_202A_202A_202E_206A_206E_200F_202C_202D_202D_200E_206A_202C_200D_202A_202B_206A_206E_206E_206C_202C_200F_206A_200F_200F_206E_206C_206F_202B_202C_206C_206A_202E((object)info, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1327166408)); + ArgumentNullException.ThrowIfNull(info, "info"); _quests[info.QuestId] = info; - _200B_200E_202C_206C_200F_206A_206B_202E_206C_206C_206A_202C_202C_200B_200B_206D_206A_206C_202E_206A_206A_206C_206D_202B_202A_200D_200E_206F_206F_202C_206D_202C_206E_206C_200F_206B_202E_200E_202B_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(653660238), new object[1] { info.QuestId }); + _logger.LogDebug("Added or replaced QuestInfo for {QuestId} in QuestData", info.QuestId); } static QuestData() @@ -2385,105 +1360,51 @@ internal sealed class QuestData span29[2] = 5178; span29[3] = 5179; dictionary.Add(1192u, list29); - AetherCurrentQuestsByTerritory = dictionary.ToImmutableDictionary((KeyValuePair<uint, List<ushort>> x) => x.Key, (KeyValuePair<uint, List<ushort>> x) => x.Value.Select((ushort y) => _003C_003Ec._202E_202A_202C_200E_200C_200E_202C_206E_206A_200B_202D_200D_206A_202D_202E_202B_206F_200F_206A_202A_206C_206F_206C_202D_200D_202B_206A_200C_206D_202B_200E_200C_200E_202E_202D_202A_202A_206F_202E_200F_202E(y)).ToImmutableList()); + AetherCurrentQuestsByTerritory = dictionary.ToImmutableDictionary((KeyValuePair<uint, List<ushort>> x) => x.Key, (KeyValuePair<uint, List<ushort>> x) => x.Value.Select((ushort y) => new QuestId(y)).ToImmutableList()); AetherCurrentQuests = AetherCurrentQuestsByTerritory.Values.SelectMany((ImmutableList<QuestId> x) => x).ToImmutableHashSet(); - uint[] array = new uint[3]; - _202E_200D_202B_202D_200C_206B_206F_200F_206A_202B_200F_200B_202A_200E_206A_200D_206C_200F_202D_200B_200B_200C_200D_206D_200B_202C_200D_206F_206B_206B_200B_200D_200F_202B_202B_206D_200D_200D_206B_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - TankRoleQuestChapters = new global::_003C_003Ez__ReadOnlyArray<uint>(array); - uint[] array2 = new uint[3]; - _202E_200D_202B_202D_200C_206B_206F_200F_206A_202B_200F_200B_202A_200E_206A_200D_206C_200F_202D_200B_200B_200C_200D_206D_200B_202C_200D_206F_206B_206B_200B_200D_200F_202B_202B_206D_200D_200D_206B_202E((Array)array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - HealerRoleQuestChapters = new global::_003C_003Ez__ReadOnlyArray<uint>(array2); - uint[] array3 = new uint[3]; - _202E_200D_202B_202D_200C_206B_206F_200F_206A_202B_200F_200B_202A_200E_206A_200D_206C_200F_202D_200B_200B_200C_200D_206D_200B_202C_200D_206F_206B_206B_200B_200D_200F_202B_202B_206D_200D_200D_206B_202E((Array)array3, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - MeleeRoleQuestChapters = new global::_003C_003Ez__ReadOnlyArray<uint>(array3); - uint[] array4 = new uint[3]; - _202E_200D_202B_202D_200C_206B_206F_200F_206A_202B_200F_200B_202A_200E_206A_200D_206C_200F_202D_200B_200B_200C_200D_206D_200B_202C_200D_206F_206B_206B_200B_200D_200F_202B_202B_206D_200D_200D_206B_202E((Array)array4, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - PhysicalRangedRoleQuestChapters = new global::_003C_003Ez__ReadOnlyArray<uint>(array4); - uint[] array5 = new uint[3]; - _202E_200D_202B_202D_200C_206B_206F_200F_206A_202B_200F_200B_202A_200E_206A_200D_206C_200F_202D_200B_200B_200C_200D_206D_200B_202C_200D_206F_206B_206B_200B_200D_200F_202B_202B_206D_200D_200D_206B_202E((Array)array5, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - CasterRoleQuestChapters = new global::_003C_003Ez__ReadOnlyArray<uint>(array5); + TankRoleQuestChapters = new global::_003C_003Ez__ReadOnlyArray<uint>(new uint[3] { 136u, 154u, 178u }); + HealerRoleQuestChapters = new global::_003C_003Ez__ReadOnlyArray<uint>(new uint[3] { 137u, 155u, 179u }); + MeleeRoleQuestChapters = new global::_003C_003Ez__ReadOnlyArray<uint>(new uint[3] { 138u, 156u, 180u }); + PhysicalRangedRoleQuestChapters = new global::_003C_003Ez__ReadOnlyArray<uint>(new uint[3] { 138u, 157u, 181u }); + CasterRoleQuestChapters = new global::_003C_003Ez__ReadOnlyArray<uint>(new uint[3] { 139u, 158u, 182u }); AllRoleQuestChapters = new global::_003C_003Ez__ReadOnlyArray<IReadOnlyList<uint>>(new IReadOnlyList<uint>[5] { TankRoleQuestChapters, HealerRoleQuestChapters, MeleeRoleQuestChapters, PhysicalRangedRoleQuestChapters, CasterRoleQuestChapters }); FinalShadowbringersRoleQuests = new global::_003C_003Ez__ReadOnlyArray<QuestId>(new QuestId[4] { - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)3248), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)3272), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)3278), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)3628) + new QuestId(3248), + new QuestId(3272), + new QuestId(3278), + new QuestId(3628) }); TankData = new RoleQuestData(TankRoleQuestChapters, new global::_003C_003Ez__ReadOnlyArray<QuestId>(new QuestId[3] { - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)3248), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)4107), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)4823) - }), (EClassJob j) => _003C_003Ec._206F_206E_206F_206F_200F_200B_202C_202C_206B_202E_206F_202A_206E_206B_202D_206D_206A_200F_200C_206A_206B_200B_202A_202D_202E_202D_200E_202A_200F_200C_202D_200D_200F_200D_200E_200E_200F_200E_206D_206A_202E(j)); + new QuestId(3248), + new QuestId(4107), + new QuestId(4823) + }), (EClassJob j) => j.IsTank()); HealerData = new RoleQuestData(HealerRoleQuestChapters, new global::_003C_003Ez__ReadOnlyArray<QuestId>(new QuestId[3] { - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)3272), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)4113), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)4829) - }), (EClassJob j) => _003C_003Ec._200E_202D_202A_200E_202E_206C_202D_200B_200B_206E_202E_206A_206C_200B_200D_200F_200B_200C_202D_206A_200C_206A_200F_200D_202B_206F_206F_200C_200B_202D_206E_206E_200E_202A_202E_206C_200E_206C_202B_206D_202E(j)); + new QuestId(3272), + new QuestId(4113), + new QuestId(4829) + }), (EClassJob j) => j.IsHealer()); MeleeData = new RoleQuestData(MeleeRoleQuestChapters, new global::_003C_003Ez__ReadOnlyArray<QuestId>(new QuestId[3] { - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)3278), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)4119), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)4835) - }), delegate(EClassJob j) - { - int num2 = ((!_003C_003Ec._202A_200F_202A_206C_206D_202C_206A_200E_206F_200B_202C_202D_206D_200E_206C_206F_200F_206B_206D_200C_206B_202D_200C_206D_202C_200B_200C_202D_206B_200B_206F_206F_206B_200D_202E_206B_200C_202A_202E_202C_202E(j)) ? 218387131 : 218387128); - while (true) - { - int num3 = num2; - int num4 = 218387129; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 0: - goto IL_0048; - case 1: - return j != EClassJob.Beastmaster; - case 2: - return false; - } - continue; - IL_0048: - num2 = 218387128; - } - }); + new QuestId(3278), + new QuestId(4119), + new QuestId(4835) + }), (EClassJob j) => j.IsMelee() && j != EClassJob.Beastmaster); PhysicalRangedData = new RoleQuestData(PhysicalRangedRoleQuestChapters, new global::_003C_003Ez__ReadOnlyArray<QuestId>(new QuestId[3] { - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)3278), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)4125), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)4841) - }), (EClassJob j) => _003C_003Ec._200B_206B_202A_206E_200D_206B_200F_202A_206D_200E_200E_202E_200B_206A_206F_202A_206F_200E_202D_200C_206F_202A_202D_202C_202B_206A_202D_206B_200D_202D_202E_206D_200F_206C_200C_200E_200D_202C_206E_200D_202E(j)); + new QuestId(3278), + new QuestId(4125), + new QuestId(4841) + }), (EClassJob j) => j.IsPhysicalRanged()); CasterData = new RoleQuestData(CasterRoleQuestChapters, new global::_003C_003Ez__ReadOnlyArray<QuestId>(new QuestId[3] { - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)3628), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)4131), - _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E((ushort)4847) - }), delegate(EClassJob j) - { - int num2 = ((!_003C_003Ec._200F_202B_206C_200B_202A_206D_200D_202E_200C_206C_206F_206D_200B_202D_200F_206E_202E_200B_206C_206C_202A_206D_202B_206B_200B_206B_200F_202D_200F_202A_206B_202A_200D_200F_206D_202D_206A_202C_202D_202D_202E(j)) ? (-542512) : (-542509)); - while (true) - { - int num3 = num2; - int num4 = -542511; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - goto IL_0046; - case 1: - return false; - case 2: - return j != EClassJob.BlueMage; - } - continue; - IL_0046: - num2 = -542509; - } - }); + new QuestId(3628), + new QuestId(4131), + new QuestId(4847) + }), (EClassJob j) => j.IsCaster() && j != EClassJob.BlueMage); RoleDataByPreference = new Dictionary<ERoleQuestPreference, RoleQuestData> { [ERoleQuestPreference.Tank] = TankData, @@ -2495,69 +1416,4 @@ internal sealed class QuestData AllRoleData = new global::_003C_003Ez__ReadOnlyArray<RoleQuestData>(new RoleQuestData[5] { TankData, HealerData, MeleeData, PhysicalRangedData, CasterData }); _cachedLockedClassQuests = new List<QuestId>(); } - - static ushort _206D_202C_206E_206A_206E_202C_206E_200E_202D_202E_202A_202A_206C_200E_200E_206C_202D_206E_206B_206F_200E_200D_200E_202D_200F_202A_200D_200C_202E_200D_206E_206C_206D_206F_202E_200E_206F_202D_200F_206D_202E(ElementId P_0) - { - return P_0.Value; - } - - static ArgumentNullException _202E_206B_200E_206E_206A_206D_206A_206B_206C_202D_202E_202E_200B_200E_206E_206E_202E_200F_202E_206C_206C_206F_202D_200B_206A_206A_200C_202B_206B_206A_206A_202D_202B_202B_200E_200B_206F_200E_202C_202E_202E(string P_0) - { - return new ArgumentNullException(P_0); - } - - static bool _202D_200C_206B_200B_206A_202D_200C_200C_206B_206D_206C_200D_202C_202A_200E_200E_206F_202D_206A_200B_202C_200E_206D_202B_200D_206A_202C_200E_206F_200D_206A_202D_202C_202C_202E_206B_200D_202E_206D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200E_202B_206F_202C_206E_200C_206B_206B_206A_206A_202D_202E_202B_202E_200F_200C_200E_206F_200F_202C_202E_206D_206B_202E_206D_200B_200F_206D_206C_206B_200B_202A_206F_206A_202C_202B_202A_202E_200E_200C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _200B_200E_202C_206C_200F_206A_206B_202E_206C_206C_206A_202C_202C_200B_200B_206D_206A_206C_202E_206A_206A_206C_206D_202B_202A_200D_200E_206F_206F_202C_206D_202C_206E_206C_200F_206B_202E_200E_202B_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _202E_200D_202B_202D_200C_206B_206F_200F_206A_202B_200F_200B_202A_200E_206A_200D_206C_200F_202D_200B_200B_200C_200D_206D_200B_202C_200D_206F_206B_206B_200B_200D_200F_202B_202B_206D_200D_200D_206B_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); - } - - static QuestId _200C_202D_202E_200C_206F_202E_202A_202D_206B_206B_200E_202B_202C_206B_206F_206D_206E_202C_200B_200E_206D_200B_200C_202E_202D_200E_202D_206F_202E_200D_202E_206A_206F_206A_200E_202C_200E_206E_200B_206C_202E(ushort P_0) - { - return new QuestId(P_0); - } - - static void _206A_200D_202A_202D_200D_202E_200E_206E_200C_206A_202C_206D_200C_202C_206D_200F_206C_200C_206B_202D_200C_200B_202B_206E_200E_202D_206E_202D_206A_202E_200B_206A_200E_202E_202E_202E_206F_202C_200B_206A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static ArgumentOutOfRangeException _202D_200B_200E_202B_200D_200F_206E_206D_202B_202A_200C_202A_202C_206F_206F_206F_200D_200B_200C_200F_202A_200C_200F_206F_200F_206F_202D_200F_202D_206E_202E_202A_202A_202B_200F_202B_200B_200F_202B_206F_202E(string P_0) - { - return new ArgumentOutOfRangeException(P_0); - } - - static byte _202A_202D_200C_202C_202D_206D_202C_200D_202C_200F_202E_202C_202B_206E_200F_202B_206A_200B_206D_202B_206C_206A_200C_200F_202D_200C_206B_206E_206F_206D_200D_202C_206F_206E_200D_206C_200B_202C_206D_202C_202E() - { - return PlayerStateHelper.GetFirstClass(); - } - - static Type _206A_206E_206F_202B_200E_200C_206B_206B_200B_200F_206A_200E_200E_202A_202D_206A_206E_202B_206C_202C_202C_202E_200B_200E_200F_206E_202C_202A_202D_200F_206E_206B_200E_200C_200E_206B_200E_202A_200B_206D_202E(object P_0) - { - return P_0.GetType(); - } - - static string _206B_202D_206F_202B_206D_202D_200E_202E_206B_202D_200C_206A_202A_200B_202A_206C_202B_202A_202C_202E_202D_202A_202A_206B_200D_200E_206F_200F_202E_202C_206F_200E_202D_200E_206D_202C_200E_202B_206A_202E(MemberInfo P_0) - { - return P_0.Name; - } - - static void _200D_206A_200E_202A_206F_202B_202E_202D_200F_202A_202A_202E_206A_206E_200F_202C_202D_202D_200E_206A_202C_200D_202A_202B_206A_206E_206E_206C_202C_200F_206A_200F_200F_206E_206C_206F_202B_202C_206C_206A_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } } diff --git a/Questionable/Questionable.Data/SinglePlayerDutyEntry.cs b/Questionable/Questionable.Data/SinglePlayerDutyEntry.cs index 53c1150..baab17f 100644 --- a/Questionable/Questionable.Data/SinglePlayerDutyEntry.cs +++ b/Questionable/Questionable.Data/SinglePlayerDutyEntry.cs @@ -1,153 +1,3 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; - namespace Questionable.Data; -public record SinglePlayerDutyEntry(bool Enabled, byte Index = 0, string? TestedBossModVersion = null, params string[] Notes) -{ - [CompilerGenerated] - protected virtual Type EqualityContract - { - [CompilerGenerated] - get - { - return _206E_206F_202E_202C_206D_206A_206B_206A_202C_200E_202D_206B_202E_202A_206C_200E_200D_206F_202A_206D_202B_202D_202A_200D_202C_200C_206B_206C_200C_200E_200F_200B_206B_206F_200C_206B_202B_206D_202C_202D_202E(typeof(SinglePlayerDutyEntry).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202B_206E_202E_206B_200E_200E_206B_202E_202D_206A_206B_202E_200D_206E_202A_202C_202A_200F_206E_200B_206F_206B_200F_202C_200C_202E_200D_202B_206E_206F_202D_206A_202D_202B_200C_206E_206D_206B_202B_200E_202E(); - _202A_206E_206D_200F_206E_202E_206A_200F_202E_206E_202C_206F_200B_200D_200B_206F_200D_200D_200B_200E_202B_202D_206F_202B_202D_202E_206C_202A_202B_202B_202A_200E_202C_206B_206C_206E_206B_206B_206B_202D_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1555815973)); - _202A_206E_206D_200F_206E_202E_206A_200F_202E_206E_202C_206F_200B_200D_200B_206F_200D_200D_200B_200E_202B_202D_206F_202B_202D_202E_206C_202A_202B_202B_202A_200E_202C_206B_206C_206E_206B_206B_206B_202D_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(556540328)); - int num = ((!PrintMembers(stringBuilder)) ? 1051941251 : 1051941250); - while (true) - { - int num2 = num; - int num3 = 1051941251; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 1051941250; - break; - case 0: - _206B_202E_202C_206C_200D_202C_202D_206F_206A_202A_200E_206B_206C_202A_206C_202B_202A_206C_202A_202D_202D_206A_206B_202C_202A_206D_200B_206B_206A_202A_200E_200E_206E_200C_202B_200E_202C_206B_206D_202C_202E(stringBuilder, '}'); - return _202D_202A_200E_206B_206F_202C_200B_202E_206F_206C_200B_202C_206E_206A_206B_206B_206A_206A_206A_202E_202A_200C_206B_200D_202C_202E_206E_200D_200B_206E_206F_202D_200C_206A_206B_200B_200F_206B_202C_206D_202E((object)stringBuilder); - case 1: - _206B_202E_202C_206C_200D_202C_202D_206F_206A_202A_200E_206B_206C_202A_206C_202B_202A_206C_202A_202D_202D_206A_206B_202C_202A_206D_200B_206B_206A_202A_200E_200E_206E_200C_202B_200E_202C_206B_206D_202C_202E(stringBuilder, ' '); - num = 1051941251; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected virtual bool PrintMembers(StringBuilder builder) - { - _206E_206C_200E_206B_202D_206B_206F_200E_200C_202D_202E_206F_200D_206D_206B_200E_206E_200C_206A_206E_202B_202D_202B_200B_206D_206F_206E_206F_202B_206E_200C_202E_206F_206A_206D_206C_206F_206D_202B_200F_202E(); - _202A_206E_206D_200F_206E_202E_206A_200F_202E_206E_202C_206F_200B_200D_200B_206F_200D_200D_200B_200E_202B_202D_206F_202B_202D_202E_206C_202A_202B_202B_202A_200E_202C_206B_206C_206E_206B_206B_206B_202D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(40320486)); - _202A_206E_206D_200F_206E_202E_206A_200F_202E_206E_202C_206F_200B_200D_200B_206F_200D_200D_200B_200E_202B_202D_206F_202B_202D_202E_206C_202A_202B_202B_202A_200E_202C_206B_206C_206E_206B_206B_206B_202D_202E(builder, Enabled.ToString()); - _202A_206E_206D_200F_206E_202E_206A_200F_202E_206E_202C_206F_200B_200D_200B_206F_200D_200D_200B_200E_202B_202D_206F_202B_202D_202E_206C_202A_202B_202B_202A_200E_202C_206B_206C_206E_206B_206B_206B_202D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(137168657)); - _202A_206E_206D_200F_206E_202E_206A_200F_202E_206E_202C_206F_200B_200D_200B_206F_200D_200D_200B_200E_202B_202D_206F_202B_202D_202E_206C_202A_202B_202B_202A_200E_202C_206B_206C_206E_206B_206B_206B_202D_202E(builder, Index.ToString()); - _202A_206E_206D_200F_206E_202E_206A_200F_202E_206E_202C_206F_200B_200D_200B_206F_200D_200D_200B_200E_202B_202D_206F_202B_202D_202E_206C_202A_202B_202B_202A_200E_202C_206B_206C_206E_206B_206B_206B_202D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1918947748)); - _206E_206D_206F_202A_206F_206B_202B_200E_202C_202D_200D_200D_202A_206E_202B_200B_202C_206B_200D_202B_202D_202C_202D_206A_202B_200F_200E_200E_206B_202B_202E_202E_202C_206A_206B_206B_200C_206D_206C_202D_202E(builder, (object)TestedBossModVersion); - _202A_206E_206D_200F_206E_202E_206A_200F_202E_206E_202C_206F_200B_200D_200B_206F_200D_200D_200B_200E_202B_202D_206F_202B_202D_202E_206C_202A_202B_202B_202A_200E_202C_206B_206C_206E_206B_206B_206B_202D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-209221941)); - _206E_206D_206F_202A_206F_206B_202B_200E_202C_202D_200D_200D_202A_206E_202B_200B_202C_206B_200D_202B_202D_202C_202D_206A_202B_200F_200E_200E_206B_202B_202E_202E_202C_206A_206B_206B_200C_206D_206C_202D_202E(builder, (object)Notes); - return true; - } - - [CompilerGenerated] - public virtual bool Equals(SinglePlayerDutyEntry? other) - { - int num = (((object)this == other) ? (-1523277809) : (-1523277819)); - while (true) - { - int num2 = num; - int num3 = -1523277811; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - num = ((!EqualityComparer<bool>.Default.Equals(Enabled, other.Enabled)) ? (-1523277814) : (-1523277813)); - break; - case 6: - num = ((!EqualityComparer<byte>.Default.Equals(Index, other.Index)) ? (-1523277814) : (-1523277810)); - break; - case 8: - num = (((object)other == null) ? (-1523277814) : (-1523277812)); - break; - case 0: - num = -1523277819; - break; - case 7: - return false; - case 4: - return EqualityComparer<string[]>.Default.Equals(Notes, other.Notes); - case 1: - num = ((!_206E_200C_202D_200E_200F_200E_206A_202A_206A_206E_200F_206D_206F_206E_206D_200F_206B_202E_206C_202E_206B_202B_200D_202B_202E_200D_200F_202E_202E_200B_200D_202D_206B_202B_200D_202A_206F_202A_202D_202D_202E(EqualityContract, other.EqualityContract)) ? (-1523277814) : (-1523277816)); - break; - case 2: - return true; - case 3: - num = ((!EqualityComparer<string>.Default.Equals(TestedBossModVersion, other.TestedBossModVersion)) ? (-1523277814) : (-1523277815)); - break; - } - } - } - - bool IEquatable<SinglePlayerDutyEntry>.Equals(SinglePlayerDutyEntry? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206E_206F_202E_202C_206D_206A_206B_206A_202C_200E_202D_206B_202E_202A_206C_200E_200D_206F_202A_206D_202B_202D_202A_200D_202C_200C_206B_206C_200C_200E_200F_200B_206B_206F_200C_206B_202B_206D_202C_202D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202B_206E_202E_206B_200E_200E_206B_202E_202D_206A_206B_202E_200D_206E_202A_202C_202A_200F_206E_200B_206F_206B_200F_202C_200C_202E_200D_202B_206E_206F_202D_206A_202D_202B_200C_206E_206D_206B_202B_200E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202A_206E_206D_200F_206E_202E_206A_200F_202E_206E_202C_206F_200B_200D_200B_206F_200D_200D_200B_200E_202B_202D_206F_202B_202D_202E_206C_202A_202B_202B_202A_200E_202C_206B_206C_206E_206B_206B_206B_202D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206B_202E_202C_206C_200D_202C_202D_206F_206A_202A_200E_206B_206C_202A_206C_202B_202A_206C_202A_202D_202D_206A_206B_202C_202A_206D_200B_206B_206A_202A_200E_200E_206E_200C_202B_200E_202C_206B_206D_202C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202D_202A_200E_206B_206F_202C_200B_202E_206F_206C_200B_202C_206E_206A_206B_206B_206A_206A_206A_202E_202A_200C_206B_200D_202C_202E_206E_200D_200B_206E_206F_202D_200C_206A_206B_200B_200F_206B_202C_206D_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206E_206C_200E_206B_202D_206B_206F_200E_200C_202D_202E_206F_200D_206D_206B_200E_206E_200C_206A_206E_202B_202D_202B_200B_206D_206F_206E_206F_202B_206E_200C_202E_206F_206A_206D_206C_206F_206D_202B_200F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206E_206D_206F_202A_206F_206B_202B_200E_202C_202D_200D_200D_202A_206E_202B_200B_202C_206B_200D_202B_202D_202C_202D_206A_202B_200F_200E_200E_206B_202B_202E_202E_202C_206A_206B_206B_200C_206D_206C_202D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206E_200C_202D_200E_200F_200E_206A_202A_206A_206E_200F_206D_206F_206E_206D_200F_206B_202E_206C_202E_206B_202B_200D_202B_202E_200D_200F_202E_202E_200B_200D_202D_206B_202B_200D_202A_206F_202A_202D_202D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +public record SinglePlayerDutyEntry(bool Enabled, byte Index = 0, string? TestedBossModVersion = null, params string[] Notes); diff --git a/Questionable/Questionable.Data/TerritoryData.cs b/Questionable/Questionable.Data/TerritoryData.cs index cf6ae35..ddf1626 100644 --- a/Questionable/Questionable.Data/TerritoryData.cs +++ b/Questionable/Questionable.Data/TerritoryData.cs @@ -1,20 +1,15 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Collections.Immutable; -using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Game; -using Dalamud.Game.Text.SeStringHandling; using Dalamud.Plugin.Services; using Dalamud.Utility; using Lumina.Excel; using Lumina.Excel.Sheets; -using Lumina.Text.ReadOnly; using Microsoft.Extensions.Logging; using Questionable.Model.Questing; using SmartNav; @@ -23,837 +18,14 @@ namespace Questionable.Data; internal sealed class TerritoryData : ITerritoryInfo { - public readonly record struct ZoneAccessRequirement(byte RequirementType, uint QuestRowId, uint RequiredSequence) - { - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200B_202D_202A_206D_200B_206B_200E_206D_200F_202E_206F_202D_206D_200E_206E_202C_200F_206D_200F_200F_202A_202C_200B_206C_206B_202B_202A_200D_202A_206D_206A_206E_200D_206F_202D_206F_200E_200E_206A_206F_202E(); - _202E_206B_202D_206C_200C_206B_202E_202C_206E_202A_200D_202A_202E_202D_200D_206C_206C_200B_200B_206E_202B_200C_206C_200C_206A_200E_200B_206E_206F_206B_206C_200B_206C_202D_206D_200E_202C_200B_206E_202E_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-937976859)); - _202E_206B_202D_206C_200C_206B_202E_202C_206E_202A_200D_202A_202E_202D_200D_206C_206C_200B_200B_206E_202B_200C_206C_200C_206A_200E_200B_206E_206F_206B_206C_200B_206C_202D_206D_200E_202C_200B_206E_202E_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(117284107)); - int num = ((!PrintMembers(stringBuilder)) ? (-993371309) : (-993371312)); - while (true) - { - int num2 = num; - int num3 = -993371311; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - _200B_202C_200F_202D_202C_206C_202E_206E_200D_200F_206B_206D_202C_206A_202C_206E_206D_200B_206B_200C_200C_200D_200F_202A_206A_206A_202E_200E_202C_200F_200C_202B_206F_202C_200F_206A_202B_206E_206C_206B_202E(stringBuilder, '}'); - return _206C_200E_200C_200D_202A_206E_200E_200D_200D_202B_200B_200E_202C_200B_200D_202C_206C_206A_206D_200F_206B_200E_202A_206D_202A_200B_202D_206B_206C_206F_206D_206D_202A_200E_200C_200B_206F_206B_202A_202D_202E((object)stringBuilder); - case 1: - _200B_202C_200F_202D_202C_206C_202E_206E_200D_200F_206B_206D_202C_206A_202C_206E_206D_200B_206B_200C_200C_200D_200F_202A_206A_206A_202E_200E_202C_200F_200C_202B_206F_202C_200F_206A_202B_206E_206C_206B_202E(stringBuilder, ' '); - num = -993371309; - break; - case 0: - num = -993371312; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202E_206B_202D_206C_200C_206B_202E_202C_206E_202A_200D_202A_202E_202D_200D_206C_206C_200B_200B_206E_202B_200C_206C_200C_206A_200E_200B_206E_206F_206B_206C_200B_206C_202D_206D_200E_202C_200B_206E_202E_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1954192503)); - _202E_206B_202D_206C_200C_206B_202E_202C_206E_202A_200D_202A_202E_202D_200D_206C_206C_200B_200B_206E_202B_200C_206C_200C_206A_200E_200B_206E_206F_206B_206C_200B_206C_202D_206D_200E_202C_200B_206E_202E_202E(builder, RequirementType.ToString()); - _202E_206B_202D_206C_200C_206B_202E_202C_206E_202A_200D_202A_202E_202D_200D_206C_206C_200B_200B_206E_202B_200C_206C_200C_206A_200E_200B_206E_206F_206B_206C_200B_206C_202D_206D_200E_202C_200B_206E_202E_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-713705911)); - _202E_206B_202D_206C_200C_206B_202E_202C_206E_202A_200D_202A_202E_202D_200D_206C_206C_200B_200B_206E_202B_200C_206C_200C_206A_200E_200B_206E_206F_206B_206C_200B_206C_202D_206D_200E_202C_200B_206E_202E_202E(builder, QuestRowId.ToString()); - _202E_206B_202D_206C_200C_206B_202E_202C_206E_202A_200D_202A_202E_202D_200D_206C_206C_200B_200B_206E_202B_200C_206C_200C_206A_200E_200B_206E_206F_206B_206C_200B_206C_202D_206D_200E_202C_200B_206E_202E_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-978414308)); - _202E_206B_202D_206C_200C_206B_202E_202C_206E_202A_200D_202A_202E_202D_200D_206C_206C_200B_200B_206E_202B_200C_206C_200C_206A_200E_200B_206E_206F_206B_206C_200B_206C_202D_206D_200E_202C_200B_206E_202E_202E(builder, RequiredSequence.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(ZoneAccessRequirement other) - { - int num = ((!EqualityComparer<byte>.Default.Equals(RequirementType, other.RequirementType)) ? (-1739069183) : (-1739069182)); - while (true) - { - int num2 = num; - int num3 = -1739069181; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 3: - return EqualityComparer<uint>.Default.Equals(RequiredSequence, other.RequiredSequence); - case 1: - num = ((!EqualityComparer<uint>.Default.Equals(QuestRowId, other.QuestRowId)) ? (-1739069183) : (-1739069184)); - break; - case 0: - num = -1739069182; - break; - } - } - } - - bool IEquatable<ZoneAccessRequirement>.Equals(ZoneAccessRequirement other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _200B_202D_202A_206D_200B_206B_200E_206D_200F_202E_206F_202D_206D_200E_206E_202C_200F_206D_200F_200F_202A_202C_200B_206C_206B_202B_202A_200D_202A_206D_206A_206E_200D_206F_202D_206F_200E_200E_206A_206F_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202E_206B_202D_206C_200C_206B_202E_202C_206E_202A_200D_202A_202E_202D_200D_206C_206C_200B_200B_206E_202B_200C_206C_200C_206A_200E_200B_206E_206F_206B_206C_200B_206C_202D_206D_200E_202C_200B_206E_202E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200B_202C_200F_202D_202C_206C_202E_206E_200D_200F_206B_206D_202C_206A_202C_206E_206D_200B_206B_200C_200C_200D_200F_202A_206A_206A_202E_200E_202C_200F_200C_202B_206F_202C_200F_206A_202B_206E_206C_206B_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206C_200E_200C_200D_202A_206E_200E_200D_200D_202B_200B_200E_202C_200B_200D_202C_206C_206A_206D_200F_206B_200E_202A_206D_202A_200B_202D_206B_206C_206F_206D_206D_202A_200E_200C_200B_206F_206B_202A_202D_202E(object P_0) - { - return P_0.ToString(); - } - } + public readonly record struct ZoneAccessRequirement(byte RequirementType, uint QuestRowId, uint RequiredSequence); public sealed record ContentFinderConditionData(uint ContentFinderConditionId, string Name, uint TerritoryId, ushort RequiredItemLevel, byte ClassJobLevelSync, bool AllowUndersized, bool IsDungeon) { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202A_200D_202E_206D_206A_202D_206B_206A_206C_206F_206D_202C_206B_202A_206A_200F_200E_206D_202A_202B_200F_206E_200B_206F_200F_206F_206B_206D_200C_202C_206D_200F_202E_200E_206E_202C_206B_200F_202B_206E_202E(typeof(ContentFinderConditionData).TypeHandle); - } - } - public ContentFinderConditionData(ContentFinderCondition condition, ClientLanguage clientLanguage) - : this(condition.RowId, FixName(_206F_202A_206D_202D_202B_206E_206A_202C_206F_200E_202A_200F_200C_206A_202D_202B_202A_206E_200C_206D_200B_202E_200C_200D_202D_200E_202D_206C_202B_206D_200C_202C_206A_200B_200E_202D_200C_200C_200B_200D_202E((object)_200C_206D_206D_206C_206A_200E_206D_202E_206A_206E_206F_206B_200C_202E_200D_202D_206D_200C_206B_206B_206C_206E_200E_202D_206B_206B_202C_200B_202B_200D_202C_200F_202B_206C_200F_206B_200E_202E_206A_202D_202E(condition.Name)), clientLanguage), condition.TerritoryType.RowId, condition.ItemLevelRequired, condition.ClassJobLevelSync, condition.AllowUndersized, condition.ContentType.RowId == 2) + : this(condition.RowId, FixName(condition.Name.ToDalamudString().ToString(), clientLanguage), condition.TerritoryType.RowId, condition.ItemLevelRequired, condition.ClassJobLevelSync, condition.AllowUndersized, condition.ContentType.RowId == 2) { } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202E_206B_206D_200B_200E_200B_206B_200B_202E_206D_206A_206C_200E_206E_206D_202C_200E_202C_200C_202B_202C_206E_200D_202C_206F_206F_206B_202E_202A_202B_200F_206C_206B_202C_206C_202D_200B_202E_200F_200C_202E(); - _206B_202C_200D_206D_202D_200C_200D_200C_206B_206E_202C_200C_206A_206C_206D_206A_202A_200E_202E_202C_202A_206C_206A_206E_200D_200D_206F_206F_202D_206C_206D_206A_206C_206E_206A_202C_202D_200C_200B_206D_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(547092396)); - _206B_202C_200D_206D_202D_200C_200D_200C_206B_206E_202C_200C_206A_206C_206D_206A_202A_200E_202E_202C_202A_206C_206A_206E_200D_200D_206F_206F_202D_206C_206D_206A_206C_206E_206A_202C_202D_200C_200B_206D_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(117284107)); - int num = ((!PrintMembers(stringBuilder)) ? (-2102036049) : (-2102036052)); - while (true) - { - int num2 = num; - int num3 = -2102036051; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - _206E_206F_200C_200B_200F_206D_202B_200F_202C_202E_206C_206E_206B_200B_202C_202A_206A_200B_202D_200F_202A_200B_200B_206E_206D_206A_200D_206C_200D_206C_200B_200F_200B_202D_202D_200D_206F_202A_202A_202C_202E(stringBuilder, '}'); - return _206F_202A_206D_202D_202B_206E_206A_202C_206F_200E_202A_200F_200C_206A_202D_202B_202A_206E_200C_206D_200B_202E_200C_200D_202D_200E_202D_206C_202B_206D_200C_202C_206A_200B_200E_202D_200C_200C_200B_200D_202E((object)stringBuilder); - case 1: - _206E_206F_200C_200B_200F_206D_202B_200F_202C_202E_206C_206E_206B_200B_202C_202A_206A_200B_202D_200F_202A_200B_200B_206E_206D_206A_200D_206C_200D_206C_200B_200F_200B_202D_202D_200D_206F_202A_202A_202C_202E(stringBuilder, ' '); - num = -2102036049; - break; - case 0: - num = -2102036052; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206D_206E_200B_202C_202A_206B_206F_202D_200B_202E_206E_202B_202B_206F_202B_206E_200E_202C_202E_200C_206A_200D_202E_206E_200D_202B_206F_206A_200C_206F_200F_206C_202C_200F_202E_202A_202D_202A_206D_202C_202E(); - _206B_202C_200D_206D_202D_200C_200D_200C_206B_206E_202C_200C_206A_206C_206D_206A_202A_200E_202E_202C_202A_206C_206A_206E_200D_200D_206F_206F_202D_206C_206D_206A_206C_206E_206A_202C_202D_200C_200B_206D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-547124860)); - _206B_202C_200D_206D_202D_200C_200D_200C_206B_206E_202C_200C_206A_206C_206D_206A_202A_200E_202E_202C_202A_206C_206A_206E_200D_200D_206F_206F_202D_206C_206D_206A_206C_206E_206A_202C_202D_200C_200B_206D_202E(builder, ContentFinderConditionId.ToString()); - _206B_202C_200D_206D_202D_200C_200D_200C_206B_206E_202C_200C_206A_206C_206D_206A_202A_200E_202E_202C_202A_206C_206A_206E_200D_200D_206F_206F_202D_206C_206D_206A_206C_206E_206A_202C_202D_200C_200B_206D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-838515035)); - _206A_200E_202B_200B_202B_200B_200E_202B_202A_202E_206B_202A_200F_202E_206C_200E_202D_206D_202C_200B_200F_200E_206A_200C_200C_200B_202D_200B_200F_206D_202A_200B_206B_202B_206E_206B_200C_202E_206E_202D_202E(builder, (object)Name); - _206B_202C_200D_206D_202D_200C_200D_200C_206B_206E_202C_200C_206A_206C_206D_206A_202A_200E_202E_202C_202A_206C_206A_206E_200D_200D_206F_206F_202D_206C_206D_206A_206C_206E_206A_202C_202D_200C_200B_206D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1428648191)); - _206B_202C_200D_206D_202D_200C_200D_200C_206B_206E_202C_200C_206A_206C_206D_206A_202A_200E_202E_202C_202A_206C_206A_206E_200D_200D_206F_206F_202D_206C_206D_206A_206C_206E_206A_202C_202D_200C_200B_206D_202E(builder, TerritoryId.ToString()); - _206B_202C_200D_206D_202D_200C_200D_200C_206B_206E_202C_200C_206A_206C_206D_206A_202A_200E_202E_202C_202A_206C_206A_206E_200D_200D_206F_206F_202D_206C_206D_206A_206C_206E_206A_202C_202D_200C_200B_206D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1772539499)); - _206B_202C_200D_206D_202D_200C_200D_200C_206B_206E_202C_200C_206A_206C_206D_206A_202A_200E_202E_202C_202A_206C_206A_206E_200D_200D_206F_206F_202D_206C_206D_206A_206C_206E_206A_202C_202D_200C_200B_206D_202E(builder, RequiredItemLevel.ToString()); - _206B_202C_200D_206D_202D_200C_200D_200C_206B_206E_202C_200C_206A_206C_206D_206A_202A_200E_202E_202C_202A_206C_206A_206E_200D_200D_206F_206F_202D_206C_206D_206A_206C_206E_206A_202C_202D_200C_200B_206D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2071172515)); - _206B_202C_200D_206D_202D_200C_200D_200C_206B_206E_202C_200C_206A_206C_206D_206A_202A_200E_202E_202C_202A_206C_206A_206E_200D_200D_206F_206F_202D_206C_206D_206A_206C_206E_206A_202C_202D_200C_200B_206D_202E(builder, ClassJobLevelSync.ToString()); - _206B_202C_200D_206D_202D_200C_200D_200C_206B_206E_202C_200C_206A_206C_206D_206A_202A_200E_202E_202C_202A_206C_206A_206E_200D_200D_206F_206F_202D_206C_206D_206A_206C_206E_206A_202C_202D_200C_200B_206D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1993011003)); - _206B_202C_200D_206D_202D_200C_200D_200C_206B_206E_202C_200C_206A_206C_206D_206A_202A_200E_202E_202C_202A_206C_206A_206E_200D_200D_206F_206F_202D_206C_206D_206A_206C_206E_206A_202C_202D_200C_200B_206D_202E(builder, AllowUndersized.ToString()); - _206B_202C_200D_206D_202D_200C_200D_200C_206B_206E_202C_200C_206A_206C_206D_206A_202A_200E_202E_202C_202A_206C_206A_206E_200D_200D_206F_206F_202D_206C_206D_206A_206C_206E_206A_202C_202D_200C_200B_206D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1691981228)); - _206B_202C_200D_206D_202D_200C_200D_200C_206B_206E_202C_200C_206A_206C_206D_206A_202A_200E_202E_202C_202A_206C_206A_206E_200D_200D_206F_206F_202D_206C_206D_206A_206C_206E_206A_202C_202D_200C_200B_206D_202E(builder, IsDungeon.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(ContentFinderConditionData? other) - { - int num = (((object)this == other) ? (-1635239574) : (-1635239580)); - while (true) - { - int num2 = num; - int num3 = -1635239582; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = ((!EqualityComparer<uint>.Default.Equals(TerritoryId, other.TerritoryId)) ? (-1635239573) : (-1635239581)); - break; - case 5: - num = ((!_206B_202E_202E_200D_200C_202B_200F_200B_206D_202E_206B_206D_202E_206E_200D_206D_200B_202B_202B_206A_200D_200F_206F_206D_206D_206C_202E_200F_202D_200D_206F_206F_206B_206D_200E_202B_206F_202A_202C_206C_202E(EqualityContract, other.EqualityContract)) ? (-1635239573) : (-1635239575)); - break; - case 10: - num = ((!EqualityComparer<bool>.Default.Equals(AllowUndersized, other.AllowUndersized)) ? (-1635239573) : (-1635239578)); - break; - case 7: - num = ((!EqualityComparer<string>.Default.Equals(Name, other.Name)) ? (-1635239573) : (-1635239584)); - break; - case 11: - num = ((!EqualityComparer<uint>.Default.Equals(ContentFinderConditionId, other.ContentFinderConditionId)) ? (-1635239573) : (-1635239579)); - break; - case 4: - return EqualityComparer<bool>.Default.Equals(IsDungeon, other.IsDungeon); - case 0: - num = -1635239580; - break; - case 3: - num = ((!EqualityComparer<byte>.Default.Equals(ClassJobLevelSync, other.ClassJobLevelSync)) ? (-1635239573) : (-1635239576)); - break; - case 9: - return false; - case 1: - num = ((!EqualityComparer<ushort>.Default.Equals(RequiredItemLevel, other.RequiredItemLevel)) ? (-1635239573) : (-1635239583)); - break; - case 8: - return true; - case 6: - num = (((object)other == null) ? (-1635239573) : (-1635239577)); - break; - } - } - } - - bool IEquatable<ContentFinderConditionData>.Equals(ContentFinderConditionData? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202A_200D_202E_206D_206A_202D_206B_206A_206C_206F_206D_202C_206B_202A_206A_200F_200E_206D_202A_202B_200F_206E_200B_206F_200F_206F_206B_206D_200C_202C_206D_200F_202E_200E_206E_202C_206B_200F_202B_206E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static SeString _200C_206D_206D_206C_206A_200E_206D_202E_206A_206E_206F_206B_200C_202E_200D_202D_206D_200C_206B_206B_206C_206E_200E_202D_206B_206B_202C_200B_202B_200D_202C_200F_202B_206C_200F_206B_200E_202E_206A_202D_202E(ReadOnlySeString P_0) - { - return P_0.ToDalamudString(); - } - - static string _206F_202A_206D_202D_202B_206E_206A_202C_206F_200E_202A_200F_200C_206A_202D_202B_202A_206E_200C_206D_200B_202E_200C_200D_202D_200E_202D_206C_202B_206D_200C_202C_206A_200B_200E_202D_200C_200C_200B_200D_202E(object P_0) - { - return P_0.ToString(); - } - - static StringBuilder _202E_206B_206D_200B_200E_200B_206B_200B_202E_206D_206A_206C_200E_206E_206D_202C_200E_202C_200C_202B_202C_206E_200D_202C_206F_206F_206B_202E_202A_202B_200F_206C_206B_202C_206C_202D_200B_202E_200F_200C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206B_202C_200D_206D_202D_200C_200D_200C_206B_206E_202C_200C_206A_206C_206D_206A_202A_200E_202E_202C_202A_206C_206A_206E_200D_200D_206F_206F_202D_206C_206D_206A_206C_206E_206A_202C_202D_200C_200B_206D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206E_206F_200C_200B_200F_206D_202B_200F_202C_202E_206C_206E_206B_200B_202C_202A_206A_200B_202D_200F_202A_200B_200B_206E_206D_206A_200D_206C_200D_206C_200B_200F_200B_202D_202D_200D_206F_202A_202A_202C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static void _206D_206E_200B_202C_202A_206B_206F_202D_200B_202E_206E_202B_202B_206F_202B_206E_200E_202C_202E_200C_206A_200D_202E_206E_200D_202B_206F_206A_200C_206F_200F_206C_202C_200F_202E_202A_202D_202A_206D_202C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206A_200E_202B_200B_202B_200B_200E_202B_202A_202E_206B_202A_200F_202E_206C_200E_202D_206D_202C_200B_200F_200E_206A_200C_200C_200B_202D_200B_200F_206D_202A_200B_206B_202B_206E_206B_200C_202E_206E_202D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206B_202E_202E_200D_200C_202B_200F_200B_206D_202E_206B_206D_202E_206E_200D_206D_200B_202B_202B_206A_200D_200F_206F_206D_206D_206C_202E_200F_202D_200D_206F_206F_206B_206D_200E_202B_206F_202A_202C_206C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<ZoneSharedGroup, bool> _003C_003E9__9_0; - - public static Func<ZoneSharedGroup, uint> _003C_003E9__9_1; - - public static Func<ZoneSharedGroup, ZoneAccessRequirement> _003C_003E9__9_2; - - public static Func<ContentFinderCondition, bool> _003C_003E9__9_3; - - public static Func<ContentFinderCondition, uint> _003C_003E9__9_4; - - public static Func<IGrouping<uint, ContentFinderCondition>, uint> _003C_003E9__9_5; - - public static Func<IGrouping<uint, ContentFinderCondition>, string> _003C_003E9__9_6; - - public static Func<ContentFinderCondition, bool> _003C_003E9__9_7; - - public static Func<ContentFinderConditionData, uint> _003C_003E9__9_9; - - public static Func<ContentFinderConditionData, ContentFinderConditionData> _003C_003E9__9_10; - - public static Func<ContentFinderCondition, bool> _003C_003E9__9_11; - - public static Func<ContentFinderCondition, uint> _003C_003E9__9_12; - - public static Func<IGrouping<uint, ContentFinderCondition>, uint> _003C_003E9__9_13; - - public static Func<IGrouping<uint, ContentFinderCondition>, uint> _003C_003E9__9_14; - - public static Func<Quest, bool> _003C_003E9__9_15; - - public static Func<(ElementId QuestId, byte Index, uint CfcId), (ElementId QuestId, byte Index)> _003C_003E9__9_17; - - public static Func<(ElementId QuestId, byte Index, uint CfcId), uint> _003C_003E9__9_18; - - internal bool _003C_002Ector_003Eb__9_0(ZoneSharedGroup x) - { - bool flag = x.SubrowId == 0; - int num = ((!flag) ? (-581539066) : (-581539068)); - bool flag2 = default(bool); - while (true) - { - int num2 = num; - int num3 = -581539067; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - flag = flag2; - num = -581539066; - break; - case 1: - { - byte b = x.RequirementType[0]; - num3 = 1; - num4 = b; - num = (((uint)(~(~num4 + num3)) > 1u) ? (-581539065) : (-581539072)); - break; - } - case 5: - flag2 = true; - num = -581539071; - break; - case 3: - return flag; - case 0: - num = -581539068; - break; - case 2: - flag2 = false; - num = -581539071; - break; - } - } - } - - internal uint _003C_002Ector_003Eb__9_1(ZoneSharedGroup x) - { - return x.RowId; - } - - internal ZoneAccessRequirement _003C_002Ector_003Eb__9_2(ZoneSharedGroup x) - { - return new ZoneAccessRequirement(x.RequirementType[0], x.RequirementRow[0].RowId, x.RequirementQuestSequence[0]); - } - - internal bool _003C_002Ector_003Eb__9_3(ContentFinderCondition x) - { - int num = ((x.RowId == 0) ? 2089716118 : 2089716116); - while (true) - { - int num2 = num; - int num3 = 2089716118; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return false; - case 2: - num = ((x.Content.RowId == 0) ? 2089716118 : 2089716119); - break; - case 1: - num = ((x.ContentLinkType != 1) ? 2089716118 : 2089716114); - break; - case 4: - return x.ContentType.RowId != 6; - case 3: - num = 2089716116; - break; - } - } - } - - internal uint _003C_002Ector_003Eb__9_4(ContentFinderCondition x) - { - return x.Content.RowId; - } - - internal uint _003C_002Ector_003Eb__9_5(IGrouping<uint, ContentFinderCondition> g) - { - return g.Key; - } - - internal string _003C_002Ector_003Eb__9_6(IGrouping<uint, ContentFinderCondition> g) - { - return _206E_200B_202A_206F_206F_206B_206C_202E_202E_206A_206F_206F_206A_202E_206D_202D_206B_200F_206D_200F_202E_200F_202E_200E_206A_206C_200D_200D_200F_202E_206C_200C_202E_202B_200B_206C_200E_202D_206E_206A_202E((object)_200C_202C_200C_206E_202B_202B_206F_202A_202C_206B_206C_206A_202D_206A_200C_200D_200F_202E_200B_200C_206A_206A_206E_202B_206B_206A_206C_200C_200C_200B_202C_206C_200C_202E_206C_202B_200C_200B_206F_206F_202E(g.First().Name)); - } - - internal bool _003C_002Ector_003Eb__9_7(ContentFinderCondition x) - { - int num = ((x.RowId == 0) ? (-1636098886) : (-1636098884)); - byte contentLinkType = default(byte); - bool flag = default(bool); - bool flag2 = default(bool); - while (true) - { - int num2 = num; - int num3 = -1636098882; - int num4 = num2; - int num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - contentLinkType = x.ContentLinkType; - num = ((contentLinkType == 1) ? (-1636098890) : (-1636098888)); - break; - case 6: - num = ((contentLinkType != 5) ? (-1636098889) : (-1636098890)); - break; - case 10: - return x.ContentType.RowId != 6; - case 1: - return false; - case 9: - flag = false; - num = -1636098887; - break; - case 2: - num5 = ((x.Content.RowId != 0) ? 1 : 0); - goto IL_0110; - case 7: - flag2 = flag; - num = -1636098885; - break; - case 4: - num5 = 0; - goto IL_0110; - case 5: - num = ((!flag2) ? (-1636098881) : (-1636098892)); - break; - case 8: - flag = true; - num = -1636098887; - break; - case 0: - { - num = -1636098884; - break; - } - IL_0110: - flag2 = (byte)num5 != 0; - num = ((!flag2) ? (-1636098885) : (-1636098883)); - break; - } - } - } - - internal uint _003C_002Ector_003Eb__9_9(ContentFinderConditionData x) - { - return x.ContentFinderConditionId; - } - - internal ContentFinderConditionData _003C_002Ector_003Eb__9_10(ContentFinderConditionData x) - { - return x; - } - - internal bool _003C_002Ector_003Eb__9_11(ContentFinderCondition x) - { - int num = ((x.RowId == 0) ? (-1478857039) : (-1478857038)); - while (true) - { - int num2 = num; - int num3 = -1478857037; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0048; - case 2: - return false; - case 1: - return x.TerritoryType.RowId != 0; - } - continue; - IL_0048: - num = -1478857038; - } - } - - internal uint _003C_002Ector_003Eb__9_12(ContentFinderCondition x) - { - return x.TerritoryType.RowId; - } - - internal uint _003C_002Ector_003Eb__9_13(IGrouping<uint, ContentFinderCondition> g) - { - return g.Key; - } - - internal uint _003C_002Ector_003Eb__9_14(IGrouping<uint, ContentFinderCondition> g) - { - return g.First().RowId; - } - - internal bool _003C_002Ector_003Eb__9_15(Quest x) - { - int num = ((x.RowId == 0) ? (-1185353339) : (-1185353338)); - while (true) - { - int num2 = num; - int num3 = -1185353337; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0048; - case 1: - return x.IssuerLocation.RowId != 0; - case 2: - return false; - } - continue; - IL_0048: - num = -1185353338; - } - } - - internal (ElementId QuestId, byte Index) _003C_002Ector_003Eb__9_17((ElementId QuestId, byte Index, uint CfcId) x) - { - return (QuestId: x.QuestId, Index: x.Index); - } - - internal uint _003C_002Ector_003Eb__9_18((ElementId QuestId, byte Index, uint CfcId) x) - { - return x.CfcId; - } - - static SeString _200C_202C_200C_206E_202B_202B_206F_202A_202C_206B_206C_206A_202D_206A_200C_200D_200F_202E_200B_200C_206A_206A_206E_202B_206B_206A_206C_200C_200C_200B_202C_206C_200C_202E_206C_202B_200C_200B_206F_206F_202E(ReadOnlySeString P_0) - { - return P_0.ToDalamudString(); - } - - static string _206E_200B_202A_206F_206F_206B_206C_202E_202E_206A_206F_206F_206A_202E_206D_202D_206B_200F_206D_200F_202E_200F_202E_200E_206A_206C_200D_200D_200F_202E_206C_200C_202E_202B_200B_206C_200E_202D_206E_206A_202E(object P_0) - { - return P_0.ToString(); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass9_0 - { - public IDataManager dataManager; - - internal ContentFinderConditionData _003C_002Ector_003Eb__8(ContentFinderCondition x) - { - return new ContentFinderConditionData(x, _202C_206E_200D_200E_206C_202E_206C_200B_206F_202E_206C_200E_200F_206F_206A_200D_200F_202A_202A_206F_202B_200D_206B_202E_202D_200E_202E_200D_200E_202D_200D_200C_200D_200E_200E_206B_200E_202B_206D_206F_202E(dataManager)); - } - - internal (ElementId QuestId, byte Index, uint CfcId) _003C_002Ector_003Eb__16((ElementId QuestId, byte Index, uint QuestBattleId) x) - { - return (QuestId: x.QuestId, Index: x.Index, CfcId: LookupContentFinderConditionForQuestBattle(dataManager, x.QuestBattleId)); - } - - static ClientLanguage _202C_206E_200D_200E_206C_202E_206C_200B_206F_202E_206C_200E_200F_206F_206A_200D_200F_202A_202A_206F_202B_200D_206B_202E_202D_200E_202E_200D_200E_202D_200D_200C_200D_200E_200E_206B_200E_202B_206D_206F_202E(IDataManager P_0) - { - return P_0.Language; - } - } - - [CompilerGenerated] - private sealed class _003CGetQuestBattles_003Ed__24 : IEnumerable<(ElementId QuestId, byte Index, uint QuestBattleId)>, IEnumerable, IEnumerator<(ElementId QuestId, byte Index, uint QuestBattleId)>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private (ElementId QuestId, byte Index, uint QuestBattleId) _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - private Quest quest; - - public Quest _003C_003E3__quest; - - private Collection<Quest.QuestParamsStruct>.Enumerator _003C_003E7__wrap1; - - (ElementId QuestId, byte Index, uint QuestBattleId) IEnumerator<(ElementId, byte, uint)>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CGetQuestBattles_003Ed__24(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _202D_206D_206C_206C_206F_206E_206E_206D_206F_200C_206F_200F_202B_200D_200F_200E_200D_200B_206B_200B_200F_202A_202D_202B_200C_200F_200F_206E_200F_200C_202B_202A_202C_200B_202A_202D_200F_206C_202E_202A_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num == -3) ? (-1116870683) : (-1116870682)); - while (true) - { - int num3 = num2; - int num4 = -1116870681; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 0: - num2 = -1116870682; - continue; - case 1: - num4 = 1; - num5 = num; - if ((uint)(~(~num5 + num4)) <= 1u) - { - num2 = -1116870683; - continue; - } - break; - case 2: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E7__wrap1 = default(Collection<Quest.QuestParamsStruct>.Enumerator); - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - try - { - int num; - Quest.QuestParamsStruct current = default(Quest.QuestParamsStruct); - switch (_003C_003E1__state) - { - default: - num = 883752623; - goto IL_0025; - case 1: - _003C_003E1__state = -3; - num = 883752617; - goto IL_0025; - case 0: - goto IL_0089; - case 2: - goto IL_0129; - IL_0025: - while (true) - { - int num2 = num; - int num3 = 883752619; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 7: - goto end_IL_0025; - case 6: - goto IL_0089; - case 2: - goto IL_00bd; - case 5: - goto IL_00e5; - case 10: - goto IL_0129; - case 1: - _003C_003E2__current = (QuestId: _202C_206C_206C_206A_206D_200B_200D_200D_200C_206A_202E_200B_206A_200E_206B_200F_206F_200D_200B_202A_202C_202D_200E_206B_200E_206A_200E_200E_206D_200E_200B_200D_206A_202C_202C_206E_202E_202D_200D_202C_202E(quest.RowId), Index: 1, QuestBattleId: current.ScriptArg); - _003C_003E1__state = 2; - return true; - case 8: - _003C_003E2__current = (QuestId: _202C_206C_206C_206A_206D_200B_200D_200D_200C_206A_202E_200B_206A_200E_206B_200F_206F_200D_200B_202A_202C_202D_200E_206B_200E_206A_200E_200E_206D_200E_200B_200D_206A_202C_202C_206E_202E_202D_200D_202C_202E(quest.RowId), Index: 0, QuestBattleId: current.ScriptArg); - _003C_003E1__state = 1; - return true; - case 3: - goto IL_01b7; - case 9: - goto IL_01e4; - case 11: - num = 883752623; - break; - case 4: - return false; - case 0: - _003C_003Em__Finally1(); - _003C_003E7__wrap1 = default(Collection<Quest.QuestParamsStruct>.Enumerator); - return false; - } - continue; - IL_01e4: - num = ((!(current.ScriptInstruction == global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1229719588))) ? 883752616 : 883752618); - continue; - IL_00e5: - current = _003C_003E7__wrap1.Current; - num = ((!(current.ScriptInstruction == global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(632409858))) ? 883752610 : 883752611); - continue; - IL_00bd: - num = (_003C_003E7__wrap1.MoveNext() ? 883752622 : 883752619); - continue; - IL_01b7: - num = (current.ScriptInstruction.IsEmpty ? 883752619 : 883752617); - continue; - end_IL_0025: - break; - } - goto case 1; - IL_0129: - _003C_003E1__state = -3; - num = 883752617; - goto IL_0025; - IL_0089: - _003C_003E1__state = -1; - _003C_003E7__wrap1 = quest.QuestParams.GetEnumerator(); - _003C_003E1__state = -3; - num = 883752617; - goto IL_0025; - } - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - ((IDisposable)_003C_003E7__wrap1/*cast due to .constrained prefix*/).Dispose(); - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _202C_206C_200F_202C_202A_206D_206E_206F_202D_206C_206A_206B_206B_200E_202D_206B_202B_202B_206F_202A_206D_202C_206C_200C_200C_202A_206A_202A_200B_206D_202C_200D_200F_206C_206E_200B_202C_200D_206F_202E_202E(); - } - - [DebuggerHidden] - IEnumerator<(ElementId QuestId, byte Index, uint QuestBattleId)> IEnumerable<(ElementId, byte, uint)>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? 609345982 : 609345977); - _003CGetQuestBattles_003Ed__24 _003CGetQuestBattles_003Ed__ = default(_003CGetQuestBattles_003Ed__24); - while (true) - { - int num2 = num; - int num3 = 609345978; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - _003CGetQuestBattles_003Ed__ = new _003CGetQuestBattles_003Ed__24(0); - num = 609345976; - break; - case 3: - num = ((_003C_003El__initialThreadId != _202D_206D_206C_206C_206F_206E_206E_206D_206F_200C_206F_200F_202B_200D_200F_200E_200D_200B_206B_200B_200F_202A_202D_202B_200C_200F_200F_206E_200F_200C_202B_202A_202C_200B_202A_202D_200F_206C_202E_202A_202E()) ? 609345982 : 609345979); - break; - case 2: - _003CGetQuestBattles_003Ed__.quest = _003C_003E3__quest; - return _003CGetQuestBattles_003Ed__; - case 0: - num = 609345977; - break; - case 1: - _003C_003E1__state = 0; - _003CGetQuestBattles_003Ed__ = this; - num = 609345976; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<(ElementId, byte, uint)>)this).GetEnumerator(); - } - - static int _202D_206D_206C_206C_206F_206E_206E_206D_206F_200C_206F_200F_202B_200D_200F_200E_200D_200B_206B_200B_200F_202A_202D_202B_200C_200F_200F_206E_200F_200C_202B_202A_202C_200B_202A_202D_200F_206C_202E_202A_202E() - { - return Environment.CurrentManagedThreadId; - } - - static QuestId _202C_206C_206C_206A_206D_200B_200D_200D_200C_206A_202E_200B_206A_200E_206B_200F_206F_200D_200B_202A_202C_202D_200E_206B_200E_206A_200E_200E_206D_200E_200B_200D_206A_202C_202C_206E_202E_202D_200D_202C_202E(uint P_0) - { - return QuestId.FromRowId(P_0); - } - - static NotSupportedException _202C_206C_200F_202C_202A_206D_206E_206F_202D_206C_206A_206B_206B_200E_202D_206B_202B_202B_206F_202A_206D_202C_206C_200C_200C_202A_206A_202A_200B_206D_202C_200D_200F_206C_206E_200B_202C_200D_206F_202E_202E() - { - return new NotSupportedException(); - } } private readonly ImmutableDictionary<uint, string> _territoryNames; @@ -874,48 +46,18 @@ internal sealed class TerritoryData : ITerritoryInfo private readonly ImmutableDictionary<(ElementId QuestId, byte Index), uint> _questBattlesToContentFinderCondition; - [MethodImpl(MethodImplOptions.NoInlining)] public TerritoryData(IDataManager dataManager, ILogger<TerritoryData> logger) { Dictionary<uint, ZoneAccessRequirement> dictionary = dataManager.GetSubrowExcelSheet<ZoneSharedGroup>().Flatten().Where(delegate(ZoneSharedGroup x) { bool flag = x.SubrowId == 0; - int num = ((!flag) ? (-581539066) : (-581539068)); - bool flag2 = default(bool); - while (true) + if (flag) { - int num2 = num; - int num3 = -581539067; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - flag = flag2; - num = -581539066; - break; - case 1: - { - byte b = x.RequirementType[0]; - num3 = 1; - num4 = b; - num = (((uint)(~(~num4 + num3)) > 1u) ? (-581539065) : (-581539072)); - break; - } - case 5: - flag2 = true; - num = -581539071; - break; - case 3: - return flag; - case 0: - num = -581539068; - break; - case 2: - flag2 = false; - num = -581539071; - break; - } + byte b = x.RequirementType[0]; + bool flag2 = (uint)(b - 1) <= 1u; + flag = flag2; } + return flag; }) .ToDictionary((ZoneSharedGroup x) => x.RowId, (ZoneSharedGroup x) => new ZoneAccessRequirement(x.RequirementType[0], x.RequirementRow[0].RowId, x.RequirementQuestSequence[0])); ImmutableDictionary<uint, string>.Builder builder = ImmutableDictionary.CreateBuilder<uint, string>(); @@ -930,10 +72,10 @@ internal sealed class TerritoryData : ITerritoryInfo { continue; } - string text = item.PlaceName.ValueNullable?.Name.ToString() ?? item.PlaceNameZone.ValueNullable?.Name.ToString(); - if (!_206A_206D_202D_206E_200B_202B_200B_200C_200D_206F_206A_202E_206E_202A_200F_200F_200F_206E_202A_206E_206F_200E_206B_202C_202E_206E_206E_202E_206A_202A_200F_206F_206A_200D_206F_206B_206E_206E_200E_206B_202E(text)) + string value = item.PlaceName.ValueNullable?.Name.ToString() ?? item.PlaceNameZone.ValueNullable?.Name.ToString(); + if (!string.IsNullOrEmpty(value)) { - builder[item.RowId] = text; + builder[item.RowId] = value; } if (item.Mount) { @@ -943,15 +85,15 @@ internal sealed class TerritoryData : ITerritoryInfo { builder3[item.RowId] = (byte)item.ExVersion.RowId; } - if (item.ZoneSharedGroup.RowId != 0 && dictionary.TryGetValue(item.ZoneSharedGroup.RowId, out var value)) + if (item.ZoneSharedGroup.RowId != 0 && dictionary.TryGetValue(item.ZoneSharedGroup.RowId, out var value2)) { - if ((dataManager.GetExcelSheet<Quest>().GetRowOrDefault(value.QuestRowId)?.Expansion.RowId ?? 0) > item.ExVersion.RowId) + if ((dataManager.GetExcelSheet<Quest>().GetRowOrDefault(value2.QuestRowId)?.Expansion.RowId ?? 0) > item.ExVersion.RowId) { list.Add(item.RowId); } else { - builder4[item.RowId] = value; + builder4[item.RowId] = value2; } } RowRef<ContentFinderCondition> contentFinderCondition = item.ContentFinderCondition; @@ -972,145 +114,29 @@ internal sealed class TerritoryData : ITerritoryInfo _dutyTerritories = builder5.ToImmutable(); if (list.Count > 0) { - _202E_200C_202B_200E_200D_200C_206F_200E_202A_202B_206E_206B_200F_206B_202B_202B_202A_202A_200F_200E_200B_206D_200B_200E_202A_202B_202E_206F_206F_200D_200B_206F_200E_202A_202C_202A_206C_202E_200F_202A_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-446199229), new object[2] - { - list.Count, - _202D_200F_200C_206D_202B_206A_200B_200E_202B_206F_202A_202B_202E_206A_200C_200D_200F_206B_202D_206B_202D_202A_202E_200C_202A_202E_202B_202C_206B_200F_206E_200C_200C_200F_202C_206B_206E_206F_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1577352017), list.Select(GetNameAndId)) - }); + logger.LogDebug("Ignoring later-expansion ZoneSharedGroup gate for {Count} walkable zones: {Zones}", list.Count, string.Join(", ", list.Select(GetNameAndId))); } - _instanceNames = (from x in dataManager.GetExcelSheet<ContentFinderCondition>().Where(delegate(ContentFinderCondition x) - { - int num = ((x.RowId == 0) ? 2089716118 : 2089716116); - while (true) - { - int num2 = num; - int num3 = 2089716118; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return false; - case 2: - num = ((x.Content.RowId == 0) ? 2089716118 : 2089716119); - break; - case 1: - num = ((x.ContentLinkType != 1) ? 2089716118 : 2089716114); - break; - case 4: - return x.ContentType.RowId != 6; - case 3: - num = 2089716116; - break; - } - } - }) - group x by x.Content.RowId).ToImmutableDictionary((IGrouping<uint, ContentFinderCondition> g) => g.Key, (IGrouping<uint, ContentFinderCondition> g) => _003C_003Ec._206E_200B_202A_206F_206F_206B_206C_202E_202E_206A_206F_206F_206A_202E_206D_202D_206B_200F_206D_200F_202E_200F_202E_200E_206A_206C_200D_200D_200F_202E_206C_200C_202E_202B_200B_206C_200E_202D_206E_206A_202E((object)_003C_003Ec._200C_202C_200C_206E_202B_202B_206F_202A_202C_206B_206C_206A_202D_206A_200C_200D_200F_202E_200B_200C_206A_206A_206E_202B_206B_206A_206C_200C_200C_200B_202C_206C_200C_202E_206C_202B_200C_200B_206F_206F_202E(g.First().Name))); + _instanceNames = (from x in dataManager.GetExcelSheet<ContentFinderCondition>() + where x.RowId != 0 && x.Content.RowId != 0 && x.ContentLinkType == 1 && x.ContentType.RowId != 6 + group x by x.Content.RowId).ToImmutableDictionary((IGrouping<uint, ContentFinderCondition> g) => g.Key, (IGrouping<uint, ContentFinderCondition> g) => g.First().Name.ToDalamudString().ToString()); _contentFinderConditions = (from x in dataManager.GetExcelSheet<ContentFinderCondition>().Where(delegate(ContentFinderCondition x) { - int num = ((x.RowId == 0) ? (-1636098886) : (-1636098884)); - byte contentLinkType = default(byte); - bool flag = default(bool); - bool flag2 = default(bool); - while (true) + bool flag = x.RowId != 0 && x.Content.RowId != 0; + if (flag) { - int num2 = num; - int num3 = -1636098882; - int num4 = num2; - int num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - contentLinkType = x.ContentLinkType; - num = ((contentLinkType == 1) ? (-1636098890) : (-1636098888)); - break; - case 6: - num = ((contentLinkType != 5) ? (-1636098889) : (-1636098890)); - break; - case 10: - return x.ContentType.RowId != 6; - case 1: - return false; - case 9: - flag = false; - num = -1636098887; - break; - case 2: - num5 = ((x.Content.RowId != 0) ? 1 : 0); - goto IL_0110; - case 7: - flag2 = flag; - num = -1636098885; - break; - case 4: - num5 = 0; - goto IL_0110; - case 5: - num = ((!flag2) ? (-1636098881) : (-1636098892)); - break; - case 8: - flag = true; - num = -1636098887; - break; - case 0: - { - num = -1636098884; - break; - } - IL_0110: - flag2 = (byte)num5 != 0; - num = ((!flag2) ? (-1636098885) : (-1636098883)); - break; - } - } - }) - select new ContentFinderConditionData(x, _003C_003Ec__DisplayClass9_0._202C_206E_200D_200E_206C_202E_206C_200B_206F_202E_206C_200E_200F_206F_206A_200D_200F_202A_202A_206F_202B_200D_206B_202E_202D_200E_202E_200D_200E_202D_200D_200C_200D_200E_200E_206B_200E_202B_206D_206F_202E(dataManager))).ToImmutableDictionary((ContentFinderConditionData x) => x.ContentFinderConditionId, (ContentFinderConditionData x) => x); - _territoryToContentFinderCondition = (from x in dataManager.GetExcelSheet<ContentFinderCondition>().Where(delegate(ContentFinderCondition x) - { - int num = ((x.RowId == 0) ? (-1478857039) : (-1478857038)); - while (true) - { - int num2 = num; - int num3 = -1478857037; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0048; - case 2: - return false; - case 1: - return x.TerritoryType.RowId != 0; - } - continue; - IL_0048: - num = -1478857038; + byte contentLinkType = x.ContentLinkType; + bool flag2 = ((contentLinkType == 1 || contentLinkType == 5) ? true : false); + flag = flag2; } + return flag && x.ContentType.RowId != 6; }) + select new ContentFinderConditionData(x, dataManager.Language)).ToImmutableDictionary((ContentFinderConditionData x) => x.ContentFinderConditionId, (ContentFinderConditionData x) => x); + _territoryToContentFinderCondition = (from x in dataManager.GetExcelSheet<ContentFinderCondition>() + where x.RowId != 0 && x.TerritoryType.RowId != 0 group x by x.TerritoryType.RowId).ToImmutableDictionary((IGrouping<uint, ContentFinderCondition> g) => g.Key, (IGrouping<uint, ContentFinderCondition> g) => g.First().RowId); - _questBattlesToContentFinderCondition = (from x in dataManager.GetExcelSheet<Quest>().Where(delegate(Quest x) - { - int num = ((x.RowId == 0) ? (-1185353339) : (-1185353338)); - while (true) - { - int num2 = num; - int num3 = -1185353337; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0048; - case 1: - return x.IssuerLocation.RowId != 0; - case 2: - return false; - } - continue; - IL_0048: - num = -1185353338; - } - }).SelectMany(GetQuestBattles) + _questBattlesToContentFinderCondition = (from x in (from x in dataManager.GetExcelSheet<Quest>() + where x.RowId != 0 && x.IssuerLocation.RowId != 0 + select x).SelectMany(GetQuestBattles) select (QuestId: x.QuestId, Index: x.Index, CfcId: LookupContentFinderConditionForQuestBattle(dataManager, x.QuestBattleId))).ToImmutableDictionary<(ElementId, byte, uint), (ElementId, byte), uint>(((ElementId QuestId, byte Index, uint CfcId) x) => (QuestId: x.QuestId, Index: x.Index), ((ElementId QuestId, byte Index, uint CfcId) x) => x.CfcId); } @@ -1119,51 +145,20 @@ internal sealed class TerritoryData : ITerritoryInfo return _territoryNames.GetValueOrDefault(territoryId); } - string? ITerritoryInfo.GetName(uint territoryId) - { - //ILSpy generated this explicit interface implementation from .override directive in GetName - return this.GetName(territoryId); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public string GetNameAndId(uint territoryId) { string name = GetName(territoryId); - int num = ((name == null) ? (-644306227) : (-644306226)); - while (true) + if (name != null) { - int num2 = num; - int num3 = -644306228; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return territoryId.ToString(_202C_200C_200F_206C_202E_202A_206D_206C_206C_206F_200E_202E_200F_202C_202A_206D_202B_200E_206E_206C_206D_200F_200D_200D_202A_202C_200B_206C_206A_200B_202E_200B_200F_202E_202E_200B_202C_206A_202A_200D_202E()); - case 2: - { - IFormatProvider formatProvider = _202C_200C_200F_206C_202E_202A_206D_206C_206C_206F_200E_202E_200F_202C_202A_206D_202B_200E_206E_206C_206D_200F_200D_200D_202A_202C_200B_206C_206A_200B_202E_200B_200F_202E_202E_200B_202C_206A_202A_200D_202E(); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(3, 2, formatProvider); - defaultInterpolatedStringHandler.AppendFormatted(name); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(588901087)); - defaultInterpolatedStringHandler.AppendFormatted(territoryId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - return _206B_200F_202E_202B_206C_200D_200D_206C_202D_200B_206A_200C_200E_200C_202B_200C_202C_200C_206B_206A_202D_200B_206F_202B_206C_202A_206A_202D_202E_200C_200C_202B_202B_202E_202E_202C_202A_200F_200C_202D_202E(formatProvider, ref defaultInterpolatedStringHandler); - } - case 0: - goto IL_00a9; - } - continue; - IL_00a9: - num = -644306226; + IFormatProvider invariantCulture = CultureInfo.InvariantCulture; + DefaultInterpolatedStringHandler handler = new DefaultInterpolatedStringHandler(3, 2, invariantCulture); + handler.AppendFormatted(name); + handler.AppendLiteral(" ("); + handler.AppendFormatted(territoryId); + handler.AppendLiteral(")"); + return string.Create(invariantCulture, ref handler); } - } - - string ITerritoryInfo.GetNameAndId(uint territoryId) - { - //ILSpy generated this explicit interface implementation from .override directive in GetNameAndId - return this.GetNameAndId(territoryId); + return territoryId.ToString(CultureInfo.InvariantCulture); } public bool CanUseMount(uint territoryId) @@ -1171,66 +166,22 @@ internal sealed class TerritoryData : ITerritoryInfo return _territoriesWithMount.Contains(territoryId); } - bool ITerritoryInfo.CanUseMount(uint territoryId) - { - //ILSpy generated this explicit interface implementation from .override directive in CanUseMount - return this.CanUseMount(territoryId); - } - public byte GetExVersion(uint territoryId) { - byte value; - int num = (_territoryExVersions.TryGetValue(territoryId, out value) ? 2048951031 : 2048951028); - while (true) + if (!_territoryExVersions.TryGetValue(territoryId, out var value)) { - int num2 = num; - int num3 = 2048951029; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004e; - case 2: - return value; - case 1: - return 0; - } - continue; - IL_004e: - num = 2048951028; + return 0; } - } - - byte ITerritoryInfo.GetExVersion(uint territoryId) - { - //ILSpy generated this explicit interface implementation from .override directive in GetExVersion - return this.GetExVersion(territoryId); + return value; } public ZoneAccessRequirement? GetZoneAccessRequirement(uint territoryId) { - ZoneAccessRequirement value; - int num = (_territoryZoneAccessRequirements.TryGetValue(territoryId, out value) ? 1350019505 : 1350019506); - while (true) + if (!_territoryZoneAccessRequirements.TryGetValue(territoryId, out var value)) { - int num2 = num; - int num3 = 1350019507; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0053; - case 1: - return null; - case 2: - return value; - } - continue; - IL_0053: - num = 1350019506; + return null; } + return value; } public bool IsDutyInstance(uint territoryId) @@ -1240,28 +191,11 @@ internal sealed class TerritoryData : ITerritoryInfo public bool IsQuestBattleInstance(uint territoryId) { - uint value; - int num = ((!_dutyTerritories.TryGetValue(territoryId, out value)) ? 555422992 : 555422995); - while (true) + if (_dutyTerritories.TryGetValue(territoryId, out var value)) { - int num2 = num; - int num3 = 555422993; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0050; - case 2: - return value == 7; - case 1: - return false; - } - continue; - IL_0050: - num = 555422995; + return value == 7; } + return false; } public string? GetInstanceName(uint instanceId) @@ -1281,27 +215,12 @@ internal sealed class TerritoryData : ITerritoryInfo public bool TryGetContentFinderConditionForSoloInstance(ElementId questId, byte index, [NotNullWhen(true)] out ContentFinderConditionData? contentFinderConditionData) { - uint value; - int num = ((!_questBattlesToContentFinderCondition.TryGetValue((questId, index), out value)) ? (-1412736691) : (-1412736690)); - while (true) + if (_questBattlesToContentFinderCondition.TryGetValue((questId, index), out var value)) { - int num2 = num; - int num3 = -1412736689; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - contentFinderConditionData = null; - return false; - case 1: - return _contentFinderConditions.TryGetValue(value, out contentFinderConditionData); - case 0: - goto IL_0067; - } - continue; - IL_0067: - num = -1412736690; + return _contentFinderConditions.TryGetValue(value, out contentFinderConditionData); } + contentFinderConditionData = null; + return false; } public bool TryGetContentFinderConditionIdForTerritory(uint territoryId, out uint cfcId) @@ -1316,108 +235,38 @@ internal sealed class TerritoryData : ITerritoryInfo private static string FixName(string name, ClientLanguage language) { - int num = (_206A_206D_202D_206E_200B_202B_200B_200C_200D_206F_206A_202E_206E_202A_200F_200F_200F_206E_202A_206E_206F_200E_206B_202C_202E_206E_206E_202E_206A_202A_200F_206F_206A_200D_206F_206B_206E_206E_200E_206B_202E(name) ? 1084979106 : 1084979105); - while (true) + if (string.IsNullOrEmpty(name) || language != ClientLanguage.English) { - int num2 = num; - int num3 = 1084979104; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return name; + } + return string.Concat(name[0].ToString().ToUpper(CultureInfo.InvariantCulture).AsSpan(), name.AsSpan(1)); + } + + private static IEnumerable<(ElementId QuestId, byte Index, uint QuestBattleId)> GetQuestBattles(Quest quest) + { + foreach (Quest.QuestParamsStruct questParam in quest.QuestParams) + { + if (questParam.ScriptInstruction == "QUESTBATTLE0") + { + yield return (QuestId: QuestId.FromRowId(quest.RowId), Index: 0, QuestBattleId: questParam.ScriptArg); + } + else if (questParam.ScriptInstruction == "QUESTBATTLE1") + { + yield return (QuestId: QuestId.FromRowId(quest.RowId), Index: 1, QuestBattleId: questParam.ScriptArg); + } + else if (questParam.ScriptInstruction.IsEmpty) { - case 0: - return _202E_200B_200E_206D_200E_200B_206F_200E_200E_200D_206C_200F_202C_202B_202E_206F_200B_202A_202A_206B_200E_202E_202C_206D_206A_206A_206E_202D_206C_206E_200C_202A_202D_206D_202A_206D_200B_202A_206A_200C_202E(_206C_206D_206F_206E_206C_200D_206A_200E_200D_200B_206C_202B_202B_206D_200F_200C_202E_206D_200E_202A_206B_202C_200E_206A_206B_200F_200D_202D_202B_202B_202A_202B_206B_202E_206C_200F_202D_202C_202B_206A_202E(_200C_206D_206B_200B_206C_206F_202D_202C_202D_200F_206B_202C_200D_200F_202E_202B_202B_200B_202E_202B_206F_202C_200C_206F_200F_206B_206C_206F_206E_206C_202E_200D_206B_202D_200B_202B_202A_202A_202D_202D_202E(_206E_206F_200E_202A_200D_200E_206D_206E_206D_202E_206F_206A_200C_206F_200B_202C_202A_206B_202E_202C_206D_200B_200E_200D_200F_206D_206F_206E_202B_206D_202B_206D_206F_202E_200F_206C_206F_206C_202D_202C_202E(name, 0).ToString(), _202C_200C_200F_206C_202E_202A_206D_206C_206C_206F_200E_202E_200F_202C_202A_206D_202B_200E_206E_206C_206D_200F_200D_200D_202A_202C_200B_206C_206A_200B_202E_200B_200F_202E_202E_200B_202C_206A_202A_200D_202E())), _206C_202B_202E_202D_202A_202E_206D_202A_206C_200D_200D_206F_206F_202D_200D_206F_206F_202E_202D_206C_206D_206D_202B_200C_200E_202D_200C_206C_202E_202E_206A_206F_202B_206B_202B_200F_206E_200B_202B_200E_202E(name, 1)); - case 1: - num = ((language == ClientLanguage.English) ? 1084979104 : 1084979106); - break; - case 2: - return name; - case 3: - num = 1084979105; break; } } } - [IteratorStateMachine(typeof(_003CGetQuestBattles_003Ed__24))] - private static IEnumerable<(ElementId QuestId, byte Index, uint QuestBattleId)> GetQuestBattles(Quest quest) - { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CGetQuestBattles_003Ed__24(-2) - { - _003C_003E3__quest = quest - }; - } - private static uint LookupContentFinderConditionForQuestBattle(IDataManager dataManager, uint questBattleId) { - int num = ((questBattleId < 5000) ? 152242132 : 152242135); - while (true) + if (questBattleId >= 5000) { - int num2 = num; - int num3 = 152242134; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004f; - case 1: - return dataManager.GetExcelSheet<InstanceContent>().GetRow(questBattleId).ContentFinderCondition.RowId; - case 2: - return dataManager.GetExcelSheet<QuestBattleResident>().GetRow(questBattleId).SoloDuty.RowId; - } - continue; - IL_004f: - num = 152242135; + return dataManager.GetExcelSheet<InstanceContent>().GetRow(questBattleId).ContentFinderCondition.RowId; } - } - - static bool _206A_206D_202D_206E_200B_202B_200B_200C_200D_206F_206A_202E_206E_202A_200F_200F_200F_206E_202A_206E_206F_200E_206B_202C_202E_206E_206E_202E_206A_202A_200F_206F_206A_200D_206F_206B_206E_206E_200E_206B_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static string _202D_200F_200C_206D_202B_206A_200B_200E_202B_206F_202A_202B_202E_206A_200C_200D_200F_206B_202D_206B_202D_202A_202E_200C_202A_202E_202B_202C_206B_200F_206E_200C_200C_200F_202C_206B_206E_206F_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); - } - - static void _202E_200C_202B_200E_200D_200C_206F_200E_202A_202B_206E_206B_200F_206B_202B_202B_202A_202A_200F_200E_200B_206D_200B_200E_202A_202B_202E_206F_206F_200D_200B_206F_200E_202A_202C_202A_206C_202E_200F_202A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static CultureInfo _202C_200C_200F_206C_202E_202A_206D_206C_206C_206F_200E_202E_200F_202C_202A_206D_202B_200E_206E_206C_206D_200F_200D_200D_202A_202C_200B_206C_206A_200B_202E_200B_200F_202E_202E_200B_202C_206A_202A_200D_202E() - { - return CultureInfo.InvariantCulture; - } - - static string _206B_200F_202E_202B_206C_200D_200D_206C_202D_200B_206A_200C_200E_200C_202B_200C_202C_200C_206B_206A_202D_200B_206F_202B_206C_202A_206A_202D_202E_200C_200C_202B_202B_202E_202E_202C_202A_200F_200C_202D_202E(IFormatProvider P_0, ref DefaultInterpolatedStringHandler P_1) - { - return string.Create(P_0, ref P_1); - } - - static char _206E_206F_200E_202A_200D_200E_206D_206E_206D_202E_206F_206A_200C_206F_200B_202C_202A_206B_202E_202C_206D_200B_200E_200D_200F_206D_206F_206E_202B_206D_202B_206D_206F_202E_200F_206C_206F_206C_202D_202C_202E(string P_0, int P_1) - { - return P_0[P_1]; - } - - static string _200C_206D_206B_200B_206C_206F_202D_202C_202D_200F_206B_202C_200D_200F_202E_202B_202B_200B_202E_202B_206F_202C_200C_206F_200F_206B_206C_206F_206E_206C_202E_200D_206B_202D_200B_202B_202A_202A_202D_202D_202E(string P_0, CultureInfo P_1) - { - return P_0.ToUpper(P_1); - } - - static ReadOnlySpan<char> _206C_206D_206F_206E_206C_200D_206A_200E_200D_200B_206C_202B_202B_206D_200F_200C_202E_206D_200E_202A_206B_202C_200E_206A_206B_200F_200D_202D_202B_202B_202A_202B_206B_202E_206C_200F_202D_202C_202B_206A_202E(string P_0) - { - return P_0.AsSpan(); - } - - static ReadOnlySpan<char> _206C_202B_202E_202D_202A_202E_206D_202A_206C_200D_200D_206F_206F_202D_200D_206F_206F_202E_202D_206C_206D_206D_202B_200C_200E_202D_200C_206C_202E_202E_206A_206F_202B_206B_202B_200F_206E_200B_202B_200E_202E(string P_0, int P_1) - { - return P_0.AsSpan(P_1); - } - - static string _202E_200B_200E_206D_200E_200B_206F_200E_200E_200D_206C_200F_202C_202B_202E_206F_200B_202A_202A_206B_200E_202E_202C_206D_206A_206A_206E_202D_206C_206E_200C_202A_202D_206D_202A_206D_200B_202A_206A_200C_202E(ReadOnlySpan<char> P_0, ReadOnlySpan<char> P_1) - { - return string.Concat(P_0, P_1); + return dataManager.GetExcelSheet<QuestBattleResident>().GetRow(questBattleId).SoloDuty.RowId; } } diff --git a/Questionable/Questionable.External/ArtisanIpc.cs b/Questionable/Questionable.External/ArtisanIpc.cs index d2621d7..8e42677 100644 --- a/Questionable/Questionable.External/ArtisanIpc.cs +++ b/Questionable/Questionable.External/ArtisanIpc.cs @@ -1,5 +1,3 @@ -using System; -using System.Runtime.CompilerServices; using Dalamud.Plugin; using Dalamud.Plugin.Ipc; using Dalamud.Plugin.Ipc.Exceptions; @@ -23,16 +21,15 @@ internal sealed class ArtisanIpc private readonly ICallGateSubscriber<bool, object> _setStopRequest; - [MethodImpl(MethodImplOptions.NoInlining)] public ArtisanIpc(IDalamudPluginInterface pluginInterface, ILogger<ArtisanIpc> logger) { _logger = logger; - _craftItem = pluginInterface.GetIpcSubscriber<ushort, int, object>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(47202474)); - _isBusy = pluginInterface.GetIpcSubscriber<bool>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(625666467)); - _getEnduranceStatus = pluginInterface.GetIpcSubscriber<bool>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1864578961)); - _setEnduranceStatus = pluginInterface.GetIpcSubscriber<bool, object>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(70125506)); - _getStopRequest = pluginInterface.GetIpcSubscriber<bool>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-642335670)); - _setStopRequest = pluginInterface.GetIpcSubscriber<bool, object>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-653283353)); + _craftItem = pluginInterface.GetIpcSubscriber<ushort, int, object>("Artisan.CraftItem"); + _isBusy = pluginInterface.GetIpcSubscriber<bool>("Artisan.IsBusy"); + _getEnduranceStatus = pluginInterface.GetIpcSubscriber<bool>("Artisan.GetEnduranceStatus"); + _setEnduranceStatus = pluginInterface.GetIpcSubscriber<bool, object>("Artisan.SetEnduranceStatus"); + _getStopRequest = pluginInterface.GetIpcSubscriber<bool>("Artisan.GetStopRequest"); + _setStopRequest = pluginInterface.GetIpcSubscriber<bool, object>("Artisan.SetStopRequest"); } public bool IsAvailable() @@ -48,123 +45,81 @@ internal sealed class ArtisanIpc } } - [MethodImpl(MethodImplOptions.NoInlining)] public bool IsBusy() { try { return _isBusy.InvokeFunc(); } - catch (IpcError ipcError) + catch (IpcError exception) { - _200F_206D_206A_202E_202C_202A_206D_206A_202A_200B_206D_202A_206E_200E_200D_202D_202B_200B_200F_206A_200C_206F_206E_206D_206B_202C_206B_206C_206A_202D_206C_202C_202C_206B_206B_200D_206D_202B_206A_202E_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1209801229), Array.Empty<object>()); + _logger.LogError(exception, "Unable to check Artisan busy status"); return false; } } - [MethodImpl(MethodImplOptions.NoInlining)] public bool IsCrafting() { try { - int num = (_isBusy.InvokeFunc() ? 2072853802 : 2072853801); - int result; - while (true) - { - int num2 = num; - int num3 = 2072853800; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 0: - goto IL_0050; - case 1: - result = (_getEnduranceStatus.InvokeFunc() ? 1 : 0); - break; - case 2: - result = 1; - break; - } - break; - IL_0050: - num = 2072853801; - } - return (byte)result != 0; + return _isBusy.InvokeFunc() || _getEnduranceStatus.InvokeFunc(); } - catch (IpcError ipcError) + catch (IpcError exception) { - _200F_206D_206A_202E_202C_202A_206D_206A_202A_200B_206D_202A_206E_200E_200D_202D_202B_200B_200F_206A_200C_206F_206E_206D_206B_202C_206B_206C_206A_202D_206C_202C_202C_206B_206B_200D_206D_202B_206A_202E_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2004423705), Array.Empty<object>()); + _logger.LogError(exception, "Unable to check Artisan crafting status"); return false; } } - [MethodImpl(MethodImplOptions.NoInlining)] public bool CraftItem(ushort recipeId, int quantity) { try { - _206E_206F_202D_200E_202D_202D_202A_202E_200C_202C_202E_200E_202C_206A_206A_200D_206E_206A_202C_200C_200E_206D_206F_202E_202A_206A_200E_200D_200E_206A_200D_206E_200C_200D_206B_206B_202E_200F_200D_202B_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(453183658), new object[2] { quantity, recipeId }); + _logger.LogDebug("Attempting to craft {Quantity} items with recipe {RecipeId} with Artisan", quantity, recipeId); _craftItem.InvokeAction(recipeId, quantity); return true; } - catch (IpcError ipcError) + catch (IpcError exception) { - _200F_206D_206A_202E_202C_202A_206D_206A_202A_200B_206D_202A_206E_200E_200D_202D_202B_200B_200F_206A_200C_206F_206E_206D_206B_202C_206B_206C_206A_202D_206C_202C_202C_206B_206B_200D_206D_202B_206A_202E_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-764787723), Array.Empty<object>()); + _logger.LogError(exception, "Unable to craft items"); return false; } } - [MethodImpl(MethodImplOptions.NoInlining)] public void SetEnduranceStatus(bool enabled) { try { _setEnduranceStatus.InvokeAction(enabled); } - catch (IpcError ipcError) + catch (IpcError exception) { - _200F_206D_206A_202E_202C_202A_206D_206A_202A_200B_206D_202A_206E_200E_200D_202D_202B_200B_200F_206A_200C_206F_206E_206D_206B_202C_206B_206C_206A_202D_206C_202C_202C_206B_206B_200D_206D_202B_206A_202E_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(789373689), Array.Empty<object>()); + _logger.LogError(exception, "Unable to set Artisan endurance status"); } } - [MethodImpl(MethodImplOptions.NoInlining)] public bool GetStopRequest() { try { return _getStopRequest.InvokeFunc(); } - catch (IpcError ipcError) + catch (IpcError exception) { - _200F_206D_206A_202E_202C_202A_206D_206A_202A_200B_206D_202A_206E_200E_200D_202D_202B_200B_200F_206A_200C_206F_206E_206D_206B_202C_206B_206C_206A_202D_206C_202C_202C_206B_206B_200D_206D_202B_206A_202E_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1603998774), Array.Empty<object>()); + _logger.LogError(exception, "Unable to check Artisan stop request"); return false; } } - [MethodImpl(MethodImplOptions.NoInlining)] public void SetStopRequest(bool stop) { try { _setStopRequest.InvokeAction(stop); } - catch (IpcError ipcError) + catch (IpcError exception) { - _200F_206D_206A_202E_202C_202A_206D_206A_202A_200B_206D_202A_206E_200E_200D_202D_202B_200B_200F_206A_200C_206F_206E_206D_206B_202C_206B_206C_206A_202D_206C_202C_202C_206B_206B_200D_206D_202B_206A_202E_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1609057736), Array.Empty<object>()); + _logger.LogError(exception, "Unable to set Artisan stop request"); } } - - static void _200F_206D_206A_202E_202C_202A_206D_206A_202A_200B_206D_202A_206E_200E_200D_202D_202B_200B_200F_206A_200C_206F_206E_206D_206B_202C_206B_206C_206A_202D_206C_202C_202C_206B_206B_200D_206D_202B_206A_202E_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - - static void _206E_206F_202D_200E_202D_202D_202A_202E_200C_202C_202E_200E_202C_206A_206A_200D_206E_206A_202C_200C_200E_206D_206F_202E_202A_206A_200E_200D_200E_206A_200D_206E_200C_200D_206B_206B_202E_200F_200D_202B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } } diff --git a/Questionable/Questionable.External/AutoDutyIpc.cs b/Questionable/Questionable.External/AutoDutyIpc.cs index 2f2b5d1..00d5363 100644 --- a/Questionable/Questionable.External/AutoDutyIpc.cs +++ b/Questionable/Questionable.External/AutoDutyIpc.cs @@ -1,5 +1,4 @@ using System; -using System.Runtime.CompilerServices; using Dalamud.Plugin; using Dalamud.Plugin.Ipc; using Dalamud.Plugin.Ipc.Exceptions; @@ -44,29 +43,27 @@ internal sealed class AutoDutyIpc public const int MinimumLevelForLevelingMode = 15; - [MethodImpl(MethodImplOptions.NoInlining)] public AutoDutyIpc(IDalamudPluginInterface pluginInterface, Configuration configuration, TerritoryData territoryData, ILogger<AutoDutyIpc> logger) { _configuration = configuration; _territoryData = territoryData; _logger = logger; - _contentHasPath = pluginInterface.GetIpcSubscriber<uint, bool>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(669378037)); - _getConfig = pluginInterface.GetIpcSubscriber<string, string>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(778701164)); - _setConfig = pluginInterface.GetIpcSubscriber<string, string, object>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(930976644)); - _run = pluginInterface.GetIpcSubscriber<uint, int, bool, object>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-715592448)); - _start = pluginInterface.GetIpcSubscriber<bool, object>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(586700200)); - _isStopped = pluginInterface.GetIpcSubscriber<bool>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(200621634)); - _stop = pluginInterface.GetIpcSubscriber<object>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(787984803)); + _contentHasPath = pluginInterface.GetIpcSubscriber<uint, bool>("AutoDuty.ContentHasPath"); + _getConfig = pluginInterface.GetIpcSubscriber<string, string>("AutoDuty.GetConfig"); + _setConfig = pluginInterface.GetIpcSubscriber<string, string, object>("AutoDuty.SetConfig"); + _run = pluginInterface.GetIpcSubscriber<uint, int, bool, object>("AutoDuty.Run"); + _start = pluginInterface.GetIpcSubscriber<bool, object>("AutoDuty.Start"); + _isStopped = pluginInterface.GetIpcSubscriber<bool>("AutoDuty.IsStopped"); + _stop = pluginInterface.GetIpcSubscriber<object>("AutoDuty.Stop"); _loggedContentHasPathQueryWarning = false; _loggedLevelingModeWarning = false; } - [MethodImpl(MethodImplOptions.NoInlining)] public bool ManagesRotationPluginState() { try { - return _206A_200D_200D_206E_202C_200E_200F_202C_200C_200F_206E_200E_206B_206D_200B_202A_202E_202D_206F_206D_200C_200B_206A_206C_200E_206B_206F_206D_202E_206D_206B_200F_202E_202E_202A_202C_202E_200C_202C_206A_202E(_getConfig.InvokeFunc(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(656009989)), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(251886879), StringComparison.OrdinalIgnoreCase); + return string.Equals(_getConfig.InvokeFunc("AutoManageRotationPluginState"), "True", StringComparison.OrdinalIgnoreCase); } catch (IpcError) { @@ -74,12 +71,11 @@ internal sealed class AutoDutyIpc } } - [MethodImpl(MethodImplOptions.NoInlining)] public bool ManagesBossModAiSettings() { try { - return _206A_200D_200D_206E_202C_200E_200F_202C_200C_200F_206E_200E_206B_206D_200B_202A_202E_202D_206F_206D_200C_200B_206A_206C_200E_206B_206F_206D_202E_206D_206B_200F_202E_202E_202A_202C_202E_200C_202C_206A_202E(_getConfig.InvokeFunc(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1652223721)), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-536004571), StringComparison.OrdinalIgnoreCase); + return string.Equals(_getConfig.InvokeFunc("AutoManageBossModAISettings"), "True", StringComparison.OrdinalIgnoreCase); } catch (IpcError) { @@ -89,66 +85,28 @@ internal sealed class AutoDutyIpc public bool IsConfiguredToRunContent(DutyOptions? dutyOptions) { - int num = ((dutyOptions == null) ? (-925211757) : (-925211760)); - uint num7 = default(uint); - DutyEntry value = default(DutyEntry); - while (true) + if (dutyOptions == null || dutyOptions.ContentFinderConditionId == 0) { - int num2 = num; - int num3 = -925211759; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - return false; - case 1: - num = ((_202E_206E_206B_200F_202E_200B_200D_200D_206F_202B_202D_202C_200C_206E_200F_206F_202B_200F_200B_206A_206A_200C_206F_200E_200B_200F_200C_206E_206C_202E_202D_200F_200C_206D_206E_202D_202A_200D_200D_202E_202E(dutyOptions) != 0) ? (-925211750) : (-925211757)); - break; - case 3: - return HasPath(num7); - case 14: - if (value.Enabled) - { - num = -925211758; - break; - } - goto case 0; - case 5: - num = ((!_configuration.Duties.WhitelistedDutyCfcIds.Contains(num7)) ? (-925211754) : (-925211749)); - break; - case 0: - num = -925211751; - break; - case 6: - return true; - case 9: - num = -925211760; - break; - case 13: - return false; - case 2: - return false; - case 7: - num = ((!DutyRegistry.Duties.TryGetValue(num7, out value)) ? (-925211759) : (-925211745)); - break; - case 8: - return false; - case 10: - { - num = ((!_territoryData.TryGetContentFinderCondition(num7, out TerritoryData.ContentFinderConditionData _)) ? (-925211754) : (-925211753)); - break; - } - case 12: - num7 = _202E_206E_206B_200F_202E_200B_200D_200D_206F_202B_202D_202C_200C_206E_200F_206F_202B_200F_200B_206A_206A_200C_206F_200E_200B_200F_200C_206E_206C_202E_202D_200F_200C_206D_206E_202D_202A_200D_200D_202E_202E(dutyOptions); - num = ((!_configuration.Duties.BlacklistedDutyCfcIds.Contains(num7)) ? (-925211756) : (-925211748)); - break; - case 11: - num = (_configuration.Duties.RunInstancedContentWithAutoDuty ? (-925211747) : (-925211755)); - break; - } + return false; } + if (!_configuration.Duties.RunInstancedContentWithAutoDuty) + { + return false; + } + uint contentFinderConditionId = dutyOptions.ContentFinderConditionId; + if (_configuration.Duties.BlacklistedDutyCfcIds.Contains(contentFinderConditionId)) + { + return false; + } + if (_configuration.Duties.WhitelistedDutyCfcIds.Contains(contentFinderConditionId) && _territoryData.TryGetContentFinderCondition(contentFinderConditionId, out TerritoryData.ContentFinderConditionData _)) + { + return true; + } + if (DutyRegistry.Duties.TryGetValue(contentFinderConditionId, out DutyEntry value) && value.Enabled) + { + return HasPath(contentFinderConditionId); + } + return false; } public bool IsConfiguredToRunLevelingMode() @@ -156,238 +114,99 @@ internal sealed class AutoDutyIpc return _configuration.Duties.RunLevelingModeWhenUnderleveled; } - [MethodImpl(MethodImplOptions.NoInlining)] public bool IsConfiguredToRunLevelingMode(int currentPlayerLevel) { - int num = (_configuration.Duties.RunLevelingModeWhenUnderleveled ? 1846348049 : 1846348050); - while (true) + if (!_configuration.Duties.RunLevelingModeWhenUnderleveled) { - int num2 = num; - int num3 = 1846348051; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = ((currentPlayerLevel >= 15) ? 1846348055 : 1846348051); - break; - case 0: - _206C_200E_202E_200E_206A_202E_202C_206D_202B_200B_200D_200F_202D_206B_206D_200E_202A_202C_202E_206A_200D_200C_200F_206A_202E_206A_200E_200B_200D_200D_200F_202D_202B_200C_206C_206C_200B_206F_206C_202A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1066385664), new object[2] { currentPlayerLevel, 15 }); - return false; - case 3: - num = 1846348050; - break; - case 1: - return false; - case 4: - return true; - } + return false; } + if (currentPlayerLevel < 15) + { + _logger.LogDebug("Leveling mode is enabled but player level {CurrentLevel} is below minimum required level {MinLevel}", currentPlayerLevel, 15); + return false; + } + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public bool HasPath(uint cfcId) { - int num = (_territoryData.TryGetContentFinderCondition(cfcId, out TerritoryData.ContentFinderConditionData contentFinderConditionData) ? (-1822320114) : (-1822320115)); - while (true) + if (!_territoryData.TryGetContentFinderCondition(cfcId, out TerritoryData.ContentFinderConditionData contentFinderConditionData)) { - int num2 = num; - int num3 = -1822320113; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return false; + } + try + { + return _contentHasPath.InvokeFunc(contentFinderConditionData.TerritoryId); + } + catch (IpcError ipcError) + { + if (!_loggedContentHasPathQueryWarning) { - case 0: - goto IL_0054; - case 2: - return false; - case 1: - try - { - return _contentHasPath.InvokeFunc(contentFinderConditionData.TerritoryId); - } - catch (IpcError ipcError) - { - num = (_loggedContentHasPathQueryWarning ? 1942042922 : 1942042921); - while (true) - { - int num5 = num; - num3 = 1942042923; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1942042921; - break; - case 2: - _206E_206F_206B_206E_206D_202D_206A_200F_206B_206D_206D_200D_202B_200E_200E_206B_202C_200D_202C_206E_206E_202C_200C_206A_200B_206B_206E_206D_206A_202D_202D_206E_200B_206F_200E_200C_206F_200E_202D_206E_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(63973339), new object[2] - { - contentFinderConditionData.TerritoryId, - _202E_206B_200C_202D_200C_200F_206D_200C_206F_206A_200B_202E_202B_206D_200C_206C_200E_206E_206B_202B_206F_206F_202E_202E_202A_200D_200E_200C_200D_202C_200C_200D_202D_202D_202B_202E_202D_202D_202C_202D_202E((Exception)ipcError) - }); - _loggedContentHasPathQueryWarning = true; - num = 1942042922; - break; - case 1: - return false; - } - } - } + _logger.LogWarning("Unable to query AutoDuty for path in territory {TerritoryType}: {Message}", contentFinderConditionData.TerritoryId, ipcError.Message); + _loggedContentHasPathQueryWarning = true; } - continue; - IL_0054: - num = -1822320115; + return false; } } - [MethodImpl(MethodImplOptions.NoInlining)] public void StartInstance(uint cfcId, DutyMode dutyMode) { - int num = (_territoryData.TryGetContentFinderCondition(cfcId, out TerritoryData.ContentFinderConditionData contentFinderConditionData) ? (-1305610251) : (-1305610252)); - string arg = default(string); - while (true) + if (!_territoryData.TryGetContentFinderCondition(cfcId, out TerritoryData.ContentFinderConditionData contentFinderConditionData)) { - int num2 = num; - int num3 = -1305610251; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + throw new TaskException($"Unknown ContentFinderConditionId {cfcId}"); + } + try + { + _logger.LogDebug("Disabling AutoDuty leveling mode before starting specific duty {CfcId}", cfcId); + _setConfig.InvokeAction("leveling", "None"); + _setConfig.InvokeAction("Unsynced", $"{dutyMode == DutyMode.UnsyncRegular}"); + ICallGateSubscriber<string, string, object> setConfig = _setConfig; + setConfig.InvokeAction("dutyModeEnum", dutyMode switch { - case 2: - goto IL_0057; - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(33, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1265777789)); - defaultInterpolatedStringHandler.AppendFormatted(cfcId); - throw new TaskException(defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 0: - try - { - _206C_200E_202E_200E_206A_202E_202C_206D_202B_200B_200D_200F_202D_206B_206D_200E_202A_202C_202E_206A_200D_200C_200F_206A_202E_206A_200E_200B_200D_200D_200F_202D_202B_200C_206C_206C_200B_206F_206C_202A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-95990036), new object[1] { cfcId }); - _setConfig.InvokeAction(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1128026998), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(474422561)); - _setConfig.InvokeAction(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-135408714), $"{dutyMode == DutyMode.UnsyncRegular}"); - ICallGateSubscriber<string, string, object> setConfig = _setConfig; - num = ((dutyMode == DutyMode.Support) ? (-858161534) : (-858161535)); - while (true) - { - int num5 = num; - num3 = -858161529; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = -858161535; - break; - case 5: - arg = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(831199868); - num = -858161531; - break; - case 1: - num = -858161529; - break; - case 3: - arg = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-669754596); - num = -858161531; - break; - case 6: - num = ((dutyMode == DutyMode.UnsyncRegular) ? (-858161532) : (-858161530)); - break; - case 0: - throw _202B_202C_206C_206A_206F_206E_200D_202C_206A_202C_206A_200B_206F_200C_202E_202C_202B_206D_202E_206C_206B_200B_206A_202E_206D_206E_202B_202D_206C_200C_206E_206F_202D_202C_202C_206B_202A_200E_200E_200F_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(428627433), (object)dutyMode, (string)null); - case 2: - setConfig.InvokeAction(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(508209007), arg); - _run.InvokeAction(contentFinderConditionData.TerritoryId, 1, !_configuration.Advanced.DisableAutoDutyBareMode); - return; - } - } - } - catch (IpcError ipcError) - { - throw new TaskException(_202B_200E_206A_200C_206C_206B_202B_200F_200B_202B_202C_206F_202D_206D_200E_206C_206D_206C_206F_202D_200C_206F_200F_200F_206C_200E_206A_202B_202C_200E_206A_202E_206F_200C_206C_202A_200B_200E_206D_202C_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1617899895), _202E_206B_200C_202D_200C_200F_206D_200C_206F_206A_200B_202E_202B_206D_200C_206C_200E_206E_206B_202B_206F_206F_202E_202E_202A_200D_200E_200C_200D_202C_200C_200D_202D_202D_202B_202E_202D_202D_202C_202D_202E((Exception)ipcError)), ipcError); - } - } - continue; - IL_0057: - num = -1305610252; + DutyMode.Support => "Support", + DutyMode.UnsyncRegular => "Regular", + _ => throw new ArgumentOutOfRangeException("dutyMode", dutyMode, null), + }); + _run.InvokeAction(contentFinderConditionData.TerritoryId, 1, !_configuration.Advanced.DisableAutoDutyBareMode); + } + catch (IpcError ipcError) + { + throw new TaskException("Unable to run content with AutoDuty: " + ipcError.Message, ipcError); } } - [MethodImpl(MethodImplOptions.NoInlining)] public bool StartLevelingMode() { try { - int num = (IsStopped() ? 1638080603 : 1638080602); - while (true) + if (!IsStopped()) { - int num2 = num; - int num3 = 1638080603; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_004c; - case 1: - _206C_200E_202E_200E_206A_202E_202C_206D_202B_200B_200D_200F_202D_206B_206D_200E_202A_202C_202E_206A_200D_200C_200F_206A_202E_206A_200E_200B_200D_200D_200F_202D_202B_200C_206C_206C_200B_206F_206C_202A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(294195478), Array.Empty<object>()); - return true; - case 0: - _206C_200E_202E_200E_206A_202E_202C_206D_202B_200B_200D_200F_202D_206B_206D_200E_202A_202C_202E_206A_200D_200C_200F_206A_202E_206A_200E_200B_200D_200D_200F_202D_202B_200C_206C_206C_200B_206F_206C_202A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-451238822), Array.Empty<object>()); - _setConfig.InvokeAction(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1303258245), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-482605368)); - _setConfig.InvokeAction(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1814589717), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-426031024)); - _start.InvokeAction(arg1: true); - return true; - } - continue; - IL_004c: - num = 1638080602; + _logger.LogDebug("AutoDuty is already running, not starting leveling mode again"); + return true; } + _logger.LogDebug("Starting AutoDuty Leveling mode (Support) - AutoDuty will select the best dungeon"); + _setConfig.InvokeAction("leveling", "Support"); + _setConfig.InvokeAction("AutoDutyModeEnum", "Looping"); + _start.InvokeAction(arg1: true); + return true; } catch (IpcError ipcError) { - int num = (_loggedLevelingModeWarning ? (-312465232) : (-312465229)); - while (true) + if (!_loggedLevelingModeWarning) { - int num5 = num; - int num3 = -312465231; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -312465229; - break; - case 2: - _206E_206F_206B_206E_206D_202D_206A_200F_206B_206D_206D_200D_202B_200E_200E_206B_202C_200D_202C_206E_206E_202C_200C_206A_200B_206B_206E_206D_206A_202D_202D_206E_200B_206F_200E_200C_206F_200E_202D_206E_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1771489609), new object[1] { _202E_206B_200C_202D_200C_200F_206D_200C_206F_206A_200B_202E_202B_206D_200C_206C_200E_206E_206B_202B_206F_206F_202E_202E_202A_200D_200E_200C_200D_202C_200C_200D_202D_202D_202B_202E_202D_202D_202C_202D_202E((Exception)ipcError) }); - _loggedLevelingModeWarning = true; - num = -312465232; - break; - case 1: - return false; - } + _logger.LogWarning("Unable to start AutoDuty Leveling mode: {Message}", ipcError.Message); + _loggedLevelingModeWarning = true; } + return false; } - catch (Exception ex) + catch (Exception exception) { - int num = (_loggedLevelingModeWarning ? (-1904773867) : (-1904773868)); - while (true) + if (!_loggedLevelingModeWarning) { - int num6 = num; - int num3 = -1904773867; - int num4 = num6; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1904773868; - break; - case 1: - _206A_200E_200F_206D_206C_200E_202D_200D_206B_206B_206E_202E_200C_206C_200F_202D_206D_202E_200C_200E_200C_206B_206E_202E_200F_202A_206C_200D_202A_200C_202A_206A_206C_202A_200B_200C_206D_202C_202A_200D_202E((ILogger)_logger, ex, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1702682282), Array.Empty<object>()); - _loggedLevelingModeWarning = true; - num = -1904773867; - break; - case 0: - return false; - } + _logger.LogWarning(exception, "Unable to start AutoDuty Leveling mode"); + _loggedLevelingModeWarning = true; } + return false; } } @@ -403,15 +222,14 @@ internal sealed class AutoDutyIpc } } - [MethodImpl(MethodImplOptions.NoInlining)] public bool Stop() { try { - _206C_200E_202E_200E_206A_202E_202C_206D_202B_200B_200D_200F_202D_206B_206D_200E_202A_202C_202E_206A_200D_200C_200F_206A_202E_206A_200E_200B_200D_200D_200F_202D_202B_200C_206C_206C_200B_206F_206C_202A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1093041537), Array.Empty<object>()); + _logger.LogDebug("Calling AutoDuty.Stop"); try { - _setConfig.InvokeAction(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1128026998), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(474422561)); + _setConfig.InvokeAction("leveling", "None"); } catch (IpcError) { @@ -421,48 +239,8 @@ internal sealed class AutoDutyIpc } catch (IpcError ipcError2) { - _206E_206F_206B_206E_206D_202D_206A_200F_206B_206D_206D_200D_202B_200E_200E_206B_202C_200D_202C_206E_206E_202C_200C_206A_200B_206B_206E_206D_206A_202D_202D_206E_200B_206F_200E_200C_206F_200E_202D_206E_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1903796332), new object[1] { _202E_206B_200C_202D_200C_200F_206D_200C_206F_206A_200B_202E_202B_206D_200C_206C_200E_206E_206B_202B_206F_206F_202E_202E_202A_200D_200E_200C_200D_202C_200C_200D_202D_202D_202B_202E_202D_202D_202C_202D_202E((Exception)ipcError2) }); + _logger.LogWarning("Unable to stop AutoDuty: {Message}", ipcError2.Message); return false; } } - - static bool _206A_200D_200D_206E_202C_200E_200F_202C_200C_200F_206E_200E_206B_206D_200B_202A_202E_202D_206F_206D_200C_200B_206A_206C_200E_206B_206F_206D_202E_206D_206B_200F_202E_202E_202A_202C_202E_200C_202C_206A_202E(string P_0, string P_1, StringComparison P_2) - { - return string.Equals(P_0, P_1, P_2); - } - - static uint _202E_206E_206B_200F_202E_200B_200D_200D_206F_202B_202D_202C_200C_206E_200F_206F_202B_200F_200B_206A_206A_200C_206F_200E_200B_200F_200C_206E_206C_202E_202D_200F_200C_206D_206E_202D_202A_200D_200D_202E_202E(DutyOptions P_0) - { - return P_0.ContentFinderConditionId; - } - - static void _206C_200E_202E_200E_206A_202E_202C_206D_202B_200B_200D_200F_202D_206B_206D_200E_202A_202C_202E_206A_200D_200C_200F_206A_202E_206A_200E_200B_200D_200D_200F_202D_202B_200C_206C_206C_200B_206F_206C_202A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static string _202E_206B_200C_202D_200C_200F_206D_200C_206F_206A_200B_202E_202B_206D_200C_206C_200E_206E_206B_202B_206F_206F_202E_202E_202A_200D_200E_200C_200D_202C_200C_200D_202D_202D_202B_202E_202D_202D_202C_202D_202E(Exception P_0) - { - return P_0.Message; - } - - static void _206E_206F_206B_206E_206D_202D_206A_200F_206B_206D_206D_200D_202B_200E_200E_206B_202C_200D_202C_206E_206E_202C_200C_206A_200B_206B_206E_206D_206A_202D_202D_206E_200B_206F_200E_200C_206F_200E_202D_206E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static ArgumentOutOfRangeException _202B_202C_206C_206A_206F_206E_200D_202C_206A_202C_206A_200B_206F_200C_202E_202C_202B_206D_202E_206C_206B_200B_206A_202E_206D_206E_202B_202D_206C_200C_206E_206F_202D_202C_202C_206B_202A_200E_200E_200F_202E(string P_0, object P_1, string P_2) - { - return new ArgumentOutOfRangeException(P_0, P_1, P_2); - } - - static string _202B_200E_206A_200C_206C_206B_202B_200F_200B_202B_202C_206F_202D_206D_200E_206C_206D_206C_206F_202D_200C_206F_200F_200F_206C_200E_206A_202B_202C_200E_206A_202E_206F_200C_206C_202A_200B_200E_206D_202C_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static void _206A_200E_200F_206D_206C_200E_202D_200D_206B_206B_206E_202E_200C_206C_200F_202D_206D_202E_200C_200E_200C_206B_206E_202E_200F_202A_206C_200D_202A_200C_202A_206A_206C_202A_200B_200C_206D_202C_202A_200D_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogWarning(P_1, P_2, P_3); - } } diff --git a/Questionable/Questionable.External/AutoHookIpc.cs b/Questionable/Questionable.External/AutoHookIpc.cs index 6643909..88e4c8d 100644 --- a/Questionable/Questionable.External/AutoHookIpc.cs +++ b/Questionable/Questionable.External/AutoHookIpc.cs @@ -1,5 +1,3 @@ -using System; -using System.Runtime.CompilerServices; using Dalamud.Plugin; using Dalamud.Plugin.Ipc; using Dalamud.Plugin.Ipc.Exceptions; @@ -25,17 +23,16 @@ internal sealed class AutoHookIpc private readonly ICallGateSubscriber<object> _deleteAllAnonymousPresets; - [MethodImpl(MethodImplOptions.NoInlining)] public AutoHookIpc(IDalamudPluginInterface pluginInterface, ILogger<AutoHookIpc> logger) { _logger = logger; - _getPluginState = pluginInterface.GetIpcSubscriber<bool>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1163699998)); - _setPluginState = pluginInterface.GetIpcSubscriber<bool, object>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-981353761)); - _getAutoStartFishing = pluginInterface.GetIpcSubscriber<bool>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(723530020)); - _setAutoStartFishing = pluginInterface.GetIpcSubscriber<bool, object>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(960202505)); - _swapBaitById = pluginInterface.GetIpcSubscriber<uint, bool>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1702658080)); - _createAndSelectAnonymousPreset = pluginInterface.GetIpcSubscriber<string, object>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(390173512)); - _deleteAllAnonymousPresets = pluginInterface.GetIpcSubscriber<object>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-472019215)); + _getPluginState = pluginInterface.GetIpcSubscriber<bool>("AutoHook.GetPluginState"); + _setPluginState = pluginInterface.GetIpcSubscriber<bool, object>("AutoHook.SetPluginState"); + _getAutoStartFishing = pluginInterface.GetIpcSubscriber<bool>("AutoHook.GetAutoStartFishing"); + _setAutoStartFishing = pluginInterface.GetIpcSubscriber<bool, object>("AutoHook.SetAutoStartFishing"); + _swapBaitById = pluginInterface.GetIpcSubscriber<uint, bool>("AutoHook.SwapBaitById"); + _createAndSelectAnonymousPreset = pluginInterface.GetIpcSubscriber<string, object>("AutoHook.CreateAndSelectAnonymousPreset"); + _deleteAllAnonymousPresets = pluginInterface.GetIpcSubscriber<object>("AutoHook.DeleteAllAnonymousPresets"); } public bool IsAvailable() @@ -51,102 +48,90 @@ internal sealed class AutoHookIpc } } - [MethodImpl(MethodImplOptions.NoInlining)] public bool GetPluginState() { try { return _getPluginState.InvokeFunc(); } - catch (IpcError ipcError) + catch (IpcError exception) { - _200F_202B_202A_202A_206E_200E_206C_202E_206F_202B_206B_206F_206A_202D_202C_200F_202C_202C_200F_206D_206E_202A_206A_206F_202B_202A_206A_206C_206F_206D_202D_202E_202D_206C_200E_202E_202B_206E_202B_202E_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(944880881), Array.Empty<object>()); + _logger.LogError(exception, "Unable to get AutoHook plugin state"); return false; } } - [MethodImpl(MethodImplOptions.NoInlining)] public void SetPluginState(bool enabled) { try { _setPluginState.InvokeAction(enabled); } - catch (IpcError ipcError) + catch (IpcError exception) { - _200F_202B_202A_202A_206E_200E_206C_202E_206F_202B_206B_206F_206A_202D_202C_200F_202C_202C_200F_206D_206E_202A_206A_206F_202B_202A_206A_206C_206F_206D_202D_202E_202D_206C_200E_202E_202B_206E_202B_202E_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1416285307), Array.Empty<object>()); + _logger.LogError(exception, "Unable to set AutoHook plugin state"); } } - [MethodImpl(MethodImplOptions.NoInlining)] public bool GetAutoStartFishing() { try { return _getAutoStartFishing.InvokeFunc(); } - catch (IpcError ipcError) + catch (IpcError exception) { - _200F_202B_202A_202A_206E_200E_206C_202E_206F_202B_206B_206F_206A_202D_202C_200F_202C_202C_200F_206D_206E_202A_206A_206F_202B_202A_206A_206C_206F_206D_202D_202E_202D_206C_200E_202E_202B_206E_202B_202E_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-795018389), Array.Empty<object>()); + _logger.LogError(exception, "Unable to get AutoHook auto-start fishing state"); return false; } } - [MethodImpl(MethodImplOptions.NoInlining)] public void SetAutoStartFishing(bool enabled) { try { _setAutoStartFishing.InvokeAction(enabled); } - catch (IpcError ipcError) + catch (IpcError exception) { - _200F_202B_202A_202A_206E_200E_206C_202E_206F_202B_206B_206F_206A_202D_202C_200F_202C_202C_200F_206D_206E_202A_206A_206F_202B_202A_206A_206C_206F_206D_202D_202E_202D_206C_200E_202E_202B_206E_202B_202E_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1390121576), Array.Empty<object>()); + _logger.LogError(exception, "Unable to set AutoHook auto-start fishing state"); } } - [MethodImpl(MethodImplOptions.NoInlining)] public bool SwapBaitById(uint baitId) { try { return _swapBaitById.InvokeFunc(baitId); } - catch (IpcError ipcError) + catch (IpcError exception) { - _200F_202B_202A_202A_206E_200E_206C_202E_206F_202B_206B_206F_206A_202D_202C_200F_202C_202C_200F_206D_206E_202A_206A_206F_202B_202A_206A_206C_206F_206D_202D_202E_202D_206C_200E_202E_202B_206E_202B_202E_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2110450433), new object[1] { baitId }); + _logger.LogError(exception, "Unable to swap bait to {BaitId}", baitId); return false; } } - [MethodImpl(MethodImplOptions.NoInlining)] public void CreateAndSelectAnonymousPreset(string compressedPreset) { try { _createAndSelectAnonymousPreset.InvokeAction(compressedPreset); } - catch (IpcError ipcError) + catch (IpcError exception) { - _200F_202B_202A_202A_206E_200E_206C_202E_206F_202B_206B_206F_206A_202D_202C_200F_202C_202C_200F_206D_206E_202A_206A_206F_202B_202A_206A_206C_206F_206D_202D_202E_202D_206C_200E_202E_202B_206E_202B_202E_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1997912851), Array.Empty<object>()); + _logger.LogError(exception, "Unable to create and select anonymous AutoHook preset"); } } - [MethodImpl(MethodImplOptions.NoInlining)] public void DeleteAllAnonymousPresets() { try { _deleteAllAnonymousPresets.InvokeAction(); } - catch (IpcError ipcError) + catch (IpcError exception) { - _200F_202B_202A_202A_206E_200E_206C_202E_206F_202B_206B_206F_206A_202D_202C_200F_202C_202C_200F_206D_206E_202A_206A_206F_202B_202A_206A_206C_206F_206D_202D_202E_202D_206C_200E_202E_202B_206E_202B_202E_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1325301918), Array.Empty<object>()); + _logger.LogError(exception, "Unable to delete anonymous AutoHook presets"); } } - - static void _200F_202B_202A_202A_206E_200E_206C_202E_206F_202B_206B_206F_206A_202D_202C_200F_202C_202C_200F_206D_206E_202A_206A_206F_202B_202A_206A_206C_206F_206D_202D_202E_202D_206C_200E_202E_202B_206E_202B_202E_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } } diff --git a/Questionable/Questionable.External/AutomatonIpc.cs b/Questionable/Questionable.External/AutomatonIpc.cs index a689946..49ed01e 100644 --- a/Questionable/Questionable.External/AutomatonIpc.cs +++ b/Questionable/Questionable.External/AutomatonIpc.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Collections.Immutable; -using System.Runtime.CompilerServices; using Dalamud.Plugin; using Dalamud.Plugin.Services; using LLib.External; @@ -15,18 +14,8 @@ internal sealed class AutomatonIpc : IDisposable { internal static readonly ImmutableHashSet<string> ConflictingTweaks = new HashSet<string> { - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(455881545), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1927304316), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(157982794), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(482045276), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-42215246), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(644875872), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1345044293), - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(67389204), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1780504317), - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-227677374), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(296780267), - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1211232634) + "DateWithDestiny", "AutoFollow", "ClickToMove", "AutoPillion", "AutoInvite", "AutoBusy", "FateToolKit", "AutoQueue", "EnhancedDutyStartEnd", "EnhancedLoginLogout", + "GettingTooAttached", "RetrieveMateria" }.ToImmutableHashSet(); internal const string AutoSnipeTweak = "AutoSnipeQuests"; @@ -53,7 +42,6 @@ internal sealed class AutomatonIpc : IDisposable private bool _wasFateRunning; - [MethodImpl(MethodImplOptions.NoInlining)] public AutomatonIpc(Configuration configuration, IDalamudPluginInterface pluginInterface, QuestController questController, FateController fateController, SeasonalDutyController seasonalDutyController, CustomDeliveryController customDeliveryController, TerritoryData territoryData, IClientState clientState, IFramework framework, ILogger<AutomatonIpc> logger) { _configuration = configuration; @@ -65,206 +53,69 @@ internal sealed class AutomatonIpc : IDisposable _clientState = clientState; _framework = framework; _logger = logger; - _pauser = _202A_202E_206A_206E_206C_206E_206D_206C_200F_202A_202E_202A_200C_206D_206D_200F_206C_202E_200B_206F_202E_206C_202B_202D_202C_202A_206A_202E_200B_200C_202C_206B_200B_202B_206C_200C_202A_206F_202C_202C_202E(pluginInterface, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1188512438), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1582374739), (ILogger)logger); + _pauser = new PluginFeaturePauser(pluginInterface, "Automaton.IsTweakEnabled", "Automaton.SetTweakState", logger); _questController.AutomationTypeChanged += OnAutomationTypeChanged; - _202E_200F_200F_200B_206A_200C_202A_206F_202B_200E_206B_200B_200D_200C_206D_202C_200E_202D_200E_200D_202E_202E_206E_202C_206A_200D_206F_206C_200D_200B_206B_200E_202B_200B_202C_202A_206C_206C_202B_206B_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkUpdate); + _framework.Update += OnFrameworkUpdate; } private void OnAutomationTypeChanged(object sender, QuestController.EAutomationType automationType) { - int num = ((automationType == QuestController.EAutomationType.Manual) ? 1465244874 : 1465244872); - while (true) + if (automationType != QuestController.EAutomationType.Manual && !_territoryData.IsDutyInstance(_clientState.TerritoryType)) { - int num2 = num; - int num3 = 1465244874; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + InvokeGuarded(DisableConflictingTweaks); + } + else if (!_fateController.IsRunning && !_seasonalDutyController.IsRunning && !_customDeliveryController.IsRunning) + { + InvokeGuarded(delegate { - case 1: - num = (_seasonalDutyController.IsRunning ? 1465244876 : 1465244873); - break; - case 2: - num = (_territoryData.IsDutyInstance(_200B_202B_202B_202C_200E_202D_200E_202A_206E_200E_206C_202A_206E_200F_200D_202B_202B_200D_202A_200D_206A_202C_200C_206D_202E_202C_202B_206C_202C_206B_202B_206A_202E_202B_206E_200E_206E_200F_206C_202C_202E(_clientState)) ? 1465244874 : 1465244878); - break; - case 5: - num = 1465244872; - break; - case 6: - return; - case 7: - InvokeGuarded(delegate - { - _202E_200B_200B_206D_202E_202B_202E_200E_206C_202A_206E_202B_202C_202A_200E_202E_200D_202D_206F_202D_200F_202D_202E_206E_200B_200E_202B_200C_202D_202E_200B_200E_200C_202B_206F_200F_206F_206D_206C_206F_202E(_pauser); - }); - num = 1465244876; - break; - case 3: - num = (_customDeliveryController.IsRunning ? 1465244876 : 1465244877); - break; - case 0: - num = (_fateController.IsRunning ? 1465244876 : 1465244875); - break; - case 4: - InvokeGuarded(DisableConflictingTweaks); - return; - } + _pauser.Restore(); + }); } } private void OnFrameworkUpdate(IFramework framework) { - int num = (_fateController.IsRunning ? 767145126 : 767145129); - bool flag = default(bool); - while (true) + bool flag = _fateController.IsRunning || _seasonalDutyController.IsRunning || _customDeliveryController.IsRunning; + if (flag == _wasFateRunning) { - int num2 = num; - int num3 = 767145123; - int num4 = num2; - int num5; - switch ((num4 | num3) - (num4 & num3)) + return; + } + _wasFateRunning = flag; + if (flag && !_territoryData.IsDutyInstance(_clientState.TerritoryType)) + { + InvokeGuarded(DisableConflictingTweaks); + } + else if (_questController.AutomationType == QuestController.EAutomationType.Manual) + { + InvokeGuarded(delegate { - case 0: - num = 767145129; - break; - case 1: - InvokeGuarded(delegate - { - _202E_200B_200B_206D_202E_202B_202E_200E_206C_202A_206E_202B_202C_202A_200E_202E_200D_202D_206F_202D_200F_202D_202E_206E_200B_200E_202B_200C_202D_202E_200B_200E_200C_202B_206F_200F_206F_206D_206C_206F_202E(_pauser); - }); - num = 767145130; - break; - case 7: - num = ((_questController.AutomationType != QuestController.EAutomationType.Manual) ? 767145130 : 767145122); - break; - case 6: - InvokeGuarded(DisableConflictingTweaks); - return; - case 8: - num5 = (_customDeliveryController.IsRunning ? 1 : 0); - goto IL_013c; - case 3: - _wasFateRunning = flag; - num = ((!flag) ? 767145124 : 767145127); - break; - case 4: - num = (_territoryData.IsDutyInstance(_200B_202B_202B_202C_200E_202D_200E_202A_206E_200E_206C_202A_206E_200F_200D_202B_202B_200D_202A_200D_206A_202C_200C_206D_202E_202C_202B_206C_202C_206B_202B_206A_202E_202B_206E_200E_206E_200F_206C_202C_202E(_clientState)) ? 767145124 : 767145125); - break; - case 5: - num5 = 1; - goto IL_013c; - case 9: - return; - case 10: - num = (_seasonalDutyController.IsRunning ? 767145126 : 767145131); - break; - case 2: - return; - IL_013c: - flag = (byte)num5 != 0; - num = ((flag != _wasFateRunning) ? 767145120 : 767145121); - break; - } + _pauser.Restore(); + }); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void InvokeGuarded(Action action) { try { action(); } - catch (Exception ex) + catch (Exception exception) { - _206A_202D_200F_206E_206D_206C_202B_202B_202E_206D_206E_200D_202C_202E_200E_206C_206D_200D_206E_200F_206D_206C_200D_206B_202A_202E_206C_202D_200C_206D_202D_206B_200B_202E_202D_202A_202B_206C_202C_200E_202E((ILogger)_logger, ex, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1444366568), Array.Empty<object>()); + _logger.LogError(exception, "Automaton IPC call failed"); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DisableConflictingTweaks() { - int num = (_configuration.General.AutoSnipe ? (-1792713468) : (-1792713465)); - ImmutableHashSet<string> immutableHashSet; - while (true) - { - int num2 = num; - int num3 = -1792713467; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 1: - immutableHashSet = ConflictingTweaks.Add(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(899890205)); - break; - case 2: - immutableHashSet = ConflictingTweaks; - break; - case 0: - goto IL_009e; - } - break; - IL_009e: - num = -1792713465; - } - ImmutableHashSet<string> immutableHashSet2 = immutableHashSet; - _206C_202B_200C_206A_200C_206B_206F_202C_200F_202B_206C_206F_206D_200C_200F_202D_202E_200B_206D_202E_206E_200E_200E_202E_202E_206D_200D_200B_202B_200E_200C_206E_206A_206E_202B_200C_206E_206A_200F_202E_202E(_pauser, (IEnumerable<string>)immutableHashSet2.Except(_configuration.Advanced.AutomatonTweakExclusions)); + ImmutableHashSet<string> immutableHashSet = (_configuration.General.AutoSnipe ? ConflictingTweaks.Add("AutoSnipeQuests") : ConflictingTweaks); + _pauser.Disable(immutableHashSet.Except(_configuration.Advanced.AutomatonTweakExclusions)); } public void Dispose() { - _206D_200C_202A_206D_202A_202E_202A_200E_206F_206B_202A_200B_200E_206A_206C_206F_206D_202A_200E_206A_206A_206B_202A_202B_206D_206E_202C_200F_206C_202D_202E_206F_202A_202C_202A_206F_200E_202C_200F_202C_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkUpdate); + _framework.Update -= OnFrameworkUpdate; _questController.AutomationTypeChanged -= OnAutomationTypeChanged; - _202D_202A_200C_206A_200C_206F_200C_200C_202C_202D_200B_206F_206A_202A_200C_200F_206C_202A_202D_206E_206E_206C_206D_200E_202E_206A_206F_200D_202D_200C_202B_202E_200D_200D_206B_202C_206B_202A_202B_206C_202E(_pauser); - } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static PluginFeaturePauser _202A_202E_206A_206E_206C_206E_206D_206C_200F_202A_202E_202A_200C_206D_206D_200F_206C_202E_200B_206F_202E_206C_202B_202D_202C_202A_206A_202E_200B_200C_202C_206B_200B_202B_206C_200C_202A_206F_202C_202C_202E(IDalamudPluginInterface P_0, string P_1, string P_2, ILogger P_3) - { - return new PluginFeaturePauser(P_0, P_1, P_2, P_3); - } - - static void _202E_200F_200F_200B_206A_200C_202A_206F_202B_200E_206B_200B_200D_200C_206D_202C_200E_202D_200E_200D_202E_202E_206E_202C_206A_200D_206F_206C_200D_200B_206B_200E_202B_200B_202C_202A_206C_206C_202B_206B_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update += P_1; - } - - static uint _200B_202B_202B_202C_200E_202D_200E_202A_206E_200E_206C_202A_206E_200F_200D_202B_202B_200D_202A_200D_206A_202C_200C_206D_202E_202C_202B_206C_202C_206B_202B_206A_202E_202B_206E_200E_206E_200F_206C_202C_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static void _206A_202D_200F_206E_206D_206C_202B_202B_202E_206D_206E_200D_202C_202E_200E_206C_206D_200D_206E_200F_206D_206C_200D_206B_202A_202E_206C_202D_200C_206D_202D_206B_200B_202E_202D_202A_202B_206C_202C_200E_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - - static void _206C_202B_200C_206A_200C_206B_206F_202C_200F_202B_206C_206F_206D_200C_200F_202D_202E_200B_206D_202E_206E_200E_200E_202E_202E_206D_200D_200B_202B_200E_200C_206E_206A_206E_202B_200C_206E_206A_200F_202E_202E(PluginFeaturePauser P_0, IEnumerable<string> P_1) - { - P_0.Disable(P_1); - } - - static void _206D_200C_202A_206D_202A_202E_202A_200E_206F_206B_202A_200B_200E_206A_206C_206F_206D_202A_200E_206A_206A_206B_202A_202B_206D_206E_202C_200F_206C_202D_202E_206F_202A_202C_202A_206F_200E_202C_200F_202C_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update -= P_1; - } - - static void _202D_202A_200C_206A_200C_206F_200C_200C_202C_202D_200B_206F_206A_202A_200C_200F_206C_202A_202D_206E_206E_206C_206D_200E_202E_206A_206F_200D_202D_200C_202B_202E_200D_200D_206B_202C_206B_202A_202B_206C_202E(PluginFeaturePauser P_0) - { - P_0.Dispose(); - } - - static void _202E_200B_200B_206D_202E_202B_202E_200E_206C_202A_206E_202B_202C_202A_200E_202E_200D_202D_206F_202D_200F_202D_202E_206E_200B_200E_202B_200C_202D_202E_200B_200E_200C_202B_206F_200F_206F_206D_206C_206F_202E(PluginFeaturePauser P_0) - { - P_0.Restore(); + _pauser.Dispose(); } } diff --git a/Questionable/Questionable.External/BossModIpc.cs b/Questionable/Questionable.External/BossModIpc.cs index 2be170f..42a5ae9 100644 --- a/Questionable/Questionable.External/BossModIpc.cs +++ b/Questionable/Questionable.External/BossModIpc.cs @@ -2,19 +2,12 @@ using System; using System.Collections.Frozen; using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using System.Text; -using System.Threading.Tasks; -using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin; using Dalamud.Plugin.Ipc; using Dalamud.Plugin.Ipc.Exceptions; using Dalamud.Plugin.Services; using LLib.GameData; -using Lumina.Excel; -using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.Data; using Questionable.Model.Questing; @@ -23,147 +16,7 @@ namespace Questionable.External; internal sealed class BossModIpc : IDisposable { - private sealed record Strategy(string Module, string Track, string Option) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206C_206E_202E_202E_206F_200B_202C_200C_206E_200F_206C_202D_202B_206F_202E_202E_202B_206F_202E_202B_206C_202B_202C_200F_200C_200D_202D_202B_206D_206D_200B_200D_202B_200E_202E_206A_200E_200C_202C_202E_202E(typeof(Strategy).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200B_202E_202B_206F_206E_200B_200E_202E_202A_202A_206E_202E_206C_202D_200D_202A_202D_206A_206C_202C_200E_206A_202A_200B_202D_200E_202B_202D_202B_206D_202D_206E_206A_206C_200B_206E_202A_200C_206D_200D_202E(); - _200D_200D_206A_202E_206F_206B_200E_206A_200E_200C_200B_206C_206F_206B_206B_200E_202D_200E_202D_202E_200B_206F_202C_206D_206E_202C_206D_202D_206D_206D_202E_206B_206E_206B_202D_202B_200B_206F_200C_200E_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1113697063)); - _200D_200D_206A_202E_206F_206B_200E_206A_200E_200C_200B_206C_206F_206B_206B_200E_202D_200E_202D_202E_200B_206F_202C_206D_206E_202C_206D_202D_206D_206D_202E_206B_206E_206B_202D_202B_200B_206F_200C_200E_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(556540328)); - int num = ((!PrintMembers(stringBuilder)) ? (-1006362783) : (-1006362782)); - while (true) - { - int num2 = num; - int num3 = -1006362784; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1006362782; - break; - case 2: - _206F_202E_200E_202C_200D_206F_200E_202A_202D_206B_206D_200D_200D_202B_206E_202C_200D_206C_200B_202C_202C_202A_200D_202A_206F_200D_206D_200E_200D_200F_206E_206F_202E_206C_202B_206F_200B_206C_206C_206C_202E(stringBuilder, ' '); - num = -1006362783; - break; - case 1: - _206F_202E_200E_202C_200D_206F_200E_202A_202D_206B_206D_200D_200D_202B_206E_202C_200D_206C_200B_202C_202C_202A_200D_202A_206F_200D_206D_200E_200D_200F_206E_206F_202E_206C_202B_206F_200B_206C_206C_206C_202E(stringBuilder, '}'); - return _200B_202B_206B_206A_200C_206B_206C_200C_202D_206F_202E_206C_200E_206C_206C_206C_200D_206F_200E_202B_206F_200C_200B_206C_206E_200D_200B_206E_206F_200F_200B_202D_206D_202B_200B_206C_202E_206C_202B_206D_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206B_202E_206B_200D_206A_200D_206E_206E_200E_202D_200C_200B_206D_206B_200F_200B_200B_200B_206D_206D_200D_206C_200C_206B_202B_206B_206F_202B_200D_202B_202A_202A_206B_202A_202D_202A_206A_202A_200C_202D_202E(); - _200D_200D_206A_202E_206F_206B_200E_206A_200E_200C_200B_206C_206F_206B_206B_200E_202D_200E_202D_202E_200B_206F_202C_206D_206E_202C_206D_202D_206D_206D_202E_206B_206E_206B_202D_202B_200B_206F_200C_200E_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-711254933)); - _202D_200F_200F_206C_206C_202B_206B_202B_200B_206E_206B_200E_206E_206D_200F_200E_202C_200D_206D_206E_206C_206F_200E_200D_206D_200F_206F_202B_206F_202E_202B_206B_206B_206E_200D_202B_200E_206A_202A_206B_202E(builder, (object)Module); - _200D_200D_206A_202E_206F_206B_200E_206A_200E_200C_200B_206C_206F_206B_206B_200E_202D_200E_202D_202E_200B_206F_202C_206D_206E_202C_206D_202D_206D_206D_202E_206B_206E_206B_202D_202B_200B_206F_200C_200E_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1653958727)); - _202D_200F_200F_206C_206C_202B_206B_202B_200B_206E_206B_200E_206E_206D_200F_200E_202C_200D_206D_206E_206C_206F_200E_200D_206D_200F_206F_202B_206F_202E_202B_206B_206B_206E_200D_202B_200E_206A_202A_206B_202E(builder, (object)Track); - _200D_200D_206A_202E_206F_206B_200E_206A_200E_200C_200B_206C_206F_206B_206B_200E_202D_200E_202D_202E_200B_206F_202C_206D_206E_202C_206D_202D_206D_206D_202E_206B_206E_206B_202D_202B_200B_206F_200C_200E_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-275794909)); - _202D_200F_200F_206C_206C_202B_206B_202B_200B_206E_206B_200E_206E_206D_200F_200E_202C_200D_206D_206E_206C_206F_200E_200D_206D_200F_206F_202B_206F_202E_202B_206B_206B_206E_200D_202B_200E_206A_202A_206B_202E(builder, (object)Option); - return true; - } - - [CompilerGenerated] - public bool Equals(Strategy? other) - { - int num = (((object)this == other) ? (-511900174) : (-511900175)); - while (true) - { - int num2 = num; - int num3 = -511900170; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - num = ((!EqualityComparer<string>.Default.Equals(Track, other.Track)) ? (-511900172) : (-511900173)); - break; - case 6: - num = ((!EqualityComparer<string>.Default.Equals(Module, other.Module)) ? (-511900172) : (-511900169)); - break; - case 2: - return false; - case 5: - return EqualityComparer<string>.Default.Equals(Option, other.Option); - case 4: - return true; - case 7: - num = (((object)other == null) ? (-511900172) : (-511900170)); - break; - case 3: - num = -511900175; - break; - case 0: - num = ((!_200F_206D_202A_200F_200B_200C_206C_202B_200E_200F_202E_206B_202E_200F_202C_202E_206A_206B_206C_200C_206C_202D_206F_200E_200E_200B_206A_206B_202A_206D_200C_206D_202C_200F_206B_202D_202A_206E_200C_206B_202E(EqualityContract, other.EqualityContract)) ? (-511900172) : (-511900176)); - break; - } - } - } - - bool IEquatable<Strategy>.Equals(Strategy? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206C_206E_202E_202E_206F_200B_202C_200C_206E_200F_206C_202D_202B_206F_202E_202E_202B_206F_202E_202B_206C_202B_202C_200F_200C_200D_202D_202B_206D_206D_200B_200D_202B_200E_202E_206A_200E_200C_202C_202E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200B_202E_202B_206F_206E_200B_200E_202E_202A_202A_206E_202E_206C_202D_200D_202A_202D_206A_206C_202C_200E_206A_202A_200B_202D_200E_202B_202D_202B_206D_202D_206E_206A_206C_200B_206E_202A_200C_206D_200D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200D_200D_206A_202E_206F_206B_200E_206A_200E_200C_200B_206C_206F_206B_206B_200E_202D_200E_202D_202E_200B_206F_202C_206D_206E_202C_206D_202D_206D_206D_202E_206B_206E_206B_202D_202B_200B_206F_200C_200E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206F_202E_200E_202C_200D_206F_200E_202A_202D_206B_206D_200D_200D_202B_206E_202C_200D_206C_200B_202C_202C_202A_200D_202A_206F_200D_206D_200E_200D_200F_206E_206F_202E_206C_202B_206F_200B_206C_206C_206C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200B_202B_206B_206A_200C_206B_206C_200C_202D_206F_202E_206C_200E_206C_206C_206C_200D_206F_200E_202B_206F_200C_200B_206C_206E_200D_200B_206E_206F_200F_200B_202D_206D_202B_200B_206C_202E_206C_202B_206D_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206B_202E_206B_200D_206A_200D_206E_206E_200E_202D_200C_200B_206D_206B_200F_200B_200B_200B_206D_206D_200D_206C_200C_206B_202B_206B_206F_202B_200D_202B_202A_202A_206B_202A_202D_202A_206A_202A_200C_202D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202D_200F_200F_206C_206C_202B_206B_202B_200B_206E_206B_200E_206E_206D_200F_200E_202C_200D_206D_206E_206C_206F_200E_200D_206D_200F_206F_202B_206F_202E_202B_206B_206B_206E_200D_202B_200E_206A_202A_206B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200F_206D_202A_200F_200B_200C_206C_202B_200E_200F_202E_206B_202E_200F_202C_202E_206A_206B_206C_200C_206C_202D_206F_200E_200E_200B_206A_206B_202A_206D_200C_206D_202C_200F_206B_202D_202A_206E_200C_206B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } + private sealed record Strategy(string Module, string Track, string Option); public enum EPreset { @@ -177,68 +30,6 @@ internal sealed class BossModIpc : IDisposable BMR } - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<IExposedPlugin, bool> _003C_003E9__25_0; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal bool _003CDetectVariantFromPlugins_003Eb__25_0(IExposedPlugin p) - { - string text = _202E_202B_202D_202D_202B_200E_200E_200D_202E_206D_206C_200D_206C_206E_202B_200E_206E_200F_202B_200B_200D_206F_206B_202A_202C_206C_200F_206C_206E_202C_202B_206A_202D_206A_202E_206D_202A_200D_200F_206E_202E(p); - int num = (_206C_206F_202D_202D_206B_200F_202A_202B_202A_200B_202E_200C_200C_200B_206E_202A_202C_200D_202B_206D_206D_202D_200F_206A_200C_200B_200F_202A_202D_202C_200E_206E_202A_206B_202D_206B_206E_206C_202D_200E_202E(text, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(865869314)) ? 173790898 : 173790900); - bool flag = default(bool); - while (true) - { - int num2 = num; - int num3 = 173790902; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - flag = false; - num = 173790903; - break; - case 1: - num = ((!flag) ? 173790899 : 173790902); - break; - case 2: - num = ((!_206C_206F_202D_202D_206B_200F_202A_202B_202A_200B_202E_200C_200C_200B_206E_202A_202C_200D_202B_206D_206D_202D_200F_206A_200C_200B_200F_202A_202D_202C_200E_206E_202A_206B_202D_206B_206E_206C_202D_200E_202E(text, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1914663527))) ? 173790896 : 173790898); - break; - case 0: - return _206B_202B_202D_206E_202E_202A_206A_202B_206B_206E_206C_202E_206A_202E_202E_202A_202D_200D_202D_206D_206A_200F_206A_206A_206B_206F_206F_206C_200E_206A_200E_202E_206E_200C_200C_206B_200B_200D_200C_200D_202E(p); - case 4: - flag = true; - num = 173790903; - break; - case 3: - num = 173790900; - break; - case 5: - return false; - } - } - } - - static string _202E_202B_202D_202D_202B_200E_200E_200D_202E_206D_206C_200D_206C_206E_202B_200E_206E_200F_202B_200B_200D_206F_206B_202A_202C_206C_200F_206C_206E_202C_202B_206A_202D_206A_202E_206D_202A_200D_200F_206E_202E(IExposedPlugin P_0) - { - return P_0.InternalName; - } - - static bool _206C_206F_202D_202D_206B_200F_202A_202B_202A_200B_202E_200C_200C_200B_206E_202A_202C_200D_202B_206D_206D_202D_200F_206A_200C_200B_200F_202A_202D_202C_200E_206E_202A_206B_202D_206B_206E_206C_202D_200E_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static bool _206B_202B_202D_206E_202E_202A_206A_202B_206B_206E_206C_202E_206A_202E_202E_202A_202D_200D_202D_206D_206A_200F_206A_206A_206B_206F_206F_206C_200E_206A_200E_202E_206E_200C_200C_206B_200B_200D_200C_200D_202E(IExposedPlugin P_0) - { - return P_0.IsLoaded; - } - } - private const string ActivePresetName = "Questionable"; private const string PassivePresetName = "Questionable (Passive)"; @@ -273,125 +64,136 @@ internal sealed class BossModIpc : IDisposable private readonly ICallGateSubscriber<List<string>, bool, List<string>> _setConfig; - private readonly EVariant? _variant; - - private bool _activeShellCreated; - - private bool _passiveShellCreated; - private bool _soloDutyZoneConfigured; - private static readonly Strategy[] AiStrategies = new Strategy[14] + private static readonly Strategy[] VbmAiStrategies = new Strategy[14] { - new Strategy(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1244564446), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1856886268), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(711080410)), - new Strategy(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1498967925), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-82449896), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(264166607)), - new Strategy(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-835043382), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1036997362), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1736014094)), - new Strategy(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1591319871), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1390442931), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(711080410)), - new Strategy(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1244564446), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-818029721), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(711080410)), - new Strategy(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1658570734), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1480455440), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(421771003)), - new Strategy(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2122341489), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1302340146), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(264166607)), - new Strategy(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(124779131), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1612425008), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1439152729)), - new Strategy(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1067443757), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(296448122), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(421771003)), - new Strategy(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1289434147), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-224375461), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(264166607)), - new Strategy(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1289434147), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(893010687), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(421771003)), - new Strategy(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2113838185), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(490418655), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(421771003)), - new Strategy(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-521202591), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(296448122), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(711080410)), - new Strategy(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(630279450), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(253848622), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(543856095)) + new Strategy("BossMod.Autorotation.xan.TankAI", "Stance", "Enabled"), + new Strategy("BossMod.Autorotation.xan.TankAI", "Personal mits", "Enabled"), + new Strategy("BossMod.Autorotation.xan.TankAI", "Invuln", "Enabled"), + new Strategy("BossMod.Autorotation.xan.TankAI", "Interject2", "Enabled"), + new Strategy("BossMod.Autorotation.xan.TankAI", "Arms' Length", "Enabled"), + new Strategy("BossMod.Autorotation.xan.HealerAI", "Heal", "Enabled"), + new Strategy("BossMod.Autorotation.xan.HealerAI", "Esuna2", "Enabled"), + new Strategy("BossMod.Autorotation.xan.HealerAI", "Raise", "Swiftcast"), + new Strategy("BossMod.Autorotation.xan.MeleeAI", "Second Wind", "Enabled"), + new Strategy("BossMod.Autorotation.xan.MeleeAI", "Bloodbath", "Enabled"), + new Strategy("BossMod.Autorotation.xan.MeleeAI", "Stun", "Enabled"), + new Strategy("BossMod.Autorotation.xan.RangedAI", "Head Graze", "Enabled"), + new Strategy("BossMod.Autorotation.xan.RangedAI", "Second Wind", "Enabled"), + new Strategy("BossMod.Autorotation.MiscAI.NormalMovement", "Destination", "Pathfind") + }; + + private static readonly Strategy[] BmrAiStrategies = new Strategy[14] + { + new Strategy("BossMod.Autorotation.MiscAI.TankAI", "Stance", "Auto"), + new Strategy("BossMod.Autorotation.MiscAI.TankAI", "Mitigations", "Auto"), + new Strategy("BossMod.Autorotation.MiscAI.TankAI", "Invuln", "Auto"), + new Strategy("BossMod.Autorotation.MiscAI.TankAI", "Interject", "Auto"), + new Strategy("BossMod.Autorotation.MiscAI.TankAI", "ArmsLength", "Auto"), + new Strategy("BossMod.Autorotation.MiscAI.HealerAI", "Heal", "Auto"), + new Strategy("BossMod.Autorotation.MiscAI.HealerAI", "Esuna", "Auto"), + new Strategy("BossMod.Autorotation.MiscAI.HealerAI", "Raise", "Auto"), + new Strategy("BossMod.Autorotation.MiscAI.MeleeAI", "SecondWind", "Auto"), + new Strategy("BossMod.Autorotation.MiscAI.MeleeAI", "Bloodbath", "Auto"), + new Strategy("BossMod.Autorotation.MiscAI.MeleeAI", "Stun", "Auto"), + new Strategy("BossMod.Autorotation.MiscAI.RangedAI", "HeadGraze", "Auto"), + new Strategy("BossMod.Autorotation.MiscAI.RangedAI", "SecondWind", "Auto"), + new Strategy("BossMod.Autorotation.MiscAI.NormalMovement", "Destination", "Pathfind") }; private static readonly Strategy[] ActivePositioningStrategies = new Strategy[2] { - new Strategy(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-434142577), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(988353471), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-957874465)), - new Strategy(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1396333290), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-359200721), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1051715723)) + new Strategy("BossMod.Autorotation.MiscAI.StayCloseToTarget", "Range", "3"), + new Strategy("BossMod.Autorotation.MiscAI.GoToPositional", "Positional", "Any") }; private static readonly FrozenDictionary<EClassJob, string> JobModules = new Dictionary<EClassJob, string> { { EClassJob.Paladin, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1609942880) + "BossMod.Autorotation.xan.PLD" }, { EClassJob.Monk, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1942292193) + "BossMod.Autorotation.xan.MNK" }, { EClassJob.Dragoon, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(908716766) + "BossMod.Autorotation.xan.DRG" }, { EClassJob.Bard, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1968328073) + "BossMod.Autorotation.xan.BRD" }, { EClassJob.WhiteMage, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1884232256) + "BossMod.Autorotation.xan.WHM" }, { EClassJob.BlackMage, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2079870458) + "BossMod.Autorotation.xan.BLM" }, { EClassJob.Summoner, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(195091335) + "BossMod.Autorotation.xan.SMN" }, { EClassJob.Scholar, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1810140920) + "BossMod.Autorotation.xan.SCH" }, { EClassJob.Ninja, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1660414167) + "BossMod.Autorotation.xan.NIN" }, { EClassJob.Machinist, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-338030362) + "BossMod.Autorotation.xan.MCH" }, { EClassJob.DarkKnight, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(235491815) + "BossMod.Autorotation.xan.DRK" }, { EClassJob.Astrologian, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2141215490) + "BossMod.Autorotation.xan.AST" }, { EClassJob.Samurai, - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1572470863) + "BossMod.Autorotation.xan.SAM" }, { EClassJob.RedMage, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-497169601) + "BossMod.Autorotation.xan.RDM" }, { EClassJob.Gunbreaker, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1209630777) + "BossMod.Autorotation.xan.GNB" }, { EClassJob.Dancer, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2020237514) + "BossMod.Autorotation.xan.DNC" }, { EClassJob.Reaper, - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1665453088) + "BossMod.Autorotation.xan.RPR" }, { EClassJob.Sage, - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-653850318) + "BossMod.Autorotation.xan.SGE" }, { EClassJob.Viper, - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1478612007) + "BossMod.Autorotation.xan.VPR" }, { EClassJob.Pictomancer, - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2012623894) + "BossMod.Autorotation.xan.PCT" } }.ToFrozenDictionary(); - public EVariant? Variant => _variant; + public EVariant? Variant => DetectVariantFromPlugins(); - [MethodImpl(MethodImplOptions.NoInlining)] public BossModIpc(IObjectTable objectTable, IDalamudPluginInterface pluginInterface, Configuration configuration, ICommandManager commandManager, TerritoryData territoryData, IFramework framework, ILogger<BossModIpc> logger) { _objectTable = objectTable; @@ -401,66 +203,49 @@ internal sealed class BossModIpc : IDisposable _territoryData = territoryData; _framework = framework; _logger = logger; - _getPreset = pluginInterface.GetIpcSubscriber<string, string>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1182139829)); - _createPreset = pluginInterface.GetIpcSubscriber<string, bool, bool>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-453082255)); - _setPreset = pluginInterface.GetIpcSubscriber<string, bool>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1297770467)); - _clearPreset = pluginInterface.GetIpcSubscriber<bool>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2001823876)); - _addTransientStrategy = pluginInterface.GetIpcSubscriber<string, string, string, string, bool>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1608401772)); - _clearTransientStrategies = pluginInterface.GetIpcSubscriber<string, bool>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(160221154)); - _deletePreset = pluginInterface.GetIpcSubscriber<string, bool>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1768525951)); - _setConfig = pluginInterface.GetIpcSubscriber<List<string>, bool, List<string>>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2005795509)); - _variant = DetectVariantFromPlugins(); - _200D_200D_202D_200E_202A_202E_200F_202C_206D_206B_202E_202C_200C_206E_206F_202D_206D_200B_206A_202B_206D_206E_206C_202D_202E_206C_202A_206D_200C_200B_206F_206A_206E_200B_200F_202C_202E_202B_202A_206A_202E(_framework, (System.Action)([MethodImpl(MethodImplOptions.NoInlining)] () => + _getPreset = pluginInterface.GetIpcSubscriber<string, string>("BossMod.Presets.Get"); + _createPreset = pluginInterface.GetIpcSubscriber<string, bool, bool>("BossMod.Presets.Create"); + _setPreset = pluginInterface.GetIpcSubscriber<string, bool>("BossMod.Presets.SetActive"); + _clearPreset = pluginInterface.GetIpcSubscriber<bool>("BossMod.Presets.ClearActive"); + _addTransientStrategy = pluginInterface.GetIpcSubscriber<string, string, string, string, bool>("BossMod.Presets.AddTransientStrategy"); + _clearTransientStrategies = pluginInterface.GetIpcSubscriber<string, bool>("BossMod.Presets.ClearTransientPresetStrategies"); + _deletePreset = pluginInterface.GetIpcSubscriber<string, bool>("BossMod.Presets.Delete"); + _setConfig = pluginInterface.GetIpcSubscriber<List<string>, bool, List<string>>("BossMod.Configuration"); + _framework.RunOnFrameworkThread(delegate { - int num = (IsSupported() ? 695015772 : 695015775); - while (true) + if (!IsSupported()) { - int num2 = num; - int num3 = 695015773; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0046; - case 2: - return; - case 1: - try - { - _deletePreset.InvokeFunc(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1458411767)); - } - catch (IpcError) - { - } - try - { - _deletePreset.InvokeFunc(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712)); - } - catch (IpcError) - { - } - try - { - _deletePreset.InvokeFunc(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(690034217)); - return; - } - catch (IpcError) - { - return; - } - } - continue; - IL_0046: - num = 695015775; + return; } - })); + try + { + _deletePreset.InvokeFunc("Questionable - Quest Battles"); + } + catch (IpcError) + { + } + try + { + _deletePreset.InvokeFunc("Questionable"); + } + catch (IpcError) + { + } + try + { + _deletePreset.InvokeFunc("Questionable (Passive)"); + } + catch (IpcError) + { + } + }); } public bool IsSupported() { try { - return _202E_202C_202A_200C_200F_206A_200E_206B_200C_200E_206D_200C_202B_206B_202D_202C_202A_202D_202B_202C_206E_202B_206E_206F_206E_202E_206E_206D_202D_200D_206C_200E_206A_200D_202A_206E_200C_206E_202E_202A_202E((ICallGateSubscriber)_getPreset); + return _getPreset.HasFunction; } catch (IpcError) { @@ -468,321 +253,173 @@ internal sealed class BossModIpc : IDisposable } } - [MethodImpl(MethodImplOptions.NoInlining)] private EVariant? DetectVariantFromPlugins() { - IExposedPlugin exposedPlugin = _202E_202D_200E_202C_206B_206B_202B_206F_206D_200F_200C_206F_202D_202E_206B_202D_200F_200F_200C_206C_200C_206A_200E_202B_202C_200F_206F_202C_200D_200D_202C_206E_200D_206C_200B_200B_202C_206E_202C_200F_202E(_pluginInterface).FirstOrDefault([MethodImpl(MethodImplOptions.NoInlining)] (IExposedPlugin p) => + IExposedPlugin exposedPlugin = _pluginInterface.InstalledPlugins.FirstOrDefault(delegate(IExposedPlugin p) { - string text = _003C_003Ec._202E_202B_202D_202D_202B_200E_200E_200D_202E_206D_206C_200D_206C_206E_202B_200E_206E_200F_202B_200B_200D_206F_206B_202A_202C_206C_200F_206C_206E_202C_202B_206A_202D_206A_202E_206D_202A_200D_200F_206E_202E(p); - int num7 = (_003C_003Ec._206C_206F_202D_202D_206B_200F_202A_202B_202A_200B_202E_200C_200C_200B_206E_202A_202C_200D_202B_206D_206D_202D_200F_206A_200C_200B_200F_202A_202D_202C_200E_206E_202A_206B_202D_206B_206E_206C_202D_200E_202E(text, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(865869314)) ? 173790898 : 173790900); - bool flag = default(bool); - while (true) - { - int num8 = num7; - int num9 = 173790902; - int num10 = num8; - switch ((num10 | num9) - (num10 & num9)) - { - case 6: - flag = false; - num7 = 173790903; - break; - case 1: - num7 = ((!flag) ? 173790899 : 173790902); - break; - case 2: - num7 = ((!_003C_003Ec._206C_206F_202D_202D_206B_200F_202A_202B_202A_200B_202E_200C_200C_200B_206E_202A_202C_200D_202B_206D_206D_202D_200F_206A_200C_200B_200F_202A_202D_202C_200E_206E_202A_206B_202D_206B_206E_206C_202D_200E_202E(text, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1914663527))) ? 173790896 : 173790898); - break; - case 0: - return _003C_003Ec._206B_202B_202D_206E_202E_202A_206A_202B_206B_206E_206C_202E_206A_202E_202E_202A_202D_200D_202D_206D_206A_200F_206A_206A_206B_206F_206F_206C_200E_206A_200E_202E_206E_200C_200C_206B_200B_200D_200C_200D_202E(p); - case 4: - flag = true; - num7 = 173790903; - break; - case 3: - num7 = 173790900; - break; - case 5: - return false; - } - } + string internalName = p.InternalName; + return ((internalName == "BossMod" || internalName == "BossModReborn") ? true : false) && p.IsLoaded; }); - int num = ((exposedPlugin != null) ? 1847840403 : 1847840406); - int value; - while (true) + if (exposedPlugin == null) { - int num2 = num; - int num3 = 1847840407; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 4: - num = (_206C_200B_206C_206E_202C_202D_200F_202E_206F_200C_206B_202D_202B_200C_202E_200E_202E_200D_202C_200C_206D_200D_206E_206E_202C_202E_200D_200D_200C_206B_202C_202D_202A_206A_206A_202B_206B_202B_206F_206A_202E(_200B_200B_202C_206C_202E_202B_206F_206B_200F_206B_200E_200B_206F_202B_202A_206C_200B_202B_202E_200C_202A_200B_206A_202D_200E_206D_200E_202A_202E_202E_206C_206C_206E_202C_206D_200B_200F_202E_206B_200F_202E(exposedPlugin), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(203874627)) ? 1847840404 : 1847840405); - continue; - case 1: - return null; - case 0: - num = 1847840406; - continue; - case 2: - value = 0; - break; - case 3: - value = 1; - break; - } - break; + return null; } - return (EVariant)value; + return (exposedPlugin.InternalName == "BossModReborn") ? EVariant.BMR : EVariant.VBM; } - [MethodImpl(MethodImplOptions.NoInlining)] - private void EnsureShellPresetExists(EPreset preset) + private bool CreateShellPreset(EPreset preset) { - int num = ((preset == EPreset.Active) ? (-1099553100) : (-1099553099)); - ref bool reference = default(ref bool); - while (true) + try { - int num2 = num; - int num3 = -1099553100; - int num4 = num2; - ref bool reference2; - switch ((num4 | num3) - (num4 & num3)) + string presetName = GetPresetName(preset); + IEnumerable<string> source = (from x in GetAiStrategies().Concat((preset == EPreset.Active) ? ((IEnumerable<Strategy>)ActivePositioningStrategies) : ((IEnumerable<Strategy>)Array.Empty<Strategy>())) + select x.Module).Distinct(); + string jobModule = GetJobModule(GetCurrentJob()); + if (jobModule != null) { - case 3: - num = -1099553099; - break; - case 0: - reference2 = ref _activeShellCreated; - goto IL_0064; - case 2: - return; - case 1: - reference2 = ref _passiveShellCreated; - goto IL_0064; - case 4: - { - try - { - string presetName = GetPresetName(preset); - string arg = _200C_206E_202E_200B_200C_206D_206B_200F_206C_202B_202C_206B_206F_202E_202E_200E_202D_202B_206F_206F_200D_206B_202B_200C_202B_202B_206D_200F_206E_206E_202A_202E_206D_206E_200D_202D_200C_202A_200D_206E_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(433807349), presetName, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1542558103)); - _createPreset.InvokeFunc(arg, arg2: true); - reference = true; - return; - } - catch (IpcError ipcError) - { - _202A_202A_202E_202D_206B_206B_206F_200D_200E_206D_202D_200B_200F_200E_202C_200F_200F_200D_200C_206A_202E_206F_200E_206C_206A_200D_206B_200E_202E_202E_202C_206A_200E_200B_200B_202E_202D_200D_206B_202D_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1779772174), new object[1] { preset }); - return; - } - } - IL_0064: - reference = ref reference2; - num = ((!reference) ? (-1099553104) : (-1099553098)); - break; + source = source.Append(jobModule); } + string value = string.Join(',', source.Select((string x) => "\"" + x + "\":[]")); + string arg = $"{{\"Name\":\"{presetName}\",\"Modules\":{{ {value} }}}}"; + if (!_createPreset.InvokeFunc(arg, arg2: true)) + { + _logger.LogWarning("BossMod rejected shell preset {Preset}", preset); + return false; + } + return true; + } + catch (IpcError exception) + { + _logger.LogWarning(exception, "Failed to create shell preset {Preset}", preset); + return false; } } - [MethodImpl(MethodImplOptions.NoInlining)] private void ApplyTransientStrategies(EPreset preset) { string presetName = GetPresetName(preset); - Strategy[] array = AiStrategies; - int num = 0; - int num2 = -963238380; - uint? num8 = default(uint?); - string value = default(string); - EClassJob eClassJob = default(EClassJob); - while (true) + Strategy[] aiStrategies = GetAiStrategies(); + foreach (Strategy strategy in aiStrategies) { - int num3 = num2; - int num4 = -963238380; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - EClassJob? obj; - EClassJob? eClassJob2; - switch (num6 - (num7 + num7)) + AddStrategy(presetName, strategy.Module, strategy.Track, strategy.Option); + } + if (preset != EPreset.Active) + { + return; + } + aiStrategies = ActivePositioningStrategies; + foreach (Strategy strategy2 in aiStrategies) + { + AddStrategy(presetName, strategy2.Module, strategy2.Track, strategy2.Option); + } + EClassJob currentJob = GetCurrentJob(); + if (JobModules.TryGetValue(currentJob, out string value)) + { + AddStrategy(presetName, value, "AOE", "AOE"); + AddStrategy(presetName, value, "Targeting", "Manual"); + if (currentJob != EClassJob.Monk && currentJob != EClassJob.Sage) { - case 3: + AddStrategy(presetName, value, "Buffs", (Variant == EVariant.VBM) ? "Automatic" : "Auto"); + } + if (currentJob == EClassJob.Pictomancer) { - IPlayerCharacter playerCharacter = _202D_202C_200F_206C_200F_200D_202D_200D_206E_200B_206F_200F_200E_202A_202D_202D_200B_200C_202B_200F_200B_202D_200C_200B_206E_202B_206A_206E_202B_200E_206E_200E_200B_206F_206A_200E_206D_200E_202E_206D_202E(_objectTable); - num8 = ((playerCharacter != null) ? new uint?(_202C_200F_200E_200F_202D_206B_200C_202E_200B_200B_202A_202B_206A_202B_202C_202C_206E_206E_200D_202B_202D_206E_202C_200F_202B_202D_206C_206E_202C_202B_200D_206E_202B_206F_200F_206C_200D_200C_206E_206E_202E((ICharacter)playerCharacter).RowId) : ((uint?)null)); - num2 = (num8.HasValue ? (-963238375) : (-963238376)); - break; - } - case 0: - num2 = ((num < array.Length) ? (-963238370) : (-963238393)); - break; - case 14: - AddStrategy(presetName, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2129436198), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-634884415), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1292691051)); - return; - case 13: - obj = (EClassJob)num8.GetValueOrDefault(); - goto IL_013c; - case 16: - AddStrategy(presetName, value, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-634884415), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-634884415)); - AddStrategy(presetName, value, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-812999709), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1199747555)); - num2 = ((eClassJob == EClassJob.Monk) ? (-963238384) : (-963238379)); - break; - case 9: - AddStrategy(presetName, value, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1881691473), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(264166607)); - num2 = -963238384; - break; - case 19: - num2 = ((preset == EPreset.Active) ? (-963238381) : (-963238382)); - break; - case 10: - { - Strategy strategy2 = array[num]; - AddStrategy(presetName, strategy2.Module, strategy2.Track, strategy2.Option); - int num12 = num; - num4 = 1; - num5 = num12; - num = (num5 | num4) + (num5 & num4); - num2 = -963238380; - break; - } - case 18: - _200D_202C_202E_202C_202E_206F_206E_202D_200E_200B_206D_200C_206B_206F_206E_202C_202E_202C_202A_200F_206D_202D_200E_206A_206D_202C_202A_206D_202D_202A_200E_200B_206E_202A_206D_206B_202B_206B_206C_202C_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1680614407), new object[1] { eClassJob }); - num2 = -963238373; - break; - case 2: - AddStrategy(presetName, value, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-330636953), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-129485839)); - return; - case 17: - num2 = -963238380; - break; - case 7: - array = ActivePositioningStrategies; - num = 0; - num2 = -963238383; - break; - case 11: - { - Strategy strategy = array[num]; - AddStrategy(presetName, strategy.Module, strategy.Track, strategy.Option); - int num9 = num; - num4 = 1; - num5 = num9; - int num10 = num5 ^ num4; - int num11 = num5 & num4; - num = num10 + (num11 + num11); - num2 = -963238383; - break; - } - case 1: - num2 = ((eClassJob == EClassJob.Sage) ? (-963238384) : (-963238371)); - break; - case 12: - obj = null; - goto IL_013c; - case 15: - return; - case 4: - num2 = ((eClassJob != EClassJob.Pictomancer) ? (-963238373) : (-963238378)); - break; - case 5: - num2 = ((num < array.Length) ? (-963238369) : (-963238377)); - break; - case 8: - num2 = ((eClassJob != EClassJob.Warrior) ? (-963238394) : (-963238374)); - break; - case 6: - return; - IL_013c: - eClassJob2 = obj; - eClassJob = eClassJob2.GetValueOrDefault(); - eClassJob = _206E_200C_202C_202B_200E_206F_206D_202A_206A_206D_200E_202C_200B_200E_206B_202C_200B_200C_206A_202B_206B_200D_206F_206E_206F_206E_200E_206A_206D_202C_202A_206F_200B_202D_206D_202C_202D_206C_200F_206F_202E(eClassJob); - num2 = ((!JobModules.TryGetValue(eClassJob, out value)) ? (-963238372) : (-963238396)); - break; + AddStrategy(presetName, value, "Motifs", "Downtime"); } } + else if (currentJob == EClassJob.Warrior) + { + AddStrategy(presetName, "BossMod.Autorotation.VeynWAR", "AOE", "AutoFinishCombo"); + } + else + { + _logger.LogDebug("No BossMod rotation module mapped for job {Job}", currentJob); + } } - [MethodImpl(MethodImplOptions.NoInlining)] private void ClearTransientStrategies(EPreset preset) { try { _clearTransientStrategies.InvokeFunc(GetPresetName(preset)); } - catch (IpcError ipcError) + catch (IpcError exception) { - _202A_202A_202E_202D_206B_206B_206F_200D_200E_206D_202D_200B_200F_200E_202C_200F_200F_200D_200C_206A_202E_206F_200E_206C_206A_200D_206B_200E_202E_202E_202C_206A_200E_200B_200B_202E_202D_200D_206B_202D_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-731019355), new object[1] { preset }); + _logger.LogWarning(exception, "Failed to clear transient strategies for {Preset}", preset); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void AddStrategy(string presetName, string module, string track, string option) { try { - _addTransientStrategy.InvokeFunc(presetName, module, track, option); + if (!_addTransientStrategy.InvokeFunc(presetName, module, track, option)) + { + _logger.LogWarning("BossMod rejected transient strategy {Module}.{Track}={Option}", module, track, option); + } } - catch (IpcError ipcError) + catch (IpcError exception) { - _202A_202A_202E_202D_206B_206B_206F_200D_200E_206D_202D_200B_200F_200E_202C_200F_200F_200D_200C_206A_202E_206F_200E_206C_206A_200D_206B_200E_202E_202E_202C_206A_200E_200B_200B_202E_202D_200D_206B_202D_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-608719873), new object[3] { module, track, option }); + _logger.LogWarning(exception, "Failed to add transient strategy {Module}.{Track}={Option}", module, track, option); } } + private EClassJob GetCurrentJob() + { + return ((EClassJob?)_objectTable.LocalPlayer?.ClassJob.RowId).GetValueOrDefault().AsJob(); + } + + private static string? GetJobModule(EClassJob job) + { + if (!JobModules.TryGetValue(job, out string value)) + { + if (job != EClassJob.Warrior) + { + return null; + } + return "BossMod.Autorotation.VeynWAR"; + } + return value; + } + public void AddTransientStrategy(EPreset preset, string moduleType, string track, string value) { AddStrategy(GetPresetName(preset), moduleType, track, value); } - [MethodImpl(MethodImplOptions.NoInlining)] public void SetRangeStrategy(EPreset preset, bool isRanged) { - AddTransientStrategy(preset, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-588423630), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-218764474), isRanged ? global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1922879553) : global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-713841942)); + AddTransientStrategy(preset, "BossMod.Autorotation.MiscAI.StayCloseToTarget", "Range", isRanged ? "15" : "3"); } - [MethodImpl(MethodImplOptions.NoInlining)] public bool EnableAi(EPreset preset) { - EnsureShellPresetExists(preset); + if (!CreateShellPreset(preset)) + { + return false; + } ApplyTransientStrategies(preset); try { - _setPreset.InvokeFunc(GetPresetName(preset)); + if (!_setPreset.InvokeFunc(GetPresetName(preset))) + { + _logger.LogWarning("BossMod rejected preset activation for {Preset}", preset); + return false; + } } catch (IpcError ipcError) { - _202C_206B_202C_206C_206B_206E_206F_206D_206F_202B_206F_202C_200D_202E_206B_206C_202D_202D_202B_200F_206D_206C_206A_200E_206F_202A_200B_206D_206E_206F_200F_206D_206C_206F_202A_202E_206F_200F_200D_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1782533706), new object[2] - { - preset, - _200E_200E_200B_206A_206D_202D_200E_202A_206F_202A_206B_206C_200B_200C_206B_200F_206D_202C_206C_200D_206D_200C_200B_202E_206C_202B_206C_200E_206E_200C_206D_200B_200E_202B_202A_206A_206C_206C_202B_202C_202E((Exception)ipcError) - }); + _logger.LogWarning("Unable to set BossMod preset {Preset}: {Message}", preset, ipcError.Message); return false; } string aiCommand = GetAiCommand(); - int num = ((aiCommand == null) ? 152671640 : 152671643); - while (true) + if (aiCommand != null) { - int num2 = num; - int num3 = 152671641; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_00a8; - case 1: - _202C_206B_202C_206C_206B_206E_206F_206D_206F_202B_206F_202C_200D_202E_206B_206C_202D_202D_202B_200F_206D_206C_206A_200E_206F_202A_200B_206D_206E_206F_200F_206D_206C_206F_202A_202E_206F_200F_200D_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1563817871), Array.Empty<object>()); - return false; - case 2: - _200D_202C_202E_202C_202E_206F_206E_202D_200E_200B_206D_200C_206B_206F_206E_202C_202E_202C_202A_200F_206D_202D_200E_206A_206D_202C_202A_206D_202D_202A_200E_200B_206E_202A_206D_206B_202B_206B_206C_202C_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-80338293), new object[3] { _variant, preset, aiCommand }); - _202B_200E_202C_206C_206B_200C_200B_202C_206C_200C_202B_206E_206B_202D_202B_200B_202B_200F_200F_206E_202A_206A_206A_206B_202E_206B_206A_206E_200D_202D_202A_206B_200C_202C_200B_206D_206A_206D_200C_206F_202E(_commandManager, _202B_206E_206F_202E_206C_206D_206A_200C_200B_200D_202C_206D_206B_206A_206F_206C_206D_200B_202D_206A_206E_202A_200D_200F_206C_200F_206E_206E_202B_200D_200B_200D_200D_200C_206B_200F_206C_200E_202A_206D_202E(aiCommand, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(558838852))); - return true; - } - continue; - IL_00a8: - num = 152671643; + _logger.LogDebug("Enabling BossMod AI: variant={Variant}, preset={Preset}, command='{Command} on'", Variant, preset, aiCommand); + _commandManager.ProcessCommand(aiCommand + " on"); + return true; } + _logger.LogWarning("Cannot enable BossMod AI: no variant detected"); + return false; } public void EnableQuestBattleAi() @@ -797,193 +434,91 @@ internal sealed class BossModIpc : IDisposable DisableAi(); } - [MethodImpl(MethodImplOptions.NoInlining)] public void DisableAi() { string aiCommand = GetAiCommand(); - int num = ((aiCommand == null) ? (-261406571) : (-261406570)); - while (true) + if (aiCommand != null) { - int num2 = num; - int num3 = -261406569; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -261406570; - break; - case 1: - _200D_202C_202E_202C_202E_206F_206E_202D_200E_200B_206D_200C_206B_206F_206E_202C_202E_202C_202A_200F_206D_202D_200E_206A_206D_202C_202A_206D_202D_202A_200E_200B_206E_202A_206D_206B_202B_206B_206C_202C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1246132774), new object[1] { aiCommand }); - _202B_200E_202C_206C_206B_200C_200B_202C_206C_200C_202B_206E_206B_202D_202B_200B_202B_200F_200F_206E_202A_206A_206A_206B_202E_206B_206A_206E_200D_202D_202A_206B_200C_202C_200B_206D_206A_206D_200C_206F_202E(_commandManager, _202B_206E_206F_202E_206C_206D_206A_200C_200B_200D_202C_206D_206B_206A_206F_206C_206D_200B_202D_206A_206E_202A_200D_200F_206C_200F_206E_206E_202B_200D_200B_200D_200D_200C_206B_200F_206C_200E_202A_206D_202E(aiCommand, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1070453685))); - num = -261406571; - break; - case 2: - ClearTransientStrategies(EPreset.Active); - ClearTransientStrategies(EPreset.Passive); - try - { - _clearPreset.InvokeFunc(); - return; - } - catch (IpcError ipcError) - { - _202A_202A_202E_202D_206B_206B_206F_200D_200E_206D_202D_200B_200F_200E_202C_200F_200F_200D_200C_206A_202E_206F_200E_206C_206A_200D_206B_200E_202E_202E_202C_206A_200E_200B_200B_202E_202D_200D_206B_202D_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1107711478), Array.Empty<object>()); - return; - } - } + _logger.LogDebug("Disabling BossMod AI: command='{Command} off'", aiCommand); + _commandManager.ProcessCommand(aiCommand + " off"); + } + ClearTransientStrategies(EPreset.Active); + ClearTransientStrategies(EPreset.Passive); + try + { + _clearPreset.InvokeFunc(); + } + catch (IpcError exception) + { + _logger.LogWarning(exception, "Failed to clear BossMod preset"); } } public bool IsConfiguredToRunSoloInstance(ElementId questId, SinglePlayerDutyOptions? dutyOptions) { - int num = (IsSupported() ? 676961928 : 676961925); - SinglePlayerDutyEntry[] value = default(SinglePlayerDutyEntry[]); - byte index = default(byte); - TerritoryData.ContentFinderConditionData contentFinderConditionData = default(TerritoryData.ContentFinderConditionData); - QuestId questId2 = default(QuestId); - while (true) + if (!IsSupported()) { - int num2 = num; - int num3 = 676961921; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num7; - ushort key; - switch (num5 - (num6 + num6)) - { - case 12: - return false; - case 8: - return value.Any(delegate(SinglePlayerDutyEntry e) - { - int num8 = ((e.Index != index) ? 15909539 : 15909536); - while (true) - { - int num9 = num8; - int num10 = 15909538; - int num11 = num9; - int num12 = num11 + num10; - int num13 = num11 & num10; - switch (num12 - (num13 + num13)) - { - case 1: - return false; - case 2: - return e.Enabled; - case 0: - goto IL_0057; - } - continue; - IL_0057: - num8 = 15909536; - } - }); - case 3: - return false; - case 4: - return false; - case 13: - num = ((!_configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Contains(contentFinderConditionData.ContentFinderConditionId)) ? 676961923 : 676961924); - break; - case 6: - num = ((!_configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Contains(contentFinderConditionData.ContentFinderConditionId)) ? 676961932 : 676961931); - break; - case 7: - num = 676961925; - break; - case 9: - num = (_configuration.SinglePlayerDuties.RunSoloInstancesWithBossMod ? 676961935 : 676961920); - break; - case 5: - return true; - case 1: - return false; - case 11: - num7 = 0; - goto IL_01b1; - case 10: - return false; - case 14: - index = (byte)((dutyOptions != null) ? _206F_200E_202A_200F_202D_200C_202C_200E_206C_202A_200C_200D_200C_206B_202C_202B_202B_200F_200D_202D_202C_206D_200F_206C_202E_200C_206C_200E_206E_206F_206A_206C_202A_206F_200C_202A_200D_206B_200B_200F_202E(dutyOptions) : 0); - num = (_territoryData.TryGetContentFinderConditionForSoloInstance(questId, index, out contentFinderConditionData) ? 676961927 : 676961933); - break; - case 0: - num7 = _206F_206E_202C_206B_202B_206C_200E_202C_200D_200C_206F_206A_200F_202B_202A_200C_202E_206B_200F_206C_202D_202C_206B_202E_202B_206E_206B_202C_200B_206C_206A_206D_206D_206D_202E_206D_200D_200B_200E_200D_202E((ElementId)questId2); - goto IL_01b1; - case 2: - { - questId2 = questId as QuestId; - num = (((object)questId2 != null) ? 676961921 : 676961930); - break; - } - IL_01b1: - key = (ushort)num7; - num = ((!DutyRegistry.SinglePlayerDuties.TryGetValue(key, out value)) ? 676961922 : 676961929); - break; - } + return false; } + if (!_configuration.SinglePlayerDuties.RunSoloInstancesWithBossMod) + { + return false; + } + byte index = dutyOptions?.Index ?? 0; + if (!_territoryData.TryGetContentFinderConditionForSoloInstance(questId, index, out TerritoryData.ContentFinderConditionData contentFinderConditionData)) + { + return false; + } + if (_configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Contains(contentFinderConditionData.ContentFinderConditionId)) + { + return false; + } + if (_configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Contains(contentFinderConditionData.ContentFinderConditionId)) + { + return true; + } + ushort key = (ushort)((questId is QuestId questId2) ? questId2.Value : 0); + if (DutyRegistry.SinglePlayerDuties.TryGetValue(key, out SinglePlayerDutyEntry[] value)) + { + return value.Any((SinglePlayerDutyEntry e) => e.Index == index && e.Enabled); + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Dispose() { ReleaseSoloDutyZone(); try { - _deletePreset.InvokeFunc(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712)); + _deletePreset.InvokeFunc("Questionable"); } catch (IpcError) { } try { - _deletePreset.InvokeFunc(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-159131530)); + _deletePreset.InvokeFunc("Questionable (Passive)"); } catch (IpcError) { } - _activeShellCreated = false; - _passiveShellCreated = false; } - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] private string? GetAiCommand() { - int num = (_variant.HasValue ? 597010869 : 597010868); - while (true) + EVariant? eVariant = DetectVariantFromPlugins(); + if (!eVariant.HasValue) { - int num2 = num; - int num3 = 597010871; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 597010868; - break; - case 2: - num = ((_variant == EVariant.BMR) ? 597010867 : 597010870); - break; - case 4: - return global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1823552470); - case 1: - return global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-329487653); - case 3: - _202C_206B_202C_206C_206B_206E_206F_206D_206F_202B_206F_202C_200D_202E_206B_206C_202D_202D_202B_200F_206D_206C_206A_200E_206F_202A_200B_206D_206E_206F_200F_206D_206C_206F_202A_202E_206F_200F_200D_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1900049298), Array.Empty<object>()); - return null; - } + _logger.LogWarning("No BossMod variant detected"); + return null; } + if (eVariant != EVariant.BMR) + { + return "/vbmai"; + } + return "/bmrai"; } - [MethodImpl(MethodImplOptions.NoInlining)] private void SetConfigTransient(string section, string key, string value) { try @@ -997,229 +532,53 @@ internal sealed class BossModIpc : IDisposable span[1] = key; span[2] = value; List<string> list2 = setConfig.InvokeFunc(list, arg2: false); - int num2 = ((list2 == null) ? (-1683933139) : (-1683933137)); - while (true) + if (list2 != null && list2.Count > 0) { - int num3 = num2; - int num4 = -1683933138; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 2: - _202C_206B_202C_206C_206B_206E_206F_206D_206F_202B_206F_202C_200D_202E_206B_206C_202D_202D_202B_200F_206D_206C_206A_200E_206F_202A_200B_206D_206E_206F_200F_206D_206C_206F_202A_202E_206F_200F_200D_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-626314783), new object[4] - { - section, - key, - value, - _200F_202C_206C_200F_206C_206B_206A_206F_200F_206F_202D_200B_200B_202B_200B_200B_206E_202A_202D_200E_202A_200E_200D_200F_206A_202E_202B_200C_202B_202C_206A_206E_200D_200F_206E_200E_200B_206A_202C_200C_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(495186777), (IEnumerable<string>)list2) - }); - num2 = -1683933139; - break; - case 1: - num2 = ((list2.Count <= 0) ? (-1683933139) : (-1683933140)); - break; - case 0: - num2 = -1683933137; - break; - case 3: - return; - } + _logger.LogWarning("Setting BossMod config {Section}.{Key}={Value} returned: {Output}", section, key, value, string.Join("; ", list2)); } } - catch (IpcError ipcError) + catch (IpcError exception) { - _202A_202A_202E_202D_206B_206B_206F_200D_200E_206D_202D_200B_200F_200E_202C_200F_200F_200D_200C_206A_202E_206F_200E_206C_206A_200D_206B_200E_202E_202E_202C_206A_200E_200B_200B_202E_202D_200D_206B_202D_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(353123351), new object[3] { section, key, value }); + _logger.LogWarning(exception, "Failed to set BossMod config {Section}.{Key}={Value}", section, key, value); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void ConfigureSoloDutyZone() { - int num = (IsSupported() ? (-480345275) : (-480345274)); - while (true) + if (IsSupported()) { - int num2 = num; - int num3 = -480345276; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0046; - case 1: - SetConfigTransient(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1962349943), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(936312060), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1048954191)); - SetConfigTransient(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1298460236), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(796924584), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1013158676)); - _soloDutyZoneConfigured = true; - return; - case 2: - return; - } - continue; - IL_0046: - num = -480345274; + SetConfigTransient("ZoneModuleConfig", "EnableQuestBattles", "true"); + SetConfigTransient("Autorotation", "ClearPresetOnCombatEnd", "false"); + _soloDutyZoneConfigured = true; } } - [MethodImpl(MethodImplOptions.NoInlining)] private void ReleaseSoloDutyZone() { - int num = ((!_soloDutyZoneConfigured) ? 753387069 : 753387071); - while (true) + if (_soloDutyZoneConfigured && IsSupported()) { - int num2 = num; - int num3 = 753387070; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 753387071; - break; - case 0: - SetConfigTransient(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-118895340), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1965564985), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2062724297)); - SetConfigTransient(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1935980207), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1757728501), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1048954191)); - _soloDutyZoneConfigured = false; - return; - case 3: - return; - case 1: - num = (IsSupported() ? 753387070 : 753387069); - break; - } + SetConfigTransient("ZoneModuleConfig", "EnableQuestBattles", "false"); + SetConfigTransient("Autorotation", "ClearPresetOnCombatEnd", "true"); + _soloDutyZoneConfigured = false; } } - [MethodImpl(MethodImplOptions.NoInlining)] private static string GetPresetName(EPreset preset) { - int num = ((preset == EPreset.Active) ? 1788877012 : 1788877010); - string result = default(string); - while (true) + return preset switch { - int num2 = num; - int num3 = 1788877014; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1788877010; - break; - case 1: - return result; - case 5: - num = 1788877008; - break; - case 3: - result = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-159131530); - num = 1788877015; - break; - case 6: - throw _206D_202C_202E_206C_206A_202D_202C_202D_206E_200E_202C_200D_200C_206C_200C_202E_200E_206A_200D_202E_202E_206D_206D_206D_202A_206A_200C_206C_206C_202C_200F_200C_200C_200B_202C_206E_206D_202E_202E_206E_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(317946184)); - case 4: - num = ((preset == EPreset.Passive) ? 1788877013 : 1788877011); - break; - case 2: - result = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163); - num = 1788877015; - break; - } + EPreset.Active => "Questionable", + EPreset.Passive => "Questionable (Passive)", + _ => throw new ArgumentOutOfRangeException("preset"), + }; + } + + private Strategy[] GetAiStrategies() + { + if (Variant != EVariant.VBM) + { + return BmrAiStrategies; } - } - - static Task _200D_200D_202D_200E_202A_202E_200F_202C_206D_206B_202E_202C_200C_206E_206F_202D_206D_200B_206A_202B_206D_206E_206C_202D_202E_206C_202A_206D_200C_200B_206F_206A_206E_200B_200F_202C_202E_202B_202A_206A_202E(IFramework P_0, System.Action P_1) - { - return P_0.RunOnFrameworkThread(P_1); - } - - static bool _202E_202C_202A_200C_200F_206A_200E_206B_200C_200E_206D_200C_202B_206B_202D_202C_202A_202D_202B_202C_206E_202B_206E_206F_206E_202E_206E_206D_202D_200D_206C_200E_206A_200D_202A_206E_200C_206E_202E_202A_202E(ICallGateSubscriber P_0) - { - return P_0.HasFunction; - } - - static IEnumerable<IExposedPlugin> _202E_202D_200E_202C_206B_206B_202B_206F_206D_200F_200C_206F_202D_202E_206B_202D_200F_200F_200C_206C_200C_206A_200E_202B_202C_200F_206F_202C_200D_200D_202C_206E_200D_206C_200B_200B_202C_206E_202C_200F_202E(IDalamudPluginInterface P_0) - { - return P_0.InstalledPlugins; - } - - static string _200B_200B_202C_206C_202E_202B_206F_206B_200F_206B_200E_200B_206F_202B_202A_206C_200B_202B_202E_200C_202A_200B_206A_202D_200E_206D_200E_202A_202E_202E_206C_206C_206E_202C_206D_200B_200F_202E_206B_200F_202E(IExposedPlugin P_0) - { - return P_0.InternalName; - } - - static bool _206C_200B_206C_206E_202C_202D_200F_202E_206F_200C_206B_202D_202B_200C_202E_200E_202E_200D_202C_200C_206D_200D_206E_206E_202C_202E_200D_200D_200C_206B_202C_202D_202A_206A_206A_202B_206B_202B_206F_206A_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static string _200C_206E_202E_200B_200C_206D_206B_200F_206C_202B_202C_206B_206F_202E_202E_200E_202D_202B_206F_206F_200D_206B_202B_200C_202B_202B_206D_200F_206E_206E_202A_202E_206D_206E_200D_202D_200C_202A_200D_206E_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static void _202A_202A_202E_202D_206B_206B_206F_200D_200E_206D_202D_200B_200F_200E_202C_200F_200F_200D_200C_206A_202E_206F_200E_206C_206A_200D_206B_200E_202E_202E_202C_206A_200E_200B_200B_202E_202D_200D_206B_202D_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogWarning(P_1, P_2, P_3); - } - - static IPlayerCharacter _202D_202C_200F_206C_200F_200D_202D_200D_206E_200B_206F_200F_200E_202A_202D_202D_200B_200C_202B_200F_200B_202D_200C_200B_206E_202B_206A_206E_202B_200E_206E_200E_200B_206F_206A_200E_206D_200E_202E_206D_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static RowRef<ClassJob> _202C_200F_200E_200F_202D_206B_200C_202E_200B_200B_202A_202B_206A_202B_202C_202C_206E_206E_200D_202B_202D_206E_202C_200F_202B_202D_206C_206E_202C_202B_200D_206E_202B_206F_200F_206C_200D_200C_206E_206E_202E(ICharacter P_0) - { - return P_0.ClassJob; - } - - static EClassJob _206E_200C_202C_202B_200E_206F_206D_202A_206A_206D_200E_202C_200B_200E_206B_202C_200B_200C_206A_202B_206B_200D_206F_206E_206F_206E_200E_206A_206D_202C_202A_206F_200B_202D_206D_202C_202D_206C_200F_206F_202E(EClassJob P_0) - { - return P_0.AsJob(); - } - - static void _200D_202C_202E_202C_202E_206F_206E_202D_200E_200B_206D_200C_206B_206F_206E_202C_202E_202C_202A_200F_206D_202D_200E_206A_206D_202C_202A_206D_202D_202A_200E_200B_206E_202A_206D_206B_202B_206B_206C_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static string _200E_200E_200B_206A_206D_202D_200E_202A_206F_202A_206B_206C_200B_200C_206B_200F_206D_202C_206C_200D_206D_200C_200B_202E_206C_202B_206C_200E_206E_200C_206D_200B_200E_202B_202A_206A_206C_206C_202B_202C_202E(Exception P_0) - { - return P_0.Message; - } - - static void _202C_206B_202C_206C_206B_206E_206F_206D_206F_202B_206F_202C_200D_202E_206B_206C_202D_202D_202B_200F_206D_206C_206A_200E_206F_202A_200B_206D_206E_206F_200F_206D_206C_206F_202A_202E_206F_200F_200D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static string _202B_206E_206F_202E_206C_206D_206A_200C_200B_200D_202C_206D_206B_206A_206F_206C_206D_200B_202D_206A_206E_202A_200D_200F_206C_200F_206E_206E_202B_200D_200B_200D_200D_200C_206B_200F_206C_200E_202A_206D_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static bool _202B_200E_202C_206C_206B_200C_200B_202C_206C_200C_202B_206E_206B_202D_202B_200B_202B_200F_200F_206E_202A_206A_206A_206B_202E_206B_206A_206E_200D_202D_202A_206B_200C_202C_200B_206D_206A_206D_200C_206F_202E(ICommandManager P_0, string P_1) - { - return P_0.ProcessCommand(P_1); - } - - static byte _206F_200E_202A_200F_202D_200C_202C_200E_206C_202A_200C_200D_200C_206B_202C_202B_202B_200F_200D_202D_202C_206D_200F_206C_202E_200C_206C_200E_206E_206F_206A_206C_202A_206F_200C_202A_200D_206B_200B_200F_202E(SinglePlayerDutyOptions P_0) - { - return P_0.Index; - } - - static ushort _206F_206E_202C_206B_202B_206C_200E_202C_200D_200C_206F_206A_200F_202B_202A_200C_202E_206B_200F_206C_202D_202C_206B_202E_202B_206E_206B_202C_200B_206C_206A_206D_206D_206D_202E_206D_200D_200B_200E_200D_202E(ElementId P_0) - { - return P_0.Value; - } - - static string _200F_202C_206C_200F_206C_206B_206A_206F_200F_206F_202D_200B_200B_202B_200B_200B_206E_202A_202D_200E_202A_200E_200D_200F_206A_202E_202B_200C_202B_202C_206A_206E_200D_200F_206E_200E_200B_206A_202C_200C_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); - } - - static ArgumentOutOfRangeException _206D_202C_202E_206C_206A_202D_202C_202D_206E_200E_202C_200D_200C_206C_200C_202E_200E_206A_200D_202E_202E_206D_206D_206D_202A_206A_200C_206C_206C_202C_200F_200C_200C_200B_202C_206E_206D_202E_202E_206E_202E(string P_0) - { - return new ArgumentOutOfRangeException(P_0); + return VbmAiStrategies; } } diff --git a/Questionable/Questionable.External/MoveCommand.cs b/Questionable/Questionable.External/MoveCommand.cs index 28e1416..0de5558 100644 --- a/Questionable/Questionable.External/MoveCommand.cs +++ b/Questionable/Questionable.External/MoveCommand.cs @@ -1,149 +1,6 @@ -using System; using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; namespace Questionable.External; -internal sealed record MoveCommand(List<Vector3> Waypoints, bool Fly, float ArrivalTolerance) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200F_206E_202E_206A_206B_200B_202A_206C_206B_206F_202A_200C_200B_202D_200D_202B_202A_200B_202C_206C_206C_206A_206B_200F_202C_200E_202A_206F_202D_202D_206A_202A_202C_202C_202E_206F_206B_200B_202C_202E(typeof(MoveCommand).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206D_206D_200B_200E_200D_202E_202E_202E_206B_206E_200B_202A_200F_200F_200C_200D_200B_206D_202D_202B_202D_200B_202E_206F_206A_206D_202C_200B_202B_206A_202C_202A_202D_202E_206F_206B_200D_200C_206A_206E_202E(); - _202C_202B_206C_202E_202C_200F_206B_202D_200C_200B_206B_200E_200F_202A_200B_200C_206E_206F_202C_200E_206B_200C_202B_206B_202E_202B_206E_206C_202B_200F_200E_206B_202D_202C_200D_206D_206A_206E_206E_206F_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(697223660)); - _202C_202B_206C_202E_202C_200F_206B_202D_200C_200B_206B_200E_200F_202A_200B_200C_206E_206F_202C_200E_206B_200C_202B_206B_202E_202B_206E_206C_202B_200F_200E_206B_202D_202C_200D_206D_206A_206E_206E_206F_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? (-53230513) : (-53230514)); - while (true) - { - int num2 = num; - int num3 = -53230513; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _202B_206E_206F_200D_200C_200D_206E_206E_200C_202C_200C_202C_200C_206D_200D_200D_206D_206A_200B_206D_206F_206E_200C_206A_206D_206C_206C_206E_202C_206D_202E_206B_200E_206A_206B_206A_200B_200E_200E_202E(stringBuilder, '}'); - return _206A_202A_200B_206D_202C_202E_202E_206A_206C_202D_200B_200B_200C_200F_206E_200B_202E_202D_206B_200E_206A_202B_206C_202A_200E_200D_206A_200F_200C_206A_206E_206F_200B_206E_206C_200B_206D_202B_206A_206C_202E((object)stringBuilder); - case 1: - _202B_206E_206F_200D_200C_200D_206E_206E_200C_202C_200C_202C_200C_206D_200D_200D_206D_206A_200B_206D_206F_206E_200C_206A_206D_206C_206C_206E_202C_206D_202E_206B_200E_206A_206B_206A_200B_200E_200E_202E(stringBuilder, ' '); - num = -53230513; - break; - case 2: - num = -53230514; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202D_200B_206A_202D_206B_200C_202C_206B_206D_202B_202B_200C_206A_206E_206B_202A_202E_202E_202A_202B_202E_202B_200B_206A_200C_206E_206C_202B_206B_206E_202C_206D_202E_202C_200D_202C_206C_206F_200E_202A_202E(); - _202C_202B_206C_202E_202C_200F_206B_202D_200C_200B_206B_200E_200F_202A_200B_200C_206E_206F_202C_200E_206B_200C_202B_206B_202E_202B_206E_206C_202B_200F_200E_206B_202D_202C_200D_206D_206A_206E_206E_206F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(376475816)); - _202D_202C_202A_206E_202C_200C_200E_200B_206C_200B_202C_200E_202A_202A_206F_202E_206A_202A_200D_206E_202B_206E_200C_206C_200E_206D_200D_200E_202A_200C_202E_202C_206D_206B_200D_206B_202D_202E_202B_202B_202E(builder, (object)Waypoints); - _202C_202B_206C_202E_202C_200F_206B_202D_200C_200B_206B_200E_200F_202A_200B_200C_206E_206F_202C_200E_206B_200C_202B_206B_202E_202B_206E_206C_202B_200F_200E_206B_202D_202C_200D_206D_206A_206E_206E_206F_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1335211848)); - _202C_202B_206C_202E_202C_200F_206B_202D_200C_200B_206B_200E_200F_202A_200B_200C_206E_206F_202C_200E_206B_200C_202B_206B_202E_202B_206E_206C_202B_200F_200E_206B_202D_202C_200D_206D_206A_206E_206E_206F_202E(builder, Fly.ToString()); - _202C_202B_206C_202E_202C_200F_206B_202D_200C_200B_206B_200E_200F_202A_200B_200C_206E_206F_202C_200E_206B_200C_202B_206B_202E_202B_206E_206C_202B_200F_200E_206B_202D_202C_200D_206D_206A_206E_206E_206F_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-918953903)); - _202C_202B_206C_202E_202C_200F_206B_202D_200C_200B_206B_200E_200F_202A_200B_200C_206E_206F_202C_200E_206B_200C_202B_206B_202E_202B_206E_206C_202B_200F_200E_206B_202D_202C_200D_206D_206A_206E_206E_206F_202E(builder, ArrivalTolerance.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(MoveCommand? other) - { - int num = (((object)this == other) ? 1439359497 : 1439359501); - while (true) - { - int num2 = num; - int num3 = 1439359498; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - num = 1439359501; - break; - case 5: - num = ((!_202A_202C_200C_202E_206C_200B_206F_202A_202E_200B_202A_200D_206E_200D_206C_202C_200B_202E_206B_206F_206B_202D_200F_202E_202E_202E_202A_200B_206E_200D_200C_206E_202D_202E_202C_202E_206E_202A_200E_200E_202E(EqualityContract, other.EqualityContract)) ? 1439359502 : 1439359496); - break; - case 2: - num = ((!EqualityComparer<List<Vector3>>.Default.Equals(Waypoints, other.Waypoints)) ? 1439359502 : 1439359498); - break; - case 3: - return true; - case 7: - num = (((object)other == null) ? 1439359502 : 1439359503); - break; - case 4: - return false; - case 0: - num = ((!EqualityComparer<bool>.Default.Equals(Fly, other.Fly)) ? 1439359502 : 1439359499); - break; - case 1: - return EqualityComparer<float>.Default.Equals(ArrivalTolerance, other.ArrivalTolerance); - } - } - } - - bool IEquatable<MoveCommand>.Equals(MoveCommand? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200F_206E_202E_206A_206B_200B_202A_206C_206B_206F_202A_200C_200B_202D_200D_202B_202A_200B_202C_206C_206C_206A_206B_200F_202C_200E_202A_206F_202D_202D_206A_202A_202C_202C_202E_206F_206B_200B_202C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206D_206D_200B_200E_200D_202E_202E_202E_206B_206E_200B_202A_200F_200F_200C_200D_200B_206D_202D_202B_202D_200B_202E_206F_206A_206D_202C_200B_202B_206A_202C_202A_202D_202E_206F_206B_200D_200C_206A_206E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202C_202B_206C_202E_202C_200F_206B_202D_200C_200B_206B_200E_200F_202A_200B_200C_206E_206F_202C_200E_206B_200C_202B_206B_202E_202B_206E_206C_202B_200F_200E_206B_202D_202C_200D_206D_206A_206E_206E_206F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202B_206E_206F_200D_200C_200D_206E_206E_200C_202C_200C_202C_200C_206D_200D_200D_206D_206A_200B_206D_206F_206E_200C_206A_206D_206C_206C_206E_202C_206D_202E_206B_200E_206A_206B_206A_200B_200E_200E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206A_202A_200B_206D_202C_202E_202E_206A_206C_202D_200B_200B_200C_200F_206E_200B_202E_202D_206B_200E_206A_202B_206C_202A_200E_200D_206A_200F_200C_206A_206E_206F_200B_206E_206C_200B_206D_202B_206A_206C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202D_200B_206A_202D_206B_200C_202C_206B_206D_202B_202B_200C_206A_206E_206B_202A_202E_202E_202A_202B_202E_202B_200B_206A_200C_206E_206C_202B_206B_206E_202C_206D_202E_202C_200D_202C_206C_206F_200E_202A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202D_202C_202A_206E_202C_200C_200E_200B_206C_200B_202C_200E_202A_202A_206F_202E_206A_202A_200D_206E_202B_206E_200C_206C_200E_206D_200D_200E_202A_200C_202E_202C_206D_206B_200D_206B_202D_202E_202B_202B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202A_202C_200C_202E_206C_200B_206F_202A_202E_200B_202A_200D_206E_200D_206C_202C_200B_202E_206B_206F_206B_202D_200F_202E_202E_202E_202A_200B_206E_200D_200C_206E_202D_202E_202C_202E_206E_202A_200E_200E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +internal sealed record MoveCommand(List<Vector3> Waypoints, bool Fly, float ArrivalTolerance); diff --git a/Questionable/Questionable.External/NavPathfindResult.cs b/Questionable/Questionable.External/NavPathfindResult.cs index 05cca01..3ad3f9b 100644 --- a/Questionable/Questionable.External/NavPathfindResult.cs +++ b/Questionable/Questionable.External/NavPathfindResult.cs @@ -1,152 +1,6 @@ -using System; using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; namespace Questionable.External; -internal sealed record NavPathfindResult(List<Vector3> Waypoints, bool HasPartialInfo, bool IsPartial, float EndDistance) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202E_200C_202B_200E_200E_200B_200B_206D_202E_202D_206C_206B_200E_206A_200E_202E_206A_206A_206A_202E_206C_202D_202E_206E_200B_200C_200E_206E_202A_206E_206F_202D_206D_202B_202D_206D_200B_200D_200B_202D_202E(typeof(NavPathfindResult).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202E_206D_206E_202C_206F_202D_202A_200E_202B_206E_202D_202E_206E_206E_202D_202A_206F_206C_202B_202A_200F_206B_206C_202A_202E_200F_200C_202A_202C_200C_206B_202C_202D_202C_200B_202B_206B_202D_202C_200C_202E(); - _202C_206B_206B_200F_206B_206A_206D_206B_206F_200B_200F_200B_200D_202A_206C_206B_200B_202D_202E_206C_200B_200E_202B_206F_202B_202B_202B_206A_200C_202D_200E_200F_206D_206D_206F_200E_202A_206A_202A_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-598170801)); - _202C_206B_206B_200F_206B_206A_206D_206B_206F_200B_200F_200B_200D_202A_206C_206B_200B_202D_202E_206C_200B_200E_202B_206F_202B_202B_202B_206A_200C_202D_200E_200F_206D_206D_206F_200E_202A_206A_202A_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125)); - int num = ((!PrintMembers(stringBuilder)) ? 490901911 : 490901908); - while (true) - { - int num2 = num; - int num3 = 490901909; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 490901908; - break; - case 2: - _206A_202C_200D_202D_200B_206F_202E_206E_206E_206C_202D_206F_202C_200B_200D_202E_202E_206E_200E_206F_202A_206E_202A_202E_200F_202C_200C_206F_206E_206B_202B_206B_202B_200C_202E_200B_202C_202C_202E_200D_202E(stringBuilder, '}'); - return _206F_206D_206C_200F_200C_202A_200D_200B_206A_200D_200B_202C_200C_206E_202B_200F_200C_200D_206D_202D_200C_202B_202D_202E_200F_200D_200D_202D_202B_206E_202D_200E_206B_200E_202A_200B_206C_200F_200F_200D_202E((object)stringBuilder); - case 1: - _206A_202C_200D_202D_200B_206F_202E_206E_206E_206C_202D_206F_202C_200B_200D_202E_202E_206E_200E_206F_202A_206E_202A_202E_200F_202C_200C_206F_206E_206B_202B_206B_202B_200C_202E_200B_202C_202C_202E_200D_202E(stringBuilder, ' '); - num = 490901911; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200B_202A_206B_200B_200F_200C_200F_206D_206F_206A_202A_206A_206A_206C_200F_200B_206A_206B_202A_206A_200B_200C_206F_200C_202A_206E_202A_202D_202C_206E_206B_206A_200D_200B_206A_206C_206D_206A_206A_202A_202E(); - _202C_206B_206B_200F_206B_206A_206D_206B_206F_200B_200F_200B_200D_202A_206C_206B_200B_202D_202E_206C_200B_200E_202B_206F_202B_202B_202B_206A_200C_202D_200E_200F_206D_206D_206F_200E_202A_206A_202A_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(110603509)); - _202E_206B_200E_206B_200B_206C_206D_206F_202E_206E_206B_206C_200E_202A_206A_200C_206F_200C_200E_200F_200D_202B_200F_200C_206E_202E_202C_202C_200C_206E_202D_200D_200C_200C_206C_206C_200E_200B_206A_202C_202E(builder, (object)Waypoints); - _202C_206B_206B_200F_206B_206A_206D_206B_206F_200B_200F_200B_200D_202A_206C_206B_200B_202D_202E_206C_200B_200E_202B_206F_202B_202B_202B_206A_200C_202D_200E_200F_206D_206D_206F_200E_202A_206A_202A_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1493861964)); - _202C_206B_206B_200F_206B_206A_206D_206B_206F_200B_200F_200B_200D_202A_206C_206B_200B_202D_202E_206C_200B_200E_202B_206F_202B_202B_202B_206A_200C_202D_200E_200F_206D_206D_206F_200E_202A_206A_202A_202E(builder, HasPartialInfo.ToString()); - _202C_206B_206B_200F_206B_206A_206D_206B_206F_200B_200F_200B_200D_202A_206C_206B_200B_202D_202E_206C_200B_200E_202B_206F_202B_202B_202B_206A_200C_202D_200E_200F_206D_206D_206F_200E_202A_206A_202A_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(164596793)); - _202C_206B_206B_200F_206B_206A_206D_206B_206F_200B_200F_200B_200D_202A_206C_206B_200B_202D_202E_206C_200B_200E_202B_206F_202B_202B_202B_206A_200C_202D_200E_200F_206D_206D_206F_200E_202A_206A_202A_202E(builder, IsPartial.ToString()); - _202C_206B_206B_200F_206B_206A_206D_206B_206F_200B_200F_200B_200D_202A_206C_206B_200B_202D_202E_206C_200B_200E_202B_206F_202B_202B_202B_206A_200C_202D_200E_200F_206D_206D_206F_200E_202A_206A_202A_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2102577067)); - _202C_206B_206B_200F_206B_206A_206D_206B_206F_200B_200F_200B_200D_202A_206C_206B_200B_202D_202E_206C_200B_200E_202B_206F_202B_202B_202B_206A_200C_202D_200E_200F_206D_206D_206F_200E_202A_206A_202A_202E(builder, EndDistance.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(NavPathfindResult? other) - { - int num = (((object)this == other) ? 790411185 : 790411191); - while (true) - { - int num2 = num; - int num3 = 790411189; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 790411191; - break; - case 7: - return EqualityComparer<float>.Default.Equals(EndDistance, other.EndDistance); - case 2: - num = (((object)other == null) ? 790411187 : 790411184); - break; - case 6: - return false; - case 4: - return true; - case 3: - num = ((!EqualityComparer<bool>.Default.Equals(IsPartial, other.IsPartial)) ? 790411187 : 790411186); - break; - case 5: - num = ((!_206B_206C_200D_202B_202C_200B_200C_202D_206C_200E_206D_202D_200E_202A_200E_200D_206A_202D_200F_206A_202C_206F_206B_202C_200E_202A_202C_206D_202A_206C_206C_200B_202D_206C_200D_206F_206B_206D_202D_206E_202E(EqualityContract, other.EqualityContract)) ? 790411187 : 790411188); - break; - case 1: - num = ((!EqualityComparer<List<Vector3>>.Default.Equals(Waypoints, other.Waypoints)) ? 790411187 : 790411197); - break; - case 8: - num = ((!EqualityComparer<bool>.Default.Equals(HasPartialInfo, other.HasPartialInfo)) ? 790411187 : 790411190); - break; - } - } - } - - bool IEquatable<NavPathfindResult>.Equals(NavPathfindResult? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202E_200C_202B_200E_200E_200B_200B_206D_202E_202D_206C_206B_200E_206A_200E_202E_206A_206A_206A_202E_206C_202D_202E_206E_200B_200C_200E_206E_202A_206E_206F_202D_206D_202B_202D_206D_200B_200D_200B_202D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202E_206D_206E_202C_206F_202D_202A_200E_202B_206E_202D_202E_206E_206E_202D_202A_206F_206C_202B_202A_200F_206B_206C_202A_202E_200F_200C_202A_202C_200C_206B_202C_202D_202C_200B_202B_206B_202D_202C_200C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202C_206B_206B_200F_206B_206A_206D_206B_206F_200B_200F_200B_200D_202A_206C_206B_200B_202D_202E_206C_200B_200E_202B_206F_202B_202B_202B_206A_200C_202D_200E_200F_206D_206D_206F_200E_202A_206A_202A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206A_202C_200D_202D_200B_206F_202E_206E_206E_206C_202D_206F_202C_200B_200D_202E_202E_206E_200E_206F_202A_206E_202A_202E_200F_202C_200C_206F_206E_206B_202B_206B_202B_200C_202E_200B_202C_202C_202E_200D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206F_206D_206C_200F_200C_202A_200D_200B_206A_200D_200B_202C_200C_206E_202B_200F_200C_200D_206D_202D_200C_202B_202D_202E_200F_200D_200D_202D_202B_206E_202D_200E_206B_200E_202A_200B_206C_200F_200F_200D_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200B_202A_206B_200B_200F_200C_200F_206D_206F_206A_202A_206A_206A_206C_200F_200B_206A_206B_202A_206A_200B_200C_206F_200C_202A_206E_202A_202D_202C_206E_206B_206A_200D_200B_206A_206C_206D_206A_206A_202A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202E_206B_200E_206B_200B_206C_206D_206F_202E_206E_206B_206C_200E_202A_206A_200C_206F_200C_200E_200F_200D_202B_200F_200C_206E_202E_202C_202C_200C_206E_202D_200D_200C_200C_206C_206C_200E_200B_206A_202C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206B_206C_200D_202B_202C_200B_200C_202D_206C_200E_206D_202D_200E_202A_200E_200D_206A_202D_200F_206A_202C_206F_206B_202C_200E_202A_202C_206D_202A_206C_206C_200B_202D_206C_200D_206F_206B_206D_202D_206E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +internal sealed record NavPathfindResult(List<Vector3> Waypoints, bool HasPartialInfo, bool IsPartial, float EndDistance); diff --git a/Questionable/Questionable.External/NavStatus.cs b/Questionable/Questionable.External/NavStatus.cs index ebb8006..a495e3f 100644 --- a/Questionable/Questionable.External/NavStatus.cs +++ b/Questionable/Questionable.External/NavStatus.cs @@ -1,156 +1,3 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; - namespace Questionable.External; -internal sealed record NavStatus(bool Ready, string State, int TilesBuilt, int TilesTotal, uint TerritoryId) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206E_202E_200F_206E_202E_206B_200E_202C_202B_202A_206E_200E_200C_206A_202E_206D_206E_206D_206A_200F_200F_202E_202A_200D_200C_206D_206C_206A_206A_202C_206C_200F_202A_200C_206E_200D_206E_206E_206E_206A_202E(typeof(NavStatus).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200B_202E_202E_200D_202E_206E_206E_202E_202D_200B_206D_206B_206A_206A_206D_200B_202E_206B_200F_200B_202E_206F_202E_206B_202C_202A_202E_202B_202D_202D_206F_202C_202B_202B_206B_206E_206B_202C_200C_206A_202E(); - _206E_202B_206E_202C_200C_206B_200F_200D_202C_206C_202B_200D_206C_202B_202C_206A_206E_202C_206B_202D_206E_202D_200E_202D_200C_206A_206C_202C_200F_202A_206F_200B_206F_206B_206F_202C_200F_206C_200D_200C_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1175225057)); - _206E_202B_206E_202C_200C_206B_200F_200D_202C_206C_202B_200D_206C_202B_202C_206A_206E_202C_206B_202D_206E_202D_200E_202D_200C_206A_206C_202C_200F_202A_206F_200B_206F_206B_206F_202C_200F_206C_200D_200C_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(556540328)); - int num = ((!PrintMembers(stringBuilder)) ? (-847279882) : (-847279883)); - while (true) - { - int num2 = num; - int num3 = -847279881; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -847279883; - break; - case 1: - _206D_206A_200B_202D_206E_206B_200F_206C_206C_206C_206B_202E_200D_206C_202B_206A_206A_202C_206E_202E_202B_202E_200C_200E_202C_202D_202A_200D_202D_206E_202C_202D_206B_200E_202A_200D_200C_200B_202D_206E_202E(stringBuilder, '}'); - return _202E_202A_202E_206A_206F_202A_206C_200D_206E_202D_206C_206D_202D_206D_200C_206F_200E_202D_202A_202C_202C_202D_202E_206B_200C_200E_206C_202B_200E_202C_206C_200D_200C_200D_202A_200C_202A_206F_202D_206E_202E((object)stringBuilder); - case 2: - _206D_206A_200B_202D_206E_206B_200F_206C_206C_206C_206B_202E_200D_206C_202B_206A_206A_202C_206E_202E_202B_202E_200C_200E_202C_202D_202A_200D_202D_206E_202C_202D_206B_200E_202A_200D_200C_200B_202D_206E_202E(stringBuilder, ' '); - num = -847279882; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206D_202E_200B_200D_200D_202D_206B_202D_202D_206C_206C_200D_200C_200B_206E_206B_202C_206C_202C_206C_200E_202E_206B_202E_206A_200C_202D_206A_202D_206E_202E_200F_202A_206B_202E_202B_200C_202B_200C_202D_202E(); - _206E_202B_206E_202C_200C_206B_200F_200D_202C_206C_202B_200D_206C_202B_202C_206A_206E_202C_206B_202D_206E_202D_200E_202D_200C_206A_206C_202C_200F_202A_206F_200B_206F_206B_206F_202C_200F_206C_200D_200C_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2002356091)); - _206E_202B_206E_202C_200C_206B_200F_200D_202C_206C_202B_200D_206C_202B_202C_206A_206E_202C_206B_202D_206E_202D_200E_202D_200C_206A_206C_202C_200F_202A_206F_200B_206F_206B_206F_202C_200F_206C_200D_200C_202E(builder, Ready.ToString()); - _206E_202B_206E_202C_200C_206B_200F_200D_202C_206C_202B_200D_206C_202B_202C_206A_206E_202C_206B_202D_206E_202D_200E_202D_200C_206A_206C_202C_200F_202A_206F_200B_206F_206B_206F_202C_200F_206C_200D_200C_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1574005385)); - _206D_200E_206D_202C_200F_202A_202B_202E_202A_206D_206B_202C_202A_202D_206A_200E_206A_206D_206F_200D_200C_202E_200D_206C_206D_200F_206A_200B_202E_206F_206A_206A_206F_206B_202B_200C_200B_206A_206F_206A_202E(builder, (object)State); - _206E_202B_206E_202C_200C_206B_200F_200D_202C_206C_202B_200D_206C_202B_202C_206A_206E_202C_206B_202D_206E_202D_200E_202D_200C_206A_206C_202C_200F_202A_206F_200B_206F_206B_206F_202C_200F_206C_200D_200C_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(96629540)); - _206E_202B_206E_202C_200C_206B_200F_200D_202C_206C_202B_200D_206C_202B_202C_206A_206E_202C_206B_202D_206E_202D_200E_202D_200C_206A_206C_202C_200F_202A_206F_200B_206F_206B_206F_202C_200F_206C_200D_200C_202E(builder, TilesBuilt.ToString()); - _206E_202B_206E_202C_200C_206B_200F_200D_202C_206C_202B_200D_206C_202B_202C_206A_206E_202C_206B_202D_206E_202D_200E_202D_200C_206A_206C_202C_200F_202A_206F_200B_206F_206B_206F_202C_200F_206C_200D_200C_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(57838909)); - _206E_202B_206E_202C_200C_206B_200F_200D_202C_206C_202B_200D_206C_202B_202C_206A_206E_202C_206B_202D_206E_202D_200E_202D_200C_206A_206C_202C_200F_202A_206F_200B_206F_206B_206F_202C_200F_206C_200D_200C_202E(builder, TilesTotal.ToString()); - _206E_202B_206E_202C_200C_206B_200F_200D_202C_206C_202B_200D_206C_202B_202C_206A_206E_202C_206B_202D_206E_202D_200E_202D_200C_206A_206C_202C_200F_202A_206F_200B_206F_206B_206F_202C_200F_206C_200D_200C_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(647715754)); - _206E_202B_206E_202C_200C_206B_200F_200D_202C_206C_202B_200D_206C_202B_202C_206A_206E_202C_206B_202D_206E_202D_200E_202D_200C_206A_206C_202C_200F_202A_206F_200B_206F_206B_206F_202C_200F_206C_200D_200C_202E(builder, TerritoryId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(NavStatus? other) - { - int num = (((object)this == other) ? 1329501790 : 1329501785); - while (true) - { - int num2 = num; - int num3 = 1329501787; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 8: - num = ((!EqualityComparer<int>.Default.Equals(TilesTotal, other.TilesTotal)) ? 1329501788 : 1329501787); - break; - case 7: - return false; - case 0: - return EqualityComparer<uint>.Default.Equals(TerritoryId, other.TerritoryId); - case 1: - num = ((!_202A_200D_206D_200C_202A_200B_206A_206B_200D_202B_202C_200D_200E_206C_202A_202A_202E_202C_200F_200E_206F_202D_200D_202C_206B_206C_200E_206C_206E_200D_202B_200E_200C_200F_202B_206E_202B_202A_202A_206D_202E(EqualityContract, other.EqualityContract)) ? 1329501788 : 1329501789); - break; - case 5: - return true; - case 9: - num = ((!EqualityComparer<int>.Default.Equals(TilesBuilt, other.TilesBuilt)) ? 1329501788 : 1329501779); - break; - case 4: - num = 1329501785; - break; - case 6: - num = ((!EqualityComparer<bool>.Default.Equals(Ready, other.Ready)) ? 1329501788 : 1329501784); - break; - case 3: - num = ((!EqualityComparer<string>.Default.Equals(State, other.State)) ? 1329501788 : 1329501778); - break; - case 2: - num = (((object)other == null) ? 1329501788 : 1329501786); - break; - } - } - } - - bool IEquatable<NavStatus>.Equals(NavStatus? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206E_202E_200F_206E_202E_206B_200E_202C_202B_202A_206E_200E_200C_206A_202E_206D_206E_206D_206A_200F_200F_202E_202A_200D_200C_206D_206C_206A_206A_202C_206C_200F_202A_200C_206E_200D_206E_206E_206E_206A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200B_202E_202E_200D_202E_206E_206E_202E_202D_200B_206D_206B_206A_206A_206D_200B_202E_206B_200F_200B_202E_206F_202E_206B_202C_202A_202E_202B_202D_202D_206F_202C_202B_202B_206B_206E_206B_202C_200C_206A_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206E_202B_206E_202C_200C_206B_200F_200D_202C_206C_202B_200D_206C_202B_202C_206A_206E_202C_206B_202D_206E_202D_200E_202D_200C_206A_206C_202C_200F_202A_206F_200B_206F_206B_206F_202C_200F_206C_200D_200C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206D_206A_200B_202D_206E_206B_200F_206C_206C_206C_206B_202E_200D_206C_202B_206A_206A_202C_206E_202E_202B_202E_200C_200E_202C_202D_202A_200D_202D_206E_202C_202D_206B_200E_202A_200D_200C_200B_202D_206E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202E_202A_202E_206A_206F_202A_206C_200D_206E_202D_206C_206D_202D_206D_200C_206F_200E_202D_202A_202C_202C_202D_202E_206B_200C_200E_206C_202B_200E_202C_206C_200D_200C_200D_202A_200C_202A_206F_202D_206E_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206D_202E_200B_200D_200D_202D_206B_202D_202D_206C_206C_200D_200C_200B_206E_206B_202C_206C_202C_206C_200E_202E_206B_202E_206A_200C_202D_206A_202D_206E_202E_200F_202A_206B_202E_202B_200C_202B_200C_202D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206D_200E_206D_202C_200F_202A_202B_202E_202A_206D_206B_202C_202A_202D_206A_200E_206A_206D_206F_200D_200C_202E_200D_206C_206D_200F_206A_200B_202E_206F_206A_206A_206F_206B_202B_200C_200B_206A_206F_206A_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202A_200D_206D_200C_202A_200B_206A_206B_200D_202B_202C_200D_200E_206C_202A_202A_202E_202C_200F_200E_206F_202D_200D_202C_206B_206C_200E_206C_206E_200D_202B_200E_200C_200F_202B_206E_202B_202A_202A_206D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +internal sealed record NavStatus(bool Ready, string State, int TilesBuilt, int TilesTotal, uint TerritoryId); diff --git a/Questionable/Questionable.External/NavmeshIpc.cs b/Questionable/Questionable.External/NavmeshIpc.cs index 6fc6f5c..0f7ffea 100644 --- a/Questionable/Questionable.External/NavmeshIpc.cs +++ b/Questionable/Questionable.External/NavmeshIpc.cs @@ -1,7 +1,5 @@ -using System; using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; using Dalamud.Plugin; @@ -48,31 +46,25 @@ internal sealed class NavmeshIpc public readonly ICallGateSubscriber<bool> NavRebuild; - [MethodImpl(MethodImplOptions.NoInlining)] public Subscribers(IDalamudPluginInterface pluginInterface, Configuration.ENavigationProvider provider) { - string text = ((provider == Configuration.ENavigationProvider.WigglyNavShim) ? global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(400780601) : global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(281533512)); - IsNavReady = pluginInterface.GetIpcSubscriber<bool>(_206A_206C_202A_200E_200F_206C_206B_202C_200B_206C_200B_202A_206D_206D_202A_200B_200E_200F_202D_206D_206A_206D_206A_202E_200B_202D_200C_206C_202D_200C_200C_200B_206B_206B_206F_206C_200D_206F_200E_206B_202E(text, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2043293393))); - NavPathfind = pluginInterface.GetIpcSubscriber<Vector3, Vector3, bool, CancellationToken, Task<List<Vector3>>>(_206A_206C_202A_200E_200F_206C_206B_202C_200B_206C_200B_202A_206D_206D_202A_200B_200E_200F_202D_206D_206A_206D_206A_202E_200B_202D_200C_206C_202D_200C_200C_200B_206B_206B_206F_206C_200D_206F_200E_206B_202E(text, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1869644565))); - NavPathfindWithTolerance = pluginInterface.GetIpcSubscriber<Vector3, Vector3, bool, float, Task<List<Vector3>>>(_206A_206C_202A_200E_200F_206C_206B_202C_200B_206C_200B_202A_206D_206D_202A_200B_200E_200F_202D_206D_206A_206D_206A_202E_200B_202D_200C_206C_202D_200C_200C_200B_206B_206B_206F_206C_200D_206F_200E_206B_202E(text, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1343590681))); - NavPathfindInProgress = pluginInterface.GetIpcSubscriber<bool>(_206A_206C_202A_200E_200F_206C_206B_202C_200B_206C_200B_202A_206D_206D_202A_200B_200E_200F_202D_206D_206A_206D_206A_202E_200B_202D_200C_206C_202D_200C_200C_200B_206B_206B_206F_206C_200D_206F_200E_206B_202E(text, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1113861054))); - NavNumQueuedRequests = pluginInterface.GetIpcSubscriber<int>(_206A_206C_202A_200E_200F_206C_206B_202C_200B_206C_200B_202A_206D_206D_202A_200B_200E_200F_202D_206D_206A_206D_206A_202E_200B_202D_200C_206C_202D_200C_200C_200B_206B_206B_206F_206C_200D_206F_200E_206B_202E(text, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1214172476))); - PathMoveTo = pluginInterface.GetIpcSubscriber<List<Vector3>, bool, object>(_206A_206C_202A_200E_200F_206C_206B_202C_200B_206C_200B_202A_206D_206D_202A_200B_200E_200F_202D_206D_206A_206D_206A_202E_200B_202D_200C_206C_202D_200C_200C_200B_206B_206B_206F_206C_200D_206F_200E_206B_202E(text, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2135724883))); - PathStop = pluginInterface.GetIpcSubscriber<object>(_206A_206C_202A_200E_200F_206C_206B_202C_200B_206C_200B_202A_206D_206D_202A_200B_200E_200F_202D_206D_206A_206D_206A_202E_200B_202D_200C_206C_202D_200C_200C_200B_206B_206B_206F_206C_200D_206F_200E_206B_202E(text, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1489726535))); - PathIsRunning = pluginInterface.GetIpcSubscriber<bool>(_206A_206C_202A_200E_200F_206C_206B_202C_200B_206C_200B_202A_206D_206D_202A_200B_200E_200F_202D_206D_206A_206D_206A_202E_200B_202D_200C_206C_202D_200C_200C_200B_206B_206B_206F_206C_200D_206F_200E_206B_202E(text, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1992325887))); - PathListWaypoints = pluginInterface.GetIpcSubscriber<List<Vector3>>(_206A_206C_202A_200E_200F_206C_206B_202C_200B_206C_200B_202A_206D_206D_202A_200B_200E_200F_202D_206D_206A_206D_206A_202E_200B_202D_200C_206C_202D_200C_200C_200B_206B_206B_206F_206C_200D_206F_200E_206B_202E(text, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1844977859))); - PathSetTolerance = pluginInterface.GetIpcSubscriber<float, object>(_206A_206C_202A_200E_200F_206C_206B_202C_200B_206C_200B_202A_206D_206D_202A_200B_200E_200F_202D_206D_206A_206D_206A_202E_200B_202D_200C_206C_202D_200C_200C_200B_206B_206B_206F_206C_200D_206F_200E_206B_202E(text, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1161845014))); - QueryPointOnFloor = pluginInterface.GetIpcSubscriber<Vector3, bool, float, Vector3?>(_206A_206C_202A_200E_200F_206C_206B_202C_200B_206C_200B_202A_206D_206D_202A_200B_200E_200F_202D_206D_206A_206D_206A_202E_200B_202D_200C_206C_202D_200C_200C_200B_206B_206B_206F_206C_200D_206F_200E_206B_202E(text, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(865017884))); - QueryNearestPoint = pluginInterface.GetIpcSubscriber<Vector3, float, float, Vector3?>(_206A_206C_202A_200E_200F_206C_206B_202C_200B_206C_200B_202A_206D_206D_202A_200B_200E_200F_202D_206D_206A_206D_206A_202E_200B_202D_200C_206C_202D_200C_200C_200B_206B_206B_206F_206C_200D_206F_200E_206B_202E(text, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2130817597))); - QueryNearestPointReachable = pluginInterface.GetIpcSubscriber<Vector3, float, float, Vector3?>(_206A_206C_202A_200E_200F_206C_206B_202C_200B_206C_200B_202A_206D_206D_202A_200B_200E_200F_202D_206D_206A_206D_206A_202E_200B_202D_200C_206C_202D_200C_200C_200B_206B_206B_206F_206C_200D_206F_200E_206B_202E(text, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1867865423))); - BuildProgress = pluginInterface.GetIpcSubscriber<float>(_206A_206C_202A_200E_200F_206C_206B_202C_200B_206C_200B_202A_206D_206D_202A_200B_200E_200F_202D_206D_206A_206D_206A_202E_200B_202D_200C_206C_202D_200C_200C_200B_206B_206B_206F_206C_200D_206F_200E_206B_202E(text, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2132035295))); - NavReload = pluginInterface.GetIpcSubscriber<bool>(_206A_206C_202A_200E_200F_206C_206B_202C_200B_206C_200B_202A_206D_206D_202A_200B_200E_200F_202D_206D_206A_206D_206A_202E_200B_202D_200C_206C_202D_200C_200C_200B_206B_206B_206F_206C_200D_206F_200E_206B_202E(text, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(885142654))); - NavRebuild = pluginInterface.GetIpcSubscriber<bool>(_206A_206C_202A_200E_200F_206C_206B_202C_200B_206C_200B_202A_206D_206D_202A_200B_200E_200F_202D_206D_206A_206D_206A_202E_200B_202D_200C_206C_202D_200C_200C_200B_206B_206B_206F_206C_200D_206F_200E_206B_202E(text, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-819256700))); - } - - static string _206A_206C_202A_200E_200F_206C_206B_202C_200B_206C_200B_202A_206D_206D_202A_200B_200E_200F_202D_206D_206A_206D_206A_202E_200B_202D_200C_206C_202D_200C_200C_200B_206B_206B_206F_206C_200D_206F_200E_206B_202E(string P_0, string P_1) - { - return P_0 + P_1; + string text = ((provider == Configuration.ENavigationProvider.WigglyNavShim) ? "WigglyNav" : "vnavmesh"); + IsNavReady = pluginInterface.GetIpcSubscriber<bool>(text + ".Nav.IsReady"); + NavPathfind = pluginInterface.GetIpcSubscriber<Vector3, Vector3, bool, CancellationToken, Task<List<Vector3>>>(text + ".Nav.PathfindCancelable"); + NavPathfindWithTolerance = pluginInterface.GetIpcSubscriber<Vector3, Vector3, bool, float, Task<List<Vector3>>>(text + ".Nav.PathfindWithTolerance"); + NavPathfindInProgress = pluginInterface.GetIpcSubscriber<bool>(text + ".Nav.PathfindInProgress"); + NavNumQueuedRequests = pluginInterface.GetIpcSubscriber<int>(text + ".Nav.PathfindNumQueued"); + PathMoveTo = pluginInterface.GetIpcSubscriber<List<Vector3>, bool, object>(text + ".Path.MoveTo"); + PathStop = pluginInterface.GetIpcSubscriber<object>(text + ".Path.Stop"); + PathIsRunning = pluginInterface.GetIpcSubscriber<bool>(text + ".Path.IsRunning"); + PathListWaypoints = pluginInterface.GetIpcSubscriber<List<Vector3>>(text + ".Path.ListWaypoints"); + PathSetTolerance = pluginInterface.GetIpcSubscriber<float, object>(text + ".Path.SetTolerance"); + QueryPointOnFloor = pluginInterface.GetIpcSubscriber<Vector3, bool, float, Vector3?>(text + ".Query.Mesh.PointOnFloor"); + QueryNearestPoint = pluginInterface.GetIpcSubscriber<Vector3, float, float, Vector3?>(text + ".Query.Mesh.NearestPoint"); + QueryNearestPointReachable = pluginInterface.GetIpcSubscriber<Vector3, float, float, Vector3?>(text + ".Query.Mesh.NearestPointReachable"); + BuildProgress = pluginInterface.GetIpcSubscriber<float>(text + ".Nav.BuildProgress"); + NavReload = pluginInterface.GetIpcSubscriber<bool>(text + ".Nav.Reload"); + NavRebuild = pluginInterface.GetIpcSubscriber<bool>(text + ".Nav.Rebuild"); } } @@ -100,27 +92,11 @@ internal sealed class NavmeshIpc { get { - int num = ((_configuration.General.NavigationProvider != Configuration.ENavigationProvider.WigglyNav) ? (-1473368197) : (-1473368200)); - while (true) + if (_configuration.General.NavigationProvider == Configuration.ENavigationProvider.WigglyNav) { - int num2 = num; - int num3 = -1473368199; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0053; - case 2: - return false; - case 1: - return _wigglyNavAvailability.IsCompatible; - } - continue; - IL_0053: - num = -1473368200; + return _wigglyNavAvailability.IsCompatible; } + return false; } } @@ -129,26 +105,12 @@ internal sealed class NavmeshIpc get { Configuration.ENavigationProvider navigationProvider = _configuration.General.NavigationProvider; - int num = ((navigationProvider == _activeProvider) ? (-590675720) : (-590675719)); - while (true) + if (navigationProvider != _activeProvider) { - int num2 = num; - int num3 = -590675720; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return _subscribers; - case 1: - _subscribers = new Subscribers(_pluginInterface, navigationProvider); - _activeProvider = navigationProvider; - num = -590675720; - break; - case 2: - num = -590675719; - break; - } + _subscribers = new Subscribers(_pluginInterface, navigationProvider); + _activeProvider = navigationProvider; } + return _subscribers; } } @@ -156,38 +118,22 @@ internal sealed class NavmeshIpc { get { - int num = ((!UseNative) ? 876244421 : 876244422); - while (true) + if (UseNative) { - int num2 = num; - int num3 = 876244423; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0048; - case 1: - return _wigglyNavIpc.IsNavmeshAvailable; - case 2: - try - { - S.IsNavReady.InvokeFunc(); - return true; - } - catch (IpcNotReadyError) - { - return false; - } - catch (IpcError) - { - return true; - } - } - continue; - IL_0048: - num = 876244422; + return _wigglyNavIpc.IsNavmeshAvailable; + } + try + { + S.IsNavReady.InvokeFunc(); + return true; + } + catch (IpcNotReadyError) + { + return false; + } + catch (IpcError) + { + return true; } } } @@ -196,33 +142,17 @@ internal sealed class NavmeshIpc { get { - int num = ((!UseNative) ? (-1348520719) : (-1348520720)); - while (true) + if (UseNative) { - int num2 = num; - int num3 = -1348520719; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0048; - case 1: - return _wigglyNavIpc.IsReady; - case 0: - try - { - return S.IsNavReady.InvokeFunc(); - } - catch (IpcError) - { - return false; - } - } - continue; - IL_0048: - num = -1348520720; + return _wigglyNavIpc.IsReady; + } + try + { + return S.IsNavReady.InvokeFunc(); + } + catch (IpcError) + { + return false; } } } @@ -231,33 +161,17 @@ internal sealed class NavmeshIpc { get { - int num = ((!UseNative) ? (-678709680) : (-678709679)); - while (true) + if (UseNative) { - int num2 = num; - int num3 = -678709680; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0048; - case 1: - return _wigglyNavIpc.IsPathRunning; - case 0: - try - { - return S.PathIsRunning.InvokeFunc(); - } - catch (IpcError) - { - return false; - } - } - continue; - IL_0048: - num = -678709679; + return _wigglyNavIpc.IsPathRunning; + } + try + { + return S.PathIsRunning.InvokeFunc(); + } + catch (IpcError) + { + return false; } } } @@ -266,31 +180,17 @@ internal sealed class NavmeshIpc { get { - int num = ((!UseNative) ? 552109104 : 552109107); - while (true) + if (UseNative) { - int num2 = num; - int num3 = 552109106; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0046; - case 1: - return _wigglyNavIpc.IsPathfindInProgress; - case 2: - try - { - return S.NavPathfindInProgress.InvokeFunc(); - } - catch (IpcError) - { - return false; - } - } - continue; - IL_0046: - num = 552109107; + return _wigglyNavIpc.IsPathfindInProgress; + } + try + { + return S.NavPathfindInProgress.InvokeFunc(); + } + catch (IpcError) + { + return false; } } } @@ -299,36 +199,21 @@ internal sealed class NavmeshIpc { get { - int num = ((!UseNative) ? 1053516825 : 1053516826); - while (true) + if (UseNative) { - int num2 = num; - int num3 = 1053516827; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0046; - case 1: - return _wigglyNavIpc.NumQueuedPathfindRequests; - case 2: - try - { - return S.NavNumQueuedRequests.InvokeFunc(); - } - catch (IpcError) - { - return 0; - } - } - continue; - IL_0046: - num = 1053516826; + return _wigglyNavIpc.NumQueuedPathfindRequests; + } + try + { + return S.NavNumQueuedRequests.InvokeFunc(); + } + catch (IpcError) + { + return 0; } } } - [MethodImpl(MethodImplOptions.NoInlining)] public NavmeshIpc(IDalamudPluginInterface pluginInterface, Configuration configuration, WigglyNavIpc wigglyNavIpc, WigglyNavAvailability wigglyNavAvailability, IChatGui chatGui, ILogger<NavmeshIpc> logger) { _pluginInterface = pluginInterface; @@ -339,7 +224,7 @@ internal sealed class NavmeshIpc _logger = logger; _activeProvider = configuration.General.NavigationProvider; _subscribers = new Subscribers(pluginInterface, _activeProvider); - _vnavmeshStop = pluginInterface.GetIpcSubscriber<object>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1557569534)); + _vnavmeshStop = pluginInterface.GetIpcSubscriber<object>("vnavmesh.Path.Stop"); } internal void StopAll() @@ -354,554 +239,259 @@ internal sealed class NavmeshIpc } } - [MethodImpl(MethodImplOptions.NoInlining)] private void NoticeFallbackToVnavmesh() { - int num = (UseNative ? 1523716478 : 1523716477); - while (true) + if (UseNative || _configuration.General.NavigationProvider != Configuration.ENavigationProvider.WigglyNav) { - int num2 = num; - int num3 = 1523716478; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _fallbackNoticed = false; - return; - case 3: - num = ((_configuration.General.NavigationProvider == Configuration.ENavigationProvider.WigglyNav) ? 1523716479 : 1523716478); - break; - case 1: - num = ((!_fallbackNoticed) ? 1523716475 : 1523716474); - break; - case 4: - return; - case 2: - num = 1523716477; - break; - case 5: - _fallbackNoticed = true; - _200F_206F_200D_206C_202A_206D_206C_202A_202A_200E_200D_206C_206E_206B_206E_200C_206A_200C_200F_206C_200D_202C_202D_206E_200E_206A_206F_206C_206A_200D_200F_202C_206A_202D_206D_206A_206E_200B_202A_206A_202E(_chatGui, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-381498460), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712), (ushort?)(ushort)576); - return; - } + _fallbackNoticed = false; + } + else if (!_fallbackNoticed) + { + _fallbackNoticed = true; + _chatGui.Print("WigglyNav is unavailable - navigation is using vnavmesh until it returns.", "Questionable", 576); } } private async Task<NavPathfindResult> PathfindNative(Vector3 localPlayerPosition, Vector3 targetPosition, bool fly, float tolerance, CancellationToken cancellationToken) { - int num = 1290670332; - ConfiguredTaskAwaitable<PathfindResult>.ConfiguredTaskAwaiter configuredTaskAwaiter = default(ConfiguredTaskAwaitable<PathfindResult>.ConfiguredTaskAwaiter); - ConfiguredTaskAwaitable<PathfindResult>.ConfiguredTaskAwaiter configuredTaskAwaiter2 = default(ConfiguredTaskAwaitable<PathfindResult>.ConfiguredTaskAwaiter); - while (true) - { - int num2 = num; - int num3 = 1290670335; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1290670332; - break; - case 4: - await configuredTaskAwaiter; - num = 1290670334; - break; - case 1: - configuredTaskAwaiter = configuredTaskAwaiter2; - configuredTaskAwaiter2 = default(ConfiguredTaskAwaitable<PathfindResult>.ConfiguredTaskAwaiter); - num = 1290670335; - break; - case 3: - configuredTaskAwaiter = _wigglyNavIpc.Pathfind(localPlayerPosition, targetPosition, fly, tolerance, cancellationToken).ConfigureAwait(continueOnCapturedContext: false).GetAwaiter(); - num = (configuredTaskAwaiter.IsCompleted ? 1290670335 : 1290670331); - break; - case 0: - { - PathfindResult result = configuredTaskAwaiter.GetResult(); - return new NavPathfindResult(result.Waypoints, HasPartialInfo: true, result.IsPartial, result.EndDistance); - } - } - } + PathfindResult pathfindResult = await _wigglyNavIpc.Pathfind(localPlayerPosition, targetPosition, fly, tolerance, cancellationToken).ConfigureAwait(continueOnCapturedContext: false); + return new NavPathfindResult(pathfindResult.Waypoints, HasPartialInfo: true, pathfindResult.IsPartial, pathfindResult.EndDistance); } private static async Task<NavPathfindResult> WrapLegacyPathfind(Task<List<Vector3>> pathfind) { - int num = -802136330; - ConfiguredTaskAwaitable<List<Vector3>>.ConfiguredTaskAwaiter configuredTaskAwaiter = default(ConfiguredTaskAwaitable<List<Vector3>>.ConfiguredTaskAwaiter); - ConfiguredTaskAwaitable<List<Vector3>>.ConfiguredTaskAwaiter configuredTaskAwaiter2 = default(ConfiguredTaskAwaitable<List<Vector3>>.ConfiguredTaskAwaiter); - while (true) - { - int num2 = num; - int num3 = -802136334; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -802136330; - break; - case 2: - await configuredTaskAwaiter; - num = -802136335; - break; - case 3: - configuredTaskAwaiter = configuredTaskAwaiter2; - configuredTaskAwaiter2 = default(ConfiguredTaskAwaitable<List<Vector3>>.ConfiguredTaskAwaiter); - num = -802136333; - break; - case 4: - configuredTaskAwaiter = pathfind.ConfigureAwait(continueOnCapturedContext: false).GetAwaiter(); - num = (configuredTaskAwaiter.IsCompleted ? (-802136333) : (-802136336)); - break; - case 1: - return new NavPathfindResult(configuredTaskAwaiter.GetResult(), HasPartialInfo: false, IsPartial: false, 0f); - } - } + return new NavPathfindResult(await pathfind.ConfigureAwait(continueOnCapturedContext: false), HasPartialInfo: false, IsPartial: false, 0f); } - [MethodImpl(MethodImplOptions.NoInlining)] public void Stop() { - int num = ((!UseNative) ? 1744217165 : 1744217166); - while (true) + if (UseNative) { - int num2 = num; - int num3 = 1744217164; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _wigglyNavIpc.Stop(); + } + else if (IsNavmeshAvailable) + { + try { - case 3: - return; - case 2: - _wigglyNavIpc.Stop(); - return; - case 0: - num = 1744217166; - break; - case 1: - num = (IsNavmeshAvailable ? 1744217160 : 1744217167); - break; - case 4: - try - { - S.PathStop.InvokeAction(); - return; - } - catch (IpcError ipcError) - { - _202D_206A_206A_206E_202E_200C_206D_202C_200B_200E_200F_202B_200D_206B_200C_202B_206C_200D_206E_206C_200F_200D_206A_200B_200C_200B_206F_206B_200F_206E_206B_202C_202E_202B_200D_200D_200E_202C_200D_206B_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1450190224), Array.Empty<object>()); - return; - } + S.PathStop.InvokeAction(); + } + catch (IpcError exception) + { + _logger.LogWarning(exception, "Could not stop navigating via navmesh"); } } } - [MethodImpl(MethodImplOptions.NoInlining)] public void Reload() { - int num = ((!UseNative) ? (-215489094) : (-215489092)); - while (true) + if (UseNative) { - int num2 = num; - int num3 = -215489090; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _wigglyNavIpc.Reload(); + } + else if (IsNavmeshAvailable) + { + try { - case 3: - return; - case 2: - _wigglyNavIpc.Reload(); - return; - case 0: - num = -215489092; - break; - case 4: - num = (IsNavmeshAvailable ? (-215489089) : (-215489091)); - break; - case 1: - try - { - S.NavReload.InvokeFunc(); - return; - } - catch (IpcError ipcError) - { - _202D_206A_206A_206E_202E_200C_206D_202C_200B_200E_200F_202B_200D_206B_200C_202B_206C_200D_206E_206C_200F_200D_206A_200B_200C_200B_206F_206B_200F_206E_206B_202C_202E_202B_200D_200D_200E_202C_200D_206B_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-282340693), Array.Empty<object>()); - return; - } + S.NavReload.InvokeFunc(); + } + catch (IpcError exception) + { + _logger.LogWarning(exception, "Could not reload navmesh"); } } } - [MethodImpl(MethodImplOptions.NoInlining)] public void Rebuild() { - int num = ((!UseNative) ? (-428977095) : (-428977089)); - while (true) + if (UseNative) { - int num2 = num; - int num3 = -428977091; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _wigglyNavIpc.Rebuild(); + } + else if (IsNavmeshAvailable) + { + try { - case 1: - return; - case 4: - num = (IsNavmeshAvailable ? (-428977090) : (-428977092)); - break; - case 2: - _wigglyNavIpc.Rebuild(); - return; - case 0: - num = -428977089; - break; - case 3: - try - { - S.NavRebuild.InvokeFunc(); - return; - } - catch (IpcError ipcError) - { - _202D_206A_206A_206E_202E_200C_206D_202C_200B_200E_200F_202B_200D_206B_200C_202B_206C_200D_206E_206C_200F_200D_206A_200B_200C_200B_206F_206B_200F_206E_206B_202C_202E_202B_200D_200D_200E_202C_200D_206B_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(856449063), Array.Empty<object>()); - return; - } + S.NavRebuild.InvokeFunc(); + } + catch (IpcError exception) + { + _logger.LogWarning(exception, "Could not rebuild navmesh"); } } } - [MethodImpl(MethodImplOptions.NoInlining)] public Task<NavPathfindResult> Pathfind(Vector3 localPlayerPosition, Vector3 targetPosition, bool fly, CancellationToken cancellationToken) { NoticeFallbackToVnavmesh(); - int num = ((!UseNative) ? (-990840737) : (-990840738)); - while (true) + if (UseNative) { - int num2 = num; - int num3 = -990840737; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = -990840738; - break; - case 0: - num = (IsNavmeshAvailable ? (-990840740) : (-990840739)); - break; - case 1: - return PathfindNative(localPlayerPosition, targetPosition, fly, 0f, cancellationToken); - case 2: - return Task.FromResult(EmptyPathfindResult()); - case 3: - try - { - S.PathSetTolerance.InvokeAction(0.25f); - return WrapLegacyPathfind(S.NavPathfind.InvokeFunc(localPlayerPosition, targetPosition, fly, cancellationToken)); - } - catch (IpcError ipcError) - { - _202D_206A_206A_206E_202E_200C_206D_202C_200B_200E_200F_202B_200D_206B_200C_202B_206C_200D_206E_206C_200F_200D_206A_200B_200C_200B_206F_206B_200F_206E_206B_202C_202E_202B_200D_200D_200E_202C_200D_206B_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1378323233), Array.Empty<object>()); - return Task.FromException<NavPathfindResult>(ipcError); - } - } + return PathfindNative(localPlayerPosition, targetPosition, fly, 0f, cancellationToken); + } + if (!IsNavmeshAvailable) + { + return Task.FromResult(EmptyPathfindResult()); + } + try + { + S.PathSetTolerance.InvokeAction(0.25f); + return WrapLegacyPathfind(S.NavPathfind.InvokeFunc(localPlayerPosition, targetPosition, fly, cancellationToken)); + } + catch (IpcError exception) + { + _logger.LogWarning(exception, "Could not pathfind via navmesh"); + return Task.FromException<NavPathfindResult>(exception); } } - [MethodImpl(MethodImplOptions.NoInlining)] public Task<NavPathfindResult> PathfindWithTolerance(Vector3 localPlayerPosition, Vector3 targetPosition, bool fly, float tolerance) { NoticeFallbackToVnavmesh(); - int num = ((!UseNative) ? 104441860 : 104441857); - while (true) + if (UseNative) { - int num2 = num; - int num3 = 104441856; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return Task.FromResult(EmptyPathfindResult()); - case 4: - num = (IsNavmeshAvailable ? 104441856 : 104441859); - break; - case 1: - return PathfindNative(localPlayerPosition, targetPosition, fly, tolerance, CancellationToken.None); - case 2: - num = 104441857; - break; - case 0: - try - { - S.PathSetTolerance.InvokeAction(tolerance); - return WrapLegacyPathfind(S.NavPathfindWithTolerance.InvokeFunc(localPlayerPosition, targetPosition, fly, tolerance)); - } - catch (IpcError ipcError) - { - _202D_206A_206A_206E_202E_200C_206D_202C_200B_200E_200F_202B_200D_206B_200C_202B_206C_200D_206E_206C_200F_200D_206A_200B_200C_200B_206F_206B_200F_206E_206B_202C_202E_202B_200D_200D_200E_202C_200D_206B_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1825421646), Array.Empty<object>()); - return Task.FromException<NavPathfindResult>(ipcError); - } - } + return PathfindNative(localPlayerPosition, targetPosition, fly, tolerance, CancellationToken.None); + } + if (!IsNavmeshAvailable) + { + return Task.FromResult(EmptyPathfindResult()); + } + try + { + S.PathSetTolerance.InvokeAction(tolerance); + return WrapLegacyPathfind(S.NavPathfindWithTolerance.InvokeFunc(localPlayerPosition, targetPosition, fly, tolerance)); + } + catch (IpcError exception) + { + _logger.LogWarning(exception, "Could not pathfind with tolerance via navmesh"); + return Task.FromException<NavPathfindResult>(exception); } } - [MethodImpl(MethodImplOptions.NoInlining)] public void MoveTo(List<Vector3> position, bool fly, float arrivalTolerance) { NoticeFallbackToVnavmesh(); - int num = ((!UseNative) ? (-101859239) : (-101859237)); - while (true) + if (UseNative) { - int num2 = num; - int num3 = -101859238; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (!_wigglyNavIpc.MoveTo(position, fly, arrivalTolerance)) { - case 6: - return; - case 3: - num = (IsNavmeshAvailable ? (-101859233) : (-101859234)); - break; - case 0: - num = -101859237; - break; - case 4: - return; - case 1: - num = (_wigglyNavIpc.MoveTo(position, fly, arrivalTolerance) ? (-101859236) : (-101859240)); - break; - case 2: - _200E_200D_206A_206C_202A_202E_206D_202D_206B_200E_206B_200E_200F_206E_200C_200C_206D_206D_206B_200C_200C_206B_200C_200B_206D_202A_200D_200E_200C_206F_206E_206F_206B_202E_206C_200B_202B_200C_200E_206C_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1935526843), Array.Empty<object>()); - num = -101859236; - break; - case 5: - Stop(); - try - { - S.PathMoveTo.InvokeAction(position, fly); - return; - } - catch (IpcError ipcError) - { - _202D_206A_206A_206E_202E_200C_206D_202C_200B_200E_200F_202B_200D_206B_200C_202B_206C_200D_206E_206C_200F_200D_206A_200B_200C_200B_206F_206B_200F_206E_206B_202C_202E_202B_200D_200D_200E_202C_200D_206B_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-45410338), Array.Empty<object>()); - return; - } + _logger.LogWarning("Could not move via WigglyNav, the command was refused"); + } + } + else if (IsNavmeshAvailable) + { + Stop(); + try + { + S.PathMoveTo.InvokeAction(position, fly); + } + catch (IpcError exception) + { + _logger.LogWarning(exception, "Could not move via navmesh"); } } } public Vector3? GetPointOnFloor(Vector3 position, bool unlandable) { - int num = ((!UseNative) ? (-1834554284) : (-1834554281)); - while (true) + if (UseNative) { - int num2 = num; - int num3 = -1834554283; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 2: - return _wigglyNavIpc.GetPointOnFloor(position, unlandable, 0.2f); - case 1: - try - { - return S.QueryPointOnFloor.InvokeFunc(position, unlandable, 0.2f); - } - catch (IpcError) - { - return null; - } - } - continue; - IL_0049: - num = -1834554281; + return _wigglyNavIpc.GetPointOnFloor(position, unlandable, 0.2f); + } + try + { + return S.QueryPointOnFloor.InvokeFunc(position, unlandable, 0.2f); + } + catch (IpcError) + { + return null; } } public Vector3? GetPointOnFloor(Vector3 position, bool unlandable, float halfExtentXZ) { - int num = ((!UseNative) ? 1192134162 : 1192134163); - while (true) + if (UseNative) { - int num2 = num; - int num3 = 1192134162; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0049; - case 1: - return _wigglyNavIpc.GetPointOnFloor(position, unlandable, halfExtentXZ); - case 0: - try - { - return S.QueryPointOnFloor.InvokeFunc(position, unlandable, halfExtentXZ); - } - catch (IpcError) - { - return null; - } - } - continue; - IL_0049: - num = 1192134163; + return _wigglyNavIpc.GetPointOnFloor(position, unlandable, halfExtentXZ); + } + try + { + return S.QueryPointOnFloor.InvokeFunc(position, unlandable, halfExtentXZ); + } + catch (IpcError) + { + return null; } } public Vector3? FindNearestMeshPoint(Vector3 position, float halfExtentXZ, float halfExtentY) { - int num = ((!UseNative) ? 564309347 : 564309346); - while (true) + if (UseNative) { - int num2 = num; - int num3 = 564309347; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_004b; - case 1: - return _wigglyNavIpc.FindNearestMeshPoint(position, halfExtentXZ, halfExtentY); - case 0: - try - { - return S.QueryNearestPoint.InvokeFunc(position, halfExtentXZ, halfExtentY); - } - catch (IpcError) - { - return null; - } - } - continue; - IL_004b: - num = 564309346; + return _wigglyNavIpc.FindNearestMeshPoint(position, halfExtentXZ, halfExtentY); + } + try + { + return S.QueryNearestPoint.InvokeFunc(position, halfExtentXZ, halfExtentY); + } + catch (IpcError) + { + return null; } } public Vector3? FindNearestReachableMeshPoint(Vector3 position, float halfExtentXZ, float halfExtentY) { - int num = ((!UseNative) ? 1954017115 : 1954017114); - while (true) + if (UseNative) { - int num2 = num; - int num3 = 1954017115; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0049; - case 1: - return _wigglyNavIpc.FindNearestReachableMeshPoint(position, halfExtentXZ, halfExtentY); - case 0: - try - { - return S.QueryNearestPointReachable.InvokeFunc(position, halfExtentXZ, halfExtentY); - } - catch (IpcError) - { - return null; - } - } - continue; - IL_0049: - num = 1954017114; + return _wigglyNavIpc.FindNearestReachableMeshPoint(position, halfExtentXZ, halfExtentY); + } + try + { + return S.QueryNearestPointReachable.InvokeFunc(position, halfExtentXZ, halfExtentY); + } + catch (IpcError) + { + return null; } } public List<Vector3> GetWaypoints() { - int num = ((!UseNative) ? 59476464 : 59476467); - while (true) + if (UseNative) { - int num2 = num; - int num3 = 59476466; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return _wigglyNavIpc.GetWaypoints(); + } + if (IsPathRunning) + { + try + { + return S.PathListWaypoints.InvokeFunc(); + } + catch (IpcError) { - case 0: - goto IL_0048; - case 1: - return _wigglyNavIpc.GetWaypoints(); - case 2: - if (IsPathRunning) - { - try - { - return S.PathListWaypoints.InvokeFunc(); - } - catch (IpcError) - { - return new List<Vector3>(); - } - } return new List<Vector3>(); } - continue; - IL_0048: - num = 59476467; } + return new List<Vector3>(); } public int GetBuildProgress() { - int num = ((!UseNative) ? 1484625177 : 1484625178); - while (true) + if (UseNative) { - int num2 = num; - int num3 = 1484625179; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return _wigglyNavIpc.GetBuildProgress(); + } + try + { + float num = S.BuildProgress.InvokeFunc(); + if (num < 0f) { - case 0: - goto IL_004b; - case 1: - return _wigglyNavIpc.GetBuildProgress(); - case 2: - try - { - float num7 = S.BuildProgress.InvokeFunc(); - num = ((!(num7 < 0f)) ? 405562124 : 405562127); - while (true) - { - int num8 = num; - num3 = 405562125; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 0: - goto IL_00bf; - case 2: - return 100; - case 1: - return (int)(num7 * 100f); - } - continue; - IL_00bf: - num = 405562127; - } - } - catch (IpcError) - { - return 0; - } + return 100; } - continue; - IL_004b: - num = 1484625178; + return (int)(num * 100f); + } + catch (IpcError) + { + return 0; } } @@ -909,19 +499,4 @@ internal sealed class NavmeshIpc { return new NavPathfindResult(new List<Vector3>(), HasPartialInfo: false, IsPartial: false, 0f); } - - static void _200F_206F_200D_206C_202A_206D_206C_202A_202A_200E_200D_206C_206E_206B_206E_200C_206A_200C_200F_206C_200D_202C_202D_206E_200E_206A_206F_206C_206A_200D_200F_202C_206A_202D_206D_206A_206E_200B_202A_206A_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); - } - - static void _202D_206A_206A_206E_202E_200C_206D_202C_200B_200E_200F_202B_200D_206B_200C_202B_206C_200D_206E_206C_200F_200D_206A_200B_200C_200B_206F_206B_200F_206E_206B_202C_202E_202B_200D_200D_200E_202C_200D_206B_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogWarning(P_1, P_2, P_3); - } - - static void _200E_200D_206A_206C_202A_202E_206D_202D_206B_200E_206B_200E_200F_206E_200C_200C_206D_206D_206B_200C_200C_206B_200C_200B_206D_202A_200D_200E_200C_206F_206E_206F_206B_202E_206C_200B_202B_200C_200E_206C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } } diff --git a/Questionable/Questionable.External/PandorasBoxIpc.cs b/Questionable/Questionable.External/PandorasBoxIpc.cs index eb162d2..669e8b1 100644 --- a/Questionable/Questionable.External/PandorasBoxIpc.cs +++ b/Questionable/Questionable.External/PandorasBoxIpc.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Collections.Immutable; -using System.Runtime.CompilerServices; using Dalamud.Plugin; using Dalamud.Plugin.Services; using LLib.External; @@ -15,30 +14,9 @@ internal sealed class PandorasBoxIpc : IDisposable { internal static readonly ImmutableHashSet<string> ConflictingFeatures = new HashSet<string> { - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1616111798), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1357410567), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1401269692), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1855030583), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1419570559), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(149571058), - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(918765153), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(324148354), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1441534502), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1342775702), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(917802614), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-923476706), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1001272448), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1171663763), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(213726178), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1137319472), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1873399642), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1676513025), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-53557543), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1318853520), - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1902156422), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2045136826), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(603380574), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-941639504) + "Auto-Collect", "Auto-Cordial", "Auto-Meditation", "Auto-Motif (Out of Combat)", "Auto-Mount After Combat", "Auto-Mount after Gathering", "Auto-Mount on Zone Change", "Auto-Peleton", "Auto-Prospect/Triangulate", "Auto-Sprint in Sanctuaries", + "Auto-Summon Chocobo", "Auto-Summon Fairy/Carbuncle", "Auto-Tank Stance", "Action Combat Targeting", "Auto-interact with Gathering Nodes", "Auto-interact with Objects in Instances", "Automatically Open Chests", "FATE Targeting Mode", "Auto-Teleport to Map Coords", "Auto-select Turn-ins", + "Auto-Equip Recommended Gear", "Auto-Sync FATEs", "Pandora Quick Gather", "Switch Gatherers Automatically" }.ToImmutableHashSet(); internal const string AutoActiveTimeManeuverFeature = "Auto Active Time Maneuver"; @@ -65,7 +43,6 @@ internal sealed class PandorasBoxIpc : IDisposable private bool _wasFateRunning; - [MethodImpl(MethodImplOptions.NoInlining)] public PandorasBoxIpc(Configuration configuration, IDalamudPluginInterface pluginInterface, QuestController questController, FateController fateController, SeasonalDutyController seasonalDutyController, CustomDeliveryController customDeliveryController, TerritoryData territoryData, IClientState clientState, IFramework framework, ILogger<PandorasBoxIpc> logger) { _configuration = configuration; @@ -77,204 +54,69 @@ internal sealed class PandorasBoxIpc : IDisposable _clientState = clientState; _framework = framework; _logger = logger; - _pauser = _202D_202B_202E_200B_206D_200B_206E_206F_206A_202A_200B_206B_206C_206B_206F_206D_200C_200D_206E_202A_200C_200D_202A_202A_200B_200D_200C_200C_206C_206F_202C_202B_200D_206A_206F_200C_206A_202C_200F_206C_202E(pluginInterface, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1668439260), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-816671911), (ILogger)logger); + _pauser = new PluginFeaturePauser(pluginInterface, "PandorasBox.GetFeatureEnabled", "PandorasBox.SetFeatureEnabled", logger); _questController.AutomationTypeChanged += OnAutomationTypeChanged; - _206B_206D_202C_206A_202A_200B_202D_200D_202E_200D_206E_202B_200E_200E_206D_206C_202E_200C_202C_202E_206E_206A_200F_206D_206D_200C_206C_206B_200F_206C_200B_200C_200F_206A_200C_202A_200F_200D_200C_202A_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkUpdate); + _framework.Update += OnFrameworkUpdate; } private void OnAutomationTypeChanged(object sender, QuestController.EAutomationType automationType) { - int num = ((automationType == QuestController.EAutomationType.Manual) ? (-1872452755) : (-1872452756)); - while (true) + if (automationType != QuestController.EAutomationType.Manual && !_territoryData.IsDutyInstance(_clientState.TerritoryType)) { - int num2 = num; - int num3 = -1872452753; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + InvokeGuarded(DisableConflictingFeatures); + } + else if (!_fateController.IsRunning && !_seasonalDutyController.IsRunning && !_customDeliveryController.IsRunning) + { + InvokeGuarded(delegate { - case 6: - num = -1872452756; - break; - case 2: - num = (_fateController.IsRunning ? (-1872452754) : (-1872452760)); - break; - case 5: - InvokeGuarded(DisableConflictingFeatures); - return; - case 7: - num = (_seasonalDutyController.IsRunning ? (-1872452754) : (-1872452757)); - break; - case 1: - return; - case 4: - num = (_customDeliveryController.IsRunning ? (-1872452754) : (-1872452753)); - break; - case 0: - InvokeGuarded(delegate - { - _206D_206C_200B_202A_200F_206B_202E_200B_200F_200D_200F_202C_206B_206D_202B_202E_206E_200B_200E_206D_202B_206B_206C_200C_202A_206A_202C_200C_200D_202C_206D_200D_202C_206C_206C_206F_202C_202D_200D_202B_202E(_pauser); - }); - num = -1872452754; - break; - case 3: - num = (_territoryData.IsDutyInstance(_200E_202A_200D_200B_200E_206D_202B_206C_200E_206E_202A_206C_202E_206A_202B_206E_200D_200B_206D_206F_206B_200E_206D_206F_202B_202B_202E_206C_202C_206D_206E_206B_200F_206A_200D_202E_200D_200D_202E_200F_202E(_clientState)) ? (-1872452755) : (-1872452758)); - break; - } + _pauser.Restore(); + }); } } private void OnFrameworkUpdate(IFramework framework) { - int num = (_fateController.IsRunning ? (-793436018) : (-793436032)); - bool flag = default(bool); - while (true) + bool flag = _fateController.IsRunning || _seasonalDutyController.IsRunning || _customDeliveryController.IsRunning; + if (flag == _wasFateRunning) { - int num2 = num; - int num3 = -793436025; - int num4 = num2; - int num5; - switch ((num4 | num3) - (num4 & num3)) + return; + } + _wasFateRunning = flag; + if (flag && !_territoryData.IsDutyInstance(_clientState.TerritoryType)) + { + InvokeGuarded(DisableConflictingFeatures); + } + else if (_questController.AutomationType == QuestController.EAutomationType.Manual) + { + InvokeGuarded(delegate { - case 0: - return; - case 9: - num5 = 1; - goto IL_006d; - case 6: - num = ((_questController.AutomationType != QuestController.EAutomationType.Manual) ? (-793436019) : (-793436027)); - break; - case 1: - InvokeGuarded(DisableConflictingFeatures); - return; - case 5: - num = -793436032; - break; - case 10: - return; - case 3: - num = (_territoryData.IsDutyInstance(_200E_202A_200D_200B_200E_206D_202B_206C_200E_206E_202A_206C_202E_206A_202B_206E_200D_200B_206D_206F_206B_200E_206D_206F_202B_202B_202E_206C_202C_206D_206E_206B_200F_206A_200D_202E_200D_200D_202E_200F_202E(_clientState)) ? (-793436031) : (-793436026)); - break; - case 2: - InvokeGuarded(delegate - { - _206D_206C_200B_202A_200F_206B_202E_200B_200F_200D_200F_202C_206B_206D_202B_202E_206E_200B_200E_206D_202B_206B_206C_200C_202A_206A_202C_200C_200D_202C_206D_200D_202C_206C_206C_206F_202C_202D_200D_202B_202E(_pauser); - }); - num = -793436019; - break; - case 8: - num5 = (_customDeliveryController.IsRunning ? 1 : 0); - goto IL_006d; - case 4: - _wasFateRunning = flag; - num = ((!flag) ? (-793436031) : (-793436028)); - break; - case 7: - { - num = (_seasonalDutyController.IsRunning ? (-793436018) : (-793436017)); - break; - } - IL_006d: - flag = (byte)num5 != 0; - num = ((flag != _wasFateRunning) ? (-793436029) : (-793436025)); - break; - } + _pauser.Restore(); + }); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void InvokeGuarded(Action action) { try { action(); } - catch (Exception ex) + catch (Exception exception) { - _206D_202E_202B_202D_202A_200D_200E_200F_202D_202A_206B_202E_200C_206A_202B_200E_206E_200B_202C_202E_206E_200E_202A_206E_206C_200F_200F_206A_200D_200D_202A_200B_206E_200C_206F_200F_200E_200D_206E_202E_202E((ILogger)_logger, ex, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-818958467), Array.Empty<object>()); + _logger.LogError(exception, "PandorasBox IPC call failed"); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DisableConflictingFeatures() { - int num = (_configuration.General.AutoSolveQte ? 851339859 : 851339856); - ImmutableHashSet<string> immutableHashSet; - while (true) - { - int num2 = num; - int num3 = 851339857; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 2: - immutableHashSet = ConflictingFeatures.Add(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1787972166)); - break; - case 1: - immutableHashSet = ConflictingFeatures; - break; - case 0: - goto IL_009c; - } - break; - IL_009c: - num = 851339856; - } - ImmutableHashSet<string> immutableHashSet2 = immutableHashSet; - _206A_200F_206A_200D_206B_200D_202B_202E_202E_206A_202D_202B_200B_202A_200C_202E_200E_202C_206E_206B_200F_202E_202B_206E_206F_200F_200C_202D_206E_200D_202D_202B_206F_206C_202C_202B_206F_200C_206B_206B_202E(_pauser, (IEnumerable<string>)immutableHashSet2.Except(_configuration.Advanced.PandoraFeatureExclusions)); + ImmutableHashSet<string> immutableHashSet = (_configuration.General.AutoSolveQte ? ConflictingFeatures.Add("Auto Active Time Maneuver") : ConflictingFeatures); + _pauser.Disable(immutableHashSet.Except(_configuration.Advanced.PandoraFeatureExclusions)); } public void Dispose() { - _200C_202A_200E_200E_206A_202C_202B_206F_202A_206C_200F_200F_200B_202C_206C_200F_206A_202B_200F_200E_206C_206B_206C_206F_206F_202C_200D_202D_202E_202A_202C_202D_202C_206D_200E_200B_202D_206F_202C_202E_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkUpdate); + _framework.Update -= OnFrameworkUpdate; _questController.AutomationTypeChanged -= OnAutomationTypeChanged; - _200E_206E_200B_206C_206E_206C_206E_202C_206F_202E_206D_200B_200C_206B_202B_200E_200C_200E_206A_202C_202C_200D_206C_200B_206F_206E_200C_206D_202E_202E_200E_200E_206E_200D_202D_206D_202B_200D_202B_202A_202E(_pauser); - } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static PluginFeaturePauser _202D_202B_202E_200B_206D_200B_206E_206F_206A_202A_200B_206B_206C_206B_206F_206D_200C_200D_206E_202A_200C_200D_202A_202A_200B_200D_200C_200C_206C_206F_202C_202B_200D_206A_206F_200C_206A_202C_200F_206C_202E(IDalamudPluginInterface P_0, string P_1, string P_2, ILogger P_3) - { - return new PluginFeaturePauser(P_0, P_1, P_2, P_3); - } - - static void _206B_206D_202C_206A_202A_200B_202D_200D_202E_200D_206E_202B_200E_200E_206D_206C_202E_200C_202C_202E_206E_206A_200F_206D_206D_200C_206C_206B_200F_206C_200B_200C_200F_206A_200C_202A_200F_200D_200C_202A_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update += P_1; - } - - static uint _200E_202A_200D_200B_200E_206D_202B_206C_200E_206E_202A_206C_202E_206A_202B_206E_200D_200B_206D_206F_206B_200E_206D_206F_202B_202B_202E_206C_202C_206D_206E_206B_200F_206A_200D_202E_200D_200D_202E_200F_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static void _206D_202E_202B_202D_202A_200D_200E_200F_202D_202A_206B_202E_200C_206A_202B_200E_206E_200B_202C_202E_206E_200E_202A_206E_206C_200F_200F_206A_200D_200D_202A_200B_206E_200C_206F_200F_200E_200D_206E_202E_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - - static void _206A_200F_206A_200D_206B_200D_202B_202E_202E_206A_202D_202B_200B_202A_200C_202E_200E_202C_206E_206B_200F_202E_202B_206E_206F_200F_200C_202D_206E_200D_202D_202B_206F_206C_202C_202B_206F_200C_206B_206B_202E(PluginFeaturePauser P_0, IEnumerable<string> P_1) - { - P_0.Disable(P_1); - } - - static void _200C_202A_200E_200E_206A_202C_202B_206F_202A_206C_200F_200F_200B_202C_206C_200F_206A_202B_200F_200E_206C_206B_206C_206F_206F_202C_200D_202D_202E_202A_202C_202D_202C_206D_200E_200B_202D_206F_202C_202E_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update -= P_1; - } - - static void _200E_206E_200B_206C_206E_206C_206E_202C_206F_202E_206D_200B_200C_206B_202B_200E_200C_200E_206A_202C_202C_200D_206C_200B_206F_206E_200C_206D_202E_202E_200E_200E_206E_200D_202D_206D_202B_200D_202B_202A_202E(PluginFeaturePauser P_0) - { - P_0.Dispose(); - } - - static void _206D_206C_200B_202A_200F_206B_202E_200B_200F_200D_200F_202C_206B_206D_202B_202E_206E_200B_200E_206D_202B_206B_206C_200C_202A_206A_202C_200C_200D_202C_206D_200D_202C_206C_206C_206F_202C_202D_200D_202B_202E(PluginFeaturePauser P_0) - { - P_0.Restore(); + _pauser.Dispose(); } } diff --git a/Questionable/Questionable.External/PathfindQuery.cs b/Questionable/Questionable.External/PathfindQuery.cs index 4cbb6dc..e4a19ba 100644 --- a/Questionable/Questionable.External/PathfindQuery.cs +++ b/Questionable/Questionable.External/PathfindQuery.cs @@ -1,147 +1,5 @@ -using System; -using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; namespace Questionable.External; -internal sealed record PathfindQuery(Vector3 From, Vector3 To, bool Fly, float Tolerance) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202B_200C_200B_200D_200B_206F_206F_206F_202C_200D_200B_206D_206D_200C_200E_202D_200B_202C_202D_206D_202E_200F_200E_200C_200D_202E_206A_200C_202C_206C_202E_206C_202C_206B_206F_200E_200E_202D_206F_202D_202E(typeof(PathfindQuery).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202A_206C_206E_200C_202E_202A_200E_206A_206B_200D_202D_202B_206F_202D_202E_202D_202A_206D_202E_202B_200D_202A_206D_206E_202C_200B_200D_206A_200B_206F_200D_206F_202C_206E_200D_200C_206B_206C_200C_200F_202E(); - _206B_200F_200F_200E_202B_200C_200D_206B_206A_200B_206B_200F_202B_202B_200E_200F_206B_200B_206B_206A_202E_206A_200D_200B_202C_206D_206B_206F_202C_206B_200F_206F_206F_206A_206D_206C_206C_202C_206F_200F_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-545098859)); - _206B_200F_200F_200E_202B_200C_200D_206B_206A_200B_206B_200F_202B_202B_200E_200F_206B_200B_206B_206A_202E_206A_200D_200B_202C_206D_206B_206F_202C_206B_200F_206F_206F_206A_206D_206C_206C_202C_206F_200F_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1344697862)); - int num = ((!PrintMembers(stringBuilder)) ? 1387886851 : 1387886850); - while (true) - { - int num2 = num; - int num3 = 1387886851; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - _202A_202B_202D_202E_200D_202A_202B_206A_206F_206D_202D_202C_206F_206F_206E_202B_202D_206A_206F_200F_202A_200B_206C_200F_202C_202A_202B_206D_206F_200C_206D_206C_202C_200E_206C_202D_200C_206A_206F_202B_202E(stringBuilder, '}'); - return _206C_202D_202B_200D_200E_200C_202C_202A_206F_202A_200C_206B_200E_206D_206E_206A_206F_206F_206E_206C_202E_200E_206E_206E_206A_202E_200D_206C_202D_200C_206A_202B_206E_200E_206B_206C_206B_206D_206F_200F_202E((object)stringBuilder); - case 1: - _202A_202B_202D_202E_200D_202A_202B_206A_206F_206D_202D_202C_206F_206F_206E_202B_202D_206A_206F_200F_202A_200B_206C_200F_202C_202A_202B_206D_206F_200C_206D_206C_202C_200E_206C_202D_200C_206A_206F_202B_202E(stringBuilder, ' '); - num = 1387886851; - break; - case 2: - num = 1387886850; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206A_206C_200E_206B_202E_200E_202E_206B_206B_202B_202E_200D_202A_202B_206E_206E_200F_206B_202A_202D_200D_202B_206E_200F_206A_202B_206B_206E_202E_206B_206C_200D_206A_206F_202B_200F_202B_202B_202C_202E(); - _206B_200F_200F_200E_202B_200C_200D_206B_206A_200B_206B_200F_202B_202B_200E_200F_206B_200B_206B_206A_202E_206A_200D_200B_202C_206D_206B_206F_202C_206B_200F_206F_206F_206A_206D_206C_206C_202C_206F_200F_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1869557730)); - _206B_200F_200F_200E_202B_200C_200D_206B_206A_200B_206B_200F_202B_202B_200E_200F_206B_200B_206B_206A_202E_206A_200D_200B_202C_206D_206B_206F_202C_206B_200F_206F_206F_206A_206D_206C_206C_202C_206F_200F_202E(builder, From.ToString()); - _206B_200F_200F_200E_202B_200C_200D_206B_206A_200B_206B_200F_202B_202B_200E_200F_206B_200B_206B_206A_202E_206A_200D_200B_202C_206D_206B_206F_202C_206B_200F_206F_206F_206A_206D_206C_206C_202C_206F_200F_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2060111796)); - _206B_200F_200F_200E_202B_200C_200D_206B_206A_200B_206B_200F_202B_202B_200E_200F_206B_200B_206B_206A_202E_206A_200D_200B_202C_206D_206B_206F_202C_206B_200F_206F_206F_206A_206D_206C_206C_202C_206F_200F_202E(builder, To.ToString()); - _206B_200F_200F_200E_202B_200C_200D_206B_206A_200B_206B_200F_202B_202B_200E_200F_206B_200B_206B_206A_202E_206A_200D_200B_202C_206D_206B_206F_202C_206B_200F_206F_206F_206A_206D_206C_206C_202C_206F_200F_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1534687079)); - _206B_200F_200F_200E_202B_200C_200D_206B_206A_200B_206B_200F_202B_202B_200E_200F_206B_200B_206B_206A_202E_206A_200D_200B_202C_206D_206B_206F_202C_206B_200F_206F_206F_206A_206D_206C_206C_202C_206F_200F_202E(builder, Fly.ToString()); - _206B_200F_200F_200E_202B_200C_200D_206B_206A_200B_206B_200F_202B_202B_200E_200F_206B_200B_206B_206A_202E_206A_200D_200B_202C_206D_206B_206F_202C_206B_200F_206F_206F_206A_206D_206C_206C_202C_206F_200F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1260288266)); - _206B_200F_200F_200E_202B_200C_200D_206B_206A_200B_206B_200F_202B_202B_200E_200F_206B_200B_206B_206A_202E_206A_200D_200B_202C_206D_206B_206F_202C_206B_200F_206F_206F_206A_206D_206C_206C_202C_206F_200F_202E(builder, Tolerance.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(PathfindQuery? other) - { - int num = (((object)this == other) ? 1954014884 : 1954014889); - while (true) - { - int num2 = num; - int num3 = 1954014892; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = ((!EqualityComparer<bool>.Default.Equals(Fly, other.Fly)) ? 1954014894 : 1954014892); - break; - case 7: - num = ((!EqualityComparer<Vector3>.Default.Equals(From, other.From)) ? 1954014894 : 1954014893); - break; - case 5: - num = (((object)other == null) ? 1954014894 : 1954014890); - break; - case 6: - num = ((!_200D_206F_202A_200E_206F_206B_200D_202E_206D_200F_206C_200D_206C_202B_206D_206F_200B_200B_200D_200E_206C_206D_202B_200D_202E_206A_200C_200F_202E_202D_202C_206F_200C_206F_206C_206B_206C_200C_206F_206E_202E(EqualityContract, other.EqualityContract)) ? 1954014894 : 1954014891); - break; - case 8: - return true; - case 1: - num = ((!EqualityComparer<Vector3>.Default.Equals(To, other.To)) ? 1954014894 : 1954014888); - break; - case 0: - return EqualityComparer<float>.Default.Equals(Tolerance, other.Tolerance); - case 2: - return false; - case 3: - num = 1954014889; - break; - } - } - } - - bool IEquatable<PathfindQuery>.Equals(PathfindQuery? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202B_200C_200B_200D_200B_206F_206F_206F_202C_200D_200B_206D_206D_200C_200E_202D_200B_202C_202D_206D_202E_200F_200E_200C_200D_202E_206A_200C_202C_206C_202E_206C_202C_206B_206F_200E_200E_202D_206F_202D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202A_206C_206E_200C_202E_202A_200E_206A_206B_200D_202D_202B_206F_202D_202E_202D_202A_206D_202E_202B_200D_202A_206D_206E_202C_200B_200D_206A_200B_206F_200D_206F_202C_206E_200D_200C_206B_206C_200C_200F_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206B_200F_200F_200E_202B_200C_200D_206B_206A_200B_206B_200F_202B_202B_200E_200F_206B_200B_206B_206A_202E_206A_200D_200B_202C_206D_206B_206F_202C_206B_200F_206F_206F_206A_206D_206C_206C_202C_206F_200F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202A_202B_202D_202E_200D_202A_202B_206A_206F_206D_202D_202C_206F_206F_206E_202B_202D_206A_206F_200F_202A_200B_206C_200F_202C_202A_202B_206D_206F_200C_206D_206C_202C_200E_206C_202D_200C_206A_206F_202B_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206C_202D_202B_200D_200E_200C_202C_202A_206F_202A_200C_206B_200E_206D_206E_206A_206F_206F_206E_206C_202E_200E_206E_206E_206A_202E_200D_206C_202D_200C_206A_202B_206E_200E_206B_206C_206B_206D_206F_200F_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206A_206C_200E_206B_202E_200E_202E_206B_206B_202B_202E_200D_202A_202B_206E_206E_200F_206B_202A_202D_200D_202B_206E_200F_206A_202B_206B_206E_202E_206B_206C_200D_206A_206F_202B_200F_202B_202B_202C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _200D_206F_202A_200E_206F_206B_200D_202E_206D_200F_206C_200D_206C_202B_206D_206F_200B_200B_200D_200E_206C_206D_202B_200D_202E_206A_200C_200F_202E_202D_202C_206F_200C_206F_206C_206B_206C_200C_206F_206E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +internal sealed record PathfindQuery(Vector3 From, Vector3 To, bool Fly, float Tolerance); diff --git a/Questionable/Questionable.External/PathfindResult.cs b/Questionable/Questionable.External/PathfindResult.cs index e3b1b49..a426bbf 100644 --- a/Questionable/Questionable.External/PathfindResult.cs +++ b/Questionable/Questionable.External/PathfindResult.cs @@ -1,152 +1,6 @@ -using System; using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; namespace Questionable.External; -internal sealed record PathfindResult(List<Vector3> Waypoints, bool IsPartial, string PartialReason, float EndDistance) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206C_202A_206F_202D_202D_206E_202C_200E_200C_202E_200C_206B_202B_202B_206A_206D_206A_202D_206D_206C_202C_206B_202D_202D_200D_206C_202A_200F_202C_206D_206D_200B_206C_206E_202C_206E_206E_206E_206B_206E_202E(typeof(PathfindResult).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202D_206F_202B_202D_202C_202A_206A_206D_202B_206A_206C_200F_200C_202D_200C_200E_206F_206C_206D_206C_206D_200F_202A_206E_206F_202C_202C_206B_206F_202B_206A_200F_206C_202D_206A_200B_206A_202B_200F_200C_202E(); - _206C_206B_202D_202A_200F_202B_200D_200B_200D_202D_206F_206D_206E_200D_202B_206B_206D_206F_202A_202B_202D_200B_200C_206B_200F_200B_202E_206F_206B_200B_202D_202A_206F_206A_202A_202C_202D_206B_202A_202A_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1943456613)); - _206C_206B_202D_202A_200F_202B_200D_200B_200D_202D_206F_206D_206E_200D_202B_206B_206D_206F_202A_202B_202D_200B_200C_206B_200F_200B_202E_206F_206B_200B_202D_202A_206F_206A_202A_202C_202D_206B_202A_202A_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(556540328)); - int num = ((!PrintMembers(stringBuilder)) ? (-2114676598) : (-2114676599)); - while (true) - { - int num2 = num; - int num3 = -2114676600; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -2114676599; - break; - case 1: - _206D_206C_206B_206D_206A_200B_202C_202C_200F_202C_206F_206E_200D_200C_206B_206B_200B_200C_206D_200C_202E_206B_206B_206E_200F_200F_202A_206C_200D_206A_200E_200E_200D_202D_200C_206B_206B_206C_200E_206D_202E(stringBuilder, ' '); - num = -2114676598; - break; - case 2: - _206D_206C_206B_206D_206A_200B_202C_202C_200F_202C_206F_206E_200D_200C_206B_206B_200B_200C_206D_200C_202E_206B_206B_206E_200F_200F_202A_206C_200D_206A_200E_200E_200D_202D_200C_206B_206B_206C_200E_206D_202E(stringBuilder, '}'); - return _202B_202B_202C_200F_202E_200B_200B_200D_200D_200C_202D_200F_202A_202A_200F_200E_202A_206A_200C_200E_202C_200E_206B_200D_206B_206C_206F_202E_202C_206E_200E_200B_200D_200F_202E_206A_200B_206C_200F_202D_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202A_206D_206B_206B_202A_202D_202D_200F_202C_200B_206B_206C_202A_200D_206B_202C_206E_200B_206C_202D_202C_200C_202C_200B_206A_206B_202B_200C_202C_200D_200E_206C_202E_200E_202E_206C_202C_202E_206D_202E(); - _206C_206B_202D_202A_200F_202B_200D_200B_200D_202D_206F_206D_206E_200D_202B_206B_206D_206F_202A_202B_202D_200B_200C_206B_200F_200B_202E_206F_206B_200B_202D_202A_206F_206A_202A_202C_202D_206B_202A_202A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-677874438)); - _200B_200D_206C_200D_202D_200C_206D_200B_206B_202A_206D_206C_200D_200D_202D_206C_206F_202B_200D_200F_200D_202E_206B_202C_206D_202C_206C_202D_200B_202D_206D_200F_206F_200F_200B_206C_206F_200F_202E_206E_202E(builder, (object)Waypoints); - _206C_206B_202D_202A_200F_202B_200D_200B_200D_202D_206F_206D_206E_200D_202B_206B_206D_206F_202A_202B_202D_200B_200C_206B_200F_200B_202E_206F_206B_200B_202D_202A_206F_206A_202A_202C_202D_206B_202A_202A_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-779972961)); - _206C_206B_202D_202A_200F_202B_200D_200B_200D_202D_206F_206D_206E_200D_202B_206B_206D_206F_202A_202B_202D_200B_200C_206B_200F_200B_202E_206F_206B_200B_202D_202A_206F_206A_202A_202C_202D_206B_202A_202A_202E(builder, IsPartial.ToString()); - _206C_206B_202D_202A_200F_202B_200D_200B_200D_202D_206F_206D_206E_200D_202B_206B_206D_206F_202A_202B_202D_200B_200C_206B_200F_200B_202E_206F_206B_200B_202D_202A_206F_206A_202A_202C_202D_206B_202A_202A_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1363935452)); - _200B_200D_206C_200D_202D_200C_206D_200B_206B_202A_206D_206C_200D_200D_202D_206C_206F_202B_200D_200F_200D_202E_206B_202C_206D_202C_206C_202D_200B_202D_206D_200F_206F_200F_200B_206C_206F_200F_202E_206E_202E(builder, (object)PartialReason); - _206C_206B_202D_202A_200F_202B_200D_200B_200D_202D_206F_206D_206E_200D_202B_206B_206D_206F_202A_202B_202D_200B_200C_206B_200F_200B_202E_206F_206B_200B_202D_202A_206F_206A_202A_202C_202D_206B_202A_202A_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-243342175)); - _206C_206B_202D_202A_200F_202B_200D_200B_200D_202D_206F_206D_206E_200D_202B_206B_206D_206F_202A_202B_202D_200B_200C_206B_200F_200B_202E_206F_206B_200B_202D_202A_206F_206A_202A_202C_202D_206B_202A_202A_202E(builder, EndDistance.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(PathfindResult? other) - { - int num = (((object)this == other) ? (-28872494) : (-28872490)); - while (true) - { - int num2 = num; - int num3 = -28872494; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - return false; - case 3: - num = ((!EqualityComparer<bool>.Default.Equals(IsPartial, other.IsPartial)) ? (-28872492) : (-28872486)); - break; - case 7: - num = ((!_202A_206F_206F_202A_202C_202D_202C_200D_202E_202D_200E_200B_206C_200D_202D_202A_200C_200F_202A_200D_200E_202E_206A_206D_200D_200C_206D_206E_202C_206B_202C_206D_202A_206A_206F_206F_206C_206B_206E_202E_202E(EqualityContract, other.EqualityContract)) ? (-28872492) : (-28872493)); - break; - case 5: - num = -28872490; - break; - case 8: - num = ((!EqualityComparer<string>.Default.Equals(PartialReason, other.PartialReason)) ? (-28872492) : (-28872496)); - break; - case 4: - num = (((object)other == null) ? (-28872492) : (-28872491)); - break; - case 1: - num = ((!EqualityComparer<List<Vector3>>.Default.Equals(Waypoints, other.Waypoints)) ? (-28872492) : (-28872495)); - break; - case 0: - return true; - case 2: - return EqualityComparer<float>.Default.Equals(EndDistance, other.EndDistance); - } - } - } - - bool IEquatable<PathfindResult>.Equals(PathfindResult? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206C_202A_206F_202D_202D_206E_202C_200E_200C_202E_200C_206B_202B_202B_206A_206D_206A_202D_206D_206C_202C_206B_202D_202D_200D_206C_202A_200F_202C_206D_206D_200B_206C_206E_202C_206E_206E_206E_206B_206E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202D_206F_202B_202D_202C_202A_206A_206D_202B_206A_206C_200F_200C_202D_200C_200E_206F_206C_206D_206C_206D_200F_202A_206E_206F_202C_202C_206B_206F_202B_206A_200F_206C_202D_206A_200B_206A_202B_200F_200C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206C_206B_202D_202A_200F_202B_200D_200B_200D_202D_206F_206D_206E_200D_202B_206B_206D_206F_202A_202B_202D_200B_200C_206B_200F_200B_202E_206F_206B_200B_202D_202A_206F_206A_202A_202C_202D_206B_202A_202A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206D_206C_206B_206D_206A_200B_202C_202C_200F_202C_206F_206E_200D_200C_206B_206B_200B_200C_206D_200C_202E_206B_206B_206E_200F_200F_202A_206C_200D_206A_200E_200E_200D_202D_200C_206B_206B_206C_200E_206D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202B_202B_202C_200F_202E_200B_200B_200D_200D_200C_202D_200F_202A_202A_200F_200E_202A_206A_200C_200E_202C_200E_206B_200D_206B_206C_206F_202E_202C_206E_200E_200B_200D_200F_202E_206A_200B_206C_200F_202D_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202A_206D_206B_206B_202A_202D_202D_200F_202C_200B_206B_206C_202A_200D_206B_202C_206E_200B_206C_202D_202C_200C_202C_200B_206A_206B_202B_200C_202C_200D_200E_206C_202E_200E_202E_206C_202C_202E_206D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200B_200D_206C_200D_202D_200C_206D_200B_206B_202A_206D_206C_200D_200D_202D_206C_206F_202B_200D_200F_200D_202E_206B_202C_206D_202C_206C_202D_200B_202D_206D_200F_206F_200F_200B_206C_206F_200F_202E_206E_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202A_206F_206F_202A_202C_202D_202C_200D_202E_202D_200E_200B_206C_200D_202D_202A_200C_200F_202A_200D_200E_202E_206A_206D_200D_200C_206D_206E_202C_206B_202C_206D_202A_206A_206F_206F_206C_206B_206E_202E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +internal sealed record PathfindResult(List<Vector3> Waypoints, bool IsPartial, string PartialReason, float EndDistance); diff --git a/Questionable/Questionable.External/QuestionableIpc.cs b/Questionable/Questionable.External/QuestionableIpc.cs index 26c6e8e..4599d75 100644 --- a/Questionable/Questionable.External/QuestionableIpc.cs +++ b/Questionable/Questionable.External/QuestionableIpc.cs @@ -1,16 +1,10 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; -using Dalamud.Configuration; -using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin; using Dalamud.Plugin.Ipc; using Dalamud.Plugin.Services; -using FFXIVClientStructs.FFXIV.Application.Network.WorkDefinitions; using FFXIVClientStructs.FFXIV.Client.Game; using Microsoft.Extensions.DependencyInjection; using Questionable.Controller; @@ -67,367 +61,6 @@ internal sealed class QuestionableIpc : IDisposable public required string? QuestName { get; init; } } - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<QuestId, string> _003C_003E9__12_0; - - public static Func<QuestInfo, int> _003C_003E9__17_3; - - public static Func<QuestInfo, int> _003C_003E9__18_3; - - public static Func<QuestInfo, string> _003C_003E9__18_4; - - public static Func<ElementId, string> _003C_003E9__25_0; - - public static Func<(int, int)> _003C_003E9__77_0; - - public static Func<Quest, string> _003C_003E9__103_0; - - public static Func<ElementId, string> _003C_003E9__107_0; - - public static Func<PriorityQuestInfo, bool> _003C_003E9__112_0; - - public static Func<ElementId, string> _003C_003E9__125_5; - - public static Func<QuestCompleteCondition, string> _003C_003E9__157_0; - - public static Predicate<StopCondition> _003C_003E9__160_0; - - public static Func<QuestCompleteCondition, bool> _003C_003E9__168_0; - - public static Func<QuestCompleteCondition, string> _003C_003E9__168_1; - - public static Func<QuestCompleteCondition, int> _003C_003E9__168_2; - - internal string _003CGetAlliedSocietyAvailableQuestIds_003Eb__12_0(QuestId q) - { - return _206C_206D_206E_202E_206E_202C_200C_200B_200C_200B_200B_200C_200E_202A_206A_206E_202B_206E_206C_206F_200B_206C_200F_202C_202E_202C_206B_200F_202B_202A_200E_200B_200E_202D_200F_202C_200D_202D_200F_200E_202E((object)q); - } - - internal int _003CAddAlliedSocietyOptimalQuests_003Eb__17_3(QuestInfo questInfo) - { - return questInfo.AlliedSocietyRank; - } - - internal int _003CGetAlliedSocietyOptimalQuests_003Eb__18_3(QuestInfo questInfo) - { - return questInfo.AlliedSocietyRank; - } - - internal string _003CGetAlliedSocietyOptimalQuests_003Eb__18_4(QuestInfo q) - { - return _206C_206D_206E_202E_206E_202C_200C_200B_200C_200B_200B_200C_200E_202A_206A_206E_202B_206E_206C_206F_200B_206C_200F_202C_202E_202C_206B_200F_202B_202A_200E_200B_200E_202D_200F_202C_200D_202D_200F_200E_202E((object)q.QuestId); - } - - internal string _003CGetBlacklistedQuests_003Eb__25_0(ElementId q) - { - return _206C_206D_206E_202E_206E_202C_200C_200B_200C_200B_200B_200C_200E_202A_206A_206E_202B_206E_206C_206F_200B_206C_200F_202C_202E_202C_206B_200F_202B_202A_200E_200B_200E_202D_200F_202C_200D_202D_200F_200E_202E((object)q); - } - - internal (int, int) _003CRegisterMetaIpc_003Eb__77_0() - { - return ApiVersion; - } - - internal string _003CGetPriorityQuests_003Eb__103_0(Quest q) - { - return _206C_206D_206E_202E_206E_202C_200C_200B_200C_200B_200B_200C_200E_202A_206A_206E_202B_206E_206C_206F_200B_206C_200F_202C_202E_202C_206B_200F_202B_202A_200E_200B_200E_202D_200F_202C_200D_202D_200F_200E_202E((object)q.Id); - } - - internal string _003CGetPresetQuests_003Eb__107_0(ElementId q) - { - return _206C_206D_206E_202E_206E_202C_200C_200B_200C_200B_200B_200C_200E_202A_206A_206E_202B_206E_206C_206F_200B_206C_200F_202C_202E_202C_206B_200F_202B_202A_200E_200B_200E_202D_200F_202C_200D_202D_200F_200E_202E((object)q); - } - - internal bool _003CHasAvailablePriorityQuests_003Eb__112_0(PriorityQuestInfo x) - { - return x.IsAvailable; - } - - internal string _003CRegisterQuestStateIpc_003Eb__125_5(ElementId q) - { - return _206C_206D_206E_202E_206E_202C_200C_200B_200C_200B_200B_200C_200E_202A_206A_206E_202B_206E_206C_206F_200B_206C_200F_202C_202E_202C_206B_200F_202B_202A_200E_200B_200E_202D_200F_202C_200D_202D_200F_200E_202E((object)q); - } - - internal string _003CGetStopQuestList_003Eb__157_0(QuestCompleteCondition c) - { - return _206C_206D_206E_202E_206E_202C_200C_200B_200C_200B_200B_200C_200E_202A_206A_206E_202B_206E_206C_206F_200B_206C_200F_202C_202E_202C_206B_200F_202B_202A_200E_200B_200E_202D_200F_202C_200D_202D_200F_200E_202E((object)c.QuestId); - } - - internal bool _003CClearStopQuests_003Eb__160_0(StopCondition c) - { - return c is QuestCompleteCondition; - } - - internal bool _003CGetAllQuestSequenceStopConditions_003Eb__168_0(QuestCompleteCondition c) - { - return c.Sequence.HasValue; - } - - internal string _003CGetAllQuestSequenceStopConditions_003Eb__168_1(QuestCompleteCondition c) - { - return _206C_206D_206E_202E_206E_202C_200C_200B_200C_200B_200B_200C_200E_202A_206A_206E_202B_206E_206C_206F_200B_206C_200F_202C_202E_202C_206B_200F_202B_202A_200E_200B_200E_202D_200F_202C_200D_202D_200F_200E_202E((object)c.QuestId); - } - - internal int _003CGetAllQuestSequenceStopConditions_003Eb__168_2(QuestCompleteCondition c) - { - return c.Sequence.Value; - } - - static string _206C_206D_206E_202E_206E_202C_200C_200B_200C_200B_200B_200C_200E_202A_206A_206E_202B_206E_206C_206F_200B_206C_200F_202C_202E_202C_206B_200F_202B_202A_200E_200B_200E_202D_200F_202C_200D_202D_200F_200E_202E(object P_0) - { - return P_0.ToString(); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass104_0 - { - public ElementId elementId; - - internal bool _003CRemovePriorityQuest_003Eb__0(Quest q) - { - return _206A_206C_206B_200B_206A_200B_202C_202E_200C_206B_206B_200F_200D_202C_206D_202B_200D_200F_202E_202E_206F_202B_202D_206A_200F_200F_206F_202C_202E_206D_206A_202D_206D_200B_200C_206B_202E_202B_200F_200F_202E(q.Id, elementId); - } - - static bool _206A_206C_206B_200B_206A_200B_202C_202E_200C_206B_206B_200F_200D_202C_206D_202B_200D_200F_202E_202E_206F_202B_202D_206A_200F_200F_206F_202C_202E_206D_206A_202D_206D_200B_200C_206B_202E_202B_200F_200F_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass105_0 - { - public ElementId elementId; - - internal bool _003CReorderPriorityQuest_003Eb__0(Quest q) - { - return _200F_202C_206E_206D_200E_206D_206C_202D_202D_202D_200B_200F_202B_202C_200C_202A_200E_200F_200C_200B_202D_206F_206E_202A_202D_200D_202E_202C_200E_200D_206C_202C_200B_206D_202B_206D_206F_200C_206F_206F_202E(q.Id, elementId); - } - - static bool _200F_202C_206E_206D_200E_206D_206C_202D_202D_202D_200B_200F_202B_202C_200C_202A_200E_200F_200C_200B_202D_206F_206E_202A_202D_200D_202E_202C_200E_200D_206C_202C_200B_206D_202B_206D_206F_200C_206F_206F_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass108_0 - { - public ElementId elementId; - - internal bool _003CAddPresetToPriority_003Eb__0(Quest q) - { - return _206B_202C_206D_202B_206D_200D_206E_200E_200F_202A_202E_200B_206E_200B_202B_202A_200C_206A_206F_206F_206C_202E_202A_202B_202D_200F_200B_200D_200B_206B_200F_206C_206D_202E_206B_200E_206C_202E_200D_206F_202E(q.Id, elementId); - } - - static bool _206B_202C_206D_202B_206D_200D_206E_200E_200F_202A_202E_200B_206E_200B_202B_202A_200C_206A_206F_206F_206C_202E_202A_202B_202D_200F_200B_200D_200B_206B_200F_206C_206D_202E_206B_200E_206C_202E_200D_206F_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass110_0 - { - public ElementId elementId; - - internal bool _003CIsQuestInPriority_003Eb__0(Quest q) - { - return _206B_200E_200D_206D_206F_200F_200C_200D_200B_202E_200B_200C_206E_200F_200B_200E_206A_200D_206D_202C_202B_206B_206C_206F_200C_202B_206A_206A_202D_206E_200F_202C_206D_206C_206C_202C_200E_200D_206B_206A_202E(q.Id, elementId); - } - - static bool _206B_200E_200D_206D_206F_200F_200C_200D_200B_202E_200B_200C_206E_200F_200B_200E_206A_200D_206D_202C_202B_206B_206C_206F_200C_202B_206A_206A_202D_206E_200F_202C_206D_206C_206C_202C_200E_200D_206B_206A_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass111_0 - { - public ElementId elementId; - - internal bool _003CGetQuestPriorityIndex_003Eb__0(Quest q) - { - return _206B_200C_200D_200C_200B_202A_200F_206B_206C_202A_206A_200E_206D_200B_202E_200B_200C_206F_206A_206C_200B_202C_202B_206B_200E_206D_206A_206A_200B_206D_202A_202A_206B_202A_200C_202B_206E_200B_200F_202C_202E(q.Id, elementId); - } - - static bool _206B_200C_200D_200C_200B_202A_200F_206B_206C_202A_206A_200E_206D_200B_202E_200B_200C_206F_206A_206C_200B_202C_202B_206B_200E_206D_206A_206A_200B_206D_202A_202A_206B_202A_200C_202B_206E_200B_200F_202C_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass158_0 - { - public ElementId elementId; - - internal bool _003CAddStopQuest_003Eb__0(QuestCompleteCondition c) - { - return _202E_206B_200B_200F_202E_206D_202C_202E_202E_200B_200E_206D_206B_200B_202E_202E_206C_202A_200C_202C_206F_206F_202E_206C_200D_206F_206E_202B_200D_202B_206B_202C_200D_200D_206E_202B_202D_206C_200F_206B_202E(c.QuestId, elementId); - } - - static bool _202E_206B_200B_200F_202E_206D_202C_202E_202E_200B_200E_206D_206B_200B_202E_202E_206C_202A_200C_202C_206F_206F_202E_206C_200D_206F_206E_202B_200D_202B_206B_202C_200D_200D_206E_202B_202D_206C_200F_206B_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass159_0 - { - public ElementId elementId; - - internal bool _003CRemoveStopQuest_003Eb__0(QuestCompleteCondition c) - { - return _202B_206F_202A_200F_200E_206D_202B_206F_200C_200C_206E_206D_206C_202E_202C_206D_206D_202A_200B_202C_206F_202E_200B_206C_200C_206E_200C_206E_206D_202C_206D_202A_200D_200F_200C_200B_200C_200B_206C_202E_202E(c.QuestId, elementId); - } - - static bool _202B_206F_202A_200F_200E_206D_202B_206F_200C_200C_206E_206D_206C_202E_202C_206D_206D_202A_200B_202C_206F_202E_200B_206C_200C_206E_200C_206E_206D_202C_206D_202A_200D_200F_200C_200B_200C_200B_206C_202E_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass165_0 - { - public ElementId elementId; - - internal bool _003CGetQuestSequenceStopCondition_003Eb__0(QuestCompleteCondition c) - { - return _200D_202D_202E_202C_206E_206C_200E_206C_200B_206E_200E_202D_202A_206A_202A_200F_202B_206D_202E_206E_202D_200E_200C_206D_200E_206E_206F_200C_202D_206D_202B_202A_200D_206E_200E_202E_200D_206B_200B_202D_202E(c.QuestId, elementId); - } - - static bool _200D_202D_202E_202C_206E_206C_200E_206C_200B_206E_200E_202D_202A_206A_202A_200F_202B_206D_202E_206E_202D_200E_200C_206D_200E_206E_206F_200C_202D_206D_202B_202A_200D_206E_200E_202E_200D_206B_200B_202D_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass166_0 - { - public ElementId elementId; - - internal bool _003CSetQuestSequenceStopCondition_003Eb__0(QuestCompleteCondition c) - { - return _200D_202A_202A_206C_206B_206A_200D_206B_200C_200C_200B_202C_200F_202A_206F_206A_202B_202D_200E_202A_206F_206C_200F_202B_202C_206E_206A_202A_200C_202D_200E_200D_206F_200D_202A_206E_200C_202B_206C_200D_202E(c.QuestId, elementId); - } - - static bool _200D_202A_202A_206C_206B_206A_200D_206B_200C_200C_200B_202C_200F_202A_206F_206A_202B_202D_200E_202A_206F_206C_200F_202B_202C_206E_206A_202A_200C_202D_200E_200D_206F_200D_202A_206E_200C_202B_206C_200D_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass167_0 - { - public ElementId elementId; - - internal bool _003CRemoveQuestSequenceStopCondition_003Eb__0(QuestCompleteCondition c) - { - int num = ((!_206A_200B_206E_206B_202B_200C_206D_206A_200F_202C_206C_202B_202C_206F_202C_200C_206C_200B_202A_200E_200C_200B_206D_200D_200C_200F_200B_202B_202B_200E_202D_206B_206E_206F_200D_200D_206A_202A_200E_206C_202E(c.QuestId, elementId)) ? 1186797582 : 1186797583); - while (true) - { - int num2 = num; - int num3 = 1186797582; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0053; - case 0: - return false; - case 1: - return c.Sequence.HasValue; - } - continue; - IL_0053: - num = 1186797583; - } - } - - static bool _206A_200B_206E_206B_202B_200C_206D_206A_200F_202C_206C_202B_202C_206F_202C_200C_206C_200B_202A_200E_200C_200B_206D_200D_200C_200F_200B_202B_202B_200E_202D_206B_206E_206F_200D_200D_206A_202A_200E_206C_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass173_0 - { - public ElementId elementId; - - internal bool _003CGetQuestStopMode_003Eb__0(QuestCompleteCondition c) - { - return _206E_200F_202C_200C_202B_202B_202C_202B_200C_206E_202B_200D_202A_206A_206A_206A_206F_206E_200B_206B_206E_200D_202A_206D_206B_202D_200B_200D_202D_202A_200E_206A_202D_202C_202B_206C_200E_206C_206F_206D_202E(c.QuestId, elementId); - } - - static bool _206E_200F_202C_200C_202B_202B_202C_202B_200C_206E_202B_200D_202A_206A_206A_206A_206F_206E_200B_206B_206E_200D_202A_206D_206B_202D_200B_200D_202D_202A_200E_206A_202D_202C_202B_206C_200E_206C_206F_206D_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass174_0 - { - public ElementId elementId; - - internal bool _003CSetQuestStopMode_003Eb__0(QuestCompleteCondition c) - { - return _202D_202E_202C_202D_200D_200E_206F_202D_202A_206D_202D_206D_200D_202B_200B_206E_206A_206B_202C_202A_200B_206C_202C_206C_202E_206C_202C_200E_202C_202B_202C_200F_206A_206C_202C_200D_206F_200E_206F_206B_202E(c.QuestId, elementId); - } - - static bool _202D_202E_202C_202D_200D_200E_206F_202D_202A_206D_202D_206D_200D_202B_200B_206E_206A_206B_202C_202A_200B_206C_202C_206C_202E_206C_202C_200E_202C_202B_202C_200F_206A_206C_202C_200D_206F_200E_206F_206B_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass17_0 - { - public QuestInfo questInfo; - - internal bool _003CAddAlliedSocietyOptimalQuests_003Eb__4(Quest pq) - { - return _200B_206F_202A_200F_206A_206B_200F_206F_206B_206E_202E_202E_206D_206E_202C_202E_206F_206B_200B_202D_206D_200B_202B_200E_200F_202D_206D_200E_206F_206A_200E_206C_200E_206E_206B_202E_206C_206F_206A_200C_202E(pq.Id, questInfo.QuestId); - } - - static bool _200B_206F_202A_200F_206A_206B_200F_206F_206B_206E_202E_202E_206D_206E_202C_202E_206F_206B_200B_202D_206D_200B_202B_200E_200F_202D_206D_200E_206F_206A_200E_206C_200E_206E_206B_202E_206C_206F_206A_200C_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass18_0 - { - public QuestInfo questInfo; - - internal bool _003CGetAlliedSocietyOptimalQuests_003Eb__5(Quest pq) - { - return _200F_200B_200C_202B_200B_206B_206A_202C_202A_200B_202D_202A_206A_206F_206C_202A_206C_200E_200B_206D_200C_200D_200F_202C_202A_200D_202C_206B_200B_200C_202D_206C_200D_206E_206D_202B_206B_206B_200F_206F_202E(pq.Id, questInfo.QuestId); - } - - static bool _200F_200B_200C_202B_200B_206B_206A_202C_202A_200B_202D_202A_206A_206F_206C_202A_206C_200E_200B_206D_200C_200D_200F_202C_202A_200D_202C_206B_200B_200C_202D_206C_200D_206E_206D_202B_206B_206B_200F_206F_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - private const string IpcGetAlliedSocietyRemainingAllowances = "Questionable.AlliedSociety.GetRemainingAllowances"; private const string IpcGetAlliedSocietyTimeUntilReset = "Questionable.AlliedSociety.GetTimeUntilReset"; @@ -604,42 +237,27 @@ internal sealed class QuestionableIpc : IDisposable private const string IpcSetQuestStopMode = "Questionable.SetQuestStopMode"; - [MethodImpl(MethodImplOptions.NoInlining)] private void RegisterAlliedSocietyIpc() { - Register(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2076909105), GetAlliedSocietyRemainingAllowances); - Register(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2140661285), GetAlliedSocietyTimeUntilReset); - Register<byte, List<string>>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-293474697), GetAlliedSocietyAvailableQuestIds); - Register(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1260096233), GetAlliedSocietyAllAvailableQuestCounts); - Register<byte, bool>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1318334087), GetAlliedSocietyIsMaxRank); - Register<byte, int>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1870708398), GetAlliedSocietyCurrentRank); - Register(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1412290857), GetAlliedSocietiesWithAvailableQuests); - Register<byte, int>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(622905718), AddAlliedSocietyOptimalQuests); - Register<byte, List<string>>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1796942929), GetAlliedSocietyOptimalQuests); + Register("Questionable.AlliedSociety.GetRemainingAllowances", GetAlliedSocietyRemainingAllowances); + Register("Questionable.AlliedSociety.GetTimeUntilReset", GetAlliedSocietyTimeUntilReset); + Register<byte, List<string>>("Questionable.AlliedSociety.GetAvailableQuestIds", GetAlliedSocietyAvailableQuestIds); + Register("Questionable.AlliedSociety.GetAllAvailableQuestCounts", GetAlliedSocietyAllAvailableQuestCounts); + Register<byte, bool>("Questionable.AlliedSociety.IsMaxRank", GetAlliedSocietyIsMaxRank); + Register<byte, int>("Questionable.AlliedSociety.GetCurrentRank", GetAlliedSocietyCurrentRank); + Register("Questionable.AlliedSociety.GetSocietiesWithAvailableQuests", GetAlliedSocietiesWithAvailableQuests); + Register<byte, int>("Questionable.AlliedSociety.AddOptimalQuests", AddAlliedSocietyOptimalQuests); + Register<byte, List<string>>("Questionable.AlliedSociety.GetOptimalQuests", GetAlliedSocietyOptimalQuests); } private unsafe int GetAlliedSocietyRemainingAllowances() { QuestManager* ptr = QuestManager.Instance(); - int num = ((ptr != null) ? 493033467 : 493033466); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 493033467; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0049; - case 1: - return 12; - case 0: - return (int)ptr->GetBeastTribeAllowance(); - } - continue; - IL_0049: - num = 493033466; + return 12; } + return (int)ptr->GetBeastTribeAllowance(); } private long GetAlliedSocietyTimeUntilReset() @@ -650,30 +268,13 @@ internal sealed class QuestionableIpc : IDisposable private List<string> GetAlliedSocietyAvailableQuestIds(byte alliedSocietyId) { - int num = ((alliedSocietyId == 0) ? 1843134312 : 1843134315); - while (true) + if (alliedSocietyId == 0 || !Enum.IsDefined(typeof(EAlliedSociety), alliedSocietyId)) { - int num2 = num; - int num3 = 1843134313; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return new List<string>(); - case 2: - num = (_202D_200C_206C_202C_206A_202D_200F_200C_200C_206C_206F_200C_202B_200E_202D_200B_202B_200C_206E_200E_206D_206E_206A_202B_206A_206D_206D_206B_206C_206E_206A_200E_202E_200B_200B_202E_200D_206D_202C_206F_202E(_206F_202E_202C_206D_206E_206A_200C_200E_206E_206E_206C_200F_206D_202C_206E_200C_206D_206C_206E_206E_206D_206A_202D_202C_200D_206E_206A_202B_202C_202C_200F_200C_200F_206B_202E_202B_202B_202D_206D_200D_202E(typeof(EAlliedSociety).TypeHandle), (object)alliedSocietyId) ? 1843134314 : 1843134312); - break; - case 3: - { - EAlliedSociety alliedSociety = (EAlliedSociety)alliedSocietyId; - return (from q in _serviceProvider.GetRequiredService<AlliedSocietyQuestFunctions>().GetAvailableAlliedSocietyQuests(alliedSociety) - select _003C_003Ec._206C_206D_206E_202E_206E_202C_200C_200B_200C_200B_200B_200C_200E_202A_206A_206E_202B_206E_206C_206F_200B_206C_200F_202C_202E_202C_206B_200F_202B_202A_200E_200B_200E_202D_200F_202C_200D_202D_200F_200E_202E((object)q)).ToList(); - } - case 0: - num = 1843134315; - break; - } + return new List<string>(); } + EAlliedSociety alliedSociety = (EAlliedSociety)alliedSocietyId; + return (from q in _serviceProvider.GetRequiredService<AlliedSocietyQuestFunctions>().GetAvailableAlliedSocietyQuests(alliedSociety) + select q.ToString()).ToList(); } private Dictionary<byte, int> GetAlliedSocietyAllAvailableQuestCounts() @@ -681,189 +282,55 @@ internal sealed class QuestionableIpc : IDisposable Dictionary<byte, int> dictionary = new Dictionary<byte, int>(); AlliedSocietyQuestFunctions requiredService = _serviceProvider.GetRequiredService<AlliedSocietyQuestFunctions>(); EAlliedSociety[] values = Enum.GetValues<EAlliedSociety>(); - int num = 0; - int num2 = -106340309; - int count = default(int); - EAlliedSociety eAlliedSociety = default(EAlliedSociety); - while (true) + foreach (EAlliedSociety eAlliedSociety in values) { - int num3 = num2; - int num4 = -106340306; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + if (eAlliedSociety != EAlliedSociety.None) { - case 2: - return dictionary; - case 0: - { - int num6 = num; - num4 = 1; - num5 = num6; - num = (num5 | num4) + (num5 & num4); - num2 = -106340309; - break; - } - case 6: - count = requiredService.GetAvailableAlliedSocietyQuests(eAlliedSociety).Count; - num2 = ((count <= 0) ? (-106340306) : (-106340310)); - break; - case 1: - eAlliedSociety = values[num]; - num2 = ((eAlliedSociety == EAlliedSociety.None) ? (-106340306) : (-106340312)); - break; - case 4: - dictionary[(byte)eAlliedSociety] = count; - num2 = -106340306; - break; - case 3: - num2 = -106340309; - break; - case 5: - num2 = ((num < values.Length) ? (-106340305) : (-106340308)); - break; + int count = requiredService.GetAvailableAlliedSocietyQuests(eAlliedSociety).Count; + if (count > 0) + { + dictionary[(byte)eAlliedSociety] = count; + } } } + return dictionary; } private unsafe bool GetAlliedSocietyIsMaxRank(byte alliedSocietyId) { - int num = ((!_202D_200C_206C_202C_206A_202D_200F_200C_200C_206C_206F_200C_202B_200E_202D_200B_202B_200C_206E_200E_206D_206E_206A_202B_206A_206D_206D_206B_206C_206E_206A_200E_202E_200B_200B_202E_200D_206D_202C_206F_202E(_206F_202E_202C_206D_206E_206A_200C_200E_206E_206E_206C_200F_206D_202C_206E_200C_206D_206C_206E_206E_206D_206A_202D_202C_200D_206E_206A_202B_202C_202C_200F_200C_200F_206B_202E_202B_202B_202D_206D_200D_202E(typeof(EAlliedSociety).TypeHandle), (object)alliedSocietyId)) ? 228684273 : 228684274); - byte b = default(byte); - byte b2 = default(byte); - QuestManager* ptr = default(QuestManager*); - while (true) + if (!Enum.IsDefined(typeof(EAlliedSociety), alliedSocietyId) || alliedSocietyId == 0) { - int num2 = num; - int num3 = 228684272; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return false; - case 4: - { - byte b3 = b; - return b2 >= b3; - } - case 0: - b = 7; - num = 228684276; - break; - case 6: - num = 228684279; - break; - case 2: - num = ((alliedSocietyId != 0) ? 228684283 : 228684273); - break; - case 9: - return false; - case 8: - goto IL_00d2; - case 13: - goto IL_00e1; - case 5: - num = 228684274; - break; - case 10: - { - Span<BeastReputationWork> beastReputation = ptr->BeastReputation; - num3 = 1; - num4 = alliedSocietyId; - byte rank = beastReputation[~(~num4 + num3)].Rank; - num3 = 127; - num4 = rank; - b2 = (byte)(num4 + num3 - (num4 | num3)); - switch ((EAlliedSociety)alliedSocietyId) - { - case EAlliedSociety.Ixal: - break; - case EAlliedSociety.Kobolds: - goto IL_00d2; - case EAlliedSociety.Amaljaa: - goto IL_00e1; - default: - goto IL_014e; - case EAlliedSociety.Sylphs: - goto IL_0169; - case EAlliedSociety.Sahagin: - goto IL_0178; - } - goto case 0; - } - case 7: - b = 8; - num = 228684276; - break; - case 3: - goto IL_0169; - case 12: - goto IL_0178; - case 11: - { - ptr = QuestManager.Instance(); - num = ((ptr != null) ? 228684282 : 228684281); - break; - } - IL_0178: - b = 3; - num = 228684276; - break; - IL_0169: - b = 3; - num = 228684276; - break; - IL_014e: - num = 228684278; - break; - IL_00e1: - b = 3; - num = 228684276; - break; - IL_00d2: - b = 3; - num = 228684276; - break; - } + return false; } + QuestManager* ptr = QuestManager.Instance(); + if (ptr == null) + { + return false; + } + byte b = (byte)(ptr->BeastReputation[alliedSocietyId - 1].Rank & 0x7F); + return b >= (EAlliedSociety)alliedSocietyId switch + { + EAlliedSociety.Amaljaa => 3, + EAlliedSociety.Sylphs => 3, + EAlliedSociety.Kobolds => 3, + EAlliedSociety.Sahagin => 3, + EAlliedSociety.Ixal => 7, + _ => 8, + }; } private unsafe int GetAlliedSocietyCurrentRank(byte alliedSocietyId) { - int num = ((!_202D_200C_206C_202C_206A_202D_200F_200C_200C_206C_206F_200C_202B_200E_202D_200B_202B_200C_206E_200E_206D_206E_206A_202B_206A_206D_206D_206B_206C_206E_206A_200E_202E_200B_200B_202E_200D_206D_202C_206F_202E(_206F_202E_202C_206D_206E_206A_200C_200E_206E_206E_206C_200F_206D_202C_206E_200C_206D_206C_206E_206E_206D_206A_202D_202C_200D_206E_206A_202B_202C_202C_200F_200C_200F_206B_202E_202B_202B_202D_206D_200D_202E(typeof(EAlliedSociety).TypeHandle), (object)alliedSocietyId)) ? 1395822041 : 1395822046); - QuestManager* ptr = default(QuestManager*); - while (true) + if (!Enum.IsDefined(typeof(EAlliedSociety), alliedSocietyId) || alliedSocietyId == 0) { - int num2 = num; - int num3 = 1395822043; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - ptr = QuestManager.Instance(); - num = ((ptr != null) ? 1395822040 : 1395822042); - break; - case 1: - return -1; - case 5: - num = ((alliedSocietyId != 0) ? 1395822047 : 1395822041); - break; - case 3: - { - Span<BeastReputationWork> beastReputation = ptr->BeastReputation; - num3 = 1; - num4 = alliedSocietyId; - byte rank = beastReputation[~(~num4 + num3)].Rank; - num3 = 127; - num4 = rank; - return (byte)((num4 | num3) - (num4 ^ num3)); - } - case 2: - return -1; - case 0: - num = 1395822046; - break; - } + return -1; } + QuestManager* ptr = QuestManager.Instance(); + if (ptr == null) + { + return -1; + } + return (byte)(ptr->BeastReputation[alliedSocietyId - 1].Rank & 0x7F); } private List<byte> GetAlliedSocietiesWithAvailableQuests() @@ -871,441 +338,135 @@ internal sealed class QuestionableIpc : IDisposable List<byte> list = new List<byte>(); AlliedSocietyQuestFunctions requiredService = _serviceProvider.GetRequiredService<AlliedSocietyQuestFunctions>(); EAlliedSociety[] values = Enum.GetValues<EAlliedSociety>(); - int num = 0; - int num2 = 240220789; - EAlliedSociety eAlliedSociety = default(EAlliedSociety); - while (true) + foreach (EAlliedSociety eAlliedSociety in values) { - int num3 = num2; - int num4 = 240220789; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) + if (eAlliedSociety != EAlliedSociety.None && requiredService.GetAvailableAlliedSocietyQuests(eAlliedSociety).Count > 0) { - case 6: - return list; - case 1: - num2 = ((requiredService.GetAvailableAlliedSocietyQuests(eAlliedSociety).Count <= 0) ? 240220784 : 240220790); - break; - case 2: - eAlliedSociety = values[num]; - num2 = ((eAlliedSociety == EAlliedSociety.None) ? 240220784 : 240220788); - break; - case 0: - num2 = ((num < values.Length) ? 240220791 : 240220787); - break; - case 5: - { - int num8 = num; - num4 = 1; - num5 = num8; - int num9 = num5 ^ num4; - int num10 = num5 & num4; - num = num9 + (num10 + num10); - num2 = 240220789; - break; - } - case 3: list.Add((byte)eAlliedSociety); - num2 = 240220784; - break; - case 4: - num2 = 240220789; - break; } } + return list; } private int AddAlliedSocietyOptimalQuests(byte alliedSocietyId) { - int num = ((!_202D_200C_206C_202C_206A_202D_200F_200C_200C_206C_206F_200C_202B_200E_202D_200B_202B_200C_206E_200E_206D_206E_206A_202B_206A_206D_206D_206B_206C_206E_206A_200E_202E_200B_200B_202E_200D_206D_202C_206F_202E(_206F_202E_202C_206D_206E_206A_200C_200E_206E_206E_206C_200F_206D_202C_206E_200C_206D_206C_206E_206E_206D_206A_202D_202C_200D_206E_206A_202B_202C_202C_200F_200C_200F_206B_202E_202B_202B_202D_206D_200D_202E(typeof(EAlliedSociety).TypeHandle), (object)alliedSocietyId)) ? (-494903143) : (-494903141)); - EAlliedSociety eAlliedSociety = default(EAlliedSociety); - List<QuestInfo> list = default(List<QuestInfo>); - List<QuestId> availableAlliedSocietyQuests = default(List<QuestId>); - int num7; - while (true) + if (!Enum.IsDefined(typeof(EAlliedSociety), alliedSocietyId) || alliedSocietyId == 0) { - int num2 = num; - int num3 = -494903144; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 5: - num = (((int)eAlliedSociety <= 5) ? (-494903142) : (-494903140)); - continue; - case 9: - return 0; - case 7: - list = (from questInfo in availableAlliedSocietyQuests.Select(delegate(QuestId questId) - { - IQuestInfo questInfo; - int num18 = (_questData.TryGetQuestInfo(questId, out questInfo) ? (-722768619) : (-722768620)); - while (true) - { - int num19 = num18; - int num20 = -722768619; - int num21 = num19; - int num22 = num21 + num20; - int num23 = num21 & num20; - switch (num22 - (num23 + num23)) - { - case 2: - goto IL_0050; - case 1: - return (IQuestInfo)null; - case 0: - return questInfo; - } - continue; - IL_0050: - num18 = -722768620; - } - }).OfType<QuestInfo>().Where(delegate(QuestInfo questInfo) - { - Quest quest; - int num18 = ((!_questRegistry.TryGetQuest(questInfo.QuestId, out quest)) ? (-1336741797) : (-1336741798)); - while (true) - { - int num19 = num18; - int num20 = -1336741797; - int num21 = num19; - switch ((num21 | num20) - (num21 & num20)) - { - case 0: - return false; - case 1: - return !_202E_202D_202A_200B_206C_202D_202D_206E_202D_206E_206D_202B_200E_206F_206F_200D_206F_202C_206E_206F_200E_206D_202D_200D_202C_200B_200B_202C_202A_200F_202B_200E_206E_202B_202C_200F_206A_206F_206F_206E_202E(quest.Root); - case 2: - goto IL_0064; - } - continue; - IL_0064: - num18 = -1336741798; - } - }) - where !_questController.ManualPriorityQuests.Any((Quest pq) => _003C_003Ec__DisplayClass17_0._200B_206F_202A_200F_206A_206B_200F_206F_206B_206E_202E_202E_206D_206E_202C_202E_206F_206B_200B_202D_206D_200B_202B_200E_200F_202D_206D_200E_206F_206A_200E_206C_200E_206E_206B_202E_206C_206F_206A_200C_202E(pq.Id, questInfo.QuestId)) - orderby questInfo.AlliedSocietyRank descending - select questInfo).ToList(); - num = ((list.Count != 0) ? (-494903139) : (-494903151)); - continue; - case 3: - num = ((alliedSocietyId != 0) ? (-494903152) : (-494903143)); - continue; - case 1: - return 0; - case 0: - num = -494903141; - continue; - case 4: - num7 = 3; - break; - case 6: - return 0; - case 8: - eAlliedSociety = (EAlliedSociety)alliedSocietyId; - availableAlliedSocietyQuests = _serviceProvider.GetRequiredService<AlliedSocietyQuestFunctions>().GetAvailableAlliedSocietyQuests(eAlliedSociety); - num = ((availableAlliedSocietyQuests.Count != 0) ? (-494903137) : (-494903138)); - continue; - case 2: - num7 = 12; - break; - } - break; + return 0; } + EAlliedSociety eAlliedSociety = (EAlliedSociety)alliedSocietyId; + List<QuestId> availableAlliedSocietyQuests = _serviceProvider.GetRequiredService<AlliedSocietyQuestFunctions>().GetAvailableAlliedSocietyQuests(eAlliedSociety); + if (availableAlliedSocietyQuests.Count == 0) + { + return 0; + } + IQuestInfo questInfo; + Quest quest; + List<QuestInfo> list = (from questInfo in availableAlliedSocietyQuests.Select((QuestId questId) => (!_questData.TryGetQuestInfo(questId, out questInfo)) ? null : questInfo).OfType<QuestInfo>() + where _questRegistry.TryGetQuest(questInfo.QuestId, out quest) && !quest.Root.Disabled + where !_questController.ManualPriorityQuests.Any((Quest pq) => pq.Id.Equals(questInfo.QuestId)) + orderby questInfo.AlliedSocietyRank descending + select questInfo).ToList(); + if (list.Count == 0) + { + return 0; + } + int val = (((int)eAlliedSociety <= 5) ? 12 : 3); int alliedSocietyRemainingAllowances = GetAlliedSocietyRemainingAllowances(); - int count = _202A_202C_206D_200C_206E_200E_200C_202E_202C_200E_206B_200F_206E_202B_202C_200E_206D_200C_200D_200F_200D_200C_200D_200B_206C_200B_206F_200D_202B_200C_200F_202A_206A_202B_206D_200B_200D_202C_200F_202E_202E(_202A_202C_206D_200C_206E_200E_200C_202E_202C_200E_206B_200F_206E_202B_202C_200E_206D_200C_200D_200F_200D_200C_200D_200B_206C_200B_206F_200D_202B_200C_200F_202A_206A_202B_206D_200B_200D_202C_200F_202E_202E(num7, alliedSocietyRemainingAllowances), list.Count); - int num8 = 0; - IEnumerator<QuestInfo> enumerator = list.Take(count).GetEnumerator(); - try + int count = Math.Min(Math.Min(val, alliedSocietyRemainingAllowances), list.Count); + int num = 0; + foreach (QuestInfo item in list.Take(count)) { - num = 1244685087; - while (true) + if (_questController.AddQuestPriority(item.QuestId)) { - int num9 = num; - int num3 = 1244685087; - int num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 2: - num = 1244685087; - break; - case 0: - num = (_202B_200B_206F_206F_202B_206D_202E_206A_202B_202A_200D_202D_206C_206C_206D_206B_202C_206F_200F_200F_200C_206D_200C_202B_206D_206A_206F_206D_200B_202E_206C_200C_200D_202B_200B_206F_202B_206D_206A_202D_202E((IEnumerator)enumerator) ? 1244685086 : 1244685083); - break; - case 3: - { - int num12 = num8; - num3 = 1; - num4 = num12; - int num13 = num4 ^ num3; - int num14 = num4 & num3; - num8 = num13 + (num14 + num14); - num = 1244685087; - break; - } - case 1: - { - QuestInfo current = enumerator.Current; - num = ((!_questController.AddQuestPriority(current.QuestId)) ? 1244685087 : 1244685084); - break; - } - case 4: - return num8; - } - } - } - finally - { - num = ((enumerator == null) ? (-881446915) : (-881446916)); - while (true) - { - int num15 = num; - int num3 = -881446915; - int num4 = num15; - int num16 = num4 + num3; - int num17 = num4 & num3; - switch (num16 - (num17 + num17)) - { - case 2: - num = -881446916; - break; - case 1: - _206A_202B_200C_202D_202C_202B_206F_200D_206E_206E_206D_200C_206B_200C_202B_206B_202A_200E_206F_202B_200B_200E_206E_202E_200D_206D_200D_200F_200F_200E_202E_202A_202D_202C_206F_202E_202E_206D_206F_200E_202E((IDisposable)enumerator); - num = -881446915; - break; - case 0: - goto end_IL_02c0; - } - continue; - end_IL_02c0: - break; + num++; } } + return num; } private List<string> GetAlliedSocietyOptimalQuests(byte alliedSocietyId) { - int num = ((!_202D_200C_206C_202C_206A_202D_200F_200C_200C_206C_206F_200C_202B_200E_202D_200B_202B_200C_206E_200E_206D_206E_206A_202B_206A_206D_206D_206B_206C_206E_206A_200E_202E_200B_200B_202E_200D_206D_202C_206F_202E(_206F_202E_202C_206D_206E_206A_200C_200E_206E_206E_206C_200F_206D_202C_206E_200C_206D_206C_206E_206E_206D_206A_202D_202C_200D_206E_206A_202B_202C_202C_200F_200C_200F_206B_202E_202B_202B_202D_206D_200D_202E(typeof(EAlliedSociety).TypeHandle), (object)alliedSocietyId)) ? (-926269664) : (-926269663)); - EAlliedSociety eAlliedSociety = default(EAlliedSociety); - List<QuestId> availableAlliedSocietyQuests = default(List<QuestId>); - int num7; - List<QuestInfo> list = default(List<QuestInfo>); - while (true) + if (!Enum.IsDefined(typeof(EAlliedSociety), alliedSocietyId) || alliedSocietyId == 0) { - int num2 = num; - int num3 = -926269658; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 3: - return new List<string>(); - case 8: - eAlliedSociety = (EAlliedSociety)alliedSocietyId; - availableAlliedSocietyQuests = _serviceProvider.GetRequiredService<AlliedSocietyQuestFunctions>().GetAvailableAlliedSocietyQuests(eAlliedSociety); - num = ((availableAlliedSocietyQuests.Count != 0) ? (-926269649) : (-926269659)); - continue; - case 7: - num = ((alliedSocietyId != 0) ? (-926269650) : (-926269664)); - continue; - case 4: - return new List<string>(); - case 1: - num7 = 3; - break; - case 9: - list = (from questInfo in availableAlliedSocietyQuests.Select(delegate(QuestId questId) - { - IQuestInfo questInfo; - int num8 = (_questData.TryGetQuestInfo(questId, out questInfo) ? 939637066 : 939637067); - while (true) - { - int num9 = num8; - int num10 = 939637066; - int num11 = num9; - int num12 = num11 + num10; - int num13 = num11 & num10; - switch (num12 - (num13 + num13)) - { - case 0: - return questInfo; - case 1: - return (IQuestInfo)null; - case 2: - goto IL_0054; - } - continue; - IL_0054: - num8 = 939637067; - } - }).OfType<QuestInfo>().Where(delegate(QuestInfo questInfo) - { - Quest quest; - int num8 = ((!_questRegistry.TryGetQuest(questInfo.QuestId, out quest)) ? (-212680098) : (-212680099)); - while (true) - { - int num9 = num8; - int num10 = -212680097; - int num11 = num9; - int num12 = num11 + num10; - int num13 = num11 & num10; - switch (num12 - (num13 + num13)) - { - case 1: - return false; - case 2: - return !_202E_202D_202A_200B_206C_202D_202D_206E_202D_206E_206D_202B_200E_206F_206F_200D_206F_202C_206E_206F_200E_206D_202D_200D_202C_200B_200B_202C_202A_200F_202B_200E_206E_202B_202C_200F_206A_206F_206F_206E_202E(quest.Root); - case 0: - goto IL_0066; - } - continue; - IL_0066: - num8 = -212680099; - } - }) - where !_questController.ManualPriorityQuests.Any((Quest pq) => _003C_003Ec__DisplayClass18_0._200F_200B_200C_202B_200B_206B_206A_202C_202A_200B_202D_202A_206A_206F_206C_202A_206C_200E_200B_206D_200C_200D_200F_202C_202A_200D_202C_206B_200B_200C_202D_206C_200D_206E_206D_202B_206B_206B_200F_206F_202E(pq.Id, questInfo.QuestId)) - orderby questInfo.AlliedSocietyRank descending - select questInfo).ToList(); - num = ((list.Count != 0) ? (-926269660) : (-926269662)); - continue; - case 2: - num = (((int)eAlliedSociety <= 5) ? (-926269661) : (-926269657)); - continue; - case 6: - return new List<string>(); - case 0: - num = -926269663; - continue; - case 5: - num7 = 12; - break; - } - break; + return new List<string>(); } + EAlliedSociety eAlliedSociety = (EAlliedSociety)alliedSocietyId; + List<QuestId> availableAlliedSocietyQuests = _serviceProvider.GetRequiredService<AlliedSocietyQuestFunctions>().GetAvailableAlliedSocietyQuests(eAlliedSociety); + if (availableAlliedSocietyQuests.Count == 0) + { + return new List<string>(); + } + IQuestInfo questInfo; + Quest quest; + List<QuestInfo> list = (from questInfo in availableAlliedSocietyQuests.Select((QuestId questId) => (!_questData.TryGetQuestInfo(questId, out questInfo)) ? null : questInfo).OfType<QuestInfo>() + where _questRegistry.TryGetQuest(questInfo.QuestId, out quest) && !quest.Root.Disabled + where !_questController.ManualPriorityQuests.Any((Quest pq) => pq.Id.Equals(questInfo.QuestId)) + orderby questInfo.AlliedSocietyRank descending + select questInfo).ToList(); + if (list.Count == 0) + { + return new List<string>(); + } + int val = (((int)eAlliedSociety <= 5) ? 12 : 3); int alliedSocietyRemainingAllowances = GetAlliedSocietyRemainingAllowances(); - int count = _202A_202C_206D_200C_206E_200E_200C_202E_202C_200E_206B_200F_206E_202B_202C_200E_206D_200C_200D_200F_200D_200C_200D_200B_206C_200B_206F_200D_202B_200C_200F_202A_206A_202B_206D_200B_200D_202C_200F_202E_202E(_202A_202C_206D_200C_206E_200E_200C_202E_202C_200E_206B_200F_206E_202B_202C_200E_206D_200C_200D_200F_200D_200C_200D_200B_206C_200B_206F_200D_202B_200C_200F_202A_206A_202B_206D_200B_200D_202C_200F_202E_202E(num7, alliedSocietyRemainingAllowances), list.Count); + int count = Math.Min(Math.Min(val, alliedSocietyRemainingAllowances), list.Count); return (from q in list.Take(count) - select _003C_003Ec._206C_206D_206E_202E_206E_202C_200C_200B_200C_200B_200B_200C_200E_202A_206A_206E_202B_206E_206C_206F_200B_206C_200F_202C_202E_202C_206B_200F_202B_202A_200E_200B_200E_202D_200F_202C_200D_202D_200F_200E_202E((object)q.QuestId)).ToList(); + select q.QuestId.ToString()).ToList(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void RegisterBlacklistIpc() { - Register(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1249293845), GetBlacklistedQuests); - Register<string, bool>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1677465349), AddBlacklistedQuest); - Register<string, bool>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(237088340), RemoveBlacklistedQuest); - Register(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1237204749), ClearBlacklistedQuests); - Register<string, bool>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-652489492), IsQuestBlacklistedIpc); + Register("Questionable.GetBlacklistedQuests", GetBlacklistedQuests); + Register<string, bool>("Questionable.AddBlacklistedQuest", AddBlacklistedQuest); + Register<string, bool>("Questionable.RemoveBlacklistedQuest", RemoveBlacklistedQuest); + Register("Questionable.ClearBlacklistedQuests", ClearBlacklistedQuests); + Register<string, bool>("Questionable.IsQuestBlacklisted", IsQuestBlacklistedIpc); } private List<string> GetBlacklistedQuests() { - return _configuration.General.BlacklistedQuests.Select((ElementId q) => _003C_003Ec._206C_206D_206E_202E_206E_202C_200C_200B_200C_200B_200B_200C_200E_202A_206A_206E_202B_206E_206C_206F_200B_206C_200F_202C_202E_202C_206B_200F_202B_202A_200E_200B_200E_202D_200F_202C_200D_202D_200F_200E_202E((object)q)).ToList(); + return _configuration.General.BlacklistedQuests.Select((ElementId q) => q.ToString()).ToList(); } private bool AddBlacklistedQuest(string questId) { - ElementId elementId = default(ElementId); - int num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? 1581774878 : 1581774877); - while (true) + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null && _configuration.General.BlacklistedQuests.Add(elementId)) { - int num2 = num; - int num3 = 1581774876; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = 1581774877; - break; - case 0: - num = ((!_configuration.General.BlacklistedQuests.Add(elementId)) ? 1581774878 : 1581774872); - break; - case 4: - _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); - return true; - case 1: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? 1581774878 : 1581774876); - break; - case 2: - return false; - } + _pluginInterface.SavePluginConfig(_configuration); + return true; } + return false; } private bool RemoveBlacklistedQuest(string questId) { - ElementId elementId = default(ElementId); - int num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? (-441645662) : (-441645664)); - while (true) + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null) { - int num2 = num; - int num3 = -441645662; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + bool num = _configuration.General.BlacklistedQuests.Remove(elementId); + if (num) { - case 3: - num = -441645664; - break; - case 0: - return false; - case 1: - { - bool num5 = _configuration.General.BlacklistedQuests.Remove(elementId); - if (num5) - { - _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); - } - return num5; - } - case 2: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? (-441645662) : (-441645661)); - break; + _pluginInterface.SavePluginConfig(_configuration); } + return num; } + return false; } private bool ClearBlacklistedQuests() { _configuration.General.BlacklistedQuests.Clear(); - _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); + _pluginInterface.SavePluginConfig(_configuration); return true; } private bool IsQuestBlacklistedIpc(string questId) { - ElementId elementId = default(ElementId); - int num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? 500134267 : 500134265); - while (true) + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null) { - int num2 = num; - int num3 = 500134266; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 500134265; - break; - case 0: - return _questFunctions.IsQuestBlacklisted(elementId); - case 3: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? 500134267 : 500134266); - break; - case 1: - return false; - } + return _questFunctions.IsQuestBlacklisted(elementId); } + return false; } public QuestionableIpc(QuestController questController, EventInfoComponent eventInfoComponent, QuestRegistry questRegistry, QuestFunctions questFunctions, QuestData questData, ManualPriorityComponent manualPriorityComponent, Configuration configuration, IDalamudPluginInterface pluginInterface, IServiceProvider serviceProvider, AutoDutyIpc autoDutyIpc, IObjectTable objectTable) @@ -1355,54 +516,21 @@ internal sealed class QuestionableIpc : IDisposable public void Dispose() { - using (List<Action>.Enumerator enumerator = _unregisterActions.GetEnumerator()) + foreach (Action unregisterAction in _unregisterActions) { - int num = -1757565413; - while (true) - { - int num2 = num; - int num3 = -1757565416; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -1757565413; - break; - case 3: - num = (enumerator.MoveNext() ? (-1757565415) : (-1757565416)); - break; - case 1: - enumerator.Current(); - num = -1757565413; - break; - case 0: - goto end_IL_0017; - } - continue; - end_IL_0017: - break; - } + unregisterAction(); } _unregisterActions.Clear(); } - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] private void RegisterDutyModeIpc() { - Register(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-917197889), GetDefaultDutyMode); - Register<int, bool>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2032556591), SetDefaultDutyMode); - Register<uint, int>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1663101475), GetDutyModeOverride); - Register<uint, int, bool>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1851355969), SetDutyModeOverride); - Register<uint, bool>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1908470567), ClearDutyModeOverride); - Register(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1999716752), ClearAllDutyModeOverrides); + Register("Questionable.GetDefaultDutyMode", GetDefaultDutyMode); + Register<int, bool>("Questionable.SetDefaultDutyMode", SetDefaultDutyMode); + Register<uint, int>("Questionable.GetDutyModeOverride", GetDutyModeOverride); + Register<uint, int, bool>("Questionable.SetDutyModeOverride", SetDutyModeOverride); + Register<uint, bool>("Questionable.ClearDutyModeOverride", ClearDutyModeOverride); + Register("Questionable.ClearAllDutyModeOverrides", ClearAllDutyModeOverrides); } private int GetDefaultDutyMode() @@ -1412,78 +540,33 @@ internal sealed class QuestionableIpc : IDisposable private bool SetDefaultDutyMode(int dutyMode) { - int num = (_202D_200C_206C_202C_206A_202D_200F_200C_200C_206C_206F_200C_202B_200E_202D_200B_202B_200C_206E_200E_206D_206E_206A_202B_206A_206D_206D_206B_206C_206E_206A_200E_202E_200B_200B_202E_200D_206D_202C_206F_202E(_206F_202E_202C_206D_206E_206A_200C_200E_206E_206E_206C_200F_206D_202C_206E_200C_206D_206C_206E_206E_206D_206A_202D_202C_200D_206E_206A_202B_202C_202C_200F_200C_200F_206B_202E_202B_202B_202D_206D_200D_202E(typeof(EDutyMode).TypeHandle), (object)dutyMode) ? 1207559100 : 1207559101); - while (true) + if (!Enum.IsDefined(typeof(EDutyMode), dutyMode)) { - int num2 = num; - int num3 = 1207559100; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _configuration.Duties.DefaultDutyMode = (EDutyMode)dutyMode; - _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); - return true; - case 1: - return false; - case 2: - goto IL_007d; - } - continue; - IL_007d: - num = 1207559101; + return false; } + _configuration.Duties.DefaultDutyMode = (EDutyMode)dutyMode; + _pluginInterface.SavePluginConfig(_configuration); + return true; } private int GetDutyModeOverride(uint contentFinderConditionId) { - EDutyMode value; - int num = ((!_configuration.Duties.DutyModeOverrides.TryGetValue(contentFinderConditionId, out value)) ? 623215586 : 623215587); - while (true) + if (_configuration.Duties.DutyModeOverrides.TryGetValue(contentFinderConditionId, out var value)) { - int num2 = num; - int num3 = 623215586; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0058; - case 1: - return (int)value; - case 0: - return -1; - } - continue; - IL_0058: - num = 623215587; + return (int)value; } + return -1; } private bool SetDutyModeOverride(uint contentFinderConditionId, int dutyMode) { - int num = (_202D_200C_206C_202C_206A_202D_200F_200C_200C_206C_206F_200C_202B_200E_202D_200B_202B_200C_206E_200E_206D_206E_206A_202B_206A_206D_206D_206B_206C_206E_206A_200E_202E_200B_200B_202E_200D_206D_202C_206F_202E(_206F_202E_202C_206D_206E_206A_200C_200E_206E_206E_206C_200F_206D_202C_206E_200C_206D_206C_206E_206E_206D_206A_202D_202C_200D_206E_206A_202B_202C_202C_200F_200C_200F_206B_202E_202B_202B_202D_206D_200D_202E(typeof(EDutyMode).TypeHandle), (object)dutyMode) ? (-572078912) : (-572078909)); - while (true) + if (!Enum.IsDefined(typeof(EDutyMode), dutyMode)) { - int num2 = num; - int num3 = -572078910; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - _configuration.Duties.DutyModeOverrides[contentFinderConditionId] = (EDutyMode)dutyMode; - _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); - return true; - case 1: - return false; - case 0: - goto IL_0081; - } - continue; - IL_0081: - num = -572078909; + return false; } + _configuration.Duties.DutyModeOverrides[contentFinderConditionId] = (EDutyMode)dutyMode; + _pluginInterface.SavePluginConfig(_configuration); + return true; } private bool ClearDutyModeOverride(uint contentFinderConditionId) @@ -1491,7 +574,7 @@ internal sealed class QuestionableIpc : IDisposable bool num = _configuration.Duties.DutyModeOverrides.Remove(contentFinderConditionId); if (num) { - _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); + _pluginInterface.SavePluginConfig(_configuration); } return num; } @@ -1499,18 +582,17 @@ internal sealed class QuestionableIpc : IDisposable private bool ClearAllDutyModeOverrides() { _configuration.Duties.DutyModeOverrides.Clear(); - _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); + _pluginInterface.SavePluginConfig(_configuration); return true; } - [MethodImpl(MethodImplOptions.NoInlining)] private void RegisterLevelingModeIpc() { - Register(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-498899778), IsLevelingModeEnabled); - Register<bool, bool>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1336897088), SetLevelingModeEnabled); - Register(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1557733366), GetMsqLevelLockInfo); - Register(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1017103127), StartLevelingMode); - Register(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-622057907), StopLevelingMode); + Register("Questionable.IsLevelingModeEnabled", IsLevelingModeEnabled); + Register<bool, bool>("Questionable.SetLevelingModeEnabled", SetLevelingModeEnabled); + Register("Questionable.GetMsqLevelLockInfo", GetMsqLevelLockInfo); + Register("Questionable.StartLevelingMode", StartLevelingMode); + Register("Questionable.StopLevelingMode", StopLevelingMode); } private bool IsLevelingModeEnabled() @@ -1521,71 +603,33 @@ internal sealed class QuestionableIpc : IDisposable private bool SetLevelingModeEnabled(bool enabled) { _configuration.Duties.RunLevelingModeWhenUnderleveled = enabled; - _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); + _pluginInterface.SavePluginConfig(_configuration); return true; } private MsqLevelLockData? GetMsqLevelLockInfo() { - (bool isLevelLocked, int levelsNeeded, int requiredLevel, string? questName) msqLevelLockInfo = _questFunctions.GetMsqLevelLockInfo(); - bool item = msqLevelLockInfo.isLevelLocked; - int item2 = msqLevelLockInfo.levelsNeeded; - int item3 = msqLevelLockInfo.requiredLevel; - string item4 = msqLevelLockInfo.questName; - int num = (item ? 1070966436 : 1070966439); - while (true) + var (flag, levelsNeeded, requiredLevel, questName) = _questFunctions.GetMsqLevelLockInfo(); + if (!flag) { - int num2 = num; - int num3 = 1070966438; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0072; - case 1: - return null; - case 2: - return new MsqLevelLockData - { - IsLevelLocked = item, - LevelsNeeded = item2, - RequiredLevel = item3, - QuestName = item4 - }; - } - continue; - IL_0072: - num = 1070966439; + return null; } + return new MsqLevelLockData + { + IsLevelLocked = flag, + LevelsNeeded = levelsNeeded, + RequiredLevel = requiredLevel, + QuestName = questName + }; } private bool StartLevelingMode() { - AutoDutyIpc autoDutyIpc = _autoDutyIpc; - IPlayerCharacter playerCharacter = _200C_206B_206C_202A_206C_202C_206A_200D_206F_202A_202E_206C_202A_200B_206D_200E_202A_206D_200D_202E_206C_202B_206A_206C_202D_202B_206C_206B_200E_202E_206A_200F_200E_206A_206F_202A_202C_206F_202E_206F_202E(_objectTable); - int num = (autoDutyIpc.IsConfiguredToRunLevelingMode((playerCharacter != null) ? _202C_206F_200F_202A_202A_206B_206D_206D_200F_206F_200B_202A_206C_206E_206C_206F_200F_206F_200D_206F_206A_206F_202E_206F_202C_200F_202D_206C_206C_202C_202B_206C_200D_202C_200C_202D_200D_206F_206D_202C_202E((ICharacter)playerCharacter) : 0) ? 107554743 : 107554740); - while (true) + if (!_autoDutyIpc.IsConfiguredToRunLevelingMode(_objectTable.LocalPlayer?.Level ?? 0)) { - int num2 = num; - int num3 = 107554741; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_006a; - case 1: - return false; - case 2: - return _autoDutyIpc.StartLevelingMode(); - } - continue; - IL_006a: - num = 107554740; + return false; } + return _autoDutyIpc.StartLevelingMode(); } private bool StopLevelingMode() @@ -1593,17 +637,15 @@ internal sealed class QuestionableIpc : IDisposable return _autoDutyIpc.Stop(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void RegisterMetaIpc() { - Register(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2128629030), () => ((int, int))ApiVersion); + Register("Questionable.ApiVersion", () => ((int, int))ApiVersion); } - [MethodImpl(MethodImplOptions.NoInlining)] private void RegisterMsqPriorityIpc() { - Register(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1584443572), GetMsqPriorityMode); - Register<int, bool>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1319735175), SetMsqPriorityMode); + Register("Questionable.GetMsqPriorityMode", GetMsqPriorityMode); + Register<int, bool>("Questionable.SetMsqPriorityMode", SetMsqPriorityMode); } private int GetMsqPriorityMode() @@ -1613,73 +655,42 @@ internal sealed class QuestionableIpc : IDisposable private bool SetMsqPriorityMode(int mode) { - int num = (_202D_200C_206C_202C_206A_202D_200F_200C_200C_206C_206F_200C_202B_200E_202D_200B_202B_200C_206E_200E_206D_206E_206A_202B_206A_206D_206D_206B_206C_206E_206A_200E_202E_200B_200B_202E_200D_206D_202C_206F_202E(_206F_202E_202C_206D_206E_206A_200C_200E_206E_206E_206C_200F_206D_202C_206E_200C_206D_206C_206E_206E_206D_206A_202D_202C_200D_206E_206A_202B_202C_202C_200F_200C_200F_206B_202E_202B_202B_202D_206D_200D_202E(typeof(Configuration.EMsqPriorityMode).TypeHandle), (object)mode) ? 996305117 : 996305116); - while (true) + if (!Enum.IsDefined(typeof(Configuration.EMsqPriorityMode), mode)) { - int num2 = num; - int num3 = 996305117; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - _configuration.General.MsqPriority = (Configuration.EMsqPriorityMode)mode; - _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); - return true; - case 1: - return false; - case 2: - goto IL_007b; - } - continue; - IL_007b: - num = 996305116; + return false; } + _configuration.General.MsqPriority = (Configuration.EMsqPriorityMode)mode; + _pluginInterface.SavePluginConfig(_configuration); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] private void RegisterPriorityQuestIpc() { - Register<string, bool>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(656046441), ImportQuestPriority); - Register<string, bool>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2131076108), AddQuestPriority); - Register(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1097084822), ClearQuestPriority); - Register<int, string, bool>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-967816125), InsertQuestPriority); - Register(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1016325483), _manualPriorityComponent.EncodeQuestPriority); - Register(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1614761), GetPriorityQuests); - Register<string, bool>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-111599131), RemovePriorityQuest); - Register<string, int, bool>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1155729665), ReorderPriorityQuest); - Register(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-983485644), GetAvailablePresets); - Register<string, List<string>>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(819753663), GetPresetQuests); - Register<string, int>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(426331559), AddPresetToPriority); - Register<string, bool>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(712685081), IsPresetAvailable); - Register<string, bool>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1861068734), IsQuestInPriority); - Register<string, int>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(927613685), GetQuestPriorityIndex); - Register(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1967016769), HasAvailablePriorityQuests); + Register<string, bool>("Questionable.ImportQuestPriority", ImportQuestPriority); + Register<string, bool>("Questionable.AddQuestPriority", AddQuestPriority); + Register("Questionable.ClearQuestPriority", ClearQuestPriority); + Register<int, string, bool>("Questionable.InsertQuestPriority", InsertQuestPriority); + Register("Questionable.ExportQuestPriority", _manualPriorityComponent.EncodeQuestPriority); + Register("Questionable.GetPriorityQuests", GetPriorityQuests); + Register<string, bool>("Questionable.RemovePriorityQuest", RemovePriorityQuest); + Register<string, int, bool>("Questionable.ReorderPriorityQuest", ReorderPriorityQuest); + Register("Questionable.GetAvailablePresets", GetAvailablePresets); + Register<string, List<string>>("Questionable.GetPresetQuests", GetPresetQuests); + Register<string, int>("Questionable.AddPresetToPriority", AddPresetToPriority); + Register<string, bool>("Questionable.IsPresetAvailable", IsPresetAvailable); + Register<string, bool>("Questionable.IsQuestInPriority", IsQuestInPriority); + Register<string, int>("Questionable.GetQuestPriorityIndex", GetQuestPriorityIndex); + Register("Questionable.HasAvailablePriorityQuests", HasAvailablePriorityQuests); } private bool ImportQuestPriority(string encodedQuestPriority) { List<ElementId> list = ManualPriorityComponent.DecodeQuestPriority(encodedQuestPriority); - int num = ((list.Count <= 0) ? (-1795566929) : (-1795566932)); - while (true) + if (list.Count > 0) { - int num2 = num; - int num3 = -1795566930; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return false; - case 2: - return _questController.ImportQuestPriority(list); - case 0: - goto IL_005f; - } - continue; - IL_005f: - num = -1795566932; + return _questController.ImportQuestPriority(list); } + return false; } private bool ClearQuestPriority() @@ -1690,254 +701,81 @@ internal sealed class QuestionableIpc : IDisposable private bool AddQuestPriority(string questId) { - ElementId elementId = default(ElementId); - int num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? 75745772 : 75745773); - while (true) + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null && _questRegistry.IsKnownQuest(elementId)) { - int num2 = num; - int num3 = 75745772; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = ((!_questRegistry.IsKnownQuest(elementId)) ? 75745772 : 75745768); - break; - case 0: - return false; - case 3: - num = 75745773; - break; - case 4: - return _questController.AddQuestPriority(elementId); - case 1: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? 75745772 : 75745774); - break; - } + return _questController.AddQuestPriority(elementId); } + return false; } private bool InsertQuestPriority(int index, string questId) { - ElementId elementId = default(ElementId); - int num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? 1449771337 : 1449771336); - while (true) + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null && _questRegistry.IsKnownQuest(elementId)) { - int num2 = num; - int num3 = 1449771339; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 4: - num = ((!_questRegistry.IsKnownQuest(elementId)) ? 1449771337 : 1449771338); - break; - case 3: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? 1449771337 : 1449771343); - break; - case 0: - num = 1449771336; - break; - case 1: - return _questController.InsertQuestPriority(index, elementId); - } + return _questController.InsertQuestPriority(index, elementId); } + return false; } private List<string> GetPriorityQuests() { - return _questController.ManualPriorityQuests.Select((Quest q) => _003C_003Ec._206C_206D_206E_202E_206E_202C_200C_200B_200C_200B_200B_200C_200E_202A_206A_206E_202B_206E_206C_206F_200B_206C_200F_202C_202E_202C_206B_200F_202B_202A_200E_200B_200E_202D_200F_202C_200D_202D_200F_200E_202E((object)q.Id)).ToList(); + return _questController.ManualPriorityQuests.Select((Quest q) => q.Id.ToString()).ToList(); } private bool RemovePriorityQuest(string questId) { - ElementId elementId = default(ElementId); - int num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? 382437358 : 382437359); - Quest quest = default(Quest); - while (true) + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null) { - int num2 = num; - int num3 = 382437358; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + Quest quest = _questController.ManualPriorityQuests.FirstOrDefault((Quest q) => q.Id.Equals(elementId)); + if (quest != null) { - case 4: - quest = _questController.ManualPriorityQuests.FirstOrDefault((Quest q) => _003C_003Ec__DisplayClass104_0._206A_206C_206B_200B_206A_200B_202C_202E_200C_206B_206B_200F_200D_202C_206D_202B_200D_200F_202E_202E_206F_202B_202D_206A_200F_200F_206F_202C_202E_206D_206A_202D_206D_200B_200C_206B_202E_202B_200F_200F_202E(q.Id, elementId)); - num = ((quest == null) ? 382437358 : 382437357); - break; - case 1: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? 382437358 : 382437354); - break; - case 3: _questController.ManualPriorityQuests.Remove(quest); _questController.SavePriorityQuests(); return true; - case 2: - num = 382437359; - break; - case 0: - return false; } } + return false; } private bool ReorderPriorityQuest(string questId, int newIndex) { - ElementId elementId = default(ElementId); - int num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? (-939689696) : (-939689689)); - Quest quest = default(Quest); - while (true) + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null) { - int num2 = num; - int num3 = -939689695; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + Quest quest = _questController.ManualPriorityQuests.FirstOrDefault((Quest q) => q.Id.Equals(elementId)); + if (quest != null && newIndex >= 0 && newIndex < _questController.ManualPriorityQuests.Count) { - case 4: - quest = _questController.ManualPriorityQuests.FirstOrDefault((Quest q) => _003C_003Ec__DisplayClass105_0._200F_202C_206E_206D_200E_206D_206C_202D_202D_202D_200B_200F_202B_202C_200C_202A_200E_200F_200C_200B_202D_206F_206E_202A_202D_200D_202E_202C_200E_200D_206C_202C_200B_206D_202B_206D_206F_200C_206F_206F_202E(q.Id, elementId)); - num = ((quest == null) ? (-939689696) : (-939689694)); - break; - case 6: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? (-939689696) : (-939689691)); - break; - case 1: - return false; - case 2: _questController.ManualPriorityQuests.Remove(quest); _questController.ManualPriorityQuests.Insert(newIndex, quest); _questController.SavePriorityQuests(); return true; - case 5: - num = ((newIndex >= _questController.ManualPriorityQuests.Count) ? (-939689696) : (-939689693)); - break; - case 0: - num = -939689689; - break; - case 3: - num = ((newIndex < 0) ? (-939689696) : (-939689692)); - break; } } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private List<string> GetAvailablePresets() { - return new List<string> - { - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(305232177), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1294966414) - }; + return new List<string> { "crystal_tower", "hard_primals" }; } - [MethodImpl(MethodImplOptions.NoInlining)] private List<string> GetPresetQuests(string presetName) { - int num = (_206D_206E_202E_202E_200D_200D_202B_200D_206D_206E_202D_202A_206C_202D_206C_200F_202C_206E_202E_200D_206A_202A_206F_202C_202C_200E_200E_202B_200E_200E_200C_206E_206F_202A_206C_200E_200F_206E_200C_200E_202E(presetName, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1905885778)) ? (-1419346625) : (-1419346631)); - List<ElementId> source = default(List<ElementId>); - while (true) - { - int num2 = num; - int num3 = -1419346629; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1419346631; - break; - case 4: - source = QuestData.CrystalTowerQuests.Cast<ElementId>().ToList(); - num = -1419346630; - break; - case 1: - return source.Select((ElementId q) => _003C_003Ec._206C_206D_206E_202E_206E_202C_200C_200B_200C_200B_200B_200C_200E_202A_206A_206E_202B_206E_206C_206F_200B_206C_200F_202C_202E_202C_206B_200F_202B_202A_200E_200B_200E_202D_200F_202C_200D_202D_200F_200E_202E((object)q)).ToList(); - case 5: - source = new List<ElementId>(); - num = -1419346630; - break; - case 2: - num = (_206D_206E_202E_202E_200D_200D_202B_200D_206D_206E_202D_202A_206C_202D_206C_200F_202C_206E_202E_200D_206A_202A_206F_202C_202C_200E_200E_202B_200E_200E_200C_206E_206F_202A_206C_200E_200F_206E_200C_200E_202E(presetName, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(158597147)) ? (-1419346632) : (-1419346627)); - break; - case 6: - num = -1419346626; - break; - case 3: - source = QuestData.HardModePrimals.Cast<ElementId>().ToList(); - num = -1419346630; - break; - } - } + List<ElementId> source = ((presetName == "crystal_tower") ? QuestData.CrystalTowerQuests.Cast<ElementId>().ToList() : ((!(presetName == "hard_primals")) ? new List<ElementId>() : QuestData.HardModePrimals.Cast<ElementId>().ToList())); + return source.Select((ElementId q) => q.ToString()).ToList(); } private int AddPresetToPriority(string presetName) { List<string> presetQuests = GetPresetQuests(presetName); int num = 0; - using List<string>.Enumerator enumerator = presetQuests.GetEnumerator(); - int num2 = 1206942101; - _003C_003Ec__DisplayClass108_0 _003C_003Ec__DisplayClass108_ = default(_003C_003Ec__DisplayClass108_0); - while (true) + foreach (string item in presetQuests) { - int num3 = num2; - int num4 = 1206942103; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) + if (ElementId.TryFromString(item, out ElementId elementId) && elementId != null && (_questFunctions.IsReadyToAcceptQuest(elementId) || _questFunctions.IsQuestAccepted(elementId)) && !_questController.ManualPriorityQuests.Any((Quest q) => q.Id.Equals(elementId)) && _questRegistry.IsKnownQuest(elementId) && _questController.AddQuestPriority(elementId)) { - case 0: - num2 = 1206942101; - break; - case 9: - num2 = ((!_questFunctions.IsQuestAccepted(_003C_003Ec__DisplayClass108_.elementId)) ? 1206942097 : 1206942108); - break; - case 3: - { - int num8 = num; - num4 = 1; - num5 = num8; - num = (num5 | num4) + (num5 & num4); - num2 = 1206942101; - break; - } - case 8: - if (_questRegistry.IsKnownQuest(_003C_003Ec__DisplayClass108_.elementId)) - { - num2 = 1206942099; - break; - } - goto case 6; - case 10: - num2 = (_questFunctions.IsReadyToAcceptQuest(_003C_003Ec__DisplayClass108_.elementId) ? 1206942108 : 1206942110); - break; - case 6: - num2 = 1206942101; - break; - case 2: - num2 = (enumerator.MoveNext() ? 1206942096 : 1206942102); - break; - case 5: - num2 = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(_003C_003Ec__DisplayClass108_.elementId, (ElementId)null)) ? 1206942101 : 1206942109); - break; - case 4: - num2 = ((!_questController.AddQuestPriority(_003C_003Ec__DisplayClass108_.elementId)) ? 1206942101 : 1206942100); - break; - case 11: - num2 = (_questController.ManualPriorityQuests.Any(_003C_003Ec__DisplayClass108_._003CAddPresetToPriority_003Eb__0) ? 1206942097 : 1206942111); - break; - case 7: - { - string current = enumerator.Current; - _003C_003Ec__DisplayClass108_ = new _003C_003Ec__DisplayClass108_0(); - num2 = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(current, ref _003C_003Ec__DisplayClass108_.elementId)) ? 1206942101 : 1206942098); - break; - } - case 1: - return num; + num++; } } + return num; } private bool IsPresetAvailable(string presetName) @@ -1947,59 +785,24 @@ internal sealed class QuestionableIpc : IDisposable private bool IsQuestInPriority(string questId) { - ElementId elementId = default(ElementId); - int num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? 119725107 : 119725104); - while (true) + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null) { - int num2 = num; - int num3 = 119725105; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = 119725104; - break; - case 1: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? 119725107 : 119725105); - break; - case 2: - return false; - case 0: - return _questController.ManualPriorityQuests.Any((Quest q) => _003C_003Ec__DisplayClass110_0._206B_200E_200D_206D_206F_200F_200C_200D_200B_202E_200B_200C_206E_200F_200B_200E_206A_200D_206D_202C_202B_206B_206C_206F_200C_202B_206A_206A_202D_206E_200F_202C_206D_206C_206C_202C_200E_200D_206B_206A_202E(q.Id, elementId)); - } + return _questController.ManualPriorityQuests.Any((Quest q) => q.Id.Equals(elementId)); } + return false; } private int GetQuestPriorityIndex(string questId) { - ElementId elementId = default(ElementId); - int num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? (-1944992928) : (-1944992921)); - Quest quest = default(Quest); - while (true) + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null) { - int num2 = num; - int num3 = -1944992924; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + Quest quest = _questController.ManualPriorityQuests.FirstOrDefault((Quest q) => q.Id.Equals(elementId)); + if (quest != null) { - case 2: - num = -1944992921; - break; - case 1: return _questController.ManualPriorityQuests.IndexOf(quest); - case 3: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? (-1944992928) : (-1944992924)); - break; - case 4: - return -1; - case 0: - quest = _questController.ManualPriorityQuests.FirstOrDefault((Quest q) => _003C_003Ec__DisplayClass111_0._206B_200C_200D_200C_200B_202A_200F_206B_206C_202A_206A_200E_206D_200B_202E_200B_200C_206F_206A_206C_200B_202C_202B_206B_200E_206D_206A_206A_200B_206D_202A_202A_206B_202A_200C_202B_206E_200B_200F_202C_202E(q.Id, elementId)); - num = ((quest == null) ? (-1944992928) : (-1944992923)); - break; } } + return -1; } private bool HasAvailablePriorityQuests() @@ -2007,330 +810,152 @@ internal sealed class QuestionableIpc : IDisposable return _questFunctions.GetNextPriorityQuestsThatCanBeAccepted().Any((PriorityQuestInfo x) => x.IsAvailable); } - [MethodImpl(MethodImplOptions.NoInlining)] private void RegisterQuestStateIpc() { - Register(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1651197002), delegate - { - int num = ((_questController.AutomationType != QuestController.EAutomationType.Manual) ? 1200261431 : 1200261428); - while (true) - { - int num2 = num; - int num3 = 1200261430; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004b; - case 2: - return _questController.IsRunning; - case 1: - return true; - } - continue; - IL_004b: - num = 1200261428; - } - }); - Register(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1278527463), delegate - { - QuestController.QuestProgress? currentQuest = _questController.CurrentQuest; - return (currentQuest == null) ? null : _202D_206C_206F_206E_200E_206F_206E_200B_202C_202D_200E_202D_202D_200F_206A_202B_206B_206D_200D_206C_202A_206C_206F_206A_202B_206B_206B_200D_200C_206B_202A_206F_206B_202C_206E_202A_200D_206E_202D_200F_202E((object)currentQuest.Quest.Id); - }); - Register(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1450560591), GetStepData); - Register(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-54425046), GetCurrentTask); - Register(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-181500324), () => (from q in _eventInfoComponent.GetCurrentlyActiveEventQuests() - select _003C_003Ec._206C_206D_206E_202E_206E_202C_200C_200B_200C_200B_200B_200C_200E_202A_206A_206E_202B_206E_206C_206F_200B_206C_200F_202C_202E_202C_206B_200F_202B_202A_200E_200B_200E_202D_200F_202C_200D_202D_200F_200E_202E((object)q)).ToList()); - Register(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(778415138), (string questId) => StartQuest(questId, single: false)); - Register(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1952123447), (string questId) => StartQuest(questId, single: true)); - Register<string, bool>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1428092792), IsQuestLocked); - Register<string, bool>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1628290832), IsQuestComplete); - Register<string, bool>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1828488872), IsReadyToAcceptQuest); - Register<string, bool>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1830588968), IsQuestAccepted); - Register<string, bool>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1245851615), IsQuestUnobtainable); + Register("Questionable.IsRunning", () => _questController.AutomationType != QuestController.EAutomationType.Manual || _questController.IsRunning); + Register("Questionable.GetCurrentQuestId", () => _questController.CurrentQuest?.Quest.Id.ToString()); + Register("Questionable.GetCurrentStepData", GetStepData); + Register("Questionable.GetCurrentTask", GetCurrentTask); + Register("Questionable.GetCurrentlyActiveEventQuests", () => (from q in _eventInfoComponent.GetCurrentlyActiveEventQuests() + select q.ToString()).ToList()); + Register("Questionable.StartQuest", (string questId) => StartQuest(questId, single: false)); + Register("Questionable.StartSingleQuest", (string questId) => StartQuest(questId, single: true)); + Register<string, bool>("Questionable.IsQuestLocked", IsQuestLocked); + Register<string, bool>("Questionable.IsQuestComplete", IsQuestComplete); + Register<string, bool>("Questionable.IsReadyToAcceptQuest", IsReadyToAcceptQuest); + Register<string, bool>("Questionable.IsQuestAccepted", IsQuestAccepted); + Register<string, bool>("Questionable.IsQuestUnobtainable", IsQuestUnobtainable); } - [MethodImpl(MethodImplOptions.NoInlining)] private bool StartQuest(string questId, bool single) { - ElementId elementId = default(ElementId); - int num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? 2028382427 : 2028382426); - Quest quest = default(Quest); - while (true) + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null && _questRegistry.TryGetQuest(elementId, out Quest quest)) { - int num2 = num; - int num3 = 2028382431; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _questController.SetNextQuest(quest); + if (single) { - case 4: - return false; - case 5: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? 2028382427 : 2028382430); - break; - case 6: - _questController.StartSingleQuest(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1245876374)); - num = 2028382428; - break; - case 7: - num = 2028382426; - break; - case 1: - num = ((!_questRegistry.TryGetQuest(elementId, out quest)) ? 2028382427 : 2028382431); - break; - case 2: - _questController.Start(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1245876374)); - num = 2028382428; - break; - case 0: - _questController.SetNextQuest(quest); - num = ((!single) ? 2028382429 : 2028382425); - break; - case 3: - return true; + _questController.StartSingleQuest("IPCQuestSelection"); } + else + { + _questController.Start("IPCQuestSelection"); + } + return true; } + return false; } private StepData? GetStepData() { QuestController.QuestProgress currentQuest = _questController.CurrentQuest; - int num = ((currentQuest != null) ? 1405114099 : 1405114101); - string text = default(string); - QuestStep questStep = default(QuestStep); - while (true) + if (currentQuest == null) { - int num2 = num; - int num3 = 1405114097; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - num = 1405114101; - break; - case 0: - return new StepData - { - QuestId = text, - Sequence = currentQuest.Sequence, - Step = currentQuest.Step, - InteractionType = _200D_206C_202A_202B_206D_202A_202B_206C_202C_206E_202A_206F_202E_200D_200B_206D_206E_202C_206B_206D_206D_202A_200C_200D_200B_200F_200F_202B_206F_202D_206A_200E_202A_206F_202C_202D_202C_200D_200B_202D_202E(questStep).ToString(), - Position = _206F_202B_202A_202A_200B_202D_202E_202D_206D_206E_200B_202D_206C_200E_200C_202B_202D_202A_200E_206D_206D_202C_200D_206B_202B_206C_206A_206B_206D_202E_202B_202E_200E_206F_206C_202E_202B_206B_200C_202C_202E(questStep), - TerritoryId = _202B_202C_200F_200C_206F_200C_200F_202E_200F_206B_206E_206F_206D_202C_202D_200C_200D_200B_206A_206A_200F_206B_200D_206F_200F_206E_200D_200D_202D_202A_200C_206E_200F_200C_200B_200D_206D_200B_206D_202E_202E(questStep) - }; - case 3: - return null; - case 4: - return null; - case 5: - return null; - case 1: - { - QuestSequence? questSequence = currentQuest.Quest.FindSequence(currentQuest.Sequence); - questStep = ((questSequence != null) ? _206A_202B_202B_206B_202D_200C_206E_202B_200B_200E_206E_202D_206B_200C_206D_206D_202B_202B_202A_206B_200B_200F_200D_200E_206B_200E_202A_200D_206B_200D_206B_200E_206D_200D_200B_202C_206B_206C_200F_206F_202E(questSequence, currentQuest.Step) : null); - num = ((questStep != null) ? 1405114097 : 1405114098); - break; - } - case 2: - text = _202D_206C_206F_206E_200E_206F_206E_200B_202C_202D_200E_202D_202D_200F_206A_202B_206B_206D_200D_206C_202A_206C_206F_206A_202B_206B_206B_200D_200C_206B_202A_206F_206B_202C_206E_202A_200D_206E_202D_200F_202E((object)currentQuest.Quest.Id); - num = ((!_206B_202E_202A_202A_206C_206F_200D_206E_200F_200C_206A_200D_206C_200D_200D_202C_206D_206B_202E_202B_206F_202D_200F_206E_200B_200D_206E_200C_206E_200B_206A_202B_202B_206A_206A_200E_206C_202A_200E_200E_202E(text)) ? 1405114096 : 1405114100); - break; - } + return null; } + string text = currentQuest.Quest.Id.ToString(); + if (string.IsNullOrEmpty(text)) + { + return null; + } + QuestStep questStep = currentQuest.Quest.FindSequence(currentQuest.Sequence)?.FindStep(currentQuest.Step); + if (questStep == null) + { + return null; + } + return new StepData + { + QuestId = text, + Sequence = currentQuest.Sequence, + Step = currentQuest.Step, + InteractionType = questStep.InteractionType.ToString(), + Position = questStep.Position, + TerritoryId = questStep.TerritoryId + }; } - [MethodImpl(MethodImplOptions.NoInlining)] private TaskData? GetCurrentTask() { ITask task = _questController.TaskQueue.CurrentTaskExecutor?.CurrentTask; - int num = ((task != null) ? (-66796143) : (-66796144)); - while (true) + if (task == null) { - int num2 = num; - int num3 = -66796143; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_006c; - case 0: - { - int remainingTaskCount = _questController.TaskQueue.RemainingTasks.Count(); - string taskName = _202D_206C_206F_206E_200E_206F_206E_200B_202C_202D_200E_202D_202D_200F_206A_202B_206B_206D_200D_206C_202A_206C_206F_206A_202B_206B_206B_200D_200C_206B_202A_206F_206B_202C_206E_202A_200D_206E_202D_200F_202E((object)task) ?? global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(896879528); - return new TaskData - { - TaskName = taskName, - RemainingTaskCount = remainingTaskCount - }; - } - case 1: - return null; - } - continue; - IL_006c: - num = -66796144; + return null; } + int remainingTaskCount = _questController.TaskQueue.RemainingTasks.Count(); + string taskName = task.ToString() ?? "Unknown"; + return new TaskData + { + TaskName = taskName, + RemainingTaskCount = remainingTaskCount + }; } private bool IsQuestLocked(string questId) { - ElementId elementId = default(ElementId); - int num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? 1675380547 : 1675380544); - while (true) + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null && _questRegistry.TryGetQuest(elementId, out Quest _)) { - int num2 = num; - int num3 = 1675380547; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return true; - case 2: - { - num = ((!_questRegistry.TryGetQuest(elementId, out Quest _)) ? 1675380547 : 1675380546); - break; - } - case 3: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? 1675380547 : 1675380545); - break; - case 1: - return _questFunctions.IsQuestLocked(elementId); - case 4: - num = 1675380544; - break; - } + return _questFunctions.IsQuestLocked(elementId); } + return true; } private bool IsQuestComplete(string questId) { - ElementId elementId = default(ElementId); - int num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? 215071933 : 215071935); - while (true) + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null) { - int num2 = num; - int num3 = 215071932; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 215071935; - break; - case 0: - return _questFunctions.IsQuestComplete(elementId); - case 3: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? 215071933 : 215071932); - break; - case 1: - return false; - } + return _questFunctions.IsQuestComplete(elementId); } + return false; } private bool IsReadyToAcceptQuest(string questId) { - ElementId elementId = default(ElementId); - int num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? 657394152 : 657394154); - while (true) + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null) { - int num2 = num; - int num3 = 657394155; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return false; - case 1: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? 657394152 : 657394155); - break; - case 2: - num = 657394154; - break; - case 0: - return _questFunctions.IsReadyToAcceptQuest(elementId); - } + return _questFunctions.IsReadyToAcceptQuest(elementId); } + return false; } private bool IsQuestAccepted(string questId) { - ElementId elementId = default(ElementId); - int num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? 1441677022 : 1441677020); - while (true) + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null) { - int num2 = num; - int num3 = 1441677022; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return _questFunctions.IsQuestAccepted(elementId); - case 2: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? 1441677022 : 1441677023); - break; - case 0: - return false; - case 3: - num = 1441677020; - break; - } + return _questFunctions.IsQuestAccepted(elementId); } + return false; } private bool IsQuestUnobtainable(string questId) { - ElementId elementId = default(ElementId); - int num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? 880063755 : 880063754); - while (true) + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null) { - int num2 = num; - int num3 = 880063755; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = 880063754; - break; - case 0: - return false; - case 2: - return _questFunctions.IsQuestUnobtainable(elementId); - case 1: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? 880063755 : 880063753); - break; - } + return _questFunctions.IsQuestUnobtainable(elementId); } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private void RegisterStopConditionIpc() { - Register(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1849512536), GetStopConditionsEnabled); - Register<bool, bool>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-876401122), SetStopConditionsEnabled); - Register(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1681362035), GetStopQuestList); - Register<string, bool>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1342781462), AddStopQuest); - Register<string, bool>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1952025434), RemoveStopQuest); - Register(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2081265786), ClearStopQuests); - Register(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(742108679), GetLevelStopCondition); - Register<bool, int, bool>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-936353338), SetLevelStopCondition); - Register(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1574710306), GetSequenceStopCondition); - Register<bool, int, bool>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(983052851), SetSequenceStopCondition); - Register<string, int>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2046114732), GetQuestSequenceStopCondition); - Register<string, int, bool>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1246040365), SetQuestSequenceStopCondition); - Register<string, bool>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-160497028), RemoveQuestSequenceStopCondition); - Register(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-525039826), GetAllQuestSequenceStopConditions); - Register(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1214500866), GetLevelStopMode); - Register<int, bool>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1385252493), SetLevelStopMode); - Register(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-422357), GetSequenceStopMode); - Register<int, bool>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1802816950), SetSequenceStopMode); - Register<string, int>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-771746198), GetQuestStopMode); - Register<string, int, bool>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1741033299), SetQuestStopMode); + Register("Questionable.GetStopConditionsEnabled", GetStopConditionsEnabled); + Register<bool, bool>("Questionable.SetStopConditionsEnabled", SetStopConditionsEnabled); + Register("Questionable.GetStopQuestList", GetStopQuestList); + Register<string, bool>("Questionable.AddStopQuest", AddStopQuest); + Register<string, bool>("Questionable.RemoveStopQuest", RemoveStopQuest); + Register("Questionable.ClearStopQuests", ClearStopQuests); + Register("Questionable.GetLevelStopCondition", GetLevelStopCondition); + Register<bool, int, bool>("Questionable.SetLevelStopCondition", SetLevelStopCondition); + Register("Questionable.GetSequenceStopCondition", GetSequenceStopCondition); + Register<bool, int, bool>("Questionable.SetSequenceStopCondition", SetSequenceStopCondition); + Register<string, int>("Questionable.GetQuestSequenceStopCondition", GetQuestSequenceStopCondition); + Register<string, int, bool>("Questionable.SetQuestSequenceStopCondition", SetQuestSequenceStopCondition); + Register<string, bool>("Questionable.RemoveQuestSequenceStopCondition", RemoveQuestSequenceStopCondition); + Register("Questionable.GetAllQuestSequenceStopConditions", GetAllQuestSequenceStopConditions); + Register("Questionable.GetLevelStopMode", GetLevelStopMode); + Register<int, bool>("Questionable.SetLevelStopMode", SetLevelStopMode); + Register("Questionable.GetSequenceStopMode", GetSequenceStopMode); + Register<int, bool>("Questionable.SetSequenceStopMode", SetSequenceStopMode); + Register<string, int>("Questionable.GetQuestStopMode", GetQuestStopMode); + Register<string, int, bool>("Questionable.SetQuestStopMode", SetQuestStopMode); } private bool GetStopConditionsEnabled() @@ -2341,89 +966,50 @@ internal sealed class QuestionableIpc : IDisposable private bool SetStopConditionsEnabled(bool enabled) { _configuration.Stop.Enabled = enabled; - _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); + _pluginInterface.SavePluginConfig(_configuration); return true; } private List<string> GetStopQuestList() { return (from c in _configuration.Stop.Conditions.OfType<QuestCompleteCondition>() - select _003C_003Ec._206C_206D_206E_202E_206E_202C_200C_200B_200C_200B_200B_200C_200E_202A_206A_206E_202B_206E_206C_206F_200B_206C_200F_202C_202E_202C_206B_200F_202B_202A_200E_200B_200E_202D_200F_202C_200D_202D_200F_200E_202E((object)c.QuestId)).ToList(); + select c.QuestId.ToString()).ToList(); } private bool AddStopQuest(string questId) { - ElementId elementId = default(ElementId); - int num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? (-1309115989) : (-1309115992)); - while (true) + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null && _questRegistry.IsKnownQuest(elementId) && !_configuration.Stop.Conditions.OfType<QuestCompleteCondition>().Any((QuestCompleteCondition c) => c.QuestId.Equals(elementId))) { - int num2 = num; - int num3 = -1309115989; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _configuration.Stop.Conditions.Add(new QuestCompleteCondition { - case 2: - num = -1309115992; - break; - case 0: - return false; - case 3: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? (-1309115989) : (-1309115985)); - break; - case 1: - num = (_configuration.Stop.Conditions.OfType<QuestCompleteCondition>().Any((QuestCompleteCondition c) => _003C_003Ec__DisplayClass158_0._202E_206B_200B_200F_202E_206D_202C_202E_202E_200B_200E_206D_206B_200B_202E_202E_206C_202A_200C_202C_206F_206F_202E_206C_200D_206F_206E_202B_200D_202B_206B_202C_200D_200D_206E_202B_202D_206C_200F_206B_202E(c.QuestId, elementId)) ? (-1309115989) : (-1309115986)); - break; - case 5: - _configuration.Stop.Conditions.Add(new QuestCompleteCondition - { - QuestId = elementId, - Mode = EStopConditionMode.Stop - }); - _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); - return true; - case 4: - num = ((!_questRegistry.IsKnownQuest(elementId)) ? (-1309115989) : (-1309115990)); - break; - } + QuestId = elementId, + Mode = EStopConditionMode.Stop + }); + _pluginInterface.SavePluginConfig(_configuration); + return true; } + return false; } private bool RemoveStopQuest(string questId) { - ElementId elementId = default(ElementId); - int num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? (-1553255795) : (-1553255794)); - QuestCompleteCondition questCompleteCondition = default(QuestCompleteCondition); - while (true) + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null) { - int num2 = num; - int num3 = -1553255793; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + QuestCompleteCondition questCompleteCondition = _configuration.Stop.Conditions.OfType<QuestCompleteCondition>().FirstOrDefault((QuestCompleteCondition c) => c.QuestId.Equals(elementId)); + if (questCompleteCondition != null) { - case 3: - questCompleteCondition = _configuration.Stop.Conditions.OfType<QuestCompleteCondition>().FirstOrDefault((QuestCompleteCondition c) => _003C_003Ec__DisplayClass159_0._202B_206F_202A_200F_200E_206D_202B_206F_200C_200C_206E_206D_206C_202E_202C_206D_206D_202A_200B_202C_206F_202E_200B_206C_200C_206E_200C_206E_206D_202C_206D_202A_200D_200F_200C_200B_200C_200B_206C_202E_202E(c.QuestId, elementId)); - num = ((questCompleteCondition == null) ? (-1553255795) : (-1553255797)); - break; - case 2: - return false; - case 4: _configuration.Stop.Conditions.Remove(questCompleteCondition); - _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); + _pluginInterface.SavePluginConfig(_configuration); return true; - case 0: - num = -1553255794; - break; - case 1: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? (-1553255795) : (-1553255796)); - break; } } + return false; } private bool ClearStopQuests() { _configuration.Stop.Conditions.RemoveAll((StopCondition c) => c is QuestCompleteCondition); - _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); + _pluginInterface.SavePluginConfig(_configuration); return true; } @@ -2439,57 +1025,33 @@ internal sealed class QuestionableIpc : IDisposable private bool SetLevelStopCondition(bool enabled, int targetLevel) { - int num = ((targetLevel < 1) ? 1685987986 : 1685987992); - LevelCondition levelCondition = default(LevelCondition); - while (true) + if (targetLevel < 1 || targetLevel > 100) { - int num2 = num; - int num3 = 1685987995; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return false; + } + LevelCondition levelCondition = _configuration.Stop.Conditions.OfType<LevelCondition>().FirstOrDefault(); + if (!enabled) + { + if (levelCondition != null) { - case 7: - num = 1685987992; - break; - case 5: - _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); - return true; - case 9: - return false; - case 8: - levelCondition = _configuration.Stop.Conditions.OfType<LevelCondition>().FirstOrDefault(); - num = (enabled ? 1685987997 : 1685987994); - break; - case 0: - levelCondition.TargetLevel = targetLevel; - levelCondition.Mode = EStopConditionMode.Stop; - num = 1685987998; - break; - case 6: - num = ((levelCondition == null) ? 1685987999 : 1685987995); - break; - case 2: _configuration.Stop.Conditions.Remove(levelCondition); - num = 1685987998; - break; - case 1: - num = ((levelCondition == null) ? 1685987998 : 1685987993); - break; - case 4: - _configuration.Stop.Conditions.Add(new LevelCondition - { - TargetLevel = targetLevel, - Mode = EStopConditionMode.Stop - }); - num = 1685987998; - break; - case 3: - num = ((targetLevel <= 100) ? 1685987987 : 1685987986); - break; } } + else if (levelCondition != null) + { + levelCondition.TargetLevel = targetLevel; + levelCondition.Mode = EStopConditionMode.Stop; + } + else + { + _configuration.Stop.Conditions.Add(new LevelCondition + { + TargetLevel = targetLevel, + Mode = EStopConditionMode.Stop + }); + } + _pluginInterface.SavePluginConfig(_configuration); + return true; } private StopConditionData GetSequenceStopCondition() @@ -2504,202 +1066,96 @@ internal sealed class QuestionableIpc : IDisposable private bool SetSequenceStopCondition(bool enabled, int targetSequence) { - int num = ((targetSequence < 0) ? (-94191843) : (-94191855)); - GlobalSequenceCondition globalSequenceCondition = default(GlobalSequenceCondition); - while (true) + if (targetSequence < 0 || targetSequence > 255) { - int num2 = num; - int num3 = -94191851; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return false; + } + GlobalSequenceCondition globalSequenceCondition = _configuration.Stop.Conditions.OfType<GlobalSequenceCondition>().FirstOrDefault(); + if (!enabled) + { + if (globalSequenceCondition != null) { - case 5: _configuration.Stop.Conditions.Remove(globalSequenceCondition); - num = -94191854; - break; - case 4: - num = ((targetSequence <= 255) ? (-94191852) : (-94191843)); - break; - case 0: - num = -94191855; - break; - case 8: - return false; - case 6: - _configuration.Stop.Conditions.Add(new GlobalSequenceCondition - { - TargetSequence = targetSequence, - Mode = EStopConditionMode.Stop - }); - num = -94191854; - break; - case 7: - _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); - return true; - case 9: - num = ((globalSequenceCondition == null) ? (-94191853) : (-94191850)); - break; - case 2: - num = ((globalSequenceCondition == null) ? (-94191854) : (-94191856)); - break; - case 1: - globalSequenceCondition = _configuration.Stop.Conditions.OfType<GlobalSequenceCondition>().FirstOrDefault(); - num = (enabled ? (-94191844) : (-94191849)); - break; - case 3: - globalSequenceCondition.TargetSequence = targetSequence; - globalSequenceCondition.Mode = EStopConditionMode.Stop; - num = -94191854; - break; } } + else if (globalSequenceCondition != null) + { + globalSequenceCondition.TargetSequence = targetSequence; + globalSequenceCondition.Mode = EStopConditionMode.Stop; + } + else + { + _configuration.Stop.Conditions.Add(new GlobalSequenceCondition + { + TargetSequence = targetSequence, + Mode = EStopConditionMode.Stop + }); + } + _pluginInterface.SavePluginConfig(_configuration); + return true; } private int GetQuestSequenceStopCondition(string questId) { - ElementId elementId = default(ElementId); - int num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? 131272302 : 131272303); - QuestCompleteCondition questCompleteCondition = default(QuestCompleteCondition); - while (true) + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null) { - int num2 = num; - int num3 = 131272302; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + QuestCompleteCondition questCompleteCondition = _configuration.Stop.Conditions.OfType<QuestCompleteCondition>().FirstOrDefault((QuestCompleteCondition c) => c.QuestId.Equals(elementId)); + if (questCompleteCondition != null) { - case 4: return questCompleteCondition.Sequence ?? (-1); - case 1: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? 131272302 : 131272301); - break; - case 0: - return -1; - case 3: - questCompleteCondition = _configuration.Stop.Conditions.OfType<QuestCompleteCondition>().FirstOrDefault((QuestCompleteCondition c) => _003C_003Ec__DisplayClass165_0._200D_202D_202E_202C_206E_206C_200E_206C_200B_206E_200E_202D_202A_206A_202A_200F_202B_206D_202E_206E_202D_200E_200C_206D_200E_206E_206F_200C_202D_206D_202B_202A_200D_206E_200E_202E_200D_206B_200B_202D_202E(c.QuestId, elementId)); - num = ((questCompleteCondition == null) ? 131272302 : 131272298); - break; - case 2: - num = 131272303; - break; } } + return -1; } private bool SetQuestSequenceStopCondition(string questId, int targetSequence) { - int num = ((targetSequence < 0) ? (-1086145826) : (-1086145828)); - QuestCompleteCondition questCompleteCondition = default(QuestCompleteCondition); - ElementId elementId = default(ElementId); - while (true) + if (targetSequence < 0 || targetSequence > 255) { - int num2 = num; - int num3 = -1086145825; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return false; + } + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null && _questRegistry.IsKnownQuest(elementId)) + { + QuestCompleteCondition questCompleteCondition = _configuration.Stop.Conditions.OfType<QuestCompleteCondition>().FirstOrDefault((QuestCompleteCondition c) => c.QuestId.Equals(elementId)); + if (questCompleteCondition != null) { - case 9: - questCompleteCondition = _configuration.Stop.Conditions.OfType<QuestCompleteCondition>().FirstOrDefault((QuestCompleteCondition c) => _003C_003Ec__DisplayClass166_0._200D_202A_202A_206C_206B_206A_200D_206B_200C_200C_200B_202C_200F_202A_206F_206A_202B_202D_200E_202A_206F_206C_200F_202B_202C_206E_206A_202A_200C_202D_200E_200D_206F_200D_202A_206E_200C_202B_206C_200D_202E(c.QuestId, elementId)); - num = ((questCompleteCondition == null) ? (-1086145832) : (-1086145833)); - break; - case 5: - return false; - case 8: questCompleteCondition.Sequence = targetSequence; - num = -1086145829; - break; - case 2: - num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? (-1086145830) : (-1086145831)); - break; - case 6: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? (-1086145830) : (-1086145825)); - break; - case 4: - _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); - return true; - case 10: - num = -1086145828; - break; - case 3: - num = ((targetSequence <= 255) ? (-1086145827) : (-1086145826)); - break; - case 0: - num = ((!_questRegistry.IsKnownQuest(elementId)) ? (-1086145830) : (-1086145834)); - break; - case 7: + } + else + { _configuration.Stop.Conditions.Add(new QuestCompleteCondition { QuestId = elementId, Sequence = targetSequence, Mode = EStopConditionMode.Stop }); - num = -1086145829; - break; - case 1: - return false; } + _pluginInterface.SavePluginConfig(_configuration); + return true; } + return false; } private bool RemoveQuestSequenceStopCondition(string questId) { - ElementId elementId = default(ElementId); - int num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? (-1786003914) : (-1786003917)); - QuestCompleteCondition questCompleteCondition = default(QuestCompleteCondition); - while (true) + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null) { - int num2 = num; - int num3 = -1786003918; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + QuestCompleteCondition questCompleteCondition = _configuration.Stop.Conditions.OfType<QuestCompleteCondition>().FirstOrDefault((QuestCompleteCondition c) => c.QuestId.Equals(elementId) && c.Sequence.HasValue); + if (questCompleteCondition != null) { - case 3: - num = -1786003917; - break; - case 4: - return false; - case 2: - questCompleteCondition = _configuration.Stop.Conditions.OfType<QuestCompleteCondition>().FirstOrDefault(delegate(QuestCompleteCondition c) - { - int num5 = ((!_003C_003Ec__DisplayClass167_0._206A_200B_206E_206B_202B_200C_206D_206A_200F_202C_206C_202B_202C_206F_202C_200C_206C_200B_202A_200E_200C_200B_206D_200D_200C_200F_200B_202B_202B_200E_202D_206B_206E_206F_200D_200D_206A_202A_200E_206C_202E(c.QuestId, elementId)) ? 1186797582 : 1186797583); - while (true) - { - int num6 = num5; - int num7 = 1186797582; - int num8 = num6; - int num9 = num8 + num7; - int num10 = num8 & num7; - switch (num9 - (num10 + num10)) - { - case 2: - goto IL_0053; - case 0: - return false; - case 1: - return c.Sequence.HasValue; - } - continue; - IL_0053: - num5 = 1186797583; - } - }); - num = ((questCompleteCondition == null) ? (-1786003914) : (-1786003918)); - break; - case 0: _configuration.Stop.Conditions.Remove(questCompleteCondition); - _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); + _pluginInterface.SavePluginConfig(_configuration); return true; - case 1: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? (-1786003914) : (-1786003920)); - break; } } + return false; } private Dictionary<string, int> GetAllQuestSequenceStopConditions() { return (from c in _configuration.Stop.Conditions.OfType<QuestCompleteCondition>() where c.Sequence.HasValue - select c).ToDictionary((QuestCompleteCondition c) => _003C_003Ec._206C_206D_206E_202E_206E_202C_200C_200B_200C_200B_200B_200C_200E_202A_206A_206E_202B_206E_206C_206F_200B_206C_200F_202C_202E_202C_206B_200F_202B_202A_200E_200B_200E_202D_200F_202C_200D_202D_200F_200E_202E((object)c.QuestId), (QuestCompleteCondition c) => c.Sequence.Value); + select c).ToDictionary((QuestCompleteCondition c) => c.QuestId.ToString(), (QuestCompleteCondition c) => c.Sequence.Value); } private int GetLevelStopMode() @@ -2709,53 +1165,32 @@ internal sealed class QuestionableIpc : IDisposable private bool SetLevelStopMode(int mode) { - int num = (_202D_200C_206C_202C_206A_202D_200F_200C_200C_206C_206F_200C_202B_200E_202D_200B_202B_200C_206E_200E_206D_206E_206A_202B_206A_206D_206D_206B_206C_206E_206A_200E_202E_200B_200B_202E_200D_206D_202C_206F_202E(_206F_202E_202C_206D_206E_206A_200C_200E_206E_206E_206C_200F_206D_202C_206E_200C_206D_206C_206E_206E_206D_206A_202D_202C_200D_206E_206A_202B_202C_202C_200F_200C_200F_206B_202E_202B_202B_202D_206D_200D_202E(typeof(EStopConditionMode).TypeHandle), (object)mode) ? (-2038251060) : (-2038251063)); - EStopConditionMode eStopConditionMode = default(EStopConditionMode); - LevelCondition levelCondition = default(LevelCondition); - while (true) + if (!Enum.IsDefined(typeof(EStopConditionMode), mode)) { - int num2 = num; - int num3 = -2038251057; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return false; + } + LevelCondition levelCondition = _configuration.Stop.Conditions.OfType<LevelCondition>().FirstOrDefault(); + if (mode == 0) + { + if (levelCondition != null) { - case 5: - _configuration.Stop.Conditions.Add(new LevelCondition - { - TargetLevel = 50, - Mode = eStopConditionMode - }); - num = -2038251061; - break; - case 6: - return false; - case 3: - eStopConditionMode = (EStopConditionMode)mode; - levelCondition = _configuration.Stop.Conditions.OfType<LevelCondition>().FirstOrDefault(); - num = ((eStopConditionMode != EStopConditionMode.Off) ? (-2038251058) : (-2038251059)); - break; - case 4: - _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); - return true; - case 1: - num = ((levelCondition == null) ? (-2038251062) : (-2038251065)); - break; - case 0: - num = -2038251063; - break; - case 8: - levelCondition.Mode = eStopConditionMode; - num = -2038251061; - break; - case 2: - num = ((levelCondition == null) ? (-2038251061) : (-2038251064)); - break; - case 7: _configuration.Stop.Conditions.Remove(levelCondition); - num = -2038251061; - break; } } + else if (levelCondition != null) + { + levelCondition.Mode = (EStopConditionMode)mode; + } + else + { + _configuration.Stop.Conditions.Add(new LevelCondition + { + TargetLevel = 50, + Mode = (EStopConditionMode)mode + }); + } + _pluginInterface.SavePluginConfig(_configuration); + return true; } private int GetSequenceStopMode() @@ -2765,235 +1200,78 @@ internal sealed class QuestionableIpc : IDisposable private bool SetSequenceStopMode(int mode) { - int num = (_202D_200C_206C_202C_206A_202D_200F_200C_200C_206C_206F_200C_202B_200E_202D_200B_202B_200C_206E_200E_206D_206E_206A_202B_206A_206D_206D_206B_206C_206E_206A_200E_202E_200B_200B_202E_200D_206D_202C_206F_202E(_206F_202E_202C_206D_206E_206A_200C_200E_206E_206E_206C_200F_206D_202C_206E_200C_206D_206C_206E_206E_206D_206A_202D_202C_200D_206E_206A_202B_202C_202C_200F_200C_200F_206B_202E_202B_202B_202D_206D_200D_202E(typeof(EStopConditionMode).TypeHandle), (object)mode) ? (-389123737) : (-389123742)); - GlobalSequenceCondition globalSequenceCondition = default(GlobalSequenceCondition); - EStopConditionMode eStopConditionMode = default(EStopConditionMode); - while (true) + if (!Enum.IsDefined(typeof(EStopConditionMode), mode)) { - int num2 = num; - int num3 = -389123741; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return false; + } + GlobalSequenceCondition globalSequenceCondition = _configuration.Stop.Conditions.OfType<GlobalSequenceCondition>().FirstOrDefault(); + if (mode == 0) + { + if (globalSequenceCondition != null) { - case 6: - num = ((globalSequenceCondition == null) ? (-389123740) : (-389123741)); - break; - case 1: - return false; - case 7: - _configuration.Stop.Conditions.Add(new GlobalSequenceCondition - { - TargetSequence = 1, - Mode = eStopConditionMode - }); - num = -389123733; - break; - case 4: - eStopConditionMode = (EStopConditionMode)mode; - globalSequenceCondition = _configuration.Stop.Conditions.OfType<GlobalSequenceCondition>().FirstOrDefault(); - num = ((eStopConditionMode != EStopConditionMode.Off) ? (-389123739) : (-389123743)); - break; - case 3: - num = -389123742; - break; - case 5: _configuration.Stop.Conditions.Remove(globalSequenceCondition); - num = -389123733; - break; - case 8: - _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); - return true; - case 0: - globalSequenceCondition.Mode = eStopConditionMode; - num = -389123733; - break; - case 2: - num = ((globalSequenceCondition == null) ? (-389123733) : (-389123738)); - break; } } + else if (globalSequenceCondition != null) + { + globalSequenceCondition.Mode = (EStopConditionMode)mode; + } + else + { + _configuration.Stop.Conditions.Add(new GlobalSequenceCondition + { + TargetSequence = 1, + Mode = (EStopConditionMode)mode + }); + } + _pluginInterface.SavePluginConfig(_configuration); + return true; } private int GetQuestStopMode(string questId) { - ElementId elementId = default(ElementId); - int num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? (-72505088) : (-72505087)); - QuestCompleteCondition questCompleteCondition = default(QuestCompleteCondition); - while (true) + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null) { - int num2 = num; - int num3 = -72505088; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + QuestCompleteCondition questCompleteCondition = _configuration.Stop.Conditions.OfType<QuestCompleteCondition>().FirstOrDefault((QuestCompleteCondition c) => c.QuestId.Equals(elementId)); + if (questCompleteCondition != null) { - case 4: return (int)questCompleteCondition.Mode; - case 1: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? (-72505088) : (-72505085)); - break; - case 0: - return -1; - case 2: - num = -72505087; - break; - case 3: - questCompleteCondition = _configuration.Stop.Conditions.OfType<QuestCompleteCondition>().FirstOrDefault((QuestCompleteCondition c) => _003C_003Ec__DisplayClass173_0._206E_200F_202C_200C_202B_202B_202C_202B_200C_206E_202B_200D_202A_206A_206A_206A_206F_206E_200B_206B_206E_200D_202A_206D_206B_202D_200B_200D_202D_202A_200E_206A_202D_202C_202B_206C_200E_206C_206F_206D_202E(c.QuestId, elementId)); - num = ((questCompleteCondition == null) ? (-72505088) : (-72505084)); - break; } } + return -1; } private bool SetQuestStopMode(string questId, int mode) { - int num = (_202D_200C_206C_202C_206A_202D_200F_200C_200C_206C_206F_200C_202B_200E_202D_200B_202B_200C_206E_200E_206D_206E_206A_202B_206A_206D_206D_206B_206C_206E_206A_200E_202E_200B_200B_202E_200D_206D_202C_206F_202E(_206F_202E_202C_206D_206E_206A_200C_200E_206E_206E_206C_200F_206D_202C_206E_200C_206D_206C_206E_206E_206D_206A_202D_202C_200D_206E_206A_202B_202C_202C_200F_200C_200F_206B_202E_202B_202B_202D_206D_200D_202E(typeof(EStopConditionMode).TypeHandle), (object)mode) ? (-806581776) : (-806581763)); - QuestCompleteCondition questCompleteCondition = default(QuestCompleteCondition); - ElementId elementId = default(ElementId); - EStopConditionMode eStopConditionMode = default(EStopConditionMode); - while (true) + if (!Enum.IsDefined(typeof(EStopConditionMode), mode)) { - int num2 = num; - int num3 = -806581768; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return false; + } + if (ElementId.TryFromString(questId, out ElementId elementId) && elementId != null && _questRegistry.IsKnownQuest(elementId)) + { + QuestCompleteCondition questCompleteCondition = _configuration.Stop.Conditions.OfType<QuestCompleteCondition>().FirstOrDefault((QuestCompleteCondition c) => c.QuestId.Equals(elementId)); + if (mode == 0) + { + if (questCompleteCondition != null) + { + _configuration.Stop.Conditions.Remove(questCompleteCondition); + } + } + else if (questCompleteCondition != null) + { + questCompleteCondition.Mode = (EStopConditionMode)mode; + } + else { - case 3: - num = ((questCompleteCondition == null) ? (-806581766) : (-806581774)); - break; - case 12: - _configuration.Stop.Conditions.Remove(questCompleteCondition); - num = -806581762; - break; - case 2: _configuration.Stop.Conditions.Add(new QuestCompleteCondition { QuestId = elementId, - Mode = eStopConditionMode + Mode = (EStopConditionMode)mode }); - num = -806581762; - break; - case 5: - return false; - case 10: - questCompleteCondition.Mode = eStopConditionMode; - num = -806581762; - break; - case 4: - return false; - case 8: - num = ((!_202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(questId, ref elementId)) ? (-806581764) : (-806581767)); - break; - case 1: - num = ((!_200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(elementId, (ElementId)null)) ? (-806581764) : (-806581775)); - break; - case 11: - num = ((questCompleteCondition == null) ? (-806581762) : (-806581772)); - break; - case 9: - num = ((!_questRegistry.IsKnownQuest(elementId)) ? (-806581764) : (-806581761)); - break; - case 6: - _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); - return true; - case 7: - eStopConditionMode = (EStopConditionMode)mode; - questCompleteCondition = _configuration.Stop.Conditions.OfType<QuestCompleteCondition>().FirstOrDefault((QuestCompleteCondition c) => _003C_003Ec__DisplayClass174_0._202D_202E_202C_202D_200D_200E_206F_202D_202A_206D_202D_206D_200D_202B_200B_206E_206A_206B_202C_202A_200B_206C_202C_206C_202E_206C_202C_200E_202C_202B_202C_200F_206A_206C_202C_200D_206F_200E_206F_206B_202E(c.QuestId, elementId)); - num = ((eStopConditionMode != EStopConditionMode.Off) ? (-806581765) : (-806581773)); - break; - case 0: - num = -806581763; - break; } + _pluginInterface.SavePluginConfig(_configuration); + return true; } - } - - static Type _206F_202E_202C_206D_206E_206A_200C_200E_206E_206E_206C_200F_206D_202C_206E_200C_206D_206C_206E_206E_206D_206A_202D_202C_200D_206E_206A_202B_202C_202C_200F_200C_200F_206B_202E_202B_202B_202D_206D_200D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _202D_200C_206C_202C_206A_202D_200F_200C_200C_206C_206F_200C_202B_200E_202D_200B_202B_200C_206E_200E_206D_206E_206A_202B_206A_206D_206D_206B_206C_206E_206A_200E_202E_200B_200B_202E_200D_206D_202C_206F_202E(Type P_0, object P_1) - { - return Enum.IsDefined(P_0, P_1); - } - - static int _202A_202C_206D_200C_206E_200E_200C_202E_202C_200E_206B_200F_206E_202B_202C_200E_206D_200C_200D_200F_200D_200C_200D_200B_206C_200B_206F_200D_202B_200C_200F_202A_206A_202B_206D_200B_200D_202C_200F_202E_202E(int P_0, int P_1) - { - return Math.Min(P_0, P_1); - } - - static bool _202B_200B_206F_206F_202B_206D_202E_206A_202B_202A_200D_202D_206C_206C_206D_206B_202C_206F_200F_200F_200C_206D_200C_202B_206D_206A_206F_206D_200B_202E_206C_200C_200D_202B_200B_206F_202B_206D_206A_202D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206A_202B_200C_202D_202C_202B_206F_200D_206E_206E_206D_200C_206B_200C_202B_206B_202A_200E_206F_202B_200B_200E_206E_202E_200D_206D_200D_200F_200F_200E_202E_202A_202D_202C_206F_202E_202E_206D_206F_200E_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool _202D_202D_202E_202B_200D_200B_202B_206D_200C_206F_202A_200B_202C_202C_200E_200F_200C_202D_206A_206E_206C_202C_200F_206A_206C_206E_200E_202C_200F_202A_200B_206A_202E_202A_206B_206E_200F_200D_206F_202B_202E(string P_0, ref ElementId P_1) - { - return ElementId.TryFromString(P_0, out P_1); - } - - static bool _200E_200E_200D_200F_206F_200D_200B_200F_206E_206F_202C_206C_206E_206B_202E_206D_206D_206C_206F_206E_200E_206C_200F_206C_206C_202E_202E_200B_200E_206C_200B_200E_202E_206D_206D_202E_200C_206A_200B_206B_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } - - static void _200C_202B_206C_202C_202B_200E_206E_202B_206E_200B_202B_200D_200D_206F_206E_200C_200C_200E_206D_202B_200B_206B_206E_200F_200F_206D_206F_206E_200F_200E_202B_200C_202A_206D_206C_202D_206A_202C_206B_206C_202E(IDalamudPluginInterface P_0, IPluginConfiguration P_1) - { - P_0.SavePluginConfig(P_1); - } - - static IPlayerCharacter _200C_206B_206C_202A_206C_202C_206A_200D_206F_202A_202E_206C_202A_200B_206D_200E_202A_206D_200D_202E_206C_202B_206A_206C_202D_202B_206C_206B_200E_202E_206A_200F_200E_206A_206F_202A_202C_206F_202E_206F_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static byte _202C_206F_200F_202A_202A_206B_206D_206D_200F_206F_200B_202A_206C_206E_206C_206F_200F_206F_200D_206F_206A_206F_202E_206F_202C_200F_202D_206C_206C_202C_202B_206C_200D_202C_200C_202D_200D_206F_206D_202C_202E(ICharacter P_0) - { - return P_0.Level; - } - - static bool _206D_206E_202E_202E_200D_200D_202B_200D_206D_206E_202D_202A_206C_202D_206C_200F_202C_206E_202E_200D_206A_202A_206F_202C_202C_200E_200E_202B_200E_200E_200C_206E_206F_202A_206C_200E_200F_206E_200C_200E_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static string _202D_206C_206F_206E_200E_206F_206E_200B_202C_202D_200E_202D_202D_200F_206A_202B_206B_206D_200D_206C_202A_206C_206F_206A_202B_206B_206B_200D_200C_206B_202A_206F_206B_202C_206E_202A_200D_206E_202D_200F_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _206B_202E_202A_202A_206C_206F_200D_206E_200F_200C_206A_200D_206C_200D_200D_202C_206D_206B_202E_202B_206F_202D_200F_206E_200B_200D_206E_200C_206E_200B_206A_202B_202B_206A_206A_200E_206C_202A_200E_200E_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static QuestStep _206A_202B_202B_206B_202D_200C_206E_202B_200B_200E_206E_202D_206B_200C_206D_206D_202B_202B_202A_206B_200B_200F_200D_200E_206B_200E_202A_200D_206B_200D_206B_200E_206D_200D_200B_202C_206B_206C_200F_206F_202E(QuestSequence P_0, int P_1) - { - return P_0.FindStep(P_1); - } - - static EInteractionType _200D_206C_202A_202B_206D_202A_202B_206C_202C_206E_202A_206F_202E_200D_200B_206D_206E_202C_206B_206D_206D_202A_200C_200D_200B_200F_200F_202B_206F_202D_206A_200E_202A_206F_202C_202D_202C_200D_200B_202D_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static Vector3? _206F_202B_202A_202A_200B_202D_202E_202D_206D_206E_200B_202D_206C_200E_200C_202B_202D_202A_200E_206D_206D_202C_200D_206B_202B_206C_206A_206B_206D_202E_202B_202E_200E_206F_206C_202E_202B_206B_200C_202C_202E(QuestStep P_0) - { - return P_0.Position; - } - - static ushort _202B_202C_200F_200C_206F_200C_200F_202E_200F_206B_206E_206F_206D_202C_202D_200C_200D_200B_206A_206A_200F_206B_200D_206F_200F_206E_200D_200D_202D_202A_200C_206E_200F_200C_200B_200D_206D_200B_206D_202E_202E(QuestStep P_0) - { - return P_0.TerritoryId; - } - - static bool _202E_202D_202A_200B_206C_202D_202D_206E_202D_206E_206D_202B_200E_206F_206F_200D_206F_202C_206E_206F_200E_206D_202D_200D_202C_200B_200B_202C_202A_200F_202B_200E_206E_202B_202C_200F_206A_206F_206F_206E_202E(QuestRoot P_0) - { - return P_0.Disabled; + return false; } } diff --git a/Questionable/Questionable.External/TextAdvanceIpc.cs b/Questionable/Questionable.External/TextAdvanceIpc.cs index bd03a04..8e69b7f 100644 --- a/Questionable/Questionable.External/TextAdvanceIpc.cs +++ b/Questionable/Questionable.External/TextAdvanceIpc.cs @@ -1,5 +1,4 @@ using System; -using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Conditions; using Dalamud.Plugin; using Dalamud.Plugin.Ipc; @@ -69,7 +68,6 @@ internal sealed class TextAdvanceIpc : IDisposable private readonly ILogger<TextAdvanceIpc> _logger; - [MethodImpl(MethodImplOptions.NoInlining)] public TextAdvanceIpc(IDalamudPluginInterface pluginInterface, IFramework framework, QuestController questController, FateController fateController, SeasonalDutyController seasonalDutyController, AttunementController attunementController, CustomDeliveryController customDeliveryController, Configuration configuration, ICondition condition, ILogger<TextAdvanceIpc> logger) { _framework = framework; @@ -81,160 +79,100 @@ internal sealed class TextAdvanceIpc : IDisposable _configuration = configuration; _condition = condition; _logger = logger; - _isInExternalControl = pluginInterface.GetIpcSubscriber<bool>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-67666831)); - _enableExternalControl = pluginInterface.GetIpcSubscriber<string, ExternalTerritoryConfig, bool>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-228954423)); - _disableExternalControl = pluginInterface.GetIpcSubscriber<string, bool>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-324739652)); - _pluginName = _202E_200E_200D_200F_206B_200E_200B_206E_200D_206F_202B_200C_200D_200D_206C_206F_202D_200B_202B_206A_202A_206A_202B_206A_200D_202A_206E_200E_206D_200F_206B_206A_206D_206F_200D_206A_202C_200C_202A_206D_202E(pluginInterface); - _202C_206B_206B_206D_200B_200F_206D_202D_206E_206F_202E_202C_200E_206D_206C_200C_202C_200D_206E_200D_202D_202C_200C_202C_206A_200D_206C_200D_206E_202D_202A_200E_206B_202A_206B_200E_206C_206F_206F_202D_202E(_framework, (IFramework.OnUpdateDelegate)OnUpdate); + _isInExternalControl = pluginInterface.GetIpcSubscriber<bool>("TextAdvance.IsInExternalControl"); + _enableExternalControl = pluginInterface.GetIpcSubscriber<string, ExternalTerritoryConfig, bool>("TextAdvance.EnableExternalControl"); + _disableExternalControl = pluginInterface.GetIpcSubscriber<string, bool>("TextAdvance.DisableExternalControl"); + _pluginName = pluginInterface.InternalName; + _framework.Update += OnUpdate; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Dispose() { - _200B_200C_202D_206D_202B_206C_200B_206C_200C_200D_202C_202D_200D_202E_206C_206C_200F_200B_202B_202A_206C_206E_200D_206E_206A_202E_206D_202E_202B_200F_200F_202C_202B_200D_206B_202A_206D_202D_202C_206E_202E(_framework, (IFramework.OnUpdateDelegate)OnUpdate); + _framework.Update -= OnUpdate; if (_isExternalControlActivated) { try { _disableExternalControl.InvokeFunc(_pluginName); } - catch (IpcError ipcError) + catch (IpcError exception) { - _202A_200F_202C_202B_206C_202C_200D_206A_206D_202C_200D_202E_202E_206B_202D_202B_206B_202B_206A_206A_202E_200E_200E_202B_202B_206A_206A_202E_202D_206C_206A_200E_200B_202B_206C_200F_206F_202E_200B_202E_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1974302231), Array.Empty<object>()); + _logger.LogDebug(exception, "Failed to disable TextAdvance external control during dispose"); } } } - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] private void OnUpdate(IFramework framework) { - int num = ((_202B_202E_206D_202D_206E_200C_200B_200B_200C_206A_200B_200E_202A_200F_202B_200B_206E_206B_202E_206D_200E_200B_206E_206C_206F_202E_200F_206C_206F_200B_206F_206D_200F_200E_200C_200C_206A_206E_206A_202A_202E() >= _ipcRetryAfter) ? 1976969313 : 1976969312); - while (true) + if (Environment.TickCount64 < _ipcRetryAfter) { - int num2 = num; - int num3 = 1976969313; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_004d; - case 1: - return; - case 0: - try - { - OnUpdateInner(); - return; - } - catch (IpcError ipcError) - { - _202A_200F_202C_202B_206C_202C_200D_206A_206D_202C_200D_202E_202E_206B_202D_202B_206B_202B_206A_206A_202E_200E_200E_202B_202B_206A_206A_202E_202D_206C_206A_200E_200B_202B_206C_200F_206F_202E_200B_202E_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1033634384), Array.Empty<object>()); - _ipcRetryAfter = _202B_202E_206D_202D_206E_200C_200B_200B_200C_206A_200B_200E_202A_200F_202B_200B_206E_206B_202E_206D_200E_200B_206E_206C_206F_202E_200F_206C_206F_200B_206F_206D_200F_200E_200C_200C_206A_206E_206A_202A_202E() + 30000; - return; - } - } - continue; - IL_004d: - num = 1976969312; + return; + } + try + { + OnUpdateInner(); + } + catch (IpcError exception) + { + _logger.LogDebug(exception, "TextAdvance IPC call failed"); + _ipcRetryAfter = Environment.TickCount64 + 30000; } } private void OnUpdateInner() { - //Discarded unreachable code: IL_0182 - int num = (_questController.IsRunning ? (-758359221) : (-758359219)); - bool flag = default(bool); - while (true) + bool flag = _questController.IsRunning || _questController.AutomationType != QuestController.EAutomationType.Manual || _fateController.IsRunning || _seasonalDutyController.IsRunning || _attunementController.IsRunning || _customDeliveryController.IsRunning; + if (!_configuration.General.ConfigureTextAdvance || !flag) { - int num2 = num; - int num3 = -758359224; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num7; - switch (num5 - (num6 + num6)) + if (!_isExternalControlActivated) { - case 2: - if (!_isExternalControlActivated) - { - return; - } - goto case 5; - case 5: - num = ((_questController.AutomationType != QuestController.EAutomationType.Manual) ? (-758359221) : (-758359220)); - break; - case 8: - num7 = (_customDeliveryController.IsRunning ? 1 : 0); - goto IL_011a; - case 1: - num = (_seasonalDutyController.IsRunning ? (-758359221) : (-758359218)); - break; - case 0: - num = -758359219; - break; - case 4: - num = (_fateController.IsRunning ? (-758359221) : (-758359223)); - break; - case 3: - num7 = 1; - goto IL_011a; - case 6: - num = (_attunementController.IsRunning ? (-758359221) : (-758359232)); - break; - case 7: - { - if (!flag) - { - num = -758359222; - break; - } - bool cinemaMode = _configuration.General.CinemaMode; - bool flag2 = _206A_202B_202E_200F_202E_206B_200E_200B_206B_206D_206B_200F_206A_206A_206F_202C_202C_206E_206E_206B_206A_200F_200F_202D_200F_206F_206D_202C_202C_200B_202E_202B_206B_200E_206F_202E_200E_200B_200C_202C_202E(_condition, ConditionFlag.OccupiedInCutSceneEvent) || _206A_202B_202E_200F_202E_206B_200E_200B_206B_206D_206B_200F_206A_206A_206F_202C_202C_206E_206E_206B_206A_200F_200F_202D_200F_206F_206D_202C_202C_200B_202E_202B_206B_200E_206F_202E_200E_200B_200C_202C_202E(_condition, ConditionFlag.WatchingCutscene) || _206A_202B_202E_200F_202E_206B_200E_200B_206B_206D_206B_200F_206A_206A_206F_202C_202C_206E_206E_206B_206A_200F_200F_202D_200F_206F_206D_202C_202C_200B_202E_202B_206B_200E_206F_202E_200E_200B_200C_202C_202E(_condition, ConditionFlag.WatchingCutscene78); - bool flag3 = _customDeliveryController.IsRunning && !_questController.IsRunning && _questController.AutomationType == QuestController.EAutomationType.Manual && !_fateController.IsRunning && !_seasonalDutyController.IsRunning && !_attunementController.IsRunning; - bool flag4 = cinemaMode != _lastCinemaModeState || (cinemaMode && flag2 != _lastInCutsceneState) || flag3 != _lastSuppressRequestState; - if (!_isExternalControlActivated) - { - if (!_isInExternalControl.InvokeFunc()) - { - ExternalTerritoryConfig arg = CreateExternalTerritoryConfig(cinemaMode, flag2, flag3); - if (_enableExternalControl.InvokeFunc(_pluginName, arg)) - { - _isExternalControlActivated = true; - _lastCinemaModeState = cinemaMode; - _lastInCutsceneState = flag2; - _lastSuppressRequestState = flag3; - } - } - } - else if (flag4) - { - ExternalTerritoryConfig arg2 = CreateExternalTerritoryConfig(cinemaMode, flag2, flag3); - _enableExternalControl.InvokeFunc(_pluginName, arg2); - _lastCinemaModeState = cinemaMode; - _lastInCutsceneState = flag2; - _lastSuppressRequestState = flag3; - } - return; - } - IL_011a: - flag = (byte)num7 != 0; - num = ((!_configuration.General.ConfigureTextAdvance) ? (-758359222) : (-758359217)); - break; + return; } + try + { + if (_disableExternalControl.InvokeFunc(_pluginName) || !_isInExternalControl.InvokeFunc()) + { + _isExternalControlActivated = false; + } + return; + } + catch (IpcError) + { + _isExternalControlActivated = false; + return; + } + } + bool cinemaMode = _configuration.General.CinemaMode; + bool flag2 = _condition[ConditionFlag.OccupiedInCutSceneEvent] || _condition[ConditionFlag.WatchingCutscene] || _condition[ConditionFlag.WatchingCutscene78]; + bool flag3 = _customDeliveryController.IsRunning && !_questController.IsRunning && _questController.AutomationType == QuestController.EAutomationType.Manual && !_fateController.IsRunning && !_seasonalDutyController.IsRunning && !_attunementController.IsRunning; + bool flag4 = cinemaMode != _lastCinemaModeState || (cinemaMode && flag2 != _lastInCutsceneState) || flag3 != _lastSuppressRequestState; + if (!_isExternalControlActivated) + { + if (!_isInExternalControl.InvokeFunc()) + { + ExternalTerritoryConfig arg = CreateExternalTerritoryConfig(cinemaMode, flag2, flag3); + if (_enableExternalControl.InvokeFunc(_pluginName, arg)) + { + _isExternalControlActivated = true; + _lastCinemaModeState = cinemaMode; + _lastInCutsceneState = flag2; + _lastSuppressRequestState = flag3; + } + } + } + else if (flag4) + { + ExternalTerritoryConfig arg2 = CreateExternalTerritoryConfig(cinemaMode, flag2, flag3); + _enableExternalControl.InvokeFunc(_pluginName, arg2); + _lastCinemaModeState = cinemaMode; + _lastInCutsceneState = flag2; + _lastSuppressRequestState = flag3; } } private static ExternalTerritoryConfig CreateExternalTerritoryConfig(bool cinemaMode, bool inCutscene, bool suppressRequestHandling) { - bool flag = (byte)((uint)((cinemaMode ? 1 : 0) + (inCutscene ? 1 : 0)) - ((cinemaMode || inCutscene) ? 1u : 0u)) != 0; + bool flag = cinemaMode && inCutscene; return new ExternalTerritoryConfig { EnableQuestAccept = true, @@ -248,34 +186,4 @@ internal sealed class TextAdvanceIpc : IDisposable EnableAutoInteract = false }; } - - static string _202E_200E_200D_200F_206B_200E_200B_206E_200D_206F_202B_200C_200D_200D_206C_206F_202D_200B_202B_206A_202A_206A_202B_206A_200D_202A_206E_200E_206D_200F_206B_206A_206D_206F_200D_206A_202C_200C_202A_206D_202E(IDalamudPluginInterface P_0) - { - return P_0.InternalName; - } - - static void _202C_206B_206B_206D_200B_200F_206D_202D_206E_206F_202E_202C_200E_206D_206C_200C_202C_200D_206E_200D_202D_202C_200C_202C_206A_200D_206C_200D_206E_202D_202A_200E_206B_202A_206B_200E_206C_206F_206F_202D_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update += P_1; - } - - static void _200B_200C_202D_206D_202B_206C_200B_206C_200C_200D_202C_202D_200D_202E_206C_206C_200F_200B_202B_202A_206C_206E_200D_206E_206A_202E_206D_202E_202B_200F_200F_202C_202B_200D_206B_202A_206D_202D_202C_206E_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update -= P_1; - } - - static void _202A_200F_202C_202B_206C_202C_200D_206A_206D_202C_200D_202E_202E_206B_202D_202B_206B_202B_206A_206A_202E_200E_200E_202B_202B_206A_206A_202E_202D_206C_206A_200E_200B_202B_206C_200F_206F_202E_200B_202E_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogDebug(P_1, P_2, P_3); - } - - static long _202B_202E_206D_202D_206E_200C_200B_200B_200C_206A_200B_200E_202A_200F_202B_200B_206E_206B_202E_206D_200E_200B_206E_206C_206F_202E_200F_206C_206F_200B_206F_206D_200F_200E_200C_200C_206A_206E_206A_202A_202E() - { - return Environment.TickCount64; - } - - static bool _206A_202B_202E_200F_202E_206B_200E_200B_206B_206D_206B_200F_206A_206A_206F_202C_202C_206E_206E_206B_206A_200F_200F_202D_200F_206F_206D_202C_202C_200B_202E_202B_206B_200E_206F_202E_200E_200B_200C_202C_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } } diff --git a/Questionable/Questionable.External/WigglyNavAvailability.cs b/Questionable/Questionable.External/WigglyNavAvailability.cs index d161d87..712ecdf 100644 --- a/Questionable/Questionable.External/WigglyNavAvailability.cs +++ b/Questionable/Questionable.External/WigglyNavAvailability.cs @@ -1,8 +1,5 @@ using System; -using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; -using System.Threading; using Dalamud.Plugin; using Dalamud.Plugin.Services; using Microsoft.Extensions.Logging; @@ -25,78 +22,16 @@ internal sealed class WigglyNavAvailability : IDisposable private readonly ILogger<WigglyNavAvailability> _logger; - private readonly object _verdictLock = _206B_206F_202A_202D_200B_202E_206F_200F_206E_206E_200C_202E_206B_200B_202B_202A_206A_202A_200C_200B_200B_206E_206C_200B_206C_200F_206B_206B_202C_200C_206A_206F_202C_200F_206D_206B_202A_200C_206C_202E(); + private readonly object _verdictLock = new object(); private volatile bool _isCompatible; private long _lastProbeTicks; - [CompilerGenerated] - private Action? m_CompatibilityChanged; - public bool IsCompatible => _isCompatible; - public event Action? CompatibilityChanged - { - [CompilerGenerated] - add - { - Action action = this.m_CompatibilityChanged; - int num = 1991447574; - while (true) - { - int num2 = num; - int num3 = 1991447575; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1991447574; - break; - case 1: - { - Action action2 = action; - Action value2 = (Action)_206F_202D_202C_206D_200D_200D_206A_202A_200E_202A_206C_206C_206C_202C_206E_202E_202A_202B_202C_202C_202D_202C_200B_206C_206F_202B_200E_206E_202D_206A_200D_200C_202E_206C_206E_200F_202D_206B_200B_202B_202E((Delegate)action2, (Delegate)value); - action = Interlocked.CompareExchange(ref this.m_CompatibilityChanged, value2, action2); - num = (((object)action != action2) ? 1991447574 : 1991447575); - break; - } - case 0: - return; - } - } - } - [CompilerGenerated] - remove - { - Action action = this.m_CompatibilityChanged; - int num = -280781093; - while (true) - { - int num2 = num; - int num3 = -280781094; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -280781093; - break; - case 2: - return; - case 1: - { - Action action2 = action; - Action value2 = (Action)_202C_200B_206A_206E_206D_202D_206B_206E_206C_206A_200F_200C_200B_206B_206C_206F_200D_200E_202A_202E_202E_206C_206F_200F_202D_206E_200C_206F_202E_206E_202A_200C_200E_202B_200C_200E_202B_202D_206F_200C_202E((Delegate)action2, (Delegate)value); - action = Interlocked.CompareExchange(ref this.m_CompatibilityChanged, value2, action2); - num = (((object)action != action2) ? (-280781093) : (-280781096)); - break; - } - } - } - } - } + public event Action? CompatibilityChanged; - [MethodImpl(MethodImplOptions.NoInlining)] public WigglyNavAvailability(IDalamudPluginInterface pluginInterface, WigglyNavIpc wigglyNavIpc, IFramework framework, ILogger<WigglyNavAvailability> logger) { _pluginInterface = pluginInterface; @@ -104,256 +39,62 @@ internal sealed class WigglyNavAvailability : IDisposable _framework = framework; _logger = logger; TryRefreshVerdict(respectThrottle: false); - _206E_206D_206E_200F_202E_206D_206D_200D_200F_202D_202C_200C_200E_206D_202E_206F_200F_200E_200E_200F_206E_202C_200E_202C_206D_202E_202E_206D_202E_202B_200E_200F_206B_206C_202C_206E_206B_202C_202E_202A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(65257321), new object[1] { DescribeVerdict(_isCompatible) }); - _206B_202D_200B_202C_200F_202D_202D_202B_206B_200F_200C_202B_200F_202E_202D_206A_202D_206F_202E_200B_206B_202C_200F_202C_206A_200B_202C_202A_206F_202E_200D_200D_206B_202D_200F_206A_200E_202B_200E_206E_202E(_pluginInterface, (IDalamudPluginInterface.ActivePluginsChangedDelegate)OnActivePluginsChanged); - _200B_206F_206C_202B_206B_200B_200B_202B_202D_206F_206E_200F_202D_206E_206B_202B_206F_202D_206E_206C_202A_206C_206F_200D_202E_202B_206F_202B_200B_200F_206B_200B_206C_202A_200D_200F_202E_206F_200C_206A_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkUpdate); + _logger.LogInformation("WigglyNav native surface is {State} at startup", DescribeVerdict(_isCompatible)); + _pluginInterface.ActivePluginsChanged += OnActivePluginsChanged; + _framework.Update += OnFrameworkUpdate; } public void Dispose() { - _200D_206B_200F_206F_200B_206F_200D_202B_200C_202B_200D_202B_200C_206C_200D_202B_200C_202A_202C_200F_202A_202A_200C_200C_206A_202E_202B_206F_202A_206D_202A_202A_202A_206F_200E_206D_206B_202C_200B_206B_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkUpdate); - _200E_200C_202C_200B_202C_200F_206B_202C_202D_202D_200D_206C_206C_202C_200B_200D_206E_206E_206B_206D_202B_200D_200B_200C_206F_202E_200D_200C_202B_206B_202A_200E_206D_200C_202C_206D_200D_200C_202E_206B_202E(_pluginInterface, (IDalamudPluginInterface.ActivePluginsChangedDelegate)OnActivePluginsChanged); + _framework.Update -= OnFrameworkUpdate; + _pluginInterface.ActivePluginsChanged -= OnActivePluginsChanged; } - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] private void OnActivePluginsChanged(IActivePluginsChangedEventArgs args) { - int num = (_200D_202D_202C_200E_206A_200E_202B_206A_206A_202B_200F_202B_206E_206D_206C_206B_206A_200C_206B_200E_200F_206D_206B_202A_206E_202D_206A_202E_202E_202A_206B_200E_200B_206A_206A_200F_206E_206C_206D_206C_202E(args).Contains(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1385994134)) ? (-92936946) : (-92936947)); - while (true) + if (args.AffectedInternalNames.Contains("WigglyNav") && TryRefreshVerdict(respectThrottle: false)) { - int num2 = num; - int num3 = -92936946; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -92936947; - break; - case 3: - return; - case 1: - _206E_206D_206E_200F_202E_206D_206D_200D_200F_202D_202C_200C_200E_206D_202E_206F_200F_200E_200E_200F_206E_202C_200E_202C_206D_202E_202E_206D_202E_202B_200E_200F_206B_206C_202C_206E_206B_202C_202E_202A_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1087087773), new object[2] - { - DescribeVerdict(_isCompatible), - _202B_206B_200B_202C_202B_206D_206C_206E_206E_206D_202B_200E_202B_200E_206E_206E_200B_206D_202E_206E_200C_202E_206C_200D_202C_200F_200F_206D_200E_202B_200C_202C_206E_202C_202C_206B_200F_206C_206F_206B_202E(args) - }); - this.CompatibilityChanged?.Invoke(); - return; - case 4: - return; - case 0: - num = (TryRefreshVerdict(respectThrottle: false) ? (-92936945) : (-92936950)); - break; - } + _logger.LogInformation("WigglyNav native surface is now {State} (plugin list change: {Kind})", DescribeVerdict(_isCompatible), args.Kind); + this.CompatibilityChanged?.Invoke(); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void OnFrameworkUpdate(IFramework framework) { - int num = ((!_isCompatible) ? (-1065706762) : (-1065706763)); - while (true) + if (!_isCompatible && TryRefreshVerdict(respectThrottle: true)) { - int num2 = num; - int num3 = -1065706764; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - return; - case 1: - return; - case 0: - _206E_206D_206E_200F_202E_206D_206D_200D_200F_202D_202C_200C_200E_206D_202E_206F_200F_200E_200E_200F_206E_202C_200E_202C_206D_202E_202E_206D_202E_202B_200E_200F_206B_206C_202C_206E_206B_202C_202E_202A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1036219173), new object[1] { DescribeVerdict(_isCompatible) }); - this.CompatibilityChanged?.Invoke(); - return; - case 2: - num = (TryRefreshVerdict(respectThrottle: true) ? (-1065706764) : (-1065706768)); - break; - case 3: - num = -1065706763; - break; - } + _logger.LogInformation("WigglyNav native surface is now {State} (periodic re-probe)", DescribeVerdict(_isCompatible)); + this.CompatibilityChanged?.Invoke(); } } private bool TryRefreshVerdict(bool respectThrottle) { - object verdictLock = _verdictLock; - bool flag = false; - try + lock (_verdictLock) { - _202D_206B_202A_206F_202C_202E_202C_200F_202C_200F_202A_206F_202E_206D_206C_206F_202E_206F_206B_200D_202B_202E_200C_202A_200B_200E_202E_202A_206E_206E_202B_200F_200C_206E_200C_202A_200B_202E_202A_202C_202E(verdictLock, ref flag); - long num = _200D_206F_206B_202C_206E_206F_206B_206E_200B_200D_202D_202E_202E_202A_200C_200E_200D_206A_202C_200F_202C_202B_202C_202D_200B_202A_202B_200F_206D_206D_206F_206D_202A_202A_206A_206E_206A_202D_206B_202C_202E(); - int num2 = ((!respectThrottle) ? 1824469596 : 1824469599); - (int, int)? tuple = default((int, int)?); - bool flag2 = default(bool); - while (true) + long tickCount = Environment.TickCount64; + if (respectThrottle && tickCount - _lastProbeTicks < 5000) { - int num3 = num2; - int num4 = 1824469594; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - int num8; - switch (num6 - (num7 + num7)) - { - case 7: - return false; - case 1: - num8 = 0; - goto IL_008c; - case 3: - num2 = 1824469599; - break; - case 5: - { - long lastProbeTicks = _lastProbeTicks; - long num9 = num; - num2 = ((~(~num9 + lastProbeTicks) >= 5000) ? 1824469596 : 1824469592); - break; - } - case 6: - _lastProbeTicks = num; - tuple = _wigglyNavIpc.TryGetApiVersion(); - num2 = ((!tuple.HasValue) ? 1824469595 : 1824469598); - break; - case 4: - num8 = ((tuple.GetValueOrDefault().Item1 == 1) ? 1 : 0); - goto IL_008c; - case 2: - return false; - case 0: - { - _isCompatible = flag2; - return true; - } - IL_008c: - flag2 = (byte)num8 != 0; - num2 = ((flag2 != _isCompatible) ? 1824469594 : 1824469597); - break; - } + return false; } - } - finally - { - int num2 = ((!flag) ? (-176733866) : (-176733867)); - while (true) + _lastProbeTicks = tickCount; + (int, int)? tuple = _wigglyNavIpc.TryGetApiVersion(); + bool flag = tuple.HasValue && tuple.GetValueOrDefault().Item1 == 1; + if (flag == _isCompatible) { - int num10 = num2; - int num4 = -176733865; - int num5 = num10; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = -176733867; - break; - case 1: - goto end_IL_018f; - case 2: - _206E_202E_206D_202A_200B_206A_206D_206B_206C_202A_206A_200D_200F_200D_202E_200D_206D_202E_200B_202D_200B_206C_206D_206F_200E_200B_200F_202D_202E_202A_202B_200B_202E_206A_206F_200E_200E_200C_206E_202E(verdictLock); - num2 = -176733866; - break; - } - continue; - end_IL_018f: - break; + return false; } + _isCompatible = flag; + return true; } } - [MethodImpl(MethodImplOptions.NoInlining)] private static string DescribeVerdict(bool isCompatible) { - int num = (isCompatible ? (-1280870548) : (-1280870547)); - while (true) + if (!isCompatible) { - int num2 = num; - int num3 = -1280870548; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0041; - case 0: - return global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2037209373); - case 1: - return global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(424588411); - } - continue; - IL_0041: - num = -1280870547; + return "unavailable or incompatible"; } - } - - static object _206B_206F_202A_202D_200B_202E_206F_200F_206E_206E_200C_202E_206B_200B_202B_202A_206A_202A_200C_200B_200B_206E_206C_200B_206C_200F_206B_206B_202C_200C_206A_206F_202C_200F_206D_206B_202A_200C_206C_202E() - { - return new object(); - } - - static void _206E_206D_206E_200F_202E_206D_206D_200D_200F_202D_202C_200C_200E_206D_202E_206F_200F_200E_200E_200F_206E_202C_200E_202C_206D_202E_202E_206D_202E_202B_200E_200F_206B_206C_202C_206E_206B_202C_202E_202A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static void _206B_202D_200B_202C_200F_202D_202D_202B_206B_200F_200C_202B_200F_202E_202D_206A_202D_206F_202E_200B_206B_202C_200F_202C_206A_200B_202C_202A_206F_202E_200D_200D_206B_202D_200F_206A_200E_202B_200E_206E_202E(IDalamudPluginInterface P_0, IDalamudPluginInterface.ActivePluginsChangedDelegate P_1) - { - P_0.ActivePluginsChanged += P_1; - } - - static void _200B_206F_206C_202B_206B_200B_200B_202B_202D_206F_206E_200F_202D_206E_206B_202B_206F_202D_206E_206C_202A_206C_206F_200D_202E_202B_206F_202B_200B_200F_206B_200B_206C_202A_200D_200F_202E_206F_200C_206A_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update += P_1; - } - - static Delegate _206F_202D_202C_206D_200D_200D_206A_202A_200E_202A_206C_206C_206C_202C_206E_202E_202A_202B_202C_202C_202D_202C_200B_206C_206F_202B_200E_206E_202D_206A_200D_200C_202E_206C_206E_200F_202D_206B_200B_202B_202E(Delegate P_0, Delegate P_1) - { - return Delegate.Combine(P_0, P_1); - } - - static Delegate _202C_200B_206A_206E_206D_202D_206B_206E_206C_206A_200F_200C_200B_206B_206C_206F_200D_200E_202A_202E_202E_206C_206F_200F_202D_206E_200C_206F_202E_206E_202A_200C_200E_202B_200C_200E_202B_202D_206F_200C_202E(Delegate P_0, Delegate P_1) - { - return Delegate.Remove(P_0, P_1); - } - - static void _200D_206B_200F_206F_200B_206F_200D_202B_200C_202B_200D_202B_200C_206C_200D_202B_200C_202A_202C_200F_202A_202A_200C_200C_206A_202E_202B_206F_202A_206D_202A_202A_202A_206F_200E_206D_206B_202C_200B_206B_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update -= P_1; - } - - static void _200E_200C_202C_200B_202C_200F_206B_202C_202D_202D_200D_206C_206C_202C_200B_200D_206E_206E_206B_206D_202B_200D_200B_200C_206F_202E_200D_200C_202B_206B_202A_200E_206D_200C_202C_206D_200D_200C_202E_206B_202E(IDalamudPluginInterface P_0, IDalamudPluginInterface.ActivePluginsChangedDelegate P_1) - { - P_0.ActivePluginsChanged -= P_1; - } - - static IEnumerable<string> _200D_202D_202C_200E_206A_200E_202B_206A_206A_202B_200F_202B_206E_206D_206C_206B_206A_200C_206B_200E_200F_206D_206B_202A_206E_202D_206A_202E_202E_202A_206B_200E_200B_206A_206A_200F_206E_206C_206D_206C_202E(IActivePluginsChangedEventArgs P_0) - { - return P_0.AffectedInternalNames; - } - - static PluginListInvalidationKind _202B_206B_200B_202C_202B_206D_206C_206E_206E_206D_202B_200E_202B_200E_206E_206E_200B_206D_202E_206E_200C_202E_206C_200D_202C_200F_200F_206D_200E_202B_200C_202C_206E_202C_202C_206B_200F_206C_206F_206B_202E(IActivePluginsChangedEventArgs P_0) - { - return P_0.Kind; - } - - static void _202D_206B_202A_206F_202C_202E_202C_200F_202C_200F_202A_206F_202E_206D_206C_206F_202E_206F_206B_200D_202B_202E_200C_202A_200B_200E_202E_202A_206E_206E_202B_200F_200C_206E_200C_202A_200B_202E_202A_202C_202E(object P_0, ref bool P_1) - { - Monitor.Enter(P_0, ref P_1); - } - - static long _200D_206F_206B_202C_206E_206F_206B_206E_200B_200D_202D_202E_202E_202A_200C_200E_200D_206A_202C_200F_202C_202B_202C_202D_200B_202A_202B_200F_206D_206D_206F_206D_202A_202A_206A_206E_206A_202D_206B_202C_202E() - { - return Environment.TickCount64; - } - - static void _206E_202E_206D_202A_200B_206A_206D_206B_206C_202A_206A_200D_200F_200D_202E_200D_206D_202E_200B_202D_200B_206C_206D_206F_200E_200B_200F_202D_202E_202A_202B_200B_202E_206A_206F_200E_200E_200C_206E_202E(object P_0) - { - Monitor.Exit(P_0); + return "compatible"; } } diff --git a/Questionable/Questionable.External/WigglyNavIpc.cs b/Questionable/Questionable.External/WigglyNavIpc.cs index 719a814..f0fbf68 100644 --- a/Questionable/Questionable.External/WigglyNavIpc.cs +++ b/Questionable/Questionable.External/WigglyNavIpc.cs @@ -1,9 +1,6 @@ using System; using System.Collections.Generic; -using System.Diagnostics; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; using System.Threading; using System.Threading.Tasks; using Dalamud.Plugin; @@ -16,265 +13,6 @@ namespace Questionable.External; internal sealed class WigglyNavIpc { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass26_0 - { - public WigglyNavIpc _003C_003E4__this; - - public CancellationToken cancellationToken; - - public PathfindQuery query; - - internal Task<string>? _003CPathfind_003Eb__0() - { - return _003C_003E4__this._pathfind.InvokeFunc(query, cancellationToken); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass31_0 - { - public WigglyNavIpc _003C_003E4__this; - - public Vector3 position; - - public float halfExtentXZ; - - public float halfExtentY; - - internal Vector3? _003CFindNearestMeshPoint_003Eb__0() - { - return _003C_003E4__this._nearestPoint.InvokeFunc(position, _202B_206C_200C_200E_200F_202E_202E_200F_206A_200D_200E_202B_206B_202A_200D_200B_202A_202C_202E_202C_206F_206B_200F_206B_200E_200B_200F_206D_200E_200C_206B_200B_206B_200F_200E_200B_202A_202B_202D_202E_202E(halfExtentXZ, halfExtentY)); - } - - static float _202B_206C_200C_200E_200F_202E_202E_200F_206A_200D_200E_202B_206B_202A_200D_200B_202A_202C_202E_202C_206F_206B_200F_206B_200E_200B_200F_206D_200E_200C_206B_200B_206B_200F_200E_200B_202A_202B_202D_202E_202E(float P_0, float P_1) - { - return MathF.Max(P_0, P_1); - } - } - - [StructLayout(LayoutKind.Auto)] - [CompilerGenerated] - private struct _003CPathfind_003Ed__26 : IAsyncStateMachine - { - public int _003C_003E1__state; - - public AsyncTaskMethodBuilder<PathfindResult> _003C_003Et__builder; - - public WigglyNavIpc _003C_003E4__this; - - public CancellationToken cancellationToken; - - public Vector3 from; - - public Vector3 to; - - public bool fly; - - public float tolerance; - - private ConfiguredTaskAwaitable<string>.ConfiguredTaskAwaiter _003C_003Eu__1; - - [MethodImpl(MethodImplOptions.NoInlining)] - private void MoveNext() - { - int num = _003C_003E1__state; - WigglyNavIpc wigglyNavIpc = _003C_003E4__this; - PathfindResult result2; - try - { - int num2 = ((num == 0) ? (-1011094235) : (-1011094234)); - _003C_003Ec__DisplayClass26_0 _003C_003Ec__DisplayClass26_ = default(_003C_003Ec__DisplayClass26_0); - ConfiguredTaskAwaitable<string>.ConfiguredTaskAwaiter awaiter = default(ConfiguredTaskAwaitable<string>.ConfiguredTaskAwaiter); - Task<string> task = default(Task<string>); - while (true) - { - int num3 = num2; - int num4 = -1011094236; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 0: - num2 = -1011094234; - break; - case 2: - _003C_003Ec__DisplayClass26_ = new _003C_003Ec__DisplayClass26_0 - { - _003C_003E4__this = _003C_003E4__this, - cancellationToken = cancellationToken - }; - _200F_206C_206B_202E_202C_206F_202C_206A_206F_206C_206D_200E_206E_206A_202B_200B_206D_206D_206F_206E_200C_202B_202B_200F_206F_200B_202A_206D_206D_206E_206A_200B_206B_200D_202C_206F_200F_200E_200C_202D_202E(ref wigglyNavIpc._outstandingPathfinds); - num2 = -1011094235; - break; - case 1: - try - { - num2 = ((num == 0) ? 1011479215 : 1011479213); - while (true) - { - int num8 = num2; - num4 = 1011479211; - num5 = num8; - int num9 = num5 + num4; - int num10 = num5 & num4; - switch (num9 - (num10 + num10)) - { - case 4: - awaiter = _003C_003Eu__1; - _003C_003Eu__1 = default(ConfiguredTaskAwaitable<string>.ConfiguredTaskAwaiter); - num = (_003C_003E1__state = -1); - num2 = 1011479208; - break; - case 6: - _003C_003Ec__DisplayClass26_.query = new PathfindQuery(from, to, fly, tolerance); - task = Guarded(_003C_003Ec__DisplayClass26_._003CPathfind_003Eb__0); - num2 = ((task != null) ? 1011479209 : 1011479210); - break; - case 1: - _200C_202A_206B_200B_206E_206E_202B_202B_200E_202B_206C_206E_206B_202A_200C_200D_206D_200D_200F_206F_202B_202D_206C_200B_202D_202B_200F_202E_202D_206E_206E_202A_202C_206B_200B_202A_206F_200F_202A_206B_202E((ILogger)wigglyNavIpc._logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(433157232), Array.Empty<object>()); - result2 = EmptyPathfindResult(); - goto end_IL_00bb; - case 5: - num2 = 1011479213; - break; - case 2: - awaiter = task.ConfigureAwait(continueOnCapturedContext: false).GetAwaiter(); - num2 = (awaiter.IsCompleted ? 1011479208 : 1011479211); - break; - case 0: - num = (_003C_003E1__state = 0); - _003C_003Eu__1 = awaiter; - _003C_003Et__builder.AwaitUnsafeOnCompleted(ref awaiter, ref this); - return; - case 3: - { - string result = awaiter.GetResult(); - try - { - PathfindResult pathfindResult = JsonConvert.DeserializeObject<PathfindResult>(result); - num2 = (((object)pathfindResult == null) ? 1753402747 : 1753402745); - while (true) - { - int num11 = num2; - num4 = 1753402744; - num5 = num11; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = 1753402745; - break; - case 1: - num2 = ((pathfindResult.Waypoints != null) ? 1753402746 : 1753402747); - break; - case 3: - _200C_202A_206B_200B_206E_206E_202B_202B_200E_202B_206C_206E_206B_202A_200C_200D_206D_200D_200F_206F_202B_202D_206C_200B_202D_202B_200F_202E_202D_206E_206E_202A_202C_206B_200B_202A_206F_200F_202A_206B_202E((ILogger)wigglyNavIpc._logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1821206779), Array.Empty<object>()); - result2 = EmptyPathfindResult(); - goto end_IL_024d; - case 2: - result2 = pathfindResult; - goto end_IL_024d; - } - continue; - end_IL_024d: - break; - } - } - catch (JsonException ex) - { - _206B_200D_200C_206C_200B_202B_202D_200B_206E_206F_200F_200D_206A_206B_200E_206B_200D_200C_206D_200F_200E_206B_200F_202A_200E_200E_206C_200D_206C_206B_206A_206F_206F_206B_206F_200B_206E_206F_200F_206F_202E((ILogger)wigglyNavIpc._logger, (Exception)ex, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1517525166), Array.Empty<object>()); - result2 = EmptyPathfindResult(); - } - goto end_IL_00bb; - } - } - continue; - end_IL_00bb: - break; - } - } - finally - { - num2 = ((num >= 0) ? (-420000776) : (-420000773)); - while (true) - { - int num12 = num2; - num4 = -420000774; - num5 = num12; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = -420000773; - break; - case 2: - goto end_IL_032e; - case 1: - _200C_200C_202A_200C_200F_206D_206A_206B_206D_202E_200E_200D_200E_206F_202B_202C_200F_202A_202D_206C_202A_206D_202B_200D_202C_206C_200E_202C_200B_200C_202B_200E_200F_202C_206F_202D_202A_200C_206B_206B_202E(ref wigglyNavIpc._outstandingPathfinds); - num2 = -420000776; - break; - } - continue; - end_IL_032e: - break; - } - } - goto end_IL_002c; - } - continue; - end_IL_002c: - break; - } - } - catch (Exception exception) - { - _003C_003E1__state = -2; - _003C_003Et__builder.SetException(exception); - return; - } - _003C_003E1__state = -2; - _003C_003Et__builder.SetResult(result2); - } - - void IAsyncStateMachine.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - this.MoveNext(); - } - - [DebuggerHidden] - private void SetStateMachine(IAsyncStateMachine stateMachine) - { - _003C_003Et__builder.SetStateMachine(stateMachine); - } - - void IAsyncStateMachine.SetStateMachine(IAsyncStateMachine stateMachine) - { - //ILSpy generated this explicit interface implementation from .override directive in SetStateMachine - this.SetStateMachine(stateMachine); - } - - static int _200F_206C_206B_202E_202C_206F_202C_206A_206F_206C_206D_200E_206E_206A_202B_200B_206D_206D_206F_206E_200C_202B_202B_200F_206F_200B_202A_206D_206D_206E_206A_200B_206B_200D_202C_206F_200F_200E_200C_202D_202E(ref int P_0) - { - return Interlocked.Increment(ref P_0); - } - - static void _200C_202A_206B_200B_206E_206E_202B_202B_200E_202B_206C_206E_206B_202A_200C_200D_206D_200D_200F_206F_202B_202D_206C_200B_202D_202B_200F_202E_202D_206E_206E_202A_202C_206B_200B_202A_206F_200F_202A_206B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static void _206B_200D_200C_206C_200B_202B_202D_200B_206E_206F_200F_200D_206A_206B_200E_206B_200D_200C_206D_200F_200E_206B_200F_202A_200E_200E_206C_200D_206C_206B_206A_206F_206F_206B_206F_200B_206E_206F_200F_206F_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogWarning(P_1, P_2, P_3); - } - - static int _200C_200C_202A_200C_200F_206D_206A_206B_206D_202E_200E_200D_200E_206F_202B_202C_200F_202A_202D_206C_202A_206D_202B_200D_202C_206C_200E_202C_200B_200C_202B_200E_200F_202C_206F_202D_202A_200C_206B_206B_202E(ref int P_0) - { - return Interlocked.Decrement(ref P_0); - } - } - private readonly ILogger<WigglyNavIpc> _logger; private readonly ICallGateSubscriber<(int, int)> _apiVersion; @@ -301,53 +39,27 @@ internal sealed class WigglyNavIpc public bool IsNavmeshAvailable => TryGetApiVersion().HasValue; - public bool IsReady - { - get - { - NavStatus status = GetStatus(); - int num = (((object)status == null) ? (-1445089980) : (-1445089979)); - while (true) - { - int num2 = num; - int num3 = -1445089980; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0048; - case 0: - return false; - case 1: - return status.Ready; - } - continue; - IL_0048: - num = -1445089979; - } - } - } + public bool IsReady => GetStatus()?.Ready ?? false; public bool IsPathRunning => Guarded(() => _isRunning.InvokeFunc(), fallback: false); - public bool IsPathfindInProgress => _200B_200F_200B_202C_200F_202B_202E_206F_200F_202C_206B_200D_206D_202B_202E_206D_202A_202D_206F_202E_206D_202E_200F_202D_206C_202A_206D_200F_206F_206F_202C_202B_202C_200C_202B_202C_202E_206B_206B_206A_202E(ref _outstandingPathfinds) > 0; + public bool IsPathfindInProgress => Volatile.Read(in _outstandingPathfinds) > 0; - public int NumQueuedPathfindRequests => _202C_202D_202B_202E_206B_200B_206F_206B_206F_200D_206F_202B_202E_202C_200C_200B_202D_202A_206B_206D_206D_206E_202E_206B_206B_206C_206E_200F_202B_202D_202D_202E_206D_200F_202C_202D_202B_206D_202A_206C_202E(0, _200B_200F_200B_202C_200F_202B_202E_206F_200F_202C_206B_200D_206D_202B_202E_206D_202A_202D_206F_202E_206D_202E_200F_202D_206C_202A_206D_200F_206F_206F_202C_202B_202C_200C_202B_202C_202E_206B_206B_206A_202E(ref _outstandingPathfinds) - 1); + public int NumQueuedPathfindRequests => Math.Max(0, Volatile.Read(in _outstandingPathfinds) - 1); - [MethodImpl(MethodImplOptions.NoInlining)] public WigglyNavIpc(IDalamudPluginInterface pluginInterface, ILogger<WigglyNavIpc> logger) { _logger = logger; - _apiVersion = pluginInterface.GetIpcSubscriber<(int, int)>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-210373295)); - _status = pluginInterface.GetIpcSubscriber<NavStatus>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1180852660)); - _rebuild = pluginInterface.GetIpcSubscriber<bool>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1824704594)); - _pathfind = pluginInterface.GetIpcSubscriber<PathfindQuery, CancellationToken, Task<string>>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1256767723)); - _move = pluginInterface.GetIpcSubscriber<MoveCommand, bool>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2010421691)); - _stop = pluginInterface.GetIpcSubscriber<object>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1146720717)); - _isRunning = pluginInterface.GetIpcSubscriber<bool>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2133174746)); - _waypoints = pluginInterface.GetIpcSubscriber<List<Vector3>>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(206019124)); - _floorPoint = pluginInterface.GetIpcSubscriber<Vector3, float, bool, Vector3?>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1729999483)); - _nearestPoint = pluginInterface.GetIpcSubscriber<Vector3, float, Vector3?>(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-229973248)); + _apiVersion = pluginInterface.GetIpcSubscriber<(int, int)>("WigglyNav.ApiVersion"); + _status = pluginInterface.GetIpcSubscriber<NavStatus>("WigglyNav.V1.Nav.Status"); + _rebuild = pluginInterface.GetIpcSubscriber<bool>("WigglyNav.V1.Nav.Rebuild"); + _pathfind = pluginInterface.GetIpcSubscriber<PathfindQuery, CancellationToken, Task<string>>("WigglyNav.V1.Pathfind"); + _move = pluginInterface.GetIpcSubscriber<MoveCommand, bool>("WigglyNav.V1.Path.Move"); + _stop = pluginInterface.GetIpcSubscriber<object>("WigglyNav.V1.Path.Stop"); + _isRunning = pluginInterface.GetIpcSubscriber<bool>("WigglyNav.V1.Path.IsRunning"); + _waypoints = pluginInterface.GetIpcSubscriber<List<Vector3>>("WigglyNav.V1.Path.Waypoints"); + _floorPoint = pluginInterface.GetIpcSubscriber<Vector3, float, bool, Vector3?>("WigglyNav.V1.Query.FloorPoint"); + _nearestPoint = pluginInterface.GetIpcSubscriber<Vector3, float, Vector3?>("WigglyNav.V1.Query.NearestPoint"); } private static T Guarded<T>(Func<T> invoke, T fallback = default(T)) @@ -370,161 +82,53 @@ internal sealed class WigglyNavIpc public int GetBuildProgress() { NavStatus status = GetStatus(); - int num = ((!(status == null)) ? (-1561729010) : (-1561729012)); - while (true) + if (status == null) { - int num2 = num; - int num3 = -1561729009; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - return _200E_200C_202A_206A_202D_206A_200B_200B_200D_206D_202A_206A_202D_202B_206D_200E_202C_202B_206E_206C_200F_202A_206A_202A_206A_200C_206C_206B_202D_202D_206D_202C_200E_206F_206E_200C_206D_202A_206C_202A_202E(status.TilesBuilt * 100 / status.TilesTotal, 0, 100); - case 0: - return 100; - case 1: - num = ((status.TilesTotal <= 0) ? (-1561729014) : (-1561729013)); - break; - case 6: - num = -1561729012; - break; - case 2: - return 0; - case 5: - num = (status.Ready ? (-1561729009) : (-1561729011)); - break; - case 3: - return 0; - } + return 0; } + if (status.TilesTotal > 0) + { + return Math.Clamp(status.TilesBuilt * 100 / status.TilesTotal, 0, 100); + } + if (!status.Ready) + { + return 0; + } + return 100; } public async Task<PathfindResult> Pathfind(Vector3 from, Vector3 to, bool fly, float tolerance, CancellationToken cancellationToken) { - int num = -1011094234; - _003C_003Ec__DisplayClass26_0 _003C_003Ec__DisplayClass26_ = default(_003C_003Ec__DisplayClass26_0); - ConfiguredTaskAwaitable<string>.ConfiguredTaskAwaiter configuredTaskAwaiter = default(ConfiguredTaskAwaitable<string>.ConfiguredTaskAwaiter); - ConfiguredTaskAwaitable<string>.ConfiguredTaskAwaiter configuredTaskAwaiter2 = default(ConfiguredTaskAwaitable<string>.ConfiguredTaskAwaiter); - Task<string> task = default(Task<string>); - while (true) + Interlocked.Increment(ref _outstandingPathfinds); + try { - int num2 = num; - int num3 = -1011094236; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + PathfindQuery query = new PathfindQuery(from, to, fly, tolerance); + Task<string> task = Guarded(() => _pathfind.InvokeFunc(query, cancellationToken)); + if (task == null) { - case 0: - num = -1011094234; - break; - case 2: - _003C_003Ec__DisplayClass26_ = new _003C_003Ec__DisplayClass26_0(); - _003C_003Ec__DisplayClass26_._003C_003E4__this = this; - _003C_003Ec__DisplayClass26_.cancellationToken = cancellationToken; - _003CPathfind_003Ed__26._200F_206C_206B_202E_202C_206F_202C_206A_206F_206C_206D_200E_206E_206A_202B_200B_206D_206D_206F_206E_200C_202B_202B_200F_206F_200B_202A_206D_206D_206E_206A_200B_206B_200D_202C_206F_200F_200E_200C_202D_202E(ref _outstandingPathfinds); - num = -1011094235; - break; - case 1: - try - { - num = 1011479213; - while (true) - { - int num7 = num; - num3 = 1011479211; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 4: - configuredTaskAwaiter = configuredTaskAwaiter2; - configuredTaskAwaiter2 = default(ConfiguredTaskAwaitable<string>.ConfiguredTaskAwaiter); - num = 1011479208; - break; - case 6: - _003C_003Ec__DisplayClass26_.query = new PathfindQuery(from, to, fly, tolerance); - task = Guarded(_003C_003Ec__DisplayClass26_._003CPathfind_003Eb__0); - num = ((task != null) ? 1011479209 : 1011479210); - break; - case 1: - _003CPathfind_003Ed__26._200C_202A_206B_200B_206E_206E_202B_202B_200E_202B_206C_206E_206B_202A_200C_200D_206D_200D_200F_206F_202B_202D_206C_200B_202D_202B_200F_202E_202D_206E_206E_202A_202C_206B_200B_202A_206F_200F_202A_206B_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(433157232), Array.Empty<object>()); - return EmptyPathfindResult(); - case 5: - num = 1011479213; - break; - case 2: - configuredTaskAwaiter = task.ConfigureAwait(continueOnCapturedContext: false).GetAwaiter(); - num = (configuredTaskAwaiter.IsCompleted ? 1011479208 : 1011479211); - break; - case 0: - await configuredTaskAwaiter; - num = 1011479215; - break; - case 3: - { - string result = configuredTaskAwaiter.GetResult(); - try - { - PathfindResult pathfindResult = JsonConvert.DeserializeObject<PathfindResult>(result); - num = (((object)pathfindResult == null) ? 1753402747 : 1753402745); - while (true) - { - int num10 = num; - num3 = 1753402744; - num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1753402745; - break; - case 1: - num = ((pathfindResult.Waypoints != null) ? 1753402746 : 1753402747); - break; - case 3: - _003CPathfind_003Ed__26._200C_202A_206B_200B_206E_206E_202B_202B_200E_202B_206C_206E_206B_202A_200C_200D_206D_200D_200F_206F_202B_202D_206C_200B_202D_202B_200F_202E_202D_206E_206E_202A_202C_206B_200B_202A_206F_200F_202A_206B_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1821206779), Array.Empty<object>()); - return EmptyPathfindResult(); - case 2: - return pathfindResult; - } - } - } - catch (JsonException ex) - { - _003CPathfind_003Ed__26._206B_200D_200C_206C_200B_202B_202D_200B_206E_206F_200F_200D_206A_206B_200E_206B_200D_200C_206D_200F_200E_206B_200F_202A_200E_200E_206C_200D_206C_206B_206A_206F_206F_206B_206F_200B_206E_206F_200F_206F_202E((ILogger)_logger, (Exception)ex, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1517525166), Array.Empty<object>()); - return EmptyPathfindResult(); - } - } - } - } - } - finally - { - num = -420000773; - while (true) - { - int num11 = num; - num3 = -420000774; - num4 = num11; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -420000773; - break; - case 2: - goto end_IL_032e; - case 1: - _003CPathfind_003Ed__26._200C_200C_202A_200C_200F_206D_206A_206B_206D_202E_200E_200D_200E_206F_202B_202C_200F_202A_202D_206C_202A_206D_202B_200D_202C_206C_200E_202C_200B_200C_202B_200E_200F_202C_206F_202D_202A_200C_206B_206B_202E(ref _outstandingPathfinds); - num = -420000776; - break; - } - continue; - end_IL_032e: - break; - } - } + _logger.LogWarning("Could not pathfind via WigglyNav, the IPC gate is unavailable"); + return EmptyPathfindResult(); } + string value = await task.ConfigureAwait(continueOnCapturedContext: false); + try + { + PathfindResult pathfindResult = JsonConvert.DeserializeObject<PathfindResult>(value); + if ((object)pathfindResult == null || pathfindResult.Waypoints == null) + { + _logger.LogWarning("WigglyNav pathfind answered a payload with no waypoint list, treating as no path"); + return EmptyPathfindResult(); + } + return pathfindResult; + } + catch (JsonException exception) + { + _logger.LogWarning(exception, "WigglyNav pathfind answered malformed JSON, treating as no path"); + return EmptyPathfindResult(); + } + } + finally + { + Interlocked.Decrement(ref _outstandingPathfinds); } } @@ -556,7 +160,7 @@ internal sealed class WigglyNavIpc public Vector3? FindNearestMeshPoint(Vector3 position, float halfExtentXZ, float halfExtentY) { - return Guarded(() => _nearestPoint.InvokeFunc(position, _003C_003Ec__DisplayClass31_0._202B_206C_200C_200E_200F_202E_202E_200F_206A_200D_200E_202B_206B_202A_200D_200B_202A_202C_202E_202C_206F_206B_200F_206B_200E_200B_200F_206D_200E_200C_206B_200B_206B_200F_200E_200B_202A_202B_202D_202E_202E(halfExtentXZ, halfExtentY))); + return Guarded(() => _nearestPoint.InvokeFunc(position, MathF.Max(halfExtentXZ, halfExtentY))); } public Vector3? FindNearestReachableMeshPoint(Vector3 position, float halfExtentXZ, float halfExtentY) @@ -569,27 +173,11 @@ internal sealed class WigglyNavIpc Rebuild(); } - [MethodImpl(MethodImplOptions.NoInlining)] public void Rebuild() { - int num = (Guarded(() => _rebuild.InvokeFunc(), fallback: false) ? 890598497 : 890598498); - while (true) + if (!Guarded(() => _rebuild.InvokeFunc(), fallback: false)) { - int num2 = num; - int num3 = 890598496; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return; - case 2: - _202D_202D_200D_202C_202A_200E_206D_202D_206A_200F_206B_200C_206D_200F_202C_202E_202A_206D_206E_206E_206A_206F_206E_202A_200D_206D_202C_200D_206D_206B_202C_206E_206D_202A_206C_202A_200F_202C_206A_202C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1801615064), Array.Empty<object>()); - num = 890598497; - break; - case 0: - num = 890598498; - break; - } + _logger.LogWarning("Could not rebuild navmesh via WigglyNav, the request was refused or the gate is unavailable"); } } @@ -598,29 +186,8 @@ internal sealed class WigglyNavIpc return Guarded(() => _status.InvokeFunc()); } - [MethodImpl(MethodImplOptions.NoInlining)] private static PathfindResult EmptyPathfindResult() { - return new PathfindResult(new List<Vector3>(), IsPartial: false, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1706749360), 0f); - } - - static int _200B_200F_200B_202C_200F_202B_202E_206F_200F_202C_206B_200D_206D_202B_202E_206D_202A_202D_206F_202E_206D_202E_200F_202D_206C_202A_206D_200F_206F_206F_202C_202B_202C_200C_202B_202C_202E_206B_206B_206A_202E(ref int P_0) - { - return Volatile.Read(in P_0); - } - - static int _202C_202D_202B_202E_206B_200B_206F_206B_206F_200D_206F_202B_202E_202C_200C_200B_202D_202A_206B_206D_206D_206E_202E_206B_206B_206C_206E_200F_202B_202D_202D_202E_206D_200F_202C_202D_202B_206D_202A_206C_202E(int P_0, int P_1) - { - return Math.Max(P_0, P_1); - } - - static int _200E_200C_202A_206A_202D_206A_200B_200B_200D_206D_202A_206A_202D_202B_206D_200E_202C_202B_206E_206C_200F_202A_206A_202A_206A_200C_206C_206B_202D_202D_206D_202C_200E_206F_206E_200C_206D_202A_206C_202A_202E(int P_0, int P_1, int P_2) - { - return Math.Clamp(P_0, P_1, P_2); - } - - static void _202D_202D_200D_202C_202A_200E_206D_202D_206A_200F_206B_200C_206D_200F_202C_202E_202A_206D_206E_206E_206A_206F_206E_202A_200D_206D_202C_200D_206D_206B_202C_206E_206D_202A_206C_202A_200F_202C_206A_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); + return new PathfindResult(new List<Vector3>(), IsPartial: false, "None", 0f); } } diff --git a/Questionable/Questionable.Functions/AethernetTeleportService.cs b/Questionable/Questionable.Functions/AethernetTeleportService.cs index af18577..2684010 100644 --- a/Questionable/Questionable.Functions/AethernetTeleportService.cs +++ b/Questionable/Questionable.Functions/AethernetTeleportService.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Conditions; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.UI; @@ -97,118 +96,58 @@ internal sealed class AethernetTeleportService : IDisposable _condition = condition; _interactionUiController = interactionUiController; _logger = logger; - _206A_200B_200F_206A_206C_200F_200E_206D_206E_206F_200C_200E_200B_200F_202B_202D_202B_206E_206A_206B_206E_200F_202C_202D_200C_206E_200B_202B_202A_200C_200C_202C_200C_202C_206B_206E_200B_206C_200C_200E_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkUpdate); + _framework.Update += OnFrameworkUpdate; } - [MethodImpl(MethodImplOptions.NoInlining)] public void RequestTeleport(EAetheryteLocation destination) { - int num = ((State == ETeleportState.Idle) ? 1903322012 : 1903322015); - string text = default(string); - uint value = default(uint); - while (true) + if (State != ETeleportState.Idle) { - int num2 = num; - int num3 = 1903322013; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + Reset(); + } + if (FirmamentPlaceNameIds.TryGetValue(destination, out var value)) + { + string text = ResolvePlaceName(value); + if (text != null) { - case 5: - num = 1903322015; - break; - case 4: - text = ResolvePlaceName(value); - num = ((text == null) ? 1903322014 : 1903322011); - break; - case 6: RequestCustomZoneTeleport(destination, text); return; - case 2: - Reset(); - num = 1903322012; - break; - case 1: - num = ((!FirmamentPlaceNameIds.TryGetValue(destination, out value)) ? 1903322013 : 1903322009); - break; - case 3: - _206C_202A_202C_200B_202A_200E_206F_202A_206A_200B_206A_202A_206B_206A_202A_200B_200C_206F_202D_206C_202E_202D_200F_202A_202D_206F_200C_206D_200E_206A_200C_200C_206F_200F_200D_206C_202E_206A_202D_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1915991887), new object[2] { value, destination }); - num = 1903322013; - break; - case 0: - _206A_202B_200D_206F_206C_202E_202C_202C_200C_206A_206D_200F_206F_206B_206F_206D_200B_206D_202A_200B_206E_202B_202C_206F_202B_200C_206E_206B_200E_206D_202E_202A_200B_202E_206B_206D_200E_206E_202E_206A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-478164003), new object[1] { destination }); - PendingDestination = destination; - _requestedAtMs = _202A_200F_202A_202D_206D_202D_200F_200E_202A_202E_202A_206D_202A_202E_206F_202D_202C_202C_200C_206D_206C_202D_200D_206E_200B_202A_206C_200D_206E_200C_202B_202B_202C_206F_200C_206D_200F_200B_200E_200E_202E(); - State = ETeleportState.WaitingForAddon; - return; } + _logger.LogWarning("Failed to resolve PlaceName {Id} for Firmament destination {Dest}", value, destination); } + _logger.LogInformation("Requesting aethernet teleport to {Destination}", destination); + PendingDestination = destination; + _requestedAtMs = Environment.TickCount64; + State = ETeleportState.WaitingForAddon; } - [MethodImpl(MethodImplOptions.NoInlining)] public void RequestCustomZoneTeleport(EAetheryteLocation destination, string destinationName) { - int num = ((State == ETeleportState.Idle) ? (-1619368732) : (-1619368729)); - while (true) + if (State != ETeleportState.Idle) { - int num2 = num; - int num3 = -1619368731; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _206A_202B_200D_206F_206C_202E_202C_202C_200C_206A_206D_200F_206F_206B_206F_206D_200B_206D_202A_200B_206E_202B_202C_206F_202B_200C_206E_206B_200E_206D_202E_202A_200B_202E_206B_206D_200E_206E_202E_206A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1788741827), new object[2] { destination, destinationName }); - PendingDestination = destination; - _interactionUiController.AethernetDestinationName = destinationName; - State = ETeleportState.Complete; - return; - case 2: - _206C_202A_202C_200B_202A_200E_206F_202A_206A_200B_206A_202A_206B_206A_202A_200B_200C_206F_202D_206C_202E_202D_200F_202A_202D_206F_200C_206D_200E_206A_200C_200C_206F_200F_200D_206C_202E_206A_202D_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1049949813), new object[1] { State }); - Reset(); - num = -1619368732; - break; - case 0: - num = -1619368729; - break; - } + _logger.LogWarning("RequestCustomZoneTeleport called while in state {State}, resetting first", State); + Reset(); } + _logger.LogInformation("Requesting custom zone aethernet teleport to {Destination} ({Name})", destination, destinationName); + PendingDestination = destination; + _interactionUiController.AethernetDestinationName = destinationName; + State = ETeleportState.Complete; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Reset() { - int num = ((State == ETeleportState.Idle) ? (-1786789518) : (-1786789517)); - while (true) + if (State != ETeleportState.Idle) { - int num2 = num; - int num3 = -1786789518; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -1786789517; - break; - case 1: - _200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1323544865), new object[1] { State }); - num = -1786789518; - break; - case 0: - State = ETeleportState.Idle; - PendingDestination = null; - _requestedAtMs = 0L; - _selectStringDismissed = false; - _fired = false; - _entriesLogged = false; - _nextFireAtMs = 0L; - ClearCustomZoneState(); - return; - } + _logger.LogDebug("Resetting AethernetTeleportService from state {State}", State); } + State = ETeleportState.Idle; + PendingDestination = null; + _requestedAtMs = 0L; + _selectStringDismissed = false; + _fired = false; + _entriesLogged = false; + _nextFireAtMs = 0L; + ClearCustomZoneState(); } private void ClearCustomZoneState() @@ -224,186 +163,99 @@ internal sealed class AethernetTeleportService : IDisposable private string? ResolveAethernetDisplayName(EAetheryteLocation aetheryte) { Aetheryte? rowOrDefault = _dataManager.GetExcelSheet<Aetheryte>().GetRowOrDefault((uint)aetheryte); - int num = (rowOrDefault.HasValue ? 1376211537 : 1376211538); - while (true) + if (!rowOrDefault.HasValue) { - int num2 = num; - int num3 = 1376211539; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return rowOrDefault.Value.AethernetName.ValueNullable?.Name.ToString(); - case 1: - return null; - case 0: - goto IL_00b7; - } - continue; - IL_00b7: - num = 1376211538; + return null; } + return rowOrDefault.Value.AethernetName.ValueNullable?.Name.ToString(); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void OnFrameworkUpdate(IFramework _) { - int num = ((State == ETeleportState.WaitingForAddon) ? (-640751592) : (-640751593)); - AtkUnitBase* addonPtr = default(AtkUnitBase*); - int num9 = default(int); - AddonSelectString* addonPtr2 = default(AddonSelectString*); - long num19 = default(long); - int num13 = default(int); - int num7 = default(int); - string text = default(string); - string text2 = default(string); - AtkValue atkValue = default(AtkValue); - int num17 = default(int); - int num12 = default(int); - while (true) + if (State != ETeleportState.WaitingForAddon) { - int num2 = num; - int num3 = -640751592; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num8; - switch (num5 - (num6 + num6)) + return; + } + AddonSelectString* addonPtr; + AtkUnitBase* addonPtr2; + if (_fired && (_condition[ConditionFlag.BetweenAreas] || _condition[ConditionFlag.BetweenAreas51])) + { + _logger.LogDebug("Aethernet teleport to {Destination} accepted (between areas)", PendingDestination); + State = ETeleportState.Complete; + } + else if (Environment.TickCount64 - _requestedAtMs > (long)AddonTimeout.TotalMilliseconds) + { + _logger.LogWarning("Aethernet teleport request to {Destination} timed out after {Timeout}s", PendingDestination, AddonTimeout.TotalSeconds); + State = ETeleportState.Failed; + } + else if (_gameGui.TryGetAddonByName<AddonSelectString>("SelectString", out addonPtr) && LAddon.IsAddonReady(&addonPtr->AtkUnitBase)) + { + _logger.LogDebug("Dismissing aetheryte SelectString (selecting Aethernet)"); + addonPtr->AtkUnitBase.FireCallbackInt(0); + _selectStringDismissed = true; + } + else if (_selectStringDismissed) + { + _selectStringDismissed = false; + } + else if (!_gameGui.TryGetAddonByName<AtkUnitBase>("TelepotTown", out addonPtr2)) + { + if (_fired) + { + _logger.LogDebug("Aethernet teleport to {Destination} accepted (menu closed)", PendingDestination); + State = ETeleportState.Complete; + } + } + else + { + if (!LAddon.IsAddonReady(addonPtr2)) { - case 39: return; - case 26: - num = (_206D_206E_202C_202C_200C_200B_202D_202B_206A_206E_206B_200B_200C_206E_200B_200B_206C_206F_206F_202A_200D_206C_206D_202E_206C_206F_206B_202C_202E_206C_202A_202A_206D_202A_206E_206F_202A_202C_200F_200F_202E(addonPtr) ? (-640751615) : (-640751553)); - break; - case 13: - num = ((num9 < 20) ? (-640751586) : (-640751554)); - break; - case 20: - num = ((!_206D_206E_202C_202C_200C_200B_202D_202B_206A_206E_206B_200B_200C_206E_200B_200B_206C_206F_206F_202A_200D_206C_206D_202E_206C_206F_206B_202C_202E_206C_202A_202A_206D_202A_206E_206F_202A_202C_200F_200F_202E(&addonPtr2->AtkUnitBase)) ? (-640751560) : (-640751555)); - break; - case 18: - _selectStringDismissed = false; - return; - case 30: - num8 = -1; - goto IL_064f; - case 29: - num19 = _202A_200F_202A_202D_206D_202D_200F_200E_202A_202E_202A_206D_202A_202E_206F_202D_202C_202C_200C_206D_206C_202D_200D_206E_200B_202A_206C_200D_206E_200C_202B_202B_202C_206F_200C_206D_200F_200B_200E_200E_202E(); - num = ((num19 >= _nextFireAtMs) ? (-640751556) : (-640751558)); - break; - case 22: - num = ((num13 >= 0) ? (-640751616) : (-640751585)); - break; - case 4: - return; - case 2: - num13 = num7; - num = -640751616; - break; - case 7: - num = ((text == null) ? (-640751616) : (-640751589)); - break; - case 12: - _206C_202A_202C_200B_202A_200E_206F_202A_206A_200B_206A_202A_206B_206A_202A_200B_200C_206F_202D_206C_202E_202D_200F_202A_202D_206F_200C_206D_200E_206A_200C_200C_206F_200F_200D_206C_202E_206A_202D_200F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-964873938), new object[2] { PendingDestination, AddonTimeout.TotalSeconds }); + } + string text = ResolveAethernetDisplayName(PendingDestination.Value); + if (text == null) + { + _logger.LogWarning("Failed to resolve display name for {Destination}", PendingDestination); State = ETeleportState.Failed; return; - case 33: - num = (_206F_206B_206F_202E_206D_200E_206A_206C_202D_206C_202C_206F_202E_202C_206F_206C_206A_202E_200E_206D_200B_200E_202D_200F_206C_200F_200E_200C_206B_202E_206A_202D_200D_202A_206B_202B_202A_202E_206E_202B_202E(_condition, ConditionFlag.BetweenAreas) ? (-640751605) : (-640751591)); - break; - case 21: - _200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-969368539), new object[3] { PendingDestination, text2, num13 }); - num = -640751597; - break; - case 24: - { - int num22 = num9; - num3 = 1; - num4 = num22; - int num23 = num4 ^ num3; - int num24 = num4 & num3; - num9 = num23 + (num24 + num24); - num = -640751595; - break; } - case 5: - _200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-568972459), new object[3] { num9, text, num7 }); - num = -640751602; - break; - case 35: - num13 = -1; - num9 = 0; - num = -640751595; - break; - case 19: - _200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1143749055), new object[1] { PendingDestination }); - State = ETeleportState.Complete; - return; - case 37: - _200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-533960738), Array.Empty<object>()); - addonPtr2->AtkUnitBase.FireCallbackInt(0); - _selectStringDismissed = true; - return; - case 8: - num = ((!_gameGui.TryGetAddonByName<AddonSelectString>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1860227121), out addonPtr2)) ? (-640751560) : (-640751604)); - break; - case 10: - _200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(151838006), new object[1] { PendingDestination }); - State = ETeleportState.Complete; - num = -640751609; - break; - case 16: + int num = -1; + for (int i = 0; i < 20; i++) { - text = _200E_206C_202D_202B_206D_206D_202C_200D_200C_202A_200F_202A_200D_206A_206A_206B_206A_200F_200E_200D_200D_200C_202D_206E_200D_202C_200F_206B_200C_200E_202A_202E_206A_200F_206F_202C_206F_202D_202E_202E_202E(atkValue); - num3 = num9 * 4; - num4 = 6; - int num14 = (num4 | num3) + (num4 & num3); - num3 = 3; - num4 = num14; - int num15 = num4 ^ num3; - int num16 = num4 & num3; - num17 = num15 + (num16 + num16); - num = ((num17 < addonPtr->AtkValuesCount) ? (-640751599) : (-640751610)); - break; + int num2 = 262 + i; + if (num2 >= addonPtr2->AtkValuesCount) + { + break; + } + AtkValue atkValue = addonPtr2->AtkValues[num2]; + if (atkValue.Type == AtkValueType.Undefined) + { + break; + } + string text2 = atkValue.ReadAtkString(); + int num3 = 6 + i * 4 + 3; + int num4 = ((num3 < addonPtr2->AtkValuesCount) ? addonPtr2->AtkValues[num3].Int : (-1)); + if (!_entriesLogged) + { + _logger.LogDebug("TelepotTown entry {Index}: name='{Name}' callback={Callback}", i, text2, num4); + } + if (num < 0 && text2 != null && GameFunctions.GameStringEquals(text2, text)) + { + num = num4; + } } - case 40: - num = ((_202A_200F_202A_202D_206D_202D_200F_200E_202A_202E_202A_206D_202A_202E_206F_202D_202C_202C_200C_206D_206C_202D_200D_206E_200B_202A_206C_200D_206E_200C_202B_202B_202C_206F_200C_206D_200F_200B_200E_200E_202E() - _requestedAtMs <= (long)AddonTimeout.TotalMilliseconds) ? (-640751600) : (-640751596)); - break; - case 32: - num = ((!_selectStringDismissed) ? (-640751607) : (-640751606)); - break; - case 27: - atkValue = addonPtr->AtkValues[num12]; - num = ((atkValue.Type == AtkValueType.Undefined) ? (-640751554) : (-640751608)); - break; - case 31: - return; - case 0: - num = ((!_fired) ? (-640751568) : (-640751559)); - break; - case 38: - _entriesLogged = true; - num = ((num13 >= 0) ? (-640751611) : (-640751588)); - break; - case 14: - _206C_202A_202C_200B_202A_200E_206F_202A_206A_200B_206A_202A_206B_206A_202A_200B_200C_206F_202D_206C_202E_202D_200F_202A_202D_206F_200C_206D_200E_206A_200C_200C_206F_200F_200D_206C_202E_206A_202D_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(613688553), new object[1] { PendingDestination }); - State = ETeleportState.Failed; - return; - case 23: - num = -640751593; - break; - case 28: - num = ((!_fired) ? (-640751609) : (-640751598)); - break; - case 36: - num = (_fired ? (-640751597) : (-640751603)); - break; - case 3: - num = ((!GameFunctions.GameStringEquals(text, text2)) ? (-640751616) : (-640751590)); - break; - case 11: + _entriesLogged = true; + if (num < 0) { + return; + } + long tickCount = Environment.TickCount64; + if (tickCount >= _nextFireAtMs) + { + if (!_fired) + { + _logger.LogDebug("Selecting aethernet destination {Destination} ({Name}) via callback {Callback}", PendingDestination, text, num); + } AtkValue* values = stackalloc AtkValue[2] { new AtkValue @@ -414,107 +266,18 @@ internal sealed class AethernetTeleportService : IDisposable new AtkValue { Type = AtkValueType.Int, - Int = num13 + Int = num } }; - addonPtr->FireCallback(2u, values, close: true); + addonPtr2->FireCallback(2u, values, close: true); _fired = true; - long num18 = num19; - long num20 = 100L; - long num21 = num18; - _nextFireAtMs = (num21 | num20) + (num21 & num20); - return; - } - case 9: - num8 = addonPtr->AtkValues[num17].Int; - goto IL_064f; - case 25: - text2 = ResolveAethernetDisplayName(PendingDestination.Value); - num = ((text2 != null) ? (-640751557) : (-640751594)); - break; - case 17: - num = (_gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1959750528), out addonPtr) ? (-640751614) : (-640751612)); - break; - case 34: - return; - case 6: - { - num3 = num9; - num4 = 262; - int num10 = num4 ^ num3; - int num11 = num4 & num3; - num12 = num10 + (num11 + num11); - num = ((num12 >= addonPtr->AtkValuesCount) ? (-640751554) : (-640751613)); - break; - } - case 15: - return; - case 1: - { - num = ((!_206F_206B_206F_202E_206D_200E_206A_206C_202D_206C_202C_206F_202E_202C_206F_206C_206A_202E_200E_206D_200B_200E_202D_200F_206C_200F_200E_200C_206B_202E_206A_202D_200D_202A_206B_202B_202A_202E_206E_202B_202E(_condition, ConditionFlag.BetweenAreas51)) ? (-640751568) : (-640751605)); - break; - } - IL_064f: - num7 = num8; - num = (_entriesLogged ? (-640751602) : (-640751587)); - break; + _nextFireAtMs = tickCount + 100; } } } public void Dispose() { - _202C_206B_202D_202A_206F_202B_202A_206C_206A_206F_202C_200F_206B_206C_206A_206A_202D_202D_200B_202D_206C_202B_202E_206C_206F_206B_200D_200F_200C_200D_206E_206C_202A_202B_202E_200F_206F_206D_200E_200F_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkUpdate); - } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static void _206A_200B_200F_206A_206C_200F_200E_206D_206E_206F_200C_200E_200B_200F_202B_202D_202B_206E_206A_206B_206E_200F_202C_202D_200C_206E_200B_202B_202A_200C_200C_202C_200C_202C_206B_206E_200B_206C_200C_200E_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update += P_1; - } - - static void _206C_202A_202C_200B_202A_200E_206F_202A_206A_200B_206A_202A_206B_206A_202A_200B_200C_206F_202D_206C_202E_202D_200F_202A_202D_206F_200C_206D_200E_206A_200C_200C_206F_200F_200D_206C_202E_206A_202D_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static void _206A_202B_200D_206F_206C_202E_202C_202C_200C_206A_206D_200F_206F_206B_206F_206D_200B_206D_202A_200B_206E_202B_202C_206F_202B_200C_206E_206B_200E_206D_202E_202A_200B_202E_206B_206D_200E_206E_202E_206A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static long _202A_200F_202A_202D_206D_202D_200F_200E_202A_202E_202A_206D_202A_202E_206F_202D_202C_202C_200C_206D_206C_202D_200D_206E_200B_202A_206C_200D_206E_200C_202B_202B_202C_206F_200C_206D_200F_200B_200E_200E_202E() - { - return Environment.TickCount64; - } - - static void _200C_202D_202A_202A_202E_206C_206E_202E_202E_202C_206C_202A_202D_200D_206B_200F_206D_200C_206E_206C_200C_200C_202A_206E_200D_202E_200C_206F_200E_202A_202D_200D_202C_206A_202E_206E_206B_206B_202A_200E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _206F_206B_206F_202E_206D_200E_206A_206C_202D_206C_202C_206F_202E_202C_206F_206C_206A_202E_200E_206D_200B_200E_202D_200F_206C_200F_200E_200C_206B_202E_206A_202D_200D_202A_206B_202B_202A_202E_206E_202B_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - unsafe static bool _206D_206E_202C_202C_200C_200B_202D_202B_206A_206E_206B_200B_200C_206E_200B_200B_206C_206F_206F_202A_200D_206C_206D_202E_206C_206F_206B_202C_202E_206C_202A_202A_206D_202A_206E_206F_202A_202C_200F_200F_202E(AtkUnitBase* P_0) - { - return LAddon.IsAddonReady(P_0); - } - - static string _200E_206C_202D_202B_206D_206D_202C_200D_200C_202A_200F_202A_200D_206A_206A_206B_206A_200F_200E_200D_200D_200C_202D_206E_200D_202C_200F_206B_200C_200E_202A_202E_206A_200F_206F_202C_206F_202D_202E_202E_202E(AtkValue P_0) - { - return P_0.ReadAtkString(); - } - - static void _202C_206B_202D_202A_206F_202B_202A_206C_206A_206F_202C_200F_206B_206C_206A_206A_202D_202D_200B_202D_206C_202B_202E_206C_206F_206B_200D_200F_200C_200D_206E_206C_202A_202B_202E_200F_206F_206D_200E_200F_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update -= P_1; + _framework.Update -= OnFrameworkUpdate; } } diff --git a/Questionable/Questionable.Functions/AetheryteFunctions.cs b/Questionable/Questionable.Functions/AetheryteFunctions.cs index 3cdd299..fe382f0 100644 --- a/Questionable/Questionable.Functions/AetheryteFunctions.cs +++ b/Questionable/Questionable.Functions/AetheryteFunctions.cs @@ -1,6 +1,4 @@ using System; -using System.Runtime.CompilerServices; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game.UI; @@ -41,108 +39,41 @@ internal sealed class AetheryteFunctions { subIndex = 0; UIState* ptr = UIState.Instance(); - int num = ((ptr == null) ? 1947729333 : 1947729332); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 1947729333; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return false; - case 1: - return ptr->IsAetheryteUnlocked(aetheryteId); - case 2: - goto IL_0058; - } - continue; - IL_0058: - num = 1947729332; + return ptr->IsAetheryteUnlocked(aetheryteId); } + return false; } public bool IsAetheryteUnlocked(EAetheryteLocation aetheryteLocation) { - int num = ((!_206E_206D_200F_200B_200E_202C_206B_206B_202E_200C_200B_200E_206B_206D_206C_200B_200C_206C_202C_202B_202C_206D_206C_200E_200B_202B_206E_206D_202B_206E_200B_206F_200B_206E_202E_206B_200B_200F_202D_202B_202E(aetheryteLocation)) ? (-1602388833) : (-1602388834)); - while (true) + if (aetheryteLocation.IsFirmamentAetheryte()) { - int num2 = num; - int num3 = -1602388833; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0048; - case 0: - { - byte subIndex; - return IsAetheryteUnlocked((uint)aetheryteLocation, out subIndex); - } - case 1: - return _serviceProvider.GetRequiredService<QuestFunctions>().IsQuestComplete(_206B_206E_206B_206B_206D_200D_200E_200B_202B_206D_202E_202C_200B_202D_202A_206D_206C_206E_200D_206C_200C_206A_200C_206E_202D_200C_200D_200F_202A_202D_200F_206D_202A_206D_206E_200B_206F_206F_202D_202E_202E((ushort)3672)); - } - continue; - IL_0048: - num = -1602388834; + return _serviceProvider.GetRequiredService<QuestFunctions>().IsQuestComplete(new QuestId(3672)); } + byte subIndex; + return IsAetheryteUnlocked((uint)aetheryteLocation, out subIndex); } public unsafe bool CanTeleport(EAetheryteLocation aetheryteLocation) { - int num = (((ushort)aetheryteLocation != _200E_202E_200F_206B_206A_206D_200D_206F_206F_206A_206B_206C_200E_202E_206D_200C_202C_206F_206E_200E_206B_206E_206A_200E_202E_200D_200C_200C_202B_200B_206D_206E_206D_200D_202B_206E_206C_200E_206B_202E_202E()) ? 508143747 : 508143745); - while (true) + if ((ushort)aetheryteLocation == PlayerStateHelper.GetHomeAetheryteId() && ActionManager.Instance()->GetActionStatus(ActionType.Action, 6u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0) { - int num2 = num; - int num3 = 508143746; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return ActionManager.Instance()->GetActionStatus(ActionType.Action, 5u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0; - case 3: - num = ((ActionManager.Instance()->GetActionStatus(ActionType.Action, 6u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) != 0) ? 508143747 : 508143746); - break; - case 0: - return true; - case 2: - num = 508143745; - break; - } + return true; } + return ActionManager.Instance()->GetActionStatus(ActionType.Action, 5u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0; } public unsafe bool IsTeleportUnlocked() { uint rowId = _dataManager.GetExcelSheet<Lumina.Excel.Sheets.Action>().GetRow(5u).UnlockLink.RowId; UIState* ptr = UIState.Instance(); - int num = ((ptr == null) ? 126078724 : 126078727); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 126078725; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return false; - case 2: - return ptr->IsUnlockLinkUnlocked(rowId); - case 0: - goto IL_008b; - } - continue; - IL_008b: - num = 126078727; + return ptr->IsUnlockLinkUnlocked(rowId); } + return false; } public unsafe bool IsReturnAvailable() @@ -150,47 +81,27 @@ internal sealed class AetheryteFunctions return ActionManager.Instance()->GetActionStatus(ActionType.Action, 6u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe bool TeleportAetheryte(uint aetheryteId) { - _202A_206C_206B_200C_200F_202D_206A_200D_200C_202A_200D_206E_206B_206B_202D_202D_200C_206A_202C_206B_206D_206B_202A_202C_200E_200C_206B_200E_206D_206C_200C_202A_206F_200E_200B_202E_206B_202B_200B_202D_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(762406754), new object[1] { aetheryteId }); - byte subIndex; - int num = ((!IsAetheryteUnlocked(aetheryteId, out subIndex)) ? 1620747025 : 1620747027); - while (true) + _logger.LogDebug("Attempting to teleport to aetheryte {AetheryteId}", aetheryteId); + if (IsAetheryteUnlocked(aetheryteId, out var subIndex)) { - int num2 = num; - int num3 = 1620747030; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (aetheryteId == PlayerStateHelper.GetHomeAetheryteId() && ActionManager.Instance()->GetActionStatus(ActionType.Action, 6u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0) { - case 7: - return false; - case 6: - ReturnRequestedAt = _206C_200F_206F_206E_206C_200D_206F_202A_202C_202B_206F_202C_200F_200D_202B_202E_206B_200E_200E_206A_206E_200F_206A_202C_202D_206B_202C_200F_206C_200D_200B_206B_202A_206A_206D_200D_200C_202D_206B_206D_202E(); - num = ((!ActionManager.Instance()->UseAction(ActionType.Action, 6u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null)) ? 1620747031 : 1620747029); - break; - case 5: - num = ((aetheryteId != _200E_202E_200F_206B_206A_206D_200D_206F_206F_206A_206B_206C_200E_202E_206D_200C_202C_206F_206E_200E_206B_206E_206A_200E_202E_200D_200C_200C_202B_200B_206D_206E_206D_200D_202B_206E_206C_200E_206B_202E_202E()) ? 1620747031 : 1620747030); - break; - case 0: - num = ((ActionManager.Instance()->GetActionStatus(ActionType.Action, 6u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) != 0) ? 1620747031 : 1620747024); - break; - case 2: - num = 1620747027; - break; - case 1: - num = ((ActionManager.Instance()->GetActionStatus(ActionType.Action, 5u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) != 0) ? 1620747025 : 1620747026); - break; - case 4: - _206F_202E_206E_206B_200E_202D_206B_200B_200E_206B_206C_202B_202D_206C_206A_202B_202A_202D_202D_206B_200C_200D_206F_202D_202A_206B_202A_202A_202D_200F_206A_206B_200B_206C_200F_202A_200B_202E_202A_202E_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(265904157), new object[1] { aetheryteId }); + ReturnRequestedAt = Environment.TickCount64; + if (ActionManager.Instance()->UseAction(ActionType.Action, 6u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null)) + { + _logger.LogInformation("Using 'return' for home aetheryte"); + return true; + } + } + if (ActionManager.Instance()->GetActionStatus(ActionType.Action, 5u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0) + { + _logger.LogInformation("Teleporting to aetheryte {AetheryteId}", aetheryteId); return Telepo.Instance()->Teleport(aetheryteId, subIndex); - case 3: - _206F_202E_206E_206B_200E_202D_206B_200B_200E_206B_206C_202B_202D_206C_206A_202B_202A_202D_202D_206B_200C_200D_206F_202D_202A_206B_202A_202A_202D_200F_206A_206B_200B_206C_200F_202A_200B_202E_202A_202E_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1006691700), Array.Empty<object>()); - return true; } } + return false; } public bool TeleportAetheryte(EAetheryteLocation aetheryteLocation) @@ -200,112 +111,32 @@ internal sealed class AetheryteFunctions public static bool IsFreeAetheryte(EAetheryteLocation aetheryteLocation) { - return _206B_200E_200D_202D_202C_202C_206F_200E_202E_202E_202D_206B_206E_200C_206B_206C_200B_200F_200B_206E_206F_206B_200B_202E_200C_206E_206A_206A_202C_202C_206E_202D_206B_206C_206A_206E_200E_206E_206E_202E_202E((uint)aetheryteLocation); + return PlayerStateHelper.IsFreeAetheryte((uint)aetheryteLocation); } public AetheryteRegistrationResult CanRegisterFreeOrFavoriteAetheryte(EAetheryteLocation aetheryteLocation) { - int num = ((_200F_200C_206E_206B_206C_202D_206B_206B_202E_202E_202D_202D_200C_202D_202C_206E_200E_206C_200F_202C_200C_206F_200F_200D_206A_200B_206C_206D_200B_200C_200D_206A_202B_200F_202A_202A_202E_200F_206B_202B_202E(_objectTable, 0) != null) ? (-303811700) : (-303811698)); - bool flag = default(bool); - while (true) + if (_objectTable[0] == null) { - int num2 = num; - int num3 = -303811697; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - num = (flag ? (-303811701) : (-303811697)); - break; - case 3: - num = ((!IsFreeAetheryte(aetheryteLocation)) ? (-303811705) : (-303811699)); - break; - case 0: - return AetheryteRegistrationResult.NotPossible; - case 9: - flag = _206F_206D_200D_202C_206D_202D_202C_202E_206F_202B_200E_200C_202A_206E_200E_206F_200F_206C_206B_200E_206C_200D_202B_202E_202C_202D_200C_202E_206D_200F_202B_200D_206D_200D_206B_200F_200E_200C_206F_200F_202E(); - num = ((!_202C_200B_200C_200B_202E_202D_202B_200D_202B_200E_200E_206F_200F_200D_206B_202B_202A_202A_202C_206C_206A_202E_202B_206D_206D_206C_206E_200E_202C_200F_206B_202A_202A_200F_206A_206E_200B_206F_202C_206B_202E(PlayerStateFlag.IsLoginSecurityToken)) ? (-303811702) : (-303811707)); - break; - case 10: - num = ((_206A_202A_200E_202D_200D_206E_206F_206D_206F_200E_202D_200B_206E_202D_200B_206B_206D_202A_200B_206A_202B_206F_202D_200F_206D_206A_200E_202C_200E_202B_200C_202C_200B_200C_202C_202E_202B_206A_206E_200D_202E() != 0) ? (-303811702) : (-303811703)); - break; - case 4: - return AetheryteRegistrationResult.FavoredDestinationAvailable; - case 7: - num = -303811698; - break; - case 2: - return AetheryteRegistrationResult.NotPossible; - case 6: - return AetheryteRegistrationResult.SecurityTokenFreeDestinationAvailable; - case 8: - num = ((!_202E_206F_200B_206A_202D_206D_200F_206F_202B_206F_202C_202D_200E_206C_206D_206B_200D_202C_206F_202C_200B_206A_206B_202A_202B_206A_202C_206A_202A_202B_202C_202A_200C_206F_202C_202D_202B_202E_206D_202E((uint)aetheryteLocation)) ? (-303811706) : (-303811708)); - break; - case 1: - return AetheryteRegistrationResult.NotPossible; - case 11: - return AetheryteRegistrationResult.NotPossible; - } + return AetheryteRegistrationResult.NotPossible; } - } - - static bool _206E_206D_200F_200B_200E_202C_206B_206B_202E_200C_200B_200E_206B_206D_206C_200B_200C_206C_202C_202B_202C_206D_206C_200E_200B_202B_206E_206D_202B_206E_200B_206F_200B_206E_202E_206B_200B_200F_202D_202B_202E(EAetheryteLocation P_0) - { - return P_0.IsFirmamentAetheryte(); - } - - static QuestId _206B_206E_206B_206B_206D_200D_200E_200B_202B_206D_202E_202C_200B_202D_202A_206D_206C_206E_200D_206C_200C_206A_200C_206E_202D_200C_200D_200F_202A_202D_200F_206D_202A_206D_206E_200B_206F_206F_202D_202E_202E(ushort P_0) - { - return new QuestId(P_0); - } - - static uint _200E_202E_200F_206B_206A_206D_200D_206F_206F_206A_206B_206C_200E_202E_206D_200C_202C_206F_206E_200E_206B_206E_206A_200E_202E_200D_200C_200C_202B_200B_206D_206E_206D_200D_202B_206E_206C_200E_206B_202E_202E() - { - return PlayerStateHelper.GetHomeAetheryteId(); - } - - static void _202A_206C_206B_200C_200F_202D_206A_200D_200C_202A_200D_206E_206B_206B_202D_202D_200C_206A_202C_206B_206D_206B_202A_202C_200E_200C_206B_200E_206D_206C_200C_202A_206F_200E_200B_202E_206B_202B_200B_202D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static long _206C_200F_206F_206E_206C_200D_206F_202A_202C_202B_206F_202C_200F_200D_202B_202E_206B_200E_200E_206A_206E_200F_206A_202C_202D_206B_202C_200F_206C_200D_200B_206B_202A_206A_206D_200D_200C_202D_206B_206D_202E() - { - return Environment.TickCount64; - } - - static void _206F_202E_206E_206B_200E_202D_206B_200B_200E_206B_206C_202B_202D_206C_206A_202B_202A_202D_202D_206B_200C_200D_206F_202D_202A_206B_202A_202A_202D_200F_206A_206B_200B_206C_200F_202A_200B_202E_202A_202E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static bool _206B_200E_200D_202D_202C_202C_206F_200E_202E_202E_202D_206B_206E_200C_206B_206C_200B_200F_200B_206E_206F_206B_200B_202E_200C_206E_206A_206A_202C_202C_206E_202D_206B_206C_206A_206E_200E_206E_206E_202E_202E(uint P_0) - { - return PlayerStateHelper.IsFreeAetheryte(P_0); - } - - static IGameObject _200F_200C_206E_206B_206C_202D_206B_206B_202E_202E_202D_202D_200C_202D_202C_206E_200E_206C_200F_202C_200C_206F_200F_200D_206A_200B_206C_206D_200B_200C_200D_206A_202B_200F_202A_202A_202E_200F_206B_202B_202E(IObjectTable P_0, int P_1) - { - return P_0[P_1]; - } - - static bool _202E_206F_200B_206A_202D_206D_200F_206F_202B_206F_202C_202D_200E_206C_206D_206B_200D_202C_206F_202C_200B_206A_206B_202A_202B_206A_202C_206A_202A_202B_202C_202A_200C_206F_202C_202D_202B_202E_206D_202E(uint P_0) - { - return PlayerStateHelper.IsFavouriteAetheryte(P_0); - } - - static bool _206F_206D_200D_202C_206D_202D_202C_202E_206F_202B_200E_200C_202A_206E_200E_206F_200F_206C_206B_200E_206C_200D_202B_202E_202C_202D_200C_202E_206D_200F_202B_200D_206D_200D_206B_200F_200E_200C_206F_200F_202E() - { - return PlayerStateHelper.HasFavouriteSlotAvailable(); - } - - static bool _202C_200B_200C_200B_202E_202D_202B_200D_202B_200E_200E_206F_200F_200D_206B_202B_202A_202A_202C_206C_206A_202E_202B_206D_206D_206C_206E_200E_202C_200F_206B_202A_202A_200F_206A_206E_200B_206F_202C_206B_202E(PlayerStateFlag P_0) - { - return PlayerStateHelper.IsPlayerStateFlagSet(P_0); - } - - static uint _206A_202A_200E_202D_200D_206E_206F_206D_206F_200E_202D_200B_206E_202D_200B_206B_206D_202A_200B_206A_202B_206F_202D_200F_206D_206A_200E_202C_200E_202B_200C_202C_200B_200C_202C_202E_202B_206A_206E_200D_202E() - { - return PlayerStateHelper.GetFreeAetheryteId(); + if (IsFreeAetheryte(aetheryteLocation)) + { + return AetheryteRegistrationResult.NotPossible; + } + if (PlayerStateHelper.IsFavouriteAetheryte((uint)aetheryteLocation)) + { + return AetheryteRegistrationResult.NotPossible; + } + bool flag = PlayerStateHelper.HasFavouriteSlotAvailable(); + if (PlayerStateHelper.IsPlayerStateFlagSet(PlayerStateFlag.IsLoginSecurityToken) && PlayerStateHelper.GetFreeAetheryteId() == 0) + { + return AetheryteRegistrationResult.SecurityTokenFreeDestinationAvailable; + } + if (!flag) + { + return AetheryteRegistrationResult.NotPossible; + } + return AetheryteRegistrationResult.FavoredDestinationAvailable; } } diff --git a/Questionable/Questionable.Functions/AlliedSocietyQuestFunctions.cs b/Questionable/Questionable.Functions/AlliedSocietyQuestFunctions.cs index 15c8ac2..34e9993 100644 --- a/Questionable/Questionable.Functions/AlliedSocietyQuestFunctions.cs +++ b/Questionable/Questionable.Functions/AlliedSocietyQuestFunctions.cs @@ -1,11 +1,8 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using System.Text; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Application.Network.WorkDefinitions; using FFXIVClientStructs.FFXIV.Client.Game; @@ -43,324 +40,8 @@ internal sealed class AlliedSocietyQuestFunctions private static uint Transform(uint s0, uint s1) { - int num = (int)(s0 << 11); - int num2 = (int)s0; - int num3 = num2 + num; - int num4 = num2 & num; - uint num5 = (uint)(num3 - (num4 + num4)); - num = (int)num5; - num2 = (int)s1; - int num6 = num2 + num; - int num7 = num2 & num; - int num8 = num6 - (num7 + num7); - num = (int)(s1 >> 11); - num2 = (int)num5; - int num9 = num2 + num; - int num10 = num2 & num; - num = num9 - (num10 + num10) >>> 8; - num2 = num8; - return (uint)((num2 | num) - (num2 & num)); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override readonly string ToString() - { - StringBuilder stringBuilder = _202B_202A_202D_206D_202D_206F_200E_200E_206D_200D_200F_206C_200F_206B_202C_200E_206A_200F_206F_200F_202D_200C_206A_206C_202D_202C_206A_202E_206E_202E_202B_202E_202B_202B_200C_206E_202C_206F_200F_206D_202E(); - _200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1180704865)); - _200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125)); - int num = ((!PrintMembers(stringBuilder)) ? (-666901402) : (-666901403)); - while (true) - { - int num2 = num; - int num3 = -666901401; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -666901403; - break; - case 2: - _206C_200F_202D_200E_202E_200D_206D_200F_202C_200B_206C_202D_202C_202A_206C_200B_206D_206F_206B_202C_202E_206A_200C_202E_206F_202C_202B_202E_202C_206A_206F_206F_206A_202E_200E_206B_202E_200B_202B_206E_202E(stringBuilder, ' '); - num = -666901402; - break; - case 1: - _206C_200F_202D_200E_202E_200D_206D_200F_202C_200B_206C_202D_202C_202A_206C_200B_206D_206F_206B_202C_202E_206A_200C_202E_206F_202C_202B_202E_202C_206A_206F_206F_206A_202E_200E_206B_202E_200B_202B_206E_202E(stringBuilder, '}'); - return _206C_202A_200D_206A_206D_202C_200F_202D_202B_200D_206B_206E_200F_206B_200D_200B_202A_202A_200E_206A_206D_202B_200B_200F_200C_200B_206F_206E_202B_202E_202D_206D_202E_206C_200F_206F_200F_206C_200F_206B_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private readonly bool PrintMembers(StringBuilder builder) - { - _200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(352928866)); - _200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(builder, S0.ToString()); - _200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-875975294)); - _200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(builder, S1.ToString()); - _200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-660590067)); - _200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(builder, S2.ToString()); - _200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1999766628)); - _200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(builder, S3.ToString()); - return true; - } - - [CompilerGenerated] - public readonly bool Equals(Rng other) - { - int num = ((!EqualityComparer<uint>.Default.Equals(S0, other.S0)) ? 425581049 : 425581052); - while (true) - { - int num2 = num; - int num3 = 425581053; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = ((!EqualityComparer<uint>.Default.Equals(S2, other.S2)) ? 425581049 : 425581054); - break; - case 3: - return EqualityComparer<uint>.Default.Equals(S3, other.S3); - case 2: - num = 425581052; - break; - case 4: - return false; - case 1: - num = ((!EqualityComparer<uint>.Default.Equals(S1, other.S1)) ? 425581049 : 425581053); - break; - } - } - } - - bool IEquatable<Rng>.Equals(Rng other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _202B_202A_202D_206D_202D_206F_200E_200E_206D_200D_200F_206C_200F_206B_202C_200E_206A_200F_206F_200F_202D_200C_206A_206C_202D_202C_206A_202E_206E_202E_202B_202E_202B_202B_200C_206E_202C_206F_200F_206D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200F_206C_202A_200D_202E_206C_206A_202E_206E_200D_200B_200F_200E_200C_200E_202E_206E_202C_200B_206A_200D_206E_200D_202D_200D_200F_202A_202C_200E_200C_202D_206F_206B_206C_202E_200C_200E_202D_202E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206C_200F_202D_200E_202E_200D_206D_200F_202C_200B_206C_202D_202C_202A_206C_200B_206D_206F_206B_202C_202E_206A_200C_202E_206F_202C_202B_202E_202C_206A_206F_206F_206A_202E_200E_206B_202E_200B_202B_206E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206C_202A_200D_206A_206D_202C_200F_202D_202B_200D_206B_206E_200F_206B_200D_200B_202A_202A_200E_206A_206D_202B_200B_200F_200C_200B_206F_206E_202B_202E_202D_206D_202E_206C_200F_206F_200F_206C_200F_206B_202E(object P_0) - { - return P_0.ToString(); - } - } - - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<BeastReputationRank, bool> _003C_003E9__8_0; - - public static Func<BeastReputationRank, uint> _003C_003E9__8_1; - - public static Func<BeastReputationRank, ushort> _003C_003E9__8_2; - - public static Func<Lumina.Excel.Sheets.Quest, bool> _003C_003E9__8_3; - - public static Func<Lumina.Excel.Sheets.Quest, uint> _003C_003E9__8_4; - - public static Func<Lumina.Excel.Sheets.Quest, ushort> _003C_003E9__8_5; - - public static Func<BeastTribe, bool> _003C_003E9__8_6; - - public static Func<BeastTribe, EAlliedSociety> _003C_003E9__8_7; - - public static Func<BeastTribe, byte> _003C_003E9__8_8; - - public static Func<EAlliedSociety, bool> _003C_003E9__8_9; - - public static Func<QuestInfo, bool> _003C_003E9__8_10; - - public static Func<EAlliedSociety, bool> _003C_003E9__8_11; - - public static Func<QuestInfo, bool> _003C_003E9__8_12; - - public static Func<QuestInfo, uint> _003C_003E9__8_13; - - public static Func<IGrouping<uint, QuestInfo>, uint> _003C_003E9__8_14; - - public static Func<QuestInfo, bool> _003C_003E9__8_16; - - public static Func<QuestInfo, ElementId> _003C_003E9__8_17; - - public static Func<IGrouping<uint, QuestInfo>, List<QuestInfo>> _003C_003E9__8_15; - - public static Predicate<QuestInfo> _003C_003E9__14_2; - - public static Func<QuestInfo, QuestId> _003C_003E9__14_1; - - internal bool _003C_002Ector_003Eb__8_0(BeastReputationRank x) - { - return x.RowId != 0; - } - - internal uint _003C_002Ector_003Eb__8_1(BeastReputationRank x) - { - return x.RowId; - } - - internal ushort _003C_002Ector_003Eb__8_2(BeastReputationRank x) - { - return x.RequiredReputation; - } - - internal bool _003C_002Ector_003Eb__8_3(Lumina.Excel.Sheets.Quest x) - { - int num = ((x.RowId == 0) ? 229482898 : 229482896); - while (true) - { - int num2 = num; - int num3 = 229482899; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 229482896; - break; - case 3: - num = ((x.BeastTribe.RowId == 0) ? 229482898 : 229482897); - break; - case 2: - return x.BeastReputationValue > 0; - case 1: - return false; - } - } - } - - internal uint _003C_002Ector_003Eb__8_4(Lumina.Excel.Sheets.Quest x) - { - return x.RowId; - } - - internal ushort _003C_002Ector_003Eb__8_5(Lumina.Excel.Sheets.Quest x) - { - return x.BeastReputationValue; - } - - internal bool _003C_002Ector_003Eb__8_6(BeastTribe x) - { - int num = ((x.RowId == 0) ? 1913982747 : 1913982745); - while (true) - { - int num2 = num; - int num3 = 1913982747; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return _206A_200F_206E_202C_206F_202C_206D_202A_200B_202C_202A_202A_206E_200E_206D_200C_206E_206F_200E_200C_206E_206B_202C_200B_202D_206B_202A_206F_206D_200F_202D_200B_202D_206C_200F_202C_200C_206D_202A_202C_202E(_206F_206E_206D_202C_206B_200B_206A_202A_200F_202B_202D_202B_200E_202E_202D_206E_206D_200E_202E_206E_206A_206B_206F_202E_206D_200B_202A_202C_206E_200E_206D_206D_206B_200C_206F_206C_206C_206A_200C_202B_202E(typeof(EAlliedSociety).TypeHandle), (object)(byte)x.RowId); - case 2: - num = (x.Name.IsEmpty ? 1913982747 : 1913982746); - break; - case 3: - num = 1913982745; - break; - case 0: - return false; - } - } - } - - internal EAlliedSociety _003C_002Ector_003Eb__8_7(BeastTribe x) - { - return (EAlliedSociety)x.RowId; - } - - internal byte _003C_002Ector_003Eb__8_8(BeastTribe x) - { - return x.MaxRank; - } - - internal bool _003C_002Ector_003Eb__8_9(EAlliedSociety x) - { - return x != EAlliedSociety.None; - } - - internal bool _003C_002Ector_003Eb__8_10(QuestInfo x) - { - return !x.IsRepeatable; - } - - internal bool _003C_002Ector_003Eb__8_11(EAlliedSociety x) - { - return x != EAlliedSociety.None; - } - - internal bool _003C_002Ector_003Eb__8_12(QuestInfo x) - { - return x.IsRepeatable; - } - - internal uint _003C_002Ector_003Eb__8_13(QuestInfo x) - { - return x.IssuerDataId; - } - - internal uint _003C_002Ector_003Eb__8_14(IGrouping<uint, QuestInfo> x) - { - return x.Key; - } - - internal List<QuestInfo> _003C_002Ector_003Eb__8_15(IGrouping<uint, QuestInfo> x) - { - return (from y in x - orderby y.AlliedSocietyQuestGroup == 3, y.QuestId - select y).ToList(); - } - - internal bool _003C_002Ector_003Eb__8_16(QuestInfo y) - { - return y.AlliedSocietyQuestGroup == 3; - } - - internal ElementId _003C_002Ector_003Eb__8_17(QuestInfo y) - { - return y.QuestId; - } - - internal bool _003CCalculateAvailableQuests_003Eb__14_2(QuestInfo q) - { - return q.AlliedSocietyQuestGroup == 3; - } - - internal QuestId _003CCalculateAvailableQuests_003Eb__14_1(QuestInfo x) - { - return (QuestId)x.QuestId; - } - - static Type _206F_206E_206D_202C_206B_200B_206A_202A_200F_202B_202D_202B_200E_202E_202D_206E_206D_200E_202E_206E_206A_206B_206F_202E_206D_200B_202A_202C_206E_200E_206D_206D_206B_200C_206F_206C_206C_206A_200C_202B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _206A_200F_206E_202C_206F_202C_206D_202A_200B_202C_202A_202A_206E_200E_206D_200C_206E_206F_200E_200C_206E_206B_202C_200B_202D_206B_202A_206F_206D_200F_202D_200B_202D_206C_200F_202C_200C_206D_202A_202C_202E(Type P_0, object P_1) - { - return Enum.IsDefined(P_0, P_1); + uint num = s0 ^ (s0 << 11); + return s1 ^ num ^ ((num ^ (s1 >> 11)) >> 8); } } @@ -387,281 +68,112 @@ internal sealed class AlliedSocietyQuestFunctions _reputationRequiredByRank = (from x in dataManager.GetExcelSheet<BeastReputationRank>() where x.RowId != 0 select x).ToImmutableDictionary((BeastReputationRank x) => x.RowId, (BeastReputationRank x) => x.RequiredReputation); - _questReputationRewards = dataManager.GetExcelSheet<Lumina.Excel.Sheets.Quest>().Where(delegate(Lumina.Excel.Sheets.Quest x) - { - int num2 = ((x.RowId == 0) ? 229482898 : 229482896); - while (true) - { - int num3 = num2; - int num4 = 229482899; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = 229482896; - break; - case 3: - num2 = ((x.BeastTribe.RowId == 0) ? 229482898 : 229482897); - break; - case 2: - return x.BeastReputationValue > 0; - case 1: - return false; - } - } - }).ToImmutableDictionary((Lumina.Excel.Sheets.Quest x) => x.RowId, (Lumina.Excel.Sheets.Quest x) => x.BeastReputationValue); - _maxRankByAlliedSociety = dataManager.GetExcelSheet<BeastTribe>().Where(delegate(BeastTribe x) - { - int num2 = ((x.RowId == 0) ? 1913982747 : 1913982745); - while (true) - { - int num3 = num2; - int num4 = 1913982747; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 1: - return _003C_003Ec._206A_200F_206E_202C_206F_202C_206D_202A_200B_202C_202A_202A_206E_200E_206D_200C_206E_206F_200E_200C_206E_206B_202C_200B_202D_206B_202A_206F_206D_200F_202D_200B_202D_206C_200F_202C_200C_206D_202A_202C_202E(_003C_003Ec._206F_206E_206D_202C_206B_200B_206A_202A_200F_202B_202D_202B_200E_202E_202D_206E_206D_200E_202E_206E_206A_206B_206F_202E_206D_200B_202A_202C_206E_200E_206D_206D_206B_200C_206F_206C_206C_206A_200C_202B_202E(typeof(EAlliedSociety).TypeHandle), (object)(byte)x.RowId); - case 2: - num2 = (x.Name.IsEmpty ? 1913982747 : 1913982746); - break; - case 3: - num2 = 1913982745; - break; - case 0: - return false; - } - } - }).ToImmutableDictionary((BeastTribe x) => (EAlliedSociety)x.RowId, (BeastTribe x) => x.MaxRank); + _questReputationRewards = (from x in dataManager.GetExcelSheet<Lumina.Excel.Sheets.Quest>() + where x.RowId != 0 && x.BeastTribe.RowId != 0 && x.BeastReputationValue > 0 + select x).ToImmutableDictionary((Lumina.Excel.Sheets.Quest x) => x.RowId, (Lumina.Excel.Sheets.Quest x) => x.BeastReputationValue); + _maxRankByAlliedSociety = (from x in dataManager.GetExcelSheet<BeastTribe>() + where x.RowId != 0 && !x.Name.IsEmpty && Enum.IsDefined(typeof(EAlliedSociety), (byte)x.RowId) + select x).ToImmutableDictionary((BeastTribe x) => (EAlliedSociety)x.RowId, (BeastTribe x) => x.MaxRank); Dictionary<(EAlliedSociety, byte), QuestId> dictionary = new Dictionary<(EAlliedSociety, byte), QuestId>(); - IEnumerator<EAlliedSociety> enumerator = (from x in Enum.GetValues<EAlliedSociety>() + foreach (EAlliedSociety item in from x in Enum.GetValues<EAlliedSociety>() where x != EAlliedSociety.None - select x).GetEnumerator(); - try + select x) { - while (_206F_202E_206C_200B_200E_202C_206B_202E_200E_200D_202D_200C_206E_200F_202E_200D_206C_200B_206F_206C_202A_202A_206B_202D_202D_202E_200C_200B_206C_200D_206C_206B_202C_202C_206B_200C_200B_202B_202A_206B_202E((IEnumerator)enumerator)) + foreach (QuestInfo item2 in from x in questData.GetAllByAlliedSociety(item) + where !x.IsRepeatable + select x) { - EAlliedSociety current = enumerator.Current; - IEnumerator<QuestInfo> enumerator2 = (from x in questData.GetAllByAlliedSociety(current) - where !x.IsRepeatable - select x).GetEnumerator(); - try + byte b = (byte)item2.AlliedSocietyRank; + if (b > 0) { - while (_206F_202E_206C_200B_200E_202C_206B_202E_200E_200D_202D_200C_206E_200F_202E_200D_206C_200B_206F_206C_202A_202A_206B_202D_202D_202E_200C_200B_206C_200D_206C_206B_202C_202C_206B_200C_200B_202B_202A_206B_202E((IEnumerator)enumerator2)) - { - QuestInfo current2 = enumerator2.Current; - byte b = (byte)current2.AlliedSocietyRank; - if (b > 0) - { - dictionary[(current, b)] = (QuestId)current2.QuestId; - } - } + dictionary[(item, b)] = (QuestId)item2.QuestId; } - finally - { - if (enumerator2 != null) - { - _200B_200B_200E_202D_200D_200D_202B_200F_202E_200C_202A_200B_202B_206B_202D_200D_206D_200C_206F_200B_202A_202A_200F_200B_206A_200C_206F_200C_206B_206B_200E_200E_206C_202B_202B_202E_202C_200E_202E_202C_202E((IDisposable)enumerator2); - } - } - } - } - finally - { - if (enumerator != null) - { - _200B_200B_200E_202D_200D_200D_202B_200F_202E_200C_202A_200B_202B_206B_202D_200D_206D_200C_206F_200B_202A_202A_200F_200B_206A_200C_206F_200C_206B_206B_200E_200E_206C_202B_202B_202E_202C_200E_202E_202C_202E((IDisposable)enumerator); } } _rankUpQuests = dictionary.ToImmutableDictionary(); - enumerator = (from x in Enum.GetValues<EAlliedSociety>() + foreach (EAlliedSociety item3 in from x in Enum.GetValues<EAlliedSociety>() where x != EAlliedSociety.None - select x).GetEnumerator(); - try + select x) { - while (_206F_202E_206C_200B_200E_202C_206B_202E_200E_200D_202D_200C_206E_200F_202E_200D_206C_200B_206F_206C_202A_202A_206B_202D_202D_202E_200C_200B_206C_200D_206C_206B_202C_202C_206B_200C_200B_202B_202A_206B_202E((IEnumerator)enumerator)) + foreach (KeyValuePair<uint, List<QuestInfo>> item4 in (from x in questData.GetAllByAlliedSociety(item3) + where x.IsRepeatable + group x by x.IssuerDataId).ToDictionary((IGrouping<uint, QuestInfo> x) => x.Key, (IGrouping<uint, QuestInfo> x) => (from y in x + orderby y.AlliedSocietyQuestGroup == 3, y.QuestId + select y).ToList())) { - EAlliedSociety current3 = enumerator.Current; - foreach (KeyValuePair<uint, List<QuestInfo>> item in (from x in questData.GetAllByAlliedSociety(current3) - where x.IsRepeatable - group x by x.IssuerDataId).ToDictionary((IGrouping<uint, QuestInfo> x) => x.Key, (IGrouping<uint, QuestInfo> x) => (from y in x - orderby y.AlliedSocietyQuestGroup == 3, y.QuestId - select y).ToList())) + item4.Deconstruct(out var key, out var value); + uint issuerDataId = key; + List<QuestInfo> allQuests = value; + NpcData npcData = new NpcData { - item.Deconstruct(out var key, out var value); - uint issuerDataId = key; - List<QuestInfo> allQuests = value; - NpcData npcData = new NpcData - { - IssuerDataId = issuerDataId, - AllQuests = allQuests - }; - if (_questsByAlliedSociety.TryGetValue(current3, out List<NpcData> value2)) - { - value2.Add(npcData); - continue; - } - Dictionary<EAlliedSociety, List<NpcData>> questsByAlliedSociety = _questsByAlliedSociety; - int num = 1; - List<NpcData> list = new List<NpcData>(num); - CollectionsMarshal.SetCount(list, num); - CollectionsMarshal.AsSpan(list)[0] = npcData; - questsByAlliedSociety[current3] = list; + IssuerDataId = issuerDataId, + AllQuests = allQuests + }; + if (_questsByAlliedSociety.TryGetValue(item3, out List<NpcData> value2)) + { + value2.Add(npcData); + continue; } - } - } - finally - { - if (enumerator != null) - { - _200B_200B_200E_202D_200D_200D_202B_200F_202E_200C_202A_200B_202B_206B_202D_200D_206D_200C_206F_200B_202A_202A_200F_200B_206A_200C_206F_200C_206B_206B_200E_200E_206C_202B_202B_202E_202C_200E_202E_202C_202E((IDisposable)enumerator); + Dictionary<EAlliedSociety, List<NpcData>> questsByAlliedSociety = _questsByAlliedSociety; + int num = 1; + List<NpcData> list = new List<NpcData>(num); + CollectionsMarshal.SetCount(list, num); + CollectionsMarshal.AsSpan(list)[0] = npcData; + questsByAlliedSociety[item3] = list; } } } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe List<QuestId> GetAvailableAlliedSocietyQuests(EAlliedSociety alliedSociety) { - int num = ((alliedSociety != EAlliedSociety.None) ? (-2074607472) : (-2074607467)); - byte rank = default(byte); - byte currentRank = default(byte); - List<QuestId> list = default(List<QuestId>); - bool flag2 = default(bool); - byte dailyQuestSeed = default(byte); - List<NpcData> value = default(List<NpcData>); - NpcData current = default(NpcData); - bool flag = default(bool); - (uint, byte, bool, bool) key = default((uint, byte, bool, bool)); - List<QuestId> value2 = default(List<QuestId>); - while (true) + if (alliedSociety == EAlliedSociety.None) { - int num2 = num; - int num3 = -2074607466; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - { - rank = QuestManager.Instance()->BeastReputation[(int)(alliedSociety - 1)].Rank; - byte num11 = rank; - num3 = 127; - num4 = num11; - currentRank = (byte)(num4 + num3 - (num4 | num3)); - num = ((currentRank != 0) ? (-2074607468) : (-2074607469)); - break; - } - case 3: - return new List<QuestId>(); - case 5: - return new List<QuestId>(); - case 1: - return list; - case 0: - num = -2074607467; - break; - case 2: - { - byte num10 = rank; - num3 = 128; - num4 = num10; - flag2 = num4 + num3 - (num4 | num3) != 0; - dailyQuestSeed = QuestManager.Instance()->DailyQuestSeed; - list = new List<QuestId>(); - num = (_questsByAlliedSociety.TryGetValue(alliedSociety, out value) ? (-2074607470) : (-2074607465)); - break; - } - case 4: - { - using List<NpcData>.Enumerator enumerator = value.GetEnumerator(); - num = -1740472784; - while (true) - { - int num7 = num; - num3 = -1740472781; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 5: - num = -1740472784; - break; - case 1: - current = enumerator.Current; - flag = current.AllQuests.All((QuestInfo x) => currentRank > x.AlliedSocietyRank); - key = (current.IssuerDataId, dailyQuestSeed, flag, flag2); - num = ((!_dailyQuests.TryGetValue(key, out value2)) ? (-1740472783) : (-1740472781)); - break; - case 3: - num = (enumerator.MoveNext() ? (-1740472782) : (-1740472777)); - break; - case 0: - list.AddRange(value2); - num = -1740472784; - break; - case 2: - { - List<QuestId> list2 = CalculateAvailableQuests(current.AllQuests, dailyQuestSeed, flag, currentRank, flag2); - _202E_200E_206F_206E_202E_206C_206D_200B_200F_200C_206A_202A_200C_206F_206F_206E_206C_200D_206E_200D_200B_200D_206C_206B_200F_202B_206D_202A_200D_206E_206B_206A_200B_206D_200E_200E_202B_202B_206A_200E_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(832413821), new object[4] - { - alliedSociety, - dailyQuestSeed, - current.IssuerDataId, - string.Join(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1467939024), list2) - }); - _dailyQuests[key] = list2; - list.AddRange(list2); - num = -1740472784; - break; - } - case 4: - return list; - } - } - } - } + return new List<QuestId>(); } + byte rank = QuestManager.Instance()->BeastReputation[(int)(alliedSociety - 1)].Rank; + byte currentRank = (byte)(rank & 0x7F); + if (currentRank == 0) + { + return new List<QuestId>(); + } + bool flag = (rank & 0x80) != 0; + byte dailyQuestSeed = QuestManager.Instance()->DailyQuestSeed; + List<QuestId> list = new List<QuestId>(); + if (!_questsByAlliedSociety.TryGetValue(alliedSociety, out List<NpcData> value)) + { + return list; + } + foreach (NpcData item in value) + { + bool flag2 = item.AllQuests.All((QuestInfo x) => currentRank > x.AlliedSocietyRank); + (uint, byte, bool, bool) key = (item.IssuerDataId, dailyQuestSeed, flag2, flag); + if (_dailyQuests.TryGetValue(key, out List<QuestId> value2)) + { + list.AddRange(value2); + continue; + } + List<QuestId> list2 = CalculateAvailableQuests(item.AllQuests, dailyQuestSeed, flag2, currentRank, flag); + _logger.LogDebug("Available for {Tribe} (Seed: {Seed}, Issuer: {IssuerId}): {Quests}", alliedSociety, dailyQuestSeed, item.IssuerDataId, string.Join(", ", list2)); + _dailyQuests[key] = list2; + list.AddRange(list2); + } + return list; } public unsafe (byte CurrentRank, ushort CurrentValue, ushort MaxValue, bool IsMaxRank, bool IsAtCapacity)? GetReputationStatus(EAlliedSociety alliedSociety) { BeastReputationWork beastReputationWork = QuestManager.Instance()->BeastReputation[(int)(alliedSociety - 1)]; - byte rank = beastReputationWork.Rank; - int num = 127; - int num2 = rank; - byte b = (byte)(num2 + num - (num2 | num)); - int num3 = ((b != 0) ? 1618192737 : 1618192736); - while (true) + byte b = (byte)(beastReputationWork.Rank & 0x7F); + if (b == 0) { - int num4 = num3; - num = 1618192737; - num2 = num4; - int num5 = num2 + num; - int num6 = num2 & num; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0081; - case 1: - return null; - case 0: - { - ushort value = beastReputationWork.Value; - ushort valueOrDefault = _reputationRequiredByRank.GetValueOrDefault(b, ushort.MaxValue); - byte valueOrDefault2 = _maxRankByAlliedSociety.GetValueOrDefault<EAlliedSociety, byte>(alliedSociety, 8); - bool item = b >= valueOrDefault2; - bool item2 = value >= valueOrDefault; - return (b, value, valueOrDefault, item, item2); - } - } - continue; - IL_0081: - num3 = 1618192736; + return null; } + ushort value = beastReputationWork.Value; + ushort valueOrDefault = _reputationRequiredByRank.GetValueOrDefault(b, ushort.MaxValue); + byte valueOrDefault2 = _maxRankByAlliedSociety.GetValueOrDefault<EAlliedSociety, byte>(alliedSociety, 8); + bool item = b >= valueOrDefault2; + bool item2 = value >= valueOrDefault; + return (b, value, valueOrDefault, item, item2); } public QuestId? GetRankUpQuest(EAlliedSociety alliedSociety, byte currentRank) @@ -671,239 +183,88 @@ internal sealed class AlliedSocietyQuestFunctions public ushort GetQuestReputationReward(QuestId questId) { - return _questReputationRewards.GetValueOrDefault<uint, ushort>(_200D_202C_202A_206D_206E_200F_202A_202C_200C_202A_200C_202D_200F_200C_206F_206C_206B_206A_206C_200F_202A_200E_202A_206E_202D_202C_206F_200C_202B_206B_206C_206F_202B_206A_206F_202E_206F_206B_206B_206C_202E((ElementId)questId), 0); + return _questReputationRewards.GetValueOrDefault<uint, ushort>(questId.Value, 0); } public bool WouldOvercapReputation(QuestId questId) { - IQuestInfo questInfo; - int num = ((!_questData.TryGetQuestInfo(questId, out questInfo)) ? 370818468 : 370818473); - QuestInfo questInfo2 = default(QuestInfo); - (byte, ushort, ushort, bool, bool)? reputationStatus = default((byte, ushort, ushort, bool, bool)?); - ushort item = default(ushort); - ushort item2 = default(ushort); - while (true) + if (!_questData.TryGetQuestInfo(questId, out IQuestInfo questInfo) || !(questInfo is QuestInfo questInfo2)) { - int num2 = num; - int num3 = 370818477; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 7: - num = ((questInfo2.AlliedSociety != EAlliedSociety.None) ? 370818472 : 370818476); - break; - case 4: - questInfo2 = questInfo as QuestInfo; - num = ((questInfo2 != null) ? 370818474 : 370818468); - break; - case 3: - { - (byte, ushort, ushort, bool, bool) value = reputationStatus.Value; - item = value.Item2; - item2 = value.Item3; - num = ((!value.Item4) ? 370818475 : 370818469); - break; - } - case 8: - return false; - case 6: - { - ushort questReputationReward = GetQuestReputationReward(questId); - ushort num7 = item; - num3 = questReputationReward; - num4 = num7; - return (num4 | num3) + (num4 & num3) > item2; - } - case 1: - return false; - case 0: - return false; - case 9: - return false; - case 2: - num = 370818473; - break; - case 5: - reputationStatus = GetReputationStatus(questInfo2.AlliedSociety); - num = (reputationStatus.HasValue ? 370818478 : 370818477); - break; - } + return false; } + if (questInfo2.AlliedSociety == EAlliedSociety.None) + { + return false; + } + (byte, ushort, ushort, bool, bool)? reputationStatus = GetReputationStatus(questInfo2.AlliedSociety); + if (!reputationStatus.HasValue) + { + return false; + } + (byte, ushort, ushort, bool, bool) value = reputationStatus.Value; + ushort item = value.Item2; + ushort item2 = value.Item3; + if (value.Item4) + { + return false; + } + ushort questReputationReward = GetQuestReputationReward(questId); + return item + questReputationReward > item2; } private static List<QuestId> CalculateAvailableQuests(List<QuestInfo> allQuests, byte seed, bool outranksAll, byte currentRank, bool rankedUp) { List<QuestInfo> list = allQuests.Where((QuestInfo q) => IsEligible(q, currentRank, rankedUp)).ToList(); List<QuestInfo> list2 = new List<QuestInfo>(); - int num = ((list.Count != 0) ? (-1989985077) : (-1989985088)); - int num12 = default(int); - int num20 = default(int); - int num6 = default(int); - Rng rng = default(Rng); - int num5 = default(int); - int num15 = default(int); - int num16 = default(int); - int num10 = default(int); - while (true) + if (list.Count == 0) { - int num2 = num; - int num3 = -1989985086; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return new List<QuestId>(); + } + Rng rng = new Rng(seed); + if (outranksAll) + { + int num = 0; + for (int num2 = Math.Min(list.Count, 3); num < num2; num++) { - case 6: - num = ((num12 < num20) ? (-1989985082) : (-1989985085)); - break; - case 17: - num6 = list.FindIndex((QuestInfo q) => q.AlliedSocietyQuestGroup == 3); - num = ((num6 < 0) ? (-1989985071) : (-1989985076)); - break; - case 9: - rng = new Rng(seed); - num = ((!outranksAll) ? (-1989985069) : (-1989985074)); - break; - case 11: - num = (list2.Contains(list[num5]) ? (-1989985080) : (-1989985087)); - break; - case 2: - return new List<QuestId>(); - case 19: - num6 = list.Count; - num = -1989985083; - break; - case 7: - num15 = list2.Count; - num16 = _202C_206C_206A_206B_206A_200B_206E_206A_202E_200E_206D_206E_200B_200B_206B_206D_206E_200C_202E_206E_200E_202B_206F_202A_206D_206F_200D_206B_202A_200D_206A_206C_206F_202B_202B_200D_206C_202C_206A_202A_202E(num6, 3); - num = -1989985086; - break; - case 3: - { - list2.Add(list[num5]); - int num21 = num15; - num3 = 1; - num4 = num21; - int num22 = num4 ^ num3; - int num23 = num4 & num3; - num15 = num22 + (num23 + num23); - num = -1989985086; - break; - } - case 14: - list2.Add(list[num6 + rng.Next(list.Count - num6)]); - num = -1989985083; - break; - case 16: - num = (list2.Contains(list[num10]) ? (-1989985072) : (-1989985078)); - break; - case 1: - num = -1989985075; - break; - case 12: - num12 = 0; - num20 = _202C_206C_206A_206B_206A_200B_206E_206A_202E_200E_206D_206E_200B_200B_206B_206D_206E_200C_202E_206E_200E_202B_206F_202A_206D_206F_200D_206B_202A_200D_206A_206C_206F_202B_202B_200D_206C_202C_206A_202A_202E(list.Count, 3); - num = -1989985084; - break; - case 4: - num10 = rng.Next(list.Count); - num = -1989985070; - break; - case 18: - { - int num17 = num10; - num3 = 1; - num4 = num17; - int num18 = num4 ^ num3; - int num19 = num4 & num3; - num10 = (num18 + (num19 + num19)) % list.Count; - num = -1989985070; - break; - } - case 0: - num = ((num15 < num16) ? (-1989985081) : (-1989985075)); - break; - case 15: - return list2.Select((QuestInfo x) => (QuestId)x.QuestId).ToList(); - case 13: - num = -1989985088; - break; - case 8: - { - list2.Add(list[num10]); - int num11 = num12; - num3 = 1; - num4 = num11; - int num13 = num4 ^ num3; - int num14 = num4 & num3; - num12 = num13 + (num14 + num14); - num = -1989985084; - break; - } - case 10: - { - int num7 = num5; - num3 = 1; - num4 = num7; - int num8 = num4 ^ num3; - int num9 = num4 & num3; - num5 = (num8 + (num9 + num9)) % num6; - num = -1989985079; - break; - } - case 5: - num5 = rng.Next(num6); - num = -1989985079; - break; + int num3 = rng.Next(list.Count); + while (list2.Contains(list[num3])) + { + num3 = (num3 + 1) % list.Count; + } + list2.Add(list[num3]); } } + else + { + int num4 = list.FindIndex((QuestInfo q) => q.AlliedSocietyQuestGroup == 3); + if (num4 >= 0) + { + list2.Add(list[num4 + rng.Next(list.Count - num4)]); + } + else + { + num4 = list.Count; + } + int num5 = list2.Count; + for (int num6 = Math.Min(num4, 3); num5 < num6; num5++) + { + int num7 = rng.Next(num4); + while (list2.Contains(list[num7])) + { + num7 = (num7 + 1) % num4; + } + list2.Add(list[num7]); + } + } + return list2.Select((QuestInfo x) => (QuestId)x.QuestId).ToList(); } private static bool IsEligible(QuestInfo questInfo, byte currentRank, bool rankedUp) { - int num = (rankedUp ? (-1485940211) : (-1485940210)); - while (true) + if (!rankedUp) { - int num2 = num; - int num3 = -1485940212; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return questInfo.AlliedSocietyRank == currentRank; - case 2: - return questInfo.AlliedSocietyRank <= currentRank; - case 0: - goto IL_0058; - } - continue; - IL_0058: - num = -1485940210; + return questInfo.AlliedSocietyRank <= currentRank; } - } - - static bool _206F_202E_206C_200B_200E_202C_206B_202E_200E_200D_202D_200C_206E_200F_202E_200D_206C_200B_206F_206C_202A_202A_206B_202D_202D_202E_200C_200B_206C_200D_206C_206B_202C_202C_206B_200C_200B_202B_202A_206B_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200B_200B_200E_202D_200D_200D_202B_200F_202E_200C_202A_200B_202B_206B_202D_200D_206D_200C_206F_200B_202A_202A_200F_200B_206A_200C_206F_200C_206B_206B_200E_200E_206C_202B_202B_202E_202C_200E_202E_202C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _202E_200E_206F_206E_202E_206C_206D_200B_200F_200C_206A_202A_200C_206F_206F_206E_206C_200D_206E_200D_200B_200D_206C_206B_200F_202B_206D_202A_200D_206E_206B_206A_200B_206D_200E_200E_202B_202B_206A_200E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static ushort _200D_202C_202A_206D_206E_200F_202A_202C_200C_202A_200C_202D_200F_200C_206F_206C_206B_206A_206C_200F_202A_200E_202A_206E_202D_202C_206F_200C_202B_206B_206C_206F_202B_206A_206F_202E_206F_206B_206B_206C_202E(ElementId P_0) - { - return P_0.Value; - } - - static int _202C_206C_206A_206B_206A_200B_206E_206A_202E_200E_206D_206E_200B_200B_206B_206D_206E_200C_202E_206E_200E_202B_206F_202A_206D_206F_200D_206B_202A_200D_206A_206C_206F_202B_202B_200D_206C_202C_206A_202A_202E(int P_0, int P_1) - { - return Math.Min(P_0, P_1); + return questInfo.AlliedSocietyRank == currentRank; } } diff --git a/Questionable/Questionable.Functions/ChatFunctions.cs b/Questionable/Questionable.Functions/ChatFunctions.cs index 904e351..b916904 100644 --- a/Questionable/Questionable.Functions/ChatFunctions.cs +++ b/Questionable/Questionable.Functions/ChatFunctions.cs @@ -1,8 +1,6 @@ -using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; -using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using LLib; @@ -13,85 +11,6 @@ namespace Questionable.Functions; internal sealed class ChatFunctions { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<Emote, bool> _003C_003E9__3_0; - - public static Func<Emote, bool> _003C_003E9__3_1; - - public static Func<Emote, (uint RowId, string Command)> _003C_003E9__3_2; - - public static Func<(uint RowId, string Command), bool> _003C_003E9__3_3; - - public static Func<(uint RowId, string Command), EEmote> _003C_003E9__3_4; - - public static Func<(uint RowId, string Command), string> _003C_003E9__3_5; - - internal bool _003C_002Ector_003Eb__3_0(Emote x) - { - return x.RowId != 0; - } - - internal bool _003C_002Ector_003Eb__3_1(Emote x) - { - return x.TextCommand.IsValid; - } - - internal (uint RowId, string Command) _003C_002Ector_003Eb__3_2(Emote x) - { - return (RowId: x.RowId, Command: x.TextCommand.Value.Command.ToString()); - } - - internal bool _003C_002Ector_003Eb__3_3((uint RowId, string Command) x) - { - int num = (_200E_206A_206F_202E_206D_206E_206F_202B_202B_206A_200D_206B_202B_200D_206D_200C_202B_200E_202B_200C_200C_206F_202D_206C_200D_206D_202C_206B_202E_206D_200C_202D_202B_206B_200C_206F_202B_202D_206B_202D_202E(x.Command) ? 1902035638 : 1902035637); - while (true) - { - int num2 = num; - int num3 = 1902035639; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return false; - case 2: - return _206E_202D_200C_202C_202E_200D_206C_202A_202D_206C_206A_202B_206D_202E_202B_200F_206F_206D_206F_206F_200D_206A_202E_202A_206A_206A_202D_200E_206B_206E_206B_202B_206C_202B_206B_200E_206B_202A_206F_206C_202E(x.Command, '/'); - case 0: - goto IL_005d; - } - continue; - IL_005d: - num = 1902035637; - } - } - - internal EEmote _003C_002Ector_003Eb__3_4((uint RowId, string Command) x) - { - return (EEmote)x.RowId; - } - - internal string _003C_002Ector_003Eb__3_5((uint RowId, string Command) x) - { - return x.Command; - } - - static bool _200E_206A_206F_202E_206D_206E_206F_202B_202B_206A_200D_206B_202B_200D_206D_200C_202B_200E_202B_200C_200C_206F_202D_206C_200D_206D_202C_206B_202E_206D_200C_202D_202B_206B_200C_206F_202B_202D_206B_202D_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static bool _206E_202D_200C_202C_202E_200D_206C_202A_202D_206C_206A_202B_206D_202E_202B_200F_206F_206D_206F_206F_200D_206A_202E_202A_206A_206A_202D_200E_206B_206E_206B_202B_206C_202B_206B_200E_206B_202A_206F_206C_202E(string P_0, char P_1) - { - return P_0.StartsWith(P_1); - } - } - private readonly ReadOnlyDictionary<EEmote, string> _emoteCommands; private readonly GameFunctions _gameFunctions; @@ -105,108 +24,33 @@ internal sealed class ChatFunctions _emoteCommands = (from x in dataManager.GetExcelSheet<Emote>() where x.RowId != 0 where x.TextCommand.IsValid - select (RowId: x.RowId, Command: x.TextCommand.Value.Command.ToString())).Where<(uint, string)>(delegate((uint RowId, string Command) x) - { - int num = (_003C_003Ec._200E_206A_206F_202E_206D_206E_206F_202B_202B_206A_200D_206B_202B_200D_206D_200C_202B_200E_202B_200C_200C_206F_202D_206C_200D_206D_202C_206B_202E_206D_200C_202D_202B_206B_200C_206F_202B_202D_206B_202D_202E(x.Command) ? 1902035638 : 1902035637); - while (true) - { - int num2 = num; - int num3 = 1902035639; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return false; - case 2: - return _003C_003Ec._206E_202D_200C_202C_202E_200D_206C_202A_202D_206C_206A_202B_206D_202E_202B_200F_206F_206D_206F_206F_200D_206A_202E_202A_206A_206A_202D_200E_206B_206E_206B_202B_206C_202B_206B_200E_206B_202A_206F_206C_202E(x.Command, '/'); - case 0: - goto IL_005d; - } - continue; - IL_005d: - num = 1902035637; - } - }).ToDictionary<(uint, string), EEmote, string>(((uint RowId, string Command) x) => (EEmote)x.RowId, ((uint RowId, string Command) x) => x.Command).AsReadOnly(); + select (RowId: x.RowId, Command: x.TextCommand.Value.Command.ToString()) into x + where !string.IsNullOrEmpty(x.Command) && x.Command.StartsWith('/') + select x).ToDictionary<(uint, string), EEmote, string>(((uint RowId, string Command) x) => (EEmote)x.RowId, ((uint RowId, string Command) x) => x.Command).AsReadOnly(); } public static void ExecuteCommand(string command) { - int num = (_202D_202B_202A_202C_200E_206F_200C_206F_200B_202E_202C_200F_202A_200D_206C_202B_200B_206A_206B_200D_202A_206E_202A_202C_202B_206D_202B_202B_200D_206A_206D_202D_202D_206D_200F_200B_202D_202D_200B_202D_202E(command, '/') ? 1153841809 : 1153841810); - while (true) + if (command.StartsWith('/')) { - int num2 = num; - int num3 = 1153841811; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - _200F_202B_200B_202A_202E_206A_202C_202B_206A_200E_202B_200C_200F_200D_206C_202B_206C_202B_206A_200B_202E_206C_200C_202E_206D_200B_200E_206C_206E_202A_206B_206F_200E_206A_202E_206C_206C_206C_202D_200C_202E(command); - return; - case 1: - return; - case 0: - goto IL_0052; - } - continue; - IL_0052: - num = 1153841810; + ChatHelper.SendCommand(command); } } - [MethodImpl(MethodImplOptions.NoInlining)] public bool UseEmote(uint dataId, EEmote emote) { IGameObject gameObject = _gameFunctions.FindObjectByDataId(dataId); - int num = ((gameObject == null) ? (-888767094) : (-888767093)); - while (true) + if (gameObject != null) { - int num2 = num; - int num3 = -888767094; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_005b; - case 1: - _202A_200D_202E_206A_202D_200E_202D_202B_206F_200F_202C_200B_200D_200E_202A_200B_206A_206F_200E_202C_206C_206E_206F_202A_202A_206E_200F_202A_200D_200F_206C_202A_206D_206F_200F_200B_202B_206B_200E_200F_202E(_targetManager, gameObject); - ExecuteCommand(_206D_206D_200D_206B_202D_200F_202C_206F_206B_206B_200D_206B_206E_202D_202A_206E_206E_206B_200D_206F_202C_206B_202B_200F_202C_206C_202A_206C_202B_200F_206B_202A_202D_200F_206F_202C_206C_200F_206A_206A_202E(_emoteCommands[emote], global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1428224074))); - return true; - case 0: - return false; - } - continue; - IL_005b: - num = -888767093; + _targetManager.Target = gameObject; + ExecuteCommand(_emoteCommands[emote] + " motion"); + return true; } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public void UseEmote(EEmote emote) { - ExecuteCommand(_206D_206D_200D_206B_202D_200F_202C_206F_206B_206B_200D_206B_206E_202D_202A_206E_206E_206B_200D_206F_202C_206B_202B_200F_202C_206C_202A_206C_202B_200F_206B_202A_202D_200F_206F_202C_206C_200F_206A_206A_202E(_emoteCommands[emote], global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1428224074))); - } - - static bool _202D_202B_202A_202C_200E_206F_200C_206F_200B_202E_202C_200F_202A_200D_206C_202B_200B_206A_206B_200D_202A_206E_202A_202C_202B_206D_202B_202B_200D_206A_206D_202D_202D_206D_200F_200B_202D_202D_200B_202D_202E(string P_0, char P_1) - { - return P_0.StartsWith(P_1); - } - - static void _200F_202B_200B_202A_202E_206A_202C_202B_206A_200E_202B_200C_200F_200D_206C_202B_206C_202B_206A_200B_202E_206C_200C_202E_206D_200B_200E_206C_206E_202A_206B_206F_200E_206A_202E_206C_206C_206C_202D_200C_202E(string P_0) - { - ChatHelper.SendCommand(P_0); - } - - static void _202A_200D_202E_206A_202D_200E_202D_202B_206F_200F_202C_200B_200D_200E_202A_200B_206A_206F_200E_202C_206C_206E_206F_202A_202A_206E_200F_202A_200D_200F_206C_202A_206D_206F_200F_200B_202B_206B_200E_200F_202E(ITargetManager P_0, IGameObject P_1) - { - P_0.Target = P_1; - } - - static string _206D_206D_200D_206B_202D_200F_202C_206F_206B_206B_200D_206B_206E_202D_202A_206E_206E_206B_200D_206F_202C_206B_202B_200F_202C_206C_202A_206C_202B_200F_206B_202A_202D_200F_206F_202C_206C_200F_206A_206A_202E(string P_0, string P_1) - { - return P_0 + P_1; + ExecuteCommand(_emoteCommands[emote] + " motion"); } } diff --git a/Questionable/Questionable.Functions/ExcelFunctions.cs b/Questionable/Questionable.Functions/ExcelFunctions.cs index ade1549..96ee27e 100644 --- a/Questionable/Questionable.Functions/ExcelFunctions.cs +++ b/Questionable/Questionable.Functions/ExcelFunctions.cs @@ -1,8 +1,5 @@ using System; using System.Linq; -using System.Runtime.CompilerServices; -using System.Text.RegularExpressions; -using Dalamud.Game.Text.SeStringHandling; using Dalamud.Plugin.Services; using Dalamud.Utility; using LLib; @@ -11,7 +8,6 @@ using Lumina.Excel.Sheets; using Lumina.Text.ReadOnly; using Microsoft.Extensions.Logging; using Questionable.Model; -using Questionable.Model.Questing; namespace Questionable.Functions; @@ -30,290 +26,78 @@ internal sealed class ExcelFunctions public StringOrRegex GetDialogueText(Questionable.Model.Quest? currentQuest, string? excelSheetName, string key, bool isRegex) { ReadOnlySeString? rawDialogueText = GetRawDialogueText(currentQuest, excelSheetName, key); - int num = ((!isRegex) ? 1072501571 : 1072501572); - while (true) + if (isRegex) { - int num2 = num; - int num3 = 1072501568; - int num4 = num2; - object str; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1072501572; - break; - case 3: - num = (rawDialogueText.HasValue ? 1072501570 : 1072501569); - break; - case 1: - str = null; - goto IL_009e; - case 2: - str = _200D_206F_206A_202A_202D_200D_206B_202E_206C_202D_202A_200C_202E_200C_202B_200E_200C_202E_206C_202D_200C_202A_200C_200F_200C_200E_200D_206A_202E_202E_202B_200F_200C_206E_200D_202B_202A_200F_200D_206D_202E(rawDialogueText.GetValueOrDefault()); - goto IL_009e; - case 4: - { - return new StringOrRegex(_202D_202D_206D_202A_206F_202D_200F_206A_200B_206D_206E_200B_206C_202B_202B_200C_206B_200D_206C_202D_206F_202C_200E_206D_206B_200E_200E_200B_206B_202C_206D_202B_200B_206C_202C_206D_202A_206F_202D_206C_202E(rawDialogueText)); - } - IL_009e: - return new StringOrRegex((string?)str); - } + return new StringOrRegex(rawDialogueText.ToRegex()); } + return new StringOrRegex(rawDialogueText?.WithCertainMacroCodeReplacements()); } - [MethodImpl(MethodImplOptions.NoInlining)] public ReadOnlySeString? GetRawDialogueText(Questionable.Model.Quest? currentQuest, string? excelSheetName, string key) { - int num = ((currentQuest == null) ? 29428304 : 29428309); - Lumina.Excel.Sheets.Quest? rowOrDefault = default(Lumina.Excel.Sheets.Quest?); - while (true) + if (currentQuest != null && excelSheetName == null) { - int num2 = num; - int num3 = 29428305; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + Lumina.Excel.Sheets.Quest? rowOrDefault = _dataManager.GetExcelSheet<Lumina.Excel.Sheets.Quest>().GetRowOrDefault((uint)(currentQuest.Id.Value + 65536)); + if (!rowOrDefault.HasValue) { - case 0: - num = 29428309; - break; - case 2: - rowOrDefault = _dataManager.GetExcelSheet<Lumina.Excel.Sheets.Quest>().GetRowOrDefault((uint)(_206E_202E_206E_200E_206E_200E_202C_200F_206E_206C_200C_202E_200B_202B_206E_200B_206D_202C_206E_206F_200E_202B_200B_202D_206D_206C_202A_200F_200C_206C_200E_206C_202C_200B_200D_202A_200E_200F_206F_200E_202E(currentQuest.Id) + 65536)); - num = (rowOrDefault.HasValue ? 29428308 : 29428306); - break; - case 4: - num = ((excelSheetName != null) ? 29428304 : 29428307); - break; - case 5: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(7, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1117536650)); - defaultInterpolatedStringHandler.AppendFormatted(_206E_202E_206E_200E_206E_200E_202C_200F_206E_206C_200C_202E_200B_202B_206E_200B_206D_202C_206E_206F_200E_202B_200B_202D_206D_206C_202A_200F_200C_206C_200E_206C_202C_200B_200D_202A_200E_200F_206F_200E_202E(currentQuest.Id) / 100, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1475235233)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(503298330)); - defaultInterpolatedStringHandler.AppendFormatted(rowOrDefault.Value.Id); - excelSheetName = defaultInterpolatedStringHandler.ToStringAndClear(); - num = 29428304; - break; - } - case 3: - _202A_206D_200D_202A_200D_202C_200F_206C_202E_202A_200E_206B_200C_200E_200B_202D_200E_200F_202B_202A_200F_206C_200B_200F_200B_206A_200F_202C_200B_206D_202B_206A_202E_200F_202B_200E_202C_200D_206F_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1164547809), new object[1] { currentQuest.Id }); + _logger.LogError("Could not find quest row for {QuestId}", currentQuest.Id); return null; - case 1: - _200B_200E_202A_202E_206D_206D_200D_202D_206E_206D_206E_206D_206E_202C_202A_206B_202A_206B_206F_206B_202D_202D_200B_202A_206F_206B_206B_202C_206D_202E_202C_206E_200E_206A_202E_202C_202D_200C_200C_206D_202E((object)excelSheetName, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1394089071)); - try - { - IDataManager dataManager = _dataManager; - string name = excelSheetName; - return dataManager.GetExcelSheet<QuestDialogueText>(null, name).Cast<QuestDialogueText?>().FirstOrDefault((QuestDialogueText? x) => x.Value.Key == key)?.Value; - } - catch (SheetNotFoundException ex) - { - throw _202C_202B_202E_200D_202B_206A_200D_206B_200C_200C_206F_200D_200C_206A_200D_200F_200D_202B_206B_200E_206B_200D_206C_200B_206E_206D_200C_200C_200E_206C_206B_206C_202A_206E_206F_202B_202E_202D_206D_202C_202E(_202E_202B_200D_206E_202D_200B_206E_202E_206C_206E_206E_202C_200B_200C_202C_206C_206E_200B_200D_206F_206E_206E_206A_206E_206E_206E_202C_202C_206A_200D_200C_200B_200D_200C_206B_202D_206E_206D_202B_206A_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(517692364), excelSheetName, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1767050032)), (Exception)ex); - } } + excelSheetName = $"quest/{currentQuest.Id.Value / 100:000}/{rowOrDefault.Value.Id}"; + } + ArgumentNullException.ThrowIfNull(excelSheetName, "excelSheetName"); + try + { + IDataManager dataManager = _dataManager; + string name = excelSheetName; + return dataManager.GetExcelSheet<QuestDialogueText>(null, name).Cast<QuestDialogueText?>().FirstOrDefault((QuestDialogueText? x) => x.Value.Key == key)?.Value; + } + catch (SheetNotFoundException innerException) + { + throw new SheetNotFoundException("Sheet '" + excelSheetName + "' not found", innerException); } } public StringOrRegex GetDialogueTextByRowId(string? excelSheet, uint rowId, bool isRegex) { ReadOnlySeString? rawDialogueTextByRowId = GetRawDialogueTextByRowId(excelSheet, rowId); - int num = ((!isRegex) ? 22562861 : 22562856); - object str; - while (true) + if (isRegex) { - int num2 = num; - int num3 = 22562857; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 0: - str = null; - break; - case 1: - return new StringOrRegex(_202D_202D_206D_202A_206F_202D_200F_206A_200B_206D_206E_200B_206C_202B_202B_200C_206B_200D_206C_202D_206F_202C_200E_206D_206B_200E_200E_200B_206B_202C_206D_202B_200B_206C_202C_206D_202A_206F_202D_206C_202E(rawDialogueTextByRowId)); - case 4: - num = (rawDialogueTextByRowId.HasValue ? 22562858 : 22562857); - continue; - case 2: - num = 22562856; - continue; - case 3: - str = _202E_200B_206D_206C_206E_202A_200E_202B_206B_206C_202A_200C_202E_206E_206A_206E_202E_206F_202B_200D_202D_206A_202D_200C_200B_206A_202D_206E_206E_200C_200F_202A_200F_206E_206A_200B_202C_202E_202D_202E((object)_202E_206E_206A_206A_206E_200F_202D_200E_206E_200E_200D_200D_200E_202B_200B_200B_206C_202A_206C_200C_200B_200F_202D_200E_206D_200B_206E_202A_202A_206E_206C_206C_200B_202C_200B_206F_200D_202D_200E_206C_202E(rawDialogueTextByRowId.GetValueOrDefault())); - break; - } - break; + return new StringOrRegex(rawDialogueTextByRowId.ToRegex()); } - return new StringOrRegex((string?)str); + return new StringOrRegex(rawDialogueTextByRowId?.ToDalamudString().ToString()); } - [MethodImpl(MethodImplOptions.NoInlining)] public ReadOnlySeString? GetRawDialogueTextByRowId(string? excelSheet, uint rowId) { - int num = ((!_200B_202C_200E_206D_202B_206C_206B_206E_206F_206F_202D_200D_202C_206A_202D_200E_206E_206D_200E_200B_202C_200F_200D_202B_202E_200E_200D_200D_202B_206F_202A_206C_206B_206D_200C_200F_202B_200C_206F_200C_202E(excelSheet, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1570338980))) ? (-409733808) : (-409733813)); - GilShop? rowOrDefault3 = default(GilShop?); - Addon? rowOrDefault4 = default(Addon?); - ContentTalk? rowOrDefault = default(ContentTalk?); - bool flag = default(bool); - EventPathMove? rowOrDefault6 = default(EventPathMove?); - Warp? rowOrDefault5 = default(Warp?); - GimmickYesNo? rowOrDefault2 = default(GimmickYesNo?); - while (true) + bool flag; + switch (excelSheet) { - int num2 = num; - int num3 = -409733800; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + case "GimmickYesNo": + return _dataManager.GetExcelSheet<GimmickYesNo>().GetRowOrDefault(rowId)?.Message; + case "Warp": + return _dataManager.GetExcelSheet<Warp>().GetRowOrDefault(rowId)?.Name; + case "Addon": + return _dataManager.GetExcelSheet<Addon>().GetRowOrDefault(rowId)?.Text; + case "EventPathMove": + return _dataManager.GetExcelSheet<EventPathMove>().GetRowOrDefault(rowId)?.Unknown0; + case "GilShop": + return _dataManager.GetExcelSheet<GilShop>().GetRowOrDefault(rowId)?.Name; + default: + if (excelSheet != null) { - case 3: - rowOrDefault3 = _dataManager.GetExcelSheet<GilShop>().GetRowOrDefault(rowId); - num = (rowOrDefault3.HasValue ? (-409733798) : (-409733820)); - break; - case 11: - num = ((excelSheet != null) ? (-409733821) : (-409733807)); - break; - case 22: - return rowOrDefault4.GetValueOrDefault().Text; - case 5: - rowOrDefault = _dataManager.GetExcelSheet<ContentTalk>().GetRowOrDefault(rowId); - num = (rowOrDefault.HasValue ? (-409733793) : (-409733800)); - break; - case 21: - rowOrDefault4 = _dataManager.GetExcelSheet<Addon>().GetRowOrDefault(rowId); - num = (rowOrDefault4.HasValue ? (-409733810) : (-409733816)); - break; - case 0: - return null; - case 18: - num = ((!_200B_202C_200E_206D_202B_206C_206B_206E_206F_206F_202D_200D_202C_206A_202D_200E_206E_206D_200E_200B_202C_200F_200D_202B_202E_200E_200D_200D_202B_206F_202A_206C_206B_206D_200C_200F_202B_200C_206F_200C_202E(excelSheet, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1839428582))) ? (-409733801) : (-409733797)); - break; - case 27: flag = false; - num = -409733803; break; - case 6: - return rowOrDefault6.GetValueOrDefault().Unknown0; - case 10: - num = -409733813; - break; - case 9: - flag = true; - num = -409733803; - break; - case 2: - return rowOrDefault3.GetValueOrDefault().Name; - case 24: - throw _206A_202E_206F_200C_206F_202E_202C_202B_202A_206C_200C_206F_200E_206B_200E_202E_202E_202D_200B_200B_200F_206B_202D_202C_206F_206F_200D_200C_202C_202B_206C_200B_202C_200C_202B_206A_202E_206A_200B_206A_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1185562918), _206C_206C_200E_200C_206A_200F_202A_206A_206A_202D_206E_206A_200D_200D_206E_202B_200B_200B_200D_206F_200B_206F_206D_200F_202D_206E_202D_206D_202C_206D_200B_206D_206E_200C_206E_206D_206A_206B_202A_206F_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2034463000), excelSheet)); - case 4: - return null; - case 13: - num = ((!flag) ? (-409733824) : (-409733795)); - break; - case 14: - num = ((!_200B_202C_200E_206D_202B_206C_206B_206E_206F_206F_202D_200D_202C_206A_202D_200E_206E_206D_200E_200B_202C_200F_200D_202B_202E_200E_200D_200D_202B_206F_202A_206C_206B_206D_200C_200F_202B_200C_206F_200C_202E(excelSheet, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1204948289))) ? (-409733814) : (-409733804)); - break; - case 8: - num = ((!_200B_202C_200E_206D_202B_206C_206B_206E_206F_206F_202D_200D_202C_206A_202D_200E_206E_206D_200E_200B_202C_200F_200D_202B_202E_200E_200D_200D_202B_206F_202A_206C_206B_206D_200C_200F_202B_200C_206F_200C_202E(excelSheet, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1428251349))) ? (-409733812) : (-409733822)); - break; - case 12: - rowOrDefault6 = _dataManager.GetExcelSheet<EventPathMove>().GetRowOrDefault(rowId); - num = (rowOrDefault6.HasValue ? (-409733794) : (-409733823)); - break; - case 1: - return rowOrDefault5.GetValueOrDefault().Name; - case 23: - return null; - case 26: - rowOrDefault5 = _dataManager.GetExcelSheet<Warp>().GetRowOrDefault(rowId); - num = (rowOrDefault5.HasValue ? (-409733799) : (-409733809)); - break; - case 16: - return null; - case 17: - return rowOrDefault2.GetValueOrDefault().Message; - case 20: - num = ((!_200B_202C_200E_206D_202B_206C_206B_206E_206F_206F_202D_200D_202C_206A_202D_200E_206E_206D_200E_200B_202C_200F_200D_202B_202E_200E_200D_200D_202B_206F_202A_206C_206B_206D_200C_200F_202B_200C_206F_200C_202E(excelSheet, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(322628157))) ? (-409733802) : (-409733811)); - break; - case 15: - num = (_200B_202C_200E_206D_202B_206C_206B_206E_206F_206F_202D_200D_202C_206A_202D_200E_206E_206D_200E_200B_202C_200F_200D_202B_202E_200E_200D_200D_202B_206F_202A_206C_206B_206D_200C_200F_202B_200C_206F_200C_202E(excelSheet, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(492487113)) ? (-409733807) : (-409733805)); - break; - case 19: - rowOrDefault2 = _dataManager.GetExcelSheet<GimmickYesNo>().GetRowOrDefault(rowId); - num = (rowOrDefault2.HasValue ? (-409733815) : (-409733796)); - break; - case 7: - return rowOrDefault.GetValueOrDefault().Text; - case 28: - return null; - case 25: - return null; } + goto case "ContentTalk"; + case "ContentTalk": + flag = true; + break; } - } - - static Regex _202D_202D_206D_202A_206F_202D_200F_206A_200B_206D_206E_200B_206C_202B_202B_200C_206B_200D_206C_202D_206F_202C_200E_206D_206B_200E_200E_200B_206B_202C_206D_202B_200B_206C_202C_206D_202A_206F_202D_206C_202E(ReadOnlySeString? P_0) - { - return P_0.ToRegex(); - } - - static string _200D_206F_206A_202A_202D_200D_206B_202E_206C_202D_202A_200C_202E_200C_202B_200E_200C_202E_206C_202D_200C_202A_200C_200F_200C_200E_200D_206A_202E_202E_202B_200F_200C_206E_200D_202B_202A_200F_200D_206D_202E(ReadOnlySeString P_0) - { - return P_0.WithCertainMacroCodeReplacements(); - } - - static ushort _206E_202E_206E_200E_206E_200E_202C_200F_206E_206C_200C_202E_200B_202B_206E_200B_206D_202C_206E_206F_200E_202B_200B_202D_206D_206C_202A_200F_200C_206C_200E_206C_202C_200B_200D_202A_200E_200F_206F_200E_202E(ElementId P_0) - { - return P_0.Value; - } - - static void _202A_206D_200D_202A_200D_202C_200F_206C_202E_202A_200E_206B_200C_200E_200B_202D_200E_200F_202B_202A_200F_206C_200B_200F_200B_206A_200F_202C_200B_206D_202B_206A_202E_200F_202B_200E_202C_200D_206F_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogError(P_1, P_2); - } - - static void _200B_200E_202A_202E_206D_206D_200D_202D_206E_206D_206E_206D_206E_202C_202A_206B_202A_206B_206F_206B_202D_202D_200B_202A_206F_206B_206B_202C_206D_202E_202C_206E_200E_206A_202E_202C_202D_200C_200C_206D_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static string _202E_202B_200D_206E_202D_200B_206E_202E_206C_206E_206E_202C_200B_200C_202C_206C_206E_200B_200D_206F_206E_206E_206A_206E_206E_206E_202C_202C_206A_200D_200C_200B_200D_200C_206B_202D_206E_206D_202B_206A_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static SheetNotFoundException _202C_202B_202E_200D_202B_206A_200D_206B_200C_200C_206F_200D_200C_206A_200D_200F_200D_202B_206B_200E_206B_200D_206C_200B_206E_206D_200C_200C_200E_206C_206B_206C_202A_206E_206F_202B_202E_202D_206D_202C_202E(string P_0, Exception P_1) - { - return new SheetNotFoundException(P_0, P_1); - } - - static SeString _202E_206E_206A_206A_206E_200F_202D_200E_206E_200E_200D_200D_200E_202B_200B_200B_206C_202A_206C_200C_200B_200F_202D_200E_206D_200B_206E_202A_202A_206E_206C_206C_200B_202C_200B_206F_200D_202D_200E_206C_202E(ReadOnlySeString P_0) - { - return P_0.ToDalamudString(); - } - - static string _202E_200B_206D_206C_206E_202A_200E_202B_206B_206C_202A_200C_202E_206E_206A_206E_202E_206F_202B_200D_202D_206A_202D_200C_200B_206A_202D_206E_206E_200C_200F_202A_200F_206E_206A_200B_202C_202E_202D_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _200B_202C_200E_206D_202B_206C_206B_206E_206F_206F_202D_200D_202C_206A_202D_200E_206E_206D_200E_200B_202C_200F_200D_202B_202E_200E_200D_200D_202B_206F_202A_206C_206B_206D_200C_200F_202B_200C_206F_200C_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static string _206C_206C_200E_200C_206A_200F_202A_206A_206A_202D_206E_206A_200D_200D_206E_202B_200B_200B_200D_206F_200B_206F_206D_200F_202D_206E_202D_206D_202C_206D_200B_206D_206E_200C_206E_206D_206A_206B_202A_206F_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static ArgumentOutOfRangeException _206A_202E_206F_200C_206F_202E_202C_202B_202A_206C_200C_206F_200E_206B_200E_202E_202E_202D_200B_200B_200F_206B_202D_202C_206F_206F_200D_200C_202C_202B_206C_200B_202C_200C_202B_206A_202E_206A_200B_206A_202E(string P_0, string P_1) - { - return new ArgumentOutOfRangeException(P_0, P_1); + if (flag) + { + return _dataManager.GetExcelSheet<ContentTalk>().GetRowOrDefault(rowId)?.Text; + } + throw new ArgumentOutOfRangeException("excelSheet", "Unsupported excel sheet " + excelSheet); } } diff --git a/Questionable/Questionable.Functions/GameFunctions.cs b/Questionable/Questionable.Functions/GameFunctions.cs index c5636d4..4feec0d 100644 --- a/Questionable/Questionable.Functions/GameFunctions.cs +++ b/Questionable/Questionable.Functions/GameFunctions.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Text.RegularExpressions; using Dalamud.Game.ClientState.Conditions; @@ -23,7 +22,6 @@ using LLib; using LLib.GameData; using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; -using Questionable.Model; using Questionable.Model.Questing; namespace Questionable.Functions; @@ -58,7 +56,7 @@ internal sealed class GameFunctions private readonly ReadOnlyDictionary<uint, uint> _contentFinderConditionToContentId; - private static readonly Regex MacroLiteralRegex = _200E_206C_202E_206E_206B_206A_202D_206B_206B_206B_200D_206F_200E_202A_202A_206F_206A_200F_206B_200D_202D_200B_202A_206D_200C_206C_200C_202A_200D_202A_200D_202A_206B_206D_206A_200B_200C_200D_206F_200F_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1537827123), RegexOptions.Compiled); + private static readonly Regex MacroLiteralRegex = new Regex("\\\\?<[^>]+>", RegexOptions.Compiled); public GameFunctions(GameStateHelper gameState, PublicEventHelper publicEventHelper, QuestFunctions questFunctions, IDataManager dataManager, IObjectTable objectTable, ITargetManager targetManager, ICondition condition, IClientState clientState, IGameGui gameGui, Configuration configuration, ISigScanner sigScanner, ILogger<GameFunctions> logger) { @@ -74,347 +72,134 @@ internal sealed class GameFunctions _configuration = configuration; _logger = logger; _abandonDuty = Marshal.GetDelegateForFunctionPointer<AbandonDutyDelegate>(EventFramework.Addresses.LeaveCurrentContent.Value); - _contentFinderConditionToContentId = dataManager.GetExcelSheet<ContentFinderCondition>().Where(delegate(ContentFinderCondition x) - { - int num = ((x.RowId == 0) ? 1024647166 : 1024647165); - while (true) - { - int num2 = num; - int num3 = 1024647164; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return false; - case 1: - return x.Content.RowId != 0; - case 0: - goto IL_005d; - } - continue; - IL_005d: - num = 1024647165; - } - }).ToDictionary((ContentFinderCondition x) => x.RowId, (ContentFinderCondition x) => x.Content.RowId) - .AsReadOnly(); + _contentFinderConditionToContentId = (from x in dataManager.GetExcelSheet<ContentFinderCondition>() + where x.RowId != 0 && x.Content.RowId != 0 + select x).ToDictionary((ContentFinderCondition x) => x.RowId, (ContentFinderCondition x) => x.Content.RowId).AsReadOnly(); } public bool IsFlyingUnlocked(uint territoryId) { - int num = ((!_configuration.Navigation.NeverFly) ? (-1364280485) : (-1364280489)); - ushort? mountId = default(ushort?); - while (true) + if (_configuration.Navigation.NeverFly) { - int num2 = num; - int num3 = -1364280481; - int num4 = num2; - int? obj; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - num = ((!_206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(_condition, ConditionFlag.Mounted)) ? (-1364280484) : (-1364280486)); - break; - case 2: - obj = mountId.GetValueOrDefault(); - goto IL_009e; - case 1: - obj = null; - goto IL_009e; - case 0: - num = -1364280489; - break; - case 3: - return _202B_202C_206D_206E_200C_206D_206C_206E_200E_206F_206F_206C_202A_202B_202E_202D_206B_202C_206F_200C_200F_206A_202B_206E_206D_206C_202A_202B_206C_202A_206B_206E_206A_206E_200F_200C_206E_200E_202C_200C_202E(_gameState, territoryId); - case 4: - num = ((!_questFunctions.IsQuestAccepted(_202A_206D_206C_206A_202C_202C_202B_206E_206D_202C_200F_202D_200D_202E_200B_200C_202D_202B_202A_206B_202A_202D_206E_206A_202C_200F_206A_200C_200B_206E_200F_200C_200C_206D_200F_200E_206B_206A_200B_202C_202E((ushort)3304))) ? (-1364280484) : (-1364280487)); - break; - case 7: - return true; - case 5: - mountId = GetMountId(); - num = (mountId.HasValue ? (-1364280483) : (-1364280482)); - break; - case 8: - { - return false; - } - IL_009e: - num = ((obj != 198) ? (-1364280484) : (-1364280488)); - break; - } + return false; } + if (_questFunctions.IsQuestAccepted(new QuestId(3304)) && _condition[ConditionFlag.Mounted] && GetMountId() == 198) + { + return true; + } + return _gameState.IsFlyingUnlocked(territoryId); } public bool IsFlyingUnlockedPersistent(uint territoryId) { - int num = ((!_configuration.Navigation.NeverFly) ? (-1580908316) : (-1580908315)); - while (true) + if (_configuration.Navigation.NeverFly) { - int num2 = num; - int num3 = -1580908316; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return _202B_202C_206D_206E_200C_206D_206C_206E_200E_206F_206F_206C_202A_202B_202E_202D_206B_202C_206F_200C_200F_206A_202B_206E_206D_206C_202A_202B_206C_202A_206B_206E_206A_206E_200F_200C_206E_200E_202C_200C_202E(_gameState, territoryId); - case 1: - return false; - case 2: - goto IL_005f; - } - continue; - IL_005f: - num = -1580908315; + return false; } + return _gameState.IsFlyingUnlocked(territoryId); } public ushort? GetMountId() { - return _200B_200E_206F_202A_202E_200E_200C_206E_206A_206A_206A_206F_200B_206C_202B_200C_206B_202C_200E_200B_202E_206A_202E_202E_202D_206A_202A_200D_206C_206D_206C_200D_200C_206D_206A_200E_206F_206C_202D_206A_202E(_gameState); + return _gameState.GetMountId(); } public bool IsFlyingUnlockedInCurrentZone() { - return IsFlyingUnlocked(_206B_202D_206E_206A_202C_200F_202B_202E_206A_206C_206D_200E_206E_202D_206B_202C_206C_200E_200C_200F_206A_200F_200B_206D_202E_206E_200D_202B_206E_206C_206F_200E_202B_202E_202C_202C_206C_206A_200C_206D_202E(_clientState)); + return IsFlyingUnlocked(_clientState.TerritoryType); } public static bool IsAetherCurrentUnlocked(uint aetherCurrentId) { - return _202C_206E_206E_200D_206D_202A_200B_202A_200E_200C_206E_206A_202E_200B_202E_202E_200B_206B_202C_202A_202B_206F_202A_206D_206C_200F_202E_200D_202A_200D_206B_206D_206A_200B_206C_206D_206E_206A_206E_206B_202E(aetherCurrentId); + return PlayerStateHelper.IsAetherCurrentUnlocked(aetherCurrentId); } - [MethodImpl(MethodImplOptions.NoInlining)] public IGameObject? FindObjectByDataId(uint dataId, Dalamud.Game.ClientState.Objects.Enums.ObjectKind? kind = null, bool warnIfMissing = true) { - int num = 0; - int num2 = 807951982; - bool flag = default(bool); - IGameObject gameObject = default(IGameObject); - Dalamud.Game.ClientState.Objects.Enums.ObjectKind objectKind = default(Dalamud.Game.ClientState.Objects.Enums.ObjectKind); - while (true) + for (int i = 0; i < _objectTable.Length; i++) { - int num3 = num2; - int num4 = 807951971; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) + IGameObject gameObject = _objectTable[i]; + if (gameObject != null) { - case 10: - num2 = (flag ? 807951978 : 807951968); - break; - case 18: - num2 = ((!kind.HasValue) ? 807951976 : 807951971); - break; - case 16: - num2 = ((_206D_202C_200F_200B_202C_200B_200B_206C_206C_206E_200F_202B_206F_200E_202B_200C_200B_200D_200F_206E_206D_206B_200F_202E_206C_202C_202C_202C_200E_206F_200F_200E_200B_206C_206D_206B_202D_202D_206A_202D_202E(gameObject) != Dalamud.Game.ClientState.Objects.Enums.ObjectKind.GatheringPoint) ? 807951974 : 807951970); - break; - case 7: - return null; - case 4: - objectKind = _206D_202C_200F_200B_202C_200B_200B_206C_206C_206E_200F_202B_206F_200E_202B_200C_200B_200D_200F_206E_206D_206B_200F_202E_206C_202C_202C_202C_200E_206F_200F_200E_200B_206C_206D_206B_202D_202D_206A_202D_202E(gameObject); - num2 = ((objectKind == Dalamud.Game.ClientState.Objects.Enums.ObjectKind.Pc) ? 807951986 : 807951980); - break; - case 14: - _206A_206B_202A_200C_206A_200E_202D_206C_202A_200E_200B_206B_202B_202E_200D_200F_206F_206C_200E_200E_206E_200F_206F_200B_206B_200B_200F_202B_202E_202A_206C_206B_206D_206A_206F_202C_202C_206D_202C_200C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1434337485), new object[1] { dataId }); - num2 = 807951972; - break; - case 15: - num2 = ((objectKind - 8 <= Dalamud.Game.ClientState.Objects.Enums.ObjectKind.BattleNpc) ? 807951986 : 807951983); - break; - case 13: - num2 = ((num < _202D_206E_206D_200C_200E_200F_200D_200C_200C_202B_206F_202B_202C_206F_206B_200C_202C_202C_206A_206D_202C_206C_200D_200C_200F_202D_200E_206D_202B_202B_200F_202B_206F_202E_202E_206E_202A_206A_206C_206F_202E(_objectTable)) ? 807951984 : 807951973); - break; - case 2: - num2 = 807951982; - break; - case 12: - num2 = ((objectKind != Dalamud.Game.ClientState.Objects.Enums.ObjectKind.HousingEventObject) ? 807951979 : 807951986); - break; - case 3: - num2 = ((gameObject == null) ? 807951974 : 807951987); - break; - case 6: - num2 = ((!warnIfMissing) ? 807951972 : 807951981); - break; - case 9: - { - int num8 = num; - num4 = 1; - num5 = num8; - num = (num5 | num4) + (num5 & num4); - num2 = 807951982; - break; - } - case 5: - num2 = ((_202A_200F_200B_206E_206D_202B_206E_206B_200C_202D_202B_200E_206A_202D_206F_200F_202C_202E_206C_202B_202E_200E_202E_202C_200D_200C_200D_202C_206F_200F_202C_202E_202B_202E_206B_206F_206B_206E_206F_200D_202E(gameObject) != dataId) ? 807951978 : 807951985); - break; - case 8: - flag = false; - num2 = 807951977; - break; - case 17: - flag = true; - num2 = 807951977; - break; - case 0: - num2 = ((kind.Value != _206D_202C_200F_200B_202C_200B_200B_206C_206C_206E_200F_202B_206F_200E_202B_200C_200B_200D_200F_206E_206D_206B_200F_202E_206C_202C_202C_202C_200E_206F_200F_200E_200B_206C_206D_206B_202D_202D_206A_202D_202E(gameObject)) ? 807951978 : 807951976); - break; - case 1: - num2 = ((!_200F_200C_202B_200D_206D_200F_200F_200F_206A_202E_200F_202A_206B_200F_200B_200D_206C_202C_206A_206E_206A_202C_206F_206B_202E_200F_206D_202D_206D_200D_200C_206A_202D_206F_202D_200D_206D_206D_202C_206A_202E(gameObject)) ? 807951978 : 807951974); - break; - case 11: - return gameObject; - case 19: - gameObject = _200E_200B_206B_202E_202B_200C_206D_206D_200E_200B_200F_206C_206C_202D_202D_200C_200B_200E_206A_200C_202D_206A_206F_200D_200D_200C_206C_206E_202D_202E_200C_200D_202A_206E_202D_200F_200E_206F_206E_200C_202E(_objectTable, num); - num2 = ((gameObject == null) ? 807951978 : 807951975); - break; + Dalamud.Game.ClientState.Objects.Enums.ObjectKind objectKind = gameObject.ObjectKind; + bool flag = ((objectKind == Dalamud.Game.ClientState.Objects.Enums.ObjectKind.Pc || objectKind - 8 <= Dalamud.Game.ClientState.Objects.Enums.ObjectKind.BattleNpc || objectKind == Dalamud.Game.ClientState.Objects.Enums.ObjectKind.HousingEventObject) ? true : false); + if (!flag && (gameObject == null || gameObject.ObjectKind != Dalamud.Game.ClientState.Objects.Enums.ObjectKind.GatheringPoint || gameObject.IsTargetable) && gameObject.BaseId == dataId && (!kind.HasValue || kind.Value == gameObject.ObjectKind)) + { + return gameObject; + } } } + if (warnIfMissing) + { + _logger.LogWarning("Could not find GameObject with dataId {DataId}", dataId); + } + return null; } - [MethodImpl(MethodImplOptions.NoInlining)] public bool InteractWith(uint dataId, Dalamud.Game.ClientState.Objects.Enums.ObjectKind? kind = null) { IGameObject gameObject = FindObjectByDataId(dataId, kind); - int num = ((gameObject == null) ? (-1334484933) : (-1334484936)); - while (true) + if (gameObject != null) { - int num2 = num; - int num3 = -1334484935; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - _200B_200D_200E_202D_206C_202D_200D_202D_206F_200F_200C_206A_200F_202E_200D_200B_206F_200D_202C_202D_206E_206A_200C_202D_200E_200E_202B_200C_202D_206D_200E_206F_200E_202B_206C_200E_206C_206F_202D_206F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1930921245), Array.Empty<object>()); - return false; - case 1: - return InteractWith(gameObject); - case 0: - goto IL_0071; - } - continue; - IL_0071: - num = -1334484936; + return InteractWith(gameObject); } + _logger.LogDebug("Game object is null"); + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe bool InteractWith(IGameObject gameObject) { - _200B_200D_200E_202D_206C_202D_200D_202D_206F_200F_200C_206A_200F_202E_200D_200B_206F_200D_202C_202D_206E_206A_200C_202D_200E_200E_202B_200C_202D_206D_200E_206F_200E_202B_206C_200E_206C_206F_202D_206F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1635854667), new object[2] + _logger.LogDebug("Setting target with {DataId} to {ObjectId}", gameObject.BaseId, gameObject.EntityId); + _targetManager.Target = null; + _targetManager.Target = gameObject; + if (gameObject.ObjectKind == Dalamud.Game.ClientState.Objects.Enums.ObjectKind.GatheringPoint) { - _202A_200F_200B_206E_206D_202B_206E_206B_200C_202D_202B_200E_206A_202D_206F_200F_202C_202E_206C_202B_202E_200E_202E_202C_200D_200C_200D_202C_206F_200F_202C_202E_202B_202E_206B_206F_206B_206E_206F_200D_202E(gameObject), - _200E_206F_200B_200E_206D_206D_200E_202E_200B_200F_206D_202E_202C_202E_202C_202A_206F_200F_206C_200D_206E_206B_206B_206D_202B_202C_200B_202E_200C_202B_206A_202E_202C_202A_206A_206A_202E_206C_200D_200E_202E(gameObject) - }); - _202D_200B_206B_202B_200E_206A_200F_206D_206D_200B_202A_202E_206D_200C_200F_202B_200D_202C_200D_206F_202E_202D_202E_202C_206E_202A_202E_200F_206A_206C_200C_200F_206B_206F_200E_200E_200B_206C_200C_206D_202E(_targetManager, (IGameObject)null); - _202D_200B_206B_202B_200E_206A_200F_206D_206D_200B_202A_202E_206D_200C_200F_202B_200D_202C_200D_206F_202E_202D_202E_202C_206E_202A_202E_200F_206A_206C_200C_200F_206B_206F_200E_200E_200B_206C_200C_206D_202E(_targetManager, gameObject); - int num = ((_206D_202C_200F_200B_202C_200B_200B_206C_206C_206E_200F_202B_206F_200E_202B_200C_200B_200D_200F_206E_206D_206B_200F_202E_206C_202C_202C_202C_200E_206F_200F_200E_200B_206C_206D_206B_202D_202D_206A_202D_202E(gameObject) != Dalamud.Game.ClientState.Objects.Enums.ObjectKind.GatheringPoint) ? (-1441144196) : (-1441144194)); - long num7 = default(long); - while (true) - { - int num2 = num; - int num3 = -1441144195; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = -1441144194; - break; - case 0: - return false; - case 3: - TargetSystem.Instance()->OpenObjectInteraction((GameObject*)_206D_206E_202A_202A_202D_206B_200B_202D_200F_200B_206C_202D_200C_206C_206D_202A_202B_206B_206C_206B_206D_202B_202D_206F_206F_200C_200E_200E_200B_206C_206A_202A_206A_206C_206A_200C_200B_202D_202C_206A_202E(gameObject)); - _200B_200D_200E_202D_206C_202D_200D_202D_206F_200F_200C_206A_200F_202E_200D_200B_206F_200D_202C_202D_206E_206A_200C_202D_200E_200E_202B_200C_202D_206D_200E_206F_200E_202B_206C_200E_206C_206F_202D_206F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1675557369), Array.Empty<object>()); - return true; - case 1: - num7 = (long)TargetSystem.Instance()->InteractWithObject((GameObject*)_206D_206E_202A_202A_202D_206B_200B_202D_200F_200B_206C_202D_200C_206C_206D_202A_202B_206B_206C_206B_206D_202B_202D_206F_206F_200C_200E_200E_200B_206C_206A_202A_206A_206C_206A_200C_200B_202D_202C_206A_202E(gameObject), checkLineOfSight: false); - _200B_200D_200E_202D_206C_202D_200D_202D_206F_200F_200C_206A_200F_202E_200D_200B_206F_200D_202C_202D_206E_206A_200C_202D_200E_200E_202B_200C_202D_206D_200E_206F_200E_202B_206C_200E_206C_206F_202D_206F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1317132666), new object[1] { num7 }); - num = ((num7 == 7) ? (-1441144195) : (-1441144193)); - break; - case 2: - return num7 > 0; - } + TargetSystem.Instance()->OpenObjectInteraction((GameObject*)gameObject.Address); + _logger.LogDebug("Interact result: (none) for GatheringPoint"); + return true; } + long num = (long)TargetSystem.Instance()->InteractWithObject((GameObject*)gameObject.Address, checkLineOfSight: false); + _logger.LogDebug("Interact result: {Result}", num); + if (num != 7) + { + return num > 0; + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe bool UseItem(uint itemId) { long num = AgentInventoryContext.Instance()->UseItem(itemId, InventoryType.Invalid, 0u, 0); - _200B_200D_200E_202D_206C_202D_200D_202D_206F_200F_200C_206A_200F_202E_200D_200B_206F_200D_202C_202D_206E_206A_200C_202D_200E_200E_202B_200C_202D_206D_200E_206F_200E_202B_206C_200E_206C_206F_202D_206F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1085424213), new object[1] { num }); + _logger.LogDebug("UseItem result: {Result}", num); return num == 0; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe bool UseItem(uint dataId, uint itemId) { IGameObject gameObject = FindObjectByDataId(dataId); - int num = ((gameObject == null) ? (-1343850894) : (-1343850890)); - bool result = default(bool); - while (true) + if (gameObject != null) { - int num2 = num; - int num3 = -1343850893; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _targetManager.Target = gameObject; + long num = AgentInventoryContext.Instance()->UseItem(itemId, InventoryType.Invalid, 0u, 0); + _logger.LogDebug("UseItem result on {DataId}: {Result}", dataId, num); + if ((ulong)num <= 1uL) { - case 0: - result = true; - num = -1343850895; - break; - case 1: - return false; - case 4: - num = -1343850890; - break; - case 5: - { - _202D_200B_206B_202B_200E_206A_200F_206D_206D_200B_202A_202E_206D_200C_200F_202B_200D_202C_200D_206F_202E_202D_202E_202C_206E_202A_202E_200F_206A_206C_200C_200F_206B_206F_200E_200E_200B_206C_200C_206D_202E(_targetManager, gameObject); - long num5 = AgentInventoryContext.Instance()->UseItem(itemId, InventoryType.Invalid, 0u, 0); - _200B_200D_200E_202D_206C_202D_200D_202D_206F_200F_200C_206A_200F_202E_200D_200B_206F_200D_202C_202D_206E_206A_200C_202D_200E_200E_202B_200C_202D_206D_200E_206F_200E_202B_206C_200E_206C_206F_202D_206F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1838451938), new object[2] { dataId, num5 }); - num = (((ulong)num5 > 1uL) ? (-1343850896) : (-1343850893)); - break; - } - case 2: - return result; - case 3: - result = false; - num = -1343850895; - break; + return true; } + return false; } + return false; } public unsafe bool UseItemOnGround(uint dataId, uint itemId) { IGameObject gameObject = FindObjectByDataId(dataId); - int num = ((gameObject == null) ? 888380852 : 888380855); - while (true) + if (gameObject != null) { - int num2 = num; - int num3 = 888380853; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return false; - case 2: - { - Vector3 vector = _202C_202A_200C_206D_200E_200F_206F_206C_202C_202E_200F_200C_200F_202B_200D_202C_206A_200C_200B_206A_206C_206C_206E_202E_206C_202B_206A_200C_206B_202E_202E_200F_200C_202D_200E_202E_206F_200E_200B_202E_202E(gameObject); - return ActionManager.Instance()->UseActionLocation(ActionType.EventItem, itemId, 3758096384uL, &vector, 0u, 0); - } - case 0: - goto IL_007a; - } - continue; - IL_007a: - num = 888380855; + Vector3 position = gameObject.Position; + return ActionManager.Instance()->UseActionLocation(ActionType.EventItem, itemId, 3758096384uL, &position, 0u, 0); } + return false; } public unsafe bool UseItemOnPosition(Vector3 position, uint itemId) @@ -422,188 +207,88 @@ internal sealed class GameFunctions return ActionManager.Instance()->UseActionLocation(ActionType.EventItem, itemId, 3758096384uL, &position, 0u, 0); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe bool UseAction(EAction action) { uint num = (uint)(action & (EAction)65535); - int num2 = (((action & (EAction)65536) == (EAction)65536) ? 1130045637 : 1130045635); - ActionType actionType = default(ActionType); - while (true) + ActionType actionType = (((action & (EAction)65536) != (EAction)65536) ? ActionType.Action : ActionType.GeneralAction); + if (actionType == ActionType.Action) { - int num3 = num2; - int num4 = 1130045637; - int num5 = num3; - int num6; - switch ((num5 | num4) - (num5 & num4)) - { - case 1: - num = ActionManager.Instance()->GetAdjustedActionId(num); - num2 = 1130045632; - break; - case 3: - return false; - case 0: - num6 = 5; - goto IL_0084; - case 2: - num2 = 1130045635; - break; - case 4: - { - bool flag = ActionManager.Instance()->UseAction(actionType, num, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); - _200B_200D_200E_202D_206C_202D_200D_202D_206F_200F_200C_206A_200F_202E_200D_200B_206F_200D_202C_202D_206E_206A_200C_202D_200E_200E_202B_200C_202D_206D_200E_206F_200E_202B_206C_200E_206C_206F_202D_206F_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1601213303), new object[3] { action, num, flag }); - return flag; - } - case 6: - num6 = 1; - goto IL_0084; - case 5: - { - num2 = ((ActionManager.Instance()->GetActionStatus(actionType, num, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) != 0) ? 1130045638 : 1130045633); - break; - } - IL_0084: - actionType = (ActionType)num6; - num2 = ((actionType != ActionType.Action) ? 1130045632 : 1130045636); - break; - } + num = ActionManager.Instance()->GetAdjustedActionId(num); } + if (ActionManager.Instance()->GetActionStatus(actionType, num, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) == 0) + { + bool flag = ActionManager.Instance()->UseAction(actionType, num, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); + _logger.LogDebug("UseAction {Action} (adjusted: {AdjustedActionId}) result: {Result}", action, num, flag); + return flag; + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe bool UseAction(IGameObject gameObject, EAction action, bool checkCanUse = true) { - uint num = (uint)(action & (EAction)65535); - int num2 = (((action & (EAction)65536) == (EAction)65536) ? (-1758207256) : (-1758207250)); - bool flag = default(bool); - Lumina.Excel.Sheets.Action row = default(Lumina.Excel.Sheets.Action); - ActionType actionType = default(ActionType); - while (true) + uint actionId = (uint)(action & (EAction)65535); + ActionType actionType = (((action & (EAction)65536) != (EAction)65536) ? ActionType.Action : ActionType.GeneralAction); + if (actionType == ActionType.GeneralAction) { - int num3 = num2; - int num4 = -1758207249; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - int num8; - switch (num6 - (num7 + num7)) - { - case 2: - return flag; - case 4: - _206A_206B_202A_200C_206A_200E_202D_206C_202A_200E_200B_206B_202B_202E_200D_200F_206F_206C_200E_200E_206E_200F_206F_200B_206B_200B_200F_202B_202E_202A_206C_206B_206D_206A_206F_202C_202C_206D_202C_200C_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2035975643), new object[3] { action, num, gameObject }); - return false; - case 1: - num8 = 1; - goto IL_0161; - case 8: - _206A_206B_202A_200C_206A_200E_202D_206C_202A_200E_200B_206B_202B_202E_200D_200F_206F_206C_200E_200E_206E_200F_206F_200B_206B_200B_200F_202B_202E_202A_206C_206B_206D_206A_206F_202C_202C_206D_202C_200C_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-124503162), new object[2] { action, gameObject }); - return false; - case 10: - num2 = -1758207250; - break; - case 0: - row = _dataManager.GetExcelSheet<Lumina.Excel.Sheets.Action>().GetRow(num); - _202D_200B_206B_202B_200E_206A_200F_206D_206D_200B_202A_202E_206D_200C_200F_202B_200D_202C_200D_206F_202E_202D_202E_202C_206E_202A_202E_200F_206A_206C_200C_200F_206B_206F_200E_200E_200B_206C_200C_206D_202E(_targetManager, gameObject); - num2 = ((ActionManager.Instance()->GetActionStatus(actionType, num, _202B_200D_202A_206F_202B_202E_206D_206D_202C_206E_202A_206E_200F_200F_202E_206B_202B_200C_200D_200D_206A_202C_206F_200B_202C_200B_202C_206E_202C_206B_200B_206E_206C_202E_202A_200F_200F_206C_202E_206D_202E(gameObject), checkRecastActive: true, checkCastingActive: true, null) != 0) ? (-1758207258) : (-1758207260)); - break; - case 7: - num8 = 5; - goto IL_0161; - case 6: - num2 = (ActionManager.CanUseActionOnTarget(num, (GameObject*)_206D_206E_202A_202A_202D_206B_200B_202D_200F_200B_206C_202D_200C_206C_206D_202A_202B_206B_206C_206B_206D_202B_202D_206F_206F_200C_200E_200E_200B_206C_206A_202A_206A_206C_206A_200C_200B_202D_202C_206A_202E(gameObject)) ? (-1758207249) : (-1758207253)); - break; - case 11: - num2 = ((!row.TargetArea) ? (-1758207261) : (-1758207252)); - break; - case 3: - { - Vector3 vector = _202C_202A_200C_206D_200E_200F_206F_206C_202C_202E_200F_200C_200F_202B_200D_202C_206A_200C_200B_206A_206C_206C_206E_202E_206C_202B_206A_200C_206B_202E_202E_200F_200C_202D_200E_202E_206F_200E_200B_202E_202E(gameObject); - flag = ActionManager.Instance()->UseActionLocation(actionType, num, 3758096384uL, &vector, 0u, 0); - _200B_200D_200E_202D_206C_202D_200D_202D_206F_200F_200C_206A_200F_202E_200D_200B_206F_200D_202C_202D_206E_206A_200C_202D_200E_200E_202B_200C_202D_206D_200E_206F_200E_202B_206C_200E_206C_206F_202D_206F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-652463398), new object[4] { action, num, gameObject, flag }); - num2 = -1758207251; - break; - } - case 12: - flag = ActionManager.Instance()->UseAction(actionType, num, _202B_200D_202A_206F_202B_202E_206D_206D_202C_206E_202A_206E_200F_200F_202E_206B_202B_200C_200D_200D_206A_202C_206F_200B_202C_200B_202C_206E_202C_206B_200B_206E_206C_202E_202A_200F_200F_206C_202E_206D_202E(gameObject), 0u, ActionManager.UseActionMode.None, 0u, null); - _200B_200D_200E_202D_206C_202D_200D_202D_206F_200F_200C_206A_200F_202E_200D_200B_206F_200D_202C_202D_206E_206A_200C_202D_200E_200E_202B_200C_202D_206D_200E_206F_200E_202B_206C_200E_206C_206F_202D_206F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1081537317), new object[4] { action, num, gameObject, flag }); - num2 = -1758207251; - break; - case 5: - num = ActionManager.Instance()->GetAdjustedActionId(num); - num2 = ((!checkCanUse) ? (-1758207249) : (-1758207255)); - break; - case 9: - { - return false; - } - IL_0161: - actionType = (ActionType)num8; - num2 = ((actionType != ActionType.GeneralAction) ? (-1758207254) : (-1758207257)); - break; - } + _logger.LogWarning("Can not use general action {Action} on target {Target}", action, gameObject); + return false; } + actionId = ActionManager.Instance()->GetAdjustedActionId(actionId); + if (checkCanUse && !ActionManager.CanUseActionOnTarget(actionId, (GameObject*)gameObject.Address)) + { + _logger.LogWarning("Can not use action {Action} (adjusted: {AdjustedActionId}) on target {Target}", action, actionId, gameObject); + return false; + } + Lumina.Excel.Sheets.Action row = _dataManager.GetExcelSheet<Lumina.Excel.Sheets.Action>().GetRow(actionId); + _targetManager.Target = gameObject; + if (ActionManager.Instance()->GetActionStatus(actionType, actionId, gameObject.GameObjectId, checkRecastActive: true, checkCastingActive: true, null) == 0) + { + bool flag; + if (row.TargetArea) + { + Vector3 position = gameObject.Position; + flag = ActionManager.Instance()->UseActionLocation(actionType, actionId, 3758096384uL, &position, 0u, 0); + _logger.LogDebug("UseAction {Action} (adjusted: {AdjustedActionId}) on target area {Target} result: {Result}", action, actionId, gameObject, flag); + } + else + { + flag = ActionManager.Instance()->UseAction(actionType, actionId, gameObject.GameObjectId, 0u, ActionManager.UseActionMode.None, 0u, null); + _logger.LogDebug("UseAction {Action} (adjusted: {AdjustedActionId}) on target {Target} result: {Result}", action, actionId, gameObject, flag); + } + return flag; + } + return false; } public bool IsObjectAtPosition(uint dataId, Vector3 position, float distance) { IGameObject gameObject = FindObjectByDataId(dataId); - int num = ((gameObject == null) ? 1252577697 : 1252577696); - while (true) + if (gameObject != null) { - int num2 = num; - int num3 = 1252577697; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0059; - case 0: - return false; - case 1: - return (_202C_202A_200C_206D_200E_200F_206F_206C_202C_202E_200F_200C_200F_202B_200D_202C_206A_200C_200B_206A_206C_206C_206E_202E_206C_202B_206A_200C_206B_202E_202E_200F_200C_202D_200E_202E_206F_200E_200B_202E_202E(gameObject) - position).Length() < distance; - } - continue; - IL_0059: - num = 1252577696; + return (gameObject.Position - position).Length() < distance; } + return false; } public bool HasStatusPreventingMount() { - return _200B_200E_206E_206D_206B_206F_202B_202D_202B_206B_206F_200F_200F_202C_202A_202B_200C_202B_206A_202A_206F_200C_206E_202B_200F_200F_202D_202A_202B_206A_206A_200C_200B_202B_202A_200B_202B_206A_200E_200C_202E(_gameState); + return _gameState.HasStatusPreventingMount(); } public bool HasStatusPreventingSprint() { - return _206A_202B_200C_200E_202E_200B_206D_202E_202E_200C_206D_206E_206E_200B_206B_206B_206B_206B_202C_206D_206D_202C_202A_200C_206B_202E_202A_200C_206B_200B_200C_206B_206E_206F_202E_206B_200F_202A_206E_206F_202E(_gameState); + return _gameState.HasStatusPreventingSprint(); } public unsafe bool HasStatus(EStatus statusId) { - IPlayerCharacter playerCharacter = _206F_202A_200F_202E_206C_200E_202B_200E_200E_206E_200F_200D_202D_202B_200C_202D_206F_206D_200B_200E_206F_206F_206F_206E_206C_202C_200D_206C_202B_206E_200C_202A_200E_202E_202D_200D_202B_202C_206C_202A_202E(_objectTable); - int num = ((playerCharacter != null) ? 1203210310 : 1203210309); - while (true) + IPlayerCharacter localPlayer = _objectTable.LocalPlayer; + if (localPlayer == null) { - int num2 = num; - int num3 = 1203210308; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0050; - case 2: - { - BattleChara* ptr = (BattleChara*)_206D_206E_202A_202A_202D_206B_200B_202D_200F_200B_206C_202D_200C_206C_206D_202A_202B_206B_206C_206B_206D_202B_202D_206F_206F_200C_200E_200E_200B_206C_206A_202A_206A_206C_206A_200C_200B_202D_202C_206A_202E((IGameObject)playerCharacter); - return ptr->GetStatusManager()->HasStatus((uint)statusId); - } - case 1: - return false; - } - continue; - IL_0050: - num = 1203210309; + return false; } + BattleChara* address = (BattleChara*)localPlayer.Address; + return address->GetStatusManager()->HasStatus((uint)statusId); } public static bool RemoveStatus(EStatus statusId) @@ -613,257 +298,98 @@ internal sealed class GameFunctions public bool Mount() { - return _202D_200F_200F_200C_206B_206A_206B_206E_206E_206E_202A_202A_206A_200B_202D_206C_200B_200F_202E_206C_202B_200E_200D_200D_202C_206D_206D_206E_200B_202A_206C_206E_206C_202D_200B_206F_206F_200E_202C_200E_202E(_gameState, _configuration.Navigation.MountId); + return _gameState.Mount(_configuration.Navigation.MountId); } public bool Unmount() { - return _206B_200F_206B_206E_202C_202A_200B_200B_206F_202C_200B_200E_202D_200C_206E_202D_206D_200C_200B_206A_206F_200F_206E_200B_206A_206B_202E_202B_202E_200D_202B_200F_202D_202E_206A_206A_200E_200B_200D_206C_202E(_gameState); + return _gameState.Unmount(); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe void OpenDutyFinder(uint contentFinderConditionId) { - uint value; - int num = ((!_contentFinderConditionToContentId.TryGetValue(contentFinderConditionId, out value)) ? (-161194421) : (-161194419)); - while (true) + if (_contentFinderConditionToContentId.TryGetValue(contentFinderConditionId, out var value)) { - int num2 = num; - int num3 = -161194417; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (UIState.IsInstanceContentUnlocked(value)) { - case 3: - _206B_202A_200C_202E_200E_206B_200B_206A_200B_206D_202E_202C_202D_206C_206C_206A_200F_206B_202C_200D_202D_202B_206D_206F_206C_202D_206E_200E_202B_200E_200D_202B_206A_206E_200D_200D_206D_200B_206B_200D_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(925011176), new object[2] { contentFinderConditionId, value }); - return; - case 2: - num = ((!UIState.IsInstanceContentUnlocked(value)) ? (-161194420) : (-161194418)); - break; - case 4: - _206B_202A_200C_202E_200E_206B_200B_206A_200B_206D_202E_202C_202D_206C_206C_206A_200F_206B_202C_200D_202D_202B_206D_206F_206C_202D_206E_200E_202B_200E_200D_202B_206A_206E_200D_200D_206D_200B_206B_200D_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1235394690), new object[1] { contentFinderConditionId }); - return; - case 1: AgentContentsFinder.Instance()->OpenRegularDuty(contentFinderConditionId); return; - case 0: - num = -161194419; - break; } + _logger.LogError("Trying to access a locked duty (cf: {ContentFinderId}, content: {ContentId})", contentFinderConditionId, value); + } + else + { + _logger.LogError("Could not find content for content finder condition (cf: {ContentFinderId})", contentFinderConditionId); } } public static bool GameStringEquals(string? a, string? b) { - int num = ((a != null) ? 728092045 : 728092040); - while (true) + if (a == null) { - int num2 = num; - int num3 = 728092041; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - return false; - case 4: - num = ((b != null) ? 728092044 : 728092047); - break; - case 3: - return true; - case 0: - num = 728092040; - break; - case 2: - return _206D_202C_202B_200C_200C_206C_206D_206B_202D_202C_200C_206D_200F_202C_200B_200B_200D_206E_206A_206A_200F_200E_206D_206E_200B_200E_202D_206D_202C_202E_206F_200D_200E_206F_206D_206B_200D_202E_202D_206B_202E(NormalizeGameString(a), NormalizeGameString(b)); - case 5: - num = ((!_206D_202C_202B_200C_200C_206C_206D_206B_202D_202C_200C_206D_200F_202C_200B_200B_200D_206E_206A_206A_200F_200E_206D_206E_200B_200E_202D_206D_202C_202E_206F_200D_200E_206F_206D_206B_200D_202E_202D_206B_202E(a, b)) ? 728092043 : 728092042); - break; - case 1: - return b == null; - } + return b == null; } + if (b == null) + { + return false; + } + if (a == b) + { + return true; + } + return NormalizeGameString(a) == NormalizeGameString(b); } - [MethodImpl(MethodImplOptions.NoInlining)] private static string NormalizeGameString(string value) { - int num = ((!_206B_206A_206F_202E_206F_206F_206D_200C_200E_200B_200D_200E_200E_206E_206F_200E_206A_202A_202A_206A_202D_200D_206A_202B_200B_202B_200D_206E_202D_200E_200C_200C_200D_206E_206E_200E_202A_206A_202C_206E_202E(value, '<', StringComparison.Ordinal)) ? (-1423448910) : (-1423448911)); - while (true) + if (value.Contains('<', StringComparison.Ordinal)) { - int num2 = num; - int num3 = -1423448912; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1423448911; - break; - case 2: - return _200F_200E_206B_200D_200C_206E_200F_200E_202A_200D_206A_202D_200F_206F_200B_200C_200E_200B_206C_206B_206D_202E_200E_206A_206B_200E_202D_202A_200D_206B_202B_200C_202A_206E_200E_200C_206F_206E_202D_206A_202E(_200C_206D_202C_202A_202E_202D_206D_206D_202E_202E_206B_206E_206E_200C_200F_202E_202A_202A_206C_206F_206D_200F_206A_206D_206C_200B_202A_200C_202A_202C_206F_206F_200D_200D_206B_206F_206F_202B_202B_206D_202E(_200B_202D_206D_200B_206E_202A_200D_206B_202E_206A_202A_200D_202D_202D_206A_202C_206E_206E_200B_206F_202C_200B_206C_206F_200F_200D_206A_200D_200D_200D_202B_202A_206D_200F_200F_202C_206C_206F_200C_206A_202E(_206B_200F_200D_200E_202C_200F_200C_202D_200B_206C_202C_206E_206B_200F_200F_200C_206E_202E_206E_200E_206D_200C_206C_202E_202E_202B_206E_202E_206A_200E_202B_206A_206A_200D_200E_202A_206F_200C_202C_200E_202E(value), '–', '-'), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1413166639), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-87324410), StringComparison.Ordinal)); - case 1: - value = _200D_200F_206C_200E_206F_200B_206E_206B_206E_206A_206A_200E_202D_202D_206B_206F_200C_206A_202B_202E_200C_202B_202B_206C_200F_200F_202C_206E_202D_206B_206A_206D_206A_202E_200E_206F_206F_200E_200D_202D_202E(MacroLiteralRegex, value, string.Empty); - num = -1423448910; - break; - } + value = MacroLiteralRegex.Replace(value, string.Empty); } + return value.ReplaceLineEndings().Replace('–', '-').Replace("\u00ad", "", StringComparison.Ordinal) + .Trim(); } public unsafe bool IsOccupied() { - int num = ((!_200F_206B_202B_200C_206A_206E_200F_200D_200C_200C_200E_202D_200F_200E_200D_202E_202C_200F_206D_200C_200D_200F_202E_200F_200B_202B_202C_200B_202C_200C_202B_200B_202E_200D_200E_200D_200F_202D_206A_200D_202E(_clientState)) ? 1381723980 : 1381723991); - while (true) + if (!_clientState.IsLoggedIn || _objectTable.LocalPlayer == null) { - int num2 = num; - int num3 = 1381723978; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return true; + } + if (IsLoadingScreenVisible()) + { + return true; + } + if (_condition[ConditionFlag.Crafting]) + { + if (!AgentRecipeNote.Instance()->IsAgentActive()) { - case 16: - num = (_206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(_condition, ConditionFlag.Occupied33) ? 1381723979 : 1381723977); - break; - case 23: - num = (_206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(_condition, ConditionFlag.PreparingToCraft) ? 1381723970 : 1381723985); - break; - case 29: - num = ((_206F_202A_200F_202E_206C_200E_202B_200E_200E_206E_200F_200D_202D_202B_200C_202D_206F_206D_200B_200E_206F_206F_206F_206E_206C_202C_200D_206C_202B_206E_200C_202A_200E_202E_202D_200D_202B_202C_206C_202A_202E(_objectTable) != null) ? 1381723969 : 1381723980); - break; - case 2: - num = (AgentRecipeNote.Instance()->IsAgentActive() ? 1381723997 : 1381723983); - break; - case 7: - num = (_206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(_condition, ConditionFlag.Occupied39) ? 1381723979 : 1381723986); - break; - case 21: - return _206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(_condition, ConditionFlag.Jumping); - case 27: return true; - case 11: - num = ((!IsLoadingScreenVisible()) ? 1381723972 : 1381723993); - break; - case 15: - num = ((!_206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(_condition, ConditionFlag.SufferingStatusAffliction63)) ? 1381723968 : 1381723995); - break; - case 18: - num = (_206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(_condition, ConditionFlag.BetweenAreas51) ? 1381723979 : 1381723998); - break; - case 1: + } + if (!_condition[ConditionFlag.PreparingToCraft]) + { return true; - case 6: - return true; - case 20: - num = (_206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(_condition, ConditionFlag.Jumping61) ? 1381723979 : 1381723971); - break; - case 5: - return true; - case 25: - num = (_206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(_condition, ConditionFlag.BetweenAreas) ? 1381723979 : 1381723992); - break; - case 17: - num = ((_206B_202D_206E_206A_202C_200F_202B_202E_206A_206C_206D_200E_206E_202D_206B_202C_206C_200E_200C_200F_206A_200F_200B_206D_202E_206E_200D_202B_206E_206C_206F_200E_202B_202E_202C_202C_206C_206A_200C_206D_202E(_clientState) != 1052) ? 1381723968 : 1381723974); - break; - case 9: - num = (_206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(_condition, ConditionFlag.ExecutingGatheringAction) ? 1381723979 : 1381723999); - break; - case 13: - num = 1381723991; - break; - case 4: - num = (_206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(_condition, ConditionFlag.Occupied30) ? 1381723979 : 1381723994); - break; - case 28: - num = (_206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(_condition, ConditionFlag.OccupiedInCutSceneEvent) ? 1381723979 : 1381723984); - break; - case 12: - return false; - case 0: - num = (_206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(_condition, ConditionFlag.OccupiedInQuestEvent) ? 1381723979 : 1381723990); - break; - case 24: - num = (_206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(_condition, ConditionFlag.OccupiedInEvent) ? 1381723979 : 1381723978); - break; - case 3: - num = (_206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(_condition, ConditionFlag.Occupied38) ? 1381723979 : 1381723981); - break; - case 19: - return true; - case 26: - num = (_206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(_condition, ConditionFlag.Casting) ? 1381723979 : 1381723996); - break; - case 14: - num = ((!_206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(_condition, ConditionFlag.Crafting)) ? 1381723970 : 1381723976); - break; - case 10: - num = (_206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(_condition, ConditionFlag.Occupied) ? 1381723979 : 1381723982); - break; - case 22: - num = (_206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(_condition, ConditionFlag.MountOrOrnamentTransition) ? 1381723979 : 1381723987); - break; - case 8: - num = ((!_206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(_condition, ConditionFlag.Unconscious)) ? 1381723968 : 1381723973); - break; } } - } - - public unsafe bool IsOccupiedWithCustomDeliveryNpc(Questionable.Model.Quest? currentQuest) - { - int num = ((currentQuest == null) ? 1849968251 : 1849968246); - HashSet<ConditionFlag> hashSet = default(HashSet<ConditionFlag>); - while (true) + if (_condition[ConditionFlag.Unconscious] && _condition[ConditionFlag.SufferingStatusAffliction63] && _clientState.TerritoryType == 1052) { - int num2 = num; - int num3 = 1849968241; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = 1849968246; - break; - case 2: - num = ((_202E_200B_202C_206E_206F_206E_202E_206A_202B_206E_200E_206C_200D_206E_202B_206F_206E_200B_200B_200D_206B_206C_200D_202A_206B_206E_206D_200C_200F_206F_200E_206C_202E_206F_202E_206C_206A_206B_206A_202E_202E(_targetManager) == null) ? 1849968249 : 1849968244); - break; - case 5: - num = ((_202A_200F_200B_206E_206D_202B_206E_206B_200C_202D_202B_200E_206A_202D_206F_200F_202C_202E_206C_202B_202E_200E_202E_202C_200D_200C_200D_202C_206F_200F_202C_202E_202B_202E_206B_206F_206B_206E_206F_200D_202E(_202E_200B_202C_206E_206F_206E_202E_206A_202B_206E_200E_206C_200D_206E_202B_206F_206E_200B_200B_200D_206B_206C_200D_202A_206B_206E_206D_200C_200F_206F_200E_206C_202E_206F_202E_206C_206A_206B_206A_202E_202E(_targetManager)) == currentQuest.Info.IssuerDataId) ? 1849968248 : 1849968249); - break; - case 3: - hashSet = _206D_200F_200C_206F_206B_202A_206E_200D_206F_200E_200D_200D_206C_200E_200D_206D_200D_206B_200E_202D_202A_200E_200D_200F_202D_202C_200F_200C_206B_202E_200E_206A_202D_200B_200F_206B_202C_200E_200F_202C_202E(_condition).ToHashSet(); - hashSet.Remove(ConditionFlag.InDutyQueue); - num = ((hashSet.Count != 2) ? 1849968247 : 1849968240); - break; - case 6: - return false; - case 0: - return hashSet.Contains(ConditionFlag.OccupiedInQuestEvent); - case 1: - num = ((!hashSet.Contains(ConditionFlag.NormalConditions)) ? 1849968247 : 1849968241); - break; - case 9: - num = (AgentSatisfactionSupply.Instance()->IsAgentActive() ? 1849968242 : 1849968250); - break; - case 11: - return false; - case 10: - return false; - case 7: - num = ((currentQuest.Info is SatisfactionSupplyInfo) ? 1849968243 : 1849968251); - break; - case 8: - return false; - } + return false; } + if (!_condition[ConditionFlag.Occupied] && !_condition[ConditionFlag.Occupied30] && !_condition[ConditionFlag.Occupied33] && !_condition[ConditionFlag.Occupied38] && !_condition[ConditionFlag.Occupied39] && !_condition[ConditionFlag.OccupiedInEvent] && !_condition[ConditionFlag.OccupiedInQuestEvent] && !_condition[ConditionFlag.OccupiedInCutSceneEvent] && !_condition[ConditionFlag.Casting] && !_condition[ConditionFlag.MountOrOrnamentTransition] && !_condition[ConditionFlag.BetweenAreas] && !_condition[ConditionFlag.BetweenAreas51] && !_condition[ConditionFlag.Jumping61] && !_condition[ConditionFlag.ExecutingGatheringAction]) + { + return _condition[ConditionFlag.Jumping]; + } + return true; } public bool IsLoadingScreenVisible() { - return _206B_200B_202E_200C_206E_202E_202A_200B_206D_206C_206C_200F_200D_206B_206F_202B_202E_200E_200E_206F_206B_202B_202A_206E_206A_206D_202D_202D_200F_200B_202B_202D_202E_202A_202B_200F_200B_206D_202D_200D_202E(_gameState); + return _gameState.IsLoadingScreenVisible(); } public int GetFreeInventorySlots() { - return _202C_200E_202E_206E_206D_206C_206B_202B_200B_202D_206D_206F_200B_200F_202D_206A_206D_202E_200B_202D_200C_206F_200B_202A_200B_206D_200F_200D_202A_206F_202D_206E_202E_200D_206F_200B_206B_206C_202A_206E_202E(_gameState).GetValueOrDefault(); + return _gameState.GetFreeInventorySlots().GetValueOrDefault(); } public void AbandonDuty() @@ -871,372 +397,84 @@ internal sealed class GameFunctions _abandonDuty(a1: false); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe IReadOnlyList<uint> GetUnlockLinks() { UIState* ptr = UIState.Instance(); - int num = ((ptr != null) ? (-1353490127) : (-1353490121)); - uint num8 = default(uint); - List<uint> list = default(List<uint>); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -1353490124; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + _logger.LogError("Could not query unlock links"); + return Array.Empty<uint>(); + } + List<uint> list = new List<uint>(); + for (uint num = 0u; num < ptr->UnlockLinksBitArray.ByteLength * 8; num++) + { + if (ptr->IsUnlockLinkUnlocked(num)) { - case 4: - num = ((!ptr->IsUnlockLinkUnlocked(num8)) ? (-1353490125) : (-1353490126)); - break; - case 6: - list.Add(num8); - num = -1353490125; - break; - case 5: - list = new List<uint>(); - num8 = 0u; - num = -1353490123; - break; - case 0: - num = -1353490121; - break; - case 3: - _206B_202A_200C_202E_200E_206B_200B_206A_200B_206D_202E_202C_202D_206C_206C_206A_200F_206B_202C_200D_202D_202B_206D_206F_206C_202D_206E_200E_202B_200E_200D_202B_206A_206E_200D_200D_206D_200B_206B_200D_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(221322502), Array.Empty<object>()); - return Array.Empty<uint>(); - case 2: - _200B_200D_200E_202D_206C_202D_200D_202D_206F_200F_200C_206A_200F_202E_200D_200B_206F_200D_202C_202D_206E_206A_200C_202D_200E_200E_202B_200C_202D_206D_200E_206F_200E_202B_206C_200E_206C_206F_202D_206F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(430632350), new object[1] { string.Join(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1087086507), list) }); - return list; - case 1: - num = ((num8 < ptr->UnlockLinksBitArray.ByteLength * 8) ? (-1353490128) : (-1353490122)); - break; - case 7: - { - uint num7 = num8; - num3 = 1; - num4 = (int)num7; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - num8 = (uint)(num9 + (num10 + num10)); - num = -1353490123; - break; - } + list.Add(num); } } + _logger.LogDebug("Unlocked unlock links: {UnlockedUnlockLinks}", string.Join(", ", list)); + return list; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe bool SyncToFate(uint fateId) { - IPlayerCharacter playerCharacter = _206F_202A_200F_202E_206C_200E_202B_200E_200E_206E_200F_200D_202D_202B_200C_202D_206F_206D_200B_200E_206F_206F_206F_206E_206C_202C_200D_206C_202B_206E_200C_202A_200E_202E_202D_200D_202B_202C_206C_202A_202E(_objectTable); - int num = ((playerCharacter != null) ? (-1314333021) : (-1314333022)); - FateManager* ptr = default(FateManager*); - FateContext* currentFate = default(FateContext*); - byte maxLevel = default(byte); - while (true) + IPlayerCharacter localPlayer = _objectTable.LocalPlayer; + if (localPlayer == null) { - int num2 = num; - int num3 = -1314333023; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - ptr = FateManager.Instance(); - num = ((ptr == null) ? (-1314333018) : (-1314333024)); - break; - case 0: - currentFate = ptr->CurrentFate; - maxLevel = currentFate->MaxLevel; - num = ((_206C_206D_200D_206A_206C_202D_206E_202A_200B_206E_200C_200F_200D_200B_202C_206B_206E_202B_200D_206A_200D_202A_202E_206B_206F_200D_206C_206B_200E_202C_202A_200B_206A_206D_202D_206B_202C_206F_206F_200E_202E((ICharacter)playerCharacter) > maxLevel) ? (-1314333019) : (-1314333017)); - break; - case 7: - return false; - case 3: - _206A_206B_202A_200C_206A_200E_202D_206C_202A_200E_200B_206B_202B_202E_200D_200F_206F_206C_200E_200E_206E_200F_206F_200B_206B_200B_200F_202B_202E_202A_206C_206B_206D_206A_206F_202C_202C_206D_202C_200C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1286612770), Array.Empty<object>()); - return false; - case 5: - num = -1314333022; - break; - case 6: - return true; - case 1: - num = ((ptr->CurrentFate != null) ? (-1314333023) : (-1314333018)); - break; - case 4: - try - { - _200B_200D_200E_202D_206C_202D_200D_202D_206F_200F_200C_206A_200F_202E_200D_200B_206F_200D_202C_202D_206E_206A_200C_202D_200E_200E_202B_200C_202D_206D_200E_206F_200E_202B_206C_200E_206C_206F_202D_206F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1871009359), new object[2] - { - currentFate->FateId, - maxLevel - }); - ExecuteCommand(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(19767302)); - return true; - } - catch (Exception ex) - { - _206A_202D_200F_200E_206D_202C_206C_202A_206B_200B_206B_206E_206A_202C_202C_202C_200B_206E_202C_206E_206C_202E_202B_206C_202B_200C_206D_206E_200D_206D_206E_200C_206E_202C_206D_206F_200F_202C_200D_202E_202E((ILogger)_logger, ex, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-440333270), new object[1] { fateId }); - return false; - } - } + _logger.LogWarning("Cannot sync to FATE: LocalPlayer is null"); + return false; + } + FateManager* ptr = FateManager.Instance(); + if (ptr == null || ptr->CurrentFate == null) + { + return false; + } + FateContext* currentFate = ptr->CurrentFate; + byte maxLevel = currentFate->MaxLevel; + if (localPlayer.Level <= maxLevel) + { + return true; + } + try + { + _logger.LogDebug("Syncing to FATE {FateId} (max level {MaxLevel})", currentFate->FateId, maxLevel); + ExecuteCommand("/lsync"); + return true; + } + catch (Exception exception) + { + _logger.LogError(exception, "Failed to sync to FATE {FateId}", fateId); + return false; } } public ushort GetCurrentFateId() { - PublicEvent? publicEvent = _200F_202A_206F_206A_200D_206C_206B_206C_200E_206A_206A_206A_200D_202E_206F_200C_202D_202B_202C_206E_206E_200D_202C_200F_202E_206A_200D_206A_206A_200D_206D_202B_206B_202B_200F_206A_202E_206E_202C_202E_202E(_publicEventHelper); - int num = ((!publicEvent.HasValue) ? (-1016300898) : (-1016300900)); - PublicEvent valueOrDefault = default(PublicEvent); - while (true) + PublicEvent? currentPlayerEvent = _publicEventHelper.GetCurrentPlayerEvent(); + if (currentPlayerEvent.HasValue) { - int num2 = num; - int num3 = -1016300899; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + PublicEvent valueOrDefault = currentPlayerEvent.GetValueOrDefault(); + if (valueOrDefault.Type == EPublicEventType.Fate) { - case 0: - num = -1016300900; - break; - case 2: return (ushort)valueOrDefault.Id; - case 1: - valueOrDefault = publicEvent.GetValueOrDefault(); - num = ((valueOrDefault.Type == EPublicEventType.Fate) ? (-1016300897) : (-1016300898)); - break; - case 3: - return 0; } } + return 0; } public bool IsFateStillActive(ushort fateId) { - return _200B_206A_200D_200E_206C_200B_206F_206F_200E_206E_206C_200B_206D_206D_202A_206D_206D_206C_202E_206F_202B_200B_206E_206B_200B_206B_202B_200E_206C_202E_202A_202A_206E_206C_206F_200B_206C_202C_206F_200F_202E(_publicEventHelper, fateId); + return _publicEventHelper.IsFateActive(fateId); } public uint GetItemLevel(uint itemId) { - return _202D_206D_206F_200E_200E_200C_206F_200B_202C_206B_206B_202E_202B_206C_206D_206C_200F_206C_202D_200E_200E_206C_200E_202A_200C_200F_200F_200C_200F_200F_206E_200B_206B_206F_206A_206E_200D_206B_200F_202B_202E(_gameState, itemId); + return _gameState.GetItemLevel(itemId); } private static void ExecuteCommand(string command) { - _200C_202E_202E_206B_206B_206A_200E_200C_202C_202A_202D_200D_206E_200E_200E_200B_206D_206A_206E_202A_202A_200F_202C_206A_202C_202C_200E_206A_206E_202C_200F_200E_206B_206B_206E_206D_202E_200D_200B_206E_202E(command); - } - - static QuestId _202A_206D_206C_206A_202C_202C_202B_206E_206D_202C_200F_202D_200D_202E_200B_200C_202D_202B_202A_206B_202A_202D_206E_206A_202C_200F_206A_200C_200B_206E_200F_200C_200C_206D_200F_200E_206B_206A_200B_202C_202E(ushort P_0) - { - return new QuestId(P_0); - } - - static bool _206E_206C_206C_202C_202C_206C_206F_206B_200D_206B_206E_206F_202D_202C_206E_202A_202D_206E_202B_202E_200E_200F_206F_202E_206D_206D_206D_202C_206A_206D_206F_200B_200F_206B_200F_202D_200B_200C_202E_200C_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static bool _202B_202C_206D_206E_200C_206D_206C_206E_200E_206F_206F_206C_202A_202B_202E_202D_206B_202C_206F_200C_200F_206A_202B_206E_206D_206C_202A_202B_206C_202A_206B_206E_206A_206E_200F_200C_206E_200E_202C_200C_202E(GameStateHelper P_0, uint P_1) - { - return P_0.IsFlyingUnlocked(P_1); - } - - static ushort? _200B_200E_206F_202A_202E_200E_200C_206E_206A_206A_206A_206F_200B_206C_202B_200C_206B_202C_200E_200B_202E_206A_202E_202E_202D_206A_202A_200D_206C_206D_206C_200D_200C_206D_206A_200E_206F_206C_202D_206A_202E(GameStateHelper P_0) - { - return P_0.GetMountId(); - } - - static uint _206B_202D_206E_206A_202C_200F_202B_202E_206A_206C_206D_200E_206E_202D_206B_202C_206C_200E_200C_200F_206A_200F_200B_206D_202E_206E_200D_202B_206E_206C_206F_200E_202B_202E_202C_202C_206C_206A_200C_206D_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static bool _202C_206E_206E_200D_206D_202A_200B_202A_200E_200C_206E_206A_202E_200B_202E_202E_200B_206B_202C_202A_202B_206F_202A_206D_206C_200F_202E_200D_202A_200D_206B_206D_206A_200B_206C_206D_206E_206A_206E_206B_202E(uint P_0) - { - return PlayerStateHelper.IsAetherCurrentUnlocked(P_0); - } - - static IGameObject _200E_200B_206B_202E_202B_200C_206D_206D_200E_200B_200F_206C_206C_202D_202D_200C_200B_200E_206A_200C_202D_206A_206F_200D_200D_200C_206C_206E_202D_202E_200C_200D_202A_206E_202D_200F_200E_206F_206E_200C_202E(IObjectTable P_0, int P_1) - { - return P_0[P_1]; - } - - static Dalamud.Game.ClientState.Objects.Enums.ObjectKind _206D_202C_200F_200B_202C_200B_200B_206C_206C_206E_200F_202B_206F_200E_202B_200C_200B_200D_200F_206E_206D_206B_200F_202E_206C_202C_202C_202C_200E_206F_200F_200E_200B_206C_206D_206B_202D_202D_206A_202D_202E(IGameObject P_0) - { - return P_0.ObjectKind; - } - - static bool _200F_200C_202B_200D_206D_200F_200F_200F_206A_202E_200F_202A_206B_200F_200B_200D_206C_202C_206A_206E_206A_202C_206F_206B_202E_200F_206D_202D_206D_200D_200C_206A_202D_206F_202D_200D_206D_206D_202C_206A_202E(IGameObject P_0) - { - return P_0.IsTargetable; - } - - static uint _202A_200F_200B_206E_206D_202B_206E_206B_200C_202D_202B_200E_206A_202D_206F_200F_202C_202E_206C_202B_202E_200E_202E_202C_200D_200C_200D_202C_206F_200F_202C_202E_202B_202E_206B_206F_206B_206E_206F_200D_202E(IGameObject P_0) - { - return P_0.BaseId; - } - - static int _202D_206E_206D_200C_200E_200F_200D_200C_200C_202B_206F_202B_202C_206F_206B_200C_202C_202C_206A_206D_202C_206C_200D_200C_200F_202D_200E_206D_202B_202B_200F_202B_206F_202E_202E_206E_202A_206A_206C_206F_202E(IObjectTable P_0) - { - return P_0.Length; - } - - static void _206A_206B_202A_200C_206A_200E_202D_206C_202A_200E_200B_206B_202B_202E_200D_200F_206F_206C_200E_200E_206E_200F_206F_200B_206B_200B_200F_202B_202E_202A_206C_206B_206D_206A_206F_202C_202C_206D_202C_200C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static void _200B_200D_200E_202D_206C_202D_200D_202D_206F_200F_200C_206A_200F_202E_200D_200B_206F_200D_202C_202D_206E_206A_200C_202D_200E_200E_202B_200C_202D_206D_200E_206F_200E_202B_206C_200E_206C_206F_202D_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static uint _200E_206F_200B_200E_206D_206D_200E_202E_200B_200F_206D_202E_202C_202E_202C_202A_206F_200F_206C_200D_206E_206B_206B_206D_202B_202C_200B_202E_200C_202B_206A_202E_202C_202A_206A_206A_202E_206C_200D_200E_202E(IGameObject P_0) - { - return P_0.EntityId; - } - - static void _202D_200B_206B_202B_200E_206A_200F_206D_206D_200B_202A_202E_206D_200C_200F_202B_200D_202C_200D_206F_202E_202D_202E_202C_206E_202A_202E_200F_206A_206C_200C_200F_206B_206F_200E_200E_200B_206C_200C_206D_202E(ITargetManager P_0, IGameObject P_1) - { - P_0.Target = P_1; - } - - static nint _206D_206E_202A_202A_202D_206B_200B_202D_200F_200B_206C_202D_200C_206C_206D_202A_202B_206B_206C_206B_206D_202B_202D_206F_206F_200C_200E_200E_200B_206C_206A_202A_206A_206C_206A_200C_200B_202D_202C_206A_202E(IGameObject P_0) - { - return P_0.Address; - } - - static Vector3 _202C_202A_200C_206D_200E_200F_206F_206C_202C_202E_200F_200C_200F_202B_200D_202C_206A_200C_200B_206A_206C_206C_206E_202E_206C_202B_206A_200C_206B_202E_202E_200F_200C_202D_200E_202E_206F_200E_200B_202E_202E(IGameObject P_0) - { - return P_0.Position; - } - - static ulong _202B_200D_202A_206F_202B_202E_206D_206D_202C_206E_202A_206E_200F_200F_202E_206B_202B_200C_200D_200D_206A_202C_206F_200B_202C_200B_202C_206E_202C_206B_200B_206E_206C_202E_202A_200F_200F_206C_202E_206D_202E(IGameObject P_0) - { - return P_0.GameObjectId; - } - - static bool _200B_200E_206E_206D_206B_206F_202B_202D_202B_206B_206F_200F_200F_202C_202A_202B_200C_202B_206A_202A_206F_200C_206E_202B_200F_200F_202D_202A_202B_206A_206A_200C_200B_202B_202A_200B_202B_206A_200E_200C_202E(GameStateHelper P_0) - { - return P_0.HasStatusPreventingMount(); - } - - static bool _206A_202B_200C_200E_202E_200B_206D_202E_202E_200C_206D_206E_206E_200B_206B_206B_206B_206B_202C_206D_206D_202C_202A_200C_206B_202E_202A_200C_206B_200B_200C_206B_206E_206F_202E_206B_200F_202A_206E_206F_202E(GameStateHelper P_0) - { - return P_0.HasStatusPreventingSprint(); - } - - static IPlayerCharacter _206F_202A_200F_202E_206C_200E_202B_200E_200E_206E_200F_200D_202D_202B_200C_202D_206F_206D_200B_200E_206F_206F_206F_206E_206C_202C_200D_206C_202B_206E_200C_202A_200E_202E_202D_200D_202B_202C_206C_202A_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static bool _202D_200F_200F_200C_206B_206A_206B_206E_206E_206E_202A_202A_206A_200B_202D_206C_200B_200F_202E_206C_202B_200E_200D_200D_202C_206D_206D_206E_200B_202A_206C_206E_206C_202D_200B_206F_206F_200E_202C_200E_202E(GameStateHelper P_0, uint P_1) - { - return P_0.Mount(P_1); - } - - static bool _206B_200F_206B_206E_202C_202A_200B_200B_206F_202C_200B_200E_202D_200C_206E_202D_206D_200C_200B_206A_206F_200F_206E_200B_206A_206B_202E_202B_202E_200D_202B_200F_202D_202E_206A_206A_200E_200B_200D_206C_202E(GameStateHelper P_0) - { - return P_0.Unmount(); - } - - static void _206B_202A_200C_202E_200E_206B_200B_206A_200B_206D_202E_202C_202D_206C_206C_206A_200F_206B_202C_200D_202D_202B_206D_206F_206C_202D_206E_200E_202B_200E_200D_202B_206A_206E_200D_200D_206D_200B_206B_200D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogError(P_1, P_2); - } - - static bool _206D_202C_202B_200C_200C_206C_206D_206B_202D_202C_200C_206D_200F_202C_200B_200B_200D_206E_206A_206A_200F_200E_206D_206E_200B_200E_202D_206D_202C_202E_206F_200D_200E_206F_206D_206B_200D_202E_202D_206B_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static bool _206B_206A_206F_202E_206F_206F_206D_200C_200E_200B_200D_200E_200E_206E_206F_200E_206A_202A_202A_206A_202D_200D_206A_202B_200B_202B_200D_206E_202D_200E_200C_200C_200D_206E_206E_200E_202A_206A_202C_206E_202E(string P_0, char P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); - } - - static string _200D_200F_206C_200E_206F_200B_206E_206B_206E_206A_206A_200E_202D_202D_206B_206F_200C_206A_202B_202E_200C_202B_202B_206C_200F_200F_202C_206E_202D_206B_206A_206D_206A_202E_200E_206F_206F_200E_200D_202D_202E(Regex P_0, string P_1, string P_2) - { - return P_0.Replace(P_1, P_2); - } - - static string _206B_200F_200D_200E_202C_200F_200C_202D_200B_206C_202C_206E_206B_200F_200F_200C_206E_202E_206E_200E_206D_200C_206C_202E_202E_202B_206E_202E_206A_200E_202B_206A_206A_200D_200E_202A_206F_200C_202C_200E_202E(string P_0) - { - return P_0.ReplaceLineEndings(); - } - - static string _200B_202D_206D_200B_206E_202A_200D_206B_202E_206A_202A_200D_202D_202D_206A_202C_206E_206E_200B_206F_202C_200B_206C_206F_200F_200D_206A_200D_200D_200D_202B_202A_206D_200F_200F_202C_206C_206F_200C_206A_202E(string P_0, char P_1, char P_2) - { - return P_0.Replace(P_1, P_2); - } - - static string _200C_206D_202C_202A_202E_202D_206D_206D_202E_202E_206B_206E_206E_200C_200F_202E_202A_202A_206C_206F_206D_200F_206A_206D_206C_200B_202A_200C_202A_202C_206F_206F_200D_200D_206B_206F_206F_202B_202B_206D_202E(string P_0, string P_1, string P_2, StringComparison P_3) - { - return P_0.Replace(P_1, P_2, P_3); - } - - static string _200F_200E_206B_200D_200C_206E_200F_200E_202A_200D_206A_202D_200F_206F_200B_200C_200E_200B_206C_206B_206D_202E_200E_206A_206B_200E_202D_202A_200D_206B_202B_200C_202A_206E_200E_200C_206F_206E_202D_206A_202E(string P_0) - { - return P_0.Trim(); - } - - static bool _200F_206B_202B_200C_206A_206E_200F_200D_200C_200C_200E_202D_200F_200E_200D_202E_202C_200F_206D_200C_200D_200F_202E_200F_200B_202B_202C_200B_202C_200C_202B_200B_202E_200D_200E_200D_200F_202D_206A_200D_202E(IClientState P_0) - { - return P_0.IsLoggedIn; - } - - static IGameObject _202E_200B_202C_206E_206F_206E_202E_206A_202B_206E_200E_206C_200D_206E_202B_206F_206E_200B_200B_200D_206B_206C_200D_202A_206B_206E_206D_200C_200F_206F_200E_206C_202E_206F_202E_206C_206A_206B_206A_202E_202E(ITargetManager P_0) - { - return P_0.Target; - } - - static IReadOnlySet<ConditionFlag> _206D_200F_200C_206F_206B_202A_206E_200D_206F_200E_200D_200D_206C_200E_200D_206D_200D_206B_200E_202D_202A_200E_200D_200F_202D_202C_200F_200C_206B_202E_200E_206A_202D_200B_200F_206B_202C_200E_200F_202C_202E(ICondition P_0) - { - return P_0.AsReadOnlySet(); - } - - static bool _206B_200B_202E_200C_206E_202E_202A_200B_206D_206C_206C_200F_200D_206B_206F_202B_202E_200E_200E_206F_206B_202B_202A_206E_206A_206D_202D_202D_200F_200B_202B_202D_202E_202A_202B_200F_200B_206D_202D_200D_202E(GameStateHelper P_0) - { - return P_0.IsLoadingScreenVisible(); - } - - static int? _202C_200E_202E_206E_206D_206C_206B_202B_200B_202D_206D_206F_200B_200F_202D_206A_206D_202E_200B_202D_200C_206F_200B_202A_200B_206D_200F_200D_202A_206F_202D_206E_202E_200D_206F_200B_206B_206C_202A_206E_202E(GameStateHelper P_0) - { - return P_0.GetFreeInventorySlots(); - } - - static byte _206C_206D_200D_206A_206C_202D_206E_202A_200B_206E_200C_200F_200D_200B_202C_206B_206E_202B_200D_206A_200D_202A_202E_206B_206F_200D_206C_206B_200E_202C_202A_200B_206A_206D_202D_206B_202C_206F_206F_200E_202E(ICharacter P_0) - { - return P_0.Level; - } - - static void _206A_202D_200F_200E_206D_202C_206C_202A_206B_200B_206B_206E_206A_202C_202C_202C_200B_206E_202C_206E_206C_202E_202B_206C_202B_200C_206D_206E_200D_206D_206E_200C_206E_202C_206D_206F_200F_202C_200D_202E_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - - static PublicEvent? _200F_202A_206F_206A_200D_206C_206B_206C_200E_206A_206A_206A_200D_202E_206F_200C_202D_202B_202C_206E_206E_200D_202C_200F_202E_206A_200D_206A_206A_200D_206D_202B_206B_202B_200F_206A_202E_206E_202C_202E_202E(PublicEventHelper P_0) - { - return P_0.GetCurrentPlayerEvent(); - } - - static bool _200B_206A_200D_200E_206C_200B_206F_206F_200E_206E_206C_200B_206D_206D_202A_206D_206D_206C_202E_206F_202B_200B_206E_206B_200B_206B_202B_200E_206C_202E_202A_202A_206E_206C_206F_200B_206C_202C_206F_200F_202E(PublicEventHelper P_0, ushort P_1) - { - return P_0.IsFateActive(P_1); - } - - static uint _202D_206D_206F_200E_200E_200C_206F_200B_202C_206B_206B_202E_202B_206C_206D_206C_200F_206C_202D_200E_200E_206C_200E_202A_200C_200F_200F_200C_200F_200F_206E_200B_206B_206F_206A_206E_200D_206B_200F_202B_202E(GameStateHelper P_0, uint P_1) - { - return P_0.GetItemLevel(P_1); - } - - static void _200C_202E_202E_206B_206B_206A_200E_200C_202C_202A_202D_200D_206E_200E_200E_200B_206D_206A_206E_202A_202A_200F_202C_206A_202C_202C_200E_206A_206E_202C_200F_200E_206B_206B_206E_206D_202E_200D_200B_206E_202E(string P_0) - { - ChatHelper.SendCommand(P_0); - } - - static Regex _200E_206C_202E_206E_206B_206A_202D_206B_206B_206B_200D_206F_200E_202A_202A_206F_206A_200F_206B_200D_202D_200B_202A_206D_200C_206C_200C_202A_200D_202A_200D_202A_206B_206D_206A_200B_200C_200D_206F_200F_202E(string P_0, RegexOptions P_1) - { - return new Regex(P_0, P_1); + ChatHelper.SendCommand(command); } } diff --git a/Questionable/Questionable.Functions/PriorityQuestInfo.cs b/Questionable/Questionable.Functions/PriorityQuestInfo.cs index 334d871..9095b2b 100644 --- a/Questionable/Questionable.Functions/PriorityQuestInfo.cs +++ b/Questionable/Questionable.Functions/PriorityQuestInfo.cs @@ -1,148 +1,8 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Questionable.Model.Questing; namespace Questionable.Functions; internal sealed record PriorityQuestInfo(ElementId QuestId, string? UnavailableReason = null) { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206A_202C_202C_206C_200D_202A_202A_206D_206B_202A_202D_200E_202D_200C_202C_206D_206D_202E_206C_200C_206D_202E_206F_200D_202D_206B_200D_206B_206D_200B_206C_202B_202C_200E_202B_202E_200E_200D_200D_202E(typeof(PriorityQuestInfo).TypeHandle); - } - } - public bool IsAvailable => UnavailableReason == null; - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206C_200B_202A_200F_206B_202B_200B_206B_206C_202D_200F_202D_200D_206E_202C_200F_202E_202B_202B_200F_202A_206A_200E_206E_206E_200B_200C_206D_206F_200F_206D_200C_202B_202E_206A_206C_200E_206E_206D_200E_202E(); - _200F_202D_206A_200D_202B_200F_206D_202A_206B_200B_206C_202D_202D_200D_206F_202C_206E_206B_202E_206D_206D_206C_206E_202B_200B_202C_200F_202D_206C_202A_202B_200D_206E_200D_200E_200C_206F_206F_200F_206A_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1805932779)); - _200F_202D_206A_200D_202B_200F_206D_202A_206B_200B_206C_202D_202D_200D_206F_202C_206E_206B_202E_206D_206D_206C_206E_202B_200B_202C_200F_202D_206C_202A_202B_200D_206E_200D_200E_200C_206F_206F_200F_206A_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? 537897320 : 537897323); - while (true) - { - int num2 = num; - int num3 = 537897322; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 537897323; - break; - case 1: - _200F_202D_206A_206C_200B_206A_206A_206A_206E_206B_206E_202E_202B_202B_206C_202E_206B_202D_200F_202E_202E_202D_200F_206C_202B_206A_206E_202B_206D_202A_200B_200E_200B_206C_200D_202E_202C_200B_202A_206B_202E(stringBuilder, ' '); - num = 537897320; - break; - case 2: - _200F_202D_206A_206C_200B_206A_206A_206A_206E_206B_206E_202E_202B_202B_206C_202E_206B_202D_200F_202E_202E_202D_200F_206C_202B_206A_206E_202B_206D_202A_200B_200E_200B_206C_200D_202E_202C_200B_202A_206B_202E(stringBuilder, '}'); - return _200C_200E_206D_206F_200F_206D_202C_206D_206F_200F_206C_200D_206F_202D_202B_206D_206D_206E_206D_206C_206C_202B_200D_206A_202B_206C_202C_206A_202E_200D_200C_206F_206C_202C_206B_202B_206B_206E_200C_202D_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200F_206A_200B_200B_200E_206C_206E_200E_200F_200F_202D_200E_206B_206B_206E_202A_202B_202E_206E_202B_206C_206F_202E_206D_200D_200B_206B_206F_202A_202B_200C_200D_206E_206E_202D_200E_200E_206F_202A_202C_202E(); - _200F_202D_206A_200D_202B_200F_206D_202A_206B_200B_206C_202D_202D_200D_206F_202C_206E_206B_202E_206D_206D_206C_206E_202B_200B_202C_200F_202D_206C_202A_202B_200D_206E_200D_200E_200C_206F_206F_200F_206A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2135237278)); - _202C_206B_200C_202C_200F_200B_200C_202A_200D_200D_200D_202C_200E_200B_202C_202E_206E_202D_206A_202C_206E_200C_202E_206D_202E_200D_206E_202C_200E_200B_200D_202A_202C_202E_206D_200C_202C_206A_206C_202B_202E(builder, (object)QuestId); - _200F_202D_206A_200D_202B_200F_206D_202A_206B_200B_206C_202D_202D_200D_206F_202C_206E_206B_202E_206D_206D_206C_206E_202B_200B_202C_200F_202D_206C_202A_202B_200D_206E_200D_200E_200C_206F_206F_200F_206A_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(990011326)); - _202C_206B_200C_202C_200F_200B_200C_202A_200D_200D_200D_202C_200E_200B_202C_202E_206E_202D_206A_202C_206E_200C_202E_206D_202E_200D_206E_202C_200E_200B_200D_202A_202C_202E_206D_200C_202C_206A_206C_202B_202E(builder, (object)UnavailableReason); - _200F_202D_206A_200D_202B_200F_206D_202A_206B_200B_206C_202D_202D_200D_206F_202C_206E_206B_202E_206D_206D_206C_206E_202B_200B_202C_200F_202D_206C_202A_202B_200D_206E_200D_200E_200C_206F_206F_200F_206A_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-682736150)); - _200F_202D_206A_200D_202B_200F_206D_202A_206B_200B_206C_202D_202D_200D_206F_202C_206E_206B_202E_206D_206D_206C_206E_202B_200B_202C_200F_202D_206C_202A_202B_200D_206E_200D_200E_200C_206F_206F_200F_206A_202E(builder, IsAvailable.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(PriorityQuestInfo? other) - { - int num = (((object)this == other) ? (-830578699) : (-830578704)); - while (true) - { - int num2 = num; - int num3 = -830578698; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -830578704; - break; - case 1: - return EqualityComparer<string>.Default.Equals(UnavailableReason, other.UnavailableReason); - case 0: - num = ((!_200D_200E_202A_200E_200D_206C_200D_200D_206B_202A_200E_206B_202A_206D_206F_202E_200F_202B_202D_206F_200E_200C_200B_202E_200D_202E_206F_202E_206E_202B_206E_202C_206F_202C_202A_200B_200D_202B_202B_200E_202E(EqualityContract, other.EqualityContract)) ? (-830578702) : (-830578701)); - break; - case 5: - num = ((!EqualityComparer<ElementId>.Default.Equals(QuestId, other.QuestId)) ? (-830578702) : (-830578697)); - break; - case 6: - num = (((object)other == null) ? (-830578702) : (-830578698)); - break; - case 3: - return true; - case 4: - return false; - } - } - } - - bool IEquatable<PriorityQuestInfo>.Equals(PriorityQuestInfo? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206A_202C_202C_206C_200D_202A_202A_206D_206B_202A_202D_200E_202D_200C_202C_206D_206D_202E_206C_200C_206D_202E_206F_200D_202D_206B_200D_206B_206D_200B_206C_202B_202C_200E_202B_202E_200E_200D_200D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206C_200B_202A_200F_206B_202B_200B_206B_206C_202D_200F_202D_200D_206E_202C_200F_202E_202B_202B_200F_202A_206A_200E_206E_206E_200B_200C_206D_206F_200F_206D_200C_202B_202E_206A_206C_200E_206E_206D_200E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200F_202D_206A_200D_202B_200F_206D_202A_206B_200B_206C_202D_202D_200D_206F_202C_206E_206B_202E_206D_206D_206C_206E_202B_200B_202C_200F_202D_206C_202A_202B_200D_206E_200D_200E_200C_206F_206F_200F_206A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200F_202D_206A_206C_200B_206A_206A_206A_206E_206B_206E_202E_202B_202B_206C_202E_206B_202D_200F_202E_202E_202D_200F_206C_202B_206A_206E_202B_206D_202A_200B_200E_200B_206C_200D_202E_202C_200B_202A_206B_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200C_200E_206D_206F_200F_206D_202C_206D_206F_200F_206C_200D_206F_202D_202B_206D_206D_206E_206D_206C_206C_202B_200D_206A_202B_206C_202C_206A_202E_200D_200C_206F_206C_202C_206B_202B_206B_206E_200C_202D_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200F_206A_200B_200B_200E_206C_206E_200E_200F_200F_202D_200E_206B_206B_206E_202A_202B_202E_206E_202B_206C_206F_202E_206D_200D_200B_206B_206F_202A_202B_200C_200D_206E_206E_202D_200E_200E_206F_202A_202C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202C_206B_200C_202C_200F_200B_200C_202A_200D_200D_200D_202C_200E_200B_202C_202E_206E_202D_206A_202C_206E_200C_202E_206D_202E_200D_206E_202C_200E_200B_200D_202A_202C_202E_206D_200C_202C_206A_206C_202B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200D_200E_202A_200E_200D_206C_200D_200D_206B_202A_200E_206B_202A_206D_206F_202E_200F_202B_202D_206F_200E_200C_200B_202E_200D_202E_206F_202E_206E_202B_206E_202C_206F_202C_202A_200B_200D_202B_202B_200E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } } diff --git a/Questionable/Questionable.Functions/QuestFunctions.cs b/Questionable/Questionable.Functions/QuestFunctions.cs index 4140c89..43020ef 100644 --- a/Questionable/Questionable.Functions/QuestFunctions.cs +++ b/Questionable/Questionable.Functions/QuestFunctions.cs @@ -1,10 +1,7 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Memory; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Application.Network.WorkDefinitions; @@ -15,8 +12,6 @@ using FFXIVClientStructs.FFXIV.Client.UI.Agent; using FFXIVClientStructs.FFXIV.Component.GUI; using LLib.GameData; using LLib.GameUI; -using Lumina.Excel; -using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.Controller; using Questionable.Controller.Utils; @@ -28,346 +23,6 @@ namespace Questionable.Functions; internal sealed class QuestFunctions { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<QuestInfo, bool> _003C_003E9__21_0; - - public static Func<QuestInfo, ushort> _003C_003E9__21_2; - - public static Func<QuestInfo, ushort> _003C_003E9__21_3; - - public static Func<QuestInfo, bool> _003C_003E9__22_0; - - public static Func<QuestInfo, bool> _003C_003E9__22_1; - - public static Func<QuestInfo, bool> _003C_003E9__22_2; - - public static Func<QuestInfo, bool> _003C_003E9__22_3; - - public static Func<QuestInfo, bool> _003C_003E9__22_4; - - public static Func<QuestInfo, bool> _003C_003E9__22_5; - - public static Func<EClassJob, bool> _003C_003E9__26_2; - - public static Func<QuestInfo, ElementId> _003C_003E9__27_0; - - public static Func<QuestInfo, ElementId> _003C_003E9__27_2; - - public static Func<QuestInfo, ElementId> _003C_003E9__27_4; - - public static Func<EAlliedSociety, bool> _003C_003E9__45_0; - - public static Func<ushort, bool> _003C_003E9__54_0; - - internal bool _003CTryResolveFallbackMsq_003Eb__21_0(QuestInfo x) - { - int num = ((x.StartingCity == 0) ? 1042305841 : 1042305842); - while (true) - { - int num2 = num; - int num3 = 1042305843; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return true; - case 1: - return x.StartingCity == _206C_200E_200B_200C_206F_200D_200E_200F_200C_206C_202C_200F_200F_206A_202E_200D_202C_200E_200B_206A_202C_206B_200D_202D_202D_206D_200F_200C_200F_206A_200D_200E_202E_200D_206B_202D_200B_206C_200D_202C_202E(); - case 0: - goto IL_0058; - } - continue; - IL_0058: - num = 1042305842; - } - } - - internal ushort _003CTryResolveFallbackMsq_003Eb__21_2(QuestInfo x) - { - return _206A_202A_200F_202D_206E_206A_200C_202D_206C_206C_206D_206E_206E_200E_200D_206E_200E_200C_206D_202D_206E_200B_202A_202E_206A_202C_200E_200F_206D_206C_200F_206A_206C_206D_200E_200C_200B_202D_206A_200F_202E(x.QuestId); - } - - internal ushort _003CTryResolveFallbackMsq_003Eb__21_3(QuestInfo x) - { - return _206A_202A_200F_202D_206E_206A_200C_202D_206C_206C_206D_206E_206E_200E_200D_206E_200E_200C_206D_202D_206E_200B_202A_202E_206A_202C_200E_200F_206D_206C_200F_206A_206C_206D_200E_200C_200B_202D_206A_200F_202E(x.QuestId); - } - - internal bool _003CResolveBranchingMsq_003Eb__22_0(QuestInfo x) - { - ushort num = _206A_202A_200F_202D_206E_206A_200C_202D_206C_206C_206D_206E_206E_200E_200D_206E_200E_200C_206D_202D_206E_200B_202A_202E_206A_202C_200E_200F_206D_206C_200F_206A_206C_206D_200E_200C_200B_202D_206A_200F_202E(x.QuestId); - int num2 = 680; - int num3 = num; - int num4 = (((uint)(~(~num3 + num2)) > 2u) ? 1179559324 : 1179559327); - bool result = default(bool); - while (true) - { - int num5 = num4; - num2 = 1179559326; - num3 = num5; - int num6 = num3 + num2; - int num7 = num3 & num2; - switch (num6 - (num7 + num7)) - { - case 3: - num4 = 1179559327; - break; - case 0: - return result; - case 2: - result = false; - num4 = 1179559326; - break; - case 1: - result = true; - num4 = 1179559326; - break; - } - } - } - - internal bool _003CResolveBranchingMsq_003Eb__22_1(QuestInfo x) - { - return _206A_202A_200F_202D_206E_206A_200C_202D_206C_206C_206D_206E_206E_200E_200D_206E_200E_200C_206D_202D_206E_200B_202A_202E_206A_202C_200E_200F_206D_206C_200F_206A_206C_206D_200E_200C_200B_202D_206A_200F_202E(x.QuestId) == 1583; - } - - internal bool _003CResolveBranchingMsq_003Eb__22_2(QuestInfo x) - { - return _206A_202A_200F_202D_206E_206A_200C_202D_206C_206C_206D_206E_206E_200E_200D_206E_200E_200C_206D_202D_206E_200B_202A_202E_206A_202C_200E_200F_206D_206C_200F_206A_206C_206D_200E_200C_200B_202D_206A_200F_202E(x.QuestId) == 2451; - } - - internal bool _003CResolveBranchingMsq_003Eb__22_3(QuestInfo x) - { - return _206A_202A_200F_202D_206E_206A_200C_202D_206C_206C_206D_206E_206E_200E_200D_206E_200E_200C_206D_202D_206E_200B_202A_202E_206A_202C_200E_200F_206D_206C_200F_206A_206C_206D_200E_200C_200B_202D_206A_200F_202E(x.QuestId) == 3282; - } - - internal bool _003CResolveBranchingMsq_003Eb__22_4(QuestInfo x) - { - return _206A_202A_200F_202D_206E_206A_200C_202D_206C_206C_206D_206E_206E_200E_200D_206E_200E_200C_206D_202D_206E_200B_202A_202E_206A_202C_200E_200F_206D_206C_200F_206A_206C_206D_200E_200C_200B_202D_206A_200F_202E(x.QuestId) == 4359; - } - - internal bool _003CResolveBranchingMsq_003Eb__22_5(QuestInfo x) - { - return _206A_202A_200F_202D_206E_206A_200C_202D_206C_206C_206D_206E_206E_200E_200D_206E_200E_200C_206D_202D_206E_200B_202A_202E_206A_202C_200E_200F_206D_206C_200F_206A_206C_206D_200E_200C_200B_202D_206A_200F_202E(x.QuestId) == 4865; - } - - internal bool _003CGetNextPriorityQuestsThatCanBeAccepted_003Eb__26_2(EClassJob x) - { - int num = (_202E_206D_206E_200E_202B_206E_200F_206A_206C_202D_200E_202E_200B_206E_202A_200F_200C_206D_206E_200F_206E_200C_200F_202C_202D_200C_200D_200D_206B_200D_200C_202B_202C_206F_202A_206E_206D_202A_206F_206A_202E(x) ? 1114029440 : 1114029443); - while (true) - { - int num2 = num; - int num3 = 1114029442; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0046; - case 1: - return !_200C_200E_200C_202A_202B_202A_206D_202D_206E_202C_202A_202A_206B_200D_200C_206B_200E_200D_202D_206A_202E_202E_206B_206F_200F_202C_202B_206E_200B_200C_202D_206F_202E_202B_202D_200D_202E_202B_202A_206C_202E(x); - case 2: - return false; - } - continue; - IL_0046: - num = 1114029443; - } - } - - internal ElementId _003CGetPriorityQuests_003Eb__27_0(QuestInfo x) - { - return x.QuestId; - } - - internal ElementId _003CGetPriorityQuests_003Eb__27_2(QuestInfo x) - { - return x.QuestId; - } - - internal ElementId _003CGetPriorityQuests_003Eb__27_4(QuestInfo x) - { - return x.QuestId; - } - - internal bool _003CGetAllRankUpQuestsNeeded_003Eb__45_0(EAlliedSociety s) - { - return s != EAlliedSociety.None; - } - - internal bool _003CHasCompletedPreviousInstances_003Eb__54_0(ushort x) - { - return UIState.IsInstanceContentCompleted(x); - } - - static byte _206C_200E_200B_200C_206F_200D_200E_200F_200C_206C_202C_200F_200F_206A_202E_200D_202C_200E_200B_206A_202C_206B_200D_202D_202D_206D_200F_200C_200F_206A_200D_200E_202E_200D_206B_202D_200B_206C_200D_202C_202E() - { - return PlayerStateHelper.GetStartTown(); - } - - static ushort _206A_202A_200F_202D_206E_206A_200C_202D_206C_206C_206D_206E_206E_200E_200D_206E_200E_200C_206D_202D_206E_200B_202A_202E_206A_202C_200E_200F_206D_206C_200F_206A_206C_206D_200E_200C_200B_202D_206A_200F_202E(ElementId P_0) - { - return P_0.Value; - } - - static bool _202E_206D_206E_200E_202B_206E_200F_206A_206C_202D_200E_202E_200B_206E_202A_200F_200C_206D_206E_200F_206E_200C_200F_202C_202D_200C_200D_200D_206B_200D_200C_202B_202C_206F_202A_206E_206D_202A_206F_206A_202E(EClassJob P_0) - { - return P_0.IsCrafter(); - } - - static bool _200C_200E_200C_202A_202B_202A_206D_202D_206E_202C_202A_202A_206B_200D_200C_206B_200E_200D_202D_206A_202E_202E_206B_206F_200F_202C_202B_206E_200B_200C_202D_206F_202E_202B_202D_200D_202E_202B_202A_206C_202E(EClassJob P_0) - { - return P_0.IsGatherer(); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass24_0 - { - public uint[] dataIds; - - internal bool _003CIsInteractSequence_003Eb__0(QuestStep x) - { - int num = ((x == null) ? (-1902168028) : (-1902168030)); - uint? num5 = default(uint?); - while (true) - { - int num2 = num; - int num3 = -1902168027; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = -1902168030; - break; - case 3: - { - uint valueOrDefault = num5.GetValueOrDefault(); - return ((ReadOnlySpan<uint>)dataIds).Contains(valueOrDefault); - } - case 1: - num = ((x == null) ? (-1902168029) : (-1902168032)); - break; - case 0: - num5 = _202A_202E_202C_206A_206B_206F_202E_200D_202E_206B_200F_206D_200C_200E_202C_200F_202D_202A_202E_202E_200B_206B_202B_202A_206B_200E_202C_206B_206F_202A_202C_206C_202E_200E_206C_202A_202B_206B_200B_206F_202E(x); - num = ((!num5.HasValue) ? (-1902168029) : (-1902168026)); - break; - case 7: - num = ((_206A_202C_200B_200D_202A_206B_206C_200F_200F_206C_200C_202C_206C_206A_206C_200D_206C_200E_200C_206F_202B_200E_206B_200B_206A_202B_200B_206D_202D_202B_202C_200D_202E_206F_202A_206B_202E_206B_200E_206D_202E(x) == EInteractionType.WalkTo) ? (-1902168025) : (-1902168028)); - break; - case 6: - return false; - case 5: - num = ((_206A_202C_200B_200D_202A_206B_206C_200F_200F_206C_200C_202C_206C_206A_206C_200D_206C_200E_200C_206F_202B_200E_206B_200B_206A_202B_200B_206D_202D_202B_202C_200D_202E_206F_202A_206B_202E_206B_200E_206D_202E(x) != EInteractionType.Interact) ? (-1902168029) : (-1902168027)); - break; - case 2: - return true; - } - } - } - - static EInteractionType _206A_202C_200B_200D_202A_206B_206C_200F_200F_206C_200C_202C_206C_206A_206C_200D_206C_200E_200C_206F_202B_200E_206B_200B_206A_202B_200B_206D_202D_202B_202C_200D_202E_206F_202A_206B_202E_206B_200E_206D_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static uint? _202A_202E_202C_206A_206B_206F_202E_200D_202E_206B_200F_206D_200C_200E_202C_200F_202D_202A_202E_202E_200B_206B_202B_202A_206B_200E_202C_206B_206F_202A_202C_206C_202E_200E_206C_202A_202B_206B_200B_206F_202E(QuestStep P_0) - { - return P_0.DataId; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass48_0 - { - public QuestFunctions _003C_003E4__this; - - public ElementId extraCompletedQuest; - - internal bool _003CIsQuestUnobtainable_003Eb__1(QuestId x) - { - int num = (_003C_003E4__this.IsQuestComplete(x) ? 1809882662 : 1809882661); - while (true) - { - int num2 = num; - int num3 = 1809882660; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004e; - case 2: - return true; - case 1: - return _206D_200C_200B_206C_206E_206D_202E_206C_200F_206F_206A_206D_202A_206C_200F_202E_206B_206A_200D_202D_206C_202E_202B_206E_206F_202B_206F_200E_206C_206A_202E_206F_200F_200D_200C_202C_200E_206F_206C_202E_202E((ElementId)x, extraCompletedQuest); - } - continue; - IL_004e: - num = 1809882661; - } - } - - internal bool _003CIsQuestUnobtainable_003Eb__0(KeyValuePair<ushort, EClassJob> x) - { - return _003C_003E4__this.IsQuestAcceptedOrComplete(_206E_202D_206E_200E_202E_206B_206B_202B_206D_202B_202D_206C_206E_202D_200B_206B_200E_200C_200F_206D_206C_206B_200B_202C_206F_206A_206A_202C_206D_206E_206F_206D_206A_202D_200C_200F_206F_200B_200B_206C_202E(x.Key)); - } - - static bool _206D_200C_200B_206C_206E_206D_202E_206C_200F_206F_206A_206D_202A_206C_200F_202E_206B_206A_200D_202D_206C_202E_202B_206E_206F_202B_206F_200E_206C_206A_202E_206F_200F_200D_200C_202C_200E_206F_206C_202E_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - - static QuestId _206E_202D_206E_200E_202E_206B_206B_202B_206D_202B_202D_206C_206E_202D_200B_206B_200E_200C_200F_206D_206C_206B_200B_202C_206F_206A_206A_202C_206D_206E_206F_206D_206A_202D_200C_200F_206F_200B_200B_206C_202E(ushort P_0) - { - return new QuestId(P_0); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass52_0 - { - public QuestFunctions _003C_003E4__this; - - public ElementId extraCompletedQuest; - - internal bool _003CHasCompletedPreviousQuests_003Eb__0(PreviousQuestInfo x) - { - int num = (_003C_003E4__this.HasEnoughProgressOnPreviousQuest(x) ? 1555514480 : 1555514481); - while (true) - { - int num2 = num; - int num3 = 1555514480; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_004e; - case 1: - return _202D_200D_202D_202C_202C_200D_206F_200E_206A_206A_206E_200B_202E_206C_202C_202E_206D_202D_206D_200E_202A_202E_206A_206A_202C_202E_202C_200E_200C_206B_200B_200F_206C_206E_200F_202B_200C_202E_202E_206C_202E((ElementId)x.QuestId, extraCompletedQuest); - case 0: - return true; - } - continue; - IL_004e: - num = 1555514481; - } - } - - static bool _202D_200D_202D_202C_202C_200D_206F_200E_206A_206A_206E_200B_202E_206C_202C_202E_206D_202D_206D_200E_202A_202E_206A_206A_202C_202E_202C_200E_200C_206B_200B_200F_206C_206E_200F_202B_200C_202E_202E_206C_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - private static readonly Dictionary<ushort, EClassJob> CloseToHomeQuests = new Dictionary<ushort, EClassJob> { { @@ -455,925 +110,388 @@ internal sealed class QuestFunctions _logger = logger; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe (QuestReference, string?) GetMainScenarioQuest() { (QuestReference, string)? tuple = TryGetNewGamePlusQuest(); - int num = ((!tuple.HasValue) ? 797244794 : 797244774); - QuestManager* ptr = default(QuestManager*); - QuestId resolvedQuest = default(QuestId); - string item2 = default(string); - AgentScenarioTree* ptr2 = default(AgentScenarioTree*); - (QuestReference, string)? tuple2 = default((QuestReference, string)?); - while (true) + if (tuple.HasValue) { - int num2 = num; - int num3 = 797244783; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return tuple.Value; + } + AgentScenarioTree* ptr = AgentScenarioTree.Instance(); + if (ptr == null) + { + _logger.LogTrace("GetMainScenarioQuest: scenarioTree is null"); + return (QuestReference.NoQuest(MainScenarioQuestState.Unavailable), "No Scenario Tree"); + } + if (ptr->Data == null) + { + _logger.LogTrace("GetMainScenarioQuest: scenarioTree->Data is null"); + return (QuestReference.NoQuest(MainScenarioQuestState.LoadingScreen), "Scenario Tree Data is null"); + } + QuestId resolvedQuest = new QuestId(ptr->Data->MainScenarioQuestIds[0]); + string item = $"sq: {resolvedQuest}"; + if (resolvedQuest.Value == 0) + { + (QuestReference, string)? tuple2 = TryResolveFallbackMsq(out resolvedQuest); + if (tuple2.HasValue) { - case 7: - return (QuestReference.NoQuest(MainScenarioQuestState.Available), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1559640278)); - case 12: - ptr = QuestManager.Instance(); - num = ((!IsQuestAccepted(resolvedQuest)) ? 797244799 : 797244798); - break; - case 23: - { - QuestReference item = QuestReference.NoQuest(MainScenarioQuestState.Unavailable); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(26, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(288641280)); - defaultInterpolatedStringHandler.AppendFormatted(_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E((ElementId)resolvedQuest)); - return (item, defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 9: - return tuple.Value; - case 16: - num = ((!IsQuestComplete(resolvedQuest)) ? 797244768 : 797244795); - break; - case 1: - _lastLoggedAcceptedHiddenMsq = null; - return (new QuestReference(resolvedQuest, QuestManager.GetQuestSequence(_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E((ElementId)resolvedQuest)), MainScenarioQuestState.Available), item2); - case 21: - ptr2 = AgentScenarioTree.Instance(); - num = ((ptr2 != null) ? 797244769 : 797244783); - break; - case 3: - { - _lastLoggedNotReadyQuest = null; - IPlayerCharacter playerCharacter = _206C_200E_202E_206E_202D_206B_202B_206B_200D_200C_206C_202E_200C_200F_202E_200C_200B_202B_206E_202E_202B_206B_206F_206F_206E_206B_206D_206F_202E_202C_206A_202C_202D_200D_206E_200D_200E_202C_206B_206C_202E(_objectTable); - if (playerCharacter != null) - { - _202A_200F_206C_206F_202A_202B_202D_202E_200B_202B_202E_200B_202C_206F_202D_206D_206A_202E_200D_200E_200F_206D_206F_200C_206D_202B_206C_206E_206A_200D_200C_206A_206E_206F_206D_200F_200D_202A_206E_206F_202E((ICharacter)playerCharacter); - if (0 == 0) - { - num = 797244782; - break; - } - } - num = 797244775; - break; - } - case 6: - _206E_200F_202E_206E_200F_206E_202D_200C_202B_200C_202A_206B_202D_206A_200C_202A_206B_202C_206D_206E_206B_200E_206F_200E_206F_202E_200D_202B_202A_202E_202A_200D_206E_202E_202E_202A_200C_200E_206E_206B_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1226979826), new object[1] { resolvedQuest }); - _lastLoggedAcceptedHiddenMsq = resolvedQuest; - num = 797244776; - break; - case 11: - _lastLoggedFallbackLookup = false; - num = 797244771; - break; - case 0: - _202D_202C_202A_206D_202C_202C_202A_200F_200F_202B_202C_202A_206A_202D_200D_200E_202E_206E_200E_200C_200D_206A_206A_206D_202A_200E_206D_200B_202A_206C_206D_200D_200F_206A_206A_200B_206F_200C_206B_202A_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(890687350), Array.Empty<object>()); - return (QuestReference.NoQuest(MainScenarioQuestState.Unavailable), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1970295965)); - case 15: - num = (IsReadyToAcceptQuest(resolvedQuest, ignoreLevel: true) ? 797244780 : 797244797); - break; - case 4: - num = ((!_206E_202C_206F_202A_202E_202A_202A_200F_206C_202E_202C_206B_202A_200C_206C_206E_202D_202C_200E_200B_202A_206A_200D_202C_202C_202B_202B_206A_202D_206A_206C_206C_202D_200B_200E_200D_202E_202A_206C_206D_202E(_lastLoggedAcceptedHiddenMsq, (ElementId)resolvedQuest)) ? 797244776 : 797244777); - break; - case 13: - { - resolvedQuest = _206E_200C_200C_202B_206D_202B_206B_200C_202A_206A_202E_202B_206F_206A_200D_202E_200B_202D_202D_206A_200D_200C_202C_202D_206D_202A_206F_200F_200D_202B_202C_206C_200C_202B_206F_206C_206D_206B_200C_206E_202E(ptr2->Data->MainScenarioQuestIds[0]); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(4, 1); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-145427000)); - defaultInterpolatedStringHandler3.AppendFormatted(resolvedQuest); - item2 = defaultInterpolatedStringHandler3.ToStringAndClear(); - num = ((_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E((ElementId)resolvedQuest) != 0) ? 797244772 : 797244773); - break; - } - case 8: - _202D_202C_202A_206D_202C_202C_202A_200F_200F_202B_202C_202A_206A_202D_200D_200E_202E_206E_200E_200C_200D_206A_206A_206D_202A_200E_206D_200B_202A_206C_206D_200D_200F_206A_206A_200B_206F_200C_206B_202A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1083185667), Array.Empty<object>()); - return (QuestReference.NoQuest(MainScenarioQuestState.LoadingScreen), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(744029635)); - case 20: - { - _206E_200F_202E_206E_200F_206E_202D_200C_202B_200C_202A_206B_202D_206A_200C_202A_206B_202C_206D_206E_206B_200E_206F_200E_206F_202E_200D_202B_202A_202E_202A_200D_206E_202E_202E_202A_200C_200E_206E_206B_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1567782321), new object[1] { resolvedQuest }); - QuestReference item3 = new QuestReference(resolvedQuest, byte.MaxValue, MainScenarioQuestState.Available); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(15, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1754422725)); - defaultInterpolatedStringHandler2.AppendFormatted(_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E((ElementId)resolvedQuest)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1749584481)); - return (item3, defaultInterpolatedStringHandler2.ToStringAndClear()); - } - case 14: - num = ((ptr2->Data != null) ? 797244770 : 797244796); - break; - case 2: - _206E_200F_202E_206E_200F_206E_202D_200C_202B_200C_202A_206B_202D_206A_200C_202A_206B_202C_206D_206E_206B_200E_206F_200E_206F_202E_200D_202B_202A_202E_202A_200D_206E_202E_202E_202A_200C_200E_206E_206B_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-179403140), new object[1] { resolvedQuest }); - _lastLoggedNotReadyQuest = resolvedQuest; - num = 797244792; - break; - case 5: - num = 797244774; - break; - case 22: return tuple2.Value; - case 17: - num = ((!ptr->GetQuestById(_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E((ElementId)resolvedQuest))->IsHidden) ? 797244799 : 797244779); - break; - case 18: - num = ((!_206E_202C_206F_202A_202E_202A_202A_200F_206C_202E_202C_206B_202A_200C_206C_206E_202D_202C_200E_200B_202A_206A_200D_202C_202C_202B_202B_206A_202D_206A_206C_206C_202D_200B_200E_200D_202E_202A_206C_206D_202E(_lastLoggedNotReadyQuest, (ElementId)resolvedQuest)) ? 797244792 : 797244781); - break; - case 19: - _202D_202C_202A_206D_202C_202C_202A_200F_200F_202B_202C_202A_206A_202D_200D_200E_202E_206E_200E_200C_200D_206A_206A_206D_202A_200E_206D_200B_202A_206C_206D_200D_200F_206A_206A_200B_206F_200C_206B_202A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-221817496), Array.Empty<object>()); - return (QuestReference.NoQuest(MainScenarioQuestState.LoadingScreen), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(55455565)); - case 10: - tuple2 = TryResolveFallbackMsq(out resolvedQuest); - num = ((!tuple2.HasValue) ? 797244771 : 797244793); - break; } } + else + { + _lastLoggedFallbackLookup = false; + } + QuestManager* ptr2 = QuestManager.Instance(); + if (IsQuestAccepted(resolvedQuest) && ptr2->GetQuestById(resolvedQuest.Value)->IsHidden) + { + if (_lastLoggedAcceptedHiddenMsq != resolvedQuest) + { + _logger.LogDebug("GetMainScenarioQuest: Quest {QuestId} is accepted but hidden", resolvedQuest); + _lastLoggedAcceptedHiddenMsq = resolvedQuest; + } + return (QuestReference.NoQuest(MainScenarioQuestState.Available), "Quest accepted but hidden"); + } + if (IsQuestComplete(resolvedQuest)) + { + _logger.LogDebug("GetMainScenarioQuest: Quest {QuestId} is already complete", resolvedQuest); + return (new QuestReference(resolvedQuest, byte.MaxValue, MainScenarioQuestState.Available), $"Quest {resolvedQuest.Value} complete"); + } + if (!IsReadyToAcceptQuest(resolvedQuest, ignoreLevel: true)) + { + if (_lastLoggedNotReadyQuest != resolvedQuest) + { + _logger.LogDebug("GetMainScenarioQuest: Quest {QuestId} is not ready to accept (ignoring level)", resolvedQuest); + _lastLoggedNotReadyQuest = resolvedQuest; + } + return (QuestReference.NoQuest(MainScenarioQuestState.Unavailable), $"Not ready to accept quest {resolvedQuest.Value}"); + } + _lastLoggedNotReadyQuest = null; + IPlayerCharacter? localPlayer = _objectTable.LocalPlayer; + if (localPlayer != null) + { + _ = localPlayer.Level; + if (0 == 0) + { + _lastLoggedAcceptedHiddenMsq = null; + return (new QuestReference(resolvedQuest, QuestManager.GetQuestSequence(resolvedQuest.Value), MainScenarioQuestState.Available), item); + } + } + _logger.LogTrace("GetMainScenarioQuest: In loading screen"); + return (QuestReference.NoQuest(MainScenarioQuestState.LoadingScreen), "In loading screen"); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe (QuestReference, string?)? TryGetNewGamePlusQuest() { - int num = (QuestManager.IsQuestComplete(3759) ? (-354991437) : (-354991429)); - uint uInt = default(uint); - AtkUnitBase* addonPtr = default(AtkUnitBase*); - bool flag = default(bool); - bool flag2 = default(bool); - AgentInterface* agentByInternalId = default(AgentInterface*); - while (true) + if (!QuestManager.IsQuestComplete(3759)) { - int num2 = num; - int num3 = -354991438; - int num4 = num2; - int num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 12: - { - uint num7 = uInt; - num3 = 2; - num4 = (int)num7; - num = (((uint)(~(~num4 + num3)) > 2u) ? (-354991435) : (-354991440)); - break; - } - case 4: - return null; - case 11: - return null; - case 9: - return null; - case 14: - uInt = addonPtr->AtkValues->UInt; - num = ((uInt == 0) ? (-354991440) : (-354991426)); - break; - case 0: - num5 = ((addonPtr->AtkValuesCount != 4) ? 1 : 0); - goto IL_019a; - case 7: - flag = false; - num = -354991430; - break; - case 8: - flag2 = !flag; - num = -354991432; - break; - case 10: - num = ((!flag2) ? (-354991427) : (-354991431)); - break; - case 15: - { - ushort num6 = MemoryHelper.Read<ushort>((nint)((byte*)agentByInternalId + 46)); - return (new QuestReference(_206E_200C_200C_202B_206D_202B_206B_200C_202A_206A_202E_202B_206F_206A_200D_202E_200B_202D_202D_206A_200D_200C_202C_202D_206D_202A_206F_200F_200D_202B_202C_206C_200C_202B_206F_206C_206D_206B_200C_206E_202E(num6), QuestManager.GetQuestSequence(num6), MainScenarioQuestState.Available), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-619951541)); - } - case 5: - num = -354991429; - break; - case 13: - num5 = 1; - goto IL_019a; - case 1: - agentByInternalId = AgentModule.Instance()->GetAgentByInternalId(AgentId.QuestRedoHud); - num = ((agentByInternalId == null) ? (-354991434) : (-354991436)); - break; - case 3: - num = ((!_gameGui.TryGetAddonByName<AtkUnitBase>(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-902798394), out addonPtr)) ? (-354991425) : (-354991438)); - break; - case 6: - num = (agentByInternalId->IsAgentActive() ? (-354991439) : (-354991434)); - break; - case 2: - { - flag = true; - num = -354991430; - break; - } - IL_019a: - flag2 = (byte)num5 != 0; - num = (flag2 ? (-354991432) : (-354991428)); - break; - } + return null; } + AgentInterface* agentByInternalId = AgentModule.Instance()->GetAgentByInternalId(AgentId.QuestRedoHud); + if (agentByInternalId == null || !agentByInternalId->IsAgentActive()) + { + return null; + } + AtkUnitBase* addonPtr; + bool flag = !_gameGui.TryGetAddonByName<AtkUnitBase>("QuestRedoHud", out addonPtr) || addonPtr->AtkValuesCount != 4; + if (!flag) + { + uint uInt = addonPtr->AtkValues->UInt; + bool flag2 = ((uInt == 0 || uInt - 2 <= 2) ? true : false); + flag = !flag2; + } + if (flag) + { + return null; + } + ushort num = MemoryHelper.Read<ushort>((nint)((byte*)agentByInternalId + 46)); + return (new QuestReference(new QuestId(num), QuestManager.GetQuestSequence(num), MainScenarioQuestState.Available), "NG+"); } - [MethodImpl(MethodImplOptions.NoInlining)] private (QuestReference, string?)? TryResolveFallbackMsq(out QuestId resolvedQuest) { - resolvedQuest = _206E_200C_200C_202B_206D_202B_206B_200C_202A_206A_202E_202B_206F_206A_200D_202E_200B_202D_202D_206A_200D_200C_202C_202D_206D_202A_206F_200F_200D_202B_202C_206C_200C_202B_206F_206C_206D_206B_200C_206E_202E((ushort)0); - int num = ((!IsMainScenarioQuestComplete()) ? (-931951618) : (-931951626)); - List<QuestInfo> list = default(List<QuestInfo>); - QuestId questId = default(QuestId); - while (true) + resolvedQuest = new QuestId(0); + if (IsMainScenarioQuestComplete()) { - int num2 = num; - int num3 = -931951625; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - _200F_206C_200D_206D_200B_202D_202B_200C_202E_206D_206F_202E_200F_200B_206A_200B_206A_202E_206D_200B_206B_202C_200C_202B_206D_202B_202B_200C_202D_202E_206A_206D_200B_200F_206E_206C_200D_200E_202A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-85946115), new object[1] { string.Join(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1467939024), list.Select((QuestInfo x) => _003C_003Ec._206A_202A_200F_202D_206E_206A_200C_202D_206C_206C_206D_206E_206E_200E_200D_206E_200E_200C_206D_202D_206E_200B_202A_202E_206A_202C_200E_200F_206D_206C_200F_206A_206C_206D_200E_200C_200B_202D_206A_200F_202E(x.QuestId))) }); - return (QuestReference.NoQuest(MainScenarioQuestState.Unavailable), _206A_202B_206A_202E_200D_200D_206A_200D_206E_200C_206D_206E_206E_200F_200C_206B_206E_202C_206B_206B_206E_200B_202D_206D_206A_200B_202C_206F_206D_206E_200E_200C_200C_200F_200C_206C_202D_206F_200B_206F_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1248639462), string.Join(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1095822044), list.Select((QuestInfo x) => _003C_003Ec._206A_202A_200F_202D_206E_206A_200C_202D_206C_206C_206D_206E_206E_200E_200D_206E_200E_200C_206D_202D_206E_200B_202A_202E_206A_202C_200E_200F_206D_206C_200F_206A_206C_206D_200E_200C_200B_202D_206A_200F_202E(x.QuestId))))); - case 5: - return (QuestReference.NoQuest(MainScenarioQuestState.Unavailable), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1786049013)); - case 2: - _206E_200F_202E_206E_200F_206E_202D_200C_202B_200C_202A_206B_202D_206A_200C_202A_206B_202C_206D_206E_206B_200E_206F_200E_206F_202E_200D_202B_202A_202E_202A_200D_206E_202E_202E_202A_200C_200E_206E_206B_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1140660703), Array.Empty<object>()); - _lastLoggedFallbackLookup = true; - num = -931951632; - break; - case 4: - questId = ResolveBranchingMsq(list); - num = (((object)questId != null) ? (-931951619) : (-931951631)); - break; - case 8: - num = -931951626; - break; - case 10: - resolvedQuest = questId; - _206E_200F_202E_206E_200F_206E_202D_200C_202B_200C_202A_206B_202D_206A_200C_202A_206B_202C_206D_206E_206B_200E_206F_200E_206F_202E_200D_202B_202A_202E_202A_200D_206E_202E_202E_202A_200C_200E_206E_206B_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1400062201), new object[1] { resolvedQuest }); - return null; - case 0: - resolvedQuest = (QuestId)list[0].QuestId; - _206E_200F_202E_206E_200F_206E_202D_200C_202B_200C_202A_206B_202D_206A_200C_202A_206B_202C_206D_206E_206B_200E_206F_200E_206F_202E_200D_202B_202A_202E_202A_200D_206E_202E_202E_202A_200C_200E_206E_206B_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(685272348), new object[1] { resolvedQuest }); - return null; - case 3: - num = ((list.Count != 1) ? (-931951629) : (-931951625)); - break; - case 7: - list = (from q in _questData.MainScenarioQuests.Where(delegate(QuestInfo x) - { - int num5 = ((x.StartingCity == 0) ? 1042305841 : 1042305842); - while (true) - { - int num6 = num5; - int num7 = 1042305843; - int num8 = num6; - int num9 = num8 + num7; - int num10 = num8 & num7; - switch (num9 - (num10 + num10)) - { - case 2: - return true; - case 1: - return x.StartingCity == _003C_003Ec._206C_200E_200B_200C_206F_200D_200E_200F_200C_206C_202C_200F_200F_206A_202E_200D_202C_200E_200B_206A_202C_206B_200D_202D_202D_206D_200F_200C_200F_206A_200D_200E_202E_200D_206B_202D_200B_206C_200D_202C_202E(); - case 0: - goto IL_0058; - } - continue; - IL_0058: - num5 = 1042305842; - } - }) - where IsReadyToAcceptQuest(q.QuestId, ignoreLevel: true) - select q).ToList(); - _202D_202C_202A_206D_202C_202C_202A_200F_200F_202B_202C_202A_206A_202D_200D_200E_202E_206E_200E_200C_200D_206A_206A_206D_202A_200E_206D_200B_202A_206C_206D_200D_200F_206A_206A_200B_206F_200C_206B_202A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1687594215), new object[1] { list.Count }); - num = ((list.Count != 0) ? (-931951628) : (-931951630)); - break; - case 9: - num = (_lastLoggedFallbackLookup ? (-931951632) : (-931951627)); - break; - case 1: - return (QuestReference.NoQuest(MainScenarioQuestState.Complete), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-425005408)); - } + return (QuestReference.NoQuest(MainScenarioQuestState.Complete), "Main Scenario is complete"); } + if (!_lastLoggedFallbackLookup) + { + _logger.LogDebug("GetMainScenarioQuest: MSQ from scenario tree is 0, using fallback lookup"); + _lastLoggedFallbackLookup = true; + } + List<QuestInfo> list = (from q in _questData.MainScenarioQuests + where q.StartingCity == 0 || q.StartingCity == PlayerStateHelper.GetStartTown() + where IsReadyToAcceptQuest(q.QuestId, ignoreLevel: true) + select q).ToList(); + _logger.LogTrace("GetMainScenarioQuest: Found {Count} potential quests from fallback", list.Count); + if (list.Count == 0) + { + return (QuestReference.NoQuest(MainScenarioQuestState.Unavailable), "No potential quests found"); + } + if (list.Count == 1) + { + resolvedQuest = (QuestId)list[0].QuestId; + _logger.LogDebug("GetMainScenarioQuest: Selected quest from fallback = {QuestId}", resolvedQuest); + return null; + } + QuestId questId = ResolveBranchingMsq(list); + if ((object)questId == null) + { + _logger.LogWarning("GetMainScenarioQuest: Multiple potential quests found: {Quests}", string.Join(", ", list.Select((QuestInfo x) => x.QuestId.Value))); + return (QuestReference.NoQuest(MainScenarioQuestState.Unavailable), "Multiple potential quests found: " + string.Join(", ", list.Select((QuestInfo x) => x.QuestId.Value))); + } + resolvedQuest = questId; + _logger.LogDebug("GetMainScenarioQuest: Selected quest from fallback = {QuestId}", resolvedQuest); + return null; } private static QuestId? ResolveBranchingMsq(List<QuestInfo> potentialQuests) { - int num = ((!potentialQuests.All(delegate(QuestInfo x) + if (potentialQuests.All(delegate(QuestInfo x) { - ushort num5 = _003C_003Ec._206A_202A_200F_202D_206E_206A_200C_202D_206C_206C_206D_206E_206E_200E_200D_206E_200E_200C_206D_202D_206E_200B_202A_202E_206A_202C_200E_200F_206D_206C_200F_206A_206C_206D_200E_200C_200B_202D_206A_200F_202E(x.QuestId); - int num6 = 680; - int num7 = num5; - int num8 = (((uint)(~(~num7 + num6)) > 2u) ? 1179559324 : 1179559327); - bool result = default(bool); - while (true) - { - int num9 = num8; - num6 = 1179559326; - num7 = num9; - int num10 = num7 + num6; - int num11 = num7 & num6; - switch (num10 - (num11 + num11)) - { - case 3: - num8 = 1179559327; - break; - case 0: - return result; - case 2: - result = false; - num8 = 1179559326; - break; - case 1: - result = true; - num8 = 1179559326; - break; - } - } - })) ? 1548487803 : 1548487794); - while (true) + ushort value = x.QuestId.Value; + return (uint)(value - 680) <= 2u; + })) { - int num2 = num; - int num3 = 1548487793; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 7: - return _206E_200C_200C_202B_206D_202B_206B_200C_202A_206A_202E_202B_206F_206A_200D_202E_200B_202D_202D_206A_200D_200C_202C_202D_206D_202A_206F_200F_200D_202B_202C_206C_200C_202B_206F_206C_206D_206B_200C_206E_202E((ushort)4865); - case 3: - return _206E_200C_200C_202B_206D_202B_206B_200C_202A_206A_202E_202B_206F_206A_200D_202E_200B_202D_202D_206A_200D_200C_202C_202D_206D_202A_206F_200F_200D_202B_202C_206C_200C_202B_206F_206C_206D_206B_200C_206E_202E((ushort)681); - case 11: - return _206E_200C_200C_202B_206D_202B_206B_200C_202A_206A_202E_202B_206F_206A_200D_202E_200B_202D_202D_206A_200D_200C_202C_202D_206D_202A_206F_200F_200D_202B_202C_206C_200C_202B_206F_206C_206D_206B_200C_206E_202E((ushort)4359); - case 12: - num = ((!potentialQuests.Any((QuestInfo x) => _003C_003Ec._206A_202A_200F_202D_206E_206A_200C_202D_206C_206C_206D_206E_206E_200E_200D_206E_200E_200C_206D_202D_206E_200B_202A_202E_206A_202C_200E_200F_206D_206C_200F_206A_206C_206D_200E_200C_200B_202D_206A_200F_202E(x.QuestId) == 3282)) ? 1548487792 : 1548487800); - break; - case 5: - num = ((!potentialQuests.Any((QuestInfo x) => _003C_003Ec._206A_202A_200F_202D_206E_206A_200C_202D_206C_206C_206D_206E_206E_200E_200D_206E_200E_200C_206D_202D_206E_200B_202A_202E_206A_202C_200E_200F_206D_206C_200F_206A_206C_206D_200E_200C_200B_202D_206A_200F_202E(x.QuestId) == 2451)) ? 1548487805 : 1548487795); - break; - case 6: - num = 1548487794; - break; - case 10: - num = ((!potentialQuests.Any((QuestInfo x) => _003C_003Ec._206A_202A_200F_202D_206E_206A_200C_202D_206C_206C_206D_206E_206E_200E_200D_206E_200E_200C_206D_202D_206E_200B_202A_202E_206A_202C_200E_200F_206D_206C_200F_206A_206C_206D_200E_200C_200B_202D_206A_200F_202E(x.QuestId) == 1583)) ? 1548487796 : 1548487801); - break; - case 8: - return _206E_200C_200C_202B_206D_202B_206B_200C_202A_206A_202E_202B_206F_206A_200D_202E_200B_202D_202D_206A_200D_200C_202C_202D_206D_202A_206F_200F_200D_202B_202C_206C_200C_202B_206F_206C_206D_206B_200C_206E_202E((ushort)1583); - case 4: - return null; - case 9: - return _206E_200C_200C_202B_206D_202B_206B_200C_202A_206A_202E_202B_206F_206A_200D_202E_200B_202D_202D_206A_200D_200C_202C_202D_206D_202A_206F_200F_200D_202B_202C_206C_200C_202B_206F_206C_206D_206B_200C_206E_202E((ushort)3282); - case 0: - num = ((!potentialQuests.Any((QuestInfo x) => _003C_003Ec._206A_202A_200F_202D_206E_206A_200C_202D_206C_206C_206D_206E_206E_200E_200D_206E_200E_200C_206D_202D_206E_200B_202A_202E_206A_202C_200E_200F_206D_206C_200F_206A_206C_206D_200E_200C_200B_202D_206A_200F_202E(x.QuestId) == 4865)) ? 1548487797 : 1548487798); - break; - case 1: - num = ((!potentialQuests.Any((QuestInfo x) => _003C_003Ec._206A_202A_200F_202D_206E_206A_200C_202D_206C_206C_206D_206E_206E_200E_200D_206E_200E_200C_206D_202D_206E_200B_202A_202E_206A_202C_200E_200F_206D_206C_200F_206A_206C_206D_200E_200C_200B_202D_206A_200F_202E(x.QuestId) == 4359)) ? 1548487793 : 1548487802); - break; - case 2: - return _206E_200C_200C_202B_206D_202B_206B_200C_202A_206A_202E_202B_206F_206A_200D_202E_200B_202D_202D_206A_200D_200C_202C_202D_206D_202A_206F_200F_200D_202B_202C_206C_200C_202B_206F_206C_206D_206B_200C_206E_202E((ushort)2451); - } + return new QuestId(681); } + if (potentialQuests.Any((QuestInfo x) => x.QuestId.Value == 1583)) + { + return new QuestId(1583); + } + if (potentialQuests.Any((QuestInfo x) => x.QuestId.Value == 2451)) + { + return new QuestId(2451); + } + if (potentialQuests.Any((QuestInfo x) => x.QuestId.Value == 3282)) + { + return new QuestId(3282); + } + if (potentialQuests.Any((QuestInfo x) => x.QuestId.Value == 4359)) + { + return new QuestId(4359); + } + if (potentialQuests.Any((QuestInfo x) => x.QuestId.Value == 4865)) + { + return new QuestId(4865); + } + return null; } internal unsafe bool IsOnAlliedSocietyMount() { - IPlayerCharacter playerCharacter = _206C_200E_202E_206E_202D_206B_202B_206B_200D_200C_206C_202E_200C_200F_202E_200C_200B_202B_206E_202E_202B_206B_206F_206F_206E_206B_206D_206F_202E_202C_206A_202C_202D_200D_206E_200D_200E_202C_206B_206C_202E(_objectTable); - BattleChara* ptr = (BattleChara*)((playerCharacter != null) ? _200C_200E_202D_206B_206E_202B_206F_206A_202C_200D_200E_206F_206F_200D_206E_206B_200D_202E_206B_200F_206F_206A_202A_206E_206C_202C_206F_206C_202C_200C_200F_206B_206E_202C_202A_202E_200E_202B_202C_200E_202E((IGameObject)playerCharacter) : 0); - int num = ((ptr == null) ? (-510270648) : (-510270646)); - while (true) + BattleChara* ptr = (BattleChara*)(_objectTable.LocalPlayer?.Address ?? 0); + if (ptr != null && ptr->Mount.MountId != 0) { - int num2 = num; - int num3 = -510270645; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -510270646; - break; - case 1: - num = ((ptr->Mount.MountId == 0) ? (-510270648) : (-510270647)); - break; - case 2: - return _alliedSocietyData.Mounts.ContainsKey(ptr->Mount.MountId); - case 3: - return false; - } + return _alliedSocietyData.Mounts.ContainsKey(ptr->Mount.MountId); } + return false; } internal bool IsInteractSequence(ElementId questId, byte sequenceNo, uint[] dataIds) { - Questionable.Model.Quest quest; - int num = ((!_questRegistry.TryGetQuest(questId, out quest)) ? (-2105146533) : (-2105146532)); - QuestSequence questSequence = default(QuestSequence); - while (true) + if (_questRegistry.TryGetQuest(questId, out Quest quest)) { - int num2 = num; - int num3 = -2105146529; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return quest.FindSequence(sequenceNo)?.Steps.All(delegate(QuestStep x) { - case 2: - return false; - case 3: - questSequence = quest.FindSequence(sequenceNo); - num = ((questSequence == null) ? (-2105146531) : (-2105146530)); - break; - case 1: - return _206E_200B_200C_206A_206B_200E_202C_202C_200E_206B_202B_200E_200E_202E_200B_202E_206C_202C_206A_202C_206E_202D_202C_206F_202A_202B_202B_202B_206A_202D_206D_202C_202E_206E_202E_206F_206C_206A_206F_202E(questSequence).All(delegate(QuestStep x) + if (x == null || x.InteractionType != EInteractionType.WalkTo) { - int num7 = ((x == null) ? (-1902168028) : (-1902168030)); - uint? num11 = default(uint?); - while (true) + if (x != null && x.InteractionType == EInteractionType.Interact) { - int num8 = num7; - int num9 = -1902168027; - int num10 = num8; - switch ((num10 | num9) - (num10 & num9)) + uint? dataId = x.DataId; + if (dataId.HasValue) { - case 4: - num7 = -1902168030; - break; - case 3: - { - uint valueOrDefault = num11.GetValueOrDefault(); + uint valueOrDefault = dataId.GetValueOrDefault(); return ((ReadOnlySpan<uint>)dataIds).Contains(valueOrDefault); } - case 1: - num7 = ((x == null) ? (-1902168029) : (-1902168032)); - break; - case 0: - num11 = _003C_003Ec__DisplayClass24_0._202A_202E_202C_206A_206B_206F_202E_200D_202E_206B_200F_206D_200C_200E_202C_200F_202D_202A_202E_202E_200B_206B_202B_202A_206B_200E_202C_206B_206F_202A_202C_206C_202E_200E_206C_202A_202B_206B_200B_206F_202E(x); - num7 = ((!num11.HasValue) ? (-1902168029) : (-1902168026)); - break; - case 7: - num7 = ((_003C_003Ec__DisplayClass24_0._206A_202C_200B_200D_202A_206B_206C_200F_200F_206C_200C_202C_206C_206A_206C_200D_206C_200E_200C_206F_202B_200E_206B_200B_206A_202B_200B_206D_202D_202B_202C_200D_202E_206F_202A_206B_202E_206B_200E_206D_202E(x) == EInteractionType.WalkTo) ? (-1902168025) : (-1902168028)); - break; - case 6: - return false; - case 5: - num7 = ((_003C_003Ec__DisplayClass24_0._206A_202C_200B_200D_202A_206B_206C_200F_200F_206C_200C_202C_206C_206A_206C_200D_206C_200E_200C_206F_202B_200E_206B_200B_206A_202B_200B_206D_202D_202B_202C_200D_202E_206F_202A_206B_202E_206B_200E_206D_202E(x) != EInteractionType.Interact) ? (-1902168029) : (-1902168027)); - break; - case 2: - return true; - } } - }); - case 4: - return false; - case 0: - num = -2105146532; - break; - } + return false; + } + return true; + }) ?? false; } + return false; } public unsafe QuestProgressInfo? GetQuestProgressInfo(ElementId elementId) { - QuestId questId = elementId as QuestId; - int num = (((object)questId == null) ? (-1920386293) : (-1920386290)); - QuestWork* questById = default(QuestWork*); - while (true) + if (elementId is QuestId questId) { - int num2 = num; - int num3 = -1920386294; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + QuestWork* questById = QuestManager.Instance()->GetQuestById(questId.Value); + if (questById == null) { - case 2: return null; - case 3: - return new QuestProgressInfo(*questById); - case 1: - return null; - case 4: - questById = QuestManager.Instance()->GetQuestById(_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E((ElementId)questId)); - num = ((questById != null) ? (-1920386295) : (-1920386296)); - break; - case 0: - num = -1920386290; - break; } + return new QuestProgressInfo(*questById); } + return null; } public List<PriorityQuestInfo> GetNextPriorityQuestsThatCanBeAccepted() { return (from x in GetPriorityQuests() where IsReadyToAcceptQuest(x) - select x).Select([MethodImpl(MethodImplOptions.NoInlining)] (ElementId x) => + select x).Select(delegate(ElementId x) { - Questionable.Model.Quest quest; - int num = (_questRegistry.TryGetQuest(x, out quest) ? 997542980 : 997542983); - QuestInfo questInfo = default(QuestInfo); - while (true) + if (!_questRegistry.TryGetQuest(x, out Quest quest)) { - int num2 = num; - int num3 = 997542978; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = ((quest.Info.Level > 5) ? 997542987 : 997542986); - break; - case 3: - if (questInfo.ClassJobs.Any(delegate(EClassJob eClassJob) - { - int num5 = (_003C_003Ec._202E_206D_206E_200E_202B_206E_200F_206A_206C_202D_200E_202E_200B_206E_202A_200F_200C_206D_206E_200F_206E_200C_200F_202C_202D_200C_200D_200D_206B_200D_200C_202B_202C_206F_202A_206E_206D_202A_206F_206A_202E(eClassJob) ? 1114029440 : 1114029443); - while (true) - { - int num6 = num5; - int num7 = 1114029442; - int num8 = num6; - switch ((num8 | num7) - (num8 & num7)) - { - case 0: - goto IL_0046; - case 1: - return !_003C_003Ec._200C_200E_200C_202A_202B_202A_206D_202D_206E_202C_202A_202A_206B_200D_200C_206B_200E_200D_202D_206A_202E_202E_206B_206F_200F_202C_202B_206E_200B_200C_202D_206F_202E_202B_202D_200D_202E_202B_202A_206C_202E(eClassJob); - case 2: - return false; - } - continue; - IL_0046: - num5 = 1114029443; - } - })) - { - num = 997542981; - break; - } - goto case 9; - case 10: - num = (_aetheryteFunctions.IsTeleportUnlocked() ? 997542981 : 997542979); - break; - case 11: - num = ((questInfo.ClassJobs.Count <= 0) ? 997542987 : 997542977); - break; - case 0: - num = 997542983; - break; - case 8: - questInfo = quest.Info as QuestInfo; - num = ((questInfo == null) ? 997542987 : 997542985); - break; - case 6: - { - QuestSequence? questSequence = quest.FindSequence(0); - num = ((((questSequence != null) ? _206A_202E_202C_200C_206E_202B_202C_200E_200B_202B_206F_206B_200E_202A_202A_202B_202E_206B_200E_200E_202B_206F_202C_206E_202C_200B_202D_206E_206B_200B_206A_202E_206D_202B_206C_202B_200F_200F_200E_200D_202E(questSequence, 0) : null) != null) ? 997542982 : 997542976); - break; - } - case 5: - return new PriorityQuestInfo(x, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2146806073)); - case 9: - num = 997542984; - break; - case 2: - return new PriorityQuestInfo(x, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1367010804)); - case 7: - return new PriorityQuestInfo(x); - case 1: - return new PriorityQuestInfo(x, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(924143673)); - } + return new PriorityQuestInfo(x, "Unknown quest"); } + if (quest.FindSequence(0)?.FindStep(0) == null) + { + return new PriorityQuestInfo(x, "No sequence 0 with steps"); + } + return ((quest.Info.Level > 5 || !(quest.Info is QuestInfo questInfo) || questInfo.ClassJobs.Count <= 0 || !questInfo.ClassJobs.Any((EClassJob classJob) => !classJob.IsCrafter() && !classJob.IsGatherer())) && !_aetheryteFunctions.IsTeleportUnlocked()) ? new PriorityQuestInfo(x, "Teleport not unlocked") : new PriorityQuestInfo(x); }).ToList(); } - [MethodImpl(MethodImplOptions.NoInlining)] public List<ElementId> GetPriorityQuests(bool onlyClassAndRoleQuests = false) { List<ElementId> list = new List<ElementId>(); - int num = (onlyClassAndRoleQuests ? 1630044705 : 1630044712); - IReadOnlyList<uint> roleQuestChaptersForPreference = default(IReadOnlyList<uint>); - int num9 = default(int); - uint? num7 = default(uint?); - IReadOnlyList<QuestId> finalRoleQuests = default(IReadOnlyList<QuestId>); - ERoleQuestPreference roleQuestPreference = default(ERoleQuestPreference); - EClassJob valueOrDefault = default(EClassJob); - EClassJob valueOrDefault2 = default(EClassJob); - while (true) + if (!onlyClassAndRoleQuests) { - int num2 = num; - int num3 = 1630044705; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - EClassJob? obj; - EClassJob? obj2; - EClassJob? eClassJob; - switch (num5 - (num6 + num6)) + if (!_configuration.Advanced.SkipARealmRebornHardModePrimals) { - case 18: list.AddRange(QuestData.HardModePrimals.Skip(1)); - num = 1630044707; - break; - case 13: - list.AddRange(from x in _questData.GetRoleQuestsByChapter(roleQuestChaptersForPreference[num9]) - where _questRegistry.IsKnownQuest(x.QuestId) - select x.QuestId); - num = 1630044732; - break; - case 23: - { - IPlayerCharacter playerCharacter = _206C_200E_202E_206E_202D_206B_202B_206B_200D_200C_206C_202E_200C_200F_202E_200C_200B_202B_206E_202E_202B_206B_206F_206F_206E_206B_206D_206F_202E_202C_206A_202C_202D_200D_206E_200D_200E_202C_206B_206C_202E(_objectTable); - num7 = ((playerCharacter != null) ? new uint?(_206B_206D_202C_202E_202B_206C_202B_206C_206C_206B_200C_206F_200C_206F_206B_206A_206E_200D_202B_206B_206A_202A_206E_202D_202B_206C_202E_202D_206F_202B_206F_206D_202D_206C_202A_206C_200D_206A_206D_206B_202E((ICharacter)playerCharacter).RowId) : ((uint?)null)); - num = (num7.HasValue ? 1630044719 : 1630044720); - break; } - case 26: - obj = null; - goto IL_0213; - case 12: - num9 = 1; - num = 1630044706; - break; - case 3: - num = ((num9 >= roleQuestChaptersForPreference.Count) ? 1630044725 : 1630044709); - break; - case 4: - num = ((num9 < finalRoleQuests.Count) ? 1630044724 : 1630044725); - break; - case 27: - obj = (EClassJob)num7.GetValueOrDefault(); - goto IL_0213; - case 19: - num = (_configuration.Advanced.SkipRoleQuests ? 1630044725 : 1630044726); - break; - case 5: - _206E_200F_202E_206E_200F_206E_202D_200C_202B_200C_202A_206B_202D_206A_200C_202A_206B_202C_206D_206E_206B_200E_206F_200E_206F_202E_200D_202B_202A_202E_202A_200D_206E_202E_202E_202A_200C_200E_206E_206B_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1774164352), new object[2] { roleQuestPreference, valueOrDefault }); - num = 1630044725; - break; - case 17: - obj2 = null; - goto IL_0305; - case 25: - roleQuestChaptersForPreference = QuestData.GetRoleQuestChaptersForPreference(roleQuestPreference, valueOrDefault); - finalRoleQuests = QuestData.GetFinalRoleQuests(roleQuestPreference, valueOrDefault); - num = ((roleQuestChaptersForPreference.Count <= 0) ? 1630044710 : 1630044727); - break; - case 14: - obj2 = (EClassJob)num7.GetValueOrDefault(); - goto IL_0305; - case 21: - num = (IsQuestComplete(finalRoleQuests[num9]) ? 1630044732 : 1630044716); - break; - case 20: - num = (onlyClassAndRoleQuests ? 1630044714 : 1630044729); - break; - case 6: - list.AddRange(from x in _questRegistry.GetKnownClassJobQuests(valueOrDefault2, includeRoleQuests: false) - select x.QuestId); - num = 1630044722; - break; - case 10: - num = 1630044712; - break; - case 16: - list.AddRange(from x in _questData.GetRoleQuestsByChapter(roleQuestChaptersForPreference[0]) - where _questRegistry.IsKnownQuest(x.QuestId) - select x.QuestId); - num = 1630044710; - break; - case 28: - list.AddRange(GetAllRankUpQuestsNeeded()); - num = 1630044714; - break; - case 2: - num = (_configuration.Advanced.SkipCrystalTowerRaids ? 1630044705 : 1630044704); - break; - case 9: - num = (_configuration.Advanced.SkipARealmRebornHardModePrimals ? 1630044707 : 1630044723); - break; - case 7: - num = ((!_configuration.Advanced.ContinueRoleQuestsAfterShb) ? 1630044725 : 1630044717); - break; - case 8: + if (!_configuration.Advanced.SkipCrystalTowerRaids) { - IPlayerCharacter playerCharacter2 = _206C_200E_202E_206E_202D_206B_202B_206B_200D_200C_206C_202E_200C_200F_202E_200C_200B_202B_206E_202E_202B_206B_206F_206F_206E_206B_206D_206F_202E_202C_206A_202C_202D_200D_206E_200D_200E_202C_206B_206C_202E(_objectTable); - num7 = ((playerCharacter2 != null) ? new uint?(_206B_206D_202C_202E_202B_206C_202B_206C_206C_206B_200C_206F_200C_206F_206B_206A_206E_200D_202B_206B_206A_202A_206E_202D_202B_206C_202E_202D_206F_202B_206F_206D_202D_206C_202A_206C_200D_206A_206D_206B_202E((ICharacter)playerCharacter2).RowId) : ((uint?)null)); - num = (num7.HasValue ? 1630044730 : 1630044731); - break; - } - case 11: - return list.Where(_questRegistry.IsKnownQuest).ToList(); - case 15: - roleQuestPreference = _configuration.Advanced.RoleQuestPreference; - num = (QuestData.JobMatchesRolePreference(roleQuestPreference, valueOrDefault) ? 1630044728 : 1630044708); - break; - case 0: - num = (_configuration.Advanced.SkipClassJobQuests ? 1630044722 : 1630044713); - break; - case 22: - num = (IsQuestComplete(finalRoleQuests[0]) ? 1630044710 : 1630044721); - break; - case 29: - { - int num8 = num9; - num3 = 1; - num4 = num8; - int num10 = num4 ^ num3; - int num11 = num4 & num3; - num9 = num10 + (num11 + num11); - num = 1630044706; - break; - } - case 1: list.AddRange(QuestData.CrystalTowerQuests); - num = 1630044705; - break; - case 24: - { - num = ((!_configuration.Advanced.AutoPrioritizeAlliedSocietyRankUp) ? 1630044714 : 1630044733); - break; - } - IL_0213: - eClassJob = obj; - valueOrDefault2 = eClassJob.GetValueOrDefault(); - num = ((valueOrDefault2 == EClassJob.Adventurer) ? 1630044722 : 1630044711); - break; - IL_0305: - eClassJob = obj2; - valueOrDefault = eClassJob.GetValueOrDefault(); - num = ((valueOrDefault == EClassJob.Adventurer) ? 1630044725 : 1630044718); - break; } } + if (!_configuration.Advanced.SkipClassJobQuests) + { + EClassJob valueOrDefault = ((EClassJob?)_objectTable.LocalPlayer?.ClassJob.RowId).GetValueOrDefault(); + if (valueOrDefault != EClassJob.Adventurer) + { + list.AddRange(from x in _questRegistry.GetKnownClassJobQuests(valueOrDefault, includeRoleQuests: false) + select x.QuestId); + } + } + if (!_configuration.Advanced.SkipRoleQuests) + { + EClassJob valueOrDefault2 = ((EClassJob?)_objectTable.LocalPlayer?.ClassJob.RowId).GetValueOrDefault(); + if (valueOrDefault2 != EClassJob.Adventurer) + { + ERoleQuestPreference roleQuestPreference = _configuration.Advanced.RoleQuestPreference; + if (!QuestData.JobMatchesRolePreference(roleQuestPreference, valueOrDefault2)) + { + _logger.LogDebug("Role quest preference {Preference} does not match current job {ClassJob}, skipping", roleQuestPreference, valueOrDefault2); + } + else + { + IReadOnlyList<uint> roleQuestChaptersForPreference = QuestData.GetRoleQuestChaptersForPreference(roleQuestPreference, valueOrDefault2); + IReadOnlyList<QuestId> finalRoleQuests = QuestData.GetFinalRoleQuests(roleQuestPreference, valueOrDefault2); + if (roleQuestChaptersForPreference.Count > 0 && !IsQuestComplete(finalRoleQuests[0])) + { + list.AddRange(from x in _questData.GetRoleQuestsByChapter(roleQuestChaptersForPreference[0]) + where _questRegistry.IsKnownQuest(x.QuestId) + select x.QuestId); + } + if (_configuration.Advanced.ContinueRoleQuestsAfterShb) + { + for (int num = 1; num < roleQuestChaptersForPreference.Count && num < finalRoleQuests.Count; num++) + { + if (!IsQuestComplete(finalRoleQuests[num])) + { + list.AddRange(from x in _questData.GetRoleQuestsByChapter(roleQuestChaptersForPreference[num]) + where _questRegistry.IsKnownQuest(x.QuestId) + select x.QuestId); + } + } + } + } + } + } + if (!onlyClassAndRoleQuests && _configuration.Advanced.AutoPrioritizeAlliedSocietyRankUp) + { + list.AddRange(GetAllRankUpQuestsNeeded()); + } + return list.Where(_questRegistry.IsKnownQuest).ToList(); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe bool IsReadyToAcceptQuest(ElementId questId, bool ignoreLevel = false) { - int num = ((!IsQuestBlacklisted(questId)) ? (-1992777380) : (-1992777347)); - IQuestInfo info = default(IQuestInfo); - Questionable.Model.Quest quest = default(Questionable.Model.Quest); - QuestInfo questInfo = default(QuestInfo); - byte b = default(byte); - QuestId questId3 = default(QuestId); - EClassJob valueOrDefault = default(EClassJob); - uint? num5 = default(uint?); - QuestId questId2 = default(QuestId); - IQuestInfo questInfo2 = default(IQuestInfo); - while (true) + if (IsQuestBlacklisted(questId)) { - int num2 = num; - int num3 = -1992777348; - int num4 = num2; - EClassJob? obj; - EClassJob? eClassJob; - switch ((num4 | num3) - (num4 & num3)) + return false; + } + _questRegistry.TryGetQuest(questId, out Quest quest); + if (quest != null) + { + IQuestInfo info = quest.Info; + if (info != null && info.IsRepeatable) { - case 24: - info = quest.Info; - num = ((info == null) ? (-1992777386) : (-1992777353)); - break; - case 9: - num = ((questInfo.Level <= b) ? (-1992777374) : (-1992777354)); - break; - case 38: - num = ((!_configuration.Advanced.AutoPrioritizeAlliedSocietyRankUp) ? (-1992777349) : (-1992777345)); - break; - case 19: - return false; - case 39: - questId3 = questId as QuestId; - num = (((object)questId3 == null) ? (-1992777348) : (-1992777363)); - break; - case 28: - num = (quest.Info.ClassJobs.Contains(valueOrDefault) ? (-1992777346) : (-1992777364)); - break; - case 20: - obj = (EClassJob)num5.GetValueOrDefault(); - goto IL_01d5; - case 34: - return false; - case 6: - num = (ignoreLevel ? (-1992777374) : (-1992777375)); - break; - case 31: - questId2 = questId as QuestId; - num = (((object)questId2 == null) ? (-1992777374) : (-1992777388)); - break; - case 15: - _206E_200F_202E_206E_200F_206E_202D_200C_202B_200C_202A_206B_202D_206A_200C_202A_206B_202C_206D_206E_206B_200E_206F_200E_206F_202E_200D_202B_202A_202E_202A_200D_206E_202E_202E_202A_200C_200E_206E_206B_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(850994949), new object[3] + if (IsQuestAccepted(questId)) { - questId, - quest.Info.Level, - b - }); - num = -1992777391; - break; - case 33: - questInfo = questInfo2 as QuestInfo; - num = ((questInfo == null) ? (-1992777374) : (-1992777355)); - break; - case 4: - num = ((quest.Info.Level <= b) ? (-1992777360) : (-1992777359)); - break; - case 14: - return false; - case 25: - return false; - case 43: - return false; - case 17: - num = ((!IsDailyAlliedSocietyQuest(questId3)) ? (-1992777348) : (-1992777366)); - break; - case 35: - return false; - case 32: - _questRegistry.TryGetQuest(questId, out quest); - num = ((quest == null) ? (-1992777386) : (-1992777372)); - break; - case 26: - return false; - case 7: - num = ((!IsQuestLocked(questId)) ? (-1992777350) : (-1992777362)); - break; - case 41: - num = (IsDailyAlliedSocietyQuestAndAvailableToday(questId3) ? (-1992777382) : (-1992777377)); - break; - case 11: - num = ((!info.IsRepeatable) ? (-1992777386) : (-1992777384)); - break; - case 3: - num = ((!WouldOvercapAlliedSocietyReputation(questId3)) ? (-1992777349) : (-1992777385)); - break; - case 2: - return true; - case 22: - num = ((!QuestManager.Instance()->IsDailyQuestCompleted(_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E(questId))) ? (-1992777387) : (-1992777361)); - break; - case 1: - return false; - case 13: - num = ((!_alreadyLoggedLevelRequirements.Add(_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E(questId))) ? (-1992777391) : (-1992777357)); - break; - case 16: - return false; - case 40: - num = ((!_questData.TryGetQuestInfo(questId2, out questInfo2)) ? (-1992777374) : (-1992777379)); - break; - case 44: - { - IPlayerCharacter playerCharacter2 = _206C_200E_202E_206E_202D_206B_202B_206B_200D_200C_206C_202E_200C_200F_202E_200C_200B_202B_206E_202E_202B_206B_206F_206F_206E_206B_206D_206F_202E_202C_206A_202C_202D_200D_206E_200D_200E_202C_206B_206C_202E(_objectTable); - num5 = ((playerCharacter2 != null) ? new uint?(_206B_206D_202C_202E_202B_206C_202B_206C_206C_206B_200C_206F_200C_206F_206B_206A_206E_200D_202B_206B_206A_202A_206E_202D_202B_206C_202E_202D_206F_202B_206F_206D_202D_206C_202A_206C_200D_206A_206D_206B_202E((ICharacter)playerCharacter2).RowId) : ((uint?)null)); - num = (num5.HasValue ? (-1992777368) : (-1992777369)); - break; - } - case 30: - num = ((quest == null) ? (-1992777346) : (-1992777365)); - break; - case 18: - return false; - case 42: - num = ((!IsQuestAcceptedOrComplete(questId)) ? (-1992777349) : (-1992777370)); - break; - case 8: - num = ((quest == null) ? (-1992777360) : (-1992777352)); - break; - case 36: - num = ((!IsQuestAccepted(questId)) ? (-1992777381) : (-1992777378)); - break; - case 23: - num = ((quest.Info.ClassJobs.Count <= 0) ? (-1992777346) : (-1992777392)); - break; - case 5: - return false; - case 0: - num = ((!IsQuestComplete(questId)) ? (-1992777349) : (-1992777371)); - break; - case 10: - num = ((!_alreadyLoggedLevelRequirements.Add(_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E((ElementId)questId2))) ? (-1992777358) : (-1992777383)); - break; - case 45: - return false; - case 12: - num = ((quest != null) ? (-1992777374) : (-1992777373)); - break; - case 29: - { - IPlayerCharacter playerCharacter = _206C_200E_202E_206E_202D_206B_202B_206B_200D_200C_206C_202E_200C_200F_202E_200C_200B_202B_206E_202E_202B_206B_206F_206F_206E_206B_206D_206F_202E_202C_206A_202C_202D_200D_206E_200D_200E_202C_206B_206C_202E(_objectTable); - b = (byte)((playerCharacter != null) ? _202A_200F_206C_206F_202A_202B_202D_202E_200B_202B_202E_200B_202C_206F_202D_206D_206A_202E_200D_200E_200F_206D_206F_200C_206D_202B_206C_206E_206A_200D_200C_206A_206E_206F_206D_200F_200D_202A_206E_206F_202E((ICharacter)playerCharacter) : 0); - num = ((b != 0) ? (-1992777356) : (-1992777351)); - break; - } - case 27: - obj = null; - goto IL_01d5; - case 21: - num = -1992777347; - break; - case 37: - { - _206E_200F_202E_206E_200F_206E_202D_200C_202B_200C_202A_206B_202D_206A_200C_202A_206B_202C_206D_206E_206B_200E_206F_200E_206F_202E_200D_202B_202A_202E_202A_200D_206E_202E_202E_202A_200C_200E_206E_206B_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1851985149), new object[3] { questId2, questInfo.Level, b }); - num = -1992777358; - break; + return false; } - IL_01d5: - eClassJob = obj; - valueOrDefault = eClassJob.GetValueOrDefault(); - num = ((!_202D_206E_200B_200C_206B_206B_206C_206B_202A_206D_206B_206E_200D_206C_200C_200D_202A_206E_202D_206B_206C_206F_200E_202A_206B_200E_200D_200C_200C_206D_200C_202D_200E_202C_200B_206F_200C_206E_200E_200D_202E(valueOrDefault)) ? (-1992777346) : (-1992777376)); - break; + if (questId is QuestId questId2 && IsDailyAlliedSocietyQuest(questId2)) + { + if (QuestManager.Instance()->IsDailyQuestCompleted(questId.Value)) + { + return false; + } + if (!IsDailyAlliedSocietyQuestAndAvailableToday(questId2)) + { + return false; + } + if (_configuration.Advanced.AutoPrioritizeAlliedSocietyRankUp && WouldOvercapAlliedSocietyReputation(questId2)) + { + return false; + } + } + else if (IsQuestComplete(questId)) + { + return false; + } + goto IL_009f; } } + if (IsQuestAcceptedOrComplete(questId)) + { + return false; + } + goto IL_009f; + IL_009f: + if (IsQuestLocked(questId)) + { + return false; + } + if (!ignoreLevel) + { + byte b = _objectTable.LocalPlayer?.Level ?? 0; + if (b == 0) + { + return false; + } + if (quest != null && quest.Info.Level > b) + { + if (_alreadyLoggedLevelRequirements.Add(questId.Value)) + { + _logger.LogDebug("Quest {QuestId} level requirement not met: required {RequiredLevel}, current {CurrentLevel}", questId, quest.Info.Level, b); + } + return false; + } + if (quest == null && questId is QuestId questId3 && _questData.TryGetQuestInfo(questId3, out IQuestInfo questInfo) && questInfo is QuestInfo questInfo2 && questInfo2.Level > b) + { + if (_alreadyLoggedLevelRequirements.Add(questId3.Value)) + { + _logger.LogDebug("Quest {QuestId} (from data) level requirement not met: required {RequiredLevel}, current {CurrentLevel}", questId3, questInfo2.Level, b); + } + return false; + } + } + if (quest != null && quest.Info.ClassJobs.Count > 0) + { + EClassJob valueOrDefault = ((EClassJob?)_objectTable.LocalPlayer?.ClassJob.RowId).GetValueOrDefault(); + if (valueOrDefault.IsLimitedJob() && !quest.Info.ClassJobs.Contains(valueOrDefault)) + { + return false; + } + } + return true; } public bool IsQuestBlacklisted(ElementId questId) @@ -1383,396 +501,169 @@ internal sealed class QuestFunctions public bool IsQuestAcceptedOrComplete(ElementId elementId) { - int num = (IsQuestComplete(elementId) ? 397448495 : 397448492); - while (true) + if (!IsQuestComplete(elementId)) { - int num2 = num; - int num3 = 397448493; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return true; - case 1: - return IsQuestAccepted(elementId); - case 0: - goto IL_0053; - } - continue; - IL_0053: - num = 397448492; + return IsQuestAccepted(elementId); } + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public bool IsQuestAccepted(ElementId elementId) { - QuestId questId = elementId as QuestId; - int num = (((object)questId == null) ? 1127700724 : 1127700727); - while (true) + if (elementId is QuestId questId) { - int num2 = num; - int num3 = 1127700724; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1127700727; - break; - case 0: - num = ((!(elementId is UnlockLinkId)) ? 1127700720 : 1127700725); - break; - case 1: - return false; - case 3: - return IsQuestAccepted(questId); - case 4: - throw _206E_206E_206E_206E_206C_206F_206F_206B_206E_200F_206F_206D_202B_206E_206F_202D_202C_206A_206D_200B_206B_206F_206A_200E_206A_206C_200B_206B_202E_206A_206F_200E_202E_206E_202A_200E_200D_202C_202E_200F_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-390564641)); - } + return IsQuestAccepted(questId); } + if (elementId is UnlockLinkId) + { + return false; + } + throw new ArgumentOutOfRangeException("elementId"); } public unsafe bool IsQuestAccepted(QuestId questId) { - return QuestManager.Instance()->IsQuestAccepted(_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E((ElementId)questId)); + return QuestManager.Instance()->IsQuestAccepted(questId.Value); } public unsafe (QuestId Id, byte Sequence)? GetCurrentQuestWithoutPath() { QuestManager* ptr = QuestManager.Instance(); - int num = ((ptr != null) ? 1897423805 : 1897423796); - QuestId questId2 = default(QuestId); - QuestWork questWork = default(QuestWork); - int num8 = default(int); - int num7 = default(int); - ushort questId = default(ushort); - TrackingWork trackingWork = default(TrackingWork); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1897423797; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return null; + } + for (int num = ptr->TrackedQuests.Length - 1; num >= 0; num--) + { + TrackingWork trackingWork = ptr->TrackedQuests[num]; + if (trackingWork.QuestType == 1) { - case 15: - return null; - case 4: - return (questId2, questWork.Sequence); - case 7: - questWork = ptr->NormalQuests[num8]; - num = ((questWork.QuestId == 0) ? 1897423800 : 1897423806); - break; - case 12: - num = 1897423796; - break; - case 8: - num7 = ptr->TrackedQuests.Length - 1; - num = 1897423795; - break; - case 13: - { - int num9 = num8; - num3 = 1; - num4 = num9; - int num10 = num4 ^ num3; - int num11 = num4 & num3; - num8 = num10 + (num11 + num11); - num = 1897423792; - break; - } - case 9: - questId = ptr->NormalQuests[trackingWork.Index].QuestId; - num = ((questId == 0) ? 1897423799 : 1897423803); - break; - case 1: - return null; - case 10: - trackingWork = ptr->TrackedQuests[num7]; - num = ((trackingWork.QuestType != 1) ? 1897423799 : 1897423804); - break; - case 2: - { - int num12 = num7; - num3 = 1; - num4 = num12; - num7 = ~(~num4 + num3); - num = 1897423795; - break; - } - case 3: - return (_206E_200C_200C_202B_206D_202B_206B_200C_202A_206A_202E_202B_206F_206A_200D_202E_200B_202D_202D_206A_200D_200C_202C_202D_206D_202A_206F_200F_200D_202B_202C_206C_200C_202B_206F_206C_206D_206B_200C_206E_202E(questId), QuestManager.GetQuestSequence(questId)); - case 11: - questId2 = _206E_200C_200C_202B_206D_202B_206B_200C_202A_206A_202E_202B_206F_206A_200D_202E_200B_202D_202D_206A_200D_200C_202C_202D_206D_202A_206F_200F_200D_202B_202C_206C_200C_202B_206F_206C_206D_206B_200C_206E_202E(questWork.QuestId); - num = (HasUsablePath(questId2) ? 1897423800 : 1897423793); - break; - case 0: - num8 = 0; - num = 1897423792; - break; - case 5: - num = ((num8 < ptr->NormalQuests.Length) ? 1897423794 : 1897423802); - break; - case 14: - num = (HasUsablePath(_206E_200C_200C_202B_206D_202B_206B_200C_202A_206A_202E_202B_206F_206A_200D_202E_200B_202D_202D_206A_200D_200C_202C_202D_206D_202A_206F_200F_200D_202B_202C_206C_200C_202B_206F_206C_206D_206B_200C_206E_202E(questId)) ? 1897423799 : 1897423798); - break; - case 6: - num = ((num7 >= 0) ? 1897423807 : 1897423797); - break; + ushort questId = ptr->NormalQuests[trackingWork.Index].QuestId; + if (questId != 0 && !HasUsablePath(new QuestId(questId))) + { + return (new QuestId(questId), QuestManager.GetQuestSequence(questId)); + } } } + for (int i = 0; i < ptr->NormalQuests.Length; i++) + { + QuestWork questWork = ptr->NormalQuests[i]; + if (questWork.QuestId != 0) + { + QuestId questId2 = new QuestId(questWork.QuestId); + if (!HasUsablePath(questId2)) + { + return (questId2, questWork.Sequence); + } + } + } + return null; } private bool HasUsablePath(QuestId questId) { - Questionable.Model.Quest quest; - int num = ((!_questRegistry.TryGetQuest(questId, out quest)) ? 390771052 : 390771054); - while (true) + if (_questRegistry.TryGetQuest(questId, out Quest quest) && !quest.Root.Disabled) { - int num2 = num; - int num3 = 390771053; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return false; - case 3: - num = (_202A_202E_202A_206F_206A_206B_202A_206C_206D_206E_202B_202A_200C_202B_206F_200D_206D_200B_206E_200C_206B_200D_202E_200E_200D_200B_206F_206A_206E_206D_202B_206C_202C_202E_206C_200E_202B_202B_200F_206F_202E(quest.Root) ? 390771052 : 390771053); - break; - case 0: - return _202E_200D_202D_202D_202D_200B_200F_206A_200F_202B_206E_200B_202E_206E_206A_200D_202C_202C_200D_202D_202E_200D_202A_200F_202C_206F_206B_206C_200D_200F_200E_206F_202A_206D_206C_200B_206E_200B_200B_200E_202E(quest.Root).Count > 0; - case 2: - num = 390771054; - break; - } + return quest.Root.QuestSequence.Count > 0; } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] public bool IsQuestComplete(ElementId elementId) { - QuestId questId = elementId as QuestId; - int num = (((object)questId == null) ? (-2066082901) : (-2066082903)); - UnlockLinkId unlockLinkId = default(UnlockLinkId); - while (true) + if (elementId is QuestId questId) { - int num2 = num; - int num3 = -2066082904; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - unlockLinkId = elementId as UnlockLinkId; - num = (((object)unlockLinkId == null) ? (-2066082902) : (-2066082900)); - break; - case 1: - return IsQuestComplete(questId); - case 2: - throw _206E_206E_206E_206E_206C_206F_206F_206B_206E_200F_206F_206D_202B_206E_206F_202D_202C_206A_206D_200B_206B_206F_206A_200E_206A_206C_200B_206B_202E_206A_206F_200E_202E_206E_202A_200E_200D_202C_202E_200F_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2103986634)); - case 0: - num = -2066082903; - break; - case 4: - return IsQuestComplete(unlockLinkId); - } + return IsQuestComplete(questId); } + if (elementId is UnlockLinkId unlockLinkId) + { + return IsQuestComplete(unlockLinkId); + } + throw new ArgumentOutOfRangeException("elementId"); } public bool IsQuestComplete(QuestId questId) { - return QuestManager.IsQuestComplete(_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E((ElementId)questId)); + return QuestManager.IsQuestComplete(questId.Value); } public unsafe bool IsQuestComplete(UnlockLinkId unlockLinkId) { - return UIState.Instance()->IsUnlockLinkUnlocked(_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E((ElementId)unlockLinkId)); + return UIState.Instance()->IsUnlockLinkUnlocked(unlockLinkId.Value); } - [MethodImpl(MethodImplOptions.NoInlining)] public bool IsQuestLocked(ElementId elementId, ElementId? extraCompletedQuest = null) { - QuestId questId = elementId as QuestId; - int num = (((object)questId == null) ? (-1544253381) : (-1544253382)); - UnlockLinkId unlockLinkId = default(UnlockLinkId); - while (true) + if (elementId is QuestId questId) { - int num2 = num; - int num3 = -1544253381; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = -1544253382; - break; - case 1: - return IsQuestLocked(questId, extraCompletedQuest); - case 0: - unlockLinkId = elementId as UnlockLinkId; - num = (((object)unlockLinkId == null) ? (-1544253383) : (-1544253384)); - break; - case 3: - return IsQuestLocked(unlockLinkId); - case 2: - throw _206E_206E_206E_206E_206C_206F_206F_206B_206E_200F_206F_206D_202B_206E_206F_202D_202C_206A_206D_200B_206B_206F_206A_200E_206A_206C_200B_206B_202E_206A_206F_200E_202E_206E_202A_200E_200D_202C_202E_200F_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1715407065)); - } + return IsQuestLocked(questId, extraCompletedQuest); } + if (elementId is UnlockLinkId unlockLinkId) + { + return IsQuestLocked(unlockLinkId); + } + throw new ArgumentOutOfRangeException("elementId"); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe bool IsQuestLocked(QuestId questId, ElementId? extraCompletedQuest = null) { - int num = ((!IsQuestUnobtainable(questId, extraCompletedQuest)) ? (-914360076) : (-914360075)); - RetainerManager* ptr = default(RetainerManager*); - bool flag = default(bool); - IQuestInfo questInfo3 = default(IQuestInfo); - QuestInfo questInfo2 = default(QuestInfo); - byte b = default(byte); - QuestInfo questInfo = default(QuestInfo); - byte b2 = default(byte); - byte requiredGCRank = default(byte); - FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany grandCompany = default(FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany); - byte grandCompanyRank = default(byte); - while (true) + if (IsQuestUnobtainable(questId, extraCompletedQuest)) { - int num2 = num; - int num3 = -914360072; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return true; + } + QuestInfo questInfo = (QuestInfo)_questData.GetQuestInfo(questId); + if (questInfo.GrandCompany != GrandCompany.None) + { + GrandCompany grandCompany = GetGrandCompany(); + byte grandCompanyRank = GetGrandCompanyRank(); + byte requiredGCRank = QuestData.GetRequiredGCRank(questId); + if (questInfo.GrandCompany != grandCompany || grandCompanyRank < requiredGCRank) { - case 10: - ptr = RetainerManager.Instance(); - num = ((ptr == null) ? (-914360083) : (-914360080)); - break; - case 33: - num = ((!_journalData.MoogleDeliveryGenreId.HasValue) ? (-914360102) : (-914360079)); - break; - case 0: - num = ((!flag) ? (-914360066) : (-914360078)); - break; - case 27: - return true; - case 3: - num = ((!_questData.TryGetQuestInfo(extraCompletedQuest, out questInfo3)) ? (-914360102) : (-914360096)); - break; - case 24: - questInfo2 = questInfo3 as QuestInfo; - num = ((questInfo2 == null) ? (-914360102) : (-914360103)); - break; - case 26: - return true; - case 28: - { - byte num7 = b; - num3 = 1; - num4 = num7; - b = (byte)((num4 | num3) + (num4 & num3)); - num = -914360102; - break; - } - case 1: - num = -914360089; - break; - case 9: - num = ((questInfo2.JournalGenre != _journalData.MoogleDeliveryGenreId.Value) ? (-914360102) : (-914360092)); - break; - case 18: - return true; - case 32: - num = ((!questInfo.IsRepeatable) ? (-914360084) : (-914360070)); - break; - case 14: - num = -914360075; - break; - case 29: - flag = false; - num = -914360072; - break; - case 15: - return !HasCompletedPreviousInstances(questInfo); - case 31: - { - ushort num8 = _206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E((ElementId)questId); - num3 = 1432; - num4 = num8; - num = (((uint)(~(~num4 + num3)) > 2u) ? (-914360091) : (-914360082)); - break; - } - case 11: - num = ((b2 >= questInfo.AlliedSocietyRank) ? (-914360104) : (-914360086)); - break; - case 25: - num = ((questInfo.AlliedSociety == EAlliedSociety.None) ? (-914360084) : (-914360087)); - break; - case 7: - b = _206C_206D_206C_202B_200B_200E_202A_200B_202D_202C_202B_206A_202C_206A_202D_202B_206F_202E_202C_200C_202B_202D_206C_206C_206B_206B_200E_206A_202D_202A_202E_206B_206C_200F_202C_202C_202E_200F_202C_206C_202E(); - num = ((!_206E_202C_206F_202A_202E_202A_202A_200F_206C_202E_202C_206B_202A_200C_206C_206E_202D_202C_200E_200B_202A_206A_200D_202C_202C_202B_202B_206A_202D_206A_206C_206C_202D_200B_200E_200D_202E_202A_206C_206D_202E(extraCompletedQuest, (ElementId)null)) ? (-914360102) : (-914360069)); - break; - case 6: - num = ((!HasCompletedPreviousQuests(questInfo, extraCompletedQuest)) ? (-914360094) : (-914360073)); - break; - case 16: - _206E_200F_202E_206E_200F_206E_202D_200C_202B_200C_202A_206B_202D_206A_200C_202A_206B_202C_206D_206E_206B_200E_206F_200E_206F_202E_200D_202B_202A_202E_202A_200D_206E_202E_202E_202A_200C_200E_206E_206B_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1828520044), new object[5] { questId, questInfo.GrandCompany, requiredGCRank, grandCompany, grandCompanyRank }); - num = -914360093; - break; - case 17: - b2 = _202D_200D_206A_202C_206E_206F_200E_206A_202E_200F_206D_206F_206D_202D_202D_200E_200D_206A_206D_202B_200C_206C_206D_200C_200F_202A_206C_202E_200C_206E_200B_202D_202D_206F_206A_206F_200F_202A_206E_206F_202E((byte)questInfo.AlliedSociety); - num = ((b2 == 0) ? (-914360086) : (-914360077)); - break; - case 19: - if (questInfo.JournalGenre == _journalData.MoogleDeliveryGenreId.Value) + if (_alreadyLoggedGcLockedQuests.Add(questId.Value)) { - num = -914360065; - break; + _logger.LogDebug("Quest {QuestId} locked: required GC {RequiredGc}, required rank {RequiredRank}, player GC {PlayerGc}, player rank {PlayerRank}", questId, questInfo.GrandCompany, requiredGCRank, grandCompany, grandCompanyRank); } - goto case 1; - case 5: - grandCompany = GetGrandCompany(); - grandCompanyRank = GetGrandCompanyRank(); - requiredGCRank = QuestData.GetRequiredGCRank(questId); - num = ((questInfo.GrandCompany != grandCompany) ? (-914360068) : (-914360081)); - break; - case 20: - num = ((!_journalData.MoogleDeliveryGenreId.HasValue) ? (-914360071) : (-914360085)); - break; - case 12: - questInfo = (QuestInfo)_questData.GetQuestInfo(questId); - num = ((questInfo.GrandCompany == FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany.None) ? (-914360095) : (-914360067)); - break; - case 30: return true; - case 8: - num = ((ptr->MaxRetainerEntitlement != 0) ? (-914360066) : (-914360083)); - break; - case 2: - return !IsDailyAlliedSocietyQuestAndAvailableToday(questId); - case 23: - num = ((grandCompanyRank >= requiredGCRank) ? (-914360095) : (-914360068)); - break; - case 21: - return true; - case 4: - num = ((!_alreadyLoggedGcLockedQuests.Add(_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E((ElementId)questId))) ? (-914360093) : (-914360088)); - break; - case 13: - return true; - case 22: - flag = true; - num = -914360072; - break; - case 34: - num = ((questInfo.MoogleDeliveryLevel <= b) ? (-914360089) : (-914360090)); - break; } } + if (questInfo.AlliedSociety != EAlliedSociety.None) + { + byte beastTribeRank = PlayerStateHelper.GetBeastTribeRank((byte)questInfo.AlliedSociety); + if (beastTribeRank == 0 || beastTribeRank < questInfo.AlliedSocietyRank) + { + return true; + } + if (questInfo.IsRepeatable) + { + return !IsDailyAlliedSocietyQuestAndAvailableToday(questId); + } + } + if (_journalData.MoogleDeliveryGenreId.HasValue && questInfo.JournalGenre == _journalData.MoogleDeliveryGenreId.Value) + { + byte b = PlayerStateHelper.GetDeliveryLevel(); + if (extraCompletedQuest != null && _questData.TryGetQuestInfo(extraCompletedQuest, out IQuestInfo questInfo2) && questInfo2 is QuestInfo questInfo3 && _journalData.MoogleDeliveryGenreId.HasValue && questInfo3.JournalGenre == _journalData.MoogleDeliveryGenreId.Value) + { + b++; + } + if (questInfo.MoogleDeliveryLevel > b) + { + return true; + } + } + ushort value = questId.Value; + if ((uint)(value - 1432) <= 2u) + { + RetainerManager* ptr = RetainerManager.Instance(); + if (ptr == null || ptr->MaxRetainerEntitlement == 0) + { + return true; + } + } + if (HasCompletedPreviousQuests(questInfo, extraCompletedQuest)) + { + return !HasCompletedPreviousInstances(questInfo); + } + return true; } private static bool IsQuestLocked(UnlockLinkId unlockLinkId) @@ -1783,709 +674,279 @@ internal sealed class QuestFunctions public bool IsDailyAlliedSocietyQuest(QuestId questId) { QuestInfo questInfo = (QuestInfo)_questData.GetQuestInfo(questId); - int num = ((questInfo.AlliedSociety == EAlliedSociety.None) ? 1697823360 : 1697823363); - while (true) + if (questInfo.AlliedSociety != EAlliedSociety.None) { - int num2 = num; - int num3 = 1697823361; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return false; - case 2: - return questInfo.IsRepeatable; - case 0: - goto IL_0061; - } - continue; - IL_0061: - num = 1697823363; + return questInfo.IsRepeatable; } + return false; } public bool IsDailyAlliedSocietyQuestAndAvailableToday(QuestId questId) { - int num = (IsDailyAlliedSocietyQuest(questId) ? 919802169 : 919802170); - while (true) + if (!IsDailyAlliedSocietyQuest(questId)) { - int num2 = num; - int num3 = 919802171; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0047; - case 2: - { - QuestInfo questInfo = (QuestInfo)_questData.GetQuestInfo(questId); - return _alliedSocietyQuestFunctions.GetAvailableAlliedSocietyQuests(questInfo.AlliedSociety).Contains(questId); - } - case 1: - return false; - } - continue; - IL_0047: - num = 919802170; + return false; } + QuestInfo questInfo = (QuestInfo)_questData.GetQuestInfo(questId); + return _alliedSocietyQuestFunctions.GetAvailableAlliedSocietyQuests(questInfo.AlliedSociety).Contains(questId); } public bool WouldOvercapAlliedSocietyReputation(QuestId questId) { - int num = (IsDailyAlliedSocietyQuest(questId) ? 2116876460 : 2116876461); - while (true) + if (!IsDailyAlliedSocietyQuest(questId)) { - int num2 = num; - int num3 = 2116876460; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0049; - case 0: - return _alliedSocietyQuestFunctions.WouldOvercapReputation(questId); - case 1: - return false; - } - continue; - IL_0049: - num = 2116876461; + return false; } + return _alliedSocietyQuestFunctions.WouldOvercapReputation(questId); } public QuestId? GetRankUpQuestIfAtCapacity(EAlliedSociety alliedSociety) { (byte, ushort, ushort, bool, bool)? reputationStatus = _alliedSocietyQuestFunctions.GetReputationStatus(alliedSociety); - int num = (reputationStatus.HasValue ? 1865488196 : 1865488197); - byte item2 = default(byte); - bool item = default(bool); - while (true) + if (!reputationStatus.HasValue) { - int num2 = num; - int num3 = 1865488196; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - { - (byte, ushort, ushort, bool, bool) value = reputationStatus.Value; - item2 = value.Item1; - bool item3 = value.Item4; - item = value.Item5; - num = (item3 ? 1865488198 : 1865488199); - break; - } - case 4: - return _alliedSocietyQuestFunctions.GetRankUpQuest(alliedSociety, item2); - case 5: - num = 1865488197; - break; - case 3: - num = (item ? 1865488192 : 1865488198); - break; - case 2: - return null; - case 1: - return null; - } + return null; } + var (currentRank, _, _, flag, flag2) = reputationStatus.Value; + if (flag || !flag2) + { + return null; + } + return _alliedSocietyQuestFunctions.GetRankUpQuest(alliedSociety, currentRank); } public List<QuestId> GetAllRankUpQuestsNeeded() { List<QuestId> list = new List<QuestId>(); - IEnumerator<EAlliedSociety> enumerator = (from s in Enum.GetValues<EAlliedSociety>() + foreach (EAlliedSociety item in from s in Enum.GetValues<EAlliedSociety>() where s != EAlliedSociety.None - select s).GetEnumerator(); - try + select s) { - int num = 588258585; - QuestId rankUpQuestIfAtCapacity = default(QuestId); - while (true) + QuestId rankUpQuestIfAtCapacity = GetRankUpQuestIfAtCapacity(item); + if (rankUpQuestIfAtCapacity != null && !IsQuestComplete(rankUpQuestIfAtCapacity) && !IsQuestAccepted(rankUpQuestIfAtCapacity)) { - int num2 = num; - int num3 = 588258585; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - list.Add(rankUpQuestIfAtCapacity); - num = 588258585; - break; - case 6: - { - EAlliedSociety current = enumerator.Current; - rankUpQuestIfAtCapacity = GetRankUpQuestIfAtCapacity(current); - num = ((!_206E_202C_206F_202A_202E_202A_202A_200F_206C_202E_202C_206B_202A_200C_206C_206E_202D_202C_200E_200B_202A_206A_200D_202C_202C_202B_202B_206A_202D_206A_206C_206C_202D_200B_200E_200D_202E_202A_206C_206D_202E((ElementId)rankUpQuestIfAtCapacity, (ElementId)null)) ? 588258585 : 588258587); - break; - } - case 3: - num = 588258585; - break; - case 0: - num = (_206A_200C_206C_206A_206C_202A_200E_206E_206E_200C_200D_206D_202E_206C_200F_206C_206A_202C_206A_206C_202E_206C_202A_202D_206C_202E_206C_206B_206F_200C_202E_200F_200F_200B_200D_206F_200C_200F_200E_206F_202E((IEnumerator)enumerator) ? 588258591 : 588258584); - break; - case 4: - num = (IsQuestAccepted(rankUpQuestIfAtCapacity) ? 588258585 : 588258588); - break; - case 2: - num = (IsQuestComplete(rankUpQuestIfAtCapacity) ? 588258585 : 588258589); - break; - case 1: - return list; - } - } - } - finally - { - int num = ((enumerator == null) ? (-621829932) : (-621829929)); - while (true) - { - int num5 = num; - int num3 = -621829930; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 2: - goto end_IL_0160; - case 1: - _202D_206D_202A_206C_206E_200E_200E_206B_200E_200D_200D_206D_206B_200C_206A_200E_202C_206F_200C_206F_202B_200D_206D_202C_206B_206E_200E_206D_202C_200D_202C_206A_200C_200C_200F_200B_202A_206F_206C_206F_202E((IDisposable)enumerator); - num = -621829932; - break; - case 0: - num = -621829929; - break; - } - continue; - end_IL_0160: - break; + list.Add(rankUpQuestIfAtCapacity); } } + return list; } public bool IsQuestUnobtainable(ElementId elementId, ElementId? extraCompletedQuest = null) { - QuestId questId = elementId as QuestId; - int num = (((object)questId == null) ? (-166207396) : (-166207395)); - UnlockLinkId unlockLinkId = default(UnlockLinkId); - while (true) + if (elementId is QuestId questId) { - int num2 = num; - int num3 = -166207396; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return IsQuestUnobtainableStatic(unlockLinkId); - case 1: - return IsQuestUnobtainable(questId, extraCompletedQuest); - case 0: - unlockLinkId = elementId as UnlockLinkId; - num = (((object)unlockLinkId == null) ? (-166207400) : (-166207394)); - break; - case 4: - return false; - case 3: - num = -166207395; - break; - } + return IsQuestUnobtainable(questId, extraCompletedQuest); } + if (elementId is UnlockLinkId unlockLinkId) + { + return IsQuestUnobtainableStatic(unlockLinkId); + } + return false; } private static bool IsQuestUnobtainableStatic(UnlockLinkId unlockLinkId) { - int num = ((_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E((ElementId)unlockLinkId) != 506) ? (-1159477851) : (-1159477850)); - while (true) + if (unlockLinkId.Value == 506) { - int num2 = num; - int num3 = -1159477849; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1159477850; - break; - case 1: - return !IsFestivalActive(160, (ushort)2); - case 3: - return !IsFestivalActive(160, (ushort)3); - case 2: - num = ((_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E((ElementId)unlockLinkId) != 568) ? (-1159477853) : (-1159477852)); - break; - case 4: - return true; - } + return !IsFestivalActive(160, (ushort)2); } + if (unlockLinkId.Value == 568) + { + return !IsFestivalActive(160, (ushort)3); + } + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public bool IsQuestUnobtainable(QuestId questId, ElementId? extraCompletedQuest = null) { IQuestInfo questInfo = _questData.GetQuestInfo(questId); - UnlockLinkQuestInfo unlockLinkQuestInfo = questInfo as UnlockLinkQuestInfo; - int num = ((unlockLinkQuestInfo == null) ? 449197430 : 449197379); - Questionable.Model.Quest quest = default(Questionable.Model.Quest); - DateTime valueOrDefault = default(DateTime); - DateTime? expiry = default(DateTime?); - DateTime dateTime = default(DateTime); - int num7 = default(int); - EClassJob value = default(EClassJob); - QuestInfo questInfo2 = default(QuestInfo); - byte b = default(byte); - List<QuestSequence> list = default(List<QuestSequence>); - while (true) + if (questInfo is UnlockLinkQuestInfo { QuestExpiry: { } questExpiry }) { - int num2 = num; - int num3 = 449197395; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - object obj; - switch (num5 - (num6 + num6)) + DateTime dateTime = ExpiryUtils.NormalizeExpiry(questExpiry); + if (_alreadyLoggedUnobtainableQuestsDetailed.Add(questId.Value)) { - case 44: - return true; - case 35: - return true; - case 20: - { - QuestRoot root = quest.Root; - obj = ((root != null) ? _200F_200B_200B_206F_206E_206B_206F_200D_202C_202D_202A_206B_202A_202D_206C_200B_206F_206D_202A_202A_200D_202A_200C_202D_206F_206A_206B_200C_202B_206C_200F_200E_206C_206F_200D_206C_206C_206A_200E_206E_202E(root) : null); - goto IL_0159; + _logger.LogDebug("UnlockLink quest {QuestId} expiry raw={ExpiryRaw} normalized={ExpiryUtc:o}", questId, questExpiry.ToString("o"), dateTime); } - case 48: - return true; - case 13: - return true; - case 31: - valueOrDefault = expiry.GetValueOrDefault(); - dateTime = ExpiryUtils.NormalizeExpiry(valueOrDefault); - num = ((!_alreadyLoggedUnobtainableQuestsDetailed.Add(_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E((ElementId)questId))) ? 449197398 : 449197429); - break; - case 28: - num = ((!_alreadyLoggedUnobtainableQuestsDetailed.Add(_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E((ElementId)questId))) ? 449197387 : 449197410); - break; - case 17: - num = ((!CloseToHomeQuests.Any((KeyValuePair<ushort, EClassJob> x) => IsQuestAcceptedOrComplete(_003C_003Ec__DisplayClass48_0._206E_202D_206E_200E_202E_206B_206B_202B_206D_202B_202D_206C_206E_202D_200B_206B_200E_200C_200F_206D_206C_206B_200B_202C_206F_206A_206A_202C_206D_206E_206F_206D_206A_202D_200C_200F_206F_200B_200B_206C_202E(x.Key)))) ? 449197409 : 449197404); - break; - case 52: - num = ((num7 <= 0) ? 449197395 : 449197428); - break; - case 15: - num = (((EClassJob)_202A_206F_206B_200E_206D_202B_200F_206E_202B_206D_200B_200C_206F_202D_206B_206B_202E_206C_202A_200F_202C_206B_200D_200B_200F_206C_206F_206E_200F_206E_200E_200C_206A_202E_202C_200F_206F_202A_206B_206E_202E() == value) ? 449197409 : 449197405); - break; - case 40: - num = ((questInfo2.QuestLocks.Count <= 0) ? 449197395 : 449197380); - break; - case 14: - return true; - case 42: - num = ((b == 3) ? 449197402 : 449197385); - break; - case 16: - expiry = unlockLinkQuestInfo.QuestExpiry; - num = ((!expiry.HasValue) ? 449197430 : 449197388); - break; - case 24: - return true; - case 22: + if (DateTime.UtcNow > dateTime) { - DateTime valueOrDefault2 = expiry.GetValueOrDefault(); - num = ((!(DateTime.UtcNow > ExpiryUtils.NormalizeExpiry(valueOrDefault2))) ? 449197438 : 449197406); - break; - } - case 51: - num = ((!questInfo2.IsSeasonalQuest) ? 449197394 : 449197377); - break; - case 49: - { - QuestData questData = _questData; - expiry = null; - questData.ApplySeasonalOverride(questId, isSeasonal: true, expiry); - _206E_200F_202E_206E_200F_206E_202D_200C_202B_200C_202A_206B_202D_206A_200C_202A_206B_202C_206D_206E_206B_200E_206F_200E_206F_202E_200D_202B_202A_202E_202A_200D_206E_202E_202E_202A_200C_200E_206E_206B_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(543870668), new object[2] { questId, questInfo2.JournalGenre }); - num = 449197387; - break; - } - case 46: - return false; - case 36: - if (list.Count > 0) - { - num = 449197435; - break; - } - goto case 21; - case 19: - obj = null; - goto IL_0159; - case 25: - b = _206C_202C_200B_200C_202D_206A_200C_206C_206D_202D_200D_202D_206E_202D_200F_202E_206A_200E_206A_200E_200D_202C_202C_202E_206D_200E_206C_200B_200D_206D_202D_206C_200F_200D_202D_206D_202A_206D_202B_200E_202E(); - num = ((questInfo2.StartingCity <= 0) ? 449197384 : 449197390); - break; - case 4: return true; - case 12: - num = ((!_questRegistry.TryGetQuest(questId, out quest)) ? 449197382 : 449197426); - break; - case 5: - num = ((!(DateTime.UtcNow > dateTime)) ? 449197430 : 449197401); - break; - case 2: - return true; - case 7: - num = ((questInfo2.QuestLocks.Count != num7) ? 449197397 : 449197411); - break; - case 47: - num = ((b != 3) ? 449197389 : 449197439); - break; - case 39: - return true; - case 27: - num = ((_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E((ElementId)questId) != 674) ? 449197389 : 449197436); - break; - case 1: - num = ((!QuestData.GetLockedClassQuests().Contains(questId)) ? 449197386 : 449197427); - break; - case 45: - num = (questInfo2.IsSeasonalEvent ? 449197377 : 449197408); - break; - case 34: - num = 449197379; - break; - case 10: - return true; - case 18: - expiry = questInfo2.SeasonalQuestExpiry; - num = (expiry.HasValue ? 449197394 : 449197403); - break; - case 8: - num = (_configuration.General.ShowIncompleteSeasonalEvents ? 449197394 : 449197393); - break; - case 38: - _206E_200F_202E_206E_200F_206E_202D_200C_202B_200C_202A_206B_202D_206A_200C_202A_206B_202C_206D_206E_206B_200E_206F_200E_206F_202E_200D_202B_202A_202E_202A_200D_206E_202E_202E_202A_200C_200E_206E_206B_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(770553959), new object[3] - { - questId, - valueOrDefault.ToString(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1434447138)), - dateTime - }); - num = 449197398; - break; - case 11: - num = ((!questInfo2.JournalGenre.HasValue) ? 449197435 : 449197392); - break; - case 3: - num = ((!_journalData.SeasonalEventGenreIds.Contains(questInfo2.JournalGenre.Value)) ? 449197435 : 449197407); - break; - case 32: - return true; - case 21: - case 41: - num = 449197391; - break; - case 26: - return true; - case 9: - num = ((!CloseToHomeQuests.TryGetValue(_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E((ElementId)questId), out value)) ? 449197409 : 449197378); - break; - case 29: - num = ((questInfo2.StartingCity == b) ? 449197384 : 449197432); - break; - case 37: - questInfo2 = (QuestInfo)questInfo; - num = (((int)questInfo2.Expansion <= (int)_200F_202C_202E_200B_202C_206F_202D_200E_206E_202E_206C_206F_206D_202B_206E_202E_202C_200B_202A_200E_206D_202D_200F_206A_202B_206E_202A_206E_202C_200F_202A_202B_200D_206B_206B_200D_206B_206D_200B_202B_202E()) ? 449197400 : 449197424); - break; - case 30: - num = ((_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E((ElementId)questId) != 673) ? 449197402 : 449197433); - break; - case 0: - expiry = questInfo2.SeasonalQuestExpiry; - num = ((!expiry.HasValue) ? 449197438 : 449197381); - break; - case 50: - num = ((!IsQuestRemoved(questId)) ? 449197437 : 449197399); - break; - case 43: - return true; - case 6: - num = ((questInfo2.QuestLockJoin != EQuestJoin.AtLeastOne) ? 449197395 : 449197415); - break; - case 33: - num = ((quest != null) ? 449197383 : 449197376); - break; - case 23: - { - num7 = questInfo2.QuestLocks.Count(delegate(QuestId x) - { - int num8 = (IsQuestComplete(x) ? 1809882662 : 1809882661); - while (true) - { - int num9 = num8; - int num10 = 1809882660; - int num11 = num9; - int num12 = num11 + num10; - int num13 = num11 & num10; - switch (num12 - (num13 + num13)) - { - case 0: - goto IL_004e; - case 2: - return true; - case 1: - return _003C_003Ec__DisplayClass48_0._206D_200C_200B_206C_206E_206D_202E_206C_200F_206F_206A_206D_202A_206C_200F_202E_206B_206A_200D_202D_206C_202E_202B_206E_206F_202B_206F_200E_206C_206A_202E_206F_200F_200D_200C_202C_200E_206F_206C_202E_202E((ElementId)x, extraCompletedQuest); - } - continue; - IL_004e: - num8 = 1809882661; - } - }); - num = ((questInfo2.QuestLockJoin != EQuestJoin.All) ? 449197397 : 449197396); - break; - } - IL_0159: - list = (List<QuestSequence>)obj; - num = ((list == null) ? 449197434 : 449197431); - break; } } + QuestInfo questInfo2 = (QuestInfo)questInfo; + if ((int)questInfo2.Expansion > (int)PlayerStateHelper.GetMaxExpansion()) + { + return true; + } + if (questInfo2.JournalGenre.HasValue && _journalData.SeasonalEventGenreIds.Contains(questInfo2.JournalGenre.Value)) + { + if (_questRegistry.TryGetQuest(questId, out Quest quest)) + { + List<QuestSequence> list = quest?.Root?.QuestSequence; + if (list != null && list.Count > 0) + { + goto IL_0188; + } + } + if (_alreadyLoggedUnobtainableQuestsDetailed.Add(questId.Value)) + { + _questData.ApplySeasonalOverride(questId, isSeasonal: true, null); + _logger.LogDebug("Quest {QuestId} unobtainable: journal genre {Genre} is 'event (seasonal)' and no quest path", questId, questInfo2.JournalGenre); + } + return true; + } + goto IL_0188; + IL_0188: + if (questInfo2.QuestLocks.Count > 0) + { + int num = questInfo2.QuestLocks.Count((QuestId x) => IsQuestComplete(x) || x.Equals(extraCompletedQuest)); + if (questInfo2.QuestLockJoin == EQuestJoin.All && questInfo2.QuestLocks.Count == num) + { + return true; + } + if (questInfo2.QuestLockJoin == EQuestJoin.AtLeastOne && num > 0) + { + return true; + } + } + DateTime? seasonalQuestExpiry = questInfo2.SeasonalQuestExpiry; + if (seasonalQuestExpiry.HasValue) + { + DateTime valueOrDefault = seasonalQuestExpiry.GetValueOrDefault(); + if (DateTime.UtcNow > ExpiryUtils.NormalizeExpiry(valueOrDefault)) + { + return true; + } + } + if ((questInfo2.IsSeasonalEvent || questInfo2.IsSeasonalQuest) && !questInfo2.SeasonalQuestExpiry.HasValue && !_configuration.General.ShowIncompleteSeasonalEvents) + { + return true; + } + if (QuestData.GetLockedClassQuests().Contains(questId)) + { + return true; + } + byte startTown = PlayerStateHelper.GetStartTown(); + if (questInfo2.StartingCity > 0 && questInfo2.StartingCity != startTown) + { + return true; + } + if (questId.Value == 674 && startTown == 3) + { + return true; + } + if (questId.Value == 673 && startTown != 3) + { + return true; + } + if (CloseToHomeQuests.TryGetValue(questId.Value, out var value) && CloseToHomeQuests.Any((KeyValuePair<ushort, EClassJob> x) => IsQuestAcceptedOrComplete(new QuestId(x.Key))) && (EClassJob)PlayerStateHelper.GetFirstClass() != value) + { + return true; + } + if (IsQuestRemoved(questId)) + { + return true; + } + return false; } private unsafe static bool IsFestivalActive(ushort id, ushort? phase = null) { - int num = 0; - int num2 = -858824134; - GameMain.Festival festival = default(GameMain.Festival); - while (true) + for (int i = 0; i < GameMain.Instance()->ActiveFestivals.Length; i++) { - int num3 = num2; - int num4 = -858824129; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) + GameMain.Festival festival = GameMain.Instance()->ActiveFestivals[i]; + if (festival.Id == id) { - case 5: - num2 = ((num < GameMain.Instance()->ActiveFestivals.Length) ? (-858824135) : (-858824132)); - break; - case 7: - { - int num8 = num; - num4 = 1; - num5 = num8; - num = (num5 | num4) + (num5 & num4); - num2 = -858824134; - break; - } - case 6: - festival = GameMain.Instance()->ActiveFestivals[num]; - num2 = ((festival.Id != id) ? (-858824136) : (-858824129)); - break; - case 4: - num2 = -858824134; - break; - case 0: - num2 = ((!phase.HasValue) ? (-858824131) : (-858824130)); - break; - case 3: - return false; - case 1: - return festival.Phase == phase; - case 2: + if (phase.HasValue) + { + return festival.Phase == phase; + } return true; } } + return false; } public bool IsQuestRemoved(ElementId elementId) { - QuestId questId = elementId as QuestId; - int num = (((object)questId == null) ? (-611057895) : (-611057894)); - while (true) + if (elementId is QuestId questId) { - int num2 = num; - int num3 = -611057896; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return false; - case 2: - return RemovedQuestIds.Contains(_206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E((ElementId)questId)); - case 0: - goto IL_005d; - } - continue; - IL_005d: - num = -611057894; + return RemovedQuestIds.Contains(questId.Value); } + return false; } private bool HasCompletedPreviousQuests(QuestInfo questInfo, ElementId? extraCompletedQuest) { - int num = ((questInfo.PreviousQuests.Count != 0) ? 1298444919 : 1298444917); - int num5 = default(int); - while (true) + if (questInfo.PreviousQuests.Count == 0) { - int num2 = num; - int num3 = 1298444913; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return true; - case 5: - num = ((questInfo.PreviousQuestJoin != EQuestJoin.AtLeastOne) ? 1298444921 : 1298444914); - break; - case 6: - num5 = questInfo.PreviousQuests.Count(delegate(PreviousQuestInfo x) - { - int num6 = (HasEnoughProgressOnPreviousQuest(x) ? 1555514480 : 1555514481); - while (true) - { - int num7 = num6; - int num8 = 1555514480; - int num9 = num7; - int num10 = num9 + num8; - int num11 = num9 & num8; - switch (num10 - (num11 + num11)) - { - case 2: - goto IL_004e; - case 1: - return _003C_003Ec__DisplayClass52_0._202D_200D_202D_202C_202C_200D_206F_200E_206A_206A_206E_200B_202E_206C_202C_202E_206D_202D_206D_200E_202A_202E_206A_206A_202C_202E_202C_200E_200C_206B_200B_200F_206C_206E_200F_202B_200C_202E_202E_206C_202E((ElementId)x.QuestId, extraCompletedQuest); - case 0: - return true; - } - continue; - IL_004e: - num6 = 1555514481; - } - }); - num = ((questInfo.PreviousQuestJoin != EQuestJoin.All) ? 1298444916 : 1298444912); - break; - case 1: - num = ((questInfo.PreviousQuests.Count != num5) ? 1298444916 : 1298444918); - break; - case 4: - return true; - case 3: - num = ((num5 <= 0) ? 1298444921 : 1298444915); - break; - case 7: - return true; - case 8: - return false; - case 0: - num = 1298444917; - break; - } + return true; } + int num = questInfo.PreviousQuests.Count((PreviousQuestInfo x) => HasEnoughProgressOnPreviousQuest(x) || x.QuestId.Equals(extraCompletedQuest)); + if (questInfo.PreviousQuestJoin == EQuestJoin.All && questInfo.PreviousQuests.Count == num) + { + return true; + } + if (questInfo.PreviousQuestJoin == EQuestJoin.AtLeastOne && num > 0) + { + return true; + } + return false; } private bool HasEnoughProgressOnPreviousQuest(PreviousQuestInfo previousQuestInfo) { - int num = ((!IsQuestComplete(previousQuestInfo.QuestId)) ? 2049591823 : 2049591820); - QuestProgressInfo questProgressInfo = default(QuestProgressInfo); - while (true) + if (IsQuestComplete(previousQuestInfo.QuestId)) { - int num2 = num; - int num3 = 2049591818; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return true; + } + if (previousQuestInfo.Sequence != 0 && IsQuestAccepted(previousQuestInfo.QuestId)) + { + QuestProgressInfo questProgressInfo = GetQuestProgressInfo(previousQuestInfo.QuestId); + if (questProgressInfo != null) { - case 5: - num = ((previousQuestInfo.Sequence == 0) ? 2049591819 : 2049591822); - break; - case 7: - return false; - case 4: - num = ((!IsQuestAccepted(previousQuestInfo.QuestId)) ? 2049591819 : 2049591818); - break; - case 2: - num = 2049591820; - break; - case 6: - return true; - case 0: - questProgressInfo = GetQuestProgressInfo(previousQuestInfo.QuestId); - num = ((questProgressInfo == null) ? 2049591821 : 2049591817); - break; - case 1: - return false; - case 3: return questProgressInfo.Sequence >= previousQuestInfo.Sequence; } + return false; } + return false; } private static bool HasCompletedPreviousInstances(QuestInfo questInfo) { - int num = ((questInfo.PreviousInstanceContent.Count != 0) ? 522219313 : 522219317); - int num7 = default(int); - while (true) + if (questInfo.PreviousInstanceContent.Count == 0) { - int num2 = num; - int num3 = 522219319; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 7: - num = 522219317; - break; - case 3: - num = ((questInfo.PreviousInstanceContentJoin != EQuestJoin.AtLeastOne) ? 522219319 : 522219315); - break; - case 0: - return false; - case 6: - num7 = questInfo.PreviousInstanceContent.Count((ushort x) => UIState.IsInstanceContentCompleted(x)); - num = ((questInfo.PreviousInstanceContentJoin != EQuestJoin.All) ? 522219316 : 522219318); - break; - case 8: - return true; - case 2: - return true; - case 5: - return true; - case 4: - num = ((num7 <= 0) ? 522219319 : 522219327); - break; - case 1: - num = ((questInfo.PreviousInstanceContent.Count != num7) ? 522219316 : 522219314); - break; - } + return true; } + int num = questInfo.PreviousInstanceContent.Count((ushort x) => UIState.IsInstanceContentCompleted(x)); + if (questInfo.PreviousInstanceContentJoin == EQuestJoin.All && questInfo.PreviousInstanceContent.Count == num) + { + return true; + } + if (questInfo.PreviousInstanceContentJoin == EQuestJoin.AtLeastOne && num > 0) + { + return true; + } + return false; } public bool IsClassJobUnlocked(EClassJob classJob) { - return _200F_202C_200E_202A_206F_200D_206D_200F_206B_202B_206E_202B_206F_200E_200E_206E_200D_202B_202C_202C_202D_202D_202C_200B_202A_202C_206C_202D_200F_200B_206C_200B_202D_202C_202B_202B_202D_206A_200F_202A_202E(classJob, _dataManager); + return ClassJobHelper.IsClassJobUnlocked(classJob, _dataManager); } public bool IsJobUnlocked(EClassJob classJob) { - return _206D_200E_202A_200E_206F_200B_200E_202D_200E_202D_206C_206D_202D_206B_200C_200B_200B_206C_206B_200D_206F_206A_206A_200E_200D_206C_202B_200F_206F_202A_200F_206D_200D_202D_200D_202A_200E_206E_206C_202A_202E(classJob, _dataManager); + return ClassJobHelper.IsJobUnlocked(classJob, _dataManager); } - public static FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany GetGrandCompany() + public static GrandCompany GetGrandCompany() { - return _202B_200D_206E_206C_200E_200B_200C_206F_206B_200B_206A_200E_206F_206F_200F_206B_202B_202B_202A_202D_202C_200E_206B_202A_200B_206A_200D_200E_206A_200F_202A_202A_206F_206C_200E_202A_200B_206D_206E_206C_202E(); + return GrandCompanyHelper.GetGrandCompany(); } public static byte GetGrandCompanyRank() { - return _202C_202E_206C_206E_206F_200D_202A_202A_206C_206B_206A_200F_200F_200D_200E_206F_200E_202D_206D_200B_206C_206A_206F_206E_200B_206C_202B_202C_202B_200E_206A_200F_206F_206E_202B_206E_200D_202B_202D_202E(); + return GrandCompanyHelper.GetGrandCompanyRank(); } public bool IsMainScenarioQuestComplete() @@ -2495,236 +956,40 @@ internal sealed class QuestFunctions public (bool isLevelLocked, int levelsNeeded, int requiredLevel, string? questName) GetMsqLevelLockInfo() { - IPlayerCharacter playerCharacter = _206C_200E_202E_206E_202D_206B_202B_206B_200D_200C_206C_202E_200C_200F_202E_200C_200B_202B_206E_202E_202B_206B_206F_206F_206E_206B_206D_206F_202E_202C_206A_202C_202D_200D_206E_200D_200E_202C_206B_206C_202E(_objectTable); - byte b = (byte)((playerCharacter != null) ? _202A_200F_206C_206F_202A_202B_202D_202E_200B_202B_202E_200B_202C_206F_202D_206D_206A_202E_200D_200E_200F_206D_206F_200C_206D_202B_206C_206E_206A_200D_200C_206A_206E_206F_206D_200F_200D_202A_206E_206F_202E((ICharacter)playerCharacter) : 0); - int num = ((b != 0) ? (-481817962) : (-481817955)); - QuestReference item = default(QuestReference); - int level = default(int); - QuestInfo questInfo = default(QuestInfo); - IQuestInfo questInfo2 = default(IQuestInfo); - int level2 = default(int); - Questionable.Model.Quest quest = default(Questionable.Model.Quest); - QuestId questId = default(QuestId); - while (true) + byte b = _objectTable.LocalPlayer?.Level ?? 0; + if (b == 0) { - int num2 = num; - int num3 = -481817966; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 7: - num = ((!IsQuestAccepted(item.CurrentQuest)) ? (-481817960) : (-481817961)); - break; - case 3: - { - int num8 = level; - num3 = b; - num4 = num8; - int item3 = ~(~num4 + num3); - return (isLevelLocked: true, levelsNeeded: item3, requiredLevel: level, questName: questInfo.Name); - } - case 1: - level = questInfo.Level; - num = ((level > b) ? (-481817967) : (-481817966)); - break; - case 14: - questInfo = questInfo2 as QuestInfo; - num = ((questInfo == null) ? (-481817958) : (-481817965)); - break; - case 2: - num = -481817955; - break; - case 8: - return (isLevelLocked: false, levelsNeeded: 0, requiredLevel: 0, questName: null); - case 9: - return (isLevelLocked: false, levelsNeeded: 0, requiredLevel: level2, questName: null); - case 12: - { - int num7 = level2; - num3 = b; - num4 = num7; - int item2 = ~(~num4 + num3); - return (isLevelLocked: true, levelsNeeded: item2, requiredLevel: level2, questName: quest.Info.Name); - } - case 11: - questId = item.CurrentQuest as QuestId; - num = (((object)questId == null) ? (-481817958) : (-481817953)); - break; - case 13: - num = ((!_questData.TryGetQuestInfo(questId, out questInfo2)) ? (-481817958) : (-481817956)); - break; - case 4: - item = GetMainScenarioQuest().Item1; - num = ((!_200D_202C_202E_202E_202E_206C_206B_206C_202D_206D_206B_202E_206A_202D_200B_206B_206E_206E_202A_200D_200C_200F_200D_206C_206E_200B_206A_200B_200C_202A_206F_202B_202B_206C_200E_200B_206E_200D_202A_202E(item.CurrentQuest, (ElementId)null)) ? (-481817963) : (-481817964)); - break; - case 6: - return (isLevelLocked: false, levelsNeeded: 0, requiredLevel: 0, questName: null); - case 0: - return (isLevelLocked: false, levelsNeeded: 0, requiredLevel: level, questName: null); - case 16: - level2 = quest.Info.Level; - num = ((level2 > b) ? (-481817954) : (-481817957)); - break; - case 10: - num = ((!_questRegistry.TryGetQuest(item.CurrentQuest, out quest)) ? (-481817959) : (-481817982)); - break; - case 15: - return (isLevelLocked: false, levelsNeeded: 0, requiredLevel: 0, questName: null); - case 5: - return (isLevelLocked: false, levelsNeeded: 0, requiredLevel: 0, questName: null); - } + return (isLevelLocked: false, levelsNeeded: 0, requiredLevel: 0, questName: null); } - } - - static void _202D_202C_202A_206D_202C_202C_202A_200F_200F_202B_202C_202A_206A_202D_200D_200E_202E_206E_200E_200C_200D_206A_206A_206D_202A_200E_206D_200B_202A_206C_206D_200D_200F_206A_206A_200B_206F_200C_206B_202A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogTrace(P_1, P_2); - } - - static QuestId _206E_200C_200C_202B_206D_202B_206B_200C_202A_206A_202E_202B_206F_206A_200D_202E_200B_202D_202D_206A_200D_200C_202C_202D_206D_202A_206F_200F_200D_202B_202C_206C_200C_202B_206F_206C_206D_206B_200C_206E_202E(ushort P_0) - { - return new QuestId(P_0); - } - - static ushort _206E_202D_206E_206C_202E_200F_206A_206E_200F_202A_206F_202B_200F_202C_206D_200D_206F_202A_200B_200F_200D_206B_200D_202E_206E_202E_202D_202D_200C_206A_206F_206B_206D_202D_206D_202A_202E_206A_202D_202A_202E(ElementId P_0) - { - return P_0.Value; - } - - static bool _206E_202C_206F_202A_202E_202A_202A_200F_206C_202E_202C_206B_202A_200C_206C_206E_202D_202C_200E_200B_202A_206A_200D_202C_202C_202B_202B_206A_202D_206A_206C_206C_202D_200B_200E_200D_202E_202A_206C_206D_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } - - static void _206E_200F_202E_206E_200F_206E_202D_200C_202B_200C_202A_206B_202D_206A_200C_202A_206B_202C_206D_206E_206B_200E_206F_200E_206F_202E_200D_202B_202A_202E_202A_200D_206E_202E_202E_202A_200C_200E_206E_206B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static IPlayerCharacter _206C_200E_202E_206E_202D_206B_202B_206B_200D_200C_206C_202E_200C_200F_202E_200C_200B_202B_206E_202E_202B_206B_206F_206F_206E_206B_206D_206F_202E_202C_206A_202C_202D_200D_206E_200D_200E_202C_206B_206C_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static byte _202A_200F_206C_206F_202A_202B_202D_202E_200B_202B_202E_200B_202C_206F_202D_206D_206A_202E_200D_200E_200F_206D_206F_200C_206D_202B_206C_206E_206A_200D_200C_206A_206E_206F_206D_200F_200D_202A_206E_206F_202E(ICharacter P_0) - { - return P_0.Level; - } - - static void _200F_206C_200D_206D_200B_202D_202B_200C_202E_206D_206F_202E_200F_200B_206A_200B_206A_202E_206D_200B_206B_202C_200C_202B_206D_202B_202B_200C_202D_202E_206A_206D_200B_200F_206E_206C_200D_200E_202A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static string _206A_202B_206A_202E_200D_200D_206A_200D_206E_200C_206D_206E_206E_200F_200C_206B_206E_202C_206B_206B_206E_200B_202D_206D_206A_200B_202C_206F_206D_206E_200E_200C_200C_200F_200C_206C_202D_206F_200B_206F_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static nint _200C_200E_202D_206B_206E_202B_206F_206A_202C_200D_200E_206F_206F_200D_206E_206B_200D_202E_206B_200F_206F_206A_202A_206E_206C_202C_206F_206C_202C_200C_200F_206B_206E_202C_202A_202E_200E_202B_202C_200E_202E(IGameObject P_0) - { - return P_0.Address; - } - - static List<QuestStep> _206E_200B_200C_206A_206B_200E_202C_202C_200E_206B_202B_200E_200E_202E_200B_202E_206C_202C_206A_202C_206E_202D_202C_206F_202A_202B_202B_202B_206A_202D_206D_202C_202E_206E_202E_206F_206C_206A_206F_202E(QuestSequence P_0) - { - return P_0.Steps; - } - - static RowRef<ClassJob> _206B_206D_202C_202E_202B_206C_202B_206C_206C_206B_200C_206F_200C_206F_206B_206A_206E_200D_202B_206B_206A_202A_206E_202D_202B_206C_202E_202D_206F_202B_206F_206D_202D_206C_202A_206C_200D_206A_206D_206B_202E(ICharacter P_0) - { - return P_0.ClassJob; - } - - static bool _202D_206E_200B_200C_206B_206B_206C_206B_202A_206D_206B_206E_200D_206C_200C_200D_202A_206E_202D_206B_206C_206F_200E_202A_206B_200E_200D_200C_200C_206D_200C_202D_200E_202C_200B_206F_200C_206E_200E_200D_202E(EClassJob P_0) - { - return P_0.IsLimitedJob(); - } - - static ArgumentOutOfRangeException _206E_206E_206E_206E_206C_206F_206F_206B_206E_200F_206F_206D_202B_206E_206F_202D_202C_206A_206D_200B_206B_206F_206A_200E_206A_206C_200B_206B_202E_206A_206F_200E_202E_206E_202A_200E_200D_202C_202E_200F_202E(string P_0) - { - return new ArgumentOutOfRangeException(P_0); - } - - static bool _202A_202E_202A_206F_206A_206B_202A_206C_206D_206E_202B_202A_200C_202B_206F_200D_206D_200B_206E_200C_206B_200D_202E_200E_200D_200B_206F_206A_206E_206D_202B_206C_202C_202E_206C_200E_202B_202B_200F_206F_202E(QuestRoot P_0) - { - return P_0.Disabled; - } - - static List<QuestSequence> _202E_200D_202D_202D_202D_200B_200F_206A_200F_202B_206E_200B_202E_206E_206A_200D_202C_202C_200D_202D_202E_200D_202A_200F_202C_206F_206B_206C_200D_200F_200E_206F_202A_206D_206C_200B_206E_200B_200B_200E_202E(QuestRoot P_0) - { - return P_0.QuestSequence; - } - - static byte _202D_200D_206A_202C_206E_206F_200E_206A_202E_200F_206D_206F_206D_202D_202D_200E_200D_206A_206D_202B_200C_206C_206D_200C_200F_202A_206C_202E_200C_206E_200B_202D_202D_206F_206A_206F_200F_202A_206E_206F_202E(byte P_0) - { - return PlayerStateHelper.GetBeastTribeRank(P_0); - } - - static byte _206C_206D_206C_202B_200B_200E_202A_200B_202D_202C_202B_206A_202C_206A_202D_202B_206F_202E_202C_200C_202B_202D_206C_206C_206B_206B_200E_206A_202D_202A_202E_206B_206C_200F_202C_202C_202E_200F_202C_206C_202E() - { - return PlayerStateHelper.GetDeliveryLevel(); - } - - static bool _206A_200C_206C_206A_206C_202A_200E_206E_206E_200C_200D_206D_202E_206C_200F_206C_206A_202C_206A_206C_202E_206C_202A_202D_206C_202E_206C_206B_206F_200C_202E_200F_200F_200B_200D_206F_200C_200F_200E_206F_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202D_206D_202A_206C_206E_200E_200E_206B_200E_200D_200D_206D_206B_200C_206A_200E_202C_206F_200C_206F_202B_200D_206D_202C_206B_206E_200E_206D_202C_200D_202C_206A_200C_200C_200F_200B_202A_206F_206C_206F_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static byte _200F_202C_202E_200B_202C_206F_202D_200E_206E_202E_206C_206F_206D_202B_206E_202E_202C_200B_202A_200E_206D_202D_200F_206A_202B_206E_202A_206E_202C_200F_202A_202B_200D_206B_206B_200D_206B_206D_200B_202B_202E() - { - return PlayerStateHelper.GetMaxExpansion(); - } - - static List<QuestSequence> _200F_200B_200B_206F_206E_206B_206F_200D_202C_202D_202A_206B_202A_202D_206C_200B_206F_206D_202A_202A_200D_202A_200C_202D_206F_206A_206B_200C_202B_206C_200F_200E_206C_206F_200D_206C_206C_206A_200E_206E_202E(QuestRoot P_0) - { - return P_0.QuestSequence; - } - - static byte _206C_202C_200B_200C_202D_206A_200C_206C_206D_202D_200D_202D_206E_202D_200F_202E_206A_200E_206A_200E_200D_202C_202C_202E_206D_200E_206C_200B_200D_206D_202D_206C_200F_200D_202D_206D_202A_206D_202B_200E_202E() - { - return PlayerStateHelper.GetStartTown(); - } - - static byte _202A_206F_206B_200E_206D_202B_200F_206E_202B_206D_200B_200C_206F_202D_206B_206B_202E_206C_202A_200F_202C_206B_200D_200B_200F_206C_206F_206E_200F_206E_200E_200C_206A_202E_202C_200F_206F_202A_206B_206E_202E() - { - return PlayerStateHelper.GetFirstClass(); - } - - static bool _200F_202C_200E_202A_206F_200D_206D_200F_206B_202B_206E_202B_206F_200E_200E_206E_200D_202B_202C_202C_202D_202D_202C_200B_202A_202C_206C_202D_200F_200B_206C_200B_202D_202C_202B_202B_202D_206A_200F_202A_202E(EClassJob P_0, IDataManager P_1) - { - return ClassJobHelper.IsClassJobUnlocked(P_0, P_1); - } - - static bool _206D_200E_202A_200E_206F_200B_200E_202D_200E_202D_206C_206D_202D_206B_200C_200B_200B_206C_206B_200D_206F_206A_206A_200E_200D_206C_202B_200F_206F_202A_200F_206D_200D_202D_200D_202A_200E_206E_206C_202A_202E(EClassJob P_0, IDataManager P_1) - { - return ClassJobHelper.IsJobUnlocked(P_0, P_1); - } - - static FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany _202B_200D_206E_206C_200E_200B_200C_206F_206B_200B_206A_200E_206F_206F_200F_206B_202B_202B_202A_202D_202C_200E_206B_202A_200B_206A_200D_200E_206A_200F_202A_202A_206F_206C_200E_202A_200B_206D_206E_206C_202E() - { - return GrandCompanyHelper.GetGrandCompany(); - } - - static byte _202C_202E_206C_206E_206F_200D_202A_202A_206C_206B_206A_200F_200F_200D_200E_206F_200E_202D_206D_200B_206C_206A_206F_206E_200B_206C_202B_202C_202B_200E_206A_200F_206F_206E_202B_206E_200D_202B_202D_202E() - { - return GrandCompanyHelper.GetGrandCompanyRank(); - } - - static bool _200D_202C_202E_202E_202E_206C_206B_206C_202D_206D_206B_202E_206A_202D_200B_206B_206E_206E_202A_200D_200C_200F_200D_206C_206E_200B_206A_200B_200C_202A_206F_202B_202B_206C_200E_200B_206E_200D_202A_202E(ElementId P_0, ElementId P_1) - { - return P_0 == P_1; - } - - static QuestStep _206A_202E_202C_200C_206E_202B_202C_200E_200B_202B_206F_206B_200E_202A_202A_202B_202E_206B_200E_200E_202B_206F_202C_206E_202C_200B_202D_206E_206B_200B_206A_202E_206D_202B_206C_202B_200F_200F_200E_200D_202E(QuestSequence P_0, int P_1) - { - return P_0.FindStep(P_1); + QuestReference item = GetMainScenarioQuest().Item1; + if (item.CurrentQuest == null) + { + return (isLevelLocked: false, levelsNeeded: 0, requiredLevel: 0, questName: null); + } + if (IsQuestAccepted(item.CurrentQuest)) + { + return (isLevelLocked: false, levelsNeeded: 0, requiredLevel: 0, questName: null); + } + if (_questRegistry.TryGetQuest(item.CurrentQuest, out Quest quest)) + { + int level = quest.Info.Level; + if (level <= b) + { + return (isLevelLocked: false, levelsNeeded: 0, requiredLevel: level, questName: null); + } + int item2 = level - b; + return (isLevelLocked: true, levelsNeeded: item2, requiredLevel: level, questName: quest.Info.Name); + } + if (item.CurrentQuest is QuestId elementId && _questData.TryGetQuestInfo(elementId, out IQuestInfo questInfo) && questInfo is QuestInfo questInfo2) + { + int level2 = questInfo2.Level; + if (level2 <= b) + { + return (isLevelLocked: false, levelsNeeded: 0, requiredLevel: level2, questName: null); + } + int item3 = level2 - b; + return (isLevelLocked: true, levelsNeeded: item3, requiredLevel: level2, questName: questInfo2.Name); + } + return (isLevelLocked: false, levelsNeeded: 0, requiredLevel: 0, questName: null); } } diff --git a/Questionable/Questionable.Functions/QuestReference.cs b/Questionable/Questionable.Functions/QuestReference.cs index 8b3a49c..dabe68a 100644 --- a/Questionable/Questionable.Functions/QuestReference.cs +++ b/Questionable/Questionable.Functions/QuestReference.cs @@ -1,150 +1,11 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Questionable.Model.Questing; namespace Questionable.Functions; public sealed record QuestReference(ElementId? CurrentQuest, byte Sequence, MainScenarioQuestState State) { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206F_200E_206D_200B_200C_206B_202E_200B_202A_206C_202D_206F_202E_202A_200D_206B_206A_206A_202B_206C_206E_206E_200E_206F_200D_206C_200C_202A_206E_206B_200D_202B_202B_200E_206A_200F_206B_206A_206D_202C_202E(typeof(QuestReference).TypeHandle); - } - } - public static QuestReference NoQuest(MainScenarioQuestState state) { return new QuestReference(null, 0, state); } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206F_200D_200B_200B_206E_200E_200B_206A_206D_206C_202A_206D_206A_206C_202D_202E_206F_206A_206F_200F_202B_206D_206B_202D_206F_206B_202D_206C_202B_202A_206F_200D_202E_202C_202D_202B_202D_206F_200D_200E_202E(); - _202C_202C_202A_202A_202A_206D_206F_200F_202C_200D_206D_206D_202A_202A_200D_202B_202A_206B_206F_202B_206B_200B_206C_206C_206A_202B_202C_202B_206E_200E_206B_202D_202B_200E_202A_202B_200C_200B_202E_202D_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1603834783)); - _202C_202C_202A_202A_202A_206D_206F_200F_202C_200D_206D_206D_202A_202A_200D_202B_202A_206B_206F_202B_206B_200B_206C_206C_206A_202B_202C_202B_206E_200E_206B_202D_202B_200E_202A_202B_200C_200B_202E_202D_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125)); - int num = ((!PrintMembers(stringBuilder)) ? (-1592482067) : (-1592482066)); - while (true) - { - int num2 = num; - int num3 = -1592482065; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - _200B_206E_200D_202B_202A_206B_200E_202D_202E_200F_200C_206C_200B_200F_200B_206F_206C_200E_202B_206E_200E_200E_200F_202B_202A_206F_200C_206F_200C_206C_206B_206E_202A_202D_202C_202D_200D_206F_206F_206D_202E(stringBuilder, '}'); - return _206D_202B_202C_202A_200C_202D_206D_200E_206F_202E_200E_202D_202E_206E_206F_200F_202D_202D_200C_200E_202A_202C_206A_206D_206B_206A_200E_200F_202A_200B_200D_206A_200D_206A_206C_200F_200D_202A_200B_202D_202E((object?)stringBuilder); - case 1: - _200B_206E_200D_202B_202A_206B_200E_202D_202E_200F_200C_206C_200B_200F_200B_206F_206C_200E_202B_206E_200E_200E_200F_202B_202A_206F_200C_206F_200C_206C_206B_206E_202A_202D_202C_202D_200D_206F_206F_206D_202E(stringBuilder, ' '); - num = -1592482067; - break; - case 0: - num = -1592482066; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200B_200B_206C_206B_206B_200F_206A_200C_200C_206E_200B_206D_206B_202D_200D_206E_206A_202C_202C_206A_202E_206E_202A_200E_200B_200E_200E_206F_202D_202A_200E_206F_206E_206E_206A_206F_206B_202E_206A_202C_202E(); - _202C_202C_202A_202A_202A_206D_206F_200F_202C_200D_206D_206D_202A_202A_200D_202B_202A_206B_206F_202B_206B_200B_206C_206C_206A_202B_202C_202B_206E_200E_206B_202D_202B_200E_202A_202B_200C_200B_202E_202D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1044019943)); - _206F_202E_206A_202C_206D_202B_202D_200D_200F_202A_206A_200B_206D_202E_206A_200D_202D_200F_200C_202C_202C_202C_200D_202C_200C_206A_206E_206C_200F_202E_202E_206D_206C_200D_200C_206A_206A_206A_202E_202E(builder, (object?)CurrentQuest); - _202C_202C_202A_202A_202A_206D_206F_200F_202C_200D_206D_206D_202A_202A_200D_202B_202A_206B_206F_202B_206B_200B_206C_206C_206A_202B_202C_202B_206E_200E_206B_202D_202B_200E_202A_202B_200C_200B_202E_202D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1350191881)); - _202C_202C_202A_202A_202A_206D_206F_200F_202C_200D_206D_206D_202A_202A_200D_202B_202A_206B_206F_202B_206B_200B_206C_206C_206A_202B_202C_202B_206E_200E_206B_202D_202B_200E_202A_202B_200C_200B_202E_202D_202E(builder, Sequence.ToString()); - _202C_202C_202A_202A_202A_206D_206F_200F_202C_200D_206D_206D_202A_202A_200D_202B_202A_206B_206F_202B_206B_200B_206C_206C_206A_202B_202C_202B_206E_200E_206B_202D_202B_200E_202A_202B_200C_200B_202E_202D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(867761492)); - _202C_202C_202A_202A_202A_206D_206F_200F_202C_200D_206D_206D_202A_202A_200D_202B_202A_206B_206F_202B_206B_200B_206C_206C_206A_202B_202C_202B_206E_200E_206B_202D_202B_200E_202A_202B_200C_200B_202E_202D_202E(builder, State.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(QuestReference? other) - { - int num = (((object)this == other) ? 1185181530 : 1185181535); - while (true) - { - int num2 = num; - int num3 = 1185181532; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = ((!_202C_206E_200C_206E_200C_206D_200F_202A_200D_200E_202A_202E_206D_200B_206E_200E_206F_202A_206C_206A_200F_202C_202D_200C_200B_206F_206D_202E_206F_206F_202A_206E_200B_206A_202C_200B_206D_206B_206F_200C_202E(EqualityContract, other.EqualityContract)) ? 1185181533 : 1185181529); - break; - case 7: - num = ((!EqualityComparer<byte>.Default.Equals(Sequence, other.Sequence)) ? 1185181533 : 1185181528); - break; - case 6: - return true; - case 2: - num = 1185181535; - break; - case 3: - num = (((object)other == null) ? 1185181533 : 1185181532); - break; - case 5: - num = ((!EqualityComparer<ElementId>.Default.Equals(CurrentQuest, other.CurrentQuest)) ? 1185181533 : 1185181531); - break; - case 4: - return EqualityComparer<MainScenarioQuestState>.Default.Equals(State, other.State); - case 1: - return false; - } - } - } - - bool IEquatable<QuestReference>.Equals(QuestReference? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type? _206F_200E_206D_200B_200C_206B_202E_200B_202A_206C_202D_206F_202E_202A_200D_206B_206A_206A_202B_206C_206E_206E_200E_206F_200D_206C_200C_202A_206E_206B_200D_202B_202B_200E_206A_200F_206B_206A_206D_202C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder? _206F_200D_200B_200B_206E_200E_200B_206A_206D_206C_202A_206D_206A_206C_202D_202E_206F_206A_206F_200F_202B_206D_206B_202D_206F_206B_202D_206C_202B_202A_206F_200D_202E_202C_202D_202B_202D_206F_200D_200E_202E() - { - return new StringBuilder(); - } - - static StringBuilder? _202C_202C_202A_202A_202A_206D_206F_200F_202C_200D_206D_206D_202A_202A_200D_202B_202A_206B_206F_202B_206B_200B_206C_206C_206A_202B_202C_202B_206E_200E_206B_202D_202B_200E_202A_202B_200C_200B_202E_202D_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _200B_206E_200D_202B_202A_206B_200E_202D_202E_200F_200C_206C_200B_200F_200B_206F_206C_200E_202B_206E_200E_200E_200F_202B_202A_206F_200C_206F_200C_206C_206B_206E_202A_202D_202C_202D_200D_206F_206F_206D_202E(StringBuilder? P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string? _206D_202B_202C_202A_200C_202D_206D_200E_206F_202E_200E_202D_202E_206E_206F_200F_202D_202D_200C_200E_202A_202C_206A_206D_206B_206A_200E_200F_202A_200B_200D_206A_200D_206A_206C_200F_200D_202A_200B_202D_202E(object? P_0) - { - return P_0.ToString(); - } - - static void _200B_200B_206C_206B_206B_200F_206A_200C_200C_206E_200B_206D_206B_202D_200D_206E_206A_202C_202C_206A_202E_206E_202A_200E_200B_200E_200E_206F_202D_202A_200E_206F_206E_206E_206A_206F_206B_202E_206A_202C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder? _206F_202E_206A_202C_206D_202B_202D_200D_200F_202A_206A_200B_206D_202E_206A_200D_202D_200F_200C_202C_202C_202C_200D_202C_200C_206A_206E_206C_200F_202E_202E_206D_206C_200D_200C_206A_206A_206A_202E_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } - - static bool _202C_206E_200C_206E_200C_206D_200F_202A_200D_200E_202A_202E_206D_200B_206E_200E_206F_202A_206C_206A_200F_202C_202D_200C_200B_206F_206D_202E_206F_206F_202A_206E_200B_206A_202C_200B_206D_206B_206F_200C_202E(Type? P_0, Type? P_1) - { - return P_0 == P_1; - } } diff --git a/Questionable/Questionable.LgbWorker/LevelEntry.cs b/Questionable/Questionable.LgbWorker/LevelEntry.cs new file mode 100644 index 0000000..ae2943d --- /dev/null +++ b/Questionable/Questionable.LgbWorker/LevelEntry.cs @@ -0,0 +1,21 @@ +using System.Text.Json.Serialization; + +namespace Questionable.LgbWorker; + +internal sealed class LevelEntry +{ + [JsonPropertyName("objectId")] + public uint ObjectId { get; set; } + + [JsonPropertyName("territoryId")] + public ushort TerritoryId { get; set; } + + [JsonPropertyName("x")] + public float X { get; set; } + + [JsonPropertyName("y")] + public float Y { get; set; } + + [JsonPropertyName("z")] + public float Z { get; set; } +} diff --git a/Questionable/Questionable.LgbWorker/LgbMessageType.cs b/Questionable/Questionable.LgbWorker/LgbMessageType.cs new file mode 100644 index 0000000..59c9147 --- /dev/null +++ b/Questionable/Questionable.LgbWorker/LgbMessageType.cs @@ -0,0 +1,7 @@ +namespace Questionable.LgbWorker; + +internal enum LgbMessageType : byte +{ + Progress = 1, + Final +} diff --git a/Questionable/Questionable.LgbWorker/LgbWorkerFraming.cs b/Questionable/Questionable.LgbWorker/LgbWorkerFraming.cs new file mode 100644 index 0000000..21bb26b --- /dev/null +++ b/Questionable/Questionable.LgbWorker/LgbWorkerFraming.cs @@ -0,0 +1,80 @@ +using System; +using System.IO; +using System.Text; + +namespace Questionable.LgbWorker; + +internal static class LgbWorkerFraming +{ + public static void Write(Stream stream, in LgbWorkerMessage message) + { + using MemoryStream memoryStream = new MemoryStream(); + using BinaryWriter binaryWriter = new BinaryWriter(memoryStream, Encoding.UTF8, leaveOpen: true); + binaryWriter.Write((byte)message.Type); + switch (message.Type) + { + case LgbMessageType.Progress: + binaryWriter.Write(message.Done); + binaryWriter.Write(message.Total); + break; + case LgbMessageType.Final: + binaryWriter.Write(message.Success); + binaryWriter.Write(message.DurationMs); + binaryWriter.Write(message.Error ?? string.Empty); + break; + default: + throw new ArgumentOutOfRangeException("message"); + } + binaryWriter.Flush(); + byte[] array = memoryStream.ToArray(); + Span<byte> span = stackalloc byte[4]; + BitConverter.TryWriteBytes(span, array.Length); + stream.Write(span); + stream.Write(array); + } + + public static LgbWorkerMessage Read(Stream stream) + { + Span<byte> span = stackalloc byte[4]; + ReadExact(stream, span); + int num = BitConverter.ToInt32(span); + if ((num <= 0 || num > 65536) ? true : false) + { + throw new InvalidDataException($"Invalid frame length: {num}"); + } + byte[] array = new byte[num]; + ReadExact(stream, array); + using BinaryReader binaryReader = new BinaryReader(new MemoryStream(array), Encoding.UTF8); + LgbMessageType lgbMessageType = (LgbMessageType)binaryReader.ReadByte(); + return lgbMessageType switch + { + LgbMessageType.Progress => new LgbWorkerMessage + { + Type = lgbMessageType, + Done = binaryReader.ReadInt32(), + Total = binaryReader.ReadInt32() + }, + LgbMessageType.Final => new LgbWorkerMessage + { + Type = lgbMessageType, + Success = binaryReader.ReadBoolean(), + DurationMs = binaryReader.ReadInt64(), + Error = binaryReader.ReadString() + }, + _ => throw new InvalidDataException($"Unknown message type: {lgbMessageType}"), + }; + } + + private static void ReadExact(Stream stream, Span<byte> buffer) + { + int num; + for (int i = 0; i < buffer.Length; i += num) + { + num = stream.Read(buffer.Slice(i)); + if (num == 0) + { + throw new EndOfStreamException(); + } + } + } +} diff --git a/Questionable/Questionable.LgbWorker/LgbWorkerManifest.cs b/Questionable/Questionable.LgbWorker/LgbWorkerManifest.cs new file mode 100644 index 0000000..bc6eaf8 --- /dev/null +++ b/Questionable/Questionable.LgbWorker/LgbWorkerManifest.cs @@ -0,0 +1,42 @@ +using System.Collections.Generic; +using System.IO; +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace Questionable.LgbWorker; + +internal sealed class LgbWorkerManifest +{ + [JsonPropertyName("sqpackPath")] + public string SqpackPath { get; set; } = string.Empty; + + [JsonPropertyName("gameVersion")] + public string GameVersion { get; set; } = string.Empty; + + [JsonPropertyName("npcCachePath")] + public string NpcCachePath { get; set; } = string.Empty; + + [JsonPropertyName("boundaryCachePath")] + public string BoundaryCachePath { get; set; } = string.Empty; + + [JsonPropertyName("territories")] + public List<TerritoryEntry> Territories { get; set; } = new List<TerritoryEntry>(); + + [JsonPropertyName("levelEntries")] + public List<LevelEntry> LevelEntries { get; set; } = new List<LevelEntry>(); + + public static LgbWorkerManifest Load(string path) + { + using FileStream utf8Json = File.OpenRead(path); + LgbWorkerManifest? obj = JsonSerializer.Deserialize<LgbWorkerManifest>(utf8Json) ?? throw new InvalidDataException("Manifest deserialized to null"); + if (string.IsNullOrWhiteSpace(obj.SqpackPath)) + { + throw new InvalidDataException("SqpackPath is missing"); + } + if (string.IsNullOrWhiteSpace(obj.GameVersion)) + { + throw new InvalidDataException("GameVersion is missing"); + } + return obj; + } +} diff --git a/Questionable/Questionable.LgbWorker/LgbWorkerMessage.cs b/Questionable/Questionable.LgbWorker/LgbWorkerMessage.cs new file mode 100644 index 0000000..a0fd9e4 --- /dev/null +++ b/Questionable/Questionable.LgbWorker/LgbWorkerMessage.cs @@ -0,0 +1,16 @@ +namespace Questionable.LgbWorker; + +internal readonly struct LgbWorkerMessage +{ + public LgbMessageType Type { get; init; } + + public int Done { get; init; } + + public int Total { get; init; } + + public bool Success { get; init; } + + public long DurationMs { get; init; } + + public string? Error { get; init; } +} diff --git a/Questionable/Questionable.LgbWorker/TerritoryEntry.cs b/Questionable/Questionable.LgbWorker/TerritoryEntry.cs new file mode 100644 index 0000000..d347f13 --- /dev/null +++ b/Questionable/Questionable.LgbWorker/TerritoryEntry.cs @@ -0,0 +1,18 @@ +using System.Text.Json.Serialization; + +namespace Questionable.LgbWorker; + +internal sealed class TerritoryEntry +{ + [JsonPropertyName("rowId")] + public uint RowId { get; set; } + + [JsonPropertyName("bgPath")] + public string BgPath { get; set; } = string.Empty; + + [JsonPropertyName("intendedUse")] + public byte IntendedUse { get; set; } + + [JsonPropertyName("hasAetheryte")] + public bool HasAetheryte { get; set; } +} diff --git a/Questionable/Questionable.Model.Changelog/ChangeCategoryExtensions.cs b/Questionable/Questionable.Model.Changelog/ChangeCategoryExtensions.cs index 2d0e4d2..6e17787 100644 --- a/Questionable/Questionable.Model.Changelog/ChangeCategoryExtensions.cs +++ b/Questionable/Questionable.Model.Changelog/ChangeCategoryExtensions.cs @@ -1,164 +1,32 @@ using System.Numerics; -using System.Runtime.CompilerServices; namespace Questionable.Model.Changelog; internal static class ChangeCategoryExtensions { - [MethodImpl(MethodImplOptions.NoInlining)] public static string ToDisplayString(this EChangeCategory category) { - int num; - string result = default(string); - switch (category) + return category switch { - default: - num = -1022171732; - goto IL_0025; - case EChangeCategory.Removed: - result = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1184271712); - num = -1022171735; - goto IL_0025; - case EChangeCategory.QuestUpdates: - goto IL_007a; - case EChangeCategory.Changed: - goto IL_0090; - case EChangeCategory.Added: - goto IL_00ca; - case EChangeCategory.Fixed: - goto IL_00e2; - IL_0025: - while (true) - { - int num2 = num; - int num3 = -1022171736; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - goto end_IL_0025; - case 2: - goto IL_007a; - case 0: - goto IL_0090; - case 7: - num = -1022171732; - break; - case 3: - result = category.ToString(); - num = -1022171735; - break; - case 6: - goto IL_00ca; - case 1: - return result; - case 8: - goto IL_00e2; - case 4: - num = -1022171733; - break; - } - continue; - end_IL_0025: - break; - } - goto case EChangeCategory.Removed; - IL_00e2: - result = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1940950850); - num = -1022171735; - goto IL_0025; - IL_00ca: - result = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-836593342); - num = -1022171735; - goto IL_0025; - IL_0090: - result = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-136424921); - num = -1022171735; - goto IL_0025; - IL_007a: - result = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-126460286); - num = -1022171735; - goto IL_0025; - } + EChangeCategory.Added => "Added", + EChangeCategory.Changed => "Changed", + EChangeCategory.Fixed => "Fixed", + EChangeCategory.Removed => "Removed", + EChangeCategory.QuestUpdates => "Quest Updates", + _ => category.ToString(), + }; } public static Vector4 GetColor(this EChangeCategory category) { - int num; - Vector4 result = default(Vector4); - switch (category) + return category switch { - default: - num = -1603635172; - goto IL_0025; - case EChangeCategory.QuestUpdates: - result = new Vector4(0.8f, 0.8f, 0.4f, 1f); - num = -1603635184; - goto IL_0025; - case EChangeCategory.Removed: - goto IL_0089; - case EChangeCategory.Fixed: - goto IL_00d3; - case EChangeCategory.Added: - goto IL_00f8; - case EChangeCategory.Changed: - goto IL_0135; - IL_0025: - while (true) - { - int num2 = num; - int num3 = -1603635180; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - goto end_IL_0025; - case 0: - goto IL_0089; - case 2: - result = new Vector4(0.7f, 0.7f, 0.7f, 1f); - num = -1603635184; - break; - case 1: - goto IL_00d3; - case 7: - goto IL_00f8; - case 8: - num = -1603635178; - break; - case 4: - return result; - case 5: - num = -1603635172; - break; - case 3: - goto IL_0135; - } - continue; - end_IL_0025: - break; - } - goto case EChangeCategory.QuestUpdates; - IL_0135: - result = new Vector4(0.4f, 0.6f, 0.9f, 1f); - num = -1603635184; - goto IL_0025; - IL_00f8: - result = new Vector4(0.3f, 0.8f, 0.4f, 1f); - num = -1603635184; - goto IL_0025; - IL_00d3: - result = new Vector4(0.9f, 0.6f, 0.3f, 1f); - num = -1603635184; - goto IL_0025; - IL_0089: - result = new Vector4(0.9f, 0.3f, 0.3f, 1f); - num = -1603635184; - goto IL_0025; - } + EChangeCategory.Added => new Vector4(0.3f, 0.8f, 0.4f, 1f), + EChangeCategory.Changed => new Vector4(0.4f, 0.6f, 0.9f, 1f), + EChangeCategory.Fixed => new Vector4(0.9f, 0.6f, 0.3f, 1f), + EChangeCategory.Removed => new Vector4(0.9f, 0.3f, 0.3f, 1f), + EChangeCategory.QuestUpdates => new Vector4(0.8f, 0.8f, 0.4f, 1f), + _ => new Vector4(0.7f, 0.7f, 0.7f, 1f), + }; } } diff --git a/Questionable/Questionable.Model.Changelog/ChangeEntry.cs b/Questionable/Questionable.Model.Changelog/ChangeEntry.cs index 29a8793..13574e2 100644 --- a/Questionable/Questionable.Model.Changelog/ChangeEntry.cs +++ b/Questionable/Questionable.Model.Changelog/ChangeEntry.cs @@ -1,148 +1,5 @@ -using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; namespace Questionable.Model.Changelog; -internal sealed record ChangeEntry(EChangeCategory Category, string Description, List<string>? SubItems = null) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206D_206B_200B_202B_206E_202B_200B_206A_206E_206B_200C_202B_202C_206A_200F_200B_206E_206F_206A_206C_200D_202C_206B_202C_200B_206A_202A_200C_200D_202A_206C_206E_200D_202D_202E_206D_206D_202C_200D_200D_202E(typeof(ChangeEntry).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206E_202C_202B_200D_200D_202C_206C_200F_206F_206C_202E_202A_200F_206A_200C_206A_200C_206C_206D_206F_200C_202C_206D_200F_202A_206F_200B_206E_200C_202C_200E_200D_200C_200B_202E_200D_206D_202E_206E_202B_202E(); - _206A_206F_200D_202A_200C_206D_202E_206B_200B_200F_206A_206A_200D_200F_206A_202C_202C_206A_206C_206E_200B_200E_202C_200D_202A_206F_202A_202D_202A_206B_206A_202A_200C_202A_202B_202E_206A_202B_200D_206C_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(474130306)); - _206A_206F_200D_202A_200C_206D_202E_206B_200B_200F_206A_206A_200D_200F_206A_202C_202C_206A_206C_206E_200B_200E_202C_200D_202A_206F_202A_202D_202A_206B_206A_202A_200C_202A_202B_202E_206A_202B_200D_206C_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125)); - int num = ((!PrintMembers(stringBuilder)) ? 1209671208 : 1209671211); - while (true) - { - int num2 = num; - int num3 = 1209671210; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1209671211; - break; - case 1: - _200D_200E_202C_200B_200E_202E_206D_200E_206D_200B_200E_206D_206D_206D_200E_202D_206F_206F_200E_202B_202A_206F_200E_206D_202C_206A_202A_202E_200F_206D_202D_206B_200B_206C_206A_206D_206A_202A_202D_202D_202E(stringBuilder, ' '); - num = 1209671208; - break; - case 2: - _200D_200E_202C_200B_200E_202E_206D_200E_206D_200B_200E_206D_206D_206D_200E_202D_206F_206F_200E_202B_202A_206F_200E_206D_202C_206A_202A_202E_200F_206D_202D_206B_200B_206C_206A_206D_206A_202A_202D_202D_202E(stringBuilder, '}'); - return _200F_206F_206C_200C_206D_202A_200D_200B_206C_200C_202D_202D_206A_206E_206D_200D_202B_206D_202D_206C_202A_200E_206D_202E_200C_202B_202E_200C_206F_206A_200B_202D_202C_206E_206E_206D_200B_202B_202E_200D_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206D_200D_206A_202E_206C_206F_202E_200B_206F_202E_200C_200F_200D_202C_200C_206E_202A_200F_202C_202B_206D_202E_202E_200E_202B_206E_200C_200D_202B_200F_200B_206E_200C_200B_202B_202D_202A_206E_206E_206F_202E(); - _206A_206F_200D_202A_200C_206D_202E_206B_200B_200F_206A_206A_200D_200F_206A_202C_202C_206A_206C_206E_200B_200E_202C_200D_202A_206F_202A_202D_202A_206B_206A_202A_200C_202A_202B_202E_206A_202B_200D_206C_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-114589338)); - _206A_206F_200D_202A_200C_206D_202E_206B_200B_200F_206A_206A_200D_200F_206A_202C_202C_206A_206C_206E_200B_200E_202C_200D_202A_206F_202A_202D_202A_206B_206A_202A_200C_202A_202B_202E_206A_202B_200D_206C_202E(builder, Category.ToString()); - _206A_206F_200D_202A_200C_206D_202E_206B_200B_200F_206A_206A_200D_200F_206A_202C_202C_206A_206C_206E_200B_200E_202C_200D_202A_206F_202A_202D_202A_206B_206A_202A_200C_202A_202B_202E_206A_202B_200D_206C_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-127749891)); - _206D_206F_206D_206C_206A_206E_206C_200D_200B_206A_200B_202B_206B_200E_200C_206C_202D_200E_202B_200E_206C_200E_200E_206D_200C_206A_202E_206B_206A_206D_206E_202C_202C_200E_200E_206B_200E_202C_200B_202A_202E(builder, (object)Description); - _206A_206F_200D_202A_200C_206D_202E_206B_200B_200F_206A_206A_200D_200F_206A_202C_202C_206A_206C_206E_200B_200E_202C_200D_202A_206F_202A_202D_202A_206B_206A_202A_200C_202A_202B_202E_206A_202B_200D_206C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2069471446)); - _206D_206F_206D_206C_206A_206E_206C_200D_200B_206A_200B_202B_206B_200E_200C_206C_202D_200E_202B_200E_206C_200E_200E_206D_200C_206A_202E_206B_206A_206D_206E_202C_202C_200E_200E_206B_200E_202C_200B_202A_202E(builder, (object)SubItems); - return true; - } - - [CompilerGenerated] - public bool Equals(ChangeEntry? other) - { - int num = (((object)this == other) ? 528623422 : 528623417); - while (true) - { - int num2 = num; - int num3 = 528623416; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = ((!_200D_206C_200F_206B_202D_202E_200B_202C_202D_200C_202B_202D_206C_200B_206B_202C_200F_206B_206B_206C_206D_202C_206D_202A_200C_206D_206B_206D_202E_206C_206C_202C_202A_202D_202A_206F_206D_200C_200D_200C_202E(EqualityContract, other.EqualityContract)) ? 528623419 : 528623418); - break; - case 5: - num = ((!EqualityComparer<string>.Default.Equals(Description, other.Description)) ? 528623419 : 528623423); - break; - case 4: - num = 528623417; - break; - case 2: - num = ((!EqualityComparer<EChangeCategory>.Default.Equals(Category, other.Category)) ? 528623419 : 528623421); - break; - case 7: - return EqualityComparer<List<string>>.Default.Equals(SubItems, other.SubItems); - case 6: - return true; - case 3: - return false; - case 1: - num = (((object)other == null) ? 528623419 : 528623416); - break; - } - } - } - - bool IEquatable<ChangeEntry>.Equals(ChangeEntry? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206D_206B_200B_202B_206E_202B_200B_206A_206E_206B_200C_202B_202C_206A_200F_200B_206E_206F_206A_206C_200D_202C_206B_202C_200B_206A_202A_200C_200D_202A_206C_206E_200D_202D_202E_206D_206D_202C_200D_200D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206E_202C_202B_200D_200D_202C_206C_200F_206F_206C_202E_202A_200F_206A_200C_206A_200C_206C_206D_206F_200C_202C_206D_200F_202A_206F_200B_206E_200C_202C_200E_200D_200C_200B_202E_200D_206D_202E_206E_202B_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206A_206F_200D_202A_200C_206D_202E_206B_200B_200F_206A_206A_200D_200F_206A_202C_202C_206A_206C_206E_200B_200E_202C_200D_202A_206F_202A_202D_202A_206B_206A_202A_200C_202A_202B_202E_206A_202B_200D_206C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200D_200E_202C_200B_200E_202E_206D_200E_206D_200B_200E_206D_206D_206D_200E_202D_206F_206F_200E_202B_202A_206F_200E_206D_202C_206A_202A_202E_200F_206D_202D_206B_200B_206C_206A_206D_206A_202A_202D_202D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200F_206F_206C_200C_206D_202A_200D_200B_206C_200C_202D_202D_206A_206E_206D_200D_202B_206D_202D_206C_202A_200E_206D_202E_200C_202B_202E_200C_206F_206A_200B_202D_202C_206E_206E_206D_200B_202B_202E_200D_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206D_200D_206A_202E_206C_206F_202E_200B_206F_202E_200C_200F_200D_202C_200C_206E_202A_200F_202C_202B_206D_202E_202E_200E_202B_206E_200C_200D_202B_200F_200B_206E_200C_200B_202B_202D_202A_206E_206E_206F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206D_206F_206D_206C_206A_206E_206C_200D_200B_206A_200B_202B_206B_200E_200C_206C_202D_200E_202B_200E_206C_200E_200E_206D_200C_206A_202E_206B_206A_206D_206E_202C_202C_200E_200E_206B_200E_202C_200B_202A_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200D_206C_200F_206B_202D_202E_200B_202C_202D_200C_202B_202D_206C_200B_206B_202C_200F_206B_206B_206C_206D_202C_206D_202A_200C_206D_206B_206D_202E_206C_206C_202C_202A_202D_202A_206F_206D_200C_200D_200C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +internal sealed record ChangeEntry(EChangeCategory Category, string Description, List<string>? SubItems = null); diff --git a/Questionable/Questionable.Model.Changelog/ChangelogEntry.cs b/Questionable/Questionable.Model.Changelog/ChangelogEntry.cs index f1867e7..6486361 100644 --- a/Questionable/Questionable.Model.Changelog/ChangelogEntry.cs +++ b/Questionable/Questionable.Model.Changelog/ChangelogEntry.cs @@ -1,222 +1,37 @@ using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; namespace Questionable.Model.Changelog; internal sealed record ChangelogEntry(string Version, DateOnly ReleaseDate, List<ChangeEntry> Changes) { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202A_206E_202D_200D_200B_200D_206E_202A_206A_202D_202C_206C_202B_206A_202B_206F_202B_200C_200E_202D_200E_206B_200D_200E_206C_200C_206B_206A_200D_206B_200C_202C_200C_200C_206D_206A_206C_202A_206E_202A_202E(typeof(ChangelogEntry).TypeHandle); - } - } - public bool IsNewVersion(string? lastViewedVersion, IReadOnlyList<ChangelogEntry> allChangelogs) { - int num = ((!_202E_206E_206B_200F_206B_202B_200B_206B_202C_200E_202B_206F_202A_202C_200C_200C_202C_200C_206F_202C_206F_202C_200F_206B_202D_202D_206E_206B_206F_200D_202E_202E_206E_206A_200E_202D_200D_200E_206B_206F_202E(lastViewedVersion)) ? (-524926042) : (-524926047)); - int num7 = default(int); - int num5 = default(int); - int num6 = default(int); - while (true) + if (string.IsNullOrEmpty(lastViewedVersion)) { - int num2 = num; - int num3 = -524926042; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return true; + } + int num = -1; + int num2 = -1; + for (int i = 0; i < allChangelogs.Count; i++) + { + if (allChangelogs[i].Version == Version) { - case 4: - num = ((num7 < allChangelogs.Count) ? (-524926035) : (-524926033)); - break; - case 11: - num = ((!_200B_202E_206E_202D_206D_202C_200E_202A_200F_202D_200E_200B_206A_200C_206E_206C_200E_200E_202A_206D_206D_206F_202D_200D_206B_206C_200B_202A_202A_200C_200D_202C_202B_206C_200D_202C_200D_200E_202D_206B_202E(allChangelogs[num7].Version, Version)) ? (-524926034) : (-524926037)); - break; - case 3: - return true; - case 13: - num5 = num7; - num = -524926034; - break; - case 6: - { - int num8 = num7; - num3 = 1; - num4 = num8; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - num7 = num9 + (num10 + num10); - num = -524926046; - break; + num = i; } - case 10: - num6 = num7; - num = -524926048; - break; - case 1: - return num5 < num6; - case 8: - num = ((!_200B_202E_206E_202D_206D_202C_200E_202A_200F_202D_200E_200B_206A_200C_206E_206C_200E_200E_202A_206D_206D_206F_202D_200D_206B_206C_200B_202A_202A_200C_200D_202C_202B_206C_200D_202C_200D_200E_202D_206B_202E(allChangelogs[num7].Version, lastViewedVersion)) ? (-524926048) : (-524926036)); - break; - case 0: - num5 = -1; - num6 = -1; - num7 = 0; - num = -524926046; - break; - case 9: - num = ((num6 != -1) ? (-524926045) : (-524926043)); - break; - case 5: - num = ((num5 != -1) ? (-524926041) : (-524926038)); - break; - case 2: - num = -524926047; - break; - case 12: - return false; - case 7: - return true; + if (allChangelogs[i].Version == lastViewedVersion) + { + num2 = i; } } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200E_202C_206D_200E_202E_206E_202B_202E_206D_202A_202D_206C_200B_200E_206E_202C_200E_202B_202B_206A_206D_206D_206E_202A_200F_202A_202A_202A_202B_202E_202C_200D_200D_200D_206A_202D_200E_206A_206F_202D_202E(); - _206C_200B_206F_202D_206D_206C_200E_200E_202B_200F_206D_202B_202D_206E_200F_206D_206F_200C_202E_200D_202C_202C_206E_206C_200C_206B_202A_200F_202E_202B_202E_202E_206A_206A_202B_202C_200F_206A_206D_206F_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-477928175)); - _206C_200B_206F_202D_206D_206C_200E_200E_202B_200F_206D_202B_202D_206E_200F_206D_206F_200C_202E_200D_202C_202C_206E_206C_200C_206B_202A_200F_202E_202B_202E_202E_206A_206A_202B_202C_200F_206A_206D_206F_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125)); - int num = ((!PrintMembers(stringBuilder)) ? 1932452482 : 1932452481); - while (true) + if (num2 == -1) { - int num2 = num; - int num3 = 1932452480; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - _206E_206D_200E_202B_200F_200B_202B_200B_206A_200E_206E_202D_206D_206C_206F_206A_200B_206D_200E_206A_200B_200C_202A_200C_200E_202B_206D_206F_200B_202E_200C_206A_206E_202D_200F_206D_200E_206D_206C_206F_202E(stringBuilder, '}'); - return _202E_200D_206E_200C_202C_200D_206E_206D_202C_202B_206F_202B_200B_206E_200E_202B_206A_206F_206A_200E_206E_206A_200B_200D_206B_202D_200C_206C_206C_206B_206B_206A_206E_202B_206A_206B_206C_202D_206A_206C_202E((object)stringBuilder); - case 1: - _206E_206D_200E_202B_200F_200B_202B_200B_206A_200E_206E_202D_206D_206C_206F_206A_200B_206D_200E_206A_200B_200C_202A_200C_200E_202B_206D_206F_200B_202E_200C_206A_206E_202D_200F_206D_200E_206D_206C_206F_202E(stringBuilder, ' '); - num = 1932452482; - break; - case 0: - num = 1932452481; - break; - } + return true; } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200F_202D_200E_206B_206C_202A_202B_202A_202E_206F_200C_206D_200D_202B_206B_202B_200D_202E_202D_202E_206B_200C_200F_206B_202C_206D_206F_206C_200B_202E_202A_202E_206B_202B_206C_206D_200C_206B_202E(); - _206C_200B_206F_202D_206D_206C_200E_200E_202B_200F_206D_202B_202D_206E_200F_206D_206F_200C_202E_200D_202C_202C_206E_206C_200C_206B_202A_200F_202E_202B_202E_202E_206A_206A_202B_202C_200F_206A_206D_206F_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(659654243)); - _202E_206D_200E_206F_200B_200D_206E_206B_202E_202A_206F_202E_206C_206A_200F_202B_206A_206D_200D_200C_206E_202A_202C_200D_206B_200B_200C_206B_200F_206D_200E_206A_202A_202B_206A_206B_206C_202D_200D_206E_202E(builder, (object)Version); - _206C_200B_206F_202D_206D_206C_200E_200E_202B_200F_206D_202B_202D_206E_200F_206D_206F_200C_202E_200D_202C_202C_206E_206C_200C_206B_202A_200F_202E_202B_202E_202E_206A_206A_202B_202C_200F_206A_206D_206F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1366096268)); - _206C_200B_206F_202D_206D_206C_200E_200E_202B_200F_206D_202B_202D_206E_200F_206D_206F_200C_202E_200D_202C_202C_206E_206C_200C_206B_202A_200F_202E_202B_202E_202E_206A_206A_202B_202C_200F_206A_206D_206F_202E(builder, ReleaseDate.ToString()); - _206C_200B_206F_202D_206D_206C_200E_200E_202B_200F_206D_202B_202D_206E_200F_206D_206F_200C_202E_200D_202C_202C_206E_206C_200C_206B_202A_200F_202E_202B_202E_202E_206A_206A_202B_202C_200F_206A_206D_206F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1139339427)); - _202E_206D_200E_206F_200B_200D_206E_206B_202E_202A_206F_202E_206C_206A_200F_202B_206A_206D_200D_200C_206E_202A_202C_200D_206B_200B_200C_206B_200F_206D_200E_206A_202A_202B_206A_206B_206C_202D_200D_206E_202E(builder, (object)Changes); - return true; - } - - [CompilerGenerated] - public bool Equals(ChangelogEntry? other) - { - int num = (((object)this == other) ? 753075130 : 753075134); - while (true) + if (num == -1) { - int num2 = num; - int num3 = 753075128; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 7: - num = ((!EqualityComparer<DateOnly>.Default.Equals(ReleaseDate, other.ReleaseDate)) ? 753075129 : 753075131); - break; - case 0: - num = ((!EqualityComparer<string>.Default.Equals(Version, other.Version)) ? 753075129 : 753075135); - break; - case 3: - return EqualityComparer<List<ChangeEntry>>.Default.Equals(Changes, other.Changes); - case 6: - num = (((object)other == null) ? 753075129 : 753075132); - break; - case 1: - return false; - case 2: - return true; - case 5: - num = 753075134; - break; - case 4: - num = ((!_206E_200D_206B_202C_202D_206F_206F_200D_206A_200C_200D_200D_202D_200D_206B_200D_206E_206E_206D_200F_206A_206A_202E_200B_202D_200F_200B_202A_202A_202B_206F_202B_200B_200B_202A_200D_206A_206C_200D_202A_202E(EqualityContract, other.EqualityContract)) ? 753075129 : 753075128); - break; - } + return false; } - } - - bool IEquatable<ChangelogEntry>.Equals(ChangelogEntry? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202A_206E_202D_200D_200B_200D_206E_202A_206A_202D_202C_206C_202B_206A_202B_206F_202B_200C_200E_202D_200E_206B_200D_200E_206C_200C_206B_206A_200D_206B_200C_202C_200C_200C_206D_206A_206C_202A_206E_202A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _202E_206E_206B_200F_206B_202B_200B_206B_202C_200E_202B_206F_202A_202C_200C_200C_202C_200C_206F_202C_206F_202C_200F_206B_202D_202D_206E_206B_206F_200D_202E_202E_206E_206A_200E_202D_200D_200E_206B_206F_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static bool _200B_202E_206E_202D_206D_202C_200E_202A_200F_202D_200E_200B_206A_200C_206E_206C_200E_200E_202A_206D_206D_206F_202D_200D_206B_206C_200B_202A_202A_200C_200D_202C_202B_206C_200D_202C_200D_200E_202D_206B_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static StringBuilder _200E_202C_206D_200E_202E_206E_202B_202E_206D_202A_202D_206C_200B_200E_206E_202C_200E_202B_202B_206A_206D_206D_206E_202A_200F_202A_202A_202A_202B_202E_202C_200D_200D_200D_206A_202D_200E_206A_206F_202D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206C_200B_206F_202D_206D_206C_200E_200E_202B_200F_206D_202B_202D_206E_200F_206D_206F_200C_202E_200D_202C_202C_206E_206C_200C_206B_202A_200F_202E_202B_202E_202E_206A_206A_202B_202C_200F_206A_206D_206F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206E_206D_200E_202B_200F_200B_202B_200B_206A_200E_206E_202D_206D_206C_206F_206A_200B_206D_200E_206A_200B_200C_202A_200C_200E_202B_206D_206F_200B_202E_200C_206A_206E_202D_200F_206D_200E_206D_206C_206F_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202E_200D_206E_200C_202C_200D_206E_206D_202C_202B_206F_202B_200B_206E_200E_202B_206A_206F_206A_200E_206E_206A_200B_200D_206B_202D_200C_206C_206C_206B_206B_206A_206E_202B_206A_206B_206C_202D_206A_206C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200F_202D_200E_206B_206C_202A_202B_202A_202E_206F_200C_206D_200D_202B_206B_202B_200D_202E_202D_202E_206B_200C_200F_206B_202C_206D_206F_206C_200B_202E_202A_202E_206B_202B_206C_206D_200C_206B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202E_206D_200E_206F_200B_200D_206E_206B_202E_202A_206F_202E_206C_206A_200F_202B_206A_206D_200D_200C_206E_202A_202C_200D_206B_200B_200C_206B_200F_206D_200E_206A_202A_202B_206A_206B_206C_202D_200D_206E_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206E_200D_206B_202C_202D_206F_206F_200D_206A_200C_200D_200D_202D_200D_206B_200D_206E_206E_206D_200F_206A_206A_202E_200B_202D_200F_200B_202A_202A_202B_206F_202B_200B_200B_202A_200D_206A_206C_200D_202A_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return num < num2; } } diff --git a/Questionable/Questionable.Model/CofferReward.cs b/Questionable/Questionable.Model/CofferReward.cs index 101ef27..5ab19a9 100644 --- a/Questionable/Questionable.Model/CofferReward.cs +++ b/Questionable/Questionable.Model/CofferReward.cs @@ -1,21 +1,9 @@ -using System; using System.Runtime.CompilerServices; -using System.Text; namespace Questionable.Model; public sealed record CofferReward : ItemReward { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _206A_206E_202E_206F_202E_200D_206B_206C_200D_206F_200D_200C_206D_200D_206F_202E_206F_202B_202D_206C_202E_200D_202B_200F_200B_202B_206D_200D_202C_206F_202E_202C_202C_202A_206F_200C_202D_202B_206C_206E_202E(typeof(CofferReward).TypeHandle); - } - } - public override EItemRewardType Type => EItemRewardType.Coffer; public CofferReward(ItemRewardDetails Item) @@ -28,100 +16,9 @@ public sealed record CofferReward : ItemReward return false; } - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206E_200C_206E_200F_206D_202B_200B_200E_206E_206B_202C_206A_202B_200B_200B_200C_206B_206C_206A_206C_200D_206B_202D_206D_200E_202A_206F_202B_202E_200F_200E_206F_202B_202A_200C_206E_206F_200C_202E_200E_202E(); - _206D_202B_206B_200B_206B_202E_202C_206D_200E_202C_200B_206A_206C_200E_200C_206A_202B_206F_202D_202D_206E_200F_206C_200E_202D_200D_200B_206F_206B_200E_202C_202E_200D_206B_200D_206A_202A_200C_202D_200E_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(987724651)); - _206D_202B_206B_200B_206B_202E_202C_206D_200E_202C_200B_206A_206C_200E_200C_206A_202B_206F_202D_202D_206E_200F_206C_200E_202D_200D_200B_206F_206B_200E_202C_202E_200D_206B_200D_206A_202A_200C_202D_200E_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1344697862)); - int num = ((!PrintMembers(stringBuilder)) ? (-939520159) : (-939520158)); - while (true) - { - int num2 = num; - int num3 = -939520157; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -939520158; - break; - case 1: - _206B_206F_200B_202E_202A_202E_202B_200D_202B_206B_206F_202B_202D_206B_206E_202D_206E_200D_206A_206B_200D_200C_202A_206B_206E_200E_202B_206C_202E_206E_206A_200B_206E_200E_206C_202E_206F_206D_200D_202D_202E(stringBuilder, ' '); - num = -939520159; - break; - case 2: - _206B_206F_200B_202E_202A_202E_202B_200D_202B_206B_206F_202B_202D_206B_206E_202D_206E_200D_206A_206B_200D_200C_202A_206B_206E_200E_202B_206C_202E_206E_206A_200B_206E_200E_206C_202E_206F_206D_200D_202D_202E(stringBuilder, '}'); - return _206F_206F_200F_202A_200D_200F_206E_206F_200B_200F_202C_206F_206F_200D_202C_202E_206C_202B_206C_206E_200E_200E_202D_206C_206D_202A_206A_200F_200E_206F_200C_206F_202A_206E_200B_200F_200E_200F_200E_200D_202E((object)stringBuilder); - } - } - } - - [CompilerGenerated] - public bool Equals(CofferReward? other) - { - int num = (((object)this == other) ? 1298126870 : 1298126869); - while (true) - { - int num2 = num; - int num3 = 1298126868; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0044; - case 2: - return true; - case 1: - return base.Equals(other); - } - continue; - IL_0044: - num = 1298126869; - } - } - - bool IEquatable<CofferReward>.Equals(CofferReward? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - [CompilerGenerated] public new void Deconstruct(out ItemRewardDetails Item) { Item = base.Item; } - - static Type _206A_206E_202E_206F_202E_200D_206B_206C_200D_206F_200D_200C_206D_200D_206F_202E_206F_202B_202D_206C_202E_200D_202B_200F_200B_202B_206D_200D_202C_206F_202E_202C_202C_202A_206F_200C_202D_202B_206C_206E_202E(RuntimeTypeHandle P_0) - { - return System.Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206E_200C_206E_200F_206D_202B_200B_200E_206E_206B_202C_206A_202B_200B_200B_200C_206B_206C_206A_206C_200D_206B_202D_206D_200E_202A_206F_202B_202E_200F_200E_206F_202B_202A_200C_206E_206F_200C_202E_200E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206D_202B_206B_200B_206B_202E_202C_206D_200E_202C_200B_206A_206C_200E_200C_206A_202B_206F_202D_202D_206E_200F_206C_200E_202D_200D_200B_206F_206B_200E_202C_202E_200D_206B_200D_206A_202A_200C_202D_200E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206B_206F_200B_202E_202A_202E_202B_200D_202B_206B_206F_202B_202D_206B_206E_202D_206E_200D_206A_206B_200D_200C_202A_206B_206E_200E_202B_206C_202E_206E_206A_200B_206E_200E_206C_202E_206F_206D_200D_202D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206F_206F_200F_202A_200D_200F_206E_206F_200B_200F_202C_206F_206F_200D_202C_202E_206C_202B_206C_206E_200E_200E_202D_206C_206D_202A_206A_200F_200E_206F_200C_206F_202A_206E_200B_200F_200E_200F_200E_200D_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _202E_200B_206C_202E_202E_200D_200F_206E_202B_202D_200D_202C_200D_200D_202D_202E_206D_202C_206F_206E_200F_200E_202B_200C_206D_202E_200C_200E_206D_202D_202C_200D_206D_202B_202A_206D_200E_206D_200F_206F_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } } diff --git a/Questionable/Questionable.Model/FashionAccessoryReward.cs b/Questionable/Questionable.Model/FashionAccessoryReward.cs index 209ad1d..62973c1 100644 --- a/Questionable/Questionable.Model/FashionAccessoryReward.cs +++ b/Questionable/Questionable.Model/FashionAccessoryReward.cs @@ -1,23 +1,10 @@ -using System; -using System.Collections.Generic; using System.Runtime.CompilerServices; -using System.Text; using LLib.GameData; namespace Questionable.Model; public sealed record FashionAccessoryReward : ItemReward { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _206B_206B_200F_200B_202D_202E_206C_200C_206F_206C_200E_202D_200D_206E_206A_200F_200B_200D_202A_206B_200C_206D_206D_206D_202C_200C_200C_202A_206E_206D_200C_206F_206E_206B_206B_202A_206D_206F_202D_206D_202E(typeof(FashionAccessoryReward).TypeHandle); - } - } - public uint AccessoryId { get; init; } public override EItemRewardType Type => EItemRewardType.FashionAccessory; @@ -30,98 +17,7 @@ public sealed record FashionAccessoryReward : ItemReward public override bool IsUnlocked() { - return _206C_202D_206F_206E_206E_202C_202C_200E_202C_202C_206F_202D_202D_202B_202A_206F_206F_200C_202C_200D_200D_200E_206E_200D_206C_206D_206D_206B_202B_202D_200F_206C_200D_206F_202B_200F_202B_202B_202A_202E(AccessoryId); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206F_202E_200C_206B_202B_206E_200C_206A_200C_202C_202A_206A_200F_200B_200D_202D_202B_200F_202C_206A_206B_206E_206C_202E_200D_200C_200F_200B_200E_206B_200D_202A_200D_206E_200B_202C_200D_202D_206C_200E_202E(); - _206D_206A_206D_206D_200E_200B_200E_202E_202D_202B_200D_206C_206F_206A_206B_202E_206A_202E_206D_206B_206E_206F_202A_206F_206F_206E_206D_206E_200C_206D_206E_202A_200B_206D_200E_206C_200C_206C_206C_202B_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1334445118)); - _206D_206A_206D_206D_200E_200B_200E_202E_202D_202B_200D_206C_206F_206A_206B_202E_206A_202E_206D_206B_206E_206F_202A_206F_206F_206E_206D_206E_200C_206D_206E_202A_200B_206D_200E_206C_200C_206C_206C_202B_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1344697862)); - int num = ((!PrintMembers(stringBuilder)) ? 1221186443 : 1221186440); - while (true) - { - int num2 = num; - int num3 = 1221186441; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1221186440; - break; - case 2: - _206D_202E_206E_200C_206E_202B_206D_202E_206F_200D_202B_200F_206E_200B_206E_206E_202B_206D_206E_202E_206B_206A_206A_206C_202C_200C_206D_200E_202E_206E_206D_200F_202D_202B_206E_200D_206A_202C_206B_202E_202E(stringBuilder, '}'); - return _202D_200B_206B_200E_200B_202E_200F_202C_206C_206B_200D_202E_206D_206B_200F_200C_206E_202E_200E_202A_202C_200C_206F_200E_202A_206F_206E_200B_202E_202E_202D_200B_206D_206D_200D_202E_200D_200E_202E_200F_202E((object)stringBuilder); - case 1: - _206D_202E_206E_200C_206E_202B_206D_202E_206F_200D_202B_200F_206E_200B_206E_206E_202B_206D_206E_202E_206B_206A_206A_206C_202C_200C_206D_200E_202E_206E_206D_200F_202D_202B_206E_200D_206A_202C_206B_202E_202E(stringBuilder, ' '); - num = 1221186443; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? 11478778 : 11478777); - while (true) - { - int num2 = num; - int num3 = 11478779; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - _206D_206A_206D_206D_200E_200B_200E_202E_202D_202B_200D_206C_206F_206A_206B_202E_206A_202E_206D_206B_206E_206F_202A_206F_206F_206E_206D_206E_200C_206D_206E_202A_200B_206D_200E_206C_200C_206C_206C_202B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-618803604)); - _206D_206A_206D_206D_200E_200B_200E_202E_202D_202B_200D_206C_206F_206A_206B_202E_206A_202E_206D_206B_206E_206F_202A_206F_206F_206E_206D_206E_200C_206D_206E_202A_200B_206D_200E_206C_200C_206C_206C_202B_202E(builder, AccessoryId.ToString()); - return true; - case 2: - _206D_206A_206D_206D_200E_200B_200E_202E_202D_202B_200D_206C_206F_206A_206B_202E_206A_202E_206D_206B_206E_206F_202A_206F_206F_206E_206D_206E_200C_206D_206E_202A_200B_206D_200E_206C_200C_206C_206C_202B_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1467939024)); - num = 11478778; - break; - case 0: - num = 11478777; - break; - } - } - } - - [CompilerGenerated] - public bool Equals(FashionAccessoryReward? other) - { - int num = (((object)this == other) ? (-923320164) : (-923320162)); - while (true) - { - int num2 = num; - int num3 = -923320163; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return true; - case 2: - return false; - case 4: - return EqualityComparer<uint>.Default.Equals(AccessoryId, other.AccessoryId); - case 3: - num = ((!base.Equals(other)) ? (-923320161) : (-923320167)); - break; - case 0: - num = -923320162; - break; - } - } - } - - bool IEquatable<FashionAccessoryReward>.Equals(FashionAccessoryReward? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); + return PlayerStateHelper.IsOrnamentUnlocked(AccessoryId); } [CompilerGenerated] @@ -130,39 +26,4 @@ public sealed record FashionAccessoryReward : ItemReward Item = base.Item; AccessoryId = this.AccessoryId; } - - static Type _206B_206B_200F_200B_202D_202E_206C_200C_206F_206C_200E_202D_200D_206E_206A_200F_200B_200D_202A_206B_200C_206D_206D_206D_202C_200C_200C_202A_206E_206D_200C_206F_206E_206B_206B_202A_206D_206F_202D_206D_202E(RuntimeTypeHandle P_0) - { - return System.Type.GetTypeFromHandle(P_0); - } - - static bool _206C_202D_206F_206E_206E_202C_202C_200E_202C_202C_206F_202D_202D_202B_202A_206F_206F_200C_202C_200D_200D_200E_206E_200D_206C_206D_206D_206B_202B_202D_200F_206C_200D_206F_202B_200F_202B_202B_202A_202E(uint P_0) - { - return PlayerStateHelper.IsOrnamentUnlocked(P_0); - } - - static StringBuilder _206F_202E_200C_206B_202B_206E_200C_206A_200C_202C_202A_206A_200F_200B_200D_202D_202B_200F_202C_206A_206B_206E_206C_202E_200D_200C_200F_200B_200E_206B_200D_202A_200D_206E_200B_202C_200D_202D_206C_200E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206D_206A_206D_206D_200E_200B_200E_202E_202D_202B_200D_206C_206F_206A_206B_202E_206A_202E_206D_206B_206E_206F_202A_206F_206F_206E_206D_206E_200C_206D_206E_202A_200B_206D_200E_206C_200C_206C_206C_202B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206D_202E_206E_200C_206E_202B_206D_202E_206F_200D_202B_200F_206E_200B_206E_206E_202B_206D_206E_202E_206B_206A_206A_206C_202C_200C_206D_200E_202E_206E_206D_200F_202D_202B_206E_200D_206A_202C_206B_202E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202D_200B_206B_200E_200B_202E_200F_202C_206C_206B_200D_202E_206D_206B_200F_200C_206E_202E_200E_202A_202C_200C_206F_200E_202A_206F_206E_200B_202E_202E_202D_200B_206D_206D_200D_202E_200D_200E_202E_200F_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _206F_202C_206B_202A_206B_202E_200D_202A_206E_200F_206A_200D_202E_202E_202A_206B_206A_206F_206D_200C_202A_202C_200B_202B_206E_202A_200F_202A_200F_202C_200E_202D_202C_200E_206E_202A_202B_206D_206B_206A_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } } diff --git a/Questionable/Questionable.Model/IQuestInfo.cs b/Questionable/Questionable.Model/IQuestInfo.cs index 2d7a9cf..8981fb9 100644 --- a/Questionable/Questionable.Model/IQuestInfo.cs +++ b/Questionable/Questionable.Model/IQuestInfo.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Collections.Immutable; -using System.Runtime.CompilerServices; using Dalamud.Game.Text; using LLib.GameData; using Questionable.Model.Questing; @@ -40,32 +39,13 @@ internal interface IQuestInfo EExpansionVersion Expansion { get; } - string SimplifiedName - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return _200B_200D_206A_200B_200D_200B_200B_200C_202E_206E_202E_200D_206C_206C_206D_200B_200C_202D_200E_206C_206D_200D_206A_206D_202B_206D_202B_206A_206E_202D_206C_200E_200C_200F_206D_200C_200C_206B_200D_202A_202E(_206D_200B_200D_206E_202A_200C_206F_206B_202A_202E_200B_206D_202A_206D_200E_206C_200B_202B_200C_202A_200C_206C_206D_200B_200D_200D_206E_206C_200D_200C_202C_206E_202C_200B_206E_206B_206E_202E_200F_202E(_206D_200B_200D_206E_202A_200C_206F_206B_202A_202E_200B_206D_202A_206D_200E_206C_200B_202B_200C_202A_200C_206C_206D_200B_200D_200D_206E_206C_200D_200C_202C_206E_202C_200B_206E_206B_206E_202E_200F_202E(_206D_200B_200D_206E_202A_200C_206F_206B_202A_202E_200B_206D_202A_206D_200E_206C_200B_202B_200C_202A_200C_206C_206D_200B_200D_200D_206E_206C_200D_200C_202C_206E_202C_200B_206E_206B_206E_202E_200F_202E(_206D_200B_200D_206E_202A_200C_206F_206B_202A_202E_200B_206D_202A_206D_200E_206C_200B_202B_200C_202A_200C_206C_206D_200B_200D_200D_206E_206C_200D_200C_202C_206E_202C_200B_206E_206B_206E_202E_200F_202E(_206D_200B_200D_206E_202A_200C_206F_206B_202A_202E_200B_206D_202A_206D_200E_206C_200B_202B_200C_202A_200C_206C_206D_200B_200D_200D_206E_206C_200D_200C_202C_206E_202C_200B_206E_206B_206E_202E_200F_202E(_206D_200B_200D_206E_202A_200C_206F_206B_202A_202E_200B_206D_202A_206D_200E_206C_200B_202B_200C_202A_200C_206C_206D_200B_200D_200D_206E_206C_200D_200C_202C_206E_202C_200B_206E_206B_206E_202E_200F_202E(_206D_200B_200D_206E_202A_200C_206F_206B_202A_202E_200B_206D_202A_206D_200E_206C_200B_202B_200C_202A_200C_206C_206D_200B_200D_200D_206E_206C_200D_200C_202C_206E_202C_200B_206E_206B_206E_202E_200F_202E(_206D_200B_200D_206E_202A_200C_206F_206B_202A_202E_200B_206D_202A_206D_200E_206C_200B_202B_200C_202A_200C_206C_206D_200B_200D_200D_206E_206C_200D_200C_202C_206E_202C_200B_206E_206B_206E_202E_200F_202E(_206D_200B_200D_206E_202A_200C_206F_206B_202A_202E_200B_206D_202A_206D_200E_206C_200B_202B_200C_202A_200C_206C_206D_200B_200D_200D_206E_206C_200D_200C_202C_206E_202C_200B_206E_206B_206E_202E_200F_202E(_206D_200B_200D_206E_202A_200C_206F_206B_202A_202E_200B_206D_202A_206D_200E_206C_200B_202B_200C_202A_200C_206C_206D_200B_200D_200D_206E_206C_200D_200C_202C_206E_202C_200B_206E_206B_206E_202E_200F_202E(Name, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-978038014), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-87324410), StringComparison.Ordinal), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(626978395), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1200342830), StringComparison.Ordinal), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1557481284), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1694032531), StringComparison.Ordinal), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1680133376), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1694032531), StringComparison.Ordinal), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1752153588), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-87324410), StringComparison.Ordinal), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1593458294), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1694032531), StringComparison.Ordinal), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1127478360), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1694032531), StringComparison.Ordinal), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(856652132), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1720149641), StringComparison.Ordinal), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(13384458), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-87324410), StringComparison.Ordinal), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1887683575), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-87324410), StringComparison.Ordinal), new char[3] - { - _206D_206A_200E_202D_200E_206D_202C_202E_202E_200D_200B_202D_206A_200C_206A_202A_200B_200F_200D_202B_202C_202D_206E_206A_206A_202B_206F_206D_200B_202A_200E_206C_202B_202E_206A_202A_200B_202B_206D_202B_202E(SeIconChar.QuestSync), - _206D_206A_200E_202D_200E_206D_202C_202E_202E_200D_200B_202D_206A_200C_206A_202A_200B_200F_200D_202B_202C_202D_206E_206A_206A_202B_206F_206D_200B_202A_200E_206C_202B_202E_206A_202A_200B_202B_206D_202B_202E(SeIconChar.QuestRepeatable), - ' ' - }); - } - } - - static string _206D_200B_200D_206E_202A_200C_206F_206B_202A_202E_200B_206D_202A_206D_200E_206C_200B_202B_200C_202A_200C_206C_206D_200B_200D_200D_206E_206C_200D_200C_202C_206E_202C_200B_206E_206B_206E_202E_200F_202E(string P_0, string P_1, string P_2, StringComparison P_3) - { - return P_0.Replace(P_1, P_2, P_3); - } - - static char _206D_206A_200E_202D_200E_206D_202C_202E_202E_200D_200B_202D_206A_200C_206A_202A_200B_200F_200D_202B_202C_202D_206E_206A_206A_202B_206F_206D_200B_202A_200E_206C_202B_202E_206A_202A_200B_202B_206D_202B_202E(SeIconChar P_0) - { - return P_0.ToIconChar(); - } - - static string _200B_200D_206A_200B_200D_200B_200B_200C_202E_206E_202E_200D_206C_206C_206D_200B_200C_202D_200E_206C_206D_200D_206A_206D_202B_206D_202B_206A_206E_202D_206C_200E_200C_200F_206D_200C_200C_206B_200D_202A_202E(string P_0, char[] P_1) - { - return P_0.TrimStart(P_1); - } + string SimplifiedName => Name.Replace(".", "", StringComparison.Ordinal).Replace("*", "", StringComparison.Ordinal).Replace("\"", "", StringComparison.Ordinal) + .Replace("/", "", StringComparison.Ordinal) + .Replace("\\", "", StringComparison.Ordinal) + .Replace("<", "", StringComparison.Ordinal) + .Replace(">", "", StringComparison.Ordinal) + .Replace("|", "", StringComparison.Ordinal) + .Replace(":", "", StringComparison.Ordinal) + .Replace("?", "", StringComparison.Ordinal) + .TrimStart(SeIconChar.QuestSync.ToIconChar(), SeIconChar.QuestRepeatable.ToIconChar(), ' '); } diff --git a/Questionable/Questionable.Model/ItemReward.cs b/Questionable/Questionable.Model/ItemReward.cs index 8cbfc35..39c9def 100644 --- a/Questionable/Questionable.Model/ItemReward.cs +++ b/Questionable/Questionable.Model/ItemReward.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using LLib.Inventory; using Lumina.Excel.Sheets; using Questionable.Model.Questing; @@ -10,16 +7,6 @@ namespace Questionable.Model; public abstract record ItemReward(ItemRewardDetails Item) { - [CompilerGenerated] - protected virtual Type EqualityContract - { - [CompilerGenerated] - get - { - return _202E_206B_206D_206A_200B_202E_200E_200E_206B_202B_202B_206C_202E_202B_200C_206F_202B_200D_200E_200C_200F_200D_200E_206B_200E_200B_200D_202E_200B_206C_202C_202E_206C_200E_202E_202D_202E_202D_200D_206F_202E(typeof(ItemReward).TypeHandle); - } - } - public uint ItemId => Item.ItemId; public string Name => Item.Name; @@ -35,213 +22,43 @@ public abstract record ItemReward(ItemRewardDetails Item) internal static ItemReward? CreateFromItem(Item item, ElementId elementId) { uint? num = item.ItemAction.ValueNullable?.Action.RowId; - int num2 = ((!num.HasValue) ? (-1359662202) : (-1359662195)); - TripleTriadCard? valueOrDefault = default(TripleTriadCard?); - Orchestrion? valueOrDefault3 = default(Orchestrion?); - while (true) + if (num.HasValue && num == 1322) { - int num3 = num2; - int num4 = -1359662199; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 10: - num2 = -1359662195; - break; - case 18: - num = item.ItemAction.ValueNullable?.Action.RowId; - num2 = ((!num.HasValue) ? (-1359662207) : (-1359662206)); - break; - case 17: - { - TripleTriadCard valueOrDefault2 = valueOrDefault.GetValueOrDefault(); - return new TripleTriadCardReward(new ItemRewardDetails(item, elementId), (ushort)valueOrDefault2.RowId); - } - case 5: - return null; - case 15: - num = item.ItemAction.ValueNullable?.Action.RowId; - num2 = ((!num.HasValue) ? (-1359662200) : (-1359662201)); - break; - case 13: - return new MinionReward(new ItemRewardDetails(item, elementId), item.ItemAction.Value.Data[0]); - case 9: - { - Orchestrion valueOrDefault4 = valueOrDefault3.GetValueOrDefault(); - return new OrchestrionRollReward(new ItemRewardDetails(item, elementId), valueOrDefault4.RowId); - } - case 7: - return new MountReward(new ItemRewardDetails(item, elementId), item.ItemAction.Value.Data[0]); - case 16: - return new UnlockLinkReward(new ItemRewardDetails(item, elementId), item.ItemAction.Value.Data[0]); - case 3: - return new CofferReward(new ItemRewardDetails(item, elementId)); - case 11: - num2 = ((num != 20086) ? (-1359662207) : (-1359662199)); - break; - case 12: - valueOrDefault = item.AdditionalData.GetValueOrDefault<TripleTriadCard>(); - num2 = ((!valueOrDefault.HasValue) ? (-1359662181) : (-1359662184)); - break; - case 0: - return new FashionAccessoryReward(new ItemRewardDetails(item, elementId), item.ItemAction.Value.Data[0]); - case 2: - num2 = ((num != 2633) ? (-1359662193) : (-1359662183)); - break; - case 1: - valueOrDefault3 = item.AdditionalData.GetValueOrDefault<Orchestrion>(); - num2 = ((!valueOrDefault3.HasValue) ? (-1359662203) : (-1359662208)); - break; - case 14: - num2 = ((num != 853) ? (-1359662200) : (-1359662204)); - break; - case 8: - num = item.ItemAction.ValueNullable?.Action.RowId; - num2 = ((!num.HasValue) ? (-1359662193) : (-1359662197)); - break; - case 6: - num2 = ((!_200B_206F_206D_202A_200C_206A_200D_202B_202E_206D_202A_206C_202D_202B_206A_202C_202B_200E_202C_202D_206C_206F_200C_202D_202A_202A_200D_202D_202B_206A_206E_202D_206F_200F_206D_206D_200E_200B_202B_202B_202E(item)) ? (-1359662196) : (-1359662198)); - break; - case 4: - num2 = ((num != 1322) ? (-1359662202) : (-1359662194)); - break; - } + return new MountReward(new ItemRewardDetails(item, elementId), item.ItemAction.Value.Data[0]); } + num = item.ItemAction.ValueNullable?.Action.RowId; + if (num.HasValue && num == 853) + { + return new MinionReward(new ItemRewardDetails(item, elementId), item.ItemAction.Value.Data[0]); + } + Orchestrion? valueOrDefault = item.AdditionalData.GetValueOrDefault<Orchestrion>(); + if (valueOrDefault.HasValue) + { + Orchestrion valueOrDefault2 = valueOrDefault.GetValueOrDefault(); + return new OrchestrionRollReward(new ItemRewardDetails(item, elementId), valueOrDefault2.RowId); + } + TripleTriadCard? valueOrDefault3 = item.AdditionalData.GetValueOrDefault<TripleTriadCard>(); + if (valueOrDefault3.HasValue) + { + TripleTriadCard valueOrDefault4 = valueOrDefault3.GetValueOrDefault(); + return new TripleTriadCardReward(new ItemRewardDetails(item, elementId), (ushort)valueOrDefault4.RowId); + } + num = item.ItemAction.ValueNullable?.Action.RowId; + if (num.HasValue && num == 20086) + { + return new FashionAccessoryReward(new ItemRewardDetails(item, elementId), item.ItemAction.Value.Data[0]); + } + num = item.ItemAction.ValueNullable?.Action.RowId; + if (num.HasValue && num == 2633) + { + return new UnlockLinkReward(new ItemRewardDetails(item, elementId), item.ItemAction.Value.Data[0]); + } + if (CofferHelper.IsGearCoffer(item)) + { + return new CofferReward(new ItemRewardDetails(item, elementId)); + } + return null; } public abstract bool IsUnlocked(); - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202A_202D_200E_206F_206D_202D_202C_200D_202B_202A_206A_202C_206A_206A_202E_200E_200B_206A_202C_206D_202B_206C_206F_206E_206C_202A_202D_200F_200B_206A_200C_206C_206B_206F_200D_202C_200C_206F_202C_200F_202E(); - _202E_202A_200F_202B_200C_206E_202D_202D_202A_200D_202A_206F_200C_206A_200E_200C_206D_206B_200C_202B_206A_200D_202A_200D_200F_206A_200E_202E_202B_206E_206D_200D_202E_200B_206D_202D_202E_200E_200F_206C_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1783381517)); - _202E_202A_200F_202B_200C_206E_202D_202D_202A_200D_202A_206F_200C_206A_200E_200C_206D_206B_200C_202B_206A_200D_202A_200D_200F_206A_200E_202E_202B_206E_206D_200D_202E_200B_206D_202D_202E_200E_200F_206C_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125)); - int num = ((!PrintMembers(stringBuilder)) ? 1237326775 : 1237326772); - while (true) - { - int num2 = num; - int num3 = 1237326774; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1237326772; - break; - case 1: - _202E_202A_206F_206B_206A_206A_206F_202B_202B_200D_202A_202A_202A_202B_200B_206D_206B_200E_200D_202D_200C_206C_200F_202E_206F_206D_206B_202D_200D_200F_200D_202A_202C_200C_206D_202C_206C_206C_200D_200D_202E(stringBuilder, '}'); - return _206C_206E_206D_200F_202B_200F_202C_206F_206D_206D_200E_206E_200B_206F_202A_202E_206B_202D_200F_206B_202A_202B_202C_206C_206A_200B_200B_202E_202A_200F_206C_202C_200C_206D_202C_206A_200B_202E_202C_206F_202E((object)stringBuilder); - case 2: - _202E_202A_206F_206B_206A_206A_206F_202B_202B_200D_202A_202A_202A_202B_200B_206D_206B_200E_200D_202D_200C_206C_200F_202E_206F_206D_206B_202D_200D_200F_200D_202A_202C_200C_206D_202C_206C_206C_200D_200D_202E(stringBuilder, ' '); - num = 1237326775; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected virtual bool PrintMembers(StringBuilder builder) - { - _200D_206A_206C_206E_200F_206F_202C_206F_202B_206C_206E_200B_200C_200B_202A_200D_202E_202E_206D_202A_202C_202B_200B_206E_200C_200C_200D_200F_202B_202B_202C_200D_200B_202A_200F_202C_200B_202B_202A_202A_202E(); - _202E_202A_200F_202B_200C_206E_202D_202D_202A_200D_202A_206F_200C_206A_200E_200C_206D_206B_200C_202B_206A_200D_202A_200D_200F_206A_200E_202E_202B_206E_206D_200D_202E_200B_206D_202D_202E_200E_200F_206C_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1122053868)); - _202B_202D_202E_206D_200D_202E_200E_206B_200D_202A_206E_202E_206B_202A_200F_206D_202E_202E_206F_206A_202C_206C_202B_202C_200D_202A_206B_206C_202E_200D_206E_206C_206F_206D_200E_202B_206B_200E_200B_206F_202E(builder, (object)Item); - _202E_202A_200F_202B_200C_206E_202D_202D_202A_200D_202A_206F_200C_206A_200E_200C_206D_206B_200C_202B_206A_200D_202A_200D_200F_206A_200E_202E_202B_206E_206D_200D_202E_200B_206D_202D_202E_200E_200F_206C_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1085623692)); - _202E_202A_200F_202B_200C_206E_202D_202D_202A_200D_202A_206F_200C_206A_200E_200C_206D_206B_200C_202B_206A_200D_202A_200D_200F_206A_200E_202E_202B_206E_206D_200D_202E_200B_206D_202D_202E_200E_200F_206C_202E(builder, ItemId.ToString()); - _202E_202A_200F_202B_200C_206E_202D_202D_202A_200D_202A_206F_200C_206A_200E_200C_206D_206B_200C_202B_206A_200D_202A_200D_200F_206A_200E_202E_202B_206E_206D_200D_202E_200B_206D_202D_202E_200E_200F_206C_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-844129380)); - _202B_202D_202E_206D_200D_202E_200E_206B_200D_202A_206E_202E_206B_202A_200F_206D_202E_202E_206F_206A_202C_206C_202B_202C_200D_202A_206B_206C_202E_200D_206E_206C_206F_206D_200E_202B_206B_200E_200B_206F_202E(builder, (object)Name); - _202E_202A_200F_202B_200C_206E_202D_202D_202A_200D_202A_206F_200C_206A_200E_200C_206D_206B_200C_202B_206A_200D_202A_200D_200F_206A_200E_202E_202B_206E_206D_200D_202E_200B_206D_202D_202E_200E_200F_206C_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-788873601)); - _202B_202D_202E_206D_200D_202E_200E_206B_200D_202A_206E_202E_206B_202A_200F_206D_202E_202E_206F_206A_202C_206C_202B_202C_200D_202A_206B_206C_202E_200D_206E_206C_206F_206D_200E_202B_206B_200E_200B_206F_202E(builder, (object)ElementId); - _202E_202A_200F_202B_200C_206E_202D_202D_202A_200D_202A_206F_200C_206A_200E_200C_206D_206B_200C_202B_206A_200D_202A_200D_200F_206A_200E_202E_202B_206E_206D_200D_202E_200B_206D_202D_202E_200E_200F_206C_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(472252391)); - _202E_202A_200F_202B_200C_206E_202D_202D_202A_200D_202A_206F_200C_206A_200E_200C_206D_206B_200C_202B_206A_200D_202A_200D_200F_206A_200E_202E_202B_206E_206D_200D_202E_200B_206D_202D_202E_200E_200F_206C_202E(builder, CastTime.ToString()); - _202E_202A_200F_202B_200C_206E_202D_202D_202A_200D_202A_206F_200C_206A_200E_200C_206D_206B_200C_202B_206A_200D_202A_200D_200F_206A_200E_202E_202B_206E_206D_200D_202E_200B_206D_202D_202E_200E_200F_206C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(36845239)); - _202E_202A_200F_202B_200C_206E_202D_202D_202A_200D_202A_206F_200C_206A_200E_200C_206D_206B_200C_202B_206A_200D_202A_200D_200F_206A_200E_202E_202B_206E_206D_200D_202E_200B_206D_202D_202E_200E_200F_206C_202E(builder, IsUntradable.ToString()); - _202E_202A_200F_202B_200C_206E_202D_202D_202A_200D_202A_206F_200C_206A_200E_200C_206D_206B_200C_202B_206A_200D_202A_200D_200F_206A_200E_202E_202B_206E_206D_200D_202E_200B_206D_202D_202E_200E_200F_206C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(536002464)); - _202E_202A_200F_202B_200C_206E_202D_202D_202A_200D_202A_206F_200C_206A_200E_200C_206D_206B_200C_202B_206A_200D_202A_200D_200F_206A_200E_202E_202B_206E_206D_200D_202E_200B_206D_202D_202E_200E_200F_206C_202E(builder, Type.ToString()); - return true; - } - - [CompilerGenerated] - public virtual bool Equals(ItemReward? other) - { - int num = (((object)this == other) ? (-1574270429) : (-1574270430)); - while (true) - { - int num2 = num; - int num3 = -1574270426; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return EqualityComparer<ItemRewardDetails>.Default.Equals(Item, other.Item); - case 5: - return true; - case 1: - num = ((!_206C_200B_202C_200D_206D_206F_206D_200B_200C_206D_202E_200B_206B_202E_200B_206C_206C_202D_206F_200D_202A_202E_206D_200E_206C_206C_200C_206C_202E_202D_202B_206D_202A_206D_200E_200B_202C_202D_200C_202E_202E(EqualityContract, other.EqualityContract)) ? (-1574270427) : (-1574270428)); - break; - case 0: - num = -1574270430; - break; - case 4: - num = (((object)other == null) ? (-1574270427) : (-1574270425)); - break; - case 3: - return false; - } - } - } - - bool IEquatable<ItemReward>.Equals(ItemReward? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202E_206B_206D_206A_200B_202E_200E_200E_206B_202B_202B_206C_202E_202B_200C_206F_202B_200D_200E_200C_200F_200D_200E_206B_200E_200B_200D_202E_200B_206C_202C_202E_206C_200E_202E_202D_202E_202D_200D_206F_202E(RuntimeTypeHandle P_0) - { - return System.Type.GetTypeFromHandle(P_0); - } - - static bool _200B_206F_206D_202A_200C_206A_200D_202B_202E_206D_202A_206C_202D_202B_206A_202C_202B_200E_202C_202D_206C_206F_200C_202D_202A_202A_200D_202D_202B_206A_206E_202D_206F_200F_206D_206D_200E_200B_202B_202B_202E(Item P_0) - { - return CofferHelper.IsGearCoffer(P_0); - } - - static StringBuilder _202A_202D_200E_206F_206D_202D_202C_200D_202B_202A_206A_202C_206A_206A_202E_200E_200B_206A_202C_206D_202B_206C_206F_206E_206C_202A_202D_200F_200B_206A_200C_206C_206B_206F_200D_202C_200C_206F_202C_200F_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202E_202A_200F_202B_200C_206E_202D_202D_202A_200D_202A_206F_200C_206A_200E_200C_206D_206B_200C_202B_206A_200D_202A_200D_200F_206A_200E_202E_202B_206E_206D_200D_202E_200B_206D_202D_202E_200E_200F_206C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202E_202A_206F_206B_206A_206A_206F_202B_202B_200D_202A_202A_202A_202B_200B_206D_206B_200E_200D_202D_200C_206C_200F_202E_206F_206D_206B_202D_200D_200F_200D_202A_202C_200C_206D_202C_206C_206C_200D_200D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206C_206E_206D_200F_202B_200F_202C_206F_206D_206D_200E_206E_200B_206F_202A_202E_206B_202D_200F_206B_202A_202B_202C_206C_206A_200B_200B_202E_202A_200F_206C_202C_200C_206D_202C_206A_200B_202E_202C_206F_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200D_206A_206C_206E_200F_206F_202C_206F_202B_206C_206E_200B_200C_200B_202A_200D_202E_202E_206D_202A_202C_202B_200B_206E_200C_200C_200D_200F_202B_202B_202C_200D_200B_202A_200F_202C_200B_202B_202A_202A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202B_202D_202E_206D_200D_202E_200E_206B_200D_202A_206E_202E_206B_202A_200F_206D_202E_202E_206F_206A_202C_206C_202B_202C_200D_202A_206B_206C_202E_200D_206E_206C_206F_206D_200E_202B_206B_200E_200B_206F_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206C_200B_202C_200D_206D_206F_206D_200B_200C_206D_202E_200B_206B_202E_200B_206C_206C_202D_206F_200D_202A_202E_206D_200E_206C_206C_200C_206C_202E_202D_202B_206D_202A_206D_200E_200B_202C_202D_200C_202E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } } diff --git a/Questionable/Questionable.Model/ItemRewardDetails.cs b/Questionable/Questionable.Model/ItemRewardDetails.cs index a621092..db215ed 100644 --- a/Questionable/Questionable.Model/ItemRewardDetails.cs +++ b/Questionable/Questionable.Model/ItemRewardDetails.cs @@ -1,8 +1,6 @@ using System; -using Dalamud.Game.Text.SeStringHandling; using Dalamud.Utility; using Lumina.Excel.Sheets; -using Lumina.Text.ReadOnly; using Questionable.Model.Questing; namespace Questionable.Model; @@ -11,7 +9,7 @@ public sealed class ItemRewardDetails { public uint ItemId { get; } = item.RowId; - public string Name { get; } = _206A_206B_206E_206C_206A_206E_200B_206E_200E_206B_206F_202E_200E_206C_206B_200B_206F_202B_200D_206F_206A_202D_202D_202A_200F_202B_206C_202A_200D_202C_202C_200C_200C_206C_206A_200F_200C_202D_202D_202C_202E((object)_200C_202A_202B_200B_202A_206A_202B_206B_200C_200E_206C_206F_200C_206D_206C_202A_202D_206F_202A_202B_200F_206E_200E_200E_202D_200D_202A_206E_206F_202C_206A_202B_206B_200C_206F_200D_202C_200B_200E_206C_202E(item.Name)); + public string Name { get; } = item.Name.ToDalamudString().ToString(); public TimeSpan CastTime { get; } = TimeSpan.FromSeconds(item.CastTimeSeconds); @@ -24,14 +22,4 @@ public sealed class ItemRewardDetails ElementId = elementId; base._002Ector(); } - - static SeString _200C_202A_202B_200B_202A_206A_202B_206B_200C_200E_206C_206F_200C_206D_206C_202A_202D_206F_202A_202B_200F_206E_200E_200E_202D_200D_202A_206E_206F_202C_206A_202B_206B_200C_206F_200D_202C_200B_200E_206C_202E(ReadOnlySeString P_0) - { - return P_0.ToDalamudString(); - } - - static string _206A_206B_206E_206C_206A_206E_200B_206E_200E_206B_206F_202E_200E_206C_206B_200B_206F_202B_200D_206F_206A_202D_202D_202A_200F_202B_206C_202A_200D_202C_202C_200C_200C_206C_206A_200F_200C_202D_202D_202C_202E(object P_0) - { - return P_0.ToString(); - } } diff --git a/Questionable/Questionable.Model/MinionReward.cs b/Questionable/Questionable.Model/MinionReward.cs index 5e48d3b..4d2bce7 100644 --- a/Questionable/Questionable.Model/MinionReward.cs +++ b/Questionable/Questionable.Model/MinionReward.cs @@ -1,23 +1,10 @@ -using System; -using System.Collections.Generic; using System.Runtime.CompilerServices; -using System.Text; using FFXIVClientStructs.FFXIV.Client.Game.UI; namespace Questionable.Model; public sealed record MinionReward : ItemReward { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _206B_200F_202E_200F_206F_206D_206D_200D_202A_200C_202B_200D_200B_202B_202E_202D_206D_206C_200C_206C_206F_202B_206D_202A_202A_206B_206C_206C_200D_200E_202E_200E_202C_202B_200B_206E_206E_206A_200C_206E_202E(typeof(MinionReward).TypeHandle); - } - } - public uint MinionId { get; init; } public override EItemRewardType Type => EItemRewardType.Minion; @@ -33,135 +20,10 @@ public sealed record MinionReward : ItemReward return UIState.Instance()->IsCompanionUnlocked(MinionId); } - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200D_200F_200E_200F_202D_200B_200F_200B_206E_206E_206F_206E_200C_200B_200B_206F_206B_202A_206B_206D_200E_200B_206A_200E_202B_200B_206D_200F_206E_206E_200B_200C_202E_200E_200D_206D_200E_200D_202B_202D_202E(); - _206F_200F_202B_206F_202C_202E_202B_202D_202A_200E_206D_202E_200D_206A_200C_200D_200F_206B_200D_206F_206E_202D_206C_202D_202E_200B_200F_206C_206C_206D_200F_202B_200C_200C_206D_206C_206E_200C_200D_202A_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1942612886)); - _206F_200F_202B_206F_202C_202E_202B_202D_202A_200E_206D_202E_200D_206A_200C_200D_200F_206B_200D_206F_206E_202D_206C_202D_202E_200B_200F_206C_206C_206D_200F_202B_200C_200C_206D_206C_206E_200C_200D_202A_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1344697862)); - int num = ((!PrintMembers(stringBuilder)) ? 328409994 : 328409993); - while (true) - { - int num2 = num; - int num3 = 328409995; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _202A_206C_202E_200C_206E_202A_202A_206A_206E_206E_202E_206E_206F_206B_200F_202B_200C_206D_200B_202A_200E_200D_200F_200F_202D_202B_202C_202A_202B_206B_206B_206A_200F_206C_200D_206F_200E_202A_206B_206E_202E(stringBuilder, '}'); - return _200F_202E_200C_200D_206A_206B_206E_206F_206F_202E_200B_206A_202A_202C_200C_206A_206E_202A_206E_206A_206A_200B_206D_202E_202C_202B_202A_202C_200B_206E_202D_202A_200D_206A_206F_202D_206C_202A_202A_206F_202E((object)stringBuilder); - case 2: - _202A_206C_202E_200C_206E_202A_202A_206A_206E_206E_202E_206E_206F_206B_200F_202B_200C_206D_200B_202A_200E_200D_200F_200F_202D_202B_202C_202A_202B_206B_206B_206A_200F_206C_200D_206F_200E_202A_206B_206E_202E(stringBuilder, ' '); - num = 328409994; - break; - case 0: - num = 328409993; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? 738059944 : 738059945); - while (true) - { - int num2 = num; - int num3 = 738059944; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _206F_200F_202B_206F_202C_202E_202B_202D_202A_200E_206D_202E_200D_206A_200C_200D_200F_206B_200D_206F_206E_202D_206C_202D_202E_200B_200F_206C_206C_206D_200F_202B_200C_200C_206D_206C_206E_200C_200D_202A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1657444292)); - _206F_200F_202B_206F_202C_202E_202B_202D_202A_200E_206D_202E_200D_206A_200C_200D_200F_206B_200D_206F_206E_202D_206C_202D_202E_200B_200F_206C_206C_206D_200F_202B_200C_200C_206D_206C_206E_200C_200D_202A_202E(builder, MinionId.ToString()); - return true; - case 1: - _206F_200F_202B_206F_202C_202E_202B_202D_202A_200E_206D_202E_200D_206A_200C_200D_200F_206B_200D_206F_206E_202D_206C_202D_202E_200B_200F_206C_206C_206D_200F_202B_200C_200C_206D_206C_206E_200C_200D_202A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1087086507)); - num = 738059944; - break; - case 2: - num = 738059945; - break; - } - } - } - - [CompilerGenerated] - public bool Equals(MinionReward? other) - { - int num = (((object)this == other) ? (-1239991407) : (-1239991401)); - while (true) - { - int num2 = num; - int num3 = -1239991405; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return true; - case 4: - num = ((!base.Equals(other)) ? (-1239991405) : (-1239991406)); - break; - case 1: - return EqualityComparer<uint>.Default.Equals(MinionId, other.MinionId); - case 0: - return false; - case 3: - num = -1239991401; - break; - } - } - } - - bool IEquatable<MinionReward>.Equals(MinionReward? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - [CompilerGenerated] public void Deconstruct(out ItemRewardDetails Item, out uint MinionId) { Item = base.Item; MinionId = this.MinionId; } - - static Type _206B_200F_202E_200F_206F_206D_206D_200D_202A_200C_202B_200D_200B_202B_202E_202D_206D_206C_200C_206C_206F_202B_206D_202A_202A_206B_206C_206C_200D_200E_202E_200E_202C_202B_200B_206E_206E_206A_200C_206E_202E(RuntimeTypeHandle P_0) - { - return System.Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200D_200F_200E_200F_202D_200B_200F_200B_206E_206E_206F_206E_200C_200B_200B_206F_206B_202A_206B_206D_200E_200B_206A_200E_202B_200B_206D_200F_206E_206E_200B_200C_202E_200E_200D_206D_200E_200D_202B_202D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206F_200F_202B_206F_202C_202E_202B_202D_202A_200E_206D_202E_200D_206A_200C_200D_200F_206B_200D_206F_206E_202D_206C_202D_202E_200B_200F_206C_206C_206D_200F_202B_200C_200C_206D_206C_206E_200C_200D_202A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202A_206C_202E_200C_206E_202A_202A_206A_206E_206E_202E_206E_206F_206B_200F_202B_200C_206D_200B_202A_200E_200D_200F_200F_202D_202B_202C_202A_202B_206B_206B_206A_200F_206C_200D_206F_200E_202A_206B_206E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200F_202E_200C_200D_206A_206B_206E_206F_206F_202E_200B_206A_202A_202C_200C_206A_206E_202A_206E_206A_206A_200B_206D_202E_202C_202B_202A_202C_200B_206E_202D_202A_200D_206A_206F_202D_206C_202A_202A_206F_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _202C_202D_206B_200D_202B_200F_202A_200D_206E_200D_202B_202A_200E_206C_206A_202D_206A_206B_206D_206D_200B_200F_202D_206F_206A_200B_202C_206D_200F_206F_206D_200E_202B_200B_206B_200B_202E_206F_206C_202C_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } } diff --git a/Questionable/Questionable.Model/MountReward.cs b/Questionable/Questionable.Model/MountReward.cs index 4f842b0..3677dd5 100644 --- a/Questionable/Questionable.Model/MountReward.cs +++ b/Questionable/Questionable.Model/MountReward.cs @@ -1,23 +1,10 @@ -using System; -using System.Collections.Generic; using System.Runtime.CompilerServices; -using System.Text; using LLib.GameData; namespace Questionable.Model; public sealed record MountReward : ItemReward { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _206D_202C_202E_200B_200D_202D_206B_202D_202A_202B_200E_206F_202A_202D_202E_202E_206F_206A_202C_200D_200B_206B_206C_202E_206F_206A_206B_206C_202E_206E_200B_200B_206D_202D_206C_206D_200F_202E_202E_206E_202E(typeof(MountReward).TypeHandle); - } - } - public uint MountId { get; init; } public override EItemRewardType Type => EItemRewardType.Mount; @@ -30,100 +17,7 @@ public sealed record MountReward : ItemReward public override bool IsUnlocked() { - return _200D_202C_200F_206D_200D_206C_202C_206D_206D_202B_200E_202D_200C_200F_206D_206C_202A_200E_202C_200B_202B_202C_202E_206C_206B_200D_206A_200D_200F_200F_206E_200B_202A_206C_200C_206C_202B_202D_206C_200C_202E(MountId); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202D_200C_206B_202C_202C_206A_200F_200B_200B_206A_200F_202C_206C_200B_206A_200E_206D_200B_202E_206F_200F_202E_202B_202D_206F_206E_206A_202B_202A_200C_202A_202C_202A_206B_202D_202E_206D_206C_202C_200E_202E(); - _200C_206F_202A_202A_200C_202B_200C_206A_200B_206D_200E_202D_202E_200C_202C_206B_202C_206D_206D_202E_200B_202B_206A_206F_206E_200F_200D_206F_202B_206F_200D_202D_202C_206E_200D_206A_206B_200F_200C_206C_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1221435130)); - _200C_206F_202A_202A_200C_202B_200C_206A_200B_206D_200E_202D_202E_200C_202C_206B_202C_206D_206D_202E_200B_202B_206A_206F_206E_200F_200D_206F_202B_206F_200D_202D_202C_206E_200D_206A_206B_200F_200C_206C_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(117284107)); - int num = ((!PrintMembers(stringBuilder)) ? 58843567 : 58843566); - while (true) - { - int num2 = num; - int num3 = 58843567; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 58843566; - break; - case 1: - _206A_206E_206D_200B_202D_206E_202B_206E_202E_202B_200F_202C_200F_200B_202C_206F_202B_206D_206B_206B_202D_200E_206E_200D_200C_206C_202C_202D_206C_206C_202B_200D_202E_202B_206C_206E_200C_202C_202A_200C_202E(stringBuilder, ' '); - num = 58843567; - break; - case 0: - _206A_206E_206D_200B_202D_206E_202B_206E_202E_202B_200F_202C_200F_200B_202C_206F_202B_206D_206B_206B_202D_200E_206E_200D_200C_206C_202C_202D_206C_206C_202B_200D_202E_202B_206C_206E_200C_202C_202A_200C_202E(stringBuilder, '}'); - return _202C_202B_206F_206B_200D_206E_206D_206A_202C_206E_200F_200E_202E_200F_202A_206D_206B_202E_200D_202D_200D_200E_202B_200F_200C_202D_206D_200F_200C_206B_200B_200B_200C_200F_202C_200D_202D_206C_200F_206C_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? (-1015769128) : (-1015769127)); - while (true) - { - int num2 = num; - int num3 = -1015769128; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -1015769127; - break; - case 0: - _200C_206F_202A_202A_200C_202B_200C_206A_200B_206D_200E_202D_202E_200C_202C_206B_202C_206D_206D_202E_200B_202B_206A_206F_206E_200F_200D_206F_202B_206F_200D_202D_202C_206E_200D_206A_206B_200F_200C_206C_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1941296571)); - _200C_206F_202A_202A_200C_202B_200C_206A_200B_206D_200E_202D_202E_200C_202C_206B_202C_206D_206D_202E_200B_202B_206A_206F_206E_200F_200D_206F_202B_206F_200D_202D_202C_206E_200D_206A_206B_200F_200C_206C_202E(builder, MountId.ToString()); - return true; - case 1: - _200C_206F_202A_202A_200C_202B_200C_206A_200B_206D_200E_202D_202E_200C_202C_206B_202C_206D_206D_202E_200B_202B_206A_206F_206E_200F_200D_206F_202B_206F_200D_202D_202C_206E_200D_206A_206B_200F_200C_206C_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1577352017)); - num = -1015769128; - break; - } - } - } - - [CompilerGenerated] - public bool Equals(MountReward? other) - { - int num = (((object)this == other) ? (-1601021370) : (-1601021371)); - while (true) - { - int num2 = num; - int num3 = -1601021370; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return true; - case 4: - return EqualityComparer<uint>.Default.Equals(MountId, other.MountId); - case 3: - num = ((!base.Equals(other)) ? (-1601021369) : (-1601021374)); - break; - case 1: - return false; - case 2: - num = -1601021371; - break; - } - } - } - - bool IEquatable<MountReward>.Equals(MountReward? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); + return PlayerStateHelper.IsMountUnlocked(MountId); } [CompilerGenerated] @@ -132,39 +26,4 @@ public sealed record MountReward : ItemReward Item = base.Item; MountId = this.MountId; } - - static Type _206D_202C_202E_200B_200D_202D_206B_202D_202A_202B_200E_206F_202A_202D_202E_202E_206F_206A_202C_200D_200B_206B_206C_202E_206F_206A_206B_206C_202E_206E_200B_200B_206D_202D_206C_206D_200F_202E_202E_206E_202E(RuntimeTypeHandle P_0) - { - return System.Type.GetTypeFromHandle(P_0); - } - - static bool _200D_202C_200F_206D_200D_206C_202C_206D_206D_202B_200E_202D_200C_200F_206D_206C_202A_200E_202C_200B_202B_202C_202E_206C_206B_200D_206A_200D_200F_200F_206E_200B_202A_206C_200C_206C_202B_202D_206C_200C_202E(uint P_0) - { - return PlayerStateHelper.IsMountUnlocked(P_0); - } - - static StringBuilder _202D_200C_206B_202C_202C_206A_200F_200B_200B_206A_200F_202C_206C_200B_206A_200E_206D_200B_202E_206F_200F_202E_202B_202D_206F_206E_206A_202B_202A_200C_202A_202C_202A_206B_202D_202E_206D_206C_202C_200E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200C_206F_202A_202A_200C_202B_200C_206A_200B_206D_200E_202D_202E_200C_202C_206B_202C_206D_206D_202E_200B_202B_206A_206F_206E_200F_200D_206F_202B_206F_200D_202D_202C_206E_200D_206A_206B_200F_200C_206C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206A_206E_206D_200B_202D_206E_202B_206E_202E_202B_200F_202C_200F_200B_202C_206F_202B_206D_206B_206B_202D_200E_206E_200D_200C_206C_202C_202D_206C_206C_202B_200D_202E_202B_206C_206E_200C_202C_202A_200C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202C_202B_206F_206B_200D_206E_206D_206A_202C_206E_200F_200E_202E_200F_202A_206D_206B_202E_200D_202D_200D_200E_202B_200F_200C_202D_206D_200F_200C_206B_200B_200B_200C_200F_202C_200D_202D_206C_200F_206C_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _200F_206F_202E_206F_202D_202D_202A_200E_206A_202D_206B_200C_202B_200F_206A_202D_206F_206E_206D_202E_200F_206E_206D_206A_202E_206C_206E_200D_200F_202A_206B_206F_200F_200B_206C_200D_200C_202B_202C_200C_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } } diff --git a/Questionable/Questionable.Model/OrchestrionRollReward.cs b/Questionable/Questionable.Model/OrchestrionRollReward.cs index 09b33bf..6c4cba3 100644 --- a/Questionable/Questionable.Model/OrchestrionRollReward.cs +++ b/Questionable/Questionable.Model/OrchestrionRollReward.cs @@ -1,23 +1,10 @@ -using System; -using System.Collections.Generic; using System.Runtime.CompilerServices; -using System.Text; using LLib.GameData; namespace Questionable.Model; public sealed record OrchestrionRollReward : ItemReward { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _202C_206E_202D_206E_206A_206B_200B_206B_202D_202B_206E_200D_200B_200F_200E_206F_202E_202D_200B_202A_200B_202E_200D_206E_200E_200D_202D_200E_200C_202D_206E_202E_206C_202B_200E_202E_206C_202A_200F_202B_202E(typeof(OrchestrionRollReward).TypeHandle); - } - } - public uint OrchestrionRollId { get; init; } public override EItemRewardType Type => EItemRewardType.OrchestrionRoll; @@ -30,100 +17,7 @@ public sealed record OrchestrionRollReward : ItemReward public override bool IsUnlocked() { - return _200D_202D_206B_206A_206E_200F_206C_200C_202D_202C_200F_206F_206B_200C_200F_206E_200C_202C_202D_206D_202B_200C_200B_206C_206D_202E_206F_200D_200F_200B_206D_202C_206B_206E_200D_202E_202E_200C_202E_200E_202E(OrchestrionRollId); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202E_206F_206B_200E_202D_200E_202D_202C_206A_200E_200E_200C_202E_206E_202E_200E_202D_202D_202E_206A_200B_206E_202E_206A_206D_206B_206A_202D_200D_202A_200F_202E_202C_206F_206A_200E_206A_206C_202D_202B_202E(); - _202B_200B_206E_206B_206C_202D_202A_202C_206F_206E_206F_206C_206A_206D_202E_206C_206B_202B_202A_200C_206A_206C_206F_206E_200B_202E_206E_206A_206B_202D_206C_206E_202E_200D_200D_206E_206F_206A_200E_202E_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(117582114)); - _202B_200B_206E_206B_206C_202D_202A_202C_206F_206E_206F_206C_206A_206D_202E_206C_206B_202B_202A_200C_206A_206C_206F_206E_200B_202E_206E_206A_206B_202D_206C_206E_202E_200D_200D_206E_206F_206A_200E_202E_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1344697862)); - int num = ((!PrintMembers(stringBuilder)) ? (-970373537) : (-970373540)); - while (true) - { - int num2 = num; - int num3 = -970373539; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - _200D_202D_206C_206B_206E_202B_206A_200E_200D_202C_200F_200F_200F_200F_206B_200D_200D_206A_202D_206D_206D_202B_200B_202E_206D_206C_200C_202C_206D_206E_200D_200F_206B_202B_206C_206A_202B_206E_206C_202B_202E(stringBuilder, '}'); - return _206A_206B_206A_200B_206A_202C_206B_200B_206B_206A_206A_206F_202B_200D_200C_206D_200D_206A_200B_200F_202A_200F_206A_206F_206E_206A_200B_206F_202B_200C_202C_202C_202C_206F_200E_202A_200E_200F_200F_202A_202E((object)stringBuilder); - case 1: - _200D_202D_206C_206B_206E_202B_206A_200E_200D_202C_200F_200F_200F_200F_206B_200D_200D_206A_202D_206D_206D_202B_200B_202E_206D_206C_200C_202C_206D_206E_200D_200F_206B_202B_206C_206A_202B_206E_206C_202B_202E(stringBuilder, ' '); - num = -970373537; - break; - case 0: - num = -970373540; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? 1843073855 : 1843073852); - while (true) - { - int num2 = num; - int num3 = 1843073853; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - _202B_200B_206E_206B_206C_202D_202A_202C_206F_206E_206F_206C_206A_206D_202E_206C_206B_202B_202A_200C_206A_206C_206F_206E_200B_202E_206E_206A_206B_202D_206C_206E_202E_200D_200D_206E_206F_206A_200E_202E_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(463107182)); - _202B_200B_206E_206B_206C_202D_202A_202C_206F_206E_206F_206C_206A_206D_202E_206C_206B_202B_202A_200C_206A_206C_206F_206E_200B_202E_206E_206A_206B_202D_206C_206E_202E_200D_200D_206E_206F_206A_200E_202E_202E(builder, OrchestrionRollId.ToString()); - return true; - case 1: - _202B_200B_206E_206B_206C_202D_202A_202C_206F_206E_206F_206C_206A_206D_202E_206C_206B_202B_202A_200C_206A_206C_206F_206E_200B_202E_206E_206A_206B_202D_206C_206E_202E_200D_200D_206E_206F_206A_200E_202E_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1095822044)); - num = 1843073855; - break; - case 0: - num = 1843073852; - break; - } - } - } - - [CompilerGenerated] - public bool Equals(OrchestrionRollReward? other) - { - int num = (((object)this == other) ? 1522339869 : 1522339870); - while (true) - { - int num2 = num; - int num3 = 1522339868; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1522339870; - break; - case 1: - return true; - case 2: - num = ((!base.Equals(other)) ? 1522339871 : 1522339864); - break; - case 3: - return false; - case 4: - return EqualityComparer<uint>.Default.Equals(OrchestrionRollId, other.OrchestrionRollId); - } - } - } - - bool IEquatable<OrchestrionRollReward>.Equals(OrchestrionRollReward? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); + return PlayerStateHelper.IsOrchestrionRollUnlocked(OrchestrionRollId); } [CompilerGenerated] @@ -132,39 +26,4 @@ public sealed record OrchestrionRollReward : ItemReward Item = base.Item; OrchestrionRollId = this.OrchestrionRollId; } - - static Type _202C_206E_202D_206E_206A_206B_200B_206B_202D_202B_206E_200D_200B_200F_200E_206F_202E_202D_200B_202A_200B_202E_200D_206E_200E_200D_202D_200E_200C_202D_206E_202E_206C_202B_200E_202E_206C_202A_200F_202B_202E(RuntimeTypeHandle P_0) - { - return System.Type.GetTypeFromHandle(P_0); - } - - static bool _200D_202D_206B_206A_206E_200F_206C_200C_202D_202C_200F_206F_206B_200C_200F_206E_200C_202C_202D_206D_202B_200C_200B_206C_206D_202E_206F_200D_200F_200B_206D_202C_206B_206E_200D_202E_202E_200C_202E_200E_202E(uint P_0) - { - return PlayerStateHelper.IsOrchestrionRollUnlocked(P_0); - } - - static StringBuilder _202E_206F_206B_200E_202D_200E_202D_202C_206A_200E_200E_200C_202E_206E_202E_200E_202D_202D_202E_206A_200B_206E_202E_206A_206D_206B_206A_202D_200D_202A_200F_202E_202C_206F_206A_200E_206A_206C_202D_202B_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202B_200B_206E_206B_206C_202D_202A_202C_206F_206E_206F_206C_206A_206D_202E_206C_206B_202B_202A_200C_206A_206C_206F_206E_200B_202E_206E_206A_206B_202D_206C_206E_202E_200D_200D_206E_206F_206A_200E_202E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200D_202D_206C_206B_206E_202B_206A_200E_200D_202C_200F_200F_200F_200F_206B_200D_200D_206A_202D_206D_206D_202B_200B_202E_206D_206C_200C_202C_206D_206E_200D_200F_206B_202B_206C_206A_202B_206E_206C_202B_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206A_206B_206A_200B_206A_202C_206B_200B_206B_206A_206A_206F_202B_200D_200C_206D_200D_206A_200B_200F_202A_200F_206A_206F_206E_206A_200B_206F_202B_200C_202C_202C_202C_206F_200E_202A_200E_200F_200F_202A_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _206A_202D_206C_200D_206F_206B_202C_206F_202B_200B_202B_202C_202B_202A_206A_202B_200D_206C_200F_206A_206D_200F_200F_202A_206D_202A_202E_200E_200B_202E_202D_200B_202C_206B_206A_200F_200F_206D_206C_200C_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } } diff --git a/Questionable/Questionable.Model/PreviousQuestInfo.cs b/Questionable/Questionable.Model/PreviousQuestInfo.cs index 5dec1b6..302a32e 100644 --- a/Questionable/Questionable.Model/PreviousQuestInfo.cs +++ b/Questionable/Questionable.Model/PreviousQuestInfo.cs @@ -1,140 +1,5 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using Questionable.Model.Questing; namespace Questionable.Model; -internal sealed record PreviousQuestInfo(QuestId QuestId, byte Sequence = 0) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200C_200B_200C_200F_200E_200F_200B_206E_202A_200D_202D_206B_206D_206D_202B_206E_206A_200F_206F_200B_202B_200C_206B_202C_200E_206C_200E_202E_200D_206D_200F_206E_206F_200D_202B_206F_202D_202C_202A_206E_202E(typeof(PreviousQuestInfo).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206F_200F_202A_200E_206A_200E_202B_202D_200C_202E_200C_202A_206B_206E_200F_200D_206A_202B_206D_200D_202B_206E_206F_206F_202B_202A_200D_200C_200C_206D_206F_202C_200C_206F_206C_206E_200B_202E_206D_200D_202E(); - _202E_200C_206D_202C_206E_200B_202A_200E_200E_200D_200D_202D_202A_202D_200C_200D_202A_202C_200B_206D_200F_202B_202E_206B_200D_202C_202E_206D_202A_206C_200C_202E_206E_202B_200F_206B_200F_200E_202E_206E_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(332491426)); - _202E_200C_206D_202C_206E_200B_202A_200E_200E_200D_200D_202D_202A_202D_200C_200D_202A_202C_200B_206D_200F_202B_202E_206B_200D_202C_202E_206D_202A_206C_200C_202E_206E_202B_200F_206B_200F_200E_202E_206E_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(117284107)); - int num = ((!PrintMembers(stringBuilder)) ? 713400625 : 713400626); - while (true) - { - int num2 = num; - int num3 = 713400627; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 713400626; - break; - case 1: - _200E_202C_200F_202D_206E_202C_206B_202D_206D_206C_200F_200B_206A_200C_202D_200D_206E_206E_206F_206B_206E_206F_206C_206E_206B_206E_200E_200E_202C_202C_202A_202C_200E_202C_202B_206D_202D_202A_202E_200F_202E(stringBuilder, ' '); - num = 713400625; - break; - case 2: - _200E_202C_200F_202D_206E_202C_206B_202D_206D_206C_200F_200B_206A_200C_202D_200D_206E_206E_206F_206B_206E_206F_206C_206E_206B_206E_200E_200E_202C_202C_202A_202C_200E_202C_202B_206D_202D_202A_202E_200F_202E(stringBuilder, '}'); - return _200D_200B_200B_202C_202C_206A_206D_200C_200E_200D_206E_206A_202A_206B_200F_206F_200C_206D_202A_200C_200C_202A_206C_202C_206A_206B_200C_200D_206F_202D_200F_202B_200E_206B_200F_206A_200F_200F_206B_202C_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206D_200B_206D_200D_202E_206D_200E_202E_202A_202C_206C_200F_206D_202B_200F_206E_200B_200E_200B_200E_200F_206E_206C_202B_200D_202B_200B_206F_200D_200C_206D_206D_206D_202C_202E_206A_206C_202D_200B_202B_202E(); - _202E_200C_206D_202C_206E_200B_202A_200E_200E_200D_200D_202D_202A_202D_200C_200D_202A_202C_200B_206D_200F_202B_202E_206B_200D_202C_202E_206D_202A_206C_200C_202E_206E_202B_200F_206B_200F_200E_202E_206E_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2228577)); - _200C_200E_206B_200D_206F_206B_200C_206A_206A_206D_206C_202A_202A_200F_202A_206C_200F_200D_200C_202C_206E_206E_200B_206B_206D_202B_202C_206C_200B_202A_206F_202B_200B_202D_200D_202A_200E_206D_200B_206A_202E(builder, (object)QuestId); - _202E_200C_206D_202C_206E_200B_202A_200E_200E_200D_200D_202D_202A_202D_200C_200D_202A_202C_200B_206D_200F_202B_202E_206B_200D_202C_202E_206D_202A_206C_200C_202E_206E_202B_200F_206B_200F_200E_202E_206E_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-327076954)); - _202E_200C_206D_202C_206E_200B_202A_200E_200E_200D_200D_202D_202A_202D_200C_200D_202A_202C_200B_206D_200F_202B_202E_206B_200D_202C_202E_206D_202A_206C_200C_202E_206E_202B_200F_206B_200F_200E_202E_206E_202E(builder, Sequence.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(PreviousQuestInfo? other) - { - int num = (((object)this == other) ? (-684084045) : (-684084046)); - while (true) - { - int num2 = num; - int num3 = -684084048; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - num = ((!_202E_206F_200F_202C_202C_206B_206E_200F_206F_200E_206A_200B_202A_200E_202B_200C_206E_200C_200D_206A_200E_200E_206A_202A_200E_200C_202A_200D_200F_206A_206F_200B_200D_202A_206D_206B_200D_206C_206D_206E_202E(EqualityContract, other.EqualityContract)) ? (-684084044) : (-684084047)); - break; - case 0: - return EqualityComparer<byte>.Default.Equals(Sequence, other.Sequence); - case 4: - return false; - case 5: - num = -684084046; - break; - case 2: - num = (((object)other == null) ? (-684084044) : (-684084042)); - break; - case 3: - return true; - case 1: - num = ((!EqualityComparer<Questionable.Model.Questing.QuestId>.Default.Equals(QuestId, other.QuestId)) ? (-684084044) : (-684084048)); - break; - } - } - } - - bool IEquatable<PreviousQuestInfo>.Equals(PreviousQuestInfo? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200C_200B_200C_200F_200E_200F_200B_206E_202A_200D_202D_206B_206D_206D_202B_206E_206A_200F_206F_200B_202B_200C_206B_202C_200E_206C_200E_202E_200D_206D_200F_206E_206F_200D_202B_206F_202D_202C_202A_206E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206F_200F_202A_200E_206A_200E_202B_202D_200C_202E_200C_202A_206B_206E_200F_200D_206A_202B_206D_200D_202B_206E_206F_206F_202B_202A_200D_200C_200C_206D_206F_202C_200C_206F_206C_206E_200B_202E_206D_200D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202E_200C_206D_202C_206E_200B_202A_200E_200E_200D_200D_202D_202A_202D_200C_200D_202A_202C_200B_206D_200F_202B_202E_206B_200D_202C_202E_206D_202A_206C_200C_202E_206E_202B_200F_206B_200F_200E_202E_206E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200E_202C_200F_202D_206E_202C_206B_202D_206D_206C_200F_200B_206A_200C_202D_200D_206E_206E_206F_206B_206E_206F_206C_206E_206B_206E_200E_200E_202C_202C_202A_202C_200E_202C_202B_206D_202D_202A_202E_200F_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200D_200B_200B_202C_202C_206A_206D_200C_200E_200D_206E_206A_202A_206B_200F_206F_200C_206D_202A_200C_200C_202A_206C_202C_206A_206B_200C_200D_206F_202D_200F_202B_200E_206B_200F_206A_200F_200F_206B_202C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206D_200B_206D_200D_202E_206D_200E_202E_202A_202C_206C_200F_206D_202B_200F_206E_200B_200E_200B_200E_200F_206E_206C_202B_200D_202B_200B_206F_200D_200C_206D_206D_206D_202C_202E_206A_206C_202D_200B_202B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200C_200E_206B_200D_206F_206B_200C_206A_206A_206D_206C_202A_202A_200F_202A_206C_200F_200D_200C_202C_206E_206E_200B_206B_206D_202B_202C_206C_200B_202A_206F_202B_200B_202D_200D_202A_200E_206D_200B_206A_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202E_206F_200F_202C_202C_206B_206E_200F_206F_200E_206A_200B_202A_200E_202B_200C_206E_200C_200D_206A_200E_200E_206A_202A_200E_200C_202A_200D_200F_206A_206F_200B_200D_202A_206D_206B_200D_206C_206D_206E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +internal sealed record PreviousQuestInfo(QuestId QuestId, byte Sequence = 0); diff --git a/Questionable/Questionable.Model/Quest.cs b/Questionable/Questionable.Model/Quest.cs index 43f206d..bd4a0b3 100644 --- a/Questionable/Questionable.Model/Quest.cs +++ b/Questionable/Questionable.Model/Quest.cs @@ -1,9 +1,5 @@ -using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; -using System.Runtime.CompilerServices; using Questionable.Model.Questing; namespace Questionable.Model; @@ -17,268 +13,6 @@ internal sealed class Quest UserDirectory } - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass20_0 - { - public byte currentSequence; - - internal bool _003CFindSequence_003Eb__0(QuestSequence seq) - { - return _202C_202A_202B_202A_202E_202A_206F_202D_206B_200B_206D_206C_202E_206B_206B_202B_200B_202A_200C_206A_202C_202E_200F_206D_202B_200D_200F_202C_206D_202E_200F_206C_200E_202B_200B_202E_202E_202E_206D_200E_202E(seq) == currentSequence; - } - - static byte _202C_202A_202B_202A_202E_202A_206F_202D_206B_200B_206D_206C_202E_206B_206B_202B_200B_202A_200C_206A_202C_202E_200F_206D_202B_200D_200F_202C_206D_202E_200F_206C_200E_202B_200B_202E_202E_202E_206D_200E_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - } - - [CompilerGenerated] - private sealed class _003CAllSteps_003Ed__22 : IEnumerable<(QuestSequence Sequence, int StepId, QuestStep Step)>, IEnumerable, IEnumerator<(QuestSequence Sequence, int StepId, QuestStep Step)>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private (QuestSequence Sequence, int StepId, QuestStep Step) _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - public Quest _003C_003E4__this; - - private List<QuestSequence>.Enumerator _003C_003E7__wrap1; - - private QuestSequence _003Csequence_003E5__3; - - private int _003Ci_003E5__4; - - (QuestSequence Sequence, int StepId, QuestStep Step) IEnumerator<(QuestSequence, int, QuestStep)>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CAllSteps_003Ed__22(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _200B_200D_202E_206B_206E_200C_202D_206E_206E_200E_206B_206B_202A_206F_202C_202D_206B_202D_200E_200E_206F_202C_206A_206D_202B_202C_202A_200C_202A_206E_202E_206A_200D_206F_200C_206C_206C_206A_206E_202C_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num == -3) ? 529079118 : 529079117); - while (true) - { - int num3 = num2; - int num4 = 529079116; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 0: - num2 = 529079117; - continue; - case 1: - if (num == 1) - { - num2 = 529079118; - continue; - } - break; - case 2: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E7__wrap1 = default(List<QuestSequence>.Enumerator); - _003Csequence_003E5__3 = null; - _003C_003E1__state = -2; - } - - private bool MoveNext() - { - try - { - int num = _003C_003E1__state; - Quest quest = _003C_003E4__this; - int num2 = ((num == 0) ? 1702961478 : 1702961473); - while (true) - { - int num3 = num2; - int num4 = 1702961479; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 3: - return false; - case 6: - num2 = ((num == 1) ? 1702961487 : 1702961476); - break; - case 5: - _003Csequence_003E5__3 = null; - num2 = 1702961472; - break; - case 7: - num2 = (_003C_003E7__wrap1.MoveNext() ? 1702961479 : 1702961475); - break; - case 9: - { - QuestStep item = _200E_202C_202A_206A_202A_200E_202B_200D_206B_206D_202B_200D_202A_206C_206C_202D_206A_200C_202C_206D_206E_206C_206B_206C_206E_202B_206C_206D_206F_200B_200E_206C_202B_206A_206A_202A_202A_206C_200C_206A_202E(_003Csequence_003E5__3)[_003Ci_003E5__4]; - _003C_003E2__current = (Sequence: _003Csequence_003E5__3, StepId: _003Ci_003E5__4, Step: item); - _003C_003E1__state = 1; - return true; - } - case 2: - num2 = ((_003Ci_003E5__4 < _200E_202C_202A_206A_202A_200E_202B_200D_206B_206D_202B_200D_202A_206C_206C_202D_206A_200C_202C_206D_206E_206C_206B_206C_206E_202B_206C_206D_206F_200B_200E_206C_202B_206A_206A_202A_202A_206C_200C_206A_202E(_003Csequence_003E5__3).Count) ? 1702961486 : 1702961474); - break; - case 0: - _003Csequence_003E5__3 = _003C_003E7__wrap1.Current; - _003Ci_003E5__4 = 0; - num2 = 1702961477; - break; - case 10: - num2 = 1702961473; - break; - case 1: - _003C_003E1__state = -1; - _003C_003E7__wrap1 = _202E_202A_206D_202E_200B_200F_200B_206A_206D_202E_202B_202A_200B_200D_202C_202C_200D_202D_202C_206F_200E_202C_200E_206D_202C_202A_206F_206E_202A_206E_202D_200C_200C_200D_200C_206E_200D_202E_206C_206E_202E(quest.Root).GetEnumerator(); - _003C_003E1__state = -3; - num2 = 1702961472; - break; - case 8: - { - _003C_003E1__state = -3; - int num8 = _003Ci_003E5__4; - num4 = 1; - num5 = num8; - int num9 = num5 ^ num4; - int num10 = num5 & num4; - int num11 = num9 + (num10 + num10); - _003Ci_003E5__4 = num11; - num2 = 1702961477; - break; - } - case 4: - _003C_003Em__Finally1(); - _003C_003E7__wrap1 = default(List<QuestSequence>.Enumerator); - return false; - } - } - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - ((IDisposable)_003C_003E7__wrap1/*cast due to .constrained prefix*/).Dispose(); - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _202A_206B_200E_202E_206B_206B_206C_202E_200F_200D_200C_206F_200C_206E_202E_200F_200D_202E_200D_206E_206F_202A_202D_202A_206D_202C_206F_206A_202D_206F_206C_200D_200B_202B_202E_206D_202B_206B_206F_206B_202E(); - } - - [DebuggerHidden] - IEnumerator<(QuestSequence Sequence, int StepId, QuestStep Step)> IEnumerable<(QuestSequence, int, QuestStep)>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? 329781790 : 329781784); - _003CAllSteps_003Ed__22 result = default(_003CAllSteps_003Ed__22); - while (true) - { - int num2 = num; - int num3 = 329781788; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return result; - case 2: - result = new _003CAllSteps_003Ed__22(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = 329781791; - break; - case 0: - num = 329781784; - break; - case 4: - num = ((_003C_003El__initialThreadId != _200B_200D_202E_206B_206E_200C_202D_206E_206E_200E_206B_206B_202A_206F_202C_202D_206B_202D_200E_200E_206F_202C_206A_206D_202B_202C_202A_200C_202A_206E_202E_206A_200D_206F_200C_206C_206C_206A_206E_202C_202E()) ? 329781790 : 329781789); - break; - case 1: - _003C_003E1__state = 0; - result = this; - num = 329781791; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<(QuestSequence, int, QuestStep)>)this).GetEnumerator(); - } - - static int _200B_200D_202E_206B_206E_200C_202D_206E_206E_200E_206B_206B_202A_206F_202C_202D_206B_202D_200E_200E_206F_202C_206A_206D_202B_202C_202A_200C_202A_206E_202E_206A_200D_206F_200C_206C_206C_206A_206E_202C_202E() - { - return Environment.CurrentManagedThreadId; - } - - static List<QuestSequence> _202E_202A_206D_202E_200B_200F_200B_206A_206D_202E_202B_202A_200B_200D_202C_202C_200D_202D_202C_206F_200E_202C_200E_206D_202C_202A_206F_206E_202A_206E_202D_200C_200C_200D_200C_206E_200D_202E_206C_206E_202E(QuestRoot P_0) - { - return P_0.QuestSequence; - } - - static List<QuestStep> _200E_202C_202A_206A_202A_200E_202B_200D_206B_206D_202B_200D_202A_206C_206C_202D_206A_200C_202C_206D_206E_206C_206B_206C_206E_202B_206C_206D_206F_200B_200E_206C_202B_206A_206A_202A_202A_206C_200C_206A_202E(QuestSequence P_0) - { - return P_0.Steps; - } - - static NotSupportedException _202A_206B_200E_202E_206B_206B_206C_202E_200F_200D_200C_206F_200C_206E_202E_200F_200D_202E_200D_206E_206F_202A_202D_202A_206D_202C_206F_206A_202D_206F_206C_200D_200B_202B_202E_206D_202B_206B_206F_206B_202E() - { - return new NotSupportedException(); - } - } - public required ElementId Id { get; init; } public required QuestRoot Root { get; init; } @@ -291,26 +25,26 @@ internal sealed class Quest public QuestSequence? FindSequence(byte currentSequence) { - return _206A_206C_206A_200B_200F_206F_206C_200F_206C_200C_200C_206F_200F_206B_200F_202D_206A_200D_206C_206E_206D_200C_200D_202B_202B_200B_206C_202D_202A_206F_206F_200E_206D_200D_202E_202A_202C_200F_200D_200F_202E(Root).FirstOrDefault((QuestSequence seq) => _003C_003Ec__DisplayClass20_0._202C_202A_202B_202A_202E_202A_206F_202D_206B_200B_206D_206C_202E_206B_206B_202B_200B_202A_200C_206A_202C_202E_200F_206D_202B_200D_200F_202C_206D_202E_200F_206C_200E_202B_200B_202E_202E_202E_206D_200E_202E(seq) == currentSequence); + return Root.QuestSequence.FirstOrDefault((QuestSequence seq) => seq.Sequence == currentSequence); } public IEnumerable<QuestSequence> AllSequences() { - return _206A_206C_206A_200B_200F_206F_206C_200F_206C_200C_200C_206F_200F_206B_200F_202D_206A_200D_206C_206E_206D_200C_200D_202B_202B_200B_206C_202D_202A_206F_206F_200E_206D_200D_202E_202A_202C_200F_200D_200F_202E(Root); + return Root.QuestSequence; } - [IteratorStateMachine(typeof(_003CAllSteps_003Ed__22))] public IEnumerable<(QuestSequence Sequence, int StepId, QuestStep Step)> AllSteps() { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CAllSteps_003Ed__22(-2) + foreach (QuestSequence sequence in Root.QuestSequence) { - _003C_003E4__this = this - }; - } - - static List<QuestSequence> _206A_206C_206A_200B_200F_206F_206C_200F_206C_200C_200C_206F_200F_206B_200F_202D_206A_200D_206C_206E_206D_200C_200D_202B_202B_200B_206C_202D_202A_206F_206F_200E_206D_200D_202E_202A_202C_200F_200D_200F_202E(QuestRoot P_0) - { - return P_0.QuestSequence; + int i = 0; + while (i < sequence.Steps.Count) + { + QuestStep item = sequence.Steps[i]; + yield return (Sequence: sequence, StepId: i, Step: item); + int num = i + 1; + i = num; + } + } } } diff --git a/Questionable/Questionable.Model/QuestInfo.cs b/Questionable/Questionable.Model/QuestInfo.cs index e4b8e7a..4c84c06 100644 --- a/Questionable/Questionable.Model/QuestInfo.cs +++ b/Questionable/Questionable.Model/QuestInfo.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; -using System.Runtime.CompilerServices; using FFXIVClientStructs.FFXIV.Client.UI.Agent; using LLib.GameData; using Lumina.Excel; @@ -13,134 +12,6 @@ namespace Questionable.Model; internal sealed class QuestInfo : IQuestInfo { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<PreviousQuestInfo, bool> _003C_003E9__0_0; - - public static Func<RowRef<Lumina.Excel.Sheets.Quest>, QuestId> _003C_003E9__0_1; - - public static Func<QuestId, bool> _003C_003E9__0_2; - - public static Func<RowRef<InstanceContent>, ushort> _003C_003E9__0_3; - - public static Func<ushort, bool> _003C_003E9__0_4; - - public static Func<RowRef, bool> _003C_003E9__0_5; - - public static Func<RowRef, Item?> _003C_003E9__0_6; - - public static Func<Item?, bool> _003C_003E9__0_7; - - public static Func<RowRef<Item>, bool> _003C_003E9__0_8; - - public static Func<RowRef<Item>, Item?> _003C_003E9__0_9; - - public static Func<Item?, bool> _003C_003E9__0_10; - - public static Func<Item?, Item> _003C_003E9__0_11; - - public static Func<ItemReward, bool> _003C_003E9__0_13; - - internal bool _003C_002Ector_003Eb__0_0(PreviousQuestInfo x) - { - return _206E_200E_202A_200F_200F_206C_202E_206C_200E_202E_206B_206F_206E_206D_200F_202E_206E_206C_202E_202B_200C_202E_202D_206E_206A_206B_200E_200E_200D_202D_202E_200B_202C_206D_200C_206A_200B_206D_202C_206B_202E((ElementId)x.QuestId) != 0; - } - - internal QuestId _003C_002Ector_003Eb__0_1(RowRef<Lumina.Excel.Sheets.Quest> x) - { - return _202C_202A_200E_206B_202E_202B_200F_200E_200B_206B_206F_200C_206A_206A_200D_200C_202C_206B_206A_200B_206B_200F_206B_200B_202A_206F_202D_200D_206D_200C_200E_200C_200F_206B_202A_202E_202C_206F_202E_206D_202E(x.RowId); - } - - internal bool _003C_002Ector_003Eb__0_2(QuestId x) - { - return _206E_200E_202A_200F_200F_206C_202E_206C_200E_202E_206B_206F_206E_206D_200F_202E_206E_206C_202E_202B_200C_202E_202D_206E_206A_206B_200E_200E_200D_202D_202E_200B_202C_206D_200C_206A_200B_206D_202C_206B_202E((ElementId)x) != 0; - } - - internal ushort _003C_002Ector_003Eb__0_3(RowRef<InstanceContent> x) - { - return (ushort)x.RowId; - } - - internal bool _003C_002Ector_003Eb__0_4(ushort x) - { - return x != 0; - } - - internal bool _003C_002Ector_003Eb__0_5(RowRef x) - { - int num = ((x.RowId == 0) ? 461820485 : 461820486); - while (true) - { - int num2 = num; - int num3 = 461820484; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004a; - case 1: - return false; - case 2: - return x.Is<Item>(); - } - continue; - IL_004a: - num = 461820486; - } - } - - internal Item? _003C_002Ector_003Eb__0_6(RowRef x) - { - return x.GetValueOrDefault<Item>(); - } - - internal bool _003C_002Ector_003Eb__0_7(Item? x) - { - return x.HasValue; - } - - internal bool _003C_002Ector_003Eb__0_8(RowRef<Item> x) - { - return x.RowId != 0; - } - - internal Item? _003C_002Ector_003Eb__0_9(RowRef<Item> x) - { - return x.ValueNullable; - } - - internal bool _003C_002Ector_003Eb__0_10(Item? x) - { - return x.HasValue; - } - - internal Item _003C_002Ector_003Eb__0_11(Item? x) - { - return x.Value; - } - - internal bool _003C_002Ector_003Eb__0_13(ItemReward x) - { - return x != null; - } - - static ushort _206E_200E_202A_200F_200F_206C_202E_206C_200E_202E_206B_206F_206E_206D_200F_202E_206E_206C_202E_202B_200C_202E_202D_206E_206A_206B_200E_200E_200D_202D_202E_200B_202C_206D_200C_206A_200B_206D_202C_206B_202E(ElementId P_0) - { - return P_0.Value; - } - - static QuestId _202C_202A_200E_206B_202E_202B_200F_200E_200B_206B_206F_200C_206A_206A_200D_200C_202C_206B_206A_200B_206B_200F_206B_200B_202A_206F_202D_200D_206D_200C_200E_200C_200F_206B_202A_202E_202C_206F_202E_206D_202E(uint P_0) - { - return Questionable.Model.Questing.QuestId.FromRowId(P_0); - } - } - public ElementId QuestId { get; } public string Name { get; } @@ -197,117 +68,40 @@ internal sealed class QuestInfo : IQuestInfo public bool IsSeasonalQuest { get; internal set; } - [MethodImpl(MethodImplOptions.NoInlining)] public QuestInfo(Lumina.Excel.Sheets.Quest quest, uint newGamePlusChapter, byte startingCity, bool isSeasonalEventQuest = false, DateTime? seasonalQuestExpiry = null) { - QuestId = _206F_206F_202C_200D_200C_206D_206A_200D_206A_202A_202C_200C_206E_200F_206D_206F_206C_200C_202E_206E_202D_202D_202A_200D_200E_200D_200E_200B_200C_202D_200F_200E_200C_202A_200B_202A_200F_206D_202C_202E_202E(quest.RowId); - ushort num = _200E_206E_206F_200C_202C_206A_200F_206B_206A_206B_206B_202D_206A_202B_200F_206D_206F_200D_206D_202A_206A_206D_202E_206D_202D_200C_202A_202D_200D_200D_202C_200C_202A_206D_206C_206B_206A_202B_206F_202A_202E(QuestId); - string text; - if ((uint)num <= 123u) + QuestId = Questionable.Model.Questing.QuestId.FromRowId(quest.RowId); + string value = QuestId.Value switch { - if ((uint)num <= 108u) - { - if (num != 85) - { - if (num != 108) - { - goto IL_01b2; - } - text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-710232599); - } - else - { - text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-112345390); - } - } - else if (num != 109) - { - if (num != 123) - { - goto IL_01b2; - } - text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1425643080); - } - else - { - text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-74132824); - } - } - else if ((uint)num <= 570u) - { - if (num != 124) - { - int num2 = 568; - int num3 = num; - switch (~(~num3 + num2)) - { - case 0: - break; - case 1: - goto IL_0142; - case 2: - goto IL_0152; - default: - goto IL_01b2; - } - text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-990183056); - } - else - { - text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1094754462); - } - } - else if (num != 673) - { - if (num != 674) - { - int num2 = 1432; - int num3 = num; - switch (~(~num3 + num2)) - { - case 0: - break; - case 1: - goto IL_0192; - case 2: - goto IL_01a2; - default: - goto IL_01b2; - } - text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-755758949); - } - else - { - text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(894839759); - } - } - else - { - text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1214228773); - } - goto IL_01bd; - IL_0192: - text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(842512297); - goto IL_01bd; - IL_0152: - text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1604495935); - goto IL_01bd; - IL_01bd: - string value = text; + 85 => " (Lancer)", + 108 => " (Marauder)", + 109 => " (Arcanist)", + 123 => " (Archer)", + 124 => " (Conjurer)", + 568 => " (Gladiator)", + 569 => " (Pugilist)", + 570 => " (Thaumaturge)", + 673 => " (Ul'dah)", + 674 => " (Limsa/Gridania)", + 1432 => " (Gridania)", + 1433 => " (Limsa)", + 1434 => " (Ul'dah)", + _ => "", + }; Name = $"{quest.Name}{value}"; Level = quest.ClassJobLevel[0]; IssuerDataId = quest.IssuerStart.RowId; IsRepeatable = quest.IsRepeatable; PreviousQuests = new List<PreviousQuestInfo> { - new PreviousQuestInfo(ReplaceOldQuestIds(_206F_206F_202C_200D_200C_206D_206A_200D_206A_202A_202C_200C_206E_200F_206D_206F_206C_200C_202E_206E_202D_202D_202A_200D_200E_200D_200E_200B_200C_202D_200F_200E_200C_202A_200B_202A_200F_206D_202C_202E_202E(quest.PreviousQuest[0].RowId)), quest.Unknown7), - new PreviousQuestInfo(ReplaceOldQuestIds(_206F_206F_202C_200D_200C_206D_206A_200D_206A_202A_202C_200C_206E_200F_206D_206F_206C_200C_202E_206E_202D_202D_202A_200D_200E_200D_200E_200B_200C_202D_200F_200E_200C_202A_200B_202A_200F_206D_202C_202E_202E(quest.PreviousQuest[1].RowId)), 0), - new PreviousQuestInfo(ReplaceOldQuestIds(_206F_206F_202C_200D_200C_206D_206A_200D_206A_202A_202C_200C_206E_200F_206D_206F_206C_200C_202E_206E_202D_202D_202A_200D_200E_200D_200E_200B_200C_202D_200F_200E_200C_202A_200B_202A_200F_206D_202C_202E_202E(quest.PreviousQuest[2].RowId)), 0) - }.Where((PreviousQuestInfo x) => _003C_003Ec._206E_200E_202A_200F_200F_206C_202E_206C_200E_202E_206B_206F_206E_206D_200F_202E_206E_206C_202E_202B_200C_202E_202D_206E_206A_206B_200E_200E_200D_202D_202E_200B_202C_206D_200C_206A_200B_206D_202C_206B_202E((ElementId)x.QuestId) != 0).ToImmutableList(); + new PreviousQuestInfo(ReplaceOldQuestIds(Questionable.Model.Questing.QuestId.FromRowId(quest.PreviousQuest[0].RowId)), quest.Unknown7), + new PreviousQuestInfo(ReplaceOldQuestIds(Questionable.Model.Questing.QuestId.FromRowId(quest.PreviousQuest[1].RowId)), 0), + new PreviousQuestInfo(ReplaceOldQuestIds(Questionable.Model.Questing.QuestId.FromRowId(quest.PreviousQuest[2].RowId)), 0) + }.Where((PreviousQuestInfo x) => x.QuestId.Value != 0).ToImmutableList(); PreviousQuestJoin = (EQuestJoin)quest.PreviousQuestJoin; QuestLocks = (from x in quest.QuestLock - select _003C_003Ec._202C_202A_200E_206B_202E_202B_200F_200E_200B_206B_206F_200C_206A_206A_200D_200C_202C_206B_206A_200B_206B_200F_206B_200B_202A_206F_202D_200D_206D_200C_200E_200C_200F_206B_202A_202E_202C_206F_202E_206D_202E(x.RowId) into x - where _003C_003Ec._206E_200E_202A_200F_200F_206C_202E_206C_200E_202E_206B_206F_206E_206D_200F_202E_206E_206C_202E_202B_200C_202E_202D_206E_206A_206B_200E_200E_200D_202D_202E_200B_202C_206D_200C_206A_200B_206D_202C_206B_202E((ElementId)x) != 0 + select Questionable.Model.Questing.QuestId.FromRowId(x.RowId) into x + where x.Value != 0 select x).ToImmutableList(); QuestLockJoin = (EQuestJoin)quest.QuestLockJoin; JournalGenre = quest.JournalGenre.ValueNullable?.RowId; @@ -331,30 +125,8 @@ internal sealed class QuestInfo : IQuestInfo NewGamePlusChapter = newGamePlusChapter; StartingCity = startingCity; MoogleDeliveryLevel = (byte)quest.DeliveryQuest.RowId; - IEnumerable<Item> first = (from x in quest.Reward.Where(delegate(RowRef x) - { - int num4 = ((x.RowId == 0) ? 461820485 : 461820486); - while (true) - { - int num5 = num4; - int num6 = 461820484; - int num7 = num5; - int num8 = num7 + num6; - int num9 = num7 & num6; - switch (num8 - (num9 + num9)) - { - case 0: - goto IL_004a; - case 1: - return false; - case 2: - return x.Is<Item>(); - } - continue; - IL_004a: - num4 = 461820486; - } - }) + IEnumerable<Item> first = (from x in quest.Reward + where x.RowId != 0 && x.Is<Item>() select x.GetValueOrDefault<Item>() into x where x.HasValue select x).Cast<Item>(); @@ -368,46 +140,15 @@ internal sealed class QuestInfo : IQuestInfo where x != null select x).Cast<ItemReward>().ToList(); Expansion = (EExpansionVersion)quest.Expansion.RowId; - return; - IL_0142: - text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(100444472); - goto IL_01bd; - IL_01b2: - text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1200342830); - goto IL_01bd; - IL_01a2: - text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1214228773); - goto IL_01bd; } private static QuestId ReplaceOldQuestIds(QuestId questId) { - int num = ((_200E_206E_206F_200C_202C_206A_200F_206B_206A_206B_206B_202D_206A_202B_200F_206D_206F_200D_206D_202A_206A_206D_202E_206D_202D_200C_202A_202D_200D_200D_202C_200C_202A_206D_206C_206B_206A_202B_206F_202A_202E((ElementId)questId) != 524) ? 1388511094 : 1388511093); - QuestId result = default(QuestId); - while (true) + if (questId.Value == 524) { - int num2 = num; - int num3 = 1388511095; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return result; - case 2: - result = _200E_206E_200D_200E_202D_202B_200C_202E_206C_206A_206E_206D_202B_206B_200B_202E_206D_200B_202E_202D_200E_202D_200B_202D_206D_202D_206C_200C_200B_200F_206A_202D_200C_206B_206C_200C_206C_202C_206B_206F_202E((ushort)4522); - num = 1388511095; - break; - case 1: - result = questId; - num = 1388511095; - break; - case 3: - num = 1388511093; - break; - } + return new QuestId(4522); } + return questId; } public void AddPreviousQuest(PreviousQuestInfo questId) @@ -415,42 +156,10 @@ internal sealed class QuestInfo : IQuestInfo ImmutableList<PreviousQuestInfo> previousQuests = PreviousQuests; int num = 0; PreviousQuestInfo[] array = new PreviousQuestInfo[1 + previousQuests.Count]; - using (ImmutableList<PreviousQuestInfo>.Enumerator enumerator = previousQuests.GetEnumerator()) + foreach (PreviousQuestInfo item in previousQuests) { - int num2 = 152689152; - while (true) - { - int num3 = num2; - int num4 = 152689155; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - num2 = 152689152; - break; - case 3: - num2 = (enumerator.MoveNext() ? 152689154 : 152689155); - break; - case 1: - { - PreviousQuestInfo current = enumerator.Current; - array[num] = current; - int num6 = num; - num4 = 1; - num5 = num6; - int num7 = num5 ^ num4; - int num8 = num5 & num4; - num = num7 + (num8 + num8); - num2 = 152689152; - break; - } - case 0: - goto end_IL_002a; - } - continue; - end_IL_002a: - break; - } + array[num] = item; + num++; } array[num] = questId; PreviousQuests = ImmutableList.Create(new ReadOnlySpan<PreviousQuestInfo>(array)); @@ -458,92 +167,22 @@ internal sealed class QuestInfo : IQuestInfo public void AddQuestLocks(EQuestJoin questJoin, params QuestId[] questId) { - int num = ((QuestLocks.Count <= 0) ? 132063164 : 132063166); - while (true) + if (QuestLocks.Count > 0 && QuestLockJoin != questJoin) { - int num2 = num; - int num3 = 132063167; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - throw _202E_206C_200E_206B_200D_202B_202A_206C_206E_206D_206E_206E_206E_202B_206B_200B_206B_202C_206A_206C_206F_200D_202E_200B_202E_202E_200C_200F_202A_202B_202A_200C_202D_200E_200D_206C_200F_200B_202E_206E_202E(); - case 1: - num = ((QuestLockJoin == questJoin) ? 132063164 : 132063167); - break; - case 2: - num = 132063166; - break; - case 3: - { - QuestLockJoin = questJoin; - ImmutableList<QuestId> questLocks = QuestLocks; - int num7 = 0; - QuestId[] array = new QuestId[questLocks.Count + questId.Length]; - using (ImmutableList<QuestId>.Enumerator enumerator = questLocks.GetEnumerator()) - { - num = -1685123962; - while (true) - { - int num8 = num; - num3 = -1685123961; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = (enumerator.MoveNext() ? (-1685123964) : (-1685123963)); - break; - case 3: - { - QuestId current = enumerator.Current; - array[num7] = current; - int num9 = num7; - num3 = 1; - num4 = num9; - num7 = (num4 | num3) + (num4 & num3); - num = -1685123962; - break; - } - case 0: - num = -1685123962; - break; - case 2: - goto end_IL_00c5; - } - continue; - end_IL_00c5: - break; - } - } - ReadOnlySpan<QuestId> readOnlySpan = new ReadOnlySpan<QuestId>(questId); - readOnlySpan.CopyTo(new Span<QuestId>(array).Slice(num7, readOnlySpan.Length)); - num7 += readOnlySpan.Length; - QuestLocks = ImmutableList.Create(new ReadOnlySpan<QuestId>(array)); - return; - } - } + throw new InvalidOperationException(); } - } - - static QuestId _206F_206F_202C_200D_200C_206D_206A_200D_206A_202A_202C_200C_206E_200F_206D_206F_206C_200C_202E_206E_202D_202D_202A_200D_200E_200D_200E_200B_200C_202D_200F_200E_200C_202A_200B_202A_200F_206D_202C_202E_202E(uint P_0) - { - return Questionable.Model.Questing.QuestId.FromRowId(P_0); - } - - static ushort _200E_206E_206F_200C_202C_206A_200F_206B_206A_206B_206B_202D_206A_202B_200F_206D_206F_200D_206D_202A_206A_206D_202E_206D_202D_200C_202A_202D_200D_200D_202C_200C_202A_206D_206C_206B_206A_202B_206F_202A_202E(ElementId P_0) - { - return P_0.Value; - } - - static QuestId _200E_206E_200D_200E_202D_202B_200C_202E_206C_206A_206E_206D_202B_206B_200B_202E_206D_200B_202E_202D_200E_202D_200B_202D_206D_202D_206C_200C_200B_200F_206A_202D_200C_206B_206C_200C_206C_202C_206B_206F_202E(ushort P_0) - { - return new QuestId(P_0); - } - - static InvalidOperationException _202E_206C_200E_206B_200D_202B_202A_206C_206E_206D_206E_206E_206E_202B_206B_200B_206B_202C_206A_206C_206F_200D_202E_200B_202E_202E_200C_200F_202A_202B_202A_200C_202D_200E_200D_206C_200F_200B_202E_206E_202E() - { - return new InvalidOperationException(); + QuestLockJoin = questJoin; + ImmutableList<QuestId> questLocks = QuestLocks; + int num = 0; + QuestId[] array = new QuestId[questLocks.Count + questId.Length]; + foreach (QuestId item in questLocks) + { + array[num] = item; + num++; + } + ReadOnlySpan<QuestId> readOnlySpan = new ReadOnlySpan<QuestId>(questId); + readOnlySpan.CopyTo(new Span<QuestId>(array).Slice(num, readOnlySpan.Length)); + num += readOnlySpan.Length; + QuestLocks = ImmutableList.Create(new ReadOnlySpan<QuestId>(array)); } } diff --git a/Questionable/Questionable.Model/QuestInfoUtils.cs b/Questionable/Questionable.Model/QuestInfoUtils.cs index 5a2f867..2190f47 100644 --- a/Questionable/Questionable.Model/QuestInfoUtils.cs +++ b/Questionable/Questionable.Model/QuestInfoUtils.cs @@ -12,214 +12,197 @@ internal static class QuestInfoUtils internal static IReadOnlyList<EClassJob> AsList(ClassJobCategory? optionalClassJobCategory) { - int num = (optionalClassJobCategory.HasValue ? (-1115834397) : (-1115834399)); - ClassJobCategory value = default(ClassJobCategory); - IReadOnlyList<EClassJob> readOnlyList = default(IReadOnlyList<EClassJob>); - while (true) + if (!optionalClassJobCategory.HasValue) { - int num2 = num; - int num3 = -1115834400; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1115834399; - break; - case 1: - return Enum.GetValues<EClassJob>(); - case 4: - return readOnlyList; - case 3: - value = optionalClassJobCategory.Value; - num = ((!CachedClassJobs.TryGetValue(value.RowId, out readOnlyList)) ? (-1115834398) : (-1115834396)); - break; - case 2: - readOnlyList = (from y in new Dictionary<EClassJob, bool> - { - { - EClassJob.Adventurer, - value.ADV - }, - { - EClassJob.Gladiator, - value.GLA - }, - { - EClassJob.Pugilist, - value.PGL - }, - { - EClassJob.Marauder, - value.MRD - }, - { - EClassJob.Lancer, - value.LNC - }, - { - EClassJob.Archer, - value.ARC - }, - { - EClassJob.Conjurer, - value.CNJ - }, - { - EClassJob.Thaumaturge, - value.THM - }, - { - EClassJob.Carpenter, - value.CRP - }, - { - EClassJob.Blacksmith, - value.BSM - }, - { - EClassJob.Armorer, - value.ARM - }, - { - EClassJob.Goldsmith, - value.GSM - }, - { - EClassJob.Leatherworker, - value.LTW - }, - { - EClassJob.Weaver, - value.WVR - }, - { - EClassJob.Alchemist, - value.ALC - }, - { - EClassJob.Culinarian, - value.CUL - }, - { - EClassJob.Miner, - value.MIN - }, - { - EClassJob.Botanist, - value.BTN - }, - { - EClassJob.Fisher, - value.FSH - }, - { - EClassJob.Paladin, - value.PLD - }, - { - EClassJob.Monk, - value.MNK - }, - { - EClassJob.Warrior, - value.WAR - }, - { - EClassJob.Dragoon, - value.DRG - }, - { - EClassJob.Bard, - value.BRD - }, - { - EClassJob.WhiteMage, - value.WHM - }, - { - EClassJob.BlackMage, - value.BLM - }, - { - EClassJob.Arcanist, - value.ACN - }, - { - EClassJob.Summoner, - value.SMN - }, - { - EClassJob.Scholar, - value.SCH - }, - { - EClassJob.Rogue, - value.ROG - }, - { - EClassJob.Ninja, - value.NIN - }, - { - EClassJob.Machinist, - value.MCH - }, - { - EClassJob.DarkKnight, - value.DRK - }, - { - EClassJob.Astrologian, - value.AST - }, - { - EClassJob.Samurai, - value.SAM - }, - { - EClassJob.RedMage, - value.RDM - }, - { - EClassJob.BlueMage, - value.BLU - }, - { - EClassJob.Gunbreaker, - value.GNB - }, - { - EClassJob.Dancer, - value.DNC - }, - { - EClassJob.Reaper, - value.RPR - }, - { - EClassJob.Sage, - value.SGE - }, - { - EClassJob.Viper, - value.VPR - }, - { - EClassJob.Pictomancer, - value.PCT - }, - { - EClassJob.Beastmaster, - value.Unknown0 - } - } - where y.Value - select y.Key).ToList().AsReadOnly(); - CachedClassJobs[value.RowId] = readOnlyList; - return readOnlyList; - } + return Enum.GetValues<EClassJob>(); } + ClassJobCategory value = optionalClassJobCategory.Value; + if (CachedClassJobs.TryGetValue(value.RowId, out IReadOnlyList<EClassJob> value2)) + { + return value2; + } + value2 = (from y in new Dictionary<EClassJob, bool> + { + { + EClassJob.Adventurer, + value.ADV + }, + { + EClassJob.Gladiator, + value.GLA + }, + { + EClassJob.Pugilist, + value.PGL + }, + { + EClassJob.Marauder, + value.MRD + }, + { + EClassJob.Lancer, + value.LNC + }, + { + EClassJob.Archer, + value.ARC + }, + { + EClassJob.Conjurer, + value.CNJ + }, + { + EClassJob.Thaumaturge, + value.THM + }, + { + EClassJob.Carpenter, + value.CRP + }, + { + EClassJob.Blacksmith, + value.BSM + }, + { + EClassJob.Armorer, + value.ARM + }, + { + EClassJob.Goldsmith, + value.GSM + }, + { + EClassJob.Leatherworker, + value.LTW + }, + { + EClassJob.Weaver, + value.WVR + }, + { + EClassJob.Alchemist, + value.ALC + }, + { + EClassJob.Culinarian, + value.CUL + }, + { + EClassJob.Miner, + value.MIN + }, + { + EClassJob.Botanist, + value.BTN + }, + { + EClassJob.Fisher, + value.FSH + }, + { + EClassJob.Paladin, + value.PLD + }, + { + EClassJob.Monk, + value.MNK + }, + { + EClassJob.Warrior, + value.WAR + }, + { + EClassJob.Dragoon, + value.DRG + }, + { + EClassJob.Bard, + value.BRD + }, + { + EClassJob.WhiteMage, + value.WHM + }, + { + EClassJob.BlackMage, + value.BLM + }, + { + EClassJob.Arcanist, + value.ACN + }, + { + EClassJob.Summoner, + value.SMN + }, + { + EClassJob.Scholar, + value.SCH + }, + { + EClassJob.Rogue, + value.ROG + }, + { + EClassJob.Ninja, + value.NIN + }, + { + EClassJob.Machinist, + value.MCH + }, + { + EClassJob.DarkKnight, + value.DRK + }, + { + EClassJob.Astrologian, + value.AST + }, + { + EClassJob.Samurai, + value.SAM + }, + { + EClassJob.RedMage, + value.RDM + }, + { + EClassJob.BlueMage, + value.BLU + }, + { + EClassJob.Gunbreaker, + value.GNB + }, + { + EClassJob.Dancer, + value.DNC + }, + { + EClassJob.Reaper, + value.RPR + }, + { + EClassJob.Sage, + value.SGE + }, + { + EClassJob.Viper, + value.VPR + }, + { + EClassJob.Pictomancer, + value.PCT + }, + { + EClassJob.Beastmaster, + value.Unknown0 + } + } + where y.Value + select y.Key).ToList().AsReadOnly(); + CachedClassJobs[value.RowId] = value2; + return value2; } } diff --git a/Questionable/Questionable.Model/QuestProgressInfo.cs b/Questionable/Questionable.Model/QuestProgressInfo.cs index 7f8baee..78350f3 100644 --- a/Questionable/Questionable.Model/QuestProgressInfo.cs +++ b/Questionable/Questionable.Model/QuestProgressInfo.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Runtime.CompilerServices; using FFXIVClientStructs.FFXIV.Application.Network.WorkDefinitions; using LLib.GameData; using Questionable.Model.Questing; @@ -24,55 +23,29 @@ internal sealed class QuestProgressInfo public EClassJob ClassJob { get; } - [MethodImpl(MethodImplOptions.NoInlining)] public QuestProgressInfo(QuestWork questWork) { - Id = _202C_200E_202A_200D_202D_206A_200D_200F_200D_206F_202E_206D_202A_206B_200C_206D_206B_202E_202C_206A_206A_200F_200E_200C_206F_202D_200F_206F_206D_202E_206B_200F_200E_200D_206C_206B_200E_200B_206F_200E_202E(questWork.QuestId); + Id = new QuestId(questWork.QuestId); Sequence = questWork.Sequence; Flags = questWork.Flags; Variables = questWork.Variables.ToArray().ToList(); IsHidden = questWork.IsHidden; ClassJob = (EClassJob)questWork.AcceptClassJob; Span<byte> variables = questWork.Variables; - string text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-87324410); - int num = 0; - while (num < variables.Length) + string text = ""; + for (int i = 0; i < variables.Length; i++) { - text = _206C_200C_206D_200C_206F_202A_206F_206F_206E_200F_202B_202C_202E_206D_206E_200B_202A_200E_206F_206C_200D_206E_200F_202E_206A_202A_206F_206E_200B_202D_206E_202A_202E_206A_206C_200F_200F_200E_206E_206F_202E(text, variables[num].ToString(), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-818915859)); - if (num % 2 == 1) + text = text + variables[i] + " "; + if (i % 2 == 1) { - text = _202E_206B_200F_200B_200B_206B_200E_200C_202D_206A_200D_200B_206F_200D_206C_200E_206E_206B_202D_200C_200C_206D_202D_202A_206F_200F_206B_200E_202B_200C_206B_202D_206E_206D_202B_206C_200B_206B_206C_206C_202E(text, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(48117010)); + text += " "; } - int num2 = num; - int num3 = 1; - int num4 = num2; - num = (num4 | num3) + (num4 & num3); } - _asString = _202E_206B_200F_200B_200B_206B_200E_200C_202D_206A_200D_200B_206F_200D_206C_200E_206E_206B_202D_200C_200C_206D_202D_202A_206F_200F_206B_200E_202B_200C_206B_202D_206E_206D_202B_206C_200B_206B_206C_206C_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(751657040), _200F_206D_202D_200B_202B_202D_206E_200D_200C_200B_200D_202A_206E_206F_202D_206F_202E_202B_206B_200F_202E_202D_200C_200D_200D_206F_200C_202A_202B_206A_202B_206E_206A_200B_206C_200D_206F_206E_202D_200D_202E(text)); + _asString = "QW: " + text.Trim(); } public override string ToString() { return _asString; } - - static QuestId _202C_200E_202A_200D_202D_206A_200D_200F_200D_206F_202E_206D_202A_206B_200C_206D_206B_202E_202C_206A_206A_200F_200E_200C_206F_202D_200F_206F_206D_202E_206B_200F_200E_200D_206C_206B_200E_200B_206F_200E_202E(ushort P_0) - { - return new QuestId(P_0); - } - - static string _206C_200C_206D_200C_206F_202A_206F_206F_206E_200F_202B_202C_202E_206D_206E_200B_202A_200E_206F_206C_200D_206E_200F_202E_206A_202A_206F_206E_200B_202D_206E_202A_202E_206A_206C_200F_200F_200E_206E_206F_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static string _202E_206B_200F_200B_200B_206B_200E_200C_202D_206A_200D_200B_206F_200D_206C_200E_206E_206B_202D_200C_200C_206D_202D_202A_206F_200F_206B_200E_202B_200C_206B_202D_206E_206D_202B_206C_200B_206B_206C_206C_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static string _200F_206D_202D_200B_202B_202D_206E_200D_200C_200B_200D_202A_206E_206F_202D_206F_202E_202B_206B_200F_202E_202D_200C_200D_200D_206F_200C_202A_202B_206A_202B_206E_206A_200B_206C_200D_206F_206E_202D_200D_202E(string P_0) - { - return P_0.Trim(); - } } diff --git a/Questionable/Questionable.Model/StringOrRegex.cs b/Questionable/Questionable.Model/StringOrRegex.cs index 1bfb284..1d5f9d7 100644 --- a/Questionable/Questionable.Model/StringOrRegex.cs +++ b/Questionable/Questionable.Model/StringOrRegex.cs @@ -1,5 +1,4 @@ using System; -using System.Runtime.CompilerServices; using System.Text.RegularExpressions; using Questionable.Functions; @@ -11,95 +10,40 @@ internal sealed class StringOrRegex private readonly string? _stringValue; - [MethodImpl(MethodImplOptions.NoInlining)] public StringOrRegex(Regex? regex) { - _206C_206E_200E_202D_200C_202E_206B_206B_202B_200D_206C_200D_206B_200C_200D_202E_206E_202D_202A_202D_200C_200F_206E_206B_200D_206B_202A_206B_200F_200C_202B_200E_200E_200C_200E_202B_202C_200F_206E_206D_202E((object?)regex, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1417753636)); + ArgumentNullException.ThrowIfNull(regex, "regex"); _regex = regex; _stringValue = null; } - [MethodImpl(MethodImplOptions.NoInlining)] public StringOrRegex(string? str) { - _206C_206E_200E_202D_200C_202E_206B_206B_202B_200D_206C_200D_206B_200C_200D_202E_206E_202D_202A_202D_200C_200F_206E_206B_200D_206B_202A_206B_200F_200C_202B_200E_200E_200C_200E_202B_202C_200F_206E_206D_202E((object?)str, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1663071315)); + ArgumentNullException.ThrowIfNull(str, "str"); _regex = null; _stringValue = str; } public bool IsMatch(string other) { - int num = ((_regex == null) ? (-734326704) : (-734326703)); - while (true) + if (_regex != null) { - int num2 = num; - int num3 = -734326704; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return GameFunctions.GameStringEquals(_stringValue, other); - case 1: - return _200F_206C_206D_200E_202C_200E_206B_206A_202A_206C_200E_206A_200F_206A_206E_206B_206A_202A_200B_202B_202B_206E_206C_200B_206D_202D_200E_206E_200D_200D_206C_206D_200B_200E_202A_200E_206D_206B_206A_206F_202E(_regex, other); - case 2: - goto IL_0062; - } - continue; - IL_0062: - num = -734326703; + return _regex.IsMatch(other); } + return GameFunctions.GameStringEquals(_stringValue, other); } public string? GetString() { - int num = ((_stringValue != null) ? 1027325378 : 1027325379); - while (true) + if (_stringValue == null) { - int num2 = num; - int num3 = 1027325378; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0048; - case 0: - return _stringValue; - case 1: - throw _200E_200C_206E_202D_200B_202E_202D_202D_200E_200C_202A_206E_200E_200D_200F_202D_202A_206C_202C_202D_206F_202A_200C_206E_200D_202C_206E_200D_206C_206F_200B_206B_200F_206C_202A_206F_202E_202A_200E_202B_202E(); - } - continue; - IL_0048: - num = 1027325379; + throw new InvalidOperationException(); } + return _stringValue; } public override string? ToString() { - Regex? regex = _regex; - return ((regex != null) ? _202B_200C_206B_206F_206D_202B_206A_206D_206F_206A_200D_202A_200F_202C_202D_200E_200E_200B_202E_200C_200B_202A_202A_206F_202A_200E_200B_206F_206F_202B_206C_200F_200C_206C_202E_206F_206B_200E_206E_202C_202E((object?)regex) : null) ?? _stringValue; - } - - static void _206C_206E_200E_202D_200C_202E_206B_206B_202B_200D_206C_200D_206B_200C_200D_202E_206E_202D_202A_202D_200C_200F_206E_206B_200D_206B_202A_206B_200F_200C_202B_200E_200E_200C_200E_202B_202C_200F_206E_206D_202E(object? P_0, string? P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static bool _200F_206C_206D_200E_202C_200E_206B_206A_202A_206C_200E_206A_200F_206A_206E_206B_206A_202A_200B_202B_202B_206E_206C_200B_206D_202D_200E_206E_200D_200D_206C_206D_200B_200E_202A_200E_206D_206B_206A_206F_202E(Regex? P_0, string? P_1) - { - return P_0.IsMatch(P_1); - } - - static InvalidOperationException? _200E_200C_206E_202D_200B_202E_202D_202D_200E_200C_202A_206E_200E_200D_200F_202D_202A_206C_202C_202D_206F_202A_200C_206E_200D_202C_206E_200D_206C_206F_200B_206B_200F_206C_202A_206F_202E_202A_200E_202B_202E() - { - return new InvalidOperationException(); - } - - static string? _202B_200C_206B_206F_206D_202B_206A_206D_206F_206A_200D_202A_200F_202C_202D_200E_200E_200B_202E_200C_200B_202A_202A_206F_202A_200E_200B_206F_206F_202B_206C_200F_200C_206C_202E_206F_206B_200E_206E_202C_202E(object? P_0) - { - return P_0.ToString(); + return _regex?.ToString() ?? _stringValue; } } diff --git a/Questionable/Questionable.Model/TripleTriadCardReward.cs b/Questionable/Questionable.Model/TripleTriadCardReward.cs index 69aa40d..4f6b44c 100644 --- a/Questionable/Questionable.Model/TripleTriadCardReward.cs +++ b/Questionable/Questionable.Model/TripleTriadCardReward.cs @@ -1,23 +1,10 @@ -using System; -using System.Collections.Generic; using System.Runtime.CompilerServices; -using System.Text; using FFXIVClientStructs.FFXIV.Client.Game.UI; namespace Questionable.Model; public sealed record TripleTriadCardReward : ItemReward { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _206F_200E_200F_200D_200F_206B_206A_206E_200E_206D_202E_200D_200C_200E_206C_206E_200D_202E_200F_206F_202A_202D_206F_200E_206E_206E_206A_206D_206E_202E_202A_206D_200C_202D_206A_202E_206B_200B_200E_202B_202E(typeof(TripleTriadCardReward).TypeHandle); - } - } - public ushort TripleTriadCardId { get; init; } public override EItemRewardType Type => EItemRewardType.TripleTriadCard; @@ -33,131 +20,10 @@ public sealed record TripleTriadCardReward : ItemReward return UIState.Instance()->IsTripleTriadCardUnlocked(TripleTriadCardId); } - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206D_206A_202B_202E_206F_206E_206B_202A_202D_202B_206C_202A_202C_200B_202C_202E_202D_206C_202A_206E_202A_206E_200E_202A_200F_202A_200B_206C_206E_206A_202D_206F_206D_202B_206C_206D_206C_202E_206D_202C_202E(); - _202B_206C_200F_202E_202C_206E_206A_202D_206F_202D_200B_200E_206E_200E_206F_206C_202B_206A_200C_200B_200D_202D_202E_202D_200F_200C_200C_202C_206A_200C_202D_206D_200D_200C_200C_200C_206D_206C_202B_206E_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-254844244)); - _202B_206C_200F_202E_202C_206E_206A_202D_206F_202D_200B_200E_206E_200E_206F_206C_202B_206A_200C_200B_200D_202D_202E_202D_200F_200C_200C_202C_206A_200C_202D_206D_200D_200C_200C_200C_206D_206C_202B_206E_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? 1278318485 : 1278318486); - while (true) - { - int num2 = num; - int num3 = 1278318487; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - _202D_206D_202B_200D_200E_206D_202D_206F_200D_202B_206D_202C_200D_206B_202E_202B_200C_206C_202C_200E_206A_206B_200C_202D_200C_200D_202C_206F_202B_202A_206B_206F_202A_206D_200E_206B_206A_200B_200F_200F_202E(stringBuilder, '}'); - return _206C_200C_206B_206C_206B_206C_202E_200E_200C_200C_206E_200E_202A_200D_206C_202D_206C_206D_200E_202C_206A_206E_200B_202E_200B_202C_206F_202D_202B_200C_200C_200D_202D_206F_202D_206F_202E_202A_202A_206F_202E((object)stringBuilder); - case 1: - _202D_206D_202B_200D_200E_206D_202D_206F_200D_202B_206D_202C_200D_206B_202E_202B_200C_206C_202C_200E_206A_206B_200C_202D_200C_200D_202C_206F_202B_202A_206B_206F_202A_206D_200E_206B_206A_200B_200F_200F_202E(stringBuilder, ' '); - num = 1278318485; - break; - case 0: - num = 1278318486; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? 641722232 : 641722235); - while (true) - { - int num2 = num; - int num3 = 641722233; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 641722235; - break; - case 1: - _202B_206C_200F_202E_202C_206E_206A_202D_206F_202D_200B_200E_206E_200E_206F_206C_202B_206A_200C_200B_200D_202D_202E_202D_200F_200C_200C_202C_206A_200C_202D_206D_200D_200C_200C_200C_206D_206C_202B_206E_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1636532804)); - _202B_206C_200F_202E_202C_206E_206A_202D_206F_202D_200B_200E_206E_200E_206F_206C_202B_206A_200C_200B_200D_202D_202E_202D_200F_200C_200C_202C_206A_200C_202D_206D_200D_200C_200C_200C_206D_206C_202B_206E_202E(builder, TripleTriadCardId.ToString()); - return true; - case 2: - _202B_206C_200F_202E_202C_206E_206A_202D_206F_202D_200B_200E_206E_200E_206F_206C_202B_206A_200C_200B_200D_202D_202E_202D_200F_200C_200C_202C_206A_200C_202D_206D_200D_200C_200C_200C_206D_206C_202B_206E_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1403263077)); - num = 641722232; - break; - } - } - } - - [CompilerGenerated] - public bool Equals(TripleTriadCardReward? other) - { - int num = (((object)this == other) ? (-2116318036) : (-2116318034)); - while (true) - { - int num2 = num; - int num3 = -2116318033; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return true; - case 2: - return EqualityComparer<ushort>.Default.Equals(TripleTriadCardId, other.TripleTriadCardId); - case 0: - return false; - case 1: - num = ((!base.Equals(other)) ? (-2116318033) : (-2116318035)); - break; - case 4: - num = -2116318034; - break; - } - } - } - - bool IEquatable<TripleTriadCardReward>.Equals(TripleTriadCardReward? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - [CompilerGenerated] public void Deconstruct(out ItemRewardDetails Item, out ushort TripleTriadCardId) { Item = base.Item; TripleTriadCardId = this.TripleTriadCardId; } - - static Type _206F_200E_200F_200D_200F_206B_206A_206E_200E_206D_202E_200D_200C_200E_206C_206E_200D_202E_200F_206F_202A_202D_206F_200E_206E_206E_206A_206D_206E_202E_202A_206D_200C_202D_206A_202E_206B_200B_200E_202B_202E(RuntimeTypeHandle P_0) - { - return System.Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206D_206A_202B_202E_206F_206E_206B_202A_202D_202B_206C_202A_202C_200B_202C_202E_202D_206C_202A_206E_202A_206E_200E_202A_200F_202A_200B_206C_206E_206A_202D_206F_206D_202B_206C_206D_206C_202E_206D_202C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202B_206C_200F_202E_202C_206E_206A_202D_206F_202D_200B_200E_206E_200E_206F_206C_202B_206A_200C_200B_200D_202D_202E_202D_200F_200C_200C_202C_206A_200C_202D_206D_200D_200C_200C_200C_206D_206C_202B_206E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202D_206D_202B_200D_200E_206D_202D_206F_200D_202B_206D_202C_200D_206B_202E_202B_200C_206C_202C_200E_206A_206B_200C_202D_200C_200D_202C_206F_202B_202A_206B_206F_202A_206D_200E_206B_206A_200B_200F_200F_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206C_200C_206B_206C_206B_206C_202E_200E_200C_200C_206E_200E_202A_200D_206C_202D_206C_206D_200E_202C_206A_206E_200B_202E_200B_202C_206F_202D_202B_200C_200C_200D_202D_206F_202D_206F_202E_202A_202A_206F_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _206E_202E_206A_206C_200E_206E_202B_202D_202C_200C_202C_206B_202C_202E_206A_206D_200F_206A_206C_202E_206C_202D_200B_206D_202A_200E_200C_200B_206B_202D_206F_206C_202A_206C_200C_200F_202A_200D_200D_206D_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } } diff --git a/Questionable/Questionable.Model/UnlockLinkReward.cs b/Questionable/Questionable.Model/UnlockLinkReward.cs index c8e723b..845253b 100644 --- a/Questionable/Questionable.Model/UnlockLinkReward.cs +++ b/Questionable/Questionable.Model/UnlockLinkReward.cs @@ -1,23 +1,10 @@ -using System; -using System.Collections.Generic; using System.Runtime.CompilerServices; -using System.Text; using FFXIVClientStructs.FFXIV.Client.Game.UI; namespace Questionable.Model; public sealed record UnlockLinkReward : ItemReward { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _200F_206E_200F_202E_206C_206E_202A_202E_206F_202E_206D_206E_200E_206A_200B_202C_202A_202B_200E_206C_206B_206F_202A_206D_206A_206D_202B_202B_206C_206A_202D_202E_202A_206C_206B_206C_202D_200F_206B_200F_202E(typeof(UnlockLinkReward).TypeHandle); - } - } - public uint UnlockLinkId { get; init; } public override EItemRewardType Type => EItemRewardType.UnlockLink; @@ -33,129 +20,10 @@ public sealed record UnlockLinkReward : ItemReward return UIState.Instance()->IsUnlockLinkUnlocked(UnlockLinkId); } - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206A_206F_206B_206B_206F_200F_206F_200D_206E_202C_200E_200B_202E_202E_206B_200F_206A_200F_200C_202C_206F_202C_206B_206F_200E_200B_202E_206F_200F_206E_206B_200D_206E_206F_202B_202A_202A_206D_202B_202E(); - _202C_206E_200F_206C_200B_202E_206E_200B_206D_200E_206D_202C_206C_202B_200B_200C_206E_202D_200E_202B_202B_206C_200F_200E_202B_206E_206A_202B_202A_202A_200C_200E_206B_206C_206D_206C_206C_202A_200D_206C_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1427150929)); - _202C_206E_200F_206C_200B_202E_206E_200B_206D_200E_206D_202C_206C_202B_200B_200C_206E_202D_200E_202B_202B_206C_200F_200E_202B_206E_206A_202B_202A_202A_200C_200E_206B_206C_206D_206C_206C_202A_200D_206C_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125)); - int num = ((!PrintMembers(stringBuilder)) ? 172812570 : 172812569); - while (true) - { - int num2 = num; - int num3 = 172812571; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 172812569; - break; - case 1: - _202C_202E_202B_206A_200B_206D_206E_202C_206B_206F_202B_206B_206A_202C_200B_202C_206B_206B_206F_206D_202D_202E_202C_206B_202C_206A_202A_206A_200F_206A_202A_200F_202B_202D_206B_200E_202D_202C_206E_206D_202E(stringBuilder, '}'); - return _202D_200F_202D_202D_206D_202C_206F_206E_206B_202B_202D_202C_200B_202A_200C_202D_202D_200B_202E_206E_206B_202B_200D_200C_202A_200C_206C_202B_200D_206C_202B_206D_202A_206B_200C_206C_206F_202B_206C_202D_202E((object)stringBuilder); - case 2: - _202C_202E_202B_206A_200B_206D_206E_202C_206B_206F_202B_206B_206A_202C_200B_202C_206B_206B_206F_206D_202D_202E_202C_206B_202C_206A_202A_206A_200F_206A_202A_200F_202B_202D_206B_200E_202D_202C_206E_206D_202E(stringBuilder, ' '); - num = 172812570; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? (-1240382848) : (-1240382847)); - while (true) - { - int num2 = num; - int num3 = -1240382848; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1240382847; - break; - case 0: - _202C_206E_200F_206C_200B_202E_206E_200B_206D_200E_206D_202C_206C_202B_200B_200C_206E_202D_200E_202B_202B_206C_200F_200E_202B_206E_206A_202B_202A_202A_200C_200E_206B_206C_206D_206C_206C_202A_200D_206C_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1878082130)); - _202C_206E_200F_206C_200B_202E_206E_200B_206D_200E_206D_202C_206C_202B_200B_200C_206E_202D_200E_202B_202B_206C_200F_200E_202B_206E_206A_202B_202A_202A_200C_200E_206B_206C_206D_206C_206C_202A_200D_206C_202E(builder, UnlockLinkId.ToString()); - return true; - case 1: - _202C_206E_200F_206C_200B_202E_206E_200B_206D_200E_206D_202C_206C_202B_200B_200C_206E_202D_200E_202B_202B_206C_200F_200E_202B_206E_206A_202B_202A_202A_200C_200E_206B_206C_206D_206C_206C_202A_200D_206C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1095822044)); - num = -1240382848; - break; - } - } - } - - [CompilerGenerated] - public bool Equals(UnlockLinkReward? other) - { - int num = (((object)this == other) ? (-563966986) : (-563966989)); - while (true) - { - int num2 = num; - int num3 = -563966990; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - return true; - case 1: - num = ((!base.Equals(other)) ? (-563966992) : (-563966991)); - break; - case 2: - return false; - case 0: - num = -563966989; - break; - case 3: - return EqualityComparer<uint>.Default.Equals(UnlockLinkId, other.UnlockLinkId); - } - } - } - - bool IEquatable<UnlockLinkReward>.Equals(UnlockLinkReward? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - [CompilerGenerated] public void Deconstruct(out ItemRewardDetails Item, out uint UnlockLinkId) { Item = base.Item; UnlockLinkId = this.UnlockLinkId; } - - static Type _200F_206E_200F_202E_206C_206E_202A_202E_206F_202E_206D_206E_200E_206A_200B_202C_202A_202B_200E_206C_206B_206F_202A_206D_206A_206D_202B_202B_206C_206A_202D_202E_202A_206C_206B_206C_202D_200F_206B_200F_202E(RuntimeTypeHandle P_0) - { - return System.Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206A_206F_206B_206B_206F_200F_206F_200D_206E_202C_200E_200B_202E_202E_206B_200F_206A_200F_200C_202C_206F_202C_206B_206F_200E_200B_202E_206F_200F_206E_206B_200D_206E_206F_202B_202A_202A_206D_202B_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202C_206E_200F_206C_200B_202E_206E_200B_206D_200E_206D_202C_206C_202B_200B_200C_206E_202D_200E_202B_202B_206C_200F_200E_202B_206E_206A_202B_202A_202A_200C_200E_206B_206C_206D_206C_206C_202A_200D_206C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202C_202E_202B_206A_200B_206D_206E_202C_206B_206F_202B_206B_206A_202C_200B_202C_206B_206B_206F_206D_202D_202E_202C_206B_202C_206A_202A_206A_200F_206A_202A_200F_202B_202D_206B_200E_202D_202C_206E_206D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202D_200F_202D_202D_206D_202C_206F_206E_206B_202B_202D_202C_200B_202A_200C_202D_202D_200B_202E_206E_206B_202B_200D_200C_202A_200C_206C_202B_200D_206C_202B_206D_202A_206B_200C_206C_206F_202B_206C_202D_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _202A_200F_206A_200C_200B_206E_202C_202E_202D_202A_202E_206B_206A_206A_200E_202B_206E_202A_206A_206E_202A_206E_200E_206D_206B_202E_206B_202B_202A_206A_206E_206F_206A_206C_206B_202C_200C_200D_206E_202E_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } } diff --git a/Questionable/Questionable.Navigation/QuestionablePlayerContext.cs b/Questionable/Questionable.Navigation/QuestionablePlayerContext.cs index 54f01bc..3e37df8 100644 --- a/Questionable/Questionable.Navigation/QuestionablePlayerContext.cs +++ b/Questionable/Questionable.Navigation/QuestionablePlayerContext.cs @@ -11,26 +11,11 @@ internal sealed class QuestionablePlayerContext(Configuration configuration, Que { get { - QuestId questId = questFunctions.GetMainScenarioQuest().Item1.CurrentQuest as QuestId; - int num = (((object)questId != null) ? (-685921250) : (-685921251)); - while (true) + if (!(questFunctions.GetMainScenarioQuest().Item1.CurrentQuest is QuestId questId)) { - int num2 = num; - int num3 = -685921249; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_005f; - case 1: - return _200C_206B_206B_206B_202C_200D_206B_202E_200C_206D_206A_200E_202B_202A_200D_200F_206B_202C_206C_202D_202B_202C_206E_200D_202B_200B_206F_206B_206D_206A_202A_200D_206F_202C_206F_200E_202B_206F_202C_202A_202E((ElementId)questId); - case 2: - return null; - } - continue; - IL_005f: - num = -685921251; + return null; } + return questId.Value; } } @@ -45,47 +30,18 @@ internal sealed class QuestionablePlayerContext(Configuration configuration, Que return aetheryteFunctions.IsAetheryteUnlocked(aetheryte); } - bool IPlayerContext.IsAetheryteUnlocked(EAetheryteLocation aetheryte) - { - //ILSpy generated this explicit interface implementation from .override directive in IsAetheryteUnlocked - return this.IsAetheryteUnlocked(aetheryte); - } - public bool IsFlyingUnlocked(uint territoryId) { return gameFunctions.IsFlyingUnlockedPersistent(territoryId); } - bool IPlayerContext.IsFlyingUnlocked(uint territoryId) - { - //ILSpy generated this explicit interface implementation from .override directive in IsFlyingUnlocked - return this.IsFlyingUnlocked(territoryId); - } - public bool IsTeleportUnlocked() { return aetheryteFunctions.IsTeleportUnlocked(); } - bool IPlayerContext.IsTeleportUnlocked() - { - //ILSpy generated this explicit interface implementation from .override directive in IsTeleportUnlocked - return this.IsTeleportUnlocked(); - } - public bool IsReturnAvailable() { return aetheryteFunctions.IsReturnAvailable(); } - - bool IPlayerContext.IsReturnAvailable() - { - //ILSpy generated this explicit interface implementation from .override directive in IsReturnAvailable - return this.IsReturnAvailable(); - } - - static ushort _200C_206B_206B_206B_202C_200D_206B_202E_200C_206D_206A_200E_202B_202A_200D_200F_206B_202C_206C_202D_202B_202C_206E_200D_202B_200B_206F_206B_206D_206A_202A_200D_206F_202C_206F_200E_202B_206F_202C_202A_202E(ElementId P_0) - { - return P_0.Value; - } } diff --git a/Questionable/Questionable.Navigation/SmartNavReRouteService.cs b/Questionable/Questionable.Navigation/SmartNavReRouteService.cs index 96fed7b..64fbd94 100644 --- a/Questionable/Questionable.Navigation/SmartNavReRouteService.cs +++ b/Questionable/Questionable.Navigation/SmartNavReRouteService.cs @@ -1,9 +1,6 @@ -using System; -using System.Collections; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps; using Questionable.Controller.Steps.Common; @@ -17,195 +14,57 @@ internal sealed class SmartNavReRouteService(ReRoutePolicy reRoutePolicy, SmartN { public void SetDestination(uint territoryId, Vector3 position) { - _202A_200D_200E_206F_202C_206E_200D_202E_202C_200D_200C_206C_202A_200C_206B_206A_202A_202E_206A_206F_200D_206E_206B_200C_202D_206A_206C_206D_206A_202E_206A_202B_200D_202E_206D_206E_202A_202E_202C_206E_202E(reRoutePolicy, territoryId, position); + reRoutePolicy.SetDestination(territoryId, position); } public void ClearDestination() { - _206E_200E_202B_200E_200B_200B_200D_200C_202C_202B_202A_200D_202B_206A_200D_206E_206F_200D_206D_206F_200C_202B_206E_206E_206E_206F_206F_206D_206A_202B_202A_202B_200C_202D_202E_202D_206F_200C_206E_206B_202E(reRoutePolicy); + reRoutePolicy.ClearDestination(); } - [MethodImpl(MethodImplOptions.NoInlining)] public bool HandleMovementFailure(TaskQueue taskQueue) { - int num = (configuration.Navigation.ReRouteOnFailure ? 1710893574 : 1710893572); - ReRouteDecision reRouteDecision = default(ReRouteDecision); - List<ITask> list = default(List<ITask>); - string routeTargetNodeId = default(string); - MoveTask moveTask = default(MoveTask); - string text = default(string); - string text2 = default(string); - while (true) + if (!configuration.Navigation.ReRouteOnFailure) { - int num2 = num; - int num3 = 1710893573; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return false; + } + string failedTargetNodeId = null; + string failedApproachNodeId = null; + if (taskQueue.CurrentTaskExecutor?.CurrentTask is MoveTask moveTask) + { + string routeTargetNodeId = moveTask.RouteTargetNodeId; + if (routeTargetNodeId != null) { - case 4: - { - if (!(reRouteDecision is ReRouteDecision.Replan replan)) - { - num = 1710893570; - break; - } - taskQueue.Reset(); - IEnumerator<ITask> enumerator2 = taskMapper.MapInstructions(_206F_206E_200E_202C_202E_202C_202A_202B_202D_200E_200D_202B_200C_200D_200F_206B_200D_206B_202A_202C_206D_202E_202B_206B_200E_200E_206C_206F_200F_200D_202A_200E_206F_206E_202A_200E_206F_206D_206D_200F_202E(replan)).GetEnumerator(); - try - { - num = 82705300; - while (true) - { - int num6 = num; - num3 = 82705303; - num4 = num6; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = (_200D_206F_200C_202D_202C_202C_202C_200D_206C_202C_202A_206A_206F_202B_200D_202C_206B_200E_206C_200B_200D_200D_200D_202A_202E_202C_206B_200C_206C_202B_202C_206E_206F_202C_200D_200C_206F_202D_202D_200E_202E((IEnumerator)enumerator2) ? 82705302 : 82705303); - break; - case 1: - { - ITask current2 = enumerator2.Current; - taskQueue.Enqueue(current2); - num = 82705300; - break; - } - case 2: - num = 82705300; - break; - case 0: - goto end_IL_026e; - } - continue; - end_IL_026e: - break; - } - } - finally - { - num = ((enumerator2 == null) ? 1773046636 : 1773046637); - while (true) - { - int num7 = num; - num3 = 1773046636; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1773046637; - break; - case 0: - goto end_IL_030f; - case 1: - _206E_202B_200E_206F_202B_202E_202D_206C_206F_200D_202E_206E_200D_200B_200B_200B_206F_200D_200B_206E_202E_202A_202E_206D_202E_206D_206D_200B_200C_206C_202D_200D_206A_206C_206D_200C_202E_202C_202B_200F_202E((IDisposable)enumerator2); - num = 1773046636; - break; - } - continue; - end_IL_030f: - break; - } - } - using (List<ITask>.Enumerator enumerator = list.GetEnumerator()) - { - num = -1421091636; - while (true) - { - int num8 = num; - num3 = -1421091636; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = (enumerator.MoveNext() ? (-1421091635) : (-1421091634)); - break; - case 1: - { - ITask current3 = enumerator.Current; - taskQueue.Enqueue(current3); - num = -1421091636; - break; - } - case 3: - num = -1421091636; - break; - case 2: - goto end_IL_0370; - } - continue; - end_IL_0370: - break; - } - } - return true; - } - case 6: - routeTargetNodeId = moveTask.RouteTargetNodeId; - num = ((routeTargetNodeId == null) ? 1710893575 : 1710893573); - break; - case 1: - return false; - case 0: - text = routeTargetNodeId; - text2 = moveTask.RouteApproachNodeId; - num = 1710893575; - break; - case 8: - num = 1710893572; - break; - case 3: - text = null; - text2 = null; - moveTask = taskQueue.CurrentTaskExecutor?.CurrentTask as MoveTask; - num = (((object)moveTask == null) ? 1710893575 : 1710893571); - break; - case 2: - list = ExtractNonMovementTasks(taskQueue); - reRouteDecision = _202A_206C_202A_200F_202D_200E_206B_202C_200D_200D_206C_206D_202C_202C_200B_200D_202E_202C_202C_202E_200E_206D_206A_206E_206F_200D_206E_200B_202E_202B_200E_200B_200D_200B_206D_206D_200D_206B_206F_206C_202E(reRoutePolicy, text, text2, list.Count > 0); - num = ((reRouteDecision is ReRouteDecision.SkipMovement) ? 1710893568 : 1710893569); - break; - case 5: - { - taskQueue.Reset(); - using (List<ITask>.Enumerator enumerator = list.GetEnumerator()) - { - num = -1903368627; - while (true) - { - int num5 = num; - num3 = -1903368628; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = (enumerator.MoveNext() ? (-1903368625) : (-1903368626)); - break; - case 3: - { - ITask current = enumerator.Current; - taskQueue.Enqueue(current); - num = -1903368627; - break; - } - case 0: - num = -1903368627; - break; - case 2: - goto end_IL_0186; - } - continue; - end_IL_0186: - break; - } - } - _200E_200C_202D_206D_206E_206D_202D_202E_206F_200F_206F_200B_206B_206D_202C_206B_202C_206B_202D_206F_206B_206D_206F_200D_206E_206E_206C_202C_200E_202B_202B_206C_200B_202B_206A_202C_200D_202D_202B_202C_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(563060847), new object[1] { list.Count }); - return true; - } - case 7: - return false; + failedTargetNodeId = routeTargetNodeId; + failedApproachNodeId = moveTask.RouteApproachNodeId; } } + List<ITask> list = ExtractNonMovementTasks(taskQueue); + ReRouteDecision reRouteDecision = reRoutePolicy.HandleMovementFailure(failedTargetNodeId, failedApproachNodeId, list.Count > 0); + if (!(reRouteDecision is ReRouteDecision.SkipMovement)) + { + if (reRouteDecision is ReRouteDecision.Replan replan) + { + taskQueue.Reset(); + foreach (ITask item in taskMapper.MapInstructions(replan.Instructions)) + { + taskQueue.Enqueue(item); + } + foreach (ITask item2 in list) + { + taskQueue.Enqueue(item2); + } + return true; + } + return false; + } + taskQueue.Reset(); + foreach (ITask item3 in list) + { + taskQueue.Enqueue(item3); + } + logger.LogInformation("Re-route: skipping movement with {TaskCount} preserved tasks", list.Count); + return true; } private static List<ITask> ExtractNonMovementTasks(TaskQueue taskQueue) @@ -215,96 +74,10 @@ internal sealed class SmartNavReRouteService(ReRoutePolicy reRoutePolicy, SmartN private static bool IsMovementTask(ITask task) { - int num = ((task is MoveTask) ? (-89420229) : (-89420235)); - bool result = default(bool); - while (true) + if (task is MoveTask || task is LandTask || task is Mount.MountTask || task is AetheryteTeleport.Task || task is AethernetRide.Task || task is WaitNavmesh.Task || task is WaitCondition.Task || task is WarpInteract.Task || task is TaxiInteract.Task || task is SubRegionTransport.Task || task is TicketTeleport.Task) { - int num2 = num; - int num3 = -89420240; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = ((task is TaxiInteract.Task) ? (-89420229) : (-89420238)); - break; - case 11: - result = true; - num = -89420230; - break; - case 6: - num = ((task is WaitCondition.Task) ? (-89420229) : (-89420228)); - break; - case 13: - num = ((task is AethernetRide.Task) ? (-89420229) : (-89420239)); - break; - case 12: - num = ((task is WarpInteract.Task) ? (-89420229) : (-89420236)); - break; - case 9: - result = false; - num = -89420230; - break; - case 7: - num = ((task is Mount.MountTask) ? (-89420229) : (-89420237)); - break; - case 8: - num = -89420235; - break; - case 3: - num = ((task is AetheryteTeleport.Task) ? (-89420229) : (-89420227)); - break; - case 2: - num = ((task is SubRegionTransport.Task) ? (-89420229) : (-89420240)); - break; - case 1: - num = ((task is WaitNavmesh.Task) ? (-89420229) : (-89420234)); - break; - case 0: - num = ((!(task is TicketTeleport.Task)) ? (-89420231) : (-89420229)); - break; - case 10: - return result; - case 5: - num = ((task is LandTask) ? (-89420229) : (-89420233)); - break; - } + return true; } - } - - static void _202A_200D_200E_206F_202C_206E_200D_202E_202C_200D_200C_206C_202A_200C_206B_206A_202A_202E_206A_206F_200D_206E_206B_200C_202D_206A_206C_206D_206A_202E_206A_202B_200D_202E_206D_206E_202A_202E_202C_206E_202E(ReRoutePolicy P_0, uint P_1, Vector3 P_2) - { - P_0.SetDestination(P_1, P_2); - } - - static void _206E_200E_202B_200E_200B_200B_200D_200C_202C_202B_202A_200D_202B_206A_200D_206E_206F_200D_206D_206F_200C_202B_206E_206E_206E_206F_206F_206D_206A_202B_202A_202B_200C_202D_202E_202D_206F_200C_206E_206B_202E(ReRoutePolicy P_0) - { - P_0.ClearDestination(); - } - - static ReRouteDecision _202A_206C_202A_200F_202D_200E_206B_202C_200D_200D_206C_206D_202C_202C_200B_200D_202E_202C_202C_202E_200E_206D_206A_206E_206F_200D_206E_200B_202E_202B_200E_200B_200D_200B_206D_206D_200D_206B_206F_206C_202E(ReRoutePolicy P_0, string P_1, string P_2, bool P_3) - { - return P_0.HandleMovementFailure(P_1, P_2, P_3); - } - - static void _200E_200C_202D_206D_206E_206D_202D_202E_206F_200F_206F_200B_206B_206D_202C_206B_202C_206B_202D_206F_206B_206D_206F_200D_206E_206E_206C_202C_200E_202B_202B_206C_200B_202B_206A_202C_200D_202D_202B_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static IReadOnlyList<NavInstruction> _206F_206E_200E_202C_202E_202C_202A_202B_202D_200E_200D_202B_200C_200D_200F_206B_200D_206B_202A_202C_206D_202E_202B_206B_200E_200E_206C_206F_200F_200D_202A_200E_206F_206E_202A_200E_206F_206D_206D_200F_202E(ReRouteDecision.Replan P_0) - { - return P_0.Instructions; - } - - static bool _200D_206F_200C_202D_202C_202C_202C_200D_206C_202C_202A_206A_206F_202B_200D_202C_206B_200E_206C_200B_200D_200D_200D_202A_202E_202C_206B_200C_206C_202B_202C_206E_206F_202C_200D_200C_206F_202D_202D_200E_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206E_202B_200E_206F_202B_202E_202D_206C_206F_200D_202E_206E_200D_200B_200B_200B_206F_200D_200B_206E_202E_202A_202E_206D_202E_206D_206D_200B_200C_206C_202D_200D_206A_206C_206D_200C_202E_202C_202B_200F_202E(IDisposable P_0) - { - P_0.Dispose(); + return false; } } diff --git a/Questionable/Questionable.Navigation/SmartNavRouteEnqueuer.cs b/Questionable/Questionable.Navigation/SmartNavRouteEnqueuer.cs index 01735e4..a21bd26 100644 --- a/Questionable/Questionable.Navigation/SmartNavRouteEnqueuer.cs +++ b/Questionable/Questionable.Navigation/SmartNavRouteEnqueuer.cs @@ -1,9 +1,7 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps; using Questionable.Controller.Steps.Movement; @@ -13,524 +11,144 @@ namespace Questionable.Navigation; internal sealed class SmartNavRouteEnqueuer(NavRouter navRouter, PlayerNavStateBuilder playerNavStateBuilder, RouteInstructionBuilder instructionBuilder, SmartNavTaskMapper taskMapper, SmartNavReRouteService reRouteService, ILogger<SmartNavRouteEnqueuer> logger) { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<NavInstruction, bool> _003C_003E9__9_0; - - internal bool _003CTryEnqueueToTerritory_003Eb__9_0(NavInstruction x) - { - NavInstruction.Move move = x as NavInstruction.Move; - int num = (((object)move == null) ? 1487160675 : 1487160672); - int num5; - while (true) - { - int num2 = num; - int num3 = 1487160674; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 0: - goto IL_0048; - case 2: - num5 = (_206F_202C_206C_202C_202B_206D_202E_206E_202E_206B_200F_206B_202B_202E_200E_200F_202E_200D_206A_206C_202C_206B_200E_202A_206F_206E_206A_202D_202C_206F_206A_206D_206F_206E_206D_200E_200C_200D_206D_202E_202E(move) ? 1 : 0); - break; - case 1: - num5 = 0; - break; - } - break; - IL_0048: - num = 1487160672; - } - return num5 == 0; - } - - static bool _206F_202C_206C_202C_202B_206D_202E_206E_202E_206B_200F_206B_202B_202E_200E_200F_202E_200D_206A_206C_202C_206B_200E_202A_206F_206E_206A_202D_202C_206F_206A_206D_206F_206E_206D_200E_200C_200D_206D_202E_202E(NavInstruction.Move P_0) - { - return P_0.IsFinal; - } - } - public void Enqueue(TaskQueue taskQueue, uint territoryId, Vector3 position, float? fallbackStopDistance = null) { - int num = ((!TryEnqueueRouted(taskQueue, territoryId, position)) ? 421503806 : 421503805); - while (true) + if (!TryEnqueueRouted(taskQueue, territoryId, position)) { - int num2 = num; - int num3 = 421503807; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004c; - case 2: - return; - case 1: - taskQueue.Enqueue(new MoveTask((ushort)territoryId, position, null, MountRequired: false, DismountRequired: false, fallbackStopDistance)); - reRouteService.SetDestination(territoryId, position); - return; - } - continue; - IL_004c: - num = 421503805; + taskQueue.Enqueue(new MoveTask((ushort)territoryId, position, null, MountRequired: false, DismountRequired: false, fallbackStopDistance)); + reRouteService.SetDestination(territoryId, position); } } - [MethodImpl(MethodImplOptions.NoInlining)] public bool TryEnqueueRouted(TaskQueue taskQueue, uint territoryId, Vector3 position) { - PlayerNavState playerNavState = _202B_206D_200F_202E_206D_200C_200D_202D_202A_200C_202E_200F_200D_206E_206E_206C_202E_206C_202B_200E_206D_202E_202D_202E_202B_202A_200C_202B_200C_206C_206E_202C_206E_202A_206E_202A_200B_200B_206A_200F_202E(playerNavStateBuilder, (int?)null); - int num = ((playerNavState != null) ? (-2001710558) : (-2001710559)); - RouteResult routeResult = default(RouteResult); - while (true) + PlayerNavState playerNavState = playerNavStateBuilder.Build(); + if (playerNavState == null) { - int num2 = num; - int num3 = -2001710557; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return false; - case 2: - return false; - case 1: - routeResult = _200C_206A_202A_202C_206A_202E_200C_206D_202C_206B_202D_200D_202B_200D_206C_206D_206C_200D_200D_200F_202C_206F_202D_202C_200E_200D_202D_200D_200F_206D_200D_202D_200F_206C_200F_206D_202A_202D_206C_202E(navRouter, playerNavState, territoryId, position, (IReadOnlySet<string>)null); - num = ((_206A_206D_202C_202A_206C_206A_202D_200C_200D_202C_206E_206A_202C_200F_200F_202A_202B_200D_200C_202B_200E_206A_206D_206D_200C_202C_200E_206F_200B_206B_202B_202D_206F_200C_206D_202B_200F_202A_202C_202B_202E(routeResult).Count != 0) ? (-2001710553) : (-2001710557)); - break; - case 3: - num = -2001710559; - break; - case 4: - { - _200F_200B_206D_206C_206A_202B_200E_202A_200D_202C_206A_200E_200D_206D_200E_200F_202E_200C_200C_206D_206A_206B_202D_200B_202B_202D_206D_206E_200C_202B_200D_206B_206F_200C_200D_206A_206D_206A_206E_202D_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1637216935), new object[1] { _206A_206D_202C_202A_206C_206A_202D_200C_200D_202C_206E_206A_202C_200F_200F_202A_202B_200D_200C_202B_200E_206A_206D_206D_200C_202C_200E_206F_200B_206B_202B_202D_206F_200C_206D_202B_200F_202A_202C_202B_202E(routeResult).Count }); - IEnumerator<ITask> enumerator = taskMapper.MapInstructions(_202E_200C_200C_202D_206A_206A_200D_200D_206C_200B_202E_206E_200B_200E_206C_200F_200D_200E_202D_206F_200F_200D_206E_206A_200D_202D_200E_206C_202C_206F_202A_206C_206A_206B_202D_206D_206B_202B_202E_206D_202E(instructionBuilder, routeResult, territoryId, false)).GetEnumerator(); - try - { - num = -1110389375; - while (true) - { - int num5 = num; - num3 = -1110389373; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 2: - num = (_206E_206C_206D_202B_206F_200C_200C_200D_202C_206E_202E_202A_202E_200B_206F_206D_206E_206C_206B_202D_202A_206F_200C_206F_202B_206C_200F_200F_202C_206E_206F_206D_200D_206D_202A_202C_202B_202E_200C_206B_202E((IEnumerator)enumerator) ? (-1110389374) : (-1110389376)); - break; - case 1: - { - ITask current = enumerator.Current; - taskQueue.Enqueue(current); - num = -1110389375; - break; - } - case 0: - num = -1110389375; - break; - case 3: - goto end_IL_0109; - } - continue; - end_IL_0109: - break; - } - } - finally - { - num = ((enumerator == null) ? 915371857 : 915371856); - while (true) - { - int num8 = num; - num3 = 915371857; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 915371856; - break; - case 0: - goto end_IL_01a9; - case 1: - _202E_206B_202B_202B_202E_202B_202C_200D_206D_200F_202B_206F_206D_206C_200C_206D_200D_200C_202A_200D_200D_200B_202B_206F_202C_202D_202E_206C_200F_200C_200D_206C_200C_202A_202B_206B_200C_202E_202A_200D_202E((IDisposable)enumerator); - num = 915371857; - break; - } - continue; - end_IL_01a9: - break; - } - } - reRouteService.SetDestination(territoryId, position); - return true; - } - } + return false; } + RouteResult routeResult = navRouter.FindRoute(playerNavState, territoryId, position); + if (routeResult.Segments.Count == 0) + { + return false; + } + logger.LogDebug("SmartNav routing with {Count} segments", routeResult.Segments.Count); + foreach (ITask item in taskMapper.MapInstructions(instructionBuilder.Build(routeResult, territoryId))) + { + taskQueue.Enqueue(item); + } + reRouteService.SetDestination(territoryId, position); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public bool TryEnqueueToTerritory(TaskQueue taskQueue, uint territoryId, Vector3 position) { - PlayerNavState playerNavState = _202B_206D_200F_202E_206D_200C_200D_202D_202A_200C_202E_200F_200D_206E_206E_206C_202E_206C_202B_200E_206D_202E_202D_202E_202B_202A_200C_202B_200C_206C_206E_202C_206E_202A_206E_202A_200B_200B_206A_200F_202E(playerNavStateBuilder, (int?)null); - int num = ((playerNavState != null) ? 990338576 : 990338578); - RouteResult routeResult = default(RouteResult); - List<NavInstruction> list = default(List<NavInstruction>); - while (true) + PlayerNavState playerNavState = playerNavStateBuilder.Build(); + if (playerNavState == null) { - int num2 = num; - int num3 = 990338579; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - routeResult = _200C_206A_202A_202C_206A_202E_200C_206D_202C_206B_202D_200D_202B_200D_206C_206D_206C_200D_200D_200F_202C_206F_202D_202C_200E_200D_202D_200D_200F_206D_200D_202D_200F_206C_200F_206D_202A_202D_206C_202E(navRouter, playerNavState, territoryId, position, (IReadOnlySet<string>)null); - num = ((_206A_206D_202C_202A_206C_206A_202D_200C_200D_202C_206E_206A_202C_200F_200F_202A_202B_200D_200C_202B_200E_206A_206D_206D_200C_202C_200E_206F_200B_206B_202B_202D_206F_200C_206D_202B_200F_202A_202C_202B_202E(routeResult).Count != 0) ? 990338577 : 990338579); - break; - case 1: - return false; - case 5: - num = 990338578; - break; - case 6: - return false; - case 2: - list = _202E_200C_200C_202D_206A_206A_200D_200D_206C_200B_202E_206E_200B_200E_206C_200F_200D_200E_202D_206F_200F_200D_206E_206A_200D_202D_200E_206C_202C_206F_202A_206C_206A_206B_202D_206D_206B_202B_202E_206D_202E(instructionBuilder, routeResult, territoryId, false).TakeWhile(delegate(NavInstruction x) - { - NavInstruction.Move move = x as NavInstruction.Move; - int num7 = (((object)move == null) ? 1487160675 : 1487160672); - int num11; - while (true) - { - int num8 = num7; - int num9 = 1487160674; - int num10 = num8; - switch ((num10 | num9) - (num10 & num9)) - { - default: - continue; - case 0: - goto IL_0048; - case 2: - num11 = (_003C_003Ec._206F_202C_206C_202C_202B_206D_202E_206E_202E_206B_200F_206B_202B_202E_200E_200F_202E_200D_206A_206C_202C_206B_200E_202A_206F_206E_206A_202D_202C_206F_206A_206D_206F_206E_206D_200E_200C_200D_206D_202E_202E(move) ? 1 : 0); - break; - case 1: - num11 = 0; - break; - } - break; - IL_0048: - num7 = 1487160672; - } - return num11 == 0; - }).ToList(); - num = ((list.Count != 0) ? 990338583 : 990338581); - break; - case 0: - return false; - case 4: - { - _200F_200B_206D_206C_206A_202B_200E_202A_200D_202C_206A_200E_200D_206D_200E_200F_202E_200C_200C_206D_206A_206B_202D_200B_202B_202D_206D_206E_200C_202B_200D_206B_206F_200C_200D_206A_206D_206A_206E_202D_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-511917065), new object[2] - { - territoryId, - _206A_206D_202C_202A_206C_206A_202D_200C_200D_202C_206E_206A_202C_200F_200F_202A_202B_200D_200C_202B_200E_206A_206D_206D_200C_202C_200E_206F_200B_206B_202B_202D_206F_200C_206D_202B_200F_202A_202C_202B_202E(routeResult).Count - }); - IEnumerator<ITask> enumerator = taskMapper.MapInstructions(list).GetEnumerator(); - try - { - num = -1387319967; - while (true) - { - int num5 = num; - num3 = -1387319968; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = (_206E_206C_206D_202B_206F_200C_200C_200D_202C_206E_202E_202A_202E_200B_206F_206D_206E_206C_206B_202D_202A_206F_200C_206F_202B_206C_200F_200F_202C_206E_206F_206D_200D_206D_202A_202C_202B_202E_200C_206B_202E((IEnumerator)enumerator) ? (-1387319966) : (-1387319965)); - break; - case 2: - { - ITask current = enumerator.Current; - taskQueue.Enqueue(current); - num = -1387319967; - break; - } - case 0: - num = -1387319967; - break; - case 3: - goto end_IL_016e; - } - continue; - end_IL_016e: - break; - } - } - finally - { - num = ((enumerator == null) ? (-1885497311) : (-1885497310)); - while (true) - { - int num6 = num; - num3 = -1885497312; - num4 = num6; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1885497310; - break; - case 1: - goto end_IL_020f; - case 2: - _202E_206B_202B_202B_202E_202B_202C_200D_206D_200F_202B_206F_206D_206C_200C_206D_200D_200C_202A_200D_200D_200B_202B_206F_202C_202D_202E_206C_200F_200C_200D_206C_200C_202A_202B_206B_200C_202E_202A_200D_202E((IDisposable)enumerator); - num = -1885497311; - break; - } - continue; - end_IL_020f: - break; - } - } - reRouteService.ClearDestination(); - return true; - } - } + return false; } + RouteResult routeResult = navRouter.FindRoute(playerNavState, territoryId, position); + if (routeResult.Segments.Count == 0) + { + return false; + } + List<NavInstruction> list = instructionBuilder.Build(routeResult, territoryId).TakeWhile((NavInstruction x) => !(x is NavInstruction.Move move) || !move.IsFinal).ToList(); + if (list.Count == 0) + { + return false; + } + logger.LogDebug("SmartNav routing to territory {TerritoryId} with {Count} segments; leaving final movement to the caller", territoryId, routeResult.Segments.Count); + foreach (ITask item in taskMapper.MapInstructions(list)) + { + taskQueue.Enqueue(item); + } + reRouteService.ClearDestination(); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public IReadOnlyList<ITask> BuildRoutedTasks(uint territoryId, Vector3 position) { reRouteService.SetDestination(territoryId, position); - PlayerNavState playerNavState = _202B_206D_200F_202E_206D_200C_200D_202D_202A_200C_202E_200F_200D_206E_206E_206C_202E_206C_202B_200E_206D_202E_202D_202E_202B_202A_200C_202B_200C_206C_206E_202C_206E_202A_206E_202A_200B_200B_206A_200F_202E(playerNavStateBuilder, (int?)null); - int num = ((playerNavState == null) ? (-660464339) : (-660464337)); - RouteResult routeResult = default(RouteResult); - while (true) + PlayerNavState playerNavState = playerNavStateBuilder.Build(); + if (playerNavState != null) { - int num2 = num; - int num3 = -660464338; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + RouteResult routeResult = navRouter.FindRoute(playerNavState, territoryId, position); + if (routeResult.Segments.Count > 0) { - case 2: - num = -660464337; - break; - case 0: - { - _200F_200B_206D_206C_206A_202B_200E_202A_200D_202C_206A_200E_200D_206D_200E_200F_202E_200C_200C_206D_206A_206B_202D_200B_202B_202D_206D_206E_200C_202B_200D_206B_206F_200C_200D_206A_206D_206A_206E_202D_202E((ILogger)logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(627470368), new object[1] { _206A_206D_202C_202A_206C_206A_202D_200C_200D_202C_206E_206A_202C_200F_200F_202A_202B_200D_200C_202B_200E_206A_206D_206D_200C_202C_200E_206F_200B_206B_202B_202D_206F_200C_206D_202B_200F_202A_202C_202B_202E(routeResult).Count }); + logger.LogDebug("SmartNav routing with {Count} segments", routeResult.Segments.Count); List<ITask> list = new List<ITask>(); - list.AddRange(taskMapper.MapInstructions(_202E_200C_200C_202D_206A_206A_200D_200D_206C_200B_202E_206E_200B_200E_206C_200F_200D_200E_202D_206F_200F_200D_206E_206A_200D_202D_200E_206C_202C_206F_202A_206C_206A_206B_202D_206D_206B_202B_202E_206D_202E(instructionBuilder, routeResult, territoryId, false))); + list.AddRange(taskMapper.MapInstructions(instructionBuilder.Build(routeResult, territoryId))); return new global::_003C_003Ez__ReadOnlyList<ITask>(list); } - case 3: - return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(new MoveTask((ushort)territoryId, position)); - case 1: - routeResult = _200C_206A_202A_202C_206A_202E_200C_206D_202C_206B_202D_200D_202B_200D_206C_206D_206C_200D_200D_200F_202C_206F_202D_202C_200E_200D_202D_200D_200F_206D_200D_202D_200F_206C_200F_206D_202A_202D_206C_202E(navRouter, playerNavState, territoryId, position, (IReadOnlySet<string>)null); - num = ((_206A_206D_202C_202A_206C_206A_202D_200C_200D_202C_206E_206A_202C_200F_200F_202A_202B_200D_200C_202B_200E_206A_206D_206D_200C_202C_200E_206F_200B_206B_202B_202D_206F_200C_206D_202B_200F_202A_202C_202B_202E(routeResult).Count <= 0) ? (-660464339) : (-660464338)); - break; - } } + return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(new MoveTask((ushort)territoryId, position)); } public bool RouteStartsWithTeleport(uint territoryId, Vector3 position) { - PlayerNavState playerNavState = _202B_206D_200F_202E_206D_200C_200D_202D_202A_200C_202E_200F_200D_206E_206E_206C_202E_206C_202B_200E_206D_202E_202D_202E_202B_202A_200C_202B_200C_206C_206E_202C_206E_202A_206E_202A_200B_200B_206A_200F_202E(playerNavStateBuilder, (int?)null); - int num = ((playerNavState != null) ? 1055627121 : 1055627127); - RouteResult routeResult = default(RouteResult); - bool? flag = default(bool?); - while (true) + PlayerNavState playerNavState = playerNavStateBuilder.Build(); + if (playerNavState == null) { - int num2 = num; - int num3 = 1055627123; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return false; + } + RouteResult routeResult = navRouter.FindRoute(playerNavState, territoryId, position); + if (routeResult.Segments.Count == 0) + { + return false; + } + foreach (NavInstruction item in instructionBuilder.Build(routeResult, territoryId)) + { + bool? flag = StartsWithTeleport(item); + if (flag.HasValue) { - case 1: - return false; - case 4: - return false; - case 2: - routeResult = _200C_206A_202A_202C_206A_202E_200C_206D_202C_206B_202D_200D_202B_200D_206C_206D_206C_200D_200D_200F_202C_206F_202D_202C_200E_200D_202D_200D_200F_206D_200D_202D_200F_206C_200F_206D_202A_202D_206C_202E(navRouter, playerNavState, territoryId, position, (IReadOnlySet<string>)null); - num = ((_206A_206D_202C_202A_206C_206A_202D_200C_200D_202C_206E_206A_202C_200F_200F_202A_202B_200D_200C_202B_200E_206A_206D_206D_200C_202C_200E_206F_200B_206B_202B_202D_206F_200C_206D_202B_200F_202A_202C_202B_202E(routeResult).Count != 0) ? 1055627120 : 1055627122); - break; - case 0: - num = 1055627127; - break; - case 3: - { - IEnumerator<NavInstruction> enumerator = _202E_200C_200C_202D_206A_206A_200D_200D_206C_200B_202E_206E_200B_200E_206C_200F_200D_200E_202D_206F_200F_200D_206E_206A_200D_202D_200E_206C_202C_206F_202A_206C_206A_206B_202D_206D_206B_202B_202E_206D_202E(instructionBuilder, routeResult, territoryId, false).GetEnumerator(); - try - { - num = 606760973; - while (true) - { - int num7 = num; - num3 = 606760975; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 2: - num = (_206E_206C_206D_202B_206F_200C_200C_200D_202C_206E_202E_202A_202E_200B_206F_206D_206E_206C_206B_202D_202A_206F_200C_206F_202B_206C_200F_200F_202C_206E_206F_206D_200D_206D_202A_202C_202B_202E_200C_206B_202E((IEnumerator)enumerator) ? 606760974 : 606760975); - break; - case 3: - return flag == true; - case 1: - flag = StartsWithTeleport(enumerator.Current); - num = ((!flag.HasValue) ? 606760973 : 606760972); - break; - case 4: - num = 606760973; - break; - case 0: - goto end_IL_00d1; - } - continue; - end_IL_00d1: - break; - } - } - finally - { - num = ((enumerator == null) ? 409111292 : 409111295); - while (true) - { - int num10 = num; - num3 = 409111294; - num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 0: - num = 409111295; - break; - case 2: - goto end_IL_01a8; - case 1: - _202E_206B_202B_202B_202E_202B_202C_200D_206D_200F_202B_206F_206D_206C_200C_206D_200D_200C_202A_200D_200D_200B_202B_206F_202C_202D_202E_206C_200F_200C_200D_206C_200C_202A_202B_206B_200C_202E_202A_200D_202E((IDisposable)enumerator); - num = 409111292; - break; - } - continue; - end_IL_01a8: - break; - } - } - return false; - } + return flag == true; } } - [MethodImpl(MethodImplOptions.NoInlining)] + return false; static bool? StartsWithTeleport(NavInstruction instruction) { - int num13 = ((instruction is NavInstruction.Teleport) ? (-1918761606) : (-1918761610)); - bool? result = default(bool?); - while (true) + if (instruction is NavInstruction.Teleport) { - int num14 = num13; - int num15 = -1918761612; - int num16 = num14; - int num17 = num16 + num15; - int num18 = num16 & num15; - switch (num17 - (num18 + num18)) - { - case 4: - num13 = -1918761631; - break; - case 13: - result = false; - num13 = -1918761628; - break; - case 22: - num13 = ((instruction is NavInstruction.WaitForTerritory) ? (-1918761612) : (-1918761611)); - break; - case 9: - num13 = ((instruction is NavInstruction.Land) ? (-1918761613) : (-1918761604)); - break; - case 14: - result = true; - num13 = -1918761628; - break; - case 0: - result = null; - num13 = -1918761628; - break; - case 1: - num13 = ((instruction is NavInstruction.WaitForNavmesh) ? (-1918761605) : (-1918761616)); - break; - case 11: - num13 = ((instruction is NavInstruction.InteractWarp) ? (-1918761614) : (-1918761627)); - break; - case 6: - result = false; - num13 = -1918761628; - break; - case 18: - result = null; - num13 = -1918761628; - break; - case 17: - num13 = ((instruction is NavInstruction.SubRegionTransport) ? (-1918761609) : (-1918761603)); - break; - case 16: - return result; - case 12: - result = true; - num13 = -1918761628; - break; - case 5: - result = false; - num13 = -1918761628; - break; - case 2: - num13 = ((instruction is NavInstruction.UseTeleportTicket) ? (-1918761608) : (-1918761602)); - break; - case 7: - result = null; - num13 = -1918761628; - break; - case 19: - num13 = -1918761610; - break; - case 3: - result = false; - num13 = -1918761628; - break; - case 21: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(29, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-651151470)); - defaultInterpolatedStringHandler.AppendFormatted(instruction); - throw _200E_202A_206B_206B_206D_206C_206F_206E_200C_200C_206B_202B_200B_200B_202A_202C_200D_200D_202A_200C_206A_200D_202C_200F_206A_202D_202D_206E_202B_202A_206F_202B_206A_200F_206D_206B_202E_200B_200B_200D_202E(defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 8: - num13 = ((instruction is NavInstruction.Unmount) ? (-1918761626) : (-1918761630)); - break; - case 10: - num13 = ((instruction is NavInstruction.Move) ? (-1918761607) : (-1918761632)); - break; - case 20: - num13 = ((instruction is NavInstruction.AethernetHop) ? (-1918761615) : (-1918761601)); - break; - case 15: - result = null; - num13 = -1918761628; - break; - } + return true; } + if (instruction is NavInstruction.UseTeleportTicket) + { + return true; + } + if (instruction is NavInstruction.Move) + { + return false; + } + if (instruction is NavInstruction.AethernetHop) + { + return false; + } + if (instruction is NavInstruction.InteractWarp) + { + return false; + } + if (instruction is NavInstruction.SubRegionTransport) + { + return false; + } + if (instruction is NavInstruction.Land) + { + return null; + } + if (instruction is NavInstruction.Unmount) + { + return null; + } + if (instruction is NavInstruction.WaitForTerritory) + { + return null; + } + if (!(instruction is NavInstruction.WaitForNavmesh)) + { + throw new InvalidOperationException($"Unclassified NavInstruction: {instruction}"); + } + return null; } } @@ -538,44 +156,4 @@ internal sealed class SmartNavRouteEnqueuer(NavRouter navRouter, PlayerNavStateB { reRouteService.ClearDestination(); } - - static PlayerNavState _202B_206D_200F_202E_206D_200C_200D_202D_202A_200C_202E_200F_200D_206E_206E_206C_202E_206C_202B_200E_206D_202E_202D_202E_202B_202A_200C_202B_200C_206C_206E_202C_206E_202A_206E_202A_200B_200B_206A_200F_202E(PlayerNavStateBuilder P_0, int? P_1) - { - return P_0.Build(P_1); - } - - static RouteResult _200C_206A_202A_202C_206A_202E_200C_206D_202C_206B_202D_200D_202B_200D_206C_206D_206C_200D_200D_200F_202C_206F_202D_202C_200E_200D_202D_200D_200F_206D_200D_202D_200F_206C_200F_206D_202A_202D_206C_202E(NavRouter P_0, PlayerNavState P_1, uint P_2, Vector3 P_3, IReadOnlySet<string> P_4) - { - return P_0.FindRoute(P_1, P_2, P_3, P_4); - } - - static IReadOnlyList<RouteSegment> _206A_206D_202C_202A_206C_206A_202D_200C_200D_202C_206E_206A_202C_200F_200F_202A_202B_200D_200C_202B_200E_206A_206D_206D_200C_202C_200E_206F_200B_206B_202B_202D_206F_200C_206D_202B_200F_202A_202C_202B_202E(RouteResult P_0) - { - return P_0.Segments; - } - - static void _200F_200B_206D_206C_206A_202B_200E_202A_200D_202C_206A_200E_200D_206D_200E_200F_202E_200C_200C_206D_206A_206B_202D_200B_202B_202D_206D_206E_200C_202B_200D_206B_206F_200C_200D_206A_206D_206A_206E_202D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static IReadOnlyList<NavInstruction> _202E_200C_200C_202D_206A_206A_200D_200D_206C_200B_202E_206E_200B_200E_206C_200F_200D_200E_202D_206F_200F_200D_206E_206A_200D_202D_200E_206C_202C_206F_202A_206C_206A_206B_202D_206D_206B_202B_202E_206D_202E(RouteInstructionBuilder P_0, RouteResult P_1, uint P_2, bool P_3) - { - return P_0.Build(P_1, P_2, P_3); - } - - static bool _206E_206C_206D_202B_206F_200C_200C_200D_202C_206E_202E_202A_202E_200B_206F_206D_206E_206C_206B_202D_202A_206F_200C_206F_202B_206C_200F_200F_202C_206E_206F_206D_200D_206D_202A_202C_202B_202E_200C_206B_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202E_206B_202B_202B_202E_202B_202C_200D_206D_200F_202B_206F_206D_206C_200C_206D_200D_200C_202A_200D_200D_200B_202B_206F_202C_202D_202E_206C_200F_200C_200D_206C_200C_202A_202B_206B_200C_202E_202A_200D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static InvalidOperationException _200E_202A_206B_206B_206D_206C_206F_206E_200C_200C_206B_202B_200B_200B_202A_202C_200D_200D_202A_200C_206A_200D_202C_200F_206A_202D_202D_206E_202B_202A_206F_202B_206A_200F_206D_206B_202E_200B_200B_200D_202E(string P_0) - { - return new InvalidOperationException(P_0); - } } diff --git a/Questionable/Questionable.Navigation/SmartNavTaskMapper.cs b/Questionable/Questionable.Navigation/SmartNavTaskMapper.cs index 47a7e64..f948a82 100644 --- a/Questionable/Questionable.Navigation/SmartNavTaskMapper.cs +++ b/Questionable/Questionable.Navigation/SmartNavTaskMapper.cs @@ -1,10 +1,7 @@ using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using Questionable.Controller.Steps; using Questionable.Controller.Steps.Common; @@ -13,1227 +10,141 @@ using Questionable.Controller.Steps.Shared; using Questionable.Data; using Questionable.Model.Questing; using SmartNav; -using SmartNav.Model; namespace Questionable.Navigation; internal sealed class SmartNavTaskMapper(IClientState clientState, TerritoryData territoryData) { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass5_0 - { - public SmartNavTaskMapper _003C_003E4__this; - - public NavInstruction.Teleport _003Cteleport_003E5__2; - - public NavInstruction.WaitForTerritory _003Cwait_003E5__3; - - internal bool _003CMap_003Eb__0() - { - return _202E_200E_206E_206A_206D_200E_206E_206D_206F_200B_206D_202C_206F_206B_202C_200D_206B_206A_206A_200E_202B_206F_200F_206C_202E_202E_202A_206C_202C_206F_202D_206B_206D_202E_202D_206C_200F_206F_206B_206B_202E(_003C_003E4__this.clientState) == _206A_202E_202D_200F_206A_200E_206A_200F_202A_206A_206F_206A_200C_206D_206E_202D_200B_206A_206D_206B_202C_206D_202D_200B_202A_206E_206F_200C_206C_200F_206B_206C_206A_202C_200B_206A_200B_202D_206B_202A_202E(_003Cteleport_003E5__2); - } - - internal bool _003CMap_003Eb__1() - { - return _206A_200B_206C_206E_200B_202D_206C_202C_202E_206B_206F_200D_206D_200F_202A_200D_202C_206E_200F_202B_206C_202E_202E_206B_202A_206D_206B_200C_202C_206D_206C_206D_200E_206A_206D_200B_206D_202B_202D_200F_202E(_003Cwait_003E5__3).Contains(_202E_200E_206E_206A_206D_200E_206E_206D_206F_200B_206D_202C_206F_206B_202C_200D_206B_206A_206A_200E_202B_206F_200F_206C_202E_202E_202A_206C_202C_206F_202D_206B_206D_202E_202D_206C_200F_206F_206B_206B_202E(_003C_003E4__this.clientState)); - } - - static uint _202E_200E_206E_206A_206D_200E_206E_206D_206F_200B_206D_202C_206F_206B_202C_200D_206B_206A_206A_200E_202B_206F_200F_206C_202E_202E_202A_206C_202C_206F_202D_206B_206D_202E_202D_206C_200F_206F_206B_206B_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static ushort _206A_202E_202D_200F_206A_200E_206A_200F_202A_206A_206F_206A_200C_206D_206E_202D_200B_206A_206D_206B_202C_206D_202D_200B_202A_206E_206F_200C_206C_200F_206B_206C_206A_202C_200B_206A_200B_202D_206B_202A_202E(NavInstruction.Teleport P_0) - { - return P_0.ExpectedTerritory; - } - - static IReadOnlyList<uint> _206A_200B_206C_206E_200B_202D_206C_202C_202E_206B_206F_200D_206D_200F_202A_200D_202C_206E_200F_202B_206C_202E_202E_206B_202A_206D_206B_200C_202C_206D_206C_206D_200E_206A_206D_200B_206D_202B_202D_200F_202E(NavInstruction.WaitForTerritory P_0) - { - return P_0.Acceptable; - } - } - - [CompilerGenerated] - private sealed class _003CMap_003Ed__5 : IEnumerable<ITask>, IEnumerable, IEnumerator<ITask>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ITask _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - public SmartNavTaskMapper _003C_003E4__this; - - private NavInstruction instruction; - - public NavInstruction _003C_003E3__instruction; - - private _003C_003Ec__DisplayClass5_0 _003C_003E8__1; - - private NavInstruction nextTravel; - - public NavInstruction _003C_003E3__nextTravel; - - private QuestStep step; - - public QuestStep _003C_003E3__step; - - ITask IEnumerator<ITask>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CMap_003Ed__5(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _202C_202D_206D_206C_200C_206D_200F_200B_206B_202C_206E_202B_200E_200F_200C_202C_206F_206B_206E_200D_202C_200B_202B_202E_202C_202B_206C_200C_206A_202D_206F_200E_200F_206B_200F_206A_200F_200B_202A_206B_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - _003C_003E8__1 = null; - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - int num = _003C_003E1__state; - SmartNavTaskMapper smartNavTaskMapper = _003C_003E4__this; - int num2; - NavInstruction.AethernetHop aethernetHop = default(NavInstruction.AethernetHop); - NavInstruction.Move move = default(NavInstruction.Move); - NavInstruction.InteractWarp interactWarp = default(NavInstruction.InteractWarp); - NavInstruction.SubRegionTransport subRegionTransport = default(NavInstruction.SubRegionTransport); - NavInstruction.UseTeleportTicket useTeleportTicket = default(NavInstruction.UseTeleportTicket); - NavInstruction navInstruction = default(NavInstruction); - bool? flag = default(bool?); - bool? flag2 = default(bool?); - switch (num) - { - default: - num2 = 866335748; - goto IL_005c; - case 1: - _003C_003E1__state = -1; - num2 = ((!AetheryteTeleport.MoveAwayFromAetheryteExecutor.AppliesTo(_206E_206E_206B_202A_206C_200B_206D_206E_202B_202D_200E_202B_206F_202B_202B_200C_200C_202B_206D_200D_202D_206B_206E_206A_206B_202C_206A_200E_202C_206E_206B_206A_206E_202D_200D_200B_202A_200B_202B_206B_202E(_003C_003E8__1._003Cteleport_003E5__2))) ? 866335780 : 866335766); - goto IL_005c; - case 9: - goto IL_02c7; - case 4: - goto IL_0392; - case 0: - goto IL_03a5; - case 13: - goto IL_049f; - case 8: - goto IL_054f; - case 11: - goto IL_0562; - case 12: - goto IL_0575; - case 14: - goto IL_058a; - case 10: - goto IL_06b6; - case 3: - goto IL_07cf; - case 7: - goto IL_07e2; - case 5: - goto IL_081d; - case 6: - goto IL_0847; - case 2: - break; - IL_005c: - while (true) - { - int num3 = num2; - int num4 = 866335753; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 40: - _003C_003E2__current = new WaitCondition.Task(() => _003C_003Ec__DisplayClass5_0._206A_200B_206C_206E_200B_202D_206C_202C_202E_206B_206F_200D_206D_200F_202A_200D_202C_206E_200F_202B_206C_202E_202E_206B_202A_206D_206B_200C_202C_206D_206C_206D_200E_206A_206D_200B_206D_202B_202D_200F_202E(_003C_003E8__1._003Cwait_003E5__3).Contains(_003C_003Ec__DisplayClass5_0._202E_200E_206E_206A_206D_200E_206E_206D_206F_200B_206D_202C_206F_206B_202C_200D_206B_206A_206A_200E_202B_206F_200F_206C_202E_202E_202A_206C_202C_206F_202D_206B_206D_202E_202D_206C_200F_206F_206B_206B_202E(_003C_003E8__1._003C_003E4__this.clientState)), _206D_202A_206A_206C_202E_202D_206F_200B_200E_202B_206B_202C_200C_206B_200B_202D_206B_206A_206D_206A_200D_206A_202E_202C_202A_206B_202D_206E_200D_200E_206C_202B_206A_200F_206E_206A_206B_206D_206D_200C_202E(_003C_003E8__1._003Cwait_003E5__3)); - _003C_003E1__state = 10; - return true; - case 19: - goto IL_0176; - case 33: - _003C_003E2__current = new AethernetRide.Task(_202D_200C_200C_202A_206A_206F_200D_202A_206D_202B_200B_202C_200F_200E_202C_206D_200D_202D_206F_202A_202B_202E_202A_206C_206D_202D_206D_202D_202C_202D_200D_200C_202E_202D_202B_202A_206D_206D_206E_202B_202E(aethernetHop), _200F_200D_200D_200B_206A_200F_206F_202B_206A_206A_206F_200B_200E_206B_202A_200F_206E_200E_200F_202D_200B_206F_200C_206D_202B_206E_200C_200E_202B_200F_200B_200B_206E_202E_200C_206B_206E_202C_200F_200C_202E(aethernetHop)); - _003C_003E1__state = 4; - return true; - case 43: - _003C_003E2__current = new WaitCondition.Task(() => _003C_003Ec__DisplayClass5_0._202E_200E_206E_206A_206D_200E_206E_206D_206F_200B_206D_202C_206F_206B_202C_200D_206B_206A_206A_200E_202B_206F_200F_206C_202E_202E_202A_206C_202C_206F_202D_206B_206D_202E_202D_206C_200F_206F_206B_206B_202E(_003C_003E8__1._003C_003E4__this.clientState) == _003C_003Ec__DisplayClass5_0._206A_202E_202D_200F_206A_200E_206A_200F_202A_206A_206F_206A_200C_206D_206E_202D_200B_206A_206D_206B_202C_206D_202D_200B_202A_206E_206F_200C_206C_200F_206B_206C_206A_202C_200B_206A_200B_202D_206B_202A_202E(_003C_003E8__1._003Cteleport_003E5__2), _206B_200E_200C_206D_202D_206F_200D_206D_206C_202D_200D_200B_202C_206D_206A_206E_206E_200E_206F_206E_206A_202B_202C_200E_200C_202E_206A_206C_200B_206A_202A_202B_202A_200F_202B_200E_200E_206F_202B_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-344536108), smartNavTaskMapper.territoryData.GetNameAndId(_206D_206B_200E_200F_200B_202E_206E_206F_200E_206D_206A_202E_200F_202D_206B_202D_206D_202A_202E_202A_206F_206E_200E_200F_200F_202B_200E_202E_202E_200E_206D_200F_202A_206D_206F_206B_200B_202C_200F_202B_202E(_003C_003E8__1._003Cteleport_003E5__2)), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321))); - _003C_003E1__state = 2; - return true; - case 25: - goto end_IL_005c; - case 3: - goto IL_0259; - case 32: - _003C_003E2__current = new WaitNavmesh.Task(); - _003C_003E1__state = 11; - return true; - case 14: - goto IL_0296; - case 30: - goto IL_02c7; - case 44: - num2 = 866335748; - break; - case 18: - goto IL_02e6; - case 7: - { - NavInstruction.Move move2 = move; - ushort territoryId = _202C_202B_202D_202A_202D_200C_206E_200D_202E_200F_206C_202D_202A_202C_200B_202C_206D_200C_200E_206C_206E_200E_202D_206D_206F_202B_206D_206B_200E_206F_202B_206F_206A_202E_202C_200F_202E_206F_202B_202E_202E(move2); - Vector3 destination2 = _206D_206D_206E_202B_206B_202B_200C_202B_202D_200B_200B_200C_200F_200E_202D_200D_200B_206B_200E_200B_202E_200D_202C_202E_200B_202C_200C_202C_200F_200C_202A_200B_206E_206F_206D_200F_206C_202E_202B_202E(move2); - bool? mount = _206D_206E_200B_206A_202B_202B_200B_200D_200D_200E_202E_206B_206C_202E_200B_202A_206B_206E_202C_206A_206B_200D_200C_206A_200B_206A_206D_206F_206A_200B_206E_206A_202C_200B_202B_206C_200C_200F_200F_202E_202E(move2); - float? stopDistance = _206F_200C_200E_206D_202C_206C_206D_200C_206C_206B_206D_206D_206F_206F_202D_200E_206B_202B_200F_200B_202C_206E_206D_202C_202B_202C_206A_206D_206B_200D_202B_200B_206C_200F_202C_202A_200E_202D_206E_202A_202E(move2); - uint? dataId = _206C_200D_202D_200B_202D_202D_206B_206C_200C_206B_202A_206F_200E_200C_202D_206B_206F_206C_200B_200B_202A_200D_200F_202D_206B_206F_206D_206D_202A_206A_202D_200B_200B_200F_206B_202D_200F_200C_202B_202E(move2); - bool disableNavmesh = _200F_202C_202E_202E_206E_200D_206D_206C_206D_202A_202E_206F_202B_206F_202E_200E_202C_200F_206D_200F_206E_206F_202D_206E_202B_206C_206C_206B_202E_202D_202E_206C_202B_206E_200E_206A_206B_206E_206C_202B_202E(move2); - bool fly = _206B_206D_200D_206D_206D_200C_206F_206D_206F_202E_206E_206A_202B_200C_206F_200B_200F_202D_206E_206E_206B_202B_206A_206D_200D_206C_206E_200B_206B_206B_202B_206F_200F_200C_202E_200C_206B_200D_200B_202B_202E(move2); - bool land = _200D_200F_206A_206A_202B_200E_200F_200D_202C_202B_202D_206C_200C_200B_200D_202E_202E_206F_200F_202C_202A_206D_200B_200F_200E_206E_206D_206E_202B_202C_206C_200D_206B_206A_202A_202E_202E_206D_206B_202B_202E(move2); - bool allowZoneTransition = _200D_206B_200F_206E_202A_200C_206F_206A_206E_200B_206E_200E_202A_200D_200B_202B_202C_206C_202A_206C_200E_202C_202E_206E_200D_202E_206C_200F_200E_200C_206C_206F_202D_202B_206E_202E_200B_202E_206E_202B_202E(move2); - string routeTargetNodeId = _206F_202D_200D_202B_202C_206B_206B_200C_200C_206F_202D_200C_206B_202D_206E_202D_202A_206A_206F_206D_200E_202E_200B_202D_206E_206C_200E_202A_206D_206D_202E_202E_200D_200F_200E_200F_200E_202E_200C_206D_202E(move2); - string routeApproachNodeId = _206B_200F_202D_206E_200D_206A_206A_206F_200F_200D_202A_202C_206E_206F_202B_206C_206F_206A_206D_200E_202B_206A_202C_206B_206D_206D_202A_206C_200E_206D_200B_200E_206F_206A_206A_206F_200C_200B_206D_200C_202E(move2); - _003C_003E2__current = new MoveTask(territoryId, destination2, mount, MountRequired: false, DismountRequired: false, stopDistance, dataId, disableNavmesh, null, fly, land, IgnoreDistanceToObject: false, RestartNavigation: true, EInteractionType.None, SmartNavRouted: true, allowZoneTransition, routeTargetNodeId, routeApproachNodeId); - _003C_003E1__state = 7; - return true; - } - case 4: - goto IL_0392; - case 2: - goto IL_03a5; - case 26: - _003C_003E2__current = new WarpInteract.Task(_206A_200E_206B_206D_206C_200C_202A_206A_202B_206D_202E_206E_206E_200B_200B_206A_200C_200F_200F_206E_200D_200E_202E_200C_200E_206C_202B_200E_200F_202B_200E_206D_206D_206C_206C_202D_200E_206D_202D_202B_202E(interactWarp), _206A_202E_206D_202B_202E_202B_206D_200B_206D_202D_200F_206A_200E_206B_206E_206C_202D_202D_200E_200F_206A_200C_200B_200D_200E_200F_202C_202E_202D_206E_206D_200F_202A_200E_206B_202C_202D_206A_206F_206A_202E(interactWarp), _202E_200E_200D_200B_202C_200E_206D_202D_202A_200D_200D_202C_202B_206E_206E_206F_206C_206A_206D_202C_202B_202C_200D_206E_206A_200D_202C_206F_200F_206D_202A_200D_202B_200E_206C_206E_200E_206E_200B_200F_202E(interactWarp), _200F_200F_202C_202D_206D_202B_200F_200E_200B_202E_206A_202E_206C_202C_206F_202D_200F_202E_200D_206F_200D_200C_206C_202D_200E_206C_206A_206A_206F_206F_206F_200B_200C_206C_202A_200E_202C_206D_200F_206F_202E(interactWarp)); - _003C_003E1__state = 12; - return true; - case 48: - _003C_003E2__current = new SubRegionTransport.Task(_200B_200F_202E_206F_202C_206B_206F_206F_206D_200C_202C_206C_202D_200E_206D_206F_200F_206F_206A_200C_200F_206B_202B_206A_200B_200E_200B_202B_202B_206E_200D_200C_202D_206E_200D_200D_202D_206E_200F_200E_202E(subRegionTransport), _202B_202D_202B_206A_200B_202B_200D_200F_206B_202B_202C_202B_200C_200D_202A_200E_200B_200B_206F_206B_202C_202E_202C_206B_206C_206B_202B_200D_206B_202B_206C_200C_206D_202D_202B_206F_206C_200F_202B_200F_202E(subRegionTransport), _202C_202B_206C_206F_206D_200E_200C_200E_202D_206A_200B_206A_202A_202C_202A_200B_206A_202B_202A_202B_202D_200E_200D_200B_206F_206E_206D_206E_202B_202A_202C_200F_202E_202A_200F_206E_206A_206A_206C_200C_202E(subRegionTransport)); - _003C_003E1__state = 14; - return true; - case 17: - goto IL_0465; - case 29: - goto IL_049f; - case 37: - goto IL_04b2; - case 27: - goto IL_04d6; - case 41: - _003C_003E2__current = new TicketTeleport.Task(_202C_200C_206C_202B_200F_200E_200F_202B_200D_200E_200D_206B_206B_200B_200E_206C_202C_206F_200B_202A_206F_200E_202C_200E_200E_206D_200D_202E_200E_206F_206F_206E_202D_202A_206F_206C_206C_200C_202E_206C_202E(useTeleportTicket), _200E_206F_206B_200E_200E_206C_206A_206C_206B_206E_200E_200B_206A_200B_200F_202B_202D_206E_200C_206D_206E_206C_200B_206B_206A_206D_206F_206D_200C_200D_202D_206E_202D_202E_206D_202C_200B_202A_206D_200E_202E(useTeleportTicket)); - _003C_003E1__state = 13; - return true; - case 24: - goto IL_051d; - case 20: - num2 = 866335786; - break; - case 13: - return false; - case 11: - goto IL_054f; - case 5: - goto IL_0562; - case 15: - goto IL_0575; - case 45: - return false; - case 12: - goto IL_058a; - case 1: - goto IL_059d; - case 0: - { - QuestStep questStep = step; - Vector3 destination = _206D_206D_206F_202D_202B_200C_206A_200F_206F_202B_200B_200C_200D_202E_200D_202B_200E_206A_200E_200F_202D_202E_206E_200C_206D_200F_202B_202A_206D_200C_202C_206B_202A_206B_202E_200B_206B_200B_206F_206C_202E(step) ?? _206D_206D_206E_202B_206B_202B_200C_202B_202D_200B_200B_200C_200F_200E_202D_200D_200B_206B_200E_200B_202E_200D_202C_202E_200B_202C_200C_202C_200F_200C_202A_200B_206E_206F_206D_200F_206C_202E_202B_202E(move); - _003C_003E2__current = new MoveTask(questStep, destination)with - { - Fly = (_206B_206D_200D_206D_206D_200C_206F_206D_206F_202E_206E_206A_202B_200C_206F_200B_200F_202D_206E_206E_206B_202B_206A_206D_200D_206C_206E_200B_206B_206B_202B_206F_200F_200C_202E_200C_206B_200D_200B_202B_202E(move) || _206D_202B_206F_206D_206D_202E_206D_202E_200F_200E_206C_206B_202E_206F_202D_206B_200E_200D_200F_202C_202A_206B_206A_200C_200C_206B_202E_202B_200C_202E_206C_206F_206C_200C_200C_206C_206D_206B_200B_206E_202E(step) == true), - Land = (_206B_206D_200D_206D_206D_200C_206F_206D_206F_202E_206E_206A_202B_200C_206F_200B_200F_202D_206E_206E_206B_202B_206A_206D_200D_206C_206E_200B_206B_206B_202B_206F_200F_200C_202E_200C_206B_200D_200B_202B_202E(move) || _202C_206C_200C_200C_206B_200E_202C_200F_206C_202C_206F_202A_200B_202A_200C_206E_206A_200D_206C_200D_202A_206D_206C_206D_202E_206F_202A_206B_200F_206F_202B_202E_206A_202C_200E_206D_206E_206A_200D_206A_202E(step) == true), - SmartNavRouted = true, - RouteTargetNodeId = _206F_202D_200D_202B_202C_206B_206B_200C_200C_206F_202D_200C_206B_202D_206E_202D_202A_206A_206F_206D_200E_202E_200B_202D_206E_206C_200E_202A_206D_206D_202E_202E_200D_200F_200E_200F_200E_202E_200C_206D_202E(move), - RouteApproachNodeId = _206B_200F_202D_206E_200D_206A_206A_206F_200F_200D_202A_202C_206E_206F_202B_206C_206F_206A_206D_200E_202B_206A_202C_206B_206D_206D_202A_206C_200E_206D_200B_200E_206F_206A_206A_206F_200C_200B_206D_200C_202E(move) - }; - _003C_003E1__state = 5; - return true; - } - case 46: - _003C_003E2__current = new AetheryteTeleport.Task(_206E_206E_206B_202A_206C_200B_206D_206E_202B_202D_200E_202B_206F_202B_202B_200C_200C_202B_206D_200D_202D_206B_206E_206A_206B_202C_206A_200E_202C_206E_206B_206A_206E_202D_200D_200B_202A_200B_202B_206B_202E(_003C_003E8__1._003Cteleport_003E5__2), _206D_206B_200E_200F_200B_202E_206E_206F_200E_206D_206A_202E_200F_202D_206B_202D_206D_202A_202E_202A_206F_206E_200E_200F_200F_202B_200E_202E_202E_200E_206D_200F_202A_206D_206F_206B_200B_202C_200F_202B_202E(_003C_003E8__1._003Cteleport_003E5__2)); - _003C_003E1__state = 1; - return true; - case 39: - goto IL_06b6; - case 22: - _003C_003E2__current = new Mount.UnmountTask(); - _003C_003E1__state = 9; - return true; - case 6: - goto IL_06de; - case 38: - goto IL_0701; - case 23: - goto IL_0724; - case 16: - _003C_003E2__current = new LandTask(); - _003C_003E1__state = 6; - return true; - case 31: - goto IL_0760; - case 42: - goto IL_07cf; - case 9: - goto IL_07e2; - case 21: - goto IL_07f5; - case 28: - goto IL_081d; - case 47: - goto IL_0847; - case 35: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(25, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-82937501)); - defaultInterpolatedStringHandler.AppendFormatted(instruction); - throw _202A_200D_206A_200C_206F_202A_202E_200D_206C_202A_200C_206E_202C_206D_202E_206D_200E_200C_206F_202C_206A_202C_206B_200E_206C_206A_202A_206A_200B_206F_206D_200F_200C_200B_200F_200F_206B_200C_206D_206F_202E(defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 36: - _003C_003E2__current = new LandTask(); - _003C_003E1__state = 8; - return true; - case 8: - goto IL_08a3; - case 34: - goto IL_08c7; - case 10: - goto end_IL_000f; - } - continue; - IL_08c7: - aethernetHop = navInstruction as NavInstruction.AethernetHop; - num2 = (((object)aethernetHop != null) ? 866335784 : 866335752); - continue; - IL_051d: - num2 = ((flag != true) ? 866335780 : 866335769); - continue; - IL_0259: - subRegionTransport = navInstruction as NavInstruction.SubRegionTransport; - num2 = (((object)subRegionTransport != null) ? 866335801 : 866335773); - continue; - IL_08a3: - num2 = ((navInstruction is NavInstruction.Unmount) ? 866335775 : 866335768); - continue; - IL_0701: - num2 = ((!_200D_206A_202B_202B_202C_206D_206B_202A_206B_206B_202D_206C_206B_200B_202A_206A_202E_200E_202E_200B_202C_206F_206C_206C_202D_206E_206F_206E_206E_200D_206C_200B_206E_202E_202D_206E_202B_200C_202D_200E_202E(move)) ? 866335758 : 866335759); - continue; - IL_0465: - _003C_003E8__1._003Cwait_003E5__3 = navInstruction as NavInstruction.WaitForTerritory; - num2 = (((object)_003C_003E8__1._003Cwait_003E5__3 != null) ? 866335777 : 866335771); - continue; - IL_07f5: - interactWarp = navInstruction as NavInstruction.InteractWarp; - num2 = (((object)interactWarp != null) ? 866335763 : 866335774); - continue; - IL_04d6: - num2 = ((navInstruction is NavInstruction.Land) ? 866335789 : 866335745); - continue; - IL_06de: - num2 = ((step == null) ? 866335758 : 866335753); - continue; - IL_0760: - NavInstruction.AethernetHop obj = nextTravel as NavInstruction.AethernetHop; - num2 = (((((object)obj != null) ? new EAetheryteLocation?(_206B_202B_200E_200F_206F_202E_202E_206B_202B_206C_202C_206B_202A_202A_206C_202A_206E_202A_206B_200B_202C_200C_202D_200D_206F_206C_200D_206F_202D_202E_200D_200D_200C_200D_200E_206D_200D_202B_202B_206E_202E(obj)) : ((EAetheryteLocation?)null)) == _206E_206E_206B_202A_206C_200B_206D_206E_202B_202D_200E_202B_206F_202B_202B_200C_200C_202B_206D_200D_202D_206B_206E_206A_206B_202C_206A_200E_202C_206E_206B_206A_206E_202D_200D_200B_202A_200B_202B_206B_202E(_003C_003E8__1._003Cteleport_003E5__2)) ? 866335780 : 866335778); - continue; - IL_0296: - flag = _202C_206C_200C_200C_206B_200E_202C_200F_206C_202C_206F_202A_200B_202A_200C_206E_206A_200D_206C_200D_202A_206D_206C_206D_202E_206F_202A_206B_200F_206F_202B_202E_206A_202C_200E_206D_206E_206A_200D_206A_202E(step); - num2 = ((!flag.HasValue) ? 866335780 : 866335761); - continue; - IL_059d: - move = navInstruction as NavInstruction.Move; - num2 = (((object)move != null) ? 866335791 : 866335762); - continue; - IL_0176: - flag2 = _206D_202B_206F_206D_206D_202E_206D_202E_200F_200E_206C_206B_202E_206F_202D_206B_200E_200D_200F_202C_202A_206B_206A_200C_200C_206B_202E_202B_200C_202E_206C_206F_206C_200C_200C_206C_206D_206B_200B_206E_202E(step); - num2 = ((!flag2.HasValue) ? 866335780 : 866335788); - continue; - IL_04b2: - num2 = ((flag2 != true) ? 866335780 : 866335751); - continue; - IL_02e6: - num2 = ((navInstruction is NavInstruction.WaitForNavmesh) ? 866335785 : 866335772); - continue; - IL_0724: - useTeleportTicket = navInstruction as NavInstruction.UseTeleportTicket; - num2 = (((object)useTeleportTicket != null) ? 866335776 : 866335754); - continue; - end_IL_005c: - break; - } - goto case 1; - IL_0847: - _003C_003E1__state = -1; - num2 = 866335780; - goto IL_005c; - IL_081d: - _003C_003E1__state = -1; - num2 = ((step == null) ? 866335780 : 866335770); - goto IL_005c; - IL_02c7: - _003C_003E1__state = -1; - num2 = 866335780; - goto IL_005c; - IL_07e2: - _003C_003E1__state = -1; - num2 = 866335780; - goto IL_005c; - IL_07cf: - _003C_003E1__state = -1; - num2 = 866335780; - goto IL_005c; - IL_06b6: - _003C_003E1__state = -1; - num2 = 866335780; - goto IL_005c; - IL_058a: - _003C_003E1__state = -1; - num2 = 866335780; - goto IL_005c; - IL_0575: - _003C_003E1__state = -1; - num2 = 866335780; - goto IL_005c; - IL_0562: - _003C_003E1__state = -1; - num2 = 866335780; - goto IL_005c; - IL_054f: - _003C_003E1__state = -1; - num2 = 866335780; - goto IL_005c; - IL_049f: - _003C_003E1__state = -1; - num2 = 866335780; - goto IL_005c; - IL_03a5: - _003C_003E1__state = -1; - _003C_003E8__1 = new _003C_003Ec__DisplayClass5_0(); - _003C_003E8__1._003C_003E4__this = _003C_003E4__this; - navInstruction = instruction; - _003C_003E8__1._003Cteleport_003E5__2 = navInstruction as NavInstruction.Teleport; - num2 = (((object)_003C_003E8__1._003Cteleport_003E5__2 != null) ? 866335783 : 866335787); - goto IL_005c; - IL_0392: - _003C_003E1__state = -1; - num2 = 866335780; - goto IL_005c; - end_IL_000f: - break; - } - _003C_003E1__state = -1; - _003C_003E2__current = new AetheryteTeleport.MoveAwayFromAetheryte(_206E_206E_206B_202A_206C_200B_206D_206E_202B_202D_200E_202B_206F_202B_202B_200C_200C_202B_206D_200D_202D_206B_206E_206A_206B_202C_206A_200E_202C_206E_206B_206A_206E_202D_200D_200B_202A_200B_202B_206B_202E(_003C_003E8__1._003Cteleport_003E5__2)); - _003C_003E1__state = 3; - return true; - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _200D_206C_200B_202A_206E_206C_202D_202A_206D_200F_200B_206A_200D_200E_202E_206D_202B_206D_206F_202B_202C_202A_206F_200F_200E_206C_202B_206E_202E_200F_202E_206D_200D_206D_200E_206A_202D_206B_206A_202E(); - } - - [DebuggerHidden] - IEnumerator<ITask> IEnumerable<ITask>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? 1996571645 : 1996571644); - _003CMap_003Ed__5 _003CMap_003Ed__ = default(_003CMap_003Ed__5); - while (true) - { - int num2 = num; - int num3 = 1996571646; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - _003CMap_003Ed__.instruction = _003C_003E3__instruction; - _003CMap_003Ed__.nextTravel = _003C_003E3__nextTravel; - _003CMap_003Ed__.step = _003C_003E3__step; - return _003CMap_003Ed__; - case 4: - _003C_003E1__state = 0; - _003CMap_003Ed__ = this; - num = 1996571647; - break; - case 2: - num = ((_003C_003El__initialThreadId != _202C_202D_206D_206C_200C_206D_200F_200B_206B_202C_206E_202B_200E_200F_200C_202C_206F_206B_206E_200D_202C_200B_202B_202E_202C_202B_206C_200C_206A_202D_206F_200E_200F_206B_200F_206A_200F_200B_202A_206B_202E()) ? 1996571645 : 1996571642); - break; - case 3: - _003CMap_003Ed__ = new _003CMap_003Ed__5(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = 1996571647; - break; - case 0: - num = 1996571644; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ITask>)this).GetEnumerator(); - } - - static int _202C_202D_206D_206C_200C_206D_200F_200B_206B_202C_206E_202B_200E_200F_200C_202C_206F_206B_206E_200D_202C_200B_202B_202E_202C_202B_206C_200C_206A_202D_206F_200E_200F_206B_200F_206A_200F_200B_202A_206B_202E() - { - return Environment.CurrentManagedThreadId; - } - - static EAetheryteLocation _206E_206E_206B_202A_206C_200B_206D_206E_202B_202D_200E_202B_206F_202B_202B_200C_200C_202B_206D_200D_202D_206B_206E_206A_206B_202C_206A_200E_202C_206E_206B_206A_206E_202D_200D_200B_202A_200B_202B_206B_202E(NavInstruction.Teleport P_0) - { - return P_0.Target; - } - - static ushort _206D_206B_200E_200F_200B_202E_206E_206F_200E_206D_206A_202E_200F_202D_206B_202D_206D_202A_202E_202A_206F_206E_200E_200F_200F_202B_200E_202E_202E_200E_206D_200F_202A_206D_206F_206B_200B_202C_200F_202B_202E(NavInstruction.Teleport P_0) - { - return P_0.ExpectedTerritory; - } - - static EAetheryteLocation _206B_202B_200E_200F_206F_202E_202E_206B_202B_206C_202C_206B_202A_202A_206C_202A_206E_202A_206B_200B_202C_200C_202D_200D_206F_206C_200D_206F_202D_202E_200D_200D_200C_200D_200E_206D_200D_202B_202B_206E_202E(NavInstruction.AethernetHop P_0) - { - return P_0.From; - } - - static string _206B_200E_200C_206D_202D_206F_200D_206D_206C_202D_200D_200B_202C_206D_206A_206E_206E_200E_206F_206E_206A_202B_202C_200E_200C_202E_206A_206C_200B_206A_202A_202B_202A_200F_202B_200E_200E_206F_202B_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static EAetheryteLocation _202D_200C_200C_202A_206A_206F_200D_202A_206D_202B_200B_202C_200F_200E_202C_206D_200D_202D_206F_202A_202B_202E_202A_206C_206D_202D_206D_202D_202C_202D_200D_200C_202E_202D_202B_202A_206D_206D_206E_202B_202E(NavInstruction.AethernetHop P_0) - { - return P_0.From; - } - - static EAetheryteLocation _200F_200D_200D_200B_206A_200F_206F_202B_206A_206A_206F_200B_200E_206B_202A_200F_206E_200E_200F_202D_200B_206F_200C_206D_202B_206E_200C_200E_202B_200F_200B_200B_206E_202E_200C_206B_206E_202C_200F_200C_202E(NavInstruction.AethernetHop P_0) - { - return P_0.To; - } - - static bool _200D_206A_202B_202B_202C_206D_206B_202A_206B_206B_202D_206C_206B_200B_202A_206A_202E_200E_202E_200B_202C_206F_206C_206C_202D_206E_206F_206E_206E_200D_206C_200B_206E_202E_202D_206E_202B_200C_202D_200E_202E(NavInstruction.Move P_0) - { - return P_0.IsFinal; - } - - static Vector3? _206D_206D_206F_202D_202B_200C_206A_200F_206F_202B_200B_200C_200D_202E_200D_202B_200E_206A_200E_200F_202D_202E_206E_200C_206D_200F_202B_202A_206D_200C_202C_206B_202A_206B_202E_200B_206B_200B_206F_206C_202E(QuestStep P_0) - { - return P_0.Position; - } - - static Vector3 _206D_206D_206E_202B_206B_202B_200C_202B_202D_200B_200B_200C_200F_200E_202D_200D_200B_206B_200E_200B_202E_200D_202C_202E_200B_202C_200C_202C_200F_200C_202A_200B_206E_206F_206D_200F_206C_202E_202B_202E(NavInstruction.Move P_0) - { - return P_0.Position; - } - - static bool _206B_206D_200D_206D_206D_200C_206F_206D_206F_202E_206E_206A_202B_200C_206F_200B_200F_202D_206E_206E_206B_202B_206A_206D_200D_206C_206E_200B_206B_206B_202B_206F_200F_200C_202E_200C_206B_200D_200B_202B_202E(NavInstruction.Move P_0) - { - return P_0.Fly; - } - - static bool? _206D_202B_206F_206D_206D_202E_206D_202E_200F_200E_206C_206B_202E_206F_202D_206B_200E_200D_200F_202C_202A_206B_206A_200C_200C_206B_202E_202B_200C_202E_206C_206F_206C_200C_200C_206C_206D_206B_200B_206E_202E(QuestStep P_0) - { - return P_0.Fly; - } - - static bool? _202C_206C_200C_200C_206B_200E_202C_200F_206C_202C_206F_202A_200B_202A_200C_206E_206A_200D_206C_200D_202A_206D_206C_206D_202E_206F_202A_206B_200F_206F_202B_202E_206A_202C_200E_206D_206E_206A_200D_206A_202E(QuestStep P_0) - { - return P_0.Land; - } - - static string _206F_202D_200D_202B_202C_206B_206B_200C_200C_206F_202D_200C_206B_202D_206E_202D_202A_206A_206F_206D_200E_202E_200B_202D_206E_206C_200E_202A_206D_206D_202E_202E_200D_200F_200E_200F_200E_202E_200C_206D_202E(NavInstruction.Move P_0) - { - return P_0.TargetNodeId; - } - - static string _206B_200F_202D_206E_200D_206A_206A_206F_200F_200D_202A_202C_206E_206F_202B_206C_206F_206A_206D_200E_202B_206A_202C_206B_206D_206D_202A_206C_200E_206D_200B_200E_206F_206A_206A_206F_200C_200B_206D_200C_202E(NavInstruction.Move P_0) - { - return P_0.ApproachNodeId; - } - - static ushort _202C_202B_202D_202A_202D_200C_206E_200D_202E_200F_206C_202D_202A_202C_200B_202C_206D_200C_200E_206C_206E_200E_202D_206D_206F_202B_206D_206B_200E_206F_202B_206F_206A_202E_202C_200F_202E_206F_202B_202E_202E(NavInstruction.Move P_0) - { - return P_0.Territory; - } - - static bool? _206D_206E_200B_206A_202B_202B_200B_200D_200D_200E_202E_206B_206C_202E_200B_202A_206B_206E_202C_206A_206B_200D_200C_206A_200B_206A_206D_206F_206A_200B_206E_206A_202C_200B_202B_206C_200C_200F_200F_202E_202E(NavInstruction.Move P_0) - { - return P_0.Mount; - } - - static float? _206F_200C_200E_206D_202C_206C_206D_200C_206C_206B_206D_206D_206F_206F_202D_200E_206B_202B_200F_200B_202C_206E_206D_202C_202B_202C_206A_206D_206B_200D_202B_200B_206C_200F_202C_202A_200E_202D_206E_202A_202E(NavInstruction.Move P_0) - { - return P_0.StopDistance; - } - - static uint? _206C_200D_202D_200B_202D_202D_206B_206C_200C_206B_202A_206F_200E_200C_202D_206B_206F_206C_200B_200B_202A_200D_200F_202D_206B_206F_206D_206D_202A_206A_202D_200B_200B_200F_206B_202D_200F_200C_202B_202E(NavInstruction.Move P_0) - { - return P_0.DataId; - } - - static bool _200F_202C_202E_202E_206E_200D_206D_206C_206D_202A_202E_206F_202B_206F_202E_200E_202C_200F_206D_200F_206E_206F_202D_206E_202B_206C_206C_206B_202E_202D_202E_206C_202B_206E_200E_206A_206B_206E_206C_202B_202E(NavInstruction.Move P_0) - { - return P_0.DisableNavmesh; - } - - static bool _200D_200F_206A_206A_202B_200E_200F_200D_202C_202B_202D_206C_200C_200B_200D_202E_202E_206F_200F_202C_202A_206D_200B_200F_200E_206E_206D_206E_202B_202C_206C_200D_206B_206A_202A_202E_202E_206D_206B_202B_202E(NavInstruction.Move P_0) - { - return P_0.LandAtTarget; - } - - static bool _200D_206B_200F_206E_202A_200C_206F_206A_206E_200B_206E_200E_202A_200D_200B_202B_202C_206C_202A_206C_200E_202C_202E_206E_200D_202E_206C_200F_200E_200C_206C_206F_202D_202B_206E_202E_200B_202E_206E_202B_202E(NavInstruction.Move P_0) - { - return P_0.AllowZoneTransition; - } - - static string _206D_202A_206A_206C_202E_202D_206F_200B_200E_202B_206B_202C_200C_206B_200B_202D_206B_206A_206D_206A_200D_206A_202E_202C_202A_206B_202D_206E_200D_200E_206C_202B_206A_200F_206E_206A_206B_206D_206D_200C_202E(NavInstruction.WaitForTerritory P_0) - { - return P_0.Description; - } - - static uint _206A_200E_206B_206D_206C_200C_202A_206A_202B_206D_202E_206E_206E_200B_200B_206A_200C_200F_200F_206E_200D_200E_202E_200C_200E_206C_202B_200E_200F_202B_200E_206D_206D_206C_206C_202D_200E_206D_202D_202B_202E(NavInstruction.InteractWarp P_0) - { - return P_0.NpcDataId; - } - - static uint _206A_202E_206D_202B_202E_202B_206D_200B_206D_202D_200F_206A_200E_206B_206E_206C_202D_202D_200E_200F_206A_200C_200B_200D_200E_200F_202C_202E_202D_206E_206D_200F_202A_200E_206B_202C_202D_206A_206F_206A_202E(NavInstruction.InteractWarp P_0) - { - return P_0.WarpRowId; - } - - static ushort _202E_200E_200D_200B_202C_200E_206D_202D_202A_200D_200D_202C_202B_206E_206E_206F_206C_206A_206D_202C_202B_202C_200D_206E_206A_200D_202C_206F_200F_206D_202A_200D_202B_200E_206C_206E_200E_206E_200B_200F_202E(NavInstruction.InteractWarp P_0) - { - return P_0.FromTerritory; - } - - static ushort _200F_200F_202C_202D_206D_202B_200F_200E_200B_202E_206A_202E_206C_202C_206F_202D_200F_202E_200D_206F_200D_200C_206C_202D_200E_206C_206A_206A_206F_206F_206F_200B_200C_206C_202A_200E_202C_206D_200F_206F_202E(NavInstruction.InteractWarp P_0) - { - return P_0.ToTerritory; - } - - static uint _202C_200C_206C_202B_200F_200E_200F_202B_200D_200E_200D_206B_206B_200B_200E_206C_202C_206F_200B_202A_206F_200E_202C_200E_200E_206D_200D_202E_200E_206F_206F_206E_202D_202A_206F_206C_206C_200C_202E_206C_202E(NavInstruction.UseTeleportTicket P_0) - { - return P_0.ItemId; - } - - static ushort _200E_206F_206B_200E_200E_206C_206A_206C_206B_206E_200E_200B_206A_200B_200F_202B_202D_206E_200C_206D_206E_206C_200B_206B_206A_206D_206F_206D_200C_200D_202D_206E_202D_202E_206D_202C_200B_202A_206D_200E_202E(NavInstruction.UseTeleportTicket P_0) - { - return P_0.Territory; - } - - static Vector3 _200B_200F_202E_206F_202C_206B_206F_206F_206D_200C_202C_206C_202D_200E_206D_206F_200F_206F_206A_200C_200F_206B_202B_206A_200B_200E_200B_202B_202B_206E_200D_200C_202D_206E_200D_200D_202D_206E_200F_200E_202E(NavInstruction.SubRegionTransport P_0) - { - return P_0.From; - } - - static Vector3 _202B_202D_202B_206A_200B_202B_200D_200F_206B_202B_202C_202B_200C_200D_202A_200E_200B_200B_206F_206B_202C_202E_202C_206B_206C_206B_202B_200D_206B_202B_206C_200C_206D_202D_202B_206F_206C_200F_202B_200F_202E(NavInstruction.SubRegionTransport P_0) - { - return P_0.To; - } - - static ushort _202C_202B_206C_206F_206D_200E_200C_200E_202D_206A_200B_206A_202A_202C_202A_200B_206A_202B_202A_202B_202D_200E_200D_200B_206F_206E_206D_206E_202B_202A_202C_200F_202E_202A_200F_206E_206A_206A_206C_200C_202E(NavInstruction.SubRegionTransport P_0) - { - return P_0.Territory; - } - - static InvalidOperationException _202A_200D_206A_200C_206F_202A_202E_200D_206C_202A_200C_206E_202C_206D_202E_206D_200E_200C_206F_202C_206A_202C_206B_200E_206C_206A_202A_206A_200B_206F_206D_200F_200C_200B_200F_200F_206B_200C_206D_206F_202E(string P_0) - { - return new InvalidOperationException(P_0); - } - - static NotSupportedException _200D_206C_200B_202A_206E_206C_202D_202A_206D_200F_200B_206A_200D_200E_202E_206D_202B_206D_206F_202B_202C_202A_206F_200F_200E_206C_202B_206E_202E_200F_202E_206D_200D_206D_200E_206A_202D_206B_206A_202E() - { - return new NotSupportedException(); - } - } - - [CompilerGenerated] - private sealed class _003CMapInstructions_003Ed__3 : IEnumerable<ITask>, IEnumerable, IEnumerator<ITask>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ITask _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - public SmartNavTaskMapper _003C_003E4__this; - - private IReadOnlyList<NavInstruction> instructions; - - public IReadOnlyList<NavInstruction> _003C_003E3__instructions; - - private QuestStep step; - - public QuestStep _003C_003E3__step; - - private int _003Ci_003E5__2; - - private IEnumerator<ITask> _003C_003E7__wrap2; - - ITask IEnumerator<ITask>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CMapInstructions_003Ed__3(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _200B_202D_202E_202B_206C_202D_200C_200E_202A_206A_206A_200D_200E_202D_200D_202D_200B_206E_200D_206B_202C_206D_206B_206A_206A_202C_200C_206E_200E_202E_206B_206C_200D_206A_200F_206E_200E_206A_206B_206E_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num == -3) ? (-740261980) : (-740261977)); - while (true) - { - int num3 = num2; - int num4 = -740261978; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - default: - continue; - case 0: - num2 = -740261977; - continue; - case 1: - if (num == 1) - { - num2 = -740261980; - continue; - } - break; - case 2: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E7__wrap2 = null; - _003C_003E1__state = -2; - } - - private bool MoveNext() - { - try - { - int num = _003C_003E1__state; - SmartNavTaskMapper smartNavTaskMapper = _003C_003E4__this; - int num2 = ((num == 0) ? (-1350511493) : (-1350511497)); - while (true) - { - int num3 = num2; - int num4 = -1350511502; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 10: - _003C_003E1__state = -3; - num2 = -1350511501; - break; - case 5: - num2 = ((num == 1) ? (-1350511496) : (-1350511499)); - break; - case 3: - _003C_003E7__wrap2 = smartNavTaskMapper.Map(instructions[_003Ci_003E5__2], NextTravelInstruction(instructions, _003Ci_003E5__2), step).GetEnumerator(); - _003C_003E1__state = -3; - num2 = -1350511501; - break; - case 7: - return false; - case 4: - { - ITask current = _003C_003E7__wrap2.Current; - _003C_003E2__current = current; - _003C_003E1__state = 1; - return true; - } - case 9: - _003C_003E1__state = -1; - _003Ci_003E5__2 = 0; - num2 = -1350511500; - break; - case 8: - { - _003C_003Em__Finally1(); - _003C_003E7__wrap2 = null; - int num8 = _003Ci_003E5__2; - num4 = 1; - num5 = num8; - _003Ci_003E5__2 = (num5 | num4) + (num5 & num4); - num2 = -1350511500; - break; - } - case 6: - num2 = ((_003Ci_003E5__2 < instructions.Count) ? (-1350511503) : (-1350511504)); - break; - case 1: - num2 = (_200E_206A_206C_206D_202D_202E_200C_206C_200C_200F_200C_202E_200C_202A_206A_202D_202C_202B_206E_200F_202C_200E_200B_202A_200B_206E_206F_200F_202B_200D_206A_202B_200F_200D_206F_200F_200D_206B_202D_206D_202E((IEnumerator)_003C_003E7__wrap2) ? (-1350511498) : (-1350511494)); - break; - case 0: - num2 = -1350511497; - break; - case 2: - return false; - } - } - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - int num = ((_003C_003E7__wrap2 == null) ? 466494635 : 466494632); - while (true) - { - int num2 = num; - int num3 = 466494634; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return; - case 2: - _206F_200D_206F_200D_202A_206A_202A_202B_206A_206F_206D_206F_200B_202D_202A_200B_200C_202D_206D_200D_200E_206E_206E_206E_206D_200E_200E_200F_206F_206A_202C_200C_200D_206C_200D_200D_206A_202C_202B_206D_202E((IDisposable)_003C_003E7__wrap2); - num = 466494635; - break; - case 0: - num = 466494632; - break; - } - } - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _202E_206C_200C_202A_206C_206F_202C_200F_200D_206D_206E_202D_206C_202A_206F_206E_200F_206A_200C_202D_200D_206B_202C_202C_206F_206D_202B_200F_200B_200C_202C_200C_202A_202E_200F_202E_206D_206B_202C_206B_202E(); - } - - [DebuggerHidden] - IEnumerator<ITask> IEnumerable<ITask>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? (-145160428) : (-145160427)); - _003CMapInstructions_003Ed__3 _003CMapInstructions_003Ed__ = default(_003CMapInstructions_003Ed__3); - while (true) - { - int num2 = num; - int num3 = -145160428; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _003CMapInstructions_003Ed__ = new _003CMapInstructions_003Ed__3(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = -145160432; - break; - case 1: - num = ((_003C_003El__initialThreadId != _200B_202D_202E_202B_206C_202D_200C_200E_202A_206A_206A_200D_200E_202D_200D_202D_200B_206E_200D_206B_202C_206D_206B_206A_206A_202C_200C_206E_200E_202E_206B_206C_200D_206A_200F_206E_200E_206A_206B_206E_202E()) ? (-145160428) : (-145160425)); - break; - case 3: - _003C_003E1__state = 0; - _003CMapInstructions_003Ed__ = this; - num = -145160432; - break; - case 2: - num = -145160427; - break; - case 4: - _003CMapInstructions_003Ed__.instructions = _003C_003E3__instructions; - _003CMapInstructions_003Ed__.step = _003C_003E3__step; - return _003CMapInstructions_003Ed__; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ITask>)this).GetEnumerator(); - } - - static int _200B_202D_202E_202B_206C_202D_200C_200E_202A_206A_206A_200D_200E_202D_200D_202D_200B_206E_200D_206B_202C_206D_206B_206A_206A_202C_200C_206E_200E_202E_206B_206C_200D_206A_200F_206E_200E_206A_206B_206E_202E() - { - return Environment.CurrentManagedThreadId; - } - - static bool _200E_206A_206C_206D_202D_202E_200C_206C_200C_200F_200C_202E_200C_202A_206A_202D_202C_202B_206E_200F_202C_200E_200B_202A_200B_206E_206F_200F_202B_200D_206A_202B_200F_200D_206F_200F_200D_206B_202D_206D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206F_200D_206F_200D_202A_206A_202A_202B_206A_206F_206D_206F_200B_202D_202A_200B_200C_202D_206D_200D_200E_206E_206E_206E_206D_200E_200E_200F_206F_206A_202C_200C_200D_206C_200D_200D_206A_202C_202B_206D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static NotSupportedException _202E_206C_200C_202A_206C_206F_202C_200F_200D_206D_206E_202D_206C_202A_206F_206E_200F_206A_200C_202D_200D_206B_202C_202C_206F_206D_202B_200F_200B_200C_202C_200C_202A_202E_200F_202E_206D_206B_202C_206B_202E() - { - return new NotSupportedException(); - } - } - - [IteratorStateMachine(typeof(_003CMapInstructions_003Ed__3))] public IEnumerable<ITask> MapInstructions(IReadOnlyList<NavInstruction> instructions, QuestStep? step = null) { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CMapInstructions_003Ed__3(-2) + for (int i = 0; i < instructions.Count; i++) { - _003C_003E4__this = this, - _003C_003E3__instructions = instructions, - _003C_003E3__step = step - }; + foreach (ITask item in Map(instructions[i], NextTravelInstruction(instructions, i), step)) + { + yield return item; + } + } } private static NavInstruction? NextTravelInstruction(IReadOnlyList<NavInstruction> instructions, int i) { - int num = 1; - int num2 = i; - int num3 = (num2 | num) + (num2 & num); - int num4 = -874356063; - bool flag = default(bool); - NavInstruction navInstruction = default(NavInstruction); - while (true) + for (int j = i + 1; j < instructions.Count; j++) { - int num5 = num4; - num = -874356060; - num2 = num5; - switch ((num2 | num) - (num2 & num)) + NavInstruction navInstruction = instructions[j]; + if ((!(navInstruction is NavInstruction.Land) && !(navInstruction is NavInstruction.Unmount) && !(navInstruction is NavInstruction.WaitForTerritory) && !(navInstruction is NavInstruction.WaitForNavmesh)) || 1 == 0) { - case 7: - flag = true; - num4 = -874356058; - break; - case 4: - num4 = ((navInstruction is NavInstruction.Unmount) ? (-874356061) : (-874356059)); - break; - case 6: - return null; - case 10: - navInstruction = instructions[num3]; - num4 = ((navInstruction is NavInstruction.Land) ? (-874356061) : (-874356064)); - break; - case 3: - { - int num6 = num3; - num = 1; - num2 = num6; - num3 = (num2 | num) + (num2 & num); - num4 = -874356063; - break; - } - case 11: - num4 = ((!(navInstruction is NavInstruction.WaitForNavmesh)) ? (-874356051) : (-874356061)); - break; - case 2: - num4 = (flag ? (-874356057) : (-874356052)); - break; - case 9: - flag = false; - num4 = -874356058; - break; - case 0: - num4 = -874356063; - break; - case 8: - return instructions[num3]; - case 1: - num4 = ((navInstruction is NavInstruction.WaitForTerritory) ? (-874356061) : (-874356049)); - break; - case 5: - num4 = ((num3 < instructions.Count) ? (-874356050) : (-874356062)); - break; + return instructions[j]; } } + return null; } private IEnumerable<ITask> Map(NavInstruction instruction, NavInstruction? nextTravel, QuestStep? step) { - bool? flag = default(bool?); - NavInstruction.AethernetHop aethernetHop = default(NavInstruction.AethernetHop); - NavInstruction.SubRegionTransport subRegionTransport = default(NavInstruction.SubRegionTransport); - bool? sprint = default(bool?); - NavInstruction.Move move = default(NavInstruction.Move); - NavInstruction.InteractWarp interactWarp = default(NavInstruction.InteractWarp); - NavInstruction.UseTeleportTicket useTeleportTicket = default(NavInstruction.UseTeleportTicket); - while (true) + NavInstruction.Teleport teleport = instruction as NavInstruction.Teleport; + if ((object)teleport == null) { - NavInstruction.Teleport teleport = instruction as NavInstruction.Teleport; - int num = (((object)teleport != null) ? 866335783 : 866335787); - NavInstruction.WaitForTerritory waitForTerritory = default(NavInstruction.WaitForTerritory); - while (true) + if (!(instruction is NavInstruction.AethernetHop aethernetHop)) { - int num2 = num; - int num3 = 866335753; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (!(instruction is NavInstruction.Move move)) { - default: - continue; - case 40: - yield return new WaitCondition.Task(() => _003C_003Ec__DisplayClass5_0._206A_200B_206C_206E_200B_202D_206C_202C_202E_206B_206F_200D_206D_200F_202A_200D_202C_206E_200F_202B_206C_202E_202E_206B_202A_206D_206B_200C_202C_206D_206C_206D_200E_206A_206D_200B_206D_202B_202D_200F_202E(waitForTerritory).Contains(_003C_003Ec__DisplayClass5_0._202E_200E_206E_206A_206D_200E_206E_206D_206F_200B_206D_202C_206F_206B_202C_200D_206B_206A_206A_200E_202B_206F_200F_206C_202E_202E_202A_206C_202C_206F_202D_206B_206D_202E_202D_206C_200F_206F_206B_206B_202E(clientState)), _003CMap_003Ed__5._206D_202A_206A_206C_202E_202D_206F_200B_200E_202B_206B_202C_200C_206B_200B_202D_206B_206A_206D_206A_200D_206A_202E_202C_202A_206B_202D_206E_200D_200E_206C_202B_206A_200F_206E_206A_206B_206D_206D_200C_202E(waitForTerritory)); - goto case 39; - case 19: - flag = _003CMap_003Ed__5._206D_202B_206F_206D_206D_202E_206D_202E_200F_200E_206C_206B_202E_206F_202D_206B_200E_200D_200F_202C_202A_206B_206A_200C_200C_206B_202E_202B_200C_202E_206C_206F_206C_200C_200C_206C_206D_206B_200B_206E_202E(step); - num = ((!flag.HasValue) ? 866335780 : 866335788); - continue; - case 33: - yield return new AethernetRide.Task(_003CMap_003Ed__5._202D_200C_200C_202A_206A_206F_200D_202A_206D_202B_200B_202C_200F_200E_202C_206D_200D_202D_206F_202A_202B_202E_202A_206C_206D_202D_206D_202D_202C_202D_200D_200C_202E_202D_202B_202A_206D_206D_206E_202B_202E(aethernetHop), _003CMap_003Ed__5._200F_200D_200D_200B_206A_200F_206F_202B_206A_206A_206F_200B_200E_206B_202A_200F_206E_200E_200F_202D_200B_206F_200C_206D_202B_206E_200C_200E_202B_200F_200B_200B_206E_202E_200C_206B_206E_202C_200F_200C_202E(aethernetHop)); - goto case 4; - case 43: - yield return new WaitCondition.Task(() => _003C_003Ec__DisplayClass5_0._202E_200E_206E_206A_206D_200E_206E_206D_206F_200B_206D_202C_206F_206B_202C_200D_206B_206A_206A_200E_202B_206F_200F_206C_202E_202E_202A_206C_202C_206F_202D_206B_206D_202E_202D_206C_200F_206F_206B_206B_202E(clientState) == _003C_003Ec__DisplayClass5_0._206A_202E_202D_200F_206A_200E_206A_200F_202A_206A_206F_206A_200C_206D_206E_202D_200B_206A_206D_206B_202C_206D_202D_200B_202A_206E_206F_200C_206C_200F_206B_206C_206A_202C_200B_206A_200B_202D_206B_202A_202E(teleport), _003CMap_003Ed__5._206B_200E_200C_206D_202D_206F_200D_206D_206C_202D_200D_200B_202C_206D_206A_206E_206E_200E_206F_206E_206A_202B_202C_200E_200C_202E_206A_206C_200B_206A_202A_202B_202A_200F_202B_200E_200E_206F_202B_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-344536108), territoryData.GetNameAndId(_003CMap_003Ed__5._206D_206B_200E_200F_200B_202E_206E_206F_200E_206D_206A_202E_200F_202D_206B_202D_206D_202A_202E_202A_206F_206E_200E_200F_200F_202B_200E_202E_202E_200E_206D_200F_202A_206D_206F_206B_200B_202C_200F_202B_202E(teleport)), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321))); - goto case 10; - case 25: - num = ((!AetheryteTeleport.MoveAwayFromAetheryteExecutor.AppliesTo(_003CMap_003Ed__5._206E_206E_206B_202A_206C_200B_206D_206E_202B_202D_200E_202B_206F_202B_202B_200C_200C_202B_206D_200D_202D_206B_206E_206A_206B_202C_206A_200E_202C_206E_206B_206A_206E_202D_200D_200B_202A_200B_202B_206B_202E(teleport))) ? 866335780 : 866335766); - continue; - case 3: - subRegionTransport = instruction as NavInstruction.SubRegionTransport; - num = (((object)subRegionTransport != null) ? 866335801 : 866335773); - continue; - case 32: - yield return new WaitNavmesh.Task(); - goto case 5; - case 14: - sprint = _003CMap_003Ed__5._202C_206C_200C_200C_206B_200E_202C_200F_206C_202C_206F_202A_200B_202A_200C_206E_206A_200D_206C_200D_202A_206D_206C_206D_202E_206F_202A_206B_200F_206F_202B_202E_206A_202C_200E_206D_206E_206A_200D_206A_202E(step); - num = ((!sprint.HasValue) ? 866335780 : 866335761); - continue; - case 30: - num = 866335780; - continue; - case 44: - num = 866335748; - continue; - case 18: - num = ((instruction is NavInstruction.WaitForNavmesh) ? 866335785 : 866335772); - continue; - case 7: - { - NavInstruction.Move move2 = move; - ushort territoryId = _003CMap_003Ed__5._202C_202B_202D_202A_202D_200C_206E_200D_202E_200F_206C_202D_202A_202C_200B_202C_206D_200C_200E_206C_206E_200E_202D_206D_206F_202B_206D_206B_200E_206F_202B_206F_206A_202E_202C_200F_202E_206F_202B_202E_202E(move2); - Vector3 destination2 = _003CMap_003Ed__5._206D_206D_206E_202B_206B_202B_200C_202B_202D_200B_200B_200C_200F_200E_202D_200D_200B_206B_200E_200B_202E_200D_202C_202E_200B_202C_200C_202C_200F_200C_202A_200B_206E_206F_206D_200F_206C_202E_202B_202E(move2); - bool? mount = _003CMap_003Ed__5._206D_206E_200B_206A_202B_202B_200B_200D_200D_200E_202E_206B_206C_202E_200B_202A_206B_206E_202C_206A_206B_200D_200C_206A_200B_206A_206D_206F_206A_200B_206E_206A_202C_200B_202B_206C_200C_200F_200F_202E_202E(move2); - float? stopDistance = _003CMap_003Ed__5._206F_200C_200E_206D_202C_206C_206D_200C_206C_206B_206D_206D_206F_206F_202D_200E_206B_202B_200F_200B_202C_206E_206D_202C_202B_202C_206A_206D_206B_200D_202B_200B_206C_200F_202C_202A_200E_202D_206E_202A_202E(move2); - uint? dataId = _003CMap_003Ed__5._206C_200D_202D_200B_202D_202D_206B_206C_200C_206B_202A_206F_200E_200C_202D_206B_206F_206C_200B_200B_202A_200D_200F_202D_206B_206F_206D_206D_202A_206A_202D_200B_200B_200F_206B_202D_200F_200C_202B_202E(move2); - bool disableNavmesh = _003CMap_003Ed__5._200F_202C_202E_202E_206E_200D_206D_206C_206D_202A_202E_206F_202B_206F_202E_200E_202C_200F_206D_200F_206E_206F_202D_206E_202B_206C_206C_206B_202E_202D_202E_206C_202B_206E_200E_206A_206B_206E_206C_202B_202E(move2); - bool fly = _003CMap_003Ed__5._206B_206D_200D_206D_206D_200C_206F_206D_206F_202E_206E_206A_202B_200C_206F_200B_200F_202D_206E_206E_206B_202B_206A_206D_200D_206C_206E_200B_206B_206B_202B_206F_200F_200C_202E_200C_206B_200D_200B_202B_202E(move2); - bool land = _003CMap_003Ed__5._200D_200F_206A_206A_202B_200E_200F_200D_202C_202B_202D_206C_200C_200B_200D_202E_202E_206F_200F_202C_202A_206D_200B_200F_200E_206E_206D_206E_202B_202C_206C_200D_206B_206A_202A_202E_202E_206D_206B_202B_202E(move2); - bool allowZoneTransition = _003CMap_003Ed__5._200D_206B_200F_206E_202A_200C_206F_206A_206E_200B_206E_200E_202A_200D_200B_202B_202C_206C_202A_206C_200E_202C_202E_206E_200D_202E_206C_200F_200E_200C_206C_206F_202D_202B_206E_202E_200B_202E_206E_202B_202E(move2); - string routeTargetNodeId = _003CMap_003Ed__5._206F_202D_200D_202B_202C_206B_206B_200C_200C_206F_202D_200C_206B_202D_206E_202D_202A_206A_206F_206D_200E_202E_200B_202D_206E_206C_200E_202A_206D_206D_202E_202E_200D_200F_200E_200F_200E_202E_200C_206D_202E(move2); - string routeApproachNodeId = _003CMap_003Ed__5._206B_200F_202D_206E_200D_206A_206A_206F_200F_200D_202A_202C_206E_206F_202B_206C_206F_206A_206D_200E_202B_206A_202C_206B_206D_206D_202A_206C_200E_206D_200B_200E_206F_206A_206A_206F_200C_200B_206D_200C_202E(move2); - sprint = null; - yield return new MoveTask(territoryId, destination2, mount, MountRequired: false, DismountRequired: false, stopDistance, dataId, disableNavmesh, sprint, fly, land, IgnoreDistanceToObject: false, RestartNavigation: true, EInteractionType.None, SmartNavRouted: true, allowZoneTransition, routeTargetNodeId, routeApproachNodeId); - goto case 9; + if (!(instruction is NavInstruction.Land)) + { + if (!(instruction is NavInstruction.Unmount)) + { + NavInstruction.WaitForTerritory waitForTerritory = instruction as NavInstruction.WaitForTerritory; + if ((object)waitForTerritory == null) + { + if (!(instruction is NavInstruction.WaitForNavmesh)) + { + if (!(instruction is NavInstruction.InteractWarp interactWarp)) + { + if (!(instruction is NavInstruction.UseTeleportTicket useTeleportTicket)) + { + if (!(instruction is NavInstruction.SubRegionTransport subRegionTransport)) + { + throw new InvalidOperationException($"Unmapped NavInstruction: {instruction}"); + } + yield return new SubRegionTransport.Task(subRegionTransport.From, subRegionTransport.To, subRegionTransport.Territory); + } + else + { + yield return new TicketTeleport.Task(useTeleportTicket.ItemId, useTeleportTicket.Territory); + } + } + else + { + yield return new WarpInteract.Task(interactWarp.NpcDataId, interactWarp.WarpRowId, interactWarp.FromTerritory, interactWarp.ToTerritory); + } + } + else + { + yield return new WaitNavmesh.Task(); + } + } + else + { + yield return new WaitCondition.Task(() => waitForTerritory.Acceptable.Contains(clientState.TerritoryType), waitForTerritory.Description); + } + } + else + { + yield return new Mount.UnmountTask(); + } + } + else + { + yield return new LandTask(); + } } - case 4: - num = 866335780; - continue; - case 2: - break; - case 26: - yield return new WarpInteract.Task(_003CMap_003Ed__5._206A_200E_206B_206D_206C_200C_202A_206A_202B_206D_202E_206E_206E_200B_200B_206A_200C_200F_200F_206E_200D_200E_202E_200C_200E_206C_202B_200E_200F_202B_200E_206D_206D_206C_206C_202D_200E_206D_202D_202B_202E(interactWarp), _003CMap_003Ed__5._206A_202E_206D_202B_202E_202B_206D_200B_206D_202D_200F_206A_200E_206B_206E_206C_202D_202D_200E_200F_206A_200C_200B_200D_200E_200F_202C_202E_202D_206E_206D_200F_202A_200E_206B_202C_202D_206A_206F_206A_202E(interactWarp), _003CMap_003Ed__5._202E_200E_200D_200B_202C_200E_206D_202D_202A_200D_200D_202C_202B_206E_206E_206F_206C_206A_206D_202C_202B_202C_200D_206E_206A_200D_202C_206F_200F_206D_202A_200D_202B_200E_206C_206E_200E_206E_200B_200F_202E(interactWarp), _003CMap_003Ed__5._200F_200F_202C_202D_206D_202B_200F_200E_200B_202E_206A_202E_206C_202C_206F_202D_200F_202E_200D_206F_200D_200C_206C_202D_200E_206C_206A_206A_206F_206F_206F_200B_200C_206C_202A_200E_202C_206D_200F_206F_202E(interactWarp)); - goto case 15; - case 48: - yield return new SubRegionTransport.Task(_003CMap_003Ed__5._200B_200F_202E_206F_202C_206B_206F_206F_206D_200C_202C_206C_202D_200E_206D_206F_200F_206F_206A_200C_200F_206B_202B_206A_200B_200E_200B_202B_202B_206E_200D_200C_202D_206E_200D_200D_202D_206E_200F_200E_202E(subRegionTransport), _003CMap_003Ed__5._202B_202D_202B_206A_200B_202B_200D_200F_206B_202B_202C_202B_200C_200D_202A_200E_200B_200B_206F_206B_202C_202E_202C_206B_206C_206B_202B_200D_206B_202B_206C_200C_206D_202D_202B_206F_206C_200F_202B_200F_202E(subRegionTransport), _003CMap_003Ed__5._202C_202B_206C_206F_206D_200E_200C_200E_202D_206A_200B_206A_202A_202C_202A_200B_206A_202B_202A_202B_202D_200E_200D_200B_206F_206E_206D_206E_202B_202A_202C_200F_202E_202A_200F_206E_206A_206A_206C_200C_202E(subRegionTransport)); - goto case 12; - case 17: - waitForTerritory = instruction as NavInstruction.WaitForTerritory; - num = (((object)waitForTerritory != null) ? 866335777 : 866335771); - continue; - case 29: - num = 866335780; - continue; - case 37: - num = ((flag != true) ? 866335780 : 866335751); - continue; - case 27: - num = ((instruction is NavInstruction.Land) ? 866335789 : 866335745); - continue; - case 41: - yield return new TicketTeleport.Task(_003CMap_003Ed__5._202C_200C_206C_202B_200F_200E_200F_202B_200D_200E_200D_206B_206B_200B_200E_206C_202C_206F_200B_202A_206F_200E_202C_200E_200E_206D_200D_202E_200E_206F_206F_206E_202D_202A_206F_206C_206C_200C_202E_206C_202E(useTeleportTicket), _003CMap_003Ed__5._200E_206F_206B_200E_200E_206C_206A_206C_206B_206E_200E_200B_206A_200B_200F_202B_202D_206E_200C_206D_206E_206C_200B_206B_206A_206D_206F_206D_200C_200D_202D_206E_202D_202E_206D_202C_200B_202A_206D_200E_202E(useTeleportTicket)); - goto case 29; - case 24: - num = ((sprint != true) ? 866335780 : 866335769); - continue; - case 20: - num = 866335786; - continue; - case 13: - yield break; - case 11: - num = 866335780; - continue; - case 5: - num = 866335780; - continue; - case 15: - num = 866335780; - continue; - case 45: - yield break; - case 12: - num = 866335780; - continue; - case 1: - move = instruction as NavInstruction.Move; - num = (((object)move != null) ? 866335791 : 866335762); - continue; - case 0: + else if (move.IsFinal && step != null) { - Vector3 destination = _003CMap_003Ed__5._206D_206D_206F_202D_202B_200C_206A_200F_206F_202B_200B_200C_200D_202E_200D_202B_200E_206A_200E_200F_202D_202E_206E_200C_206D_200F_202B_202A_206D_200C_202C_206B_202A_206B_202E_200B_206B_200B_206F_206C_202E(step) ?? _003CMap_003Ed__5._206D_206D_206E_202B_206B_202B_200C_202B_202D_200B_200B_200C_200F_200E_202D_200D_200B_206B_200E_200B_202E_200D_202C_202E_200B_202C_200C_202C_200F_200C_202A_200B_206E_206F_206D_200F_206C_202E_202B_202E(move); + Vector3 destination = step.Position ?? move.Position; yield return new MoveTask(step, destination)with { - Fly = (_003CMap_003Ed__5._206B_206D_200D_206D_206D_200C_206F_206D_206F_202E_206E_206A_202B_200C_206F_200B_200F_202D_206E_206E_206B_202B_206A_206D_200D_206C_206E_200B_206B_206B_202B_206F_200F_200C_202E_200C_206B_200D_200B_202B_202E(move) || _003CMap_003Ed__5._206D_202B_206F_206D_206D_202E_206D_202E_200F_200E_206C_206B_202E_206F_202D_206B_200E_200D_200F_202C_202A_206B_206A_200C_200C_206B_202E_202B_200C_202E_206C_206F_206C_200C_200C_206C_206D_206B_200B_206E_202E(step) == true), - Land = (_003CMap_003Ed__5._206B_206D_200D_206D_206D_200C_206F_206D_206F_202E_206E_206A_202B_200C_206F_200B_200F_202D_206E_206E_206B_202B_206A_206D_200D_206C_206E_200B_206B_206B_202B_206F_200F_200C_202E_200C_206B_200D_200B_202B_202E(move) || _003CMap_003Ed__5._202C_206C_200C_200C_206B_200E_202C_200F_206C_202C_206F_202A_200B_202A_200C_206E_206A_200D_206C_200D_202A_206D_206C_206D_202E_206F_202A_206B_200F_206F_202B_202E_206A_202C_200E_206D_206E_206A_200D_206A_202E(step) == true), + Fly = (move.Fly || step.Fly == true), + Land = (move.Fly || step.Land == true), SmartNavRouted = true, - RouteTargetNodeId = _003CMap_003Ed__5._206F_202D_200D_202B_202C_206B_206B_200C_200C_206F_202D_200C_206B_202D_206E_202D_202A_206A_206F_206D_200E_202E_200B_202D_206E_206C_200E_202A_206D_206D_202E_202E_200D_200F_200E_200F_200E_202E_200C_206D_202E(move), - RouteApproachNodeId = _003CMap_003Ed__5._206B_200F_202D_206E_200D_206A_206A_206F_200F_200D_202A_202C_206E_206F_202B_206C_206F_206A_206D_200E_202B_206A_202C_206B_206D_206D_202A_206C_200E_206D_200B_200E_206F_206A_206A_206F_200C_200B_206D_200C_202E(move) + RouteTargetNodeId = move.TargetNodeId, + RouteApproachNodeId = move.ApproachNodeId }; - goto case 28; + if (step != null) + { + bool? fly = step.Fly; + if (fly.HasValue && fly == true && (step.Land ?? false)) + { + yield return new LandTask(); + } + } } - case 46: - yield return new AetheryteTeleport.Task(_003CMap_003Ed__5._206E_206E_206B_202A_206C_200B_206D_206E_202B_202D_200E_202B_206F_202B_202B_200C_200C_202B_206D_200D_202D_206B_206E_206A_206B_202C_206A_200E_202C_206E_206B_206A_206E_202D_200D_200B_202A_200B_202B_206B_202E(teleport), _003CMap_003Ed__5._206D_206B_200E_200F_200B_202E_206E_206F_200E_206D_206A_202E_200F_202D_206B_202D_206D_202A_202E_202A_206F_206E_200E_200F_200F_202B_200E_202E_202E_200E_206D_200F_202A_206D_206F_206B_200B_202C_200F_202B_202E(teleport)); - goto case 25; - case 39: - num = 866335780; - continue; - case 22: - yield return new Mount.UnmountTask(); - goto case 30; - case 6: - num = ((step == null) ? 866335758 : 866335753); - continue; - case 38: - num = ((!_003CMap_003Ed__5._200D_206A_202B_202B_202C_206D_206B_202A_206B_206B_202D_206C_206B_200B_202A_206A_202E_200E_202E_200B_202C_206F_206C_206C_202D_206E_206F_206E_206E_200D_206C_200B_206E_202E_202D_206E_202B_200C_202D_200E_202E(move)) ? 866335758 : 866335759); - continue; - case 23: - useTeleportTicket = instruction as NavInstruction.UseTeleportTicket; - num = (((object)useTeleportTicket != null) ? 866335776 : 866335754); - continue; - case 16: - yield return new LandTask(); - goto case 47; - case 31: + else { - NavInstruction.AethernetHop obj = nextTravel as NavInstruction.AethernetHop; - num = (((((object)obj != null) ? new EAetheryteLocation?(_003CMap_003Ed__5._206B_202B_200E_200F_206F_202E_202E_206B_202B_206C_202C_206B_202A_202A_206C_202A_206E_202A_206B_200B_202C_200C_202D_200D_206F_206C_200D_206F_202D_202E_200D_200D_200C_200D_200E_206D_200D_202B_202B_206E_202E(obj)) : ((EAetheryteLocation?)null)) == _003CMap_003Ed__5._206E_206E_206B_202A_206C_200B_206D_206E_202B_202D_200E_202B_206F_202B_202B_200C_200C_202B_206D_200D_202D_206B_206E_206A_206B_202C_206A_200E_202C_206E_206B_206A_206E_202D_200D_200B_202A_200B_202B_206B_202E(teleport)) ? 866335780 : 866335778); - continue; + NavInstruction.Move move2 = move; + ushort territory = move2.Territory; + Vector3 position = move2.Position; + bool? mount = move2.Mount; + float? stopDistance = move2.StopDistance; + uint? dataId = move2.DataId; + bool disableNavmesh = move2.DisableNavmesh; + bool fly2 = move2.Fly; + bool landAtTarget = move2.LandAtTarget; + bool allowZoneTransition = move2.AllowZoneTransition; + string targetNodeId = move2.TargetNodeId; + string approachNodeId = move2.ApproachNodeId; + yield return new MoveTask(territory, position, mount, MountRequired: false, DismountRequired: false, stopDistance, dataId, disableNavmesh, null, fly2, landAtTarget, IgnoreDistanceToObject: false, RestartNavigation: true, EInteractionType.None, SmartNavRouted: true, allowZoneTransition, targetNodeId, approachNodeId); } - case 42: - num = 866335780; - continue; - case 9: - num = 866335780; - continue; - case 21: - interactWarp = instruction as NavInstruction.InteractWarp; - num = (((object)interactWarp != null) ? 866335763 : 866335774); - continue; - case 28: - num = ((step == null) ? 866335780 : 866335770); - continue; - case 47: - num = 866335780; - continue; - case 35: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(25, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-82937501)); - defaultInterpolatedStringHandler.AppendFormatted(instruction); - throw _003CMap_003Ed__5._202A_200D_206A_200C_206F_202A_202E_200D_206C_202A_200C_206E_202C_206D_202E_206D_200E_200C_206F_202C_206A_202C_206B_200E_206C_206A_202A_206A_200B_206F_206D_200F_200C_200B_200F_200F_206B_200C_206D_206F_202E(defaultInterpolatedStringHandler.ToStringAndClear()); - } - case 36: - yield return new LandTask(); - goto case 11; - case 8: - num = ((instruction is NavInstruction.Unmount) ? 866335775 : 866335768); - continue; - case 34: - aethernetHop = instruction as NavInstruction.AethernetHop; - num = (((object)aethernetHop != null) ? 866335784 : 866335752); - continue; - case 10: - yield return new AetheryteTeleport.MoveAwayFromAetheryte(_003CMap_003Ed__5._206E_206E_206B_202A_206C_200B_206D_206E_202B_202D_200E_202B_206F_202B_202B_200C_200C_202B_206D_200D_202D_206B_206E_206A_206B_202C_206A_200E_202C_206E_206B_206A_206E_202D_200D_200B_202A_200B_202B_206B_202E(teleport)); - goto case 42; - } - break; } + else + { + yield return new AethernetRide.Task(aethernetHop.From, aethernetHop.To); + } + yield break; + } + yield return new AetheryteTeleport.Task(teleport.Target, teleport.ExpectedTerritory); + if (AetheryteTeleport.MoveAwayFromAetheryteExecutor.AppliesTo(teleport.Target) && (nextTravel as NavInstruction.AethernetHop)?.From != teleport.Target) + { + yield return new WaitCondition.Task(() => clientState.TerritoryType == teleport.ExpectedTerritory, "Wait(territory: " + territoryData.GetNameAndId(teleport.ExpectedTerritory) + ")"); + yield return new AetheryteTeleport.MoveAwayFromAetheryte(teleport.Target); } } } diff --git a/Questionable/Questionable.Navigation/WarpRecordingService.cs b/Questionable/Questionable.Navigation/WarpRecordingService.cs index b505119..96033f4 100644 --- a/Questionable/Questionable.Navigation/WarpRecordingService.cs +++ b/Questionable/Questionable.Navigation/WarpRecordingService.cs @@ -1,11 +1,7 @@ using System; -using System.Collections; using System.Collections.Generic; using System.IO; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; -using System.Threading; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Hooking; @@ -36,317 +32,9 @@ internal sealed class WarpRecordingService : IDisposable JumpSettling } - public sealed record WarpCapture(uint WarpRowId, string WarpName, uint? NpcDataId, ushort SourceTerritoryId, Vector3 SourcePosition, ushort DestTerritoryId, Vector3 DestPosition, uint? SeenDuringMsqId) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202A_200B_206F_202E_206F_200B_206D_202B_200E_206C_206B_206C_202C_200E_202C_206A_206F_206D_206F_202B_206C_202A_202B_200D_206C_206E_202C_206D_206A_200B_206B_202D_206C_206E_202E_206E_206C_200F_200C_200F_202E(typeof(WarpCapture).TypeHandle); - } - } + public sealed record WarpCapture(uint WarpRowId, string WarpName, uint? NpcDataId, ushort SourceTerritoryId, Vector3 SourcePosition, ushort DestTerritoryId, Vector3 DestPosition, uint? SeenDuringMsqId); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200F_200E_206A_202A_202B_200B_202B_202C_206A_200B_206A_202D_202E_202A_206E_206E_200B_200C_206C_206C_202C_200C_206E_200B_202E_206D_206D_200E_206B_202E_202B_206B_202A_206F_202E_202E_200F_206C_202B_206E_202E(); - _206D_200F_200B_200B_200B_202C_202A_206A_200B_200F_200B_206C_206B_200E_200B_202A_206B_206B_206D_202D_202E_200E_202D_200C_206A_200C_206B_206A_200C_200B_206D_206E_200B_200F_200C_206E_202E_202D_200F_200D_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-187813837)); - _206D_200F_200B_200B_200B_202C_202A_206A_200B_200F_200B_206C_206B_200E_200B_202A_206B_206B_206D_202D_202E_200E_202D_200C_206A_200C_206B_206A_200C_200B_206D_206E_200B_200F_200C_206E_202E_202D_200F_200D_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? (-1132580023) : (-1132580024)); - while (true) - { - int num2 = num; - int num3 = -1132580023; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1132580024; - break; - case 1: - _202B_200C_202D_202B_200E_202B_206C_202D_200F_202B_202E_202C_202C_206F_200E_202B_206E_200F_202D_202A_206F_202C_202B_200B_206E_202E_202A_200D_206A_202D_200F_202E_202B_200D_206D_200E_202D_206C_206C_202E(stringBuilder, ' '); - num = -1132580023; - break; - case 0: - _202B_200C_202D_202B_200E_202B_206C_202D_200F_202B_202E_202C_202C_206F_200E_202B_206E_200F_202D_202A_206F_202C_202B_200B_206E_202E_202A_200D_206A_202D_200F_202E_202B_200D_206D_200E_202D_206C_206C_202E(stringBuilder, '}'); - return _200C_206F_206E_200B_206F_200C_200E_202C_202B_202E_202C_202A_202B_202D_202D_206C_206A_206A_200F_202D_200C_206C_206C_202E_206F_206B_202A_206C_206C_206D_206C_206E_200D_202A_202E_206A_200F_206C_206A_206A_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206B_206B_200F_200B_202E_206B_206C_206E_206F_202E_202C_206F_202E_200C_206A_202C_200E_206C_206B_202E_202D_200B_200F_200C_200C_200C_206C_202A_200D_206C_202C_202C_206D_206F_200E_202A_202B_202A_206B_206B_202E(); - _206D_200F_200B_200B_200B_202C_202A_206A_200B_200F_200B_206C_206B_200E_200B_202A_206B_206B_206D_202D_202E_200E_202D_200C_206A_200C_206B_206A_200C_200B_206D_206E_200B_200F_200C_206E_202E_202D_200F_200D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2126812342)); - _206D_200F_200B_200B_200B_202C_202A_206A_200B_200F_200B_206C_206B_200E_200B_202A_206B_206B_206D_202D_202E_200E_202D_200C_206A_200C_206B_206A_200C_200B_206D_206E_200B_200F_200C_206E_202E_202D_200F_200D_202E(builder, WarpRowId.ToString()); - _206D_200F_200B_200B_200B_202C_202A_206A_200B_200F_200B_206C_206B_200E_200B_202A_206B_206B_206D_202D_202E_200E_202D_200C_206A_200C_206B_206A_200C_200B_206D_206E_200B_200F_200C_206E_202E_202D_200F_200D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(951562334)); - _202C_202E_206A_206B_206B_202C_202D_202E_206E_202D_202E_206E_200B_206C_200F_206D_200C_202E_202A_200C_200E_202C_206F_200B_206B_206C_200F_202E_200C_200B_202B_202A_200E_202D_202E_200C_200C_200D_206B_206B_202E(builder, (object)WarpName); - _206D_200F_200B_200B_200B_202C_202A_206A_200B_200F_200B_206C_206B_200E_200B_202A_206B_206B_206D_202D_202E_200E_202D_200C_206A_200C_206B_206A_200C_200B_206D_206E_200B_200F_200C_206E_202E_202D_200F_200D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-928748373)); - _206D_200F_200B_200B_200B_202C_202A_206A_200B_200F_200B_206C_206B_200E_200B_202A_206B_206B_206D_202D_202E_200E_202D_200C_206A_200C_206B_206A_200C_200B_206D_206E_200B_200F_200C_206E_202E_202D_200F_200D_202E(builder, NpcDataId.ToString()); - _206D_200F_200B_200B_200B_202C_202A_206A_200B_200F_200B_206C_206B_200E_200B_202A_206B_206B_206D_202D_202E_200E_202D_200C_206A_200C_206B_206A_200C_200B_206D_206E_200B_200F_200C_206E_202E_202D_200F_200D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1282955220)); - _206D_200F_200B_200B_200B_202C_202A_206A_200B_200F_200B_206C_206B_200E_200B_202A_206B_206B_206D_202D_202E_200E_202D_200C_206A_200C_206B_206A_200C_200B_206D_206E_200B_200F_200C_206E_202E_202D_200F_200D_202E(builder, SourceTerritoryId.ToString()); - _206D_200F_200B_200B_200B_202C_202A_206A_200B_200F_200B_206C_206B_200E_200B_202A_206B_206B_206D_202D_202E_200E_202D_200C_206A_200C_206B_206A_200C_200B_206D_206E_200B_200F_200C_206E_202E_202D_200F_200D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1305179201)); - _206D_200F_200B_200B_200B_202C_202A_206A_200B_200F_200B_206C_206B_200E_200B_202A_206B_206B_206D_202D_202E_200E_202D_200C_206A_200C_206B_206A_200C_200B_206D_206E_200B_200F_200C_206E_202E_202D_200F_200D_202E(builder, SourcePosition.ToString()); - _206D_200F_200B_200B_200B_202C_202A_206A_200B_200F_200B_206C_206B_200E_200B_202A_206B_206B_206D_202D_202E_200E_202D_200C_206A_200C_206B_206A_200C_200B_206D_206E_200B_200F_200C_206E_202E_202D_200F_200D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1003946006)); - _206D_200F_200B_200B_200B_202C_202A_206A_200B_200F_200B_206C_206B_200E_200B_202A_206B_206B_206D_202D_202E_200E_202D_200C_206A_200C_206B_206A_200C_200B_206D_206E_200B_200F_200C_206E_202E_202D_200F_200D_202E(builder, DestTerritoryId.ToString()); - _206D_200F_200B_200B_200B_202C_202A_206A_200B_200F_200B_206C_206B_200E_200B_202A_206B_206B_206D_202D_202E_200E_202D_200C_206A_200C_206B_206A_200C_200B_206D_206E_200B_200F_200C_206E_202E_202D_200F_200D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1661409789)); - _206D_200F_200B_200B_200B_202C_202A_206A_200B_200F_200B_206C_206B_200E_200B_202A_206B_206B_206D_202D_202E_200E_202D_200C_206A_200C_206B_206A_200C_200B_206D_206E_200B_200F_200C_206E_202E_202D_200F_200D_202E(builder, DestPosition.ToString()); - _206D_200F_200B_200B_200B_202C_202A_206A_200B_200F_200B_206C_206B_200E_200B_202A_206B_206B_206D_202D_202E_200E_202D_200C_206A_200C_206B_206A_200C_200B_206D_206E_200B_200F_200C_206E_202E_202D_200F_200D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(728831284)); - _206D_200F_200B_200B_200B_202C_202A_206A_200B_200F_200B_206C_206B_200E_200B_202A_206B_206B_206D_202D_202E_200E_202D_200C_206A_200C_206B_206A_200C_200B_206D_206E_200B_200F_200C_206E_202E_202D_200F_200D_202E(builder, SeenDuringMsqId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(WarpCapture? other) - { - int num = (((object)this == other) ? (-1119467529) : (-1119467523)); - while (true) - { - int num2 = num; - int num3 = -1119467531; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - num = ((!EqualityComparer<ushort>.Default.Equals(DestTerritoryId, other.DestTerritoryId)) ? (-1119467530) : (-1119467524)); - break; - case 0: - num = ((!EqualityComparer<uint?>.Default.Equals(NpcDataId, other.NpcDataId)) ? (-1119467530) : (-1119467522)); - break; - case 8: - num = (((object)other == null) ? (-1119467530) : (-1119467535)); - break; - case 7: - num = -1119467523; - break; - case 3: - return false; - case 10: - return EqualityComparer<uint?>.Default.Equals(SeenDuringMsqId, other.SeenDuringMsqId); - case 2: - return true; - case 12: - num = ((!EqualityComparer<uint>.Default.Equals(WarpRowId, other.WarpRowId)) ? (-1119467530) : (-1119467533)); - break; - case 5: - num = ((!EqualityComparer<Vector3>.Default.Equals(SourcePosition, other.SourcePosition)) ? (-1119467530) : (-1119467532)); - break; - case 4: - num = ((!_202B_206F_200F_202A_200C_206D_202C_206D_200D_202D_200E_206A_200F_202B_200C_200E_206F_202C_206B_200E_200E_202A_206C_206D_202B_200E_206E_200F_200C_202B_200C_206C_206E_206F_200D_200D_206E_200E_206E_206F_202E(EqualityContract, other.EqualityContract)) ? (-1119467530) : (-1119467527)); - break; - case 11: - num = ((!EqualityComparer<ushort>.Default.Equals(SourceTerritoryId, other.SourceTerritoryId)) ? (-1119467530) : (-1119467536)); - break; - case 9: - num = ((!EqualityComparer<Vector3>.Default.Equals(DestPosition, other.DestPosition)) ? (-1119467530) : (-1119467521)); - break; - case 6: - num = ((!EqualityComparer<string>.Default.Equals(WarpName, other.WarpName)) ? (-1119467530) : (-1119467531)); - break; - } - } - } - - bool IEquatable<WarpCapture>.Equals(WarpCapture? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202A_200B_206F_202E_206F_200B_206D_202B_200E_206C_206B_206C_202C_200E_202C_206A_206F_206D_206F_202B_206C_202A_202B_200D_206C_206E_202C_206D_206A_200B_206B_202D_206C_206E_202E_206E_206C_200F_200C_200F_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200F_200E_206A_202A_202B_200B_202B_202C_206A_200B_206A_202D_202E_202A_206E_206E_200B_200C_206C_206C_202C_200C_206E_200B_202E_206D_206D_200E_206B_202E_202B_206B_202A_206F_202E_202E_200F_206C_202B_206E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206D_200F_200B_200B_200B_202C_202A_206A_200B_200F_200B_206C_206B_200E_200B_202A_206B_206B_206D_202D_202E_200E_202D_200C_206A_200C_206B_206A_200C_200B_206D_206E_200B_200F_200C_206E_202E_202D_200F_200D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202B_200C_202D_202B_200E_202B_206C_202D_200F_202B_202E_202C_202C_206F_200E_202B_206E_200F_202D_202A_206F_202C_202B_200B_206E_202E_202A_200D_206A_202D_200F_202E_202B_200D_206D_200E_202D_206C_206C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200C_206F_206E_200B_206F_200C_200E_202C_202B_202E_202C_202A_202B_202D_202D_206C_206A_206A_200F_202D_200C_206C_206C_202E_206F_206B_202A_206C_206C_206D_206C_206E_200D_202A_202E_206A_200F_206C_206A_206A_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206B_206B_200F_200B_202E_206B_206C_206E_206F_202E_202C_206F_202E_200C_206A_202C_200E_206C_206B_202E_202D_200B_200F_200C_200C_200C_206C_202A_200D_206C_202C_202C_206D_206F_200E_202A_202B_202A_206B_206B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202C_202E_206A_206B_206B_202C_202D_202E_206E_202D_202E_206E_200B_206C_200F_206D_200C_202E_202A_200C_200E_202C_206F_200B_206B_206C_200F_202E_200C_200B_202B_202A_200E_202D_202E_200C_200C_200D_206B_206B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202B_206F_200F_202A_200C_206D_202C_206D_200D_202D_200E_206A_200F_202B_200C_200E_206F_202C_206B_200E_200E_202A_206C_206D_202B_200E_206E_200F_200C_202B_200C_206C_206E_206F_200D_200D_206E_200E_206E_206F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - public sealed record TicketCapture(uint ItemId, string ItemName, ushort DestTerritoryId, Vector3 DestPosition) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206D_206F_200B_206A_206B_202A_202D_206A_206F_202E_206C_206C_206C_206F_202A_202B_200E_200C_200E_206B_202C_206E_200B_202A_200E_206C_202A_206C_206F_202B_202E_206F_200D_200C_206F_200C_200D_206B_206E_202E(typeof(TicketCapture).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206D_202A_202C_200D_202A_206A_206A_206D_206D_200F_202A_206F_206D_202D_202B_206D_206C_200F_206C_202A_202C_206A_202B_202E_206F_206C_206A_206E_200B_206A_206D_200D_200E_202A_200E_200D_200E_206E_202E_200F_202E(); - _206E_206F_202B_206B_202C_202D_200E_206F_202B_202D_200F_206B_206A_200D_206C_202B_206B_202E_200E_206C_200F_202C_200D_206F_202E_202D_206B_200F_202E_202A_202D_200C_206C_206A_206D_206A_206E_200E_202A_200C_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1768035590)); - _206E_206F_202B_206B_202C_202D_200E_206F_202B_202D_200F_206B_206A_200D_206C_202B_206B_202E_200E_206C_200F_202C_200D_206F_202E_202D_206B_200F_202E_202A_202D_200C_206C_206A_206D_206A_206E_200E_202A_200C_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? (-522344662) : (-522344663)); - while (true) - { - int num2 = num; - int num3 = -522344664; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -522344663; - break; - case 1: - _206A_202E_202B_200B_200F_202C_200B_202B_202E_202E_200D_202E_202A_206F_202E_200B_200D_200F_202A_202C_206F_206A_206E_206C_202A_206A_206A_206C_202C_202E_202C_202D_206B_202D_202E_202C_200C_206C_200C_206B_202E(stringBuilder, ' '); - num = -522344662; - break; - case 2: - _206A_202E_202B_200B_200F_202C_200B_202B_202E_202E_200D_202E_202A_206F_202E_200B_200D_200F_202A_202C_206F_206A_206E_206C_202A_206A_206A_206C_202C_202E_202C_202D_206B_202D_202E_202C_200C_206C_200C_206B_202E(stringBuilder, '}'); - return _202B_206A_206B_202B_202B_200D_200B_206C_200B_206B_202B_202B_206C_202C_200B_200C_206A_202B_200D_200D_206E_202E_206F_200D_200F_200C_206D_202E_206E_202A_202A_200F_200F_202C_206C_206B_206F_200F_200E_206C_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200F_200F_202E_202A_202C_206F_200E_202D_206F_206B_206A_202D_206C_206D_200F_202B_206F_206D_206F_202B_206C_200E_200B_206F_200B_206F_200D_206D_202B_200B_200D_206D_202B_202E_206A_200F_206F_202A_202A_200D_202E(); - _206E_206F_202B_206B_202C_202D_200E_206F_202B_202D_200F_206B_206A_200D_206C_202B_206B_202E_200E_206C_200F_202C_200D_206F_202E_202D_206B_200F_202E_202A_202D_200C_206C_206A_206D_206A_206E_200E_202A_200C_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1298229987)); - _206E_206F_202B_206B_202C_202D_200E_206F_202B_202D_200F_206B_206A_200D_206C_202B_206B_202E_200E_206C_200F_202C_200D_206F_202E_202D_206B_200F_202E_202A_202D_200C_206C_206A_206D_206A_206E_200E_202A_200C_202E(builder, ItemId.ToString()); - _206E_206F_202B_206B_202C_202D_200E_206F_202B_202D_200F_206B_206A_200D_206C_202B_206B_202E_200E_206C_200F_202C_200D_206F_202E_202D_206B_200F_202E_202A_202D_200C_206C_206A_206D_206A_206E_200E_202A_200C_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2091026451)); - _200E_200B_202B_206B_200E_200E_206A_200D_200B_202C_200C_200E_200E_202C_206D_206B_200E_200D_202E_202B_206F_200C_206A_202A_206B_200D_206B_202E_206F_200B_206D_206B_202C_202C_206D_206A_206F_200E_200B_202D_202E(builder, (object)ItemName); - _206E_206F_202B_206B_202C_202D_200E_206F_202B_202D_200F_206B_206A_200D_206C_202B_206B_202E_200E_206C_200F_202C_200D_206F_202E_202D_206B_200F_202E_202A_202D_200C_206C_206A_206D_206A_206E_200E_202A_200C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1798905925)); - _206E_206F_202B_206B_202C_202D_200E_206F_202B_202D_200F_206B_206A_200D_206C_202B_206B_202E_200E_206C_200F_202C_200D_206F_202E_202D_206B_200F_202E_202A_202D_200C_206C_206A_206D_206A_206E_200E_202A_200C_202E(builder, DestTerritoryId.ToString()); - _206E_206F_202B_206B_202C_202D_200E_206F_202B_202D_200F_206B_206A_200D_206C_202B_206B_202E_200E_206C_200F_202C_200D_206F_202E_202D_206B_200F_202E_202A_202D_200C_206C_206A_206D_206A_206E_200E_202A_200C_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1661409789)); - _206E_206F_202B_206B_202C_202D_200E_206F_202B_202D_200F_206B_206A_200D_206C_202B_206B_202E_200E_206C_200F_202C_200D_206F_202E_202D_206B_200F_202E_202A_202D_200C_206C_206A_206D_206A_206E_200E_202A_200C_202E(builder, DestPosition.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(TicketCapture? other) - { - int num = (((object)this == other) ? (-1255912688) : (-1255912673)); - while (true) - { - int num2 = num; - int num3 = -1255912680; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - num = -1255912673; - break; - case 8: - return true; - case 4: - num = ((!EqualityComparer<string>.Default.Equals(ItemName, other.ItemName)) ? (-1255912677) : (-1255912678)); - break; - case 7: - num = (((object)other == null) ? (-1255912677) : (-1255912680)); - break; - case 2: - num = ((!EqualityComparer<ushort>.Default.Equals(DestTerritoryId, other.DestTerritoryId)) ? (-1255912677) : (-1255912679)); - break; - case 6: - num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? (-1255912677) : (-1255912676)); - break; - case 3: - return false; - case 0: - num = ((!_202D_206E_200B_206D_200E_202C_206F_200E_200E_206C_200B_200B_206F_202B_200D_206B_202A_200D_202C_206B_206A_200B_200E_202D_206A_200D_206E_202B_202E_202D_202B_206A_202B_206D_206C_202A_200F_202A_202D_206A_202E(EqualityContract, other.EqualityContract)) ? (-1255912677) : (-1255912674)); - break; - case 1: - return EqualityComparer<Vector3>.Default.Equals(DestPosition, other.DestPosition); - } - } - } - - bool IEquatable<TicketCapture>.Equals(TicketCapture? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206D_206F_200B_206A_206B_202A_202D_206A_206F_202E_206C_206C_206C_206F_202A_202B_200E_200C_200E_206B_202C_206E_200B_202A_200E_206C_202A_206C_206F_202B_202E_206F_200D_200C_206F_200C_200D_206B_206E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206D_202A_202C_200D_202A_206A_206A_206D_206D_200F_202A_206F_206D_202D_202B_206D_206C_200F_206C_202A_202C_206A_202B_202E_206F_206C_206A_206E_200B_206A_206D_200D_200E_202A_200E_200D_200E_206E_202E_200F_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206E_206F_202B_206B_202C_202D_200E_206F_202B_202D_200F_206B_206A_200D_206C_202B_206B_202E_200E_206C_200F_202C_200D_206F_202E_202D_206B_200F_202E_202A_202D_200C_206C_206A_206D_206A_206E_200E_202A_200C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206A_202E_202B_200B_200F_202C_200B_202B_202E_202E_200D_202E_202A_206F_202E_200B_200D_200F_202A_202C_206F_206A_206E_206C_202A_206A_206A_206C_202C_202E_202C_202D_206B_202D_202E_202C_200C_206C_200C_206B_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202B_206A_206B_202B_202B_200D_200B_206C_200B_206B_202B_202B_206C_202C_200B_200C_206A_202B_200D_200D_206E_202E_206F_200D_200F_200C_206D_202E_206E_202A_202A_200F_200F_202C_206C_206B_206F_200F_200E_206C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200F_200F_202E_202A_202C_206F_200E_202D_206F_206B_206A_202D_206C_206D_200F_202B_206F_206D_206F_202B_206C_200E_200B_206F_200B_206F_200D_206D_202B_200B_200D_206D_202B_202E_206A_200F_206F_202A_202A_200D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200E_200B_202B_206B_200E_200E_206A_200D_200B_202C_200C_200E_200E_202C_206D_206B_200E_200D_202E_202B_206F_200C_206A_202A_206B_200D_206B_202E_206F_200B_206D_206B_202C_202C_206D_206A_206F_200E_200B_202D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202D_206E_200B_206D_200E_202C_206F_200E_200E_206C_200B_200B_206F_202B_200D_206B_202A_200D_202C_206B_206A_200B_200E_202D_206A_200D_206E_202B_202E_202D_202B_206A_202B_206D_206C_202A_200F_202A_202D_206A_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } + public sealed record TicketCapture(uint ItemId, string ItemName, ushort DestTerritoryId, Vector3 DestPosition); private const float JumpDistance = 40f; @@ -416,39 +104,17 @@ internal sealed class WarpRecordingService : IDisposable private readonly Dictionary<uint, int> _ticketInventoryCounts = new Dictionary<uint, int>(); - [CompilerGenerated] - private Action<WarpCapture>? m_WarpCaptured; - - [CompilerGenerated] - private Action<TicketCapture>? m_TicketCaptured; - public bool IsWarpPending => _warpPhase != EWarpPhase.None; public uint? PendingWarpRowId { get { - int num = (IsWarpPending ? 481097477 : 481097478); - while (true) + if (!IsWarpPending) { - int num2 = num; - int num3 = 481097476; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0048; - case 1: - return _warpRowId; - case 2: - return null; - } - continue; - IL_0048: - num = 481097478; + return null; } + return _warpRowId; } } @@ -456,27 +122,11 @@ internal sealed class WarpRecordingService : IDisposable { get { - int num = (IsWarpPending ? 1811343042 : 1811343041); - while (true) + if (!IsWarpPending) { - int num2 = num; - int num3 = 1811343040; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return _warpName; - case 1: - return null; - case 0: - goto IL_0051; - } - continue; - IL_0051: - num = 1811343041; + return null; } + return _warpName; } } @@ -488,25 +138,11 @@ internal sealed class WarpRecordingService : IDisposable { get { - int num = (_ticketItemId.HasValue ? 2020031708 : 2020031709); - while (true) + if (!_ticketItemId.HasValue) { - int num2 = num; - int num3 = 2020031708; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_004b; - case 0: - return _ticketItemName; - case 1: - return null; - } - continue; - IL_004b: - num = 2020031709; + return null; } + return _ticketItemName; } } @@ -516,155 +152,18 @@ internal sealed class WarpRecordingService : IDisposable { get { - int num = ((!_devEnvironmentGate) ? 1865787301 : 1865787302); - while (true) + if (_devEnvironmentGate) { - int num2 = num; - int num3 = 1865787300; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return false; - case 2: - return _configuration.Advanced.EnableNavDataCapture; - case 0: - goto IL_0059; - } - continue; - IL_0059: - num = 1865787302; + return _configuration.Advanced.EnableNavDataCapture; } + return false; } } - public event Action<WarpCapture>? WarpCaptured - { - [CompilerGenerated] - add - { - Action<WarpCapture> action = this.m_WarpCaptured; - int num = -2100065366; - while (true) - { - int num2 = num; - int num3 = -2100065365; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -2100065366; - break; - case 2: - return; - case 1: - { - Action<WarpCapture> action2 = action; - Action<WarpCapture> value2 = (Action<WarpCapture>)_206F_200C_202C_206C_202D_206A_202D_202E_202A_202C_206B_202D_200B_202C_202A_200E_202D_202D_200B_202D_200F_202E_200B_206C_202E_200D_202A_202D_206D_206C_202B_206D_202B_206F_200B_206B_206E_206B_206B_202B_202E((Delegate)action2, (Delegate)value); - action = Interlocked.CompareExchange(ref this.m_WarpCaptured, value2, action2); - num = (((object)action != action2) ? (-2100065366) : (-2100065367)); - break; - } - } - } - } - [CompilerGenerated] - remove - { - Action<WarpCapture> action = this.m_WarpCaptured; - int num = 996974973; - while (true) - { - int num2 = num; - int num3 = 996974972; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 996974973; - break; - case 0: - return; - case 1: - { - Action<WarpCapture> action2 = action; - Action<WarpCapture> value2 = (Action<WarpCapture>)_202D_202B_206E_202E_206C_200C_202D_206E_206E_200F_202D_200E_202B_206E_202D_206A_206E_206D_206E_200C_206C_206A_206E_206F_202C_200E_206B_202E_206B_206D_206F_200B_200C_200E_200F_206C_206C_200D_202C_200C_202E((Delegate)action2, (Delegate)value); - action = Interlocked.CompareExchange(ref this.m_WarpCaptured, value2, action2); - num = (((object)action != action2) ? 996974973 : 996974972); - break; - } - } - } - } - } + public event Action<WarpCapture>? WarpCaptured; - public event Action<TicketCapture>? TicketCaptured - { - [CompilerGenerated] - add - { - Action<TicketCapture> action = this.m_TicketCaptured; - int num = 1393978024; - while (true) - { - int num2 = num; - int num3 = 1393978025; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1393978024; - break; - case 1: - { - Action<TicketCapture> action2 = action; - Action<TicketCapture> value2 = (Action<TicketCapture>)_206F_200C_202C_206C_202D_206A_202D_202E_202A_202C_206B_202D_200B_202C_202A_200E_202D_202D_200B_202D_200F_202E_200B_206C_202E_200D_202A_202D_206D_206C_202B_206D_202B_206F_200B_206B_206E_206B_206B_202B_202E((Delegate)action2, (Delegate)value); - action = Interlocked.CompareExchange(ref this.m_TicketCaptured, value2, action2); - num = (((object)action != action2) ? 1393978024 : 1393978027); - break; - } - case 2: - return; - } - } - } - [CompilerGenerated] - remove - { - Action<TicketCapture> action = this.m_TicketCaptured; - int num = -2000190759; - while (true) - { - int num2 = num; - int num3 = -2000190760; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -2000190759; - break; - case 0: - return; - case 1: - { - Action<TicketCapture> action2 = action; - Action<TicketCapture> value2 = (Action<TicketCapture>)_202D_202B_206E_202E_206C_200C_202D_206E_206E_200F_202D_200E_202B_206E_202D_206A_206E_206D_206E_200C_206C_206A_206E_206F_202C_200E_206B_202E_206B_206D_206F_200B_200C_200E_200F_206C_206C_200D_202C_200C_202E((Delegate)action2, (Delegate)value); - action = Interlocked.CompareExchange(ref this.m_TicketCaptured, value2, action2); - num = (((object)action != action2) ? (-2000190759) : (-2000190760)); - break; - } - } - } - } - } + public event Action<TicketCapture>? TicketCaptured; - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe WarpRecordingService(IDalamudPluginInterface pluginInterface, IClientState clientState, IObjectTable objectTable, ITargetManager targetManager, ICondition condition, IFramework framework, IDataManager dataManager, IGameInteropProvider gameInteropProvider, Configuration configuration, QuestFunctions questFunctions, TeleportTicketService teleportTicketService, ILogger<WarpRecordingService> logger) { _clientState = clientState; @@ -677,143 +176,66 @@ internal sealed class WarpRecordingService : IDisposable _questFunctions = questFunctions; _teleportTicketService = teleportTicketService; _logger = logger; - _devEnvironmentGate = _202C_202C_202C_200D_206F_206C_206F_202C_202A_202D_206F_206D_200E_206F_206C_202B_206F_200E_206B_200B_206C_206E_200E_202E_202D_206B_206B_200B_206D_202D_200F_200F_202B_202C_200D_202A_206E_200D_202C_202E(pluginInterface) || _206D_206D_206A_206F_206F_202A_206A_202C_206C_206C_200E_200C_202D_200B_206D_206B_200F_206F_200B_206C_202B_206F_200C_200E_200B_206A_200E_202E_200E_206C_206B_200C_200E_206D_202D_206F_202D_200B_206C_202D_202E(_202A_202C_202E_206D_202D_206E_200E_200B_200F_200C_206B_202D_200F_206D_202D_200B_206D_200C_202B_200E_206D_206E_206E_206E_206A_202C_202C_202C_200B_202C_200B_202A_206B_200F_202B_200C_202B_200C_200C_200D_202E(_200B_202C_200B_202A_206F_202E_206F_206F_206B_206B_202B_200C_200D_200E_206B_202B_202E_206F_206F_200E_206A_202B_206C_202C_200B_200D_200D_206C_206C_200E_206E_202C_206F_206E_202E_200F_202E_200D_200B_206A_202E((FileSystemInfo)_200E_202B_202B_200F_202D_200B_202D_206F_200B_202A_200E_202B_200E_206D_206B_206B_202C_202C_206E_200C_206E_202D_202E_206A_206C_202A_200F_206E_200C_202D_206C_206C_206C_206A_202C_202C_206F_200E_202A_206E_202E(pluginInterface)), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-835725839))); + _devEnvironmentGate = pluginInterface.IsDev || File.Exists(Path.Combine(pluginInterface.ConfigDirectory.FullName, ".nav-authoring")); if (_devEnvironmentGate) { - _202D_200C_200B_200F_206A_200F_200E_206C_206D_200F_202C_202B_202A_200F_202D_202E_202D_206B_206D_206A_200E_200C_200F_206E_202D_206C_206F_200B_202B_202A_202D_200C_200F_206B_202D_202D_202E_206E_202A_202E_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-323245053), new object[1] { _202C_202C_202C_200D_206F_206C_206F_202C_202A_202D_206F_206D_200E_206F_206C_202B_206F_200E_206B_200B_206C_206E_200E_202E_202D_206B_206B_200B_206D_202D_200F_200F_202B_202C_200D_202A_206E_200D_202C_202E(pluginInterface) }); + _logger.LogDebug("Warp recorder: dev environment gate open (IsDev={IsDev})", pluginInterface.IsDev); } try { - _processEventPlayHook = gameInteropProvider.HookFromAddress<ProcessEventPlayDelegate>((nint)_206A_206A_202E_202D_200E_202E_200E_200C_202D_206D_206D_202E_200D_206F_202B_206F_206B_200F_202C_200F_206B_202B_202E_202D_202E_200D_202B_200E_202A_200D_206C_206A_206B_202D_206E_200C_200C_202D_202A_202B_202E(), OnProcessEventPlay); + _processEventPlayHook = gameInteropProvider.HookFromAddress<ProcessEventPlayDelegate>((nint)EventFramework.MemberFunctionPointers.ProcessEventPlay, OnProcessEventPlay); _processEventPlayHook.Enable(); } - catch (Exception ex) + catch (Exception exception) { - _206A_206C_206C_206A_200E_202D_206C_202D_202E_206E_206D_202B_202A_202B_200B_202A_206B_206A_200D_206B_200E_200D_206B_206A_206E_206E_200F_200E_206C_200B_202E_206F_200E_200E_206A_200B_200D_206D_200D_202E((ILogger)_logger, ex, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1894559427), Array.Empty<object>()); + _logger.LogError(exception, "Failed to hook ProcessEventPlay for warp recorder"); } - _202A_202B_200F_202D_206E_202D_202D_206C_202B_202C_202C_206B_200B_202E_200C_200E_202B_202E_200B_206E_202B_202B_200F_206D_200D_202B_200F_206F_202C_200B_200D_202B_200F_206D_206B_206F_206D_200F_206C_206D_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkTick); + _framework.Update += OnFrameworkTick; } - [MethodImpl(MethodImplOptions.NoInlining)] public void ArmManual(uint warpRowId, string? warpName, uint npcDataId, ushort sourceTerritory, Vector3 sourcePosition) { - int num = (_devEnvironmentGate ? 973810328 : 973810329); - while (true) + if (_devEnvironmentGate) { - int num2 = num; - int num3 = 973810328; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0049; - case 0: - { - string text = warpName; - if (text == null) - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(5, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1641447953)); - defaultInterpolatedStringHandler.AppendFormatted(warpRowId); - text = defaultInterpolatedStringHandler.ToStringAndClear(); - } - Arm(warpRowId, text, (npcDataId != 0) ? new uint?(npcDataId) : ((uint?)null), sourceTerritory, sourcePosition); - return; - } - case 1: - return; - } - continue; - IL_0049: - num = 973810329; + Arm(warpRowId, warpName ?? $"Warp#{warpRowId}", (npcDataId != 0) ? new uint?(npcDataId) : ((uint?)null), sourceTerritory, sourcePosition); } } public bool CaptureWarpDestNow() { - int num = ((_warpPhase != EWarpPhase.None) ? 1254314250 : 1254314251); - IGameObject gameObject = default(IGameObject); - while (true) + if (_warpPhase == EWarpPhase.None) { - int num2 = num; - int num3 = 1254314255; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1254314251; - break; - case 5: - gameObject = _200E_202A_206E_200E_206C_202A_200B_200C_202B_206B_206A_206D_206B_200D_202A_200D_202C_202E_206C_202C_206E_200B_200D_200B_202B_202E_206C_200E_200B_202E_206A_202C_202B_202A_200B_202C_206D_206A_206D_202E(_objectTable, 0); - num = ((gameObject == null) ? 1254314253 : 1254314254); - break; - case 3: - CompleteWarp(_202D_202B_206F_206B_200E_200E_200E_206D_200C_206A_200F_200B_202E_206A_200F_202E_206F_202A_202A_202A_206F_200C_202A_206C_202A_206B_206C_202D_200F_200E_200E_202B_202D_202C_200B_202C_200E_200B_206C_200F_202E(gameObject)); - return true; - case 1: - num = ((!(_202D_202B_206F_206B_200E_200E_200E_206D_200C_206A_200F_200B_202E_206A_200F_202E_206F_202A_202A_202A_206F_200C_202A_206C_202A_206B_206C_202D_200F_200E_200E_202B_202D_202C_200B_202C_200E_200B_206C_200F_202E(gameObject) == Vector3.Zero)) ? 1254314252 : 1254314253); - break; - case 4: - return false; - case 2: - return false; - } + return false; } + IGameObject gameObject = _objectTable[0]; + if (gameObject == null || gameObject.Position == Vector3.Zero) + { + return false; + } + CompleteWarp(gameObject.Position); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public void DismissWarp() { - ResetWarp(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1890285424)); + ResetWarp("dismissed"); } - [MethodImpl(MethodImplOptions.NoInlining)] public bool CaptureTicketDestNow() { - int num = (_ticketItemId.HasValue ? 1733996203 : 1733996202); - IGameObject gameObject = default(IGameObject); - while (true) + if (!_ticketItemId.HasValue) { - int num2 = num; - int num3 = 1733996206; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 1: - return false; - case 6: - num = ((!(_202D_202B_206F_206B_200E_200E_200E_206D_200C_206A_200F_200B_202E_206A_200F_202E_206F_202A_202A_202A_206F_200C_202A_206C_202A_206B_206C_202D_200F_200E_200E_202B_202D_202C_200B_202C_200E_200B_206C_200F_202E(gameObject) == Vector3.Zero)) ? 1733996206 : 1733996207); - continue; - case 0: - { - TicketCapture ticketCapture = new TicketCapture(_ticketItemId.Value, _ticketItemName, (ushort)_200E_200D_206A_206E_202D_202A_206D_206D_206A_206B_206F_206E_200B_202A_206E_202C_200D_202B_202B_202C_200F_200C_206E_206E_206A_200D_200B_202E_200C_200F_206B_206E_202E_206A_200C_200B_206C_206B_200B_206E_202E(_clientState), _202D_202B_206F_206B_200E_200E_200E_206D_200C_206A_200F_200B_202E_206A_200F_202E_206F_202A_202A_202A_206F_200C_202A_206C_202A_206B_206C_202D_200F_200E_200E_202B_202D_202C_200B_202C_200E_200B_206C_200F_202E(gameObject)); - _206C_202D_202A_202B_206A_206D_202C_200B_202D_202B_200D_200E_202C_202E_206D_200D_200E_206C_200C_206B_200F_206B_206A_202A_206A_206E_202D_206F_206A_200B_206E_206B_202B_206B_202D_202D_206D_202E_206B_202C_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1700222417), new object[3] { ticketCapture.ItemName, ticketCapture.ItemId, ticketCapture.DestTerritoryId }); - ClearTicket(); - Action<TicketCapture>? action = this.TicketCaptured; - if (action == null) - { - break; - } - action(ticketCapture); - num = 1733996204; - continue; - } - case 4: - return false; - case 3: - num = 1733996202; - continue; - case 5: - gameObject = _200E_202A_206E_200E_206C_202A_200B_200C_202B_206B_206A_206D_206B_200D_202A_200D_202C_202E_206C_202C_206E_200B_200D_200B_202B_202E_206C_200E_200B_202E_206A_202C_202B_202A_200B_202C_206D_206A_206D_202E(_objectTable, 0); - num = ((gameObject == null) ? 1733996207 : 1733996200); - continue; - case 2: - break; - } - break; + return false; } + IGameObject gameObject = _objectTable[0]; + if (gameObject == null || gameObject.Position == Vector3.Zero) + { + return false; + } + TicketCapture ticketCapture = new TicketCapture(_ticketItemId.Value, _ticketItemName, (ushort)_clientState.TerritoryType, gameObject.Position); + _logger.LogInformation("Ticket recorder: manually captured {Name} (#{Id}) -> {Territory}", ticketCapture.ItemName, ticketCapture.ItemId, ticketCapture.DestTerritoryId); + ClearTicket(); + this.TicketCaptured?.Invoke(ticketCapture); return true; } @@ -824,132 +246,49 @@ internal sealed class WarpRecordingService : IDisposable public void Dispose() { - _206E_200C_202B_206E_206E_206B_200B_206C_202E_202B_206E_200E_200E_202A_206A_202C_206F_202E_206A_200F_206E_202C_200C_206F_200C_206C_202E_206D_200F_202E_206F_202E_200D_206B_206F_206B_206B_206B_200C_206E_202E(_framework, (IFramework.OnUpdateDelegate)OnFrameworkTick); + _framework.Update -= OnFrameworkTick; _processEventPlayHook?.Disable(); _processEventPlayHook?.Dispose(); } - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void OnProcessEventPlay(EventFramework* self, GameObject* gameObject, FFXIVClientStructs.FFXIV.Client.Game.Event.EventId eventId, short scene, ulong sceneFlags, uint* sceneData, byte sceneDataCount) { _processEventPlayHook.Original(self, gameObject, eventId, scene, sceneFlags, sceneData, sceneDataCount); try { - int num = (AutoCaptureEnabled ? 993725425 : 993725428); - string text5 = default(string); - Warp? rowOrDefault = default(Warp?); - string text4 = default(string); - uint id = default(uint); - string text2 = default(string); - uint? npcDataId = default(uint?); - Vector3 sourcePosition = default(Vector3); - while (true) + if (AutoCaptureEnabled && eventId.ContentId == EventHandlerContent.Warp) { - int num2 = num; - int num3 = 993725425; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - uint? obj; - string text3; - switch (num5 - (num6 + num6)) + uint id = eventId.Id; + string text = null; + Warp? rowOrDefault = _dataManager.GetExcelSheet<Warp>().GetRowOrDefault(id); + if (rowOrDefault.HasValue) { - case 7: - obj = gameObject->BaseId; - goto IL_00a3; - case 6: - text5 = rowOrDefault.Value.Name.ExtractText(); - text4 = rowOrDefault.Value.Question.ExtractText(); - num = ((!_202E_206F_200B_200E_200D_202E_200B_206C_206F_206B_206A_202C_202D_206C_202E_206F_206B_206D_206D_200B_202C_206E_200F_200F_202A_200C_200B_202D_200F_200D_206B_206B_202B_206A_200C_200D_200F_202C_206A_206C_202E(text5)) ? 993725426 : 993725436); - break; - case 0: - num = ((eventId.ContentId == EventHandlerContent.Warp) ? 993725437 : 993725435); - break; - case 12: - id = eventId.Id; - text2 = null; - rowOrDefault = _dataManager.GetExcelSheet<Warp>().GetRowOrDefault(id); - num = ((!rowOrDefault.HasValue) ? 993725424 : 993725431); - break; - case 2: - num = ((gameObject->BaseId != 0) ? 993725430 : 993725434); - break; - case 4: - { - IGameObject gameObject2 = _202D_200D_200D_206E_206D_202E_202D_206F_206D_200F_206E_206E_202D_200D_206C_200D_206F_202A_200B_206C_202C_202C_200B_206D_202B_200D_206E_200B_200F_206A_202D_200B_202B_202B_206F_200D_202B_202D_202D_206E_202E(_targetManager); - npcDataId = ((gameObject2 != null) ? new uint?(_200B_200D_206A_202C_200F_206D_202E_206B_206D_202C_206B_202A_206A_202B_200D_206D_200B_202D_202A_200C_206B_206C_200D_206A_200C_206A_200F_202A_200F_202C_200C_202A_202B_202A_202D_202D_200D_206A_202B_206D_202E(gameObject2)) : ((uint?)null)); - Vector3 obj2; - if (gameObject2 == null) - { - IGameObject gameObject3 = _200E_202A_206E_200E_206C_202A_200B_200C_202B_206B_206A_206D_206B_200D_202A_200D_202C_202E_206C_202C_206E_200B_200D_200B_202B_202E_206C_200E_200B_202E_206A_202C_202B_202A_200B_202C_206D_206A_206D_202E(_objectTable, 0); - obj2 = ((gameObject3 != null) ? _202D_202B_206F_206B_200E_200E_200E_206D_200C_206A_200F_200B_202E_206A_200F_202E_206F_202A_202A_202A_206F_200C_202A_206C_202A_206B_206C_202D_200F_200E_200E_202B_202D_202C_200B_202C_200E_200B_206C_200F_202E(gameObject3) : Vector3.Zero); - } - else - { - obj2 = _202D_202B_206F_206B_200E_200E_200E_206D_200C_206A_200F_200B_202E_206A_200F_202E_206F_202A_202A_202A_206F_200C_202A_206C_202A_206B_206C_202D_200F_200E_200E_202B_202D_202C_200B_202C_200E_200B_206C_200F_202E(gameObject2); - } - sourcePosition = obj2; - num = 993725433; - break; + string text2 = rowOrDefault.Value.Name.ExtractText(); + string text3 = rowOrDefault.Value.Question.ExtractText(); + text = ((!string.IsNullOrEmpty(text2)) ? text2 : text3); } - case 5: - return; - case 1: - num = ((gameObject == null) ? 993725429 : 993725427); - break; - case 3: - text3 = text5; - goto IL_024a; - case 9: - num = 993725428; - break; - case 11: - obj = null; - goto IL_00a3; - case 10: - return; - case 13: - text3 = text4; - goto IL_024a; - case 8: - { - uint warpRowId = id; - string text = text2; - if (text == null) - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(5, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(889861098)); - defaultInterpolatedStringHandler.AppendFormatted(id); - text = defaultInterpolatedStringHandler.ToStringAndClear(); - } - Arm(warpRowId, text, npcDataId, (ushort)_200E_200D_206A_206E_202D_202A_206D_206D_206A_206B_206F_206E_200B_202A_206E_202C_200D_202B_202B_202C_200F_200C_206E_206E_206A_200D_200B_202E_200C_200F_206B_206E_202E_206A_200C_200B_206C_206B_200B_206E_202E(_clientState), sourcePosition); - return; - } - IL_024a: - text2 = text3; - num = 993725424; - break; - IL_00a3: - npcDataId = obj; + uint? npcDataId; + Vector3 sourcePosition; + if (gameObject != null) + { + npcDataId = ((gameObject->BaseId != 0) ? new uint?(gameObject->BaseId) : ((uint?)null)); sourcePosition = gameObject->Position; - num = 993725433; - break; } + else + { + IGameObject? target = _targetManager.Target; + npcDataId = target?.BaseId; + sourcePosition = target?.Position ?? _objectTable[0]?.Position ?? Vector3.Zero; + } + Arm(id, text ?? $"Warp#{id}", npcDataId, (ushort)_clientState.TerritoryType, sourcePosition); } } - catch (Exception ex) + catch (Exception exception) { - _206A_206C_206C_206A_200E_202D_206C_202D_202E_206E_206D_202B_202A_202B_200B_202A_206B_206A_200D_206B_200E_200D_206B_206A_206E_206E_200F_200E_206C_200B_202E_206F_200E_200E_206A_200B_200D_206D_200D_202E((ILogger)_logger, ex, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1117596149), Array.Empty<object>()); + _logger.LogError(exception, "Warp recorder: ProcessEventPlay handler failed"); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void Arm(uint warpRowId, string warpName, uint? npcDataId, ushort sourceTerritory, Vector3 sourcePosition) { _warpPhase = EWarpPhase.Armed; @@ -960,434 +299,186 @@ internal sealed class WarpRecordingService : IDisposable _sourcePosition = sourcePosition; _seenMsqId = CurrentMsqQuestId(); _armedAt = DateTime.UtcNow; - _202D_200C_200B_200F_206A_200F_200E_206C_206D_200F_202C_202B_202A_200F_202D_202E_202D_206B_206D_206A_200E_200C_200F_206E_202D_206C_206F_200B_202B_202A_202D_200C_200F_206B_202D_202D_202E_206E_202A_202E_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(281345071), new object[7] { warpRowId, warpName, sourceTerritory, sourcePosition.X, sourcePosition.Y, sourcePosition.Z, _seenMsqId }); + _logger.LogDebug("Warp recorder: armed warp {Id} ({Name}) at territory {Territory} ({X:F1}, {Y:F1}, {Z:F1}), MSQ {Msq}", warpRowId, warpName, sourceTerritory, sourcePosition.X, sourcePosition.Y, sourcePosition.Z, _seenMsqId); } private void OnFrameworkTick(IFramework _) { - IGameObject gameObject = _200E_202A_206E_200E_206C_202A_200B_200C_202B_206B_206A_206D_206B_200D_202A_200D_202C_202E_206C_202C_206E_200B_200D_200B_202B_202E_206C_200E_200B_202E_206A_202C_202B_202A_200B_202C_206D_206A_206D_202E(_objectTable, 0); - int num = (_206D_202B_206C_206B_200D_202E_202E_202B_202E_200D_206B_206B_202E_200E_206B_206F_202C_206E_200D_200C_206A_202E_206D_206C_206A_206E_206B_206F_202C_202A_206F_206E_202E_206D_206F_202A_202C_200D_200E_206C_202E(_condition, ConditionFlag.BetweenAreas) ? 661314614 : 661314612); - bool flag = default(bool); - while (true) + IGameObject gameObject = _objectTable[0]; + bool flag = _condition[ConditionFlag.BetweenAreas] || _condition[ConditionFlag.BetweenAreas51]; + DateTime utcNow = DateTime.UtcNow; + TickWarp(gameObject, flag, utcNow); + TickTicket(gameObject, flag, utcNow); + if (gameObject != null && !flag) { - int num2 = num; - int num3 = 661314613; - int num4 = num2; - int num5; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 4: - num = 661314612; - continue; - case 5: - _lastPlayerTerritory = _200E_200D_206A_206E_202D_202A_206D_206D_206A_206B_206F_206E_200B_202A_206E_202C_200D_202B_202B_202C_200F_200C_206E_206E_206A_200D_200B_202E_200C_200F_206B_206E_202E_206A_200C_200B_206C_206B_200B_206E_202E(_clientState); - _lastPlayerPosition = _202D_202B_206F_206B_200E_200E_200E_206D_200C_206A_200F_200B_202E_206A_200F_202E_206F_202A_202A_202A_206F_200C_202A_206C_202A_206B_206C_202D_200F_200E_200E_202B_202D_202C_200B_202C_200E_200B_206C_200F_202E(gameObject); - return; - case 2: - num = (flag ? 661314613 : 661314608); - continue; - case 0: - _lastPlayerPosition = null; - return; - case 1: - num5 = (_206D_202B_206C_206B_200D_202E_202E_202B_202E_200D_206B_206B_202E_200E_206B_206F_202C_206E_200D_200C_206A_202E_206D_206C_206A_206E_206B_206F_202C_202A_206F_206E_202E_206D_206F_202A_202C_200D_200E_206C_202E(_condition, ConditionFlag.BetweenAreas51) ? 1 : 0); - break; - case 3: - num5 = 1; - break; - } - flag = (byte)num5 != 0; - DateTime utcNow = DateTime.UtcNow; - TickWarp(gameObject, flag, utcNow); - TickTicket(gameObject, flag, utcNow); - num = ((gameObject == null) ? 661314613 : 661314615); + _lastPlayerTerritory = _clientState.TerritoryType; + _lastPlayerPosition = gameObject.Position; + } + else + { + _lastPlayerPosition = null; } } - [MethodImpl(MethodImplOptions.NoInlining)] private void TickWarp(IGameObject? player, bool loading, DateTime now) { - int num = ((_warpPhase != EWarpPhase.None) ? 1067159357 : 1067159353); - bool flag = default(bool); - while (true) + if (_warpPhase == EWarpPhase.None) { - int num2 = num; - int num3 = 1067159346; - int num4 = num2; - int num5; - switch ((num4 | num3) - (num4 & num3)) + return; + } + bool flag = _condition[ConditionFlag.OccupiedInQuestEvent] || _condition[ConditionFlag.OccupiedInEvent]; + switch (_warpPhase) + { + case EWarpPhase.Armed: + if (loading) + { + EnterTransit(); + } + else if (flag) + { + _warpPhase = EWarpPhase.DialogOpen; + } + else if (!TryDetectJump(player, now) && now - _armedAt > ArmedTimeout) + { + ResetWarp("no transit within timeout"); + } + break; + case EWarpPhase.DialogOpen: + if (loading) + { + EnterTransit(); + } + else if (!flag) { - default: - continue; - case 27: - num = (TryDetectJump(player, now) ? 1067159339 : 1067159358); - continue; - case 4: - num = ((!loading) ? 1067159337 : 1067159351); - continue; - case 18: - num = ((!flag) ? 1067159349 : 1067159342); - continue; - case 13: - num = ((player == null) ? 1067159339 : 1067159356); - continue; - case 10: - CompleteWarp(_202D_202B_206F_206B_200E_200E_200E_206D_200C_206A_200F_200B_202E_206A_200F_202E_206F_202A_202A_202A_206F_200C_202A_206C_202A_206B_206C_202D_200F_200E_200E_202B_202D_202C_200B_202C_200E_200B_206C_200F_202E(player)); - num = 1067159339; - continue; - case 14: - num = ((!(_202D_202B_206F_206B_200E_200E_200E_206D_200C_206A_200F_200B_202E_206A_200F_202E_206F_202A_202A_202A_206F_200C_202A_206C_202A_206B_206C_202D_200F_200E_200E_202B_202D_202C_200B_202C_200E_200B_206C_200F_202E(player) != Vector3.Zero)) ? 1067159339 : 1067159334); - continue; - case 19: - num = (flag ? 1067159339 : 1067159355); - continue; - case 9: _warpPhase = EWarpPhase.AwaitingTransit; _awaitTransitSince = now; - return; - case 32: - num = ((!(_202D_202B_206F_206B_200E_200E_200E_206D_200C_206A_200F_200B_202E_206A_200F_202E_206F_202A_202A_202A_206F_200C_202A_206C_202A_206B_206C_202D_200F_200E_200E_202B_202D_202C_200B_202C_200E_200B_206C_200F_202E(player) != Vector3.Zero)) ? 1067159339 : 1067159352); - continue; - case 23: - num = 1067159353; - continue; - case 26: - num = ((!(now - _armedAt > ArmedTimeout)) ? 1067159339 : 1067159346); - continue; - case 11: - return; - case 0: - ResetWarp(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-454604409)); - return; - case 22: - num5 = (_206D_202B_206C_206B_200D_202E_202E_202B_202E_200D_206B_206B_202E_200E_206B_206F_202C_206E_200D_200C_206A_202E_206D_206C_206A_206E_206B_206F_202C_202A_206F_206E_202E_206D_206F_202A_202C_200D_200E_206C_202E(_condition, ConditionFlag.OccupiedInEvent) ? 1 : 0); - goto IL_0396; - case 6: - goto IL_023b; - case 17: - EnterTransit(); - return; - case 5: - EnterTransit(); - return; - case 7: - num = (TryDetectJump(player, now) ? 1067159339 : 1067159336); - continue; - case 31: - num = ((!(now - _jumpDetectedAt > JumpSettle)) ? 1067159339 : 1067159338); - continue; - case 24: - num = ((player == null) ? 1067159339 : 1067159314); - continue; - case 20: - CompleteWarp(_202D_202B_206F_206B_200E_200E_200E_206D_200C_206A_200F_200B_202E_206A_200F_202E_206F_202A_202A_202A_206F_200C_202A_206C_202A_206B_206C_202D_200F_200E_200E_202B_202D_202C_200B_202C_200E_200B_206C_200F_202E(player)); - return; - case 12: - num = ((!(now - _awaitTransitSince > CancelGrace)) ? 1067159339 : 1067159343); - continue; - case 3: - return; - case 16: - goto IL_0314; - case 8: - goto IL_0330; - case 25: - return; - case 15: - num = (_206D_202B_206C_206B_200D_202E_202E_202B_202E_200D_206B_206B_202E_200E_206B_206F_202C_206E_200D_200C_206A_202E_206D_206C_206A_206E_206B_206F_202C_202A_206F_206E_202E_206D_206F_202A_202C_200D_200E_206C_202E(_condition, ConditionFlag.OccupiedInQuestEvent) ? 1067159344 : 1067159332); - continue; - case 21: - EnterTransit(); - return; - case 28: - _warpPhase = EWarpPhase.DialogOpen; - return; - case 29: - ResetWarp(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-629431639)); - return; - case 2: - num5 = 1; - goto IL_0396; - case 1: - EnterTransit(); - return; - case 30: - break; - IL_023b: - num = (loading ? 1067159339 : 1067159359); - continue; - IL_0396: - flag = (byte)num5 != 0; - switch (_warpPhase) - { - case EWarpPhase.AwaitingTransit: - break; - case EWarpPhase.InTransit: - goto IL_023b; - case EWarpPhase.JumpSettling: - goto IL_0314; - case EWarpPhase.Armed: - goto IL_0330; - default: - goto IL_03ba; - case EWarpPhase.DialogOpen: - goto end_IL_0033; - } - goto case 4; - IL_03ba: - num = 1067159345; - continue; - IL_0330: - num = ((!loading) ? 1067159328 : 1067159347); - continue; - IL_0314: - num = ((!loading) ? 1067159341 : 1067159331); - continue; - end_IL_0033: - break; } - num = ((!loading) ? 1067159329 : 1067159335); + break; + case EWarpPhase.AwaitingTransit: + if (loading) + { + EnterTransit(); + } + else if (!TryDetectJump(player, now) && now - _awaitTransitSince > CancelGrace) + { + ResetWarp("dialog closed without transit (cancelled)"); + } + break; + case EWarpPhase.InTransit: + if (!loading && player != null && player.Position != Vector3.Zero) + { + CompleteWarp(player.Position); + } + break; + case EWarpPhase.JumpSettling: + if (loading) + { + EnterTransit(); + } + else if (now - _jumpDetectedAt > JumpSettle && player != null && player.Position != Vector3.Zero) + { + CompleteWarp(player.Position); + } + break; } } - [MethodImpl(MethodImplOptions.NoInlining)] private void EnterTransit() { _warpPhase = EWarpPhase.InTransit; - _202D_200C_200B_200F_206A_200F_200E_206C_206D_200F_202C_202B_202A_200F_202D_202E_202D_206B_206D_206A_200E_200C_200F_206E_202D_206C_206F_200B_202B_202A_202D_200C_200F_206B_202D_202D_202E_206E_202A_202E_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(701038804), new object[1] { _warpRowId }); + _logger.LogDebug("Warp recorder: loading transition detected for pending warp {Id}", _warpRowId); } - [MethodImpl(MethodImplOptions.NoInlining)] private bool TryDetectJump(IGameObject? player, DateTime now) { - int num = ((player == null) ? (-816594066) : (-816594069)); - while (true) + if (player == null || !_lastPlayerPosition.HasValue || _lastPlayerTerritory != _clientState.TerritoryType) { - int num2 = num; - int num3 = -816594067; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = ((!(Vector3.DistanceSquared(_202D_202B_206F_206B_200E_200E_200E_206D_200C_206A_200F_200B_202E_206A_200F_202E_206F_202A_202A_202A_206F_200C_202A_206C_202A_206B_206C_202D_200F_200E_200E_202B_202D_202C_200B_202C_200E_200B_206C_200F_202E(player), _lastPlayerPosition.Value) < 1600f)) ? (-816594068) : (-816594071)); - break; - case 3: - return false; - case 1: - _warpPhase = EWarpPhase.JumpSettling; - _jumpDetectedAt = now; - _202D_200C_200B_200F_206A_200F_200E_206C_206D_200F_202C_202B_202A_200F_202D_202E_202D_206B_206D_206A_200E_200C_200F_206E_202D_206C_206F_200B_202B_202A_202D_200C_200F_206B_202D_202D_202E_206E_202A_202E_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-315128219), new object[1] { _warpRowId }); - return true; - case 6: - num = ((!_lastPlayerPosition.HasValue) ? (-816594066) : (-816594067)); - break; - case 4: - return false; - case 5: - num = -816594069; - break; - case 0: - num = ((_lastPlayerTerritory == _200E_200D_206A_206E_202D_202A_206D_206D_206A_206B_206F_206E_200B_202A_206E_202C_200D_202B_202B_202C_200F_200C_206E_206E_206A_200D_200B_202E_200C_200F_206B_206E_202E_206A_200C_200B_206C_206B_200B_206E_202E(_clientState)) ? (-816594065) : (-816594066)); - break; - } + return false; } + if (Vector3.DistanceSquared(player.Position, _lastPlayerPosition.Value) < 1600f) + { + return false; + } + _warpPhase = EWarpPhase.JumpSettling; + _jumpDetectedAt = now; + _logger.LogDebug("Warp recorder: position jump detected for pending warp {Id}", _warpRowId); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] private void CompleteWarp(Vector3 destPosition) { - WarpCapture warpCapture = new WarpCapture(_warpRowId, _warpName, _npcDataId, _sourceTerritory, _sourcePosition, (ushort)_200E_200D_206A_206E_202D_202A_206D_206D_206A_206B_206F_206E_200B_202A_206E_202C_200D_202B_202B_202C_200F_200C_206E_206E_206A_200D_200B_202E_200C_200F_206B_206E_202E_206A_200C_200B_206C_206B_200B_206E_202E(_clientState), destPosition, _seenMsqId); - _206C_202D_202A_202B_206A_206D_202C_200B_202D_202B_200D_200E_202C_202E_206D_200D_200E_206C_200C_206B_200F_206B_206A_202A_206A_206E_202D_206F_206A_200B_206E_206B_202B_206B_202D_202D_206D_202E_206B_202C_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1092964014), new object[8] { warpCapture.WarpRowId, warpCapture.WarpName, warpCapture.SourceTerritoryId, warpCapture.DestTerritoryId, destPosition.X, destPosition.Y, destPosition.Z, warpCapture.SeenDuringMsqId }); + WarpCapture warpCapture = new WarpCapture(_warpRowId, _warpName, _npcDataId, _sourceTerritory, _sourcePosition, (ushort)_clientState.TerritoryType, destPosition, _seenMsqId); + _logger.LogInformation("Warp recorder: captured warp {Id} ({Name}): {SrcTerritory} -> {DstTerritory} at ({X:F1}, {Y:F1}, {Z:F1}), MSQ {Msq}", warpCapture.WarpRowId, warpCapture.WarpName, warpCapture.SourceTerritoryId, warpCapture.DestTerritoryId, destPosition.X, destPosition.Y, destPosition.Z, warpCapture.SeenDuringMsqId); ResetWarp(null); this.WarpCaptured?.Invoke(warpCapture); } - [MethodImpl(MethodImplOptions.NoInlining)] private void ResetWarp(string? reason) { - int num = ((reason == null) ? (-171802818) : (-171802817)); - while (true) + if (reason != null && _warpPhase != EWarpPhase.None) { - int num2 = num; - int num3 = -171802819; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -171802817; - break; - case 3: - _warpPhase = EWarpPhase.None; - _npcDataId = null; - _seenMsqId = null; - _warpName = string.Empty; - return; - case 1: - _202D_200C_200B_200F_206A_200F_200E_206C_206D_200F_202C_202B_202A_200F_202D_202E_202D_206B_206D_206A_200E_200C_200F_206E_202D_206C_206F_200B_202B_202A_202D_200C_200F_206B_202D_202D_202E_206E_202A_202E_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1620536465), new object[2] { _warpRowId, reason }); - num = -171802818; - break; - case 2: - num = ((_warpPhase == EWarpPhase.None) ? (-171802818) : (-171802820)); - break; - } + _logger.LogDebug("Warp recorder: clearing pending warp {Id}: {Reason}", _warpRowId, reason); } + _warpPhase = EWarpPhase.None; + _npcDataId = null; + _seenMsqId = null; + _warpName = string.Empty; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void TickTicket(IGameObject? player, bool loading, DateTime now) { if (!_ticketItemId.HasValue) { - int num = -925651820; - InventoryManager* ptr = default(InventoryManager*); - TeleportTicketService.ScannedTicket current = default(TeleportTicketService.ScannedTicket); - int value = default(int); - int inventoryItemCount = default(int); - while (true) + if (!AutoCaptureEnabled) { - int num2 = num; - int num3 = -925651819; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (_ticketInventoryCounts.Count > 0) { - case 0: _ticketInventoryCounts.Clear(); - num = -925651811; - break; - case 1: - num = (AutoCaptureEnabled ? (-925651821) : (-925651817)); - break; - case 5: - ptr = InventoryManager.Instance(); - num = ((ptr != null) ? (-925651823) : (-925651822)); - break; - case 8: - return; - case 7: - return; - case 2: - num = ((_ticketInventoryCounts.Count <= 0) ? (-925651811) : (-925651819)); - break; - case 9: - return; - case 3: - num = -925651820; - break; - case 6: - num = ((!loading) ? (-925651824) : (-925651812)); - break; - case 4: - { - IEnumerator<TeleportTicketService.ScannedTicket> enumerator = _200F_200F_206A_206D_206A_202A_202A_206F_200B_200C_206C_206A_202E_206A_200E_206B_206B_200B_200C_206F_206E_200D_206F_202C_206F_206E_202C_202C_206D_206F_206F_206D_200B_206E_206B_200D_206E_202D_202E_202E(_teleportTicketService).GetEnumerator(); - try - { - num = 1492712344; - while (true) - { - int num7 = num; - num3 = 1492712348; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 2: - num = 1492712344; - break; - case 6: - _206C_202D_202A_202B_206A_206D_202C_200B_202D_202B_200D_200E_202C_202E_206D_200D_200E_206C_200C_206B_200F_206B_206A_202A_206A_206E_202D_206F_206A_200B_206E_206B_202B_206B_202D_202D_206D_202E_206B_202C_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-869991086), new object[4] - { - _206B_206F_200D_206D_200D_202C_206D_202B_200E_200E_202A_200F_200F_206A_202B_206A_206E_206A_206D_206A_202C_200B_206C_202B_206B_206C_200C_200B_206F_202C_202B_206B_202E_206B_200E_206F_200F_200E_202A_206F_202E(current), - _202E_202C_206A_200F_200D_200E_200D_200B_202A_206F_200E_206D_206A_200B_200D_202C_202D_206D_200B_200C_200F_202A_202B_200C_202A_200E_200B_200D_206A_202C_200D_200E_202A_202B_200C_200F_206C_206C_206E_206C_202E(current), - value, - inventoryItemCount - }); - _ticketItemId = _202E_202C_206A_200F_200D_200E_200D_200B_202A_206F_200E_206D_206A_200B_200D_202C_202D_206D_200B_200C_200F_202A_202B_200C_202A_200E_200B_200D_206A_202C_200D_200E_202A_202B_200C_200F_206C_206C_206E_206C_202E(current); - _ticketItemName = _206B_206F_200D_206D_200D_202C_206D_202B_200E_200E_202A_200F_200F_206A_202B_206A_206E_206A_206D_206A_202C_200B_206C_202B_206B_206C_200C_200B_206F_202C_202B_206B_202E_206B_200E_206F_200F_200E_202A_206F_202E(current); - _ticketSeenLoading = false; - _ticketArmedAt = now; - num = 1492712345; - break; - case 4: - num = (_206A_206C_202D_200E_206E_202B_206C_202B_206E_202E_202B_202B_202B_206A_206B_200F_200B_200F_206C_202D_202D_200E_200D_200B_200B_206B_206F_200C_200C_200E_206D_200D_206B_200C_202D_202C_206C_202D_200D_200F_202E((IEnumerator)enumerator) ? 1492712349 : 1492712351); - break; - case 0: - num = ((inventoryItemCount >= value) ? 1492712345 : 1492712346); - break; - case 1: - current = enumerator.Current; - inventoryItemCount = ptr->GetInventoryItemCount(_202E_202C_206A_200F_200D_200E_200D_200B_202A_206F_200E_206D_206A_200B_200D_202C_202D_206D_200B_200C_200F_202A_202B_200C_202A_200E_200B_200D_206A_202C_200D_200E_202A_202B_200C_200F_206C_206C_206E_206C_202E(current), isHq: false, checkEquipped: true, checkArmory: true, 0); - num = ((!_ticketInventoryCounts.TryGetValue(_202E_202C_206A_200F_200D_200E_200D_200B_202A_206F_200E_206D_206A_200B_200D_202C_202D_206D_200B_200C_200F_202A_202B_200C_202A_200E_200B_200D_206A_202C_200D_200E_202A_202B_200C_200F_206C_206C_206E_206C_202E(current), out value)) ? 1492712345 : 1492712348); - break; - case 5: - _ticketInventoryCounts[_202E_202C_206A_200F_200D_200E_200D_200B_202A_206F_200E_206D_206A_200B_200D_202C_202D_206D_200B_200C_200F_202A_202B_200C_202A_200E_200B_200D_206A_202C_200D_200E_202A_202B_200C_200F_206C_206C_206E_206C_202E(current)] = inventoryItemCount; - num = 1492712344; - break; - case 3: - return; - } - } - } - finally - { - num = ((enumerator == null) ? (-1158690697) : (-1158690700)); - while (true) - { - int num10 = num; - num3 = -1158690699; - num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1158690700; - break; - case 1: - _206A_200E_206F_200D_206D_206C_202B_202D_206B_202E_202E_202C_206F_206A_200F_202E_202E_202B_200F_202E_200C_206F_202D_206A_206A_200B_202B_206F_200C_206D_202D_200D_206A_206C_200C_200D_200B_202C_206D_206A_202E((IDisposable)enumerator); - num = -1158690697; - break; - case 2: - goto end_IL_02cb; - } - continue; - end_IL_02cb: - break; - } - } } + } + else + { + if (loading) + { + return; + } + InventoryManager* ptr = InventoryManager.Instance(); + if (ptr == null) + { + return; + } + foreach (TeleportTicketService.ScannedTicket scannedTicket in _teleportTicketService.ScannedTickets) + { + int inventoryItemCount = ptr->GetInventoryItemCount(scannedTicket.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0); + if (_ticketInventoryCounts.TryGetValue(scannedTicket.ItemId, out var value) && inventoryItemCount < value) + { + _logger.LogInformation("Ticket recorder: {Name} (#{Id}) count decreased {Old} -> {New}, arming capture", scannedTicket.Name, scannedTicket.ItemId, value, inventoryItemCount); + _ticketItemId = scannedTicket.ItemId; + _ticketItemName = scannedTicket.Name; + _ticketSeenLoading = false; + _ticketArmedAt = now; + } + _ticketInventoryCounts[scannedTicket.ItemId] = inventoryItemCount; } } } - if (loading) + else if (loading) { _ticketSeenLoading = true; } else if (_ticketSeenLoading) { - if (player != null && !(_202D_202B_206F_206B_200E_200E_200E_206D_200C_206A_200F_200B_202E_206A_200F_202E_206F_202A_202A_202A_206F_200C_202A_206C_202A_206B_206C_202D_200F_200E_200E_202B_202D_202C_200B_202C_200E_200B_206C_200F_202E(player) == Vector3.Zero)) + if (player != null && !(player.Position == Vector3.Zero)) { - TicketCapture ticketCapture = new TicketCapture(_ticketItemId.Value, _ticketItemName, (ushort)_200E_200D_206A_206E_202D_202A_206D_206D_206A_206B_206F_206E_200B_202A_206E_202C_200D_202B_202B_202C_200F_200C_206E_206E_206A_200D_200B_202E_200C_200F_206B_206E_202E_206A_200C_200B_206C_206B_200B_206E_202E(_clientState), _202D_202B_206F_206B_200E_200E_200E_206D_200C_206A_200F_200B_202E_206A_200F_202E_206F_202A_202A_202A_206F_200C_202A_206C_202A_206B_206C_202D_200F_200E_200E_202B_202D_202C_200B_202C_200E_200B_206C_200F_202E(player)); - _206C_202D_202A_202B_206A_206D_202C_200B_202D_202B_200D_200E_202C_202E_206D_200D_200E_206C_200C_206B_200F_206B_206A_202A_206A_206E_202D_206F_206A_200B_206E_206B_202B_206B_202D_202D_206D_202E_206B_202C_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(99542911), new object[6] - { - ticketCapture.ItemName, - ticketCapture.ItemId, - ticketCapture.DestTerritoryId, - _202D_202B_206F_206B_200E_200E_200E_206D_200C_206A_200F_200B_202E_206A_200F_202E_206F_202A_202A_202A_206F_200C_202A_206C_202A_206B_206C_202D_200F_200E_200E_202B_202D_202C_200B_202C_200E_200B_206C_200F_202E(player).X, - _202D_202B_206F_206B_200E_200E_200E_206D_200C_206A_200F_200B_202E_206A_200F_202E_206F_202A_202A_202A_206F_200C_202A_206C_202A_206B_206C_202D_200F_200E_200E_202B_202D_202C_200B_202C_200E_200B_206C_200F_202E(player).Y, - _202D_202B_206F_206B_200E_200E_200E_206D_200C_206A_200F_200B_202E_206A_200F_202E_206F_202A_202A_202A_206F_200C_202A_206C_202A_206B_206C_202D_200F_200E_200E_202B_202D_202C_200B_202C_200E_200B_206C_200F_202E(player).Z - }); + TicketCapture ticketCapture = new TicketCapture(_ticketItemId.Value, _ticketItemName, (ushort)_clientState.TerritoryType, player.Position); + _logger.LogInformation("Ticket recorder: captured {Name} (#{Id}) -> {Territory} ({X:F1}, {Y:F1}, {Z:F1})", ticketCapture.ItemName, ticketCapture.ItemId, ticketCapture.DestTerritoryId, player.Position.X, player.Position.Y, player.Position.Z); ClearTicket(); this.TicketCaptured?.Invoke(ticketCapture); } } else if (now - _ticketArmedAt > TicketTimeout) { - _202D_200C_200B_200F_206A_200F_200E_206C_206D_200F_202C_202B_202A_200F_202D_202E_202D_206B_206D_206A_200E_200C_200F_206E_202D_206C_206F_200B_202B_202A_202D_200C_200F_206B_202D_202D_202E_206E_202A_202E_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1635034712), new object[1] { _ticketItemId }); + _logger.LogDebug("Ticket recorder: no transit after ticket use, clearing pending {Id}", _ticketItemId); ClearTicket(); } } @@ -1401,155 +492,10 @@ internal sealed class WarpRecordingService : IDisposable private uint? CurrentMsqQuestId() { - QuestId questId = _questFunctions.GetMainScenarioQuest().Item1.CurrentQuest as QuestId; - int num = (((object)questId != null) ? (-37158078) : (-37158079)); - while (true) + if (!(_questFunctions.GetMainScenarioQuest().Item1.CurrentQuest is QuestId questId)) { - int num2 = num; - int num3 = -37158077; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_005f; - case 1: - return _200F_200F_206D_206A_206C_200E_202D_200B_206E_206D_202C_202E_202A_202E_202E_200E_202C_206D_202E_206F_202A_200E_202C_200B_202A_206E_200D_206A_200D_200E_206A_200D_202C_202B_206D_202D_200D_202A_202D_202E((ElementId)questId); - case 2: - return null; - } - continue; - IL_005f: - num = -37158079; + return null; } - } - - static bool _202C_202C_202C_200D_206F_206C_206F_202C_202A_202D_206F_206D_200E_206F_206C_202B_206F_200E_206B_200B_206C_206E_200E_202E_202D_206B_206B_200B_206D_202D_200F_200F_202B_202C_200D_202A_206E_200D_202C_202E(IDalamudPluginInterface P_0) - { - return P_0.IsDev; - } - - static DirectoryInfo _200E_202B_202B_200F_202D_200B_202D_206F_200B_202A_200E_202B_200E_206D_206B_206B_202C_202C_206E_200C_206E_202D_202E_206A_206C_202A_200F_206E_200C_202D_206C_206C_206C_206A_202C_202C_206F_200E_202A_206E_202E(IDalamudPluginInterface P_0) - { - return P_0.ConfigDirectory; - } - - static string _200B_202C_200B_202A_206F_202E_206F_206F_206B_206B_202B_200C_200D_200E_206B_202B_202E_206F_206F_200E_206A_202B_206C_202C_200B_200D_200D_206C_206C_200E_206E_202C_206F_206E_202E_200F_202E_200D_200B_206A_202E(FileSystemInfo P_0) - { - return P_0.FullName; - } - - static string _202A_202C_202E_206D_202D_206E_200E_200B_200F_200C_206B_202D_200F_206D_202D_200B_206D_200C_202B_200E_206D_206E_206E_206E_206A_202C_202C_202C_200B_202C_200B_202A_206B_200F_202B_200C_202B_200C_200C_200D_202E(string P_0, string P_1) - { - return Path.Combine(P_0, P_1); - } - - static bool _206D_206D_206A_206F_206F_202A_206A_202C_206C_206C_200E_200C_202D_200B_206D_206B_200F_206F_200B_206C_202B_206F_200C_200E_200B_206A_200E_202E_200E_206C_206B_200C_200E_206D_202D_206F_202D_200B_206C_202D_202E(string P_0) - { - return File.Exists(P_0); - } - - static void _202D_200C_200B_200F_206A_200F_200E_206C_206D_200F_202C_202B_202A_200F_202D_202E_202D_206B_206D_206A_200E_200C_200F_206E_202D_206C_206F_200B_202B_202A_202D_200C_200F_206B_202D_202D_202E_206E_202A_202E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - unsafe static delegate* unmanaged<EventFramework*, GameObject*, FFXIVClientStructs.FFXIV.Client.Game.Event.EventId, short, ulong, uint*, byte, void> _206A_206A_202E_202D_200E_202E_200E_200C_202D_206D_206D_202E_200D_206F_202B_206F_206B_200F_202C_200F_206B_202B_202E_202D_202E_200D_202B_200E_202A_200D_206C_206A_206B_202D_206E_200C_200C_202D_202A_202B_202E() - { - return EventFramework.MemberFunctionPointers.ProcessEventPlay; - } - - static void _206A_206C_206C_206A_200E_202D_206C_202D_202E_206E_206D_202B_202A_202B_200B_202A_206B_206A_200D_206B_200E_200D_206B_206A_206E_206E_200F_200E_206C_200B_202E_206F_200E_200E_206A_200B_200D_206D_200D_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - - static void _202A_202B_200F_202D_206E_202D_202D_206C_202B_202C_202C_206B_200B_202E_200C_200E_202B_202E_200B_206E_202B_202B_200F_206D_200D_202B_200F_206F_202C_200B_200D_202B_200F_206D_206B_206F_206D_200F_206C_206D_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update += P_1; - } - - static Delegate _206F_200C_202C_206C_202D_206A_202D_202E_202A_202C_206B_202D_200B_202C_202A_200E_202D_202D_200B_202D_200F_202E_200B_206C_202E_200D_202A_202D_206D_206C_202B_206D_202B_206F_200B_206B_206E_206B_206B_202B_202E(Delegate P_0, Delegate P_1) - { - return Delegate.Combine(P_0, P_1); - } - - static Delegate _202D_202B_206E_202E_206C_200C_202D_206E_206E_200F_202D_200E_202B_206E_202D_206A_206E_206D_206E_200C_206C_206A_206E_206F_202C_200E_206B_202E_206B_206D_206F_200B_200C_200E_200F_206C_206C_200D_202C_200C_202E(Delegate P_0, Delegate P_1) - { - return Delegate.Remove(P_0, P_1); - } - - static IGameObject _200E_202A_206E_200E_206C_202A_200B_200C_202B_206B_206A_206D_206B_200D_202A_200D_202C_202E_206C_202C_206E_200B_200D_200B_202B_202E_206C_200E_200B_202E_206A_202C_202B_202A_200B_202C_206D_206A_206D_202E(IObjectTable P_0, int P_1) - { - return P_0[P_1]; - } - - static Vector3 _202D_202B_206F_206B_200E_200E_200E_206D_200C_206A_200F_200B_202E_206A_200F_202E_206F_202A_202A_202A_206F_200C_202A_206C_202A_206B_206C_202D_200F_200E_200E_202B_202D_202C_200B_202C_200E_200B_206C_200F_202E(IGameObject P_0) - { - return P_0.Position; - } - - static uint _200E_200D_206A_206E_202D_202A_206D_206D_206A_206B_206F_206E_200B_202A_206E_202C_200D_202B_202B_202C_200F_200C_206E_206E_206A_200D_200B_202E_200C_200F_206B_206E_202E_206A_200C_200B_206C_206B_200B_206E_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static void _206C_202D_202A_202B_206A_206D_202C_200B_202D_202B_200D_200E_202C_202E_206D_200D_200E_206C_200C_206B_200F_206B_206A_202A_206A_206E_202D_206F_206A_200B_206E_206B_202B_206B_202D_202D_206D_202E_206B_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static void _206E_200C_202B_206E_206E_206B_200B_206C_202E_202B_206E_200E_200E_202A_206A_202C_206F_202E_206A_200F_206E_202C_200C_206F_200C_206C_202E_206D_200F_202E_206F_202E_200D_206B_206F_206B_206B_206B_200C_206E_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update -= P_1; - } - - static bool _202E_206F_200B_200E_200D_202E_200B_206C_206F_206B_206A_202C_202D_206C_202E_206F_206B_206D_206D_200B_202C_206E_200F_200F_202A_200C_200B_202D_200F_200D_206B_206B_202B_206A_200C_200D_200F_202C_206A_206C_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static IGameObject _202D_200D_200D_206E_206D_202E_202D_206F_206D_200F_206E_206E_202D_200D_206C_200D_206F_202A_200B_206C_202C_202C_200B_206D_202B_200D_206E_200B_200F_206A_202D_200B_202B_202B_206F_200D_202B_202D_202D_206E_202E(ITargetManager P_0) - { - return P_0.Target; - } - - static uint _200B_200D_206A_202C_200F_206D_202E_206B_206D_202C_206B_202A_206A_202B_200D_206D_200B_202D_202A_200C_206B_206C_200D_206A_200C_206A_200F_202A_200F_202C_200C_202A_202B_202A_202D_202D_200D_206A_202B_206D_202E(IGameObject P_0) - { - return P_0.BaseId; - } - - static bool _206D_202B_206C_206B_200D_202E_202E_202B_202E_200D_206B_206B_202E_200E_206B_206F_202C_206E_200D_200C_206A_202E_206D_206C_206A_206E_206B_206F_202C_202A_206F_206E_202E_206D_206F_202A_202C_200D_200E_206C_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static IReadOnlyList<TeleportTicketService.ScannedTicket> _200F_200F_206A_206D_206A_202A_202A_206F_200B_200C_206C_206A_202E_206A_200E_206B_206B_200B_200C_206F_206E_200D_206F_202C_206F_206E_202C_202C_206D_206F_206F_206D_200B_206E_206B_200D_206E_202D_202E_202E(TeleportTicketService P_0) - { - return P_0.ScannedTickets; - } - - static uint _202E_202C_206A_200F_200D_200E_200D_200B_202A_206F_200E_206D_206A_200B_200D_202C_202D_206D_200B_200C_200F_202A_202B_200C_202A_200E_200B_200D_206A_202C_200D_200E_202A_202B_200C_200F_206C_206C_206E_206C_202E(TeleportTicketService.ScannedTicket P_0) - { - return P_0.ItemId; - } - - static string _206B_206F_200D_206D_200D_202C_206D_202B_200E_200E_202A_200F_200F_206A_202B_206A_206E_206A_206D_206A_202C_200B_206C_202B_206B_206C_200C_200B_206F_202C_202B_206B_202E_206B_200E_206F_200F_200E_202A_206F_202E(TeleportTicketService.ScannedTicket P_0) - { - return P_0.Name; - } - - static bool _206A_206C_202D_200E_206E_202B_206C_202B_206E_202E_202B_202B_202B_206A_206B_200F_200B_200F_206C_202D_202D_200E_200D_200B_200B_206B_206F_200C_200C_200E_206D_200D_206B_200C_202D_202C_206C_202D_200D_200F_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206A_200E_206F_200D_206D_206C_202B_202D_206B_202E_202E_202C_206F_206A_200F_202E_202E_202B_200F_202E_200C_206F_202D_206A_206A_200B_202B_206F_200C_206D_202D_200D_206A_206C_200C_200D_200B_202C_206D_206A_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static ushort _200F_200F_206D_206A_206C_200E_202D_200B_206E_206D_202C_202E_202A_202E_202E_200E_202C_206D_202E_206F_202A_200E_202C_200B_202A_206E_200D_206A_200D_200E_206A_200D_202C_202B_206D_202D_200D_202A_202D_202E(ElementId P_0) - { - return P_0.Value; + return questId.Value; } } diff --git a/Questionable/Questionable.Notifications/NotificationService.cs b/Questionable/Questionable.Notifications/NotificationService.cs index aebbe74..6fae6c4 100644 --- a/Questionable/Questionable.Notifications/NotificationService.cs +++ b/Questionable/Questionable.Notifications/NotificationService.cs @@ -1,4 +1,3 @@ -using System.Runtime.CompilerServices; using LLib.Notifications; using Questionable.Model.Questing; @@ -9,169 +8,56 @@ internal sealed class NotificationService(OutOfGameNotifier notifier, Configurat public void Notify(EInteractionType interactionType, string text) { Configuration.NotificationConfiguration notifications = configuration.Notifications; - int num = (notifications.Enabled ? (-1688153917) : (-1688153920)); - bool flag = default(bool); - while (true) + if (notifications.Enabled && interactionType switch { - int num2 = num; - int num3 = -1688153918; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - num = -1688153920; - break; - case 0: - flag = true; - num = -1688153916; - break; - case 6: - num = ((!flag) ? (-1688153911) : (-1688153909)); - break; - case 3: - flag = notifications.AlertForSnipe; - num = -1688153916; - break; - case 8: - flag = notifications.AlertForSinglePlayerDuties; - num = -1688153916; - break; - case 4: - num = ((interactionType == EInteractionType.Snipe) ? (-1688153919) : (-1688153912)); - break; - case 7: - num = ((interactionType == EInteractionType.SinglePlayerDuty) ? (-1688153910) : (-1688153914)); - break; - case 2: - return; - case 12: - flag = notifications.AlertForDuties; - num = -1688153916; - break; - case 10: - num = -1688153918; - break; - case 11: - return; - case 9: - Dispatch(text); - num = -1688153911; - break; - case 1: - num = ((interactionType == EInteractionType.Duty) ? (-1688153906) : (-1688153915)); - break; - } + EInteractionType.Duty => notifications.AlertForDuties, + EInteractionType.SinglePlayerDuty => notifications.AlertForSinglePlayerDuties, + EInteractionType.Snipe => notifications.AlertForSnipe, + _ => true, + }) + { + Dispatch(text); } } public void NotifyStopCondition(string text) { Configuration.NotificationConfiguration notifications = configuration.Notifications; - int num = ((!notifications.Enabled) ? 2126924644 : 2126924645); - while (true) + if (notifications.Enabled && notifications.AlertForStopConditions) { - int num2 = num; - int num3 = 2126924646; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - Dispatch(text); - num = 2126924644; - break; - case 3: - num = ((!notifications.AlertForStopConditions) ? 2126924644 : 2126924647); - break; - case 2: - return; - case 0: - num = 2126924645; - break; - } + Dispatch(text); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void Dispatch(string text) { Configuration.NotificationConfiguration notifications = configuration.Notifications; - int num = ((!notifications.FlashTaskbar) ? (-1607290236) : (-1607290238)); - while (true) + if (notifications.FlashTaskbar) { - int num2 = num; - int num3 = -1607290237; - int num4 = num2; - int num5; - switch ((num4 | num3) - (num4 & num3)) + notifier.FlashTaskbar(); + } + int num; + if (notifications.OnlyWhenUnfocused) + { + num = ((!notifier.IsGameForeground) ? 1 : 0); + if (num == 0) { - case 2: - num = ((!notifications.PlaySound) ? (-1607290240) : (-1607290235)); - break; - case 3: - return; - case 5: - num = -1607290238; - break; - case 7: - num = ((!notifications.OnlyWhenUnfocused) ? (-1607290237) : (-1607290233)); - break; - case 6: - _206A_202D_202D_206E_200E_200E_206F_206A_200B_206B_206C_200D_202D_202E_206B_206C_200D_206F_206C_202B_200C_206B_202E_202E_202A_202B_206F_200E_206C_200E_206A_202B_202A_206D_202C_206A_206E_206F_202E_206F_202E(notifier, _202B_206B_202E_206D_202C_202C_202E_200D_200F_200F_200B_200E_206A_206F_200F_206D_200C_202D_206B_206A_200C_200F_202A_202E_200E_202B_200B_202A_200C_200C_202E_202B_202C_206F_202D_202D_202C_202A_202D_206F_202E(notifications.SoundFile)); - num = -1607290240; - break; - case 4: - num5 = ((!_202E_200F_206F_206D_202A_206C_206B_206C_200E_202B_200C_206D_202B_200D_202D_200E_202D_206E_206F_202E_200B_202C_206D_200F_200B_200B_200C_200B_200B_206B_206F_206B_206A_206D_200C_206D_200C_202B_202A_206B_202E(notifier)) ? 1 : 0); - if (num5 != 0) - { - goto IL_00fa; - } - goto IL_011b; - case 0: - num5 = 1; - goto IL_00fa; - case 1: - { - _206C_206B_202D_206F_206B_206A_206C_202E_206D_200B_206A_202B_202E_202E_206F_202D_202E_206D_202B_200D_206B_202B_206F_206B_202B_206E_206E_200C_200D_202D_206E_200B_206A_202D_200F_206A_202D_206B_200B_202E_202E(notifier); - num = -1607290236; - break; - } - IL_00fa: - if (notifications.ShowTrayMessage) - { - _200E_200D_202A_200B_200B_200D_206E_202E_206A_202D_206F_206B_206B_206B_206F_202C_206D_200D_200D_200F_200C_202D_206D_200D_202A_200D_206F_202C_200E_206F_200B_206F_200D_200F_206E_200C_206C_202B_200E_206A_202E(notifier, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), text); - } - goto IL_011b; - IL_011b: - num = ((num5 == 0) ? (-1607290240) : (-1607290239)); - break; + goto IL_0054; } } - } - - static void _206C_206B_202D_206F_206B_206A_206C_202E_206D_200B_206A_202B_202E_202E_206F_202D_202E_206D_202B_200D_206B_202B_206F_206B_202B_206E_206E_200C_200D_202D_206E_200B_206A_202D_200F_206A_202D_206B_200B_202E_202E(OutOfGameNotifier P_0) - { - P_0.FlashTaskbar(); - } - - static bool _202E_200F_206F_206D_202A_206C_206B_206C_200E_202B_200C_206D_202B_200D_202D_200E_202D_206E_206F_202E_200B_202C_206D_200F_200B_200B_200C_200B_200B_206B_206F_206B_206A_206D_200C_206D_200C_202B_202A_206B_202E(OutOfGameNotifier P_0) - { - return P_0.IsGameForeground; - } - - static void _200E_200D_202A_200B_200B_200D_206E_202E_206A_202D_206F_206B_206B_206B_206F_202C_206D_200D_200D_200F_200C_202D_206D_200D_202A_200D_206F_202C_200E_206F_200B_206F_200D_200F_206E_200C_206C_202B_200E_206A_202E(OutOfGameNotifier P_0, string P_1, string P_2) - { - P_0.ShowTrayNotification(P_1, P_2); - } - - static string _202B_206B_202E_206D_202C_202C_202E_200D_200F_200F_200B_200E_206A_206F_200F_206D_200C_202D_206B_206A_200C_200F_202A_202E_200E_202B_200B_202A_200C_200C_202E_202B_202C_206F_202D_202D_202C_202A_202D_206F_202E(string P_0) - { - return WindowsSounds.ResolvePath(P_0); - } - - static void _206A_202D_202D_206E_200E_200E_206F_206A_200B_206B_206C_200D_202D_202E_206B_206C_200D_206F_206C_202B_200C_206B_202E_202E_202A_202B_206F_200E_206C_200E_206A_202B_202A_206D_202C_206A_206E_206F_202E_206F_202E(OutOfGameNotifier P_0, string P_1) - { - P_0.PlayAlertSound(P_1); + else + { + num = 1; + } + if (notifications.ShowTrayMessage) + { + notifier.ShowTrayNotification("Questionable", text); + } + goto IL_0054; + IL_0054: + if (num != 0 && notifications.PlaySound) + { + notifier.PlayAlertSound(WindowsSounds.ResolvePath(notifications.SoundFile)); + } } } diff --git a/Questionable/Questionable.Validation.Validators/BasicSequenceValidator.cs b/Questionable/Questionable.Validation.Validators/BasicSequenceValidator.cs index 3070459..3ca1873 100644 --- a/Questionable/Questionable.Validation.Validators/BasicSequenceValidator.cs +++ b/Questionable/Questionable.Validation.Validators/BasicSequenceValidator.cs @@ -1,9 +1,5 @@ -using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; -using System.Runtime.CompilerServices; using Questionable.Model; using Questionable.Model.Questing; @@ -11,494 +7,95 @@ namespace Questionable.Validation.Validators; internal sealed class BasicSequenceValidator : IQuestValidator { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<QuestSequence, bool> _003C_003E9__0_0; - - public static Func<QuestSequence, byte> _003C_003E9__0_1; - - public static Func<byte, bool> _003C_003E9__0_2; - - public static Func<QuestSequence, bool> _003C_003E9__0_3; - - internal bool _003CValidate_003Eb__0_0(QuestSequence x) - { - return _206E_206E_206E_206C_206C_202D_200F_206A_202E_202D_206A_206E_202A_202D_200E_200B_206B_202E_200B_206A_202A_202C_202A_206E_202D_206C_202C_200D_206D_200E_200B_206E_200B_206D_206C_206D_206B_202A_200D_200F_202E(x) == 0; - } - - internal byte _003CValidate_003Eb__0_1(QuestSequence x) - { - return _206E_206E_206E_206C_206C_202D_200F_206A_202E_202D_206A_206E_202A_202D_200E_200B_206B_202E_200B_206A_202A_202C_202A_206E_202D_206C_202C_200D_206D_200E_200B_206E_200B_206D_206C_206D_206B_202A_200D_200F_202E(x); - } - - internal bool _003CValidate_003Eb__0_2(byte x) - { - return x != byte.MaxValue; - } - - internal bool _003CValidate_003Eb__0_3(QuestSequence x) - { - return _206E_206E_206E_206C_206C_202D_200F_206A_202E_202D_206A_206E_202A_202D_200E_200B_206B_202E_200B_206A_202A_202C_202A_206E_202D_206C_202C_200D_206D_200E_200B_206E_200B_206D_206C_206D_206B_202A_200D_200F_202E(x) == byte.MaxValue; - } - - static byte _206E_206E_206E_206C_206C_202D_200F_206A_202E_202D_206A_206E_202A_202D_200E_200B_206B_202E_200B_206A_202A_202C_202A_206E_202D_206C_202C_200D_206D_200E_200B_206E_200B_206D_206C_206D_206B_202A_200D_200F_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass0_0 - { - public int i; - - internal bool _003CValidate_003Eb__4(QuestSequence x) - { - return _200B_206E_200F_200B_206B_200C_206A_206F_206C_202B_200B_202E_202E_200D_200D_206F_206C_200C_200F_202E_200E_200E_206D_206D_206A_200B_202A_202B_206A_202B_202A_206C_206D_202B_206F_202C_206B_202E_206B_200E_202E(x) == i; - } - - static byte _200B_206E_200F_200B_206B_200C_206A_206F_206C_202B_200B_202E_202E_200D_200D_206F_206C_200C_200F_202E_200E_200E_206D_206D_206A_200B_202A_202B_206A_202B_202A_206C_206D_202B_206F_202C_206B_202E_206B_200E_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - } - - [CompilerGenerated] - private sealed class _003CValidate_003Ed__0 : IEnumerable<ValidationIssue>, IEnumerable, IEnumerator<ValidationIssue>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ValidationIssue _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - private Quest quest; - - public Quest _003C_003E3__quest; - - private _003C_003Ec__DisplayClass0_0 _003C_003E8__1; - - private List<QuestSequence> _003Csequences_003E5__2; - - private QuestSequence _003CfoundStart_003E5__3; - - private List<QuestSequence>.Enumerator _003C_003E7__wrap3; - - private int _003CmaxSequence_003E5__5; - - ValidationIssue IEnumerator<ValidationIssue>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CValidate_003Ed__0(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _202D_202D_202E_206D_200D_206B_200E_200B_202E_200E_206C_206E_200B_202E_206A_202C_202C_202C_206F_200F_200F_200F_206C_202D_200D_200C_202C_200C_202D_206A_202A_202C_200E_206A_206E_206D_202E_202E_206E_202A_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num == -3) ? (-1108787515) : (-1108787514)); - while (true) - { - int num3 = num2; - int num4 = -1108787516; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 0: - num2 = -1108787514; - continue; - case 2: - if (num == 2) - { - num2 = -1108787515; - continue; - } - break; - case 1: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E8__1 = null; - _003Csequences_003E5__2 = null; - _003CfoundStart_003E5__3 = null; - _003C_003E7__wrap3 = default(List<QuestSequence>.Enumerator); - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - try - { - int num; - ValidationIssue validationIssue = default(ValidationIssue); - QuestSequence current = default(QuestSequence); - ValidationIssue validationIssue2 = default(ValidationIssue); - QuestInfo questInfo = default(QuestInfo); - switch (_003C_003E1__state) - { - default: - num = -218365441; - goto IL_002d; - case 1: - break; - case 2: - _003C_003E1__state = -3; - num = -218365453; - goto IL_002d; - case 0: - goto IL_01f4; - case 3: - goto IL_02ac; - case 4: - goto IL_0597; - IL_002d: - while (true) - { - int num2 = num; - int num3 = -218365443; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 22: - goto IL_00ad; - case 18: - goto end_IL_0008; - case 15: - goto end_IL_002d; - case 23: - goto IL_014f; - case 2: - return false; - case 6: - goto IL_018f; - case 4: - { - int num5 = _003C_003E8__1.i; - _003C_003Ec__DisplayClass0_0 _003C_003Ec__DisplayClass0_ = _003C_003E8__1; - num3 = 1; - num4 = num5; - _003C_003Ec__DisplayClass0_.i = (num4 | num3) + (num4 & num3); - num = -218365456; - break; - } - case 16: - goto IL_01f4; - case 17: - _003C_003E2__current = validationIssue; - _003C_003E1__state = 4; - return true; - case 1: - goto IL_0289; - case 3: - goto IL_02ac; - case 7: - _003C_003E2__current = new ValidationIssue - { - PathType = EPathType.Quest, - Id = _206B_206C_202D_206D_202B_202B_202E_202B_200C_206F_202A_200E_206B_202B_200F_200F_202E_202A_200C_200B_200F_200F_206F_206C_206B_206F_206F_202A_206E_202E_202A_206A_202B_206C_206B_200E_200D_206C_206A_206E_202E((object)quest.Id), - Location = SchemaValidationHelper.FormatQuestLocation(_206E_200F_200C_206F_200D_200D_200F_202D_202C_206A_206D_202A_206C_200F_206C_200B_202A_200B_206F_200E_206E_206F_206C_202B_200F_206E_202B_202E_200E_206B_200C_202E_202E_200C_202B_200E_202A_202C_202B_200F_202E(current), null), - Type = EIssueType.InstantQuestWithMultipleSteps, - Severity = EIssueSeverity.Error, - Description = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1806487031) - }; - _003C_003E1__state = 2; - return true; - case 20: - goto IL_0340; - case 5: - _003C_003E2__current = validationIssue2; - _003C_003E1__state = 3; - return true; - case 9: - goto IL_03c4; - case 10: - _003CmaxSequence_003E5__5 = (from x in _003Csequences_003E5__2 - select _003C_003Ec._206E_206E_206E_206C_206C_202D_200F_206A_202E_202D_206A_206E_202A_202D_200E_200B_206B_202E_200B_206A_202A_202C_202A_206E_202D_206C_202C_200D_206D_200E_200B_206E_200B_206D_206C_206D_206B_202A_200D_200F_202E(x) into x - where x != byte.MaxValue - select x).Max(); - _003C_003E8__1 = new _003C_003Ec__DisplayClass0_0(); - _003C_003E8__1.i = 0; - num = -218365456; - break; - case 11: - num = -218365441; - break; - case 14: - goto IL_0484; - case 13: - goto IL_04ac; - case 8: - _003C_003E2__current = new ValidationIssue - { - PathType = EPathType.Quest, - Id = _206B_206C_202D_206D_202B_202B_202E_202B_200C_206F_202A_200E_206B_202B_200F_200F_202E_202A_200C_200B_200F_200F_206F_206C_206B_206F_206F_202A_206E_202E_202A_206A_202B_206C_206B_200E_200D_206C_206A_206E_202E((object)quest.Id), - Location = SchemaValidationHelper.FormatQuestLocation(0, null), - Type = EIssueType.MissingSequence0, - Severity = EIssueSeverity.Error, - Description = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1619010830) - }; - _003C_003E1__state = 1; - return true; - case 21: - _003C_003E7__wrap3 = _003Csequences_003E5__2.GetEnumerator(); - _003C_003E1__state = -3; - num = -218365453; - break; - case 19: - _003C_003Em__Finally1(); - _003C_003E7__wrap3 = default(List<QuestSequence>.Enumerator); - num = -218365443; - break; - case 12: - goto IL_0597; - case 0: - return false; - } - continue; - IL_04ac: - num = ((_003C_003E8__1.i <= _003CmaxSequence_003E5__5) ? (-218365463) : (-218365461)); - continue; - IL_014f: - num = ((!(quest.Info is QuestInfo)) ? (-218365443) : (-218365449)); - continue; - IL_0340: - List<QuestSequence> foundSequences = _003Csequences_003E5__2.Where((QuestSequence x) => _003C_003Ec__DisplayClass0_0._200B_206E_200F_200B_206B_200C_206A_206F_206C_202B_200B_202E_202E_200D_200D_206F_206C_200C_200F_202E_200E_200E_206D_206D_206A_200B_202A_202B_206A_202B_202A_206C_206D_202B_206F_202C_206B_202E_206B_200E_202E(x) == _003C_003E8__1.i).ToList(); - validationIssue2 = ValidateSequences(quest, _003C_003E8__1.i, foundSequences); - num = ((!(validationIssue2 != null)) ? (-218365447) : (-218365448)); - continue; - IL_0484: - num = (_003C_003E7__wrap3.MoveNext() ? (-218365452) : (-218365458)); - continue; - IL_00ad: - _003C_003E8__1 = null; - List<QuestSequence> foundSequences2 = _003Csequences_003E5__2.Where((QuestSequence x) => _003C_003Ec._206E_206E_206E_206C_206C_202D_200F_206A_202E_202D_206A_206E_202A_202D_200E_200B_206B_202E_200B_206A_202A_202C_202A_206E_202D_206C_202C_200D_206D_200E_200B_206E_200B_206D_206C_206D_206B_202A_200D_200F_202E(x) == byte.MaxValue).ToList(); - validationIssue = ValidateSequences(quest, 255, foundSequences2); - num = ((!(validationIssue != null)) ? (-218365443) : (-218365460)); - continue; - IL_018f: - questInfo = quest.Info as QuestInfo; - num = ((questInfo == null) ? (-218365462) : (-218365444)); - continue; - IL_03c4: - current = _003C_003E7__wrap3.Current; - num = ((current == _003CfoundStart_003E5__3) ? (-218365453) : (-218365446)); - continue; - IL_0289: - num = ((!questInfo.CompletesInstantly) ? (-218365462) : (-218365464)); - continue; - end_IL_002d: - break; - } - goto case 2; - IL_0597: - _003C_003E1__state = -1; - num = -218365443; - goto IL_002d; - IL_02ac: - _003C_003E1__state = -1; - num = -218365447; - goto IL_002d; - IL_01f4: - _003C_003E1__state = -1; - _003Csequences_003E5__2 = _200C_200F_200F_202E_206E_202D_206F_202A_200B_200B_206F_206B_206A_206E_202B_200D_200D_200E_200E_206B_206C_200B_206A_206E_200E_202D_202E_202E_202C_206F_202C_202E_206C_200C_206C_202B_206E_202E_200C_200E_202E(quest.Root); - _003CfoundStart_003E5__3 = _003Csequences_003E5__2.FirstOrDefault((QuestSequence x) => _003C_003Ec._206E_206E_206E_206C_206C_202D_200F_206A_202E_202D_206A_206E_202A_202D_200E_200B_206B_202E_200B_206A_202A_202C_202A_206E_202D_206C_202C_200D_206D_200E_200B_206E_200B_206D_206C_206D_206B_202A_200D_200F_202E(x) == 0); - num = ((_003CfoundStart_003E5__3 != null) ? (-218365445) : (-218365451)); - goto IL_002d; - end_IL_0008: - break; - } - _003C_003E1__state = -1; - return false; - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - ((IDisposable)_003C_003E7__wrap3/*cast due to .constrained prefix*/).Dispose(); - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _200E_200E_206C_202A_206E_200B_202A_200C_200D_202E_200B_206A_202C_200D_202D_206E_202D_206B_206C_206A_200D_200E_206F_206A_200C_202B_206B_206E_202C_202C_206A_202C_202A_202B_206E_200D_206B_202E_200C_206D_202E(); - } - - [DebuggerHidden] - IEnumerator<ValidationIssue> IEnumerable<ValidationIssue>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? (-1853104470) : (-1853104472)); - _003CValidate_003Ed__0 _003CValidate_003Ed__ = default(_003CValidate_003Ed__0); - while (true) - { - int num2 = num; - int num3 = -1853104471; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - _003CValidate_003Ed__.quest = _003C_003E3__quest; - return _003CValidate_003Ed__; - case 1: - num = ((_003C_003El__initialThreadId != _202D_202D_202E_206D_200D_206B_200E_200B_202E_200E_206C_206E_200B_202E_206A_202C_202C_202C_206F_200F_200F_200F_206C_202D_200D_200C_202C_200C_202D_206A_202A_202C_200E_206A_206E_206D_202E_202E_206E_202A_202E()) ? (-1853104470) : (-1853104469)); - break; - case 2: - _003C_003E1__state = 0; - _003CValidate_003Ed__ = this; - num = -1853104467; - break; - case 0: - num = -1853104472; - break; - case 3: - _003CValidate_003Ed__ = new _003CValidate_003Ed__0(0); - num = -1853104467; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ValidationIssue>)this).GetEnumerator(); - } - - static int _202D_202D_202E_206D_200D_206B_200E_200B_202E_200E_206C_206E_200B_202E_206A_202C_202C_202C_206F_200F_200F_200F_206C_202D_200D_200C_202C_200C_202D_206A_202A_202C_200E_206A_206E_206D_202E_202E_206E_202A_202E() - { - return Environment.CurrentManagedThreadId; - } - - static List<QuestSequence> _200C_200F_200F_202E_206E_202D_206F_202A_200B_200B_206F_206B_206A_206E_202B_200D_200D_200E_200E_206B_206C_200B_206A_206E_200E_202D_202E_202E_202C_206F_202C_202E_206C_200C_206C_202B_206E_202E_200C_200E_202E(QuestRoot P_0) - { - return P_0.QuestSequence; - } - - static string _206B_206C_202D_206D_202B_202B_202E_202B_200C_206F_202A_200E_206B_202B_200F_200F_202E_202A_200C_200B_200F_200F_206F_206C_206B_206F_206F_202A_206E_202E_202A_206A_202B_206C_206B_200E_200D_206C_206A_206E_202E(object P_0) - { - return P_0.ToString(); - } - - static byte _206E_200F_200C_206F_200D_200D_200F_202D_202C_206A_206D_202A_206C_200F_206C_200B_202A_200B_206F_200E_206E_206F_206C_202B_200F_206E_202B_202E_200E_206B_200C_202E_202E_200C_202B_200E_202A_202C_202B_200F_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - - static NotSupportedException _200E_200E_206C_202A_206E_200B_202A_200C_200D_202E_200B_206A_202C_200D_202D_206E_202D_206B_206C_206A_200D_200E_206F_206A_200C_202B_206B_206E_202C_202C_206A_202C_202A_202B_206E_200D_206B_202E_200C_206D_202E() - { - return new NotSupportedException(); - } - } - - [IteratorStateMachine(typeof(_003CValidate_003Ed__0))] public IEnumerable<ValidationIssue> Validate(Quest quest) { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CValidate_003Ed__0(-2) + List<QuestSequence> sequences = quest.Root.QuestSequence; + QuestSequence foundStart = sequences.FirstOrDefault((QuestSequence x) => x.Sequence == 0); + if (foundStart == null) { - _003C_003E3__quest = quest - }; - } - - IEnumerable<ValidationIssue> IQuestValidator.Validate(Quest quest) - { - //ILSpy generated this explicit interface implementation from .override directive in Validate - return this.Validate(quest); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private static ValidationIssue? ValidateSequences(Quest quest, int sequenceNo, List<QuestSequence> foundSequences) - { - int num = ((foundSequences.Count != 0) ? (-2063346227) : (-2063346230)); - while (true) - { - int num2 = num; - int num3 = -2063346231; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + yield return new ValidationIssue { - case 0: - num = -2063346230; - break; - case 3: - return new ValidationIssue + PathType = EPathType.Quest, + Id = quest.Id.ToString(), + Location = SchemaValidationHelper.FormatQuestLocation(0, null), + Type = EIssueType.MissingSequence0, + Severity = EIssueSeverity.Error, + Description = "Missing quest start" + }; + } + else if (quest.Info is QuestInfo { CompletesInstantly: not false }) + { + foreach (QuestSequence item in sequences) + { + if (item != foundStart) { - PathType = EPathType.Quest, - Id = _206D_206D_206D_206D_202B_202D_202C_202A_206C_206A_206C_202B_206E_200B_202E_200C_202C_206E_206B_202A_206F_200F_206D_206F_202D_206F_200E_206B_206D_200C_202A_200B_202C_200B_202B_202D_206A_206E_202D_202B_202E((object)quest.Id), - Location = SchemaValidationHelper.FormatQuestLocation((byte)sequenceNo, null), - Type = EIssueType.MissingSequence, - Severity = EIssueSeverity.Error, - Description = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1578841753) - }; - case 4: - num = ((foundSequences.Count < 2) ? (-2063346229) : (-2063346232)); - break; - case 1: - return new ValidationIssue + yield return new ValidationIssue + { + PathType = EPathType.Quest, + Id = quest.Id.ToString(), + Location = SchemaValidationHelper.FormatQuestLocation(item.Sequence, null), + Type = EIssueType.InstantQuestWithMultipleSteps, + Severity = EIssueSeverity.Error, + Description = "Instant quest should not have any sequences after the start" + }; + } + } + } + else + { + if (!(quest.Info is QuestInfo)) + { + yield break; + } + int maxSequence = (from x in sequences + select x.Sequence into x + where x != byte.MaxValue + select x).Max(); + int i; + for (i = 0; i <= maxSequence; i++) + { + List<QuestSequence> foundSequences = sequences.Where((QuestSequence x) => x.Sequence == i).ToList(); + ValidationIssue validationIssue = ValidateSequences(quest, i, foundSequences); + if (validationIssue != null) { - PathType = EPathType.Quest, - Id = _206D_206D_206D_206D_202B_202D_202C_202A_206C_206A_206C_202B_206E_200B_202E_200C_202C_206E_206B_202A_206F_200F_206D_206F_202D_206F_200E_206B_206D_200C_202A_200B_202C_200B_202B_202D_206A_206E_202D_202B_202E((object)quest.Id), - Location = SchemaValidationHelper.FormatQuestLocation((byte)sequenceNo, null), - Type = EIssueType.DuplicateSequence, - Severity = EIssueSeverity.Error, - Description = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-312193419) - }; - case 2: - return null; + yield return validationIssue; + } + } + List<QuestSequence> foundSequences2 = sequences.Where((QuestSequence x) => x.Sequence == byte.MaxValue).ToList(); + ValidationIssue validationIssue2 = ValidateSequences(quest, 255, foundSequences2); + if (validationIssue2 != null) + { + yield return validationIssue2; } } } - static string _206D_206D_206D_206D_202B_202D_202C_202A_206C_206A_206C_202B_206E_200B_202E_200C_202C_206E_206B_202A_206F_200F_206D_206F_202D_206F_200E_206B_206D_200C_202A_200B_202C_200B_202B_202D_206A_206E_202D_202B_202E(object P_0) + private static ValidationIssue? ValidateSequences(Quest quest, int sequenceNo, List<QuestSequence> foundSequences) { - return P_0.ToString(); + if (foundSequences.Count == 0) + { + return new ValidationIssue + { + PathType = EPathType.Quest, + Id = quest.Id.ToString(), + Location = SchemaValidationHelper.FormatQuestLocation((byte)sequenceNo, null), + Type = EIssueType.MissingSequence, + Severity = EIssueSeverity.Error, + Description = "Missing sequence" + }; + } + if (foundSequences.Count >= 2) + { + return new ValidationIssue + { + PathType = EPathType.Quest, + Id = quest.Id.ToString(), + Location = SchemaValidationHelper.FormatQuestLocation((byte)sequenceNo, null), + Type = EIssueType.DuplicateSequence, + Severity = EIssueSeverity.Error, + Description = "Duplicate sequence" + }; + } + return null; } } diff --git a/Questionable/Questionable.Validation.Validators/CompletionFlagsValidator.cs b/Questionable/Questionable.Validation.Validators/CompletionFlagsValidator.cs index dec6ceb..0650ed5 100644 --- a/Questionable/Questionable.Validation.Validators/CompletionFlagsValidator.cs +++ b/Questionable/Questionable.Validation.Validators/CompletionFlagsValidator.cs @@ -1,10 +1,6 @@ -using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Questionable.Controller.Utils; using Questionable.Model; using Questionable.Model.Questing; @@ -13,523 +9,38 @@ namespace Questionable.Validation.Validators; internal sealed class CompletionFlagsValidator : IQuestValidator { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<QuestStep, long> _003C_003E9__0_0; - - internal long _003CValidate_003Eb__0_0(QuestStep x) - { - _003C_003Ec__DisplayClass0_0 CS_0024_003C_003E8__locals2 = new _003C_003Ec__DisplayClass0_0 - { - x = x - }; - int num = ((!QuestWorkUtils.HasCompletionFlags(_202E_206D_202E_200E_202B_200E_202A_202B_206C_200B_200E_200D_200B_200C_206B_206B_206E_206B_202E_202E_200F_200C_202B_200F_200F_200B_202C_206F_202E_202A_206A_202B_200F_200F_202A_200C_206F_200B_202D_200E_202E(CS_0024_003C_003E8__locals2.x))) ? 1047291959 : 1047291956); - while (true) - { - int num2 = num; - int num3 = 1047291957; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return 0L; - case 1: - return _202B_202E_206B_206B_200C_206D_202A_202B_200B_206B_206B_200D_200F_202A_206D_200F_206F_200B_206D_202B_200E_206D_200C_202C_206C_200E_200B_202A_202B_200C_200F_200B_200D_202B_200D_202C_206C_200F_206E_206D_202E(_200D_200F_202E_200F_200C_202D_202E_200E_202A_200B_200B_200E_206A_206D_206E_200C_202A_200D_202A_206D_202C_200E_206F_206E_206E_202A_202D_206F_202C_200E_206E_206E_200E_206C_202D_206F_206D_206B_200F_200E_202E(0, 6).Select(delegate(int y) - { - QuestWorkValue questWorkValue = _003C_003Ec__DisplayClass0_0._200D_200B_206D_206B_200B_202C_202E_202B_206C_206E_206E_206C_206F_200B_206A_206D_200C_200B_200F_202C_200D_202D_200D_200D_206E_202E_206B_200B_200E_206B_206A_200D_202B_206A_202D_206E_202B_200D_206E_206D_202E(CS_0024_003C_003E8__locals2.x)[y]; - int num5 = ((questWorkValue != null) ? 1457577313 : 1457577314); - while (true) - { - int num6 = num5; - int num7 = 1457577315; - int num8 = num6; - switch ((num8 | num7) - (num8 & num7)) - { - case 0: - goto IL_0056; - case 2: - return (long)_003C_003Ec__DisplayClass0_0._200C_206F_202B_202D_206C_202A_202B_200C_206B_206E_202D_206C_202D_206E_202D_200B_202D_200E_206C_206C_200F_202E_206D_202C_200F_202D_206C_202E_206E_200C_206C_202C_202E_200E_206A_200E_202D_206A_202A_200D_202E((ulong)(_003C_003Ec__DisplayClass0_0._202D_202C_206D_206D_202A_206E_206A_206D_206B_206A_202D_202D_202E_202A_206C_200B_202D_202C_202A_206E_200E_200C_200E_202E_206C_202E_206A_202E_202B_202B_200F_200E_200B_200D_202B_202A_200F_202C_206D_206F_202E(questWorkValue).GetValueOrDefault() * 16 + _003C_003Ec__DisplayClass0_0._200C_202A_200D_200E_202B_206F_206D_206C_206B_200E_202C_206D_202A_200E_202B_202E_202D_206D_206D_206E_200F_200F_202A_206A_200D_206A_206D_206C_206F_202A_202D_206B_206A_206D_202B_200E_202A_200B_202C_202E(questWorkValue).GetValueOrDefault()), 8 * y); - case 1: - return 0L; - } - continue; - IL_0056: - num5 = 1457577314; - } - })); - case 0: - goto IL_007e; - } - continue; - IL_007e: - num = 1047291956; - } - } - - static List<QuestWorkValue> _202E_206D_202E_200E_202B_200E_202A_202B_206C_200B_200E_200D_200B_200C_206B_206B_206E_206B_202E_202E_200F_200C_202B_200F_200F_200B_202C_206F_202E_202A_206A_202B_200F_200F_202A_200C_206F_200B_202D_200E_202E(QuestStep P_0) - { - return P_0.CompletionQuestVariablesFlags; - } - - static IEnumerable<int> _200D_200F_202E_200F_200C_202D_202E_200E_202A_200B_200B_200E_206A_206D_206E_200C_202A_200D_202A_206D_202C_200E_206F_206E_206E_202A_202D_206F_202C_200E_206E_206E_200E_206C_202D_206F_206D_206B_200F_200E_202E(int P_0, int P_1) - { - return Enumerable.Range(P_0, P_1); - } - - static long _202B_202E_206B_206B_200C_206D_202A_202B_200B_206B_206B_200D_200F_202A_206D_200F_206F_200B_206D_202B_200E_206D_200C_202C_206C_200E_200B_202A_202B_200C_200F_200B_200D_202B_200D_202C_206C_200F_206E_206D_202E(IEnumerable<long> P_0) - { - return P_0.Sum(); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass0_0 - { - public QuestStep x; - - internal long _003CValidate_003Eb__1(int y) - { - QuestWorkValue questWorkValue = _200D_200B_206D_206B_200B_202C_202E_202B_206C_206E_206E_206C_206F_200B_206A_206D_200C_200B_200F_202C_200D_202D_200D_200D_206E_202E_206B_200B_200E_206B_206A_200D_202B_206A_202D_206E_202B_200D_206E_206D_202E(x)[y]; - int num = ((questWorkValue != null) ? 1457577313 : 1457577314); - while (true) - { - int num2 = num; - int num3 = 1457577315; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0056; - case 2: - return (long)_200C_206F_202B_202D_206C_202A_202B_200C_206B_206E_202D_206C_202D_206E_202D_200B_202D_200E_206C_206C_200F_202E_206D_202C_200F_202D_206C_202E_206E_200C_206C_202C_202E_200E_206A_200E_202D_206A_202A_200D_202E((ulong)(_202D_202C_206D_206D_202A_206E_206A_206D_206B_206A_202D_202D_202E_202A_206C_200B_202D_202C_202A_206E_200E_200C_200E_202E_206C_202E_206A_202E_202B_202B_200F_200E_200B_200D_202B_202A_200F_202C_206D_206F_202E(questWorkValue).GetValueOrDefault() * 16 + _200C_202A_200D_200E_202B_206F_206D_206C_206B_200E_202C_206D_202A_200E_202B_202E_202D_206D_206D_206E_200F_200F_202A_206A_200D_206A_206D_206C_206F_202A_202D_206B_206A_206D_202B_200E_202A_200B_202C_202E(questWorkValue).GetValueOrDefault()), 8 * y); - case 1: - return 0L; - } - continue; - IL_0056: - num = 1457577314; - } - } - - static List<QuestWorkValue> _200D_200B_206D_206B_200B_202C_202E_202B_206C_206E_206E_206C_206F_200B_206A_206D_200C_200B_200F_202C_200D_202D_200D_200D_206E_202E_206B_200B_200E_206B_206A_200D_202B_206A_202D_206E_202B_200D_206E_206D_202E(QuestStep P_0) - { - return P_0.CompletionQuestVariablesFlags; - } - - static byte? _202D_202C_206D_206D_202A_206E_206A_206D_206B_206A_202D_202D_202E_202A_206C_200B_202D_202C_202A_206E_200E_200C_200E_202E_206C_202E_206A_202E_202B_202B_200F_200E_200B_200D_202B_202A_200F_202C_206D_206F_202E(QuestWorkValue P_0) - { - return P_0.High; - } - - static byte? _200C_202A_200D_200E_202B_206F_206D_206C_206B_200E_202C_206D_202A_200E_202B_202E_202D_206D_206D_206E_200F_200F_202A_206A_200D_206A_206D_206C_206F_202A_202D_206B_206A_206D_202B_200E_202A_200B_202C_202E(QuestWorkValue P_0) - { - return P_0.Low; - } - - static ulong _200C_206F_202B_202D_206C_202A_202B_200C_206B_206E_202D_206C_202D_206E_202D_200B_202D_200E_206C_206C_200F_202E_206D_202C_200F_202D_206C_202E_206E_200C_206C_202C_202E_200E_206A_200E_202D_206A_202A_200D_202E(ulong P_0, int P_1) - { - return BitOperations.RotateLeft(P_0, P_1); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass0_1 - { - public long flags; - - internal bool _003CValidate_003Eb__2(long x) - { - return x == flags; - } - } - - [CompilerGenerated] - private sealed class _003CValidate_003Ed__0 : IEnumerable<ValidationIssue>, IEnumerable, IEnumerator<ValidationIssue>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ValidationIssue _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - private Quest quest; - - public Quest _003C_003E3__quest; - - private IEnumerator<QuestSequence> _003C_003E7__wrap1; - - private QuestSequence _003Csequence_003E5__3; - - private List<long> _003CmappedCompletionFlags_003E5__4; - - private int _003Ci_003E5__5; - - ValidationIssue IEnumerator<ValidationIssue>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CValidate_003Ed__0(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _200D_200B_200C_206D_200D_202E_200D_200F_206F_202B_206A_206C_202A_206B_206D_200B_202A_200F_206B_200D_202B_202B_206F_200E_200C_206A_202C_206A_200B_202E_200C_202E_200D_206E_206C_206C_206E_200F_200E_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num == -3) ? 403293009 : 403293008); - while (true) - { - int num3 = num2; - int num4 = 403293009; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - default: - continue; - case 2: - num2 = 403293008; - continue; - case 1: - if (num == 1) - { - num2 = 403293009; - continue; - } - break; - case 0: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E7__wrap1 = null; - _003Csequence_003E5__3 = null; - _003CmappedCompletionFlags_003E5__4 = null; - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - try - { - int num = _003C_003E1__state; - int num2 = ((num == 0) ? 107528743 : 107528748); - _003C_003Ec__DisplayClass0_1 _003C_003Ec__DisplayClass0_ = default(_003C_003Ec__DisplayClass0_1); - while (true) - { - int num3 = num2; - int num4 = 107528743; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 13: - num2 = 107528748; - break; - case 10: - { - int num8 = _003Ci_003E5__5; - num4 = 1; - num5 = num8; - int num9 = num5 ^ num4; - int num10 = num5 & num4; - int num11 = num9 + (num10 + num10); - _003Ci_003E5__5 = num11; - num2 = 107528751; - break; - } - case 8: - num2 = ((_003Ci_003E5__5 < _206E_206D_202E_202C_200D_200E_202D_206C_200F_206F_202A_202B_200B_202E_206D_206E_200F_206B_202C_206C_206E_200D_202C_206F_206D_206A_200C_200B_202D_206A_200F_200C_202A_200C_202D_200D_202A_200C_200E_206C_202E(_003Csequence_003E5__3).Count) ? 107528736 : 107528741); - break; - case 6: - _003C_003E7__wrap1 = quest.AllSequences().GetEnumerator(); - _003C_003E1__state = -3; - num2 = 107528738; - break; - case 2: - _003CmappedCompletionFlags_003E5__4 = null; - _003Csequence_003E5__3 = null; - num2 = 107528738; - break; - case 5: - num2 = (_202B_202D_200C_206B_206E_200C_206C_202E_206C_200F_202D_206E_200D_206B_202C_206C_206A_202A_200C_202D_206E_206C_206C_206E_200C_200B_200E_202A_202D_202D_206A_202D_206F_206F_206B_200E_206F_200C_206C_206D_202E((IEnumerator)_003C_003E7__wrap1) ? 107528747 : 107528739); - break; - case 7: - _003C_003Ec__DisplayClass0_ = new _003C_003Ec__DisplayClass0_1 - { - flags = _003CmappedCompletionFlags_003E5__4[_003Ci_003E5__5] - }; - num2 = ((_003C_003Ec__DisplayClass0_.flags == 0L) ? 107528749 : 107528742); - break; - case 11: - num2 = ((num == 1) ? 107528745 : 107528740); - break; - case 15: - return false; - case 0: - _003C_003E1__state = -1; - num2 = ((_202A_206F_206D_202E_206F_202B_200B_206C_200B_206C_202C_202B_200F_202A_206C_206D_206A_202E_202E_202E_200F_202B_202E_200B_206A_206E_206F_200E_200B_202B_206D_202A_202B_200B_202B_202D_202B_206E_202B_206B_202E(quest.Id) != 5149) ? 107528737 : 107528744); - break; - case 14: - _003C_003E1__state = -3; - num2 = 107528749; - break; - case 9: - _003C_003E2__current = new ValidationIssue - { - PathType = EPathType.Quest, - Id = _202D_200B_202B_206B_200B_200F_206B_200C_200C_200C_200C_206C_206B_202C_202D_200B_206B_206B_202B_200C_206C_206C_206F_200E_202D_200F_202C_206B_206C_202E_202E_202B_202A_200F_200D_200C_202E_202B_202A_206D_202E((object)quest.Id), - Location = SchemaValidationHelper.FormatQuestLocation(_202C_202C_206D_202A_206F_206B_206B_200C_206A_206D_202D_200F_200D_200E_206D_206F_202C_200E_206D_206E_202B_202E_202A_202A_200B_206A_206A_206A_206C_202B_200D_202B_200D_202C_202A_200C_200C_200F_200C_202E(_003Csequence_003E5__3), _003Ci_003E5__5), - Type = EIssueType.DuplicateCompletionFlags, - Severity = EIssueSeverity.Error, - Description = _206F_200C_206C_202E_200D_206C_202D_206F_200B_206E_202C_206D_202B_206E_206E_200E_206E_206F_200E_202C_200E_200C_202E_202C_202A_202A_206E_202E_206E_206F_200E_200E_206F_200B_202A_206C_206E_200F_202B_200E_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1906420188), string.Join(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1403263077), _200C_202E_202C_202B_202A_202A_206F_200C_200B_200B_206A_200E_200C_202D_200C_206C_206A_202B_200C_202D_200C_202D_206A_206A_202A_200F_206F_200C_206E_202C_202B_200B_202A_200B_206E_200C_206C_202C_200F_206E_202E(_206E_206D_202E_202C_200D_200E_202D_206C_200F_206F_202A_202B_200B_202E_206D_206E_200F_206B_202C_206C_206E_200D_202C_206F_206D_206A_200C_200B_202D_206A_200F_200C_202A_200C_202D_200D_202A_200C_200E_206C_202E(_003Csequence_003E5__3)[_003Ci_003E5__5]))) - }; - _003C_003E1__state = 1; - return true; - case 12: - _003Csequence_003E5__3 = _003C_003E7__wrap1.Current; - _003CmappedCompletionFlags_003E5__4 = _206E_206D_202E_202C_200D_200E_202D_206C_200F_206F_202A_202B_200B_202E_206D_206E_200F_206B_202C_206C_206E_200D_202C_206F_206D_206A_200C_200B_202D_206A_200F_200C_202A_200C_202D_200D_202A_200C_200E_206C_202E(_003Csequence_003E5__3).Select(delegate(QuestStep x) - { - _003C_003Ec__DisplayClass0_0 CS_0024_003C_003E8__locals2 = new _003C_003Ec__DisplayClass0_0 - { - x = x - }; - int num12 = ((!QuestWorkUtils.HasCompletionFlags(_003C_003Ec._202E_206D_202E_200E_202B_200E_202A_202B_206C_200B_200E_200D_200B_200C_206B_206B_206E_206B_202E_202E_200F_200C_202B_200F_200F_200B_202C_206F_202E_202A_206A_202B_200F_200F_202A_200C_206F_200B_202D_200E_202E(CS_0024_003C_003E8__locals2.x))) ? 1047291959 : 1047291956); - while (true) - { - int num13 = num12; - int num14 = 1047291957; - int num15 = num13; - switch ((num15 | num14) - (num15 & num14)) - { - case 2: - return 0L; - case 1: - return _003C_003Ec._202B_202E_206B_206B_200C_206D_202A_202B_200B_206B_206B_200D_200F_202A_206D_200F_206F_200B_206D_202B_200E_206D_200C_202C_206C_200E_200B_202A_202B_200C_200F_200B_200D_202B_200D_202C_206C_200F_206E_206D_202E(_003C_003Ec._200D_200F_202E_200F_200C_202D_202E_200E_202A_200B_200B_200E_206A_206D_206E_200C_202A_200D_202A_206D_202C_200E_206F_206E_206E_202A_202D_206F_202C_200E_206E_206E_200E_206C_202D_206F_206D_206B_200F_200E_202E(0, 6).Select(delegate(int y) - { - QuestWorkValue questWorkValue = _003C_003Ec__DisplayClass0_0._200D_200B_206D_206B_200B_202C_202E_202B_206C_206E_206E_206C_206F_200B_206A_206D_200C_200B_200F_202C_200D_202D_200D_200D_206E_202E_206B_200B_200E_206B_206A_200D_202B_206A_202D_206E_202B_200D_206E_206D_202E(CS_0024_003C_003E8__locals2.x)[y]; - int num16 = ((questWorkValue != null) ? 1457577313 : 1457577314); - while (true) - { - int num17 = num16; - int num18 = 1457577315; - int num19 = num17; - switch ((num19 | num18) - (num19 & num18)) - { - case 0: - goto IL_0056; - case 2: - return (long)_003C_003Ec__DisplayClass0_0._200C_206F_202B_202D_206C_202A_202B_200C_206B_206E_202D_206C_202D_206E_202D_200B_202D_200E_206C_206C_200F_202E_206D_202C_200F_202D_206C_202E_206E_200C_206C_202C_202E_200E_206A_200E_202D_206A_202A_200D_202E((ulong)(_003C_003Ec__DisplayClass0_0._202D_202C_206D_206D_202A_206E_206A_206D_206B_206A_202D_202D_202E_202A_206C_200B_202D_202C_202A_206E_200E_200C_200E_202E_206C_202E_206A_202E_202B_202B_200F_200E_200B_200D_202B_202A_200F_202C_206D_206F_202E(questWorkValue).GetValueOrDefault() * 16 + _003C_003Ec__DisplayClass0_0._200C_202A_200D_200E_202B_206F_206D_206C_206B_200E_202C_206D_202A_200E_202B_202E_202D_206D_206D_206E_200F_200F_202A_206A_200D_206A_206D_206C_206F_202A_202D_206B_206A_206D_202B_200E_202A_200B_202C_202E(questWorkValue).GetValueOrDefault()), 8 * y); - case 1: - return 0L; - } - continue; - IL_0056: - num16 = 1457577314; - } - })); - case 0: - goto IL_007e; - } - continue; - IL_007e: - num12 = 1047291956; - } - }).ToList(); - _003Ci_003E5__5 = 0; - num2 = 107528751; - break; - case 1: - num2 = ((_003CmappedCompletionFlags_003E5__4.Count(_003C_003Ec__DisplayClass0_._003CValidate_003Eb__2) < 2) ? 107528749 : 107528750); - break; - case 3: - return false; - case 4: - _003C_003Em__Finally1(); - _003C_003E7__wrap1 = null; - return false; - } - } - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - int num = ((_003C_003E7__wrap1 == null) ? (-2045904747) : (-2045904746)); - while (true) - { - int num2 = num; - int num3 = -2045904745; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -2045904746; - break; - case 1: - _200F_206E_206F_202D_200B_202B_206A_202E_202E_200D_202D_200F_202D_202C_202B_202C_200F_202D_206E_202C_200D_200F_206D_200C_200F_200C_206D_202A_206A_202A_200C_200D_202D_200C_200C_200C_200F_200B_200D_200E_202E((IDisposable)_003C_003E7__wrap1); - num = -2045904747; - break; - case 2: - return; - } - } - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _206D_206B_206A_202B_206C_200C_200C_206C_202D_200F_202A_200F_206C_200D_206E_206C_206C_200B_206A_200B_202D_202C_206F_206D_200B_200B_200E_200B_202D_206E_202A_206D_200E_206A_200F_202C_202D_202C_206E_202E_202E(); - } - - [DebuggerHidden] - IEnumerator<ValidationIssue> IEnumerable<ValidationIssue>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? (-2052019382) : (-2052019379)); - _003CValidate_003Ed__0 _003CValidate_003Ed__ = default(_003CValidate_003Ed__0); - while (true) - { - int num2 = num; - int num3 = -2052019383; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - _003CValidate_003Ed__.quest = _003C_003E3__quest; - return _003CValidate_003Ed__; - case 3: - _003CValidate_003Ed__ = new _003CValidate_003Ed__0(0); - num = -2052019381; - break; - case 4: - num = ((_003C_003El__initialThreadId != _200D_200B_200C_206D_200D_202E_200D_200F_206F_202B_206A_206C_202A_206B_206D_200B_202A_200F_206B_200D_202B_202B_206F_200E_200C_206A_202C_206A_200B_202E_200C_202E_200D_206E_206C_206C_206E_200F_200E_202E()) ? (-2052019382) : (-2052019384)); - break; - case 1: - _003C_003E1__state = 0; - _003CValidate_003Ed__ = this; - num = -2052019381; - break; - case 0: - num = -2052019379; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ValidationIssue>)this).GetEnumerator(); - } - - static int _200D_200B_200C_206D_200D_202E_200D_200F_206F_202B_206A_206C_202A_206B_206D_200B_202A_200F_206B_200D_202B_202B_206F_200E_200C_206A_202C_206A_200B_202E_200C_202E_200D_206E_206C_206C_206E_200F_200E_202E() - { - return Environment.CurrentManagedThreadId; - } - - static ushort _202A_206F_206D_202E_206F_202B_200B_206C_200B_206C_202C_202B_200F_202A_206C_206D_206A_202E_202E_202E_200F_202B_202E_200B_206A_206E_206F_200E_200B_202B_206D_202A_202B_200B_202B_202D_202B_206E_202B_206B_202E(ElementId P_0) - { - return P_0.Value; - } - - static List<QuestStep> _206E_206D_202E_202C_200D_200E_202D_206C_200F_206F_202A_202B_200B_202E_206D_206E_200F_206B_202C_206C_206E_200D_202C_206F_206D_206A_200C_200B_202D_206A_200F_200C_202A_200C_202D_200D_202A_200C_200E_206C_202E(QuestSequence P_0) - { - return P_0.Steps; - } - - static string _202D_200B_202B_206B_200B_200F_206B_200C_200C_200C_200C_206C_206B_202C_202D_200B_206B_206B_202B_200C_206C_206C_206F_200E_202D_200F_202C_206B_206C_202E_202E_202B_202A_200F_200D_200C_202E_202B_202A_206D_202E(object P_0) - { - return P_0.ToString(); - } - - static byte _202C_202C_206D_202A_206F_206B_206B_200C_206A_206D_202D_200F_200D_200E_206D_206F_202C_200E_206D_206E_202B_202E_202A_202A_200B_206A_206A_206A_206C_202B_200D_202B_200D_202C_202A_200C_200C_200F_200C_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - - static List<QuestWorkValue> _200C_202E_202C_202B_202A_202A_206F_200C_200B_200B_206A_200E_200C_202D_200C_206C_206A_202B_200C_202D_200C_202D_206A_206A_202A_200F_206F_200C_206E_202C_202B_200B_202A_200B_206E_200C_206C_202C_200F_206E_202E(QuestStep P_0) - { - return P_0.CompletionQuestVariablesFlags; - } - - static string _206F_200C_206C_202E_200D_206C_202D_206F_200B_206E_202C_206D_202B_206E_206E_200E_206E_206F_200E_202C_200E_200C_202E_202C_202A_202A_206E_202E_206E_206F_200E_200E_206F_200B_202A_206C_206E_200F_202B_200E_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static bool _202B_202D_200C_206B_206E_200C_206C_202E_206C_200F_202D_206E_200D_206B_202C_206C_206A_202A_200C_202D_206E_206C_206C_206E_200C_200B_200E_202A_202D_202D_206A_202D_206F_206F_206B_200E_206F_200C_206C_206D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200F_206E_206F_202D_200B_202B_206A_202E_202E_200D_202D_200F_202D_202C_202B_202C_200F_202D_206E_202C_200D_200F_206D_200C_200F_200C_206D_202A_206A_202A_200C_200D_202D_200C_200C_200C_200F_200B_200D_200E_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static NotSupportedException _206D_206B_206A_202B_206C_200C_200C_206C_202D_200F_202A_200F_206C_200D_206E_206C_206C_200B_206A_200B_202D_202C_206F_206D_200B_200B_200E_200B_202D_206E_202A_206D_200E_206A_200F_202C_202D_202C_206E_202E_202E() - { - return new NotSupportedException(); - } - } - - [IteratorStateMachine(typeof(_003CValidate_003Ed__0))] public IEnumerable<ValidationIssue> Validate(Quest quest) { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CValidate_003Ed__0(-2) + if (quest.Id.Value == 5149) { - _003C_003E3__quest = quest - }; - } - - IEnumerable<ValidationIssue> IQuestValidator.Validate(Quest quest) - { - //ILSpy generated this explicit interface implementation from .override directive in Validate - return this.Validate(quest); + yield break; + } + foreach (QuestSequence sequence in quest.AllSequences()) + { + List<long> mappedCompletionFlags = sequence.Steps.Select((QuestStep x) => QuestWorkUtils.HasCompletionFlags(x.CompletionQuestVariablesFlags) ? Enumerable.Range(0, 6).Select(delegate(int y) + { + QuestWorkValue questWorkValue = x.CompletionQuestVariablesFlags[y]; + return (long)((questWorkValue == null) ? 0 : BitOperations.RotateLeft((ulong)(questWorkValue.High.GetValueOrDefault() * 16 + questWorkValue.Low.GetValueOrDefault()), 8 * y)); + }).Sum() : 0).ToList(); + int i = 0; + while (i < sequence.Steps.Count) + { + long flags = mappedCompletionFlags[i]; + if (flags != 0L && mappedCompletionFlags.Count((long x) => x == flags) >= 2) + { + yield return new ValidationIssue + { + PathType = EPathType.Quest, + Id = quest.Id.ToString(), + Location = SchemaValidationHelper.FormatQuestLocation(sequence.Sequence, i), + Type = EIssueType.DuplicateCompletionFlags, + Severity = EIssueSeverity.Error, + Description = "Duplicate completion flags: " + string.Join(", ", sequence.Steps[i].CompletionQuestVariablesFlags) + }; + } + int num = i + 1; + i = num; + } + } } } diff --git a/Questionable/Questionable.Validation.Validators/DefinitionSchemaValidator.cs b/Questionable/Questionable.Validation.Validators/DefinitionSchemaValidator.cs index 71444b9..9fcad8d 100644 --- a/Questionable/Questionable.Validation.Validators/DefinitionSchemaValidator.cs +++ b/Questionable/Questionable.Validation.Validators/DefinitionSchemaValidator.cs @@ -1,10 +1,6 @@ -using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; using System.Globalization; using System.Linq; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Text.Json; using System.Text.Json.Nodes; @@ -14,324 +10,6 @@ namespace Questionable.Validation.Validators; internal abstract class DefinitionSchemaValidator : IDefinitionSchemaValidator { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass12_0 - { - public DefinitionSchemaValidator _003C_003E4__this; - - public ushort id; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal ValidationIssue _003CValidateImmediate_003Eb__0(SchemaValidationHelper.ParsedError error) - { - return new ValidationIssue - { - PathType = _003C_003E4__this.PathType, - Id = id.ToString(_206F_200B_202C_200B_200B_202D_200F_206F_202C_206C_200D_202C_206C_200E_200D_202B_206B_206D_200F_206D_200F_202E_202E_202E_202C_200E_200D_200F_206C_200C_202E_206B_202E_206D_200D_206F_200C_206E_200F_202A_202E()), - Location = (_206E_202D_206D_202A_200F_206A_206D_206A_206C_202E_200B_206C_202D_202B_200E_206A_200B_202A_206E_206B_206C_200E_202C_202D_206B_200E_206A_206F_206C_202D_200C_206D_206D_200D_202E_206C_200C_200D_206B_202E_202E(error.PropertyPath) ? null : error.PropertyPath), - Type = EIssueType.InvalidJsonSchema, - Severity = EIssueSeverity.Error, - Description = (_206E_202D_206D_202A_200F_206A_206D_206A_206C_202E_200B_206C_202D_202B_200E_206A_200B_202A_206E_206B_206C_200E_202C_202D_206B_200E_206A_206F_206C_202D_200C_206D_206D_200D_202E_206C_200C_200D_206B_202E_202E(error.PropertyPath) ? error.Message : _202C_200C_200C_202E_206D_200F_200F_206C_202C_200E_200E_200F_202B_202C_206B_202D_202E_200D_206E_206E_200B_202D_200D_202E_200F_202D_206B_202C_206C_202C_202E_200D_200D_202A_200F_200E_200B_206F_202A_206E_202E(error.PropertyPath, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-437343681), error.Message)) - }; - } - - static CultureInfo _206F_200B_202C_200B_200B_202D_200F_206F_202C_206C_200D_202C_206C_200E_200D_202B_206B_206D_200F_206D_200F_202E_202E_202E_202C_200E_200D_200F_206C_200C_202E_206B_202E_206D_200D_206F_200C_206E_200F_202A_202E() - { - return CultureInfo.InvariantCulture; - } - - static bool _206E_202D_206D_202A_200F_206A_206D_206A_206C_202E_200B_206C_202D_202B_200E_206A_200B_202A_206E_206B_206C_200E_202C_202D_206B_200E_206A_206F_206C_202D_200C_206D_206D_200D_202E_206C_200C_200D_206B_202E_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static string _202C_200C_200C_202E_206D_200F_200F_206C_202C_200E_200E_200F_202B_202C_206B_202D_202E_200D_206E_206E_200B_202D_200D_202E_200F_202D_206B_202C_206C_202C_202E_200D_200D_202A_200F_200E_200B_206F_202A_206E_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - } - - [CompilerGenerated] - private sealed class _003CValidate_003Ed__11 : IEnumerable<ValidationIssue>, IEnumerable, IEnumerator<ValidationIssue>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ValidationIssue _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - public DefinitionSchemaValidator _003C_003E4__this; - - private Dictionary<ushort, JsonNode>.Enumerator _003C_003E7__wrap1; - - private List<ValidationIssue>.Enumerator _003C_003E7__wrap2; - - ValidationIssue IEnumerator<ValidationIssue>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CValidate_003Ed__11(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _206C_206E_202E_200D_200C_202A_206A_202A_206C_202D_206F_202A_206E_206D_206B_206E_202C_200F_202B_206C_200B_200D_206E_206E_206A_206A_200D_206F_202D_206D_200B_202D_200B_200C_206C_202D_206E_206C_200E_200D_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = -4; - int num3 = num; - int num4 = (((uint)(~(~num3 + num2)) <= 1u) ? 755205306 : 755205307); - while (true) - { - int num5 = num4; - num2 = 755205306; - num3 = num5; - switch ((num3 | num2) - (num3 & num2)) - { - default: - continue; - case 2: - num4 = 755205307; - continue; - case 1: - if (num == 1) - { - num4 = 755205306; - continue; - } - break; - case 0: - try - { - num4 = ((num == -4) ? (-1716476280) : (-1716476279)); - while (true) - { - int num6 = num4; - num2 = -1716476278; - num3 = num6; - int num7 = num3 + num2; - int num8 = num3 & num2; - switch (num7 - (num8 + num8)) - { - case 0: - num4 = -1716476279; - break; - case 3: - num4 = ((num == 1) ? (-1716476280) : (-1716476277)); - break; - case 1: - goto end_IL_008e; - case 2: - try - { - } - finally - { - _003C_003Em__Finally2(); - } - goto end_IL_008e; - } - continue; - end_IL_008e: - break; - } - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E7__wrap1 = default(Dictionary<ushort, JsonNode>.Enumerator); - _003C_003E7__wrap2 = default(List<ValidationIssue>.Enumerator); - _003C_003E1__state = -2; - } - - private bool MoveNext() - { - try - { - int num = _003C_003E1__state; - DefinitionSchemaValidator definitionSchemaValidator = _003C_003E4__this; - int num2 = ((num == 0) ? 946151668 : 946151666); - while (true) - { - int num3 = num2; - int num4 = 946151672; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 11: - _003C_003E1__state = -4; - num2 = 946151670; - break; - case 14: - num2 = (_003C_003E7__wrap2.MoveNext() ? 946151664 : 946151677); - break; - case 7: - num2 = (_003C_003E7__wrap1.MoveNext() ? 946151675 : 946151678); - break; - case 2: - num2 = 946151666; - break; - case 3: - { - _003C_003E7__wrap1.Current.Deconstruct(out ushort key, out JsonNode value); - ushort id = key; - JsonNode node = value; - _003C_003E7__wrap2 = definitionSchemaValidator.ValidateImmediate(id, node).GetEnumerator(); - _003C_003E1__state = -4; - num2 = 946151670; - break; - } - case 4: - return false; - case 12: - _003C_003E1__state = -1; - num2 = ((definitionSchemaValidator._nodes.Count != 0) ? 946151669 : 946151676); - break; - case 13: - num2 = ((definitionSchemaValidator._schema != null) ? 946151672 : 946151673); - break; - case 9: - return false; - case 0: - _003C_003E7__wrap1 = definitionSchemaValidator._nodes.GetEnumerator(); - _003C_003E1__state = -3; - num2 = 946151679; - break; - case 8: - { - ValidationIssue current = _003C_003E7__wrap2.Current; - _003C_003E2__current = current; - _003C_003E1__state = 1; - return true; - } - case 10: - num2 = ((num == 1) ? 946151667 : 946151665); - break; - case 1: - definitionSchemaValidator._schema = definitionSchemaValidator._schemaRegistrar.Get(definitionSchemaValidator.MainSchemaUri); - num2 = 946151672; - break; - case 5: - _003C_003Em__Finally2(); - _003C_003E7__wrap2 = default(List<ValidationIssue>.Enumerator); - num2 = 946151679; - break; - case 6: - _003C_003Em__Finally1(); - _003C_003E7__wrap1 = default(Dictionary<ushort, JsonNode>.Enumerator); - return false; - } - } - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - ((IDisposable)_003C_003E7__wrap1/*cast due to .constrained prefix*/).Dispose(); - } - - private void _003C_003Em__Finally2() - { - _003C_003E1__state = -3; - ((IDisposable)_003C_003E7__wrap2/*cast due to .constrained prefix*/).Dispose(); - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _200E_200B_206D_206B_200D_206C_202A_202A_202C_206D_206D_202B_200F_202E_202D_206A_202B_202D_206B_200B_202E_200F_200D_202C_202A_206C_206A_202A_202E_202C_202A_202D_200C_206F_206B_202A_200D_206B_206C_206E_202E(); - } - - [DebuggerHidden] - IEnumerator<ValidationIssue> IEnumerable<ValidationIssue>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? 1575118820 : 1575118817); - _003CValidate_003Ed__11 result = default(_003CValidate_003Ed__11); - while (true) - { - int num2 = num; - int num3 = 1575118816; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - _003C_003E1__state = 0; - result = this; - num = 1575118816; - break; - case 4: - result = new _003CValidate_003Ed__11(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = 1575118816; - break; - case 2: - num = 1575118817; - break; - case 0: - return result; - case 1: - num = ((_003C_003El__initialThreadId != _206C_206E_202E_200D_200C_202A_206A_202A_206C_202D_206F_202A_206E_206D_206B_206E_202C_200F_202B_206C_200B_200D_206E_206E_206A_206A_200D_206F_202D_206D_200B_202D_200B_200C_206C_202D_206E_206C_200E_200D_202E()) ? 1575118820 : 1575118819); - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ValidationIssue>)this).GetEnumerator(); - } - - static int _206C_206E_202E_200D_200C_202A_206A_202A_206C_202D_206F_202A_206E_206D_206B_206E_202C_200F_202B_206C_200B_200D_206E_206E_206A_206A_200D_206F_202D_206D_200B_202D_200B_200C_206C_202D_206E_206C_200E_200D_202E() - { - return Environment.CurrentManagedThreadId; - } - - static NotSupportedException _200E_200B_206D_206B_200D_206C_202A_202A_202C_206D_206D_202B_200F_202E_202D_206A_202B_202D_206B_200B_202E_200F_200D_202C_202A_206C_206A_202A_202E_202C_202A_202D_200C_206F_206B_202A_200D_206B_206C_206E_202E() - { - return new NotSupportedException(); - } - } - protected const string BaseUri = "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main"; private readonly SchemaRegistrar _schemaRegistrar; @@ -354,134 +32,71 @@ internal abstract class DefinitionSchemaValidator : IDefinitionSchemaValidator _nodes[id] = node; } - void IDefinitionSchemaValidator.Enqueue(ushort id, JsonNode node) - { - //ILSpy generated this explicit interface implementation from .override directive in Enqueue - this.Enqueue(id, node); - } - public void Reset() { _nodes.Clear(); } - void IDefinitionSchemaValidator.Reset() - { - //ILSpy generated this explicit interface implementation from .override directive in Reset - this.Reset(); - } - - [IteratorStateMachine(typeof(_003CValidate_003Ed__11))] public IEnumerable<ValidationIssue> Validate() { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CValidate_003Ed__11(-2) + if (_nodes.Count == 0) { - _003C_003E4__this = this - }; - } - - IEnumerable<ValidationIssue> IDefinitionSchemaValidator.Validate() - { - //ILSpy generated this explicit interface implementation from .override directive in Validate - return this.Validate(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - public List<ValidationIssue> ValidateImmediate(ushort id, JsonNode node) - { - int num = ((_schema != null) ? 2044491341 : 2044491340); - EvaluationResults evaluationResults = default(EvaluationResults); - List<SchemaValidationHelper.ParsedError> list = default(List<SchemaValidationHelper.ParsedError>); - while (true) + yield break; + } + if (_schema == null) { - int num2 = num; - int num3 = 2044491341; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _schema = _schemaRegistrar.Get(MainSchemaUri); + } + foreach (var (id, node) in _nodes) + { + foreach (ValidationIssue item in ValidateImmediate(id, node)) { - case 4: - num = 2044491340; - break; - case 2: - { - int num5 = 1; - List<ValidationIssue> list2 = new List<ValidationIssue>(num5); - CollectionsMarshal.SetCount(list2, num5); - CollectionsMarshal.AsSpan(list2)[0] = new ValidationIssue - { - PathType = PathType, - Id = id.ToString(_206B_202D_202D_200F_200F_206C_202D_202D_200D_202C_202A_206B_206C_202D_202E_200E_202A_206E_202D_202B_206B_200C_200E_206B_206F_200F_200F_202B_200D_206D_206A_200D_206E_200D_206D_202E_200F_200F_200D_206B_202E()), - Location = null, - Type = EIssueType.InvalidJsonSchema, - Severity = EIssueSeverity.Error, - Description = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(213210949) - }; - return list2; - } - case 0: - { - JsonSchema? schema = _schema; - JsonElement jsonElement = JsonSerializer.SerializeToElement(node); - EvaluationOptions evaluationOptions = _202B_202C_206F_206D_206C_200C_200D_206B_206F_206A_206E_200B_200E_200D_202C_206F_202E_200C_206A_206A_200C_206D_206C_206B_200C_206C_202E_200E_200B_202B_206F_202A_206F_206B_200C_200F_206E_206B_202C_200E_202E(); - _200D_206C_200E_206D_200E_200D_200D_206A_206E_202A_206B_206C_202A_206A_202B_206F_200F_206E_202E_200E_200F_200B_206A_206F_202C_200C_206B_206F_206F_200E_206B_200E_200E_206B_206E_202C_200D_206B_202D_200D_202E(evaluationOptions, _206B_202D_202D_200F_200F_206C_202D_202D_200D_202C_202A_206B_206C_202D_202E_200E_202A_206E_202D_202B_206B_200C_200E_206B_206F_200F_200F_202B_200D_206D_206A_200D_206E_200D_206D_202E_200F_200F_200D_206B_202E()); - _206D_200E_200E_202E_200E_200F_206E_206A_206C_200F_200E_206B_206B_200D_206C_200B_202D_200B_200B_206A_202D_200E_200E_206D_200D_206B_200C_206F_202C_202C_202E_206A_200E_200C_206A_200E_206E_206E_200C_202A_202E(evaluationOptions, OutputFormat.Hierarchical); - evaluationResults = _200B_202C_202B_202C_206E_200D_206D_202E_202A_200C_200F_202C_206D_206F_202C_200F_200F_202D_200C_202A_206A_200B_206B_202C_206C_200B_202E_206C_202A_202D_206E_202E_200E_206C_202C_206A_206C_206C_206B_206E_202E(schema, jsonElement, evaluationOptions); - num = ((!_202E_206B_206D_200D_200D_206C_202A_206A_206D_206F_206C_202A_206A_200E_206D_206F_206F_206E_206D_206E_206F_206E_206B_202A_202D_206C_200E_206B_206C_200F_206E_202A_200E_206F_200F_202E_202B_206A_202A_206A_202E(evaluationResults)) ? 2044491336 : 2044491339); - break; - } - case 5: - list = new List<SchemaValidationHelper.ParsedError>(); - SchemaValidationHelper.CollectLeafErrors(evaluationResults, list); - num = ((list.Count != 0) ? 2044491342 : 2044491343); - break; - case 1: - _schema = _schemaRegistrar.Get(MainSchemaUri); - num = 2044491341; - break; - case 3: - return list.Select([MethodImpl(MethodImplOptions.NoInlining)] (SchemaValidationHelper.ParsedError error) => new ValidationIssue - { - PathType = PathType, - Id = id.ToString(_003C_003Ec__DisplayClass12_0._206F_200B_202C_200B_200B_202D_200F_206F_202C_206C_200D_202C_206C_200E_200D_202B_206B_206D_200F_206D_200F_202E_202E_202E_202C_200E_200D_200F_206C_200C_202E_206B_202E_206D_200D_206F_200C_206E_200F_202A_202E()), - Location = (_003C_003Ec__DisplayClass12_0._206E_202D_206D_202A_200F_206A_206D_206A_206C_202E_200B_206C_202D_202B_200E_206A_200B_202A_206E_206B_206C_200E_202C_202D_206B_200E_206A_206F_206C_202D_200C_206D_206D_200D_202E_206C_200C_200D_206B_202E_202E(error.PropertyPath) ? null : error.PropertyPath), - Type = EIssueType.InvalidJsonSchema, - Severity = EIssueSeverity.Error, - Description = (_003C_003Ec__DisplayClass12_0._206E_202D_206D_202A_200F_206A_206D_206A_206C_202E_200B_206C_202D_202B_200E_206A_200B_202A_206E_206B_206C_200E_202C_202D_206B_200E_206A_206F_206C_202D_200C_206D_206D_200D_202E_206C_200C_200D_206B_202E_202E(error.PropertyPath) ? error.Message : _003C_003Ec__DisplayClass12_0._202C_200C_200C_202E_206D_200F_200F_206C_202C_200E_200E_200F_202B_202C_206B_202D_202E_200D_206E_206E_200B_202D_200D_202E_200F_202D_206B_202C_206C_202C_202E_200D_200D_202A_200F_200E_200B_206F_202A_206E_202E(error.PropertyPath, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-437343681), error.Message)) - }).ToList(); - case 6: - return new List<ValidationIssue>(); + yield return item; } } } - static EvaluationOptions _202B_202C_206F_206D_206C_200C_200D_206B_206F_206A_206E_200B_200E_200D_202C_206F_202E_200C_206A_206A_200C_206D_206C_206B_200C_206C_202E_200E_200B_202B_206F_202A_206F_206B_200C_200F_206E_206B_202C_200E_202E() + public List<ValidationIssue> ValidateImmediate(ushort id, JsonNode node) { - return new EvaluationOptions(); - } - - static CultureInfo _206B_202D_202D_200F_200F_206C_202D_202D_200D_202C_202A_206B_206C_202D_202E_200E_202A_206E_202D_202B_206B_200C_200E_206B_206F_200F_200F_202B_200D_206D_206A_200D_206E_200D_206D_202E_200F_200F_200D_206B_202E() - { - return CultureInfo.InvariantCulture; - } - - static void _200D_206C_200E_206D_200E_200D_200D_206A_206E_202A_206B_206C_202A_206A_202B_206F_200F_206E_202E_200E_200F_200B_206A_206F_202C_200C_206B_206F_206F_200E_206B_200E_200E_206B_206E_202C_200D_206B_202D_200D_202E(EvaluationOptions P_0, CultureInfo P_1) - { - P_0.Culture = P_1; - } - - static void _206D_200E_200E_202E_200E_200F_206E_206A_206C_200F_200E_206B_206B_200D_206C_200B_202D_200B_200B_206A_202D_200E_200E_206D_200D_206B_200C_206F_202C_202C_202E_206A_200E_200C_206A_200E_206E_206E_200C_202A_202E(EvaluationOptions P_0, OutputFormat P_1) - { - P_0.OutputFormat = P_1; - } - - static EvaluationResults _200B_202C_202B_202C_206E_200D_206D_202E_202A_200C_200F_202C_206D_206F_202C_200F_200F_202D_200C_202A_206A_200B_206B_202C_206C_200B_202E_206C_202A_202D_206E_202E_200E_206C_202C_206A_206C_206C_206B_206E_202E(JsonSchema P_0, JsonElement P_1, EvaluationOptions P_2) - { - return P_0.Evaluate(P_1, P_2); - } - - static bool _202E_206B_206D_200D_200D_206C_202A_206A_206D_206F_206C_202A_206A_200E_206D_206F_206F_206E_206D_206E_206F_206E_206B_202A_202D_206C_200E_206B_206C_200F_206E_202A_200E_206F_200F_202E_202B_206A_202A_206A_202E(EvaluationResults P_0) - { - return P_0.IsValid; + if (_schema == null) + { + _schema = _schemaRegistrar.Get(MainSchemaUri); + } + EvaluationResults evaluationResults = _schema.Evaluate(JsonSerializer.SerializeToElement(node), new EvaluationOptions + { + Culture = CultureInfo.InvariantCulture, + OutputFormat = OutputFormat.Hierarchical + }); + if (evaluationResults.IsValid) + { + return new List<ValidationIssue>(); + } + List<SchemaValidationHelper.ParsedError> list = new List<SchemaValidationHelper.ParsedError>(); + SchemaValidationHelper.CollectLeafErrors(evaluationResults, list); + if (list.Count == 0) + { + int num = 1; + List<ValidationIssue> list2 = new List<ValidationIssue>(num); + CollectionsMarshal.SetCount(list2, num); + CollectionsMarshal.AsSpan(list2)[0] = new ValidationIssue + { + PathType = PathType, + Id = id.ToString(CultureInfo.InvariantCulture), + Location = null, + Type = EIssueType.InvalidJsonSchema, + Severity = EIssueSeverity.Error, + Description = "JSON schema validation failed" + }; + return list2; + } + return list.Select((SchemaValidationHelper.ParsedError error) => new ValidationIssue + { + PathType = PathType, + Id = id.ToString(CultureInfo.InvariantCulture), + Location = (string.IsNullOrEmpty(error.PropertyPath) ? null : error.PropertyPath), + Type = EIssueType.InvalidJsonSchema, + Severity = EIssueSeverity.Error, + Description = (string.IsNullOrEmpty(error.PropertyPath) ? error.Message : (error.PropertyPath + ": " + error.Message)) + }).ToList(); } } diff --git a/Questionable/Questionable.Validation.Validators/DialogueChoiceValidator.cs b/Questionable/Questionable.Validation.Validators/DialogueChoiceValidator.cs index 3b38625..da72e95 100644 --- a/Questionable/Questionable.Validation.Validators/DialogueChoiceValidator.cs +++ b/Questionable/Questionable.Validation.Validators/DialogueChoiceValidator.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; -using System.Runtime.CompilerServices; using Questionable.Functions; using Questionable.Model; using Questionable.Model.Questing; @@ -11,403 +7,6 @@ namespace Questionable.Validation.Validators; internal sealed class DialogueChoiceValidator : IQuestValidator { - [CompilerGenerated] - private sealed class _003CValidate_003Ed__2 : IEnumerable<ValidationIssue>, IEnumerable, IEnumerator<ValidationIssue>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ValidationIssue _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - private Quest quest; - - public Quest _003C_003E3__quest; - - public DialogueChoiceValidator _003C_003E4__this; - - private IEnumerator<(QuestSequence Sequence, int StepId, QuestStep Step)> _003C_003E7__wrap1; - - private (QuestSequence Sequence, int StepId, QuestStep Step) _003Cx_003E5__3; - - private List<DialogueChoice>.Enumerator _003C_003E7__wrap3; - - private DialogueChoice _003CdialogueChoice_003E5__5; - - ValidationIssue IEnumerator<ValidationIssue>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CValidate_003Ed__2(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _200D_202C_200B_202A_200C_200F_206B_200E_202E_202E_200B_206C_200E_202A_200E_202D_200B_206E_202D_202E_200F_202E_206D_200B_202E_202C_202E_206B_200D_200E_202C_202E_200D_202A_206E_206F_200D_200C_206E_206D_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = -4; - int num3 = num; - int num4 = (((uint)(~(~num3 + num2)) <= 1u) ? 1829827120 : 1829827123); - while (true) - { - int num5 = num4; - num2 = 1829827122; - num3 = num5; - int num6 = num3 + num2; - int num7 = num3 & num2; - switch (num6 - (num7 + num7)) - { - default: - continue; - case 0: - num4 = 1829827123; - continue; - case 1: - num2 = 1; - num3 = num; - if ((uint)(~(~num3 + num2)) <= 1u) - { - num4 = 1829827120; - continue; - } - break; - case 2: - try - { - num4 = ((num == -4) ? 1185253003 : 1185253002); - while (true) - { - int num8 = num4; - num2 = 1185253003; - num3 = num8; - int num9 = num3 + num2; - int num10 = num3 & num2; - switch (num9 - (num10 + num10)) - { - case 3: - goto end_IL_0098; - case 1: - num2 = 1; - num3 = num; - num4 = (((uint)(~(~num3 + num2)) <= 1u) ? 1185253003 : 1185253000); - break; - case 2: - num4 = 1185253002; - break; - case 0: - try - { - } - finally - { - _003C_003Em__Finally2(); - } - goto end_IL_0098; - } - continue; - end_IL_0098: - break; - } - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E7__wrap1 = null; - _003Cx_003E5__3 = default((QuestSequence, int, QuestStep)); - _003C_003E7__wrap3 = default(List<DialogueChoice>.Enumerator); - _003CdialogueChoice_003E5__5 = null; - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - try - { - int num = _003C_003E1__state; - DialogueChoiceValidator dialogueChoiceValidator = _003C_003E4__this; - int num2; - ValidationIssue validationIssue2 = default(ValidationIssue); - ValidationIssue validationIssue = default(ValidationIssue); - ExcelRef excelRef = default(ExcelRef); - ExcelRef excelRef2 = default(ExcelRef); - switch (num) - { - default: - num2 = -658626702; - goto IL_002c; - case 0: - _003C_003E1__state = -1; - _003C_003E7__wrap1 = quest.AllSteps().GetEnumerator(); - _003C_003E1__state = -3; - num2 = -658626698; - goto IL_002c; - case 1: - goto IL_0298; - case 2: - goto IL_02ac; - IL_002c: - while (true) - { - int num3 = num2; - int num4 = -658626697; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - goto IL_0094; - case 1: - goto IL_00f3; - case 4: - goto end_IL_002c; - case 11: - _003CdialogueChoice_003E5__5 = null; - num2 = -658626704; - break; - case 15: - _003C_003E2__current = validationIssue2; - _003C_003E1__state = 1; - return true; - case 9: - goto IL_0181; - case 17: - _003C_003E2__current = validationIssue; - _003C_003E1__state = 2; - return true; - case 12: - goto IL_01e6; - case 7: - goto IL_0246; - case 0: - _003C_003Em__Finally2(); - _003C_003E7__wrap3 = default(List<DialogueChoice>.Enumerator); - _003Cx_003E5__3 = default((QuestSequence, int, QuestStep)); - num2 = -658626698; - break; - case 3: - goto IL_0298; - case 13: - goto IL_02ac; - case 14: - num2 = -658626702; - break; - case 5: - return false; - case 10: - _003C_003E7__wrap3 = _206F_206E_200D_206E_200D_200C_202B_200F_206B_200E_202E_206B_202D_206D_200D_206F_200B_202E_206C_206C_200E_202E_206C_206C_206E_200E_202A_206B_202D_206E_200E_206E_206A_202B_200D_206A_206A_206A_200E_200F_202E(_003Cx_003E5__3.Step).GetEnumerator(); - _003C_003E1__state = -4; - num2 = -658626704; - break; - case 6: - goto IL_030e; - case 16: - goto IL_033a; - case 8: - _003C_003Em__Finally1(); - _003C_003E7__wrap1 = null; - return false; - } - continue; - IL_033a: - _003CdialogueChoice_003E5__5 = _003C_003E7__wrap3.Current; - excelRef = _206A_200C_200C_200F_202A_200C_206A_206C_206A_202D_206D_200B_206F_202C_202A_206E_200E_206E_206C_206B_206F_200F_200F_206B_206D_202D_202E_206A_206C_202E_202A_206E_206C_200C_202B_206D_206E_206C_202E_200F_202E(_003CdialogueChoice_003E5__5); - num2 = ((excelRef == null) ? (-658626703) : (-658626699)); - continue; - IL_0094: - validationIssue2 = dialogueChoiceValidator.Validate(quest, _003Cx_003E5__3.Sequence, _003Cx_003E5__3.StepId, _200F_202B_206D_202D_200D_202E_206C_206D_202B_202E_202B_206A_202E_206B_202A_206A_202C_206A_206C_200E_206C_200F_206C_206F_202A_200C_202D_200B_202E_206D_202B_206E_202E_200D_202E_200E_202C_202A_200F_202C_202E(_003CdialogueChoice_003E5__5), excelRef, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-633511800)); - num2 = ((!(validationIssue2 != null)) ? (-658626703) : (-658626696)); - continue; - IL_0181: - _003Cx_003E5__3 = _003C_003E7__wrap1.Current; - num2 = ((_206F_206E_200D_206E_200D_200C_202B_200F_206B_200E_202E_206B_202D_206D_200D_206F_200B_202E_206C_206C_200E_202E_206C_206C_206E_200E_202A_206B_202D_206E_200E_206E_206A_202B_200D_206A_206A_206A_200E_200F_202E(_003Cx_003E5__3.Step).Count == 0) ? (-658626698) : (-658626691)); - continue; - IL_030e: - excelRef2 = _206E_200D_206D_200D_206B_202A_202A_200D_206F_200E_202E_202D_202E_202A_206D_200F_200B_202E_200D_202E_206D_200E_200C_206E_202B_206B_202A_200B_206A_206E_206F_206A_200B_206A_202C_202E_206E_200C_202A_202C_202E(_003CdialogueChoice_003E5__5); - num2 = ((excelRef2 == null) ? (-658626692) : (-658626693)); - continue; - IL_01e6: - validationIssue = dialogueChoiceValidator.Validate(quest, _003Cx_003E5__3.Sequence, _003Cx_003E5__3.StepId, _200F_202B_206D_202D_200D_202E_206C_206D_202B_202E_202B_206A_202E_206B_202A_206A_202C_206A_206C_200E_206C_200F_206C_206F_202A_200C_202D_200B_202E_206D_202B_206E_202E_200D_202E_200E_202C_202A_200F_202C_202E(_003CdialogueChoice_003E5__5), excelRef2, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(726153876)); - num2 = ((!(validationIssue != null)) ? (-658626692) : (-658626714)); - continue; - IL_00f3: - num2 = (_202D_200B_206D_200F_202C_202D_200B_206E_202A_206A_200D_200E_200F_202A_202D_206C_200F_200E_206C_202B_200D_206F_200E_206C_202D_206F_206A_202C_206E_206A_200B_200B_206E_206E_200C_206E_200E_206B_206A_202B_202E((IEnumerator)_003C_003E7__wrap1) ? (-658626690) : (-658626689)); - continue; - IL_0246: - num2 = (_003C_003E7__wrap3.MoveNext() ? (-658626713) : (-658626697)); - continue; - end_IL_002c: - break; - } - goto case 0; - IL_02ac: - _003C_003E1__state = -4; - num2 = -658626692; - goto IL_002c; - IL_0298: - _003C_003E1__state = -4; - num2 = -658626703; - goto IL_002c; - } - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - int num = ((_003C_003E7__wrap1 == null) ? 1730549734 : 1730549733); - while (true) - { - int num2 = num; - int num3 = 1730549732; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1730549733; - break; - case 1: - _200B_202B_202B_202C_200B_202D_206A_200B_206A_206D_202D_202D_202D_202A_202C_202D_200F_200E_200B_200C_200B_202B_200D_202A_206F_200E_202B_202B_200B_206C_206A_200B_200C_206F_202C_206C_202D_202C_202D_206D_202E((IDisposable)_003C_003E7__wrap1); - num = 1730549734; - break; - case 2: - return; - } - } - } - - private void _003C_003Em__Finally2() - { - _003C_003E1__state = -3; - ((IDisposable)_003C_003E7__wrap3/*cast due to .constrained prefix*/).Dispose(); - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _202E_200F_202B_206D_206C_202B_202C_202B_206C_202D_206B_206F_200F_206E_200F_202B_200E_202A_202C_202D_200B_206A_206C_206F_206C_202D_206A_206B_206C_202E_206F_206C_202D_206A_206D_200E_200F_200B_202A_202E_202E(); - } - - [DebuggerHidden] - IEnumerator<ValidationIssue> IEnumerable<ValidationIssue>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? 890630818 : 890630816); - _003CValidate_003Ed__2 _003CValidate_003Ed__ = default(_003CValidate_003Ed__2); - while (true) - { - int num2 = num; - int num3 = 890630817; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - _003CValidate_003Ed__.quest = _003C_003E3__quest; - return _003CValidate_003Ed__; - case 1: - num = ((_003C_003El__initialThreadId != _200D_202C_200B_202A_200C_200F_206B_200E_202E_202E_200B_206C_200E_202A_200E_202D_200B_206E_202D_202E_200F_202E_206D_200B_202E_202C_202E_206B_200D_200E_202C_202E_200D_202A_206E_206F_200D_200C_206E_206D_202E()) ? 890630818 : 890630817); - break; - case 3: - _003CValidate_003Ed__ = new _003CValidate_003Ed__2(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = 890630821; - break; - case 0: - _003C_003E1__state = 0; - _003CValidate_003Ed__ = this; - num = 890630821; - break; - case 2: - num = 890630816; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ValidationIssue>)this).GetEnumerator(); - } - - static int _200D_202C_200B_202A_200C_200F_206B_200E_202E_202E_200B_206C_200E_202A_200E_202D_200B_206E_202D_202E_200F_202E_206D_200B_202E_202C_202E_206B_200D_200E_202C_202E_200D_202A_206E_206F_200D_200C_206E_206D_202E() - { - return Environment.CurrentManagedThreadId; - } - - static List<DialogueChoice> _206F_206E_200D_206E_200D_200C_202B_200F_206B_200E_202E_206B_202D_206D_200D_206F_200B_202E_206C_206C_200E_202E_206C_206C_206E_200E_202A_206B_202D_206E_200E_206E_206A_202B_200D_206A_206A_206A_200E_200F_202E(QuestStep P_0) - { - return P_0.DialogueChoices; - } - - static ExcelRef _206A_200C_200C_200F_202A_200C_206A_206C_206A_202D_206D_200B_206F_202C_202A_206E_200E_206E_206C_206B_206F_200F_200F_206B_206D_202D_202E_206A_206C_202E_202A_206E_206C_200C_202B_206D_206E_206C_202E_200F_202E(DialogueChoice P_0) - { - return P_0.Prompt; - } - - static string _200F_202B_206D_202D_200D_202E_206C_206D_202B_202E_202B_206A_202E_206B_202A_206A_202C_206A_206C_200E_206C_200F_206C_206F_202A_200C_202D_200B_202E_206D_202B_206E_202E_200D_202E_200E_202C_202A_200F_202C_202E(DialogueChoice P_0) - { - return P_0.ExcelSheet; - } - - static ExcelRef _206E_200D_206D_200D_206B_202A_202A_200D_206F_200E_202E_202D_202E_202A_206D_200F_200B_202E_200D_202E_206D_200E_200C_206E_202B_206B_202A_200B_206A_206E_206F_206A_200B_206A_202C_202E_206E_200C_202A_202C_202E(DialogueChoice P_0) - { - return P_0.Answer; - } - - static bool _202D_200B_206D_200F_202C_202D_200B_206E_202A_206A_200D_200E_200F_202A_202D_206C_200F_200E_206C_202B_200D_206F_200E_206C_202D_206F_206A_202C_206E_206A_200B_200B_206E_206E_200C_206E_200E_206B_206A_202B_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200B_202B_202B_202C_200B_202D_206A_200B_206A_206D_202D_202D_202D_202A_202C_202D_200F_200E_200B_200C_200B_202B_200D_202A_206F_200E_202B_202B_200B_206C_206A_200B_200C_206F_202C_206C_202D_202C_202D_206D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static NotSupportedException _202E_200F_202B_206D_206C_202B_202C_202B_206C_202D_206B_206F_200F_206E_200F_202B_200E_202A_202C_202D_200B_206A_206C_206F_206C_202D_206A_206B_206C_202E_206F_206C_202D_206A_206D_200E_200F_200B_202A_202E_202E() - { - return new NotSupportedException(); - } - } - private readonly ExcelFunctions _excelFunctions; public DialogueChoiceValidator(ExcelFunctions excelFunctions) @@ -415,112 +14,67 @@ internal sealed class DialogueChoiceValidator : IQuestValidator _excelFunctions = excelFunctions; } - [IteratorStateMachine(typeof(_003CValidate_003Ed__2))] public IEnumerable<ValidationIssue> Validate(Quest quest) { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CValidate_003Ed__2(-2) + foreach (var x in quest.AllSteps()) { - _003C_003E4__this = this, - _003C_003E3__quest = quest - }; - } - - IEnumerable<ValidationIssue> IQuestValidator.Validate(Quest quest) - { - //ILSpy generated this explicit interface implementation from .override directive in Validate - return this.Validate(quest); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private ValidationIssue? Validate(Quest quest, QuestSequence sequence, int stepId, string? excelSheet, ExcelRef excelRef, string label) - { - int num = ((_200E_200C_206D_206D_202C_200E_200F_206E_202E_200E_202D_206D_200E_202C_206C_200B_200B_206A_202A_200F_200C_202A_202B_206F_200C_206B_206E_206D_206C_206E_202C_206B_202E_200F_206F_200B_206D_200B_206C_206E_202E(excelRef) != ExcelRef.EType.Key) ? 784349212 : 784349211); - while (true) - { - int num2 = num; - int num3 = 784349210; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (x.Step.DialogueChoices.Count == 0) { - case 5: - num = 784349211; - break; - case 3: - { - ValidationIssue obj = new ValidationIssue - { - PathType = EPathType.Quest, - Id = _200F_206F_200D_206A_206F_200D_206A_206A_206A_206F_206E_202A_200C_202C_200F_202A_202C_200C_202A_200F_202D_202E_200E_206C_206A_200C_206F_200B_206E_206A_206D_200B_200E_202C_206A_202D_202E_200C_202C_202C_202E((object)quest.Id), - Location = SchemaValidationHelper.FormatQuestLocation(_206E_206B_202D_206C_206A_200B_202C_206E_200B_206B_200F_200E_206D_206D_200F_200D_202E_200E_202B_202C_200C_202C_202A_206F_202A_200F_206F_200C_206A_206C_206C_202E_200F_202B_200C_206D_206E_202A_202B_202C_202E(sequence), stepId), - Type = EIssueType.InvalidExcelRef, - Severity = EIssueSeverity.Error - }; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(13, 3); - defaultInterpolatedStringHandler.AppendFormatted(label); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1993753271)); - defaultInterpolatedStringHandler.AppendFormatted(excelSheet); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-545088367)); - defaultInterpolatedStringHandler.AppendFormatted(_206D_200C_200F_202C_206D_202E_206A_206E_206F_202B_200E_206D_206D_206E_200D_206B_202E_202B_206D_206B_202D_200B_202C_200C_206B_202C_200F_206E_200E_206D_200B_200B_206B_206A_202B_200B_206B_202C_206D_202C_202E(excelRef)); - obj.Description = defaultInterpolatedStringHandler.ToStringAndClear(); - return obj; + continue; } - case 0: - return null; - case 6: - num = ((_200E_200C_206D_206D_202C_200E_200F_206E_202E_200E_202D_206D_200E_202C_206C_200B_200B_206A_202A_200F_200C_202A_202B_206F_200C_206B_206E_206D_206C_206E_202C_206B_202E_200F_206F_200B_206D_200B_206C_206E_202E(excelRef) != ExcelRef.EType.RowId) ? 784349210 : 784349208); - break; - case 4: + foreach (DialogueChoice dialogueChoice in x.Step.DialogueChoices) { - ValidationIssue obj2 = new ValidationIssue + ExcelRef prompt = dialogueChoice.Prompt; + if (prompt != null) { - PathType = EPathType.Quest, - Id = _200F_206F_200D_206A_206F_200D_206A_206A_206A_206F_206E_202A_200C_202C_200F_202A_202C_200C_202A_200F_202D_202E_200E_206C_206A_200C_206F_200B_206E_206A_206D_200B_200E_202C_206A_202D_202E_200C_202C_202C_202E((object)quest.Id), - Location = SchemaValidationHelper.FormatQuestLocation(_206E_206B_202D_206C_206A_200B_202C_206E_200B_206B_200F_200E_206D_206D_200F_200D_202E_200E_202B_202C_200C_202C_202A_206F_202A_200F_206F_200C_206A_206C_206C_202E_200F_202B_200C_206D_206E_202A_202B_202C_202E(sequence), stepId), - Type = EIssueType.InvalidExcelRef, - Severity = EIssueSeverity.Error - }; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(13, 3); - defaultInterpolatedStringHandler2.AppendFormatted(label); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1993753271)); - defaultInterpolatedStringHandler2.AppendFormatted(excelSheet); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-485019730)); - defaultInterpolatedStringHandler2.AppendFormatted(_202B_206D_206E_206C_200E_202E_206F_200F_202B_202A_206F_206E_206D_202A_202D_202E_202D_202A_200F_206E_200C_202A_206E_206A_202C_206C_206B_206C_200E_206B_202D_202A_206A_206C_206C_202A_206F_206D_206E_202E_202E(excelRef)); - obj2.Description = defaultInterpolatedStringHandler2.ToStringAndClear(); - return obj2; - } - case 2: - num = (_excelFunctions.GetRawDialogueTextByRowId(excelSheet, _206D_200C_200F_202C_206D_202E_206A_206E_206F_202B_200E_206D_206D_206E_200D_206B_202E_202B_206D_206B_202D_200B_202C_200C_206B_202C_200F_206E_200E_206D_200B_200B_206B_206A_202B_200B_206B_202C_206D_202C_202E(excelRef)).HasValue ? 784349210 : 784349209); - break; - case 1: - num = (_excelFunctions.GetRawDialogueText(quest, excelSheet, _202B_206D_206E_206C_200E_202E_206F_200F_202B_202A_206F_206E_206D_202A_202D_202E_202D_202A_200F_206E_200C_202A_206E_206A_202C_206C_206B_206C_200E_206B_202D_202A_206A_206C_206C_202A_206F_206D_206E_202E_202E(excelRef)).HasValue ? 784349210 : 784349214); - break; + ValidationIssue validationIssue = Validate(quest, x.Sequence, x.StepId, dialogueChoice.ExcelSheet, prompt, "Prompt"); + if (validationIssue != null) + { + yield return validationIssue; + } + } + ExcelRef answer = dialogueChoice.Answer; + if (answer != null) + { + ValidationIssue validationIssue2 = Validate(quest, x.Sequence, x.StepId, dialogueChoice.ExcelSheet, answer, "Answer"); + if (validationIssue2 != null) + { + yield return validationIssue2; + } + } } } } - static ExcelRef.EType _200E_200C_206D_206D_202C_200E_200F_206E_202E_200E_202D_206D_200E_202C_206C_200B_200B_206A_202A_200F_200C_202A_202B_206F_200C_206B_206E_206D_206C_206E_202C_206B_202E_200F_206F_200B_206D_200B_206C_206E_202E(ExcelRef P_0) + private ValidationIssue? Validate(Quest quest, QuestSequence sequence, int stepId, string? excelSheet, ExcelRef excelRef, string label) { - return P_0.Type; - } - - static string _202B_206D_206E_206C_200E_202E_206F_200F_202B_202A_206F_206E_206D_202A_202D_202E_202D_202A_200F_206E_200C_202A_206E_206A_202C_206C_206B_206C_200E_206B_202D_202A_206A_206C_206C_202A_206F_206D_206E_202E_202E(ExcelRef P_0) - { - return P_0.AsKey(); - } - - static string _200F_206F_200D_206A_206F_200D_206A_206A_206A_206F_206E_202A_200C_202C_200F_202A_202C_200C_202A_200F_202D_202E_200E_206C_206A_200C_206F_200B_206E_206A_206D_200B_200E_202C_206A_202D_202E_200C_202C_202C_202E(object P_0) - { - return P_0.ToString(); - } - - static byte _206E_206B_202D_206C_206A_200B_202C_206E_200B_206B_200F_200E_206D_206D_200F_200D_202E_200E_202B_202C_200C_202C_202A_206F_202A_200F_206F_200C_206A_206C_206C_202E_200F_202B_200C_206D_206E_202A_202B_202C_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - - static uint _206D_200C_200F_202C_206D_202E_206A_206E_206F_202B_200E_206D_206D_206E_200D_206B_202E_202B_206D_206B_202D_200B_202C_200C_206B_202C_200F_206E_200E_206D_200B_200B_206B_206A_202B_200B_206B_202C_206D_202C_202E(ExcelRef P_0) - { - return P_0.AsRowId(); + if (excelRef.Type == ExcelRef.EType.Key) + { + if (!_excelFunctions.GetRawDialogueText(quest, excelSheet, excelRef.AsKey()).HasValue) + { + return new ValidationIssue + { + PathType = EPathType.Quest, + Id = quest.Id.ToString(), + Location = SchemaValidationHelper.FormatQuestLocation(sequence.Sequence, stepId), + Type = EIssueType.InvalidExcelRef, + Severity = EIssueSeverity.Error, + Description = $"{label} invalid: {excelSheet} → {excelRef.AsKey()}" + }; + } + } + else if (excelRef.Type == ExcelRef.EType.RowId && !_excelFunctions.GetRawDialogueTextByRowId(excelSheet, excelRef.AsRowId()).HasValue) + { + return new ValidationIssue + { + PathType = EPathType.Quest, + Id = quest.Id.ToString(), + Location = SchemaValidationHelper.FormatQuestLocation(sequence.Sequence, stepId), + Type = EIssueType.InvalidExcelRef, + Severity = EIssueSeverity.Error, + Description = $"{label} invalid: {excelSheet} → {excelRef.AsRowId()}" + }; + } + return null; } } diff --git a/Questionable/Questionable.Validation.Validators/FateSchemaValidator.cs b/Questionable/Questionable.Validation.Validators/FateSchemaValidator.cs index f70cda4..2038c47 100644 --- a/Questionable/Questionable.Validation.Validators/FateSchemaValidator.cs +++ b/Questionable/Questionable.Validation.Validators/FateSchemaValidator.cs @@ -1,19 +1,10 @@ -using System.Runtime.CompilerServices; - namespace Questionable.Validation.Validators; internal sealed class FateSchemaValidator : DefinitionSchemaValidator { protected override EPathType PathType => EPathType.Fate; - protected override string MainSchemaUri - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1643882609); - } - } + protected override string MainSchemaUri => "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/FatePaths/fatedefinition-v1.json"; public FateSchemaValidator(SchemaRegistrar schemaRegistrar) : base(schemaRegistrar) diff --git a/Questionable/Questionable.Validation.Validators/GameSequenceCoverageValidator.cs b/Questionable/Questionable.Validation.Validators/GameSequenceCoverageValidator.cs index 5c6b800..5731839 100644 --- a/Questionable/Questionable.Validation.Validators/GameSequenceCoverageValidator.cs +++ b/Questionable/Questionable.Validation.Validators/GameSequenceCoverageValidator.cs @@ -1,9 +1,6 @@ using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using Questionable.Data; using Questionable.Model; @@ -13,321 +10,6 @@ namespace Questionable.Validation.Validators; internal sealed class GameSequenceCoverageValidator : IQuestValidator { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<QuestSequence, int> _003C_003E9__2_0; - - internal int _003CValidate_003Eb__2_0(QuestSequence x) - { - return _202A_200F_206E_206E_206F_202A_202D_200D_200E_202D_202E_206B_206B_202C_206F_206F_200B_206B_200C_202C_200D_202B_206A_202E_206B_202A_200F_206D_202A_200D_202B_206F_202E_200F_200D_206E_206B_206F_200B_206F_202E(x); - } - - static byte _202A_200F_206E_206E_206F_202A_202D_200D_200E_202D_202E_206B_206B_202C_206F_206F_200B_206B_200C_202C_200D_202B_206A_202E_206B_202A_200F_206D_202A_200D_202B_206F_202E_200F_200D_206E_206B_206F_200B_206F_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass2_0 - { - public HashSet<int> authored; - - internal bool _003CValidate_003Eb__1(int seq) - { - return !authored.Contains(seq); - } - } - - [CompilerGenerated] - private sealed class _003CValidate_003Ed__2 : IEnumerable<ValidationIssue>, IEnumerable, IEnumerator<ValidationIssue>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ValidationIssue _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - private Quest quest; - - public Quest _003C_003E3__quest; - - public GameSequenceCoverageValidator _003C_003E4__this; - - private IEnumerator<int> _003C_003E7__wrap1; - - ValidationIssue IEnumerator<ValidationIssue>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CValidate_003Ed__2(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _206A_200F_206B_202D_206F_202D_206B_202E_200F_206D_200B_206D_202B_206E_206C_206E_206E_206E_206A_206F_202B_200E_206E_202E_200C_202D_200C_200C_206C_202A_200C_202B_200B_200D_200B_202E_202E_200C_206D_202D_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num == -3) ? (-1463378025) : (-1463378026)); - while (true) - { - int num3 = num2; - int num4 = -1463378025; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - default: - continue; - case 2: - num2 = -1463378026; - continue; - case 1: - if (num == 1) - { - num2 = -1463378025; - continue; - } - break; - case 0: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E7__wrap1 = null; - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - try - { - int num = _003C_003E1__state; - GameSequenceCoverageValidator gameSequenceCoverageValidator = _003C_003E4__this; - int num2 = ((num == 0) ? (-1251389121) : (-1251389133)); - _003C_003Ec__DisplayClass2_0 _003C_003Ec__DisplayClass2_ = default(_003C_003Ec__DisplayClass2_0); - QuestId questId = default(QuestId); - while (true) - { - int num3 = num2; - int num4 = -1251389125; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 5: - return false; - case 8: - num2 = ((num == 1) ? (-1251389124) : (-1251389122)); - break; - case 6: - return false; - case 4: - _003C_003E1__state = -1; - _003C_003Ec__DisplayClass2_ = new _003C_003Ec__DisplayClass2_0(); - questId = quest.Id as QuestId; - num2 = (((object)questId != null) ? (-1251389125) : (-1251389123)); - break; - case 3: - num2 = -1251389133; - break; - case 0: - { - _003C_003Ec__DisplayClass2_.authored = ((IEnumerable<QuestSequence>)_202C_202A_206D_206A_206B_202E_206F_200C_200B_202A_206C_206B_206A_202E_206B_200C_206B_200C_200F_200F_200B_206D_200E_202C_200E_206A_200B_202C_206D_200F_200E_200F_200C_202D_200C_202A_200D_202E_206E_200E_202E(quest.Root)).Select((Func<QuestSequence, int>)((QuestSequence x) => _003C_003Ec._202A_200F_206E_206E_206F_202A_202D_200D_200E_202D_202E_206B_206B_202C_206F_206F_200B_206B_200C_202C_200D_202B_206A_202E_206B_202A_200F_206D_202A_200D_202B_206F_202E_200F_200D_206E_206B_206F_200B_206F_202E(x))).ToHashSet(); - IEnumerable<int> enumerable = GameQuestSequences.GetCompletionSequences(gameSequenceCoverageValidator._dataManager, questId).Where(_003C_003Ec__DisplayClass2_._003CValidate_003Eb__1); - _003C_003E7__wrap1 = enumerable.GetEnumerator(); - _003C_003E1__state = -3; - num2 = -1251389134; - break; - } - case 2: - { - int current = _003C_003E7__wrap1.Current; - ValidationIssue obj = new ValidationIssue - { - PathType = EPathType.Quest, - Id = _206F_206C_206E_202A_200F_206D_200B_202E_206C_200C_200B_200F_200C_202B_202B_206D_206B_202C_200D_200F_200F_200D_206B_200B_202E_200C_200D_202C_200F_206D_200D_200E_202C_206E_200B_206B_206E_202A_206B_200C_202E((object)quest.Id), - Location = SchemaValidationHelper.FormatQuestLocation((byte)current, null), - Type = EIssueType.MissingPostInstanceSequence, - Severity = EIssueSeverity.Warning - }; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(76, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1038269044)); - defaultInterpolatedStringHandler.AppendFormatted(current); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1871308311)); - obj.Description = _206B_202C_206E_206A_200F_206E_202A_202C_206F_200D_200C_206E_202E_200B_206B_206E_202B_202D_202E_206E_202B_206C_206B_206F_200E_206F_202B_200E_206B_206C_202C_202A_202E_202A_202D_202D_200C_206D_202E_202D_202E(defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1742548975)); - _003C_003E2__current = obj; - _003C_003E1__state = 1; - return true; - } - case 7: - _003C_003E1__state = -3; - num2 = -1251389134; - break; - case 9: - num2 = (_202A_206D_206A_200B_200B_202A_202E_202A_200B_206E_202A_202E_202D_200B_206B_200B_206B_200D_206E_202B_200B_200F_206C_200C_200E_206E_206B_206C_202E_202A_200B_202C_202E_200C_202B_206E_206F_206F_206F_200C_202E((IEnumerator)_003C_003E7__wrap1) ? (-1251389127) : (-1251389126)); - break; - case 1: - _003C_003Em__Finally1(); - _003C_003E7__wrap1 = null; - return false; - } - } - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - int num = ((_003C_003E7__wrap1 == null) ? (-1668424457) : (-1668424458)); - while (true) - { - int num2 = num; - int num3 = -1668424457; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1668424458; - break; - case 1: - _200F_206D_206A_206E_202C_206E_200E_200C_202C_206C_206D_206F_202C_202C_200F_202A_202A_202D_206C_206E_202A_206A_200B_206A_206C_206E_206D_200C_200B_202A_206B_200C_206B_200F_200E_202C_206A_206C_202C_206A_202E((IDisposable)_003C_003E7__wrap1); - num = -1668424457; - break; - case 0: - return; - } - } - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _206E_206F_200C_200C_206F_200C_202E_202A_206E_206D_200D_206F_202D_206E_202E_200F_206C_206B_200F_200E_200B_202B_206F_206F_202D_202D_200C_202C_202A_200F_200D_202D_200B_202C_202E_200D_202D_206C_202C_200F_202E(); - } - - [DebuggerHidden] - IEnumerator<ValidationIssue> IEnumerable<ValidationIssue>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? (-272048312) : (-272048307)); - _003CValidate_003Ed__2 _003CValidate_003Ed__ = default(_003CValidate_003Ed__2); - while (true) - { - int num2 = num; - int num3 = -272048308; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _003CValidate_003Ed__.quest = _003C_003E3__quest; - return _003CValidate_003Ed__; - case 2: - _003C_003E1__state = 0; - _003CValidate_003Ed__ = this; - num = -272048308; - break; - case 1: - num = ((_003C_003El__initialThreadId != _206A_200F_206B_202D_206F_202D_206B_202E_200F_206D_200B_206D_202B_206E_206C_206E_206E_206E_206A_206F_202B_200E_206E_202E_200C_202D_200C_200C_206C_202A_200C_202B_200B_200D_200B_202E_202E_200C_206D_202D_202E()) ? (-272048312) : (-272048306)); - break; - case 4: - _003CValidate_003Ed__ = new _003CValidate_003Ed__2(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = -272048308; - break; - case 3: - num = -272048307; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ValidationIssue>)this).GetEnumerator(); - } - - static int _206A_200F_206B_202D_206F_202D_206B_202E_200F_206D_200B_206D_202B_206E_206C_206E_206E_206E_206A_206F_202B_200E_206E_202E_200C_202D_200C_200C_206C_202A_200C_202B_200B_200D_200B_202E_202E_200C_206D_202D_202E() - { - return Environment.CurrentManagedThreadId; - } - - static List<QuestSequence> _202C_202A_206D_206A_206B_202E_206F_200C_200B_202A_206C_206B_206A_202E_206B_200C_206B_200C_200F_200F_200B_206D_200E_202C_200E_206A_200B_202C_206D_200F_200E_200F_200C_202D_200C_202A_200D_202E_206E_200E_202E(QuestRoot P_0) - { - return P_0.QuestSequence; - } - - static string _206F_206C_206E_202A_200F_206D_200B_202E_206C_200C_200B_200F_200C_202B_202B_206D_206B_202C_200D_200F_200F_200D_206B_200B_202E_200C_200D_202C_200F_206D_200D_200E_202C_206E_200B_206B_206E_202A_206B_200C_202E(object P_0) - { - return P_0.ToString(); - } - - static string _206B_202C_206E_206A_200F_206E_202A_202C_206F_200D_200C_206E_202E_200B_206B_206E_202B_202D_202E_206E_202B_206C_206B_206F_200E_206F_202B_200E_206B_206C_202C_202A_202E_202A_202D_202D_200C_206D_202E_202D_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static bool _202A_206D_206A_200B_200B_202A_202E_202A_200B_206E_202A_202E_202D_200B_206B_200B_206B_200D_206E_202B_200B_200F_206C_200C_200E_206E_206B_206C_202E_202A_200B_202C_202E_200C_202B_206E_206F_206F_206F_200C_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200F_206D_206A_206E_202C_206E_200E_200C_202C_206C_206D_206F_202C_202C_200F_202A_202A_202D_206C_206E_202A_206A_200B_206A_206C_206E_206D_200C_200B_202A_206B_200C_206B_200F_200E_202C_206A_206C_202C_206A_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static NotSupportedException _206E_206F_200C_200C_206F_200C_202E_202A_206E_206D_200D_206F_202D_206E_202E_200F_206C_206B_200F_200E_200B_202B_206F_206F_202D_202D_200C_202C_202A_200F_200D_202D_200B_202C_202E_200D_202D_206C_202C_200F_202E() - { - return new NotSupportedException(); - } - } - private readonly IDataManager _dataManager; public GameSequenceCoverageValidator(IDataManager dataManager) @@ -335,20 +17,27 @@ internal sealed class GameSequenceCoverageValidator : IQuestValidator _dataManager = dataManager; } - [IteratorStateMachine(typeof(_003CValidate_003Ed__2))] public IEnumerable<ValidationIssue> Validate(Quest quest) { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CValidate_003Ed__2(-2) + if (!(quest.Id is QuestId questId)) { - _003C_003E4__this = this, - _003C_003E3__quest = quest - }; - } - - IEnumerable<ValidationIssue> IQuestValidator.Validate(Quest quest) - { - //ILSpy generated this explicit interface implementation from .override directive in Validate - return this.Validate(quest); + yield break; + } + HashSet<int> authored = ((IEnumerable<QuestSequence>)quest.Root.QuestSequence).Select((Func<QuestSequence, int>)((QuestSequence x) => x.Sequence)).ToHashSet(); + IEnumerable<int> enumerable = from seq in GameQuestSequences.GetCompletionSequences(_dataManager, questId) + where !authored.Contains(seq) + select seq; + foreach (int item in enumerable) + { + yield return new ValidationIssue + { + PathType = EPathType.Quest, + Id = quest.Id.ToString(), + Location = SchemaValidationHelper.FormatQuestLocation((byte)item, null), + Type = EIssueType.MissingPostInstanceSequence, + Severity = EIssueSeverity.Warning, + Description = $"The game uses sequence {item}, but the quest path doesn't define it. Add an empty " + "placeholder sequence (or steps, if the sequence requires player action)." + }; + } } } diff --git a/Questionable/Questionable.Validation.Validators/GatheringSchemaValidator.cs b/Questionable/Questionable.Validation.Validators/GatheringSchemaValidator.cs index 25e9713..9914107 100644 --- a/Questionable/Questionable.Validation.Validators/GatheringSchemaValidator.cs +++ b/Questionable/Questionable.Validation.Validators/GatheringSchemaValidator.cs @@ -1,19 +1,10 @@ -using System.Runtime.CompilerServices; - namespace Questionable.Validation.Validators; internal sealed class GatheringSchemaValidator : DefinitionSchemaValidator { protected override EPathType PathType => EPathType.Gathering; - protected override string MainSchemaUri - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-945562084); - } - } + protected override string MainSchemaUri => "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/GatheringPaths/gatheringlocation-v1.json"; public GatheringSchemaValidator(SchemaRegistrar schemaRegistrar) : base(schemaRegistrar) diff --git a/Questionable/Questionable.Validation.Validators/JsonSchemaValidator.cs b/Questionable/Questionable.Validation.Validators/JsonSchemaValidator.cs index f244482..b89b1db 100644 --- a/Questionable/Questionable.Validation.Validators/JsonSchemaValidator.cs +++ b/Questionable/Questionable.Validation.Validators/JsonSchemaValidator.cs @@ -1,10 +1,8 @@ using System; using System.Collections; using System.Collections.Generic; -using System.Diagnostics; using System.Globalization; using System.Linq; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Text.Json; using System.Text.Json.Nodes; @@ -18,648 +16,6 @@ namespace Questionable.Validation.Validators; internal sealed class JsonSchemaValidator : IQuestValidator { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<(byte? Sequence, int? Step, string PropertyPath, string Message), (byte? Sequence, int? Step)> _003C_003E9__4_1; - - public static Func<(byte? Sequence, int? Step, string PropertyPath, string Message), string> _003C_003E9__4_2; - - public static Func<(byte? Sequence, int? Step, string PropertyPath, string Message), (byte? Sequence, int? Step)> _003C_003E9__5_1; - - public static Func<(byte? Sequence, int? Step, string PropertyPath, string Message), string> _003C_003E9__5_2; - - public static Func<KeyValuePair<string, JsonNode>, bool> _003C_003E9__6_5; - - public static Func<KeyValuePair<string, JsonNode>, string> _003C_003E9__6_6; - - public static Predicate<string> _003C_003E9__6_0; - - public static Predicate<string> _003C_003E9__6_1; - - public static Predicate<string> _003C_003E9__6_2; - - public static Predicate<string> _003C_003E9__6_3; - - public static Predicate<string> _003C_003E9__6_4; - - public static Func<object, object?, bool> _003C_003E9__15_0; - - internal (byte? Sequence, int? Step) _003CValidate_003Eb__4_1((byte? Sequence, int? Step, string PropertyPath, string Message) e) - { - return (Sequence: e.Sequence, Step: e.Step); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal string _003CValidate_003Eb__4_2((byte? Sequence, int? Step, string PropertyPath, string Message) e) - { - int num = (_202E_200E_206E_206D_202B_206E_202D_202E_202A_206D_206F_202A_202B_200F_206F_206C_206D_202B_206F_206B_202B_206F_206D_206C_206E_200D_202B_206D_202E_206E_206F_202D_202E_200B_206B_200C_202E_200D_200E_202C_202E(e.PropertyPath) ? 1407445173 : 1407445172); - while (true) - { - int num2 = num; - int num3 = 1407445173; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return e.Message; - case 1: - return _206A_206C_206A_206D_200D_206B_200B_200C_206F_200B_202D_206A_200F_206D_202C_202C_202D_202D_206E_206A_206A_202A_206B_200F_206E_200C_206E_206A_206F_206C_202B_206C_200E_206E_200E_206B_206F_202B_200D_202E(e.PropertyPath, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1545053118), e.Message); - case 2: - goto IL_006e; - } - continue; - IL_006e: - num = 1407445172; - } - } - - internal (byte? Sequence, int? Step) _003CValidateImmediate_003Eb__5_1((byte? Sequence, int? Step, string PropertyPath, string Message) e) - { - return (Sequence: e.Sequence, Step: e.Step); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal string _003CValidateImmediate_003Eb__5_2((byte? Sequence, int? Step, string PropertyPath, string Message) e) - { - int num = (_202E_200E_206E_206D_202B_206E_202D_202E_202A_206D_206F_202A_202B_200F_206F_206C_206D_202B_206F_206B_202B_206F_206D_206C_206E_200D_202B_206D_202E_206E_206F_202D_202E_200B_206B_200C_202E_200D_200E_202C_202E(e.PropertyPath) ? 1703630483 : 1703630480); - while (true) - { - int num2 = num; - int num3 = 1703630482; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return e.Message; - case 2: - return _206A_206C_206A_206D_200D_206B_200B_200C_206F_200B_202D_206A_200F_206D_202C_202C_202D_202D_206E_206A_206A_202A_206B_200F_206E_200C_206E_206A_206F_206C_202B_206C_200E_206E_200E_206B_206F_202B_200D_202E(e.PropertyPath, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2074665157), e.Message); - case 0: - goto IL_0070; - } - continue; - IL_0070: - num = 1703630480; - } - } - - internal bool _003CSimplifyConditionalRequiredErrors_003Eb__6_5(KeyValuePair<string, JsonNode> x) - { - return x.Value != null; - } - - internal string _003CSimplifyConditionalRequiredErrors_003Eb__6_6(KeyValuePair<string, JsonNode> x) - { - return x.Key; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal bool _003CSimplifyConditionalRequiredErrors_003Eb__6_0(string x) - { - int num = (IsRequiredPropertyError(x, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1518164676)) ? (-2117687274) : (-2117687276)); - while (true) - { - int num2 = num; - int num3 = -2117687275; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -2117687276; - break; - case 0: - return IsRequiredPropertyError(x, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1372080508)); - case 3: - return true; - case 1: - num = (IsRequiredPropertyError(x, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1316123041)) ? (-2117687274) : (-2117687275)); - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal bool _003CSimplifyConditionalRequiredErrors_003Eb__6_1(string x) - { - return IsRequiredPropertyError(x, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1980697895)); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal bool _003CSimplifyConditionalRequiredErrors_003Eb__6_2(string x) - { - int num = (IsRequiredPropertyError(x, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-332485666)) ? (-362335936) : (-362335935)); - while (true) - { - int num2 = num; - int num3 = -362335936; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0052; - case 0: - return true; - case 1: - return IsRequiredPropertyError(x, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1742329127)); - } - continue; - IL_0052: - num = -362335935; - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal bool _003CSimplifyConditionalRequiredErrors_003Eb__6_3(string x) - { - return IsRequiredPropertyError(x, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-301952118)); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal bool _003CSimplifyConditionalRequiredErrors_003Eb__6_4(string x) - { - return IsRequiredPropertyError(x, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1768019597)); - } - - internal bool _003CNoEmptyCollectionModifier_003Eb__15_0(object _, object? val) - { - ICollection collection = val as ICollection; - int num = ((collection == null) ? (-1341388091) : (-1341388092)); - while (true) - { - int num2 = num; - int num3 = -1341388091; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return false; - case 1: - return _206D_206E_206C_202B_206F_200B_200D_200C_206D_206F_200E_206B_206F_202C_206A_202D_206D_206C_200B_202E_200D_200C_206D_200B_202D_206C_200E_206E_206C_200C_200C_200E_202D_202D_200C_200D_202D_206A_206A_200F_202E(collection) > 0; - case 2: - goto IL_0056; - } - continue; - IL_0056: - num = -1341388092; - } - } - - static bool _202E_200E_206E_206D_202B_206E_202D_202E_202A_206D_206F_202A_202B_200F_206F_206C_206D_202B_206F_206B_202B_206F_206D_206C_206E_200D_202B_206D_202E_206E_206F_202D_202E_200B_206B_200C_202E_200D_200E_202C_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static string _206A_206C_206A_206D_200D_206B_200B_200C_206F_200B_202D_206A_200F_206D_202C_202C_202D_202D_206E_206A_206A_202A_206B_200F_206E_200C_206E_206A_206F_206C_202B_206C_200E_206E_200E_206B_206F_202B_200D_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static int _206D_206E_206C_202B_206F_200B_200D_200C_206D_206F_200E_206B_206F_202C_206A_202D_206D_206C_200B_202E_200D_200C_206D_200B_202D_206C_200E_206E_206C_200C_200C_200E_202D_202D_200C_200D_202D_206A_206A_200F_202E(ICollection P_0) - { - return P_0.Count; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass4_0 - { - public Dictionary<int, byte> sequenceMap; - - internal (byte? Sequence, int? Step, string PropertyPath, string Message) _003CValidate_003Eb__0(SchemaValidationHelper.ParsedError e) - { - var (item, item2, rawPath) = ParseInstanceLocation(e.InstancePath, sequenceMap); - return (Sequence: item, Step: item2, PropertyPath: SchemaValidationHelper.FormatPath(rawPath), Message: e.Message); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass8_0 - { - public byte? sequence; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal bool _003CFindStepNode_003Eb__0(JsonObject x) - { - return _202C_200B_206E_202D_200D_202D_202A_200D_200B_200C_200E_206F_200B_200E_202C_202E_200F_206A_206A_200B_200B_200F_202D_206F_206C_206E_202E_200C_200C_200D_200D_206C_202A_206A_202C_206A_202A_206C_206A_206E_202E((JsonNode)x, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(916692153))?.GetValue<int>() == sequence.Value; - } - - static JsonNode _202C_200B_206E_202D_200D_202D_202A_200D_200B_200C_200E_206F_200B_200E_202C_202E_200F_206A_206A_200B_200B_200F_202D_206F_206C_206E_202E_200C_200C_200D_200D_206C_202A_206A_202C_206A_202A_206C_206A_206E_202E(JsonNode P_0, string P_1) - { - return P_0[P_1]; - } - } - - [CompilerGenerated] - private sealed class _003CValidate_003Ed__4 : IEnumerable<ValidationIssue>, IEnumerable, IEnumerator<ValidationIssue>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ValidationIssue _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - public JsonSchemaValidator _003C_003E4__this; - - private Quest quest; - - public Quest _003C_003E3__quest; - - private JsonNode _003CquestNode_003E5__2; - - private IEnumerator<IGrouping<(byte? Sequence, int? Step), (byte? Sequence, int? Step, string PropertyPath, string Message)>> _003C_003E7__wrap2; - - ValidationIssue IEnumerator<ValidationIssue>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CValidate_003Ed__4(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _200F_206E_200B_202A_206D_200D_206B_200F_200D_200B_200E_202C_202A_206D_200C_206A_206F_206E_200B_200E_200D_200F_200F_206B_202E_206A_202B_202C_200B_200E_200E_202D_206E_206F_202B_200C_206A_202A_200B_206C_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num == -3) ? (-1542116256) : (-1542116255)); - while (true) - { - int num3 = num2; - int num4 = -1542116256; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - default: - continue; - case 2: - num2 = -1542116255; - continue; - case 1: - if (num == 2) - { - num2 = -1542116256; - continue; - } - break; - case 0: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003CquestNode_003E5__2 = null; - _003C_003E7__wrap2 = null; - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - try - { - int num = _003C_003E1__state; - JsonSchemaValidator jsonSchemaValidator = _003C_003E4__this; - int num2; - List<SchemaValidationHelper.ParsedError> list2 = default(List<SchemaValidationHelper.ParsedError>); - _003C_003Ec__DisplayClass4_0 _003C_003Ec__DisplayClass4_ = default(_003C_003Ec__DisplayClass4_0); - IGrouping<(byte?, int?), (byte?, int?, string, string)> current = default(IGrouping<(byte?, int?), (byte?, int?, string, string)>); - List<string> list = default(List<string>); - EvaluationResults evaluationResults = default(EvaluationResults); - switch (num) - { - default: - num2 = 1845948745; - goto IL_002c; - case 1: - break; - case 2: - _003C_003E1__state = -3; - num2 = 1845948750; - goto IL_002c; - case 0: - goto IL_028d; - IL_002c: - while (true) - { - int num3 = num2; - int num4 = 1845948743; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 3: - _003C_003E2__current = new ValidationIssue - { - PathType = EPathType.Quest, - Id = _202A_200D_200F_200C_200D_202D_206F_202A_200D_206A_202B_206A_206D_200C_206B_206D_206B_200B_200F_200E_202E_206B_206B_202C_200D_200C_200C_206E_206B_206B_202D_206E_200E_200D_206D_202A_200D_200C_202C_206E_202E((object)quest.Id), - Location = null, - Type = EIssueType.InvalidJsonSchema, - Severity = EIssueSeverity.Error, - Description = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(298877451) - }; - _003C_003E1__state = 1; - return true; - case 12: - { - List<(byte?, int?, string, string)> source = list2.Select(_003C_003Ec__DisplayClass4_._003CValidate_003Eb__0).ToList(); - _003C_003E7__wrap2 = (from e in source - group e by (Sequence: e.Sequence, Step: e.Step)).GetEnumerator(); - _003C_003E1__state = -3; - num2 = 1845948750; - break; - } - case 10: - return false; - case 1: - goto end_IL_000f; - case 14: - return false; - case 11: - num2 = 1845948745; - break; - case 5: - return false; - case 16: - goto end_IL_002c; - case 8: - goto IL_01cc; - case 15: - goto IL_0220; - case 9: - goto IL_0265; - case 0: - goto IL_028d; - case 13: - jsonSchemaValidator._questSchema = jsonSchemaValidator._schemaRegistrar.Get(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1720677466)); - num2 = 1845948751; - break; - case 4: - _003C_003E2__current = new ValidationIssue - { - PathType = EPathType.Quest, - Id = _202A_200D_200F_200C_200D_202D_206F_202A_200D_206A_202B_206A_206D_200C_206B_206D_206B_200B_200F_200E_202E_206B_206B_202C_200D_200C_200C_206E_206B_206B_202D_206E_200E_200D_206D_202A_200D_200C_202C_206E_202E((object)quest.Id), - Location = SchemaValidationHelper.FormatQuestLocation(current.Key.Item1, current.Key.Item2), - Type = EIssueType.InvalidJsonSchema, - Severity = EIssueSeverity.Error, - Description = _202E_202C_202C_206B_206B_200F_202C_200D_202A_202A_200B_202D_206A_206F_202B_206C_206E_200E_206E_200B_206F_206B_200E_200F_202D_206D_202B_206F_206F_202B_200C_200F_200C_206A_206D_206E_200B_206D_202D_206D_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-976057447), (IEnumerable<string>)list) - }; - _003C_003E1__state = 2; - return true; - case 2: - goto IL_0384; - case 7: - goto IL_0414; - case 6: - _003C_003Em__Finally1(); - _003C_003E7__wrap2 = null; - return false; - } - continue; - IL_0414: - num2 = ((jsonSchemaValidator._questSchema != null) ? 1845948751 : 1845948746); - continue; - IL_01cc: - JsonSchema? questSchema = jsonSchemaValidator._questSchema; - JsonElement jsonElement = JsonSerializer.SerializeToElement(_003CquestNode_003E5__2); - EvaluationOptions evaluationOptions = _206E_202D_206F_206C_200F_200B_200C_206C_206D_206F_202E_200E_206F_206F_202B_206C_202D_206A_202B_202A_200F_200C_200B_200B_206E_200F_200E_206F_206A_202C_206D_202D_200F_206C_206C_202B_206F_206B_206C_206B_202E(); - _206B_206A_200F_202E_206D_200B_206E_200B_202E_202C_200D_200E_206B_202B_202B_206A_200D_200F_206C_206A_200E_202C_202A_206E_206B_206B_206C_200B_206F_200E_200D_206C_202A_200D_200F_206F_200B_202E_200C_206E_202E(evaluationOptions, _206D_200C_202A_202A_206A_206F_206D_206D_202B_200F_206B_206A_202D_202C_200D_206B_206D_202A_206A_200F_206A_206C_206C_200C_206C_200E_206E_200E_200C_202E_200D_200B_206E_206A_200C_206B_206F_206B_202B_200D_202E()); - _206C_202B_200B_206B_202B_202D_202C_200D_206D_202D_206A_200D_200C_206C_202A_200B_202E_206F_200B_206A_206D_200B_202D_202D_206D_200F_206E_206F_206E_200D_202B_200B_206F_200C_200F_206D_202E_200F_200B_200D_202E(evaluationOptions, OutputFormat.Hierarchical); - evaluationResults = _206E_202C_206F_200E_200D_206D_206F_206A_202C_206D_202C_206E_206C_202A_202A_206E_206C_202E_202A_202A_206E_202A_206B_200E_202B_200F_202B_200F_200D_202A_200B_206D_206E_206C_206C_200F_202D_206C_202D_206E_202E(questSchema, jsonElement, evaluationOptions); - num2 = ((!_206D_206C_202C_206A_202D_202C_206E_200F_206E_206E_206F_206D_206B_206A_202D_206D_200B_202D_200C_202C_206C_206B_200D_206D_202D_202C_202C_206F_200D_202B_202B_206D_206A_206D_206C_202B_200D_202D_202B_206F_202E(evaluationResults)) ? 1845948744 : 1845948738); - continue; - IL_0220: - _003C_003Ec__DisplayClass4_.sequenceMap = BuildSequenceMap(_003CquestNode_003E5__2); - list2 = new List<SchemaValidationHelper.ParsedError>(); - SchemaValidationHelper.CollectLeafErrors(evaluationResults, list2); - num2 = ((list2.Count != 0) ? 1845948747 : 1845948740); - continue; - IL_0384: - current = _003C_003E7__wrap2.Current; - list = current.Select<(byte?, int?, string, string), string>([MethodImpl(MethodImplOptions.NoInlining)] ((byte? Sequence, int? Step, string PropertyPath, string Message) e) => - { - int num6 = (_003C_003Ec._202E_200E_206E_206D_202B_206E_202D_202E_202A_206D_206F_202A_202B_200F_206F_206C_206D_202B_206F_206B_202B_206F_206D_206C_206E_200D_202B_206D_202E_206E_206F_202D_202E_200B_206B_200C_202E_200D_200E_202C_202E(e.PropertyPath) ? 1407445173 : 1407445172); - while (true) - { - int num7 = num6; - int num8 = 1407445173; - int num9 = num7; - switch ((num9 | num8) - (num9 & num8)) - { - case 0: - return e.Message; - case 1: - return _003C_003Ec._206A_206C_206A_206D_200D_206B_200B_200C_206F_200B_202D_206A_200F_206D_202C_202C_202D_202D_206E_206A_206A_202A_206B_200F_206E_200C_206E_206A_206F_206C_202B_206C_200E_206E_200E_206B_206F_202B_200D_202E(e.PropertyPath, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1545053118), e.Message); - case 2: - goto IL_006e; - } - continue; - IL_006e: - num6 = 1407445172; - } - }).Distinct().ToList(); - SimplifyConditionalRequiredErrors(list, FindStepNode(_003CquestNode_003E5__2, current.Key.Item1, current.Key.Item2)); - num2 = ((list.Count == 0) ? 1845948750 : 1845948739); - continue; - IL_0265: - num2 = (_206A_202C_200B_202D_200E_206B_206A_200F_202E_200E_200D_202A_202B_202C_206A_200D_206B_202D_200C_200C_206C_206E_206C_200D_202C_206B_202C_200D_206B_206E_206C_200B_206D_206F_206C_206F_202B_206E_206C_202B_202E((IEnumerator)_003C_003E7__wrap2) ? 1845948741 : 1845948737); - continue; - end_IL_002c: - break; - } - goto case 2; - IL_028d: - _003C_003E1__state = -1; - _003C_003Ec__DisplayClass4_ = new _003C_003Ec__DisplayClass4_0(); - num2 = (jsonSchemaValidator._questNodes.TryGetValue(quest.Id, out _003CquestNode_003E5__2) ? 1845948736 : 1845948749); - goto IL_002c; - end_IL_000f: - break; - } - _003C_003E1__state = -1; - return false; - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - int num = ((_003C_003E7__wrap2 == null) ? (-232982781) : (-232982784)); - while (true) - { - int num2 = num; - int num3 = -232982783; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return; - case 1: - _202E_202A_206F_200D_200C_202A_202E_200C_206F_200E_206F_202E_202A_200F_202E_200D_202E_202A_202B_202A_206B_200E_202D_200E_202E_206D_200E_200C_206B_200E_206C_202C_206B_200B_202C_206A_206D_206F_202D_202E_202E((IDisposable)_003C_003E7__wrap2); - num = -232982781; - break; - case 0: - num = -232982784; - break; - } - } - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _202D_206F_206F_200F_202E_200D_200B_202A_202D_206B_206E_206F_200B_206C_202B_200C_200F_202B_200E_202B_202A_206A_200F_200C_202A_206B_200D_202A_206D_206A_200B_200F_206B_200C_206A_202C_202B_200F_206C_206A_202E(); - } - - [DebuggerHidden] - IEnumerator<ValidationIssue> IEnumerable<ValidationIssue>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? (-1444097586) : (-1444097592)); - _003CValidate_003Ed__4 _003CValidate_003Ed__ = default(_003CValidate_003Ed__4); - while (true) - { - int num2 = num; - int num3 = -1444097588; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _003CValidate_003Ed__.quest = _003C_003E3__quest; - return _003CValidate_003Ed__; - case 4: - num = ((_003C_003El__initialThreadId != _200F_206E_200B_202A_206D_200D_206B_200F_200D_200B_200E_202C_202A_206D_200C_206A_206F_206E_200B_200E_200D_200F_200F_206B_202E_206A_202B_202C_200B_200E_200E_202D_206E_206F_202B_200C_206A_202A_200B_206C_202E()) ? (-1444097586) : (-1444097585)); - break; - case 3: - _003C_003E1__state = 0; - _003CValidate_003Ed__ = this; - num = -1444097587; - break; - case 0: - num = -1444097592; - break; - case 2: - _003CValidate_003Ed__ = new _003CValidate_003Ed__4(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = -1444097587; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ValidationIssue>)this).GetEnumerator(); - } - - static int _200F_206E_200B_202A_206D_200D_206B_200F_200D_200B_200E_202C_202A_206D_200C_206A_206F_206E_200B_200E_200D_200F_200F_206B_202E_206A_202B_202C_200B_200E_200E_202D_206E_206F_202B_200C_206A_202A_200B_206C_202E() - { - return Environment.CurrentManagedThreadId; - } - - static EvaluationOptions _206E_202D_206F_206C_200F_200B_200C_206C_206D_206F_202E_200E_206F_206F_202B_206C_202D_206A_202B_202A_200F_200C_200B_200B_206E_200F_200E_206F_206A_202C_206D_202D_200F_206C_206C_202B_206F_206B_206C_206B_202E() - { - return new EvaluationOptions(); - } - - static CultureInfo _206D_200C_202A_202A_206A_206F_206D_206D_202B_200F_206B_206A_202D_202C_200D_206B_206D_202A_206A_200F_206A_206C_206C_200C_206C_200E_206E_200E_200C_202E_200D_200B_206E_206A_200C_206B_206F_206B_202B_200D_202E() - { - return CultureInfo.InvariantCulture; - } - - static void _206B_206A_200F_202E_206D_200B_206E_200B_202E_202C_200D_200E_206B_202B_202B_206A_200D_200F_206C_206A_200E_202C_202A_206E_206B_206B_206C_200B_206F_200E_200D_206C_202A_200D_200F_206F_200B_202E_200C_206E_202E(EvaluationOptions P_0, CultureInfo P_1) - { - P_0.Culture = P_1; - } - - static void _206C_202B_200B_206B_202B_202D_202C_200D_206D_202D_206A_200D_200C_206C_202A_200B_202E_206F_200B_206A_206D_200B_202D_202D_206D_200F_206E_206F_206E_200D_202B_200B_206F_200C_200F_206D_202E_200F_200B_200D_202E(EvaluationOptions P_0, OutputFormat P_1) - { - P_0.OutputFormat = P_1; - } - - static EvaluationResults _206E_202C_206F_200E_200D_206D_206F_206A_202C_206D_202C_206E_206C_202A_202A_206E_206C_202E_202A_202A_206E_202A_206B_200E_202B_200F_202B_200F_200D_202A_200B_206D_206E_206C_206C_200F_202D_206C_202D_206E_202E(JsonSchema P_0, JsonElement P_1, EvaluationOptions P_2) - { - return P_0.Evaluate(P_1, P_2); - } - - static bool _206D_206C_202C_206A_202D_202C_206E_200F_206E_206E_206F_206D_206B_206A_202D_206D_200B_202D_200C_202C_206C_206B_200D_206D_202D_202C_202C_206F_200D_202B_202B_206D_206A_206D_206C_202B_200D_202D_202B_206F_202E(EvaluationResults P_0) - { - return P_0.IsValid; - } - - static string _202A_200D_200F_200C_200D_202D_206F_202A_200D_206A_202B_206A_206D_200C_206B_206D_206B_200B_200F_200E_202E_206B_206B_202C_200D_200C_200C_206E_206B_206B_202D_206E_200E_200D_206D_202A_200D_200C_202C_206E_202E(object P_0) - { - return P_0.ToString(); - } - - static string _202E_202C_202C_206B_206B_200F_202C_200D_202A_202A_200B_202D_206A_206F_202B_206C_206E_200E_206E_200B_206F_206B_200E_200F_202D_206D_202B_206F_206F_202B_200C_200F_200C_206A_206D_206E_200B_206D_202D_206D_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); - } - - static bool _206A_202C_200B_202D_200E_206B_206A_200F_202E_200E_200D_202A_202B_202C_206A_200D_206B_202D_200C_200C_206C_206E_206C_200D_202C_206B_202C_200D_206B_206E_206C_200B_206D_206F_206C_206F_202B_206E_206C_202B_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202E_202A_206F_200D_200C_202A_202E_200C_206F_200E_206F_202E_202A_200F_202E_200D_202E_202A_202B_202A_206B_200E_202D_200E_202E_206D_200E_200C_206B_200E_206C_202C_206B_200B_202C_206A_206D_206F_202D_202E_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static NotSupportedException _202D_206F_206F_200F_202E_200D_200B_202A_202D_206B_206E_206F_200B_206C_202B_200C_200F_202B_200E_202B_202A_206A_200F_200C_202A_206B_200D_202A_206D_206A_200B_200F_206B_200C_206A_202C_202B_200F_206C_206A_202E() - { - return new NotSupportedException(); - } - } - private readonly SchemaRegistrar _schemaRegistrar; private readonly Dictionary<ElementId, JsonNode> _questNodes = new Dictionary<ElementId, JsonNode>(); @@ -668,412 +24,192 @@ internal sealed class JsonSchemaValidator : IQuestValidator private const string QuestSchemaUri = "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/QuestPaths/quest-v1.json"; - private static readonly JsonSerializerOptions ValidationSerializationOptions; + private static readonly JsonSerializerOptions ValidationSerializationOptions = new JsonSerializerOptions + { + DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingDefault, + IncludeFields = false, + WriteIndented = false, + TypeInfoResolver = new DefaultJsonTypeInfoResolver + { + Modifiers = { (Action<JsonTypeInfo>)NoEmptyCollectionModifier } + } + }; public JsonSchemaValidator(SchemaRegistrar schemaRegistrar) { _schemaRegistrar = schemaRegistrar; } - [IteratorStateMachine(typeof(_003CValidate_003Ed__4))] public IEnumerable<ValidationIssue> Validate(Quest quest) { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CValidate_003Ed__4(-2) + if (!_questNodes.TryGetValue(quest.Id, out JsonNode questNode)) { - _003C_003E4__this = this, - _003C_003E3__quest = quest - }; - } - - IEnumerable<ValidationIssue> IQuestValidator.Validate(Quest quest) - { - //ILSpy generated this explicit interface implementation from .override directive in Validate - return this.Validate(quest); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - public List<ValidationIssue> ValidateImmediate(ElementId elementId, JsonNode questNode) - { - int num = ((_questSchema != null) ? (-1183405652) : (-1183405653)); - Dictionary<int, byte> sequenceMap = default(Dictionary<int, byte>); - List<SchemaValidationHelper.ParsedError> list2 = default(List<SchemaValidationHelper.ParsedError>); - EvaluationResults evaluationResults = default(EvaluationResults); - IGrouping<(byte?, int?), (byte?, int?, string, string)> current = default(IGrouping<(byte?, int?), (byte?, int?, string, string)>); - List<string> list3 = default(List<string>); - while (true) + yield break; + } + if (_questSchema == null) { - int num2 = num; - int num3 = -1183405651; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + _questSchema = _schemaRegistrar.Get("https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/QuestPaths/quest-v1.json"); + } + EvaluationResults evaluationResults = _questSchema.Evaluate(JsonSerializer.SerializeToElement(questNode), new EvaluationOptions + { + Culture = CultureInfo.InvariantCulture, + OutputFormat = OutputFormat.Hierarchical + }); + if (evaluationResults.IsValid) + { + yield break; + } + Dictionary<int, byte> sequenceMap = BuildSequenceMap(questNode); + List<SchemaValidationHelper.ParsedError> list = new List<SchemaValidationHelper.ParsedError>(); + SchemaValidationHelper.CollectLeafErrors(evaluationResults, list); + if (list.Count == 0) + { + yield return new ValidationIssue { - case 5: - sequenceMap = BuildSequenceMap(questNode); - list2 = new List<SchemaValidationHelper.ParsedError>(); - SchemaValidationHelper.CollectLeafErrors(evaluationResults, list2); - num = ((list2.Count != 0) ? (-1183405649) : (-1183405655)); - break; - case 3: - return new List<ValidationIssue>(); - case 0: - num = -1183405653; - break; - case 4: + PathType = EPathType.Quest, + Id = quest.Id.ToString(), + Location = null, + Type = EIssueType.InvalidJsonSchema, + Severity = EIssueSeverity.Error, + Description = "JSON schema validation failed" + }; + yield break; + } + List<(byte?, int?, string, string)> source = list.Select(delegate(SchemaValidationHelper.ParsedError e) + { + var (item, item2, rawPath) = ParseInstanceLocation(e.InstancePath, sequenceMap); + return (Sequence: item, Step: item2, PropertyPath: SchemaValidationHelper.FormatPath(rawPath), Message: e.Message); + }).ToList(); + foreach (IGrouping<(byte?, int?), (byte?, int?, string, string)> item3 in from e in source + group e by (Sequence: e.Sequence, Step: e.Step)) + { + List<string> list2 = item3.Select<(byte?, int?, string, string), string>(((byte? Sequence, int? Step, string PropertyPath, string Message) e) => (!string.IsNullOrEmpty(e.PropertyPath)) ? (e.PropertyPath + ": " + e.Message) : e.Message).Distinct().ToList(); + SimplifyConditionalRequiredErrors(list2, FindStepNode(questNode, item3.Key.Item1, item3.Key.Item2)); + if (list2.Count != 0) { - int num9 = 1; - List<ValidationIssue> list4 = new List<ValidationIssue>(num9); - CollectionsMarshal.SetCount(list4, num9); - CollectionsMarshal.AsSpan(list4)[0] = new ValidationIssue + yield return new ValidationIssue { PathType = EPathType.Quest, - Id = _202A_206B_206D_200C_206A_206D_206A_202A_206F_200B_206F_200D_200E_202B_200F_202E_200D_206B_200F_206F_206D_200D_200D_200D_206F_200C_206F_206F_200D_206D_206B_206D_202B_206D_206D_200F_202C_206F_206C_202C_202E((object)elementId), - Location = null, + Id = quest.Id.ToString(), + Location = SchemaValidationHelper.FormatQuestLocation(item3.Key.Item1, item3.Key.Item2), Type = EIssueType.InvalidJsonSchema, Severity = EIssueSeverity.Error, - Description = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(955249200) + Description = string.Join("\n", list2) }; - return list4; - } - case 1: - { - JsonSchema? questSchema = _questSchema; - JsonElement jsonElement = JsonSerializer.SerializeToElement(questNode); - EvaluationOptions evaluationOptions = _206D_206E_202B_200E_206A_202A_206B_206E_206F_202E_202D_206A_200D_202C_206B_200B_202A_202A_206F_206C_202D_200C_202C_202C_206D_200F_202D_206C_202D_202E_202C_200B_202C_202A_200B_206C_202C_202D_200B_200F_202E(); - _206E_200B_202B_200E_206A_206A_200C_202B_206C_202B_200B_202E_202E_200D_202E_202D_200B_202C_200D_200E_206A_200D_202D_206B_200C_206D_200E_206B_200E_200E_202E_202E_202D_202E_200D_206B_206E_206F_206D_202C_202E(evaluationOptions, _202D_200C_206F_206F_200E_206B_206F_202E_206A_202D_206F_200F_206D_206A_202C_200E_202D_200D_206E_202D_206B_206D_200D_202E_202E_206F_200C_202B_200E_200F_206F_206D_206A_202C_200E_206E_200F_202A_200B_200D_202E()); - _206A_202D_200F_200F_202A_202B_202B_200E_200D_202D_206D_202C_202C_206B_206F_200F_202C_202E_202A_202B_202D_200E_206C_200C_206B_202D_206A_200D_206C_200F_200F_202E_200B_200D_202E_202D_202C_200F_206C_202C_202E(evaluationOptions, OutputFormat.Hierarchical); - evaluationResults = _202B_206E_200D_200B_206D_206E_206B_206E_206C_202E_206C_200D_206F_206A_206F_202B_206A_200B_206A_202C_200B_200D_202E_206B_202C_200D_202E_202D_206B_200C_200D_206E_206F_202C_206B_206E_202C_200D_206B_200C_202E(questSchema, jsonElement, evaluationOptions); - num = ((!_200F_200B_206C_200D_202B_206F_200C_206A_202A_206C_206D_206F_200F_200F_202B_202C_206E_206A_202B_202C_202D_200E_202D_206F_200F_206E_202C_202E_206E_200F_200F_206B_200D_206D_206A_200F_202D_200C_206D_200D_202E(evaluationResults)) ? (-1183405656) : (-1183405650)); - break; - } - case 6: - _questSchema = _schemaRegistrar.Get(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(751310152)); - num = -1183405652; - break; - case 2: - { - List<ValidationIssue> list = new List<ValidationIssue>(); - IEnumerator<IGrouping<(byte?, int?), (byte?, int?, string, string)>> enumerator = (from e in list2.Select(delegate(SchemaValidationHelper.ParsedError e) - { - var (item, item2, rawPath) = ParseInstanceLocation(e.InstancePath, sequenceMap); - return (Sequence: item, Step: item2, PropertyPath: SchemaValidationHelper.FormatPath(rawPath), Message: e.Message); - }).ToList() - group e by (Sequence: e.Sequence, Step: e.Step)).GetEnumerator(); - try - { - num = -1597210039; - while (true) - { - int num5 = num; - num3 = -1597210038; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 0: - num = -1597210039; - break; - case 1: - current = enumerator.Current; - list3 = current.Select<(byte?, int?, string, string), string>([MethodImpl(MethodImplOptions.NoInlining)] ((byte? Sequence, int? Step, string PropertyPath, string Message) e) => - { - int num10 = (_003C_003Ec._202E_200E_206E_206D_202B_206E_202D_202E_202A_206D_206F_202A_202B_200F_206F_206C_206D_202B_206F_206B_202B_206F_206D_206C_206E_200D_202B_206D_202E_206E_206F_202D_202E_200B_206B_200C_202E_200D_200E_202C_202E(e.PropertyPath) ? 1703630483 : 1703630480); - while (true) - { - int num11 = num10; - int num12 = 1703630482; - int num13 = num11; - int num14 = num13 + num12; - int num15 = num13 & num12; - switch (num14 - (num15 + num15)) - { - case 1: - return e.Message; - case 2: - return _003C_003Ec._206A_206C_206A_206D_200D_206B_200B_200C_206F_200B_202D_206A_200F_206D_202C_202C_202D_202D_206E_206A_206A_202A_206B_200F_206E_200C_206E_206A_206F_206C_202B_206C_200E_206E_200E_206B_206F_202B_200D_202E(e.PropertyPath, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2074665157), e.Message); - case 0: - goto IL_0070; - } - continue; - IL_0070: - num10 = 1703630480; - } - }).Distinct().ToList(); - num = ((list3.Count == 0) ? (-1597210039) : (-1597210034)); - break; - case 4: - list.Add(new ValidationIssue - { - PathType = EPathType.Quest, - Id = _202A_206B_206D_200C_206A_206D_206A_202A_206F_200B_206F_200D_200E_202B_200F_202E_200D_206B_200F_206F_206D_200D_200D_200D_206F_200C_206F_206F_200D_206D_206B_206D_202B_206D_206D_200F_202C_206F_206C_202C_202E((object)elementId), - Location = SchemaValidationHelper.FormatQuestLocation(current.Key.Item1, current.Key.Item2), - Type = EIssueType.InvalidJsonSchema, - Severity = EIssueSeverity.Error, - Description = _200E_200C_200C_202E_200B_200D_202E_202E_206A_202E_202D_206A_200C_206A_206D_202C_202C_206C_202C_206A_200C_200D_202E_206F_200F_206D_202A_206A_202E_200D_200D_200E_200E_206A_202C_202C_206C_202A_200E_202D_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(564459472), (IEnumerable<string>)list3) - }); - num = -1597210039; - break; - case 3: - num = (_200C_206A_202B_206B_206F_206C_206A_206A_200D_202C_200D_202D_202B_206B_200B_206B_206E_206A_206B_200C_206A_206D_202B_200F_206E_202E_206C_206E_206B_202B_200D_206A_200F_206D_202E_202C_202A_200B_206C_206A_202E((IEnumerator)enumerator) ? (-1597210037) : (-1597210040)); - break; - case 2: - return list; - } - } - } - finally - { - num = ((enumerator == null) ? (-994961268) : (-994961265)); - while (true) - { - int num8 = num; - num3 = -994961266; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -994961265; - break; - case 1: - _200E_206B_200C_202C_206A_200B_202B_202E_200C_206E_202D_202C_200D_200B_206D_200F_202A_200F_206E_206C_200F_200D_200E_200B_202D_202E_200C_202C_200F_206C_206F_202D_202A_202B_200C_206A_206B_200B_202A_200C_202E((IDisposable)enumerator); - num = -994961268; - break; - case 2: - goto end_IL_033d; - } - continue; - end_IL_033d: - break; - } - } - } } } } - [MethodImpl(MethodImplOptions.NoInlining)] + public List<ValidationIssue> ValidateImmediate(ElementId elementId, JsonNode questNode) + { + if (_questSchema == null) + { + _questSchema = _schemaRegistrar.Get("https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/QuestPaths/quest-v1.json"); + } + EvaluationResults evaluationResults = _questSchema.Evaluate(JsonSerializer.SerializeToElement(questNode), new EvaluationOptions + { + Culture = CultureInfo.InvariantCulture, + OutputFormat = OutputFormat.Hierarchical + }); + if (evaluationResults.IsValid) + { + return new List<ValidationIssue>(); + } + Dictionary<int, byte> sequenceMap = BuildSequenceMap(questNode); + List<SchemaValidationHelper.ParsedError> list = new List<SchemaValidationHelper.ParsedError>(); + SchemaValidationHelper.CollectLeafErrors(evaluationResults, list); + if (list.Count == 0) + { + int num = 1; + List<ValidationIssue> list2 = new List<ValidationIssue>(num); + CollectionsMarshal.SetCount(list2, num); + CollectionsMarshal.AsSpan(list2)[0] = new ValidationIssue + { + PathType = EPathType.Quest, + Id = elementId.ToString(), + Location = null, + Type = EIssueType.InvalidJsonSchema, + Severity = EIssueSeverity.Error, + Description = "JSON schema validation failed" + }; + return list2; + } + List<ValidationIssue> list3 = new List<ValidationIssue>(); + foreach (IGrouping<(byte?, int?), (byte?, int?, string, string)> item3 in from e in list.Select(delegate(SchemaValidationHelper.ParsedError e) + { + var (item, item2, rawPath) = ParseInstanceLocation(e.InstancePath, sequenceMap); + return (Sequence: item, Step: item2, PropertyPath: SchemaValidationHelper.FormatPath(rawPath), Message: e.Message); + }).ToList() + group e by (Sequence: e.Sequence, Step: e.Step)) + { + List<string> list4 = item3.Select<(byte?, int?, string, string), string>(((byte? Sequence, int? Step, string PropertyPath, string Message) e) => (!string.IsNullOrEmpty(e.PropertyPath)) ? (e.PropertyPath + ": " + e.Message) : e.Message).Distinct().ToList(); + if (list4.Count != 0) + { + list3.Add(new ValidationIssue + { + PathType = EPathType.Quest, + Id = elementId.ToString(), + Location = SchemaValidationHelper.FormatQuestLocation(item3.Key.Item1, item3.Key.Item2), + Type = EIssueType.InvalidJsonSchema, + Severity = EIssueSeverity.Error, + Description = string.Join("\n", list4) + }); + } + } + return list3; + } + private static void SimplifyConditionalRequiredErrors(List<string> lines, JsonObject? step) { - int num = ((step != null) ? 335150382 : 335150381); - while (true) + if (step == null) { - int num2 = num; - int num3 = 335150383; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0049; - case 2: - return; - case 1: - { - IEnumerator<string> enumerator = (from x in step - where x.Value != null - select x.Key).GetEnumerator(); - try - { - num = -365179251; - while (true) - { - int num7 = num; - num3 = -365179251; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = -365179251; - break; - case 0: - num = (_200C_206A_202B_206B_206F_206C_206A_206A_200D_202C_200D_202D_202B_206B_200B_206B_206E_206A_206B_200C_206A_206D_202B_200F_206E_202E_206C_206E_206B_202B_200D_206A_200F_206D_202E_202C_202A_200B_206C_206A_202E((IEnumerator)enumerator) ? (-365179252) : (-365179249)); - break; - case 1: - { - string property = enumerator.Current; - lines.RemoveAll((string x) => IsRequiredPropertyError(x, property)); - num = -365179251; - break; - } - case 2: - goto end_IL_00b5; - } - continue; - end_IL_00b5: - break; - } - } - finally - { - num = ((enumerator == null) ? 1444188635 : 1444188634); - while (true) - { - int num8 = num; - num3 = 1444188635; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1444188634; - break; - case 0: - goto end_IL_0161; - case 1: - _200E_206B_200C_202C_206A_200B_202B_202E_200C_206E_202D_202C_200D_200B_206D_200F_202A_200F_206E_206C_200F_200D_200E_200B_202D_202E_200C_202C_200F_206C_206F_202D_202A_202B_200C_206A_206B_200B_202A_200C_202E((IDisposable)enumerator); - num = 1444188635; - break; - } - continue; - end_IL_0161: - break; - } - } - num = ((!_202A_202C_206D_200C_202E_202E_202D_206B_206C_200B_206C_200C_200D_206E_200E_206B_202A_200E_202B_200F_206F_202C_202B_206D_206A_200E_202C_206E_206B_202D_206F_206B_200B_202D_206D_202E_202A_202D_200D_206F_202E(_206B_206C_206F_200F_202E_206C_200F_202A_206A_206E_202A_202C_206C_206D_200C_202C_206C_206B_202D_206C_200B_206A_202A_206B_202A_202C_206F_206E_206F_206E_202E_200D_202D_206D_206C_200E_200E_202D_206C_200C_202E((JsonNode)step, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-805703500))?.GetValue<string>(), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(562282663))) ? (-710204795) : (-710204793)); - while (true) - { - int num9 = num; - num3 = -710204797; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 1: - { - bool num12 = lines.RemoveAll([MethodImpl(MethodImplOptions.NoInlining)] (string x) => IsRequiredPropertyError(x, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-301952118))) > 0; - bool flag = lines.RemoveAll([MethodImpl(MethodImplOptions.NoInlining)] (string x) => IsRequiredPropertyError(x, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1768019597))) > 0; - num = ((!(num12 && flag)) ? (-710204799) : (-710204794)); - break; - } - case 4: - lines.RemoveAll([MethodImpl(MethodImplOptions.NoInlining)] (string x) => - { - int num13 = (IsRequiredPropertyError(x, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1518164676)) ? (-2117687274) : (-2117687276)); - while (true) - { - int num14 = num13; - int num15 = -2117687275; - int num16 = num14; - switch ((num16 | num15) - (num16 & num15)) - { - case 2: - num13 = -2117687276; - break; - case 0: - return IsRequiredPropertyError(x, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1372080508)); - case 3: - return true; - case 1: - num13 = (IsRequiredPropertyError(x, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1316123041)) ? (-2117687274) : (-2117687275)); - break; - } - } - }); - return; - case 3: - lines.RemoveAll([MethodImpl(MethodImplOptions.NoInlining)] (string x) => - { - int num13 = (IsRequiredPropertyError(x, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-332485666)) ? (-362335936) : (-362335935)); - while (true) - { - int num14 = num13; - int num15 = -362335936; - int num16 = num14; - int num17 = num16 + num15; - int num18 = num16 & num15; - switch (num17 - (num18 + num18)) - { - case 2: - goto IL_0052; - case 0: - return true; - case 1: - return IsRequiredPropertyError(x, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1742329127)); - } - continue; - IL_0052: - num13 = -362335935; - } - }); - return; - case 0: - num = -710204793; - break; - case 6: - { - string obj = _206B_206C_206F_200F_202E_206C_200F_202A_206A_206E_202A_202C_206C_206D_200C_202C_206C_206B_202D_206C_200B_206A_202A_206B_202A_202C_206F_206E_206F_206E_202E_200D_202D_206D_206C_200E_200E_202D_206C_200C_202E((JsonNode)step, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1518164676))?.GetValue<string>(); - if (_202A_202C_206D_200C_202E_202E_202D_206B_206C_200B_206C_200C_200D_206E_200E_206B_202A_200E_202B_200F_206F_202C_202B_206D_206A_200E_202C_206E_206B_202D_206F_206B_200B_202D_206D_202E_202A_202D_200D_206F_202E(obj, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(168860559))) - { - lines.RemoveAll([MethodImpl(MethodImplOptions.NoInlining)] (string x) => IsRequiredPropertyError(x, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1980697895))); - } - num = ((!_206F_206D_206F_202C_200F_206D_206D_202B_202A_206A_202C_200F_206E_206C_206E_206A_206F_202A_202B_202C_202C_200C_200B_200C_202D_200B_200E_202C_206D_202A_206C_206E_206A_206E_200C_200D_206A_202D_206A_202B_202E(obj, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-531322598))) ? (-710204798) : (-710204800)); - break; - } - case 5: - lines.Add(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-126206019)); - num = -710204799; - break; - case 2: - return; - } - } - } - } - continue; - IL_0049: - num = 335150381; + return; + } + foreach (string property in from x in step + where x.Value != null + select x.Key) + { + lines.RemoveAll((string x) => IsRequiredPropertyError(x, property)); + } + if (step["InteractionType"]?.GetValue<string>() != "Combat") + { + lines.RemoveAll((string x) => IsRequiredPropertyError(x, "EnemySpawnType") || IsRequiredPropertyError(x, "KillEnemyDataIds") || IsRequiredPropertyError(x, "ComplexCombatData")); + return; + } + string obj = step["EnemySpawnType"]?.GetValue<string>(); + if (obj != "AfterItemUse") + { + lines.RemoveAll((string x) => IsRequiredPropertyError(x, "ItemId")); + } + if (obj == "FinishCombatIfAny") + { + lines.RemoveAll((string x) => IsRequiredPropertyError(x, "KillEnemyDataIds") || IsRequiredPropertyError(x, "ComplexCombatData")); + return; + } + bool num = lines.RemoveAll((string x) => IsRequiredPropertyError(x, "KillEnemyDataIds")) > 0; + bool flag = lines.RemoveAll((string x) => IsRequiredPropertyError(x, "ComplexCombatData")) > 0; + if (num && flag) + { + lines.Add("One combat target definition is required: KillEnemyDataIds or ComplexCombatData"); } } - [MethodImpl(MethodImplOptions.NoInlining)] private static bool IsRequiredPropertyError(string message, string property) { - return _202D_200D_200E_200F_200D_200F_202D_202B_202D_206D_206E_200E_200D_202D_202B_200C_202A_202E_200F_202A_200D_202D_206B_202E_206A_202E_202B_200C_200C_202D_206A_206E_202B_200B_206D_202D_202D_206B_202C_206F_202E(message, _202C_202D_200E_202D_202C_200D_202A_206E_202C_200C_200C_200F_200F_206A_200B_206C_202E_202B_202C_202D_200E_206B_206C_206A_206B_200E_206E_206A_206B_202C_202E_202A_206B_202A_202C_200F_202E_200F_200C_206C_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1903574135), property, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2102967249)), StringComparison.Ordinal); + return message.Contains("Required properties [\"" + property + "\"]", StringComparison.Ordinal); } - [MethodImpl(MethodImplOptions.NoInlining)] private static JsonObject? FindStepNode(JsonNode questNode, byte? sequence, int? step) { - int num = ((!sequence.HasValue) ? 1010029165 : 1010029158); - JsonArray jsonArray = default(JsonArray); - JsonArray jsonArray2 = default(JsonArray); - while (true) + if (!sequence.HasValue || !step.HasValue || !(questNode["QuestSequence"] is JsonArray source)) { - int num2 = num; - int num3 = 1010029166; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - return _206D_206F_202C_202D_202D_202E_202D_200C_200B_202E_202B_206A_200B_206B_206C_202B_202C_206C_202C_206D_202B_200D_200B_200C_200B_206F_200F_206A_202D_202C_202A_202B_206C_202D_206B_202D_206E_206C_200C_200D_202E((JsonNode)jsonArray, step.Value) as JsonObject; - case 5: - num = ((step.Value < 0) ? 1010029162 : 1010029161); - break; - case 3: - return null; - case 4: - return null; - case 0: - jsonArray2 = _206B_206C_206F_200F_202E_206C_200F_202A_206A_206E_202A_202C_206C_206D_200C_202C_206C_206B_202D_206C_200B_206A_202A_206B_202A_202C_206F_206E_206F_206E_202E_200D_202D_206D_206C_200E_200E_202D_206C_200C_202E(questNode, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1629153329)) as JsonArray; - num = ((jsonArray2 != null) ? 1010029167 : 1010029165); - break; - case 1: - jsonArray = ((JsonSchemaValidator)(object)jsonArray2.OfType<JsonObject>().FirstOrDefault([MethodImpl(MethodImplOptions.NoInlining)] (JsonObject x) => _003C_003Ec__DisplayClass8_0._202C_200B_206E_202D_200D_202D_202A_200D_200B_200C_200E_206F_200B_200E_202C_202E_200F_206A_206A_200B_200B_200F_202D_206F_206C_206E_202E_200C_200C_200D_200D_206C_202A_206A_202C_206A_202A_206C_206A_206E_202E((JsonNode)x, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(916692153))?.GetValue<int>() == sequence.Value))?._206B_206A_206B_200C_206B_206A_200D_206F_206A_200F_206F_200F_206A_202C_200B_200E_206D_202E_206E_202D_200B_202C_206B_202B_202C_200E_202B_206F_206F_206B_206B_202E_200C_202A_200C_202B_200B_202C_200F_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(789270299)) as JsonArray; - num = ((jsonArray == null) ? 1010029162 : 1010029163); - break; - case 2: - num = 1010029158; - break; - case 8: - num = ((!step.HasValue) ? 1010029165 : 1010029166); - break; - case 7: - num = ((step.Value < _202D_200F_200F_202A_200C_200E_206C_200E_200C_206C_206C_200D_200C_200F_206D_202B_206A_200E_202B_206E_206D_200E_200C_206C_206D_206F_200D_202B_200E_202A_206F_206C_200D_200C_202A_200E_202E_206F_200F_202E_202E(jsonArray)) ? 1010029160 : 1010029162); - break; - } + return null; } + if (!(source.OfType<JsonObject>().FirstOrDefault((JsonObject x) => x["Sequence"]?.GetValue<int>() == sequence.Value)?["Steps"] is JsonArray jsonArray) || step.Value < 0 || step.Value >= jsonArray.Count) + { + return null; + } + return jsonArray[step.Value] as JsonObject; } public void Enqueue(ElementId elementId, JsonNode questNode) @@ -1086,300 +222,59 @@ internal sealed class JsonSchemaValidator : IQuestValidator _questNodes.Clear(); } - void IQuestValidator.Reset() - { - //ILSpy generated this explicit interface implementation from .override directive in Reset - this.Reset(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] private static Dictionary<int, byte> BuildSequenceMap(JsonNode questNode) { Dictionary<int, byte> dictionary = new Dictionary<int, byte>(); - JsonArray jsonArray = _206B_206C_206F_200F_202E_206C_200F_202A_206A_206E_202A_202C_206C_206D_200C_202C_206C_206B_202D_206C_200B_206A_202A_206B_202A_202C_206F_206E_206F_206E_202E_200D_202D_206D_206C_200E_200E_202D_206C_200C_202E(questNode, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1629153329)) as JsonArray; - int num = ((jsonArray != null) ? (-2072185714) : (-2072185727)); - JsonNode jsonNode = default(JsonNode); - int num7 = default(int); - while (true) + if (!(questNode["QuestSequence"] is JsonArray jsonArray)) { - int num2 = num; - int num3 = -2072185719; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return dictionary; + } + for (int i = 0; i < jsonArray.Count; i++) + { + JsonNode jsonNode = jsonArray[i]?["Sequence"]; + if (jsonNode != null && jsonNode.GetValueKind() == JsonValueKind.Number) { - case 6: - num = -2072185727; - break; - case 4: - jsonNode = ((JsonSchemaValidator)(object)_206D_206F_202C_202D_202D_202E_202D_200C_200B_202E_202B_206A_200B_206B_206C_202B_202C_206C_202C_206D_202B_200D_200B_200C_200B_206F_200F_206A_202D_202C_202A_202B_206C_202D_206B_202D_206E_206C_200C_200D_202E((JsonNode)jsonArray, num7))?._206B_206A_206B_200C_206B_206A_200D_206F_206A_200F_206F_200F_206A_202C_200B_200E_206D_202E_206E_202D_200B_202C_206B_202B_202C_200E_202B_206F_206F_206B_206B_202E_200C_202A_200C_202B_200B_202C_200F_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1807900671)); - num = ((jsonNode == null) ? (-2072185719) : (-2072185717)); - break; - case 8: - return dictionary; - case 3: - num = ((num7 < _202D_200F_200F_202A_200C_200E_206C_200E_200C_206C_206C_200D_200C_200F_206D_202B_206A_200E_202B_206E_206D_200E_200C_206C_206D_206F_200D_202B_200E_202A_206F_206C_200D_200C_202A_200E_202E_206F_200F_202E_202E(jsonArray)) ? (-2072185715) : (-2072185716)); - break; - case 1: - dictionary[num7] = (byte)jsonNode.GetValue<int>(); - num = -2072185719; - break; - case 2: - num = ((_202E_200F_202A_206F_200D_202A_202C_202A_206D_206E_206F_200C_206E_206B_206B_200C_200B_202E_202B_202B_202E_202B_200F_206A_200E_206B_200E_202D_206F_202C_206F_200D_202A_202E_206C_202A_206C_206A_206A_206C_202E(jsonNode) != JsonValueKind.Number) ? (-2072185719) : (-2072185720)); - break; - case 5: - return dictionary; - case 0: - { - int num8 = num7; - num3 = 1; - num4 = num8; - num7 = (num4 | num3) + (num4 & num3); - num = -2072185718; - break; - } - case 7: - num7 = 0; - num = -2072185718; - break; + dictionary[i] = (byte)jsonNode.GetValue<int>(); } } + return dictionary; } - [MethodImpl(MethodImplOptions.NoInlining)] private static (byte? Sequence, int? Step, string Path) ParseInstanceLocation(string instancePath, Dictionary<int, byte> sequenceMap) { - int num = ((!_202E_206D_206F_202B_202E_202B_206F_200B_206D_202C_202A_200D_200C_206E_206B_202B_206E_202D_206E_202B_200D_202A_206D_202E_202C_206C_206B_200E_206C_202A_206D_206D_202E_200C_200E_206E_200B_200C_206B_200F_202E(instancePath)) ? 1791406059 : 1791406061); - string[] array2 = default(string[]); - int num6 = default(int); - byte? item2 = default(byte?); - int? item3 = default(int?); - int num18 = default(int); - byte value = default(byte); - int result = default(int); - int result2 = default(int); - while (true) + if (string.IsNullOrEmpty(instancePath)) { - int num2 = num; - int num3 = 1791406063; - int num4 = num2; - string text; - byte? obj; - string item; - int num20; - int num21; - int num22; - int num23; - switch ((num4 | num3) - (num4 & num3)) + return (Sequence: null, Step: null, Path: string.Empty); + } + string[] array = instancePath.Split('/'); + byte? item = null; + int? item2 = null; + int num = 1; + for (int i = 1; i < array.Length - 1; i++) + { + if (!(array[i] != "QuestSequence") && int.TryParse(array[i + 1], out var result)) { - case 6: - num = (_202A_202C_206D_200C_202E_202E_202D_206B_206C_200B_206C_200C_200D_206E_200E_206B_202A_200E_202B_200F_206F_202C_202B_206D_206A_200E_202C_206E_206B_202D_206F_206B_200B_202D_206D_202E_202A_202D_200D_206F_202E(array2[num6], global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1629153329)) ? 1791406054 : 1791406062); - break; - case 4: - array2 = _206A_206E_200C_202E_202D_202A_200D_206C_200D_206A_200E_206A_200F_206E_206F_206A_202A_206E_202C_200B_200D_200E_206A_202B_200F_200E_202C_200E_200E_206E_200B_206C_206C_202D_202D_206F_202A_206A_206F_200D_202E(instancePath, '/', StringSplitOptions.None); - item2 = null; - item3 = null; - num18 = 1; - num6 = 1; - num = 1791406052; - break; - case 12: - { - string text2 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1680133376); - string[] array4 = array2; - int num17 = num18; - int num19 = array2.Length; - num3 = num18; - num4 = num19; - text = _202B_202A_202A_200E_206E_202B_206C_200E_206D_200E_200F_200D_202A_202A_202C_200D_202C_200E_200E_200C_206D_200C_206E_200E_202E_206F_200B_206E_200C_202E_206B_206E_200D_200D_200E_206A_200B_202C_200C_206D_202E(text2, array4, num17, ~(~num4 + num3)); - goto IL_00fe; - } - case 3: - obj = null; - goto IL_0192; - case 11: - { - int num15 = num6; - int num16 = array2.Length; - num3 = 1; - num4 = num16; - num = ((num15 < ~(~num4 + num3)) ? 1791406057 : 1791406050); - break; - } - case 9: - { - int num12 = num6; - num3 = 1; - num4 = num12; - int num13 = num4 ^ num3; - int num14 = num4 & num3; - num6 = num13 + (num14 + num14); - num = 1791406052; - break; - } - case 15: - text = string.Empty; - goto IL_00fe; - case 8: - obj = value; - goto IL_0192; - case 10: - { - item3 = result; - int num25 = num6; - num3 = 4; - num4 = num25; - int num26 = num4 ^ num3; - int num27 = num4 & num3; - num18 = num26 + (num27 + num27); - num = 1791406050; - break; - } - case 1: - { - string[] array5 = array2; - int num24 = num6; - num3 = 1; - num4 = num24; - num = ((!int.TryParse(array5[(num4 | num3) + (num4 & num3)], out result2)) ? 1791406054 : 1791406063); - break; - } - case 13: - num = ((num18 < array2.Length) ? 1791406051 : 1791406048); - break; - case 0: - num = (sequenceMap.TryGetValue(result2, out value) ? 1791406055 : 1791406060); - break; - case 2: - return (Sequence: null, Step: null, Path: string.Empty); - case 5: - num = 1791406061; - break; - case 7: - { - string[] array3 = array2; - int num9 = num6; - num3 = 2; - num4 = num9; - int num10 = num4 ^ num3; - int num11 = num4 & num3; - num = ((!_206F_206D_206F_202C_200F_206D_206D_202B_202A_206A_202C_200F_206E_206C_206E_206A_206F_202A_202B_202C_202C_200C_200B_200C_202D_200B_200E_202C_206D_202A_206C_206E_206A_206E_200C_200D_206A_202D_206A_202B_202E(array3[num10 + (num11 + num11)], global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-487116266))) ? 1791406050 : 1791406049); - break; - } - case 14: + item = (sequenceMap.TryGetValue(result, out var value) ? new byte?(value) : ((byte?)null)); + num = i + 2; + if (i + 3 < array.Length && array[i + 2] == "Steps" && int.TryParse(array[i + 3], out var result2)) { - string[] array = array2; - int num5 = num6; - num3 = 3; - num4 = num5; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - num = ((!int.TryParse(array[num7 + (num8 + num8)], out result)) ? 1791406050 : 1791406053); - break; + item2 = result2; + num = i + 4; } - IL_00fe: - item = text; - return (Sequence: item2, Step: item3, Path: item); - IL_0192: - item2 = obj; - num20 = num6; - num3 = 2; - num4 = num20; - num18 = (num4 | num3) + (num4 & num3); - num21 = num6; - num3 = 3; - num4 = num21; - num22 = num4 ^ num3; - num23 = num4 & num3; - num = ((num22 + (num23 + num23) >= array2.Length) ? 1791406050 : 1791406056); break; } } + string item3 = ((num < array.Length) ? string.Join("/", array, num, array.Length - num) : string.Empty); + return (Sequence: item, Step: item2, Path: item3); } private static void NoEmptyCollectionModifier(JsonTypeInfo typeInfo) { - IEnumerator<JsonPropertyInfo> enumerator = _200C_200D_202A_206E_206E_202E_202C_200E_200C_206B_202C_206D_200D_202E_200B_206E_206C_200C_202E_202E_206D_200B_200D_206D_206E_200E_200F_200F_202E_206B_200E_200E_200D_206F_206E_202A_200F_200E_200B_200F_202E(typeInfo).GetEnumerator(); - try + foreach (JsonPropertyInfo property in typeInfo.Properties) { - int num = 470311870; - JsonPropertyInfo current = default(JsonPropertyInfo); - while (true) + if (typeof(ICollection).IsAssignableFrom(property.PropertyType)) { - int num2 = num; - int num3 = 470311870; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 470311870; - break; - case 3: - _206D_202B_206C_202B_200E_206F_200E_202A_202C_200C_202E_200F_206F_206E_206B_202A_202D_206A_206C_202B_206A_206D_200C_202A_206B_206E_206F_200B_200E_206A_206B_200C_200E_202C_200C_206B_202B_200D_202D_206F_202E(current, (Func<object, object, bool>)delegate(object _, object? val) - { - ICollection collection = val as ICollection; - int num8 = ((collection == null) ? (-1341388091) : (-1341388092)); - while (true) - { - int num9 = num8; - int num10 = -1341388091; - int num11 = num9; - int num12 = num11 + num10; - int num13 = num11 & num10; - switch (num12 - (num13 + num13)) - { - case 0: - return false; - case 1: - return _003C_003Ec._206D_206E_206C_202B_206F_200B_200D_200C_206D_206F_200E_206B_206F_202C_206A_202D_206D_206C_200B_202E_200D_200C_206D_200B_202D_206C_200E_206E_206C_200C_200C_200E_202D_202D_200C_200D_202D_206A_206A_200F_202E(collection) > 0; - case 2: - goto IL_0056; - } - continue; - IL_0056: - num8 = -1341388092; - } - }); - num = 470311870; - break; - case 0: - num = (_200C_206A_202B_206B_206F_206C_206A_206A_200D_202C_200D_202D_202B_206B_200B_206B_206E_206A_206B_200C_206A_206D_202B_200F_206E_202E_206C_206E_206B_202B_200D_206A_200F_206D_202E_202C_202A_200B_206C_206A_202E((IEnumerator)enumerator) ? 470311866 : 470311871); - break; - case 4: - current = enumerator.Current; - num = ((!_200D_206D_202B_202B_206B_202D_200F_200E_206F_200E_200F_200F_206C_200B_206E_200E_202E_206F_202B_200D_200F_206C_206E_200B_200E_202B_206A_200F_200F_202A_200E_202D_202E_200C_200F_206F_200D_200F_202E_202A_202E(_200F_200F_206E_200C_206C_206D_206D_206B_206B_206B_206B_202A_200F_200C_200D_200B_200B_200E_200E_200F_200F_202B_206E_202E_202C_202C_206D_200E_202C_206A_200D_206B_200C_200F_202D_202A_202C_206D_200E_202B_202E(typeof(ICollection).TypeHandle), _200E_206E_200F_202D_200D_200D_200B_202C_206F_200E_200B_200C_206D_206C_202B_200F_200D_202C_202B_200C_206E_200C_200F_202C_202B_202B_202C_200D_200F_206C_202C_202D_200D_200F_202C_206D_200F_206E_200F_206D_202E(current))) ? 470311870 : 470311869); - break; - case 1: - return; - } - } - } - finally - { - int num = ((enumerator == null) ? 1235521984 : 1235521987); - while (true) - { - int num7 = num; - int num3 = 1235521986; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1235521987; - break; - case 2: - goto end_IL_0100; - case 1: - _200E_206B_200C_202C_206A_200B_202B_202E_200C_206E_202D_202C_200D_200B_206D_200F_202A_200F_206E_206C_200F_200D_200E_200B_202D_202E_200C_202C_200F_206C_206F_202D_202A_202B_200C_206A_206B_200B_202A_200C_202E((IDisposable)enumerator); - num = 1235521984; - break; - } - continue; - end_IL_0100: - break; + property.ShouldSerialize = (object _, object? val) => val is ICollection collection && collection.Count > 0; } } } @@ -1389,297 +284,19 @@ internal sealed class JsonSchemaValidator : IQuestValidator return ValidateFromQuestRoot(quest.Id, quest.Root); } - [MethodImpl(MethodImplOptions.NoInlining)] public IEnumerable<ValidationIssue> ValidateFromQuestRoot(ElementId elementId, QuestRoot questRoot) { - JsonObject jsonObject = JsonSerializer.SerializeToNode(questRoot, ValidationSerializationOptions) as JsonObject; - int num = ((jsonObject != null) ? (-662863464) : (-662863463)); - while (true) + if (!(JsonSerializer.SerializeToNode(questRoot, ValidationSerializationOptions) is JsonObject jsonObject)) { - int num2 = num; - int num3 = -662863464; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_005d; - case 1: - return Array.Empty<ValidationIssue>(); - case 0: - { - JsonObject jsonObject2 = _206B_206A_206B_202A_206C_206A_206E_200B_202E_206C_202A_206C_200C_202B_202E_206E_200E_206D_200E_206D_202D_200C_202D_202C_206D_200E_206F_206F_206B_202B_202E_202E_206F_202E_206F_200D_206B_200D_202E_200F_202E((JsonNodeOptions?)null); - _200D_202C_202E_206E_206B_200F_200E_202C_200C_206C_206F_206B_206E_206C_206D_206D_202D_206A_206F_200C_202A_200C_202E_202A_200D_206E_200E_200F_206B_200E_200E_200C_200F_202B_206F_200D_206D_206D_200C_206E_202E((JsonNode)jsonObject2, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-978893896), _202D_200D_200B_206D_200E_206E_206F_200D_202C_206C_202C_202C_200E_200D_200D_200C_202C_202D_206E_202A_206C_206B_202D_200F_202A_206B_206A_202E_206D_202A_206D_206E_206E_200F_200B_206E_200C_200E_200C_202A_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2134999905))); - JsonObject jsonObject3 = jsonObject2; - IEnumerator<KeyValuePair<string, JsonNode>> enumerator = _206A_200E_200B_202C_202A_200E_202A_202E_200E_206A_206E_200B_200C_206D_200F_202D_200D_200F_202B_206D_200E_206A_206B_202B_200D_206B_202E_202A_202B_202B_206D_200B_206D_206F_202D_206D_206C_200E_206F_206E_202E(jsonObject); - try - { - num = -387282071; - while (true) - { - int num7 = num; - num3 = -387282070; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -387282071; - break; - case 2: - var (text2, jsonNode2) = (KeyValuePair<string, JsonNode>)(ref enumerator.Current); - _200D_202C_202E_206E_206B_200F_200E_202C_200C_206C_206F_206B_206E_206C_206D_206D_202D_206A_206F_200C_202A_200C_202E_202A_200D_206E_200E_200F_206B_200E_200E_200C_200F_202B_206F_200D_206D_206D_200C_206E_202E((JsonNode)jsonObject3, text2, (jsonNode2 != null) ? _206C_200D_200F_200C_202D_200E_200F_206B_200E_206A_200C_200B_206D_200E_202C_206B_206E_206A_206D_206C_206D_200D_202D_202A_206E_202E_206F_202B_202D_200C_202D_206F_200C_202E_200D_206B_200F_202A_200D_200F_202E(jsonNode2) : null); - num = -387282071; - break; - case 3: - num = (_200C_206A_202B_206B_206F_206C_206A_206A_200D_202C_200D_202D_202B_206B_200B_206B_206E_206A_206B_200C_206A_206D_202B_200F_206E_202E_206C_206E_206B_202B_200D_206A_200F_206D_202E_202C_202A_200B_206C_206A_202E((IEnumerator)enumerator) ? (-387282072) : (-387282069)); - break; - case 1: - goto end_IL_00b0; - } - continue; - end_IL_00b0: - break; - } - } - finally - { - num = ((enumerator == null) ? 482344416 : 482344419); - while (true) - { - int num8 = num; - num3 = 482344417; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 482344419; - break; - case 2: - _200E_206B_200C_202C_206A_200B_202B_202E_200C_206E_202D_202C_200D_200B_206D_200F_202A_200F_206E_206C_200F_200D_200E_200B_202D_202E_200C_202C_200F_206C_206F_202D_202A_202B_200C_206A_206B_200B_202A_200C_202E((IDisposable)enumerator); - num = 482344416; - break; - case 1: - goto end_IL_0175; - } - continue; - end_IL_0175: - break; - } - } - return ValidateImmediate(elementId, jsonObject3); - } - } - continue; - IL_005d: - num = -662863463; + return Array.Empty<ValidationIssue>(); } - } - - static JsonSchemaValidator() - { - JsonSerializerOptions jsonSerializerOptions = _202E_200E_206C_206A_206B_206D_202C_200B_206C_200E_200F_206A_200D_206F_206D_202C_202E_206A_206A_200F_200D_206F_200F_202E_206E_202B_206F_202A_206A_200E_202C_206D_200B_206A_200C_202D_202D_200B_206D_202E(); - _206D_200B_206E_200D_206D_202A_202D_206E_206A_206F_200F_200D_200F_200B_200E_200E_200E_206B_202A_200E_202B_202B_200F_200C_206B_202B_206C_202C_206F_200F_206A_200E_202C_206A_200C_206F_200E_200B_206C_206E_202E(jsonSerializerOptions, JsonIgnoreCondition.WhenWritingDefault); - _202B_200E_206B_206D_200E_200C_200F_206D_200E_206C_200D_206E_206E_206D_206E_206A_202C_202C_206B_202A_202A_206E_206F_202E_202E_206E_206B_202D_206B_206B_200F_202A_206A_206E_202A_200D_202C_206E_200C_202C_202E(jsonSerializerOptions, false); - _206E_202C_206B_202A_200D_206C_202C_206C_206E_200C_200E_206F_202C_206A_206F_206E_202A_202E_206B_206C_200E_206A_206A_206C_202E_206D_206F_202E_206B_206A_202D_200B_202C_202E_206C_206B_202A_202A_202C_202E(jsonSerializerOptions, false); - DefaultJsonTypeInfoResolver defaultJsonTypeInfoResolver = _200D_202A_202A_202C_202D_200D_202B_206E_202E_202C_206E_200C_200F_200F_202E_206F_200C_200D_202E_206A_202D_202A_206E_206B_202D_200F_206C_202D_206C_200E_200C_202C_206B_200F_202A_202E_202D_200B_202B_202E(); - _200E_206C_206F_202E_200D_206A_206C_206E_200B_206B_202E_206A_200B_200B_202E_200B_206E_206A_206E_206F_200B_200E_202D_206D_206F_206E_200C_206F_202E_206A_206B_202A_202D_202D_206B_200C_200B_206F_202A_206D_202E(defaultJsonTypeInfoResolver).Add(NoEmptyCollectionModifier); - _202A_206A_206D_206A_200E_200B_202C_202B_200C_202B_206B_200E_202C_202E_206B_200D_202D_202A_202E_200B_200B_200E_202E_206C_202A_200E_200D_206D_202C_202D_206A_200D_206D_206A_202A_206D_202B_206D_202E_206F_202E(jsonSerializerOptions, (IJsonTypeInfoResolver)defaultJsonTypeInfoResolver); - ValidationSerializationOptions = jsonSerializerOptions; - } - - static EvaluationOptions _206D_206E_202B_200E_206A_202A_206B_206E_206F_202E_202D_206A_200D_202C_206B_200B_202A_202A_206F_206C_202D_200C_202C_202C_206D_200F_202D_206C_202D_202E_202C_200B_202C_202A_200B_206C_202C_202D_200B_200F_202E() - { - return new EvaluationOptions(); - } - - static CultureInfo _202D_200C_206F_206F_200E_206B_206F_202E_206A_202D_206F_200F_206D_206A_202C_200E_202D_200D_206E_202D_206B_206D_200D_202E_202E_206F_200C_202B_200E_200F_206F_206D_206A_202C_200E_206E_200F_202A_200B_200D_202E() - { - return CultureInfo.InvariantCulture; - } - - static void _206E_200B_202B_200E_206A_206A_200C_202B_206C_202B_200B_202E_202E_200D_202E_202D_200B_202C_200D_200E_206A_200D_202D_206B_200C_206D_200E_206B_200E_200E_202E_202E_202D_202E_200D_206B_206E_206F_206D_202C_202E(EvaluationOptions P_0, CultureInfo P_1) - { - P_0.Culture = P_1; - } - - static void _206A_202D_200F_200F_202A_202B_202B_200E_200D_202D_206D_202C_202C_206B_206F_200F_202C_202E_202A_202B_202D_200E_206C_200C_206B_202D_206A_200D_206C_200F_200F_202E_200B_200D_202E_202D_202C_200F_206C_202C_202E(EvaluationOptions P_0, OutputFormat P_1) - { - P_0.OutputFormat = P_1; - } - - static EvaluationResults _202B_206E_200D_200B_206D_206E_206B_206E_206C_202E_206C_200D_206F_206A_206F_202B_206A_200B_206A_202C_200B_200D_202E_206B_202C_200D_202E_202D_206B_200C_200D_206E_206F_202C_206B_206E_202C_200D_206B_200C_202E(JsonSchema P_0, JsonElement P_1, EvaluationOptions P_2) - { - return P_0.Evaluate(P_1, P_2); - } - - static bool _200F_200B_206C_200D_202B_206F_200C_206A_202A_206C_206D_206F_200F_200F_202B_202C_206E_206A_202B_202C_202D_200E_202D_206F_200F_206E_202C_202E_206E_200F_200F_206B_200D_206D_206A_200F_202D_200C_206D_200D_202E(EvaluationResults P_0) - { - return P_0.IsValid; - } - - static string _202A_206B_206D_200C_206A_206D_206A_202A_206F_200B_206F_200D_200E_202B_200F_202E_200D_206B_200F_206F_206D_200D_200D_200D_206F_200C_206F_206F_200D_206D_206B_206D_202B_206D_206D_200F_202C_206F_206C_202C_202E(object P_0) - { - return P_0.ToString(); - } - - static string _200E_200C_200C_202E_200B_200D_202E_202E_206A_202E_202D_206A_200C_206A_206D_202C_202C_206C_202C_206A_200C_200D_202E_206F_200F_206D_202A_206A_202E_200D_200D_200E_200E_206A_202C_202C_206C_202A_200E_202D_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); - } - - static bool _200C_206A_202B_206B_206F_206C_206A_206A_200D_202C_200D_202D_202B_206B_200B_206B_206E_206A_206B_200C_206A_206D_202B_200F_206E_202E_206C_206E_206B_202B_200D_206A_200F_206D_202E_202C_202A_200B_206C_206A_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200E_206B_200C_202C_206A_200B_202B_202E_200C_206E_202D_202C_200D_200B_206D_200F_202A_200F_206E_206C_200F_200D_200E_200B_202D_202E_200C_202C_200F_206C_206F_202D_202A_202B_200C_206A_206B_200B_202A_200C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static JsonNode _206B_206C_206F_200F_202E_206C_200F_202A_206A_206E_202A_202C_206C_206D_200C_202C_206C_206B_202D_206C_200B_206A_202A_206B_202A_202C_206F_206E_206F_206E_202E_200D_202D_206D_206C_200E_200E_202D_206C_200C_202E(JsonNode P_0, string P_1) - { - return P_0[P_1]; - } - - static bool _202A_202C_206D_200C_202E_202E_202D_206B_206C_200B_206C_200C_200D_206E_200E_206B_202A_200E_202B_200F_206F_202C_202B_206D_206A_200E_202C_206E_206B_202D_206F_206B_200B_202D_206D_202E_202A_202D_200D_206F_202E(string P_0, string P_1) - { - return P_0 != P_1; - } - - static bool _206F_206D_206F_202C_200F_206D_206D_202B_202A_206A_202C_200F_206E_206C_206E_206A_206F_202A_202B_202C_202C_200C_200B_200C_202D_200B_200E_202C_206D_202A_206C_206E_206A_206E_200C_200D_206A_202D_206A_202B_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static string _202C_202D_200E_202D_202C_200D_202A_206E_202C_200C_200C_200F_200F_206A_200B_206C_202E_202B_202C_202D_200E_206B_206C_206A_206B_200E_206E_206A_206B_202C_202E_202A_206B_202A_202C_200F_202E_200F_200C_206C_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static bool _202D_200D_200E_200F_200D_200F_202D_202B_202D_206D_206E_200E_200D_202D_202B_200C_202A_202E_200F_202A_200D_202D_206B_202E_206A_202E_202B_200C_200C_202D_206A_206E_202B_200B_206D_202D_202D_206B_202C_206F_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); - } - - JsonNode _206B_206A_206B_200C_206B_206A_200D_206F_206A_200F_206F_200F_206A_202C_200B_200E_206D_202E_206E_202D_200B_202C_206B_202B_202C_200E_202B_206F_206F_206B_206B_202E_200C_202A_200C_202B_200B_202C_200F_202E(string P_0) - { - return ((JsonNode)this)[P_0]; - } - - static int _202D_200F_200F_202A_200C_200E_206C_200E_200C_206C_206C_200D_200C_200F_206D_202B_206A_200E_202B_206E_206D_200E_200C_206C_206D_206F_200D_202B_200E_202A_206F_206C_200D_200C_202A_200E_202E_206F_200F_202E_202E(JsonArray P_0) - { - return P_0.Count; - } - - static JsonNode _206D_206F_202C_202D_202D_202E_202D_200C_200B_202E_202B_206A_200B_206B_206C_202B_202C_206C_202C_206D_202B_200D_200B_200C_200B_206F_200F_206A_202D_202C_202A_202B_206C_202D_206B_202D_206E_206C_200C_200D_202E(JsonNode P_0, int P_1) - { - return P_0[P_1]; - } - - static JsonValueKind _202E_200F_202A_206F_200D_202A_202C_202A_206D_206E_206F_200C_206E_206B_206B_200C_200B_202E_202B_202B_202E_202B_200F_206A_200E_206B_200E_202D_206F_202C_206F_200D_202A_202E_206C_202A_206C_206A_206A_206C_202E(JsonNode P_0) - { - return P_0.GetValueKind(); - } - - static bool _202E_206D_206F_202B_202E_202B_206F_200B_206D_202C_202A_200D_200C_206E_206B_202B_206E_202D_206E_202B_200D_202A_206D_202E_202C_206C_206B_200E_206C_202A_206D_206D_202E_200C_200E_206E_200B_200C_206B_200F_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static string[] _206A_206E_200C_202E_202D_202A_200D_206C_200D_206A_200E_206A_200F_206E_206F_206A_202A_206E_202C_200B_200D_200E_206A_202B_200F_200E_202C_200E_200E_206E_200B_206C_206C_202D_202D_206F_202A_206A_206F_200D_202E(string P_0, char P_1, StringSplitOptions P_2) - { - return P_0.Split(P_1, P_2); - } - - static string _202B_202A_202A_200E_206E_202B_206C_200E_206D_200E_200F_200D_202A_202A_202C_200D_202C_200E_200E_200C_206D_200C_206E_200E_202E_206F_200B_206E_200C_202E_206B_206E_200D_200D_200E_206A_200B_202C_200C_206D_202E(string P_0, string[] P_1, int P_2, int P_3) - { - return string.Join(P_0, P_1, P_2, P_3); - } - - static IList<JsonPropertyInfo> _200C_200D_202A_206E_206E_202E_202C_200E_200C_206B_202C_206D_200D_202E_200B_206E_206C_200C_202E_202E_206D_200B_200D_206D_206E_200E_200F_200F_202E_206B_200E_200E_200D_206F_206E_202A_200F_200E_200B_200F_202E(JsonTypeInfo P_0) - { - return P_0.Properties; - } - - static Type _200F_200F_206E_200C_206C_206D_206D_206B_206B_206B_206B_202A_200F_200C_200D_200B_200B_200E_200E_200F_200F_202B_206E_202E_202C_202C_206D_200E_202C_206A_200D_206B_200C_200F_202D_202A_202C_206D_200E_202B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static Type _200E_206E_200F_202D_200D_200D_200B_202C_206F_200E_200B_200C_206D_206C_202B_200F_200D_202C_202B_200C_206E_200C_200F_202C_202B_202B_202C_200D_200F_206C_202C_202D_200D_200F_202C_206D_200F_206E_200F_206D_202E(JsonPropertyInfo P_0) - { - return P_0.PropertyType; - } - - static bool _200D_206D_202B_202B_206B_202D_200F_200E_206F_200E_200F_200F_206C_200B_206E_200E_202E_206F_202B_200D_200F_206C_206E_200B_200E_202B_206A_200F_200F_202A_200E_202D_202E_200C_200F_206F_200D_200F_202E_202A_202E(Type P_0, Type P_1) - { - return P_0.IsAssignableFrom(P_1); - } - - static void _206D_202B_206C_202B_200E_206F_200E_202A_202C_200C_202E_200F_206F_206E_206B_202A_202D_206A_206C_202B_206A_206D_200C_202A_206B_206E_206F_200B_200E_206A_206B_200C_200E_202C_200C_206B_202B_200D_202D_206F_202E(JsonPropertyInfo P_0, Func<object, object, bool> P_1) - { - P_0.ShouldSerialize = P_1; - } - - static JsonObject _206B_206A_206B_202A_206C_206A_206E_200B_202E_206C_202A_206C_200C_202B_202E_206E_200E_206D_200E_206D_202D_200C_202D_202C_206D_200E_206F_206F_206B_202B_202E_202E_206F_202E_206F_200D_206B_200D_202E_200F_202E(JsonNodeOptions? P_0) - { - return new JsonObject(P_0); - } - - static JsonNode _202D_200D_200B_206D_200E_206E_206F_200D_202C_206C_202C_202C_200E_200D_200D_200C_202C_202D_206E_202A_206C_206B_202D_200F_202A_206B_206A_202E_206D_202A_206D_206E_206E_200F_200B_206E_200C_200E_200C_202A_202E(string P_0) - { - return P_0; - } - - static void _200D_202C_202E_206E_206B_200F_200E_202C_200C_206C_206F_206B_206E_206C_206D_206D_202D_206A_206F_200C_202A_200C_202E_202A_200D_206E_200E_200F_206B_200E_200E_200C_200F_202B_206F_200D_206D_206D_200C_206E_202E(JsonNode P_0, string P_1, JsonNode P_2) - { - P_0[P_1] = P_2; - } - - static IEnumerator<KeyValuePair<string, JsonNode>> _206A_200E_200B_202C_202A_200E_202A_202E_200E_206A_206E_200B_200C_206D_200F_202D_200D_200F_202B_206D_200E_206A_206B_202B_200D_206B_202E_202A_202B_202B_206D_200B_206D_206F_202D_206D_206C_200E_206F_206E_202E(JsonObject P_0) - { - return P_0.GetEnumerator(); - } - - static JsonNode _206C_200D_200F_200C_202D_200E_200F_206B_200E_206A_200C_200B_206D_200E_202C_206B_206E_206A_206D_206C_206D_200D_202D_202A_206E_202E_206F_202B_202D_200C_202D_206F_200C_202E_200D_206B_200F_202A_200D_200F_202E(JsonNode P_0) - { - return P_0.DeepClone(); - } - - static JsonSerializerOptions _202E_200E_206C_206A_206B_206D_202C_200B_206C_200E_200F_206A_200D_206F_206D_202C_202E_206A_206A_200F_200D_206F_200F_202E_206E_202B_206F_202A_206A_200E_202C_206D_200B_206A_200C_202D_202D_200B_206D_202E() - { - return new JsonSerializerOptions(); - } - - static void _206D_200B_206E_200D_206D_202A_202D_206E_206A_206F_200F_200D_200F_200B_200E_200E_200E_206B_202A_200E_202B_202B_200F_200C_206B_202B_206C_202C_206F_200F_206A_200E_202C_206A_200C_206F_200E_200B_206C_206E_202E(JsonSerializerOptions P_0, JsonIgnoreCondition P_1) - { - P_0.DefaultIgnoreCondition = P_1; - } - - static void _202B_200E_206B_206D_200E_200C_200F_206D_200E_206C_200D_206E_206E_206D_206E_206A_202C_202C_206B_202A_202A_206E_206F_202E_202E_206E_206B_202D_206B_206B_200F_202A_206A_206E_202A_200D_202C_206E_200C_202C_202E(JsonSerializerOptions P_0, bool P_1) - { - P_0.IncludeFields = P_1; - } - - static void _206E_202C_206B_202A_200D_206C_202C_206C_206E_200C_200E_206F_202C_206A_206F_206E_202A_202E_206B_206C_200E_206A_206A_206C_202E_206D_206F_202E_206B_206A_202D_200B_202C_202E_206C_206B_202A_202A_202C_202E(JsonSerializerOptions P_0, bool P_1) - { - P_0.WriteIndented = P_1; - } - - static DefaultJsonTypeInfoResolver _200D_202A_202A_202C_202D_200D_202B_206E_202E_202C_206E_200C_200F_200F_202E_206F_200C_200D_202E_206A_202D_202A_206E_206B_202D_200F_206C_202D_206C_200E_200C_202C_206B_200F_202A_202E_202D_200B_202B_202E() - { - return new DefaultJsonTypeInfoResolver(); - } - - static IList<Action<JsonTypeInfo>> _200E_206C_206F_202E_200D_206A_206C_206E_200B_206B_202E_206A_200B_200B_202E_200B_206E_206A_206E_206F_200B_200E_202D_206D_206F_206E_200C_206F_202E_206A_206B_202A_202D_202D_206B_200C_200B_206F_202A_206D_202E(DefaultJsonTypeInfoResolver P_0) - { - return P_0.Modifiers; - } - - static void _202A_206A_206D_206A_200E_200B_202C_202B_200C_202B_206B_200E_202C_202E_206B_200D_202D_202A_202E_200B_200B_200E_202E_206C_202A_200E_200D_206D_202C_202D_206A_200D_206D_206A_202A_206D_202B_206D_202E_206F_202E(JsonSerializerOptions P_0, IJsonTypeInfoResolver P_1) - { - P_0.TypeInfoResolver = P_1; + JsonObject jsonObject2 = new JsonObject { ["$schema"] = "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/QuestPaths/quest-v1.json" }; + foreach (KeyValuePair<string, JsonNode> item in jsonObject) + { + item.Deconstruct(out var key, out var value); + string propertyName = key; + jsonObject2[propertyName] = value?.DeepClone(); + } + return ValidateImmediate(elementId, jsonObject2); } } diff --git a/Questionable/Questionable.Validation.Validators/LandingZoneValidator.cs b/Questionable/Questionable.Validation.Validators/LandingZoneValidator.cs index 05da243..052bf88 100644 --- a/Questionable/Questionable.Validation.Validators/LandingZoneValidator.cs +++ b/Questionable/Questionable.Validation.Validators/LandingZoneValidator.cs @@ -1,10 +1,5 @@ -using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; -using System.Numerics; -using System.Runtime.CompilerServices; using Questionable.Model; using Questionable.Model.Questing; @@ -12,476 +7,55 @@ namespace Questionable.Validation.Validators; internal sealed class LandingZoneValidator : IQuestValidator { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<(QuestSequence Sequence, int StepId, QuestStep Step), bool> _003C_003E9__0_0; - - internal bool _003CValidate_003Eb__0_0((QuestSequence Sequence, int StepId, QuestStep Step) x) - { - List<LandingZone> list = _200D_202B_206F_200E_202E_206A_202A_206B_200D_206F_200C_202D_200F_202D_206E_202D_202E_202C_206D_202B_202B_200C_202D_202E_206E_206E_206F_202A_200B_202C_206B_200F_206D_200E_202E_202C_200C_202E_206B_206A_202E(x.Step); - int num = ((list == null) ? 293008772 : 293008775); - while (true) - { - int num2 = num; - int num3 = 293008773; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return false; - case 2: - return list.Count > 0; - case 0: - goto IL_0059; - } - continue; - IL_0059: - num = 293008775; - } - } - - static List<LandingZone> _200D_202B_206F_200E_202E_206A_202A_206B_200D_206F_200C_202D_200F_202D_206E_202D_202E_202C_206D_202B_202B_200C_202D_202E_206E_206E_206F_202A_200B_202C_206B_200F_206D_200E_202E_202C_200C_202E_206B_206A_202E(QuestStep P_0) - { - return P_0.LandingZones; - } - } - - [CompilerGenerated] - private sealed class _003CValidate_003Ed__0 : IEnumerable<ValidationIssue>, IEnumerable, IEnumerator<ValidationIssue>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ValidationIssue _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - private Quest quest; - - public Quest _003C_003E3__quest; - - private IEnumerator<(QuestSequence Sequence, int StepId, QuestStep Step)> _003C_003E7__wrap1; - - private (QuestSequence Sequence, int StepId, QuestStep Step) _003CstepInfo_003E5__3; - - private int _003Cz_003E5__4; - - private LandingZone _003Czone_003E5__5; - - ValidationIssue IEnumerator<ValidationIssue>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CValidate_003Ed__0(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _206B_202C_206F_206D_202E_202E_206D_206F_200C_200D_206C_200C_206A_206F_206D_206E_202D_202A_200C_202E_202E_206D_200F_200B_200F_200B_200E_200B_202A_200F_206E_206A_202E_206B_206B_202E_206F_200B_206B_202A_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num == -3) ? (-301580919) : (-301580918)); - while (true) - { - int num3 = num2; - int num4 = -301580920; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - default: - continue; - case 0: - num2 = -301580918; - continue; - case 2: - num4 = 1; - num5 = num; - if ((uint)(~(~num5 + num4)) <= 2u) - { - num2 = -301580919; - continue; - } - break; - case 1: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E7__wrap1 = null; - _003CstepInfo_003E5__3 = default((QuestSequence, int, QuestStep)); - _003Czone_003E5__5 = null; - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - try - { - int num; - switch (_003C_003E1__state) - { - default: - num = 1353765120; - goto IL_0029; - case 2: - _003C_003E1__state = -3; - num = 1353765123; - goto IL_0029; - case 1: - goto IL_02fa; - case 0: - goto IL_0497; - case 3: - goto IL_04ef; - IL_0029: - while (true) - { - int num2 = num; - int num3 = 1353765133; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 15: - num = 1353765120; - break; - case 14: - goto IL_00a1; - case 7: - goto IL_00d3; - case 11: - goto IL_0100; - case 5: - _003CstepInfo_003E5__3 = _003C_003E7__wrap1.Current; - _003Cz_003E5__4 = 0; - num = 1353765151; - break; - case 2: - { - int num5 = _003Cz_003E5__4; - num3 = 1; - num4 = num5; - _003Cz_003E5__4 = (num4 | num3) + (num4 & num3); - num = 1353765151; - break; - } - case 18: - goto IL_0178; - case 0: - goto IL_01b0; - case 6: - _003CstepInfo_003E5__3 = default((QuestSequence, int, QuestStep)); - num = 1353765126; - break; - case 9: - goto end_IL_0029; - case 1: - _003Czone_003E5__5 = null; - num = 1353765135; - break; - case 3: - { - ValidationIssue obj3 = new ValidationIssue - { - ElementId = quest.Id, - Sequence = _200B_202B_202B_206D_206D_200C_202E_206A_200B_206F_206A_206C_202B_202D_200C_200C_206F_200C_206D_200B_200E_200D_202A_206D_202B_202A_200C_206B_206A_202B_200F_206E_200C_206B_200D_206F_206B_206F_202A_202B_202E(_003CstepInfo_003E5__3.Sequence), - Step = _003CstepInfo_003E5__3.StepId, - Type = EIssueType.InvalidLandingZone, - Severity = EIssueSeverity.Error - }; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(48, 1); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(763106568)); - defaultInterpolatedStringHandler3.AppendFormatted(_003Cz_003E5__4); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-317713008)); - obj3.Description = defaultInterpolatedStringHandler3.ToStringAndClear(); - _003C_003E2__current = obj3; - _003C_003E1__state = 3; - return true; - } - case 10: - goto IL_02fa; - case 13: - return false; - case 17: - { - ValidationIssue obj2 = new ValidationIssue - { - ElementId = quest.Id, - Sequence = _200B_202B_202B_206D_206D_200C_202E_206A_200B_206F_206A_206C_202B_202D_200C_200C_206F_200C_206D_200B_200E_200D_202A_206D_202B_202A_200C_206B_206A_202B_200F_206E_200C_206B_200D_206F_206B_206F_202A_202B_202E(_003CstepInfo_003E5__3.Sequence), - Step = _003CstepInfo_003E5__3.StepId, - Type = EIssueType.InvalidLandingZone, - Severity = EIssueSeverity.Error - }; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(39, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1041108262)); - defaultInterpolatedStringHandler2.AppendFormatted(_003Cz_003E5__4); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1470671526)); - obj2.Description = defaultInterpolatedStringHandler2.ToStringAndClear(); - _003C_003E2__current = obj2; - _003C_003E1__state = 1; - return true; - } - case 16: - { - ValidationIssue obj = new ValidationIssue - { - ElementId = quest.Id, - Sequence = _200B_202B_202B_206D_206D_200C_202E_206A_200B_206F_206A_206C_202B_202D_200C_200C_206F_200C_206D_200B_200E_200D_202A_206D_202B_202A_200C_206B_206A_202B_200F_206E_200C_206B_200D_206F_206B_206F_202A_202B_202E(_003CstepInfo_003E5__3.Sequence), - Step = _003CstepInfo_003E5__3.StepId, - Type = EIssueType.InvalidLandingZone, - Severity = EIssueSeverity.Error - }; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(27, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(430923307)); - defaultInterpolatedStringHandler.AppendFormatted(_003Cz_003E5__4); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1557501855)); - obj.Description = defaultInterpolatedStringHandler.ToStringAndClear(); - _003C_003E2__current = obj; - _003C_003E1__state = 2; - return true; - } - case 8: - goto IL_0497; - case 12: - goto IL_04ef; - case 4: - _003C_003Em__Finally1(); - _003C_003E7__wrap1 = null; - return false; - } - continue; - IL_01b0: - _003Czone_003E5__5 = _202E_200C_202A_200B_206B_206C_206A_206D_202B_206C_200C_202E_202A_200E_202B_206A_202D_206E_202D_200B_200F_200E_206B_200C_202A_206A_202B_206C_202D_206C_200F_202C_202B_206B_202B_206C_202C_200B_202E_200C_202E(_003CstepInfo_003E5__3.Step)[_003Cz_003E5__4]; - num = ((_206B_200F_200D_202D_202D_206E_202B_206E_206B_200C_200C_206D_206D_202B_206F_202B_206D_200C_202D_200D_206B_202E_200F_206E_202E_206B_206C_200E_200E_206B_200D_202B_206D_206D_206D_206A_206C_206C_206F_202D_202E(_003Czone_003E5__5).Count >= 3) ? 1353765130 : 1353765148); - continue; - IL_00a1: - num = ((!(_200C_202A_206D_202A_206F_200E_200C_206A_202C_202E_202D_206A_206A_206B_200F_202D_202A_200D_206F_202D_200C_200D_200E_206E_200E_200B_202E_200C_202C_206D_200C_200C_200F_200B_202B_200C_206C_202C_202A_206A_202E((IReadOnlyList<Vector3>)_206B_200F_200D_202D_202D_206E_202B_206E_206B_200C_200C_206D_206D_202B_206F_202B_206D_200C_202D_200D_206B_202E_200F_206E_202E_206B_206C_200E_200E_206B_200D_202B_206D_206D_206D_206A_206C_206C_206F_202D_202E(_003Czone_003E5__5)) < 0.01f)) ? 1353765132 : 1353765134); - continue; - IL_0100: - num = (_202B_206E_206E_206C_202A_200C_200C_202D_202B_202D_200E_202C_200D_202A_200C_206C_202A_200D_202C_206A_200D_200D_206B_200D_200E_206F_206A_200D_202C_202A_206D_206E_200D_206E_206B_206C_206E_200D_202A_202A_202E((IEnumerator)_003C_003E7__wrap1) ? 1353765128 : 1353765129); - continue; - IL_0178: - num = ((_003Cz_003E5__4 < _202E_200C_202A_200B_206B_206C_206A_206D_202B_206C_200C_202E_202A_200E_202B_206A_202D_206E_202D_200B_200F_200E_206B_200C_202A_206A_202B_206C_202D_206C_200F_202C_202B_206B_202B_206C_202C_200B_202E_200C_202E(_003CstepInfo_003E5__3.Step).Count) ? 1353765133 : 1353765131); - continue; - IL_00d3: - num = (_206A_206D_200F_202E_202D_202A_202B_206C_206D_202A_202A_202C_200D_206C_206F_206D_200C_200B_206B_200F_202C_206A_200D_206A_206D_202D_202E_206F_206B_202A_202C_200E_200E_206F_202C_202A_200E_202E_200C_202A_202E((IReadOnlyList<Vector3>)_206B_200F_200D_202D_202D_206E_202B_206E_206B_200C_200C_206D_206D_202B_206F_202B_206D_200C_202D_200D_206B_202E_200F_206E_202E_206B_206C_200E_200E_206B_200D_202B_206D_206D_206D_206A_206C_206C_206F_202D_202E(_003Czone_003E5__5)) ? 1353765123 : 1353765149); - continue; - end_IL_0029: - break; - } - goto case 2; - IL_04ef: - _003C_003E1__state = -3; - num = 1353765132; - goto IL_0029; - IL_0497: - _003C_003E1__state = -1; - _003C_003E7__wrap1 = quest.AllSteps().Where<(QuestSequence, int, QuestStep)>(delegate((QuestSequence Sequence, int StepId, QuestStep Step) x) - { - List<LandingZone> list = _003C_003Ec._200D_202B_206F_200E_202E_206A_202A_206B_200D_206F_200C_202D_200F_202D_206E_202D_202E_202C_206D_202B_202B_200C_202D_202E_206E_206E_206F_202A_200B_202C_206B_200F_206D_200E_202E_202C_200C_202E_206B_206A_202E(x.Step); - int num6 = ((list == null) ? 293008772 : 293008775); - while (true) - { - int num7 = num6; - int num8 = 293008773; - int num9 = num7; - switch ((num9 | num8) - (num9 & num8)) - { - case 1: - return false; - case 2: - return list.Count > 0; - case 0: - goto IL_0059; - } - continue; - IL_0059: - num6 = 293008775; - } - }).GetEnumerator(); - _003C_003E1__state = -3; - num = 1353765126; - goto IL_0029; - IL_02fa: - _003C_003E1__state = -3; - num = 1353765135; - goto IL_0029; - } - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - int num = ((_003C_003E7__wrap1 == null) ? 849893968 : 849893971); - while (true) - { - int num2 = num; - int num3 = 849893970; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return; - case 1: - _202B_200B_206D_202B_206E_202A_206A_200D_200E_200F_206C_202A_206D_206D_206C_206F_202D_206F_202D_206B_202A_206F_200F_202A_200E_206F_206E_202D_200B_206D_200E_200F_200C_202D_202D_200F_206B_202E_206E_202C_202E((IDisposable)_003C_003E7__wrap1); - num = 849893968; - break; - case 0: - num = 849893971; - break; - } - } - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _200E_202D_200D_200B_202E_206F_206C_206D_206C_206F_206F_206F_202B_202E_202C_206B_206A_206D_202A_206F_206B_202A_202B_200D_202D_200C_202E_202D_202C_200F_202B_200E_206B_200D_206C_200F_202A_202C_206D_202A_202E(); - } - - [DebuggerHidden] - IEnumerator<ValidationIssue> IEnumerable<ValidationIssue>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? 1118277465 : 1118277470); - _003CValidate_003Ed__0 _003CValidate_003Ed__ = default(_003CValidate_003Ed__0); - while (true) - { - int num2 = num; - int num3 = 1118277469; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1118277470; - break; - case 4: - _003CValidate_003Ed__ = new _003CValidate_003Ed__0(0); - num = 1118277468; - break; - case 1: - _003CValidate_003Ed__.quest = _003C_003E3__quest; - return _003CValidate_003Ed__; - case 2: - _003C_003E1__state = 0; - _003CValidate_003Ed__ = this; - num = 1118277468; - break; - case 3: - num = ((_003C_003El__initialThreadId != _206B_202C_206F_206D_202E_202E_206D_206F_200C_200D_206C_200C_206A_206F_206D_206E_202D_202A_200C_202E_202E_206D_200F_200B_200F_200B_200E_200B_202A_200F_206E_206A_202E_206B_206B_202E_206F_200B_206B_202A_202E()) ? 1118277465 : 1118277471); - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ValidationIssue>)this).GetEnumerator(); - } - - static int _206B_202C_206F_206D_202E_202E_206D_206F_200C_200D_206C_200C_206A_206F_206D_206E_202D_202A_200C_202E_202E_206D_200F_200B_200F_200B_200E_200B_202A_200F_206E_206A_202E_206B_206B_202E_206F_200B_206B_202A_202E() - { - return Environment.CurrentManagedThreadId; - } - - static List<LandingZone> _202E_200C_202A_200B_206B_206C_206A_206D_202B_206C_200C_202E_202A_200E_202B_206A_202D_206E_202D_200B_200F_200E_206B_200C_202A_206A_202B_206C_202D_206C_200F_202C_202B_206B_202B_206C_202C_200B_202E_200C_202E(QuestStep P_0) - { - return P_0.LandingZones; - } - - static List<Vector3> _206B_200F_200D_202D_202D_206E_202B_206E_206B_200C_200C_206D_206D_202B_206F_202B_206D_200C_202D_200D_206B_202E_200F_206E_202E_206B_206C_200E_200E_206B_200D_202B_206D_206D_206D_206A_206C_206C_206F_202D_202E(LandingZone P_0) - { - return P_0.Vertices; - } - - static byte _200B_202B_202B_206D_206D_200C_202E_206A_200B_206F_206A_206C_202B_202D_200C_200C_206F_200C_206D_200B_200E_200D_202A_206D_202B_202A_200C_206B_206A_202B_200F_206E_200C_206B_200D_206F_206B_206F_202A_202B_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - - static bool _206A_206D_200F_202E_202D_202A_202B_206C_206D_202A_202A_202C_200D_206C_206F_206D_200C_200B_206B_200F_202C_206A_200D_206A_206D_202D_202E_206F_206B_202A_202C_200E_200E_206F_202C_202A_200E_202E_200C_202A_202E(IReadOnlyList<Vector3> P_0) - { - return LandingZoneMath.IsConvex(P_0); - } - - static float _200C_202A_206D_202A_206F_200E_200C_206A_202C_202E_202D_206A_206A_206B_200F_202D_202A_200D_206F_202D_200C_200D_200E_206E_200E_200B_202E_200C_202C_206D_200C_200C_200F_200B_202B_200C_206C_202C_202A_206A_202E(IReadOnlyList<Vector3> P_0) - { - return LandingZoneMath.CalculatePolygonArea(P_0); - } - - static bool _202B_206E_206E_206C_202A_200C_200C_202D_202B_202D_200E_202C_200D_202A_200C_206C_202A_200D_202C_206A_200D_200D_206B_200D_200E_206F_206A_200D_202C_202A_206D_206E_200D_206E_206B_206C_206E_200D_202A_202A_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202B_200B_206D_202B_206E_202A_206A_200D_200E_200F_206C_202A_206D_206D_206C_206F_202D_206F_202D_206B_202A_206F_200F_202A_200E_206F_206E_202D_200B_206D_200E_200F_200C_202D_202D_200F_206B_202E_206E_202C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static NotSupportedException _200E_202D_200D_200B_202E_206F_206C_206D_206C_206F_206F_206F_202B_202E_202C_206B_206A_206D_202A_206F_206B_202A_202B_200D_202D_200C_202E_202D_202C_200F_202B_200E_206B_200D_206C_200F_202A_202C_206D_202A_202E() - { - return new NotSupportedException(); - } - } - - [IteratorStateMachine(typeof(_003CValidate_003Ed__0))] public IEnumerable<ValidationIssue> Validate(Quest quest) { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CValidate_003Ed__0(-2) + foreach (var stepInfo in quest.AllSteps().Where<(QuestSequence, int, QuestStep)>(delegate((QuestSequence Sequence, int StepId, QuestStep Step) x) { - _003C_003E3__quest = quest - }; - } - - IEnumerable<ValidationIssue> IQuestValidator.Validate(Quest quest) - { - //ILSpy generated this explicit interface implementation from .override directive in Validate - return this.Validate(quest); + List<LandingZone> landingZones = x.Step.LandingZones; + return landingZones != null && landingZones.Count > 0; + })) + { + for (int z = 0; z < stepInfo.Item3.LandingZones.Count; z++) + { + LandingZone zone = stepInfo.Item3.LandingZones[z]; + if (zone.Vertices.Count < 3) + { + yield return new ValidationIssue + { + ElementId = quest.Id, + Sequence = stepInfo.Item1.Sequence, + Step = stepInfo.Item2, + Type = EIssueType.InvalidLandingZone, + Severity = EIssueSeverity.Error, + Description = $"Landing zone {z} has fewer than 3 vertices" + }; + continue; + } + if (!LandingZoneMath.IsConvex(zone.Vertices)) + { + yield return new ValidationIssue + { + ElementId = quest.Id, + Sequence = stepInfo.Item1.Sequence, + Step = stepInfo.Item2, + Type = EIssueType.InvalidLandingZone, + Severity = EIssueSeverity.Error, + Description = $"Landing zone {z} is not convex" + }; + } + if (LandingZoneMath.CalculatePolygonArea(zone.Vertices) < 0.01f) + { + yield return new ValidationIssue + { + ElementId = quest.Id, + Sequence = stepInfo.Item1.Sequence, + Step = stepInfo.Item2, + Type = EIssueType.InvalidLandingZone, + Severity = EIssueSeverity.Error, + Description = $"Landing zone {z} has zero area (collinear vertices)" + }; + } + } + } } } diff --git a/Questionable/Questionable.Validation.Validators/NextQuestValidator.cs b/Questionable/Questionable.Validation.Validators/NextQuestValidator.cs index be8b1a5..8c77dfb 100644 --- a/Questionable/Questionable.Validation.Validators/NextQuestValidator.cs +++ b/Questionable/Questionable.Validation.Validators/NextQuestValidator.cs @@ -1,9 +1,5 @@ -using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; -using System.Runtime.CompilerServices; using Questionable.Model; using Questionable.Model.Questing; @@ -11,305 +7,21 @@ namespace Questionable.Validation.Validators; internal sealed class NextQuestValidator : IQuestValidator { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass0_0 - { - public Quest quest; - - public Func<(QuestSequence Sequence, int StepId, QuestStep Step), bool> _003C_003E9__0; - - internal bool _003CValidate_003Eb__0((QuestSequence Sequence, int StepId, QuestStep Step) x) - { - return _200E_200D_202E_206B_206C_202A_200E_206C_202B_200B_206A_206C_206C_200F_206A_202B_206D_200E_206E_200B_202D_202A_202C_206C_202B_206C_206C_200B_202D_200F_200B_202B_200E_206B_206A_202D_206D_202E_206C_200E_202E(_202A_200E_206B_202C_202D_200E_200D_206E_200E_206C_206A_200F_202E_200E_200C_206E_202C_200D_200E_202B_200C_206C_202A_202D_202D_200B_202B_202A_200B_200C_202E_202A_206F_206E_202A_202C_202B_200F_202D_206A_202E(x.Step), quest.Id); - } - - static ElementId _202A_200E_206B_202C_202D_200E_200D_206E_200E_206C_206A_200F_202E_200E_200C_206E_202C_200D_200E_202B_200C_206C_202A_202D_202D_200B_202B_202A_200B_200C_202E_202A_206F_206E_202A_202C_202B_200F_202D_206A_202E(QuestStep P_0) - { - return P_0.NextQuestId; - } - - static bool _200E_200D_202E_206B_206C_202A_200E_206C_202B_200B_206A_206C_206C_200F_206A_202B_206D_200E_206E_200B_202D_202A_202C_206C_202B_206C_206C_200B_202D_200F_200B_202B_200E_206B_206A_202D_206D_202E_206C_200E_202E(ElementId P_0, ElementId P_1) - { - return P_0 == P_1; - } - } - - [CompilerGenerated] - private sealed class _003CValidate_003Ed__0 : IEnumerable<ValidationIssue>, IEnumerable, IEnumerator<ValidationIssue>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ValidationIssue _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - private Quest quest; - - public Quest _003C_003E3__quest; - - private _003C_003Ec__DisplayClass0_0 _003C_003E8__1; - - private IEnumerator<(QuestSequence Sequence, int StepId, QuestStep Step)> _003C_003E7__wrap1; - - ValidationIssue IEnumerator<ValidationIssue>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CValidate_003Ed__0(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _206C_206C_206D_200E_206B_200C_206D_200E_200D_206E_202B_200F_202C_200D_206A_202D_206F_206B_206A_200E_202D_200D_206D_200F_202C_202D_206E_206A_200F_206F_200D_206F_202D_202E_202E_200E_200C_206A_206D_206F_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num == -3) ? (-177611004) : (-177611003)); - while (true) - { - int num3 = num2; - int num4 = -177611004; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 2: - num2 = -177611003; - continue; - case 1: - if (num == 1) - { - num2 = -177611004; - continue; - } - break; - case 0: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E8__1 = null; - _003C_003E7__wrap1 = null; - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - try - { - int num = _003C_003E1__state; - int num2 = ((num == 0) ? 204267570 : 204267569); - while (true) - { - int num3 = num2; - int num4 = 204267573; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 7: - _003C_003E1__state = -1; - _003C_003E8__1 = new _003C_003Ec__DisplayClass0_0(); - _003C_003E8__1.quest = quest; - _003C_003E7__wrap1 = (from x in _003C_003E8__1.quest.AllSteps() - where _003C_003Ec__DisplayClass0_0._200E_200D_202E_206B_206C_202A_200E_206C_202B_200B_206A_206C_206C_200F_206A_202B_206D_200E_206E_200B_202D_202A_202C_206C_202B_206C_206C_200B_202D_200F_200B_202B_200E_206B_206A_202D_206D_202E_206C_200E_202E(_003C_003Ec__DisplayClass0_0._202A_200E_206B_202C_202D_200E_200D_206E_200E_206C_206A_200F_202E_200E_200C_206E_202C_200D_200E_202B_200C_206C_202A_202D_202D_200B_202B_202A_200B_200C_202E_202A_206F_206E_202A_202C_202B_200F_202D_206A_202E(x.Step), _003C_003E8__1.quest.Id) - select x).GetEnumerator(); - _003C_003E1__state = -3; - num2 = 204267574; - break; - case 1: - { - (QuestSequence, int, QuestStep) current = _003C_003E7__wrap1.Current; - _003C_003E2__current = new ValidationIssue - { - PathType = EPathType.Quest, - Id = _202E_206D_200B_200B_202D_202E_206B_200B_202E_206A_202E_202D_202A_202E_202C_206E_202C_202E_202B_202E_200C_200E_202E_206D_206B_200D_202A_206F_202A_206A_202C_206D_200B_206E_200D_202C_200F_202B_206A_200D_202E((object)_003C_003E8__1.quest.Id), - Location = SchemaValidationHelper.FormatQuestLocation(_200B_202E_206E_202E_200D_202A_200D_200E_200E_200F_200E_206E_206A_206A_202D_200E_206D_202B_200E_200D_206E_202D_206C_206B_200F_200F_202B_200C_206B_202B_206D_200E_200D_200B_206F_206A_200B_202B_206E_200F_202E(current.Item1), current.Item2), - Type = EIssueType.InvalidNextQuestId, - Severity = EIssueSeverity.Error, - Description = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-552631953) - }; - _003C_003E1__state = 1; - return true; - } - case 4: - num2 = ((num == 1) ? 204267573 : 204267568); - break; - case 3: - num2 = (_202D_200C_202D_206D_206A_200F_200D_202D_200F_206D_206F_206E_200E_200D_202A_200C_202D_200F_202D_206C_202B_202D_206C_202C_202D_202B_202D_206A_202B_200E_200F_206E_200D_200D_200D_202A_202E_200C_200B_206D_202E((IEnumerator)_003C_003E7__wrap1) ? 204267572 : 204267571); - break; - case 5: - return false; - case 2: - num2 = 204267569; - break; - case 0: - _003C_003E1__state = -3; - num2 = 204267574; - break; - case 6: - _003C_003Em__Finally1(); - _003C_003E7__wrap1 = null; - return false; - } - } - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - int num = ((_003C_003E7__wrap1 == null) ? (-1138121483) : (-1138121484)); - while (true) - { - int num2 = num; - int num3 = -1138121483; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return; - case 1: - _200D_206A_202A_200D_200E_202C_200B_202C_200F_200B_200E_200D_200F_200B_206E_206B_200F_200C_200E_206A_202B_200C_202E_206F_200B_206B_206B_200C_200C_206A_200D_206C_202E_200C_206B_202C_200D_206D_202D_202E((IDisposable)_003C_003E7__wrap1); - num = -1138121483; - break; - case 2: - num = -1138121484; - break; - } - } - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _206A_200E_202A_202D_202A_206C_202D_202A_206D_206A_200E_202A_206C_206C_200C_206B_206A_206B_206F_200E_202A_200F_200C_206F_202A_206F_206E_206D_200E_200F_200B_206D_206C_202D_202A_200D_206B_202C_202B_200C_202E(); - } - - [DebuggerHidden] - IEnumerator<ValidationIssue> IEnumerable<ValidationIssue>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? (-561173402) : (-561173406)); - _003CValidate_003Ed__0 _003CValidate_003Ed__ = default(_003CValidate_003Ed__0); - while (true) - { - int num2 = num; - int num3 = -561173402; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = -561173406; - break; - case 0: - _003CValidate_003Ed__ = new _003CValidate_003Ed__0(0); - num = -561173404; - break; - case 2: - _003CValidate_003Ed__.quest = _003C_003E3__quest; - return _003CValidate_003Ed__; - case 1: - _003C_003E1__state = 0; - _003CValidate_003Ed__ = this; - num = -561173404; - break; - case 4: - num = ((_003C_003El__initialThreadId != _206C_206C_206D_200E_206B_200C_206D_200E_200D_206E_202B_200F_202C_200D_206A_202D_206F_206B_206A_200E_202D_200D_206D_200F_202C_202D_206E_206A_200F_206F_200D_206F_202D_202E_202E_200E_200C_206A_206D_206F_202E()) ? (-561173402) : (-561173401)); - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ValidationIssue>)this).GetEnumerator(); - } - - static int _206C_206C_206D_200E_206B_200C_206D_200E_200D_206E_202B_200F_202C_200D_206A_202D_206F_206B_206A_200E_202D_200D_206D_200F_202C_202D_206E_206A_200F_206F_200D_206F_202D_202E_202E_200E_200C_206A_206D_206F_202E() - { - return Environment.CurrentManagedThreadId; - } - - static string _202E_206D_200B_200B_202D_202E_206B_200B_202E_206A_202E_202D_202A_202E_202C_206E_202C_202E_202B_202E_200C_200E_202E_206D_206B_200D_202A_206F_202A_206A_202C_206D_200B_206E_200D_202C_200F_202B_206A_200D_202E(object P_0) - { - return P_0.ToString(); - } - - static byte _200B_202E_206E_202E_200D_202A_200D_200E_200E_200F_200E_206E_206A_206A_202D_200E_206D_202B_200E_200D_206E_202D_206C_206B_200F_200F_202B_200C_206B_202B_206D_200E_200D_200B_206F_206A_200B_202B_206E_200F_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - - static bool _202D_200C_202D_206D_206A_200F_200D_202D_200F_206D_206F_206E_200E_200D_202A_200C_202D_200F_202D_206C_202B_202D_206C_202C_202D_202B_202D_206A_202B_200E_200F_206E_200D_200D_200D_202A_202E_200C_200B_206D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200D_206A_202A_200D_200E_202C_200B_202C_200F_200B_200E_200D_200F_200B_206E_206B_200F_200C_200E_206A_202B_200C_202E_206F_200B_206B_206B_200C_200C_206A_200D_206C_202E_200C_206B_202C_200D_206D_202D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static NotSupportedException _206A_200E_202A_202D_202A_206C_202D_202A_206D_206A_200E_202A_206C_206C_200C_206B_206A_206B_206F_200E_202A_200F_200C_206F_202A_206F_206E_206D_200E_200F_200B_206D_206C_202D_202A_200D_206B_202C_202B_200C_202E() - { - return new NotSupportedException(); - } - } - - [IteratorStateMachine(typeof(_003CValidate_003Ed__0))] public IEnumerable<ValidationIssue> Validate(Quest quest) { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CValidate_003Ed__0(-2) + foreach (var item in from x in quest.AllSteps() + where x.Step.NextQuestId == quest.Id + select x) { - _003C_003E3__quest = quest - }; - } - - IEnumerable<ValidationIssue> IQuestValidator.Validate(Quest quest) - { - //ILSpy generated this explicit interface implementation from .override directive in Validate - return this.Validate(quest); + yield return new ValidationIssue + { + PathType = EPathType.Quest, + Id = quest.Id.ToString(), + Location = SchemaValidationHelper.FormatQuestLocation(item.Item1.Sequence, item.Item2), + Type = EIssueType.InvalidNextQuestId, + Severity = EIssueSeverity.Error, + Description = "Next quest should not reference itself" + }; + } } } diff --git a/Questionable/Questionable.Validation.Validators/QuestDisabledValidator.cs b/Questionable/Questionable.Validation.Validators/QuestDisabledValidator.cs index 08eb13b..480667f 100644 --- a/Questionable/Questionable.Validation.Validators/QuestDisabledValidator.cs +++ b/Questionable/Questionable.Validation.Validators/QuestDisabledValidator.cs @@ -1,230 +1,23 @@ -using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; -using System.Runtime.CompilerServices; using Questionable.Model; -using Questionable.Model.Questing; namespace Questionable.Validation.Validators; internal sealed class QuestDisabledValidator : IQuestValidator { - [CompilerGenerated] - private sealed class _003CValidate_003Ed__0 : IEnumerable<ValidationIssue>, IEnumerable, IEnumerator<ValidationIssue>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ValidationIssue _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - private Quest quest; - - public Quest _003C_003E3__quest; - - ValidationIssue IEnumerator<ValidationIssue>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CValidate_003Ed__0(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _202C_206D_202D_200B_206F_206B_200D_202B_202A_206E_206F_202C_202E_202C_200C_200C_206D_206E_200F_206A_206E_200E_206C_202A_206A_202B_202E_202B_206F_200B_206B_206B_206F_206A_202D_200C_206F_200B_206A_200C_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - int num = _003C_003E1__state; - int num2 = ((num == 0) ? 995898240 : 995898242); - while (true) - { - int num3 = num2; - int num4 = 995898241; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 4: - return false; - case 0: - return false; - case 6: - _003C_003E2__current = new ValidationIssue - { - PathType = EPathType.Quest, - Id = _206E_200D_200D_200D_206D_202A_200F_206A_200C_200F_200D_206F_202E_202D_206E_200F_206E_206B_200D_206C_200B_202D_206D_200C_206C_206E_202D_206E_202A_200C_206D_202E_206F_202A_206D_206F_200C_202A_206F_202D_202E((object)quest.Id), - Location = null, - Type = EIssueType.QuestDisabled, - Severity = EIssueSeverity.None, - Description = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(562118672) - }; - _003C_003E1__state = 1; - return true; - case 1: - _003C_003E1__state = -1; - num2 = ((!_200C_202A_206F_206B_206D_200D_202C_200F_200C_200D_200C_200E_206A_206F_200F_202E_206D_206E_206C_202A_200C_202E_200E_202B_200E_200D_206C_202A_202A_200F_202B_200F_200D_206F_202D_206E_200F_202E_200E_200F_202E(quest.Root)) ? 995898241 : 995898247); - break; - case 2: - _003C_003E1__state = -1; - num2 = 995898241; - break; - case 5: - num2 = 995898242; - break; - case 3: - num2 = ((num == 1) ? 995898243 : 995898245); - break; - } - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _206D_206D_200B_202D_206A_200D_200B_200B_200C_202D_200C_200E_200E_206D_206C_206F_206D_200F_206F_206E_200D_206D_200F_206E_206E_200F_206A_202C_206A_200F_206A_206C_206D_202B_200C_200E_206D_202B_200D_202A_202E(); - } - - [DebuggerHidden] - IEnumerator<ValidationIssue> IEnumerable<ValidationIssue>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? 1288599093 : 1288599094); - _003CValidate_003Ed__0 _003CValidate_003Ed__ = default(_003CValidate_003Ed__0); - while (true) - { - int num2 = num; - int num3 = 1288599095; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - _003C_003E1__state = 0; - _003CValidate_003Ed__ = this; - num = 1288599092; - break; - case 1: - num = ((_003C_003El__initialThreadId != _202C_206D_202D_200B_206F_206B_200D_202B_202A_206E_206F_202C_202E_202C_200C_200C_206D_206E_200F_206A_206E_200E_206C_202A_206A_202B_202E_202B_206F_200B_206B_206B_206F_206A_202D_200C_206F_200B_206A_200C_202E()) ? 1288599093 : 1288599091); - break; - case 0: - num = 1288599094; - break; - case 3: - _003CValidate_003Ed__.quest = _003C_003E3__quest; - return _003CValidate_003Ed__; - case 2: - _003CValidate_003Ed__ = new _003CValidate_003Ed__0(0); - num = 1288599092; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ValidationIssue>)this).GetEnumerator(); - } - - static int _202C_206D_202D_200B_206F_206B_200D_202B_202A_206E_206F_202C_202E_202C_200C_200C_206D_206E_200F_206A_206E_200E_206C_202A_206A_202B_202E_202B_206F_200B_206B_206B_206F_206A_202D_200C_206F_200B_206A_200C_202E() - { - return Environment.CurrentManagedThreadId; - } - - static bool _200C_202A_206F_206B_206D_200D_202C_200F_200C_200D_200C_200E_206A_206F_200F_202E_206D_206E_206C_202A_200C_202E_200E_202B_200E_200D_206C_202A_202A_200F_202B_200F_200D_206F_202D_206E_200F_202E_200E_200F_202E(QuestRoot P_0) - { - return P_0.Disabled; - } - - static string _206E_200D_200D_200D_206D_202A_200F_206A_200C_200F_200D_206F_202E_202D_206E_200F_206E_206B_200D_206C_200B_202D_206D_200C_206C_206E_202D_206E_202A_200C_206D_202E_206F_202A_206D_206F_200C_202A_206F_202D_202E(object P_0) - { - return P_0.ToString(); - } - - static NotSupportedException _206D_206D_200B_202D_206A_200D_200B_200B_200C_202D_200C_200E_200E_206D_206C_206F_206D_200F_206F_206E_200D_206D_200F_206E_206E_200F_206A_202C_206A_200F_206A_206C_206D_202B_200C_200E_206D_202B_200D_202A_202E() - { - return new NotSupportedException(); - } - } - public IEnumerable<ValidationIssue> Validate(Quest quest) { - int num = 995898240; - while (true) + if (quest.Root.Disabled) { - int num2 = num; - int num3 = 995898241; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + yield return new ValidationIssue { - case 4: - yield break; - case 0: - yield break; - case 6: - yield return new ValidationIssue - { - PathType = EPathType.Quest, - Id = _003CValidate_003Ed__0._206E_200D_200D_200D_206D_202A_200F_206A_200C_200F_200D_206F_202E_202D_206E_200F_206E_206B_200D_206C_200B_202D_206D_200C_206C_206E_202D_206E_202A_200C_206D_202E_206F_202A_206D_206F_200C_202A_206F_202D_202E((object)quest.Id), - Location = null, - Type = EIssueType.QuestDisabled, - Severity = EIssueSeverity.None, - Description = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(562118672) - }; - num = 995898242; - break; - case 1: - num = ((!_003CValidate_003Ed__0._200C_202A_206F_206B_206D_200D_202C_200F_200C_200D_200C_200E_206A_206F_200F_202E_206D_206E_206C_202A_200C_202E_200E_202B_200E_200D_206C_202A_202A_200F_202B_200F_200D_206F_202D_206E_200F_202E_200E_200F_202E(quest.Root)) ? 995898241 : 995898247); - break; - case 2: - num = 995898241; - break; - case 5: - num = 995898242; - break; - case 3: - { - int num7; - num = ((num7 == 1) ? 995898243 : 995898245); - break; - } - } + PathType = EPathType.Quest, + Id = quest.Id.ToString(), + Location = null, + Type = EIssueType.QuestDisabled, + Severity = EIssueSeverity.None, + Description = "Quest is disabled" + }; } } - - IEnumerable<ValidationIssue> IQuestValidator.Validate(Quest quest) - { - //ILSpy generated this explicit interface implementation from .override directive in Validate - return this.Validate(quest); - } } diff --git a/Questionable/Questionable.Validation.Validators/SayValidator.cs b/Questionable/Questionable.Validation.Validators/SayValidator.cs index 3b7e78d..653b686 100644 --- a/Questionable/Questionable.Validation.Validators/SayValidator.cs +++ b/Questionable/Questionable.Validation.Validators/SayValidator.cs @@ -1,9 +1,5 @@ -using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; -using System.Runtime.CompilerServices; using Lumina.Text.ReadOnly; using Questionable.Functions; using Questionable.Model; @@ -13,320 +9,6 @@ namespace Questionable.Validation.Validators; internal sealed class SayValidator : IQuestValidator { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<(QuestSequence Sequence, int StepId, QuestStep Step), bool> _003C_003E9__2_0; - - internal bool _003CValidate_003Eb__2_0((QuestSequence Sequence, int StepId, QuestStep Step) x) - { - return _206B_200C_206E_200C_200F_206F_200E_202E_206D_206F_200B_206B_206F_202C_200B_200B_206D_206E_206E_202A_200C_202B_206C_202B_200C_200F_202D_206F_206A_200F_206F_202A_202A_202B_200D_206C_200B_206C_200B_206F_202E(x.Step) == EInteractionType.Say; - } - - static EInteractionType _206B_200C_206E_200C_200F_206F_200E_202E_206D_206F_200B_206B_206F_202C_200B_200B_206D_206E_206E_202A_200C_202B_206C_202B_200C_200F_202D_206F_206A_200F_206F_202A_202A_202B_200D_206C_200B_206C_200B_206F_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - } - - [CompilerGenerated] - private sealed class _003CValidate_003Ed__2 : IEnumerable<ValidationIssue>, IEnumerable, IEnumerator<ValidationIssue>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ValidationIssue _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - private Quest quest; - - public Quest _003C_003E3__quest; - - public SayValidator _003C_003E4__this; - - private IEnumerator<(QuestSequence Sequence, int StepId, QuestStep Step)> _003C_003E7__wrap1; - - ValidationIssue IEnumerator<ValidationIssue>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CValidate_003Ed__2(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _202D_206C_206C_200B_206C_200B_206A_206E_206F_206A_200B_206E_206E_206D_200D_206B_200C_206E_206C_206C_206F_206E_202A_200E_202D_206F_202E_202A_202C_202E_200B_200F_202B_200D_200B_202D_206A_202D_200F_200F_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num == -3) ? 413952866 : 413952865); - while (true) - { - int num3 = num2; - int num4 = 413952867; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 0: - num2 = 413952865; - continue; - case 2: - if (num == 1) - { - num2 = 413952866; - continue; - } - break; - case 1: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E7__wrap1 = null; - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - try - { - int num = _003C_003E1__state; - SayValidator sayValidator = _003C_003E4__this; - int num2 = ((num == 0) ? (-1358153620) : (-1358153627)); - (QuestSequence, int, QuestStep) current = default((QuestSequence, int, QuestStep)); - ChatMessage chatMessage = default(ChatMessage); - ReadOnlySeString? rawDialogueText = default(ReadOnlySeString?); - while (true) - { - int num3 = num2; - int num4 = -1358153628; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - current = _003C_003E7__wrap1.Current; - chatMessage = _206E_206C_200D_202A_206C_200C_206E_200F_200E_200F_206B_200D_206A_202D_206C_202D_202A_206E_202C_206C_200E_206A_200E_202A_202D_202E_206E_200F_202E_206C_200E_206B_206E_202E_206A_202A_200F_206B_202C_206F_202E(current.Item3); - num2 = ((chatMessage == null) ? (-1358153619) : (-1358153632)); - break; - case 4: - rawDialogueText = sayValidator._excelFunctions.GetRawDialogueText(quest, _206A_202A_200B_202C_202A_206A_200E_206F_206F_200D_206C_200C_202A_206F_202C_206B_206B_202C_200F_202A_206C_206F_202E_200D_200C_200E_200F_206A_206C_202C_206A_200C_206E_200C_206F_200B_200F_200B_206C_206C_202E(chatMessage), _200E_206C_200C_202D_200C_200E_200D_200E_202A_200C_206A_200E_202A_206A_206B_200E_206C_202C_200D_206D_202B_202C_200F_206B_206B_202D_202D_202B_206C_206B_200D_200F_200E_200F_200F_200B_202A_200E_202D_206E_202E(chatMessage)); - num2 = ((!rawDialogueText.HasValue) ? (-1358153619) : (-1358153629)); - break; - case 5: - { - ValidationIssue obj = new ValidationIssue - { - PathType = EPathType.Quest, - Id = _200D_202C_202B_200E_206B_206D_200D_206A_200B_206B_206A_206D_202C_206C_206D_200E_200F_200C_200B_202A_202A_200F_206B_206A_206F_206F_200E_202E_206F_202A_200D_202D_206D_200B_206D_200B_206C_202B_200B_206F_202E((object)quest.Id), - Location = SchemaValidationHelper.FormatQuestLocation(_206E_202E_206F_202C_200B_200D_202A_206A_206B_206E_206D_200D_200D_200C_202E_202C_202B_200E_206D_200D_202E_206B_202E_202A_200C_200B_206D_200F_206D_206F_206B_206A_202D_206E_202E_206B_206A_206E_202E_206A_202E(current.Item1), current.Item2), - Type = EIssueType.InvalidChatMessage, - Severity = EIssueSeverity.Error - }; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(22, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1570396042)); - defaultInterpolatedStringHandler.AppendFormatted(rawDialogueText.Value); - obj.Description = defaultInterpolatedStringHandler.ToStringAndClear(); - _003C_003E2__current = obj; - _003C_003E1__state = 1; - return true; - } - case 1: - num2 = ((num == 1) ? (-1358153618) : (-1358153625)); - break; - case 9: - num2 = (_200E_206A_202C_206B_200C_206E_200E_202E_206B_206A_206F_206B_202A_202B_206E_202C_202B_200F_206D_206E_206A_206A_202A_206F_206A_206D_200B_200B_200B_202C_200B_206F_202D_206A_202C_206C_202B_206F_206C_202D_202E((IEnumerator)_003C_003E7__wrap1) ? (-1358153626) : (-1358153628)); - break; - case 8: - _003C_003E1__state = -1; - _003C_003E7__wrap1 = (from x in quest.AllSteps() - where _003C_003Ec._206B_200C_206E_200C_200F_206F_200E_202E_206D_206F_200B_206B_206F_202C_200B_200B_206D_206E_206E_202A_200C_202B_206C_202B_200C_200F_202D_206F_206A_200F_206F_202A_202A_202B_200D_206C_200B_206C_200B_206F_202E(x.Step) == EInteractionType.Say - select x).GetEnumerator(); - _003C_003E1__state = -3; - num2 = -1358153619; - break; - case 3: - return false; - case 7: - num2 = ((rawDialogueText.Value.PayloadCount == 1) ? (-1358153619) : (-1358153631)); - break; - case 6: - num2 = -1358153627; - break; - case 10: - _003C_003E1__state = -3; - num2 = -1358153619; - break; - case 0: - _003C_003Em__Finally1(); - _003C_003E7__wrap1 = null; - return false; - } - } - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - int num = ((_003C_003E7__wrap1 == null) ? 859629855 : 859629852); - while (true) - { - int num2 = num; - int num3 = 859629854; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return; - case 2: - _200C_206D_206F_200C_206C_200E_202D_206F_206F_206B_206A_206E_206A_202B_202A_206A_202B_200E_206C_202A_202D_200B_206F_202B_202D_202C_200D_206E_206C_200D_202B_200B_206A_206D_200C_200B_200B_202B_206D_206B_202E((IDisposable)_003C_003E7__wrap1); - num = 859629855; - break; - case 0: - num = 859629852; - break; - } - } - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _200F_202B_206B_206C_206F_200F_206D_202D_206A_200F_206A_206D_206B_200E_200F_200F_200C_200F_202A_202B_200F_202D_200D_206D_206B_202E_202E_206A_206F_206E_200B_206D_200E_200F_206A_200F_206F_202A_202D_200C_202E(); - } - - [DebuggerHidden] - IEnumerator<ValidationIssue> IEnumerable<ValidationIssue>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? 847025892 : 847025894); - _003CValidate_003Ed__2 _003CValidate_003Ed__ = default(_003CValidate_003Ed__2); - while (true) - { - int num2 = num; - int num3 = 847025893; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = 847025894; - break; - case 3: - num = ((_003C_003El__initialThreadId != _202D_206C_206C_200B_206C_200B_206A_206E_206F_206A_200B_206E_206E_206D_200D_206B_200C_206E_206C_206C_206F_206E_202A_200E_202D_206F_202E_202A_202C_202E_200B_200F_202B_200D_200B_202D_206A_202D_200F_200F_202E()) ? 847025892 : 847025895); - break; - case 1: - _003CValidate_003Ed__ = new _003CValidate_003Ed__2(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = 847025893; - break; - case 0: - _003CValidate_003Ed__.quest = _003C_003E3__quest; - return _003CValidate_003Ed__; - case 2: - _003C_003E1__state = 0; - _003CValidate_003Ed__ = this; - num = 847025893; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ValidationIssue>)this).GetEnumerator(); - } - - static int _202D_206C_206C_200B_206C_200B_206A_206E_206F_206A_200B_206E_206E_206D_200D_206B_200C_206E_206C_206C_206F_206E_202A_200E_202D_206F_202E_202A_202C_202E_200B_200F_202B_200D_200B_202D_206A_202D_200F_200F_202E() - { - return Environment.CurrentManagedThreadId; - } - - static ChatMessage _206E_206C_200D_202A_206C_200C_206E_200F_200E_200F_206B_200D_206A_202D_206C_202D_202A_206E_202C_206C_200E_206A_200E_202A_202D_202E_206E_200F_202E_206C_200E_206B_206E_202E_206A_202A_200F_206B_202C_206F_202E(QuestStep P_0) - { - return P_0.ChatMessage; - } - - static string _206A_202A_200B_202C_202A_206A_200E_206F_206F_200D_206C_200C_202A_206F_202C_206B_206B_202C_200F_202A_206C_206F_202E_200D_200C_200E_200F_206A_206C_202C_206A_200C_206E_200C_206F_200B_200F_200B_206C_206C_202E(ChatMessage P_0) - { - return P_0.ExcelSheet; - } - - static string _200E_206C_200C_202D_200C_200E_200D_200E_202A_200C_206A_200E_202A_206A_206B_200E_206C_202C_200D_206D_202B_202C_200F_206B_206B_202D_202D_202B_206C_206B_200D_200F_200E_200F_200F_200B_202A_200E_202D_206E_202E(ChatMessage P_0) - { - return P_0.Key; - } - - static string _200D_202C_202B_200E_206B_206D_200D_206A_200B_206B_206A_206D_202C_206C_206D_200E_200F_200C_200B_202A_202A_200F_206B_206A_206F_206F_200E_202E_206F_202A_200D_202D_206D_200B_206D_200B_206C_202B_200B_206F_202E(object P_0) - { - return P_0.ToString(); - } - - static byte _206E_202E_206F_202C_200B_200D_202A_206A_206B_206E_206D_200D_200D_200C_202E_202C_202B_200E_206D_200D_202E_206B_202E_202A_200C_200B_206D_200F_206D_206F_206B_206A_202D_206E_202E_206B_206A_206E_202E_206A_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - - static bool _200E_206A_202C_206B_200C_206E_200E_202E_206B_206A_206F_206B_202A_202B_206E_202C_202B_200F_206D_206E_206A_206A_202A_206F_206A_206D_200B_200B_200B_202C_200B_206F_202D_206A_202C_206C_202B_206F_206C_202D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200C_206D_206F_200C_206C_200E_202D_206F_206F_206B_206A_206E_206A_202B_202A_206A_202B_200E_206C_202A_202D_200B_206F_202B_202D_202C_200D_206E_206C_200D_202B_200B_206A_206D_200C_200B_200B_202B_206D_206B_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static NotSupportedException _200F_202B_206B_206C_206F_200F_206D_202D_206A_200F_206A_206D_206B_200E_200F_200F_200C_200F_202A_202B_200F_202D_200D_206D_206B_202E_202E_206A_206F_206E_200B_206D_200E_200F_206A_200F_206F_202A_202D_200C_202E() - { - return new NotSupportedException(); - } - } - private readonly ExcelFunctions _excelFunctions; public SayValidator(ExcelFunctions excelFunctions) @@ -334,20 +16,29 @@ internal sealed class SayValidator : IQuestValidator _excelFunctions = excelFunctions; } - [IteratorStateMachine(typeof(_003CValidate_003Ed__2))] public IEnumerable<ValidationIssue> Validate(Quest quest) { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CValidate_003Ed__2(-2) + foreach (var item in from x in quest.AllSteps() + where x.Step.InteractionType == EInteractionType.Say + select x) { - _003C_003E4__this = this, - _003C_003E3__quest = quest - }; - } - - IEnumerable<ValidationIssue> IQuestValidator.Validate(Quest quest) - { - //ILSpy generated this explicit interface implementation from .override directive in Validate - return this.Validate(quest); + ChatMessage chatMessage = item.Item3.ChatMessage; + if (chatMessage != null) + { + ReadOnlySeString? rawDialogueText = _excelFunctions.GetRawDialogueText(quest, chatMessage.ExcelSheet, chatMessage.Key); + if (rawDialogueText.HasValue && rawDialogueText.Value.PayloadCount != 1) + { + yield return new ValidationIssue + { + PathType = EPathType.Quest, + Id = quest.Id.ToString(), + Location = SchemaValidationHelper.FormatQuestLocation(item.Item1.Sequence, item.Item2), + Type = EIssueType.InvalidChatMessage, + Severity = EIssueSeverity.Error, + Description = $"Invalid chat message: {rawDialogueText.Value}" + }; + } + } + } } } diff --git a/Questionable/Questionable.Validation.Validators/SeasonalDutySchemaValidator.cs b/Questionable/Questionable.Validation.Validators/SeasonalDutySchemaValidator.cs index 435161e..5527410 100644 --- a/Questionable/Questionable.Validation.Validators/SeasonalDutySchemaValidator.cs +++ b/Questionable/Questionable.Validation.Validators/SeasonalDutySchemaValidator.cs @@ -1,19 +1,10 @@ -using System.Runtime.CompilerServices; - namespace Questionable.Validation.Validators; internal sealed class SeasonalDutySchemaValidator : DefinitionSchemaValidator { protected override EPathType PathType => EPathType.SeasonalDuty; - protected override string MainSchemaUri - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-912722245); - } - } + protected override string MainSchemaUri => "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/SeasonalDutyPaths/seasonaldutydefinition-v1.json"; public SeasonalDutySchemaValidator(SchemaRegistrar schemaRegistrar) : base(schemaRegistrar) diff --git a/Questionable/Questionable.Validation.Validators/SinglePlayerInstanceValidator.cs b/Questionable/Questionable.Validation.Validators/SinglePlayerInstanceValidator.cs index e918c3f..4307cc0 100644 --- a/Questionable/Questionable.Validation.Validators/SinglePlayerInstanceValidator.cs +++ b/Questionable/Questionable.Validation.Validators/SinglePlayerInstanceValidator.cs @@ -1,9 +1,5 @@ -using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; -using System.Runtime.CompilerServices; using Questionable.Data; using Questionable.Model; using Questionable.Model.Questing; @@ -12,297 +8,6 @@ namespace Questionable.Validation.Validators; internal sealed class SinglePlayerInstanceValidator : IQuestValidator { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass2_0 - { - public byte index; - - internal bool _003CValidate_003Eb__0((QuestSequence Sequence, int StepId, QuestStep Step) x) - { - int num = ((_202B_200B_200C_200C_202D_202A_202E_200B_202B_202C_202B_202C_200D_200E_200B_202E_206E_206C_200B_200C_206A_202E_200F_206D_200F_202D_202B_202E_206A_200D_202A_206D_206F_206C_206D_202E_202E_206B_200C_202E(x.Step) != EInteractionType.SinglePlayerDuty) ? 393057114 : 393057113); - while (true) - { - int num2 = num; - int num3 = 393057115; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004f; - case 1: - return false; - case 2: - return _202C_206E_206C_206F_206F_206A_202D_206C_206D_200E_200F_202A_202A_200D_206D_206E_202D_202C_202D_206D_202D_206A_200E_202B_206B_202C_200F_202B_202E_200D_206C_200E_202E_202C_206B_202D_206D_200B_202D_202E(x.Step) == index; - } - continue; - IL_004f: - num = 393057113; - } - } - - static EInteractionType _202B_200B_200C_200C_202D_202A_202E_200B_202B_202C_202B_202C_200D_200E_200B_202E_206E_206C_200B_200C_206A_202E_200F_206D_200F_202D_202B_202E_206A_200D_202A_206D_206F_206C_206D_202E_202E_206B_200C_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static byte _202C_206E_206C_206F_206F_206A_202D_206C_206D_200E_200F_202A_202A_200D_206D_206E_202D_202C_202D_206D_202D_206A_200E_202B_206B_202C_200F_202B_202E_200D_206C_200E_202E_202C_206B_202D_206D_200B_202D_202E(QuestStep P_0) - { - return P_0.SinglePlayerDutyIndex; - } - } - - [CompilerGenerated] - private sealed class _003CValidate_003Ed__2 : IEnumerable<ValidationIssue>, IEnumerable, IEnumerator<ValidationIssue>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ValidationIssue _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - public SinglePlayerInstanceValidator _003C_003E4__this; - - private Quest quest; - - public Quest _003C_003E3__quest; - - private List<byte>.Enumerator _003C_003E7__wrap1; - - ValidationIssue IEnumerator<ValidationIssue>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CValidate_003Ed__2(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _202E_202B_206A_200E_206D_206E_206E_206E_202B_200F_206B_200F_202E_200C_206B_202B_200B_206C_206E_206C_200D_202C_206C_206C_200D_202A_202E_202E_202A_206B_202B_206E_202D_200C_206A_206C_206B_202A_202C_206A_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num == -3) ? (-1938689052) : (-1938689051)); - while (true) - { - int num3 = num2; - int num4 = -1938689052; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - default: - continue; - case 2: - num2 = -1938689051; - continue; - case 1: - if (num == 1) - { - num2 = -1938689052; - continue; - } - break; - case 0: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E7__wrap1 = default(List<byte>.Enumerator); - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - try - { - int num = _003C_003E1__state; - SinglePlayerInstanceValidator singlePlayerInstanceValidator = _003C_003E4__this; - int num2 = ((num == 0) ? (-217172285) : (-217172288)); - List<byte> value = default(List<byte>); - _003C_003Ec__DisplayClass2_0 _003C_003Ec__DisplayClass2_ = default(_003C_003Ec__DisplayClass2_0); - while (true) - { - int num3 = num2; - int num4 = -217172283; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 8: - num2 = (_003C_003E7__wrap1.MoveNext() ? (-217172286) : (-217172283)); - break; - case 9: - _003C_003E7__wrap1 = value.GetEnumerator(); - _003C_003E1__state = -3; - num2 = -217172275; - break; - case 1: - return false; - case 7: - _003C_003Ec__DisplayClass2_ = new _003C_003Ec__DisplayClass2_0 - { - index = _003C_003E7__wrap1.Current - }; - num2 = (quest.AllSteps().Any(_003C_003Ec__DisplayClass2_._003CValidate_003Eb__0) ? (-217172275) : (-217172281)); - break; - case 6: - _003C_003E1__state = -1; - num2 = ((!singlePlayerInstanceValidator._questIdToDutyIndexes.TryGetValue(quest.Id, out value)) ? (-217172273) : (-217172276)); - break; - case 0: - _003C_003Em__Finally1(); - _003C_003E7__wrap1 = default(List<byte>.Enumerator); - num2 = -217172273; - break; - case 3: - _003C_003E1__state = -3; - num2 = -217172275; - break; - case 4: - num2 = -217172288; - break; - case 2: - { - ValidationIssue obj = new ValidationIssue - { - PathType = EPathType.Quest, - Id = _202D_206F_206C_206D_202C_200D_202E_206A_206D_206F_200C_202C_206D_202E_202A_200E_200F_202A_206A_200C_200C_202C_200D_200C_206B_206F_202E_200F_206A_200D_202E_206B_206F_200E_206D_202E_202D_200C_206F_200D_202E((object)quest.Id), - Location = null, - Type = EIssueType.UnusedSinglePlayerInstance, - Severity = EIssueSeverity.Error - }; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(32, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1732898265)); - defaultInterpolatedStringHandler.AppendFormatted(_003C_003Ec__DisplayClass2_.index); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1502904909)); - obj.Description = defaultInterpolatedStringHandler.ToStringAndClear(); - _003C_003E2__current = obj; - _003C_003E1__state = 1; - return true; - } - case 5: - num2 = ((num == 1) ? (-217172282) : (-217172284)); - break; - case 10: - return false; - } - } - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - ((IDisposable)_003C_003E7__wrap1/*cast due to .constrained prefix*/).Dispose(); - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _200B_200D_202A_202C_200F_200F_206D_202C_200C_200E_200D_202B_206D_206F_202E_206F_200E_202D_200E_202C_206C_206D_200C_202D_206D_200D_200B_206C_202B_200E_202E_200D_202A_202E_200E_200B_206D_202C_202A_202A_202E(); - } - - [DebuggerHidden] - IEnumerator<ValidationIssue> IEnumerable<ValidationIssue>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? (-105732161) : (-105732163)); - _003CValidate_003Ed__2 _003CValidate_003Ed__ = default(_003CValidate_003Ed__2); - while (true) - { - int num2 = num; - int num3 = -105732162; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -105732163; - break; - case 3: - num = ((_003C_003El__initialThreadId != _202E_202B_206A_200E_206D_206E_206E_206E_202B_200F_206B_200F_202E_200C_206B_202B_200B_206C_206E_206C_200D_202C_206C_206C_200D_202A_202E_202E_202A_206B_202B_206E_202D_200C_206A_206C_206B_202A_202C_206A_202E()) ? (-105732161) : (-105732166)); - break; - case 1: - _003CValidate_003Ed__ = new _003CValidate_003Ed__2(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = -105732162; - break; - case 0: - _003CValidate_003Ed__.quest = _003C_003E3__quest; - return _003CValidate_003Ed__; - case 4: - _003C_003E1__state = 0; - _003CValidate_003Ed__ = this; - num = -105732162; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ValidationIssue>)this).GetEnumerator(); - } - - static int _202E_202B_206A_200E_206D_206E_206E_206E_202B_200F_206B_200F_202E_200C_206B_202B_200B_206C_206E_206C_200D_202C_206C_206C_200D_202A_202E_202E_202A_206B_202B_206E_202D_200C_206A_206C_206B_202A_202C_206A_202E() - { - return Environment.CurrentManagedThreadId; - } - - static string _202D_206F_206C_206D_202C_200D_202E_206A_206D_206F_200C_202C_206D_202E_202A_200E_200F_202A_206A_200C_200C_202C_200D_200C_206B_206F_202E_200F_206A_200D_202E_206B_206F_200E_206D_202E_202D_200C_206F_200D_202E(object P_0) - { - return P_0.ToString(); - } - - static NotSupportedException _200B_200D_202A_202C_200F_200F_206D_202C_200C_200E_200D_202B_206D_206F_202E_206F_200E_202D_200E_202C_206C_206D_200C_202D_206D_200D_200B_206C_202B_200E_202E_200D_202A_202E_200E_200B_206D_202C_202A_202A_202E() - { - return new NotSupportedException(); - } - } - private readonly Dictionary<ElementId, List<byte>> _questIdToDutyIndexes; public SinglePlayerInstanceValidator(TerritoryData territoryData) @@ -311,20 +16,26 @@ internal sealed class SinglePlayerInstanceValidator : IQuestValidator group x by x.QuestId).ToDictionary((IGrouping<ElementId, (ElementId QuestId, byte Index, TerritoryData.ContentFinderConditionData Data)> x) => x.Key, (IGrouping<ElementId, (ElementId QuestId, byte Index, TerritoryData.ContentFinderConditionData Data)> x) => x.Select(((ElementId QuestId, byte Index, TerritoryData.ContentFinderConditionData Data) y) => y.Index).ToList()); } - [IteratorStateMachine(typeof(_003CValidate_003Ed__2))] public IEnumerable<ValidationIssue> Validate(Quest quest) { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CValidate_003Ed__2(-2) + if (!_questIdToDutyIndexes.TryGetValue(quest.Id, out List<byte> value)) { - _003C_003E4__this = this, - _003C_003E3__quest = quest - }; - } - - IEnumerable<ValidationIssue> IQuestValidator.Validate(Quest quest) - { - //ILSpy generated this explicit interface implementation from .override directive in Validate - return this.Validate(quest); + yield break; + } + foreach (byte index in value) + { + if (!quest.AllSteps().Any<(QuestSequence, int, QuestStep)>(((QuestSequence Sequence, int StepId, QuestStep Step) x) => x.Step.InteractionType == EInteractionType.SinglePlayerDuty && x.Step.SinglePlayerDutyIndex == index)) + { + yield return new ValidationIssue + { + PathType = EPathType.Quest, + Id = quest.Id.ToString(), + Location = null, + Type = EIssueType.UnusedSinglePlayerInstance, + Severity = EIssueSeverity.Error, + Description = $"Single player instance {index} not used" + }; + } + } } } diff --git a/Questionable/Questionable.Validation.Validators/UniqueSinglePlayerInstanceValidator.cs b/Questionable/Questionable.Validation.Validators/UniqueSinglePlayerInstanceValidator.cs index 64a12cd..477d434 100644 --- a/Questionable/Questionable.Validation.Validators/UniqueSinglePlayerInstanceValidator.cs +++ b/Questionable/Questionable.Validation.Validators/UniqueSinglePlayerInstanceValidator.cs @@ -1,9 +1,5 @@ -using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; -using System.Runtime.CompilerServices; using Questionable.Model; using Questionable.Model.Questing; @@ -11,297 +7,26 @@ namespace Questionable.Validation.Validators; internal sealed class UniqueSinglePlayerInstanceValidator : IQuestValidator { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<(QuestSequence Sequence, int StepId, QuestStep Step), bool> _003C_003E9__0_0; - - public static Func<(QuestSequence Sequence, int StepId, QuestStep Step), (QuestSequence Sequence, int StepId, byte SinglePlayerDutyIndex)> _003C_003E9__0_1; - - public static Func<(QuestSequence Sequence, int StepId, byte SinglePlayerDutyIndex), byte> _003C_003E9__0_2; - - internal bool _003CValidate_003Eb__0_0((QuestSequence Sequence, int StepId, QuestStep Step) x) - { - return _206D_200E_202B_206B_200E_206F_202C_206B_206D_200C_206F_200F_206E_206F_202D_202D_200E_200F_202A_200C_206C_206A_206F_200C_206E_202C_200F_200B_200C_202B_200F_202C_200B_202E_202A_200D_206B_202C_200F_206B_202E(x.Step) == EInteractionType.SinglePlayerDuty; - } - - internal (QuestSequence Sequence, int StepId, byte SinglePlayerDutyIndex) _003CValidate_003Eb__0_1((QuestSequence Sequence, int StepId, QuestStep Step) x) - { - return (Sequence: x.Sequence, StepId: x.StepId, SinglePlayerDutyIndex: _206E_206D_202A_206D_200E_202A_206E_206A_200D_206B_206A_202D_202A_200D_200F_200B_200F_206B_206D_206D_202B_202B_200E_202C_200E_202D_202C_206B_206A_200C_206F_202E_202C_200E_202D_200D_202A_202B_200D_206F_202E(x.Step)); - } - - internal byte _003CValidate_003Eb__0_2((QuestSequence Sequence, int StepId, byte SinglePlayerDutyIndex) x) - { - return x.SinglePlayerDutyIndex; - } - - static EInteractionType _206D_200E_202B_206B_200E_206F_202C_206B_206D_200C_206F_200F_206E_206F_202D_202D_200E_200F_202A_200C_206C_206A_206F_200C_206E_202C_200F_200B_200C_202B_200F_202C_200B_202E_202A_200D_206B_202C_200F_206B_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static byte _206E_206D_202A_206D_200E_202A_206E_206A_200D_206B_206A_202D_202A_200D_200F_200B_200F_206B_206D_206D_202B_202B_200E_202C_200E_202D_202C_206B_206A_200C_206F_202E_202C_200E_202D_200D_202A_202B_200D_206F_202E(QuestStep P_0) - { - return P_0.SinglePlayerDutyIndex; - } - } - - [CompilerGenerated] - private sealed class _003CValidate_003Ed__0 : IEnumerable<ValidationIssue>, IEnumerable, IEnumerator<ValidationIssue>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ValidationIssue _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - private Quest quest; - - public Quest _003C_003E3__quest; - - private List<(QuestSequence Sequence, int StepId, byte SinglePlayerDutyIndex)>.Enumerator _003C_003E7__wrap1; - - ValidationIssue IEnumerator<ValidationIssue>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CValidate_003Ed__0(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _206A_202A_202D_206E_202B_206A_206B_200C_200C_202C_202B_200F_202D_200D_206E_202C_206D_202E_200C_206B_200F_202B_200B_206E_200F_202E_202C_202B_200D_202C_206F_206B_202E_206D_206E_206E_200B_206E_200B_202D_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num == -3) ? (-490829547) : (-490829546)); - while (true) - { - int num3 = num2; - int num4 = -490829548; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - default: - continue; - case 0: - num2 = -490829546; - continue; - case 2: - if (num == 1) - { - num2 = -490829547; - continue; - } - break; - case 1: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E7__wrap1 = default(List<(QuestSequence, int, byte)>.Enumerator); - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - try - { - int num = _003C_003E1__state; - int num2 = ((num == 0) ? (-1518519538) : (-1518519550)); - List<(QuestSequence, int, byte)> list = default(List<(QuestSequence, int, byte)>); - while (true) - { - int num3 = num2; - int num4 = -1518519542; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - { - (QuestSequence, int, byte) current = _003C_003E7__wrap1.Current; - ValidationIssue obj = new ValidationIssue - { - PathType = EPathType.Quest, - Id = _200E_202D_200B_202C_200C_200F_200F_202A_202A_200C_206C_202B_200C_202C_200C_200C_200D_202A_202D_206B_200C_202C_202E_200E_206E_200E_206A_206D_206A_202E_200B_202D_202B_200E_206B_200D_200B_206E_200D_200E_202E((object)quest.Id), - Location = SchemaValidationHelper.FormatQuestLocation(_200D_206D_206B_202C_206D_202A_202A_206D_206F_206A_202A_206B_206B_200C_200E_202C_200B_206B_206E_206D_200E_206E_206E_202E_202E_200B_202D_200F_206A_200B_200E_200E_202A_206B_206C_206A_206D_202B_200B_200C_202E(current.Item1), current.Item2), - Type = EIssueType.DuplicateSinglePlayerInstance, - Severity = EIssueSeverity.Error - }; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(35, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-618147640)); - defaultInterpolatedStringHandler.AppendFormatted(current.Item3); - obj.Description = defaultInterpolatedStringHandler.ToStringAndClear(); - _003C_003E2__current = obj; - _003C_003E1__state = 1; - return true; - } - case 1: - _003C_003Em__Finally1(); - _003C_003E7__wrap1 = default(List<(QuestSequence, int, byte)>.Enumerator); - num2 = -1518519549; - break; - case 3: - return false; - case 8: - num2 = ((num == 1) ? (-1518519539) : (-1518519543)); - break; - case 7: - _003C_003E1__state = -3; - num2 = -1518519537; - break; - case 0: - num2 = -1518519550; - break; - case 6: - _003C_003E7__wrap1 = list.GetEnumerator(); - _003C_003E1__state = -3; - num2 = -1518519537; - break; - case 5: - num2 = (_003C_003E7__wrap1.MoveNext() ? (-1518519544) : (-1518519541)); - break; - case 4: - _003C_003E1__state = -1; - list = (from x in quest.AllSteps() - where _003C_003Ec._206D_200E_202B_206B_200E_206F_202C_206B_206D_200C_206F_200F_206E_206F_202D_202D_200E_200F_202A_200C_206C_206A_206F_200C_206E_202C_200F_200B_200C_202B_200F_202C_200B_202E_202A_200D_206B_202C_200F_206B_202E(x.Step) == EInteractionType.SinglePlayerDuty - select (Sequence: x.Sequence, StepId: x.StepId, SinglePlayerDutyIndex: _003C_003Ec._206E_206D_202A_206D_200E_202A_206E_206A_200D_206B_206A_202D_202A_200D_200F_200B_200F_206B_206D_206D_202B_202B_200E_202C_200E_202D_202C_206B_206A_200C_206F_202E_202C_200E_202D_200D_202A_202B_200D_206F_202E(x.Step))).ToList(); - num2 = ((list.DistinctBy<(QuestSequence, int, byte), byte>(((QuestSequence Sequence, int StepId, byte SinglePlayerDutyIndex) x) => x.SinglePlayerDutyIndex).Count() >= list.Count) ? (-1518519549) : (-1518519540)); - break; - case 9: - return false; - } - } - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - ((IDisposable)_003C_003E7__wrap1/*cast due to .constrained prefix*/).Dispose(); - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _206D_202C_200E_202D_200C_206B_202B_206D_202E_200B_200C_206A_206A_206F_206D_202A_206C_206D_200F_200E_206E_206E_200D_202C_202C_206B_206B_206E_206E_200F_200B_200C_200D_202D_206E_202C_206B_206E_200B_202D_202E(); - } - - [DebuggerHidden] - IEnumerator<ValidationIssue> IEnumerable<ValidationIssue>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? (-1918141123) : (-1918141122)); - _003CValidate_003Ed__0 _003CValidate_003Ed__ = default(_003CValidate_003Ed__0); - while (true) - { - int num2 = num; - int num3 = -1918141121; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - _003CValidate_003Ed__.quest = _003C_003E3__quest; - return _003CValidate_003Ed__; - case 2: - _003CValidate_003Ed__ = new _003CValidate_003Ed__0(0); - num = -1918141121; - break; - case 3: - num = -1918141122; - break; - case 1: - num = ((_003C_003El__initialThreadId != _206A_202A_202D_206E_202B_206A_206B_200C_200C_202C_202B_200F_202D_200D_206E_202C_206D_202E_200C_206B_200F_202B_200B_206E_200F_202E_202C_202B_200D_202C_206F_206B_202E_206D_206E_206E_200B_206E_200B_202D_202E()) ? (-1918141123) : (-1918141125)); - break; - case 4: - _003C_003E1__state = 0; - _003CValidate_003Ed__ = this; - num = -1918141121; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ValidationIssue>)this).GetEnumerator(); - } - - static int _206A_202A_202D_206E_202B_206A_206B_200C_200C_202C_202B_200F_202D_200D_206E_202C_206D_202E_200C_206B_200F_202B_200B_206E_200F_202E_202C_202B_200D_202C_206F_206B_202E_206D_206E_206E_200B_206E_200B_202D_202E() - { - return Environment.CurrentManagedThreadId; - } - - static string _200E_202D_200B_202C_200C_200F_200F_202A_202A_200C_206C_202B_200C_202C_200C_200C_200D_202A_202D_206B_200C_202C_202E_200E_206E_200E_206A_206D_206A_202E_200B_202D_202B_200E_206B_200D_200B_206E_200D_200E_202E(object P_0) - { - return P_0.ToString(); - } - - static byte _200D_206D_206B_202C_206D_202A_202A_206D_206F_206A_202A_206B_206B_200C_200E_202C_200B_206B_206E_206D_200E_206E_206E_202E_202E_200B_202D_200F_206A_200B_200E_200E_202A_206B_206C_206A_206D_202B_200B_200C_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - - static NotSupportedException _206D_202C_200E_202D_200C_206B_202B_206D_202E_200B_200C_206A_206A_206F_206D_202A_206C_206D_200F_200E_206E_206E_200D_202C_202C_206B_206B_206E_206E_200F_200B_200C_200D_202D_206E_202C_206B_206E_200B_202D_202E() - { - return new NotSupportedException(); - } - } - - [IteratorStateMachine(typeof(_003CValidate_003Ed__0))] public IEnumerable<ValidationIssue> Validate(Quest quest) { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CValidate_003Ed__0(-2) + List<(QuestSequence, int, byte)> list = (from x in quest.AllSteps() + where x.Step.InteractionType == EInteractionType.SinglePlayerDuty + select (Sequence: x.Sequence, StepId: x.StepId, SinglePlayerDutyIndex: x.Step.SinglePlayerDutyIndex)).ToList(); + if (list.DistinctBy<(QuestSequence, int, byte), byte>(((QuestSequence Sequence, int StepId, byte SinglePlayerDutyIndex) x) => x.SinglePlayerDutyIndex).Count() >= list.Count) { - _003C_003E3__quest = quest - }; - } - - IEnumerable<ValidationIssue> IQuestValidator.Validate(Quest quest) - { - //ILSpy generated this explicit interface implementation from .override directive in Validate - return this.Validate(quest); + yield break; + } + foreach (var item in list) + { + yield return new ValidationIssue + { + PathType = EPathType.Quest, + Id = quest.Id.ToString(), + Location = SchemaValidationHelper.FormatQuestLocation(item.Item1.Sequence, item.Item2), + Type = EIssueType.DuplicateSinglePlayerInstance, + Severity = EIssueSeverity.Error, + Description = $"Duplicate singleplayer duty index: {item.Item3}" + }; + } } } diff --git a/Questionable/Questionable.Validation.Validators/UniqueStartStopValidator.cs b/Questionable/Questionable.Validation.Validators/UniqueStartStopValidator.cs index 0bd883d..3eba11e 100644 --- a/Questionable/Questionable.Validation.Validators/UniqueStartStopValidator.cs +++ b/Questionable/Questionable.Validation.Validators/UniqueStartStopValidator.cs @@ -1,9 +1,5 @@ -using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; -using System.Runtime.CompilerServices; using Questionable.Model; using Questionable.Model.Questing; @@ -11,493 +7,75 @@ namespace Questionable.Validation.Validators; internal sealed class UniqueStartStopValidator : IQuestValidator { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<(QuestSequence Sequence, int StepId, QuestStep Step), bool> _003C_003E9__0_0; - - public static Func<(QuestSequence Sequence, int StepId, QuestStep Step), bool> _003C_003E9__0_1; - - internal bool _003CValidate_003Eb__0_0((QuestSequence Sequence, int StepId, QuestStep Step) x) - { - return _200B_202D_206F_202E_202C_202A_202E_200C_200F_200F_202C_202D_206F_206B_200C_206A_206F_202E_202D_202D_206E_200D_202A_202A_206E_206C_206B_200B_206B_200D_206E_206D_202B_200D_200C_202A_206C_202C_206D_202A_202E(_202B_200E_202A_200E_206E_202A_206B_206B_206D_200D_206B_202D_202D_200D_200D_206C_200C_200C_206E_206E_202E_206C_206E_202E_206D_200B_206D_206F_200F_202A_206A_200F_206E_202D_202A_200C_206B_206B_200E_200E_202E(x.Step), (ElementId)null); - } - - internal bool _003CValidate_003Eb__0_1((QuestSequence Sequence, int StepId, QuestStep Step) x) - { - return _200B_202D_206F_202E_202C_202A_202E_200C_200F_200F_202C_202D_206F_206B_200C_206A_206F_202E_202D_202D_206E_200D_202A_202A_206E_206C_206B_200B_206B_200D_206E_206D_202B_200D_200C_202A_206C_202C_206D_202A_202E(_200D_200D_202A_202E_200D_202E_206E_200C_206A_206C_202A_200B_206A_200F_206E_202B_206B_200F_200D_206D_202E_200E_202A_206B_206F_206D_202D_206A_202B_200D_206B_200F_206C_200E_200C_206C_206C_202C_202E_206D_202E(x.Step), (ElementId)null); - } - - static ElementId _202B_200E_202A_200E_206E_202A_206B_206B_206D_200D_206B_202D_202D_200D_200D_206C_200C_200C_206E_206E_202E_206C_206E_202E_206D_200B_206D_206F_200F_202A_206A_200F_206E_202D_202A_200C_206B_206B_200E_200E_202E(QuestStep P_0) - { - return P_0.PickUpQuestId; - } - - static bool _200B_202D_206F_202E_202C_202A_202E_200C_200F_200F_202C_202D_206F_206B_200C_206A_206F_202E_202D_202D_206E_200D_202A_202A_206E_206C_206B_200B_206B_200D_206E_206D_202B_200D_200C_202A_206C_202C_206D_202A_202E(ElementId P_0, ElementId P_1) - { - return P_0 == P_1; - } - - static ElementId _200D_200D_202A_202E_200D_202E_206E_200C_206A_206C_202A_200B_206A_200F_206E_202B_206B_200F_200D_206D_202E_200E_202A_206B_206F_206D_202D_206A_202B_200D_206B_200F_206C_200E_200C_206C_206C_202C_202E_206D_202E(QuestStep P_0) - { - return P_0.TurnInQuestId; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass1_0 - { - public List<EInteractionType> interactionType; - - internal bool _003CFindQuestStepsWithInteractionType_003Eb__0((QuestSequence Sequence, int StepId, QuestStep Step) x) - { - return interactionType.Contains(_200B_202A_206B_200B_200E_202D_206F_202A_202B_202B_206E_202B_206B_202D_206E_200E_200B_206F_200D_200F_202A_202C_206A_202C_200B_200F_206A_200B_206D_200D_206D_202D_200B_200B_202C_202B_200E_206F_202D_206A_202E(x.Step)); - } - - static EInteractionType _200B_202A_206B_200B_200E_202D_206F_202A_202B_202B_206E_202B_206B_202D_206E_200E_200B_206F_200D_200F_202A_202C_206A_202C_200B_200F_206A_200B_206D_200D_206D_202D_200B_200B_202C_202B_200E_206F_202D_206A_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - } - - [CompilerGenerated] - private sealed class _003CValidate_003Ed__0 : IEnumerable<ValidationIssue>, IEnumerable, IEnumerator<ValidationIssue>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private ValidationIssue _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - private Quest quest; - - public Quest _003C_003E3__quest; - - private bool _003CskipMissingStartStop_003E5__2; - - private List<(QuestSequence Sequence, int StepId, QuestStep Step)> _003CquestAccepts_003E5__3; - - private List<(QuestSequence Sequence, int StepId, QuestStep Step)> _003CquestCompletes_003E5__4; - - private List<(QuestSequence Sequence, int StepId, QuestStep Step)>.Enumerator _003C_003E7__wrap4; - - ValidationIssue IEnumerator<ValidationIssue>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CValidate_003Ed__0(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _202B_200B_202C_206C_206B_200C_206E_206E_202A_206F_200E_202A_202B_206E_202B_202D_206F_200E_200F_206A_202D_206A_200C_206B_200D_202A_200E_200D_202D_200E_200C_202B_206F_206B_200F_200B_200D_206C_200C_200E_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num > -3) ? 654863638 : 654863634); - while (true) - { - int num3 = num2; - int num4 = 654863632; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - default: - continue; - case 3: - num2 = 654863634; - continue; - case 1: - num2 = ((num == -3) ? 654863639 : 654863637); - continue; - case 6: - num2 = ((num == 1) ? 654863639 : 654863632); - continue; - case 0: - if (num != 3) - { - num2 = 654863636; - continue; - } - goto IL_00f9; - case 2: - if (num != -4) - { - num2 = 654863633; - continue; - } - goto IL_00f9; - case 7: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - case 4: - case 5: - break; - IL_00f9: - try - { - } - finally - { - _003C_003Em__Finally2(); - } - break; - } - break; - } - _003CquestAccepts_003E5__3 = null; - _003CquestCompletes_003E5__4 = null; - _003C_003E7__wrap4 = default(List<(QuestSequence, int, QuestStep)>.Enumerator); - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - try - { - int num; - (QuestSequence, int, QuestStep) current2 = default((QuestSequence, int, QuestStep)); - (QuestSequence, int, QuestStep) current = default((QuestSequence, int, QuestStep)); - switch (_003C_003E1__state) - { - default: - num = -177960474; - goto IL_002d; - case 3: - _003C_003E1__state = -4; - num = -177960463; - goto IL_002d; - case 0: - goto IL_0189; - case 2: - goto IL_021b; - case 1: - goto IL_022e; - case 4: - goto IL_042d; - IL_002d: - while (true) - { - int num2 = num; - int num3 = -177960473; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = -177960474; - break; - case 23: - goto IL_00bd; - case 5: - goto IL_00f8; - case 14: - goto end_IL_002d; - case 17: - goto IL_0139; - case 6: - goto IL_0161; - case 11: - goto IL_0189; - case 20: - goto IL_021b; - case 12: - goto IL_022e; - case 4: - goto IL_0242; - case 19: - _003C_003E2__current = new ValidationIssue - { - PathType = EPathType.Quest, - Id = _200B_206B_200B_202A_202E_200B_202C_200B_200B_206D_206C_206E_206C_200F_202A_206C_206D_202A_206F_202A_206E_202B_200B_202D_206C_202A_206F_206E_206B_206E_206E_206F_200C_202B_206E_202A_206C_206B_200B_202B_202E((object)quest.Id), - Location = SchemaValidationHelper.FormatQuestLocation(0, null), - Type = EIssueType.MissingQuestAccept, - Severity = EIssueSeverity.Error, - Description = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1425508003) - }; - _003C_003E1__state = 2; - return true; - case 2: - _003C_003E2__current = new ValidationIssue - { - PathType = EPathType.Quest, - Id = _200B_206B_200B_202A_202E_200B_202C_200B_200B_206D_206C_206E_206C_200F_202A_206C_206D_202A_206F_202A_206E_202B_200B_202D_206C_202A_206F_206E_206B_206E_206E_206F_200C_202B_206E_202A_206C_206B_200B_202B_202E((object)quest.Id), - Location = SchemaValidationHelper.FormatQuestLocation(_200C_200D_206A_200B_200E_202D_200E_206C_200B_200D_202C_200F_200C_202C_206E_206F_200B_202D_206C_200B_202D_206C_206B_200E_200B_200D_200B_200E_206E_206D_202C_202C_206F_202D_200D_202D_202A_200E_206C_202D_202E(current2.Item1), current2.Item2), - Type = EIssueType.UnexpectedCompleteQuestStep, - Severity = EIssueSeverity.Error, - Description = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1505174393) - }; - _003C_003E1__state = 3; - return true; - case 9: - goto IL_0379; - case 8: - _003C_003E2__current = new ValidationIssue - { - PathType = EPathType.Quest, - Id = _200B_206B_200B_202A_202E_200B_202C_200B_200B_206D_206C_206E_206C_200F_202A_206C_206D_202A_206F_202A_206E_202B_200B_202D_206C_202A_206F_206E_206B_206E_206E_206F_200C_202B_206E_202A_206C_206B_200B_202B_202E((object)quest.Id), - Location = SchemaValidationHelper.FormatQuestLocation((byte)byte.MaxValue, null), - Type = EIssueType.MissingQuestComplete, - Severity = EIssueSeverity.Error, - Description = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1217373352) - }; - _003C_003E1__state = 4; - return true; - case 15: - goto IL_042d; - case 21: - goto IL_0440; - case 13: - _003CquestCompletes_003E5__4 = (from x in FindQuestStepsWithInteractionType(quest, new List<EInteractionType> { EInteractionType.CompleteQuest }) - where _003C_003Ec._200B_202D_206F_202E_202C_202A_202E_200C_200F_200F_202C_202D_206F_206B_200C_206A_206F_202E_202D_202D_206E_200D_202A_202A_206E_206C_206B_200B_206B_200D_206E_206D_202B_200D_200C_202A_206C_202C_206D_202A_202E(_003C_003Ec._200D_200D_202A_202E_200D_202E_206E_200C_206A_206C_202A_200B_206A_200F_206E_202B_206B_200F_200D_206D_202E_200E_202A_206B_206F_206D_202D_206A_202B_200D_206B_200F_206C_200E_200C_206C_206C_202C_202E_206D_202E(x.Step), (ElementId)null) - select x).ToList(); - _003C_003E7__wrap4 = _003CquestCompletes_003E5__4.GetEnumerator(); - _003C_003E1__state = -4; - num = -177960463; - break; - case 1: - return false; - case 24: - _003C_003E2__current = new ValidationIssue - { - PathType = EPathType.Quest, - Id = _200B_206B_200B_202A_202E_200B_202C_200B_200B_206D_206C_206E_206C_200F_202A_206C_206D_202A_206F_202A_206E_202B_200B_202D_206C_202A_206F_206E_206B_206E_206E_206F_200C_202B_206E_202A_206C_206B_200B_202B_202E((object)quest.Id), - Location = SchemaValidationHelper.FormatQuestLocation(_200C_200D_206A_200B_200E_202D_200E_206C_200B_200D_202C_200F_200C_202C_206E_206F_200B_202D_206C_200B_202D_206C_206B_200E_200B_200D_200B_200E_206E_206D_202C_202C_206F_202D_200D_202D_202A_200E_206C_202D_202E(current.Item1), current.Item2), - Type = EIssueType.UnexpectedAcceptQuestStep, - Severity = EIssueSeverity.Error, - Description = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-230957138) - }; - _003C_003E1__state = 1; - return true; - case 22: - goto IL_0572; - case 10: - goto IL_059a; - case 18: - goto IL_05da; - case 7: - goto IL_0615; - case 0: - goto IL_063d; - case 16: - return false; - } - continue; - IL_063d: - _003C_003Em__Finally2(); - _003C_003E7__wrap4 = default(List<(QuestSequence, int, QuestStep)>.Enumerator); - num = (_003CskipMissingStartStop_003E5__2 ? (-177960457) : (-177960478)); - continue; - IL_0572: - num = (_003C_003E7__wrap4.MoveNext() ? (-177960459) : (-177960473)); - continue; - IL_00f8: - num = ((quest.FindSequence(byte.MaxValue) == null) ? (-177960457) : (-177960480)); - continue; - IL_0615: - num = ((_003CquestCompletes_003E5__4.Count != 0) ? (-177960457) : (-177960465)); - continue; - IL_0242: - current = _003C_003E7__wrap4.Current; - num = ((_200C_200D_206A_200B_200E_202D_200E_206C_200B_200D_202C_200F_200C_202C_206E_206F_200B_202D_206C_200B_202D_206C_206B_200E_200B_200D_200B_200E_206E_206D_202C_202C_206F_202D_200D_202D_202A_200E_206C_202D_202E(current.Item1) != 0) ? (-177960449) : (-177960464)); - continue; - IL_0440: - num = ((quest.FindSequence(0) == null) ? (-177960470) : (-177960458)); - continue; - IL_05da: - current2 = _003C_003E7__wrap4.Current; - num = ((_200C_200D_206A_200B_200E_202D_200E_206C_200B_200D_202C_200F_200C_202C_206E_206F_200B_202D_206C_200B_202D_206C_206B_200E_200B_200D_200B_200E_206E_206D_202C_202C_206F_202D_200D_202D_202A_200E_206C_202D_202E(current2.Item1) != byte.MaxValue) ? (-177960475) : (-177960467)); - continue; - IL_00bd: - num = ((current.Item2 == _200E_202C_200D_202C_200D_202B_202E_206B_202E_200C_200C_206F_202E_206C_202C_202D_206C_202C_202B_206C_202C_206B_200C_206E_206E_200C_206D_202A_200F_206F_202B_202C_200E_206D_206F_206D_206E_202B_202B_206F_202E(quest.FindSequence(0)).Count - 1) ? (-177960479) : (-177960449)); - continue; - IL_0139: - num = ((_003CquestAccepts_003E5__3.Count != 0) ? (-177960470) : (-177960460)); - continue; - IL_059a: - num = ((current2.Item2 == _200E_202C_200D_202C_200D_202B_202E_206B_202E_200C_200C_206F_202E_206C_202C_202D_206C_202C_202B_206C_202C_206B_200C_206E_206E_200C_206D_202A_200F_206F_202B_202C_200E_206D_206F_206D_206E_202B_202B_206F_202E(quest.FindSequence(byte.MaxValue)).Count - 1) ? (-177960463) : (-177960475)); - continue; - IL_0379: - _003C_003Em__Finally1(); - _003C_003E7__wrap4 = default(List<(QuestSequence, int, QuestStep)>.Enumerator); - num = (_003CskipMissingStartStop_003E5__2 ? (-177960470) : (-177960462)); - continue; - IL_0161: - num = (_003C_003E7__wrap4.MoveNext() ? (-177960477) : (-177960466)); - continue; - end_IL_002d: - break; - } - goto case 3; - IL_042d: - _003C_003E1__state = -1; - num = -177960457; - goto IL_002d; - IL_022e: - _003C_003E1__state = -3; - num = -177960479; - goto IL_002d; - IL_021b: - _003C_003E1__state = -1; - num = -177960470; - goto IL_002d; - IL_0189: - _003C_003E1__state = -1; - _003CskipMissingStartStop_003E5__2 = !(quest.Id is QuestId); - _003CquestAccepts_003E5__3 = (from x in FindQuestStepsWithInteractionType(quest, new List<EInteractionType> { EInteractionType.AcceptQuest }) - where _003C_003Ec._200B_202D_206F_202E_202C_202A_202E_200C_200F_200F_202C_202D_206F_206B_200C_206A_206F_202E_202D_202D_206E_200D_202A_202A_206E_206C_206B_200B_206B_200D_206E_206D_202B_200D_200C_202A_206C_202C_206D_202A_202E(_003C_003Ec._202B_200E_202A_200E_206E_202A_206B_206B_206D_200D_206B_202D_202D_200D_200D_206C_200C_200C_206E_206E_202E_206C_206E_202E_206D_200B_206D_206F_200F_202A_206A_200F_206E_202D_202A_200C_206B_206B_200E_200E_202E(x.Step), (ElementId)null) - select x).ToList(); - _003C_003E7__wrap4 = _003CquestAccepts_003E5__3.GetEnumerator(); - _003C_003E1__state = -3; - num = -177960479; - goto IL_002d; - } - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - ((IDisposable)_003C_003E7__wrap4/*cast due to .constrained prefix*/).Dispose(); - } - - private void _003C_003Em__Finally2() - { - _003C_003E1__state = -1; - ((IDisposable)_003C_003E7__wrap4/*cast due to .constrained prefix*/).Dispose(); - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _206F_202E_206A_202E_206E_200D_202A_206F_200D_202A_200E_202A_202E_200E_202C_206B_200C_206C_200B_206A_202C_202C_202D_206F_202C_200C_206B_206D_206F_200D_200D_200E_202C_206C_200F_202C_200C_206F_202E_202E_202E(); - } - - [DebuggerHidden] - IEnumerator<ValidationIssue> IEnumerable<ValidationIssue>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? 1591254497 : 1591254499); - _003CValidate_003Ed__0 _003CValidate_003Ed__ = default(_003CValidate_003Ed__0); - while (true) - { - int num2 = num; - int num3 = 1591254498; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1591254499; - break; - case 2: - _003CValidate_003Ed__.quest = _003C_003E3__quest; - return _003CValidate_003Ed__; - case 1: - num = ((_003C_003El__initialThreadId != _202B_200B_202C_206C_206B_200C_206E_206E_202A_206F_200E_202A_202B_206E_202B_202D_206F_200E_200F_206A_202D_206A_200C_206B_200D_202A_200E_200D_202D_200E_200C_202B_206F_206B_200F_200B_200D_206C_200C_200E_202E()) ? 1591254497 : 1591254502); - break; - case 3: - _003CValidate_003Ed__ = new _003CValidate_003Ed__0(0); - num = 1591254496; - break; - case 4: - _003C_003E1__state = 0; - _003CValidate_003Ed__ = this; - num = 1591254496; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<ValidationIssue>)this).GetEnumerator(); - } - - static int _202B_200B_202C_206C_206B_200C_206E_206E_202A_206F_200E_202A_202B_206E_202B_202D_206F_200E_200F_206A_202D_206A_200C_206B_200D_202A_200E_200D_202D_200E_200C_202B_206F_206B_200F_200B_200D_206C_200C_200E_202E() - { - return Environment.CurrentManagedThreadId; - } - - static byte _200C_200D_206A_200B_200E_202D_200E_206C_200B_200D_202C_200F_200C_202C_206E_206F_200B_202D_206C_200B_202D_206C_206B_200E_200B_200D_200B_200E_206E_206D_202C_202C_206F_202D_200D_202D_202A_200E_206C_202D_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - - static List<QuestStep> _200E_202C_200D_202C_200D_202B_202E_206B_202E_200C_200C_206F_202E_206C_202C_202D_206C_202C_202B_206C_202C_206B_200C_206E_206E_200C_206D_202A_200F_206F_202B_202C_200E_206D_206F_206D_206E_202B_202B_206F_202E(QuestSequence P_0) - { - return P_0.Steps; - } - - static string _200B_206B_200B_202A_202E_200B_202C_200B_200B_206D_206C_206E_206C_200F_202A_206C_206D_202A_206F_202A_206E_202B_200B_202D_206C_202A_206F_206E_206B_206E_206E_206F_200C_202B_206E_202A_206C_206B_200B_202B_202E(object P_0) - { - return P_0.ToString(); - } - - static NotSupportedException _206F_202E_206A_202E_206E_200D_202A_206F_200D_202A_200E_202A_202E_200E_202C_206B_200C_206C_200B_206A_202C_202C_202D_206F_202C_200C_206B_206D_206F_200D_200D_200E_202C_206C_200F_202C_200C_206F_202E_202E_202E() - { - return new NotSupportedException(); - } - } - - [IteratorStateMachine(typeof(_003CValidate_003Ed__0))] public IEnumerable<ValidationIssue> Validate(Quest quest) { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CValidate_003Ed__0(-2) + bool skipMissingStartStop = !(quest.Id is QuestId); + List<(QuestSequence Sequence, int StepId, QuestStep Step)> questAccepts = (from x in FindQuestStepsWithInteractionType(quest, new List<EInteractionType> { EInteractionType.AcceptQuest }) + where x.Step.PickUpQuestId == null + select x).ToList(); + foreach (var item in questAccepts) { - _003C_003E3__quest = quest - }; - } - - IEnumerable<ValidationIssue> IQuestValidator.Validate(Quest quest) - { - //ILSpy generated this explicit interface implementation from .override directive in Validate - return this.Validate(quest); + if (item.Sequence.Sequence != 0 || item.StepId != quest.FindSequence(0).Steps.Count - 1) + { + yield return new ValidationIssue + { + PathType = EPathType.Quest, + Id = quest.Id.ToString(), + Location = SchemaValidationHelper.FormatQuestLocation(item.Sequence.Sequence, item.StepId), + Type = EIssueType.UnexpectedAcceptQuestStep, + Severity = EIssueSeverity.Error, + Description = "Unexpected AcceptQuest step" + }; + } + } + if (!skipMissingStartStop && quest.FindSequence(0) != null && questAccepts.Count == 0) + { + yield return new ValidationIssue + { + PathType = EPathType.Quest, + Id = quest.Id.ToString(), + Location = SchemaValidationHelper.FormatQuestLocation(0, null), + Type = EIssueType.MissingQuestAccept, + Severity = EIssueSeverity.Error, + Description = "No AcceptQuest step" + }; + } + List<(QuestSequence Sequence, int StepId, QuestStep Step)> questCompletes = (from x in FindQuestStepsWithInteractionType(quest, new List<EInteractionType> { EInteractionType.CompleteQuest }) + where x.Step.TurnInQuestId == null + select x).ToList(); + foreach (var item2 in questCompletes) + { + if (item2.Sequence.Sequence != byte.MaxValue || item2.StepId != quest.FindSequence(byte.MaxValue).Steps.Count - 1) + { + yield return new ValidationIssue + { + PathType = EPathType.Quest, + Id = quest.Id.ToString(), + Location = SchemaValidationHelper.FormatQuestLocation(item2.Sequence.Sequence, item2.StepId), + Type = EIssueType.UnexpectedCompleteQuestStep, + Severity = EIssueSeverity.Error, + Description = "Unexpected CompleteQuest step" + }; + } + } + if (!skipMissingStartStop && quest.FindSequence(byte.MaxValue) != null && questCompletes.Count == 0) + { + yield return new ValidationIssue + { + PathType = EPathType.Quest, + Id = quest.Id.ToString(), + Location = SchemaValidationHelper.FormatQuestLocation((byte)byte.MaxValue, null), + Type = EIssueType.MissingQuestComplete, + Severity = EIssueSeverity.Error, + Description = "No CompleteQuest step" + }; + } } private static IEnumerable<(QuestSequence Sequence, int StepId, QuestStep Step)> FindQuestStepsWithInteractionType(Quest quest, List<EInteractionType> interactionType) { return from x in quest.AllSteps() - where interactionType.Contains(_003C_003Ec__DisplayClass1_0._200B_202A_206B_200B_200E_202D_206F_202A_202B_202B_206E_202B_206B_202D_206E_200E_200B_206F_200D_200F_202A_202C_206A_202C_200B_200F_206A_200B_206D_200D_206D_202D_200B_200B_202C_202B_200E_206F_202D_206A_202E(x.Step)) + where interactionType.Contains(x.Step.InteractionType) select x; } } diff --git a/Questionable/Questionable.Validation/QuestValidator.cs b/Questionable/Questionable.Validation/QuestValidator.cs index df4fef2..ca67951 100644 --- a/Questionable/Questionable.Validation/QuestValidator.cs +++ b/Questionable/Questionable.Validation/QuestValidator.cs @@ -1,9 +1,6 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Linq; -using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Threading; using System.Threading.Tasks; @@ -16,592 +13,11 @@ namespace Questionable.Validation; internal sealed class QuestValidator { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<IQuestValidator, string> _003C_003E9__4_0; - - public static Func<ValidationIssue, bool> _003C_003E9__10_0; - - public static Func<ValidationIssue, bool> _003C_003E9__12_0; - - public static Func<ValidationIssue, bool> _003C_003E9__15_1; - - public static Func<ValidationIssue, string> _003C_003E9__15_2; - - public static Func<ValidationIssue, EPathType> _003C_003E9__15_4; - - public static Func<ValidationIssue, string> _003C_003E9__15_5; - - public static Func<ValidationIssue, string> _003C_003E9__15_6; - - public static Func<ValidationIssue, string> _003C_003E9__15_7; - - public static Func<KeyValuePair<EAlliedSociety, List<ElementId>>, EAlliedSociety> _003C_003E9__17_0; - - public static Func<ElementId, string> _003C_003E9__17_2; - - public static Func<KeyValuePair<EAlliedSociety, List<ElementId>>, ValidationIssue> _003C_003E9__17_1; - - public static Func<ValidationIssue, byte?> _003C_003E9__18_0; - - public static Func<ValidationIssue, int?> _003C_003E9__18_1; - - public static Func<ValidationIssue, string> _003C_003E9__18_2; - - public static Func<ValidationIssue, byte?> _003C_003E9__19_0; - - public static Func<ValidationIssue, int?> _003C_003E9__19_1; - - public static Func<ValidationIssue, string> _003C_003E9__19_2; - - internal string _003C_002Ector_003Eb__4_0(IQuestValidator x) - { - return _206C_202D_206F_200B_200D_206B_200C_202C_206C_206B_206A_206F_200F_206E_202D_200D_200B_200F_200D_202C_200B_200D_206F_200F_206B_202C_202D_206A_206A_202C_206D_202D_206A_200F_206E_202B_202A_202E_200E_202E((MemberInfo)_200D_206B_206C_202D_202C_202D_202B_200D_200D_200F_202B_206F_206E_202C_206D_206E_206E_202E_200B_206B_202E_206B_206D_200C_200E_200D_202E_200D_202A_202B_206E_206C_200B_202E_206C_200E_202B_200E_202A_202C_202E((object)x)); - } - - internal bool _003Cget_ErrorCount_003Eb__10_0(ValidationIssue x) - { - return x.Severity == EIssueSeverity.Error; - } - - internal bool _003Cget_WarningCount_003Eb__12_0(ValidationIssue x) - { - return x.Severity == EIssueSeverity.Warning; - } - - internal bool _003CValidate_003Eb__15_1(ValidationIssue x) - { - return x.Type == EIssueType.QuestDisabled; - } - - internal string _003CValidate_003Eb__15_2(ValidationIssue x) - { - return x.Id; - } - - internal EPathType _003CValidate_003Eb__15_4(ValidationIssue x) - { - return x.PathType; - } - - internal string _003CValidate_003Eb__15_5(ValidationIssue x) - { - return x.Id; - } - - internal string _003CValidate_003Eb__15_6(ValidationIssue x) - { - return x.Location; - } - - internal string _003CValidate_003Eb__15_7(ValidationIssue x) - { - return x.Description; - } - - internal EAlliedSociety _003CDisabledTribesAsIssues_003Eb__17_0(KeyValuePair<EAlliedSociety, List<ElementId>> x) - { - return x.Key; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal ValidationIssue _003CDisabledTribesAsIssues_003Eb__17_1(KeyValuePair<EAlliedSociety, List<ElementId>> x) - { - int num = ((x.Value.Count > 0) ? 617142778 : 617142779); - string text; - while (true) - { - int num2 = num; - int num3 = 617142778; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 2: - goto IL_0050; - case 1: - text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1756725644); - break; - case 0: - text = _202C_202E_206B_200F_202C_206C_200D_206F_206D_202B_206F_206F_202D_206D_200D_200D_202A_206A_206A_202B_200C_200B_206D_202A_200B_200E_202E_206A_200E_200E_200C_206F_206B_206D_206C_206A_206B_202A_200C_202E_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1095822044), x.Value.Select((ElementId id) => _206B_202B_202A_202E_206B_200B_202A_200D_200D_200E_202E_200D_202B_206C_200B_200F_206F_202A_202B_206C_200D_202B_206A_202A_206D_206E_200E_200D_200D_202A_202C_206A_206D_200C_200C_206A_202A_206C_202B_206D_202E((object)id))); - break; - } - break; - IL_0050: - num = 617142779; - } - string value = text; - ValidationIssue obj = new ValidationIssue - { - PathType = EPathType.Quest, - Id = null, - Location = null, - Type = EIssueType.QuestDisabled, - Severity = EIssueSeverity.None - }; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(15, 4); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1463938997)); - defaultInterpolatedStringHandler.AppendFormatted(x.Key); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-900750902)); - defaultInterpolatedStringHandler.AppendFormatted(x.Value.Count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-92874207)); - defaultInterpolatedStringHandler.AppendFormatted((x.Value.Count == 1) ? global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(308044519) : global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1238320320)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-437343681)); - defaultInterpolatedStringHandler.AppendFormatted(value); - obj.Description = defaultInterpolatedStringHandler.ToStringAndClear(); - return obj; - } - - internal string _003CDisabledTribesAsIssues_003Eb__17_2(ElementId id) - { - return _206B_202B_202A_202E_206B_200B_202A_200D_200D_200E_202E_200D_202B_206C_200B_200F_206F_202A_202B_206C_200D_202B_206A_202A_206D_206E_200E_200D_200D_202A_202C_206A_206D_200C_200C_206A_202A_206C_202B_206D_202E((object)id); - } - - internal byte? _003CValidateQuestSync_003Eb__18_0(ValidationIssue x) - { - return x.Sequence; - } - - internal int? _003CValidateQuestSync_003Eb__18_1(ValidationIssue x) - { - return x.Step; - } - - internal string _003CValidateQuestSync_003Eb__18_2(ValidationIssue x) - { - return x.Description; - } - - internal byte? _003CValidateSchemaSync_003Eb__19_0(ValidationIssue x) - { - return x.Sequence; - } - - internal int? _003CValidateSchemaSync_003Eb__19_1(ValidationIssue x) - { - return x.Step; - } - - internal string _003CValidateSchemaSync_003Eb__19_2(ValidationIssue x) - { - return x.Description; - } - - static Type _200D_206B_206C_202D_202C_202D_202B_200D_200D_200F_202B_206F_206E_202C_206D_206E_206E_202E_200B_206B_202E_206B_206D_200C_200E_200D_202E_200D_202A_202B_206E_206C_200B_202E_206C_200E_202B_200E_202A_202C_202E(object P_0) - { - return P_0.GetType(); - } - - static string _206C_202D_206F_200B_200D_206B_200C_202C_206C_206B_206A_206F_200F_206E_202D_200D_200B_200F_200D_202C_200B_200D_206F_200F_206B_202C_202D_206A_206A_202C_206D_202D_206A_200F_206E_202B_202A_202E_200E_202E(MemberInfo P_0) - { - return P_0.Name; - } - - static string _202C_202E_206B_200F_202C_206C_200D_206F_206D_202B_206F_206F_202D_206D_200D_200D_202A_206A_206A_202B_200C_200B_206D_202A_200B_200E_202E_206A_200E_200E_200C_206F_206B_206D_206C_206A_206B_202A_200C_202E_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); - } - - static string _206B_202B_202A_202E_206B_200B_202A_200D_200D_200E_202E_200D_202B_206C_200B_200F_206F_202A_202B_206C_200D_202B_206A_202A_206D_206E_200E_200D_200D_202A_202C_206A_206D_200C_200C_206A_202A_206C_202B_206D_202E(object P_0) - { - return P_0.ToString(); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass15_0 - { - public QuestValidator _003C_003E4__this; - - public IEnumerable<Quest> quests; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal void _003CValidate_003Eb__0() - { - try - { - _003C_003Ec__DisplayClass15_1 CS_0024_003C_003E8__locals2 = new _003C_003Ec__DisplayClass15_1(); - object obj = _003C_003E4__this._lock; - bool flag = false; - List<ValidationIssue> validationIssues; - try - { - _202A_202B_206E_206E_202E_202C_200E_202C_200B_200C_206A_206E_206A_206B_200C_206A_206B_202C_202B_200B_206F_202D_206B_200C_200F_206E_200C_200C_206F_206E_200F_202B_206F_206C_200F_202B_206E_206D_200D_200E_202E(obj, ref flag); - validationIssues = _003C_003E4__this._validationIssues; - } - finally - { - int num = ((!flag) ? 1225999187 : 1225999186); - while (true) - { - int num2 = num; - int num3 = 1225999187; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1225999186; - break; - case 0: - goto end_IL_004f; - case 1: - _206C_200F_200F_206B_202C_206C_202C_206D_202A_200B_200F_206B_200C_202B_200C_206D_206D_202A_200D_202D_200B_202E_202C_206F_206C_200B_206F_206F_202D_206F_206A_202A_202C_206B_202E_200B_206F_206E_202D_200C_202E(obj); - num = 1225999187; - break; - } - continue; - end_IL_004f: - break; - } - } - List<ValidationIssue> list = new List<ValidationIssue>(); - Dictionary<EAlliedSociety, List<ElementId>> dictionary = new Dictionary<EAlliedSociety, List<ElementId>>(); - IEnumerator<Quest> enumerator = quests.GetEnumerator(); - try - { - List<ElementId> value = default(List<ElementId>); - ValidationIssue current2 = default(ValidationIssue); - while (_206D_200D_206B_200D_206F_200B_200D_202D_206E_206D_206E_202D_206C_202A_200F_202D_200E_200D_202E_206A_206F_202E_200F_200D_200F_206A_200C_206A_202D_206A_200B_200B_206D_202C_206D_206F_202B_206C_206A_202E((IEnumerator)enumerator)) - { - Quest current = enumerator.Current; - IEnumerator<IQuestValidator> enumerator2 = _003C_003E4__this._validators.GetEnumerator(); - try - { - while (_206D_200D_206B_200D_206F_200B_200D_202D_206E_206D_206E_202D_206C_202A_200F_202D_200E_200D_202E_206A_206F_202E_200F_200D_200F_206A_200C_206A_202D_206A_200B_200B_206D_202C_206D_206F_202B_206C_206A_202E((IEnumerator)enumerator2)) - { - IEnumerator<ValidationIssue> enumerator3 = enumerator2.Current.Validate(current).GetEnumerator(); - try - { - int num = 1611230640; - while (true) - { - int num5 = num; - int num3 = 1611230646; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 7: - value = new List<ElementId>(); - dictionary[current.Info.AlliedSociety] = value; - num = 1611230646; - break; - case 6: - num = (_206D_200D_206B_200D_206F_200B_200D_202D_206E_206D_206E_202D_206C_202A_200F_202D_200E_200D_202E_206A_206F_202E_200F_200D_200F_206A_200C_206A_202D_206A_200B_200B_206D_202C_206D_206F_202B_206C_206A_202E((IEnumerator)enumerator3) ? 1611230654 : 1611230647); - break; - case 8: - current2 = enumerator3.Current; - num = ((current2.Type != EIssueType.QuestDisabled) ? 1611230643 : 1611230644); - break; - case 3: - num = (dictionary.TryGetValue(current.Info.AlliedSociety, out value) ? 1611230646 : 1611230641); - break; - case 4: - num = 1611230640; - break; - case 0: - value.Add(current.Id); - num = 1611230640; - break; - case 5: - list.Add(current2); - num = 1611230640; - break; - case 2: - num = ((current.Info.AlliedSociety == EAlliedSociety.None) ? 1611230643 : 1611230645); - break; - case 1: - goto end_IL_00fa; - } - continue; - end_IL_00fa: - break; - } - } - finally - { - int num = ((enumerator3 == null) ? (-781546946) : (-781546945)); - while (true) - { - int num8 = num; - int num3 = -781546946; - int num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_0272; - case 1: - _200F_206B_206B_202E_202B_206F_206A_200C_202D_200F_200E_202C_202A_206B_206C_202C_202C_202D_206C_200D_206A_206C_200D_202E_200C_206C_202A_206C_206D_206A_200B_206C_200B_202E_206F_206F_200F_202E_200C_206D_202E((IDisposable)enumerator3); - num = -781546946; - break; - case 2: - num = -781546945; - break; - } - continue; - end_IL_0272: - break; - } - } - } - } - finally - { - int num = ((enumerator2 == null) ? 1631067796 : 1631067797); - while (true) - { - int num9 = num; - int num3 = 1631067796; - int num4 = num9; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1631067797; - break; - case 0: - goto end_IL_02ee; - case 1: - _200F_206B_206B_202E_202B_206F_206A_200C_202D_200F_200E_202C_202A_206B_206C_202C_202C_202D_206C_200D_206A_206C_200D_202E_200C_206C_202A_206C_206D_206A_200B_206C_200B_202E_206F_206F_200F_202E_200C_206D_202E((IDisposable)enumerator2); - num = 1631067796; - break; - } - continue; - end_IL_02ee: - break; - } - } - } - } - finally - { - int num = ((enumerator == null) ? (-989991724) : (-989991723)); - while (true) - { - int num10 = num; - int num3 = -989991724; - int num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -989991723; - break; - case 0: - goto end_IL_036a; - case 1: - _200F_206B_206B_202E_202B_206F_206A_200C_202D_200F_200E_202C_202A_206B_206C_202C_202C_202D_206C_200D_206A_206C_200D_202E_200C_206C_202A_206C_206D_206A_200B_206C_200B_202E_206F_206F_200F_202E_200C_206D_202E((IDisposable)enumerator); - num = -989991724; - break; - } - continue; - end_IL_036a: - break; - } - } - CS_0024_003C_003E8__locals2.disabledQuests = (from x in list - where x.Type == EIssueType.QuestDisabled - select x.Id).ToList(); - List<ValidationIssue> list2 = (from x in validationIssues.Concat(list.Where(delegate(ValidationIssue x) - { - int num15 = ((!CS_0024_003C_003E8__locals2.disabledQuests.Contains(x.Id)) ? 1289967941 : 1289967942); - while (true) - { - int num16 = num15; - int num17 = 1289967940; - int num18 = num16; - switch ((num18 | num17) - (num18 & num17)) - { - case 0: - goto IL_0051; - case 1: - return true; - case 2: - return x.Type == EIssueType.QuestDisabled; - } - continue; - IL_0051: - num15 = 1289967942; - } - })).Concat(DisabledTribesAsIssues(dictionary)) - orderby x.PathType, x.Id, x.Location, x.Description - select x).ToList(); - obj = _003C_003E4__this._lock; - flag = false; - try - { - _202A_202B_206E_206E_202E_202C_200E_202C_200B_200C_206A_206E_206A_206B_200C_206A_206B_202C_202B_200B_206F_202D_206B_200C_200F_206E_200C_200C_206F_206E_200F_202B_206F_206C_200F_202B_206E_206D_200D_200E_202E(obj, ref flag); - int num = ((_003C_003E4__this._validationIssues.Count <= validationIssues.Count) ? (-500434587) : (-500434588)); - while (true) - { - int num11 = num; - int num3 = -500434587; - int num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) - { - case 2: - num = -500434588; - break; - case 1: - list2.AddRange(_003C_003E4__this._validationIssues.Skip(validationIssues.Count)); - num = -500434587; - break; - case 0: - _003C_003E4__this._validationIssues = list2; - return; - } - } - } - finally - { - int num = ((!flag) ? (-2020487653) : (-2020487654)); - while (true) - { - int num14 = num; - int num3 = -2020487653; - int num4 = num14; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -2020487654; - break; - case 0: - goto end_IL_05b6; - case 1: - _206C_200F_200F_206B_202C_206C_202C_206D_202A_200B_200F_206B_200C_202B_200C_206D_206D_202A_200D_202D_200B_202E_202C_206F_206C_200B_206F_206F_202D_206F_206A_202A_202C_206B_202E_200B_206F_206E_202D_200C_202E(obj); - num = -2020487653; - break; - } - continue; - end_IL_05b6: - break; - } - } - } - catch (Exception ex) - { - _202E_202D_200E_200B_202D_200C_202C_202D_202E_206B_206A_202A_206C_202A_200B_200C_202B_200B_200C_200F_200E_206E_202B_206C_206D_206F_202D_202C_202B_202A_200E_206A_200B_202B_202B_200D_200F_202E_202A_206C_202E((ILogger)_003C_003E4__this._logger, ex, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(479815651), Array.Empty<object>()); - } - } - - static void _202A_202B_206E_206E_202E_202C_200E_202C_200B_200C_206A_206E_206A_206B_200C_206A_206B_202C_202B_200B_206F_202D_206B_200C_200F_206E_200C_200C_206F_206E_200F_202B_206F_206C_200F_202B_206E_206D_200D_200E_202E(object P_0, ref bool P_1) - { - Monitor.Enter(P_0, ref P_1); - } - - static void _206C_200F_200F_206B_202C_206C_202C_206D_202A_200B_200F_206B_200C_202B_200C_206D_206D_202A_200D_202D_200B_202E_202C_206F_206C_200B_206F_206F_202D_206F_206A_202A_202C_206B_202E_200B_206F_206E_202D_200C_202E(object P_0) - { - Monitor.Exit(P_0); - } - - static bool _206D_200D_206B_200D_206F_200B_200D_202D_206E_206D_206E_202D_206C_202A_200F_202D_200E_200D_202E_206A_206F_202E_200F_200D_200F_206A_200C_206A_202D_206A_200B_200B_206D_202C_206D_206F_202B_206C_206A_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200F_206B_206B_202E_202B_206F_206A_200C_202D_200F_200E_202C_202A_206B_206C_202C_202C_202D_206C_200D_206A_206C_200D_202E_200C_206C_202A_206C_206D_206A_200B_206C_200B_202E_206F_206F_200F_202E_200C_206D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _202E_202D_200E_200B_202D_200C_202C_202D_202E_206B_206A_202A_206C_202A_200B_200C_202B_200B_200C_200F_200E_206E_202B_206C_206D_206F_202D_202C_202B_202A_200E_206A_200B_202B_202B_200D_200F_202E_202A_206C_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass15_1 - { - public List<string> disabledQuests; - - internal bool _003CValidate_003Eb__3(ValidationIssue x) - { - int num = ((!disabledQuests.Contains(x.Id)) ? 1289967941 : 1289967942); - while (true) - { - int num2 = num; - int num3 = 1289967940; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0051; - case 1: - return true; - case 2: - return x.Type == EIssueType.QuestDisabled; - } - continue; - IL_0051: - num = 1289967942; - } - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass16_0 - { - public EPathType pathType; - - public string id; - - internal bool _003CGetIssues_003Eb__0(ValidationIssue x) - { - int num = ((x.PathType != pathType) ? (-1283237086) : (-1283237087)); - while (true) - { - int num2 = num; - int num3 = -1283237085; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004c; - case 2: - return _200B_206C_206C_202B_206D_206F_206B_202D_202D_206B_200F_206C_202E_200E_206C_206A_206C_200E_202C_200C_200D_202A_206E_200B_206E_206F_206C_202A_206C_202A_206D_200F_206B_202A_200B_202E_200E_206F_200D_200D_202E(x.Id, id); - case 1: - return false; - } - continue; - IL_004c: - num = -1283237087; - } - } - - static bool _200B_206C_206C_202B_206D_206F_206B_202D_202D_206B_200F_206C_202E_200E_206C_206A_206C_200E_202C_200C_200D_202A_206E_200B_206E_206F_206C_202A_206C_202A_206D_200F_206B_202A_200B_202E_200E_206F_200D_200D_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass20_0 - { - public ElementId questId; - - internal bool _003CClearIssuesForQuest_003Eb__0(ValidationIssue issue) - { - return _206A_200D_202E_200E_206C_202D_202D_206C_206E_200F_200C_202B_206A_200B_202D_206E_200B_200C_202C_206C_200B_202B_206C_206A_206F_206F_202E_206D_206B_206F_202E_206B_200B_202B_202B_206A_206D_206B_202D_206D_202E(issue.ElementId, questId); - } - - static bool _206A_200D_202E_200E_206C_202D_202D_206C_206E_200F_200C_202B_206A_200B_202D_206E_200B_200C_202C_206C_200B_202B_206C_206A_206F_206F_202E_206D_206B_206F_202E_206B_200B_202B_202B_206A_206D_206B_202D_206D_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } - } - private readonly IReadOnlyList<IQuestValidator> _validators; private readonly ILogger<QuestValidator> _logger; - private readonly object _lock = _202E_200F_202B_200E_206A_202E_206D_202A_206E_200F_202B_206E_202E_206D_202C_206B_206F_206A_206A_206A_206F_200D_206A_202C_200D_200D_200F_200C_206B_200E_200B_200E_200B_206E_200B_200C_206D_206E_206B_202A_202E(); + private readonly object _lock = new object(); private List<ValidationIssue> _validationIssues = new List<ValidationIssue>(); @@ -613,115 +29,29 @@ internal sealed class QuestValidator public int WarningCount => _validationIssues.Count((ValidationIssue x) => x.Severity == EIssueSeverity.Warning); - [MethodImpl(MethodImplOptions.NoInlining)] public QuestValidator(IEnumerable<IQuestValidator> validators, ILogger<QuestValidator> logger) { _validators = validators.ToList(); _logger = logger; - _202D_200B_202D_206E_206B_202D_200E_200F_206C_206F_202B_200C_206A_206D_202A_202E_202B_200F_202C_202C_206C_200B_200D_202E_206F_200E_206C_200E_206D_202A_200D_206F_200F_206F_206F_200E_206F_206E_202A_206C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1385548896), new object[1] { _206F_206A_200C_200F_202E_200B_202D_202B_206B_206B_200C_206B_206A_202C_206C_202C_202A_200C_200B_206D_202D_206D_206C_206F_202E_206B_206F_206E_206A_202E_202A_200D_202B_202E_202B_202A_202D_206A_202C_202B_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1087086507), _validators.Select((IQuestValidator x) => _003C_003Ec._206C_202D_206F_200B_200D_206B_200C_202C_206C_206B_206A_206F_200F_206E_202D_200D_200B_200F_200D_202C_200B_200D_206F_200F_206B_202C_202D_206A_206A_202C_206D_202D_206A_200F_206E_202B_202A_202E_200E_202E((MemberInfo)_003C_003Ec._200D_206B_206C_202D_202C_202D_202B_200D_200D_200F_202B_206F_206E_202C_206D_206E_206E_202E_200B_206B_202E_206B_206D_200C_200E_200D_202E_200D_202A_202B_206E_206C_200B_202E_206C_200E_202B_200E_202A_202C_202E((object)x)))) }); + _logger.LogDebug("Validators: {Validators}", string.Join(", ", _validators.Select((IQuestValidator x) => x.GetType().Name))); } public void Reset() { - IEnumerator<IQuestValidator> enumerator = _validators.GetEnumerator(); - try + foreach (IQuestValidator validator in _validators) { - int num = 1685273225; - while (true) - { - int num2 = num; - int num3 = 1685273225; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = (_206A_202E_200C_206B_200C_206E_200E_202E_200C_206A_202A_200F_200B_202B_202B_200F_202D_206F_206D_200C_206F_206E_206E_202C_202A_202A_202C_202B_202A_206F_202C_200E_206C_200E_200E_202B_206B_200B_202A_200F_202E((IEnumerator)enumerator) ? 1685273224 : 1685273226); - break; - case 1: - enumerator.Current.Reset(); - num = 1685273225; - break; - case 2: - num = 1685273225; - break; - case 3: - goto end_IL_0017; - } - continue; - end_IL_0017: - break; - } + validator.Reset(); } - finally + lock (_lock) { - int num = ((enumerator == null) ? 406334533 : 406334532); - while (true) - { - int num7 = num; - int num3 = 406334533; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_00ab; - case 1: - _202E_206B_200F_200C_202E_206D_202E_200C_206F_206E_200C_206F_200B_200C_206F_202C_200B_200C_202E_200D_202E_200E_200C_200F_200C_202B_206B_200B_202E_206A_206F_200C_206D_200F_206A_200D_202C_200C_202B_200C_202E((IDisposable)enumerator); - num = 406334533; - break; - case 2: - num = 406334532; - break; - } - continue; - end_IL_00ab: - break; - } - } - object obj = _lock; - bool flag = false; - try - { - _202E_206F_206F_202C_202A_202C_200C_202B_206F_200F_200E_202B_206B_206C_202E_206F_206A_202A_202C_200F_206D_202C_200C_202C_202A_206A_206C_202A_202B_200D_206E_202E_206F_202C_202B_206A_200C_206C_202E_200E_202E(obj, ref flag); _validationIssues = new List<ValidationIssue>(); } - finally - { - int num = ((!flag) ? 60446462 : 60446461); - while (true) - { - int num8 = num; - int num3 = 60446460; - int num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 0: - num = 60446461; - break; - case 2: - goto end_IL_0130; - case 1: - _206B_206D_200E_206A_206C_200E_200F_202E_200C_202E_202D_206D_200D_202C_202E_200D_200D_200C_202E_200B_200D_206E_202D_202B_202D_200E_206F_206E_202A_200F_206F_202C_206D_202E_206F_200D_200C_206A_206A_200F_202E(obj); - num = 60446462; - break; - } - continue; - end_IL_0130: - break; - } - } } public void AddValidationIssue(ValidationIssue issue) { - object obj = _lock; - bool flag = false; - try + lock (_lock) { - _202E_206F_206F_202C_202A_202C_200C_202B_206F_200F_200E_202B_206B_206C_202E_206F_206A_202A_202C_200F_206D_202C_200C_202C_202A_206A_206C_202A_202B_200D_206E_202E_206F_202C_202B_206A_200C_206C_202E_200E_202E(obj, ref flag); List<ValidationIssue> validationIssues = _validationIssues; int num = 1 + validationIssues.Count; List<ValidationIssue> list = new List<ValidationIssue>(num); @@ -734,480 +64,95 @@ internal sealed class QuestValidator span[num2] = issue; _validationIssues = list; } - finally - { - int num3 = ((!flag) ? (-1291483875) : (-1291483874)); - while (true) - { - int num4 = num3; - int num5 = -1291483873; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) - { - case 2: - goto end_IL_0098; - case 1: - _206B_206D_200E_206A_206C_200E_200F_202E_200C_202E_202D_206D_200D_202C_202E_200D_200D_200C_202E_200B_200D_206E_202D_202B_202D_200E_206F_206E_202A_200F_206F_202C_206D_202E_206F_200D_200C_206A_206A_200F_202E(obj); - num3 = -1291483875; - break; - case 0: - num3 = -1291483874; - break; - } - continue; - end_IL_0098: - break; - } - } } public void Validate(IEnumerable<Quest> quests) { - _202A_206F_200E_206E_202B_200C_206E_200E_200F_202D_200B_202A_202E_202E_206B_206E_200B_202E_202D_206A_200E_202A_200C_200E_202D_200B_202E_206B_206F_200F_200B_200E_206E_202E_206B_206B_202A_200F_202C_206A_202E(_206A_202C_202B_200E_206E_206C_200E_200D_206B_202E_206D_202B_202E_202D_206B_200C_202D_200C_202B_202D_200B_202C_200D_200F_200C_206C_200E_206C_206E_206C_206F_206B_202C_202B_200F_200C_202C_202C_200E_200F_202E(), (Action)([MethodImpl(MethodImplOptions.NoInlining)] () => + Task.Factory.StartNew(delegate { try { - object obj = _lock; - bool flag = false; List<ValidationIssue> validationIssues; - try + lock (_lock) { - _003C_003Ec__DisplayClass15_0._202A_202B_206E_206E_202E_202C_200E_202C_200B_200C_206A_206E_206A_206B_200C_206A_206B_202C_202B_200B_206F_202D_206B_200C_200F_206E_200C_200C_206F_206E_200F_202B_206F_206C_200F_202B_206E_206D_200D_200E_202E(obj, ref flag); validationIssues = _validationIssues; } - finally - { - int num = ((!flag) ? 1225999187 : 1225999186); - while (true) - { - int num2 = num; - int num3 = 1225999187; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1225999186; - break; - case 0: - goto end_IL_004f; - case 1: - _003C_003Ec__DisplayClass15_0._206C_200F_200F_206B_202C_206C_202C_206D_202A_200B_200F_206B_200C_202B_200C_206D_206D_202A_200D_202D_200B_202E_202C_206F_206C_200B_206F_206F_202D_206F_206A_202A_202C_206B_202E_200B_206F_206E_202D_200C_202E(obj); - num = 1225999187; - break; - } - continue; - end_IL_004f: - break; - } - } List<ValidationIssue> list = new List<ValidationIssue>(); Dictionary<EAlliedSociety, List<ElementId>> dictionary = new Dictionary<EAlliedSociety, List<ElementId>>(); - IEnumerator<Quest> enumerator = quests.GetEnumerator(); - try + foreach (Quest quest in quests) { - List<ElementId> value = default(List<ElementId>); - ValidationIssue current2 = default(ValidationIssue); - while (_003C_003Ec__DisplayClass15_0._206D_200D_206B_200D_206F_200B_200D_202D_206E_206D_206E_202D_206C_202A_200F_202D_200E_200D_202E_206A_206F_202E_200F_200D_200F_206A_200C_206A_202D_206A_200B_200B_206D_202C_206D_206F_202B_206C_206A_202E((IEnumerator)enumerator)) + foreach (IQuestValidator validator in _validators) { - Quest current = enumerator.Current; - IEnumerator<IQuestValidator> enumerator2 = _validators.GetEnumerator(); - try + foreach (ValidationIssue item in validator.Validate(quest)) { - while (_003C_003Ec__DisplayClass15_0._206D_200D_206B_200D_206F_200B_200D_202D_206E_206D_206E_202D_206C_202A_200F_202D_200E_200D_202E_206A_206F_202E_200F_200D_200F_206A_200C_206A_202D_206A_200B_200B_206D_202C_206D_206F_202B_206C_206A_202E((IEnumerator)enumerator2)) + if (item.Type == EIssueType.QuestDisabled && quest.Info.AlliedSociety != EAlliedSociety.None) { - IEnumerator<ValidationIssue> enumerator3 = enumerator2.Current.Validate(current).GetEnumerator(); - try + if (!dictionary.TryGetValue(quest.Info.AlliedSociety, out var value)) { - int num = 1611230640; - while (true) - { - int num5 = num; - int num3 = 1611230646; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 7: - value = new List<ElementId>(); - dictionary[current.Info.AlliedSociety] = value; - num = 1611230646; - break; - case 6: - num = (_003C_003Ec__DisplayClass15_0._206D_200D_206B_200D_206F_200B_200D_202D_206E_206D_206E_202D_206C_202A_200F_202D_200E_200D_202E_206A_206F_202E_200F_200D_200F_206A_200C_206A_202D_206A_200B_200B_206D_202C_206D_206F_202B_206C_206A_202E((IEnumerator)enumerator3) ? 1611230654 : 1611230647); - break; - case 8: - current2 = enumerator3.Current; - num = ((current2.Type != EIssueType.QuestDisabled) ? 1611230643 : 1611230644); - break; - case 3: - num = (dictionary.TryGetValue(current.Info.AlliedSociety, out value) ? 1611230646 : 1611230641); - break; - case 4: - num = 1611230640; - break; - case 0: - value.Add(current.Id); - num = 1611230640; - break; - case 5: - list.Add(current2); - num = 1611230640; - break; - case 2: - num = ((current.Info.AlliedSociety == EAlliedSociety.None) ? 1611230643 : 1611230645); - break; - case 1: - goto end_IL_00fa; - } - continue; - end_IL_00fa: - break; - } - } - finally - { - int num = ((enumerator3 == null) ? (-781546946) : (-781546945)); - while (true) - { - int num8 = num; - int num3 = -781546946; - int num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_0272; - case 1: - _003C_003Ec__DisplayClass15_0._200F_206B_206B_202E_202B_206F_206A_200C_202D_200F_200E_202C_202A_206B_206C_202C_202C_202D_206C_200D_206A_206C_200D_202E_200C_206C_202A_206C_206D_206A_200B_206C_200B_202E_206F_206F_200F_202E_200C_206D_202E((IDisposable)enumerator3); - num = -781546946; - break; - case 2: - num = -781546945; - break; - } - continue; - end_IL_0272: - break; - } + value = new List<ElementId>(); + dictionary[quest.Info.AlliedSociety] = value; } + value.Add(quest.Id); + } + else + { + list.Add(item); } } - finally - { - int num = ((enumerator2 == null) ? 1631067796 : 1631067797); - while (true) - { - int num9 = num; - int num3 = 1631067796; - int num4 = num9; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1631067797; - break; - case 0: - goto end_IL_02ee; - case 1: - _003C_003Ec__DisplayClass15_0._200F_206B_206B_202E_202B_206F_206A_200C_202D_200F_200E_202C_202A_206B_206C_202C_202C_202D_206C_200D_206A_206C_200D_202E_200C_206C_202A_206C_206D_206A_200B_206C_200B_202E_206F_206F_200F_202E_200C_206D_202E((IDisposable)enumerator2); - num = 1631067796; - break; - } - continue; - end_IL_02ee: - break; - } - } - } - } - finally - { - int num = ((enumerator == null) ? (-989991724) : (-989991723)); - while (true) - { - int num10 = num; - int num3 = -989991724; - int num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -989991723; - break; - case 0: - goto end_IL_036a; - case 1: - _003C_003Ec__DisplayClass15_0._200F_206B_206B_202E_202B_206F_206A_200C_202D_200F_200E_202C_202A_206B_206C_202C_202C_202D_206C_200D_206A_206C_200D_202E_200C_206C_202A_206C_206D_206A_200B_206C_200B_202E_206F_206F_200F_202E_200C_206D_202E((IDisposable)enumerator); - num = -989991724; - break; - } - continue; - end_IL_036a: - break; } } List<string> disabledQuests = (from x in list where x.Type == EIssueType.QuestDisabled select x.Id).ToList(); - List<ValidationIssue> list2 = (from x in validationIssues.Concat(list.Where(delegate(ValidationIssue x) - { - int num15 = ((!disabledQuests.Contains(x.Id)) ? 1289967941 : 1289967942); - while (true) - { - int num16 = num15; - int num17 = 1289967940; - int num18 = num16; - switch ((num18 | num17) - (num18 & num17)) - { - case 0: - goto IL_0051; - case 1: - return true; - case 2: - return x.Type == EIssueType.QuestDisabled; - } - continue; - IL_0051: - num15 = 1289967942; - } - })).Concat(DisabledTribesAsIssues(dictionary)) + List<ValidationIssue> list2 = (from x in validationIssues.Concat(list.Where((ValidationIssue x) => !disabledQuests.Contains(x.Id) || x.Type == EIssueType.QuestDisabled)).Concat(DisabledTribesAsIssues(dictionary)) orderby x.PathType, x.Id, x.Location, x.Description select x).ToList(); - obj = _lock; - flag = false; - try + lock (_lock) { - _003C_003Ec__DisplayClass15_0._202A_202B_206E_206E_202E_202C_200E_202C_200B_200C_206A_206E_206A_206B_200C_206A_206B_202C_202B_200B_206F_202D_206B_200C_200F_206E_200C_200C_206F_206E_200F_202B_206F_206C_200F_202B_206E_206D_200D_200E_202E(obj, ref flag); - int num = ((_validationIssues.Count <= validationIssues.Count) ? (-500434587) : (-500434588)); - while (true) + if (_validationIssues.Count > validationIssues.Count) { - int num11 = num; - int num3 = -500434587; - int num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) - { - case 2: - num = -500434588; - break; - case 1: - list2.AddRange(_validationIssues.Skip(validationIssues.Count)); - num = -500434587; - break; - case 0: - _validationIssues = list2; - return; - } - } - } - finally - { - int num = ((!flag) ? (-2020487653) : (-2020487654)); - while (true) - { - int num14 = num; - int num3 = -2020487653; - int num4 = num14; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -2020487654; - break; - case 0: - goto end_IL_05b6; - case 1: - _003C_003Ec__DisplayClass15_0._206C_200F_200F_206B_202C_206C_202C_206D_202A_200B_200F_206B_200C_202B_200C_206D_206D_202A_200D_202D_200B_202E_202C_206F_206C_200B_206F_206F_202D_206F_206A_202A_202C_206B_202E_200B_206F_206E_202D_200C_202E(obj); - num = -2020487653; - break; - } - continue; - end_IL_05b6: - break; + list2.AddRange(_validationIssues.Skip(validationIssues.Count)); } + _validationIssues = list2; } } - catch (Exception ex) + catch (Exception exception) { - _003C_003Ec__DisplayClass15_0._202E_202D_200E_200B_202D_200C_202C_202D_202E_206B_206A_202A_206C_202A_200B_200C_202B_200B_200C_200F_200E_206E_202B_206C_206D_206F_202D_202C_202B_202A_200E_206A_200B_202B_202B_200D_200F_202E_202A_206C_202E((ILogger)_logger, ex, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(479815651), Array.Empty<object>()); + _logger.LogError(exception, "Unable to validate quests"); } - }), CancellationToken.None, TaskCreationOptions.LongRunning, _202A_206A_206B_202C_206F_202D_202D_206A_206D_206C_206A_200E_202D_206F_206C_200E_200E_206E_200E_206E_202B_200D_200F_202A_200E_202E_206B_200E_202B_206E_206F_200D_200E_206A_200F_200B_206B_202E_202C_202E_202E()); + }, CancellationToken.None, TaskCreationOptions.LongRunning, TaskScheduler.Default); } public List<ValidationIssue> GetIssues(EPathType pathType, string id) { - return _validationIssues.Where(delegate(ValidationIssue x) - { - int num = ((x.PathType != pathType) ? (-1283237086) : (-1283237087)); - while (true) - { - int num2 = num; - int num3 = -1283237085; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004c; - case 2: - return _003C_003Ec__DisplayClass16_0._200B_206C_206C_202B_206D_206F_206B_202D_202D_206B_200F_206C_202E_200E_206C_206A_206C_200E_202C_200C_200D_202A_206E_200B_206E_206F_206C_202A_206C_202A_206D_200F_206B_202A_200B_202E_200E_206F_200D_200D_202E(x.Id, id); - case 1: - return false; - } - continue; - IL_004c: - num = -1283237087; - } - }).ToList(); + return _validationIssues.Where((ValidationIssue x) => x.PathType == pathType && x.Id == id).ToList(); } private static IEnumerable<ValidationIssue> DisabledTribesAsIssues(Dictionary<EAlliedSociety, List<ElementId>> disabledTribeQuests) { - return disabledTribeQuests.OrderBy<KeyValuePair<EAlliedSociety, List<ElementId>>, EAlliedSociety>((KeyValuePair<EAlliedSociety, List<ElementId>> x) => x.Key).Select([MethodImpl(MethodImplOptions.NoInlining)] (KeyValuePair<EAlliedSociety, List<ElementId>> x) => + return disabledTribeQuests.OrderBy<KeyValuePair<EAlliedSociety, List<ElementId>>, EAlliedSociety>((KeyValuePair<EAlliedSociety, List<ElementId>> x) => x.Key).Select(delegate(KeyValuePair<EAlliedSociety, List<ElementId>> x) { - int num = ((x.Value.Count > 0) ? 617142778 : 617142779); - string text; - while (true) - { - int num2 = num; - int num3 = 617142778; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 2: - goto IL_0050; - case 1: - text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1756725644); - break; - case 0: - text = _003C_003Ec._202C_202E_206B_200F_202C_206C_200D_206F_206D_202B_206F_206F_202D_206D_200D_200D_202A_206A_206A_202B_200C_200B_206D_202A_200B_200E_202E_206A_200E_200E_200C_206F_206B_206D_206C_206A_206B_202A_200C_202E_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1095822044), x.Value.Select((ElementId id) => _003C_003Ec._206B_202B_202A_202E_206B_200B_202A_200D_200D_200E_202E_200D_202B_206C_200B_200F_206F_202A_202B_206C_200D_202B_206A_202A_206D_206E_200E_200D_200D_202A_202C_206A_206D_200C_200C_206A_202A_206C_202B_206D_202E((object)id))); - break; - } - break; - IL_0050: - num = 617142779; - } - string value = text; - ValidationIssue obj = new ValidationIssue + string value = ((x.Value.Count > 0) ? string.Join(", ", x.Value.Select((ElementId id) => id.ToString())) : "(none)"); + return new ValidationIssue { PathType = EPathType.Quest, Id = null, Location = null, Type = EIssueType.QuestDisabled, - Severity = EIssueSeverity.None + Severity = EIssueSeverity.None, + Description = $"[{x.Key}] {x.Value.Count} disabled {((x.Value.Count == 1) ? "quest" : "quests")}: {value}" }; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(15, 4); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1463938997)); - defaultInterpolatedStringHandler.AppendFormatted(x.Key); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-900750902)); - defaultInterpolatedStringHandler.AppendFormatted(x.Value.Count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-92874207)); - defaultInterpolatedStringHandler.AppendFormatted((x.Value.Count == 1) ? global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(308044519) : global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1238320320)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-437343681)); - defaultInterpolatedStringHandler.AppendFormatted(value); - obj.Description = defaultInterpolatedStringHandler.ToStringAndClear(); - return obj; }); } public List<ValidationIssue> ValidateQuestSync(Quest quest) { List<ValidationIssue> list = new List<ValidationIssue>(); - IEnumerator<IQuestValidator> enumerator = _validators.GetEnumerator(); - try + foreach (IQuestValidator validator in _validators) { - while (_206A_202E_200C_206B_200C_206E_200E_202E_200C_206A_202A_200F_200B_202B_202B_200F_202D_206F_206D_200C_206F_206E_206E_202C_202A_202A_202C_202B_202A_206F_202C_200E_206C_200E_200E_202B_206B_200B_202A_200F_202E((IEnumerator)enumerator)) + foreach (ValidationIssue item in (validator is JsonSchemaValidator jsonSchemaValidator) ? jsonSchemaValidator.ValidateFromQuestRoot(quest) : validator.Validate(quest)) { - IQuestValidator current = enumerator.Current; - IEnumerator<ValidationIssue> enumerator2 = ((current is JsonSchemaValidator jsonSchemaValidator) ? jsonSchemaValidator.ValidateFromQuestRoot(quest) : current.Validate(quest)).GetEnumerator(); - try - { - int num = -2015401757; - while (true) - { - int num2 = num; - int num3 = -2015401758; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - num = (_206A_202E_200C_206B_200C_206E_200E_202E_200C_206A_202A_200F_200B_202B_202B_200F_202D_206F_206D_200C_206F_206E_206E_202C_202A_202A_202C_202B_202A_206F_202C_200E_206C_200E_200E_202B_206B_200B_202A_200F_202E((IEnumerator)enumerator2) ? (-2015401759) : (-2015401760)); - break; - case 3: - { - ValidationIssue current2 = enumerator2.Current; - list.Add(current2); - num = -2015401757; - break; - } - case 0: - num = -2015401757; - break; - case 2: - goto end_IL_0051; - } - continue; - end_IL_0051: - break; - } - } - finally - { - int num = ((enumerator2 == null) ? (-2066314669) : (-2066314672)); - while (true) - { - int num7 = num; - int num3 = -2066314671; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - num = -2066314672; - break; - case 2: - goto end_IL_00f4; - case 1: - _202E_206B_200F_200C_202E_206D_202E_200C_206F_206E_200C_206F_200B_200C_206F_202C_200B_200C_202E_200D_202E_200E_200C_200F_200C_202B_206B_200B_202E_206A_206F_200C_206D_200F_206A_200D_202C_200C_202B_200C_202E((IDisposable)enumerator2); - num = -2066314669; - break; - } - continue; - end_IL_00f4: - break; - } - } - } - } - finally - { - int num = ((enumerator == null) ? 1410166863 : 1410166862); - while (true) - { - int num10 = num; - int num3 = 1410166863; - int num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 2: - num = 1410166862; - break; - case 0: - goto end_IL_0170; - case 1: - _202E_206B_200F_200C_202E_206D_202E_200C_206F_206E_200C_206F_200B_200C_206F_202C_200B_200C_202E_200D_202E_200E_200C_200F_200C_202B_206B_200B_202E_206A_206F_200C_206D_200F_206A_200D_202C_200C_202B_200C_202E((IDisposable)enumerator); - num = 1410166863; - break; - } - continue; - end_IL_0170: - break; + list.Add(item); } } return (from x in list @@ -1218,114 +163,20 @@ internal sealed class QuestValidator public List<ValidationIssue> ValidateSchemaSync(ElementId questId, QuestRoot questRoot) { JsonSchemaValidator jsonSchemaValidator = _validators.OfType<JsonSchemaValidator>().FirstOrDefault(); - int num = ((jsonSchemaValidator != null) ? (-1128231448) : (-1128231445)); - while (true) + if (jsonSchemaValidator == null) { - int num2 = num; - int num3 = -1128231446; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0054; - case 1: - return new List<ValidationIssue>(); - case 2: - return (from x in jsonSchemaValidator.ValidateFromQuestRoot(questId, questRoot) - orderby x.Sequence, x.Step, x.Description - select x).ToList(); - } - continue; - IL_0054: - num = -1128231445; + return new List<ValidationIssue>(); } + return (from x in jsonSchemaValidator.ValidateFromQuestRoot(questId, questRoot) + orderby x.Sequence, x.Step, x.Description + select x).ToList(); } public void ClearIssuesForQuest(ElementId questId) { - object obj = _lock; - bool flag = false; - try + lock (_lock) { - _202E_206F_206F_202C_202A_202C_200C_202B_206F_200F_200E_202B_206B_206C_202E_206F_206A_202A_202C_200F_206D_202C_200C_202C_202A_206A_206C_202A_202B_200D_206E_202E_206F_202C_202B_206A_200C_206C_202E_200E_202E(obj, ref flag); - _validationIssues = _validationIssues.Where((ValidationIssue issue) => _003C_003Ec__DisplayClass20_0._206A_200D_202E_200E_206C_202D_202D_206C_206E_200F_200C_202B_206A_200B_202D_206E_200B_200C_202C_206C_200B_202B_206C_206A_206F_206F_202E_206D_206B_206F_202E_206B_200B_202B_202B_206A_206D_206B_202D_206D_202E(issue.ElementId, questId)).ToList(); + _validationIssues = _validationIssues.Where((ValidationIssue issue) => issue.ElementId != questId).ToList(); } - finally - { - int num = ((!flag) ? (-1140950457) : (-1140950460)); - while (true) - { - int num2 = num; - int num3 = -1140950459; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1140950460; - break; - case 2: - goto end_IL_0061; - case 1: - _206B_206D_200E_206A_206C_200E_200F_202E_200C_202E_202D_206D_200D_202C_202E_200D_200D_200C_202E_200B_200D_206E_202D_202B_202D_200E_206F_206E_202A_200F_206F_202C_206D_202E_206F_200D_200C_206A_206A_200F_202E(obj); - num = -1140950457; - break; - } - continue; - end_IL_0061: - break; - } - } - } - - static object _202E_200F_202B_200E_206A_202E_206D_202A_206E_200F_202B_206E_202E_206D_202C_206B_206F_206A_206A_206A_206F_200D_206A_202C_200D_200D_200F_200C_206B_200E_200B_200E_200B_206E_200B_200C_206D_206E_206B_202A_202E() - { - return new object(); - } - - static string _206F_206A_200C_200F_202E_200B_202D_202B_206B_206B_200C_206B_206A_202C_206C_202C_202A_200C_200B_206D_202D_206D_206C_206F_202E_206B_206F_206E_206A_202E_202A_200D_202B_202E_202B_202A_202D_206A_202C_202B_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); - } - - static void _202D_200B_202D_206E_206B_202D_200E_200F_206C_206F_202B_200C_206A_206D_202A_202E_202B_200F_202C_202C_206C_200B_200D_202E_206F_200E_206C_200E_206D_202A_200D_206F_200F_206F_206F_200E_206F_206E_202A_206C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _206A_202E_200C_206B_200C_206E_200E_202E_200C_206A_202A_200F_200B_202B_202B_200F_202D_206F_206D_200C_206F_206E_206E_202C_202A_202A_202C_202B_202A_206F_202C_200E_206C_200E_200E_202B_206B_200B_202A_200F_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202E_206B_200F_200C_202E_206D_202E_200C_206F_206E_200C_206F_200B_200C_206F_202C_200B_200C_202E_200D_202E_200E_200C_200F_200C_202B_206B_200B_202E_206A_206F_200C_206D_200F_206A_200D_202C_200C_202B_200C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _202E_206F_206F_202C_202A_202C_200C_202B_206F_200F_200E_202B_206B_206C_202E_206F_206A_202A_202C_200F_206D_202C_200C_202C_202A_206A_206C_202A_202B_200D_206E_202E_206F_202C_202B_206A_200C_206C_202E_200E_202E(object P_0, ref bool P_1) - { - Monitor.Enter(P_0, ref P_1); - } - - static void _206B_206D_200E_206A_206C_200E_200F_202E_200C_202E_202D_206D_200D_202C_202E_200D_200D_200C_202E_200B_200D_206E_202D_202B_202D_200E_206F_206E_202A_200F_206F_202C_206D_202E_206F_200D_200C_206A_206A_200F_202E(object P_0) - { - Monitor.Exit(P_0); - } - - static TaskFactory _206A_202C_202B_200E_206E_206C_200E_200D_206B_202E_206D_202B_202E_202D_206B_200C_202D_200C_202B_202D_200B_202C_200D_200F_200C_206C_200E_206C_206E_206C_206F_206B_202C_202B_200F_200C_202C_202C_200E_200F_202E() - { - return Task.Factory; - } - - static TaskScheduler _202A_206A_206B_202C_206F_202D_202D_206A_206D_206C_206A_200E_202D_206F_206C_200E_200E_206E_200E_206E_202B_200D_200F_202A_200E_202E_206B_200E_202B_206E_206F_200D_200E_206A_200F_200B_206B_202E_202C_202E_202E() - { - return TaskScheduler.Default; - } - - static Task _202A_206F_200E_206E_202B_200C_206E_200E_200F_202D_200B_202A_202E_202E_206B_206E_200B_202E_202D_206A_200E_202A_200C_200E_202D_200B_202E_206B_206F_200F_200B_200E_206E_202E_206B_206B_202A_200F_202C_206A_202E(TaskFactory P_0, Action P_1, CancellationToken P_2, TaskCreationOptions P_3, TaskScheduler P_4) - { - return P_0.StartNew(P_1, P_2, P_3, P_4); } } diff --git a/Questionable/Questionable.Validation/SchemaRegistrar.cs b/Questionable/Questionable.Validation/SchemaRegistrar.cs index 3cfc5f5..97d8a1b 100644 --- a/Questionable/Questionable.Validation/SchemaRegistrar.cs +++ b/Questionable/Questionable.Validation/SchemaRegistrar.cs @@ -1,12 +1,8 @@ using System; -using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; -using System.Runtime.CompilerServices; -using System.Text.Json; -using System.Threading; using Json.Schema; using Questionable.FatePaths; using Questionable.GatheringPaths; @@ -18,301 +14,63 @@ namespace Questionable.Validation; internal sealed class SchemaRegistrar { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - internal Stream _003C_002Ecctor_003Eb__11_0() - { - return _200B_200D_202E_206C_202D_200F_202C_202D_202E_206E_200E_202B_200C_200D_206D_202C_200D_200C_202B_206B_202B_202A_206F_200C_202B_200D_202B_206D_200E_206D_202C_200F_200D_202A_206D_206D_206A_200C_206A_206F_202E(); - } - - internal Stream _003C_002Ecctor_003Eb__11_1() - { - return _202E_200E_202E_202C_200F_202C_200B_206F_206D_206A_202B_206D_200D_202D_206A_206A_200E_206B_200C_206B_206C_206C_202E_206B_202C_202C_202E_206F_202B_200D_200E_206C_200B_202B_206D_206E_200B_202D_200E_206B_202E(); - } - - internal Stream _003C_002Ecctor_003Eb__11_2() - { - return _200E_206E_206B_200E_206C_202B_200F_200B_206A_200F_202D_202E_200C_200F_202C_206B_206D_202A_202A_202C_206B_206D_200C_202A_202D_200B_200C_200D_206A_206D_202B_202D_202E_200D_200C_200D_200E_202B_206B_200C_202E(); - } - - internal Stream _003C_002Ecctor_003Eb__11_3() - { - return _200E_200F_206E_206F_206C_206C_206A_200D_206C_206F_202B_206A_206E_200C_206C_200B_200E_202D_200D_202B_206B_200D_200B_206C_200B_206A_200F_200B_200F_200D_206C_202B_200E_206A_202B_206F_206A_200B_206D_200E_202E(); - } - - internal Stream _003C_002Ecctor_003Eb__11_4() - { - return _202E_200E_206A_206D_200D_202E_200F_202B_200E_206C_206E_206F_202E_200C_202B_200B_206A_202A_202B_200D_200D_202B_206C_202D_200D_206C_206A_202E_206D_200D_200B_200D_206E_200B_200C_200E_206B_200F_206A_206A_202E(); - } - - internal Stream _003C_002Ecctor_003Eb__11_5() - { - return _200F_202D_206E_200E_206C_206A_202D_200D_200E_202D_200F_206D_206B_200E_202A_206C_206F_200D_206C_206F_202A_200B_206F_206F_202E_200C_206B_202B_206F_202C_202B_206E_200D_200E_202C_206F_200C_206E_200F_202E(); - } - - internal Stream _003C_002Ecctor_003Eb__11_6() - { - return _206F_202C_202C_206A_200C_200B_206D_202C_206A_206E_200D_206B_206E_202E_200B_206B_200D_200B_200B_202A_200B_206D_206D_202D_202B_202D_200E_202B_206B_206A_202E_202E_206B_202E_206B_200B_206F_202D_202D_200D_202E(); - } - - internal Stream _003C_002Ecctor_003Eb__11_7() - { - return _202A_202B_202B_206D_202E_200D_202C_202D_206A_206F_206F_206C_200D_202D_200E_206A_200F_202E_200B_202C_202C_206C_200B_206A_206D_206A_206D_202A_206B_200C_202C_206E_206E_200B_206F_202D_200E_202E_206B_200C_202E(); - } - - internal Stream _003C_002Ecctor_003Eb__11_8() - { - return _206A_200D_202B_206C_200F_200C_202A_200C_200F_200F_206B_206B_202E_202D_206D_206B_206C_202B_200E_206C_206B_206F_200C_202C_200D_200D_200F_200C_202E_206C_206E_206E_200C_202B_206B_202A_200E_200C_206C_200D_202E(); - } - - internal Stream _003C_002Ecctor_003Eb__11_9() - { - return _202A_206D_206B_202A_200B_206E_206F_206C_202C_200E_202B_202E_206A_202A_202C_202B_206C_206D_200B_202D_206D_200E_202C_202E_202A_206E_200F_200F_202B_200C_200F_206B_206A_202A_206D_202E_206E_206D_206D_202A_202E(); - } - - static Stream _200B_200D_202E_206C_202D_200F_202C_202D_202E_206E_200E_202B_200C_200D_206D_202C_200D_200C_202B_206B_202B_202A_206F_200C_202B_200D_202B_206D_200E_206D_202C_200F_200D_202A_206D_206D_206A_200C_206A_206F_202E() - { - return AssemblyModelLoader.CommonAethernetShard; - } - - static Stream _202E_200E_202E_202C_200F_202C_200B_206F_206D_206A_202B_206D_200D_202D_206A_206A_200E_206B_200C_206B_206C_206C_202E_206B_202C_202C_202E_206F_202B_200D_200E_206C_200B_202B_206D_206E_200B_202D_200E_206B_202E() - { - return AssemblyModelLoader.CommonAetheryte; - } - - static Stream _200E_206E_206B_200E_206C_202B_200F_200B_206A_200F_202D_202E_200C_200F_202C_206B_206D_202A_202A_202C_206B_206D_200C_202A_202D_200B_200C_200D_206A_206D_202B_202D_202E_200D_200C_200D_200E_202B_206B_200C_202E() - { - return AssemblyModelLoader.CommonClassJob; - } - - static Stream _200E_200F_206E_206F_206C_206C_206A_200D_206C_206F_202B_206A_206E_200C_206C_200B_200E_202D_200D_202B_206B_200D_200B_206C_200B_206A_200F_200B_200F_200D_206C_202B_200E_206A_202B_206F_206A_200B_206D_200E_202E() - { - return AssemblyModelLoader.CommonCompletionFlags; - } - - static Stream _202E_200E_206A_206D_200D_202E_200F_202B_200E_206C_206E_206F_202E_200C_202B_200B_206A_202A_202B_200D_200D_202B_206C_202D_200D_206C_206A_202E_206D_200D_200B_200D_206E_200B_200C_200E_206B_200F_206A_206A_202E() - { - return AssemblyModelLoader.CommonRequiredVariables; - } - - static Stream _200F_202D_206E_200E_206C_206A_202D_200D_200E_202D_200F_206D_206B_200E_202A_206C_206F_200D_206C_206F_202A_200B_206F_206F_202E_200C_206B_202B_206F_202C_202B_206E_200D_200E_202C_206F_200C_206E_200F_202E() - { - return AssemblyModelLoader.CommonVector3; - } - - static Stream _206F_202C_202C_206A_200C_200B_206D_202C_206A_206E_200D_206B_206E_202E_200B_206B_200D_200B_200B_202A_200B_206D_206D_202D_202B_202D_200E_202B_206B_206A_202E_202E_206B_202E_206B_200B_206F_202D_202D_200D_202E() - { - return AssemblyQuestLoader.QuestSchema; - } - - static Stream _202A_202B_202B_206D_202E_200D_202C_202D_206A_206F_206F_206C_200D_202D_200E_206A_200F_202E_200B_202C_202C_206C_200B_206A_206D_206A_206D_202A_206B_200C_202C_206E_206E_200B_206F_202D_200E_202E_206B_200C_202E() - { - return AssemblyFateDefinitionLoader.FateDefinitionSchema; - } - - static Stream _206A_200D_202B_206C_200F_200C_202A_200C_200F_200F_206B_206B_202E_202D_206D_206B_206C_202B_200E_206C_206B_206F_200C_202C_200D_200D_200F_200C_202E_206C_206E_206E_200C_202B_206B_202A_200E_200C_206C_200D_202E() - { - return AssemblyGatheringLocationLoader.GatheringSchema; - } - - static Stream _202A_206D_206B_202A_200B_206E_206F_206C_202C_200E_202B_202E_206A_202A_202C_202B_206C_206D_200B_202D_206D_200E_202C_202E_202A_206E_200F_200F_202B_200C_200F_206B_206A_202A_206D_202E_206E_206D_206D_202A_202E() - { - return AssemblySeasonalDutyDefinitionLoader.SeasonalDutyDefinitionSchema; - } - } - private const string BaseUri = "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main"; private static readonly IReadOnlyList<(string FileName, string Uri, Func<Stream> Embedded)> Catalog = new global::_003C_003Ez__ReadOnlyArray<(string, string, Func<Stream>)>(new(string, string, Func<Stream>)[10] { - (global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1093119060), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-497867105), () => _003C_003Ec._200B_200D_202E_206C_202D_200F_202C_202D_202E_206E_200E_202B_200C_200D_206D_202C_200D_200C_202B_206B_202B_202A_206F_200C_202B_200D_202B_206D_200E_206D_202C_200F_200D_202A_206D_206D_206A_200C_206A_206F_202E()), - (global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(353651176), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(777288952), () => _003C_003Ec._202E_200E_202E_202C_200F_202C_200B_206F_206D_206A_202B_206D_200D_202D_206A_206A_200E_206B_200C_206B_206C_206C_202E_206B_202C_202C_202E_206F_202B_200D_200E_206C_200B_202B_206D_206E_200B_202D_200E_206B_202E()), - (global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1103717215), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1830782875), () => _003C_003Ec._200E_206E_206B_200E_206C_202B_200F_200B_206A_200F_202D_202E_200C_200F_202C_206B_206D_202A_202A_202C_206B_206D_200C_202A_202D_200B_200C_200D_206A_206D_202B_202D_202E_200D_200C_200D_200E_202B_206B_200C_202E()), - (global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1415134531), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1951929540), () => _003C_003Ec._200E_200F_206E_206F_206C_206C_206A_200D_206C_206F_202B_206A_206E_200C_206C_200B_200E_202D_200D_202B_206B_200D_200B_206C_200B_206A_200F_200B_200F_200D_206C_202B_200E_206A_202B_206F_206A_200B_206D_200E_202E()), - (global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1019495771), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-447741346), () => _003C_003Ec._202E_200E_206A_206D_200D_202E_200F_202B_200E_206C_206E_206F_202E_200C_202B_200B_206A_202A_202B_200D_200D_202B_206C_202D_200D_206C_206A_202E_206D_200D_200B_200D_206E_200B_200C_200E_206B_200F_206A_206A_202E()), - (global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(718531665), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2134115304), () => _003C_003Ec._200F_202D_206E_200E_206C_206A_202D_200D_200E_202D_200F_206D_206B_200E_202A_206C_206F_200D_206C_206F_202A_200B_206F_206F_202E_200C_206B_202B_206F_202C_202B_206E_200D_200E_202C_206F_200C_206E_200F_202E()), - (global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1170233154), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(751310152), () => _003C_003Ec._206F_202C_202C_206A_200C_200B_206D_202C_206A_206E_200D_206B_206E_202E_200B_206B_200D_200B_200B_202A_200B_206D_206D_202D_202B_202D_200E_202B_206B_206A_202E_202E_206B_202E_206B_200B_206F_202D_202D_200D_202E()), - (global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1110860710), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1343581202), () => _003C_003Ec._202A_202B_202B_206D_202E_200D_202C_202D_206A_206F_206F_206C_200D_202D_200E_206A_200F_202E_200B_202C_202C_206C_200B_206A_206D_206A_206D_202A_206B_200C_202C_206E_206E_200B_206F_202D_200E_202E_206B_200C_202E()), - (global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(767306491), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(567108451), () => _003C_003Ec._206A_200D_202B_206C_200F_200C_202A_200C_200F_200F_206B_206B_202E_202D_206D_206B_206C_202B_200E_206C_206B_206F_200C_202C_200D_200D_200F_200C_202E_206C_206E_206E_200C_202B_206B_202A_200E_200C_206C_200D_202E()), - (global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(874920765), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-912722245), () => _003C_003Ec._202A_206D_206B_202A_200B_206E_206F_206C_202C_200E_202B_202E_206A_202A_202C_202B_206C_206D_200B_202D_206D_200E_202C_202E_202A_206E_200F_200F_202B_200C_200F_206B_206A_202A_206D_202E_206E_206D_206D_202A_202E()) + ("common-aethernetshard.json", "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-aethernetshard.json", () => AssemblyModelLoader.CommonAethernetShard), + ("common-aetheryte.json", "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-aetheryte.json", () => AssemblyModelLoader.CommonAetheryte), + ("common-classjob.json", "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-classjob.json", () => AssemblyModelLoader.CommonClassJob), + ("common-completionflags.json", "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-completionflags.json", () => AssemblyModelLoader.CommonCompletionFlags), + ("common-requiredvariables.json", "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-requiredvariables.json", () => AssemblyModelLoader.CommonRequiredVariables), + ("common-vector3.json", "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-vector3.json", () => AssemblyModelLoader.CommonVector3), + ("quest-v1.json", "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/QuestPaths/quest-v1.json", () => AssemblyQuestLoader.QuestSchema), + ("fatedefinition-v1.json", "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/FatePaths/fatedefinition-v1.json", () => AssemblyFateDefinitionLoader.FateDefinitionSchema), + ("gatheringlocation-v1.json", "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/GatheringPaths/gatheringlocation-v1.json", () => AssemblyGatheringLocationLoader.GatheringSchema), + ("seasonaldutydefinition-v1.json", "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/SeasonalDutyPaths/seasonaldutydefinition-v1.json", () => AssemblySeasonalDutyDefinitionLoader.SeasonalDutyDefinitionSchema) }); - private readonly SchemaRegistry _registry = _206D_202B_206D_206B_206D_206B_202D_206B_200E_202D_202C_206C_206D_206E_202A_200B_202D_206C_206E_202A_206A_202B_202E_206B_200D_202B_206B_206D_200B_206F_202E_202E_202A_206E_200B_202E_206F_206C_200C_202D_202E(); + private readonly SchemaRegistry _registry = new SchemaRegistry(); private readonly Dictionary<string, JsonSchema> _schemas = new Dictionary<string, JsonSchema>(); - private readonly object _lock = _206C_200B_206B_202D_202E_202D_206E_200E_202C_206E_200D_200E_202B_202D_200B_200C_206B_202B_206F_202D_200F_206E_200C_206C_200D_200B_206E_206C_200D_200D_200B_200E_202A_206A_206D_202B_206A_202E_206A_200E_202E(); + private readonly object _lock = new object(); private bool _built; public void EnsureBuilt() { - int num = ((!_built) ? (-755659506) : (-755659507)); - while (true) + if (_built) { - int num2 = num; - int num3 = -755659505; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return; + } + lock (_lock) + { + if (_built) { - case 0: - goto IL_004f; - case 2: return; - case 1: + } + BuildOptions buildOptions = new BuildOptions { - object obj = _lock; - bool flag = false; - try - { - _202C_206C_200C_200F_200C_206D_202D_200E_206A_206B_200C_206A_202D_202C_206E_206E_200D_202C_202E_200C_206F_202E_200F_202C_206E_200B_206E_200D_206C_202E_200E_206A_200C_206B_206C_206F_202B_206B_206A_200C_202E(obj, ref flag); - num = ((!_built) ? (-466349832) : (-466349831)); - while (true) - { - int num5 = num; - num3 = -466349832; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 2: - goto IL_00be; - case 1: - return; - case 0: - { - BuildOptions buildOptions = _202A_206E_200E_206E_202D_200D_202E_200D_202C_202C_206C_200B_202A_206A_200B_200C_206C_200F_202A_200B_200B_200B_206D_202D_206E_200D_206E_206E_206F_202C_200D_202B_202E_202C_206E_206F_206D_206A_200D_202A_202E(); - _202A_206C_200F_200B_200E_202E_206C_206B_200D_200F_206B_202E_202A_200E_202C_202E_206C_202B_206B_202A_206C_206F_200F_202E_202D_202C_202E_200E_200C_202E_206C_206A_206D_202A_206E_202B_200D_206E_202D_200C_202E(buildOptions, _registry); - BuildOptions buildOptions2 = buildOptions; - DirectoryInfo projectRoot = FindProjectRoot(); - IEnumerator<(string, string, Func<Stream>)> enumerator = Catalog.GetEnumerator(); - try - { - num = 333964218; - while (true) - { - int num8 = num; - num3 = 333964217; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 333964218; - break; - case 3: - num = (_200D_202A_202E_206C_206F_206D_202D_200C_202A_206F_206B_202C_206C_202B_206C_202C_206F_202C_200B_200D_200E_206F_200C_200D_206C_206B_200D_202D_200B_200D_206B_200D_202B_206D_206D_206F_206D_206C_206D_202B_202E((IEnumerator)enumerator) ? 333964216 : 333964217); - break; - case 1: - var (fileName, key, embedded) = enumerator.Current; - _schemas[key] = Build(fileName, embedded, projectRoot, buildOptions2); - num = 333964218; - break; - case 0: - goto end_IL_010b; - } - continue; - end_IL_010b: - break; - } - } - finally - { - num = ((enumerator == null) ? 1298249544 : 1298249547); - while (true) - { - int num9 = num; - num3 = 1298249545; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 1: - goto end_IL_01d1; - case 2: - _206C_206D_202A_200D_200D_202C_200C_202B_206E_206C_206D_206D_206E_202E_206C_206F_206C_202B_200B_206F_202E_200E_200B_206D_206D_206C_200D_206F_202E_200F_202D_200B_200B_202B_200E_202A_206B_202D_200F_202B_202E((IDisposable)enumerator); - num = 1298249544; - break; - case 0: - num = 1298249547; - break; - } - continue; - end_IL_01d1: - break; - } - } - _built = true; - return; - } - } - continue; - IL_00be: - num = -466349831; - } - } - finally - { - num = ((!flag) ? 942948134 : 942948133); - while (true) - { - int num12 = num; - num3 = 942948135; - num4 = num12; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 942948133; - break; - case 2: - _200B_200F_206E_200D_202A_200C_200B_202D_206C_206F_202C_206E_202A_206E_202D_202E_202E_202B_206D_202B_202C_206F_206E_206F_202B_206E_202B_200C_200D_206B_206F_206E_202E_206B_206B_202E_202A_206E_200D_206A_202E(obj); - num = 942948134; - break; - case 1: - goto end_IL_0249; - } - continue; - end_IL_0249: - break; - } - } + SchemaRegistry = _registry + }; + DirectoryInfo projectRoot = FindProjectRoot(); + foreach (var (fileName, key, embedded) in Catalog) + { + _schemas[key] = Build(fileName, embedded, projectRoot, buildOptions); } - } - continue; - IL_004f: - num = -755659507; + _built = true; } } - [MethodImpl(MethodImplOptions.NoInlining)] public JsonSchema Get(string uri) { EnsureBuilt(); - JsonSchema value; - int num = (_schemas.TryGetValue(uri, out value) ? (-2109712785) : (-2109712788)); - while (true) + if (!_schemas.TryGetValue(uri, out JsonSchema value)) { - int num2 = num; - int num3 = -2109712787; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0054; - case 2: - return value; - case 1: - throw _200B_202B_202C_200B_200C_200F_206F_202C_200B_206D_200B_206C_200D_202C_206D_206C_206C_206A_200C_206C_200E_206C_202B_202C_206A_200C_206B_206D_200B_200E_206B_202E_202D_206F_206C_202B_206A_202E_200E_200C_202E(_202A_202E_202A_200F_202C_206D_206A_206C_200E_202D_200E_206F_206D_202D_200D_202C_206F_206F_200E_202A_200E_206E_206A_202A_206A_206E_206E_202A_206C_200D_206D_202A_206D_202C_200F_200B_200F_202C_200C_202A_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-232645525), uri)); - } - continue; - IL_0054: - num = -2109712788; + throw new InvalidOperationException("schema not registered: " + uri); } + return value; } private static JsonSchema Build(string fileName, Func<Stream> embedded, DirectoryInfo? projectRoot, BuildOptions buildOptions) @@ -321,114 +79,35 @@ internal sealed class SchemaRegistrar { try { - string text = _202E_200D_202D_200F_200F_202D_200B_206F_206A_200C_206E_202B_206D_200D_202A_200C_206A_206A_202D_206E_200B_206F_206A_200F_206F_202B_206E_200D_206C_202E_206F_206A_206E_202E_206A_206D_200D_206A_202B_206F_202E(_200C_206B_202A_200B_202B_206F_200F_200B_200E_206F_206B_200E_206C_206A_202C_202E_202B_202D_206F_206D_206B_200E_200C_200C_202A_206D_206F_206E_200B_206A_202B_206F_202A_202C_200E_200B_202D_200C_200B_206E_202E((FileSystemInfo)projectRoot), fileName, SearchOption.AllDirectories).FirstOrDefault(); - int num = ((text == null) ? 1090313824 : 1090313827); - while (true) + string text = Directory.EnumerateFiles(projectRoot.FullName, fileName, SearchOption.AllDirectories).FirstOrDefault(); + if (text != null) { - int num2 = num; - int num3 = 1090313826; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0063; - case 1: - return _206E_206A_202E_206C_200E_202D_200B_206D_200F_200F_200F_202E_206A_202A_202A_202A_200F_206D_200C_206F_200E_206C_202C_206B_206B_202E_200F_200E_206C_202E_202B_206D_202E_202B_200F_200D_206F_202A_206D_206D_202E(_200B_200D_206F_206D_206F_200C_206E_202C_202B_206A_202B_200D_206D_202B_206A_202C_200C_202D_200C_200C_206E_206A_202B_206A_202B_202A_200F_206E_206E_200E_200F_200E_202C_206A_202D_200D_202A_202C_200D_206B_202E(text), buildOptions, (Uri)null, (JsonDocumentOptions?)null); - case 2: - goto end_IL_0037; - } - continue; - IL_0063: - num = 1090313827; - continue; - end_IL_0037: - break; + return JsonSchema.FromText(File.ReadAllText(text), buildOptions); } } catch { } } - StreamReader streamReader = _202C_202D_206C_206C_202D_200F_206D_200F_206B_200F_200E_206B_206C_206D_206B_206C_200D_200D_200B_200C_206D_200D_206E_202B_206E_206C_200F_202D_202A_202B_200C_206B_200C_206B_206C_206C_206F_206D_202A_206F_202E(embedded()); - try - { - return _206E_206A_202E_206C_200E_202D_200B_206D_200F_200F_200F_202E_206A_202A_202A_202A_200F_206D_200C_206F_200E_206C_202C_206B_206B_202E_200F_200E_206C_202E_202B_206D_202E_202B_200F_200D_206F_202A_206D_206D_202E(_200F_206B_202C_202D_206B_206C_206C_206B_206B_202C_206F_200F_200E_206F_202D_206D_200B_200E_200B_200F_202E_200F_206E_206F_206D_200E_200F_202E_206D_206F_202B_200E_202B_200D_200B_200B_202A_200C_200D_200E_202E((TextReader)streamReader), buildOptions, (Uri)null, (JsonDocumentOptions?)null); - } - finally - { - int num = ((streamReader == null) ? 1697266929 : 1697266928); - while (true) - { - int num5 = num; - int num3 = 1697266929; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1697266928; - break; - case 1: - _206C_206D_202A_200D_200D_202C_200C_202B_206E_206C_206D_206D_206E_202E_206C_206F_206C_202B_200B_206F_202E_200E_200B_206D_206D_206C_200D_206F_202E_200F_202D_200B_200B_202B_200E_202A_206B_202D_200F_202B_202E((IDisposable)streamReader); - num = 1697266929; - break; - case 0: - goto end_IL_00e8; - } - continue; - end_IL_00e8: - break; - } - } + using StreamReader streamReader = new StreamReader(embedded()); + return JsonSchema.FromText(streamReader.ReadToEnd(), buildOptions); } - [MethodImpl(MethodImplOptions.NoInlining)] private static DirectoryInfo? FindProjectRoot() { try { - string text = _202D_202E_200D_206D_202A_200F_200D_206B_202B_200E_206A_206D_202C_202A_206B_200E_200F_206A_202B_206C_206E_206B_200E_206A_206C_202A_202D_202E_206A_202D_202B_206A_200B_202E_206C_206B_200F_202E_200F_202C_202E(_206F_202D_202A_200D_206B_202D_200E_200E_202E_202E_206E_206F_202B_206F_202E_202A_200D_200B_202C_206A_202D_200B_202C_200F_206E_206F_206C_200E_206A_202C_200F_206A_206E_206A_200F_202D_206A_200B_206C_202A_202E()); - int num = ((!_202C_206A_206E_206D_200B_200B_200C_200E_200E_202A_202A_206C_200B_206C_200C_206F_202A_200F_202B_202A_206B_202D_200F_200F_206D_200C_202D_200B_200C_206B_206F_206D_206C_200D_206E_200C_200C_200E_206C_206E_202E(text)) ? 580554043 : 580554044); - DirectoryInfo directoryInfo = default(DirectoryInfo); - while (true) + string location = Assembly.GetExecutingAssembly().Location; + if (string.IsNullOrEmpty(location)) { - int num2 = num; - int num3 = 580554040; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return null; + } + for (DirectoryInfo directoryInfo = new DirectoryInfo(Path.GetDirectoryName(location) ?? location); directoryInfo != null; directoryInfo = directoryInfo.Parent) + { + if (directoryInfo.GetDirectories("QuestPaths", SearchOption.TopDirectoryOnly).Length != 0 || directoryInfo.GetDirectories("Questionable.Model", SearchOption.TopDirectoryOnly).Length != 0 || directoryInfo.GetDirectories("Questionable", SearchOption.TopDirectoryOnly).Length != 0) { - case 9: - num = 580554044; - break; - case 5: - num = ((directoryInfo != null) ? 580554047 : 580554032); - break; - case 0: - directoryInfo = _200B_202D_200D_202A_202D_206E_202D_206C_202B_202E_206E_202A_202A_206D_200F_206E_200F_206F_200F_200E_202A_206E_206B_206D_200D_200D_202B_202C_206D_200E_200F_200C_202B_206F_202A_202C_200D_202B_200D_200D_202E(directoryInfo); - num = 580554045; - break; - case 3: - directoryInfo = _202C_202B_206D_202C_200B_200B_206F_202A_202B_206D_202B_202D_206E_202E_202D_202B_206C_200C_200E_206C_206D_206B_200E_202A_200B_200B_202E_206A_200E_206C_206C_202E_200F_206E_200C_202B_206D_206B_206F_202D_202E(_206A_200D_206C_202A_202E_206A_206B_206F_202C_202D_202C_206A_202E_206A_206F_206B_200D_206D_202A_202D_206B_200D_202A_202C_206B_202C_200C_200E_200C_200B_206F_200D_200E_202A_206C_202B_200C_200D_206E_206F_202E(text) ?? text); - num = 580554045; - break; - case 1: - num = ((_206E_200B_206D_200F_206E_202C_200E_202C_202B_200C_206F_202B_206D_206F_206B_202B_206E_206E_202C_200D_200B_206F_206C_202A_200F_202A_202E_202D_206E_202B_206C_206E_206A_202B_206C_200B_202B_202C_200F_202C_202E(directoryInfo, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(825165366), SearchOption.TopDirectoryOnly).Length != 0) ? 580554046 : 580554042); - break; - case 4: - return null; - case 7: - num = ((_206E_200B_206D_200F_206E_202C_200E_202C_202B_200C_206F_202B_206D_206F_206B_202B_206E_206E_202C_200D_200B_206F_206C_202A_200F_202A_202E_202D_206E_202B_206C_206E_206A_202B_206C_200B_202B_202C_200F_202C_202E(directoryInfo, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2005366887), SearchOption.TopDirectoryOnly).Length != 0) ? 580554046 : 580554041); - break; - case 6: return directoryInfo; - case 2: - num = ((_206E_200B_206D_200F_206E_202C_200E_202C_202B_200C_206F_202B_206D_206F_206B_202B_206E_206E_202C_200D_200B_206F_206C_202A_200F_202A_202E_202D_206E_202B_206C_206E_206A_202B_206C_200B_202B_202C_200F_202C_202E(directoryInfo, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), SearchOption.TopDirectoryOnly).Length == 0) ? 580554040 : 580554046); - break; - case 8: - goto end_IL_002c; } - continue; - end_IL_002c: - break; } } catch @@ -436,119 +115,4 @@ internal sealed class SchemaRegistrar } return null; } - - static void _202C_206C_200C_200F_200C_206D_202D_200E_206A_206B_200C_206A_202D_202C_206E_206E_200D_202C_202E_200C_206F_202E_200F_202C_206E_200B_206E_200D_206C_202E_200E_206A_200C_206B_206C_206F_202B_206B_206A_200C_202E(object P_0, ref bool P_1) - { - Monitor.Enter(P_0, ref P_1); - } - - static BuildOptions _202A_206E_200E_206E_202D_200D_202E_200D_202C_202C_206C_200B_202A_206A_200B_200C_206C_200F_202A_200B_200B_200B_206D_202D_206E_200D_206E_206E_206F_202C_200D_202B_202E_202C_206E_206F_206D_206A_200D_202A_202E() - { - return new BuildOptions(); - } - - static void _202A_206C_200F_200B_200E_202E_206C_206B_200D_200F_206B_202E_202A_200E_202C_202E_206C_202B_206B_202A_206C_206F_200F_202E_202D_202C_202E_200E_200C_202E_206C_206A_206D_202A_206E_202B_200D_206E_202D_200C_202E(BuildOptions P_0, SchemaRegistry P_1) - { - P_0.SchemaRegistry = P_1; - } - - static bool _200D_202A_202E_206C_206F_206D_202D_200C_202A_206F_206B_202C_206C_202B_206C_202C_206F_202C_200B_200D_200E_206F_200C_200D_206C_206B_200D_202D_200B_200D_206B_200D_202B_206D_206D_206F_206D_206C_206D_202B_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206C_206D_202A_200D_200D_202C_200C_202B_206E_206C_206D_206D_206E_202E_206C_206F_206C_202B_200B_206F_202E_200E_200B_206D_206D_206C_200D_206F_202E_200F_202D_200B_200B_202B_200E_202A_206B_202D_200F_202B_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _200B_200F_206E_200D_202A_200C_200B_202D_206C_206F_202C_206E_202A_206E_202D_202E_202E_202B_206D_202B_202C_206F_206E_206F_202B_206E_202B_200C_200D_206B_206F_206E_202E_206B_206B_202E_202A_206E_200D_206A_202E(object P_0) - { - Monitor.Exit(P_0); - } - - static string _202A_202E_202A_200F_202C_206D_206A_206C_200E_202D_200E_206F_206D_202D_200D_202C_206F_206F_200E_202A_200E_206E_206A_202A_206A_206E_206E_202A_206C_200D_206D_202A_206D_202C_200F_200B_200F_202C_200C_202A_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static InvalidOperationException _200B_202B_202C_200B_200C_200F_206F_202C_200B_206D_200B_206C_200D_202C_206D_206C_206C_206A_200C_206C_200E_206C_202B_202C_206A_200C_206B_206D_200B_200E_206B_202E_202D_206F_206C_202B_206A_202E_200E_200C_202E(string P_0) - { - return new InvalidOperationException(P_0); - } - - static string _200C_206B_202A_200B_202B_206F_200F_200B_200E_206F_206B_200E_206C_206A_202C_202E_202B_202D_206F_206D_206B_200E_200C_200C_202A_206D_206F_206E_200B_206A_202B_206F_202A_202C_200E_200B_202D_200C_200B_206E_202E(FileSystemInfo P_0) - { - return P_0.FullName; - } - - static IEnumerable<string> _202E_200D_202D_200F_200F_202D_200B_206F_206A_200C_206E_202B_206D_200D_202A_200C_206A_206A_202D_206E_200B_206F_206A_200F_206F_202B_206E_200D_206C_202E_206F_206A_206E_202E_206A_206D_200D_206A_202B_206F_202E(string P_0, string P_1, SearchOption P_2) - { - return Directory.EnumerateFiles(P_0, P_1, P_2); - } - - static string _200B_200D_206F_206D_206F_200C_206E_202C_202B_206A_202B_200D_206D_202B_206A_202C_200C_202D_200C_200C_206E_206A_202B_206A_202B_202A_200F_206E_206E_200E_200F_200E_202C_206A_202D_200D_202A_202C_200D_206B_202E(string P_0) - { - return File.ReadAllText(P_0); - } - - static JsonSchema _206E_206A_202E_206C_200E_202D_200B_206D_200F_200F_200F_202E_206A_202A_202A_202A_200F_206D_200C_206F_200E_206C_202C_206B_206B_202E_200F_200E_206C_202E_202B_206D_202E_202B_200F_200D_206F_202A_206D_206D_202E(string P_0, BuildOptions P_1, Uri P_2, JsonDocumentOptions? P_3) - { - return JsonSchema.FromText(P_0, P_1, P_2, P_3); - } - - static StreamReader _202C_202D_206C_206C_202D_200F_206D_200F_206B_200F_200E_206B_206C_206D_206B_206C_200D_200D_200B_200C_206D_200D_206E_202B_206E_206C_200F_202D_202A_202B_200C_206B_200C_206B_206C_206C_206F_206D_202A_206F_202E(Stream P_0) - { - return new StreamReader(P_0); - } - - static string _200F_206B_202C_202D_206B_206C_206C_206B_206B_202C_206F_200F_200E_206F_202D_206D_200B_200E_200B_200F_202E_200F_206E_206F_206D_200E_200F_202E_206D_206F_202B_200E_202B_200D_200B_200B_202A_200C_200D_200E_202E(TextReader P_0) - { - return P_0.ReadToEnd(); - } - - static Assembly _206F_202D_202A_200D_206B_202D_200E_200E_202E_202E_206E_206F_202B_206F_202E_202A_200D_200B_202C_206A_202D_200B_202C_200F_206E_206F_206C_200E_206A_202C_200F_206A_206E_206A_200F_202D_206A_200B_206C_202A_202E() - { - return Assembly.GetExecutingAssembly(); - } - - static string _202D_202E_200D_206D_202A_200F_200D_206B_202B_200E_206A_206D_202C_202A_206B_200E_200F_206A_202B_206C_206E_206B_200E_206A_206C_202A_202D_202E_206A_202D_202B_206A_200B_202E_206C_206B_200F_202E_200F_202C_202E(Assembly P_0) - { - return P_0.Location; - } - - static bool _202C_206A_206E_206D_200B_200B_200C_200E_200E_202A_202A_206C_200B_206C_200C_206F_202A_200F_202B_202A_206B_202D_200F_200F_206D_200C_202D_200B_200C_206B_206F_206D_206C_200D_206E_200C_200C_200E_206C_206E_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static string _206A_200D_206C_202A_202E_206A_206B_206F_202C_202D_202C_206A_202E_206A_206F_206B_200D_206D_202A_202D_206B_200D_202A_202C_206B_202C_200C_200E_200C_200B_206F_200D_200E_202A_206C_202B_200C_200D_206E_206F_202E(string P_0) - { - return Path.GetDirectoryName(P_0); - } - - static DirectoryInfo _202C_202B_206D_202C_200B_200B_206F_202A_202B_206D_202B_202D_206E_202E_202D_202B_206C_200C_200E_206C_206D_206B_200E_202A_200B_200B_202E_206A_200E_206C_206C_202E_200F_206E_200C_202B_206D_206B_206F_202D_202E(string P_0) - { - return new DirectoryInfo(P_0); - } - - static DirectoryInfo[] _206E_200B_206D_200F_206E_202C_200E_202C_202B_200C_206F_202B_206D_206F_206B_202B_206E_206E_202C_200D_200B_206F_206C_202A_200F_202A_202E_202D_206E_202B_206C_206E_206A_202B_206C_200B_202B_202C_200F_202C_202E(DirectoryInfo P_0, string P_1, SearchOption P_2) - { - return P_0.GetDirectories(P_1, P_2); - } - - static DirectoryInfo _200B_202D_200D_202A_202D_206E_202D_206C_202B_202E_206E_202A_202A_206D_200F_206E_200F_206F_200F_200E_202A_206E_206B_206D_200D_200D_202B_202C_206D_200E_200F_200C_202B_206F_202A_202C_200D_202B_200D_200D_202E(DirectoryInfo P_0) - { - return P_0.Parent; - } - - static SchemaRegistry _206D_202B_206D_206B_206D_206B_202D_206B_200E_202D_202C_206C_206D_206E_202A_200B_202D_206C_206E_202A_206A_202B_202E_206B_200D_202B_206B_206D_200B_206F_202E_202E_202A_206E_200B_202E_206F_206C_200C_202D_202E() - { - return new SchemaRegistry(); - } - - static object _206C_200B_206B_202D_202E_202D_206E_200E_202C_206E_200D_200E_202B_202D_200B_200C_206B_202B_206F_202D_200F_206E_200C_206C_200D_200B_206E_206C_200D_200D_200B_200E_202A_206A_206D_202B_206A_202E_206A_200E_202E() - { - return new object(); - } } diff --git a/Questionable/Questionable.Validation/SchemaValidationHelper.cs b/Questionable/Questionable.Validation/SchemaValidationHelper.cs index 04f0230..6f6c99a 100644 --- a/Questionable/Questionable.Validation/SchemaValidationHelper.cs +++ b/Questionable/Questionable.Validation/SchemaValidationHelper.cs @@ -1,663 +1,126 @@ using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; -using Json.Pointer; using Json.Schema; namespace Questionable.Validation; internal static class SchemaValidationHelper { - internal readonly record struct ParsedError(string InstancePath, string PropertyPath, string Message) - { - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206F_200D_202A_202D_202D_200F_206B_200B_206C_200C_202E_202D_200B_202B_200C_206C_200E_200F_200D_206E_202D_200B_206E_206E_202B_206B_206F_202C_206F_206F_202B_200B_206E_206C_206F_206D_202C_202B_200F_202B_202E(); - _206D_202C_200F_200E_206D_206C_206C_200C_200D_200D_206C_200C_202A_200D_202C_202C_202E_206D_200D_200B_200F_206C_200C_206C_206B_206A_206D_202B_200E_200D_206E_202D_206D_200F_200B_200F_206A_200C_206C_206A_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-36173424)); - _206D_202C_200F_200E_206D_206C_206C_200C_200D_200D_206C_200C_202A_200D_202C_202C_202E_206D_200D_200B_200F_206C_200C_206C_206B_206A_206D_202B_200E_200D_206E_202D_206D_200F_200B_200F_206A_200C_206C_206A_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(117284107)); - int num = ((!PrintMembers(stringBuilder)) ? 144448390 : 144448389); - while (true) - { - int num2 = num; - int num3 = 144448391; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 144448389; - break; - case 1: - _206A_206F_200D_202B_206D_206D_206D_202B_202A_200F_200C_200E_200F_200F_206F_200D_200C_200B_206A_206F_206E_200D_202B_200C_206F_200D_202C_206A_200D_202E_206D_206B_200F_202E_202A_200F_206A_200D_202C_206B_202E(stringBuilder, '}'); - return _202D_206B_206B_206E_200F_200F_206D_206D_202B_206A_206F_206F_202C_206E_206F_200C_202B_206B_206D_200E_202B_206A_202B_202E_206A_202E_202A_200E_202B_206A_200E_200B_206B_202A_200F_202C_206B_202B_206A_202E((object)stringBuilder); - case 2: - _206A_206F_200D_202B_206D_206D_206D_202B_202A_200F_200C_200E_200F_200F_206F_200D_200C_200B_206A_206F_206E_200D_202B_200C_206F_200D_202C_206A_200D_202E_206D_206B_200F_202E_202A_200F_206A_200D_202C_206B_202E(stringBuilder, ' '); - num = 144448390; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206D_202C_200F_200E_206D_206C_206C_200C_200D_200D_206C_200C_202A_200D_202C_202C_202E_206D_200D_200B_200F_206C_200C_206C_206B_206A_206D_202B_200E_200D_206E_202D_206D_200F_200B_200F_206A_200C_206C_206A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1589665761)); - _202D_202D_200F_200F_200D_206F_200B_202A_206B_200D_202A_202E_206C_200F_200E_206B_206C_202C_206F_206F_200E_200E_206E_206C_206D_206C_200B_202E_206F_202D_206B_206C_200D_206E_206B_202C_202B_206C_206C_206A_202E(builder, (object)InstancePath); - _206D_202C_200F_200E_206D_206C_206C_200C_200D_200D_206C_200C_202A_200D_202C_202C_202E_206D_200D_200B_200F_206C_200C_206C_206B_206A_206D_202B_200E_200D_206E_202D_206D_200F_200B_200F_206A_200C_206C_206A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1127869114)); - _202D_202D_200F_200F_200D_206F_200B_202A_206B_200D_202A_202E_206C_200F_200E_206B_206C_202C_206F_206F_200E_200E_206E_206C_206D_206C_200B_202E_206F_202D_206B_206C_200D_206E_206B_202C_202B_206C_206C_206A_202E(builder, (object)PropertyPath); - _206D_202C_200F_200E_206D_206C_206C_200C_200D_200D_206C_200C_202A_200D_202C_202C_202E_206D_200D_200B_200F_206C_200C_206C_206B_206A_206D_202B_200E_200D_206E_202D_206D_200F_200B_200F_206A_200C_206C_206A_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-63396934)); - _202D_202D_200F_200F_200D_206F_200B_202A_206B_200D_202A_202E_206C_200F_200E_206B_206C_202C_206F_206F_200E_200E_206E_206C_206D_206C_200B_202E_206F_202D_206B_206C_200D_206E_206B_202C_202B_206C_206C_206A_202E(builder, (object)Message); - return true; - } - - [CompilerGenerated] - public bool Equals(ParsedError other) - { - int num = ((!EqualityComparer<string>.Default.Equals(InstancePath, other.InstancePath)) ? (-1823649485) : (-1823649486)); - while (true) - { - int num2 = num; - int num3 = -1823649488; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1823649486; - break; - case 3: - return false; - case 1: - return EqualityComparer<string>.Default.Equals(Message, other.Message); - case 2: - num = ((!EqualityComparer<string>.Default.Equals(PropertyPath, other.PropertyPath)) ? (-1823649485) : (-1823649487)); - break; - } - } - } - - bool IEquatable<ParsedError>.Equals(ParsedError other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _206F_200D_202A_202D_202D_200F_206B_200B_206C_200C_202E_202D_200B_202B_200C_206C_200E_200F_200D_206E_202D_200B_206E_206E_202B_206B_206F_202C_206F_206F_202B_200B_206E_206C_206F_206D_202C_202B_200F_202B_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206D_202C_200F_200E_206D_206C_206C_200C_200D_200D_206C_200C_202A_200D_202C_202C_202E_206D_200D_200B_200F_206C_200C_206C_206B_206A_206D_202B_200E_200D_206E_202D_206D_200F_200B_200F_206A_200C_206C_206A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206A_206F_200D_202B_206D_206D_206D_202B_202A_200F_200C_200E_200F_200F_206F_200D_200C_200B_206A_206F_206E_200D_202B_200C_206F_200D_202C_206A_200D_202E_206D_206B_200F_202E_202A_200F_206A_200D_202C_206B_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202D_206B_206B_206E_200F_200F_206D_206D_202B_206A_206F_206F_202C_206E_206F_200C_202B_206B_206D_200E_202B_206A_202B_202E_206A_202E_202A_200E_202B_206A_200E_200B_206B_202A_200F_202C_206B_202B_206A_202E(object P_0) - { - return P_0.ToString(); - } - - static StringBuilder _202D_202D_200F_200F_200D_206F_200B_202A_206B_200D_202A_202E_206C_200F_200E_206B_206C_202C_206F_206F_200E_200E_206E_206C_206D_206C_200B_202E_206F_202D_206B_206C_200D_206E_206B_202C_202B_206C_206C_206A_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - } + internal readonly record struct ParsedError(string InstancePath, string PropertyPath, string Message); public static void CollectLeafErrors(EvaluationResults node, List<ParsedError> errors) { - int num; - if (!_200D_202E_206D_200E_202D_200E_200E_202C_206A_202E_202B_200C_202B_200F_206B_202E_200B_202A_206B_202C_206C_202B_200B_200B_206E_200B_200E_202C_206E_206F_202C_206E_202A_200C_206C_200E_206C_202B_202A_202D_202E(node)) + if (!node.IsValid) { - num = -1995348334; - Dictionary<string, string> dictionary = default(Dictionary<string, string>); - string text2 = default(string); - while (true) + Dictionary<string, string> errors2 = node.Errors; + if (errors2 != null && errors2.Count > 0) { - int num2 = num; - int num3 = -1995348335; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + foreach (var (keyword, text3) in node.Errors) { - default: - continue; - case 0: - if (dictionary.Count > 0) + if (!IsAggregateKeyword(keyword) && !string.IsNullOrWhiteSpace(text3)) { - num = -1995348336; - continue; + string text4 = node.InstanceLocation.ToString(); + string rawPath = GetRawPath(text4); + errors.Add(new ParsedError(text4 ?? string.Empty, FormatPath(rawPath), CleanMessage(text3))); } - break; - case 3: - dictionary = _206E_206B_206F_200E_202B_202D_202C_200C_202E_200E_202D_200E_202B_200B_200C_202C_200B_202E_202B_206B_202C_206A_200F_200E_206F_200C_200B_206E_206E_200E_202C_206E_206C_200D_200E_202D_202D_206A_206C_206F_202E(node); - if (dictionary != null) - { - num = -1995348335; - continue; - } - break; - case 2: - num = -1995348334; - continue; - case 1: - { - using (Dictionary<string, string>.Enumerator enumerator = _206E_206B_206F_200E_202B_202D_202C_200C_202E_200E_202D_200E_202B_200B_200C_202C_200B_202E_202B_206B_202C_206A_200F_200E_206F_200C_200B_206E_206E_200E_202C_206E_206C_200D_200E_202D_202D_206A_206C_206F_202E(node).GetEnumerator()) - { - num = 570619197; - while (true) - { - int num5 = num; - num3 = 570619199; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 1: - num = (_202C_206C_202E_206F_202A_200E_200F_202B_200B_206F_206D_206F_200D_202E_206C_200E_200F_206D_206D_200F_206F_202D_202B_206A_200E_206E_200E_206F_200C_200C_202E_200F_200D_202C_200F_200C_202B_202B_200E_202E_202E(text2) ? 570619197 : 570619195); - break; - case 3: - { - enumerator.Current.Deconstruct(out var key, out var value); - string keyword = key; - text2 = value; - num = (IsAggregateKeyword(keyword) ? 570619197 : 570619198); - break; - } - case 0: - num = 570619197; - break; - case 2: - num = (enumerator.MoveNext() ? 570619196 : 570619194); - break; - case 4: - { - string text = _202C_202A_200B_202E_200D_202D_206B_200F_206D_200B_206E_200E_200D_206B_206B_202A_206C_202A_202C_206C_200E_206F_202D_202D_202D_206C_206F_202C_206B_202B_206A_206D_206D_202A_202B_206B_202B_202E_200E_202E_202E(node).ToString(); - string rawPath = GetRawPath(text); - errors.Add(new ParsedError(text ?? string.Empty, FormatPath(rawPath), CleanMessage(text2))); - num = 570619197; - break; - } - case 5: - goto end_IL_009c; - } - continue; - end_IL_009c: - break; - } - } - break; } - } - break; } } - List<EvaluationResults> list = _200D_200D_200C_202C_206A_202D_200C_206C_202A_200B_200D_206C_200E_202A_202D_200E_200D_200F_202E_206E_202E_202B_200C_202E_200F_206B_206F_202A_206F_206A_202E_206E_202C_206E_206F_200D_200E_202A_206D_202C_202E(node); - if (list == null) + List<EvaluationResults> details = node.Details; + if (details == null || details.Count <= 0) { return; } - num = -1276546531; - EvaluationResults current = default(EvaluationResults); - while (true) + foreach (EvaluationResults detail in node.Details) { - int num8 = num; - int num3 = -1276546532; - int num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) + if (!detail.IsValid) { - case 2: - num = -1276546531; - break; - case 1: - if (list.Count > 0) - { - num = -1276546532; - break; - } - return; - case 0: - { - using List<EvaluationResults>.Enumerator enumerator2 = _200D_200D_200C_202C_206A_202D_200C_206C_202A_200B_200D_206C_200E_202A_202D_200E_200D_200F_202E_206E_202E_202B_200C_202E_200F_206B_206F_202A_206F_206A_202E_206E_202C_206E_206F_200D_200E_202A_206D_202C_202E(node).GetEnumerator(); - num = -1005796493; - while (true) - { - int num11 = num; - num3 = -1005796494; - num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) - { - case 0: - num = -1005796493; - break; - case 2: - current = enumerator2.Current; - num = (_200D_202E_206D_200E_202D_200E_200E_202C_206A_202E_202B_200C_202B_200F_206B_202E_200B_202A_206B_202C_206C_202B_200B_200B_206E_200B_200E_202C_206E_206F_202C_206E_202A_200C_206C_200E_206C_202B_202A_202D_202E(current) ? (-1005796493) : (-1005796490)); - break; - case 1: - num = (enumerator2.MoveNext() ? (-1005796496) : (-1005796495)); - break; - case 4: - CollectLeafErrors(current, errors); - num = -1005796493; - break; - case 3: - return; - } - } - } + CollectLeafErrors(detail, errors); } } } - [MethodImpl(MethodImplOptions.NoInlining)] public static string FormatPath(string rawPath) { - int num = ((!_202B_202A_200C_202A_200D_200D_202E_202C_202B_200D_206B_202B_200C_206F_202E_202D_206F_206A_206B_206D_200B_200F_202B_206D_200E_206A_206C_206D_206C_206D_200E_206E_206A_202B_202A_202B_202C_200E_206A_200C_202E(rawPath)) ? 163847157 : 163847153); - List<string> list = default(List<string>); - int num5 = default(int); - int result = default(int); - string[] array2 = default(string[]); - string text = default(string); - while (true) + if (string.IsNullOrEmpty(rawPath)) { - int num2 = num; - int num3 = 163847152; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return string.Empty; + } + string[] array = rawPath.Split('/'); + List<string> list = new List<string>(); + string[] array2 = array; + foreach (string text in array2) + { + if (int.TryParse(text, out var result)) { - case 8: - num = ((list.Count <= 0) ? 163847162 : 163847159); - break; - case 0: - { - int num6 = num5; - num3 = 1; - num4 = num6; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - num5 = num7 + (num8 + num8); - num = 163847154; - break; + if (list.Count > 0) + { + list[list.Count - 1] += $"[{result}]"; + } + else + { + list.Add($"[{result}]"); + } } - case 10: + else { - List<string> list2 = list; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(2, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1118615183)); - defaultInterpolatedStringHandler.AppendFormatted(result); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(80455896)); - list2.Add(defaultInterpolatedStringHandler.ToStringAndClear()); - num = 163847152; - break; - } - case 9: - return _202A_202B_206A_200B_200E_202B_200E_206C_200F_206B_206B_202E_206E_200B_206B_206F_200D_202D_206E_202C_202D_200F_200E_202B_200C_202A_200E_202D_202B_206B_200C_200E_206D_206A_202E_200E_202A_200C_202C_206B_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-404473860), (IEnumerable<string>)list); - case 2: - num = ((num5 < array2.Length) ? 163847155 : 163847161); - break; - case 7: - { - List<string> list3 = list; - int index = list.Count - 1; - string text2 = list3[index]; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(2, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1463938997)); - defaultInterpolatedStringHandler2.AppendFormatted(result); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(80455896)); - list3[index] = _202A_200B_202D_202E_202C_206E_200D_200F_202D_202D_202C_202C_202C_206E_202E_206A_202E_202C_200C_206C_206A_200F_200E_200F_206E_202D_200F_202B_200C_202D_200D_202E_202A_202A_206D_202C_202E_206A_202A_200C_202E(text2, defaultInterpolatedStringHandler2.ToStringAndClear()); - num = 163847152; - break; - } - case 3: - text = array2[num5]; - num = ((!int.TryParse(text, out result)) ? 163847158 : 163847160); - break; - case 1: - return string.Empty; - case 6: list.Add(text); - num = 163847152; - break; - case 4: - num = 163847153; - break; - case 5: - { - string[] array = _206D_200C_202D_200C_206B_206E_202A_200B_202C_200D_200B_206C_202D_202C_200D_200F_202D_206E_206B_200B_200E_202D_200B_202B_206A_200E_206D_200E_206D_206B_206A_202B_206F_206B_206F_202C_200D_202A_200D_202E_202E(rawPath, '/', StringSplitOptions.None); - list = new List<string>(); - array2 = array; - num5 = 0; - num = 163847154; - break; - } } } + return string.Join(".", list); } - [MethodImpl(MethodImplOptions.NoInlining)] public static string CleanMessage(string message) { - return _200C_200C_200D_202D_202E_206E_200E_206C_202D_202C_206A_202C_200B_202D_202C_202D_200E_202A_202B_202C_202E_200E_206B_202E_200B_200D_200D_202A_206F_200D_202C_202E_200C_206B_200F_202B_200E_206F_200D_200F_202E(_200C_200C_200D_202D_202E_206E_200E_206C_202D_202C_206A_202C_200B_202D_202C_202D_200E_202A_202B_202C_202E_200E_206B_202E_200B_200D_200D_202A_206F_200D_202C_202E_200C_206B_200F_202B_200E_206F_200D_200F_202E(message, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(519119434), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1792309681), StringComparison.Ordinal), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-486788284), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1307535606), StringComparison.Ordinal); + return message.Replace("\\u0022", "\"", StringComparison.Ordinal).Replace("\\u0027", "'", StringComparison.Ordinal); } - [MethodImpl(MethodImplOptions.NoInlining)] public static string? FormatQuestLocation(byte? sequence, int? step) { - int num = (sequence.HasValue ? 660406071 : 660406065); - while (true) + if (!sequence.HasValue) { - int num2 = num; - int num3 = 660406067; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(11, 2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1005707421)); - defaultInterpolatedStringHandler2.AppendFormatted(sequence); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(857758852)); - defaultInterpolatedStringHandler2.AppendFormatted(step); - return defaultInterpolatedStringHandler2.ToStringAndClear(); - } - case 4: - num = ((!step.HasValue) ? 660406064 : 660406066); - break; - case 2: - return null; - case 0: - num = 660406065; - break; - case 3: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(4, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1926875694)); - defaultInterpolatedStringHandler.AppendFormatted(sequence); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - } + return null; } + if (!step.HasValue) + { + return $"Seq {sequence}"; + } + return $"Seq {sequence}, Step {step}"; } - [MethodImpl(MethodImplOptions.NoInlining)] private static bool IsAggregateKeyword(string keyword) { - int num = ((keyword == null) ? 240931173 : 240931199); - char c = default(char); - bool result = default(bool); - while (true) + switch (keyword) { - int num2 = num; - int num3 = 240931189; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = 240931199; - break; - case 19: - c = _206D_200D_200F_200E_202A_206D_200B_202A_206C_206A_206F_202C_202D_202B_206D_206A_200D_202C_206A_206A_206C_202C_206D_202A_206C_202B_206E_206D_202B_206A_200D_202E_206E_202B_202A_206B_202D_200D_202E_206F_202E(keyword, 0); - num = ((c == 'e') ? 240931190 : 240931183); - break; - case 2: - num = 240931173; - break; - case 17: - num = (_202B_206D_206C_200D_200E_206D_206C_202C_202D_200C_206F_202C_202E_200B_202A_200F_200C_206C_200F_200D_200D_206A_202E_200F_206E_202E_202C_206E_202E_202C_200B_206B_200B_200E_202B_202B_206E_200C_206D_202D_202E(keyword, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1371988018)) ? 240931198 : 240931197); - break; - case 8: - num = 240931173; - break; - case 20: - num = ((c == 'y') ? 240931186 : 240931181); - break; - case 15: - num = 240931173; - break; - case 21: - num = (_202B_206D_206C_200D_200E_206D_206C_202C_202D_200C_206F_202C_202E_200B_202A_200F_200C_206C_200F_200D_200D_206A_202E_200F_206E_202E_202C_206E_202E_202C_200B_206B_200B_200E_202B_202B_206E_200C_206D_202D_202E(keyword, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-880210388)) ? 240931198 : 240931175); - break; - case 9: - num = (_202B_206D_206C_200D_200E_206D_206C_202C_202D_200C_206F_202C_202E_200B_202A_200F_200C_206C_200F_200D_200D_206A_202E_200F_206E_202E_202C_206E_202E_202C_200B_206B_200B_200E_202B_202B_206E_200C_206D_202D_202E(keyword, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1025907661)) ? 240931198 : 240931171); - break; - case 18: - num = 240931173; - break; - case 5: - num = 240931173; - break; - case 12: - num = 240931173; - break; - case 27: - num = ((c == 'l') ? 240931168 : 240931169); - break; - case 7: - num = (_202B_206D_206C_200D_200E_206D_206C_202C_202D_200C_206F_202C_202E_200B_202A_200F_200C_206C_200F_200D_200D_206A_202E_200F_206E_202E_202C_206E_202E_202C_200B_206B_200B_200E_202B_202B_206E_200C_206D_202D_202E(keyword, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-307896602)) ? 240931198 : 240931170); - break; - case 11: - result = true; - num = 240931177; - break; - case 6: - goto IL_021d; - case 13: - goto IL_0248; - case 25: - num = 240931173; - break; - case 29: - goto IL_027e; - case 16: - goto IL_02a9; - case 26: - num = ((c == 't') ? 240931196 : 240931191); - break; - case 24: - num = 240931173; - break; - case 23: - num = 240931173; - break; - case 3: - num = (_202B_206D_206C_200D_200E_206D_206C_202C_202D_200C_206F_202C_202E_200B_202A_200F_200C_206C_200F_200D_200D_206A_202E_200F_206E_202E_202C_206E_202E_202C_200B_206B_200B_200E_202B_202B_206E_200C_206D_202D_202E(keyword, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1916484131)) ? 240931198 : 240931194); - break; - case 14: - goto IL_0315; - case 22: - num = 240931173; - break; - case 1: - goto IL_034b; - case 28: - return result; - case 10: - { - int num7 = _206B_200B_206A_202B_206F_202E_202C_200C_206B_206A_206F_206A_200E_200C_200D_200E_202D_202A_206D_206E_200F_202C_206C_206A_202E_206C_206B_206F_200B_200F_200C_206D_200B_206C_206F_202D_200E_202E_200D_200D_202E(keyword); - num3 = 2; - num4 = num7; - switch (~(~num4 + num3)) - { - case 2: - break; - case 0: - goto IL_021d; - case 9: - goto IL_0248; - case 6: - goto IL_027e; - case 4: - case 5: - case 7: - case 8: - goto IL_02a9; - case 1: - goto IL_0315; - case 3: - goto IL_034b; - default: - goto IL_03b4; - } - goto case 19; - } - case 0: - { - num = 240931173; - break; - } - IL_03b4: - num = 240931189; - break; - IL_034b: - c = _206D_200D_200F_200E_202A_206D_200B_202A_206C_206A_206F_202C_202D_202B_206D_206A_200D_202C_206A_206A_206C_202C_206D_202A_206C_202B_206E_206D_202B_206A_200D_202E_206E_202B_202A_206B_202D_200D_202E_206F_202E(keyword, 2); - num = ((c == 'e') ? 240931172 : 240931182); - break; - IL_0315: - num = (_202B_206D_206C_200D_200E_206D_206C_202C_202D_200C_206F_202C_202E_200B_202A_200F_200C_206C_200F_200D_200D_206A_202E_200F_206E_202E_202C_206E_202E_202C_200B_206B_200B_200E_202B_202B_206E_200C_206D_202D_202E(keyword, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(431251289)) ? 240931198 : 240931180); - break; - IL_02a9: - result = false; - num = 240931177; - break; - IL_027e: - num = ((!_202B_206D_206C_200D_200E_206D_206C_202C_202D_200C_206F_202C_202E_200B_202A_200F_200C_206C_200F_200D_200D_206A_202E_200F_206E_202E_202C_206E_202E_202C_200B_206B_200B_200E_202B_202B_206E_200C_206D_202D_202E(keyword, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2049125528))) ? 240931173 : 240931198); - break; - IL_0248: - num = (_202B_206D_206C_200D_200E_206D_206C_202C_202D_200C_206F_202C_202E_200B_202A_200F_200C_206C_200F_200D_200D_206A_202E_200F_206E_202E_202C_206E_202E_202C_200B_206B_200B_200E_202B_202B_206E_200C_206D_202D_202E(keyword, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(757162084)) ? 240931198 : 240931193); - break; - IL_021d: - num = (_202B_206D_206C_200D_200E_206D_206C_202C_202D_200C_206F_202C_202E_200B_202A_200F_200C_206C_200F_200D_200D_206A_202E_200F_206E_202E_202C_206E_202E_202C_200B_206B_200B_200E_202B_202B_206E_200C_206D_202D_202E(keyword, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-847792367)) ? 240931198 : 240931184); - break; - } + case "oneOf": + case "allOf": + case "anyOf": + case "else": + case "then": + case "if": + case "not": + case "prefixItems": + case "contains": + return true; + default: + return false; } } private static string GetRawPath(string? instancePath) { - int num = ((!_202B_202A_200C_202A_200D_200D_202E_202C_202B_200D_206B_202B_200C_206F_202E_202D_206F_206A_206B_206D_200B_200F_202B_206D_200E_206A_206C_206D_206C_206D_200E_206E_206A_202B_202A_202B_202C_200E_206A_200C_202E(instancePath)) ? (-964105651) : (-964105650)); - while (true) + if (string.IsNullOrEmpty(instancePath)) { - int num2 = num; - int num3 = -964105653; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = -964105650; - break; - case 1: - instancePath = _200B_206E_202D_202B_200E_202D_202C_206B_200C_202B_206D_202C_200E_200B_202A_200C_206F_202D_202E_202E_202C_200B_206E_206F_200C_206F_200E_202C_202B_202C_200E_206E_206A_202C_202E_202D_206D_200B_202D_202C_202E(instancePath, 1); - num = -964105655; - break; - case 0: - num = ((!_202C_202A_200C_206A_206E_200C_200D_206C_202D_202A_206C_200B_200C_202E_206C_206D_202E_202E_200D_206A_200B_206E_206F_202A_200D_202C_202C_200E_200D_202D_206A_206D_206D_202A_202E_202E_200C_200B_200F_206E_202E(instancePath, '/')) ? (-964105655) : (-964105654)); - break; - case 6: - num = ((!_202C_202A_200C_206A_206E_200C_200D_206C_202D_202A_206C_200B_200C_202E_206C_206D_202E_202E_200D_206A_200B_206E_206F_202A_200D_202C_202C_200E_200D_202D_206A_206D_206D_202A_202E_202E_200C_200B_200F_206E_202E(instancePath, '#')) ? (-964105653) : (-964105656)); - break; - case 5: - return string.Empty; - case 3: - instancePath = _200B_206E_202D_202B_200E_202D_202C_206B_200C_202B_206D_202C_200E_200B_202A_200C_206F_202D_202E_202E_202C_200B_206E_206F_200C_206F_200E_202C_202B_202C_200E_206E_206A_202C_202E_202D_206D_200B_202D_202C_202E(instancePath, 1); - num = -964105653; - break; - case 2: - return instancePath; - } + return string.Empty; } - } - - static bool _200D_202E_206D_200E_202D_200E_200E_202C_206A_202E_202B_200C_202B_200F_206B_202E_200B_202A_206B_202C_206C_202B_200B_200B_206E_200B_200E_202C_206E_206F_202C_206E_202A_200C_206C_200E_206C_202B_202A_202D_202E(EvaluationResults P_0) - { - return P_0.IsValid; - } - - static Dictionary<string, string> _206E_206B_206F_200E_202B_202D_202C_200C_202E_200E_202D_200E_202B_200B_200C_202C_200B_202E_202B_206B_202C_206A_200F_200E_206F_200C_200B_206E_206E_200E_202C_206E_206C_200D_200E_202D_202D_206A_206C_206F_202E(EvaluationResults P_0) - { - return P_0.Errors; - } - - static bool _202C_206C_202E_206F_202A_200E_200F_202B_200B_206F_206D_206F_200D_202E_206C_200E_200F_206D_206D_200F_206F_202D_202B_206A_200E_206E_200E_206F_200C_200C_202E_200F_200D_202C_200F_200C_202B_202B_200E_202E_202E(string P_0) - { - return string.IsNullOrWhiteSpace(P_0); - } - - static JsonPointer _202C_202A_200B_202E_200D_202D_206B_200F_206D_200B_206E_200E_200D_206B_206B_202A_206C_202A_202C_206C_200E_206F_202D_202D_202D_206C_206F_202C_206B_202B_206A_206D_206D_202A_202B_206B_202B_202E_200E_202E_202E(EvaluationResults P_0) - { - return P_0.InstanceLocation; - } - - static List<EvaluationResults> _200D_200D_200C_202C_206A_202D_200C_206C_202A_200B_200D_206C_200E_202A_202D_200E_200D_200F_202E_206E_202E_202B_200C_202E_200F_206B_206F_202A_206F_206A_202E_206E_202C_206E_206F_200D_200E_202A_206D_202C_202E(EvaluationResults P_0) - { - return P_0.Details; - } - - static bool _202B_202A_200C_202A_200D_200D_202E_202C_202B_200D_206B_202B_200C_206F_202E_202D_206F_206A_206B_206D_200B_200F_202B_206D_200E_206A_206C_206D_206C_206D_200E_206E_206A_202B_202A_202B_202C_200E_206A_200C_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static string[] _206D_200C_202D_200C_206B_206E_202A_200B_202C_200D_200B_206C_202D_202C_200D_200F_202D_206E_206B_200B_200E_202D_200B_202B_206A_200E_206D_200E_206D_206B_206A_202B_206F_206B_206F_202C_200D_202A_200D_202E_202E(string P_0, char P_1, StringSplitOptions P_2) - { - return P_0.Split(P_1, P_2); - } - - static string _202A_200B_202D_202E_202C_206E_200D_200F_202D_202D_202C_202C_202C_206E_202E_206A_202E_202C_200C_206C_206A_200F_200E_200F_206E_202D_200F_202B_200C_202D_200D_202E_202A_202A_206D_202C_202E_206A_202A_200C_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static string _202A_202B_206A_200B_200E_202B_200E_206C_200F_206B_206B_202E_206E_200B_206B_206F_200D_202D_206E_202C_202D_200F_200E_202B_200C_202A_200E_202D_202B_206B_200C_200E_206D_206A_202E_200E_202A_200C_202C_206B_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); - } - - static string _200C_200C_200D_202D_202E_206E_200E_206C_202D_202C_206A_202C_200B_202D_202C_202D_200E_202A_202B_202C_202E_200E_206B_202E_200B_200D_200D_202A_206F_200D_202C_202E_200C_206B_200F_202B_200E_206F_200D_200F_202E(string P_0, string P_1, string P_2, StringComparison P_3) - { - return P_0.Replace(P_1, P_2, P_3); - } - - static int _206B_200B_206A_202B_206F_202E_202C_200C_206B_206A_206F_206A_200E_200C_200D_200E_202D_202A_206D_206E_200F_202C_206C_206A_202E_206C_206B_206F_200B_200F_200C_206D_200B_206C_206F_202D_200E_202E_200D_200D_202E(string P_0) - { - return P_0.Length; - } - - static char _206D_200D_200F_200E_202A_206D_200B_202A_206C_206A_206F_202C_202D_202B_206D_206A_200D_202C_206A_206A_206C_202C_206D_202A_206C_202B_206E_206D_202B_206A_200D_202E_206E_202B_202A_206B_202D_200D_202E_206F_202E(string P_0, int P_1) - { - return P_0[P_1]; - } - - static bool _202B_206D_206C_200D_200E_206D_206C_202C_202D_200C_206F_202C_202E_200B_202A_200F_200C_206C_200F_200D_200D_206A_202E_200F_206E_202E_202C_206E_202E_202C_200B_206B_200B_200E_202B_202B_206E_200C_206D_202D_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static bool _202C_202A_200C_206A_206E_200C_200D_206C_202D_202A_206C_200B_200C_202E_206C_206D_202E_202E_200D_206A_200B_206E_206F_202A_200D_202C_202C_200E_200D_202D_206A_206D_206D_202A_202E_202E_200C_200B_200F_206E_202E(string P_0, char P_1) - { - return P_0.StartsWith(P_1); - } - - static string _200B_206E_202D_202B_200E_202D_202C_206B_200C_202B_206D_202C_200E_200B_202A_200C_206F_202D_202E_202E_202C_200B_206E_206F_200C_206F_200E_202C_202B_202C_200E_206E_206A_202C_202E_202D_206D_200B_202D_202C_202E(string P_0, int P_1) - { - return P_0.Substring(P_1); + if (instancePath.StartsWith('#')) + { + instancePath = instancePath.Substring(1); + } + if (instancePath.StartsWith('/')) + { + instancePath = instancePath.Substring(1); + } + return instancePath; } } diff --git a/Questionable/Questionable.Validation/ValidationIssue.cs b/Questionable/Questionable.Validation/ValidationIssue.cs index 335236f..0d5364e 100644 --- a/Questionable/Questionable.Validation/ValidationIssue.cs +++ b/Questionable/Questionable.Validation/ValidationIssue.cs @@ -1,24 +1,11 @@ -using System; -using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; -using System.Text; using Questionable.Model.Questing; namespace Questionable.Validation; internal sealed record ValidationIssue { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206E_206E_206B_206F_202C_202D_200D_206F_202B_200D_202E_200F_202B_206B_202C_202D_200D_202E_200C_202B_206A_200F_200B_202E_206E_200C_200D_206C_202D_202D_206E_200E_206F_200F_200F_202C_200E_202D_206A_206B_202E(typeof(ValidationIssue).TypeHandle); - } - } - public EPathType PathType { get; init; } public string? Id { get; init; } @@ -37,123 +24,6 @@ internal sealed record ValidationIssue public required string Description { get; init; } - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200E_200C_206C_202B_200B_202C_202D_202C_200D_206C_206C_206A_200B_206E_206B_206E_200F_202C_206A_202A_206E_200E_206E_202E_206C_206C_206E_206F_206B_206C_202A_202C_200C_202D_202C_206D_202A_206E_206C_200E_202E(); - _206D_206C_202C_200E_206C_200D_200F_200E_200F_206C_206A_206A_200C_206D_206C_206E_200E_206A_202B_200F_200D_200D_202D_202E_202E_206B_206D_200D_206C_200C_206E_202E_202C_202C_206E_206C_200B_202E_200E_206F_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2070182154)); - _206D_206C_202C_200E_206C_200D_200F_200E_200F_206C_206A_206A_200C_206D_206C_206E_200E_206A_202B_200F_200D_200D_202D_202E_202E_206B_206D_200D_206C_200C_206E_202E_202C_202C_206E_206C_200B_202E_200E_206F_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(556540328)); - int num = ((!PrintMembers(stringBuilder)) ? (-2063063294) : (-2063063295)); - while (true) - { - int num2 = num; - int num3 = -2063063293; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -2063063295; - break; - case 1: - _200D_206D_200E_200F_206F_206A_200B_200C_202D_206A_206E_202C_200B_202E_200D_202A_206D_206F_202D_206B_202D_206B_202B_202B_200F_200C_200B_200E_202E_206B_202A_200D_202C_200F_202E_202D_202E_202A_206B_200D_202E(stringBuilder, '}'); - return _206E_202A_206A_202A_206A_202C_200D_200D_206B_202A_200E_202B_202B_202D_206E_200F_206B_206F_202E_206A_206A_202A_200B_200B_202A_200D_206C_202A_200B_202A_206F_206B_202D_200E_200C_200F_200C_206C_200E_202E((object?)stringBuilder); - case 2: - _200D_206D_200E_200F_206F_206A_200B_200C_202D_206A_206E_202C_200B_202E_200D_202A_206D_206F_202D_206B_202D_206B_202B_202B_200F_200C_200B_200E_202E_206B_202A_200D_202C_200F_202E_202D_202E_202A_206B_200D_202E(stringBuilder, ' '); - num = -2063063294; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206B_206B_200F_200C_200E_202D_200B_200B_206A_202B_206E_206E_200E_206F_202E_200E_200F_202D_206B_206D_200D_202D_206D_206C_202E_202D_202E_206A_206A_200F_200B_206A_202A_202C_202C_206D_200E_206C_206A_200E_202E(); - _206D_206C_202C_200E_206C_200D_200F_200E_200F_206C_206A_206A_200C_206D_206C_206E_200E_206A_202B_200F_200D_200D_202D_202E_202E_206B_206D_200D_206C_200C_206E_202E_202C_202C_206E_206C_200B_202E_200E_206F_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1054224284)); - _206D_206C_202C_200E_206C_200D_200F_200E_200F_206C_206A_206A_200C_206D_206C_206E_200E_206A_202B_200F_200D_200D_202D_202E_202E_206B_206D_200D_206C_200C_206E_202E_202C_202C_206E_206C_200B_202E_200E_206F_202E(builder, PathType.ToString()); - _206D_206C_202C_200E_206C_200D_200F_200E_200F_206C_206A_206A_200C_206D_206C_206E_200E_206A_202B_200F_200D_200D_202D_202E_202E_206B_206D_200D_206C_200C_206E_202E_202C_202C_206E_206C_200B_202E_200E_206F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(905575649)); - _200F_206F_200D_202A_202B_202C_202E_202B_206D_202E_202A_206B_206C_202A_200D_206B_206B_200E_200E_202D_206D_202C_202C_206F_206B_206B_202B_206F_206A_200F_200F_206F_202B_202D_206B_200E_206C_200D_206E_202E(builder, (object?)Id); - _206D_206C_202C_200E_206C_200D_200F_200E_200F_206C_206A_206A_200C_206D_206C_206E_200E_206A_202B_200F_200D_200D_202D_202E_202E_206B_206D_200D_206C_200C_206E_202E_202C_202C_206E_206C_200B_202E_200E_206F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(111180362)); - _200F_206F_200D_202A_202B_202C_202E_202B_206D_202E_202A_206B_206C_202A_200D_206B_206B_200E_200E_202D_206D_202C_202C_206F_206B_206B_202B_206F_206A_200F_200F_206F_202B_202D_206B_200E_206C_200D_206E_202E(builder, (object?)Location); - _206D_206C_202C_200E_206C_200D_200F_200E_200F_206C_206A_206A_200C_206D_206C_206E_200E_206A_202B_200F_200D_200D_202D_202E_202E_206B_206D_200D_206C_200C_206E_202E_202C_202C_206E_206C_200B_202E_200E_206F_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(70669024)); - _200F_206F_200D_202A_202B_202C_202E_202B_206D_202E_202A_206B_206C_202A_200D_206B_206B_200E_200E_202D_206D_202C_202C_206F_206B_206B_202B_206F_206A_200F_200F_206F_202B_202D_206B_200E_206C_200D_206E_202E(builder, (object?)ElementId); - _206D_206C_202C_200E_206C_200D_200F_200E_200F_206C_206A_206A_200C_206D_206C_206E_200E_206A_202B_200F_200D_200D_202D_202E_202E_206B_206D_200D_206C_200C_206E_202E_202C_202C_206E_206C_200B_202E_200E_206F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(582584788)); - _206D_206C_202C_200E_206C_200D_200F_200E_200F_206C_206A_206A_200C_206D_206C_206E_200E_206A_202B_200F_200D_200D_202D_202E_202E_206B_206D_200D_206C_200C_206E_202E_202C_202C_206E_206C_200B_202E_200E_206F_202E(builder, Sequence.ToString()); - _206D_206C_202C_200E_206C_200D_200F_200E_200F_206C_206A_206A_200C_206D_206C_206E_200E_206A_202B_200F_200D_200D_202D_202E_202E_206B_206D_200D_206C_200C_206E_202E_202C_202C_206E_206C_200B_202E_200E_206F_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-218236649)); - _206D_206C_202C_200E_206C_200D_200F_200E_200F_206C_206A_206A_200C_206D_206C_206E_200E_206A_202B_200F_200D_200D_202D_202E_202E_206B_206D_200D_206C_200C_206E_202E_202C_202C_206E_206C_200B_202E_200E_206F_202E(builder, Step.ToString()); - _206D_206C_202C_200E_206C_200D_200F_200E_200F_206C_206A_206A_200C_206D_206C_206E_200E_206A_202B_200F_200D_200D_202D_202E_202E_206B_206D_200D_206C_200C_206E_202E_202C_202C_206E_206C_200B_202E_200E_206F_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-368361860)); - _206D_206C_202C_200E_206C_200D_200F_200E_200F_206C_206A_206A_200C_206D_206C_206E_200E_206A_202B_200F_200D_200D_202D_202E_202E_206B_206D_200D_206C_200C_206E_202E_202C_202C_206E_206C_200B_202E_200E_206F_202E(builder, Type.ToString()); - _206D_206C_202C_200E_206C_200D_200F_200E_200F_206C_206A_206A_200C_206D_206C_206E_200E_206A_202B_200F_200D_200D_202D_202E_202E_206B_206D_200D_206C_200C_206E_202E_202C_202C_206E_206C_200B_202E_200E_206F_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-27686502)); - _206D_206C_202C_200E_206C_200D_200F_200E_200F_206C_206A_206A_200C_206D_206C_206E_200E_206A_202B_200F_200D_200D_202D_202E_202E_206B_206D_200D_206C_200C_206E_202E_202C_202C_206E_206C_200B_202E_200E_206F_202E(builder, Severity.ToString()); - _206D_206C_202C_200E_206C_200D_200F_200E_200F_206C_206A_206A_200C_206D_206C_206E_200E_206A_202B_200F_200D_200D_202D_202E_202E_206B_206D_200D_206C_200C_206E_202E_202C_202C_206E_206C_200B_202E_200E_206F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2025676759)); - _200F_206F_200D_202A_202B_202C_202E_202B_206D_202E_202A_206B_206C_202A_200D_206B_206B_200E_200E_202D_206D_202C_202C_206F_206B_206B_202B_206F_206A_200F_200F_206F_202B_202D_206B_200E_206C_200D_206E_202E(builder, (object?)Description); - return true; - } - - [CompilerGenerated] - public bool Equals(ValidationIssue? other) - { - int num = (((object)this == other) ? (-745881034) : (-745881033)); - while (true) - { - int num2 = num; - int num3 = -745881026; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = ((!EqualityComparer<EIssueType>.Default.Equals(Type, other.Type)) ? (-745881037) : (-745881029)); - break; - case 4: - num = ((!EqualityComparer<string>.Default.Equals(Id, other.Id)) ? (-745881037) : (-745881027)); - break; - case 0: - num = ((!EqualityComparer<Questionable.Model.Questing.ElementId>.Default.Equals(ElementId, other.ElementId)) ? (-745881037) : (-745881035)); - break; - case 7: - num = -745881033; - break; - case 9: - num = (((object)other == null) ? (-745881037) : (-745881036)); - break; - case 5: - num = ((!EqualityComparer<EIssueSeverity>.Default.Equals(Severity, other.Severity)) ? (-745881037) : (-745881028)); - break; - case 13: - return false; - case 8: - return true; - case 6: - num = ((!EqualityComparer<EPathType>.Default.Equals(PathType, other.PathType)) ? (-745881037) : (-745881030)); - break; - case 11: - num = ((!EqualityComparer<byte?>.Default.Equals(Sequence, other.Sequence)) ? (-745881037) : (-745881038)); - break; - case 12: - num = ((!EqualityComparer<int?>.Default.Equals(Step, other.Step)) ? (-745881037) : (-745881025)); - break; - case 3: - num = ((!EqualityComparer<string>.Default.Equals(Location, other.Location)) ? (-745881037) : (-745881026)); - break; - case 10: - num = ((!_200B_206D_200C_202E_200C_206C_200B_206E_206B_202D_206B_206F_202A_200D_202B_200E_202A_206E_202A_200E_200D_200F_206E_206C_206C_206D_206D_202D_200C_202C_202E_206D_202D_206A_206D_200F_206F_206E_206E_202C_202E(EqualityContract, other.EqualityContract)) ? (-745881037) : (-745881032)); - break; - case 2: - return EqualityComparer<string>.Default.Equals(Description, other.Description); - } - } - } - - bool IEquatable<ValidationIssue>.Equals(ValidationIssue? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - [CompilerGenerated] [SetsRequiredMembers] private ValidationIssue(ValidationIssue original) @@ -172,44 +42,4 @@ internal sealed record ValidationIssue public ValidationIssue() { } - - static Type? _206E_206E_206B_206F_202C_202D_200D_206F_202B_200D_202E_200F_202B_206B_202C_202D_200D_202E_200C_202B_206A_200F_200B_202E_206E_200C_200D_206C_202D_202D_206E_200E_206F_200F_200F_202C_200E_202D_206A_206B_202E(RuntimeTypeHandle P_0) - { - return System.Type.GetTypeFromHandle(P_0); - } - - static StringBuilder? _200E_200C_206C_202B_200B_202C_202D_202C_200D_206C_206C_206A_200B_206E_206B_206E_200F_202C_206A_202A_206E_200E_206E_202E_206C_206C_206E_206F_206B_206C_202A_202C_200C_202D_202C_206D_202A_206E_206C_200E_202E() - { - return new StringBuilder(); - } - - static StringBuilder? _206D_206C_202C_200E_206C_200D_200F_200E_200F_206C_206A_206A_200C_206D_206C_206E_200E_206A_202B_200F_200D_200D_202D_202E_202E_206B_206D_200D_206C_200C_206E_202E_202C_202C_206E_206C_200B_202E_200E_206F_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _200D_206D_200E_200F_206F_206A_200B_200C_202D_206A_206E_202C_200B_202E_200D_202A_206D_206F_202D_206B_202D_206B_202B_202B_200F_200C_200B_200E_202E_206B_202A_200D_202C_200F_202E_202D_202E_202A_206B_200D_202E(StringBuilder? P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string? _206E_202A_206A_202A_206A_202C_200D_200D_206B_202A_200E_202B_202B_202D_206E_200F_206B_206F_202E_206A_206A_202A_200B_200B_202A_200D_206C_202A_200B_202A_206F_206B_202D_200E_200C_200F_200C_206C_200E_202E(object? P_0) - { - return P_0.ToString(); - } - - static void _206B_206B_200F_200C_200E_202D_200B_200B_206A_202B_206E_206E_200E_206F_202E_200E_200F_202D_206B_206D_200D_202D_206D_206C_202E_202D_202E_206A_206A_200F_200B_206A_202A_202C_202C_206D_200E_206C_206A_200E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder? _200F_206F_200D_202A_202B_202C_202E_202B_206D_202E_202A_206B_206C_202A_200D_206B_206B_200E_200E_202D_206D_202C_202C_206F_206B_206B_202B_206F_206A_200F_200F_206F_202B_202D_206B_200E_206C_200D_206E_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } - - static bool _200B_206D_200C_202E_200C_206C_200B_206E_206B_202D_206B_206F_202A_200D_202B_200E_202A_206E_202A_200E_200D_200F_206E_206C_206C_206D_206D_202D_200C_202C_202E_206D_202D_206A_206D_200F_206F_206E_206E_202C_202E(Type? P_0, Type? P_1) - { - return P_0 == P_1; - } } diff --git a/Questionable/Questionable.Windows.ChangelogComponents/ChangelogCategoryComponent.cs b/Questionable/Questionable.Windows.ChangelogComponents/ChangelogCategoryComponent.cs index f68bbb8..47a8ec8 100644 --- a/Questionable/Questionable.Windows.ChangelogComponents/ChangelogCategoryComponent.cs +++ b/Questionable/Questionable.Windows.ChangelogComponents/ChangelogCategoryComponent.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Numerics; using Dalamud.Bindings.ImGui; @@ -12,304 +11,64 @@ internal static class ChangelogCategoryComponent { public static void DrawCategoryGroup(EChangeCategory category, List<ChangeEntry> changes, float baseX) { - FontAwesomeIcon fontAwesomeIcon = default(FontAwesomeIcon); - Vector4 vector = default(Vector4); - FontAwesomeIcon icon = default(FontAwesomeIcon); - int num; - switch (category) + DrawCategoryHeader(category switch { - default: - num = -3418486; - goto IL_0026; - case EChangeCategory.Fixed: - fontAwesomeIcon = FontAwesomeIcon.Wrench; - num = -3418482; - goto IL_0026; - case EChangeCategory.Added: - goto IL_00b4; - case EChangeCategory.Changed: - goto IL_0131; - case EChangeCategory.Removed: - goto IL_016b; - case EChangeCategory.QuestUpdates: - goto IL_017d; - IL_0026: - while (true) - { - int num2 = num; - int num3 = -3418489; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - goto end_IL_0026; - case 13: - num = -3418495; - break; - case 1: - num = -3418491; - break; - case 15: - goto IL_00b4; - case 8: - vector = UiThemeUtils.StatusLocked; - num = -3418487; - break; - case 7: - goto IL_00d9; - case 11: - goto IL_00ec; - case 16: - num = -3418486; - break; - case 5: - goto IL_010b; - case 3: - goto IL_011e; - case 10: - goto IL_0131; - case 9: - icon = fontAwesomeIcon; - switch (category) - { - case EChangeCategory.Removed: - break; - case EChangeCategory.Fixed: - goto IL_00d9; - case EChangeCategory.QuestUpdates: - goto IL_00ec; - case EChangeCategory.Changed: - goto IL_010b; - case EChangeCategory.Added: - goto IL_011e; - default: - goto IL_015f; - } - goto case 8; - case 12: - goto IL_016b; - case 0: - goto IL_017d; - case 6: - fontAwesomeIcon = FontAwesomeIcon.Circle; - num = -3418482; - break; - case 2: - vector = UiThemeUtils.DimTextColor; - num = -3418487; - break; - case 14: - { - Vector4 color = vector; - DrawCategoryHeader(icon, color, category.ToDisplayString(), baseX); - _206E_202C_202B_206A_206C_200D_200B_200E_206B_206B_202B_200B_206E_202B_206A_206D_202C_200B_200F_200D_206A_202E_200F_206A_200D_200C_200F_206F_202C_206C_202C_200B_200F_200C_206C_206E_206D_202E_206C_202A_202E(); - float changeIndent = 28f; - using List<ChangeEntry>.Enumerator enumerator = changes.GetEnumerator(); - num = -835962102; - while (true) - { - int num5 = num; - num3 = -835962104; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 2: - num = (enumerator.MoveNext() ? (-835962103) : (-835962104)); - break; - case 1: - DrawChange(enumerator.Current, baseX, changeIndent); - num = -835962102; - break; - case 3: - num = -835962102; - break; - case 0: - return; - } - } - } - IL_015f: - num = -3418490; - break; - IL_011e: - vector = UiThemeUtils.StatusComplete; - num = -3418487; - break; - IL_010b: - vector = UiThemeUtils.StatusActive; - num = -3418487; - break; - IL_00ec: - vector = UiThemeUtils.AccentColor; - num = -3418487; - break; - IL_00d9: - vector = UiThemeUtils.StatusAvailableComplete; - num = -3418487; - break; - } - continue; - end_IL_0026: - break; - } - goto case EChangeCategory.Fixed; - IL_017d: - fontAwesomeIcon = FontAwesomeIcon.Map; - num = -3418482; - goto IL_0026; - IL_016b: - fontAwesomeIcon = FontAwesomeIcon.Minus; - num = -3418482; - goto IL_0026; - IL_0131: - fontAwesomeIcon = FontAwesomeIcon.Edit; - num = -3418482; - goto IL_0026; - IL_00b4: - fontAwesomeIcon = FontAwesomeIcon.Plus; - num = -3418482; - goto IL_0026; + EChangeCategory.Added => FontAwesomeIcon.Plus, + EChangeCategory.Changed => FontAwesomeIcon.Edit, + EChangeCategory.Fixed => FontAwesomeIcon.Wrench, + EChangeCategory.Removed => FontAwesomeIcon.Minus, + EChangeCategory.QuestUpdates => FontAwesomeIcon.Map, + _ => FontAwesomeIcon.Circle, + }, category switch + { + EChangeCategory.Added => UiThemeUtils.StatusComplete, + EChangeCategory.Changed => UiThemeUtils.StatusActive, + EChangeCategory.Fixed => UiThemeUtils.StatusAvailableComplete, + EChangeCategory.Removed => UiThemeUtils.StatusLocked, + EChangeCategory.QuestUpdates => UiThemeUtils.AccentColor, + _ => UiThemeUtils.DimTextColor, + }, category.ToDisplayString(), baseX); + ImGui.Spacing(); + float changeIndent = 28f; + foreach (ChangeEntry change in changes) + { + DrawChange(change, baseX, changeIndent); } } private static void DrawCategoryHeader(FontAwesomeIcon icon, Vector4 color, string text, float baseX) { - float num = _206E_206F_206F_206F_206A_202C_200C_206C_202E_206B_206B_200E_206D_206D_206A_202A_206F_202D_206B_206C_200E_206A_200F_206A_202E_200D_202E_202D_206F_206C_200D_206F_206A_206F_202C_200F_200B_202D_206B_202A_202E(); - _206A_200E_206D_206D_202B_202C_202A_206E_200D_202E_202B_206F_206D_200C_202D_206C_202E_200E_202C_202A_202D_206D_202E_206A_206D_202A_206C_202B_202A_206C_202C_206A_200D_206F_200E_202B_200F_206A_206B_206B_202E(baseX); - ImRaii.FontDisposable fontDisposable = _206A_202C_200C_206A_206E_200B_206B_200B_202E_206C_206E_202B_200D_200F_200E_206A_200E_202C_206D_206C_202A_200F_206A_200E_200E_206E_206C_200F_202D_202D_206C_202B_206E_206D_202E_200C_206F_206C_206E_202C_202E(_206B_206A_206B_200B_206A_206E_202D_202E_206A_202B_200D_202D_202C_200C_206F_206C_202C_206F_200F_200D_200F_206A_202E_202E_206D_206D_206E_206A_200D_200D_202A_202E_202B_206C_202C_202A_206E_202B_202C_202D_202E(), true); - try + float cursorPosY = ImGui.GetCursorPosY(); + ImGui.SetCursorPosX(baseX); + using (ImRaii.PushFont(UiBuilder.IconFont)) { - _206D_202B_202C_206B_200B_206A_202C_202A_200C_202D_202C_202D_200B_202E_206A_202B_200B_200E_200C_200E_206A_200E_202A_206A_202E_206C_202B_200D_200C_202A_202C_202E_206A_206B_200F_202A_202A_200D_202C_206A_202E(ref color, (ImU8String)_202A_200C_202C_200D_206F_200D_206C_200F_202D_202A_206B_202E_200E_206E_206C_200F_202A_200C_200F_206F_202A_200C_206D_206F_202D_202D_206A_200C_202C_202B_206A_202B_202C_206F_202A_206F_200D_202B_200E_206E_202E(icon)); + ImGui.TextColored(in color, icon.ToIconString()); } - finally + ImGui.SameLine(); + ImGui.SetCursorPosY(cursorPosY); + using (ImRaii.PushColor(ImGuiCol.Text, color)) { - int num2 = ((fontDisposable == null) ? (-1204111214) : (-1204111215)); - while (true) - { - int num3 = num2; - int num4 = -1204111216; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = -1204111215; - break; - case 2: - goto end_IL_004b; - case 1: - _206B_202B_206E_206B_200B_200B_206A_206B_200B_206C_202E_202C_206C_202C_200C_202B_206E_202C_206F_200F_202A_206F_206D_206D_202B_200B_206B_200F_202C_200B_200C_202C_206E_202A_206F_206C_202E_206D_202B_206A_202E((IDisposable)fontDisposable); - num2 = -1204111214; - break; - } - continue; - end_IL_004b: - break; - } - } - _200B_200C_202A_206F_200D_206F_200B_200B_202C_206E_202C_206F_206F_202C_206F_200C_206D_200E_200F_202C_206E_206A_202B_200F_206C_206D_200C_200C_200F_200C_200F_202B_202D_206C_202B_206A_202C_200B_200F_202D_202E(); - _200B_206F_206F_206D_206D_202D_206E_200D_206C_206E_206D_202E_200E_202E_206A_202B_200C_202D_202B_200D_206C_200C_200B_202D_206D_202D_206F_200B_206E_206D_202A_206A_206A_200E_202A_200E_200C_206D_206F_200E_202E(num); - ImRaii.ColorDisposable colorDisposable = _202A_200F_206A_202D_200D_200D_202B_206C_206B_206A_200E_202D_206D_202B_206B_206C_206F_200F_202C_200D_206F_200E_200C_206D_202C_206A_206A_206F_206F_206D_206F_200C_202B_202B_206A_202C_206C_202A_206E_206A_202E(ImGuiCol.Text, color, true); - try - { - _206D_206C_202B_206D_202B_206E_200D_202E_202C_206A_206D_206D_202B_206E_206C_202B_202A_202E_206A_200E_200F_206E_202A_206A_206A_200B_202C_206C_206A_202A_200C_202A_206F_206B_206A_200E_202E_206D_206D_202E((ImU8String)text); - } - finally - { - int num2 = ((colorDisposable == null) ? (-1954991280) : (-1954991279)); - while (true) - { - int num6 = num2; - int num4 = -1954991280; - int num5 = num6; - int num7 = num5 + num4; - int num8 = num5 & num4; - switch (num7 - (num8 + num8)) - { - case 0: - goto end_IL_00d3; - case 1: - _206B_202B_206E_206B_200B_200B_206A_206B_200B_206C_202E_202C_206C_202C_200C_202B_206E_202C_206F_200F_202A_206F_206D_206D_202B_200B_206B_200F_202C_200B_200C_202C_206E_202A_206F_206C_202E_206D_202B_206A_202E((IDisposable)colorDisposable); - num2 = -1954991280; - break; - case 2: - num2 = -1954991279; - break; - } - continue; - end_IL_00d3: - break; - } + ImGui.TextUnformatted(text); } } private static void DrawChange(ChangeEntry change, float baseX, float changeIndent) { - _206A_200E_206D_206D_202B_202C_202A_206E_200D_202E_202B_206F_206D_200C_202D_206C_202E_200E_202C_202A_202D_206D_202E_206A_206D_202A_206C_202B_202A_206C_202C_206A_200D_206F_200E_202B_200F_206A_206B_206B_202E(baseX + changeIndent); - float num = _206E_206F_206F_206F_206A_202C_200C_206C_202E_206B_206B_200E_206D_206D_206A_202A_206F_202D_206B_206C_200E_206A_200F_206A_202E_200D_202E_202D_206F_206C_200D_206F_206A_206F_202C_200F_200B_202D_206B_202A_202E(); - ImRaii.FontDisposable fontDisposable = _206A_202C_200C_206A_206E_200B_206B_200B_202E_206C_206E_202B_200D_200F_200E_206A_200E_202C_206D_206C_202A_200F_206A_200E_200E_206E_206C_200F_202D_202D_206C_202B_206E_206D_202E_200C_206F_206C_206E_202C_202E(_206B_206A_206B_200B_206A_206E_202D_202E_206A_202B_200D_202D_202C_200C_206F_206C_202C_206F_200F_200D_200F_206A_202E_202E_206D_206D_206E_206A_200D_200D_202A_202E_202B_206C_202C_202A_206E_202B_202C_202D_202E(), true); - int num2; - try + ImGui.SetCursorPosX(baseX + changeIndent); + float cursorPosY = ImGui.GetCursorPosY(); + using (ImRaii.PushFont(UiBuilder.IconFont)) { - _206D_202B_202C_206B_200B_206A_202C_202A_200C_202D_202C_202D_200B_202E_206A_202B_200B_200E_200C_200E_206A_200E_202A_206A_202E_206C_202B_200D_200C_202A_202C_202E_206A_206B_200F_202A_202A_200D_202C_206A_202E(ref UiThemeUtils.PrimaryTextColor, (ImU8String)_202A_200C_202C_200D_206F_200D_206C_200F_202D_202A_206B_202E_200E_206E_206C_200F_202A_200C_200F_206F_202A_200C_206D_206F_202D_202D_206A_200C_202C_202B_206A_202B_202C_206F_202A_206F_200D_202B_200E_206E_202E(FontAwesomeIcon.CaretRight)); + ImGui.TextColored(in UiThemeUtils.PrimaryTextColor, FontAwesomeIcon.CaretRight.ToIconString()); } - finally + ImGui.SameLine(); + ImGui.SetCursorPosY(cursorPosY); + float num = ImGui.GetContentRegionAvail().X - 8f; + ImGui.PushTextWrapPos(ImGui.GetCursorPosX() + num); + ImGui.TextColored(in UiThemeUtils.PrimaryTextColor, change.Description); + ImGui.PopTextWrapPos(); + if (change.SubItems != null && change.SubItems.Count > 0) { - num2 = ((fontDisposable == null) ? 90155660 : 90155663); - while (true) - { - int num3 = num2; - int num4 = 90155661; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 0: - num2 = 90155663; - break; - case 2: - _206B_202B_206E_206B_200B_200B_206A_206B_200B_206C_202E_202C_206C_202C_200C_202B_206E_202C_206F_200F_202A_206F_206D_206D_202B_200B_206B_200F_202C_200B_200C_202C_206E_202A_206F_206C_202E_206D_202B_206A_202E((IDisposable)fontDisposable); - num2 = 90155660; - break; - case 1: - goto end_IL_0054; - } - continue; - end_IL_0054: - break; - } - } - _200B_200C_202A_206F_200D_206F_200B_200B_202C_206E_202C_206F_206F_202C_206F_200C_206D_200E_200F_202C_206E_206A_202B_200F_206C_206D_200C_200C_200F_200C_200F_202B_202D_206C_202B_206A_202C_200B_200F_202D_202E(); - _200B_206F_206F_206D_206D_202D_206E_200D_206C_206E_206D_202E_200E_202E_206A_202B_200C_202D_202B_200D_206C_200C_200B_202D_206D_202D_206F_200B_206E_206D_202A_206A_206A_200E_202A_200E_200C_206D_206F_200E_202E(num); - float num8 = _206C_206D_202A_206F_200C_206C_202A_206A_206D_202C_206E_202A_202B_206E_202E_200E_200D_200B_206F_200D_202C_202E_200C_202A_202A_206B_202C_202A_202E_202C_206A_206D_200B_200C_206D_206B_206C_200D_206F_202D_202E().X - 8f; - _200D_202C_206F_200B_206D_200E_206D_202C_202B_206B_202B_206E_200F_206C_206D_202E_202B_206C_202A_200F_206A_202C_206F_202A_202E_202E_202E_206F_200D_200D_202D_200C_202E_202D_200B_202E_206C_202D_206C_200F_202E(_202C_200B_200D_206A_202B_200E_200C_200F_202B_200C_200B_202E_202A_200B_202C_206A_206A_206A_200B_200D_202A_206E_206D_202E_206F_200B_202D_202A_202D_202B_200C_206E_200F_202E_206E_200C_200D_206D_202A_206C_202E() + num8); - _206D_202B_202C_206B_200B_206A_202C_202A_200C_202D_202C_202D_200B_202E_206A_202B_200B_200E_200C_200E_206A_200E_202A_206A_202E_206C_202B_200D_200C_202A_202C_202E_206A_206B_200F_202A_202A_200D_202C_206A_202E(ref UiThemeUtils.PrimaryTextColor, (ImU8String)change.Description); - _206D_202C_206D_200E_202D_206E_202D_206E_202A_206D_202A_206F_200E_202E_206D_202D_206C_206B_206F_206F_202A_202C_206F_200B_200E_206C_206D_200C_202D_200D_206E_206E_202A_202D_202E_202A_202A_206C_200E_206F_202E(); - num2 = ((change.SubItems == null) ? 622444501 : 622444500); - while (true) - { - int num9 = num2; - int num4 = 622444502; - int num5 = num9; - int num10 = num5 + num4; - int num11 = num5 & num4; - switch (num10 - (num11 + num11)) - { - case 0: - num2 = 622444500; - break; - case 1: - DrawSubItems(change.SubItems, baseX, changeIndent); - num2 = 622444501; - break; - case 3: - return; - case 2: - num2 = ((change.SubItems.Count <= 0) ? 622444501 : 622444503); - break; - } + DrawSubItems(change.SubItems, baseX, changeIndent); } } @@ -318,126 +77,18 @@ internal static class ChangelogCategoryComponent float num = changeIndent + 20f; foreach (string subItem in subItems) { - _206A_200E_206D_206D_202B_202C_202A_206E_200D_202E_202B_206F_206D_200C_202D_206C_202E_200E_202C_202A_202D_206D_202E_206A_206D_202A_206C_202B_202A_206C_202C_206A_200D_206F_200E_202B_200F_206A_206B_206B_202E(baseX + num); - float num2 = _206E_206F_206F_206F_206A_202C_200C_206C_202E_206B_206B_200E_206D_206D_206A_202A_206F_202D_206B_206C_200E_206A_200F_206A_202E_200D_202E_202D_206F_206C_200D_206F_206A_206F_202C_200F_200B_202D_206B_202A_202E(); - ImRaii.FontDisposable fontDisposable = _206A_202C_200C_206A_206E_200B_206B_200B_202E_206C_206E_202B_200D_200F_200E_206A_200E_202C_206D_206C_202A_200F_206A_200E_200E_206E_206C_200F_202D_202D_206C_202B_206E_206D_202E_200C_206F_206C_206E_202C_202E(_206B_206A_206B_200B_206A_206E_202D_202E_206A_202B_200D_202D_202C_200C_206F_206C_202C_206F_200F_200D_200F_206A_202E_202E_206D_206D_206E_206A_200D_200D_202A_202E_202B_206C_202C_202A_206E_202B_202C_202D_202E(), true); - try + ImGui.SetCursorPosX(baseX + num); + float cursorPosY = ImGui.GetCursorPosY(); + using (ImRaii.PushFont(UiBuilder.IconFont)) { - _206D_202B_202C_206B_200B_206A_202C_202A_200C_202D_202C_202D_200B_202E_206A_202B_200B_200E_200C_200E_206A_200E_202A_206A_202E_206C_202B_200D_200C_202A_202C_202E_206A_206B_200F_202A_202A_200D_202C_206A_202E(ref UiThemeUtils.DimTextColor, (ImU8String)_202A_200C_202C_200D_206F_200D_206C_200F_202D_202A_206B_202E_200E_206E_206C_200F_202A_200C_200F_206F_202A_200C_206D_206F_202D_202D_206A_200C_202C_202B_206A_202B_202C_206F_202A_206F_200D_202B_200E_206E_202E(FontAwesomeIcon.AngleRight)); + ImGui.TextColored(in UiThemeUtils.DimTextColor, FontAwesomeIcon.AngleRight.ToIconString()); } - finally - { - int num3 = ((fontDisposable == null) ? (-940511254) : (-940511255)); - while (true) - { - int num4 = num3; - int num5 = -940511256; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) - { - case 2: - goto end_IL_0074; - case 1: - _206B_202B_206E_206B_200B_200B_206A_206B_200B_206C_202E_202C_206C_202C_200C_202B_206E_202C_206F_200F_202A_206F_206D_206D_202B_200B_206B_200F_202C_200B_200C_202C_206E_202A_206F_206C_202E_206D_202B_206A_202E((IDisposable)fontDisposable); - num3 = -940511254; - break; - case 0: - num3 = -940511255; - break; - } - continue; - end_IL_0074: - break; - } - } - _200B_200C_202A_206F_200D_206F_200B_200B_202C_206E_202C_206F_206F_202C_206F_200C_206D_200E_200F_202C_206E_206A_202B_200F_206C_206D_200C_200C_200F_200C_200F_202B_202D_206C_202B_206A_202C_200B_200F_202D_202E(); - _200B_206F_206F_206D_206D_202D_206E_200D_206C_206E_206D_202E_200E_202E_206A_202B_200C_202D_202B_200D_206C_200C_200B_202D_206D_202D_206F_200B_206E_206D_202A_206A_206A_200E_202A_200E_200C_206D_206F_200E_202E(num2); - float num9 = _206C_206D_202A_206F_200C_206C_202A_206A_206D_202C_206E_202A_202B_206E_202E_200E_200D_200B_206F_200D_202C_202E_200C_202A_202A_206B_202C_202A_202E_202C_206A_206D_200B_200C_206D_206B_206C_200D_206F_202D_202E().X - 8f; - _200D_202C_206F_200B_206D_200E_206D_202C_202B_206B_202B_206E_200F_206C_206D_202E_202B_206C_202A_200F_206A_202C_206F_202A_202E_202E_202E_206F_200D_200D_202D_200C_202E_202D_200B_202E_206C_202D_206C_200F_202E(_202C_200B_200D_206A_202B_200E_200C_200F_202B_200C_200B_202E_202A_200B_202C_206A_206A_206A_200B_200D_202A_206E_206D_202E_206F_200B_202D_202A_202D_202B_200C_206E_200F_202E_206E_200C_200D_206D_202A_206C_202E() + num9); - _206D_202B_202C_206B_200B_206A_202C_202A_200C_202D_202C_202D_200B_202E_206A_202B_200B_200E_200C_200E_206A_200E_202A_206A_202E_206C_202B_200D_200C_202A_202C_202E_206A_206B_200F_202A_202A_200D_202C_206A_202E(ref UiThemeUtils.DimTextColor, (ImU8String)subItem); - _206D_202C_206D_200E_202D_206E_202D_206E_202A_206D_202A_206F_200E_202E_206D_202D_206C_206B_206F_206F_202A_202C_206F_200B_200E_206C_206D_200C_202D_200D_206E_206E_202A_202D_202E_202A_202A_206C_200E_206F_202E(); + ImGui.SameLine(); + ImGui.SetCursorPosY(cursorPosY); + float num2 = ImGui.GetContentRegionAvail().X - 8f; + ImGui.PushTextWrapPos(ImGui.GetCursorPosX() + num2); + ImGui.TextColored(in UiThemeUtils.DimTextColor, subItem); + ImGui.PopTextWrapPos(); } } - - static void _206E_202C_202B_206A_206C_200D_200B_200E_206B_206B_202B_200B_206E_202B_206A_206D_202C_200B_200F_200D_206A_202E_200F_206A_200D_200C_200F_206F_202C_206C_202C_200B_200F_200C_206C_206E_206D_202E_206C_202A_202E() - { - ImGui.Spacing(); - } - - static float _206E_206F_206F_206F_206A_202C_200C_206C_202E_206B_206B_200E_206D_206D_206A_202A_206F_202D_206B_206C_200E_206A_200F_206A_202E_200D_202E_202D_206F_206C_200D_206F_206A_206F_202C_200F_200B_202D_206B_202A_202E() - { - return ImGui.GetCursorPosY(); - } - - static void _206A_200E_206D_206D_202B_202C_202A_206E_200D_202E_202B_206F_206D_200C_202D_206C_202E_200E_202C_202A_202D_206D_202E_206A_206D_202A_206C_202B_202A_206C_202C_206A_200D_206F_200E_202B_200F_206A_206B_206B_202E(float P_0) - { - ImGui.SetCursorPosX(P_0); - } - - static ImFontPtr _206B_206A_206B_200B_206A_206E_202D_202E_206A_202B_200D_202D_202C_200C_206F_206C_202C_206F_200F_200D_200F_206A_202E_202E_206D_206D_206E_206A_200D_200D_202A_202E_202B_206C_202C_202A_206E_202B_202C_202D_202E() - { - return UiBuilder.IconFont; - } - - static ImRaii.FontDisposable _206A_202C_200C_206A_206E_200B_206B_200B_202E_206C_206E_202B_200D_200F_200E_206A_200E_202C_206D_206C_202A_200F_206A_200E_200E_206E_206C_200F_202D_202D_206C_202B_206E_206D_202E_200C_206F_206C_206E_202C_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static string _202A_200C_202C_200D_206F_200D_206C_200F_202D_202A_206B_202E_200E_206E_206C_200F_202A_200C_200F_206F_202A_200C_206D_206F_202D_202D_206A_200C_202C_202B_206A_202B_202C_206F_202A_206F_200D_202B_200E_206E_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static void _206D_202B_202C_206B_200B_206A_202C_202A_200C_202D_202C_202D_200B_202E_206A_202B_200B_200E_200C_200E_206A_200E_202A_206A_202E_206C_202B_200D_200C_202A_202C_202E_206A_206B_200F_202A_202A_200D_202C_206A_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static void _206B_202B_206E_206B_200B_200B_206A_206B_200B_206C_202E_202C_206C_202C_200C_202B_206E_202C_206F_200F_202A_206F_206D_206D_202B_200B_206B_200F_202C_200B_200C_202C_206E_202A_206F_206C_202E_206D_202B_206A_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _200B_200C_202A_206F_200D_206F_200B_200B_202C_206E_202C_206F_206F_202C_206F_200C_206D_200E_200F_202C_206E_206A_202B_200F_206C_206D_200C_200C_200F_200C_200F_202B_202D_206C_202B_206A_202C_200B_200F_202D_202E() - { - ImGui.SameLine(); - } - - static void _200B_206F_206F_206D_206D_202D_206E_200D_206C_206E_206D_202E_200E_202E_206A_202B_200C_202D_202B_200D_206C_200C_200B_202D_206D_202D_206F_200B_206E_206D_202A_206A_206A_200E_202A_200E_200C_206D_206F_200E_202E(float P_0) - { - ImGui.SetCursorPosY(P_0); - } - - static ImRaii.ColorDisposable _202A_200F_206A_202D_200D_200D_202B_206C_206B_206A_200E_202D_206D_202B_206B_206C_206F_200F_202C_200D_206F_200E_200C_206D_202C_206A_206A_206F_206F_206D_206F_200C_202B_202B_206A_202C_206C_202A_206E_206A_202E(ImGuiCol P_0, Vector4 P_1, bool P_2) - { - return ImRaii.PushColor(P_0, P_1, P_2); - } - - static void _206D_206C_202B_206D_202B_206E_200D_202E_202C_206A_206D_206D_202B_206E_206C_202B_202A_202E_206A_200E_200F_206E_202A_206A_206A_200B_202C_206C_206A_202A_200C_202A_206F_206B_206A_200E_202E_206D_206D_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static Vector2 _206C_206D_202A_206F_200C_206C_202A_206A_206D_202C_206E_202A_202B_206E_202E_200E_200D_200B_206F_200D_202C_202E_200C_202A_202A_206B_202C_202A_202E_202C_206A_206D_200B_200C_206D_206B_206C_200D_206F_202D_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static float _202C_200B_200D_206A_202B_200E_200C_200F_202B_200C_200B_202E_202A_200B_202C_206A_206A_206A_200B_200D_202A_206E_206D_202E_206F_200B_202D_202A_202D_202B_200C_206E_200F_202E_206E_200C_200D_206D_202A_206C_202E() - { - return ImGui.GetCursorPosX(); - } - - static void _200D_202C_206F_200B_206D_200E_206D_202C_202B_206B_202B_206E_200F_206C_206D_202E_202B_206C_202A_200F_206A_202C_206F_202A_202E_202E_202E_206F_200D_200D_202D_200C_202E_202D_200B_202E_206C_202D_206C_200F_202E(float P_0) - { - ImGui.PushTextWrapPos(P_0); - } - - static void _206D_202C_206D_200E_202D_206E_202D_206E_202A_206D_202A_206F_200E_202E_206D_202D_206C_206B_206F_206F_202A_202C_206F_200B_200E_206C_206D_200C_202D_200D_206E_206E_202A_202D_202E_202A_202A_206C_200E_206F_202E() - { - ImGui.PopTextWrapPos(); - } } diff --git a/Questionable/Questionable.Windows.ChangelogComponents/ChangelogEntryComponent.cs b/Questionable/Questionable.Windows.ChangelogComponents/ChangelogEntryComponent.cs index 98c50ba..30683e5 100644 --- a/Questionable/Questionable.Windows.ChangelogComponents/ChangelogEntryComponent.cs +++ b/Questionable/Questionable.Windows.ChangelogComponents/ChangelogEntryComponent.cs @@ -1,10 +1,7 @@ using System; -using System.Collections; -using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Interface; using Dalamud.Interface.Utility.Raii; @@ -28,220 +25,83 @@ internal sealed class ChangelogEntryComponent _animationTime = animationTime; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Draw(ChangelogEntry changelog, bool isLatest, bool hasSetInitialState) { bool isNew = changelog.IsNewVersion(_configuration.LastViewedChangelogVersion, ChangelogData.Changelogs); - _206D_206D_206A_206F_202C_206C_206A_202D_206C_200F_206B_206B_200D_206E_206B_206A_200B_206C_206E_202B_202B_206B_202B_206E_202E_200C_200E_206B_206F_202E_200B_202B_206B_206F_206C_202E_206E_202D_200B_206B_202E(); - string text = changelog.ReleaseDate.ToString(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1240136689), _202A_206F_206F_206A_200F_202E_200B_206C_202A_206F_202B_200D_206C_202A_206E_202C_206F_202C_200B_202E_206F_202E_206F_200B_206F_200C_206B_206A_202D_202D_202E_206A_200C_206F_200B_206E_202C_200B_206B_202A_202E()); - int num = (hasSetInitialState ? 1911348857 : 1911348856); - while (true) + ImGui.GetWindowDrawList(); + string text = changelog.ReleaseDate.ToString("MMMM dd, yyyy", CultureInfo.InvariantCulture); + if (!hasSetInitialState) { - int num2 = num; - int num3 = 1911348857; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 1911348856; - break; - case 1: - _202A_206A_206F_202E_202C_206D_206E_200E_206B_202D_206D_202D_202E_202E_200C_202B_206F_200F_202A_200B_202D_206A_206F_200F_200C_202C_200E_202D_202A_200C_206D_206C_200C_200D_200F_200B_206F_202E_200F_200C_202E(isLatest, ImGuiCond.Always); - num = 1911348857; - break; - case 0: - { - string text2 = _200E_200B_202C_200B_206E_206F_206C_202B_206F_206B_202C_202C_202E_202D_202B_206D_202B_202A_200C_202E_206A_202A_206F_206B_206C_202B_200E_206D_200B_200C_206E_200C_206F_206A_202B_200F_206C_202B_206A_206D_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(198217444), changelog.Version); - float num7 = _202E_206D_206F_202D_200E_206A_206B_206A_202C_200B_202B_200D_202B_200F_206B_206B_202A_200C_206E_202E_206A_202D_200C_202B_200F_206E_200D_202D_202A_200C_200F_206B_206B_200D_200D_206D_202B_206B_206A_206B_202E(); - float num8 = num7; - ImRaii.FontDisposable fontDisposable = _202D_206C_206A_200C_200C_206A_206A_206E_200B_202B_200D_202D_200D_200F_206A_200F_200E_206A_202C_200C_202D_202B_202D_202D_206E_206A_202B_206B_200C_206B_206B_206C_202C_206B_202E_202B_200C_206D_206E_206A_202E(_206D_206D_200B_206C_202B_202B_200F_200B_206E_200D_202C_206E_200F_206D_200F_202B_202E_202D_200F_202A_202A_206F_200E_206B_206C_202C_202C_200E_206A_202B_200F_200D_202C_202A_206C_200C_206A_200B_206D_200D_202E(), true); - Vector2 versionSize; - try - { - versionSize = _206A_200D_200D_206B_206B_200C_200E_202D_206C_206B_200D_202E_206F_202C_206D_200F_202C_202C_202A_206E_200B_206D_202D_202E_200B_200C_202A_200D_206E_206A_200E_206C_202A_202E_200D_202E_202C_206A_200D_206A_202E((ImU8String)text2, false, -1f); - } - finally - { - num = ((fontDisposable == null) ? (-1789217360) : (-1789217357)); - while (true) - { - int num9 = num; - num3 = -1789217359; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 0: - num = -1789217357; - break; - case 2: - _206C_200C_202D_200C_202C_206E_206F_206D_200D_202B_206B_200F_206D_202A_206F_200F_200E_206C_200D_206C_206C_200E_200B_200F_206C_206A_202B_200C_202B_202B_202E_202E_200F_202A_200E_206B_206E_200F_200F_206D_202E((IDisposable)fontDisposable); - num = -1789217360; - break; - case 1: - goto end_IL_010a; - } - continue; - end_IL_010a: - break; - } - } - Vector2 dateSize = _206A_200D_200D_206B_206B_200C_200E_202D_206C_206B_200D_202E_206F_202C_206D_200F_202C_202C_202A_206E_200B_206D_202D_202E_200B_200C_202A_200D_206E_206A_200E_206C_202A_202E_200D_202E_202C_206A_200D_206A_202E((ImU8String)text, false, -1f); - float scaledIconFontSize = num7 * 0.85f; - float x = _206E_206C_202A_200C_200E_202E_202E_206C_200E_206A_200F_206E_202C_206B_200D_202C_200B_202D_200F_202E_206A_200D_202C_206F_206D_206C_200F_206A_202D_206F_202D_202B_206B_206B_202D_206E_206D_206F_206D_202A_202E().X; - Vector2 headerStartPos = _206D_202B_202D_206A_206F_206C_206A_202D_206E_206C_200F_206B_206F_202B_206B_206B_200F_202B_206D_200D_200D_206F_206C_206F_202B_202B_202C_202B_200F_200E_206F_202A_206E_200D_206D_206D_206E_206D_202A_200C_202E(); - Vector2 headerStartScreenPos = _206C_202E_206D_202B_206B_200E_206B_202B_200B_206F_206F_202C_200E_200D_200B_206B_206A_202D_206C_206F_200B_202B_206C_202B_202A_206B_202A_206D_206D_206A_202A_206C_200E_206A_206D_200B_200D_206B_206B_202E_202E(); - ImU8String imU8String = new ImU8String(19, 2); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1977092887)); - imU8String.AppendFormatted(changelog.Version); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(47339251)); - imU8String.AppendFormatted(_windowOpenCount); - bool num12 = _200F_202C_206F_200F_206A_200F_202C_202C_206C_202B_200D_202D_206B_202B_200B_206F_200D_206E_200F_202E_202C_206F_200F_200B_200B_200D_206B_206E_206C_200C_206C_202C_202E_200E_200B_206A_202B_206C_202E_200D_202E(imU8String, ImGuiTreeNodeFlags.None); - Vector2 vector = _206D_202B_202D_206A_206F_206C_206A_202D_206E_206C_200F_206B_206F_202B_206B_206B_200F_202B_206D_200D_200D_206F_206C_206F_202B_202B_202C_202B_200F_200E_206F_202A_206E_200D_206D_206D_206E_206D_202A_200C_202E(); - float verticalOffset = (vector.Y - headerStartPos.Y - num8) * 0.5f - 1f; - DrawVersionText(text2, versionSize, headerStartPos, verticalOffset); - DrawNewBadge(isNew, headerStartScreenPos, x); - DrawDateWithIcon(text, dateSize, scaledIconFontSize, headerStartScreenPos, headerStartPos, x, verticalOffset, num7); - _206A_206C_200B_206C_202D_200E_202B_206F_206F_206E_206C_200D_202A_206A_202E_206E_200E_202E_200D_200C_200B_200C_202D_202D_200D_202C_200C_200B_206F_200E_206F_202D_200B_206A_202D_206E_200F_202C_206D_202E_202E(vector); - num = (num12 ? 301162147 : 301162144); - while (true) - { - int num13 = num; - num3 = 301162145; - num4 = num13; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - DrawChangelogContent(changelog); - return; - case 1: - return; - case 0: - goto IL_0280; - } - continue; - IL_0280: - num = 301162144; - } - } - } + ImGui.SetNextItemOpen(isLatest, ImGuiCond.Always); + } + string text2 = "v" + changelog.Version; + float fontSize = ImGui.GetFontSize(); + float num = fontSize; + Vector2 versionSize; + using (ImRaii.PushFont(UiBuilder.MonoFont)) + { + versionSize = ImGui.CalcTextSize(text2); + } + Vector2 dateSize = ImGui.CalcTextSize(text); + float scaledIconFontSize = fontSize * 0.85f; + float x = ImGui.GetContentRegionAvail().X; + Vector2 cursorPos = ImGui.GetCursorPos(); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + ImU8String label = new ImU8String(19, 2); + label.AppendLiteral("###header_"); + label.AppendFormatted(changelog.Version); + label.AppendLiteral("_changes_"); + label.AppendFormatted(_windowOpenCount); + bool num2 = ImGui.CollapsingHeader(label); + Vector2 cursorPos2 = ImGui.GetCursorPos(); + float verticalOffset = (cursorPos2.Y - cursorPos.Y - num) * 0.5f - 1f; + DrawVersionText(text2, versionSize, cursorPos, verticalOffset); + DrawNewBadge(isNew, cursorScreenPos, x); + DrawDateWithIcon(text, dateSize, scaledIconFontSize, cursorScreenPos, cursorPos, x, verticalOffset, fontSize); + ImGui.SetCursorPos(cursorPos2); + if (num2) + { + DrawChangelogContent(changelog); } } private static void DrawVersionText(string versionText, Vector2 versionSize, Vector2 headerStartPos, float verticalOffset) { - float x = headerStartPos.X + _200F_200C_200D_202A_206B_200F_206B_200D_200E_202E_202B_202C_206A_202A_206A_202D_200C_206C_202D_202C_200B_206D_202B_200B_202B_206B_206F_202B_200C_202E_206C_200E_206E_206E_202B_202E_206A_200E_206C_206C_202E().FramePadding.X * 2f + 20f; - ImRaii.FontDisposable fontDisposable = _202D_206C_206A_200C_200C_206A_206A_206E_200B_202B_200D_202D_200D_200F_206A_200F_200E_206A_202C_200C_202D_202B_202D_202D_206E_206A_202B_206B_200C_206B_206B_206C_202C_206B_202E_202B_200C_206D_206E_206A_202E(_206D_206D_200B_206C_202B_202B_200F_200B_206E_200D_202C_206E_200F_206D_200F_202B_202E_202D_200F_202A_202A_206F_200E_206B_206C_202C_202C_200E_206A_202B_200F_200D_202C_202A_206C_200C_206A_200B_206D_200D_202E(), true); - try + float x = headerStartPos.X + ImGui.GetStyle().FramePadding.X * 2f + 20f; + using (ImRaii.PushFont(UiBuilder.MonoFont)) { - _206A_206C_200B_206C_202D_200E_202B_206F_206F_206E_206C_200D_202A_206A_202E_206E_200E_202E_200D_200C_200B_200C_202D_202D_200D_202C_200C_200B_206F_200E_206F_202D_200B_206A_202D_206E_200F_202C_206D_202E_202E(new Vector2(x, headerStartPos.Y + verticalOffset)); - _200D_202D_200F_202E_200E_202E_206C_202C_206B_200B_200E_202A_206C_206E_200F_202D_206E_206F_206B_200E_200F_206B_200C_202D_200E_206A_202C_202E_206F_200E_206E_202D_206B_200C_206A_206A_206C_200F_206A_200E_202E(ref UiThemeUtils.PrimaryTextColor, (ImU8String)versionText); - } - finally - { - int num = ((fontDisposable == null) ? (-657911003) : (-657911004)); - while (true) - { - int num2 = num; - int num3 = -657911003; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -657911004; - break; - case 1: - _206C_200C_202D_200C_202C_206E_206F_206D_200D_202B_206B_200F_206D_202A_206F_200F_200E_206C_200D_206C_206C_200E_200B_200F_206C_206A_202B_200C_202B_202B_202E_202E_200F_202A_200E_206B_206E_200F_200F_206D_202E((IDisposable)fontDisposable); - num = -657911003; - break; - case 0: - goto end_IL_0076; - } - continue; - end_IL_0076: - break; - } + ImGui.SetCursorPos(new Vector2(x, headerStartPos.Y + verticalOffset)); + ImGui.TextColored(in UiThemeUtils.PrimaryTextColor, versionText); } } private void DrawNewBadge(bool isNew, Vector2 headerStartScreenPos, float availableWidth) { - int num = (isNew ? 1708716040 : 1708716041); - while (true) + if (isNew) { - int num2 = num; - int num3 = 1708716040; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_004a; - case 1: - return; - case 0: - { - float num5 = 2.5f; - float w = (_200E_202E_206E_202D_200F_206C_202B_202B_202A_200B_202B_202C_202C_200C_200B_206B_200E_200B_200B_200B_200F_200C_206C_202D_206A_206E_200F_206C_200B_202E_206B_206F_202E_202B_202A_200E_202B_206F_206F_202E_202E(_animationTime * num5) + 1f) * 0.5f * 0.15f; - float y = _206C_200C_206D_206B_200F_202A_202A_202A_202E_206E_206F_202D_202C_206D_200D_206E_200B_206B_202C_206D_200B_206F_206B_206C_202E_200E_206B_202D_202A_200E_206F_200C_202C_200D_200D_202C_202C_200B_206F_202A_202E(); - float frameRounding = _200F_200C_200D_202A_206B_200F_206B_200D_200E_202E_202B_202C_206A_202A_206A_202D_200C_206C_202D_202C_200B_206D_202B_200B_202B_206B_206F_202B_200C_202E_206C_200E_206E_206E_202B_202E_206A_200E_206C_206C_202E().FrameRounding; - _206D_206D_206A_206F_202C_206C_206A_202D_206C_200F_206B_206B_200D_206E_206B_206A_200B_206C_206E_202B_202B_206B_202B_206E_202E_200C_200E_206B_206F_202E_200B_202B_206B_206F_206C_202E_206E_202D_200B_206B_202E().AddRectFilled(headerStartScreenPos, headerStartScreenPos + new Vector2(availableWidth, y), _206F_206E_206D_202B_200C_206E_206E_200E_206C_206B_206C_200E_206E_202B_202C_202E_206E_200D_202D_202D_202C_200E_200F_200B_202B_206B_206C_202A_202E_202C_206F_200C_206E_206E_200B_206C_200B_206B_200C_200D_202E(new Vector4(0.5f, 1f, 0.6f, w)), frameRounding); - return; - } - } - continue; - IL_004a: - num = 1708716041; + float num = 2.5f; + float w = (MathF.Sin(_animationTime * num) + 1f) * 0.5f * 0.15f; + float frameHeight = ImGui.GetFrameHeight(); + float frameRounding = ImGui.GetStyle().FrameRounding; + ImGui.GetWindowDrawList().AddRectFilled(headerStartScreenPos, headerStartScreenPos + new Vector2(availableWidth, frameHeight), ImGui.ColorConvertFloat4ToU32(new Vector4(0.5f, 1f, 0.6f, w)), frameRounding); } } private static void DrawDateWithIcon(string dateText, Vector2 dateSize, float scaledIconFontSize, Vector2 headerStartScreenPos, Vector2 headerStartPos, float availableWidth, float verticalOffset, float defaultFontSize) { - string text = _206D_200D_206B_202B_202E_202A_202D_206F_206C_206E_200C_200E_202E_200F_202E_206C_202A_206D_200F_202E_206D_202A_206D_202E_202E_200D_202D_200D_206D_202D_202A_202B_200E_206D_200E_206A_202B_202D_202E_206F_202E(FontAwesomeIcon.Calendar); - ImRaii.FontDisposable fontDisposable = _202D_206C_206A_200C_200C_206A_206A_206E_200B_202B_200D_202D_200D_200F_206A_200F_200E_206A_202C_200C_202D_202B_202D_202D_206E_206A_202B_206B_200C_206B_206B_206C_202C_206B_202E_202B_200C_206D_206E_206A_202E(_200B_206F_206C_200B_202B_200D_200B_206D_202B_200F_202E_200E_202B_202E_200F_206D_202A_202C_206E_200C_206B_206C_202D_202D_200F_200F_206A_206A_200C_202B_202D_200D_200C_200E_206C_206B_206E_202C_202A_202E(), true); + string text = FontAwesomeIcon.Calendar.ToIconString(); Vector2 vector; - try + using (ImRaii.PushFont(UiBuilder.IconFont)) { - vector = _206A_200D_200D_206B_206B_200C_200E_202D_206C_206B_200D_202E_206F_202C_206D_200F_202C_202C_202A_206E_200B_206D_202D_202E_200B_200C_202A_200D_206E_206A_200E_206C_202A_202E_200D_202E_202C_206A_200D_206A_202E((ImU8String)text, false, -1f); + vector = ImGui.CalcTextSize(text); } - finally - { - int num = ((fontDisposable == null) ? (-485668874) : (-485668873)); - while (true) - { - int num2 = num; - int num3 = -485668874; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto end_IL_004e; - case 1: - _206C_200C_202D_200C_202C_206E_206F_206D_200D_202B_206B_200F_206D_202A_206F_200F_200E_206C_200D_206C_206C_200E_200B_200F_206C_206A_202B_200C_202B_202B_202E_202E_200F_202A_200E_206B_206E_200F_200F_206D_202E((IDisposable)fontDisposable); - num = -485668874; - break; - case 2: - num = -485668873; - break; - } - continue; - end_IL_004e: - break; - } - } - float num7 = vector.X * (scaledIconFontSize / defaultFontSize); - float num8 = num7 + 4f + dateSize.X; - float num9 = availableWidth - num8 - 12f; - Vector2 pos = headerStartScreenPos + new Vector2(num9, verticalOffset); - _206D_206D_206A_206F_202C_206C_206A_202D_206C_200F_206B_206B_200D_206E_206B_206A_200B_206C_206E_202B_202B_206B_202B_206E_202E_200C_200E_206B_206F_202E_200B_202B_206B_206F_206C_202E_206E_202D_200B_206B_202E().AddText(_200B_206F_206C_200B_202B_200D_200B_206D_202B_200F_202E_200E_202B_202E_200F_206D_202A_202C_206E_200C_206B_206C_202D_202D_200F_200F_206A_206A_200C_202B_202D_200D_200C_200E_206C_206B_206E_202C_202A_202E(), scaledIconFontSize, pos, _206F_206E_206D_202B_200C_206E_206E_200E_206C_206B_206C_200E_206E_202B_202C_202E_206E_200D_202D_202D_202C_200E_200F_200B_202B_206B_206C_202A_202E_202C_206F_200C_206E_206E_200B_206C_200B_206B_200C_200D_202E(UiThemeUtils.DimTextColor), text); - _206A_206C_200B_206C_202D_200E_202B_206F_206F_206E_206C_200D_202A_206A_202E_206E_200E_202E_200D_200C_200B_200C_202D_202D_200D_202C_200C_200B_206F_200E_206F_202D_200B_206A_202D_206E_200F_202C_206D_202E_202E(new Vector2(num9 + num7 + 4f, headerStartPos.Y + verticalOffset)); - _200D_202D_200F_202E_200E_202E_206C_202C_206B_200B_200E_202A_206C_206E_200F_202D_206E_206F_206B_200E_200F_206B_200C_202D_200E_206A_202C_202E_206F_200E_206E_202D_206B_200C_206A_206A_206C_200F_206A_200E_202E(ref UiThemeUtils.PrimaryTextColor, (ImU8String)dateText); + float num = vector.X * (scaledIconFontSize / defaultFontSize); + float num2 = num + 4f + dateSize.X; + float num3 = availableWidth - num2 - 12f; + Vector2 pos = headerStartScreenPos + new Vector2(num3, verticalOffset); + ImGui.GetWindowDrawList().AddText(UiBuilder.IconFont, scaledIconFontSize, pos, ImGui.ColorConvertFloat4ToU32(UiThemeUtils.DimTextColor), text); + ImGui.SetCursorPos(new Vector2(num3 + num + 4f, headerStartPos.Y + verticalOffset)); + ImGui.TextColored(in UiThemeUtils.PrimaryTextColor, dateText); } private static void DrawChangelogContent(ChangelogEntry changelog) @@ -254,196 +114,17 @@ internal sealed class ChangelogEntryComponent Vector2 item = tuple.ContentStartPos; float item2 = tuple.AvailableWidth; ImDrawListPtr item3 = tuple.DrawList; - float baseX = _206C_202E_200E_202E_206A_206A_202C_206C_202A_200F_202E_200E_202C_206F_200D_206C_200E_200F_202E_206F_206A_202D_206D_202B_206A_202E_202D_206C_200E_206E_206B_206D_200F_200C_200C_206B_206F_200C_200F_206D_202E(); + float cursorPosX = ImGui.GetCursorPosX(); bool flag = true; - IEnumerator<IGrouping<EChangeCategory, ChangeEntry>> enumerator = orderedEnumerable.GetEnumerator(); - try + foreach (IGrouping<EChangeCategory, ChangeEntry> item4 in orderedEnumerable) { - int num = -775563470; - IGrouping<EChangeCategory, ChangeEntry> current = default(IGrouping<EChangeCategory, ChangeEntry>); - while (true) + if (!flag) { - int num2 = num; - int num3 = -775563465; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -775563470; - break; - case 5: - num = (_202C_206C_200E_202E_202B_202A_206B_202D_206D_200E_206C_200F_202A_202D_202C_206E_200D_206E_206C_206C_202B_206D_206D_206B_206E_206E_206E_206A_202D_202B_206C_200C_206C_206A_200C_202B_200C_206D_206E_200F_202E((IEnumerator)enumerator) ? (-775563467) : (-775563468)); - break; - case 4: - _202B_206B_202A_206B_202C_200C_200F_200D_200F_206F_202C_200D_200B_202B_202E_206D_206D_206A_206F_202D_206F_200E_206F_200F_206F_206A_202C_202A_206B_202D_206E_206E_202D_206C_200B_206E_202E_206D_200C_206E_202E(); - num = -775563466; - break; - case 2: - current = enumerator.Current; - num = (flag ? (-775563466) : (-775563469)); - break; - case 1: - ChangelogCategoryComponent.DrawCategoryGroup(current.Key, current.ToList(), baseX); - flag = false; - num = -775563470; - break; - case 3: - goto end_IL_0089; - } - continue; - end_IL_0089: - break; - } - } - finally - { - int num = ((enumerator == null) ? 420575280 : 420575281); - while (true) - { - int num7 = num; - int num3 = 420575280; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - goto end_IL_0173; - case 1: - _206C_200C_202D_200C_202C_206E_206F_206D_200D_202B_206B_200F_206D_202A_206F_200F_200E_206C_200D_206C_206C_200E_200B_200F_206C_206A_202B_200C_202B_202B_202E_202E_200F_202A_200E_206B_206E_200F_200F_206D_202E((IDisposable)enumerator); - num = 420575280; - break; - case 2: - num = 420575281; - break; - } - continue; - end_IL_0173: - break; + ImGui.Spacing(); } + ChangelogCategoryComponent.DrawCategoryGroup(item4.Key, item4.ToList(), cursorPosX); + flag = false; } UiThemeUtils.EndCard(item, item2, item3); } - - static ImDrawListPtr _206D_206D_206A_206F_202C_206C_206A_202D_206C_200F_206B_206B_200D_206E_206B_206A_200B_206C_206E_202B_202B_206B_202B_206E_202E_200C_200E_206B_206F_202E_200B_202B_206B_206F_206C_202E_206E_202D_200B_206B_202E() - { - return ImGui.GetWindowDrawList(); - } - - static CultureInfo _202A_206F_206F_206A_200F_202E_200B_206C_202A_206F_202B_200D_206C_202A_206E_202C_206F_202C_200B_202E_206F_202E_206F_200B_206F_200C_206B_206A_202D_202D_202E_206A_200C_206F_200B_206E_202C_200B_206B_202A_202E() - { - return CultureInfo.InvariantCulture; - } - - static void _202A_206A_206F_202E_202C_206D_206E_200E_206B_202D_206D_202D_202E_202E_200C_202B_206F_200F_202A_200B_202D_206A_206F_200F_200C_202C_200E_202D_202A_200C_206D_206C_200C_200D_200F_200B_206F_202E_200F_200C_202E(bool P_0, ImGuiCond P_1) - { - ImGui.SetNextItemOpen(P_0, P_1); - } - - static string _200E_200B_202C_200B_206E_206F_206C_202B_206F_206B_202C_202C_202E_202D_202B_206D_202B_202A_200C_202E_206A_202A_206F_206B_206C_202B_200E_206D_200B_200C_206E_200C_206F_206A_202B_200F_206C_202B_206A_206D_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static float _202E_206D_206F_202D_200E_206A_206B_206A_202C_200B_202B_200D_202B_200F_206B_206B_202A_200C_206E_202E_206A_202D_200C_202B_200F_206E_200D_202D_202A_200C_200F_206B_206B_200D_200D_206D_202B_206B_206A_206B_202E() - { - return ImGui.GetFontSize(); - } - - static ImFontPtr _206D_206D_200B_206C_202B_202B_200F_200B_206E_200D_202C_206E_200F_206D_200F_202B_202E_202D_200F_202A_202A_206F_200E_206B_206C_202C_202C_200E_206A_202B_200F_200D_202C_202A_206C_200C_206A_200B_206D_200D_202E() - { - return UiBuilder.MonoFont; - } - - static ImRaii.FontDisposable _202D_206C_206A_200C_200C_206A_206A_206E_200B_202B_200D_202D_200D_200F_206A_200F_200E_206A_202C_200C_202D_202B_202D_202D_206E_206A_202B_206B_200C_206B_206B_206C_202C_206B_202E_202B_200C_206D_206E_206A_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static Vector2 _206A_200D_200D_206B_206B_200C_200E_202D_206C_206B_200D_202E_206F_202C_206D_200F_202C_202C_202A_206E_200B_206D_202D_202E_200B_200C_202A_200D_206E_206A_200E_206C_202A_202E_200D_202E_202C_206A_200D_206A_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static void _206C_200C_202D_200C_202C_206E_206F_206D_200D_202B_206B_200F_206D_202A_206F_200F_200E_206C_200D_206C_206C_200E_200B_200F_206C_206A_202B_200C_202B_202B_202E_202E_200F_202A_200E_206B_206E_200F_200F_206D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static Vector2 _206E_206C_202A_200C_200E_202E_202E_206C_200E_206A_200F_206E_202C_206B_200D_202C_200B_202D_200F_202E_206A_200D_202C_206F_206D_206C_200F_206A_202D_206F_202D_202B_206B_206B_202D_206E_206D_206F_206D_202A_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static Vector2 _206D_202B_202D_206A_206F_206C_206A_202D_206E_206C_200F_206B_206F_202B_206B_206B_200F_202B_206D_200D_200D_206F_206C_206F_202B_202B_202C_202B_200F_200E_206F_202A_206E_200D_206D_206D_206E_206D_202A_200C_202E() - { - return ImGui.GetCursorPos(); - } - - static Vector2 _206C_202E_206D_202B_206B_200E_206B_202B_200B_206F_206F_202C_200E_200D_200B_206B_206A_202D_206C_206F_200B_202B_206C_202B_202A_206B_202A_206D_206D_206A_202A_206C_200E_206A_206D_200B_200D_206B_206B_202E_202E() - { - return ImGui.GetCursorScreenPos(); - } - - static bool _200F_202C_206F_200F_206A_200F_202C_202C_206C_202B_200D_202D_206B_202B_200B_206F_200D_206E_200F_202E_202C_206F_200F_200B_200B_200D_206B_206E_206C_200C_206C_202C_202E_200E_200B_206A_202B_206C_202E_200D_202E(ImU8String P_0, ImGuiTreeNodeFlags P_1) - { - return ImGui.CollapsingHeader(P_0, P_1); - } - - static void _206A_206C_200B_206C_202D_200E_202B_206F_206F_206E_206C_200D_202A_206A_202E_206E_200E_202E_200D_200C_200B_200C_202D_202D_200D_202C_200C_200B_206F_200E_206F_202D_200B_206A_202D_206E_200F_202C_206D_202E_202E(Vector2 P_0) - { - ImGui.SetCursorPos(P_0); - } - - static ImGuiStylePtr _200F_200C_200D_202A_206B_200F_206B_200D_200E_202E_202B_202C_206A_202A_206A_202D_200C_206C_202D_202C_200B_206D_202B_200B_202B_206B_206F_202B_200C_202E_206C_200E_206E_206E_202B_202E_206A_200E_206C_206C_202E() - { - return ImGui.GetStyle(); - } - - static void _200D_202D_200F_202E_200E_202E_206C_202C_206B_200B_200E_202A_206C_206E_200F_202D_206E_206F_206B_200E_200F_206B_200C_202D_200E_206A_202C_202E_206F_200E_206E_202D_206B_200C_206A_206A_206C_200F_206A_200E_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static float _200E_202E_206E_202D_200F_206C_202B_202B_202A_200B_202B_202C_202C_200C_200B_206B_200E_200B_200B_200B_200F_200C_206C_202D_206A_206E_200F_206C_200B_202E_206B_206F_202E_202B_202A_200E_202B_206F_206F_202E_202E(float P_0) - { - return MathF.Sin(P_0); - } - - static float _206C_200C_206D_206B_200F_202A_202A_202A_202E_206E_206F_202D_202C_206D_200D_206E_200B_206B_202C_206D_200B_206F_206B_206C_202E_200E_206B_202D_202A_200E_206F_200C_202C_200D_200D_202C_202C_200B_206F_202A_202E() - { - return ImGui.GetFrameHeight(); - } - - static uint _206F_206E_206D_202B_200C_206E_206E_200E_206C_206B_206C_200E_206E_202B_202C_202E_206E_200D_202D_202D_202C_200E_200F_200B_202B_206B_206C_202A_202E_202C_206F_200C_206E_206E_200B_206C_200B_206B_200C_200D_202E(Vector4 P_0) - { - return ImGui.ColorConvertFloat4ToU32(P_0); - } - - static string _206D_200D_206B_202B_202E_202A_202D_206F_206C_206E_200C_200E_202E_200F_202E_206C_202A_206D_200F_202E_206D_202A_206D_202E_202E_200D_202D_200D_206D_202D_202A_202B_200E_206D_200E_206A_202B_202D_202E_206F_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static ImFontPtr _200B_206F_206C_200B_202B_200D_200B_206D_202B_200F_202E_200E_202B_202E_200F_206D_202A_202C_206E_200C_206B_206C_202D_202D_200F_200F_206A_206A_200C_202B_202D_200D_200C_200E_206C_206B_206E_202C_202A_202E() - { - return UiBuilder.IconFont; - } - - static float _206C_202E_200E_202E_206A_206A_202C_206C_202A_200F_202E_200E_202C_206F_200D_206C_200E_200F_202E_206F_206A_202D_206D_202B_206A_202E_202D_206C_200E_206E_206B_206D_200F_200C_200C_206B_206F_200C_200F_206D_202E() - { - return ImGui.GetCursorPosX(); - } - - static void _202B_206B_202A_206B_202C_200C_200F_200D_200F_206F_202C_200D_200B_202B_202E_206D_206D_206A_206F_202D_206F_200E_206F_200F_206F_206A_202C_202A_206B_202D_206E_206E_202D_206C_200B_206E_202E_206D_200C_206E_202E() - { - ImGui.Spacing(); - } - - static bool _202C_206C_200E_202E_202B_202A_206B_202D_206D_200E_206C_200F_202A_202D_202C_206E_200D_206E_206C_206C_202B_206D_206D_206B_206E_206E_206E_206A_202D_202B_206C_200C_206C_206A_200C_202B_200C_206D_206E_200F_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } } diff --git a/Questionable/Questionable.Windows.ChangelogComponents/ChangelogFooterComponent.cs b/Questionable/Questionable.Windows.ChangelogComponents/ChangelogFooterComponent.cs index e7c3b75..5e08e6b 100644 --- a/Questionable/Questionable.Windows.ChangelogComponents/ChangelogFooterComponent.cs +++ b/Questionable/Questionable.Windows.ChangelogComponents/ChangelogFooterComponent.cs @@ -1,6 +1,5 @@ using System; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Interface; using Dalamud.Interface.Utility.Raii; @@ -9,273 +8,44 @@ namespace Questionable.Windows.ChangelogComponents; internal sealed class ChangelogFooterComponent { - [MethodImpl(MethodImplOptions.NoInlining)] public static void Draw(Action onConfirm) { - ImDrawListPtr imDrawListPtr = _206A_200D_202D_206D_206F_206E_202B_206F_200F_206C_200D_200C_206D_202D_206B_206B_202A_202C_202C_206C_202E_206A_206C_202D_200D_202D_200F_202A_206C_200F_206C_202A_206F_206C_206E_200F_200E_202D_202A_202C_202E(); - Vector2 vector = _206B_206B_200B_206B_206C_206D_202D_200D_200B_202D_206A_202A_202E_206C_206C_202C_200D_206F_202E_202D_202C_200C_206C_200C_202D_206B_206C_206D_200F_206C_206C_202D_200E_200C_202C_206E_202D_202E_200B_202B_202E(); - float x = _202C_200C_202E_202D_206A_202C_200F_202C_206E_200E_200C_200F_202E_200C_206D_202E_200E_206F_200F_202D_202C_202C_200C_206F_200E_202A_200F_200B_200D_200F_202E_200C_200B_206C_202C_202B_202C_200B_202C_202E_202E().X; - Vector2 pMax = vector + new Vector2(x, 2f); + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + float x = ImGui.GetContentRegionAvail().X; + Vector2 pMax = cursorScreenPos + new Vector2(x, 2f); Vector4 accentColor = UiThemeUtils.AccentColor; accentColor.W = 0.4f; - uint colUprLeft = _202B_206B_200C_206E_202B_202C_202B_200F_200D_206C_206A_206B_206C_206D_206D_202C_202B_206C_202B_206E_206A_206E_202B_206F_206C_202D_206C_200D_200B_206F_206F_202B_206C_202A_202A_206B_200B_202A_206E_206C_202E(accentColor); - uint colUprRight = _202B_206B_200C_206E_202B_202C_202B_200F_200D_206C_206A_206B_206C_206D_206D_202C_202B_206C_202B_206E_206A_206E_202B_206F_206C_202D_206C_200D_200B_206F_206F_202B_206C_202A_202A_206B_200B_202A_206E_206C_202E(UiThemeUtils.AccentColor); - uint colBotRight = _202B_206B_200C_206E_202B_202C_202B_200F_200D_206C_206A_206B_206C_206D_206D_202C_202B_206C_202B_206E_206A_206E_202B_206F_206C_202D_206C_200D_200B_206F_206F_202B_206C_202A_202A_206B_200B_202A_206E_206C_202E(UiThemeUtils.AccentColor); + uint colUprLeft = ImGui.ColorConvertFloat4ToU32(accentColor); + uint colUprRight = ImGui.ColorConvertFloat4ToU32(UiThemeUtils.AccentColor); + uint colBotRight = ImGui.ColorConvertFloat4ToU32(UiThemeUtils.AccentColor); accentColor = UiThemeUtils.AccentColor; accentColor.W = 0.4f; - imDrawListPtr.AddRectFilledMultiColor(vector, pMax, colUprLeft, colUprRight, colBotRight, _202B_206B_200C_206E_202B_202C_202B_200F_200D_206C_206A_206B_206C_206D_206D_202C_202B_206C_202B_206E_206A_206E_202B_206F_206C_202D_206C_200D_200B_206F_206F_202B_206C_202A_202A_206B_200B_202A_206E_206C_202E(accentColor)); - _200C_200C_206F_200C_206D_202A_206B_206B_202C_206D_200C_200F_206B_200B_202A_206C_206E_200D_200B_200B_202C_200B_200D_206B_200C_202A_200F_206A_202E_206B_206D_202A_200F_202B_200D_206E_200E_202A_200B_202B_202E(_206D_202D_200F_200E_200C_202A_200C_206C_200D_200E_202E_202B_200F_202C_200F_206C_202C_206C_200B_206C_206C_200E_206A_206E_206E_202E_202C_206E_200F_206E_200C_200F_200D_206F_200C_202C_206E_202E_206A_200C_202E() + 8f); - ImRaii.FontDisposable fontDisposable = _202E_202D_206B_206A_206B_200C_202B_202D_200D_202C_206D_206E_202E_200F_200F_200F_202B_206A_202B_200C_206C_202D_200B_202C_202D_202B_206C_200F_206E_206A_200C_202A_200F_200B_202B_200D_200B_202C_206D_206A_202E(_206D_202E_202A_206E_200D_206E_202E_202A_206A_202D_206C_206E_202B_202B_206A_206E_202C_202E_206C_202A_202A_202A_202B_206E_200D_202C_206D_206C_200D_206C_200E_200E_206D_206D_200F_202D_206C_206E_202D_200C_202E(), true); + windowDrawList.AddRectFilledMultiColor(cursorScreenPos, pMax, colUprLeft, colUprRight, colBotRight, ImGui.ColorConvertFloat4ToU32(accentColor)); + ImGui.SetCursorPosY(ImGui.GetCursorPosY() + 8f); float x2; - try + using (ImRaii.PushFont(UiBuilder.IconFont)) { - x2 = _206F_202D_200B_202A_202D_206A_202D_202E_200E_202B_202E_206B_200C_202E_206B_202D_202E_206D_200B_206D_206A_200C_200F_202C_202C_202E_200E_200E_200E_200D_206E_202C_206E_202A_206D_206A_202B_200D_200F_202C_202E((ImU8String)_206F_200B_200D_202A_202C_200E_206A_200F_206C_206F_202D_206F_202C_206B_206F_206A_206B_200B_206C_206F_206E_202D_206D_200D_206E_202C_200E_202D_200B_206F_202D_202E_206F_200B_206B_202B_206E_202E_200B_200E_202E(FontAwesomeIcon.CheckCircle), false, -1f).X; + x2 = ImGui.CalcTextSize(FontAwesomeIcon.CheckCircle.ToIconString()).X; } - finally + float num = x2 + 6f + ImGui.CalcTextSize("Got It!").X + ImGui.GetStyle().FramePadding.X * 2f; + float num2 = (ImGui.GetContentRegionAvail().X - num) * 0.5f; + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + num2); + using (ImRaii.PushColor(ImGuiCol.Button, UiThemeUtils.PlayButtonColor)) { - int num = ((fontDisposable == null) ? (-552404026) : (-552404025)); - while (true) + using (ImRaii.PushColor(ImGuiCol.ButtonHovered, UiThemeUtils.PlayButtonHover)) { - int num2 = num; - int num3 = -552404026; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + using (ImRaii.PushColor(ImGuiCol.ButtonActive, UiThemeUtils.PlayButtonActive)) { - case 0: - goto end_IL_00d9; - case 1: - _202D_206D_202A_200B_200D_202A_202D_202C_200F_202D_202D_200B_200B_202E_200B_200C_200C_200D_206A_202B_206D_202E_202B_202D_200C_202A_206F_202B_200E_200D_202E_206B_206A_200F_200E_206D_200E_206B_200D_206C_202E((IDisposable)fontDisposable); - num = -552404026; - break; - case 2: - num = -552404025; - break; - } - continue; - end_IL_00d9: - break; - } - } - float num7 = x2 + 6f + _206F_202D_200B_202A_202D_206A_202D_202E_200E_202B_202E_206B_200C_202E_206B_202D_202E_206D_200B_206D_206A_200C_200F_202C_202C_202E_200E_200E_200E_200D_206E_202C_206E_202A_206D_206A_202B_200D_200F_202C_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1882414385), false, -1f).X + _206C_206B_200B_206E_206C_200E_200E_206E_200D_202C_200D_202D_202D_202D_206B_200C_202B_200B_202B_200C_206F_206F_200F_202B_202B_200B_200C_206A_202E_206B_202A_200E_202A_200B_206D_200B_200F_206C_200D_206D_202E().FramePadding.X * 2f; - float num8 = (_202C_200C_202E_202D_206A_202C_200F_202C_206E_200E_200C_200F_202E_200C_206D_202E_200E_206F_200F_202D_202C_202C_200C_206F_200E_202A_200F_200B_200D_200F_202E_200C_200B_206C_202C_202B_202C_200B_202C_202E_202E().X - num7) * 0.5f; - _206C_200C_206D_200D_200F_202C_202E_202C_202A_200F_202B_202C_200D_206F_206A_206C_206B_200E_200C_202D_202C_202D_200B_206B_202A_200C_200D_200F_206E_200F_202A_200B_202B_202E_202C_202B_202B_200D_206F_200C_202E(_202A_206C_206F_200E_206B_206B_202A_200D_202A_200E_202B_206A_200E_206D_200F_200D_202E_206E_202C_206D_206D_202B_206D_200C_202B_200C_206A_202B_200E_202D_206A_202E_206B_202E_200D_200B_206C_206C_202A_202C_202E() + num8); - ImRaii.ColorDisposable colorDisposable = _206D_200E_202C_206F_206D_200B_200F_200D_206D_202A_202B_206D_200E_206A_206A_206A_206D_206E_202C_202E_200E_202B_206B_200E_200B_200E_202D_206F_206B_206E_202D_206F_202E_202D_200C_200E_202B_200C_206E_202E_202E(ImGuiCol.Button, UiThemeUtils.PlayButtonColor, true); - try - { - ImRaii.ColorDisposable colorDisposable2 = _206D_200E_202C_206F_206D_200B_200F_200D_206D_202A_202B_206D_200E_206A_206A_206A_206D_206E_202C_202E_200E_202B_206B_200E_200B_200E_202D_206F_206B_206E_202D_206F_202E_202D_200C_200E_202B_200C_206E_202E_202E(ImGuiCol.ButtonHovered, UiThemeUtils.PlayButtonHover, true); - try - { - ImRaii.ColorDisposable colorDisposable3 = _206D_200E_202C_206F_206D_200B_200F_200D_206D_202A_202B_206D_200E_206A_206A_206A_206D_206E_202C_202E_200E_202B_206B_200E_200B_200E_202D_206F_206B_206E_202D_206F_202E_202D_200C_200E_202B_200C_206E_202E_202E(ImGuiCol.ButtonActive, UiThemeUtils.PlayButtonActive, true); - try - { - ImRaii.ColorDisposable colorDisposable4 = _206D_200E_202C_206F_206D_200B_200F_200D_206D_202A_202B_206D_200E_206A_206A_206A_206D_206E_202C_202E_200E_202B_206B_200E_200B_200E_202D_206F_206B_206E_202D_206F_202E_202D_200C_200E_202B_200C_206E_202E_202E(ImGuiCol.Text, UiThemeUtils.PlayButtonText, true); - try + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.PlayButtonText)) { - int num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.CheckCircle, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1608333301), num7)) ? (-1623045989) : (-1623045990)); - while (true) + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.CheckCircle, "Got It!", num)) { - int num9 = num; - int num3 = -1623045989; - int num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 2: - num = -1623045990; - break; - case 1: - onConfirm(); - num = -1623045989; - break; - case 0: - return; - } - } - } - finally - { - int num = ((colorDisposable4 == null) ? 1005398311 : 1005398308); - while (true) - { - int num12 = num; - int num3 = 1005398309; - int num4 = num12; - int num13 = num4 + num3; - int num14 = num4 & num3; - switch (num13 - (num14 + num14)) - { - case 0: - num = 1005398308; - break; - case 1: - _202D_206D_202A_200B_200D_202A_202D_202C_200F_202D_202D_200B_200B_202E_200B_200C_200C_200D_206A_202B_206D_202E_202B_202D_200C_202A_206F_202B_200E_200D_202E_206B_206A_200F_200E_206D_200E_206B_200D_206C_202E((IDisposable)colorDisposable4); - num = 1005398311; - break; - case 2: - goto end_IL_026a; - } - continue; - end_IL_026a: - break; + onConfirm(); } } } - finally - { - int num = ((colorDisposable3 == null) ? (-259716919) : (-259716918)); - while (true) - { - int num15 = num; - int num3 = -259716917; - int num4 = num15; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -259716918; - break; - case 2: - goto end_IL_02d7; - case 1: - _202D_206D_202A_200B_200D_202A_202D_202C_200F_202D_202D_200B_200B_202E_200B_200C_200C_200D_206A_202B_206D_202E_202B_202D_200C_202A_206F_202B_200E_200D_202E_206B_206A_200F_200E_206D_200E_206B_200D_206C_202E((IDisposable)colorDisposable3); - num = -259716919; - break; - } - continue; - end_IL_02d7: - break; - } - } - } - finally - { - int num = ((colorDisposable2 == null) ? (-1298176791) : (-1298176792)); - while (true) - { - int num16 = num; - int num3 = -1298176791; - int num4 = num16; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_0342; - case 1: - _202D_206D_202A_200B_200D_202A_202D_202C_200F_202D_202D_200B_200B_202E_200B_200C_200C_200D_206A_202B_206D_202E_202B_202D_200C_202A_206F_202B_200E_200D_202E_206B_206A_200F_200E_206D_200E_206B_200D_206C_202E((IDisposable)colorDisposable2); - num = -1298176791; - break; - case 2: - num = -1298176792; - break; - } - continue; - end_IL_0342: - break; - } } } - finally - { - int num = ((colorDisposable == null) ? (-313871180) : (-313871177)); - while (true) - { - int num17 = num; - int num3 = -313871178; - int num4 = num17; - int num18 = num4 + num3; - int num19 = num4 & num3; - switch (num18 - (num19 + num19)) - { - case 2: - goto end_IL_03ad; - case 1: - _202D_206D_202A_200B_200D_202A_202D_202C_200F_202D_202D_200B_200B_202E_200B_200C_200C_200D_206A_202B_206D_202E_202B_202D_200C_202A_206F_202B_200E_200D_202E_206B_206A_200F_200E_206D_200E_206B_200D_206C_202E((IDisposable)colorDisposable); - num = -313871180; - break; - case 0: - num = -313871177; - break; - } - continue; - end_IL_03ad: - break; - } - } - } - - static ImDrawListPtr _206A_200D_202D_206D_206F_206E_202B_206F_200F_206C_200D_200C_206D_202D_206B_206B_202A_202C_202C_206C_202E_206A_206C_202D_200D_202D_200F_202A_206C_200F_206C_202A_206F_206C_206E_200F_200E_202D_202A_202C_202E() - { - return ImGui.GetWindowDrawList(); - } - - static Vector2 _206B_206B_200B_206B_206C_206D_202D_200D_200B_202D_206A_202A_202E_206C_206C_202C_200D_206F_202E_202D_202C_200C_206C_200C_202D_206B_206C_206D_200F_206C_206C_202D_200E_200C_202C_206E_202D_202E_200B_202B_202E() - { - return ImGui.GetCursorScreenPos(); - } - - static Vector2 _202C_200C_202E_202D_206A_202C_200F_202C_206E_200E_200C_200F_202E_200C_206D_202E_200E_206F_200F_202D_202C_202C_200C_206F_200E_202A_200F_200B_200D_200F_202E_200C_200B_206C_202C_202B_202C_200B_202C_202E_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static uint _202B_206B_200C_206E_202B_202C_202B_200F_200D_206C_206A_206B_206C_206D_206D_202C_202B_206C_202B_206E_206A_206E_202B_206F_206C_202D_206C_200D_200B_206F_206F_202B_206C_202A_202A_206B_200B_202A_206E_206C_202E(Vector4 P_0) - { - return ImGui.ColorConvertFloat4ToU32(P_0); - } - - static float _206D_202D_200F_200E_200C_202A_200C_206C_200D_200E_202E_202B_200F_202C_200F_206C_202C_206C_200B_206C_206C_200E_206A_206E_206E_202E_202C_206E_200F_206E_200C_200F_200D_206F_200C_202C_206E_202E_206A_200C_202E() - { - return ImGui.GetCursorPosY(); - } - - static void _200C_200C_206F_200C_206D_202A_206B_206B_202C_206D_200C_200F_206B_200B_202A_206C_206E_200D_200B_200B_202C_200B_200D_206B_200C_202A_200F_206A_202E_206B_206D_202A_200F_202B_200D_206E_200E_202A_200B_202B_202E(float P_0) - { - ImGui.SetCursorPosY(P_0); - } - - static ImFontPtr _206D_202E_202A_206E_200D_206E_202E_202A_206A_202D_206C_206E_202B_202B_206A_206E_202C_202E_206C_202A_202A_202A_202B_206E_200D_202C_206D_206C_200D_206C_200E_200E_206D_206D_200F_202D_206C_206E_202D_200C_202E() - { - return UiBuilder.IconFont; - } - - static ImRaii.FontDisposable _202E_202D_206B_206A_206B_200C_202B_202D_200D_202C_206D_206E_202E_200F_200F_200F_202B_206A_202B_200C_206C_202D_200B_202C_202D_202B_206C_200F_206E_206A_200C_202A_200F_200B_202B_200D_200B_202C_206D_206A_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static string _206F_200B_200D_202A_202C_200E_206A_200F_206C_206F_202D_206F_202C_206B_206F_206A_206B_200B_206C_206F_206E_202D_206D_200D_206E_202C_200E_202D_200B_206F_202D_202E_206F_200B_206B_202B_206E_202E_200B_200E_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static Vector2 _206F_202D_200B_202A_202D_206A_202D_202E_200E_202B_202E_206B_200C_202E_206B_202D_202E_206D_200B_206D_206A_200C_200F_202C_202C_202E_200E_200E_200E_200D_206E_202C_206E_202A_206D_206A_202B_200D_200F_202C_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static void _202D_206D_202A_200B_200D_202A_202D_202C_200F_202D_202D_200B_200B_202E_200B_200C_200C_200D_206A_202B_206D_202E_202B_202D_200C_202A_206F_202B_200E_200D_202E_206B_206A_200F_200E_206D_200E_206B_200D_206C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static ImGuiStylePtr _206C_206B_200B_206E_206C_200E_200E_206E_200D_202C_200D_202D_202D_202D_206B_200C_202B_200B_202B_200C_206F_206F_200F_202B_202B_200B_200C_206A_202E_206B_202A_200E_202A_200B_206D_200B_200F_206C_200D_206D_202E() - { - return ImGui.GetStyle(); - } - - static float _202A_206C_206F_200E_206B_206B_202A_200D_202A_200E_202B_206A_200E_206D_200F_200D_202E_206E_202C_206D_206D_202B_206D_200C_202B_200C_206A_202B_200E_202D_206A_202E_206B_202E_200D_200B_206C_206C_202A_202C_202E() - { - return ImGui.GetCursorPosX(); - } - - static void _206C_200C_206D_200D_200F_202C_202E_202C_202A_200F_202B_202C_200D_206F_206A_206C_206B_200E_200C_202D_202C_202D_200B_206B_202A_200C_200D_200F_206E_200F_202A_200B_202B_202E_202C_202B_202B_200D_206F_200C_202E(float P_0) - { - ImGui.SetCursorPosX(P_0); - } - - static ImRaii.ColorDisposable _206D_200E_202C_206F_206D_200B_200F_200D_206D_202A_202B_206D_200E_206A_206A_206A_206D_206E_202C_202E_200E_202B_206B_200E_200B_200E_202D_206F_206B_206E_202D_206F_202E_202D_200C_200E_202B_200C_206E_202E_202E(ImGuiCol P_0, Vector4 P_1, bool P_2) - { - return ImRaii.PushColor(P_0, P_1, P_2); } } diff --git a/Questionable/Questionable.Windows.ChangelogComponents/ChangelogHeaderComponent.cs b/Questionable/Questionable.Windows.ChangelogComponents/ChangelogHeaderComponent.cs index 740412d..eb9c84d 100644 --- a/Questionable/Questionable.Windows.ChangelogComponents/ChangelogHeaderComponent.cs +++ b/Questionable/Questionable.Windows.ChangelogComponents/ChangelogHeaderComponent.cs @@ -1,6 +1,5 @@ using System; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Interface; using Dalamud.Interface.Utility.Raii; @@ -18,25 +17,25 @@ internal sealed class ChangelogHeaderComponent public void Draw(Action<bool> onCloseClicked) { - _animationTime += _200B_202C_206B_200C_200E_206D_202C_202C_206C_202D_200B_206C_202A_206A_206E_200B_202B_200F_206A_200F_200E_200D_206F_202D_206E_202E_206C_200C_206C_200B_202E_200F_200B_206A_206C_202A_200C_206B_202B_200E_202E().DeltaTime; - ImDrawListPtr drawList = _200C_200E_200C_202D_206F_206A_200D_202B_206D_202A_206E_202B_206F_202D_200F_202D_206E_206B_202B_206F_200B_206F_200C_202D_202B_200E_206D_206C_202A_200B_206A_206B_206E_206B_200E_200C_206F_200E_202A_206B_202E(); - Vector2 headerStartPos = _202B_206D_200C_206E_200E_206E_202E_202A_200C_202C_200D_206F_202A_202C_206D_200F_200C_206C_200B_200C_202A_202C_206B_200D_206D_206A_200D_200D_200B_206E_200D_206F_206B_206C_200D_206C_202A_206E_206D_202D_202E(); - float x = _200F_202B_206C_202B_200C_202D_200B_206C_202E_202B_206D_200D_206C_200D_206F_206C_206A_200D_200F_200F_202C_202C_200D_206E_200B_200D_202E_202C_206A_206F_200C_206A_206E_206B_206A_206E_206E_206A_206A_200C_202E().X; + _animationTime += ImGui.GetIO().DeltaTime; + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + float x = ImGui.GetContentRegionAvail().X; float headerHeight = 120f; - DrawBackground(drawList, headerStartPos, x, headerHeight); - DrawAnimatedBorder(drawList, headerStartPos, x, headerHeight); - DrawSparkles(drawList, headerStartPos, x, headerHeight); - DrawCloseButton(drawList, headerStartPos, x, onCloseClicked); - DrawHeaderContent(headerStartPos, x, headerHeight); - DrawAccentLine(drawList, headerStartPos, x, headerHeight); - _206B_200F_206E_202D_202E_206F_206C_206B_206F_202E_202B_202A_206F_202B_206D_200C_200B_206D_202D_200C_200E_200E_206E_206E_202B_200E_202D_202D_206F_202C_200B_206B_206B_206D_202B_206A_206D_200B_202D_206F_202E(_206A_200D_200B_200E_206A_200F_200E_202A_206F_200F_206A_202C_202A_202C_200E_200D_200E_200F_206A_202D_206E_202D_202C_206B_206E_202D_206F_200F_202E_206D_206E_200E_206C_200B_206A_206F_206A_200B_206B_202E() + 8f); + DrawBackground(windowDrawList, cursorScreenPos, x, headerHeight); + DrawAnimatedBorder(windowDrawList, cursorScreenPos, x, headerHeight); + DrawSparkles(windowDrawList, cursorScreenPos, x, headerHeight); + DrawCloseButton(windowDrawList, cursorScreenPos, x, onCloseClicked); + DrawHeaderContent(cursorScreenPos, x, headerHeight); + DrawAccentLine(windowDrawList, cursorScreenPos, x, headerHeight); + ImGui.SetCursorPosY(ImGui.GetCursorPosY() + 8f); } private void DrawBackground(ImDrawListPtr drawList, Vector2 headerStartPos, float contentWidth, float headerHeight) { - float num = (_200F_202B_202B_206E_200E_202E_202C_206D_206C_200E_202D_200F_200B_202D_206B_202D_202C_200C_206F_206F_202C_206A_206E_200C_206D_200C_202C_202A_206F_202D_202C_202E_202B_200E_200C_200C_200F_206D_202E_200C_202E(_animationTime * 1.5f) + 1f) * 0.5f * 0.03f; - uint num2 = _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(new Vector4(0.15f + num, 0.1f + num, 0.2f + num, 0.95f)); - uint num3 = _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(new Vector4(0.08f, 0.05f, 0.12f, 0.95f)); + float num = (MathF.Sin(_animationTime * 1.5f) + 1f) * 0.5f * 0.03f; + uint num2 = ImGui.ColorConvertFloat4ToU32(new Vector4(0.15f + num, 0.1f + num, 0.2f + num, 0.95f)); + uint num3 = ImGui.ColorConvertFloat4ToU32(new Vector4(0.08f, 0.05f, 0.12f, 0.95f)); drawList.AddRectFilledMultiColor(headerStartPos, headerStartPos + new Vector2(contentWidth, headerHeight), num2, num2, num3, num3); } @@ -45,68 +44,31 @@ internal sealed class ChangelogHeaderComponent float num = 100f; float num2 = 250f; float num3 = _animationTime * num % num2; - float num4 = _200E_202A_206B_206E_200E_200C_200F_200D_206F_202A_202C_202E_206E_200C_206F_202D_206F_202D_200F_202D_206D_206D_206E_200C_206A_206E_200E_202B_206C_206C_200E_200F_206E_202C_200F_206A_206A_202A_206C_206B_202E(contentWidth / num2) + 2f; - int num5 = 0; - int num6 = 1598045895; - float num10 = default(float); - float num16 = default(float); - while (true) + float num4 = MathF.Ceiling(contentWidth / num2) + 2f; + for (int i = 0; (float)i < num4; i++) { - int num7 = num6; - int num8 = 1598045893; - int num9 = num7; - switch ((num9 | num8) - (num9 & num8)) + float num5 = (float)i * num2 - num3; + float num6 = num5 + num2; + if (!(num6 < 0f) && !(num5 > contentWidth)) { - case 6: - { - int num11 = num5; - num8 = 1; - num9 = num11; - int num12 = num9 ^ num8; - int num13 = num9 & num8; - num5 = num12 + (num13 + num13); - num6 = 1598045895; - break; - } - case 1: - num10 = (float)num5 * num2 - num3; - num16 = num10 + num2; - num6 = ((num16 < 0f) ? 1598045891 : 1598045888); - break; - case 3: - { - float num14 = _206C_202A_206D_200B_206E_206E_200B_202B_202E_202B_206B_200C_202D_202B_202A_200E_206F_200D_200F_206D_200D_206A_202A_206D_200D_200F_206B_200E_200C_206A_200F_200B_200D_200D_206B_206B_202B_200D_202E_206A_202E(0f, num10); - float num15 = _202E_206E_202E_202D_200C_202A_206D_202A_200C_202C_206F_202B_206D_206C_202E_202D_202C_206B_206D_200F_206C_202D_202B_206C_206F_202B_206C_202B_200E_202D_206D_202A_202B_202D_206D_206C_206B_202A_200C_202E_202E(contentWidth, num16); - float num17 = (num14 - num10) / num2; - float num18 = (num15 - num10) / num2; - float num19 = (_200F_202B_202B_206E_200E_202E_202C_206D_206C_200E_202D_200F_200B_202D_206B_202D_202C_200C_206F_206F_202C_206A_206E_200C_206D_200C_202C_202A_206F_202D_202C_202E_202B_200E_200C_200C_200F_206D_202E_200C_202E(num17 * MathF.PI * 2f - MathF.PI / 2f) + 1f) * 0.5f; - float num20 = (_200F_202B_202B_206E_200E_202E_202C_206D_206C_200E_202D_200F_200B_202D_206B_202D_202C_200C_206F_206F_202C_206A_206E_200C_206D_200C_202C_202A_206F_202D_202C_202E_202B_200E_200C_200C_200F_206D_202E_200C_202E(num18 * MathF.PI * 2f - MathF.PI / 2f) + 1f) * 0.5f; + float num7 = MathF.Max(0f, num5); + float num8 = MathF.Min(contentWidth, num6); + float num9 = (num7 - num5) / num2; + float num10 = (num8 - num5) / num2; + float num11 = (MathF.Sin(num9 * (float)Math.PI * 2f - (float)Math.PI / 2f) + 1f) * 0.5f; + float num12 = (MathF.Sin(num10 * (float)Math.PI * 2f - (float)Math.PI / 2f) + 1f) * 0.5f; Vector4 accentColor = UiThemeUtils.AccentColor; - accentColor.W = num19 * 0.8f; + accentColor.W = num11 * 0.8f; Vector4 value = accentColor; - Vector4 value2 = new Vector4(0.55f, 0.75f, 0.95f, num19 * 0.8f); + Vector4 value2 = new Vector4(0.55f, 0.75f, 0.95f, num11 * 0.8f); accentColor = UiThemeUtils.AccentColor; - accentColor.W = num20 * 0.8f; + accentColor.W = num12 * 0.8f; Vector4 value3 = accentColor; - Vector4 value4 = new Vector4(0.55f, 0.75f, 0.95f, num20 * 0.8f); - float num21 = (num17 + num18) * 0.5f; - Vector4 vector = Vector4.Lerp(value, value2, num21); - Vector4 vector2 = Vector4.Lerp(value3, value4, num21 + 0.2f); - drawList.AddRectFilledMultiColor(headerStartPos + new Vector2(num14, 0f), headerStartPos + new Vector2(num15, 3f), _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(vector), _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(vector2), _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(vector2), _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(vector)); - num6 = 1598045891; - break; - } - case 2: - num6 = (((float)num5 < num4) ? 1598045892 : 1598045893); - break; - case 0: - return; - case 5: - num6 = ((num10 > contentWidth) ? 1598045891 : 1598045894); - break; - case 4: - num6 = 1598045895; - break; + Vector4 value4 = new Vector4(0.55f, 0.75f, 0.95f, num12 * 0.8f); + float num13 = (num9 + num10) * 0.5f; + Vector4 input = Vector4.Lerp(value, value2, num13); + Vector4 input2 = Vector4.Lerp(value3, value4, num13 + 0.2f); + drawList.AddRectFilledMultiColor(headerStartPos + new Vector2(num7, 0f), headerStartPos + new Vector2(num8, 3f), ImGui.ColorConvertFloat4ToU32(input), ImGui.ColorConvertFloat4ToU32(input2), ImGui.ColorConvertFloat4ToU32(input2), ImGui.ColorConvertFloat4ToU32(input)); } } } @@ -114,47 +76,18 @@ internal sealed class ChangelogHeaderComponent private void DrawSparkles(ImDrawListPtr drawList, Vector2 headerStartPos, float contentWidth, float headerHeight) { int num = 12; - int num2 = 0; - int num3 = -726160502; - while (true) + for (int i = 0; i < num; i++) { - int num4 = num3; - int num5 = -726160503; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) - { - case 2: - num3 = -726160502; - break; - case 3: - num3 = ((num2 < num) ? (-726160504) : (-726160503)); - break; - case 1: - { - float num9 = (float)num2 * 123.456f; - float num10 = 0.8f + (float)(num2 % 3) * 0.15f; - float num11 = _animationTime * num10; - float x = num9 * 12.345f % 1f * contentWidth; - float y = (_200F_202B_202B_206E_200E_202E_202C_206D_206C_200E_202D_200F_200B_202D_206B_202D_202C_200C_206F_206F_202C_206A_206E_200C_206D_200C_202C_202A_206F_202D_202C_202E_202B_200E_200C_200C_200F_206D_202E_200C_202E(num11 + num9) + 1f) * 0.5f * headerHeight; - Vector2 pos = headerStartPos + new Vector2(x, y); - float num12 = (_200F_202B_202B_206E_200E_202E_202C_206D_206C_200E_202D_200F_200B_202D_206B_202D_202C_200C_206F_206F_202C_206A_206E_200C_206D_200C_202C_202A_206F_202D_202C_202E_202B_200E_200C_200C_200F_206D_202E_200C_202E(num11 * 3f + num9 * 2f) + 1f) * 0.5f; - float alpha = num12 * 0.6f; - float size = 2f + num12 * 1.5f; - DrawSparkleShape(drawList, pos, size, alpha, num2 % 4, num11); - int num13 = num2; - num5 = 1; - num6 = num13; - int num14 = num6 ^ num5; - int num15 = num6 & num5; - num2 = num14 + (num15 + num15); - num3 = -726160502; - break; - } - case 0: - return; - } + float num2 = (float)i * 123.456f; + float num3 = 0.8f + (float)(i % 3) * 0.15f; + float num4 = _animationTime * num3; + float x = num2 * 12.345f % 1f * contentWidth; + float y = (MathF.Sin(num4 + num2) + 1f) * 0.5f * headerHeight; + Vector2 pos = headerStartPos + new Vector2(x, y); + float num5 = (MathF.Sin(num4 * 3f + num2 * 2f) + 1f) * 0.5f; + float alpha = num5 * 0.6f; + float size = 2f + num5 * 1.5f; + DrawSparkleShape(drawList, pos, size, alpha, i % 4, num4); } } @@ -162,64 +95,31 @@ internal sealed class ChangelogHeaderComponent { switch (type) { - default: - { - int num = 510670740; - while (true) - { - int num2 = num; - int num3 = 510670741; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_001e; - case 0: - goto IL_0059; - case 3: - num = 510670740; - break; - case 1: - num = 510670737; - break; - case 4: - DrawCircleSparkle(drawList, pos, size, alpha); - return; - case 5: - goto end_IL_0002; - } - continue; - end_IL_001e: - break; - } - goto case 0; - } case 0: DrawCrossSparkle(drawList, pos, size, alpha); - return; - case 2: - goto IL_0059; - case 1: break; - IL_0059: + case 1: + DrawDiamondSparkle(drawList, pos, size, alpha); + break; + case 2: DrawStarSparkle(drawList, pos, size, alpha, time); - return; - end_IL_0002: + break; + default: + DrawCircleSparkle(drawList, pos, size, alpha); break; } - DrawDiamondSparkle(drawList, pos, size, alpha); } private static void DrawCrossSparkle(ImDrawListPtr drawList, Vector2 pos, float size, float alpha) { float num = size * 0.8f; - float thickness = _206C_202A_206D_200B_206E_206E_200B_202B_202E_202B_206B_200C_202D_202B_202A_200E_206F_200D_200F_206D_200D_206A_202A_206D_200D_200F_206B_200E_200C_206A_200F_200B_200D_200D_206B_206B_202B_200D_202E_206A_202E(1f, size * 0.3f); - drawList.AddLine(pos - new Vector2(num, 0f), pos + new Vector2(num, 0f), _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(new Vector4(0.9f, 0.8f, 1f, alpha)), thickness); - drawList.AddLine(pos - new Vector2(0f, num), pos + new Vector2(0f, num), _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(new Vector4(0.9f, 0.8f, 1f, alpha)), thickness); + float thickness = MathF.Max(1f, size * 0.3f); + drawList.AddLine(pos - new Vector2(num, 0f), pos + new Vector2(num, 0f), ImGui.ColorConvertFloat4ToU32(new Vector4(0.9f, 0.8f, 1f, alpha)), thickness); + drawList.AddLine(pos - new Vector2(0f, num), pos + new Vector2(0f, num), ImGui.ColorConvertFloat4ToU32(new Vector4(0.9f, 0.8f, 1f, alpha)), thickness); float radius = size * 1.5f; Vector4 accentColor = UiThemeUtils.AccentColor; accentColor.W = alpha * 0.2f; - drawList.AddCircleFilled(pos, radius, _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(accentColor)); + drawList.AddCircleFilled(pos, radius, ImGui.ColorConvertFloat4ToU32(accentColor)); } private static void DrawDiamondSparkle(ImDrawListPtr drawList, Vector2 pos, float size, float alpha) @@ -229,162 +129,70 @@ internal sealed class ChangelogHeaderComponent Vector2 p2 = pos + new Vector2(num, 0f); Vector2 p3 = pos + new Vector2(0f, num); Vector2 p4 = pos + new Vector2(0f - num, 0f); - drawList.AddQuadFilled(p, p2, p3, p4, _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(new Vector4(0.9f, 0.8f, 1f, alpha * 0.8f))); + drawList.AddQuadFilled(p, p2, p3, p4, ImGui.ColorConvertFloat4ToU32(new Vector4(0.9f, 0.8f, 1f, alpha * 0.8f))); float radius = size * 1.6f; Vector4 accentColor = UiThemeUtils.AccentColor; accentColor.W = alpha * 0.25f; - drawList.AddCircleFilled(pos, radius, _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(accentColor)); + drawList.AddCircleFilled(pos, radius, ImGui.ColorConvertFloat4ToU32(accentColor)); } private static void DrawStarSparkle(ImDrawListPtr drawList, Vector2 pos, float size, float alpha, float time) { - int num = 0; - int num2 = -1819671031; - while (true) + for (int i = 0; i < 4; i++) { - int num3 = num2; - int num4 = -1819671032; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 0: - num2 = -1819671031; - break; - case 3: - { - float radius = size * 1.7f; - Vector4 accentColor = UiThemeUtils.AccentColor; - accentColor.W = alpha * 0.3f; - drawList.AddCircleFilled(pos, radius, _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(accentColor)); - return; - } - case 1: - num2 = ((num < 4) ? (-1819671030) : (-1819671029)); - break; - case 2: - { - float num8 = (float)num * MathF.PI * 0.5f; - float num9 = size * 0.3f; - float num10 = size * 0.9f; - float num11 = num8 - 0.3f; - float num12 = num8 + 0.3f; - Vector2 p = pos + new Vector2(_200F_206E_200F_206E_206B_202D_206C_206C_202B_206E_200F_202D_200B_202B_200E_202A_206D_206F_206D_206E_202C_202D_202D_206B_202D_206A_202E_200C_200C_202B_206A_206E_206A_200C_202E_200C_200C_202B_202D_202E(num11) * num9, _200F_202B_202B_206E_200E_202E_202C_206D_206C_200E_202D_200F_200B_202D_206B_202D_202C_200C_206F_206F_202C_206A_206E_200C_206D_200C_202C_202A_206F_202D_202C_202E_202B_200E_200C_200C_200F_206D_202E_200C_202E(num11) * num9); - Vector2 p2 = pos + new Vector2(_200F_206E_200F_206E_206B_202D_206C_206C_202B_206E_200F_202D_200B_202B_200E_202A_206D_206F_206D_206E_202C_202D_202D_206B_202D_206A_202E_200C_200C_202B_206A_206E_206A_200C_202E_200C_200C_202B_202D_202E(num8) * num10, _200F_202B_202B_206E_200E_202E_202C_206D_206C_200E_202D_200F_200B_202D_206B_202D_202C_200C_206F_206F_202C_206A_206E_200C_206D_200C_202C_202A_206F_202D_202C_202E_202B_200E_200C_200C_200F_206D_202E_200C_202E(num8) * num10); - Vector2 p3 = pos + new Vector2(_200F_206E_200F_206E_206B_202D_206C_206C_202B_206E_200F_202D_200B_202B_200E_202A_206D_206F_206D_206E_202C_202D_202D_206B_202D_206A_202E_200C_200C_202B_206A_206E_206A_200C_202E_200C_200C_202B_202D_202E(num12) * num9, _200F_202B_202B_206E_200E_202E_202C_206D_206C_200E_202D_200F_200B_202D_206B_202D_202C_200C_206F_206F_202C_206A_206E_200C_206D_200C_202C_202A_206F_202D_202C_202E_202B_200E_200C_200C_200F_206D_202E_200C_202E(num12) * num9); - drawList.AddTriangleFilled(p, p2, p3, _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(new Vector4(0.9f, 0.8f, 1f, alpha))); - int num13 = num; - num4 = 1; - num5 = num13; - int num14 = num5 ^ num4; - int num15 = num5 & num4; - num = num14 + (num15 + num15); - num2 = -1819671031; - break; - } - } + float num = (float)i * (float)Math.PI * 0.5f; + float num2 = size * 0.3f; + float num3 = size * 0.9f; + float x = num - 0.3f; + float x2 = num + 0.3f; + Vector2 p = pos + new Vector2(MathF.Cos(x) * num2, MathF.Sin(x) * num2); + Vector2 p2 = pos + new Vector2(MathF.Cos(num) * num3, MathF.Sin(num) * num3); + Vector2 p3 = pos + new Vector2(MathF.Cos(x2) * num2, MathF.Sin(x2) * num2); + drawList.AddTriangleFilled(p, p2, p3, ImGui.ColorConvertFloat4ToU32(new Vector4(0.9f, 0.8f, 1f, alpha))); } + float radius = size * 1.7f; + Vector4 accentColor = UiThemeUtils.AccentColor; + accentColor.W = alpha * 0.3f; + drawList.AddCircleFilled(pos, radius, ImGui.ColorConvertFloat4ToU32(accentColor)); } private static void DrawCircleSparkle(ImDrawListPtr drawList, Vector2 pos, float size, float alpha) { - drawList.AddCircleFilled(pos, size, _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(new Vector4(0.9f, 0.8f, 1f, alpha))); + drawList.AddCircleFilled(pos, size, ImGui.ColorConvertFloat4ToU32(new Vector4(0.9f, 0.8f, 1f, alpha))); float radius = size * 1.8f; Vector4 accentColor = UiThemeUtils.AccentColor; accentColor.W = alpha * 0.3f; - drawList.AddCircleFilled(pos, radius, _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(accentColor)); + drawList.AddCircleFilled(pos, radius, ImGui.ColorConvertFloat4ToU32(accentColor)); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawCloseButton(ImDrawListPtr drawList, Vector2 headerStartPos, float contentWidth, Action<bool> onCloseClicked) { float num = 32f; Vector2 vector = headerStartPos + new Vector2(contentWidth - num - 8f, 8f); Vector2 center = vector + new Vector2(num * 0.5f, num * 0.5f); - Vector2 vector2 = _202C_200D_206E_206A_202D_202C_206C_202E_206B_200B_206B_200F_206E_202E_202E_200E_206A_202D_206D_206E_202C_200F_206A_200E_206B_200F_202D_200C_202D_206C_202D_200B_200D_202E_206E_206D_206A_202C_200B_206F_202E(); - int num2 = ((!(vector2.X >= vector.X)) ? (-1181352748) : (-1181352739)); - float num8 = default(float); - float w = default(float); - bool flag = default(bool); - while (true) + Vector2 mousePos = ImGui.GetMousePos(); + bool flag = mousePos.X >= vector.X && mousePos.X <= vector.X + num && mousePos.Y >= vector.Y && mousePos.Y <= vector.Y + num; + float w = (flag ? 0.9f : 0.5f); + float num2 = (flag ? ((MathF.Sin(_animationTime * 4f) + 1f) * 0.5f * 0.1f) : 0f); + uint num3; + if (!flag) { - int num3 = num2; - int num4 = -1181352748; - int num5 = num3; - float num9; - int num10; - float num6; - uint num7; - uint col; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - num9 = 0.9f; - goto IL_00c2; - case 5: - onCloseClicked(obj: false); - num2 = -1181352747; - break; - case 0: - num10 = 0; - goto IL_00f8; - case 9: - num2 = ((!(vector2.X <= vector.X + num)) ? (-1181352748) : (-1181352745)); - break; - case 4: - num10 = ((vector2.Y <= vector.Y + num) ? 1 : 0); - goto IL_00f8; - case 7: - num6 = (_200F_202B_202B_206E_200E_202E_202C_206D_206C_200E_202D_200F_200B_202D_206B_202D_202C_200C_206F_206F_202C_206A_206E_200C_206D_200C_202C_202A_206F_202D_202C_202E_202B_200E_200C_200C_200F_206D_202E_200C_202E(_animationTime * 4f) + 1f) * 0.5f * 0.1f; - goto IL_018b; - case 10: - num9 = 0.5f; - goto IL_00c2; - case 3: - num2 = ((!(vector2.Y >= vector.Y)) ? (-1181352748) : (-1181352752)); - break; - case 6: - { - Vector4 accentColor = UiThemeUtils.AccentColor; - accentColor.X = UiThemeUtils.AccentColor.X + num8; - accentColor.W = w; - num7 = _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(accentColor); - goto IL_0216; - } - case 1: - return; - case 11: - num2 = -1181352739; - break; - case 8: - num7 = _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(new Vector4(0.55f, 0.45f, 0.75f, w)); - goto IL_0216; - case 12: - { - num6 = 0f; - goto IL_018b; - } - IL_0216: - col = num7; - drawList.AddCircleFilled(center, num * 0.4f, col); - DrawAnimatedCross(drawList, center, flag); - _202E_206E_200B_200E_202B_200B_206A_200F_200E_206E_202E_202C_200C_200D_206D_202D_200D_202B_202C_206C_200C_200C_202D_206F_206A_200F_202C_206B_200C_200F_206E_206C_200E_206A_206A_200C_202A_206F_202E_206D_202E(vector); - num2 = ((!_200F_200F_206B_200E_202C_200C_206E_206B_200F_206A_200D_206A_200C_200B_206A_200E_206F_200B_206D_202B_206D_202A_206E_202D_206C_206F_202C_206F_206E_206F_206F_206E_202A_202E_202C_206D_202E_200E_202B_200C_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2026980897), new Vector2(num, num), ImGuiButtonFlags.None)) ? (-1181352747) : (-1181352751)); - break; - IL_00c2: - w = num9; - num2 = (flag ? (-1181352749) : (-1181352744)); - break; - IL_018b: - num8 = num6; - num2 = (flag ? (-1181352750) : (-1181352740)); - break; - IL_00f8: - flag = (byte)num10 != 0; - num2 = (flag ? (-1181352746) : (-1181352738)); - break; - } + num3 = ImGui.ColorConvertFloat4ToU32(new Vector4(0.55f, 0.45f, 0.75f, w)); + } + else + { + Vector4 accentColor = UiThemeUtils.AccentColor; + accentColor.X = UiThemeUtils.AccentColor.X + num2; + accentColor.W = w; + num3 = ImGui.ColorConvertFloat4ToU32(accentColor); + } + uint col = num3; + drawList.AddCircleFilled(center, num * 0.4f, col); + DrawAnimatedCross(drawList, center, flag); + ImGui.SetCursorScreenPos(vector); + if (ImGui.InvisibleButton("CloseButton", new Vector2(num, num))) + { + onCloseClicked(obj: false); } } @@ -392,23 +200,23 @@ internal sealed class ChangelogHeaderComponent { float thickness = 2f; float w = (isHovered ? 1f : 0.8f); - float num = (isHovered ? (_200F_202B_202B_206E_200E_202E_202C_206D_206C_200E_202D_200F_200B_202D_206B_202D_202C_200C_206F_206F_202C_206A_206E_200C_206D_200C_202C_202A_206F_202D_202C_202E_202B_200E_200C_200C_200F_206D_202E_200C_202E(_animationTime * 6f) * 0.1f) : 0f); - float num2 = _200F_206E_200F_206E_206B_202D_206C_206C_202B_206E_200F_202D_200B_202B_200E_202A_206D_206F_206D_206E_202C_202D_202D_206B_202D_206A_202E_200C_200C_202B_206A_206E_206A_200C_202E_200C_200C_202B_202D_202E(num); - float num3 = _200F_202B_202B_206E_200E_202E_202C_206D_206C_200E_202D_200F_200B_202D_206B_202D_202C_200C_206F_206F_202C_206A_206E_200C_206D_200C_202C_202A_206F_202D_202C_202E_202B_200E_200C_200C_200F_206D_202E_200C_202E(num); - float num4 = 8f * 0.5f; - Vector2 vector = new Vector2((0f - num4) * num2 - (0f - num4) * num3, (0f - num4) * num3 + (0f - num4) * num2); - Vector2 vector2 = new Vector2(num4 * num2 - num4 * num3, num4 * num3 + num4 * num2); - Vector2 vector3 = new Vector2((0f - num4) * num2 - num4 * num3, (0f - num4) * num3 + num4 * num2); - Vector2 vector4 = new Vector2(num4 * num2 - (0f - num4) * num3, num4 * num3 + (0f - num4) * num2); - drawList.AddLine(center + vector, center + vector2, _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(new Vector4(1f, 1f, 1f, w)), thickness); - drawList.AddLine(center + vector3, center + vector4, _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(new Vector4(1f, 1f, 1f, w)), thickness); + float x = (isHovered ? (MathF.Sin(_animationTime * 6f) * 0.1f) : 0f); + float num = MathF.Cos(x); + float num2 = MathF.Sin(x); + float num3 = 8f * 0.5f; + Vector2 vector = new Vector2((0f - num3) * num - (0f - num3) * num2, (0f - num3) * num2 + (0f - num3) * num); + Vector2 vector2 = new Vector2(num3 * num - num3 * num2, num3 * num2 + num3 * num); + Vector2 vector3 = new Vector2((0f - num3) * num - num3 * num2, (0f - num3) * num2 + num3 * num); + Vector2 vector4 = new Vector2(num3 * num - (0f - num3) * num2, num3 * num2 + (0f - num3) * num); + drawList.AddLine(center + vector, center + vector2, ImGui.ColorConvertFloat4ToU32(new Vector4(1f, 1f, 1f, w)), thickness); + drawList.AddLine(center + vector3, center + vector4, ImGui.ColorConvertFloat4ToU32(new Vector4(1f, 1f, 1f, w)), thickness); } private void DrawHeaderContent(Vector2 headerStartPos, float contentWidth, float headerHeight) { - float fadeIn = _202E_206E_202E_202D_200C_202A_206D_202A_200C_202C_206F_202B_206D_206C_202E_202D_202C_206B_206D_200F_206C_202D_202B_206C_206F_202B_206C_202B_200E_202D_206D_202A_202B_202D_206D_206C_206B_202A_200C_202E_202E(1f, _animationTime * 2f); - _202E_206E_200B_200E_202B_200B_206A_200F_200E_206E_202E_202C_200C_200D_206D_202D_200D_202B_202C_206C_200C_200C_202D_206F_206A_200F_202C_206B_200C_200F_206E_206C_200E_206A_206A_200C_202A_206F_202E_206D_202E(headerStartPos); - _206B_200F_206E_202D_202E_206F_206C_206B_206F_202E_202B_202A_206F_202B_206D_200C_200B_206D_202D_200C_200E_200E_206E_206E_202B_200E_202D_202D_206F_202C_200B_206B_206B_206D_202B_206A_206D_200B_202D_206F_202E(_206A_200D_200B_200E_206A_200F_200E_202A_206F_200F_206A_202C_202A_202C_200E_200D_200E_200F_206A_202D_206E_202D_202C_206B_206E_202D_206F_200F_202E_206D_206E_200E_206C_200B_206A_206F_206A_200B_206B_202E() + 30f); + float fadeIn = MathF.Min(1f, _animationTime * 2f); + ImGui.SetCursorScreenPos(headerStartPos); + ImGui.SetCursorPosY(ImGui.GetCursorPosY() + 30f); float centerX = contentWidth * 0.5f; DrawIcon(centerX, fadeIn); DrawTitle(centerX, fadeIn); @@ -417,282 +225,77 @@ internal sealed class ChangelogHeaderComponent private void DrawIcon(float centerX, float fadeIn) { - float num = _200F_202B_202B_206E_200E_202E_202C_206D_206C_200E_202D_200F_200B_202D_206B_202D_202C_200C_206F_206F_202C_206A_206E_200C_206D_200C_202C_202A_206F_202D_202C_202E_202B_200E_200C_200C_200F_206D_202E_200C_202E(_animationTime * 2f) * 3f; - float num2 = _200F_202B_202B_206E_200E_202E_202C_206D_206C_200E_202D_200F_200B_202D_206B_202D_202C_200C_206F_206F_202C_206A_206E_200C_206D_200C_202C_202A_206F_202D_202C_202E_202B_200E_200C_200C_200F_206D_202E_200C_202E(_animationTime * 1.5f + MathF.PI / 2f) * 1.5f; - ImRaii.FontDisposable fontDisposable = _200F_202D_200C_200C_206B_206B_200D_200F_206D_202E_202D_200D_202C_202C_200B_206D_206B_206F_206B_200D_200E_206A_206C_200D_202B_202D_202B_202D_206F_206C_202C_200F_200F_206A_202E_202B_206E_200C_202A_202A_202E(_202E_200B_202A_202E_206E_202B_200D_202D_206A_202A_200B_202B_202C_202E_200C_200E_202D_202C_206C_200B_200C_200E_206F_200F_202B_202A_206F_200D_206F_202D_202E_200F_206D_202C_200E_206A_202B_200D_206E_206B_202E(), true); - try + float num = MathF.Sin(_animationTime * 2f) * 3f; + float num2 = MathF.Sin(_animationTime * 1.5f + (float)Math.PI / 2f) * 1.5f; + using (ImRaii.PushFont(UiBuilder.IconFont)) { - string text = _200F_202C_206A_206A_206E_206F_202B_200E_200E_206A_202E_202D_200F_200C_206E_200E_202E_206D_206C_206A_200D_200F_206C_200D_206C_206E_202A_206C_200F_206C_206A_202B_206C_202C_206C_202E_200D_202E_206D_202D_202E(FontAwesomeIcon.FileAlt); - _200B_200F_206D_206E_200F_206E_206F_200D_206D_202A_202B_200B_206A_202A_206E_200F_202D_206D_200F_200E_206F_202E_200F_200F_206F_206A_200C_200B_200B_200D_200D_202C_200F_202A_206F_202E_202A_206F_202C_202C_202E(centerX - _202C_202B_206E_206D_200C_200B_206C_206A_202C_202B_200F_202C_202E_202E_206F_202B_200D_200B_200E_200C_206F_202E_206A_206D_206B_202C_206E_202C_206A_206C_200F_206B_206D_206F_200D_202A_202B_206E_206A_206E_202E((ImU8String)text, false, -1f).X * 0.5f + num2); - _206B_200F_206E_202D_202E_206F_206C_206B_206F_202E_202B_202A_206F_202B_206D_200C_200B_206D_202D_200C_200E_200E_206E_206E_202B_200E_202D_202D_206F_202C_200B_206B_206B_206D_202B_206A_206D_200B_202D_206F_202E(_206A_200D_200B_200E_206A_200F_200E_202A_206F_200F_206A_202C_202A_202C_200E_200D_200E_200F_206A_202D_206E_202D_202C_206B_206E_202D_206F_200F_202E_206D_206E_200E_206C_200B_206A_206F_206A_200B_206B_202E() + num); - float w = (_200F_202B_202B_206E_200E_202E_202C_206D_206C_200E_202D_200F_200B_202D_206B_202D_202C_200C_206F_206F_202C_206A_206E_200C_206D_200C_202C_202A_206F_202D_202C_202E_202B_200E_200C_200C_200F_206D_202E_200C_202E(_animationTime * 3f) + 1f) * 0.5f * 0.3f; - int num3 = ((_animationTime * 0.5f % 1f < 0.5f) ? 769686031 : 769686028); + string text = FontAwesomeIcon.FileAlt.ToIconString(); + ImGui.SetCursorPosX(centerX - ImGui.CalcTextSize(text).X * 0.5f + num2); + ImGui.SetCursorPosY(ImGui.GetCursorPosY() + num); + float w = (MathF.Sin(_animationTime * 3f) + 1f) * 0.5f * 0.3f; Vector4 vector; - while (true) + if (!(_animationTime * 0.5f % 1f < 0.5f)) { - int num4 = num3; - int num5 = 769686030; - int num6 = num4; - switch ((num6 | num5) - (num6 & num5)) - { - default: - continue; - case 0: - goto IL_0107; - case 2: - vector = new Vector4(0.55f, 0.75f, 0.95f, w); - break; - case 1: - { - Vector4 accentColor = UiThemeUtils.AccentColor; - accentColor.W = w; - vector = accentColor; - break; - } - } - break; - IL_0107: - num3 = 769686028; + vector = new Vector4(0.55f, 0.75f, 0.95f, w); } - Vector4 vector2 = vector; - Vector2 vector3 = _202B_206D_200C_206E_200E_206E_202E_202A_200C_202C_200D_206F_202A_202C_206D_200F_200C_206C_200B_200C_202A_202C_206B_200D_206D_206A_200D_200D_200B_206E_200D_206F_206B_206C_200D_206C_202A_206E_206D_202D_202E(); - _200C_200E_200C_202D_206F_206A_200D_202B_206D_202A_206E_202B_206F_202D_200F_202D_206E_206B_202B_206F_200B_206F_200C_202D_202B_200E_206D_206C_202A_200B_206A_206B_206E_206B_200E_200C_206F_200E_202A_206B_202E().AddText(_202E_200B_202A_202E_206E_202B_200D_202D_206A_202A_200B_202B_202C_202E_200C_200E_202D_202C_206C_200B_200C_200E_206F_200F_202B_202A_206F_200D_206F_202D_202E_200F_206D_202C_200E_206A_202B_200D_206E_206B_202E(), _206A_202D_206A_206F_200F_206B_200C_200F_200B_200D_200F_200C_206B_206F_206F_206C_202A_202B_202D_200D_202B_200C_202E_200E_202E_200B_202B_200D_206B_200E_200D_206E_206A_200B_206F_200D_206C_202D_206E_206D_202E() * 1.2f, vector3 + new Vector2(2f, 2f), _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(vector2), text); - _200C_202A_206E_206B_206B_206F_206F_206D_202B_202C_200D_206C_202B_202A_200B_206E_206F_202C_202D_206B_202D_206F_206B_206C_206C_202E_202E_202A_202A_206E_202E_206B_206D_202C_200C_202E_202B_202A_202A_202A_202E(ImGuiStyleVar.Alpha, fadeIn); - _200C_202C_200B_206B_202C_200D_206A_206F_200F_206B_206E_206F_202C_202C_200F_206C_200B_202B_206F_200D_202C_206C_206F_206F_200C_206B_206D_202D_200B_200D_202A_206C_200D_200C_200C_202E_200E_200E_202A_202E(ref UiThemeUtils.AccentColor, (ImU8String)text); - _200C_202C_206C_202D_202A_200F_206C_200B_202C_200C_206C_200B_202D_206D_202D_206C_200E_206D_206E_206D_200B_200D_200C_200F_200C_202B_202D_206D_202C_206A_200D_202A_200F_200F_200F_202D_200B_200B_200E_202B_202E(); - } - finally - { - int num3 = ((fontDisposable == null) ? 201353111 : 201353108); - while (true) + else { - int num7 = num3; - int num5 = 201353109; - int num6 = num7; - switch ((num6 | num5) - (num6 & num5)) - { - case 2: - goto end_IL_01da; - case 1: - _202E_202E_200F_202E_200E_206B_202E_202B_206B_202A_206C_206E_206A_206A_206D_206B_200C_200C_202A_202A_200C_202C_200C_202A_202B_206F_200E_200C_206B_206C_206A_206D_202D_202D_202A_206E_202A_206E_206B_206C_202E((IDisposable)fontDisposable); - num3 = 201353111; - break; - case 0: - num3 = 201353108; - break; - } - continue; - end_IL_01da: - break; + Vector4 accentColor = UiThemeUtils.AccentColor; + accentColor.W = w; + vector = accentColor; } + Vector4 input = vector; + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + ImGui.GetWindowDrawList().AddText(UiBuilder.IconFont, ImGui.GetFontSize() * 1.2f, cursorScreenPos + new Vector2(2f, 2f), ImGui.ColorConvertFloat4ToU32(input), text); + ImGui.PushStyleVar(ImGuiStyleVar.Alpha, fadeIn); + ImGui.TextColored(in UiThemeUtils.AccentColor, text); + ImGui.PopStyleVar(); } - _206B_200F_206E_202D_202E_206F_206C_206B_206F_202E_202B_202A_206F_202B_206D_200C_200B_206D_202D_200C_200E_200E_206E_206E_202B_200E_202D_202D_206F_202C_200B_206B_206B_206D_202B_206A_206D_200B_202D_206F_202E(_206A_200D_200B_200E_206A_200F_200E_202A_206F_200F_206A_202C_202A_202C_200E_200D_200E_200F_206A_202D_206E_202D_202C_206B_206E_202D_206F_200F_202E_206D_206E_200E_206C_200B_206A_206F_206A_200B_206B_202E() - num + 4f); + ImGui.SetCursorPosY(ImGui.GetCursorPosY() - num + 4f); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawTitle(float centerX, float fadeIn) { - float num = _206C_202A_206D_200B_206E_206E_200B_202B_202E_202B_206B_200C_202D_202B_202A_200E_206F_200D_200F_206D_200D_206A_202A_206D_200D_200F_206B_200E_200C_206A_200F_200B_200D_200D_206B_206B_202B_200D_202E_206A_202E(0f, 1f - (_animationTime - 0.1f) * 3f); + float num = MathF.Max(0f, 1f - (_animationTime - 0.1f) * 3f); float num2 = num * num * (3f - 2f * num) * 20f; - ImRaii.FontDisposable fontDisposable = _200F_202D_200C_200C_206B_206B_200D_200F_206D_202E_202D_200D_202C_202C_200B_206D_206B_206F_206B_200D_200E_206A_206C_200D_202B_202D_202B_202D_206F_206C_202C_200F_200F_206A_202E_202B_206E_200C_202A_202A_202E(_202A_202E_206F_202B_200C_202E_206F_206B_202E_200E_200C_200E_206D_206C_200C_200B_200F_200B_206B_202B_200E_206F_200C_200D_206C_202D_200C_206A_206C_206F_200F_206E_206C_200F_202B_200C_206C_202A_200F_202A_202E(), true); - try + using (ImRaii.PushFont(UiBuilder.MonoFont)) { - string text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1908424869); - _200B_200F_206D_206E_200F_206E_206F_200D_206D_202A_202B_200B_206A_202A_206E_200F_202D_206D_200F_200E_206F_202E_200F_200F_206F_206A_200C_200B_200B_200D_200D_202C_200F_202A_206F_202E_202A_206F_202C_202C_202E(centerX - _202C_202B_206E_206D_200C_200B_206C_206A_202C_202B_200F_202C_202E_202E_206F_202B_200D_200B_200E_200C_206F_202E_206A_206D_206B_202C_206E_202C_206A_206C_200F_206B_206D_206F_200D_202A_202B_206E_206A_206E_202E((ImU8String)text, false, -1f).X * 0.5f - num2); - _200C_202A_206E_206B_206B_206F_206F_206D_202B_202C_200D_206C_202B_202A_200B_206E_206F_202C_202D_206B_202D_206F_206B_206C_206C_202E_202E_202A_202A_206E_202E_206B_206D_202C_200C_202E_202B_202A_202A_202A_202E(ImGuiStyleVar.Alpha, fadeIn); - Vector4 vector = new Vector4(0.95f, 0.95f, 1f, 1f); - _200C_202C_200B_206B_202C_200D_206A_206F_200F_206B_206E_206F_202C_202C_200F_206C_200B_202B_206F_200D_202C_206C_206F_206F_200C_206B_206D_202D_200B_200D_202A_206C_200D_200C_200C_202E_200E_200E_202A_202E(ref vector, (ImU8String)text); - _200C_202C_206C_202D_202A_200F_206C_200B_202C_200C_206C_200B_202D_206D_202D_206C_200E_206D_206E_206D_200B_200D_200C_200F_200C_202B_202D_206D_202C_206A_200D_202A_200F_200F_200F_202D_200B_200B_200E_202B_202E(); + string text = "What's New in Questionable?"; + ImGui.SetCursorPosX(centerX - ImGui.CalcTextSize(text).X * 0.5f - num2); + ImGui.PushStyleVar(ImGuiStyleVar.Alpha, fadeIn); + ImGui.TextColored(new Vector4(0.95f, 0.95f, 1f, 1f), text); + ImGui.PopStyleVar(); } - finally - { - int num3 = ((fontDisposable == null) ? 537868865 : 537868866); - while (true) - { - int num4 = num3; - int num5 = 537868867; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) - { - case 0: - num3 = 537868866; - break; - case 1: - _202E_202E_200F_202E_200E_206B_202E_202B_206B_202A_206C_206E_206A_206A_206D_206B_200C_200C_202A_202A_200C_202C_200C_202A_202B_206F_200E_200C_206B_206C_206A_206D_202D_202D_202A_206E_202A_206E_206B_206C_202E((IDisposable)fontDisposable); - num3 = 537868865; - break; - case 2: - goto end_IL_00d2; - } - continue; - end_IL_00d2: - break; - } - } - _206B_200F_206E_202D_202E_206F_206C_206B_206F_202E_202B_202A_206F_202B_206D_200C_200B_206D_202D_200C_200E_200E_206E_206E_202B_200E_202D_202D_206F_202C_200B_206B_206B_206D_202B_206A_206D_200B_202D_206F_202E(_206A_200D_200B_200E_206A_200F_200E_202A_206F_200F_206A_202C_202A_202C_200E_200D_200E_200F_206A_202D_206E_202D_202C_206B_206E_202D_206F_200F_202E_206D_206E_200E_206C_200B_206A_206F_206A_200B_206B_202E() + 6f); + ImGui.SetCursorPosY(ImGui.GetCursorPosY() + 6f); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawSubtitle(float centerX) { - float num = _206C_202A_206D_200B_206E_206E_200B_202B_202E_202B_206B_200C_202D_202B_202A_200E_206F_200D_200F_206D_200D_206A_202A_206D_200D_200F_206B_200E_200C_206A_200F_200B_200D_200D_206B_206B_202B_200D_202E_206A_202E(0f, _202E_206E_202E_202D_200C_202A_206D_202A_200C_202C_206F_202B_206D_206C_202E_202D_202C_206B_206D_200F_206C_202D_202B_206C_206F_202B_206C_202B_200E_202D_206D_202A_202B_202D_206D_206C_206B_202A_200C_202E_202E(1f, (_animationTime - 0.3f) * 2f)); - string text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1284431139); - _200B_200F_206D_206E_200F_206E_206F_200D_206D_202A_202B_200B_206A_202A_206E_200F_202D_206D_200F_200E_206F_202E_200F_200F_206F_206A_200C_200B_200B_200D_200D_202C_200F_202A_206F_202E_202A_206F_202C_202C_202E(centerX - _202C_202B_206E_206D_200C_200B_206C_206A_202C_202B_200F_202C_202E_202E_206F_202B_200D_200B_200E_200C_206F_202E_206A_206D_206B_202C_206E_202C_206A_206C_200F_206B_206D_206F_200D_202A_202B_206E_206A_206E_202E((ImU8String)text, false, -1f).X * 0.5f); - _200C_202A_206E_206B_206B_206F_206F_206D_202B_202C_200D_206C_202B_202A_200B_206E_206F_202C_202D_206B_202D_206F_206B_206C_206C_202E_202E_202A_202A_206E_202E_206B_206D_202C_200C_202E_202B_202A_202A_202A_202E(ImGuiStyleVar.Alpha, num); - Vector4 vector = new Vector4(0.7f, 0.7f, 0.8f, 0.9f); - _200C_202C_200B_206B_202C_200D_206A_206F_200F_206B_206E_206F_202C_202C_200F_206C_200B_202B_206F_200D_202C_206C_206F_206F_200C_206B_206D_202D_200B_200D_202A_206C_200D_200C_200C_202E_200E_200E_202A_202E(ref vector, (ImU8String)text); - _200C_202C_206C_202D_202A_200F_206C_200B_202C_200C_206C_200B_202D_206D_202D_206C_200E_206D_206E_206D_200B_200D_200C_200F_200C_202B_202D_206D_202C_206A_200D_202A_200F_200F_200F_202D_200B_200B_200E_202B_202E(); + float val = MathF.Max(0f, MathF.Min(1f, (_animationTime - 0.3f) * 2f)); + string text = "Stay up to date with the latest features and improvements"; + ImGui.SetCursorPosX(centerX - ImGui.CalcTextSize(text).X * 0.5f); + ImGui.PushStyleVar(ImGuiStyleVar.Alpha, val); + ImGui.TextColored(new Vector4(0.7f, 0.7f, 0.8f, 0.9f), text); + ImGui.PopStyleVar(); } private void DrawAccentLine(ImDrawListPtr drawList, Vector2 headerStartPos, float contentWidth, float headerHeight) { - _202E_206E_200B_200E_202B_200B_206A_200F_200E_206E_202E_202C_200C_200D_206D_202D_200D_202B_202C_206C_200C_200C_202D_206F_206A_200F_202C_206B_200C_200F_206E_206C_200E_206A_206A_200C_202A_206F_202E_206D_202E(headerStartPos + new Vector2(0f, headerHeight)); - Vector2 vector = _202B_206D_200C_206E_200E_206E_202E_202A_200C_202C_200D_206F_202A_202C_206D_200F_200C_206C_200B_200C_202A_202C_206B_200D_206D_206A_200D_200D_200B_206E_200D_206F_206B_206C_200D_206C_202A_206E_206D_202D_202E(); - float num = (_200F_202B_202B_206E_200E_202E_202C_206D_206C_200E_202D_200F_200B_202D_206B_202D_202C_200C_206F_206F_202C_206A_206E_200C_206D_200C_202C_202A_206F_202D_202C_202E_202B_200E_200C_200C_200F_206D_202E_200C_202E(_animationTime * 2f + MathF.PI) + 1f) * 0.5f; - Vector2 pMax = vector + new Vector2(contentWidth, 2f); + ImGui.SetCursorScreenPos(headerStartPos + new Vector2(0f, headerHeight)); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + float num = (MathF.Sin(_animationTime * 2f + (float)Math.PI) + 1f) * 0.5f; + Vector2 pMax = cursorScreenPos + new Vector2(contentWidth, 2f); Vector4 accentColor = UiThemeUtils.AccentColor; accentColor.W = 0.6f + num * 0.4f; - uint colUprLeft = _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(accentColor); + uint colUprLeft = ImGui.ColorConvertFloat4ToU32(accentColor); accentColor = UiThemeUtils.AccentColor; accentColor.W = 0.2f + num * 0.2f; - uint colUprRight = _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(accentColor); + uint colUprRight = ImGui.ColorConvertFloat4ToU32(accentColor); accentColor = UiThemeUtils.AccentColor; accentColor.W = 0.2f + num * 0.2f; - uint colBotRight = _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(accentColor); + uint colBotRight = ImGui.ColorConvertFloat4ToU32(accentColor); accentColor = UiThemeUtils.AccentColor; accentColor.W = 0.6f + num * 0.4f; - drawList.AddRectFilledMultiColor(vector, pMax, colUprLeft, colUprRight, colBotRight, _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(accentColor)); - } - - static ImGuiIOPtr _200B_202C_206B_200C_200E_206D_202C_202C_206C_202D_200B_206C_202A_206A_206E_200B_202B_200F_206A_200F_200E_200D_206F_202D_206E_202E_206C_200C_206C_200B_202E_200F_200B_206A_206C_202A_200C_206B_202B_200E_202E() - { - return ImGui.GetIO(); - } - - static ImDrawListPtr _200C_200E_200C_202D_206F_206A_200D_202B_206D_202A_206E_202B_206F_202D_200F_202D_206E_206B_202B_206F_200B_206F_200C_202D_202B_200E_206D_206C_202A_200B_206A_206B_206E_206B_200E_200C_206F_200E_202A_206B_202E() - { - return ImGui.GetWindowDrawList(); - } - - static Vector2 _202B_206D_200C_206E_200E_206E_202E_202A_200C_202C_200D_206F_202A_202C_206D_200F_200C_206C_200B_200C_202A_202C_206B_200D_206D_206A_200D_200D_200B_206E_200D_206F_206B_206C_200D_206C_202A_206E_206D_202D_202E() - { - return ImGui.GetCursorScreenPos(); - } - - static Vector2 _200F_202B_206C_202B_200C_202D_200B_206C_202E_202B_206D_200D_206C_200D_206F_206C_206A_200D_200F_200F_202C_202C_200D_206E_200B_200D_202E_202C_206A_206F_200C_206A_206E_206B_206A_206E_206E_206A_206A_200C_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static float _206A_200D_200B_200E_206A_200F_200E_202A_206F_200F_206A_202C_202A_202C_200E_200D_200E_200F_206A_202D_206E_202D_202C_206B_206E_202D_206F_200F_202E_206D_206E_200E_206C_200B_206A_206F_206A_200B_206B_202E() - { - return ImGui.GetCursorPosY(); - } - - static void _206B_200F_206E_202D_202E_206F_206C_206B_206F_202E_202B_202A_206F_202B_206D_200C_200B_206D_202D_200C_200E_200E_206E_206E_202B_200E_202D_202D_206F_202C_200B_206B_206B_206D_202B_206A_206D_200B_202D_206F_202E(float P_0) - { - ImGui.SetCursorPosY(P_0); - } - - static float _200F_202B_202B_206E_200E_202E_202C_206D_206C_200E_202D_200F_200B_202D_206B_202D_202C_200C_206F_206F_202C_206A_206E_200C_206D_200C_202C_202A_206F_202D_202C_202E_202B_200E_200C_200C_200F_206D_202E_200C_202E(float P_0) - { - return MathF.Sin(P_0); - } - - static uint _206A_200E_202B_200B_200B_200E_202A_202E_202D_202C_206C_206A_202A_206E_206D_202C_202B_206A_200E_206E_202A_200D_202A_206D_206C_202C_206F_206C_202C_200F_200B_206D_200D_202E_206C_206E_202B_200E_200D_206E_202E(Vector4 P_0) - { - return ImGui.ColorConvertFloat4ToU32(P_0); - } - - static float _200E_202A_206B_206E_200E_200C_200F_200D_206F_202A_202C_202E_206E_200C_206F_202D_206F_202D_200F_202D_206D_206D_206E_200C_206A_206E_200E_202B_206C_206C_200E_200F_206E_202C_200F_206A_206A_202A_206C_206B_202E(float P_0) - { - return MathF.Ceiling(P_0); - } - - static float _206C_202A_206D_200B_206E_206E_200B_202B_202E_202B_206B_200C_202D_202B_202A_200E_206F_200D_200F_206D_200D_206A_202A_206D_200D_200F_206B_200E_200C_206A_200F_200B_200D_200D_206B_206B_202B_200D_202E_206A_202E(float P_0, float P_1) - { - return MathF.Max(P_0, P_1); - } - - static float _202E_206E_202E_202D_200C_202A_206D_202A_200C_202C_206F_202B_206D_206C_202E_202D_202C_206B_206D_200F_206C_202D_202B_206C_206F_202B_206C_202B_200E_202D_206D_202A_202B_202D_206D_206C_206B_202A_200C_202E_202E(float P_0, float P_1) - { - return MathF.Min(P_0, P_1); - } - - static float _200F_206E_200F_206E_206B_202D_206C_206C_202B_206E_200F_202D_200B_202B_200E_202A_206D_206F_206D_206E_202C_202D_202D_206B_202D_206A_202E_200C_200C_202B_206A_206E_206A_200C_202E_200C_200C_202B_202D_202E(float P_0) - { - return MathF.Cos(P_0); - } - - static Vector2 _202C_200D_206E_206A_202D_202C_206C_202E_206B_200B_206B_200F_206E_202E_202E_200E_206A_202D_206D_206E_202C_200F_206A_200E_206B_200F_202D_200C_202D_206C_202D_200B_200D_202E_206E_206D_206A_202C_200B_206F_202E() - { - return ImGui.GetMousePos(); - } - - static void _202E_206E_200B_200E_202B_200B_206A_200F_200E_206E_202E_202C_200C_200D_206D_202D_200D_202B_202C_206C_200C_200C_202D_206F_206A_200F_202C_206B_200C_200F_206E_206C_200E_206A_206A_200C_202A_206F_202E_206D_202E(Vector2 P_0) - { - ImGui.SetCursorScreenPos(P_0); - } - - static bool _200F_200F_206B_200E_202C_200C_206E_206B_200F_206A_200D_206A_200C_200B_206A_200E_206F_200B_206D_202B_206D_202A_206E_202D_206C_206F_202C_206F_206E_206F_206F_206E_202A_202E_202C_206D_202E_200E_202B_200C_202E(ImU8String P_0, Vector2 P_1, ImGuiButtonFlags P_2) - { - return ImGui.InvisibleButton(P_0, P_1, P_2); - } - - static ImFontPtr _202E_200B_202A_202E_206E_202B_200D_202D_206A_202A_200B_202B_202C_202E_200C_200E_202D_202C_206C_200B_200C_200E_206F_200F_202B_202A_206F_200D_206F_202D_202E_200F_206D_202C_200E_206A_202B_200D_206E_206B_202E() - { - return UiBuilder.IconFont; - } - - static ImRaii.FontDisposable _200F_202D_200C_200C_206B_206B_200D_200F_206D_202E_202D_200D_202C_202C_200B_206D_206B_206F_206B_200D_200E_206A_206C_200D_202B_202D_202B_202D_206F_206C_202C_200F_200F_206A_202E_202B_206E_200C_202A_202A_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static string _200F_202C_206A_206A_206E_206F_202B_200E_200E_206A_202E_202D_200F_200C_206E_200E_202E_206D_206C_206A_200D_200F_206C_200D_206C_206E_202A_206C_200F_206C_206A_202B_206C_202C_206C_202E_200D_202E_206D_202D_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static Vector2 _202C_202B_206E_206D_200C_200B_206C_206A_202C_202B_200F_202C_202E_202E_206F_202B_200D_200B_200E_200C_206F_202E_206A_206D_206B_202C_206E_202C_206A_206C_200F_206B_206D_206F_200D_202A_202B_206E_206A_206E_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static void _200B_200F_206D_206E_200F_206E_206F_200D_206D_202A_202B_200B_206A_202A_206E_200F_202D_206D_200F_200E_206F_202E_200F_200F_206F_206A_200C_200B_200B_200D_200D_202C_200F_202A_206F_202E_202A_206F_202C_202C_202E(float P_0) - { - ImGui.SetCursorPosX(P_0); - } - - static float _206A_202D_206A_206F_200F_206B_200C_200F_200B_200D_200F_200C_206B_206F_206F_206C_202A_202B_202D_200D_202B_200C_202E_200E_202E_200B_202B_200D_206B_200E_200D_206E_206A_200B_206F_200D_206C_202D_206E_206D_202E() - { - return ImGui.GetFontSize(); - } - - static void _200C_202A_206E_206B_206B_206F_206F_206D_202B_202C_200D_206C_202B_202A_200B_206E_206F_202C_202D_206B_202D_206F_206B_206C_206C_202E_202E_202A_202A_206E_202E_206B_206D_202C_200C_202E_202B_202A_202A_202A_202E(ImGuiStyleVar P_0, float P_1) - { - ImGui.PushStyleVar(P_0, P_1); - } - - static void _200C_202C_200B_206B_202C_200D_206A_206F_200F_206B_206E_206F_202C_202C_200F_206C_200B_202B_206F_200D_202C_206C_206F_206F_200C_206B_206D_202D_200B_200D_202A_206C_200D_200C_200C_202E_200E_200E_202A_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static void _200C_202C_206C_202D_202A_200F_206C_200B_202C_200C_206C_200B_202D_206D_202D_206C_200E_206D_206E_206D_200B_200D_200C_200F_200C_202B_202D_206D_202C_206A_200D_202A_200F_200F_200F_202D_200B_200B_200E_202B_202E() - { - ImGui.PopStyleVar(); - } - - static void _202E_202E_200F_202E_200E_206B_202E_202B_206B_202A_206C_206E_206A_206A_206D_206B_200C_200C_202A_202A_200C_202C_200C_202A_202B_206F_200E_200C_206B_206C_206A_206D_202D_202D_202A_206E_202A_206E_206B_206C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static ImFontPtr _202A_202E_206F_202B_200C_202E_206F_206B_202E_200E_200C_200E_206D_206C_200C_200B_200F_200B_206B_202B_200E_206F_200C_200D_206C_202D_200C_206A_206C_206F_200F_206E_206C_200F_202B_200C_206C_202A_200F_202A_202E() - { - return UiBuilder.MonoFont; + drawList.AddRectFilledMultiColor(cursorScreenPos, pMax, colUprLeft, colUprRight, colBotRight, ImGui.ColorConvertFloat4ToU32(accentColor)); } } diff --git a/Questionable/Questionable.Windows.ConfigComponents/BlacklistConfigComponent.cs b/Questionable/Questionable.Windows.ConfigComponents/BlacklistConfigComponent.cs index 2129568..e6a1d2a 100644 --- a/Questionable/Questionable.Windows.ConfigComponents/BlacklistConfigComponent.cs +++ b/Questionable/Questionable.Windows.ConfigComponents/BlacklistConfigComponent.cs @@ -1,12 +1,9 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Interface; -using Dalamud.Interface.ManagedFontAtlas; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin; using Microsoft.Extensions.Logging; @@ -21,88 +18,6 @@ namespace Questionable.Windows.ConfigComponents; internal sealed class BlacklistConfigComponent : ConfigComponent { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<ElementId, string> _003C_003E9__10_0; - - public static Comparison<Quest> _003C_003E9__12_0; - - internal string _003CDrawTab_003Eb__10_0(ElementId x) - { - return _200B_206B_200D_202E_206E_200F_206C_200E_206E_202C_206E_206D_202A_200B_200F_206C_202C_202A_206C_202C_200D_206F_202B_202E_200F_200D_202D_200E_200E_200C_202D_200B_202A_202C_206C_206E_200C_206A_206F_202A_202E((object)x); - } - - internal int _003CGetCurrentlyAcceptedQuests_003Eb__12_0(Quest a, Quest b) - { - return _202E_202B_200C_200D_200E_206F_206D_206B_206F_200C_206E_206B_206D_206D_200D_206B_202C_206C_206E_200D_202B_206D_206F_202D_206A_206C_202E_206E_202D_202B_202D_200F_206D_202C_202C_202B_200C_200E_202C_206F_202E(a.Info.Name, b.Info.Name, StringComparison.OrdinalIgnoreCase); - } - - static string _200B_206B_200D_202E_206E_200F_206C_200E_206E_202C_206E_206D_202A_200B_200F_206C_202C_202A_206C_202C_200D_206F_202B_202E_200F_200D_202D_200E_200E_200C_202D_200B_202A_202C_206C_206E_200C_206A_206F_202A_202E(object P_0) - { - return P_0.ToString(); - } - - static int _202E_202B_200C_200D_200E_206F_206D_206B_206F_200C_206E_206B_206D_206D_200D_206B_202C_206C_206E_200D_202B_206D_206F_202D_206A_206C_202E_206E_202D_202B_202D_200F_206D_202C_202C_202B_200C_200E_202C_206F_202E(string P_0, string P_1, StringComparison P_2) - { - return string.Compare(P_0, P_1, P_2); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass9_0 - { - public Configuration configuration; - - public QuestFunctions questFunctions; - - public BlacklistConfigComponent _003C_003E4__this; - - internal bool _003C_002Ector_003Eb__0(Quest quest) - { - return !configuration.General.BlacklistedQuests.Contains(quest.Id); - } - - internal bool _003C_002Ector_003Eb__1(Quest quest) - { - int num = (_202E_206E_206C_200B_206B_200E_200C_206F_202A_200E_200F_202B_206B_202B_200C_206A_206E_200C_200C_202A_200C_202B_206E_202B_200C_200C_206A_206C_200F_206C_206A_200B_206E_206C_200D_200C_202B_200D_200D_200C_202E(quest.Root) ? (-1856463303) : (-1856463304)); - while (true) - { - int num2 = num; - int num3 = -1856463303; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return false; - case 1: - return questFunctions.IsQuestAccepted(quest.Id); - case 2: - goto IL_0061; - } - continue; - IL_0061: - num = -1856463304; - } - } - - internal void _003C_002Ector_003Eb__2(Quest quest) - { - configuration.General.BlacklistedQuests.Add(quest.Id); - _003C_003E4__this.Save(); - } - - static bool _202E_206E_206C_200B_206B_200E_200C_206F_202A_200E_200F_202B_206B_202B_200C_206A_206E_200C_200C_202A_200C_202B_206E_202B_200C_200C_206A_206C_200F_206C_206A_200B_206E_206C_200D_200C_202B_200D_200D_200C_202E(QuestRoot P_0) - { - return P_0.Disabled; - } - } - private readonly IDalamudPluginInterface _pluginInterface; private readonly QuestSelector _questSelector; @@ -133,30 +48,7 @@ internal sealed class BlacklistConfigComponent : ConfigComponent _uiUtils = uiUtils; _logger = logger; _questSelector.SuggestionPredicate = (Quest quest) => !configuration.General.BlacklistedQuests.Contains(quest.Id); - _questSelector.DefaultPredicate = delegate(Quest quest) - { - int num = (_003C_003Ec__DisplayClass9_0._202E_206E_206C_200B_206B_200E_200C_206F_202A_200E_200F_202B_206B_202B_200C_206A_206E_200C_200C_202A_200C_202B_206E_202B_200C_200C_206A_206C_200F_206C_206A_200B_206E_206C_200D_200C_202B_200D_200D_200C_202E(quest.Root) ? (-1856463303) : (-1856463304)); - while (true) - { - int num2 = num; - int num3 = -1856463303; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return false; - case 1: - return questFunctions.IsQuestAccepted(quest.Id); - case 2: - goto IL_0061; - } - continue; - IL_0061: - num = -1856463304; - } - }; + _questSelector.DefaultPredicate = (Quest quest) => !quest.Root.Disabled && questFunctions.IsQuestAccepted(quest.Id); _questSelector.QuestSelected = delegate(Quest quest) { configuration.General.BlacklistedQuests.Add(quest.Id); @@ -164,852 +56,214 @@ internal sealed class BlacklistConfigComponent : ConfigComponent }; } - [MethodImpl(MethodImplOptions.NoInlining)] public override void DrawTab() { - UiThemeUtils.SectionHeader(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1845002601)); + UiThemeUtils.SectionHeader("Quest Blacklist"); var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); - _202E_206F_200B_206A_200B_206B_206E_202B_206C_202C_202A_206E_202D_206C_200F_206B_200E_202E_202A_206B_206F_200E_202B_200C_202C_202B_200C_206A_206A_206F_200D_202A_206D_206C_202B_206D_206D_200E_200B_206A_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1912642219)); - _202E_206F_200B_206A_200B_206B_206E_202B_206C_202C_202A_206E_202D_206C_200F_206B_200E_202E_202A_206B_206F_200E_202B_200C_202C_202B_200C_206A_206A_206F_200D_202A_206D_206C_202B_206D_206D_200E_200B_206A_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1813484452)); + ImGui.TextWrapped("Blacklisted quests will never be automatically picked up or executed by Questionable."); + ImGui.TextWrapped("Use this to permanently skip specific quests you don't want to do."); DrawCurrentlyAcceptedQuests(); HashSet<ElementId> blacklistedQuests = base.Configuration.General.BlacklistedQuests; - ImU8String imU8String = new ImU8String(22, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1982980571)); - imU8String.AppendFormatted(blacklistedQuests.Count); - imU8String.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1060622796)); - _200E_200C_206B_206B_206B_206C_206B_206C_200F_206A_206A_206E_200B_206F_202A_202B_206A_200E_202B_206D_202C_200B_202B_202B_200D_206A_202D_206B_202E_200D_206C_202D_206C_202B_206B_202A_200E_200D_200D_206C_202E(imU8String); - int num; - using (ImRaii.ChildDisposable childDisposable = _206A_206C_200F_206B_206E_206C_206C_206E_202B_202C_206D_200C_206F_202E_200E_202D_206D_202D_202C_200B_206B_200C_202B_206C_200B_202A_202B_202D_202D_202B_202E_202B_206C_206B_202E_200B_202A_200D_202B_206B_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1257389053), new Vector2(-1f, 200f), true)) + ImU8String text = new ImU8String(22, 1); + text.AppendLiteral("Blacklisted Quests ("); + text.AppendFormatted(blacklistedQuests.Count); + text.AppendLiteral("):"); + ImGui.Text(text); + using (ImRaii.ChildDisposable childDisposable = ImRaii.Child("BlacklistedQuestsList", new Vector2(-1f, 200f), border: true)) { if ((bool)childDisposable) { - num = 1347863469; - (Vector4, FontAwesomeIcon, string) questStyle = default((Vector4, FontAwesomeIcon, string)); - while (true) + if (blacklistedQuests.Count > 0) { - int num2 = num; - int num3 = 1347863471; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + ElementId elementId = null; + using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable("BlacklistedQuestsTable", 2); + if ((bool)tableDisposable) { - case 0: - num = 1347863469; - break; - case 2: - if (blacklistedQuests.Count > 0) + ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.WidthStretch); + ImGui.TableSetupColumn("##Action", ImGuiTableColumnFlags.WidthFixed, 40f * ImGui.GetIO().FontGlobalScale); + foreach (ElementId item in blacklistedQuests.OrderBy((ElementId x) => x.ToString())) { - num = 1347863470; - break; - } - UiThemeUtils.EmptyState(FontAwesomeIcon.Ban, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2036588043), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1594979269)); - goto end_IL_00e5; - case 1: - { - ElementId elementId = null; - using (ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(285342029), 2)) - { - if ((bool)tableDisposable) + ImGui.TableNextRow(); + ImU8String id = new ImU8String(5, 1); + id.AppendLiteral("Quest"); + id.AppendFormatted(item); + using (ImRaii.PushId(id)) { - _200C_202A_206C_206C_200D_206E_202A_202B_202D_202B_202B_202B_202E_200E_202A_200B_200B_202B_206F_202E_206C_206A_202A_200C_206B_202E_206B_206C_200F_202C_200D_200C_202A_206F_200D_200E_206A_206C_200C_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(295817554), ImGuiTableColumnFlags.WidthStretch, 0f, 0u); - _200C_202A_206C_206C_200D_206E_202A_202B_202D_202B_202B_202B_202E_200E_202A_200B_200B_202B_206F_202E_206C_206A_202A_200C_206B_202E_206B_206C_200F_202C_200D_200C_202A_206F_200D_200E_206A_206C_200C_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1334785959), ImGuiTableColumnFlags.WidthFixed, 40f * _200D_206C_202B_200E_206A_206E_206F_202D_202C_206E_200C_200C_206A_202B_206C_200E_200F_202E_206A_200B_202D_202D_200F_200F_206C_200B_206C_200F_202A_206E_202A_200C_202B_206C_202B_200E_200E_206C_200B_206A_202E().FontGlobalScale, 0u); - IEnumerator<ElementId> enumerator = blacklistedQuests.OrderBy((ElementId x) => _003C_003Ec._200B_206B_200D_202E_206E_200F_206C_200E_206E_202C_206E_206D_202A_200B_200F_206C_202C_202A_206C_202C_200D_206F_202B_202E_200F_200D_202D_200E_200E_200C_202D_200B_202A_202C_206C_206E_200C_206A_206F_202A_202E((object)x)).GetEnumerator(); - try + if (!_questRegistry.TryGetQuest(item, out Quest quest)) { - while (_206A_206A_202E_200F_200D_202E_206B_202D_206A_206E_202C_206A_202E_202D_206E_200F_200F_202B_200C_206D_206D_202D_202D_200E_200E_206A_202D_200B_206B_202D_206C_202C_206C_206A_202B_200D_206B_206D_206C_206F_202E((IEnumerator)enumerator)) + if (ImGui.TableNextColumn()) { - ElementId current = enumerator.Current; - _202C_206B_200B_200E_206C_200C_206D_202E_202B_206A_202E_206C_202B_200D_202C_200D_200D_200D_206E_200D_206F_206A_206C_200E_206D_200F_202B_200B_200B_206C_206A_200B_200D_202E_202B_206C_206D_200C_200E_202C_202E(); - ImU8String imU8String2 = new ImU8String(5, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(345110125)); - imU8String2.AppendFormatted(current); - ImRaii.IdDisposable idDisposable = _200C_200F_200B_202C_206D_200D_206B_202E_200B_202C_202D_202C_200B_202B_202A_202C_202C_202D_206F_202C_200D_200E_200F_202C_202E_206F_206C_206B_200B_200F_202C_206E_202E_202A_202E_200F_200B_202A_202C_200D_202E(imU8String2, true); - try - { - num = (_questRegistry.TryGetQuest(current, out Quest quest) ? 889101348 : 889101353); - while (true) - { - int num7 = num; - num3 = 889101356; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 4: - num = 889101353; - break; - case 0: - { - _202C_206E_206A_206F_200B_206A_202D_200E_206A_202E_202E_202E_202B_200B_206B_206B_206E_206E_200D_200D_206F_200B_202D_200E_206B_200E_206A_206C_200C_206F_200F_200D_202A_200D_200C_206E_200C_200B_202C_206A_202E(); - ImU8String imU8String3 = new ImU8String(16, 1); - imU8String3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(76120943)); - imU8String3.AppendFormatted(current); - imU8String3.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - _202D_200E_200F_202D_200B_206C_206E_202C_206B_202E_202A_202A_202D_206B_202D_202B_202B_206C_200E_206E_202C_200E_200D_202E_200C_200D_200C_206E_206E_202B_200F_200D_202A_200F_202D_206B_200E_200C_202A_202B_202E(ref UiThemeUtils.DimTextColor, imU8String3); - num = 889101354; - break; - } - case 1: - elementId = current; - num = 889101358; - break; - case 8: - questStyle = _uiUtils.GetQuestStyle(current); - if (_202C_202A_206F_206A_206E_206E_202D_200D_200B_200B_202B_200D_200B_200E_206B_206B_202B_202D_202E_206F_206D_206F_206A_200E_202E_202E_202E_200E_206D_202B_200E_200B_206A_202E_206F_200E_200F_200F_202C_202E()) - { - num = 889101359; - break; - } - goto IL_0549; - case 7: - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Times, _206A_202E_200C_202A_206F_200C_202E_202C_206F_206E_200D_200E_202B_200F_206A_206D_206F_206B_202C_202C_200E_200B_202E_200E_202A_206B_200D_206F_202D_200C_202B_206B_206E_200B_206F_206C_202C_200F_200E_206C_202E())) ? 889101358 : 889101357); - break; - case 2: - goto end_IL_023a; - case 6: - num = ((!_202C_202A_206F_206A_206E_206E_202D_200D_200B_200B_202B_200D_200B_200E_206B_206B_202B_202D_202E_206F_206D_206F_206A_200E_202E_202E_202E_200E_206D_202B_200E_200B_206A_202E_206F_200E_200F_200F_202C_202E()) ? 889101358 : 889101355); - break; - case 5: - num = ((!_202C_202A_206F_206A_206E_206E_202D_200D_200B_200B_202B_200D_200B_200E_206B_206B_202B_202D_202E_206F_206D_206F_206A_200E_202E_202E_202E_200E_206D_202B_200E_200B_206A_202E_206F_200E_200F_200F_202C_202E()) ? 889101354 : 889101356); - break; - case 3: - { - IDisposable disposable = _202E_206D_200F_206D_202A_202D_202B_202D_200C_202B_206A_200C_200D_202D_202D_200E_202C_206E_200D_202D_202B_202E_200B_202B_200F_206B_206A_206D_206B_206C_206F_200C_202C_200D_206D_202B_200E_206E_206D_206D_202E(_200D_202C_206A_206F_202D_202A_206C_202D_200B_202D_206C_202B_202D_202B_200B_206A_206E_200F_202D_206B_200F_200F_206C_206F_200D_200E_202B_200C_206F_206D_202B_206F_200C_202A_202D_206C_202D_200C_206A_200F_202E(_200D_200C_206A_200B_200F_202D_206C_206D_206D_200D_202A_202C_206F_206D_206A_200E_202E_202B_206E_202A_206B_200E_206C_200F_202E_200E_206D_202D_206F_200D_202C_202C_200F_206D_206D_206F_202D_200F_200E_202B_202E(_pluginInterface))); - bool flag; - try - { - _202C_206E_206A_206F_200B_206A_202D_200E_206A_202E_202E_202E_202B_200B_206B_206B_206E_206E_200D_200D_206F_200B_202D_200E_206B_200E_206A_206C_200C_206F_200F_200D_202A_200D_200C_206E_200C_200B_202C_206A_202E(); - _202D_200E_200F_202D_200B_206C_206E_202C_206B_202E_202A_202A_202D_206B_202D_202B_202B_206C_200E_206E_202C_200E_200D_202E_200C_200D_200C_206E_206E_202B_200F_200D_202A_200F_202D_206B_200E_200C_202A_202B_202E(ref questStyle.Item1, (ImU8String)_202C_202A_206B_206B_202D_200B_206E_202C_202D_206D_206E_200C_202C_206E_206B_202A_200B_206D_206F_206B_206F_200E_206F_202D_200B_206D_200F_206C_206D_206A_206E_202B_206F_202D_200B_202A_200D_200F_200E_206F_202E(questStyle.Item2)); - flag = _200F_202B_200B_200C_200C_202A_200F_206B_206B_200D_202A_206E_206A_202B_206A_200B_206E_202D_200E_206E_200B_200D_200B_200C_206D_202C_200D_206A_206B_206D_200C_206B_206D_206F_202A_206E_206D_206D_202D_200C_202E(); - } - finally - { - num = ((disposable == null) ? (-2134770209) : (-2134770210)); - while (true) - { - int num10 = num; - num3 = -2134770209; - num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_03f8; - case 1: - _202B_206F_202A_206C_202E_202C_206E_202B_206B_200C_200C_202B_200B_206A_200B_206E_202D_202D_202B_206E_206B_206B_200F_202D_202C_200B_200D_202D_206C_200E_200C_202D_206C_206B_206F_202D_200F_206A_200F_206F_202E(disposable); - num = -2134770209; - break; - case 2: - num = -2134770210; - break; - } - continue; - end_IL_03f8: - break; - } - } - _202B_202B_200F_206F_200C_206B_202B_202E_200B_202B_206A_200E_206B_206E_202C_206C_206A_200E_206D_206E_202C_206E_202C_206C_200D_206A_200D_202C_202A_200F_202B_206D_206A_206E_200F_206A_200C_200C_200B_200D_202E(); - _202C_206E_206A_206F_200B_206A_202D_200E_206A_202E_202E_202E_202B_200B_206B_206B_206E_206E_200D_200D_206F_200B_202D_200E_206B_200E_206A_206C_200C_206F_200F_200D_202A_200D_200C_206E_200C_200B_202C_206A_202E(); - UiThemeUtils.RowLabel(quest.Info.Name, 0f); - flag |= _200F_202B_200B_200C_200C_202A_200F_206B_206B_200D_202A_206E_206A_202B_206A_200B_206E_202D_200E_206E_200B_200D_200B_200C_206D_202C_200D_206A_206B_206D_200C_206B_206D_206F_202A_206E_206D_206D_202D_200C_202E(); - num = ((!flag) ? (-258902819) : (-258902824)); - goto IL_048d; - } - IL_048d: - while (true) - { - int num11 = num; - num3 = -258902820; - num4 = num11; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 7: - elementId = current; - num = -258902817; - continue; - case 4: - _questTooltipComponent.Draw(quest.Info); - num = -258902819; - continue; - case 0: - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Times, _206A_202E_200C_202A_206F_200C_202E_202C_206F_206E_200D_200E_202B_200F_206A_206D_206F_206B_202C_202C_200E_200B_202E_200E_202A_206B_200D_206F_202D_200C_202B_206B_206E_200B_206F_206C_202C_200F_200E_206C_202E())) ? (-258902817) : (-258902821)); - continue; - case 3: - num = ((!_200F_202B_200B_200C_200C_202A_200F_206B_206B_200D_202A_206E_206A_202B_206A_200B_206E_202D_200E_206E_200B_200D_200B_200C_206D_202C_200D_206A_206B_206D_200C_206B_206D_206F_202A_206E_206D_206D_202D_200C_202E()) ? (-258902818) : (-258902823)); - continue; - case 1: - break; - case 5: - _202A_200B_202B_200B_200C_200F_202D_206A_206C_200F_202B_200F_200C_206A_200E_202C_200C_200F_200B_202A_206C_206F_200F_202C_202D_202D_206D_206B_202E_200B_202B_206D_206F_202B_206E_206C_206F_200F_202D_206E_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(368026266)); - num = -258902818; - continue; - case 6: - num = -258902824; - continue; - case 2: - goto end_IL_048d; - } - goto IL_0549; - continue; - end_IL_048d: - break; - } - goto end_IL_023a; - IL_0549: - num = ((!_202C_202A_206F_206A_206E_206E_202D_200D_200B_200B_202B_200D_200B_200E_206B_206B_202B_202D_202E_206F_206D_206F_206A_200E_202E_202E_202E_200E_206D_202B_200E_200B_206A_202E_206F_200E_200F_200F_202C_202E()) ? (-258902818) : (-258902820)); - goto IL_048d; - } - continue; - end_IL_023a: - break; - } - } - finally - { - num = ((idDisposable == null) ? (-1239290043) : (-1239290042)); - while (true) - { - int num12 = num; - num3 = -1239290041; - num4 = num12; - int num13 = num4 + num3; - int num14 = num4 & num3; - switch (num13 - (num14 + num14)) - { - case 2: - goto end_IL_05bb; - case 1: - _202B_206F_202A_206C_202E_202C_206E_202B_206B_200C_200C_202B_200B_206A_200B_206E_202D_202D_202B_206E_206B_206B_200F_202D_202C_200B_200D_202D_206C_200E_200C_202D_206C_206B_206F_202D_200F_206A_200F_206F_202E((IDisposable)idDisposable); - num = -1239290043; - break; - case 0: - num = -1239290042; - break; - } - continue; - end_IL_05bb: - break; - } - } + ImGui.AlignTextToFramePadding(); + ImU8String text2 = new ImU8String(16, 1); + text2.AppendLiteral("Unknown Quest ("); + text2.AppendFormatted(item); + text2.AppendLiteral(")"); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text2); + } + if (ImGui.TableNextColumn() && UiThemeUtils.IconButton(FontAwesomeIcon.Times, ImGui.GetFrameHeight())) + { + elementId = item; + } + continue; + } + (Vector4, FontAwesomeIcon, string) questStyle = _uiUtils.GetQuestStyle(item); + if (ImGui.TableNextColumn()) + { + bool flag; + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) + { + ImGui.AlignTextToFramePadding(); + ImGui.TextColored(in questStyle.Item1, questStyle.Item2.ToIconString()); + flag = ImGui.IsItemHovered(); + } + ImGui.SameLine(); + ImGui.AlignTextToFramePadding(); + UiThemeUtils.RowLabel(quest.Info.Name, 0f); + flag |= ImGui.IsItemHovered(); + if (flag) + { + _questTooltipComponent.Draw(quest.Info); } } - finally + if (ImGui.TableNextColumn()) { - num = ((enumerator == null) ? 1685900293 : 1685900294); - while (true) + if (UiThemeUtils.IconButton(FontAwesomeIcon.Times, ImGui.GetFrameHeight())) { - int num15 = num; - num3 = 1685900295; - num4 = num15; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_0639; - case 1: - _202B_206F_202A_206C_202E_202C_206E_202B_206B_200C_200C_202B_200B_206A_200B_206E_202D_202D_202B_206E_206B_206B_200F_202D_202C_200B_200D_202D_206C_200E_200C_202D_206C_206B_206F_202D_200F_206A_200F_206F_202E((IDisposable)enumerator); - num = 1685900293; - break; - case 0: - num = 1685900294; - break; - } - continue; - end_IL_0639: - break; + elementId = item; + } + if (ImGui.IsItemHovered()) + { + ImGui.SetTooltip("Remove from blacklist"); } } } - num = ((!_202E_202C_200E_206B_206B_206F_206A_200E_202B_206A_202B_206E_202D_202C_202D_200F_202B_200E_202D_200B_206D_202C_202B_206E_202D_206B_200C_206B_200F_202A_200D_202C_206D_206E_206B_200D_206C_206A_202E_206F_202E(elementId, (ElementId)null)) ? 1144232112 : 1144232113); - while (true) - { - int num16 = num; - num3 = 1144232112; - num4 = num16; - int num17 = num4 + num3; - int num18 = num4 & num3; - switch (num17 - (num18 + num18)) - { - case 2: - num = 1144232113; - break; - case 1: - base.Configuration.General.BlacklistedQuests.Remove(elementId); - Save(); - num = 1144232112; - break; - case 0: - goto end_IL_06aa; - } - continue; - end_IL_06aa: - break; - } } - goto end_IL_00e5; } + if (elementId != null) + { + base.Configuration.General.BlacklistedQuests.Remove(elementId); + Save(); } - continue; - end_IL_00e5: - break; + } + else + { + UiThemeUtils.EmptyState(FontAwesomeIcon.Ban, "No quests blacklisted", "Use the dropdown above or add from currently accepted quests"); } } } _questSelector.DrawSelection(); - num = ((blacklistedQuests.Count <= 0) ? (-192150721) : (-192150722)); - while (true) + if (blacklistedQuests.Count > 0 && UiThemeUtils.DestructiveButton(FontAwesomeIcon.Trash, "Clear all")) { - int num19 = num; - int num3 = -192150723; - int num4 = num19; - int num20 = num4 + num3; - int num21 = num4 & num3; - switch (num20 - (num21 + num21)) - { - case 0: - num = -192150722; - break; - case 1: - base.Configuration.General.BlacklistedQuests.Clear(); - Save(); - num = -192150721; - break; - case 2: - UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); - return; - case 3: - num = ((!UiThemeUtils.DestructiveButton(FontAwesomeIcon.Trash, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-629121547))) ? (-192150721) : (-192150724)); - break; - } + base.Configuration.General.BlacklistedQuests.Clear(); + Save(); } + UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawCurrentlyAcceptedQuests() { List<Quest> currentlyAcceptedQuests = GetCurrentlyAcceptedQuests(); - _200E_200C_206B_206B_206B_206C_206B_206C_200F_206A_206A_206E_200B_206F_202A_202B_206A_200E_202B_206D_202C_200B_202B_202B_200D_206A_202D_206B_202E_200D_206C_202D_206C_202B_206B_202A_200E_200D_200D_206C_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1422852424)); - using (ImRaii.ChildDisposable childDisposable = _206A_206C_200F_206B_206E_206C_206C_206E_202B_202C_206D_200C_206F_202E_200E_202D_206D_202D_202C_200B_206B_200C_202B_206C_200B_202A_202B_202D_202D_202B_202E_202B_206C_206B_202E_200B_202A_200D_202B_206B_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-985352135), new Vector2(-1f, 100f), true)) + ImGui.Text("Currently Accepted Quests:"); + using (ImRaii.ChildDisposable childDisposable = ImRaii.Child("AcceptedQuestsList", new Vector2(-1f, 100f), border: true)) { if ((bool)childDisposable) { - int num = -1956510770; - bool flag2 = default(bool); - while (true) + if (currentlyAcceptedQuests.Count > 0) { - int num2 = num; - int num3 = -1956510769; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable("AcceptedQuestsTable", 2); + if ((bool)tableDisposable) { - case 2: - num = -1956510770; - break; - case 1: - if (currentlyAcceptedQuests.Count > 0) + ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.WidthStretch); + ImGui.TableSetupColumn("##Action", ImGuiTableColumnFlags.WidthFixed, 40f * ImGui.GetIO().FontGlobalScale); + foreach (Quest item in currentlyAcceptedQuests) { - num = -1956510769; - break; - } - UiThemeUtils.EmptyState(FontAwesomeIcon.BookOpen, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2044011202)); - goto end_IL_0057; - case 0: - { - using (ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(929260577), 2)) - { - if (!(bool)tableDisposable) + ImGui.TableNextRow(); + ImU8String id = new ImU8String(13, 1); + id.AppendLiteral("AcceptedQuest"); + id.AppendFormatted(item.Id); + using (ImRaii.PushId(id)) { - goto end_IL_0057; - } - _200C_202A_206C_206C_200D_206E_202A_202B_202D_202B_202B_202B_202E_200E_202A_200B_200B_202B_206F_202E_206C_206A_202A_200C_206B_202E_206B_206C_200F_202C_200D_200C_202A_206F_200D_200E_206A_206C_200C_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2012877671), ImGuiTableColumnFlags.WidthStretch, 0f, 0u); - _200C_202A_206C_206C_200D_206E_202A_202B_202D_202B_202B_202B_202E_200E_202A_200B_200B_202B_206F_202E_206C_206A_202A_200C_206B_202E_206B_206C_200F_202C_200D_200C_202A_206F_200D_200E_206A_206C_200C_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1290170824), ImGuiTableColumnFlags.WidthFixed, 40f * _200D_206C_202B_200E_206A_206E_206F_202D_202C_206E_200C_200C_206A_202B_206C_200E_200F_202E_206A_200B_202D_202D_200F_200F_206C_200B_206C_200F_202A_206E_202A_200C_202B_206C_202B_200E_200E_206C_200B_206A_202E().FontGlobalScale, 0u); - foreach (Quest item in currentlyAcceptedQuests) - { - _202C_206B_200B_200E_206C_200C_206D_202E_202B_206A_202E_206C_202B_200D_202C_200D_200D_200D_206E_200D_206F_206A_206C_200E_206D_200F_202B_200B_200B_206C_206A_200B_200D_202E_202B_206C_206D_200C_200E_202C_202E(); - ImU8String imU8String = new ImU8String(13, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1920255216)); - imU8String.AppendFormatted(item.Id); - ImRaii.IdDisposable idDisposable = _200C_200F_200B_202C_206D_200D_206B_202E_200B_202C_202D_202C_200B_202B_202A_202C_202C_202D_206F_202C_200D_200E_200F_202C_202E_206F_206C_206B_200B_200F_202C_206E_202E_202A_202E_200F_200B_202A_202C_200D_202E(imU8String, true); - try + (Vector4, FontAwesomeIcon, string) questStyle = _uiUtils.GetQuestStyle(item.Id); + bool flag = base.Configuration.General.BlacklistedQuests.Contains(item.Id); + if (ImGui.TableNextColumn()) { - (Vector4, FontAwesomeIcon, string) questStyle = _uiUtils.GetQuestStyle(item.Id); - bool flag = base.Configuration.General.BlacklistedQuests.Contains(item.Id); - if (_202C_202A_206F_206A_206E_206E_202D_200D_200B_200B_202B_200D_200B_200E_206B_206B_202B_202D_202E_206F_206D_206F_206A_200E_202E_202E_202E_200E_206D_202B_200E_200B_206A_202E_206F_200E_200F_200F_202C_202E()) + bool flag2; + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) { - IDisposable disposable = _202E_206D_200F_206D_202A_202D_202B_202D_200C_202B_206A_200C_200D_202D_202D_200E_202C_206E_200D_202D_202B_202E_200B_202B_200F_206B_206A_206D_206B_206C_206F_200C_202C_200D_206D_202B_200E_206E_206D_206D_202E(_200D_202C_206A_206F_202D_202A_206C_202D_200B_202D_206C_202B_202D_202B_200B_206A_206E_200F_202D_206B_200F_200F_206C_206F_200D_200E_202B_200C_206F_206D_202B_206F_200C_202A_202D_206C_202D_200C_206A_200F_202E(_200D_200C_206A_200B_200F_202D_206C_206D_206D_200D_202A_202C_206F_206D_206A_200E_202E_202B_206E_202A_206B_200E_206C_200F_202E_200E_206D_202D_206F_200D_202C_202C_200F_206D_206D_206F_202D_200F_200E_202B_202E(_pluginInterface))); - try - { - _202C_206E_206A_206F_200B_206A_202D_200E_206A_202E_202E_202E_202B_200B_206B_206B_206E_206E_200D_200D_206F_200B_202D_200E_206B_200E_206A_206C_200C_206F_200F_200D_202A_200D_200C_206E_200C_200B_202C_206A_202E(); - num = (flag ? 1132065903 : 1132065900); - Vector4 vector; - while (true) - { - int num5 = num; - num3 = 1132065902; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 0: - goto IL_01fa; - case 2: - vector = questStyle.Item1; - break; - case 1: - vector = UiThemeUtils.MutedTextColor; - break; - } - break; - IL_01fa: - num = 1132065900; - } - Vector4 vector2 = vector; - _202D_200E_200F_202D_200B_206C_206E_202C_206B_202E_202A_202A_202D_206B_202D_202B_202B_206C_200E_206E_202C_200E_200D_202E_200C_200D_200C_206E_206E_202B_200F_200D_202A_200F_202D_206B_200E_200C_202A_202B_202E(ref vector2, (ImU8String)_202C_202A_206B_206B_202D_200B_206E_202C_202D_206D_206E_200C_202C_206E_206B_202A_200B_206D_206F_206B_206F_200E_206F_202D_200B_206D_200F_206C_206D_206A_206E_202B_206F_202D_200B_202A_200D_200F_200E_206F_202E(questStyle.Item2)); - flag2 = _200F_202B_200B_200C_200C_202A_200F_206B_206B_200D_202A_206E_206A_202B_206A_200B_206E_202D_200E_206E_200B_200D_200B_200C_206D_202C_200D_206A_206B_206D_200C_206B_206D_206F_202A_206E_206D_206D_202D_200C_202E(); - } - finally - { - num = ((disposable == null) ? 869555062 : 869555061); - while (true) - { - int num6 = num; - num3 = 869555060; - num4 = num6; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_0268; - case 1: - _202B_206F_202A_206C_202E_202C_206E_202B_206B_200C_200C_202B_200B_206A_200B_206E_202D_202D_202B_206E_206B_206B_200F_202D_202C_200B_200D_202D_206C_200E_200C_202D_206C_206B_206F_202D_200F_206A_200F_206F_202E(disposable); - num = 869555062; - break; - case 0: - num = 869555061; - break; - } - continue; - end_IL_0268: - break; - } - } - _202B_202B_200F_206F_200C_206B_202B_202E_200B_202B_206A_200E_206B_206E_202C_206C_206A_200E_206D_206E_202C_206E_202C_206C_200D_206A_200D_202C_202A_200F_202B_206D_206A_206E_200F_206A_200C_200C_200B_200D_202E(); - _202C_206E_206A_206F_200B_206A_202D_200E_206A_202E_202E_202E_202B_200B_206B_206B_206E_206E_200D_200D_206F_200B_202D_200E_206B_200E_206A_206C_200C_206F_200F_200D_202A_200D_200C_206E_200C_200B_202C_206A_202E(); - num = ((!flag) ? (-1825666612) : (-1825666614)); - goto IL_02dd; + ImGui.AlignTextToFramePadding(); + ImGui.TextColored(flag ? UiThemeUtils.MutedTextColor : questStyle.Item1, questStyle.Item2.ToIconString()); + flag2 = ImGui.IsItemHovered(); } - goto IL_0327; - IL_0327: - if (_202C_202A_206F_206A_206E_206E_202D_200D_200B_200B_202B_200D_200B_200E_206B_206B_202B_202D_202E_206F_206D_206F_206A_200E_202E_202E_202E_200E_206D_202B_200E_200B_206A_202E_206F_200E_200F_200F_202C_202E()) + ImGui.SameLine(); + ImGui.AlignTextToFramePadding(); + if (flag) { - num = -1825666609; - goto IL_02dd; + UiThemeUtils.RowLabel(item.Info.Name, 0f, UiThemeUtils.DimTextColor); } - goto end_IL_0157; - IL_02dd: - while (true) + else { - int num7 = num; - num3 = -1825666609; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - default: - continue; - case 6: - num = -1825666614; - continue; - case 2: - break; - case 1: - flag2 |= _200F_202B_200B_200C_200C_202A_200F_206B_206B_200D_202A_206E_206A_202B_206A_200B_206E_202D_200E_206E_200B_200D_200B_200C_206D_202C_200D_206A_206B_206D_200C_206B_206D_206F_202A_206E_206D_206D_202D_200C_202E(); - num = ((!flag2) ? (-1825666611) : (-1825666613)); - continue; - case 3: - UiThemeUtils.RowLabel(item.Info.Name, 0f); - num = -1825666610; - continue; - case 5: - UiThemeUtils.RowLabel(item.Info.Name, 0f, UiThemeUtils.DimTextColor); - num = -1825666610; - continue; - case 4: - _questTooltipComponent.Draw(item.Info); - num = -1825666611; - continue; - case 0: - { - ImRaii.DisabledDisposable disabledDisposable = _206D_202C_202C_202C_200C_200F_206B_206A_202B_206F_206F_202B_202E_206F_206D_200E_200E_206B_206C_202C_202B_200B_206D_206D_200D_206D_202A_200D_206D_206B_206C_206F_202E_202E_202D_202A_202B_200D_202E_202D_202E(flag); - try - { - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Ban, _206A_202E_200C_202A_206F_200C_202E_202C_206F_206E_200D_200E_202B_200F_206A_206D_206F_206B_202C_202C_200E_200B_202E_200E_202A_206B_200D_206F_202D_200C_202B_206B_206E_200B_206F_206C_202C_200F_200E_206C_202E())) ? 1915449733 : 1915449734); - while (true) - { - int num10 = num; - num3 = 1915449732; - num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 0: - num = 1915449734; - break; - case 2: - base.Configuration.General.BlacklistedQuests.Add(item.Id); - Save(); - num = 1915449733; - break; - case 1: - goto end_IL_0402; - } - continue; - end_IL_0402: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? 1331263650 : 1331263649); - while (true) - { - int num13 = num; - num3 = 1331263648; - num4 = num13; - int num14 = num4 + num3; - int num15 = num4 & num3; - switch (num14 - (num15 + num15)) - { - case 0: - num = 1331263649; - break; - case 2: - goto end_IL_048f; - case 1: - _202B_206F_202A_206C_202E_202C_206E_202B_206B_200C_200C_202B_200B_206A_200B_206E_202D_202D_202B_206E_206B_206B_200F_202D_202C_200B_200D_202D_206C_200E_200C_202D_206C_206B_206F_202D_200F_206A_200F_206F_202E((IDisposable)disabledDisposable); - num = 1331263650; - break; - } - continue; - end_IL_048f: - break; - } - } - num = ((!_206F_206F_206E_202E_206C_202B_200F_202A_202E_200F_202C_202A_206D_206B_200E_200B_200F_200D_206F_200B_200D_200E_200B_202E_200D_200E_200C_206A_200B_200E_200F_202D_200E_200F_200D_206E_206D_206A_206F_202C_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? (-1781701479) : (-1781701478)); - while (true) - { - int num16 = num; - num3 = -1781701480; - num4 = num16; - int num17 = num4 + num3; - int num18 = num4 & num3; - string text; - switch (num17 - (num18 + num18)) - { - case 3: - text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1464111886); - goto IL_055f; - case 4: - text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(340412450); - goto IL_055f; - case 0: - num = -1781701478; - break; - case 2: - num = (flag ? (-1781701476) : (-1781701477)); - break; - case 1: - goto end_IL_0504; - IL_055f: - _202A_200B_202B_200B_200C_200F_202D_206A_206C_200F_202B_200F_200C_206A_200E_202C_200C_200F_200B_202A_206C_206F_200F_202C_202D_202D_206D_206B_202E_200B_202B_206D_206F_202B_206E_206C_206F_200F_202D_206E_202E((ImU8String)text); - num = -1781701479; - break; - } - continue; - end_IL_0504: - break; - } - goto end_IL_02dd; - } - } - goto IL_0327; - continue; - end_IL_02dd: - break; + UiThemeUtils.RowLabel(item.Info.Name, 0f); + } + flag2 |= ImGui.IsItemHovered(); + if (flag2) + { + _questTooltipComponent.Draw(item.Info); } - end_IL_0157:; } - finally + if (!ImGui.TableNextColumn()) { - num = ((idDisposable == null) ? (-466146924) : (-466146921)); - while (true) + continue; + } + using (ImRaii.Disabled(flag)) + { + if (UiThemeUtils.IconButton(FontAwesomeIcon.Ban, ImGui.GetFrameHeight())) { - int num19 = num; - num3 = -466146923; - num4 = num19; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -466146921; - break; - case 2: - _202B_206F_202A_206C_202E_202C_206E_202B_206B_200C_200C_202B_200B_206A_200B_206E_202D_202D_202B_206E_206B_206B_200F_202D_202C_200B_200D_202D_206C_200E_200C_202D_206C_206B_206F_202D_200F_206A_200F_206F_202E((IDisposable)idDisposable); - num = -466146924; - break; - case 1: - goto end_IL_05c4; - } - continue; - end_IL_05c4: - break; + base.Configuration.General.BlacklistedQuests.Add(item.Id); + Save(); } } + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) + { + ImGui.SetTooltip(flag ? "Quest already blacklisted" : "Add this quest to blacklist"); + } } } - goto end_IL_0057; } - } - continue; - end_IL_0057: - break; + } + else + { + UiThemeUtils.EmptyState(FontAwesomeIcon.BookOpen, "No quests currently accepted"); } } } - _202E_200F_202E_206C_202A_206D_206D_200F_200C_206F_200B_206F_202A_200C_206C_206D_200D_202E_200E_202D_200C_206A_202B_206F_206C_206A_202C_206F_206C_202C_200E_202C_200D_202E_202D_200C_206C_200D_206A_202B_202E(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private List<Quest> GetCurrentlyAcceptedQuests() - { - int num = ((_202A_206C_206E_206C_202B_202C_206C_206D_202E_200E_206F_206B_200E_200F_202B_200B_206B_206C_202A_206A_202E_206E_206D_206D_202E_206D_206A_202B_202E_206B_200B_200D_202C_200E_200C_206B_200F_202C_206E_202A_202E() >= _nextAcceptedQuestsRefreshMs) ? 1772221031 : 1772221028); - Quest current = default(Quest); - while (true) - { - int num2 = num; - int num3 = 1772221029; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0056; - case 1: - return _acceptedQuestsCache; - case 2: - { - _nextAcceptedQuestsRefreshMs = _202A_206C_206E_206C_202B_202C_206C_206D_202E_200E_206F_206B_200E_200F_202B_200B_206B_206C_202A_206A_202E_206E_206D_206D_202E_206D_206A_202B_202E_206B_200B_200D_202C_200E_200C_206B_200F_202C_206E_202A_202E() + 1000; - List<Quest> list = new List<Quest>(); - try - { - IEnumerator<Quest> enumerator = _questRegistry.AllQuests.GetEnumerator(); - try - { - num = 1659113913; - while (true) - { - int num7 = num; - num3 = 1659113914; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1659113913; - break; - case 1: - current = enumerator.Current; - num = ((!_questFunctions.IsQuestAccepted(current.Id)) ? 1659113913 : 1659113914); - break; - case 0: - list.Add(current); - num = 1659113913; - break; - case 3: - num = (_206A_206A_202E_200F_200D_202E_206B_202D_206A_206E_202C_206A_202E_202D_206E_200F_200F_202B_200C_206D_206D_202D_202D_200E_200E_206A_202D_200B_206B_202D_206C_202C_206C_206A_202B_200D_206B_206D_206C_206F_202E((IEnumerator)enumerator) ? 1659113915 : 1659113918); - break; - case 4: - goto end_IL_009e; - } - continue; - end_IL_009e: - break; - } - } - finally - { - num = ((enumerator == null) ? 1357981513 : 1357981512); - while (true) - { - int num8 = num; - num3 = 1357981513; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 2: - num = 1357981512; - break; - case 0: - goto end_IL_016c; - case 1: - _202B_206F_202A_206C_202E_202C_206E_202B_206B_200C_200C_202B_200B_206A_200B_206E_202D_202D_202B_206E_206B_206B_200F_202D_202C_200B_200D_202D_206C_200E_200C_202D_206C_206B_206F_202D_200F_206A_200F_206F_202E((IDisposable)enumerator); - num = 1357981513; - break; - } - continue; - end_IL_016c: - break; - } - } - list.Sort((Quest a, Quest b) => _003C_003Ec._202E_202B_200C_200D_200E_206F_206D_206B_206F_200C_206E_206B_206D_206D_200D_206B_202C_206C_206E_200D_202B_206D_206F_202D_206A_206C_202E_206E_202D_202B_202D_200F_206D_202C_202C_202B_200C_200E_202C_206F_202E(a.Info.Name, b.Info.Name, StringComparison.OrdinalIgnoreCase)); - } - catch (Exception ex) - { - _206B_200F_200C_200E_200E_206E_200E_206C_206D_206C_200F_200B_200D_202E_206F_206D_202D_206B_200B_206C_206E_200E_206A_202A_200B_202A_200D_202D_206D_202D_202E_202C_206B_202D_206A_206B_202A_200F_200E_202C_202E((ILogger)_logger, ex, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-771414447), Array.Empty<object>()); - list.Clear(); - } - _acceptedQuestsCache = list; - return list; - } - } - continue; - IL_0056: - num = 1772221028; - } - } - - static void _202E_206F_200B_206A_200B_206B_206E_202B_206C_202C_202A_206E_202D_206C_200F_206B_200E_202E_202A_206B_206F_200E_202B_200C_202C_202B_200C_206A_206A_206F_200D_202A_206D_206C_202B_206D_206D_200E_200B_206A_202E(ImU8String P_0) - { - ImGui.TextWrapped(P_0); - } - - static void _200E_200C_206B_206B_206B_206C_206B_206C_200F_206A_206A_206E_200B_206F_202A_202B_206A_200E_202B_206D_202C_200B_202B_202B_200D_206A_202D_206B_202E_200D_206C_202D_206C_202B_206B_202A_200E_200D_200D_206C_202E(ImU8String P_0) - { - ImGui.Text(P_0); - } - - static ImRaii.ChildDisposable _206A_206C_200F_206B_206E_206C_206C_206E_202B_202C_206D_200C_206F_202E_200E_202D_206D_202D_202C_200B_206B_200C_202B_206C_200B_202A_202B_202D_202D_202B_202E_202B_206C_206B_202E_200B_202A_200D_202B_206B_202E(ImU8String P_0, Vector2 P_1, bool P_2) - { - return ImRaii.Child(P_0, P_1, P_2); - } - - static void _200C_202A_206C_206C_200D_206E_202A_202B_202D_202B_202B_202B_202E_200E_202A_200B_200B_202B_206F_202E_206C_206A_202A_200C_206B_202E_206B_206C_200F_202C_200D_200C_202A_206F_200D_200E_206A_206C_200C_202E(ImU8String P_0, ImGuiTableColumnFlags P_1, float P_2, uint P_3) - { - ImGui.TableSetupColumn(P_0, P_1, P_2, P_3); - } - - static ImGuiIOPtr _200D_206C_202B_200E_206A_206E_206F_202D_202C_206E_200C_200C_206A_202B_206C_200E_200F_202E_206A_200B_202D_202D_200F_200F_206C_200B_206C_200F_202A_206E_202A_200C_202B_206C_202B_200E_200E_206C_200B_206A_202E() - { - return ImGui.GetIO(); - } - - static void _202C_206B_200B_200E_206C_200C_206D_202E_202B_206A_202E_206C_202B_200D_202C_200D_200D_200D_206E_200D_206F_206A_206C_200E_206D_200F_202B_200B_200B_206C_206A_200B_200D_202E_202B_206C_206D_200C_200E_202C_202E() - { - ImGui.TableNextRow(); - } - - static ImRaii.IdDisposable _200C_200F_200B_202C_206D_200D_206B_202E_200B_202C_202D_202C_200B_202B_202A_202C_202C_202D_206F_202C_200D_200E_200F_202C_202E_206F_206C_206B_200B_200F_202C_206E_202E_202A_202E_200F_200B_202A_202C_200D_202E(ImU8String P_0, bool P_1) - { - return ImRaii.PushId(P_0, P_1); - } - - static bool _202C_202A_206F_206A_206E_206E_202D_200D_200B_200B_202B_200D_200B_200E_206B_206B_202B_202D_202E_206F_206D_206F_206A_200E_202E_202E_202E_200E_206D_202B_200E_200B_206A_202E_206F_200E_200F_200F_202C_202E() - { - return ImGui.TableNextColumn(); - } - - static void _202C_206E_206A_206F_200B_206A_202D_200E_206A_202E_202E_202E_202B_200B_206B_206B_206E_206E_200D_200D_206F_200B_202D_200E_206B_200E_206A_206C_200C_206F_200F_200D_202A_200D_200C_206E_200C_200B_202C_206A_202E() - { - ImGui.AlignTextToFramePadding(); - } - - static void _202D_200E_200F_202D_200B_206C_206E_202C_206B_202E_202A_202A_202D_206B_202D_202B_202B_206C_200E_206E_202C_200E_200D_202E_200C_200D_200C_206E_206E_202B_200F_200D_202A_200F_202D_206B_200E_200C_202A_202B_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static float _206A_202E_200C_202A_206F_200C_202E_202C_206F_206E_200D_200E_202B_200F_206A_206D_206F_206B_202C_202C_200E_200B_202E_200E_202A_206B_200D_206F_202D_200C_202B_206B_206E_200B_206F_206C_202C_200F_200E_206C_202E() - { - return ImGui.GetFrameHeight(); - } - - static IUiBuilder _200D_200C_206A_200B_200F_202D_206C_206D_206D_200D_202A_202C_206F_206D_206A_200E_202E_202B_206E_202A_206B_200E_206C_200F_202E_200E_206D_202D_206F_200D_202C_202C_200F_206D_206D_206F_202D_200F_200E_202B_202E(IDalamudPluginInterface P_0) - { - return P_0.UiBuilder; - } - - static IFontHandle _200D_202C_206A_206F_202D_202A_206C_202D_200B_202D_206C_202B_202D_202B_200B_206A_206E_200F_202D_206B_200F_200F_206C_206F_200D_200E_202B_200C_206F_206D_202B_206F_200C_202A_202D_206C_202D_200C_206A_200F_202E(IUiBuilder P_0) - { - return P_0.IconFontFixedWidthHandle; - } - - static IDisposable _202E_206D_200F_206D_202A_202D_202B_202D_200C_202B_206A_200C_200D_202D_202D_200E_202C_206E_200D_202D_202B_202E_200B_202B_200F_206B_206A_206D_206B_206C_206F_200C_202C_200D_206D_202B_200E_206E_206D_206D_202E(IFontHandle P_0) - { - return P_0.Push(); - } - - static string _202C_202A_206B_206B_202D_200B_206E_202C_202D_206D_206E_200C_202C_206E_206B_202A_200B_206D_206F_206B_206F_200E_206F_202D_200B_206D_200F_206C_206D_206A_206E_202B_206F_202D_200B_202A_200D_200F_200E_206F_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static bool _200F_202B_200B_200C_200C_202A_200F_206B_206B_200D_202A_206E_206A_202B_206A_200B_206E_202D_200E_206E_200B_200D_200B_200C_206D_202C_200D_206A_206B_206D_200C_206B_206D_206F_202A_206E_206D_206D_202D_200C_202E() - { - return ImGui.IsItemHovered(); - } - - static void _202B_206F_202A_206C_202E_202C_206E_202B_206B_200C_200C_202B_200B_206A_200B_206E_202D_202D_202B_206E_206B_206B_200F_202D_202C_200B_200D_202D_206C_200E_200C_202D_206C_206B_206F_202D_200F_206A_200F_206F_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _202B_202B_200F_206F_200C_206B_202B_202E_200B_202B_206A_200E_206B_206E_202C_206C_206A_200E_206D_206E_202C_206E_202C_206C_200D_206A_200D_202C_202A_200F_202B_206D_206A_206E_200F_206A_200C_200C_200B_200D_202E() - { - ImGui.SameLine(); - } - - static void _202A_200B_202B_200B_200C_200F_202D_206A_206C_200F_202B_200F_200C_206A_200E_202C_200C_200F_200B_202A_206C_206F_200F_202C_202D_202D_206D_206B_202E_200B_202B_206D_206F_202B_206E_206C_206F_200F_202D_206E_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } - - static bool _206A_206A_202E_200F_200D_202E_206B_202D_206A_206E_202C_206A_202E_202D_206E_200F_200F_202B_200C_206D_206D_202D_202D_200E_200E_206A_202D_200B_206B_202D_206C_202C_206C_206A_202B_200D_206B_206D_206C_206F_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static bool _202E_202C_200E_206B_206B_206F_206A_200E_202B_206A_202B_206E_202D_202C_202D_200F_202B_200E_202D_200B_206D_202C_202B_206E_202D_206B_200C_206B_200F_202A_200D_202C_206D_206E_206B_200D_206C_206A_202E_206F_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } - - static ImRaii.DisabledDisposable _206D_202C_202C_202C_200C_200F_206B_206A_202B_206F_206F_202B_202E_206F_206D_200E_200E_206B_206C_202C_202B_200B_206D_206D_200D_206D_202A_200D_206D_206B_206C_206F_202E_202E_202D_202A_202B_200D_202E_202D_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static bool _206F_206F_206E_202E_206C_202B_200F_202A_202E_200F_202C_202A_206D_206B_200E_200B_200F_200D_206F_200B_200D_200E_200B_202E_200D_200E_200C_206A_200B_200E_200F_202D_200E_200F_200D_206E_206D_206A_206F_202C_202E(ImGuiHoveredFlags P_0) - { - return ImGui.IsItemHovered(P_0); - } - - static void _202E_200F_202E_206C_202A_206D_206D_200F_200C_206F_200B_206F_202A_200C_206C_206D_200D_202E_200E_202D_200C_206A_202B_206F_206C_206A_202C_206F_206C_202C_200E_202C_200D_202E_202D_200C_206C_200D_206A_202B_202E() - { ImGui.Spacing(); } - static long _202A_206C_206E_206C_202B_202C_206C_206D_202E_200E_206F_206B_200E_200F_202B_200B_206B_206C_202A_206A_202E_206E_206D_206D_202E_206D_206A_202B_202E_206B_200B_200D_202C_200E_200C_206B_200F_202C_206E_202A_202E() + private List<Quest> GetCurrentlyAcceptedQuests() { - return Environment.TickCount64; - } - - static void _206B_200F_200C_200E_200E_206E_200E_206C_206D_206C_200F_200B_200D_202E_206F_206D_202D_206B_200B_206C_206E_200E_206A_202A_200B_202A_200D_202D_206D_202D_202E_202C_206B_202D_206A_206B_202A_200F_200E_202C_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogDebug(P_1, P_2, P_3); + if (Environment.TickCount64 < _nextAcceptedQuestsRefreshMs) + { + return _acceptedQuestsCache; + } + _nextAcceptedQuestsRefreshMs = Environment.TickCount64 + 1000; + List<Quest> list = new List<Quest>(); + try + { + foreach (Quest allQuest in _questRegistry.AllQuests) + { + if (_questFunctions.IsQuestAccepted(allQuest.Id)) + { + list.Add(allQuest); + } + } + list.Sort((Quest a, Quest b) => string.Compare(a.Info.Name, b.Info.Name, StringComparison.OrdinalIgnoreCase)); + } + catch (Exception exception) + { + _logger.LogDebug(exception, "Failed to enumerate accepted quests"); + list.Clear(); + } + _acceptedQuestsCache = list; + return list; } } diff --git a/Questionable/Questionable.Windows.ConfigComponents/ConfigComponent.cs b/Questionable/Questionable.Windows.ConfigComponents/ConfigComponent.cs index 50f688d..08f087c 100644 --- a/Questionable/Questionable.Windows.ConfigComponents/ConfigComponent.cs +++ b/Questionable/Questionable.Windows.ConfigComponents/ConfigComponent.cs @@ -1,13 +1,9 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Globalization; using System.Linq; -using System.Numerics; -using System.Runtime.CompilerServices; using System.Text; using Dalamud.Bindings.ImGui; -using Dalamud.Configuration; using Dalamud.Game.Text; using Dalamud.Interface; using Dalamud.Interface.Utility.Raii; @@ -27,25 +23,14 @@ internal abstract class ConfigComponent private const string ModePrefix = "M:"; - protected readonly string[] SupportedCfcOptions = new string[3] - { - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1807221551), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(380812930), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2101114993) - }; + protected readonly string[] SupportedCfcOptions = new string[3] { "Enabled (Default)", "Enabled", "Disabled" }; - protected readonly string[] UnsupportedCfcOptions = new string[3] - { - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(131074132), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(429773793), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1347834949) - }; + protected readonly string[] UnsupportedCfcOptions = new string[3] { "Disabled (Default)", "Enabled", "Disabled" }; private readonly IDalamudPluginInterface _pluginInterface; protected Configuration Configuration { get; } - [MethodImpl(MethodImplOptions.NoInlining)] protected ConfigComponent(IDalamudPluginInterface pluginInterface, Configuration configuration) { _pluginInterface = pluginInterface; @@ -56,614 +41,99 @@ internal abstract class ConfigComponent protected void Save() { - _202D_206A_206C_206D_202D_206D_202A_200C_202E_202B_206A_206D_206D_202C_200C_206E_206A_202E_202C_202E_206E_206F_200C_206E_200E_206E_206E_206E_200B_202B_206A_206F_206F_202B_206D_202E_202A_202D_202C_206B_202E(_pluginInterface, (IPluginConfiguration)Configuration); + _pluginInterface.SavePluginConfig(Configuration); } protected static string FormatLevel(int level, bool includePrefix = true) { - int num = ((level != 0) ? (-1915937495) : (-1915937494)); - while (true) + if (level == 0) { - int num2 = num; - int num3 = -1915937496; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return $"{(includePrefix ? _200E_206D_202B_200B_202C_206F_202E_200E_200D_206E_206D_206A_200E_206B_202C_202D_200F_206D_206A_206E_202C_202E_206D_202A_202B_206E_202C_202D_202A_206F_200C_206A_200B_202D_200C_202E_206E_202B_202C_202D_202E(SeIconChar.LevelEn) : string.Empty)}{FormatLevel(level / 10, includePrefix: false)}{_202B_202A_206D_206F_200B_200F_200E_200D_200D_202D_200E_206B_202E_200F_202C_206C_202E_202D_206F_206C_200D_200B_206C_200C_200F_206E_200C_206B_202B_202E_202C_206E_200E_206D_206D_202D_206A_202B_202C_200C_202E((SeIconChar)(57440 + level % 10))}"; - case 2: - return string.Empty; - case 0: - goto IL_00a2; - } - continue; - IL_00a2: - num = -1915937494; + return string.Empty; } + return $"{(includePrefix ? SeIconChar.LevelEn.ToIconString() : string.Empty)}{FormatLevel(level / 10, includePrefix: false)}{((SeIconChar)(57440 + level % 10)).ToIconChar()}"; } - [MethodImpl(MethodImplOptions.NoInlining)] protected static void DrawNotes(bool enabledByDefault, IEnumerable<string> notes) { - ImRaii.ColorDisposable colorDisposable = _202D_200E_206F_200F_200B_206A_200C_206E_206B_206E_200B_202D_202C_202C_206C_200D_202C_200F_206C_202E_202B_200E_202D_202C_206F_206B_206A_200C_200C_202D_206B_206F_206F_200D_202D_206A_202E_200E_202B_206F_202E(); - try + using ImRaii.ColorDisposable colorDisposable = new ImRaii.ColorDisposable(); + colorDisposable.Push(ImGuiCol.TextDisabled, (!enabledByDefault) ? UiThemeUtils.StatusActive : UiThemeUtils.StatusAvailableComplete); + ImGui.SameLine(); + using (ImRaii.PushFont(UiBuilder.IconFont)) { - _206E_206E_202A_202B_202E_202C_202B_200F_200B_206E_200D_200D_206F_202C_200C_202D_206C_206A_202E_202A_206F_200E_202C_200E_200F_206C_200E_202E_202B_200C_202D_200E_206C_200F_200C_200D_200F_206F_206E_202A_202E(colorDisposable, ImGuiCol.TextDisabled, (!enabledByDefault) ? UiThemeUtils.StatusActive : UiThemeUtils.StatusAvailableComplete, true); - _206F_206D_202C_206B_206D_200F_200D_206E_206C_200B_200E_202B_200B_206A_200C_200D_200E_206C_202D_200D_200B_202D_202E_202A_206A_202B_202E_200C_202C_206D_206D_200E_206A_206B_206C_206D_206C_206C_202C_206D_202E(); - ImRaii.FontDisposable fontDisposable = _202B_200D_200B_200F_206E_202D_206A_200E_206C_202E_202E_206C_202A_206E_202A_200E_202C_206B_206E_206F_200B_200D_200B_202C_200F_206C_206D_206B_200D_202D_206F_202B_202C_202B_206A_206E_200B_206B_206E_200D_202E(_202A_200C_202B_206A_202B_202E_200E_200C_202C_202D_200B_202C_206F_200B_206D_200D_206B_206A_200B_206F_206E_206C_206A_206C_202D_206B_200C_200B_200F_202C_206E_200E_206B_206B_202B_206D_206E_206E_202A_206D_202E(), true); - int num; - try + if (!enabledByDefault) { - num = (enabledByDefault ? (-1607405850) : (-1607405851)); - while (true) - { - int num2 = num; - int num3 = -1607405852; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0081; - case 1: - _206E_206F_200D_202E_200E_206B_206B_206F_200C_206C_202E_206D_200E_200E_202A_206E_206F_206E_202C_200E_202E_202E_202B_206F_202D_206D_206D_202D_200D_202D_200F_206D_200C_202C_200F_206E_200F_202D_202C_200D_202E((ImU8String)_202C_202B_206C_202E_200B_206D_200B_206D_200E_200B_200D_206C_200B_202B_206E_202D_200D_202C_206C_206D_200D_202C_202D_200D_200B_206B_200F_206C_206B_206D_202A_200F_200B_206B_200F_200C_200D_202E_202B_200F_202E(FontAwesomeIcon.ExclamationTriangle)); - goto end_IL_0053; - case 2: - _206E_206F_200D_202E_200E_206B_206B_206F_200C_206C_202E_206D_200E_200E_202A_206E_206F_206E_202C_200E_202E_202E_202B_206F_202D_206D_206D_202D_200D_202D_200F_206D_200C_202C_200F_206E_200F_202D_202C_200D_202E((ImU8String)_202C_202B_206C_202E_200B_206D_200B_206D_200E_200B_200D_206C_200B_202B_206E_202D_200D_202C_206C_206D_200D_202C_202D_200D_200B_206B_200F_206C_206B_206D_202A_200F_200B_206B_200F_200C_200D_202E_202B_200F_202E(FontAwesomeIcon.InfoCircle)); - goto end_IL_0053; - } - continue; - IL_0081: - num = -1607405851; - continue; - end_IL_0053: - break; - } + ImGui.TextDisabled(FontAwesomeIcon.ExclamationTriangle.ToIconString()); } - finally + else { - num = ((fontDisposable == null) ? (-1267252928) : (-1267252927)); - while (true) - { - int num7 = num; - int num3 = -1267252928; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 2: - num = -1267252927; - break; - case 1: - _202D_202B_202E_202D_202E_200C_200D_202B_200B_202E_200F_206A_202D_202D_200E_202D_202B_200F_202C_202E_206C_206B_202D_200F_200C_200C_200C_202D_200E_200C_202B_200D_200D_200C_206D_200C_200B_200B_206D_206E_202E((IDisposable)fontDisposable); - num = -1267252928; - break; - case 0: - goto end_IL_00e9; - } - continue; - end_IL_00e9: - break; - } - } - num = (_202D_200C_206A_200E_206E_206B_200B_206A_202D_202B_202C_202D_206E_206F_206F_200E_202E_206F_202D_206D_206E_202C_206D_200C_206F_206A_200C_206C_202B_206B_200E_202A_202C_200F_206F_202B_202B_202B_206F_200C_202E() ? 777277028 : 777277031); - while (true) - { - int num10 = num; - int num3 = 777277029; - int num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 0: - goto IL_0186; - case 2: - return; - case 1: - using (_202B_206C_202A_206E_202E_202B_206F_200F_202C_206F_200B_206E_206D_200D_206B_206F_206D_200C_200B_202B_206E_206B_206E_200F_206F_206B_200D_202B_200E_206F_206D_202D_206D_206E_202B_200D_202E_206D_202C_206C_202E()) - { - _202E_202E_202C_206D_200F_206C_206F_202E_200D_202B_206A_200C_206A_206A_206C_202B_202B_206C_200F_200C_200D_202C_200F_206E_206D_206F_206A_200B_202B_206A_202D_200D_202A_206D_202B_206C_206D_202A_202D_206D_202E(ref UiThemeUtils.StatusActive, (ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(575964310)); - IEnumerator<string> enumerator = notes.GetEnumerator(); - try - { - num = 1611844680; - while (true) - { - int num13 = num; - num3 = 1611844682; - num4 = num13; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = (_200E_202C_202E_200C_200C_202D_206C_206F_206B_206D_200C_206F_206B_206F_202E_206C_206E_202D_200F_206A_206E_206D_202D_202D_206E_200F_200B_202B_200D_202E_206D_202A_200C_200B_200C_200F_200F_202D_206C_200E_202E((IEnumerator)enumerator) ? 1611844683 : 1611844682); - break; - case 1: - _202A_206C_206B_202E_200D_206E_202A_202B_206F_206C_206B_200E_206F_206F_200F_206A_200C_202A_202D_202D_206A_202C_206C_200F_206A_206F_200D_206D_206E_200F_202B_200B_206E_206B_206A_200B_200D_206E_206B_206D_202E((ImU8String)enumerator.Current); - num = 1611844680; - break; - case 3: - num = 1611844680; - break; - case 0: - return; - } - } - } - finally - { - num = ((enumerator == null) ? (-1247894138) : (-1247894139)); - while (true) - { - int num14 = num; - num3 = -1247894140; - num4 = num14; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1247894139; - break; - case 2: - goto end_IL_0273; - case 1: - _202D_202B_202E_202D_202E_200C_200D_202B_200B_202E_200F_206A_202D_202D_200E_202D_202B_200F_202C_202E_206C_206B_202D_200F_200C_200C_200C_202D_200E_200C_202B_200D_200D_200C_206D_200C_200B_200B_206D_206E_202E((IDisposable)enumerator); - num = -1247894138; - break; - } - continue; - end_IL_0273: - break; - } - } - } - } - continue; - IL_0186: - num = 777277031; + ImGui.TextDisabled(FontAwesomeIcon.InfoCircle.ToIconString()); } } - finally + if (!ImGui.IsItemHovered()) { - int num = ((colorDisposable == null) ? (-697778220) : (-697778217)); - while (true) + return; + } + using (ImRaii.Tooltip()) + { + ImGui.TextColored(in UiThemeUtils.StatusActive, "While testing, the following issues have been found:"); + foreach (string note in notes) { - int num15 = num; - int num3 = -697778219; - int num4 = num15; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -697778217; - break; - case 1: - goto end_IL_02e4; - case 2: - _202D_202B_202E_202D_202E_200C_200D_202B_200B_202E_200F_206A_202D_202D_200E_202D_202B_200F_202C_202E_206C_206B_202D_200F_200C_200C_200C_202D_200E_200C_202B_200D_200D_200C_206D_200C_200B_200B_206D_206E_202E((IDisposable)colorDisposable); - num = -697778220; - break; - } - continue; - end_IL_02e4: - break; + ImGui.BulletText(note); } } } - [MethodImpl(MethodImplOptions.NoInlining)] protected void DrawClipboardButtons(string clipboardPrefix, HashSet<uint> whitelistedIds, HashSet<uint> blacklistedIds, Dictionary<uint, EDutyMode>? modeOverrides = null) { - ImRaii.DisabledDisposable disabledDisposable = _206C_206E_200C_206C_206E_206E_200F_202C_206F_202D_202E_202A_200B_200F_200E_206D_206A_200B_202D_202B_202B_200C_202E_202A_200C_202E_202D_202D_206E_206E_206B_202A_200B_202E_200C_202C_206D_200F_202D_202E_202E(whitelistedIds.Count + blacklistedIds.Count + (modeOverrides?.Count ?? 0) == 0); - int num; - try + using (ImRaii.Disabled(whitelistedIds.Count + blacklistedIds.Count + (modeOverrides?.Count ?? 0) == 0)) { - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Copy, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1414767654))) ? 1188485484 : 1188485481); - IEnumerable<string> enumerable = default(IEnumerable<string>); - while (true) + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Copy, "Export to clipboard")) { - int num2 = num; - int num3 = 1188485480; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + IEnumerable<string> first = whitelistedIds.Select((uint x) => $"{"+"}{x}"); + IEnumerable<string> second = blacklistedIds.Select((uint x) => $"{"-"}{x}"); + IEnumerable<string> enumerable = first.Concat(second); + if (modeOverrides != null) { - case 3: - enumerable = enumerable.Concat(modeOverrides.Select([MethodImpl(MethodImplOptions.NoInlining)] (KeyValuePair<uint, EDutyMode> x) => - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(1, 3); - defaultInterpolatedStringHandler.AppendFormatted(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1388362359)); - defaultInterpolatedStringHandler.AppendFormatted(x.Key); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1940061145)); - defaultInterpolatedStringHandler.AppendFormatted((int)x.Value); - return defaultInterpolatedStringHandler.ToStringAndClear(); - })); - num = 1188485480; - break; - case 1: - { - IEnumerable<string> first = whitelistedIds.Select([MethodImpl(MethodImplOptions.NoInlining)] (uint x) => $"{global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1206370274)}{x}"); - IEnumerable<string> second = blacklistedIds.Select([MethodImpl(MethodImplOptions.NoInlining)] (uint x) => $"{global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2079705286)}{x}"); - enumerable = first.Concat(second); - num = ((modeOverrides == null) ? 1188485480 : 1188485483); - break; + enumerable = enumerable.Concat(modeOverrides.Select((KeyValuePair<uint, EDutyMode> x) => $"{"M:"}{x.Key}:{x.Value}")); } - case 2: - num = 1188485481; - break; - case 0: - _202C_206E_200C_202B_202A_202B_206C_202E_206C_206B_206B_202D_206F_200D_200C_206C_200B_206D_206B_206E_206C_206B_200C_200D_206D_206E_202C_202B_202E_200B_202C_206D_206B_202E_200E_202E_200E_206E_206A_202A_202E((ImU8String)_206C_202B_206F_200D_206B_200C_200E_206B_200D_202D_206B_202A_200E_202E_202A_202E_206A_206A_200D_206D_200F_200B_202C_206D_200C_206E_206D_202E_202C_200C_200B_202A_206D_206A_202E_206C_200B_202E_200C_200F_202E(clipboardPrefix, _206C_202A_206E_202E_206D_202C_206F_202C_206C_200F_206F_200F_202D_206D_206D_200C_206B_206F_200B_200E_206E_206D_206C_202C_200C_206E_200E_200B_206B_206C_200F_200B_206B_206A_202E_206E_200F_206E_200C_202D_202E(_200C_202E_200E_202B_200C_202D_202A_206C_206B_202A_202A_202C_206B_206E_202A_202A_206B_200E_200B_200D_200C_200F_206E_200B_206D_202B_206B_200F_202D_202B_200D_202A_206B_200E_202E_206B_202D_206A_206F_200F_202E(_200C_200C_206B_200F_206D_200E_202D_202B_200D_202D_200B_200C_202E_200C_206A_202D_202D_200E_206B_206D_202A_200B_206B_206A_206B_200C_202A_200F_206A_206D_200E_206D_202A_206A_206E_206C_206F_200C_206F_202C_202E(), _200F_202A_202E_206A_200B_206C_206E_206F_206B_200D_200B_200F_206B_200D_202C_206C_200D_206B_200D_202E_206C_202D_200D_206D_200D_206B_202E_200D_206D_206F_200C_202B_202A_200E_200B_206F_200B_200B_200D_202B_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1344195866), enumerable))))); - num = 1188485484; - break; - case 4: - goto end_IL_005c; - } - continue; - end_IL_005c: - break; + ImGui.SetClipboardText(clipboardPrefix + Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Join(";", enumerable)))); } } - finally - { - num = ((disabledDisposable == null) ? (-1379274858) : (-1379274859)); - while (true) - { - int num5 = num; - int num3 = -1379274857; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1379274859; - break; - case 1: - goto end_IL_01ad; - case 2: - _202D_202B_202E_202D_202E_200C_200D_202B_200B_202E_200F_206A_202D_202D_200E_202D_202B_200F_202C_202E_206C_206B_202D_200F_200C_200C_200C_202D_200E_200C_202B_200D_200D_200C_206D_200C_200B_200B_206D_206E_202E((IDisposable)disabledDisposable); - num = -1379274858; - break; - } - continue; - end_IL_01ad: - break; - } - } - _206F_206D_202C_206B_206D_200F_200D_206E_206C_200B_200E_202B_200B_206A_200C_200D_200E_206C_202D_200D_200B_202D_202E_202A_206A_202B_202E_200C_202C_206D_206D_200E_206A_206B_206C_206D_206C_206C_202C_206D_202E(); - string text = ThrottledClipboard.GetText(); - num = (_202B_206E_200E_206B_202A_206D_206F_206C_200E_202B_202E_206E_206B_206B_200E_206F_206F_202C_200C_202A_200B_206D_200E_200F_200C_202B_202C_202E_202B_200E_202E_206C_206A_202A_206B_202C_202B_202B_200D_200C_202E(text) ? 390106122 : 390106121); - int num7; - while (true) - { - int num6 = num; - int num3 = 390106120; - int num4 = num6; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 0: - goto IL_0252; - case 1: - num7 = ((!_202D_206F_200D_206A_200E_206D_200D_206E_200C_200D_200E_202E_200F_206A_206B_200D_206E_200E_200B_202C_202D_200E_206B_202C_200F_206F_202D_202A_200C_202D_200E_200C_200C_202E_200E_202D_200E_206C_206E_206E_202E(text, clipboardPrefix, StringComparison.InvariantCulture)) ? 1 : 0); - break; - case 2: - num7 = 1; - break; - } - break; - IL_0252: - num = 390106121; - } - disabledDisposable = _206C_206E_200C_206C_206E_206E_200F_202C_206F_202D_202E_202A_200B_200F_200E_206D_206A_200B_202D_202B_202B_200C_202E_202A_200C_202E_202D_202D_206E_206E_206B_202A_200B_202E_200C_202C_206D_200F_202D_202E_202E((byte)num7 != 0); - try - { - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Paste, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2037990506))) ? 291266974 : 291266962); - string text2 = default(string); - uint result2 = default(uint); - int result3 = default(int); - uint result4 = default(uint); - int num10 = default(int); - ReadOnlySpan<char> span = default(ReadOnlySpan<char>); - int num14 = default(int); - string[] array = default(string[]); - uint result = default(uint); - while (true) - { - int num8 = num; - int num3 = 291266975; - int num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 16: - num = ((!uint.TryParse(_202D_206B_206C_206C_202A_206F_200C_206E_202A_206D_206E_200F_206D_200F_206F_202A_206F_202D_200C_206E_200C_200B_202B_202A_200E_200D_200B_202C_200D_202E_202B_200D_206F_202A_202C_206B_202E_206D_202E_200F_202E(text2, _206D_202A_202D_202D_206F_202B_206A_200E_206F_200F_202D_200C_200E_200C_202B_206B_200D_200B_206E_200B_200C_206D_206B_202E_206C_206F_206A_206E_206C_202B_206A_200D_202A_200C_200E_206C_200B_206A_200F_206D_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(195401427))), _206B_202D_200F_206C_202D_202D_206B_206B_200C_206E_202D_200B_202D_206B_206A_206C_206B_200F_206B_200F_206C_202B_200E_206E_202A_200C_200D_206A_200C_206F_206F_206F_200C_202D_206F_202B_202D_202D_202A_200D_202E(), out result2)) ? 291266967 : 291266972); - break; - case 0: - num = ((!_202D_206F_200D_206A_200E_206D_200D_206E_200C_200D_200E_202E_200F_206A_206B_200D_206E_200E_200B_202C_202D_200E_206B_202C_200F_206F_202D_202A_200C_202D_200E_200C_200C_202E_200E_202D_200E_206C_206E_206E_202E(text2, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1172231633), StringComparison.InvariantCulture)) ? 291266957 : 291266969); - break; - case 17: - num = ((!_202D_206C_202D_202D_202B_200C_206E_202C_202A_206A_200B_206E_206A_202E_200E_206E_202E_206C_200F_206F_200C_206E_202C_206E_200F_200C_202A_206A_202C_200C_200E_200E_202E_206E_200C_206D_206C_202A_206C_206E_202E(_200C_206A_206D_200C_206F_200C_200C_202D_202B_202C_206E_202B_200F_202D_200D_200D_202B_200C_206D_206F_200C_206F_206A_206A_200E_200D_206F_202C_206F_206F_200F_202D_206F_206E_200E_206E_206E_206C_200F_206C_202E(typeof(EDutyMode).TypeHandle), (object)result3)) ? 291266957 : 291266960); - break; - case 15: - modeOverrides[result4] = (EDutyMode)result3; - num = 291266957; - break; - case 12: - num = ((modeOverrides == null) ? 291266957 : 291266975); - break; - case 18: - { - int num9 = num10; - num3 = 1; - num4 = num9; - int num11 = num4 ^ num3; - int num12 = num4 & num3; - num10 = num11 + (num12 + num12); - num = 291266970; - break; - } - case 4: - num = ((!uint.TryParse(span.Slice(0, num14), _206B_202D_200F_206C_202D_202D_206B_206B_200C_206E_202D_200B_202D_206B_206A_206C_206B_200F_206B_200F_206C_202B_200E_206E_202A_200C_200D_206A_200C_206F_206F_206F_200C_202D_206F_202B_202D_202D_202A_200D_202E(), out result4)) ? 291266957 : 291266961); - break; - case 7: - text2 = array[num10]; - num = ((!_202D_206F_200D_206A_200E_206D_200D_206E_200C_200D_200E_202E_200F_206A_206B_200D_206E_200E_200B_202C_202D_200E_206B_202C_200F_206F_202D_202A_200C_202D_200E_200C_200C_202E_200E_202D_200E_206C_206E_206E_202E(text2, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(195401427), StringComparison.InvariantCulture)) ? 291266967 : 291266959); - break; - case 3: - whitelistedIds.Add(result2); - num = 291266967; - break; - case 11: - Save(); - num = 291266974; - break; - case 13: - { - text = _202B_200E_206D_206D_202B_206C_206F_202B_206A_200B_202D_202C_206B_200D_202B_202E_200F_206C_200F_206A_206F_200C_200C_202B_200B_200D_200F_206D_206E_200D_206C_200D_202A_200B_202B_206D_200F_200C_206A_202D_202E(text, _206D_202C_206E_200E_206E_206E_200E_206C_200E_202D_202B_200F_206A_206A_200E_200B_206B_206B_206E_206F_206C_200B_202E_202A_202E_202C_206D_202D_202D_200B_200F_200B_200B_206E_206C_200C_200B_200F_200B_202B_202E(clipboardPrefix)); - string text3 = _206A_206C_200C_200D_206D_200C_202A_200B_202D_206C_206B_200F_206F_206D_206C_206B_206D_206D_206C_206A_200C_202D_206C_200D_206C_206F_202B_202E_202B_200F_200D_206A_200C_206D_200D_202C_200E_200E_206B_206C_202E(_200C_200C_206B_200F_206D_200E_202D_202B_200D_202D_200B_200C_202E_200C_206A_202D_202D_200E_206B_206D_202A_200B_206B_206A_206B_200C_202A_200F_206A_206D_200E_206D_202A_206A_206E_206C_206F_200C_206F_202C_202E(), _202D_202B_202D_202D_206E_200E_200F_206C_200C_202D_200D_202D_202E_206F_202D_202D_200B_206C_206E_202C_202D_200C_206D_202B_202A_202A_200F_200E_200C_200D_206D_206F_200B_206C_206B_200B_202C_200F_202C_202B_202E(text)); - whitelistedIds.Clear(); - blacklistedIds.Clear(); - modeOverrides?.Clear(); - array = _206E_200D_206D_202B_206A_206F_200F_206F_206F_200F_206D_202A_202E_200E_200E_206A_206C_206A_202C_202D_206E_200F_200F_206F_206D_200F_206D_206B_200D_202A_206F_200D_206A_206C_202A_202E_206D_200F_206B_200E_202E(text3, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1892636274), StringSplitOptions.None); - num10 = 0; - num = 291266970; - break; - } - case 6: - span = _202D_206B_206C_206C_202A_206F_200C_206E_202A_206D_206E_200F_206D_200F_206F_202A_206F_202D_200C_206E_200C_200B_202B_202A_200E_200D_200B_202C_200D_202E_202B_200D_206F_202A_202C_206B_202E_206D_202E_200F_202E(text2, _206D_202A_202D_202D_206F_202B_206A_200E_206F_200F_202D_200C_200E_200C_202B_206B_200D_200B_206E_200B_200C_206D_206B_202E_206C_206F_206A_206E_206C_202B_206A_200D_202A_200C_200E_206C_200B_206A_200F_206D_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1478813362))); - num14 = span.IndexOf(':'); - num = ((num14 <= 0) ? 291266957 : 291266971); - break; - case 14: - { - int num13 = num14; - num3 = 1; - num4 = num13; - num = ((!int.TryParse(span.Slice((num4 | num3) + (num4 & num3)), _206B_202D_200F_206C_202D_202D_206B_206B_200C_206E_202D_200B_202D_206B_206A_206C_206B_200F_206B_200F_206C_202B_200E_206E_202A_200C_200D_206A_200C_206F_206F_206F_200C_202D_206F_202B_202D_202D_202A_200D_202E(), out result3)) ? 291266957 : 291266958); - break; - } - case 2: - num = ((!uint.TryParse(_202D_206B_206C_206C_202A_206F_200C_206E_202A_206D_206E_200F_206D_200F_206F_202A_206F_202D_200C_206E_200C_200B_202B_202A_200E_200D_200B_202C_200D_202E_202B_200D_206F_202A_202C_206B_202E_206D_202E_200F_202E(text2, _206D_202A_202D_202D_206F_202B_206A_200E_206F_200F_202D_200C_200E_200C_202B_206B_200D_200B_206E_200B_200C_206D_206B_202E_206C_206F_206A_206E_206C_202B_206A_200D_202A_200C_200E_206C_200B_206A_200F_206D_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(792471175))), _206B_202D_200F_206C_202D_202D_206B_206B_200C_206E_202D_200B_202D_206B_206A_206C_206B_200F_206B_200F_206C_202B_200E_206E_202A_200C_200D_206A_200C_206F_206F_206F_200C_202D_206F_202B_202D_202D_202A_200D_202E(), out result)) ? 291266963 : 291266965); - break; - case 5: - num = ((num10 < array.Length) ? 291266968 : 291266964); - break; - case 10: - blacklistedIds.Add(result); - num = 291266963; - break; - case 9: - num = 291266962; - break; - case 8: - num = ((!_202D_206F_200D_206A_200E_206D_200D_206E_200C_200D_200E_202E_200F_206A_206B_200D_206E_200E_200B_202C_202D_200E_206B_202C_200F_206F_202D_202A_200C_202D_200E_200C_200C_202E_200E_202D_200E_206C_206E_206E_202E(text2, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(792471175), StringComparison.InvariantCulture)) ? 291266963 : 291266973); - break; - case 1: - return; - } - } - } - finally - { - num = ((disabledDisposable == null) ? (-1706207698) : (-1706207699)); - while (true) - { - int num15 = num; - int num3 = -1706207700; - int num4 = num15; - int num16 = num4 + num3; - int num17 = num4 & num3; - switch (num16 - (num17 + num17)) - { - case 0: - num = -1706207699; - break; - case 2: - goto end_IL_0659; - case 1: - _202D_202B_202E_202D_202E_200C_200D_202B_200B_202E_200F_206A_202D_202D_200E_202D_202B_200F_202C_202E_206C_206B_202D_200F_200C_200C_200C_202D_200E_200C_202B_200D_200D_200C_206D_200C_200B_200B_206D_206E_202E((IDisposable)disabledDisposable); - num = -1706207698; - break; - } - continue; - end_IL_0659: - break; - } - } - } - - static void _202D_206A_206C_206D_202D_206D_202A_200C_202E_202B_206A_206D_206D_202C_200C_206E_206A_202E_202C_202E_206E_206F_200C_206E_200E_206E_206E_206E_200B_202B_206A_206F_206F_202B_206D_202E_202A_202D_202C_206B_202E(IDalamudPluginInterface P_0, IPluginConfiguration P_1) - { - P_0.SavePluginConfig(P_1); - } - - static string _200E_206D_202B_200B_202C_206F_202E_200E_200D_206E_206D_206A_200E_206B_202C_202D_200F_206D_206A_206E_202C_202E_206D_202A_202B_206E_202C_202D_202A_206F_200C_206A_200B_202D_200C_202E_206E_202B_202C_202D_202E(SeIconChar P_0) - { - return P_0.ToIconString(); - } - - static char _202B_202A_206D_206F_200B_200F_200E_200D_200D_202D_200E_206B_202E_200F_202C_206C_202E_202D_206F_206C_200D_200B_206C_200C_200F_206E_200C_206B_202B_202E_202C_206E_200E_206D_206D_202D_206A_202B_202C_200C_202E(SeIconChar P_0) - { - return P_0.ToIconChar(); - } - - static ImRaii.ColorDisposable _202D_200E_206F_200F_200B_206A_200C_206E_206B_206E_200B_202D_202C_202C_206C_200D_202C_200F_206C_202E_202B_200E_202D_202C_206F_206B_206A_200C_200C_202D_206B_206F_206F_200D_202D_206A_202E_200E_202B_206F_202E() - { - return new ImRaii.ColorDisposable(); - } - - static ImRaii.ColorDisposable _206E_206E_202A_202B_202E_202C_202B_200F_200B_206E_200D_200D_206F_202C_200C_202D_206C_206A_202E_202A_206F_200E_202C_200E_200F_206C_200E_202E_202B_200C_202D_200E_206C_200F_200C_200D_200F_206F_206E_202A_202E(ImRaii.ColorDisposable P_0, ImGuiCol P_1, Vector4 P_2, bool P_3) - { - return P_0.Push(P_1, P_2, P_3); - } - - static void _206F_206D_202C_206B_206D_200F_200D_206E_206C_200B_200E_202B_200B_206A_200C_200D_200E_206C_202D_200D_200B_202D_202E_202A_206A_202B_202E_200C_202C_206D_206D_200E_206A_206B_206C_206D_206C_206C_202C_206D_202E() - { ImGui.SameLine(); - } - - static ImFontPtr _202A_200C_202B_206A_202B_202E_200E_200C_202C_202D_200B_202C_206F_200B_206D_200D_206B_206A_200B_206F_206E_206C_206A_206C_202D_206B_200C_200B_200F_202C_206E_200E_206B_206B_202B_206D_206E_206E_202A_206D_202E() - { - return UiBuilder.IconFont; - } - - static ImRaii.FontDisposable _202B_200D_200B_200F_206E_202D_206A_200E_206C_202E_202E_206C_202A_206E_202A_200E_202C_206B_206E_206F_200B_200D_200B_202C_200F_206C_206D_206B_200D_202D_206F_202B_202C_202B_206A_206E_200B_206B_206E_200D_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static string _202C_202B_206C_202E_200B_206D_200B_206D_200E_200B_200D_206C_200B_202B_206E_202D_200D_202C_206C_206D_200D_202C_202D_200D_200B_206B_200F_206C_206B_206D_202A_200F_200B_206B_200F_200C_200D_202E_202B_200F_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static void _206E_206F_200D_202E_200E_206B_206B_206F_200C_206C_202E_206D_200E_200E_202A_206E_206F_206E_202C_200E_202E_202E_202B_206F_202D_206D_206D_202D_200D_202D_200F_206D_200C_202C_200F_206E_200F_202D_202C_200D_202E(ImU8String P_0) - { - ImGui.TextDisabled(P_0); - } - - static void _202D_202B_202E_202D_202E_200C_200D_202B_200B_202E_200F_206A_202D_202D_200E_202D_202B_200F_202C_202E_206C_206B_202D_200F_200C_200C_200C_202D_200E_200C_202B_200D_200D_200C_206D_200C_200B_200B_206D_206E_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool _202D_200C_206A_200E_206E_206B_200B_206A_202D_202B_202C_202D_206E_206F_206F_200E_202E_206F_202D_206D_206E_202C_206D_200C_206F_206A_200C_206C_202B_206B_200E_202A_202C_200F_206F_202B_202B_202B_206F_200C_202E() - { - return ImGui.IsItemHovered(); - } - - static ImRaii.TooltipDisposable _202B_206C_202A_206E_202E_202B_206F_200F_202C_206F_200B_206E_206D_200D_206B_206F_206D_200C_200B_202B_206E_206B_206E_200F_206F_206B_200D_202B_200E_206F_206D_202D_206D_206E_202B_200D_202E_206D_202C_206C_202E() - { - return ImRaii.Tooltip(); - } - - static void _202E_202E_202C_206D_200F_206C_206F_202E_200D_202B_206A_200C_206A_206A_206C_202B_202B_206C_200F_200C_200D_202C_200F_206E_206D_206F_206A_200B_202B_206A_202D_200D_202A_206D_202B_206C_206D_202A_202D_206D_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static void _202A_206C_206B_202E_200D_206E_202A_202B_206F_206C_206B_200E_206F_206F_200F_206A_200C_202A_202D_202D_206A_202C_206C_200F_206A_206F_200D_206D_206E_200F_202B_200B_206E_206B_206A_200B_200D_206E_206B_206D_202E(ImU8String P_0) - { - ImGui.BulletText(P_0); - } - - static bool _200E_202C_202E_200C_200C_202D_206C_206F_206B_206D_200C_206F_206B_206F_202E_206C_206E_202D_200F_206A_206E_206D_202D_202D_206E_200F_200B_202B_200D_202E_206D_202A_200C_200B_200C_200F_200F_202D_206C_200E_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static ImRaii.DisabledDisposable _206C_206E_200C_206C_206E_206E_200F_202C_206F_202D_202E_202A_200B_200F_200E_206D_206A_200B_202D_202B_202B_200C_202E_202A_200C_202E_202D_202D_206E_206E_206B_202A_200B_202E_200C_202C_206D_200F_202D_202E_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static Encoding _200C_200C_206B_200F_206D_200E_202D_202B_200D_202D_200B_200C_202E_200C_206A_202D_202D_200E_206B_206D_202A_200B_206B_206A_206B_200C_202A_200F_206A_206D_200E_206D_202A_206A_206E_206C_206F_200C_206F_202C_202E() - { - return Encoding.UTF8; - } - - static string _200F_202A_202E_206A_200B_206C_206E_206F_206B_200D_200B_200F_206B_200D_202C_206C_200D_206B_200D_202E_206C_202D_200D_206D_200D_206B_202E_200D_206D_206F_200C_202B_202A_200E_200B_206F_200B_200B_200D_202B_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); - } - - static byte[] _200C_202E_200E_202B_200C_202D_202A_206C_206B_202A_202A_202C_206B_206E_202A_202A_206B_200E_200B_200D_200C_200F_206E_200B_206D_202B_206B_200F_202D_202B_200D_202A_206B_200E_202E_206B_202D_206A_206F_200F_202E(Encoding P_0, string P_1) - { - return P_0.GetBytes(P_1); - } - - static string _206C_202A_206E_202E_206D_202C_206F_202C_206C_200F_206F_200F_202D_206D_206D_200C_206B_206F_200B_200E_206E_206D_206C_202C_200C_206E_200E_200B_206B_206C_200F_200B_206B_206A_202E_206E_200F_206E_200C_202D_202E(byte[] P_0) - { - return Convert.ToBase64String(P_0); - } - - static string _206C_202B_206F_200D_206B_200C_200E_206B_200D_202D_206B_202A_200E_202E_202A_202E_206A_206A_200D_206D_200F_200B_202C_206D_200C_206E_206D_202E_202C_200C_200B_202A_206D_206A_202E_206C_200B_202E_200C_200F_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static void _202C_206E_200C_202B_202A_202B_206C_202E_206C_206B_206B_202D_206F_200D_200C_206C_200B_206D_206B_206E_206C_206B_200C_200D_206D_206E_202C_202B_202E_200B_202C_206D_206B_202E_200E_202E_200E_206E_206A_202A_202E(ImU8String P_0) - { - ImGui.SetClipboardText(P_0); - } - - static bool _202B_206E_200E_206B_202A_206D_206F_206C_200E_202B_202E_206E_206B_206B_200E_206F_206F_202C_200C_202A_200B_206D_200E_200F_200C_202B_202C_202E_202B_200E_202E_206C_206A_202A_206B_202C_202B_202B_200D_200C_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static bool _202D_206F_200D_206A_200E_206D_200D_206E_200C_200D_200E_202E_200F_206A_206B_200D_206E_200E_200B_202C_202D_200E_206B_202C_200F_206F_202D_202A_200C_202D_200E_200C_200C_202E_200E_202D_200E_206C_206E_206E_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.StartsWith(P_1, P_2); - } - - static int _206D_202C_206E_200E_206E_206E_200E_206C_200E_202D_202B_200F_206A_206A_200E_200B_206B_206B_206E_206F_206C_200B_202E_202A_202E_202C_206D_202D_202D_200B_200F_200B_200B_206E_206C_200C_200B_200F_200B_202B_202E(string P_0) - { - return P_0.Length; - } - - static string _202B_200E_206D_206D_202B_206C_206F_202B_206A_200B_202D_202C_206B_200D_202B_202E_200F_206C_200F_206A_206F_200C_200C_202B_200B_200D_200F_206D_206E_200D_206C_200D_202A_200B_202B_206D_200F_200C_206A_202D_202E(string P_0, int P_1) - { - return P_0.Substring(P_1); - } - - static byte[] _202D_202B_202D_202D_206E_200E_200F_206C_200C_202D_200D_202D_202E_206F_202D_202D_200B_206C_206E_202C_202D_200C_206D_202B_202A_202A_200F_200E_200C_200D_206D_206F_200B_206C_206B_200B_202C_200F_202C_202B_202E(string P_0) - { - return Convert.FromBase64String(P_0); - } - - static string _206A_206C_200C_200D_206D_200C_202A_200B_202D_206C_206B_200F_206F_206D_206C_206B_206D_206D_206C_206A_200C_202D_206C_200D_206C_206F_202B_202E_202B_200F_200D_206A_200C_206D_200D_202C_200E_200E_206B_206C_202E(Encoding P_0, byte[] P_1) - { - return P_0.GetString(P_1); - } - - static string[] _206E_200D_206D_202B_206A_206F_200F_206F_206F_200F_206D_202A_202E_200E_200E_206A_206C_206A_202C_202D_206E_200F_200F_206F_206D_200F_206D_206B_200D_202A_206F_200D_206A_206C_202A_202E_206D_200F_206B_200E_202E(string P_0, string P_1, StringSplitOptions P_2) - { - return P_0.Split(P_1, P_2); - } - - static int _206D_202A_202D_202D_206F_202B_206A_200E_206F_200F_202D_200C_200E_200C_202B_206B_200D_200B_206E_200B_200C_206D_206B_202E_206C_206F_206A_206E_206C_202B_206A_200D_202A_200C_200E_206C_200B_206A_200F_206D_202E(string P_0) - { - return P_0.Length; - } - - static ReadOnlySpan<char> _202D_206B_206C_206C_202A_206F_200C_206E_202A_206D_206E_200F_206D_200F_206F_202A_206F_202D_200C_206E_200C_200B_202B_202A_200E_200D_200B_202C_200D_202E_202B_200D_206F_202A_202C_206B_202E_206D_202E_200F_202E(string P_0, int P_1) - { - return P_0.AsSpan(P_1); - } - - static CultureInfo _206B_202D_200F_206C_202D_202D_206B_206B_200C_206E_202D_200B_202D_206B_206A_206C_206B_200F_206B_200F_206C_202B_200E_206E_202A_200C_200D_206A_200C_206F_206F_206F_200C_202D_206F_202B_202D_202D_202A_200D_202E() - { - return CultureInfo.InvariantCulture; - } - - static Type _200C_206A_206D_200C_206F_200C_200C_202D_202B_202C_206E_202B_200F_202D_200D_200D_202B_200C_206D_206F_200C_206F_206A_206A_200E_200D_206F_202C_206F_206F_200F_202D_206F_206E_200E_206E_206E_206C_200F_206C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _202D_206C_202D_202D_202B_200C_206E_202C_202A_206A_200B_206E_206A_202E_200E_206E_202E_206C_200F_206F_200C_206E_202C_206E_200F_200C_202A_206A_202C_200C_200E_200E_202E_206E_200C_206D_206C_202A_206C_206E_202E(Type P_0, object P_1) - { - return Enum.IsDefined(P_0, P_1); + string text = ThrottledClipboard.GetText(); + using (ImRaii.Disabled(string.IsNullOrEmpty(text) || !text.StartsWith(clipboardPrefix, StringComparison.InvariantCulture))) + { + if (!UiThemeUtils.IconTextButton(FontAwesomeIcon.Paste, "Import from Clipboard")) + { + return; + } + text = text.Substring(clipboardPrefix.Length); + string text2 = Encoding.UTF8.GetString(Convert.FromBase64String(text)); + whitelistedIds.Clear(); + blacklistedIds.Clear(); + modeOverrides?.Clear(); + string[] array = text2.Split(";"); + foreach (string text3 in array) + { + if (text3.StartsWith("+", StringComparison.InvariantCulture) && uint.TryParse(text3.AsSpan("+".Length), CultureInfo.InvariantCulture, out var result)) + { + whitelistedIds.Add(result); + } + if (text3.StartsWith("-", StringComparison.InvariantCulture) && uint.TryParse(text3.AsSpan("-".Length), CultureInfo.InvariantCulture, out var result2)) + { + blacklistedIds.Add(result2); + } + if (modeOverrides != null && text3.StartsWith("M:", StringComparison.InvariantCulture)) + { + ReadOnlySpan<char> span = text3.AsSpan("M:".Length); + int num2 = span.IndexOf(':'); + if (num2 > 0 && uint.TryParse(span.Slice(0, num2), CultureInfo.InvariantCulture, out var result3) && int.TryParse(span.Slice(num2 + 1), CultureInfo.InvariantCulture, out var result4) && Enum.IsDefined(typeof(EDutyMode), result4)) + { + modeOverrides[result3] = (EDutyMode)result4; + } + } + } + Save(); + } } } diff --git a/Questionable/Questionable.Windows.ConfigComponents/DebugConfigComponent.cs b/Questionable/Questionable.Windows.ConfigComponents/DebugConfigComponent.cs index 4ce8b1f..b643ccd 100644 --- a/Questionable/Questionable.Windows.ConfigComponents/DebugConfigComponent.cs +++ b/Questionable/Questionable.Windows.ConfigComponents/DebugConfigComponent.cs @@ -1,10 +1,8 @@ -using System; -using System.Collections; using System.Collections.Generic; using System.Collections.Immutable; +using System.IO; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Interface; using Dalamud.Interface.Utility.Raii; @@ -17,340 +15,200 @@ internal sealed class DebugConfigComponent : ConfigComponent { private readonly Dictionary<string, bool> _featurePausingOpenState = new Dictionary<string, bool>(); + private readonly string? _cacheDirectory; + public DebugConfigComponent(IDalamudPluginInterface pluginInterface, Configuration configuration) : base(pluginInterface, configuration) { + _cacheDirectory = pluginInterface.ConfigDirectory.FullName; } - [MethodImpl(MethodImplOptions.NoInlining)] public override void DrawTab() { - UiThemeUtils.SectionHeader(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1486717885)); + UiThemeUtils.SectionHeader("Interaction Recovery"); (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple = UiThemeUtils.BeginCard(); Vector2 item = tuple.ContentStartPos; float item2 = tuple.AvailableWidth; ImDrawListPtr item3 = tuple.DrawList; int value = base.Configuration.Advanced.InteractionRetryLimit; - int num = ((!UiThemeUtils.AccentSliderInt(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(459770457), ref value, 1, 10, 260f)) ? (-1001972389) : (-1001972390)); - bool value4 = default(bool); - Vector2 item4 = default(Vector2); - float item5 = default(float); - ImDrawListPtr item6 = default(ImDrawListPtr); - Vector2 contentStartPos = default(Vector2); - float availableWidth = default(float); - ImDrawListPtr drawList = default(ImDrawListPtr); - bool value3 = default(bool); - float value2 = default(float); - while (true) + if (UiThemeUtils.AccentSliderInt("Retry limit", ref value, 1, 10, 260f)) { - int num2 = num; - int num3 = -1001972389; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + base.Configuration.Advanced.InteractionRetryLimit = value; + Save(); + } + ImGui.SameLine(); + UiThemeUtils.InfoIcon("Maximum number of times an interrupted interaction will be retried before stopping. Interruptions can be caused by combat, other plugins, or server issues."); + float value2 = base.Configuration.Advanced.InteractionTimeoutSeconds; + if (UiThemeUtils.AccentSliderFloat("Timeout (seconds)", ref value2, 5f, 30f, "%.0f", 260f)) + { + base.Configuration.Advanced.InteractionTimeoutSeconds = value2; + Save(); + } + ImGui.SameLine(); + UiThemeUtils.InfoIcon("Maximum time an interaction can run without progress before it is treated as stuck and retried."); + UiThemeUtils.EndCard(item, item2, item3); + UiThemeUtils.SectionSpacing(); + UiThemeUtils.SectionHeader("Navigation debug"); + (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple2 = UiThemeUtils.BeginCard(); + Vector2 item4 = tuple2.ContentStartPos; + float item5 = tuple2.AvailableWidth; + ImDrawListPtr item6 = tuple2.DrawList; + bool value3 = base.Configuration.Advanced.ShowWigglyNavShimProvider; + if (UiThemeUtils.WrappedCheckbox("Show WigglyNav shim provider option", ref value3, "Reveals an extra navigation provider row on the Dependencies page that drives WigglyNav through its vnavmesh-shaped legacy surface instead of its native one. Intended for comparing the two surfaces, not for normal use.")) + { + base.Configuration.Advanced.ShowWigglyNavShimProvider = value3; + Save(); + } + UiThemeUtils.EndCard(item4, item5, item6); + UiThemeUtils.SectionSpacing(); + UiThemeUtils.SectionHeader("Data Cache"); + var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); + UiThemeUtils.WrappedText("NPC position and zone boundary caches are rebuilt automatically after game patches. Use this button to force a rebuild on next load."); + bool flag = _cacheDirectory != null && (File.Exists(Path.Combine(_cacheDirectory, "npc-position-cache.bin")) || File.Exists(Path.Combine(_cacheDirectory, "zone-boundary-cache.bin"))); + long num = 0L; + if (_cacheDirectory != null) + { + num += FileSize(Path.Combine(_cacheDirectory, "npc-position-cache.bin")); + num += FileSize(Path.Combine(_cacheDirectory, "zone-boundary-cache.bin")); + } + using (ImRaii.Disabled(!flag)) + { + if (ImGui.Button("Clear LGB Caches") && _cacheDirectory != null) { - case 8: - base.Configuration.Advanced.ShowWigglyNavShimProvider = value4; - Save(); - num = -1001972391; - break; - case 2: - UiThemeUtils.EndCard(item4, item5, item6); - UiThemeUtils.SectionSpacing(); - UiThemeUtils.SectionHeader(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1322354699)); - (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); - UiThemeUtils.WrappedTextColored(UiThemeUtils.StatusLocked, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1990367668)); - value3 = base.Configuration.Advanced.DisablePartyWatchdog; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1956217498), ref value3, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1278554970))) ? (-1001972386) : (-1001972388)); - break; - case 1: - base.Configuration.Advanced.InteractionRetryLimit = value; - Save(); - num = -1001972389; - break; - case 7: - base.Configuration.Advanced.DisablePartyWatchdog = value3; - Save(); - num = -1001972386; - break; - case 4: - num = -1001972390; - break; - case 3: - { - _200D_202C_200F_200F_206B_206B_200C_206F_206C_202A_206D_206C_202D_202A_200D_202A_202C_206D_206A_202A_200F_200B_202B_200F_202D_202E_206D_202D_206F_206D_200E_206C_200D_200F_206C_206D_206B_206B_202E_200E_202E(); - UiThemeUtils.InfoIcon(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(626167100)); - UiThemeUtils.EndCard(item, item2, item3); - UiThemeUtils.SectionSpacing(); - UiThemeUtils.SectionHeader(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1927198459)); - (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple2 = UiThemeUtils.BeginCard(); - item4 = tuple2.ContentStartPos; - item5 = tuple2.AvailableWidth; - item6 = tuple2.DrawList; - value4 = base.Configuration.Advanced.ShowWigglyNavShimProvider; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(967670354), ref value4, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1491500076))) ? (-1001972391) : (-1001972397)); - break; + TryDelete(Path.Combine(_cacheDirectory, "npc-position-cache.bin")); + TryDelete(Path.Combine(_cacheDirectory, "zone-boundary-cache.bin")); } - case 5: - DrawFeaturePausingSection(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1202049138), PandorasBoxIpc.ConflictingFeatures, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(611154130), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(207768065), base.Configuration.Advanced.PandoraFeatureExclusions); - DrawFeaturePausingSection(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(11057013), AutomatonIpc.ConflictingTweaks, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(899890205), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1169537281), base.Configuration.Advanced.AutomatonTweakExclusions); - UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); - return; - case 6: - base.Configuration.Advanced.InteractionTimeoutSeconds = value2; - Save(); - num = -1001972392; - break; - case 0: - _200D_202C_200F_200F_206B_206B_200C_206F_206C_202A_206D_206C_202D_202A_200D_202A_202C_206D_206A_202A_200F_200B_202B_200F_202D_202E_206D_202D_206F_206D_200E_206C_200D_200F_206C_206D_206B_206B_202E_200E_202E(); - UiThemeUtils.InfoIcon(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(368373226)); - value2 = base.Configuration.Advanced.InteractionTimeoutSeconds; - num = ((!UiThemeUtils.AccentSliderFloat(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1280982003), ref value2, 5f, 30f, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1562631403), 260f)) ? (-1001972392) : (-1001972387)); - break; + if (flag && ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) + { + ImU8String tooltip = new ImU8String(20, 1); + tooltip.AppendLiteral("Current cache size: "); + tooltip.AppendFormatted(FormatBytes(num)); + ImGui.SetTooltip(tooltip); } } + if (!flag) + { + ImGui.SameLine(); + ImGui.TextDisabled("(no cache files present)"); + } + else + { + ImGui.SameLine(); + ImGui.TextDisabled("Takes effect on next plugin load."); + } + UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); + UiThemeUtils.SectionSpacing(); + UiThemeUtils.SectionHeader("Danger Zone"); + var (contentStartPos2, availableWidth2, drawList2) = UiThemeUtils.BeginCard(); + UiThemeUtils.WrappedTextColored(UiThemeUtils.StatusLocked, "Enabling any option below may cause unexpected behavior. Use at your own risk."); + bool value4 = base.Configuration.Advanced.DisablePartyWatchdog; + if (UiThemeUtils.WrappedCheckbox("Disable Party Watchdog", ref value4, "The Party Watchdog stops Questionable when entering certain zones with other party members, or when entering unsupported content. Disabling this allows Questionable to continue working while in a party, but may cause unexpected behavior in group content.")) + { + base.Configuration.Advanced.DisablePartyWatchdog = value4; + Save(); + } + DrawFeaturePausingSection("Pandora's Box Feature Pausing", PandorasBoxIpc.ConflictingFeatures, "Auto Active Time Maneuver", "Only applies when Auto-Solve QTE is enabled.", base.Configuration.Advanced.PandoraFeatureExclusions); + DrawFeaturePausingSection("Bundle of Tweaks Feature Pausing", AutomatonIpc.ConflictingTweaks, "AutoSnipeQuests", "Only applies when AutoSnipe is enabled.", base.Configuration.Advanced.AutomatonTweakExclusions); + UiThemeUtils.EndCard(contentStartPos2, availableWidth2, drawList2); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawFeaturePausingSection(string header, ImmutableHashSet<string> features, string conditionalFeature, string conditionalHelpText, HashSet<string> exclusions) { bool open = _featurePausingOpenState.GetValueOrDefault(header); UiThemeUtils.ThemedAccordion(header, header, null, ref open); _featurePausingOpenState[header] = open; - int num = (open ? (-1750707235) : (-1750707234)); - string current = default(string); - bool value = default(bool); - while (true) + if (!open) { - int num2 = num; - int num3 = -1750707236; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + using (ImRaii.PushId(header)) + { + using (ImRaii.PushIndent()) { - case 0: - goto IL_0072; - case 2: - return; - case 1: - { - ImRaii.IdDisposable idDisposable = _206B_206F_206E_202A_206A_202C_206A_206E_200F_200F_206E_200B_206F_202A_200F_206C_200F_200C_202D_202C_206F_202E_202C_206C_202E_206E_206D_200C_200F_206A_202D_202A_206B_200D_200F_202B_200E_202A_206B_202B_202E((ImU8String)header, true); - try + foreach (string item in features.Order()) { - ImRaii.IndentDisposable indentDisposable = _206B_200F_206D_200B_206B_202B_202B_206E_200C_206B_202D_200B_206A_206A_202D_202D_202E_206F_200E_206F_206B_206A_206E_206F_202C_200D_200D_200C_202A_202E_206A_206A_206E_200C_200B_206F_200E_200F_200C_206A_202E(1, true); - try + bool value = !exclusions.Contains(item); + if (UiThemeUtils.WrappedCheckbox("Pause: " + item, ref value)) { - IEnumerator<string> enumerator = features.Order().GetEnumerator(); - try + if (value) { - num = 405090622; - while (true) - { - int num7 = num; - num3 = 405090622; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 7: - num = 405090622; - break; - case 5: - exclusions.Add(current); - num = 405090623; - break; - case 3: - num = ((!value) ? 405090619 : 405090616); - break; - case 1: - Save(); - num = 405090622; - break; - case 6: - exclusions.Remove(current); - num = 405090623; - break; - case 0: - num = (_200F_200E_200C_206D_202B_206D_200F_202E_202D_206E_202D_200D_206B_206C_206C_206E_206C_202E_202E_202D_206E_200B_202E_200D_202B_206F_200F_206F_202B_202D_202E_202C_200E_206A_200F_206B_206F_206B_206E_200C_202E((IEnumerator)enumerator) ? 405090618 : 405090620); - break; - case 4: - current = enumerator.Current; - value = !exclusions.Contains(current); - num = ((!UiThemeUtils.WrappedCheckbox(_200E_206B_202D_206C_200F_200E_206E_206D_200B_200E_200E_202B_206C_200B_202A_200C_202B_200D_202B_206F_206B_200D_202D_206D_202E_200D_200F_206F_202C_202A_206E_200F_200C_206E_200C_200C_200F_200B_200F_206D_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1770810253), current), ref value)) ? 405090622 : 405090621); - break; - case 2: - goto end_IL_00ad; - } - continue; - end_IL_00ad: - break; - } + exclusions.Remove(item); } - finally + else { - num = ((enumerator == null) ? 1271604246 : 1271604247); - while (true) - { - int num8 = num; - num3 = 1271604246; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 2: - num = 1271604247; - break; - case 0: - goto end_IL_01eb; - case 1: - _206A_206C_200B_200F_202E_200C_200B_200F_206A_206D_206E_202B_206F_202E_202C_206F_202A_200F_200D_200F_206B_202B_206F_200C_200E_200D_200D_202B_200F_206B_200F_202D_206E_206A_202E_200C_202A_202C_206E_206D_202E((IDisposable)enumerator); - num = 1271604246; - break; - } - continue; - end_IL_01eb: - break; - } - } - _202A_200D_200C_206D_202E_206B_202A_206A_202D_206F_202B_206A_206A_200B_206F_200B_200D_206E_206F_200B_200D_206D_202E_200E_206E_206F_202D_202C_206E_200F_202A_200E_202A_202E_202E_200E_200F_200F_200D_200E_202E(); - bool value2 = !exclusions.Contains(conditionalFeature); - num = ((!UiThemeUtils.WrappedCheckbox(_200E_206B_202D_206C_200F_200E_206E_206D_200B_200E_200E_202B_206C_200B_202A_200C_202B_200D_202B_206F_206B_200D_202D_206D_202E_200D_200F_206F_202C_202A_206E_200F_200C_206E_200C_200C_200F_200B_200F_206D_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1740411969), conditionalFeature), ref value2, conditionalHelpText)) ? (-1644162037) : (-1644162034)); - while (true) - { - int num11 = num; - num3 = -1644162038; - num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) - { - case 6: - Save(); - num = -1644162037; - break; - case 5: - exclusions.Clear(); - Save(); - num = -1644162040; - break; - case 3: - exclusions.Remove(conditionalFeature); - num = -1644162036; - break; - case 7: - num = -1644162034; - break; - case 1: - _202A_200D_200C_206D_202E_206B_202A_206A_202D_206F_202B_206A_206A_200B_206F_200B_200D_206E_206F_200B_200D_206D_202E_200E_206E_206F_202D_202C_206E_200F_202A_200E_202A_202E_202E_200E_200F_200F_200D_200E_202E(); - num = ((!UiThemeUtils.DestructiveButton(FontAwesomeIcon.Undo, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(105765014))) ? (-1644162040) : (-1644162033)); - break; - case 0: - exclusions.Add(conditionalFeature); - num = -1644162036; - break; - case 4: - num = ((!value2) ? (-1644162038) : (-1644162039)); - break; - case 2: - return; - } - } - } - finally - { - num = ((indentDisposable == null) ? 1350036527 : 1350036526); - while (true) - { - int num14 = num; - num3 = 1350036527; - num4 = num14; - int num15 = num4 + num3; - int num16 = num4 & num3; - switch (num15 - (num16 + num16)) - { - case 0: - goto end_IL_039a; - case 1: - _206A_206C_200B_200F_202E_200C_200B_200F_206A_206D_206E_202B_206F_202E_202C_206F_202A_200F_200D_200F_206B_202B_206F_200C_200E_200D_200D_202B_200F_206B_200F_202D_206E_206A_202E_200C_202A_202C_206E_206D_202E((IDisposable)indentDisposable); - num = 1350036527; - break; - case 2: - num = 1350036526; - break; - } - continue; - end_IL_039a: - break; + exclusions.Add(item); } + Save(); } } - finally + ImGui.Spacing(); + bool value2 = !exclusions.Contains(conditionalFeature); + if (UiThemeUtils.WrappedCheckbox("Pause: " + conditionalFeature, ref value2, conditionalHelpText)) { - num = ((idDisposable == null) ? (-687515506) : (-687515507)); - while (true) + if (value2) { - int num17 = num; - num3 = -687515508; - num4 = num17; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_0405; - case 1: - _206A_206C_200B_200F_202E_200C_200B_200F_206A_206D_206E_202B_206F_202E_202C_206F_202A_200F_200D_200F_206B_202B_206F_200C_200E_200D_200D_202B_200F_206B_200F_202D_206E_206A_202E_200C_202A_202C_206E_206D_202E((IDisposable)idDisposable); - num = -687515506; - break; - case 0: - num = -687515507; - break; - } - continue; - end_IL_0405: - break; + exclusions.Remove(conditionalFeature); } + else + { + exclusions.Add(conditionalFeature); + } + Save(); + } + ImGui.Spacing(); + if (UiThemeUtils.DestructiveButton(FontAwesomeIcon.Undo, "Reset to defaults")) + { + exclusions.Clear(); + Save(); } } - } - continue; - IL_0072: - num = -1750707234; } } - static void _200D_202C_200F_200F_206B_206B_200C_206F_206C_202A_206D_206C_202D_202A_200D_202A_202C_206D_206A_202A_200F_200B_202B_200F_202D_202E_206D_202D_206F_206D_200E_206C_200D_200F_206C_206D_206B_206B_202E_200E_202E() + private static void TryDelete(string path) { - ImGui.SameLine(); + try + { + File.Delete(path); + } + catch + { + } } - static ImRaii.IdDisposable _206B_206F_206E_202A_206A_202C_206A_206E_200F_200F_206E_200B_206F_202A_200F_206C_200F_200C_202D_202C_206F_202E_202C_206C_202E_206E_206D_200C_200F_206A_202D_202A_206B_200D_200F_202B_200E_202A_206B_202B_202E(ImU8String P_0, bool P_1) + private static long FileSize(string path) { - return ImRaii.PushId(P_0, P_1); + try + { + FileInfo fileInfo = new FileInfo(path); + long result; + if (fileInfo != null && fileInfo.Exists) + { + long length = fileInfo.Length; + result = length; + } + else + { + result = 0L; + } + return result; + } + catch + { + return 0L; + } } - static ImRaii.IndentDisposable _206B_200F_206D_200B_206B_202B_202B_206E_200C_206B_202D_200B_206A_206A_202D_202D_202E_206F_200E_206F_206B_206A_206E_206F_202C_200D_200D_200C_202A_202E_206A_206A_206E_200C_200B_206F_200E_200F_200C_206A_202E(int P_0, bool P_1) + private static string FormatBytes(long bytes) { - return ImRaii.PushIndent(P_0, P_1); - } - - static string _200E_206B_202D_206C_200F_200E_206E_206D_200B_200E_200E_202B_206C_200B_202A_200C_202B_200D_202B_206F_206B_200D_202D_206D_202E_200D_200F_206F_202C_202A_206E_200F_200C_206E_200C_200C_200F_200B_200F_206D_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static bool _200F_200E_200C_206D_202B_206D_200F_202E_202D_206E_202D_200D_206B_206C_206C_206E_206C_202E_202E_202D_206E_200B_202E_200D_202B_206F_200F_206F_202B_202D_202E_202C_200E_206A_200F_206B_206F_206B_206E_200C_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206A_206C_200B_200F_202E_200C_200B_200F_206A_206D_206E_202B_206F_202E_202C_206F_202A_200F_200D_200F_206B_202B_206F_200C_200E_200D_200D_202B_200F_206B_200F_202D_206E_206A_202E_200C_202A_202C_206E_206D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _202A_200D_200C_206D_202E_206B_202A_206A_202D_206F_202B_206A_206A_200B_206F_200B_200D_206E_206F_200B_200D_206D_202E_200E_206E_206F_202D_202C_206E_200F_202A_200E_202A_202E_202E_200E_200F_200F_200D_200E_202E() - { - ImGui.Spacing(); + if (bytes < 1048576) + { + if (bytes >= 1024) + { + return $"{(double)bytes / 1024.0:F1} KB"; + } + return $"{bytes} B"; + } + return $"{(double)bytes / 1048576.0:F1} MB"; } } diff --git a/Questionable/Questionable.Windows.ConfigComponents/DutyConfigComponent.cs b/Questionable/Questionable.Windows.ConfigComponents/DutyConfigComponent.cs index cdb3eb7..077ea06 100644 --- a/Questionable/Questionable.Windows.ConfigComponents/DutyConfigComponent.cs +++ b/Questionable/Questionable.Windows.ConfigComponents/DutyConfigComponent.cs @@ -1,12 +1,8 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Bindings.ImGui; -using Dalamud.Game.Text.SeStringHandling; using Dalamud.Interface; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin; @@ -14,7 +10,6 @@ using Dalamud.Plugin.Services; using Dalamud.Utility; using Lumina.Excel; using Lumina.Excel.Sheets; -using Lumina.Text.ReadOnly; using Questionable.Data; using Questionable.External; using Questionable.Model; @@ -24,210 +19,7 @@ namespace Questionable.Windows.ConfigComponents; internal sealed class DutyConfigComponent : ConfigComponent { - private sealed record DutyInfo(uint CfcId, uint TerritoryId, string Name, int Level) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206E_202A_202D_206F_202E_200F_206E_202E_202E_202C_200C_206B_202C_200F_206E_206D_202D_206E_206E_202B_200B_206E_200E_206E_206F_202B_200F_202A_206C_206C_206A_206B_206B_202C_202C_206A_200B_202B_206B_206A_202E(typeof(DutyInfo).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202E_206D_206E_202B_200F_202D_202C_202A_206B_206B_200F_206F_206D_206A_206E_202C_206B_200C_206B_200B_202C_206A_206E_206C_206A_206E_206A_202C_200C_200C_202E_202B_206B_200C_200F_206D_200B_206F_202D_206F_202E(); - _206B_200D_200B_202E_206C_200E_206D_206E_200F_200D_206C_200C_202A_200B_202A_200E_200E_200D_202C_206D_202A_202E_202C_206D_200E_200C_200F_206D_202A_202B_202C_202D_202A_200F_206F_206B_202D_200F_200B_202E_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1146569186)); - _206B_200D_200B_202E_206C_200E_206D_206E_200F_200D_206C_200C_202A_200B_202A_200E_200E_200D_202C_206D_202A_202E_202C_206D_200E_200C_200F_206D_202A_202B_202C_202D_202A_200F_206F_206B_202D_200F_200B_202E_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? 293488302 : 293488301); - while (true) - { - int num2 = num; - int num3 = 293488300; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 293488301; - break; - case 2: - _202C_206B_200E_202E_202A_206E_200B_206A_206F_200D_206D_202E_202B_206B_202A_200D_202E_206E_200B_202A_206A_206F_202D_206D_206C_206B_202B_206F_202A_202D_202D_200B_202A_202D_202A_202C_200F_202C_206C_206E_202E(stringBuilder, '}'); - return _202B_200D_202C_202A_206C_206F_202D_202B_206B_202E_202A_206A_202A_200B_206C_206C_206B_202C_202D_206E_206C_202D_206C_206A_202D_202A_200F_206C_200D_200D_206B_206D_206B_206C_206E_202A_200B_206F_206F_200C_202E((object)stringBuilder); - case 1: - _202C_206B_200E_202E_202A_206E_200B_206A_206F_200D_206D_202E_202B_206B_202A_200D_202E_206E_200B_202A_206A_206F_202D_206D_206C_206B_202B_206F_202A_202D_202D_200B_202A_202D_202A_202C_200F_202C_206C_206E_202E(stringBuilder, ' '); - num = 293488302; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200C_202E_206F_200F_206B_206E_202A_202E_202A_202C_202B_200E_200B_200E_202D_200C_200E_206A_200C_206C_202C_202B_200B_202E_200E_206E_206E_202A_202D_200E_206D_202A_200D_206D_206A_206D_202C_202E_202C_206F_202E(); - _206B_200D_200B_202E_206C_200E_206D_206E_200F_200D_206C_200C_202A_200B_202A_200E_200E_200D_202C_206D_202A_202E_202C_206D_200E_200C_200F_206D_202A_202B_202C_202D_202A_200F_206F_206B_202D_200F_200B_202E_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1846737607)); - _206B_200D_200B_202E_206C_200E_206D_206E_200F_200D_206C_200C_202A_200B_202A_200E_200E_200D_202C_206D_202A_202E_202C_206D_200E_200C_200F_206D_202A_202B_202C_202D_202A_200F_206F_206B_202D_200F_200B_202E_202E(builder, CfcId.ToString()); - _206B_200D_200B_202E_206C_200E_206D_206E_200F_200D_206C_200C_202A_200B_202A_200E_200E_200D_202C_206D_202A_202E_202C_206D_200E_200C_200F_206D_202A_202B_202C_202D_202A_200F_206F_206B_202D_200F_200B_202E_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(647715754)); - _206B_200D_200B_202E_206C_200E_206D_206E_200F_200D_206C_200C_202A_200B_202A_200E_200E_200D_202C_206D_202A_202E_202C_206D_200E_200C_200F_206D_202A_202B_202C_202D_202A_200F_206F_206B_202D_200F_200B_202E_202E(builder, TerritoryId.ToString()); - _206B_200D_200B_202E_206C_200E_206D_206E_200F_200D_206C_200C_202A_200B_202A_200E_200E_200D_202C_206D_202A_202E_202C_206D_200E_200C_200F_206D_202A_202B_202C_202D_202A_200F_206F_206B_202D_200F_200B_202E_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2011877509)); - _200D_202C_202C_200F_202E_206F_202D_206E_202D_206C_206C_202A_206C_206D_206D_206C_202E_200B_206B_200C_206C_200C_202C_206E_206E_202C_206A_202B_200C_202B_206C_202B_202D_202D_202D_200C_200B_202B_206F_206D_202E(builder, (object)Name); - _206B_200D_200B_202E_206C_200E_206D_206E_200F_200D_206C_200C_202A_200B_202A_200E_200E_200D_202C_206D_202A_202E_202C_206D_200E_200C_200F_206D_202A_202B_202C_202D_202A_200F_206F_206B_202D_200F_200B_202E_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-26801213)); - _206B_200D_200B_202E_206C_200E_206D_206E_200F_200D_206C_200C_202A_200B_202A_200E_200E_200D_202C_206D_202A_202E_202C_206D_200E_200C_200F_206D_202A_202B_202C_202D_202A_200F_206F_206B_202D_200F_200B_202E_202E(builder, Level.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(DutyInfo? other) - { - int num = (((object)this == other) ? 942730558 : 942730556); - while (true) - { - int num2 = num; - int num3 = 942730559; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return true; - case 4: - return EqualityComparer<int>.Default.Equals(Level, other.Level); - case 8: - num = ((!EqualityComparer<string>.Default.Equals(Name, other.Name)) ? 942730554 : 942730555); - break; - case 5: - return false; - case 0: - num = 942730556; - break; - case 6: - num = ((!EqualityComparer<uint>.Default.Equals(TerritoryId, other.TerritoryId)) ? 942730554 : 942730551); - break; - case 3: - num = (((object)other == null) ? 942730554 : 942730552); - break; - case 7: - num = ((!_206D_202A_200F_200F_202C_200D_200B_200B_206E_200B_206B_206E_206A_206E_206D_200D_206E_206C_202B_206D_206B_206C_200C_202D_200F_202D_206A_200B_206C_200F_202A_206F_202B_202A_200B_206A_202C_202E_200E_206C_202E(EqualityContract, other.EqualityContract)) ? 942730554 : 942730557); - break; - case 2: - num = ((!EqualityComparer<uint>.Default.Equals(CfcId, other.CfcId)) ? 942730554 : 942730553); - break; - } - } - } - - bool IEquatable<DutyInfo>.Equals(DutyInfo? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206E_202A_202D_206F_202E_200F_206E_202E_202E_202C_200C_206B_202C_200F_206E_206D_202D_206E_206E_202B_200B_206E_200E_206E_206F_202B_200F_202A_206C_206C_206A_206B_206B_202C_202C_206A_200B_202B_206B_206A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202E_206D_206E_202B_200F_202D_202C_202A_206B_206B_200F_206F_206D_206A_206E_202C_206B_200C_206B_200B_202C_206A_206E_206C_206A_206E_206A_202C_200C_200C_202E_202B_206B_200C_200F_206D_200B_206F_202D_206F_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206B_200D_200B_202E_206C_200E_206D_206E_200F_200D_206C_200C_202A_200B_202A_200E_200E_200D_202C_206D_202A_202E_202C_206D_200E_200C_200F_206D_202A_202B_202C_202D_202A_200F_206F_206B_202D_200F_200B_202E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202C_206B_200E_202E_202A_206E_200B_206A_206F_200D_206D_202E_202B_206B_202A_200D_202E_206E_200B_202A_206A_206F_202D_206D_206C_206B_202B_206F_202A_202D_202D_200B_202A_202D_202A_202C_200F_202C_206C_206E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202B_200D_202C_202A_206C_206F_202D_202B_206B_202E_202A_206A_202A_200B_206C_206C_206B_202C_202D_206E_206C_202D_206C_206A_202D_202A_200F_206C_200D_200D_206B_206D_206B_206C_206E_202A_200B_206F_206F_200C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200C_202E_206F_200F_206B_206E_202A_202E_202A_202C_202B_200E_200B_200E_202D_200C_200E_206A_200C_206C_202C_202B_200B_202E_200E_206E_206E_202A_202D_200E_206D_202A_200D_206D_206A_206D_202C_202E_202C_206F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200D_202C_202C_200F_202E_206F_202D_206E_202D_206C_206C_202A_206C_206D_206D_206C_202E_200B_206B_200C_206C_200C_202C_206E_206E_202C_206A_202B_200C_202B_206C_202B_202D_202D_202D_200C_200B_202B_206F_206D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206D_202A_200F_200F_202C_200D_200B_200B_206E_200B_206B_206E_206A_206E_206D_200D_206E_206C_202B_206D_206B_206C_200C_202D_200F_202D_206A_200B_206C_200F_202A_206F_202B_202A_200B_206A_202C_202E_200E_206C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass15_0 - { - public uint contentTypeId; - - public uint? contentMemberTypeId; - - public TerritoryData territoryData; - - internal bool _003CLoadContentByType_003Eb__0(ContentFinderCondition x) - { - int num = ((x.RowId == 0) ? 400458494 : 400458492); - while (true) - { - int num2 = num; - int num3 = 400458495; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 400458492; - break; - case 1: - return false; - case 0: - return x.ContentType.RowId == contentTypeId; - case 3: - num = ((x.Content.RowId == 0) ? 400458494 : 400458495); - break; - } - } - } - - internal bool _003CLoadContentByType_003Eb__1(ContentFinderCondition x) - { - return x.ContentMemberType.RowId == contentMemberTypeId.Value; - } - - internal _003C_003Ef__AnonymousType3<EExpansionVersion, uint, string, uint, byte, ushort> _003CLoadContentByType_003Eb__2(ContentFinderCondition x) - { - return new - { - Expansion = (EExpansionVersion)x.TerritoryType.Value.ExVersion.RowId, - CfcId = x.RowId, - Name = (territoryData.GetContentFinderCondition(x.RowId)?.Name ?? _200F_206A_202D_200E_200C_206D_200C_200F_202E_202E_200E_200C_206E_202A_200E_200C_200D_202D_200D_206E_206A_206B_202A_200C_206B_206E_206F_206C_202A_202C_200B_206A_202C_206E_200D_202A_202D_206B_200C_202A_202E((object)_200C_200C_206E_202D_200C_202E_202B_206D_202A_206A_206E_202A_202E_202A_206B_202E_206E_200F_202D_206C_206E_200F_206A_200D_206E_200F_206C_200D_206E_206F_202B_206F_206C_206F_202C_202C_206F_200D_206B_200E_202E(x.Name))), - TerritoryId = x.TerritoryType.RowId, - Level = x.ClassJobLevelRequired, - SortKey = x.SortKey - }; - } - - static SeString _200C_200C_206E_202D_200C_202E_202B_206D_202A_206A_206E_202A_202E_202A_206B_202E_206E_200F_202D_206C_206E_200F_206A_200D_206E_200F_206C_200D_206E_206F_202B_206F_206C_206F_202C_202C_206F_200D_206B_200E_202E(ReadOnlySeString P_0) - { - return P_0.ToDalamudString(); - } - - static string _200F_206A_202D_200E_200C_206D_200C_200F_202E_202E_200E_200C_206E_202A_200E_200C_200D_202D_200D_206E_206A_206B_202A_200C_206B_206E_206F_206C_202A_202C_200B_206A_202C_206E_200D_202A_202D_206B_200C_202A_202E(object P_0) - { - return P_0.ToString(); - } - } + private sealed record DutyInfo(uint CfcId, uint TerritoryId, string Name, int Level); private const string DutyClipboardPrefix = "qst:duty:"; @@ -241,20 +33,9 @@ internal sealed class DutyConfigComponent : ConfigComponent private const uint MemberTypeAllianceRaid = 4u; - private static readonly string[] DutyModeLabels = new string[3] - { - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1157663531), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(50543630), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(434039918) - }; + private static readonly string[] DutyModeLabels = new string[3] { "Duty Support", "Unsync (Solo)", "Unsync (Party)" }; - private static readonly string[] DutyTabLabels = new string[4] - { - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1287674180), - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(865548791), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-649399310), - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1881943890) - }; + private static readonly string[] DutyTabLabels = new string[4] { "Dungeons", "Trials", "Normal Raids", "Alliance Raids" }; private readonly AutoDutyIpc _autoDutyIpc; @@ -281,1278 +62,346 @@ internal sealed class DutyConfigComponent : ConfigComponent private static Dictionary<EExpansionVersion, List<DutyInfo>> LoadContentByType(ExcelSheet<ContentFinderCondition> sheet, TerritoryData territoryData, uint contentTypeId, uint? contentMemberTypeId = null) { - IEnumerable<ContentFinderCondition> source = sheet.Where(delegate(ContentFinderCondition x) + IEnumerable<ContentFinderCondition> source = sheet.Where((ContentFinderCondition x) => x.RowId != 0 && x.Content.RowId != 0 && x.ContentType.RowId == contentTypeId); + if (contentMemberTypeId.HasValue) { - int num5 = ((x.RowId == 0) ? 400458494 : 400458492); - while (true) - { - int num6 = num5; - int num7 = 400458495; - int num8 = num6; - switch ((num8 | num7) - (num8 & num7)) - { - case 2: - num5 = 400458492; - break; - case 1: - return false; - case 0: - return x.ContentType.RowId == contentTypeId; - case 3: - num5 = ((x.Content.RowId == 0) ? 400458494 : 400458495); - break; - } - } - }); - int num = ((!contentMemberTypeId.HasValue) ? (-2060936807) : (-2060936808)); - while (true) - { - int num2 = num; - int num3 = -2060936807; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return (from x in source - select new - { - Expansion = (EExpansionVersion)x.TerritoryType.Value.ExVersion.RowId, - CfcId = x.RowId, - Name = (territoryData.GetContentFinderCondition(x.RowId)?.Name ?? _003C_003Ec__DisplayClass15_0._200F_206A_202D_200E_200C_206D_200C_200F_202E_202E_200E_200C_206E_202A_200E_200C_200D_202D_200D_206E_206A_206B_202A_200C_206B_206E_206F_206C_202A_202C_200B_206A_202C_206E_200D_202A_202D_206B_200C_202A_202E((object)_003C_003Ec__DisplayClass15_0._200C_200C_206E_202D_200C_202E_202B_206D_202A_206A_206E_202A_202E_202A_206B_202E_206E_200F_202D_206C_206E_200F_206A_200D_206E_200F_206C_200D_206E_206F_202B_206F_206C_206F_202C_202C_206F_200D_206B_200E_202E(x.Name))), - TerritoryId = x.TerritoryType.RowId, - Level = x.ClassJobLevelRequired, - SortKey = x.SortKey - } into x - orderby x.SortKey - group x by x.Expansion).ToDictionary(x => x.Key, x => x.Select(y => new DutyInfo(y.CfcId, y.TerritoryId, y.Name, y.Level)).ToList()); - case 1: - source = source.Where((ContentFinderCondition x) => x.ContentMemberType.RowId == contentMemberTypeId.Value); - num = -2060936807; - break; - case 2: - num = -2060936808; - break; - } + source = source.Where((ContentFinderCondition x) => x.ContentMemberType.RowId == contentMemberTypeId.Value); } + return (from x in source + select new + { + Expansion = (EExpansionVersion)x.TerritoryType.Value.ExVersion.RowId, + CfcId = x.RowId, + Name = (territoryData.GetContentFinderCondition(x.RowId)?.Name ?? x.Name.ToDalamudString().ToString()), + TerritoryId = x.TerritoryType.RowId, + Level = x.ClassJobLevelRequired, + SortKey = x.SortKey + } into x + orderby x.SortKey + group x by x.Expansion).ToDictionary(x => x.Key, x => x.Select(y => new DutyInfo(y.CfcId, y.TerritoryId, y.Name, y.Level)).ToList()); } - [MethodImpl(MethodImplOptions.NoInlining)] public void DrawAutoDutySettings() { bool value = base.Configuration.Duties.RunInstancedContentWithAutoDuty; - int num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2060290040), ref value, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1676853483))) ? 318863839 : 318863836); - bool value4 = default(bool); - int currentItem = default(int); - while (true) + if (UiThemeUtils.WrappedCheckbox("Run instanced content with AutoDuty and BossMod", ref value, "The combat module used for this is configured by AutoDuty, ignoring whichever selection you've made in Questionable's \"General\" configuration.\n\nWork in Progress:\n• Duty Support mode is limited.\n• Unsynced modes require being significantly overleveled or having a high-level party member.\n• Most players will need to use Duty Support mode when progressing normally through the game.")) { - int num2 = num; - int num3 = 318863838; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + base.Configuration.Duties.RunInstancedContentWithAutoDuty = value; + Save(); + } + using (ImRaii.Disabled(!value)) + { + bool value2 = base.Configuration.Duties.RunLevelingModeWhenUnderleveled; + if (UiThemeUtils.WrappedCheckbox("Run AutoDuty Leveling mode when underleveled for MSQ", ref value2, "When enabled, Questionable will automatically run AutoDuty's Leveling mode when your character is underleveled for the next Main Scenario Quest.\n\nLeveling mode runs the highest available dungeon for your level to gain XP.\n\nThis is useful for characters without the Road to 90 XP buff who may not have enough XP to continue the MSQ.")) { - case 0: - num = 318863836; - break; - case 2: - base.Configuration.Duties.RunInstancedContentWithAutoDuty = value; + base.Configuration.Duties.RunLevelingModeWhenUnderleveled = value2; Save(); - num = 318863839; - break; - case 1: - { - ImRaii.DisabledDisposable disabledDisposable = _200F_206A_206C_200C_200F_206C_206E_200D_206A_200D_200E_200B_200D_206D_200C_200C_206D_206E_202B_200F_206C_200B_206E_206D_202C_200F_206F_202D_200C_202B_206B_202E_206D_202D_206E_206D_200F_206E_206D_206B_202E(!value); - try - { - bool value2 = base.Configuration.Duties.RunLevelingModeWhenUnderleveled; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1812413781), ref value2, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1998973478))) ? (-278783301) : (-278783298)); - while (true) - { - int num5 = num; - num3 = -278783297; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 6: - num = -278783298; - break; - case 4: - value4 = base.Configuration.Duties.AutoUnsyncOverleveled; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-587123705), ref value4, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1027843476))) ? (-278783302) : (-278783297)); - break; - case 1: - base.Configuration.Duties.RunLevelingModeWhenUnderleveled = value2; - Save(); - num = -278783301; - break; - case 5: - _202C_200D_200C_206B_206A_200F_202A_200F_206D_202A_202B_200D_200C_206A_200B_200D_206F_200D_202D_206C_206C_202E_206A_200F_200E_206A_206B_200E_202C_206A_202D_200E_200E_200F_206D_206A_206C_200F_206D_202D_202E(); - _206A_200C_206F_202B_202E_202C_206F_202D_206B_206C_200F_206B_206A_206D_202A_200F_202D_206D_202B_200D_202E_202B_200B_200F_200E_206E_200F_206E_206E_202B_202C_202B_206C_200D_202B_202B_202E_202E_200B_206E_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1289186878)); - _200D_200F_200F_206E_206A_200F_202D_200C_202B_200B_200D_206A_206F_206E_202D_200D_202E_200F_200C_206D_206A_202D_200F_206B_202D_206F_202E_206B_206E_202A_200F_202B_202D_202A_202A_200C_206C_200F_200F_200F_202E(); - currentItem = (int)base.Configuration.Duties.DefaultDutyMode; - _206C_200F_206A_200C_200D_206F_200E_200C_202D_200F_206D_202C_202A_202D_206E_206E_200E_206B_200B_202E_206F_200C_200C_206E_200E_206C_202E_206C_202C_202E_200E_206A_200C_202C_206A_202B_200E_202C_206B_202D_202E(_200B_200C_202D_202D_202D_206A_200F_200F_206B_206B_200E_202C_206F_202A_206F_200B_202C_200B_206B_206E_202C_200F_200C_206E_202B_200C_200B_200B_202A_206D_202A_200B_202C_202B_206C_206B_200D_200C_200F_202E_202E(_206C_202B_200C_206C_206D_200C_202D_206C_206B_202B_200C_202B_206C_200E_200E_200B_202B_200B_206A_200F_200E_202A_200F_202C_206E_206C_206E_202D_200F_206D_202D_206E_206E_206C_206A_206C_206D_206E_200E_200F_202E().X * 0.6f, 260f)); - num = ((!UiThemeUtils.ThemedCombo(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(532662937), ref currentItem, DutyModeLabels, DutyModeLabels.Length)) ? (-278783300) : (-278783299)); - break; - case 0: - base.Configuration.Duties.AutoUnsyncOverleveled = value4; - Save(); - num = -278783302; - break; - case 2: - base.Configuration.Duties.DefaultDutyMode = (EDutyMode)currentItem; - Save(); - num = -278783300; - break; - case 3: - { - _200D_200F_200F_206E_206A_200F_202D_200C_202B_200B_200D_206A_206F_206E_202D_200D_202E_200F_200C_206D_206A_202D_200F_206B_202D_206F_202E_206B_206E_202A_200F_202B_202D_202A_202A_200C_206C_200F_200F_200F_202E(); - UiThemeUtils.InfoIcon(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1150864325)); - _202C_200D_200C_206B_206A_200F_202A_200F_206D_202A_202B_200D_200C_206A_200B_200D_206F_200D_202D_206C_206C_202E_206A_200F_200E_206A_206B_200E_202C_206A_202D_200E_200E_200F_206D_206A_206C_200F_206D_202D_202E(); - UiThemeUtils.SubSectionHeader(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(928732696)); - ImRaii.IndentDisposable indentDisposable = _200C_200F_202D_200C_202E_200B_206E_206E_206F_206F_206F_202D_200E_200D_200E_202A_206D_202C_202C_202C_206F_202C_206A_200C_200C_206B_200C_206A_200D_200F_206F_206A_206F_206D_200D_200C_200D_200F_202E_202C_202E(1, true); - try - { - bool value3 = base.Configuration.Advanced.DisableAutoDutyBareMode; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(544332955), ref value3, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1104098155))) ? 1613386781 : 1613386782); - while (true) - { - int num8 = num; - num3 = 1613386780; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1613386782; - break; - case 2: - base.Configuration.Advanced.DisableAutoDutyBareMode = value3; - Save(); - num = 1613386781; - break; - case 1: - return; - } - } - } - finally - { - num = ((indentDisposable == null) ? (-1890100848) : (-1890100845)); - while (true) - { - int num9 = num; - num3 = -1890100846; - num4 = num9; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1890100845; - break; - case 1: - _200F_200B_202A_206D_206F_200C_202A_202A_202B_200E_202B_206C_200E_200C_206D_206A_202E_200E_202B_200F_202B_200E_206F_202C_206D_202E_200D_206F_200C_200E_202E_200F_200C_200F_200E_202D_200D_206F_202E((IDisposable)indentDisposable); - num = -1890100848; - break; - case 2: - goto end_IL_0378; - } - continue; - end_IL_0378: - break; - } - } - } - } - } - } - finally - { - num = ((disabledDisposable == null) ? 1022367676 : 1022367677); - while (true) - { - int num10 = num; - num3 = 1022367676; - num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1022367677; - break; - case 1: - _200F_200B_202A_206D_206F_200C_202A_202A_202B_200E_202B_206C_200E_200C_206D_206A_202E_200E_202B_200F_202B_200E_206F_202C_206D_202E_200D_206F_200C_200E_202E_200F_200C_200F_200E_202D_200D_206F_202E((IDisposable)disabledDisposable); - num = 1022367676; - break; - case 0: - goto end_IL_03e2; - } - continue; - end_IL_03e2: - break; - } - } } + bool value3 = base.Configuration.Duties.AutoUnsyncOverleveled; + if (UiThemeUtils.WrappedCheckbox("Run dungeons unsynced when safely overleveled", ref value3, "Runs 4-man dungeons solo as an unrestricted party instead of with Duty Support if you are at least 15 levels above the dungeon's level sync, or 10 levels above with an item level advantage of 100 or more.\n\nOnly applies when the default duty mode is Duty Support and the dungeon has no built-in or manually configured duty mode.")) + { + base.Configuration.Duties.AutoUnsyncOverleveled = value3; + Save(); + } + ImGui.Spacing(); + ImGui.Text("Default duty mode:"); + ImGui.SameLine(); + int currentItem = (int)base.Configuration.Duties.DefaultDutyMode; + ImGui.SetNextItemWidth(MathF.Min(ImGui.GetContentRegionAvail().X * 0.6f, 260f)); + if (UiThemeUtils.ThemedCombo("##DefaultDutyMode", ref currentItem, DutyModeLabels, DutyModeLabels.Length)) + { + base.Configuration.Duties.DefaultDutyMode = (EDutyMode)currentItem; + Save(); + } + ImGui.SameLine(); + UiThemeUtils.InfoIcon("Duty Support: Run with NPC party members (level synced)\nUnsync (Solo): Run alone at your current level (unsynced)\nUnsync (Party): Run with your party at current level (unsynced)\n\nYou can override this setting for individual duties below."); + ImGui.Spacing(); + UiThemeUtils.SubSectionHeader("AutoDuty loop mode (advanced)"); + using (ImRaii.PushIndent()) + { + bool value4 = base.Configuration.Advanced.DisableAutoDutyBareMode; + if (UiThemeUtils.WrappedCheckbox("Use Pre-Loop/Loop/Post-Loop settings", ref value4, "Typically, the loop settings for AutoDuty are disabled when running dungeons with Questionable, since they can cause issues (or even shut down your PC).")) + { + base.Configuration.Advanced.DisableAutoDutyBareMode = value4; + Save(); + } } } } - [MethodImpl(MethodImplOptions.NoInlining)] public override void DrawTab() { - UiThemeUtils.SectionHeader(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-313400600)); - _202C_200D_200C_206B_206A_200F_202A_200F_206D_202A_202B_200D_200C_206A_200B_200D_206F_200D_202D_206C_206C_202E_206A_200F_200E_206A_206B_200E_202C_206A_202D_200E_200E_200F_206D_206A_206C_200F_206D_202D_202E(); + UiThemeUtils.SectionHeader("Duty Settings"); + ImGui.Spacing(); var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); DrawAutoDutySettings(); UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); UiThemeUtils.SectionSpacing(); bool runInstancedContentWithAutoDuty = base.Configuration.Duties.RunInstancedContentWithAutoDuty; - ImRaii.DisabledDisposable disabledDisposable = _200F_206A_206C_200C_200F_206C_206E_200D_206A_200D_200E_200B_200D_206D_200C_200C_206D_206E_202B_200F_206C_200B_206E_206D_202C_200F_206F_202D_200C_202B_206B_202E_206D_202D_206E_206D_200F_206E_206D_206B_202E(!runInstancedContentWithAutoDuty); - try + using (ImRaii.Disabled(!runInstancedContentWithAutoDuty)) { - UiThemeUtils.SectionHeader(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-179062299)); - _202C_200D_200C_206B_206A_200F_202A_200F_206D_202A_202B_200D_200C_206A_200B_200D_206F_200D_202D_206C_206C_202E_206A_200F_200E_206A_206B_200E_202C_206A_202D_200E_200E_200F_206D_206A_206C_200F_206D_202D_202E(); + UiThemeUtils.SectionHeader("Duty Overrides"); + ImGui.Spacing(); (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple2 = UiThemeUtils.BeginCard(); Vector2 item = tuple2.ContentStartPos; float item2 = tuple2.AvailableWidth; ImDrawListPtr item3 = tuple2.DrawList; - int selectedDutyTab = _selectedDutyTab; - int num = 1; - int num2 = selectedDutyTab; - int num3; - Dictionary<EExpansionVersion, List<DutyInfo>> dictionary = default(Dictionary<EExpansionVersion, List<DutyInfo>>); - switch (~(~num2 + num)) + Dictionary<EExpansionVersion, List<DutyInfo>> contentByExpansion = _selectedDutyTab switch { - default: - num3 = 1928784944; - goto IL_00bf; - case 1: - dictionary = _allNormalRaidNames; - num3 = 1928784949; - goto IL_00bf; - case 0: - goto IL_0263; - case 2: - goto IL_0277; - IL_00bf: - while (true) - { - int num4 = num3; - num = 1928784947; - num2 = num4; - int num5 = num2 + num; - int num6 = num2 & num; - switch (num5 - (num6 + num6)) - { - case 6: - goto IL_0105; - case 3: - num3 = 1928784955; - break; - case 5: - base.Configuration.Duties.WhitelistedDutyCfcIds.Clear(); - base.Configuration.Duties.BlacklistedDutyCfcIds.Clear(); - base.Configuration.Duties.DutyModeOverrides.Clear(); - base.Configuration.Duties.DefaultDutyMode = EDutyMode.Support; - Save(); - num3 = 1928784947; - break; - case 8: - dictionary = _contentFinderConditionNames; - num3 = 1928784949; - break; - case 1: - goto end_IL_00bf; - case 7: - goto IL_0263; - case 4: - goto IL_0277; - case 2: - num3 = 1928784944; - break; - case 0: - UiThemeUtils.EndCard(item, item2, item3); - return; - } - continue; - IL_0105: - Dictionary<EExpansionVersion, List<DutyInfo>> contentByExpansion = dictionary; - _selectedDutyTab = UiThemeUtils.DrawTabBar(DutyTabLabels, _selectedDutyTab); - _202C_206B_202D_202C_206D_202D_206A_200D_200F_200D_202A_200E_206E_200E_200F_206D_206F_200B_202D_206D_206C_206F_200C_200E_206E_202B_200E_202C_200E_202E_206B_200E_206B_200F_200B_202C_200B_206C_206D_206F_202E(_206E_200D_206C_202C_206F_206D_206F_200E_200B_206A_200F_202B_202A_200B_202C_206C_202B_206A_206A_202B_206C_206E_206E_200D_200D_200D_206C_206F_202B_200D_206E_200C_206E_202C_206D_200E_202C_206D_206A_200F_202E() - _206A_200E_202B_202A_202C_200B_202C_206A_200B_202A_200F_206C_206D_206A_200B_202C_200E_206E_200D_206D_202B_206E_206C_200B_200F_202B_206C_200D_200B_202A_200E_200F_206A_206D_202E_200B_202D_202B_202D_202C_202E().ItemSpacing.Y); - DrawConfigTable(runInstancedContentWithAutoDuty, contentByExpansion); - DrawEnableAllButton(); - _200D_200F_200F_206E_206A_200F_202D_200C_202B_200B_200D_206A_206F_206E_202D_200D_202E_200F_200C_206D_206A_202D_200F_206B_202D_206F_202E_206B_206E_202A_200F_202B_202D_202A_202A_200C_206C_200F_200F_200F_202E(); - DrawClipboardButtons(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-21348437), base.Configuration.Duties.WhitelistedDutyCfcIds, base.Configuration.Duties.BlacklistedDutyCfcIds, base.Configuration.Duties.DutyModeOverrides); - _200D_200F_200F_206E_206A_200F_202D_200C_202B_200B_200D_206A_206F_206E_202D_200D_202E_200F_200C_206D_206A_202D_200F_206B_202D_206F_202E_206B_206E_202A_200F_202B_202D_202A_202A_200C_206C_200F_200F_200F_202E(); - num3 = ((!UiThemeUtils.DestructiveButton(FontAwesomeIcon.Undo, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2054737015))) ? 1928784947 : 1928784950); - continue; - end_IL_00bf: - break; - } - goto case 1; - IL_0277: - dictionary = _allAllianceRaidNames; - num3 = 1928784949; - goto IL_00bf; - IL_0263: - dictionary = _allTrialNames; - num3 = 1928784949; - goto IL_00bf; - } - } - finally - { - int num3 = ((disabledDisposable == null) ? 900259007 : 900259004); - while (true) + 1 => _allTrialNames, + 2 => _allNormalRaidNames, + 3 => _allAllianceRaidNames, + _ => _contentFinderConditionNames, + }; + _selectedDutyTab = UiThemeUtils.DrawTabBar(DutyTabLabels, _selectedDutyTab); + ImGui.SetCursorPosY(ImGui.GetCursorPosY() - ImGui.GetStyle().ItemSpacing.Y); + DrawConfigTable(runInstancedContentWithAutoDuty, contentByExpansion); + DrawEnableAllButton(); + ImGui.SameLine(); + DrawClipboardButtons("qst:duty:", base.Configuration.Duties.WhitelistedDutyCfcIds, base.Configuration.Duties.BlacklistedDutyCfcIds, base.Configuration.Duties.DutyModeOverrides); + ImGui.SameLine(); + if (UiThemeUtils.DestructiveButton(FontAwesomeIcon.Undo, "Reset to defaults")) { - int num7 = num3; - int num = 900259006; - int num2 = num7; - int num8 = num2 + num; - int num9 = num2 & num; - switch (num8 - (num9 + num9)) - { - case 0: - num3 = 900259004; - break; - case 1: - goto end_IL_02c6; - case 2: - _200F_200B_202A_206D_206F_200C_202A_202A_202B_200E_202B_206C_200E_200C_206D_206A_202E_200E_202B_200F_202B_200E_206F_202C_206D_202E_200D_206F_200C_200E_202E_200F_200C_200F_200E_202D_200D_206F_202E((IDisposable)disabledDisposable); - num3 = 900259007; - break; - } - continue; - end_IL_02c6: - break; + base.Configuration.Duties.WhitelistedDutyCfcIds.Clear(); + base.Configuration.Duties.BlacklistedDutyCfcIds.Clear(); + base.Configuration.Duties.DutyModeOverrides.Clear(); + base.Configuration.Duties.DefaultDutyMode = EDutyMode.Support; + Save(); } + UiThemeUtils.EndCard(item, item2, item3); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawConfigTable(bool runInstancedContentWithAutoDuty, Dictionary<EExpansionVersion, List<DutyInfo>> contentByExpansion) { - Vector2 vector = _206C_202B_200C_206C_206D_200C_202D_206C_206B_202B_200C_202B_206C_200E_200E_200B_202B_200B_206A_200F_200E_202A_200F_202C_206E_206C_206E_202D_200F_206D_202D_206E_206E_206C_206A_206C_206D_206E_200E_200F_202E(); - using ImRaii.ChildDisposable childDisposable = _202C_202B_200E_206C_202B_206A_206A_206D_206C_202C_202B_206D_206A_206B_206E_200F_206A_206B_202C_206A_200D_206D_200F_200B_206D_200D_206F_200C_200B_202B_200B_202B_206C_202E_202A_200D_200F_200C_206B_200F_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-842817394), new Vector2(vector.X, _206E_202A_206C_202C_206F_200E_200C_206F_206F_202C_206E_206B_202D_206B_206B_202A_206F_206C_200C_206F_200C_202B_200F_206F_202A_206C_206B_200F_206A_200F_206F_206A_206E_206A_206B_202A_200B_206B_202E_206B_202E(vector.Y - 30f - 12f, 200f)), true); - int num = ((!(!childDisposable)) ? 397429394 : 397429395); - string text = default(string); - bool open = default(bool); - List<DutyInfo> value = default(List<DutyInfo>); - EDutyMode eDutyMode = default(EDutyMode); - int currentItem2 = default(int); - while (true) + Vector2 contentRegionAvail = ImGui.GetContentRegionAvail(); + using ImRaii.ChildDisposable childDisposable = ImRaii.Child("DutyConfiguration", new Vector2(contentRegionAvail.X, MathF.Max(contentRegionAvail.Y - 30f - 12f, 200f)), border: true); + if (!childDisposable) { - int num2 = num; - int num3 = 397429394; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + Dictionary<string, bool> expansionHeaderStates = base.Configuration.Duties.ExpansionHeaderStates; + EExpansionVersion[] values = Enum.GetValues<EExpansionVersion>(); + for (int i = 0; i < values.Length; i++) + { + EExpansionVersion eExpansionVersion = values[i]; + (int enabledCount, int totalCount) dutyCountsForExpansion = GetDutyCountsForExpansion(eExpansionVersion, contentByExpansion); + int item = dutyCountsForExpansion.enabledCount; + int item2 = dutyCountsForExpansion.totalCount; + string text = eExpansionVersion.ToString(); + bool open = expansionHeaderStates.GetValueOrDefault(text, defaultValue: false); + if (UiThemeUtils.ThemedAccordion(text, eExpansionVersion.ToFriendlyString(), (item2 > 0) ? $"{item}/{item2}" : null, ref open)) { - case 2: - goto IL_0094; - case 1: - return; - case 0: - { - Dictionary<string, bool> expansionHeaderStates = base.Configuration.Duties.ExpansionHeaderStates; - EExpansionVersion[] values = Enum.GetValues<EExpansionVersion>(); - int num7 = 0; - while (true) + using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable($"Duties{eExpansionVersion}", 4, ImGuiTableFlags.SizingFixedFit); + if ((bool)tableDisposable) { - if (num7 < values.Length) + ImGui.TableSetupColumn("Level", ImGuiTableColumnFlags.WidthFixed, 40f); + ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.WidthStretch); + ImGui.TableSetupColumn("Enabled", ImGuiTableColumnFlags.WidthFixed, 180f); + ImGui.TableSetupColumn("Mode", ImGuiTableColumnFlags.WidthFixed, 140f); + if (contentByExpansion.TryGetValue(eExpansionVersion, out List<DutyInfo> value)) { - EExpansionVersion eExpansionVersion = values[num7]; - (int enabledCount, int totalCount) dutyCountsForExpansion = GetDutyCountsForExpansion(eExpansionVersion, contentByExpansion); - int item = dutyCountsForExpansion.enabledCount; - int item2 = dutyCountsForExpansion.totalCount; - text = eExpansionVersion.ToString(); - open = expansionHeaderStates.GetValueOrDefault(text, defaultValue: false); - string id = text; - string label = _200B_206E_206D_200F_202A_202C_202C_202D_206E_202A_206D_200C_202B_206A_200B_200B_202B_206A_202E_200C_202C_200B_200E_200B_202B_206B_200C_202A_202D_200E_206D_200B_206C_206C_202A_200B_202E_206B_200F_206D_202E(eExpansionVersion); - object rightText; - if (item2 <= 0) + foreach (DutyInfo item3 in value) { - rightText = null; - } - else - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(1, 2); - defaultInterpolatedStringHandler.AppendFormatted(item); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1605560946)); - defaultInterpolatedStringHandler.AppendFormatted(item2); - rightText = defaultInterpolatedStringHandler.ToStringAndClear(); - } - if (UiThemeUtils.ThemedAccordion(id, label, (string?)rightText, ref open)) - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(6, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2007815205)); - defaultInterpolatedStringHandler2.AppendFormatted(eExpansionVersion); - using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable(defaultInterpolatedStringHandler2.ToStringAndClear(), 4, ImGuiTableFlags.SizingFixedFit); - if ((bool)tableDisposable) + DutyEntry value2; + bool flag = DutyRegistry.Duties.TryGetValue(item3.CfcId, out value2); + ImGui.TableNextRow(); + string[] array; + int currentItem; + if (flag) { - num = -122867559; - while (true) + array = (value2.Enabled ? SupportedCfcOptions : UnsupportedCfcOptions); + currentItem = 0; + if (base.Configuration.Duties.WhitelistedDutyCfcIds.Contains(item3.CfcId)) { - int num8 = num; - num3 = -122867557; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) + currentItem = 1; + } + if (base.Configuration.Duties.BlacklistedDutyCfcIds.Contains(item3.CfcId)) + { + currentItem = 2; + } + } + else + { + array = new string[2] { "Disabled", "Enabled" }; + currentItem = (base.Configuration.Duties.WhitelistedDutyCfcIds.Contains(item3.CfcId) ? 1 : 0); + } + if (ImGui.TableNextColumn()) + { + ImGui.AlignTextToFramePadding(); + if (item3.Level > 0) + { + ImU8String text2 = new ImU8String(2, 1); + text2.AppendLiteral("Lv"); + text2.AppendFormatted(item3.Level); + ImGui.TextColored(in UiThemeUtils.AccentColor, text2); + } + } + if (ImGui.TableNextColumn()) + { + ImGui.AlignTextToFramePadding(); + float x; + using (ImRaii.PushFont(UiBuilder.IconFont)) + { + x = ImGui.CalcTextSize(FontAwesomeIcon.InfoCircle.ToIconString()).X; + } + UiThemeUtils.RowLabel(item3.Name, x + ImGui.GetStyle().ItemSpacing.X); + if (runInstancedContentWithAutoDuty && !_autoDutyIpc.HasPath(item3.CfcId)) + { + ImGui.SameLine(); + using (ImRaii.PushFont(UiBuilder.IconFont)) { - case 0: - num = -122867559; - break; - case 2: - _200D_206E_200C_202E_206C_206D_202D_206C_202E_206E_206C_200C_206E_206D_206F_200E_206B_202E_206E_202C_206D_200C_200B_200C_200B_206D_200E_200C_202B_206C_202A_202E_202D_206C_206A_200C_202E_206C_206F_206E_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-219663971), ImGuiTableColumnFlags.WidthFixed, 40f, 0u); - _200D_206E_200C_202E_206C_206D_202D_206C_202E_206E_206C_200C_206E_206D_206F_200E_206B_202E_206E_202C_206D_200C_200B_200C_200B_206D_200E_200C_202B_206C_202A_202E_202D_206C_206A_200C_202E_206C_206F_206E_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-267283137), ImGuiTableColumnFlags.WidthStretch, 0f, 0u); - _200D_206E_200C_202E_206C_206D_202D_206C_202E_206E_206C_200C_206E_206D_206F_200E_206B_202E_206E_202C_206D_200C_200B_200C_200B_206D_200E_200C_202B_206C_202A_202E_202D_206C_206A_200C_202E_206C_206F_206E_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(380812930), ImGuiTableColumnFlags.WidthFixed, 180f, 0u); - _200D_206E_200C_202E_206C_206D_202D_206C_202E_206E_206C_200C_206E_206D_206F_200E_206B_202E_206E_202C_206D_200C_200B_200C_200B_206D_200E_200C_202B_206C_202A_202E_202D_206C_206A_200C_202E_206C_206F_206E_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1921859384), ImGuiTableColumnFlags.WidthFixed, 140f, 0u); - if (contentByExpansion.TryGetValue(eExpansionVersion, out value)) + ImGui.TextColored(in UiThemeUtils.StatusLocked, FontAwesomeIcon.Times.ToIconString()); + } + if (ImGui.IsItemHovered()) + { + using (ImRaii.Tooltip()) { - num = -122867558; - break; + ImGui.PushTextWrapPos(400f); + ImGui.Text("This duty is not supported by AutoDuty"); + ImGui.PopTextWrapPos(); } - goto end_IL_01ae; - case 1: - foreach (DutyInfo item3 in value) + } + } + else if (flag && value2.Notes.Length != 0) + { + ConfigComponent.DrawNotes(value2.Enabled, value2.Notes); + } + } + if (ImGui.TableNextColumn()) + { + ImU8String id = new ImU8String(16, 1); + id.AppendLiteral("##DungeonEnabled"); + id.AppendFormatted(item3.CfcId); + using (ImRaii.PushId(id)) + { + ImGui.SetNextItemWidth(-1f); + if (UiThemeUtils.ThemedCombo(string.Empty, ref currentItem, array, array.Length)) + { + base.Configuration.Duties.WhitelistedDutyCfcIds.Remove(item3.CfcId); + base.Configuration.Duties.BlacklistedDutyCfcIds.Remove(item3.CfcId); + if (flag) { - DutyEntry value2; - bool flag = DutyRegistry.Duties.TryGetValue(item3.CfcId, out value2); - _206E_206C_202A_202C_200E_206A_206D_206F_206B_206C_206C_202E_202B_200F_200D_200F_206A_206C_200C_206E_202A_200D_206D_202A_206D_202D_200D_202D_200B_200F_206B_200E_200D_206A_200C_200D_206A_202E_200D_202D_202E(); - string[] array; - int currentItem; - if (flag) + switch (currentItem) { - array = (value2.Enabled ? SupportedCfcOptions : UnsupportedCfcOptions); - currentItem = 0; - if (base.Configuration.Duties.WhitelistedDutyCfcIds.Contains(item3.CfcId)) - { - currentItem = 1; - } - if (base.Configuration.Duties.BlacklistedDutyCfcIds.Contains(item3.CfcId)) - { - currentItem = 2; - } - } - else - { - array = new string[2] - { - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2101114993), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(380812930) - }; - currentItem = (base.Configuration.Duties.WhitelistedDutyCfcIds.Contains(item3.CfcId) ? 1 : 0); - } - if (_206E_202E_206F_202C_202B_206F_206E_206D_200D_200B_202D_206F_206C_206A_200B_200D_200F_200F_202C_200C_202E_202C_206C_206A_202E_200C_200D_202B_206B_202D_202B_206F_206A_206A_202E_202A_206E_200C_200E_206C_202E()) - { - _206B_200C_200C_202D_206B_202B_200B_206C_200B_200C_206F_202D_200B_206D_202C_200B_202C_200C_200E_202A_202A_200B_206A_202B_206B_206B_202A_200F_200E_206C_206A_202D_206C_206F_202C_200E_200D_206A_206B_202E_202E(); - if (item3.Level > 0) - { - ImU8String imU8String = new ImU8String(2, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1503539278)); - imU8String.AppendFormatted(item3.Level); - _202C_206F_202A_206B_202E_202B_202D_206C_200E_202E_200D_206D_200B_200B_206D_206A_200B_202E_200B_200E_200B_202A_202D_200C_206D_206B_202B_200E_200B_202E_200B_206C_206C_206C_202E_206E_202E_202E_202E_206B_202E(ref UiThemeUtils.AccentColor, imU8String); - } - } - if (_206E_202E_206F_202C_202B_206F_206E_206D_200D_200B_202D_206F_206C_206A_200B_200D_200F_200F_202C_200C_202E_202C_206C_206A_202E_200C_200D_202B_206B_202D_202B_206F_206A_206A_202E_202A_206E_200C_200E_206C_202E()) - { - _206B_200C_200C_202D_206B_202B_200B_206C_200B_200C_206F_202D_200B_206D_202C_200B_202C_200C_200E_202A_202A_200B_206A_202B_206B_206B_202A_200F_200E_206C_206A_202D_206C_206F_202C_200E_200D_206A_206B_202E_202E(); - ImRaii.FontDisposable fontDisposable = _202C_202D_206A_202D_202A_200F_202D_200E_206B_202E_200F_206A_202C_202A_200F_202B_202E_206E_202C_206B_200D_206C_202B_206A_206F_206A_202B_202C_200F_202B_200C_206D_202B_206B_202E_200E_202C_200F_206C_200D_202E(_206E_202D_200E_200F_202C_202B_200E_200E_200F_202E_200E_202A_206D_202A_200B_206B_206C_202C_202A_206C_206D_200B_200B_200D_206F_200E_200F_206A_202A_200D_200C_200C_202A_200B_202B_206B_206E_202E_206B_206D_202E(), true); - float x; - try - { - x = _206A_206D_202D_206D_206A_200B_206E_206A_200F_200B_200C_200E_206A_206D_206B_206C_206D_206C_200F_202C_202C_200F_206A_200B_202D_202B_206E_200E_206B_202A_202A_202C_206F_206B_206D_206F_200B_200F_202E_206A_202E((ImU8String)_202E_206A_202D_206F_202E_202E_206F_202E_200F_200D_202D_202E_200C_200D_200B_206E_200C_206B_206C_206A_202B_202A_202C_200D_202B_200E_200B_200C_206C_206F_206D_200E_200E_202C_202E_206B_206D_200D_202D_202D_202E(FontAwesomeIcon.InfoCircle), false, -1f).X; - } - finally - { - num = ((fontDisposable == null) ? (-794763030) : (-794763029)); - while (true) - { - int num9 = num; - num3 = -794763030; - num4 = num9; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -794763029; - break; - case 0: - goto end_IL_0408; - case 1: - _200F_200B_202A_206D_206F_200C_202A_202A_202B_200E_202B_206C_200E_200C_206D_206A_202E_200E_202B_200F_202B_200E_206F_202C_206D_202E_200D_206F_200C_200E_202E_200F_200C_200F_200E_202D_200D_206F_202E((IDisposable)fontDisposable); - num = -794763030; - break; - } - continue; - end_IL_0408: - break; - } - } - UiThemeUtils.RowLabel(item3.Name, x + _206A_200E_202B_202A_202C_200B_202C_206A_200B_202A_200F_206C_206D_206A_200B_202C_200E_206E_200D_206D_202B_206E_206C_200B_200F_202B_206C_200D_200B_202A_200E_200F_206A_206D_202E_200B_202D_202B_202D_202C_202E().ItemSpacing.X); - if (!runInstancedContentWithAutoDuty) - { - goto IL_05c3; - } - num = -660637057; - while (true) - { - int num10 = num; - num3 = -660637058; - num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 2: - num = -660637057; - break; - case 1: - goto IL_04c2; - case 0: - goto end_IL_0488; - } - continue; - IL_04c2: - if (!_autoDutyIpc.HasPath(item3.CfcId)) - { - num = -660637058; - continue; - } - goto IL_05c3; - continue; - end_IL_0488: - break; - } - _200D_200F_200F_206E_206A_200F_202D_200C_202B_200B_200D_206A_206F_206E_202D_200D_202E_200F_200C_206D_206A_202D_200F_206B_202D_206F_202E_206B_206E_202A_200F_202B_202D_202A_202A_200C_206C_200F_200F_200F_202E(); - fontDisposable = _202C_202D_206A_202D_202A_200F_202D_200E_206B_202E_200F_206A_202C_202A_200F_202B_202E_206E_202C_206B_200D_206C_202B_206A_206F_206A_202B_202C_200F_202B_200C_206D_202B_206B_202E_200E_202C_200F_206C_200D_202E(_206E_202D_200E_200F_202C_202B_200E_200E_200F_202E_200E_202A_206D_202A_200B_206B_206C_202C_202A_206C_206D_200B_200B_200D_206F_200E_200F_206A_202A_200D_200C_200C_202A_200B_202B_206B_206E_202E_206B_206D_202E(), true); - try - { - _202C_206F_202A_206B_202E_202B_202D_206C_200E_202E_200D_206D_200B_200B_206D_206A_200B_202E_200B_200E_200B_202A_202D_200C_206D_206B_202B_200E_200B_202E_200B_206C_206C_206C_202E_206E_202E_202E_202E_206B_202E(ref UiThemeUtils.StatusLocked, (ImU8String)_202E_206A_202D_206F_202E_202E_206F_202E_200F_200D_202D_202E_200C_200D_200B_206E_200C_206B_206C_206A_202B_202A_202C_200D_202B_200E_200B_200C_206C_206F_206D_200E_200E_202C_202E_206B_206D_200D_202D_202D_202E(FontAwesomeIcon.Times)); - } - finally - { - num = ((fontDisposable == null) ? 83435608 : 83435611); - while (true) - { - int num13 = num; - num3 = 83435609; - num4 = num13; - int num14 = num4 + num3; - int num15 = num4 & num3; - switch (num14 - (num15 + num15)) - { - case 0: - num = 83435611; - break; - case 2: - _200F_200B_202A_206D_206F_200C_202A_202A_202B_200E_202B_206C_200E_200C_206D_206A_202E_200E_202B_200F_202B_200E_206F_202C_206D_202E_200D_206F_200C_200E_202E_200F_200C_200F_200E_202D_200D_206F_202E((IDisposable)fontDisposable); - num = 83435608; - break; - case 1: - goto end_IL_0534; - } - continue; - end_IL_0534: - break; - } - } - if (_200C_200C_202C_206A_206A_206C_202D_200F_200B_206D_202A_200E_200C_202A_202C_200F_206E_202E_200C_206F_206E_200C_200E_200F_202B_202A_200F_200F_200D_200C_200C_200C_200F_202D_202C_206C_206F_202C_202C_206F_202E()) - { - using (_200C_206F_200E_206D_206C_200F_202B_200D_200F_206C_202C_200D_206E_202B_206F_206E_206A_206D_200B_206A_206F_202D_206F_206B_206F_200E_200E_202B_200E_206F_200F_206B_200F_202E_206F_202B_206F_202E_206E_202D_202E()) - { - _200E_206B_202A_202C_200D_202B_200E_206A_200B_200D_202A_200B_206C_202D_200B_200E_202E_200C_202A_202D_206B_202A_206A_206A_206B_206B_206B_200D_200E_206C_200B_202C_200C_202B_200D_202C_206F_200B_202E_200E_202E(400f); - _206A_200C_206F_202B_202E_202C_206F_202D_206B_206C_200F_206B_206A_206D_202A_200F_202D_206D_202B_200D_202E_202B_200B_200F_200E_206E_200F_206E_206E_202B_202C_202B_206C_200D_202B_202B_202E_202E_200B_206E_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(292811051)); - _202D_200F_200F_206F_200F_202C_206E_200C_200C_202C_202A_206B_200D_202B_202B_206E_206B_206F_200C_206D_206A_200F_200B_200D_200E_206A_206B_200D_206C_206D_206E_202D_200C_202A_206A_200C_206B_200C_202D_202A_202E(); - } - } - } - goto IL_0666; - IL_0666: - if (_206E_202E_206F_202C_202B_206F_206E_206D_200D_200B_202D_206F_206C_206A_200B_200D_200F_200F_202C_200C_202E_202C_206C_206A_202E_200C_200D_202B_206B_202D_202B_206F_206A_206A_202E_202A_206E_200C_200E_206C_202E()) - { - num = 1001003675; - goto IL_05e2; - } - goto IL_08f4; - IL_08f4: - if (!_206E_202E_206F_202C_202B_206F_206E_206D_200D_200B_202D_206F_206C_206A_200B_200D_200F_200F_202C_200C_202E_202C_206C_206A_202E_200C_200D_202B_206B_202D_202B_206F_206A_206A_202E_202A_206E_200C_200E_206C_202E()) - { - continue; - } - ImU8String imU8String2 = new ImU8String(13, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1518573778)); - imU8String2.AppendFormatted(item3.CfcId); - ImRaii.IdDisposable idDisposable = _200B_206F_206A_202E_202B_202E_206C_200B_200D_206C_206E_206C_200F_206A_206F_200E_200D_200D_202B_200F_202A_202C_200B_206F_202E_200C_200F_200F_202D_200D_200C_202B_202A_206D_200C_202A_206E_206C_206A_206B_202E(imU8String2, true); - try - { - EDutyMode value3; - bool flag2 = base.Configuration.Duties.DutyModeOverrides.TryGetValue(item3.CfcId, out value3); - num = (flag2 ? 1328430031 : 1328430017); - while (true) - { - int num16 = num; - num3 = 1328430027; - num4 = num16; - int num18; - string text2; - EDutyMode num17; - string text3; - string[] dutyModeLabels; - string[] array2; - int num20; - ReadOnlySpan<string> readOnlySpan; - int num19; - string[] array3; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 4: - num18 = (int)value3; - goto IL_09ca; - case 6: - text2 = _202D_200F_202A_200B_202A_202C_202D_200D_202E_206B_202D_206D_200E_202B_206A_200F_200B_206D_206E_202D_202E_200E_200B_202E_200B_206F_206D_206A_206F_202D_206A_206A_206C_206B_206D_200B_200F_202D_206F_206A_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1030730934), DutyModeLabels[(int)eDutyMode]); - break; - case 9: - num = 1328430017; - continue; - case 10: - num18 = -1; - goto IL_09ca; - case 0: - Save(); - num = 1328430022; - continue; - case 5: - num = ((currentItem2 != 0) ? 1328430028 : 1328430016); - continue; - case 11: - base.Configuration.Duties.DutyModeOverrides.Remove(item3.CfcId); - num = 1328430027; - continue; - case 2: - num = (flag2 ? 1328430026 : 1328430023); - continue; - case 13: - num = ((!_200C_200C_202C_206A_206A_206C_202D_200F_200B_206D_202A_200E_200C_202A_202C_200F_206E_202E_200C_206F_206E_200C_200E_200F_202B_202A_200F_200F_200D_200C_200C_200C_200F_202D_202C_206C_206F_202C_202C_206F_202E()) ? 1328430024 : 1328430025); - continue; - case 7: - { - Dictionary<uint, EDutyMode> dutyModeOverrides = base.Configuration.Duties.DutyModeOverrides; - uint cfcId = item3.CfcId; - int num21 = currentItem2; - num3 = 1; - num4 = num21; - dutyModeOverrides[cfcId] = (EDutyMode)(~(~num4 + num3)); - num = 1328430027; - continue; - } - case 12: - num17 = base.Configuration.Duties.DefaultDutyMode; - goto IL_0bc6; - case 1: - num17 = value3; - goto IL_0bc6; - case 8: - text2 = _202D_200F_202A_200B_202A_202C_202D_200D_202E_206B_202D_206D_200E_202B_206A_200F_200B_206D_206E_202D_202E_200E_200B_202E_200B_206F_206D_206A_206F_202D_206A_206A_206C_206B_206D_200B_200F_202D_206F_206A_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-619455763), DutyModeLabels[(int)eDutyMode]); - break; - case 3: - goto end_IL_0970; - IL_0bc6: - eDutyMode = num17; - num = (flag2 ? 1328430019 : 1328430029); - continue; - IL_09ca: - text3 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1673841824); - dutyModeLabels = DutyModeLabels; - num19 = 0; - num3 = dutyModeLabels.Length; - num4 = 1; - array2 = new string[(num4 | num3) + (num4 & num3)]; - array2[num19] = text3; - num20 = num19; - num3 = 1; - num4 = num20; - num19 = (num4 | num3) + (num4 & num3); - readOnlySpan = new ReadOnlySpan<string>(dutyModeLabels); - readOnlySpan.CopyTo(new Span<string>(array2).Slice(num19, readOnlySpan.Length)); - num19 += readOnlySpan.Length; - array3 = array2; - currentItem2 = num18 + 1; - _206C_200F_206A_200C_200D_206F_200E_200C_202D_200F_206D_202C_202A_202D_206E_206E_200E_206B_200B_202E_206F_200C_200C_206E_200E_206C_202E_206C_202C_202E_200E_206A_200C_202C_206A_202B_200E_202C_206B_202D_202E(-1f); - num = ((!UiThemeUtils.ThemedCombo(string.Empty, ref currentItem2, array3, array3.Length)) ? 1328430022 : 1328430030); - continue; - } - _202A_206D_206A_202E_200E_202E_202A_202D_202D_206F_206E_206C_202B_200E_202C_202A_200E_206A_202C_202C_200E_202B_200D_200F_200B_200B_200E_206B_200E_206A_202E_200D_202D_202E_206C_202A_202C_200E_206C_202E_202E((ImU8String)text2); - num = 1328430024; - continue; - end_IL_0970: - break; - } - } - finally - { - num = ((idDisposable == null) ? 318767164 : 318767167); - while (true) - { - int num22 = num; - num3 = 318767166; - num4 = num22; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 318767167; - break; - case 2: - goto end_IL_0c38; - case 1: - _200F_200B_202A_206D_206F_200C_202A_202A_202B_200E_202B_206C_200E_200C_206D_206A_202E_200E_202B_200F_202B_200E_206F_202C_206D_202E_200D_206F_200C_200E_202E_200F_200C_200F_200E_202D_200D_206F_202E((IDisposable)idDisposable); - num = 318767164; - break; - } - continue; - end_IL_0c38: - break; - } - } - continue; - IL_05e2: - while (true) - { - int num23 = num; - num3 = 1001003673; - num4 = num23; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - ConfigComponent.DrawNotes(value2.Enabled, value2.Notes); - num = 1001003672; - break; - case 3: - goto IL_0635; - case 4: - num = 1001003674; - break; - case 1: - goto end_IL_05e2; - case 2: - goto IL_067c; - } - continue; - IL_0635: - num = ((value2.Notes.Length == 0) ? 1001003672 : 1001003673); - continue; - end_IL_05e2: + case 1: + base.Configuration.Duties.WhitelistedDutyCfcIds.Add(item3.CfcId); + break; + case 2: + base.Configuration.Duties.BlacklistedDutyCfcIds.Add(item3.CfcId); break; } - goto IL_0666; - IL_067c: - ImU8String imU8String3 = new ImU8String(16, 1); - imU8String3.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2087649454)); - imU8String3.AppendFormatted(item3.CfcId); - ImRaii.IdDisposable idDisposable2 = _200B_206F_206A_202E_202B_202E_206C_200B_200D_206C_206E_206C_200F_206A_206F_200E_200D_200D_202B_200F_202A_202C_200B_206F_202E_200C_200F_200F_202D_200D_200C_202B_202A_206D_200C_202A_206E_206C_206A_206B_202E(imU8String3, true); - try - { - _206C_200F_206A_200C_200D_206F_200E_200C_202D_200F_206D_202C_202A_202D_206E_206E_200E_206B_200B_202E_206F_200C_200C_206E_200E_206C_202E_206C_202C_202E_200E_206A_200C_202C_206A_202B_200E_202C_206B_202D_202E(-1f); - num = ((!UiThemeUtils.ThemedCombo(string.Empty, ref currentItem, array, array.Length)) ? (-730773088) : (-730773077)); - while (true) - { - int num24 = num; - num3 = -730773080; - num4 = num24; - int num25 = num4 + num3; - int num26 = num4 & num3; - switch (num25 - (num26 + num26)) - { - case 1: - Save(); - num = -730773088; - break; - case 3: - base.Configuration.Duties.WhitelistedDutyCfcIds.Remove(item3.CfcId); - base.Configuration.Duties.BlacklistedDutyCfcIds.Remove(item3.CfcId); - num = ((!flag) ? (-730773076) : (-730773073)); - break; - case 0: - num = ((currentItem != 2) ? (-730773079) : (-730773074)); - break; - case 4: - num = ((currentItem != 1) ? (-730773079) : (-730773087)); - break; - case 6: - base.Configuration.Duties.BlacklistedDutyCfcIds.Add(item3.CfcId); - num = -730773079; - break; - case 5: - num = -730773077; - break; - case 9: - base.Configuration.Duties.WhitelistedDutyCfcIds.Add(item3.CfcId); - num = -730773079; - break; - case 7: - num = ((currentItem != 1) ? (-730773080) : (-730773078)); - break; - case 2: - base.Configuration.Duties.WhitelistedDutyCfcIds.Add(item3.CfcId); - num = -730773079; - break; - case 8: - goto end_IL_06e8; - } - continue; - end_IL_06e8: - break; - } - } - finally - { - num = ((idDisposable2 == null) ? (-810065188) : (-810065187)); - while (true) - { - int num27 = num; - num3 = -810065188; - num4 = num27; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_08a8; - case 1: - _200F_200B_202A_206D_206F_200C_202A_202A_202B_200E_202B_206C_200E_200C_206D_206A_202E_200E_202B_200F_202B_200E_206F_202C_206D_202E_200D_206F_200C_200E_202E_200F_200C_200F_200E_202D_200D_206F_202E((IDisposable)idDisposable2); - num = -810065188; - break; - case 2: - num = -810065187; - break; - } - continue; - end_IL_08a8: - break; - } - } - goto IL_08f4; - IL_05c3: - num = ((!flag) ? 1001003672 : 1001003674); - goto IL_05e2; } - goto end_IL_01ae; + else if (currentItem == 1) + { + base.Configuration.Duties.WhitelistedDutyCfcIds.Add(item3.CfcId); + } + Save(); } - continue; - end_IL_01ae: - break; + } + } + if (!ImGui.TableNextColumn()) + { + continue; + } + ImU8String id2 = new ImU8String(13, 1); + id2.AppendLiteral("##DungeonMode"); + id2.AppendFormatted(item3.CfcId); + using (ImRaii.PushId(id2)) + { + EDutyMode value3; + bool flag2 = base.Configuration.Duties.DutyModeOverrides.TryGetValue(item3.CfcId, out value3); + EDutyMode num = (flag2 ? value3 : ((EDutyMode)(-1))); + string text3 = "Use Default"; + string[] dutyModeLabels = DutyModeLabels; + int num2 = 0; + string[] array2 = new string[1 + dutyModeLabels.Length]; + array2[num2] = text3; + num2++; + ReadOnlySpan<string> readOnlySpan = new ReadOnlySpan<string>(dutyModeLabels); + readOnlySpan.CopyTo(new Span<string>(array2).Slice(num2, readOnlySpan.Length)); + num2 += readOnlySpan.Length; + string[] array3 = array2; + int currentItem2 = (int)(num + 1); + ImGui.SetNextItemWidth(-1f); + if (UiThemeUtils.ThemedCombo(string.Empty, ref currentItem2, array3, array3.Length)) + { + if (currentItem2 == 0) + { + base.Configuration.Duties.DutyModeOverrides.Remove(item3.CfcId); + } + else + { + base.Configuration.Duties.DutyModeOverrides[item3.CfcId] = (EDutyMode)(currentItem2 - 1); + } + Save(); + } + if (ImGui.IsItemHovered()) + { + EDutyMode eDutyMode = (flag2 ? value3 : base.Configuration.Duties.DefaultDutyMode); + ImGui.SetTooltip(flag2 ? ("Override: " + DutyModeLabels[(int)eDutyMode]) : ("Using default: " + DutyModeLabels[(int)eDutyMode])); } } } - num = ((open == expansionHeaderStates.GetValueOrDefault(text, defaultValue: false)) ? 690590899 : 690590897); } - else - { - num = 690590896; - } - while (true) - { - int num28 = num; - num3 = 690590896; - num4 = num28; - int num29 = num4 + num3; - int num30 = num4 & num3; - switch (num29 - (num30 + num30)) - { - case 3: - goto end_IL_0cd8; - case 1: - expansionHeaderStates[text] = open; - Save(); - num = 690590899; - break; - case 2: - num = 690590897; - break; - case 0: - return; - } - continue; - end_IL_0cd8: - break; - } - int num31 = num7; - num3 = 1; - num4 = num31; - int num32 = num4 ^ num3; - int num33 = num4 & num3; - num7 = num32 + (num33 + num33); } } + if (open != expansionHeaderStates.GetValueOrDefault(text, defaultValue: false)) + { + expansionHeaderStates[text] = open; + Save(); } - continue; - IL_0094: - num = 397429395; } } private (int enabledCount, int totalCount) GetDutyCountsForExpansion(EExpansionVersion expansion, Dictionary<EExpansionVersion, List<DutyInfo>> contentByExpansion) { - int num = (contentByExpansion.TryGetValue(expansion, out List<DutyInfo> value) ? (-2145746292) : (-2145746291)); - DutyInfo current = default(DutyInfo); - DutyEntry value2 = default(DutyEntry); - while (true) + if (!contentByExpansion.TryGetValue(expansion, out List<DutyInfo> value)) { - int num2 = num; - int num3 = -2145746292; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0052; - case 1: - return (enabledCount: 0, totalCount: 0); - case 0: - { - int num5 = 0; - int num6 = 0; - using (List<DutyInfo>.Enumerator enumerator = value.GetEnumerator()) - { - num = -357532631; - while (true) - { - int num7 = num; - num3 = -357532638; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 11: - num = (enumerator.MoveNext() ? (-357532637) : (-357532640)); - break; - case 3: - { - int num15 = num5; - num3 = 1; - num4 = num15; - int num16 = num4 ^ num3; - int num17 = num4 & num3; - num5 = num16 + (num17 + num17); - num = -357532631; - break; - } - case 1: - current = enumerator.Current; - num = ((!DutyRegistry.Duties.TryGetValue(current.CfcId, out value2)) ? (-357532634) : (-357532629)); - break; - case 7: - if (value2.Enabled) - { - goto case 0; - } - goto case 5; - case 4: - { - int num14 = num6; - num3 = 1; - num4 = num14; - num6 = (num4 | num3) + (num4 & num3); - num = ((!base.Configuration.Duties.WhitelistedDutyCfcIds.Contains(current.CfcId)) ? (-357532631) : (-357532639)); - break; - } - case 9: - { - int num11 = num6; - num3 = 1; - num4 = num11; - int num12 = num4 ^ num3; - int num13 = num4 & num3; - num6 = num12 + (num13 + num13); - num = (base.Configuration.Duties.WhitelistedDutyCfcIds.Contains(current.CfcId) ? (-357532638) : (-357532636)); - break; - } - case 8: - { - int num10 = num5; - num3 = 1; - num4 = num10; - num5 = (num4 | num3) + (num4 & num3); - num = -357532631; - break; - } - case 0: - num = -357532630; - break; - case 5: - num = -357532631; - break; - case 10: - num = -357532631; - break; - case 6: - num = (base.Configuration.Duties.BlacklistedDutyCfcIds.Contains(current.CfcId) ? (-357532633) : (-357532635)); - break; - case 2: - goto end_IL_007d; - } - continue; - end_IL_007d: - break; - } - } - return (enabledCount: num5, totalCount: num6); - } - } - continue; - IL_0052: - num = -2145746291; + return (enabledCount: 0, totalCount: 0); } + int num = 0; + int num2 = 0; + foreach (DutyInfo item in value) + { + if (DutyRegistry.Duties.TryGetValue(item.CfcId, out DutyEntry value2)) + { + num2++; + if (base.Configuration.Duties.WhitelistedDutyCfcIds.Contains(item.CfcId) || (!base.Configuration.Duties.BlacklistedDutyCfcIds.Contains(item.CfcId) && value2.Enabled)) + { + num++; + } + } + else + { + num2++; + if (base.Configuration.Duties.WhitelistedDutyCfcIds.Contains(item.CfcId)) + { + num++; + } + } + } + return (enabledCount: num, totalCount: num2); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawEnableAllButton() { - int num; - if (UiThemeUtils.IconTextButton(FontAwesomeIcon.CheckCircle, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-252153672))) + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.CheckCircle, "Enable All")) { base.Configuration.Duties.BlacklistedDutyCfcIds.Clear(); base.Configuration.Duties.WhitelistedDutyCfcIds.Clear(); - IEnumerator<List<DutyInfo>> enumerator = _contentFinderConditionNames.Values.Concat<List<DutyInfo>>(_allTrialNames.Values).Concat<List<DutyInfo>>(_allNormalRaidNames.Values).Concat<List<DutyInfo>>(_allAllianceRaidNames.Values) - .GetEnumerator(); - try + foreach (List<DutyInfo> item in _contentFinderConditionNames.Values.Concat<List<DutyInfo>>(_allTrialNames.Values).Concat<List<DutyInfo>>(_allNormalRaidNames.Values).Concat<List<DutyInfo>>(_allAllianceRaidNames.Values)) { - while (_200E_206E_202C_200E_206F_202D_200B_206B_206C_206A_202D_202B_206E_206D_202B_202B_206F_200E_200D_202E_200E_200E_200E_200B_202C_202B_206B_202A_202C_206B_202E_200D_200F_202C_200D_200C_202A_206F_200E_202B_202E((IEnumerator)enumerator)) + foreach (DutyInfo item2 in item) { - using List<DutyInfo>.Enumerator enumerator2 = enumerator.Current.GetEnumerator(); - num = 659952751; - while (true) - { - int num2 = num; - int num3 = 659952750; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 659952751; - break; - case 1: - num = (enumerator2.MoveNext() ? 659952749 : 659952748); - break; - case 3: - { - DutyInfo current = enumerator2.Current; - base.Configuration.Duties.WhitelistedDutyCfcIds.Add(current.CfcId); - num = 659952751; - break; - } - case 2: - goto end_IL_00a0; - } - continue; - end_IL_00a0: - break; - } - } - } - finally - { - num = ((enumerator == null) ? 495906108 : 495906111); - while (true) - { - int num7 = num; - int num3 = 495906109; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 495906111; - break; - case 2: - _200F_200B_202A_206D_206F_200C_202A_202A_202B_200E_202B_206C_200E_200C_206D_206A_202E_200E_202B_200F_202B_200E_206F_202C_206D_202E_200D_206F_200C_200E_202E_200F_200C_200F_200E_202D_200D_206F_202E((IDisposable)enumerator); - num = 495906108; - break; - case 1: - goto end_IL_016c; - } - continue; - end_IL_016c: - break; + base.Configuration.Duties.WhitelistedDutyCfcIds.Add(item2.CfcId); } } Save(); } - num = ((!_200C_200C_202C_206A_206A_206C_202D_200F_200B_206D_202A_200E_200C_202A_202C_200F_206E_202E_200C_206F_206E_200C_200E_200F_202B_202A_200F_200F_200D_200C_200C_200C_200F_202D_202C_206C_206F_202C_202C_206F_202E()) ? (-968009708) : (-968009705)); - while (true) + if (ImGui.IsItemHovered()) { - int num8 = num; - int num3 = -968009706; - int num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -968009705; - break; - case 2: - return; - case 1: - _202A_206D_206A_202E_200E_202E_202A_202D_202D_206F_206E_206C_202B_200E_202C_202A_200E_206A_202C_202C_200E_202B_200D_200F_200B_200B_200E_206B_200E_206A_202E_200D_202D_202E_206C_202A_202C_200E_206C_202E_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1505234353)); - num = -968009708; - break; - } + ImGui.SetTooltip("Enable all of the duties, use at your own risk."); } } - - static ImRaii.DisabledDisposable _200F_206A_206C_200C_200F_206C_206E_200D_206A_200D_200E_200B_200D_206D_200C_200C_206D_206E_202B_200F_206C_200B_206E_206D_202C_200F_206F_202D_200C_202B_206B_202E_206D_202D_206E_206D_200F_206E_206D_206B_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static void _202C_200D_200C_206B_206A_200F_202A_200F_206D_202A_202B_200D_200C_206A_200B_200D_206F_200D_202D_206C_206C_202E_206A_200F_200E_206A_206B_200E_202C_206A_202D_200E_200E_200F_206D_206A_206C_200F_206D_202D_202E() - { - ImGui.Spacing(); - } - - static void _206A_200C_206F_202B_202E_202C_206F_202D_206B_206C_200F_206B_206A_206D_202A_200F_202D_206D_202B_200D_202E_202B_200B_200F_200E_206E_200F_206E_206E_202B_202C_202B_206C_200D_202B_202B_202E_202E_200B_206E_202E(ImU8String P_0) - { - ImGui.Text(P_0); - } - - static void _200D_200F_200F_206E_206A_200F_202D_200C_202B_200B_200D_206A_206F_206E_202D_200D_202E_200F_200C_206D_206A_202D_200F_206B_202D_206F_202E_206B_206E_202A_200F_202B_202D_202A_202A_200C_206C_200F_200F_200F_202E() - { - ImGui.SameLine(); - } - - static Vector2 _206C_202B_200C_206C_206D_200C_202D_206C_206B_202B_200C_202B_206C_200E_200E_200B_202B_200B_206A_200F_200E_202A_200F_202C_206E_206C_206E_202D_200F_206D_202D_206E_206E_206C_206A_206C_206D_206E_200E_200F_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static float _200B_200C_202D_202D_202D_206A_200F_200F_206B_206B_200E_202C_206F_202A_206F_200B_202C_200B_206B_206E_202C_200F_200C_206E_202B_200C_200B_200B_202A_206D_202A_200B_202C_202B_206C_206B_200D_200C_200F_202E_202E(float P_0, float P_1) - { - return MathF.Min(P_0, P_1); - } - - static void _206C_200F_206A_200C_200D_206F_200E_200C_202D_200F_206D_202C_202A_202D_206E_206E_200E_206B_200B_202E_206F_200C_200C_206E_200E_206C_202E_206C_202C_202E_200E_206A_200C_202C_206A_202B_200E_202C_206B_202D_202E(float P_0) - { - ImGui.SetNextItemWidth(P_0); - } - - static ImRaii.IndentDisposable _200C_200F_202D_200C_202E_200B_206E_206E_206F_206F_206F_202D_200E_200D_200E_202A_206D_202C_202C_202C_206F_202C_206A_200C_200C_206B_200C_206A_200D_200F_206F_206A_206F_206D_200D_200C_200D_200F_202E_202C_202E(int P_0, bool P_1) - { - return ImRaii.PushIndent(P_0, P_1); - } - - static void _200F_200B_202A_206D_206F_200C_202A_202A_202B_200E_202B_206C_200E_200C_206D_206A_202E_200E_202B_200F_202B_200E_206F_202C_206D_202E_200D_206F_200C_200E_202E_200F_200C_200F_200E_202D_200D_206F_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static float _206E_200D_206C_202C_206F_206D_206F_200E_200B_206A_200F_202B_202A_200B_202C_206C_202B_206A_206A_202B_206C_206E_206E_200D_200D_200D_206C_206F_202B_200D_206E_200C_206E_202C_206D_200E_202C_206D_206A_200F_202E() - { - return ImGui.GetCursorPosY(); - } - - static ImGuiStylePtr _206A_200E_202B_202A_202C_200B_202C_206A_200B_202A_200F_206C_206D_206A_200B_202C_200E_206E_200D_206D_202B_206E_206C_200B_200F_202B_206C_200D_200B_202A_200E_200F_206A_206D_202E_200B_202D_202B_202D_202C_202E() - { - return ImGui.GetStyle(); - } - - static void _202C_206B_202D_202C_206D_202D_206A_200D_200F_200D_202A_200E_206E_200E_200F_206D_206F_200B_202D_206D_206C_206F_200C_200E_206E_202B_200E_202C_200E_202E_206B_200E_206B_200F_200B_202C_200B_206C_206D_206F_202E(float P_0) - { - ImGui.SetCursorPosY(P_0); - } - - static float _206E_202A_206C_202C_206F_200E_200C_206F_206F_202C_206E_206B_202D_206B_206B_202A_206F_206C_200C_206F_200C_202B_200F_206F_202A_206C_206B_200F_206A_200F_206F_206A_206E_206A_206B_202A_200B_206B_202E_206B_202E(float P_0, float P_1) - { - return MathF.Max(P_0, P_1); - } - - static ImRaii.ChildDisposable _202C_202B_200E_206C_202B_206A_206A_206D_206C_202C_202B_206D_206A_206B_206E_200F_206A_206B_202C_206A_200D_206D_200F_200B_206D_200D_206F_200C_200B_202B_200B_202B_206C_202E_202A_200D_200F_200C_206B_200F_202E(ImU8String P_0, Vector2 P_1, bool P_2) - { - return ImRaii.Child(P_0, P_1, P_2); - } - - static string _200B_206E_206D_200F_202A_202C_202C_202D_206E_202A_206D_200C_202B_206A_200B_200B_202B_206A_202E_200C_202C_200B_200E_200B_202B_206B_200C_202A_202D_200E_206D_200B_206C_206C_202A_200B_202E_206B_200F_206D_202E(EExpansionVersion P_0) - { - return P_0.ToFriendlyString(); - } - - static void _200D_206E_200C_202E_206C_206D_202D_206C_202E_206E_206C_200C_206E_206D_206F_200E_206B_202E_206E_202C_206D_200C_200B_200C_200B_206D_200E_200C_202B_206C_202A_202E_202D_206C_206A_200C_202E_206C_206F_206E_202E(ImU8String P_0, ImGuiTableColumnFlags P_1, float P_2, uint P_3) - { - ImGui.TableSetupColumn(P_0, P_1, P_2, P_3); - } - - static void _206E_206C_202A_202C_200E_206A_206D_206F_206B_206C_206C_202E_202B_200F_200D_200F_206A_206C_200C_206E_202A_200D_206D_202A_206D_202D_200D_202D_200B_200F_206B_200E_200D_206A_200C_200D_206A_202E_200D_202D_202E() - { - ImGui.TableNextRow(); - } - - static bool _206E_202E_206F_202C_202B_206F_206E_206D_200D_200B_202D_206F_206C_206A_200B_200D_200F_200F_202C_200C_202E_202C_206C_206A_202E_200C_200D_202B_206B_202D_202B_206F_206A_206A_202E_202A_206E_200C_200E_206C_202E() - { - return ImGui.TableNextColumn(); - } - - static void _206B_200C_200C_202D_206B_202B_200B_206C_200B_200C_206F_202D_200B_206D_202C_200B_202C_200C_200E_202A_202A_200B_206A_202B_206B_206B_202A_200F_200E_206C_206A_202D_206C_206F_202C_200E_200D_206A_206B_202E_202E() - { - ImGui.AlignTextToFramePadding(); - } - - static void _202C_206F_202A_206B_202E_202B_202D_206C_200E_202E_200D_206D_200B_200B_206D_206A_200B_202E_200B_200E_200B_202A_202D_200C_206D_206B_202B_200E_200B_202E_200B_206C_206C_206C_202E_206E_202E_202E_202E_206B_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static ImFontPtr _206E_202D_200E_200F_202C_202B_200E_200E_200F_202E_200E_202A_206D_202A_200B_206B_206C_202C_202A_206C_206D_200B_200B_200D_206F_200E_200F_206A_202A_200D_200C_200C_202A_200B_202B_206B_206E_202E_206B_206D_202E() - { - return UiBuilder.IconFont; - } - - static ImRaii.FontDisposable _202C_202D_206A_202D_202A_200F_202D_200E_206B_202E_200F_206A_202C_202A_200F_202B_202E_206E_202C_206B_200D_206C_202B_206A_206F_206A_202B_202C_200F_202B_200C_206D_202B_206B_202E_200E_202C_200F_206C_200D_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static string _202E_206A_202D_206F_202E_202E_206F_202E_200F_200D_202D_202E_200C_200D_200B_206E_200C_206B_206C_206A_202B_202A_202C_200D_202B_200E_200B_200C_206C_206F_206D_200E_200E_202C_202E_206B_206D_200D_202D_202D_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static Vector2 _206A_206D_202D_206D_206A_200B_206E_206A_200F_200B_200C_200E_206A_206D_206B_206C_206D_206C_200F_202C_202C_200F_206A_200B_202D_202B_206E_200E_206B_202A_202A_202C_206F_206B_206D_206F_200B_200F_202E_206A_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static bool _200C_200C_202C_206A_206A_206C_202D_200F_200B_206D_202A_200E_200C_202A_202C_200F_206E_202E_200C_206F_206E_200C_200E_200F_202B_202A_200F_200F_200D_200C_200C_200C_200F_202D_202C_206C_206F_202C_202C_206F_202E() - { - return ImGui.IsItemHovered(); - } - - static ImRaii.TooltipDisposable _200C_206F_200E_206D_206C_200F_202B_200D_200F_206C_202C_200D_206E_202B_206F_206E_206A_206D_200B_206A_206F_202D_206F_206B_206F_200E_200E_202B_200E_206F_200F_206B_200F_202E_206F_202B_206F_202E_206E_202D_202E() - { - return ImRaii.Tooltip(); - } - - static void _200E_206B_202A_202C_200D_202B_200E_206A_200B_200D_202A_200B_206C_202D_200B_200E_202E_200C_202A_202D_206B_202A_206A_206A_206B_206B_206B_200D_200E_206C_200B_202C_200C_202B_200D_202C_206F_200B_202E_200E_202E(float P_0) - { - ImGui.PushTextWrapPos(P_0); - } - - static void _202D_200F_200F_206F_200F_202C_206E_200C_200C_202C_202A_206B_200D_202B_202B_206E_206B_206F_200C_206D_206A_200F_200B_200D_200E_206A_206B_200D_206C_206D_206E_202D_200C_202A_206A_200C_206B_200C_202D_202A_202E() - { - ImGui.PopTextWrapPos(); - } - - static ImRaii.IdDisposable _200B_206F_206A_202E_202B_202E_206C_200B_200D_206C_206E_206C_200F_206A_206F_200E_200D_200D_202B_200F_202A_202C_200B_206F_202E_200C_200F_200F_202D_200D_200C_202B_202A_206D_200C_202A_206E_206C_206A_206B_202E(ImU8String P_0, bool P_1) - { - return ImRaii.PushId(P_0, P_1); - } - - static string _202D_200F_202A_200B_202A_202C_202D_200D_202E_206B_202D_206D_200E_202B_206A_200F_200B_206D_206E_202D_202E_200E_200B_202E_200B_206F_206D_206A_206F_202D_206A_206A_206C_206B_206D_200B_200F_202D_206F_206A_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static void _202A_206D_206A_202E_200E_202E_202A_202D_202D_206F_206E_206C_202B_200E_202C_202A_200E_206A_202C_202C_200E_202B_200D_200F_200B_200B_200E_206B_200E_206A_202E_200D_202D_202E_206C_202A_202C_200E_206C_202E_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } - - static bool _200E_206E_202C_200E_206F_202D_200B_206B_206C_206A_202D_202B_206E_206D_202B_202B_206F_200E_200D_202E_200E_200E_200E_200B_202C_202B_206B_202A_202C_206B_202E_200D_200F_202C_200D_200C_202A_206F_200E_202B_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } } diff --git a/Questionable/Questionable.Windows.ConfigComponents/GeneralConfigComponent.cs b/Questionable/Questionable.Windows.ConfigComponents/GeneralConfigComponent.cs index e9b2d85..f209ea1 100644 --- a/Questionable/Questionable.Windows.ConfigComponents/GeneralConfigComponent.cs +++ b/Questionable/Questionable.Windows.ConfigComponents/GeneralConfigComponent.cs @@ -21,100 +21,6 @@ namespace Questionable.Windows.ConfigComponents; internal sealed class GeneralConfigComponent : ConfigComponent { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<(EClassJob ClassJob, int Category), EClassJob> _003C_003E9__13_0; - - public static Func<EClassJob, bool> _003C_003E9__13_1; - - public static Func<EClassJob, bool> _003C_003E9__13_2; - - public static Func<EClassJob, bool> _003C_003E9__13_3; - - public static Func<(EClassJob ClassJob, string Name), EClassJob> _003C_003E9__13_5; - - public static Func<(EClassJob ClassJob, string Name), string> _003C_003E9__13_6; - - public static Func<EClassJob, string> _003C_003E9__13_7; - - internal EClassJob _003C_002Ector_003Eb__13_0((EClassJob ClassJob, int Category) x) - { - return x.ClassJob; - } - - internal bool _003C_002Ector_003Eb__13_1(EClassJob x) - { - return x != EClassJob.Adventurer; - } - - internal bool _003C_002Ector_003Eb__13_2(EClassJob x) - { - int num = (_206D_200C_202A_200F_200B_200D_206D_200C_202E_206E_206B_202B_200F_202C_200C_200D_200E_200F_206B_202D_200F_200C_200D_206D_206A_202E_200F_200E_202E_200B_200E_206D_206D_206F_206A_202B_206C_206A_200D_206C_202E(x) ? (-1141664245) : (-1141664248)); - while (true) - { - int num2 = num; - int num3 = -1141664246; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0046; - case 1: - return false; - case 2: - return !_200B_202A_200C_200B_202D_206F_200D_200C_202A_206D_202A_206C_200C_200B_200D_202A_202E_206E_200E_206B_202B_200D_206E_202C_202A_206B_202B_206F_200B_206F_202C_202C_206F_206E_206E_202D_202D_202C_206D_200F_202E(x); - } - continue; - IL_0046: - num = -1141664248; - } - } - - internal bool _003C_002Ector_003Eb__13_3(EClassJob x) - { - return !_206D_206B_200F_200F_200D_200B_202C_202B_206B_200D_200D_200E_200C_206A_200C_200E_202D_206F_206C_200D_202B_202E_206A_202C_202E_200D_200C_206C_206A_200D_202A_206B_202C_200B_206E_206E_206D_202C_202D_206C_202E(x); - } - - internal EClassJob _003C_002Ector_003Eb__13_5((EClassJob ClassJob, string Name) x) - { - return x.ClassJob; - } - - internal string _003C_002Ector_003Eb__13_6((EClassJob ClassJob, string Name) x) - { - return x.Name; - } - - internal string _003C_002Ector_003Eb__13_7(EClassJob x) - { - return _202A_202E_200D_206F_202B_202B_206F_202C_206D_206C_200D_202C_206B_200D_200E_200F_206E_202D_200B_202E_200C_206A_200C_200C_200D_200C_206C_206A_200C_200B_206E_200B_200C_206A_206B_202A_206B_200D_206E_200C_202E(x); - } - - static bool _206D_200C_202A_200F_200B_200D_206D_200C_202E_206E_206B_202B_200F_202C_200C_200D_200E_200F_206B_202D_200F_200C_200D_206D_206A_202E_200F_200E_202E_200B_200E_206D_206D_206F_206A_202B_206C_206A_200D_206C_202E(EClassJob P_0) - { - return P_0.IsCrafter(); - } - - static bool _200B_202A_200C_200B_202D_206F_200D_200C_202A_206D_202A_206C_200C_200B_200D_202A_202E_206E_200E_206B_202B_200D_206E_202C_202A_206B_202B_206F_200B_206F_202C_202C_206F_206E_206E_202D_202D_202C_206D_200F_202E(EClassJob P_0) - { - return P_0.IsGatherer(); - } - - static bool _206D_206B_200F_200F_200D_200B_202C_202B_206B_200D_200D_200E_200C_206A_200C_200E_202D_206F_206C_200D_202B_202E_206A_202C_202E_200D_200C_206C_206A_200D_202A_206B_202C_200B_206E_206E_206D_202C_202D_206C_202E(EClassJob P_0) - { - return P_0.IsClass(); - } - - static string _202A_202E_200D_206F_202B_202B_206F_202C_206D_206C_200D_202C_206B_200D_200E_200F_206E_202D_200B_202E_200C_206A_200C_200C_200D_200C_206C_206A_200C_200B_206E_200B_200C_206A_206B_202A_206B_200D_206E_200C_202E(EClassJob P_0) - { - return P_0.ToFriendlyString(); - } - } - private static readonly List<(EClassJob ClassJob, string Name)> DefaultClassJobs; private readonly IDataManager _dataManager; @@ -123,13 +29,7 @@ internal sealed class GeneralConfigComponent : ConfigComponent private static readonly (EItemRewardType Type, string Label)[] RewardTypeOptions; - private readonly string[] _grandCompanyNames = new string[4] - { - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1980616671), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(372022407), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1674778799), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1041968074) - }; + private readonly string[] _grandCompanyNames = new string[4] { "Auto (starting city)", "Maelstrom", "Twin Adder", "Immortal Flames" }; private readonly EClassJob[] _classJobIds; @@ -141,41 +41,19 @@ internal sealed class GeneralConfigComponent : ConfigComponent public System.Action? OpenDependenciesTab { get; set; } - [MethodImpl(MethodImplOptions.NoInlining)] public GeneralConfigComponent(IDalamudPluginInterface pluginInterface, Configuration configuration, IDataManager dataManager, ClassJobUtils classJobUtils) : base(pluginInterface, configuration) { _dataManager = dataManager; List<EClassJob> sortedClassJobs = classJobUtils.SortedClassJobs.Select(((EClassJob ClassJob, int Category) x) => x.ClassJob).ToList(); - List<EClassJob> list = (from x in (from x in Enum.GetValues<EClassJob>() - where x != EClassJob.Adventurer - select x).Where(delegate(EClassJob x) - { - int num = (_003C_003Ec._206D_200C_202A_200F_200B_200D_206D_200C_202E_206E_206B_202B_200F_202C_200C_200D_200E_200F_206B_202D_200F_200C_200D_206D_206A_202E_200F_200E_202E_200B_200E_206D_206D_206F_206A_202B_206C_206A_200D_206C_202E(x) ? (-1141664245) : (-1141664248)); - while (true) - { - int num2 = num; - int num3 = -1141664246; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0046; - case 1: - return false; - case 2: - return !_003C_003Ec._200B_202A_200C_200B_202D_206F_200D_200C_202A_206D_202A_206C_200C_200B_200D_202A_202E_206E_200E_206B_202B_200D_206E_202C_202A_206B_202B_206F_200B_206F_202C_202C_206F_206E_206E_202D_202D_202C_206D_200F_202E(x); - } - continue; - IL_0046: - num = -1141664248; - } - }) - where !_003C_003Ec._206D_206B_200F_200F_200D_200B_202C_202B_206B_200D_200D_200E_200C_206A_200C_200E_202D_206F_206C_200D_202B_202E_206A_202C_202E_200D_200C_206C_206A_200D_202A_206B_202C_200B_206E_206E_206D_202C_202D_206C_202E(x) + List<EClassJob> list = (from x in Enum.GetValues<EClassJob>() + where x != EClassJob.Adventurer + where !x.IsCrafter() && !x.IsGatherer() + where !x.IsClass() orderby sortedClassJobs.IndexOf(x) select x).ToList(); _classJobIds = DefaultClassJobs.Select<(EClassJob, string), EClassJob>(((EClassJob ClassJob, string Name) x) => x.ClassJob).Concat(list).ToArray(); - _classJobNames = DefaultClassJobs.Select<(EClassJob, string), string>(((EClassJob ClassJob, string Name) x) => x.Name).Concat(list.Select((EClassJob x) => _003C_003Ec._202A_202E_200D_206F_202B_202B_206F_202C_206D_206C_200D_202C_206B_200D_200E_200F_206E_202D_200B_202E_200C_206A_200C_200C_200D_200C_206C_206A_200C_200B_206E_200B_200C_206A_206B_202A_206B_200D_206E_200C_202E(x))).ToArray(); + _classJobNames = DefaultClassJobs.Select<(EClassJob, string), string>(((EClassJob ClassJob, string Name) x) => x.Name).Concat(list.Select((EClassJob x) => x.ToFriendlyString())).ToArray(); } public override void DrawTab() @@ -191,1222 +69,376 @@ internal sealed class GeneralConfigComponent : ConfigComponent DrawRewardRedemption(); } - [MethodImpl(MethodImplOptions.NoInlining)] public void DrawGrandCompanySelector(float comboWidth) { int currentItem = (int)base.Configuration.General.GrandCompany; - _200E_206F_206E_206F_206B_206C_200F_202A_206C_202C_200F_200C_206E_202C_206C_206A_206C_206E_206F_200D_202B_200B_200E_202E_206C_200D_200F_206B_206D_202C_202D_202C_206A_206C_202C_200E_202B_202B_200C_202E_202E(comboWidth); - int num = ((!UiThemeUtils.ThemedCombo(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(174108271), ref currentItem, _grandCompanyNames, _grandCompanyNames.Length)) ? (-299917072) : (-299917069)); - while (true) + ImGui.SetNextItemWidth(comboWidth); + if (UiThemeUtils.ThemedCombo("Preferred Grand Company", ref currentItem, _grandCompanyNames, _grandCompanyNames.Length)) { - int num2 = num; - int num3 = -299917070; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return; - case 1: - base.Configuration.General.GrandCompany = (FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany)currentItem; - Save(); - num = -299917072; - break; - case 0: - num = -299917069; - break; - } + base.Configuration.General.GrandCompany = (FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany)currentItem; + Save(); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawCombatAndClass() { - UiThemeUtils.SectionHeader(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(917007349)); + UiThemeUtils.SectionHeader("Combat & Class"); (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple = UiThemeUtils.BeginCard(); Vector2 item = tuple.ContentStartPos; float item2 = tuple.AvailableWidth; ImDrawListPtr item3 = tuple.DrawList; - float num = _206A_206F_206D_200C_200C_200C_206B_202D_202C_206F_206D_202E_202A_202A_206A_206A_206F_202D_206A_202A_206E_206A_200B_202E_200F_200D_200D_200C_202B_202D_200E_206F_206D_206E_206B_206D_202A_200E_206F_202D_202E(_200C_206D_200F_202E_200F_200C_206A_200C_200F_206C_206B_202C_206F_200C_206A_200B_200E_206C_200F_202D_206A_202D_202E_200F_200F_206F_206C_200B_206D_200B_202C_200F_202C_206F_206B_206C_206D_202B_206B_200C_202E().X * 0.6f, 260f); - _202A_200B_200E_200D_206E_206F_206E_206E_200E_200B_200C_206F_206F_206E_206C_200F_202B_202A_200B_200C_202B_202C_206F_206F_202E_200C_202C_206E_200D_200C_202D_200B_200C_200F_202B_200D_200D_200F_200D_206F_202E(); - _200B_206A_200E_200E_206B_200F_200D_200D_206C_200B_206A_200F_206A_200C_206C_206D_200C_206D_200E_202D_206F_206F_202A_202D_202E_202C_206D_202E_206D_202A_206F_206E_206A_200C_202E_206A_206C_206D_200C_206B_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-441681196)); - _200F_206E_202D_200F_200B_200D_202C_202A_202B_200E_202A_200C_206E_202A_206F_206F_206C_206F_202E_200E_200B_206F_202D_200B_206E_202B_202B_202A_200E_206C_206F_206F_200D_202E_200C_200C_200F_202B_202D_200C_202E(); - string text = CombatModuleOptions.FirstOrDefault(((Configuration.ECombatModule Module, string Name, string[] InternalNames) x) => x.Module == base.Configuration.General.CombatModule).Name ?? global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2031702311); - _202C_200B_206E_206C_206F_200E_206F_200F_202A_200F_202A_202C_206F_202D_202D_206B_200B_202C_202C_206B_200E_202C_206D_200D_206D_202A_206A_200D_200F_202A_200B_206A_206F_200D_200E_200E_202D_206F_206B_206A_202E(ref UiThemeUtils.AccentColor, (ImU8String)text); - _200F_206E_202D_200F_200B_200D_202C_202A_202B_200E_202A_200C_206E_202A_206F_206F_206C_206F_202E_200E_200B_206F_202D_200B_206E_202B_202B_202A_200E_206C_206F_206F_200D_202E_200C_200C_200F_202B_202D_200C_202E(); - int num2 = ((!UiThemeUtils.PillButton(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-934450231), selected: false)) ? 1018794268 : 1018794270); - int currentItem = default(int); - while (true) + float num = MathF.Min(ImGui.GetContentRegionAvail().X * 0.6f, 260f); + ImGui.AlignTextToFramePadding(); + ImGui.TextUnformatted("Combat module:"); + ImGui.SameLine(); + string text = CombatModuleOptions.FirstOrDefault(((Configuration.ECombatModule Module, string Name, string[] InternalNames) x) => x.Module == base.Configuration.General.CombatModule).Name ?? "None"; + ImGui.TextColored(in UiThemeUtils.AccentColor, text); + ImGui.SameLine(); + if (UiThemeUtils.PillButton("Configure in Dependencies", selected: false)) { - int num3 = num2; - int num4 = 1018794269; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 4: - UiThemeUtils.EndCard(item, item2, item3); - return; - case 1: - DrawGrandCompanySelector(num); - currentItem = Array.IndexOf(_classJobIds, base.Configuration.General.CombatJob); - num2 = ((currentItem != -1) ? 1018794269 : 1018794271); - break; - case 2: - base.Configuration.General.CombatJob = EClassJob.Adventurer; - Save(); - currentItem = 0; - num2 = 1018794269; - break; - case 3: - { - System.Action? openDependenciesTab = OpenDependenciesTab; - if (openDependenciesTab == null) - { - goto case 1; - } - openDependenciesTab(); - num2 = 1018794268; - break; - } - case 6: - num2 = 1018794270; - break; - case 0: - num2 = ((!UiThemeUtils.SearchableCombo(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1658824067), ref currentItem, _classJobNames, ref _classJobSearchText, num)) ? 1018794265 : 1018794264); - break; - case 5: - base.Configuration.General.CombatJob = _classJobIds[currentItem]; - Save(); - num2 = 1018794265; - break; - } + OpenDependenciesTab?.Invoke(); } + DrawGrandCompanySelector(num); + int currentItem = Array.IndexOf(_classJobIds, base.Configuration.General.CombatJob); + if (currentItem == -1) + { + base.Configuration.General.CombatJob = EClassJob.Adventurer; + Save(); + currentItem = 0; + } + if (UiThemeUtils.SearchableCombo("Preferred Combat Job", ref currentItem, _classJobNames, ref _classJobSearchText, num)) + { + base.Configuration.General.CombatJob = _classJobIds[currentItem]; + Save(); + } + UiThemeUtils.EndCard(item, item2, item3); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawBehaviour() { - UiThemeUtils.SectionHeader(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-416136072)); + UiThemeUtils.SectionHeader("Behaviour"); var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); - UiThemeUtils.SubSectionHeader(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-549533391)); + UiThemeUtils.SubSectionHeader("Quest window"); bool value = base.Configuration.General.HideInAllInstances; - int num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(276124864), ref value)) ? 593225800 : 593225803); - bool value4 = default(bool); - bool value5 = default(bool); - int num13 = default(int); - while (true) + if (UiThemeUtils.WrappedCheckbox("Hide quest window in all instanced duties", ref value)) { - int num2 = num; - int num3 = 593225802; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + base.Configuration.General.HideInAllInstances = value; + Save(); + } + using (ImRaii.Disabled(!value)) + { + using (ImRaii.PushIndent()) { - case 0: - num = 593225803; - break; - case 1: - base.Configuration.General.HideInAllInstances = value; - Save(); - num = 593225800; - break; - case 2: - { - ImRaii.DisabledDisposable disabledDisposable = _202E_202D_200D_206D_200E_202C_206E_200F_200F_206A_206A_206B_206E_202A_206D_202A_206C_200F_200F_200F_206E_200E_206E_202A_202C_206B_206B_200E_206C_200F_202B_206E_200B_206B_206A_206D_206E_200B_206B_202B_202E(!value); - try + bool value2 = base.Configuration.Advanced.ShowWindowInInstances; + if (UiThemeUtils.WrappedCheckbox("Show quest window in instances anyway", ref value2, "When enabled, the quest window will always be shown in instanced duties, ignoring the 'Hide quest window in all instanced duties' setting above.")) { - ImRaii.IndentDisposable indentDisposable = _200F_206D_206F_202A_202D_206C_206D_200B_200D_200B_200F_202C_206C_206C_200D_206D_200B_206F_206E_200D_206E_206E_202E_202E_200C_206E_202C_202A_206D_206F_202E_200F_206E_206B_206E_202D_202B_202A_206E_200C_202E(1, true); - try - { - bool value2 = base.Configuration.Advanced.ShowWindowInInstances; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1505028076), ref value2, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(127940536))) ? 611209518 : 611209519); - while (true) - { - int num7 = num; - num3 = 611209518; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 611209519; - break; - case 1: - base.Configuration.Advanced.ShowWindowInInstances = value2; - Save(); - num = 611209518; - break; - case 0: - goto end_IL_0132; - } - continue; - end_IL_0132: - break; - } - } - finally - { - num = ((indentDisposable == null) ? 1960475111 : 1960475110); - while (true) - { - int num8 = num; - num3 = 1960475111; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1960475110; - break; - case 0: - goto end_IL_01b2; - case 1: - _200E_206B_202E_202B_200E_206B_206D_200C_202A_202E_206E_206E_202A_202B_202E_206E_206D_200B_200D_200F_206C_202C_200B_206A_202A_202D_206A_206F_206E_206F_202D_206F_202D_202A_200C_206D_206C_206B_202B_206F_202E((IDisposable)indentDisposable); - num = 1960475111; - break; - } - continue; - end_IL_01b2: - break; - } - } + base.Configuration.Advanced.ShowWindowInInstances = value2; + Save(); } - finally - { - num = ((disabledDisposable == null) ? (-1971968134) : (-1971968135)); - while (true) - { - int num9 = num; - num3 = -1971968136; - num4 = num9; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1971968135; - break; - case 2: - goto end_IL_021d; - case 1: - _200E_206B_202E_202B_200E_206B_206D_200C_202A_202E_206E_206E_202A_202B_202E_206E_206D_200B_200D_200F_206C_202C_200B_206A_202A_202D_206A_206F_206E_206F_202D_206F_202D_202A_200C_206D_206C_206B_202B_206F_202E((IDisposable)disabledDisposable); - num = -1971968134; - break; - } - continue; - end_IL_021d: - break; - } - } - bool value3 = base.Configuration.General.ShowChangelogOnUpdate; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(870916420), ref value3)) ? 749812627 : 749812635); - while (true) - { - int num10 = num; - num3 = 749812627; - num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 10: - num = 749812635; - break; - case 0: - UiThemeUtils.SubSectionHeader(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(514685832)); - value4 = base.Configuration.General.UseEscToCancelQuesting; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1283180312), ref value4)) ? 749812626 : 749812632); - break; - case 3: - base.Configuration.General.ShowIncompleteSeasonalEvents = !base.Configuration.General.ShowIncompleteSeasonalEvents; - Save(); - num = 749812629; - break; - case 2: - base.Configuration.General.StopOnPlayerInput = value5; - Save(); - num = 749812630; - break; - case 7: - num = ((num13 == 1) ? 749812634 : 749812631); - break; - case 1: - value5 = base.Configuration.General.StopOnPlayerInput; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1148189481), ref value5)) ? 749812630 : 749812625); - break; - case 5: - { - UiThemeUtils.SubSectionHeader(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(436457563)); - InlineArray2<UiThemeUtils.GridCheckbox> buffer = default(InlineArray2<UiThemeUtils.GridCheckbox>); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray2<UiThemeUtils.GridCheckbox>, UiThemeUtils.GridCheckbox>(ref buffer, 0) = new UiThemeUtils.GridCheckbox(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1859570277), base.Configuration.General.ShowIncompleteSeasonalEvents); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray2<UiThemeUtils.GridCheckbox>, UiThemeUtils.GridCheckbox>(ref buffer, 1) = new UiThemeUtils.GridCheckbox(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1405430146), base.Configuration.General.HideSeasonalEventsFromJournalProgress); - ReadOnlySpan<UiThemeUtils.GridCheckbox> items = global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<InlineArray2<UiThemeUtils.GridCheckbox>, UiThemeUtils.GridCheckbox>(in buffer, 2); - num13 = UiThemeUtils.CheckboxGrid(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1077295308), items); - num = ((num13 == 0) ? 749812624 : 749812628); - break; - } - case 11: - base.Configuration.General.UseEscToCancelQuesting = value4; - Save(); - num = 749812626; - break; - case 6: - UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); - return; - case 4: - num = 749812629; - break; - case 9: - base.Configuration.General.HideSeasonalEventsFromJournalProgress = !base.Configuration.General.HideSeasonalEventsFromJournalProgress; - Save(); - num = 749812629; - break; - case 8: - base.Configuration.General.ShowChangelogOnUpdate = value3; - Save(); - num = 749812627; - break; - } - } - } } } + bool value3 = base.Configuration.General.ShowChangelogOnUpdate; + if (UiThemeUtils.WrappedCheckbox("Show changelog window when plugin updates", ref value3)) + { + base.Configuration.General.ShowChangelogOnUpdate = value3; + Save(); + } + UiThemeUtils.SubSectionHeader("Manual control"); + bool value4 = base.Configuration.General.UseEscToCancelQuesting; + if (UiThemeUtils.WrappedCheckbox("Double tap ESC to cancel questing/movement", ref value4)) + { + base.Configuration.General.UseEscToCancelQuesting = value4; + Save(); + } + bool value5 = base.Configuration.General.StopOnPlayerInput; + if (UiThemeUtils.WrappedCheckbox("Stop automation when manually moving character", ref value5)) + { + base.Configuration.General.StopOnPlayerInput = value5; + Save(); + } + UiThemeUtils.SubSectionHeader("Seasonal events"); + InlineArray2<UiThemeUtils.GridCheckbox> buffer = default(InlineArray2<UiThemeUtils.GridCheckbox>); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray2<UiThemeUtils.GridCheckbox>, UiThemeUtils.GridCheckbox>(ref buffer, 0) = new UiThemeUtils.GridCheckbox("Show details for incomplete seasonal events", base.Configuration.General.ShowIncompleteSeasonalEvents); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray2<UiThemeUtils.GridCheckbox>, UiThemeUtils.GridCheckbox>(ref buffer, 1) = new UiThemeUtils.GridCheckbox("Hide Seasonal Events from Journal Progress", base.Configuration.General.HideSeasonalEventsFromJournalProgress); + ReadOnlySpan<UiThemeUtils.GridCheckbox> items = global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<InlineArray2<UiThemeUtils.GridCheckbox>, UiThemeUtils.GridCheckbox>(in buffer, 2); + switch (UiThemeUtils.CheckboxGrid("seasonal", items)) + { + case 0: + base.Configuration.General.ShowIncompleteSeasonalEvents = !base.Configuration.General.ShowIncompleteSeasonalEvents; + Save(); + break; + case 1: + base.Configuration.General.HideSeasonalEventsFromJournalProgress = !base.Configuration.General.HideSeasonalEventsFromJournalProgress; + Save(); + break; + } + UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawQuesting() { - UiThemeUtils.SectionHeader(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1813312374)); + UiThemeUtils.SectionHeader("Questing"); (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple = UiThemeUtils.BeginCard(); Vector2 item = tuple.ContentStartPos; float item2 = tuple.AvailableWidth; ImDrawListPtr item3 = tuple.DrawList; bool value = base.Configuration.General.AutoSolveQte; - int num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-726681840), ref value, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2073991844))) ? (-2112684850) : (-2112684849)); - bool value2 = default(bool); - bool value4 = default(bool); - bool value5 = default(bool); - bool value6 = default(bool); - while (true) + if (UiThemeUtils.WrappedCheckbox("Automatically solve Quick Time Events (QTEs)", ref value, "Automatically mashes the button during Active Time Maneuver (ATM) prompts that appear in certain duties and quest battles.")) { - int num2 = num; - int num3 = -2112684850; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + base.Configuration.General.AutoSolveQte = value; + Save(); + } + bool value2 = base.Configuration.General.AutoSnipe; + if (UiThemeUtils.WrappedCheckbox("Automatically complete snipe quests", ref value2, "Automatically completes sniping minigames introduced in Stormblood. When enabled, snipe targets are instantly hit without manual aiming.")) + { + base.Configuration.General.AutoSnipe = value2; + Save(); + } + bool value3 = base.Configuration.General.CinemaMode; + if (UiThemeUtils.WrappedCheckbox("Cinema Mode (watch cutscenes)", ref value3, "When enabled, cutscenes will NOT be automatically skipped. This allows you to experience the story while Questionable handles navigation, combat, and other gameplay automation.\n\nRecommended for first-time story playthroughs.")) + { + base.Configuration.General.CinemaMode = value3; + Save(); + } + bool value4 = base.Configuration.General.ConfigureTextAdvance; + if (UiThemeUtils.WrappedCheckbox("Automatically configure TextAdvance with the recommended settings", ref value4)) + { + base.Configuration.General.ConfigureTextAdvance = value4; + Save(); + } + bool value5 = base.Configuration.General.DeathRecoveryEnabled; + if (UiThemeUtils.WrappedCheckbox("Automatically recover and resume after dying", ref value5, "When enabled, dying outside of a duty will not stop automation. After respawning, Questionable will automatically route back to continue the current quest step.")) + { + base.Configuration.General.DeathRecoveryEnabled = value5; + Save(); + } + using (ImRaii.Disabled(!value5)) + { + using (ImRaii.PushIndent()) { - case 3: - value2 = base.Configuration.General.DeathRecoveryEnabled; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1324461342), ref value2, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2100842061))) ? (-2112684855) : (-2112684857)); - break; - case 5: - base.Configuration.General.CinemaMode = value4; - Save(); - num = -2112684856; - break; - case 1: - base.Configuration.General.AutoSolveQte = value; - Save(); - num = -2112684850; - break; - case 4: - base.Configuration.General.AutoSnipe = value5; - Save(); - num = -2112684860; - break; - case 9: - base.Configuration.General.DeathRecoveryEnabled = value2; - Save(); - num = -2112684855; - break; - case 6: - value6 = base.Configuration.General.ConfigureTextAdvance; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1845660240), ref value6)) ? (-2112684851) : (-2112684858)); - break; - case 8: - base.Configuration.General.ConfigureTextAdvance = value6; - Save(); - num = -2112684851; - break; - case 0: - value5 = base.Configuration.General.AutoSnipe; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-572362739), ref value5, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-58217097))) ? (-2112684860) : (-2112684854)); - break; - case 10: - value4 = base.Configuration.General.CinemaMode; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-931757293), ref value4, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-550109930))) ? (-2112684856) : (-2112684853)); - break; - case 2: - num = -2112684849; - break; - case 7: - { - ImRaii.DisabledDisposable disabledDisposable = _202E_202D_200D_206D_200E_202C_206E_200F_200F_206A_206A_206B_206E_202A_206D_202A_206C_200F_200F_200F_206E_200E_206E_202A_202C_206B_206B_200E_206C_200F_202B_206E_200B_206B_206A_206D_206E_200B_206B_202B_202E(!value2); - try + int value6 = base.Configuration.General.MaxDeathsBeforeStop; + if (UiThemeUtils.AccentSliderInt("Max deaths before stopping", ref value6, 1, 10)) { - ImRaii.IndentDisposable indentDisposable = _200F_206D_206F_202A_202D_206C_206D_200B_200D_200B_200F_202C_206C_206C_200D_206D_200B_206F_206E_200D_206E_206E_202E_202E_200C_206E_202C_202A_206D_206F_202E_200F_206E_206B_206E_202D_202B_202A_206E_200C_202E(1, true); - try - { - int value3 = base.Configuration.General.MaxDeathsBeforeStop; - num = ((!UiThemeUtils.AccentSliderInt(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-444997738), ref value3, 1, 10)) ? 1588037696 : 1588037699); - while (true) - { - int num5 = num; - num3 = 1588037698; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1588037699; - break; - case 1: - base.Configuration.General.MaxDeathsBeforeStop = value3; - Save(); - num = 1588037696; - break; - case 2: - { - _202E_206F_200C_200B_206A_206B_202A_200F_206E_200D_202B_206B_200D_202D_202D_202E_206A_206E_206C_206D_202B_202A_206D_202E_202E_202A_202C_202E_202D_200C_206B_206F_206B_206D_200B_206D_200E_206E_200B_206F_202E(0f); - ImU8String imU8String = new ImU8String(66, 1); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2118003974)); - imU8String.AppendFormatted(value3); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-270420442)); - _202C_200B_206E_206C_206F_200E_206F_200F_202A_200F_202A_202C_206F_202D_202D_206B_200B_202C_202C_206B_200E_202C_206D_200D_206D_202A_206A_200D_200F_202A_200B_206A_206F_200D_200E_200E_202D_206F_206B_206A_202E(ref UiThemeUtils.MutedTextColor, imU8String); - _206D_202E_200B_200D_200C_202B_202C_206D_200E_202A_200B_200B_200D_202C_206B_200F_206F_206C_206B_206C_206C_206D_200D_206B_206B_206E_200C_202C_206B_200F_200B_202E_206F_202A_202C_202E_200B_206D_200E_200F_202E(); - goto end_IL_02f8; - } - } - continue; - end_IL_02f8: - break; - } - } - finally - { - num = ((indentDisposable == null) ? (-1393688015) : (-1393688016)); - while (true) - { - int num6 = num; - num3 = -1393688015; - num4 = num6; - int num7 = num4 + num3; - int num8 = num4 & num3; - switch (num7 - (num8 + num8)) - { - case 2: - num = -1393688016; - break; - case 0: - goto end_IL_03c8; - case 1: - _200E_206B_202E_202B_200E_206B_206D_200C_202A_202E_206E_206E_202A_202B_202E_206E_206D_200B_200D_200F_206C_202C_200B_206A_202A_202D_206A_206F_206E_206F_202D_206F_202D_202A_200C_206D_206C_206B_202B_206F_202E((IDisposable)indentDisposable); - num = -1393688015; - break; - } - continue; - end_IL_03c8: - break; - } - } + base.Configuration.General.MaxDeathsBeforeStop = value6; + Save(); } - finally - { - num = ((disabledDisposable == null) ? 1396766762 : 1396766763); - while (true) - { - int num9 = num; - num3 = 1396766762; - num4 = num9; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1396766763; - break; - case 1: - _200E_206B_202E_202B_200E_206B_206D_200C_202A_202E_206E_206E_202A_202B_202E_206E_206D_200B_200D_200F_206C_202C_200B_206A_202A_202D_206A_206F_206E_206F_202D_206F_202D_202A_200C_206D_206C_206B_202B_206F_202E((IDisposable)disabledDisposable); - num = 1396766762; - break; - case 0: - goto end_IL_0435; - } - continue; - end_IL_0435: - break; - } - } - UiThemeUtils.EndCard(item, item2, item3); - return; - } + ImGui.PushTextWrapPos(0f); + ImU8String text = new ImU8String(66, 1); + text.AppendLiteral("Automation will stop after "); + text.AppendFormatted(value6); + text.AppendLiteral(" consecutive death(s) on the same step."); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, text); + ImGui.PopTextWrapPos(); } } + UiThemeUtils.EndCard(item, item2, item3); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawEquipment() { - UiThemeUtils.SectionHeader(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-546915505)); + UiThemeUtils.SectionHeader("Equipment"); (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple = UiThemeUtils.BeginCard(); Vector2 item = tuple.ContentStartPos; float item2 = tuple.AvailableWidth; ImDrawListPtr item3 = tuple.DrawList; bool value = base.Configuration.General.RepairGear; - int num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1818298155), ref value, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2041209117))) ? 1529926213 : 1529926214); - string text = default(string); - while (true) + if (UiThemeUtils.WrappedCheckbox("Repair gear automatically", ref value, "Repairs equipped gear when its condition gets low. Uses dark matter self-repair when your crafter levels and inventory allow it, otherwise visits a nearby mender (teleporting to a city if needed). If gear is critically damaged and no repair is possible, automation stops before entering a duty.")) { - int num2 = num; - int num3 = 1529926215; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + base.Configuration.General.RepairGear = value; + Save(); + } + using (ImRaii.Disabled(!value)) + { + using (ImRaii.PushIndent()) { - case 0: - num = 1529926214; - break; - case 1: - base.Configuration.General.RepairGear = value; - Save(); - num = 1529926213; - break; - case 2: - { - ImRaii.DisabledDisposable disabledDisposable = _202E_202D_200D_206D_200E_202C_206E_200F_200F_206A_206A_206B_206E_202A_206D_202A_206C_200F_200F_200F_206E_200E_206E_202A_202C_206B_206B_200E_206C_200F_202B_206E_200B_206B_206A_206D_206E_200B_206B_202B_202E(!value); - try + int value2 = base.Configuration.General.RepairThresholdPercent; + if (UiThemeUtils.AccentSliderInt("Repair below condition (%)", ref value2, 10, 90)) { - ImRaii.IndentDisposable indentDisposable = _200F_206D_206F_202A_202D_206C_206D_200B_200D_200B_200F_202C_206C_206C_200D_206D_200B_206F_206E_200D_206E_206E_202E_202E_200C_206E_202C_202A_206D_206F_202E_200F_206E_206B_206E_202D_202B_202A_206E_200C_202E(1, true); - try - { - int value2 = base.Configuration.General.RepairThresholdPercent; - num = ((!UiThemeUtils.AccentSliderInt(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1484219829), ref value2, 10, 90)) ? (-1794286477) : (-1794286480)); - while (true) - { - int num5 = num; - num3 = -1794286479; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1794286480; - break; - case 1: - base.Configuration.General.RepairThresholdPercent = value2; - Save(); - num = -1794286477; - break; - case 2: - goto end_IL_0129; - } - continue; - end_IL_0129: - break; - } - } - finally - { - num = ((indentDisposable == null) ? (-534230182) : (-534230183)); - while (true) - { - int num6 = num; - num3 = -534230184; - num4 = num6; - int num7 = num4 + num3; - int num8 = num4 & num3; - switch (num7 - (num8 + num8)) - { - case 0: - num = -534230183; - break; - case 2: - goto end_IL_01a9; - case 1: - _200E_206B_202E_202B_200E_206B_206D_200C_202A_202E_206E_206E_202A_202B_202E_206E_206D_200B_200D_200F_206C_202C_200B_206A_202A_202D_206A_206F_206E_206F_202D_206F_202D_202A_200C_206D_206C_206B_202B_206F_202E((IDisposable)indentDisposable); - num = -534230182; - break; - } - continue; - end_IL_01a9: - break; - } - } + base.Configuration.General.RepairThresholdPercent = value2; + Save(); } - finally - { - num = ((disabledDisposable == null) ? (-1868244215) : (-1868244214)); - while (true) - { - int num9 = num; - num3 = -1868244213; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 2: - goto end_IL_0216; - case 1: - _200E_206B_202E_202B_200E_206B_206D_200C_202A_202E_206E_206E_202A_202B_202E_206E_206D_200B_200D_200F_206C_202C_200B_206A_202A_202D_206A_206F_206E_206F_202D_206F_202D_202A_200C_206D_206C_206B_202B_206F_202E((IDisposable)disabledDisposable); - num = -1868244215; - break; - case 0: - num = -1868244214; - break; - } - continue; - end_IL_0216: - break; - } - } - _200C_206B_200D_202D_200D_200E_206F_202D_202A_206C_200C_206E_206E_200B_202E_200D_202C_202E_202A_202E_202C_206E_200C_200B_206C_206A_202B_202D_202E_202E_200F_206E_200F_200F_206C_206D_200C_202B_202C_202C_202E(); - string[] array = new string[3] - { - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2046292830), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1746015917), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-707924028) - }; - int currentItem = (int)base.Configuration.General.EquipMode; - switch (base.Configuration.General.EquipMode) - { - default: - num = 1656766632; - goto IL_02db; - case Questionable.Configuration.EEquipMode.Smart: - text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1519265932); - num = 1656766639; - goto IL_02db; - case Questionable.Configuration.EEquipMode.GameRecommended: - goto IL_033b; - case Questionable.Configuration.EEquipMode.Disabled: - goto IL_035f; - IL_02db: - while (true) - { - int num12 = num; - num3 = 1656766636; - num4 = num12; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - goto end_IL_02db; - case 4: - num = 1656766634; - break; - case 0: - goto IL_033b; - case 5: - num = 1656766632; - break; - case 2: - goto IL_035f; - case 6: - text = string.Empty; - num = 1656766639; - break; - case 3: - { - string tooltip = text; - _200E_206F_206E_206F_206B_206C_200F_202A_206C_202C_200F_200C_206E_202C_206C_206A_206C_206E_206F_200D_202B_200B_200E_202E_206C_200D_200F_206B_206D_202C_202D_202C_206A_206C_202C_200E_202B_202B_200C_202E_202E(_206A_206F_206D_200C_200C_200C_206B_202D_202C_206F_206D_202E_202A_202A_206A_206A_206F_202D_206A_202A_206E_206A_200B_202E_200F_200D_200D_200C_202B_202D_200E_206F_206D_206E_206B_206D_202A_200E_206F_202D_202E(260f, _200C_206D_200F_202E_200F_200C_206A_200C_200F_206C_206B_202C_206F_200C_206A_200B_200E_206C_200F_202D_206A_202D_202E_200F_200F_206F_206C_200B_206D_200B_202C_200F_202C_206F_206B_206C_206D_202B_206B_200C_202E().X)); - if (UiThemeUtils.ThemedCombo(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(960132524), ref currentItem, array, array.Length)) - { - base.Configuration.General.EquipMode = (Configuration.EEquipMode)currentItem; - Save(); - } - _200F_206E_202D_200F_200B_200D_202C_202A_202B_200E_202A_200C_206E_202A_206F_206F_206C_206F_202E_200E_200B_206F_202D_200B_206E_202B_202B_202A_200E_206C_206F_206F_200D_202E_200C_200C_200F_202B_202D_200C_202E(); - UiThemeUtils.InfoIcon(tooltip); - disabledDisposable = _202E_202D_200D_206D_200E_202C_206E_200F_200F_206A_206A_206B_206E_202A_206D_202A_206C_200F_200F_200F_206E_200E_206E_202A_202C_206B_206B_200E_206C_200F_202B_206E_200B_206B_206A_206D_206E_200B_206B_202B_202E(base.Configuration.General.EquipMode != Questionable.Configuration.EEquipMode.Smart); - try - { - ImRaii.IndentDisposable indentDisposable = _200F_206D_206F_202A_202D_206C_206D_200B_200D_200B_200F_202C_206C_206C_200D_206D_200B_206F_206E_200D_206E_206E_202E_202E_200C_206E_202C_202A_206D_206F_202E_200F_206E_206B_206E_202D_202B_202A_206E_200C_202E(1, true); - try - { - bool value3 = base.Configuration.General.PreserveGearset; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1629950991), ref value3, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2121728621))) ? 816050186 : 816050185); - while (true) - { - int num13 = num; - num3 = 816050187; - num4 = num13; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 816050185; - break; - case 2: - base.Configuration.General.PreserveGearset = value3; - Save(); - num = 816050186; - break; - case 1: - goto end_IL_0450; - } - continue; - end_IL_0450: - break; - } - } - finally - { - num = ((indentDisposable == null) ? (-1480534882) : (-1480534881)); - while (true) - { - int num14 = num; - num3 = -1480534882; - num4 = num14; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1480534881; - break; - case 1: - _200E_206B_202E_202B_200E_206B_206D_200C_202A_202E_206E_206E_202A_202B_202E_206E_206D_200B_200D_200F_206C_202C_200B_206A_202A_202D_206A_206F_206E_206F_202D_206F_202D_202A_200C_206D_206C_206B_202B_206F_202E((IDisposable)indentDisposable); - num = -1480534882; - break; - case 0: - goto end_IL_04d0; - } - continue; - end_IL_04d0: - break; - } - } - } - finally - { - num = ((disabledDisposable == null) ? (-1986177713) : (-1986177716)); - while (true) - { - int num15 = num; - num3 = -1986177715; - num4 = num15; - int num16 = num4 + num3; - int num17 = num4 & num3; - switch (num16 - (num17 + num17)) - { - case 2: - goto end_IL_053b; - case 1: - _200E_206B_202E_202B_200E_206B_206D_200C_202A_202E_206E_206E_202A_202B_202E_206E_206D_200B_200D_200F_206C_202C_200B_206A_202A_202D_206A_206F_206E_206F_202D_206F_202D_202A_200C_206D_206C_206B_202B_206F_202E((IDisposable)disabledDisposable); - num = -1986177713; - break; - case 0: - num = -1986177716; - break; - } - continue; - end_IL_053b: - break; - } - } - UiThemeUtils.EndCard(item, item2, item3); - return; - } - } - continue; - end_IL_02db: - break; - } - goto case Questionable.Configuration.EEquipMode.Smart; - IL_035f: - text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1648621206); - num = 1656766639; - goto IL_02db; - IL_033b: - text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-340342814); - num = 1656766639; - goto IL_02db; - } - } } } + ImGui.Spacing(); + string[] array = new string[3] { "Smart", "Game recommended", "Disabled" }; + int currentItem = (int)base.Configuration.General.EquipMode; + object tooltip = base.Configuration.General.EquipMode switch + { + Questionable.Configuration.EEquipMode.Smart => "Picks gear with job-appropriate stats (and weapon damage for weapons)\ninstead of the game's item-level-only recommendation, which can pick\nwrong-role gear (default)", + Questionable.Configuration.EEquipMode.GameRecommended => "The game's built-in Equip Recommended - item level only", + Questionable.Configuration.EEquipMode.Disabled => "Skips equip-recommended quest steps entirely; gear is never changed", + _ => string.Empty, + }; + ImGui.SetNextItemWidth(MathF.Min(260f, ImGui.GetContentRegionAvail().X)); + if (UiThemeUtils.ThemedCombo("Equip recommended gear", ref currentItem, array, array.Length)) + { + base.Configuration.General.EquipMode = (Configuration.EEquipMode)currentItem; + Save(); + } + ImGui.SameLine(); + UiThemeUtils.InfoIcon((string)tooltip); + using (ImRaii.Disabled(base.Configuration.General.EquipMode != Questionable.Configuration.EEquipMode.Smart)) + { + using (ImRaii.PushIndent()) + { + bool value3 = base.Configuration.General.PreserveGearset; + if (UiThemeUtils.WrappedCheckbox("Preserve gearsets", ref value3, "Applies gear upgrades by moving items individually instead of rewriting your current gearset. Slower, but your saved gearset entries stay untouched.")) + { + base.Configuration.General.PreserveGearset = value3; + Save(); + } + } + } + UiThemeUtils.EndCard(item, item2, item3); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawRewardRedemption() { - UiThemeUtils.SectionHeader(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(788272027)); + UiThemeUtils.SectionHeader("Reward redemption"); var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); - _200D_202E_200E_206C_202A_200C_200B_200F_202C_202C_206F_200D_202A_206D_206E_202C_206E_202D_200F_206C_206C_202D_202D_200F_202E_206F_200C_206A_202D_200F_200F_202B_200C_206F_202E_200F_206E_200D_202E_202E_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(759905692)); - _200C_206B_200D_202D_200D_200E_206F_202D_202A_206C_200C_206E_206E_200B_202E_200D_202C_202E_202A_202E_202C_206E_200C_200B_206C_206A_202B_202D_202E_202E_200F_206E_200F_200F_206C_206D_200C_202B_202C_202C_202E(); + ImGui.TextWrapped("Quest-reward items in your inventory are used automatically when you accept a quest. Choose which types to redeem."); + ImGui.Spacing(); UiThemeUtils.GridCheckbox[] array = new UiThemeUtils.GridCheckbox[RewardTypeOptions.Length]; - int num = 0; - int num2 = 257989418; - EItemRewardType item = default(EItemRewardType); - int num9 = default(int); - while (true) + for (int i = 0; i < RewardTypeOptions.Length; i++) { - int num3 = num2; - int num4 = 257989416; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + array[i] = new UiThemeUtils.GridCheckbox(RewardTypeOptions[i].Label, !base.Configuration.General.DisabledRewardTypes.Contains(RewardTypeOptions[i].Type)); + } + int num = UiThemeUtils.CheckboxGrid("rewards", array); + if (num >= 0) + { + EItemRewardType item = RewardTypeOptions[num].Type; + if (!base.Configuration.General.DisabledRewardTypes.Remove(item)) { - default: - continue; - case 6: - item = RewardTypeOptions[num9].Type; - num2 = (base.Configuration.General.DisabledRewardTypes.Remove(item) ? 257989417 : 257989423); - continue; - case 7: base.Configuration.General.DisabledRewardTypes.Add(item); - num2 = 257989417; - continue; - case 3: - if (!base.Configuration.General.DisabledRewardTypes.Contains(EItemRewardType.Coffer)) - { - num2 = 257989408; - continue; - } - break; - case 5: - num2 = 257989418; - continue; - case 2: - num2 = ((num < RewardTypeOptions.Length) ? 257989420 : 257989416); - continue; - case 4: - { - array[num] = new UiThemeUtils.GridCheckbox(RewardTypeOptions[num].Label, !base.Configuration.General.DisabledRewardTypes.Contains(RewardTypeOptions[num].Type)); - int num10 = num; - num4 = 1; - num5 = num10; - int num11 = num5 ^ num4; - int num12 = num5 & num4; - num = num11 + (num12 + num12); - num2 = 257989418; - continue; } - case 1: - Save(); - num2 = 257989419; - continue; - case 0: - num9 = UiThemeUtils.CheckboxGrid(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1725542329), array); - num2 = ((num9 < 0) ? 257989419 : 257989422); - continue; - case 8: - { - ImRaii.IndentDisposable indentDisposable = _200F_206D_206F_202A_202D_206C_206D_200B_200D_200B_200F_202C_206C_206C_200D_206D_200B_206F_206E_200D_206E_206E_202E_202E_200C_206E_202C_202A_206D_206F_202E_200F_206E_206B_206E_202D_202B_202A_206E_200C_202E(1, true); - try - { - DrawCofferGearsetPicker(); - } - finally - { - num2 = ((indentDisposable == null) ? (-1326572592) : (-1326572589)); - while (true) - { - int num6 = num2; - num4 = -1326572590; - num5 = num6; - int num7 = num5 + num4; - int num8 = num5 & num4; - switch (num7 - (num8 + num8)) - { - case 2: - goto end_IL_024c; - case 1: - _200E_206B_202E_202B_200E_206B_206D_200C_202A_202E_206E_206E_202A_202B_202E_206E_206D_200B_200D_200F_206C_202C_200B_206A_202A_202D_206A_206F_206E_206F_202D_206F_202D_202A_200C_206D_206C_206B_202B_206F_202E((IDisposable)indentDisposable); - num2 = -1326572592; - break; - case 0: - num2 = -1326572589; - break; - } - continue; - end_IL_024c: - break; - } - } - break; - } - } - break; + Save(); } - _200C_206B_200D_202D_200D_200E_206F_202D_202A_206C_200C_206E_206E_200B_202E_200D_202C_202E_202A_202E_202C_206E_200C_200B_206C_206A_202B_202D_202E_202E_200F_206E_200F_200F_206C_206D_200C_202B_202C_202C_202E(); - bool value = base.Configuration.General.SkipTradableRewards; - num2 = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(35669265), ref value, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1903657623))) ? 1280626755 : 1280626754); - while (true) + if (!base.Configuration.General.DisabledRewardTypes.Contains(EItemRewardType.Coffer)) { - int num13 = num2; - int num4 = 1280626755; - int num5 = num13; - int num14 = num5 + num4; - int num15 = num5 & num4; - switch (num14 - (num15 + num15)) + using (ImRaii.PushIndent()) { - case 2: - num2 = 1280626754; - break; - case 1: - base.Configuration.General.SkipTradableRewards = value; - Save(); - num2 = 1280626755; - break; - case 0: - UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); - return; + DrawCofferGearsetPicker(); } } + ImGui.Spacing(); + bool value = base.Configuration.General.SkipTradableRewards; + if (UiThemeUtils.WrappedCheckbox("Skip tradable rewards", ref value, "Leaves tradable reward items in your inventory (so you can sell them) instead of using them. Untradable rewards are still redeemed.")) + { + base.Configuration.General.SkipTradableRewards = value; + Save(); + } + UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void DrawCofferGearsetPicker() { RaptureGearsetModule* ptr = RaptureGearsetModule.Instance(); - int num = ((ptr != null) ? 1462795241 : 1462795247); - int valueOrDefault = default(int); - string text = default(string); - int? cofferGearsetIndex = default(int?); - ClassJob row2 = default(ClassJob); - List<string> list2 = default(List<string>); - string item = default(string); - List<int?> list = default(List<int?>); - int num12 = default(int); - ExcelSheet<ClassJob> excelSheet = default(ExcelSheet<ClassJob>); - ClassJob row = default(ClassJob); - int currentItem = default(int); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = 1462795246; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + int? cofferGearsetIndex = base.Configuration.General.CofferGearsetIndex; + string text = "Current Job"; + if (cofferGearsetIndex.HasValue) + { + int valueOrDefault = cofferGearsetIndex.GetValueOrDefault(); + if (ptr->IsValidGearset(valueOrDefault)) { - case 0: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler4 = new DefaultInterpolatedStringHandler(18, 1); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1234272716)); - int num24 = valueOrDefault; - num3 = 1; - num4 = num24; - defaultInterpolatedStringHandler4.AppendFormatted((num4 | num3) + (num4 & num3)); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2121104947)); - text = defaultInterpolatedStringHandler4.ToStringAndClear(); - num = 1462795244; - break; - } - case 7: - cofferGearsetIndex = base.Configuration.General.CofferGearsetIndex; - text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2088550031); - num = ((!cofferGearsetIndex.HasValue) ? 1462795244 : 1462795242); - break; - case 5: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(10, 2); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(655625586)); - int num23 = valueOrDefault; - num3 = 1; - num4 = num23; - defaultInterpolatedStringHandler3.AppendFormatted((num4 | num3) + (num4 & num3)); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2035955381)); - defaultInterpolatedStringHandler3.AppendFormatted(row2.Abbreviation.ExtractText()); - text = defaultInterpolatedStringHandler3.ToStringAndClear(); - num = 1462795244; - break; - } - case 1: - return; - case 6: - num = 1462795247; - break; - case 4: - valueOrDefault = cofferGearsetIndex.GetValueOrDefault(); - num = ((!ptr->IsValidGearset(valueOrDefault)) ? 1462795246 : 1462795245); - break; - case 3: - { - RaptureGearsetModule.GearsetEntry* gearset2 = ptr->GetGearset(valueOrDefault); - num = ((!_dataManager.GetExcelSheet<ClassJob>().TryGetRow(gearset2->ClassJob, out row2)) ? 1462795244 : 1462795243); - break; - } - case 2: - { - _202D_206E_206D_202D_206C_202B_202C_200B_206E_206F_206D_206E_206C_202D_206D_200D_200B_200B_202B_202A_200B_202D_202A_200E_206E_200C_206B_206A_200D_206D_200C_202B_202B_200F_202E_202D_200D_206A_206E_206F_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1630114982)); - _206C_202C_200B_202B_200B_206F_202D_200C_206A_202D_202E_206E_206B_202A_202D_202C_206B_202B_206D_202C_202B_200D_206C_206F_206B_206C_202A_200C_202D_206E_206C_202B_206C_202D_202B_206E_202C_200E_206C_206F_202E(0f, 4f); - float x = _202C_206E_206A_200B_206D_202D_200B_200E_202D_202C_202A_206B_202A_200D_206C_202B_202D_202D_200D_200D_202C_206F_206F_206A_200E_202B_206D_200D_206F_206A_200E_202D_200E_206B_202C_206E_202A_202A_200F_200C_202E().ItemSpacing.X; - ImRaii.FontDisposable fontDisposable = _202E_206C_206B_206E_202A_206E_206D_200D_206D_200F_200D_200C_202D_200C_202B_200F_200D_200D_202E_202E_202B_206E_206A_200E_200E_200D_206C_200C_202A_206D_200C_200B_202C_206E_202C_200C_200D_206D_200C_206C_202E(_200C_206C_200C_202D_206D_200D_206C_206D_202E_202D_206D_200F_206B_202D_200C_202E_202C_202D_200E_202B_200F_200B_200E_206D_200F_200E_206B_200D_206C_206F_202E_202A_206A_206F_206A_200E_206F_206D_200C_206C_202E(), true); - float x2; - float x3; - try + RaptureGearsetModule.GearsetEntry* gearset = ptr->GetGearset(valueOrDefault); + if (_dataManager.GetExcelSheet<ClassJob>().TryGetRow(gearset->ClassJob, out var row)) { - x2 = _200B_202D_202A_202D_200F_206B_206B_200D_206B_202B_202E_206B_200D_202E_202D_200D_206E_202E_202A_202E_200B_202E_200E_202C_206A_202C_206D_202E_206D_206A_200F_200E_206F_200F_206B_202E_200E_200C_200E_202A_202E((ImU8String)_206E_206A_206D_200E_206B_200D_202D_202A_200B_200B_206E_206B_200E_200F_206F_206F_200F_206A_206B_206B_202A_200F_202B_206B_206C_206C_202A_206D_206C_200C_206D_202A_200E_202C_206E_202D_206A_200C_202B_200F_202E(FontAwesomeIcon.InfoCircle), false, -1f).X; - x3 = _200B_202D_202A_202D_200F_206B_206B_200D_206B_202B_202E_206B_200D_202E_202D_200D_206E_202E_202A_202E_200B_202E_200E_202C_206A_202C_206D_202E_206D_206A_200F_200E_206F_200F_206B_202E_200E_200C_200E_202A_202E((ImU8String)_206E_206A_206D_200E_206B_200D_202D_202A_200B_200B_206E_206B_200E_200F_206F_206F_200F_206A_206B_206B_202A_200F_202B_206B_206C_206C_202A_206D_206C_200C_206D_202A_200E_202C_206E_202D_206A_200C_202B_200F_202E(FontAwesomeIcon.Trash), false, -1f).X; - } - finally - { - num = ((fontDisposable == null) ? (-2061775915) : (-2061775916)); - while (true) - { - int num7 = num; - num3 = -2061775915; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - goto end_IL_029d; - case 1: - _200E_206B_202E_202B_200E_206B_206D_200C_202A_202E_206E_206E_202A_202B_202E_206E_206D_200B_200D_200F_206C_202C_200B_206A_202A_202D_206A_206F_206E_206F_202D_206F_202D_202A_200C_206D_206C_206B_202B_206F_202E((IDisposable)fontDisposable); - num = -2061775915; - break; - case 2: - num = -2061775916; - break; - } - continue; - end_IL_029d: - break; - } - } - float num10 = x + x2; - num = ((!cofferGearsetIndex.HasValue) ? 847629130 : 847629126); - while (true) - { - int num11 = num; - num3 = 847629135; - num4 = num11; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - list2.Add(item); - list.Add(num12); - num = 847629123; - break; - case 6: - { - RaptureGearsetModule.GearsetEntry* gearset = ptr->GetGearset(num12); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(8, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-968729626)); - int num13 = num12; - num3 = 1; - num4 = num13; - int num14 = num4 ^ num3; - int num15 = num4 & num3; - defaultInterpolatedStringHandler.AppendFormatted(num14 + (num15 + num15)); - item = defaultInterpolatedStringHandler.ToStringAndClear(); - num = ((!excelSheet.TryGetRow(gearset->ClassJob, out row)) ? 847629132 : 847629134); - break; - } - case 0: - num = ((num12 < 100) ? 847629133 : 847629121); - break; - case 4: - { - int num16 = 1; - List<string> list3 = new List<string>(num16); - CollectionsMarshal.SetCount(list3, num16); - CollectionsMarshal.AsSpan(list3)[0] = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-531956967); - list2 = list3; - num16 = 1; - List<int?> list4 = new List<int?>(num16); - CollectionsMarshal.SetCount(list4, num16); - CollectionsMarshal.AsSpan(list4)[0] = null; - list = list4; - excelSheet = _dataManager.GetExcelSheet<ClassJob>(); - num12 = 0; - num = 847629135; - break; - } - case 8: - base.Configuration.General.CofferGearsetIndex = null; - Save(); - num = 847629131; - break; - case 2: - num = ((!ptr->IsValidGearset(num12)) ? 847629123 : 847629129); - break; - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(2, 2); - int num20 = num12; - num3 = 1; - num4 = num20; - int num21 = num4 ^ num3; - int num22 = num4 & num3; - defaultInterpolatedStringHandler2.AppendFormatted(num21 + (num22 + num22)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-437343681)); - defaultInterpolatedStringHandler2.AppendFormatted(row.Abbreviation.ExtractText()); - item = defaultInterpolatedStringHandler2.ToStringAndClear(); - num = 847629132; - break; - } - case 12: - { - int num17 = num12; - num3 = 1; - num4 = num17; - int num18 = num4 ^ num3; - int num19 = num4 & num3; - num12 = num18 + (num19 + num19); - num = 847629135; - break; - } - case 5: - UiThemeUtils.RowLabel(text, num10, UiThemeUtils.AccentColor); - _200F_206E_202D_200F_200B_200D_202C_202A_202B_200E_202A_200C_206E_202A_206F_206F_206C_206F_202E_200E_200B_206F_202D_200B_206E_202B_202B_202A_200E_206C_206F_206F_200D_202E_200C_200C_200F_202B_202D_200C_202E(); - UiThemeUtils.InfoIcon(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1685119634)); - num = ((!cofferGearsetIndex.HasValue) ? 847629131 : 847629125); - break; - case 11: - num = 847629126; - break; - case 13: - return; - case 14: - { - currentItem = list.IndexOf(cofferGearsetIndex); - float width = _206A_206F_206D_200C_200C_200C_206B_202D_202C_206F_206D_202E_202A_202A_206A_206A_206F_202D_206A_202A_206E_206A_200B_202E_200F_200D_200D_200C_202B_202D_200E_206F_206D_206E_206B_206D_202A_200E_206F_202D_202E(_200C_206D_200F_202E_200F_200C_206A_200C_200F_206C_206B_202C_206F_200C_206A_200B_200E_206C_200F_202D_206A_202D_202E_200F_200F_206F_206C_200B_206D_200B_202C_200F_202C_206F_206B_206C_206D_202B_206B_200C_202E().X * 0.6f, 260f); - num = ((!UiThemeUtils.SearchableCombo(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-591121542), ref currentItem, list2.ToArray(), ref _cofferGearsetSearchText, width)) ? 847629122 : 847629128); - break; - } - case 10: - _200F_206E_202D_200F_200B_200D_202C_202A_202B_200E_202A_200C_206E_202A_206F_206F_206C_206F_202E_200E_200B_206F_202D_200B_206E_202B_202B_202A_200E_206C_206F_206F_200D_202E_200C_200C_200F_202B_202D_200C_202E(); - num = ((!UiThemeUtils.DestructiveButton(FontAwesomeIcon.Trash, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-101994351))) ? 847629131 : 847629127); - break; - case 7: - base.Configuration.General.CofferGearsetIndex = list[currentItem]; - Save(); - num = 847629122; - break; - case 9: - num10 += x + x3 + 6f + _200B_202D_202A_202D_200F_206B_206B_200D_206B_202B_202E_206B_200D_202E_202D_200D_206E_202E_202A_202E_200B_202E_200E_202C_206A_202C_206D_202E_206D_206A_200F_200E_206F_200F_206B_202E_200E_200C_200E_202A_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(376722999), false, -1f).X + _202C_206E_206A_200B_206D_202D_200B_200E_202D_202C_202A_206B_202A_200D_206C_202B_202D_202D_200D_200D_202C_206F_206F_206A_200E_202B_206D_200D_206F_206A_200E_202D_200E_206B_202C_206E_202A_202A_200F_200C_202E().FramePadding.X * 2f; - num = 847629130; - break; - } + text = $"Gearset {valueOrDefault + 1}: {row.Abbreviation.ExtractText()}"; } } + else + { + text = $"Gearset {valueOrDefault + 1} (deleted)"; } } + ImGui.Text("Open coffers as:"); + ImGui.SameLine(0f, 4f); + float x = ImGui.GetStyle().ItemSpacing.X; + float x2; + float x3; + using (ImRaii.PushFont(UiBuilder.IconFont)) + { + x2 = ImGui.CalcTextSize(FontAwesomeIcon.InfoCircle.ToIconString()).X; + x3 = ImGui.CalcTextSize(FontAwesomeIcon.Trash.ToIconString()).X; + } + float num = x + x2; + if (cofferGearsetIndex.HasValue) + { + num += x + x3 + 6f + ImGui.CalcTextSize("Clear").X + ImGui.GetStyle().FramePadding.X * 2f; + } + UiThemeUtils.RowLabel(text, num, UiThemeUtils.AccentColor); + ImGui.SameLine(); + UiThemeUtils.InfoIcon("Switch to this gearset before opening coffers so the gear drops match\nthe desired job. The original gearset is restored afterwards.\nLeave as Current Job to skip switching."); + if (cofferGearsetIndex.HasValue) + { + ImGui.SameLine(); + if (UiThemeUtils.DestructiveButton(FontAwesomeIcon.Trash, "Clear")) + { + base.Configuration.General.CofferGearsetIndex = null; + Save(); + } + } + int num2 = 1; + List<string> list = new List<string>(num2); + CollectionsMarshal.SetCount(list, num2); + CollectionsMarshal.AsSpan(list)[0] = "Current Job"; + List<string> list2 = list; + num2 = 1; + List<int?> list3 = new List<int?>(num2); + CollectionsMarshal.SetCount(list3, num2); + CollectionsMarshal.AsSpan(list3)[0] = null; + List<int?> list4 = list3; + ExcelSheet<ClassJob> excelSheet = _dataManager.GetExcelSheet<ClassJob>(); + for (int i = 0; i < 100; i++) + { + if (ptr->IsValidGearset(i)) + { + RaptureGearsetModule.GearsetEntry* gearset2 = ptr->GetGearset(i); + string item = $"Gearset {i + 1}"; + if (excelSheet.TryGetRow(gearset2->ClassJob, out var row2)) + { + item = $"{i + 1}: {row2.Abbreviation.ExtractText()}"; + } + list2.Add(item); + list4.Add(i); + } + } + int currentItem = list4.IndexOf(cofferGearsetIndex); + float width = MathF.Min(ImGui.GetContentRegionAvail().X * 0.6f, 260f); + if (UiThemeUtils.SearchableCombo("##cofferGearsetCombo", ref currentItem, list2.ToArray(), ref _cofferGearsetSearchText, width)) + { + base.Configuration.General.CofferGearsetIndex = list4[currentItem]; + Save(); + } } - [MethodImpl(MethodImplOptions.NoInlining)] static GeneralConfigComponent() { int num = 1; List<(EClassJob, string)> list = new List<(EClassJob, string)>(num); CollectionsMarshal.SetCount(list, num); - CollectionsMarshal.AsSpan(list)[0] = (EClassJob.Adventurer, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1120538336)); + CollectionsMarshal.AsSpan(list)[0] = (EClassJob.Adventurer, "Auto (highest level/item level)"); DefaultClassJobs = list; CombatModuleOptions = new(Configuration.ECombatModule, string, string[])[4] { - (Questionable.Configuration.ECombatModule.None, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(474422561), Array.Empty<string>()), - (Questionable.Configuration.ECombatModule.BossMod, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-750393689), new string[2] - { - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1719366272), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(203874627) - }), - (Questionable.Configuration.ECombatModule.WrathCombo, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(632226107), new string[1] { global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(294326625) }), - (Questionable.Configuration.ECombatModule.RotationSolverReborn, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-774365139), new string[1] { global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1992835172) }) + (Questionable.Configuration.ECombatModule.None, "None", Array.Empty<string>()), + (Questionable.Configuration.ECombatModule.BossMod, "Boss Mod", new string[2] { "BossMod", "BossModReborn" }), + (Questionable.Configuration.ECombatModule.WrathCombo, "Wrath Combo", new string[1] { "WrathCombo" }), + (Questionable.Configuration.ECombatModule.RotationSolverReborn, "Rotation Solver Reborn", new string[1] { "RotationSolver" }) }; RewardTypeOptions = new(EItemRewardType, string)[7] { - (EItemRewardType.Mount, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(659929424)), - (EItemRewardType.Minion, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1428179204)), - (EItemRewardType.OrchestrionRoll, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-253301609)), - (EItemRewardType.TripleTriadCard, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2007752794)), - (EItemRewardType.FashionAccessory, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1236856869)), - (EItemRewardType.Coffer, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(792920890)), - (EItemRewardType.UnlockLink, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1981003582)) + (EItemRewardType.Mount, "Mounts"), + (EItemRewardType.Minion, "Minions"), + (EItemRewardType.OrchestrionRoll, "Orchestrion rolls"), + (EItemRewardType.TripleTriadCard, "Triple Triad cards"), + (EItemRewardType.FashionAccessory, "Fashion accessories"), + (EItemRewardType.Coffer, "Gear coffers"), + (EItemRewardType.UnlockLink, "Other unlocks") }; } - - static void _200E_206F_206E_206F_206B_206C_200F_202A_206C_202C_200F_200C_206E_202C_206C_206A_206C_206E_206F_200D_202B_200B_200E_202E_206C_200D_200F_206B_206D_202C_202D_202C_206A_206C_202C_200E_202B_202B_200C_202E_202E(float P_0) - { - ImGui.SetNextItemWidth(P_0); - } - - static Vector2 _200C_206D_200F_202E_200F_200C_206A_200C_200F_206C_206B_202C_206F_200C_206A_200B_200E_206C_200F_202D_206A_202D_202E_200F_200F_206F_206C_200B_206D_200B_202C_200F_202C_206F_206B_206C_206D_202B_206B_200C_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static float _206A_206F_206D_200C_200C_200C_206B_202D_202C_206F_206D_202E_202A_202A_206A_206A_206F_202D_206A_202A_206E_206A_200B_202E_200F_200D_200D_200C_202B_202D_200E_206F_206D_206E_206B_206D_202A_200E_206F_202D_202E(float P_0, float P_1) - { - return MathF.Min(P_0, P_1); - } - - static void _202A_200B_200E_200D_206E_206F_206E_206E_200E_200B_200C_206F_206F_206E_206C_200F_202B_202A_200B_200C_202B_202C_206F_206F_202E_200C_202C_206E_200D_200C_202D_200B_200C_200F_202B_200D_200D_200F_200D_206F_202E() - { - ImGui.AlignTextToFramePadding(); - } - - static void _200B_206A_200E_200E_206B_200F_200D_200D_206C_200B_206A_200F_206A_200C_206C_206D_200C_206D_200E_202D_206F_206F_202A_202D_202E_202C_206D_202E_206D_202A_206F_206E_206A_200C_202E_206A_206C_206D_200C_206B_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static void _200F_206E_202D_200F_200B_200D_202C_202A_202B_200E_202A_200C_206E_202A_206F_206F_206C_206F_202E_200E_200B_206F_202D_200B_206E_202B_202B_202A_200E_206C_206F_206F_200D_202E_200C_200C_200F_202B_202D_200C_202E() - { - ImGui.SameLine(); - } - - static void _202C_200B_206E_206C_206F_200E_206F_200F_202A_200F_202A_202C_206F_202D_202D_206B_200B_202C_202C_206B_200E_202C_206D_200D_206D_202A_206A_200D_200F_202A_200B_206A_206F_200D_200E_200E_202D_206F_206B_206A_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static ImRaii.DisabledDisposable _202E_202D_200D_206D_200E_202C_206E_200F_200F_206A_206A_206B_206E_202A_206D_202A_206C_200F_200F_200F_206E_200E_206E_202A_202C_206B_206B_200E_206C_200F_202B_206E_200B_206B_206A_206D_206E_200B_206B_202B_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static ImRaii.IndentDisposable _200F_206D_206F_202A_202D_206C_206D_200B_200D_200B_200F_202C_206C_206C_200D_206D_200B_206F_206E_200D_206E_206E_202E_202E_200C_206E_202C_202A_206D_206F_202E_200F_206E_206B_206E_202D_202B_202A_206E_200C_202E(int P_0, bool P_1) - { - return ImRaii.PushIndent(P_0, P_1); - } - - static void _200E_206B_202E_202B_200E_206B_206D_200C_202A_202E_206E_206E_202A_202B_202E_206E_206D_200B_200D_200F_206C_202C_200B_206A_202A_202D_206A_206F_206E_206F_202D_206F_202D_202A_200C_206D_206C_206B_202B_206F_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _202E_206F_200C_200B_206A_206B_202A_200F_206E_200D_202B_206B_200D_202D_202D_202E_206A_206E_206C_206D_202B_202A_206D_202E_202E_202A_202C_202E_202D_200C_206B_206F_206B_206D_200B_206D_200E_206E_200B_206F_202E(float P_0) - { - ImGui.PushTextWrapPos(P_0); - } - - static void _206D_202E_200B_200D_200C_202B_202C_206D_200E_202A_200B_200B_200D_202C_206B_200F_206F_206C_206B_206C_206C_206D_200D_206B_206B_206E_200C_202C_206B_200F_200B_202E_206F_202A_202C_202E_200B_206D_200E_200F_202E() - { - ImGui.PopTextWrapPos(); - } - - static void _200C_206B_200D_202D_200D_200E_206F_202D_202A_206C_200C_206E_206E_200B_202E_200D_202C_202E_202A_202E_202C_206E_200C_200B_206C_206A_202B_202D_202E_202E_200F_206E_200F_200F_206C_206D_200C_202B_202C_202C_202E() - { - ImGui.Spacing(); - } - - static void _200D_202E_200E_206C_202A_200C_200B_200F_202C_202C_206F_200D_202A_206D_206E_202C_206E_202D_200F_206C_206C_202D_202D_200F_202E_206F_200C_206A_202D_200F_200F_202B_200C_206F_202E_200F_206E_200D_202E_202E_202E(ImU8String P_0) - { - ImGui.TextWrapped(P_0); - } - - static void _202D_206E_206D_202D_206C_202B_202C_200B_206E_206F_206D_206E_206C_202D_206D_200D_200B_200B_202B_202A_200B_202D_202A_200E_206E_200C_206B_206A_200D_206D_200C_202B_202B_200F_202E_202D_200D_206A_206E_206F_202E(ImU8String P_0) - { - ImGui.Text(P_0); - } - - static void _206C_202C_200B_202B_200B_206F_202D_200C_206A_202D_202E_206E_206B_202A_202D_202C_206B_202B_206D_202C_202B_200D_206C_206F_206B_206C_202A_200C_202D_206E_206C_202B_206C_202D_202B_206E_202C_200E_206C_206F_202E(float P_0, float P_1) - { - ImGui.SameLine(P_0, P_1); - } - - static ImGuiStylePtr _202C_206E_206A_200B_206D_202D_200B_200E_202D_202C_202A_206B_202A_200D_206C_202B_202D_202D_200D_200D_202C_206F_206F_206A_200E_202B_206D_200D_206F_206A_200E_202D_200E_206B_202C_206E_202A_202A_200F_200C_202E() - { - return ImGui.GetStyle(); - } - - static ImFontPtr _200C_206C_200C_202D_206D_200D_206C_206D_202E_202D_206D_200F_206B_202D_200C_202E_202C_202D_200E_202B_200F_200B_200E_206D_200F_200E_206B_200D_206C_206F_202E_202A_206A_206F_206A_200E_206F_206D_200C_206C_202E() - { - return UiBuilder.IconFont; - } - - static ImRaii.FontDisposable _202E_206C_206B_206E_202A_206E_206D_200D_206D_200F_200D_200C_202D_200C_202B_200F_200D_200D_202E_202E_202B_206E_206A_200E_200E_200D_206C_200C_202A_206D_200C_200B_202C_206E_202C_200C_200D_206D_200C_206C_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static string _206E_206A_206D_200E_206B_200D_202D_202A_200B_200B_206E_206B_200E_200F_206F_206F_200F_206A_206B_206B_202A_200F_202B_206B_206C_206C_202A_206D_206C_200C_206D_202A_200E_202C_206E_202D_206A_200C_202B_200F_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static Vector2 _200B_202D_202A_202D_200F_206B_206B_200D_206B_202B_202E_206B_200D_202E_202D_200D_206E_202E_202A_202E_200B_202E_200E_202C_206A_202C_206D_202E_206D_206A_200F_200E_206F_200F_206B_202E_200E_200C_200E_202A_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } } diff --git a/Questionable/Questionable.Windows.ConfigComponents/NavigationConfigComponent.cs b/Questionable/Questionable.Windows.ConfigComponents/NavigationConfigComponent.cs index d65c6f9..2e388c9 100644 --- a/Questionable/Questionable.Windows.ConfigComponents/NavigationConfigComponent.cs +++ b/Questionable/Questionable.Windows.ConfigComponents/NavigationConfigComponent.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Dalamud.Bindings.ImGui; using Dalamud.Interface.Utility.Raii; @@ -16,94 +15,6 @@ namespace Questionable.Windows.ConfigComponents; internal sealed class NavigationConfigComponent : ConfigComponent { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<Mount, bool> _003C_003E9__4_0; - - public static Func<Mount, (uint MountId, string Name)> _003C_003E9__4_1; - - public static Func<(uint MountId, string Name), bool> _003C_003E9__4_2; - - public static Func<(uint MountId, string Name), string> _003C_003E9__4_3; - - public static Func<(uint Id, string Name), uint> _003C_003E9__4_4; - - public static Func<(uint MountId, string Name), uint> _003C_003E9__4_5; - - public static Func<(uint Id, string Name), string> _003C_003E9__4_6; - - public static Func<(uint MountId, string Name), string> _003C_003E9__4_7; - - internal bool _003C_002Ector_003Eb__4_0(Mount x) - { - int num = ((x.RowId == 0) ? 1914904014 : 1914904013); - while (true) - { - int num2 = num; - int num3 = 1914904012; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004a; - case 2: - return false; - case 1: - return x.Icon > 0; - } - continue; - IL_004a: - num = 1914904013; - } - } - - internal (uint MountId, string Name) _003C_002Ector_003Eb__4_1(Mount x) - { - return (MountId: x.RowId, Name: CapitalizeName(x.Singular.ExtractText())); - } - - internal bool _003C_002Ector_003Eb__4_2((uint MountId, string Name) x) - { - return !_206A_206F_202D_206D_206E_202C_202B_206B_202D_202C_202C_200D_206C_206E_202D_206A_200E_202A_202D_206A_202B_206A_202D_202D_200F_206F_200E_202E_200F_202C_200E_206E_206C_202E_202C_206E_202B_202B_202B_202B_202E(x.Name); - } - - internal string _003C_002Ector_003Eb__4_3((uint MountId, string Name) x) - { - return x.Name; - } - - internal uint _003C_002Ector_003Eb__4_4((uint Id, string Name) x) - { - return x.Id; - } - - internal uint _003C_002Ector_003Eb__4_5((uint MountId, string Name) x) - { - return x.MountId; - } - - internal string _003C_002Ector_003Eb__4_6((uint Id, string Name) x) - { - return x.Name; - } - - internal string _003C_002Ector_003Eb__4_7((uint MountId, string Name) x) - { - return x.Name; - } - - static bool _206A_206F_202D_206D_206E_202C_202B_206B_202D_202C_202C_200D_206C_206E_202D_206A_200E_202A_202D_206A_202B_206A_202D_202D_200F_206F_200E_202E_200F_202C_200E_206E_206C_202E_202C_206E_202B_202B_202B_202B_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - } - private static readonly List<(uint Id, string Name)> DefaultMounts; private readonly uint[] _mountIds; @@ -115,543 +26,175 @@ internal sealed class NavigationConfigComponent : ConfigComponent public NavigationConfigComponent(IDalamudPluginInterface pluginInterface, Configuration configuration, IDataManager dataManager) : base(pluginInterface, configuration) { - List<(uint, string)> source = (from x in dataManager.GetExcelSheet<Mount>().Where(delegate(Mount x) - { - int num = ((x.RowId == 0) ? 1914904014 : 1914904013); - while (true) - { - int num2 = num; - int num3 = 1914904012; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004a; - case 2: - return false; - case 1: - return x.Icon > 0; - } - continue; - IL_004a: - num = 1914904013; - } - }) + List<(uint, string)> source = (from x in dataManager.GetExcelSheet<Mount>() + where x.RowId != 0 && x.Icon > 0 select (MountId: x.RowId, Name: CapitalizeName(x.Singular.ExtractText())) into x - where !_003C_003Ec._206A_206F_202D_206D_206E_202C_202B_206B_202D_202C_202C_200D_206C_206E_202D_206A_200E_202A_202D_206A_202B_206A_202D_202D_200F_206F_200E_202E_200F_202C_200E_206E_206C_202E_202C_206E_202B_202B_202B_202B_202E(x.Name) - select x).OrderBy<(uint, string), string>(((uint MountId, string Name) x) => x.Name, _202B_206D_206F_202E_206B_206A_206D_200C_206B_206E_206B_200B_200E_200D_206C_202D_200F_202B_206E_206F_200E_206C_206A_206D_202C_202E_200B_200B_206B_200B_200C_202E_200E_202B_206A_200E_206A_206C_202D_202D_202E()).ToList(); + where !string.IsNullOrEmpty(x.Name) + select x).OrderBy<(uint, string), string>(((uint MountId, string Name) x) => x.Name, StringComparer.OrdinalIgnoreCase).ToList(); _mountIds = DefaultMounts.Select<(uint, string), uint>(((uint Id, string Name) x) => x.Id).Concat(source.Select<(uint, string), uint>(((uint MountId, string Name) x) => x.MountId)).ToArray(); _mountNames = DefaultMounts.Select<(uint, string), string>(((uint Id, string Name) x) => x.Name).Concat(source.Select<(uint, string), string>(((uint MountId, string Name) x) => x.Name)).ToArray(); } - [MethodImpl(MethodImplOptions.NoInlining)] private static string CapitalizeName(string text) { - int num = ((!_200C_206B_206F_206D_200B_200B_202A_206A_200C_202D_200C_202C_206D_202B_202E_206D_202D_206F_200E_200F_206B_200E_206C_206F_202A_202D_202B_202A_206F_206D_200D_200D_202B_200C_206F_202A_200C_206B_202B_206A_202E(text)) ? (-1379143407) : (-1379143402)); - int num5 = default(int); - string[] array = default(string[]); - while (true) + if (string.IsNullOrEmpty(text)) { - int num2 = num; - int num3 = -1379143401; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return text; + } + if (text.Equals(text.ToLowerInvariant(), StringComparison.Ordinal)) + { + return CultureInfo.InvariantCulture.TextInfo.ToTitleCase(text); + } + string[] array = text.Split(' '); + for (int i = 0; i < array.Length; i++) + { + if (array[i].Length > 0 && char.IsLower(array[i][0])) { - case 4: - num = ((num5 < array.Length) ? (-1379143408) : (-1379143395)); - break; - case 1: - return text; - case 8: - array[num5] = _202E_200B_206D_200F_200E_202D_200B_206F_200B_206F_200D_202D_200B_200D_206B_200C_202D_206A_202B_202B_206D_202D_202E_206C_206E_200D_202A_206F_202E_202B_202E_206B_202A_200C_200C_202A_202E_206A_206F_202A_202E(new ReadOnlySpan<char>(char.ToUpperInvariant(_206F_200C_200D_206B_206C_206B_206C_206C_206F_206D_206C_200E_200B_202B_200F_206A_202E_202D_200C_200C_206F_202D_202D_200C_202A_206A_202C_200D_202E_200D_206D_206B_202B_206A_202A_206E_200C_202A_202C_202C_202E(array[num5], 0))), _202D_202D_202C_206C_206B_206E_206B_206A_206F_202E_206C_200E_206A_202C_200D_206F_206E_206D_206A_206A_202E_202D_202B_202C_202E_202E_202D_206C_206A_200B_200C_206D_206B_200D_202D_206D_202E_200D_202B_202A_202E(_202C_200C_200D_202E_206E_202B_200E_202A_206E_206D_202C_206A_206F_200C_202D_206E_200E_206C_202D_200F_206B_206A_202E_202A_200D_200F_200B_202A_200C_202E_200E_206C_202B_206B_206D_206F_206A_202C_202D_202D_202E(array[num5], 1))); - num = -1379143401; - break; - case 0: - { - int num6 = num5; - num3 = 1; - num4 = num6; - num5 = (num4 | num3) + (num4 & num3); - num = -1379143405; - break; - } - case 7: - num = ((_206D_206B_206B_202C_206C_206C_202A_202A_200E_202A_200F_200E_206D_206D_202D_202D_206F_202D_202B_206D_200B_206B_202D_202D_202E_202B_202D_206A_206E_200E_200D_206D_200B_202A_206C_202B_206E_200B_200D_206F_202E(array[num5]) <= 0) ? (-1379143401) : (-1379143406)); - break; - case 3: - num = -1379143402; - break; - case 10: - return _200D_206C_202D_202E_206E_200C_202D_206D_206F_206F_202A_206F_206E_200E_206D_202E_202B_206F_206A_200C_202B_206A_206A_202E_200C_206F_206E_200C_206D_200E_200E_202B_206E_202D_202D_202B_206D_200E_202B_200D_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-324914973), array); - case 5: - num = ((!char.IsLower(_206F_200C_200D_206B_206C_206B_206C_206C_206F_206D_206C_200E_200B_202B_200F_206A_202E_202D_200C_200C_206F_202D_202D_200C_202A_206A_202C_200D_202E_200D_206D_206B_202B_206A_202A_206E_200C_202A_202C_202C_202E(array[num5], 0))) ? (-1379143401) : (-1379143393)); - break; - case 2: - array = _202A_202D_202A_200B_206E_200D_202C_206B_200D_202D_200E_200C_206E_202B_200E_206B_200F_202A_206C_206C_206B_200E_202C_206E_202A_202C_200E_200F_200E_206E_202E_200E_206A_202E_206A_202C_200B_200E_206A_200E_202E(text, ' ', StringSplitOptions.None); - num5 = 0; - num = -1379143405; - break; - case 9: - return _202D_206F_200D_200E_200D_206B_202C_206D_206B_206E_202C_202C_206D_202A_202D_202A_202C_206D_200F_206C_200E_206D_202A_202B_206C_206C_206F_206A_202C_202D_206F_200E_206F_200B_206B_206A_206E_200F_202C_206F_202E(_202E_200D_200C_202D_206E_202C_206C_200B_202D_206E_202C_200D_206E_206B_200E_202E_200D_206E_200E_202B_206F_206A_200F_202E_202C_202B_200F_206E_200E_202A_200B_206F_202C_200E_206E_200C_200F_206B_206B_200E_202E(_202E_206D_202B_206B_206B_206D_202E_202E_200D_202C_202B_206D_206B_200E_206A_206D_206A_200C_206C_202E_200E_202B_200F_206F_202A_202D_200D_202E_206D_200C_202C_200F_206A_202E_202B_206B_200B_206B_206D_206C_202E()), text); - case 6: - num = ((!_200B_200F_200C_206F_202B_202B_206D_206D_200C_206D_206F_206B_206D_202E_200F_202A_200B_200B_202C_202B_206A_206D_202D_206A_202E_206D_206E_206A_202C_202E_200C_200F_206E_200C_202B_202C_202B_200C_206B_206E_202E(text, _200D_200E_202A_200C_200B_202C_202D_206E_202C_206B_206C_206A_206B_200E_202C_206F_200B_200D_200E_206C_200B_206D_202E_206F_200E_206D_206F_202E_200D_202C_202A_202D_202E_202D_202E_206C_206C_202D_202A_200F_202E(text), StringComparison.Ordinal)) ? (-1379143403) : (-1379143394)); - break; + array[i] = char.ToUpperInvariant(array[i][0]) + array[i].Substring(1); } } + return string.Join(" ", array); } - [MethodImpl(MethodImplOptions.NoInlining)] public override void DrawTab() { Configuration.NavigationConfiguration navigation = base.Configuration.Navigation; - UiThemeUtils.SectionHeader(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(547712580)); + UiThemeUtils.SectionHeader("Mounts & Flying"); var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); DrawMountSelector(navigation); bool value = navigation.NeverFly; - int num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1858753748), ref value, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1387349322))) ? 446317926 : 446317925); - float value9 = default(float); - bool value8 = default(bool); - float value7 = default(float); - string text = default(string); - int currentItem = default(int); - string[] names = default(string[]); - bool value6 = default(bool); - Vector2 item7 = default(Vector2); - float item8 = default(float); - ImDrawListPtr item9 = default(ImDrawListPtr); - int value5 = default(int); - bool value4 = default(bool); - Vector2 item4 = default(Vector2); - float item5 = default(float); - ImDrawListPtr item6 = default(ImDrawListPtr); - while (true) + if (UiThemeUtils.WrappedCheckbox("Disable flying (even where unlocked)", ref value, "Always travel on the ground, even in zones where flying is unlocked.")) { - int num2 = num; - int num3 = 446317927; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = 446317925; - break; - case 2: - navigation.NeverFly = value; - Save(); - num = 446317926; - break; - case 1: - value9 = navigation.MountGroundDistance; - num = ((!UiThemeUtils.AccentSliderFloat(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(697577803), ref value9, 0f, 100f, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1562631403), 260f)) ? 446317924 : 446317927); - break; - case 0: - navigation.MountGroundDistance = value9; - Save(); - num = 446317924; - break; - case 3: - { - _200D_206C_206E_202A_202B_202B_202C_200F_200C_206F_202D_202D_202D_200E_200C_200F_206E_206B_206E_200E_202A_206D_200F_200F_206A_202E_202C_206D_202B_202C_202C_200D_202C_206E_202B_206D_206B_206A_200D_202D_202E(); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(49, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(161055188)); - defaultInterpolatedStringHandler.AppendFormatted(20f, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2033331044)); - UiThemeUtils.InfoIcon(defaultInterpolatedStringHandler.ToStringAndClear()); - ImRaii.DisabledDisposable disabledDisposable = _202E_202E_202B_202E_200E_200D_202E_200C_200D_206A_200D_200D_202E_200C_200B_206C_206B_202B_200E_200F_206F_206B_206A_202C_200B_206E_200F_206A_200E_206B_202B_206D_200F_202D_202E_202D_206B_206A_202B_206B_202E(navigation.NeverFly); - try - { - float value2 = navigation.MountFlyDistance; - num = ((!UiThemeUtils.AccentSliderFloat(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-18366214), ref value2, 0f, 100f, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1102866709), 260f)) ? (-436311720) : (-436311717)); - while (true) - { - int num7 = num; - num3 = -436311719; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -436311717; - break; - case 2: - navigation.MountFlyDistance = value2; - Save(); - num = -436311720; - break; - case 1: - { - _200D_206C_206E_202A_202B_202B_202C_200F_200C_206F_202D_202D_202D_200E_200C_200F_206E_206B_206E_200E_202A_206D_200F_200F_206A_202E_202C_206D_202B_202C_202C_200D_202C_206E_202B_206D_206B_206A_200D_202D_202E(); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(49, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1563330266)); - defaultInterpolatedStringHandler2.AppendFormatted(15f, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2033331044)); - UiThemeUtils.InfoIcon(defaultInterpolatedStringHandler2.ToStringAndClear()); - goto end_IL_01de; - } - } - continue; - end_IL_01de: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? (-184304173) : (-184304176)); - while (true) - { - int num8 = num; - num3 = -184304175; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_0296; - case 1: - _206B_200E_206C_200D_202D_206A_202C_200B_206D_202E_206B_202C_202B_206D_206D_200C_200F_202A_206D_202B_202B_202E_202B_206A_206C_202C_202B_202C_206B_200F_206E_200B_206E_200B_202E_202D_206F_206C_206A_206F_202E((IDisposable)disabledDisposable); - num = -184304173; - break; - case 0: - num = -184304176; - break; - } - continue; - end_IL_0296: - break; - } - } - UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); - UiThemeUtils.SectionSpacing(); - UiThemeUtils.SectionHeader(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1285735320)); - (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple2 = UiThemeUtils.BeginCard(); - Vector2 item = tuple2.ContentStartPos; - float item2 = tuple2.AvailableWidth; - ImDrawListPtr item3 = tuple2.DrawList; - float value3 = navigation.SprintDistanceTown; - num = ((!UiThemeUtils.AccentSliderFloat(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-377031381), ref value3, 0f, 100f, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2028773324), 260f)) ? (-1837094585) : (-1837094575)); - while (true) - { - int num9 = num; - num3 = -1837094589; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - default: - continue; - case 8: - num = -1837094575; - continue; - case 13: - navigation.PreferFreeTravel = value8; - Save(); - num = -1837094582; - continue; - case 4: - { - _200D_206C_206E_202A_202B_202B_202C_200F_200C_206F_202D_202D_202D_200E_200C_200F_206E_206B_206E_200E_202A_206D_200F_200F_206A_202E_202C_206D_202B_202C_202C_200D_202C_206E_202B_206D_206B_206A_200D_202D_202E(); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler4 = new DefaultInterpolatedStringHandler(46, 1); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(533706590)); - defaultInterpolatedStringHandler4.AppendFormatted(20f, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2033331044)); - UiThemeUtils.InfoIcon(defaultInterpolatedStringHandler4.ToStringAndClear()); - value7 = navigation.SprintDistanceOpenWorld; - num = ((!UiThemeUtils.AccentSliderFloat(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1911081210), ref value7, 0f, 200f, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2028773324), 260f)) ? (-1837094584) : (-1837094591)); - continue; - } - case 0: - { - string tooltip = text; - _202E_206C_202E_202E_200F_202A_206A_206E_202C_206E_200B_200C_202E_206D_206E_202B_200C_200C_200E_206F_206A_206B_202B_206B_206D_202D_200C_202B_206C_206C_200B_202C_206D_206F_200F_206E_202B_202B_206A_202C_202E(_202E_206C_200C_202D_202C_200D_206F_202E_206C_206C_206C_206F_206B_206E_206F_206C_200D_200B_206A_200F_200D_200C_202A_202B_206A_206F_200B_206F_202D_200B_202A_200F_202C_202B_200F_202E_200F_202E_206A_206E_202E(260f, _202A_200B_200F_206C_200C_202E_200D_200D_200D_202C_206F_206B_206B_202B_206F_206A_206C_202A_200B_200B_200E_202B_202D_200E_200E_200E_206A_202B_202B_206E_200F_206B_200C_202D_202D_206B_202E_200D_206E_202A_202E().X)); - if (UiThemeUtils.ThemedCombo(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1580633882), ref currentItem, names, names.Length)) - { - navigation.StuckRecoveryMode = (EStuckRecoveryMode)currentItem; - Save(); - } - _200D_206C_206E_202A_202B_202B_202C_200F_200C_206F_202D_202D_202D_200E_200C_200F_206E_206B_206E_200E_202A_206D_200F_200F_206A_202E_202C_206D_202B_202C_202C_200D_202C_206E_202B_206D_206B_206A_200D_202D_202E(); - UiThemeUtils.InfoIcon(tooltip); - value6 = navigation.ReRouteOnFailure; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1332835539), ref value6, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(598894295))) ? (-1837094577) : (-1837094586)); - continue; - } - case 18: - navigation.SprintDistanceTown = value3; - Save(); - num = -1837094585; - continue; - case 12: - UiThemeUtils.EndCard(item7, item8, item9); - return; - case 17: - navigation.GilReserve = _202E_200C_200E_206A_206F_206D_202C_200F_206D_206A_202A_206E_200E_202E_200D_202E_200F_202B_206E_202C_200E_200E_206C_200C_206F_202E_206B_202E_202B_206F_206C_206E_200E_202B_200D_206A_202D_206A_202E_200F_202E(value5, 0, 999999999); - Save(); - num = -1837094583; - continue; - case 9: - value4 = navigation.UseTeleportTickets; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1746473185), ref value4, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(8925130))) ? (-1837094579) : (-1837094587)); - continue; - case 10: - _200D_206C_206E_202A_202B_202B_202C_200F_200C_206F_202D_202D_202D_200E_200C_200F_206E_206B_206E_200E_202A_206D_200F_200F_206A_202E_202C_206D_202B_202C_202C_200D_202C_206E_202B_206D_206B_206A_200D_202D_202E(); - UiThemeUtils.InfoIcon(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1411121243)); - value8 = navigation.PreferFreeTravel; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(480673472), ref value8, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1628227995))) ? (-1837094582) : (-1837094578)); - continue; - case 2: - navigation.SprintDistanceOpenWorld = value7; - Save(); - num = -1837094584; - continue; - case 5: - navigation.ReRouteOnFailure = value6; - Save(); - num = -1837094577; - continue; - case 14: - { - UiThemeUtils.EndCard(item4, item5, item6); - UiThemeUtils.SectionSpacing(); - UiThemeUtils.SectionHeader(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1576741816)); - (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple4 = UiThemeUtils.BeginCard(); - item7 = tuple4.ContentStartPos; - item8 = tuple4.AvailableWidth; - item9 = tuple4.DrawList; - names = Enum.GetNames<EStuckRecoveryMode>(); - currentItem = (int)navigation.StuckRecoveryMode; - switch (navigation.StuckRecoveryMode) - { - case EStuckRecoveryMode.Conservative: - goto IL_06a1; - case EStuckRecoveryMode.Aggressive: - goto IL_0783; - case EStuckRecoveryMode.Passive: - goto end_IL_0381; - } - num = -1837094580; - continue; - } - case 16: - goto IL_06a1; - case 15: - num = -1837094592; - continue; - case 11: - { - _200D_206C_206E_202A_202B_202B_202C_200F_200C_206F_202D_202D_202D_200E_200C_200F_206E_206B_206E_200E_202A_206D_200F_200F_206A_202E_202C_206D_202B_202C_202C_200D_202C_206E_202B_206D_206B_206A_200D_202D_202E(); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(51, 1); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1746484759)); - defaultInterpolatedStringHandler3.AppendFormatted(50f, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(107444647)); - UiThemeUtils.InfoIcon(defaultInterpolatedStringHandler3.ToStringAndClear()); - UiThemeUtils.EndCard(item, item2, item3); - UiThemeUtils.SectionSpacing(); - UiThemeUtils.SectionHeader(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1498456112)); - (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple3 = UiThemeUtils.BeginCard(); - item4 = tuple3.ContentStartPos; - item5 = tuple3.AvailableWidth; - item6 = tuple3.DrawList; - value5 = navigation.GilReserve; - num = ((!UiThemeUtils.AccentSliderInt(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(836461425), ref value5, 0, 20000, 260f)) ? (-1837094583) : (-1837094574)); - continue; - } - case 1: - goto IL_0783; - case 6: - navigation.UseTeleportTickets = value4; - Save(); - num = -1837094579; - continue; - case 3: - text = string.Empty; - num = -1837094589; - continue; - case 7: - break; - IL_0783: - text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-874015327); - num = -1837094589; - continue; - IL_06a1: - text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1630606955); - num = -1837094589; - continue; - end_IL_0381: - break; - } - text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1437944343); - num = -1837094589; - } - } - } + navigation.NeverFly = value; + Save(); } + float value2 = navigation.MountGroundDistance; + if (UiThemeUtils.AccentSliderFloat("Ground Mount (yalms)", ref value2, 0f, 100f, "%.0f", 260f)) + { + navigation.MountGroundDistance = value2; + Save(); + } + ImGui.SameLine(); + UiThemeUtils.InfoIcon($"Minimum distance to use a ground mount. Default: {20f:0}"); + using (ImRaii.Disabled(navigation.NeverFly)) + { + float value3 = navigation.MountFlyDistance; + if (UiThemeUtils.AccentSliderFloat("Flying Mount (yalms)", ref value3, 0f, 100f, "%.0f", 260f)) + { + navigation.MountFlyDistance = value3; + Save(); + } + ImGui.SameLine(); + UiThemeUtils.InfoIcon($"Minimum distance to use a flying mount. Default: {15f:0}"); + } + UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); + UiThemeUtils.SectionSpacing(); + UiThemeUtils.SectionHeader("Sprint"); + (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple2 = UiThemeUtils.BeginCard(); + Vector2 item = tuple2.ContentStartPos; + float item2 = tuple2.AvailableWidth; + ImDrawListPtr item3 = tuple2.DrawList; + float value4 = navigation.SprintDistanceTown; + if (UiThemeUtils.AccentSliderFloat("Town (yalms)", ref value4, 0f, 100f, "%.0f", 260f)) + { + navigation.SprintDistanceTown = value4; + Save(); + } + ImGui.SameLine(); + UiThemeUtils.InfoIcon($"Minimum distance to sprint in towns. Default: {20f:0}"); + float value5 = navigation.SprintDistanceOpenWorld; + if (UiThemeUtils.AccentSliderFloat("Open World (yalms)", ref value5, 0f, 200f, "%.0f", 260f)) + { + navigation.SprintDistanceOpenWorld = value5; + Save(); + } + ImGui.SameLine(); + UiThemeUtils.InfoIcon($"Minimum distance to sprint in open world. Default: {50f:0}"); + UiThemeUtils.EndCard(item, item2, item3); + UiThemeUtils.SectionSpacing(); + UiThemeUtils.SectionHeader("Teleport"); + (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple3 = UiThemeUtils.BeginCard(); + Vector2 item4 = tuple3.ContentStartPos; + float item5 = tuple3.AvailableWidth; + ImDrawListPtr item6 = tuple3.DrawList; + int value6 = navigation.GilReserve; + if (UiThemeUtils.AccentSliderInt("Gil Reserve", ref value6, 0, 20000, 260f)) + { + navigation.GilReserve = Math.Clamp(value6, 0, 999999999); + Save(); + } + ImGui.SameLine(); + UiThemeUtils.InfoIcon("Minimum gil to keep when deciding whether to teleport."); + bool value7 = navigation.PreferFreeTravel; + if (UiThemeUtils.WrappedCheckbox("Prefer free travel in cities", ref value7, "When in a city, prefer aethernet and walking over teleporting to save gil.\nTeleporting from field zones is unaffected.")) + { + navigation.PreferFreeTravel = value7; + Save(); + } + bool value8 = navigation.UseTeleportTickets; + if (UiThemeUtils.WrappedCheckbox("Use teleport tickets", ref value8, "Use destination teleport tickets from your inventory (Grand Company, Firmament,\nVesper Bay, Gold Saucer) as free teleports when planning routes.\nEach use consumes one ticket. Disable to never consume tickets.")) + { + navigation.UseTeleportTickets = value8; + Save(); + } + UiThemeUtils.EndCard(item4, item5, item6); + UiThemeUtils.SectionSpacing(); + UiThemeUtils.SectionHeader("Stuck Recovery"); + (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple4 = UiThemeUtils.BeginCard(); + Vector2 item7 = tuple4.ContentStartPos; + float item8 = tuple4.AvailableWidth; + ImDrawListPtr item9 = tuple4.DrawList; + string[] names = Enum.GetNames<EStuckRecoveryMode>(); + int currentItem = (int)navigation.StuckRecoveryMode; + object tooltip = navigation.StuckRecoveryMode switch + { + EStuckRecoveryMode.Aggressive => "Jump, recalculate, reload, and rebuild navmesh (default)", + EStuckRecoveryMode.Conservative => "Jump and recalculate only - no navmesh reload/rebuild", + EStuckRecoveryMode.Passive => "Log only - no automatic recovery", + _ => string.Empty, + }; + ImGui.SetNextItemWidth(MathF.Min(260f, ImGui.GetContentRegionAvail().X)); + if (UiThemeUtils.ThemedCombo("Recovery Mode", ref currentItem, names, names.Length)) + { + navigation.StuckRecoveryMode = (EStuckRecoveryMode)currentItem; + Save(); + } + ImGui.SameLine(); + UiThemeUtils.InfoIcon((string)tooltip); + bool value9 = navigation.ReRouteOnFailure; + if (UiThemeUtils.WrappedCheckbox("Re-route on pathfinding failure", ref value9, "When pathfinding fails, SmartNav re-plans the route from your current position.\nDisable to stop automation instead (previous behavior).")) + { + navigation.ReRouteOnFailure = value9; + Save(); + } + UiThemeUtils.EndCard(item7, item8, item9); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawMountSelector(Configuration.NavigationConfiguration nav) { int currentItem = Array.FindIndex(_mountIds, (uint x) => x == nav.MountId); - int num = ((currentItem != -1) ? 1444695159 : 1444695155); - while (true) + if (currentItem == -1) { - int num2 = num; - int num3 = 1444695154; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - object obj; - string previewOverride; - switch (num5 - (num6 + num6)) - { - case 3: - nav.MountId = _mountIds[currentItem]; - Save(); - num = 1444695152; - break; - case 6: - obj = null; - goto IL_00a8; - case 2: - _200D_206C_206E_202A_202B_202B_202C_200F_200C_206F_202D_202D_202D_200E_200C_200F_206E_206B_206E_200E_202A_206D_200F_200F_206A_202E_202C_206D_202B_202C_202C_200D_202C_206E_202B_206D_206B_206A_200D_202D_202E(); - UiThemeUtils.InfoIcon(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1749227958)); - return; - case 0: - num = ((currentItem < _mountNames.Length) ? 1444695156 : 1444695158); - break; - case 1: - currentItem = 0; - nav.MountId = _mountIds[currentItem]; - Save(); - num = 1444695159; - break; - case 5: - num = ((currentItem < 0) ? 1444695158 : 1444695154); - break; - case 7: - num = 1444695155; - break; - case 4: - { - obj = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-934792339); - goto IL_00a8; - } - IL_00a8: - previewOverride = (string)obj; - num = ((!UiThemeUtils.SearchableCombo(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-35861399), ref currentItem, _mountNames, ref _mountSearchText, _202E_206C_200C_202D_202C_200D_206F_202E_206C_206C_206C_206F_206B_206E_206F_206C_200D_200B_206A_200F_200D_200C_202A_202B_206A_206F_200B_206F_202D_200B_202A_200F_202C_202B_200F_202E_200F_202E_206A_206E_202E(260f, _202A_200B_200F_206C_200C_202E_200D_200D_200D_202C_206F_206B_206B_202B_206F_206A_206C_202A_200B_200B_200E_202B_202D_200E_200E_200E_206A_202B_202B_206E_200F_206B_200C_202D_202D_206B_202E_200D_206E_202A_202E().X), previewOverride)) ? 1444695152 : 1444695153); - break; - } + currentItem = 0; + nav.MountId = _mountIds[currentItem]; + Save(); } + string previewOverride = ((currentItem >= 0 && currentItem < _mountNames.Length) ? null : "Unknown"); + if (UiThemeUtils.SearchableCombo("Preferred Mount", ref currentItem, _mountNames, ref _mountSearchText, MathF.Min(260f, ImGui.GetContentRegionAvail().X), previewOverride)) + { + nav.MountId = _mountIds[currentItem]; + Save(); + } + ImGui.SameLine(); + UiThemeUtils.InfoIcon("Mount used for ground travel. \"Mount Roulette\" picks a random mount."); } - [MethodImpl(MethodImplOptions.NoInlining)] static NavigationConfigComponent() { int num = 1; List<(uint, string)> list = new List<(uint, string)>(num); CollectionsMarshal.SetCount(list, num); - CollectionsMarshal.AsSpan(list)[0] = (0u, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(566069387)); + CollectionsMarshal.AsSpan(list)[0] = (0u, "Mount Roulette"); DefaultMounts = list; } - - static StringComparer _202B_206D_206F_202E_206B_206A_206D_200C_206B_206E_206B_200B_200E_200D_206C_202D_200F_202B_206E_206F_200E_206C_206A_206D_202C_202E_200B_200B_206B_200B_200C_202E_200E_202B_206A_200E_206A_206C_202D_202D_202E() - { - return StringComparer.OrdinalIgnoreCase; - } - - static bool _200C_206B_206F_206D_200B_200B_202A_206A_200C_202D_200C_202C_206D_202B_202E_206D_202D_206F_200E_200F_206B_200E_206C_206F_202A_202D_202B_202A_206F_206D_200D_200D_202B_200C_206F_202A_200C_206B_202B_206A_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static string _200D_200E_202A_200C_200B_202C_202D_206E_202C_206B_206C_206A_206B_200E_202C_206F_200B_200D_200E_206C_200B_206D_202E_206F_200E_206D_206F_202E_200D_202C_202A_202D_202E_202D_202E_206C_206C_202D_202A_200F_202E(string P_0) - { - return P_0.ToLowerInvariant(); - } - - static bool _200B_200F_200C_206F_202B_202B_206D_206D_200C_206D_206F_206B_206D_202E_200F_202A_200B_200B_202C_202B_206A_206D_202D_206A_202E_206D_206E_206A_202C_202E_200C_200F_206E_200C_202B_202C_202B_200C_206B_206E_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.Equals(P_1, P_2); - } - - static CultureInfo _202E_206D_202B_206B_206B_206D_202E_202E_200D_202C_202B_206D_206B_200E_206A_206D_206A_200C_206C_202E_200E_202B_200F_206F_202A_202D_200D_202E_206D_200C_202C_200F_206A_202E_202B_206B_200B_206B_206D_206C_202E() - { - return CultureInfo.InvariantCulture; - } - - static TextInfo _202E_200D_200C_202D_206E_202C_206C_200B_202D_206E_202C_200D_206E_206B_200E_202E_200D_206E_200E_202B_206F_206A_200F_202E_202C_202B_200F_206E_200E_202A_200B_206F_202C_200E_206E_200C_200F_206B_206B_200E_202E(CultureInfo P_0) - { - return P_0.TextInfo; - } - - static string _202D_206F_200D_200E_200D_206B_202C_206D_206B_206E_202C_202C_206D_202A_202D_202A_202C_206D_200F_206C_200E_206D_202A_202B_206C_206C_206F_206A_202C_202D_206F_200E_206F_200B_206B_206A_206E_200F_202C_206F_202E(TextInfo P_0, string P_1) - { - return P_0.ToTitleCase(P_1); - } - - static string[] _202A_202D_202A_200B_206E_200D_202C_206B_200D_202D_200E_200C_206E_202B_200E_206B_200F_202A_206C_206C_206B_200E_202C_206E_202A_202C_200E_200F_200E_206E_202E_200E_206A_202E_206A_202C_200B_200E_206A_200E_202E(string P_0, char P_1, StringSplitOptions P_2) - { - return P_0.Split(P_1, P_2); - } - - static int _206D_206B_206B_202C_206C_206C_202A_202A_200E_202A_200F_200E_206D_206D_202D_202D_206F_202D_202B_206D_200B_206B_202D_202D_202E_202B_202D_206A_206E_200E_200D_206D_200B_202A_206C_202B_206E_200B_200D_206F_202E(string P_0) - { - return P_0.Length; - } - - static char _206F_200C_200D_206B_206C_206B_206C_206C_206F_206D_206C_200E_200B_202B_200F_206A_202E_202D_200C_200C_206F_202D_202D_200C_202A_206A_202C_200D_202E_200D_206D_206B_202B_206A_202A_206E_200C_202A_202C_202C_202E(string P_0, int P_1) - { - return P_0[P_1]; - } - - static string _202C_200C_200D_202E_206E_202B_200E_202A_206E_206D_202C_206A_206F_200C_202D_206E_200E_206C_202D_200F_206B_206A_202E_202A_200D_200F_200B_202A_200C_202E_200E_206C_202B_206B_206D_206F_206A_202C_202D_202D_202E(string P_0, int P_1) - { - return P_0.Substring(P_1); - } - - static ReadOnlySpan<char> _202D_202D_202C_206C_206B_206E_206B_206A_206F_202E_206C_200E_206A_202C_200D_206F_206E_206D_206A_206A_202E_202D_202B_202C_202E_202E_202D_206C_206A_200B_200C_206D_206B_200D_202D_206D_202E_200D_202B_202A_202E(string P_0) - { - return P_0; - } - - static string _202E_200B_206D_200F_200E_202D_200B_206F_200B_206F_200D_202D_200B_200D_206B_200C_202D_206A_202B_202B_206D_202D_202E_206C_206E_200D_202A_206F_202E_202B_202E_206B_202A_200C_200C_202A_202E_206A_206F_202A_202E(ReadOnlySpan<char> P_0, ReadOnlySpan<char> P_1) - { - return string.Concat(P_0, P_1); - } - - static string _200D_206C_202D_202E_206E_200C_202D_206D_206F_206F_202A_206F_206E_200E_206D_202E_202B_206F_206A_200C_202B_206A_206A_202E_200C_206F_206E_200C_206D_200E_200E_202B_206E_202D_202D_202B_206D_200E_202B_200D_202E(string P_0, string[] P_1) - { - return string.Join(P_0, P_1); - } - - static void _200D_206C_206E_202A_202B_202B_202C_200F_200C_206F_202D_202D_202D_200E_200C_200F_206E_206B_206E_200E_202A_206D_200F_200F_206A_202E_202C_206D_202B_202C_202C_200D_202C_206E_202B_206D_206B_206A_200D_202D_202E() - { - ImGui.SameLine(); - } - - static ImRaii.DisabledDisposable _202E_202E_202B_202E_200E_200D_202E_200C_200D_206A_200D_200D_202E_200C_200B_206C_206B_202B_200E_200F_206F_206B_206A_202C_200B_206E_200F_206A_200E_206B_202B_206D_200F_202D_202E_202D_206B_206A_202B_206B_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static void _206B_200E_206C_200D_202D_206A_202C_200B_206D_202E_206B_202C_202B_206D_206D_200C_200F_202A_206D_202B_202B_202E_202B_206A_206C_202C_202B_202C_206B_200F_206E_200B_206E_200B_202E_202D_206F_206C_206A_206F_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static int _202E_200C_200E_206A_206F_206D_202C_200F_206D_206A_202A_206E_200E_202E_200D_202E_200F_202B_206E_202C_200E_200E_206C_200C_206F_202E_206B_202E_202B_206F_206C_206E_200E_202B_200D_206A_202D_206A_202E_200F_202E(int P_0, int P_1, int P_2) - { - return Math.Clamp(P_0, P_1, P_2); - } - - static Vector2 _202A_200B_200F_206C_200C_202E_200D_200D_200D_202C_206F_206B_206B_202B_206F_206A_206C_202A_200B_200B_200E_202B_202D_200E_200E_200E_206A_202B_202B_206E_200F_206B_200C_202D_202D_206B_202E_200D_206E_202A_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static float _202E_206C_200C_202D_202C_200D_206F_202E_206C_206C_206C_206F_206B_206E_206F_206C_200D_200B_206A_200F_200D_200C_202A_202B_206A_206F_200B_206F_202D_200B_202A_200F_202C_202B_200F_202E_200F_202E_206A_206E_202E(float P_0, float P_1) - { - return MathF.Min(P_0, P_1); - } - - static void _202E_206C_202E_202E_200F_202A_206A_206E_202C_206E_200B_200C_202E_206D_206E_202B_200C_200C_200E_206F_206A_206B_202B_206B_206D_202D_200C_202B_206C_206C_200B_202C_206D_206F_200F_206E_202B_202B_206A_202C_202E(float P_0) - { - ImGui.SetNextItemWidth(P_0); - } } diff --git a/Questionable/Questionable.Windows.ConfigComponents/NotificationConfigComponent.cs b/Questionable/Questionable.Windows.ConfigComponents/NotificationConfigComponent.cs index 4ce6dc0..1ca90d6 100644 --- a/Questionable/Questionable.Windows.ConfigComponents/NotificationConfigComponent.cs +++ b/Questionable/Questionable.Windows.ConfigComponents/NotificationConfigComponent.cs @@ -16,65 +16,6 @@ namespace Questionable.Windows.ConfigComponents; internal sealed class NotificationConfigComponent : ConfigComponent { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<string, bool> _003C_003E9__8_0; - - public static Func<XivChatType, bool> _003C_003E9__8_1; - - public static Func<XivChatType, string> _003C_003E9__8_2; - - internal bool _003C_002Ector_003Eb__8_0(string n) - { - return _206D_200C_206E_202D_206B_206E_200C_200E_200B_200E_200E_206E_206E_206B_206E_200E_206A_200E_200F_202D_202D_200B_200D_200D_200F_206B_202A_200D_206D_202D_202A_200C_206E_206A_200F_206F_206A_202D_200C_206C_202E(n) != null; - } - - internal bool _003C_002Ector_003Eb__8_1(XivChatType x) - { - return x != XivChatType.StandardEmote; - } - - internal string _003C_002Ector_003Eb__8_2(XivChatType t) - { - XivChatTypeInfoAttribute? attribute = t.GetAttribute<XivChatTypeInfoAttribute>(); - return ((attribute != null) ? _206D_200F_202D_200B_200B_202E_206E_202A_202D_206A_202A_200D_200B_200B_206A_202D_200C_200C_202A_202A_200C_200D_200D_200B_206F_202B_200D_202E_200D_206E_206D_206A_202D_206A_202C_202D_202C_200F_200D_206E_202E(attribute) : null) ?? t.ToString(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal string _003C_002Ecctor_003Eb__11_0(int i) - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(9, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(602783001)); - defaultInterpolatedStringHandler.AppendFormatted(i, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1462241587)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(278560641)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal string _003C_002Ecctor_003Eb__11_1(int i) - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(8, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1592517238)); - defaultInterpolatedStringHandler.AppendFormatted(i, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1194352829)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1770632532)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - static string _206D_200C_206E_202D_206B_206E_200C_200E_200B_200E_200E_206E_206E_206B_206E_200E_206A_200E_200F_202D_202D_200B_200D_200D_200F_206B_202A_200D_206D_202D_202A_200C_206E_206A_200F_206F_206A_202D_200C_206C_202E(string P_0) - { - return WindowsSounds.ResolvePath(P_0); - } - - static string _206D_200F_202D_200B_200B_202E_206E_202A_202D_206A_202A_200D_200B_200B_206A_202D_200C_200C_202A_202A_200C_200D_200D_200B_206F_202B_200D_202E_200D_206E_206D_206A_202D_206A_202C_202D_202C_200F_200D_206E_202E(XivChatTypeInfoAttribute P_0) - { - return P_0.FancyName; - } - } - private static readonly string[] CuratedSoundNames; private readonly OutOfGameNotifier _notifier; @@ -95,494 +36,147 @@ internal sealed class NotificationConfigComponent : ConfigComponent : base(pluginInterface, configuration) { _notifier = notifier; - _soundFiles = CuratedSoundNames.Where((string n) => _003C_003Ec._206D_200C_206E_202D_206B_206E_200C_200E_200B_200E_200E_206E_206E_206B_206E_200E_206A_200E_200F_202D_202D_200B_200D_200D_200F_206B_202A_200D_206D_202D_202A_200C_206E_206A_200F_206F_206A_202D_200C_206C_202E(n) != null).ToArray(); + _soundFiles = CuratedSoundNames.Where((string n) => WindowsSounds.ResolvePath(n) != null).ToArray(); _soundLabels = _soundFiles.Select(SoundLabel).ToArray(); _xivChatTypes = (from x in Enum.GetValues<XivChatType>() where x != XivChatType.StandardEmote select x).ToArray(); - _chatTypeNames = _xivChatTypes.Select(delegate(XivChatType t) - { - XivChatTypeInfoAttribute? attribute = t.GetAttribute<XivChatTypeInfoAttribute>(); - return ((attribute != null) ? _003C_003Ec._206D_200F_202D_200B_200B_202E_206E_202A_202D_206A_202A_200D_200B_200B_206A_202D_200C_200C_202A_202A_200C_200D_200D_200B_206F_202B_200D_202E_200D_206E_206D_206A_202D_206A_202C_202D_202C_200F_200D_206E_202E(attribute) : null) ?? t.ToString(); - }).ToArray(); + _chatTypeNames = _xivChatTypes.Select((XivChatType t) => t.GetAttribute<XivChatTypeInfoAttribute>()?.FancyName ?? t.ToString()).ToArray(); } - [MethodImpl(MethodImplOptions.NoInlining)] private static string SoundLabel(string value) { - int num = (_202B_200D_200B_206A_206A_206A_206E_206D_202A_202E_202A_206C_200D_206A_202D_200B_200B_200B_206C_206F_202A_200B_200E_200F_206C_206D_202E_202D_206B_206D_206C_200E_202D_206A_202C_206A_202A_206B_200C_200C_202E(value) ? (-600532132) : (-600532129)); - while (true) + if (!string.IsNullOrEmpty(value)) { - int num2 = num; - int num3 = -600532130; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-989655231); - case 1: - return _206D_200D_200F_202D_202C_202A_200D_206C_200C_200F_202B_202E_206F_200C_202C_206F_206F_202B_202A_206B_206B_202C_200D_206C_206A_202D_200C_200B_200B_200F_206A_206D_206C_200C_200F_200D_200E_200D_200F_202E(value); - case 0: - goto IL_0058; - } - continue; - IL_0058: - num = -600532129; + return Path.GetFileNameWithoutExtension(value); } + return "(Default beep)"; } - [MethodImpl(MethodImplOptions.NoInlining)] public override void DrawTab() { - UiThemeUtils.SectionHeader(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1178059847)); + UiThemeUtils.SectionHeader("Notifications"); (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple = UiThemeUtils.BeginCard(); Vector2 item = tuple.ContentStartPos; float item2 = tuple.AvailableWidth; ImDrawListPtr item3 = tuple.DrawList; bool value = base.Configuration.Notifications.Enabled; - int num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(860957043), ref value)) ? 1450201521 : 1450201522); - bool value4 = default(bool); - bool value5 = default(bool); - Vector2 item7 = default(Vector2); - float item8 = default(float); - ImDrawListPtr item9 = default(ImDrawListPtr); - while (true) + if (UiThemeUtils.WrappedCheckbox("Enable notifications when manual interaction is required", ref value)) { - int num2 = num; - int num3 = 1450201520; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + base.Configuration.Notifications.Enabled = value; + Save(); + } + using (ImRaii.Disabled(!base.Configuration.Notifications.Enabled)) + { + int currentItem = Array.IndexOf(_xivChatTypes, base.Configuration.Notifications.ChatType); + if (currentItem == -1) + { + currentItem = 0; + } + float width = MathF.Min(260f, ImGui.GetContentRegionAvail().X); + if (UiThemeUtils.SearchableCombo("Chat channel", ref currentItem, _chatTypeNames, ref _chatChannelSearchText, width)) + { + base.Configuration.Notifications.ChatType = _xivChatTypes[currentItem]; + Save(); + } + } + UiThemeUtils.EndCard(item, item2, item3); + using (ImRaii.Disabled(!base.Configuration.Notifications.Enabled)) + { + UiThemeUtils.SectionSpacing(); + UiThemeUtils.SectionHeader("Out-of-game notifications"); + (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple2 = UiThemeUtils.BeginCard(); + Vector2 item4 = tuple2.ContentStartPos; + float item5 = tuple2.AvailableWidth; + ImDrawListPtr item6 = tuple2.DrawList; + bool value2 = base.Configuration.Notifications.FlashTaskbar; + if (UiThemeUtils.WrappedCheckbox("Flash taskbar icon", ref value2)) + { + base.Configuration.Notifications.FlashTaskbar = value2; + Save(); + } + bool value3 = base.Configuration.Notifications.ShowTrayMessage; + if (UiThemeUtils.WrappedCheckbox("Show tray notification", ref value3)) + { + base.Configuration.Notifications.ShowTrayMessage = value3; + Save(); + } + bool value4 = base.Configuration.Notifications.PlaySound; + if (UiThemeUtils.WrappedCheckbox("Play a sound", ref value4)) + { + base.Configuration.Notifications.PlaySound = value4; + Save(); + } + using (ImRaii.Disabled(!base.Configuration.Notifications.PlaySound)) + { + using (ImRaii.PushIndent()) + { + int currentItem2 = Array.IndexOf(_soundFiles, base.Configuration.Notifications.SoundFile); + float width2 = MathF.Min(ImGui.GetContentRegionAvail().X * 0.6f, 260f); + string previewOverride = ((currentItem2 < 0) ? SoundLabel(base.Configuration.Notifications.SoundFile) : null); + if (UiThemeUtils.SearchableCombo("Sound", ref currentItem2, _soundLabels, ref _soundSearchText, width2, previewOverride)) + { + base.Configuration.Notifications.SoundFile = _soundFiles[currentItem2]; + Save(); + } + ImGui.SameLine(); + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Play, "Test")) + { + _notifier.PlayAlertSound(WindowsSounds.ResolvePath(base.Configuration.Notifications.SoundFile)); + } + } + } + bool value5 = base.Configuration.Notifications.OnlyWhenUnfocused; + if (UiThemeUtils.WrappedCheckbox("Only when the game is not focused", ref value5, "Tray notification and sound are suppressed while the game window is focused. Taskbar flashing already stops when you focus the game.")) + { + base.Configuration.Notifications.OnlyWhenUnfocused = value5; + Save(); + } + UiThemeUtils.EndCard(item4, item5, item6); + UiThemeUtils.SectionSpacing(); + UiThemeUtils.SectionHeader("Alert for"); + ImGui.SameLine(); + UiThemeUtils.InfoIcon("Which situations raise an out-of-game alert (taskbar / tray / sound): when a step needs you, when an auto-run duty / single-player duty finishes, and when a stop condition halts automation."); + (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple3 = UiThemeUtils.BeginCard(); + Vector2 item7 = tuple3.ContentStartPos; + float item8 = tuple3.AvailableWidth; + ImDrawListPtr item9 = tuple3.DrawList; + InlineArray4<UiThemeUtils.GridCheckbox> buffer = default(InlineArray4<UiThemeUtils.GridCheckbox>); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray4<UiThemeUtils.GridCheckbox>, UiThemeUtils.GridCheckbox>(ref buffer, 0) = new UiThemeUtils.GridCheckbox("Duties", base.Configuration.Notifications.AlertForDuties); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray4<UiThemeUtils.GridCheckbox>, UiThemeUtils.GridCheckbox>(ref buffer, 1) = new UiThemeUtils.GridCheckbox("Single-player duties", base.Configuration.Notifications.AlertForSinglePlayerDuties); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray4<UiThemeUtils.GridCheckbox>, UiThemeUtils.GridCheckbox>(ref buffer, 2) = new UiThemeUtils.GridCheckbox("Snipe steps", base.Configuration.Notifications.AlertForSnipe); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray4<UiThemeUtils.GridCheckbox>, UiThemeUtils.GridCheckbox>(ref buffer, 3) = new UiThemeUtils.GridCheckbox("Stop conditions", base.Configuration.Notifications.AlertForStopConditions); + ReadOnlySpan<UiThemeUtils.GridCheckbox> items = global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<InlineArray4<UiThemeUtils.GridCheckbox>, UiThemeUtils.GridCheckbox>(in buffer, 4); + switch (UiThemeUtils.CheckboxGrid("alertfor", items)) { case 0: - num = 1450201522; - break; - case 2: - base.Configuration.Notifications.Enabled = value; + base.Configuration.Notifications.AlertForDuties = !base.Configuration.Notifications.AlertForDuties; Save(); - num = 1450201521; break; case 1: - { - ImRaii.DisabledDisposable disabledDisposable = _206D_206A_206C_206D_200C_202A_202D_206D_206B_202E_206B_206B_200C_200B_202D_202D_200D_206B_200C_200B_206C_206B_200E_206B_202A_202B_202D_206D_206D_200C_200C_200D_206C_206C_206E_200F_206E_202D_202A_206A_202E(!base.Configuration.Notifications.Enabled); - try - { - int currentItem = Array.IndexOf(_xivChatTypes, base.Configuration.Notifications.ChatType); - num = ((currentItem != -1) ? 55349641 : 55349647); - while (true) - { - int num7 = num; - num3 = 55349645; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = 55349647; - break; - case 4: - { - float width = _202D_200E_202B_202C_202A_206E_202C_202B_206A_202D_206A_200E_200F_200E_200F_200D_200D_206F_202B_200F_206D_206F_202E_202B_206D_202D_202D_202C_206D_206C_206A_200B_202B_200E_200C_200C_202C_206A_202C_200C_202E(260f, _206D_202E_202E_206A_206F_206E_200C_200B_202A_202D_206D_200B_202C_200E_200D_202C_202D_202B_202A_202D_206E_206B_200F_206D_206D_206A_206D_206D_200E_206A_206A_206B_206F_202B_200B_206A_206E_200C_202E_202A_202E().X); - num = ((!UiThemeUtils.SearchableCombo(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1712169255), ref currentItem, _chatTypeNames, ref _chatChannelSearchText, width)) ? 55349644 : 55349645); - break; - } - case 0: - base.Configuration.Notifications.ChatType = _xivChatTypes[currentItem]; - Save(); - num = 55349644; - break; - case 2: - currentItem = 0; - num = 55349641; - break; - case 1: - goto end_IL_011e; - } - continue; - end_IL_011e: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? 1015162828 : 1015162831); - while (true) - { - int num8 = num; - num3 = 1015162829; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 1: - goto end_IL_020f; - case 2: - _206C_206B_206C_206E_200E_202C_200E_202E_202E_200D_202A_200D_206C_200D_206F_206C_202E_200B_206D_202E_200D_200D_202D_202B_206E_200B_206B_202B_200D_202C_200B_200B_206D_206D_202C_202E_200D_206C_206C_206D_202E((IDisposable)disabledDisposable); - num = 1015162828; - break; - case 0: - num = 1015162831; - break; - } - continue; - end_IL_020f: - break; - } - } - UiThemeUtils.EndCard(item, item2, item3); - disabledDisposable = _206D_206A_206C_206D_200C_202A_202D_206D_206B_202E_206B_206B_200C_200B_202D_202D_200D_206B_200C_200B_206C_206B_200E_206B_202A_202B_202D_206D_206D_200C_200C_200D_206C_206C_206E_200F_206E_202D_202A_206A_202E(!base.Configuration.Notifications.Enabled); - try - { - UiThemeUtils.SectionSpacing(); - UiThemeUtils.SectionHeader(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-594783107)); - (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple2 = UiThemeUtils.BeginCard(); - Vector2 item4 = tuple2.ContentStartPos; - float item5 = tuple2.AvailableWidth; - ImDrawListPtr item6 = tuple2.DrawList; - bool value2 = base.Configuration.Notifications.FlashTaskbar; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1116257301), ref value2)) ? (-62751594) : (-62751599)); - while (true) - { - int num11 = num; - num3 = -62751598; - num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) - { - case 6: - value4 = base.Configuration.Notifications.PlaySound; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(922936492), ref value4)) ? (-62751600) : (-62751593)); - break; - case 5: - base.Configuration.Notifications.PlaySound = value4; - Save(); - num = -62751600; - break; - case 0: - num = -62751599; - break; - case 3: - base.Configuration.Notifications.FlashTaskbar = value2; - Save(); - num = -62751594; - break; - case 4: - value5 = base.Configuration.Notifications.ShowTrayMessage; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-212691953), ref value5)) ? (-62751596) : (-62751597)); - break; - case 1: - base.Configuration.Notifications.ShowTrayMessage = value5; - Save(); - num = -62751596; - break; - case 2: - { - ImRaii.DisabledDisposable disabledDisposable2 = _206D_206A_206C_206D_200C_202A_202D_206D_206B_202E_206B_206B_200C_200B_202D_202D_200D_206B_200C_200B_206C_206B_200E_206B_202A_202B_202D_206D_206D_200C_200C_200D_206C_206C_206E_200F_206E_202D_202A_206A_202E(!base.Configuration.Notifications.PlaySound); - try - { - ImRaii.IndentDisposable indentDisposable = _202E_202C_206C_200F_206C_206D_202E_202B_202E_206A_200D_202B_200E_200D_206C_200D_206B_200D_206B_200B_206F_200B_206A_206D_206B_206D_200B_200C_202D_200E_206E_206F_200C_200C_200C_206B_206E_200E_200E_206D_202E(1, true); - try - { - int currentItem2 = Array.IndexOf(_soundFiles, base.Configuration.Notifications.SoundFile); - float width2 = _202D_200E_202B_202C_202A_206E_202C_202B_206A_202D_206A_200E_200F_200E_200F_200D_200D_206F_202B_200F_206D_206F_202E_202B_206D_202D_202D_202C_206D_206C_206A_200B_202B_200E_200C_200C_202C_206A_202C_200C_202E(_206D_202E_202E_206A_206F_206E_200C_200B_202A_202D_206D_200B_202C_200E_200D_202C_202D_202B_202A_202D_206E_206B_200F_206D_206D_206A_206D_206D_200E_206A_206A_206B_206F_202B_200B_206A_206E_200C_202E_202A_202E().X * 0.6f, 260f); - num = ((currentItem2 < 0) ? (-996474497) : (-996474498)); - while (true) - { - int num14 = num; - num3 = -996474499; - num4 = num14; - object obj; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 5: - base.Configuration.Notifications.SoundFile = _soundFiles[currentItem2]; - Save(); - num = -996474500; - continue; - case 3: - obj = null; - break; - case 1: - _200D_202B_206F_202B_206E_202E_202D_200C_202A_202B_206D_200D_206A_202A_202C_202D_202D_200C_200F_202C_200F_206E_206F_206D_206B_206D_202E_200E_202A_206C_206C_200C_202E_202D_206D_206F_206E_202E_202B_200E_202E(); - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Play, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1219773276))) ? (-996474503) : (-996474501)); - continue; - case 6: - _202B_206C_200E_206E_200B_200E_200F_206E_200C_200B_202E_202E_202D_206E_200E_206E_202B_200F_202E_206C_202C_200C_202A_200F_202C_202B_202E_206C_206A_202D_200F_200F_206B_200C_206A_200E_202A_206D_206B_206D_202E(_notifier, _202D_200D_202B_206D_206F_206C_202E_202A_200D_206C_206B_200B_200D_202C_202E_206A_200F_202A_200F_200C_202C_202B_202E_206C_206B_202C_200E_200B_202C_202B_206F_202C_206B_200E_206D_206C_202D_200F_206D_206D_202E(base.Configuration.Notifications.SoundFile)); - num = -996474503; - continue; - case 0: - num = -996474498; - continue; - case 2: - obj = SoundLabel(base.Configuration.Notifications.SoundFile); - break; - case 4: - goto end_IL_04a4; - } - string previewOverride = (string)obj; - num = ((!UiThemeUtils.SearchableCombo(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(51923745), ref currentItem2, _soundLabels, ref _soundSearchText, width2, previewOverride)) ? (-996474500) : (-996474504)); - continue; - end_IL_04a4: - break; - } - } - finally - { - num = ((indentDisposable == null) ? (-363189453) : (-363189456)); - while (true) - { - int num15 = num; - num3 = -363189454; - num4 = num15; - int num16 = num4 + num3; - int num17 = num4 & num3; - switch (num16 - (num17 + num17)) - { - case 0: - num = -363189456; - break; - case 1: - goto end_IL_0604; - case 2: - _206C_206B_206C_206E_200E_202C_200E_202E_202E_200D_202A_200D_206C_200D_206F_206C_202E_200B_206D_202E_200D_200D_202D_202B_206E_200B_206B_202B_200D_202C_200B_200B_206D_206D_202C_202E_200D_206C_206C_206D_202E((IDisposable)indentDisposable); - num = -363189453; - break; - } - continue; - end_IL_0604: - break; - } - } - } - finally - { - num = ((disabledDisposable2 == null) ? 33973152 : 33973155); - while (true) - { - int num18 = num; - num3 = 33973154; - num4 = num18; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 33973155; - break; - case 1: - _206C_206B_206C_206E_200E_202C_200E_202E_202E_200D_202A_200D_206C_200D_206F_206C_202E_200B_206D_202E_200D_200D_202D_202B_206E_200B_206B_202B_200D_202C_200B_200B_206D_206D_202C_202E_200D_206C_206C_206D_202E((IDisposable)disabledDisposable2); - num = 33973152; - break; - case 2: - goto end_IL_0671; - } - continue; - end_IL_0671: - break; - } - } - bool value3 = base.Configuration.Notifications.OnlyWhenUnfocused; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1501040901), ref value3, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-468946821))) ? (-1567407838) : (-1567407833)); - while (true) - { - int num19 = num; - num3 = -1567407840; - num4 = num19; - int num20 = num4 + num3; - int num21 = num4 & num3; - switch (num20 - (num21 + num21)) - { - case 4: - base.Configuration.Notifications.AlertForSnipe = !base.Configuration.Notifications.AlertForSnipe; - Save(); - num = -1567407832; - break; - case 1: - goto IL_0782; - case 7: - base.Configuration.Notifications.OnlyWhenUnfocused = value3; - Save(); - num = -1567407838; - break; - case 5: - goto IL_07db; - case 2: - { - UiThemeUtils.EndCard(item4, item5, item6); - UiThemeUtils.SectionSpacing(); - UiThemeUtils.SectionHeader(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1455636673)); - _200D_202B_206F_202B_206E_202E_202D_200C_202A_202B_206D_200D_206A_202A_202C_202D_202D_200C_200F_202C_200F_206E_206F_206D_206B_206D_202E_200E_202A_206C_206C_200C_202E_202D_206D_206F_206E_202E_202B_200E_202E(); - UiThemeUtils.InfoIcon(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1061858222)); - (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple3 = UiThemeUtils.BeginCard(); - item7 = tuple3.ContentStartPos; - item8 = tuple3.AvailableWidth; - item9 = tuple3.DrawList; - InlineArray4<UiThemeUtils.GridCheckbox> buffer = default(InlineArray4<UiThemeUtils.GridCheckbox>); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray4<UiThemeUtils.GridCheckbox>, UiThemeUtils.GridCheckbox>(ref buffer, 0) = new UiThemeUtils.GridCheckbox(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1354247148), base.Configuration.Notifications.AlertForDuties); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray4<UiThemeUtils.GridCheckbox>, UiThemeUtils.GridCheckbox>(ref buffer, 1) = new UiThemeUtils.GridCheckbox(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(134232088), base.Configuration.Notifications.AlertForSinglePlayerDuties); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray4<UiThemeUtils.GridCheckbox>, UiThemeUtils.GridCheckbox>(ref buffer, 2) = new UiThemeUtils.GridCheckbox(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(898378632), base.Configuration.Notifications.AlertForSnipe); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray4<UiThemeUtils.GridCheckbox>, UiThemeUtils.GridCheckbox>(ref buffer, 3) = new UiThemeUtils.GridCheckbox(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1315244177), base.Configuration.Notifications.AlertForStopConditions); - ReadOnlySpan<UiThemeUtils.GridCheckbox> items = global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<InlineArray4<UiThemeUtils.GridCheckbox>, UiThemeUtils.GridCheckbox>(in buffer, 4); - switch (UiThemeUtils.CheckboxGrid(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1373958987), items)) - { - case 2: - break; - case 3: - goto IL_0782; - case 0: - goto IL_07db; - default: - goto IL_0950; - case 1: - goto IL_095c; - } - goto case 4; - } - case 6: - goto IL_095c; - case 3: - num = -1567407833; - break; - case 0: - num = -1567407832; - break; - case 8: - { - UiThemeUtils.EndCard(item7, item8, item9); - return; - } - IL_095c: - base.Configuration.Notifications.AlertForSinglePlayerDuties = !base.Configuration.Notifications.AlertForSinglePlayerDuties; - Save(); - num = -1567407832; - break; - IL_0950: - num = -1567407840; - break; - IL_07db: - base.Configuration.Notifications.AlertForDuties = !base.Configuration.Notifications.AlertForDuties; - Save(); - num = -1567407832; - break; - IL_0782: - base.Configuration.Notifications.AlertForStopConditions = !base.Configuration.Notifications.AlertForStopConditions; - Save(); - num = -1567407832; - break; - } - } - } - } - } - } - finally - { - num = ((disabledDisposable == null) ? (-307318706) : (-307318705)); - while (true) - { - int num22 = num; - num3 = -307318706; - num4 = num22; - int num23 = num4 + num3; - int num24 = num4 & num3; - switch (num23 - (num24 + num24)) - { - case 2: - num = -307318705; - break; - case 0: - goto end_IL_09d8; - case 1: - _206C_206B_206C_206E_200E_202C_200E_202E_202E_200D_202A_200D_206C_200D_206F_206C_202E_200B_206D_202E_200D_200D_202D_202B_206E_200B_206B_202B_200D_202C_200B_200B_206D_206D_202C_202E_200D_206C_206C_206D_202E((IDisposable)disabledDisposable); - num = -307318706; - break; - } - continue; - end_IL_09d8: - break; - } - } - } + base.Configuration.Notifications.AlertForSinglePlayerDuties = !base.Configuration.Notifications.AlertForSinglePlayerDuties; + Save(); + break; + case 2: + base.Configuration.Notifications.AlertForSnipe = !base.Configuration.Notifications.AlertForSnipe; + Save(); + break; + case 3: + base.Configuration.Notifications.AlertForStopConditions = !base.Configuration.Notifications.AlertForStopConditions; + Save(); + break; } + UiThemeUtils.EndCard(item7, item8, item9); } } static NotificationConfigComponent() { List<string> list = new List<string>(); - list.AddRange(_200F_206E_206E_200F_200E_202D_202C_202E_202B_200D_202B_200F_200B_206D_202B_202E_200D_200B_200E_200F_200E_202D_200B_202C_206D_206F_200C_206F_200C_200B_206B_202A_206E_200C_206C_202B_200D_200D_206E_202B_202E(1, 10).Select([MethodImpl(MethodImplOptions.NoInlining)] (int i) => - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(9, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(602783001)); - defaultInterpolatedStringHandler.AppendFormatted(i, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1462241587)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(278560641)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - })); - list.AddRange(_200F_206E_206E_200F_200E_202D_202C_202E_202B_200D_202B_200F_200B_206D_202B_202E_200D_200B_200E_200F_200E_202D_200B_202C_206D_206F_200C_206F_200C_200B_206B_202A_206E_200C_206C_202B_200D_200D_206E_202B_202E(1, 10).Select([MethodImpl(MethodImplOptions.NoInlining)] (int i) => - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(8, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1592517238)); - defaultInterpolatedStringHandler.AppendFormatted(i, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1194352829)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1770632532)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - })); + list.AddRange(from i in Enumerable.Range(1, 10) + select $"Alarm{i:D2}.wav"); + list.AddRange(from i in Enumerable.Range(1, 10) + select $"Ring{i:D2}.wav"); CuratedSoundNames = list.ToArray(); } - - static bool _202B_200D_200B_206A_206A_206A_206E_206D_202A_202E_202A_206C_200D_206A_202D_200B_200B_200B_206C_206F_202A_200B_200E_200F_206C_206D_202E_202D_206B_206D_206C_200E_202D_206A_202C_206A_202A_206B_200C_200C_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static string _206D_200D_200F_202D_202C_202A_200D_206C_200C_200F_202B_202E_206F_200C_202C_206F_206F_202B_202A_206B_206B_202C_200D_206C_206A_202D_200C_200B_200B_200F_206A_206D_206C_200C_200F_200D_200E_200D_200F_202E(string P_0) - { - return Path.GetFileNameWithoutExtension(P_0); - } - - static ImRaii.DisabledDisposable _206D_206A_206C_206D_200C_202A_202D_206D_206B_202E_206B_206B_200C_200B_202D_202D_200D_206B_200C_200B_206C_206B_200E_206B_202A_202B_202D_206D_206D_200C_200C_200D_206C_206C_206E_200F_206E_202D_202A_206A_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static Vector2 _206D_202E_202E_206A_206F_206E_200C_200B_202A_202D_206D_200B_202C_200E_200D_202C_202D_202B_202A_202D_206E_206B_200F_206D_206D_206A_206D_206D_200E_206A_206A_206B_206F_202B_200B_206A_206E_200C_202E_202A_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static float _202D_200E_202B_202C_202A_206E_202C_202B_206A_202D_206A_200E_200F_200E_200F_200D_200D_206F_202B_200F_206D_206F_202E_202B_206D_202D_202D_202C_206D_206C_206A_200B_202B_200E_200C_200C_202C_206A_202C_200C_202E(float P_0, float P_1) - { - return MathF.Min(P_0, P_1); - } - - static void _206C_206B_206C_206E_200E_202C_200E_202E_202E_200D_202A_200D_206C_200D_206F_206C_202E_200B_206D_202E_200D_200D_202D_202B_206E_200B_206B_202B_200D_202C_200B_200B_206D_206D_202C_202E_200D_206C_206C_206D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static ImRaii.IndentDisposable _202E_202C_206C_200F_206C_206D_202E_202B_202E_206A_200D_202B_200E_200D_206C_200D_206B_200D_206B_200B_206F_200B_206A_206D_206B_206D_200B_200C_202D_200E_206E_206F_200C_200C_200C_206B_206E_200E_200E_206D_202E(int P_0, bool P_1) - { - return ImRaii.PushIndent(P_0, P_1); - } - - static void _200D_202B_206F_202B_206E_202E_202D_200C_202A_202B_206D_200D_206A_202A_202C_202D_202D_200C_200F_202C_200F_206E_206F_206D_206B_206D_202E_200E_202A_206C_206C_200C_202E_202D_206D_206F_206E_202E_202B_200E_202E() - { - ImGui.SameLine(); - } - - static string _202D_200D_202B_206D_206F_206C_202E_202A_200D_206C_206B_200B_200D_202C_202E_206A_200F_202A_200F_200C_202C_202B_202E_206C_206B_202C_200E_200B_202C_202B_206F_202C_206B_200E_206D_206C_202D_200F_206D_206D_202E(string P_0) - { - return WindowsSounds.ResolvePath(P_0); - } - - static void _202B_206C_200E_206E_200B_200E_200F_206E_200C_200B_202E_202E_202D_206E_200E_206E_202B_200F_202E_206C_202C_200C_202A_200F_202C_202B_202E_206C_206A_202D_200F_200F_206B_200C_206A_200E_202A_206D_206B_206D_202E(OutOfGameNotifier P_0, string P_1) - { - P_0.PlayAlertSound(P_1); - } - - static IEnumerable<int> _200F_206E_206E_200F_200E_202D_202C_202E_202B_200D_202B_200F_200B_206D_202B_202E_200D_200B_200E_200F_200E_202D_200B_202C_206D_206F_200C_206F_200C_200B_206B_202A_206E_200C_206C_202B_200D_200D_206E_202B_202E(int P_0, int P_1) - { - return Enumerable.Range(P_0, P_1); - } } diff --git a/Questionable/Questionable.Windows.ConfigComponents/PluginConfigComponent.cs b/Questionable/Questionable.Windows.ConfigComponents/PluginConfigComponent.cs index 0f637df..fc88e6a 100644 --- a/Questionable/Questionable.Windows.ConfigComponents/PluginConfigComponent.cs +++ b/Questionable/Questionable.Windows.ConfigComponents/PluginConfigComponent.cs @@ -1,5 +1,4 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; @@ -7,9 +6,7 @@ using System.Numerics; using System.Runtime.CompilerServices; using System.Text; using Dalamud.Bindings.ImGui; -using Dalamud.Configuration; using Dalamud.Interface; -using Dalamud.Interface.ManagedFontAtlas; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin; using Dalamud.Plugin.Services; @@ -24,35 +21,6 @@ internal sealed class PluginConfigComponent : ConfigComponent { private sealed record PluginProvider(string DisplayName, string InternalName, Uri WebsiteUri, Uri? DalamudRepositoryUri, IReadOnlyList<Uri>? DalamudRepositoryAliases = null) { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<Uri, string> _003C_003E9__25_0; - - internal string _003Cget_AliasUrls_003Eb__25_0(Uri u) - { - return _202A_200E_206F_206F_200B_202C_202A_206F_200D_200F_200C_200B_202E_202E_200D_202B_202B_200F_202A_202E_202E_206D_206C_202C_206D_206B_202E_200C_206B_202A_202B_206A_206D_206D_202D_200E_206E_202D_200B_206D_202E((object)u); - } - - static string _202A_200E_206F_206F_200B_202C_202A_206F_200D_200F_200C_200B_202E_202E_200D_202B_202B_200F_202A_202E_202E_206D_206C_202C_206D_206B_202E_200C_206B_202A_202B_206A_206D_206D_202D_200E_206E_202D_200B_206D_202E(object P_0) - { - return P_0.ToString(); - } - } - - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202C_200C_202B_200C_202D_202B_206A_206A_202E_200D_206A_200F_206C_200E_206B_202D_200B_202B_200D_206F_200C_202C_200D_202B_206F_206A_200C_200B_200F_206C_202A_206A_202A_206B_206A_200F_202C_200B_202E_202D_202E(typeof(PluginProvider).TypeHandle); - } - } - public IReadOnlyList<string> AliasUrls { get @@ -60,7 +28,7 @@ internal sealed class PluginConfigComponent : ConfigComponent IReadOnlyList<string>? readOnlyList = _aliasUrls; if (readOnlyList == null) { - IReadOnlyList<string> readOnlyList2 = DalamudRepositoryAliases?.Select((Uri u) => _003C_003Ec._202A_200E_206F_206F_200B_202C_202A_206F_200D_200F_200C_200B_202E_202E_200D_202B_202B_200F_202A_202E_202E_206D_206C_202C_206D_206B_202E_200C_206B_202A_202B_206A_206D_206D_202D_200E_206E_202D_200B_206D_202E((object)u)).ToList(); + IReadOnlyList<string> readOnlyList2 = DalamudRepositoryAliases?.Select((Uri u) => u.ToString()).ToList(); readOnlyList = (_aliasUrls = readOnlyList2 ?? Array.Empty<string>()); } return readOnlyList; @@ -69,542 +37,52 @@ internal sealed class PluginConfigComponent : ConfigComponent private IReadOnlyList<string>? _aliasUrls; - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206E_202B_200D_206D_206B_206D_200D_202C_206B_206D_200B_206F_206C_202C_200B_202D_200C_206C_202E_206B_206C_206B_202A_200F_200D_200C_206D_200B_200D_200D_206A_206E_200C_202A_200E_206C_200B_200B_202D_202A_202E(); - _206C_202D_200D_206A_206C_202C_200E_202C_202A_206A_206B_206B_206B_202B_206B_202C_206A_200C_202A_200C_200E_202A_206A_202A_202D_202A_206E_202B_200D_202A_202C_202A_206B_202A_206D_202B_200D_202A_202C_206D_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(599096135)); - _206C_202D_200D_206A_206C_202C_200E_202C_202A_206A_206B_206B_206B_202B_206B_202C_206A_200C_202A_200C_200E_202A_206A_202A_202D_202A_206E_202B_200D_202A_202C_202A_206B_202A_206D_202B_200D_202A_202C_206D_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1344697862)); - int num = ((!PrintMembers(stringBuilder)) ? 1856987188 : 1856987191); - while (true) - { - int num2 = num; - int num3 = 1856987189; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1856987191; - break; - case 1: - _206D_202E_206B_200F_206E_202B_202C_200C_206E_206D_202D_202D_206F_206D_202C_202D_206D_206B_202B_202C_200D_206B_206A_202A_200D_202E_202A_202E_200B_200F_200E_202D_200D_206D_206F_206B_206D_202E_206B_200E_202E(stringBuilder, '}'); - return _206D_206D_202D_200D_206E_200E_206C_206F_200D_202C_200B_206A_206B_202B_206F_202C_206A_200C_206C_200E_206E_202C_200B_200D_202E_202A_200E_206E_200F_202D_202E_206C_202A_202C_206D_200D_202E_202D_202C_202A_202E((object)stringBuilder); - case 2: - _206D_202E_206B_200F_206E_202B_202C_200C_206E_206D_202D_202D_206F_206D_202C_202D_206D_206B_202B_202C_200D_206B_206A_202A_200D_202E_202A_202E_200B_200F_200E_202D_200D_206D_206F_206B_206D_202E_206B_200E_202E(stringBuilder, ' '); - num = 1856987188; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] [CompilerGenerated] private bool PrintMembers(StringBuilder builder) { - _206E_206E_202D_200F_202D_202B_200C_200E_202A_200E_202D_202D_206D_206A_206C_206A_202E_202B_200B_200F_202E_206E_200F_200E_200E_206D_206A_200C_202C_202A_200F_206A_200D_200C_200F_200B_206C_202C_202D_202B_202E(); - _206C_202D_200D_206A_206C_202C_200E_202C_202A_206A_206B_206B_206B_202B_206B_202C_206A_200C_202A_200C_200E_202A_206A_202A_202D_202A_206E_202B_200D_202A_202C_202A_206B_202A_206D_202B_200D_202A_202C_206D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1554457261)); - _202C_206B_200D_202D_200D_206C_206F_200B_206F_202B_202B_202B_202A_202A_200C_206F_202A_206D_200C_206B_202A_206F_206B_206D_206A_202D_206E_202A_206F_206B_202A_206D_206B_206D_206F_202E_206B_200C_202A_202C_202E(builder, (object)DisplayName); - _206C_202D_200D_206A_206C_202C_200E_202C_202A_206A_206B_206B_206B_202B_206B_202C_206A_200C_202A_200C_200E_202A_206A_202A_202D_202A_206E_202B_200D_202A_202C_202A_206B_202A_206D_202B_200D_202A_202C_206D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1253723183)); - _202C_206B_200D_202D_200D_206C_206F_200B_206F_202B_202B_202B_202A_202A_200C_206F_202A_206D_200C_206B_202A_206F_206B_206D_206A_202D_206E_202A_206F_206B_202A_206D_206B_206D_206F_202E_206B_200C_202A_202C_202E(builder, (object)InternalName); - _206C_202D_200D_206A_206C_202C_200E_202C_202A_206A_206B_206B_206B_202B_206B_202C_206A_200C_202A_200C_200E_202A_206A_202A_202D_202A_206E_202B_200D_202A_202C_202A_206B_202A_206D_202B_200D_202A_202C_206D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2064418967)); - _202C_206B_200D_202D_200D_206C_206F_200B_206F_202B_202B_202B_202A_202A_200C_206F_202A_206D_200C_206B_202A_206F_206B_206D_206A_202D_206E_202A_206F_206B_202A_206D_206B_206D_206F_202E_206B_200C_202A_202C_202E(builder, (object)WebsiteUri); - _206C_202D_200D_206A_206C_202C_200E_202C_202A_206A_206B_206B_206B_202B_206B_202C_206A_200C_202A_200C_200E_202A_206A_202A_202D_202A_206E_202B_200D_202A_202C_202A_206B_202A_206D_202B_200D_202A_202C_206D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2073079248)); - _202C_206B_200D_202D_200D_206C_206F_200B_206F_202B_202B_202B_202A_202A_200C_206F_202A_206D_200C_206B_202A_206F_206B_206D_206A_202D_206E_202A_206F_206B_202A_206D_206B_206D_206F_202E_206B_200C_202A_202C_202E(builder, (object)DalamudRepositoryUri); - _206C_202D_200D_206A_206C_202C_200E_202C_202A_206A_206B_206B_206B_202B_206B_202C_206A_200C_202A_200C_200E_202A_206A_202A_202D_202A_206E_202B_200D_202A_202C_202A_206B_202A_206D_202B_200D_202A_202C_206D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1815798103)); - _202C_206B_200D_202D_200D_206C_206F_200B_206F_202B_202B_202B_202A_202A_200C_206F_202A_206D_200C_206B_202A_206F_206B_206D_206A_202D_206E_202A_206F_206B_202A_206D_206B_206D_206F_202E_206B_200C_202A_202C_202E(builder, (object)DalamudRepositoryAliases); - _206C_202D_200D_206A_206C_202C_200E_202C_202A_206A_206B_206B_206B_202B_206B_202C_206A_200C_202A_200C_200E_202A_206A_202A_202D_202A_206E_202B_200D_202A_202C_202A_206B_202A_206D_202B_200D_202A_202C_206D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-812070845)); - _202C_206B_200D_202D_200D_206C_206F_200B_206F_202B_202B_202B_202A_202A_200C_206F_202A_206D_200C_206B_202A_206F_206B_206D_206A_202D_206E_202A_206F_206B_202A_206D_206B_206D_206F_202E_206B_200C_202A_202C_202E(builder, (object)AliasUrls); + RuntimeHelpers.EnsureSufficientExecutionStack(); + builder.Append("DisplayName = "); + builder.Append((object?)DisplayName); + builder.Append(", InternalName = "); + builder.Append((object?)InternalName); + builder.Append(", WebsiteUri = "); + builder.Append(WebsiteUri); + builder.Append(", DalamudRepositoryUri = "); + builder.Append(DalamudRepositoryUri); + builder.Append(", DalamudRepositoryAliases = "); + builder.Append(DalamudRepositoryAliases); + builder.Append(", AliasUrls = "); + builder.Append(AliasUrls); return true; } - - [CompilerGenerated] - public bool Equals(PluginProvider? other) - { - int num = (((object)this == other) ? (-947040485) : (-947040495)); - while (true) - { - int num2 = num; - int num3 = -947040493; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 9: - num = ((!EqualityComparer<IReadOnlyList<Uri>>.Default.Equals(DalamudRepositoryAliases, other.DalamudRepositoryAliases)) ? (-947040490) : (-947040494)); - break; - case 8: - return true; - case 7: - num = ((!EqualityComparer<string>.Default.Equals(DisplayName, other.DisplayName)) ? (-947040490) : (-947040489)); - break; - case 4: - num = ((!EqualityComparer<string>.Default.Equals(InternalName, other.InternalName)) ? (-947040490) : (-947040487)); - break; - case 1: - return EqualityComparer<IReadOnlyList<string>>.Default.Equals(_aliasUrls, other._aliasUrls); - case 0: - num = -947040495; - break; - case 3: - num = ((!EqualityComparer<Uri>.Default.Equals(DalamudRepositoryUri, other.DalamudRepositoryUri)) ? (-947040490) : (-947040486)); - break; - case 6: - num = ((!_200C_200F_200C_200E_202D_206D_206A_200C_206E_206A_206C_200C_206C_200F_202A_206D_206D_202A_202C_206A_200E_200C_200B_202A_200D_206B_200C_202E_202B_200E_206F_206F_206F_202D_200D_200E_200C_206F_206C_200D_202E(EqualityContract, other.EqualityContract)) ? (-947040490) : (-947040492)); - break; - case 5: - return false; - case 10: - num = ((!EqualityComparer<Uri>.Default.Equals(WebsiteUri, other.WebsiteUri)) ? (-947040490) : (-947040496)); - break; - case 2: - num = (((object)other == null) ? (-947040490) : (-947040491)); - break; - } - } - } - - bool IEquatable<PluginProvider>.Equals(PluginProvider? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202C_200C_202B_200C_202D_202B_206A_206A_202E_200D_206A_200F_206C_200E_206B_202D_200B_202B_200D_206F_200C_202C_200D_202B_206F_206A_200C_200B_200F_206C_202A_206A_202A_206B_206A_200F_202C_200B_202E_202D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206E_202B_200D_206D_206B_206D_200D_202C_206B_206D_200B_206F_206C_202C_200B_202D_200C_206C_202E_206B_206C_206B_202A_200F_200D_200C_206D_200B_200D_200D_206A_206E_200C_202A_200E_206C_200B_200B_202D_202A_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206C_202D_200D_206A_206C_202C_200E_202C_202A_206A_206B_206B_206B_202B_206B_202C_206A_200C_202A_200C_200E_202A_206A_202A_202D_202A_206E_202B_200D_202A_202C_202A_206B_202A_206D_202B_200D_202A_202C_206D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206D_202E_206B_200F_206E_202B_202C_200C_206E_206D_202D_202D_206F_206D_202C_202D_206D_206B_202B_202C_200D_206B_206A_202A_200D_202E_202A_202E_200B_200F_200E_202D_200D_206D_206F_206B_206D_202E_206B_200E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206D_206D_202D_200D_206E_200E_206C_206F_200D_202C_200B_206A_206B_202B_206F_202C_206A_200C_206C_200E_206E_202C_200B_200D_202E_202A_200E_206E_200F_202D_202E_206C_202A_202C_206D_200D_202E_202D_202C_202A_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206E_206E_202D_200F_202D_202B_200C_200E_202A_200E_202D_202D_206D_206A_206C_206A_202E_202B_200B_200F_202E_206E_200F_200E_200E_206D_206A_200C_202C_202A_200F_206A_200D_200C_200F_200B_206C_202C_202D_202B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202C_206B_200D_202D_200D_206C_206F_200B_206F_202B_202B_202B_202A_202A_200C_206F_202A_206D_200C_206B_202A_206F_206B_206D_206A_202D_206E_202A_206F_206B_202A_206D_206B_206D_206F_202E_206B_200C_202A_202C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200C_200F_200C_200E_202D_206D_206A_200C_206E_206A_206C_200C_206C_200F_202A_206D_206D_202A_202C_206A_200E_200C_200B_202A_200D_206B_200C_202E_202B_200E_206F_206F_206F_202D_200D_200E_200C_206F_206C_200D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } } - private sealed record PluginRequirement(string GroupName, string Description, IReadOnlyList<PluginProvider> Providers, string? ConfigCommand = null, List<PluginDetailInfo>? DetailsToCheck = null, (string Label, Uri Uri)? ExtraLink = null) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202C_206E_206A_202E_200E_206A_202D_206A_206B_206B_206B_206C_206C_202A_206B_202D_206C_202D_202B_202D_206B_206D_200D_200B_200D_206F_206B_206D_200C_206F_202C_206E_200C_202C_206B_206E_200E_206B_202B_202E(typeof(PluginRequirement).TypeHandle); - } - } + private sealed record PluginRequirement(string GroupName, string Description, IReadOnlyList<PluginProvider> Providers, string? ConfigCommand = null, List<PluginDetailInfo>? DetailsToCheck = null, (string Label, Uri Uri)? ExtraLink = null); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206C_206E_206A_200B_200C_206D_202B_202E_202A_202C_202B_202B_206D_206A_206A_206E_202B_200D_206E_206F_202C_206F_202C_206B_200C_202B_200B_206B_200E_206E_200B_202C_206D_202D_200B_206E_200D_200F_200E_206F_202E(); - _202B_206D_200B_200E_202E_206A_200E_200F_206F_206C_202D_200C_200C_206A_206E_200D_206E_200C_206E_206E_202C_206D_200C_202D_206D_200D_200F_206C_206F_202D_206A_202E_206A_200D_202C_202C_206B_200B_206B_206D_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(491808729)); - _202B_206D_200B_200E_202E_206A_200E_200F_206F_206C_202D_200C_200C_206A_206E_200D_206E_200C_206E_206E_202C_206D_200C_202D_206D_200D_200F_206C_206F_202D_206A_202E_206A_200D_202C_202C_206B_200B_206B_206D_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1344697862)); - int num = ((!PrintMembers(stringBuilder)) ? (-1844014661) : (-1844014662)); - while (true) - { - int num2 = num; - int num3 = -1844014661; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -1844014662; - break; - case 1: - _200D_206E_206E_202D_202D_206B_200B_206A_202C_200D_202D_200B_200C_206A_206C_200F_202D_206C_202E_202C_202E_200F_202D_206A_202B_200F_200F_202B_200F_200E_202B_202A_200E_202C_200B_202E_200C_202A_200B_202C_202E(stringBuilder, ' '); - num = -1844014661; - break; - case 0: - _200D_206E_206E_202D_202D_206B_200B_206A_202C_200D_202D_200B_200C_206A_206C_200F_202D_206C_202E_202C_202E_200F_202D_206A_202B_200F_200F_202B_200F_200E_202B_202A_200E_202C_200B_202E_200C_202A_200B_202C_202E(stringBuilder, '}'); - return _200E_200D_206D_202E_206F_202A_206B_202B_202A_200C_206D_200E_206B_200F_202E_200B_206B_200E_200F_202E_200D_206C_202C_202B_200F_202A_206A_202D_202A_206E_202A_206B_206B_202A_200D_206B_202D_202A_200D_206B_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200B_202D_200C_206A_202D_200F_206F_202B_206C_200E_202E_202C_202A_200F_206C_200B_206F_200D_206A_206B_202A_206F_206F_200D_206F_200F_200F_202E_206F_206E_202A_200E_200D_206F_200B_206B_200E_206C_206C_202E(); - _202B_206D_200B_200E_202E_206A_200E_200F_206F_206C_202D_200C_200C_206A_206E_200D_206E_200C_206E_206E_202C_206D_200C_202D_206D_200D_200F_206C_206F_202D_206A_202E_206A_200D_202C_202C_206B_200B_206B_206D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1802003745)); - _202E_206B_200B_200F_200D_200B_202A_202E_202C_202C_206E_202A_206D_206D_206B_206D_202E_200C_202B_202C_206F_206C_200D_200D_206D_200E_200E_202E_202C_200B_206F_202A_206D_206D_200F_200D_206C_200B_200E_200F_202E(builder, (object)GroupName); - _202B_206D_200B_200E_202E_206A_200E_200F_206F_206C_202D_200C_200C_206A_206E_200D_206E_200C_206E_206E_202C_206D_200C_202D_206D_200D_200F_206C_206F_202D_206A_202E_206A_200D_202C_202C_206B_200B_206B_206D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2025676759)); - _202E_206B_200B_200F_200D_200B_202A_202E_202C_202C_206E_202A_206D_206D_206B_206D_202E_200C_202B_202C_206F_206C_200D_200D_206D_200E_200E_202E_202C_200B_206F_202A_206D_206D_200F_200D_206C_200B_200E_200F_202E(builder, (object)Description); - _202B_206D_200B_200E_202E_206A_200E_200F_206F_206C_202D_200C_200C_206A_206E_200D_206E_200C_206E_206E_202C_206D_200C_202D_206D_200D_200F_206C_206F_202D_206A_202E_206A_200D_202C_202C_206B_200B_206B_206D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1402204001)); - _202E_206B_200B_200F_200D_200B_202A_202E_202C_202C_206E_202A_206D_206D_206B_206D_202E_200C_202B_202C_206F_206C_200D_200D_206D_200E_200E_202E_202C_200B_206F_202A_206D_206D_200F_200D_206C_200B_200E_200F_202E(builder, (object)Providers); - _202B_206D_200B_200E_202E_206A_200E_200F_206F_206C_202D_200C_200C_206A_206E_200D_206E_200C_206E_206E_202C_206D_200C_202D_206D_200D_200F_206C_206F_202D_206A_202E_206A_200D_202C_202C_206B_200B_206B_206D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1430915318)); - _202E_206B_200B_200F_200D_200B_202A_202E_202C_202C_206E_202A_206D_206D_206B_206D_202E_200C_202B_202C_206F_206C_200D_200D_206D_200E_200E_202E_202C_200B_206F_202A_206D_206D_200F_200D_206C_200B_200E_200F_202E(builder, (object)ConfigCommand); - _202B_206D_200B_200E_202E_206A_200E_200F_206F_206C_202D_200C_200C_206A_206E_200D_206E_200C_206E_206E_202C_206D_200C_202D_206D_200D_200F_206C_206F_202D_206A_202E_206A_200D_202C_202C_206B_200B_206B_206D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1878575073)); - _202E_206B_200B_200F_200D_200B_202A_202E_202C_202C_206E_202A_206D_206D_206B_206D_202E_200C_202B_202C_206F_206C_200D_200D_206D_200E_200E_202E_202C_200B_206F_202A_206D_206D_200F_200D_206C_200B_200E_200F_202E(builder, (object)DetailsToCheck); - _202B_206D_200B_200E_202E_206A_200E_200F_206F_206C_202D_200C_200C_206A_206E_200D_206E_200C_206E_206E_202C_206D_200C_202D_206D_200D_200F_206C_206F_202D_206A_202E_206A_200D_202C_202C_206B_200B_206B_206D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1074684730)); - _202B_206D_200B_200E_202E_206A_200E_200F_206F_206C_202D_200C_200C_206A_206E_200D_206E_200C_206E_206E_202C_206D_200C_202D_206D_200D_200F_206C_206F_202D_206A_202E_206A_200D_202C_202C_206B_200B_206B_206D_202E(builder, ExtraLink.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(PluginRequirement? other) - { - int num = (((object)this == other) ? 1323011366 : 1323011365); - while (true) - { - int num2 = num; - int num3 = 1323011363; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 8: - num = ((!_202D_206E_200F_206E_200E_200D_202B_202A_206D_200C_206D_200C_202C_200C_202D_206D_200C_206C_206C_200C_200C_200E_200E_202B_200B_202C_202B_206D_200D_200E_206C_206B_202B_202E_200E_206C_202E_202C_202D_206B_202E(EqualityContract, other.EqualityContract)) ? 1323011370 : 1323011360); - break; - case 1: - num = ((!EqualityComparer<IReadOnlyList<PluginProvider>>.Default.Equals(Providers, other.Providers)) ? 1323011370 : 1323011364); - break; - case 0: - return EqualityComparer<(string, Uri)?>.Default.Equals(ExtraLink, other.ExtraLink); - case 7: - num = ((!EqualityComparer<string>.Default.Equals(ConfigCommand, other.ConfigCommand)) ? 1323011370 : 1323011367); - break; - case 10: - num = ((!EqualityComparer<string>.Default.Equals(Description, other.Description)) ? 1323011370 : 1323011362); - break; - case 4: - num = ((!EqualityComparer<List<PluginDetailInfo>>.Default.Equals(DetailsToCheck, other.DetailsToCheck)) ? 1323011370 : 1323011363); - break; - case 5: - return true; - case 9: - return false; - case 3: - num = ((!EqualityComparer<string>.Default.Equals(GroupName, other.GroupName)) ? 1323011370 : 1323011369); - break; - case 6: - num = (((object)other == null) ? 1323011370 : 1323011371); - break; - case 2: - num = 1323011365; - break; - } - } - } - - bool IEquatable<PluginRequirement>.Equals(PluginRequirement? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202C_206E_206A_202E_200E_206A_202D_206A_206B_206B_206B_206C_206C_202A_206B_202D_206C_202D_202B_202D_206B_206D_200D_200B_200D_206F_206B_206D_200C_206F_202C_206E_200C_202C_206B_206E_200E_206B_202B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206C_206E_206A_200B_200C_206D_202B_202E_202A_202C_202B_202B_206D_206A_206A_206E_202B_200D_206E_206F_202C_206F_202C_206B_200C_202B_200B_206B_200E_206E_200B_202C_206D_202D_200B_206E_200D_200F_200E_206F_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202B_206D_200B_200E_202E_206A_200E_200F_206F_206C_202D_200C_200C_206A_206E_200D_206E_200C_206E_206E_202C_206D_200C_202D_206D_200D_200F_206C_206F_202D_206A_202E_206A_200D_202C_202C_206B_200B_206B_206D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200D_206E_206E_202D_202D_206B_200B_206A_202C_200D_202D_200B_200C_206A_206C_200F_202D_206C_202E_202C_202E_200F_202D_206A_202B_200F_200F_202B_200F_200E_202B_202A_200E_202C_200B_202E_200C_202A_200B_202C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200E_200D_206D_202E_206F_202A_206B_202B_202A_200C_206D_200E_206B_200F_202E_200B_206B_200E_200F_202E_200D_206C_202C_202B_200F_202A_206A_202D_202A_206E_202A_206B_206B_202A_200D_206B_202D_202A_200D_206B_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200B_202D_200C_206A_202D_200F_206F_202B_206C_200E_202E_202C_202A_200F_206C_200B_206F_200D_206A_206B_202A_206F_206F_200D_206F_200F_200F_202E_206F_206E_202A_200E_200D_206F_200B_206B_200E_206C_206C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202E_206B_200B_200F_200D_200B_202A_202E_202C_202C_206E_202A_206D_206D_206B_206D_202E_200C_202B_202C_206F_206C_200D_200D_206D_200E_200E_202E_202C_200B_206F_202A_206D_206D_200F_200D_206C_200B_200E_200F_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202D_206E_200F_206E_200E_200D_202B_202A_206D_200C_206D_200C_202C_200C_202D_206D_200C_206C_206C_200C_200C_200E_200E_202B_200B_202C_202B_206D_200D_200E_206C_206B_202B_202E_200E_206C_202E_202C_202D_206B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - private sealed record PluginDetailInfo(string DisplayName, string Details, Func<bool> Predicate) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200B_206F_206F_206F_206C_202C_200E_202D_202E_202C_206B_202A_200E_202D_206E_202C_200C_200E_200D_200B_206E_202B_200F_200F_206F_206A_206E_206D_202E_202A_206C_206D_202B_202C_200B_206E_200E_206D_206A_202A_202E(typeof(PluginDetailInfo).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202D_206B_200F_200C_206C_202A_200D_200E_202D_206B_202B_200F_202B_200F_200D_202C_206D_200B_206F_206F_200F_206F_206B_206F_206E_200E_206A_206C_206C_200F_206A_202A_206B_200D_206E_206B_200D_206E_200F_202D_202E(); - _200B_202A_202E_202D_206A_202C_202A_200E_206D_206E_206D_206C_200C_202C_200C_202B_202C_206B_202A_206D_206C_202B_202D_202D_200D_202A_202E_206F_202A_200E_202C_202D_206D_206B_206A_200D_200C_206B_206B_200E_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-938985440)); - _200B_202A_202E_202D_206A_202C_202A_200E_206D_206E_206D_206C_200C_202C_200C_202B_202C_206B_202A_206D_206C_202B_202D_202D_200D_202A_202E_206F_202A_200E_202C_202D_206D_206B_206A_200D_200C_206B_206B_200E_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? (-926821840) : (-926821837)); - while (true) - { - int num2 = num; - int num3 = -926821839; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _202B_206C_202E_200D_200B_200F_202C_200C_200E_200C_200D_206B_202A_206B_202E_200D_200F_206E_200D_206D_200D_206E_206A_206C_202A_206F_200C_206E_200D_200B_206E_200B_206D_206D_206F_206B_206E_202C_200B_202A_202E(stringBuilder, '}'); - return _200F_202B_206F_206C_202C_206E_202E_200F_206A_206D_200E_206F_202A_202C_200F_206A_200B_200F_202C_200F_206B_200C_202A_202C_200C_200B_202E_200C_206E_202D_200D_200F_200D_202D_206F_202A_200E_202D_202D_202D_202E((object)stringBuilder); - case 2: - _202B_206C_202E_200D_200B_200F_202C_200C_200E_200C_200D_206B_202A_206B_202E_200D_200F_206E_200D_206D_200D_206E_206A_206C_202A_206F_200C_206E_200D_200B_206E_200B_206D_206D_206F_206B_206E_202C_200B_202A_202E(stringBuilder, ' '); - num = -926821840; - break; - case 0: - num = -926821837; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202D_206D_206B_206D_202D_206C_200D_206C_202E_202B_206A_206F_206D_206C_206A_202D_202A_202D_206C_206A_206B_200F_200C_200F_202D_202D_206F_206A_200D_206C_206E_206C_206D_202B_202D_200D_206B_206F_206C_202E(); - _200B_202A_202E_202D_206A_202C_202A_200E_206D_206E_206D_206C_200C_202C_200C_202B_202C_206B_202A_206D_206C_202B_202D_202D_200D_202A_202E_206F_202A_200E_202C_202D_206D_206B_206A_200D_200C_206B_206B_200E_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1139649280)); - _202E_206A_200C_206D_200F_202A_206C_200B_202D_206F_200D_200C_206C_200F_206D_200B_206B_202D_200C_202E_202B_206F_202C_202D_202B_202D_206B_206F_200B_206F_206B_200E_200C_200F_202A_206A_206D_206E_200B_202B_202E(builder, (object)DisplayName); - _200B_202A_202E_202D_206A_202C_202A_200E_206D_206E_206D_206C_200C_202C_200C_202B_202C_206B_202A_206D_206C_202B_202D_202D_200D_202A_202E_206F_202A_200E_202C_202D_206D_206B_206A_200D_200C_206B_206B_200E_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1920135945)); - _202E_206A_200C_206D_200F_202A_206C_200B_202D_206F_200D_200C_206C_200F_206D_200B_206B_202D_200C_202E_202B_206F_202C_202D_202B_202D_206B_206F_200B_206F_206B_200E_200C_200F_202A_206A_206D_206E_200B_202B_202E(builder, (object)Details); - _200B_202A_202E_202D_206A_202C_202A_200E_206D_206E_206D_206C_200C_202C_200C_202B_202C_206B_202A_206D_206C_202B_202D_202D_200D_202A_202E_206F_202A_200E_202C_202D_206D_206B_206A_200D_200C_206B_206B_200E_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1576844440)); - _202E_206A_200C_206D_200F_202A_206C_200B_202D_206F_200D_200C_206C_200F_206D_200B_206B_202D_200C_202E_202B_206F_202C_202D_202B_202D_206B_206F_200B_206F_206B_200E_200C_200F_202A_206A_206D_206E_200B_202B_202E(builder, (object)Predicate); - return true; - } - - [CompilerGenerated] - public bool Equals(PluginDetailInfo? other) - { - int num = (((object)this == other) ? 704266451 : 704266455); - while (true) - { - int num2 = num; - int num3 = 704266454; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - num = ((!_206E_206F_202B_206F_206B_200D_202A_202B_200D_202A_200C_200B_202B_200D_202B_200C_206A_200E_206E_202A_202B_200F_202B_202A_202E_202B_200F_202D_206F_206F_200D_202D_200D_200D_202C_200E_206D_202B_200F_206F_202E(EqualityContract, other.EqualityContract)) ? 704266452 : 704266454); - break; - case 4: - return EqualityComparer<Func<bool>>.Default.Equals(Predicate, other.Predicate); - case 3: - num = 704266455; - break; - case 2: - return false; - case 7: - num = ((!EqualityComparer<string>.Default.Equals(Details, other.Details)) ? 704266452 : 704266450); - break; - case 0: - num = ((!EqualityComparer<string>.Default.Equals(DisplayName, other.DisplayName)) ? 704266452 : 704266449); - break; - case 5: - return true; - case 1: - num = (((object)other == null) ? 704266452 : 704266448); - break; - } - } - } - - bool IEquatable<PluginDetailInfo>.Equals(PluginDetailInfo? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200B_206F_206F_206F_206C_202C_200E_202D_202E_202C_206B_202A_200E_202D_206E_202C_200C_200E_200D_200B_206E_202B_200F_200F_206F_206A_206E_206D_202E_202A_206C_206D_202B_202C_200B_206E_200E_206D_206A_202A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202D_206B_200F_200C_206C_202A_200D_200E_202D_206B_202B_200F_202B_200F_200D_202C_206D_200B_206F_206F_200F_206F_206B_206F_206E_200E_206A_206C_206C_200F_206A_202A_206B_200D_206E_206B_200D_206E_200F_202D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200B_202A_202E_202D_206A_202C_202A_200E_206D_206E_206D_206C_200C_202C_200C_202B_202C_206B_202A_206D_206C_202B_202D_202D_200D_202A_202E_206F_202A_200E_202C_202D_206D_206B_206A_200D_200C_206B_206B_200E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202B_206C_202E_200D_200B_200F_202C_200C_200E_200C_200D_206B_202A_206B_202E_200D_200F_206E_200D_206D_200D_206E_206A_206C_202A_206F_200C_206E_200D_200B_206E_200B_206D_206D_206F_206B_206E_202C_200B_202A_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200F_202B_206F_206C_202C_206E_202E_200F_206A_206D_200E_206F_202A_202C_200F_206A_200B_200F_202C_200F_206B_200C_202A_202C_200C_200B_202E_200C_206E_202D_200D_200F_200D_202D_206F_202A_200E_202D_202D_202D_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202D_206D_206B_206D_202D_206C_200D_206C_202E_202B_206A_206F_206D_206C_206A_202D_202A_202D_206C_206A_206B_200F_200C_200F_202D_202D_206F_206A_200D_206C_206E_206C_206D_202B_202D_200D_206B_206F_206C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202E_206A_200C_206D_200F_202A_206C_200B_202D_206F_200D_200C_206C_200F_206D_200B_206B_202D_200C_202E_202B_206F_202C_202D_202B_202D_206B_206F_200B_206F_206B_200E_200C_200F_202A_206A_206D_206E_200B_202B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206E_206F_202B_206F_206B_200D_202A_202B_200D_202A_200C_200B_202B_200D_202B_200C_206A_200E_206E_202A_202B_200F_202B_202A_202E_202B_200F_202D_206F_206F_200D_202D_200D_200D_202C_200E_206D_202B_200F_206F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<IExposedPlugin, bool> _003C_003E9__16_0; - - public static Func<PluginProvider, string> _003C_003E9__19_1; - - public static Func<PluginDetailInfo, bool> _003C_003E9__25_0; - - public static Func<PluginProvider, string> _003C_003E9__35_1; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal bool _003CIsWigglyNavInstalled_003Eb__16_0(IExposedPlugin x) - { - return _206B_206F_202D_200D_206B_202D_206B_206D_202A_200C_200E_206A_200B_200D_202B_200E_202E_206F_206F_202C_202D_206D_200D_200B_202E_200B_200E_206C_200B_200B_206B_206F_200F_200C_202D_200E_206D_206C_200E_200F_202E(_200B_200B_206C_206D_202A_206E_202C_202E_200E_206D_200E_202E_200D_202B_200B_206E_202B_200E_206D_206E_202A_206F_202C_202D_200C_200D_200D_200C_200F_200C_202C_206C_206F_202D_202E_206C_206D_200D_200E_202C_202E(x), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1828301953)); - } - - internal string _003CDetectIpcConflicts_003Eb__19_1(PluginProvider p) - { - return p.DisplayName; - } - - internal bool _003CDrawRequirementExtras_003Eb__25_0(PluginDetailInfo d) - { - return !d.Predicate(); - } - - internal bool _003C_002Ecctor_003Eb__35_0(PluginRequirement g) - { - return g.Providers.Select((PluginProvider p) => p.InternalName).Distinct().Count() > 1; - } - - internal string _003C_002Ecctor_003Eb__35_1(PluginProvider p) - { - return p.InternalName; - } - - static string _200B_200B_206C_206D_202A_206E_202C_202E_200E_206D_200E_202E_200D_202B_200B_206E_202B_200E_206D_206E_202A_206F_202C_202D_200C_200D_200D_200C_200F_200C_202C_206C_206F_202D_202E_206C_206D_200D_200E_202C_202E(IExposedPlugin P_0) - { - return P_0.InternalName; - } - - static bool _206B_206F_202D_200D_206B_202D_206B_206D_202A_200C_200E_206A_200B_200D_202B_200E_202E_206F_206F_202C_202D_206D_200D_200B_202E_200B_200E_206C_200B_200B_206B_206F_200F_200C_202D_200E_206D_206C_200E_200F_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass17_0 - { - public PluginProvider provider; - - internal bool _003CFindProvider_003Eb__0(IExposedPlugin x) - { - return _206D_206A_200F_202E_206E_206D_202B_200D_206D_200D_202E_200D_202E_200D_206A_200C_206A_200D_202D_206A_206B_202B_200F_200C_202D_206A_200E_200F_206E_206D_202E_202D_202C_202C_206C_206E_206B_200C_206D_206C_202E(_200D_202A_206B_206F_200D_200D_206F_206F_206B_200F_202A_206E_200E_206C_206F_206C_200F_206C_202C_206E_202B_200B_200E_206E_206B_206B_202B_206F_200B_206C_200B_206C_206C_200E_200C_202E_200B_200C_206C_202E(x), provider.InternalName); - } - - static string _200D_202A_206B_206F_200D_200D_206F_206F_206B_200F_202A_206E_200E_206C_206F_206C_200F_206C_202C_206E_202B_200B_200E_206E_206B_206B_202B_206F_200B_206C_200B_206C_206C_200E_200C_202E_200B_200C_206C_202E(IExposedPlugin P_0) - { - return P_0.InternalName; - } - - static bool _206D_206A_200F_202E_206E_206D_202B_200D_206D_200D_202E_200D_202E_200D_206A_200C_206A_200D_202D_206A_206B_202B_200F_200C_202D_206A_200E_200F_206E_206D_202E_202D_202C_202C_206C_206E_206B_200C_206D_206C_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - } + private sealed record PluginDetailInfo(string DisplayName, string Details, Func<bool> Predicate); private const string WigglyNavInternalName = "WigglyNav"; - private static readonly IReadOnlyList<PluginRequirement> RequiredPlugins = new global::_003C_003Ez__ReadOnlySingleElementList<PluginRequirement>(new PluginRequirement(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2126151179), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1867946866), new global::_003C_003Ez__ReadOnlySingleElementList<PluginProvider>(new PluginProvider(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1911109856), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(206151933), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1266471292)), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2081357902)), new global::_003C_003Ez__ReadOnlyArray<Uri>(new Uri[3] + private static readonly IReadOnlyList<PluginRequirement> RequiredPlugins = new global::_003C_003Ez__ReadOnlySingleElementList<PluginRequirement>(new PluginRequirement("Quest Progression", "Automatically accepts and turns in quests, skips cutscenes and dialogue.", new global::_003C_003Ez__ReadOnlySingleElementList<PluginProvider>(new PluginProvider("TextAdvance", "TextAdvance", new Uri("https://github.com/NightmareXIV/TextAdvance"), new Uri("https://github.com/NightmareXIV/MyDalamudPlugins/raw/main/pluginmaster.json"), new global::_003C_003Ez__ReadOnlyArray<Uri>(new Uri[3] { - _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1167214966)), - _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(298695425)), - _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1869783894)) + new Uri("https://raw.githubusercontent.com/NightmareXIV/MyDalamudPlugins/main/pluginmaster.json"), + new Uri("https://github.com/NightmareXIV/MyDalamudPlugins/raw/refs/heads/main/pluginmaster.json"), + new Uri("https://raw.githubusercontent.com/NightmareXIV/MyDalamudPlugins/refs/heads/main/pluginmaster.json") }))))); private static readonly ReadOnlyDictionary<Configuration.ENavigationProvider, PluginRequirement> NavigationPlugins = new Dictionary<Configuration.ENavigationProvider, PluginRequirement> { { Questionable.Configuration.ENavigationProvider.Vnavmesh, - new PluginRequirement(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1295043937), string.Empty, new global::_003C_003Ez__ReadOnlySingleElementList<PluginProvider>(new PluginProvider(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(281533512), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(281533512), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1906606559)), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(662598880))))) + new PluginRequirement("vnavmesh", string.Empty, new global::_003C_003Ez__ReadOnlySingleElementList<PluginProvider>(new PluginProvider("vnavmesh", "vnavmesh", new Uri("https://github.com/awgil/ffxiv_navmesh/"), new Uri("https://puni.sh/api/repository/veyn")))) }, { Questionable.Configuration.ENavigationProvider.WigglyNav, - new PluginRequirement(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1161359100), string.Empty, new global::_003C_003Ez__ReadOnlySingleElementList<PluginProvider>(new PluginProvider(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1161359100), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1385994134), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-667911163)), null))) + new PluginRequirement("WigglyNav", string.Empty, new global::_003C_003Ez__ReadOnlySingleElementList<PluginProvider>(new PluginProvider("WigglyNav", "WigglyNav", new Uri("https://github.com/WigglyMuffin/WigglyNav"), null))) }, { Questionable.Configuration.ENavigationProvider.WigglyNavShim, - new PluginRequirement(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1024141751), string.Empty, new global::_003C_003Ez__ReadOnlySingleElementList<PluginProvider>(new PluginProvider(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(400780601), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(400780601), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1876532187)), null))) + new PluginRequirement("WigglyNav (shim)", string.Empty, new global::_003C_003Ez__ReadOnlySingleElementList<PluginProvider>(new PluginProvider("WigglyNav", "WigglyNav", new Uri("https://github.com/WigglyMuffin/WigglyNav"), null))) } }.AsReadOnly(); @@ -612,19 +90,19 @@ internal sealed class PluginConfigComponent : ConfigComponent { { Questionable.Configuration.ECombatModule.BossMod, - new PluginRequirement(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-482524518), string.Empty, new global::_003C_003Ez__ReadOnlyArray<PluginProvider>(new PluginProvider[2] + new PluginRequirement("Boss Mod", string.Empty, new global::_003C_003Ez__ReadOnlyArray<PluginProvider>(new PluginProvider[2] { - new PluginProvider(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-482524518), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(650557213), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1518653891)), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(662598880))), - new PluginProvider(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2108181002), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(203874627), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1646384355)), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1536677423))) + new PluginProvider("Boss Mod", "BossMod", new Uri("https://github.com/awgil/ffxiv_bossmod"), new Uri("https://puni.sh/api/repository/veyn")), + new PluginProvider("Boss Mod Reborn", "BossModReborn", new Uri("https://github.com/FFXIV-CombatReborn/BossmodReborn"), new Uri("https://raw.githubusercontent.com/FFXIV-CombatReborn/CombatRebornRepo/main/pluginmaster.json")) })) }, { Questionable.Configuration.ECombatModule.RotationSolverReborn, - new PluginRequirement(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1544788976), string.Empty, new global::_003C_003Ez__ReadOnlySingleElementList<PluginProvider>(new PluginProvider(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(465473234), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1992835172), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-187382835)), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1536677423))))) + new PluginRequirement("Rotation Solver Reborn", string.Empty, new global::_003C_003Ez__ReadOnlySingleElementList<PluginProvider>(new PluginProvider("Rotation Solver Reborn", "RotationSolver", new Uri("https://github.com/FFXIV-CombatReborn/RotationSolverReborn"), new Uri("https://raw.githubusercontent.com/FFXIV-CombatReborn/CombatRebornRepo/main/pluginmaster.json")))) }, { Questionable.Configuration.ECombatModule.WrathCombo, - new PluginRequirement(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2115595372), string.Empty, new global::_003C_003Ez__ReadOnlySingleElementList<PluginProvider>(new PluginProvider(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2115595372), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(185841736), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-352805072)), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-603623577)), new global::_003C_003Ez__ReadOnlySingleElementList<Uri>(_206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(342901462)))))) + new PluginRequirement("Wrath Combo", string.Empty, new global::_003C_003Ez__ReadOnlySingleElementList<PluginProvider>(new PluginProvider("Wrath Combo", "WrathCombo", new Uri("https://github.com/PunishXIV/WrathCombo"), new Uri("https://puni.sh/api/plugins"), new global::_003C_003Ez__ReadOnlySingleElementList<Uri>(new Uri("https://love.puni.sh/ment.json"))))) } }.AsReadOnly(); @@ -648,7 +126,6 @@ internal sealed class PluginConfigComponent : ConfigComponent where g.Providers.Select((PluginProvider p) => p.InternalName).Distinct().Count() > 1 select g).ToList(); - [MethodImpl(MethodImplOptions.NoInlining)] public PluginConfigComponent(IDalamudPluginInterface pluginInterface, Configuration configuration, CombatController combatController, UiUtils uiUtils, ICommandManager commandManager, PluginInstaller installer, WigglyNavAvailability wigglyNavAvailability) : base(pluginInterface, configuration) { @@ -661,38 +138,20 @@ internal sealed class PluginConfigComponent : ConfigComponent _wigglyNavAvailability = wigglyNavAvailability; _recommendedPlugins = new global::_003C_003Ez__ReadOnlyArray<PluginRequirement>(new PluginRequirement[3] { - new PluginRequirement(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2126863120), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(601551502), new global::_003C_003Ez__ReadOnlySingleElementList<PluginProvider>(new PluginProvider(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-650563733), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2126863120), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1492895404)), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-864989238)), new global::_003C_003Ez__ReadOnlySingleElementList<Uri>(_206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1195205762)))))), - new PluginRequirement(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1920887579), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1351416667), new global::_003C_003Ez__ReadOnlySingleElementList<PluginProvider>(new PluginProvider(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-448079343), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(738617192), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1537134691)), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1378351879)))), null, null, (global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1868722484), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(584426194)))), - new PluginRequirement(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1791927627), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(837994430), new global::_003C_003Ez__ReadOnlySingleElementList<PluginProvider>(new PluginProvider(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1791927627), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1606149705), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1945842408)), _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-581699999)), new global::_003C_003Ez__ReadOnlySingleElementList<Uri>(_206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(342901462)))))) + new PluginRequirement("Artisan", "Handles automatic crafting for quests that require crafted items.", new global::_003C_003Ez__ReadOnlySingleElementList<PluginProvider>(new PluginProvider("Artisan", "Artisan", new Uri("https://github.com/PunishXIV/Artisan"), new Uri("https://puni.sh/api/plugins"), new global::_003C_003Ez__ReadOnlySingleElementList<Uri>(new Uri("https://love.puni.sh/ment.json"))))), + new PluginRequirement("AutoDuty", "Automatically handles dungeon and trial completion during Main Scenario Quest progression.", new global::_003C_003Ez__ReadOnlySingleElementList<PluginProvider>(new PluginProvider("AutoDuty", "AutoDuty", new Uri("https://github.com/erdelf/AutoDuty"), new Uri("https://puni.sh/api/repository/erdelf"))), null, null, ("Duty Spreadsheet", new Uri("https://docs.google.com/spreadsheets/d/151RlpqRcCpiD_VbQn6Duf-u-S71EP7d0mx3j1PDNoNA/edit?pli=1#gid=0"))), + new PluginRequirement("AutoHook", "Handles automatic fishing for Fisher class quests.", new global::_003C_003Ez__ReadOnlySingleElementList<PluginProvider>(new PluginProvider("AutoHook", "AutoHook", new Uri("https://github.com/PunishXIV/AutoHook"), new Uri("https://puni.sh/api/plugins"), new global::_003C_003Ez__ReadOnlySingleElementList<Uri>(new Uri("https://love.puni.sh/ment.json"))))) }); } - [MethodImpl(MethodImplOptions.NoInlining)] public override void DrawTab() { - int num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Hammer, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1442225123))) ? 625860852 : 625860853); - while (true) + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Hammer, "Re-run setup wizard")) { - int num2 = num; - int num3 = 625860852; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - { - _202B_206D_206D_202C_200F_200E_200B_202D_200C_206A_206C_202A_206F_202C_206B_200C_202A_202E_200B_202C_200C_200E_206A_206A_202C_202D_200F_206D_206D_200F_206F_202C_200F_200F_206F_202B_202C_206B_202A_200F_202E(); - DrawSections(useCards: true, out var _); - return; - } - case 1: - _200F_206F_200D_206E_202A_206F_206D_206B_202C_202B_200D_206C_206C_200C_202A_206A_206C_206F_200B_202E_200B_202C_200C_206C_206C_206F_206A_200E_206C_200B_200D_206D_206A_206A_206E_202E_202C_202B_206D_202B_202E(_commandManager, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-262766157)); - num = 625860852; - break; - case 2: - num = 625860853; - break; - } + _commandManager.ProcessCommand("/qst setup"); } + ImGui.Spacing(); + DrawSections(useCards: true, out var _); } public void Draw(out bool allRequiredInstalled) @@ -700,2262 +159,580 @@ internal sealed class PluginConfigComponent : ConfigComponent DrawSections(useCards: false, out allRequiredInstalled); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawSections(bool useCards, out bool allRequiredInstalled) { - IDisposable disposable = _202B_200F_200B_200E_206F_200D_202D_206C_202A_202D_202E_202D_206D_206E_206A_200D_200C_200F_206A_200D_200C_202A_206A_202A_202E_200C_206F_200B_206A_200D_202B_202C_202E_202A_206C_202A_202C_202C_202C_206E_202E(_202D_202D_202E_200B_200C_200B_206D_202C_200D_206C_206A_202B_200E_206F_206B_200C_206A_206A_206D_202E_202D_200E_202A_200D_200E_202D_202E_206F_202B_200E_202E_200E_206A_202A_206D_206E_206A_206D_206E_202E_202E(_202C_202B_200D_202D_202B_202B_206F_200C_202C_200F_200F_200B_206A_206F_206F_202C_206C_202E_206C_206B_200E_200F_206C_200D_206B_206D_200D_202A_200D_206E_202D_206B_202E_206E_202B_200E_206C_200D_200C_206C_202E(_pluginInterface))); float checklistPadding; - int num; - try + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) { - checklistPadding = _200D_206F_206D_206A_202E_200E_202E_202C_200F_202C_206E_206C_202C_202B_200E_202C_200B_202B_206D_202B_202A_206A_206D_200B_202B_206F_206D_206C_200D_202C_200B_202C_206C_206C_202B_200B_202C_202C_202C_200F_202E((ImU8String)_206A_202B_202C_200D_206D_206B_200F_206C_206E_200C_200E_200F_206E_206D_200D_202C_202C_206F_206C_200C_206C_202B_202A_206F_200D_206B_202A_200C_206B_200E_200C_200E_200B_202A_206F_206A_206B_202E_200D_206A_202E(FontAwesomeIcon.Check), false, -1f).X + _206A_206C_200E_200D_202D_202E_202C_200B_206E_200B_200B_206F_200D_202E_200B_200E_200C_202E_206D_200D_200C_206C_200C_202C_200E_200D_206F_202D_202E_206A_206B_206E_206F_200B_202A_200C_202B_202C_200F_206B_202E().ItemSpacing.X; - } - finally - { - num = ((disposable == null) ? (-778211204) : (-778211201)); - while (true) - { - int num2 = num; - int num3 = -778211203; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -778211201; - break; - case 2: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E(disposable); - num = -778211204; - break; - case 1: - goto end_IL_0074; - } - continue; - end_IL_0074: - break; - } + checklistPadding = ImGui.CalcTextSize(FontAwesomeIcon.Check.ToIconString()).X + ImGui.GetStyle().ItemSpacing.X; } allRequiredInstalled = true; - Header(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-581863990)); - num = (useCards ? (-632762949) : (-632762952)); - Vector2 contentStartPos3 = default(Vector2); - float availableWidth3 = default(float); - ImDrawListPtr drawList3 = default(ImDrawListPtr); - Vector2 contentStartPos2 = default(Vector2); - float availableWidth2 = default(float); - ImDrawListPtr drawList2 = default(ImDrawListPtr); - Vector2 contentStartPos = default(Vector2); - float availableWidth = default(float); - ImDrawListPtr drawList = default(ImDrawListPtr); - while (true) + Header("Required"); + Vector2 contentStartPos; + float availableWidth; + ImDrawListPtr drawList; + if (useCards) { - int num7 = num; - int num3 = -632762949; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) + (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); + } + else + { + contentStartPos = default(Vector2); + availableWidth = 0f; + drawList = default(ImDrawListPtr); + } + foreach (PluginRequirement requiredPlugin in RequiredPlugins) + { + allRequiredInstalled &= DrawRequirement(requiredPlugin, checklistPadding); + } + allRequiredInstalled &= DrawNavigationSelection(checklistPadding); + if (useCards) + { + UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); + } + Between(); + Header("Combat Plugin"); + Vector2 contentStartPos2; + float availableWidth2; + ImDrawListPtr drawList2; + if (useCards) + { + (contentStartPos2, availableWidth2, drawList2) = UiThemeUtils.BeginCard(); + } + else + { + contentStartPos2 = default(Vector2); + availableWidth2 = 0f; + drawList2 = default(ImDrawListPtr); + } + using (ImRaii.Disabled(_combatController.IsRunning)) + { + if (ImGui.RadioButton("No rotation/combat plugin (combat must be done manually)", _configuration.General.CombatModule == Questionable.Configuration.ECombatModule.None)) { - case 2: - num = -632762952; - break; - case 0: - { - (Vector2, float, ImDrawListPtr) tuple = UiThemeUtils.BeginCard(); - contentStartPos3 = tuple.Item1; - availableWidth3 = tuple.Item2; - drawList3 = tuple.Item3; - num = -632762950; - break; - } - case 3: - contentStartPos3 = default(Vector2); - availableWidth3 = 0f; - drawList3 = default(ImDrawListPtr); - num = -632762950; - break; - case 1: - { - IEnumerator<PluginRequirement> enumerator = RequiredPlugins.GetEnumerator(); - try - { - num = 1214490098; - while (true) - { - int num8 = num; - num3 = 1214490099; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1214490098; - break; - case 2: - { - PluginRequirement current = enumerator.Current; - allRequiredInstalled &= DrawRequirement(current, checklistPadding); - num = 1214490098; - break; - } - case 1: - num = (_206F_202E_200C_202D_206F_206D_202D_202C_206D_200B_202D_202A_202D_202D_202C_200C_206B_206E_206C_200E_206D_206D_202E_206C_206D_206B_200F_200C_200E_206A_200F_202E_202C_200E_200E_206A_206E_200B_200B_202C_202E((IEnumerator)enumerator) ? 1214490097 : 1214490096); - break; - case 3: - goto end_IL_019d; - } - continue; - end_IL_019d: - break; - } - } - finally - { - num = ((enumerator == null) ? (-986240802) : (-986240801)); - while (true) - { - int num9 = num; - num3 = -986240802; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 2: - num = -986240801; - break; - case 1: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E((IDisposable)enumerator); - num = -986240802; - break; - case 0: - goto end_IL_0244; - } - continue; - end_IL_0244: - break; - } - } - allRequiredInstalled &= DrawNavigationSelection(checklistPadding); - num = ((!useCards) ? (-393044439) : (-393044438)); - while (true) - { - int num12 = num; - num3 = -393044440; - num4 = num12; - int num13 = num4 + num3; - int num14 = num4 & num3; - switch (num13 - (num14 + num14)) - { - case 4: - contentStartPos2 = default(Vector2); - availableWidth2 = 0f; - drawList2 = default(ImDrawListPtr); - num = -393044437; - break; - case 2: - UiThemeUtils.EndCard(contentStartPos3, availableWidth3, drawList3); - num = -393044439; - break; - case 5: - { - (Vector2, float, ImDrawListPtr) tuple = UiThemeUtils.BeginCard(); - contentStartPos2 = tuple.Item1; - availableWidth2 = tuple.Item2; - drawList2 = tuple.Item3; - num = -393044437; - break; - } - case 1: - Between(); - Header(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(347553613)); - num = (useCards ? (-393044435) : (-393044436)); - break; - case 0: - num = -393044438; - break; - case 3: - { - ImRaii.DisabledDisposable disabledDisposable = _206C_202C_206D_206B_202B_206A_202D_202D_202B_206B_202C_202E_206C_206D_202A_206B_206E_202C_200E_202C_202D_200E_206B_202D_202E_206F_202C_206D_206E_206B_200C_202A_202A_206E_202A_200F_200F_200E_206A_200E_202E(_combatController.IsRunning); - try - { - num = ((!_206B_206F_200E_200B_202D_202D_206E_206B_202D_200F_206B_206A_206A_206E_202E_200B_206B_206B_206F_200F_200C_206C_200C_200B_202C_202B_206B_200F_206E_200B_206D_200D_202B_200C_200F_206A_200B_206B_202A_200E_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1532757094), _configuration.General.CombatModule == Questionable.Configuration.ECombatModule.None)) ? (-1771590171) : (-1771590170)); - while (true) - { - int num15 = num; - num3 = -1771590169; - num4 = num15; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1771590170; - break; - case 1: - _configuration.General.CombatModule = Questionable.Configuration.ECombatModule.None; - _206D_206D_206A_200F_202E_200B_202E_206C_206A_206E_206D_202C_202C_206C_202A_206D_202A_202B_206D_200C_200E_206B_202C_202C_200B_206B_202E_206B_206B_206B_202C_202B_200B_206F_200C_200D_206B_200F_202A_202C_202E(_pluginInterface, (IPluginConfiguration)_configuration); - num = -1771590171; - break; - case 2: - allRequiredInstalled &= DrawCombatPlugin(Questionable.Configuration.ECombatModule.BossMod, checklistPadding); - allRequiredInstalled &= DrawCombatPlugin(Questionable.Configuration.ECombatModule.RotationSolverReborn, checklistPadding); - allRequiredInstalled &= DrawCombatPlugin(Questionable.Configuration.ECombatModule.WrathCombo, checklistPadding); - goto end_IL_0400; - } - continue; - end_IL_0400: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? 1592385881 : 1592385880); - while (true) - { - int num16 = num; - num3 = 1592385881; - num4 = num16; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1592385880; - break; - case 1: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E((IDisposable)disabledDisposable); - num = 1592385881; - break; - case 0: - goto end_IL_04b1; - } - continue; - end_IL_04b1: - break; - } - } - num = ((!useCards) ? (-1596913669) : (-1596913672)); - while (true) - { - int num17 = num; - num3 = -1596913669; - num4 = num17; - int num18 = num4 + num3; - int num19 = num4 & num3; - switch (num18 - (num19 + num19)) - { - case 5: - num = -1596913672; - break; - case 0: - Between(); - Header(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(991584144)); - num = (useCards ? (-1596913665) : (-1596913670)); - break; - case 1: - contentStartPos = default(Vector2); - availableWidth = 0f; - drawList = default(ImDrawListPtr); - num = -1596913671; - break; - case 3: - UiThemeUtils.EndCard(contentStartPos2, availableWidth2, drawList2); - num = -1596913669; - break; - case 4: - { - (Vector2, float, ImDrawListPtr) tuple = UiThemeUtils.BeginCard(); - contentStartPos = tuple.Item1; - availableWidth = tuple.Item2; - drawList = tuple.Item3; - num = -1596913671; - break; - } - case 2: - enumerator = _recommendedPlugins.GetEnumerator(); - try - { - num = 150201408; - while (true) - { - int num20 = num; - num3 = 150201409; - num4 = num20; - int num21 = num4 + num3; - int num22 = num4 & num3; - switch (num21 - (num22 + num22)) - { - case 3: - num = 150201408; - break; - case 1: - num = (_206F_202E_200C_202D_206F_206D_202D_202C_206D_200B_202D_202A_202D_202D_202C_200C_206B_206E_206C_200E_206D_206D_202E_206C_206D_206B_200F_200C_200E_206A_200F_202E_202C_200E_200E_206A_206E_200B_200B_202C_202E((IEnumerator)enumerator) ? 150201411 : 150201409); - break; - case 2: - { - PluginRequirement current2 = enumerator.Current; - DrawRequirement(current2, checklistPadding); - num = 150201408; - break; - } - case 0: - goto end_IL_0622; - } - continue; - end_IL_0622: - break; - } - } - finally - { - num = ((enumerator == null) ? (-54325925) : (-54325928)); - while (true) - { - int num23 = num; - num3 = -54325926; - num4 = num23; - int num24 = num4 + num3; - int num25 = num4 & num3; - switch (num24 - (num25 + num25)) - { - case 0: - num = -54325928; - break; - case 2: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E((IDisposable)enumerator); - num = -54325925; - break; - case 1: - goto end_IL_06c7; - } - continue; - end_IL_06c7: - break; - } - } - num = ((!useCards) ? (-1546763573) : (-1546763570)); - while (true) - { - int num26 = num; - num3 = -1546763573; - num4 = num26; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - Status(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(919027909), UiThemeUtils.StatusLocked, FontAwesomeIcon.ExclamationTriangle); - num = -1546763572; - break; - case 3: - Status(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-385107803), UiThemeUtils.StatusComplete, FontAwesomeIcon.CheckCircle); - num = -1546763572; - break; - case 5: - UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); - num = -1546763573; - break; - case 2: - num = -1546763570; - break; - case 0: - num = ((!useCards) ? (-1546763574) : (-1546763571)); - break; - case 1: - num = ((!allRequiredInstalled) ? (-1546763569) : (-1546763576)); - break; - case 6: - UiThemeUtils.SectionSpacing(); - num = -1546763574; - break; - case 7: - { - using List<string>.Enumerator enumerator2 = DetectIpcConflicts().GetEnumerator(); - num = 2070589958; - while (true) - { - int num27 = num; - num3 = 2070589958; - num4 = num27; - int num28 = num4 + num3; - int num29 = num4 & num3; - switch (num28 - (num29 + num29)) - { - case 2: - num = 2070589958; - break; - case 3: - Status(enumerator2.Current, UiThemeUtils.StatusActive, FontAwesomeIcon.ExclamationTriangle); - num = 2070589958; - break; - case 0: - num = (enumerator2.MoveNext() ? 2070589957 : 2070589959); - break; - case 1: - return; - } - } - } - } - } - } - } - } - } - } - } + _configuration.General.CombatModule = Questionable.Configuration.ECombatModule.None; + _pluginInterface.SavePluginConfig(_configuration); } + allRequiredInstalled &= DrawCombatPlugin(Questionable.Configuration.ECombatModule.BossMod, checklistPadding); + allRequiredInstalled &= DrawCombatPlugin(Questionable.Configuration.ECombatModule.RotationSolverReborn, checklistPadding); + allRequiredInstalled &= DrawCombatPlugin(Questionable.Configuration.ECombatModule.WrathCombo, checklistPadding); + } + if (useCards) + { + UiThemeUtils.EndCard(contentStartPos2, availableWidth2, drawList2); + } + Between(); + Header("Recommended"); + Vector2 contentStartPos3; + float availableWidth3; + ImDrawListPtr drawList3; + if (useCards) + { + (contentStartPos3, availableWidth3, drawList3) = UiThemeUtils.BeginCard(); + } + else + { + contentStartPos3 = default(Vector2); + availableWidth3 = 0f; + drawList3 = default(ImDrawListPtr); + } + foreach (PluginRequirement recommendedPlugin in _recommendedPlugins) + { + DrawRequirement(recommendedPlugin, checklistPadding); + } + if (useCards) + { + UiThemeUtils.EndCard(contentStartPos3, availableWidth3, drawList3); + } + if (useCards) + { + UiThemeUtils.SectionSpacing(); + } + if (allRequiredInstalled) + { + Status("All required plugins installed", UiThemeUtils.StatusComplete, FontAwesomeIcon.CheckCircle); + } + else + { + Status("Required plugins missing", UiThemeUtils.StatusLocked, FontAwesomeIcon.ExclamationTriangle); + } + foreach (string item in DetectIpcConflicts()) + { + Status(item, UiThemeUtils.StatusActive, FontAwesomeIcon.ExclamationTriangle); } void Between() { - int num30 = ((!useCards) ? 356309127 : 356309124); - while (true) + if (useCards) { - int num31 = num30; - int num32 = 356309126; - int num33 = num31; - switch ((num33 | num32) - (num33 & num32)) - { - case 1: - _202B_206D_206D_202C_200F_200E_200B_202D_200C_206A_206C_202A_206F_202C_206B_200C_202A_202E_200B_202C_200C_200E_206A_206A_202C_202D_200F_206D_206D_200F_206F_202C_200F_200F_206F_202B_202C_206B_202A_200F_202E(); - _206D_206B_206A_202D_200E_202E_206D_200E_200E_200D_206B_206D_206C_206A_200D_206B_206D_206F_206F_200B_200F_206A_200F_202E_202C_206B_200C_206A_206B_200F_202D_200E_206F_202E_202A_202D_202E_200D_202A_202C_202E(); - _202B_206D_206D_202C_200F_200E_200B_202D_200C_206A_206C_202A_206F_202C_206B_200C_202A_202E_200B_202C_200C_200E_206A_206A_202C_202D_200F_206D_206D_200F_206F_202C_200F_200F_206F_202B_202C_206B_202A_200F_202E(); - return; - case 2: - UiThemeUtils.SectionSpacing(); - return; - case 0: - goto IL_005c; - } - continue; - IL_005c: - num30 = 356309124; + UiThemeUtils.SectionSpacing(); + } + else + { + ImGui.Spacing(); + ImGui.Separator(); + ImGui.Spacing(); } } void Header(string title) { - int num30 = ((!useCards) ? 937347689 : 937347688); - while (true) + if (useCards) { - int num31 = num30; - int num32 = 937347689; - int num33 = num31; - switch ((num33 | num32) - (num33 & num32)) - { - case 2: - goto IL_0046; - case 0: - _206F_206D_206A_202E_200F_200F_206F_206D_200C_200F_206E_202C_202D_200F_200D_200F_200B_206C_206B_202B_200F_200C_206F_202A_206B_206F_202D_200D_202B_206F_202E_206E_202A_202C_202D_206F_206F_200B_202C_200E_202E((ImU8String)title); - _202B_206D_206D_202C_200F_200E_200B_202D_200C_206A_206C_202A_206F_202C_206B_200C_202A_202E_200B_202C_200C_200E_206A_206A_202C_202D_200F_206D_206D_200F_206F_202C_200F_200F_206F_202B_202C_206B_202A_200F_202E(); - return; - case 1: - UiThemeUtils.SectionHeader(title); - return; - } - continue; - IL_0046: - num30 = 937347688; + UiThemeUtils.SectionHeader(title); + } + else + { + ImGui.TextDisabled(title); + ImGui.Spacing(); } } void Status(string text, Vector4 color, FontAwesomeIcon icon) { - int num30 = ((!useCards) ? (-2098713833) : (-2098713834)); - while (true) + if (useCards) { - int num31 = num30; - int num32 = -2098713833; - int num33 = num31; - switch ((num33 | num32) - (num33 & num32)) - { - case 2: - goto IL_0046; - case 0: - _202B_206D_206D_202C_200F_200E_200B_202D_200C_206A_206C_202A_206F_202C_206B_200C_202A_202E_200B_202C_200C_200E_206A_206A_202C_202D_200F_206D_206D_200F_206F_202C_200F_200F_206F_202B_202C_206B_202A_200F_202E(); - UiThemeUtils.StatusBadge(text, color, icon); - return; - case 1: - UiThemeUtils.StatusBanner(text, color, icon); - return; - } - continue; - IL_0046: - num30 = -2098713834; + UiThemeUtils.StatusBanner(text, color, icon); + } + else + { + ImGui.Spacing(); + UiThemeUtils.StatusBadge(text, color, icon); } } } private bool IsWigglyNavInstalled() { - return _200B_200F_202C_200B_206D_206F_202A_202E_202E_202A_202A_202C_200C_206F_202B_200F_206E_206B_200B_200D_200F_200D_206D_206E_202C_202E_206F_200F_200D_206E_206C_202C_206A_202D_206F_206D_200E_206F_206D_202A_202E(_pluginInterface).Any([MethodImpl(MethodImplOptions.NoInlining)] (IExposedPlugin x) => _003C_003Ec._206B_206F_202D_200D_206B_202D_206B_206D_202A_200C_200E_206A_200B_200D_202B_200E_202E_206F_206F_202C_202D_206D_200D_200B_202E_200B_200E_206C_200B_200B_206B_206F_200F_200C_202D_200E_206D_206C_200E_200F_202E(_003C_003Ec._200B_200B_206C_206D_202A_206E_202C_202E_200E_206D_200E_202E_200D_202B_200B_206E_202B_200E_206D_206E_202A_206F_202C_202D_200C_200D_200D_200C_200F_200C_202C_206C_206F_202D_202E_206C_206D_200D_200E_202C_202E(x), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1828301953))); + return _pluginInterface.InstalledPlugins.Any((IExposedPlugin x) => x.InternalName == "WigglyNav"); } private IExposedPlugin? FindProvider(PluginProvider provider) { - return _200B_200F_202C_200B_206D_206F_202A_202E_202E_202A_202A_202C_200C_206F_202B_200F_206E_206B_200B_200D_200F_200D_206D_206E_202C_202E_206F_200F_200D_206E_206C_202C_206A_202D_206F_206D_200E_206F_206D_202A_202E(_pluginInterface).FirstOrDefault((IExposedPlugin x) => _003C_003Ec__DisplayClass17_0._206D_206A_200F_202E_206E_206D_202B_200D_206D_200D_202E_200D_202E_200D_206A_200C_206A_200D_202D_206A_206B_202B_200F_200C_202D_206A_200E_200F_206E_206D_202E_202D_202C_202C_206C_206E_206B_200C_206D_206C_202E(_003C_003Ec__DisplayClass17_0._200D_202A_206B_206F_200D_200D_206F_206F_206B_200F_202A_206E_200E_206C_206F_206C_200F_206C_202C_206E_202B_200B_200E_206E_206B_206B_202B_206F_200B_206C_200B_206C_206C_200E_200C_202E_200B_200C_206C_202E(x), provider.InternalName)); + return _pluginInterface.InstalledPlugins.FirstOrDefault((IExposedPlugin x) => x.InternalName == provider.InternalName); } - [MethodImpl(MethodImplOptions.NoInlining)] private List<string> DetectIpcConflicts() { List<string> list = new List<string>(); - IEnumerator<PluginRequirement> enumerator = ConflictEligibleGroups.GetEnumerator(); - try + foreach (PluginRequirement conflictEligibleGroup in ConflictEligibleGroups) { - int num = -1006735350; - List<string> list2 = default(List<string>); - while (true) + List<string> list2 = (from p in conflictEligibleGroup.Providers + where FindProvider(p)?.IsLoaded ?? false + select p.DisplayName).ToList(); + if (list2.Count > 1) { - int num2 = num; - int num3 = -1006735350; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = (_206F_202E_200C_202D_206F_206D_202D_202C_206D_200B_202D_202A_202D_202D_202C_200C_206B_206E_206C_200E_206D_206D_202E_206C_206D_206B_200F_200C_200E_206A_200F_202E_202C_200E_200E_206A_206E_200B_200B_202C_202E((IEnumerator)enumerator) ? (-1006735349) : (-1006735352)); - break; - case 1: - list2 = (from p in enumerator.Current.Providers.Where(delegate(PluginProvider p) - { - IExposedPlugin exposedPlugin = FindProvider(p); - int num8 = ((exposedPlugin == null) ? (-1051625553) : (-1051625556)); - while (true) - { - int num9 = num8; - int num10 = -1051625555; - int num11 = num9; - int num12 = num11 + num10; - int num13 = num11 & num10; - switch (num12 - (num13 + num13)) - { - case 0: - goto IL_004b; - case 1: - return _206B_200E_202B_200C_206B_202C_206F_206B_202A_202D_202A_202D_202C_206D_200B_200B_200E_206A_206A_206C_202E_202B_200B_206B_200E_202C_200C_202E_202A_202E_200E_202D_202E_206F_202E_206B_202C_200C_206F_206F_202E(exposedPlugin); - case 2: - return false; - } - continue; - IL_004b: - num8 = -1051625556; - } - }) - select p.DisplayName).ToList(); - num = ((list2.Count <= 1) ? (-1006735350) : (-1006735351)); - break; - case 3: - list.Add(_202E_200E_202E_206E_202D_200B_202B_200B_200E_200E_200C_206A_202E_206E_206F_202C_206F_206C_202C_200B_200B_202E_200B_206F_200F_206E_202E_202D_206D_200C_206A_202D_206E_206C_200B_200B_206F_200D_202B_202A_202E(_200D_202D_200E_202E_202E_206F_206C_206B_202C_200D_202E_202E_202A_202A_200B_200C_200B_206A_206E_200F_206D_200D_200D_200C_200E_206D_202E_206C_200F_202E_206D_200F_202E_200E_206E_202B_206C_206A_206B_206E_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-566909963), (IEnumerable<string>)list2), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1222712651))); - num = -1006735350; - break; - case 4: - num = -1006735350; - break; - case 2: - return list; - } - } - } - finally - { - int num = ((enumerator == null) ? (-1090896135) : (-1090896134)); - while (true) - { - int num7 = num; - int num3 = -1090896136; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - goto end_IL_0139; - case 2: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E((IDisposable)enumerator); - num = -1090896135; - break; - case 0: - num = -1090896134; - break; - } - continue; - end_IL_0139: - break; + list.Add(string.Join(" and ", list2) + " are both loaded - disable one to avoid unpredictable behavior"); } } + return list; } - [MethodImpl(MethodImplOptions.NoInlining)] private bool DrawRequirement(PluginRequirement requirement, float checklistPadding) { bool flag = false; - ImRaii.IdDisposable idDisposable = _206C_200C_200B_200D_202A_202B_202C_200B_202E_202E_206F_202A_202B_200E_202A_200F_206B_206F_206E_200E_206B_206A_206E_202C_202E_206E_200C_200D_202A_200B_206F_202A_200B_202C_200B_202B_206E_202C_206C_202B_202E((ImU8String)_202E_200E_202E_206E_202D_200B_202B_200B_200E_200E_200C_206A_202E_206E_206F_202C_206F_206C_202C_200B_200B_202E_200B_206F_200F_206E_202E_202D_206D_200C_206A_202D_206E_206C_200B_200B_206F_200D_202B_202A_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1635601727), requirement.GroupName), true); - try + using (ImRaii.PushId("req_" + requirement.GroupName)) { if (requirement.Providers.Count > 1) { - _202D_202A_206D_206B_200B_200F_200E_200B_200B_206B_200F_202A_200F_206D_200C_200F_206C_200E_202D_202D_200D_206E_202A_206C_200C_202E_200B_206C_206F_206E_202E_202E_206E_206D_206E_200B_206E_200F_206F_200E_202E((ImU8String)requirement.GroupName); - ImRaii.IndentDisposable indentDisposable = _200B_200C_200D_200F_202E_200F_206D_206E_200D_202C_200B_206D_202B_200F_200E_206E_202A_200D_200D_200D_200C_200F_206B_200B_200C_202A_202E_206E_206D_200F_202C_200C_206C_200F_200C_206C_206A_206B_206B_206D_202E(checklistPadding, true, true); - try + ImGui.TextUnformatted(requirement.GroupName); + using (ImRaii.PushIndent(checklistPadding)) { - int num = (_202A_206C_206D_202D_206B_202E_206E_200D_206E_202B_200F_200C_202D_202C_202B_202A_200E_206F_206D_200B_206B_202D_202A_206E_200E_202B_200F_202B_206C_202E_200B_202C_206F_206C_200D_200E_206B_200B_200E_200D_202E(requirement.Description) ? (-1189463) : (-1189462)); - while (true) + if (!string.IsNullOrEmpty(requirement.Description)) { - int num2 = num; - int num3 = -1189461; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1189462; - break; - case 1: - _200F_202E_200C_202C_200B_206A_206F_200C_206D_202B_202D_206E_206A_200E_206B_206B_206C_206A_202C_202A_202D_206E_206E_202D_200F_206D_202A_200B_200F_206B_206B_200F_202D_206D_200C_206B_206B_200E_200C_206E_202E(0f); - _202A_202D_200F_202E_202D_202C_200F_200C_206C_200E_200E_202E_202E_200D_206F_200D_206C_200E_202C_206A_206E_200E_200B_206D_202B_206B_200B_202B_202B_200B_206E_206C_200E_202E_206E_202C_200B_206A_206C_202C_202E(ref UiThemeUtils.DimTextColor, (ImU8String)requirement.Description); - _200B_202B_202B_206F_202D_202D_206D_200F_206A_206E_202E_206E_202C_202C_202C_206F_206A_200B_202A_202B_206E_206E_200D_200C_200C_202A_206B_206D_200B_206A_200C_200E_200D_200E_200F_206E_206D_202A_202D_202A_202E(); - num = -1189463; - break; - case 2: - { - IEnumerator<PluginProvider> enumerator = requirement.Providers.GetEnumerator(); - try - { - num = 979882847; - while (true) - { - int num5 = num; - num3 = 979882845; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 0: - num = 979882847; - break; - case 2: - num = (_206F_202E_200C_202D_206F_206D_202D_202C_206D_200B_202D_202A_202D_202D_202C_200C_206B_206E_206C_200E_206D_206D_202E_206C_206D_206B_200F_200C_200E_206A_200F_202E_202C_200E_200E_206A_206E_200B_200B_202C_202E((IEnumerator)enumerator) ? 979882846 : 979882844); - break; - case 3: - { - PluginProvider current = enumerator.Current; - flag |= DrawProvider(current, checklistPadding); - num = 979882847; - break; - } - case 1: - goto end_IL_00f7; - } - continue; - end_IL_00f7: - break; - } - } - finally - { - num = ((enumerator == null) ? (-1773998403) : (-1773998402)); - while (true) - { - int num8 = num; - num3 = -1773998404; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1773998402; - break; - case 2: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E((IDisposable)enumerator); - num = -1773998403; - break; - case 1: - goto end_IL_019b; - } - continue; - end_IL_019b: - break; - } - } - DrawRequirementExtras(requirement, checklistPadding, flag); - goto end_IL_0077; - } - } - continue; - end_IL_0077: - break; + ImGui.PushTextWrapPos(0f); + ImGui.TextColored(in UiThemeUtils.DimTextColor, requirement.Description); + ImGui.PopTextWrapPos(); } - } - finally - { - int num = ((indentDisposable == null) ? 582692765 : 582692766); - while (true) + foreach (PluginProvider provider in requirement.Providers) { - int num9 = num; - int num3 = 582692764; - int num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 1: - goto end_IL_0212; - case 2: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E((IDisposable)indentDisposable); - num = 582692765; - break; - case 0: - num = 582692766; - break; - } - continue; - end_IL_0212: - break; + flag |= DrawProvider(provider, checklistPadding); } + DrawRequirementExtras(requirement, checklistPadding, flag); } } else { PluginProvider pluginProvider = requirement.Providers[0]; IExposedPlugin exposedPlugin = FindProvider(pluginProvider); - int num = ((exposedPlugin == null) ? 961917508 : 961917504); - bool isDisabled = default(bool); - bool flag2 = default(bool); - while (true) + bool flag2 = exposedPlugin?.IsLoaded ?? false; + bool isDisabled = exposedPlugin != null && !exposedPlugin.IsLoaded; + flag = flag2; + _uiUtils.ChecklistItem(pluginProvider.DisplayName, flag2); + if (exposedPlugin != null) { - int num12 = num; - int num3 = 961917508; - int num4 = num12; - int num14; - int num13; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 0: - num14 = 0; - goto IL_02d3; - case 4: - num14 = (_206B_200E_202B_200C_206B_202C_206F_206B_202A_202D_202A_202D_202C_206D_200B_200B_200E_206A_206A_206C_202E_202B_200B_206B_200E_202C_200C_202E_202A_202E_200E_202D_202E_206F_202E_206B_202C_200C_206F_206F_202E(exposedPlugin) ? 1 : 0); - goto IL_02d3; - case 6: - num13 = 0; - goto IL_030d; - case 2: - num = 961917504; - continue; - case 1: - { - _206F_202A_202D_202E_202B_200C_202D_206B_202D_206E_200C_200E_200F_206C_206F_202C_200F_200B_202A_206B_206A_202D_206C_200B_200E_206A_202A_202E_202C_200B_206C_206A_202C_202E_202E_202A_200B_206A_206F_200E_202E(); - ImU8String imU8String = new ImU8String(1, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1813717021)); - imU8String.AppendFormatted(_202C_202B_200C_206B_202C_200C_202D_200D_206B_202E_206D_200C_206D_206B_200F_202C_206B_206A_200E_202B_206C_200B_200F_200E_206C_200C_200F_206A_200F_206B_202C_200E_206C_202D_200E_200E_206C_202B_200B_206E_202E(exposedPlugin)); - _202A_202D_200F_202E_202D_202C_200F_200C_206C_200E_200E_202E_202E_200D_206F_200D_206C_200E_202C_206A_206E_200E_200B_206D_202B_206B_200B_202B_202B_200B_206E_206C_200E_202E_206E_202C_200B_206A_206C_202C_202E(ref UiThemeUtils.DimTextColor, imU8String); - num = 961917511; - continue; - } - case 5: - num13 = ((!_206B_200E_202B_200C_206B_202C_206F_206B_202A_202D_202A_202D_202C_206D_200B_200B_200E_206A_206A_206C_202E_202B_200B_206B_200E_202C_200C_202E_202A_202E_200E_202D_202E_206F_202E_206B_202C_200C_206F_206F_202E(exposedPlugin)) ? 1 : 0); - goto IL_030d; - case 3: - break; - IL_030d: - isDisabled = (byte)num13 != 0; - flag = flag2; - _uiUtils.ChecklistItem(pluginProvider.DisplayName, flag2); - num = ((exposedPlugin == null) ? 961917511 : 961917509); - continue; - IL_02d3: - flag2 = (byte)num14 != 0; - num = ((exposedPlugin == null) ? 961917506 : 961917505); - continue; - } - break; + ImGui.SameLine(); + ImU8String text = new ImU8String(1, 1); + text.AppendLiteral("v"); + text.AppendFormatted(exposedPlugin.Version); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text); } - ImRaii.IndentDisposable indentDisposable = _200B_200C_200D_200F_202E_200F_206D_206E_200D_202C_200B_206D_202B_200F_200E_206E_202A_200D_200D_200D_200C_200F_206B_200B_200C_202A_202E_206E_206D_200F_202C_200C_206C_200F_200C_206C_206A_206B_206B_206D_202E(checklistPadding, true, true); - try + using (ImRaii.PushIndent(checklistPadding)) { - num = (_202A_206C_206D_202D_206B_202E_206E_200D_206E_202B_200F_200C_202D_202C_202B_202A_200E_206F_206D_200B_206B_202D_202A_206E_200E_202B_200F_202B_206C_202E_200B_202C_206F_206C_200D_200E_206B_200B_200E_200D_202E(requirement.Description) ? 1089901797 : 1089901796); - while (true) + if (!string.IsNullOrEmpty(requirement.Description)) { - int num15 = num; - int num3 = 1089901797; - int num4 = num15; - int num16 = num4 + num3; - int num17 = num4 & num3; - switch (num16 - (num17 + num17)) - { - case 2: - num = 1089901796; - break; - case 1: - _200F_202E_200C_202C_200B_206A_206F_200C_206D_202B_202D_206E_206A_200E_206B_206B_206C_206A_202C_202A_202D_206E_206E_202D_200F_206D_202A_200B_200F_206B_206B_200F_202D_206D_200C_206B_206B_200E_200C_206E_202E(0f); - _202A_202D_200F_202E_202D_202C_200F_200C_206C_200E_200E_202E_202E_200D_206F_200D_206C_200E_202C_206A_206E_200E_200B_206D_202B_206B_200B_202B_202B_200B_206E_206C_200E_202E_206E_202C_200B_206A_206C_202C_202E(ref UiThemeUtils.DimTextColor, (ImU8String)requirement.Description); - _200B_202B_202B_206F_202D_202D_206D_200F_206A_206E_202E_206E_202C_202C_202C_206F_206A_200B_202A_202B_206E_206E_200D_200C_200C_202A_206B_206D_200B_206A_200C_200E_200D_200E_200F_206E_206D_202A_202D_202A_202E(); - num = 1089901797; - break; - case 0: - DrawRequirementExtras(requirement, checklistPadding, flag2); - DrawProviderActions(pluginProvider, exposedPlugin, flag2, isDisabled); - goto end_IL_03ed; - } - continue; - end_IL_03ed: - break; - } - } - finally - { - num = ((indentDisposable == null) ? 1392021490 : 1392021491); - while (true) - { - int num18 = num; - int num3 = 1392021490; - int num4 = num18; - int num19 = num4 + num3; - int num20 = num4 & num3; - switch (num19 - (num20 + num20)) - { - case 0: - goto end_IL_0492; - case 1: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E((IDisposable)indentDisposable); - num = 1392021490; - break; - case 2: - num = 1392021491; - break; - } - continue; - end_IL_0492: - break; + ImGui.PushTextWrapPos(0f); + ImGui.TextColored(in UiThemeUtils.DimTextColor, requirement.Description); + ImGui.PopTextWrapPos(); } + DrawRequirementExtras(requirement, checklistPadding, flag2); + DrawProviderActions(pluginProvider, exposedPlugin, flag2, isDisabled); } } - _202B_206D_206D_202C_200F_200E_200B_202D_200C_206A_206C_202A_206F_202C_206B_200C_202A_202E_200B_202C_200C_200E_206A_206A_202C_202D_200F_206D_206D_200F_206F_202C_200F_200F_206F_202B_202C_206B_202A_200F_202E(); + ImGui.Spacing(); return flag; } - finally - { - int num = ((idDisposable == null) ? 11622408 : 11622411); - while (true) - { - int num21 = num; - int num3 = 11622410; - int num4 = num21; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 11622411; - break; - case 1: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E((IDisposable)idDisposable); - num = 11622408; - break; - case 2: - goto end_IL_0507; - } - continue; - end_IL_0507: - break; - } - } } - [MethodImpl(MethodImplOptions.NoInlining)] private bool DrawProvider(PluginProvider provider, float checklistPadding) { - ImRaii.IdDisposable idDisposable = _206C_200C_200B_200D_202A_202B_202C_200B_202E_202E_206F_202A_202B_200E_202A_200F_206B_206F_206E_200E_206B_206A_206E_202C_202E_206E_200C_200D_202A_200B_206F_202A_200B_202C_200B_202B_206E_202C_206C_202B_202E((ImU8String)_202E_200E_202E_206E_202D_200B_202B_200B_200E_200E_200C_206A_202E_206E_206F_202C_206F_206C_202C_200B_200B_202E_200B_206F_200F_206E_202E_202D_206D_200C_206A_202D_206E_206C_200B_200B_206F_200D_202B_202A_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-956198908), provider.DisplayName), true); - try + using (ImRaii.PushId("prov_" + provider.DisplayName)) { IExposedPlugin exposedPlugin = FindProvider(provider); - int num = ((exposedPlugin == null) ? (-542460311) : (-542460312)); - bool flag = default(bool); - bool isDisabled = default(bool); - while (true) + bool flag = exposedPlugin?.IsLoaded ?? false; + bool isDisabled = exposedPlugin != null && !exposedPlugin.IsLoaded; + _uiUtils.ChecklistItem(provider.DisplayName, flag); + if (exposedPlugin != null) { - int num2 = num; - int num3 = -542460311; - int num4 = num2; - int num6; - int num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - { - _206F_202A_202D_202E_202B_200C_202D_206B_202D_206E_200C_200E_200F_206C_206F_202C_200F_200B_202A_206B_206A_202D_206C_200B_200E_206A_202A_202E_202C_200B_206C_206A_202C_202E_202E_202A_200B_206A_206F_200E_202E(); - ImU8String imU8String = new ImU8String(1, 1); - imU8String.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1827973971)); - imU8String.AppendFormatted(_202C_202B_200C_206B_202C_200C_202D_200D_206B_202E_206D_200C_206D_206B_200F_202C_206B_206A_200E_202B_206C_200B_200F_200E_206C_200C_200F_206A_200F_206B_202C_200E_206C_202D_200E_200E_206C_202B_200B_206E_202E(exposedPlugin)); - _202A_202D_200F_202E_202D_202C_200F_200C_206C_200E_200E_202E_202E_200D_206F_200D_206C_200E_202C_206A_206E_200E_200B_206D_202B_206B_200B_202B_202B_200B_206E_206C_200E_202E_206E_202C_200B_206A_206C_202C_202E(ref UiThemeUtils.DimTextColor, imU8String); - num = -542460309; - break; - } - case 1: - num6 = (_206B_200E_202B_200C_206B_202C_206F_206B_202A_202D_202A_202D_202C_206D_200B_200B_200E_206A_206A_206C_202E_202B_200B_206B_200E_202C_200C_202E_202A_202E_200E_202D_202E_206F_202E_206B_202C_200C_206F_206F_202E(exposedPlugin) ? 1 : 0); - goto IL_0142; - case 3: - num7 = ((!_206B_200E_202B_200C_206B_202C_206F_206B_202A_202D_202A_202D_202C_206D_200B_200B_200E_206A_206A_206C_202E_202B_200B_206B_200E_202C_200C_202E_202A_202E_200E_202D_202E_206F_202E_206B_202C_200C_206F_206F_202E(exposedPlugin)) ? 1 : 0); - goto IL_00f9; - case 5: - num7 = 0; - goto IL_00f9; - case 4: - num = -542460312; - break; - case 0: - num6 = 0; - goto IL_0142; - case 2: - { - ImRaii.IndentDisposable indentDisposable = _200B_200C_200D_200F_202E_200F_206D_206E_200D_202C_200B_206D_202B_200F_200E_206E_202A_200D_200D_200D_200C_200F_206B_200B_200C_202A_202E_206E_206D_200F_202C_200C_206C_200F_200C_206C_206A_206B_206B_206D_202E(checklistPadding, true, true); - try - { - DrawProviderActions(provider, exposedPlugin, flag, isDisabled); - } - finally - { - num = ((indentDisposable == null) ? 685235413 : 685235414); - while (true) - { - int num5 = num; - num3 = 685235412; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 685235414; - break; - case 1: - goto end_IL_0199; - case 2: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E((IDisposable)indentDisposable); - num = 685235413; - break; - } - continue; - end_IL_0199: - break; - } - } - return flag; - } - IL_00f9: - isDisabled = (byte)num7 != 0; - _uiUtils.ChecklistItem(provider.DisplayName, flag); - num = ((exposedPlugin == null) ? (-542460309) : (-542460305)); - break; - IL_0142: - flag = (byte)num6 != 0; - num = ((exposedPlugin == null) ? (-542460308) : (-542460310)); - break; - } + ImGui.SameLine(); + ImU8String text = new ImU8String(1, 1); + text.AppendLiteral("v"); + text.AppendFormatted(exposedPlugin.Version); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text); } - } - finally - { - int num = ((idDisposable == null) ? (-600920814) : (-600920813)); - while (true) + using (ImRaii.PushIndent(checklistPadding)) { - int num8 = num; - int num3 = -600920814; - int num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 2: - num = -600920813; - break; - case 0: - goto end_IL_020b; - case 1: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E((IDisposable)idDisposable); - num = -600920814; - break; - } - continue; - end_IL_020b: - break; + DrawProviderActions(provider, exposedPlugin, flag, isDisabled); } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool DrawNavigationSelection(float checklistPadding) - { - ImRaii.IdDisposable idDisposable = _206C_200C_200B_200D_202A_202B_202C_200B_202E_202E_206F_202A_202B_200E_202A_200F_206B_206F_206E_200E_206B_206A_206E_202C_202E_206E_200C_200D_202A_200B_206F_202A_200B_202C_200B_202B_206E_202C_206C_202B_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-256030487), true); - try - { - bool flag = true; - _202D_202A_206D_206B_200B_200F_200E_200B_200B_206B_200F_202A_200F_206D_200C_200F_206C_200E_202D_202D_200D_206E_202A_206C_200C_202E_200B_206C_206F_206E_202E_202E_206E_206D_206E_200B_206E_200F_206F_200E_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1010966512)); - ImRaii.IndentDisposable indentDisposable = _200B_200C_200D_200F_202E_200F_206D_206E_200D_202C_200B_206D_202B_200F_200E_206E_202A_200D_200D_200D_200C_200F_206B_200B_200C_202A_202E_206E_206D_200F_202C_200C_206C_200F_200C_206C_206A_206B_206B_206D_202E(checklistPadding, true, true); - try - { - _200F_202E_200C_202C_200B_206A_206F_200C_206D_202B_202D_206E_206A_200E_206B_206B_206C_206A_202C_202A_202D_206E_206E_202D_200F_206D_202A_200B_200F_206B_206B_200F_202D_206D_200C_206B_206B_200E_200C_206E_202E(0f); - _202A_202D_200F_202E_202D_202C_200F_200C_206C_200E_200E_202E_202E_200D_206F_200D_206C_200E_202C_206A_206E_200E_200B_206D_202B_206B_200B_202B_202B_200B_206E_206C_200E_202E_206E_202C_200B_206A_206C_202C_202E(ref UiThemeUtils.DimTextColor, (ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1894858104)); - _200B_202B_202B_206F_202D_202D_206D_200F_206A_206E_202E_206E_202C_202C_202C_206F_206A_200B_202A_202B_206E_206E_200D_200C_200C_202A_206B_206D_200B_206A_200C_200E_200D_200E_200F_206E_206D_202A_202D_202A_202E(); - flag &= DrawNavigationProvider(Questionable.Configuration.ENavigationProvider.Vnavmesh); - Configuration.ENavigationProvider navigationProvider = _configuration.General.NavigationProvider; - int num = (_wigglyNavAvailability.IsCompatible ? (-1787642142) : (-1787642137)); - while (true) - { - int num2 = num; - int num3 = -1787642143; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 7: - num = -1787642137; - break; - case 2: - num = ((!_configuration.Advanced.ShowWigglyNavShimProvider) ? (-1787642139) : (-1787642144)); - break; - case 4: - num = ((navigationProvider != Questionable.Configuration.ENavigationProvider.WigglyNavShim) ? (-1787642143) : (-1787642140)); - break; - case 5: - flag &= DrawNavigationProvider(Questionable.Configuration.ENavigationProvider.WigglyNavShim); - num = -1787642143; - break; - case 6: - num = ((navigationProvider != Questionable.Configuration.ENavigationProvider.WigglyNav) ? (-1787642141) : (-1787642142)); - break; - case 3: - flag &= DrawNavigationProvider(Questionable.Configuration.ENavigationProvider.WigglyNav); - num = -1787642141; - break; - case 1: - num = (IsWigglyNavInstalled() ? (-1787642140) : (-1787642139)); - break; - case 0: - goto end_IL_00a0; - } - continue; - end_IL_00a0: - break; - } - } - finally - { - int num = ((indentDisposable == null) ? (-1047707652) : (-1047707651)); - while (true) - { - int num7 = num; - int num3 = -1047707652; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_01cb; - case 1: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E((IDisposable)indentDisposable); - num = -1047707652; - break; - case 2: - num = -1047707651; - break; - } - continue; - end_IL_01cb: - break; - } - } - _202B_206D_206D_202C_200F_200E_200B_202D_200C_206A_206C_202A_206F_202C_206B_200C_202A_202E_200B_202C_200C_200E_206A_206A_202C_202D_200F_206D_206D_200F_206F_202C_200F_200F_206F_202B_202C_206B_202A_200F_202E(); return flag; } - finally + } + + private bool DrawNavigationSelection(float checklistPadding) + { + using (ImRaii.PushId("req_Navigation")) { - int num = ((idDisposable == null) ? (-1041380219) : (-1041380220)); - while (true) + bool flag = true; + ImGui.TextUnformatted("Navigation"); + using (ImRaii.PushIndent(checklistPadding)) { - int num8 = num; - int num3 = -1041380219; - int num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) + ImGui.PushTextWrapPos(0f); + ImGui.TextColored(in UiThemeUtils.DimTextColor, "Handles navigation within a zone, moving your character to quest objectives."); + ImGui.PopTextWrapPos(); + flag &= DrawNavigationProvider(Questionable.Configuration.ENavigationProvider.Vnavmesh); + Configuration.ENavigationProvider navigationProvider = _configuration.General.NavigationProvider; + if (_wigglyNavAvailability.IsCompatible || navigationProvider == Questionable.Configuration.ENavigationProvider.WigglyNav) { - case 2: - num = -1041380220; - break; - case 1: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E((IDisposable)idDisposable); - num = -1041380219; - break; - case 0: - goto end_IL_0241; + flag &= DrawNavigationProvider(Questionable.Configuration.ENavigationProvider.WigglyNav); + } + if ((_configuration.Advanced.ShowWigglyNavShimProvider && IsWigglyNavInstalled()) || navigationProvider == Questionable.Configuration.ENavigationProvider.WigglyNavShim) + { + flag &= DrawNavigationProvider(Questionable.Configuration.ENavigationProvider.WigglyNavShim); } - continue; - end_IL_0241: - break; } + ImGui.Spacing(); + return flag; } } - [MethodImpl(MethodImplOptions.NoInlining)] private bool DrawNavigationProvider(Configuration.ENavigationProvider navigationProvider) { PluginRequirement pluginRequirement = NavigationPlugins[navigationProvider]; - ImRaii.IdDisposable idDisposable = _206C_200C_200B_200D_202A_202B_202C_200B_202E_202E_206F_202A_202B_200E_202A_200F_206B_206F_206E_200E_206B_206A_206E_202C_202E_206E_200C_200D_202A_200B_206F_202A_200B_202C_200B_202B_206E_202C_206C_202B_202E((ImU8String)_202E_200E_202E_206E_202D_200B_202B_200B_200E_200E_200C_206A_202E_206E_206F_202C_206F_206C_202C_200B_200B_202E_200B_206F_200F_206E_202E_202D_206D_200C_206A_202D_206E_206C_200B_200B_206F_200D_202B_202A_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(794949383), pluginRequirement.GroupName), true); - try + using (ImRaii.PushId("nav_" + pluginRequirement.GroupName)) { - int num = ((!_206B_206F_200E_200B_202D_202D_206E_206B_202D_200F_206B_206A_206A_206E_202E_200B_206B_206B_206F_200F_200C_206C_200C_200B_202C_202B_206B_200F_206E_200B_206D_200D_202B_200C_200F_206A_200B_206B_202A_200E_202E((ImU8String)pluginRequirement.GroupName, _configuration.General.NavigationProvider == navigationProvider)) ? 310088016 : 310088022); - int result; - IExposedPlugin exposedPlugin = default(IExposedPlugin); - PluginProvider pluginProvider = default(PluginProvider); - bool flag2 = default(bool); - while (true) + if (ImGui.RadioButton(pluginRequirement.GroupName, _configuration.General.NavigationProvider == navigationProvider)) { - int num2 = num; - int num3 = 310088023; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num8; - int num7; - bool flag; - bool num9; - bool flag3; - bool isLoaded; - int isDisabled; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 2: - result = ((_configuration.General.NavigationProvider != navigationProvider) ? 1 : 0); - break; - case 4: - num8 = (_206B_200E_202B_200C_206B_202C_206F_206B_202A_202D_202A_202D_202C_206D_200B_200B_200E_206A_206A_206C_202E_202B_200B_206B_200E_202C_200C_202E_202A_202E_200E_202D_202E_206F_202E_206B_202C_200C_206F_206F_202E(exposedPlugin) ? 1 : 0); - goto IL_0179; - case 7: - pluginProvider = pluginRequirement.Providers[0]; - exposedPlugin = FindProvider(pluginProvider); - num = ((exposedPlugin == null) ? 310088020 : 310088019); - continue; - case 1: - _configuration.General.NavigationProvider = navigationProvider; - _206D_206D_206A_200F_202E_200B_202E_206C_206A_206E_206D_202C_202C_206C_202A_206D_202A_202B_206D_200C_200E_206B_202C_202C_200B_206B_202E_206B_206B_206B_202C_202B_200B_206F_200C_200D_206B_200F_202A_202C_202E(_pluginInterface, (IPluginConfiguration)_configuration); - num = 310088016; - continue; - case 8: - num7 = ((!_206B_200E_202B_200C_206B_202C_206F_206B_202A_202D_202A_202D_202C_206D_200B_200B_200E_206A_206A_206C_202E_202B_200B_206B_200E_202C_200C_202E_202A_202E_200E_202D_202E_206F_202E_206B_202C_200C_206F_206F_202E(exposedPlugin)) ? 1 : 0); - goto IL_019a; - case 5: - num = 310088022; - continue; - case 3: - num8 = 0; - goto IL_0179; - case 6: - num7 = 0; - goto IL_019a; - case 0: - { - result = 1; - break; - } - IL_019a: - flag = (byte)num7 != 0; - num9 = flag2; - if (exposedPlugin != null) - { - _202B_200B_206A_200C_200D_202E_200B_200C_206A_206E_202B_206D_202B_202D_206B_206F_200B_206E_200E_200C_206E_202C_202D_200D_202C_200C_200F_206C_206B_202C_200D_202B_202B_206B_202D_200E_200C_200D_206E_200C_202E(0f); - _202D_200E_206B_206A_202C_200D_206F_206C_202C_206D_206D_202B_206D_202D_200B_200D_200D_206D_202A_202E_206B_206E_202C_202E_206C_200E_206C_202B_202A_202C_202A_206F_206A_206B_200B_202D_200B_206A_206D_206C_202E(); - ImU8String imU8String = new ImU8String(1, 1); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1938431546)); - imU8String.AppendFormatted(_202C_202B_200C_206B_202C_200C_202D_200D_206B_202E_206D_200C_206D_206B_200F_202C_206B_206A_200E_202B_206C_200B_200F_200E_206C_200C_200F_206A_200F_206B_202C_200E_206C_202D_200E_200E_206C_202B_200B_206E_202E(exposedPlugin)); - _202A_202D_200F_202E_202D_202C_200F_200C_206C_200E_200E_202E_202E_200D_206F_200D_206C_200E_202C_206A_206E_200E_200B_206D_202B_206B_200B_202B_202B_200B_206E_206C_200E_202E_206E_202C_200B_206A_206C_202C_202E(ref UiThemeUtils.DimTextColor, imU8String); - } - flag3 = navigationProvider == Questionable.Configuration.ENavigationProvider.WigglyNav && !_wigglyNavAvailability.IsCompatible; - isLoaded = flag2 && !flag3; - if (!flag) - { - bool num10 = flag2; - num3 = (flag3 ? 1 : 0); - num4 = (num10 ? 1 : 0); - isDisabled = (num4 | num3) - (num4 ^ num3); - } - else - { - isDisabled = 1; - } - DrawProviderStatusIcon(isLoaded, (byte)isDisabled != 0); - if (!flag2 && _206A_206F_206D_206A_200D_202A_202A_206E_200F_200C_200C_200F_206A_202D_200F_206F_206E_202A_200C_206C_200E_200C_202B_200F_206C_202C_202E_206C_200C_206B_206B_206D_206E_206A_200C_206B_206E_200B_206A_202A_202E(pluginProvider.DalamudRepositoryUri, (Uri)null)) - { - DrawInlineProviderActions(pluginProvider, flag); - } - if (navigationProvider == Questionable.Configuration.ENavigationProvider.WigglyNav && _configuration.General.NavigationProvider == navigationProvider && !_wigglyNavAvailability.IsCompatible) - { - _206F_202A_202D_202E_202B_200C_202D_206B_202D_206E_200C_200E_200F_206C_206F_202C_200F_200B_202A_206B_206A_202D_206C_200B_200E_206A_202A_202E_202C_200B_206C_206A_202C_202E_202E_202A_200B_206A_206F_200E_202E(); - _202D_200E_206B_206A_202C_200D_206F_206C_202C_206D_206D_202B_206D_202D_200B_200D_200D_206D_202A_202E_206B_206E_202C_202E_206C_200E_206C_202B_202A_202C_202A_206F_206A_206B_200B_202D_200B_206A_206D_206C_202E(); - _202A_202D_200F_202E_202D_202C_200F_200C_206C_200E_200E_202E_202E_200D_206F_200D_206C_200E_202C_206A_206E_200E_200B_206D_202B_206B_200B_202B_202B_200B_206E_206C_200E_202E_206E_202C_200B_206A_206C_202C_202E(ref UiThemeUtils.DimTextColor, (ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1036127683)); - } - num = (num9 ? 310088023 : 310088021); - continue; - IL_0179: - flag2 = (byte)num8 != 0; - num = ((exposedPlugin == null) ? 310088017 : 310088031); - continue; - } - break; + _configuration.General.NavigationProvider = navigationProvider; + _pluginInterface.SavePluginConfig(_configuration); } - return (byte)result != 0; - } - finally - { - int num = ((idDisposable == null) ? (-565239728) : (-565239727)); - while (true) + PluginProvider pluginProvider = pluginRequirement.Providers[0]; + IExposedPlugin exposedPlugin = FindProvider(pluginProvider); + bool flag = exposedPlugin?.IsLoaded ?? false; + bool flag2 = exposedPlugin != null && !exposedPlugin.IsLoaded; + if (exposedPlugin != null) { - int num11 = num; - int num3 = -565239728; - int num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) - { - case 2: - num = -565239727; - break; - case 1: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E((IDisposable)idDisposable); - num = -565239728; - break; - case 0: - goto end_IL_02ef; - } - continue; - end_IL_02ef: - break; + ImGui.SameLine(0f); + ImGui.AlignTextToFramePadding(); + ImU8String text = new ImU8String(1, 1); + text.AppendLiteral("v"); + text.AppendFormatted(exposedPlugin.Version); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text); } + bool flag3 = navigationProvider == Questionable.Configuration.ENavigationProvider.WigglyNav && !_wigglyNavAvailability.IsCompatible; + DrawProviderStatusIcon(flag && !flag3, flag2 || (flag && flag3)); + if (!flag && pluginProvider.DalamudRepositoryUri != null) + { + DrawInlineProviderActions(pluginProvider, flag2); + } + if (navigationProvider == Questionable.Configuration.ENavigationProvider.WigglyNav && _configuration.General.NavigationProvider == navigationProvider && !_wigglyNavAvailability.IsCompatible) + { + ImGui.SameLine(); + ImGui.AlignTextToFramePadding(); + ImGui.TextColored(in UiThemeUtils.DimTextColor, "(unavailable - using vnavmesh)"); + } + return flag || _configuration.General.NavigationProvider != navigationProvider; } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawProviderActions(PluginProvider provider, IExposedPlugin? installed, bool isLoaded, bool isDisabled) { - int num = ((!isLoaded) ? (-1679626831) : (-1679626819)); - while (true) + if (isLoaded) { - int num2 = num; - int num3 = -1679626828; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return; + } + if (isDisabled) + { + ImGui.TextColored(in UiThemeUtils.StatusActive, "Installed but disabled"); + DrawEnableButton(provider); + DrawInstallError(provider); + return; + } + DrawInstallButton(provider); + ImGui.SameLine(); + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Globe, "Website")) + { + Util.OpenLink(provider.WebsiteUri.ToString()); + } + if (provider.DalamudRepositoryUri != null) + { + ImGui.SameLine(); + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Code, "Repo")) { - case 0: - num = -1679626819; - break; - case 7: - DrawInstallError(provider); - return; - case 8: - _200F_206E_200B_202A_206F_202B_200B_206D_202D_206E_200D_206D_200C_202D_200F_202E_200D_202B_206F_206C_202B_206C_206C_200D_206A_200C_206C_202A_206B_202C_202E_206C_206B_200D_202C_206B_200D_206A_206E_206B_202E(_202B_206A_202D_206E_206B_200B_206C_206D_202C_202A_202A_200D_200B_200C_202C_200C_206E_206A_206E_200F_200C_206F_200B_206F_206C_202B_202C_206A_206F_206F_200F_206B_206C_200F_206C_200C_206A_200E_200B_206F_202E((object)provider.WebsiteUri)); - num = -1679626827; - break; - case 5: - num = ((!isDisabled) ? (-1679626826) : (-1679626825)); - break; - case 3: - _202A_202D_200F_202E_202D_202C_200F_200C_206C_200E_200E_202E_202E_200D_206F_200D_206C_200E_202C_206A_206E_200E_200B_206D_202B_206B_200B_202B_202B_200B_206E_206C_200E_202E_206E_202C_200B_206A_206C_202C_202E(ref UiThemeUtils.StatusActive, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1909700008)); - DrawEnableButton(provider); - DrawInstallError(provider); - return; - case 6: - _206F_202A_202D_202E_202B_200C_202D_206B_202D_206E_200C_200E_200F_206C_206F_202C_200F_200B_202A_206B_206A_202D_206C_200B_200E_206A_202A_202E_202C_200B_206C_206A_202C_202E_202E_202A_200B_206A_206F_200E_202E(); - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Code, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-625667250))) ? (-1679626829) : (-1679626832)); - break; - case 1: - num = ((!_206A_206F_206D_206A_200D_202A_202A_206E_200F_200C_200C_200F_206A_202D_200F_206F_206E_202A_200C_206C_200E_200C_202B_200F_206C_202C_202E_206C_200C_206B_206B_206D_206E_206A_200C_206B_206E_200B_206A_202A_202E(provider.DalamudRepositoryUri, (Uri)null)) ? (-1679626829) : (-1679626830)); - break; - case 9: - return; - case 2: - DrawInstallButton(provider); - _206F_202A_202D_202E_202B_200C_202D_206B_202D_206E_200C_200E_200F_206C_206F_202C_200F_200B_202A_206B_206A_202D_206C_200B_200E_206A_202A_202E_202C_200B_206C_206A_202C_202E_202E_202A_200B_206A_206F_200E_202E(); - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Globe, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(106460701))) ? (-1679626827) : (-1679626820)); - break; - case 4: - _200F_206E_200B_202A_206F_202B_200B_206D_202D_206E_200D_206D_200C_202D_200F_202E_200D_202B_206F_206C_202B_206C_206C_200D_206A_200C_206C_202A_206B_202C_202E_206C_206B_200D_202C_206B_200D_206A_206E_206B_202E(_202B_206A_202D_206E_206B_200B_206C_206D_202C_202A_202A_200D_200B_200C_202C_200C_206E_206A_206E_200F_200C_206F_200B_206F_206C_202B_202C_206A_206F_206F_200F_206B_206C_200F_206C_200C_206A_200E_200B_206F_202E((object)provider.DalamudRepositoryUri)); - num = -1679626829; - break; + Util.OpenLink(provider.DalamudRepositoryUri.ToString()); } } + DrawInstallError(provider); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawRequirementExtras(PluginRequirement requirement, float checklistPadding, bool isLoaded) { (string, Uri)? extraLink = requirement.ExtraLink; - int num = ((!extraLink.HasValue) ? (-1403183022) : (-1403183023)); - (string, Uri) valueOrDefault = default((string, Uri)); - while (true) + if (extraLink.HasValue) { - int num2 = num; - int num3 = -1403183021; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + (string, Uri) valueOrDefault = extraLink.GetValueOrDefault(); + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.ExternalLinkAlt, valueOrDefault.Item1)) { - default: - continue; - case 1: - if (requirement.DetailsToCheck != null) - { - num = -1403183024; - continue; - } - break; - case 2: - valueOrDefault = extraLink.GetValueOrDefault(); - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.ExternalLinkAlt, valueOrDefault.Item1)) ? (-1403183022) : (-1403183017)); - continue; - case 4: - _200F_206E_200B_202A_206F_202B_200B_206D_202D_206E_200D_206D_200C_202D_200F_202E_200D_202B_206F_206C_202B_206C_206C_200D_206A_200C_206C_202A_206B_202C_202E_206C_206B_200D_202C_206B_200D_206A_206E_206B_202E(_202B_206A_202D_206E_206B_200B_206C_206D_202C_202A_202A_200D_200B_200C_202C_200C_206E_206A_206E_200F_200C_206F_200B_206F_206C_202B_202C_206A_206F_206F_200F_206B_206C_200F_206C_200C_206A_200E_200B_206F_202E((object)valueOrDefault.Item2)); - num = -1403183022; - continue; - case 0: - num = -1403183023; - continue; - case 3: - foreach (PluginDetailInfo item in requirement.DetailsToCheck) - { - bool flag = item.Predicate(); - UiUtils uiUtils = _uiUtils; - string displayName = item.DisplayName; - num3 = (flag ? 1 : 0); - num4 = (isLoaded ? 1 : 0); - uiUtils.ChecklistItem(displayName, (byte)(num4 + num3 - (num4 | num3)) != 0); - if (_202A_206C_206D_202D_206B_202E_206E_200D_206E_202B_200F_200C_202D_202C_202B_202A_200E_206F_206D_200B_206B_202D_202A_206E_200E_202B_200F_202B_206C_202E_200B_202C_206F_206C_200D_200E_206B_200B_200E_200D_202E(item.Details)) - { - continue; - } - ImRaii.IndentDisposable indentDisposable = _200B_200C_200D_200F_202E_200F_206D_206E_200D_202C_200B_206D_202B_200F_200E_206E_202A_200D_200D_200D_200C_200F_206B_200B_200C_202A_202E_206E_206D_200F_202C_200C_206C_200F_200C_206C_206A_206B_206B_206D_202E(checklistPadding, true, true); - try - { - _202D_202A_206D_206B_200B_200F_200E_200B_200B_206B_200F_202A_200F_206D_200C_200F_206C_200E_202D_202D_200D_206E_202A_206C_200C_202E_200B_206C_206F_206E_202E_202E_206E_206D_206E_200B_206E_200F_206F_200E_202E((ImU8String)item.Details); - } - finally - { - num = ((indentDisposable == null) ? (-2133715370) : (-2133715369)); - while (true) - { - int num5 = num; - num3 = -2133715370; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -2133715369; - break; - case 1: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E((IDisposable)indentDisposable); - num = -2133715370; - break; - case 0: - goto end_IL_0175; - } - continue; - end_IL_0175: - break; - } - } - } - break; + Util.OpenLink(valueOrDefault.Item2.ToString()); } - break; } - num = ((!isLoaded) ? (-99509028) : (-99509025)); - while (true) + if (requirement.DetailsToCheck != null) { - int num6 = num; - int num3 = -99509031; - int num4 = num6; - int num7 = num4 + num3; - int num8 = num4 & num3; - switch (num7 - (num8 + num8)) + foreach (PluginDetailInfo item in requirement.DetailsToCheck) { - case 5: - return; - case 6: - { - List<PluginDetailInfo>? detailsToCheck = requirement.DetailsToCheck; - num = ((detailsToCheck == null || !detailsToCheck.Any((PluginDetailInfo d) => !d.Predicate())) ? (-99509028) : (-99509032)); - break; + bool flag = item.Predicate(); + _uiUtils.ChecklistItem(item.DisplayName, isLoaded && flag); + if (!string.IsNullOrEmpty(item.Details)) + { + using (ImRaii.PushIndent(checklistPadding)) + { + ImGui.TextUnformatted(item.Details); + } + } } - case 1: - num = ((requirement.ConfigCommand == null) ? (-99509028) : (-99509030)); - break; - case 2: - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Cog, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-91321368))) ? (-99509028) : (-99509027)); - break; - case 0: - num = -99509025; - break; - case 3: - num = ((!_200B_200F_200D_202A_202D_200D_202A_206C_200D_200B_206E_200C_206B_206A_200E_206E_202D_200E_200F_202A_202D_202B_206E_200D_206C_206A_202A_202E_206C_200F_200E_206F_206C_206D_206C_206D_206A_200E_206E_202B_202E(requirement.ConfigCommand, '/')) ? (-99509028) : (-99509029)); - break; - case 4: - _200F_206F_200D_206E_202A_206F_206D_206B_202C_202B_200D_206C_206C_200C_202A_206A_206C_206F_200B_202E_200B_202C_200C_206C_206C_206F_206A_200E_206C_200B_200D_206D_206A_206A_206E_202E_202C_202B_206D_202B_202E(_commandManager, requirement.ConfigCommand); - num = -99509028; - break; + } + if (isLoaded) + { + List<PluginDetailInfo>? detailsToCheck = requirement.DetailsToCheck; + if (detailsToCheck != null && detailsToCheck.Any((PluginDetailInfo d) => !d.Predicate()) && requirement.ConfigCommand != null && requirement.ConfigCommand.StartsWith('/') && UiThemeUtils.IconTextButton(FontAwesomeIcon.Cog, "Open configuration")) + { + _commandManager.ProcessCommand(requirement.ConfigCommand); } } } - [MethodImpl(MethodImplOptions.NoInlining)] private bool DrawCombatPlugin(Configuration.ECombatModule combatModule, float checklistPadding) { - _202B_206D_206D_202C_200F_200E_200B_202D_200C_206A_206C_202A_206F_202C_206B_200C_202A_202E_200B_202C_200C_200E_206A_206A_202C_202D_200F_206D_206D_200F_206F_202C_200F_200F_206F_202B_202C_206B_202A_200F_202E(); + ImGui.Spacing(); PluginRequirement pluginRequirement = CombatPlugins[combatModule]; - ImRaii.IdDisposable idDisposable = _206C_200C_200B_200D_202A_202B_202C_200B_202E_202E_206F_202A_202B_200E_202A_200F_206B_206F_206E_200E_206B_206A_206E_202C_202E_206E_200C_200D_202A_200B_206F_202A_200B_202C_200B_202B_206E_202C_206C_202B_202E((ImU8String)_202E_200E_202E_206E_202D_200B_202B_200B_200E_200E_200C_206A_202E_206E_206F_202C_206F_206C_202C_200B_200B_202E_200B_206F_200F_206E_202E_202D_206D_200C_206A_202D_206E_206C_200B_200B_206F_200D_202B_202A_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1338005117), pluginRequirement.GroupName), true); - try + using (ImRaii.PushId("combat_" + pluginRequirement.GroupName)) { bool flag = false; bool num = pluginRequirement.Providers.Count > 1; - if (_206B_206F_200E_200B_202D_202D_206E_206B_202D_200F_206B_206A_206A_206E_202E_200B_206B_206B_206F_200F_200C_206C_200C_200B_202C_202B_206B_200F_206E_200B_206D_200D_202B_200C_200F_206A_200B_206B_202A_200E_202E((ImU8String)pluginRequirement.GroupName, _configuration.General.CombatModule == combatModule)) + if (ImGui.RadioButton(pluginRequirement.GroupName, _configuration.General.CombatModule == combatModule)) { _configuration.General.CombatModule = combatModule; - _206D_206D_206A_200F_202E_200B_202E_206C_206A_206E_206D_202C_202C_206C_202A_206D_202A_202B_206D_200C_200E_206B_202C_202C_200B_206B_202E_206B_206B_206B_202C_202B_200B_206F_200C_200D_206B_200F_202A_202C_202E(_pluginInterface, (IPluginConfiguration)_configuration); + _pluginInterface.SavePluginConfig(_configuration); } - int num2 = (num ? (-1321585178) : (-1321585170)); - PluginProvider provider = default(PluginProvider); - IExposedPlugin exposedPlugin2 = default(IExposedPlugin); - bool isDisabled2 = default(bool); - bool flag3 = default(bool); - bool flag2 = default(bool); - bool isDisabled = default(bool); - while (true) + if (!num) { - int num3 = num2; - int num4 = -1321585177; - int num5 = num3; - int num15; - int num14; - switch ((num5 | num4) - (num5 & num4)) + PluginProvider provider = pluginRequirement.Providers[0]; + IExposedPlugin exposedPlugin = FindProvider(provider); + bool flag2 = exposedPlugin?.IsLoaded ?? false; + bool isDisabled = exposedPlugin != null && !exposedPlugin.IsLoaded; + flag = flag2; + if (exposedPlugin != null) { - default: - continue; - case 7: - num15 = 0; - goto IL_00f2; - case 9: - provider = pluginRequirement.Providers[0]; - exposedPlugin2 = FindProvider(provider); - num2 = ((exposedPlugin2 == null) ? (-1321585184) : (-1321585181)); - continue; - case 5: - num14 = 0; - goto IL_0149; - case 4: - num15 = (_206B_200E_202B_200C_206B_202C_206F_206B_202A_202D_202A_202D_202C_206D_200B_200B_200E_206A_206A_206C_202E_202B_200B_206B_200E_202C_200C_202E_202A_202E_200E_202D_202E_206F_202E_206B_202C_200C_206F_206F_202E(exposedPlugin2) ? 1 : 0); - goto IL_00f2; - case 8: - num2 = -1321585170; - continue; - case 0: - DrawInlineProviderActions(provider, isDisabled2); - break; - case 2: - DrawProviderStatusIcon(flag3, isDisabled2); - if (!flag3) - { - num2 = -1321585177; - continue; - } - break; - case 6: - num14 = ((!_206B_200E_202B_200C_206B_202C_206F_206B_202A_202D_202A_202D_202C_206D_200B_200B_200E_206A_206A_206C_202E_202B_200B_206B_200E_202C_200C_202E_202A_202E_200E_202D_202E_206F_202E_206B_202C_200C_206F_206F_202E(exposedPlugin2)) ? 1 : 0); - goto IL_0149; - case 3: - { - _202B_200B_206A_200C_200D_202E_200B_200C_206A_206E_202B_206D_202B_202D_206B_206F_200B_206E_200E_200C_206E_202C_202D_200D_202C_200C_200F_206C_206B_202C_200D_202B_202B_206B_202D_200E_200C_200D_206E_200C_202E(0f); - _202D_200E_206B_206A_202C_200D_206F_206C_202C_206D_206D_202B_206D_202D_200B_200D_200D_206D_202A_202E_206B_206E_202C_202E_206C_200E_206C_202B_202A_202C_202A_206F_206A_206B_200B_202D_200B_206A_206D_206C_202E(); - ImU8String imU8String2 = new ImU8String(1, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1827973971)); - imU8String2.AppendFormatted(_202C_202B_200C_206B_202C_200C_202D_200D_206B_202E_206D_200C_206D_206B_200F_202C_206B_206A_200E_202B_206C_200B_200F_200E_206C_200C_200F_206A_200F_206B_202C_200E_206C_202D_200E_200E_206C_202B_200B_206E_202E(exposedPlugin2)); - _202A_202D_200F_202E_202D_202C_200F_200C_206C_200E_200E_202E_202E_200D_206F_200D_206C_200E_202C_206A_206E_200E_200B_206D_202B_206B_200B_202B_202B_200B_206E_206C_200E_202E_206E_202C_200B_206A_206C_202C_202E(ref UiThemeUtils.DimTextColor, imU8String2); - num2 = -1321585179; - continue; + ImGui.SameLine(0f); + ImGui.AlignTextToFramePadding(); + ImU8String text = new ImU8String(1, 1); + text.AppendLiteral("v"); + text.AppendFormatted(exposedPlugin.Version); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text); } - case 1: + DrawProviderStatusIcon(flag2, isDisabled); + if (!flag2) + { + DrawInlineProviderActions(provider, isDisabled); + } + } + else + { + using (ImRaii.PushIndent(checklistPadding)) + { + foreach (PluginProvider provider2 in pluginRequirement.Providers) { - ImRaii.IndentDisposable indentDisposable = _200B_200C_200D_200F_202E_200F_206D_206E_200D_202C_200B_206D_202B_200F_200E_206E_202A_200D_200D_200D_200C_200F_206B_200B_200C_202A_202E_206E_206D_200F_202C_200C_206C_200F_200C_206C_206A_206B_206B_206D_202E(checklistPadding, true, true); - try + using (ImRaii.PushId("prov_" + provider2.DisplayName)) { - IEnumerator<PluginProvider> enumerator = pluginRequirement.Providers.GetEnumerator(); - try + IExposedPlugin exposedPlugin2 = FindProvider(provider2); + bool flag3 = exposedPlugin2?.IsLoaded ?? false; + bool isDisabled2 = exposedPlugin2 != null && !exposedPlugin2.IsLoaded; + if (flag3) { - while (_206F_202E_200C_202D_206F_206D_202D_202C_206D_200B_202D_202A_202D_202D_202C_200C_206B_206E_206C_200E_206D_206D_202E_206C_206D_206B_200F_200C_200E_206A_200F_202E_202C_200E_200E_206A_206E_200B_200B_202C_202E((IEnumerator)enumerator)) - { - PluginProvider current = enumerator.Current; - ImRaii.IdDisposable idDisposable2 = _206C_200C_200B_200D_202A_202B_202C_200B_202E_202E_206F_202A_202B_200E_202A_200F_206B_206F_206E_200E_206B_206A_206E_202C_202E_206E_200C_200D_202A_200B_206F_202A_200B_202C_200B_202B_206E_202C_206C_202B_202E((ImU8String)_202E_200E_202E_206E_202D_200B_202B_200B_200E_200E_200C_206A_202E_206E_206F_202C_206F_206C_202C_200B_200B_202E_200B_206F_200F_206E_202E_202D_206D_200C_206A_202D_206E_206C_200B_200B_206F_200D_202B_202A_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(689068784), current.DisplayName), true); - try - { - IExposedPlugin exposedPlugin = FindProvider(current); - num2 = ((exposedPlugin == null) ? (-78011020) : (-78011019)); - while (true) - { - int num6 = num2; - num4 = -78011024; - num5 = num6; - int num8; - int num7; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - _uiUtils.ChecklistItem(current.DisplayName, flag2); - num2 = ((exposedPlugin == null) ? (-78011023) : (-78011021)); - break; - case 1: - num2 = (flag2 ? (-78011022) : (-78011016)); - break; - case 9: - flag = true; - num2 = -78011024; - break; - case 4: - num8 = 0; - goto IL_035b; - case 6: - num7 = ((!_206B_200E_202B_200C_206B_202C_206F_206B_202A_202D_202A_202D_202C_206D_200B_200B_200E_206A_206A_206C_202E_202B_200B_206B_200E_202C_200C_202E_202A_202E_200E_202D_202E_206F_202E_206B_202C_200C_206F_206F_202E(exposedPlugin)) ? 1 : 0); - goto IL_040b; - case 5: - num8 = (_206B_200E_202B_200C_206B_202C_206F_206B_202A_202D_202A_202D_202C_206D_200B_200B_200E_206A_206A_206C_202E_202B_200B_206B_200E_202C_200C_202E_202A_202E_200E_202D_202E_206F_202E_206B_202C_200C_206F_206F_202E(exposedPlugin) ? 1 : 0); - goto IL_035b; - case 3: - { - _206F_202A_202D_202E_202B_200C_202D_206B_202D_206E_200C_200E_200F_206C_206F_202C_200F_200B_202A_206B_206A_202D_206C_200B_200E_206A_202A_202E_202C_200B_206C_206A_202C_202E_202E_202A_200B_206A_206F_200E_202E(); - ImU8String imU8String = new ImU8String(1, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(198217444)); - imU8String.AppendFormatted(_202C_202B_200C_206B_202C_200C_202D_200D_206B_202E_206D_200C_206D_206B_200F_202C_206B_206A_200E_202B_206C_200B_200F_200E_206C_200C_200F_206A_200F_206B_202C_200E_206C_202D_200E_200E_206C_202B_200B_206E_202E(exposedPlugin)); - _202A_202D_200F_202E_202D_202C_200F_200C_206C_200E_200E_202E_202E_200D_206F_200D_206C_200E_202C_206A_206E_200E_200B_206D_202B_206B_200B_202B_202B_200B_206E_206C_200E_202E_206E_202C_200B_206A_206C_202C_202E(ref UiThemeUtils.DimTextColor, imU8String); - num2 = -78011023; - break; - } - case 8: - DrawInlineProviderActions(current, isDisabled); - num2 = -78011022; - break; - case 10: - num7 = 0; - goto IL_040b; - case 7: - num2 = -78011019; - break; - case 2: - goto end_IL_02a3; - IL_040b: - isDisabled = (byte)num7 != 0; - num2 = ((!flag2) ? (-78011024) : (-78011015)); - break; - IL_035b: - flag2 = (byte)num8 != 0; - num2 = ((exposedPlugin == null) ? (-78011014) : (-78011018)); - break; - } - continue; - end_IL_02a3: - break; - } - } - finally - { - num2 = ((idDisposable2 == null) ? (-508580231) : (-508580230)); - while (true) - { - int num9 = num2; - num4 = -508580229; - num5 = num9; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = -508580230; - break; - case 2: - goto end_IL_045c; - case 1: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E((IDisposable)idDisposable2); - num2 = -508580231; - break; - } - continue; - end_IL_045c: - break; - } - } - } + flag = true; } - finally + _uiUtils.ChecklistItem(provider2.DisplayName, flag3); + if (exposedPlugin2 != null) { - num2 = ((enumerator == null) ? 1494926685 : 1494926686); - while (true) - { - int num10 = num2; - num4 = 1494926687; - num5 = num10; - int num11 = num5 + num4; - int num12 = num5 & num4; - switch (num11 - (num12 + num12)) - { - case 0: - num2 = 1494926686; - break; - case 2: - goto end_IL_04d8; - case 1: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E((IDisposable)enumerator); - num2 = 1494926685; - break; - } - continue; - end_IL_04d8: - break; - } + ImGui.SameLine(); + ImU8String text2 = new ImU8String(1, 1); + text2.AppendLiteral("v"); + text2.AppendFormatted(exposedPlugin2.Version); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text2); + } + if (!flag3) + { + DrawInlineProviderActions(provider2, isDisabled2); } } - finally - { - num2 = ((indentDisposable == null) ? 875852940 : 875852943); - while (true) - { - int num13 = num2; - num4 = 875852942; - num5 = num13; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = 875852943; - break; - case 2: - goto end_IL_0545; - case 1: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E((IDisposable)indentDisposable); - num2 = 875852940; - break; - } - continue; - end_IL_0545: - break; - } - } - break; } - IL_0149: - isDisabled2 = (byte)num14 != 0; - flag = flag3; - num2 = ((exposedPlugin2 == null) ? (-1321585179) : (-1321585180)); - continue; - IL_00f2: - flag3 = (byte)num15 != 0; - num2 = ((exposedPlugin2 == null) ? (-1321585182) : (-1321585183)); - continue; } - break; - } - num2 = (flag ? 80486539 : 80486536); - int result; - while (true) - { - int num16 = num2; - int num4 = 80486537; - int num5 = num16; - int num17 = num5 + num4; - int num18 = num5 & num4; - switch (num17 - (num18 + num18)) - { - default: - continue; - case 0: - goto IL_05dd; - case 1: - result = ((_configuration.General.CombatModule != combatModule) ? 1 : 0); - break; - case 2: - result = 1; - break; - } - break; - IL_05dd: - num2 = 80486536; - } - return (byte)result != 0; - } - finally - { - int num2 = ((idDisposable == null) ? 412497532 : 412497533); - while (true) - { - int num19 = num2; - int num4 = 412497532; - int num5 = num19; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - num2 = 412497533; - break; - case 1: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E((IDisposable)idDisposable); - num2 = 412497532; - break; - case 0: - goto end_IL_0636; - } - continue; - end_IL_0636: - break; } + return flag || _configuration.General.CombatModule != combatModule; } } private void DrawProviderStatusIcon(bool isLoaded, bool isDisabled) { - _202B_200B_206A_200C_200D_202E_200B_200C_206A_206E_202B_206D_202B_202D_206B_206F_200B_206E_200E_200C_206E_202C_202D_200D_202C_200C_200F_206C_206B_202C_200D_202B_202B_206B_202D_200E_200C_200D_206E_200C_202E(0f); - IDisposable disposable = _202B_200F_200B_200E_206F_200D_202D_206C_202A_202D_202E_202D_206D_206E_206A_200D_200C_200F_206A_200D_200C_202A_206A_202A_202E_200C_206F_200B_206A_200D_202B_202C_202E_202A_206C_202A_202C_202C_202C_206E_202E(_202D_202D_202E_200B_200C_200B_206D_202C_200D_206C_206A_202B_200E_206F_206B_200C_206A_206A_206D_202E_202D_200E_202A_200D_200E_202D_202E_206F_202B_200E_202E_200E_206A_202A_206D_206E_206A_206D_206E_202E_202E(_202C_202B_200D_202D_202B_202B_206F_200C_202C_200F_200F_200B_206A_206F_206F_202C_206C_202E_206C_206B_200E_200F_206C_200D_206B_206D_200D_202A_200D_206E_202D_206B_202E_206E_202B_200E_206C_200D_200C_206C_202E(_pluginInterface))); - try + ImGui.SameLine(0f); + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) { - int num = ((!isLoaded) ? 401911537 : 401911543); - Vector4 vector = default(Vector4); - FontAwesomeIcon fontAwesomeIcon = default(FontAwesomeIcon); - while (true) + Vector4 col; + FontAwesomeIcon icon; + if (isLoaded) { - int num2 = num; - int num3 = 401911539; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 401911543; - break; - case 3: - vector = UiThemeUtils.StatusLocked; - fontAwesomeIcon = FontAwesomeIcon.Times; - num = 401911542; - break; - case 4: - vector = UiThemeUtils.StatusComplete; - fontAwesomeIcon = FontAwesomeIcon.Check; - num = 401911542; - break; - case 1: - vector = UiThemeUtils.StatusActive; - fontAwesomeIcon = FontAwesomeIcon.ExclamationTriangle; - num = 401911542; - break; - case 2: - num = ((!isDisabled) ? 401911536 : 401911538); - break; - case 5: - _202D_200E_206B_206A_202C_200D_206F_206C_202C_206D_206D_202B_206D_202D_200B_200D_200D_206D_202A_202E_206B_206E_202C_202E_206C_200E_206C_202B_202A_202C_202A_206F_206A_206B_200B_202D_200B_206A_206D_206C_202E(); - _202A_202D_200F_202E_202D_202C_200F_200C_206C_200E_200E_202E_202E_200D_206F_200D_206C_200E_202C_206A_206E_200E_200B_206D_202B_206B_200B_202B_202B_200B_206E_206C_200E_202E_206E_202C_200B_206A_206C_202C_202E(ref vector, (ImU8String)_206A_202B_202C_200D_206D_206B_200F_206C_206E_200C_200E_200F_206E_206D_200D_202C_202C_206F_206C_200C_206C_202B_202A_206F_200D_206B_202A_200C_206B_200E_200C_200E_200B_202A_206F_206A_206B_202E_200D_206A_202E(fontAwesomeIcon)); - return; - } + col = UiThemeUtils.StatusComplete; + icon = FontAwesomeIcon.Check; } - } - finally - { - int num = ((disposable == null) ? (-1351279691) : (-1351279690)); - while (true) + else if (isDisabled) { - int num7 = num; - int num3 = -1351279692; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 1: - goto end_IL_0119; - case 2: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E(disposable); - num = -1351279691; - break; - case 0: - num = -1351279690; - break; - } - continue; - end_IL_0119: - break; + col = UiThemeUtils.StatusActive; + icon = FontAwesomeIcon.ExclamationTriangle; } + else + { + col = UiThemeUtils.StatusLocked; + icon = FontAwesomeIcon.Times; + } + ImGui.AlignTextToFramePadding(); + ImGui.TextColored(in col, icon.ToIconString()); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawInlineProviderActions(PluginProvider provider, bool isDisabled) { - int num = ((!isDisabled) ? (-398916645) : (-398916646)); - while (true) + if (isDisabled) { - int num2 = num; - int num3 = -398916642; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + ImGui.SameLine(); + ImGui.TextColored(in UiThemeUtils.StatusActive, "Installed but disabled"); + ImGui.SameLine(); + DrawEnableButton(provider); + DrawInstallError(provider); + return; + } + ImGui.SameLine(); + DrawInstallButton(provider); + ImGui.SameLine(); + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Globe, "Website")) + { + Util.OpenLink(provider.WebsiteUri.ToString()); + } + if (provider.DalamudRepositoryUri != null) + { + ImGui.SameLine(); + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Code, "Repo")) { - case 0: - num = -398916646; - break; - case 1: - _200F_206E_200B_202A_206F_202B_200B_206D_202D_206E_200D_206D_200C_202D_200F_202E_200D_202B_206F_206C_202B_206C_206C_200D_206A_200C_206C_202A_206B_202C_202E_206C_206B_200D_202C_206B_200D_206A_206E_206B_202E(_202B_206A_202D_206E_206B_200B_206C_206D_202C_202A_202A_200D_200B_200C_202C_200C_206E_206A_206E_200F_200C_206F_200B_206F_206C_202B_202C_206A_206F_206F_200F_206B_206C_200F_206C_200C_206A_200E_200B_206F_202E((object)provider.WebsiteUri)); - num = -398916643; - break; - case 3: - num = ((!_206A_206F_206D_206A_200D_202A_202A_206E_200F_200C_200C_200F_206A_202D_200F_206F_206E_202A_200C_206C_200E_200C_202B_200F_206C_202C_202E_206C_200C_206B_206B_206D_206E_206A_200C_206B_206E_200B_206A_202A_202E(provider.DalamudRepositoryUri, (Uri)null)) ? (-398916648) : (-398916647)); - break; - case 6: - DrawInstallError(provider); - return; - case 2: - _200F_206E_200B_202A_206F_202B_200B_206D_202D_206E_200D_206D_200C_202D_200F_202E_200D_202B_206F_206C_202B_206C_206C_200D_206A_200C_206C_202A_206B_202C_202E_206C_206B_200D_202C_206B_200D_206A_206E_206B_202E(_202B_206A_202D_206E_206B_200B_206C_206D_202C_202A_202A_200D_200B_200C_202C_200C_206E_206A_206E_200F_200C_206F_200B_206F_206C_202B_202C_206A_206F_206F_200F_206B_206C_200F_206C_200C_206A_200E_200B_206F_202E((object)provider.DalamudRepositoryUri)); - num = -398916648; - break; - case 4: - _206F_202A_202D_202E_202B_200C_202D_206B_202D_206E_200C_200E_200F_206C_206F_202C_200F_200B_202A_206B_206A_202D_206C_200B_200E_206A_202A_202E_202C_200B_206C_206A_202C_202E_202E_202A_200B_206A_206F_200E_202E(); - _202A_202D_200F_202E_202D_202C_200F_200C_206C_200E_200E_202E_202E_200D_206F_200D_206C_200E_202C_206A_206E_200E_200B_206D_202B_206B_200B_202B_202B_200B_206E_206C_200E_202E_206E_202C_200B_206A_206C_202C_202E(ref UiThemeUtils.StatusActive, (ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-443944027)); - _206F_202A_202D_202E_202B_200C_202D_206B_202D_206E_200C_200E_200F_206C_206F_202C_200F_200B_202A_206B_206A_202D_206C_200B_200E_206A_202A_202E_202C_200B_206C_206A_202C_202E_202E_202A_200B_206A_206F_200E_202E(); - DrawEnableButton(provider); - DrawInstallError(provider); - return; - case 5: - _206F_202A_202D_202E_202B_200C_202D_206B_202D_206E_200C_200E_200F_206C_206F_202C_200F_200B_202A_206B_206A_202D_206C_200B_200E_206A_202A_202E_202C_200B_206C_206A_202C_202E_202E_202A_200B_206A_206F_200E_202E(); - DrawInstallButton(provider); - _206F_202A_202D_202E_202B_200C_202D_206B_202D_206E_200C_200E_200F_206C_206F_202C_200F_200B_202A_206B_206A_202D_206C_200B_200E_206A_202A_202E_202C_200B_206C_206A_202C_202E_202E_202A_200B_206A_206F_200E_202E(); - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Globe, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(256224394))) ? (-398916643) : (-398916641)); - break; - case 7: - _206F_202A_202D_202E_202B_200C_202D_206B_202D_206E_200C_200E_200F_206C_206F_202C_200F_200B_202A_206B_206A_202D_206C_200B_200E_206A_202A_202E_202C_200B_206C_206A_202C_202E_202E_202A_200B_206A_206F_200E_202E(); - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Code, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1538203157))) ? (-398916648) : (-398916644)); - break; + Util.OpenLink(provider.DalamudRepositoryUri.ToString()); } } + DrawInstallError(provider); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawInstallButton(PluginProvider provider) { - Uri? dalamudRepositoryUri = provider.DalamudRepositoryUri; - string text = (((object)dalamudRepositoryUri != null) ? _202B_206A_202D_206E_206B_200B_206C_206D_202C_202A_202A_200D_200B_200C_202C_200C_206E_206A_206E_200F_200C_206F_200B_206F_206C_202B_202C_206A_206F_206F_200F_206B_206C_200F_206C_200C_206A_200E_200B_206F_202E((object)dalamudRepositoryUri) : null); - PluginInstallStatus pluginInstallStatus = _206A_206A_202C_202C_206F_202E_206A_200F_200C_202B_206B_202D_200C_206F_206C_206A_200E_206A_206B_202A_202A_202E_200B_200E_206C_206C_200B_206F_200E_202C_202C_202B_206E_206B_200D_206F_200F_202E_202D_206C_202E(_206A_202A_206B_200F_206A_202D_202D_206A_200E_206B_206C_206A_202A_202B_206B_200B_202D_200B_200C_206F_206F_206C_206F_206E_200E_202C_202E_200E_206D_206E_200F_200D_202B_206E_202A_202C_206E_206B_200E_200C_202E(_installer, provider.InternalName, text)); - int num = ((pluginInstallStatus == PluginInstallStatus.InProgress) ? (-1622657706) : (-1622657711)); - string text2 = default(string); - bool flag = default(bool); - while (true) + string thirdPartyRepoUrl = provider.DalamudRepositoryUri?.ToString(); + string text; + bool flag; + switch (_installer.GetState(provider.InternalName, thirdPartyRepoUrl).Status) { - int num2 = num; - int num3 = -1622657707; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + case PluginInstallStatus.InProgress: + text = "Installing…"; + flag = false; + break; + case PluginInstallStatus.Failed: + text = "Retry Install"; + flag = !_installer.IsAnyInstallInProgress; + break; + default: + text = "Install"; + flag = !_installer.IsAnyInstallInProgress; + break; + } + using (ImRaii.Disabled(!flag)) + { + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Download, text)) { - case 2: - text2 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1562604466); - flag = !_202C_200F_202A_206D_206D_200B_202A_202D_200F_206C_200F_206D_200D_202D_202D_202E_200C_202B_200F_206E_206F_200B_202B_200D_200D_206D_200C_200D_200F_206E_202A_202D_200B_202D_206D_202A_200B_202B_200C_202D_202E(_installer); - num = -1622657712; - break; - case 1: - text2 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1827312863); - flag = !_202C_200F_202A_206D_206D_200B_202A_202D_200F_206C_200F_206D_200D_202D_202D_202E_200C_202B_200F_206E_206F_200B_202B_200D_200D_206D_200C_200D_200F_206E_202A_202D_200B_202D_206D_202A_200B_202B_200C_202D_202E(_installer); - num = -1622657712; - break; - case 3: - text2 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(676010430); - flag = false; - num = -1622657712; - break; - case 0: - num = -1622657711; - break; - case 4: - num = ((pluginInstallStatus == PluginInstallStatus.Failed) ? (-1622657708) : (-1622657709)); - break; - case 6: - num = -1622657705; - break; - case 5: - { - ImRaii.DisabledDisposable disabledDisposable = _206C_202C_206D_206B_202B_206A_202D_202D_202B_206B_202C_202E_206C_206D_202A_206B_206E_202C_200E_202C_202D_200E_206B_202D_202E_206F_202C_206D_206E_206B_200C_202A_202A_206E_202A_200F_200F_200E_206A_200E_202E(!flag); - try - { - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Download, text2)) ? (-1581628262) : (-1581628263)); - while (true) - { - int num5 = num; - num3 = -1581628264; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1581628263; - break; - case 1: - _200C_206A_206D_202E_206D_202E_200B_206E_200F_200F_202B_202C_206B_202E_206C_202B_200B_202C_206A_200E_200E_200C_206A_202D_202E_206E_202A_202E_202E_206B_206D_202C_202E_200E_206F_206C_200F_202B_202D_206B_202E(_installer, provider.InternalName, text, provider.AliasUrls); - num = -1581628262; - break; - case 2: - return; - } - } - } - finally - { - num = ((disabledDisposable == null) ? (-1254752141) : (-1254752144)); - while (true) - { - int num6 = num; - num3 = -1254752142; - num4 = num6; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1254752144; - break; - case 1: - goto end_IL_01dc; - case 2: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E((IDisposable)disabledDisposable); - num = -1254752141; - break; - } - continue; - end_IL_01dc: - break; - } - } - } + _installer.TryInstall(provider.InternalName, thirdPartyRepoUrl, provider.AliasUrls); } } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawEnableButton(PluginProvider provider) { - Uri? dalamudRepositoryUri = provider.DalamudRepositoryUri; - string text = (((object)dalamudRepositoryUri != null) ? _202B_206A_202D_206E_206B_200B_206C_206D_202C_202A_202A_200D_200B_200C_202C_200C_206E_206A_206E_200F_200C_206F_200B_206F_206C_202B_202C_206A_206F_206F_200F_206B_206C_200F_206C_200C_206A_200E_200B_206F_202E((object)dalamudRepositoryUri) : null); - PluginInstallStatus pluginInstallStatus = _206A_206A_202C_202C_206F_202E_206A_200F_200C_202B_206B_202D_200C_206F_206C_206A_200E_206A_206B_202A_202A_202E_200B_200E_206C_206C_200B_206F_200E_202C_202C_202B_206E_206B_200D_206F_200F_202E_202D_206C_202E(_206A_202A_206B_200F_206A_202D_202D_206A_200E_206B_206C_206A_202A_202B_206B_200B_202D_200B_200C_206F_206F_206C_206F_206E_200E_202C_202E_200E_206D_206E_200F_200D_202B_206E_202A_202C_206E_206B_200E_200C_202E(_installer, provider.InternalName, text)); - int num = ((pluginInstallStatus == PluginInstallStatus.InProgress) ? 931338616 : 931338618); - string text2 = default(string); - bool flag = default(bool); - while (true) + string thirdPartyRepoUrl = provider.DalamudRepositoryUri?.ToString(); + string text; + bool flag; + switch (_installer.GetState(provider.InternalName, thirdPartyRepoUrl).Status) { - int num2 = num; - int num3 = 931338622; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + case PluginInstallStatus.InProgress: + text = "Enabling…"; + flag = false; + break; + case PluginInstallStatus.Failed: + text = "Retry Enable"; + flag = !_installer.IsAnyInstallInProgress; + break; + default: + text = "Enable"; + flag = !_installer.IsAnyInstallInProgress; + break; + } + using (ImRaii.Disabled(!flag)) + { + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.ToggleOn, text)) { - case 5: - text2 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1378809147); - flag = !_202C_200F_202A_206D_206D_200B_202A_202D_200F_206C_200F_206D_200D_202D_202D_202E_200C_202B_200F_206E_206F_200B_202B_200D_200D_206D_200C_200D_200F_206E_202A_202D_200B_202D_206D_202A_200B_202B_200C_202D_202E(_installer); - num = 931338620; - break; - case 6: - text2 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-681385853); - flag = false; - num = 931338620; - break; - case 3: - text2 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1002098078); - flag = !_202C_200F_202A_206D_206D_200B_202A_202D_200F_206C_200F_206D_200D_202D_202D_202E_200C_202B_200F_206E_206F_200B_202B_200D_200D_206D_200C_200D_200F_206E_202A_202D_200B_202D_206D_202A_200B_202B_200C_202D_202E(_installer); - num = 931338620; - break; - case 4: - num = ((pluginInstallStatus == PluginInstallStatus.Failed) ? 931338621 : 931338623); - break; - case 0: - num = 931338618; - break; - case 1: - num = 931338619; - break; - case 2: - { - ImRaii.DisabledDisposable disabledDisposable = _206C_202C_206D_206B_202B_206A_202D_202D_202B_206B_202C_202E_206C_206D_202A_206B_206E_202C_200E_202C_202D_200E_206B_202D_202E_206F_202C_206D_206E_206B_200C_202A_202A_206E_202A_200F_200F_200E_206A_200E_202E(!flag); - try - { - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.ToggleOn, text2)) ? (-2109627536) : (-2109627533)); - while (true) - { - int num5 = num; - num3 = -2109627535; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 0: - num = -2109627533; - break; - case 2: - _206F_202E_206A_200F_200F_200F_200C_202A_206E_200E_200D_200B_206E_200D_202A_200C_200B_200D_200E_202B_200B_202A_200E_200D_206C_202C_202C_202D_206F_202E_200C_202B_202D_206D_206B_202B_206D_206A_202E_202C_202E(_installer, provider.InternalName, text, provider.AliasUrls); - num = -2109627536; - break; - case 1: - return; - } - } - } - finally - { - num = ((disabledDisposable == null) ? 1605622938 : 1605622937); - while (true) - { - int num8 = num; - num3 = 1605622936; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 2: - goto end_IL_01de; - case 1: - _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E((IDisposable)disabledDisposable); - num = 1605622938; - break; - case 0: - num = 1605622937; - break; - } - continue; - end_IL_01de: - break; - } - } - } + _installer.TryEnable(provider.InternalName, thirdPartyRepoUrl, provider.AliasUrls); } } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawInstallError(PluginProvider provider) { - Uri? dalamudRepositoryUri = provider.DalamudRepositoryUri; - string text = (((object)dalamudRepositoryUri != null) ? _202B_206A_202D_206E_206B_200B_206C_206D_202C_202A_202A_200D_200B_200C_202C_200C_206E_206A_206E_200F_200C_206F_200B_206F_206C_202B_202C_206A_206F_206F_200F_206B_206C_200F_206C_200C_206A_200E_200B_206F_202E((object)dalamudRepositoryUri) : null); - PluginInstallState pluginInstallState = _206A_202A_206B_200F_206A_202D_202D_206A_200E_206B_206C_206A_202A_202B_206B_200B_202D_200B_200C_206F_206F_206C_206F_206E_200E_202C_202E_200E_206D_206E_200F_200D_202B_206E_202A_202C_206E_206B_200E_200C_202E(_installer, provider.InternalName, text); - int num = ((_206A_206A_202C_202C_206F_202E_206A_200F_200C_202B_206B_202D_200C_206F_206C_206A_200E_206A_206B_202A_202A_202E_200B_200E_206C_206C_200B_206F_200E_202C_202C_202B_206E_206B_200D_206F_200F_202E_202D_206C_202E(pluginInstallState) != PluginInstallStatus.Failed) ? 1117282439 : 1117282436); - while (true) + string thirdPartyRepoUrl = provider.DalamudRepositoryUri?.ToString(); + PluginInstallState state = _installer.GetState(provider.InternalName, thirdPartyRepoUrl); + if (state.Status == PluginInstallStatus.Failed && !string.IsNullOrEmpty(state.ErrorMessage)) { - int num2 = num; - int num3 = 1117282439; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1117282436; - break; - case 3: - num = ((!_202A_206C_206D_202D_206B_202E_206E_200D_206E_202B_200F_200C_202D_202C_202B_202A_200E_206F_206D_200B_206B_202D_202A_206E_200E_202B_200F_202B_206C_202E_200B_202C_206F_206C_200D_200E_206B_200B_200E_200D_202E(_200E_200C_202D_202C_206A_202C_200F_206B_200F_200B_202E_200C_202C_206A_200F_206E_202B_200C_200C_200D_202C_202E_206E_200D_202B_206C_206A_206B_206E_206F_200F_200C_200E_202E_202D_206F_202D_206D_200E_206C_202E(pluginInstallState))) ? 1117282438 : 1117282439); - break; - case 1: - { - _200F_202E_200C_202C_200B_206A_206F_200C_206D_202B_202D_206E_206A_200E_206B_206B_206C_206A_202C_202A_202D_206E_206E_202D_200F_206D_202A_200B_200F_206B_206B_200F_202D_206D_200C_206B_206B_200E_200C_206E_202E(0f); - ImU8String imU8String = new ImU8String(8, 1); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1468647696)); - imU8String.AppendFormatted(_200E_200C_202D_202C_206A_202C_200F_206B_200F_200B_202E_200C_202C_206A_200F_206E_202B_200C_200C_200D_202C_202E_206E_200D_202B_206C_206A_206B_206E_206F_200F_200C_200E_202E_202D_206F_202D_206D_200E_206C_202E(pluginInstallState)); - _202A_202D_200F_202E_202D_202C_200F_200C_206C_200E_200E_202E_202E_200D_206F_200D_206C_200E_202C_206A_206E_200E_200B_206D_202B_206B_200B_202B_202B_200B_206E_206C_200E_202E_206E_202C_200B_206A_206C_202C_202E(ref UiThemeUtils.StatusLocked, imU8String); - _200B_202B_202B_206F_202D_202D_206D_200F_206A_206E_202E_206E_202C_202C_202C_206F_206A_200B_202A_202B_206E_206E_200D_200C_200C_202A_206B_206D_200B_206A_200C_200E_200D_200E_200F_206E_206D_202A_202D_202A_202E(); - return; - } - case 0: - return; - } + ImGui.PushTextWrapPos(0f); + ImU8String text = new ImU8String(8, 1); + text.AppendLiteral("Failed: "); + text.AppendFormatted(state.ErrorMessage); + ImGui.TextColored(in UiThemeUtils.StatusLocked, text); + ImGui.PopTextWrapPos(); } } - - static Uri _206B_202C_206D_202B_206A_206A_206E_202E_202C_200C_200D_202C_200C_202C_202B_206E_206E_200E_202C_206B_202B_202E_200E_200C_202E_200D_206E_206B_206C_206D_206D_202E_200E_202A_200F_206B_202E_200C_202B_202E(string P_0) - { - return new Uri(P_0); - } - - static bool _200F_206F_200D_206E_202A_206F_206D_206B_202C_202B_200D_206C_206C_200C_202A_206A_206C_206F_200B_202E_200B_202C_200C_206C_206C_206F_206A_200E_206C_200B_200D_206D_206A_206A_206E_202E_202C_202B_206D_202B_202E(ICommandManager P_0, string P_1) - { - return P_0.ProcessCommand(P_1); - } - - static void _202B_206D_206D_202C_200F_200E_200B_202D_200C_206A_206C_202A_206F_202C_206B_200C_202A_202E_200B_202C_200C_200E_206A_206A_202C_202D_200F_206D_206D_200F_206F_202C_200F_200F_206F_202B_202C_206B_202A_200F_202E() - { - ImGui.Spacing(); - } - - static IUiBuilder _202C_202B_200D_202D_202B_202B_206F_200C_202C_200F_200F_200B_206A_206F_206F_202C_206C_202E_206C_206B_200E_200F_206C_200D_206B_206D_200D_202A_200D_206E_202D_206B_202E_206E_202B_200E_206C_200D_200C_206C_202E(IDalamudPluginInterface P_0) - { - return P_0.UiBuilder; - } - - static IFontHandle _202D_202D_202E_200B_200C_200B_206D_202C_200D_206C_206A_202B_200E_206F_206B_200C_206A_206A_206D_202E_202D_200E_202A_200D_200E_202D_202E_206F_202B_200E_202E_200E_206A_202A_206D_206E_206A_206D_206E_202E_202E(IUiBuilder P_0) - { - return P_0.IconFontFixedWidthHandle; - } - - static IDisposable _202B_200F_200B_200E_206F_200D_202D_206C_202A_202D_202E_202D_206D_206E_206A_200D_200C_200F_206A_200D_200C_202A_206A_202A_202E_200C_206F_200B_206A_200D_202B_202C_202E_202A_206C_202A_202C_202C_202C_206E_202E(IFontHandle P_0) - { - return P_0.Push(); - } - - static string _206A_202B_202C_200D_206D_206B_200F_206C_206E_200C_200E_200F_206E_206D_200D_202C_202C_206F_206C_200C_206C_202B_202A_206F_200D_206B_202A_200C_206B_200E_200C_200E_200B_202A_206F_206A_206B_202E_200D_206A_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static Vector2 _200D_206F_206D_206A_202E_200E_202E_202C_200F_202C_206E_206C_202C_202B_200E_202C_200B_202B_206D_202B_202A_206A_206D_200B_202B_206F_206D_206C_200D_202C_200B_202C_206C_206C_202B_200B_202C_202C_202C_200F_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static ImGuiStylePtr _206A_206C_200E_200D_202D_202E_202C_200B_206E_200B_200B_206F_200D_202E_200B_200E_200C_202E_206D_200D_200C_206C_200C_202C_200E_200D_206F_202D_202E_206A_206B_206E_206F_200B_202A_200C_202B_202C_200F_206B_202E() - { - return ImGui.GetStyle(); - } - - static void _206E_206E_202C_202B_202D_202C_202D_200D_200E_202A_202D_206F_200F_200E_206A_200F_200F_206A_206C_206D_202C_200E_206C_200F_202A_200C_202D_206B_200C_202D_202B_202C_202C_200D_200C_202C_202C_206E_206C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool _206F_202E_200C_202D_206F_206D_202D_202C_206D_200B_202D_202A_202D_202D_202C_200C_206B_206E_206C_200E_206D_206D_202E_206C_206D_206B_200F_200C_200E_206A_200F_202E_202C_200E_200E_206A_206E_200B_200B_202C_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static ImRaii.DisabledDisposable _206C_202C_206D_206B_202B_206A_202D_202D_202B_206B_202C_202E_206C_206D_202A_206B_206E_202C_200E_202C_202D_200E_206B_202D_202E_206F_202C_206D_206E_206B_200C_202A_202A_206E_202A_200F_200F_200E_206A_200E_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static bool _206B_206F_200E_200B_202D_202D_206E_206B_202D_200F_206B_206A_206A_206E_202E_200B_206B_206B_206F_200F_200C_206C_200C_200B_202C_202B_206B_200F_206E_200B_206D_200D_202B_200C_200F_206A_200B_206B_202A_200E_202E(ImU8String P_0, bool P_1) - { - return ImGui.RadioButton(P_0, P_1); - } - - static void _206D_206D_206A_200F_202E_200B_202E_206C_206A_206E_206D_202C_202C_206C_202A_206D_202A_202B_206D_200C_200E_206B_202C_202C_200B_206B_202E_206B_206B_206B_202C_202B_200B_206F_200C_200D_206B_200F_202A_202C_202E(IDalamudPluginInterface P_0, IPluginConfiguration P_1) - { - P_0.SavePluginConfig(P_1); - } - - static IEnumerable<IExposedPlugin> _200B_200F_202C_200B_206D_206F_202A_202E_202E_202A_202A_202C_200C_206F_202B_200F_206E_206B_200B_200D_200F_200D_206D_206E_202C_202E_206F_200F_200D_206E_206C_202C_206A_202D_206F_206D_200E_206F_206D_202A_202E(IDalamudPluginInterface P_0) - { - return P_0.InstalledPlugins; - } - - static string _200D_202D_200E_202E_202E_206F_206C_206B_202C_200D_202E_202E_202A_202A_200B_200C_200B_206A_206E_200F_206D_200D_200D_200C_200E_206D_202E_206C_200F_202E_206D_200F_202E_200E_206E_202B_206C_206A_206B_206E_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); - } - - static string _202E_200E_202E_206E_202D_200B_202B_200B_200E_200E_200C_206A_202E_206E_206F_202C_206F_206C_202C_200B_200B_202E_200B_206F_200F_206E_202E_202D_206D_200C_206A_202D_206E_206C_200B_200B_206F_200D_202B_202A_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static ImRaii.IdDisposable _206C_200C_200B_200D_202A_202B_202C_200B_202E_202E_206F_202A_202B_200E_202A_200F_206B_206F_206E_200E_206B_206A_206E_202C_202E_206E_200C_200D_202A_200B_206F_202A_200B_202C_200B_202B_206E_202C_206C_202B_202E(ImU8String P_0, bool P_1) - { - return ImRaii.PushId(P_0, P_1); - } - - static void _202D_202A_206D_206B_200B_200F_200E_200B_200B_206B_200F_202A_200F_206D_200C_200F_206C_200E_202D_202D_200D_206E_202A_206C_200C_202E_200B_206C_206F_206E_202E_202E_206E_206D_206E_200B_206E_200F_206F_200E_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static ImRaii.IndentDisposable _200B_200C_200D_200F_202E_200F_206D_206E_200D_202C_200B_206D_202B_200F_200E_206E_202A_200D_200D_200D_200C_200F_206B_200B_200C_202A_202E_206E_206D_200F_202C_200C_206C_200F_200C_206C_206A_206B_206B_206D_202E(float P_0, bool P_1, bool P_2) - { - return ImRaii.PushIndent(P_0, P_1, P_2); - } - - static bool _202A_206C_206D_202D_206B_202E_206E_200D_206E_202B_200F_200C_202D_202C_202B_202A_200E_206F_206D_200B_206B_202D_202A_206E_200E_202B_200F_202B_206C_202E_200B_202C_206F_206C_200D_200E_206B_200B_200E_200D_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static void _200F_202E_200C_202C_200B_206A_206F_200C_206D_202B_202D_206E_206A_200E_206B_206B_206C_206A_202C_202A_202D_206E_206E_202D_200F_206D_202A_200B_200F_206B_206B_200F_202D_206D_200C_206B_206B_200E_200C_206E_202E(float P_0) - { - ImGui.PushTextWrapPos(P_0); - } - - static void _202A_202D_200F_202E_202D_202C_200F_200C_206C_200E_200E_202E_202E_200D_206F_200D_206C_200E_202C_206A_206E_200E_200B_206D_202B_206B_200B_202B_202B_200B_206E_206C_200E_202E_206E_202C_200B_206A_206C_202C_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static void _200B_202B_202B_206F_202D_202D_206D_200F_206A_206E_202E_206E_202C_202C_202C_206F_206A_200B_202A_202B_206E_206E_200D_200C_200C_202A_206B_206D_200B_206A_200C_200E_200D_200E_200F_206E_206D_202A_202D_202A_202E() - { - ImGui.PopTextWrapPos(); - } - - static bool _206B_200E_202B_200C_206B_202C_206F_206B_202A_202D_202A_202D_202C_206D_200B_200B_200E_206A_206A_206C_202E_202B_200B_206B_200E_202C_200C_202E_202A_202E_200E_202D_202E_206F_202E_206B_202C_200C_206F_206F_202E(IExposedPlugin P_0) - { - return P_0.IsLoaded; - } - - static void _206F_202A_202D_202E_202B_200C_202D_206B_202D_206E_200C_200E_200F_206C_206F_202C_200F_200B_202A_206B_206A_202D_206C_200B_200E_206A_202A_202E_202C_200B_206C_206A_202C_202E_202E_202A_200B_206A_206F_200E_202E() - { - ImGui.SameLine(); - } - - static Version _202C_202B_200C_206B_202C_200C_202D_200D_206B_202E_206D_200C_206D_206B_200F_202C_206B_206A_200E_202B_206C_200B_200F_200E_206C_200C_200F_206A_200F_206B_202C_200E_206C_202D_200E_200E_206C_202B_200B_206E_202E(IExposedPlugin P_0) - { - return P_0.Version; - } - - static void _202B_200B_206A_200C_200D_202E_200B_200C_206A_206E_202B_206D_202B_202D_206B_206F_200B_206E_200E_200C_206E_202C_202D_200D_202C_200C_200F_206C_206B_202C_200D_202B_202B_206B_202D_200E_200C_200D_206E_200C_202E(float P_0) - { - ImGui.SameLine(P_0); - } - - static void _202D_200E_206B_206A_202C_200D_206F_206C_202C_206D_206D_202B_206D_202D_200B_200D_200D_206D_202A_202E_206B_206E_202C_202E_206C_200E_206C_202B_202A_202C_202A_206F_206A_206B_200B_202D_200B_206A_206D_206C_202E() - { - ImGui.AlignTextToFramePadding(); - } - - static bool _206A_206F_206D_206A_200D_202A_202A_206E_200F_200C_200C_200F_206A_202D_200F_206F_206E_202A_200C_206C_200E_200C_202B_200F_206C_202C_202E_206C_200C_206B_206B_206D_206E_206A_200C_206B_206E_200B_206A_202A_202E(Uri P_0, Uri P_1) - { - return P_0 != P_1; - } - - static string _202B_206A_202D_206E_206B_200B_206C_206D_202C_202A_202A_200D_200B_200C_202C_200C_206E_206A_206E_200F_200C_206F_200B_206F_206C_202B_202C_206A_206F_206F_200F_206B_206C_200F_206C_200C_206A_200E_200B_206F_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200F_206E_200B_202A_206F_202B_200B_206D_202D_206E_200D_206D_200C_202D_200F_202E_200D_202B_206F_206C_202B_206C_206C_200D_206A_200C_206C_202A_206B_202C_202E_206C_206B_200D_202C_206B_200D_206A_206E_206B_202E(string P_0) - { - Util.OpenLink(P_0); - } - - static bool _200B_200F_200D_202A_202D_200D_202A_206C_200D_200B_206E_200C_206B_206A_200E_206E_202D_200E_200F_202A_202D_202B_206E_200D_206C_206A_202A_202E_206C_200F_200E_206F_206C_206D_206C_206D_206A_200E_206E_202B_202E(string P_0, char P_1) - { - return P_0.StartsWith(P_1); - } - - static PluginInstallState _206A_202A_206B_200F_206A_202D_202D_206A_200E_206B_206C_206A_202A_202B_206B_200B_202D_200B_200C_206F_206F_206C_206F_206E_200E_202C_202E_200E_206D_206E_200F_200D_202B_206E_202A_202C_206E_206B_200E_200C_202E(PluginInstaller P_0, string P_1, string P_2) - { - return P_0.GetState(P_1, P_2); - } - - static PluginInstallStatus _206A_206A_202C_202C_206F_202E_206A_200F_200C_202B_206B_202D_200C_206F_206C_206A_200E_206A_206B_202A_202A_202E_200B_200E_206C_206C_200B_206F_200E_202C_202C_202B_206E_206B_200D_206F_200F_202E_202D_206C_202E(PluginInstallState P_0) - { - return P_0.Status; - } - - static bool _202C_200F_202A_206D_206D_200B_202A_202D_200F_206C_200F_206D_200D_202D_202D_202E_200C_202B_200F_206E_206F_200B_202B_200D_200D_206D_200C_200D_200F_206E_202A_202D_200B_202D_206D_202A_200B_202B_200C_202D_202E(PluginInstaller P_0) - { - return P_0.IsAnyInstallInProgress; - } - - static bool _200C_206A_206D_202E_206D_202E_200B_206E_200F_200F_202B_202C_206B_202E_206C_202B_200B_202C_206A_200E_200E_200C_206A_202D_202E_206E_202A_202E_202E_206B_206D_202C_202E_200E_206F_206C_200F_202B_202D_206B_202E(PluginInstaller P_0, string P_1, string P_2, IReadOnlyList<string> P_3) - { - return P_0.TryInstall(P_1, P_2, P_3); - } - - static bool _206F_202E_206A_200F_200F_200F_200C_202A_206E_200E_200D_200B_206E_200D_202A_200C_200B_200D_200E_202B_200B_202A_200E_200D_206C_202C_202C_202D_206F_202E_200C_202B_202D_206D_206B_202B_206D_206A_202E_202C_202E(PluginInstaller P_0, string P_1, string P_2, IReadOnlyList<string> P_3) - { - return P_0.TryEnable(P_1, P_2, P_3); - } - - static string _200E_200C_202D_202C_206A_202C_200F_206B_200F_200B_202E_200C_202C_206A_200F_206E_202B_200C_200C_200D_202C_202E_206E_200D_202B_206C_206A_206B_206E_206F_200F_200C_200E_202E_202D_206F_202D_206D_200E_206C_202E(PluginInstallState P_0) - { - return P_0.ErrorMessage; - } - - static void _206F_206D_206A_202E_200F_200F_206F_206D_200C_200F_206E_202C_202D_200F_200D_200F_200B_206C_206B_202B_200F_200C_206F_202A_206B_206F_202D_200D_202B_206F_202E_206E_202A_202C_202D_206F_206F_200B_202C_200E_202E(ImU8String P_0) - { - ImGui.TextDisabled(P_0); - } - - static void _206D_206B_206A_202D_200E_202E_206D_200E_200E_200D_206B_206D_206C_206A_200D_206B_206D_206F_206F_200B_200F_206A_200F_202E_202C_206B_200C_206A_206B_200F_202D_200E_206F_202E_202A_202D_202E_200D_202A_202C_202E() - { - ImGui.Separator(); - } } diff --git a/Questionable/Questionable.Windows.ConfigComponents/QuestsConfigComponent.cs b/Questionable/Questionable.Windows.ConfigComponents/QuestsConfigComponent.cs index a739d82..0f57f55 100644 --- a/Questionable/Questionable.Windows.ConfigComponents/QuestsConfigComponent.cs +++ b/Questionable/Questionable.Windows.ConfigComponents/QuestsConfigComponent.cs @@ -1,41 +1,23 @@ using System; -using System.Collections; -using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin; using Questionable.Controller; using Questionable.Data; -using Questionable.Model.Questing; namespace Questionable.Windows.ConfigComponents; internal sealed class QuestsConfigComponent : ConfigComponent { - private static readonly string[] RoleQuestPreferenceNames = new string[6] - { - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(782819251), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1988067926), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1416322900), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(775671530), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-642103101), - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1075445521) - }; + private static readonly string[] RoleQuestPreferenceNames = new string[6] { "Default (current job)", "Tank", "Healer", "Melee DPS", "Physical Ranged DPS", "Caster" }; - private readonly string[] _msqPriorityNames = new string[3] - { - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(728941723), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1545248646), - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1566075214) - }; + private readonly string[] _msqPriorityNames = new string[3] { "Always (MSQ first)", "After Tracked (MSQ last)", "Manual (never auto-accept MSQ)" }; private readonly QuestRegistry _questRegistry; private readonly TerritoryData _territoryData; - [MethodImpl(MethodImplOptions.NoInlining)] public QuestsConfigComponent(IDalamudPluginInterface pluginInterface, Configuration configuration, QuestRegistry questRegistry, TerritoryData territoryData) : base(pluginInterface, configuration) { @@ -54,551 +36,182 @@ internal sealed class QuestsConfigComponent : ConfigComponent DrawQuestDetails(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawStoryAndProgression() { - UiThemeUtils.SectionHeader(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(237164093)); + UiThemeUtils.SectionHeader("Story & Progression"); (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple = UiThemeUtils.BeginCard(); Vector2 item = tuple.ContentStartPos; float item2 = tuple.AvailableWidth; ImDrawListPtr item3 = tuple.DrawList; int currentItem = (int)base.Configuration.General.MsqPriority; - _206A_202B_200E_200E_206A_206F_202C_200D_206F_200B_206C_202B_200B_206B_202A_202A_202B_206F_200D_206F_200D_202E_206E_202E_202A_206D_206E_200D_206D_206B_206A_200E_202D_202D_200F_206A_206F_200C_206D_202E_202E(_202A_200C_202C_200E_206D_200D_202B_206C_200C_202D_206B_200C_206F_200C_200C_200D_206C_202A_206D_206C_202D_200F_206C_202A_202B_206E_202C_202E_206D_202C_206C_202A_206D_206D_202A_200C_200F_200F_206F_200D_202E(_202C_200D_200B_202B_206A_206F_206E_200C_200E_200E_200F_200D_202D_202E_202B_200B_202B_200E_200C_200C_200D_206D_202B_200D_200C_202D_202E_202B_206E_206A_206E_202C_206A_206F_200B_200C_206C_206A_206D_206E_202E().X * 0.6f, 260f)); - int num = ((!UiThemeUtils.ThemedCombo(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-812204508), ref currentItem, _msqPriorityNames, _msqPriorityNames.Length)) ? (-1137741193) : (-1137741192)); - bool value3 = default(bool); - bool value = default(bool); - bool value2 = default(bool); - while (true) + ImGui.SetNextItemWidth(MathF.Min(ImGui.GetContentRegionAvail().X * 0.6f, 260f)); + if (UiThemeUtils.ThemedCombo("MSQ Priority", ref currentItem, _msqPriorityNames, _msqPriorityNames.Length)) { - int num2 = num; - int num3 = -1137741200; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - num = -1137741192; - break; - case 6: - UiThemeUtils.EndCard(item, item2, item3); - return; - case 3: - _206C_202B_200F_202D_200D_200D_200E_200C_206F_200D_200C_202A_206F_200D_206E_200E_202C_202E_202D_206B_202B_202E_202C_200D_206F_200F_206C_206E_206D_206F_202A_202A_200C_200B_202B_202E_200B_200B_206C_202A_202E(); - UiThemeUtils.InfoIcon(BuildLowPriorityDutyTooltip()); - value3 = base.Configuration.Advanced.SkipARealmRebornHardModePrimals; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1581997806), ref value3, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1805083128))) ? (-1137741199) : (-1137741196)); - break; - case 1: - value = base.Configuration.Advanced.SkipCrystalTowerRaids; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(597003945), ref value, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(600330157))) ? (-1137741194) : (-1137741198)); - break; - case 7: - _206C_202B_200F_202D_200D_200D_200E_200C_206F_200D_200C_202A_206F_200D_206E_200E_202C_202E_202D_206B_202B_202E_202C_200D_206F_200F_206C_206E_206D_206F_202A_202A_200C_200B_202B_202E_200B_200B_206C_202A_202E(); - UiThemeUtils.InfoIcon(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-844746693)); - value2 = base.Configuration.General.SkipLowPriorityDuties; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1739526740), ref value2)) ? (-1137741197) : (-1137741200)); - break; - case 8: - base.Configuration.General.MsqPriority = (Configuration.EMsqPriorityMode)currentItem; - Save(); - num = -1137741193; - break; - case 4: - base.Configuration.Advanced.SkipARealmRebornHardModePrimals = value3; - Save(); - num = -1137741199; - break; - case 0: - base.Configuration.General.SkipLowPriorityDuties = value2; - Save(); - num = -1137741197; - break; - case 2: - base.Configuration.Advanced.SkipCrystalTowerRaids = value; - Save(); - num = -1137741194; - break; - } + base.Configuration.General.MsqPriority = (Configuration.EMsqPriorityMode)currentItem; + Save(); } + ImGui.SameLine(); + UiThemeUtils.InfoIcon("Controls when the Main Scenario Quest (MSQ) is automatically accepted:\n\n• Always: Auto-accept MSQ immediately\n• After Tracked: Complete accepted quests first, then pick up MSQ\n• Manual: Never auto-accept MSQ, only do manually accepted quests"); + bool value = base.Configuration.General.SkipLowPriorityDuties; + if (UiThemeUtils.WrappedCheckbox("Unlock certain optional dungeons and raids (instead of waiting for completion)", ref value)) + { + base.Configuration.General.SkipLowPriorityDuties = value; + Save(); + } + ImGui.SameLine(); + UiThemeUtils.InfoIcon(BuildLowPriorityDutyTooltip()); + bool value2 = base.Configuration.Advanced.SkipARealmRebornHardModePrimals; + if (UiThemeUtils.WrappedCheckbox("Don't pick up ARR hard mode primal quests", ref value2, "Hard mode Ifrit/Garuda/Titan are required for the Patch 2.5 quest 'Good Intentions' and to start Heavensward.")) + { + base.Configuration.Advanced.SkipARealmRebornHardModePrimals = value2; + Save(); + } + bool value3 = base.Configuration.Advanced.SkipCrystalTowerRaids; + if (UiThemeUtils.WrappedCheckbox("Don't pick up Crystal Tower quests", ref value3, "Crystal Tower raids are required for the Patch 2.55 quest 'A Time to Every Purpose' and to start Heavensward.")) + { + base.Configuration.Advanced.SkipCrystalTowerRaids = value3; + Save(); + } + UiThemeUtils.EndCard(item, item2, item3); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawSideContent() { - UiThemeUtils.SectionHeader(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1505105599)); + UiThemeUtils.SectionHeader("Side Content"); (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple = UiThemeUtils.BeginCard(); Vector2 item = tuple.ContentStartPos; float item2 = tuple.AvailableWidth; ImDrawListPtr item3 = tuple.DrawList; bool value = base.Configuration.Advanced.SkipClassJobQuests; - int num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-287751804), ref value, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(695773902))) ? 701911122 : 701911123); - bool value2 = default(bool); - bool value3 = default(bool); - bool value5 = default(bool); - while (true) + if (UiThemeUtils.WrappedCheckbox("Don't pick up class/job quests", ref value, "Class and job skills for A Realm Reborn, Heavensward and (for the Lv70 skills) Stormblood are locked behind quests. Not recommended if you plan on queueing for instances with duty finder/party finder.\n\nNote: This setting is ignored for the first class/job quest if your character is not high enough level to start the level 4 MSQ.")) { - int num2 = num; - int num3 = 701911120; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + base.Configuration.Advanced.SkipClassJobQuests = value; + Save(); + } + bool value2 = base.Configuration.Advanced.SkipRoleQuests; + if (UiThemeUtils.WrappedCheckbox("Don't pick up role quests", ref value2, "At least one Shadowbringers role quest line must be completed for the 5.0 MSQ. Disabling this means you must complete role quests manually.")) + { + base.Configuration.Advanced.SkipRoleQuests = value2; + Save(); + } + using (ImRaii.Disabled(value2)) + { + using (ImRaii.PushIndent()) { - case 0: - num = 701911123; - break; - case 2: - value2 = base.Configuration.Advanced.SkipRoleQuests; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1998442994), ref value2, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1288406521))) ? 701911121 : 701911124); - break; - case 3: - base.Configuration.Advanced.SkipClassJobQuests = value; - Save(); - num = 701911122; - break; - case 4: - base.Configuration.Advanced.SkipRoleQuests = value2; - Save(); - num = 701911121; - break; - case 1: - { - ImRaii.DisabledDisposable disabledDisposable = _200F_200F_200E_200D_202D_200D_202B_206A_206E_200C_206A_202E_200D_200E_206B_202E_202D_206F_206C_206D_206C_200F_202B_200B_206A_202B_202C_202B_206A_202D_206F_202C_206C_206D_206F_206B_200C_206C_200C_200F_202E(value2); - try + int currentItem = (int)base.Configuration.Advanced.RoleQuestPreference; + ImGui.SetNextItemWidth(MathF.Min(260f, ImGui.GetContentRegionAvail().X)); + if (UiThemeUtils.ThemedCombo("Role quest line", ref currentItem, RoleQuestPreferenceNames, RoleQuestPreferenceNames.Length)) { - ImRaii.IndentDisposable indentDisposable = _200F_202E_206D_202B_206F_202C_206A_206B_206B_206E_206B_206B_202C_206A_202E_206C_200E_200C_206B_202C_200F_202B_206D_202A_202D_202A_202E_202B_206B_206C_202A_202B_202E_206B_206D_202C_206D_200B_200E_200D_202E(1, true); - try - { - int currentItem = (int)base.Configuration.Advanced.RoleQuestPreference; - _206A_202B_200E_200E_206A_206F_202C_200D_206F_200B_206C_202B_200B_206B_202A_202A_202B_206F_200D_206F_200D_202E_206E_202E_202A_206D_206E_200D_206D_206B_206A_200E_202D_202D_200F_206A_206F_200C_206D_202E_202E(_202A_200C_202C_200E_206D_200D_202B_206C_200C_202D_206B_200C_206F_200C_200C_200D_206C_202A_206D_206C_202D_200F_206C_202A_202B_206E_202C_202E_206D_202C_206C_202A_206D_206D_202A_200C_200F_200F_206F_200D_202E(260f, _202C_200D_200B_202B_206A_206F_206E_200C_200E_200E_200F_200D_202D_202E_202B_200B_202B_200E_200C_200C_200D_206D_202B_200D_200C_202D_202E_202B_206E_206A_206E_202C_206A_206F_200B_200C_206C_206A_206D_206E_202E().X)); - num = ((!UiThemeUtils.ThemedCombo(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1098205123), ref currentItem, RoleQuestPreferenceNames, RoleQuestPreferenceNames.Length)) ? 961882088 : 961882093); - while (true) - { - int num5 = num; - num3 = 961882092; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - _206C_202B_200F_202D_200D_200D_200E_200C_206F_200D_200C_202A_206F_200D_206E_200E_202C_202E_202D_206B_202B_202E_202C_200D_206F_200F_206C_206E_206D_206F_202A_202A_200C_200B_202B_202E_200B_200B_206C_202A_202E(); - UiThemeUtils.InfoIcon(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-278600332)); - value3 = base.Configuration.Advanced.ContinueRoleQuestsAfterShb; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-368335617), ref value3, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-540198939))) ? 961882095 : 961882094); - break; - case 2: - base.Configuration.Advanced.ContinueRoleQuestsAfterShb = value3; - Save(); - num = 961882095; - break; - case 0: - num = 961882093; - break; - case 1: - base.Configuration.Advanced.RoleQuestPreference = (ERoleQuestPreference)currentItem; - Save(); - num = 961882088; - break; - case 3: - goto end_IL_01b9; - } - continue; - end_IL_01b9: - break; - } - } - finally - { - num = ((indentDisposable == null) ? 1246267524 : 1246267527); - while (true) - { - int num6 = num; - num3 = 1246267525; - num4 = num6; - int num7 = num4 + num3; - int num8 = num4 & num3; - switch (num7 - (num8 + num8)) - { - case 0: - num = 1246267527; - break; - case 1: - goto end_IL_02c3; - case 2: - _202B_202A_202C_206D_206A_206F_200F_202B_200C_200D_200E_202A_202B_200C_206E_202B_202B_202B_200D_206B_206D_206B_202E_206B_206C_202D_200E_206A_202E_206C_200C_206C_202A_202D_202E_202B_200B_202A_206E_200C_202E((IDisposable)indentDisposable); - num = 1246267524; - break; - } - continue; - end_IL_02c3: - break; - } - } + base.Configuration.Advanced.RoleQuestPreference = (ERoleQuestPreference)currentItem; + Save(); } - finally + ImGui.SameLine(); + UiThemeUtils.InfoIcon("Which role quest line to prioritize. Default follows your current job's role. Your current job must match the selected role for quests to be picked up."); + bool value3 = base.Configuration.Advanced.ContinueRoleQuestsAfterShb; + if (UiThemeUtils.WrappedCheckbox("Continue role quests after Shadowbringers", ref value3, "When enabled, also prioritizes Endwalker and Dawntrail role quests for the selected role. These are not required for MSQ progression.")) { - num = ((disabledDisposable == null) ? (-306243295) : (-306243296)); - while (true) - { - int num9 = num; - num3 = -306243295; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 2: - num = -306243296; - break; - case 1: - _202B_202A_202C_206D_206A_206F_200F_202B_200C_200D_200E_202A_202B_200C_206E_202B_202B_202B_200D_206B_206D_206B_202E_206B_206C_202D_200E_206A_202E_206C_200C_206C_202A_202D_202E_202B_200B_202A_206E_200C_202E((IDisposable)disabledDisposable); - num = -306243295; - break; - case 0: - goto end_IL_0330; - } - continue; - end_IL_0330: - break; - } + base.Configuration.Advanced.ContinueRoleQuestsAfterShb = value3; + Save(); } - bool value4 = base.Configuration.Advanced.SkipAetherCurrents; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1840272948), ref value4, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2059790792))) ? (-1684768103) : (-1684768097)); - while (true) - { - int num12 = num; - num3 = -1684768099; - num4 = num12; - int num13 = num4 + num3; - int num14 = num4 & num3; - switch (num13 - (num14 + num14)) - { - case 4: - value5 = base.Configuration.Advanced.AutoPrioritizeAlliedSocietyRankUp; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1599968493), ref value5, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1897441794))) ? (-1684768100) : (-1684768099)); - break; - case 1: - UiThemeUtils.EndCard(item, item2, item3); - return; - case 0: - base.Configuration.Advanced.AutoPrioritizeAlliedSocietyRankUp = value5; - Save(); - num = -1684768100; - break; - case 3: - num = -1684768097; - break; - case 2: - base.Configuration.Advanced.SkipAetherCurrents = value4; - Save(); - num = -1684768103; - break; - } - } - } } } + bool value4 = base.Configuration.Advanced.SkipAetherCurrents; + if (UiThemeUtils.WrappedCheckbox("Don't pick up aether currents/aether current quests", ref value4, "If not done during the MSQ by Questionable, you have to manually pick up any missed aether currents/quests. There is no way to automatically pick up all missing aether currents.")) + { + base.Configuration.Advanced.SkipAetherCurrents = value4; + Save(); + } + bool value5 = base.Configuration.Advanced.AutoPrioritizeAlliedSocietyRankUp; + if (UiThemeUtils.WrappedCheckbox("Auto-prioritize allied society rank up quests", ref value5, "Automatically prioritizes rank up quests when at reputation capacity, and reorders daily turn-ins to minimize wasted reputation.")) + { + base.Configuration.Advanced.AutoPrioritizeAlliedSocietyRankUp = value5; + Save(); + } + UiThemeUtils.EndCard(item, item2, item3); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawPriorityQuests() { - UiThemeUtils.SectionHeader(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-353625027)); + UiThemeUtils.SectionHeader("Priority Quests"); (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple = UiThemeUtils.BeginCard(); Vector2 item = tuple.ContentStartPos; float item2 = tuple.AvailableWidth; ImDrawListPtr item3 = tuple.DrawList; bool value = base.Configuration.General.PersistPriorityQuestsBetweenSessions; - int num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-577769319), ref value, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1807354534))) ? 1805304050 : 1805304055); - bool value2 = default(bool); - bool value3 = default(bool); - while (true) + if (UiThemeUtils.WrappedCheckbox("Save priority quests between sessions", ref value, "When enabled, your priority quest list will be saved and restored when the plugin reloads or the game restarts.")) { - int num2 = num; - int num3 = 1805304054; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - value2 = base.Configuration.General.ClearPriorityQuestsOnLogout; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1009601852), ref value2, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(247181671))) ? 1805304053 : 1805304048); - break; - case 1: - base.Configuration.General.PersistPriorityQuestsBetweenSessions = value; - Save(); - num = 1805304050; - break; - case 3: - value3 = base.Configuration.General.ClearPriorityQuestsOnCompletion; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-441944134), ref value3, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1752253012))) ? 1805304054 : 1805304051); - break; - case 0: - UiThemeUtils.EndCard(item, item2, item3); - return; - case 5: - base.Configuration.General.ClearPriorityQuestsOnCompletion = value3; - Save(); - num = 1805304054; - break; - case 6: - base.Configuration.General.ClearPriorityQuestsOnLogout = value2; - Save(); - num = 1805304053; - break; - case 2: - num = 1805304055; - break; - } + base.Configuration.General.PersistPriorityQuestsBetweenSessions = value; + Save(); } + bool value2 = base.Configuration.General.ClearPriorityQuestsOnLogout; + if (UiThemeUtils.WrappedCheckbox("Clear priority quests on character logout", ref value2, "Clears the priority queue when your character logs out. This also clears the saved list if persistence is enabled.")) + { + base.Configuration.General.ClearPriorityQuestsOnLogout = value2; + Save(); + } + bool value3 = base.Configuration.General.ClearPriorityQuestsOnCompletion; + if (UiThemeUtils.WrappedCheckbox("Remove priority quests when completed", ref value3, "Automatically removes completed quests from your priority queue. This helps keep your priority list clean without manual intervention.")) + { + base.Configuration.General.ClearPriorityQuestsOnCompletion = value3; + Save(); + } + UiThemeUtils.EndCard(item, item2, item3); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawQuestDetails() { - UiThemeUtils.SectionHeader(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-599014717)); + UiThemeUtils.SectionHeader("Quest Details"); var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); - _202C_206A_200F_200D_202A_206D_206D_200B_206A_202C_202D_206C_200F_200B_200C_200C_206D_206E_206E_202B_202D_202E_200E_206C_206C_202A_202A_206A_200B_202A_206B_202B_202C_206C_202A_206F_202A_200D_206E_202E_202E(); - _206D_202D_202A_202D_202E_200F_202E_200E_202A_202E_200B_206A_200E_200C_202B_206B_206A_202C_206E_206C_206A_206B_206B_200B_202E_202A_200B_200B_200C_206B_206A_202D_200F_206D_202A_200E_200C_202B_200D_206B_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(746105637)); - _206C_202B_200F_202D_200D_200D_200E_200C_206F_200D_200C_202A_206F_200D_206E_200E_202C_202E_202D_206B_202B_202E_202C_200D_206F_200F_206C_206E_206D_206F_202A_202A_200C_200B_202B_202E_200B_200B_206C_202A_202E(); - string chocoboName = base.Configuration.Advanced.ChocoboName; - _206A_202B_200E_200E_206A_206F_202C_200D_206F_200B_206C_202B_200B_206B_202A_202A_202B_206F_200D_206F_200D_202E_206E_202E_202A_206D_206E_200D_206D_206B_206A_200E_202D_202D_200F_206A_206F_200C_206D_202E_202E(_202A_200C_202C_200E_206D_200D_202B_206C_200C_202D_206B_200C_206F_200C_200C_200D_206C_202A_206D_206C_202D_200F_206C_202A_202B_206E_202C_202E_206D_202C_206C_202A_206D_206D_202A_200C_200F_200F_206F_200D_202E(260f, _202C_200D_200B_202B_206A_206F_206E_200C_200E_200E_200F_200D_202D_202E_202B_200B_202B_200E_200C_200C_200D_206D_202B_200D_200C_202D_202E_202B_206E_206A_206E_202C_206A_206F_200B_200C_206C_206A_206D_206E_202E().X)); - int num = ((!_206B_200E_206C_206A_206F_206F_206F_202C_200F_202C_202C_206A_200C_202E_202A_206A_200D_202E_202B_200E_202B_200E_202C_200E_202A_200D_200B_200C_206F_206B_202C_202A_200C_206A_200E_206D_206C_206F_200D_200E_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1101377353), ref chocoboName, 20, ImGuiInputTextFlags.None, (ImGui.ImGuiInputTextCallbackDelegate)null)) ? 1006772323 : 1006772320); - bool value = default(bool); - while (true) + ImGui.AlignTextToFramePadding(); + ImGui.Text("Chocobo Name:"); + ImGui.SameLine(); + string buf = base.Configuration.Advanced.ChocoboName; + ImGui.SetNextItemWidth(MathF.Min(260f, ImGui.GetContentRegionAvail().X)); + if (ImGui.InputText("##ChocoboName", ref buf, 20)) { - int num2 = num; - int num3 = 1006772323; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = (_206A_200D_200B_202E_200C_200B_206B_200B_206A_206C_202A_202C_202B_206D_206C_200D_206D_200F_206E_206A_206C_200C_202B_206D_202E_206B_202B_202D_200B_202A_206D_202B_200F_206B_206F_202B_202E_202A_206A_202D_202E(chocoboName) ? 1006772322 : 1006772324); - break; - case 7: - num = ((_200C_200F_206E_202A_200E_200C_206D_202D_202B_206E_202D_206E_200D_202C_206C_200B_202A_202E_206E_202D_202C_206C_206A_200E_200C_202E_206D_206A_206E_206B_206F_206A_206A_200D_202B_206D_202D_200D_202E_202B_202E(chocoboName) >= 2) ? 1006772322 : 1006772325); - break; - case 1: - _206C_202B_200F_202D_200D_200D_200E_200C_206F_200D_200C_202A_206F_200D_206E_200E_202C_202E_202D_206B_202B_202E_202C_200D_206F_200F_206C_206E_206D_206F_202A_202A_200C_200B_202B_202E_200B_200B_206C_202A_202E(); - UiThemeUtils.InfoIcon(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-743653940)); - value = base.Configuration.Advanced.PreventQuestCompletion; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1717929186), ref value, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(488343971))) ? 1006772326 : 1006772321); - break; - case 5: - UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); - return; - case 2: - base.Configuration.Advanced.PreventQuestCompletion = value; - Save(); - num = 1006772326; - break; - case 4: - num = 1006772320; - break; - case 3: - base.Configuration.Advanced.ChocoboName = FormatChocoboName(chocoboName); - Save(); - num = 1006772323; - break; - case 6: - _206C_202B_200F_202D_200D_200D_200E_200C_206F_200D_200C_202A_206F_200D_206E_200E_202C_202E_202D_206B_202B_202E_202C_200D_206F_200F_206C_206E_206D_206F_202A_202A_200C_200B_202B_202E_200B_200B_206C_202A_202E(); - _200F_202D_206C_206E_200F_202C_206A_202D_200D_200B_206C_202E_206A_200E_202A_200D_206C_202E_202D_206C_200E_200E_206C_202D_202E_206F_202B_202C_202A_202C_200F_200B_202C_200C_202A_206D_206F_202D_206B_202B_202E(ref UiThemeUtils.StatusLocked, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(269183977)); - num = 1006772322; - break; - } + base.Configuration.Advanced.ChocoboName = FormatChocoboName(buf); + Save(); } + if (!string.IsNullOrEmpty(buf) && buf.Length < 2) + { + ImGui.SameLine(); + ImGui.TextColored(in UiThemeUtils.StatusLocked, "Name must be at least 2 characters"); + } + ImGui.SameLine(); + UiThemeUtils.InfoIcon("The name to give your chocobo during the 'My Little Chocobo' quest.\nMust be 2-20 characters. First letter will be capitalized.\nIf left empty, defaults to 'Kweh'."); + bool value = base.Configuration.Advanced.PreventQuestCompletion; + if (UiThemeUtils.WrappedCheckbox("Prevent quest completion", ref value, "When enabled, Questionable will not attempt to turn-in and complete quests. This will do everything automatically except the final turn-in step.")) + { + base.Configuration.Advanced.PreventQuestCompletion = value; + Save(); + } + UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); } - [MethodImpl(MethodImplOptions.NoInlining)] private string BuildLowPriorityDutyTooltip() { - string text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-452308535); - IEnumerator<(uint, ElementId, int)> enumerator = _questRegistry.LowPriorityContentFinderConditionQuests.GetEnumerator(); - try + string text = "Questionable automatically picks up some optional quests (e.g. for aether currents, or the ARR alliance raids).\nIf this setting is enabled, Questionable will continue with other quests, instead of waiting for manual completion of the duty.\n\nThis affects the following dungeons and raids:"; + foreach (var lowPriorityContentFinderConditionQuest in _questRegistry.LowPriorityContentFinderConditionQuests) { - int num = 1407189999; - TerritoryData.ContentFinderConditionData contentFinderConditionData = default(TerritoryData.ContentFinderConditionData); - while (true) + if (_territoryData.TryGetContentFinderCondition(lowPriorityContentFinderConditionQuest.ContentFinderConditionId, out TerritoryData.ContentFinderConditionData contentFinderConditionData)) { - int num2 = num; - int num3 = 1407189996; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - text = _202A_206E_206A_206C_206E_206C_202D_200D_202D_206B_202C_206B_202D_200F_200B_206D_200C_202D_202A_206C_206B_206B_202B_206F_202D_200B_206A_202A_206E_206D_202B_200D_202D_206B_200F_200E_202C_202B_200C_206C_202E(text, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1097491456), contentFinderConditionData.Name); - num = 1407189999; - break; - case 1: - { - (uint, ElementId, int) current = enumerator.Current; - num = ((!_territoryData.TryGetContentFinderCondition(current.Item1, out contentFinderConditionData)) ? 1407189999 : 1407189992); - break; - } - case 2: - num = 1407189999; - break; - case 3: - num = (_202A_206A_206C_200D_200F_202D_206E_202C_206B_202C_206E_206F_200B_206F_202B_206D_206D_202B_200D_202B_202D_202B_202C_206E_200D_206C_202B_206B_206E_206D_202B_202A_202A_200C_206D_206B_206E_202C_200E_206F_202E((IEnumerator)enumerator) ? 1407189997 : 1407189996); - break; - case 0: - return text; - } - } - } - finally - { - int num = ((enumerator == null) ? 1125418101 : 1125418102); - while (true) - { - int num5 = num; - int num3 = 1125418100; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - goto end_IL_0108; - case 2: - _202B_202A_202C_206D_206A_206F_200F_202B_200C_200D_200E_202A_202B_200C_206E_202B_202B_202B_200D_206B_206D_206B_202E_206B_206C_202D_200E_206A_202E_206C_200C_206C_202A_202D_202E_202B_200B_202A_206E_200C_202E((IDisposable)enumerator); - num = 1125418101; - break; - case 0: - num = 1125418102; - break; - } - continue; - end_IL_0108: - break; + text = text + "\n• " + contentFinderConditionData.Name; } } + return text; } private static string FormatChocoboName(string name) { - int num = ((!_206A_200D_200B_202E_200C_200B_206B_200B_206A_206C_202A_202C_202B_206D_206C_200D_206D_200F_206E_206A_206C_200C_202B_206D_202E_206B_202B_202D_200B_202A_206D_202B_200F_206B_206F_202B_202E_202A_206A_202D_202E(name)) ? (-1145813507) : (-1145813509)); - while (true) + if (string.IsNullOrEmpty(name)) { - int num2 = num; - int num3 = -1145813505; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return string.Empty; - case 1: - return _200E_206E_206A_206E_206E_202B_202C_202A_206B_206D_206C_200D_206B_206D_202E_206D_206F_202E_206E_206C_206A_206E_206F_202B_202E_200B_206B_206B_202E_200B_200F_202B_200B_206B_200F_202C_202D_206D_202D_200E_202E(_200D_202A_202B_206D_202B_200C_200D_206B_202C_206F_200C_200E_206B_206D_206B_206C_206A_202E_206C_200B_200F_200E_206B_202E_202A_206A_206A_206F_202A_206F_206B_202D_200D_206B_206E_200B_206E_202E_206D_200F_202E(_206F_200D_206A_202B_200D_206E_206E_202C_200C_202A_202B_202D_200D_202C_200C_202E_200C_206E_206E_200D_206C_206C_206B_200B_206E_206F_202C_206C_202D_206E_206A_206E_202B_206C_200D_200B_200F_206C_202B_200E_202E(name, 0, 1)), (_200C_200F_206E_202A_200E_200C_206D_202D_202B_206E_202D_206E_200D_202C_206C_200B_202A_202E_206E_202D_202C_206C_206A_200E_200C_202E_206D_206A_206E_206B_206F_206A_206A_200D_202B_206D_202D_200D_202E_202B_202E(name) > 1) ? _206A_200F_202B_202B_202B_202E_200C_206B_206E_206B_206C_206C_200C_202B_200C_206A_202E_202E_206D_206E_206D_202C_202B_200F_206F_206E_200D_206E_206D_200D_202D_202B_202A_200C_200D_202C_202A_202E_202D_206B_202E(_206B_202C_206B_206F_200C_200B_206F_206F_200E_200D_206D_206B_202B_206B_202A_202C_206C_200C_206A_206E_202A_206D_200D_206C_206A_206D_206D_200D_200D_206E_202C_206D_200F_202C_206D_206B_202C_202A_206F_202A_202E(name, 1)) : string.Empty); - case 2: - name = _202E_202D_206E_206A_202B_206E_202C_200C_200F_206E_200B_200E_206E_202B_206F_200C_202B_202C_206F_202E_206D_202B_206F_200E_200C_202E_206D_202C_200F_202A_202A_206E_202B_200C_200F_200E_206F_200D_200E_202B_202E(name); - num = ((_200C_200F_206E_202A_200E_200C_206D_202D_202B_206E_202D_206E_200D_202C_206C_200B_202A_202E_206E_202D_202C_206C_206A_200E_200C_202E_206D_206A_206E_206B_206F_206A_206A_200D_202B_206D_202D_200D_202E_202B_202E(name) != 0) ? (-1145813506) : (-1145813505)); - break; - case 3: - num = -1145813509; - break; - case 4: - return string.Empty; - } + return string.Empty; } - } - - static Vector2 _202C_200D_200B_202B_206A_206F_206E_200C_200E_200E_200F_200D_202D_202E_202B_200B_202B_200E_200C_200C_200D_206D_202B_200D_200C_202D_202E_202B_206E_206A_206E_202C_206A_206F_200B_200C_206C_206A_206D_206E_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static float _202A_200C_202C_200E_206D_200D_202B_206C_200C_202D_206B_200C_206F_200C_200C_200D_206C_202A_206D_206C_202D_200F_206C_202A_202B_206E_202C_202E_206D_202C_206C_202A_206D_206D_202A_200C_200F_200F_206F_200D_202E(float P_0, float P_1) - { - return MathF.Min(P_0, P_1); - } - - static void _206A_202B_200E_200E_206A_206F_202C_200D_206F_200B_206C_202B_200B_206B_202A_202A_202B_206F_200D_206F_200D_202E_206E_202E_202A_206D_206E_200D_206D_206B_206A_200E_202D_202D_200F_206A_206F_200C_206D_202E_202E(float P_0) - { - ImGui.SetNextItemWidth(P_0); - } - - static void _206C_202B_200F_202D_200D_200D_200E_200C_206F_200D_200C_202A_206F_200D_206E_200E_202C_202E_202D_206B_202B_202E_202C_200D_206F_200F_206C_206E_206D_206F_202A_202A_200C_200B_202B_202E_200B_200B_206C_202A_202E() - { - ImGui.SameLine(); - } - - static ImRaii.DisabledDisposable _200F_200F_200E_200D_202D_200D_202B_206A_206E_200C_206A_202E_200D_200E_206B_202E_202D_206F_206C_206D_206C_200F_202B_200B_206A_202B_202C_202B_206A_202D_206F_202C_206C_206D_206F_206B_200C_206C_200C_200F_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static ImRaii.IndentDisposable _200F_202E_206D_202B_206F_202C_206A_206B_206B_206E_206B_206B_202C_206A_202E_206C_200E_200C_206B_202C_200F_202B_206D_202A_202D_202A_202E_202B_206B_206C_202A_202B_202E_206B_206D_202C_206D_200B_200E_200D_202E(int P_0, bool P_1) - { - return ImRaii.PushIndent(P_0, P_1); - } - - static void _202B_202A_202C_206D_206A_206F_200F_202B_200C_200D_200E_202A_202B_200C_206E_202B_202B_202B_200D_206B_206D_206B_202E_206B_206C_202D_200E_206A_202E_206C_200C_206C_202A_202D_202E_202B_200B_202A_206E_200C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _202C_206A_200F_200D_202A_206D_206D_200B_206A_202C_202D_206C_200F_200B_200C_200C_206D_206E_206E_202B_202D_202E_200E_206C_206C_202A_202A_206A_200B_202A_206B_202B_202C_206C_202A_206F_202A_200D_206E_202E_202E() - { - ImGui.AlignTextToFramePadding(); - } - - static void _206D_202D_202A_202D_202E_200F_202E_200E_202A_202E_200B_206A_200E_200C_202B_206B_206A_202C_206E_206C_206A_206B_206B_200B_202E_202A_200B_200B_200C_206B_206A_202D_200F_206D_202A_200E_200C_202B_200D_206B_202E(ImU8String P_0) - { - ImGui.Text(P_0); - } - - static bool _206B_200E_206C_206A_206F_206F_206F_202C_200F_202C_202C_206A_200C_202E_202A_206A_200D_202E_202B_200E_202B_200E_202C_200E_202A_200D_200B_200C_206F_206B_202C_202A_200C_206A_200E_206D_206C_206F_200D_200E_202E(ImU8String P_0, ref string P_1, int P_2, ImGuiInputTextFlags P_3, ImGui.ImGuiInputTextCallbackDelegate P_4) - { - return ImGui.InputText(P_0, ref P_1, P_2, P_3, P_4); - } - - static bool _206A_200D_200B_202E_200C_200B_206B_200B_206A_206C_202A_202C_202B_206D_206C_200D_206D_200F_206E_206A_206C_200C_202B_206D_202E_206B_202B_202D_200B_202A_206D_202B_200F_206B_206F_202B_202E_202A_206A_202D_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static int _200C_200F_206E_202A_200E_200C_206D_202D_202B_206E_202D_206E_200D_202C_206C_200B_202A_202E_206E_202D_202C_206C_206A_200E_200C_202E_206D_206A_206E_206B_206F_206A_206A_200D_202B_206D_202D_200D_202E_202B_202E(string P_0) - { - return P_0.Length; - } - - static void _200F_202D_206C_206E_200F_202C_206A_202D_200D_200B_206C_202E_206A_200E_202A_200D_206C_202E_202D_206C_200E_200E_206C_202D_202E_206F_202B_202C_202A_202C_200F_200B_202C_200C_202A_206D_206F_202D_206B_202B_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static string _202A_206E_206A_206C_206E_206C_202D_200D_202D_206B_202C_206B_202D_200F_200B_206D_200C_202D_202A_206C_206B_206B_202B_206F_202D_200B_206A_202A_206E_206D_202B_200D_202D_206B_200F_200E_202C_202B_200C_206C_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static bool _202A_206A_206C_200D_200F_202D_206E_202C_206B_202C_206E_206F_200B_206F_202B_206D_206D_202B_200D_202B_202D_202B_202C_206E_200D_206C_202B_206B_206E_206D_202B_202A_202A_200C_206D_206B_206E_202C_200E_206F_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static string _202E_202D_206E_206A_202B_206E_202C_200C_200F_206E_200B_200E_206E_202B_206F_200C_202B_202C_206F_202E_206D_202B_206F_200E_200C_202E_206D_202C_200F_202A_202A_206E_202B_200C_200F_200E_206F_200D_200E_202B_202E(string P_0) - { - return P_0.Trim(); - } - - static string _206F_200D_206A_202B_200D_206E_206E_202C_200C_202A_202B_202D_200D_202C_200C_202E_200C_206E_206E_200D_206C_206C_206B_200B_206E_206F_202C_206C_202D_206E_206A_206E_202B_206C_200D_200B_200F_206C_202B_200E_202E(string P_0, int P_1, int P_2) - { - return P_0.Substring(P_1, P_2); - } - - static string _200D_202A_202B_206D_202B_200C_200D_206B_202C_206F_200C_200E_206B_206D_206B_206C_206A_202E_206C_200B_200F_200E_206B_202E_202A_206A_206A_206F_202A_206F_206B_202D_200D_206B_206E_200B_206E_202E_206D_200F_202E(string P_0) - { - return P_0.ToUpperInvariant(); - } - - static string _206B_202C_206B_206F_200C_200B_206F_206F_200E_200D_206D_206B_202B_206B_202A_202C_206C_200C_206A_206E_202A_206D_200D_206C_206A_206D_206D_200D_200D_206E_202C_206D_200F_202C_206D_206B_202C_202A_206F_202A_202E(string P_0, int P_1) - { - return P_0.Substring(P_1); - } - - static string _206A_200F_202B_202B_202B_202E_200C_206B_206E_206B_206C_206C_200C_202B_200C_206A_202E_202E_206D_206E_206D_202C_202B_200F_206F_206E_200D_206E_206D_200D_202D_202B_202A_200C_200D_202C_202A_202E_202D_206B_202E(string P_0) - { - return P_0.ToLowerInvariant(); - } - - static string _200E_206E_206A_206E_206E_202B_202C_202A_206B_206D_206C_200D_206B_206D_202E_206D_206F_202E_206E_206C_206A_206E_206F_202B_202E_200B_206B_206B_202E_200B_200F_202B_200B_206B_200F_202C_202D_206D_202D_200E_202E(string P_0, string P_1) - { - return P_0 + P_1; + name = name.Trim(); + if (name.Length == 0) + { + return string.Empty; + } + return name.Substring(0, 1).ToUpperInvariant() + ((name.Length > 1) ? name.Substring(1).ToLowerInvariant() : string.Empty); } } diff --git a/Questionable/Questionable.Windows.ConfigComponents/SinglePlayerDutyConfigComponent.cs b/Questionable/Questionable.Windows.ConfigComponents/SinglePlayerDutyConfigComponent.cs index b2b8c3c..f32c6cc 100644 --- a/Questionable/Questionable.Windows.ConfigComponents/SinglePlayerDutyConfigComponent.cs +++ b/Questionable/Questionable.Windows.ConfigComponents/SinglePlayerDutyConfigComponent.cs @@ -1,12 +1,10 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; using System.Numerics; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using System.Text; using Dalamud.Bindings.ImGui; using Dalamud.Interface; using Dalamud.Interface.Utility.Raii; @@ -27,16 +25,6 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent { private sealed record SinglePlayerDutyInfo(string Name, IQuestInfo QuestInfo, TerritoryData.ContentFinderConditionData ContentFinderConditionData, byte Index, bool EnabledByDefault, string[] Notes, bool Enabled) { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200F_200E_206B_206A_200C_200D_206E_200C_206D_206B_200C_206E_206B_206B_200E_202A_206E_200B_200E_202C_202D_202E_202D_202C_200F_206A_200B_202E_206E_206C_206B_206F_202C_202B_202C_200F_202D_206B_202D_202C_202E(typeof(SinglePlayerDutyInfo).TypeHandle); - } - } - public EExpansionVersion Expansion => QuestInfo.Expansion; public uint JournalGenreId => (uint)(((int?)QuestInfo.JournalGenre) ?? (-1)); @@ -52,35 +40,11 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent get { uint contentFinderConditionId = ContentFinderConditionId; - int num = ((contentFinderConditionId == 313) ? 695604595 : 695604594); - bool result = default(bool); - while (true) + if (contentFinderConditionId == 313 || contentFinderConditionId - 332 <= 2) { - int num2 = num; - int num3 = 695604595; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - return result; - case 0: - result = true; - num = 695604599; - break; - case 1: - num3 = 332; - num4 = (int)contentFinderConditionId; - num = (((uint)(~(~num4 + num3)) > 2u) ? 695604592 : 695604595); - break; - case 3: - result = false; - num = 695604599; - break; - case 2: - num = 695604594; - break; - } + return true; } + return false; } } @@ -89,32 +53,11 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent get { uint contentFinderConditionId = ContentFinderConditionId; - int num = 296; - int num2 = (int)contentFinderConditionId; - int num3 = (((uint)(~(~num2 + num)) > 3u) ? (-721391715) : (-721391713)); - bool result = default(bool); - while (true) + if (contentFinderConditionId - 296 <= 3) { - int num4 = num3; - num = -721391714; - num2 = num4; - switch ((num2 | num) - (num2 & num)) - { - case 0: - num3 = -721391713; - break; - case 2: - return result; - case 3: - result = false; - num3 = -721391716; - break; - case 1: - result = true; - num3 = -721391716; - break; - } + return true; } + return false; } } @@ -123,35 +66,11 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent get { uint contentFinderConditionId = ContentFinderConditionId; - int num = ((contentFinderConditionId == 312) ? 2086696776 : 2086696779); - bool result = default(bool); - while (true) + if (contentFinderConditionId == 312 || contentFinderConditionId - 335 <= 2) { - int num2 = num; - int num3 = 2086696776; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - result = false; - num = 2086696777; - break; - case 1: - return result; - case 2: - num = 2086696779; - break; - case 0: - result = true; - num = 2086696777; - break; - case 3: - num3 = 335; - num4 = (int)contentFinderConditionId; - num = (((uint)(~(~num4 + num3)) > 2u) ? 2086696780 : 2086696776); - break; - } + return true; } + return false; } } @@ -160,659 +79,20 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent get { uint contentFinderConditionId = ContentFinderConditionId; - int num = ((contentFinderConditionId == 845) ? 38467213 : 38467214); - bool result = default(bool); - while (true) + if (contentFinderConditionId == 845 || contentFinderConditionId == 1016) { - int num2 = num; - int num3 = 38467212; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 38467214; - break; - case 2: - num = ((contentFinderConditionId != 1016) ? 38467208 : 38467213); - break; - case 1: - result = true; - num = 38467215; - break; - case 3: - return result; - case 4: - result = false; - num = 38467215; - break; - } - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202E_206E_206A_206B_200E_202D_206C_202E_202E_202B_206F_200D_206E_200F_200B_206C_206D_206B_206A_200E_206D_200E_200D_206B_206A_200D_202D_202D_206A_200D_206D_202A_206B_202C_206E_206F_206A_202A_202B_202B_202E(); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1642824356)); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? (-1098257480) : (-1098257479)); - while (true) - { - int num2 = num; - int num3 = -1098257480; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -1098257479; - break; - case 1: - _200F_200F_206F_200B_206B_206C_200D_202D_200F_206D_200F_200D_202B_206C_202B_206A_202C_206A_206A_202B_202A_206B_202A_206E_206B_200C_202D_200F_206F_202E_206A_206B_206E_200F_202D_206C_206B_202A_202A_206B_202E(stringBuilder, ' '); - num = -1098257480; - break; - case 0: - _200F_200F_206F_200B_206B_206C_200D_202D_200F_206D_200F_200D_202B_206C_202B_206A_202C_206A_206A_202B_202A_206B_202A_206E_206B_200C_202D_200F_206F_202E_206A_206B_206E_200F_202D_206C_206B_202A_202A_206B_202E(stringBuilder, '}'); - return _206D_200B_206B_206C_206C_200C_202B_200F_202A_202D_206D_200D_200C_200D_202D_206C_206D_206B_206B_200C_202D_202C_206B_206C_206A_206D_206F_206A_202E_200F_206D_202D_202E_202A_200F_202C_206B_206F_206C_206A_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206E_202B_200B_200F_206D_200C_202B_202B_206F_202C_206B_202C_206B_200D_200F_206C_206F_202E_206F_200B_206E_202C_200F_206B_202D_202E_200C_206E_206E_206E_206C_202A_202A_202C_200B_206A_200E_202C_202D_200D_202E(); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-510347430)); - _206E_202E_206B_206C_206A_200E_206C_206E_200C_206B_202E_206E_200F_206B_206C_202B_206A_206A_202B_202C_202C_200F_206E_206C_206E_206F_206D_206F_206E_206F_206E_202E_202B_200B_202E_206B_202E_202D_200F_206B_202E(builder, (object)Name); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1022368391)); - _206E_202E_206B_206C_206A_200E_206C_206E_200C_206B_202E_206E_200F_206B_206C_202B_206A_206A_202B_202C_202C_200F_206E_206C_206E_206F_206D_206F_206E_206F_206E_202E_202B_200B_202E_206B_202E_202D_200F_206B_202E(builder, (object)QuestInfo); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1666070650)); - _206E_202E_206B_206C_206A_200E_206C_206E_200C_206B_202E_206E_200F_206B_206C_202B_206A_206A_202B_202C_202C_200F_206E_206C_206E_206F_206D_206F_206E_206F_206E_202E_202B_200B_202E_206B_202E_202D_200F_206B_202E(builder, (object)ContentFinderConditionData); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-273621318)); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, Index.ToString()); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-641834156)); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, EnabledByDefault.ToString()); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(743555785)); - _206E_202E_206B_206C_206A_200E_206C_206E_200C_206B_202E_206E_200F_206B_206C_202B_206A_206A_202B_202C_202C_200F_206E_206C_206E_206F_206D_206F_206E_206F_206E_202E_202B_200B_202E_206B_202E_202D_200F_206B_202E(builder, (object)Notes); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2138975577)); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, Enabled.ToString()); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1473156179)); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, Expansion.ToString()); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(149315602)); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, JournalGenreId.ToString()); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-780631629)); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, SortKey.ToString()); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-48999932)); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, ContentFinderConditionId.ToString()); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(647715754)); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, TerritoryId.ToString()); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1268757632)); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, IsLimsaStart.ToString()); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-41240036)); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, IsGridaniaStart.ToString()); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2036989188)); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, IsUldahStart.ToString()); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-306072753)); - _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(builder, IsOtherRoleQuest.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(SinglePlayerDutyInfo? other) - { - int num = (((object)this == other) ? (-884727854) : (-884727846)); - while (true) - { - int num2 = num; - int num3 = -884727845; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = -884727846; - break; - case 4: - num = ((!EqualityComparer<string[]>.Default.Equals(Notes, other.Notes)) ? (-884727856) : (-884727847)); - break; - case 10: - num = ((!_202D_202C_206D_202C_206B_206D_202C_200F_206E_200F_206F_206F_206A_202C_200C_202D_200F_206B_202D_206C_202E_202C_200F_206F_202E_202C_202E_202E_200C_200C_202C_200E_202C_202B_200C_200E_202B_206E_202C_206E_202E(EqualityContract, other.EqualityContract)) ? (-884727856) : (-884727843)); - break; - case 0: - num = ((!EqualityComparer<TerritoryData.ContentFinderConditionData>.Default.Equals(ContentFinderConditionData, other.ContentFinderConditionData)) ? (-884727856) : (-884727844)); - break; - case 5: - num = ((!EqualityComparer<IQuestInfo>.Default.Equals(QuestInfo, other.QuestInfo)) ? (-884727856) : (-884727845)); - break; - case 6: - num = ((!EqualityComparer<string>.Default.Equals(Name, other.Name)) ? (-884727856) : (-884727842)); - break; - case 1: - num = (((object)other == null) ? (-884727856) : (-884727855)); - break; - case 7: - num = ((!EqualityComparer<byte>.Default.Equals(Index, other.Index)) ? (-884727856) : (-884727853)); - break; - case 2: - return EqualityComparer<bool>.Default.Equals(Enabled, other.Enabled); - case 8: - num = ((!EqualityComparer<bool>.Default.Equals(EnabledByDefault, other.EnabledByDefault)) ? (-884727856) : (-884727841)); - break; - case 9: return true; - case 11: - return false; } + return false; } } - - bool IEquatable<SinglePlayerDutyInfo>.Equals(SinglePlayerDutyInfo? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200F_200E_206B_206A_200C_200D_206E_200C_206D_206B_200C_206E_206B_206B_200E_202A_206E_200B_200E_202C_202D_202E_202D_202C_200F_206A_200B_202E_206E_206C_206B_206F_202C_202B_202C_200F_202D_206B_202D_202C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202E_206E_206A_206B_200E_202D_206C_202E_202E_202B_206F_200D_206E_200F_200B_206C_206D_206B_206A_200E_206D_200E_200D_206B_206A_200D_202D_202D_206A_200D_206D_202A_206B_202C_206E_206F_206A_202A_202B_202B_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202B_206C_202C_202B_206E_206D_202A_206C_200C_206F_202B_202A_206F_202C_202D_206B_202C_206D_202C_202A_200F_200E_206D_200D_202A_200D_202E_202A_202E_202B_200D_200E_206C_202A_206E_200D_200D_200F_202D_206A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200F_200F_206F_200B_206B_206C_200D_202D_200F_206D_200F_200D_202B_206C_202B_206A_202C_206A_206A_202B_202A_206B_202A_206E_206B_200C_202D_200F_206F_202E_206A_206B_206E_200F_202D_206C_206B_202A_202A_206B_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206D_200B_206B_206C_206C_200C_202B_200F_202A_202D_206D_200D_200C_200D_202D_206C_206D_206B_206B_200C_202D_202C_206B_206C_206A_206D_206F_206A_202E_200F_206D_202D_202E_202A_200F_202C_206B_206F_206C_206A_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206E_202B_200B_200F_206D_200C_202B_202B_206F_202C_206B_202C_206B_200D_200F_206C_206F_202E_206F_200B_206E_202C_200F_206B_202D_202E_200C_206E_206E_206E_206C_202A_202A_202C_200B_206A_200E_202C_202D_200D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206E_202E_206B_206C_206A_200E_206C_206E_200C_206B_202E_206E_200F_206B_206C_202B_206A_206A_202B_202C_202C_200F_206E_206C_206E_206F_206D_206F_206E_206F_206E_202E_202B_200B_202E_206B_202E_202D_200F_206B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202D_202C_206D_202C_206B_206D_202C_200F_206E_200F_206F_206F_206A_202C_200C_202D_200F_206B_202D_206C_202E_202C_200F_206F_202E_202C_202E_202E_200C_200C_202C_200E_202C_202B_200C_200E_202B_206E_202C_206E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<(ElementId QuestId, byte Index, TerritoryData.ContentFinderConditionData Data), ElementId> _003C_003E9__18_0; - - public static Func<IGrouping<ElementId, (ElementId QuestId, byte Index, TerritoryData.ContentFinderConditionData Data)>, bool> _003C_003E9__18_1; - - public static Func<IGrouping<ElementId, (ElementId QuestId, byte Index, TerritoryData.ContentFinderConditionData Data)>, ElementId> _003C_003E9__18_2; - - public static Func<EClassJob, bool> _003C_003E9__18_3; - - public static Func<EClassJob, bool> _003C_003E9__18_4; - - public static Func<(ElementId QuestId, EClassJob ClassJob), ElementId> _003C_003E9__18_6; - - public static Func<(ElementId QuestId, EClassJob ClassJob), EClassJob> _003C_003E9__18_7; - - public static Func<EClassJob, EClassJob> _003C_003E9__18_8; - - public static Func<EClassJob, List<SinglePlayerDutyInfo>> _003C_003E9__18_9; - - public static Func<(ElementId QuestId, EClassJob ClassJob), ElementId> _003C_003E9__18_11; - - public static Func<IGrouping<ElementId, (ElementId QuestId, EClassJob ClassJob)>, ElementId> _003C_003E9__18_12; - - public static Func<(ElementId QuestId, EClassJob ClassJob), EClassJob> _003C_003E9__18_33; - - public static Func<IGrouping<ElementId, (ElementId QuestId, EClassJob ClassJob)>, List<EClassJob>> _003C_003E9__18_13; - - public static Func<(EClassJob ClassJob, string Name), EClassJob> _003C_003E9__18_14; - - public static Func<(EClassJob ClassJob, string Name), List<SinglePlayerDutyInfo>> _003C_003E9__18_15; - - public static Func<KeyValuePair<EAetheryteLocation, List<SinglePlayerDutyInfo>>, EAetheryteLocation> _003C_003E9__18_16; - - public static Func<SinglePlayerDutyInfo, ushort> _003C_003E9__18_34; - - public static Func<KeyValuePair<EAetheryteLocation, List<SinglePlayerDutyInfo>>, List<SinglePlayerDutyInfo>> _003C_003E9__18_17; - - public static Func<SinglePlayerDutyInfo, EExpansionVersion> _003C_003E9__18_18; - - public static Func<IGrouping<EExpansionVersion, SinglePlayerDutyInfo>, EExpansionVersion> _003C_003E9__18_19; - - public static Func<SinglePlayerDutyInfo, uint> _003C_003E9__18_35; - - public static Func<SinglePlayerDutyInfo, ushort> _003C_003E9__18_36; - - public static Func<SinglePlayerDutyInfo, byte> _003C_003E9__18_37; - - public static Func<IGrouping<EExpansionVersion, SinglePlayerDutyInfo>, List<SinglePlayerDutyInfo>> _003C_003E9__18_20; - - public static Func<KeyValuePair<EClassJob, List<SinglePlayerDutyInfo>>, bool> _003C_003E9__18_21; - - public static Func<KeyValuePair<EClassJob, List<SinglePlayerDutyInfo>>, EClassJob> _003C_003E9__18_22; - - public static Func<SinglePlayerDutyInfo, uint> _003C_003E9__18_38; - - public static Func<SinglePlayerDutyInfo, uint> _003C_003E9__18_39; - - public static Func<SinglePlayerDutyInfo, ushort> _003C_003E9__18_40; - - public static Func<SinglePlayerDutyInfo, byte> _003C_003E9__18_41; - - public static Func<KeyValuePair<EClassJob, List<SinglePlayerDutyInfo>>, List<SinglePlayerDutyInfo>> _003C_003E9__18_23; - - public static Func<KeyValuePair<EClassJob, List<SinglePlayerDutyInfo>>, EClassJob> _003C_003E9__18_24; - - public static Func<SinglePlayerDutyInfo, uint> _003C_003E9__18_42; - - public static Func<SinglePlayerDutyInfo, ushort> _003C_003E9__18_43; - - public static Func<SinglePlayerDutyInfo, byte> _003C_003E9__18_44; - - public static Func<KeyValuePair<EClassJob, List<SinglePlayerDutyInfo>>, List<SinglePlayerDutyInfo>> _003C_003E9__18_25; - - public static Func<SinglePlayerDutyInfo, uint> _003C_003E9__18_26; - - public static Func<SinglePlayerDutyInfo, ushort> _003C_003E9__18_27; - - public static Func<SinglePlayerDutyInfo, byte> _003C_003E9__18_28; - - public static Func<SinglePlayerDutyInfo, uint> _003C_003E9__18_29; - - public static Func<(QuestSequence Sequence, int StepId, QuestStep Step), QuestStep> _003C_003E9__19_0; - - public static Func<List<SinglePlayerDutyInfo>, IEnumerable<SinglePlayerDutyInfo>> _003C_003E9__30_0; - - public static Func<List<SinglePlayerDutyInfo>, IEnumerable<SinglePlayerDutyInfo>> _003C_003E9__30_1; - - public static Func<List<SinglePlayerDutyInfo>, IEnumerable<SinglePlayerDutyInfo>> _003C_003E9__30_2; - - public static Func<List<SinglePlayerDutyInfo>, IEnumerable<SinglePlayerDutyInfo>> _003C_003E9__30_3; - - public static Func<(string Label, List<SinglePlayerDutyInfo>), IEnumerable<SinglePlayerDutyInfo>> _003C_003E9__30_4; - - public static Func<SinglePlayerDutyInfo, bool> _003C_003E9__30_5; - - internal ElementId _003CReload_003Eb__18_0((ElementId QuestId, byte Index, TerritoryData.ContentFinderConditionData Data) x) - { - return x.QuestId; - } - - internal bool _003CReload_003Eb__18_1(IGrouping<ElementId, (ElementId QuestId, byte Index, TerritoryData.ContentFinderConditionData Data)> x) - { - return x.Count() > 1; - } - - internal ElementId _003CReload_003Eb__18_2(IGrouping<ElementId, (ElementId QuestId, byte Index, TerritoryData.ContentFinderConditionData Data)> x) - { - return x.Key; - } - - internal bool _003CReload_003Eb__18_3(EClassJob x) - { - int num = ((x == EClassJob.Adventurer) ? (-669783748) : (-669783746)); - while (true) - { - int num2 = num; - int num3 = -669783747; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -669783746; - break; - case 3: - num = (_206D_202D_202A_200D_202D_206F_202C_206A_206E_200D_202E_202A_206C_200D_202B_200D_202A_206C_202B_206F_202D_206C_202B_206F_206C_202A_202B_206C_202C_200E_202D_206D_206E_200C_202D_206F_206A_202D_206E_202E(x) ? (-669783748) : (-669783747)); - break; - case 1: - return false; - case 0: - return !_202B_200B_206B_200C_202C_202C_200B_206D_200D_202B_206C_202D_202B_206D_206A_206E_206F_206A_200E_200F_202C_200E_202C_200B_202E_206E_202E_200B_200B_202C_200E_206D_202D_202B_202E_200E_206E_206E_206A_202C_202E(x); - } - } - } - - internal bool _003CReload_003Eb__18_4(EClassJob x) - { - int num = (_200C_206E_202D_202A_206C_206B_206A_206D_202D_202C_200C_206A_206A_206E_202D_200D_206C_202D_200F_206A_206F_206C_202B_202D_206E_206F_202C_206E_200F_206A_202B_200C_206D_202B_202D_206B_202D_202B_202E_202A_202E(x) ? 1636109059 : 1636109056); - while (true) - { - int num2 = num; - int num3 = 1636109058; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return true; - case 2: - return !_202E_200E_202A_206F_206A_202D_206E_206A_200E_202A_200B_206E_206F_202D_202D_206A_202E_202C_202C_200E_206B_206D_202C_202E_200F_202E_206F_206B_202B_206B_200E_206D_202C_206C_202D_206C_202D_206E_202E_202A_202E(x); - case 0: - goto IL_0052; - } - continue; - IL_0052: - num = 1636109056; - } - } - - internal ElementId _003CReload_003Eb__18_6((ElementId QuestId, EClassJob ClassJob) x) - { - return x.QuestId; - } - - internal EClassJob _003CReload_003Eb__18_7((ElementId QuestId, EClassJob ClassJob) x) - { - return x.ClassJob; - } - - internal EClassJob _003CReload_003Eb__18_8(EClassJob x) - { - return x; - } - - internal List<SinglePlayerDutyInfo> _003CReload_003Eb__18_9(EClassJob _) - { - return new List<SinglePlayerDutyInfo>(); - } - - internal ElementId _003CReload_003Eb__18_11((ElementId QuestId, EClassJob ClassJob) x) - { - return x.QuestId; - } - - internal ElementId _003CReload_003Eb__18_12(IGrouping<ElementId, (ElementId QuestId, EClassJob ClassJob)> x) - { - return x.Key; - } - - internal List<EClassJob> _003CReload_003Eb__18_13(IGrouping<ElementId, (ElementId QuestId, EClassJob ClassJob)> x) - { - return x.Select(((ElementId QuestId, EClassJob ClassJob) y) => y.ClassJob).ToList(); - } - - internal EClassJob _003CReload_003Eb__18_33((ElementId QuestId, EClassJob ClassJob) y) - { - return y.ClassJob; - } - - internal EClassJob _003CReload_003Eb__18_14((EClassJob ClassJob, string Name) x) - { - return x.ClassJob; - } - - internal List<SinglePlayerDutyInfo> _003CReload_003Eb__18_15((EClassJob ClassJob, string Name) _) - { - return new List<SinglePlayerDutyInfo>(); - } - - internal EAetheryteLocation _003CReload_003Eb__18_16(KeyValuePair<EAetheryteLocation, List<SinglePlayerDutyInfo>> x) - { - return x.Key; - } - - internal List<SinglePlayerDutyInfo> _003CReload_003Eb__18_17(KeyValuePair<EAetheryteLocation, List<SinglePlayerDutyInfo>> x) - { - return x.Value.OrderBy((SinglePlayerDutyInfo y) => y.SortKey).ToList(); - } - - internal ushort _003CReload_003Eb__18_34(SinglePlayerDutyInfo y) - { - return y.SortKey; - } - - internal EExpansionVersion _003CReload_003Eb__18_18(SinglePlayerDutyInfo x) - { - return x.Expansion; - } - - internal EExpansionVersion _003CReload_003Eb__18_19(IGrouping<EExpansionVersion, SinglePlayerDutyInfo> x) - { - return x.Key; - } - - internal List<SinglePlayerDutyInfo> _003CReload_003Eb__18_20(IGrouping<EExpansionVersion, SinglePlayerDutyInfo> x) - { - return (from y in x - orderby y.JournalGenreId, y.SortKey, y.Index - select y).ToList(); - } - - internal uint _003CReload_003Eb__18_35(SinglePlayerDutyInfo y) - { - return y.JournalGenreId; - } - - internal ushort _003CReload_003Eb__18_36(SinglePlayerDutyInfo y) - { - return y.SortKey; - } - - internal byte _003CReload_003Eb__18_37(SinglePlayerDutyInfo y) - { - return y.Index; - } - - internal bool _003CReload_003Eb__18_21(KeyValuePair<EClassJob, List<SinglePlayerDutyInfo>> x) - { - return x.Value.Count > 0; - } - - internal EClassJob _003CReload_003Eb__18_22(KeyValuePair<EClassJob, List<SinglePlayerDutyInfo>> x) - { - return x.Key; - } - - internal List<SinglePlayerDutyInfo> _003CReload_003Eb__18_23(KeyValuePair<EClassJob, List<SinglePlayerDutyInfo>> x) - { - return (from y in x.Value.DistinctBy((SinglePlayerDutyInfo y) => y.ContentFinderConditionId) - orderby y.JournalGenreId, y.SortKey, y.Index - select y).ToList(); - } - - internal uint _003CReload_003Eb__18_38(SinglePlayerDutyInfo y) - { - return y.ContentFinderConditionId; - } - - internal uint _003CReload_003Eb__18_39(SinglePlayerDutyInfo y) - { - return y.JournalGenreId; - } - - internal ushort _003CReload_003Eb__18_40(SinglePlayerDutyInfo y) - { - return y.SortKey; - } - - internal byte _003CReload_003Eb__18_41(SinglePlayerDutyInfo y) - { - return y.Index; - } - - internal EClassJob _003CReload_003Eb__18_24(KeyValuePair<EClassJob, List<SinglePlayerDutyInfo>> x) - { - return x.Key; - } - - internal List<SinglePlayerDutyInfo> _003CReload_003Eb__18_25(KeyValuePair<EClassJob, List<SinglePlayerDutyInfo>> x) - { - return (from y in x.Value - orderby y.JournalGenreId, y.SortKey, y.Index - select y).ToList(); - } - - internal uint _003CReload_003Eb__18_42(SinglePlayerDutyInfo y) - { - return y.JournalGenreId; - } - - internal ushort _003CReload_003Eb__18_43(SinglePlayerDutyInfo y) - { - return y.SortKey; - } - - internal byte _003CReload_003Eb__18_44(SinglePlayerDutyInfo y) - { - return y.Index; - } - - internal uint _003CReload_003Eb__18_26(SinglePlayerDutyInfo x) - { - return x.JournalGenreId; - } - - internal ushort _003CReload_003Eb__18_27(SinglePlayerDutyInfo x) - { - return x.SortKey; - } - - internal byte _003CReload_003Eb__18_28(SinglePlayerDutyInfo x) - { - return x.Index; - } - - internal uint _003CReload_003Eb__18_29(SinglePlayerDutyInfo x) - { - return x.JournalGenreId; - } - - internal QuestStep _003CFindDutyOptions_003Eb__19_0((QuestSequence Sequence, int StepId, QuestStep Step) x) - { - return x.Step; - } - - internal IEnumerable<SinglePlayerDutyInfo> _003CGetAllEnabledSinglePlayerDuties_003Eb__30_0(List<SinglePlayerDutyInfo> x) - { - return x; - } - - internal IEnumerable<SinglePlayerDutyInfo> _003CGetAllEnabledSinglePlayerDuties_003Eb__30_1(List<SinglePlayerDutyInfo> x) - { - return x; - } - - internal IEnumerable<SinglePlayerDutyInfo> _003CGetAllEnabledSinglePlayerDuties_003Eb__30_2(List<SinglePlayerDutyInfo> x) - { - return x; - } - - internal IEnumerable<SinglePlayerDutyInfo> _003CGetAllEnabledSinglePlayerDuties_003Eb__30_3(List<SinglePlayerDutyInfo> x) - { - return x; - } - - internal IEnumerable<SinglePlayerDutyInfo> _003CGetAllEnabledSinglePlayerDuties_003Eb__30_4((string Label, List<SinglePlayerDutyInfo>) x) - { - return x.Item2; - } - - internal bool _003CGetAllEnabledSinglePlayerDuties_003Eb__30_5(SinglePlayerDutyInfo x) - { - return x.Enabled; - } - - static bool _206D_202D_202A_200D_202D_206F_202C_206A_206E_200D_202E_202A_206C_200D_202B_200D_202A_206C_202B_206F_202D_206C_202B_206F_206C_202A_202B_206C_202C_200E_202D_206D_206E_200C_202D_206F_206A_202D_206E_202E(EClassJob P_0) - { - return P_0.IsCrafter(); - } - - static bool _202B_200B_206B_200C_202C_202C_200B_206D_200D_202B_206C_202D_202B_206D_206A_206E_206F_206A_200E_200F_202C_200E_202C_200B_202E_206E_202E_200B_200B_202C_200E_206D_202D_202B_202E_200E_206E_206E_206A_202C_202E(EClassJob P_0) - { - return P_0.IsGatherer(); - } - - static bool _200C_206E_202D_202A_206C_206B_206A_206D_202D_202C_200C_206A_206A_206E_202D_200D_206C_202D_200F_206A_206F_206C_202B_202D_206E_206F_202C_206E_200F_206A_202B_200C_206D_202B_202D_206B_202D_202B_202E_202A_202E(EClassJob P_0) - { - return P_0.IsClass(); - } - - static bool _202E_200E_202A_206F_206A_202D_206E_206A_200E_202A_200B_206E_206F_202D_202D_206A_202E_202C_202C_200E_206B_206D_202C_202E_200F_202E_206F_206B_202B_206B_200E_206D_202C_206C_202D_206C_202D_206E_202E_202A_202E(EClassJob P_0) - { - return P_0.HasBaseClass(); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass19_0 - { - public byte index; - - internal bool _003CFindDutyOptions_003Eb__1(QuestStep x) - { - int num = ((_202A_200E_200E_206A_200E_200D_202C_200D_200E_206B_206D_206E_206B_202D_206C_206A_202A_200F_206A_200C_200B_200E_206C_200D_206B_200F_202E_202B_202D_206A_202B_202B_200B_202A_200D_200D_202E_202E_200F_206B_202E(x) != EInteractionType.SinglePlayerDuty) ? (-482062610) : (-482062609)); - while (true) - { - int num2 = num; - int num3 = -482062610; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0048; - case 1: - return _200E_200B_206B_206B_202B_206A_206B_200C_206C_202B_202E_206A_200B_202C_206B_200F_202D_206F_206B_206E_206F_206B_200E_206E_202A_200B_206F_200E_206E_200F_202B_200E_202C_200D_200B_200C_200F_202A_206D_202B_202E(x) == index; - case 0: - return false; - } - continue; - IL_0048: - num = -482062609; - } - } - - internal bool _003CFindDutyOptions_003Eb__2(SinglePlayerDutyEntry e) - { - return e.Index == index; - } - - static EInteractionType _202A_200E_200E_206A_200E_200D_202C_200D_200E_206B_206D_206E_206B_202D_206C_206A_202A_200F_206A_200C_200B_200E_206C_200D_206B_200F_202E_202B_202D_206A_202B_202B_200B_202A_200D_200D_202E_202E_200F_206B_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static byte _200E_200B_206B_206B_202B_206A_206B_200C_206C_202B_202E_206A_200B_202C_206B_200F_202D_206F_206B_206E_206F_206B_200E_206E_202A_200B_206F_200E_206E_200F_202B_200E_202C_200D_200B_200C_200F_202A_206D_202B_202E(QuestStep P_0) - { - return P_0.SinglePlayerDutyIndex; - } } private const string SinglePlayerDutyClipboardPrefix = "qst:single:"; private static readonly List<(EClassJob ClassJob, string Name)> RoleQuestCategories; - private readonly string[] _retryDifficulties = new string[3] - { - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1135623481), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(466989143), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-673826834) - }; + private readonly string[] _retryDifficulties = new string[3] { "Normal", "Easy", "Very Easy" }; private readonly TerritoryData _territoryData; @@ -842,7 +122,6 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent private int _selectedTab; - [MethodImpl(MethodImplOptions.NoInlining)] public SinglePlayerDutyConfigComponent(IDalamudPluginInterface pluginInterface, Configuration configuration, TerritoryData territoryData, QuestRegistry questRegistry, QuestData questData, IDataManager dataManager, ClassJobUtils classJobUtils, ILogger<SinglePlayerDutyConfigComponent> logger) : base(pluginInterface, configuration) { @@ -858,7 +137,6 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent }; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Reload() { List<ElementId> list = (from x in _territoryData.GetAllQuestsWithQuestBattles() @@ -882,231 +160,81 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent } }; List<SinglePlayerDutyInfo> list3 = new List<SinglePlayerDutyInfo>(); - Dictionary<ElementId, EClassJob> dictionary2 = Enum.GetValues<EClassJob>().Where(delegate(EClassJob x) - { - int num11 = ((x == EClassJob.Adventurer) ? (-669783748) : (-669783746)); - while (true) - { - int num12 = num11; - int num13 = -669783747; - int num14 = num12; - int num15 = num14 + num13; - int num16 = num14 & num13; - switch (num15 - (num16 + num16)) - { - case 2: - num11 = -669783746; - break; - case 3: - num11 = (_003C_003Ec._206D_202D_202A_200D_202D_206F_202C_206A_206E_200D_202E_202A_206C_200D_202B_200D_202A_206C_202B_206F_202D_206C_202B_206F_206C_202A_202B_206C_202C_200E_202D_206D_206E_200C_202D_206F_206A_202D_206E_202E(x) ? (-669783748) : (-669783747)); - break; - case 1: - return false; - case 0: - return !_003C_003Ec._202B_200B_206B_200C_202C_202C_200B_206D_200D_202B_206C_202D_202B_206D_206A_206E_206F_206A_200E_200F_202C_200E_202C_200B_202E_206E_202E_200B_200B_202C_200E_206D_202D_202B_202E_200E_206E_206E_206A_202C_202E(x); - } - } - }).Where(delegate(EClassJob x) - { - int num11 = (_003C_003Ec._200C_206E_202D_202A_206C_206B_206A_206D_202D_202C_200C_206A_206A_206E_202D_200D_206C_202D_200F_206A_206F_206C_202B_202D_206E_206F_202C_206E_200F_206A_202B_200C_206D_202B_202D_206B_202D_202B_202E_202A_202E(x) ? 1636109059 : 1636109056); - while (true) - { - int num12 = num11; - int num13 = 1636109058; - int num14 = num12; - switch ((num14 | num13) - (num14 & num13)) - { - case 1: - return true; - case 2: - return !_003C_003Ec._202E_200E_202A_206F_206A_202D_206E_206A_200E_202A_200B_206E_206F_202D_202D_206A_202E_202C_202C_200E_206B_206D_202C_202E_200F_202E_206F_206B_202B_206B_200E_206D_202C_206C_202D_206C_202D_206E_202E_202A_202E(x); - case 0: - goto IL_0052; - } - continue; - IL_0052: - num11 = 1636109056; - } - }) - .SelectMany((EClassJob x) => from y in _questRegistry.GetKnownClassJobQuests(x, includeRoleQuests: false) - select (QuestId: y.QuestId, ClassJob: x)) - .ToDictionary<(ElementId, EClassJob), ElementId, EClassJob>(((ElementId QuestId, EClassJob ClassJob) x) => x.QuestId, ((ElementId QuestId, EClassJob ClassJob) x) => x.ClassJob); + Dictionary<ElementId, EClassJob> dictionary2 = (from x in Enum.GetValues<EClassJob>() + where x != EClassJob.Adventurer && !x.IsCrafter() && !x.IsGatherer() + where x.IsClass() || !x.HasBaseClass() + select x).SelectMany((EClassJob x) => from y in _questRegistry.GetKnownClassJobQuests(x, includeRoleQuests: false) + select (QuestId: y.QuestId, ClassJob: x)).ToDictionary<(ElementId, EClassJob), ElementId, EClassJob>(((ElementId QuestId, EClassJob ClassJob) x) => x.QuestId, ((ElementId QuestId, EClassJob ClassJob) x) => x.ClassJob); Dictionary<EClassJob, List<SinglePlayerDutyInfo>> dictionary3 = dictionary2.Values.Distinct().ToDictionary((EClassJob x) => x, (EClassJob _) => new List<SinglePlayerDutyInfo>()); Dictionary<ElementId, List<EClassJob>> dictionary4 = (from x in RoleQuestCategories.SelectMany<(EClassJob, string), (ElementId, EClassJob)>(((EClassJob ClassJob, string Name) x) => from y in _questData.GetRoleQuests(x.ClassJob) select (QuestId: y.QuestId, ClassJob: x.ClassJob)) group x by x.QuestId).ToDictionary((IGrouping<ElementId, (ElementId QuestId, EClassJob ClassJob)> x) => x.Key, (IGrouping<ElementId, (ElementId QuestId, EClassJob ClassJob)> x) => x.Select(((ElementId QuestId, EClassJob ClassJob) y) => y.ClassJob).ToList()); Dictionary<EClassJob, List<SinglePlayerDutyInfo>> dictionary5 = RoleQuestCategories.ToDictionary<(EClassJob, string), EClassJob, List<SinglePlayerDutyInfo>>(((EClassJob ClassJob, string Name) x) => x.ClassJob, ((EClassJob ClassJob, string Name) _) => new List<SinglePlayerDutyInfo>()); List<SinglePlayerDutyInfo> list4 = new List<SinglePlayerDutyInfo>(); - IEnumerator<(ElementId, byte, TerritoryData.ContentFinderConditionData)> enumerator = _territoryData.GetAllQuestsWithQuestBattles().GetEnumerator(); - try + foreach (var allQuestsWithQuestBattle in _territoryData.GetAllQuestsWithQuestBattles()) { - SinglePlayerDutyInfo singlePlayerDutyInfo = default(SinglePlayerDutyInfo); - while (true) + ElementId item = allQuestsWithQuestBattle.QuestId; + byte item2 = allQuestsWithQuestBattle.Index; + TerritoryData.ContentFinderConditionData item3 = allQuestsWithQuestBattle.Data; + IQuestInfo questInfo = _questData.GetQuestInfo(item); + (bool QuestExists, bool EnabledByDefault, byte Index, string[] Notes) tuple = FindDutyOptions(item, item2); + bool item4 = tuple.QuestExists; + bool item5 = tuple.EnabledByDefault; + string[] item6 = tuple.Notes; + string text = ConfigComponent.FormatLevel(questInfo.Level) + " " + questInfo.Name; + if (!string.IsNullOrEmpty(item3.Name) && !questInfo.Name.EndsWith(item3.Name, StringComparison.Ordinal)) { - IL_0617: - int num3; - if (_202D_206B_206B_200D_202A_206F_202C_202A_202E_206B_202E_206B_200B_202A_200B_202D_206D_202E_206E_202D_202E_206A_200D_206E_200D_206A_200E_200B_200C_202B_206B_200E_202C_202D_202D_200D_206B_206A_202D_200F_202E((IEnumerator)enumerator)) - { - (ElementId, byte, TerritoryData.ContentFinderConditionData) current = enumerator.Current; - ElementId item = current.Item1; - byte item2 = current.Item2; - TerritoryData.ContentFinderConditionData item3 = current.Item3; - IQuestInfo questInfo = _questData.GetQuestInfo(item); - (bool QuestExists, bool EnabledByDefault, byte Index, string[] Notes) tuple = FindDutyOptions(item, item2); - bool item4 = tuple.QuestExists; - bool item5 = tuple.EnabledByDefault; - string[] item6 = tuple.Notes; - string text = _206B_200B_202D_206F_206F_206B_202C_202C_200D_200C_206D_206B_202E_200E_206B_206F_202B_200D_202E_206A_200E_200B_202E_206C_206B_202D_202C_206E_200B_202D_202A_200B_202A_206F_206D_202A_200B_206D_202B_202A_202E(ConfigComponent.FormatLevel(questInfo.Level), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-324914973), questInfo.Name); - if (!_200C_206D_200F_202D_202B_202D_206D_206C_202C_202E_202A_202B_200E_200D_200B_200B_202A_206F_206B_202E_200C_202A_200B_206E_206C_202B_200E_206B_206C_202C_206F_206F_202B_206B_206B_206B_202B_206F_202E_200E_202E(item3.Name) && !_200B_202D_206F_200D_206A_200E_202E_202D_202C_206A_202C_206A_206D_206F_202E_200D_202E_200B_206F_200C_200C_202D_202A_200C_206E_202A_202D_200F_206A_202C_206F_202C_202B_202B_206F_200C_202D_206D_202C_200F_202E(questInfo.Name, item3.Name, StringComparison.Ordinal)) - { - text = _200E_200C_200C_206E_200E_200C_200C_206B_206D_202A_206C_200B_202B_202B_202B_202A_202C_206C_200B_206B_200E_202E_206D_206E_206F_206D_200C_200F_200E_206B_200F_200F_202C_206D_202A_206F_206C_206A_200C_206B_202E(text, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(588901087), item3.Name, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - } - if (list.Contains(item)) - { - string text2 = text; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(8, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-394042080)); - int num = 1; - int num2 = item2; - defaultInterpolatedStringHandler.AppendFormatted((num2 | num) + (num2 & num)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - text = _200B_200E_202B_200C_202A_200E_202E_202E_202B_202E_206D_202B_206F_200E_202C_202E_206C_206A_200B_200B_202D_202E_200D_200B_200F_202C_206D_206A_206B_206C_200B_202C_200F_202B_206C_202A_202A_202B_202A_206B_202E(text2, defaultInterpolatedStringHandler.ToStringAndClear()); - } - else - { - uint contentFinderConditionId = item3.ContentFinderConditionId; - if ((contentFinderConditionId == 674 || contentFinderConditionId == 691) ? true : false) - { - text = _200B_200E_202B_200C_202A_200E_202E_202E_202B_202E_206D_202B_206F_200E_202C_202E_206C_206A_200B_200B_202D_202E_200D_200B_200F_202C_206D_206A_206B_206C_200B_202C_200F_202B_206C_202A_202A_202B_202A_206B_202E(text, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1402602553)); - } - } - singlePlayerDutyInfo = new SinglePlayerDutyInfo(text, questInfo, item3, item2, item5, item6, item4); - if (singlePlayerDutyInfo.IsLimsaStart) - { - dictionary[EAetheryteLocation.Limsa].Add(singlePlayerDutyInfo); - continue; - } - if (singlePlayerDutyInfo.IsGridaniaStart) - { - dictionary[EAetheryteLocation.Gridania].Add(singlePlayerDutyInfo); - continue; - } - if (singlePlayerDutyInfo.IsUldahStart) - { - dictionary[EAetheryteLocation.Uldah].Add(singlePlayerDutyInfo); - continue; - } - if (questInfo.IsMainScenarioQuest) - { - list2.Add(singlePlayerDutyInfo); - continue; - } - if (dictionary2.TryGetValue(item, out var value)) - { - dictionary3[value].Add(singlePlayerDutyInfo); - continue; - } - if (dictionary4.TryGetValue(item, out var value2)) - { - using (List<EClassJob>.Enumerator enumerator2 = value2.GetEnumerator()) - { - num3 = 328955790; - while (true) - { - int num4 = num3; - int num = 328955788; - int num2 = num4; - int num5 = num2 + num; - int num6 = num2 & num; - switch (num5 - (num6 + num6)) - { - case 0: - num3 = 328955790; - break; - case 2: - num3 = (enumerator2.MoveNext() ? 328955791 : 328955789); - break; - case 3: - { - EClassJob current2 = enumerator2.Current; - dictionary5[current2].Add(singlePlayerDutyInfo); - num3 = 328955790; - break; - } - case 1: - goto end_IL_04fc; - } - continue; - end_IL_04fc: - break; - } - } - continue; - } - num3 = ((!singlePlayerDutyInfo.IsOtherRoleQuest) ? 2040971182 : 2040971183); - } - else - { - num3 = 2040971180; - } - while (true) - { - int num7 = num3; - int num = 2040971180; - int num2 = num7; - switch ((num2 | num) - (num2 & num)) - { - default: - continue; - case 2: - list3.Add(singlePlayerDutyInfo); - num3 = 2040971181; - continue; - case 3: - list4.Add(singlePlayerDutyInfo); - num3 = 2040971181; - continue; - case 1: - break; - case 4: - num3 = 2040971183; - continue; - case 0: - goto end_IL_05ba; - } - goto IL_0617; - continue; - end_IL_05ba: - break; - } - break; + text = text + " (" + item3.Name + ")"; } - } - finally - { - int num3 = ((enumerator == null) ? (-503752894) : (-503752895)); - while (true) + if (list.Contains(item)) { - int num8 = num3; - int num = -503752893; - int num2 = num8; - int num9 = num2 + num; - int num10 = num2 & num; - switch (num9 - (num10 + num10)) + text += $" (Part {item2 + 1})"; + } + else + { + uint contentFinderConditionId = item3.ContentFinderConditionId; + if ((contentFinderConditionId == 674 || contentFinderConditionId == 691) ? true : false) { - case 0: - num3 = -503752895; - break; - case 1: - goto end_IL_065f; - case 2: - _200E_200D_206F_202C_200D_200F_206D_206C_200B_200E_200E_202E_202E_202A_206C_200E_202E_200F_200B_202B_200D_206B_206F_206C_206C_202C_202C_206D_206E_200F_200B_200F_202A_206B_202D_206C_202C_200B_200B_200F_202E((IDisposable)enumerator); - num3 = -503752894; - break; + text += " (Melee/Phys. Ranged)"; } - continue; - end_IL_065f: - break; + } + SinglePlayerDutyInfo singlePlayerDutyInfo = new SinglePlayerDutyInfo(text, questInfo, item3, item2, item5, item6, item4); + EClassJob value; + List<EClassJob> value2; + if (singlePlayerDutyInfo.IsLimsaStart) + { + dictionary[EAetheryteLocation.Limsa].Add(singlePlayerDutyInfo); + } + else if (singlePlayerDutyInfo.IsGridaniaStart) + { + dictionary[EAetheryteLocation.Gridania].Add(singlePlayerDutyInfo); + } + else if (singlePlayerDutyInfo.IsUldahStart) + { + dictionary[EAetheryteLocation.Uldah].Add(singlePlayerDutyInfo); + } + else if (questInfo.IsMainScenarioQuest) + { + list2.Add(singlePlayerDutyInfo); + } + else if (dictionary2.TryGetValue(item, out value)) + { + dictionary3[value].Add(singlePlayerDutyInfo); + } + else if (dictionary4.TryGetValue(item, out value2)) + { + foreach (EClassJob item7 in value2) + { + dictionary5[item7].Add(singlePlayerDutyInfo); + } + } + else if (singlePlayerDutyInfo.IsOtherRoleQuest) + { + list4.Add(singlePlayerDutyInfo); + } + else + { + list3.Add(singlePlayerDutyInfo); } } _startingCityBattles = dictionary.ToImmutableDictionary((KeyValuePair<EAetheryteLocation, List<SinglePlayerDutyInfo>> x) => x.Key, (KeyValuePair<EAetheryteLocation, List<SinglePlayerDutyInfo>> x) => x.Value.OrderBy((SinglePlayerDutyInfo y) => y.SortKey).ToList()); @@ -1127,899 +255,288 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent select (BuildJournalGenreLabel(x.Key), x.ToList())).ToImmutableList(); } - [MethodImpl(MethodImplOptions.NoInlining)] private (bool QuestExists, bool EnabledByDefault, byte Index, string[] Notes) FindDutyOptions(ElementId questId, byte index) { - Questionable.Model.Quest quest; - int num = (_questRegistry.TryGetQuest(questId, out quest) ? (-2063264622) : (-2063264611)); - QuestId questId2 = default(QuestId); - SinglePlayerDutyEntry singlePlayerDutyEntry = default(SinglePlayerDutyEntry); - SinglePlayerDutyEntry[] value = default(SinglePlayerDutyEntry[]); - bool item = default(bool); - string[] item2 = default(string[]); - while (true) + if (!_questRegistry.TryGetQuest(questId, out Questionable.Model.Quest quest)) { - int num2 = num; - int num3 = -2063264616; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num7; - ushort key; - switch (num5 - (num6 + num6)) + _logger.LogDebug("Disabling quest battle for quest {QuestId}, unknown quest", questId); + return (QuestExists: false, EnabledByDefault: false, Index: index, Notes: Array.Empty<string>()); + } + if (quest.Root.Disabled) + { + _logger.LogDebug("Disabling quest battle for quest {QuestId}, quest is disabled", questId); + return (QuestExists: false, EnabledByDefault: false, Index: index, Notes: Array.Empty<string>()); + } + if ((from x in quest.AllSteps() + select x.Step).FirstOrDefault((QuestStep x) => x.InteractionType == EInteractionType.SinglePlayerDuty && x.SinglePlayerDutyIndex == index) == null) + { + _logger.LogWarning("Disabling quest battle for quest {QuestId}, no battle with index {Index} found", questId, index); + return (QuestExists: false, EnabledByDefault: false, Index: index, Notes: Array.Empty<string>()); + } + ushort key = (ushort)((questId is QuestId questId2) ? questId2.Value : 0); + bool item = false; + string[] item2 = Array.Empty<string>(); + if (DutyRegistry.SinglePlayerDuties.TryGetValue(key, out SinglePlayerDutyEntry[] value)) + { + SinglePlayerDutyEntry singlePlayerDutyEntry = value.FirstOrDefault((SinglePlayerDutyEntry e) => e.Index == index); + if (singlePlayerDutyEntry != null) { - case 2: - _206D_206E_202D_202E_206D_206E_200F_202D_206B_206E_202E_200D_206F_200D_200F_200C_206D_202B_200E_206B_200E_202C_206B_202C_200F_206D_206F_206F_206E_200D_206E_202B_206C_200C_200D_202B_206E_200D_202D_202D_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-97214950), new object[1] { questId }); - return (QuestExists: false, EnabledByDefault: false, Index: index, Notes: Array.Empty<string>()); - case 8: - questId2 = questId as QuestId; - num = (((object)questId2 != null) ? (-2063264613) : (-2063264621)); - break; - case 9: - num = (((from x in quest.AllSteps() - select x.Step).FirstOrDefault(delegate(QuestStep x) - { - int num8 = ((_003C_003Ec__DisplayClass19_0._202A_200E_200E_206A_200E_200D_202C_200D_200E_206B_206D_206E_206B_202D_206C_206A_202A_200F_206A_200C_200B_200E_206C_200D_206B_200F_202E_202B_202D_206A_202B_202B_200B_202A_200D_200D_202E_202E_200F_206B_202E(x) != EInteractionType.SinglePlayerDuty) ? (-482062610) : (-482062609)); - while (true) - { - int num9 = num8; - int num10 = -482062610; - int num11 = num9; - switch ((num11 | num10) - (num11 & num10)) - { - case 2: - goto IL_0048; - case 1: - return _003C_003Ec__DisplayClass19_0._200E_200B_206B_206B_202B_206A_206B_200C_206C_202B_202E_206A_200B_202C_206B_200F_202D_206F_206B_206E_206F_206B_200E_206E_202A_200B_206F_200E_206E_200F_202B_200E_202C_200D_200B_200C_200F_202A_206D_202B_202E(x) == index; - case 0: - return false; - } - continue; - IL_0048: - num8 = -482062609; - } - }) != null) ? (-2063264624) : (-2063264615)); - break; - case 4: - num = -2063264611; - break; - case 3: - num7 = _202D_202C_206F_206C_202D_200D_200C_202C_206B_206E_206D_206A_200F_206F_202D_206E_206A_206C_202B_200E_200B_206E_206E_200C_202B_200C_200E_206E_206B_206E_202B_202A_206A_200D_206D_200F_202B_202B_202D_200D_202E((ElementId)questId2); - goto IL_014e; - case 6: - singlePlayerDutyEntry = value.FirstOrDefault((SinglePlayerDutyEntry e) => e.Index == index); - num = ((!(singlePlayerDutyEntry != null)) ? (-2063264609) : (-2063264616)); - break; - case 11: - num7 = 0; - goto IL_014e; - case 7: - return (QuestExists: true, EnabledByDefault: item, Index: index, Notes: item2); - case 5: - _206D_206E_202D_202E_206D_206E_200F_202D_206B_206E_202E_200D_206F_200D_200F_200C_206D_202B_200E_206B_200E_202C_206B_202C_200F_206D_206F_206F_206E_200D_206E_202B_206C_200C_200D_202B_206E_200D_202D_202D_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1940899937), new object[1] { questId }); - return (QuestExists: false, EnabledByDefault: false, Index: index, Notes: Array.Empty<string>()); - case 0: item = singlePlayerDutyEntry.Enabled; item2 = singlePlayerDutyEntry.Notes; - num = -2063264609; - break; - case 1: - _202E_202A_202C_200F_206F_200B_206D_206C_202A_202E_200C_206D_200D_202C_206C_200B_206F_202D_206E_200D_200B_202B_202C_200E_206C_202C_200E_206E_206B_206A_200F_202E_206B_202E_200E_202E_200F_206A_206E_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1989143781), new object[2] { questId, index }); - return (QuestExists: false, EnabledByDefault: false, Index: index, Notes: Array.Empty<string>()); - case 10: - { - num = ((!_202E_202C_200D_200E_206F_202B_200E_200C_200C_202E_206F_206D_202D_200B_200F_206F_202A_200C_200E_206F_200E_200F_200F_200B_200C_206C_206F_202D_206E_200C_200F_202A_202A_202B_206B_206A_206F_206F_202B_206A_202E(quest.Root)) ? (-2063264623) : (-2063264614)); - break; - } - IL_014e: - key = (ushort)num7; - item = false; - item2 = Array.Empty<string>(); - num = ((!DutyRegistry.SinglePlayerDuties.TryGetValue(key, out value)) ? (-2063264609) : (-2063264610)); - break; } } + return (QuestExists: true, EnabledByDefault: item, Index: index, Notes: item2); } - [MethodImpl(MethodImplOptions.NoInlining)] private string BuildJournalGenreLabel(uint journalGenreId) { JournalGenre row = _dataManager.GetExcelSheet<JournalGenre>().GetRow(journalGenreId); JournalCategory value = row.JournalCategory.Value; string text = row.Name.ExtractText(); - return _206B_200B_202D_206F_206F_206B_202C_202C_200D_200C_206D_206B_202E_200E_206B_206F_202B_200D_202E_206A_200E_200B_202E_206C_206B_202D_202C_206E_200B_202D_202A_200B_202A_206F_206D_202A_200B_206D_202B_202A_202E(value.Name.ExtractText(), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1206804877), text); + return value.Name.ExtractText() + " ※ " + text; } - [MethodImpl(MethodImplOptions.NoInlining)] public override void DrawTab() { - int num = ((!_needsReload) ? (-1602595785) : (-1602595786)); - Vector2 item = default(Vector2); - float item2 = default(float); - ImDrawListPtr item3 = default(ImDrawListPtr); - bool value = default(bool); - int num10 = default(int); - int maxRetries = default(int); - bool flag = default(bool); - while (true) + if (_needsReload) { - int num2 = num; - int num3 = -1602595787; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + _needsReload = false; + Reload(); + } + UiThemeUtils.SectionHeader("Quest Battle Settings"); + ImGui.Spacing(); + (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple = UiThemeUtils.BeginCard(); + Vector2 item = tuple.ContentStartPos; + float item2 = tuple.AvailableWidth; + ImDrawListPtr item3 = tuple.DrawList; + bool value = base.Configuration.SinglePlayerDuties.RunSoloInstancesWithBossMod; + if (UiThemeUtils.WrappedCheckbox("Run quest battles with BossMod", ref value, "Work in Progress:\n- Will always use BossMod for combat (ignoring the configured combat module).\n- Only a small subset of quest battles have been tested - most of which are in the MSQ.")) + { + base.Configuration.SinglePlayerDuties.RunSoloInstancesWithBossMod = value; + Save(); + } + using (ImRaii.Disabled(!value)) + { + ImGui.Spacing(); + int currentItem = (int)base.Configuration.SinglePlayerDuties.RetryDifficulty; + ImGui.SetNextItemWidth(MathF.Min(ImGui.GetContentRegionAvail().X * 0.4f, 260f)); + if (UiThemeUtils.ThemedCombo("Difficulty when retrying a failed quest battle", ref currentItem, _retryDifficulties, _retryDifficulties.Length)) { - case 4: - num = -1602595786; + base.Configuration.SinglePlayerDuties.RetryDifficulty = (Configuration.ERetryDifficulty)currentItem; + Save(); + } + ImGui.SameLine(); + UiThemeUtils.InfoIcon("Not all quest battles offer Easy or Very Easy difficulty."); + ImGui.Spacing(); + int maxRetries = base.Configuration.SinglePlayerDuties.MaxRetries; + if (ImGui.RadioButton("Do not retry failed quest battles", maxRetries == 0)) + { + base.Configuration.SinglePlayerDuties.MaxRetries = 0; + Save(); + } + bool flag = maxRetries > 0; + if (ImGui.RadioButton("Retry", flag)) + { + base.Configuration.SinglePlayerDuties.MaxRetries = Math.Max(1, maxRetries); + Save(); + } + if (flag) + { + ImGui.SameLine(); + ImGui.SetNextItemWidth(80f); + int data = maxRetries; + if (ImGui.InputInt("time(s)##retryCount", ref data, 1) && data >= 1) + { + base.Configuration.SinglePlayerDuties.MaxRetries = data; + Save(); + } + } + if (ImGui.RadioButton("Retry indefinitely", maxRetries == -1)) + { + base.Configuration.SinglePlayerDuties.MaxRetries = -1; + Save(); + } + if (maxRetries == -1) + { + ImGui.SameLine(); + UiThemeUtils.InfoIcon("Warning: Your gear may break if you retry endlessly!"); + } + } + UiThemeUtils.EndCard(item, item2, item3); + UiThemeUtils.SectionSpacing(); + using (ImRaii.Disabled(!value)) + { + UiThemeUtils.SectionHeader("Quest Battle Overrides"); + ImGui.Spacing(); + (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple2 = UiThemeUtils.BeginCard(); + Vector2 item4 = tuple2.ContentStartPos; + float item5 = tuple2.AvailableWidth; + ImDrawListPtr item6 = tuple2.DrawList; + (int enabledCount, int totalCount) mainScenarioQuestCounts = GetMainScenarioQuestCounts(); + int item7 = mainScenarioQuestCounts.enabledCount; + int item8 = mainScenarioQuestCounts.totalCount; + (int enabledCount, int totalCount) jobQuestCounts = GetJobQuestCounts(); + int item9 = jobQuestCounts.enabledCount; + int item10 = jobQuestCounts.totalCount; + (int enabledCount, int totalCount) roleQuestCounts = GetRoleQuestCounts(); + int item11 = roleQuestCounts.enabledCount; + int item12 = roleQuestCounts.totalCount; + (int enabledCount, int totalCount) otherQuestCounts = GetOtherQuestCounts(); + int item13 = otherQuestCounts.enabledCount; + int item14 = otherQuestCounts.totalCount; + InlineArray4<string> buffer = default(InlineArray4<string>); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray4<string>, string>(ref buffer, 0) = $"Main Scenario Quests ({item7}/{item8})"; + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray4<string>, string>(ref buffer, 1) = $"Class/Job Quests ({item9}/{item10})"; + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray4<string>, string>(ref buffer, 2) = $"Role Quests ({item11}/{item12})"; + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray4<string>, string>(ref buffer, 3) = $"Other Quests ({item13}/{item14})"; + ReadOnlySpan<string> labels = global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<InlineArray4<string>, string>(in buffer, 4); + _selectedTab = UiThemeUtils.DrawTabBar(labels, _selectedTab); + ImGui.SetCursorPosY(ImGui.GetCursorPosY() - ImGui.GetStyle().ItemSpacing.Y); + switch (_selectedTab) + { + case 0: + DrawMainScenarioConfigTable(); break; - case 3: - _needsReload = false; - Reload(); - num = -1602595785; + case 1: + DrawJobQuestConfigTable(); break; case 2: - { - UiThemeUtils.SectionHeader(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(591315449)); - _206B_202A_200C_206C_202C_206C_202C_200C_200D_200F_200E_202C_200F_200B_206F_200C_202C_206A_206C_200E_200C_202A_206F_202B_200D_202E_206B_200F_206F_200F_206B_202C_202A_200E_202E_202A_200C_200B_202D_200C_202E(); - (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple2 = UiThemeUtils.BeginCard(); - item = tuple2.ContentStartPos; - item2 = tuple2.AvailableWidth; - item3 = tuple2.DrawList; - value = base.Configuration.SinglePlayerDuties.RunSoloInstancesWithBossMod; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1787365424), ref value, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-304229320))) ? (-1602595787) : (-1602595788)); + DrawRoleQuestConfigTable(); + break; + case 3: + DrawOtherQuestConfigTable(); break; } - case 1: - base.Configuration.SinglePlayerDuties.RunSoloInstancesWithBossMod = value; + DrawEnableAllButton(); + ImGui.SameLine(); + DrawClipboardButtons("qst:single:", base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds, base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds); + ImGui.SameLine(); + if (UiThemeUtils.DestructiveButton(FontAwesomeIcon.Undo, "Reset to defaults")) + { + base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Clear(); + base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Clear(); Save(); - num = -1602595787; - break; - case 0: - { - ImRaii.DisabledDisposable disabledDisposable = _202D_200E_206A_202E_206E_206C_202D_206F_200C_202A_202A_200B_206D_200F_206D_202C_206E_200E_202C_200B_202E_200B_200C_202D_202A_202E_200C_200E_202A_206C_200D_200F_202C_202E_206D_206B_206C_202C_206C_202E_202E(!value); - try - { - _206B_202A_200C_206C_202C_206C_202C_200C_200D_200F_200E_202C_200F_200B_206F_200C_202C_206A_206C_200E_200C_202A_206F_202B_200D_202E_206B_200F_206F_200F_206B_202C_202A_200E_202E_202A_200C_200B_202D_200C_202E(); - int currentItem = (int)base.Configuration.SinglePlayerDuties.RetryDifficulty; - _200D_206A_206A_200B_200B_206B_202A_206B_200D_206B_206D_200B_202E_202B_200E_206B_206A_202B_200D_202B_200D_200B_206D_200F_200F_206D_202B_206D_206F_206E_202C_206F_200B_200D_206B_206D_200F_202A_202A_206C_202E(_206E_200D_202A_202D_206E_200C_200D_206D_206F_200D_206D_202D_200E_200D_206F_200E_202E_206C_206B_202A_206C_200F_206B_200F_200B_206E_200C_202D_202B_202A_200C_202D_200D_202B_206D_200F_200D_200B_202E_206E_202E(_206C_206D_200C_206A_200D_202E_206D_202B_206F_202B_206B_206A_202D_206F_206D_202B_200E_202C_200F_202B_200D_202A_206E_202B_206B_202A_206C_202E_202B_200F_206B_206D_200C_202D_206A_200E_200D_202E_206B_202E().X * 0.4f, 260f)); - num = ((!UiThemeUtils.ThemedCombo(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-586214286), ref currentItem, _retryDifficulties, _retryDifficulties.Length)) ? (-1682209538) : (-1682209541)); - while (true) - { - int num7 = num; - num3 = -1682209544; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 4: - _202D_206F_206D_206B_200F_202D_206D_202C_202D_206F_202E_206C_202C_202E_206F_200E_200E_200B_206D_202B_202E_206C_200E_206C_206C_202D_202A_200C_200C_206E_206E_200D_202A_206B_202D_202D_206B_202C_206F_202E(); - _200D_206A_206A_200B_200B_206B_202A_206B_200D_206B_206D_200B_202E_202B_200E_206B_206A_202B_200D_202B_200D_200B_206D_200F_200F_206D_202B_206D_206F_206E_202C_206F_200B_200D_206B_206D_200F_202A_202A_206C_202E(80f); - num10 = maxRetries; - num = ((!_202A_200F_206C_202B_202B_206D_200E_206F_200F_206B_206A_206F_206C_202E_200B_202D_206D_200B_200C_202E_202A_202D_202E_202D_206C_200E_200C_202D_206A_206B_206E_206D_206D_202A_202B_202E_200D_206B_200F_200D_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-672593592), ref num10, 1, 0, default(ImU8String), ImGuiInputTextFlags.None)) ? (-1682209548) : (-1682209551)); - break; - case 6: - _202D_206F_206D_206B_200F_202D_206D_202C_202D_206F_202E_206C_202C_202E_206F_200E_200E_200B_206D_202B_202E_206C_200E_206C_206C_202D_202A_200C_200C_206E_206E_200D_202A_206B_202D_202D_206B_202C_206F_202E(); - UiThemeUtils.InfoIcon(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1252247264)); - _206B_202A_200C_206C_202C_206C_202C_200C_200D_200F_200E_202C_200F_200B_206F_200C_202C_206A_206C_200E_200C_202A_206F_202B_200D_202E_206B_200F_206F_200F_206B_202C_202A_200E_202E_202A_200C_200B_202D_200C_202E(); - maxRetries = base.Configuration.SinglePlayerDuties.MaxRetries; - num = ((!_206B_206D_200D_202B_202B_200C_202E_206D_206B_206D_206E_202D_200F_202C_202A_202D_206E_202D_206F_200B_202A_200B_200F_202E_200D_202D_200E_206C_200B_200B_206A_206E_202B_206D_202D_206A_202B_202D_206D_202C_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(556769295), maxRetries == 0)) ? (-1682209547) : (-1682209543)); - break; - case 7: - base.Configuration.SinglePlayerDuties.MaxRetries = num10; - Save(); - num = -1682209548; - break; - case 14: - num = -1682209541; - break; - case 1: - base.Configuration.SinglePlayerDuties.MaxRetries = 0; - Save(); - num = -1682209547; - break; - case 8: - num = ((!flag) ? (-1682209548) : (-1682209540)); - break; - case 5: - base.Configuration.SinglePlayerDuties.MaxRetries = _202C_202D_206F_200E_200E_202B_202C_206E_206B_200B_202E_206F_206E_202D_202C_206B_206D_206C_200F_202C_202B_202B_206E_202D_206C_200E_206D_200D_202D_200E_206D_200D_200B_206C_206F_206E_206A_200F_206D_206F_202E(1, maxRetries); - Save(); - num = -1682209552; - break; - case 13: - flag = maxRetries > 0; - num = ((!_206B_206D_200D_202B_202B_200C_202E_206D_206B_206D_206E_202D_200F_202C_202A_202D_206E_202D_206F_200B_202A_200B_200F_202E_200D_202D_200E_206C_200B_200B_206A_206E_202B_206D_202D_206A_202B_202D_206D_202C_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(679585427), flag)) ? (-1682209552) : (-1682209539)); - break; - case 11: - base.Configuration.SinglePlayerDuties.MaxRetries = -1; - Save(); - num = -1682209550; - break; - case 12: - num = ((!_206B_206D_200D_202B_202B_200C_202E_206D_206B_206D_206E_202D_200F_202C_202A_202D_206E_202D_206F_200B_202A_200B_200F_202E_200D_202D_200E_206C_200B_200B_206A_206E_202B_206D_202D_206A_202B_202D_206D_202C_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-760791582), maxRetries == -1)) ? (-1682209550) : (-1682209549)); - break; - case 2: - _202D_206F_206D_206B_200F_202D_206D_202C_202D_206F_202E_206C_202C_202E_206F_200E_200E_200B_206D_202B_202E_206C_200E_206C_206C_202D_202A_200C_200C_206E_206E_200D_202A_206B_202D_202D_206B_202C_206F_202E(); - UiThemeUtils.InfoIcon(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1186403595)); - num = -1682209544; - break; - case 3: - base.Configuration.SinglePlayerDuties.RetryDifficulty = (Configuration.ERetryDifficulty)currentItem; - Save(); - num = -1682209538; - break; - case 10: - num = ((maxRetries != -1) ? (-1682209544) : (-1682209542)); - break; - case 9: - num = ((num10 < 1) ? (-1682209548) : (-1682209537)); - break; - case 0: - goto end_IL_0194; - } - continue; - end_IL_0194: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? (-1889698799) : (-1889698800)); - while (true) - { - int num11 = num; - num3 = -1889698799; - num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) - { - case 2: - num = -1889698800; - break; - case 1: - _200E_200D_206F_202C_200D_200F_206D_206C_200B_200E_200E_202E_202E_202A_206C_200E_202E_200F_200B_202B_200D_206B_206F_206C_206C_202C_202C_206D_206E_200F_200B_200F_202A_206B_202D_206C_202C_200B_200B_200F_202E((IDisposable)disabledDisposable); - num = -1889698799; - break; - case 0: - goto end_IL_047e; - } - continue; - end_IL_047e: - break; - } - } - UiThemeUtils.EndCard(item, item2, item3); - UiThemeUtils.SectionSpacing(); - disabledDisposable = _202D_200E_206A_202E_206E_206C_202D_206F_200C_202A_202A_200B_206D_200F_206D_202C_206E_200E_202C_200B_202E_200B_200C_202D_202A_202E_200C_200E_202A_206C_200D_200F_202C_202E_206D_206B_206C_202C_206C_202E_202E(!value); - try - { - UiThemeUtils.SectionHeader(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-405282686)); - _206B_202A_200C_206C_202C_206C_202C_200C_200D_200F_200E_202C_200F_200B_206F_200C_202C_206A_206C_200E_200C_202A_206F_202B_200D_202E_206B_200F_206F_200F_206B_202C_202A_200E_202E_202A_200C_200B_202D_200C_202E(); - (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple = UiThemeUtils.BeginCard(); - Vector2 item4 = tuple.ContentStartPos; - float item5 = tuple.AvailableWidth; - ImDrawListPtr item6 = tuple.DrawList; - (int enabledCount, int totalCount) mainScenarioQuestCounts = GetMainScenarioQuestCounts(); - int item7 = mainScenarioQuestCounts.enabledCount; - int item8 = mainScenarioQuestCounts.totalCount; - (int enabledCount, int totalCount) jobQuestCounts = GetJobQuestCounts(); - int item9 = jobQuestCounts.enabledCount; - int item10 = jobQuestCounts.totalCount; - (int enabledCount, int totalCount) roleQuestCounts = GetRoleQuestCounts(); - int item11 = roleQuestCounts.enabledCount; - int item12 = roleQuestCounts.totalCount; - (int enabledCount, int totalCount) otherQuestCounts = GetOtherQuestCounts(); - int item13 = otherQuestCounts.enabledCount; - int item14 = otherQuestCounts.totalCount; - InlineArray4<string> buffer = default(InlineArray4<string>); - ref string reference = ref global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray4<string>, string>(ref buffer, 0); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(24, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1502035446)); - defaultInterpolatedStringHandler.AppendFormatted(item7); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-70733513)); - defaultInterpolatedStringHandler.AppendFormatted(item8); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - reference = defaultInterpolatedStringHandler.ToStringAndClear(); - ref string reference2 = ref global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray4<string>, string>(ref buffer, 1); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(20, 2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-764635290)); - defaultInterpolatedStringHandler2.AppendFormatted(item9); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(503298330)); - defaultInterpolatedStringHandler2.AppendFormatted(item10); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - reference2 = defaultInterpolatedStringHandler2.ToStringAndClear(); - ref string reference3 = ref global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray4<string>, string>(ref buffer, 2); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(15, 2); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-286842304)); - defaultInterpolatedStringHandler3.AppendFormatted(item11); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(503298330)); - defaultInterpolatedStringHandler3.AppendFormatted(item12); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(555647321)); - reference3 = defaultInterpolatedStringHandler3.ToStringAndClear(); - ref string reference4 = ref global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray4<string>, string>(ref buffer, 3); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler4 = new DefaultInterpolatedStringHandler(16, 2); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1317598960)); - defaultInterpolatedStringHandler4.AppendFormatted(item13); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1392036559)); - defaultInterpolatedStringHandler4.AppendFormatted(item14); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - reference4 = defaultInterpolatedStringHandler4.ToStringAndClear(); - ReadOnlySpan<string> labels = global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<InlineArray4<string>, string>(in buffer, 4); - _selectedTab = UiThemeUtils.DrawTabBar(labels, _selectedTab); - _206D_206B_200D_206B_206B_206A_200D_206D_202D_206E_202D_200B_200C_202A_206D_206E_202B_202D_200E_206B_206C_202D_202A_202E_206A_206C_206B_202B_202A_202B_200C_206A_206C_202C_202D_200D_200D_206F_206D_206E_202E(_202E_200D_206D_200D_200B_202E_206A_206D_202C_200B_200B_206F_206A_206C_200B_200F_200D_206B_202E_202C_206A_202D_200C_202B_200E_202D_202C_206A_206F_206C_200E_202A_202C_206F_200E_200B_200B_202D_200E_200C_202E() - _200E_202B_206C_200F_206C_206F_206E_202E_202A_206D_202C_200D_200B_206B_200D_206A_206E_206C_202E_206F_202D_200E_206A_202E_206F_200D_200F_200C_200C_202B_206C_200E_200C_206C_200B_206D_206D_202B_206C_202E_202E().ItemSpacing.Y); - switch (_selectedTab) - { - default: - num = -1152905542; - goto IL_0753; - case 1: - DrawJobQuestConfigTable(); - num = -1152905541; - goto IL_0753; - case 2: - goto IL_07f1; - case 3: - goto IL_0881; - case 0: - goto IL_0893; - IL_0753: - while (true) - { - int num14 = num; - num3 = -1152905538; - num4 = num14; - switch ((num4 | num3) - (num4 & num3)) - { - case 8: - base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Clear(); - base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Clear(); - Save(); - num = -1152905538; - break; - case 4: - num = -1152905541; - break; - case 7: - goto end_IL_0753; - case 6: - goto IL_07f1; - case 3: - num = -1152905542; - break; - case 5: - goto IL_080f; - case 2: - goto IL_0881; - case 1: - goto IL_0893; - case 0: - UiThemeUtils.EndCard(item4, item5, item6); - return; - } - continue; - IL_080f: - DrawEnableAllButton(); - _202D_206F_206D_206B_200F_202D_206D_202C_202D_206F_202E_206C_202C_202E_206F_200E_200E_200B_206D_202B_202E_206C_200E_206C_206C_202D_202A_200C_200C_206E_206E_200D_202A_206B_202D_202D_206B_202C_206F_202E(); - DrawClipboardButtons(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(436552950), base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds, base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds); - _202D_206F_206D_206B_200F_202D_206D_202C_202D_206F_202E_206C_202C_202E_206F_200E_200E_200B_206D_202B_202E_206C_200E_206C_206C_202D_202A_200C_200C_206E_206E_200D_202A_206B_202D_202D_206B_202C_206F_202E(); - num = ((!UiThemeUtils.DestructiveButton(FontAwesomeIcon.Undo, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(105765014))) ? (-1152905538) : (-1152905546)); - continue; - end_IL_0753: - break; - } - goto case 1; - IL_0893: - DrawMainScenarioConfigTable(); - num = -1152905541; - goto IL_0753; - IL_0881: - DrawOtherQuestConfigTable(); - num = -1152905541; - goto IL_0753; - IL_07f1: - DrawRoleQuestConfigTable(); - num = -1152905541; - goto IL_0753; - } - } - finally - { - num = ((disabledDisposable == null) ? (-1996908765) : (-1996908768)); - while (true) - { - int num15 = num; - num3 = -1996908767; - num4 = num15; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1996908768; - break; - case 2: - goto end_IL_08d4; - case 1: - _200E_200D_206F_202C_200D_200F_206D_206C_200B_200E_200E_202E_202E_202A_206C_200E_202E_200F_200B_202B_200D_206B_206F_206C_206C_202C_202C_206D_206E_200F_200B_200F_202A_206B_202D_206C_202C_200B_200B_200F_202E((IDisposable)disabledDisposable); - num = -1996908765; - break; - } - continue; - end_IL_08d4: - break; - } - } - } } + UiThemeUtils.EndCard(item4, item5, item6); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawMainScenarioConfigTable() { using ImRaii.ChildDisposable childDisposable = BeginChildArea(); - int num = ((!(!childDisposable)) ? 2112848608 : 2112848618); - EExpansionVersion eExpansionVersion = default(EExpansionVersion); - EExpansionVersion[] values = default(EExpansionVersion[]); - int num8 = default(int); - List<SinglePlayerDutyInfo> value = default(List<SinglePlayerDutyInfo>); - Dictionary<string, bool> headerStates = default(Dictionary<string, bool>); - while (true) + if (!childDisposable) { - int num2 = num; - int num3 = 2112848609; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + Dictionary<string, bool> headerStates = base.Configuration.SinglePlayerDuties.HeaderStates; + var (value, value2) = GetQuestBattleCounts(_startingCityBattles[EAetheryteLocation.Limsa]); + if (DrawPersistentAccordion($"Limsa Lominsa ({ConfigComponent.FormatLevel(5)} - {ConfigComponent.FormatLevel(14)})", $"{value}/{value2}", "Limsa", headerStates)) + { + DrawQuestTable("LimsaLominsa", _startingCityBattles[EAetheryteLocation.Limsa]); + } + var (value3, value4) = GetQuestBattleCounts(_startingCityBattles[EAetheryteLocation.Gridania]); + if (DrawPersistentAccordion($"Gridania ({ConfigComponent.FormatLevel(5)} - {ConfigComponent.FormatLevel(14)})", $"{value3}/{value4}", "Gridania", headerStates)) + { + DrawQuestTable("Gridania", _startingCityBattles[EAetheryteLocation.Gridania]); + } + var (value5, value6) = GetQuestBattleCounts(_startingCityBattles[EAetheryteLocation.Uldah]); + if (DrawPersistentAccordion($"Ul'dah ({ConfigComponent.FormatLevel(4)} - {ConfigComponent.FormatLevel(14)})", $"{value5}/{value6}", "Uldah", headerStates)) + { + DrawQuestTable("Uldah", _startingCityBattles[EAetheryteLocation.Uldah]); + } + EExpansionVersion[] values = Enum.GetValues<EExpansionVersion>(); + for (int i = 0; i < values.Length; i++) + { + EExpansionVersion eExpansionVersion = values[i]; + if (_mainScenarioBattles.TryGetValue(eExpansionVersion, out List<SinglePlayerDutyInfo> value7)) { - case 7: - eExpansionVersion = values[num8]; - num = ((!_mainScenarioBattles.TryGetValue(eExpansionVersion, out value)) ? 2112848615 : 2112848621); - break; - case 4: - num = ((num8 < values.Length) ? 2112848614 : 2112848612); - break; - case 12: - { - (int enabledCount, int totalCount) questBattleCounts3 = GetQuestBattleCounts(value); - int item5 = questBattleCounts3.enabledCount; - int item6 = questBattleCounts3.totalCount; - string label3 = _206E_200C_206F_202A_206A_200D_200C_202B_200E_200E_202B_206C_200D_202B_200C_200B_202C_200D_200E_206A_206C_206B_206B_202B_202C_202D_200B_202A_206F_206B_202B_200E_206F_202D_206C_200B_200D_200C_206E_200E_202E(eExpansionVersion); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler6 = new DefaultInterpolatedStringHandler(1, 2); - defaultInterpolatedStringHandler6.AppendFormatted(item5); - defaultInterpolatedStringHandler6.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(503298330)); - defaultInterpolatedStringHandler6.AppendFormatted(item6); - num = ((!DrawPersistentAccordion(label3, defaultInterpolatedStringHandler6.ToStringAndClear(), eExpansionVersion.ToString(), headerStates)) ? 2112848615 : 2112848616); - break; - } - case 13: - DrawQuestTable(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1733632812), _startingCityBattles[EAetheryteLocation.Uldah]); - num = 2112848609; - break; - case 14: - { - (int enabledCount, int totalCount) questBattleCounts4 = GetQuestBattleCounts(_startingCityBattles[EAetheryteLocation.Gridania]); - int item7 = questBattleCounts4.enabledCount; - int item8 = questBattleCounts4.totalCount; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler7 = new DefaultInterpolatedStringHandler(14, 2); - defaultInterpolatedStringHandler7.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(36156870)); - defaultInterpolatedStringHandler7.AppendFormatted(ConfigComponent.FormatLevel(5)); - defaultInterpolatedStringHandler7.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(680284710)); - defaultInterpolatedStringHandler7.AppendFormatted(ConfigComponent.FormatLevel(14)); - defaultInterpolatedStringHandler7.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - string label4 = defaultInterpolatedStringHandler7.ToStringAndClear(); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler8 = new DefaultInterpolatedStringHandler(1, 2); - defaultInterpolatedStringHandler8.AppendFormatted(item7); - defaultInterpolatedStringHandler8.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1392036559)); - defaultInterpolatedStringHandler8.AppendFormatted(item8); - num = ((!DrawPersistentAccordion(label4, defaultInterpolatedStringHandler8.ToStringAndClear(), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-609841478), headerStates)) ? 2112848610 : 2112848611); - break; - } - case 2: - DrawQuestTable(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-609841478), _startingCityBattles[EAetheryteLocation.Gridania]); - num = 2112848610; - break; - case 10: - num = 2112848618; - break; - case 3: - { - (int enabledCount, int totalCount) questBattleCounts2 = GetQuestBattleCounts(_startingCityBattles[EAetheryteLocation.Uldah]); - int item3 = questBattleCounts2.enabledCount; - int item4 = questBattleCounts2.totalCount; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler4 = new DefaultInterpolatedStringHandler(12, 2); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(266830176)); - defaultInterpolatedStringHandler4.AppendFormatted(ConfigComponent.FormatLevel(4)); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(680284710)); - defaultInterpolatedStringHandler4.AppendFormatted(ConfigComponent.FormatLevel(14)); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - string label2 = defaultInterpolatedStringHandler4.ToStringAndClear(); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler5 = new DefaultInterpolatedStringHandler(1, 2); - defaultInterpolatedStringHandler5.AppendFormatted(item3); - defaultInterpolatedStringHandler5.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1680133376)); - defaultInterpolatedStringHandler5.AppendFormatted(item4); - num = ((!DrawPersistentAccordion(label2, defaultInterpolatedStringHandler5.ToStringAndClear(), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1652029814), headerStates)) ? 2112848609 : 2112848620); - break; - } - case 1: - { - headerStates = base.Configuration.SinglePlayerDuties.HeaderStates; - (int enabledCount, int totalCount) questBattleCounts = GetQuestBattleCounts(_startingCityBattles[EAetheryteLocation.Limsa]); - int item = questBattleCounts.enabledCount; - int item2 = questBattleCounts.totalCount; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(19, 2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1811029718)); - defaultInterpolatedStringHandler2.AppendFormatted(ConfigComponent.FormatLevel(5)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1884306162)); - defaultInterpolatedStringHandler2.AppendFormatted(ConfigComponent.FormatLevel(14)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - string label = defaultInterpolatedStringHandler2.ToStringAndClear(); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(1, 2); - defaultInterpolatedStringHandler3.AppendFormatted(item); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1680133376)); - defaultInterpolatedStringHandler3.AppendFormatted(item2); - num = ((!DrawPersistentAccordion(label, defaultInterpolatedStringHandler3.ToStringAndClear(), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(106972195), headerStates)) ? 2112848623 : 2112848617); - break; - } - case 0: - values = Enum.GetValues<EExpansionVersion>(); - num8 = 0; - num = 2112848613; - break; - case 6: - { - int num7 = num8; - num3 = 1; - num4 = num7; - num8 = (num4 | num3) + (num4 & num3); - num = 2112848613; - break; - } - case 8: - DrawQuestTable(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2011227758), _startingCityBattles[EAetheryteLocation.Limsa]); - num = 2112848623; - break; - case 9: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(6, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1381860118)); - defaultInterpolatedStringHandler.AppendFormatted(eExpansionVersion); - DrawQuestTable(defaultInterpolatedStringHandler.ToStringAndClear(), value); - num = 2112848615; - break; - } - case 11: - return; - case 5: - return; + var (value8, value9) = GetQuestBattleCounts(value7); + if (DrawPersistentAccordion(eExpansionVersion.ToFriendlyString(), $"{value8}/{value9}", eExpansionVersion.ToString(), headerStates)) + { + DrawQuestTable($"Duties{eExpansionVersion}", value7); + } } } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawJobQuestConfigTable() { using ImRaii.ChildDisposable childDisposable = BeginChildArea(); - int num = ((!(!childDisposable)) ? 986510284 : 986510287); - string text = default(string); - EClassJob item = default(EClassJob); - List<SinglePlayerDutyInfo> value = default(List<SinglePlayerDutyInfo>); - int item2 = default(int); - while (true) + if (!childDisposable) { - int num2 = num; - int num3 = 986510285; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + Dictionary<string, bool> headerStates = base.Configuration.SinglePlayerDuties.HeaderStates; + int num = 0; + foreach (var (eClassJob, num2) in _classJobUtils.SortedClassJobs) + { + if (!eClassJob.IsCrafter() && !eClassJob.IsGatherer() && _jobQuestBattles.TryGetValue(eClassJob, out List<SinglePlayerDutyInfo> value)) { - case 0: - goto IL_0057; - case 2: - return; - case 1: - { - Dictionary<string, bool> headerStates = base.Configuration.SinglePlayerDuties.HeaderStates; - int num7 = 0; - IEnumerator<(EClassJob, int)> enumerator = _classJobUtils.SortedClassJobs.GetEnumerator(); - try + if (num2 != num) { - num = -1544215623; - while (true) - { - int num8 = num; - num3 = -1544215619; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 10: - text = _206B_200B_202D_206F_206F_206B_202C_202C_200D_200C_206D_206B_202E_200E_206B_206F_202B_200D_202E_206A_200E_200B_202E_206C_206B_202D_202C_206E_200B_202D_202A_200B_202A_206F_206D_202A_200B_206D_202B_202A_202E(text, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2014446916), _206F_206F_206F_206D_206C_200E_206D_200E_200D_202E_200F_202C_202C_206E_202C_206F_200E_200B_200F_200B_202A_206B_206B_202A_206C_200E_206C_206D_200D_202A_200C_202E_202D_206E_202B_206F_206C_200C_206B_200E_202E(_200D_206F_200C_200B_200D_206B_200E_206B_200D_206B_206F_206C_206E_202C_202C_202B_206D_202A_206D_206D_206C_202E_200F_202C_206B_200C_202C_200F_200B_200C_202A_206A_206D_200C_206F_202A_200E_202C_202A_206A_202E(item))); - num = -1544215620; - break; - case 5: - num = (_206C_206B_206A_202A_206A_206F_206D_202C_200F_200C_206E_200D_206A_200D_206C_200D_202C_206B_202D_202C_200C_200D_202C_202A_206E_202B_200D_206D_200E_200C_202E_200B_206C_206E_200E_206C_206C_200B_202C_200C_202E(item) ? (-1544215623) : (-1544215619)); - break; - case 6: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(9, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-157733930)); - defaultInterpolatedStringHandler2.AppendFormatted(item); - DrawQuestTable(defaultInterpolatedStringHandler2.ToStringAndClear(), value); - num = -1544215623; - break; - } - case 2: - num = ((item2 == num7) ? (-1544215618) : (-1544215622)); - break; - case 9: - num = -1544215623; - break; - case 1: - { - (int enabledCount, int totalCount) questBattleCounts = GetQuestBattleCounts(value); - int item3 = questBattleCounts.enabledCount; - int item4 = questBattleCounts.totalCount; - string label = text; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(1, 2); - defaultInterpolatedStringHandler.AppendFormatted(item3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1680133376)); - defaultInterpolatedStringHandler.AppendFormatted(item4); - num = ((!DrawPersistentAccordion(label, defaultInterpolatedStringHandler.ToStringAndClear(), item.ToString(), headerStates)) ? (-1544215623) : (-1544215621)); - break; - } - case 11: - { - (EClassJob, int) current = enumerator.Current; - item = current.Item1; - item2 = current.Item2; - num = (_200C_202D_200B_206A_200F_200E_202B_202B_200C_202C_202A_206B_202D_202C_202A_206D_206A_200F_202E_206E_202A_206D_202D_202C_200E_206C_200F_200F_206C_200E_200E_202C_206E_206D_206C_202B_206B_202B_200D_206C_202E(item) ? (-1544215623) : (-1544215624)); - break; - } - case 4: - num = (_202D_206B_206B_200D_202A_206F_202C_202A_202E_206B_202E_206B_200B_202A_200B_202D_206D_202E_206E_202D_202E_206A_200D_206E_200D_206A_200E_200B_200C_202B_206B_200E_202C_202D_202D_200D_206B_206A_202D_200F_202E((IEnumerator)enumerator) ? (-1544215626) : (-1544215627)); - break; - case 7: - num7 = item2; - _206B_202A_200C_206C_202C_206C_202C_200C_200D_200F_200E_202C_200F_200B_206F_200C_202C_206A_206C_200E_200C_202A_206F_202B_200D_202E_206B_200F_206F_200F_206B_202C_202A_200E_202E_202A_200C_200B_202D_200C_202E(); - _202C_202B_206B_200D_202A_202E_206C_206E_202A_206A_202B_200B_202E_202E_206D_200D_206E_206C_202A_200D_206D_206C_206E_200F_202B_202D_200F_206F_200C_206D_202C_206D_202B_206E_206B_206F_206A_206C_206A_202E_202E(); - _206B_202A_200C_206C_202C_206C_202C_200C_200D_200F_200E_202C_200F_200B_206F_200C_202C_206A_206C_200E_200C_202A_206F_202B_200D_202E_206B_200F_206F_200F_206B_202C_202A_200E_202E_202A_200C_200B_202D_200C_202E(); - num = -1544215618; - break; - case 3: - text = _206F_206F_206F_206D_206C_200E_206D_200E_200D_202E_200F_202C_202C_206E_202C_206F_200E_200B_200F_200B_202A_206B_206B_202A_206C_200E_206C_206D_200D_202A_200C_202E_202D_206E_202B_206F_206C_200C_206B_200E_202E(item); - num = ((!_200D_206B_206C_206C_202E_200C_206A_206C_206B_200C_200C_200D_200E_200D_206D_202D_200F_200F_202A_200F_206D_200C_200E_206A_206F_202C_202C_206B_206F_206A_202A_202D_202C_200C_206B_200E_200C_200D_202A_206C_202E(item)) ? (-1544215620) : (-1544215625)); - break; - case 0: - num = ((!_jobQuestBattles.TryGetValue(item, out value)) ? (-1544215623) : (-1544215617)); - break; - case 8: - return; - } - } + num = num2; + ImGui.Spacing(); + ImGui.Separator(); + ImGui.Spacing(); } - finally + string text = eClassJob.ToFriendlyString(); + if (eClassJob.IsClass()) { - num = ((enumerator == null) ? 909059327 : 909059324); - while (true) - { - int num9 = num; - num3 = 909059326; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 0: - num = 909059324; - break; - case 1: - goto end_IL_0321; - case 2: - _200E_200D_206F_202C_200D_200F_206D_206C_200B_200E_200E_202E_202E_202A_206C_200E_202E_200F_200B_202B_200D_206B_206F_206C_206C_202C_202C_206D_206E_200F_200B_200F_202A_206B_202D_206C_202C_200B_200B_200F_202E((IDisposable)enumerator); - num = 909059327; - break; - } - continue; - end_IL_0321: - break; - } + text = text + " / " + eClassJob.AsJob().ToFriendlyString(); + } + var (value2, value3) = GetQuestBattleCounts(value); + if (DrawPersistentAccordion(text, $"{value2}/{value3}", eClassJob.ToString(), headerStates)) + { + DrawQuestTable($"JobQuests{eClassJob}", value); } } - } - continue; - IL_0057: - num = 986510287; } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawRoleQuestConfigTable() { using ImRaii.ChildDisposable childDisposable = BeginChildArea(); - int num = ((!(!childDisposable)) ? 713533165 : 713533166); - EClassJob item4 = default(EClassJob); - List<SinglePlayerDutyInfo> value = default(List<SinglePlayerDutyInfo>); - string item3 = default(string); - while (true) + if (!childDisposable) { - int num2 = num; - int num3 = 713533167; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + Dictionary<string, bool> headerStates = base.Configuration.SinglePlayerDuties.HeaderStates; + foreach (var (eClassJob, label) in RoleQuestCategories) + { + if (_roleQuestBattles.TryGetValue(eClassJob, out List<SinglePlayerDutyInfo> value)) { - case 0: - goto IL_0057; - case 1: - return; - case 2: - { - Dictionary<string, bool> headerStates = base.Configuration.SinglePlayerDuties.HeaderStates; - using (List<(EClassJob, string)>.Enumerator enumerator = RoleQuestCategories.GetEnumerator()) + var (value2, value3) = GetQuestBattleCounts(value); + if (DrawPersistentAccordion(label, $"{value2}/{value3}", $"Role_{eClassJob}", headerStates)) { - num = -2084148046; - while (true) - { - int num7 = num; - num3 = -2084148048; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = -2084148046; - break; - case 2: - num = (enumerator.MoveNext() ? (-2084148044) : (-2084148043)); - break; - case 0: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(10, 1); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1547149851)); - defaultInterpolatedStringHandler3.AppendFormatted(item4); - DrawQuestTable(defaultInterpolatedStringHandler3.ToStringAndClear(), value); - num = -2084148046; - break; - } - case 4: - { - (EClassJob, string) current = enumerator.Current; - item4 = current.Item1; - item3 = current.Item2; - num = ((!_roleQuestBattles.TryGetValue(item4, out value)) ? (-2084148046) : (-2084148047)); - break; - } - case 1: - { - (int enabledCount, int totalCount) questBattleCounts = GetQuestBattleCounts(value); - int item = questBattleCounts.enabledCount; - int item2 = questBattleCounts.totalCount; - string label = item3; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(1, 2); - defaultInterpolatedStringHandler.AppendFormatted(item); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(503298330)); - defaultInterpolatedStringHandler.AppendFormatted(item2); - string rightText = defaultInterpolatedStringHandler.ToStringAndClear(); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(5, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(712946175)); - defaultInterpolatedStringHandler2.AppendFormatted(item4); - num = ((!DrawPersistentAccordion(label, rightText, defaultInterpolatedStringHandler2.ToStringAndClear(), headerStates)) ? (-2084148046) : (-2084148048)); - break; - } - case 5: - goto end_IL_009d; - } - continue; - end_IL_009d: - break; - } - } - (int enabledCount, int totalCount) questBattleCounts2 = GetQuestBattleCounts(_otherRoleQuestBattles); - int item5 = questBattleCounts2.enabledCount; - int item6 = questBattleCounts2.totalCount; - string label2 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(900333825); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler4 = new DefaultInterpolatedStringHandler(1, 2); - defaultInterpolatedStringHandler4.AppendFormatted(item5); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-70733513)); - defaultInterpolatedStringHandler4.AppendFormatted(item6); - num = ((!DrawPersistentAccordion(label2, defaultInterpolatedStringHandler4.ToStringAndClear(), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-346473233), headerStates)) ? (-1432626738) : (-1432626737)); - while (true) - { - int num8 = num; - num3 = -1432626738; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1432626737; - break; - case 1: - DrawQuestTable(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-345649742), _otherRoleQuestBattles); - num = -1432626738; - break; - case 0: - return; - } + DrawQuestTable($"RoleQuests{eClassJob}", value); } } - } - continue; - IL_0057: - num = 713533166; + } + var (value4, value5) = GetQuestBattleCounts(_otherRoleQuestBattles); + if (DrawPersistentAccordion("General Role Quests", $"{value4}/{value5}", "Role_General", headerStates)) + { + DrawQuestTable("RoleQuestsGeneral", _otherRoleQuestBattles); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawOtherQuestConfigTable() { using ImRaii.ChildDisposable childDisposable = BeginChildArea(); - int num = ((!(!childDisposable)) ? 70323230 : 70323231); - string item = default(string); - List<SinglePlayerDutyInfo> item2 = default(List<SinglePlayerDutyInfo>); - while (true) + if (!childDisposable) { - int num2 = num; - int num3 = 70323230; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return; + } + Dictionary<string, bool> headerStates = base.Configuration.SinglePlayerDuties.HeaderStates; + foreach (var (text, dutyInfos) in _otherQuestBattles) + { + var (value, value2) = GetQuestBattleCounts(dutyInfos); + if (DrawPersistentAccordion(text, $"{value}/{value2}", "Other_" + text, headerStates)) { - case 2: - goto IL_0055; - case 1: - return; - case 0: - { - Dictionary<string, bool> headerStates = base.Configuration.SinglePlayerDuties.HeaderStates; - using ImmutableList<(string, List<SinglePlayerDutyInfo>)>.Enumerator enumerator = _otherQuestBattles.GetEnumerator(); - num = -444495889; - while (true) - { - int num5 = num; - num3 = -444495890; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - DrawQuestTable(_200B_200E_202B_200C_202A_200E_202E_202E_202B_202E_206D_202B_206F_200E_202C_202E_206C_206A_200B_200B_202D_202E_200D_200B_200F_202C_206D_206A_206B_206C_200B_202C_200F_202B_206C_202A_202A_202B_202A_206B_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(835196009), item), item2); - num = -444495889; - break; - case 4: - { - (string, List<SinglePlayerDutyInfo>) current = enumerator.Current; - item = current.Item1; - item2 = current.Item2; - (int enabledCount, int totalCount) questBattleCounts = GetQuestBattleCounts(item2); - int item3 = questBattleCounts.enabledCount; - int item4 = questBattleCounts.totalCount; - string label = item; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(1, 2); - defaultInterpolatedStringHandler.AppendFormatted(item3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-70733513)); - defaultInterpolatedStringHandler.AppendFormatted(item4); - num = ((!DrawPersistentAccordion(label, defaultInterpolatedStringHandler.ToStringAndClear(), _200B_200E_202B_200C_202A_200E_202E_202E_202B_202E_206D_202B_206F_200E_202C_202E_206C_206A_200B_200B_202D_202E_200D_200B_200F_202C_206D_206A_206B_206C_200B_202C_200F_202B_206C_202A_202A_202B_202A_206B_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(880133585), item), headerStates)) ? (-444495889) : (-444495890)); - break; - } - case 1: - num = (enumerator.MoveNext() ? (-444495894) : (-444495891)); - break; - case 2: - num = -444495889; - break; - case 3: - return; - } - } + DrawQuestTable("Other" + text, dutyInfos); } - } - continue; - IL_0055: - num = 70323231; } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawQuestTable(string label, IReadOnlyList<SinglePlayerDutyInfo> dutyInfos) { using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable(label, 2, ImGuiTableFlags.SizingFixedFit); @@ -2027,365 +544,113 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent { return; } - _202A_202B_202B_206F_206C_200F_206E_200B_200C_202E_202B_202B_206C_206B_202E_202C_202E_206A_200E_206C_206E_202A_202D_200B_202D_206F_206E_206D_200E_206B_202E_206E_202A_206C_206F_202A_202B_202C_206B_206A_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-670330761), ImGuiTableColumnFlags.WidthStretch, 0f, 0u); - _202A_202B_202B_206F_206C_200F_206E_200B_200C_202E_202B_202B_206C_206B_202E_202C_202E_206A_200E_206C_206E_202A_202D_200B_202D_206F_206E_206D_200E_206B_202E_206E_202A_206C_206F_202A_202B_202C_206B_206A_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(465239065), ImGuiTableColumnFlags.WidthFixed, 200f, 0u); - IEnumerator<SinglePlayerDutyInfo> enumerator = dutyInfos.GetEnumerator(); - try + ImGui.TableSetupColumn("Quest", ImGuiTableColumnFlags.WidthStretch); + ImGui.TableSetupColumn("Options", ImGuiTableColumnFlags.WidthFixed, 200f); + foreach (SinglePlayerDutyInfo dutyInfo in dutyInfos) { - while (_202D_206B_206B_200D_202A_206F_202C_202A_202E_206B_202E_206B_200B_202A_200B_202D_206D_202E_206E_202D_202E_206A_200D_206E_200D_206A_200E_200B_200C_202B_206B_200E_202C_202D_202D_200D_206B_206A_202D_200F_202E((IEnumerator)enumerator)) + ImGui.TableNextRow(); + string[] array = (dutyInfo.EnabledByDefault ? SupportedCfcOptions : UnsupportedCfcOptions); + int currentItem = 0; + if (base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Contains(dutyInfo.ContentFinderConditionId)) { - SinglePlayerDutyInfo current = enumerator.Current; - _200B_202A_202E_202C_206C_206F_200B_200C_206E_206B_206C_206A_200D_202E_202D_200E_206C_200B_206A_202B_202A_206B_202C_206D_202D_206A_202A_202A_202D_200B_200C_202D_206E_200B_202A_200D_202C_202D_202D_206D_202E(); - string[] array = (current.EnabledByDefault ? SupportedCfcOptions : UnsupportedCfcOptions); - int currentItem = 0; - if (base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Contains(current.ContentFinderConditionId)) - { - currentItem = 1; - } - if (base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Contains(current.ContentFinderConditionId)) - { - currentItem = 2; - } - int num; - if (_200B_200C_202D_206A_202A_200D_202B_200E_202E_200D_200F_202D_200C_200C_200F_206B_206D_200E_206B_200F_206F_200F_200D_200D_206A_202E_200C_202C_200B_206E_200D_206B_202D_200D_202C_206E_200C_200E_206B_206E_202E()) - { - _206A_206F_202B_206E_206B_206E_206C_206D_202D_202E_206E_206E_200B_200B_202E_206A_206D_200F_200C_202D_206E_202C_206F_200B_202D_206C_200D_206C_200D_206A_206E_206A_206C_200E_202A_200C_200E_200E_206F_202E_202E(); - float reservedRightWidth = ((!current.Enabled || current.Notes.Length != 0) ? (_206F_206C_206E_202C_200D_202D_206F_200F_202A_200F_200D_200D_206B_202C_206D_202E_202A_206A_202B_202D_202D_200E_200F_200E_200D_206B_202B_200C_206D_200B_202A_206E_200F_200F_200B_202D_206C_202E_200B_206B_202E() + _200E_202B_206C_200F_206C_206F_206E_202E_202A_206D_202C_200D_200B_206B_200D_206A_206E_206C_202E_206F_202D_200E_206A_202E_206F_200D_200F_200C_200C_202B_206C_200E_200C_206C_200B_206D_206D_202B_206C_202E_202E().ItemSpacing.X) : 0f); - UiThemeUtils.RowLabel(current.Name, reservedRightWidth); - if (current.Enabled) - { - num = ((current.Notes.Length == 0) ? (-1210552144) : (-1210552143)); - goto IL_0238; - } - _202D_206F_206D_206B_200F_202D_206D_202C_202D_206F_202E_206C_202C_202E_206F_200E_200E_200B_206D_202B_202E_206C_200E_206C_206C_202D_202A_200C_200C_206E_206E_200D_202A_206B_202D_202D_206B_202C_206F_202E(); - ImRaii.FontDisposable fontDisposable = _202A_202B_206D_200D_206F_200F_202B_200D_202D_200F_206A_202B_206A_200F_202C_206D_206C_206A_202A_200F_206F_206B_202E_206D_202E_202B_202D_200D_200D_202D_202A_200E_206D_206B_202A_202B_202C_206C_206A_206B_202E(_200D_206B_202A_200E_206A_202B_206E_200D_200B_200C_200B_206F_206B_202E_200E_202A_200D_202C_202E_202E_206E_202E_206C_206A_206F_200F_202E_206F_202E_202B_202D_202C_200B_202E_200C_202D_206C_206B_202C_206F_202E(), true); - try - { - _206E_206C_202E_200C_202C_206A_206C_200D_206B_202E_200E_200D_206B_202B_202C_200C_202E_206A_206E_202B_200E_202A_200F_202D_206E_202B_200D_206A_200F_206D_202B_202C_206E_200F_200C_202E_202A_202E_206B_200D_202E(ref UiThemeUtils.StatusLocked, (ImU8String)_202C_206A_206C_206F_200C_200F_202C_206F_202A_200F_206C_200E_202C_206E_200C_206F_206B_206D_206D_206A_200C_200B_202D_206C_202E_206D_202D_206C_206D_206B_206C_202B_202C_206A_200F_200C_206B_206A_206D_202B_202E(FontAwesomeIcon.Times)); - } - finally - { - num = ((fontDisposable == null) ? 144414257 : 144414258); - while (true) - { - int num2 = num; - int num3 = 144414256; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 144414258; - break; - case 2: - _200E_200D_206F_202C_200D_200F_206D_206C_200B_200E_200E_202E_202E_202A_206C_200E_202E_200F_200B_202B_200D_206B_206F_206C_206C_202C_202C_206D_206E_200F_200B_200F_202A_206B_202D_206C_202C_200B_200B_200F_202E((IDisposable)fontDisposable); - num = 144414257; - break; - case 1: - goto end_IL_0187; - } - continue; - end_IL_0187: - break; - } - } - if (_202A_206B_200F_200B_206C_206B_202A_200D_206B_202D_206D_200B_202E_202D_206F_202C_200B_200F_206D_202A_206C_206B_206F_202E_200F_202D_200E_202C_200D_200E_200B_202B_206B_200B_206B_206A_206F_202A_206D_202E()) - { - using (_206B_206F_206E_202B_200B_206E_200D_206F_202D_200B_206E_206E_206C_200D_206D_202E_206C_202E_206F_200E_206D_200C_206A_200F_202E_206C_200D_200E_206E_206A_206E_200D_202D_200C_200F_206A_200F_202C_206C_206D_202E()) - { - _206C_200D_206D_202C_200C_202B_202A_206C_200E_206C_202C_202D_206A_200F_200B_202A_206A_206A_206F_202C_206B_202E_200D_200F_200E_202D_206A_202B_200F_202B_202A_202C_202B_202B_202A_200E_200F_202B_206B_202E_202E(400f); - _200E_200B_202D_202A_206D_200D_200C_202B_200C_206F_206E_206E_200D_200B_200F_206B_202D_200E_200B_206F_200B_206A_206B_206B_202B_202B_202C_202B_200E_206F_202A_206B_200D_206F_202A_206E_202B_206A_200F_200D_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1139774933)); - _200E_200F_206D_206B_206F_200E_206F_200F_202B_200F_202E_206E_206B_202B_200C_200C_200B_200F_202E_202A_202C_200B_202E_202C_200E_202E_200D_202D_206C_206C_202D_206E_202A_206B_206E_206A_206E_200F_206A_202E(); - } - } - } - goto IL_026a; - IL_02a9: - ImU8String imU8String = new ImU8String(6, 1); - imU8String.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1875056268)); - imU8String.AppendFormatted(current.ContentFinderConditionId); - ImRaii.IdDisposable idDisposable = _202D_206F_200B_202C_202A_206A_206C_206E_200C_206E_206B_206A_202C_200F_206D_206C_202B_202B_206B_202E_202E_202C_206C_206E_200E_200C_206A_202E_200C_206B_200B_200B_206D_206D_202D_200B_206B_206B_206C_200D_202E(imU8String, true); - try - { - ImRaii.DisabledDisposable disabledDisposable = _202D_200E_206A_202E_206E_206C_202D_206F_200C_202A_202A_200B_206D_200F_206D_202C_206E_200E_202C_200B_202E_200B_200C_202D_202A_202E_200C_200E_202A_206C_200D_200F_202C_202E_206D_206B_206C_202C_206C_202E_202E(!current.Enabled); - try - { - _200D_206A_206A_200B_200B_206B_202A_206B_200D_206B_206D_200B_202E_202B_200E_206B_206A_202B_200D_202B_200D_200B_206D_200F_200F_206D_202B_206D_206F_206E_202C_206F_200B_200D_206B_206D_200F_202A_202A_206C_202E(-1f); - num = ((!UiThemeUtils.ThemedCombo(string.Empty, ref currentItem, array, array.Length)) ? (-430072401) : (-430072402)); - while (true) - { - int num5 = num; - int num3 = -430072405; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Add(current.ContentFinderConditionId); - num = -430072406; - break; - case 5: - base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Remove(current.ContentFinderConditionId); - base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Remove(current.ContentFinderConditionId); - num = ((currentItem != 1) ? (-430072408) : (-430072407)); - break; - case 3: - num = ((currentItem != 2) ? (-430072406) : (-430072403)); - break; - case 0: - num = -430072402; - break; - case 1: - Save(); - num = -430072401; - break; - case 6: - base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Add(current.ContentFinderConditionId); - num = -430072406; - break; - case 4: - goto end_IL_0321; - } - continue; - end_IL_0321: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? (-29554292) : (-29554289)); - while (true) - { - int num6 = num; - int num3 = -29554290; - int num4 = num6; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -29554289; - break; - case 2: - goto end_IL_0467; - case 1: - _200E_200D_206F_202C_200D_200F_206D_206C_200B_200E_200E_202E_202E_202A_206C_200E_202E_200F_200B_202B_200D_206B_206F_206C_206C_202C_202C_206D_206E_200F_200B_200F_202A_206B_202D_206C_202C_200B_200B_200F_202E((IDisposable)disabledDisposable); - num = -29554292; - break; - } - continue; - end_IL_0467: - break; - } - } - } - finally - { - num = ((idDisposable == null) ? (-175423025) : (-175423026)); - while (true) - { - int num7 = num; - int num3 = -175423025; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 2: - num = -175423026; - break; - case 1: - _200E_200D_206F_202C_200D_200F_206D_206C_200B_200E_200E_202E_202E_202A_206C_200E_202E_200F_200B_202B_200D_206B_206F_206C_206C_202C_202C_206D_206E_200F_200B_200F_202A_206B_202D_206C_202C_200B_200B_200F_202E((IDisposable)idDisposable); - num = -175423025; - break; - case 0: - goto end_IL_04d2; - } - continue; - end_IL_04d2: - break; - } - } - continue; - IL_0238: - while (true) - { - int num10 = num; - int num3 = -1210552142; - int num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 2: - goto end_IL_0238; - case 3: - ConfigComponent.DrawNotes(current.EnabledByDefault, current.Notes); - num = -1210552144; - break; - case 0: - num = -1210552143; - break; - case 1: - goto IL_02a9; - } - continue; - end_IL_0238: - break; - } - goto IL_026a; - IL_026a: - if (!_200B_200C_202D_206A_202A_200D_202B_200E_202E_200D_200F_202D_200C_200C_200F_206B_206D_200E_206B_200F_206F_200F_200D_200D_206A_202E_200C_202C_200B_206E_200D_206B_202D_200D_202C_206E_200C_200E_206B_206E_202E()) - { - continue; - } - num = -1210552141; - goto IL_0238; + currentItem = 1; } - } - finally - { - int num = ((enumerator == null) ? 10830017 : 10830018); - while (true) + if (base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Contains(dutyInfo.ContentFinderConditionId)) { - int num13 = num; - int num3 = 10830019; - int num4 = num13; - int num14 = num4 + num3; - int num15 = num4 & num3; - switch (num14 - (num15 + num15)) + currentItem = 2; + } + if (ImGui.TableNextColumn()) + { + ImGui.AlignTextToFramePadding(); + float reservedRightWidth = ((!dutyInfo.Enabled || dutyInfo.Notes.Length != 0) ? (ImGui.GetFrameHeight() + ImGui.GetStyle().ItemSpacing.X) : 0f); + UiThemeUtils.RowLabel(dutyInfo.Name, reservedRightWidth); + if (!dutyInfo.Enabled) { - case 0: - num = 10830018; - break; - case 2: - goto end_IL_054e; - case 1: - _200E_200D_206F_202C_200D_200F_206D_206C_200B_200E_200E_202E_202E_202A_206C_200E_202E_200F_200B_202B_200D_206B_206F_206C_206C_202C_202C_206D_206E_200F_200B_200F_202A_206B_202D_206C_202C_200B_200B_200F_202E((IDisposable)enumerator); - num = 10830017; - break; + ImGui.SameLine(); + using (ImRaii.PushFont(UiBuilder.IconFont)) + { + ImGui.TextColored(in UiThemeUtils.StatusLocked, FontAwesomeIcon.Times.ToIconString()); + } + if (ImGui.IsItemHovered()) + { + using (ImRaii.Tooltip()) + { + ImGui.PushTextWrapPos(400f); + ImGui.Text("Questionable doesn't include support for this quest."); + ImGui.PopTextWrapPos(); + } + } } + else if (dutyInfo.Notes.Length != 0) + { + ConfigComponent.DrawNotes(dutyInfo.EnabledByDefault, dutyInfo.Notes); + } + } + if (!ImGui.TableNextColumn()) + { continue; - end_IL_054e: - break; + } + ImU8String id = new ImU8String(6, 1); + id.AppendLiteral("##Duty"); + id.AppendFormatted(dutyInfo.ContentFinderConditionId); + using (ImRaii.PushId(id)) + { + using (ImRaii.Disabled(!dutyInfo.Enabled)) + { + ImGui.SetNextItemWidth(-1f); + if (UiThemeUtils.ThemedCombo(string.Empty, ref currentItem, array, array.Length)) + { + base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Remove(dutyInfo.ContentFinderConditionId); + base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Remove(dutyInfo.ContentFinderConditionId); + switch (currentItem) + { + case 1: + base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Add(dutyInfo.ContentFinderConditionId); + break; + case 2: + base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Add(dutyInfo.ContentFinderConditionId); + break; + } + Save(); + } + } } } } - [MethodImpl(MethodImplOptions.NoInlining)] private static ImRaii.ChildDisposable BeginChildArea() { - Vector2 vector = _206C_206D_200C_206A_200D_202E_206D_202B_206F_202B_206B_206A_202D_206F_206D_202B_200E_202C_200F_202B_200D_202A_206E_202B_206B_202A_206C_202E_202B_200F_206B_206D_200C_202D_206A_200E_200D_202E_206B_202E(); - return _202E_200D_200E_202E_206E_206C_206B_202B_206E_200C_202C_202C_200E_200D_200D_200B_202D_202E_206E_206D_206A_206D_202B_206F_206D_200F_206D_202D_200D_200C_200F_202C_200E_200E_200E_200C_202E_200C_202A_206C_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-363264000), new Vector2(vector.X, _206F_200F_206D_200D_200F_206C_200F_200B_202E_202D_200B_200C_202E_200D_202B_202C_200B_202E_202C_206D_200B_206C_200D_206C_202A_206B_202A_200D_202A_200C_206E_200D_200B_206B_206B_202B_206A_206A_200C_200D_202E(vector.Y - 30f - 12f, 200f)), true); + Vector2 contentRegionAvail = ImGui.GetContentRegionAvail(); + return ImRaii.Child("DutyConfiguration", new Vector2(contentRegionAvail.X, MathF.Max(contentRegionAvail.Y - 30f - 12f, 200f)), border: true); } private bool DrawPersistentAccordion(string label, string? rightText, string stateKey, Dictionary<string, bool> headerStates) { bool open = headerStates.GetValueOrDefault(stateKey, defaultValue: false); UiThemeUtils.ThemedAccordion(stateKey, label, rightText, ref open); - int num = ((open == headerStates.GetValueOrDefault(stateKey, defaultValue: false)) ? 1135011708 : 1135011709); - while (true) + if (open != headerStates.GetValueOrDefault(stateKey, defaultValue: false)) { - int num2 = num; - int num3 = 1135011708; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1135011709; - break; - case 0: - return open; - case 1: - headerStates[stateKey] = open; - Save(); - num = 1135011708; - break; - } + headerStates[stateKey] = open; + Save(); } + return open; } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawEnableAllButton() { - int num; - if (UiThemeUtils.IconTextButton(FontAwesomeIcon.CheckCircle, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1612441257))) + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.CheckCircle, "Enable All")) { base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Clear(); base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Clear(); - IEnumerator<SinglePlayerDutyInfo> enumerator = GetAllEnabledSinglePlayerDuties().GetEnumerator(); - try + foreach (SinglePlayerDutyInfo allEnabledSinglePlayerDuty in GetAllEnabledSinglePlayerDuties()) { - num = 104695518; - while (true) - { - int num2 = num; - int num3 = 104695516; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 104695518; - break; - case 3: - { - SinglePlayerDutyInfo current = enumerator.Current; - base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Add(current.ContentFinderConditionId); - num = 104695518; - break; - } - case 2: - num = (_202D_206B_206B_200D_202A_206F_202C_202A_202E_206B_202E_206B_200B_202A_200B_202D_206D_202E_206E_202D_202E_206A_200D_206E_200D_206A_200E_200B_200C_202B_206B_200E_202C_202D_202D_200D_206B_206A_202D_200F_202E((IEnumerator)enumerator) ? 104695519 : 104695517); - break; - case 1: - goto end_IL_005a; - } - continue; - end_IL_005a: - break; - } - } - finally - { - num = ((enumerator == null) ? (-1714249428) : (-1714249425)); - while (true) - { - int num5 = num; - int num3 = -1714249426; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_0101; - case 1: - _200E_200D_206F_202C_200D_200F_206D_206C_200B_200E_200E_202E_202E_202A_206C_200E_202E_200F_200B_202B_200D_206B_206F_206C_206C_202C_202C_206D_206E_200F_200B_200F_202A_206B_202D_206C_202C_200B_200B_200F_202E((IDisposable)enumerator); - num = -1714249428; - break; - case 0: - num = -1714249425; - break; - } - continue; - end_IL_0101: - break; - } + base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Add(allEnabledSinglePlayerDuty.ContentFinderConditionId); } Save(); } - num = ((!_202A_206B_200F_200B_206C_206B_202A_200D_206B_202D_206D_200B_202E_202D_206F_202C_200B_200F_206D_202A_206C_206B_206F_202E_200F_202D_200E_202C_200D_200E_200B_202B_206B_200B_206B_206A_206F_202A_206D_202E()) ? 1421940663 : 1421940660); - while (true) + if (ImGui.IsItemHovered()) { - int num6 = num; - int num3 = 1421940662; - int num4 = num6; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1421940660; - break; - case 1: - return; - case 2: - _202C_206C_206F_200E_200C_206D_206D_206C_206A_206C_206D_202E_202A_200D_200B_206F_206C_206A_200C_200E_202A_202D_206B_202A_202E_200F_206E_202C_200E_200E_206E_206F_206F_206D_206E_202B_200F_200B_202B_206F_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1435365237)); - num = 1421940663; - break; - } + ImGui.SetTooltip("Enable all of the quest battles, use at your own risk."); } } @@ -2403,96 +668,15 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent { int num = 0; int num2 = 0; - IEnumerator<SinglePlayerDutyInfo> enumerator = dutyInfos.GetEnumerator(); - try + foreach (SinglePlayerDutyInfo dutyInfo in dutyInfos) { - int num3 = 929460521; - SinglePlayerDutyInfo current = default(SinglePlayerDutyInfo); - while (true) + if (dutyInfo.Enabled) { - int num4 = num3; - int num5 = 929460527; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) + num2++; + if (base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Contains(dutyInfo.ContentFinderConditionId) || (!base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Contains(dutyInfo.ContentFinderConditionId) && dutyInfo.EnabledByDefault)) { - case 3: - { - int num10 = num; - num5 = 1; - num6 = num10; - num = (num6 | num5) + (num6 & num5); - num3 = 929460521; - break; + num++; } - case 2: - if (current.EnabledByDefault) - { - goto case 8; - } - goto case 7; - case 4: - { - int num9 = num2; - num5 = 1; - num6 = num9; - num2 = (num6 | num5) + (num6 & num5); - num3 = (base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Contains(current.ContentFinderConditionId) ? 929460519 : 929460526); - break; - } - case 8: - num3 = 929460524; - break; - case 7: - num3 = 929460521; - break; - case 6: - num3 = (_202D_206B_206B_200D_202A_206F_202C_202A_202E_206B_202E_206B_200B_202A_200B_202D_206D_202E_206E_202D_202E_206A_200D_206E_200D_206A_200E_200B_200C_202B_206B_200E_202C_202D_202D_200D_206B_206A_202D_200F_202E((IEnumerator)enumerator) ? 929460522 : 929460527); - break; - case 5: - current = enumerator.Current; - num3 = ((!current.Enabled) ? 929460521 : 929460523); - break; - case 1: - num3 = (base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Contains(current.ContentFinderConditionId) ? 929460520 : 929460525); - break; - case 9: - num3 = 929460521; - break; - case 0: - goto end_IL_0017; - } - continue; - end_IL_0017: - break; - } - } - finally - { - int num3 = ((enumerator == null) ? (-2020150969) : (-2020150972)); - while (true) - { - int num11 = num3; - int num5 = -2020150971; - int num6 = num11; - int num12 = num6 + num5; - int num13 = num6 & num5; - switch (num12 - (num13 + num13)) - { - case 2: - goto end_IL_01c4; - case 1: - _200E_200D_206F_202C_200D_200F_206D_206C_200B_200E_200E_202E_202E_202A_206C_200E_202E_200F_200B_202B_200D_206B_206F_206C_206C_202C_202C_206D_206E_200F_200B_200F_202A_206B_202D_206C_202C_200B_200B_200F_202E((IDisposable)enumerator); - num3 = -2020150969; - break; - case 0: - num3 = -2020150972; - break; - } - continue; - end_IL_01c4: - break; } } return (enabledCount: num, totalCount: num2); @@ -2502,151 +686,21 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent { int num = 0; int num2 = 0; - IEnumerator<List<SinglePlayerDutyInfo>> enumerator = _startingCityBattles.Values.GetEnumerator(); - try + foreach (List<SinglePlayerDutyInfo> value in _startingCityBattles.Values) { - int num3 = -1710617818; - while (true) - { - int num4 = num3; - int num5 = -1710617820; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) - { - case 2: - num3 = (_202D_206B_206B_200D_202A_206F_202C_202A_202E_206B_202E_206B_200B_202A_200B_202D_206D_202E_206E_202D_202E_206A_200D_206E_200D_206A_200E_200B_200C_202B_206B_200E_202C_202D_202D_200D_206B_206A_202D_200F_202E((IEnumerator)enumerator) ? (-1710617819) : (-1710617817)); - break; - case 1: - { - List<SinglePlayerDutyInfo> current = enumerator.Current; - (int enabledCount, int totalCount) questBattleCounts = GetQuestBattleCounts(current); - int item = questBattleCounts.enabledCount; - int item2 = questBattleCounts.totalCount; - int num9 = num; - num5 = item; - num6 = num9; - int num10 = num6 ^ num5; - int num11 = num6 & num5; - num = num10 + (num11 + num11); - int num12 = num2; - num5 = item2; - num6 = num12; - int num13 = num6 ^ num5; - int num14 = num6 & num5; - num2 = num13 + (num14 + num14); - num3 = -1710617818; - break; - } - case 0: - num3 = -1710617818; - break; - case 3: - goto end_IL_0021; - } - continue; - end_IL_0021: - break; - } + (int enabledCount, int totalCount) questBattleCounts = GetQuestBattleCounts(value); + int item = questBattleCounts.enabledCount; + int item2 = questBattleCounts.totalCount; + num += item; + num2 += item2; } - finally + foreach (List<SinglePlayerDutyInfo> value2 in _mainScenarioBattles.Values) { - int num3 = ((enumerator == null) ? (-1533787922) : (-1533787923)); - while (true) - { - int num15 = num3; - int num5 = -1533787924; - int num6 = num15; - int num16 = num6 + num5; - int num17 = num6 & num5; - switch (num16 - (num17 + num17)) - { - case 0: - num3 = -1533787923; - break; - case 2: - goto end_IL_00f8; - case 1: - _200E_200D_206F_202C_200D_200F_206D_206C_200B_200E_200E_202E_202E_202A_206C_200E_202E_200F_200B_202B_200D_206B_206F_206C_206C_202C_202C_206D_206E_200F_200B_200F_202A_206B_202D_206C_202C_200B_200B_200F_202E((IDisposable)enumerator); - num3 = -1533787922; - break; - } - continue; - end_IL_00f8: - break; - } - } - enumerator = _mainScenarioBattles.Values.GetEnumerator(); - try - { - int num3 = -2131619834; - while (true) - { - int num18 = num3; - int num5 = -2131619835; - int num6 = num18; - switch ((num6 | num5) - (num6 & num5)) - { - case 0: - num3 = -2131619834; - break; - case 2: - { - List<SinglePlayerDutyInfo> current2 = enumerator.Current; - (int enabledCount, int totalCount) questBattleCounts2 = GetQuestBattleCounts(current2); - int item3 = questBattleCounts2.enabledCount; - int item4 = questBattleCounts2.totalCount; - int num19 = num; - num5 = item3; - num6 = num19; - int num20 = num6 ^ num5; - int num21 = num6 & num5; - num = num20 + (num21 + num21); - int num22 = num2; - num5 = item4; - num6 = num22; - num2 = (num6 | num5) + (num6 & num5); - num3 = -2131619834; - break; - } - case 3: - num3 = (_202D_206B_206B_200D_202A_206F_202C_202A_202E_206B_202E_206B_200B_202A_200B_202D_206D_202E_206E_202D_202E_206A_200D_206E_200D_206A_200E_200B_200C_202B_206B_200E_202C_202D_202D_200D_206B_206A_202D_200F_202E((IEnumerator)enumerator) ? (-2131619833) : (-2131619836)); - break; - case 1: - goto end_IL_0162; - } - continue; - end_IL_0162: - break; - } - } - finally - { - int num3 = ((enumerator == null) ? (-1852342746) : (-1852342747)); - while (true) - { - int num23 = num3; - int num5 = -1852342748; - int num6 = num23; - int num24 = num6 + num5; - int num25 = num6 & num5; - switch (num24 - (num25 + num25)) - { - case 2: - goto end_IL_0237; - case 1: - _200E_200D_206F_202C_200D_200F_206D_206C_200B_200E_200E_202E_202E_202A_206C_200E_202E_200F_200B_202B_200D_206B_206F_206C_206C_202C_202C_206D_206E_200F_200B_200F_202A_206B_202D_206C_202C_200B_200B_200F_202E((IDisposable)enumerator); - num3 = -1852342746; - break; - case 0: - num3 = -1852342747; - break; - } - continue; - end_IL_0237: - break; - } + (int enabledCount, int totalCount) questBattleCounts2 = GetQuestBattleCounts(value2); + int item3 = questBattleCounts2.enabledCount; + int item4 = questBattleCounts2.totalCount; + num += item3; + num2 += item4; } return (enabledCount: num, totalCount: num2); } @@ -2655,78 +709,13 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent { int num = 0; int num2 = 0; - IEnumerator<List<SinglePlayerDutyInfo>> enumerator = _jobQuestBattles.Values.GetEnumerator(); - try + foreach (List<SinglePlayerDutyInfo> value in _jobQuestBattles.Values) { - int num3 = 1882322765; - while (true) - { - int num4 = num3; - int num5 = 1882322764; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) - { - case 0: - num3 = 1882322765; - break; - case 2: - { - List<SinglePlayerDutyInfo> current = enumerator.Current; - (int enabledCount, int totalCount) questBattleCounts = GetQuestBattleCounts(current); - int item = questBattleCounts.enabledCount; - int item2 = questBattleCounts.totalCount; - int num9 = num; - num5 = item; - num6 = num9; - int num10 = num6 ^ num5; - int num11 = num6 & num5; - num = num10 + (num11 + num11); - int num12 = num2; - num5 = item2; - num6 = num12; - int num13 = num6 ^ num5; - int num14 = num6 & num5; - num2 = num13 + (num14 + num14); - num3 = 1882322765; - break; - } - case 1: - num3 = (_202D_206B_206B_200D_202A_206F_202C_202A_202E_206B_202E_206B_200B_202A_200B_202D_206D_202E_206E_202D_202E_206A_200D_206E_200D_206A_200E_200B_200C_202B_206B_200E_202C_202D_202D_200D_206B_206A_202D_200F_202E((IEnumerator)enumerator) ? 1882322766 : 1882322767); - break; - case 3: - goto end_IL_0021; - } - continue; - end_IL_0021: - break; - } - } - finally - { - int num3 = ((enumerator == null) ? 1350854521 : 1350854520); - while (true) - { - int num15 = num3; - int num5 = 1350854521; - int num6 = num15; - switch ((num6 | num5) - (num6 & num5)) - { - case 2: - num3 = 1350854520; - break; - case 1: - _200E_200D_206F_202C_200D_200F_206D_206C_200B_200E_200E_202E_202E_202A_206C_200E_202E_200F_200B_202B_200D_206B_206F_206C_206C_202C_202C_206D_206E_200F_200B_200F_202A_206B_202D_206C_202C_200B_200B_200F_202E((IDisposable)enumerator); - num3 = 1350854521; - break; - case 0: - goto end_IL_00f8; - } - continue; - end_IL_00f8: - break; - } + (int enabledCount, int totalCount) questBattleCounts = GetQuestBattleCounts(value); + int item = questBattleCounts.enabledCount; + int item2 = questBattleCounts.totalCount; + num += item; + num2 += item2; } return (enabledCount: num, totalCount: num2); } @@ -2735,94 +724,19 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent { int num = 0; int num2 = 0; - IEnumerator<List<SinglePlayerDutyInfo>> enumerator = _roleQuestBattles.Values.GetEnumerator(); - int num5; - int num6; - try + foreach (List<SinglePlayerDutyInfo> value in _roleQuestBattles.Values) { - int num3 = -766289963; - while (true) - { - int num4 = num3; - num5 = -766289964; - num6 = num4; - switch ((num6 | num5) - (num6 & num5)) - { - case 0: - num3 = -766289963; - break; - case 1: - num3 = (_202D_206B_206B_200D_202A_206F_202C_202A_202E_206B_202E_206B_200B_202A_200B_202D_206D_202E_206E_202D_202E_206A_200D_206E_200D_206A_200E_200B_200C_202B_206B_200E_202C_202D_202D_200D_206B_206A_202D_200F_202E((IEnumerator)enumerator) ? (-766289961) : (-766289962)); - break; - case 3: - { - List<SinglePlayerDutyInfo> current = enumerator.Current; - (int enabledCount, int totalCount) questBattleCounts = GetQuestBattleCounts(current); - int item = questBattleCounts.enabledCount; - int item2 = questBattleCounts.totalCount; - int num7 = num; - num5 = item; - num6 = num7; - int num8 = num6 ^ num5; - int num9 = num6 & num5; - num = num8 + (num9 + num9); - int num10 = num2; - num5 = item2; - num6 = num10; - num2 = (num6 | num5) + (num6 & num5); - num3 = -766289963; - break; - } - case 2: - goto end_IL_0022; - } - continue; - end_IL_0022: - break; - } - } - finally - { - int num3 = ((enumerator == null) ? 769404478 : 769404479); - while (true) - { - int num11 = num3; - num5 = 769404478; - num6 = num11; - int num12 = num6 + num5; - int num13 = num6 & num5; - switch (num12 - (num13 + num13)) - { - case 0: - goto end_IL_00fa; - case 1: - _200E_200D_206F_202C_200D_200F_206D_206C_200B_200E_200E_202E_202E_202A_206C_200E_202E_200F_200B_202B_200D_206B_206F_206C_206C_202C_202C_206D_206E_200F_200B_200F_202A_206B_202D_206C_202C_200B_200B_200F_202E((IDisposable)enumerator); - num3 = 769404478; - break; - case 2: - num3 = 769404479; - break; - } - continue; - end_IL_00fa: - break; - } + (int enabledCount, int totalCount) questBattleCounts = GetQuestBattleCounts(value); + int item = questBattleCounts.enabledCount; + int item2 = questBattleCounts.totalCount; + num += item; + num2 += item2; } (int enabledCount, int totalCount) questBattleCounts2 = GetQuestBattleCounts(_otherRoleQuestBattles); int item3 = questBattleCounts2.enabledCount; int item4 = questBattleCounts2.totalCount; - int num14 = num; - num5 = item3; - num6 = num14; - int num15 = num6 ^ num5; - int num16 = num6 & num5; - num = num15 + (num16 + num16); - int num17 = num2; - num5 = item4; - num6 = num17; - int num18 = num6 ^ num5; - int num19 = num6 & num5; - num2 = num18 + (num19 + num19); + num += item3; + num2 += item4; return (enabledCount: num, totalCount: num2); } @@ -2830,304 +744,29 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent { int num = 0; int num2 = 0; - using (ImmutableList<(string, List<SinglePlayerDutyInfo>)>.Enumerator enumerator = _otherQuestBattles.GetEnumerator()) + foreach (var otherQuestBattle in _otherQuestBattles) { - int num3 = -1177106358; - while (true) - { - int num4 = num3; - int num5 = -1177106358; - int num6 = num4; - switch ((num6 | num5) - (num6 & num5)) - { - case 0: - num3 = (enumerator.MoveNext() ? (-1177106359) : (-1177106357)); - break; - case 3: - { - List<SinglePlayerDutyInfo> item = enumerator.Current.Item2; - (int enabledCount, int totalCount) questBattleCounts = GetQuestBattleCounts(item); - int item2 = questBattleCounts.enabledCount; - int item3 = questBattleCounts.totalCount; - int num7 = num; - num5 = item2; - num6 = num7; - int num8 = num6 ^ num5; - int num9 = num6 & num5; - num = num8 + (num9 + num9); - int num10 = num2; - num5 = item3; - num6 = num10; - num2 = (num6 | num5) + (num6 & num5); - num3 = -1177106358; - break; - } - case 2: - num3 = -1177106358; - break; - case 1: - goto end_IL_001c; - } - continue; - end_IL_001c: - break; - } + List<SinglePlayerDutyInfo> item = otherQuestBattle.Item2; + (int enabledCount, int totalCount) questBattleCounts = GetQuestBattleCounts(item); + int item2 = questBattleCounts.enabledCount; + int item3 = questBattleCounts.totalCount; + num += item2; + num2 += item3; } return (enabledCount: num, totalCount: num2); } - [MethodImpl(MethodImplOptions.NoInlining)] static SinglePlayerDutyConfigComponent() { int num = 5; List<(EClassJob, string)> list = new List<(EClassJob, string)>(num); CollectionsMarshal.SetCount(list, num); Span<(EClassJob, string)> span = CollectionsMarshal.AsSpan(list); - span[0] = (EClassJob.Paladin, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(891173026)); - span[1] = (EClassJob.WhiteMage, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(337356766)); - span[2] = (EClassJob.Lancer, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1720221262)); - span[3] = (EClassJob.Bard, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1993977067)); - span[4] = (EClassJob.BlackMage, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-702703821)); + span[0] = (EClassJob.Paladin, "Tank Role Quests"); + span[1] = (EClassJob.WhiteMage, "Healer Role Quests"); + span[2] = (EClassJob.Lancer, "Melee Role Quests"); + span[3] = (EClassJob.Bard, "Physical Ranged Role Quests"); + span[4] = (EClassJob.BlackMage, "Magical Ranged Role Quests"); RoleQuestCategories = list; } - - static string _206B_200B_202D_206F_206F_206B_202C_202C_200D_200C_206D_206B_202E_200E_206B_206F_202B_200D_202E_206A_200E_200B_202E_206C_206B_202D_202C_206E_200B_202D_202A_200B_202A_206F_206D_202A_200B_206D_202B_202A_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static bool _200C_206D_200F_202D_202B_202D_206D_206C_202C_202E_202A_202B_200E_200D_200B_200B_202A_206F_206B_202E_200C_202A_200B_206E_206C_202B_200E_206B_206C_202C_206F_206F_202B_206B_206B_206B_202B_206F_202E_200E_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static bool _200B_202D_206F_200D_206A_200E_202E_202D_202C_206A_202C_206A_206D_206F_202E_200D_202E_200B_206F_200C_200C_202D_202A_200C_206E_202A_202D_200F_206A_202C_206F_202C_202B_202B_206F_200C_202D_206D_202C_200F_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.EndsWith(P_1, P_2); - } - - static string _200E_200C_200C_206E_200E_200C_200C_206B_206D_202A_206C_200B_202B_202B_202B_202A_202C_206C_200B_206B_200E_202E_206D_206E_206F_206D_200C_200F_200E_206B_200F_200F_202C_206D_202A_206F_206C_206A_200C_206B_202E(string P_0, string P_1, string P_2, string P_3) - { - return P_0 + P_1 + P_2 + P_3; - } - - static string _200B_200E_202B_200C_202A_200E_202E_202E_202B_202E_206D_202B_206F_200E_202C_202E_206C_206A_200B_200B_202D_202E_200D_200B_200F_202C_206D_206A_206B_206C_200B_202C_200F_202B_206C_202A_202A_202B_202A_206B_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static bool _202D_206B_206B_200D_202A_206F_202C_202A_202E_206B_202E_206B_200B_202A_200B_202D_206D_202E_206E_202D_202E_206A_200D_206E_200D_206A_200E_200B_200C_202B_206B_200E_202C_202D_202D_200D_206B_206A_202D_200F_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200E_200D_206F_202C_200D_200F_206D_206C_200B_200E_200E_202E_202E_202A_206C_200E_202E_200F_200B_202B_200D_206B_206F_206C_206C_202C_202C_206D_206E_200F_200B_200F_202A_206B_202D_206C_202C_200B_200B_200F_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _206D_206E_202D_202E_206D_206E_200F_202D_206B_206E_202E_200D_206F_200D_200F_200C_206D_202B_200E_206B_200E_202C_206B_202C_200F_206D_206F_206F_206E_200D_206E_202B_206C_200C_200D_202B_206E_200D_202D_202D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _202E_202C_200D_200E_206F_202B_200E_200C_200C_202E_206F_206D_202D_200B_200F_206F_202A_200C_200E_206F_200E_200F_200F_200B_200C_206C_206F_202D_206E_200C_200F_202A_202A_202B_206B_206A_206F_206F_202B_206A_202E(QuestRoot P_0) - { - return P_0.Disabled; - } - - static void _202E_202A_202C_200F_206F_200B_206D_206C_202A_202E_200C_206D_200D_202C_206C_200B_206F_202D_206E_200D_200B_202B_202C_200E_206C_202C_200E_206E_206B_206A_200F_202E_206B_202E_200E_202E_200F_206A_206E_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static ushort _202D_202C_206F_206C_202D_200D_200C_202C_206B_206E_206D_206A_200F_206F_202D_206E_206A_206C_202B_200E_200B_206E_206E_200C_202B_200C_200E_206E_206B_206E_202B_202A_206A_200D_206D_200F_202B_202B_202D_200D_202E(ElementId P_0) - { - return P_0.Value; - } - - static void _206B_202A_200C_206C_202C_206C_202C_200C_200D_200F_200E_202C_200F_200B_206F_200C_202C_206A_206C_200E_200C_202A_206F_202B_200D_202E_206B_200F_206F_200F_206B_202C_202A_200E_202E_202A_200C_200B_202D_200C_202E() - { - ImGui.Spacing(); - } - - static ImRaii.DisabledDisposable _202D_200E_206A_202E_206E_206C_202D_206F_200C_202A_202A_200B_206D_200F_206D_202C_206E_200E_202C_200B_202E_200B_200C_202D_202A_202E_200C_200E_202A_206C_200D_200F_202C_202E_206D_206B_206C_202C_206C_202E_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static Vector2 _206C_206D_200C_206A_200D_202E_206D_202B_206F_202B_206B_206A_202D_206F_206D_202B_200E_202C_200F_202B_200D_202A_206E_202B_206B_202A_206C_202E_202B_200F_206B_206D_200C_202D_206A_200E_200D_202E_206B_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static float _206E_200D_202A_202D_206E_200C_200D_206D_206F_200D_206D_202D_200E_200D_206F_200E_202E_206C_206B_202A_206C_200F_206B_200F_200B_206E_200C_202D_202B_202A_200C_202D_200D_202B_206D_200F_200D_200B_202E_206E_202E(float P_0, float P_1) - { - return MathF.Min(P_0, P_1); - } - - static void _200D_206A_206A_200B_200B_206B_202A_206B_200D_206B_206D_200B_202E_202B_200E_206B_206A_202B_200D_202B_200D_200B_206D_200F_200F_206D_202B_206D_206F_206E_202C_206F_200B_200D_206B_206D_200F_202A_202A_206C_202E(float P_0) - { - ImGui.SetNextItemWidth(P_0); - } - - static void _202D_206F_206D_206B_200F_202D_206D_202C_202D_206F_202E_206C_202C_202E_206F_200E_200E_200B_206D_202B_202E_206C_200E_206C_206C_202D_202A_200C_200C_206E_206E_200D_202A_206B_202D_202D_206B_202C_206F_202E() - { - ImGui.SameLine(); - } - - static bool _206B_206D_200D_202B_202B_200C_202E_206D_206B_206D_206E_202D_200F_202C_202A_202D_206E_202D_206F_200B_202A_200B_200F_202E_200D_202D_200E_206C_200B_200B_206A_206E_202B_206D_202D_206A_202B_202D_206D_202C_202E(ImU8String P_0, bool P_1) - { - return ImGui.RadioButton(P_0, P_1); - } - - static int _202C_202D_206F_200E_200E_202B_202C_206E_206B_200B_202E_206F_206E_202D_202C_206B_206D_206C_200F_202C_202B_202B_206E_202D_206C_200E_206D_200D_202D_200E_206D_200D_200B_206C_206F_206E_206A_200F_206D_206F_202E(int P_0, int P_1) - { - return Math.Max(P_0, P_1); - } - - static bool _202A_200F_206C_202B_202B_206D_200E_206F_200F_206B_206A_206F_206C_202E_200B_202D_206D_200B_200C_202E_202A_202D_202E_202D_206C_200E_200C_202D_206A_206B_206E_206D_206D_202A_202B_202E_200D_206B_200F_200D_202E(ImU8String P_0, ref int P_1, int P_2, int P_3, ImU8String P_4, ImGuiInputTextFlags P_5) - { - return ImGui.InputInt(P_0, ref P_1, P_2, P_3, P_4, P_5); - } - - static float _202E_200D_206D_200D_200B_202E_206A_206D_202C_200B_200B_206F_206A_206C_200B_200F_200D_206B_202E_202C_206A_202D_200C_202B_200E_202D_202C_206A_206F_206C_200E_202A_202C_206F_200E_200B_200B_202D_200E_200C_202E() - { - return ImGui.GetCursorPosY(); - } - - static ImGuiStylePtr _200E_202B_206C_200F_206C_206F_206E_202E_202A_206D_202C_200D_200B_206B_200D_206A_206E_206C_202E_206F_202D_200E_206A_202E_206F_200D_200F_200C_200C_202B_206C_200E_200C_206C_200B_206D_206D_202B_206C_202E_202E() - { - return ImGui.GetStyle(); - } - - static void _206D_206B_200D_206B_206B_206A_200D_206D_202D_206E_202D_200B_200C_202A_206D_206E_202B_202D_200E_206B_206C_202D_202A_202E_206A_206C_206B_202B_202A_202B_200C_206A_206C_202C_202D_200D_200D_206F_206D_206E_202E(float P_0) - { - ImGui.SetCursorPosY(P_0); - } - - static string _206E_200C_206F_202A_206A_200D_200C_202B_200E_200E_202B_206C_200D_202B_200C_200B_202C_200D_200E_206A_206C_206B_206B_202B_202C_202D_200B_202A_206F_206B_202B_200E_206F_202D_206C_200B_200D_200C_206E_200E_202E(EExpansionVersion P_0) - { - return P_0.ToFriendlyString(); - } - - static bool _200C_202D_200B_206A_200F_200E_202B_202B_200C_202C_202A_206B_202D_202C_202A_206D_206A_200F_202E_206E_202A_206D_202D_202C_200E_206C_200F_200F_206C_200E_200E_202C_206E_206D_206C_202B_206B_202B_200D_206C_202E(EClassJob P_0) - { - return P_0.IsCrafter(); - } - - static bool _206C_206B_206A_202A_206A_206F_206D_202C_200F_200C_206E_200D_206A_200D_206C_200D_202C_206B_202D_202C_200C_200D_202C_202A_206E_202B_200D_206D_200E_200C_202E_200B_206C_206E_200E_206C_206C_200B_202C_200C_202E(EClassJob P_0) - { - return P_0.IsGatherer(); - } - - static void _202C_202B_206B_200D_202A_202E_206C_206E_202A_206A_202B_200B_202E_202E_206D_200D_206E_206C_202A_200D_206D_206C_206E_200F_202B_202D_200F_206F_200C_206D_202C_206D_202B_206E_206B_206F_206A_206C_206A_202E_202E() - { - ImGui.Separator(); - } - - static string _206F_206F_206F_206D_206C_200E_206D_200E_200D_202E_200F_202C_202C_206E_202C_206F_200E_200B_200F_200B_202A_206B_206B_202A_206C_200E_206C_206D_200D_202A_200C_202E_202D_206E_202B_206F_206C_200C_206B_200E_202E(EClassJob P_0) - { - return P_0.ToFriendlyString(); - } - - static bool _200D_206B_206C_206C_202E_200C_206A_206C_206B_200C_200C_200D_200E_200D_206D_202D_200F_200F_202A_200F_206D_200C_200E_206A_206F_202C_202C_206B_206F_206A_202A_202D_202C_200C_206B_200E_200C_200D_202A_206C_202E(EClassJob P_0) - { - return P_0.IsClass(); - } - - static EClassJob _200D_206F_200C_200B_200D_206B_200E_206B_200D_206B_206F_206C_206E_202C_202C_202B_206D_202A_206D_206D_206C_202E_200F_202C_206B_200C_202C_200F_200B_200C_202A_206A_206D_200C_206F_202A_200E_202C_202A_206A_202E(EClassJob P_0) - { - return P_0.AsJob(); - } - - static void _202A_202B_202B_206F_206C_200F_206E_200B_200C_202E_202B_202B_206C_206B_202E_202C_202E_206A_200E_206C_206E_202A_202D_200B_202D_206F_206E_206D_200E_206B_202E_206E_202A_206C_206F_202A_202B_202C_206B_206A_202E(ImU8String P_0, ImGuiTableColumnFlags P_1, float P_2, uint P_3) - { - ImGui.TableSetupColumn(P_0, P_1, P_2, P_3); - } - - static void _200B_202A_202E_202C_206C_206F_200B_200C_206E_206B_206C_206A_200D_202E_202D_200E_206C_200B_206A_202B_202A_206B_202C_206D_202D_206A_202A_202A_202D_200B_200C_202D_206E_200B_202A_200D_202C_202D_202D_206D_202E() - { - ImGui.TableNextRow(); - } - - static bool _200B_200C_202D_206A_202A_200D_202B_200E_202E_200D_200F_202D_200C_200C_200F_206B_206D_200E_206B_200F_206F_200F_200D_200D_206A_202E_200C_202C_200B_206E_200D_206B_202D_200D_202C_206E_200C_200E_206B_206E_202E() - { - return ImGui.TableNextColumn(); - } - - static void _206A_206F_202B_206E_206B_206E_206C_206D_202D_202E_206E_206E_200B_200B_202E_206A_206D_200F_200C_202D_206E_202C_206F_200B_202D_206C_200D_206C_200D_206A_206E_206A_206C_200E_202A_200C_200E_200E_206F_202E_202E() - { - ImGui.AlignTextToFramePadding(); - } - - static float _206F_206C_206E_202C_200D_202D_206F_200F_202A_200F_200D_200D_206B_202C_206D_202E_202A_206A_202B_202D_202D_200E_200F_200E_200D_206B_202B_200C_206D_200B_202A_206E_200F_200F_200B_202D_206C_202E_200B_206B_202E() - { - return ImGui.GetFrameHeight(); - } - - static ImFontPtr _200D_206B_202A_200E_206A_202B_206E_200D_200B_200C_200B_206F_206B_202E_200E_202A_200D_202C_202E_202E_206E_202E_206C_206A_206F_200F_202E_206F_202E_202B_202D_202C_200B_202E_200C_202D_206C_206B_202C_206F_202E() - { - return UiBuilder.IconFont; - } - - static ImRaii.FontDisposable _202A_202B_206D_200D_206F_200F_202B_200D_202D_200F_206A_202B_206A_200F_202C_206D_206C_206A_202A_200F_206F_206B_202E_206D_202E_202B_202D_200D_200D_202D_202A_200E_206D_206B_202A_202B_202C_206C_206A_206B_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static string _202C_206A_206C_206F_200C_200F_202C_206F_202A_200F_206C_200E_202C_206E_200C_206F_206B_206D_206D_206A_200C_200B_202D_206C_202E_206D_202D_206C_206D_206B_206C_202B_202C_206A_200F_200C_206B_206A_206D_202B_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static void _206E_206C_202E_200C_202C_206A_206C_200D_206B_202E_200E_200D_206B_202B_202C_200C_202E_206A_206E_202B_200E_202A_200F_202D_206E_202B_200D_206A_200F_206D_202B_202C_206E_200F_200C_202E_202A_202E_206B_200D_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static bool _202A_206B_200F_200B_206C_206B_202A_200D_206B_202D_206D_200B_202E_202D_206F_202C_200B_200F_206D_202A_206C_206B_206F_202E_200F_202D_200E_202C_200D_200E_200B_202B_206B_200B_206B_206A_206F_202A_206D_202E() - { - return ImGui.IsItemHovered(); - } - - static ImRaii.TooltipDisposable _206B_206F_206E_202B_200B_206E_200D_206F_202D_200B_206E_206E_206C_200D_206D_202E_206C_202E_206F_200E_206D_200C_206A_200F_202E_206C_200D_200E_206E_206A_206E_200D_202D_200C_200F_206A_200F_202C_206C_206D_202E() - { - return ImRaii.Tooltip(); - } - - static void _206C_200D_206D_202C_200C_202B_202A_206C_200E_206C_202C_202D_206A_200F_200B_202A_206A_206A_206F_202C_206B_202E_200D_200F_200E_202D_206A_202B_200F_202B_202A_202C_202B_202B_202A_200E_200F_202B_206B_202E_202E(float P_0) - { - ImGui.PushTextWrapPos(P_0); - } - - static void _200E_200B_202D_202A_206D_200D_200C_202B_200C_206F_206E_206E_200D_200B_200F_206B_202D_200E_200B_206F_200B_206A_206B_206B_202B_202B_202C_202B_200E_206F_202A_206B_200D_206F_202A_206E_202B_206A_200F_200D_202E(ImU8String P_0) - { - ImGui.Text(P_0); - } - - static void _200E_200F_206D_206B_206F_200E_206F_200F_202B_200F_202E_206E_206B_202B_200C_200C_200B_200F_202E_202A_202C_200B_202E_202C_200E_202E_200D_202D_206C_206C_202D_206E_202A_206B_206E_206A_206E_200F_206A_202E() - { - ImGui.PopTextWrapPos(); - } - - static ImRaii.IdDisposable _202D_206F_200B_202C_202A_206A_206C_206E_200C_206E_206B_206A_202C_200F_206D_206C_202B_202B_206B_202E_202E_202C_206C_206E_200E_200C_206A_202E_200C_206B_200B_200B_206D_206D_202D_200B_206B_206B_206C_200D_202E(ImU8String P_0, bool P_1) - { - return ImRaii.PushId(P_0, P_1); - } - - static float _206F_200F_206D_200D_200F_206C_200F_200B_202E_202D_200B_200C_202E_200D_202B_202C_200B_202E_202C_206D_200B_206C_200D_206C_202A_206B_202A_200D_202A_200C_206E_200D_200B_206B_206B_202B_206A_206A_200C_200D_202E(float P_0, float P_1) - { - return MathF.Max(P_0, P_1); - } - - static ImRaii.ChildDisposable _202E_200D_200E_202E_206E_206C_206B_202B_206E_200C_202C_202C_200E_200D_200D_200B_202D_202E_206E_206D_206A_206D_202B_206F_206D_200F_206D_202D_200D_200C_200F_202C_200E_200E_200E_200C_202E_200C_202A_206C_202E(ImU8String P_0, Vector2 P_1, bool P_2) - { - return ImRaii.Child(P_0, P_1, P_2); - } - - static void _202C_206C_206F_200E_200C_206D_206D_206C_206A_206C_206D_202E_202A_200D_200B_206F_206C_206A_200C_200E_202A_202D_206B_202A_202E_200F_206E_202C_200E_200E_206E_206F_206F_206D_206E_202B_200F_200B_202B_206F_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } } diff --git a/Questionable/Questionable.Windows.ConfigComponents/StopConditionComponent.cs b/Questionable/Questionable.Windows.ConfigComponents/StopConditionComponent.cs index 07c490e..f6b115e 100644 --- a/Questionable/Questionable.Windows.ConfigComponents/StopConditionComponent.cs +++ b/Questionable/Questionable.Windows.ConfigComponents/StopConditionComponent.cs @@ -1,14 +1,9 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; -using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Interface; -using Dalamud.Interface.ManagedFontAtlas; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin; using Dalamud.Plugin.Services; @@ -26,48 +21,9 @@ namespace Questionable.Windows.ConfigComponents; internal sealed class StopConditionComponent : ConfigComponent { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); + private static readonly string[] ConditionModeNames = new string[2] { "Pause", "Stop" }; - public static Func<Quest, string> _003C_003E9__29_1; - - public static Comparison<Quest> _003C_003E9__37_0; - - internal string _003CDrawAddQuestAccept_003Eb__29_1(Quest x) - { - return x.Info.Name; - } - - internal int _003CGetCurrentlyAcceptedQuests_003Eb__37_0(Quest a, Quest b) - { - return _202B_200C_202C_202B_202D_200B_200C_206E_200B_202D_200B_202B_200B_200E_200C_206A_200F_202E_206F_202B_206B_206F_200D_206C_200C_202D_206C_200B_200C_206A_200D_206E_202D_206F_206B_202A_200B_202A_206B_202E_202E(a.Info.Name, b.Info.Name, StringComparison.OrdinalIgnoreCase); - } - - static int _202B_200C_202C_202B_202D_200B_200C_206E_200B_202D_200B_202B_200B_200E_200C_206A_200F_202E_206F_202B_206B_206F_200D_206C_200C_202D_206C_200B_200C_206A_200D_206E_202D_206F_206B_202A_200B_202A_206B_202E_202E(string P_0, string P_1, StringComparison P_2) - { - return string.Compare(P_0, P_1, P_2); - } - } - - private static readonly string[] ConditionModeNames = new string[2] - { - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(905118381), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(560121957) - }; - - private static readonly string[] ConditionTypeNames = new string[7] - { - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(110723094), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1530936395), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-219663971), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-70647925), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2025939443), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1440127939), - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(661458144) - }; + private static readonly string[] ConditionTypeNames = new string[7] { "Quest Complete", "Quest Accept", "Level", "Global Sequence", "Inventory Full", "Before Duty", "Gil Threshold" }; private readonly IDalamudPluginInterface _pluginInterface; @@ -118,30 +74,7 @@ internal sealed class StopConditionComponent : ConfigComponent _objectTable = objectTable; _questController = questController; _questSelector.SuggestionPredicate = (Quest quest) => !stopConditionComponent.HasQuestCondition(quest.Id, EStopConditionType.QuestComplete); - _questSelector.DefaultPredicate = delegate(Quest quest) - { - int num = ((!quest.Info.IsMainScenarioQuest) ? 902983598 : 902983599); - while (true) - { - int num2 = num; - int num3 = 902983598; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return false; - case 1: - return questFunctions.IsQuestAccepted(quest.Id); - case 2: - goto IL_0061; - } - continue; - IL_0061: - num = 902983599; - } - }; + _questSelector.DefaultPredicate = (Quest quest) => quest.Info.IsMainScenarioQuest && questFunctions.IsQuestAccepted(quest.Id); _questSelector.QuestSelected = delegate(Quest quest) { stopConditionComponent.Configuration.Stop.Conditions.Add(new QuestCompleteCondition @@ -153,1464 +86,482 @@ internal sealed class StopConditionComponent : ConfigComponent }; } - [MethodImpl(MethodImplOptions.NoInlining)] public override void DrawTab() { bool value = base.Configuration.Stop.Enabled; - UiThemeUtils.SectionHeader(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1625853193)); - (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple = UiThemeUtils.BeginCard(); - Vector2 item = tuple.ContentStartPos; - float item2 = tuple.AvailableWidth; - ImDrawListPtr item3 = tuple.DrawList; - int num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1186075613), ref value, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1404007902))) ? (-1028566401) : (-1028566404)); - while (true) + UiThemeUtils.SectionHeader("Stop Conditions"); + var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); + if (UiThemeUtils.WrappedCheckbox("Enable stop conditions", ref value, "Pause: Stops automation when condition is met, but allows resuming past it.\nStop: True stop, blocks automation from starting/resuming if condition is already met.")) { - int num2 = num; - int num3 = -1028566403; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1028566404; - break; - case 1: - base.Configuration.Stop.Enabled = value; - Save(); - num = -1028566401; - break; - case 2: - { - ImRaii.DisabledDisposable disabledDisposable = _202D_202C_206B_202A_200E_200C_202A_202D_206E_206F_206D_206E_202C_200F_200F_206C_202D_202A_202D_202D_200F_202E_202B_206A_200C_206B_206A_206E_202B_206C_206E_206A_202B_200F_202D_202E_206F_200D_206D_206C_202E(!value); - try - { - DrawConditionsList(); - } - finally - { - num = ((disabledDisposable == null) ? 1850490731 : 1850490728); - while (true) - { - int num5 = num; - num3 = 1850490730; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 1: - goto end_IL_0101; - case 2: - _206E_200E_202B_206B_206F_206F_200F_206D_200E_202E_206F_202C_202C_206A_200E_206F_206A_206F_202D_200F_206B_202B_202C_202A_206E_206F_202D_200D_202C_202B_202B_206D_200E_202D_206C_200D_202E_200B_200F_202C_202E((IDisposable)disabledDisposable); - num = 1850490731; - break; - case 0: - num = 1850490728; - break; - } - continue; - end_IL_0101: - break; - } - } - UiThemeUtils.EndCard(item, item2, item3); - UiThemeUtils.SectionSpacing(); - UiThemeUtils.SectionHeader(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(235360192)); - (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple2 = UiThemeUtils.BeginCard(); - Vector2 item4 = tuple2.ContentStartPos; - float item5 = tuple2.AvailableWidth; - ImDrawListPtr item6 = tuple2.DrawList; - disabledDisposable = _202D_202C_206B_202A_200E_200C_202A_202D_206E_206F_206D_206E_202C_200F_200F_206C_202D_202A_202D_202D_200F_202E_202B_206A_200C_206B_206A_206E_202B_206C_206E_206A_202B_200F_202D_202E_206F_200D_206D_206C_202E(!value); - try - { - DrawAddCondition(); - } - finally - { - num = ((disabledDisposable == null) ? 1883978520 : 1883978523); - while (true) - { - int num8 = num; - num3 = 1883978522; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1883978523; - break; - case 2: - goto end_IL_01bc; - case 1: - _206E_200E_202B_206B_206F_206F_200F_206D_200E_202E_206F_202C_202C_206A_200E_206F_206A_206F_202D_200F_206B_202B_202C_202A_206E_206F_202D_200D_202C_202B_202B_206D_200E_202D_206C_200D_202E_200B_200F_202C_202E((IDisposable)disabledDisposable); - num = 1883978520; - break; - } - continue; - end_IL_01bc: - break; - } - } - UiThemeUtils.EndCard(item4, item5, item6); - UiThemeUtils.SectionSpacing(); - UiThemeUtils.SectionHeader(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2147440442)); - (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple3 = UiThemeUtils.BeginCard(); - Vector2 item7 = tuple3.ContentStartPos; - float item8 = tuple3.AvailableWidth; - ImDrawListPtr item9 = tuple3.DrawList; - disabledDisposable = _202D_202C_206B_202A_200E_200C_202A_202D_206E_206F_206D_206E_202C_200F_200F_206C_202D_202A_202D_202D_200F_202E_202B_206A_200C_206B_206A_206E_202B_206C_206E_206A_202B_200F_202D_202E_206F_200D_206D_206C_202E(!value); - try - { - string commandAfterStop = base.Configuration.Stop.CommandAfterStop; - _202D_200D_202E_206F_202D_202A_200B_200C_200F_200B_206B_206A_200F_200E_200C_206D_202D_202B_202B_200E_200D_202B_202E_206D_200B_202C_200E_202C_206A_200B_202A_202D_206C_200E_206E_202D_200B_206F_206F_202E(_206F_202A_200E_206C_202D_200F_200C_206B_202C_206E_206C_200C_202D_206D_202E_206B_206C_202B_202A_202D_202C_200C_202C_206D_206E_206A_202E_206F_200C_206E_200E_206D_202C_200F_206B_200E_206C_206C_200E_206C_202E(260f, _200F_206E_200F_200E_202C_200C_206E_202B_200F_206D_202B_200C_206D_200C_200B_202D_206A_202E_202C_206E_206C_202A_202E_206B_206B_202B_202E_202B_206D_200D_202D_206D_206F_202E_202A_200C_206E_200D_206F_206C_202E().X)); - num = ((!_206B_206F_206A_200D_200D_202D_200C_202B_206F_206B_202C_206F_202C_206C_206F_202B_200D_200F_206E_206B_202D_202B_202E_202E_200E_206F_202D_206B_206D_206C_200D_202D_206D_200B_200B_202E_206A_200E_200E_200C_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-59706386), ref commandAfterStop, 200, ImGuiInputTextFlags.None, (ImGui.ImGuiInputTextCallbackDelegate)null)) ? 111240016 : 111240019); - while (true) - { - int num9 = num; - num3 = 111240017; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 0: - num = 111240019; - break; - case 2: - base.Configuration.Stop.CommandAfterStop = commandAfterStop; - Save(); - num = 111240016; - break; - case 1: - _200B_206C_202A_200E_202D_202B_200F_206C_202B_200B_202B_206F_202D_200C_206D_200E_202A_202E_206C_202A_206E_206C_206A_200E_206B_206C_206A_202C_206E_200B_200F_200F_202A_202B_206B_200F_202B_202C_206E_202E_202E(); - UiThemeUtils.InfoIcon(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1301330466)); - goto end_IL_02b3; - } - continue; - end_IL_02b3: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? (-1795551806) : (-1795551807)); - while (true) - { - int num12 = num; - num3 = -1795551805; - num4 = num12; - int num13 = num4 + num3; - int num14 = num4 & num3; - switch (num13 - (num14 + num14)) - { - case 0: - num = -1795551807; - break; - case 2: - _206E_200E_202B_206B_206F_206F_200F_206D_200E_202E_206F_202C_202C_206A_200E_206F_206A_206F_202D_200F_206B_202B_202C_202A_206E_206F_202D_200D_202C_202B_202B_206D_200E_202D_206C_200D_202E_200B_200F_202C_202E((IDisposable)disabledDisposable); - num = -1795551806; - break; - case 1: - goto end_IL_0349; - } - continue; - end_IL_0349: - break; - } - } - UiThemeUtils.EndCard(item7, item8, item9); - DrawSessionConditions(); - return; - } - } + base.Configuration.Stop.Enabled = value; + Save(); } + using (ImRaii.Disabled(!value)) + { + DrawConditionsList(); + } + UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); + UiThemeUtils.SectionSpacing(); + UiThemeUtils.SectionHeader("Add Condition"); + var (contentStartPos2, availableWidth2, drawList2) = UiThemeUtils.BeginCard(); + using (ImRaii.Disabled(!value)) + { + DrawAddCondition(); + } + UiThemeUtils.EndCard(contentStartPos2, availableWidth2, drawList2); + UiThemeUtils.SectionSpacing(); + UiThemeUtils.SectionHeader("After Stopping"); + var (contentStartPos3, availableWidth3, drawList3) = UiThemeUtils.BeginCard(); + using (ImRaii.Disabled(!value)) + { + string buf = base.Configuration.Stop.CommandAfterStop; + ImGui.SetNextItemWidth(MathF.Min(260f, ImGui.GetContentRegionAvail().X)); + if (ImGui.InputText("Run command after stop", ref buf, 200)) + { + base.Configuration.Stop.CommandAfterStop = buf; + Save(); + } + ImGui.SameLine(); + UiThemeUtils.InfoIcon("Runs this chat command when a stop condition ends the run - not on a manual stop."); + } + UiThemeUtils.EndCard(contentStartPos3, availableWidth3, drawList3); + DrawSessionConditions(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawConditionsList() { List<StopCondition> conditions = base.Configuration.Stop.Conditions; - int num = ((conditions.Count != 0) ? 12968843 : 12968842); - while (true) + if (conditions.Count == 0) { - int num2 = num; - int num3 = 12968841; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + ImGui.TextDisabled("No conditions configured."); + return; + } + if (UiThemeUtils.DestructiveButton(FontAwesomeIcon.Trash, "Clear all")) + { + conditions.Clear(); + Save(); + } + int? indexToRemove = null; + for (int i = 0; i < conditions.Count; i++) + { + using (ImRaii.PushId(i)) { - case 1: - conditions.Clear(); - Save(); - num = 12968845; - break; - case 2: - num = ((!UiThemeUtils.DestructiveButton(FontAwesomeIcon.Trash, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1617749259))) ? 12968845 : 12968840); - break; - case 3: - _202A_206F_206F_202C_206B_200C_200C_206A_206B_200F_206D_206F_202E_202D_206E_206F_200D_202B_202C_202B_202A_206F_202C_200B_200E_206B_206A_206F_202B_206F_200B_202E_202D_202B_202C_200E_202D_206E_202A_202E_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1333678507)); - return; - case 0: - num = 12968842; - break; - case 4: - { - int? indexToRemove = null; - int num7 = 0; - while (num7 < conditions.Count) - { - ImRaii.IdDisposable idDisposable = _200D_200C_202B_200F_206D_206B_202B_200F_200D_200F_206D_206E_200D_202C_200D_206A_206F_200C_206F_206C_200E_202A_206E_200D_202E_206E_202E_202D_202E_200B_202E_202A_206A_206C_200C_206E_206D_202B_206F_202C_202E(num7, true); - try - { - StopCondition condition = conditions[num7]; - DrawConditionRow(condition, num7, ref indexToRemove); - } - finally - { - num = ((idDisposable == null) ? 1927508809 : 1927508810); - while (true) - { - int num8 = num; - num3 = 1927508811; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1927508810; - break; - case 1: - _206E_200E_202B_206B_206F_206F_200F_206D_200E_202E_206F_202C_202C_206A_200E_206F_206A_206F_202D_200F_206B_202B_202C_202A_206E_206F_202D_200D_202C_202B_202B_206D_200E_202D_206C_200D_202E_200B_200F_202C_202E((IDisposable)idDisposable); - num = 1927508809; - break; - case 2: - goto end_IL_0124; - } - continue; - end_IL_0124: - break; - } - } - int num9 = num7; - num3 = 1; - num4 = num9; - int num10 = num4 ^ num3; - int num11 = num4 & num3; - num7 = num10 + (num11 + num11); - } - num = 1035952951; - while (true) - { - int num12 = num; - num3 = 1035952949; - num4 = num12; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = 1035952951; - break; - case 1: - { - int valueOrDefault = indexToRemove.GetValueOrDefault(); - conditions.RemoveAt(valueOrDefault); - Save(); - num = 1035952949; - break; - } - case 0: - return; - case 2: - num = ((!indexToRemove.HasValue) ? 1035952949 : 1035952948); - break; - } - } - } + StopCondition condition = conditions[i]; + DrawConditionRow(condition, i, ref indexToRemove); } } + if (indexToRemove.HasValue) + { + int valueOrDefault = indexToRemove.GetValueOrDefault(); + conditions.RemoveAt(valueOrDefault); + Save(); + } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawConditionRow(StopCondition condition, int index, ref int? indexToRemove) { - _206F_202A_206B_206A_206F_206C_200B_200F_206C_200E_202B_206F_206E_200F_200E_206D_202D_206B_206B_202C_206D_200F_200C_202B_202B_206A_206F_202C_202B_206D_202D_200E_202E_202D_202C_202B_200B_206B_206B_206A_202E(); - QuestCompleteCondition questCompleteCondition = condition as QuestCompleteCondition; - int num = ((questCompleteCondition != null) ? (-2027175199) : (-2027175190)); - GilThresholdCondition gilThresholdCondition = default(GilThresholdCondition); - QuestAcceptCondition questAcceptCondition = default(QuestAcceptCondition); - LevelCondition levelCondition = default(LevelCondition); - GlobalSequenceCondition globalSequenceCondition = default(GlobalSequenceCondition); - int currentItem = default(int); - while (true) + ImGui.AlignTextToFramePadding(); + if (!(condition is QuestCompleteCondition condition2)) { - int num2 = num; - int num3 = -2027175191; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (!(condition is QuestAcceptCondition condition3)) { - case 19: - indexToRemove = index; - num = -2027175175; - break; - case 18: - num = ((condition is BeforeDutyCondition) ? (-2027175196) : (-2027175189)); - break; - case 2: - gilThresholdCondition = condition as GilThresholdCondition; - num = ((gilThresholdCondition != null) ? (-2027175200) : (-2027175188)); - break; - case 6: - _200B_206C_202A_200E_202D_202B_200F_206C_202B_200B_202B_206F_202D_200C_206D_200E_202A_202E_206C_202A_206E_206C_206A_200E_206B_206C_206A_202C_206E_200B_200F_200F_202A_202B_206B_200F_202B_202C_206E_202E_202E(); - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Times, _202C_202B_206B_202D_202B_206A_202A_206A_200E_200C_202E_202B_202C_206F_200F_200B_200D_206C_202B_200E_202A_206A_202A_200B_200F_200E_200B_200D_202C_202C_200D_200F_200F_200F_200F_206B_206C_206E_200B_206D_202E())) ? (-2027175175) : (-2027175174)); - break; - case 9: + if (!(condition is LevelCondition condition4)) + { + if (!(condition is GlobalSequenceCondition condition5)) + { + if (!(condition is InventoryFullCondition)) + { + if (!(condition is BeforeDutyCondition)) + { + if (condition is GilThresholdCondition gilThresholdCondition) + { + ImU8String text = new ImU8String(10, 1); + text.AppendLiteral("Gil below "); + text.AppendFormatted(gilThresholdCondition.MinGil, "N0"); + ImGui.Text(text); + } + else + { + ImGui.Text(condition.GetDescription()); + } + } + else + { + ImGui.Text("Before Duty"); + } + } + else + { + ImGui.Text("Inventory Full"); + } + } + else + { + DrawGlobalSequenceRow(condition5); + } + } + else + { + DrawLevelRow(condition4); + } + } + else { - ImU8String imU8String = new ImU8String(10, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(451308865)); - imU8String.AppendFormatted(gilThresholdCondition.MinGil, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1470080372)); - _200F_202A_200C_202E_206D_206E_206B_202D_202A_206E_200D_200D_200D_202D_202D_200E_202C_200B_206E_202A_202E_206E_206C_200D_200F_206C_206D_200F_202E_200E_202A_200C_200C_202D_206D_200E_200D_206B_200F_206B_202E(imU8String); - num = -2027175193; - break; - } - case 16: - return; - case 20: - DrawQuestAcceptRow(questAcceptCondition); - num = -2027175193; - break; - case 12: - num = ((condition is InventoryFullCondition) ? (-2027175187) : (-2027175173)); - break; - case 11: - DrawLevelRow(levelCondition); - num = -2027175193; - break; - case 1: - globalSequenceCondition = condition as GlobalSequenceCondition; - num = ((globalSequenceCondition != null) ? (-2027175194) : (-2027175195)); - break; - case 14: - _200B_206C_202A_200E_202D_202B_200F_206C_202B_200B_202B_206F_202D_200C_206D_200E_202A_202E_206C_202A_206E_206C_206A_200E_206B_206C_206A_202C_206E_200B_200F_200F_202A_202B_206B_200F_202B_202C_206E_202E_202E(); - currentItem = ((condition.Mode != EStopConditionMode.Pause) ? 1 : 0); - _202D_200D_202E_206F_202D_202A_200B_200C_200F_200B_206B_206A_200F_200E_200C_206D_202D_202B_202B_200E_200D_202B_202E_206D_200B_202C_200E_202C_206A_200B_202A_202D_206C_200E_206E_202D_200B_206F_206F_202E(70f); - num = ((!UiThemeUtils.ThemedCombo(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1973083812), ref currentItem, ConditionModeNames, ConditionModeNames.Length)) ? (-2027175185) : (-2027175186)); - break; - case 8: - DrawQuestCompleteRow(questCompleteCondition); - num = -2027175193; - break; - case 10: - _200F_202A_200C_202E_206D_206E_206B_202D_202A_206E_200D_200D_200D_202D_202D_200E_202C_200B_206E_202A_202E_206E_206C_200D_200F_206C_206D_200F_202E_200E_202A_200C_200C_202D_206D_200E_200D_206B_200F_206B_202E((ImU8String)condition.GetDescription()); - num = -2027175193; - break; - case 17: - levelCondition = condition as LevelCondition; - num = ((levelCondition != null) ? (-2027175198) : (-2027175192)); - break; - case 5: - num = -2027175197; - break; - case 4: - _200F_202A_200C_202E_206D_206E_206B_202D_202A_206E_200D_200D_200D_202D_202D_200E_202C_200B_206E_202A_202E_206E_206C_200D_200F_206C_206D_200F_202E_200E_202A_200C_200C_202D_206D_200E_200D_206B_200F_206B_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2025939443)); - num = -2027175193; - break; - case 15: - DrawGlobalSequenceRow(globalSequenceCondition); - num = -2027175193; - break; - case 13: - _200F_202A_200C_202E_206D_206E_206B_202D_202A_206E_200D_200D_200D_202D_202D_200E_202C_200B_206E_202A_202E_206E_206C_200D_200F_206C_206D_200F_202E_200E_202A_200C_200C_202D_206D_200E_200D_206B_200F_206B_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1140496665)); - num = -2027175193; - break; - case 7: - condition.Mode = ((currentItem == 0) ? EStopConditionMode.Pause : EStopConditionMode.Stop); - Save(); - num = -2027175185; - break; - case 0: - num = -2027175190; - break; - case 3: - questAcceptCondition = condition as QuestAcceptCondition; - num = ((questAcceptCondition != null) ? (-2027175171) : (-2027175176)); - break; + DrawQuestAcceptRow(condition3); } } + else + { + DrawQuestCompleteRow(condition2); + } + ImGui.SameLine(); + int currentItem = ((condition.Mode != EStopConditionMode.Pause) ? 1 : 0); + ImGui.SetNextItemWidth(70f); + if (UiThemeUtils.ThemedCombo("##Mode", ref currentItem, ConditionModeNames, ConditionModeNames.Length)) + { + condition.Mode = ((currentItem == 0) ? EStopConditionMode.Pause : EStopConditionMode.Stop); + Save(); + } + ImGui.SameLine(); + if (UiThemeUtils.IconButton(FontAwesomeIcon.Times, ImGui.GetFrameHeight())) + { + indexToRemove = index; + } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawQuestCompleteRow(QuestCompleteCondition condition) { string text = ResolveQuestName(condition.QuestId); (Vector4, FontAwesomeIcon, string) questStyle = _uiUtils.GetQuestStyle(condition.QuestId); - IDisposable disposable = _200C_206B_206C_200F_200D_202E_202C_206B_200F_202E_206D_206F_202E_200C_200E_200F_200F_202D_200D_200C_206E_206F_206B_200C_200D_206F_202A_200C_206C_202E_206D_200E_200B_206F_202C_206C_200B_200E_206E_200C_202E(_202B_200F_206A_200E_200C_200B_202A_200B_206C_200D_206D_200C_206E_200B_202D_200B_206B_206F_206A_200F_206D_202C_206E_206B_202A_200C_206E_200D_206A_206C_200D_206D_206F_200C_202B_206E_202A_206E_206D_206F_202E(_206A_202D_206F_206A_206D_202D_206B_206B_200B_202B_200F_202C_202C_200E_202C_202B_200B_206B_202C_200B_202C_200D_202D_200F_200D_206C_200E_200C_202B_206E_202B_200E_200F_206C_202C_200D_200E_206E_200C_200C_202E(_pluginInterface))); - int num; - try + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) { - _206B_206B_200E_200F_200F_202D_200B_200B_202B_206C_200F_200E_200B_206C_202C_206C_206C_200D_206E_200F_202A_202A_206A_202D_206F_200F_206C_206D_206D_200C_206C_200D_202A_206D_202E_202C_200F_200B_200C_206C_202E(ref questStyle.Item1, (ImU8String)_206D_206D_202A_202C_206A_200D_202D_206A_202A_200E_202B_202D_200C_202A_202C_206B_206F_206A_206C_206B_202E_200F_202A_200B_206B_202C_206A_202D_206C_206D_200B_200F_202A_200F_202B_200D_200B_206D_206A_206B_202E(questStyle.Item2)); + ImGui.TextColored(in questStyle.Item1, questStyle.Item2.ToIconString()); } - finally - { - num = ((disposable == null) ? 149607400 : 149607403); - while (true) - { - int num2 = num; - int num3 = 149607402; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 149607403; - break; - case 2: - goto end_IL_0076; - case 1: - _206E_200E_202B_206B_206F_206F_200F_206D_200E_202E_206F_202C_202C_206A_200E_206F_206A_206F_202D_200F_206B_202B_202C_202A_206E_206F_202D_200D_202C_202B_202B_206D_200E_202D_206C_200D_202E_200B_200F_202C_202E(disposable); - num = 149607400; - break; - } - continue; - end_IL_0076: - break; - } - } - _200B_206C_202A_200E_202D_202B_200F_206C_202B_200B_202B_206F_202D_200C_206D_200E_202A_202E_206C_202A_206E_206C_206A_200E_206B_206C_206A_202C_206E_200B_200F_200F_202A_202B_206B_200F_202B_202C_206E_202E_202E(); - float x = _206A_200D_202C_206D_200C_202E_206C_202D_200D_202E_206B_202D_202E_200B_206D_202D_202D_200F_200E_202A_206F_206B_200C_206F_206D_200D_202D_206A_200D_206C_200E_200E_206B_202C_206A_202B_202A_206E_202E_200F_202E().ItemSpacing.X; - float num7 = _202C_202B_206B_202D_202B_206A_202A_206A_200E_200C_202E_202B_202C_206F_200F_200B_200D_206C_202B_200E_202A_206A_202A_200B_200F_200E_200B_200D_202C_202C_200D_200F_200F_200F_200F_206B_206C_206E_200B_206D_202E(); - ImRaii.FontDisposable fontDisposable = _200B_200E_202D_200B_206F_202A_202E_200E_202C_200E_206A_206C_206E_200D_202A_200E_200E_206A_200F_206B_202D_206A_202C_206E_206F_200D_206E_206D_206B_206D_206B_206E_206D_202D_206C_206C_202A_206C_200E_200C_202E(_202C_206C_200D_206A_200D_200C_202D_206B_206B_202B_200F_206C_206E_206C_202D_200B_200F_206B_202D_206F_200F_206F_202C_206E_200D_206D_200B_206B_206D_206D_202E_200D_200F_206C_202B_202B_202E_202E_206F_202E_202E(), true); + ImGui.SameLine(); + float x = ImGui.GetStyle().ItemSpacing.X; + float frameHeight = ImGui.GetFrameHeight(); float x2; - try + using (ImRaii.PushFont(UiBuilder.IconFont)) { - x2 = _206D_200D_202B_202D_202D_206D_206D_206E_200C_200B_202E_202B_202D_202C_206C_206E_202C_200B_200C_202A_206F_200C_202E_202C_200D_200D_202A_200D_206F_206B_202C_206B_206C_206E_206D_202C_202C_206B_202D_206F_202E((ImU8String)_206D_206D_202A_202C_206A_200D_202D_206A_202A_200E_202B_202D_200C_202A_202C_206B_206F_206A_206C_206B_202E_200F_202A_200B_206B_202C_206A_202D_206C_206D_200B_200F_202A_200F_202B_200D_200B_206D_206A_206B_202E(FontAwesomeIcon.InfoCircle), false, -1f).X; + x2 = ImGui.CalcTextSize(FontAwesomeIcon.InfoCircle.ToIconString()).X; } - finally - { - num = ((fontDisposable == null) ? (-1470124797) : (-1470124798)); - while (true) - { - int num8 = num; - int num3 = -1470124797; - int num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1470124798; - break; - case 0: - goto end_IL_0135; - case 1: - _206E_200E_202B_206B_206F_206F_200F_206D_200E_202E_206F_202C_202C_206A_200E_206F_206A_206F_202D_200F_206B_202B_202C_202A_206E_206F_202D_200D_202C_202B_202B_206D_200E_202D_206C_200D_202E_200B_200F_202C_202E((IDisposable)fontDisposable); - num = -1470124797; - break; - } - continue; - end_IL_0135: - break; - } - } - float reservedRightWidth = x * 6f + num7 * 2f + _206D_200D_202B_202D_202D_206D_206D_206E_200C_200B_202E_202B_202D_202C_206C_206E_202C_200B_200C_202A_206F_200C_202E_202C_200D_200D_202A_200D_206F_206B_202C_206B_206C_206E_206D_202C_202C_206B_202D_206F_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(601017091), false, -1f).X + x2 + 85f + 70f; + float reservedRightWidth = x * 6f + frameHeight * 2f + ImGui.CalcTextSize("Seq:").X + x2 + 85f + 70f; UiThemeUtils.RowLabel(text, reservedRightWidth); - num = ((!_202D_206C_206C_206B_202E_206C_202B_206C_202B_206C_202B_200C_200C_206A_200B_206C_200B_206E_200D_206D_202B_206C_206D_202B_206D_200C_206A_206C_202A_202A_206F_202E_200D_206B_206C_206B_200D_206D_200D_200E_202E()) ? 1085741449 : 1085741452); - bool value = default(bool); - Quest quest = default(Quest); - while (true) + if (ImGui.IsItemHovered() && _questRegistry.TryGetQuest(condition.QuestId, out Quest quest)) { - int num9 = num; - int num3 = 1085741453; - int num4 = num9; - switch ((num4 | num3) - (num4 & num3)) + _questTooltipComponent.Draw(quest.Info); + } + ImGui.SameLine(); + bool value = condition.Sequence.HasValue; + if (UiThemeUtils.WrappedCheckbox("Seq:", ref value, "Stop at specific sequence (unchecked = stop on completion)")) + { + condition.Sequence = (value ? new int?(1) : ((int?)null)); + Save(); + } + using (ImRaii.Disabled(!value)) + { + ImGui.SameLine(); + ImGui.SetNextItemWidth(85f); + int data = condition.Sequence ?? 1; + if (ImGui.InputInt("##Seq", ref data, 1, 1) && value) { - case 5: - condition.Sequence = (value ? new int?(1) : ((int?)null)); + condition.Sequence = Math.Max(0, Math.Min(255, data)); Save(); - num = 1085741454; - break; - case 1: - num = ((!_questRegistry.TryGetQuest(condition.QuestId, out quest)) ? 1085741449 : 1085741455); - break; - case 4: - _200B_206C_202A_200E_202D_202B_200F_206C_202B_200B_202B_206F_202D_200C_206D_200E_202A_202E_206C_202A_206E_206C_206A_200E_206B_206C_206A_202C_206E_200B_200F_200F_202A_202B_206B_200F_202B_202C_206E_202E_202E(); - value = condition.Sequence.HasValue; - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-26866547), ref value, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-715355229))) ? 1085741454 : 1085741448); - break; - case 0: - num = 1085741452; - break; - case 2: - _questTooltipComponent.Draw(quest.Info); - num = 1085741449; - break; - case 3: - { - ImRaii.DisabledDisposable disabledDisposable = _202D_202C_206B_202A_200E_200C_202A_202D_206E_206F_206D_206E_202C_200F_200F_206C_202D_202A_202D_202D_200F_202E_202B_206A_200C_206B_206A_206E_202B_206C_206E_206A_202B_200F_202D_202E_206F_200D_206D_206C_202E(!value); - try - { - _200B_206C_202A_200E_202D_202B_200F_206C_202B_200B_202B_206F_202D_200C_206D_200E_202A_202E_206C_202A_206E_206C_206A_200E_206B_206C_206A_202C_206E_200B_200F_200F_202A_202B_206B_200F_202B_202C_206E_202E_202E(); - _202D_200D_202E_206F_202D_202A_200B_200C_200F_200B_206B_206A_200F_200E_200C_206D_202D_202B_202B_200E_200D_202B_202E_206D_200B_202C_200E_202C_206A_200B_202A_202D_206C_200E_206E_202D_200B_206F_206F_202E(85f); - int num10 = condition.Sequence ?? 1; - num = ((!_206A_206C_206B_206B_206F_200F_206C_206E_200F_200D_200B_206F_200B_206B_200B_200B_202B_200C_206C_200B_202B_206A_206E_200B_206D_206E_202A_200F_202C_200C_200E_202E_200E_202E_206D_200B_202A_206B_202A_200D_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2048602950), ref num10, 1, 1, default(ImU8String), ImGuiInputTextFlags.None)) ? 1567100735 : 1567100733); - while (true) - { - int num11 = num; - num3 = 1567100735; - num4 = num11; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - condition.Sequence = _202A_202C_206A_206F_202E_200F_206E_202A_202E_202E_206B_200E_200E_200F_206D_206B_202B_202B_202A_206F_206B_202B_206F_206D_202B_202A_200F_200B_206E_206E_206A_200D_200E_200E_202A_200F_206F_206F_206A_200E_202E(0, _200B_200D_206B_202A_202A_200D_206B_200E_200B_206D_206B_206E_200E_206C_200B_206D_206A_200F_202E_206C_202A_200F_202E_200B_200E_202E_200B_200B_200B_206E_206D_200F_200F_202E_200D_200F_206E_206D_200F_202B_202E(255, num10)); - Save(); - num = 1567100735; - break; - case 2: - num = ((!value) ? 1567100735 : 1567100734); - break; - case 3: - num = 1567100733; - break; - case 0: - return; - } - } - } - finally - { - num = ((disabledDisposable == null) ? 83270173 : 83270174); - while (true) - { - int num12 = num; - num3 = 83270175; - num4 = num12; - int num13 = num4 + num3; - int num14 = num4 & num3; - switch (num13 - (num14 + num14)) - { - case 0: - num = 83270174; - break; - case 2: - goto end_IL_041a; - case 1: - _206E_200E_202B_206B_206F_206F_200F_206D_200E_202E_206F_202C_202C_206A_200E_206F_206A_206F_202D_200F_206B_202B_202C_202A_206E_206F_202D_200D_202C_202B_202B_206D_200E_202D_206C_200D_202E_200B_200F_202C_202E((IDisposable)disabledDisposable); - num = 83270173; - break; - } - continue; - end_IL_041a: - break; - } - } - } } } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawQuestAcceptRow(QuestAcceptCondition condition) { string text = ResolveQuestName(condition.QuestId); (Vector4, FontAwesomeIcon, string) questStyle = _uiUtils.GetQuestStyle(condition.QuestId); - IDisposable disposable = _200C_206B_206C_200F_200D_202E_202C_206B_200F_202E_206D_206F_202E_200C_200E_200F_200F_202D_200D_200C_206E_206F_206B_200C_200D_206F_202A_200C_206C_202E_206D_200E_200B_206F_202C_206C_200B_200E_206E_200C_202E(_202B_200F_206A_200E_200C_200B_202A_200B_206C_200D_206D_200C_206E_200B_202D_200B_206B_206F_206A_200F_206D_202C_206E_206B_202A_200C_206E_200D_206A_206C_200D_206D_206F_200C_202B_206E_202A_206E_206D_206F_202E(_206A_202D_206F_206A_206D_202D_206B_206B_200B_202B_200F_202C_202C_200E_202C_202B_200B_206B_202C_200B_202C_200D_202D_200F_200D_206C_200E_200C_202B_206E_202B_200E_200F_206C_202C_200D_200E_206E_200C_200C_202E(_pluginInterface))); - int num; - try + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) { - _206B_206B_200E_200F_200F_202D_200B_200B_202B_206C_200F_200E_200B_206C_202C_206C_206C_200D_206E_200F_202A_202A_206A_202D_206F_200F_206C_206D_206D_200C_206C_200D_202A_206D_202E_202C_200F_200B_200C_206C_202E(ref questStyle.Item1, (ImU8String)_206D_206D_202A_202C_206A_200D_202D_206A_202A_200E_202B_202D_200C_202A_202C_206B_206F_206A_206C_206B_202E_200F_202A_200B_206B_202C_206A_202D_206C_206D_200B_200F_202A_200F_202B_200D_200B_206D_206A_206B_202E(questStyle.Item2)); + ImGui.TextColored(in questStyle.Item1, questStyle.Item2.ToIconString()); } - finally + ImGui.SameLine(); + float num = ImGui.GetStyle().ItemSpacing.X * 2f + 70f + ImGui.GetFrameHeight() + ImGui.CalcTextSize(" (on accept)").X; + float maxWidth = ImGui.GetContentRegionAvail().X - num; + ImGui.TextUnformatted(UiThemeUtils.TruncateToWidth(text, maxWidth) + " (on accept)"); + if (ImGui.IsItemHovered() && _questRegistry.TryGetQuest(condition.QuestId, out Quest quest)) { - num = ((disposable == null) ? 1459802869 : 1459802868); - while (true) - { - int num2 = num; - int num3 = 1459802869; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto end_IL_0076; - case 1: - _206E_200E_202B_206B_206F_206F_200F_206D_200E_202E_206F_202C_202C_206A_200E_206F_206A_206F_202D_200F_206B_202B_202C_202A_206E_206F_202D_200D_202C_202B_202B_206D_200E_202D_206C_200D_202E_200B_200F_202C_202E(disposable); - num = 1459802869; - break; - case 2: - num = 1459802868; - break; - } - continue; - end_IL_0076: - break; - } - } - _200B_206C_202A_200E_202D_202B_200F_206C_202B_200B_202B_206F_202D_200C_206D_200E_202A_202E_206C_202A_206E_206C_206A_200E_206B_206C_206A_202C_206E_200B_200F_200F_202A_202B_206B_200F_202B_202C_206E_202E_202E(); - float num7 = _206A_200D_202C_206D_200C_202E_206C_202D_200D_202E_206B_202D_202E_200B_206D_202D_202D_200F_200E_202A_206F_206B_200C_206F_206D_200D_202D_206A_200D_206C_200E_200E_206B_202C_206A_202B_202A_206E_202E_200F_202E().ItemSpacing.X * 2f + 70f + _202C_202B_206B_202D_202B_206A_202A_206A_200E_200C_202E_202B_202C_206F_200F_200B_200D_206C_202B_200E_202A_206A_202A_200B_200F_200E_200B_200D_202C_202C_200D_200F_200F_200F_200F_206B_206C_206E_200B_206D_202E() + _206D_200D_202B_202D_202D_206D_206D_206E_200C_200B_202E_202B_202D_202C_206C_206E_202C_200B_200C_202A_206F_200C_202E_202C_200D_200D_202A_200D_206F_206B_202C_206B_206C_206E_206D_202C_202C_206B_202D_206F_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1280436704), false, -1f).X; - float maxWidth = _200F_206E_200F_200E_202C_200C_206E_202B_200F_206D_202B_200C_206D_200C_200B_202D_206A_202E_202C_206E_206C_202A_202E_206B_206B_202B_202E_202B_206D_200D_202D_206D_206F_202E_202A_200C_206E_200D_206F_206C_202E().X - num7; - _202A_202B_200D_200F_200F_200D_200C_206E_206A_200D_206A_200B_206A_200D_206F_200B_202B_206C_200F_206B_206D_202A_200B_206C_200B_202C_202A_200E_206A_200D_200E_202E_200D_202C_200E_206C_202B_202B_200E_206A_202E((ImU8String)_206B_202B_206B_202C_200F_202C_200F_206F_200C_206E_206C_200F_202B_206C_202E_206F_202E_206B_206F_200E_202C_202D_206D_202C_200C_202B_200E_200F_200F_200D_206E_200B_200F_200D_206B_202E_200D_200C_200D_202E_202E(UiThemeUtils.TruncateToWidth(text, maxWidth), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1797593997))); - num = ((!_202D_206C_206C_206B_202E_206C_202B_206C_202B_206C_202B_200C_200C_206A_200B_206C_200B_206E_200D_206D_202B_206C_206D_202B_206D_200C_206A_206C_202A_202A_206F_202E_200D_206B_206C_206B_200D_206D_200D_200E_202E()) ? 1390568266 : 1390568264); - Quest quest = default(Quest); - while (true) - { - int num8 = num; - int num3 = 1390568267; - int num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 0: - _questTooltipComponent.Draw(quest.Info); - num = 1390568266; - break; - case 1: - return; - case 2: - num = 1390568264; - break; - case 3: - num = ((!_questRegistry.TryGetQuest(condition.QuestId, out quest)) ? 1390568266 : 1390568267); - break; - } + _questTooltipComponent.Draw(quest.Info); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawLevelRow(LevelCondition condition) { - _200F_202A_200C_202E_206D_206E_206B_202D_202A_206E_200D_200D_200D_202D_202D_200E_202C_200B_206E_202A_202E_206E_206C_200D_200F_206C_206D_200F_202E_200E_202A_200C_200C_202D_206D_200E_200D_206B_200F_206B_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-219663971)); - _200B_206C_202A_200E_202D_202B_200F_206C_202B_200B_202B_206F_202D_200C_206D_200E_202A_202E_206C_202A_206E_206C_206A_200E_206B_206C_206A_202C_206E_200B_200F_200F_202A_202B_206B_200F_202B_202C_206E_202E_202E(); - _202D_200D_202E_206F_202D_202A_200B_200C_200F_200B_206B_206A_200F_200E_200C_206D_202D_202B_202B_200E_200D_202B_202E_206D_200B_202C_200E_202C_206A_200B_202A_202D_206C_200E_206E_202D_200B_206F_206F_202E(100f); - int targetLevel = condition.TargetLevel; - int num = ((!_206A_206C_206B_206B_206F_200F_206C_206E_200F_200D_200B_206F_200B_206B_200B_200B_202B_200C_206C_200B_202B_206A_206E_200B_206D_206E_202A_200F_202C_200C_200E_202E_200E_202E_206D_200B_202A_206B_202A_200D_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1600882945), ref targetLevel, 1, 5, default(ImU8String), ImGuiInputTextFlags.None)) ? 1089741510 : 1089741506); - int num7 = default(int); - while (true) + ImGui.Text("Level"); + ImGui.SameLine(); + ImGui.SetNextItemWidth(100f); + int data = condition.TargetLevel; + if (ImGui.InputInt("##Level", ref data, 1, 5)) { - int num2 = num; - int num3 = 1089741510; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 1089741506; - break; - case 1: - return; - case 3: - { - _200B_206C_202A_200E_202D_202B_200F_206C_202B_200B_202B_206F_202D_200C_206D_200E_202A_202E_206C_202A_206E_206C_206A_200E_206B_206C_206A_202C_206E_200B_200F_200F_202A_202B_206B_200F_202B_202C_206E_202E_202E(); - ImU8String imU8String = new ImU8String(11, 1); - imU8String.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-92710216)); - imU8String.AppendFormatted(num7); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - _202A_206F_206F_202C_206B_200C_200C_206A_206B_200F_206D_206F_202E_202D_206E_206F_200D_202B_202C_202B_202A_206F_202C_200B_200E_206B_206A_206F_202B_206F_200B_202E_202D_202B_202C_200E_202D_206E_202A_202E_202E(imU8String); - num = 1089741511; - break; - } - case 4: - condition.TargetLevel = _202A_202C_206A_206F_202E_200F_206E_202A_202E_202E_206B_200E_200E_200F_206D_206B_202B_202B_202A_206F_206B_202B_206F_206D_202B_202A_200F_200B_206E_206E_206A_200D_200E_200E_202A_200F_206F_206F_206A_200E_202E(1, _200B_200D_206B_202A_202A_200D_206B_200E_200B_206D_206B_206E_200E_206C_200B_206D_206A_200F_202E_206C_202A_200F_202E_200B_200E_202E_200B_200B_200B_206E_206D_200F_200F_202E_200D_200F_206E_206D_200F_202B_202E(100, targetLevel)); - Save(); - num = 1089741510; - break; - case 0: - { - IPlayerCharacter playerCharacter = _206C_202D_202B_200E_200E_202A_206E_206C_202C_202A_200F_200B_206E_206C_200F_202D_200F_206F_206E_206E_200C_206D_202C_206A_202A_206F_206E_200D_200F_206E_206F_206A_202D_206D_206F_202D_200D_202A_202D_206F_202E(_objectTable); - num7 = ((playerCharacter != null) ? _206A_206F_206F_206F_202B_200D_202D_206E_200E_200C_206B_202D_202D_202A_206A_200D_202C_202C_202C_202E_200D_200B_202B_206D_200D_206A_206F_202D_206E_206D_200C_202A_200F_206F_200F_206C_200D_202D_202D_200C_202E((ICharacter)playerCharacter) : 0); - num = ((num7 <= 0) ? 1089741511 : 1089741509); - break; - } - } + condition.TargetLevel = Math.Max(1, Math.Min(100, data)); + Save(); + } + int num = _objectTable.LocalPlayer?.Level ?? 0; + if (num > 0) + { + ImGui.SameLine(); + ImU8String text = new ImU8String(11, 1); + text.AppendLiteral("(Current: "); + text.AppendFormatted(num); + text.AppendLiteral(")"); + ImGui.TextDisabled(text); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawGlobalSequenceRow(GlobalSequenceCondition condition) { - _200F_202A_200C_202E_206D_206E_206B_202D_202A_206E_200D_200D_200D_202D_202D_200E_202C_200B_206E_202A_202E_206E_206C_200D_200F_206C_206D_200F_202E_200E_202A_200C_200C_202D_206D_200E_200D_206B_200F_206B_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1238893136)); - _200B_206C_202A_200E_202D_202B_200F_206C_202B_200B_202B_206F_202D_200C_206D_200E_202A_202E_206C_202A_206E_206C_206A_200E_206B_206C_206A_202C_206E_200B_200F_200F_202A_202B_206B_200F_202B_202C_206E_202E_202E(); - _202D_200D_202E_206F_202D_202A_200B_200C_200F_200B_206B_206A_200F_200E_200C_206D_202D_202B_202B_200E_200D_202B_202E_206D_200B_202C_200E_202C_206A_200B_202A_202D_206C_200E_206E_202D_200B_206F_206F_202E(100f); - int targetSequence = condition.TargetSequence; - int num = ((!_206A_206C_206B_206B_206F_200F_206C_206E_200F_200D_200B_206F_200B_206B_200B_200B_202B_200C_206C_200B_202B_206A_206E_200B_206D_206E_202A_200F_202C_200C_200E_202E_200E_202E_206D_200B_202A_206B_202A_200D_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2048602950), ref targetSequence, 1, 1, default(ImU8String), ImGuiInputTextFlags.None)) ? (-1103679332) : (-1103679331)); - QuestController.QuestProgress currentQuest = default(QuestController.QuestProgress); - while (true) + ImGui.Text("Global Sequence"); + ImGui.SameLine(); + ImGui.SetNextItemWidth(100f); + int data = condition.TargetSequence; + if (ImGui.InputInt("##Seq", ref data, 1, 1)) { - int num2 = num; - int num3 = -1103679329; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1103679331; - break; - case 2: - condition.TargetSequence = _202A_202C_206A_206F_202E_200F_206E_202A_202E_202E_206B_200E_200E_200F_206D_206B_202B_202B_202A_206F_206B_202B_206F_206D_202B_202A_200F_200B_206E_206E_206A_200D_200E_200E_202A_200F_206F_206F_206A_200E_202E(0, _200B_200D_206B_202A_202A_200D_206B_200E_200B_206D_206B_206E_200E_206C_200B_206D_206A_200F_202E_206C_202A_200F_202E_200B_200E_202E_200B_200B_200B_206E_206D_200F_200F_202E_200D_200F_206E_206D_200F_202B_202E(255, targetSequence)); - Save(); - num = -1103679332; - break; - case 1: - return; - case 4: - { - _200B_206C_202A_200E_202D_202B_200F_206C_202B_200B_202B_206F_202D_200C_206D_200E_202A_202E_206C_202A_206E_206C_206A_200E_206B_206C_206A_202C_206E_200B_200F_200F_202A_202B_206B_200F_202B_202C_206E_202E_202E(); - ImU8String imU8String = new ImU8String(11, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2118032553)); - imU8String.AppendFormatted(currentQuest.Sequence); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - _202A_206F_206F_202C_206B_200C_200C_206A_206B_200F_206D_206F_202E_202D_206E_206F_200D_202B_202C_202B_202A_206F_202C_200B_200E_206B_206A_206F_202B_206F_200B_202E_202D_202B_202C_200E_202D_206E_202A_202E_202E(imU8String); - num = -1103679330; - break; - } - case 3: - currentQuest = _questController.CurrentQuest; - num = ((currentQuest == null) ? (-1103679330) : (-1103679333)); - break; - } + condition.TargetSequence = Math.Max(0, Math.Min(255, data)); + Save(); + } + QuestController.QuestProgress currentQuest = _questController.CurrentQuest; + if (currentQuest != null) + { + ImGui.SameLine(); + ImU8String text = new ImU8String(11, 1); + text.AppendLiteral("(Current: "); + text.AppendFormatted(currentQuest.Sequence); + text.AppendLiteral(")"); + ImGui.TextDisabled(text); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawAddCondition() { - _202D_200D_202E_206F_202D_202A_200B_200C_200F_200B_206B_206A_200F_200E_200C_206D_202D_202B_202B_200E_200D_202B_202E_206D_200B_202C_200E_202C_206A_200B_202A_202D_206C_200E_206E_202D_200B_206F_206F_202E(_206F_202A_200E_206C_202D_200F_200C_206B_202C_206E_206C_200C_202D_206D_202E_206B_206C_202B_202A_202D_202C_200C_202C_206D_206E_206A_202E_206F_200C_206E_200E_206D_202C_200F_206B_200E_206C_206C_200E_206C_202E(260f, _200F_206E_200F_200E_202C_200C_206E_202B_200F_206D_202B_200C_206D_200C_200B_202D_206A_202E_202C_206E_206C_202A_202E_206B_206B_202B_202E_202B_206D_200D_202D_206D_206F_202E_202A_200C_206E_200D_206F_206C_202E().X)); - UiThemeUtils.ThemedCombo(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(391148722), ref _addConditionType, ConditionTypeNames, ConditionTypeNames.Length); - _200B_206C_202A_200E_202D_202B_200F_206C_202B_200B_202B_206F_202D_200C_206D_200E_202A_202E_206C_202A_206E_206C_206A_200E_206B_206C_206A_202C_206E_200B_200F_200F_202A_202B_206B_200F_202B_202C_206E_202E_202E(); + ImGui.SetNextItemWidth(MathF.Min(260f, ImGui.GetContentRegionAvail().X)); + UiThemeUtils.ThemedCombo("##AddType", ref _addConditionType, ConditionTypeNames, ConditionTypeNames.Length); + ImGui.SameLine(); switch (_addConditionType) { - default: - { - int num = -16462781; - while (true) - { - int num2 = num; - int num3 = -16462777; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - goto end_IL_0074; - case 7: - goto IL_00ba; - case 8: - goto IL_00c1; - case 6: - goto IL_00c8; - case 3: - goto IL_00cf; - case 1: - goto IL_00d6; - case 2: - goto end_IL_0048; - case 4: - return; - case 0: - num = -16462781; - break; - } - continue; - end_IL_0074: - break; - } - goto case 4; - } + case 0: + DrawAddQuestComplete(); + break; + case 1: + DrawAddQuestAccept(); + break; + case 2: + DrawAddLevel(); + break; + case 3: + DrawAddGlobalSequence(); + break; case 4: DrawAddSimpleCondition<InventoryFullCondition>(); - return; - case 1: - goto IL_00ba; - case 3: - goto IL_00c1; - case 0: - goto IL_00c8; - case 2: - goto IL_00cf; - case 5: - goto IL_00d6; - case 6: break; - IL_00d6: + case 5: DrawAddSimpleCondition<BeforeDutyCondition>(); - return; - IL_00cf: - DrawAddLevel(); - return; - IL_00c8: - DrawAddQuestComplete(); - return; - IL_00c1: - DrawAddGlobalSequence(); - return; - IL_00ba: - DrawAddQuestAccept(); - return; - end_IL_0048: + break; + case 6: + DrawAddGilThreshold(); break; } - DrawAddGilThreshold(); } private void DrawAddQuestComplete() { - _200F_202C_202E_206F_206C_206A_206C_200C_206A_200B_202E_206E_200C_206C_202C_200B_206C_202A_200C_200F_200D_206A_206D_206D_206B_202B_200C_202D_202D_206D_206D_202D_206B_202C_206D_200E_206A_200F_206B_206F_202E(); - _questSelector.DrawSelection(_206F_202A_200E_206C_202D_200F_200C_206B_202C_206E_206C_200C_202D_206D_202E_206B_206C_202B_202A_202D_202C_200C_202C_206D_206E_206A_202E_206F_200C_206E_200E_206D_202C_200F_206B_200E_206C_206C_200E_206C_202E(260f, _200F_206E_200F_200E_202C_200C_206E_202B_200F_206D_202B_200C_206D_200C_200B_202D_206A_202E_202C_206E_206C_202A_202E_206B_206B_202B_202E_202B_206D_200D_202D_206D_206F_202E_202A_200C_206E_200D_206F_206C_202E().X)); + ImGui.NewLine(); + _questSelector.DrawSelection(MathF.Min(260f, ImGui.GetContentRegionAvail().X)); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawAddQuestAccept() { - _200F_202C_202E_206F_206C_206A_206C_200C_206A_200B_202E_206E_200C_206C_202C_200B_206C_202A_200C_200F_200D_206A_206D_206D_206B_202B_200C_202D_202D_206D_206D_202D_206B_202C_206D_200E_206A_200F_206B_206F_202E(); - long num = _200C_202B_202D_202C_202C_206E_206E_206A_206B_202A_200C_200B_202A_202B_200B_200E_200D_206D_200E_202D_202E_206F_202D_200C_202A_202A_206F_206F_206C_206A_206B_202D_200B_202B_206A_206E_202E_206F_206D_202E(); - int num2 = ((num < _acceptedQuestsRefreshAtMs) ? 187960232 : 187960237); - List<Quest> list = default(List<Quest>); - int currentItem = default(int); - string text; - while (true) + ImGui.NewLine(); + long tickCount = Environment.TickCount64; + if (tickCount >= _acceptedQuestsRefreshAtMs) { - int num3 = num2; - int num4 = 187960236; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - default: - continue; - case 2: - num2 = 187960237; - continue; - case 6: - { - string[] items = list.Select((Quest x) => x.Info.Name).ToArray(); - currentItem = -1; - num2 = ((!UiThemeUtils.SearchableCombo(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1600317314), ref currentItem, items, ref _questAcceptSearchText, _206F_202A_200E_206C_202D_200F_200C_206B_202C_206E_206C_200C_202D_206D_202E_206B_206C_202B_202A_202D_202C_200C_202C_206D_206E_206A_202E_206F_200C_206E_200E_206D_202C_200F_206B_200E_206C_206C_200E_206C_202E(260f, _200F_206E_200F_200E_202C_200C_206E_202B_200F_206D_202B_200C_206D_200C_200B_202D_206A_202E_202C_206E_206C_202A_202E_206B_206B_202B_202E_202B_206D_200D_202D_206D_206F_202E_202A_200C_206E_200D_206F_206C_202E().X), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-977909950))) ? 187960236 : 187960228); - continue; - } - case 7: - base.Configuration.Stop.Conditions.Add(new QuestAcceptCondition - { - QuestId = list[currentItem].Id, - Mode = EStopConditionMode.Stop - }); - Save(); - num2 = 187960236; - continue; - case 4: - list = _acceptedQuests.Where((Quest x) => !HasQuestCondition(x.Id, EStopConditionType.QuestAccept)).ToList(); - num2 = ((list.Count != 0) ? 187960234 : 187960229); - continue; - case 9: - num2 = ((_acceptedQuests.Count == 0) ? 187960239 : 187960233); - continue; - case 8: - num2 = ((currentItem < 0) ? 187960236 : 187960235); - continue; - case 5: - text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1123334752); - break; - case 1: - { - _acceptedQuests = GetCurrentlyAcceptedQuests(); - long num8 = 1000L; - long num9 = num; - long num10 = num9 ^ num8; - long num11 = num9 & num8; - _acceptedQuestsRefreshAtMs = num10 + (num11 + num11); - num2 = 187960232; - continue; - } - case 3: - text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-571216407); - break; - case 0: - return; - } - break; + _acceptedQuests = GetCurrentlyAcceptedQuests(); + _acceptedQuestsRefreshAtMs = tickCount + 1000; + } + List<Quest> list = _acceptedQuests.Where((Quest x) => !HasQuestCondition(x.Id, EStopConditionType.QuestAccept)).ToList(); + if (list.Count == 0) + { + ImGui.TextDisabled((_acceptedQuests.Count == 0) ? "No quests currently accepted" : "All accepted quests already added"); + return; + } + string[] items = list.Select((Quest x) => x.Info.Name).ToArray(); + int currentItem = -1; + if (UiThemeUtils.SearchableCombo("##QuestAcceptSelection", ref currentItem, items, ref _questAcceptSearchText, MathF.Min(260f, ImGui.GetContentRegionAvail().X), "Select quest to add...") && currentItem >= 0) + { + base.Configuration.Stop.Conditions.Add(new QuestAcceptCondition + { + QuestId = list[currentItem].Id, + Mode = EStopConditionMode.Stop + }); + Save(); } - _202A_206F_206F_202C_206B_200C_200C_206A_206B_200F_206D_206F_202E_202D_206E_206F_200D_202B_202C_202B_202A_206F_202C_200B_200E_206B_206A_206F_202B_206F_200B_202E_202D_202B_202C_200E_202D_206E_202A_202E_202E((ImU8String)text); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawAddLevel() { - int num = ((!base.Configuration.Stop.Conditions.OfType<LevelCondition>().Any()) ? (-1746384537) : (-1746384543)); - while (true) + if (base.Configuration.Stop.Conditions.OfType<LevelCondition>().Any()) { - int num2 = num; - int num3 = -1746384539; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + ImGui.TextDisabled("Already configured"); + return; + } + ImGui.SetNextItemWidth(100f); + ImGui.InputInt("##AddLevel", ref _addLevel, 1, 5); + _addLevel = Math.Max(1, Math.Min(100, _addLevel)); + ImGui.SameLine(); + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Plus, "Add")) + { + base.Configuration.Stop.Conditions.Add(new LevelCondition { - case 0: - base.Configuration.Stop.Conditions.Add(new LevelCondition - { - TargetLevel = _addLevel, - Mode = EStopConditionMode.Stop - }); - Save(); - num = -1746384540; - break; - case 4: - _202A_206F_206F_202C_206B_200C_200C_206A_206B_200F_206D_206F_202E_202D_206E_206F_200D_202B_202C_202B_202A_206F_202C_200B_200E_206B_206A_206F_202B_206F_200B_202E_202D_202B_202C_200E_202D_206E_202A_202E_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-855443746)); - return; - case 2: - _202D_200D_202E_206F_202D_202A_200B_200C_200F_200B_206B_206A_200F_200E_200C_206D_202D_202B_202B_200E_200D_202B_202E_206D_200B_202C_200E_202C_206A_200B_202A_202D_206C_200E_206E_202D_200B_206F_206F_202E(100f); - _206A_206C_206B_206B_206F_200F_206C_206E_200F_200D_200B_206F_200B_206B_200B_200B_202B_200C_206C_200B_202B_206A_206E_200B_206D_206E_202A_200F_202C_200C_200E_202E_200E_202E_206D_200B_202A_206B_202A_200D_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(235196201), ref _addLevel, 1, 5, default(ImU8String), ImGuiInputTextFlags.None); - _addLevel = _202A_202C_206A_206F_202E_200F_206E_202A_202E_202E_206B_200E_200E_200F_206D_206B_202B_202B_202A_206F_206B_202B_206F_206D_202B_202A_200F_200B_206E_206E_206A_200D_200E_200E_202A_200F_206F_206F_206A_200E_202E(1, _200B_200D_206B_202A_202A_200D_206B_200E_200B_206D_206B_206E_200E_206C_200B_206D_206A_200F_202E_206C_202A_200F_202E_200B_200E_202E_200B_200B_200B_206E_206D_200F_200F_202E_200D_200F_206E_206D_200F_202B_202E(100, _addLevel)); - _200B_206C_202A_200E_202D_202B_200F_206C_202B_200B_202B_206F_202D_200C_206D_200E_202A_202E_206C_202A_206E_206C_206A_200E_206B_206C_206A_202C_206E_200B_200F_200F_202A_202B_206B_200F_202B_202C_206E_202E_202E(); - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Plus, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1748421528))) ? (-1746384540) : (-1746384539)); - break; - case 3: - num = -1746384543; - break; - case 1: - return; - } + TargetLevel = _addLevel, + Mode = EStopConditionMode.Stop + }); + Save(); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawAddGlobalSequence() { - int num = ((!base.Configuration.Stop.Conditions.OfType<GlobalSequenceCondition>().Any()) ? 1585398821 : 1585398817); - while (true) + if (base.Configuration.Stop.Conditions.OfType<GlobalSequenceCondition>().Any()) { - int num2 = num; - int num3 = 1585398821; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + ImGui.TextDisabled("Already configured"); + return; + } + ImGui.SetNextItemWidth(100f); + ImGui.InputInt("##AddSeq", ref _addSequence, 1, 1); + _addSequence = Math.Max(0, Math.Min(255, _addSequence)); + ImGui.SameLine(); + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Plus, "Add")) + { + base.Configuration.Stop.Conditions.Add(new GlobalSequenceCondition { - case 1: - return; - case 4: - _202A_206F_206F_202C_206B_200C_200C_206A_206B_200F_206D_206F_202E_202D_206E_206F_200D_202B_202C_202B_202A_206F_202C_200B_200E_206B_206A_206F_202B_206F_200B_202E_202D_202B_202C_200E_202D_206E_202A_202E_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-855443746)); - return; - case 3: - num = 1585398817; - break; - case 0: - _202D_200D_202E_206F_202D_202A_200B_200C_200F_200B_206B_206A_200F_200E_200C_206D_202D_202B_202B_200E_200D_202B_202E_206D_200B_202C_200E_202C_206A_200B_202A_202D_206C_200E_206E_202D_200B_206F_206F_202E(100f); - _206A_206C_206B_206B_206F_200F_206C_206E_200F_200D_200B_206F_200B_206B_200B_200B_202B_200C_206C_200B_202B_206A_206E_200B_206D_206E_202A_200F_202C_200C_200E_202E_200E_202E_206D_200B_202A_206B_202A_200D_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-464915630), ref _addSequence, 1, 1, default(ImU8String), ImGuiInputTextFlags.None); - _addSequence = _202A_202C_206A_206F_202E_200F_206E_202A_202E_202E_206B_200E_200E_200F_206D_206B_202B_202B_202A_206F_206B_202B_206F_206D_202B_202A_200F_200B_206E_206E_206A_200D_200E_200E_202A_200F_206F_206F_206A_200E_202E(0, _200B_200D_206B_202A_202A_200D_206B_200E_200B_206D_206B_206E_200E_206C_200B_206D_206A_200F_202E_206C_202A_200F_202E_200B_200E_202E_200B_200B_200B_206E_206D_200F_200F_202E_200D_200F_206E_206D_200F_202B_202E(255, _addSequence)); - _200B_206C_202A_200E_202D_202B_200F_206C_202B_200B_202B_206F_202D_200C_206D_200E_202A_202E_206C_202A_206E_206C_206A_200E_206B_206C_206A_202C_206E_200B_200F_200F_202A_202B_206B_200F_202B_202C_206E_202E_202E(); - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Plus, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1012926107))) ? 1585398820 : 1585398823); - break; - case 2: - base.Configuration.Stop.Conditions.Add(new GlobalSequenceCondition - { - TargetSequence = _addSequence, - Mode = EStopConditionMode.Stop - }); - Save(); - num = 1585398820; - break; - } + TargetSequence = _addSequence, + Mode = EStopConditionMode.Stop + }); + Save(); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawAddGilThreshold() { - int num = ((!base.Configuration.Stop.Conditions.OfType<GilThresholdCondition>().Any()) ? (-1473032468) : (-1473032465)); - while (true) + if (base.Configuration.Stop.Conditions.OfType<GilThresholdCondition>().Any()) { - int num2 = num; - int num3 = -1473032466; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + ImGui.TextDisabled("Already configured"); + return; + } + ImGui.SetNextItemWidth(100f); + ImGui.InputInt("##AddGil", ref _addGilThreshold, 100, 1000); + _addGilThreshold = Math.Max(1, Math.Min(999999999, _addGilThreshold)); + ImGui.SameLine(); + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Plus, "Add")) + { + base.Configuration.Stop.Conditions.Add(new GilThresholdCondition { - case 3: - num = -1473032465; - break; - case 0: - base.Configuration.Stop.Conditions.Add(new GilThresholdCondition - { - MinGil = _addGilThreshold, - Mode = EStopConditionMode.Stop - }); - Save(); - num = -1473032470; - break; - case 4: - return; - case 2: - _202D_200D_202E_206F_202D_202A_200B_200C_200F_200B_206B_206A_200F_200E_200C_206D_202D_202B_202B_200E_200D_202B_202E_206D_200B_202C_200E_202C_206A_200B_202A_202D_206C_200E_206E_202D_200B_206F_206F_202E(100f); - _206A_206C_206B_206B_206F_200F_206C_206E_200F_200D_200B_206F_200B_206B_200B_200B_202B_200C_206C_200B_202B_206A_206E_200B_206D_206E_202A_200F_202C_200C_200E_202E_200E_202E_206D_200B_202A_206B_202A_200D_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1007739181), ref _addGilThreshold, 100, 1000, default(ImU8String), ImGuiInputTextFlags.None); - _addGilThreshold = _202A_202C_206A_206F_202E_200F_206E_202A_202E_202E_206B_200E_200E_200F_206D_206B_202B_202B_202A_206F_206B_202B_206F_206D_202B_202A_200F_200B_206E_206E_206A_200D_200E_200E_202A_200F_206F_206F_206A_200E_202E(1, _200B_200D_206B_202A_202A_200D_206B_200E_200B_206D_206B_206E_200E_206C_200B_206D_206A_200F_202E_206C_202A_200F_202E_200B_200E_202E_200B_200B_200B_206E_206D_200F_200F_202E_200D_200F_206E_206D_200F_202B_202E(999999999, _addGilThreshold)); - _200B_206C_202A_200E_202D_202B_200F_206C_202B_200B_202B_206F_202D_200C_206D_200E_202A_202E_206C_202A_206E_206C_206A_200E_206B_206C_206A_202C_206E_200B_200F_200F_202A_202B_206B_200F_202B_202C_206E_202E_202E(); - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Plus, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1210011820))) ? (-1473032470) : (-1473032466)); - break; - case 1: - _202A_206F_206F_202C_206B_200C_200C_206A_206B_200F_206D_206F_202E_202D_206E_206F_200D_202B_202C_202B_202A_206F_202C_200B_200E_206B_206A_206F_202B_206F_200B_202E_202D_202B_202C_200E_202D_206E_202A_202E_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(726973831)); - return; - } + MinGil = _addGilThreshold, + Mode = EStopConditionMode.Stop + }); + Save(); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawAddSimpleCondition<T>() where T : StopCondition, new() { - int num = ((!base.Configuration.Stop.Conditions.OfType<T>().Any()) ? (-989337839) : (-989337837)); - while (true) + if (base.Configuration.Stop.Conditions.OfType<T>().Any()) { - int num2 = num; - int num3 = -989337838; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + ImGui.TextDisabled("Already configured"); + } + else if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Plus, "Add")) + { + base.Configuration.Stop.Conditions.Add(new T { - case 2: - num = -989337837; - break; - case 1: - _202A_206F_206F_202C_206B_200C_200C_206A_206B_200F_206D_206F_202E_202D_206E_206F_200D_202B_202C_202B_202A_206F_202C_200B_200E_206B_206A_206F_202B_206F_200B_202E_202D_202B_202C_200E_202D_206E_202A_202E_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-855443746)); - return; - case 0: - return; - case 4: - base.Configuration.Stop.Conditions.Add(new T - { - Mode = EStopConditionMode.Stop - }); - Save(); - num = -989337838; - break; - case 3: - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Plus, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(506770427))) ? (-989337838) : (-989337834)); - break; - } + Mode = EStopConditionMode.Stop + }); + Save(); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawSessionConditions() { List<StopCondition> sessionConditions = _questController.SessionConditions; - int num = ((sessionConditions.Count != 0) ? (-565908276) : (-565908273)); - while (true) + if (sessionConditions.Count == 0) { - int num2 = num; - int num3 = -565908274; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_005d; - case 1: - return; - case 2: - { - UiThemeUtils.SectionSpacing(); - UiThemeUtils.SectionHeader(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-59870377)); - (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple = UiThemeUtils.BeginCard(); - Vector2 item = tuple.ContentStartPos; - float item2 = tuple.AvailableWidth; - ImDrawListPtr item3 = tuple.DrawList; - for (int num7 = 0; num7 < sessionConditions.Count; num7 = (num4 | num3) + (num4 & num3)) - { - ImU8String imU8String = new ImU8String(7, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-228958659)); - imU8String.AppendFormatted(num7); - ImRaii.IdDisposable idDisposable = _206B_202D_200F_200C_202D_200E_206E_202E_206A_206D_206E_200D_206E_202B_200D_206E_200B_200C_206A_206B_202A_206E_206B_200E_200C_200F_206E_202D_206A_206C_206D_202B_200C_200E_202D_206C_206C_200D_202C_202E(imU8String, true); - try - { - StopCondition stopCondition = sessionConditions[num7]; - _202D_202E_206A_202B_200F_206D_202B_200D_206F_206E_206A_202D_206F_206A_200E_200C_206C_206A_206D_202A_202D_202B_206E_206F_206D_202C_200D_206E_206C_206D_206D_206E_202B_202E_202A_206A_206C_206C_200F_206C_202E((ImU8String)stopCondition.GetDescription()); - _200B_206C_202A_200E_202D_202B_200F_206C_202B_200B_202B_206F_202D_200C_206D_200E_202A_202E_206C_202A_206E_206C_206A_200E_206B_206C_206A_202C_206E_200B_200F_200F_202A_202B_206B_200F_202B_202C_206E_202E_202E(); - ImU8String imU8String2 = new ImU8String(2, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1234830832)); - imU8String2.AppendFormatted(stopCondition.Mode); - imU8String2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1851437460)); - _202A_206F_206F_202C_206B_200C_200C_206A_206B_200F_206D_206F_202E_202D_206E_206F_200D_202B_202C_202B_202A_206F_202C_200B_200E_206B_206A_206F_202B_206F_200B_202E_202D_202B_202C_200E_202D_206E_202A_202E_202E(imU8String2); - } - finally - { - num = ((idDisposable == null) ? (-943401635) : (-943401636)); - while (true) - { - int num8 = num; - num3 = -943401635; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 0: - goto end_IL_0150; - case 1: - _206E_200E_202B_206B_206F_206F_200F_206D_200E_202E_206F_202C_202C_206A_200E_206F_206A_206F_202D_200F_206B_202B_202C_202A_206E_206F_202D_200D_202C_202B_202B_206D_200E_202D_206C_200D_202E_200B_200F_202C_202E((IDisposable)idDisposable); - num = -943401635; - break; - case 2: - num = -943401636; - break; - } - continue; - end_IL_0150: - break; - } - } - int num11 = num7; - num3 = 1; - num4 = num11; - } - UiThemeUtils.EndCard(item, item2, item3); - return; - } - } - continue; - IL_005d: - num = -565908273; + return; } + UiThemeUtils.SectionSpacing(); + UiThemeUtils.SectionHeader("This Session"); + (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple = UiThemeUtils.BeginCard(); + Vector2 item = tuple.ContentStartPos; + float item2 = tuple.AvailableWidth; + ImDrawListPtr item3 = tuple.DrawList; + for (int i = 0; i < sessionConditions.Count; i++) + { + ImU8String id = new ImU8String(7, 1); + id.AppendLiteral("Session"); + id.AppendFormatted(i); + using (ImRaii.PushId(id)) + { + StopCondition stopCondition = sessionConditions[i]; + ImGui.BulletText(stopCondition.GetDescription()); + ImGui.SameLine(); + ImU8String text = new ImU8String(2, 1); + text.AppendLiteral("["); + text.AppendFormatted(stopCondition.Mode); + text.AppendLiteral("]"); + ImGui.TextDisabled(text); + } + } + UiThemeUtils.EndCard(item, item2, item3); } private string ResolveQuestName(ElementId questId) { - IQuestInfo questInfo; - int num = ((!_questData.TryGetQuestInfo(questId, out questInfo)) ? (-1798007610) : (-1798007609)); - while (true) + if (_questData.TryGetQuestInfo(questId, out IQuestInfo questInfo)) { - int num2 = num; - int num3 = -1798007610; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return _200E_202D_202C_206F_206C_202E_200D_202E_200E_200D_200C_202A_200D_202E_200C_202B_202D_200C_206A_206F_202B_202A_200E_200B_202B_202A_200F_200B_206E_206B_200D_206B_200E_200C_202E_206F_200E_200E_200E_206A_202E((object)questId); - case 1: - return questInfo.Name; - case 2: - goto IL_005e; - } - continue; - IL_005e: - num = -1798007609; + return questInfo.Name; } + return questId.ToString(); } private bool HasQuestCondition(ElementId questId, EStopConditionType type) { - using (List<StopCondition>.Enumerator enumerator = base.Configuration.Stop.Conditions.GetEnumerator()) + foreach (StopCondition condition in base.Configuration.Stop.Conditions) { - int num = 511644902; - StopCondition current = default(StopCondition); - QuestCompleteCondition questCompleteCondition = default(QuestCompleteCondition); - QuestAcceptCondition questAcceptCondition = default(QuestAcceptCondition); - while (true) + if (condition.Type == type) { - int num2 = num; - int num3 = 511644896; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (condition is QuestCompleteCondition questCompleteCondition && questCompleteCondition.QuestId.Equals(questId)) + { + return true; + } + if (condition is QuestAcceptCondition questAcceptCondition && questAcceptCondition.QuestId.Equals(questId)) { - case 1: return true; - case 3: - current = enumerator.Current; - num = ((current.Type != type) ? 511644902 : 511644904); - break; - case 7: - num = ((!_206D_200D_206B_202B_202A_206D_200E_202D_206B_200E_200C_200E_206F_202A_202A_206E_202C_206A_200F_206A_200B_200F_206A_202C_200B_202C_202B_200D_200C_202A_202B_200E_202A_206B_200C_202E_206B_202A_206E_206A_202E(questCompleteCondition.QuestId, questId)) ? 511644896 : 511644898); - break; - case 4: - num = 511644902; - break; - case 8: - questCompleteCondition = current as QuestCompleteCondition; - num = ((questCompleteCondition == null) ? 511644896 : 511644903); - break; - case 2: - return true; - case 9: - num = ((!_206D_200D_206B_202B_202A_206D_200E_202D_206B_200E_200C_200E_206F_202A_202A_206E_202C_206A_200F_206A_200B_200F_206A_202C_200B_202C_202B_200D_200C_202A_202B_200E_202A_206B_200C_202E_206B_202A_206E_206A_202E(questAcceptCondition.QuestId, questId)) ? 511644902 : 511644897); - break; - case 6: - num = (enumerator.MoveNext() ? 511644899 : 511644901); - break; - case 0: - questAcceptCondition = current as QuestAcceptCondition; - num = ((questAcceptCondition == null) ? 511644902 : 511644905); - break; - case 5: - goto end_IL_0022; } - continue; - end_IL_0022: - break; } } return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private List<Quest> GetCurrentlyAcceptedQuests() { List<Quest> list = new List<Quest>(); try { - IEnumerator<Quest> enumerator = _questRegistry.AllQuests.GetEnumerator(); - try + foreach (Quest allQuest in _questRegistry.AllQuests) { - int num = -406994437; - Quest current = default(Quest); - while (true) + if (_questFunctions.IsQuestAccepted(allQuest.Id)) { - int num2 = num; - int num3 = -406994438; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -406994437; - break; - case 3: - list.Add(current); - num = -406994437; - break; - case 1: - num = (_206D_206F_206B_206F_206E_206D_206D_206C_202C_200E_202E_206A_206E_200E_206F_206B_202C_206C_206E_200C_202E_206A_206B_206D_200D_202A_200C_206E_206A_206B_206E_202E_202D_202B_200B_206B_202B_202A_202B_202D_202E((IEnumerator)enumerator) ? (-406994440) : (-406994434)); - break; - case 2: - current = enumerator.Current; - num = ((!_questFunctions.IsQuestAccepted(current.Id)) ? (-406994437) : (-406994439)); - break; - case 4: - goto end_IL_0023; - } - continue; - end_IL_0023: - break; + list.Add(allQuest); } } - finally - { - int num = ((enumerator == null) ? 1292761729 : 1292761728); - while (true) - { - int num5 = num; - int num3 = 1292761729; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 2: - num = 1292761728; - break; - case 1: - _206E_200E_202B_206B_206F_206F_200F_206D_200E_202E_206F_202C_202C_206A_200E_206F_206A_206F_202D_200F_206B_202B_202C_202A_206E_206F_202D_200D_202C_202B_202B_206D_200E_202D_206C_200D_202E_200B_200F_202C_202E((IDisposable)enumerator); - num = 1292761729; - break; - case 0: - goto end_IL_00f1; - } - continue; - end_IL_00f1: - break; - } - } - list.Sort((Quest a, Quest b) => _003C_003Ec._202B_200C_202C_202B_202D_200B_200C_206E_200B_202D_200B_202B_200B_200E_200C_206A_200F_202E_206F_202B_206B_206F_200D_206C_200C_202D_206C_200B_200C_206A_200D_206E_202D_206F_206B_202A_200B_202A_206B_202E_202E(a.Info.Name, b.Info.Name, StringComparison.OrdinalIgnoreCase)); + list.Sort((Quest a, Quest b) => string.Compare(a.Info.Name, b.Info.Name, StringComparison.OrdinalIgnoreCase)); } - catch (Exception ex) + catch (Exception exception) { - _202B_200B_200C_206C_200E_200F_202A_202D_206C_200B_202C_206B_202C_202A_202D_202C_206A_206B_206F_200C_202A_202B_206A_200E_206B_200F_200B_202E_206E_200B_200B_200D_202A_202D_200F_200D_206C_202A_206A_200F_202E((ILogger)_logger, ex, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1084509902), Array.Empty<object>()); + _logger.LogDebug(exception, "Failed to enumerate accepted quests"); list.Clear(); } return list; } - - static ImRaii.DisabledDisposable _202D_202C_206B_202A_200E_200C_202A_202D_206E_206F_206D_206E_202C_200F_200F_206C_202D_202A_202D_202D_200F_202E_202B_206A_200C_206B_206A_206E_202B_206C_206E_206A_202B_200F_202D_202E_206F_200D_206D_206C_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static void _206E_200E_202B_206B_206F_206F_200F_206D_200E_202E_206F_202C_202C_206A_200E_206F_206A_206F_202D_200F_206B_202B_202C_202A_206E_206F_202D_200D_202C_202B_202B_206D_200E_202D_206C_200D_202E_200B_200F_202C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static Vector2 _200F_206E_200F_200E_202C_200C_206E_202B_200F_206D_202B_200C_206D_200C_200B_202D_206A_202E_202C_206E_206C_202A_202E_206B_206B_202B_202E_202B_206D_200D_202D_206D_206F_202E_202A_200C_206E_200D_206F_206C_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static float _206F_202A_200E_206C_202D_200F_200C_206B_202C_206E_206C_200C_202D_206D_202E_206B_206C_202B_202A_202D_202C_200C_202C_206D_206E_206A_202E_206F_200C_206E_200E_206D_202C_200F_206B_200E_206C_206C_200E_206C_202E(float P_0, float P_1) - { - return MathF.Min(P_0, P_1); - } - - static void _202D_200D_202E_206F_202D_202A_200B_200C_200F_200B_206B_206A_200F_200E_200C_206D_202D_202B_202B_200E_200D_202B_202E_206D_200B_202C_200E_202C_206A_200B_202A_202D_206C_200E_206E_202D_200B_206F_206F_202E(float P_0) - { - ImGui.SetNextItemWidth(P_0); - } - - static bool _206B_206F_206A_200D_200D_202D_200C_202B_206F_206B_202C_206F_202C_206C_206F_202B_200D_200F_206E_206B_202D_202B_202E_202E_200E_206F_202D_206B_206D_206C_200D_202D_206D_200B_200B_202E_206A_200E_200E_200C_202E(ImU8String P_0, ref string P_1, int P_2, ImGuiInputTextFlags P_3, ImGui.ImGuiInputTextCallbackDelegate P_4) - { - return ImGui.InputText(P_0, ref P_1, P_2, P_3, P_4); - } - - static void _200B_206C_202A_200E_202D_202B_200F_206C_202B_200B_202B_206F_202D_200C_206D_200E_202A_202E_206C_202A_206E_206C_206A_200E_206B_206C_206A_202C_206E_200B_200F_200F_202A_202B_206B_200F_202B_202C_206E_202E_202E() - { - ImGui.SameLine(); - } - - static void _202A_206F_206F_202C_206B_200C_200C_206A_206B_200F_206D_206F_202E_202D_206E_206F_200D_202B_202C_202B_202A_206F_202C_200B_200E_206B_206A_206F_202B_206F_200B_202E_202D_202B_202C_200E_202D_206E_202A_202E_202E(ImU8String P_0) - { - ImGui.TextDisabled(P_0); - } - - static ImRaii.IdDisposable _200D_200C_202B_200F_206D_206B_202B_200F_200D_200F_206D_206E_200D_202C_200D_206A_206F_200C_206F_206C_200E_202A_206E_200D_202E_206E_202E_202D_202E_200B_202E_202A_206A_206C_200C_206E_206D_202B_206F_202C_202E(int P_0, bool P_1) - { - return ImRaii.PushId(P_0, P_1); - } - - static void _206F_202A_206B_206A_206F_206C_200B_200F_206C_200E_202B_206F_206E_200F_200E_206D_202D_206B_206B_202C_206D_200F_200C_202B_202B_206A_206F_202C_202B_206D_202D_200E_202E_202D_202C_202B_200B_206B_206B_206A_202E() - { - ImGui.AlignTextToFramePadding(); - } - - static void _200F_202A_200C_202E_206D_206E_206B_202D_202A_206E_200D_200D_200D_202D_202D_200E_202C_200B_206E_202A_202E_206E_206C_200D_200F_206C_206D_200F_202E_200E_202A_200C_200C_202D_206D_200E_200D_206B_200F_206B_202E(ImU8String P_0) - { - ImGui.Text(P_0); - } - - static float _202C_202B_206B_202D_202B_206A_202A_206A_200E_200C_202E_202B_202C_206F_200F_200B_200D_206C_202B_200E_202A_206A_202A_200B_200F_200E_200B_200D_202C_202C_200D_200F_200F_200F_200F_206B_206C_206E_200B_206D_202E() - { - return ImGui.GetFrameHeight(); - } - - static IUiBuilder _206A_202D_206F_206A_206D_202D_206B_206B_200B_202B_200F_202C_202C_200E_202C_202B_200B_206B_202C_200B_202C_200D_202D_200F_200D_206C_200E_200C_202B_206E_202B_200E_200F_206C_202C_200D_200E_206E_200C_200C_202E(IDalamudPluginInterface P_0) - { - return P_0.UiBuilder; - } - - static IFontHandle _202B_200F_206A_200E_200C_200B_202A_200B_206C_200D_206D_200C_206E_200B_202D_200B_206B_206F_206A_200F_206D_202C_206E_206B_202A_200C_206E_200D_206A_206C_200D_206D_206F_200C_202B_206E_202A_206E_206D_206F_202E(IUiBuilder P_0) - { - return P_0.IconFontFixedWidthHandle; - } - - static IDisposable _200C_206B_206C_200F_200D_202E_202C_206B_200F_202E_206D_206F_202E_200C_200E_200F_200F_202D_200D_200C_206E_206F_206B_200C_200D_206F_202A_200C_206C_202E_206D_200E_200B_206F_202C_206C_200B_200E_206E_200C_202E(IFontHandle P_0) - { - return P_0.Push(); - } - - static string _206D_206D_202A_202C_206A_200D_202D_206A_202A_200E_202B_202D_200C_202A_202C_206B_206F_206A_206C_206B_202E_200F_202A_200B_206B_202C_206A_202D_206C_206D_200B_200F_202A_200F_202B_200D_200B_206D_206A_206B_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static void _206B_206B_200E_200F_200F_202D_200B_200B_202B_206C_200F_200E_200B_206C_202C_206C_206C_200D_206E_200F_202A_202A_206A_202D_206F_200F_206C_206D_206D_200C_206C_200D_202A_206D_202E_202C_200F_200B_200C_206C_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static ImGuiStylePtr _206A_200D_202C_206D_200C_202E_206C_202D_200D_202E_206B_202D_202E_200B_206D_202D_202D_200F_200E_202A_206F_206B_200C_206F_206D_200D_202D_206A_200D_206C_200E_200E_206B_202C_206A_202B_202A_206E_202E_200F_202E() - { - return ImGui.GetStyle(); - } - - static ImFontPtr _202C_206C_200D_206A_200D_200C_202D_206B_206B_202B_200F_206C_206E_206C_202D_200B_200F_206B_202D_206F_200F_206F_202C_206E_200D_206D_200B_206B_206D_206D_202E_200D_200F_206C_202B_202B_202E_202E_206F_202E_202E() - { - return UiBuilder.IconFont; - } - - static ImRaii.FontDisposable _200B_200E_202D_200B_206F_202A_202E_200E_202C_200E_206A_206C_206E_200D_202A_200E_200E_206A_200F_206B_202D_206A_202C_206E_206F_200D_206E_206D_206B_206D_206B_206E_206D_202D_206C_206C_202A_206C_200E_200C_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static Vector2 _206D_200D_202B_202D_202D_206D_206D_206E_200C_200B_202E_202B_202D_202C_206C_206E_202C_200B_200C_202A_206F_200C_202E_202C_200D_200D_202A_200D_206F_206B_202C_206B_206C_206E_206D_202C_202C_206B_202D_206F_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static bool _202D_206C_206C_206B_202E_206C_202B_206C_202B_206C_202B_200C_200C_206A_200B_206C_200B_206E_200D_206D_202B_206C_206D_202B_206D_200C_206A_206C_202A_202A_206F_202E_200D_206B_206C_206B_200D_206D_200D_200E_202E() - { - return ImGui.IsItemHovered(); - } - - static bool _206A_206C_206B_206B_206F_200F_206C_206E_200F_200D_200B_206F_200B_206B_200B_200B_202B_200C_206C_200B_202B_206A_206E_200B_206D_206E_202A_200F_202C_200C_200E_202E_200E_202E_206D_200B_202A_206B_202A_200D_202E(ImU8String P_0, ref int P_1, int P_2, int P_3, ImU8String P_4, ImGuiInputTextFlags P_5) - { - return ImGui.InputInt(P_0, ref P_1, P_2, P_3, P_4, P_5); - } - - static int _200B_200D_206B_202A_202A_200D_206B_200E_200B_206D_206B_206E_200E_206C_200B_206D_206A_200F_202E_206C_202A_200F_202E_200B_200E_202E_200B_200B_200B_206E_206D_200F_200F_202E_200D_200F_206E_206D_200F_202B_202E(int P_0, int P_1) - { - return Math.Min(P_0, P_1); - } - - static int _202A_202C_206A_206F_202E_200F_206E_202A_202E_202E_206B_200E_200E_200F_206D_206B_202B_202B_202A_206F_206B_202B_206F_206D_202B_202A_200F_200B_206E_206E_206A_200D_200E_200E_202A_200F_206F_206F_206A_200E_202E(int P_0, int P_1) - { - return Math.Max(P_0, P_1); - } - - static string _206B_202B_206B_202C_200F_202C_200F_206F_200C_206E_206C_200F_202B_206C_202E_206F_202E_206B_206F_200E_202C_202D_206D_202C_200C_202B_200E_200F_200F_200D_206E_200B_200F_200D_206B_202E_200D_200C_200D_202E_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static void _202A_202B_200D_200F_200F_200D_200C_206E_206A_200D_206A_200B_206A_200D_206F_200B_202B_206C_200F_206B_206D_202A_200B_206C_200B_202C_202A_200E_206A_200D_200E_202E_200D_202C_200E_206C_202B_202B_200E_206A_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static IPlayerCharacter _206C_202D_202B_200E_200E_202A_206E_206C_202C_202A_200F_200B_206E_206C_200F_202D_200F_206F_206E_206E_200C_206D_202C_206A_202A_206F_206E_200D_200F_206E_206F_206A_202D_206D_206F_202D_200D_202A_202D_206F_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static byte _206A_206F_206F_206F_202B_200D_202D_206E_200E_200C_206B_202D_202D_202A_206A_200D_202C_202C_202C_202E_200D_200B_202B_206D_200D_206A_206F_202D_206E_206D_200C_202A_200F_206F_200F_206C_200D_202D_202D_200C_202E(ICharacter P_0) - { - return P_0.Level; - } - - static void _200F_202C_202E_206F_206C_206A_206C_200C_206A_200B_202E_206E_200C_206C_202C_200B_206C_202A_200C_200F_200D_206A_206D_206D_206B_202B_200C_202D_202D_206D_206D_202D_206B_202C_206D_200E_206A_200F_206B_206F_202E() - { - ImGui.NewLine(); - } - - static long _200C_202B_202D_202C_202C_206E_206E_206A_206B_202A_200C_200B_202A_202B_200B_200E_200D_206D_200E_202D_202E_206F_202D_200C_202A_202A_206F_206F_206C_206A_206B_202D_200B_202B_206A_206E_202E_206F_206D_202E() - { - return Environment.TickCount64; - } - - static ImRaii.IdDisposable _206B_202D_200F_200C_202D_200E_206E_202E_206A_206D_206E_200D_206E_202B_200D_206E_200B_200C_206A_206B_202A_206E_206B_200E_200C_200F_206E_202D_206A_206C_206D_202B_200C_200E_202D_206C_206C_200D_202C_202E(ImU8String P_0, bool P_1) - { - return ImRaii.PushId(P_0, P_1); - } - - static void _202D_202E_206A_202B_200F_206D_202B_200D_206F_206E_206A_202D_206F_206A_200E_200C_206C_206A_206D_202A_202D_202B_206E_206F_206D_202C_200D_206E_206C_206D_206D_206E_202B_202E_202A_206A_206C_206C_200F_206C_202E(ImU8String P_0) - { - ImGui.BulletText(P_0); - } - - static string _200E_202D_202C_206F_206C_202E_200D_202E_200E_200D_200C_202A_200D_202E_200C_202B_202D_200C_206A_206F_202B_202A_200E_200B_202B_202A_200F_200B_206E_206B_200D_206B_200E_200C_202E_206F_200E_200E_200E_206A_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _206D_200D_206B_202B_202A_206D_200E_202D_206B_200E_200C_200E_206F_202A_202A_206E_202C_206A_200F_206A_200B_200F_206A_202C_200B_202C_202B_200D_200C_202A_202B_200E_202A_206B_200C_202E_206B_202A_206E_206A_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - - static bool _206D_206F_206B_206F_206E_206D_206D_206C_202C_200E_202E_206A_206E_200E_206F_206B_202C_206C_206E_200C_202E_206A_206B_206D_200D_202A_200C_206E_206A_206B_206E_202E_202D_202B_200B_206B_202B_202A_202B_202D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202B_200B_200C_206C_200E_200F_202A_202D_206C_200B_202C_206B_202C_202A_202D_202C_206A_206B_206F_200C_202A_202B_206A_200E_206B_200F_200B_202E_206E_200B_200B_200D_202A_202D_200F_200D_206C_202A_206A_200F_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogDebug(P_1, P_2, P_3); - } } diff --git a/Questionable/Questionable.Windows.JournalComponents/AlliedSocietyJournalComponent.cs b/Questionable/Questionable.Windows.JournalComponents/AlliedSocietyJournalComponent.cs index 6b5859e..e122fc4 100644 --- a/Questionable/Questionable.Windows.JournalComponents/AlliedSocietyJournalComponent.cs +++ b/Questionable/Questionable.Windows.JournalComponents/AlliedSocietyJournalComponent.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Game.Text; using Dalamud.Interface; @@ -21,34 +20,7 @@ namespace Questionable.Windows.JournalComponents; internal sealed class AlliedSocietyJournalComponent { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass21_0 - { - public QuestInfo q; - - internal bool _003CDrawAddToPriorityButtons_003Eb__3(Quest pq) - { - return _206F_202C_200D_206C_202D_206C_200D_206F_202C_206F_206C_202B_200C_200E_200B_202B_206E_200F_206C_200D_206C_202A_202C_206A_202C_202E_200B_202C_202A_202C_206E_200E_200B_206E_202A_206C_206A_206D_202D_200F_202E(pq.Id, q.QuestId); - } - - static bool _206F_202C_200D_206C_202D_206C_200D_206F_202C_206F_206C_202B_200C_200E_200B_202B_206E_200F_206C_200D_206C_202A_202C_206A_202C_202E_200B_202C_202A_202C_206E_200E_200B_206E_202A_206C_206A_206D_202D_200F_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - - private static readonly string[] RankNames = new string[9] - { - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(483536351), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2031906070), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(981104508), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1129518073), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(176487350), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1452508934), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-249962653), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1890145585), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(821453821) - }; + private static readonly string[] RankNames = new string[9] { "Neutral", "Recognized", "Friendly", "Trusted", "Respected", "Honored", "Sworn", "Bloodsworn", "Allied" }; private const int DefaultDailyQuestLimit = 3; @@ -74,7 +46,47 @@ internal sealed class AlliedSocietyJournalComponent private readonly ILogger<AlliedSocietyJournalComponent> _logger; - private static readonly (string Name, EAlliedSociety[] Societies)[] ExpansionGroups; + private static readonly (string Name, EAlliedSociety[] Societies)[] ExpansionGroups = new(string, EAlliedSociety[])[6] + { + ("A Realm Reborn", new EAlliedSociety[5] + { + EAlliedSociety.Amaljaa, + EAlliedSociety.Sylphs, + EAlliedSociety.Kobolds, + EAlliedSociety.Sahagin, + EAlliedSociety.Ixal + }), + ("Heavensward", new EAlliedSociety[3] + { + EAlliedSociety.VanuVanu, + EAlliedSociety.Vath, + EAlliedSociety.Moogles + }), + ("Stormblood", new EAlliedSociety[3] + { + EAlliedSociety.Kojin, + EAlliedSociety.Ananta, + EAlliedSociety.Namazu + }), + ("Shadowbringers", new EAlliedSociety[3] + { + EAlliedSociety.Pixies, + EAlliedSociety.Qitari, + EAlliedSociety.Dwarves + }), + ("Endwalker", new EAlliedSociety[3] + { + EAlliedSociety.Arkasodara, + EAlliedSociety.Omicrons, + EAlliedSociety.Loporrits + }), + ("Dawntrail", new EAlliedSociety[3] + { + EAlliedSociety.Pelupelu, + EAlliedSociety.MamoolJa, + EAlliedSociety.YokHuy + }) + }; public AlliedSocietyJournalComponent(AlliedSocietyQuestFunctions alliedSocietyQuestFunctions, QuestData questData, QuestRegistry questRegistry, QuestJournalUtils questJournalUtils, QuestTooltipComponent questTooltipComponent, UiUtils uiUtils, QuestController questController, IChatGui chatGui, ILogger<AlliedSocietyJournalComponent> logger) { @@ -89,139 +101,57 @@ internal sealed class AlliedSocietyJournalComponent _logger = logger; } - [MethodImpl(MethodImplOptions.NoInlining)] public void DrawAlliedSocietyQuests() { DrawDailyAllowanceBar(); - _200E_206A_200D_200F_206D_202A_206F_206F_200E_200B_200B_206C_200F_202B_202D_200E_200B_202B_200B_206B_200E_206C_202C_202B_200E_206A_206B_202D_200C_206C_200C_202B_206F_200F_202D_200D_202B_206F_206F_206C_202E(); - _202E_200B_200E_200F_202B_206B_200B_202C_202A_202B_200C_206C_200E_206D_202D_202A_200C_206B_206A_200B_206C_202A_200B_206C_200F_206E_206F_206F_202E_200B_206E_206A_200C_206D_206C_200C_202C_200F_200D_202C_202E(); + ImGui.Separator(); + ImGui.Spacing(); bool flag = false; (string, EAlliedSociety[])[] expansionGroups = ExpansionGroups; - int num = 0; - int num6; - while (num < expansionGroups.Length) + for (int i = 0; i < expansionGroups.Length; i++) { - (string, EAlliedSociety[]) tuple = expansionGroups[num]; + (string, EAlliedSociety[]) tuple = expansionGroups[i]; string item = tuple.Item1; EAlliedSociety[] item2 = tuple.Item2; List<(EAlliedSociety, List<QuestInfo>)> list = new List<(EAlliedSociety, List<QuestInfo>)>(); EAlliedSociety[] array = item2; - int num4; - int num5; - for (int num2 = 0; num2 < array.Length; num2 = (num5 | num4) + (num5 & num4)) + foreach (EAlliedSociety eAlliedSociety in array) { - EAlliedSociety eAlliedSociety = array[num2]; List<QuestInfo> list2 = (from x in _alliedSocietyQuestFunctions.GetAvailableAlliedSocietyQuests(eAlliedSociety) select (QuestInfo)_questData.GetQuestInfo(x)).ToList(); if (list2.Count > 0) { list.Add((eAlliedSociety, list2)); } - int num3 = num2; - num4 = 1; - num5 = num3; } - if (list.Count != 0) + if (list.Count == 0) { - flag = true; - UiThemeUtils.SubSectionHeader(item); - _202E_200B_200E_200F_202B_206B_200B_202C_202A_202B_200C_206C_200E_206D_202D_202A_200C_206B_206A_200B_206C_202A_200B_206C_200F_206E_206F_206F_202E_200B_206E_206A_200C_206D_206C_200C_202C_200F_200D_202C_202E(); - using (List<(EAlliedSociety, List<QuestInfo>)>.Enumerator enumerator = list.GetEnumerator()) - { - num6 = -1559165555; - while (true) - { - int num7 = num6; - num4 = -1559165553; - num5 = num7; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num6 = -1559165555; - break; - case 2: - num6 = (enumerator.MoveNext() ? (-1559165556) : (-1559165554)); - break; - case 3: - var (alliedSociety, quests) = enumerator.Current; - DrawSocietySection(alliedSociety, quests); - num6 = -1559165555; - break; - case 1: - goto end_IL_00d9; - } - continue; - end_IL_00d9: - break; - } - } - _202E_200B_200E_200F_202B_206B_200B_202C_202A_202B_200C_206C_200E_206D_202D_202A_200C_206B_206A_200B_206C_202A_200B_206C_200F_206E_206F_206F_202E_200B_206E_206A_200C_206D_206C_200C_202C_200F_200D_202C_202E(); + continue; } - int num8 = num; - num4 = 1; - num5 = num8; - int num9 = num5 ^ num4; - int num10 = num5 & num4; - num = num9 + (num10 + num10); + flag = true; + UiThemeUtils.SubSectionHeader(item); + ImGui.Spacing(); + foreach (var (alliedSociety, quests) in list) + { + DrawSocietySection(alliedSociety, quests); + } + ImGui.Spacing(); } - num6 = -1902781762; - while (true) + if (!flag) { - int num11 = num6; - int num4 = -1902781763; - int num5 = num11; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - num6 = -1902781762; - break; - case 0: - _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref UiThemeUtils.DimTextColor, (ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1468474206)); - num6 = -1902781764; - break; - case 3: - num6 = (flag ? (-1902781764) : (-1902781763)); - break; - case 1: - return; - } + ImGui.TextColored(in UiThemeUtils.DimTextColor, "No allied society quests available."); } } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void DrawDailyAllowanceBar() { QuestManager* ptr = QuestManager.Instance(); - int num = ((ptr != null) ? 1997430706 : 1997430707); - while (true) + if (ptr != null) { - int num2 = num; - int num3 = 1997430706; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - { - byte b = (byte)ptr->GetBeastTribeAllowance(); - num3 = b; - num4 = 12; - int num5 = ~(~num4 + num3); - TimeSpan item = CalculateTimeUntilReset().TimeUntilReset; - string unit = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(173280231); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(47, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-283282305)); - defaultInterpolatedStringHandler.AppendFormatted(num5); - JournalUiShared.DrawAllowanceHeader(num5, 12, unit, item, defaultInterpolatedStringHandler.ToStringAndClear()); - return; - } - case 1: - return; - case 2: - goto IL_00b3; - } - continue; - IL_00b3: - num = 1997430707; + byte b = (byte)ptr->GetBeastTribeAllowance(); + int num = 12 - b; + TimeSpan item = CalculateTimeUntilReset().TimeUntilReset; + JournalUiShared.DrawAllowanceHeader(num, 12, "daily allowances", item, $"Shared across all allied societies\nUsed today: {num}"); } } @@ -229,1796 +159,515 @@ internal sealed class AlliedSocietyJournalComponent { DateTime utcNow = DateTime.UtcNow; DateTime dateTime = new DateTime(utcNow.Year, utcNow.Month, utcNow.Day, 15, 0, 0, DateTimeKind.Utc); - int num = ((utcNow >= dateTime) ? 688800403 : 688800400); - DateTime dateTime2; - while (true) - { - int num2 = num; - int num3 = 688800401; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 0: - goto IL_0079; - case 1: - dateTime2 = dateTime; - break; - case 2: - dateTime2 = dateTime.AddDays(1.0); - break; - } - break; - IL_0079: - num = 688800400; - } - DateTime dateTime3 = dateTime2; - TimeSpan item = dateTime3 - utcNow; - return (ResetTime: dateTime3.ToLocalTime(), TimeUntilReset: item); + DateTime dateTime2 = ((utcNow >= dateTime) ? dateTime.AddDays(1.0) : dateTime); + TimeSpan item = dateTime2 - utcNow; + return (ResetTime: dateTime2.ToLocalTime(), TimeUntilReset: item); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawReputationStatus(EAlliedSociety alliedSociety) { (byte, ushort, ushort, bool, bool)? reputationStatus = _alliedSocietyQuestFunctions.GetReputationStatus(alliedSociety); - int num = (reputationStatus.HasValue ? (-129004571) : (-129004570)); - byte item4 = default(byte); - ushort item = default(ushort); - ushort item2 = default(ushort); - bool item5 = default(bool); - bool item3 = default(bool); - string value = default(string); - while (true) + if (!reputationStatus.HasValue) { - int num2 = num; - int num3 = -129004576; - int num4 = num2; - object obj; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 5: - { - (byte, ushort, ushort, bool, bool) value2 = reputationStatus.Value; - item4 = value2.Item1; - item = value2.Item2; - item2 = value2.Item3; - item5 = value2.Item4; - item3 = value2.Item5; - num = ((item4 < RankNames.Length) ? (-129004576) : (-129004572)); - continue; - } - case 0: - obj = RankNames[item4]; - goto IL_00c8; - case 3: - num = -129004570; - continue; - case 6: - return; - case 4: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(5, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1579900622)); - defaultInterpolatedStringHandler.AppendFormatted(item4); - obj = defaultInterpolatedStringHandler.ToStringAndClear(); - goto IL_00c8; - } - case 7: - { - ImU8String imU8String3 = new ImU8String(0, 1); - imU8String3.AppendFormatted(value); - _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref UiThemeUtils.StatusComplete, imU8String3); - break; - } - case 1: - { - if (item3) - { - num = -129004574; - continue; - } - num = ((item2 > 0) ? 1342331391 : 1342331390); - Vector4 vector; - while (true) - { - int num11 = num; - num3 = 1342331391; - num4 = num11; - float num12; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 2: - vector = UiThemeUtils.MutedTextColor; - break; - case 1: - num12 = 0f; - goto IL_03db; - case 4: - vector = UiThemeUtils.StatusActive; - break; - case 3: - num = 1342331390; - continue; - case 0: - { - num12 = (float)(int)item / (float)(int)item2; - goto IL_03db; - } - IL_03db: - num = ((num12 >= 0.8f) ? 1342331387 : 1342331389); - continue; - } - break; - } - Vector4 vector2 = vector; - ImU8String imU8String2 = new ImU8String(4, 3); - imU8String2.AppendFormatted(value); - imU8String2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1648031977)); - imU8String2.AppendFormatted(item); - imU8String2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(503298330)); - imU8String2.AppendFormatted(item2); - _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref vector2, imU8String2); - break; - } - case 2: - { - ImRaii.ColorDisposable colorDisposable = _202B_206D_202D_206B_206B_202C_206A_206D_202E_206E_200C_202C_202B_206E_200F_202B_200E_206D_206F_206F_202C_200C_206C_202B_206C_206F_200E_202D_202E_202D_206A_206C_206E_200F_200B_200B_202D_206D_202D_200D_202E(ImGuiCol.Text, UiThemeUtils.StatusActive, true); - try - { - ImRaii.FontDisposable fontDisposable = _206A_206A_202A_202C_206D_206E_206B_202D_200E_200E_200C_206C_200C_202B_202C_202B_202E_202E_202A_206F_206B_206A_202A_200D_200D_202C_206E_200B_206A_202E_202B_206C_206E_200E_202C_206A_200E_202C_200C_206D_202E(_206E_200C_202B_206A_206A_202B_202D_206B_200D_200C_200F_200C_206F_200F_200F_200E_202C_206B_200F_206B_200F_206F_200C_202E_206C_200C_200F_206C_202E_202A_200E_200D_200D_202A_200C_200C_206F_206D_206A_206F_202E(), true); - try - { - _202D_206B_206F_202E_202E_200D_202E_206E_200B_200E_206F_200C_206F_202D_206E_206D_206A_202D_206E_206B_206D_202B_202E_200B_206B_202A_202A_200F_200B_202B_202A_200B_206D_206A_206B_206C_200E_200D_200E_206F_202E((ImU8String)_200F_202D_202E_206D_200F_206E_202C_206F_206E_202E_206A_206E_202D_206F_202B_206C_206C_202E_200F_206A_206F_202B_206D_202D_206F_200C_202E_200E_200F_206B_202A_200D_202A_202C_206D_200F_200B_202A_206B_206B_202E(FontAwesomeIcon.ExclamationTriangle)); - } - finally - { - num = ((fontDisposable == null) ? 1728465027 : 1728465026); - while (true) - { - int num5 = num; - num3 = 1728465027; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 2: - num = 1728465026; - break; - case 0: - goto end_IL_01c5; - case 1: - _200F_206B_202C_202B_200E_206A_206A_206A_202C_202D_206A_202B_206A_202C_206D_206B_200D_206A_200E_206E_202E_200C_206A_206D_202B_200E_206A_202E_202E_202A_206A_200C_200E_200F_200B_200C_206E_202A_200C_206B_202E((IDisposable)fontDisposable); - num = 1728465027; - break; - } - continue; - end_IL_01c5: - break; - } - } - _202D_200E_206A_202B_206F_200C_206A_206C_200E_202C_202A_206D_202D_200E_200C_202B_202D_202B_206B_206D_200F_206E_202B_200E_200E_206D_206D_206B_202E_206A_202D_202E_200E_202E_200B_206C_200C_206B_200E_200E_202E(0f, 4f); - ImU8String imU8String = new ImU8String(24, 3); - imU8String.AppendFormatted(value); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1648031977)); - imU8String.AppendFormatted(item); - imU8String.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1392036559)); - imU8String.AppendFormatted(item2); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-651901975)); - _202B_206E_202E_200C_206C_202B_206A_206E_206F_202D_200E_202E_206B_200B_206B_200F_206B_206B_202C_200E_206B_206D_206B_206F_206F_206E_200D_202B_206C_206A_202D_206B_206D_200D_202C_200D_202B_200B_206D_200D_202E(imU8String); - } - finally - { - num = ((colorDisposable == null) ? 108065444 : 108065445); - while (true) - { - int num8 = num; - num3 = 108065444; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 2: - num = 108065445; - break; - case 1: - _200F_206B_202C_202B_200E_206A_206A_206A_202C_202D_206A_202B_206A_202C_206D_206B_200D_206A_200E_206E_202E_200C_206A_206D_202B_200E_206A_202E_202E_202A_206A_200C_200E_200F_200B_200C_206E_202A_200C_206B_202E((IDisposable)colorDisposable); - num = 108065444; - break; - case 0: - goto end_IL_02a3; - } - continue; - end_IL_02a3: - break; - } - } - break; - } - IL_00c8: - value = (string)obj; - num = ((!item5) ? (-129004575) : (-129004569)); - continue; - } - break; + return; } - _202E_200B_200E_200F_202B_206B_200B_202C_202A_202B_200C_206C_200E_206D_202D_202A_200C_206B_206A_200B_206C_202A_200B_206C_200F_206E_206F_206F_202E_200B_206E_206A_200C_206D_206C_200C_202C_200F_200D_202C_202E(); + (byte, ushort, ushort, bool, bool) value = reputationStatus.Value; + byte item = value.Item1; + ushort item2 = value.Item2; + ushort item3 = value.Item3; + bool item4 = value.Item4; + bool item5 = value.Item5; + string value2 = ((item < RankNames.Length) ? RankNames[item] : $"Rank {item}"); + if (item4) + { + ImU8String text = new ImU8String(0, 1); + text.AppendFormatted(value2); + ImGui.TextColored(in UiThemeUtils.StatusComplete, text); + } + else if (item5) + { + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.StatusActive)) + { + using (ImRaii.PushFont(UiBuilder.IconFont)) + { + ImGui.Text(FontAwesomeIcon.ExclamationTriangle.ToIconString()); + } + ImGui.SameLine(0f, 4f); + ImU8String text2 = new ImU8String(24, 3); + text2.AppendFormatted(value2); + text2.AppendLiteral(" - "); + text2.AppendFormatted(item2); + text2.AppendLiteral("/"); + text2.AppendFormatted(item3); + text2.AppendLiteral(" (rank up available)"); + ImGui.TextUnformatted(text2); + } + } + else + { + Vector4 col = ((((item3 > 0) ? ((float)(int)item2 / (float)(int)item3) : 0f) >= 0.8f) ? UiThemeUtils.StatusActive : UiThemeUtils.MutedTextColor); + ImU8String text3 = new ImU8String(4, 3); + text3.AppendFormatted(value2); + text3.AppendLiteral(" - "); + text3.AppendFormatted(item2); + text3.AppendLiteral("/"); + text3.AppendFormatted(item3); + ImGui.TextColored(in col, text3); + } + ImGui.Spacing(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawSocietySection(EAlliedSociety alliedSociety, List<QuestInfo> quests) { - int num = quests.Count(delegate(QuestInfo q) + Quest quest; + int num = quests.Count((QuestInfo q) => _questRegistry.TryGetQuest(q.QuestId, out quest) && !quest.Root.Disabled); + string rightText = ((num > 0) ? $"{num} available" : "no paths available"); + string text = $"AlliedSociety{alliedSociety}"; + string label = alliedSociety.ToString(); + bool open = _societyHeaderStates.GetValueOrDefault(text, defaultValue: false); + UiThemeUtils.ThemedAccordion(text, label, rightText, ref open); + _societyHeaderStates[text] = open; + if (!open) { - Quest quest; - int num9 = ((!_questRegistry.TryGetQuest(q.QuestId, out quest)) ? 1263260945 : 1263260944); - while (true) - { - int num10 = num9; - int num11 = 1263260945; - int num12 = num10; - int num13 = num12 + num11; - int num14 = num12 & num11; - switch (num13 - (num14 + num14)) - { - case 2: - goto IL_0055; - case 0: - return false; - case 1: - return !_206F_200E_200C_206B_206F_206B_202E_200E_200B_200C_200C_202E_206B_206B_200B_202E_200F_200E_200E_200E_206E_202D_206C_206B_202A_202C_200C_200B_202D_200B_206E_206B_200E_206D_206D_206C_200D_202E_200F_206F_202E(quest.Root); - } - continue; - IL_0055: - num9 = 1263260944; - } - }); - int num2 = ((num > 0) ? 963882484 : 963882487); - while (true) + return; + } + using (ImRaii.PushIndent()) { - int num3 = num2; - int num4 = 963882486; - int num5 = num3; - string text; - string rightText; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2; - string text2; - string label; - bool open; - switch ((num5 | num4) - (num5 & num4)) - { - case 4: - return; - case 2: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(10, 1); - defaultInterpolatedStringHandler.AppendFormatted(num); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1529874773)); - text = defaultInterpolatedStringHandler.ToStringAndClear(); - goto IL_0091; - } - case 1: - text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-205885399); - goto IL_0091; - case 0: - num2 = 963882487; - break; - case 3: - { - ImRaii.IndentDisposable indentDisposable = _202D_202D_206A_206D_206B_206B_206A_200B_202C_206C_202B_200D_200D_200B_206A_206B_200B_200F_206E_206F_200D_202C_206C_202A_206C_206E_200E_206D_206F_206A_202C_200D_202E_206A_206B_202A_200F_206C_206B_200E_202E(1, true); - try - { - DrawReputationStatus(alliedSociety); - DrawAddToPriorityButtons(alliedSociety, quests); - _202E_200B_200E_200F_202B_206B_200B_202C_202A_202B_200C_206C_200E_206D_202D_202A_200C_206B_206A_200B_206C_202A_200B_206C_200F_206E_206F_206F_202E_200B_206E_206A_200C_206D_206C_200C_202C_200F_200D_202C_202E(); - DrawQuestList(alliedSociety, quests); - return; - } - finally - { - num2 = ((indentDisposable == null) ? (-827768642) : (-827768643)); - while (true) - { - int num6 = num2; - num4 = -827768644; - num5 = num6; - int num7 = num5 + num4; - int num8 = num5 & num4; - switch (num7 - (num8 + num8)) - { - case 0: - num2 = -827768643; - break; - case 1: - _200F_206B_202C_202B_200E_206A_206A_206A_202C_202D_206A_202B_206A_202C_206D_206B_200D_206A_200E_206E_202E_200C_206A_206D_202B_200E_206A_202E_202E_202A_206A_200C_200E_200F_200B_200C_206E_202A_200C_206B_202E((IDisposable)indentDisposable); - num2 = -827768642; - break; - case 2: - goto end_IL_0183; - } - continue; - end_IL_0183: - break; - } - } - } - IL_0091: - rightText = text; - defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(13, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1880679379)); - defaultInterpolatedStringHandler2.AppendFormatted((int)alliedSociety); - text2 = defaultInterpolatedStringHandler2.ToStringAndClear(); - label = alliedSociety.ToString(); - open = _societyHeaderStates.GetValueOrDefault(text2, defaultValue: false); - UiThemeUtils.ThemedAccordion(text2, label, rightText, ref open); - _societyHeaderStates[text2] = open; - num2 = (open ? 963882485 : 963882482); - break; - } + DrawReputationStatus(alliedSociety); + DrawAddToPriorityButtons(alliedSociety, quests); + ImGui.Spacing(); + DrawQuestList(alliedSociety, quests); } } private void DrawQuestList(EAlliedSociety alliedSociety, List<QuestInfo> quests) { - int num = (((int)alliedSociety <= 4) ? (-562687489) : (-562687491)); - int num6 = default(int); - while (true) + int num = (((int)alliedSociety <= 4) ? 4 : ((alliedSociety != EAlliedSociety.Ixal) ? 9 : 8)); + int num2 = num; + int num3 = 0; + byte rank = 1; + while (rank <= num2) { - int num2 = num; - int num3 = -562687493; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + List<QuestInfo> list = quests.Where((QuestInfo x) => x.AlliedSocietyRank == rank).ToList(); + if (list.Count != 0) { - case 1: - num6 = 9; - num = -562687496; - break; - case 5: - num = -562687494; - break; - case 6: - num = ((alliedSociety == EAlliedSociety.Ixal) ? (-562687495) : (-562687490)); - break; - case 4: - num6 = 4; - num = -562687496; - break; - case 2: - num6 = 8; - num = -562687496; - break; - case 0: - num = -562687491; - break; - case 3: - { - int num5 = num6; - int num7 = 0; - byte rank = 1; - while (rank <= num5) + ImGui.TextColored(in UiThemeUtils.MutedTextColor, RankNames[rank]); + foreach (QuestInfo item in list) { - List<QuestInfo> list = quests.Where((QuestInfo x) => x.AlliedSocietyRank == rank).ToList(); - if (list.Count != 0) - { - _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)RankNames[rank]); - using List<QuestInfo>.Enumerator enumerator = list.GetEnumerator(); - num = -192678582; - while (true) - { - int num8 = num; - num3 = -192678581; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 3: - num = -192678582; - break; - case 2: - { - QuestInfo current = enumerator.Current; - int num11 = num7; - num3 = 1; - num4 = num11; - int num12 = num4 ^ num3; - int num13 = num4 & num3; - num7 = num12 + (num13 + num13); - UiThemeUtils.DrawAltRowBackground(num11); - DrawQuest(current); - num = -192678582; - break; - } - case 1: - num = (enumerator.MoveNext() ? (-192678583) : (-192678581)); - break; - case 0: - goto end_IL_0128; - } - continue; - end_IL_0128: - break; - } - } - byte num14 = rank; - num3 = 1; - num4 = num14; - int num15 = num4 ^ num3; - int num16 = num4 & num3; - byte b = (byte)(num15 + (num16 + num16)); - rank = b; + UiThemeUtils.DrawAltRowBackground(num3++); + DrawQuest(item); } - return; - } } + byte b = (byte)(rank + 1); + rank = b; } } private void DrawAddToPriorityButtons(EAlliedSociety alliedSociety, List<QuestInfo> quests) { bool flag = (int)alliedSociety <= 5; - int num = (flag ? (-1988656495) : (-1988656490)); - List<QuestInfo> list = default(List<QuestInfo>); - int dailyLimit = default(int); - int remainingAllowances = default(int); - while (true) + int dailyLimit = (flag ? 12 : 3); + int remainingAllowances = GetRemainingAllowances(); + Quest quest; + List<QuestInfo> list = (from q in quests + where _questRegistry.TryGetQuest(q.QuestId, out quest) && !quest.Root.Disabled + where !_questController.ManualPriorityQuests.Any((Quest pq) => pq.Id.Equals(q.QuestId)) + orderby q.AlliedSocietyRank descending + select q).ToList(); + if (list.Count == 0) { - int num2 = num; - int num3 = -1988656493; - int num4 = num2; - int num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - DrawArrSocietyButtons(alliedSociety, list, dailyLimit, remainingAllowances); - return; - case 3: - num = ((!flag) ? (-1988656491) : (-1988656494)); - break; - case 0: - num = -1988656490; - break; - case 5: - num5 = 3; - goto IL_00b1; - case 4: - DrawDisabledAddButton(); - return; - case 2: - num5 = 12; - goto IL_00b1; - case 6: - { - DrawStandardAddButton(alliedSociety, list, remainingAllowances); - return; - } - IL_00b1: - dailyLimit = num5; - remainingAllowances = GetRemainingAllowances(); - list = (from q in quests.Where(delegate(QuestInfo q) - { - Quest quest; - int num6 = ((!_questRegistry.TryGetQuest(q.QuestId, out quest)) ? (-50999461) : (-50999462)); - while (true) - { - int num7 = num6; - int num8 = -50999461; - int num9 = num7; - int num10 = num9 + num8; - int num11 = num9 & num8; - switch (num10 - (num11 + num11)) - { - case 0: - return false; - case 1: - return !_206F_200E_200C_206B_206F_206B_202E_200E_200B_200C_200C_202E_206B_206B_200B_202E_200F_200E_200E_200E_206E_202D_206C_206B_202A_202C_200C_200B_202D_200B_206E_206B_200E_206D_206D_206C_200D_202E_200F_206F_202E(quest.Root); - case 2: - goto IL_0066; - } - continue; - IL_0066: - num6 = -50999462; - } - }) - where !_questController.ManualPriorityQuests.Any((Quest pq) => _003C_003Ec__DisplayClass21_0._206F_202C_200D_206C_202D_206C_200D_206F_202C_206F_206C_202B_200C_200E_200B_202B_206E_200F_206C_200D_206C_202A_202C_206A_202C_202E_200B_202C_202A_202C_206E_200E_200B_206E_202A_206C_206A_206D_202D_200F_202E(pq.Id, q.QuestId)) - orderby q.AlliedSocietyRank descending - select q).ToList(); - num = ((list.Count != 0) ? (-1988656496) : (-1988656489)); - break; - } + DrawDisabledAddButton(); + } + else if (flag) + { + DrawArrSocietyButtons(alliedSociety, list, dailyLimit, remainingAllowances); + } + else + { + DrawStandardAddButton(alliedSociety, list, remainingAllowances); } } private unsafe int GetRemainingAllowances() { QuestManager* ptr = QuestManager.Instance(); - int num = ((ptr != null) ? (-981576494) : (-981576495)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -981576496; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0049; - case 1: - return 12; - case 2: - return (int)ptr->GetBeastTribeAllowance(); - } - continue; - IL_0049: - num = -981576495; + return 12; } + return (int)ptr->GetBeastTribeAllowance(); } private static float IconTextButtonWidth(FontAwesomeIcon icon, string text) { - ImRaii.FontDisposable fontDisposable = _206A_206A_202A_202C_206D_206E_206B_202D_200E_200E_200C_206C_200C_202B_202C_202B_202E_202E_202A_206F_206B_206A_202A_200D_200D_202C_206E_200B_206A_202E_202B_206C_206E_200E_202C_206A_200E_202C_200C_206D_202E(_206E_200C_202B_206A_206A_202B_202D_206B_200D_200C_200F_200C_206F_200F_200F_200E_202C_206B_200F_206B_200F_206F_200C_202E_206C_200C_200F_206C_202E_202A_200E_200D_200D_202A_200C_200C_206F_206D_206A_206F_202E(), true); Vector2 vector; - try + using (ImRaii.PushFont(UiBuilder.IconFont)) { - vector = _200E_202C_200B_206B_206F_206B_202B_202D_202A_200D_202D_206A_202A_200E_206D_202C_206B_206E_202A_200F_206B_206F_202C_206C_200F_200F_206B_200B_206B_202A_200C_202B_200F_200B_206A_206F_200F_206B_202B_202D_202E((ImU8String)_200F_202D_202E_206D_200F_206E_202C_206F_206E_202E_206A_206E_202D_206F_202B_206C_206C_202E_200F_206A_206F_202B_206D_202D_206F_200C_202E_200E_200F_206B_202A_200D_202A_202C_206D_200F_200B_202A_206B_206B_202E(icon), false, -1f); + vector = ImGui.CalcTextSize(icon.ToIconString()); } - finally - { - int num = ((fontDisposable == null) ? 920978695 : 920978694); - while (true) - { - int num2 = num; - int num3 = 920978695; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 920978694; - break; - case 0: - goto end_IL_0044; - case 1: - _200F_206B_202C_202B_200E_206A_206A_206A_202C_202D_206A_202B_206A_202C_206D_206B_200D_206A_200E_206E_202E_200C_206A_206D_202B_200E_206A_202E_202E_202A_206A_200C_200E_200F_200B_200C_206E_202A_200C_206B_202E((IDisposable)fontDisposable); - num = 920978695; - break; - } - continue; - end_IL_0044: - break; - } - } - return _206C_200B_206E_206D_200F_200C_200B_202D_206B_206D_206B_202A_206A_206C_200E_202B_202B_200D_206C_206A_206F_202D_206F_206A_206C_206B_206A_200C_200C_206E_206F_202D_202D_206F_206F_206E_206B_200B_200F_206E_202E().FramePadding.X * 3f * 2f + vector.X + 6f + _200E_202C_200B_206B_206F_206B_202B_202D_202A_200D_202D_206A_202A_200E_206D_202C_206B_206E_202A_200F_206B_206F_202C_206C_200F_200F_206B_200B_206B_202A_200C_202B_200F_200B_206A_206F_200F_206B_202B_202D_202E((ImU8String)text, false, -1f).X; + return ImGui.GetStyle().FramePadding.X * 3f * 2f + vector.X + 6f + ImGui.CalcTextSize(text).X; } - [MethodImpl(MethodImplOptions.NoInlining)] private static void DrawDisabledAddButton() { - ImRaii.DisabledDisposable disabledDisposable = _200B_202B_202C_202E_200E_206C_202C_200C_200F_206D_200F_206B_206E_200C_202E_202A_202C_206F_202E_202B_206A_200C_202A_206D_206F_202C_200D_200B_206E_206D_202E_206D_200C_200C_200C_200B_206E_206C_200E_202E(true); - int num; - try + using (ImRaii.Disabled(disabled: true)) { - UiThemeUtils.IconTextButton(FontAwesomeIcon.Plus, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(979306502), IconTextButtonWidth(FontAwesomeIcon.Plus, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2145387776))); + UiThemeUtils.IconTextButton(FontAwesomeIcon.Plus, "Add to Priority", IconTextButtonWidth(FontAwesomeIcon.Plus, "Add to Priority")); } - finally + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) { - num = ((disabledDisposable == null) ? (-500733352) : (-500733351)); - while (true) - { - int num2 = num; - int num3 = -500733352; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -500733351; - break; - case 1: - _200F_206B_202C_202B_200E_206A_206A_206A_202C_202D_206A_202B_206A_202C_206D_206B_200D_206A_200E_206E_202E_200C_206A_206D_202B_200E_206A_202E_202E_202A_206A_200C_200E_200F_200B_200C_206E_202A_200C_206B_202E((IDisposable)disabledDisposable); - num = -500733352; - break; - case 0: - goto end_IL_0051; - } - continue; - end_IL_0051: - break; - } - } - num = ((!_200C_202E_202D_206A_200C_202A_200C_200C_206D_200B_206B_202A_206B_202C_202C_200B_206B_206F_200C_202B_206A_202C_206B_206E_206A_202D_200D_202D_202A_206C_202A_206E_206A_200B_200E_206A_200E_200B_206A_200E_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? 1860909156 : 1860909159); - while (true) - { - int num5 = num; - int num3 = 1860909157; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 1: - return; - case 2: - _202C_206A_206E_202D_200C_200E_202A_200F_202E_206C_200F_200C_202E_206C_200E_206A_206A_206A_202D_206D_206E_202C_200C_206A_200B_206A_202E_200C_206E_206F_202C_206E_206E_206E_200B_206C_200E_206B_200E_200E_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(859090157)); - num = 1860909156; - break; - case 0: - num = 1860909159; - break; - } + ImGui.SetTooltip("No quests available to add (may be disabled, already in priority, or not available)"); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawArrSocietyButtons(EAlliedSociety alliedSociety, List<QuestInfo> availableQuests, int dailyLimit, int remainingAllowances) { - int num = _206F_202A_206D_202C_206D_200D_202A_200F_206C_202B_206C_206A_200E_202B_200C_206B_200C_200C_202E_202D_206E_200D_200F_202A_200B_202D_206E_202A_202E_202B_200E_202D_202E_202E_202A_202C_206C_200E_206E_200F_202E(_206F_202A_206D_202C_206D_200D_202A_200F_206C_202B_206C_206A_200E_202B_200C_206B_200C_200C_202E_202D_206E_200D_200F_202A_200B_202D_206E_202A_202E_202B_200E_202D_202E_202E_202A_202C_206C_200E_206E_200F_202E(dailyLimit, remainingAllowances), availableQuests.Count); - ImRaii.DisabledDisposable disabledDisposable = _200B_202B_202C_202E_200E_206C_202C_200C_200F_206D_200F_206B_206E_200C_202E_202A_202C_206F_202E_202B_206A_200C_202A_206D_206F_202C_200D_200B_206E_206D_202E_206D_200C_200C_200C_200B_206E_206C_200E_202E(remainingAllowances == 0); - int num5; - try + int num = Math.Min(Math.Min(dailyLimit, remainingAllowances), availableQuests.Count); + using (ImRaii.Disabled(remainingAllowances == 0)) { - int num2 = num; - int num3 = 1; - int num4 = num2; - string text = default(string); - switch (~(~num4 + num3)) + string text = num switch { - default: - num5 = 2039988543; - goto IL_004d; - case 2: - text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-587700351); - num5 = 2039988542; - goto IL_004d; - case 0: - goto IL_013b; - case 1: - goto IL_01d2; - IL_004d: - while (true) - { - int num6 = num5; - num3 = 2039988537; - num4 = num6; - int num7 = num4 + num3; - int num8 = num4 & num3; - switch (num7 - (num8 + num8)) - { - case 8: - goto end_IL_004d; - case 9: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(24, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1218084889)); - defaultInterpolatedStringHandler2.AppendFormatted(num); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1921480924)); - text = defaultInterpolatedStringHandler2.ToStringAndClear(); - num5 = 2039988542; - break; - } - case 2: - AddQuestsToPriority(alliedSociety, availableQuests.Take(num).ToList()); - num5 = 2039988536; - break; - case 5: - goto IL_011b; - case 3: - goto IL_013b; - case 7: - goto IL_0153; - case 10: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(14, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1727957168)); - defaultInterpolatedStringHandler.AppendFormatted(num); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(505623713)); - text = defaultInterpolatedStringHandler.ToStringAndClear(); - num5 = 2039988542; - break; - } - case 4: - goto IL_01d2; - case 6: - num5 = 2039988540; - break; - case 0: - num5 = 2039988543; - break; - case 1: - goto end_IL_0030; - } - continue; - IL_0153: - string text2 = text; - num5 = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Plus, text2, IconTextButtonWidth(FontAwesomeIcon.Plus, text2))) ? 2039988536 : 2039988539); - continue; - IL_011b: - num5 = ((num != remainingAllowances) ? 2039988531 : 2039988528); - continue; - end_IL_004d: - break; - } - goto case 2; - IL_01d2: - text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-608472171); - num5 = 2039988542; - goto IL_004d; - IL_013b: - text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1176371460); - num5 = 2039988542; - goto IL_004d; - end_IL_0030: - break; + 1 => "Add 1 Quest (Optimal)", + 2 => "Add 2 Quests (Optimal)", + 3 => "Add 3 Quests (Optimal)", + _ => (num != remainingAllowances) ? $"Add {num} (Optimal)" : $"Add {num} (Today's Remaining)", + }; + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Plus, text, IconTextButtonWidth(FontAwesomeIcon.Plus, text))) + { + AddQuestsToPriority(alliedSociety, availableQuests.Take(num).ToList()); } } - finally + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) { - num5 = ((disabledDisposable == null) ? (-1217205887) : (-1217205886)); - while (true) - { - int num9 = num5; - int num3 = -1217205888; - int num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 0: - num5 = -1217205886; - break; - case 1: - goto end_IL_0225; - case 2: - _200F_206B_202C_202B_200E_206A_206A_206A_202C_202D_206A_202B_206A_202C_206D_206B_200D_206A_200E_206E_202E_200C_206A_206D_202B_200E_206A_202E_202E_202A_206A_200C_200E_200F_200B_200C_206E_202A_200C_206B_202E((IDisposable)disabledDisposable); - num5 = -1217205887; - break; - } - continue; - end_IL_0225: - break; - } + DrawRecommendedButtonTooltip(num, remainingAllowances, dailyLimit, alliedSociety, availableQuests.Count); } - num5 = ((!_200C_202E_202D_206A_200C_202A_200C_200C_206D_200B_206B_202A_206B_202C_202C_200B_206B_206F_200C_202B_206A_202C_206B_206E_206A_202D_200D_202D_202A_206C_202A_206E_206A_200B_200E_206A_200E_200B_206A_200E_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? (-217773596) : (-217773600)); - while (true) + ImGui.SameLine(); + string text2 = $"Add All {availableQuests.Count} Available"; + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.ListOl, text2, IconTextButtonWidth(FontAwesomeIcon.ListOl, text2))) { - int num12 = num5; - int num3 = -217773598; - int num4 = num12; - int num13 = num4 + num3; - int num14 = num4 & num3; - switch (num13 - (num14 + num14)) - { - case 0: - AddQuestsToPriority(alliedSociety, availableQuests); - num5 = -217773593; - break; - case 4: - return; - case 1: - DrawAddAllButtonTooltip(availableQuests.Count, remainingAllowances, dailyLimit, alliedSociety); - num5 = -217773594; - break; - case 6: - { - _202C_206A_200C_200B_206C_206C_200B_200F_206E_206D_206C_206F_206C_202B_202D_206A_200E_206D_206E_202D_202A_206B_202D_206E_206F_202E_200F_202D_206F_206F_206F_206A_200E_206B_206A_202D_200E_202E_206A_202E_202E(); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(18, 1); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-563068051)); - defaultInterpolatedStringHandler3.AppendFormatted(availableQuests.Count); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1982881491)); - string text3 = defaultInterpolatedStringHandler3.ToStringAndClear(); - num5 = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.ListOl, text3, IconTextButtonWidth(FontAwesomeIcon.ListOl, text3))) ? (-217773593) : (-217773598)); - break; - } - case 2: - DrawRecommendedButtonTooltip(num, remainingAllowances, dailyLimit, alliedSociety, availableQuests.Count); - num5 = -217773596; - break; - case 3: - num5 = -217773600; - break; - case 5: - num5 = ((!_206A_200F_202B_202B_200E_200C_206B_200D_206D_206E_202E_202C_206A_200D_206A_200E_200E_206C_202B_206F_206F_206F_202C_206B_206F_202D_206F_202B_200D_200E_202D_206D_206E_200C_202D_202D_200D_202E_202D_206A_202E()) ? (-217773594) : (-217773597)); - break; - } + AddQuestsToPriority(alliedSociety, availableQuests); + } + if (ImGui.IsItemHovered()) + { + DrawAddAllButtonTooltip(availableQuests.Count, remainingAllowances, dailyLimit, alliedSociety); } } - [MethodImpl(MethodImplOptions.NoInlining)] private static void DrawRecommendedButtonTooltip(int questsToAddCount, int remainingAllowances, int dailyLimit, EAlliedSociety alliedSociety, int availableCount) { - _200C_200E_200B_200C_202A_200B_202E_200F_202A_206D_202A_202C_200C_200B_206C_206F_206B_202C_206B_206C_200E_206E_200E_206A_200B_202E_202A_206D_206E_202A_200B_200E_202D_200D_202E_200B_202B_206C_202C_206B_202E(); + ImGui.BeginTooltip(); if (remainingAllowances == 0) { - ImRaii.ColorDisposable colorDisposable = _202B_206D_202D_206B_206B_202C_206A_206D_202E_206E_200C_202C_202B_206E_200F_202B_200E_206D_206F_206F_202C_200C_206C_202B_206C_206F_200E_202D_202E_202D_206A_206C_206E_200F_200B_200B_202D_206D_202D_200D_202E(ImGuiCol.Text, UiThemeUtils.StatusLocked, true); - try + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.StatusLocked)) { - ImU8String imU8String = new ImU8String(0, 1); - imU8String.AppendFormatted(_202B_206F_200E_206C_202A_202B_200D_200C_200B_202D_206B_200F_202B_206B_206E_200B_202B_206E_206D_206D_202D_206A_200C_200F_200C_200B_202A_206E_202B_202A_200C_206D_202C_202A_200E_206A_202B_206B_200E_202D_202E(SeIconChar.Cross)); - _202D_206B_206F_202E_202E_200D_202E_206E_200B_200E_206F_200C_206F_202D_206E_206D_206A_202D_206E_206B_206D_202B_202E_200B_206B_202A_202A_200F_200B_202B_202A_200B_206D_206A_206B_206C_200E_200D_200E_206F_202E(imU8String); - _202C_206A_200C_200B_206C_206C_200B_200F_206E_206D_206C_206F_206C_202B_202D_206A_200E_206D_206E_202D_202A_206B_202D_206E_206F_202E_200F_202D_206F_206F_206F_206A_200E_206B_206A_202D_200E_202E_206A_202E_202E(); - _202B_206E_202E_200C_206C_202B_206A_206E_206F_202D_200E_202E_206B_200B_206B_200F_206B_206B_202C_200E_206B_206D_206B_206F_206F_206E_200D_202B_206C_206A_202D_206B_206D_200D_202C_200D_202B_200B_206D_200D_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1336883143)); + ImU8String text = new ImU8String(0, 1); + text.AppendFormatted(SeIconChar.Cross.ToIconString()); + ImGui.Text(text); + ImGui.SameLine(); + ImGui.TextUnformatted("No daily allowances remaining"); } - finally - { - int num = ((colorDisposable == null) ? (-348792307) : (-348792306)); - while (true) - { - int num2 = num; - int num3 = -348792305; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -348792306; - break; - case 2: - goto end_IL_0073; - case 1: - _200F_206B_202C_202B_200E_206A_206A_206A_202C_202D_206A_202B_206A_202C_206D_206B_200D_206A_200E_206E_202E_200C_206A_206D_202B_200E_206A_202E_202E_202A_206A_200C_200E_200F_200B_200C_206E_202A_200C_206B_202E((IDisposable)colorDisposable); - num = -348792307; - break; - } - continue; - end_IL_0073: - break; - } - } - ImU8String imU8String2 = new ImU8String(44, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1943636564)); - imU8String2.AppendFormatted(12); - imU8String2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(12893769)); - _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref UiThemeUtils.MutedTextColor, imU8String2); + ImU8String text2 = new ImU8String(44, 1); + text2.AppendLiteral("You've used all "); + text2.AppendFormatted(12); + text2.AppendLiteral(" shared allowances for today"); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, text2); } else if (questsToAddCount == remainingAllowances && questsToAddCount < availableCount) { - ImRaii.ColorDisposable colorDisposable = _202B_206D_202D_206B_206B_202C_206A_206D_202E_206E_200C_202C_202B_206E_200F_202B_200E_206D_206F_206F_202C_200C_206C_202B_206C_206F_200E_202D_202E_202D_206A_206C_206E_200F_200B_200B_202D_206D_202D_200D_202E(ImGuiCol.Text, UiThemeUtils.StatusComplete, true); - try + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.StatusComplete)) { - ImU8String imU8String3 = new ImU8String(0, 1); - imU8String3.AppendFormatted(_202B_206F_200E_206C_202A_202B_200D_200C_200B_202D_206B_200F_202B_206B_206E_200B_202B_206E_206D_206D_202D_206A_200C_200F_200C_200B_202A_206E_202B_202A_200C_206D_202C_202A_200E_206A_202B_206B_200E_202D_202E(SeIconChar.QuestSync)); - _202D_206B_206F_202E_202E_200D_202E_206E_200B_200E_206F_200C_206F_202D_206E_206D_206A_202D_206E_206B_206D_202B_202E_200B_206B_202A_202A_200F_200B_202B_202A_200B_206D_206A_206B_206C_200E_200D_200E_206F_202E(imU8String3); - _202C_206A_200C_200B_206C_206C_200B_200F_206E_206D_206C_206F_206C_202B_202D_206A_200E_206D_206E_202D_202A_206B_202D_206E_206F_202E_200F_202D_206F_206F_206F_206A_200E_206B_206A_202D_200E_202E_206A_202E_202E(); - ImU8String imU8String4 = new ImU8String(5, 2); - imU8String4.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1493671905)); - imU8String4.AppendFormatted(questsToAddCount); - imU8String4.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1051702537)); - imU8String4.AppendFormatted((questsToAddCount == 1) ? global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-607980198) : global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1391970161)); - _202B_206E_202E_200C_206C_202B_206A_206E_206F_202D_200E_202E_206B_200B_206B_200F_206B_206B_202C_200E_206B_206D_206B_206F_206F_206E_200D_202B_206C_206A_202D_206B_206D_200D_202C_200D_202B_200B_206D_200D_202E(imU8String4); + ImU8String text3 = new ImU8String(0, 1); + text3.AppendFormatted(SeIconChar.QuestSync.ToIconString()); + ImGui.Text(text3); + ImGui.SameLine(); + ImU8String text4 = new ImU8String(5, 2); + text4.AppendLiteral("Add "); + text4.AppendFormatted(questsToAddCount); + text4.AppendLiteral(" "); + text4.AppendFormatted((questsToAddCount == 1) ? "quest" : "quests"); + ImGui.TextUnformatted(text4); } - finally - { - int num = ((colorDisposable == null) ? (-1931404698) : (-1931404699)); - while (true) - { - int num7 = num; - int num3 = -1931404697; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 1: - goto end_IL_01c9; - case 2: - _200F_206B_202C_202B_200E_206A_206A_206A_202C_202D_206A_202B_206A_202C_206D_206B_200D_206A_200E_206E_202E_200C_206A_206D_202B_200E_206A_202E_202E_202A_206A_200C_200E_200F_200B_200C_206E_202A_200C_206B_202E((IDisposable)colorDisposable); - num = -1931404698; - break; - case 0: - num = -1931404699; - break; - } - continue; - end_IL_01c9: - break; - } - } - ImU8String imU8String5 = new ImU8String(44, 2); - imU8String5.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1690517102)); - imU8String5.AppendFormatted(remainingAllowances); - imU8String5.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1511293645)); - imU8String5.AppendFormatted((remainingAllowances == 1) ? global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(308044519) : global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1303968590)); - imU8String5.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(893587226)); - _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref UiThemeUtils.MutedTextColor, imU8String5); - _202E_200B_200E_200F_202B_206B_200B_202C_202A_202B_200C_206C_200E_206D_202D_202A_200C_206B_206A_200B_206C_202A_200B_206C_200F_206E_206F_206F_202E_200B_206E_206A_200C_206D_206C_200C_202C_200F_200D_202C_202E(); - _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2050965222)); + ImU8String text5 = new ImU8String(44, 2); + text5.AppendLiteral("You can complete "); + text5.AppendFormatted(remainingAllowances); + text5.AppendLiteral(" more allied society "); + text5.AppendFormatted((remainingAllowances == 1) ? "quest" : "quests"); + text5.AppendLiteral(" today"); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, text5); + ImGui.Spacing(); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, "Prioritises highest rank quests first"); } else if (questsToAddCount == dailyLimit) { - ImRaii.ColorDisposable colorDisposable = _202B_206D_202D_206B_206B_202C_206A_206D_202E_206E_200C_202C_202B_206E_200F_202B_200E_206D_206F_206F_202C_200C_206C_202B_206C_206F_200E_202D_202E_202D_206A_206C_206E_200F_200B_200B_202D_206D_202D_200D_202E(ImGuiCol.Text, UiThemeUtils.StatusComplete, true); - try + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.StatusComplete)) { - ImU8String imU8String6 = new ImU8String(0, 1); - imU8String6.AppendFormatted(_202B_206F_200E_206C_202A_202B_200D_200C_200B_202D_206B_200F_202B_206B_206E_200B_202B_206E_206D_206D_202D_206A_200C_200F_200C_200B_202A_206E_202B_202A_200C_206D_202C_202A_200E_206A_202B_206B_200E_202D_202E(SeIconChar.QuestSync)); - _202D_206B_206F_202E_202E_200D_202E_206E_200B_200E_206F_200C_206F_202D_206E_206D_206A_202D_206E_206B_206D_202B_202E_200B_206B_202A_202A_200F_200B_202B_202A_200B_206D_206A_206B_206C_200E_200D_200E_206F_202E(imU8String6); - _202C_206A_200C_200B_206C_206C_200B_200F_206E_206D_206C_206F_206C_202B_202D_206A_200E_206D_206E_202D_202A_206B_202D_206E_206F_202E_200F_202D_206F_206F_206F_206A_200E_206B_206A_202D_200E_202E_206A_202E_202E(); - ImU8String imU8String7 = new ImU8String(11, 1); - imU8String7.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(797689590)); - imU8String7.AppendFormatted(dailyLimit); - imU8String7.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(151691242)); - _202B_206E_202E_200C_206C_202B_206A_206E_206F_202D_200E_202E_206B_200B_206B_200F_206B_206B_202C_200E_206B_206D_206B_206F_206F_206E_200D_202B_206C_206A_202D_206B_206D_200D_202C_200D_202B_200B_206D_200D_202E(imU8String7); + ImU8String text6 = new ImU8String(0, 1); + text6.AppendFormatted(SeIconChar.QuestSync.ToIconString()); + ImGui.Text(text6); + ImGui.SameLine(); + ImU8String text7 = new ImU8String(11, 1); + text7.AppendLiteral("Add "); + text7.AppendFormatted(dailyLimit); + text7.AppendLiteral(" quests"); + ImGui.TextUnformatted(text7); } - finally - { - int num = ((colorDisposable == null) ? 1466168460 : 1466168463); - while (true) - { - int num10 = num; - int num3 = 1466168461; - int num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1466168463; - break; - case 1: - goto end_IL_0349; - case 2: - _200F_206B_202C_202B_200E_206A_206A_206A_202C_202D_206A_202B_206A_202C_206D_206B_200D_206A_200E_206E_202E_200C_206A_206D_202B_200E_206A_202E_202E_202A_206A_200C_200E_200F_200B_200C_206E_202A_200C_206B_202E((IDisposable)colorDisposable); - num = 1466168460; - break; - } - continue; - end_IL_0349: - break; - } - } - ImU8String imU8String8 = new ImU8String(51, 2); - imU8String8.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(526137809)); - imU8String8.AppendFormatted(dailyLimit); - imU8String8.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-48506798)); - imU8String8.AppendFormatted(remainingAllowances); - imU8String8.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1668324224)); - _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref UiThemeUtils.MutedTextColor, imU8String8); - _202E_200B_200E_200F_202B_206B_200B_202C_202A_202B_200C_206C_200E_206D_202D_202A_200C_206B_206A_200B_206C_202A_200B_206C_200F_206E_206F_206F_202E_200B_206E_206A_200C_206D_206C_200C_202C_200F_200D_202C_202E(); - _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1710717342)); + ImU8String text8 = new ImU8String(51, 2); + text8.AppendLiteral("This will use "); + text8.AppendFormatted(dailyLimit); + text8.AppendLiteral(" of your "); + text8.AppendFormatted(remainingAllowances); + text8.AppendLiteral(" remaining shared allowances"); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, text8); + ImGui.Spacing(); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, "Prioritises highest rank quests first"); } else if (questsToAddCount == availableCount) { - ImRaii.ColorDisposable colorDisposable = _202B_206D_202D_206B_206B_202C_206A_206D_202E_206E_200C_202C_202B_206E_200F_202B_200E_206D_206F_206F_202C_200C_206C_202B_206C_206F_200E_202D_202E_202D_206A_206C_206E_200F_200B_200B_202D_206D_202D_200D_202E(ImGuiCol.Text, UiThemeUtils.StatusComplete, true); - try + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.StatusComplete)) { - ImU8String imU8String9 = new ImU8String(0, 1); - imU8String9.AppendFormatted(_202B_206F_200E_206C_202A_202B_200D_200C_200B_202D_206B_200F_202B_206B_206E_200B_202B_206E_206D_206D_202D_206A_200C_200F_200C_200B_202A_206E_202B_202A_200C_206D_202C_202A_200E_206A_202B_206B_200E_202D_202E(SeIconChar.QuestSync)); - _202D_206B_206F_202E_202E_200D_202E_206E_200B_200E_206F_200C_206F_202D_206E_206D_206A_202D_206E_206B_206D_202B_202E_200B_206B_202A_202A_200F_200B_202B_202A_200B_206D_206A_206B_206C_200E_200D_200E_206F_202E(imU8String9); - _202C_206A_200C_200B_206C_206C_200B_200F_206E_206D_206C_206F_206C_202B_202D_206A_200E_206D_206E_202D_202A_206B_202D_206E_206F_202E_200F_202D_206F_206F_206F_206A_200E_206B_206A_202D_200E_202E_206A_202E_202E(); - ImU8String imU8String10 = new ImU8String(20, 3); - imU8String10.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1748878796)); - imU8String10.AppendFormatted(questsToAddCount); - imU8String10.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1734073964)); - imU8String10.AppendFormatted(alliedSociety); - imU8String10.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-818915859)); - imU8String10.AppendFormatted((questsToAddCount == 1) ? global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(576325633) : global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(233880951)); - _202B_206E_202E_200C_206C_202B_206A_206E_206F_202D_200E_202E_206B_200B_206B_200F_206B_206B_202C_200E_206B_206D_206B_206F_206F_206E_200D_202B_206C_206A_202D_206B_206D_200D_202C_200D_202B_200B_206D_200D_202E(imU8String10); + ImU8String text9 = new ImU8String(0, 1); + text9.AppendFormatted(SeIconChar.QuestSync.ToIconString()); + ImGui.Text(text9); + ImGui.SameLine(); + ImU8String text10 = new ImU8String(20, 3); + text10.AppendLiteral("Add all "); + text10.AppendFormatted(questsToAddCount); + text10.AppendLiteral(" available "); + text10.AppendFormatted(alliedSociety); + text10.AppendLiteral(" "); + text10.AppendFormatted((questsToAddCount == 1) ? "quest" : "quests"); + ImGui.TextUnformatted(text10); } - finally - { - int num = ((colorDisposable == null) ? (-1997523121) : (-1997523124)); - while (true) - { - int num11 = num; - int num3 = -1997523122; - int num4 = num11; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1997523124; - break; - case 1: - goto end_IL_04e9; - case 2: - _200F_206B_202C_202B_200E_206A_206A_206A_202C_202D_206A_202B_206A_202C_206D_206B_200D_206A_200E_206E_202E_200C_206A_206D_202B_200E_206A_202E_202E_202A_206A_200C_200E_200F_200B_200C_206E_202A_200C_206B_202E((IDisposable)colorDisposable); - num = -1997523121; - break; - } - continue; - end_IL_04e9: - break; - } - } - ImU8String imU8String11 = new ImU8String(37, 2); - imU8String11.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1620683229)); - imU8String11.AppendFormatted(questsToAddCount); - imU8String11.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(891743000)); - imU8String11.AppendFormatted(remainingAllowances); - imU8String11.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2074684074)); - _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref UiThemeUtils.MutedTextColor, imU8String11); - _202E_200B_200E_200F_202B_206B_200B_202C_202A_202B_200C_206C_200E_206D_202D_202A_200C_206B_206A_200B_206C_202A_200B_206C_200F_206E_206F_206F_202E_200B_206E_206A_200C_206D_206C_200C_202C_200F_200D_202C_202E(); - _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1710717342)); + ImU8String text11 = new ImU8String(37, 2); + text11.AppendLiteral("Uses "); + text11.AppendFormatted(questsToAddCount); + text11.AppendLiteral(" of "); + text11.AppendFormatted(remainingAllowances); + text11.AppendLiteral(" shared allowances remaining"); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, text11); + ImGui.Spacing(); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, "Prioritises highest rank quests first"); } else { - ImRaii.ColorDisposable colorDisposable = _202B_206D_202D_206B_206B_202C_206A_206D_202E_206E_200C_202C_202B_206E_200F_202B_200E_206D_206F_206F_202C_200C_206C_202B_206C_206F_200E_202D_202E_202D_206A_206C_206E_200F_200B_200B_202D_206D_202D_200D_202E(ImGuiCol.Text, UiThemeUtils.StatusActive, true); - try + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.StatusActive)) { - ImU8String imU8String12 = new ImU8String(0, 1); - imU8String12.AppendFormatted(_202B_206F_200E_206C_202A_202B_200D_200C_200B_202D_206B_200F_202B_206B_206E_200B_202B_206E_206D_206D_202D_206A_200C_200F_200C_200B_202A_206E_202B_202A_200C_206D_202C_202A_200E_206A_202B_206B_200E_202D_202E(SeIconChar.BoxedLetterQ)); - _202D_206B_206F_202E_202E_200D_202E_206E_200B_200E_206F_200C_206F_202D_206E_206D_206A_202D_206E_206B_206D_202B_202E_200B_206B_202A_202A_200F_200B_202B_202A_200B_206D_206A_206B_206C_200E_200D_200E_206F_202E(imU8String12); - _202C_206A_200C_200B_206C_206C_200B_200F_206E_206D_206C_206F_206C_202B_202D_206A_200E_206D_206E_202D_202A_206B_202D_206E_206F_202E_200F_202D_206F_206F_206F_206A_200E_206B_206A_202D_200E_202E_206A_202E_202E(); - ImU8String imU8String13 = new ImU8String(6, 3); - imU8String13.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(797689590)); - imU8String13.AppendFormatted(questsToAddCount); - imU8String13.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2018550958)); - imU8String13.AppendFormatted(alliedSociety); - imU8String13.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2018550958)); - imU8String13.AppendFormatted((questsToAddCount == 1) ? global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-607980198) : global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-14946342)); - _202B_206E_202E_200C_206C_202B_206A_206E_206F_202D_200E_202E_206B_200B_206B_200F_206B_206B_202C_200E_206B_206D_206B_206F_206F_206E_200D_202B_206C_206A_202D_206B_206D_200D_202C_200D_202B_200B_206D_200D_202E(imU8String13); + ImU8String text12 = new ImU8String(0, 1); + text12.AppendFormatted(SeIconChar.BoxedLetterQ.ToIconString()); + ImGui.Text(text12); + ImGui.SameLine(); + ImU8String text13 = new ImU8String(6, 3); + text13.AppendLiteral("Add "); + text13.AppendFormatted(questsToAddCount); + text13.AppendLiteral(" "); + text13.AppendFormatted(alliedSociety); + text13.AppendLiteral(" "); + text13.AppendFormatted((questsToAddCount == 1) ? "quest" : "quests"); + ImGui.TextUnformatted(text13); } - finally - { - int num = ((colorDisposable == null) ? (-1147129248) : (-1147129245)); - while (true) - { - int num12 = num; - int num3 = -1147129246; - int num4 = num12; - int num13 = num4 + num3; - int num14 = num4 & num3; - switch (num13 - (num14 + num14)) - { - case 0: - num = -1147129245; - break; - case 1: - _200F_206B_202C_202B_200E_206A_206A_206A_202C_202D_206A_202B_206A_202C_206D_206B_200D_206A_200E_206E_202E_200C_206A_206D_202B_200E_206A_202E_202E_202A_206A_200C_200E_200F_200B_200C_206E_202A_200C_206B_202E((IDisposable)colorDisposable); - num = -1147129248; - break; - case 2: - goto end_IL_0680; - } - continue; - end_IL_0680: - break; - } - } - ImU8String imU8String14 = new ImU8String(55, 2); - imU8String14.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1784736301)); - imU8String14.AppendFormatted(availableCount); - imU8String14.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1627889639)); - imU8String14.AppendFormatted(remainingAllowances); - imU8String14.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref UiThemeUtils.MutedTextColor, imU8String14); - _202E_200B_200E_200F_202B_206B_200B_202C_202A_202B_200C_206C_200E_206D_202D_202A_200C_206B_206A_200B_206C_202A_200B_206C_200F_206E_206F_206F_202E_200B_206E_206A_200C_206D_206C_200C_202C_200F_200D_202C_202E(); - _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1710717342)); + ImU8String text14 = new ImU8String(55, 2); + text14.AppendLiteral("Limited by available quests ("); + text14.AppendFormatted(availableCount); + text14.AppendLiteral(") and shared allowances ("); + text14.AppendFormatted(remainingAllowances); + text14.AppendLiteral(")"); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, text14); + ImGui.Spacing(); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, "Prioritises highest rank quests first"); } - _206D_202A_206D_206A_200F_206C_200C_200E_202E_200B_200D_206F_200C_202B_202D_206B_206C_200B_200B_202B_206A_206A_200D_206A_206A_200F_200F_200E_202E_206E_200D_202D_202D_202C_206A_202C_206D_202B_202E_200C_202E(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private static void DrawAddAllButtonTooltip(int availableCount, int remainingAllowances, int dailyLimit, EAlliedSociety alliedSociety) - { - _200C_200E_200B_200C_202A_200B_202E_200F_202A_206D_202A_202C_200C_200B_206C_206F_206B_202C_206B_206C_200E_206E_200E_206A_200B_202E_202A_206D_206E_202A_200B_200E_202D_200D_202E_200B_202B_206C_202C_206B_202E(); - if (availableCount > remainingAllowances) - { - ImRaii.ColorDisposable colorDisposable = _202B_206D_202D_206B_206B_202C_206A_206D_202E_206E_200C_202C_202B_206E_200F_202B_200E_206D_206F_206F_202C_200C_206C_202B_206C_206F_200E_202D_202E_202D_206A_206C_206E_200F_200B_200B_202D_206D_202D_200D_202E(ImGuiCol.Text, UiThemeUtils.StatusActive, true); - try - { - ImU8String imU8String = new ImU8String(0, 1); - imU8String.AppendFormatted(_202B_206F_200E_206C_202A_202B_200D_200C_200B_202D_206B_200F_202B_206B_206E_200B_202B_206E_206D_206D_202D_206A_200C_200F_200C_200B_202A_206E_202B_202A_200C_206D_202C_202A_200E_206A_202B_206B_200E_202D_202E(SeIconChar.Cross)); - _202D_206B_206F_202E_202E_200D_202E_206E_200B_200E_206F_200C_206F_202D_206E_206D_206A_202D_206E_206B_206D_202B_202E_200B_206B_202A_202A_200F_200B_202B_202A_200B_206D_206A_206B_206C_200E_200D_200E_206F_202E(imU8String); - _202C_206A_200C_200B_206C_206C_200B_200F_206E_206D_206C_206F_206C_202B_202D_206A_200E_206D_206E_202D_202A_206B_202D_206E_206F_202E_200F_202D_206F_206F_206F_206A_200E_206B_206A_202D_200E_202E_206A_202E_202E(); - _202B_206E_202E_200C_206C_202B_206A_206E_206F_202D_200E_202E_206B_200B_206B_200F_206B_206B_202C_200E_206B_206D_206B_206F_206F_206E_200D_202B_206C_206A_202D_206B_206D_200D_202C_200D_202B_200B_206D_200D_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(288951372)); - } - finally - { - int num = ((colorDisposable == null) ? 1632104344 : 1632104347); - while (true) - { - int num2 = num; - int num3 = 1632104346; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto end_IL_0074; - case 1: - _200F_206B_202C_202B_200E_206A_206A_206A_202C_202D_206A_202B_206A_202C_206D_206B_200D_206A_200E_206E_202E_200C_206A_206D_202B_200E_206A_202E_202E_202A_206A_200C_200E_200F_200B_200C_206E_202A_200C_206B_202E((IDisposable)colorDisposable); - num = 1632104344; - break; - case 0: - num = 1632104347; - break; - } - continue; - end_IL_0074: - break; - } - } - _202E_200B_200E_200F_202B_206B_200B_202C_202A_202B_200C_206C_200E_206D_202D_202A_200C_206B_206A_200B_206C_202A_200B_206C_200F_206E_206F_206F_202E_200B_206E_206A_200C_206D_206C_200C_202C_200F_200D_202C_202E(); - ImU8String imU8String2 = new ImU8String(54, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1456800903)); - imU8String2.AppendFormatted(availableCount); - imU8String2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1135970980)); - _202B_206E_202E_200C_206C_202B_206A_206E_206F_202D_200E_202E_206B_200B_206B_200F_206B_206B_202C_200E_206B_206D_206B_206F_206F_206E_200D_202B_206C_206A_202D_206B_206D_200D_202C_200D_202B_200B_206D_200D_202E(imU8String2); - ImU8String imU8String3 = new ImU8String(37, 2); - imU8String3.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1655607110)); - imU8String3.AppendFormatted(remainingAllowances); - imU8String3.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(642895778)); - imU8String3.AppendFormatted((remainingAllowances == 1) ? global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-686634527) : global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1978597971)); - imU8String3.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-219296949)); - _202B_206E_202E_200C_206C_202B_206A_206E_206F_202D_200E_202E_206B_200B_206B_200F_206B_206B_202C_200E_206B_206D_206B_206F_206F_206E_200D_202B_206C_206A_202D_206B_206D_200D_202C_200D_202B_200B_206D_200D_202E(imU8String3); - _202E_200B_200E_200F_202B_206B_200B_202C_202A_202B_200C_206C_200E_206D_202D_202A_200C_206B_206A_200B_206C_202A_200B_206C_200F_206E_206F_206F_202E_200B_206E_206A_200C_206D_206C_200C_202C_200F_200D_202C_202E(); - _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1828087679)); - } - else if (availableCount > dailyLimit) - { - ImRaii.ColorDisposable colorDisposable = _202B_206D_202D_206B_206B_202C_206A_206D_202E_206E_200C_202C_202B_206E_200F_202B_200E_206D_206F_206F_202C_200C_206C_202B_206C_206F_200E_202D_202E_202D_206A_206C_206E_200F_200B_200B_202D_206D_202D_200D_202E(ImGuiCol.Text, UiThemeUtils.StatusActive, true); - try - { - ImU8String imU8String4 = new ImU8String(0, 1); - imU8String4.AppendFormatted(_202B_206F_200E_206C_202A_202B_200D_200C_200B_202D_206B_200F_202B_206B_206E_200B_202B_206E_206D_206D_202D_206A_200C_200F_200C_200B_202A_206E_202B_202A_200C_206D_202C_202A_200E_206A_202B_206B_200E_202D_202E(SeIconChar.Cross)); - _202D_206B_206F_202E_202E_200D_202E_206E_200B_200E_206F_200C_206F_202D_206E_206D_206A_202D_206E_206B_206D_202B_202E_200B_206B_202A_202A_200F_200B_202B_202A_200B_206D_206A_206B_206C_200E_200D_200E_206F_202E(imU8String4); - _202C_206A_200C_200B_206C_206C_200B_200F_206E_206D_206C_206F_206C_202B_202D_206A_200E_206D_206E_202D_202A_206B_202D_206E_206F_202E_200F_202D_206F_206F_206F_206A_200E_206B_206A_202D_200E_202E_206A_202E_202E(); - _202B_206E_202E_200C_206C_202B_206A_206E_206F_202D_200E_202E_206B_200B_206B_200F_206B_206B_202C_200E_206B_206D_206B_206F_206F_206E_200D_202B_206C_206A_202D_206B_206D_200D_202C_200D_202B_200B_206D_200D_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(662565610)); - } - finally - { - int num = ((colorDisposable == null) ? 699836000 : 699836001); - while (true) - { - int num7 = num; - int num3 = 699836000; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - goto end_IL_0206; - case 1: - _200F_206B_202C_202B_200E_206A_206A_206A_202C_202D_206A_202B_206A_202C_206D_206B_200D_206A_200E_206E_202E_200C_206A_206D_202B_200E_206A_202E_202E_202A_206A_200C_200E_200F_200B_200C_206E_202A_200C_206B_202E((IDisposable)colorDisposable); - num = 699836000; - break; - case 2: - num = 699836001; - break; - } - continue; - end_IL_0206: - break; - } - } - _202E_200B_200E_200F_202B_206B_200B_202C_202A_202B_200C_206C_200E_206D_202D_202A_200C_206B_206A_200B_206C_202A_200B_206C_200F_206E_206F_206F_202E_200B_206E_206A_200C_206D_206C_200C_202C_200F_200D_202C_202E(); - ImU8String imU8String5 = new ImU8String(32, 1); - imU8String5.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1456800903)); - imU8String5.AppendFormatted(availableCount); - imU8String5.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2006347210)); - _202B_206E_202E_200C_206C_202B_206A_206E_206F_202D_200E_202E_206B_200B_206B_200F_206B_206B_202C_200E_206B_206D_206B_206F_206F_206E_200D_202B_206C_206A_202D_206B_206D_200D_202C_200D_202B_200B_206D_200D_202E(imU8String5); - ImU8String imU8String6 = new ImU8String(48, 1); - imU8String6.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1754274204)); - imU8String6.AppendFormatted(3); - imU8String6.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1846668807)); - _202B_206E_202E_200C_206C_202B_206A_206E_206F_202D_200E_202E_206B_200B_206B_200F_206B_206B_202C_200E_206B_206D_206B_206F_206F_206E_200D_202B_206C_206A_202D_206B_206D_200D_202C_200D_202B_200B_206D_200D_202E(imU8String6); - _202E_200B_200E_200F_202B_206B_200B_202C_202A_202B_200C_206C_200E_206D_202D_202A_200C_206B_206A_200B_206C_202A_200B_206C_200F_206E_206F_206F_202E_200B_206E_206A_200C_206D_206C_200C_202C_200F_200D_202C_202E(); - ImU8String imU8String7 = new ImU8String(37, 1); - imU8String7.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1920261830)); - imU8String7.AppendFormatted(remainingAllowances); - imU8String7.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2116808891)); - _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref UiThemeUtils.StatusComplete, imU8String7); - _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1784572310)); - } - else - { - ImRaii.ColorDisposable colorDisposable = _202B_206D_202D_206B_206B_202C_206A_206D_202E_206E_200C_202C_202B_206E_200F_202B_200E_206D_206F_206F_202C_200C_206C_202B_206C_206F_200E_202D_202E_202D_206A_206C_206E_200F_200B_200B_202D_206D_202D_200D_202E(ImGuiCol.Text, UiThemeUtils.StatusComplete, true); - try - { - ImU8String imU8String8 = new ImU8String(0, 1); - imU8String8.AppendFormatted(_202B_206F_200E_206C_202A_202B_200D_200C_200B_202D_206B_200F_202B_206B_206E_200B_202B_206E_206D_206D_202D_206A_200C_200F_200C_200B_202A_206E_202B_202A_200C_206D_202C_202A_200E_206A_202B_206B_200E_202D_202E(SeIconChar.QuestSync)); - _202D_206B_206F_202E_202E_200D_202E_206E_200B_200E_206F_200C_206F_202D_206E_206D_206A_202D_206E_206B_206D_202B_202E_200B_206B_202A_202A_200F_200B_202B_202A_200B_206D_206A_206B_206C_200E_200D_200E_206F_202E(imU8String8); - _202C_206A_200C_200B_206C_206C_200B_200F_206E_206D_206C_206F_206C_202B_202D_206A_200E_206D_206E_202D_202A_206B_202D_206E_206F_202E_200F_202D_206F_206F_206F_206A_200E_206B_206A_202D_200E_202E_206A_202E_202E(); - ImU8String imU8String9 = new ImU8String(20, 3); - imU8String9.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(566224433)); - imU8String9.AppendFormatted(availableCount); - imU8String9.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1734073964)); - imU8String9.AppendFormatted(alliedSociety); - imU8String9.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-818915859)); - imU8String9.AppendFormatted((availableCount == 1) ? global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(308044519) : global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1391970161)); - _202B_206E_202E_200C_206C_202B_206A_206E_206F_202D_200E_202E_206B_200B_206B_200F_206B_206B_202C_200E_206B_206D_206B_206F_206F_206E_200D_202B_206C_206A_202D_206B_206D_200D_202C_200D_202B_200B_206D_200D_202E(imU8String9); - } - finally - { - int num = ((colorDisposable == null) ? 1860381034 : 1860381033); - while (true) - { - int num10 = num; - int num3 = 1860381035; - int num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 0: - num = 1860381033; - break; - case 1: - goto end_IL_0402; - case 2: - _200F_206B_202C_202B_200E_206A_206A_206A_202C_202D_206A_202B_206A_202C_206D_206B_200D_206A_200E_206E_202E_200C_206A_206D_202B_200E_206A_202E_202E_202A_206A_200C_200E_200F_200B_200C_206E_202A_200C_206B_202E((IDisposable)colorDisposable); - num = 1860381034; - break; - } - continue; - end_IL_0402: - break; - } - } - _202E_200B_200E_200F_202B_206B_200B_202C_202A_202B_200C_206C_200E_206D_202D_202A_200C_206B_206A_200B_206C_202A_200B_206C_200F_206E_206F_206F_202E_200B_206E_206A_200C_206D_206C_200C_202C_200F_200D_202C_202E(); - ImU8String imU8String10 = new ImU8String(27, 2); - imU8String10.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1280288787)); - imU8String10.AppendFormatted(availableCount); - imU8String10.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1153128276)); - imU8String10.AppendFormatted(remainingAllowances); - imU8String10.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2117985447)); - _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref UiThemeUtils.MutedTextColor, imU8String10); - _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1705577423)); - } - _206D_202A_206D_206A_200F_206C_200C_200E_202E_200B_200D_206F_200C_202B_202D_206B_206C_200B_200B_202B_206A_206A_200D_206A_206A_200F_200F_200E_202E_206E_200D_202D_202D_202C_206A_202C_206D_202B_202E_200C_202E(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private void DrawStandardAddButton(EAlliedSociety alliedSociety, List<QuestInfo> availableQuests, int remainingAllowances) - { - int count = availableQuests.Count; - int num = 1; - int num2 = count; - string text = default(string); - int num3; - switch (~(~num2 + num)) - { - default: - num3 = -1251083593; - goto IL_0031; - case 1: - text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-50765842); - num3 = -1251083589; - goto IL_0031; - case 0: - goto IL_00e1; - case 2: - goto IL_00f8; - IL_0031: - while (true) - { - int num4 = num3; - num = -1251083597; - num2 = num4; - int num5 = num2 + num; - int num6 = num2 & num; - switch (num5 - (num6 + num6)) - { - case 7: - goto end_IL_0031; - case 8: - goto IL_0096; - case 6: - if (_206A_200F_202B_202B_200E_200C_206B_200D_206D_206E_202E_202C_206A_200D_206A_200E_200E_206C_202B_206F_206F_206F_202C_206B_206F_202D_206F_202B_200D_200E_202D_206D_206E_200C_202D_202D_200D_202E_202D_206A_202E()) - { - num3 = -1251083600; - break; - } - return; - case 9: - goto IL_00e1; - case 5: - goto IL_00f8; - case 0: - num3 = -1251083593; - break; - case 4: - num3 = -1251083599; - break; - case 3: - { - _200C_200E_200B_200C_202A_200B_202E_200F_202A_206D_202A_202C_200C_200B_206C_206F_206B_202C_206B_206C_200E_206E_200E_206A_200B_202E_202A_206D_206E_202A_200B_200E_202D_200D_202E_200B_202B_206C_202C_206B_202E(); - ImU8String imU8String3 = new ImU8String(18, 3); - imU8String3.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1727957168)); - imU8String3.AppendFormatted(availableQuests.Count); - imU8String3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(751790982)); - imU8String3.AppendFormatted(alliedSociety); - imU8String3.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1051702537)); - imU8String3.AppendFormatted((availableQuests.Count == 1) ? global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1468314462) : global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1391970161)); - imU8String3.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1952651272)); - _202B_206E_202E_200C_206C_202B_206A_206E_206F_202D_200E_202E_206B_200B_206B_200F_206B_206B_202C_200E_206B_206D_206B_206F_206F_206E_200D_202B_206C_206A_202D_206B_206D_200D_202C_200D_202B_200B_206D_200D_202E(imU8String3); - _202E_200B_200E_200F_202B_206B_200B_202C_202A_202B_200C_206C_200E_206D_202D_202A_200C_206B_206A_200B_206C_202A_200B_206C_200F_206E_206F_206F_202E_200B_206E_206A_200C_206D_206C_200C_202C_200F_200D_202C_202E(); - if (availableQuests.Count <= remainingAllowances) - { - num3 = -1251083591; - break; - } - ImRaii.ColorDisposable colorDisposable = _202B_206D_202D_206B_206B_202C_206A_206D_202E_206E_200C_202C_202B_206E_200F_202B_200E_206D_206F_206F_202C_200C_206C_202B_206C_206F_200E_202D_202E_202D_206A_206C_206E_200F_200B_200B_202D_206D_202D_200D_202E(ImGuiCol.Text, UiThemeUtils.StatusActive, true); - try - { - ImU8String imU8String4 = new ImU8String(0, 1); - imU8String4.AppendFormatted(_202B_206F_200E_206C_202A_202B_200D_200C_200B_202D_206B_200F_202B_206B_206E_200B_202B_206E_206D_206D_202D_206A_200C_200F_200C_200B_202A_206E_202B_202A_200C_206D_202C_202A_200E_206A_202B_206B_200E_202D_202E(SeIconChar.Cross)); - _202D_206B_206F_202E_202E_200D_202E_206E_200B_200E_206F_200C_206F_202D_206E_206D_206A_202D_206E_206B_206D_202B_202E_200B_206B_202A_202A_200F_200B_202B_202A_200B_206D_206A_206B_206C_200E_200D_200E_206F_202E(imU8String4); - _202C_206A_200C_200B_206C_206C_200B_200F_206E_206D_206C_206F_206C_202B_202D_206A_200E_206D_206E_202D_202A_206B_202D_206E_206F_202E_200F_202D_206F_206F_206F_206A_200E_206B_206A_202D_200E_202E_206A_202E_202E(); - ImU8String imU8String5 = new ImU8String(31, 1); - imU8String5.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(22897636)); - imU8String5.AppendFormatted(remainingAllowances); - imU8String5.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - _202B_206E_202E_200C_206C_202B_206A_206E_206F_202D_200E_202E_206B_200B_206B_200F_206B_206B_202C_200E_206B_206D_206B_206F_206F_206E_200D_202B_206C_206A_202D_206B_206D_200D_202C_200D_202B_200B_206D_200D_202E(imU8String5); - } - finally - { - num3 = ((colorDisposable == null) ? 443411992 : 443411995); - while (true) - { - int num8 = num3; - num = 443411994; - num2 = num8; - switch ((num2 | num) - (num2 & num)) - { - case 0: - num3 = 443411995; - break; - case 2: - goto end_IL_0415; - case 1: - _200F_206B_202C_202B_200E_206A_206A_206A_202C_202D_206A_202B_206A_202C_206D_206B_200D_206A_200E_206E_202E_200C_206A_206D_202B_200E_206A_202E_202E_202A_206A_200C_200E_200F_200B_200C_206E_202A_200C_206B_202E((IDisposable)colorDisposable); - num3 = 443411992; - break; - } - continue; - end_IL_0415: - break; - } - } - _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-969382418)); - goto IL_047a; - } - case 1: - AddQuestsToPriority(alliedSociety, availableQuests); - num3 = -1251083595; - break; - case 2: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(15, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1650091118)); - defaultInterpolatedStringHandler.AppendFormatted(availableQuests.Count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-182538210)); - text = defaultInterpolatedStringHandler.ToStringAndClear(); - num3 = -1251083589; - break; - } - case 10: - { - ImRaii.ColorDisposable colorDisposable = _202B_206D_202D_206B_206B_202C_206A_206D_202E_206E_200C_202C_202B_206E_200F_202B_200E_206D_206F_206F_202C_200C_206C_202B_206C_206F_200E_202D_202E_202D_206A_206C_206E_200F_200B_200B_202D_206D_202D_200D_202E(ImGuiCol.Text, UiThemeUtils.StatusComplete, true); - try - { - ImU8String imU8String = new ImU8String(0, 1); - imU8String.AppendFormatted(_202B_206F_200E_206C_202A_202B_200D_200C_200B_202D_206B_200F_202B_206B_206E_200B_202B_206E_206D_206D_202D_206A_200C_200F_200C_200B_202A_206E_202B_202A_200C_206D_202C_202A_200E_206A_202B_206B_200E_202D_202E(SeIconChar.QuestSync)); - _202D_206B_206F_202E_202E_200D_202E_206E_200B_200E_206F_200C_206F_202D_206E_206D_206A_202D_206E_206B_206D_202B_202E_200B_206B_202A_202A_200F_200B_202B_202A_200B_206D_206A_206B_206C_200E_200D_200E_206F_202E(imU8String); - _202C_206A_200C_200B_206C_206C_200B_200F_206E_206D_206C_206F_206C_202B_202D_206A_200E_206D_206E_202D_202A_206B_202D_206E_206F_202E_200F_202D_206F_206F_206F_206A_200E_206B_206A_202D_200E_202E_206A_202E_202E(); - ImU8String imU8String2 = new ImU8String(17, 3); - imU8String2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-116858532)); - imU8String2.AppendFormatted(availableQuests.Count); - imU8String2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1153128276)); - imU8String2.AppendFormatted(remainingAllowances); - imU8String2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1907189443)); - imU8String2.AppendFormatted((remainingAllowances == 1) ? global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-908522859) : global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-19098909)); - _202B_206E_202E_200C_206C_202B_206A_206E_206F_202D_200E_202E_206B_200B_206B_200F_206B_206B_202C_200E_206B_206D_206B_206F_206F_206E_200D_202B_206C_206A_202D_206B_206D_200D_202C_200D_202B_200B_206D_200D_202E(imU8String2); - } - finally - { - num3 = ((colorDisposable == null) ? 1663038793 : 1663038792); - while (true) - { - int num7 = num3; - num = 1663038793; - num2 = num7; - switch ((num2 | num) - (num2 & num)) - { - case 0: - goto end_IL_0318; - case 1: - _200F_206B_202C_202B_200E_206A_206A_206A_202C_202D_206A_202B_206A_202C_206D_206B_200D_206A_200E_206E_202E_200C_206A_206D_202B_200E_206A_202E_202E_202A_206A_200C_200E_200F_200B_200C_206E_202A_200C_206B_202E((IDisposable)colorDisposable); - num3 = 1663038793; - break; - case 2: - num3 = 1663038792; - break; - } - continue; - end_IL_0318: - break; - } - } - _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(325664986)); - goto IL_047a; - } - IL_047a: - _206D_202A_206D_206A_200F_206C_200C_200E_202E_200B_200D_206F_200C_202B_202D_206B_206C_200B_200B_202B_206A_206A_200D_206A_206A_200F_200F_200E_202E_206E_200D_202D_202D_202C_206A_202C_206D_202B_202E_200C_202E(); - return; - } - continue; - IL_0096: - string text2 = text; - num3 = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Plus, text2, IconTextButtonWidth(FontAwesomeIcon.Plus, text2))) ? (-1251083595) : (-1251083598)); - continue; - end_IL_0031: - break; - } - goto case 1; - IL_00f8: - text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(407594946); - num3 = -1251083589; - goto IL_0031; - IL_00e1: - text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1523669633); - num3 = -1251083589; - goto IL_0031; - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private void AddQuestsToPriority(EAlliedSociety alliedSociety, List<QuestInfo> questsToAdd) - { - int num = 0; - int num2; - using (List<QuestInfo>.Enumerator enumerator = questsToAdd.GetEnumerator()) - { - num2 = -1316256234; - while (true) - { - int num3 = num2; - int num4 = -1316256236; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 0: - { - int num8 = num; - num4 = 1; - num5 = num8; - int num9 = num5 ^ num4; - int num10 = num5 & num4; - num = num9 + (num10 + num10); - num2 = -1316256234; - break; - } - case 1: - { - QuestInfo current = enumerator.Current; - num2 = ((!_questController.AddQuestPriority(current.QuestId)) ? (-1316256234) : (-1316256236)); - break; - } - case 3: - num2 = -1316256234; - break; - case 2: - num2 = (enumerator.MoveNext() ? (-1316256235) : (-1316256240)); - break; - case 4: - goto end_IL_0015; - } - continue; - end_IL_0015: - break; - } - } - num2 = ((num <= 0) ? (-976233410) : (-976233415)); - while (true) - { - int num11 = num2; - int num4 = -976233411; - int num5 = num11; - string text; - string text2; - IChatGui chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler; - switch ((num5 | num4) - (num5 & num4)) - { - case 3: - return; - case 4: - num2 = ((num == 1) ? (-976233412) : (-976233411)); - break; - case 0: - text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1303968590); - goto IL_017c; - case 1: - text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1468314462); - goto IL_017c; - case 2: - { - num2 = -976233415; - break; - } - IL_017c: - text2 = text; - _206D_200E_202A_206C_200D_202A_200E_200F_200E_202B_200F_206A_206A_202D_200B_202B_200D_202B_206F_206B_200D_202D_206C_200C_206B_206E_206B_202D_202D_200D_202B_202E_206D_200F_202E_206F_206E_200E_206E_200C_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(538675772), new object[3] { num, alliedSociety, text2 }); - chatGui = _chatGui; - defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(26, 3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1201571515)); - defaultInterpolatedStringHandler.AppendFormatted(num); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1051702537)); - defaultInterpolatedStringHandler.AppendFormatted(alliedSociety); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-818915859)); - defaultInterpolatedStringHandler.AppendFormatted(text2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-985511642)); - _200C_200F_206A_202E_202B_200B_206C_202B_202B_202B_206F_202D_206E_200B_206F_200B_206E_200E_200B_202C_200F_206D_206B_200D_202E_200E_200F_206D_202E_202A_206D_202A_206A_200F_206A_206A_200B_206B_202D_206C_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - num2 = -976233410; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private void DrawQuest(QuestInfo questInfo) - { - (Vector4 Color, FontAwesomeIcon Icon, string Status) questStyle = _uiUtils.GetQuestStyle(questInfo.QuestId); - Vector4 color = questStyle.Color; - FontAwesomeIcon item = questStyle.Icon; - string item2 = questStyle.Status; - int num = ((!_questRegistry.TryGetQuest(questInfo.QuestId, out Quest quest)) ? 808488069 : 808488071); - while (true) - { - int num2 = num; - int num3 = 808488070; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 808488071; - break; - case 1: - num = ((!_206F_200E_200C_206B_206F_206B_202E_200E_200B_200C_200C_202E_206B_206B_200B_202E_200F_200E_200E_200E_206E_202D_206C_206B_202A_202C_200C_200B_202D_200B_206E_206B_200E_206D_206D_206C_200D_202E_200F_206F_202E(quest.Root)) ? 808488070 : 808488069); - break; - case 3: - color = UiThemeUtils.StatusUnobtainable; - num = 808488070; - break; - case 0: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(6, 3); - defaultInterpolatedStringHandler.AppendFormatted(questInfo.Name); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1473546846)); - defaultInterpolatedStringHandler.AppendFormatted(item2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1129892722)); - defaultInterpolatedStringHandler.AppendFormatted(questInfo.QuestId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-25878066)); - string text = defaultInterpolatedStringHandler.ToStringAndClear(); - ImRaii.FontDisposable fontDisposable = _206A_206A_202A_202C_206D_206E_206B_202D_200E_200E_200C_206C_200C_202B_202C_202B_202E_202E_202A_206F_206B_206A_202A_200D_200D_202C_206E_200B_206A_202E_202B_206C_206E_200E_202C_206A_200E_202C_200C_206D_202E(_206E_200C_202B_206A_206A_202B_202D_206B_200D_200C_200F_200C_206F_200F_200F_200E_202C_206B_200F_206B_200F_206F_200C_202E_206C_200C_200F_206C_202E_202A_200E_200D_200D_202A_200C_200C_206F_206D_206A_206F_202E(), true); - float x; - try - { - x = _200E_202C_200B_206B_206F_206B_202B_202D_202A_200D_202D_206A_202A_200E_206D_202C_206B_206E_202A_200F_206B_206F_202C_206C_200F_200F_206B_200B_206B_202A_200C_202B_200F_200B_206A_206F_200F_206B_202B_202D_202E((ImU8String)_200F_202D_202E_206D_200F_206E_202C_206F_206E_202E_206A_206E_202D_206F_202B_206C_206C_202E_200F_206A_206F_202B_206D_202D_206F_200C_202E_200E_200F_206B_202A_200D_202A_202C_206D_200F_200B_202A_206B_206B_202E(item), false, -1f).X; - } - finally - { - num = ((fontDisposable == null) ? 1044840550 : 1044840549); - while (true) - { - int num7 = num; - num3 = 1044840548; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - num = 1044840549; - break; - case 1: - _200F_206B_202C_202B_200E_206A_206A_206A_202C_202D_206A_202B_206A_202C_206D_206B_200D_206A_200E_206E_202E_200C_206A_206D_202B_200E_206A_202E_202E_202A_206A_200C_200E_200F_200B_200C_206E_202A_200C_206B_202E((IDisposable)fontDisposable); - num = 1044840550; - break; - case 2: - goto end_IL_0182; - } - continue; - end_IL_0182: - break; - } - } - float maxWidth = _200C_202A_202E_202A_206E_202A_200B_206A_206D_200B_202A_200D_206E_202E_200F_200E_202A_202D_202E_200C_206A_206C_200D_202B_200C_202E_206C_206F_206C_202A_206E_200F_206F_206E_200D_206E_206B_200B_200E_202B_202E().X - x - _206C_200B_206E_206D_200F_200C_200B_202D_206B_206D_206B_202A_206A_206C_200E_202B_202B_200D_206C_206A_206F_202D_206F_206A_206C_206B_206A_200C_200C_206E_206F_202D_202D_206F_206F_206E_206B_200B_200F_206E_202E().ItemSpacing.X; - num = ((!_uiUtils.ChecklistItem(UiThemeUtils.TruncateToWidth(text, maxWidth), color, item)) ? (-225021821) : (-225021824)); - while (true) - { - int num10 = num; - num3 = -225021823; - num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 0: - num = -225021824; - break; - case 1: - _questTooltipComponent.Draw(questInfo); - num = -225021821; - break; - case 2: - _questJournalUtils.ShowContextMenu(questInfo, quest, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(806527212)); - return; - } - } - } - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - static AlliedSocietyJournalComponent() - { - (string, EAlliedSociety[])[] array = new(string, EAlliedSociety[])[6]; - string item = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1261156168); - EAlliedSociety[] array2 = new EAlliedSociety[5]; - _206D_200B_202B_202A_200C_200B_206A_200C_206B_206F_206D_202A_200C_200C_206C_202B_202C_206F_200F_206B_206D_200D_202E_200E_206E_200E_206E_200D_200E_200C_206B_200D_206E_200D_206B_202D_206F_202A_202C_206F_202E((Array)array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - array[0] = (item, array2); - string item2 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(782699001); - EAlliedSociety[] array3 = new EAlliedSociety[3]; - _206D_200B_202B_202A_200C_200B_206A_200C_206B_206F_206D_202A_200C_200C_206C_202B_202C_206F_200F_206B_206D_200D_202E_200E_206E_200E_206E_200D_200E_200C_206B_200D_206E_200D_206B_202D_206F_202A_202C_206F_202E((Array)array3, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - array[1] = (item2, array3); - string item3 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1513405217); - EAlliedSociety[] array4 = new EAlliedSociety[3]; - _206D_200B_202B_202A_200C_200B_206A_200C_206B_206F_206D_202A_200C_200C_206C_202B_202C_206F_200F_206B_206D_200D_202E_200E_206E_200E_206E_200D_200E_200C_206B_200D_206E_200D_206B_202D_206F_202A_202C_206F_202E((Array)array4, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - array[2] = (item3, array4); - string item4 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1593202768); - EAlliedSociety[] array5 = new EAlliedSociety[3]; - _206D_200B_202B_202A_200C_200B_206A_200C_206B_206F_206D_202A_200C_200C_206C_202B_202C_206F_200F_206B_206D_200D_202E_200E_206E_200E_206E_200D_200E_200C_206B_200D_206E_200D_206B_202D_206F_202A_202C_206F_202E((Array)array5, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - array[3] = (item4, array5); - string item5 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(73028208); - EAlliedSociety[] array6 = new EAlliedSociety[3]; - _206D_200B_202B_202A_200C_200B_206A_200C_206B_206F_206D_202A_200C_200C_206C_202B_202C_206F_200F_206B_206D_200D_202E_200E_206E_200E_206E_200D_200E_200C_206B_200D_206E_200D_206B_202D_206F_202A_202C_206F_202E((Array)array6, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - array[4] = (item5, array6); - string item6 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(997564111); - EAlliedSociety[] array7 = new EAlliedSociety[3]; - _206D_200B_202B_202A_200C_200B_206A_200C_206B_206F_206D_202A_200C_200C_206C_202B_202C_206F_200F_206B_206D_200D_202E_200E_206E_200E_206E_200D_200E_200C_206B_200D_206E_200D_206B_202D_206F_202A_202C_206F_202E((Array)array7, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - array[5] = (item6, array7); - ExpansionGroups = array; - } - - static void _200E_206A_200D_200F_206D_202A_206F_206F_200E_200B_200B_206C_200F_202B_202D_200E_200B_202B_200B_206B_200E_206C_202C_202B_200E_206A_206B_202D_200C_206C_200C_202B_206F_200F_202D_200D_202B_206F_206F_206C_202E() - { - ImGui.Separator(); - } - - static void _202E_200B_200E_200F_202B_206B_200B_202C_202A_202B_200C_206C_200E_206D_202D_202A_200C_206B_206A_200B_206C_202A_200B_206C_200F_206E_206F_206F_202E_200B_206E_206A_200C_206D_206C_200C_202C_200F_200D_202C_202E() - { - ImGui.Spacing(); - } - - static void _206B_200D_206F_206D_206D_202C_202D_202A_200C_206D_200B_200B_202A_206C_202B_202E_206D_200E_202B_200E_202E_200D_206A_206C_200E_202E_200D_206F_200F_202B_202A_206B_202B_206E_202B_206B_206A_206C_200C_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static ImRaii.ColorDisposable _202B_206D_202D_206B_206B_202C_206A_206D_202E_206E_200C_202C_202B_206E_200F_202B_200E_206D_206F_206F_202C_200C_206C_202B_206C_206F_200E_202D_202E_202D_206A_206C_206E_200F_200B_200B_202D_206D_202D_200D_202E(ImGuiCol P_0, Vector4 P_1, bool P_2) - { - return ImRaii.PushColor(P_0, P_1, P_2); - } - - static ImFontPtr _206E_200C_202B_206A_206A_202B_202D_206B_200D_200C_200F_200C_206F_200F_200F_200E_202C_206B_200F_206B_200F_206F_200C_202E_206C_200C_200F_206C_202E_202A_200E_200D_200D_202A_200C_200C_206F_206D_206A_206F_202E() - { - return UiBuilder.IconFont; - } - - static ImRaii.FontDisposable _206A_206A_202A_202C_206D_206E_206B_202D_200E_200E_200C_206C_200C_202B_202C_202B_202E_202E_202A_206F_206B_206A_202A_200D_200D_202C_206E_200B_206A_202E_202B_206C_206E_200E_202C_206A_200E_202C_200C_206D_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static string _200F_202D_202E_206D_200F_206E_202C_206F_206E_202E_206A_206E_202D_206F_202B_206C_206C_202E_200F_206A_206F_202B_206D_202D_206F_200C_202E_200E_200F_206B_202A_200D_202A_202C_206D_200F_200B_202A_206B_206B_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static void _202D_206B_206F_202E_202E_200D_202E_206E_200B_200E_206F_200C_206F_202D_206E_206D_206A_202D_206E_206B_206D_202B_202E_200B_206B_202A_202A_200F_200B_202B_202A_200B_206D_206A_206B_206C_200E_200D_200E_206F_202E(ImU8String P_0) - { - ImGui.Text(P_0); - } - - static void _200F_206B_202C_202B_200E_206A_206A_206A_202C_202D_206A_202B_206A_202C_206D_206B_200D_206A_200E_206E_202E_200C_206A_206D_202B_200E_206A_202E_202E_202A_206A_200C_200E_200F_200B_200C_206E_202A_200C_206B_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _202D_200E_206A_202B_206F_200C_206A_206C_200E_202C_202A_206D_202D_200E_200C_202B_202D_202B_206B_206D_200F_206E_202B_200E_200E_206D_206D_206B_202E_206A_202D_202E_200E_202E_200B_206C_200C_206B_200E_200E_202E(float P_0, float P_1) - { - ImGui.SameLine(P_0, P_1); - } - - static void _202B_206E_202E_200C_206C_202B_206A_206E_206F_202D_200E_202E_206B_200B_206B_200F_206B_206B_202C_200E_206B_206D_206B_206F_206F_206E_200D_202B_206C_206A_202D_206B_206D_200D_202C_200D_202B_200B_206D_200D_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static ImRaii.IndentDisposable _202D_202D_206A_206D_206B_206B_206A_200B_202C_206C_202B_200D_200D_200B_206A_206B_200B_200F_206E_206F_200D_202C_206C_202A_206C_206E_200E_206D_206F_206A_202C_200D_202E_206A_206B_202A_200F_206C_206B_200E_202E(int P_0, bool P_1) - { - return ImRaii.PushIndent(P_0, P_1); - } - - static Vector2 _200E_202C_200B_206B_206F_206B_202B_202D_202A_200D_202D_206A_202A_200E_206D_202C_206B_206E_202A_200F_206B_206F_202C_206C_200F_200F_206B_200B_206B_202A_200C_202B_200F_200B_206A_206F_200F_206B_202B_202D_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static ImGuiStylePtr _206C_200B_206E_206D_200F_200C_200B_202D_206B_206D_206B_202A_206A_206C_200E_202B_202B_200D_206C_206A_206F_202D_206F_206A_206C_206B_206A_200C_200C_206E_206F_202D_202D_206F_206F_206E_206B_200B_200F_206E_202E() - { - return ImGui.GetStyle(); - } - - static ImRaii.DisabledDisposable _200B_202B_202C_202E_200E_206C_202C_200C_200F_206D_200F_206B_206E_200C_202E_202A_202C_206F_202E_202B_206A_200C_202A_206D_206F_202C_200D_200B_206E_206D_202E_206D_200C_200C_200C_200B_206E_206C_200E_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static bool _200C_202E_202D_206A_200C_202A_200C_200C_206D_200B_206B_202A_206B_202C_202C_200B_206B_206F_200C_202B_206A_202C_206B_206E_206A_202D_200D_202D_202A_206C_202A_206E_206A_200B_200E_206A_200E_200B_206A_200E_202E(ImGuiHoveredFlags P_0) - { - return ImGui.IsItemHovered(P_0); - } - - static void _202C_206A_206E_202D_200C_200E_202A_200F_202E_206C_200F_200C_202E_206C_200E_206A_206A_206A_202D_206D_206E_202C_200C_206A_200B_206A_202E_200C_206E_206F_202C_206E_206E_206E_200B_206C_200E_206B_200E_200E_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } - - static int _206F_202A_206D_202C_206D_200D_202A_200F_206C_202B_206C_206A_200E_202B_200C_206B_200C_200C_202E_202D_206E_200D_200F_202A_200B_202D_206E_202A_202E_202B_200E_202D_202E_202E_202A_202C_206C_200E_206E_200F_202E(int P_0, int P_1) - { - return Math.Min(P_0, P_1); - } - - static void _202C_206A_200C_200B_206C_206C_200B_200F_206E_206D_206C_206F_206C_202B_202D_206A_200E_206D_206E_202D_202A_206B_202D_206E_206F_202E_200F_202D_206F_206F_206F_206A_200E_206B_206A_202D_200E_202E_206A_202E_202E() - { - ImGui.SameLine(); - } - - static bool _206A_200F_202B_202B_200E_200C_206B_200D_206D_206E_202E_202C_206A_200D_206A_200E_200E_206C_202B_206F_206F_206F_202C_206B_206F_202D_206F_202B_200D_200E_202D_206D_206E_200C_202D_202D_200D_202E_202D_206A_202E() - { - return ImGui.IsItemHovered(); - } - - static void _200C_200E_200B_200C_202A_200B_202E_200F_202A_206D_202A_202C_200C_200B_206C_206F_206B_202C_206B_206C_200E_206E_200E_206A_200B_202E_202A_206D_206E_202A_200B_200E_202D_200D_202E_200B_202B_206C_202C_206B_202E() - { - ImGui.BeginTooltip(); - } - - static string _202B_206F_200E_206C_202A_202B_200D_200C_200B_202D_206B_200F_202B_206B_206E_200B_202B_206E_206D_206D_202D_206A_200C_200F_200C_200B_202A_206E_202B_202A_200C_206D_202C_202A_200E_206A_202B_206B_200E_202D_202E(SeIconChar P_0) - { - return P_0.ToIconString(); - } - - static void _206D_202A_206D_206A_200F_206C_200C_200E_202E_200B_200D_206F_200C_202B_202D_206B_206C_200B_200B_202B_206A_206A_200D_206A_206A_200F_200F_200E_202E_206E_200D_202D_202D_202C_206A_202C_206D_202B_202E_200C_202E() - { ImGui.EndTooltip(); } - static void _206D_200E_202A_206C_200D_202A_200E_200F_200E_202B_200F_206A_206A_202D_200B_202B_200D_202B_206F_206B_200D_202D_206C_200C_206B_206E_206B_202D_202D_200D_202B_202E_206D_200F_202E_206F_206E_200E_206E_200C_202E(ILogger P_0, string P_1, object[] P_2) + private static void DrawAddAllButtonTooltip(int availableCount, int remainingAllowances, int dailyLimit, EAlliedSociety alliedSociety) { - P_0.LogInformation(P_1, P_2); + ImGui.BeginTooltip(); + if (availableCount > remainingAllowances) + { + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.StatusActive)) + { + ImU8String text = new ImU8String(0, 1); + text.AppendFormatted(SeIconChar.Cross.ToIconString()); + ImGui.Text(text); + ImGui.SameLine(); + ImGui.TextUnformatted("Warning: Exceeds remaining allowances"); + } + ImGui.Spacing(); + ImU8String text2 = new ImU8String(54, 1); + text2.AppendLiteral("This adds all "); + text2.AppendFormatted(availableCount); + text2.AppendLiteral(" available quests to your priority list,"); + ImGui.TextUnformatted(text2); + ImU8String text3 = new ImU8String(37, 2); + text3.AppendLiteral("but you only have "); + text3.AppendFormatted(remainingAllowances); + text3.AppendLiteral(" shared "); + text3.AppendFormatted((remainingAllowances == 1) ? "allowance" : "allowances"); + text3.AppendLiteral(" remaining."); + ImGui.TextUnformatted(text3); + ImGui.Spacing(); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, "The excess quests won't be completable until tomorrow."); + } + else if (availableCount > dailyLimit) + { + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.StatusActive)) + { + ImU8String text4 = new ImU8String(0, 1); + text4.AppendFormatted(SeIconChar.Cross.ToIconString()); + ImGui.Text(text4); + ImGui.SameLine(); + ImGui.TextUnformatted("Warning: Exceeds daily optimal amount"); + } + ImGui.Spacing(); + ImU8String text5 = new ImU8String(32, 1); + text5.AppendLiteral("This adds all "); + text5.AppendFormatted(availableCount); + text5.AppendLiteral(" available quests,"); + ImGui.TextUnformatted(text5); + ImU8String text6 = new ImU8String(48, 1); + text6.AppendLiteral("using more than the typical "); + text6.AppendFormatted(3); + text6.AppendLiteral(" quests per society."); + ImGui.TextUnformatted(text6); + ImGui.Spacing(); + ImU8String text7 = new ImU8String(37, 1); + text7.AppendLiteral("You have "); + text7.AppendFormatted(remainingAllowances); + text7.AppendLiteral(" shared allowances remaining"); + ImGui.TextColored(in UiThemeUtils.StatusComplete, text7); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, "You may want to save allowances for other societies."); + } + else + { + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.StatusComplete)) + { + ImU8String text8 = new ImU8String(0, 1); + text8.AppendFormatted(SeIconChar.QuestSync.ToIconString()); + ImGui.Text(text8); + ImGui.SameLine(); + ImU8String text9 = new ImU8String(20, 3); + text9.AppendLiteral("Add all "); + text9.AppendFormatted(availableCount); + text9.AppendLiteral(" available "); + text9.AppendFormatted(alliedSociety); + text9.AppendLiteral(" "); + text9.AppendFormatted((availableCount == 1) ? "quest" : "quests"); + ImGui.TextUnformatted(text9); + } + ImGui.Spacing(); + ImU8String text10 = new ImU8String(27, 2); + text10.AppendLiteral("Uses "); + text10.AppendFormatted(availableCount); + text10.AppendLiteral(" of "); + text10.AppendFormatted(remainingAllowances); + text10.AppendLiteral(" shared allowances"); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, text10); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, "All can be completed today"); + } + ImGui.EndTooltip(); } - static void _200C_200F_206A_202E_202B_200B_206C_202B_202B_202B_206F_202D_206E_200B_206F_200B_206E_200E_200B_202C_200F_206D_206B_200D_202E_200E_200F_206D_202E_202A_206D_202A_206A_200F_206A_206A_200B_206B_202D_206C_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) + private void DrawStandardAddButton(EAlliedSociety alliedSociety, List<QuestInfo> availableQuests, int remainingAllowances) { - P_0.Print(P_1, P_2, P_3); + string text = availableQuests.Count switch + { + 1 => "Add 1 Quest", + 2 => "Add 2 Quests", + 3 => "Add 3 Quests", + _ => $"Add All {availableQuests.Count} Quests", + }; + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Plus, text, IconTextButtonWidth(FontAwesomeIcon.Plus, text))) + { + AddQuestsToPriority(alliedSociety, availableQuests); + } + if (!ImGui.IsItemHovered()) + { + return; + } + ImGui.BeginTooltip(); + ImU8String text2 = new ImU8String(18, 3); + text2.AppendLiteral("Add "); + text2.AppendFormatted(availableQuests.Count); + text2.AppendLiteral(" "); + text2.AppendFormatted(alliedSociety); + text2.AppendLiteral(" "); + text2.AppendFormatted((availableQuests.Count == 1) ? "quest" : "quests"); + text2.AppendLiteral(" to priority"); + ImGui.TextUnformatted(text2); + ImGui.Spacing(); + if (availableQuests.Count <= remainingAllowances) + { + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.StatusComplete)) + { + ImU8String text3 = new ImU8String(0, 1); + text3.AppendFormatted(SeIconChar.QuestSync.ToIconString()); + ImGui.Text(text3); + ImGui.SameLine(); + ImU8String text4 = new ImU8String(17, 3); + text4.AppendLiteral("Uses "); + text4.AppendFormatted(availableQuests.Count); + text4.AppendLiteral(" of "); + text4.AppendFormatted(remainingAllowances); + text4.AppendLiteral(" shared "); + text4.AppendFormatted((remainingAllowances == 1) ? "allowance" : "allowances"); + ImGui.TextUnformatted(text4); + } + ImGui.TextColored(in UiThemeUtils.MutedTextColor, "All can be completed today"); + } + else + { + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.StatusActive)) + { + ImU8String text5 = new ImU8String(0, 1); + text5.AppendFormatted(SeIconChar.Cross.ToIconString()); + ImGui.Text(text5); + ImGui.SameLine(); + ImU8String text6 = new ImU8String(31, 1); + text6.AppendLiteral("Exceeds remaining allowances ("); + text6.AppendFormatted(remainingAllowances); + text6.AppendLiteral(")"); + ImGui.TextUnformatted(text6); + } + ImGui.TextColored(in UiThemeUtils.MutedTextColor, "Some quests won't be completable until tomorrow"); + } + ImGui.EndTooltip(); } - static bool _206F_200E_200C_206B_206F_206B_202E_200E_200B_200C_200C_202E_206B_206B_200B_202E_200F_200E_200E_200E_206E_202D_206C_206B_202A_202C_200C_200B_202D_200B_206E_206B_200E_206D_206D_206C_200D_202E_200F_206F_202E(QuestRoot P_0) + private void AddQuestsToPriority(EAlliedSociety alliedSociety, List<QuestInfo> questsToAdd) { - return P_0.Disabled; + int num = 0; + foreach (QuestInfo item in questsToAdd) + { + if (_questController.AddQuestPriority(item.QuestId)) + { + num++; + } + } + if (num > 0) + { + string text = ((num == 1) ? "quest" : "quests"); + _logger.LogInformation("Added {Count} {Society} {QuestWord} to priority list", num, alliedSociety, text); + _chatGui.Print($"Added {num} {alliedSociety} {text} to priority list.", "Questionable", 576); + } } - static Vector2 _200C_202A_202E_202A_206E_202A_200B_206A_206D_200B_202A_200D_206E_202E_200F_200E_202A_202D_202E_200C_206A_206C_200D_202B_200C_202E_206C_206F_206C_202A_206E_200F_206F_206E_200D_206E_206B_200B_200E_202B_202E() + private void DrawQuest(QuestInfo questInfo) { - return ImGui.GetContentRegionAvail(); - } - - static void _206D_200B_202B_202A_200C_200B_206A_200C_206B_206F_206D_202A_200C_200C_206C_202B_202C_206F_200F_206B_206D_200D_202E_200E_206E_200E_206E_200D_200E_200C_206B_200D_206E_200D_206B_202D_206F_202A_202C_206F_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); + var (color, icon, value) = _uiUtils.GetQuestStyle(questInfo.QuestId); + if (!_questRegistry.TryGetQuest(questInfo.QuestId, out Quest quest) || quest.Root.Disabled) + { + color = UiThemeUtils.StatusUnobtainable; + } + string text = $"{questInfo.Name} ({value}) [{questInfo.QuestId}]"; + float x; + using (ImRaii.PushFont(UiBuilder.IconFont)) + { + x = ImGui.CalcTextSize(icon.ToIconString()).X; + } + float maxWidth = ImGui.GetContentRegionAvail().X - x - ImGui.GetStyle().ItemSpacing.X; + if (_uiUtils.ChecklistItem(UiThemeUtils.TruncateToWidth(text, maxWidth), color, icon)) + { + _questTooltipComponent.Draw(questInfo); + } + _questJournalUtils.ShowContextMenu(questInfo, quest, "AlliedSocietyJournalComponent"); } } diff --git a/Questionable/Questionable.Windows.JournalComponents/AttunementJournalComponent.cs b/Questionable/Questionable.Windows.JournalComponents/AttunementJournalComponent.cs index f84f29d..9cca85b 100644 --- a/Questionable/Questionable.Windows.JournalComponents/AttunementJournalComponent.cs +++ b/Questionable/Questionable.Windows.JournalComponents/AttunementJournalComponent.cs @@ -1,17 +1,11 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Collections.Immutable; -using System.Collections.ObjectModel; using System.Globalization; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Bindings.ImGui; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Interface; -using Dalamud.Interface.ManagedFontAtlas; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin; using Dalamud.Plugin.Services; @@ -38,707 +32,15 @@ namespace Questionable.Windows.JournalComponents; internal sealed class AttunementJournalComponent { - private sealed record AetheryteEntry(EAetheryteLocation Location, string Name, ushort TerritoryId) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206C_202A_202A_202E_200B_206C_206B_202C_206A_206A_200D_206C_202A_202A_206D_200F_206D_202A_200B_202E_206F_202E_202A_200B_200D_200D_202C_200D_202C_202A_206B_202E_200C_206D_202E_206D_206A_202B_200C_206D_202E(typeof(AetheryteEntry).TypeHandle); - } - } + private sealed record AetheryteEntry(EAetheryteLocation Location, string Name, ushort TerritoryId); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200C_200D_202C_202D_200B_202A_200B_200B_206E_206E_206F_206A_200D_200C_206C_206A_206C_200E_202D_206E_200E_206B_202E_200D_202D_202E_206C_202D_200B_202E_200F_200B_200E_202E_202D_200B_200B_200E_206B_200E_202E(); - _206B_206E_206B_200B_200B_202E_202C_206A_202E_200B_202D_202E_206D_202E_200C_202E_206A_200C_200F_202C_200C_200E_206E_200D_206A_202E_202E_202B_202D_202C_202C_206F_202C_202B_202E_200C_202D_200B_202C_206C_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1383851405)); - _206B_206E_206B_200B_200B_202E_202C_206A_202E_200B_202D_202E_206D_202E_200C_202E_206A_200C_200F_202C_200C_200E_206E_200D_206A_202E_202E_202B_202D_202C_202C_206F_202C_202B_202E_200C_202D_200B_202C_206C_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(556540328)); - int num = ((!PrintMembers(stringBuilder)) ? (-913631883) : (-913631882)); - while (true) - { - int num2 = num; - int num3 = -913631881; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -913631882; - break; - case 1: - _200E_206B_200B_200D_206A_202B_202B_200F_202A_200F_206B_206A_202A_206A_202D_200C_200D_202C_200E_200D_206D_202A_202D_206A_206A_200E_206F_200B_206B_200F_200C_200C_206B_206A_200D_206D_200E_202A_206A_202E_202E(stringBuilder, ' '); - num = -913631883; - break; - case 2: - _200E_206B_200B_200D_206A_202B_202B_200F_202A_200F_206B_206A_202A_206A_202D_200C_200D_202C_200E_200D_206D_202A_202D_206A_206A_200E_206F_200B_206B_200F_200C_200C_206B_206A_200D_206D_200E_202A_206A_202E_202E(stringBuilder, '}'); - return _200C_200E_206A_200E_200C_200E_202D_206C_206D_206C_206E_200C_202A_200E_206F_200E_206C_202E_206C_200C_206B_202C_202A_200F_202D_202B_202A_202A_202B_206E_200F_206B_200D_206B_202A_202C_202C_200E_200E_206D_202E((object)stringBuilder); - } - } - } + private sealed record CityGroup(string CityName, ImmutableList<AetheryteEntry> Shards); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202A_200D_206F_206B_206C_200E_206B_200D_200E_206F_200B_200C_200D_202A_206C_200C_206D_202C_200B_206B_206F_206E_200B_206B_202A_202E_206C_206A_206A_200D_202A_202D_206C_202B_200F_206A_206E_200C_200D_200C_202E(); - _206B_206E_206B_200B_200B_202E_202C_206A_202E_200B_202D_202E_206D_202E_200C_202E_206A_200C_200F_202C_200C_200E_206E_200D_206A_202E_202E_202B_202D_202C_202C_206F_202C_202B_202E_200C_202D_200B_202C_206C_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1926859199)); - _206B_206E_206B_200B_200B_202E_202C_206A_202E_200B_202D_202E_206D_202E_200C_202E_206A_200C_200F_202C_200C_200E_206E_200D_206A_202E_202E_202B_202D_202C_202C_206F_202C_202B_202E_200C_202D_200B_202C_206C_202E(builder, Location.ToString()); - _206B_206E_206B_200B_200B_202E_202C_206A_202E_200B_202D_202E_206D_202E_200C_202E_206A_200C_200F_202C_200C_200E_206E_200D_206A_202E_202E_202B_202D_202C_202C_206F_202C_202B_202E_200C_202D_200B_202C_206C_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-644247690)); - _200C_206A_200E_200E_200B_200F_202D_206B_202E_202D_206E_200E_206A_202A_200F_206C_202A_206F_206B_200E_206B_202A_202E_202D_202B_206B_202D_202E_206F_200E_206B_202A_206C_206F_206F_200C_206A_202B_200D_202A_202E(builder, (object)Name); - _206B_206E_206B_200B_200B_202E_202C_206A_202E_200B_202D_202E_206D_202E_200C_202E_206A_200C_200F_202C_200C_200E_206E_200D_206A_202E_202E_202B_202D_202C_202C_206F_202C_202B_202E_200C_202D_200B_202C_206C_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1214398023)); - _206B_206E_206B_200B_200B_202E_202C_206A_202E_200B_202D_202E_206D_202E_200C_202E_206A_200C_200F_202C_200C_200E_206E_200D_206A_202E_202E_202B_202D_202C_202C_206F_202C_202B_202E_200C_202D_200B_202C_206C_202E(builder, TerritoryId.ToString()); - return true; - } + private sealed record ZoneCurrentGroup(ushort TerritoryId, string ZoneName, ImmutableList<CurrentEntry> Currents); - [CompilerGenerated] - public bool Equals(AetheryteEntry? other) - { - int num = (((object)this == other) ? 1949028632 : 1949028635); - while (true) - { - int num2 = num; - int num3 = 1949028638; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = ((!EqualityComparer<EAetheryteLocation>.Default.Equals(Location, other.Location)) ? 1949028636 : 1949028639); - break; - case 5: - num = (((object)other == null) ? 1949028636 : 1949028633); - break; - case 2: - return false; - case 7: - num = ((!_200C_206F_206D_202A_202C_206E_200B_206A_202C_202C_200D_206B_206B_202D_206B_202E_206A_206E_200B_206C_206A_206B_202A_200C_200F_206C_200B_206B_206A_200C_206B_206B_206C_202B_202A_206D_202E_202B_206C_206F_202E(EqualityContract, other.EqualityContract)) ? 1949028636 : 1949028637); - break; - case 6: - return true; - case 4: - return EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId); - case 0: - num = 1949028635; - break; - case 1: - num = ((!EqualityComparer<string>.Default.Equals(Name, other.Name)) ? 1949028636 : 1949028634); - break; - } - } - } + private sealed record CurrentEntry(uint AetherCurrentId, bool IsQuestGated, uint QuestId, string QuestName); - bool IEquatable<AetheryteEntry>.Equals(AetheryteEntry? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206C_202A_202A_202E_200B_206C_206B_202C_206A_206A_200D_206C_202A_202A_206D_200F_206D_202A_200B_202E_206F_202E_202A_200B_200D_200D_202C_200D_202C_202A_206B_202E_200C_206D_202E_206D_206A_202B_200C_206D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200C_200D_202C_202D_200B_202A_200B_200B_206E_206E_206F_206A_200D_200C_206C_206A_206C_200E_202D_206E_200E_206B_202E_200D_202D_202E_206C_202D_200B_202E_200F_200B_200E_202E_202D_200B_200B_200E_206B_200E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206B_206E_206B_200B_200B_202E_202C_206A_202E_200B_202D_202E_206D_202E_200C_202E_206A_200C_200F_202C_200C_200E_206E_200D_206A_202E_202E_202B_202D_202C_202C_206F_202C_202B_202E_200C_202D_200B_202C_206C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200E_206B_200B_200D_206A_202B_202B_200F_202A_200F_206B_206A_202A_206A_202D_200C_200D_202C_200E_200D_206D_202A_202D_206A_206A_200E_206F_200B_206B_200F_200C_200C_206B_206A_200D_206D_200E_202A_206A_202E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200C_200E_206A_200E_200C_200E_202D_206C_206D_206C_206E_200C_202A_200E_206F_200E_206C_202E_206C_200C_206B_202C_202A_200F_202D_202B_202A_202A_202B_206E_200F_206B_200D_206B_202A_202C_202C_200E_200E_206D_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202A_200D_206F_206B_206C_200E_206B_200D_200E_206F_200B_200C_200D_202A_206C_200C_206D_202C_200B_206B_206F_206E_200B_206B_202A_202E_206C_206A_206A_200D_202A_202D_206C_202B_200F_206A_206E_200C_200D_200C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200C_206A_200E_200E_200B_200F_202D_206B_202E_202D_206E_200E_206A_202A_200F_206C_202A_206F_206B_200E_206B_202A_202E_202D_202B_206B_202D_202E_206F_200E_206B_202A_206C_206F_206F_200C_206A_202B_200D_202A_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200C_206F_206D_202A_202C_206E_200B_206A_202C_202C_200D_206B_206B_202D_206B_202E_206A_206E_200B_206C_206A_206B_202A_200C_200F_206C_200B_206B_206A_200C_206B_206B_206C_202B_202A_206D_202E_202B_206C_206F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - private sealed record CityGroup(string CityName, ImmutableList<AetheryteEntry> Shards) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202D_200F_206B_200F_202D_202B_200B_200C_200D_206E_200C_206D_202D_200F_206C_200D_202A_200E_200C_206C_206F_206C_200E_200B_206D_206E_206C_202D_206B_200F_202B_206D_206B_200F_200D_200D_202D_206C_200F_202B_202E(typeof(CityGroup).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200F_200D_202E_200D_200E_200B_200E_206E_202A_206F_206E_202C_206A_200B_202C_206F_200B_200D_206D_200E_206F_202E_206F_206D_206C_202D_200F_200F_200D_206B_202B_202D_202C_206B_206D_202A_206D_200F_206A_200D_202E(); - _206F_202A_200B_202D_206E_206F_206B_200F_200D_200D_206A_202C_206C_200B_200F_206C_206B_206C_202B_206D_200B_200E_206E_206D_200B_200D_206D_206A_202B_200B_206A_206D_202B_206F_206D_206A_200B_202C_206B_202D_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-792661255)); - _206F_202A_200B_202D_206E_206F_206B_200F_200D_200D_206A_202C_206C_200B_200F_206C_206B_206C_202B_206D_200B_200E_206E_206D_200B_200D_206D_206A_202B_200B_206A_206D_202B_206F_206D_206A_200B_202C_206B_202D_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(556540328)); - int num = ((!PrintMembers(stringBuilder)) ? (-25201407) : (-25201406)); - while (true) - { - int num2 = num; - int num3 = -25201405; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -25201406; - break; - case 2: - _206E_206F_200C_206F_206C_200F_202A_200D_206A_206B_206A_206A_206F_202C_206F_202E_206F_206B_200F_202E_206A_200B_206E_202A_202D_206C_206C_206D_206B_200D_202C_206F_202B_200F_202A_200E_206D_200C_206D_200E_202E(stringBuilder, '}'); - return _200B_202B_206A_200D_200F_202B_200E_202D_206A_200D_206A_202C_206D_202B_200C_200D_206F_206B_202D_206C_206D_200F_200D_206F_202A_206A_200C_200F_206F_202A_202E_200B_206C_202B_206B_206D_206A_202B_206B_206F_202E((object)stringBuilder); - case 1: - _206E_206F_200C_206F_206C_200F_202A_200D_206A_206B_206A_206A_206F_202C_206F_202E_206F_206B_200F_202E_206A_200B_206E_202A_202D_206C_206C_206D_206B_200D_202C_206F_202B_200F_202A_200E_206D_200C_206D_200E_202E(stringBuilder, ' '); - num = -25201407; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206C_200D_206D_202D_202C_206F_206E_200B_202C_206F_200D_200E_200D_206C_202C_200E_202B_206D_206A_202A_206E_206D_202E_206D_206E_200F_200C_202D_206B_206D_206A_202D_202B_202D_200E_202D_200F_206C_206D_200D_202E(); - _206F_202A_200B_202D_206E_206F_206B_200F_200D_200D_206A_202C_206C_200B_200F_206C_206B_206C_202B_206D_200B_200E_206E_206D_200B_200D_206D_206A_202B_200B_206A_206D_202B_206F_206D_206A_200B_202C_206B_202D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(324724893)); - _206C_200B_200C_202D_206B_206B_200C_206B_206E_200C_200B_202E_200E_202B_202D_200D_202D_200F_206A_202C_206F_202D_200E_200B_202C_206A_200D_202A_200D_200C_202B_200D_200C_206E_206A_206F_206E_206B_206A_206C_202E(builder, (object)CityName); - _206F_202A_200B_202D_206E_206F_206B_200F_200D_200D_206A_202C_206C_200B_200F_206C_206B_206C_202B_206D_200B_200E_206E_206D_200B_200D_206D_206A_202B_200B_206A_206D_202B_206F_206D_206A_200B_202C_206B_202D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(799410148)); - _206C_200B_200C_202D_206B_206B_200C_206B_206E_200C_200B_202E_200E_202B_202D_200D_202D_200F_206A_202C_206F_202D_200E_200B_202C_206A_200D_202A_200D_200C_202B_200D_200C_206E_206A_206F_206E_206B_206A_206C_202E(builder, (object)Shards); - return true; - } - - [CompilerGenerated] - public bool Equals(CityGroup? other) - { - int num = (((object)this == other) ? (-153552481) : (-153552482)); - while (true) - { - int num2 = num; - int num3 = -153552483; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - num = -153552482; - break; - case 1: - return EqualityComparer<ImmutableList<AetheryteEntry>>.Default.Equals(Shards, other.Shards); - case 2: - return true; - case 0: - num = ((!_206C_200B_206A_202D_202A_200E_200E_202A_202D_202A_202A_202B_206B_206D_206A_200B_200B_200B_206E_200D_202C_206C_206D_206E_200B_206F_202B_200C_206F_202E_206C_202E_200E_206A_202D_206C_206B_206C_202B_206D_202E(EqualityContract, other.EqualityContract)) ? (-153552485) : (-153552487)); - break; - case 3: - num = (((object)other == null) ? (-153552485) : (-153552483)); - break; - case 6: - return false; - case 4: - num = ((!EqualityComparer<string>.Default.Equals(CityName, other.CityName)) ? (-153552485) : (-153552484)); - break; - } - } - } - - bool IEquatable<CityGroup>.Equals(CityGroup? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202D_200F_206B_200F_202D_202B_200B_200C_200D_206E_200C_206D_202D_200F_206C_200D_202A_200E_200C_206C_206F_206C_200E_200B_206D_206E_206C_202D_206B_200F_202B_206D_206B_200F_200D_200D_202D_206C_200F_202B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200F_200D_202E_200D_200E_200B_200E_206E_202A_206F_206E_202C_206A_200B_202C_206F_200B_200D_206D_200E_206F_202E_206F_206D_206C_202D_200F_200F_200D_206B_202B_202D_202C_206B_206D_202A_206D_200F_206A_200D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206F_202A_200B_202D_206E_206F_206B_200F_200D_200D_206A_202C_206C_200B_200F_206C_206B_206C_202B_206D_200B_200E_206E_206D_200B_200D_206D_206A_202B_200B_206A_206D_202B_206F_206D_206A_200B_202C_206B_202D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206E_206F_200C_206F_206C_200F_202A_200D_206A_206B_206A_206A_206F_202C_206F_202E_206F_206B_200F_202E_206A_200B_206E_202A_202D_206C_206C_206D_206B_200D_202C_206F_202B_200F_202A_200E_206D_200C_206D_200E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200B_202B_206A_200D_200F_202B_200E_202D_206A_200D_206A_202C_206D_202B_200C_200D_206F_206B_202D_206C_206D_200F_200D_206F_202A_206A_200C_200F_206F_202A_202E_200B_206C_202B_206B_206D_206A_202B_206B_206F_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206C_200D_206D_202D_202C_206F_206E_200B_202C_206F_200D_200E_200D_206C_202C_200E_202B_206D_206A_202A_206E_206D_202E_206D_206E_200F_200C_202D_206B_206D_206A_202D_202B_202D_200E_202D_200F_206C_206D_200D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206C_200B_200C_202D_206B_206B_200C_206B_206E_200C_200B_202E_200E_202B_202D_200D_202D_200F_206A_202C_206F_202D_200E_200B_202C_206A_200D_202A_200D_200C_202B_200D_200C_206E_206A_206F_206E_206B_206A_206C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206C_200B_206A_202D_202A_200E_200E_202A_202D_202A_202A_202B_206B_206D_206A_200B_200B_200B_206E_200D_202C_206C_206D_206E_200B_206F_202B_200C_206F_202E_206C_202E_200E_206A_202D_206C_206B_206C_202B_206D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - private sealed record ZoneCurrentGroup(ushort TerritoryId, string ZoneName, ImmutableList<CurrentEntry> Currents) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206C_206B_202B_200B_206D_202E_200E_200B_206B_200B_202C_200E_206A_202C_202E_200B_206C_200C_202B_202A_206D_200E_200C_206D_200D_202A_200E_206A_206D_206A_200E_202C_206C_200B_202B_206C_200E_200C_206E_202B_202E(typeof(ZoneCurrentGroup).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206F_200F_202B_206E_200B_206F_202A_206E_202D_206F_202D_206A_206D_200F_206D_200F_206F_202B_206C_202C_200E_200E_206C_202E_200C_200E_202E_202D_202C_206C_206B_206F_206F_200E_202A_200F_202B_202B_200C_206C_202E(); - _206D_202E_200F_200D_202E_200C_206E_200D_206D_206A_202A_202D_202A_200B_206F_200D_202B_200F_206E_206F_200F_202B_200E_202A_202E_206D_202D_200C_206A_206B_202A_200C_202A_202B_202D_206F_202B_202A_200E_206A_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(534034741)); - _206D_202E_200F_200D_202E_200C_206E_200D_206D_206A_202A_202D_202A_200B_206F_200D_202B_200F_206E_206F_200F_202B_200E_202A_202E_206D_202D_200C_206A_206B_202A_200C_202A_202B_202D_206F_202B_202A_200E_206A_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(117284107)); - int num = ((!PrintMembers(stringBuilder)) ? 2137363416 : 2137363419); - while (true) - { - int num2 = num; - int num3 = 2137363417; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 2137363419; - break; - case 2: - _200D_206A_206C_200C_206A_206D_202B_206E_202C_202A_200E_206E_202D_200B_200F_200B_206D_206F_200D_200F_200D_206D_200B_206E_202B_206F_206A_206E_206B_206D_206D_206B_200B_200C_206F_206B_200D_206B_200C_206A_202E(stringBuilder, ' '); - num = 2137363416; - break; - case 1: - _200D_206A_206C_200C_206A_206D_202B_206E_202C_202A_200E_206E_202D_200B_200F_200B_206D_206F_200D_200F_200D_206D_200B_206E_202B_206F_206A_206E_206B_206D_206D_206B_200B_200C_206F_206B_200D_206B_200C_206A_202E(stringBuilder, '}'); - return _200D_206C_206A_200B_206C_206D_202D_202B_202B_206A_200C_202C_206E_202B_202D_206D_200D_200B_206A_206B_206C_206E_202D_206B_200F_200B_202E_206F_202E_206C_206E_206F_200E_206C_200D_202E_206E_202E_206F_202B_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206C_200F_200C_200B_202C_200C_202D_202A_206F_200C_202C_206E_202E_200C_202A_200F_206E_200D_200F_206C_202B_200F_202D_200C_202C_206D_202E_200C_202E_206D_200C_206D_206E_202E_202D_202D_200E_206C_206A_202A_202E(); - _206D_202E_200F_200D_202E_200C_206E_200D_206D_206A_202A_202D_202A_200B_206F_200D_202B_200F_206E_206F_200F_202B_200E_202A_202E_206D_202D_200C_206A_206B_202A_200C_202A_202B_202D_206F_202B_202A_200E_206A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1030915870)); - _206D_202E_200F_200D_202E_200C_206E_200D_206D_206A_202A_202D_202A_200B_206F_200D_202B_200F_206E_206F_200F_202B_200E_202A_202E_206D_202D_200C_206A_206B_202A_200C_202A_202B_202D_206F_202B_202A_200E_206A_202E(builder, TerritoryId.ToString()); - _206D_202E_200F_200D_202E_200C_206E_200D_206D_206A_202A_202D_202A_200B_206F_200D_202B_200F_206E_206F_200F_202B_200E_202A_202E_206D_202D_200C_206A_206B_202A_200C_202A_202B_202D_206F_202B_202A_200E_206A_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1005439167)); - _202E_200C_200F_200D_206C_202D_202A_202C_200C_202A_200D_206B_206D_202A_200F_202E_200F_206C_200F_202E_200D_206B_202B_202D_206F_202A_206E_200D_206F_202C_202D_206C_200F_200E_200D_206A_206E_206E_200D_202C_202E(builder, (object)ZoneName); - _206D_202E_200F_200D_202E_200C_206E_200D_206D_206A_202A_202D_202A_200B_206F_200D_202B_200F_206E_206F_200F_202B_200E_202A_202E_206D_202D_200C_206A_206B_202A_200C_202A_202B_202D_206F_202B_202A_200E_206A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-107322576)); - _202E_200C_200F_200D_206C_202D_202A_202C_200C_202A_200D_206B_206D_202A_200F_202E_200F_206C_200F_202E_200D_206B_202B_202D_206F_202A_206E_200D_206F_202C_202D_206C_200F_200E_200D_206A_206E_206E_200D_202C_202E(builder, (object)Currents); - return true; - } - - [CompilerGenerated] - public bool Equals(ZoneCurrentGroup? other) - { - int num = (((object)this == other) ? 241157465 : 241157466); - while (true) - { - int num2 = num; - int num3 = 241157468; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 241157466; - break; - case 4: - return false; - case 7: - num = ((!_206E_206B_202D_202D_206A_200D_206C_200E_206D_202C_202E_202B_206C_206E_206D_202D_202E_206C_202E_202B_202E_202E_206B_200C_200E_200E_202E_206F_202D_202B_206A_200E_206C_200C_206C_200D_206A_206A_202C_202E(EqualityContract, other.EqualityContract)) ? 241157464 : 241157468); - break; - case 6: - num = (((object)other == null) ? 241157464 : 241157467); - break; - case 3: - return EqualityComparer<ImmutableList<CurrentEntry>>.Default.Equals(Currents, other.Currents); - case 0: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? 241157464 : 241157469); - break; - case 1: - num = ((!EqualityComparer<string>.Default.Equals(ZoneName, other.ZoneName)) ? 241157464 : 241157471); - break; - case 5: - return true; - } - } - } - - bool IEquatable<ZoneCurrentGroup>.Equals(ZoneCurrentGroup? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206C_206B_202B_200B_206D_202E_200E_200B_206B_200B_202C_200E_206A_202C_202E_200B_206C_200C_202B_202A_206D_200E_200C_206D_200D_202A_200E_206A_206D_206A_200E_202C_206C_200B_202B_206C_200E_200C_206E_202B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206F_200F_202B_206E_200B_206F_202A_206E_202D_206F_202D_206A_206D_200F_206D_200F_206F_202B_206C_202C_200E_200E_206C_202E_200C_200E_202E_202D_202C_206C_206B_206F_206F_200E_202A_200F_202B_202B_200C_206C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206D_202E_200F_200D_202E_200C_206E_200D_206D_206A_202A_202D_202A_200B_206F_200D_202B_200F_206E_206F_200F_202B_200E_202A_202E_206D_202D_200C_206A_206B_202A_200C_202A_202B_202D_206F_202B_202A_200E_206A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200D_206A_206C_200C_206A_206D_202B_206E_202C_202A_200E_206E_202D_200B_200F_200B_206D_206F_200D_200F_200D_206D_200B_206E_202B_206F_206A_206E_206B_206D_206D_206B_200B_200C_206F_206B_200D_206B_200C_206A_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200D_206C_206A_200B_206C_206D_202D_202B_202B_206A_200C_202C_206E_202B_202D_206D_200D_200B_206A_206B_206C_206E_202D_206B_200F_200B_202E_206F_202E_206C_206E_206F_200E_206C_200D_202E_206E_202E_206F_202B_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206C_200F_200C_200B_202C_200C_202D_202A_206F_200C_202C_206E_202E_200C_202A_200F_206E_200D_200F_206C_202B_200F_202D_200C_202C_206D_202E_200C_202E_206D_200C_206D_206E_202E_202D_202D_200E_206C_206A_202A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202E_200C_200F_200D_206C_202D_202A_202C_200C_202A_200D_206B_206D_202A_200F_202E_200F_206C_200F_202E_200D_206B_202B_202D_206F_202A_206E_200D_206F_202C_202D_206C_200F_200E_200D_206A_206E_206E_200D_202C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206E_206B_202D_202D_206A_200D_206C_200E_206D_202C_202E_202B_206C_206E_206D_202D_202E_206C_202E_202B_202E_202E_206B_200C_200E_200E_202E_206F_202D_202B_206A_200E_206C_200C_206C_200D_206A_206A_202C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - private sealed record CurrentEntry(uint AetherCurrentId, bool IsQuestGated, uint QuestId, string QuestName) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200C_200B_206A_206E_202D_202D_200B_200B_200C_202E_200E_206B_206D_200E_202C_206B_202E_202C_200C_202A_202D_200C_202A_206E_206F_202E_206D_200C_206F_206E_200C_206B_200F_202A_206A_202D_202E_206C_200C_202B_202E(typeof(CurrentEntry).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206A_202A_206E_206D_202E_202E_206A_206A_206A_200B_206E_206F_202D_202B_200F_206D_202B_202D_202B_206B_200E_202B_202C_206A_202E_206B_202A_200C_200D_202E_206D_200F_200D_206A_202D_200B_206B_200E_202A_202B_202E(); - _200C_206B_200B_206B_200D_200B_202B_200F_206F_200F_202E_206D_202D_202E_200F_200F_206F_206E_206F_202A_202A_202D_206D_206B_200D_200D_200B_200B_202B_200E_206C_202A_200C_206D_206B_200C_200C_206E_200B_202E_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1337973380)); - _200C_206B_200B_206B_200D_200B_202B_200F_206F_200F_202E_206D_202D_202E_200F_200F_206F_206E_206F_202A_202A_202D_206D_206B_200D_200D_200B_200B_202B_200E_206C_202A_200C_206D_206B_200C_200C_206E_200B_202E_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(117284107)); - int num = ((!PrintMembers(stringBuilder)) ? (-116101333) : (-116101336)); - while (true) - { - int num2 = num; - int num3 = -116101334; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -116101336; - break; - case 1: - _202C_206A_206C_202A_206E_200C_202B_206A_206B_202E_206C_206B_206D_200F_200E_206E_206A_202B_206F_202C_200D_206B_202C_206B_202C_200C_206C_200F_200D_200E_200E_206A_202A_206C_202B_206A_202C_200B_202E_202D_202E(stringBuilder, '}'); - return _200D_202D_200C_200F_206C_202D_206A_202B_206E_202A_206D_206F_206B_202C_200F_200C_206F_202A_206B_202D_202A_206D_200D_202E_206C_202B_200E_206A_202A_202C_206D_206D_202D_206B_200F_202A_202C_200D_206B_202D_202E((object)stringBuilder); - case 2: - _202C_206A_206C_202A_206E_200C_202B_206A_206B_202E_206C_206B_206D_200F_200E_206E_206A_202B_206F_202C_200D_206B_202C_206B_202C_200C_206C_200F_200D_200E_200E_206A_202A_206C_202B_206A_202C_200B_202E_202D_202E(stringBuilder, ' '); - num = -116101333; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202B_200D_200F_200B_200B_206C_202D_206D_200F_200F_206F_200D_200B_200D_200E_202A_200F_200E_202E_200B_202E_202A_200C_202B_200C_206F_200D_206C_200C_206D_206B_200F_206D_200E_206F_202C_200D_206C_202A_206E_202E(); - _200C_206B_200B_206B_200D_200B_202B_200F_206F_200F_202E_206D_202D_202E_200F_200F_206F_206E_206F_202A_202A_202D_206D_206B_200D_200D_200B_200B_202B_200E_206C_202A_200C_206D_206B_200C_200C_206E_200B_202E_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(699491945)); - _200C_206B_200B_206B_200D_200B_202B_200F_206F_200F_202E_206D_202D_202E_200F_200F_206F_206E_206F_202A_202A_202D_206D_206B_200D_200D_200B_200B_202B_200E_206C_202A_200C_206D_206B_200C_200C_206E_200B_202E_202E(builder, AetherCurrentId.ToString()); - _200C_206B_200B_206B_200D_200B_202B_200F_206F_200F_202E_206D_202D_202E_200F_200F_206F_206E_206F_202A_202A_202D_206D_206B_200D_200D_200B_200B_202B_200E_206C_202A_200C_206D_206B_200C_200C_206E_200B_202E_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1615513651)); - _200C_206B_200B_206B_200D_200B_202B_200F_206F_200F_202E_206D_202D_202E_200F_200F_206F_206E_206F_202A_202A_202D_206D_206B_200D_200D_200B_200B_202B_200E_206C_202A_200C_206D_206B_200C_200C_206E_200B_202E_202E(builder, IsQuestGated.ToString()); - _200C_206B_200B_206B_200D_200B_202B_200F_206F_200F_202E_206D_202D_202E_200F_200F_206F_206E_206F_202A_202A_202D_206D_206B_200D_200D_200B_200B_202B_200E_206C_202A_200C_206D_206B_200C_200C_206E_200B_202E_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-794801667)); - _200C_206B_200B_206B_200D_200B_202B_200F_206F_200F_202E_206D_202D_202E_200F_200F_206F_206E_206F_202A_202A_202D_206D_206B_200D_200D_200B_200B_202B_200E_206C_202A_200C_206D_206B_200C_200C_206E_200B_202E_202E(builder, QuestId.ToString()); - _200C_206B_200B_206B_200D_200B_202B_200F_206F_200F_202E_206D_202D_202E_200F_200F_206F_206E_206F_202A_202A_202D_206D_206B_200D_200D_200B_200B_202B_200E_206C_202A_200C_206D_206B_200C_200C_206E_200B_202E_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-892118397)); - _202E_206E_202C_200D_206F_200E_202A_200D_200F_206E_200D_200E_206C_200E_200F_202C_200C_206A_202C_200B_202B_202B_206F_200B_206B_202C_200B_206C_206C_206C_200E_206D_206F_200F_200E_206B_200B_202D_206A_200F_202E(builder, (object)QuestName); - return true; - } - - [CompilerGenerated] - public bool Equals(CurrentEntry? other) - { - int num = (((object)this == other) ? 516498834 : 516498833); - while (true) - { - int num2 = num; - int num3 = 516498832; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return false; - case 1: - num = (((object)other == null) ? 516498835 : 516498839); - break; - case 6: - num = ((!EqualityComparer<uint>.Default.Equals(AetherCurrentId, other.AetherCurrentId)) ? 516498835 : 516498840); - break; - case 7: - num = ((!_200B_202C_202D_200B_200B_200B_206F_206E_200B_200C_202B_202E_202B_202A_200F_202A_200C_202E_206B_202C_200D_202A_206C_206A_206E_200D_202D_200F_206A_206A_202D_202B_200E_200B_206A_200F_206B_206D_202E_200D_202E(EqualityContract, other.EqualityContract)) ? 516498835 : 516498838); - break; - case 2: - return true; - case 5: - return EqualityComparer<string>.Default.Equals(QuestName, other.QuestName); - case 0: - num = ((!EqualityComparer<uint>.Default.Equals(QuestId, other.QuestId)) ? 516498835 : 516498837); - break; - case 8: - num = ((!EqualityComparer<bool>.Default.Equals(IsQuestGated, other.IsQuestGated)) ? 516498835 : 516498832); - break; - case 4: - num = 516498833; - break; - } - } - } - - bool IEquatable<CurrentEntry>.Equals(CurrentEntry? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200C_200B_206A_206E_202D_202D_200B_200B_200C_202E_200E_206B_206D_200E_202C_206B_202E_202C_200C_202A_202D_200C_202A_206E_206F_202E_206D_200C_206F_206E_200C_206B_200F_202A_206A_202D_202E_206C_200C_202B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206A_202A_206E_206D_202E_202E_206A_206A_206A_200B_206E_206F_202D_202B_200F_206D_202B_202D_202B_206B_200E_202B_202C_206A_202E_206B_202A_200C_200D_202E_206D_200F_200D_206A_202D_200B_206B_200E_202A_202B_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200C_206B_200B_206B_200D_200B_202B_200F_206F_200F_202E_206D_202D_202E_200F_200F_206F_206E_206F_202A_202A_202D_206D_206B_200D_200D_200B_200B_202B_200E_206C_202A_200C_206D_206B_200C_200C_206E_200B_202E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202C_206A_206C_202A_206E_200C_202B_206A_206B_202E_206C_206B_206D_200F_200E_206E_206A_202B_206F_202C_200D_206B_202C_206B_202C_200C_206C_200F_200D_200E_200E_206A_202A_206C_202B_206A_202C_200B_202E_202D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200D_202D_200C_200F_206C_202D_206A_202B_206E_202A_206D_206F_206B_202C_200F_200C_206F_202A_206B_202D_202A_206D_200D_202E_206C_202B_200E_206A_202A_202C_206D_206D_202D_206B_200F_202A_202C_200D_206B_202D_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202B_200D_200F_200B_200B_206C_202D_206D_200F_200F_206F_200D_200B_200D_200E_202A_200F_200E_202E_200B_202E_202A_200C_202B_200C_206F_200D_206C_200C_206D_206B_200F_206D_200E_206F_202C_200D_206C_202A_206E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202E_206E_202C_200D_206F_200E_202A_200D_200F_206E_200D_200E_206C_200E_200F_202C_200C_206A_202C_200B_202B_202B_206F_200B_206B_202C_200B_206C_206C_206C_200E_206D_206F_200F_200E_206B_200B_202D_206A_200F_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200B_202C_202D_200B_200B_200B_206F_206E_200B_200C_202B_202E_202B_202A_200F_202A_200C_202E_206B_202C_200D_202A_206C_206A_206E_200D_202D_200F_206A_206A_202D_202B_200E_200B_206A_200F_206B_206D_202E_200D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - private sealed record ExpansionGroup<T>(string ExpansionName, ImmutableList<T> Items, byte SortOrder = 0) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206E_202D_206E_206F_200E_202D_200D_202B_200B_200D_206F_206F_206A_200E_206E_206C_202A_206A_200D_202C_206F_202B_200D_206A_200B_206C_202D_200B_200B_206B_206A_200B_206A_206F_200F_206A_206C_202E_202C_202B_202E(typeof(ExpansionGroup<T>).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206F_206B_206D_200E_202D_202C_200D_200F_202D_206D_202C_206B_200B_206C_200D_202D_206E_202C_202A_202D_202E_206E_200B_206A_206A_206F_200C_206C_206D_202A_202B_202A_206E_206A_200D_202B_206D_206F_206E_206D_202E(); - _200C_200D_200B_200E_200C_206F_206E_206C_200F_206F_206C_200B_200F_202D_202A_206D_200B_200D_202D_206E_206E_206C_200D_206F_200B_202B_202C_202D_206F_202A_202D_202A_206B_206D_200F_206F_200B_200B_206D_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1305703596)); - _200C_200D_200B_200E_200C_206F_206E_206C_200F_206F_206C_200B_200F_202D_202A_206D_200B_200D_202D_206E_206E_206C_200D_206F_200B_202B_202C_202D_206F_202A_202D_202A_206B_206D_200F_206F_200B_200B_206D_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1344697862)); - int num = ((!PrintMembers(stringBuilder)) ? 920434898 : 920434899); - while (true) - { - int num2 = num; - int num3 = 920434898; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _202E_200F_200B_206F_202A_202A_202E_202B_202D_206E_200D_206F_200C_202D_200B_206D_200E_202E_206D_206B_200B_200D_202B_202E_202A_202E_206A_200B_206F_200F_206C_206C_206B_202B_206E_200E_206F_200D_200F_202E_202E(stringBuilder, '}'); - return _200E_206B_202C_202C_206F_206A_200E_206A_206D_200E_202B_200B_200B_206A_206B_202E_202A_202E_206D_200F_202C_200C_200E_202C_206F_200D_206C_206E_206F_200F_202A_206C_206D_206F_202C_200C_206A_200B_206B_202C_202E((object)stringBuilder); - case 1: - _202E_200F_200B_206F_202A_202A_202E_202B_202D_206E_200D_206F_200C_202D_200B_206D_200E_202E_206D_206B_200B_200D_202B_202E_202A_202E_206A_200B_206F_200F_206C_206C_206B_202B_206E_200E_206F_200D_200F_202E_202E(stringBuilder, ' '); - num = 920434898; - break; - case 2: - num = 920434899; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206D_202D_202A_206F_200F_206B_200D_200C_200D_200C_200D_202A_206D_206E_206C_206A_202C_206B_206E_202A_206F_200D_202A_206E_202C_202E_200B_206E_206C_206E_200B_202B_200B_202C_206B_202D_202A_202B_206D_206A_202E(); - _200C_200D_200B_200E_200C_206F_206E_206C_200F_206F_206C_200B_200F_202D_202A_206D_200B_200D_202D_206E_206E_206C_200D_206F_200B_202B_202C_202D_206F_202A_202D_202A_206B_206D_200F_206F_200B_200B_206D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1229333129)); - _206E_200D_202E_200C_200D_206D_202B_206D_202B_200B_206E_200C_206D_206B_206B_206B_200B_200C_200E_202B_206D_200C_200B_206E_206F_206D_206C_202D_206F_202D_206D_202D_200B_200B_200E_206E_206B_200D_200E_200E_202E(builder, (object)ExpansionName); - _200C_200D_200B_200E_200C_206F_206E_206C_200F_206F_206C_200B_200F_202D_202A_206D_200B_200D_202D_206E_206E_206C_200D_206F_200B_202B_202C_202D_206F_202A_202D_202A_206B_206D_200F_206F_200B_200B_206D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1428745784)); - _206E_200D_202E_200C_200D_206D_202B_206D_202B_200B_206E_200C_206D_206B_206B_206B_200B_200C_200E_202B_206D_200C_200B_206E_206F_206D_206C_202D_206F_202D_206D_202D_200B_200B_200E_206E_206B_200D_200E_200E_202E(builder, (object)Items); - _200C_200D_200B_200E_200C_206F_206E_206C_200F_206F_206C_200B_200F_202D_202A_206D_200B_200D_202D_206E_206E_206C_200D_206F_200B_202B_202C_202D_206F_202A_202D_202A_206B_206D_200F_206F_200B_200B_206D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(507871010)); - _200C_200D_200B_200E_200C_206F_206E_206C_200F_206F_206C_200B_200F_202D_202A_206D_200B_200D_202D_206E_206E_206C_200D_206F_200B_202B_202C_202D_206F_202A_202D_202A_206B_206D_200F_206F_200B_200B_206D_202E(builder, SortOrder.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(ExpansionGroup<T>? other) - { - int num = (((object)this == other) ? 73841765 : 73841760); - while (true) - { - int num2 = num; - int num3 = 73841767; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = ((!EqualityComparer<string>.Default.Equals(ExpansionName, other.ExpansionName)) ? 73841761 : 73841763); - break; - case 2: - return true; - case 7: - num = (((object)other == null) ? 73841761 : 73841762); - break; - case 4: - num = ((!EqualityComparer<ImmutableList<T>>.Default.Equals(Items, other.Items)) ? 73841761 : 73841766); - break; - case 6: - return false; - case 5: - num = ((!_202B_206A_200D_206B_200D_200D_202A_200B_200C_206E_206A_206F_206C_206A_200E_202C_200F_206C_200D_206F_202C_200C_202D_202A_200D_202A_202D_202A_202A_200B_202D_202E_200F_206F_202A_206F_200F_206E_200E_202D_202E(EqualityContract, other.EqualityContract)) ? 73841761 : 73841767); - break; - case 3: - num = 73841760; - break; - case 1: - return EqualityComparer<byte>.Default.Equals(SortOrder, other.SortOrder); - } - } - } - - bool IEquatable<ExpansionGroup<T>>.Equals(ExpansionGroup<T>? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206E_202D_206E_206F_200E_202D_200D_202B_200B_200D_206F_206F_206A_200E_206E_206C_202A_206A_200D_202C_206F_202B_200D_206A_200B_206C_202D_200B_200B_206B_206A_200B_206A_206F_200F_206A_206C_202E_202C_202B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206F_206B_206D_200E_202D_202C_200D_200F_202D_206D_202C_206B_200B_206C_200D_202D_206E_202C_202A_202D_202E_206E_200B_206A_206A_206F_200C_206C_206D_202A_202B_202A_206E_206A_200D_202B_206D_206F_206E_206D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200C_200D_200B_200E_200C_206F_206E_206C_200F_206F_206C_200B_200F_202D_202A_206D_200B_200D_202D_206E_206E_206C_200D_206F_200B_202B_202C_202D_206F_202A_202D_202A_206B_206D_200F_206F_200B_200B_206D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202E_200F_200B_206F_202A_202A_202E_202B_202D_206E_200D_206F_200C_202D_200B_206D_200E_202E_206D_206B_200B_200D_202B_202E_202A_202E_206A_200B_206F_200F_206C_206C_206B_202B_206E_200E_206F_200D_200F_202E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200E_206B_202C_202C_206F_206A_200E_206A_206D_200E_202B_200B_200B_206A_206B_202E_202A_202E_206D_200F_202C_200C_200E_202C_206F_200D_206C_206E_206F_200F_202A_206C_206D_206F_202C_200C_206A_200B_206B_202C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206D_202D_202A_206F_200F_206B_200D_200C_200D_200C_200D_202A_206D_206E_206C_206A_202C_206B_206E_202A_206F_200D_202A_206E_202C_202E_200B_206E_206C_206E_200B_202B_200B_202C_206B_202D_202A_202B_206D_206A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206E_200D_202E_200C_200D_206D_202B_206D_202B_200B_206E_200C_206D_206B_206B_206B_200B_200C_200E_202B_206D_200C_200B_206E_206F_206D_206C_202D_206F_202D_206D_202D_200B_200B_200E_206E_206B_200D_200E_200E_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202B_206A_200D_206B_200D_200D_202A_200B_200C_206E_206A_206F_206C_206A_200E_202C_200F_206C_200D_206F_202C_200C_202D_202A_200D_202A_202D_202A_202A_200B_202D_202E_200F_206F_202A_206F_200F_206E_200E_202D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } + private sealed record ExpansionGroup<T>(string ExpansionName, ImmutableList<T> Items, byte SortOrder = 0); private enum AttuneRowKind : byte { @@ -783,400 +85,6 @@ internal sealed class AttunementJournalComponent public CurrentEntry? Current { get; init; } } - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass67_0 - { - public ExcelSheet<TerritoryType> territorySheet; - - public AttunementJournalComponent _003C_003E4__this; - - public ExcelSheet<Lumina.Excel.Sheets.Aetheryte> aetheryteSheet; - - public ExcelSheet<Lumina.Excel.Sheets.Quest> questSheet; - - public Func<KeyValuePair<EAetheryteLocation, ushort>, string> _003C_003E9__17; - - public Func<AetherCurrentInfo, CurrentEntry> _003C_003E9__19; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal (string Name, byte SortOrder) _003CInitializeData_003Eb__0(AetheryteEntry a) - { - TerritoryType? rowOrDefault = territorySheet.GetRowOrDefault(a.TerritoryId); - int num = (rowOrDefault.HasValue ? 1176503751 : 1176503747); - ExVersion? exVersion = default(ExVersion?); - while (true) - { - int num2 = num; - int num3 = 1176503751; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - ExVersion? obj; - object obj2; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 2: - num = 1176503747; - continue; - case 4: - obj = null; - break; - case 3: - obj2 = exVersion.GetValueOrDefault().Name.ToString(); - goto IL_00b1; - case 1: - obj2 = null; - goto IL_00b1; - case 0: - { - obj = rowOrDefault.GetValueOrDefault().ExVersion.ValueNullable; - break; - } - IL_00b1: - if (obj2 == null) - { - obj2 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1261156168); - } - return (Name: (string)obj2, SortOrder: (byte)(exVersion?.RowId ?? 0)); - } - exVersion = obj; - num = (exVersion.HasValue ? 1176503748 : 1176503750); - } - } - - internal ushort _003CInitializeData_003Eb__4(AetheryteEntry a) - { - return _200E_200D_206B_206E_202D_206F_200E_202A_202D_206A_206A_206B_202D_202D_200E_202A_202A_202D_200D_206E_206F_200C_200E_200D_200E_200F_206C_206F_206B_206B_200F_200B_200F_200B_200D_202C_202E_206B_206F_206A_202E(_003C_003E4__this._aetheryteData).GetValueOrDefault(a.Location); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal CityGroup _003CInitializeData_003Eb__6(IGrouping<ushort, AetheryteEntry> g) - { - _003C_003Ec__DisplayClass67_1 CS_0024_003C_003E8__locals2 = new _003C_003Ec__DisplayClass67_1 - { - groupId = g.Key - }; - string text = _200E_200D_206B_206E_202D_206F_200E_202A_202D_206A_206A_206B_202D_202D_200E_202A_202A_202D_200D_206E_206F_200C_200E_200D_200E_200F_206C_206F_206B_206B_200F_200B_200F_200B_200D_202C_202E_206B_206F_206A_202E(_003C_003E4__this._aetheryteData).Where(delegate(KeyValuePair<EAetheryteLocation, ushort> kv) - { - int num7 = ((kv.Value != CS_0024_003C_003E8__locals2.groupId) ? 1506024622 : 1506024621); - while (true) - { - int num8 = num7; - int num9 = 1506024623; - int num10 = num8; - switch ((num10 | num9) - (num10 & num9)) - { - case 0: - goto IL_004d; - case 2: - return _003C_003Ec__DisplayClass67_1._202A_206F_206C_202D_200C_200F_206C_206A_206B_200E_200E_206F_206F_206F_206E_206E_206C_202D_200F_200E_200C_200D_202D_202E_200C_200E_202B_206E_206D_206A_200C_206B_206F_206E_200C_206F_202D_202C_202C_206C_202E(kv.Key); - case 1: - return false; - } - continue; - IL_004d: - num7 = 1506024621; - } - }).Select(delegate(KeyValuePair<EAetheryteLocation, ushort> kv) - { - Lumina.Excel.Sheets.Aetheryte? rowOrDefault = aetheryteSheet.GetRowOrDefault((uint)kv.Key); - int num7 = (rowOrDefault.HasValue ? 665015300 : 665015303); - while (true) - { - int num8 = num7; - int num9 = 665015301; - int num10 = num8; - switch ((num10 | num9) - (num10 & num9)) - { - case 1: - return rowOrDefault.GetValueOrDefault().PlaceName.ValueNullable?.Name.ToString(); - case 2: - return (string)null; - case 0: - goto IL_00ab; - } - continue; - IL_00ab: - num7 = 665015303; - } - }).FirstOrDefault(); - int num = ((!_200E_202C_200E_206C_206F_206C_206E_206A_200D_202A_202C_206E_202A_206A_200F_206B_206F_202B_206D_206D_202B_206B_202E_200F_200B_200B_206F_206C_200B_206D_206E_206D_202E_200D_202D_200F_200E_202B_206E_206D_202E(text)) ? 875556706 : 875556705); - while (true) - { - int num2 = num; - int num3 = 875556707; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return new CityGroup(text, g.OrderBy((AetheryteEntry a) => a.Name).ToImmutableList()); - case 2: - { - ushort territoryId = g.First().TerritoryId; - object obj = territorySheet.GetRowOrDefault(territoryId)?.PlaceName.ValueNullable?.Name.ToString(); - if (obj == null) - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(6, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(636653864)); - defaultInterpolatedStringHandler.AppendFormatted(CS_0024_003C_003E8__locals2.groupId); - obj = defaultInterpolatedStringHandler.ToStringAndClear(); - } - text = (string)obj; - num = 875556706; - break; - } - case 0: - num = 875556705; - break; - } - } - } - - internal string _003CInitializeData_003Eb__17(KeyValuePair<EAetheryteLocation, ushort> kv) - { - Lumina.Excel.Sheets.Aetheryte? rowOrDefault = aetheryteSheet.GetRowOrDefault((uint)kv.Key); - int num = (rowOrDefault.HasValue ? 665015300 : 665015303); - while (true) - { - int num2 = num; - int num3 = 665015301; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return rowOrDefault.GetValueOrDefault().PlaceName.ValueNullable?.Name.ToString(); - case 2: - return null; - case 0: - goto IL_00ab; - } - continue; - IL_00ab: - num = 665015303; - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal (ushort territoryId, string zoneName, string expansionName, byte sortOrder, ImmutableList<CurrentEntry> currents) _003CInitializeData_003Eb__9(KeyValuePair<ushort, ImmutableList<AetherCurrentInfo>> kv) - { - ushort key = kv.Key; - TerritoryType? rowOrDefault = territorySheet.GetRowOrDefault(key); - int num = (rowOrDefault.HasValue ? 1752178972 : 1752178960); - ExVersion? exVersion = default(ExVersion?); - byte item = default(byte); - string item2 = default(string); - while (true) - { - int num2 = num; - int num3 = 1752178964; - int num4 = num2; - int num5; - object obj3; - object obj2; - ExVersion? obj; - string item3; - ImmutableList<CurrentEntry> item4; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 7: - num5 = (int)exVersion.GetValueOrDefault().RowId; - goto IL_008d; - case 3: - obj3 = exVersion.GetValueOrDefault().Name.ToString(); - goto IL_00d3; - case 8: - obj2 = rowOrDefault.GetValueOrDefault().PlaceName.ValueNullable?.Name.ToString(); - goto IL_0177; - case 1: - obj3 = null; - goto IL_00d3; - case 0: - num5 = 0; - goto IL_008d; - case 2: - num = 1752178960; - continue; - case 6: - obj = rowOrDefault.GetValueOrDefault().ExVersion.ValueNullable; - break; - case 4: - obj2 = null; - goto IL_0177; - case 5: - { - obj = null; - break; - } - IL_008d: - item = (byte)num5; - num = (exVersion.HasValue ? 1752178967 : 1752178965); - continue; - IL_0177: - if (obj2 == null) - { - obj2 = key.ToString(_206B_202D_200D_200E_206C_206D_202E_200E_202C_206C_200C_200C_202B_200B_206F_202B_206C_200D_206B_206D_200E_200B_200C_202A_200D_202E_200D_200B_200D_202D_202C_206E_206E_202D_200B_200D_202E_206B_206D_200D_202E()); - } - item2 = (string)obj2; - num = (rowOrDefault.HasValue ? 1752178962 : 1752178961); - continue; - IL_00d3: - if (obj3 == null) - { - obj3 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1925248335); - } - item3 = (string)obj3; - item4 = kv.Value.Select(delegate(AetherCurrentInfo info) - { - string questName = string.Empty; - int num6 = ((!info.IsQuestGated) ? (-733306427) : (-733306432)); - Lumina.Excel.Sheets.Quest? rowOrDefault2 = default(Lumina.Excel.Sheets.Quest?); - while (true) - { - int num7 = num6; - int num8 = -733306428; - int num9 = num7; - object obj4; - switch ((num9 | num8) - (num9 & num8)) - { - case 5: - rowOrDefault2 = questSheet.GetRowOrDefault(info.QuestId); - num6 = (rowOrDefault2.HasValue ? (-733306425) : (-733306426)); - break; - case 3: - obj4 = rowOrDefault2.GetValueOrDefault().Name.ToString(); - goto IL_00b4; - case 2: - obj4 = null; - goto IL_00b4; - case 0: - num6 = -733306432; - break; - case 4: - num6 = ((info.QuestId == 0) ? (-733306427) : (-733306431)); - break; - case 1: - { - return new CurrentEntry(info.AetherCurrentId, info.IsQuestGated, info.QuestId, questName); - } - IL_00b4: - if (obj4 == null) - { - obj4 = string.Empty; - } - questName = (string)obj4; - num6 = -733306427; - break; - } - } - }).ToImmutableList(); - return (territoryId: key, zoneName: item2, expansionName: item3, sortOrder: item, currents: item4); - } - exVersion = obj; - num = (exVersion.HasValue ? 1752178963 : 1752178964); - } - } - - internal CurrentEntry _003CInitializeData_003Eb__19(AetherCurrentInfo info) - { - string questName = string.Empty; - int num = ((!info.IsQuestGated) ? (-733306427) : (-733306432)); - Lumina.Excel.Sheets.Quest? rowOrDefault = default(Lumina.Excel.Sheets.Quest?); - while (true) - { - int num2 = num; - int num3 = -733306428; - int num4 = num2; - object obj; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - rowOrDefault = questSheet.GetRowOrDefault(info.QuestId); - num = (rowOrDefault.HasValue ? (-733306425) : (-733306426)); - break; - case 3: - obj = rowOrDefault.GetValueOrDefault().Name.ToString(); - goto IL_00b4; - case 2: - obj = null; - goto IL_00b4; - case 0: - num = -733306432; - break; - case 4: - num = ((info.QuestId == 0) ? (-733306427) : (-733306431)); - break; - case 1: - { - return new CurrentEntry(info.AetherCurrentId, info.IsQuestGated, info.QuestId, questName); - } - IL_00b4: - if (obj == null) - { - obj = string.Empty; - } - questName = (string)obj; - num = -733306427; - break; - } - } - } - - static ReadOnlyDictionary<EAetheryteLocation, ushort> _200E_200D_206B_206E_202D_206F_200E_202A_202D_206A_206A_206B_202D_202D_200E_202A_202A_202D_200D_206E_206F_200C_200E_200D_200E_200F_206C_206F_206B_206B_200F_200B_200F_200B_200D_202C_202E_206B_206F_206A_202E(AetheryteData P_0) - { - return P_0.AethernetGroups; - } - - static bool _200E_202C_200E_206C_206F_206C_206E_206A_200D_202A_202C_206E_202A_206A_200F_206B_206F_202B_206D_206D_202B_206B_202E_200F_200B_200B_206F_206C_200B_206D_206E_206D_202E_200D_202D_200F_200E_202B_206E_206D_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static CultureInfo _206B_202D_200D_200E_206C_206D_202E_200E_202C_206C_200C_200C_202B_200B_206F_202B_206C_200D_206B_206D_200E_200B_200C_202A_200D_202E_200D_200B_200D_202D_202C_206E_206E_202D_200B_200D_202E_206B_206D_200D_202E() - { - return CultureInfo.InvariantCulture; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass67_1 - { - public ushort groupId; - - internal bool _003CInitializeData_003Eb__16(KeyValuePair<EAetheryteLocation, ushort> kv) - { - int num = ((kv.Value != groupId) ? 1506024622 : 1506024621); - while (true) - { - int num2 = num; - int num3 = 1506024623; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004d; - case 2: - return _202A_206F_206C_202D_200C_200F_206C_206A_206B_200E_200E_206F_206F_206F_206E_206E_206C_202D_200F_200E_200C_200D_202D_202E_200C_200E_202B_206E_206D_206A_200C_206B_206F_206E_200C_206F_202D_202C_202C_206C_202E(kv.Key); - case 1: - return false; - } - continue; - IL_004d: - num = 1506024621; - } - } - - static bool _202A_206F_206C_202D_200C_200F_206C_206A_206B_200E_200E_206F_206F_206F_206E_206E_206C_202D_200F_200E_200C_200D_202D_202E_200C_200E_202B_206E_206D_206A_200C_206B_206F_206E_200C_206F_202D_202C_202C_206C_202E(EAetheryteLocation P_0) - { - return AetheryteConverter.IsLargeAetheryte(P_0); - } - } - private readonly AetheryteData _aetheryteData; private readonly AetherCurrentData _aetherCurrentData; @@ -1309,7 +217,7 @@ internal sealed class AttunementJournalComponent private const string SectionCurrents = "Aether Currents"; - private static readonly int CountPadWidth = _206C_200C_200B_206C_202E_202B_206D_206C_202A_206C_206A_200D_206A_206F_206D_200C_200F_200D_202D_206D_200F_202C_202B_206C_202E_202E_202B_206A_206D_206C_202D_200B_200D_206A_200F_206A_200D_200F_200B_206E_202E(9999.ToString(_202A_200B_206B_206F_202C_200C_200E_200D_206C_202C_202A_202D_202A_200B_206A_206A_206B_202E_206B_202D_206F_202C_202B_200D_206E_206B_206A_206D_200F_206F_202E_200D_206F_202B_202A_206E_206F_200D_206F_202A_202E())); + private static readonly int CountPadWidth = 9999.ToString(CultureInfo.CurrentCulture).Length; public Action<string>? SelectTabAction { get; set; } @@ -1351,371 +259,81 @@ internal sealed class AttunementJournalComponent List<AetheryteEntry> list = new List<AetheryteEntry>(); List<AetheryteEntry> list2 = new List<AetheryteEntry>(); ExcelSheet<PlaceName> excelSheet = _dataManager.GetExcelSheet<PlaceName>(); - IEnumerator<EAetheryteLocation> enumerator = _200F_202C_200C_206C_206E_206E_200F_200F_206F_206D_206D_206B_200E_206C_202B_206F_202B_206F_206A_202A_200D_200D_202D_202D_202C_202E_206A_202D_206A_200F_202E_206F_202A_200E_206B_202A_206D_202C_202D_206F_202E(_aetheryteData).Keys.GetEnumerator(); - try + foreach (EAetheryteLocation key2 in _aetheryteData.Locations.Keys) { - int num = -1496383647; - AetheryteEntry item = default(AetheryteEntry); - EAetheryteLocation current = default(EAetheryteLocation); - ushort valueOrDefault = default(ushort); - Lumina.Excel.Sheets.Aetheryte? rowOrDefault = default(Lumina.Excel.Sheets.Aetheryte?); - string name = default(string); - uint value = default(uint); - while (true) + ushort valueOrDefault = _aetheryteData.TerritoryIds.GetValueOrDefault(key2); + Lumina.Excel.Sheets.Aetheryte? rowOrDefault = aetheryteSheet.GetRowOrDefault((uint)key2); + if (!rowOrDefault.HasValue) { - int num2 = num; - int num3 = -1496383636; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - object obj; - int num7; - switch (num5 - (num6 + num6)) + uint value; + string name = ((!FirmamentPlaceNameIds.TryGetValue(key2, out value)) ? key2.ToString() : (excelSheet.GetRowOrDefault(value)?.Name.ToString() ?? key2.ToString())); + bool num = _aetheryteData.AethernetGroups.ContainsKey(key2) && !AetheryteConverter.IsLargeAetheryte(key2); + AetheryteEntry item = new AetheryteEntry(key2, name, valueOrDefault); + if (num) { - default: - continue; - case 5: - num = -1496383647; - continue; - case 12: list2.Add(item); - num = -1496383647; - continue; - case 1: - current = enumerator.Current; - valueOrDefault = _200C_206F_200C_200E_200B_206B_206D_202A_206A_200B_202E_202D_206B_200E_206B_200E_202D_200F_206C_200B_200E_206A_200F_206E_202A_202E_206E_200B_206E_202A_200F_202E_202E_202B_200C_200B_202A_200F_206D_206E_202E(_aetheryteData).GetValueOrDefault(current); - rowOrDefault = aetheryteSheet.GetRowOrDefault((uint)current); - num = (rowOrDefault.HasValue ? (-1496383640) : (-1496383638)); - continue; - case 7: - name = rowOrDefault.Value.AethernetName.ValueNullable?.Name.ToString() ?? current.ToString(); - list2.Add(new AetheryteEntry(current, name, valueOrDefault)); - num = -1496383647; - continue; - case 9: - name = rowOrDefault.Value.PlaceName.ValueNullable?.Name.ToString() ?? current.ToString(); - list.Add(new AetheryteEntry(current, name, valueOrDefault)); - num = -1496383647; - continue; - case 4: - num = ((!_202E_206A_200B_206C_202C_206D_206F_200B_206B_206E_206E_206E_206B_206E_202D_200B_206A_200E_206E_200E_200E_200D_202E_202B_202E_206C_202C_206E_202B_206E_206E_202C_206B_202D_200C_206D_206A_200C_200B_206D_202E(current)) ? (-1496383637) : (-1496383643)); - continue; - case 11: - obj = excelSheet.GetRowOrDefault(value)?.Name.ToString() ?? current.ToString(); - goto IL_02e2; - case 13: - num = (_206B_206A_202E_200B_202E_202D_202C_202A_206D_200C_200D_200B_200E_206E_202A_200B_202B_202A_200B_202B_200D_206C_206C_200E_206A_206B_206C_206B_206B_200F_202E_206C_202A_206A_202A_202C_206F_206C_206B_206A_202E((IEnumerator)enumerator) ? (-1496383635) : (-1496383644)); - continue; - case 6: - num = (FirmamentPlaceNameIds.TryGetValue(current, out value) ? (-1496383641) : (-1496383633)); - continue; - case 10: + } + else + { list.Add(item); - num = -1496383647; - continue; - case 2: - num7 = 0; - break; - case 0: - num7 = ((!_202E_206A_200B_206C_202C_206D_206F_200B_206B_206E_206E_206E_206B_206E_202D_200B_206A_200E_206E_200E_200E_200D_202E_202B_202E_206C_202C_206E_202B_206E_206E_202C_206B_202D_200C_206D_206A_200C_200B_206D_202E(current)) ? 1 : 0); - break; - case 3: - obj = current.ToString(); - goto IL_02e2; - case 8: - goto end_IL_00a7; - IL_02e2: - name = (string)obj; - num = ((!_200F_206F_202E_202D_202D_206B_200C_206D_202B_202E_206B_200F_202E_200B_200F_206B_200F_200C_202A_206D_206B_206E_200D_206E_206C_202A_200F_200B_202B_206B_206C_200C_200B_206D_200E_206C_206B_206C_200B_202C_202E(_aetheryteData).ContainsKey(current)) ? (-1496383634) : (-1496383636)); - continue; } - item = new AetheryteEntry(current, name, valueOrDefault); - num = ((num7 == 0) ? (-1496383642) : (-1496383648)); - continue; - end_IL_00a7: - break; + } + else if (AetheryteConverter.IsLargeAetheryte(key2)) + { + string name = rowOrDefault.Value.PlaceName.ValueNullable?.Name.ToString() ?? key2.ToString(); + list.Add(new AetheryteEntry(key2, name, valueOrDefault)); + } + else + { + string name = rowOrDefault.Value.AethernetName.ValueNullable?.Name.ToString() ?? key2.ToString(); + list2.Add(new AetheryteEntry(key2, name, valueOrDefault)); } } - finally - { - int num = ((enumerator == null) ? (-1787889750) : (-1787889751)); - while (true) + _aetherytesByExpansion = (from g in list.GroupBy(delegate(AetheryteEntry a) { - int num8 = num; - int num3 = -1787889752; - int num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1787889751; - break; - case 1: - _200C_200B_200F_202E_206F_202B_202B_202B_200E_206F_206E_202D_202E_200D_206C_200C_200E_206D_206A_202B_206D_206F_202E_206A_202C_206C_202B_200B_206B_200B_202B_206C_206D_206D_206E_202D_202D_206C_200B_202E_202E((IDisposable)enumerator); - num = -1787889750; - break; - case 2: - goto end_IL_03fe; - } - continue; - end_IL_03fe: - break; - } - } - _aetherytesByExpansion = (from g in list.GroupBy([MethodImpl(MethodImplOptions.NoInlining)] (AetheryteEntry a) => - { - TerritoryType? rowOrDefault2 = territorySheet.GetRowOrDefault(a.TerritoryId); - int num9 = (rowOrDefault2.HasValue ? 1176503751 : 1176503747); - ExVersion? exVersion = default(ExVersion?); - while (true) - { - int num10 = num9; - int num11 = 1176503751; - int num12 = num10; - int num13 = num12 + num11; - int num14 = num12 & num11; - ExVersion? obj2; - object obj3; - switch (num13 - (num14 + num14)) - { - default: - continue; - case 2: - num9 = 1176503747; - continue; - case 4: - obj2 = null; - break; - case 3: - obj3 = exVersion.GetValueOrDefault().Name.ToString(); - goto IL_00b1; - case 1: - obj3 = null; - goto IL_00b1; - case 0: - { - obj2 = rowOrDefault2.GetValueOrDefault().ExVersion.ValueNullable; - break; - } - IL_00b1: - if (obj3 == null) - { - obj3 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1261156168); - } - return (Name: (string)obj3, SortOrder: (byte)(exVersion?.RowId ?? 0)); - } - exVersion = obj2; - num9 = (exVersion.HasValue ? 1176503748 : 1176503750); - } + ExVersion? exVersion = territorySheet.GetRowOrDefault(a.TerritoryId)?.ExVersion.ValueNullable; + return (Name: exVersion?.Name.ToString() ?? "A Realm Reborn", SortOrder: (byte)(exVersion?.RowId ?? 0)); }) orderby g.Key.SortOrder select new ExpansionGroup<AetheryteEntry>(g.Key.Name, g.OrderBy((AetheryteEntry a) => a.Name).ToImmutableList(), g.Key.SortOrder)).ToImmutableList(); _aetheryteTotal = _aetherytesByExpansion.Sum((ExpansionGroup<AetheryteEntry> g) => g.Items.Count); _aethernetByCity = (from g in (from a in list2 - group a by _003C_003Ec__DisplayClass67_0._200E_200D_206B_206E_202D_206F_200E_202A_202D_206A_206A_206B_202D_202D_200E_202A_202A_202D_200D_206E_206F_200C_200E_200D_200E_200F_206C_206F_206B_206B_200F_200B_200F_200B_200D_202C_202E_206B_206F_206A_202E(_aetheryteData).GetValueOrDefault(a.Location) into g + group a by _aetheryteData.AethernetGroups.GetValueOrDefault(a.Location) into g where g.Key != 0 - select g).Select([MethodImpl(MethodImplOptions.NoInlining)] (IGrouping<ushort, AetheryteEntry> g) => + select g).Select(delegate(IGrouping<ushort, AetheryteEntry> g) { ushort groupId = g.Key; - string text = _003C_003Ec__DisplayClass67_0._200E_200D_206B_206E_202D_206F_200E_202A_202D_206A_206A_206B_202D_202D_200E_202A_202A_202D_200D_206E_206F_200C_200E_200D_200E_200F_206C_206F_206B_206B_200F_200B_200F_200B_200D_202C_202E_206B_206F_206A_202E(_aetheryteData).Where(delegate(KeyValuePair<EAetheryteLocation, ushort> kv) + string text = (from kv in _aetheryteData.AethernetGroups + where kv.Value == groupId && AetheryteConverter.IsLargeAetheryte(kv.Key) + select aetheryteSheet.GetRowOrDefault((uint)kv.Key)?.PlaceName.ValueNullable?.Name.ToString()).FirstOrDefault(); + if (string.IsNullOrEmpty(text)) { - int num15 = ((kv.Value != groupId) ? 1506024622 : 1506024621); - while (true) - { - int num16 = num15; - int num17 = 1506024623; - int num18 = num16; - switch ((num18 | num17) - (num18 & num17)) - { - case 0: - goto IL_004d; - case 2: - return _003C_003Ec__DisplayClass67_1._202A_206F_206C_202D_200C_200F_206C_206A_206B_200E_200E_206F_206F_206F_206E_206E_206C_202D_200F_200E_200C_200D_202D_202E_200C_200E_202B_206E_206D_206A_200C_206B_206F_206E_200C_206F_202D_202C_202C_206C_202E(kv.Key); - case 1: - return false; - } - continue; - IL_004d: - num15 = 1506024621; - } - }).Select(delegate(KeyValuePair<EAetheryteLocation, ushort> kv) - { - Lumina.Excel.Sheets.Aetheryte? rowOrDefault2 = aetheryteSheet.GetRowOrDefault((uint)kv.Key); - int num15 = (rowOrDefault2.HasValue ? 665015300 : 665015303); - while (true) - { - int num16 = num15; - int num17 = 665015301; - int num18 = num16; - switch ((num18 | num17) - (num18 & num17)) - { - case 1: - return rowOrDefault2.GetValueOrDefault().PlaceName.ValueNullable?.Name.ToString(); - case 2: - return (string)null; - case 0: - goto IL_00ab; - } - continue; - IL_00ab: - num15 = 665015303; - } - }) - .FirstOrDefault(); - int num9 = ((!_003C_003Ec__DisplayClass67_0._200E_202C_200E_206C_206F_206C_206E_206A_200D_202A_202C_206E_202A_206A_200F_206B_206F_202B_206D_206D_202B_206B_202E_200F_200B_200B_206F_206C_200B_206D_206E_206D_202E_200D_202D_200F_200E_202B_206E_206D_202E(text)) ? 875556706 : 875556705); - while (true) - { - int num10 = num9; - int num11 = 875556707; - int num12 = num10; - int num13 = num12 + num11; - int num14 = num12 & num11; - switch (num13 - (num14 + num14)) - { - case 1: - return new CityGroup(text, g.OrderBy((AetheryteEntry a) => a.Name).ToImmutableList()); - case 2: - { - ushort territoryId = g.First().TerritoryId; - object obj2 = territorySheet.GetRowOrDefault(territoryId)?.PlaceName.ValueNullable?.Name.ToString(); - if (obj2 == null) - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(6, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(636653864)); - defaultInterpolatedStringHandler.AppendFormatted(groupId); - obj2 = defaultInterpolatedStringHandler.ToStringAndClear(); - } - text = (string)obj2; - num9 = 875556706; - break; - } - case 0: - num9 = 875556705; - break; - } + ushort territoryId = g.First().TerritoryId; + text = territorySheet.GetRowOrDefault(territoryId)?.PlaceName.ValueNullable?.Name.ToString() ?? $"Group {groupId}"; } + return new CityGroup(text, g.OrderBy((AetheryteEntry a) => a.Name).ToImmutableList()); }) orderby g.CityName select g).ToImmutableList(); _aethernetTotal = _aethernetByCity.Sum((CityGroup g) => g.Shards.Count); - _currentsByExpansion = (from x in _aetherCurrentData.AllCurrentsByTerritory.Select<KeyValuePair<ushort, ImmutableList<AetherCurrentInfo>>, (ushort, string, string, byte, ImmutableList<CurrentEntry>)>([MethodImpl(MethodImplOptions.NoInlining)] (KeyValuePair<ushort, ImmutableList<AetherCurrentInfo>> kv) => + _currentsByExpansion = (from x in _aetherCurrentData.AllCurrentsByTerritory.Select<KeyValuePair<ushort, ImmutableList<AetherCurrentInfo>>, (ushort, string, string, byte, ImmutableList<CurrentEntry>)>(delegate(KeyValuePair<ushort, ImmutableList<AetherCurrentInfo>> kv) { ushort key = kv.Key; TerritoryType? rowOrDefault2 = territorySheet.GetRowOrDefault(key); - int num9 = (rowOrDefault2.HasValue ? 1752178972 : 1752178960); - ExVersion? exVersion = default(ExVersion?); - byte item2 = default(byte); - string item3 = default(string); - while (true) + string item2 = rowOrDefault2?.PlaceName.ValueNullable?.Name.ToString() ?? key.ToString(CultureInfo.InvariantCulture); + ExVersion? exVersion = rowOrDefault2?.ExVersion.ValueNullable; + byte item3 = (byte)(exVersion?.RowId ?? 0); + string item4 = exVersion?.Name.ToString() ?? "A Realm Reborn"; + ImmutableList<CurrentEntry> item5 = kv.Value.Select(delegate(AetherCurrentInfo info) { - int num10 = num9; - int num11 = 1752178964; - int num12 = num10; - int num13; - object obj4; - object obj3; - ExVersion? obj2; - string item4; - ImmutableList<CurrentEntry> item5; - switch ((num12 | num11) - (num12 & num11)) + string questName = string.Empty; + if (info.IsQuestGated && info.QuestId != 0) { - default: - continue; - case 7: - num13 = (int)exVersion.GetValueOrDefault().RowId; - goto IL_008d; - case 3: - obj4 = exVersion.GetValueOrDefault().Name.ToString(); - goto IL_00d3; - case 8: - obj3 = rowOrDefault2.GetValueOrDefault().PlaceName.ValueNullable?.Name.ToString(); - goto IL_0177; - case 1: - obj4 = null; - goto IL_00d3; - case 0: - num13 = 0; - goto IL_008d; - case 2: - num9 = 1752178960; - continue; - case 6: - obj2 = rowOrDefault2.GetValueOrDefault().ExVersion.ValueNullable; - break; - case 4: - obj3 = null; - goto IL_0177; - case 5: - { - obj2 = null; - break; - } - IL_008d: - item2 = (byte)num13; - num9 = (exVersion.HasValue ? 1752178967 : 1752178965); - continue; - IL_0177: - if (obj3 == null) - { - obj3 = key.ToString(_003C_003Ec__DisplayClass67_0._206B_202D_200D_200E_206C_206D_202E_200E_202C_206C_200C_200C_202B_200B_206F_202B_206C_200D_206B_206D_200E_200B_200C_202A_200D_202E_200D_200B_200D_202D_202C_206E_206E_202D_200B_200D_202E_206B_206D_200D_202E()); - } - item3 = (string)obj3; - num9 = (rowOrDefault2.HasValue ? 1752178962 : 1752178961); - continue; - IL_00d3: - if (obj4 == null) - { - obj4 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1925248335); - } - item4 = (string)obj4; - item5 = kv.Value.Select(delegate(AetherCurrentInfo info) - { - string questName = string.Empty; - int num14 = ((!info.IsQuestGated) ? (-733306427) : (-733306432)); - Lumina.Excel.Sheets.Quest? rowOrDefault3 = default(Lumina.Excel.Sheets.Quest?); - while (true) - { - int num15 = num14; - int num16 = -733306428; - int num17 = num15; - object obj5; - switch ((num17 | num16) - (num17 & num16)) - { - case 5: - rowOrDefault3 = questSheet.GetRowOrDefault(info.QuestId); - num14 = (rowOrDefault3.HasValue ? (-733306425) : (-733306426)); - break; - case 3: - obj5 = rowOrDefault3.GetValueOrDefault().Name.ToString(); - goto IL_00b4; - case 2: - obj5 = null; - goto IL_00b4; - case 0: - num14 = -733306432; - break; - case 4: - num14 = ((info.QuestId == 0) ? (-733306427) : (-733306431)); - break; - case 1: - { - return new CurrentEntry(info.AetherCurrentId, info.IsQuestGated, info.QuestId, questName); - } - IL_00b4: - if (obj5 == null) - { - obj5 = string.Empty; - } - questName = (string)obj5; - num14 = -733306427; - break; - } - } - }).ToImmutableList(); - return (territoryId: key, zoneName: item3, expansionName: item4, sortOrder: item2, currents: item5); + questName = questSheet.GetRowOrDefault(info.QuestId)?.Name.ToString() ?? string.Empty; } - exVersion = obj2; - num9 = (exVersion.HasValue ? 1752178963 : 1752178964); - } + return new CurrentEntry(info.AetherCurrentId, info.IsQuestGated, info.QuestId, questName); + }).ToImmutableList(); + return (territoryId: key, zoneName: item2, expansionName: item4, sortOrder: item3, currents: item5); }) where x.sortOrder > 0 group x by (expansionName: x.expansionName, sortOrder: x.sortOrder) into g @@ -1734,175 +352,54 @@ internal sealed class AttunementJournalComponent foreach (ExpansionGroup<AetheryteEntry> item in _aetherytesByExpansion) { int num2 = 0; - int num5; - int num6; - using (ImmutableList<AetheryteEntry>.Enumerator enumerator2 = item.Items.GetEnumerator()) + foreach (AetheryteEntry item2 in item.Items) { - int num3 = 1439963513; - while (true) + bool flag = _aetheryteFunctions.IsAetheryteUnlocked(item2.Location); + dictionary[item2.Location] = flag; + if (flag) { - int num4 = num3; - num5 = 1439963514; - num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) - { - case 3: - num3 = (enumerator2.MoveNext() ? 1439963512 : 1439963514); - break; - case 2: - { - AetheryteEntry current2 = enumerator2.Current; - bool flag = _aetheryteFunctions.IsAetheryteUnlocked(current2.Location); - dictionary[current2.Location] = flag; - num3 = ((!flag) ? 1439963513 : 1439963515); - break; - } - case 4: - num3 = 1439963513; - break; - case 1: - { - int num9 = num2; - num5 = 1; - num6 = num9; - int num10 = num6 ^ num5; - int num11 = num6 & num5; - num2 = num10 + (num11 + num11); - num3 = 1439963513; - break; - } - case 0: - goto end_IL_0046; - } - continue; - end_IL_0046: - break; + num2++; } } dictionary2[item.SortOrder] = num2; - int num12 = num; - num5 = num2; - num6 = num12; - int num13 = num6 ^ num5; - int num14 = num6 & num5; - num = num13 + (num14 + num14); + num += num2; } Dictionary<string, int> dictionary3 = new Dictionary<string, int>(); - int num15 = 0; - foreach (CityGroup item2 in _aethernetByCity) + int num3 = 0; + foreach (CityGroup item3 in _aethernetByCity) { - int num16 = 0; - int num5; - int num6; - using (ImmutableList<AetheryteEntry>.Enumerator enumerator2 = item2.Shards.GetEnumerator()) + int num4 = 0; + foreach (AetheryteEntry shard in item3.Shards) { - int num3 = -235894113; - while (true) + bool flag2 = _aetheryteFunctions.IsAetheryteUnlocked(shard.Location); + dictionary[shard.Location] = flag2; + if (flag2) { - int num17 = num3; - num5 = -235894115; - num6 = num17; - switch ((num6 | num5) - (num6 & num5)) - { - case 2: - num3 = (enumerator2.MoveNext() ? (-235894119) : (-235894116)); - break; - case 0: - { - int num18 = num16; - num5 = 1; - num6 = num18; - num16 = (num6 | num5) + (num6 & num5); - num3 = -235894113; - break; - } - case 4: - { - AetheryteEntry current4 = enumerator2.Current; - bool flag2 = _aetheryteFunctions.IsAetheryteUnlocked(current4.Location); - dictionary[current4.Location] = flag2; - num3 = ((!flag2) ? (-235894113) : (-235894115)); - break; - } - case 3: - num3 = -235894113; - break; - case 1: - goto end_IL_01b0; - } - continue; - end_IL_01b0: - break; + num4++; } } - dictionary3[item2.CityName] = num16; - int num19 = num15; - num5 = num16; - num6 = num19; - num15 = (num6 | num5) + (num6 & num5); + dictionary3[item3.CityName] = num4; + num3 += num4; } Dictionary<uint, bool> dictionary4 = new Dictionary<uint, bool>(); Dictionary<ushort, int> dictionary5 = new Dictionary<ushort, int>(); - int num20 = 0; - foreach (ExpansionGroup<ZoneCurrentGroup> item3 in _currentsByExpansion) + int num5 = 0; + foreach (ExpansionGroup<ZoneCurrentGroup> item4 in _currentsByExpansion) { - foreach (ZoneCurrentGroup item4 in item3.Items) + foreach (ZoneCurrentGroup item5 in item4.Items) { - int num21 = 0; - int num5; - int num6; - using (ImmutableList<CurrentEntry>.Enumerator enumerator6 = item4.Currents.GetEnumerator()) + int num6 = 0; + foreach (CurrentEntry current in item5.Currents) { - int num3 = 505719856; - while (true) + bool flag3 = GameFunctions.IsAetherCurrentUnlocked(current.AetherCurrentId); + dictionary4[current.AetherCurrentId] = flag3; + if (flag3) { - int num22 = num3; - num5 = 505719857; - num6 = num22; - int num23 = num6 + num5; - int num24 = num6 & num5; - switch (num23 - (num24 + num24)) - { - case 1: - num3 = (enumerator6.MoveNext() ? 505719858 : 505719859); - break; - case 0: - { - int num25 = num21; - num5 = 1; - num6 = num25; - num21 = (num6 | num5) + (num6 & num5); - num3 = 505719856; - break; - } - case 3: - { - CurrentEntry current6 = enumerator6.Current; - bool flag3 = GameFunctions.IsAetherCurrentUnlocked(current6.AetherCurrentId); - dictionary4[current6.AetherCurrentId] = flag3; - num3 = ((!flag3) ? 505719856 : 505719857); - break; - } - case 4: - num3 = 505719856; - break; - case 2: - goto end_IL_0336; - } - continue; - end_IL_0336: - break; + num6++; } } - dictionary5[item4.TerritoryId] = num21; - int num26 = num20; - num5 = num21; - num6 = num26; - int num27 = num6 ^ num5; - int num28 = num6 & num5; - num20 = num27 + (num28 + num28); + dictionary5[item5.TerritoryId] = num6; + num5 += num6; } } _aetheryteUnlockCache = dictionary; @@ -1911,9 +408,9 @@ internal sealed class AttunementJournalComponent _aethernetCityUnlockedCounts = dictionary3; _currentZoneUnlockedCounts = dictionary5; _aetheryteUnlocked = num; - _aethernetUnlocked = num15; - _currentUnlocked = num20; - _lastStatusRefresh = _206B_206E_200F_202C_200E_206D_206A_200E_200B_202B_206D_206D_200E_200B_202B_206B_202C_202D_206E_200E_202C_206B_200F_206B_200E_202B_206D_202C_206F_200C_202C_200F_202A_200E_200F_200B_202E_200F_206B_200E_202E(); + _aethernetUnlocked = num3; + _currentUnlocked = num5; + _lastStatusRefresh = Environment.TickCount64; RebuildFlatRows(); } @@ -1932,893 +429,320 @@ internal sealed class AttunementJournalComponent { } - [MethodImpl(MethodImplOptions.NoInlining)] public void DrawAttunement() { - int num = ((_206B_206E_200F_202C_200E_206D_206A_200E_200B_202B_206D_206D_200E_200B_202B_206B_202C_202D_206E_200E_202C_206B_200F_206B_200E_202B_206D_202C_206F_200C_202C_200F_202A_200E_200F_200B_202E_200F_206B_200E_202E() - _lastStatusRefresh <= 3000) ? 24779854 : 24779842); - while (true) + if (Environment.TickCount64 - _lastStatusRefresh > 3000) { - int num2 = num; - int num3 = 24779848; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - string text; - float x; - float num8; - string text3; - ImRaii.FontDisposable fontDisposable; - float x2; - float num12; - switch (num5 - (num6 + num6)) - { - case 1: - num = ((!_attunementController.CompletedSuccessfully) ? 24779850 : 24779840); - break; - case 2: - _pendingBatchTargets.Clear(); - _batchName = null; - num = 24779841; - break; - case 10: - RefreshCounts(); - num = 24779854; - break; - case 8: + RefreshCounts(); + } + if (!_attunementController.IsRunning && _pendingBatchTargets.Count > 0) + { + if (_attunementController.CompletedSuccessfully) { (string, ushort, Vector3, ITask) tuple = PopNearestTarget(); - string text2 = _batchName; - if (text2 == null) + string text = _batchName; + if (text == null) { - (text2, _, _, _) = tuple; + (text, _, _, _) = tuple; } - StartAttunement(text2, tuple.Item2, tuple.Item3, tuple.Item4); - num = 24779841; - break; + StartAttunement(text, tuple.Item2, tuple.Item3, tuple.Item4); } - case 11: - num = 24779842; - break; - case 3: - num = ((_pendingBatchTargets.Count <= 0) ? 24779841 : 24779849); - break; - case 5: - text = _200E_206C_206C_202B_202D_200D_200F_206E_206E_202A_200F_202A_200E_200E_200D_206E_206B_206B_202C_200B_200C_206E_206B_200C_202B_202E_200D_200F_200F_200C_206E_200D_206B_200C_202C_202B_202A_206F_206A_206D_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(88792405), _attunementController.CurrentTargetName, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(799152405)); - goto IL_027f; - case 6: - num = (_attunementController.IsRunning ? 24779841 : 24779851); - break; - case 4: - num = ((_pendingBatchTargets.Count > 0) ? 24779848 : 24779853); - break; - case 9: - num = (_attunementController.IsRunning ? 24779852 : 24779855); - break; - case 7: - if (_pendingBatchTargets.Count > 0) - { - num = 24779852; - break; - } - goto IL_040c; - case 0: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(30, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1784068616)); - defaultInterpolatedStringHandler.AppendFormatted(_attunementController.CurrentTargetName); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1241011405)); - defaultInterpolatedStringHandler.AppendFormatted(_pendingBatchTargets.Count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1953473602)); - text = defaultInterpolatedStringHandler.ToStringAndClear(); - goto IL_027f; - } - IL_03d0: - while (true) - { - int num7 = num; - num3 = 1185678891; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 1: - break; - case 3: - StopAll(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-267438183)); - num = 1185678890; - continue; - case 5: - _206D_202A_206D_206E_206E_200D_200F_202C_200C_202B_202C_206E_202E_206E_202B_206A_200B_200C_202B_206E_200C_206B_200D_202E_206F_200D_200E_206A_206A_200E_200B_200E_206F_202C_206F_202C_202E_202C_200E_202C_202E(); - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2079895087), ref _showUnattunedOnly)) ? 1185678889 : 1185678891); - continue; - case 2: - _202A_200F_200E_202B_202A_202A_200B_200E_200C_202D_206B_206C_206C_202C_206E_200E_202B_202A_202C_206E_202B_200E_206A_200D_202E_206D_206B_206F_202B_200D_206E_206F_206D_206B_202A_206E_206C_206E_206C_200E_202E(); - DrawTrackerTable(); - return; - case 6: - RebuildFlatRows(); - num = 1185678894; - continue; - case 0: - RebuildFlatRows(); - num = 1185678889; - continue; - case 4: - num = 1185678888; - continue; - } - break; - } - goto IL_040c; - IL_040c: - x = _206E_200F_200F_202A_206B_206D_200E_206A_206F_200C_202C_200E_200D_206C_202B_202A_206E_202E_202D_200B_200B_202A_206C_202D_206F_200F_202E_200C_202E_200B_202B_202E_206D_206C_206B_206D_200C_202B_206A_200F_202E().ItemSpacing.X; - num8 = _206C_206E_202E_200B_202D_206C_200B_206F_200F_206E_206C_202C_206D_200B_202D_206C_200D_206E_202D_202A_202D_200B_206D_206D_200E_206F_200B_206E_202C_202D_206F_206E_202C_206C_200D_200B_202B_200F_206E_202B_202E() + _206A_200D_202A_202B_202E_202D_206E_200C_206E_202C_200B_200F_202B_200C_202A_200C_202E_202A_200E_200C_202B_200E_202C_200B_200F_206E_202B_200C_206D_202E_202A_200C_202D_200B_206E_200D_202A_202D_200C_200C_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2079895087), false, -1f).X + 3f * x; - num = ((!UiThemeUtils.SearchInput(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1618098440), ref _searchText, 0f - num8, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1483495335))) ? 1185678894 : 1185678893); - goto IL_03d0; - IL_027f: - text3 = text; - fontDisposable = _200D_200F_200D_200D_202D_202E_200E_200E_200F_206A_206F_200D_206B_200C_202C_202A_200D_202D_206C_202A_202A_206C_202B_200E_202E_206D_206C_200F_206E_202B_200F_200E_200E_200D_202A_200D_206F_200E_200E_206B_202E(_202E_206B_200F_200B_200B_202E_202C_202E_200C_206F_206A_206C_200C_200E_206D_202E_200C_200D_202C_200B_200F_202A_206B_202A_206F_202B_200E_206B_202D_200C_206F_202C_202D_206C_206E_202A_202C_202E_206B_202A_202E(), true); - try - { - x2 = _206A_200D_202A_202B_202E_202D_206E_200C_206E_202C_200B_200F_202B_200C_202A_200C_202E_202A_200E_200C_202B_200E_202C_200B_200F_206E_202B_200C_206D_202E_202A_200C_202D_200B_206E_200D_202A_202D_200C_200C_202E((ImU8String)_206F_206E_200F_202C_200C_206D_206C_206F_200C_200F_206D_202C_206E_202C_200C_202D_202D_206A_206F_206B_202D_206A_202A_202A_200D_202A_202B_200B_206F_202B_200B_206B_206E_206F_202C_206C_202C_200E_200F_206C_202E(FontAwesomeIcon.Stop), false, -1f).X; - } - finally - { - num = ((fontDisposable == null) ? 67468924 : 67468927); - while (true) - { - int num9 = num; - num3 = 67468926; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 0: - num = 67468927; - break; - case 2: - goto end_IL_02d2; - case 1: - _200C_200B_200F_202E_206F_202B_202B_202B_200E_206F_206E_202D_202E_200D_206C_200C_200E_206D_206A_202B_206D_206F_202E_206A_202C_206C_202B_200B_206B_200B_202B_206C_206D_206D_206E_202D_202D_206C_200B_202E_202E((IDisposable)fontDisposable); - num = 67468924; - break; - } - continue; - end_IL_02d2: - break; - } - } - num12 = x2 + 6f + _206A_200D_202A_202B_202E_202D_206E_200C_206E_202C_200B_200F_202B_200C_202A_200C_202E_202A_200E_200C_202B_200E_202C_200B_200F_206E_202B_200C_206D_202E_202A_200C_202D_200B_206E_200D_202A_202D_200C_200C_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1414712036), false, -1f).X + _206E_200F_200F_202A_206B_206D_200E_206A_206F_200C_202C_200E_200D_206C_202B_202A_206E_202E_202D_200B_200B_202A_206C_202D_206F_200F_202E_200C_202E_200B_202B_202E_206D_206C_206B_206D_200C_202B_206A_200F_202E().FramePadding.X * 2f + _206E_200F_200F_202A_206B_206D_200E_206A_206F_200C_202C_200E_200D_206C_202B_202A_206E_202E_202D_200B_200B_202A_206C_202D_206F_200F_202E_200C_202E_200B_202B_202E_206D_206C_206B_206D_200C_202B_206A_200F_202E().ItemSpacing.X; - _200B_200C_200F_206C_202C_206D_200D_200C_202A_202C_202D_206F_200B_202A_202A_206A_200E_206D_206C_202A_200B_206F_200D_200F_202E_202C_200B_206A_206F_206A_200C_206E_206F_206B_206D_206D_202B_206A_202E_206F_202E(ref UiThemeUtils.StatusActive, (ImU8String)UiThemeUtils.TruncateToWidth(text3, _206D_200E_200C_202D_202D_200D_200E_206A_200F_206B_206D_202B_200B_202D_206E_202D_202D_202B_202C_202D_200E_206B_202C_202E_200E_206F_202B_206B_206B_206D_206A_202D_202A_206E_202A_202E_202C_202A_202A_202E().X - num12)); - _206D_202A_206D_206E_206E_200D_200F_202C_200C_202B_202C_206E_202E_206E_202B_206A_200B_200C_202B_206E_200C_206B_200D_202E_206F_200D_200E_206A_206A_200E_200B_200E_206F_202C_206F_202C_202E_202C_200E_202C_202E(); - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Stop, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-706453881))) ? 1185678890 : 1185678888); - goto IL_03d0; + else + { + _pendingBatchTargets.Clear(); + _batchName = null; } } + if (_attunementController.IsRunning || _pendingBatchTargets.Count > 0) + { + string text2 = ((_pendingBatchTargets.Count > 0) ? $"Navigating to {_attunementController.CurrentTargetName}... ({_pendingBatchTargets.Count} remaining)" : ("Navigating to " + _attunementController.CurrentTargetName + "...")); + float x; + using (ImRaii.PushFont(UiBuilder.IconFont)) + { + x = ImGui.CalcTextSize(FontAwesomeIcon.Stop.ToIconString()).X; + } + float num = x + 6f + ImGui.CalcTextSize("Stop").X + ImGui.GetStyle().FramePadding.X * 2f + ImGui.GetStyle().ItemSpacing.X; + ImGui.TextColored(in UiThemeUtils.StatusActive, UiThemeUtils.TruncateToWidth(text2, ImGui.GetContentRegionAvail().X - num)); + ImGui.SameLine(); + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Stop, "Stop")) + { + StopAll("User cancelled (attunement UI)"); + } + } + float x2 = ImGui.GetStyle().ItemSpacing.X; + float num2 = ImGui.GetFrameHeight() + ImGui.CalcTextSize("Unattuned only").X + 3f * x2; + if (UiThemeUtils.SearchInput("##AttunementSearch", ref _searchText, 0f - num2)) + { + RebuildFlatRows(); + } + ImGui.SameLine(); + if (UiThemeUtils.WrappedCheckbox("Unattuned only", ref _showUnattunedOnly)) + { + RebuildFlatRows(); + } + ImGui.Separator(); + DrawTrackerTable(); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void DrawTrackerTable() { - int num = ((_flatRows.Count != 0) ? (-1990997379) : (-1990997380)); - int num15 = default(int); - while (true) + if (_flatRows.Count == 0) { - int num2 = num; - int num3 = -1990997379; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + UiThemeUtils.EmptyState(FontAwesomeIcon.Wifi, "No attunements match your search."); + return; + } + float x; + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) + { + x = ImGui.CalcTextSize(FontAwesomeIcon.Check.ToIconString()).X; + } + float fontGlobalScale = ImGui.GetIO().FontGlobalScale; + using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable("Attunement", 2, ImGuiTableFlags.NoSavedSettings | ImGuiTableFlags.ScrollY); + if (!tableDisposable) + { + return; + } + ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.NoHide); + ImGui.TableSetupColumn("Unlocked", ImGuiTableColumnFlags.WidthFixed, 120f * fontGlobalScale); + ImGui.TableHeadersRow(); + float textLineHeightWithSpacing = ImGui.GetTextLineHeightWithSpacing(); + bool flag = false; + ImGuiListClipper* intPtr = ImGuiNative.ImGuiListClipper(); + ImGuiNative.Begin(intPtr, _flatRows.Count, textLineHeightWithSpacing); + ImGuiListClipperPtr imGuiListClipperPtr = intPtr; + try + { + while (imGuiListClipperPtr.Step()) { - case 2: - goto IL_0056; - case 1: - UiThemeUtils.EmptyState(FontAwesomeIcon.Wifi, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1166257461)); - return; - case 0: + for (int i = imGuiListClipperPtr.DisplayStart; i < imGuiListClipperPtr.DisplayEnd; i++) + { + if (DrawFlatRow(_flatRows[i], x)) + { + flag = true; + } + } + } + } + finally + { + imGuiListClipperPtr.Destroy(); + } + if (flag) + { + RebuildFlatRows(); + } + } + + private bool DrawFlatRow(FlatRow row, float statusIconSpacing) + { + ImGui.TableNextRow(); + ImGui.TableNextColumn(); + if (row.Depth > 0) + { + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + ImGui.GetStyle().IndentSpacing * (float)row.Depth); + } + if (row.Kind == AttuneRowKind.AetheryteLeaf) + { + DrawAetheryteLeaf(row, statusIconSpacing); + return false; + } + if (row.Kind == AttuneRowKind.CurrentLeaf) + { + DrawCurrentLeaf(row, statusIconSpacing); + return false; + } + bool flag = _expandedGroups.Contains(row.Key); + UiThemeUtils.DrawTrackerGroupCaret(_pluginInterface.UiBuilder.IconFontFixedWidthHandle, flag); + ImGui.SameLine(); + bool result = false; + ImU8String label = new ImU8String(2, 2); + label.AppendFormatted(row.Label); + label.AppendLiteral("##"); + label.AppendFormatted(row.Key); + if (ImGui.Selectable(label)) + { + if (flag) { - IDisposable disposable = _206D_206B_206F_206D_200F_202D_206E_206A_206F_200E_200C_206D_206F_200D_202C_206B_202C_206B_202D_206C_206C_206B_202C_206E_206A_206B_200E_200C_200C_202B_202A_202E_206C_200D_206E_206A_206D_202D_206F_206F_202E(_202C_202D_200E_200B_206F_200D_200C_202A_200C_200F_206C_200E_202E_206F_200D_202E_200D_206A_200E_206D_200C_206E_202A_206E_202A_206A_206B_206B_200C_206E_202D_200F_200E_206B_200F_200C_200E_200B_202D_206D_202E(_202A_200D_206C_206F_202A_206C_206C_206F_202E_200C_206A_200D_206C_206B_200F_206E_206A_200D_200F_200B_206B_206C_202E_206B_202E_206F_200E_200F_206A_206C_206C_200F_200C_202E_206B_202A_206C_202E_200F_200E_202E(_pluginInterface))); - float x; + _expandedGroups.Remove(row.Key); + } + else + { + _expandedGroups.Add(row.Key); + } + result = true; + } + DrawHeaderBatchPopup(row); + ImGui.TableNextColumn(); + UiThemeUtils.DrawTrackerCount(row.CountText, row.CountComplete, row.CountEmpty); + return result; + } + + private void DrawHeaderBatchPopup(FlatRow row) + { + if (row.Batch == BatchKind.AethernetCity) + { + CityGroup city = row.City; + if ((object)city != null) + { + int count = city.Shards.Count; + if (_aethernetCityUnlockedCounts.GetValueOrDefault(city.CityName) >= count || IsAnyControllerRunning()) + { + return; + } + string text = "##AttuneAllAethernet_" + city.CityName; + if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) + { + ImGui.OpenPopup(text); + } + ImRaii.PopupDisposable popupDisposable = ImRaii.Popup(text); try { - x = _206A_200D_202A_202B_202E_202D_206E_200C_206E_202C_200B_200F_202B_200C_202A_200C_202E_202A_200E_200C_202B_200E_202C_200B_200F_206E_202B_200C_206D_202E_202A_200C_202D_200B_206E_200D_202A_202D_200C_200C_202E((ImU8String)_206F_206E_200F_202C_200C_206D_206C_206F_200C_200F_206D_202C_206E_202C_200C_202D_202D_206A_206F_206B_202D_206A_202A_202A_200D_202A_202B_200B_206F_202B_200B_206B_206E_206F_202C_206C_202C_200E_200F_206C_202E(FontAwesomeIcon.Check), false, -1f).X; + if (!popupDisposable.Success) + { + return; + } + ImU8String label = new ImU8String(14, 1); + label.AppendLiteral("Attune all in "); + label.AppendFormatted(city.CityName); + if (ImGui.MenuItem(label)) + { + IEnumerable<(string, ushort, Vector3, ITask)> targets = from s in city.Shards + where !_aetheryteUnlockCache.GetValueOrDefault(s.Location) + select ((string Name, ushort TerritoryId, Vector3, ITask))(Name: s.Name, TerritoryId: s.TerritoryId, _aetheryteData.Locations[s.Location], new AethernetShard.Attune(s.Location)); + StartBatchAttunement("All shards in " + city.CityName, targets); + } + return; } finally { - num = ((disposable == null) ? (-515031401) : (-515031402)); - while (true) - { - int num7 = num; - num3 = -515031401; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - goto end_IL_00d3; - case 1: - _200C_200B_200F_202E_206F_202B_202B_202B_200E_206F_206E_202D_202E_200D_206C_200C_200E_206D_206A_202B_206D_206F_202E_206A_202C_206C_202B_200B_206B_200B_202B_206C_206D_206D_206E_202D_202D_206C_200B_202E_202E(disposable); - num = -515031401; - break; - case 2: - num = -515031402; - break; - } - continue; - end_IL_00d3: - break; - } + popupDisposable.Dispose(); } - float fontGlobalScale = _206B_200B_200C_206A_200E_200D_202D_206A_200F_206B_202D_200F_206A_202C_200D_202A_200B_200F_206B_200F_206F_206C_202B_202C_200C_206A_200B_200C_202E_202E_202A_202A_200D_200B_202A_206E_202C_200D_206F_200E_202E().FontGlobalScale; - using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1117676722), 2, ImGuiTableFlags.NoSavedSettings | ImGuiTableFlags.ScrollY); - num = ((!(!tableDisposable)) ? (-135002875) : (-135002874)); - while (true) - { - int num10 = num; - num3 = -135002876; - num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 0: - goto IL_0198; - case 2: - return; - case 1: - { - _206A_206F_200C_200E_200E_202A_202D_202E_202A_206C_202A_200D_202E_200D_202C_202B_200D_200B_206F_206B_202D_206B_202E_206C_202D_200D_206C_200B_202B_200F_206D_200F_206F_202A_202D_202A_200F_206B_206A_206B_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2012877671), ImGuiTableColumnFlags.NoHide, 0f, 0u); - _206A_206F_200C_200E_200E_202A_202D_202E_202A_206C_202A_200D_202E_200D_202C_202B_200D_200B_206F_206B_202D_206B_202E_206C_202D_200D_206C_200B_202B_200F_206D_200F_206F_202A_202D_202A_200F_206B_206A_206B_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-416910200), ImGuiTableColumnFlags.WidthFixed, 120f * fontGlobalScale, 0u); - _202D_200E_206A_206F_206C_200C_200E_200E_206F_200F_200C_206A_206A_202E_202E_206E_206B_206C_202D_206A_206F_202C_206A_206C_200F_202B_202E_206D_206E_206F_202D_200F_206A_206D_206F_206D_200F_206F_200D_202A_202E(); - float num13 = _202B_202D_200E_200B_206F_200D_206B_202C_202E_202C_200E_206E_206D_200D_200E_200B_202D_202A_206D_200B_206E_200C_202E_206B_202E_200D_202B_202C_206B_206B_200F_206E_200B_206C_206A_206C_200E_202B_200E_200D_202E(); - bool flag = false; - ImGuiListClipper* intPtr = _206C_206C_206A_202A_200C_202E_200F_200D_200C_200F_206E_206E_206B_206E_206A_206C_200D_206C_200E_200E_202C_200F_200E_206E_202B_206F_202A_200D_206A_202C_206F_202E_206D_202C_206C_200C_206D_206B_200C_202B_202E(); - _200B_202C_206D_200C_202E_206A_202C_202B_202D_200E_202C_202E_200B_202A_202D_206A_206D_200B_200E_206B_200D_202B_200C_200D_206A_206C_206E_200E_202A_200D_206E_206D_200E_202A_202A_202B_200F_200E_202B_206F_202E(intPtr, _flatRows.Count, num13); - ImGuiListClipperPtr imGuiListClipperPtr = intPtr; - try - { - num = -1671656629; - while (true) - { - int num14 = num; - num3 = -1671656627; - num4 = num14; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - num = (imGuiListClipperPtr.Step() ? (-1671656628) : (-1671656627)); - break; - case 1: - num15 = imGuiListClipperPtr.DisplayStart; - num = -1671656632; - break; - case 3: - num = ((!DrawFlatRow(_flatRows[num15], x)) ? (-1671656631) : (-1671656625)); - break; - case 2: - flag = true; - num = -1671656631; - break; - case 4: - { - int num16 = num15; - num3 = 1; - num4 = num16; - int num17 = num4 ^ num3; - int num18 = num4 & num3; - num15 = num17 + (num18 + num18); - num = -1671656632; - break; - } - case 5: - num = ((num15 < imGuiListClipperPtr.DisplayEnd) ? (-1671656626) : (-1671656629)); - break; - case 7: - num = -1671656629; - break; - case 0: - goto end_IL_0226; - } - continue; - end_IL_0226: - break; - } - } - finally - { - imGuiListClipperPtr.Destroy(); - } - num = ((!flag) ? (-892291942) : (-892291943)); - while (true) - { - int num19 = num; - num3 = -892291941; - num4 = num19; - int num20 = num4 + num3; - int num21 = num4 & num3; - switch (num20 - (num21 + num21)) - { - case 0: - num = -892291943; - break; - case 2: - RebuildFlatRows(); - num = -892291942; - break; - case 1: - return; - } - } - } - } - continue; - IL_0198: - num = -135002874; - } - } - } - continue; - IL_0056: - num = -1990997380; - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool DrawFlatRow(FlatRow row, float statusIconSpacing) - { - _206C_206A_202E_200D_202A_200C_200C_200F_200F_206D_206F_206B_202E_200C_202D_200B_200D_200B_202A_206F_202B_202C_202E_200F_200F_206B_206C_206E_202D_200C_200D_202A_202C_200D_202B_202E_200B_200E_200D_206A_202E(); - _200E_200F_200D_200E_200D_200C_206A_202B_206E_206D_202C_202B_200D_200F_202C_206E_200E_200D_206B_202D_202E_202A_202D_202C_202A_202C_200F_206F_202A_200D_202E_202B_206D_202E_206D_200C_206B_202D_202D_200E_202E(); - int num = ((row.Depth <= 0) ? 465421303 : 465421306); - bool result = default(bool); - bool flag = default(bool); - while (true) - { - int num2 = num; - int num3 = 465421297; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - _expandedGroups.Remove(row.Key); - num = 465421307; - break; - case 11: - _202C_200E_206A_206F_200E_200F_206F_200C_202D_202D_206E_206F_200D_202D_200E_206E_206F_202E_206F_202A_206F_200F_206A_200B_202C_200E_200F_200C_202D_206E_206E_200E_202C_200D_200B_206D_200D_200D_200E_202C_202E(_206B_200B_202C_206B_200D_202B_200C_206D_206E_202E_206A_200B_206D_206D_200E_202A_206D_202D_200D_206C_200D_200C_206F_206A_206C_206B_206F_202C_202B_202C_206E_200D_200B_206E_200B_202B_202C_200F_206A_202E() + _206E_200F_200F_202A_206B_206D_200E_206A_206F_200C_202C_200E_200D_206C_202B_202A_206E_202E_202D_200B_200B_202A_206C_202D_206F_200F_202E_200C_202E_200B_202B_202E_206D_206C_206B_206D_200C_202B_206A_200F_202E().IndentSpacing * (float)row.Depth); - num = 465421303; - break; - case 10: - result = true; - num = 465421305; - break; - case 8: - DrawHeaderBatchPopup(row); - _200E_200F_200D_200E_200D_200C_206A_202B_206E_206D_202C_202B_200D_200F_202C_206E_200E_200D_206B_202D_202E_202A_202D_202C_202A_202C_200F_206F_202A_200D_202E_202B_206D_202E_206D_200C_206B_202D_202D_200E_202E(); - UiThemeUtils.DrawTrackerCount(row.CountText, row.CountComplete, row.CountEmpty); - return result; - case 0: - { - flag = _expandedGroups.Contains(row.Key); - UiThemeUtils.DrawTrackerGroupCaret(_202C_202D_200E_200B_206F_200D_200C_202A_200C_200F_206C_200E_202E_206F_200D_202E_200D_206A_200E_206D_200C_206E_202A_206E_202A_206A_206B_206B_200C_206E_202D_200F_200E_206B_200F_200C_200E_200B_202D_206D_202E(_202A_200D_206C_206F_202A_206C_206C_206F_202E_200C_206A_200D_206C_206B_200F_206E_206A_200D_200F_200B_206B_206C_202E_206B_202E_206F_200E_200F_206A_206C_206C_200F_200C_202E_206B_202A_206C_202E_200F_200E_202E(_pluginInterface)), flag); - _206D_202A_206D_206E_206E_200D_200F_202C_200C_202B_202C_206E_202E_206E_202B_206A_200B_200C_202B_206E_200C_206B_200D_202E_206F_200D_200E_206A_206A_200E_200B_200E_206F_202C_206F_202C_202E_202C_200E_202C_202E(); - result = false; - ImU8String imU8String = new ImU8String(2, 2); - imU8String.AppendFormatted(row.Label); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(604327994)); - imU8String.AppendFormatted(row.Key); - num = ((!_206A_200F_206E_206F_202D_202D_202E_206A_202D_200F_202D_206A_200B_202E_202E_202A_206A_200D_202D_202D_200B_200D_200E_202D_200C_206A_206E_202B_202B_200D_202C_202A_200E_206D_202C_202A_206A_206F_202C_202B_202E(imU8String, false, ImGuiSelectableFlags.None, default(Vector2))) ? 465421305 : 465421301); - break; - } - case 7: - num = 465421306; - break; - case 3: - DrawAetheryteLeaf(row, statusIconSpacing); - return false; - case 2: - num = ((row.Kind != AttuneRowKind.CurrentLeaf) ? 465421297 : 465421304); - break; - case 1: - _expandedGroups.Add(row.Key); - num = 465421307; - break; - case 9: - DrawCurrentLeaf(row, statusIconSpacing); - return false; - case 4: - num = ((!flag) ? 465421296 : 465421300); - break; - case 6: - num = ((row.Kind != AttuneRowKind.AetheryteLeaf) ? 465421299 : 465421298); - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private void DrawHeaderBatchPopup(FlatRow row) - { - int num; - if (row.Batch == BatchKind.AethernetCity) - { - num = 674359626; - string text = default(string); - CityGroup city = default(CityGroup); - while (true) - { - int num2 = num; - int num3 = 674359625; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 0: - num = 674359626; - continue; - case 1: - text = _202B_200C_202C_200B_206C_206C_202D_206C_202B_200E_206A_206E_200D_200D_206C_202B_206E_206C_202B_206B_200E_200B_202B_206D_200D_206D_202A_200F_206E_200C_202E_202D_200D_202D_200F_202B_202B_206E_206B_200D_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1831388298), city.CityName); - num = ((!_200E_200D_206D_202B_202C_200B_202D_200F_202A_206A_206C_206E_202C_206E_202A_202D_202A_206D_202E_206D_206D_200E_206A_202E_206E_206A_200F_200B_206F_206E_200E_206A_206F_206D_206A_202B_206C_200C_200F_202A_202E(ImGuiMouseButton.Right)) ? 674359627 : 674359631); - continue; - case 3: - break; - case 5: - { - int count = city.Shards.Count; - if (_aethernetCityUnlockedCounts.GetValueOrDefault(city.CityName) < count) - { - num = 674359629; - continue; - } - return; - } - case 6: - _202B_200B_206E_206F_206B_206E_206F_202E_206A_202B_206F_202E_202D_206A_206E_200B_202D_200F_206F_206B_206F_202E_200C_202B_200F_200F_206D_200D_206A_202C_202E_200F_206D_200E_206C_202A_200E_206F_206A_206C_202E((ImU8String)text, ImGuiPopupFlags.None); - num = 674359627; - continue; - case 4: - if (!IsAnyControllerRunning()) - { - num = 674359624; - continue; - } - return; - case 2: - { - ImRaii.PopupDisposable popupDisposable = _200D_200D_206D_206D_202E_206F_200C_206F_202B_206A_202B_206D_202A_200F_206E_200B_206A_202D_202B_206E_202D_202C_200E_206C_206B_206C_200F_202A_206D_202A_202C_206A_206F_206E_200C_206B_202C_202E_200C_202E((ImU8String)text); - try - { - num = ((!popupDisposable.Success) ? (-1176859534) : (-1176859535)); - while (true) - { - int num7 = num; - num3 = -1176859533; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1176859535; - break; - case 3: - { - IEnumerable<(string, ushort, Vector3, ITask)> targets = from s in city.Shards - where !_aetheryteUnlockCache.GetValueOrDefault(s.Location) - select ((string Name, ushort TerritoryId, Vector3, ITask))(Name: s.Name, TerritoryId: s.TerritoryId, _200F_202C_200C_206C_206E_206E_200F_200F_206F_206D_206D_206B_200E_206C_202B_206F_202B_206F_206A_202A_200D_200D_202D_202D_202C_202E_206A_202D_206A_200F_202E_206F_202A_200E_206B_202A_206D_202C_202D_206F_202E(_aetheryteData)[s.Location], new AethernetShard.Attune(s.Location)); - StartBatchAttunement(_202B_200C_202C_200B_206C_206C_202D_206C_202B_200E_206A_206E_200D_200D_206C_202B_206E_206C_202B_206B_200E_200B_202B_206D_200D_206D_202A_200F_206E_200C_202E_202D_200D_202D_200F_202B_202B_206E_206B_200D_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-149862362), city.CityName), targets); - num = -1176859534; - break; - } - case 2: - { - ImU8String imU8String = new ImU8String(14, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1568089828)); - imU8String.AppendFormatted(city.CityName); - num = ((!_202C_206D_200C_202E_200F_206B_200B_202C_206A_202B_200C_202C_206A_206F_206E_206B_206E_206B_202B_200E_202D_202A_206E_206F_200F_206E_202E_206B_202E_206F_202D_206B_200F_206D_202A_206E_202C_202D_206A_206A_202E(imU8String, false, true)) ? (-1176859534) : (-1176859536)); - break; - } - case 1: - return; - } - } - } - finally - { - popupDisposable.Dispose(); - } - } - } - city = row.City; - if ((object)city == null) - { - break; - } - num = 674359628; } } if (row.Batch != BatchKind.CurrentZone) { return; } - num = -815572066; - List<CurrentEntry> list = default(List<CurrentEntry>); - ZoneCurrentGroup zone = default(ZoneCurrentGroup); - string text2 = default(string); - while (true) + ZoneCurrentGroup zone = row.Zone; + if ((object)zone == null) { - int num8 = num; - int num3 = -815572069; - int num4 = num8; - switch ((num4 | num3) - (num4 & num3)) + return; + } + List<CurrentEntry> list = zone.Currents.Where((CurrentEntry c) => !c.IsQuestGated && !_currentUnlockCache.GetValueOrDefault(c.AetherCurrentId)).ToList(); + if (list.Count <= 0 || IsAnyControllerRunning()) + { + return; + } + string text2 = $"##AttuneAllCurrents_{zone.TerritoryId}"; + if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) + { + ImGui.OpenPopup(text2); + } + ImRaii.PopupDisposable popupDisposable2 = ImRaii.Popup(text2); + try + { + if (!popupDisposable2.Success) { - case 1: - list = zone.Currents.Where(delegate(CurrentEntry c) - { - int num10 = (c.IsQuestGated ? 981624173 : 981624174); - while (true) - { - int num11 = num10; - int num12 = 981624175; - int num13 = num11; - int num14 = num13 + num12; - int num15 = num13 & num12; - switch (num14 - (num15 + num15)) - { - case 2: - return false; - case 1: - return !_currentUnlockCache.GetValueOrDefault(c.AetherCurrentId); - case 0: - goto IL_005f; - } - continue; - IL_005f: - num10 = 981624174; - } - }).ToList(); - if (list.Count > 0) - { - num = -815572069; - break; - } return; - case 5: - zone = row.Zone; - if ((object)zone != null) - { - num = -815572070; - break; - } - return; - case 0: - if (!IsAnyControllerRunning()) - { - num = -815572071; - break; - } - return; - case 3: - num = -815572066; - break; - case 2: + } + ImU8String label2 = new ImU8String(14, 1); + label2.AppendLiteral("Attune all in "); + label2.AppendFormatted(zone.ZoneName); + if (ImGui.MenuItem(label2)) { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(20, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-822713294)); - defaultInterpolatedStringHandler.AppendFormatted(zone.TerritoryId); - text2 = defaultInterpolatedStringHandler.ToStringAndClear(); - num = ((!_200E_200D_206D_202B_202C_200B_202D_200F_202A_206A_206C_206E_202C_206E_202A_202D_202A_206D_202E_206D_206D_200E_206A_202E_206E_206A_200F_200B_206F_206E_200E_206A_206F_206D_206A_202B_206C_200C_200F_202A_202E(ImGuiMouseButton.Right)) ? (-815572067) : (-815572065)); - break; - } - case 4: - _202B_200B_206E_206F_206B_206E_206F_202E_206A_202B_206F_202E_202D_206A_206E_200B_202D_200F_206F_206B_206F_202E_200C_202B_200F_200F_206D_200D_206A_202C_202E_200F_206D_200E_206C_202A_200E_206F_206A_206C_202E((ImU8String)text2, ImGuiPopupFlags.None); - num = -815572067; - break; - case 6: - { - ImRaii.PopupDisposable popupDisposable2 = _200D_200D_206D_206D_202E_206F_200C_206F_202B_206A_202B_206D_202A_200F_206E_200B_206A_202D_202B_206E_202D_202C_200E_206C_206B_206C_200F_202A_206D_202A_202C_206A_206F_206E_200C_206B_202C_202E_200C_202E((ImU8String)text2); - try - { - num = ((!popupDisposable2.Success) ? (-576402676) : (-576402673)); - while (true) - { - int num9 = num; - num3 = -576402675; - num4 = num9; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -576402673; - break; - case 2: - { - ImU8String imU8String2 = new ImU8String(14, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-939498879)); - imU8String2.AppendFormatted(zone.ZoneName); - num = ((!_202C_206D_200C_202E_200F_206B_200B_202C_206A_202B_200C_202C_206A_206F_206E_206B_206E_206B_202B_200E_202D_202A_206E_206F_200F_206E_202E_206B_202E_206F_202D_206B_200F_206D_202A_206E_202C_202D_206A_206A_202E(imU8String2, false, true)) ? (-576402676) : (-576402674)); - break; - } - case 3: - { - IEnumerable<(string, ushort, Vector3, ITask)> targets2 = from c in list - select (current: c, pos: _aetherCurrentData.GetOverworldPosition(c.AetherCurrentId)) into x - where x.pos != null - select ((string, ushort TerritoryId, Vector3 Position, ITask))(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(303621313), TerritoryId: x.pos.TerritoryId, Position: x.pos.Position, new Questionable.Controller.Steps.Interactions.AetherCurrent.Attune(x.pos.DataId, x.current.AetherCurrentId)); - StartBatchAttunement(_202B_200C_202C_200B_206C_206C_202D_206C_202B_200E_206A_206E_200D_200D_206C_202B_206E_206C_202B_206B_200E_200B_202B_206D_200D_206D_202A_200F_206E_200C_202E_202D_200D_202D_200F_202B_202B_206E_206B_200D_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1352130088), zone.ZoneName), targets2); - num = -576402676; - break; - } - case 1: - return; - } - } - } - finally - { - popupDisposable2.Dispose(); - } - } + IEnumerable<(string, ushort, Vector3, ITask)> targets2 = from c in list + select (current: c, pos: _aetherCurrentData.GetOverworldPosition(c.AetherCurrentId)) into x + where x.pos != null + select ((string, ushort TerritoryId, Vector3 Position, ITask))("Aether Current", TerritoryId: x.pos.TerritoryId, Position: x.pos.Position, new Questionable.Controller.Steps.Interactions.AetherCurrent.Attune(x.pos.DataId, x.current.AetherCurrentId)); + StartBatchAttunement("All currents in " + zone.ZoneName, targets2); } } + finally + { + popupDisposable2.Dispose(); + } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawAetheryteLeaf(FlatRow row, float statusIconSpacing) { AetheryteEntry aetheryte = row.Aetheryte; bool valueOrDefault = _aetheryteUnlockCache.GetValueOrDefault(aetheryte.Location); - ImU8String imU8String = new ImU8String(2, 2); - imU8String.AppendFormatted(aetheryte.Name); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(259713198)); - imU8String.AppendFormatted(row.Key); - _206A_200F_206E_206F_202D_202D_202E_206A_202D_200F_202D_206A_200B_202E_202E_202A_206A_200D_202D_202D_200B_200D_200E_202D_200C_206A_206E_202B_202B_200D_202C_202A_200E_206D_202C_202A_206A_206F_202C_202B_202E(imU8String, false, ImGuiSelectableFlags.None, default(Vector2)); - if (!valueOrDefault) + ImU8String label = new ImU8String(2, 2); + label.AppendFormatted(aetheryte.Name); + label.AppendLiteral("##"); + label.AppendFormatted(row.Key); + ImGui.Selectable(label); + if (!valueOrDefault && !IsAnyControllerRunning()) { - int num = 1450260088; - string text = default(string); - Vector3 position = default(Vector3); - while (true) + string text = (row.IsAethernet ? $"##AttuneAethernet_{aetheryte.Location}" : $"##AttuneAetheryte_{aetheryte.Location}"); + if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) { - int num2 = num; - int num3 = 1450260091; - int num4 = num2; - string text2; - switch ((num4 | num3) - (num4 & num3)) + ImGui.OpenPopup(text); + } + ImRaii.PopupDisposable popupDisposable = ImRaii.Popup(text); + try + { + if (popupDisposable.Success) { - default: - continue; - case 4: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(18, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(465941441)); - defaultInterpolatedStringHandler2.AppendFormatted(aetheryte.Location); - text2 = defaultInterpolatedStringHandler2.ToStringAndClear(); - goto IL_00dc; - } - case 2: - num = (row.IsAethernet ? 1450260095 : 1450260090); - continue; - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(18, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(762768571)); - defaultInterpolatedStringHandler.AppendFormatted(aetheryte.Location); - text2 = defaultInterpolatedStringHandler.ToStringAndClear(); - goto IL_00dc; - } - case 5: - _202B_200B_206E_206F_206B_206E_206F_202E_206A_202B_206F_202E_202D_206A_206E_200B_202D_200F_206F_206B_206F_202E_200C_202B_200F_200F_206D_200D_206A_202C_202E_200F_206D_200E_206C_202A_200E_206F_206A_206C_202E((ImU8String)text, ImGuiPopupFlags.None); - num = 1450260091; - continue; - case 6: - num = 1450260088; - continue; - case 3: - if (!IsAnyControllerRunning()) + ImU8String label2 = new ImU8String(10, 1); + label2.AppendLiteral("Attune to "); + label2.AppendFormatted(aetheryte.Name); + if (ImGui.MenuItem(label2)) { - num = 1450260089; - continue; - } - break; - case 0: - { - ImRaii.PopupDisposable popupDisposable = _200D_200D_206D_206D_202E_206F_200C_206F_202B_206A_202B_206D_202A_200F_206E_200B_206A_202D_202B_206E_202D_202C_200E_206C_206B_206C_200F_202A_206D_202A_202C_206A_206F_206E_200C_206B_202C_202E_200C_202E((ImU8String)text); - try + Vector3 position = _aetheryteData.Locations[aetheryte.Location]; + ITask task2; + if (!row.IsAethernet) { - num = ((!popupDisposable.Success) ? 975509733 : 975509734); - while (true) - { - int num5 = num; - num3 = 975509733; - num4 = num5; - ITask task2; - ITask attuneTask; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - { - ITask task = new AethernetShard.Attune(aetheryte.Location); - task2 = task; - goto IL_0219; - } - case 3: - { - ImU8String imU8String2 = new ImU8String(10, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1181378461)); - imU8String2.AppendFormatted(aetheryte.Name); - num = ((!_202C_206D_200C_202E_200F_206B_200B_202C_206A_202B_200C_202C_206A_206F_206E_206B_206E_206B_202B_200E_202D_202A_206E_206F_200F_206E_202E_206B_202E_206F_202D_206B_200F_206D_202A_206E_202C_202D_206A_206A_202E(imU8String2, false, true)) ? 975509733 : 975509729); - break; - } - case 2: - num = 975509734; - break; - case 1: - { - ITask task = new Questionable.Controller.Steps.Interactions.Aetheryte.Attune(aetheryte.Location); - task2 = task; - goto IL_0219; - } - case 4: - position = _200F_202C_200C_206C_206E_206E_200F_200F_206F_206D_206D_206B_200E_206C_202B_206F_202B_206F_206A_202A_200D_200D_202D_202D_202C_202E_206A_202D_206A_200F_202E_206F_202A_200E_206B_202A_206D_202C_202D_206F_202E(_aetheryteData)[aetheryte.Location]; - num = (row.IsAethernet ? 975509728 : 975509732); - break; - case 0: - goto end_IL_01d2; - IL_0219: - attuneTask = task2; - StartAttunement(aetheryte.Name, aetheryte.TerritoryId, position, attuneTask); - num = 975509733; - break; - } - continue; - end_IL_01d2: - break; - } + ITask task = new Questionable.Controller.Steps.Interactions.Aetheryte.Attune(aetheryte.Location); + task2 = task; } - finally + else { - popupDisposable.Dispose(); + ITask task = new AethernetShard.Attune(aetheryte.Location); + task2 = task; } - break; + ITask attuneTask = task2; + StartAttunement(aetheryte.Name, aetheryte.TerritoryId, position, attuneTask); } - IL_00dc: - text = text2; - num = ((!_200E_200D_206D_202B_202C_200B_202D_200F_202A_206A_206C_206E_202C_206E_202A_202D_202A_206D_202E_206D_206D_200E_206A_202E_206E_206A_200F_200B_206F_206E_200E_206A_206F_206D_206A_202B_206C_200C_200F_202A_202E(ImGuiMouseButton.Right)) ? 1450260091 : 1450260094); - continue; } - break; + } + finally + { + popupDisposable.Dispose(); } } - _200E_200F_200D_200E_200D_200C_206A_202B_206E_206D_202C_202B_200D_200F_202C_206E_200E_200D_206B_202D_202E_202A_202D_202C_202A_202C_200F_206F_202A_200D_202E_202B_206D_202E_206D_200C_206B_202D_202D_200E_202E(); + ImGui.TableNextColumn(); DrawStatusGlyph(valueOrDefault, statusIconSpacing); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawCurrentLeaf(FlatRow row, float statusIconSpacing) { CurrentEntry current = row.Current; bool valueOrDefault = _currentUnlockCache.GetValueOrDefault(current.AetherCurrentId); if (current.IsQuestGated) { - int num = -967715694; - string text = default(string); - IQuestInfo questInfo = default(IQuestInfo); - while (true) + string value = ((!string.IsNullOrEmpty(current.QuestName)) ? ("Quest: " + current.QuestName) : "Quest Current"); + ImU8String label = new ImU8String(2, 2); + label.AppendFormatted(value); + label.AppendLiteral("##"); + label.AppendFormatted(row.Key); + ImGui.Selectable(label); + if (current.QuestId != 0 && ImGui.IsItemHovered() && _questData.TryGetQuestInfo(QuestId.FromRowId(current.QuestId), out IQuestInfo questInfo)) { - int num2 = num; - int num3 = -967715693; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - string text2; - string value; - ImU8String imU8String; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 9: - num = -967715694; - continue; - case 5: - _202B_200B_206E_206F_206B_206E_206F_202E_206A_202B_206F_202E_202D_206A_206E_200B_202D_200F_206F_206B_206F_202E_200C_202B_200F_200F_206D_200D_206A_202C_202E_200F_206D_200E_206C_202A_200E_206F_206A_206C_202E((ImU8String)text, ImGuiPopupFlags.None); - num = -967715685; - continue; - case 3: - num = ((!_200D_202A_200D_200B_206C_202D_206F_202A_206E_206C_200E_206B_200B_206E_200B_206E_202B_200D_200C_202C_200D_202E_200C_202A_206E_206A_202B_206A_200E_202E_202D_202A_206F_202E_200F_200B_206E_202E_200D_206D_202E()) ? (-967715689) : (-967715695)); - continue; - case 2: - num = ((!_questData.TryGetQuestInfo(_202A_206B_206F_200C_200B_202D_200C_206B_202E_206E_200C_202D_202C_200C_206B_200D_206E_200C_206F_200D_200B_206A_206E_206F_202C_202E_206C_202B_202E_206A_200E_206C_200F_202D_200C_202D_202B_200F_202C_200D_202E(current.QuestId), out questInfo)) ? (-967715689) : (-967715692)); - continue; - case 6: - text2 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(937345867); - goto IL_013e; - case 7: - _questTooltipComponent.Draw(questInfo); - num = -967715689; - continue; - case 0: - text2 = _202B_200C_202C_200B_206C_206C_202D_206C_202B_200E_206A_206E_200D_200D_206C_202B_206E_206C_202B_206B_200E_200B_202B_206D_200D_206D_202A_200F_206E_200C_202E_202D_200D_202D_200F_202B_202B_206E_206B_200D_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1186831656), current.QuestName); - goto IL_013e; - case 4: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(15, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2030870508)); - defaultInterpolatedStringHandler.AppendFormatted(current.AetherCurrentId); - text = defaultInterpolatedStringHandler.ToStringAndClear(); - num = ((!_200E_200D_206D_202B_202C_200B_202D_200F_202A_206A_206C_206E_202C_206E_202A_202D_202A_206D_202E_206D_206D_200E_206A_202E_206E_206A_200F_200B_206F_206E_200E_206A_206F_206D_206A_202B_206C_200C_200F_202A_202E(ImGuiMouseButton.Right)) ? (-967715685) : (-967715690)); - continue; - } - case 1: - num = ((!_206E_202C_206F_200F_200D_202E_206C_200D_206F_202D_202E_200C_202D_206A_206D_200E_202E_202B_206D_206D_202B_202B_206C_200D_206C_202A_200D_202D_206E_202E_206E_200C_202C_200B_206E_200E_200F_206F_200E_200C_202E(current.QuestName)) ? (-967715693) : (-967715691)); - continue; - case 8: - break; - IL_013e: - value = text2; - imU8String = new ImU8String(2, 2); - imU8String.AppendFormatted(value); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(604327994)); - imU8String.AppendFormatted(row.Key); - _206A_200F_206E_206F_202D_202D_202E_206A_202D_200F_202D_206A_200B_202E_202E_202A_206A_200D_202D_202D_200B_200D_200E_202D_200C_206A_206E_202B_202B_200D_202C_202A_200E_206D_202C_202A_206A_206F_202C_202B_202E(imU8String, false, ImGuiSelectableFlags.None, default(Vector2)); - num = ((current.QuestId == 0) ? (-967715689) : (-967715696)); - continue; - } - break; + _questTooltipComponent.Draw(questInfo); } - ImRaii.PopupDisposable popupDisposable = _200D_200D_206D_206D_202E_206F_200C_206F_202B_206A_202B_206D_202A_200F_206E_200B_206A_202D_202B_206E_202D_202C_200E_206C_206B_206C_200F_202A_206D_202A_202C_206A_206F_206E_200C_206B_202C_202E_200C_202E((ImU8String)text); + string text = $"##CurrentQuest_{current.AetherCurrentId}"; + if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) + { + ImGui.OpenPopup(text); + } + ImRaii.PopupDisposable popupDisposable = ImRaii.Popup(text); try { - num = ((!popupDisposable.Success) ? 1411598846 : 1411598842); - while (true) + if (popupDisposable.Success && ImGui.MenuItem("View Quest") && current.QuestId != 0) { - int num7 = num; - int num3 = 1411598847; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - default: - continue; - case 4: - num = ((current.QuestId == 0) ? 1411598846 : 1411598845); - continue; - case 5: - num = ((!_202C_206D_200C_202E_200F_206B_200B_202C_206A_202B_200C_202C_206A_206F_206E_206B_206E_206B_202B_200E_202D_202A_206E_206F_200F_206E_202E_206B_202E_206F_202D_206B_200F_206D_202A_206E_202C_202D_206A_206A_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-329882336), false, true)) ? 1411598846 : 1411598843); - continue; - case 0: - num = 1411598842; - continue; - case 2: - { - QuestChainComponent? questChainComponent = QuestChainComponent; - if (questChainComponent == null) - { - break; - } - questChainComponent.SelectQuest(_202A_206B_206F_200C_200B_202D_200C_206B_202E_206E_200C_202D_202C_200C_206B_200D_206E_200C_206F_200D_200B_206A_206E_206F_202C_202E_206C_202B_202E_206A_200E_206C_200F_202D_200C_202D_202B_200F_202C_200D_202E(current.QuestId)); - num = 1411598844; - continue; - } - case 3: - break; - case 1: - goto end_IL_0253; - } - Action<string>? selectTabAction = SelectTabAction; - if (selectTabAction == null) - { - break; - } - selectTabAction(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-898291037)); - num = 1411598846; - continue; - end_IL_0253: - break; + QuestChainComponent?.SelectQuest(QuestId.FromRowId(current.QuestId)); + SelectTabAction?.Invoke("Quest Chain"); } } finally @@ -2828,449 +752,137 @@ internal sealed class AttunementJournalComponent } else { - ImU8String imU8String2 = new ImU8String(16, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1398574100)); - imU8String2.AppendFormatted(row.Key); - _206A_200F_206E_206F_202D_202D_202E_206A_202D_200F_202D_206A_200B_202E_202E_202A_206A_200D_202D_202D_200B_200D_200E_202D_200C_206A_206E_202B_202B_200D_202C_202A_200E_206D_202C_202A_206A_206F_202C_202B_202E(imU8String2, false, ImGuiSelectableFlags.None, default(Vector2)); + ImU8String label2 = new ImU8String(16, 1); + label2.AppendLiteral("Aether Current##"); + label2.AppendFormatted(row.Key); + ImGui.Selectable(label2); if (!valueOrDefault) { - int num = 939541890; - string text3 = default(string); - AetherCurrentPosition overworldPosition = default(AetherCurrentPosition); - while (true) + AetherCurrentPosition overworldPosition = _aetherCurrentData.GetOverworldPosition(current.AetherCurrentId); + string text2 = $"##AttuneCurrent_{current.AetherCurrentId}"; + if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) { - int num10 = num; - int num3 = 939541891; - int num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - default: - continue; - case 2: - _202B_200B_206E_206F_206B_206E_206F_202E_206A_202B_206F_202E_202D_206A_206E_200B_202D_200F_206F_206B_206F_202E_200C_202B_200F_200F_206D_200D_206A_202C_202E_200F_206D_200E_206C_202A_200E_206F_206A_206C_202E((ImU8String)text3, ImGuiPopupFlags.None); - num = 939541888; - continue; - case 1: - { - overworldPosition = _aetherCurrentData.GetOverworldPosition(current.AetherCurrentId); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(16, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1992006660)); - defaultInterpolatedStringHandler2.AppendFormatted(current.AetherCurrentId); - text3 = defaultInterpolatedStringHandler2.ToStringAndClear(); - num = ((!_200E_200D_206D_202B_202C_200B_202D_200F_202A_206A_206C_206E_202C_206E_202A_202D_202A_206D_202E_206D_206D_200E_206A_202E_206E_206A_200F_200B_206F_206E_200E_206A_206F_206D_206A_202B_206C_200C_200F_202A_202E(ImGuiMouseButton.Right)) ? 939541888 : 939541889); - continue; - } - case 0: - num = 939541890; - continue; - case 3: - break; - } - break; + ImGui.OpenPopup(text2); } - using ImRaii.PopupDisposable popupDisposable2 = _200D_200D_206D_206D_202E_206F_200C_206F_202B_206A_202B_206D_202A_200F_206E_200B_206A_202D_202B_206E_202D_202C_200E_206C_206B_206C_200F_202A_206D_202A_202C_206A_206F_206E_200C_206B_202C_202E_200C_202E((ImU8String)text3); + using ImRaii.PopupDisposable popupDisposable2 = ImRaii.Popup(text2); if ((bool)popupDisposable2) { - num = -1681952250; - int num14; - while (true) + bool flag = overworldPosition != null && !IsAnyControllerRunning(); + using (ImRaii.Disabled(!flag)) { - int num13 = num; - int num3 = -1681952251; - int num4 = num13; - switch ((num4 | num3) - (num4 & num3)) + if (ImGui.MenuItem("Attune") && overworldPosition != null) { - default: - continue; - case 0: - num = -1681952250; - continue; - case 3: - num = ((!(overworldPosition != null)) ? (-1681952249) : (-1681952252)); - continue; - case 1: - num14 = ((!IsAnyControllerRunning()) ? 1 : 0); - break; - case 2: - num14 = 0; - break; - } - break; - } - bool flag = (byte)num14 != 0; - ImRaii.DisabledDisposable disabledDisposable = _206E_202A_200B_206D_206B_206C_206E_206E_202D_206F_206C_202C_206F_200D_202D_206D_202A_202B_206C_202B_200F_200B_206D_206C_200F_200C_206A_206A_202B_200D_206B_200F_206B_200D_202D_202A_202B_202A_202C_202E(!flag); - try - { - num = ((!_202C_206D_200C_202E_200F_206B_200B_202C_206A_202B_200C_202C_206A_206F_206E_206B_206E_206B_202B_200E_202D_202A_206E_206F_200F_206E_202E_206B_202E_206F_202D_206B_200F_206D_202A_206E_202C_202D_206A_206A_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1095755646), false, true)) ? 846999353 : 846999355); - while (true) - { - int num15 = num; - int num3 = 846999352; - int num4 = num15; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 846999355; - break; - case 3: - num = ((!(overworldPosition != null)) ? 846999353 : 846999352); - break; - case 0: - StartAttunement(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-904194713), overworldPosition.TerritoryId, overworldPosition.Position, new Questionable.Controller.Steps.Interactions.AetherCurrent.Attune(overworldPosition.DataId, current.AetherCurrentId)); - num = 846999353; - break; - case 1: - goto end_IL_0546; - } - continue; - end_IL_0546: - break; + StartAttunement("Aether Current", overworldPosition.TerritoryId, overworldPosition.Position, new Questionable.Controller.Steps.Interactions.AetherCurrent.Attune(overworldPosition.DataId, current.AetherCurrentId)); } } - finally + if (!flag && overworldPosition == null && ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) { - num = ((disabledDisposable == null) ? (-611190412) : (-611190409)); - while (true) - { - int num16 = num; - int num3 = -611190411; - int num4 = num16; - int num17 = num4 + num3; - int num18 = num4 & num3; - switch (num17 - (num18 + num18)) - { - case 0: - num = -611190409; - break; - case 2: - _200C_200B_200F_202E_206F_202B_202B_202B_200E_206F_206E_202D_202E_200D_206C_200C_200E_206D_206A_202B_206D_206F_202E_206A_202C_206C_202B_200B_206B_200B_202B_206C_206D_206D_206E_202D_202D_206C_200B_202E_202E((IDisposable)disabledDisposable); - num = -611190412; - break; - case 1: - goto end_IL_0607; - } - continue; - end_IL_0607: - break; - } - } - num = (flag ? 683962009 : 683962014); - while (true) - { - int num19 = num; - int num3 = 683962010; - int num4 = num19; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 683962014; - break; - case 1: - num = ((!_200E_200D_206B_206C_202C_200F_206B_200B_206B_202C_206E_200D_206C_206C_206A_206C_200F_206A_206F_206B_202A_200C_206F_200C_206D_200D_206F_200B_200D_202E_206E_206C_206B_200E_202D_202C_206A_206A_202D_206F_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? 683962009 : 683962008); - break; - case 4: - num = ((!(overworldPosition == null)) ? 683962009 : 683962011); - break; - case 2: - _202D_206B_200E_200F_200D_202B_206F_206C_206C_206A_200C_206E_206B_202E_200F_206F_200F_202B_202B_202D_206D_206E_202C_200B_202C_206D_202A_202E_200F_200D_202A_206F_202C_206D_202C_202B_200D_206C_202E_200D_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(702333542)); - num = 683962009; - break; - case 3: - goto end_IL_0674; - } - continue; - end_IL_0674: - break; + ImGui.SetTooltip("Position unknown"); } } } } - _200E_200F_200D_200E_200D_200C_206A_202B_206E_206D_202C_202B_200D_200F_202C_206E_200E_200D_206B_202D_202E_202A_202D_202C_202A_202C_200F_206F_202A_200D_202E_202B_206D_202E_206D_200C_206B_202D_202D_200E_202E(); + ImGui.TableNextColumn(); DrawStatusGlyph(valueOrDefault, statusIconSpacing); } private void DrawStatusGlyph(bool unlocked, float statusIconSpacing) { - float num = _202C_200F_206E_202E_200E_202C_202C_202E_202B_206B_200B_200D_202A_206C_202D_206B_200B_206C_200F_200B_206C_206C_206D_202E_200C_200F_206D_202E_200C_200B_202E_206C_202D_206C_202D_206E_202C_200C_206D_206F_202E() / 2f - statusIconSpacing; - _202C_200E_206A_206F_200E_200F_206F_200C_202D_202D_206E_206F_200D_202D_200E_206E_206F_202E_206F_202A_206F_200F_206A_200B_202C_200E_200F_200C_202D_206E_206E_200E_202C_200D_200B_206D_200D_200D_200E_202C_202E(_206B_200B_202C_206B_200D_202B_200C_206D_206E_202E_206A_200B_206D_206D_200E_202A_206D_202D_200D_206C_200D_200C_206F_206A_206C_206B_206F_202C_202B_202C_206E_200D_200B_206E_200B_202B_202C_200F_206A_202E() + num); + float num = ImGui.GetColumnWidth() / 2f - statusIconSpacing; + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + num); _uiUtils.ChecklistItem(string.Empty, unlocked ? UiThemeUtils.StatusComplete : UiThemeUtils.StatusLocked, unlocked ? FontAwesomeIcon.Check : FontAwesomeIcon.Times); } - [MethodImpl(MethodImplOptions.NoInlining)] private void RebuildFlatRows() { List<FlatRow> list = new List<FlatRow>(); if (_aetherytesByExpansion.Any((ExpansionGroup<AetheryteEntry> exp) => exp.Items.Any(AetherytePasses))) { - int num = 1424535059; - while (true) + list.Add(HeaderRow(0, "Aetherytes", "Aetherytes", _aetheryteUnlocked, _aetheryteTotal)); + if (_expandedGroups.Contains("Aetherytes")) { - int num2 = num; - int num3 = 1424535057; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + foreach (ExpansionGroup<AetheryteEntry> item in _aetherytesByExpansion) { - default: - continue; - case 0: - num = 1424535059; - continue; - case 2: - list.Add(HeaderRow(0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(648065356), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(648065356), _aetheryteUnlocked, _aetheryteTotal)); - if (_expandedGroups.Contains(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(648065356))) + List<AetheryteEntry> list2 = item.Items.Where(AetherytePasses).ToList(); + if (list2.Count == 0) { - num = 1424535056; continue; } - break; - case 1: - foreach (ExpansionGroup<AetheryteEntry> item in _aetherytesByExpansion) + string text = $"AetheryteExp_{item.SortOrder}"; + int valueOrDefault = _aetheryteExpansionUnlockedCounts.GetValueOrDefault(item.SortOrder); + list.Add(HeaderRow(1, text, item.ExpansionName, valueOrDefault, item.Items.Count)); + if (!_expandedGroups.Contains(text)) { - List<AetheryteEntry> list2 = item.Items.Where(AetherytePasses).ToList(); - if (list2.Count == 0) - { - continue; - } - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(13, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1272732722)); - defaultInterpolatedStringHandler.AppendFormatted(item.SortOrder); - string text = defaultInterpolatedStringHandler.ToStringAndClear(); - int valueOrDefault = _aetheryteExpansionUnlockedCounts.GetValueOrDefault(item.SortOrder); - list.Add(HeaderRow(1, text, item.ExpansionName, valueOrDefault, item.Items.Count)); - if (!_expandedGroups.Contains(text)) - { - continue; - } - using List<AetheryteEntry>.Enumerator enumerator2 = list2.GetEnumerator(); - num = -2140436778; - while (true) - { - int num5 = num; - num3 = -2140436777; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = (enumerator2.MoveNext() ? (-2140436780) : (-2140436779)); - break; - case 3: - { - AetheryteEntry current2 = enumerator2.Current; - list.Add(AetheryteLeafRow(2, current2, isAethernet: false)); - num = -2140436778; - break; - } - case 0: - num = -2140436778; - break; - case 2: - goto end_IL_018a; - } - continue; - end_IL_018a: - break; - } + continue; + } + foreach (AetheryteEntry item2 in list2) + { + list.Add(AetheryteLeafRow(2, item2, isAethernet: false)); } - break; } - break; } } if (_aethernetByCity.Any((CityGroup city) => city.Shards.Any(AetherytePasses))) { - int num = -1021691128; - while (true) + list.Add(HeaderRow(0, "Aethernet Shards", "Aethernet Shards", _aethernetUnlocked, _aethernetTotal)); + if (_expandedGroups.Contains("Aethernet Shards")) { - int num6 = num; - int num3 = -1021691127; - int num4 = num6; - switch ((num4 | num3) - (num4 & num3)) + foreach (CityGroup item3 in _aethernetByCity) { - default: - continue; - case 0: - num = -1021691128; - continue; - case 1: - list.Add(HeaderRow(0, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(827772541), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(827772541), _aethernetUnlocked, _aethernetTotal)); - if (_expandedGroups.Contains(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(263665615))) + List<AetheryteEntry> list3 = item3.Shards.Where(AetherytePasses).ToList(); + if (list3.Count == 0) { - num = -1021691125; continue; } - break; - case 2: - foreach (CityGroup item2 in _aethernetByCity) + string text2 = "AethernetCity_" + item3.CityName; + int valueOrDefault2 = _aethernetCityUnlockedCounts.GetValueOrDefault(item3.CityName); + list.Add(HeaderRow(1, text2, item3.CityName, valueOrDefault2, item3.Shards.Count, BatchKind.AethernetCity, item3)); + if (!_expandedGroups.Contains(text2)) { - List<AetheryteEntry> list3 = item2.Shards.Where(AetherytePasses).ToList(); - if (list3.Count == 0) - { - continue; - } - string text2 = _202B_200C_202C_200B_206C_206C_202D_206C_202B_200E_206A_206E_200D_200D_206C_202B_206E_206C_202B_206B_200E_200B_202B_206D_200D_206D_202A_200F_206E_200C_202E_202D_200D_202D_200F_202B_202B_206E_206B_200D_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-429040103), item2.CityName); - int valueOrDefault2 = _aethernetCityUnlockedCounts.GetValueOrDefault(item2.CityName); - list.Add(HeaderRow(1, text2, item2.CityName, valueOrDefault2, item2.Shards.Count, BatchKind.AethernetCity, item2)); - if (!_expandedGroups.Contains(text2)) - { - continue; - } - using List<AetheryteEntry>.Enumerator enumerator2 = list3.GetEnumerator(); - num = 2111684106; - while (true) - { - int num7 = num; - num3 = 2111684107; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - num = 2111684106; - break; - case 3: - { - AetheryteEntry current4 = enumerator2.Current; - list.Add(AetheryteLeafRow(2, current4, isAethernet: true)); - num = 2111684106; - break; - } - case 1: - num = (enumerator2.MoveNext() ? 2111684104 : 2111684105); - break; - case 2: - goto end_IL_03b5; - } - continue; - end_IL_03b5: - break; - } + continue; + } + foreach (AetheryteEntry item4 in list3) + { + list.Add(AetheryteLeafRow(2, item4, isAethernet: true)); } - break; } - break; } } if (_currentsByExpansion.Any((ExpansionGroup<ZoneCurrentGroup> exp) => exp.Items.Any(ZoneHasContent))) { - int num = -91847285; - while (true) + list.Add(HeaderRow(0, "Aether Currents", "Aether Currents", _currentUnlocked, _currentTotal)); + if (_expandedGroups.Contains("Aether Currents")) { - int num10 = num; - int num3 = -91847286; - int num4 = num10; - switch ((num4 | num3) - (num4 & num3)) + foreach (ExpansionGroup<ZoneCurrentGroup> item5 in _currentsByExpansion) { - default: - continue; - case 0: - num = -91847285; - continue; - case 1: - list.Add(HeaderRow(0, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1187258909), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-477932770), _currentUnlocked, _currentTotal)); - if (_expandedGroups.Contains(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(560694134))) + List<ZoneCurrentGroup> list4 = item5.Items.Where(ZoneHasContent).ToList(); + if (list4.Count == 0) { - num = -91847288; continue; } - break; - case 2: - foreach (ExpansionGroup<ZoneCurrentGroup> item3 in _currentsByExpansion) + string text3 = $"CurrentsExp_{item5.SortOrder}"; + int unlocked = item5.Items.Sum((ZoneCurrentGroup z) => _currentZoneUnlockedCounts.GetValueOrDefault(z.TerritoryId)); + int total = item5.Items.Sum((ZoneCurrentGroup z) => z.Currents.Count); + list.Add(HeaderRow(1, text3, item5.ExpansionName, unlocked, total)); + if (!_expandedGroups.Contains(text3)) { - List<ZoneCurrentGroup> list4 = item3.Items.Where(ZoneHasContent).ToList(); - if (list4.Count == 0) + continue; + } + foreach (ZoneCurrentGroup item6 in list4) + { + string text4 = $"CurrentZone_{item6.TerritoryId}"; + int valueOrDefault3 = _currentZoneUnlockedCounts.GetValueOrDefault(item6.TerritoryId); + list.Add(HeaderRow(2, text4, item6.ZoneName, valueOrDefault3, item6.Currents.Count, BatchKind.CurrentZone, null, item6)); + if (!_expandedGroups.Contains(text4)) { continue; } - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(12, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1831556210)); - defaultInterpolatedStringHandler2.AppendFormatted(item3.SortOrder); - string text3 = defaultInterpolatedStringHandler2.ToStringAndClear(); - int unlocked = item3.Items.Sum((ZoneCurrentGroup z) => _currentZoneUnlockedCounts.GetValueOrDefault(z.TerritoryId)); - int total = item3.Items.Sum((ZoneCurrentGroup z) => z.Currents.Count); - list.Add(HeaderRow(1, text3, item3.ExpansionName, unlocked, total)); - if (!_expandedGroups.Contains(text3)) + foreach (CurrentEntry item7 in item6.Currents.Where(CurrentPasses)) { - continue; - } - foreach (ZoneCurrentGroup item4 in list4) - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(12, 1); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1906658959)); - defaultInterpolatedStringHandler3.AppendFormatted(item4.TerritoryId); - string text4 = defaultInterpolatedStringHandler3.ToStringAndClear(); - int valueOrDefault3 = _currentZoneUnlockedCounts.GetValueOrDefault(item4.TerritoryId); - list.Add(HeaderRow(2, text4, item4.ZoneName, valueOrDefault3, item4.Currents.Count, BatchKind.CurrentZone, null, item4)); - if (!_expandedGroups.Contains(text4)) - { - continue; - } - IEnumerator<CurrentEntry> enumerator6 = item4.Currents.Where(CurrentPasses).GetEnumerator(); - try - { - num = -1715466179; - while (true) - { - int num11 = num; - num3 = -1715466178; - num4 = num11; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = (_206B_206A_202E_200B_202E_202D_202C_202A_206D_200C_200D_200B_200E_206E_202A_200B_202B_202A_200B_202B_200D_206C_206C_200E_206A_206B_206C_206B_206B_200F_202E_206C_202A_206A_202A_202C_206F_206C_206B_206A_202E((IEnumerator)enumerator6) ? (-1715466177) : (-1715466180)); - break; - case 1: - { - CurrentEntry current7 = enumerator6.Current; - list.Add(CurrentLeafRow(3, current7)); - num = -1715466179; - break; - } - case 0: - num = -1715466179; - break; - case 2: - goto end_IL_06d3; - } - continue; - end_IL_06d3: - break; - } - } - finally - { - num = ((enumerator6 == null) ? 1736578572 : 1736578575); - while (true) - { - int num12 = num; - num3 = 1736578574; - num4 = num12; - int num13 = num4 + num3; - int num14 = num4 & num3; - switch (num13 - (num14 + num14)) - { - case 2: - goto end_IL_077a; - case 1: - _200C_200B_200F_202E_206F_202B_202B_202B_200E_206F_206E_202D_202E_200D_206C_200C_200E_206D_206A_202B_206D_206F_202E_206A_202C_206C_202B_200B_206B_200B_202B_206C_206D_206D_206E_202D_202D_206C_200B_202E_202E((IDisposable)enumerator6); - num = 1736578572; - break; - case 0: - num = 1736578575; - break; - } - continue; - end_IL_077a: - break; - } - } + list.Add(CurrentLeafRow(3, item7)); } } - break; } - break; } } _flatRows = list; @@ -3278,81 +890,33 @@ internal sealed class AttunementJournalComponent private bool AetherytePasses(AetheryteEntry entry) { - int num = (_206E_202C_206F_200F_200D_202E_206C_200D_206F_202D_202E_200C_202D_206A_206D_200E_202E_202B_206D_206D_202B_202B_206C_200D_206C_202A_200D_202D_206E_202E_206E_200C_202C_200B_206E_200E_200F_206F_200E_200C_202E(_searchText) ? (-2025218308) : (-2025218305)); - while (true) + if (!string.IsNullOrEmpty(_searchText) && !entry.Name.Contains(_searchText, StringComparison.OrdinalIgnoreCase)) { - int num2 = num; - int num3 = -2025218307; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return false; - case 0: - num = ((!_aetheryteUnlockCache.GetValueOrDefault(entry.Location)) ? (-2025218312) : (-2025218311)); - break; - case 4: - return false; - case 1: - num = ((!_showUnattunedOnly) ? (-2025218312) : (-2025218307)); - break; - case 2: - num = (_206C_200C_202C_206A_206D_202E_206E_202A_200B_206D_200C_200F_206B_202E_206D_206E_202E_202C_206A_206C_206D_200B_200E_202C_202E_206E_202E_206B_206A_200F_200F_202E_206D_206B_200F_206A_202B_206B_200F_206E_202E(entry.Name, _searchText, StringComparison.OrdinalIgnoreCase) ? (-2025218308) : (-2025218306)); - break; - case 6: - num = -2025218305; - break; - case 5: - return true; - } + return false; } + if (_showUnattunedOnly && _aetheryteUnlockCache.GetValueOrDefault(entry.Location)) + { + return false; + } + return true; } private bool CurrentPasses(CurrentEntry entry) { - int num = ((!_showUnattunedOnly) ? 1104505652 : 1104505655); - while (true) + if (_showUnattunedOnly) { - int num2 = num; - int num3 = 1104505654; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0046; - case 2: - return true; - case 1: - return !_currentUnlockCache.GetValueOrDefault(entry.AetherCurrentId); - } - continue; - IL_0046: - num = 1104505655; + return !_currentUnlockCache.GetValueOrDefault(entry.AetherCurrentId); } + return true; } private bool ZoneHasContent(ZoneCurrentGroup zone) { - int num = (_206E_202C_206F_200F_200D_202E_206C_200D_206F_202D_202E_200C_202D_206A_206D_200E_202E_202B_206D_206D_202B_202B_206C_200D_206C_202A_200D_202D_206E_202E_206E_200C_202C_200B_206E_200E_200F_206F_200E_200C_202E(_searchText) ? (-1980776685) : (-1980776688)); - while (true) + if (!string.IsNullOrEmpty(_searchText) && !zone.ZoneName.Contains(_searchText, StringComparison.OrdinalIgnoreCase)) { - int num2 = num; - int num3 = -1980776687; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = -1980776688; - break; - case 0: - return false; - case 2: - return zone.Currents.Any(CurrentPasses); - case 1: - num = (_206C_200C_202C_206A_206D_202E_206E_202A_200B_206D_200C_200F_206B_202E_206D_206E_202E_202C_206A_206C_206D_200B_200E_202C_202E_206E_202E_206B_206A_200F_200F_202E_206D_206B_200F_206A_202B_206B_200F_206E_202E(zone.ZoneName, _searchText, StringComparison.OrdinalIgnoreCase) ? (-1980776685) : (-1980776687)); - break; - } + return false; } + return zone.Currents.Any(CurrentPasses); } private static FlatRow HeaderRow(int depth, string key, string label, int unlocked, int total, BatchKind batch = BatchKind.None, CityGroup? city = null, ZoneCurrentGroup? zone = null) @@ -3372,56 +936,37 @@ internal sealed class AttunementJournalComponent }; } - [MethodImpl(MethodImplOptions.NoInlining)] private static FlatRow AetheryteLeafRow(int depth, AetheryteEntry entry, bool isAethernet) { return new FlatRow { Kind = AttuneRowKind.AetheryteLeaf, Depth = depth, - Key = _202B_200C_202C_200B_206C_206C_202D_206C_202B_200E_206A_206E_200D_200D_206C_202B_206E_206C_202B_206B_200E_200B_202B_206D_200D_206D_202A_200F_206E_200C_202E_202D_200D_202D_200F_202B_202B_206E_206B_200D_202E(isAethernet ? global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(27897763) : global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1522017589), entry.Location.ToString()), + Key = (isAethernet ? "Shard_" : "Aeth_") + entry.Location, Label = entry.Name, Aetheryte = entry, IsAethernet = isAethernet }; } - [MethodImpl(MethodImplOptions.NoInlining)] private static FlatRow CurrentLeafRow(int depth, CurrentEntry entry) { return new FlatRow { Kind = AttuneRowKind.CurrentLeaf, Depth = depth, - Key = _202B_200C_202C_200B_206C_206C_202D_206C_202B_200E_206A_206E_200D_200D_206C_202B_206E_206C_202B_206B_200E_200B_202B_206D_200D_206D_202A_200F_206E_200C_202E_202D_200D_202D_200F_202B_202B_206E_206B_200D_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1869444216), entry.AetherCurrentId.ToString()), + Key = "Cur_" + entry.AetherCurrentId, Current = entry }; } - [MethodImpl(MethodImplOptions.NoInlining)] private static string FormatCount(int unlocked, int total) { - int num = ((total == 0) ? (-601303065) : (-601303068)); - while (true) + if (total != 0) { - int num2 = num; - int num3 = -601303067; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0043; - case 1: - return _200E_206C_206C_202B_202D_200D_200F_206E_206E_202A_200F_202A_200E_200E_200D_206E_206B_206B_202C_200B_200C_206E_206B_200C_202B_202E_200D_200F_200F_200C_206E_200D_206B_200C_202C_202B_202A_206F_206A_206D_202E(_206F_200E_206E_202C_206E_200E_206C_206A_206C_200F_202C_200D_202C_202A_206E_200F_206A_202A_202A_202E_202D_200E_200B_202B_200E_200C_202D_202C_200B_206F_202A_202A_206C_206E_200B_206A_200D_206B_202B_200E_202E(unlocked.ToString(_202A_200B_206B_206F_202C_200C_200E_200D_206C_202C_202A_202D_202A_200B_206A_206A_206B_202E_206B_202D_206F_202C_202B_200D_206E_206B_206A_206D_200F_206F_202E_200D_206F_202B_202A_206E_206F_200D_206F_202A_202E()), CountPadWidth), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(884463298), _206F_200E_206E_202C_206E_200E_206C_206A_206C_200F_202C_200D_202C_202A_206E_200F_206A_202A_202A_202E_202D_200E_200B_202B_200E_200C_202D_202C_200B_206F_202A_202A_206C_206E_200B_206A_200D_206B_202B_200E_202E(total.ToString(_202A_200B_206B_206F_202C_200C_200E_200D_206C_202C_202A_202D_202A_200B_206A_206A_206B_202E_206B_202D_206F_202C_202B_200D_206E_206B_206A_206D_200F_206F_202E_200D_206F_202B_202A_206E_206F_200D_206F_202A_202E()), CountPadWidth)); - case 2: - return _200E_206C_206C_202B_202D_200D_200F_206E_206E_202A_200F_202A_200E_200E_200D_206E_206B_206B_202C_200B_200C_206E_206B_200C_202B_202E_200D_200F_200F_200C_206E_200D_206B_200C_202C_202B_202A_206F_206A_206D_202E(_202E_206B_206B_202D_202D_202B_202D_202C_202C_200D_200C_206E_202C_206B_200E_200C_200E_202A_202B_202A_206A_202A_202C_200E_202A_200E_200D_202C_206B_206E_206D_206F_200E_206B_202C_202B_206C_206A_206B_202E_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(792471175), CountPadWidth), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2014446916), _202E_206B_206B_202D_202D_202B_202D_202C_202C_200D_200C_206E_202C_206B_200E_200C_200E_202A_202B_202A_206A_202A_202C_200E_202A_200E_200D_202C_206B_206E_206D_206F_200E_206B_202C_202B_206C_206A_206B_202E_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(792471175), CountPadWidth)); - } - continue; - IL_0043: - num = -601303068; + return unlocked.ToString(CultureInfo.CurrentCulture).PadLeft(CountPadWidth) + " / " + total.ToString(CultureInfo.CurrentCulture).PadLeft(CountPadWidth); } + return "-".PadLeft(CountPadWidth) + " / " + "-".PadLeft(CountPadWidth); } private void StopAll(string reason) @@ -3444,449 +989,66 @@ internal sealed class AttunementJournalComponent private bool IsAnyControllerRunning() { - int num = (_questController.IsRunning ? 1800165961 : 1800165962); - while (true) + if (!_questController.IsRunning && !_fateController.IsRunning && !_seasonalDutyController.IsRunning && !_customDeliveryController.IsRunning) { - int num2 = num; - int num3 = 1800165960; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = (_customDeliveryController.IsRunning ? 1800165961 : 1800165964); - break; - case 1: - return true; - case 5: - num = (_seasonalDutyController.IsRunning ? 1800165961 : 1800165960); - break; - case 4: - return _attunementController.IsRunning; - case 3: - num = 1800165962; - break; - case 2: - num = (_fateController.IsRunning ? 1800165961 : 1800165965); - break; - } + return _attunementController.IsRunning; } + return true; } private void StartBatchAttunement(string batchName, IEnumerable<(string Name, ushort TerritoryId, Vector3 Position, ITask AttuneTask)> targets) { _pendingBatchTargets.Clear(); _pendingBatchTargets.AddRange(targets); - int num = ((_pendingBatchTargets.Count != 0) ? 681163999 : 681163998); - while (true) + if (_pendingBatchTargets.Count != 0) { - int num2 = num; - int num3 = 681163999; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0064; - case 0: - { - _batchName = batchName; - (string, ushort, Vector3, ITask) tuple = PopNearestTarget(); - StartAttunement(batchName, tuple.Item2, tuple.Item3, tuple.Item4); - return; - } - case 1: - return; - } - continue; - IL_0064: - num = 681163998; + _batchName = batchName; + (string, ushort, Vector3, ITask) tuple = PopNearestTarget(); + StartAttunement(batchName, tuple.Item2, tuple.Item3, tuple.Item4); } } private (string Name, ushort TerritoryId, Vector3 Position, ITask AttuneTask) PopNearestTarget() { - IGameObject gameObject = _200F_200C_202D_202D_200C_202C_202D_200E_202B_206A_206E_206D_202B_200E_200B_206E_200E_202A_202C_206F_200E_206C_200D_202B_206F_202A_202D_200B_206C_202B_206E_206A_200F_206C_202B_202E_206E_200B_206C_202D_202E(_objectTable, 0); - Vector3 value = ((gameObject != null) ? _200D_202E_200B_200D_202D_200B_206E_202A_206F_200D_202A_206A_206B_200D_202C_200C_200D_200B_206C_202D_202C_200D_200E_206D_202B_206F_202B_206D_200F_202B_202D_206E_206C_206F_200D_200E_202C_200F_200F_202A_202E(gameObject) : Vector3.Zero); + Vector3 value = _objectTable[0]?.Position ?? Vector3.Zero; int index = 0; float num = float.MaxValue; - int num2 = 0; - int num3 = 803266970; - float num9 = default(float); - while (true) + for (int i = 0; i < _pendingBatchTargets.Count; i++) { - int num4 = num3; - int num5 = 803266968; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) + float num2 = Vector3.DistanceSquared(value, _pendingBatchTargets[i].Position); + if (num2 < num) { - case 2: - num3 = ((num2 < _pendingBatchTargets.Count) ? 803266969 : 803266973); - break; - case 4: - num = num9; - index = num2; - num3 = 803266968; - break; - case 0: - { - int num10 = num2; - num5 = 1; - num6 = num10; - int num11 = num6 ^ num5; - int num12 = num6 & num5; - num2 = num11 + (num12 + num12); - num3 = 803266970; - break; - } - case 5: - { - (string Name, ushort TerritoryId, Vector3 Position, ITask AttuneTask) result = _pendingBatchTargets[index]; - _pendingBatchTargets.RemoveAt(index); - return result; - } - case 3: - num3 = 803266970; - break; - case 1: - num9 = Vector3.DistanceSquared(value, _pendingBatchTargets[num2].Position); - num3 = ((!(num9 < num)) ? 803266968 : 803266972); - break; + num = num2; + index = i; } } + (string Name, ushort TerritoryId, Vector3 Position, ITask AttuneTask) result = _pendingBatchTargets[index]; + _pendingBatchTargets.RemoveAt(index); + return result; } - [MethodImpl(MethodImplOptions.NoInlining)] private void StartAttunement(string targetName, ushort territoryId, Vector3 position, ITask attuneTask) { - PlayerNavState playerNavState = _206A_202A_200C_202C_200F_206D_206A_202C_206D_206B_206F_200D_206E_200C_206E_200C_206B_206E_206D_206F_202E_206A_206A_200B_200F_200C_202E_202C_200C_202A_202E_202A_202C_206B_202C_200E_202E_202C_206D_202C_202E(_playerNavStateBuilder, (int?)null); - int num = ((playerNavState != null) ? 1264790983 : 1264790979); - List<ITask> list = default(List<ITask>); - RouteResult routeResult = default(RouteResult); - while (true) + PlayerNavState playerNavState = _playerNavStateBuilder.Build(); + if (playerNavState == null) { - int num2 = num; - int num3 = 1264790983; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - list.Add(new MoveTask(territoryId, position, null, MountRequired: false, DismountRequired: false, 3f)); - list.Add(new Questionable.Controller.Steps.Common.Mount.UnmountTask()); - list.Add(attuneTask); - _attunementController.Start(targetName, list); - return; - case 4: - _200D_200E_202C_206E_200E_200E_202C_200D_202C_200E_200C_200C_200F_206D_202E_202A_200F_206E_206E_202E_202A_202B_200E_206F_200F_200E_200B_202D_202A_200C_206C_200E_206E_202D_200C_200B_206D_200D_206D_202A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(145706259), Array.Empty<object>()); - return; - case 1: - _200D_200E_202C_206E_200E_200E_202C_200D_202C_200E_200C_200C_200F_206D_202E_202A_200F_206E_206E_202E_202A_202B_200E_206F_200F_200E_200B_202D_202A_200C_206C_200E_206E_202D_200C_200B_206D_200D_206D_202A_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1554603032), new object[2] { territoryId, targetName }); - return; - case 2: - num = 1264790979; - break; - case 3: - num = ((_206A_200D_200E_206F_200E_206A_206E_202B_202A_206A_202A_206F_206B_206D_206B_200C_200C_202B_206D_206B_202A_206C_206A_206E_206D_200C_202B_200C_200F_200C_206A_202E_202C_202A_200E_206A_200D_206D_206C_202B_202E(_clientState) == territoryId) ? 1264790977 : 1264790982); - break; - case 5: - list.AddRange(_taskMapper.MapInstructions(_206C_200D_202E_206F_206F_206E_206F_206D_202B_206B_206E_202C_200B_206E_202D_200C_202C_202C_202B_202B_200B_206E_206E_202B_206A_206C_206A_200B_202C_200B_206B_202C_202D_200D_202E_202B_206B_200E_206E_202D_202E(_instructionBuilder, routeResult, (uint)territoryId, false))); - num = 1264790977; - break; - case 0: - routeResult = _206B_202A_206B_200D_206B_200D_202E_206D_206B_202E_206B_206D_206D_200C_200C_200C_200E_206F_200D_200F_200B_202A_200B_200D_200F_206E_202E_206B_200E_206A_206C_200D_200D_202B_200C_202D_200B_200E_206D_202E(_navRouter, playerNavState, (uint)territoryId, position, (IReadOnlySet<string>)null); - list = new List<ITask>(); - num = ((_206C_202D_202D_200E_206B_202E_200B_200B_206C_206C_206E_202A_206C_200D_206A_202C_202A_206F_206A_206F_202B_200C_206B_200F_206C_200C_200E_202D_206F_202E_202E_200F_202B_200C_200F_202C_202E_202C_206F_206D_202E(routeResult).Count <= 0) ? 1264790980 : 1264790978); - break; - } + _logger.LogWarning("Cannot build PlayerNavState for attunement routing"); + return; } - } - - static ReadOnlyDictionary<EAetheryteLocation, Vector3> _200F_202C_200C_206C_206E_206E_200F_200F_206F_206D_206D_206B_200E_206C_202B_206F_202B_206F_206A_202A_200D_200D_202D_202D_202C_202E_206A_202D_206A_200F_202E_206F_202A_200E_206B_202A_206D_202C_202D_206F_202E(AetheryteData P_0) - { - return P_0.Locations; - } - - static ReadOnlyDictionary<EAetheryteLocation, ushort> _200C_206F_200C_200E_200B_206B_206D_202A_206A_200B_202E_202D_206B_200E_206B_200E_202D_200F_206C_200B_200E_206A_200F_206E_202A_202E_206E_200B_206E_202A_200F_202E_202E_202B_200C_200B_202A_200F_206D_206E_202E(AetheryteData P_0) - { - return P_0.TerritoryIds; - } - - static ReadOnlyDictionary<EAetheryteLocation, ushort> _200F_206F_202E_202D_202D_206B_200C_206D_202B_202E_206B_200F_202E_200B_200F_206B_200F_200C_202A_206D_206B_206E_200D_206E_206C_202A_200F_200B_202B_206B_206C_200C_200B_206D_200E_206C_206B_206C_200B_202C_202E(AetheryteData P_0) - { - return P_0.AethernetGroups; - } - - static bool _202E_206A_200B_206C_202C_206D_206F_200B_206B_206E_206E_206E_206B_206E_202D_200B_206A_200E_206E_200E_200E_200D_202E_202B_202E_206C_202C_206E_202B_206E_206E_202C_206B_202D_200C_206D_206A_200C_200B_206D_202E(EAetheryteLocation P_0) - { - return AetheryteConverter.IsLargeAetheryte(P_0); - } - - static bool _206B_206A_202E_200B_202E_202D_202C_202A_206D_200C_200D_200B_200E_206E_202A_200B_202B_202A_200B_202B_200D_206C_206C_200E_206A_206B_206C_206B_206B_200F_202E_206C_202A_206A_202A_202C_206F_206C_206B_206A_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200C_200B_200F_202E_206F_202B_202B_202B_200E_206F_206E_202D_202E_200D_206C_200C_200E_206D_206A_202B_206D_206F_202E_206A_202C_206C_202B_200B_206B_200B_202B_206C_206D_206D_206E_202D_202D_206C_200B_202E_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static long _206B_206E_200F_202C_200E_206D_206A_200E_200B_202B_206D_206D_200E_200B_202B_206B_202C_202D_206E_200E_202C_206B_200F_206B_200E_202B_206D_202C_206F_200C_202C_200F_202A_200E_200F_200B_202E_200F_206B_200E_202E() - { - return Environment.TickCount64; - } - - static string _200E_206C_206C_202B_202D_200D_200F_206E_206E_202A_200F_202A_200E_200E_200D_206E_206B_206B_202C_200B_200C_206E_206B_200C_202B_202E_200D_200F_200F_200C_206E_200D_206B_200C_202C_202B_202A_206F_206A_206D_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static ImFontPtr _202E_206B_200F_200B_200B_202E_202C_202E_200C_206F_206A_206C_200C_200E_206D_202E_200C_200D_202C_200B_200F_202A_206B_202A_206F_202B_200E_206B_202D_200C_206F_202C_202D_206C_206E_202A_202C_202E_206B_202A_202E() - { - return UiBuilder.IconFont; - } - - static ImRaii.FontDisposable _200D_200F_200D_200D_202D_202E_200E_200E_200F_206A_206F_200D_206B_200C_202C_202A_200D_202D_206C_202A_202A_206C_202B_200E_202E_206D_206C_200F_206E_202B_200F_200E_200E_200D_202A_200D_206F_200E_200E_206B_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static string _206F_206E_200F_202C_200C_206D_206C_206F_200C_200F_206D_202C_206E_202C_200C_202D_202D_206A_206F_206B_202D_206A_202A_202A_200D_202A_202B_200B_206F_202B_200B_206B_206E_206F_202C_206C_202C_200E_200F_206C_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static Vector2 _206A_200D_202A_202B_202E_202D_206E_200C_206E_202C_200B_200F_202B_200C_202A_200C_202E_202A_200E_200C_202B_200E_202C_200B_200F_206E_202B_200C_206D_202E_202A_200C_202D_200B_206E_200D_202A_202D_200C_200C_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static ImGuiStylePtr _206E_200F_200F_202A_206B_206D_200E_206A_206F_200C_202C_200E_200D_206C_202B_202A_206E_202E_202D_200B_200B_202A_206C_202D_206F_200F_202E_200C_202E_200B_202B_202E_206D_206C_206B_206D_200C_202B_206A_200F_202E() - { - return ImGui.GetStyle(); - } - - static Vector2 _206D_200E_200C_202D_202D_200D_200E_206A_200F_206B_206D_202B_200B_202D_206E_202D_202D_202B_202C_202D_200E_206B_202C_202E_200E_206F_202B_206B_206B_206D_206A_202D_202A_206E_202A_202E_202C_202A_202A_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static void _200B_200C_200F_206C_202C_206D_200D_200C_202A_202C_202D_206F_200B_202A_202A_206A_200E_206D_206C_202A_200B_206F_200D_200F_202E_202C_200B_206A_206F_206A_200C_206E_206F_206B_206D_206D_202B_206A_202E_206F_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static void _206D_202A_206D_206E_206E_200D_200F_202C_200C_202B_202C_206E_202E_206E_202B_206A_200B_200C_202B_206E_200C_206B_200D_202E_206F_200D_200E_206A_206A_200E_200B_200E_206F_202C_206F_202C_202E_202C_200E_202C_202E() - { - ImGui.SameLine(); - } - - static float _206C_206E_202E_200B_202D_206C_200B_206F_200F_206E_206C_202C_206D_200B_202D_206C_200D_206E_202D_202A_202D_200B_206D_206D_200E_206F_200B_206E_202C_202D_206F_206E_202C_206C_200D_200B_202B_200F_206E_202B_202E() - { - return ImGui.GetFrameHeight(); - } - - static void _202A_200F_200E_202B_202A_202A_200B_200E_200C_202D_206B_206C_206C_202C_206E_200E_202B_202A_202C_206E_202B_200E_206A_200D_202E_206D_206B_206F_202B_200D_206E_206F_206D_206B_202A_206E_206C_206E_206C_200E_202E() - { - ImGui.Separator(); - } - - static IUiBuilder _202A_200D_206C_206F_202A_206C_206C_206F_202E_200C_206A_200D_206C_206B_200F_206E_206A_200D_200F_200B_206B_206C_202E_206B_202E_206F_200E_200F_206A_206C_206C_200F_200C_202E_206B_202A_206C_202E_200F_200E_202E(IDalamudPluginInterface P_0) - { - return P_0.UiBuilder; - } - - static IFontHandle _202C_202D_200E_200B_206F_200D_200C_202A_200C_200F_206C_200E_202E_206F_200D_202E_200D_206A_200E_206D_200C_206E_202A_206E_202A_206A_206B_206B_200C_206E_202D_200F_200E_206B_200F_200C_200E_200B_202D_206D_202E(IUiBuilder P_0) - { - return P_0.IconFontFixedWidthHandle; - } - - static IDisposable _206D_206B_206F_206D_200F_202D_206E_206A_206F_200E_200C_206D_206F_200D_202C_206B_202C_206B_202D_206C_206C_206B_202C_206E_206A_206B_200E_200C_200C_202B_202A_202E_206C_200D_206E_206A_206D_202D_206F_206F_202E(IFontHandle P_0) - { - return P_0.Push(); - } - - static ImGuiIOPtr _206B_200B_200C_206A_200E_200D_202D_206A_200F_206B_202D_200F_206A_202C_200D_202A_200B_200F_206B_200F_206F_206C_202B_202C_200C_206A_200B_200C_202E_202E_202A_202A_200D_200B_202A_206E_202C_200D_206F_200E_202E() - { - return ImGui.GetIO(); - } - - static void _206A_206F_200C_200E_200E_202A_202D_202E_202A_206C_202A_200D_202E_200D_202C_202B_200D_200B_206F_206B_202D_206B_202E_206C_202D_200D_206C_200B_202B_200F_206D_200F_206F_202A_202D_202A_200F_206B_206A_206B_202E(ImU8String P_0, ImGuiTableColumnFlags P_1, float P_2, uint P_3) - { - ImGui.TableSetupColumn(P_0, P_1, P_2, P_3); - } - - static void _202D_200E_206A_206F_206C_200C_200E_200E_206F_200F_200C_206A_206A_202E_202E_206E_206B_206C_202D_206A_206F_202C_206A_206C_200F_202B_202E_206D_206E_206F_202D_200F_206A_206D_206F_206D_200F_206F_200D_202A_202E() - { - ImGui.TableHeadersRow(); - } - - static float _202B_202D_200E_200B_206F_200D_206B_202C_202E_202C_200E_206E_206D_200D_200E_200B_202D_202A_206D_200B_206E_200C_202E_206B_202E_200D_202B_202C_206B_206B_200F_206E_200B_206C_206A_206C_200E_202B_200E_200D_202E() - { - return ImGui.GetTextLineHeightWithSpacing(); - } - - unsafe static ImGuiListClipper* _206C_206C_206A_202A_200C_202E_200F_200D_200C_200F_206E_206E_206B_206E_206A_206C_200D_206C_200E_200E_202C_200F_200E_206E_202B_206F_202A_200D_206A_202C_206F_202E_206D_202C_206C_200C_206D_206B_200C_202B_202E() - { - return ImGuiNative.ImGuiListClipper(); - } - - unsafe static void _200B_202C_206D_200C_202E_206A_202C_202B_202D_200E_202C_202E_200B_202A_202D_206A_206D_200B_200E_206B_200D_202B_200C_200D_206A_206C_206E_200E_202A_200D_206E_206D_200E_202A_202A_202B_200F_200E_202B_206F_202E(ImGuiListClipper* P_0, int P_1, float P_2) - { - ImGuiNative.Begin(P_0, P_1, P_2); - } - - static void _206C_206A_202E_200D_202A_200C_200C_200F_200F_206D_206F_206B_202E_200C_202D_200B_200D_200B_202A_206F_202B_202C_202E_200F_200F_206B_206C_206E_202D_200C_200D_202A_202C_200D_202B_202E_200B_200E_200D_206A_202E() - { - ImGui.TableNextRow(); - } - - static bool _200E_200F_200D_200E_200D_200C_206A_202B_206E_206D_202C_202B_200D_200F_202C_206E_200E_200D_206B_202D_202E_202A_202D_202C_202A_202C_200F_206F_202A_200D_202E_202B_206D_202E_206D_200C_206B_202D_202D_200E_202E() - { - return ImGui.TableNextColumn(); - } - - static float _206B_200B_202C_206B_200D_202B_200C_206D_206E_202E_206A_200B_206D_206D_200E_202A_206D_202D_200D_206C_200D_200C_206F_206A_206C_206B_206F_202C_202B_202C_206E_200D_200B_206E_200B_202B_202C_200F_206A_202E() - { - return ImGui.GetCursorPosX(); - } - - static void _202C_200E_206A_206F_200E_200F_206F_200C_202D_202D_206E_206F_200D_202D_200E_206E_206F_202E_206F_202A_206F_200F_206A_200B_202C_200E_200F_200C_202D_206E_206E_200E_202C_200D_200B_206D_200D_200D_200E_202C_202E(float P_0) - { - ImGui.SetCursorPosX(P_0); - } - - static bool _206A_200F_206E_206F_202D_202D_202E_206A_202D_200F_202D_206A_200B_202E_202E_202A_206A_200D_202D_202D_200B_200D_200E_202D_200C_206A_206E_202B_202B_200D_202C_202A_200E_206D_202C_202A_206A_206F_202C_202B_202E(ImU8String P_0, bool P_1, ImGuiSelectableFlags P_2, Vector2 P_3) - { - return ImGui.Selectable(P_0, P_1, P_2, P_3); - } - - static string _202B_200C_202C_200B_206C_206C_202D_206C_202B_200E_206A_206E_200D_200D_206C_202B_206E_206C_202B_206B_200E_200B_202B_206D_200D_206D_202A_200F_206E_200C_202E_202D_200D_202D_200F_202B_202B_206E_206B_200D_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static bool _200E_200D_206D_202B_202C_200B_202D_200F_202A_206A_206C_206E_202C_206E_202A_202D_202A_206D_202E_206D_206D_200E_206A_202E_206E_206A_200F_200B_206F_206E_200E_206A_206F_206D_206A_202B_206C_200C_200F_202A_202E(ImGuiMouseButton P_0) - { - return ImGui.IsItemClicked(P_0); - } - - static void _202B_200B_206E_206F_206B_206E_206F_202E_206A_202B_206F_202E_202D_206A_206E_200B_202D_200F_206F_206B_206F_202E_200C_202B_200F_200F_206D_200D_206A_202C_202E_200F_206D_200E_206C_202A_200E_206F_206A_206C_202E(ImU8String P_0, ImGuiPopupFlags P_1) - { - ImGui.OpenPopup(P_0, P_1); - } - - static ImRaii.PopupDisposable _200D_200D_206D_206D_202E_206F_200C_206F_202B_206A_202B_206D_202A_200F_206E_200B_206A_202D_202B_206E_202D_202C_200E_206C_206B_206C_200F_202A_206D_202A_202C_206A_206F_206E_200C_206B_202C_202E_200C_202E(ImU8String P_0) - { - return ImRaii.Popup(P_0); - } - - static bool _202C_206D_200C_202E_200F_206B_200B_202C_206A_202B_200C_202C_206A_206F_206E_206B_206E_206B_202B_200E_202D_202A_206E_206F_200F_206E_202E_206B_202E_206F_202D_206B_200F_206D_202A_206E_202C_202D_206A_206A_202E(ImU8String P_0, bool P_1, bool P_2) - { - return ImGui.MenuItem(P_0, P_1, P_2); - } - - static bool _206E_202C_206F_200F_200D_202E_206C_200D_206F_202D_202E_200C_202D_206A_206D_200E_202E_202B_206D_206D_202B_202B_206C_200D_206C_202A_200D_202D_206E_202E_206E_200C_202C_200B_206E_200E_200F_206F_200E_200C_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static bool _200D_202A_200D_200B_206C_202D_206F_202A_206E_206C_200E_206B_200B_206E_200B_206E_202B_200D_200C_202C_200D_202E_200C_202A_206E_206A_202B_206A_200E_202E_202D_202A_206F_202E_200F_200B_206E_202E_200D_206D_202E() - { - return ImGui.IsItemHovered(); - } - - static QuestId _202A_206B_206F_200C_200B_202D_200C_206B_202E_206E_200C_202D_202C_200C_206B_200D_206E_200C_206F_200D_200B_206A_206E_206F_202C_202E_206C_202B_202E_206A_200E_206C_200F_202D_200C_202D_202B_200F_202C_200D_202E(uint P_0) - { - return QuestId.FromRowId(P_0); - } - - static ImRaii.DisabledDisposable _206E_202A_200B_206D_206B_206C_206E_206E_202D_206F_206C_202C_206F_200D_202D_206D_202A_202B_206C_202B_200F_200B_206D_206C_200F_200C_206A_206A_202B_200D_206B_200F_206B_200D_202D_202A_202B_202A_202C_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static bool _200E_200D_206B_206C_202C_200F_206B_200B_206B_202C_206E_200D_206C_206C_206A_206C_200F_206A_206F_206B_202A_200C_206F_200C_206D_200D_206F_200B_200D_202E_206E_206C_206B_200E_202D_202C_206A_206A_202D_206F_202E(ImGuiHoveredFlags P_0) - { - return ImGui.IsItemHovered(P_0); - } - - static void _202D_206B_200E_200F_200D_202B_206F_206C_206C_206A_200C_206E_206B_202E_200F_206F_200F_202B_202B_202D_206D_206E_202C_200B_202C_206D_202A_202E_200F_200D_202A_206F_202C_206D_202C_202B_200D_206C_202E_200D_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } - - static float _202C_200F_206E_202E_200E_202C_202C_202E_202B_206B_200B_200D_202A_206C_202D_206B_200B_206C_200F_200B_206C_206C_206D_202E_200C_200F_206D_202E_200C_200B_202E_206C_202D_206C_202D_206E_202C_200C_206D_206F_202E() - { - return ImGui.GetColumnWidth(); - } - - static bool _206C_200C_202C_206A_206D_202E_206E_202A_200B_206D_200C_200F_206B_202E_206D_206E_202E_202C_206A_206C_206D_200B_200E_202C_202E_206E_202E_206B_206A_200F_200F_202E_206D_206B_200F_206A_202B_206B_200F_206E_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); - } - - static CultureInfo _202A_200B_206B_206F_202C_200C_200E_200D_206C_202C_202A_202D_202A_200B_206A_206A_206B_202E_206B_202D_206F_202C_202B_200D_206E_206B_206A_206D_200F_206F_202E_200D_206F_202B_202A_206E_206F_200D_206F_202A_202E() - { - return CultureInfo.CurrentCulture; - } - - static string _206F_200E_206E_202C_206E_200E_206C_206A_206C_200F_202C_200D_202C_202A_206E_200F_206A_202A_202A_202E_202D_200E_200B_202B_200E_200C_202D_202C_200B_206F_202A_202A_206C_206E_200B_206A_200D_206B_202B_200E_202E(string P_0, int P_1) - { - return P_0.PadLeft(P_1); - } - - static string _202E_206B_206B_202D_202D_202B_202D_202C_202C_200D_200C_206E_202C_206B_200E_200C_200E_202A_202B_202A_206A_202A_202C_200E_202A_200E_200D_202C_206B_206E_206D_206F_200E_206B_202C_202B_206C_206A_206B_202E_202E(string P_0, int P_1) - { - return P_0.PadLeft(P_1); - } - - static IGameObject _200F_200C_202D_202D_200C_202C_202D_200E_202B_206A_206E_206D_202B_200E_200B_206E_200E_202A_202C_206F_200E_206C_200D_202B_206F_202A_202D_200B_206C_202B_206E_206A_200F_206C_202B_202E_206E_200B_206C_202D_202E(IObjectTable P_0, int P_1) - { - return P_0[P_1]; - } - - static Vector3 _200D_202E_200B_200D_202D_200B_206E_202A_206F_200D_202A_206A_206B_200D_202C_200C_200D_200B_206C_202D_202C_200D_200E_206D_202B_206F_202B_206D_200F_202B_202D_206E_206C_206F_200D_200E_202C_200F_200F_202A_202E(IGameObject P_0) - { - return P_0.Position; - } - - static PlayerNavState _206A_202A_200C_202C_200F_206D_206A_202C_206D_206B_206F_200D_206E_200C_206E_200C_206B_206E_206D_206F_202E_206A_206A_200B_200F_200C_202E_202C_200C_202A_202E_202A_202C_206B_202C_200E_202E_202C_206D_202C_202E(PlayerNavStateBuilder P_0, int? P_1) - { - return P_0.Build(P_1); - } - - static void _200D_200E_202C_206E_200E_200E_202C_200D_202C_200E_200C_200C_200F_206D_202E_202A_200F_206E_206E_202E_202A_202B_200E_206F_200F_200E_200B_202D_202A_200C_206C_200E_206E_202D_200C_200B_206D_200D_206D_202A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static RouteResult _206B_202A_206B_200D_206B_200D_202E_206D_206B_202E_206B_206D_206D_200C_200C_200C_200E_206F_200D_200F_200B_202A_200B_200D_200F_206E_202E_206B_200E_206A_206C_200D_200D_202B_200C_202D_200B_200E_206D_202E(NavRouter P_0, PlayerNavState P_1, uint P_2, Vector3 P_3, IReadOnlySet<string> P_4) - { - return P_0.FindRoute(P_1, P_2, P_3, P_4); - } - - static IReadOnlyList<RouteSegment> _206C_202D_202D_200E_206B_202E_200B_200B_206C_206C_206E_202A_206C_200D_206A_202C_202A_206F_206A_206F_202B_200C_206B_200F_206C_200C_200E_202D_206F_202E_202E_200F_202B_200C_200F_202C_202E_202C_206F_206D_202E(RouteResult P_0) - { - return P_0.Segments; - } - - static IReadOnlyList<NavInstruction> _206C_200D_202E_206F_206F_206E_206F_206D_202B_206B_206E_202C_200B_206E_202D_200C_202C_202C_202B_202B_200B_206E_206E_202B_206A_206C_206A_200B_202C_200B_206B_202C_202D_200D_202E_202B_206B_200E_206E_202D_202E(RouteInstructionBuilder P_0, RouteResult P_1, uint P_2, bool P_3) - { - return P_0.Build(P_1, P_2, P_3); - } - - static uint _206A_200D_200E_206F_200E_206A_206E_202B_202A_206A_202A_206F_206B_206D_206B_200C_200C_202B_206D_206B_202A_206C_206A_206E_206D_200C_202B_200C_200F_200C_206A_202E_202C_202A_200E_206A_200D_206D_206C_202B_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static int _206C_200C_200B_206C_202E_202B_206D_206C_202A_206C_206A_200D_206A_206F_206D_200C_200F_200D_202D_206D_200F_202C_202B_206C_202E_202E_202B_206A_206D_206C_202D_200B_200D_206A_200F_206A_200D_200F_200B_206E_202E(string P_0) - { - return P_0.Length; + RouteResult routeResult = _navRouter.FindRoute(playerNavState, territoryId, position); + List<ITask> list = new List<ITask>(); + if (routeResult.Segments.Count > 0) + { + list.AddRange(_taskMapper.MapInstructions(_instructionBuilder.Build(routeResult, territoryId))); + } + else if (_clientState.TerritoryType != territoryId) + { + _logger.LogWarning("No route found to territory {TerritoryId} for {Target}, aborting", territoryId, targetName); + return; + } + list.Add(new MoveTask(territoryId, position, null, MountRequired: false, DismountRequired: false, 3f)); + list.Add(new Questionable.Controller.Steps.Common.Mount.UnmountTask()); + list.Add(attuneTask); + _attunementController.Start(targetName, list); } } diff --git a/Questionable/Questionable.Windows.JournalComponents/CustomDeliveryJournalComponent.cs b/Questionable/Questionable.Windows.JournalComponents/CustomDeliveryJournalComponent.cs index 48969c0..7790a23 100644 --- a/Questionable/Questionable.Windows.JournalComponents/CustomDeliveryJournalComponent.cs +++ b/Questionable/Questionable.Windows.JournalComponents/CustomDeliveryJournalComponent.cs @@ -1,11 +1,8 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; -using Dalamud.Configuration; using Dalamud.Interface; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin; @@ -27,32 +24,11 @@ namespace Questionable.Windows.JournalComponents; internal sealed class CustomDeliveryJournalComponent { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass33_0 - { - public QuestId questId; - - internal bool _003CDrawNpcSection_003Eb__0(Questionable.Model.Quest q) - { - return _202C_200C_202B_200C_206D_206C_206F_206A_200D_206D_200F_202A_202B_206F_202A_202C_200F_206A_202A_202E_202D_200C_206E_206C_200D_206D_202E_202A_202B_206B_200B_206C_206E_206B_200D_206C_206D_202B_202E(q.Id, (ElementId)questId); - } - - static bool _202C_200C_202B_200C_206D_206C_206F_206A_200D_206D_200F_202A_202B_206F_202A_202C_200F_206A_202A_202E_202D_200C_206E_206C_200D_206D_202E_202A_202B_206B_200B_206C_206E_206B_200D_206C_206D_202B_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - private const int WeeklyAllowanceLimit = 12; private const int DeliveriesPerWeek = 6; - private static readonly string[] SlotLabels = new string[3] - { - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1546741505), - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1787754537), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(591834367) - }; + private static readonly string[] SlotLabels = new string[3] { "Craft", "Gather", "Fish" }; private static readonly EDeliverySlot[] Slots = new EDeliverySlot[3] { @@ -61,33 +37,33 @@ internal sealed class CustomDeliveryJournalComponent EDeliverySlot.Fish }; - private static readonly string[] JobModeNames = new string[2] + private static readonly string[] JobModeNames = new string[2] { "Preferred", "Current Job" }; + + private static readonly string[] CrafterNames = new string[8] { "Carpenter", "Blacksmith", "Armorer", "Goldsmith", "Leatherworker", "Weaver", "Alchemist", "Culinarian" }; + + private static readonly EClassJob[] CrafterJobs = new EClassJob[8] { - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1758491554), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2088550031) + EClassJob.Carpenter, + EClassJob.Blacksmith, + EClassJob.Armorer, + EClassJob.Goldsmith, + EClassJob.Leatherworker, + EClassJob.Weaver, + EClassJob.Alchemist, + EClassJob.Culinarian }; - private static readonly string[] CrafterNames = new string[8] + private static readonly string[] GathererNames = new string[2] { "Miner", "Botanist" }; + + private static readonly EClassJob[] GathererJobs = new EClassJob[2] { - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1066230618), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(715786355), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1778691794), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-346963292), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-78338836), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(469033233), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-967072851), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1854423174) + EClassJob.Miner, + EClassJob.Botanist }; - private static readonly EClassJob[] CrafterJobs; + private static readonly string[] OvercapModeNames = new string[3] { "Ignore", "Cap", "Block" }; - private static readonly string[] GathererNames; - - private static readonly EClassJob[] GathererJobs; - - private static readonly string[] OvercapModeNames; - - private static readonly string[] CollectabilityTierNames; + private static readonly string[] CollectabilityTierNames = new string[3] { "High", "Mid", "Low" }; private readonly QuestController _questController; @@ -101,6 +77,8 @@ internal sealed class CustomDeliveryJournalComponent private readonly DeliveryPlannerService _plannerService; + private readonly CustomDeliveryNpcData _customDeliveryNpcData; + private readonly SatisfactionSupplyHelper _supplyHelper; private readonly DeliveryRewardCalculator _rewardCalculator; @@ -119,11 +97,11 @@ internal sealed class CustomDeliveryJournalComponent private readonly ILogger<CustomDeliveryJournalComponent> _logger; - private List<IGrouping<EExpansionVersion, SatisfactionSupplyInfo>>? _npcsByExpansion; + private List<IGrouping<EExpansionVersion, CustomDeliveryNpc>>? _npcsByExpansion; private readonly Dictionary<string, bool> _npcHeaderStates = new Dictionary<string, bool>(); - public CustomDeliveryJournalComponent(QuestController questController, CustomDeliveryController customDeliveryController, FateController fateController, SeasonalDutyController seasonalDutyController, AttunementController attunementController, DeliveryPlannerService plannerService, SatisfactionSupplyHelper supplyHelper, DeliveryRewardCalculator rewardCalculator, QuestRegistry questRegistry, QuestTooltipComponent questTooltip, QuestData questData, Configuration configuration, IDalamudPluginInterface pluginInterface, IDataManager dataManager, ILogger<CustomDeliveryJournalComponent> logger) + public CustomDeliveryJournalComponent(QuestController questController, CustomDeliveryController customDeliveryController, FateController fateController, SeasonalDutyController seasonalDutyController, AttunementController attunementController, DeliveryPlannerService plannerService, CustomDeliveryNpcData customDeliveryNpcData, SatisfactionSupplyHelper supplyHelper, DeliveryRewardCalculator rewardCalculator, QuestRegistry questRegistry, QuestTooltipComponent questTooltip, QuestData questData, Configuration configuration, IDalamudPluginInterface pluginInterface, IDataManager dataManager, ILogger<CustomDeliveryJournalComponent> logger) { _questController = questController; _customDeliveryController = customDeliveryController; @@ -131,6 +109,7 @@ internal sealed class CustomDeliveryJournalComponent _seasonalDutyController = seasonalDutyController; _attunementController = attunementController; _plannerService = plannerService; + _customDeliveryNpcData = customDeliveryNpcData; _supplyHelper = supplyHelper; _rewardCalculator = rewardCalculator; _questRegistry = questRegistry; @@ -142,1852 +121,611 @@ internal sealed class CustomDeliveryJournalComponent _logger = logger; } - [MethodImpl(MethodImplOptions.NoInlining)] public void DrawCustomDeliveries() { DrawWeeklyAllowanceBar(); List<int> deliveryQueue = _configuration.CustomDeliveries.DeliveryQueue; - int num; if (deliveryQueue.Count > 0) { - num = 1894687875; - int num7; - while (true) + ImGui.SameLine(); + using (ImRaii.Disabled(_customDeliveryController.IsRunning || _questController.IsRunning || _fateController.IsRunning || _seasonalDutyController.IsRunning || _attunementController.IsRunning)) { - int num2 = num; - int num3 = 1894687878; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Play, $"Start Queue ({deliveryQueue.Count})")) { - default: - continue; - case 6: - num = (_seasonalDutyController.IsRunning ? 1894687877 : 1894687874); - continue; - case 1: - num = (_fateController.IsRunning ? 1894687877 : 1894687872); - continue; - case 5: - _200C_200D_202C_200E_200B_202C_200B_200B_206D_200C_206B_200B_202B_202B_202E_206B_200E_202C_206B_202E_206C_200E_200C_202D_206C_206F_202C_206F_200B_202C_200F_200F_200E_200C_206D_206A_206C_206B_206B_202E(); - num = (_customDeliveryController.IsRunning ? 1894687877 : 1894687878); - continue; - case 0: - num = (_questController.IsRunning ? 1894687877 : 1894687879); - continue; - case 4: - num7 = (_attunementController.IsRunning ? 1 : 0); - break; - case 2: - num = 1894687875; - continue; - case 3: - num7 = 1; - break; - } - break; - } - ImRaii.DisabledDisposable disabledDisposable = _200F_206F_202D_206B_206F_200E_200E_206B_202C_202C_206B_206B_200D_206E_202B_202E_200B_200D_200E_206C_200F_206C_206A_206A_206F_202D_200E_202E_200C_202E_206D_202E_202D_202B_206D_206A_202D_200C_200E_202E_202E((byte)num7 != 0); - try - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(14, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1274998743)); - defaultInterpolatedStringHandler.AppendFormatted(deliveryQueue.Count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Play, defaultInterpolatedStringHandler.ToStringAndClear())) ? 1903583856 : 1903583857); - while (true) - { - int num8 = num; - int num3 = 1903583856; - int num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 2: - num = 1903583857; - break; - case 1: - _questController.Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2138710865)); - _fateController.Stop(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(947038429)); - _seasonalDutyController.Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1317773140)); - _attunementController.Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(243231760)); - _customDeliveryController.StartQueue(); - num = 1903583856; - break; - case 0: - goto end_IL_01a6; - } - continue; - end_IL_01a6: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? (-1507641474) : (-1507641475)); - while (true) - { - int num11 = num; - int num3 = -1507641476; - int num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) - { - case 0: - num = -1507641475; - break; - case 2: - goto end_IL_026f; - case 1: - _206B_200B_206F_206C_202B_206E_206E_200F_202C_206B_200D_200C_206E_206A_206C_200C_202B_202E_202B_202A_200D_206F_200F_200B_206A_206D_200D_206F_200C_202C_200F_206D_200E_206F_202E_206F_200C_202A_206C_206A_202E((IDisposable)disabledDisposable); - num = -1507641474; - break; - } - continue; - end_IL_026f: - break; + _questController.Stop("Custom delivery queue start"); + _fateController.Stop("Custom delivery queue start"); + _seasonalDutyController.Stop("Custom delivery queue start"); + _attunementController.Stop("Custom delivery queue start"); + _customDeliveryController.StartQueue(); } } } - _206B_202C_206C_206E_200E_206E_206A_200D_200D_202C_202E_206D_200C_200C_202E_206B_200D_200B_200D_202B_200E_202B_202E_200C_202C_200F_202D_206E_200B_206C_206F_200C_202D_206D_206A_202C_206F_202B_202C_202D_202E(); - _200D_202D_200F_200C_206C_202B_200F_202A_206C_206D_206F_206F_206C_200D_206C_202C_206E_206B_200E_206D_206B_206C_202E_200F_202D_200C_206D_202A_206E_202D_200F_200D_200D_200C_200E_200F_202D_200E_206F_206E_202E(); + ImGui.Separator(); + ImGui.Spacing(); DrawBonusNpcCallout(); DrawJobSelectionSettings(); - _200D_202D_200F_200C_206C_202B_200F_202A_206C_206D_206F_206F_206C_200D_206C_202C_206E_206B_200E_206D_206B_206C_202E_200F_202D_200C_206D_202A_206E_202D_200F_200D_200D_200C_200E_200F_202D_200E_206F_206E_202E(); - List<IGrouping<EExpansionVersion, SatisfactionSupplyInfo>> list = _npcsByExpansion ?? (_npcsByExpansion = (from x in _questData.AllQuests.Values.OfType<SatisfactionSupplyInfo>() + ImGui.Spacing(); + List<IGrouping<EExpansionVersion, CustomDeliveryNpc>> list = _npcsByExpansion ?? (_npcsByExpansion = (from x in _customDeliveryNpcData.AllNpcs group x by x.Expansion into g orderby (int)g.Key select g).ToList()); - num = ((list.Count != 0) ? 1578901953 : 1578901954); - while (true) + if (list.Count == 0) { - int num14 = num; - int num3 = 1578901955; - int num4 = num14; - int num15 = num4 + num3; - int num16 = num4 & num3; - switch (num15 - (num16 + num16)) + ImGui.TextColored(in UiThemeUtils.MutedTextColor, "No custom delivery NPCs found."); + return; + } + foreach (IGrouping<EExpansionVersion, CustomDeliveryNpc> item in list) + { + UiThemeUtils.SubSectionHeader(GetExpansionName(item.Key)); + ImGui.Spacing(); + foreach (CustomDeliveryNpc item2 in item.OrderBy((CustomDeliveryNpc x) => x.NpcRowId)) { - case 0: - goto IL_03a9; - case 1: - _200C_206E_200B_206E_200C_202B_206A_202A_200B_206D_206C_200E_206F_206A_206D_206D_202B_206B_206C_206F_200E_202A_200E_206C_202C_200D_206C_202E_206C_202A_206D_206C_206B_206A_202D_206D_206E_202B_206E_200F_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-150190344)); - return; - case 2: - { - foreach (IGrouping<EExpansionVersion, SatisfactionSupplyInfo> item in list) - { - UiThemeUtils.SubSectionHeader(GetExpansionName(item.Key)); - _200D_202D_200F_200C_206C_202B_200F_202A_206C_206D_206F_206F_206C_200D_206C_202C_206E_206B_200E_206D_206B_206C_202E_200F_202D_200C_206D_202A_206E_202D_200F_200D_200D_200C_200E_200F_202D_200E_206F_206E_202E(); - IEnumerator<SatisfactionSupplyInfo> enumerator2 = item.OrderBy((SatisfactionSupplyInfo x) => x.SortKey).GetEnumerator(); - try - { - num = -1162577959; - while (true) - { - int num17 = num; - num3 = -1162577958; - num4 = num17; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1162577959; - break; - case 2: - { - SatisfactionSupplyInfo current2 = enumerator2.Current; - int npcIndex = _206F_202B_206A_202C_202E_200F_200E_202A_200E_206B_206B_200C_206B_200C_206F_200F_202B_200F_206E_202C_206B_206C_202A_206F_200C_202C_202D_200D_206D_206B_202D_206F_206B_200C_206B_200C_206B_202E_206C_202A_202E((ElementId)(SatisfactionSupplyNpcId)current2.QuestId) - 1; - DrawNpcSection(current2, npcIndex); - num = -1162577959; - break; - } - case 3: - num = (_200C_200F_206C_200F_200E_206D_206F_206D_206D_206A_202B_206C_200B_206B_206A_206E_200E_206D_206B_202E_200E_206F_200E_202E_202A_200C_200B_200F_202E_206B_206F_202C_206F_200B_202D_206E_202B_200E_206A_206E_202E((IEnumerator)enumerator2) ? (-1162577960) : (-1162577957)); - break; - case 1: - goto end_IL_0432; - } - continue; - end_IL_0432: - break; - } - } - finally - { - num = ((enumerator2 == null) ? (-1577618023) : (-1577618024)); - while (true) - { - int num18 = num; - num3 = -1577618023; - num4 = num18; - int num19 = num4 + num3; - int num20 = num4 & num3; - switch (num19 - (num20 + num20)) - { - case 2: - num = -1577618024; - break; - case 1: - _206B_200B_206F_206C_202B_206E_206E_200F_202C_206B_200D_200C_206E_206A_206C_200C_202B_202E_202B_202A_200D_206F_200F_200B_206A_206D_200D_206F_200C_202C_200F_206D_200E_206F_202E_206F_200C_202A_206C_206A_202E((IDisposable)enumerator2); - num = -1577618023; - break; - case 0: - goto end_IL_04ea; - } - continue; - end_IL_04ea: - break; - } - } - _200D_202D_200F_200C_206C_202B_200F_202A_206C_206D_206F_206F_206C_200D_206C_202C_206E_206B_200E_206D_206B_206C_202E_200F_202D_200C_206D_202A_206E_202D_200F_200D_200D_200C_200E_200F_202D_200E_206F_206E_202E(); - } - return; + DrawNpcSection(item2, item2.NpcIndex); } - } - continue; - IL_03a9: - num = 1578901954; + ImGui.Spacing(); } } - [MethodImpl(MethodImplOptions.NoInlining)] private static void DrawWeeklyAllowanceBar() { - int num = _206D_202A_200F_206F_200C_202E_202C_202D_206E_200D_200C_202B_206F_200D_200B_202E_200F_202D_200C_202E_202A_206C_200B_202E_202B_202D_202D_200C_200D_206F_206C_206E_200C_202D_206D_206B_200E_206D_206B_200D_202E(); - int num2 = num; - int num3 = 12; - int num4 = ~(~num3 + num2); + int remainingAllowances = SatisfactionSupplyActions.GetRemainingAllowances(); + int num = 12 - remainingAllowances; TimeSpan item = CalculateWeeklyReset().TimeUntilReset; - string unit = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-684269491); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(55, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-953518964)); - defaultInterpolatedStringHandler.AppendFormatted(num4); - JournalUiShared.DrawAllowanceHeader(num4, 12, unit, item, defaultInterpolatedStringHandler.ToStringAndClear()); + JournalUiShared.DrawAllowanceHeader(num, 12, "weekly allowances", item, $"Shared across all custom delivery NPCs\nUsed this week: {num}"); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawBonusNpcCallout() { - byte b = _206E_200B_200C_206D_200E_202A_206D_206E_206A_206C_206D_206D_200D_200D_202B_202D_202B_206C_202D_206C_206F_206D_206A_200B_202C_200F_202E_200D_202E_206A_202A_206A_202C_200F_206E_200B_206A_206D_206A_200D_202E(); - int num = ((b != byte.MaxValue) ? (-653921244) : (-653921245)); - IQuestInfo questInfo = default(IQuestInfo); - int num8 = default(int); - SatisfactionBonusGuarantee row = default(SatisfactionBonusGuarantee); - while (true) + byte b = SatisfactionSupplyActions.GetBonusGuaranteeRowId(); + if (b == byte.MaxValue) { - int num2 = num; - int num3 = -653921248; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + int timestamp = (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds(); + int num = _supplyHelper.CalculateBonusGuaranteeIndex(timestamp); + if (num < 0 || !_dataManager.GetExcelSheet<SatisfactionBonusGuarantee>().TryGetRow((uint)num, out var row)) { - case 2: - num = -653921245; - break; - case 8: - _200C_206E_200B_206E_200C_202B_206A_202A_200B_206D_206C_200E_206F_206A_206D_206D_202B_206B_206C_206F_200E_202A_200E_206C_202C_200D_206C_202E_206C_202A_206D_206C_206B_206A_202D_206D_206E_202B_206E_200F_202E(ref UiThemeUtils.DimTextColor, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1035390078)); - _200D_202E_202B_202B_202A_200B_206B_206E_206A_200B_202D_202E_206F_200E_200D_202C_206C_202D_202E_202B_200B_202B_200E_200B_202B_202E_202D_206C_206F_200B_202A_206F_206B_200D_206C_202C_206F_200D_202C_200E_202E(0f, 4f); - _200C_206E_200B_206E_200C_202B_206A_202A_200B_206D_206C_200E_206F_206A_206D_206D_202B_206B_206C_206F_200E_202A_200E_206C_202C_200D_206C_202E_206C_202A_206D_206C_206B_206A_202D_206D_206E_202B_206E_200F_202E(ref UiThemeUtils.AccentColor, (ImU8String)questInfo.Name); - _200D_202D_200F_200C_206C_202B_200F_202A_206C_206D_206F_206F_206C_200D_206C_202C_206E_206B_200E_206D_206B_206C_202E_200F_202D_200C_206D_202A_206E_202D_200F_200D_200D_200C_200E_200F_202D_200E_206F_206E_202E(); return; - case 3: - { - int num7 = (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds(); - num8 = _200C_200B_200D_202C_206D_202C_200D_206E_202A_206E_200E_206B_206A_202A_202B_200D_206A_206E_200E_200D_206F_202D_200C_202C_200C_202A_200D_200F_200F_200B_200B_206F_206D_202C_200E_206F_200F_206D_202B_202D_202E(_supplyHelper, num7); - num = ((num8 >= 0) ? (-653921241) : (-653921248)); - break; - } - case 6: - return; - case 1: - return; - case 0: - return; - case 7: - num = (_dataManager.GetExcelSheet<SatisfactionBonusGuarantee>().TryGetRow((uint)num8, out row) ? (-653921243) : (-653921242)); - break; - case 4: - { - SatisfactionSupplyNpcId elementId = _200E_202B_206E_202E_202C_206D_200B_206D_206B_206E_206A_206D_202A_206C_202E_200E_200C_202D_206B_206B_202B_206A_200F_200B_200B_206D_206C_202E_206C_202B_206A_206D_206F_206B_200F_206E_202B_200B_200D_200E_202E((ushort)b); - num = (_questData.TryGetQuestInfo(elementId, out questInfo) ? (-653921240) : (-653921247)); - break; - } - case 5: - b = (byte)row.RowId; - num = -653921244; - break; } + b = (byte)row.RowId; + } + if (_customDeliveryNpcData.TryGetByRowId(b, out CustomDeliveryNpc npc)) + { + ImGui.TextColored(in UiThemeUtils.DimTextColor, "Bonus this week: "); + ImGui.SameLine(0f, 4f); + ImGui.TextColored(in UiThemeUtils.AccentColor, npc.Name); + ImGui.Spacing(); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawJobSelectionSettings() { Configuration.CustomDeliveryConfiguration customDeliveries = _configuration.CustomDeliveries; - UiThemeUtils.SectionHeader(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-338851739)); + UiThemeUtils.SectionHeader("Job Preferences"); var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); - _206B_202D_200D_200F_200B_206B_206C_200E_206A_206A_206E_202A_200B_206B_206B_206B_200F_206F_206E_202D_200D_206F_206B_206F_202C_206A_202C_200F_200D_206E_200F_200D_200D_206F_206F_200F_206A_200C_206A_200D_202E(_206C_200C_206C_200D_206D_200F_202C_202A_202D_206E_206D_206C_200B_202D_202A_200B_206F_202D_200B_202A_200C_206D_202E_206E_206D_202A_206C_200B_200D_206B_206D_202D_202E_202C_200C_206F_200D_202D_202E_202E_202E(_202E_202A_206C_202A_206E_200F_200B_200B_200D_202C_206B_206D_206A_200C_200D_202E_206C_200B_202D_202A_206A_202E_202D_200B_206C_206D_206B_206A_200D_206A_202E_202C_202B_206B_202D_200E_202D_206F_202A_202B_202E().X * 0.4f, 150f)); + ImGui.SetNextItemWidth(MathF.Min(ImGui.GetContentRegionAvail().X * 0.4f, 150f)); int currentItem = (int)customDeliveries.CraftJobMode; - int num = ((!UiThemeUtils.ThemedCombo(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(971064530), ref currentItem, JobModeNames, JobModeNames.Length)) ? 1534487448 : 1534487447); - int currentItem4 = default(int); - int currentItem3 = default(int); - int currentItem6 = default(int); - int currentItem2 = default(int); - int currentItem5 = default(int); - while (true) + if (UiThemeUtils.ThemedCombo("Crafter", ref currentItem, JobModeNames, JobModeNames.Length)) { - int num2 = num; - int num3 = 1534487451; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 20: - _206B_202D_200D_200F_200B_206B_206C_200E_206A_206A_206E_202A_200B_206B_206B_206B_200F_206F_206E_202D_200D_206F_206B_206F_202C_206A_202C_200F_200D_206E_200F_200D_200D_206F_206F_200F_206A_200C_206A_200D_202E(_206C_200C_206C_200D_206D_200F_202C_202A_202D_206E_206D_206C_200B_202D_202A_200B_206F_202D_200B_202A_200C_206D_202E_206E_206D_202A_206C_200B_200D_206B_206D_202D_202E_202C_200C_206F_200D_202D_202E_202E_202E(_202E_202A_206C_202A_206E_200F_200B_200B_200D_202C_206B_206D_206A_200C_200D_202E_206C_200B_202D_202A_206A_202E_202D_200B_206C_206D_206B_206A_200D_206A_202E_202C_202B_206B_202D_200E_202D_206F_202A_202B_202E().X * 0.4f, 150f)); - currentItem4 = (int)customDeliveries.ScripOvercapMode; - num = ((!UiThemeUtils.ThemedCombo(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1574243439), ref currentItem4, OvercapModeNames, OvercapModeNames.Length)) ? 1534487443 : 1534487435); - break; - case 16: - customDeliveries.ScripOvercapMode = (Configuration.CustomDeliveryConfiguration.EScripOvercapMode)currentItem4; - _206A_202D_200C_200B_202B_206B_206C_206D_202E_206B_202E_202D_206C_206B_202E_200C_200D_202E_206F_200C_202A_202D_200D_202D_206F_206C_206A_202B_202D_200D_202D_202C_200F_206B_206C_200C_202B_200E_206E_202E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - num = 1534487443; - break; - case 18: - customDeliveries.PreferredCraftJob = CrafterJobs[currentItem3]; - _206A_202D_200C_200B_202B_206B_206C_206D_202E_206B_202E_202D_206C_206B_202E_200C_200D_202E_206F_200C_202A_202D_200D_202D_206F_206C_206A_202B_202D_200D_202D_202C_200F_206B_206C_200C_202B_200E_206E_202E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - num = 1534487445; - break; - case 10: - num = ((!_200B_206D_206C_206B_200B_202D_202A_200B_206C_202E_206F_200B_200F_200C_200E_202D_200C_206A_206C_206D_200B_206B_202D_200B_202D_202E_202B_200D_200B_202C_202D_200D_206B_206F_200D_200F_206B_202C_202B_206E_202E()) ? 1534487434 : 1534487453); - break; - case 14: - _206B_202D_200D_200F_200B_206B_206C_200E_206A_206A_206E_202A_200B_206B_206B_206B_200F_206F_206E_202D_200D_206F_206B_206F_202C_206A_202C_200F_200D_206E_200F_200D_200D_206F_206F_200F_206A_200C_206A_200D_202E(_206C_200C_206C_200D_206D_200F_202C_202A_202D_206E_206D_206C_200B_202D_202A_200B_206F_202D_200B_202A_200C_206D_202E_206E_206D_202A_206C_200B_200D_206B_206D_202D_202E_202C_200C_206F_200D_202D_202E_202E_202E(_202E_202A_206C_202A_206E_200F_200B_200B_200D_202C_206B_206D_206A_200C_200D_202E_206C_200B_202D_202A_206A_202E_202D_200B_206C_206D_206B_206A_200D_206A_202E_202C_202B_206B_202D_200E_202D_206F_202A_202B_202E().X * 0.4f, 150f)); - currentItem6 = (int)customDeliveries.GatherJobMode; - num = ((!UiThemeUtils.ThemedCombo(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(637808228), ref currentItem6, JobModeNames, JobModeNames.Length)) ? 1534487440 : 1534487449); - break; - case 12: - customDeliveries.CraftJobMode = (Configuration.CustomDeliveryConfiguration.EJobSelectionMode)currentItem; - _206A_202D_200C_200B_202B_206B_206C_206D_202E_206B_202E_202D_206C_206B_202E_200C_200D_202E_206F_200C_202A_202D_200D_202D_206F_206C_206A_202B_202D_200D_202D_202C_200F_206B_206C_200C_202B_200E_206E_202E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - num = 1534487448; - break; - case 9: - _202A_206C_202B_200F_206C_200B_200D_202A_206C_206A_200D_206F_200E_202E_202D_200F_200B_206E_206C_206C_200F_200E_206A_200E_202B_202B_202C_206C_206E_206B_202A_200C_206E_200E_200B_200C_200B_202C_200E_206B_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2066372464)); - num = 1534487432; - break; - case 15: - num = 1534487447; - break; - case 6: - _202A_206C_202B_200F_206C_200B_200D_202A_206C_206A_200D_206F_200E_202E_202D_200F_200B_206E_206C_206C_200F_200E_206A_200E_202B_202B_202C_206C_206E_206B_202A_200C_206E_200E_200B_200C_200B_202C_200E_206B_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-871682856)); - num = 1534487434; - break; - case 11: - _200C_200D_202C_200E_200B_202C_200B_200B_206D_200C_206B_200B_202B_202B_202E_206B_200E_202C_206B_202E_206C_200E_200C_202D_206C_206F_202C_206F_200B_202C_200F_200F_200E_200C_206D_206A_206C_206B_206B_202E(); - _206B_202D_200D_200F_200B_206B_206C_200E_206A_206A_206E_202A_200B_206B_206B_206B_200F_206F_206E_202D_200D_206F_206B_206F_202C_206A_202C_200F_200D_206E_200F_200D_200D_206F_206F_200F_206A_200C_206A_200D_202E(_206C_200C_206C_200D_206D_200F_202C_202A_202D_206E_206D_206C_200B_202D_202A_200B_206F_202D_200B_202A_200C_206D_202E_206E_206D_202A_206C_200B_200D_206B_206D_202D_202E_202C_200C_206F_200D_202D_202E_202E_202E(_202E_202A_206C_202A_206E_200F_200B_200B_200D_202C_206B_206D_206A_200C_200D_202E_206C_200B_202D_202A_206A_202E_202D_200B_206C_206D_206B_206A_200D_206A_202E_202C_202B_206B_202D_200E_202D_206F_202A_202B_202E().X, 150f)); - currentItem2 = Array.IndexOf(GathererJobs, customDeliveries.PreferredGatherJob); - num = ((currentItem2 >= 0) ? 1534487455 : 1534487454); - break; - case 0: - customDeliveries.PreferredGatherJob = GathererJobs[currentItem2]; - _206A_202D_200C_200B_202B_206B_206C_206D_202E_206B_202E_202D_206C_206B_202E_200C_200D_202E_206F_200C_202A_202D_200D_202D_206F_206C_206A_202B_202D_200D_202D_202C_200F_206B_206C_200C_202B_200E_206E_202E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - num = 1534487439; - break; - case 4: - num = ((!UiThemeUtils.ThemedCombo(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(230575598), ref currentItem2, GathererNames, GathererNames.Length)) ? 1534487439 : 1534487451); - break; - case 19: - _206B_202D_200D_200F_200B_206B_206C_200E_206A_206A_206E_202A_200B_206B_206B_206B_200F_206F_206E_202D_200D_206F_206B_206F_202C_206A_202C_200F_200D_206E_200F_200D_200D_206F_206F_200F_206A_200C_206A_200D_202E(_206C_200C_206C_200D_206D_200F_202C_202A_202D_206E_206D_206C_200B_202D_202A_200B_206F_202D_200B_202A_200C_206D_202E_206E_206D_202A_206C_200B_200D_206B_206D_202D_202E_202C_200C_206F_200D_202D_202E_202E_202E(_202E_202A_206C_202A_206E_200F_200B_200B_200D_202C_206B_206D_206A_200C_200D_202E_206C_200B_202D_202A_206A_202E_202D_200B_206C_206D_206B_206A_200D_206A_202E_202C_202B_206B_202D_200E_202D_206F_202A_202B_202E().X * 0.4f, 150f)); - currentItem5 = (int)customDeliveries.CollectabilityTier; - num = ((!UiThemeUtils.ThemedCombo(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(360535167), ref currentItem5, CollectabilityTierNames, CollectabilityTierNames.Length)) ? 1534487441 : 1534487450); - break; - case 5: - currentItem2 = 0; - num = 1534487455; - break; - case 2: - customDeliveries.GatherJobMode = (Configuration.CustomDeliveryConfiguration.EJobSelectionMode)currentItem6; - _206A_202D_200C_200B_202B_206B_206C_206D_202E_206B_202E_202D_206C_206B_202E_200C_200D_202E_206F_200C_202A_202D_200D_202D_206F_206C_206A_202B_202D_200D_202D_202C_200F_206B_206C_200C_202B_200E_206E_202E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - num = 1534487440; - break; - case 1: - customDeliveries.CollectabilityTier = (Configuration.CustomDeliveryConfiguration.ECollectabilityTier)currentItem5; - _206A_202D_200C_200B_202B_206B_206C_206D_202E_206B_202E_202D_206C_206B_202E_200C_200D_202E_206F_200C_202A_202D_200D_202D_206F_206C_206A_202B_202D_200D_202D_202C_200F_206B_206C_200C_202B_200E_206E_202E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - num = 1534487441; - break; - case 17: - UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); - return; - case 7: - currentItem3 = 0; - num = 1534487446; - break; - case 3: - _200C_200D_202C_200E_200B_202C_200B_200B_206D_200C_206B_200B_202B_202B_202E_206B_200E_202C_206B_202E_206C_200E_200C_202D_206C_206F_202C_206F_200B_202C_200F_200F_200E_200C_206D_206A_206C_206B_206B_202E(); - _206B_202D_200D_200F_200B_206B_206C_200E_206A_206A_206E_202A_200B_206B_206B_206B_200F_206F_206E_202D_200D_206F_206B_206F_202C_206A_202C_200F_200D_206E_200F_200D_200D_206F_206F_200F_206A_200C_206A_200D_202E(_206C_200C_206C_200D_206D_200F_202C_202A_202D_206E_206D_206C_200B_202D_202A_200B_206F_202D_200B_202A_200C_206D_202E_206E_206D_202A_206C_200B_200D_206B_206D_202D_202E_202C_200C_206F_200D_202D_202E_202E_202E(_202E_202A_206C_202A_206E_200F_200B_200B_200D_202C_206B_206D_206A_200C_200D_202E_206C_200B_202D_202A_206A_202E_202D_200B_206C_206D_206B_206A_200D_206A_202E_202C_202B_206B_202D_200E_202D_206F_202A_202B_202E().X, 150f)); - currentItem3 = Array.IndexOf(CrafterJobs, customDeliveries.PreferredCraftJob); - num = ((currentItem3 >= 0) ? 1534487446 : 1534487452); - break; - case 13: - num = ((!UiThemeUtils.ThemedCombo(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1920589812), ref currentItem3, CrafterNames, CrafterNames.Length)) ? 1534487445 : 1534487433); - break; - case 8: - num = ((!_200B_206D_206C_206B_200B_202D_202A_200B_206C_202E_206F_200B_200F_200C_200E_202D_200C_206A_206C_206D_200B_206B_202D_200B_202D_202E_202B_200D_200B_202C_202D_200D_206B_206F_200D_200F_206B_202C_202B_206E_202E()) ? 1534487432 : 1534487442); - break; - } + customDeliveries.CraftJobMode = (Configuration.CustomDeliveryConfiguration.EJobSelectionMode)currentItem; + _pluginInterface.SavePluginConfig(_configuration); } + ImGui.SameLine(); + ImGui.SetNextItemWidth(MathF.Min(ImGui.GetContentRegionAvail().X, 150f)); + int currentItem2 = Array.IndexOf(CrafterJobs, customDeliveries.PreferredCraftJob); + if (currentItem2 < 0) + { + currentItem2 = 0; + } + if (UiThemeUtils.ThemedCombo("##CrafterJob", ref currentItem2, CrafterNames, CrafterNames.Length)) + { + customDeliveries.PreferredCraftJob = CrafterJobs[currentItem2]; + _pluginInterface.SavePluginConfig(_configuration); + } + ImGui.SetNextItemWidth(MathF.Min(ImGui.GetContentRegionAvail().X * 0.4f, 150f)); + int currentItem3 = (int)customDeliveries.GatherJobMode; + if (UiThemeUtils.ThemedCombo("Gatherer", ref currentItem3, JobModeNames, JobModeNames.Length)) + { + customDeliveries.GatherJobMode = (Configuration.CustomDeliveryConfiguration.EJobSelectionMode)currentItem3; + _pluginInterface.SavePluginConfig(_configuration); + } + ImGui.SameLine(); + ImGui.SetNextItemWidth(MathF.Min(ImGui.GetContentRegionAvail().X, 150f)); + int currentItem4 = Array.IndexOf(GathererJobs, customDeliveries.PreferredGatherJob); + if (currentItem4 < 0) + { + currentItem4 = 0; + } + if (UiThemeUtils.ThemedCombo("##GathererJob", ref currentItem4, GathererNames, GathererNames.Length)) + { + customDeliveries.PreferredGatherJob = GathererJobs[currentItem4]; + _pluginInterface.SavePluginConfig(_configuration); + } + ImGui.SetNextItemWidth(MathF.Min(ImGui.GetContentRegionAvail().X * 0.4f, 150f)); + int currentItem5 = (int)customDeliveries.ScripOvercapMode; + if (UiThemeUtils.ThemedCombo("Scrip Overcap", ref currentItem5, OvercapModeNames, OvercapModeNames.Length)) + { + customDeliveries.ScripOvercapMode = (Configuration.CustomDeliveryConfiguration.EScripOvercapMode)currentItem5; + _pluginInterface.SavePluginConfig(_configuration); + } + if (ImGui.IsItemHovered()) + { + ImGui.SetTooltip("Ignore: no protection\nCap: reduce deliveries to avoid overcap\nBlock: skip NPC entirely if any delivery would overcap"); + } + ImGui.SetNextItemWidth(MathF.Min(ImGui.GetContentRegionAvail().X * 0.4f, 150f)); + int currentItem6 = (int)customDeliveries.CollectabilityTier; + if (UiThemeUtils.ThemedCombo("Collectability", ref currentItem6, CollectabilityTierNames, CollectabilityTierNames.Length)) + { + customDeliveries.CollectabilityTier = (Configuration.CustomDeliveryConfiguration.ECollectabilityTier)currentItem6; + _pluginInterface.SavePluginConfig(_configuration); + } + if (ImGui.IsItemHovered()) + { + ImGui.SetTooltip("High: best rewards, requires good gear\nMid: moderate rewards, easier to hit\nLow: minimal rewards, lowest threshold"); + } + UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); } - [MethodImpl(MethodImplOptions.NoInlining)] - private void DrawNpcSection(SatisfactionSupplyInfo npc, int npcIndex) + private void DrawNpcSection(CustomDeliveryNpc npc, int npcIndex) { bool num = _plannerService.IsNpcUnlocked(npcIndex); - SatisfactionSupplyActions.NpcState npcState = _200E_202C_206A_200F_206F_206F_200B_202B_206D_202D_202C_202B_206E_200E_202C_200F_206F_200C_206C_206A_202B_202B_206F_202A_200B_202B_202E_206A_202A_206C_206A_202D_200B_200C_200D_202B_206A_206E_206D_202E_202E(npcIndex); + SatisfactionSupplyActions.NpcState npcState = SatisfactionSupplyActions.GetNpcState(npcIndex); if (!num) { - int num2 = -684755026; - IQuestInfo questInfo = default(IQuestInfo); - while (true) + string value = (HasAnyDoHDoLAtLevel(npc.Level) ? "Locked" : "No DoH/DoL at level"); + bool open = false; + UiThemeUtils.ThemedAccordion($"CustomDeliveryNpc{npcIndex}", npc.Name, $"Lv. {npc.Level} - {value}", ref open, enabled: false); + if (npc.UnlockQuestId.Value == 0) { - int num3 = num2; - int num4 = -684755025; - int num5 = num3; - string text; - string value; - bool open; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler; - string id; - string name; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2; - switch ((num5 | num4) - (num5 & num4)) + return; + } + QuestId questId = npc.UnlockQuestId; + bool disabled = _questController.ManualPriorityQuests.Any((Questionable.Model.Quest q) => q.Id.Equals(questId)); + ImGui.SameLine(); + using (ImRaii.Disabled(disabled)) + { + ImU8String id = new ImU8String(6, 1); + id.AppendLiteral("unlock"); + id.AppendFormatted(npcIndex); + using (ImRaii.PushId(id)) { - case 2: - num2 = -684755026; - break; - case 0: - text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(773096941); - goto IL_006e; - case 1: - num2 = (HasAnyDoHDoLAtLevel(npc.Level) ? (-684755025) : (-684755028)); - break; - case 3: - text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(554916939); - goto IL_006e; - case 4: + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Unlock, "Unlock")) { - QuestId questId = npc.PreviousQuests[0].QuestId; - bool num6 = _questController.ManualPriorityQuests.Any((Questionable.Model.Quest q) => _003C_003Ec__DisplayClass33_0._202C_200C_202B_200C_206D_206C_206F_206A_200D_206D_200F_202A_202B_206F_202A_202C_200F_206A_202A_202E_202D_200C_206E_206C_200D_206D_202E_202A_202B_206B_200B_206C_206E_206B_200D_206C_206D_202B_202E(q.Id, (ElementId)questId)); - _200C_200D_202C_200E_200B_202C_200B_200B_206D_200C_206B_200B_202B_202B_202E_206B_200E_202C_206B_202E_206C_200E_200C_202D_206C_206F_202C_206F_200B_202C_200F_200F_200E_200C_206D_206A_206C_206B_206B_202E(); - ImRaii.DisabledDisposable disabledDisposable = _200F_206F_202D_206B_206F_200E_200E_206B_202C_202C_206B_206B_200D_206E_202B_202E_200B_200D_200E_206C_200F_206C_206A_206A_206F_202D_200E_202E_200C_202E_206D_202E_202D_202B_206D_206A_202D_200C_200E_202E_202E(num6); - try - { - ImU8String imU8String = new ImU8String(6, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1746900472)); - imU8String.AppendFormatted(npcIndex); - ImRaii.IdDisposable idDisposable = _200F_202D_202A_206A_202C_206A_200F_200C_206F_202E_200E_206E_206A_206A_202A_206B_200D_206B_200B_206E_206B_206F_206F_206F_206E_202A_202E_202A_202A_202A_200D_202A_206F_200C_202E_202B_200F_200C_202B_206C_202E(imU8String, true); - try - { - num2 = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Unlock, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-667756117))) ? (-1912480859) : (-1912480858)); - while (true) - { - int num7 = num2; - num4 = -1912480857; - num5 = num7; - int num8 = num5 + num4; - int num9 = num5 & num4; - switch (num8 - (num9 + num9)) - { - case 0: - num2 = -1912480858; - break; - case 1: - _questController.AddQuestPriority(questId); - num2 = -1912480859; - break; - case 2: - goto end_IL_01fa; - } - continue; - end_IL_01fa: - break; - } - } - finally - { - num2 = ((idDisposable == null) ? (-743536500) : (-743536497)); - while (true) - { - int num10 = num2; - num4 = -743536498; - num5 = num10; - int num11 = num5 + num4; - int num12 = num5 & num4; - switch (num11 - (num12 + num12)) - { - case 0: - num2 = -743536497; - break; - case 1: - _206B_200B_206F_206C_202B_206E_206E_200F_202C_206B_200D_200C_206E_206A_206C_200C_202B_202E_202B_202A_200D_206F_200F_200B_206A_206D_200D_206F_200C_202C_200F_206D_200E_206F_202E_206F_200C_202A_206C_206A_202E((IDisposable)idDisposable); - num2 = -743536500; - break; - case 2: - goto end_IL_0277; - } - continue; - end_IL_0277: - break; - } - } - } - finally - { - num2 = ((disabledDisposable == null) ? (-617632198) : (-617632197)); - while (true) - { - int num13 = num2; - num4 = -617632198; - num5 = num13; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - num2 = -617632197; - break; - case 0: - goto end_IL_02e4; - case 1: - _206B_200B_206F_206C_202B_206E_206E_200F_202C_206B_200D_200C_206E_206A_206C_200C_202B_202E_202B_202A_200D_206F_200F_200B_206A_206D_200D_206F_200C_202C_200F_206D_200E_206F_202E_206F_200C_202A_206C_206A_202E((IDisposable)disabledDisposable); - num2 = -617632198; - break; - } - continue; - end_IL_02e4: - break; - } - } - num2 = ((!_202C_202B_206B_202A_206B_202D_206F_200F_206B_202A_200B_202D_200D_200D_206E_206A_202C_202B_202D_206D_200B_200E_206A_200B_206E_206A_202C_200D_202A_206B_206D_200D_200E_206E_200C_200F_202A_206F_200B_206D_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? (-1486890987) : (-1486890988)); - while (true) - { - int num14 = num2; - num4 = -1486890986; - num5 = num14; - int num15 = num5 + num4; - int num16 = num5 & num4; - switch (num15 - (num16 + num16)) - { - case 1: - _questTooltip.Draw(questInfo); - num2 = -1486890987; - break; - case 2: - num2 = ((!_questData.TryGetQuestInfo(questId, out questInfo)) ? (-1486890987) : (-1486890985)); - break; - case 0: - num2 = -1486890988; - break; - case 3: - return; - } - } + _questController.AddQuestPriority(questId); } - IL_006e: - value = text; - open = false; - defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(17, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(115415045)); - defaultInterpolatedStringHandler.AppendFormatted(npcIndex); - id = defaultInterpolatedStringHandler.ToStringAndClear(); - name = npc.Name; - defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(7, 2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-939376673)); - defaultInterpolatedStringHandler2.AppendFormatted(npc.Level); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1648031977)); - defaultInterpolatedStringHandler2.AppendFormatted(value); - UiThemeUtils.ThemedAccordion(id, name, defaultInterpolatedStringHandler2.ToStringAndClear(), ref open, enabled: false); - if (npc.PreviousQuests.Count > 0) - { - num2 = -684755029; - break; - } - return; } } + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled) && _questData.TryGetQuestInfo(questId, out IQuestInfo questInfo)) + { + _questTooltip.Draw(questInfo); + } + return; } - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(17, 1); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1835605648)); - defaultInterpolatedStringHandler3.AppendFormatted(npcIndex); - string text2 = defaultInterpolatedStringHandler3.ToStringAndClear(); - bool open2 = _npcHeaderStates.GetValueOrDefault(text2, defaultValue: false); - UiThemeUtils.ThemedAccordion(text2, npc.Name, null, ref open2); - _npcHeaderStates[text2] = open2; + string text = $"CustomDeliveryNpc{npcIndex}"; + bool open2 = _npcHeaderStates.GetValueOrDefault(text, defaultValue: false); + UiThemeUtils.ThemedAccordion(text, npc.Name, null, ref open2); + _npcHeaderStates[text] = open2; if (!open2) { return; } - ImRaii.IndentDisposable indentDisposable = _200C_202A_200E_202A_206D_202E_202A_202B_206D_206C_200F_202B_200E_206D_206B_200C_206D_206F_206E_206C_202E_206B_200F_200F_200C_202C_206B_200E_206F_206C_200C_200C_206B_206D_200B_206C_206F_202B_200D_206E_202E(1, true); - try + using (ImRaii.PushIndent()) { - ImRaii.IdDisposable idDisposable2 = _200C_202C_206E_206C_206F_206A_202A_200D_206E_200C_200E_202A_206F_206E_206A_200C_202D_206D_202A_200F_202A_206C_206A_206A_200C_202D_202D_200F_202A_202C_206C_202B_202B_206B_206F_202C_206F_206B_206F_202C_202E(npcIndex, true); - try + using (ImRaii.PushId(npcIndex)) { DrawSatisfactionProgress(npcIndex, npcState); - int num17 = 6 - npcState.UsedDeliveries; - ImU8String imU8String2 = new ImU8String(38, 3); - imU8String2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1904815526)); - imU8String2.AppendFormatted(npcState.UsedDeliveries); - imU8String2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1534070043)); - imU8String2.AppendFormatted(6); - imU8String2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(588901087)); - imU8String2.AppendFormatted(num17); - imU8String2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-623668771)); - _200C_206E_200B_206E_200C_202B_206A_202A_200B_206D_206C_200E_206F_206A_206D_206D_202B_206B_206C_206F_200E_202A_200E_206C_202C_200D_206C_202E_206C_202A_206D_206C_206B_206A_202D_206D_206E_202B_206E_200F_202E(ref UiThemeUtils.DimTextColor, imU8String2); - _200D_202D_200F_200C_206C_202B_200F_202A_206C_206D_206F_206F_206C_200D_206C_202C_206E_206B_200E_206D_206B_206C_202E_200F_202D_200C_206D_202A_206E_202D_200F_200D_200D_200C_200E_200F_202D_200E_206F_206E_202E(); + int num2 = 6 - npcState.UsedDeliveries; + ImU8String text2 = new ImU8String(38, 3); + text2.AppendLiteral("Deliveries this week: "); + text2.AppendFormatted(npcState.UsedDeliveries); + text2.AppendLiteral(" / "); + text2.AppendFormatted(6); + text2.AppendLiteral(" ("); + text2.AppendFormatted(num2); + text2.AppendLiteral(" remaining)"); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text2); + ImGui.Spacing(); DrawAchievementGoal(npcIndex, npcState); - DrawPredictedItems(npc, npcIndex, npcState, num17); - } - finally - { - int num2 = ((idDisposable2 == null) ? (-2043880067) : (-2043880068)); - while (true) - { - int num18 = num2; - int num4 = -2043880067; - int num5 = num18; - int num19 = num5 + num4; - int num20 = num5 & num4; - switch (num19 - (num20 + num20)) - { - case 2: - num2 = -2043880068; - break; - case 1: - _206B_200B_206F_206C_202B_206E_206E_200F_202C_206B_200D_200C_206E_206A_206C_200C_202B_202E_202B_202A_200D_206F_200F_200B_206A_206D_200D_206F_200C_202C_200F_206D_200E_206F_202E_206F_200C_202A_206C_206A_202E((IDisposable)idDisposable2); - num2 = -2043880067; - break; - case 0: - goto end_IL_0517; - } - continue; - end_IL_0517: - break; - } - } - } - finally - { - int num2 = ((indentDisposable == null) ? 73276519 : 73276516); - while (true) - { - int num21 = num2; - int num4 = 73276518; - int num5 = num21; - switch ((num5 | num4) - (num5 & num4)) - { - case 1: - goto end_IL_0583; - case 2: - _206B_200B_206F_206C_202B_206E_206E_200F_202C_206B_200D_200C_206E_206A_206C_200C_202B_202E_202B_202A_200D_206F_200F_200B_206A_206D_200D_206F_200C_202C_200F_206D_200E_206F_202E_206F_200C_202A_206C_206A_202E((IDisposable)indentDisposable); - num2 = 73276519; - break; - case 0: - num2 = 73276516; - break; - } - continue; - end_IL_0583: - break; + DrawPredictedItems(npcIndex, npcState, num2); } } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawSatisfactionProgress(int npcIndex, SatisfactionSupplyActions.NpcState npcState) { int num = 0; - ExcelSheet<SatisfactionNpc> excelSheet = _dataManager.GetExcelSheet<SatisfactionNpc>(); - int num2 = 1; - int num3 = npcIndex; - int num4 = num3 ^ num2; - int num5 = num3 & num2; - int num6 = ((!excelSheet.TryGetRow((uint)(num4 + (num5 + num5)), out var row)) ? (-1057565978) : (-1057565984)); - while (true) + if (_dataManager.GetExcelSheet<SatisfactionNpc>().TryGetRow((uint)(npcIndex + 1), out var row) && npcState.Rank > 0 && npcState.Rank < row.SatisfactionNpcParams.Count) { - int num7 = num6; - num2 = -1057565982; - num3 = num7; - int num8 = num3 + num2; - int num9 = num3 & num2; - switch (num8 - (num9 + num9)) - { - default: - continue; - case 6: - num6 = ((npcState.Rank >= row.SatisfactionNpcParams.Count) ? (-1057565978) : (-1057565981)); - continue; - case 4: - num6 = ((num > 0) ? (-1057565983) : (-1057565982)); - continue; - case 5: - num6 = -1057565984; - continue; - case 1: - num = row.SatisfactionNpcParams[npcState.Rank].SatisfactionRequired; - num6 = -1057565978; - continue; - case 2: - num6 = ((npcState.Rank <= 0) ? (-1057565978) : (-1057565980)); - continue; - case 0: - { - ImU8String imU8String3 = new ImU8String(5, 1); - imU8String3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(687425873)); - imU8String3.AppendFormatted(npcState.Rank); - _200C_206E_200B_206E_200C_202B_206A_202A_200B_206D_206C_200E_206F_206A_206D_206D_202B_206B_206C_206F_200E_202A_200E_206C_202C_200D_206C_202E_206C_202A_206D_206C_206B_206A_202D_206D_206E_202B_206E_200F_202E(ref UiThemeUtils.DimTextColor, imU8String3); - break; - } - case 3: - { - float num10 = (float)npcState.SatisfactionCurrent / (float)num; - ImU8String imU8String = new ImU8String(9, 3); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-800315540)); - imU8String.AppendFormatted(npcState.Rank); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1648031977)); - imU8String.AppendFormatted(npcState.SatisfactionCurrent); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(503298330)); - imU8String.AppendFormatted(num); - _200C_206E_200B_206E_200C_202B_206A_202A_200B_206D_206C_200E_206F_206A_206D_206D_202B_206B_206C_206F_200E_202A_200E_206C_202C_200D_206C_202E_206C_202A_206D_206C_206B_206A_202D_206D_206E_202B_206E_200F_202E(ref UiThemeUtils.DimTextColor, imU8String); - ImRaii.ColorDisposable colorDisposable = UiThemeUtils.PushProgressBarColors(); - try - { - Vector2 vector = new Vector2(-1E-45f, 0f); - ImU8String imU8String2 = new ImU8String(1, 2); - imU8String2.AppendFormatted(npcState.SatisfactionCurrent); - imU8String2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(503298330)); - imU8String2.AppendFormatted(num); - _202C_202D_202E_202A_200B_202C_200F_200F_202B_206E_206F_206F_200B_200C_200D_202A_200C_202E_200F_202D_206E_206E_200E_200D_206D_206E_206B_206D_206E_200E_200B_202A_202E_202A_202E_206F_200D_206A_200C_202E_202E(num10, vector, imU8String2); - } - finally - { - num6 = ((colorDisposable == null) ? 516015191 : 516015190); - while (true) - { - int num11 = num6; - num2 = 516015191; - num3 = num11; - int num12 = num3 + num2; - int num13 = num3 & num2; - switch (num12 - (num13 + num13)) - { - case 2: - num6 = 516015190; - break; - case 0: - goto end_IL_026d; - case 1: - _206B_200B_206F_206C_202B_206E_206E_200F_202C_206B_200D_200C_206E_206A_206C_200C_202B_202E_202B_202A_200D_206F_200F_200B_206A_206D_200D_206F_200C_202C_200F_206D_200E_206F_202E_206F_200C_202A_206C_206A_202E((IDisposable)colorDisposable); - num6 = 516015191; - break; - } - continue; - end_IL_026d: - break; - } - } - break; - } - } - break; + num = row.SatisfactionNpcParams[npcState.Rank].SatisfactionRequired; } - _200D_202D_200F_200C_206C_202B_200F_202A_206C_206D_206F_206F_206C_200D_206C_202C_206E_206B_200E_206D_206B_206C_202E_200F_202D_200C_206D_202A_206E_202D_200F_200D_200D_200C_200E_200F_202D_200E_206F_206E_202E(); + if (num <= 0) + { + ImU8String text = new ImU8String(5, 1); + text.AppendLiteral("Rank "); + text.AppendFormatted(npcState.Rank); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text); + } + else + { + float fraction = (float)npcState.SatisfactionCurrent / (float)num; + ImU8String text2 = new ImU8String(9, 3); + text2.AppendLiteral("Rank "); + text2.AppendFormatted(npcState.Rank); + text2.AppendLiteral(" - "); + text2.AppendFormatted(npcState.SatisfactionCurrent); + text2.AppendLiteral("/"); + text2.AppendFormatted(num); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text2); + using (UiThemeUtils.PushProgressBarColors()) + { + Vector2 sizeArg = new Vector2(-1E-45f, 0f); + ImU8String overlay = new ImU8String(1, 2); + overlay.AppendFormatted(npcState.SatisfactionCurrent); + overlay.AppendLiteral("/"); + overlay.AppendFormatted(num); + ImGui.ProgressBar(fraction, sizeArg, overlay); + } + } + ImGui.Spacing(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawAchievementGoal(int npcIndex, SatisfactionSupplyActions.NpcState npcState) { - int num = 1; - int num2 = npcIndex; - ushort key = (ushort)((num2 | num) + (num2 & num)); + ushort key = (ushort)(npcIndex + 1); Dictionary<ushort, Configuration.AchievementGoal> achievementGoals = _configuration.CustomDeliveries.AchievementGoals; achievementGoals.TryGetValue(key, out var value); uint usedDeliveries = (uint)npcState.UsedDeliveries; - int num3 = ((value == null) ? 765454105 : 765454085); - bool value2 = default(bool); - int num5 = default(int); - while (true) + if (value != null && value.Active) { - int num4 = num3; - num = 765454104; - num2 = num4; - int num6; - switch ((num2 | num) - (num2 & num)) + bool num = usedDeliveries >= value.TargetCount; + Vector4 col = (num ? UiThemeUtils.StatusComplete : UiThemeUtils.StatusActive); + ImU8String text = new ImU8String(9, 2); + text.AppendLiteral("Goal: "); + text.AppendFormatted(usedDeliveries); + text.AppendLiteral(" / "); + text.AppendFormatted(value.TargetCount); + ImGui.TextColored(in col, text); + if (num) { - case 2: - _200C_200D_202C_200E_200B_202C_200B_200B_206D_200C_206B_200B_202B_202B_202E_206B_200E_202C_206B_202E_206C_200E_200C_202D_206C_206F_202C_206F_200B_202C_200F_200F_200E_200C_206D_206A_206C_206B_206B_202E(); - _200C_206E_200B_206E_200C_202B_206A_202A_200B_206D_206C_200E_206F_206A_206D_206D_202B_206B_206C_206F_200E_202A_200E_206C_202C_200D_206C_202E_206C_202A_206D_206C_206B_206A_202D_206D_206E_202B_206E_200F_202E(ref UiThemeUtils.StatusComplete, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(866040764)); - num3 = 765454100; - break; - case 29: - num3 = ((!value.Active) ? 765454105 : 765454097); - break; - case 28: - value.Active = value2; - _206A_202D_200C_200B_202B_206B_206C_206D_202E_206B_202E_202D_206C_206B_202E_200C_200D_202E_206F_200C_202A_202D_200D_202D_206F_206C_206A_202B_202D_200D_202D_202C_200F_206B_206C_200C_202B_200E_206E_202E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - num3 = 765454107; - break; - case 22: - num3 = ((!_200B_206D_206C_206B_200B_202D_202A_200B_206C_202E_206F_200B_200F_200C_200E_202D_200C_206A_206C_206D_200B_206B_202D_200B_202D_202E_202B_200D_200B_202C_202D_200D_206B_206F_200D_200F_206B_202C_202B_206E_202E()) ? 765454089 : 765454096); - break; - case 23: - _200C_200D_202C_200E_200B_202C_200B_200B_206D_200C_206B_200B_202B_202B_202E_206B_200E_202C_206B_202E_206C_200E_200C_202D_206C_206F_202C_206F_200B_202C_200F_200F_200E_200C_206D_206A_206C_206B_206B_202E(); - num3 = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Times, _200C_206D_200E_206C_206C_200F_200E_202C_206E_200F_202C_200F_202D_206E_202D_202C_200F_202E_202A_206A_202E_200F_202B_200C_206D_200F_202D_206C_202B_202A_206B_206E_202D_202C_206D_202E_206F_206F_206D_202E_202E())) ? 765454088 : 765454092); - break; - case 7: - _200D_202D_200F_200C_206C_202B_200F_202A_206C_206D_206F_206F_206C_200D_206C_202C_206E_206B_200E_206D_206B_206C_202E_200F_202D_200C_206D_202A_206E_202D_200F_200D_200D_200C_200E_200F_202D_200E_206F_206E_202E(); - return; - case 5: - { - ImU8String imU8String3 = new ImU8String(8, 1); - imU8String3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-687956357)); - imU8String3.AppendFormatted(npcIndex); - _206B_202C_202A_200D_202E_202E_206C_206F_202E_206A_206A_200E_200D_200C_200D_206A_200F_202B_202A_200C_206E_202C_200C_200E_200C_200C_200F_200F_206B_202C_200C_206B_200E_200E_200B_200D_206A_206D_206E_206D_202E(imU8String3, ImGuiPopupFlags.None); - num3 = 765454080; - break; + ImGui.SameLine(); + ImGui.TextColored(in UiThemeUtils.StatusComplete, "(met)"); } - case 21: - num3 = ((num5 > 12) ? 765454101 : 765454098); - break; - case 26: + ImGui.SameLine(); + if (UiThemeUtils.IconButton(FontAwesomeIcon.Edit, ImGui.GetFrameHeight())) { - ImU8String imU8String2 = new ImU8String(8, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(857482870)); - imU8String2.AppendFormatted(npcIndex); - _206B_202C_202A_200D_202E_202E_206C_206F_202E_206A_206A_200E_200D_200C_200D_206A_200F_202B_202A_200C_206E_202C_200C_200E_200C_200C_200F_200F_206B_202C_200C_206B_200E_200E_200B_200D_206A_206D_206E_206D_202E(imU8String2, ImGuiPopupFlags.None); - num3 = 765454094; - break; + ImU8String strId = new ImU8String(8, 1); + strId.AppendLiteral("goalEdit"); + strId.AppendFormatted(npcIndex); + ImGui.OpenPopup(strId); } - case 10: - num3 = ((value != null) ? 765454104 : 765454102); - break; - case 8: - _202A_206C_202B_200F_206C_200B_200D_202A_206C_206A_200D_206F_200E_202E_202D_200F_200B_206E_206C_206C_200F_200E_206A_200E_202B_202B_202C_206C_206E_206B_202A_200C_206E_200E_200B_200C_200B_202C_200E_206B_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(802463423)); - num3 = 765454089; - break; - case 20: + if (ImGui.IsItemHovered()) + { + ImGui.SetTooltip("Edit goal"); + } + ImGui.SameLine(); + if (UiThemeUtils.IconButton(FontAwesomeIcon.Times, ImGui.GetFrameHeight())) + { achievementGoals.Remove(key); - _206A_202D_200C_200B_202B_206B_206C_206D_202E_206B_202E_202D_206C_206B_202E_200C_200D_202E_206F_200C_202A_202D_200D_202D_206F_206C_206A_202B_202D_200D_202D_202C_200F_206B_206C_200C_202B_200E_206E_202E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - num3 = 765454088; - break; - case 15: - num3 = ((num5 < 1) ? 765454101 : 765454093); - break; - case 16: - num3 = ((!_200B_206D_206C_206B_200B_202D_202A_200B_206C_202E_206F_200B_200F_200C_200E_202D_200C_206A_206C_206D_200B_206B_202D_200B_202D_202E_202B_200D_200B_202C_202D_200D_206B_206F_200D_200F_206B_202C_202B_206E_202E()) ? 765454089 : 765454108); - break; - case 4: - _202A_206C_202B_200F_206C_200B_200D_202A_206C_206A_200D_206F_200E_202E_202D_200F_200B_206E_206C_206C_200F_200E_206A_200E_202B_202B_202C_206C_206E_206B_202A_200C_206E_200E_200B_200C_200B_202C_200E_206B_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(570974186)); - num3 = 765454089; - break; - case 24: - num3 = ((!_200B_206D_206C_206B_200B_202D_202A_200B_206C_202E_206F_200B_200F_200C_200E_202D_200C_206A_206C_206D_200B_206B_202D_200B_202D_202E_202B_200D_200B_202C_202D_200D_206B_206F_200D_200F_206B_202C_202B_206E_202E()) ? 765454095 : 765454081); - break; - case 18: - num6 = 6; - goto IL_0503; - case 27: - num3 = ((value != null) ? 765454099 : 765454090); - break; - case 9: - { - bool num7 = usedDeliveries >= value.TargetCount; - Vector4 vector = (num7 ? UiThemeUtils.StatusComplete : UiThemeUtils.StatusActive); - ImU8String imU8String4 = new ImU8String(9, 2); - imU8String4.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1328887296)); - imU8String4.AppendFormatted(usedDeliveries); - imU8String4.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1762358294)); - imU8String4.AppendFormatted(value.TargetCount); - _200C_206E_200B_206E_200C_202B_206A_202A_200B_206D_206C_200E_206F_206A_206D_206D_202B_206B_206C_206F_200E_202A_200E_206C_202C_200D_206C_202E_206C_202A_206D_206C_206B_206A_202D_206D_206E_202B_206E_200F_202E(ref vector, imU8String4); - num3 = ((!num7) ? 765454100 : 765454106); - break; + _pluginInterface.SavePluginConfig(_configuration); } - case 1: - num3 = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Bullseye, _200C_206D_200E_206C_206C_200F_200E_202C_206E_200F_202C_200F_202D_206E_202D_202C_200F_202E_202A_206A_202E_200F_202B_200C_206D_200F_202D_206C_202B_202A_206B_206E_202D_202C_206D_202E_206F_206F_206D_202E_202E())) ? 765454094 : 765454082); - break; - case 19: - value2 = value.Active; - num3 = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1513339182), ref value2)) ? 765454107 : 765454084); - break; - case 12: - _200C_200D_202C_200E_200B_202C_200B_200B_206D_200C_206B_200B_202B_202B_202E_206B_200E_202C_206B_202E_206C_200E_200C_202D_206C_206F_202C_206F_200B_202C_200F_200F_200E_200C_206D_206A_206C_206B_206B_202E(); - num3 = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Edit, _200C_206D_200E_206C_206C_200F_200E_202C_206E_200F_202C_200F_202D_206E_202D_202C_200F_202E_202A_206A_202E_200F_202B_200C_206D_200F_202D_206C_202B_202A_206B_206E_202D_202C_206D_202E_206F_206F_206D_202E_202E())) ? 765454080 : 765454109); - break; - case 25: - _202A_206C_202B_200F_206C_200B_200D_202A_206C_206A_200D_206F_200E_202E_202D_200F_200B_206E_206C_206C_200F_200E_206A_200E_202B_202B_202C_206C_206E_206B_202A_200C_206E_200E_200B_200C_200B_202C_200E_206B_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(367003399)); - num3 = 765454095; - break; - case 14: - value = new Configuration.AchievementGoal(); - num3 = 765454104; - break; - case 0: - value.TargetCount = (uint)num5; + if (ImGui.IsItemHovered()) + { + ImGui.SetTooltip("Remove goal"); + } + } + else + { + if (UiThemeUtils.IconButton(FontAwesomeIcon.Bullseye, ImGui.GetFrameHeight())) + { + ImU8String strId2 = new ImU8String(8, 1); + strId2.AppendLiteral("goalEdit"); + strId2.AppendFormatted(npcIndex); + ImGui.OpenPopup(strId2); + } + if (ImGui.IsItemHovered()) + { + ImGui.SetTooltip("Set weekly delivery goal"); + } + } + ImU8String strId3 = new ImU8String(8, 1); + strId3.AppendLiteral("goalEdit"); + strId3.AppendFormatted(npcIndex); + if (ImGui.BeginPopup(strId3)) + { + int data = (int)(value?.TargetCount ?? 6); + ImGui.SetNextItemWidth(100f); + if (ImGui.InputInt("Target", ref data, 1, 1) && data >= 1 && data <= 12) + { + if (value == null) + { + value = new Configuration.AchievementGoal(); + } + value.TargetCount = (uint)data; value.Active = true; achievementGoals[key] = value; - _206A_202D_200C_200B_202B_206B_206C_206D_202E_206B_202E_202D_206C_206B_202E_200C_200D_202E_206F_200C_202A_202D_200D_202D_206F_206C_206A_202B_202D_200D_202D_202C_200F_206B_206C_200C_202B_200E_206E_202E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - num3 = 765454101; - break; - case 13: - num3 = ((value == null) ? 765454107 : 765454091); - break; - case 11: - num6 = (int)value.TargetCount; - goto IL_0503; - case 3: - _200D_206F_202A_206B_200F_206D_202B_206E_200D_200B_200D_206E_206F_200B_206F_202C_206C_202C_200B_206B_200E_200B_202A_200C_206B_206E_202B_206E_206B_200B_200E_206E_200C_206F_206D_200C_206A_200C_202D_206A_202E(); - num3 = 765454111; - break; - case 17: + _pluginInterface.SavePluginConfig(_configuration); + } + if (value != null) { - ImU8String imU8String = new ImU8String(8, 1); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-333165022)); - imU8String.AppendFormatted(npcIndex); - num3 = ((!_202D_206A_200F_202D_202B_202C_206A_202E_202B_202C_202C_206A_206D_202B_200D_206D_206A_200B_206C_206C_202A_200C_206C_206D_200B_200C_202A_202E_200C_202B_206C_200F_202E_202D_200E_202C_206C_202E_206B_200E_202E(imU8String, ImGuiWindowFlags.None)) ? 765454111 : 765454083); - break; - } - case 6: + bool value2 = value.Active; + if (UiThemeUtils.WrappedCheckbox("Active", ref value2)) { - num3 = 765454085; - break; + value.Active = value2; + _pluginInterface.SavePluginConfig(_configuration); } - IL_0503: - num5 = num6; - _206B_202D_200D_200F_200B_206B_206C_200E_206A_206A_206E_202A_200B_206B_206B_206B_200F_206F_206E_202D_200D_206F_206B_206F_202C_206A_202C_200F_200D_206E_200F_200D_200D_206F_206F_200F_206A_200C_206A_200D_202E(100f); - num3 = ((!_200D_200D_206D_206D_200E_206E_200B_202D_200C_206D_202D_202C_206F_206C_200B_206A_200B_206B_202C_202E_200C_202E_200F_200E_202A_200D_202D_200F_206E_202C_200C_206B_202E_200E_200B_206D_202A_202A_202A_202D_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1390330251), ref num5, 1, 1, default(ImU8String), ImGuiInputTextFlags.None)) ? 765454101 : 765454103); - break; } + ImGui.EndPopup(); } + ImGui.Spacing(); } - [MethodImpl(MethodImplOptions.NoInlining)] - private void DrawPredictedItems(SatisfactionSupplyInfo npc, int npcIndex, SatisfactionSupplyActions.NpcState npcState, int deliveriesRemaining) + private void DrawPredictedItems(int npcIndex, SatisfactionSupplyActions.NpcState npcState, int deliveriesRemaining) { - uint num = _202E_206E_200C_202D_206F_206E_206D_200B_206C_200D_200F_202D_200E_200D_202C_206B_206C_202E_200F_206B_202B_206A_206B_206B_206B_206B_206B_200D_200F_206B_206C_202A_202D_206E_200C_206C_202D_206A_200B_206C_202E(); - int num2 = ((num != 0) ? 940253457 : 940253463); - uint supplyIndex = default(uint); - SatisfactionNpc row = default(SatisfactionNpc); - uint[] array = default(uint[]); - SubrowExcelSheet<SatisfactionSupply> subrowExcelSheet = default(SubrowExcelSheet<SatisfactionSupply>); - int num7 = default(int); - int num6; - while (true) + uint supplySeed = SatisfactionSupplyActions.GetSupplySeed(); + if (supplySeed == 0) { - int num3 = num2; - int num4 = 940253457; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + ImGui.TextColored(in UiThemeUtils.MutedTextColor, "Log in to see predicted items."); + } + else + { + if (!_dataManager.GetExcelSheet<SatisfactionNpc>().TryGetRow((uint)(npcIndex + 1), out var row) || npcState.Rank <= 0 || npcState.Rank >= row.SatisfactionNpcParams.Count) { - default: - continue; - case 4: - supplyIndex = (uint)row.SatisfactionNpcParams[npcState.Rank].SupplyIndex; - array = _202A_202C_200F_206E_200F_206D_206D_200F_200D_202C_200F_202B_200C_202E_202B_206A_206F_206F_200E_202E_200D_200F_202D_200B_206B_202D_206A_206E_200F_202B_202D_206A_206D_206A_202C_200D_202D_206B_206F_206C_202E(_supplyHelper, supplyIndex, num); - subrowExcelSheet = _dataManager.GetSubrowExcelSheet<SatisfactionSupply>(); - num7 = _206D_202A_200F_206F_200C_202E_202C_202D_206E_200D_200C_202B_206F_200D_200B_202E_200F_202D_200C_202E_202A_206C_200B_202E_202B_202D_202D_200C_200D_206F_206C_206E_200C_202D_206D_206B_200E_206D_206B_200D_202E(); - num2 = ((_customDeliveryController.State == CustomDeliveryController.EDeliveryState.Idle) ? 940253465 : 940253458); - continue; - case 6: - _200C_206E_200B_206E_200C_202B_206A_202A_200B_206D_206C_200E_206F_206A_206D_206D_202B_206B_206C_206F_200E_202A_200E_206C_202C_200D_206C_202E_206C_202A_206D_206C_206B_206A_202D_206D_206E_202B_206E_200F_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2035765301)); return; - case 3: + } + uint supplyIndex = (uint)row.SatisfactionNpcParams[npcState.Rank].SupplyIndex; + uint[] array = _supplyHelper.CalculateRequestedItems(supplyIndex, supplySeed); + SubrowExcelSheet<SatisfactionSupply> subrowExcelSheet = _dataManager.GetSubrowExcelSheet<SatisfactionSupply>(); + int remainingAllowances = SatisfactionSupplyActions.GetRemainingAllowances(); + int num; + if (_customDeliveryController.State != CustomDeliveryController.EDeliveryState.Idle) { DeliveryPlan? currentPlan = _customDeliveryController.CurrentPlan; - num6 = ((currentPlan != null && currentPlan.NpcIndex == npcIndex) ? 1 : 0); - break; + num = ((currentPlan != null && currentPlan.NpcIndex == npcIndex) ? 1 : 0); } - case 0: + else { - ExcelSheet<SatisfactionNpc> excelSheet = _dataManager.GetExcelSheet<SatisfactionNpc>(); - num4 = 1; - num5 = npcIndex; - num2 = (excelSheet.TryGetRow((uint)((num5 | num4) + (num5 & num4)), out row) ? 940253464 : 940253462); - continue; + num = 0; } - case 9: - num2 = ((npcState.Rank <= 0) ? 940253460 : 940253456); - continue; - case 7: - return; - case 5: - return; - case 1: - num2 = ((npcState.Rank < row.SatisfactionNpcParams.Count) ? 940253461 : 940253460); - continue; - case 2: - num2 = 940253463; - continue; - case 8: - num6 = 0; - break; - } - break; - } - bool flag = (byte)num6 != 0; - int num8 = 0; - SatisfactionSupply subrow = default(SatisfactionSupply); - List<DeliveryRewardCalculator.CurrencyReward> list = default(List<DeliveryRewardCalculator.CurrencyReward>); - while (num8 < 3) - { - ImRaii.IdDisposable idDisposable = _200C_202C_206E_206C_206F_206A_202A_200D_206E_200C_200E_202A_206F_206E_206A_200C_202D_206D_202A_200F_202A_206C_206A_206A_200C_202D_202D_200F_202A_202C_206C_202B_202B_206B_206F_202C_206F_206B_206F_202C_202E(num8, true); - int num4; - int num5; - try + bool flag = (byte)num != 0; + for (int i = 0; i < 3; i++) { - EDeliverySlot eDeliverySlot = Slots[num8]; - string value = SlotLabels[num8]; - uint num9 = array[num8]; - num2 = ((num9 != uint.MaxValue) ? (-1305180789) : (-1305180788)); - while (true) + using (ImRaii.PushId(i)) { - int num10 = num2; - num4 = -1305180792; - num5 = num10; - int num11 = num5 + num4; - int num12 = num5 & num4; - switch (num11 - (num12 + num12)) + EDeliverySlot eDeliverySlot = Slots[i]; + string value = SlotLabels[i]; + uint num2 = array[i]; + if (num2 == uint.MaxValue) { - case 3: - num2 = (subrowExcelSheet.TryGetSubrow(supplyIndex, (ushort)num9, out subrow) ? (-1305180790) : (-1305180791)); - break; - case 4: + ImU8String text = new ImU8String(4, 1); + text.AppendLiteral("["); + text.AppendFormatted(value); + text.AppendLiteral("] -"); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, text); + continue; + } + if (!subrowExcelSheet.TryGetSubrow(supplyIndex, (ushort)num2, out var subrow)) { - ImU8String imU8String3 = new ImU8String(4, 1); - imU8String3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1234830832)); - imU8String3.AppendFormatted(value); - imU8String3.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1193619199)); - _200C_206E_200B_206E_200C_202B_206A_202A_200B_206D_206C_200E_206F_206A_206D_206D_202B_206B_206C_206F_200E_202A_200E_206C_202C_200D_206C_202E_206C_202A_206D_206C_206B_206A_202D_206D_206E_202B_206E_200F_202E(ref UiThemeUtils.MutedTextColor, imU8String3); - goto end_IL_022e; + ImU8String text2 = new ImU8String(4, 1); + text2.AppendLiteral("["); + text2.AppendFormatted(value); + text2.AppendLiteral("] ?"); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, text2); + continue; } - case 1: + uint rowId = subrow.Item.RowId; + string itemName = GetItemName(rowId); + ImU8String text3 = new ImU8String(2, 1); + text3.AppendLiteral("["); + text3.AppendFormatted(value); + text3.AppendLiteral("]"); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text3); + ImGui.SameLine(0f, 6f); + float x; + using (ImRaii.PushFont(UiBuilder.IconFont)) { - ImU8String imU8String2 = new ImU8String(4, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1118615183)); - imU8String2.AppendFormatted(value); - imU8String2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1291974725)); - _200C_206E_200B_206E_200C_202B_206A_202A_200B_206D_206C_200E_206F_206A_206D_206D_202B_206B_206C_206F_200E_202A_200E_206C_202C_200D_206C_202E_206C_202A_206D_206C_206B_206A_202D_206D_206E_202B_206E_200F_202E(ref UiThemeUtils.MutedTextColor, imU8String2); - goto end_IL_022e; + x = ImGui.CalcTextSize(FontAwesomeIcon.Play.ToIconString()).X; } - case 0: - num2 = -1305180788; - break; - case 2: + float reservedRightWidth = x + 6f + ImGui.CalcTextSize("Start").X + ImGui.GetStyle().FramePadding.X * 2f + ImGui.GetStyle().ItemSpacing.X; + UiThemeUtils.RowLabel(itemName, reservedRightWidth); + bool flag2 = !flag && remainingAllowances > 0 && deliveriesRemaining > 0 && _customDeliveryController.State == CustomDeliveryController.EDeliveryState.Idle && !_questController.IsRunning && !_fateController.IsRunning && !_seasonalDutyController.IsRunning && !_attunementController.IsRunning; + ImGui.SameLine(); + using (ImRaii.Disabled(!flag2)) { - uint rowId = subrow.Item.RowId; - string itemName = GetItemName(rowId); - ImU8String imU8String = new ImU8String(2, 1); - imU8String.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-999106428)); - imU8String.AppendFormatted(value); - imU8String.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1991522223)); - _200C_206E_200B_206E_200C_202B_206A_202A_200B_206D_206C_200E_206F_206A_206D_206D_202B_206B_206C_206F_200E_202A_200E_206C_202C_200D_206C_202E_206C_202A_206D_206C_206B_206A_202D_206D_206E_202B_206E_200F_202E(ref UiThemeUtils.DimTextColor, imU8String); - _200D_202E_202B_202B_202A_200B_206B_206E_206A_200B_202D_202E_206F_200E_200D_202C_206C_202D_202E_202B_200B_202B_200E_200B_202B_202E_202D_206C_206F_200B_202A_206F_206B_200D_206C_202C_206F_200D_202C_200E_202E(0f, 6f); - ImRaii.FontDisposable fontDisposable = _202B_200B_206D_206E_200D_200E_202D_202A_202D_200B_200D_202D_200D_206C_202B_200F_202D_202A_202B_206E_200D_202A_200E_206D_206D_200E_206B_202B_202B_200D_200C_200D_200F_200C_200E_202A_202E_206A_200E_206D_202E(_206C_206C_202D_206F_200C_200F_200C_200B_202E_200F_202E_200D_200C_202C_206E_206F_206C_200D_206E_200F_206D_206C_206C_206A_206E_202E_200D_206C_202C_202E_206B_206B_206A_206C_200F_200F_206E_202A_200D_200C_202E(), true); - float x; - try + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Play, "Start")) { - x = _202C_200F_206E_206F_200D_206D_206A_200E_202A_206B_200C_206A_202B_200B_200F_206D_202D_200D_206E_200B_202C_206B_206E_200E_206B_202C_200D_200C_200E_202A_206E_200F_206A_200B_202B_200E_200B_200D_202A_202A_202E((ImU8String)_206E_206D_202B_206A_206B_206E_206B_206F_202D_206B_206A_200F_202A_202B_200F_202B_200B_206B_206C_200F_206B_202D_202E_200E_206F_202E_200B_200F_206A_202A_200B_202D_200E_202B_206B_202A_206E_202C_202D_200E_202E(FontAwesomeIcon.Play), false, -1f).X; + _logger.LogInformation("Starting custom delivery for NPC {NpcIndex} slot {Slot}", npcIndex, eDeliverySlot); + _questController.Stop("Custom delivery start"); + _fateController.Stop("Custom delivery start"); + _seasonalDutyController.Stop("Custom delivery start"); + _attunementController.Stop("Custom delivery start"); + _customDeliveryController.Start(npcIndex, eDeliverySlot); } - finally - { - num2 = ((fontDisposable == null) ? (-973895939) : (-973895938)); - while (true) - { - int num13 = num2; - num4 = -973895937; - num5 = num13; - int num14 = num5 + num4; - int num15 = num5 & num4; - switch (num14 - (num15 + num15)) - { - case 0: - num2 = -973895938; - break; - case 1: - _206B_200B_206F_206C_202B_206E_206E_200F_202C_206B_200D_200C_206E_206A_206C_200C_202B_202E_202B_202A_200D_206F_200F_200B_206A_206D_200D_206F_200C_202C_200F_206D_200E_206F_202E_206F_200C_202A_206C_206A_202E((IDisposable)fontDisposable); - num2 = -973895939; - break; - case 2: - goto end_IL_03f9; - } - continue; - end_IL_03f9: - break; - } - } - float reservedRightWidth = x + 6f + _202C_200F_206E_206F_200D_206D_206A_200E_202A_206B_200C_206A_202B_200B_200F_206D_202D_200D_206E_200B_202C_206B_206E_200E_206B_202C_200D_200C_200E_202A_206E_200F_206A_200B_202B_200E_200B_200D_202A_202A_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(880256074), false, -1f).X + _206B_206F_200C_200C_202D_202D_202C_202E_206B_206C_206D_200D_206E_200F_200D_206E_206C_200C_206F_200E_206D_206B_206F_206F_202D_202D_200E_206B_206E_202C_202D_202B_202D_202D_200B_200B_200E_206A_202D_206E_202E().FramePadding.X * 2f + _206B_206F_200C_200C_202D_202D_202C_202E_206B_206C_206D_200D_206E_200F_200D_206E_206C_200C_206F_200E_206D_206B_206F_206F_202D_202D_200E_206B_206E_202C_202D_202B_202D_202D_200B_200B_200E_206A_202D_206E_202E().ItemSpacing.X; - UiThemeUtils.RowLabel(itemName, reservedRightWidth); - num2 = (flag ? (-2087654464) : (-2087654459)); - int num17; - while (true) - { - int num16 = num2; - num4 = -2087654457; - num5 = num16; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 5: - num2 = (_seasonalDutyController.IsRunning ? (-2087654464) : (-2087654463)); - continue; - case 8: - num2 = ((deliveriesRemaining <= 0) ? (-2087654464) : (-2087654458)); - continue; - case 2: - num2 = ((num7 <= 0) ? (-2087654464) : (-2087654449)); - continue; - case 4: - num2 = (_fateController.IsRunning ? (-2087654464) : (-2087654462)); - continue; - case 6: - num17 = ((!_attunementController.IsRunning) ? 1 : 0); - break; - case 0: - num2 = -2087654459; - continue; - case 1: - num2 = ((_customDeliveryController.State != CustomDeliveryController.EDeliveryState.Idle) ? (-2087654464) : (-2087654460)); - continue; - case 3: - num2 = (_questController.IsRunning ? (-2087654464) : (-2087654461)); - continue; - case 7: - num17 = 0; - break; - } - break; - } - bool flag2 = (byte)num17 != 0; - _200C_200D_202C_200E_200B_202C_200B_200B_206D_200C_206B_200B_202B_202B_202E_206B_200E_202C_206B_202E_206C_200E_200C_202D_206C_206F_202C_206F_200B_202C_200F_200F_200E_200C_206D_206A_206C_206B_206B_202E(); - ImRaii.DisabledDisposable disabledDisposable = _200F_206F_202D_206B_206F_200E_200E_206B_202C_202C_206B_206B_200D_206E_202B_202E_200B_200D_200E_206C_200F_206C_206A_206A_206F_202D_200E_202E_200C_202E_206D_202E_202D_202B_206D_206A_202D_200C_200E_202E_202E(!flag2); - try - { - num2 = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Play, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(880256074))) ? 1169289649 : 1169289650); - while (true) - { - int num18 = num2; - num4 = 1169289651; - num5 = num18; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = 1169289650; - break; - case 1: - _206A_202A_200E_200C_200D_200D_202E_206C_200B_200E_200D_200C_206B_206E_206B_202D_206F_202C_202C_206C_202D_200D_206D_206B_202D_206D_206E_206F_202A_206A_200B_202C_202B_200E_200B_202C_200B_206D_206C_200D_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2084624699), new object[2] { npcIndex, eDeliverySlot }); - _questController.Stop(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(349841486)); - _fateController.Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-85002639)); - _seasonalDutyController.Stop(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(349841486)); - _attunementController.Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1089731648)); - _customDeliveryController.Start(npcIndex, eDeliverySlot); - num2 = 1169289649; - break; - case 2: - goto end_IL_065b; - } - continue; - end_IL_065b: - break; - } - } - finally - { - num2 = ((disabledDisposable == null) ? (-1489318527) : (-1489318528)); - while (true) - { - int num19 = num2; - num4 = -1489318527; - num5 = num19; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - num2 = -1489318528; - break; - case 0: - goto end_IL_0754; - case 1: - _206B_200B_206F_206C_202B_206E_206E_200F_202C_206B_200D_200C_206E_206A_206C_200C_202B_202E_202B_202A_200D_206F_200F_200B_206A_206D_200D_206F_200C_202C_200F_206D_200E_206F_202E_206F_200C_202A_206C_206A_202E((IDisposable)disabledDisposable); - num2 = -1489318527; - break; - } - continue; - end_IL_0754: - break; - } - } - num2 = (flag2 ? 1980773701 : 1980773707); - while (true) - { - int num20 = num2; - num4 = 1980773706; - num5 = num20; - switch ((num5 | num4) - (num5 & num4)) - { - case 14: - num2 = 1980773707; - break; - case 1: - num2 = ((!_202C_202B_206B_202A_206B_202D_206F_200F_206B_202A_200B_202D_200D_200D_206E_206A_202C_202B_202D_206D_200B_200E_206A_200B_206E_206A_202C_200D_202A_206B_206D_200D_200E_206E_200C_200F_202A_206F_200B_206D_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? 1980773701 : 1980773705); - break; - case 2: - num2 = ((!_attunementController.IsRunning) ? 1980773723 : 1980773710); - break; - case 18: - num2 = ((_customDeliveryController.State == CustomDeliveryController.EDeliveryState.Idle) ? 1980773706 : 1980773709); - break; - case 7: - _202A_206C_202B_200F_206C_200B_200D_202A_206C_206A_200D_206F_200E_202E_202D_200F_200B_206E_206C_206C_200F_200E_206A_200E_202B_202B_202C_206C_206E_206B_202A_200C_206E_200E_200B_200C_200B_202C_200E_206B_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1435445966)); - num2 = 1980773701; - break; - case 16: - num2 = ((!_seasonalDutyController.IsRunning) ? 1980773704 : 1980773696); - break; - case 13: - num2 = ((!_fateController.IsRunning) ? 1980773722 : 1980773697); - break; - case 5: - _202A_206C_202B_200F_206C_200B_200D_202A_206C_206A_200D_206F_200E_202E_202D_200F_200B_206E_206C_206C_200F_200E_206A_200E_202B_202B_202C_206C_206E_206B_202A_200C_206E_200E_200B_200C_200B_202C_200E_206B_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1861782460)); - num2 = 1980773701; - break; - case 0: - num2 = ((num7 > 0) ? 1980773708 : 1980773699); - break; - case 3: - num2 = ((!_questController.IsRunning) ? 1980773703 : 1980773702); - break; - case 10: - _202A_206C_202B_200F_206C_200B_200D_202A_206C_206A_200D_206F_200E_202E_202D_200F_200B_206E_206C_206C_200F_200E_206A_200E_202B_202B_202C_206C_206E_206B_202A_200C_206E_200E_200B_200C_200B_202C_200E_206B_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1412730822)); - num2 = 1980773701; - break; - case 11: - _202A_206C_202B_200F_206C_200B_200D_202A_206C_206A_200D_206F_200E_202E_202D_200F_200B_206E_206C_206C_200F_200E_206A_200E_202B_202B_202C_206C_206E_206B_202A_200C_206E_200E_200B_200C_200B_202C_200E_206B_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1423170090)); - num2 = 1980773701; - break; - case 17: - num2 = ((!flag) ? 1980773720 : 1980773711); - break; - case 4: - _202A_206C_202B_200F_206C_200B_200D_202A_206C_206A_200D_206F_200E_202E_202D_200F_200B_206E_206C_206C_200F_200E_206A_200E_202B_202B_202C_206C_206E_206B_202A_200C_206E_200E_200B_200C_200B_202C_200E_206B_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1808860543)); - num2 = 1980773701; - break; - case 9: - _202A_206C_202B_200F_206C_200B_200D_202A_206C_206A_200D_206F_200E_202E_202D_200F_200B_206E_206C_206C_200F_200E_206A_200E_202B_202B_202C_206C_206E_206B_202A_200C_206E_200E_200B_200C_200B_202C_200E_206B_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(573253239)); - num2 = 1980773701; - break; - case 12: - _202A_206C_202B_200F_206C_200B_200D_202A_206C_206A_200D_206F_200E_202E_202D_200F_200B_206E_206C_206C_200F_200E_206A_200E_202B_202B_202C_206C_206E_206B_202A_200C_206E_200E_200B_200C_200B_202C_200E_206B_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-212367762)); - num2 = 1980773701; - break; - case 6: - _202A_206C_202B_200F_206C_200B_200D_202A_206C_206A_200D_206F_200E_202E_202D_200F_200B_206E_206C_206C_200F_200E_206A_200E_202B_202B_202C_206C_206E_206B_202A_200C_206E_200E_200B_200C_200B_202C_200E_206B_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1212532782)); - num2 = 1980773701; - break; - case 15: - { - uint rowId2 = subrow.Reward.RowId; - bool isBonus = subrow.IsBonus; - list = _rewardCalculator.CalculateRewards(rowId2, isBonus, _configuration.CustomDeliveries.CollectabilityTier); - if (list.Count > 0) - { - num2 = 1980773698; - break; - } - goto end_IL_07bf; - } - case 8: - { - string text = _200C_206D_206B_202A_202D_202A_202A_202C_202E_206A_202C_200B_206C_200D_200B_202C_200B_202B_200F_200E_202C_200C_202C_200E_200B_200B_206C_206B_202E_206E_206F_206E_202B_206A_202A_202B_200B_206F_200C_200D_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1403263077), (IEnumerable<string>)list.ConvertAll([MethodImpl(MethodImplOptions.NoInlining)] (DeliveryRewardCalculator.CurrencyReward r) => - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(1, 2); - defaultInterpolatedStringHandler2.AppendFormatted(r.AmountPerDelivery); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2018550958)); - defaultInterpolatedStringHandler2.AppendFormatted(r.CurrencyName); - return defaultInterpolatedStringHandler2.ToStringAndClear(); - })); - ImRaii.IndentDisposable indentDisposable = _200C_202A_200E_202A_206D_202E_202A_202B_206D_206C_200F_202B_200E_206D_206B_200C_206D_206F_206E_206C_202E_206B_200F_200F_200C_202C_206B_200E_206F_206C_200C_200C_206B_206D_200B_206C_206F_202B_200D_206E_202E(1, true); - try - { - UiThemeUtils.WrappedTextColored(UiThemeUtils.DimTextColor, _200C_206B_206D_206C_200E_200C_206B_200D_202A_200F_202B_200F_202A_202C_206F_206F_202B_206A_206E_202E_206A_200F_202D_202A_200D_202B_202A_206C_206E_200F_200B_206E_206C_202C_206D_200C_202A_206B_206F_206A_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(552086919), text)); - foreach (DeliveryRewardCalculator.CurrencyReward item in list) - { - if (!DeliveryRewardCalculator.WouldOvercap(item.CurrencyItemId, item.AmountPerDelivery, deliveriesRemaining)) - { - continue; - } - ImRaii.ColorDisposable colorDisposable = _202B_206D_206C_206F_200B_200F_202C_200E_206C_206D_206E_200B_202D_200D_202A_200D_200D_206F_206B_202A_200C_202E_206E_206A_202D_200D_200C_206F_206D_202B_200C_206F_200B_202E_200C_202D_200C_202C_206E_202B_202E(ImGuiCol.Text, UiThemeUtils.StatusActive, true); - try - { - fontDisposable = _202B_200B_206D_206E_200D_200E_202D_202A_202D_200B_200D_202D_200D_206C_202B_200F_202D_202A_202B_206E_200D_202A_200E_206D_206D_200E_206B_202B_202B_200D_200C_200D_200F_200C_200E_202A_202E_206A_200E_206D_202E(_206C_206C_202D_206F_200C_200F_200C_200B_202E_200F_202E_200D_200C_202C_206E_206F_206C_200D_206E_200F_206D_206C_206C_206A_206E_202E_200D_206C_202C_202E_206B_206B_206A_206C_200F_200F_206E_202A_200D_200C_202E(), true); - try - { - _202A_202A_206A_202E_200B_206A_202E_202B_202B_200C_202D_206D_202E_200E_200F_206A_200D_206A_206B_202C_206F_200C_202E_200D_206A_200B_206B_202C_200E_202E_206B_202E_206F_200C_200B_206F_200F_200D_206F_206A_202E((ImU8String)_206E_206D_202B_206A_206B_206E_206B_206F_202D_206B_206A_200F_202A_202B_200F_202B_200B_206B_206C_200F_206B_202D_202E_200E_206F_202E_200B_200F_206A_202A_200B_202D_200E_202B_206B_202A_206E_202C_202D_200E_202E(FontAwesomeIcon.ExclamationTriangle)); - } - finally - { - num2 = ((fontDisposable == null) ? (-1914682844) : (-1914682841)); - while (true) - { - int num21 = num2; - num4 = -1914682842; - num5 = num21; - int num22 = num5 + num4; - int num23 = num5 & num4; - switch (num22 - (num23 + num23)) - { - case 2: - goto end_IL_0b9c; - case 1: - _206B_200B_206F_206C_202B_206E_206E_200F_202C_206B_200D_200C_206E_206A_206C_200C_202B_202E_202B_202A_200D_206F_200F_200B_206A_206D_200D_206F_200C_202C_200F_206D_200E_206F_202E_206F_200C_202A_206C_206A_202E((IDisposable)fontDisposable); - num2 = -1914682844; - break; - case 0: - num2 = -1914682841; - break; - } - continue; - end_IL_0b9c: - break; - } - } - _200D_202E_202B_202B_202A_200B_206B_206E_206A_200B_202D_202E_206F_200E_200D_202C_206C_202D_202E_202B_200B_202B_200E_200B_202B_202E_202D_206C_206F_200B_202A_206F_206B_200D_206C_202C_206F_200D_202C_200E_202E(0f, 4f); - int value2 = _202D_202C_202D_202E_206B_206A_206E_202B_206F_206C_206C_206D_206D_206E_202C_206F_200F_200F_202C_200F_206B_202C_202E_200F_202C_206D_202E_206A_206C_202B_202A_206D_206A_200B_200F_202A_200F_202C_206C_200F_202E(item.CurrencyItemId, false, false); - int value3 = item.AmountPerDelivery * deliveriesRemaining; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(20, 3); - defaultInterpolatedStringHandler.AppendFormatted(item.CurrencyName); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1071152910)); - defaultInterpolatedStringHandler.AppendFormatted(value2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-809157797)); - defaultInterpolatedStringHandler.AppendFormatted(value3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - UiThemeUtils.WrappedText(defaultInterpolatedStringHandler.ToStringAndClear()); - } - finally - { - num2 = ((colorDisposable == null) ? (-609824758) : (-609824759)); - while (true) - { - int num24 = num2; - num4 = -609824760; - num5 = num24; - int num25 = num5 + num4; - int num26 = num5 & num4; - switch (num25 - (num26 + num26)) - { - case 0: - num2 = -609824759; - break; - case 2: - goto end_IL_0ca2; - case 1: - _206B_200B_206F_206C_202B_206E_206E_200F_202C_206B_200D_200C_206E_206A_206C_200C_202B_202E_202B_202A_200D_206F_200F_200B_206A_206D_200D_206F_200C_202C_200F_206D_200E_206F_202E_206F_200C_202A_206C_206A_202E((IDisposable)colorDisposable); - num2 = -609824758; - break; - } - continue; - end_IL_0ca2: - break; - } - } - } - } - finally - { - num2 = ((indentDisposable == null) ? (-1110550115) : (-1110550116)); - while (true) - { - int num27 = num2; - num4 = -1110550115; - num5 = num27; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - num2 = -1110550116; - break; - case 1: - _206B_200B_206F_206C_202B_206E_206E_200F_202C_206B_200D_200C_206E_206A_206C_200C_202B_202E_202B_202A_200D_206F_200F_200B_206A_206D_200D_206F_200C_202C_200F_206D_200E_206F_202E_206F_200C_202A_206C_206A_202E((IDisposable)indentDisposable); - num2 = -1110550115; - break; - case 0: - goto end_IL_0d2e; - } - continue; - end_IL_0d2e: - break; - } - } - goto end_IL_07bf; - } - } - continue; - end_IL_07bf: - break; - } - goto end_IL_022e; } + if (!flag2 && ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) + { + if (_questController.IsRunning) + { + ImGui.SetTooltip("Quest automation is running. Stop it first."); + } + else if (_fateController.IsRunning) + { + ImGui.SetTooltip("FATE farming is running. Stop it first."); + } + else if (_seasonalDutyController.IsRunning) + { + ImGui.SetTooltip("Seasonal duty farming is running. Stop it first."); + } + else if (_attunementController.IsRunning) + { + ImGui.SetTooltip("Attunement is running. Stop it first."); + } + else if (flag) + { + ImGui.SetTooltip("Automation is already running for this NPC."); + } + else if (_customDeliveryController.State != CustomDeliveryController.EDeliveryState.Idle) + { + ImGui.SetTooltip("Another delivery is already in progress."); + } + else if (remainingAllowances <= 0) + { + ImGui.SetTooltip("No weekly allowances remaining."); + } + else + { + ImGui.SetTooltip("No deliveries remaining for this NPC this week."); + } + } + uint rowId2 = subrow.Reward.RowId; + bool isBonus = subrow.IsBonus; + List<DeliveryRewardCalculator.CurrencyReward> list = _rewardCalculator.CalculateRewards(rowId2, isBonus, _configuration.CustomDeliveries.CollectabilityTier); + if (list.Count <= 0) + { + continue; + } + string text4 = string.Join(", ", list.ConvertAll((DeliveryRewardCalculator.CurrencyReward r) => $"{r.AmountPerDelivery} {r.CurrencyName}")); + using (ImRaii.PushIndent()) + { + UiThemeUtils.WrappedTextColored(UiThemeUtils.DimTextColor, "Rewards: " + text4); + foreach (DeliveryRewardCalculator.CurrencyReward item in list) + { + if (!DeliveryRewardCalculator.WouldOvercap(item.CurrencyItemId, item.AmountPerDelivery, deliveriesRemaining)) + { + continue; + } + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.StatusActive)) + { + using (ImRaii.PushFont(UiBuilder.IconFont)) + { + ImGui.Text(FontAwesomeIcon.ExclamationTriangle.ToIconString()); + } + ImGui.SameLine(0f, 4f); + int itemCount = InventoryHelper.GetItemCount(item.CurrencyItemId); + int value2 = item.AmountPerDelivery * deliveriesRemaining; + UiThemeUtils.WrappedText($"{item.CurrencyName} would overcap ({itemCount} + {value2})"); + } + } } - continue; - end_IL_022e: - break; } } - finally + List<int> deliveryQueue = _configuration.CustomDeliveries.DeliveryQueue; + int num3 = deliveryQueue.IndexOf(npcIndex); + if (num3 >= 0) { - num2 = ((idDisposable == null) ? 735896166 : 735896165); - while (true) + using (ImRaii.Disabled(num3 == 0)) { - int num28 = num2; - num4 = 735896164; - num5 = num28; - int num29 = num5 + num4; - int num30 = num5 & num4; - switch (num29 - (num30 + num30)) + if (UiThemeUtils.IconButton(FontAwesomeIcon.ArrowUp, ImGui.GetFrameHeight())) { - case 0: - num2 = 735896165; - break; - case 2: - goto end_IL_0d9e; - case 1: - _206B_200B_206F_206C_202B_206E_206E_200F_202C_206B_200D_200C_206E_206A_206C_200C_202B_202E_202B_202A_200D_206F_200F_200B_206A_206D_200D_206F_200C_202C_200F_206D_200E_206F_202E_206F_200C_202A_206C_206A_202E((IDisposable)idDisposable); - num2 = 735896166; - break; + deliveryQueue.RemoveAt(num3); + deliveryQueue.Insert(num3 - 1, npcIndex); + _pluginInterface.SavePluginConfig(_configuration); } - continue; - end_IL_0d9e: - break; + } + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) + { + ImU8String tooltip = new ImU8String(19, 2); + tooltip.AppendLiteral("Queue position: "); + tooltip.AppendFormatted(num3 + 1); + tooltip.AppendLiteral(" / "); + tooltip.AppendFormatted(deliveryQueue.Count); + ImGui.SetTooltip(tooltip); + } + ImGui.SameLine(); + using (ImRaii.Disabled(num3 == deliveryQueue.Count - 1)) + { + if (UiThemeUtils.IconButton(FontAwesomeIcon.ArrowDown, ImGui.GetFrameHeight())) + { + deliveryQueue.RemoveAt(num3); + deliveryQueue.Insert(num3 + 1, npcIndex); + _pluginInterface.SavePluginConfig(_configuration); + } + } + ImGui.SameLine(); + if (UiThemeUtils.IconButton(FontAwesomeIcon.Minus, ImGui.GetFrameHeight())) + { + deliveryQueue.Remove(npcIndex); + _pluginInterface.SavePluginConfig(_configuration); + } + if (ImGui.IsItemHovered()) + { + ImGui.SetTooltip("Remove from delivery queue"); } } - int num31 = num8; - num4 = 1; - num5 = num31; - int num32 = num5 ^ num4; - int num33 = num5 & num4; - num8 = num32 + (num33 + num33); - } - num2 = -108366554; - List<int> deliveryQueue = default(List<int>); - int num35 = default(int); - string text2 = default(string); - DeliveryPlan currentPlan2 = default(DeliveryPlan); - while (true) - { - int num34 = num2; - int num4 = -108366553; - int num5 = num34; - switch ((num5 | num4) - (num5 & num4)) + else { - case 2: - num2 = -108366554; - break; - case 1: - deliveryQueue = _configuration.CustomDeliveries.DeliveryQueue; - num35 = deliveryQueue.IndexOf(npcIndex); - if (num35 >= 0) - { - num2 = -108366553; - break; - } - if (UiThemeUtils.IconButton(FontAwesomeIcon.Plus, _200C_206D_200E_206C_206C_200F_200E_202C_206E_200F_202C_200F_202D_206E_202D_202C_200F_202E_202A_206A_202E_200F_202B_200C_206D_200F_202D_206C_202B_202A_206B_206E_202D_202C_206D_202E_206F_206F_206D_202E_202E())) + if (UiThemeUtils.IconButton(FontAwesomeIcon.Plus, ImGui.GetFrameHeight())) { deliveryQueue.Add(npcIndex); - _206A_202D_200C_200B_202B_206B_206C_206D_202E_206B_202E_202D_206C_206B_202E_200C_200D_202E_206F_200C_202A_202D_200D_202D_206F_206C_206A_202B_202D_200D_202D_202C_200F_206B_206C_200C_202B_200E_206E_202E_202E(_pluginInterface, (IPluginConfiguration)_configuration); + _pluginInterface.SavePluginConfig(_configuration); } - if (_200B_206D_206C_206B_200B_202D_202A_200B_206C_202E_206F_200B_200F_200C_200E_202D_200C_206A_206C_206D_200B_206B_202D_200B_202D_202E_202B_200D_200B_202C_202D_200D_206B_206F_200D_200F_206B_202C_202B_206E_202E()) + if (ImGui.IsItemHovered()) { - _202A_206C_202B_200F_206C_200B_200D_202A_206C_206A_200D_206F_200E_202E_202D_200F_200B_206E_206C_206C_200F_200E_206A_200E_202B_202B_202C_206C_206E_206B_202A_200C_206E_200E_200B_200C_200B_202C_200E_206B_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1508108081)); - num2 = -24438164; - goto IL_11ce; + ImGui.SetTooltip("Add to delivery queue"); } - goto IL_12f5; - case 0: - { - ImRaii.DisabledDisposable disabledDisposable = _200F_206F_202D_206B_206F_200E_200E_206B_202C_202C_206B_206B_200D_206E_202B_202E_200B_200D_200E_206C_200F_206C_206A_206A_206F_202D_200E_202E_200C_202E_206D_202E_202D_202B_206D_206A_202D_200C_200E_202E_202E(num35 == 0); - try - { - num2 = ((!UiThemeUtils.IconButton(FontAwesomeIcon.ArrowUp, _200C_206D_200E_206C_206C_200F_200E_202C_206E_200F_202C_200F_202D_206E_202D_202C_200F_202E_202A_206A_202E_200F_202B_200C_206D_200F_202D_206C_202B_202A_206B_206E_202D_202C_206D_202E_206F_206F_206D_202E_202E())) ? (-446512354) : (-446512355)); - while (true) - { - int num36 = num2; - num4 = -446512356; - num5 = num36; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = -446512355; - break; - case 1: - { - deliveryQueue.RemoveAt(num35); - List<int> list2 = deliveryQueue; - int num37 = num35; - num4 = 1; - num5 = num37; - list2.Insert(~(~num5 + num4), npcIndex); - _206A_202D_200C_200B_202B_206B_206C_206D_202E_206B_202E_202D_206C_206B_202E_200C_200D_202E_206F_200C_202A_202D_200D_202D_206F_206C_206A_202B_202D_200D_202D_202C_200F_206B_206C_200C_202B_200E_206E_202E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - num2 = -446512354; - break; - } - case 2: - goto end_IL_0ebb; - } - continue; - end_IL_0ebb: - break; - } - } - finally - { - num2 = ((disabledDisposable == null) ? (-187160597) : (-187160598)); - while (true) - { - int num38 = num2; - num4 = -187160597; - num5 = num38; - int num39 = num5 + num4; - int num40 = num5 & num4; - switch (num39 - (num40 + num40)) - { - case 2: - num2 = -187160598; - break; - case 0: - goto end_IL_0f53; - case 1: - _206B_200B_206F_206C_202B_206E_206E_200F_202C_206B_200D_200C_206E_206A_206C_200C_202B_202E_202B_202A_200D_206F_200F_200B_206A_206D_200D_206F_200C_202C_200F_206D_200E_206F_202E_206F_200C_202A_206C_206A_202E((IDisposable)disabledDisposable); - num2 = -187160597; - break; - } - continue; - end_IL_0f53: - break; - } - } - num2 = ((!_202C_202B_206B_202A_206B_202D_206F_200F_206B_202A_200B_202D_200D_200D_206E_206A_202C_202B_202D_206D_200B_200E_206A_200B_206E_206A_202C_200D_202A_206B_206D_200D_200E_206E_200C_200F_202A_206F_200B_206D_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? (-1917102626) : (-1917102627)); - while (true) - { - int num41 = num2; - num4 = -1917102628; - num5 = num41; - int num42 = num5 + num4; - int num43 = num5 & num4; - switch (num42 - (num43 + num43)) - { - default: - continue; - case 0: - num2 = -1917102627; - continue; - case 1: - { - ImU8String imU8String4 = new ImU8String(19, 2); - imU8String4.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1691694885)); - int num44 = num35; - num4 = 1; - num5 = num44; - int num45 = num5 ^ num4; - int num46 = num5 & num4; - imU8String4.AppendFormatted(num45 + (num46 + num46)); - imU8String4.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1534070043)); - imU8String4.AppendFormatted(deliveryQueue.Count); - _202A_206C_202B_200F_206C_200B_200D_202A_206C_206A_200D_206F_200E_202E_202D_200F_200B_206E_206C_206C_200F_200E_206A_200E_202B_202B_202C_206C_206E_206B_202A_200C_206E_200E_200B_200C_200B_202C_200E_206B_202E(imU8String4); - num2 = -1917102626; - continue; - } - case 2: - break; - } - break; - } - _200C_200D_202C_200E_200B_202C_200B_200B_206D_200C_206B_200B_202B_202B_202E_206B_200E_202C_206B_202E_206C_200E_200C_202D_206C_206F_202C_206F_200B_202C_200F_200F_200E_200C_206D_206A_206C_206B_206B_202E(); - disabledDisposable = _200F_206F_202D_206B_206F_200E_200E_206B_202C_202C_206B_206B_200D_206E_202B_202E_200B_200D_200E_206C_200F_206C_206A_206A_206F_202D_200E_202E_200C_202E_206D_202E_202D_202B_206D_206A_202D_200C_200E_202E_202E(num35 == deliveryQueue.Count - 1); - try - { - num2 = ((!UiThemeUtils.IconButton(FontAwesomeIcon.ArrowDown, _200C_206D_200E_206C_206C_200F_200E_202C_206E_200F_202C_200F_202D_206E_202D_202C_200F_202E_202A_206A_202E_200F_202B_200C_206D_200F_202D_206C_202B_202A_206B_206E_202D_202C_206D_202E_206F_206F_206D_202E_202E())) ? 1024234644 : 1024234647); - while (true) - { - int num47 = num2; - num4 = 1024234645; - num5 = num47; - int num48 = num5 + num4; - int num49 = num5 & num4; - switch (num48 - (num49 + num49)) - { - case 0: - num2 = 1024234647; - break; - case 2: - { - deliveryQueue.RemoveAt(num35); - List<int> list3 = deliveryQueue; - int num50 = num35; - num4 = 1; - num5 = num50; - int num51 = num5 ^ num4; - int num52 = num5 & num4; - list3.Insert(num51 + (num52 + num52), npcIndex); - _206A_202D_200C_200B_202B_206B_206C_206D_202E_206B_202E_202D_206C_206B_202E_200C_200D_202E_206F_200C_202A_202D_200D_202D_206F_206C_206A_202B_202D_200D_202D_202C_200F_206B_206C_200C_202B_200E_206E_202E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - num2 = 1024234644; - break; - } - case 1: - goto end_IL_10af; - } - continue; - end_IL_10af: - break; - } - } - finally - { - num2 = ((disabledDisposable == null) ? 440717623 : 440717620); - while (true) - { - int num53 = num2; - num4 = 440717622; - num5 = num53; - int num54 = num5 + num4; - int num55 = num5 & num4; - switch (num54 - (num55 + num55)) - { - case 0: - num2 = 440717620; - break; - case 2: - _206B_200B_206F_206C_202B_206E_206E_200F_202C_206B_200D_200C_206E_206A_206C_200C_202B_202E_202B_202A_200D_206F_200F_200B_206A_206D_200D_206F_200C_202C_200F_206D_200E_206F_202E_206F_200C_202A_206C_206A_202E((IDisposable)disabledDisposable); - num2 = 440717623; - break; - case 1: - goto end_IL_114f; - } - continue; - end_IL_114f: - break; - } - } - _200C_200D_202C_200E_200B_202C_200B_200B_206D_200C_206B_200B_202B_202B_202E_206B_200E_202C_206B_202E_206C_200E_200C_202D_206C_206F_202C_206F_200B_202C_200F_200F_200E_200C_206D_206A_206C_206B_206B_202E(); - num2 = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Minus, _200C_206D_200E_206C_206C_200F_200E_202C_206E_200F_202C_200F_202D_206E_202D_202C_200F_202E_202A_206A_202E_200F_202B_200C_206D_200F_202D_206C_202B_202A_206B_206E_202D_202C_206D_202E_206F_206F_206D_202E_202E())) ? (-24438174) : (-24438170)); - goto IL_11ce; - } - IL_11ce: - while (true) - { - int num56 = num2; - num4 = -24438164; - num5 = num56; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 5: - text2 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-208957793); - num2 = -24438162; - continue; - case 3: - _200D_202D_200F_200C_206C_202B_200F_202A_206C_206D_206F_206F_206C_200D_206C_202C_206E_206B_200E_206D_206B_206C_202E_200F_202D_200C_206D_202A_206E_202D_200F_200D_200D_200C_200E_200F_202D_200E_206F_206E_202E(); - currentPlan2 = _customDeliveryController.CurrentPlan; - switch (_customDeliveryController.State) - { - case CustomDeliveryController.EDeliveryState.TurningIn: - break; - default: - goto IL_1292; - case CustomDeliveryController.EDeliveryState.Executing: - goto IL_129e; - case CustomDeliveryController.EDeliveryState.WaitingForCraft: - goto IL_12b6; - case CustomDeliveryController.EDeliveryState.WaitingForFish: - goto IL_1342; - case CustomDeliveryController.EDeliveryState.Complete: - goto IL_1366; - case CustomDeliveryController.EDeliveryState.WaitingForGather: - goto IL_14c3; - } - goto case 5; - case 11: - goto IL_129e; - case 18: - goto IL_12b6; - case 9: - _200D_202D_200F_200C_206C_202B_200F_202A_206C_206D_206F_206F_206C_200D_206C_202C_206E_206B_200E_206D_206B_206C_202E_200F_202D_200C_206D_202A_206E_202D_200F_200D_200D_200C_200E_200F_202D_200E_206F_206E_202E(); - return; - case 1: - _customDeliveryController.Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2144334620)); - num2 = -24438171; - continue; - case 0: - break; - case 17: - num2 = -24438176; - continue; - case 14: - num2 = ((!_200B_206D_206C_206B_200B_202D_202A_200B_206C_202E_206F_200B_200F_200C_200E_202D_200C_206A_206C_206D_200B_206B_202D_200B_202D_202E_202B_200D_200B_202C_202D_200D_206B_206F_200D_200F_206B_202C_202B_206E_202E()) ? (-24438164) : (-24438172)); - continue; - case 7: - goto IL_1342; - case 15: - num2 = -24438170; - continue; - case 4: - goto IL_1366; - case 16: - { - string itemName2 = GetItemName(currentPlan2.ItemId); - ImU8String imU8String5 = new ImU8String(6, 1); - imU8String5.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-150682317)); - imU8String5.AppendFormatted(itemName2); - _200C_206E_200B_206E_200C_202B_206A_202A_200B_206D_206C_200E_206F_206A_206D_206D_202B_206B_206C_206F_200E_202A_200E_206C_202C_200D_206C_202E_206C_202A_206D_206C_206B_206A_202D_206D_206E_202B_206E_200F_202E(ref UiThemeUtils.DimTextColor, imU8String5); - num2 = -24438175; - continue; - } - case 2: - { - string text3 = text2; - _200C_206E_200B_206E_200C_202B_206A_202A_200B_206D_206C_200E_206F_206A_206D_206D_202B_206B_206C_206F_200E_202A_200E_206C_202C_200D_206C_202E_206C_202A_206D_206C_206B_206A_202D_206D_206E_202B_206E_200F_202E(ref UiThemeUtils.StatusActive, (ImU8String)text3); - num2 = ((currentPlan2 == null) ? (-24438175) : (-24438148)); - continue; - } - case 10: - deliveryQueue.Remove(npcIndex); - _206A_202D_200C_200B_202B_206B_206C_206D_202E_206B_202E_202D_206C_206B_202E_200C_200D_202E_206F_200C_202A_202D_200D_202D_206F_206C_206A_202B_202D_200D_202D_202C_200F_206B_206C_200C_202B_200E_206E_202E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - num2 = -24438174; - continue; - case 8: - _202A_206C_202B_200F_206C_200B_200D_202A_206C_206A_200D_206F_200E_202E_202D_200F_200B_206E_206C_206C_200F_200E_206A_200E_202B_202B_202C_206C_206E_206B_202A_200C_206E_200E_200B_200C_200B_202C_200E_206B_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(656153411)); - break; - case 13: - num2 = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Stop, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-706453881))) ? (-24438171) : (-24438163)); - continue; - case 6: - goto IL_14c3; - case 12: - { - text2 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1654225134); - num2 = -24438162; - continue; - } - IL_1366: - text2 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1679534027); - num2 = -24438162; - continue; - IL_1342: - text2 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-739876525); - num2 = -24438162; - continue; - IL_12b6: - text2 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2013139255); - num2 = -24438162; - continue; - IL_129e: - text2 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(793879849); - num2 = -24438162; - continue; - IL_1292: - num2 = -24438147; - continue; - IL_14c3: - text2 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1684456319); - num2 = -24438162; - continue; - } - break; - } - goto IL_12f5; - IL_12f5: - num2 = ((!flag) ? (-24438171) : (-24438161)); - goto IL_11ce; } + if (flag) + { + ImGui.Spacing(); + DeliveryPlan currentPlan2 = _customDeliveryController.CurrentPlan; + ImGui.TextColored(in UiThemeUtils.StatusActive, _customDeliveryController.State switch + { + CustomDeliveryController.EDeliveryState.WaitingForCraft => "Waiting for craft...", + CustomDeliveryController.EDeliveryState.WaitingForGather => "Waiting for gather...", + CustomDeliveryController.EDeliveryState.WaitingForFish => "Waiting for fish...", + CustomDeliveryController.EDeliveryState.TurningIn => "Turning in...", + CustomDeliveryController.EDeliveryState.Executing => "Executing...", + CustomDeliveryController.EDeliveryState.Complete => "Complete.", + _ => "Running...", + }); + if (currentPlan2 != null) + { + string itemName2 = GetItemName(currentPlan2.ItemId); + ImU8String text5 = new ImU8String(6, 1); + text5.AppendLiteral("Item: "); + text5.AppendFormatted(itemName2); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text5); + } + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Stop, "Stop")) + { + _customDeliveryController.Stop("User requested stop"); + } + } + ImGui.Spacing(); } } private bool HasAnyDoHDoLAtLevel(ushort requiredLevel) { ExcelSheet<ClassJob> excelSheet = _dataManager.GetExcelSheet<ClassJob>(); - EClassJob[] array = new EClassJob[11]; - _202A_202E_202A_206D_202B_202D_206E_200E_202C_202A_202B_202C_200C_206C_200B_206A_200F_206D_202B_206E_200B_202B_202D_206E_206C_206E_200F_206B_202C_202A_206A_206C_202C_200C_202B_200B_206D_206C_206D_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - EClassJob[] array2 = array; - int num = 0; - int num2 = -1047471697; - ClassJob row = default(ClassJob); - while (true) + EClassJob[] array = new EClassJob[11] { - int num3 = num2; - int num4 = -1047471702; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) + EClassJob.Carpenter, + EClassJob.Blacksmith, + EClassJob.Armorer, + EClassJob.Goldsmith, + EClassJob.Leatherworker, + EClassJob.Weaver, + EClassJob.Alchemist, + EClassJob.Culinarian, + EClassJob.Miner, + EClassJob.Botanist, + EClassJob.Fisher + }; + foreach (EClassJob rowId in array) + { + if (excelSheet.TryGetRow((uint)rowId, out var row) && PlayerStateHelper.GetClassJobLevel(row.ExpArrayIndex) >= requiredLevel) { - case 6: - return false; - case 2: - { - int num8 = num; - num4 = 1; - num5 = num8; - int num9 = num5 ^ num4; - int num10 = num5 & num4; - num = num9 + (num10 + num10); - num2 = -1047471697; - break; - } - case 0: - num2 = -1047471697; - break; - case 4: return true; - case 1: - { - EClassJob rowId = array2[num]; - num2 = ((!excelSheet.TryGetRow((uint)rowId, out row)) ? (-1047471704) : (-1047471703)); - break; - } - case 3: - num2 = ((_200F_200F_200B_200B_206A_202D_202B_206D_200D_200B_202B_200F_200C_202A_206E_202C_206A_202E_206D_200E_200F_200B_202D_206D_200D_200F_206D_200D_202E_200D_200F_200D_202D_200C_200F_200B_200E_206F_200C_200F_202E((int)row.ExpArrayIndex) < requiredLevel) ? (-1047471704) : (-1047471698)); - break; - case 5: - num2 = ((num < array2.Length) ? (-1047471701) : (-1047471700)); - break; } } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private string GetItemName(uint itemId) { - Item row; - int num = ((!_dataManager.GetExcelSheet<Item>().TryGetRow(itemId, out row)) ? (-1329306888) : (-1329306887)); - while (true) + if (_dataManager.GetExcelSheet<Item>().TryGetRow(itemId, out var row)) { - int num2 = num; - int num3 = -1329306888; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(5, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1774619943)); - defaultInterpolatedStringHandler.AppendFormatted(itemId); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - case 1: - return row.Name.ToString(); - case 2: - goto IL_00a6; - } - continue; - IL_00a6: - num = -1329306887; + return row.Name.ToString(); } + return $"Item#{itemId}"; } private static (DateTime ResetTime, TimeSpan TimeUntilReset) CalculateWeeklyReset() @@ -1995,369 +733,25 @@ internal sealed class CustomDeliveryJournalComponent DateTime utcNow = DateTime.UtcNow; int num = (int)(2 - utcNow.DayOfWeek + 7) % 7; DateTime dateTime = utcNow.Date.AddDays(num).AddHours(8.0); - int num2 = ((!(dateTime <= utcNow)) ? (-1056922684) : (-1056922681)); - while (true) + if (dateTime <= utcNow) { - int num3 = num2; - int num4 = -1056922683; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 0: - num2 = -1056922681; - break; - case 2: - dateTime = dateTime.AddDays(7.0); - num2 = -1056922684; - break; - case 1: - { - TimeSpan item = dateTime - utcNow; - return (ResetTime: dateTime.ToLocalTime(), TimeUntilReset: item); - } - } + dateTime = dateTime.AddDays(7.0); } + TimeSpan item = dateTime - utcNow; + return (ResetTime: dateTime.ToLocalTime(), TimeUntilReset: item); } - [MethodImpl(MethodImplOptions.NoInlining)] private static string GetExpansionName(EExpansionVersion expansion) { - int num; - string result = default(string); - switch (expansion) + return expansion switch { - default: - num = -2868485; - goto IL_0029; - case EExpansionVersion.Heavensward: - result = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(221441773); - num = -2868486; - goto IL_0029; - case EExpansionVersion.Endwalker: - goto IL_0099; - case EExpansionVersion.Dawntrail: - goto IL_00ba; - case EExpansionVersion.Shadowbringers: - goto IL_00d0; - case EExpansionVersion.Stormblood: - goto IL_00f1; - case EExpansionVersion.ARealmReborn: - goto IL_0109; - IL_0029: - while (true) - { - int num2 = num; - int num3 = -2868493; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 7: - result = expansion.ToString(); - num = -2868486; - break; - case 5: - goto end_IL_0029; - case 3: - goto IL_0099; - case 8: - num = -2868492; - break; - case 6: - goto IL_00ba; - case 2: - goto IL_00d0; - case 0: - num = -2868485; - break; - case 1: - goto IL_00f1; - case 9: - return result; - case 4: - goto IL_0109; - } - continue; - end_IL_0029: - break; - } - goto case EExpansionVersion.Heavensward; - IL_0109: - result = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(177882678); - num = -2868486; - goto IL_0029; - IL_00f1: - result = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1756895913); - num = -2868486; - goto IL_0029; - IL_00d0: - result = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1593202768); - num = -2868486; - goto IL_0029; - IL_00ba: - result = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-247237943); - num = -2868486; - goto IL_0029; - IL_0099: - result = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-603468531); - num = -2868486; - goto IL_0029; - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - static CustomDeliveryJournalComponent() - { - EClassJob[] array = new EClassJob[8]; - _202A_202E_202A_206D_202B_202D_206E_200E_202C_202A_202B_202C_200C_206C_200B_206A_200F_206D_202B_206E_200B_202B_202D_206E_206C_206E_200F_206B_202C_202A_206A_206C_202C_200C_202B_200B_206D_206C_206D_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - CrafterJobs = array; - GathererNames = new string[2] - { - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1210711157), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-491484256) + EExpansionVersion.ARealmReborn => "A Realm Reborn", + EExpansionVersion.Heavensward => "Heavensward", + EExpansionVersion.Stormblood => "Stormblood", + EExpansionVersion.Shadowbringers => "Shadowbringers", + EExpansionVersion.Endwalker => "Endwalker", + EExpansionVersion.Dawntrail => "Dawntrail", + _ => expansion.ToString(), }; - GathererJobs = new EClassJob[2] - { - EClassJob.Miner, - EClassJob.Botanist - }; - OvercapModeNames = new string[3] - { - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1551866722), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1606236117), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1302723565) - }; - CollectabilityTierNames = new string[3] - { - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2068032764), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1663501260), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1666589218) - }; - } - - static void _200C_200D_202C_200E_200B_202C_200B_200B_206D_200C_206B_200B_202B_202B_202E_206B_200E_202C_206B_202E_206C_200E_200C_202D_206C_206F_202C_206F_200B_202C_200F_200F_200E_200C_206D_206A_206C_206B_206B_202E() - { - ImGui.SameLine(); - } - - static ImRaii.DisabledDisposable _200F_206F_202D_206B_206F_200E_200E_206B_202C_202C_206B_206B_200D_206E_202B_202E_200B_200D_200E_206C_200F_206C_206A_206A_206F_202D_200E_202E_200C_202E_206D_202E_202D_202B_206D_206A_202D_200C_200E_202E_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static void _206B_200B_206F_206C_202B_206E_206E_200F_202C_206B_200D_200C_206E_206A_206C_200C_202B_202E_202B_202A_200D_206F_200F_200B_206A_206D_200D_206F_200C_202C_200F_206D_200E_206F_202E_206F_200C_202A_206C_206A_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _206B_202C_206C_206E_200E_206E_206A_200D_200D_202C_202E_206D_200C_200C_202E_206B_200D_200B_200D_202B_200E_202B_202E_200C_202C_200F_202D_206E_200B_206C_206F_200C_202D_206D_206A_202C_206F_202B_202C_202D_202E() - { - ImGui.Separator(); - } - - static void _200D_202D_200F_200C_206C_202B_200F_202A_206C_206D_206F_206F_206C_200D_206C_202C_206E_206B_200E_206D_206B_206C_202E_200F_202D_200C_206D_202A_206E_202D_200F_200D_200D_200C_200E_200F_202D_200E_206F_206E_202E() - { - ImGui.Spacing(); - } - - static void _200C_206E_200B_206E_200C_202B_206A_202A_200B_206D_206C_200E_206F_206A_206D_206D_202B_206B_206C_206F_200E_202A_200E_206C_202C_200D_206C_202E_206C_202A_206D_206C_206B_206A_202D_206D_206E_202B_206E_200F_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static ushort _206F_202B_206A_202C_202E_200F_200E_202A_200E_206B_206B_200C_206B_200C_206F_200F_202B_200F_206E_202C_206B_206C_202A_206F_200C_202C_202D_200D_206D_206B_202D_206F_206B_200C_206B_200C_206B_202E_206C_202A_202E(ElementId P_0) - { - return P_0.Value; - } - - static bool _200C_200F_206C_200F_200E_206D_206F_206D_206D_206A_202B_206C_200B_206B_206A_206E_200E_206D_206B_202E_200E_206F_200E_202E_202A_200C_200B_200F_202E_206B_206F_202C_206F_200B_202D_206E_202B_200E_206A_206E_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static int _206D_202A_200F_206F_200C_202E_202C_202D_206E_200D_200C_202B_206F_200D_200B_202E_200F_202D_200C_202E_202A_206C_200B_202E_202B_202D_202D_200C_200D_206F_206C_206E_200C_202D_206D_206B_200E_206D_206B_200D_202E() - { - return SatisfactionSupplyActions.GetRemainingAllowances(); - } - - static byte _206E_200B_200C_206D_200E_202A_206D_206E_206A_206C_206D_206D_200D_200D_202B_202D_202B_206C_202D_206C_206F_206D_206A_200B_202C_200F_202E_200D_202E_206A_202A_206A_202C_200F_206E_200B_206A_206D_206A_200D_202E() - { - return SatisfactionSupplyActions.GetBonusGuaranteeRowId(); - } - - static int _200C_200B_200D_202C_206D_202C_200D_206E_202A_206E_200E_206B_206A_202A_202B_200D_206A_206E_200E_200D_206F_202D_200C_202C_200C_202A_200D_200F_200F_200B_200B_206F_206D_202C_200E_206F_200F_206D_202B_202D_202E(SatisfactionSupplyHelper P_0, int P_1) - { - return P_0.CalculateBonusGuaranteeIndex(P_1); - } - - static SatisfactionSupplyNpcId _200E_202B_206E_202E_202C_206D_200B_206D_206B_206E_206A_206D_202A_206C_202E_200E_200C_202D_206B_206B_202B_206A_200F_200B_200B_206D_206C_202E_206C_202B_206A_206D_206F_206B_200F_206E_202B_200B_200D_200E_202E(ushort P_0) - { - return new SatisfactionSupplyNpcId(P_0); - } - - static void _200D_202E_202B_202B_202A_200B_206B_206E_206A_200B_202D_202E_206F_200E_200D_202C_206C_202D_202E_202B_200B_202B_200E_200B_202B_202E_202D_206C_206F_200B_202A_206F_206B_200D_206C_202C_206F_200D_202C_200E_202E(float P_0, float P_1) - { - ImGui.SameLine(P_0, P_1); - } - - static Vector2 _202E_202A_206C_202A_206E_200F_200B_200B_200D_202C_206B_206D_206A_200C_200D_202E_206C_200B_202D_202A_206A_202E_202D_200B_206C_206D_206B_206A_200D_206A_202E_202C_202B_206B_202D_200E_202D_206F_202A_202B_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static float _206C_200C_206C_200D_206D_200F_202C_202A_202D_206E_206D_206C_200B_202D_202A_200B_206F_202D_200B_202A_200C_206D_202E_206E_206D_202A_206C_200B_200D_206B_206D_202D_202E_202C_200C_206F_200D_202D_202E_202E_202E(float P_0, float P_1) - { - return MathF.Min(P_0, P_1); - } - - static void _206B_202D_200D_200F_200B_206B_206C_200E_206A_206A_206E_202A_200B_206B_206B_206B_200F_206F_206E_202D_200D_206F_206B_206F_202C_206A_202C_200F_200D_206E_200F_200D_200D_206F_206F_200F_206A_200C_206A_200D_202E(float P_0) - { - ImGui.SetNextItemWidth(P_0); - } - - static void _206A_202D_200C_200B_202B_206B_206C_206D_202E_206B_202E_202D_206C_206B_202E_200C_200D_202E_206F_200C_202A_202D_200D_202D_206F_206C_206A_202B_202D_200D_202D_202C_200F_206B_206C_200C_202B_200E_206E_202E_202E(IDalamudPluginInterface P_0, IPluginConfiguration P_1) - { - P_0.SavePluginConfig(P_1); - } - - static bool _200B_206D_206C_206B_200B_202D_202A_200B_206C_202E_206F_200B_200F_200C_200E_202D_200C_206A_206C_206D_200B_206B_202D_200B_202D_202E_202B_200D_200B_202C_202D_200D_206B_206F_200D_200F_206B_202C_202B_206E_202E() - { - return ImGui.IsItemHovered(); - } - - static void _202A_206C_202B_200F_206C_200B_200D_202A_206C_206A_200D_206F_200E_202E_202D_200F_200B_206E_206C_206C_200F_200E_206A_200E_202B_202B_202C_206C_206E_206B_202A_200C_206E_200E_200B_200C_200B_202C_200E_206B_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } - - static SatisfactionSupplyActions.NpcState _200E_202C_206A_200F_206F_206F_200B_202B_206D_202D_202C_202B_206E_200E_202C_200F_206F_200C_206C_206A_202B_202B_206F_202A_200B_202B_202E_206A_202A_206C_206A_202D_200B_200C_200D_202B_206A_206E_206D_202E_202E(int P_0) - { - return SatisfactionSupplyActions.GetNpcState(P_0); - } - - static ImRaii.IdDisposable _200F_202D_202A_206A_202C_206A_200F_200C_206F_202E_200E_206E_206A_206A_202A_206B_200D_206B_200B_206E_206B_206F_206F_206F_206E_202A_202E_202A_202A_202A_200D_202A_206F_200C_202E_202B_200F_200C_202B_206C_202E(ImU8String P_0, bool P_1) - { - return ImRaii.PushId(P_0, P_1); - } - - static bool _202C_202B_206B_202A_206B_202D_206F_200F_206B_202A_200B_202D_200D_200D_206E_206A_202C_202B_202D_206D_200B_200E_206A_200B_206E_206A_202C_200D_202A_206B_206D_200D_200E_206E_200C_200F_202A_206F_200B_206D_202E(ImGuiHoveredFlags P_0) - { - return ImGui.IsItemHovered(P_0); - } - - static ImRaii.IndentDisposable _200C_202A_200E_202A_206D_202E_202A_202B_206D_206C_200F_202B_200E_206D_206B_200C_206D_206F_206E_206C_202E_206B_200F_200F_200C_202C_206B_200E_206F_206C_200C_200C_206B_206D_200B_206C_206F_202B_200D_206E_202E(int P_0, bool P_1) - { - return ImRaii.PushIndent(P_0, P_1); - } - - static ImRaii.IdDisposable _200C_202C_206E_206C_206F_206A_202A_200D_206E_200C_200E_202A_206F_206E_206A_200C_202D_206D_202A_200F_202A_206C_206A_206A_200C_202D_202D_200F_202A_202C_206C_202B_202B_206B_206F_202C_206F_206B_206F_202C_202E(int P_0, bool P_1) - { - return ImRaii.PushId(P_0, P_1); - } - - static void _202C_202D_202E_202A_200B_202C_200F_200F_202B_206E_206F_206F_200B_200C_200D_202A_200C_202E_200F_202D_206E_206E_200E_200D_206D_206E_206B_206D_206E_200E_200B_202A_202E_202A_202E_206F_200D_206A_200C_202E_202E(float P_0, Vector2 P_1, ImU8String P_2) - { - ImGui.ProgressBar(P_0, P_1, P_2); - } - - static float _200C_206D_200E_206C_206C_200F_200E_202C_206E_200F_202C_200F_202D_206E_202D_202C_200F_202E_202A_206A_202E_200F_202B_200C_206D_200F_202D_206C_202B_202A_206B_206E_202D_202C_206D_202E_206F_206F_206D_202E_202E() - { - return ImGui.GetFrameHeight(); - } - - static void _206B_202C_202A_200D_202E_202E_206C_206F_202E_206A_206A_200E_200D_200C_200D_206A_200F_202B_202A_200C_206E_202C_200C_200E_200C_200C_200F_200F_206B_202C_200C_206B_200E_200E_200B_200D_206A_206D_206E_206D_202E(ImU8String P_0, ImGuiPopupFlags P_1) - { - ImGui.OpenPopup(P_0, P_1); - } - - static bool _202D_206A_200F_202D_202B_202C_206A_202E_202B_202C_202C_206A_206D_202B_200D_206D_206A_200B_206C_206C_202A_200C_206C_206D_200B_200C_202A_202E_200C_202B_206C_200F_202E_202D_200E_202C_206C_202E_206B_200E_202E(ImU8String P_0, ImGuiWindowFlags P_1) - { - return ImGui.BeginPopup(P_0, P_1); - } - - static bool _200D_200D_206D_206D_200E_206E_200B_202D_200C_206D_202D_202C_206F_206C_200B_206A_200B_206B_202C_202E_200C_202E_200F_200E_202A_200D_202D_200F_206E_202C_200C_206B_202E_200E_200B_206D_202A_202A_202A_202D_202E(ImU8String P_0, ref int P_1, int P_2, int P_3, ImU8String P_4, ImGuiInputTextFlags P_5) - { - return ImGui.InputInt(P_0, ref P_1, P_2, P_3, P_4, P_5); - } - - static void _200D_206F_202A_206B_200F_206D_202B_206E_200D_200B_200D_206E_206F_200B_206F_202C_206C_202C_200B_206B_200E_200B_202A_200C_206B_206E_202B_206E_206B_200B_200E_206E_200C_206F_206D_200C_206A_200C_202D_206A_202E() - { - ImGui.EndPopup(); - } - - static uint _202E_206E_200C_202D_206F_206E_206D_200B_206C_200D_200F_202D_200E_200D_202C_206B_206C_202E_200F_206B_202B_206A_206B_206B_206B_206B_206B_200D_200F_206B_206C_202A_202D_206E_200C_206C_202D_206A_200B_206C_202E() - { - return SatisfactionSupplyActions.GetSupplySeed(); - } - - static uint[] _202A_202C_200F_206E_200F_206D_206D_200F_200D_202C_200F_202B_200C_202E_202B_206A_206F_206F_200E_202E_200D_200F_202D_200B_206B_202D_206A_206E_200F_202B_202D_206A_206D_206A_202C_200D_202D_206B_206F_206C_202E(SatisfactionSupplyHelper P_0, uint P_1, uint P_2) - { - return P_0.CalculateRequestedItems(P_1, P_2); - } - - static ImFontPtr _206C_206C_202D_206F_200C_200F_200C_200B_202E_200F_202E_200D_200C_202C_206E_206F_206C_200D_206E_200F_206D_206C_206C_206A_206E_202E_200D_206C_202C_202E_206B_206B_206A_206C_200F_200F_206E_202A_200D_200C_202E() - { - return UiBuilder.IconFont; - } - - static ImRaii.FontDisposable _202B_200B_206D_206E_200D_200E_202D_202A_202D_200B_200D_202D_200D_206C_202B_200F_202D_202A_202B_206E_200D_202A_200E_206D_206D_200E_206B_202B_202B_200D_200C_200D_200F_200C_200E_202A_202E_206A_200E_206D_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static string _206E_206D_202B_206A_206B_206E_206B_206F_202D_206B_206A_200F_202A_202B_200F_202B_200B_206B_206C_200F_206B_202D_202E_200E_206F_202E_200B_200F_206A_202A_200B_202D_200E_202B_206B_202A_206E_202C_202D_200E_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static Vector2 _202C_200F_206E_206F_200D_206D_206A_200E_202A_206B_200C_206A_202B_200B_200F_206D_202D_200D_206E_200B_202C_206B_206E_200E_206B_202C_200D_200C_200E_202A_206E_200F_206A_200B_202B_200E_200B_200D_202A_202A_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static ImGuiStylePtr _206B_206F_200C_200C_202D_202D_202C_202E_206B_206C_206D_200D_206E_200F_200D_206E_206C_200C_206F_200E_206D_206B_206F_206F_202D_202D_200E_206B_206E_202C_202D_202B_202D_202D_200B_200B_200E_206A_202D_206E_202E() - { - return ImGui.GetStyle(); - } - - static void _206A_202A_200E_200C_200D_200D_202E_206C_200B_200E_200D_200C_206B_206E_206B_202D_206F_202C_202C_206C_202D_200D_206D_206B_202D_206D_206E_206F_202A_206A_200B_202C_202B_200E_200B_202C_200B_206D_206C_200D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static string _200C_206D_206B_202A_202D_202A_202A_202C_202E_206A_202C_200B_206C_200D_200B_202C_200B_202B_200F_200E_202C_200C_202C_200E_200B_200B_206C_206B_202E_206E_206F_206E_202B_206A_202A_202B_200B_206F_200C_200D_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); - } - - static string _200C_206B_206D_206C_200E_200C_206B_200D_202A_200F_202B_200F_202A_202C_206F_206F_202B_206A_206E_202E_206A_200F_202D_202A_200D_202B_202A_206C_206E_200F_200B_206E_206C_202C_206D_200C_202A_206B_206F_206A_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static ImRaii.ColorDisposable _202B_206D_206C_206F_200B_200F_202C_200E_206C_206D_206E_200B_202D_200D_202A_200D_200D_206F_206B_202A_200C_202E_206E_206A_202D_200D_200C_206F_206D_202B_200C_206F_200B_202E_200C_202D_200C_202C_206E_202B_202E(ImGuiCol P_0, Vector4 P_1, bool P_2) - { - return ImRaii.PushColor(P_0, P_1, P_2); - } - - static void _202A_202A_206A_202E_200B_206A_202E_202B_202B_200C_202D_206D_202E_200E_200F_206A_200D_206A_206B_202C_206F_200C_202E_200D_206A_200B_206B_202C_200E_202E_206B_202E_206F_200C_200B_206F_200F_200D_206F_206A_202E(ImU8String P_0) - { - ImGui.Text(P_0); - } - - static int _202D_202C_202D_202E_206B_206A_206E_202B_206F_206C_206C_206D_206D_206E_202C_206F_200F_200F_202C_200F_206B_202C_202E_200F_202C_206D_202E_206A_206C_202B_202A_206D_206A_200B_200F_202A_200F_202C_206C_200F_202E(uint P_0, bool P_1, bool P_2) - { - return InventoryHelper.GetItemCount(P_0, P_1, P_2); - } - - static void _202A_202E_202A_206D_202B_202D_206E_200E_202C_202A_202B_202C_200C_206C_200B_206A_200F_206D_202B_206E_200B_202B_202D_206E_206C_206E_200F_206B_202C_202A_206A_206C_202C_200C_202B_200B_206D_206C_206D_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); - } - - static short _200F_200F_200B_200B_206A_202D_202B_206D_200D_200B_202B_200F_200C_202A_206E_202C_206A_202E_206D_200E_200F_200B_202D_206D_200D_200F_206D_200D_202E_200D_200F_200D_202D_200C_200F_200B_200E_206F_200C_200F_202E(int P_0) - { - return PlayerStateHelper.GetClassJobLevel(P_0); } } diff --git a/Questionable/Questionable.Windows.JournalComponents/DutyJournalComponent.cs b/Questionable/Questionable.Windows.JournalComponents/DutyJournalComponent.cs index 28f1966..bfa0ede 100644 --- a/Questionable/Questionable.Windows.JournalComponents/DutyJournalComponent.cs +++ b/Questionable/Questionable.Windows.JournalComponents/DutyJournalComponent.cs @@ -1,14 +1,10 @@ using System; using System.Collections.Generic; -using System.Collections.Immutable; using System.Globalization; using System.Linq; -using System.Numerics; using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Bindings.ImGui; using Dalamud.Interface; -using Dalamud.Interface.ManagedFontAtlas; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin; using Microsoft.Extensions.Logging; @@ -27,264 +23,12 @@ internal sealed class DutyJournalComponent Duty } - private readonly record struct FlatRow(RowType Type, int GroupIndex, DutyInfo? Duty, string Label, DutyCounts Counts) - { - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206F_202A_206C_206C_202A_206B_206A_206C_200E_202C_202C_200D_202E_200D_200B_206A_206D_200B_206D_202D_206C_206E_200D_206D_200C_200B_206A_200D_206A_200F_200E_202B_202C_206C_200C_200D_206E_200C_206C_202A_202E(); - _200C_202B_200B_200E_200D_202C_206A_206B_202C_200F_202D_202C_206C_206B_202C_202D_200D_202E_206A_202B_202D_206B_202C_202A_206B_206C_202C_200F_206C_206A_202D_206C_206B_202A_206F_200E_206B_206E_200D_206A_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2098208768)); - _200C_202B_200B_200E_200D_202C_206A_206B_202C_200F_202D_202C_206C_206B_202C_202D_200D_202E_206A_202B_202D_206B_202C_202A_206B_206C_202C_200F_206C_206A_202D_206C_206B_202A_206F_200E_206B_206E_200D_206A_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? 653299951 : 653299950); - while (true) - { - int num2 = num; - int num3 = 653299951; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 653299950; - break; - case 0: - _206A_206C_202D_206D_202B_200D_202A_206E_206D_206C_200C_206F_202A_206A_206D_200E_206E_206D_206D_206D_202D_206B_200C_200F_206D_206C_206C_202C_202C_206D_206C_200F_202D_206E_202C_202C_206F_202D_200F_200C_202E(stringBuilder, '}'); - return _200E_206C_206B_202B_206A_202A_202E_202E_206C_200B_206C_200E_200C_200B_206F_202A_206D_202C_200D_202A_206B_202E_202A_200B_206E_202D_200D_200B_202A_200B_200E_206D_202A_202C_206F_206F_200F_206B_206F_202C_202E((object)stringBuilder); - case 1: - _206A_206C_202D_206D_202B_200D_202A_206E_206D_206C_200C_206F_202A_206A_206D_200E_206E_206D_206D_206D_202D_206B_200C_200F_206D_206C_206C_202C_202C_206D_206C_200F_202D_206E_202C_202C_206F_202D_200F_200C_202E(stringBuilder, ' '); - num = 653299951; - break; - } - } - } + private readonly record struct FlatRow(RowType Type, int GroupIndex, DutyInfo? Duty, string Label, DutyCounts Counts); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200C_202B_200B_200E_200D_202C_206A_206B_202C_200F_202D_202C_206C_206B_202C_202D_200D_202E_206A_202B_202D_206B_202C_202A_206B_206C_202C_200F_206C_206A_202D_206C_206B_202A_206F_200E_206B_206E_200D_206A_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-217898061)); - _200C_202B_200B_200E_200D_202C_206A_206B_202C_200F_202D_202C_206C_206B_202C_202D_200D_202E_206A_202B_202D_206B_202C_202A_206B_206C_202C_200F_206C_206A_202D_206C_206B_202A_206F_200E_206B_206E_200D_206A_202E(builder, Type.ToString()); - _200C_202B_200B_200E_200D_202C_206A_206B_202C_200F_202D_202C_206C_206B_202C_202D_200D_202E_206A_202B_202D_206B_202C_202A_206B_206C_202C_200F_206C_206A_202D_206C_206B_202A_206F_200E_206B_206E_200D_206A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-868367691)); - _200C_202B_200B_200E_200D_202C_206A_206B_202C_200F_202D_202C_206C_206B_202C_202D_200D_202E_206A_202B_202D_206B_202C_202A_206B_206C_202C_200F_206C_206A_202D_206C_206B_202A_206F_200E_206B_206E_200D_206A_202E(builder, GroupIndex.ToString()); - _200C_202B_200B_200E_200D_202C_206A_206B_202C_200F_202D_202C_206C_206B_202C_202D_200D_202E_206A_202B_202D_206B_202C_202A_206B_206C_202C_200F_206C_206A_202D_206C_206B_202A_206F_200E_206B_206E_200D_206A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-406571044)); - _202A_200E_206E_200E_202D_206D_200C_200C_202B_202B_202E_200E_200D_202C_200B_200E_200B_206B_200B_200F_202C_206C_200B_200E_202C_206D_202E_200F_200B_200E_200B_206A_200B_200E_206E_200B_200B_206A_206D_206B_202E(builder, (object)Duty); - _200C_202B_200B_200E_200D_202C_206A_206B_202C_200F_202D_202C_206C_206B_202C_202D_200D_202E_206A_202B_202D_206B_202C_202A_206B_206C_202C_200F_206C_206A_202D_206C_206B_202A_206F_200E_206B_206E_200D_206A_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-215899582)); - _202A_200E_206E_200E_202D_206D_200C_200C_202B_202B_202E_200E_200D_202C_200B_200E_200B_206B_200B_200F_202C_206C_200B_200E_202C_206D_202E_200F_200B_200E_200B_206A_200B_200E_206E_200B_200B_206A_206D_206B_202E(builder, (object)Label); - _200C_202B_200B_200E_200D_202C_206A_206B_202C_200F_202D_202C_206C_206B_202C_202D_200D_202E_206A_202B_202D_206B_202C_202A_206B_206C_202C_200F_206C_206A_202D_206C_206B_202A_206F_200E_206B_206E_200D_206A_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1999051001)); - _202A_200E_206E_200E_202D_206D_200C_200C_202B_202B_202E_200E_200D_202C_200B_200E_200B_206B_200B_200F_202C_206C_200B_200E_202C_206D_202E_200F_200B_200E_200B_206A_200B_200E_206E_200B_200B_206A_206D_206B_202E(builder, (object)Counts); - return true; - } - - [CompilerGenerated] - public bool Equals(FlatRow other) - { - int num = ((!EqualityComparer<RowType>.Default.Equals(Type, other.Type)) ? (-146816792) : (-146816791)); - while (true) - { - int num2 = num; - int num3 = -146816792; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return EqualityComparer<DutyCounts>.Default.Equals(Counts, other.Counts); - case 4: - num = ((!EqualityComparer<string>.Default.Equals(Label, other.Label)) ? (-146816792) : (-146816789)); - break; - case 5: - num = -146816791; - break; - case 1: - num = ((!EqualityComparer<int>.Default.Equals(GroupIndex, other.GroupIndex)) ? (-146816792) : (-146816790)); - break; - case 0: - return false; - case 2: - num = ((!EqualityComparer<DutyInfo>.Default.Equals(Duty, other.Duty)) ? (-146816792) : (-146816788)); - break; - } - } - } - - bool IEquatable<FlatRow>.Equals(FlatRow other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _206F_202A_206C_206C_202A_206B_206A_206C_200E_202C_202C_200D_202E_200D_200B_206A_206D_200B_206D_202D_206C_206E_200D_206D_200C_200B_206A_200D_206A_200F_200E_202B_202C_206C_200C_200D_206E_200C_206C_202A_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200C_202B_200B_200E_200D_202C_206A_206B_202C_200F_202D_202C_206C_206B_202C_202D_200D_202E_206A_202B_202D_206B_202C_202A_206B_206C_202C_200F_206C_206A_202D_206C_206B_202A_206F_200E_206B_206E_200D_206A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206A_206C_202D_206D_202B_200D_202A_206E_206D_206C_200C_206F_202A_206A_206D_200E_206E_206D_206D_206D_202D_206B_200C_200F_206D_206C_206C_202C_202C_206D_206C_200F_202D_206E_202C_202C_206F_202D_200F_200C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200E_206C_206B_202B_206A_202A_202E_202E_206C_200B_206C_200E_200C_200B_206F_202A_206D_202C_200D_202A_206B_202E_202A_200B_206E_202D_200D_200B_202A_200B_200E_206D_202A_202C_206F_206F_200F_206B_206F_202C_202E(object P_0) - { - return P_0.ToString(); - } - - static StringBuilder _202A_200E_206E_200E_202D_206D_200C_200C_202B_202B_202E_200E_200D_202C_200B_200E_200B_206B_200B_200F_202C_206C_200B_200E_202C_206D_202E_200F_200B_200E_200B_206A_200B_200E_206E_200B_200B_206A_206D_206B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - } - - private sealed record DutyCategory(string Name, List<DutyInfo> Duties) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202E_202B_202D_202B_200D_202E_206C_202E_206D_200C_200D_206D_200F_200D_206A_206C_206C_200B_202B_202D_206E_206E_200D_202D_202A_202E_200B_200D_200F_206F_202C_202C_200B_206C_206A_202C_200F_202C_206D_206A_202E(typeof(DutyCategory).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200F_200C_206D_200E_202C_200F_200F_200B_200B_200C_206A_200B_206E_206C_202A_206E_200C_202D_202A_202B_202C_200E_200E_200F_202B_206D_206E_206F_202A_206B_206D_200F_202C_206D_200B_206F_202A_200E_202A_200F_202E(); - _206F_206B_202E_202C_206F_206A_202A_206C_206B_202B_200C_200D_200E_202C_206F_200C_200F_200F_202D_200C_206E_206A_202B_200E_202C_202D_202C_202E_200E_206D_200F_206B_200B_202D_206C_200B_202C_206D_200D_200E_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1281747430)); - _206F_206B_202E_202C_206F_206A_202A_206C_206B_202B_200C_200D_200E_202C_206F_200C_200F_200F_202D_200C_206E_206A_202B_200E_202C_202D_202C_202E_200E_206D_200F_206B_200B_202D_206C_200B_202C_206D_200D_200E_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? (-1876373602) : (-1876373603)); - while (true) - { - int num2 = num; - int num3 = -1876373601; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - _206D_200D_206D_206E_206A_202A_202E_202C_206A_206D_206E_200B_200B_202B_200C_206D_206E_206A_206E_206F_206A_200B_206E_200C_202A_202D_202C_206D_202E_202D_200B_206F_206A_206F_206A_206D_200F_206A_200D_200E_202E(stringBuilder, '}'); - return _202B_202E_202B_202A_202B_200B_200E_200C_206B_202A_200F_200B_200D_202C_206E_200D_206C_206A_206A_206A_206A_206B_200C_206F_200D_200D_200E_202B_202C_206E_202E_206A_206E_202D_206F_200C_206A_200D_200C_202E_202E((object)stringBuilder); - case 2: - _206D_200D_206D_206E_206A_202A_202E_202C_206A_206D_206E_200B_200B_202B_200C_206D_206E_206A_206E_206F_206A_200B_206E_200C_202A_202D_202C_206D_202E_202D_200B_206F_206A_206F_206A_206D_200F_206A_200D_200E_202E(stringBuilder, ' '); - num = -1876373602; - break; - case 0: - num = -1876373603; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202B_202E_202B_206F_202C_206B_202D_206B_200D_206B_202D_202C_202A_206F_206C_200B_206B_202E_200B_206F_200E_206E_202D_202C_200B_200D_200F_202D_206C_202A_206C_206D_200B_206E_206A_206D_206B_206E_206E_202E(); - _206F_206B_202E_202C_206F_206A_202A_206C_206B_202B_200C_200D_200E_202C_206F_200C_200F_200F_202D_200C_206E_206A_202B_200E_202C_202D_202C_202E_200E_206D_200F_206B_200B_202D_206C_200B_202C_206D_200D_200E_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(868794944)); - _202A_200D_202D_200B_200C_206F_206F_202C_206F_206B_206F_206E_202A_202C_202A_200E_206D_200D_202B_202E_202A_200F_206B_206F_206F_206B_200E_202C_206A_200E_202B_206C_200F_206B_202E_206C_202B_206F_202A_200D_202E(builder, (object)Name); - _206F_206B_202E_202C_206F_206A_202A_206C_206B_202B_200C_200D_200E_202C_206F_200C_200F_200F_202D_200C_206E_206A_202B_200E_202C_202D_202C_202E_200E_206D_200F_206B_200B_202D_206C_200B_202C_206D_200D_200E_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1440615544)); - _202A_200D_202D_200B_200C_206F_206F_202C_206F_206B_206F_206E_202A_202C_202A_200E_206D_200D_202B_202E_202A_200F_206B_206F_206F_206B_200E_202C_206A_200E_202B_206C_200F_206B_202E_206C_202B_206F_202A_200D_202E(builder, (object)Duties); - return true; - } - - [CompilerGenerated] - public bool Equals(DutyCategory? other) - { - int num = (((object)this == other) ? 1905115001 : 1905115003); - while (true) - { - int num2 = num; - int num3 = 1905115002; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - return false; - case 2: - num = ((!_200B_206B_206F_200B_202B_202A_200C_200D_206D_202E_200D_200C_206B_202A_202D_206B_200F_200B_202A_206B_200D_202B_206D_206A_206C_206C_206D_206C_206F_200D_206F_202C_200B_206E_200D_200B_200E_206F_206E_202C_202E(EqualityContract, other.EqualityContract)) ? 1905115004 : 1905115006); - break; - case 1: - num = (((object)other == null) ? 1905115004 : 1905115000); - break; - case 3: - return true; - case 4: - num = ((!EqualityComparer<string>.Default.Equals(Name, other.Name)) ? 1905115004 : 1905115002); - break; - case 0: - return EqualityComparer<List<DutyInfo>>.Default.Equals(Duties, other.Duties); - case 5: - num = 1905115003; - break; - } - } - } - - bool IEquatable<DutyCategory>.Equals(DutyCategory? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202E_202B_202D_202B_200D_202E_206C_202E_206D_200C_200D_206D_200F_200D_206A_206C_206C_200B_202B_202D_206E_206E_200D_202D_202A_202E_200B_200D_200F_206F_202C_202C_200B_206C_206A_202C_200F_202C_206D_206A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200F_200C_206D_200E_202C_200F_200F_200B_200B_200C_206A_200B_206E_206C_202A_206E_200C_202D_202A_202B_202C_200E_200E_200F_202B_206D_206E_206F_202A_206B_206D_200F_202C_206D_200B_206F_202A_200E_202A_200F_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206F_206B_202E_202C_206F_206A_202A_206C_206B_202B_200C_200D_200E_202C_206F_200C_200F_200F_202D_200C_206E_206A_202B_200E_202C_202D_202C_202E_200E_206D_200F_206B_200B_202D_206C_200B_202C_206D_200D_200E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206D_200D_206D_206E_206A_202A_202E_202C_206A_206D_206E_200B_200B_202B_200C_206D_206E_206A_206E_206F_206A_200B_206E_200C_202A_202D_202C_206D_202E_202D_200B_206F_206A_206F_206A_206D_200F_206A_200D_200E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202B_202E_202B_202A_202B_200B_200E_200C_206B_202A_200F_200B_200D_202C_206E_200D_206C_206A_206A_206A_206A_206B_200C_206F_200D_200D_200E_202B_202C_206E_202E_206A_206E_202D_206F_200C_206A_200D_200C_202E_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202B_202E_202B_206F_202C_206B_202D_206B_200D_206B_202D_202C_202A_206F_206C_200B_206B_202E_200B_206F_200E_206E_202D_202C_200B_200D_200F_202D_206C_202A_206C_206D_200B_206E_206A_206D_206B_206E_206E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202A_200D_202D_200B_200C_206F_206F_202C_206F_206B_206F_206E_202A_202C_202A_200E_206D_200D_202B_202E_202A_200F_206B_206F_206F_206B_200E_202C_206A_200E_202B_206C_200F_206B_202E_206C_202B_206F_202A_200D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200B_206B_206F_200B_202B_202A_200C_200D_206D_202E_200D_200C_206B_202A_202D_206B_200F_200B_202A_206B_200D_202B_206D_206A_206C_206C_206D_206C_206F_200D_206F_202C_200B_206E_200D_200B_200E_206F_206E_202C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } + private sealed record DutyCategory(string Name, List<DutyInfo> Duties); private sealed record DutyCounts(int Unlocked, int Completed, int CompletionTrackable, int Total) { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206A_202C_200F_200B_202C_206C_202C_200F_206E_200F_206C_202A_200D_202A_206A_206A_206F_206F_202B_202C_200F_200F_200B_200F_206A_200F_202E_206E_206E_206E_206A_202A_202E_202D_200C_206C_202A_202B_206B_206B_202E(typeof(DutyCounts).TypeHandle); - } - } - public string FormattedUnlocked { get; } = FormatPair(Unlocked, Total); public string FormattedCompleted { get; } = FormatPair(Completed, CompletionTrackable); @@ -293,25 +37,11 @@ internal sealed class DutyJournalComponent { get { - int num = ((Unlocked != Total) ? 1708914712 : 1708914713); - while (true) + if (Unlocked == Total) { - int num2 = num; - int num3 = 1708914712; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_004c; - case 1: - return Total > 0; - case 0: - return false; - } - continue; - IL_004c: - num = 1708914713; + return Total > 0; } + return false; } } @@ -319,163 +49,28 @@ internal sealed class DutyJournalComponent { get { - int num = ((Completed != CompletionTrackable) ? (-261795205) : (-261795206)); - while (true) + if (Completed == CompletionTrackable) { - int num2 = num; - int num3 = -261795205; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return false; - case 1: - return CompletionTrackable > 0; - case 2: - goto IL_0058; - } - continue; - IL_0058: - num = -261795206; + return CompletionTrackable > 0; } + return false; } } - private static readonly int PadWidth = _200B_200B_206B_202A_200D_202C_206C_202A_206A_206E_202B_206A_206B_206E_206E_206B_202A_206A_200D_200C_200C_200B_200B_202C_200D_206B_202A_202B_206F_200E_206D_202D_202A_206F_202A_202E_200B_200C_202E_206E_202E(9999.ToString(_200F_206E_202B_206B_200D_202B_202A_206D_206B_200C_206C_200D_206D_202D_200E_200C_200B_202A_200E_206A_206A_202B_202C_200C_200B_206D_202D_206C_202D_200B_206C_206A_206A_206A_202C_200C_200E_202D_202B_200C_202E())); + private static readonly int PadWidth = 9999.ToString(CultureInfo.CurrentCulture).Length; public DutyCounts() : this(0, 0, 0, 0) { } - [MethodImpl(MethodImplOptions.NoInlining)] private static string FormatPair(int n, int d) { - int num = ((d == 0) ? 190024114 : 190024115); - while (true) + if (d != 0) { - int num2 = num; - int num3 = 190024114; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return _200D_200B_206A_206C_206A_206F_202E_202B_202D_202A_200D_200F_206C_202C_200E_200E_200C_200C_200F_206C_206F_200F_202C_206D_200E_200B_202A_202B_200B_206A_206D_206F_200F_200B_202C_206E_206A_202D_202E_202E_202E(_206F_202C_202E_200F_206D_200C_206D_206D_206F_200F_200C_206F_202C_206B_206A_202D_202A_206A_200D_202E_202E_200C_202B_202A_206E_206E_202E_206E_206A_202A_200C_200D_206E_206A_206F_202C_206F_206C_206D_202C_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1108021570), PadWidth), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(884463298), _206F_202C_202E_200F_206D_200C_206D_206D_206F_200F_200C_206F_202C_206B_206A_202D_202A_206A_200D_202E_202E_200C_202B_202A_206E_206E_202E_206E_206A_202A_200C_200D_206E_206A_206F_202C_206F_206C_206D_202C_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1228468769), PadWidth)); - case 1: - return _200D_200B_206A_206C_206A_206F_202E_202B_202D_202A_200D_200F_206C_202C_200E_200E_200C_200C_200F_206C_206F_200F_202C_206D_200E_200B_202A_202B_200B_206A_206D_206F_200F_200B_202C_206E_206A_202D_202E_202E_202E(_202A_202E_200E_200D_206E_200D_200F_206A_200F_202C_200B_200E_200F_200D_206F_206B_206F_202E_206E_202C_206B_202A_200C_202A_206E_202B_200C_206B_206B_200F_202D_200C_200B_202B_206A_206F_206A_206F_202B_206E_202E(n.ToString(_200F_206E_202B_206B_200D_202B_202A_206D_206B_200C_206C_200D_206D_202D_200E_200C_200B_202A_200E_206A_206A_202B_202C_200C_200B_206D_202D_206C_202D_200B_206C_206A_206A_206A_202C_200C_200E_202D_202B_200C_202E()), PadWidth), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-242478203), _202A_202E_200E_200D_206E_200D_200F_206A_200F_202C_200B_200E_200F_200D_206F_206B_206F_202E_206E_202C_206B_202A_200C_202A_206E_202B_200C_206B_206B_200F_202D_200C_200B_202B_206A_206F_206A_206F_202B_206E_202E(d.ToString(_200F_206E_202B_206B_200D_202B_202A_206D_206B_200C_206C_200D_206D_202D_200E_200C_200B_202A_200E_206A_206A_202B_202C_200C_200B_206D_202D_206C_202D_200B_206C_206A_206A_206A_202C_200C_200E_202D_202B_200C_202E()), PadWidth)); - case 2: - goto IL_00b7; - } - continue; - IL_00b7: - num = 190024115; + return n.ToString(CultureInfo.CurrentCulture).PadLeft(PadWidth) + " / " + d.ToString(CultureInfo.CurrentCulture).PadLeft(PadWidth); } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202A_206F_202C_200B_206C_200B_202C_206C_200B_206A_200E_200D_200B_200C_200B_206A_206C_206D_202E_200C_206B_200E_200F_206D_206F_200B_202A_200D_206B_202E_202D_200C_200D_202A_200B_202D_202C_200E_200C_202C_202E(); - _200E_200B_206B_200B_202B_202D_202D_200C_202D_206D_206D_202E_202D_202A_202C_202D_202E_206F_206E_202C_206C_200D_200D_200D_202A_202E_200F_206A_202C_200D_200D_200E_200B_200E_206A_206A_200F_206F_200E_206F_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1939685707)); - _200E_200B_206B_200B_202B_202D_202D_200C_202D_206D_206D_202E_202D_202A_202C_202D_202E_206F_206E_202C_206C_200D_200D_200D_202A_202E_200F_206A_202C_200D_200D_200E_200B_200E_206A_206A_200F_206F_200E_206F_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(556540328)); - int num = ((!PrintMembers(stringBuilder)) ? 412923273 : 412923272); - while (true) - { - int num2 = num; - int num3 = 412923273; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 412923272; - break; - case 1: - _202E_206A_200B_200F_206A_200F_202D_206F_202D_202D_206A_206E_200D_202B_206F_202B_206B_206B_202C_206B_206F_202D_200F_202D_206B_200C_202E_200D_206C_200D_206F_200B_200C_206A_200B_206C_202D_206D_200B_206C_202E(stringBuilder, ' '); - num = 412923273; - break; - case 0: - _202E_206A_200B_200F_206A_200F_202D_206F_202D_202D_206A_206E_200D_202B_206F_202B_206B_206B_202C_206B_206F_202D_200F_202D_206B_200C_202E_200D_206C_200D_206F_200B_200C_206A_200B_206C_202D_206D_200B_206C_202E(stringBuilder, '}'); - return _200D_202E_206F_202E_206D_200E_202A_206E_202C_202D_206C_202E_202E_206F_206A_200F_206D_200C_206F_202C_206C_202D_206F_206B_202C_202A_206F_202B_200C_200C_202A_206D_200C_202A_206D_200D_202A_202E_200F_200F_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206B_202C_202D_200C_206E_202C_200C_206C_200B_200B_202D_206C_200C_206A_200D_206A_206D_202C_202A_200B_206C_206C_202C_206B_206D_200C_206C_202B_202A_206B_206E_200B_206A_202E_200C_206A_202E_202B_206C_200E_202E(); - _200E_200B_206B_200B_202B_202D_202D_200C_202D_206D_206D_202E_202D_202A_202C_202D_202E_206F_206E_202C_206C_200D_200D_200D_202A_202E_200F_206A_202C_200D_200D_200E_200B_200E_206A_206A_200F_206F_200E_206F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1032517434)); - _200E_200B_206B_200B_202B_202D_202D_200C_202D_206D_206D_202E_202D_202A_202C_202D_202E_206F_206E_202C_206C_200D_200D_200D_202A_202E_200F_206A_202C_200D_200D_200E_200B_200E_206A_206A_200F_206F_200E_206F_202E(builder, Unlocked.ToString()); - _200E_200B_206B_200B_202B_202D_202D_200C_202D_206D_206D_202E_202D_202A_202C_202D_202E_206F_206E_202C_206C_200D_200D_200D_202A_202E_200F_206A_202C_200D_200D_200E_200B_200E_206A_206A_200F_206F_200E_206F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2145063714)); - _200E_200B_206B_200B_202B_202D_202D_200C_202D_206D_206D_202E_202D_202A_202C_202D_202E_206F_206E_202C_206C_200D_200D_200D_202A_202E_200F_206A_202C_200D_200D_200E_200B_200E_206A_206A_200F_206F_200E_206F_202E(builder, Completed.ToString()); - _200E_200B_206B_200B_202B_202D_202D_200C_202D_206D_206D_202E_202D_202A_202C_202D_202E_206F_206E_202C_206C_200D_200D_200D_202A_202E_200F_206A_202C_200D_200D_200E_200B_200E_206A_206A_200F_206F_200E_206F_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1848940060)); - _200E_200B_206B_200B_202B_202D_202D_200C_202D_206D_206D_202E_202D_202A_202C_202D_202E_206F_206E_202C_206C_200D_200D_200D_202A_202E_200F_206A_202C_200D_200D_200E_200B_200E_206A_206A_200F_206F_200E_206F_202E(builder, CompletionTrackable.ToString()); - _200E_200B_206B_200B_202B_202D_202D_200C_202D_206D_206D_202E_202D_202A_202C_202D_202E_206F_206E_202C_206C_200D_200D_200D_202A_202E_200F_206A_202C_200D_200D_200E_200B_200E_206A_206A_200F_206F_200E_206F_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1905120994)); - _200E_200B_206B_200B_202B_202D_202D_200C_202D_206D_206D_202E_202D_202A_202C_202D_202E_206F_206E_202C_206C_200D_200D_200D_202A_202E_200F_206A_202C_200D_200D_200E_200B_200E_206A_206A_200F_206F_200E_206F_202E(builder, Total.ToString()); - _200E_200B_206B_200B_202B_202D_202D_200C_202D_206D_206D_202E_202D_202A_202C_202D_202E_206F_206E_202C_206C_200D_200D_200D_202A_202E_200F_206A_202C_200D_200D_200E_200B_200E_206A_206A_200F_206F_200E_206F_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1602419933)); - _202A_202C_202D_206E_206D_202B_200D_206B_206A_200E_206F_202D_206E_200E_206C_202C_202C_202C_206B_206F_206C_206C_206C_206F_202A_202E_202D_200D_200C_202B_206B_200C_200B_202D_202D_202D_206E_202B_202E_202E_202E(builder, (object)FormattedUnlocked); - _200E_200B_206B_200B_202B_202D_202D_200C_202D_206D_206D_202E_202D_202A_202C_202D_202E_206F_206E_202C_206C_200D_200D_200D_202A_202E_200F_206A_202C_200D_200D_200E_200B_200E_206A_206A_200F_206F_200E_206F_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1579413017)); - _202A_202C_202D_206E_206D_202B_200D_206B_206A_200E_206F_202D_206E_200E_206C_202C_202C_202C_206B_206F_206C_206C_206C_206F_202A_202E_202D_200D_200C_202B_206B_200C_200B_202D_202D_202D_206E_202B_202E_202E_202E(builder, (object)FormattedCompleted); - _200E_200B_206B_200B_202B_202D_202D_200C_202D_206D_206D_202E_202D_202A_202C_202D_202E_206F_206E_202C_206C_200D_200D_200D_202A_202E_200F_206A_202C_200D_200D_200E_200B_200E_206A_206A_200F_206F_200E_206F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-905427732)); - _200E_200B_206B_200B_202B_202D_202D_200C_202D_206D_206D_202E_202D_202A_202C_202D_202E_206F_206E_202C_206C_200D_200D_200D_202A_202E_200F_206A_202C_200D_200D_200E_200B_200E_206A_206A_200F_206F_200E_206F_202E(builder, IsUnlockedComplete.ToString()); - _200E_200B_206B_200B_202B_202D_202D_200C_202D_206D_206D_202E_202D_202A_202C_202D_202E_206F_206E_202C_206C_200D_200D_200D_202A_202E_200F_206A_202C_200D_200D_200E_200B_200E_206A_206A_200F_206F_200E_206F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(360371981)); - _200E_200B_206B_200B_202B_202D_202D_200C_202D_206D_206D_202E_202D_202A_202C_202D_202E_206F_206E_202C_206C_200D_200D_200D_202A_202E_200F_206A_202C_200D_200D_200E_200B_200E_206A_206A_200F_206F_200E_206F_202E(builder, IsCompletedComplete.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(DutyCounts? other) - { - int num = (((object)this == other) ? (-651727258) : (-651727262)); - while (true) - { - int num2 = num; - int num3 = -651727263; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - num = ((!EqualityComparer<string>.Default.Equals(FormattedUnlocked, other.FormattedUnlocked)) ? (-651727255) : (-651727260)); - break; - case 7: - return true; - case 2: - num = ((!_202A_206E_206D_206B_206D_200D_206A_202D_200D_202D_202D_206D_206E_206F_202B_202A_200E_202B_206B_206E_202B_202A_206D_202A_206F_206A_206E_200D_206F_202C_206A_200E_206A_206A_202D_202E_202C_200E_202A_202C_202E(EqualityContract, other.EqualityContract)) ? (-651727255) : (-651727264)); - break; - case 4: - num = -651727262; - break; - case 0: - num = ((!EqualityComparer<int>.Default.Equals(CompletionTrackable, other.CompletionTrackable)) ? (-651727255) : (-651727256)); - break; - case 10: - num = ((!EqualityComparer<int>.Default.Equals(Completed, other.Completed)) ? (-651727255) : (-651727263)); - break; - case 1: - num = ((!EqualityComparer<int>.Default.Equals(Unlocked, other.Unlocked)) ? (-651727255) : (-651727253)); - break; - case 5: - return EqualityComparer<string>.Default.Equals(FormattedCompleted, other.FormattedCompleted); - case 9: - num = ((!EqualityComparer<int>.Default.Equals(Total, other.Total)) ? (-651727255) : (-651727257)); - break; - case 3: - num = (((object)other == null) ? (-651727255) : (-651727261)); - break; - case 8: - return false; - } - } - } - - bool IEquatable<DutyCounts>.Equals(DutyCounts? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); + return "-".PadLeft(PadWidth) + " / " + "-".PadLeft(PadWidth); } [CompilerGenerated] @@ -488,71 +83,6 @@ internal sealed class DutyJournalComponent FormattedUnlocked = original.FormattedUnlocked; FormattedCompleted = original.FormattedCompleted; } - - static Type _206A_202C_200F_200B_202C_206C_202C_200F_206E_200F_206C_202A_200D_202A_206A_206A_206F_206F_202B_202C_200F_200F_200B_200F_206A_200F_202E_206E_206E_206E_206A_202A_202E_202D_200C_206C_202A_202B_206B_206B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static CultureInfo _200F_206E_202B_206B_200D_202B_202A_206D_206B_200C_206C_200D_206D_202D_200E_200C_200B_202A_200E_206A_206A_202B_202C_200C_200B_206D_202D_206C_202D_200B_206C_206A_206A_206A_202C_200C_200E_202D_202B_200C_202E() - { - return CultureInfo.CurrentCulture; - } - - static string _202A_202E_200E_200D_206E_200D_200F_206A_200F_202C_200B_200E_200F_200D_206F_206B_206F_202E_206E_202C_206B_202A_200C_202A_206E_202B_200C_206B_206B_200F_202D_200C_200B_202B_206A_206F_206A_206F_202B_206E_202E(string P_0, int P_1) - { - return P_0.PadLeft(P_1); - } - - static string _200D_200B_206A_206C_206A_206F_202E_202B_202D_202A_200D_200F_206C_202C_200E_200E_200C_200C_200F_206C_206F_200F_202C_206D_200E_200B_202A_202B_200B_206A_206D_206F_200F_200B_202C_206E_206A_202D_202E_202E_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static string _206F_202C_202E_200F_206D_200C_206D_206D_206F_200F_200C_206F_202C_206B_206A_202D_202A_206A_200D_202E_202E_200C_202B_202A_206E_206E_202E_206E_206A_202A_200C_200D_206E_206A_206F_202C_206F_206C_206D_202C_202E(string P_0, int P_1) - { - return P_0.PadLeft(P_1); - } - - static StringBuilder _202A_206F_202C_200B_206C_200B_202C_206C_200B_206A_200E_200D_200B_200C_200B_206A_206C_206D_202E_200C_206B_200E_200F_206D_206F_200B_202A_200D_206B_202E_202D_200C_200D_202A_200B_202D_202C_200E_200C_202C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200E_200B_206B_200B_202B_202D_202D_200C_202D_206D_206D_202E_202D_202A_202C_202D_202E_206F_206E_202C_206C_200D_200D_200D_202A_202E_200F_206A_202C_200D_200D_200E_200B_200E_206A_206A_200F_206F_200E_206F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202E_206A_200B_200F_206A_200F_202D_206F_202D_202D_206A_206E_200D_202B_206F_202B_206B_206B_202C_206B_206F_202D_200F_202D_206B_200C_202E_200D_206C_200D_206F_200B_200C_206A_200B_206C_202D_206D_200B_206C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200D_202E_206F_202E_206D_200E_202A_206E_202C_202D_206C_202E_202E_206F_206A_200F_206D_200C_206F_202C_206C_202D_206F_206B_202C_202A_206F_202B_200C_200C_202A_206D_200C_202A_206D_200D_202A_202E_200F_200F_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206B_202C_202D_200C_206E_202C_200C_206C_200B_200B_202D_206C_200C_206A_200D_206A_206D_202C_202A_200B_206C_206C_202C_206B_206D_200C_206C_202B_202A_206B_206E_200B_206A_202E_200C_206A_202E_202B_206C_200E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202A_202C_202D_206E_206D_202B_200D_206B_206A_200E_206F_202D_206E_200E_206C_202C_202C_202C_206B_206F_206C_206C_206C_206F_202A_202E_202D_200D_200C_202B_206B_200C_200B_202D_202D_202D_206E_202B_202E_202E_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202A_206E_206D_206B_206D_200D_206A_202D_200D_202D_202D_206D_206E_206F_202B_202A_200E_202B_206B_206E_202B_202A_206D_202A_206F_206A_206E_200D_206F_202C_206A_200E_206A_206A_202D_202E_202C_200E_202A_202C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - - static int _200B_200B_206B_202A_200D_202C_206C_202A_206A_206E_202B_206A_206B_206E_206E_206B_202A_206A_200D_200C_200C_200B_200B_202C_200D_206B_202A_202B_206F_200E_206D_202D_202A_206F_202A_202E_200B_200C_202E_206E_202E(string P_0) - { - return P_0.Length; - } } private readonly DutyUnlockData _dutyUnlockData; @@ -591,478 +121,220 @@ internal sealed class DutyJournalComponent _logger = logger; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe void DrawDuties() { DrawFilterControls(); - _202B_200D_202B_206B_202B_202C_200D_200B_200C_202B_206C_206F_202C_200B_206F_206B_202D_202E_206A_202B_200B_206F_202E_200F_202B_202B_200E_206D_206E_206F_200C_202B_202D_200D_200F_206C_200C_200C_200D_202B_202E(); + ImGui.Separator(); if (_flatRows.Count > 0) { - IDisposable disposable = _202E_206C_200D_206E_200B_206C_202D_202E_202D_206D_200F_200D_206F_206D_206B_206C_200B_200D_200F_200C_200B_202E_206A_200F_206D_206A_202D_206F_206B_200D_206A_206D_202C_200B_200D_206D_206B_202E_206B_202D_202E(_202C_206E_200D_202A_200C_202C_206D_200E_206F_200E_206A_206A_206A_206D_206B_206C_202C_202B_200D_200C_200E_200B_202E_206F_202B_202B_200E_202A_200D_200B_200B_200F_200E_202B_202D_200E_202A_200D_206E_206C_202E(_200F_202A_200D_202A_202D_200D_202B_200F_200F_206D_206B_206D_200F_206D_200E_206C_206F_202D_206F_206B_202B_202B_200C_200D_202E_202B_202E_202B_206E_200E_202D_200E_200D_202B_202E_206E_206A_202C_200B_202C_202E(_pluginInterface))); float x; + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) + { + x = ImGui.CalcTextSize(FontAwesomeIcon.Check.ToIconString()).X; + } + float fontGlobalScale = ImGui.GetIO().FontGlobalScale; + using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable("Duties", 3, ImGuiTableFlags.NoSavedSettings | ImGuiTableFlags.ScrollY); + if (!tableDisposable) + { + return; + } + ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.NoHide); + ImGui.TableSetupColumn("Unlocked", ImGuiTableColumnFlags.WidthFixed, 120f * fontGlobalScale); + ImGui.TableSetupColumn("Completed", ImGuiTableColumnFlags.WidthFixed, 120f * fontGlobalScale); + ImGui.TableHeadersRow(); + float textLineHeightWithSpacing = ImGui.GetTextLineHeightWithSpacing(); + bool flag = false; + ImGuiListClipper* intPtr = ImGuiNative.ImGuiListClipper(); + ImGuiNative.Begin(intPtr, _flatRows.Count, textLineHeightWithSpacing); + ImGuiListClipperPtr imGuiListClipperPtr = intPtr; try { - x = _200D_206F_206C_206C_206B_206C_200F_206D_206D_202E_206B_206B_206C_200B_206D_200C_200D_200D_200F_206B_200D_202D_200B_206B_206D_206F_206E_202A_202B_206D_202A_202E_200C_206A_206E_200B_200F_202A_202D_202B_202E((ImU8String)_200E_206E_202A_206A_200D_200F_206B_206B_200F_200F_202E_206F_202A_200E_206F_200F_206D_200F_202E_200E_200F_206B_202D_202B_206A_206C_206C_202B_206C_202B_206E_202E_202A_202D_200E_206D_202A_200E_200C_200E_202E(FontAwesomeIcon.Check), false, -1f).X; + while (imGuiListClipperPtr.Step()) + { + for (int i = imGuiListClipperPtr.DisplayStart; i < imGuiListClipperPtr.DisplayEnd; i++) + { + if (DrawFlatRow(_flatRows[i], x)) + { + flag = true; + } + } + } } finally { - int num = ((disposable == null) ? (-1587807121) : (-1587807124)); - while (true) - { - int num2 = num; - int num3 = -1587807122; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - goto end_IL_0077; - case 2: - _200D_202E_200C_200E_202D_200B_206F_200E_206A_206E_206B_202C_202B_206E_206F_200C_206D_200E_202A_206F_202D_200E_202C_206B_200E_200D_206B_202E_202B_202E_200B_206C_206C_202D_200F_206A_202D_202D_200D_202E(disposable); - num = -1587807121; - break; - case 0: - num = -1587807124; - break; - } - continue; - end_IL_0077: - break; - } + imGuiListClipperPtr.Destroy(); } - float fontGlobalScale = _202E_206A_206F_200B_206B_206D_202C_202D_206B_206F_202C_200F_202D_200C_200F_202E_202B_206B_200D_200D_200F_200B_206D_200E_206E_202B_206F_200B_202A_200C_202D_200B_202C_206D_200E_206E_200C_200B_206D_206D_202E().FontGlobalScale; - using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1381860118), 3, ImGuiTableFlags.NoSavedSettings | ImGuiTableFlags.ScrollY); - int num = ((!(!tableDisposable)) ? (-1537769579) : (-1537769578)); - int num12 = default(int); - while (true) + if (flag) { - int num7 = num; - int num3 = -1537769577; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_013a; - case 1: - return; - case 2: - { - _202E_206F_206F_206F_200E_206C_200D_202C_202C_200D_206D_200D_202D_202D_206A_206A_206C_200F_206F_206C_202E_200B_202D_200D_206A_200E_200D_202A_200D_206A_200D_202E_202E_200D_200D_202D_206E_200E_206F_202A_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1033927912), ImGuiTableColumnFlags.NoHide, 0f, 0u); - _202E_206F_206F_206F_200E_206C_200D_202C_202C_200D_206D_200D_202D_202D_206A_206A_206C_200F_206F_206C_202E_200B_202D_200D_206A_200E_200D_202A_200D_206A_200D_202E_202E_200D_200D_202D_206E_200E_206F_202A_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-761383585), ImGuiTableColumnFlags.WidthFixed, 120f * fontGlobalScale, 0u); - _202E_206F_206F_206F_200E_206C_200D_202C_202C_200D_206D_200D_202D_202D_206A_206A_206C_200F_206F_206C_202E_200B_202D_200D_206A_200E_200D_202A_200D_206A_200D_202E_202E_200D_200D_202D_206E_200E_206F_202A_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(504802535), ImGuiTableColumnFlags.WidthFixed, 120f * fontGlobalScale, 0u); - _200F_206D_202C_202B_200D_202C_200D_202B_200B_200F_200B_200F_206F_206C_206C_206D_202D_202C_206A_202A_206B_200D_200F_200F_202D_206B_206C_200B_202A_202E_202C_206A_206A_202E_200F_200C_206C_206B_202A_202E(); - float num8 = _200B_200F_200E_206B_200F_202A_200F_200B_202C_202D_206F_202D_202B_206F_206E_202B_206F_200F_200E_206F_206C_206D_202C_206A_200B_200C_206D_200B_202B_206A_206B_200D_206F_206A_200F_206B_206F_200B_206E_202A_202E(); - bool flag = false; - ImGuiListClipper* intPtr = _200C_200F_206E_206A_200D_206B_200B_206D_200D_206A_206B_202D_202B_202D_202C_206C_206C_206F_202A_206B_202C_200E_202B_206C_202A_200D_206E_200C_200F_206E_206E_200E_206D_200D_202D_206F_206F_206E_202A_200F_202E(); - _206C_200D_206F_200F_206E_200E_200C_202E_200F_206F_206C_202D_200B_206E_202E_202C_206D_200F_206B_202C_200C_206A_206E_200E_202B_206C_200E_202A_200B_200D_200E_206C_202B_202D_202A_200D_206E_200C_200E_200E_202E(intPtr, _flatRows.Count, num8); - ImGuiListClipperPtr imGuiListClipperPtr = intPtr; - try - { - num = 510030050; - while (true) - { - int num9 = num; - num3 = 510030051; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 5: - { - int num13 = num12; - num3 = 1; - num4 = num13; - num12 = (num4 | num3) + (num4 & num3); - num = 510030052; - break; - } - case 1: - num = (imGuiListClipperPtr.Step() ? 510030048 : 510030055); - break; - case 0: - num = 510030050; - break; - case 6: - flag = true; - num = 510030054; - break; - case 2: - num = ((!DrawFlatRow(_flatRows[num12], x)) ? 510030054 : 510030053); - break; - case 7: - num = ((num12 < imGuiListClipperPtr.DisplayEnd) ? 510030049 : 510030050); - break; - case 3: - num12 = imGuiListClipperPtr.DisplayStart; - num = 510030052; - break; - case 4: - goto end_IL_01e5; - } - continue; - end_IL_01e5: - break; - } - } - finally - { - imGuiListClipperPtr.Destroy(); - } - num = ((!flag) ? (-1551397696) : (-1551397693)); - while (true) - { - int num14 = num; - num3 = -1551397694; - num4 = num14; - int num15 = num4 + num3; - int num16 = num4 & num3; - switch (num15 - (num16 + num16)) - { - case 0: - num = -1551397693; - break; - case 1: - RebuildFlatRows(); - num = -1551397696; - break; - case 2: - return; - } - } - } - } - continue; - IL_013a: - num = -1537769578; + RebuildFlatRows(); } + return; } - UiThemeUtils.EmptyState(FontAwesomeIcon.Dungeon, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-469285537)); + UiThemeUtils.EmptyState(FontAwesomeIcon.Dungeon, "No duties match your search."); } - [MethodImpl(MethodImplOptions.NoInlining)] private bool DrawFlatRow(FlatRow row, float statusIconSpacing) { - _200D_202D_200B_200E_200F_202C_200F_200C_202B_206B_202C_206E_200F_200F_200E_206C_202A_200F_200F_202D_206A_206C_202D_206C_202B_206F_206B_200D_202E_202D_206F_200D_206A_202E_206B_206B_200B_206D_206B_206D_202E(); - _206C_206A_200E_206D_200E_206B_206B_206B_206B_202B_206B_200E_202A_200D_202B_206C_202C_206C_206F_206E_202C_206E_202A_206A_202D_200C_202B_202D_200C_200D_206E_206F_202D_206C_202D_200C_200B_206D_200F_200D_202E(); + ImGui.TableNextRow(); + ImGui.TableNextColumn(); bool result = false; - int num = ((row.Type != RowType.Duty) ? (-911999900) : (-911999895)); - string text = default(string); - bool flag = default(bool); - while (true) + if (row.Type == RowType.Duty) { - int num2 = num; - int num3 = -911999890; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + float indentSpacing = ImGui.GetStyle().IndentSpacing; + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + indentSpacing); + string text = $"Lv{row.Duty.Level} {row.Duty.Name}"; + if (row.Duty.ItemLevel > 0) { - case 8: - { - string text2 = text; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(4, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(13024905)); - defaultInterpolatedStringHandler2.AppendFormatted(row.Duty.ItemLevel); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - text = _206B_200C_202A_200B_200B_202D_200D_202D_200C_206F_200B_206D_200F_200F_200D_200F_202D_200B_206C_202E_206D_202B_200E_206D_202E_206E_200E_202C_206F_206E_202E_206D_202B_202E_200E_206C_206C_200B_206C_206D_202E(text2, defaultInterpolatedStringHandler2.ToStringAndClear()); - num = -911999894; - break; + text += $" (i{row.Duty.ItemLevel})"; } - case 7: + ImGui.TreeNodeEx(text, ImGuiTreeNodeFlags.NoTreePushOnOpen | ImGuiTreeNodeFlags.Leaf | ImGuiTreeNodeFlags.SpanFullWidth); + if (ImGui.IsItemHovered()) { - float indentSpacing = _200D_202D_202E_200E_200D_206F_202C_206B_202C_202D_206E_206A_206F_206F_200B_206F_200F_202E_200F_200C_200E_202C_206D_206C_206C_206E_200C_202A_200E_206E_200F_202C_206B_206D_202C_202B_206B_202E_206E_206A_202E().IndentSpacing; - _202E_200E_202B_200E_200B_206B_200F_202C_200F_202C_200E_206B_206A_200C_200B_200C_206E_206D_206A_206F_200D_200B_202C_202E_200C_200C_200E_200F_200E_206A_202C_202D_202A_202E_200B_200E_206D_206B_206C_200C_202E(_206D_202A_206B_206E_202C_206E_202E_200F_200E_206A_200F_200F_202A_206D_200C_200B_202E_200D_206F_200B_202C_202D_206E_206B_206B_206F_200E_202B_202E_200D_206A_200E_206E_202D_202B_206F_202B_202C_206F_202A_202E() + indentSpacing); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(3, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-926672371)); - defaultInterpolatedStringHandler.AppendFormatted(row.Duty.Level); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2018550958)); - defaultInterpolatedStringHandler.AppendFormatted(row.Duty.Name); - text = defaultInterpolatedStringHandler.ToStringAndClear(); - num = ((row.Duty.ItemLevel <= 0) ? (-911999894) : (-911999898)); - break; - } - case 1: DrawDutyTooltip(row.Duty); - num = -911999896; - break; - case 6: - _206C_206A_200E_206D_200E_206B_206B_206B_206B_202B_206B_200E_202A_200D_202B_206C_202C_206C_206F_206E_202C_206E_202A_206A_202D_200C_202B_202D_200C_200D_206E_206F_202D_206C_202D_200C_200B_206D_200F_200D_202E(); - DrawDutyStatus(row.Duty.IsUnlocked, statusIconSpacing); - _206C_206A_200E_206D_200E_206B_206B_206B_206B_202B_206B_200E_202A_200D_202B_206C_202C_206C_206F_206E_202C_206E_202A_206A_202D_200C_202B_202D_200C_200D_206E_206F_202D_206C_202D_200C_200B_206D_200F_200D_202E(); - DrawDutyStatus(row.Duty.IsCompleted, statusIconSpacing); - num = -911999899; - break; - case 9: - _expandedGroups.Remove(row.Label); - num = -911999902; - break; - case 2: - num = -911999895; - break; - case 0: - _206C_206A_200E_206D_200E_206B_206B_206B_206B_202B_206B_200E_202A_200D_202B_206C_202C_206C_206F_206E_202C_206E_202A_206A_202D_200C_202B_202D_200C_200D_206E_206F_202D_206C_202D_200C_200B_206D_200F_200D_202E(); - UiThemeUtils.DrawTrackerCount(row.Counts.FormattedUnlocked, row.Counts.IsUnlockedComplete, row.Counts.Total == 0); - _206C_206A_200E_206D_200E_206B_206B_206B_206B_202B_206B_200E_202A_200D_202B_206C_202C_206C_206F_206E_202C_206E_202A_206A_202D_200C_202B_202D_200C_200D_206E_206F_202D_206C_202D_200C_200B_206D_200F_200D_202E(); - UiThemeUtils.DrawTrackerCount(row.Counts.FormattedCompleted, row.Counts.IsCompletedComplete, row.Counts.CompletionTrackable == 0); - num = -911999899; - break; - case 5: - _expandedGroups.Add(row.Label); - num = -911999902; - break; - case 3: - num = ((!flag) ? (-911999893) : (-911999897)); - break; - case 10: - { - flag = _expandedGroups.Contains(row.Label); - UiThemeUtils.DrawTrackerGroupCaret(_202C_206E_200D_202A_200C_202C_206D_200E_206F_200E_206A_206A_206A_206D_206B_206C_202C_202B_200D_200C_200E_200B_202E_206F_202B_202B_200E_202A_200D_200B_200B_200F_200E_202B_202D_200E_202A_200D_206E_206C_202E(_200F_202A_200D_202A_202D_200D_202B_200F_200F_206D_206B_206D_200F_206D_200E_206C_206F_202D_206F_206B_202B_202B_200C_200D_202E_202B_202E_202B_206E_200E_202D_200E_200D_202B_202E_206E_206A_202C_200B_202C_202E(_pluginInterface)), flag); - _200B_202A_200D_200C_200D_202C_202B_206A_206C_200C_200C_206E_206A_200C_202C_206D_202B_206F_206E_206E_202B_200B_206F_200D_206E_202B_202A_202B_206D_200D_202C_200F_200D_200D_202E_200E_200F_206B_200C_202A_202E(); - ImU8String imU8String = new ImU8String(5, 2); - imU8String.AppendFormatted(row.Label); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(169207648)); - imU8String.AppendFormatted(row.GroupIndex); - num = ((!_200E_206B_206C_200C_202C_202A_202D_200F_202B_200E_206A_200F_200B_202A_202C_206D_202D_202D_206A_206E_202B_206A_206F_206B_202C_202B_202C_206A_206D_206A_202D_202B_200C_206D_202B_202D_206D_202A_200F_202C_202E(imU8String, false, ImGuiSelectableFlags.None, default(Vector2))) ? (-911999890) : (-911999891)); - break; - } - case 12: - result = true; - num = -911999890; - break; - case 4: - _206A_200F_202C_202B_206B_200B_202D_202B_206B_202C_206B_200E_200C_202C_206B_200B_202A_206A_206A_200D_206C_202C_200D_200B_206C_206D_206E_206D_200F_206C_200E_200E_206B_202B_202B_202C_202A_206E_206D_202E_202E((ImU8String)text, ImGuiTreeNodeFlags.NoTreePushOnOpen | ImGuiTreeNodeFlags.Leaf | ImGuiTreeNodeFlags.SpanFullWidth, default(ImU8String)); - num = ((!_202E_202A_202E_202A_200B_200F_206E_200E_202D_202C_206C_200D_202D_206F_200E_200B_200B_202E_200B_202E_206F_200B_202C_200F_202D_200C_200E_206D_206A_200F_206A_206F_206D_206B_202E_206B_206D_202D_200D_200D_202E()) ? (-911999896) : (-911999889)); - break; - case 11: - return result; } + ImGui.TableNextColumn(); + DrawDutyStatus(row.Duty.IsUnlocked, statusIconSpacing); + ImGui.TableNextColumn(); + DrawDutyStatus(row.Duty.IsCompleted, statusIconSpacing); } + else + { + bool flag = _expandedGroups.Contains(row.Label); + UiThemeUtils.DrawTrackerGroupCaret(_pluginInterface.UiBuilder.IconFontFixedWidthHandle, flag); + ImGui.SameLine(); + ImU8String label = new ImU8String(5, 2); + label.AppendFormatted(row.Label); + label.AppendLiteral("##grp"); + label.AppendFormatted(row.GroupIndex); + if (ImGui.Selectable(label)) + { + if (flag) + { + _expandedGroups.Remove(row.Label); + } + else + { + _expandedGroups.Add(row.Label); + } + result = true; + } + ImGui.TableNextColumn(); + UiThemeUtils.DrawTrackerCount(row.Counts.FormattedUnlocked, row.Counts.IsUnlockedComplete, row.Counts.Total == 0); + ImGui.TableNextColumn(); + UiThemeUtils.DrawTrackerCount(row.Counts.FormattedCompleted, row.Counts.IsCompletedComplete, row.Counts.CompletionTrackable == 0); + } + return result; } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawFilterControls() { - float x = _200D_202D_202E_200E_200D_206F_202C_206B_202C_202D_206E_206A_206F_206F_200B_206F_200F_202E_200F_200C_200E_202C_206D_206C_206C_206E_200C_202A_200E_206E_200F_202C_206B_206D_202C_202B_206B_202E_206E_206A_202E().ItemSpacing.X; - float num = 2f * _202D_206A_200C_202A_206D_206E_200B_206F_206D_200D_200E_200C_206D_206E_200F_200C_202D_202A_202D_206D_206D_206D_200F_206F_202B_206F_202A_206C_200E_200C_202A_202B_206F_202D_206A_202C_206A_202A_202B_202C_202E() + _200D_206F_206C_206C_206B_206C_200F_206D_206D_202E_206B_206B_206C_200B_206D_200C_200D_200D_200F_206B_200D_202D_200B_206B_206D_206F_206E_202A_202B_206D_202A_202E_200C_206A_206E_200B_200F_202A_202D_202B_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2070955121), false, -1f).X + _200D_206F_206C_206C_206B_206C_200F_206D_206D_202E_206B_206B_206C_200B_206D_200C_200D_200D_200F_206B_200D_202D_200B_206B_206D_206F_206E_202A_202B_206D_202A_202E_200C_206A_206E_200B_200F_202A_202D_202B_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1106626027), false, -1f).X + 5f * x; - int num2 = ((!UiThemeUtils.SearchInput(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-872174829), ref _searchText, 0f - num, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1459019774))) ? 92816374 : 92816372); - while (true) + float x = ImGui.GetStyle().ItemSpacing.X; + float num = 2f * ImGui.GetFrameHeight() + ImGui.CalcTextSize("Locked Only").X + ImGui.CalcTextSize("Unlocked Only").X + 5f * x; + if (UiThemeUtils.SearchInput("##DutySearch", ref _searchText, 0f - num, "Search duties...")) { - int num3 = num2; - int num4 = 92816373; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + UpdateFilter(); + } + ImGui.SameLine(); + if (UiThemeUtils.WrappedCheckbox("Locked Only", ref _showLockedOnly)) + { + if (_showLockedOnly) { - case 10: - return; - case 3: - _200B_202A_200D_200C_200D_202C_202B_206A_206C_200C_200C_206E_206A_200C_202C_206D_202B_206F_206E_206E_202B_200B_206F_200D_206E_202B_202A_202B_206D_200D_202C_200F_200D_200D_202E_200E_200F_206B_200C_202A_202E(); - num2 = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2002129860), ref _showLockedOnly)) ? 92816370 : 92816380); - break; - case 4: - num2 = ((!_showUnlockedOnly) ? 92816381 : 92816371); - break; - case 0: _showUnlockedOnly = false; - num2 = 92816368; - break; - case 5: - UpdateFilter(); - num2 = 92816370; - break; - case 6: - _showLockedOnly = false; - num2 = 92816381; - break; - case 9: - num2 = ((!_showLockedOnly) ? 92816368 : 92816373); - break; - case 8: - UpdateFilter(); - num2 = 92816383; - break; - case 7: - _200B_202A_200D_200C_200D_202C_202B_206A_206C_200C_200C_206E_206A_200C_202C_206D_202B_206F_206E_206E_202B_200B_206F_200D_206E_202B_202A_202B_206D_200D_202C_200F_200D_200D_202E_200E_200F_206B_200C_202A_202E(); - num2 = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1060377567), ref _showUnlockedOnly)) ? 92816383 : 92816369); - break; - case 1: - UpdateFilter(); - num2 = 92816374; - break; - case 2: - num2 = 92816372; - break; } + UpdateFilter(); + } + ImGui.SameLine(); + if (UiThemeUtils.WrappedCheckbox("Unlocked Only", ref _showUnlockedOnly)) + { + if (_showUnlockedOnly) + { + _showLockedOnly = false; + } + UpdateFilter(); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawDutyTooltip(DutyInfo duty) { - using ImRaii.TooltipDisposable tooltipDisposable = _202D_200F_206D_206C_200E_202E_200E_206E_206C_202C_200D_206C_200B_200B_200D_200D_202A_206E_200C_206E_206B_200E_206B_206F_206F_200C_202E_200D_206A_202C_206D_206B_200D_200B_206E_206E_200B_200F_206C_200F_202E(); - int num = (tooltipDisposable.Alive ? (-1982852974) : (-1982852965)); - QuestId current = default(QuestId); - IQuestInfo questInfo = default(IQuestInfo); - while (true) + using ImRaii.TooltipDisposable tooltipDisposable = ImRaii.Tooltip(); + if (!tooltipDisposable.Alive) { - int num2 = num; - int num3 = -1982852974; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + ImGui.TextColored(in UiThemeUtils.PrimaryTextColor, duty.Name); + ImU8String text = new ImU8String(12, 1); + text.AppendLiteral("Content ID: "); + text.AppendFormatted(duty.ContentFinderConditionId); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text); + ImGui.Separator(); + ImU8String text2 = new ImU8String(16, 1); + text2.AppendLiteral("Level Required: "); + text2.AppendFormatted(duty.Level); + ImGui.Text(text2); + if (duty.ItemLevel > 0) + { + ImU8String text3 = new ImU8String(21, 1); + text3.AppendLiteral("Item Level Required: "); + text3.AppendFormatted(duty.ItemLevel); + ImGui.Text(text3); + } + ImU8String text4 = new ImU8String(6, 1); + text4.AppendLiteral("Type: "); + text4.AppendFormatted(duty.ContentTypeName); + ImGui.Text(text4); + if (duty.IsHighEndDuty) + { + ImGui.SameLine(); + ImGui.TextColored(in UiThemeUtils.StatusActive, "(High-End)"); + } + ImGui.Separator(); + if (duty.IsUnlocked) + { + ImGui.TextColored(in UiThemeUtils.StatusComplete, "Status: Unlocked"); + } + else + { + ImGui.TextColored(in UiThemeUtils.StatusLocked, "Status: Locked"); + } + if (duty.UnlockQuests.Count > 0) + { + ImGui.Separator(); + ImGui.Text("Unlock Quest(s):"); { - case 4: - _206D_200D_202B_206F_200D_202E_202D_200B_200B_202A_206F_202D_202B_200F_206B_206F_202D_200E_206B_200E_206E_206B_200C_202D_206F_206D_206B_206B_200D_206B_200B_200F_200D_206F_200F_206E_206C_200B_202E_206F_202E(ref UiThemeUtils.StatusLocked, (ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2074321662)); - num = -1982852968; - break; - case 10: - if (duty.UnlockQuests.Count > 0) + foreach (QuestId unlockQuest in duty.UnlockQuests) { - num = -1982852971; - break; - } - _202B_200D_202B_206B_202B_202C_200D_200B_200C_202B_206C_206F_202C_200B_206F_206B_202D_202E_206A_202B_200B_206F_202E_200F_202B_202B_200E_206D_206E_206F_200C_202B_202D_200D_200F_206C_200C_200C_200D_202B_202E(); - _206D_200D_202B_206F_200D_202E_202D_200B_200B_202A_206F_202D_202B_200F_206B_206F_202D_200E_206B_200E_206E_206B_200C_202D_206F_206D_206B_206B_200D_206B_200B_200F_200D_206F_200F_206E_206C_200B_202E_206F_202E(ref UiThemeUtils.DimTextColor, (ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(617607988)); - return; - case 6: - { - ImU8String imU8String2 = new ImU8String(6, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-725035009)); - imU8String2.AppendFormatted(duty.ContentTypeName); - _202E_202C_206F_206C_202D_200F_206F_206A_206E_200F_202E_202D_202A_200E_200E_200B_200D_206F_206E_200F_200D_200B_206C_202A_202D_202A_202A_202E_202C_202B_202D_202E_200C_206B_206A_206E_206D_200B_206C_200F_202E(imU8String2); - num = ((!duty.IsHighEndDuty) ? (-1982852973) : (-1982852969)); - break; - } - case 2: - num = -1982852965; - break; - case 0: - { - _206D_200D_202B_206F_200D_202E_202D_200B_200B_202A_206F_202D_202B_200F_206B_206F_202D_200E_206B_200E_206E_206B_200C_202D_206F_206D_206B_206B_200D_206B_200B_200F_200D_206F_200F_206E_206C_200B_202E_206F_202E(ref UiThemeUtils.PrimaryTextColor, (ImU8String)duty.Name); - ImU8String imU8String3 = new ImU8String(12, 1); - imU8String3.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1747964260)); - imU8String3.AppendFormatted(duty.ContentFinderConditionId); - _206D_200D_202B_206F_200D_202E_202D_200B_200B_202A_206F_202D_202B_200F_206B_206F_202D_200E_206B_200E_206E_206B_200C_202D_206F_206D_206B_206B_200D_206B_200B_200F_200D_206F_200F_206E_206C_200B_202E_206F_202E(ref UiThemeUtils.DimTextColor, imU8String3); - _202B_200D_202B_206B_202B_202C_200D_200B_200C_202B_206C_206F_202C_200B_206F_206B_202D_202E_206A_202B_200B_206F_202E_200F_202B_202B_200E_206D_206E_206F_200C_202B_202D_200D_200F_206C_200C_200C_200D_202B_202E(); - ImU8String imU8String4 = new ImU8String(16, 1); - imU8String4.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1265596933)); - imU8String4.AppendFormatted(duty.Level); - _202E_202C_206F_206C_202D_200F_206F_206A_206E_200F_202E_202D_202A_200E_200E_200B_200D_206F_206E_200F_200D_200B_206C_202A_202D_202A_202A_202E_202C_202B_202D_202E_200C_206B_206A_206E_206D_200B_206C_200F_202E(imU8String4); - num = ((duty.ItemLevel <= 0) ? (-1982852972) : (-1982852966)); - break; - } - case 1: - _202B_200D_202B_206B_202B_202C_200D_200B_200C_202B_206C_206F_202C_200B_206F_206B_202D_202E_206A_202B_200B_206F_202E_200F_202B_202B_200E_206D_206E_206F_200C_202B_202D_200D_200F_206C_200C_200C_200D_202B_202E(); - num = ((!duty.IsUnlocked) ? (-1982852970) : (-1982852975)); - break; - case 3: - _206D_200D_202B_206F_200D_202E_202D_200B_200B_202A_206F_202D_202B_200F_206B_206F_202D_200E_206B_200E_206E_206B_200C_202D_206F_206D_206B_206B_200D_206B_200B_200F_200D_206F_200F_206E_206C_200B_202E_206F_202E(ref UiThemeUtils.StatusComplete, (ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-194010955)); - num = -1982852968; - break; - case 5: - _200B_202A_200D_200C_200D_202C_202B_206A_206C_200C_200C_206E_206A_200C_202C_206D_202B_206F_206E_206E_202B_200B_206F_200D_206E_202B_202A_202B_206D_200D_202C_200F_200D_200D_202E_200E_200F_206B_200C_202A_202E(); - _206D_200D_202B_206F_200D_202E_202D_200B_200B_202A_206F_202D_202B_200F_206B_206F_202D_200E_206B_200E_206E_206B_200C_202D_206F_206D_206B_206B_200D_206B_200B_200F_200D_206F_200F_206E_206C_200B_202E_206F_202E(ref UiThemeUtils.StatusActive, (ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1344637510)); - num = -1982852973; - break; - case 8: - { - ImU8String imU8String = new ImU8String(21, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(755322802)); - imU8String.AppendFormatted(duty.ItemLevel); - _202E_202C_206F_206C_202D_200F_206F_206A_206E_200F_202E_202D_202A_200E_200E_200B_200D_206F_206E_200F_200D_200B_206C_202A_202D_202A_202A_202E_202C_202B_202D_202E_200C_206B_206A_206E_206D_200B_206C_200F_202E(imU8String); - num = -1982852972; - break; - } - case 9: - return; - case 7: - { - _202B_200D_202B_206B_202B_202C_200D_200B_200C_202B_206C_206F_202C_200B_206F_206B_202D_202E_206A_202B_200B_206F_202E_200F_202B_202B_200E_206D_206E_206F_200C_202B_202D_200D_200F_206C_200C_200C_200D_202B_202E(); - _202E_202C_206F_206C_202D_200F_206F_206A_206E_200F_202E_202D_202A_200E_200E_200B_200D_206F_206E_200F_200D_200B_206C_202A_202D_202A_202A_202E_202C_202B_202D_202E_200C_206B_206A_206E_206D_200B_206C_200F_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1947459577)); - using ImmutableList<QuestId>.Enumerator enumerator = duty.UnlockQuests.GetEnumerator(); - num = -517590375; - while (true) - { - int num7 = num; - num3 = -517590376; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) + if (_questData.TryGetQuestInfo(unlockQuest, out IQuestInfo questInfo)) { - case 2: - num = -517590375; - break; - case 4: - { - UiUtils uiUtils2 = _uiUtils; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(16, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(76120943)); - defaultInterpolatedStringHandler2.AppendFormatted(current); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - uiUtils2.ChecklistItem(defaultInterpolatedStringHandler2.ToStringAndClear(), UiThemeUtils.StatusUnobtainable, FontAwesomeIcon.Question); - num = -517590375; - break; + var (color, icon, _) = _uiUtils.GetQuestStyle(unlockQuest); + _uiUtils.ChecklistItem($"{questInfo.Name} ({unlockQuest})", color, icon); } - case 0: + else { - (Vector4 Color, FontAwesomeIcon Icon, string Status) questStyle = _uiUtils.GetQuestStyle(current); - Vector4 item = questStyle.Color; - FontAwesomeIcon item2 = questStyle.Icon; - UiUtils uiUtils = _uiUtils; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(3, 2); - defaultInterpolatedStringHandler.AppendFormatted(questInfo.Name); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1495931675)); - defaultInterpolatedStringHandler.AppendFormatted(current); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - uiUtils.ChecklistItem(defaultInterpolatedStringHandler.ToStringAndClear(), item, item2); - num = -517590375; - break; - } - case 1: - num = (enumerator.MoveNext() ? (-517590373) : (-517590371)); - break; - case 3: - current = enumerator.Current; - num = ((!_questData.TryGetQuestInfo(current, out questInfo)) ? (-517590372) : (-517590376)); - break; - case 5: - return; + _uiUtils.ChecklistItem($"Unknown Quest ({unlockQuest})", UiThemeUtils.StatusUnobtainable, FontAwesomeIcon.Question); } } - } + return; } } + ImGui.Separator(); + ImGui.TextColored(in UiThemeUtils.DimTextColor, "No unlock quest data available."); } private void DrawDutyStatus(bool? status, float statusIconSpacing) { - float num = _206C_206B_206D_206D_202C_206F_200D_202A_202D_202D_202A_202A_200F_206E_202E_206C_202B_202A_202C_200C_206B_200F_206C_202E_206E_206D_206B_200D_200E_202A_200C_206F_206A_200F_206F_202A_206D_200C_206E_202E() / 2f - statusIconSpacing; - _202E_200E_202B_200E_200B_206B_200F_202C_200F_202C_200E_206B_206A_200C_200B_200C_206E_206D_206A_206F_200D_200B_202C_202E_200C_200C_200E_200F_200E_206A_202C_202D_202A_202E_200B_200E_206D_206B_206C_200C_202E(_206D_202A_206B_206E_202C_206E_202E_200F_200E_206A_200F_200F_202A_206D_200C_200B_202E_200D_206F_200B_202C_202D_206E_206B_206B_206F_200E_202B_202E_200D_206A_200E_206E_202D_202B_206F_202B_202C_206F_202A_202E() + num); - int num2 = (status.HasValue ? 1147629739 : 1147629738); - while (true) + float num = ImGui.GetColumnWidth() / 2f - statusIconSpacing; + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + num); + if (!status.HasValue) { - int num3 = num2; - int num4 = 1147629739; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - num2 = 1147629738; - break; - case 4: - _uiUtils.ChecklistItem(string.Empty, UiThemeUtils.StatusLocked, FontAwesomeIcon.Times); - return; - case 0: - num2 = ((!status.Value) ? 1147629743 : 1147629736); - break; - case 3: - _uiUtils.ChecklistItem(string.Empty, UiThemeUtils.StatusComplete, FontAwesomeIcon.Check); - return; - case 1: - _uiUtils.ChecklistItem(string.Empty, UiThemeUtils.StatusUnobtainable, FontAwesomeIcon.Minus); - return; - } + _uiUtils.ChecklistItem(string.Empty, UiThemeUtils.StatusUnobtainable, FontAwesomeIcon.Minus); + } + else if (status.Value) + { + _uiUtils.ChecklistItem(string.Empty, UiThemeUtils.StatusComplete, FontAwesomeIcon.Check); + } + else + { + _uiUtils.ChecklistItem(string.Empty, UiThemeUtils.StatusLocked, FontAwesomeIcon.Times); } } @@ -1081,61 +353,33 @@ internal sealed class DutyJournalComponent { continue; } - using List<DutyInfo>.Enumerator enumerator2 = filteredCategory.Duties.GetEnumerator(); - int num = 844311653; - while (true) + foreach (DutyInfo duty in filteredCategory.Duties) { - int num2 = num; - int num3 = 844311652; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = 844311653; - break; - case 1: - num = (enumerator2.MoveNext() ? 844311654 : 844311652); - break; - case 2: - { - DutyInfo current2 = enumerator2.Current; - list.Add(new FlatRow(RowType.Duty, 0, current2, string.Empty, new DutyCounts())); - num = 844311653; - break; - } - case 0: - goto end_IL_0085; - } - continue; - end_IL_0085: - break; + list.Add(new FlatRow(RowType.Duty, 0, duty, string.Empty, new DutyCounts())); } } _flatRows = list; } - [MethodImpl(MethodImplOptions.NoInlining)] public void UpdateFilter() { List<DutyCategory> list = new List<DutyCategory>(); - AddCategory(list, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1287674180), _dutyUnlockData.GetDungeons()); - AddCategory(list, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-937690516), _dutyUnlockData.GetHardDungeons()); - AddCategory(list, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2127926072), _dutyUnlockData.GetGuildhests()); - AddCategory(list, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-206619432), _dutyUnlockData.GetTrials()); - AddCategory(list, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-115053428), _dutyUnlockData.GetHardTrials()); - AddCategory(list, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1436204647), _dutyUnlockData.GetExtremeTrials()); - AddCategory(list, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1230911397), _dutyUnlockData.GetUnrealTrials()); - AddCategory(list, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2019601302), _dutyUnlockData.GetNormalRaids()); - AddCategory(list, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2018627659), _dutyUnlockData.GetSavageRaids()); - AddCategory(list, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1360633849), _dutyUnlockData.GetAllianceRaids()); - AddCategory(list, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(870993943), _dutyUnlockData.GetChaoticAllianceRaids()); - AddCategory(list, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1100628143), _dutyUnlockData.GetUltimateRaids()); - AddCategory(list, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(835919746), _dutyUnlockData.GetDeepDungeons()); - AddCategory(list, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2078008528), _dutyUnlockData.GetVariantDungeons()); - AddCategory(list, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1259422192), _dutyUnlockData.GetCriterionDungeons()); - AddCategory(list, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(788017766), _dutyUnlockData.GetCriterionSavageDungeons()); + AddCategory(list, "Dungeons", _dutyUnlockData.GetDungeons()); + AddCategory(list, "Hard Dungeons", _dutyUnlockData.GetHardDungeons()); + AddCategory(list, "Guildhests", _dutyUnlockData.GetGuildhests()); + AddCategory(list, "Trials", _dutyUnlockData.GetTrials()); + AddCategory(list, "Hard Trials", _dutyUnlockData.GetHardTrials()); + AddCategory(list, "Extreme Trials", _dutyUnlockData.GetExtremeTrials()); + AddCategory(list, "Unreal Trials", _dutyUnlockData.GetUnrealTrials()); + AddCategory(list, "Normal Raids", _dutyUnlockData.GetNormalRaids()); + AddCategory(list, "Savage Raids", _dutyUnlockData.GetSavageRaids()); + AddCategory(list, "Alliance Raids", _dutyUnlockData.GetAllianceRaids()); + AddCategory(list, "Chaotic Alliance Raids", _dutyUnlockData.GetChaoticAllianceRaids()); + AddCategory(list, "Ultimate Raids", _dutyUnlockData.GetUltimateRaids()); + AddCategory(list, "Deep Dungeons", _dutyUnlockData.GetDeepDungeons()); + AddCategory(list, "Variant Dungeons", _dutyUnlockData.GetVariantDungeons()); + AddCategory(list, "Criterion Dungeons", _dutyUnlockData.GetCriterionDungeons()); + AddCategory(list, "Criterion Savage", _dutyUnlockData.GetCriterionSavageDungeons()); _filteredCategories = list.Where((DutyCategory c) => c.Duties.Count > 0).ToList(); RefreshCounts(); RebuildFlatRows(); @@ -1147,295 +391,49 @@ internal sealed class DutyJournalComponent where MatchesFilter(d) orderby d.Level, d.ItemLevel, d.ContentFinderConditionId select d).ToList(); - int num = ((list.Count <= 0) ? (-1138690258) : (-1138690257)); - while (true) + if (list.Count > 0) { - int num2 = num; - int num3 = -1138690258; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return; - case 1: - categories.Add(new DutyCategory(name, list)); - num = -1138690258; - break; - case 2: - num = -1138690257; - break; - } + categories.Add(new DutyCategory(name, list)); } } private bool MatchesFilter(DutyInfo duty) { - int num = (_206B_200F_200B_206D_200C_202D_206B_200E_206F_206D_200C_202A_206C_202C_200C_206C_206F_206D_202E_202C_206B_200F_200F_200D_206E_202D_206A_206E_202A_206C_206B_202E_202B_206D_200B_200E_202A_200D_206D_200E_202E(_searchText) ? 1918787153 : 1918787152); - while (true) + if (!string.IsNullOrEmpty(_searchText) && !duty.Name.Contains(_searchText, StringComparison.OrdinalIgnoreCase)) { - int num2 = num; - int num3 = 1918787159; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = ((!duty.IsUnlocked) ? 1918787157 : 1918787154); - break; - case 1: - return false; - case 6: - num = ((!_showLockedOnly) ? 1918787157 : 1918787156); - break; - case 4: - return false; - case 8: - num = (duty.IsUnlocked ? 1918787159 : 1918787155); - break; - case 2: - num = ((!_showUnlockedOnly) ? 1918787159 : 1918787167); - break; - case 0: - return true; - case 5: - return false; - case 7: - num = (_200F_200C_202D_202B_202D_202E_202A_200E_206A_200D_202D_202C_206E_200C_206C_200E_206F_206F_202A_200C_202B_202B_200C_206E_200D_202E_206D_202E_202B_202B_206C_200B_206A_206A_206E_206C_202E_206E_206B_206C_202E(duty.Name, _searchText, StringComparison.OrdinalIgnoreCase) ? 1918787153 : 1918787158); - break; - case 9: - num = 1918787152; - break; - } + return false; } + if (_showLockedOnly && duty.IsUnlocked) + { + return false; + } + if (_showUnlockedOnly && !duty.IsUnlocked) + { + return false; + } + return true; } public void RefreshCounts() { _categoryCounts.Clear(); - using (List<DutyCategory>.Enumerator enumerator = _filteredCategories.GetEnumerator()) + foreach (DutyCategory filteredCategory in _filteredCategories) { - int num = 1539315091; - while (true) - { - int num2 = num; - int num3 = 1539315088; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = (enumerator.MoveNext() ? 1539315089 : 1539315088); - break; - case 1: - { - DutyCategory current = enumerator.Current; - int unlocked = current.Duties.Count((DutyInfo d) => d.IsUnlocked); - int completed = current.Duties.Count((DutyInfo d) => d.IsCompleted == true); - int completionTrackable = current.Duties.Count((DutyInfo d) => d.IsCompleted.HasValue); - int count = current.Duties.Count; - _categoryCounts[current.Name] = new DutyCounts(unlocked, completed, completionTrackable, count); - num = 1539315091; - break; - } - case 2: - num = 1539315091; - break; - case 0: - goto end_IL_0023; - } - continue; - end_IL_0023: - break; - } + int unlocked = filteredCategory.Duties.Count((DutyInfo d) => d.IsUnlocked); + int completed = filteredCategory.Duties.Count((DutyInfo d) => d.IsCompleted == true); + int completionTrackable = filteredCategory.Duties.Count((DutyInfo d) => d.IsCompleted.HasValue); + int count = filteredCategory.Duties.Count; + _categoryCounts[filteredCategory.Name] = new DutyCounts(unlocked, completed, completionTrackable, count); } RebuildFlatRows(); } public void ClearCounts(int type, int code) { - using (List<string>.Enumerator enumerator = _categoryCounts.Keys.ToList().GetEnumerator()) + foreach (string item in _categoryCounts.Keys.ToList()) { - int num = 279885653; - while (true) - { - int num2 = num; - int num3 = 279885654; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 279885653; - break; - case 3: - num = (enumerator.MoveNext() ? 279885652 : 279885655); - break; - case 2: - { - string current = enumerator.Current; - _categoryCounts[current] = new DutyCounts(0, 0, 0, _categoryCounts[current].Total); - num = 279885653; - break; - } - case 1: - goto end_IL_0021; - } - continue; - end_IL_0021: - break; - } + _categoryCounts[item] = new DutyCounts(0, 0, 0, _categoryCounts[item].Total); } RebuildFlatRows(); } - - static void _202B_200D_202B_206B_202B_202C_200D_200B_200C_202B_206C_206F_202C_200B_206F_206B_202D_202E_206A_202B_200B_206F_202E_200F_202B_202B_200E_206D_206E_206F_200C_202B_202D_200D_200F_206C_200C_200C_200D_202B_202E() - { - ImGui.Separator(); - } - - static IUiBuilder _200F_202A_200D_202A_202D_200D_202B_200F_200F_206D_206B_206D_200F_206D_200E_206C_206F_202D_206F_206B_202B_202B_200C_200D_202E_202B_202E_202B_206E_200E_202D_200E_200D_202B_202E_206E_206A_202C_200B_202C_202E(IDalamudPluginInterface P_0) - { - return P_0.UiBuilder; - } - - static IFontHandle _202C_206E_200D_202A_200C_202C_206D_200E_206F_200E_206A_206A_206A_206D_206B_206C_202C_202B_200D_200C_200E_200B_202E_206F_202B_202B_200E_202A_200D_200B_200B_200F_200E_202B_202D_200E_202A_200D_206E_206C_202E(IUiBuilder P_0) - { - return P_0.IconFontFixedWidthHandle; - } - - static IDisposable _202E_206C_200D_206E_200B_206C_202D_202E_202D_206D_200F_200D_206F_206D_206B_206C_200B_200D_200F_200C_200B_202E_206A_200F_206D_206A_202D_206F_206B_200D_206A_206D_202C_200B_200D_206D_206B_202E_206B_202D_202E(IFontHandle P_0) - { - return P_0.Push(); - } - - static string _200E_206E_202A_206A_200D_200F_206B_206B_200F_200F_202E_206F_202A_200E_206F_200F_206D_200F_202E_200E_200F_206B_202D_202B_206A_206C_206C_202B_206C_202B_206E_202E_202A_202D_200E_206D_202A_200E_200C_200E_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static Vector2 _200D_206F_206C_206C_206B_206C_200F_206D_206D_202E_206B_206B_206C_200B_206D_200C_200D_200D_200F_206B_200D_202D_200B_206B_206D_206F_206E_202A_202B_206D_202A_202E_200C_206A_206E_200B_200F_202A_202D_202B_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static void _200D_202E_200C_200E_202D_200B_206F_200E_206A_206E_206B_202C_202B_206E_206F_200C_206D_200E_202A_206F_202D_200E_202C_206B_200E_200D_206B_202E_202B_202E_200B_206C_206C_202D_200F_206A_202D_202D_200D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static ImGuiIOPtr _202E_206A_206F_200B_206B_206D_202C_202D_206B_206F_202C_200F_202D_200C_200F_202E_202B_206B_200D_200D_200F_200B_206D_200E_206E_202B_206F_200B_202A_200C_202D_200B_202C_206D_200E_206E_200C_200B_206D_206D_202E() - { - return ImGui.GetIO(); - } - - static void _202E_206F_206F_206F_200E_206C_200D_202C_202C_200D_206D_200D_202D_202D_206A_206A_206C_200F_206F_206C_202E_200B_202D_200D_206A_200E_200D_202A_200D_206A_200D_202E_202E_200D_200D_202D_206E_200E_206F_202A_202E(ImU8String P_0, ImGuiTableColumnFlags P_1, float P_2, uint P_3) - { - ImGui.TableSetupColumn(P_0, P_1, P_2, P_3); - } - - static void _200F_206D_202C_202B_200D_202C_200D_202B_200B_200F_200B_200F_206F_206C_206C_206D_202D_202C_206A_202A_206B_200D_200F_200F_202D_206B_206C_200B_202A_202E_202C_206A_206A_202E_200F_200C_206C_206B_202A_202E() - { - ImGui.TableHeadersRow(); - } - - static float _200B_200F_200E_206B_200F_202A_200F_200B_202C_202D_206F_202D_202B_206F_206E_202B_206F_200F_200E_206F_206C_206D_202C_206A_200B_200C_206D_200B_202B_206A_206B_200D_206F_206A_200F_206B_206F_200B_206E_202A_202E() - { - return ImGui.GetTextLineHeightWithSpacing(); - } - - unsafe static ImGuiListClipper* _200C_200F_206E_206A_200D_206B_200B_206D_200D_206A_206B_202D_202B_202D_202C_206C_206C_206F_202A_206B_202C_200E_202B_206C_202A_200D_206E_200C_200F_206E_206E_200E_206D_200D_202D_206F_206F_206E_202A_200F_202E() - { - return ImGuiNative.ImGuiListClipper(); - } - - unsafe static void _206C_200D_206F_200F_206E_200E_200C_202E_200F_206F_206C_202D_200B_206E_202E_202C_206D_200F_206B_202C_200C_206A_206E_200E_202B_206C_200E_202A_200B_200D_200E_206C_202B_202D_202A_200D_206E_200C_200E_200E_202E(ImGuiListClipper* P_0, int P_1, float P_2) - { - ImGuiNative.Begin(P_0, P_1, P_2); - } - - static void _200D_202D_200B_200E_200F_202C_200F_200C_202B_206B_202C_206E_200F_200F_200E_206C_202A_200F_200F_202D_206A_206C_202D_206C_202B_206F_206B_200D_202E_202D_206F_200D_206A_202E_206B_206B_200B_206D_206B_206D_202E() - { - ImGui.TableNextRow(); - } - - static bool _206C_206A_200E_206D_200E_206B_206B_206B_206B_202B_206B_200E_202A_200D_202B_206C_202C_206C_206F_206E_202C_206E_202A_206A_202D_200C_202B_202D_200C_200D_206E_206F_202D_206C_202D_200C_200B_206D_200F_200D_202E() - { - return ImGui.TableNextColumn(); - } - - static ImGuiStylePtr _200D_202D_202E_200E_200D_206F_202C_206B_202C_202D_206E_206A_206F_206F_200B_206F_200F_202E_200F_200C_200E_202C_206D_206C_206C_206E_200C_202A_200E_206E_200F_202C_206B_206D_202C_202B_206B_202E_206E_206A_202E() - { - return ImGui.GetStyle(); - } - - static float _206D_202A_206B_206E_202C_206E_202E_200F_200E_206A_200F_200F_202A_206D_200C_200B_202E_200D_206F_200B_202C_202D_206E_206B_206B_206F_200E_202B_202E_200D_206A_200E_206E_202D_202B_206F_202B_202C_206F_202A_202E() - { - return ImGui.GetCursorPosX(); - } - - static void _202E_200E_202B_200E_200B_206B_200F_202C_200F_202C_200E_206B_206A_200C_200B_200C_206E_206D_206A_206F_200D_200B_202C_202E_200C_200C_200E_200F_200E_206A_202C_202D_202A_202E_200B_200E_206D_206B_206C_200C_202E(float P_0) - { - ImGui.SetCursorPosX(P_0); - } - - static string _206B_200C_202A_200B_200B_202D_200D_202D_200C_206F_200B_206D_200F_200F_200D_200F_202D_200B_206C_202E_206D_202B_200E_206D_202E_206E_200E_202C_206F_206E_202E_206D_202B_202E_200E_206C_206C_200B_206C_206D_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static bool _206A_200F_202C_202B_206B_200B_202D_202B_206B_202C_206B_200E_200C_202C_206B_200B_202A_206A_206A_200D_206C_202C_200D_200B_206C_206D_206E_206D_200F_206C_200E_200E_206B_202B_202B_202C_202A_206E_206D_202E_202E(ImU8String P_0, ImGuiTreeNodeFlags P_1, ImU8String P_2) - { - return ImGui.TreeNodeEx(P_0, P_1, P_2); - } - - static bool _202E_202A_202E_202A_200B_200F_206E_200E_202D_202C_206C_200D_202D_206F_200E_200B_200B_202E_200B_202E_206F_200B_202C_200F_202D_200C_200E_206D_206A_200F_206A_206F_206D_206B_202E_206B_206D_202D_200D_200D_202E() - { - return ImGui.IsItemHovered(); - } - - static void _200B_202A_200D_200C_200D_202C_202B_206A_206C_200C_200C_206E_206A_200C_202C_206D_202B_206F_206E_206E_202B_200B_206F_200D_206E_202B_202A_202B_206D_200D_202C_200F_200D_200D_202E_200E_200F_206B_200C_202A_202E() - { - ImGui.SameLine(); - } - - static bool _200E_206B_206C_200C_202C_202A_202D_200F_202B_200E_206A_200F_200B_202A_202C_206D_202D_202D_206A_206E_202B_206A_206F_206B_202C_202B_202C_206A_206D_206A_202D_202B_200C_206D_202B_202D_206D_202A_200F_202C_202E(ImU8String P_0, bool P_1, ImGuiSelectableFlags P_2, Vector2 P_3) - { - return ImGui.Selectable(P_0, P_1, P_2, P_3); - } - - static float _202D_206A_200C_202A_206D_206E_200B_206F_206D_200D_200E_200C_206D_206E_200F_200C_202D_202A_202D_206D_206D_206D_200F_206F_202B_206F_202A_206C_200E_200C_202A_202B_206F_202D_206A_202C_206A_202A_202B_202C_202E() - { - return ImGui.GetFrameHeight(); - } - - static ImRaii.TooltipDisposable _202D_200F_206D_206C_200E_202E_200E_206E_206C_202C_200D_206C_200B_200B_200D_200D_202A_206E_200C_206E_206B_200E_206B_206F_206F_200C_202E_200D_206A_202C_206D_206B_200D_200B_206E_206E_200B_200F_206C_200F_202E() - { - return ImRaii.Tooltip(); - } - - static void _206D_200D_202B_206F_200D_202E_202D_200B_200B_202A_206F_202D_202B_200F_206B_206F_202D_200E_206B_200E_206E_206B_200C_202D_206F_206D_206B_206B_200D_206B_200B_200F_200D_206F_200F_206E_206C_200B_202E_206F_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static void _202E_202C_206F_206C_202D_200F_206F_206A_206E_200F_202E_202D_202A_200E_200E_200B_200D_206F_206E_200F_200D_200B_206C_202A_202D_202A_202A_202E_202C_202B_202D_202E_200C_206B_206A_206E_206D_200B_206C_200F_202E(ImU8String P_0) - { - ImGui.Text(P_0); - } - - static float _206C_206B_206D_206D_202C_206F_200D_202A_202D_202D_202A_202A_200F_206E_202E_206C_202B_202A_202C_200C_206B_200F_206C_202E_206E_206D_206B_200D_200E_202A_200C_206F_206A_200F_206F_202A_206D_200C_206E_202E() - { - return ImGui.GetColumnWidth(); - } - - static bool _206B_200F_200B_206D_200C_202D_206B_200E_206F_206D_200C_202A_206C_202C_200C_206C_206F_206D_202E_202C_206B_200F_200F_200D_206E_202D_206A_206E_202A_206C_206B_202E_202B_206D_200B_200E_202A_200D_206D_200E_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static bool _200F_200C_202D_202B_202D_202E_202A_200E_206A_200D_202D_202C_206E_200C_206C_200E_206F_206F_202A_200C_202B_202B_200C_206E_200D_202E_206D_202E_202B_202B_206C_200B_206A_206A_206E_206C_202E_206E_206B_206C_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); - } } diff --git a/Questionable/Questionable.Windows.JournalComponents/GatheringJournalComponent.cs b/Questionable/Questionable.Windows.JournalComponents/GatheringJournalComponent.cs index 83b61bd..6d5ff37 100644 --- a/Questionable/Questionable.Windows.JournalComponents/GatheringJournalComponent.cs +++ b/Questionable/Questionable.Windows.JournalComponents/GatheringJournalComponent.cs @@ -2,12 +2,8 @@ using System; using System.Collections.Generic; using System.Globalization; using System.Linq; -using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Bindings.ImGui; using Dalamud.Interface; -using Dalamud.Interface.ManagedFontAtlas; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin; using Dalamud.Plugin.Services; @@ -18,7 +14,6 @@ using Lumina.Excel.Sheets; using Questionable.Controller; using Questionable.Model; using Questionable.Model.Gathering; -using Questionable.Model.Questing; namespace Questionable.Windows.JournalComponents; @@ -34,333 +29,31 @@ internal sealed class GatheringJournalComponent private readonly record struct GatheringCounts(string FormattedSupported, string FormattedCollected, bool IsSupportedComplete, bool IsCollectedComplete, bool IsSupportedEmpty, bool IsCollectedEmpty) { - public static GatheringCounts Empty - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return new GatheringCounts(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1108021570), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1228468769), IsSupportedComplete: false, IsCollectedComplete: false, IsSupportedEmpty: true, IsCollectedEmpty: true); - } - } + public static GatheringCounts Empty => new GatheringCounts("-", "-", IsSupportedComplete: false, IsCollectedComplete: false, IsSupportedEmpty: true, IsCollectedEmpty: true); - private static readonly int PadWidth = _206B_200C_206B_202A_200E_206B_202E_206D_202A_206F_200B_200E_202E_200E_202C_202C_206A_202B_202D_200F_200E_206D_200C_202B_200F_202B_206F_202D_200D_202C_202E_202C_200F_202C_206E_206D_200F_200E_206B_202E_202E(9999.ToString(_200F_202C_206F_200F_202B_202D_200E_200F_200E_206B_200F_202E_206A_200F_200D_206F_200D_202C_200B_202B_206F_206D_206E_206F_206F_206E_202E_200C_202D_202D_206F_202B_202D_206B_206E_200C_202E_206E_206D_200D_202E())); + private static readonly int PadWidth = 9999.ToString(CultureInfo.CurrentCulture).Length; public static GatheringCounts Create(int supported, int totalSupported, int collected, int totalCollected) { return new GatheringCounts(FormatPair(supported, totalSupported), FormatPair(collected, totalCollected), supported == totalSupported && totalSupported > 0, collected == totalCollected && totalCollected > 0, totalSupported == 0, totalCollected == 0); } - [MethodImpl(MethodImplOptions.NoInlining)] private static string FormatPair(int n, int d) { - int num = ((d == 0) ? 1282005657 : 1282005658); - while (true) + if (d != 0) { - int num2 = num; - int num3 = 1282005659; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return _206F_206A_200E_206B_202C_202D_206A_202C_200F_202E_206F_200D_202D_202E_200B_200C_206F_202A_206B_206D_202B_202D_206E_206B_202B_200E_206C_206F_200E_206F_202B_206B_206B_200B_206E_206C_200E_206F_206E_202A_202E(_206C_202C_202E_200F_206F_200E_202E_202A_200B_206D_200E_206E_202C_200B_206E_206B_200D_206D_202B_206B_202E_202B_200B_200E_206C_202D_206A_206C_202D_200E_200F_206E_200C_200F_202B_202A_200C_200C_202E_206B_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(792471175), PadWidth), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1534070043), _206C_202C_202E_200F_206F_200E_202E_202A_200B_206D_200E_206E_202C_200B_206E_206B_200D_206D_202B_206B_202E_202B_200B_200E_206C_202D_206A_206C_202D_200E_200F_206E_200C_200F_202B_202A_200C_200C_202E_206B_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(792471175), PadWidth)); - case 1: - return _206F_206A_200E_206B_202C_202D_206A_202C_200F_202E_206F_200D_202D_202E_200B_200C_206F_202A_206B_206D_202B_202D_206E_206B_202B_200E_206C_206F_200E_206F_202B_206B_206B_200B_206E_206C_200E_206F_206E_202A_202E(_202A_202C_202B_200D_206C_200B_206E_206A_200B_200F_200F_200F_206D_200C_206E_206F_206D_200E_200D_202C_200D_200D_206A_206E_200B_200C_206C_200E_202C_202C_200D_202C_206C_206A_202D_206E_202D_200C_200F_200E_202E(n.ToString(_200F_202C_206F_200F_202B_202D_200E_200F_200E_206B_200F_202E_206A_200F_200D_206F_200D_202C_200B_202B_206F_206D_206E_206F_206F_206E_202E_200C_202D_202D_206F_202B_202D_206B_206E_200C_202E_206E_206D_200D_202E()), PadWidth), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-242478203), _202A_202C_202B_200D_206C_200B_206E_206A_200B_200F_200F_200F_206D_200C_206E_206F_206D_200E_200D_202C_200D_200D_206A_206E_200B_200C_206C_200E_202C_202C_200D_202C_206C_206A_202D_206E_202D_200C_200F_200E_202E(d.ToString(_200F_202C_206F_200F_202B_202D_200E_200F_200E_206B_200F_202E_206A_200F_200D_206F_200D_202C_200B_202B_206F_206D_206E_206F_206F_206E_202E_200C_202D_202D_206F_202B_202D_206B_206E_200C_202E_206E_206D_200D_202E()), PadWidth)); - case 0: - goto IL_00b7; - } - continue; - IL_00b7: - num = 1282005658; + return n.ToString(CultureInfo.CurrentCulture).PadLeft(PadWidth) + " / " + d.ToString(CultureInfo.CurrentCulture).PadLeft(PadWidth); } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206A_206C_206C_206C_206F_202A_202B_206C_206D_202C_206D_200D_200E_206B_206C_200C_202A_206E_206D_206B_200B_206E_202C_200B_202B_206D_202A_206A_206F_200D_200E_202B_206F_206E_200F_206F_200E_202C_202A_200D_202E(); - _206E_200C_206E_202D_206C_200B_206B_202D_202E_202E_206A_200B_202E_200F_200B_206D_202A_206C_206F_206C_206B_200D_206E_206D_202B_200B_206F_206E_206D_200F_200E_200E_200E_200E_200F_200F_202B_202A_206F_202B_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-790800990)); - _206E_200C_206E_202D_206C_200B_206B_202D_202E_202E_206A_200B_202E_200F_200B_206D_202A_206C_206F_206C_206B_200D_206E_206D_202B_200B_206F_206E_206D_200F_200E_200E_200E_200E_200F_200F_202B_202A_206F_202B_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? 631277519 : 631277516); - while (true) - { - int num2 = num; - int num3 = 631277518; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _200F_202B_206F_206F_206A_200B_200B_202B_206C_200E_202A_206F_200B_202C_206C_200C_200E_206A_200E_206A_206F_206A_200F_200F_202B_202A_206C_202B_200B_200D_200D_206F_200F_206A_200C_200F_200F_202C_202B_200D_202E(stringBuilder, '}'); - return _206B_206C_202B_202E_206A_202E_200C_200B_200E_206A_200F_202A_200E_200F_200B_202E_202A_206D_200F_202D_206D_206D_202A_206B_200E_200D_200F_200C_200F_202C_200D_202B_202B_206C_202D_200C_206B_206B_206E_206C_202E((object)stringBuilder); - case 2: - _200F_202B_206F_206F_206A_200B_200B_202B_206C_200E_202A_206F_200B_202C_206C_200C_200E_206A_200E_206A_206F_206A_200F_200F_202B_202A_206C_202B_200B_200D_200D_206F_200F_206A_200C_200F_200F_202C_202B_200D_202E(stringBuilder, ' '); - num = 631277519; - break; - case 0: - num = 631277516; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206E_200C_206E_202D_206C_200B_206B_202D_202E_202E_206A_200B_202E_200F_200B_206D_202A_206C_206F_206C_206B_200D_206E_206D_202B_200B_206F_206E_206D_200F_200E_200E_200E_200E_200F_200F_202B_202A_206F_202B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1069213863)); - _206D_200C_200C_206C_200E_200F_200E_200F_206D_206F_206A_202C_200C_202A_206D_200D_200E_206D_206F_206E_200C_200E_202A_206C_206D_200D_206D_206E_206A_202B_200B_200D_200C_202A_206B_206A_202B_200E_206B_200D_202E(builder, (object)FormattedSupported); - _206E_200C_206E_202D_206C_200B_206B_202D_202E_202E_206A_200B_202E_200F_200B_206D_202A_206C_206F_206C_206B_200D_206E_206D_202B_200B_206F_206E_206D_200F_200E_200E_200E_200E_200F_200F_202B_202A_206F_202B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2136494893)); - _206D_200C_200C_206C_200E_200F_200E_200F_206D_206F_206A_202C_200C_202A_206D_200D_200E_206D_206F_206E_200C_200E_202A_206C_206D_200D_206D_206E_206A_202B_200B_200D_200C_202A_206B_206A_202B_200E_206B_200D_202E(builder, (object)FormattedCollected); - _206E_200C_206E_202D_206C_200B_206B_202D_202E_202E_206A_200B_202E_200F_200B_206D_202A_206C_206F_206C_206B_200D_206E_206D_202B_200B_206F_206E_206D_200F_200E_200E_200E_200E_200F_200F_202B_202A_206F_202B_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1503984796)); - _206E_200C_206E_202D_206C_200B_206B_202D_202E_202E_206A_200B_202E_200F_200B_206D_202A_206C_206F_206C_206B_200D_206E_206D_202B_200B_206F_206E_206D_200F_200E_200E_200E_200E_200F_200F_202B_202A_206F_202B_202E(builder, IsSupportedComplete.ToString()); - _206E_200C_206E_202D_206C_200B_206B_202D_202E_202E_206A_200B_202E_200F_200B_206D_202A_206C_206F_206C_206B_200D_206E_206D_202B_200B_206F_206E_206D_200F_200E_200E_200E_200E_200F_200F_202B_202A_206F_202B_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1561397285)); - _206E_200C_206E_202D_206C_200B_206B_202D_202E_202E_206A_200B_202E_200F_200B_206D_202A_206C_206F_206C_206B_200D_206E_206D_202B_200B_206F_206E_206D_200F_200E_200E_200E_200E_200F_200F_202B_202A_206F_202B_202E(builder, IsCollectedComplete.ToString()); - _206E_200C_206E_202D_206C_200B_206B_202D_202E_202E_206A_200B_202E_200F_200B_206D_202A_206C_206F_206C_206B_200D_206E_206D_202B_200B_206F_206E_206D_200F_200E_200E_200E_200E_200F_200F_202B_202A_206F_202B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-748445346)); - _206E_200C_206E_202D_206C_200B_206B_202D_202E_202E_206A_200B_202E_200F_200B_206D_202A_206C_206F_206C_206B_200D_206E_206D_202B_200B_206F_206E_206D_200F_200E_200E_200E_200E_200F_200F_202B_202A_206F_202B_202E(builder, IsSupportedEmpty.ToString()); - _206E_200C_206E_202D_206C_200B_206B_202D_202E_202E_206A_200B_202E_200F_200B_206D_202A_206C_206F_206C_206B_200D_206E_206D_202B_200B_206F_206E_206D_200F_200E_200E_200E_200E_200F_200F_202B_202A_206F_202B_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1462861686)); - _206E_200C_206E_202D_206C_200B_206B_202D_202E_202E_206A_200B_202E_200F_200B_206D_202A_206C_206F_206C_206B_200D_206E_206D_202B_200B_206F_206E_206D_200F_200E_200E_200E_200E_200F_200F_202B_202A_206F_202B_202E(builder, IsCollectedEmpty.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(GatheringCounts other) - { - int num = ((!EqualityComparer<string>.Default.Equals(FormattedSupported, other.FormattedSupported)) ? 156024419 : 156024416); - while (true) - { - int num2 = num; - int num3 = 156024422; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = ((!EqualityComparer<bool>.Default.Equals(IsCollectedComplete, other.IsCollectedComplete)) ? 156024419 : 156024418); - break; - case 6: - num = ((!EqualityComparer<string>.Default.Equals(FormattedCollected, other.FormattedCollected)) ? 156024419 : 156024420); - break; - case 2: - num = ((!EqualityComparer<bool>.Default.Equals(IsSupportedComplete, other.IsSupportedComplete)) ? 156024419 : 156024422); - break; - case 4: - num = ((!EqualityComparer<bool>.Default.Equals(IsSupportedEmpty, other.IsSupportedEmpty)) ? 156024419 : 156024423); - break; - case 1: - return EqualityComparer<bool>.Default.Equals(IsCollectedEmpty, other.IsCollectedEmpty); - case 3: - num = 156024416; - break; - case 5: - return false; - } - } - } - - bool IEquatable<GatheringCounts>.Equals(GatheringCounts other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static CultureInfo _200F_202C_206F_200F_202B_202D_200E_200F_200E_206B_200F_202E_206A_200F_200D_206F_200D_202C_200B_202B_206F_206D_206E_206F_206F_206E_202E_200C_202D_202D_206F_202B_202D_206B_206E_200C_202E_206E_206D_200D_202E() - { - return CultureInfo.CurrentCulture; - } - - static string _202A_202C_202B_200D_206C_200B_206E_206A_200B_200F_200F_200F_206D_200C_206E_206F_206D_200E_200D_202C_200D_200D_206A_206E_200B_200C_206C_200E_202C_202C_200D_202C_206C_206A_202D_206E_202D_200C_200F_200E_202E(string P_0, int P_1) - { - return P_0.PadLeft(P_1); - } - - static string _206F_206A_200E_206B_202C_202D_206A_202C_200F_202E_206F_200D_202D_202E_200B_200C_206F_202A_206B_206D_202B_202D_206E_206B_202B_200E_206C_206F_200E_206F_202B_206B_206B_200B_206E_206C_200E_206F_206E_202A_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static string _206C_202C_202E_200F_206F_200E_202E_202A_200B_206D_200E_206E_202C_200B_206E_206B_200D_206D_202B_206B_202E_202B_200B_200E_206C_202D_206A_206C_202D_200E_200F_206E_200C_200F_202B_202A_200C_200C_202E_206B_202E(string P_0, int P_1) - { - return P_0.PadLeft(P_1); - } - - static StringBuilder _206A_206C_206C_206C_206F_202A_202B_206C_206D_202C_206D_200D_200E_206B_206C_200C_202A_206E_206D_206B_200B_206E_202C_200B_202B_206D_202A_206A_206F_200D_200E_202B_206F_206E_200F_206F_200E_202C_202A_200D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206E_200C_206E_202D_206C_200B_206B_202D_202E_202E_206A_200B_202E_200F_200B_206D_202A_206C_206F_206C_206B_200D_206E_206D_202B_200B_206F_206E_206D_200F_200E_200E_200E_200E_200F_200F_202B_202A_206F_202B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200F_202B_206F_206F_206A_200B_200B_202B_206C_200E_202A_206F_200B_202C_206C_200C_200E_206A_200E_206A_206F_206A_200F_200F_202B_202A_206C_202B_200B_200D_200D_206F_200F_206A_200C_200F_200F_202C_202B_200D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206B_206C_202B_202E_206A_202E_200C_200B_200E_206A_200F_202A_200E_200F_200B_202E_202A_206D_200F_202D_206D_206D_202A_206B_200E_200D_200F_200C_200F_202C_200D_202B_202B_206C_202D_200C_206B_206B_206E_206C_202E(object P_0) - { - return P_0.ToString(); - } - - static StringBuilder _206D_200C_200C_206C_200E_200F_200E_200F_206D_206F_206A_202C_200C_202A_206D_200D_200E_206D_206F_206E_200C_200E_202A_206C_206D_200D_206D_206E_206A_202B_200B_200D_200C_202A_206B_206A_202B_200E_206B_200D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static int _206B_200C_206B_202A_200E_206B_202E_206D_202A_206F_200B_200E_202E_200E_202C_202C_206A_202B_202D_200F_200E_206D_200C_202B_200F_202B_206F_202D_200D_202C_202E_202C_200F_202C_206E_206D_200F_200E_206B_202E_202E(string P_0) - { - return P_0.Length; + return "-".PadLeft(PadWidth) + " / " + "-".PadLeft(PadWidth); } } - private readonly record struct FlatRow(RowType Type, int Depth, int GroupIndex, string Label, GatheringCounts Counts, bool IsPointComplete, ushort ItemId, bool IsItemGathered) - { - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200F_206C_202D_206B_206D_200B_206C_200C_206D_206C_202E_206A_202A_206B_200B_202D_202E_202D_202B_206E_200C_206C_202E_206B_206E_202A_200E_200C_206C_202A_202B_206D_206B_202B_200D_206A_206B_200D_206A_206E_202E(); - _200F_202B_206E_206F_202B_200D_206A_202D_202E_202C_200F_200C_206B_206D_200B_202C_202E_202E_206B_200F_206B_206B_206F_202B_200F_202A_206F_200D_206B_202A_206F_206F_202C_200F_200E_202D_206E_202B_202A_200D_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2098208768)); - _200F_202B_206E_206F_202B_200D_206A_202D_202E_202C_200F_200C_206B_206D_200B_202C_202E_202E_206B_200F_206B_206B_206F_202B_200F_202A_206F_200D_206B_202A_206F_206F_202C_200F_200E_202D_206E_202B_202A_200D_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125)); - int num = ((!PrintMembers(stringBuilder)) ? (-1638947350) : (-1638947351)); - while (true) - { - int num2 = num; - int num3 = -1638947352; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - _200D_206C_206D_206C_206E_202A_202B_202D_202E_202C_202D_202E_200E_200C_202E_200E_202E_206D_202A_206C_202D_206C_206A_202B_206A_200C_202C_200F_202D_200D_200F_206C_202B_200E_206B_202A_200F_200D_202B_206F_202E(stringBuilder, '}'); - return _206C_206C_202B_202D_206D_202D_202B_202A_206D_200F_206C_202D_202D_202A_202E_206A_202E_206B_200E_202D_202D_200D_200C_202B_200D_200C_202E_200F_202D_206D_202B_200F_200D_202E_202A_202D_206D_206B_206E_202B_202E((object)stringBuilder); - case 1: - _200D_206C_206D_206C_206E_202A_202B_202D_202E_202C_202D_202E_200E_200C_202E_200E_202E_206D_202A_206C_202D_206C_206A_202B_206A_200C_202C_200F_202D_200D_200F_206C_202B_200E_206B_202A_200F_200D_202B_206F_202E(stringBuilder, ' '); - num = -1638947350; - break; - case 0: - num = -1638947351; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200F_202B_206E_206F_202B_200D_206A_202D_202E_202C_200F_200C_206B_206D_200B_202C_202E_202E_206B_200F_206B_206B_206F_202B_200F_202A_206F_200D_206B_202A_206F_206F_202C_200F_200E_202D_206E_202B_202A_200D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-217898061)); - _200F_202B_206E_206F_202B_200D_206A_202D_202E_202C_200F_200C_206B_206D_200B_202C_202E_202E_206B_200F_206B_206B_206F_202B_200F_202A_206F_200D_206B_202A_206F_206F_202C_200F_200E_202D_206E_202B_202A_200D_202E(builder, Type.ToString()); - _200F_202B_206E_206F_202B_200D_206A_202D_202E_202C_200F_200C_206B_206D_200B_202C_202E_202E_206B_200F_206B_206B_206F_202B_200F_202A_206F_200D_206B_202A_206F_206F_202C_200F_200E_202D_206E_202B_202A_200D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1014922524)); - _200F_202B_206E_206F_202B_200D_206A_202D_202E_202C_200F_200C_206B_206D_200B_202C_202E_202E_206B_200F_206B_206B_206F_202B_200F_202A_206F_200D_206B_202A_206F_206F_202C_200F_200E_202D_206E_202B_202A_200D_202E(builder, Depth.ToString()); - _200F_202B_206E_206F_202B_200D_206A_202D_202E_202C_200F_200C_206B_206D_200B_202C_202E_202E_206B_200F_206B_206B_206F_202B_200F_202A_206F_200D_206B_202A_206F_206F_202C_200F_200E_202D_206E_202B_202A_200D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1647495557)); - _200F_202B_206E_206F_202B_200D_206A_202D_202E_202C_200F_200C_206B_206D_200B_202C_202E_202E_206B_200F_206B_206B_206F_202B_200F_202A_206F_200D_206B_202A_206F_206F_202C_200F_200E_202D_206E_202B_202A_200D_202E(builder, GroupIndex.ToString()); - _200F_202B_206E_206F_202B_200D_206A_202D_202E_202C_200F_200C_206B_206D_200B_202C_202E_202E_206B_200F_206B_206B_206F_202B_200F_202A_206F_200D_206B_202A_206F_206F_202C_200F_200E_202D_206E_202B_202A_200D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-882901215)); - _202C_200F_206A_202A_202B_202D_202C_202D_200D_200F_200E_206C_200F_206C_202C_206A_206E_202A_200E_202E_200D_202D_206B_206B_200F_206A_200E_206C_202C_206C_206E_200C_206B_202A_206E_202C_202A_206E_200D_206F_202E(builder, (object)Label); - _200F_202B_206E_206F_202B_200D_206A_202D_202E_202C_200F_200C_206B_206D_200B_202C_202E_202E_206B_200F_206B_206B_206F_202B_200F_202A_206F_200D_206B_202A_206F_206F_202C_200F_200E_202D_206E_202B_202A_200D_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1999051001)); - _200F_202B_206E_206F_202B_200D_206A_202D_202E_202C_200F_200C_206B_206D_200B_202C_202E_202E_206B_200F_206B_206B_206F_202B_200F_202A_206F_200D_206B_202A_206F_206F_202C_200F_200E_202D_206E_202B_202A_200D_202E(builder, Counts.ToString()); - _200F_202B_206E_206F_202B_200D_206A_202D_202E_202C_200F_200C_206B_206D_200B_202C_202E_202E_206B_200F_206B_206B_206F_202B_200F_202A_206F_200D_206B_202A_206F_206F_202C_200F_200E_202D_206E_202B_202A_200D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(237855300)); - _200F_202B_206E_206F_202B_200D_206A_202D_202E_202C_200F_200C_206B_206D_200B_202C_202E_202E_206B_200F_206B_206B_206F_202B_200F_202A_206F_200D_206B_202A_206F_206F_202C_200F_200E_202D_206E_202B_202A_200D_202E(builder, IsPointComplete.ToString()); - _200F_202B_206E_206F_202B_200D_206A_202D_202E_202C_200F_200C_206B_206D_200B_202C_202E_202E_206B_200F_206B_206B_206F_202B_200F_202A_206F_200D_206B_202A_206F_206F_202C_200F_200E_202D_206E_202B_202A_200D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-727021518)); - _200F_202B_206E_206F_202B_200D_206A_202D_202E_202C_200F_200C_206B_206D_200B_202C_202E_202E_206B_200F_206B_206B_206F_202B_200F_202A_206F_200D_206B_202A_206F_206F_202C_200F_200E_202D_206E_202B_202A_200D_202E(builder, ItemId.ToString()); - _200F_202B_206E_206F_202B_200D_206A_202D_202E_202C_200F_200C_206B_206D_200B_202C_202E_202E_206B_200F_206B_206B_206F_202B_200F_202A_206F_200D_206B_202A_206F_206F_202C_200F_200E_202D_206E_202B_202A_200D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2079981210)); - _200F_202B_206E_206F_202B_200D_206A_202D_202E_202C_200F_200C_206B_206D_200B_202C_202E_202E_206B_200F_206B_206B_206F_202B_200F_202A_206F_200D_206B_202A_206F_206F_202C_200F_200E_202D_206E_202B_202A_200D_202E(builder, IsItemGathered.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(FlatRow other) - { - int num = ((!EqualityComparer<RowType>.Default.Equals(Type, other.Type)) ? (-1674576019) : (-1674576028)); - while (true) - { - int num2 = num; - int num3 = -1674576027; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - num = -1674576028; - break; - case 1: - num = ((!EqualityComparer<int>.Default.Equals(Depth, other.Depth)) ? (-1674576019) : (-1674576030)); - break; - case 3: - num = ((!EqualityComparer<bool>.Default.Equals(IsPointComplete, other.IsPointComplete)) ? (-1674576019) : (-1674576031)); - break; - case 2: - num = ((!EqualityComparer<string>.Default.Equals(Label, other.Label)) ? (-1674576019) : (-1674576027)); - break; - case 7: - num = ((!EqualityComparer<int>.Default.Equals(GroupIndex, other.GroupIndex)) ? (-1674576019) : (-1674576025)); - break; - case 4: - num = ((!EqualityComparer<ushort>.Default.Equals(ItemId, other.ItemId)) ? (-1674576019) : (-1674576032)); - break; - case 8: - return false; - case 0: - num = ((!EqualityComparer<GatheringCounts>.Default.Equals(Counts, other.Counts)) ? (-1674576019) : (-1674576026)); - break; - case 5: - return EqualityComparer<bool>.Default.Equals(IsItemGathered, other.IsItemGathered); - } - } - } - - bool IEquatable<FlatRow>.Equals(FlatRow other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _200F_206C_202D_206B_206D_200B_206C_200C_206D_206C_202E_206A_202A_206B_200B_202D_202E_202D_202B_206E_200C_206C_202E_206B_206E_202A_200E_200C_206C_202A_202B_206D_206B_202B_200D_206A_206B_200D_206A_206E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200F_202B_206E_206F_202B_200D_206A_202D_202E_202C_200F_200C_206B_206D_200B_202C_202E_202E_206B_200F_206B_206B_206F_202B_200F_202A_206F_200D_206B_202A_206F_206F_202C_200F_200E_202D_206E_202B_202A_200D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200D_206C_206D_206C_206E_202A_202B_202D_202E_202C_202D_202E_200E_200C_202E_200E_202E_206D_202A_206C_202D_206C_206A_202B_206A_200C_202C_200F_202D_200D_200F_206C_202B_200E_206B_202A_200F_200D_202B_206F_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206C_206C_202B_202D_206D_202D_202B_202A_206D_200F_206C_202D_202D_202A_202E_206A_202E_206B_200E_202D_202D_200D_200C_202B_200D_200C_202E_200F_202D_206D_202B_200F_200D_202E_202A_202D_206D_206B_206E_202B_202E(object P_0) - { - return P_0.ToString(); - } - - static StringBuilder _202C_200F_206A_202A_202B_202D_202C_202D_200D_200F_200E_206C_200F_206C_202C_206A_206E_202A_200E_202E_200D_202D_206B_206B_200F_206A_200E_206C_202C_206C_206E_200C_206B_202A_206E_202C_202A_206E_200D_206F_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - } + private readonly record struct FlatRow(RowType Type, int Depth, int GroupIndex, string Label, GatheringCounts Counts, bool IsPointComplete, ushort ItemId, bool IsItemGathered); private delegate byte GetIsGatheringItemGatheredDelegate(ushort item); private sealed record ExpansionPoints(EExpansionVersion ExpansionVersion, List<TerritoryPoints> PointsByTerritories) { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202C_206F_200D_200C_206F_206A_206E_202C_202A_200B_200F_202E_200E_202D_206F_202C_206B_202A_200F_200F_200F_206D_200B_206C_206A_200F_202A_206C_200D_202A_206D_200F_206F_200B_206E_206A_206D_206A_202B_200E_202E(typeof(ExpansionPoints).TypeHandle); - } - } - public int TotalItems { get; set; } public int TotalPoints { get; set; } @@ -368,164 +61,10 @@ internal sealed class GatheringJournalComponent public int CompletedItems { get; set; } public int CompletedPoints { get; set; } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206F_200F_206C_206E_200E_202C_206C_202A_202C_206F_206B_200E_206B_200D_206C_200E_200B_202E_206F_206B_202A_202A_202C_200F_206D_200B_200C_206D_202B_206E_202E_200F_200C_202D_202B_206F_206B_200F_206A_206D_202E(); - _206E_206E_206A_200C_200D_202D_200F_202C_200D_206B_200F_202B_206B_200E_202C_200C_202E_202E_200E_206E_206B_202D_200B_202E_206F_206B_206B_206C_200D_200C_200B_206D_200B_202D_206A_202D_206F_200D_202A_202E_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1433999488)); - _206E_206E_206A_200C_200D_202D_200F_202C_200D_206B_200F_202B_206B_200E_202C_200C_202E_202E_200E_206E_206B_202D_200B_202E_206F_206B_206B_206C_200D_200C_200B_206D_200B_202D_206A_202D_206F_200D_202A_202E_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1344697862)); - int num = ((!PrintMembers(stringBuilder)) ? (-127138192) : (-127138189)); - while (true) - { - int num2 = num; - int num3 = -127138191; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -127138189; - break; - case 2: - _202C_200B_206E_202D_206D_202C_206B_206F_202D_202B_200C_200C_206E_200C_202B_202D_200E_202A_206F_202C_206A_202C_206F_200F_200D_200F_200B_206C_200E_200D_200D_206F_202C_200F_200F_200F_206A_202B_202C_202D_202E(stringBuilder, ' '); - num = -127138192; - break; - case 1: - _202C_200B_206E_202D_206D_202C_206B_206F_202D_202B_200C_200C_206E_200C_202B_202D_200E_202A_206F_202C_206A_202C_206F_200F_200D_200F_200B_206C_200E_200D_200D_206F_202C_200F_200F_200F_206A_202B_202C_202D_202E(stringBuilder, '}'); - return _200F_202E_200C_206A_202E_200E_206E_200B_206C_200B_202C_206E_206D_202D_200B_202A_200B_202B_200E_200D_206E_200C_206A_206A_206C_206B_202E_202B_200C_202B_206F_200D_200B_202A_206C_200F_200C_206C_202E_202B_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206D_206A_200D_200C_202A_202B_206B_206E_202D_206D_202D_200C_206F_206E_202C_200B_202E_202D_200B_206D_200B_200D_206F_202B_206A_202C_206E_202A_202D_206E_206D_200F_200E_202B_202E_200E_206F_206C_202E_202A_202E(); - _206E_206E_206A_200C_200D_202D_200F_202C_200D_206B_200F_202B_206B_200E_202C_200C_202E_202E_200E_206E_206B_202D_200B_202E_206F_206B_206B_206C_200D_200C_200B_206D_200B_202D_206A_202D_206F_200D_202A_202E_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1921573758)); - _206E_206E_206A_200C_200D_202D_200F_202C_200D_206B_200F_202B_206B_200E_202C_200C_202E_202E_200E_206E_206B_202D_200B_202E_206F_206B_206B_206C_200D_200C_200B_206D_200B_202D_206A_202D_206F_200D_202A_202E_202E(builder, ExpansionVersion.ToString()); - _206E_206E_206A_200C_200D_202D_200F_202C_200D_206B_200F_202B_206B_200E_202C_200C_202E_202E_200E_206E_206B_202D_200B_202E_206F_206B_206B_206C_200D_200C_200B_206D_200B_202D_206A_202D_206F_200D_202A_202E_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1746556757)); - _206A_200B_202E_202B_202A_206D_202B_206F_202B_206F_206A_202D_200C_202B_200C_202B_202A_202E_200F_200B_200B_206F_206E_200B_206F_202D_200B_206E_200B_206E_202C_202C_202D_206E_206D_206A_206B_202B_200B_200D_202E(builder, (object)PointsByTerritories); - _206E_206E_206A_200C_200D_202D_200F_202C_200D_206B_200F_202B_206B_200E_202C_200C_202E_202E_200E_206E_206B_202D_200B_202E_206F_206B_206B_206C_200D_200C_200B_206D_200B_202D_206A_202D_206F_200D_202A_202E_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(19786210)); - _206E_206E_206A_200C_200D_202D_200F_202C_200D_206B_200F_202B_206B_200E_202C_200C_202E_202E_200E_206E_206B_202D_200B_202E_206F_206B_206B_206C_200D_200C_200B_206D_200B_202D_206A_202D_206F_200D_202A_202E_202E(builder, TotalItems.ToString()); - _206E_206E_206A_200C_200D_202D_200F_202C_200D_206B_200F_202B_206B_200E_202C_200C_202E_202E_200E_206E_206B_202D_200B_202E_206F_206B_206B_206C_200D_200C_200B_206D_200B_202D_206A_202D_206F_200D_202A_202E_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(606702436)); - _206E_206E_206A_200C_200D_202D_200F_202C_200D_206B_200F_202B_206B_200E_202C_200C_202E_202E_200E_206E_206B_202D_200B_202E_206F_206B_206B_206C_200D_200C_200B_206D_200B_202D_206A_202D_206F_200D_202A_202E_202E(builder, TotalPoints.ToString()); - _206E_206E_206A_200C_200D_202D_200F_202C_200D_206B_200F_202B_206B_200E_202C_200C_202E_202E_200E_206E_206B_202D_200B_202E_206F_206B_206B_206C_200D_200C_200B_206D_200B_202D_206A_202D_206F_200D_202A_202E_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1780143284)); - _206E_206E_206A_200C_200D_202D_200F_202C_200D_206B_200F_202B_206B_200E_202C_200C_202E_202E_200E_206E_206B_202D_200B_202E_206F_206B_206B_206C_200D_200C_200B_206D_200B_202D_206A_202D_206F_200D_202A_202E_202E(builder, CompletedItems.ToString()); - _206E_206E_206A_200C_200D_202D_200F_202C_200D_206B_200F_202B_206B_200E_202C_200C_202E_202E_200E_206E_206B_202D_200B_202E_206F_206B_206B_206C_200D_200C_200B_206D_200B_202D_206A_202D_206F_200D_202A_202E_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1774551967)); - _206E_206E_206A_200C_200D_202D_200F_202C_200D_206B_200F_202B_206B_200E_202C_200C_202E_202E_200E_206E_206B_202D_200B_202E_206F_206B_206B_206C_200D_200C_200B_206D_200B_202D_206A_202D_206F_200D_202A_202E_202E(builder, CompletedPoints.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(ExpansionPoints? other) - { - int num = (((object)this == other) ? (-1546294236) : (-1546294235)); - while (true) - { - int num2 = num; - int num3 = -1546294227; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return EqualityComparer<int>.Default.Equals(CompletedPoints, other.CompletedPoints); - case 0: - num = ((!EqualityComparer<EExpansionVersion>.Default.Equals(ExpansionVersion, other.ExpansionVersion)) ? (-1546294226) : (-1546294229)); - break; - case 7: - num = -1546294235; - break; - case 9: - return true; - case 6: - num = ((!EqualityComparer<List<TerritoryPoints>>.Default.Equals(PointsByTerritories, other.PointsByTerritories)) ? (-1546294226) : (-1546294232)); - break; - case 10: - num = ((!EqualityComparer<int>.Default.Equals(CompletedItems, other.CompletedItems)) ? (-1546294226) : (-1546294228)); - break; - case 8: - num = (((object)other == null) ? (-1546294226) : (-1546294225)); - break; - case 4: - num = ((!EqualityComparer<int>.Default.Equals(TotalPoints, other.TotalPoints)) ? (-1546294226) : (-1546294233)); - break; - case 2: - num = ((!_200E_206B_200F_202B_200B_202C_202C_200C_206B_200E_206F_206F_206B_202C_202C_206B_206B_200B_206D_200D_206E_202D_200F_206F_206F_200B_202D_202E_202A_202E_206A_202C_200B_202A_202D_202D_206F_206A_206E_206E_202E(EqualityContract, other.EqualityContract)) ? (-1546294226) : (-1546294227)); - break; - case 3: - return false; - case 5: - num = ((!EqualityComparer<int>.Default.Equals(TotalItems, other.TotalItems)) ? (-1546294226) : (-1546294231)); - break; - } - } - } - - bool IEquatable<ExpansionPoints>.Equals(ExpansionPoints? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202C_206F_200D_200C_206F_206A_206E_202C_202A_200B_200F_202E_200E_202D_206F_202C_206B_202A_200F_200F_200F_206D_200B_206C_206A_200F_202A_206C_200D_202A_206D_200F_206F_200B_206E_206A_206D_206A_202B_200E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206F_200F_206C_206E_200E_202C_206C_202A_202C_206F_206B_200E_206B_200D_206C_200E_200B_202E_206F_206B_202A_202A_202C_200F_206D_200B_200C_206D_202B_206E_202E_200F_200C_202D_202B_206F_206B_200F_206A_206D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206E_206E_206A_200C_200D_202D_200F_202C_200D_206B_200F_202B_206B_200E_202C_200C_202E_202E_200E_206E_206B_202D_200B_202E_206F_206B_206B_206C_200D_200C_200B_206D_200B_202D_206A_202D_206F_200D_202A_202E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202C_200B_206E_202D_206D_202C_206B_206F_202D_202B_200C_200C_206E_200C_202B_202D_200E_202A_206F_202C_206A_202C_206F_200F_200D_200F_200B_206C_200E_200D_200D_206F_202C_200F_200F_200F_206A_202B_202C_202D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200F_202E_200C_206A_202E_200E_206E_200B_206C_200B_202C_206E_206D_202D_200B_202A_200B_202B_200E_200D_206E_200C_206A_206A_206C_206B_202E_202B_200C_202B_206F_200D_200B_202A_206C_200F_200C_206C_202E_202B_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206D_206A_200D_200C_202A_202B_206B_206E_202D_206D_202D_200C_206F_206E_202C_200B_202E_202D_200B_206D_200B_200D_206F_202B_206A_202C_206E_202A_202D_206E_206D_200F_200E_202B_202E_200E_206F_206C_202E_202A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206A_200B_202E_202B_202A_206D_202B_206F_202B_206F_206A_202D_200C_202B_200C_202B_202A_202E_200F_200B_200B_206F_206E_200B_206F_202D_200B_206E_200B_206E_202C_202C_202D_206E_206D_206A_206B_202B_200B_200D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200E_206B_200F_202B_200B_202C_202C_200C_206B_200E_206F_206F_206B_202C_202C_206B_206B_200B_206D_200D_206E_202D_200F_206F_206F_200B_202D_202E_202A_202E_206A_202C_200B_202A_202D_202D_206F_206A_206E_206E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } } private sealed record TerritoryPoints(ushort TerritoryType, string TerritoryName, List<DefaultGatheringPoint> Points) { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206E_206C_200C_206B_200E_200E_202A_206B_206A_202D_206C_200F_202D_206F_200D_206E_206D_200F_206F_206F_206C_206E_206B_206F_200D_206B_202C_202C_206F_206F_202B_202D_200D_202C_206F_202E_202C_200C_202D_200D_202E(typeof(TerritoryPoints).TypeHandle); - } - } - public int TotalItems { get; set; } public int TotalPoints => Points.Count; @@ -534,1411 +73,30 @@ internal sealed class GatheringJournalComponent public int CompletedPoints { get; set; } - [MethodImpl(MethodImplOptions.NoInlining)] public string ToFriendlyString() { - int num = ((!_206E_200B_202A_202A_202D_202C_200E_202C_206D_206B_200B_202A_206B_202A_202B_200F_200E_202B_202C_206C_200B_200C_202D_206B_202E_206C_202B_200C_200C_200D_202B_202B_200E_202B_206E_200C_200E_202A_200D_200D_202E(TerritoryName)) ? (-372970510) : (-372970511)); - while (true) + if (string.IsNullOrEmpty(TerritoryName)) { - int num2 = num; - int num3 = -372970509; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004b; - case 2: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(6, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1282129484)); - defaultInterpolatedStringHandler.AppendFormatted(TerritoryType); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - case 1: - return TerritoryName; - } - continue; - IL_004b: - num = -372970511; + return $"??? ({TerritoryType})"; } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200E_206B_202E_206C_200C_202D_206B_200D_206D_200B_202C_200E_200F_200D_206B_202D_206A_200D_206C_202D_206B_202A_202E_200C_206E_202E_202E_206A_200D_206D_206B_206D_202E_200D_202C_200B_206E_202D_202E_200E_202E(); - _202E_206F_200C_200B_202C_202A_200E_206B_202E_206D_206C_202D_200E_200F_202A_206E_200C_200B_200E_206E_200B_202D_200B_206B_206E_200B_202C_200C_200C_206E_206C_202D_202C_200E_206C_202D_206F_206C_202C_200C_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1982297905)); - _202E_206F_200C_200B_202C_202A_200E_206B_202E_206D_206C_202D_200E_200F_202A_206E_200C_200B_200E_206E_200B_202D_200B_206B_206E_200B_202C_200C_200C_206E_206C_202D_202C_200E_206C_202D_206F_206C_202C_200C_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125)); - int num = ((!PrintMembers(stringBuilder)) ? (-1682111640) : (-1682111639)); - while (true) - { - int num2 = num; - int num3 = -1682111640; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _202B_206D_206C_206A_202B_206A_206F_200B_206F_202A_202A_202B_200C_200F_200D_202D_200F_202C_206E_200F_200B_206E_202A_206F_202E_202D_206D_202A_202D_200E_206F_202B_206B_206D_206F_206E_202B_200B_206B_200D_202E(stringBuilder, '}'); - return _202C_202C_206A_202C_206A_206E_200C_202E_206D_200E_202D_202E_200B_202B_206D_202D_202B_200B_200B_206F_202A_202E_202D_202B_200D_202C_202B_206A_200F_206F_200D_202C_200D_206F_206B_200B_206F_202E_202B_202A_202E((object)stringBuilder); - case 1: - _202B_206D_206C_206A_202B_206A_206F_200B_206F_202A_202A_202B_200C_200F_200D_202D_200F_202C_206E_200F_200B_206E_202A_206F_202E_202D_206D_202A_202D_200E_206F_202B_206B_206D_206F_206E_202B_200B_206B_200D_202E(stringBuilder, ' '); - num = -1682111640; - break; - case 2: - num = -1682111639; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200C_206D_206C_202E_206F_206E_206A_206A_200E_200E_202E_200F_202E_206E_206E_200C_202A_206F_202E_200B_200E_200D_202E_200E_202E_206E_202C_206A_200C_206E_200F_202A_202C_200E_206F_206A_202B_206F_200F_206F_202E(); - _202E_206F_200C_200B_202C_202A_200E_206B_202E_206D_206C_202D_200E_200F_202A_206E_200C_200B_200E_206E_200B_202D_200B_206B_206E_200B_202C_200C_200C_206E_206C_202D_202C_200E_206C_202D_206F_206C_202C_200C_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1717589508)); - _202E_206F_200C_200B_202C_202A_200E_206B_202E_206D_206C_202D_200E_200F_202A_206E_200C_200B_200E_206E_200B_202D_200B_206B_206E_200B_202C_200C_200C_206E_206C_202D_202C_200E_206C_202D_206F_206C_202C_200C_202E(builder, TerritoryType.ToString()); - _202E_206F_200C_200B_202C_202A_200E_206B_202E_206D_206C_202D_200E_200F_202A_206E_200C_200B_200E_206E_200B_202D_200B_206B_206E_200B_202C_200C_200C_206E_206C_202D_202C_200E_206C_202D_206F_206C_202C_200C_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1928556849)); - _202E_200D_206D_200D_206D_202D_202B_202D_206F_202D_202B_200F_202E_200C_202D_200D_200D_200C_206D_200E_206E_206E_200B_202D_200D_206F_202E_206F_206A_206A_200D_202E_202D_200C_202A_206F_202D_202E_206D_202C_202E(builder, (object)TerritoryName); - _202E_206F_200C_200B_202C_202A_200E_206B_202E_206D_206C_202D_200E_200F_202A_206E_200C_200B_200E_206E_200B_202D_200B_206B_206E_200B_202C_200C_200C_206E_206C_202D_202C_200E_206C_202D_206F_206C_202C_200C_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1371274133)); - _202E_200D_206D_200D_206D_202D_202B_202D_206F_202D_202B_200F_202E_200C_202D_200D_200D_200C_206D_200E_206E_206E_200B_202D_200D_206F_202E_206F_206A_206A_200D_202E_202D_200C_202A_206F_202D_202E_206D_202C_202E(builder, (object)Points); - _202E_206F_200C_200B_202C_202A_200E_206B_202E_206D_206C_202D_200E_200F_202A_206E_200C_200B_200E_206E_200B_202D_200B_206B_206E_200B_202C_200C_200C_206E_206C_202D_202C_200E_206C_202D_206F_206C_202C_200C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-708467607)); - _202E_206F_200C_200B_202C_202A_200E_206B_202E_206D_206C_202D_200E_200F_202A_206E_200C_200B_200E_206E_200B_202D_200B_206B_206E_200B_202C_200C_200C_206E_206C_202D_202C_200E_206C_202D_206F_206C_202C_200C_202E(builder, TotalItems.ToString()); - _202E_206F_200C_200B_202C_202A_200E_206B_202E_206D_206C_202D_200E_200F_202A_206E_200C_200B_200E_206E_200B_202D_200B_206B_206E_200B_202C_200C_200C_206E_206C_202D_202C_200E_206C_202D_206F_206C_202C_200C_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1253835803)); - _202E_206F_200C_200B_202C_202A_200E_206B_202E_206D_206C_202D_200E_200F_202A_206E_200C_200B_200E_206E_200B_202D_200B_206B_206E_200B_202C_200C_200C_206E_206C_202D_202C_200E_206C_202D_206F_206C_202C_200C_202E(builder, TotalPoints.ToString()); - _202E_206F_200C_200B_202C_202A_200E_206B_202E_206D_206C_202D_200E_200F_202A_206E_200C_200B_200E_206E_200B_202D_200B_206B_206E_200B_202C_200C_200C_206E_206C_202D_202C_200E_206C_202D_206F_206C_202C_200C_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1273608271)); - _202E_206F_200C_200B_202C_202A_200E_206B_202E_206D_206C_202D_200E_200F_202A_206E_200C_200B_200E_206E_200B_202D_200B_206B_206E_200B_202C_200C_200C_206E_206C_202D_202C_200E_206C_202D_206F_206C_202C_200C_202E(builder, CompletedItems.ToString()); - _202E_206F_200C_200B_202C_202A_200E_206B_202E_206D_206C_202D_200E_200F_202A_206E_200C_200B_200E_206E_200B_202D_200B_206B_206E_200B_202C_200C_200C_206E_206C_202D_202C_200E_206C_202D_206F_206C_202C_200C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1790706375)); - _202E_206F_200C_200B_202C_202A_200E_206B_202E_206D_206C_202D_200E_200F_202A_206E_200C_200B_200E_206E_200B_202D_200B_206B_206E_200B_202C_200C_200C_206E_206C_202D_202C_200E_206C_202D_206F_206C_202C_200C_202E(builder, CompletedPoints.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(TerritoryPoints? other) - { - int num = (((object)this == other) ? (-862053346) : (-862053348)); - while (true) - { - int num2 = num; - int num3 = -862053350; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = ((!EqualityComparer<List<DefaultGatheringPoint>>.Default.Equals(Points, other.Points)) ? (-862053345) : (-862053349)); - break; - case 3: - num = ((!_200C_200F_202B_202D_202B_202B_202B_202D_206D_200B_200B_200D_206B_202B_206F_200B_206B_200C_200F_202A_206B_202D_202C_200C_202D_200D_206E_202B_200E_200D_202B_206E_200B_206B_200D_206E_202C_202C_206D_200E_202E(EqualityContract, other.EqualityContract)) ? (-862053345) : (-862053358)); - break; - case 8: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryType, other.TerritoryType)) ? (-862053345) : (-862053357)); - break; - case 9: - num = ((!EqualityComparer<string>.Default.Equals(TerritoryName, other.TerritoryName)) ? (-862053345) : (-862053352)); - break; - case 1: - num = ((!EqualityComparer<int>.Default.Equals(TotalItems, other.TotalItems)) ? (-862053345) : (-862053360)); - break; - case 0: - return EqualityComparer<int>.Default.Equals(CompletedPoints, other.CompletedPoints); - case 4: - return true; - case 5: - return false; - case 7: - num = -862053348; - break; - case 10: - num = ((!EqualityComparer<int>.Default.Equals(CompletedItems, other.CompletedItems)) ? (-862053345) : (-862053350)); - break; - case 6: - num = (((object)other == null) ? (-862053345) : (-862053351)); - break; - } - } - } - - bool IEquatable<TerritoryPoints>.Equals(TerritoryPoints? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206E_206C_200C_206B_200E_200E_202A_206B_206A_202D_206C_200F_202D_206F_200D_206E_206D_200F_206F_206F_206C_206E_206B_206F_200D_206B_202C_202C_206F_206F_202B_202D_200D_202C_206F_202E_202C_200C_202D_200D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static bool _206E_200B_202A_202A_202D_202C_200E_202C_206D_206B_200B_202A_206B_202A_202B_200F_200E_202B_202C_206C_200B_200C_202D_206B_202E_206C_202B_200C_200C_200D_202B_202B_200E_202B_206E_200C_200E_202A_200D_200D_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static StringBuilder _200E_206B_202E_206C_200C_202D_206B_200D_206D_200B_202C_200E_200F_200D_206B_202D_206A_200D_206C_202D_206B_202A_202E_200C_206E_202E_202E_206A_200D_206D_206B_206D_202E_200D_202C_200B_206E_202D_202E_200E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202E_206F_200C_200B_202C_202A_200E_206B_202E_206D_206C_202D_200E_200F_202A_206E_200C_200B_200E_206E_200B_202D_200B_206B_206E_200B_202C_200C_200C_206E_206C_202D_202C_200E_206C_202D_206F_206C_202C_200C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202B_206D_206C_206A_202B_206A_206F_200B_206F_202A_202A_202B_200C_200F_200D_202D_200F_202C_206E_200F_200B_206E_202A_206F_202E_202D_206D_202A_202D_200E_206F_202B_206B_206D_206F_206E_202B_200B_206B_200D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202C_202C_206A_202C_206A_206E_200C_202E_206D_200E_202D_202E_200B_202B_206D_202D_202B_200B_200B_206F_202A_202E_202D_202B_200D_202C_202B_206A_200F_206F_200D_202C_200D_206F_206B_200B_206F_202E_202B_202A_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200C_206D_206C_202E_206F_206E_206A_206A_200E_200E_202E_200F_202E_206E_206E_200C_202A_206F_202E_200B_200E_200D_202E_200E_202E_206E_202C_206A_200C_206E_200F_202A_202C_200E_206F_206A_202B_206F_200F_206F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202E_200D_206D_200D_206D_202D_202B_202D_206F_202D_202B_200F_202E_200C_202D_200D_200D_200C_206D_200E_206E_206E_200B_202D_200D_206F_202E_206F_206A_206A_200D_202E_202D_200C_202A_206F_202D_202E_206D_202C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200C_200F_202B_202D_202B_202B_202B_202D_206D_200B_200B_200D_206B_202B_206F_200B_206B_200C_200F_202A_206B_202D_202C_200C_202D_200D_206E_202B_200E_200D_202B_206E_200B_206B_200D_206E_202C_202C_206D_200E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; + return TerritoryName; } } private sealed record DefaultGatheringPoint(GatheringPointId Id, EClassJob ClassJob, byte Level, List<ushort> GatheringItemIds, EExpansionVersion Expansion, ushort TerritoryType, string? TerritoryName, string? PlaceName) { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202E_200D_206E_202C_206F_200F_200E_200D_206F_206F_202C_202A_206E_202D_200D_206F_206D_200C_206C_202C_206F_206B_200F_206E_202D_206A_200B_202A_200C_200D_202C_206B_200B_202A_206C_202E_206C_200D_200E_202B_202E(typeof(DefaultGatheringPoint).TypeHandle); - } - } - public int TotalItems { get; set; } public int CompletedItems { get; set; } public bool IsComplete { get; set; } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200F_200C_200D_206A_200D_202A_200D_202A_206E_202D_206D_200B_202E_206A_206D_202B_202B_200D_202B_200C_202B_202E_200D_206A_200C_202C_200E_202D_206E_206E_206C_206B_202A_202B_206F_200C_202B_206A_202B_200C_202E(); - _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(697029583)); - _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(117284107)); - int num = ((!PrintMembers(stringBuilder)) ? (-1428012309) : (-1428012310)); - while (true) - { - int num2 = num; - int num3 = -1428012309; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -1428012310; - break; - case 0: - _200D_200C_202D_200C_206F_206F_202B_202E_206D_200F_206D_200D_206F_206E_202D_202D_200D_202E_206D_202E_206B_200C_206B_206B_206A_202B_202C_206B_202B_202D_206B_202C_206B_200F_206F_200E_206A_200E_206F_200D_202E(stringBuilder, '}'); - return _200C_206F_206B_206B_206F_200B_202B_206A_200F_202E_202E_206B_206B_200E_206A_206F_206D_200F_200D_202D_202C_202A_200F_200C_206C_200D_206F_202B_206C_202D_200D_200F_200B_206D_200C_200C_206A_206A_206E_200C_202E((object)stringBuilder); - case 1: - _200D_200C_202D_200C_206F_206F_202B_202E_206D_200F_206D_200D_206F_206E_202D_202D_200D_202E_206D_202E_206B_200C_206B_206B_206A_202B_202C_206B_202B_202D_206B_202C_206B_200F_206F_200E_206A_200E_206F_200D_202E(stringBuilder, ' '); - num = -1428012309; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202A_200E_202E_206F_206F_206C_206A_206D_202D_200F_200C_200C_200C_202D_206A_202E_200E_206C_200F_200B_206F_206B_206B_206C_206E_200D_200F_206D_200D_200B_206B_202B_206B_200D_200D_200C_206E_200F_202E_202A_202E(); - _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2012349732)); - _206E_200B_206C_200D_202E_206E_200D_202D_200F_202C_202E_200D_202A_200C_200D_200D_206F_200F_200F_206B_202C_202E_200E_206D_200C_202B_202D_202D_200D_206D_200E_206F_200E_206E_206F_200D_202A_200F_202A_206B_202E(builder, (object)Id); - _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1160325293)); - _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(builder, ClassJob.ToString()); - _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2059092762)); - _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(builder, Level.ToString()); - _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1694264994)); - _206E_200B_206C_200D_202E_206E_200D_202D_200F_202C_202E_200D_202A_200C_200D_200D_206F_200F_200F_206B_202C_202E_200E_206D_200C_202B_202D_202D_200D_206D_200E_206F_200E_206E_206F_200D_202A_200F_202A_206B_202E(builder, (object)GatheringItemIds); - _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1684057181)); - _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(builder, Expansion.ToString()); - _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1364954486)); - _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(builder, TerritoryType.ToString()); - _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-282533646)); - _206E_200B_206C_200D_202E_206E_200D_202D_200F_202C_202E_200D_202A_200C_200D_200D_206F_200F_200F_206B_202C_202E_200E_206D_200C_202B_202D_202D_200D_206D_200E_206F_200E_206E_206F_200D_202A_200F_202A_206B_202E(builder, (object)TerritoryName); - _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1894371280)); - _206E_200B_206C_200D_202E_206E_200D_202D_200F_202C_202E_200D_202A_200C_200D_200D_206F_200F_200F_206B_202C_202E_200E_206D_200C_202B_202D_202D_200D_206D_200E_206F_200E_206E_206F_200D_202A_200F_202A_206B_202E(builder, (object)PlaceName); - _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1350395082)); - _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(builder, TotalItems.ToString()); - _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1518544200)); - _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(builder, CompletedItems.ToString()); - _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1873552259)); - _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(builder, IsComplete.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(DefaultGatheringPoint? other) - { - int num = (((object)this == other) ? (-1315173192) : (-1315173194)); - while (true) - { - int num2 = num; - int num3 = -1315173199; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 11: - num = ((!EqualityComparer<List<ushort>>.Default.Equals(GatheringItemIds, other.GatheringItemIds)) ? (-1315173198) : (-1315173187)); - break; - case 7: - num = (((object)other == null) ? (-1315173198) : (-1315173191)); - break; - case 13: - num = ((!EqualityComparer<EClassJob>.Default.Equals(ClassJob, other.ClassJob)) ? (-1315173198) : (-1315173186)); - break; - case 8: - num = ((!_202B_206F_200C_206C_200F_206C_202B_206B_202D_200E_200D_206C_206F_206A_206B_202E_206B_202D_206D_200C_202B_200B_200F_206D_206B_206B_206A_206B_202C_200C_206C_206F_202D_202B_202D_202C_202C_202E_206F_202E(EqualityContract, other.EqualityContract)) ? (-1315173198) : (-1315173200)); - break; - case 9: - return true; - case 0: - num = -1315173194; - break; - case 10: - num = ((!EqualityComparer<string>.Default.Equals(PlaceName, other.PlaceName)) ? (-1315173198) : (-1315173196)); - break; - case 5: - num = ((!EqualityComparer<int>.Default.Equals(TotalItems, other.TotalItems)) ? (-1315173198) : (-1315173185)); - break; - case 6: - num = ((!EqualityComparer<string>.Default.Equals(TerritoryName, other.TerritoryName)) ? (-1315173198) : (-1315173189)); - break; - case 3: - return false; - case 4: - return EqualityComparer<bool>.Default.Equals(IsComplete, other.IsComplete); - case 2: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryType, other.TerritoryType)) ? (-1315173198) : (-1315173193)); - break; - case 15: - num = ((!EqualityComparer<byte>.Default.Equals(Level, other.Level)) ? (-1315173198) : (-1315173190)); - break; - case 14: - num = ((!EqualityComparer<int>.Default.Equals(CompletedItems, other.CompletedItems)) ? (-1315173198) : (-1315173195)); - break; - case 12: - num = ((!EqualityComparer<EExpansionVersion>.Default.Equals(Expansion, other.Expansion)) ? (-1315173198) : (-1315173197)); - break; - case 1: - num = ((!EqualityComparer<GatheringPointId>.Default.Equals(Id, other.Id)) ? (-1315173198) : (-1315173188)); - break; - } - } - } - - bool IEquatable<DefaultGatheringPoint>.Equals(DefaultGatheringPoint? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202E_200D_206E_202C_206F_200F_200E_200D_206F_206F_202C_202A_206E_202D_200D_206F_206D_200C_206C_202C_206F_206B_200F_206E_202D_206A_200B_202A_200C_200D_202C_206B_200B_202A_206C_202E_206C_200D_200E_202B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200F_200C_200D_206A_200D_202A_200D_202A_206E_202D_206D_200B_202E_206A_206D_202B_202B_200D_202B_200C_202B_202E_200D_206A_200C_202C_200E_202D_206E_206E_206C_206B_202A_202B_206F_200C_202B_206A_202B_200C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200D_202B_206C_202A_206C_206C_202A_200B_200F_206A_200D_200D_200B_202C_206A_206B_206B_206A_202B_200B_206D_202C_200E_206A_200F_202D_206B_206F_200B_202A_200B_206E_206D_202D_206D_206A_202E_200D_206B_202D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200D_200C_202D_200C_206F_206F_202B_202E_206D_200F_206D_200D_206F_206E_202D_202D_200D_202E_206D_202E_206B_200C_206B_206B_206A_202B_202C_206B_202B_202D_206B_202C_206B_200F_206F_200E_206A_200E_206F_200D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200C_206F_206B_206B_206F_200B_202B_206A_200F_202E_202E_206B_206B_200E_206A_206F_206D_200F_200D_202D_202C_202A_200F_200C_206C_200D_206F_202B_206C_202D_200D_200F_200B_206D_200C_200C_206A_206A_206E_200C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202A_200E_202E_206F_206F_206C_206A_206D_202D_200F_200C_200C_200C_202D_206A_202E_200E_206C_200F_200B_206F_206B_206B_206C_206E_200D_200F_206D_200D_200B_206B_202B_206B_200D_200D_200C_206E_200F_202E_202A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206E_200B_206C_200D_202E_206E_200D_202D_200F_202C_202E_200D_202A_200C_200D_200D_206F_200F_200F_206B_202C_202E_200E_206D_200C_202B_202D_202D_200D_206D_200E_206F_200E_206E_206F_200D_202A_200F_202A_206B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202B_206F_200C_206C_200F_206C_202B_206B_202D_200E_200D_206C_206F_206A_206B_202E_206B_202D_206D_200C_202B_200B_200F_206D_206B_206B_206A_206B_202C_200C_206C_206F_202D_202B_202D_202C_202C_202E_206F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } } - private sealed record FilteredExpansion(ExpansionPoints Expansion, List<FilteredTerritory> Territories) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206D_200F_200F_202E_202B_200E_200D_202E_202C_206B_200F_200D_206B_202B_200B_200C_200D_202A_200D_200E_206F_202D_200C_200B_202A_200C_202B_202D_202A_206E_202D_202C_202C_200D_202C_206F_200F_200B_200E_206B_202E(typeof(FilteredExpansion).TypeHandle); - } - } + private sealed record FilteredExpansion(ExpansionPoints Expansion, List<FilteredTerritory> Territories); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202D_200B_200E_202D_202D_200C_200B_206D_206D_206F_200C_200D_202E_206C_202B_206E_200D_202C_206A_200B_200D_200F_200D_206A_200C_202B_202E_200D_200B_206D_206B_202C_206C_206B_206E_206F_200C_202C_202C_200F_202E(); - _200E_206D_202D_200E_206A_200E_206F_206C_206C_200E_202B_202E_200E_206C_202E_200C_202C_206A_200B_206D_202E_202A_206F_206D_202C_202B_206C_200E_202C_202E_202C_206C_200C_202A_200F_200E_206B_202B_200C_202B_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1411755612)); - _200E_206D_202D_200E_206A_200E_206F_206C_206C_200E_202B_202E_200E_206C_202E_200C_202C_206A_200B_206D_202E_202A_206F_206D_202C_202B_206C_200E_202C_202E_202C_206C_200C_202A_200F_200E_206B_202B_200C_202B_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1344697862)); - int num = ((!PrintMembers(stringBuilder)) ? (-655734955) : (-655734956)); - while (true) - { - int num2 = num; - int num3 = -655734955; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -655734956; - break; - case 0: - _206F_200F_200B_200D_202C_206A_202C_206A_206C_202E_202B_200C_202C_202C_206E_202B_202A_206F_206F_202A_202B_206D_200E_206B_206E_206C_206B_202B_202C_200F_202B_206C_206F_200F_200F_200E_206E_206F_202D_202E(stringBuilder, '}'); - return _200E_200B_200B_200F_206B_200E_202C_200C_200E_200B_202D_202C_206C_202D_202E_202B_202E_202E_200B_202C_206D_202D_200E_206A_202D_202D_206E_202E_206C_206B_206A_200F_200E_202C_200E_200F_202B_200B_206A_200F_202E((object)stringBuilder); - case 1: - _206F_200F_200B_200D_202C_206A_202C_206A_206C_202E_202B_200C_202C_202C_206E_202B_202A_206F_206F_202A_202B_206D_200E_206B_206E_206C_206B_202B_202C_200F_202B_206C_206F_200F_200F_200E_206E_206F_202D_202E(stringBuilder, ' '); - num = -655734955; - break; - } - } - } + private sealed record FilteredTerritory(TerritoryPoints Territory, List<FilteredGatheringPoint> GatheringPoints); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200F_206F_206B_202E_202E_202E_206B_206D_206D_200D_200F_200F_200D_200D_200B_206E_206A_200E_202D_202D_200E_206D_202D_206E_200C_206F_206F_206F_200C_200D_200D_200D_200E_206C_202C_202A_200B_200B_200B_200F_202E(); - _200E_206D_202D_200E_206A_200E_206F_206C_206C_200E_202B_202E_200E_206C_202E_200C_202C_206A_200B_206D_202E_202A_206F_206D_202C_202B_206C_200E_202C_202E_202C_206C_200C_202A_200F_200E_206B_202B_200C_202B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-243680172)); - _200D_206A_202B_200D_200D_206F_206F_200B_206A_206D_206C_206C_200D_206F_202A_200E_202C_206C_202A_206C_200B_200C_206C_202E_200D_206F_202C_200B_206F_206F_200C_206C_202E_206D_202A_200F_202D_200E_200C_206F_202E(builder, (object)Expansion); - _200E_206D_202D_200E_206A_200E_206F_206C_206C_200E_202B_202E_200E_206C_202E_200C_202C_206A_200B_206D_202E_202A_206F_206D_202C_202B_206C_200E_202C_202E_202C_206C_200C_202A_200F_200E_206B_202B_200C_202B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1921737749)); - _200D_206A_202B_200D_200D_206F_206F_200B_206A_206D_206C_206C_200D_206F_202A_200E_202C_206C_202A_206C_200B_200C_206C_202E_200D_206F_202C_200B_206F_206F_200C_206C_202E_206D_202A_200F_202D_200E_200C_206F_202E(builder, (object)Territories); - return true; - } - - [CompilerGenerated] - public bool Equals(FilteredExpansion? other) - { - int num = (((object)this == other) ? (-801738585) : (-801738586)); - while (true) - { - int num2 = num; - int num3 = -801738585; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 0: - return true; - case 1: - num = (((object)other == null) ? (-801738587) : (-801738591)); - break; - case 4: - num = ((!EqualityComparer<ExpansionPoints>.Default.Equals(Expansion, other.Expansion)) ? (-801738587) : (-801738590)); - break; - case 3: - num = -801738586; - break; - case 5: - return EqualityComparer<List<FilteredTerritory>>.Default.Equals(Territories, other.Territories); - case 6: - num = ((!_200B_200B_206B_200C_202A_206F_202B_202E_206D_202A_200C_206F_206C_202C_202B_200D_202D_202B_206B_202D_206B_202C_200F_200E_200C_202E_206F_206B_200B_200E_200F_202B_206B_206C_206B_200E_200F_206D_200C_200D_202E(EqualityContract, other.EqualityContract)) ? (-801738587) : (-801738589)); - break; - } - } - } - - bool IEquatable<FilteredExpansion>.Equals(FilteredExpansion? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206D_200F_200F_202E_202B_200E_200D_202E_202C_206B_200F_200D_206B_202B_200B_200C_200D_202A_200D_200E_206F_202D_200C_200B_202A_200C_202B_202D_202A_206E_202D_202C_202C_200D_202C_206F_200F_200B_200E_206B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202D_200B_200E_202D_202D_200C_200B_206D_206D_206F_200C_200D_202E_206C_202B_206E_200D_202C_206A_200B_200D_200F_200D_206A_200C_202B_202E_200D_200B_206D_206B_202C_206C_206B_206E_206F_200C_202C_202C_200F_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200E_206D_202D_200E_206A_200E_206F_206C_206C_200E_202B_202E_200E_206C_202E_200C_202C_206A_200B_206D_202E_202A_206F_206D_202C_202B_206C_200E_202C_202E_202C_206C_200C_202A_200F_200E_206B_202B_200C_202B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206F_200F_200B_200D_202C_206A_202C_206A_206C_202E_202B_200C_202C_202C_206E_202B_202A_206F_206F_202A_202B_206D_200E_206B_206E_206C_206B_202B_202C_200F_202B_206C_206F_200F_200F_200E_206E_206F_202D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200E_200B_200B_200F_206B_200E_202C_200C_200E_200B_202D_202C_206C_202D_202E_202B_202E_202E_200B_202C_206D_202D_200E_206A_202D_202D_206E_202E_206C_206B_206A_200F_200E_202C_200E_200F_202B_200B_206A_200F_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200F_206F_206B_202E_202E_202E_206B_206D_206D_200D_200F_200F_200D_200D_200B_206E_206A_200E_202D_202D_200E_206D_202D_206E_200C_206F_206F_206F_200C_200D_200D_200D_200E_206C_202C_202A_200B_200B_200B_200F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200D_206A_202B_200D_200D_206F_206F_200B_206A_206D_206C_206C_200D_206F_202A_200E_202C_206C_202A_206C_200B_200C_206C_202E_200D_206F_202C_200B_206F_206F_200C_206C_202E_206D_202A_200F_202D_200E_200C_206F_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200B_200B_206B_200C_202A_206F_202B_202E_206D_202A_200C_206F_206C_202C_202B_200D_202D_202B_206B_202D_206B_202C_200F_200E_200C_202E_206F_206B_200B_200E_200F_202B_206B_206C_206B_200E_200F_206D_200C_200D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - private sealed record FilteredTerritory(TerritoryPoints Territory, List<FilteredGatheringPoint> GatheringPoints) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202A_202C_202B_202D_200F_202A_206B_202E_202B_200F_200C_206F_200F_206E_206B_200B_200B_202E_202C_200F_206B_200B_200E_206D_206F_200B_200C_202C_206C_206C_206C_202C_202A_206C_206C_206E_206C_206E_200C_202E_202E(typeof(FilteredTerritory).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206E_206D_200F_206D_200C_206E_202B_206A_200F_206B_206E_206A_202C_206A_202B_200C_206E_202B_202B_200B_202C_200C_202C_202E_206B_202B_206B_202D_200F_200C_202A_206A_202B_206D_200E_206D_200C_202B_200C_200C_202E(); - _206A_202A_200D_202C_206E_200B_200B_206A_200C_200E_200B_202C_206C_200F_200D_202B_202C_202D_206F_206C_200F_206B_206C_200C_206F_200F_200C_202B_200D_202A_202B_206A_202D_202C_206A_206B_200F_202B_200D_200E_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2065026974)); - _206A_202A_200D_202C_206E_200B_200B_206A_200C_200E_200B_202C_206C_200F_200D_202B_202C_202D_206F_206C_200F_206B_206C_200C_206F_200F_200C_202B_200D_202A_202B_206A_202D_202C_206A_206B_200F_202B_200D_200E_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(117284107)); - int num = ((!PrintMembers(stringBuilder)) ? (-747900744) : (-747900741)); - while (true) - { - int num2 = num; - int num3 = -747900742; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - _206F_206B_202E_202A_200E_206E_202A_200D_202B_202E_202A_206A_206B_206D_202D_202D_200C_206C_206F_200D_200C_202C_206F_200F_202A_206C_202C_206F_202A_206D_202B_206A_206B_206A_200F_202C_202A_206B_206C_202E_202E(stringBuilder, '}'); - return _202D_202E_200C_200E_202C_206D_200D_200F_202E_206E_206D_206A_200B_200E_200D_202E_202B_206E_206B_206B_200C_206D_206F_202A_200C_206E_206A_202D_202B_206C_206D_202A_200F_202B_200E_200F_202D_200B_206C_202E((object)stringBuilder); - case 1: - _206F_206B_202E_202A_200E_206E_202A_200D_202B_202E_202A_206A_206B_206D_202D_202D_200C_206C_206F_200D_200C_202C_206F_200F_202A_206C_202C_206F_202A_206D_202B_206A_206B_206A_200F_202C_202A_206B_206C_202E_202E(stringBuilder, ' '); - num = -747900744; - break; - case 0: - num = -747900741; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202B_206E_200B_200D_202A_206F_202A_200E_202C_206B_206D_206D_200E_202A_206A_202C_206A_202C_202D_202B_206C_200C_206A_202A_206A_200F_202A_202A_200B_206D_200C_202B_200B_200B_202B_200F_206A_206A_206B_202A_202E(); - _206A_202A_200D_202C_206E_200B_200B_206A_200C_200E_200B_202C_206C_200F_200D_202B_202C_202D_206F_206C_200F_206B_206C_200C_206F_200F_200C_202B_200D_202A_202B_206A_202D_202C_206A_206B_200F_202B_200D_200E_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-20142916)); - _206A_206D_206C_202D_200B_200C_200E_202E_202B_206D_202C_206F_202B_202D_200B_200E_202C_200B_206C_206E_202A_206C_206C_200D_202A_200D_206C_202E_202B_202C_200B_200E_200B_200D_206E_206E_206C_200D_206A_206D_202E(builder, (object)Territory); - _206A_202A_200D_202C_206E_200B_200B_206A_200C_200E_200B_202C_206C_200F_200D_202B_202C_202D_206F_206C_200F_206B_206C_200C_206F_200F_200C_202B_200D_202A_202B_206A_202D_202C_206A_206B_200F_202B_200D_200E_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2098415863)); - _206A_206D_206C_202D_200B_200C_200E_202E_202B_206D_202C_206F_202B_202D_200B_200E_202C_200B_206C_206E_202A_206C_206C_200D_202A_200D_206C_202E_202B_202C_200B_200E_200B_200D_206E_206E_206C_200D_206A_206D_202E(builder, (object)GatheringPoints); - return true; - } - - [CompilerGenerated] - public bool Equals(FilteredTerritory? other) - { - int num = (((object)this == other) ? 295431495 : 295431493); - while (true) - { - int num2 = num; - int num3 = 295431492; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return true; - case 0: - return false; - case 2: - num = 295431493; - break; - case 6: - num = ((!EqualityComparer<TerritoryPoints>.Default.Equals(Territory, other.Territory)) ? 295431492 : 295431488); - break; - case 4: - return EqualityComparer<List<FilteredGatheringPoint>>.Default.Equals(GatheringPoints, other.GatheringPoints); - case 1: - num = (((object)other == null) ? 295431492 : 295431489); - break; - case 5: - num = ((!_200D_206C_200B_200C_206D_202A_200B_202E_200B_200B_200E_202B_200D_200D_206B_200B_206D_202B_206D_200D_202E_200E_202B_202C_206F_206C_206B_206C_202A_206A_202D_202A_202B_202A_202D_200D_200B_200F_206E_206E_202E(EqualityContract, other.EqualityContract)) ? 295431492 : 295431490); - break; - } - } - } - - bool IEquatable<FilteredTerritory>.Equals(FilteredTerritory? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202A_202C_202B_202D_200F_202A_206B_202E_202B_200F_200C_206F_200F_206E_206B_200B_200B_202E_202C_200F_206B_200B_200E_206D_206F_200B_200C_202C_206C_206C_206C_202C_202A_206C_206C_206E_206C_206E_200C_202E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206E_206D_200F_206D_200C_206E_202B_206A_200F_206B_206E_206A_202C_206A_202B_200C_206E_202B_202B_200B_202C_200C_202C_202E_206B_202B_206B_202D_200F_200C_202A_206A_202B_206D_200E_206D_200C_202B_200C_200C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206A_202A_200D_202C_206E_200B_200B_206A_200C_200E_200B_202C_206C_200F_200D_202B_202C_202D_206F_206C_200F_206B_206C_200C_206F_200F_200C_202B_200D_202A_202B_206A_202D_202C_206A_206B_200F_202B_200D_200E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206F_206B_202E_202A_200E_206E_202A_200D_202B_202E_202A_206A_206B_206D_202D_202D_200C_206C_206F_200D_200C_202C_206F_200F_202A_206C_202C_206F_202A_206D_202B_206A_206B_206A_200F_202C_202A_206B_206C_202E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202D_202E_200C_200E_202C_206D_200D_200F_202E_206E_206D_206A_200B_200E_200D_202E_202B_206E_206B_206B_200C_206D_206F_202A_200C_206E_206A_202D_202B_206C_206D_202A_200F_202B_200E_200F_202D_200B_206C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202B_206E_200B_200D_202A_206F_202A_200E_202C_206B_206D_206D_200E_202A_206A_202C_206A_202C_202D_202B_206C_200C_206A_202A_206A_200F_202A_202A_200B_206D_200C_202B_200B_200B_202B_200F_206A_206A_206B_202A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206A_206D_206C_202D_200B_200C_200E_202E_202B_206D_202C_206F_202B_202D_200B_200E_202C_200B_206C_206E_202A_206C_206C_200D_202A_200D_206C_202E_202B_202C_200B_200E_200B_200D_206E_206E_206C_200D_206A_206D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200D_206C_200B_200C_206D_202A_200B_202E_200B_200B_200E_202B_200D_200D_206B_200B_206D_202B_206D_200D_202E_200E_202B_202C_206F_206C_206B_206C_202A_206A_202D_202A_202B_202A_202D_200D_200B_200F_206E_206E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - private sealed record FilteredGatheringPoint(DefaultGatheringPoint Point, List<ushort> GatheringItemIds) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206E_206F_200C_200E_200E_200E_206D_206B_200D_206A_202D_200E_202D_200F_200C_202A_200D_202B_206D_202D_206A_206F_200D_202A_200B_202D_202D_206E_200B_206E_206F_200E_202B_200B_206D_206E_206A_200F_206E_202E(typeof(FilteredGatheringPoint).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200C_200D_200E_206C_206F_206C_202E_200B_202B_200D_206A_202A_202E_202E_206D_206A_202D_202E_206A_200B_206A_200F_202C_202A_206C_202B_206B_200B_202C_206A_206F_200B_206D_202B_200E_202B_202C_202A_200B_202E_202E(); - _202B_202B_202E_206D_200D_206D_200C_202B_206F_206B_206D_202E_200E_202A_200B_206D_202A_200D_200B_202A_200E_206A_202C_200F_200C_206C_206B_206F_206C_206A_206D_200C_202D_206E_206B_206A_200B_202C_200E_202D_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(974624529)); - _202B_202B_202E_206D_200D_206D_200C_202B_206F_206B_206D_202E_200E_202A_200B_206D_202A_200D_200B_202A_200E_206A_202C_200F_200C_206C_206B_206F_206C_206A_206D_200C_202D_206E_206B_206A_200B_202C_200E_202D_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(556540328)); - int num = ((!PrintMembers(stringBuilder)) ? (-1211955640) : (-1211955637)); - while (true) - { - int num2 = num; - int num3 = -1211955638; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - _202E_206D_200B_206E_206D_200D_202E_206E_200F_200B_202E_206B_200C_206C_206A_206E_202E_202D_202E_200B_206C_206A_200E_206F_202B_200D_202E_200D_202C_200E_206D_202A_206E_202B_200B_206B_202E_202C_202D_200E_202E(stringBuilder, '}'); - return _206E_206F_202C_202A_202E_206D_202E_202C_202A_206B_200B_202E_202B_206F_202E_200C_206A_206F_202E_206D_206A_202A_206B_200B_202E_200F_202A_200E_206B_206A_202A_206D_202C_200E_206D_200E_206B_200E_202D_200C_202E((object)stringBuilder); - case 1: - _202E_206D_200B_206E_206D_200D_202E_206E_200F_200B_202E_206B_200C_206C_206A_206E_202E_202D_202E_200B_206C_206A_200E_206F_202B_200D_202E_200D_202C_200E_206D_202A_206E_202B_200B_206B_202E_202C_202D_200E_202E(stringBuilder, ' '); - num = -1211955640; - break; - case 0: - num = -1211955637; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206B_200C_206C_200D_206F_206C_202E_206C_200F_202E_200B_206C_202E_202C_200B_200C_202B_206F_202C_202D_200F_200F_206C_206E_206C_202C_200B_202C_202A_202E_200C_202D_200D_206A_206C_200D_202D_206C_200E_206A_202E(); - _202B_202B_202E_206D_200D_206D_200C_202B_206F_206B_206D_202E_200E_202A_200B_206D_202A_200D_200B_202A_200E_206A_202C_200F_200C_206C_206B_206F_206C_206A_206D_200C_202D_206E_206B_206A_200B_202C_200E_202D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1934952826)); - _200B_202B_202E_200F_200F_206D_202C_206B_206A_200B_200F_200C_206C_202C_206A_206B_202A_200F_200D_202E_202A_200F_206D_200B_200B_200D_206F_202D_202E_206C_200B_200C_206C_200D_200F_202D_202E_206A_202E_206E_202E(builder, (object)Point); - _202B_202B_202E_206D_200D_206D_200C_202B_206F_206B_206D_202E_200E_202A_200B_206D_202A_200D_200B_202A_200E_206A_202C_200F_200C_206C_206B_206F_206C_206A_206D_200C_202D_206E_206B_206A_200B_202C_200E_202D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1694264994)); - _200B_202B_202E_200F_200F_206D_202C_206B_206A_200B_200F_200C_206C_202C_206A_206B_202A_200F_200D_202E_202A_200F_206D_200B_200B_200D_206F_202D_202E_206C_200B_200C_206C_200D_200F_202D_202E_206A_202E_206E_202E(builder, (object)GatheringItemIds); - return true; - } - - [CompilerGenerated] - public bool Equals(FilteredGatheringPoint? other) - { - int num = (((object)this == other) ? 971204107 : 971204106); - while (true) - { - int num2 = num; - int num3 = 971204105; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = ((!_206D_200F_200D_202A_206A_202B_202A_200F_206F_206C_200C_202D_200B_200E_202A_202C_202E_206A_200E_206F_200E_202D_202C_206F_202A_206B_202A_200C_206E_202A_200D_200F_202C_200F_206E_200C_206E_200D_200D_206C_202E(EqualityContract, other.EqualityContract)) ? 971204105 : 971204109); - break; - case 6: - return EqualityComparer<List<ushort>>.Default.Equals(GatheringItemIds, other.GatheringItemIds); - case 4: - num = ((!EqualityComparer<DefaultGatheringPoint>.Default.Equals(Point, other.Point)) ? 971204105 : 971204111); - break; - case 2: - return true; - case 3: - num = (((object)other == null) ? 971204105 : 971204104); - break; - case 0: - return false; - case 5: - num = 971204106; - break; - } - } - } - - bool IEquatable<FilteredGatheringPoint>.Equals(FilteredGatheringPoint? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206E_206F_200C_200E_200E_200E_206D_206B_200D_206A_202D_200E_202D_200F_200C_202A_200D_202B_206D_202D_206A_206F_200D_202A_200B_202D_202D_206E_200B_206E_206F_200E_202B_200B_206D_206E_206A_200F_206E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200C_200D_200E_206C_206F_206C_202E_200B_202B_200D_206A_202A_202E_202E_206D_206A_202D_202E_206A_200B_206A_200F_202C_202A_206C_202B_206B_200B_202C_206A_206F_200B_206D_202B_200E_202B_202C_202A_200B_202E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202B_202B_202E_206D_200D_206D_200C_202B_206F_206B_206D_202E_200E_202A_200B_206D_202A_200D_200B_202A_200E_206A_202C_200F_200C_206C_206B_206F_206C_206A_206D_200C_202D_206E_206B_206A_200B_202C_200E_202D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202E_206D_200B_206E_206D_200D_202E_206E_200F_200B_202E_206B_200C_206C_206A_206E_202E_202D_202E_200B_206C_206A_200E_206F_202B_200D_202E_200D_202C_200E_206D_202A_206E_202B_200B_206B_202E_202C_202D_200E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206E_206F_202C_202A_202E_206D_202E_202C_202A_206B_200B_202E_202B_206F_202E_200C_206A_206F_202E_206D_206A_202A_206B_200B_202E_200F_202A_200E_206B_206A_202A_206D_202C_200E_206D_200E_206B_200E_202D_200C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206B_200C_206C_200D_206F_206C_202E_206C_200F_202E_200B_206C_202E_202C_200B_200C_202B_206F_202C_202D_200F_200F_206C_206E_206C_202C_200B_202C_202A_202E_200C_202D_200D_206A_206C_200D_202D_206C_200E_206A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200B_202B_202E_200F_200F_206D_202C_206B_206A_200B_200F_200C_206C_202C_206A_206B_202A_200F_200D_202E_202A_200F_206D_200B_200B_200D_206F_202D_202E_206C_200B_200C_206C_200D_200F_202D_202E_206A_202E_206E_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206D_200F_200D_202A_206A_202B_202A_200F_206F_206C_200C_202D_200B_200E_202A_202C_202E_206A_200E_206F_200E_202D_202C_206F_202A_206B_202A_200C_206E_202A_200D_200F_202C_200F_206E_200C_206E_200D_200D_206C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<GatheringLeveRoute, bool> _003C_003E9__15_0; - - public static Func<RowRef<GatheringPoint>, bool> _003C_003E9__15_29; - - public static Func<GatheringLeveRoute, IEnumerable<_003C_003Ef__AnonymousType4<uint, uint>>> _003C_003E9__15_1; - - public static Func<_003C_003Ef__AnonymousType4<uint, uint>, uint> _003C_003E9__15_2; - - public static Func<IGrouping<uint, _003C_003Ef__AnonymousType4<uint, uint>>, uint> _003C_003E9__15_3; - - public static Func<_003C_003Ef__AnonymousType4<uint, uint>, uint> _003C_003E9__15_31; - - public static Func<IGrouping<uint, _003C_003Ef__AnonymousType4<uint, uint>>, List<uint>> _003C_003E9__15_4; - - public static Func<Leve, bool> _003C_003E9__15_5; - - public static Func<GatheringLeve?, bool> _003C_003E9__15_7; - - public static Func<GatheringLeve, IEnumerable<RowRef<GatheringLeveRoute>>> _003C_003E9__15_8; - - public static Func<RowRef<GatheringLeveRoute>, bool> _003C_003E9__15_9; - - public static Func<GatheringItem, bool> _003C_003E9__15_11; - - public static Func<_003C_003Ef__AnonymousType5<int, string>, bool> _003C_003E9__15_13; - - public static Func<_003C_003Ef__AnonymousType5<int, string>, int> _003C_003E9__15_14; - - public static Func<_003C_003Ef__AnonymousType5<int, string>, string> _003C_003E9__15_15; - - public static Func<GatheringPoint, bool> _003C_003E9__15_16; - - public static Func<GatheringPoint, bool> _003C_003E9__15_17; - - public static Func<GatheringPoint, uint> _003C_003E9__15_18; - - public static Func<RowRef, bool> _003C_003E9__15_32; - - public static Func<RowRef, ushort> _003C_003E9__15_33; - - public static Func<GatheringPoint, _003C_003Ef__AnonymousType6<uint, DefaultGatheringPoint>> _003C_003E9__15_19; - - public static Func<_003C_003Ef__AnonymousType6<uint, DefaultGatheringPoint>, bool> _003C_003E9__15_20; - - public static Func<DefaultGatheringPoint, bool> _003C_003E9__15_22; - - public static Func<DefaultGatheringPoint, bool> _003C_003E9__15_23; - - public static Func<DefaultGatheringPoint, bool> _003C_003E9__15_24; - - public static Func<DefaultGatheringPoint, bool> _003C_003E9__15_25; - - public static Func<DefaultGatheringPoint, EExpansionVersion> _003C_003E9__15_26; - - public static Func<DefaultGatheringPoint, _003C_003Ef__AnonymousType7<ushort, string>> _003C_003E9__15_34; - - public static Func<IGrouping<_003C_003Ef__AnonymousType7<ushort, string>, DefaultGatheringPoint>, TerritoryPoints> _003C_003E9__15_35; - - public static Func<TerritoryPoints, bool> _003C_003E9__15_36; - - public static Func<IGrouping<EExpansionVersion, DefaultGatheringPoint>, ExpansionPoints> _003C_003E9__15_27; - - public static Func<ExpansionPoints, EExpansionVersion> _003C_003E9__15_28; - - public static Predicate<string> _003C_003E9__19_0; - - public static Func<FilteredExpansion, bool> _003C_003E9__19_3; - - public static Func<FilteredTerritory, bool> _003C_003E9__20_1; - - public static Func<FilteredTerritory, FilteredTerritory> _003C_003E9__20_2; - - public static Predicate<string> _003C_003E9__21_1; - - public static Func<FilteredGatheringPoint, bool> _003C_003E9__21_3; - - public static Func<FilteredGatheringPoint, FilteredGatheringPoint> _003C_003E9__21_4; - - public static Func<ushort, bool> _003C_003E9__23_7; - - public static Func<DefaultGatheringPoint, int> _003C_003E9__23_4; - - public static Func<DefaultGatheringPoint, int> _003C_003E9__23_5; - - public static Func<DefaultGatheringPoint, bool> _003C_003E9__23_6; - - public static Func<TerritoryPoints, int> _003C_003E9__23_0; - - public static Func<TerritoryPoints, int> _003C_003E9__23_1; - - public static Func<TerritoryPoints, int> _003C_003E9__23_2; - - public static Func<TerritoryPoints, int> _003C_003E9__23_3; - - internal bool _003C_002Ector_003Eb__15_0(GatheringLeveRoute x) - { - return x.GatheringPoint[0].RowId != 0; - } - - internal IEnumerable<_003C_003Ef__AnonymousType4<uint, uint>> _003C_002Ector_003Eb__15_1(GatheringLeveRoute x) - { - _003C_003Ec__DisplayClass15_1 CS_0024_003C_003E8__locals2 = new _003C_003Ec__DisplayClass15_1 - { - x = x - }; - return from y in CS_0024_003C_003E8__locals2.x.GatheringPoint - where y.RowId != 0 - select new - { - RouteId = CS_0024_003C_003E8__locals2.x.RowId, - GatheringPointId = y.RowId - }; - } - - internal bool _003C_002Ector_003Eb__15_29(RowRef<GatheringPoint> y) - { - return y.RowId != 0; - } - - internal uint _003C_002Ector_003Eb__15_2(_003C_003Ef__AnonymousType4<uint, uint> x) - { - return x.RouteId; - } - - internal uint _003C_002Ector_003Eb__15_3(IGrouping<uint, _003C_003Ef__AnonymousType4<uint, uint>> x) - { - return x.Key; - } - - internal List<uint> _003C_002Ector_003Eb__15_4(IGrouping<uint, _003C_003Ef__AnonymousType4<uint, uint>> x) - { - return x.Select(y => y.GatheringPointId).ToList(); - } - - internal uint _003C_002Ector_003Eb__15_31(_003C_003Ef__AnonymousType4<uint, uint> y) - { - return y.GatheringPointId; - } - - internal bool _003C_002Ector_003Eb__15_5(Leve x) - { - return x.RowId != 0; - } - - internal bool _003C_002Ector_003Eb__15_7(GatheringLeve? x) - { - return x.HasValue; - } - - internal IEnumerable<RowRef<GatheringLeveRoute>> _003C_002Ector_003Eb__15_8(GatheringLeve x) - { - return x.Route; - } - - internal bool _003C_002Ector_003Eb__15_9(RowRef<GatheringLeveRoute> y) - { - return y.RowId != 0; - } - - internal bool _003C_002Ector_003Eb__15_11(GatheringItem x) - { - int num = ((x.RowId == 0) ? (-1719090108) : (-1719090105)); - while (true) - { - int num2 = num; - int num3 = -1719090107; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0049; - case 2: - return x.GatheringItemLevel.RowId != 0; - case 1: - return false; - } - continue; - IL_0049: - num = -1719090105; - } - } - - internal bool _003C_002Ector_003Eb__15_13(_003C_003Ef__AnonymousType5<int, string> x) - { - return !_206B_206A_202A_206E_202C_200D_200F_206B_206E_206F_202B_202C_202B_206A_202C_200E_200E_206C_200F_202E_206A_206A_202B_202D_200E_202C_206A_206F_202C_206F_200C_200F_202D_206B_200F_202E_200F_206D_202B_206A_202E(x.Name); - } - - internal int _003C_002Ector_003Eb__15_14(_003C_003Ef__AnonymousType5<int, string> x) - { - return x.GatheringItemId; - } - - internal string _003C_002Ector_003Eb__15_15(_003C_003Ef__AnonymousType5<int, string> x) - { - return x.Name; - } - - internal bool _003C_002Ector_003Eb__15_16(GatheringPoint x) - { - return x.GatheringPointBase.RowId != 0; - } - - internal bool _003C_002Ector_003Eb__15_17(GatheringPoint x) - { - uint rowId = x.GatheringPointBase.RowId; - int num = ((rowId < 653) ? (-647467167) : (-647467166)); - bool result = default(bool); - while (true) - { - int num2 = num; - int num3 = -647467168; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = -647467166; - break; - case 4: - return result; - case 0: - result = false; - num = -647467164; - break; - case 1: - result = true; - num = -647467164; - break; - case 2: - num = ((rowId <= 680) ? (-647467168) : (-647467167)); - break; - } - } - } - - internal uint _003C_002Ector_003Eb__15_18(GatheringPoint x) - { - return x.GatheringPointBase.RowId; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal _003C_003Ef__AnonymousType6<uint, DefaultGatheringPoint> _003C_002Ector_003Eb__15_19(GatheringPoint x) - { - uint rowId = x.RowId; - GatheringPointId id = _202B_206E_202C_202E_206B_200B_206F_206E_206B_202A_206B_202E_206D_202E_200E_206F_206F_206F_206A_206C_200C_206C_206A_202D_200F_206A_200F_206D_206F_206D_202C_202E_206D_202C_200C_200E_206C_202B_202C_206E_202E((ushort)x.GatheringPointBase.RowId); - uint rowId2 = x.GatheringPointBase.Value.GatheringType.RowId; - int num = ((rowId2 <= 1) ? (-232485595) : (-232485593)); - EClassJob eClassJob = default(EClassJob); - while (true) - { - int num2 = num; - int num3 = -232485595; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - { - EClassJob classJob = eClassJob; - byte gatheringLevel = x.GatheringPointBase.Value.GatheringLevel; - List<ushort> gatheringItemIds = (from y in x.GatheringPointBase.Value.Item - where y.RowId != 0 - select (ushort)y.RowId).ToList(); - byte expansion = ((byte?)x.TerritoryType.ValueNullable?.ExVersion.RowId) ?? byte.MaxValue; - ushort territoryType = (ushort)x.TerritoryType.RowId; - string territoryName = x.TerritoryType.ValueNullable?.PlaceName.ValueNullable?.Name.ToString(); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(3, 2); - defaultInterpolatedStringHandler.AppendFormatted(x.GatheringPointBase.RowId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1687715325)); - defaultInterpolatedStringHandler.AppendFormatted(x.PlaceName.ValueNullable?.Name); - return new - { - GatheringPointId = rowId, - Point = new DefaultGatheringPoint(id, classJob, gatheringLevel, gatheringItemIds, (EExpansionVersion)expansion, territoryType, territoryName, defaultInterpolatedStringHandler.ToStringAndClear()) - }; - } - case 1: - eClassJob = EClassJob.Botanist; - num = -232485599; - break; - case 3: - num = -232485593; - break; - case 2: - num3 = 2; - num4 = (int)rowId2; - num = (((uint)(~(~num4 + num3)) <= 1u) ? (-232485596) : (-232485597)); - break; - case 0: - eClassJob = EClassJob.Miner; - num = -232485599; - break; - case 6: - num = -232485600; - break; - case 5: - eClassJob = EClassJob.Fisher; - num = -232485599; - break; - } - } - } - - internal bool _003C_002Ector_003Eb__15_32(RowRef y) - { - return y.RowId != 0; - } - - internal ushort _003C_002Ector_003Eb__15_33(RowRef y) - { - return (ushort)y.RowId; - } - - internal bool _003C_002Ector_003Eb__15_20(_003C_003Ef__AnonymousType6<uint, DefaultGatheringPoint> x) - { - return x.Point.ClassJob != EClassJob.Fisher; - } - - internal bool _003C_002Ector_003Eb__15_22(DefaultGatheringPoint x) - { - return x != null; - } - - internal bool _003C_002Ector_003Eb__15_23(DefaultGatheringPoint x) - { - return x.Expansion != (EExpansionVersion)255; - } - - internal bool _003C_002Ector_003Eb__15_24(DefaultGatheringPoint x) - { - return x.GatheringItemIds.Count > 0; - } - - internal bool _003C_002Ector_003Eb__15_25(DefaultGatheringPoint x) - { - ushort territoryType = x.TerritoryType; - int num = ((territoryType == 901) ? (-1510043061) : (-1510043064)); - while (true) - { - int num2 = num; - int num3 = -1510043062; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004f; - case 2: - return territoryType != 929; - case 1: - return false; - } - continue; - IL_004f: - num = -1510043064; - } - } - - internal EExpansionVersion _003C_002Ector_003Eb__15_26(DefaultGatheringPoint x) - { - return x.Expansion; - } - - internal ExpansionPoints _003C_002Ector_003Eb__15_27(IGrouping<EExpansionVersion, DefaultGatheringPoint> x) - { - return new ExpansionPoints(x.Key, (from y in x.GroupBy([MethodImpl(MethodImplOptions.NoInlining)] (DefaultGatheringPoint y) => - { - ushort territoryType = y.TerritoryType; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(3, 2); - defaultInterpolatedStringHandler.AppendFormatted((!_206B_206A_202A_206E_202C_200D_200F_206B_206E_206F_202B_202C_202B_206A_202C_200E_200E_206C_200F_202E_206A_206A_202B_202D_200E_202C_206A_206F_202C_206F_200C_200F_202D_206B_200F_202E_200F_206D_202B_206A_202E(y.TerritoryName)) ? y.TerritoryName : global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1520869652)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1473546846)); - defaultInterpolatedStringHandler.AppendFormatted(y.TerritoryType); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - return new - { - TerritoryType = territoryType, - TerritoryName = defaultInterpolatedStringHandler.ToStringAndClear() - }; - }) - select new TerritoryPoints(y.Key.TerritoryType, y.Key.TerritoryName, y.ToList()) into y - where y.Points.Count > 0 - select y).ToList()); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal _003C_003Ef__AnonymousType7<ushort, string> _003C_002Ector_003Eb__15_34(DefaultGatheringPoint y) - { - ushort territoryType = y.TerritoryType; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(3, 2); - defaultInterpolatedStringHandler.AppendFormatted((!_206B_206A_202A_206E_202C_200D_200F_206B_206E_206F_202B_202C_202B_206A_202C_200E_200E_206C_200F_202E_206A_206A_202B_202D_200E_202C_206A_206F_202C_206F_200C_200F_202D_206B_200F_202E_200F_206D_202B_206A_202E(y.TerritoryName)) ? y.TerritoryName : global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1520869652)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1473546846)); - defaultInterpolatedStringHandler.AppendFormatted(y.TerritoryType); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - return new - { - TerritoryType = territoryType, - TerritoryName = defaultInterpolatedStringHandler.ToStringAndClear() - }; - } - - internal TerritoryPoints _003C_002Ector_003Eb__15_35(IGrouping<_003C_003Ef__AnonymousType7<ushort, string>, DefaultGatheringPoint> y) - { - return new TerritoryPoints(y.Key.TerritoryType, y.Key.TerritoryName, y.ToList()); - } - - internal bool _003C_002Ector_003Eb__15_36(TerritoryPoints y) - { - return y.Points.Count > 0; - } - - internal EExpansionVersion _003C_002Ector_003Eb__15_28(ExpansionPoints x) - { - return x.ExpansionVersion; - } - - internal bool _003CUpdateFilter_003Eb__19_0(string _) - { - return true; - } - - internal bool _003CUpdateFilter_003Eb__19_3(FilteredExpansion x) - { - return x != null; - } - - internal bool _003CFilterExpansion_003Eb__20_1(FilteredTerritory x) - { - return x != null; - } - - internal FilteredTerritory _003CFilterExpansion_003Eb__20_2(FilteredTerritory x) - { - return x; - } - - internal bool _003CFilterTerritory_003Eb__21_1(string _) - { - return true; - } - - internal bool _003CFilterTerritory_003Eb__21_3(FilteredGatheringPoint x) - { - return x != null; - } - - internal FilteredGatheringPoint _003CFilterTerritory_003Eb__21_4(FilteredGatheringPoint x) - { - return x; - } - - internal bool _003CRefreshCounts_003Eb__23_7(ushort x) - { - return x < 10000; - } - - internal int _003CRefreshCounts_003Eb__23_4(DefaultGatheringPoint x) - { - return x.TotalItems; - } - - internal int _003CRefreshCounts_003Eb__23_5(DefaultGatheringPoint x) - { - return x.CompletedItems; - } - - internal bool _003CRefreshCounts_003Eb__23_6(DefaultGatheringPoint x) - { - return x.IsComplete; - } - - internal int _003CRefreshCounts_003Eb__23_0(TerritoryPoints x) - { - return x.TotalItems; - } - - internal int _003CRefreshCounts_003Eb__23_1(TerritoryPoints x) - { - return x.CompletedItems; - } - - internal int _003CRefreshCounts_003Eb__23_2(TerritoryPoints x) - { - return x.TotalPoints; - } - - internal int _003CRefreshCounts_003Eb__23_3(TerritoryPoints x) - { - return x.CompletedPoints; - } - - static bool _206B_206A_202A_206E_202C_200D_200F_206B_206E_206F_202B_202C_202B_206A_202C_200E_200E_206C_200F_202E_206A_206A_202B_202D_200E_202C_206A_206F_202C_206F_200C_200F_202D_206B_200F_202E_200F_206D_202B_206A_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static GatheringPointId _202B_206E_202C_202E_206B_200B_206F_206E_206B_202A_206B_202E_206D_202E_200E_206F_206F_206F_206A_206C_200C_206C_206A_202D_200F_206A_200F_206D_206F_206D_202C_202E_206D_202C_200C_200E_206C_202B_202C_206E_202E(ushort P_0) - { - return new GatheringPointId(P_0); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass15_0 - { - public GatheringJournalComponent _003C_003E4__this; - - public ExcelSheet<GatheringLeve> gatheringLeveSheet; - - public Dictionary<uint, List<uint>> routeToGatheringPoint; - - public ExcelSheet<Item> itemSheet; - - public HashSet<uint> leveGatheringPoints; - - public ExcelSheet<TerritoryType> territoryTypeSheet; - - internal GatheringLeve? _003C_002Ector_003Eb__6(Leve x) - { - return gatheringLeveSheet.GetRowOrDefault(x.DataId.RowId); - } - - internal IEnumerable<uint> _003C_002Ector_003Eb__10(RowRef<GatheringLeveRoute> y) - { - return routeToGatheringPoint[y.RowId]; - } - - internal _003C_003Ef__AnonymousType5<int, string> _003C_002Ector_003Eb__12(GatheringItem x) - { - return new - { - GatheringItemId = (int)x.RowId, - Name = itemSheet.GetRowOrDefault(x.Item.RowId)?.Name.ToString() - }; - } - - internal DefaultGatheringPoint _003C_002Ector_003Eb__21(_003C_003Ef__AnonymousType6<uint, DefaultGatheringPoint> x) - { - int num = ((!leveGatheringPoints.Contains(x.GatheringPointId)) ? (-1847691260) : (-1847691259)); - GatheringRoot gatheringRoot = default(GatheringRoot); - while (true) - { - int num2 = num; - int num3 = -1847691263; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1847691259; - break; - case 2: - { - TerritoryType row = territoryTypeSheet.GetRow(_206B_200F_202A_206E_206E_200D_200E_206C_200B_200E_206A_202E_202C_200B_202E_200B_206A_206C_206D_202E_202A_200F_202D_200F_200B_206B_206B_202E_200F_202C_200E_200C_200C_200C_202E_206B_200F_200D_206E_206F_202E(_206E_200B_202D_200C_202B_202A_202A_200C_206C_202C_206B_200D_200E_202C_206A_202B_202C_200E_206E_202C_206A_200F_200D_206A_202E_202C_206A_206E_200F_206A_206A_206B_202B_200D_200C_202B_202E_200F_200D_200F_202E(gatheringRoot).Last())); - return x.Point with - { - Expansion = (EExpansionVersion)row.ExVersion.RowId, - TerritoryType = (ushort)row.RowId, - TerritoryName = row.PlaceName.ValueNullable?.Name.ToString() - }; - } - case 4: - return null; - case 5: - num = ((x.Point.TerritoryType != 1) ? (-1847691264) : (-1847691262)); - break; - case 1: - return x.Point; - case 3: - num = ((!_003C_003E4__this._gatheringPointRegistry.TryGetGatheringPoint(x.Point.Id, out gatheringRoot)) ? (-1847691264) : (-1847691261)); - break; - } - } - } - - static List<QuestStep> _206E_200B_202D_200C_202B_202A_202A_200C_206C_202C_206B_200D_200E_202C_206A_202B_202C_200E_206E_202C_206A_200F_200D_206A_202E_202C_206A_206E_200F_206A_206A_206B_202B_200D_200C_202B_202E_200F_200D_200F_202E(GatheringRoot P_0) - { - return P_0.Steps; - } - - static ushort _206B_200F_202A_206E_206E_200D_200E_206C_200B_200E_206A_202E_202C_200B_202E_200B_206A_206C_206D_202E_202A_200F_202D_200F_200B_206B_206B_202E_200F_202C_200E_200C_200C_200C_202E_206B_200F_200D_206E_206F_202E(QuestStep P_0) - { - return P_0.TerritoryId; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass15_1 - { - public GatheringLeveRoute x; - - internal _003C_003Ef__AnonymousType4<uint, uint> _003C_002Ector_003Eb__30(RowRef<GatheringPoint> y) - { - return new - { - RouteId = x.RowId, - GatheringPointId = y.RowId - }; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass19_0 - { - public GatheringJournalComponent _003C_003E4__this; - - public Predicate<string> match; - - internal bool _003CUpdateFilter_003Eb__1(string x) - { - return _202D_206D_206E_206D_206E_202A_200F_206A_206C_202A_202D_200F_200C_202D_200E_206A_202E_206D_206D_202D_206B_200C_202A_200F_206B_206C_200F_202A_202C_206A_200F_206D_206C_202B_200F_206D_206C_202A_202B_200C_202E(x, _003C_003E4__this._searchText, StringComparison.CurrentCultureIgnoreCase); - } - - internal FilteredExpansion _003CUpdateFilter_003Eb__2(ExpansionPoints section) - { - return _003C_003E4__this.FilterExpansion(section, match); - } - - static bool _202D_206D_206E_206D_206E_202A_200F_206A_206C_202A_202D_200F_200C_202D_200E_206A_202E_206D_206D_202D_206B_200C_202A_200F_206B_206C_200F_202A_202C_206A_200F_206D_206C_202B_200F_206D_206C_202A_202B_200C_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); - } - } + private sealed record FilteredGatheringPoint(DefaultGatheringPoint Point, List<ushort> GatheringItemIds); private readonly IDalamudPluginInterface _pluginInterface; @@ -1991,170 +149,66 @@ internal sealed class GatheringJournalComponent where y.RowId != 0 select y).SelectMany((RowRef<GatheringLeveRoute> y) => routeToGatheringPoint[y.RowId]).Distinct().ToHashSet(); ExcelSheet<Item> itemSheet = dataManager.GetExcelSheet<Item>(); - _gatheringItems = (from x in dataManager.GetExcelSheet<GatheringItem>().Where(delegate(GatheringItem x) - { - int num = ((x.RowId == 0) ? (-1719090108) : (-1719090105)); - while (true) - { - int num2 = num; - int num3 = -1719090107; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0049; - case 2: - return x.GatheringItemLevel.RowId != 0; - case 1: - return false; - } - continue; - IL_0049: - num = -1719090105; - } - }) + _gatheringItems = (from x in dataManager.GetExcelSheet<GatheringItem>() + where x.RowId != 0 && x.GatheringItemLevel.RowId != 0 select new { GatheringItemId = (int)x.RowId, Name = itemSheet.GetRowOrDefault(x.Item.RowId)?.Name.ToString() } into x - where !_003C_003Ec._206B_206A_202A_206E_202C_200D_200F_206B_206E_206F_202B_202C_202B_206A_202C_200E_200E_206C_200F_202E_206A_206A_202B_202D_200E_202C_206A_206F_202C_206F_200C_200F_202D_206B_200F_202E_200F_206D_202B_206A_202E(x.Name) + where !string.IsNullOrEmpty(x.Name) select x).ToDictionary(x => x.GatheringItemId, x => x.Name); _gatheringPointsByExpansion = (from x in (from DefaultGatheringPoint x in from x in (from x in (from x in dataManager.GetExcelSheet<GatheringPoint>() where x.GatheringPointBase.RowId != 0 select x).Where(delegate(GatheringPoint x) { uint rowId = x.GatheringPointBase.RowId; - int num = ((rowId < 653) ? (-647467167) : (-647467166)); - bool result = default(bool); - while (true) - { - int num2 = num; - int num3 = -647467168; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = -647467166; - break; - case 4: - return result; - case 0: - result = false; - num = -647467164; - break; - case 1: - result = true; - num = -647467164; - break; - case 2: - num = ((rowId <= 680) ? (-647467168) : (-647467167)); - break; - } - } - }).DistinctBy((GatheringPoint x) => x.GatheringPointBase.RowId).Select([MethodImpl(MethodImplOptions.NoInlining)] (GatheringPoint x) => + return (rowId < 653 || rowId > 680) ? true : false; + }).DistinctBy((GatheringPoint x) => x.GatheringPointBase.RowId).Select(delegate(GatheringPoint x) { uint rowId = x.RowId; - GatheringPointId id = _003C_003Ec._202B_206E_202C_202E_206B_200B_206F_206E_206B_202A_206B_202E_206D_202E_200E_206F_206F_206F_206A_206C_200C_206C_206A_202D_200F_206A_200F_206D_206F_206D_202C_202E_206D_202C_200C_200E_206C_202B_202C_206E_202E((ushort)x.GatheringPointBase.RowId); - uint rowId2 = x.GatheringPointBase.Value.GatheringType.RowId; - int num = ((rowId2 <= 1) ? (-232485595) : (-232485593)); - EClassJob eClassJob = default(EClassJob); - while (true) + GatheringPointId id = new GatheringPointId((ushort)x.GatheringPointBase.RowId); + EClassJob classJob; + switch (x.GatheringPointBase.Value.GatheringType.RowId) { - int num2 = num; - int num3 = -232485595; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - { - EClassJob classJob = eClassJob; - byte gatheringLevel = x.GatheringPointBase.Value.GatheringLevel; - List<ushort> gatheringItemIds = (from y in x.GatheringPointBase.Value.Item - where y.RowId != 0 - select (ushort)y.RowId).ToList(); - byte expansion = ((byte?)x.TerritoryType.ValueNullable?.ExVersion.RowId) ?? byte.MaxValue; - ushort territoryType = (ushort)x.TerritoryType.RowId; - string territoryName = x.TerritoryType.ValueNullable?.PlaceName.ValueNullable?.Name.ToString(); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(3, 2); - defaultInterpolatedStringHandler.AppendFormatted(x.GatheringPointBase.RowId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1687715325)); - defaultInterpolatedStringHandler.AppendFormatted(x.PlaceName.ValueNullable?.Name); - return new - { - GatheringPointId = rowId, - Point = new DefaultGatheringPoint(id, classJob, gatheringLevel, gatheringItemIds, (EExpansionVersion)expansion, territoryType, territoryName, defaultInterpolatedStringHandler.ToStringAndClear()) - }; - } - case 1: - eClassJob = EClassJob.Botanist; - num = -232485599; - break; - case 3: - num = -232485593; - break; - case 2: - num3 = 2; - num4 = (int)rowId2; - num = (((uint)(~(~num4 + num3)) <= 1u) ? (-232485596) : (-232485597)); - break; - case 0: - eClassJob = EClassJob.Miner; - num = -232485599; - break; - case 6: - num = -232485600; - break; - case 5: - eClassJob = EClassJob.Fisher; - num = -232485599; - break; - } + case 0u: + case 1u: + classJob = EClassJob.Miner; + break; + case 2u: + case 3u: + classJob = EClassJob.Botanist; + break; + default: + classJob = EClassJob.Fisher; + break; } + return new + { + GatheringPointId = rowId, + Point = new DefaultGatheringPoint(id, classJob, x.GatheringPointBase.Value.GatheringLevel, (from y in x.GatheringPointBase.Value.Item + where y.RowId != 0 + select (ushort)y.RowId).ToList(), (EExpansionVersion)(((byte?)x.TerritoryType.ValueNullable?.ExVersion.RowId) ?? byte.MaxValue), (ushort)x.TerritoryType.RowId, x.TerritoryType.ValueNullable?.PlaceName.ValueNullable?.Name.ToString(), $"{x.GatheringPointBase.RowId} - {x.PlaceName.ValueNullable?.Name}") + }; }) where x.Point.ClassJob != EClassJob.Fisher select x).Select(x => { - int num = ((!leveGatheringPoints.Contains(x.GatheringPointId)) ? (-1847691260) : (-1847691259)); - GatheringRoot gatheringRoot = default(GatheringRoot); - while (true) + if (leveGatheringPoints.Contains(x.GatheringPointId)) { - int num2 = num; - int num3 = -1847691263; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1847691259; - break; - case 2: - { - TerritoryType row = territoryTypeSheet.GetRow(_003C_003Ec__DisplayClass15_0._206B_200F_202A_206E_206E_200D_200E_206C_200B_200E_206A_202E_202C_200B_202E_200B_206A_206C_206D_202E_202A_200F_202D_200F_200B_206B_206B_202E_200F_202C_200E_200C_200C_200C_202E_206B_200F_200D_206E_206F_202E(_003C_003Ec__DisplayClass15_0._206E_200B_202D_200C_202B_202A_202A_200C_206C_202C_206B_200D_200E_202C_206A_202B_202C_200E_206E_202C_206A_200F_200D_206A_202E_202C_206A_206E_200F_206A_206A_206B_202B_200D_200C_202B_202E_200F_200D_200F_202E(gatheringRoot).Last())); - return x.Point with - { - Expansion = (EExpansionVersion)row.ExVersion.RowId, - TerritoryType = (ushort)row.RowId, - TerritoryName = row.PlaceName.ValueNullable?.Name.ToString() - }; - } - case 4: - return (DefaultGatheringPoint)null; - case 5: - num = ((x.Point.TerritoryType != 1) ? (-1847691264) : (-1847691262)); - break; - case 1: - return x.Point; - case 3: - num = ((!gatheringJournalComponent._gatheringPointRegistry.TryGetGatheringPoint(x.Point.Id, out gatheringRoot)) ? (-1847691264) : (-1847691261)); - break; - } + return (DefaultGatheringPoint)null; } + if (x.Point.TerritoryType == 1 && gatheringJournalComponent._gatheringPointRegistry.TryGetGatheringPoint(x.Point.Id, out GatheringRoot gatheringRoot)) + { + TerritoryType row = territoryTypeSheet.GetRow(gatheringRoot.Steps.Last().TerritoryId); + return x.Point with + { + Expansion = (EExpansionVersion)row.ExVersion.RowId, + TerritoryType = (ushort)row.RowId, + TerritoryName = row.PlaceName.ValueNullable?.Name.ToString() + }; + } + return x.Point; }) where x != null select x @@ -2163,357 +217,166 @@ internal sealed class GatheringJournalComponent select x).Where(delegate(DefaultGatheringPoint x) { ushort territoryType = x.TerritoryType; - int num = ((territoryType == 901) ? (-1510043061) : (-1510043064)); - while (true) - { - int num2 = num; - int num3 = -1510043062; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004f; - case 2: - return territoryType != 929; - case 1: - return false; - } - continue; - IL_004f: - num = -1510043064; - } + return territoryType != 901 && territoryType != 929; }) group x by x.Expansion into x - select new ExpansionPoints(x.Key, (from y in x.GroupBy([MethodImpl(MethodImplOptions.NoInlining)] (DefaultGatheringPoint y) => + select new ExpansionPoints(x.Key, (from y in x + group y by new { - ushort territoryType = y.TerritoryType; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(3, 2); - defaultInterpolatedStringHandler.AppendFormatted((!_003C_003Ec._206B_206A_202A_206E_202C_200D_200F_206B_206E_206F_202B_202C_202B_206A_202C_200E_200E_206C_200F_202E_206A_206A_202B_202D_200E_202C_206A_206F_202C_206F_200C_200F_202D_206B_200F_202E_200F_206D_202B_206A_202E(y.TerritoryName)) ? y.TerritoryName : global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1520869652)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1473546846)); - defaultInterpolatedStringHandler.AppendFormatted(y.TerritoryType); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - return new - { - TerritoryType = territoryType, - TerritoryName = defaultInterpolatedStringHandler.ToStringAndClear() - }; - }) + TerritoryType = y.TerritoryType, + TerritoryName = $"{((!string.IsNullOrEmpty(y.TerritoryName)) ? y.TerritoryName : "???")} ({y.TerritoryType})" + } into y select new TerritoryPoints(y.Key.TerritoryType, y.Key.TerritoryName, y.ToList()) into y where y.Points.Count > 0 select y).ToList()) into x orderby x.ExpansionVersion select x).ToList(); - _206B_202E_202E_200F_202B_202E_206B_200D_202E_200F_202C_202A_200F_206A_202C_202A_202D_206A_200F_206F_200D_206D_200D_202E_206C_200B_206C_202D_206C_206C_202D_206E_206B_202B_206C_206E_200B_200F_206E_206C_202E(gameInteropProvider, (object)this); + gameInteropProvider.InitializeFromAttributes(this); } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe void DrawGatheringItems() { - int num = ((!UiThemeUtils.SearchInput(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(891194183), ref _searchText, -1E-45f, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1918408530))) ? (-916943759) : (-916943757)); - int num16 = default(int); - while (true) + if (UiThemeUtils.SearchInput("##GatheringSearch", ref _searchText, -1E-45f, "Search areas, gathering points and items")) { - int num2 = num; - int num3 = -916943758; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - _206D_200C_206A_202B_202A_202C_200D_206E_200B_200B_206B_206C_200D_202D_206B_200E_206C_202E_202E_200C_200F_200E_200F_206E_200B_202E_200D_200C_206F_206A_206F_206A_202A_200E_206D_200D_206B_200B_200E_206E_202E(); - if (_flatRows.Count > 0) - { - num = -916943760; - break; - } - UiThemeUtils.EmptyState(FontAwesomeIcon.Leaf, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(595845560)); - return; - case 1: - UpdateFilter(); - num = -916943759; - break; - case 0: - num = -916943757; - break; - case 2: - { - IDisposable disposable = _206D_202A_200E_200C_202C_200F_206A_200E_202B_206D_202A_200E_202D_206F_200F_206C_202A_200B_206F_200C_206A_206D_206E_202E_206C_202E_206B_200B_206F_202C_200D_202C_202E_200B_206F_200C_202C_200B_200F_202D_202E(_202C_202D_200F_202D_202D_206F_206F_200F_206A_206C_202D_206E_202E_200B_200F_202C_206A_200F_206A_202C_202D_200C_200D_200F_200D_206B_200D_206F_200E_206C_202E_200C_206E_206C_206F_200B_200B_200C_202C_200F_202E(_202D_202A_206B_202C_202E_206A_202E_206E_206C_200C_202E_202D_200D_206E_202C_206F_200E_202E_206F_202A_202D_206C_200C_206C_200F_200D_202A_200C_206B_206E_200E_202B_206F_202A_200B_200F_202E_206B_202D_202D_202E(_pluginInterface))); - float x; - try - { - x = _206B_202C_200F_206B_200F_202C_202D_206B_206A_206A_206F_202E_206C_206F_200B_200D_206E_206C_206D_206A_202E_206D_202A_202A_200E_206F_200E_206A_206D_200C_206E_202D_200F_206C_206A_206C_206E_206A_200F_202C_202E((ImU8String)_206C_206B_206B_202E_202A_206B_206C_206C_200B_200E_200D_206B_200F_200D_206A_202C_202B_200F_206D_206E_206E_206A_206F_202B_206C_202B_200D_202C_200B_206E_206B_200F_200E_206F_200F_206F_200B_200D_202D_206F_202E(FontAwesomeIcon.Check), false, -1f).X; - } - finally - { - num = ((disposable == null) ? 1660478905 : 1660478904); - while (true) - { - int num7 = num; - num3 = 1660478905; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_010e; - case 1: - _200E_200B_206C_200B_202D_206E_200D_200F_202A_206C_206D_206C_206B_200D_206E_206A_200F_202E_200C_206A_206A_206E_206E_200F_200E_206C_206B_202C_206E_206A_200B_202C_202C_200F_202D_206F_206C_206E_202D_200D_202E(disposable); - num = 1660478905; - break; - case 2: - num = 1660478904; - break; - } - continue; - end_IL_010e: - break; - } - } - float fontGlobalScale = _200B_202C_206F_200C_202E_206D_202B_206B_206D_206F_200D_202C_200C_206D_206E_206E_202B_202A_202D_202B_200B_200D_200B_200C_206D_206C_206E_202E_202A_202B_200B_202D_202D_202B_206B_200E_200E_202E_200D_206D_202E().FontGlobalScale; - using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(744259125), 3, ImGuiTableFlags.NoSavedSettings | ImGuiTableFlags.ScrollY); - num = ((!(!tableDisposable)) ? 439090384 : 439090385); - while (true) - { - int num8 = num; - num3 = 439090384; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 2: - goto IL_01d1; - case 1: - return; - case 0: - { - _200D_200F_202C_200B_202C_200E_200D_202D_206F_200F_206A_206C_206E_206B_202E_202C_200E_206E_206C_206E_200C_206B_200C_206C_200D_202B_206F_202B_206F_206E_202B_202C_200E_202D_202A_200C_202A_200B_202A_200C_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-267283137), ImGuiTableColumnFlags.NoHide, 0f, 0u); - _200D_200F_202C_200B_202C_200E_200D_202D_206F_200F_206A_206C_206E_206B_202E_202C_200E_206E_206C_206E_200C_206B_200C_206C_200D_202B_206F_202B_206F_206E_202B_202C_200E_202D_202A_200C_202A_200B_202A_200C_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1008226786), ImGuiTableColumnFlags.WidthFixed, 120f * fontGlobalScale, 0u); - _200D_200F_202C_200B_202C_200E_200D_202D_206F_200F_206A_206C_206E_206B_202E_202C_200E_206E_206C_206E_200C_206B_200C_206C_200D_202B_206F_202B_206F_206E_202B_202C_200E_202D_202A_200C_202A_200B_202A_200C_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1239355882), ImGuiTableColumnFlags.WidthFixed, 120f * fontGlobalScale, 0u); - _202D_206B_206B_202C_200D_200D_200B_200D_206C_200D_206E_200F_206D_206C_206F_202C_206D_206D_200C_202C_206B_206A_206A_206B_206A_206C_202E_206D_202A_206B_202A_206B_200E_200C_202B_206D_206E_202B_200C_202B_202E(); - float num11 = _206C_206F_206D_200D_200F_202D_202B_202E_200B_202C_202B_206E_200D_206A_200E_202D_202A_206E_206C_200B_202C_206C_202C_206B_202B_206C_202D_200E_202C_206F_202A_206D_202B_200B_200B_206F_206E_202E_202A_202E_202E(); - bool flag = false; - ImGuiListClipper* intPtr = _202A_202A_200B_206D_206E_206D_202B_200C_206A_202B_202C_202B_200F_200D_200C_202B_202B_206B_202A_206B_206D_206C_200B_206C_206B_206C_202E_202B_200E_206B_202B_200D_200E_202A_200D_200B_202A_200B_200D_206B_202E(); - _200C_202E_206B_206F_200B_200C_206E_206F_200D_202D_200B_200C_202B_200D_206E_202D_206B_206E_202B_206B_206B_206E_200B_200E_206D_200C_202B_200C_202C_206A_206C_200D_200E_200B_202B_206B_202C_200D_202A_206F_202E(intPtr, _flatRows.Count, num11); - ImGuiListClipperPtr imGuiListClipperPtr = intPtr; - try - { - num = 837427177; - while (true) - { - int num12 = num; - num3 = 837427176; - num4 = num12; - int num13 = num4 + num3; - int num14 = num4 & num3; - switch (num13 - (num14 + num14)) - { - case 0: - flag = true; - num = 837427178; - break; - case 5: - num16 = imGuiListClipperPtr.DisplayStart; - num = 837427180; - break; - case 1: - num = (imGuiListClipperPtr.Step() ? 837427181 : 837427183); - break; - case 4: - num = ((num16 < imGuiListClipperPtr.DisplayEnd) ? 837427182 : 837427177); - break; - case 6: - num = ((!DrawFlatRow(_flatRows[num16], x)) ? 837427178 : 837427176); - break; - case 2: - { - int num15 = num16; - num3 = 1; - num4 = num15; - num16 = (num4 | num3) + (num4 & num3); - num = 837427180; - break; - } - case 3: - num = 837427177; - break; - case 7: - goto end_IL_027c; - } - continue; - end_IL_027c: - break; - } - } - finally - { - imGuiListClipperPtr.Destroy(); - } - num = ((!flag) ? (-1673621087) : (-1673621086)); - while (true) - { - int num17 = num; - num3 = -1673621088; - num4 = num17; - int num18 = num4 + num3; - int num19 = num4 & num3; - switch (num18 - (num19 + num19)) - { - case 0: - num = -1673621086; - break; - case 2: - RebuildFlatRows(); - num = -1673621087; - break; - case 1: - return; - } - } - } - } - continue; - IL_01d1: - num = 439090385; - } - } - } + UpdateFilter(); } + ImGui.Separator(); + if (_flatRows.Count > 0) + { + float x; + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) + { + x = ImGui.CalcTextSize(FontAwesomeIcon.Check.ToIconString()).X; + } + float fontGlobalScale = ImGui.GetIO().FontGlobalScale; + using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable("GatheringPoints", 3, ImGuiTableFlags.NoSavedSettings | ImGuiTableFlags.ScrollY); + if (!tableDisposable) + { + return; + } + ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.NoHide); + ImGui.TableSetupColumn("Supported", ImGuiTableColumnFlags.WidthFixed, 120f * fontGlobalScale); + ImGui.TableSetupColumn("Collected", ImGuiTableColumnFlags.WidthFixed, 120f * fontGlobalScale); + ImGui.TableHeadersRow(); + float textLineHeightWithSpacing = ImGui.GetTextLineHeightWithSpacing(); + bool flag = false; + ImGuiListClipper* intPtr = ImGuiNative.ImGuiListClipper(); + ImGuiNative.Begin(intPtr, _flatRows.Count, textLineHeightWithSpacing); + ImGuiListClipperPtr imGuiListClipperPtr = intPtr; + try + { + while (imGuiListClipperPtr.Step()) + { + for (int i = imGuiListClipperPtr.DisplayStart; i < imGuiListClipperPtr.DisplayEnd; i++) + { + if (DrawFlatRow(_flatRows[i], x)) + { + flag = true; + } + } + } + } + finally + { + imGuiListClipperPtr.Destroy(); + } + if (flag) + { + RebuildFlatRows(); + } + return; + } + UiThemeUtils.EmptyState(FontAwesomeIcon.Leaf, "No area, gathering point or item matches your search text."); } - [MethodImpl(MethodImplOptions.NoInlining)] private bool DrawFlatRow(FlatRow row, float iconSpacing) { - _202E_200E_202D_206D_200E_206A_200C_202E_206A_200C_206B_206B_202C_202B_206C_200B_206D_206F_206D_206E_200F_200D_202B_202D_200E_202B_206F_206A_200E_200E_202D_206C_206C_202B_202B_202C_200E_202D_202B_202E_202E(); - _202D_206F_202C_202E_206E_200B_206F_200B_200D_200D_206D_200F_200D_200B_206C_200D_200D_200D_200E_206E_202A_206D_206A_206D_200B_202B_200E_202E_200E_202A_206A_202A_202D_206E_206D_200E_202C_200B_206C_206C_202E(); + ImGui.TableNextRow(); + ImGui.TableNextColumn(); bool result = false; - float num = (float)row.Depth * _202B_206B_206E_200C_202B_200B_202D_200F_206E_206A_206B_200C_206B_206F_200E_202A_200D_200B_206C_202C_200F_202D_200D_206B_206E_202C_206E_200F_202A_200D_200E_200C_206D_200B_200F_202C_200F_206D_206F_202D_202E().IndentSpacing; - int num2 = ((row.Type != RowType.Item) ? 119097280 : 119097288); - (RowType, int) item2 = default((RowType, int)); - bool flag2 = default(bool); - bool flag = default(bool); - (RowType, int) item = default((RowType, int)); - while (true) + float num = (float)row.Depth * ImGui.GetStyle().IndentSpacing; + if (row.Type == RowType.Item) { - int num3 = num2; - int num4 = 119097295; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + num); + ImGui.TreeNodeEx(row.Label, ImGuiTreeNodeFlags.NoTreePushOnOpen | ImGuiTreeNodeFlags.Leaf | ImGuiTreeNodeFlags.SpanFullWidth); + ImGui.TableNextColumn(); + ImGui.TableNextColumn(); + float num2 = ImGui.GetColumnWidth() / 2f - iconSpacing; + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + num2); + if (row.ItemId < 10000) { - case 0: - num2 = 119097288; - break; - case 1: - return result; - case 16: - result = true; - num2 = 119097281; - break; - case 13: - _expandedGroups.Remove(item2); - num2 = 119097287; - break; - case 11: - { - item2 = (row.Type, row.GroupIndex); - flag2 = _expandedGroups.Contains(item2); - _202E_206A_206F_206D_206C_206B_200E_202A_200B_206B_200D_200B_202A_206B_206B_206E_202E_200C_202C_206E_202C_202B_200E_206A_206C_206E_200F_206A_206C_202E_200C_206F_206A_202C_206F_200C_206D_202E_202B_206C_202E(_206B_202D_206B_206B_202E_200D_202E_202E_200F_206E_202D_206C_200D_206A_202C_206E_200D_202D_200E_200F_202E_206D_202E_206E_202E_206F_202C_206C_206D_200F_206A_206D_200F_202A_206A_200E_206A_200E_200E_206E_202E() + num); - UiThemeUtils.DrawTrackerGroupCaret(_202C_202D_200F_202D_202D_206F_206F_200F_206A_206C_202D_206E_202E_200B_200F_202C_206A_200F_206A_202C_202D_200C_200D_200F_200D_206B_200D_206F_200E_206C_202E_200C_206E_206C_206F_200B_200B_200C_202C_200F_202E(_202D_202A_206B_202C_202E_206A_202E_206E_206C_200C_202E_202D_200D_206E_202C_206F_200E_202E_206F_202A_202D_206C_200C_206C_200F_200D_202A_200C_206B_206E_200E_202B_206F_202A_200B_200F_202E_206B_202D_202D_202E(_pluginInterface)), flag2); - _206B_206B_202C_202A_202E_206E_202A_202B_202B_200F_206B_206E_200E_200C_202B_200D_206E_206B_202A_206C_202E_200F_202C_206B_202E_206C_206C_202C_206C_206A_200E_200F_202D_202A_206B_206F_200E_200F_202B_200D_202E(); - ImU8String imU8String2 = new ImU8String(6, 3); - imU8String2.AppendFormatted(row.Label); - imU8String2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2023271148)); - imU8String2.AppendFormatted(row.Type); - imU8String2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-546490491)); - imU8String2.AppendFormatted(row.GroupIndex); - num2 = ((!_202E_202C_206D_202B_200D_206C_200C_206A_206D_206F_202A_202D_202C_206D_202E_200C_206C_202E_200D_206B_206A_206D_200B_202A_200E_206E_200F_200D_202D_200F_200B_206C_200F_206E_206E_206E_200C_206B_206C_206E_202E(imU8String2, false, ImGuiSelectableFlags.None, default(Vector2))) ? 119097285 : 119097291); - break; - } - case 17: - num2 = ((!flag) ? 119097283 : 119097290); - break; - case 5: - _expandedGroups.Remove(item); - num2 = 119097311; - break; - case 12: - _expandedGroups.Add(item); - num2 = 119097311; - break; - case 2: _uiUtils.ChecklistItem(string.Empty, row.IsItemGathered); - num2 = 119097294; - break; - case 7: - { - _202E_206A_206F_206D_206C_206B_200E_202A_200B_206B_200D_200B_202A_206B_206B_206E_202E_200C_202C_206E_202C_202B_200E_206A_206C_206E_200F_206A_206C_202E_200C_206F_206A_202C_206F_200C_206D_202E_202B_206C_202E(_206B_202D_206B_206B_202E_200D_202E_202E_200F_206E_202D_206C_200D_206A_202C_206E_200D_202D_200E_200F_202E_206D_202E_206E_202E_206F_202C_206C_206D_200F_206A_206D_200F_202A_206A_200E_206A_200E_200E_206E_202E() + num); - _202D_202B_206F_206F_206F_202D_202D_206C_206C_200C_206D_200E_200F_200E_206E_200B_206A_202E_200B_206E_200D_202A_200B_202D_200F_200C_206E_206F_202B_200F_206A_202E_202E_202C_206B_206E_200C_206F_200C_206F_202E((ImU8String)row.Label, ImGuiTreeNodeFlags.NoTreePushOnOpen | ImGuiTreeNodeFlags.Leaf | ImGuiTreeNodeFlags.SpanFullWidth, default(ImU8String)); - _202D_206F_202C_202E_206E_200B_206F_200B_200D_200D_206D_200F_200D_200B_206C_200D_200D_200D_200E_206E_202A_206D_206A_206D_200B_202B_200E_202E_200E_202A_206A_202A_202D_206E_206D_200E_202C_200B_206C_206C_202E(); - _202D_206F_202C_202E_206E_200B_206F_200B_200D_200D_206D_200F_200D_200B_206C_200D_200D_200D_200E_206E_202A_206D_206A_206D_200B_202B_200E_202E_200E_202A_206A_202A_202D_206E_206D_200E_202C_200B_206C_206C_202E(); - float num7 = _206B_202A_200E_206B_206A_206E_200E_200F_202E_202D_200F_206A_202D_202B_206B_206C_202E_200D_206A_202E_200D_202C_202A_200E_202D_206A_206D_200D_202B_202A_206A_206B_206B_202E_206B_202B_206F_206E_202B_202E() / 2f - iconSpacing; - _202E_206A_206F_206D_206C_206B_200E_202A_200B_206B_200D_200B_202A_206B_206B_206E_202E_200C_202C_206E_202C_202B_200E_206A_206C_206E_200F_206A_206C_202E_200C_206F_206A_202C_206F_200C_206D_202E_202B_206C_202E(_206B_202D_206B_206B_202E_200D_202E_202E_200F_206E_202D_206C_200D_206A_202C_206E_200D_202D_200E_200F_202E_206D_202E_206E_202E_206F_202C_206C_206D_200F_206A_206D_200F_202A_206A_200E_206A_200E_200E_206E_202E() + num7); - num2 = ((row.ItemId >= 10000) ? 119097286 : 119097293); - break; } - case 14: - _202D_206F_202C_202E_206E_200B_206F_200B_200D_200D_206D_200F_200D_200B_206C_200D_200D_200D_200E_206E_202A_206D_206A_206D_200B_202B_200E_202E_200E_202A_206A_202A_202D_206E_206D_200E_202C_200B_206C_206C_202E(); - UiThemeUtils.DrawTrackerCount(row.Counts.FormattedSupported, row.Counts.IsSupportedComplete, row.Counts.IsSupportedEmpty); - _202D_206F_202C_202E_206E_200B_206F_200B_200D_200D_206D_200F_200D_200B_206C_200D_200D_200D_200E_206E_202A_206D_206A_206D_200B_202B_200E_202E_200E_202A_206A_202A_202D_206E_206D_200E_202C_200B_206C_206C_202E(); - UiThemeUtils.DrawTrackerCount(row.Counts.FormattedCollected, row.Counts.IsCollectedComplete, row.Counts.IsCollectedEmpty); - num2 = 119097294; - break; - case 15: - num2 = ((row.Type != RowType.GatheringPoint) ? 119097292 : 119097284); - break; - case 8: - result = true; - num2 = 119097285; - break; - case 10: + else { - _202D_206F_202C_202E_206E_200B_206F_200B_200D_200D_206D_200F_200D_200B_206C_200D_200D_200D_200E_206E_202A_206D_206A_206D_200B_202B_200E_202E_200E_202A_206A_202A_202D_206E_206D_200E_202C_200B_206C_206C_202E(); - float num6 = _206B_202A_200E_206B_206A_206E_200E_200F_202E_202D_200F_206A_202D_202B_206B_206C_202E_200D_206A_202E_200D_202C_202A_200E_202D_206A_206D_200D_202B_202A_206A_206B_206B_202E_206B_202B_206F_206E_202B_202E() / 2f - iconSpacing; - _202E_206A_206F_206D_206C_206B_200E_202A_200B_206B_200D_200B_202A_206B_206B_206E_202E_200C_202C_206E_202C_202B_200E_206A_206C_206E_200F_206A_206C_202E_200C_206F_206A_202C_206F_200C_206D_202E_202B_206C_202E(_206B_202D_206B_206B_202E_200D_202E_202E_200F_206E_202D_206C_200D_206A_202C_206E_200D_202D_200E_200F_202E_206D_202E_206E_202E_206F_202C_206C_206D_200F_206A_206D_200F_202A_206A_200E_206A_200E_200E_206E_202E() + num6); - _uiUtils.ChecklistItem(string.Empty, row.IsPointComplete); - _202D_206F_202C_202E_206E_200B_206F_200B_200D_200D_206D_200F_200D_200B_206C_200D_200D_200D_200E_206E_202A_206D_206A_206D_200B_202B_200E_202E_200E_202A_206A_202A_202D_206E_206D_200E_202C_200B_206C_206C_202E(); - UiThemeUtils.DrawTrackerCount(row.Counts.FormattedCollected, row.Counts.IsCollectedComplete, row.Counts.IsCollectedEmpty); - num2 = 119097294; - break; - } - case 4: - num2 = ((!flag2) ? 119097289 : 119097282); - break; - case 9: _uiUtils.ChecklistItem(string.Empty, UiThemeUtils.StatusUnobtainable, FontAwesomeIcon.Minus); - num2 = 119097294; - break; - case 6: - _expandedGroups.Add(item2); - num2 = 119097287; - break; - case 3: - { - item = (row.Type, row.GroupIndex); - flag = _expandedGroups.Contains(item); - _202E_206A_206F_206D_206C_206B_200E_202A_200B_206B_200D_200B_202A_206B_206B_206E_202E_200C_202C_206E_202C_202B_200E_206A_206C_206E_200F_206A_206C_202E_200C_206F_206A_202C_206F_200C_206D_202E_202B_206C_202E(_206B_202D_206B_206B_202E_200D_202E_202E_200F_206E_202D_206C_200D_206A_202C_206E_200D_202D_200E_200F_202E_206D_202E_206E_202E_206F_202C_206C_206D_200F_206A_206D_200F_202A_206A_200E_206A_200E_200E_206E_202E() + num); - UiThemeUtils.DrawTrackerGroupCaret(_202C_202D_200F_202D_202D_206F_206F_200F_206A_206C_202D_206E_202E_200B_200F_202C_206A_200F_206A_202C_202D_200C_200D_200F_200D_206B_200D_206F_200E_206C_202E_200C_206E_206C_206F_200B_200B_200C_202C_200F_202E(_202D_202A_206B_202C_202E_206A_202E_206E_206C_200C_202E_202D_200D_206E_202C_206F_200E_202E_206F_202A_202D_206C_200C_206C_200F_200D_202A_200C_206B_206E_200E_202B_206F_202A_200B_200F_202E_206B_202D_202D_202E(_pluginInterface)), flag); - _206B_206B_202C_202A_202E_206E_202A_202B_202B_200F_206B_206E_200E_200C_202B_200D_206E_206B_202A_206C_202E_200F_202C_206B_202E_206C_206C_202C_206C_206A_200E_200F_202D_202A_206B_206F_200E_200F_202B_200D_202E(); - ImU8String imU8String = new ImU8String(6, 3); - imU8String.AppendFormatted(row.Label); - imU8String.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(111380431)); - imU8String.AppendFormatted(row.Type); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-294503681)); - imU8String.AppendFormatted(row.GroupIndex); - num2 = ((!_202E_202C_206D_202B_200D_206C_200C_206A_206D_206F_202A_202D_202C_206D_202E_200C_206C_202E_200D_206B_206A_206D_200B_202A_200E_206E_200F_200D_202D_200F_200B_206C_200F_206E_206E_206E_200C_206B_206C_206E_202E(imU8String, false, ImGuiSelectableFlags.None, default(Vector2))) ? 119097281 : 119097310); - break; - } } } + else if (row.Type == RowType.GatheringPoint) + { + (RowType, int) item = (row.Type, row.GroupIndex); + bool flag = _expandedGroups.Contains(item); + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + num); + UiThemeUtils.DrawTrackerGroupCaret(_pluginInterface.UiBuilder.IconFontFixedWidthHandle, flag); + ImGui.SameLine(); + ImU8String label = new ImU8String(6, 3); + label.AppendFormatted(row.Label); + label.AppendLiteral("##grp"); + label.AppendFormatted(row.Type); + label.AppendLiteral("_"); + label.AppendFormatted(row.GroupIndex); + if (ImGui.Selectable(label)) + { + if (flag) + { + _expandedGroups.Remove(item); + } + else + { + _expandedGroups.Add(item); + } + result = true; + } + ImGui.TableNextColumn(); + float num3 = ImGui.GetColumnWidth() / 2f - iconSpacing; + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + num3); + _uiUtils.ChecklistItem(string.Empty, row.IsPointComplete); + ImGui.TableNextColumn(); + UiThemeUtils.DrawTrackerCount(row.Counts.FormattedCollected, row.Counts.IsCollectedComplete, row.Counts.IsCollectedEmpty); + } + else + { + (RowType, int) item2 = (row.Type, row.GroupIndex); + bool flag2 = _expandedGroups.Contains(item2); + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + num); + UiThemeUtils.DrawTrackerGroupCaret(_pluginInterface.UiBuilder.IconFontFixedWidthHandle, flag2); + ImGui.SameLine(); + ImU8String label2 = new ImU8String(6, 3); + label2.AppendFormatted(row.Label); + label2.AppendLiteral("##grp"); + label2.AppendFormatted(row.Type); + label2.AppendLiteral("_"); + label2.AppendFormatted(row.GroupIndex); + if (ImGui.Selectable(label2)) + { + if (flag2) + { + _expandedGroups.Remove(item2); + } + else + { + _expandedGroups.Add(item2); + } + result = true; + } + ImGui.TableNextColumn(); + UiThemeUtils.DrawTrackerCount(row.Counts.FormattedSupported, row.Counts.IsSupportedComplete, row.Counts.IsSupportedEmpty); + ImGui.TableNextColumn(); + UiThemeUtils.DrawTrackerCount(row.Counts.FormattedCollected, row.Counts.IsCollectedComplete, row.Counts.IsCollectedEmpty); + } + return result; } - [MethodImpl(MethodImplOptions.NoInlining)] private void RebuildFlatRows() { List<FlatRow> list = new List<FlatRow>(); @@ -2522,7 +385,7 @@ internal sealed class GatheringJournalComponent ExpansionPoints expansion = filteredExpansion.Expansion; int expansionVersion = (int)expansion.ExpansionVersion; GatheringCounts counts = GatheringCounts.Create(expansion.CompletedPoints, expansion.TotalPoints, expansion.CompletedItems, expansion.TotalItems); - list.Add(new FlatRow(RowType.Expansion, 0, expansionVersion, _206F_206A_206D_206A_200C_200F_206A_200B_206B_202E_200C_200F_200B_202E_202A_206E_200C_202A_202C_206B_200E_206E_206F_206F_202C_206C_206F_206E_202C_206E_202D_206E_200E_206B_200D_202C_206A_202C_200F_202B_202E(expansion.ExpansionVersion), counts, IsPointComplete: false, 0, IsItemGathered: false)); + list.Add(new FlatRow(RowType.Expansion, 0, expansionVersion, expansion.ExpansionVersion.ToFriendlyString(), counts, IsPointComplete: false, 0, IsItemGathered: false)); if (!_expandedGroups.Contains((RowType.Expansion, expansionVersion))) { continue; @@ -2540,50 +403,18 @@ internal sealed class GatheringJournalComponent foreach (FilteredGatheringPoint gatheringPoint in territory2.GatheringPoints) { DefaultGatheringPoint point = gatheringPoint.Point; - int num = _202A_202B_200C_200D_202A_200E_200C_206E_206B_200F_206E_200D_206B_202B_200B_202E_200D_200B_202D_200E_206A_206A_202E_206B_206B_202E_206A_200C_202E_206C_206C_206F_206D_206F_206C_202D_206A_206B_200B_206D_202E(point.Id); + int value = point.Id.Value; GatheringCounts counts3 = GatheringCounts.Create(0, 0, point.CompletedItems, point.TotalItems); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(8, 3); - defaultInterpolatedStringHandler.AppendFormatted(point.PlaceName); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(588901087)); - defaultInterpolatedStringHandler.AppendFormatted(point.ClassJob); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2009216986)); - defaultInterpolatedStringHandler.AppendFormatted(point.Level); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - list.Add(new FlatRow(RowType.GatheringPoint, 2, num, defaultInterpolatedStringHandler.ToStringAndClear(), counts3, point.IsComplete, 0, IsItemGathered: false)); - if (!_expandedGroups.Contains((RowType.GatheringPoint, num))) + list.Add(new FlatRow(RowType.GatheringPoint, 2, value, $"{point.PlaceName} ({point.ClassJob} Lv. {point.Level})", counts3, point.IsComplete, 0, IsItemGathered: false)); + if (!_expandedGroups.Contains((RowType.GatheringPoint, value))) { continue; } - using List<ushort>.Enumerator enumerator4 = gatheringPoint.GatheringItemIds.GetEnumerator(); - int num2 = 1747781992; - while (true) + foreach (ushort gatheringItemId in gatheringPoint.GatheringItemIds) { - int num3 = num2; - int num4 = 1747781995; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = 1747781992; - break; - case 3: - num2 = (enumerator4.MoveNext() ? 1747781993 : 1747781994); - break; - case 2: - { - ushort current4 = enumerator4.Current; - string valueOrDefault = _gatheringItems.GetValueOrDefault(current4, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1347222299)); - bool isItemGathered = _gatheredItems.Contains(current4); - list.Add(new FlatRow(RowType.Item, 3, 0, valueOrDefault, default(GatheringCounts), IsPointComplete: false, current4, isItemGathered)); - num2 = 1747781992; - break; - } - case 1: - goto end_IL_020a; - } - continue; - end_IL_020a: - break; + string valueOrDefault = _gatheringItems.GetValueOrDefault(gatheringItemId, "???"); + bool isItemGathered = _gatheredItems.Contains(gatheringItemId); + list.Add(new FlatRow(RowType.Item, 3, 0, valueOrDefault, default(GatheringCounts), IsPointComplete: false, gatheringItemId, isItemGathered)); } } } @@ -2593,35 +424,20 @@ internal sealed class GatheringJournalComponent public void UpdateFilter() { - int num = ((!_202C_202C_200B_206B_206F_202E_206E_200E_202E_202C_202D_202D_200B_200B_206A_202A_206E_200D_206D_206A_206A_202B_202E_200F_206C_200C_202C_206E_202D_200F_202C_206C_200E_206A_202B_206D_206F_206D_200F_202E(_searchText)) ? 564615307 : 564615305); - Predicate<string> match = default(Predicate<string>); - while (true) + Predicate<string> match; + if (string.IsNullOrWhiteSpace(_searchText)) { - int num2 = num; - int num3 = 564615306; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - match = (string x) => _003C_003Ec__DisplayClass19_0._202D_206D_206E_206D_206E_202A_200F_206A_206C_202A_202D_200F_200C_202D_200E_206A_202E_206D_206D_202D_206B_200C_202A_200F_206B_206C_200F_202A_202C_206A_200F_206D_206C_202B_200F_206D_206C_202A_202B_200C_202E(x, _searchText, StringComparison.CurrentCultureIgnoreCase); - num = 564615304; - break; - case 3: - match = (string _) => true; - num = 564615304; - break; - case 0: - num = 564615305; - break; - case 2: - _filteredExpansions = (from section in _gatheringPointsByExpansion - select FilterExpansion(section, match) into x - where x != null - select x).Cast<FilteredExpansion>().ToList(); - RebuildFlatRows(); - return; - } + match = (string _) => true; } + else + { + match = (string x) => x.Contains(_searchText, StringComparison.CurrentCultureIgnoreCase); + } + _filteredExpansions = (from section in _gatheringPointsByExpansion + select FilterExpansion(section, match) into x + where x != null + select x).Cast<FilteredExpansion>().ToList(); + RebuildFlatRows(); } private FilteredExpansion? FilterExpansion(ExpansionPoints expansion, Predicate<string> match) @@ -2630,162 +446,64 @@ internal sealed class GatheringJournalComponent select FilterTerritory(x, match) into x where x != null select (x)).ToList(); - int num = ((list.Count <= 0) ? (-1280566856) : (-1280566853)); - while (true) + if (list.Count > 0) { - int num2 = num; - int num3 = -1280566854; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_00cb; - case 2: - return null; - case 1: - return new FilteredExpansion(expansion, list); - } - continue; - IL_00cb: - num = -1280566853; + return new FilteredExpansion(expansion, list); } + return null; } private FilteredTerritory? FilterTerritory(TerritoryPoints territory, Predicate<string> match) { - int num = ((!match(territory.TerritoryName)) ? 798766867 : 798766864); - List<FilteredGatheringPoint> list = default(List<FilteredGatheringPoint>); - while (true) + if (match(territory.TerritoryName)) { - int num2 = num; - int num3 = 798766866; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - list = (from x in territory.Points - select FilterGatheringPoint(x, match) into x - where x != null - select (x)).ToList(); - num = ((list.Count <= 0) ? 798766870 : 798766866); - break; - case 4: - return null; - case 3: - num = 798766864; - break; - case 2: - return new FilteredTerritory(territory, territory.Points.Select((DefaultGatheringPoint x) => FilterGatheringPoint(x, (string _) => true)).ToList()); - case 0: - return new FilteredTerritory(territory, list); - } + return new FilteredTerritory(territory, territory.Points.Select((DefaultGatheringPoint x) => FilterGatheringPoint(x, (string _) => true)).ToList()); } + List<FilteredGatheringPoint> list = (from x in territory.Points + select FilterGatheringPoint(x, match) into x + where x != null + select (x)).ToList(); + if (list.Count > 0) + { + return new FilteredTerritory(territory, list); + } + return null; } private FilteredGatheringPoint? FilterGatheringPoint(DefaultGatheringPoint gatheringPoint, Predicate<string> match) { - int num = ((!match(gatheringPoint.PlaceName ?? string.Empty)) ? 730370401 : 730370402); - List<ushort> list = default(List<ushort>); - while (true) + if (match(gatheringPoint.PlaceName ?? string.Empty)) { - int num2 = num; - int num3 = 730370400; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return null; - case 3: - return new FilteredGatheringPoint(gatheringPoint, list); - case 1: - list = gatheringPoint.GatheringItemIds.Where((ushort x) => match(_gatheringItems.GetValueOrDefault(x, string.Empty))).ToList(); - num = ((list.Count <= 0) ? 730370400 : 730370403); - break; - case 2: - return new FilteredGatheringPoint(gatheringPoint, gatheringPoint.GatheringItemIds); - case 4: - num = 730370402; - break; - } + return new FilteredGatheringPoint(gatheringPoint, gatheringPoint.GatheringItemIds); } + List<ushort> list = gatheringPoint.GatheringItemIds.Where((ushort x) => match(_gatheringItems.GetValueOrDefault(x, string.Empty))).ToList(); + if (list.Count > 0) + { + return new FilteredGatheringPoint(gatheringPoint, list); + } + return null; } internal void RefreshCounts() { _gatheredItems.Clear(); - using (Dictionary<int, string>.KeyCollection.Enumerator enumerator = _gatheringItems.Keys.GetEnumerator()) + foreach (int key in _gatheringItems.Keys) { - int num = 2008890764; - ushort item = default(ushort); - while (true) + ushort item = (ushort)key; + if (IsGatheringItemGathered(item)) { - int num2 = num; - int num3 = 2008890760; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 2008890764; - break; - case 1: - item = (ushort)enumerator.Current; - num = ((!IsGatheringItemGathered(item)) ? 2008890764 : 2008890762); - break; - case 4: - num = (enumerator.MoveNext() ? 2008890761 : 2008890763); - break; - case 2: - _gatheredItems.Add(item); - num = 2008890764; - break; - case 3: - goto end_IL_0028; - } - continue; - end_IL_0028: - break; + _gatheredItems.Add(item); } } foreach (ExpansionPoints item2 in _gatheringPointsByExpansion) { foreach (TerritoryPoints pointsByTerritory in item2.PointsByTerritories) { - using (List<DefaultGatheringPoint>.Enumerator enumerator4 = pointsByTerritory.Points.GetEnumerator()) + foreach (DefaultGatheringPoint point in pointsByTerritory.Points) { - int num = -305033941; - while (true) - { - int num5 = num; - int num3 = -305033942; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 3: - num = -305033941; - break; - case 1: - num = (enumerator4.MoveNext() ? (-305033944) : (-305033942)); - break; - case 2: - { - DefaultGatheringPoint current3 = enumerator4.Current; - current3.TotalItems = current3.GatheringItemIds.Count((ushort x) => x < 10000); - current3.CompletedItems = current3.GatheringItemIds.Count(_gatheredItems.Contains); - current3.IsComplete = _gatheringPointRegistry.TryGetGatheringPoint(current3.Id, out GatheringRoot _); - num = -305033941; - break; - } - case 0: - goto end_IL_0131; - } - continue; - end_IL_0131: - break; - } + point.TotalItems = point.GatheringItemIds.Count((ushort x) => x < 10000); + point.CompletedItems = point.GatheringItemIds.Count(_gatheredItems.Contains); + point.IsComplete = _gatheringPointRegistry.TryGetGatheringPoint(point.Id, out GatheringRoot _); } pointsByTerritory.TotalItems = pointsByTerritory.Points.Sum((DefaultGatheringPoint x) => x.TotalItems); pointsByTerritory.CompletedItems = pointsByTerritory.Points.Sum((DefaultGatheringPoint x) => x.CompletedItems); @@ -2809,164 +527,12 @@ internal sealed class GatheringJournalComponent { pointsByTerritory.CompletedItems = 0; pointsByTerritory.CompletedPoints = 0; - using List<DefaultGatheringPoint>.Enumerator enumerator3 = pointsByTerritory.Points.GetEnumerator(); - int num = 1467322152; - while (true) + foreach (DefaultGatheringPoint point in pointsByTerritory.Points) { - int num2 = num; - int num3 = 1467322153; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = 1467322152; - break; - case 2: - enumerator3.Current.IsComplete = false; - num = 1467322152; - break; - case 1: - num = (enumerator3.MoveNext() ? 1467322155 : 1467322153); - break; - case 0: - goto end_IL_0061; - } - continue; - end_IL_0061: - break; + point.IsComplete = false; } } } RebuildFlatRows(); } - - static void _206B_202E_202E_200F_202B_202E_206B_200D_202E_200F_202C_202A_200F_206A_202C_202A_202D_206A_200F_206F_200D_206D_200D_202E_206C_200B_206C_202D_206C_206C_202D_206E_206B_202B_206C_206E_200B_200F_206E_206C_202E(IGameInteropProvider P_0, object P_1) - { - P_0.InitializeFromAttributes(P_1); - } - - static void _206D_200C_206A_202B_202A_202C_200D_206E_200B_200B_206B_206C_200D_202D_206B_200E_206C_202E_202E_200C_200F_200E_200F_206E_200B_202E_200D_200C_206F_206A_206F_206A_202A_200E_206D_200D_206B_200B_200E_206E_202E() - { - ImGui.Separator(); - } - - static IUiBuilder _202D_202A_206B_202C_202E_206A_202E_206E_206C_200C_202E_202D_200D_206E_202C_206F_200E_202E_206F_202A_202D_206C_200C_206C_200F_200D_202A_200C_206B_206E_200E_202B_206F_202A_200B_200F_202E_206B_202D_202D_202E(IDalamudPluginInterface P_0) - { - return P_0.UiBuilder; - } - - static IFontHandle _202C_202D_200F_202D_202D_206F_206F_200F_206A_206C_202D_206E_202E_200B_200F_202C_206A_200F_206A_202C_202D_200C_200D_200F_200D_206B_200D_206F_200E_206C_202E_200C_206E_206C_206F_200B_200B_200C_202C_200F_202E(IUiBuilder P_0) - { - return P_0.IconFontFixedWidthHandle; - } - - static IDisposable _206D_202A_200E_200C_202C_200F_206A_200E_202B_206D_202A_200E_202D_206F_200F_206C_202A_200B_206F_200C_206A_206D_206E_202E_206C_202E_206B_200B_206F_202C_200D_202C_202E_200B_206F_200C_202C_200B_200F_202D_202E(IFontHandle P_0) - { - return P_0.Push(); - } - - static string _206C_206B_206B_202E_202A_206B_206C_206C_200B_200E_200D_206B_200F_200D_206A_202C_202B_200F_206D_206E_206E_206A_206F_202B_206C_202B_200D_202C_200B_206E_206B_200F_200E_206F_200F_206F_200B_200D_202D_206F_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static Vector2 _206B_202C_200F_206B_200F_202C_202D_206B_206A_206A_206F_202E_206C_206F_200B_200D_206E_206C_206D_206A_202E_206D_202A_202A_200E_206F_200E_206A_206D_200C_206E_202D_200F_206C_206A_206C_206E_206A_200F_202C_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static void _200E_200B_206C_200B_202D_206E_200D_200F_202A_206C_206D_206C_206B_200D_206E_206A_200F_202E_200C_206A_206A_206E_206E_200F_200E_206C_206B_202C_206E_206A_200B_202C_202C_200F_202D_206F_206C_206E_202D_200D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static ImGuiIOPtr _200B_202C_206F_200C_202E_206D_202B_206B_206D_206F_200D_202C_200C_206D_206E_206E_202B_202A_202D_202B_200B_200D_200B_200C_206D_206C_206E_202E_202A_202B_200B_202D_202D_202B_206B_200E_200E_202E_200D_206D_202E() - { - return ImGui.GetIO(); - } - - static void _200D_200F_202C_200B_202C_200E_200D_202D_206F_200F_206A_206C_206E_206B_202E_202C_200E_206E_206C_206E_200C_206B_200C_206C_200D_202B_206F_202B_206F_206E_202B_202C_200E_202D_202A_200C_202A_200B_202A_200C_202E(ImU8String P_0, ImGuiTableColumnFlags P_1, float P_2, uint P_3) - { - ImGui.TableSetupColumn(P_0, P_1, P_2, P_3); - } - - static void _202D_206B_206B_202C_200D_200D_200B_200D_206C_200D_206E_200F_206D_206C_206F_202C_206D_206D_200C_202C_206B_206A_206A_206B_206A_206C_202E_206D_202A_206B_202A_206B_200E_200C_202B_206D_206E_202B_200C_202B_202E() - { - ImGui.TableHeadersRow(); - } - - static float _206C_206F_206D_200D_200F_202D_202B_202E_200B_202C_202B_206E_200D_206A_200E_202D_202A_206E_206C_200B_202C_206C_202C_206B_202B_206C_202D_200E_202C_206F_202A_206D_202B_200B_200B_206F_206E_202E_202A_202E_202E() - { - return ImGui.GetTextLineHeightWithSpacing(); - } - - unsafe static ImGuiListClipper* _202A_202A_200B_206D_206E_206D_202B_200C_206A_202B_202C_202B_200F_200D_200C_202B_202B_206B_202A_206B_206D_206C_200B_206C_206B_206C_202E_202B_200E_206B_202B_200D_200E_202A_200D_200B_202A_200B_200D_206B_202E() - { - return ImGuiNative.ImGuiListClipper(); - } - - unsafe static void _200C_202E_206B_206F_200B_200C_206E_206F_200D_202D_200B_200C_202B_200D_206E_202D_206B_206E_202B_206B_206B_206E_200B_200E_206D_200C_202B_200C_202C_206A_206C_200D_200E_200B_202B_206B_202C_200D_202A_206F_202E(ImGuiListClipper* P_0, int P_1, float P_2) - { - ImGuiNative.Begin(P_0, P_1, P_2); - } - - static void _202E_200E_202D_206D_200E_206A_200C_202E_206A_200C_206B_206B_202C_202B_206C_200B_206D_206F_206D_206E_200F_200D_202B_202D_200E_202B_206F_206A_200E_200E_202D_206C_206C_202B_202B_202C_200E_202D_202B_202E_202E() - { - ImGui.TableNextRow(); - } - - static bool _202D_206F_202C_202E_206E_200B_206F_200B_200D_200D_206D_200F_200D_200B_206C_200D_200D_200D_200E_206E_202A_206D_206A_206D_200B_202B_200E_202E_200E_202A_206A_202A_202D_206E_206D_200E_202C_200B_206C_206C_202E() - { - return ImGui.TableNextColumn(); - } - - static ImGuiStylePtr _202B_206B_206E_200C_202B_200B_202D_200F_206E_206A_206B_200C_206B_206F_200E_202A_200D_200B_206C_202C_200F_202D_200D_206B_206E_202C_206E_200F_202A_200D_200E_200C_206D_200B_200F_202C_200F_206D_206F_202D_202E() - { - return ImGui.GetStyle(); - } - - static float _206B_202D_206B_206B_202E_200D_202E_202E_200F_206E_202D_206C_200D_206A_202C_206E_200D_202D_200E_200F_202E_206D_202E_206E_202E_206F_202C_206C_206D_200F_206A_206D_200F_202A_206A_200E_206A_200E_200E_206E_202E() - { - return ImGui.GetCursorPosX(); - } - - static void _202E_206A_206F_206D_206C_206B_200E_202A_200B_206B_200D_200B_202A_206B_206B_206E_202E_200C_202C_206E_202C_202B_200E_206A_206C_206E_200F_206A_206C_202E_200C_206F_206A_202C_206F_200C_206D_202E_202B_206C_202E(float P_0) - { - ImGui.SetCursorPosX(P_0); - } - - static bool _202D_202B_206F_206F_206F_202D_202D_206C_206C_200C_206D_200E_200F_200E_206E_200B_206A_202E_200B_206E_200D_202A_200B_202D_200F_200C_206E_206F_202B_200F_206A_202E_202E_202C_206B_206E_200C_206F_200C_206F_202E(ImU8String P_0, ImGuiTreeNodeFlags P_1, ImU8String P_2) - { - return ImGui.TreeNodeEx(P_0, P_1, P_2); - } - - static float _206B_202A_200E_206B_206A_206E_200E_200F_202E_202D_200F_206A_202D_202B_206B_206C_202E_200D_206A_202E_200D_202C_202A_200E_202D_206A_206D_200D_202B_202A_206A_206B_206B_202E_206B_202B_206F_206E_202B_202E() - { - return ImGui.GetColumnWidth(); - } - - static void _206B_206B_202C_202A_202E_206E_202A_202B_202B_200F_206B_206E_200E_200C_202B_200D_206E_206B_202A_206C_202E_200F_202C_206B_202E_206C_206C_202C_206C_206A_200E_200F_202D_202A_206B_206F_200E_200F_202B_200D_202E() - { - ImGui.SameLine(); - } - - static bool _202E_202C_206D_202B_200D_206C_200C_206A_206D_206F_202A_202D_202C_206D_202E_200C_206C_202E_200D_206B_206A_206D_200B_202A_200E_206E_200F_200D_202D_200F_200B_206C_200F_206E_206E_206E_200C_206B_206C_206E_202E(ImU8String P_0, bool P_1, ImGuiSelectableFlags P_2, Vector2 P_3) - { - return ImGui.Selectable(P_0, P_1, P_2, P_3); - } - - static string _206F_206A_206D_206A_200C_200F_206A_200B_206B_202E_200C_200F_200B_202E_202A_206E_200C_202A_202C_206B_200E_206E_206F_206F_202C_206C_206F_206E_202C_206E_202D_206E_200E_206B_200D_202C_206A_202C_200F_202B_202E(EExpansionVersion P_0) - { - return P_0.ToFriendlyString(); - } - - static ushort _202A_202B_200C_200D_202A_200E_200C_206E_206B_200F_206E_200D_206B_202B_200B_202E_200D_200B_202D_200E_206A_206A_202E_206B_206B_202E_206A_200C_202E_206C_206C_206F_206D_206F_206C_202D_206A_206B_200B_206D_202E(GatheringPointId P_0) - { - return P_0.Value; - } - - static bool _202C_202C_200B_206B_206F_202E_206E_200E_202E_202C_202D_202D_200B_200B_206A_202A_206E_200D_206D_206A_206A_202B_202E_200F_206C_200C_202C_206E_202D_200F_202C_206C_200E_206A_202B_206D_206F_206D_200F_202E(string P_0) - { - return string.IsNullOrWhiteSpace(P_0); - } } diff --git a/Questionable/Questionable.Windows.JournalComponents/JournalUiShared.cs b/Questionable/Questionable.Windows.JournalComponents/JournalUiShared.cs index 80c710e..7c25106 100644 --- a/Questionable/Questionable.Windows.JournalComponents/JournalUiShared.cs +++ b/Questionable/Questionable.Windows.JournalComponents/JournalUiShared.cs @@ -1,6 +1,5 @@ using System; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Interface.Utility.Raii; using Questionable.Controller.Utils; @@ -9,260 +8,58 @@ namespace Questionable.Windows.JournalComponents; internal static class JournalUiShared { - [MethodImpl(MethodImplOptions.NoInlining)] public static void DrawAllowanceHeader(int used, int limit, string unit, TimeSpan untilReset, string? tooltip = null) { - int num = used; - int num2 = limit; - int num3 = ~(~num2 + num); - int num4 = ((limit > 0) ? (-1046628758) : (-1046628759)); - Vector4 vector; - float num9 = default(float); - string text = default(string); - while (true) + int num = limit - used; + float fraction = ((limit > 0) ? ((float)num / (float)limit) : 0f); + string text = ExpiryUtils.FormatTimeSpan(untilReset); + Vector4 col = ((num > 0) ? UiThemeUtils.StatusComplete : UiThemeUtils.StatusLocked); + ImU8String text2 = new ImU8String(0, 1); + text2.AppendFormatted(num); + ImGui.TextColored(in col, text2); + ImGui.SameLine(0f, 4f); + ImU8String text3 = new ImU8String(13, 2); + text3.AppendLiteral("/ "); + text3.AppendFormatted(limit); + text3.AppendLiteral(" "); + text3.AppendFormatted(unit); + text3.AppendLiteral(" remaining"); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, text3); + string text4 = "Resets in " + text; + float y = ImGui.GetContentRegionMax().X - ImGui.CalcTextSize(text4).X; + ImGui.SameLine(0f, 0f); + ImGui.SameLine(MathF.Max(ImGui.GetCursorPosX() + ImGui.GetStyle().ItemSpacing.X, y)); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text4); + ImGui.Spacing(); + using (UiThemeUtils.PushProgressBarColors()) { - int num5 = num4; - num = -1046628757; - num2 = num5; - int num6 = num2 + num; - int num7 = num2 & num; - float num8; - switch (num6 - (num7 + num7)) - { - default: - continue; - case 3: - vector = UiThemeUtils.StatusLocked; - break; - case 2: - num8 = 0f; - goto IL_0094; - case 1: - num8 = (float)num3 / (float)limit; - goto IL_0094; - case 4: - num4 = -1046628759; - continue; - case 0: - { - vector = UiThemeUtils.StatusComplete; - break; - } - IL_0094: - num9 = num8; - text = ExpiryUtils.FormatTimeSpan(untilReset); - num4 = ((num3 > 0) ? (-1046628757) : (-1046628760)); - continue; - } - break; + Vector2 sizeArg = new Vector2(-1E-45f, 0f); + ImU8String overlay = new ImU8String(3, 2); + overlay.AppendFormatted(num); + overlay.AppendLiteral(" / "); + overlay.AppendFormatted(limit); + ImGui.ProgressBar(fraction, sizeArg, overlay); } - Vector4 vector2 = vector; - ImU8String imU8String = new ImU8String(0, 1); - imU8String.AppendFormatted(num3); - _200D_202A_200D_202A_202E_202E_202D_200B_200F_206B_200B_200F_200C_202B_200D_206C_200F_200F_202C_200D_202C_206E_202E_202E_202A_206B_202E_202E_206C_202A_200C_200C_200F_200C_206C_202D_202A_200B_206F_206F_202E(ref vector2, imU8String); - _206D_200E_202B_202E_200C_202A_206F_202A_200F_202E_200E_200B_202E_206B_200B_206C_200F_200B_202B_202A_206C_206D_202C_206B_202C_202C_200B_206F_202B_200E_200E_206D_200F_202A_206A_206B_206F_206E_200C_200F_202E(0f, 4f); - ImU8String imU8String2 = new ImU8String(13, 2); - imU8String2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1805890328)); - imU8String2.AppendFormatted(limit); - imU8String2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1051702537)); - imU8String2.AppendFormatted(unit); - imU8String2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1418557285)); - _200D_202A_200D_202A_202E_202E_202D_200B_200F_206B_200B_200F_200C_202B_200D_206C_200F_200F_202C_200D_202C_206E_202E_202E_202A_206B_202E_202E_206C_202A_200C_200C_200F_200C_206C_202D_202A_200B_206F_206F_202E(ref UiThemeUtils.MutedTextColor, imU8String2); - string text2 = _200E_206E_202E_206C_200F_202C_200C_202D_206B_202B_202C_206C_206F_200C_202E_200F_200C_206D_206D_200F_202C_200D_202D_206A_202D_206F_200C_202C_200C_200B_202B_202D_206E_202C_202B_206A_206E_200E_200E_206A_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-511196351), text); - float num10 = _200D_202D_200B_200F_200F_206F_202A_206C_206E_206A_206F_200C_206E_206D_206A_206B_206B_206B_206B_202D_202C_200E_202B_202A_202B_206B_206D_200B_200C_200E_200C_206B_206A_206E_200F_206C_200B_202E_206D_202A_202E().X - _200E_206E_206F_202B_202B_200B_202A_206C_206A_206B_200C_202C_200F_200F_206B_206F_206E_206B_200E_202E_202D_200C_200B_200C_206E_200C_202A_202A_206B_200B_202B_206E_200E_206E_200D_206C_206F_206F_202C_206C_202E((ImU8String)text2, false, -1f).X; - _206D_200E_202B_202E_200C_202A_206F_202A_200F_202E_200E_200B_202E_206B_200B_206C_200F_200B_202B_202A_206C_206D_202C_206B_202C_202C_200B_206F_202B_200E_200E_206D_200F_202A_206A_206B_206F_206E_200C_200F_202E(0f, 0f); - _202D_200C_202C_202A_200C_202A_200D_200B_202B_206C_200E_200E_206E_200B_202E_200D_200F_200F_200C_206C_206C_202D_206C_200C_206B_202E_206F_200B_202B_200F_200E_200F_200D_206B_200D_206B_200D_206D_206F_200E_202E(_202C_206A_202E_200D_202B_206E_202D_206B_202A_200C_202C_206A_206D_206F_200D_202D_202D_206D_206F_200D_202D_202B_206D_206D_202D_200D_200F_206D_206E_202A_202C_206C_200C_200C_206C_200C_206F_206F_206E_200C_202E(_200C_206B_206A_200F_202A_202D_200E_206F_200B_206B_200C_200C_202D_200B_206C_202C_202D_202C_202E_200E_200F_200B_200D_200F_200F_206A_202E_206E_206E_206C_206B_200B_200E_200B_202D_206F_200E_202E_206D_200E_202E() + _206A_202C_206E_206A_202D_206B_200D_206C_202D_206D_202E_206E_202E_202A_200D_200E_200D_202D_202D_206C_202B_206E_200D_206F_202C_206E_202C_202A_206C_200D_200D_200C_206A_206A_206A_200D_202E_202E_206D_202E().ItemSpacing.X, num10)); - _200D_202A_200D_202A_202E_202E_202D_200B_200F_206B_200B_200F_200C_202B_200D_206C_200F_200F_202C_200D_202C_206E_202E_202E_202A_206B_202E_202E_206C_202A_200C_200C_200F_200C_206C_202D_202A_200B_206F_206F_202E(ref UiThemeUtils.DimTextColor, (ImU8String)text2); - _202E_206B_200E_206B_202A_202A_206C_206C_202C_200D_200C_206A_206A_206A_202E_200E_206F_202A_206A_200D_206C_206C_200C_200B_202B_206D_200C_206D_200D_200E_202E_200E_206E_206C_206B_202A_202B_200E_206D_202E(); - ImRaii.ColorDisposable colorDisposable = UiThemeUtils.PushProgressBarColors(); - try + if (tooltip != null && ImGui.IsItemHovered()) { - float num11 = num9; - Vector2 vector3 = new Vector2(-1E-45f, 0f); - ImU8String imU8String3 = new ImU8String(3, 2); - imU8String3.AppendFormatted(num3); - imU8String3.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2014446916)); - imU8String3.AppendFormatted(limit); - _202B_206D_206F_206A_202E_202A_206D_206B_200D_206A_202C_202B_200B_200E_202E_206C_206B_200B_200E_202C_200C_202D_200E_202B_206A_200C_202E_202E_206F_200F_206E_206A_202C_202E_200F_206E_200E_206A_206E_206A_202E(num11, vector3, imU8String3); - } - finally - { - num4 = ((colorDisposable == null) ? (-829553128) : (-829553127)); - while (true) + using ImRaii.TooltipDisposable tooltipDisposable = ImRaii.Tooltip(); + if (tooltipDisposable.Alive) { - int num12 = num4; - num = -829553128; - num2 = num12; - int num13 = num2 + num; - int num14 = num2 & num; - switch (num13 - (num14 + num14)) - { - case 2: - num4 = -829553127; - break; - case 1: - _202A_206D_200F_202E_202D_206D_200C_206A_202B_200B_202E_200B_206E_206D_200E_206A_202D_206E_202E_200C_202E_206B_200F_206B_200F_206F_202D_200E_202E_202D_202E_206A_200B_202A_206F_200B_200E_200B_206E_206E_202E((IDisposable)colorDisposable); - num4 = -829553128; - break; - case 0: - goto end_IL_023b; - } - continue; - end_IL_023b: - break; + DateTime value = (DateTime.UtcNow + untilReset).ToLocalTime(); + ImGui.TextUnformatted(tooltip); + ImGui.Spacing(); + ImGui.Separator(); + ImGui.Spacing(); + ImU8String text5 = new ImU8String(12, 1); + text5.AppendLiteral("Next reset: "); + text5.AppendFormatted(value, "g"); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text5); + ImU8String text6 = new ImU8String(18, 1); + text6.AppendLiteral("Time until reset: "); + text6.AppendFormatted(text); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text6); } } - if (tooltip != null) - { - num4 = 193452767; - while (true) - { - int num15 = num4; - num = 193452766; - num2 = num15; - switch ((num2 | num) - (num2 & num)) - { - default: - continue; - case 0: - num4 = 193452767; - continue; - case 1: - if (_206B_202C_202E_206E_202D_206E_202B_206C_200B_202E_200B_202B_200C_206E_206F_206E_202D_202A_202E_202E_202E_202D_202D_200D_206A_200F_200C_200C_202A_200F_200C_200B_200B_200B_202C_206A_200F_202D_200F_200E_202E()) - { - num4 = 193452764; - continue; - } - break; - case 2: - { - using (ImRaii.TooltipDisposable tooltipDisposable = _206D_202C_206D_206E_202E_206E_206B_200D_206D_202B_206D_202B_206B_202A_202E_200E_202E_206F_202C_206C_200E_206C_206A_200C_202A_206C_206D_206E_206B_202C_206E_206D_202C_206B_200F_202B_206C_200C_202B_206F_202E()) - { - num4 = ((!tooltipDisposable.Alive) ? 275444392 : 275444395); - while (true) - { - int num16 = num4; - num = 275444394; - num2 = num16; - int num17 = num2 + num; - int num18 = num2 & num; - switch (num17 - (num18 + num18)) - { - case 0: - num4 = 275444395; - break; - case 1: - { - DateTime value = (DateTime.UtcNow + untilReset).ToLocalTime(); - _200C_206D_202C_206A_202D_206A_202E_206D_202B_202C_200E_200B_206B_206F_206F_202A_206B_206D_200F_202C_200C_200F_206A_202C_206A_202D_200D_200B_200F_202B_200D_202D_200B_202E_202B_202A_200F_202E_200B_200D_202E((ImU8String)tooltip); - _202E_206B_200E_206B_202A_202A_206C_206C_202C_200D_200C_206A_206A_206A_202E_200E_206F_202A_206A_200D_206C_206C_200C_200B_202B_206D_200C_206D_200D_200E_202E_200E_206E_206C_206B_202A_202B_200E_206D_202E(); - _200B_202C_200D_200B_206B_206B_200C_202C_200E_206C_202E_202D_200D_206D_200E_202D_206C_206C_202C_202D_200D_200D_206B_200B_206B_202C_202E_202A_206E_206B_202D_200C_206A_200F_206D_200C_202D_202C_206D_200F_202E(); - _202E_206B_200E_206B_202A_202A_206C_206C_202C_200D_200C_206A_206A_206A_202E_200E_206F_202A_206A_200D_206C_206C_200C_200B_202B_206D_200C_206D_200D_200E_202E_200E_206E_206C_206B_202A_202B_200E_206D_202E(); - ImU8String imU8String4 = new ImU8String(12, 1); - imU8String4.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1379764332)); - imU8String4.AppendFormatted(value, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1889225892)); - _200D_202A_200D_202A_202E_202E_202D_200B_200F_206B_200B_200F_200C_202B_200D_206C_200F_200F_202C_200D_202C_206E_202E_202E_202A_206B_202E_202E_206C_202A_200C_200C_200F_200C_206C_202D_202A_200B_206F_206F_202E(ref UiThemeUtils.DimTextColor, imU8String4); - ImU8String imU8String5 = new ImU8String(18, 1); - imU8String5.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-706515777)); - imU8String5.AppendFormatted(text); - _200D_202A_200D_202A_202E_202E_202D_200B_200F_206B_200B_200F_200C_202B_200D_206C_200F_200F_202C_200D_202C_206E_202E_202E_202A_206B_202E_202E_206C_202A_200C_200C_200F_200C_206C_202D_202A_200B_206F_206F_202E(ref UiThemeUtils.DimTextColor, imU8String5); - num4 = 275444392; - break; - } - case 2: - goto end_IL_0315; - } - continue; - end_IL_0315: - break; - } - } - break; - } - } - break; - } - } - _202E_206B_200E_206B_202A_202A_206C_206C_202C_200D_200C_206A_206A_206A_202E_200E_206F_202A_206A_200D_206C_206C_200C_200B_202B_206D_200C_206D_200D_200E_202E_200E_206E_206C_206B_202A_202B_200E_206D_202E(); - } - - static void _200D_202A_200D_202A_202E_202E_202D_200B_200F_206B_200B_200F_200C_202B_200D_206C_200F_200F_202C_200D_202C_206E_202E_202E_202A_206B_202E_202E_206C_202A_200C_200C_200F_200C_206C_202D_202A_200B_206F_206F_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static void _206D_200E_202B_202E_200C_202A_206F_202A_200F_202E_200E_200B_202E_206B_200B_206C_200F_200B_202B_202A_206C_206D_202C_206B_202C_202C_200B_206F_202B_200E_200E_206D_200F_202A_206A_206B_206F_206E_200C_200F_202E(float P_0, float P_1) - { - ImGui.SameLine(P_0, P_1); - } - - static string _200E_206E_202E_206C_200F_202C_200C_202D_206B_202B_202C_206C_206F_200C_202E_200F_200C_206D_206D_200F_202C_200D_202D_206A_202D_206F_200C_202C_200C_200B_202B_202D_206E_202C_202B_206A_206E_200E_200E_206A_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static Vector2 _200D_202D_200B_200F_200F_206F_202A_206C_206E_206A_206F_200C_206E_206D_206A_206B_206B_206B_206B_202D_202C_200E_202B_202A_202B_206B_206D_200B_200C_200E_200C_206B_206A_206E_200F_206C_200B_202E_206D_202A_202E() - { - return ImGui.GetContentRegionMax(); - } - - static Vector2 _200E_206E_206F_202B_202B_200B_202A_206C_206A_206B_200C_202C_200F_200F_206B_206F_206E_206B_200E_202E_202D_200C_200B_200C_206E_200C_202A_202A_206B_200B_202B_206E_200E_206E_200D_206C_206F_206F_202C_206C_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static float _200C_206B_206A_200F_202A_202D_200E_206F_200B_206B_200C_200C_202D_200B_206C_202C_202D_202C_202E_200E_200F_200B_200D_200F_200F_206A_202E_206E_206E_206C_206B_200B_200E_200B_202D_206F_200E_202E_206D_200E_202E() - { - return ImGui.GetCursorPosX(); - } - - static ImGuiStylePtr _206A_202C_206E_206A_202D_206B_200D_206C_202D_206D_202E_206E_202E_202A_200D_200E_200D_202D_202D_206C_202B_206E_200D_206F_202C_206E_202C_202A_206C_200D_200D_200C_206A_206A_206A_200D_202E_202E_206D_202E() - { - return ImGui.GetStyle(); - } - - static float _202C_206A_202E_200D_202B_206E_202D_206B_202A_200C_202C_206A_206D_206F_200D_202D_202D_206D_206F_200D_202D_202B_206D_206D_202D_200D_200F_206D_206E_202A_202C_206C_200C_200C_206C_200C_206F_206F_206E_200C_202E(float P_0, float P_1) - { - return MathF.Max(P_0, P_1); - } - - static void _202D_200C_202C_202A_200C_202A_200D_200B_202B_206C_200E_200E_206E_200B_202E_200D_200F_200F_200C_206C_206C_202D_206C_200C_206B_202E_206F_200B_202B_200F_200E_200F_200D_206B_200D_206B_200D_206D_206F_200E_202E(float P_0) - { - ImGui.SameLine(P_0); - } - - static void _202E_206B_200E_206B_202A_202A_206C_206C_202C_200D_200C_206A_206A_206A_202E_200E_206F_202A_206A_200D_206C_206C_200C_200B_202B_206D_200C_206D_200D_200E_202E_200E_206E_206C_206B_202A_202B_200E_206D_202E() - { ImGui.Spacing(); } - - static void _202B_206D_206F_206A_202E_202A_206D_206B_200D_206A_202C_202B_200B_200E_202E_206C_206B_200B_200E_202C_200C_202D_200E_202B_206A_200C_202E_202E_206F_200F_206E_206A_202C_202E_200F_206E_200E_206A_206E_206A_202E(float P_0, Vector2 P_1, ImU8String P_2) - { - ImGui.ProgressBar(P_0, P_1, P_2); - } - - static void _202A_206D_200F_202E_202D_206D_200C_206A_202B_200B_202E_200B_206E_206D_200E_206A_202D_206E_202E_200C_202E_206B_200F_206B_200F_206F_202D_200E_202E_202D_202E_206A_200B_202A_206F_200B_200E_200B_206E_206E_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool _206B_202C_202E_206E_202D_206E_202B_206C_200B_202E_200B_202B_200C_206E_206F_206E_202D_202A_202E_202E_202E_202D_202D_200D_206A_200F_200C_200C_202A_200F_200C_200B_200B_200B_202C_206A_200F_202D_200F_200E_202E() - { - return ImGui.IsItemHovered(); - } - - static ImRaii.TooltipDisposable _206D_202C_206D_206E_202E_206E_206B_200D_206D_202B_206D_202B_206B_202A_202E_200E_202E_206F_202C_206C_200E_206C_206A_200C_202A_206C_206D_206E_206B_202C_206E_206D_202C_206B_200F_202B_206C_200C_202B_206F_202E() - { - return ImRaii.Tooltip(); - } - - static void _200C_206D_202C_206A_202D_206A_202E_206D_202B_202C_200E_200B_206B_206F_206F_202A_206B_206D_200F_202C_200C_200F_206A_202C_206A_202D_200D_200B_200F_202B_200D_202D_200B_202E_202B_202A_200F_202E_200B_200D_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static void _200B_202C_200D_200B_206B_206B_200C_202C_200E_206C_202E_202D_200D_206D_200E_202D_206C_206C_202C_202D_200D_200D_206B_200B_206B_202C_202E_202A_206E_206B_202D_200C_206A_200F_206D_200C_202D_202C_206D_200F_202E() - { - ImGui.Separator(); - } } diff --git a/Questionable/Questionable.Windows.JournalComponents/QuestChainComponent.cs b/Questionable/Questionable.Windows.JournalComponents/QuestChainComponent.cs index 7e085a0..0270330 100644 --- a/Questionable/Questionable.Windows.JournalComponents/QuestChainComponent.cs +++ b/Questionable/Questionable.Windows.JournalComponents/QuestChainComponent.cs @@ -2,11 +2,8 @@ using System; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Bindings.ImGui; using Dalamud.Game.Text.SeStringHandling.Payloads; -using Dalamud.Interface.Textures; using Dalamud.Interface.Textures.TextureWraps; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin.Services; @@ -25,102 +22,7 @@ namespace Questionable.Windows.JournalComponents; internal sealed class QuestChainComponent { - private readonly record struct QuestStatusEntry(Vector4 Color, bool IsCompleted) - { - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206F_200E_206D_206A_202B_200D_206C_200E_206B_202D_206C_200E_200C_200C_202C_206E_202E_206B_202A_200C_206F_206A_200E_202E_206C_206A_206C_200B_206B_200C_200E_200E_202B_200B_202E_202D_206F_200D_200C_202B_202E(); - _200B_206C_206B_200C_202B_200B_200E_200B_200F_200D_202A_206A_206F_202A_206E_202D_202E_206A_200F_200F_200C_206F_200B_200F_206F_202C_202D_200D_206B_202B_206F_206B_206F_206C_200F_200F_206B_200D_200B_200C_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(77884628)); - _200B_206C_206B_200C_202B_200B_200E_200B_200F_200D_202A_206A_206F_202A_206E_202D_202E_206A_200F_200F_200C_206F_200B_200F_206F_202C_202D_200D_206B_202B_206F_206B_206F_206C_200F_200F_206B_200D_200B_200C_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? 449897545 : 449897544); - while (true) - { - int num2 = num; - int num3 = 449897545; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _200D_200F_202D_200D_202B_206C_200F_206F_202C_202D_200B_200F_206F_206A_206B_206A_206A_202A_202A_200F_202B_202B_202E_206B_202A_202C_206C_206B_200E_202E_206B_200B_202A_202C_202E_202A_202A_200B_202D_202E(stringBuilder, '}'); - return _200C_202D_202E_206D_200B_206A_200D_200F_200C_200F_202E_206B_200C_200C_206B_200B_206C_206F_202B_200C_202E_200D_200F_202B_202B_206C_200D_206D_202E_202B_200B_202E_200D_206D_202D_206C_200E_206B_202D_202B_202E((object)stringBuilder); - case 1: - _200D_200F_202D_200D_202B_206C_200F_206F_202C_202D_200B_200F_206F_206A_206B_206A_206A_202A_202A_200F_202B_202B_202E_206B_202A_202C_206C_206B_200E_202E_206B_200B_202A_202C_202E_202A_202A_200B_202D_202E(stringBuilder, ' '); - num = 449897545; - break; - case 2: - num = 449897544; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200B_206C_206B_200C_202B_200B_200E_200B_200F_200D_202A_206A_206F_202A_206E_202D_202E_206A_200F_200F_200C_206F_200B_200F_206F_202C_202D_200D_206B_202B_206F_206B_206F_206C_200F_200F_206B_200D_200B_200C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1684412883)); - _200B_206C_206B_200C_202B_200B_200E_200B_200F_200D_202A_206A_206F_202A_206E_202D_202E_206A_200F_200F_200C_206F_200B_200F_206F_202C_202D_200D_206B_202B_206F_206B_206F_206C_200F_200F_206B_200D_200B_200C_202E(builder, Color.ToString()); - _200B_206C_206B_200C_202B_200B_200E_200B_200F_200D_202A_206A_206F_202A_206E_202D_202E_206A_200F_200F_200C_206F_200B_200F_206F_202C_202D_200D_206B_202B_206F_206B_206F_206C_200F_200F_206B_200D_200B_200C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-315537476)); - _200B_206C_206B_200C_202B_200B_200E_200B_200F_200D_202A_206A_206F_202A_206E_202D_202E_206A_200F_200F_200C_206F_200B_200F_206F_202C_202D_200D_206B_202B_206F_206B_206F_206C_200F_200F_206B_200D_200B_200C_202E(builder, IsCompleted.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(QuestStatusEntry other) - { - int num = ((!EqualityComparer<Vector4>.Default.Equals(Color, other.Color)) ? 674746801 : 674746802); - while (true) - { - int num2 = num; - int num3 = 674746800; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0058; - case 1: - return false; - case 2: - return EqualityComparer<bool>.Default.Equals(IsCompleted, other.IsCompleted); - } - continue; - IL_0058: - num = 674746802; - } - } - - bool IEquatable<QuestStatusEntry>.Equals(QuestStatusEntry other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _206F_200E_206D_206A_202B_200D_206C_200E_206B_202D_206C_200E_200C_200C_202C_206E_202E_206B_202A_200C_206F_206A_200E_202E_206C_206A_206C_200B_206B_200C_200E_200E_202B_200B_202E_202D_206F_200D_200C_202B_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200B_206C_206B_200C_202B_200B_200E_200B_200F_200D_202A_206A_206F_202A_206E_202D_202E_206A_200F_200F_200C_206F_200B_200F_206F_202C_202D_200D_206B_202B_206F_206B_206F_206C_200F_200F_206B_200D_200B_200C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200D_200F_202D_200D_202B_206C_200F_206F_202C_202D_200B_200F_206F_206A_206B_206A_206A_202A_202A_200F_202B_202B_202E_206B_202A_202C_206C_206B_200E_202E_206B_200B_202A_202C_202E_202A_202A_200B_202D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200C_202D_202E_206D_200B_206A_200D_200F_200C_200F_202E_206B_200C_200C_206B_200B_206C_206F_202B_200C_202E_200D_200F_202B_202B_206C_200D_206D_202E_202B_200B_202E_200D_206D_202D_206C_200E_206B_202D_202B_202E(object P_0) - { - return P_0.ToString(); - } - } + private readonly record struct QuestStatusEntry(Vector4 Color, bool IsCompleted); private sealed class CachedGraphLayout { @@ -133,172 +35,9 @@ internal sealed class QuestChainComponent public required Dictionary<QuestId, string> TruncatedLabels { get; init; } } - private readonly record struct NodeStatusEntry(Vector4 BgColor, bool IsDone) - { - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200E_200E_206C_202D_206E_200B_200F_206E_206C_200E_202A_206B_206E_206D_202B_202B_206B_200C_202E_202C_200E_202C_200C_202B_202A_206F_200E_202C_200B_200D_206A_206C_200F_200F_202D_200C_202B_202C_200E_200E_202E(); - _206D_202E_206F_206C_202B_200D_206D_202C_200B_200C_206A_206F_206E_202A_206C_200F_206E_206F_206B_202B_200C_200F_200C_206B_206C_202A_202D_200F_206B_206D_206C_202A_202C_202A_206A_202E_206E_200B_202E_202B_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1670769430)); - _206D_202E_206F_206C_202B_200D_206D_202C_200B_200C_206A_206F_206E_202A_206C_200F_206E_206F_206B_202B_200C_200F_200C_206B_206C_202A_202D_200F_206B_206D_206C_202A_202C_202A_206A_202E_206E_200B_202E_202B_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? (-76710960) : (-76710957)); - while (true) - { - int num2 = num; - int num3 = -76710959; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -76710957; - break; - case 2: - _206F_200B_202C_200B_206C_202A_202B_200C_200B_200B_206C_200F_206F_206F_200B_202C_206E_200E_206B_206F_202C_200F_206E_206D_202B_206A_200B_200E_200D_202A_206A_200E_206D_200C_202B_202D_206A_202E_200E_202E_202E(stringBuilder, ' '); - num = -76710960; - break; - case 1: - _206F_200B_202C_200B_206C_202A_202B_200C_200B_200B_206C_200F_206F_206F_200B_202C_206E_200E_206B_206F_202C_200F_206E_206D_202B_206A_200B_200E_200D_202A_206A_200E_206D_200C_202B_202D_206A_202E_200E_202E_202E(stringBuilder, '}'); - return _202B_200C_206A_206D_206F_200E_206D_200E_206F_206D_206F_206D_206B_202D_200D_202C_206A_202A_206A_206D_200B_202D_206A_200E_200B_200C_206B_206A_200E_200F_202D_200B_202A_202A_200F_206D_200B_202E_202C_200C_202E((object)stringBuilder); - } - } - } + private readonly record struct NodeStatusEntry(Vector4 BgColor, bool IsDone); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206D_202E_206F_206C_202B_200D_206D_202C_200B_200C_206A_206F_206E_202A_206C_200F_206E_206F_206B_202B_200C_200F_200C_206B_206C_202A_202D_200F_206B_206D_206C_202A_202C_202A_206A_202E_206E_200B_202E_202B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(760482231)); - _206D_202E_206F_206C_202B_200D_206D_202C_200B_200C_206A_206F_206E_202A_206C_200F_206E_206F_206B_202B_200C_200F_200C_206B_206C_202A_202D_200F_206B_206D_206C_202A_202C_202A_206A_202E_206E_200B_202E_202B_202E(builder, BgColor.ToString()); - _206D_202E_206F_206C_202B_200D_206D_202C_200B_200C_206A_206F_206E_202A_206C_200F_206E_206F_206B_202B_200C_200F_200C_206B_206C_202A_202D_200F_206B_206D_206C_202A_202C_202A_206A_202E_206E_200B_202E_202B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1200737210)); - _206D_202E_206F_206C_202B_200D_206D_202C_200B_200C_206A_206F_206E_202A_206C_200F_206E_206F_206B_202B_200C_200F_200C_206B_206C_202A_202D_200F_206B_206D_206C_202A_202C_202A_206A_202E_206E_200B_202E_202B_202E(builder, IsDone.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(NodeStatusEntry other) - { - int num = ((!EqualityComparer<Vector4>.Default.Equals(BgColor, other.BgColor)) ? (-287632482) : (-287632481)); - while (true) - { - int num2 = num; - int num3 = -287632482; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0056; - case 1: - return EqualityComparer<bool>.Default.Equals(IsDone, other.IsDone); - case 0: - return false; - } - continue; - IL_0056: - num = -287632481; - } - } - - bool IEquatable<NodeStatusEntry>.Equals(NodeStatusEntry other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _200E_200E_206C_202D_206E_200B_200F_206E_206C_200E_202A_206B_206E_206D_202B_202B_206B_200C_202E_202C_200E_202C_200C_202B_202A_206F_200E_202C_200B_200D_206A_206C_200F_200F_202D_200C_202B_202C_200E_200E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206D_202E_206F_206C_202B_200D_206D_202C_200B_200C_206A_206F_206E_202A_206C_200F_206E_206F_206B_202B_200C_200F_200C_206B_206C_202A_202D_200F_206B_206D_206C_202A_202C_202A_206A_202E_206E_200B_202E_202B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206F_200B_202C_200B_206C_202A_202B_200C_200B_200B_206C_200F_206F_206F_200B_202C_206E_200E_206B_206F_202C_200F_206E_206D_202B_206A_200B_200E_200D_202A_206A_200E_206D_200C_202B_202D_206A_202E_200E_202E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202B_200C_206A_206D_206F_200E_206D_200E_206F_206D_206F_206D_206B_202D_200D_202C_206A_202A_206A_206D_200B_202D_206A_200E_200B_200C_206B_206A_200E_200F_202D_200B_202A_202A_200F_206D_200B_202E_202C_200C_202E(object P_0) - { - return P_0.ToString(); - } - } - - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<KeyValuePair<ElementId, IQuestInfo>, bool> _003C_003E9__67_0; - - public static Func<KeyValuePair<ElementId, IQuestInfo>, IQuestInfo> _003C_003E9__67_1; - - public static Func<IQuestInfo, bool> _003C_003E9__67_2; - - public static Func<IQuestInfo, bool> _003C_003E9__67_3; - - public static Func<IQuestInfo, string> _003C_003E9__67_6; - - public static Predicate<List<QuestId>> _003C_003E9__78_0; - - public static Func<int, bool> _003C_003E9__85_1; - - internal bool _003CRebuildFilteredQuests_003Eb__67_0(KeyValuePair<ElementId, IQuestInfo> kvp) - { - return kvp.Key is QuestId; - } - - internal IQuestInfo _003CRebuildFilteredQuests_003Eb__67_1(KeyValuePair<ElementId, IQuestInfo> kvp) - { - return kvp.Value; - } - - internal bool _003CRebuildFilteredQuests_003Eb__67_2(IQuestInfo q) - { - return !_202C_200C_206E_206C_200C_202B_206A_200B_200C_202C_206F_206B_202B_206D_200E_206E_200D_200F_202A_200B_202B_202E_202A_202D_202B_206E_200D_206D_200D_200E_200C_200F_200E_202D_206E_206E_200E_200D_202B_200E_202E(q.Name); - } - - internal bool _003CRebuildFilteredQuests_003Eb__67_3(IQuestInfo q) - { - return q.Expansion != (EExpansionVersion)255; - } - - internal string _003CRebuildFilteredQuests_003Eb__67_6(IQuestInfo q) - { - return q.Name; - } - - internal bool _003CComputeLayout_003Eb__78_0(List<QuestId> l) - { - return l.Count == 0; - } - - internal bool _003CComputeBarycenters_003Eb__85_1(int idx) - { - return idx >= 0; - } - - static bool _202C_200C_206E_206C_200C_202B_206A_200B_200C_202C_206F_206B_202B_206D_200E_206E_200D_200F_202A_200B_202B_202E_202A_202D_202B_206E_200D_206D_200D_200E_200C_200F_200E_202D_206E_206E_200E_200D_202B_200E_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - } - - private static readonly string[] ExpansionNames = new string[7] - { - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-20470898), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(177882678), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(490686755), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1949433356), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1218159025), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(953450628), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1495297306) - }; + private static readonly string[] ExpansionNames = new string[7] { "All", "A Realm Reborn", "Heavensward", "Stormblood", "Shadowbringers", "Endwalker", "Dawntrail" }; private readonly QuestChainBuilder _questChainBuilder; @@ -420,64 +159,32 @@ internal sealed class QuestChainComponent public void DrawQuestChain() { - int num = (_200B_202E_206B_206B_206E_206D_202B_202C_206D_200F_206C_206A_202E_206F_200C_206F_200D_200E_202C_202C_206F_202D_200F_206C_202C_200E_206F_206A_202A_200C_200E_200F_200E_202D_202A_202D_200B_206B_200E_202D_202E(_searchText, _previousSearchText) ? (-830776698) : (-830776689)); - float num7 = default(float); - Vector2 vector = default(Vector2); - float width = default(float); - while (true) + if (_searchText != _previousSearchText || _selectedExpansion != _previousExpansion) { - int num2 = num; - int num3 = -830776690; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = -830776689; - break; - case 8: - _filterDirty = true; - _previousSearchText = _searchText; - _previousExpansion = _selectedExpansion; - num = -830776695; - break; - case 2: - DrawDetailPanel(num7, vector.Y); - num = -830776697; - break; - case 3: - RebuildFilteredQuests(); - _filterDirty = false; - num = -830776693; - break; - case 7: - num = ((!_filterDirty) ? (-830776693) : (-830776691)); - break; - case 6: - DrawQuestList(num7, vector.Y); - num = -830776697; - break; - case 0: - num = ((!_206D_206A_206B_202D_200F_202B_202E_202A_206E_202A_206C_206F_202B_202B_202C_206D_202C_200B_200D_200C_206C_206A_202D_206A_206D_206B_200F_202D_202E_206D_206F_206B_202A_202D_202B_200C_206F_200E_202E_206E_202E(_selectedQuestId, (ElementId)null)) ? (-830776696) : (-830776692)); - break; - case 1: - num = ((_selectedExpansion == _previousExpansion) ? (-830776695) : (-830776698)); - break; - case 5: - DrawSearchBar(); - _200C_202E_202B_202A_200D_202C_202D_200D_202C_200D_206F_200F_200B_200C_206E_200C_206A_200F_206A_200D_206A_200F_200E_200B_200B_202B_200F_206C_206C_202A_200F_202C_206E_200B_202A_202B_206F_202B_202B_202B_202E(); - vector = _206F_200B_200E_206C_200E_200B_206B_206E_200E_206C_206E_206E_202B_202A_206B_202C_200C_202A_206B_202D_206C_202D_202D_200F_206B_200E_200B_206B_202A_206A_206D_200F_206D_206E_202B_200B_200C_206D_200C_202A_202E(); - num7 = _206D_200F_206A_200F_206D_202C_202E_202E_206F_206C_200C_206A_202E_202E_206E_202C_206A_202B_206B_206B_206A_206F_202A_202C_202A_200E_202D_200F_206B_200F_202C_206B_206B_206E_206F_200C_202E_202C_206F_202E(vector.X * 0.25f, 180f); - width = vector.X - num7 - _202C_206F_206D_206C_200D_202A_206E_202A_206A_206B_200B_206B_202B_202D_202C_200E_206E_206C_206F_206B_200E_206E_206E_200C_200D_202E_202D_206E_206D_206E_202A_200C_206E_200C_200C_206E_202D_202E_202A_206C_202E().ItemSpacing.X; - num = ((!_showDetail) ? (-830776696) : (-830776690)); - break; - case 9: - _206F_202C_206E_206C_200D_202B_200C_206D_200E_202A_206F_206C_200B_206A_200D_206A_200D_200C_200D_206A_202D_202B_200C_202A_200C_206F_202A_200B_206B_202B_202B_200C_202A_200E_200E_202C_206A_200B_202B_206B_202E(); - DrawChainPanel(width, vector.Y); - return; - } + _filterDirty = true; + _previousSearchText = _searchText; + _previousExpansion = _selectedExpansion; } + if (_filterDirty) + { + RebuildFilteredQuests(); + _filterDirty = false; + } + DrawSearchBar(); + ImGui.Separator(); + Vector2 contentRegionAvail = ImGui.GetContentRegionAvail(); + float num = MathF.Max(contentRegionAvail.X * 0.25f, 180f); + float width = contentRegionAvail.X - num - ImGui.GetStyle().ItemSpacing.X; + if (_showDetail && _selectedQuestId != null) + { + DrawDetailPanel(num, contentRegionAvail.Y); + } + else + { + DrawQuestList(num, contentRegionAvail.Y); + } + ImGui.SameLine(); + DrawChainPanel(width, contentRegionAvail.Y); } public void SelectQuest(ElementId questId) @@ -494,49 +201,20 @@ internal sealed class QuestChainComponent _questStatusCache.Clear(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawSearchBar() { - UiThemeUtils.SearchInput(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1003342907), ref _searchText, -280f * _206D_200F_206F_202D_202B_206A_202A_200E_206C_206C_200D_206A_200C_200D_206F_206B_202D_206B_200B_200B_200C_200C_206C_200D_202E_202D_206D_206D_206D_200F_200C_206D_206D_200C_200F_206F_206C_200E_202A_202C_202E().FontGlobalScale, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1685627218)); - _206F_202C_206E_206C_200D_202B_200C_206D_200E_202A_206F_206C_200B_206A_200D_206A_200D_200C_200D_206A_202D_202B_200C_202A_200C_206F_202A_200B_206B_202B_202B_200C_202A_200E_200E_202C_206A_200B_202B_206B_202E(); - int selectedExpansion = _selectedExpansion; - int num = 1; - int num2 = selectedExpansion; - int num3 = num2 ^ num; - int num4 = num2 & num; - int currentItem = num3 + (num4 + num4); - _206F_200E_200B_202A_200C_200D_200E_206A_200E_200F_200D_202E_202C_202A_200B_206E_206F_206A_202E_202E_202C_202C_202B_206E_200B_202D_200B_202A_200B_202E_200D_200E_200F_202A_206F_200D_200B_206C_206F_202E_202E(140f * _206D_200F_206F_202D_202B_206A_202A_200E_206C_206C_200D_206A_200C_200D_206F_206B_202D_206B_200B_200B_200C_200C_206C_200D_202E_202D_206D_206D_206D_200F_200C_206D_206D_200C_200F_206F_206C_200E_202A_202C_202E().FontGlobalScale); - int num5 = ((!UiThemeUtils.ThemedCombo(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-676119741), ref currentItem, ExpansionNames, ExpansionNames.Length)) ? 676982153 : 676982159); - while (true) + UiThemeUtils.SearchInput("##ChainSearch", ref _searchText, -280f * ImGui.GetIO().FontGlobalScale, "Search quests..."); + ImGui.SameLine(); + int currentItem = _selectedExpansion + 1; + ImGui.SetNextItemWidth(140f * ImGui.GetIO().FontGlobalScale); + if (UiThemeUtils.ThemedCombo("##ChainExpansion", ref currentItem, ExpansionNames, ExpansionNames.Length)) { - int num6 = num5; - num = 676982157; - num2 = num6; - switch ((num2 | num) - (num2 & num)) - { - case 4: - _206F_202C_206E_206C_200D_202B_200C_206D_200E_202A_206F_206C_200B_206A_200D_206A_200D_200C_200D_206A_202D_202B_200C_202A_200C_206F_202A_200B_206B_202B_202B_200C_202A_200E_200E_202C_206A_200B_202B_206B_202E(); - num5 = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1722794526), ref _showUnobtainable)) ? 676982158 : 676982156); - break; - case 3: - return; - case 0: - num5 = 676982159; - break; - case 2: - { - int num7 = currentItem; - num = 1; - num2 = num7; - _selectedExpansion = ~(~num2 + num); - num5 = 676982153; - break; - } - case 1: - _filterDirty = true; - num5 = 676982158; - break; - } + _selectedExpansion = currentItem - 1; + } + ImGui.SameLine(); + if (UiThemeUtils.WrappedCheckbox("Unobtainable", ref _showUnobtainable)) + { + _filterDirty = true; } } @@ -545,963 +223,395 @@ internal sealed class QuestChainComponent _filteredQuests = (from kvp in _questData.AllQuests where kvp.Key is QuestId select kvp.Value into q - where !_003C_003Ec._202C_200C_206E_206C_200C_202B_206A_200B_200C_202C_206F_206B_202B_206D_200E_206E_200D_200F_202A_200B_202B_202E_202A_202D_202B_206E_200D_206D_200D_200E_200C_200F_200E_202D_206E_206E_200E_200D_202B_200E_202E(q.Name) + where !string.IsNullOrEmpty(q.Name) where q.Expansion != (EExpansionVersion)255 + where _showUnobtainable || !_questFunctions.IsQuestUnobtainable(q.QuestId) select q).Where(delegate(IQuestInfo q) { - int num = (_showUnobtainable ? 240107821 : 240107820); - while (true) + if (_selectedExpansion >= 0 && (uint)q.Expansion != (byte)_selectedExpansion) { - int num2 = num; - int num3 = 240107821; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0048; - case 1: - return !_questFunctions.IsQuestUnobtainable(q.QuestId); - case 0: - return true; - } - continue; - IL_0048: - num = 240107820; + return false; } - }).Where(delegate(IQuestInfo q) - { - int num = ((_selectedExpansion < 0) ? (-2019604063) : (-2019604057)); - while (true) - { - int num2 = num; - int num3 = -2019604060; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - return true; - case 5: - num = (_200D_206D_200B_200D_206B_206F_202C_206B_202B_200F_206E_202E_206C_206A_206E_202C_202A_200B_206F_202C_202B_202A_206D_202B_200B_206A_200B_206D_200E_202D_206C_202B_200B_200D_202D_202D_202A_206C_206F_200F_202E(_searchText) ? (-2019604062) : (-2019604059)); - break; - case 3: - num = (((uint)q.Expansion == (byte)_selectedExpansion) ? (-2019604063) : (-2019604064)); - break; - case 4: - return false; - case 0: - num = -2019604057; - break; - case 2: - return false; - case 1: - num = (_200B_202A_206B_206D_206F_206B_202A_202A_202D_200F_200C_200B_206A_200F_206F_200C_202B_200D_200E_200D_206E_206B_202E_202E_206F_202A_206F_202E_200D_200B_202A_206A_202A_206A_206C_200E_200C_206A_202A_200E_202E(q.Name, _searchText, StringComparison.OrdinalIgnoreCase) ? (-2019604062) : (-2019604058)); - break; - } - } - }).OrderBy<IQuestInfo, string>((IQuestInfo q) => q.Name, _206F_202B_200B_200D_206D_202B_206A_200D_206E_202A_206F_202C_200B_206B_206F_200E_200F_206E_200F_202E_206B_206F_202C_206A_202C_202D_206E_206D_206A_206A_206A_206B_206A_202A_202A_200D_202C_200F_202D_200F_202E()) - .ToList(); + return (string.IsNullOrEmpty(_searchText) || q.Name.Contains(_searchText, StringComparison.OrdinalIgnoreCase)) ? true : false; + }).OrderBy<IQuestInfo, string>((IQuestInfo q) => q.Name, StringComparer.OrdinalIgnoreCase).ToList(); } private QuestStatusEntry GetCachedQuestStatus(ElementId questId) { - long num = _202D_202E_206C_200E_206E_200C_200D_202A_202D_200B_200C_206D_200C_206A_206F_206E_200C_206C_206E_206F_206D_200B_200E_206E_200E_202C_206C_206F_206C_202E_206E_206F_202B_202C_202A_202E_206A_206E_206B_202C_202E(); - long statusCacheRefreshedAt = _statusCacheRefreshedAt; - long num2 = num; - int num3 = ((~(~num2 + statusCacheRefreshedAt) <= 3000) ? 1101058836 : 1101058835); - QuestStatusEntry value = default(QuestStatusEntry); - while (true) + long tickCount = Environment.TickCount64; + if (tickCount - _statusCacheRefreshedAt > 3000) { - int num4 = num3; - int num5 = 1101058839; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) - { - case 2: - { - Vector4 item = _uiUtils.GetQuestStyle(questId).Color; - bool isCompleted = _questFunctions.IsQuestAcceptedOrComplete(questId); - value = new QuestStatusEntry(item, isCompleted); - _questStatusCache[questId] = value; - num3 = 1101058838; - break; - } - case 4: - _questStatusCache.Clear(); - _statusCacheRefreshedAt = num; - num3 = 1101058836; - break; - case 1: - return value; - case 0: - num3 = 1101058835; - break; - case 3: - num3 = (_questStatusCache.TryGetValue(questId, out value) ? 1101058838 : 1101058837); - break; - } + _questStatusCache.Clear(); + _statusCacheRefreshedAt = tickCount; } + if (!_questStatusCache.TryGetValue(questId, out var value)) + { + Vector4 item = _uiUtils.GetQuestStyle(questId).Color; + bool isCompleted = _questFunctions.IsQuestAcceptedOrComplete(questId); + value = new QuestStatusEntry(item, isCompleted); + _questStatusCache[questId] = value; + } + return value; } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void DrawQuestList(float width, float height) { - using ImRaii.ChildDisposable childDisposable = _206C_200E_202A_202A_200F_202C_200E_202E_202C_202D_206A_202C_206E_202A_202B_200D_200C_206E_206D_206D_202D_206E_206E_202D_200D_206E_200F_206C_200D_202A_200B_206B_206E_202B_200D_200B_200C_200F_202A_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(132957274), new Vector2(width, height), true); - int num = ((!(!childDisposable)) ? (-900441304) : (-900441312)); - int num17 = default(int); - float num7 = default(float); - while (true) + using ImRaii.ChildDisposable childDisposable = ImRaii.Child("QuestChainList", new Vector2(width, height), border: true); + if (!childDisposable) { - int num2 = num; - int num3 = -900441311; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + if (_filteredQuests.Count == 0) + { + ImGui.TextColored(in UiThemeUtils.DimTextColor, "No quests match your search."); + return; + } + float textLineHeightWithSpacing = ImGui.GetTextLineHeightWithSpacing(); + if (_scrollToSelectedInList && _selectedQuestId != null) + { + int num = _filteredQuests.FindIndex((IQuestInfo q) => q.QuestId == _selectedQuestId); + if (num >= 0) { - case 4: - num = ((!_206D_206A_206B_202D_200F_202B_202E_202A_206E_202A_206C_206F_202B_202B_202C_206D_202C_200B_200D_200C_206C_206A_202D_206A_206D_206B_200F_202D_202E_206D_206F_206B_202A_202D_202B_200C_206F_200E_202E_206E_202E(_selectedQuestId, (ElementId)null)) ? (-900441311) : (-900441310)); - break; - case 8: - { - float num18 = (float)num17 * num7 - _202D_202E_206A_202B_202E_206C_202C_202C_206F_206F_206E_202C_200B_206D_200B_200C_202C_206F_200D_206B_200B_202A_206B_202C_202B_200B_200E_200F_202E_202C_206C_206E_202B_200D_200B_202A_206F_202B_202B_200C_202E() * 0.5f; - _200B_200E_202A_200C_202C_202C_206A_206F_200C_206A_200C_206F_202D_200B_200E_200D_202C_202E_202B_200D_206F_200B_202D_200F_202E_202E_202B_202E_200B_202C_206B_206C_206D_200F_200C_200D_206B_202E_200C_202E_202E(_206D_200F_206A_200F_206D_202C_202E_202E_206F_206C_200C_206A_202E_202E_206E_202C_206A_202B_206B_206B_206A_206F_202A_202C_202A_200E_202D_200F_206B_200F_202C_206B_206B_206E_206F_200C_202E_202C_206F_202E(0f, num18)); - num = -900441306; - break; + float y = (float)num * textLineHeightWithSpacing - ImGui.GetWindowHeight() * 0.5f; + ImGui.SetScrollY(MathF.Max(0f, y)); } - case 7: - _scrollToSelectedInList = false; - num = -900441311; - break; - case 5: - num = -900441312; - break; - case 9: - num = ((_filteredQuests.Count != 0) ? (-900441305) : (-900441309)); - break; - case 6: - num7 = _206C_206E_200F_206D_206E_202C_206E_206A_202B_202A_206D_202B_200C_206D_200C_200F_200E_202A_200D_206F_200B_200F_200C_206E_202D_202B_202D_206C_202D_200E_206F_206A_202E_206F_202D_202A_200D_200C_206E_206C_202E(); - num = ((!_scrollToSelectedInList) ? (-900441311) : (-900441307)); - break; - case 3: - num17 = _filteredQuests.FindIndex((IQuestInfo q) => _200C_206B_202D_206B_206D_202E_206B_200E_200C_206B_202A_206A_206C_206B_200C_202E_200D_206F_200C_200B_206F_202C_202E_202A_206E_202C_206C_206E_206D_202A_202C_202E_200B_202B_202E_200E_200F_202C_206C_202B_202E(q.QuestId, _selectedQuestId)); - num = ((num17 < 0) ? (-900441306) : (-900441303)); - break; - case 1: - return; - case 2: - _200B_200D_202A_206F_202A_202C_202A_202D_206E_200C_206C_202A_206A_206B_202C_202D_206B_200C_200B_202B_206C_206A_200F_200F_206F_202B_202D_206D_206E_202E_202C_200B_206F_206A_202D_206B_200F_202B_200E_200F_202E(ref UiThemeUtils.DimTextColor, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-971186319)); - return; - case 0: + _scrollToSelectedInList = false; + } + ImGuiListClipper* intPtr = ImGuiNative.ImGuiListClipper(); + ImGuiNative.Begin(intPtr, _filteredQuests.Count, textLineHeightWithSpacing); + ImGuiListClipperPtr imGuiListClipperPtr = intPtr; + try + { + while (imGuiListClipperPtr.Step()) { - ImGuiListClipper* intPtr = _200D_206E_200E_200E_206D_200F_206A_202B_202A_200C_200B_206A_206A_202E_202D_206E_206A_200D_206B_200C_206E_200E_200E_206F_202A_200B_200D_202D_200C_206D_206A_206F_200C_206B_200B_206D_202D_202E_200C_206D_202E(); - _202C_200E_202D_206F_200F_200B_202E_206C_202B_206A_206D_200F_200F_202D_200F_200B_202A_206A_200E_200F_202B_200F_206D_206C_206C_206C_206D_206F_202C_206D_200F_200F_202B_202C_206E_206B_200C_200C_206E_200F_202E(intPtr, _filteredQuests.Count, num7); - ImGuiListClipperPtr imGuiListClipperPtr = intPtr; - try + for (int num2 = imGuiListClipperPtr.DisplayStart; num2 < imGuiListClipperPtr.DisplayEnd; num2++) { - while (true) + IQuestInfo questInfo = _filteredQuests[num2]; + UiThemeUtils.DrawAltRowBackground(num2); + bool selected = _selectedQuestId != null && _selectedQuestId == questInfo.QuestId; + QuestStatusEntry cachedQuestStatus = GetCachedQuestStatus(questInfo.QuestId); + using (cachedQuestStatus.IsCompleted ? ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.DimTextColor) : null) { - if (imGuiListClipperPtr.Step()) + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + 14f); + if (ImGui.Selectable(UiThemeUtils.CleanSeString(questInfo.Name), selected, ImGuiSelectableFlags.AllowDoubleClick)) { - for (int num8 = imGuiListClipperPtr.DisplayStart; num8 < imGuiListClipperPtr.DisplayEnd; num8 = (num4 | num3) + (num4 & num3)) + _selectedQuestId = questInfo.QuestId; + if (ImGui.IsMouseDoubleClicked(ImGuiMouseButton.Left)) { - IQuestInfo questInfo = _filteredQuests[num8]; - UiThemeUtils.DrawAltRowBackground(num8); - bool flag = _206D_206A_206B_202D_200F_202B_202E_202A_206E_202A_206C_206F_202B_202B_202C_206D_202C_200B_200D_200C_206C_206A_202D_206A_206D_206B_200F_202D_202E_206D_206F_206B_202A_202D_202B_200C_206F_200E_202E_206E_202E(_selectedQuestId, (ElementId)null) && _200C_206B_202D_206B_206D_202E_206B_200E_200C_206B_202A_206A_206C_206B_200C_202E_200D_206F_200C_200B_206F_202C_202E_202A_206E_202C_206C_206E_206D_202A_202C_202E_200B_202B_202E_200E_200F_202C_206C_202B_202E(_selectedQuestId, questInfo.QuestId); - QuestStatusEntry cachedQuestStatus = GetCachedQuestStatus(questInfo.QuestId); - ImRaii.ColorDisposable colorDisposable = (cachedQuestStatus.IsCompleted ? _206C_200D_200C_200F_200F_206B_202E_202A_206A_200C_202E_202E_200B_202D_200E_206E_200C_200C_206F_200C_200B_200E_202A_206E_206E_206F_200E_206E_200B_200B_200C_202E_202A_200B_202B_206D_206D_206C_200F_202B_202E(ImGuiCol.Text, UiThemeUtils.DimTextColor, true) : null); - try - { - _206E_206E_206B_200B_202C_206D_206F_202B_206C_200E_202E_206F_200D_206E_206F_206B_206A_202E_206A_200D_206F_206C_206F_202B_202D_206B_200E_206D_200F_202A_200C_202B_202C_200B_202E_200C_206F_206B_202E_206D_202E(_206C_206D_206A_206B_202C_202E_206C_206D_202E_202E_206D_200E_200F_206C_202A_206A_206A_202A_206E_206E_206B_200E_206F_202D_202E_200C_206D_202A_206B_206A_202B_206D_202C_200C_206C_206C_202C_206C_206D_206B_202E() + 14f); - num = ((!_202C_200C_200B_206F_202E_206B_202D_206C_206C_200B_202C_202B_200F_206E_200E_206E_200D_206F_206B_202B_206B_200D_200B_206E_200D_206E_202C_206A_202B_206D_206B_200E_200E_206C_206A_202A_206E_202A_200F_200C_202E((ImU8String)UiThemeUtils.CleanSeString(questInfo.Name), flag, ImGuiSelectableFlags.AllowDoubleClick, default(Vector2))) ? (-1989955630) : (-1989955629)); - while (true) - { - int num9 = num; - num3 = -1989955630; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 3: - num = -1989955629; - break; - case 2: - _showDetail = true; - num = -1989955630; - break; - case 1: - _selectedQuestId = questInfo.QuestId; - num = ((!_202B_200E_202C_202B_202E_200B_202C_202A_202A_200C_206A_200F_202B_202A_206A_200E_200B_200E_202E_206E_206F_200F_200D_202D_200F_206B_200F_206B_206A_202E_206F_202E_206E_200D_200D_200F_200F_206C_202A_200F_202E(ImGuiMouseButton.Left)) ? (-1989955630) : (-1989955632)); - break; - case 0: - { - ImDrawListPtr imDrawListPtr = _202E_200C_202A_202A_206A_202C_202E_202D_202B_200F_206A_206E_206E_206D_206F_206B_202D_206F_200E_202A_202C_206F_202E_206D_202E_202B_200E_202B_200C_202C_206E_206A_206A_200C_202A_200B_206C_206C_200D_206C_202E(); - Vector2 vector = _200B_202E_206D_200D_206B_202E_206D_202A_206E_206E_206D_206C_206A_200D_202B_202C_202E_200D_206C_202A_200B_202E_206E_200E_200D_206A_206E_200B_206D_206A_202C_206C_206A_200C_202A_200F_200C_206C_206E_202E(); - Vector2 vector2 = _206A_206C_206E_202C_206E_206E_206D_200B_202C_202D_200C_206A_202D_206D_202D_200B_200E_206C_202A_202C_202C_200E_200D_206E_202D_206F_200D_202E_206D_200D_200F_200F_206F_202E_206C_200D_200F_202B_200F_202C_202E(); - float y = (vector.Y + vector2.Y) * 0.5f; - float x = vector.X - 14f + 5f; - imDrawListPtr.AddCircleFilled(new Vector2(x, y), 3f, _206E_202A_202C_206F_200F_206A_200C_206D_202D_200B_206B_206E_206C_200B_206B_200E_200D_200F_206D_200B_200C_200C_206B_206B_200F_206D_206E_206D_206E_202C_202A_206C_206A_200D_202C_206E_200D_202B_200B_202D_202E(cachedQuestStatus.Color), 12); - Questionable.Model.Quest quest = null; - _questRegistry.TryGetQuest(questInfo.QuestId, out quest); - QuestJournalUtils?.ShowContextMenu(questInfo, quest, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1930812166)); - goto end_IL_02b4; - } - } - continue; - end_IL_02b4: - break; - } - } - finally - { - num = ((colorDisposable == null) ? 1973818357 : 1973818356); - while (true) - { - int num12 = num; - num3 = 1973818357; - num4 = num12; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1973818356; - break; - case 0: - goto end_IL_03f5; - case 1: - _206D_200D_202B_200E_206D_202B_200D_206F_200F_200B_202C_200D_202E_200F_206F_200D_206F_206E_206A_200E_202C_206A_202E_200F_206F_206E_206E_206D_200E_206B_206A_202D_206C_202B_202A_202A_206A_206F_200F_206D_202E((IDisposable)colorDisposable); - num = 1973818357; - break; - } - continue; - end_IL_03f5: - break; - } - } - int num13 = num8; - num3 = 1; - num4 = num13; + _showDetail = true; } - num = -182849509; - } - else - { - num = -182849512; - } - while (true) - { - int num14 = num; - num3 = -182849510; - num4 = num14; - int num15 = num4 + num3; - int num16 = num4 & num3; - switch (num15 - (num16 + num16)) - { - default: - continue; - case 0: - goto IL_049e; - case 1: - break; - case 2: - return; - } - break; - IL_049e: - num = -182849509; } + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 itemRectMin = ImGui.GetItemRectMin(); + Vector2 itemRectMax = ImGui.GetItemRectMax(); + float y2 = (itemRectMin.Y + itemRectMax.Y) * 0.5f; + float x = itemRectMin.X - 14f + 5f; + windowDrawList.AddCircleFilled(new Vector2(x, y2), 3f, ImGui.ColorConvertFloat4ToU32(cachedQuestStatus.Color), 12); + Questionable.Model.Quest quest = null; + _questRegistry.TryGetQuest(questInfo.QuestId, out quest); + QuestJournalUtils?.ShowContextMenu(questInfo, quest, "QuestChainComponent"); } } - finally - { - imGuiListClipperPtr.Destroy(); - } - } } } + finally + { + imGuiListClipperPtr.Destroy(); + } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawChainPanel(float width, float height) { - using ImRaii.ChildDisposable childDisposable = _206E_206E_206B_200E_200E_202E_200D_202C_200E_206E_202A_200B_200D_206C_206C_206A_200B_200D_206D_202B_202D_200E_200D_202D_202B_206C_206A_200D_206B_206F_202B_206A_200F_200C_202D_206C_202E_200F_200E_206B_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1280606565), new Vector2(width, height), true, ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoScrollWithMouse); - int num = ((!(!childDisposable)) ? 1382098797 : 1382098798); - QuestId questId = default(QuestId); - QuestChainGraph chainGraph = default(QuestChainGraph); - while (true) + using ImRaii.ChildDisposable childDisposable = ImRaii.Child("QuestChainView", new Vector2(width, height), border: true, ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoScrollWithMouse); + if (!childDisposable) { - int num2 = num; - int num3 = 1382098793; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - _200B_200D_202A_206F_202A_202C_202A_202D_206E_200C_206C_202A_206A_206B_202C_202D_206B_200C_200B_202B_206C_206A_200F_200F_206F_202B_202D_206D_206E_202E_202C_200B_206F_206A_202D_206B_200F_202B_200E_200F_202E(ref UiThemeUtils.DimTextColor, (ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(464838865)); - return; - case 1: - { - num = (_questData.TryGetQuestInfo(_selectedQuestId, out IQuestInfo _) ? 1382098787 : 1382098791); - break; - } - case 14: - _200B_200D_202A_206F_202A_202C_202A_202D_206E_200C_206C_202A_206A_206B_202C_202D_206B_200C_200B_202B_206C_206A_200F_200F_206F_202B_202D_206D_206E_202E_202C_200B_206F_206A_202D_206B_200F_202B_200E_200F_202E(ref UiThemeUtils.StatusLocked, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-839990954)); - return; - case 6: - num = ((!UiThemeUtils.PillButton(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2067117906), selected: false)) ? 1382098789 : 1382098786); - break; - case 5: - questId = _selectedQuestId as QuestId; - num = (((object)questId != null) ? 1382098792 : 1382098784); - break; - case 11: - _scrollToSelected = true; - _graphZoom = 1f; - num = 1382098789; - break; - case 0: - _previousChainQuestId = _selectedQuestId; - _scrollToSelected = true; - num = 1382098785; - break; - case 8: - chainGraph = _questChainBuilder.GetChainGraph(questId); - num = ((chainGraph.LayerOrder.Count != 0) ? 1382098799 : 1382098794); - break; - case 4: - num = ((!_200C_206B_202D_206B_206D_202E_206B_200E_200C_206B_202A_206A_206C_206B_200C_202E_200D_206F_200C_200B_206F_202C_202E_202A_206E_202C_206C_206E_206D_202A_202C_202E_200B_202B_202E_200E_200F_202C_206C_202B_202E(_selectedQuestId, (ElementId)null)) ? 1382098796 : 1382098795); - break; - case 9: - _200B_200D_202A_206F_202A_202C_202A_202D_206E_200C_206C_202A_206A_206B_202C_202D_206B_200C_200B_202B_206C_206A_200F_200F_206F_202B_202D_206D_206E_202E_202C_200B_206F_206A_202D_206B_200F_202B_200E_200F_202E(ref UiThemeUtils.DimTextColor, (ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(746260683)); - return; - case 10: - num = ((!_206D_206A_206B_202D_200F_202B_202E_202A_206E_202A_206C_206F_202B_202B_202C_206D_202C_200B_200D_200C_206C_206A_202D_206A_206D_206B_200F_202D_202E_206D_206F_206B_202A_202D_202B_200C_206F_200E_202E_206E_202E(_previousChainQuestId, _selectedQuestId)) ? 1382098785 : 1382098793); - break; - case 3: - _200B_200D_202A_206F_202A_202C_202A_202D_206E_200C_206C_202A_206A_206B_202C_202D_206B_200C_200B_202B_206C_206A_200F_200F_206F_202B_202D_206D_206E_202E_202C_200B_206F_206A_202D_206B_200F_202B_200E_200F_202E(ref UiThemeUtils.DimTextColor, (ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1321007045)); - return; - case 13: - num = 1382098798; - break; - case 7: - return; - case 12: - { - _206F_202C_206E_206C_200D_202B_200C_206D_200E_202A_206F_206C_200B_206A_200D_206A_200D_200C_200D_206A_202D_202B_200C_202A_200C_206F_202A_200B_206B_202B_202B_200C_202A_200E_200E_202C_206A_200B_202B_206B_202E(); - ImU8String imU8String = new ImU8String(1, 1); - imU8String.AppendFormatted((int)(_graphZoom * 100f)); - imU8String.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(944653740)); - _200B_200D_202A_206F_202A_202C_202A_202D_206E_200C_206C_202A_206A_206B_202C_202D_206B_200C_200B_202B_206C_206A_200F_200F_206F_202B_202D_206D_206E_202E_202C_200B_206F_206A_202D_206B_200F_202B_200E_200F_202E(ref UiThemeUtils.MutedTextColor, imU8String); - DrawChainGraph(chainGraph, width); - return; - } - } + return; } + if (_selectedQuestId == null) + { + ImGui.TextColored(in UiThemeUtils.DimTextColor, "Select a quest to view its chain"); + return; + } + if (!(_selectedQuestId is QuestId questId)) + { + ImGui.TextColored(in UiThemeUtils.DimTextColor, "Chain view is only available for quests."); + return; + } + if (!_questData.TryGetQuestInfo(_selectedQuestId, out IQuestInfo _)) + { + ImGui.TextColored(in UiThemeUtils.StatusLocked, "Quest info not found."); + return; + } + if (_previousChainQuestId != _selectedQuestId) + { + _previousChainQuestId = _selectedQuestId; + _scrollToSelected = true; + } + QuestChainGraph chainGraph = _questChainBuilder.GetChainGraph(questId); + if (chainGraph.LayerOrder.Count == 0) + { + ImGui.TextColored(in UiThemeUtils.DimTextColor, "No chain data available."); + return; + } + if (UiThemeUtils.PillButton("Reset View", selected: false)) + { + _scrollToSelected = true; + _graphZoom = 1f; + } + ImGui.SameLine(); + ImU8String text = new ImU8String(1, 1); + text.AppendFormatted((int)(_graphZoom * 100f)); + text.AppendLiteral("%"); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, text); + DrawChainGraph(chainGraph, width); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawDetailPanel(float width, float height) { - //Discarded unreachable code: IL_05a6 - using ImRaii.ChildDisposable childDisposable = _206C_200E_202A_202A_200F_202C_200E_202E_202C_202D_206A_202C_206E_202A_202B_200D_200C_206E_206D_206D_202D_206E_206E_202D_200D_206E_200F_206C_200D_202A_200B_206B_206E_202B_200D_200B_200C_200F_202A_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1449880132), new Vector2(width, height), true); - int num = ((!(!childDisposable)) ? (-574358889) : (-574358896)); - IQuestInfo questInfo = default(IQuestInfo); - QuestId questId = default(QuestId); - List<QuestStep> list = default(List<QuestStep>); - QuestSequence questSequence = default(QuestSequence); - ushort num8 = default(ushort); - Vector3? vector2 = default(Vector3?); - ushort expFactor = default(ushort); - uint gilReward = default(uint); - Questionable.Model.Quest quest = default(Questionable.Model.Quest); - Vector3 vector = default(Vector3); - long num15 = default(long); - Map? valueNullable = default(Map?); - TerritoryType? rowOrDefault2 = default(TerritoryType?); - QuestJournalUtils questJournalUtils = default(QuestJournalUtils); - while (true) + using ImRaii.ChildDisposable childDisposable = ImRaii.Child("QuestDetailPanel", new Vector2(width, height), border: true); + if (!childDisposable) { - int num2 = num; - int num3 = -574358894; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + if (!(_selectedQuestId is QuestId questId) || !_questData.TryGetQuestInfo(_selectedQuestId, out IQuestInfo questInfo)) + { + _showDetail = false; + return; + } + if (UiThemeUtils.PillButton("← Back to list", selected: false)) + { + _showDetail = false; + _scrollToSelectedInList = true; + return; + } + ImGui.Separator(); + UiThemeUtils.WrappedTextColored(UiThemeUtils.AccentColor, UiThemeUtils.CleanSeString(questInfo.Name)); + ImGui.PushTextWrapPos(ImGui.GetCursorPosX() + ImGui.GetContentRegionAvail().X); + try + { + Lumina.Excel.Sheets.Quest? rowOrDefault = _dataManager.GetExcelSheet<Lumina.Excel.Sheets.Quest>().GetRowOrDefault((uint)(questId.Value + 65536)); + ImU8String text = new ImU8String(7, 1); + text.AppendLiteral("Level: "); + text.AppendFormatted(questInfo.Level); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text); + if (rowOrDefault.HasValue && rowOrDefault.Value.Icon != 0) + { + DrawQuestBanner(rowOrDefault.Value.Icon); + } + if (rowOrDefault.HasValue) + { + ushort expFactor = rowOrDefault.Value.ExpFactor; + uint gilReward = rowOrDefault.Value.GilReward; + if (expFactor > 0) + { + ImU8String text2 = new ImU8String(5, 1); + text2.AppendLiteral("Exp: "); + text2.AppendFormatted(expFactor, "N0"); + ImGui.TextUnformatted(text2); + } + if (gilReward != 0) + { + if (expFactor > 0) + { + ImGui.SameLine(0f, 20f); + } + ImU8String text3 = new ImU8String(5, 1); + text3.AppendLiteral("Gil: "); + text3.AppendFormatted(gilReward, "N0"); + ImGui.TextUnformatted(text3); + } + DrawRewards(rowOrDefault.Value); + } + DrawQuestDescription(questId, rowOrDefault); + DrawNpcLine(rowOrDefault, questInfo); + ImU8String text4 = new ImU8String(4, 1); + text4.AppendLiteral("ID: "); + text4.AppendFormatted(questId.Value); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, text4); + ImGui.Spacing(); + ushort num = 0; + Vector3 vector = Vector3.Zero; + if (_questRegistry.TryGetQuest(questId, out Questionable.Model.Quest quest)) + { + QuestSequence questSequence = quest.FindSequence(0); + if (questSequence != null) + { + List<QuestStep> steps = questSequence.Steps; + if (steps != null && steps.Count > 0) + { + num = questSequence.Steps[0].TerritoryId; + Vector3? position = questSequence.Steps[0].Position; + if (position.HasValue) + { + Vector3 valueOrDefault = position.GetValueOrDefault(); + vector = valueOrDefault; + } + } + } + } + if (num == 0 && rowOrDefault.HasValue) { - case 6: - num = (_questData.TryGetQuestInfo(_selectedQuestId, out questInfo) ? (-574358890) : (-574358891)); - break; - case 7: - _showDetail = false; - return; - case 5: - questId = _selectedQuestId as QuestId; - num = (((object)questId == null) ? (-574358891) : (-574358892)); - break; - case 0: - _showDetail = false; - _scrollToSelectedInList = true; - return; - case 2: - return; - case 3: - num = -574358896; - break; - case 4: - num = ((!UiThemeUtils.PillButton(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1648941856), selected: false)) ? (-574358893) : (-574358894)); - break; - case 1: - _200C_202E_202B_202A_200D_202C_202D_200D_202C_200D_206F_200F_200B_200C_206E_200C_206A_200F_206A_200D_206A_200F_200E_200B_200B_202B_200F_206C_206C_202A_200F_202C_206E_200B_202A_202B_206F_202B_202B_202B_202E(); - UiThemeUtils.WrappedTextColored(UiThemeUtils.AccentColor, UiThemeUtils.CleanSeString(questInfo.Name)); - _206B_206B_202D_200E_206E_200C_202E_200F_202A_200E_206E_206A_206B_200F_200F_202B_200C_206F_202E_206D_200C_206F_200C_202D_206A_202C_206E_206F_200C_200E_202D_206D_206F_202A_200F_206A_206B_206E_206B_202A_202E(_206C_206D_206A_206B_202C_202E_206C_206D_202E_202E_206D_200E_200F_206C_202A_206A_206A_202A_206E_206E_206B_200E_206F_202D_202E_200C_206D_202A_206B_206A_202B_206D_202C_200C_206C_206C_202C_206C_206D_206B_202E() + _206F_200B_200E_206C_200E_200B_206B_206E_200E_206C_206E_206E_202B_202A_206B_202C_200C_202A_206B_202D_206C_202D_202D_200F_206B_200E_200B_206B_202A_206A_206D_200F_206D_206E_202B_200B_200C_206D_200C_202A_202E().X); try { - Lumina.Excel.Sheets.Quest? rowOrDefault = _dataManager.GetExcelSheet<Lumina.Excel.Sheets.Quest>().GetRowOrDefault((uint)(_200B_200B_202E_206B_200E_206C_206A_206E_202C_200B_200E_202B_206D_206B_202B_202A_202D_202A_200D_200C_206F_200B_206F_206A_206A_200F_200F_202E_202B_200C_206D_202A_206B_202B_206B_202A_202C_206E_206F_202E_202E((ElementId)questId) + 65536)); - ImU8String imU8String = new ImU8String(7, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-636593405)); - imU8String.AppendFormatted(questInfo.Level); - _200B_200D_202A_206F_202A_202C_202A_202D_206E_200C_206C_202A_206A_206B_202C_202D_206B_200C_200B_202B_206C_206A_200F_200F_206F_202B_202D_206D_206E_202E_202C_200B_206F_206A_202D_206B_200F_202B_200E_200F_202E(ref UiThemeUtils.DimTextColor, imU8String); - num = ((!rowOrDefault.HasValue) ? 1733997033 : 1733997037); - while (true) + Level? valueNullable = rowOrDefault.Value.IssuerLocation.ValueNullable; + if (valueNullable.HasValue) { - int num7 = num; - num3 = 1733997024; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 11: - list = _202D_200C_206D_202C_202E_206C_202E_206B_206C_206F_206D_202A_206E_202D_200F_202B_206D_202D_200B_206F_202C_202D_200C_200B_200D_200B_200E_206E_200C_200C_206A_202C_200E_202E_202C_202E_200F_206D_206B_206E_202E(questSequence); - num = ((list == null) ? 1733997031 : 1733997030); - continue; - case 6: - num = ((list.Count <= 0) ? 1733997031 : 1733997025); - continue; - case 1: - num8 = _206E_200F_200C_206E_202B_206C_202A_202E_202B_202E_200B_202B_206F_200E_200F_206B_206D_200C_202D_202D_206C_206C_200F_200C_206E_200C_202E_206F_200B_202B_206F_202C_206D_200E_200B_206C_200C_200F_200C_200F_202E(_202D_200C_206D_202C_202E_206C_202E_206B_206C_206F_206D_202A_206E_202D_200F_202B_206D_202D_200B_206F_202C_202D_200C_200B_200D_200B_200E_206E_200C_200C_206A_202C_200E_202E_202C_202E_200F_206D_206B_206E_202E(questSequence)[0]); - vector2 = _200B_200E_206B_206E_202B_200E_206E_206A_202E_206C_202A_206B_202A_200C_202A_202A_200B_200D_200F_202A_200D_200F_202D_202B_200E_200E_202C_206B_200E_206E_200D_202E_206F_206D_200B_202D_206B_206F_206B_202E(_202D_200C_206D_202C_202E_206C_202E_206B_206C_206F_206D_202A_206E_202D_200F_202B_206D_202D_200B_206F_202C_202D_200C_200B_200D_200B_200E_206E_200C_200C_206A_202C_200E_202E_202C_202E_200F_206D_206B_206E_202E(questSequence)[0]); - num = ((!vector2.HasValue) ? 1733997031 : 1733997041); - continue; - case 10: - if (!rowOrDefault.HasValue) - { - break; - } - goto case 2; - case 2: - { - ImU8String imU8String4 = new ImU8String(5, 1); - imU8String4.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1657037393)); - imU8String4.AppendFormatted(expFactor, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1510396995)); - _202D_200C_202D_202A_202E_206D_206C_202B_206D_200C_206A_200F_202B_202B_202E_202C_200C_206D_206D_200D_200D_206D_206E_206E_206C_200C_206F_206B_200E_206B_202B_200E_202C_206E_200B_202C_202E_202D_200F_206A_202E(imU8String4); - num = 1733997024; - continue; - } - case 18: - _206E_202A_202B_206F_206B_206F_200E_206C_200F_206F_206D_206A_200D_200F_206C_206D_200B_206B_202A_202E_206F_202E_206C_200E_206D_206D_206B_206B_206C_200F_202B_202E_202B_200F_202A_200B_202C_206F_200F_202D_202E(0f, 20f); - num = 1733997028; - continue; - case 8: - DrawRewards(rowOrDefault.Value); - num = 1733997039; - continue; - case 9: - num = ((!rowOrDefault.HasValue) ? 1733997039 : 1733997036); - continue; - case 5: - num = ((expFactor <= 0) ? 1733997028 : 1733997042); - continue; - case 12: - expFactor = rowOrDefault.Value.ExpFactor; - gilReward = rowOrDefault.Value.GilReward; - num = ((expFactor <= 0) ? 1733997024 : 1733997026); - continue; - case 16: - num = 1733997037; - continue; - case 14: - questSequence = quest.FindSequence(0); - num = ((questSequence == null) ? 1733997031 : 1733997035); - continue; - case 3: - DrawQuestBanner(rowOrDefault.Value.Icon); - num = 1733997033; - continue; - case 7: - if (num8 == 0) - { - num = 1733997034; - continue; - } - break; - case 17: - { - Vector3 valueOrDefault = vector2.GetValueOrDefault(); - vector = valueOrDefault; - num = 1733997031; - continue; - } - case 13: - num = ((rowOrDefault.Value.Icon == 0) ? 1733997033 : 1733997027); - continue; - case 15: - { - DrawQuestDescription(questId, rowOrDefault); - DrawNpcLine(rowOrDefault, questInfo); - ImU8String imU8String3 = new ImU8String(4, 1); - imU8String3.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-771359438)); - imU8String3.AppendFormatted(_200B_200B_202E_206B_200E_206C_206A_206E_202C_200B_200E_202B_206D_206B_202B_202A_202D_202A_200D_200C_206F_200B_206F_206A_206A_200F_200F_202E_202B_200C_206D_202A_206B_202B_206B_202A_202C_206E_206F_202E_202E((ElementId)questId)); - _200B_200D_202A_206F_202A_202C_202A_202D_206E_200C_206C_202A_206A_206B_202C_202D_206B_200C_200B_202B_206C_206A_200F_200F_206F_202B_202D_206D_206E_202E_202C_200B_206F_206A_202D_206B_200F_202B_200E_200F_202E(ref UiThemeUtils.MutedTextColor, imU8String3); - _202C_206C_206F_206F_200E_206B_202B_202D_206D_206D_200C_200E_200F_206C_202B_202C_200E_206B_202B_206E_206A_202B_202B_206D_202E_206B_206A_206B_200F_202D_206F_200B_206B_202C_200D_202D_202C_202E_202C_206F_202E(); - num8 = 0; - vector = Vector3.Zero; - num = ((!_questRegistry.TryGetQuest(questId, out quest)) ? 1733997031 : 1733997038); - continue; - } - case 0: - num = ((gilReward == 0) ? 1733997032 : 1733997029); - continue; - case 4: - { - ImU8String imU8String2 = new ImU8String(5, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1648195666)); - imU8String2.AppendFormatted(gilReward, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-904554737)); - _202D_200C_202D_202A_202E_206D_206C_202B_206D_200C_206A_200F_202B_202B_202E_202C_200C_206D_206D_200D_200D_206D_206E_206E_206C_200C_206F_206B_200E_206B_202B_200E_202C_206E_200B_202C_202E_202D_200F_206A_202E(imU8String2); - num = 1733997032; - continue; - } - } - break; - } - num = ((num8 == 0) ? 1094075995 : 1094075987); - while (true) - { - int num9 = num; - num3 = 1094075993; - num4 = num9; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num15 = _202D_202E_206C_200E_206E_200C_200D_202A_202D_200B_200C_206D_200C_206A_206F_206E_200C_206C_206E_206F_206D_200B_200E_206E_200E_202C_206C_206F_206C_202E_206E_206F_202B_202C_202A_202E_206A_206E_206B_202C_202E(); - num = ((!_200C_202A_206F_200B_206E_206F_206F_206D_206E_206A_200E_206E_206E_202E_202D_202A_206A_202C_202C_206C_206C_200C_202E_200E_200D_206C_200C_202A_206B_200E_206D_206F_206F_202B_206C_206B_202E_200F_202E_200D_202E((ElementId)questId, _addableCachedForQuestId)) ? 1094075984 : 1094075986); - break; - case 7: - valueNullable = rowOrDefault2.Value.Map.ValueNullable; - num = ((!valueNullable.HasValue) ? 1094075995 : 1094075992); - break; - case 8: - questJournalUtils = QuestJournalUtils; - if (questJournalUtils != null) - { - num = 1094075994; - break; - } - goto end_IL_06a8; - case 10: - num = ((!(vector != Vector3.Zero)) ? 1094075995 : 1094075997); - break; - case 4: - num = ((!UiThemeUtils.PillButton(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-118662433), selected: false)) ? 1094075995 : 1094075996); - break; - case 6: - num = 1094075987; - break; - case 2: - num = ((num8 == 0) ? 1094075985 : 1094075993); - break; - case 5: - rowOrDefault2 = _dataManager.GetExcelSheet<TerritoryType>().GetRowOrDefault(num8); - num = ((!rowOrDefault2.HasValue) ? 1094075995 : 1094075998); - break; - case 11: - { - long num16 = num15; - long addableRefreshedAt = _addableRefreshedAt; - long num17 = num16; - num = ((~(~num17 + addableRefreshedAt) <= 3000) ? 1094075988 : 1094075984); - break; - } - case 0: - num = ((!UiThemeUtils.PillButton(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(590108268), selected: false)) ? 1094075985 : 1094075989); - break; - case 1: - { - Vector2 vector3 = _202B_200B_206A_200C_206A_200B_206D_202B_202E_206E_202C_202B_200E_206D_200B_200B_202A_206F_202B_206A_202B_200B_200D_202A_206E_206E_200F_200C_202E_200D_200C_206C_206C_206A_200C_202D_206D_200E_206D_206B_202E(new Vector2(vector.X, vector.Z), valueNullable.Value); - MapLinkPayload mapLinkPayload = _206C_200D_206F_206E_206A_200B_202C_206D_206B_206A_206B_206C_202A_206C_206F_206F_202C_206A_206D_206B_200B_200B_202E_202C_200C_200B_200B_202D_206E_202B_200E_206A_200B_202C_200D_200E_202A_206F_206D_206A_202E((uint)num8, valueNullable.Value.RowId, vector3.X, vector3.Y, 0.05f); - _200F_206D_202D_200E_200C_202E_206E_206C_206B_206A_202C_206E_200E_206D_200D_206F_202B_200F_206B_206C_206A_206E_206E_202B_200F_200B_200C_200F_206A_202A_200C_200F_206E_202C_206C_202A_202D_202A_202B_206B_202E(_gameGui, mapLinkPayload); - num = 1094075995; - break; - } - case 12: - { - _questMapComponent.SelectQuest(questId, num8); - Action<string>? selectTabAction = SelectTabAction; - if (selectTabAction == null) - { - goto case 8; - } - selectTabAction(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-308157881)); - num = 1094075985; - break; - } - case 9: - _addableQuestIds.Clear(); - _addableQuestIds.AddRange(questJournalUtils.GetIncompletePrerequisiteQuests(questInfo)); - _addableCachedForQuestId = questId; - _addableRefreshedAt = num15; - num = 1094075988; - break; - case 13: - { - int count = _addableQuestIds.Count; - ImRaii.DisabledDisposable disabledDisposable = _202B_202E_206D_202D_202C_200F_206D_202C_202B_206E_206E_200D_206A_206A_200F_200D_202A_202B_202D_206D_202B_202D_202C_200E_206B_200F_202E_206E_202C_206F_200F_206E_206B_202B_206D_206F_200D_200F_206D_202E(count == 0); - try - { - num = ((!UiThemeUtils.PillButton(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1162255279), selected: false)) ? 558090735 : 558090732); - while (true) - { - int num10 = num; - num3 = 558090734; - num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 558090732; - break; - case 2: - questJournalUtils.AddRequiredQuestsToPriority(questInfo, _addableQuestIds); - _addableCachedForQuestId = null; - num = 558090735; - break; - case 1: - goto end_IL_09d2; - } - continue; - end_IL_09d2: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? (-299246376) : (-299246375)); - while (true) - { - int num11 = num; - num3 = -299246376; - num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) - { - case 0: - goto end_IL_0a4f; - case 1: - _206D_200D_202B_200E_206D_202B_200D_206F_200F_200B_202C_200D_202E_200F_206F_200D_206F_206E_206A_200E_202C_206A_202E_200F_206F_206E_206E_206D_200E_206B_206A_202D_206C_202B_202A_202A_206A_206F_200F_206D_202E((IDisposable)disabledDisposable); - num = -299246376; - break; - case 2: - num = -299246375; - break; - } - continue; - end_IL_0a4f: - break; - } - } - num = ((!_206F_206A_206B_202C_202C_206E_200E_202D_202E_202B_206B_202D_200C_206A_200C_200C_202C_200B_200F_202D_200E_200D_202D_200F_200C_200F_200E_206B_206B_200E_206C_206E_206D_206C_202B_200B_206D_202D_202C_202A_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? (-112163756) : (-112163753)); - while (true) - { - int num14 = num; - num3 = -112163758; - num4 = num14; - string text; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = ((count == 1) ? (-112163760) : (-112163754)); - break; - case 4: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(70, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-381217154)); - num3 = 1; - num4 = count; - defaultInterpolatedStringHandler.AppendFormatted(~(~num4 + num3)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-206759940)); - num3 = 1; - num4 = count; - defaultInterpolatedStringHandler.AppendFormatted((~(~num4 + num3) == 1) ? global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(576325633) : global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(233880951)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1161964285)); - text = defaultInterpolatedStringHandler.ToStringAndClear(); - goto IL_0bf4; - } - case 3: - num = -112163753; - break; - case 1: - _200B_200B_200E_200C_206C_202C_206E_200D_206C_206E_200C_202C_200F_200C_200B_206C_206A_206D_200D_202C_200E_206B_202D_206D_206A_202E_206D_206C_200D_200F_206A_202B_206E_202A_206A_206F_206B_200E_200C_206B_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-374768550)); - num = -112163756; - break; - case 2: - text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1659838992); - goto IL_0bf4; - case 5: - num = ((count != 0) ? (-112163758) : (-112163757)); - break; - case 6: - goto end_IL_0ac4; - IL_0bf4: - _200B_200B_200E_200C_206C_202C_206E_200D_206C_206E_200C_202C_200F_200C_200B_206C_206A_206D_200D_202C_200E_206B_202D_206D_206A_202E_206D_206C_200D_200F_206A_202B_206E_202A_206A_206F_206B_200E_200C_206B_202E((ImU8String)text); - num = -112163756; - break; - } - continue; - end_IL_0ac4: - break; - } - goto end_IL_06a8; - } - } - continue; - end_IL_06a8: - break; + num = (ushort)valueNullable.Value.Territory.RowId; + vector = new Vector3(valueNullable.Value.X, valueNullable.Value.Y, valueNullable.Value.Z); } } catch { } - _206B_200B_200B_202E_200B_202A_202E_206F_200C_206B_206A_200D_202E_206C_206C_200E_200F_202C_206C_202C_206C_200C_202C_200F_200C_202C_202E_202E_200D_206D_206B_202D_202E_206B_200F_206B_200D_206F_206D_202D_202E(); - return; } + if (num != 0 && vector != Vector3.Zero && UiThemeUtils.PillButton("Open on Map", selected: false)) + { + TerritoryType? rowOrDefault2 = _dataManager.GetExcelSheet<TerritoryType>().GetRowOrDefault(num); + if (rowOrDefault2.HasValue) + { + Map? valueNullable2 = rowOrDefault2.Value.Map.ValueNullable; + if (valueNullable2.HasValue) + { + Vector2 vector2 = MapUtil.WorldToMap(new Vector2(vector.X, vector.Z), valueNullable2.Value); + MapLinkPayload mapLink = new MapLinkPayload(num, valueNullable2.Value.RowId, vector2.X, vector2.Y); + _gameGui.OpenMapWithMapLink(mapLink); + } + } + } + if (num != 0 && UiThemeUtils.PillButton("Show in Quest Map", selected: false)) + { + _questMapComponent.SelectQuest(questId, num); + SelectTabAction?.Invoke("Quest Map"); + } + QuestJournalUtils questJournalUtils = QuestJournalUtils; + if (questJournalUtils != null) + { + long tickCount = Environment.TickCount64; + if (!questId.Equals(_addableCachedForQuestId) || tickCount - _addableRefreshedAt > 3000) + { + _addableQuestIds.Clear(); + _addableQuestIds.AddRange(questJournalUtils.GetIncompletePrerequisiteQuests(questInfo)); + _addableCachedForQuestId = questId; + _addableRefreshedAt = tickCount; + } + int count = _addableQuestIds.Count; + using (ImRaii.Disabled(count == 0)) + { + if (UiThemeUtils.PillButton("Add to Priority", selected: false)) + { + questJournalUtils.AddRequiredQuestsToPriority(questInfo, _addableQuestIds); + _addableCachedForQuestId = null; + } + } + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) + { + object obj2; + switch (count) + { + case 0: + ImGui.SetTooltip("No quests to add (quest may be complete, disabled, locked with no unlock path, or already in priority)"); + goto end_IL_00a4; + default: + obj2 = $"Add this quest and {count - 1} required {((count - 1 == 1) ? "quest" : "quests")} to the priority list in completion order"; + break; + case 1: + obj2 = "Add this quest to the priority list"; + break; + } + ImGui.SetTooltip((string?)obj2); + } + } + end_IL_00a4:; } + catch + { + } + ImGui.PopTextWrapPos(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawQuestDescription(QuestId questId, Lumina.Excel.Sheets.Quest? questEx) { - int num = ((!_200C_202A_206F_200B_206E_206F_206F_206D_206E_206A_200E_206E_206E_202E_202D_202A_206A_202C_202C_206C_206C_200C_202E_200E_200D_206C_200C_202A_206B_200E_206D_206F_206F_202B_206C_206B_202E_200F_202E_200D_202E((ElementId)questId, (ElementId)_cachedDescriptionQuestId)) ? (-1809658304) : (-1809658298)); - string text = default(string); - string text4 = default(string); - string text5 = default(string); - QuestDialogueText current = default(QuestDialogueText); - string text6 = default(string); - QuestDialogueText current2 = default(QuestDialogueText); - string text7 = default(string); - while (true) + if (questId.Equals(_cachedDescriptionQuestId)) { - int num2 = num; - int num3 = -1809658300; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (!string.IsNullOrWhiteSpace(_cachedDescription)) + { + ImGui.Spacing(); + ImGui.TextColored(in UiThemeUtils.DimTextColor, _cachedDescription); + } + return; + } + _cachedDescriptionQuestId = questId; + _cachedDescription = null; + try + { + if (!questEx.HasValue) { - case 1: - _202C_206C_206F_206F_200E_206B_202B_202D_206D_206D_200C_200E_200F_206C_202B_202C_200E_206B_202B_206E_206A_202B_202B_206D_202E_206B_206A_206B_200F_202D_206F_200B_206B_202C_200D_202D_202C_202E_202C_206F_202E(); - _200B_200D_202A_206F_202A_202C_202A_202D_206E_200C_206C_202A_206A_206B_202C_202D_206B_200C_200B_202B_206C_206A_200F_200F_206F_202B_202D_206D_206E_202E_202C_200B_206F_206A_202D_206B_200F_202B_200E_200F_202E(ref UiThemeUtils.DimTextColor, (ImU8String)_cachedDescription); - num = -1809658300; - break; - case 2: - num = (_200E_200C_200D_202E_200B_202B_200C_200C_206A_206F_206F_202D_206A_200D_206A_200E_202C_200E_200C_202D_200F_202C_200D_200F_200C_206E_202E_202D_202D_200F_200F_202B_202A_206C_200E_206B_202B_206E_200B_206A_202E(_cachedDescription) ? (-1809658300) : (-1809658299)); - break; - case 0: return; - case 3: - num = -1809658298; - break; - case 4: - _cachedDescriptionQuestId = questId; - _cachedDescription = null; - try + } + string value = questEx.Value.Id.ExtractText(); + if (string.IsNullOrEmpty(value)) + { + return; + } + string text = $"quest/{questId.Value / 100:000}/{value}"; + IDataManager dataManager = _dataManager; + string name = text; + ExcelSheet<QuestDialogueText> excelSheet = dataManager.GetExcelSheet<QuestDialogueText>(null, name); + string text2 = null; + foreach (QuestDialogueText item in excelSheet) + { + string text3 = item.Key.ExtractText(); + if (text3.Contains("SEQ_00", StringComparison.Ordinal) && text3.Contains("BODY", StringComparison.Ordinal)) { - num = (questEx.HasValue ? 1925656317 : 1925656318); - while (true) + string text4 = item.Value.ExtractText(); + if (!string.IsNullOrWhiteSpace(text4)) { - int num7 = num; - num3 = 1925656319; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) + text2 = text4; + break; + } + } + } + if (text2 == null) + { + foreach (QuestDialogueText item2 in excelSheet) + { + string text5 = item2.Key.ExtractText(); + if (text5.Contains("TODO_01", StringComparison.Ordinal) || text5.Contains("OBJECTIVE", StringComparison.Ordinal)) + { + string text6 = item2.Value.ExtractText(); + if (!string.IsNullOrWhiteSpace(text6)) { - case 3: - num = 1925656318; + text2 = text6; break; - case 2: - text = questEx.Value.Id.ExtractText(); - num = ((!_200D_206D_200B_200D_206B_206F_202C_206B_202B_200F_206E_202E_206C_206A_206E_202C_202A_200B_206F_202C_202B_202A_206D_202B_200B_206A_200B_206D_200E_202D_206C_202B_200B_200D_202D_202D_202A_206C_206F_200F_202E(text)) ? 1925656319 : 1925656315); - break; - case 4: - return; - case 1: - return; - case 0: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(7, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-562974435)); - defaultInterpolatedStringHandler.AppendFormatted(_200B_200B_202E_206B_200E_206C_206A_206E_202C_200B_200E_202B_206D_206B_202B_202A_202D_202A_200D_200C_206F_200B_206F_206A_206A_200F_200F_202E_202B_200C_206D_202A_206B_202B_206B_202A_202C_206E_206F_202E_202E((ElementId)questId) / 100, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1224969122)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1392036559)); - defaultInterpolatedStringHandler.AppendFormatted(text); - string text2 = defaultInterpolatedStringHandler.ToStringAndClear(); - IDataManager dataManager = _dataManager; - string name = text2; - ExcelSheet<QuestDialogueText> excelSheet = dataManager.GetExcelSheet<QuestDialogueText>(null, name); - string text3 = null; - using (ExcelSheet<QuestDialogueText>.Enumerator enumerator = excelSheet.GetEnumerator()) - { - num = 533685612; - while (true) - { - int num8 = num; - num3 = 533685610; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = ((!_200B_202A_206B_206D_206F_206B_202A_202A_202D_200F_200C_200B_206A_200F_206F_200C_202B_200D_200E_200D_206E_206B_202E_202E_206F_202A_206F_202E_200D_200B_202A_206A_202A_206A_206C_200E_200C_206A_202A_200E_202E(text4, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1709442303), StringComparison.Ordinal)) ? 533685612 : 533685615); - break; - case 6: - num = (enumerator.MoveNext() ? 533685608 : 533685611); - break; - case 3: - text3 = text5; - num = 533685611; - break; - case 5: - text5 = current.Value.ExtractText(); - num = (_200E_200C_200D_202E_200B_202B_200C_200C_206A_206F_206F_202D_206A_200D_206A_200E_202C_200E_200C_202D_200F_202C_200D_200F_200C_206E_202E_202D_202D_200F_200F_202B_202A_206C_200E_206B_202B_206E_200B_206A_202E(text5) ? 533685612 : 533685609); - break; - case 0: - num = 533685612; - break; - case 2: - current = enumerator.Current; - text4 = current.Key.ExtractText(); - num = ((!_200B_202A_206B_206D_206F_206B_202A_202A_202D_200F_200C_200B_206A_200F_206F_200C_202B_200D_200E_200D_206E_206B_202E_202E_206F_202A_206F_202E_200D_200B_202A_206A_202A_206A_206C_200E_200C_206A_202A_200E_202E(text4, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1297119939), StringComparison.Ordinal)) ? 533685612 : 533685614); - break; - case 1: - goto end_IL_0211; - } - continue; - end_IL_0211: - break; - } - } - if (text3 == null) - { - using ExcelSheet<QuestDialogueText>.Enumerator enumerator = excelSheet.GetEnumerator(); - num = 1693390878; - while (true) - { - int num9 = num; - num3 = 1693390876; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 4: - text3 = text6; - num = 1693390879; - break; - case 1: - current2 = enumerator.Current; - text7 = current2.Key.ExtractText(); - num = (_200B_202A_206B_206D_206F_206B_202A_202A_202D_200F_200C_200B_206A_200F_206F_200C_202B_200D_200E_200D_206E_206B_202E_202E_206F_202A_206F_202E_200D_200B_202A_206A_202A_206A_206C_200E_200C_206A_202A_200E_202E(text7, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(160420819), StringComparison.Ordinal) ? 1693390874 : 1693390873); - break; - case 6: - text6 = current2.Value.ExtractText(); - num = (_200E_200C_200D_202E_200B_202B_200C_200C_206A_206F_206F_202D_206A_200D_206A_200E_202C_200E_200C_202D_200F_202C_200D_200F_200C_206E_202E_202D_202D_200F_200F_202B_202A_206C_200E_206B_202B_206E_200B_206A_202E(text6) ? 1693390878 : 1693390872); - break; - case 5: - num = ((!_200B_202A_206B_206D_206F_206B_202A_202A_202D_200F_200C_200B_206A_200F_206F_200C_202B_200D_200E_200D_206E_206B_202E_202E_206F_202A_206F_202E_200D_200B_202A_206A_202A_206A_206C_200E_200C_206A_202A_200E_202E(text7, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(584658763), StringComparison.Ordinal)) ? 1693390878 : 1693390874); - break; - case 2: - num = (enumerator.MoveNext() ? 1693390877 : 1693390879); - break; - case 0: - num = 1693390878; - break; - case 3: - goto end_IL_0368; - } - continue; - end_IL_0368: - break; - } - } - num = (_200E_200C_200D_202E_200B_202B_200C_200C_206A_206F_206F_202D_206A_200D_206A_200E_202C_200E_200C_202D_200F_202C_200D_200F_200C_206E_202E_202D_202D_200F_200F_202B_202A_206C_200E_206B_202B_206E_200B_206A_202E(text3) ? (-1018691369) : (-1018691370)); - while (true) - { - int num12 = num; - num3 = -1018691369; - num4 = num12; - int num13 = num4 + num3; - int num14 = num4 & num3; - switch (num13 - (num14 + num14)) - { - case 2: - num = -1018691370; - break; - case 1: - _cachedDescription = text3; - _202C_206C_206F_206F_200E_206B_202B_202D_206D_206D_200C_200E_200F_206C_202B_202C_200E_206B_202B_206E_206A_202B_202B_206D_202E_206B_206A_206B_200F_202D_206F_200B_206B_202C_200D_202D_202C_202E_202C_206F_202E(); - _200B_200D_202A_206F_202A_202C_202A_202D_206E_200C_206C_202A_206A_206B_202C_202D_206B_200C_200B_202B_206C_206A_200F_200F_206F_202B_202D_206D_206E_202E_202C_200B_206F_206A_202D_206B_200F_202B_200E_200F_202E(ref UiThemeUtils.DimTextColor, (ImU8String)text3); - num = -1018691369; - break; - case 0: - return; - } - } - } } } } - catch - { - return; - } } + if (!string.IsNullOrWhiteSpace(text2)) + { + _cachedDescription = text2; + ImGui.Spacing(); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text2); + } + } + catch + { } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawNpcLine(Lumina.Excel.Sheets.Quest? questEx, IQuestInfo questInfo) { string text = null; string text2 = null; - int num; try { - num = ((!questEx.HasValue) ? 1742559574 : 1742559575); - uint rowId = default(uint); - while (true) + if (questEx.HasValue) { - int num2 = num; - int num3 = 1742559573; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + uint rowId = questEx.Value.IssuerStart.RowId; + if (rowId != 0) { - case 0: - num = 1742559575; - break; - case 2: - rowId = questEx.Value.IssuerStart.RowId; - num = ((rowId == 0) ? 1742559574 : 1742559572); - break; - case 1: text = ResolveNpcName(rowId); - num = 1742559574; - break; - case 3: - goto end_IL_0028; } - continue; - end_IL_0028: - break; } } catch @@ -1519,83 +629,38 @@ internal sealed class QuestChainComponent } try { - num = ((!questEx.HasValue) ? (-84290485) : (-84290487)); - uint rowId2 = default(uint); - while (true) + if (questEx.HasValue) { - int num5 = num; - int num3 = -84290485; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) + uint rowId2 = questEx.Value.TargetEnd.RowId; + if (rowId2 != 0) { - case 1: text2 = ResolveNpcName(rowId2); - num = -84290485; - break; - case 2: - rowId2 = questEx.Value.TargetEnd.RowId; - num = ((rowId2 == 0) ? (-84290485) : (-84290486)); - break; - case 3: - num = -84290487; - break; - case 0: - goto end_IL_010a; } - continue; - end_IL_010a: - break; } } catch { } - num = ((text != null) ? 596830364 : 596830365); - while (true) + if (text != null || text2 != null) { - int num6 = num; - int num3 = 596830362; - int num4 = num6; - switch ((num4 | num3) - (num4 & num3)) + if (text != null && text2 != null) { - case 8: - { - ImU8String imU8String = new ImU8String(3, 2); - imU8String.AppendFormatted(text); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-485019730)); - imU8String.AppendFormatted(text2); - _200B_200D_202A_206F_202A_202C_202A_202D_206E_200C_206C_202A_206A_206B_202C_202D_206B_200C_200B_202B_206C_206A_200F_200F_206F_202B_202D_206D_206E_202E_202C_200B_206F_206A_202D_206B_200F_202B_200E_200F_202E(ref UiThemeUtils.DimTextColor, imU8String); - return; + ImU8String text3 = new ImU8String(3, 2); + text3.AppendFormatted(text); + text3.AppendLiteral(" → "); + text3.AppendFormatted(text2); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text3); } - case 0: - return; - case 7: - num = ((text2 == null) ? 596830362 : 596830364); - break; - case 3: + else if (text != null) { - ImU8String imU8String2 = new ImU8String(2, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(935059527)); - imU8String2.AppendFormatted(text2); - _200B_200D_202A_206F_202A_202C_202A_202D_206E_200C_206C_202A_206A_206B_202C_202D_206B_200C_200B_202B_206C_206A_200F_200F_206F_202B_202D_206D_206E_202E_202C_200B_206F_206A_202D_206B_200F_202B_200E_200F_202E(ref UiThemeUtils.DimTextColor, imU8String2); - num = 596830362; - break; + ImGui.TextColored(in UiThemeUtils.DimTextColor, text); } - case 5: - num = 596830365; - break; - case 2: - _200B_200D_202A_206F_202A_202C_202A_202D_206E_200C_206C_202A_206A_206B_202C_202D_206B_200C_200B_202B_206C_206A_200F_200F_206F_202B_202D_206D_206E_202E_202C_200B_206F_206A_202D_206B_200F_202B_200E_200F_202E(ref UiThemeUtils.DimTextColor, (ImU8String)text); - return; - case 6: - num = ((text == null) ? 596830366 : 596830363); - break; - case 1: - num = ((text2 == null) ? 596830366 : 596830354); - break; - case 4: - num = ((text == null) ? 596830361 : 596830360); - break; + else + { + ImU8String text4 = new ImU8String(2, 1); + text4.AppendLiteral("→ "); + text4.AppendFormatted(text2); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text4); } } } @@ -1603,2713 +668,844 @@ internal sealed class QuestChainComponent private string? ResolveNpcName(uint npcId) { ENpcResident? rowOrDefault = _dataManager.GetExcelSheet<ENpcResident>().GetRowOrDefault(npcId); - int num = ((!rowOrDefault.HasValue) ? (-1406842401) : (-1406842403)); - string text = default(string); - while (true) + if (rowOrDefault.HasValue) { - int num2 = num; - int num3 = -1406842404; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + string text = rowOrDefault.Value.Singular.ExtractText(); + if (!string.IsNullOrEmpty(text)) { - case 3: - return null; - case 1: - text = rowOrDefault.Value.Singular.ExtractText(); - num = (_200D_206D_200B_200D_206B_206F_202C_206B_202B_200F_206E_202E_206C_206A_206E_202C_202A_200B_206F_202C_202B_202A_206D_202B_200B_206A_200B_206D_200E_202D_206C_202B_200B_200D_202D_202D_202A_206C_206F_200F_202E(text) ? (-1406842401) : (-1406842402)); - break; - case 0: - num = -1406842403; - break; - case 2: return text; } } + return null; } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawRewards(Lumina.Excel.Sheets.Quest questEx) { - byte itemRewardType = questEx.ItemRewardType; - int num = 1; - int num2 = itemRewardType; - bool flag3 = default(bool); - Item? valueOrDefault = default(Item?); - int num3; - Item? valueNullable = default(Item?); - switch (~(~num2 + num)) + bool flag; + switch (questEx.ItemRewardType) { - default: - num3 = 1403024806; - goto IL_003a; - case 0: - case 2: - case 4: - flag3 = true; - num3 = 1403024807; - goto IL_003a; case 1: case 3: - goto IL_00aa; - IL_003a: - while (true) + case 5: + flag = true; + break; + default: + flag = false; + break; + } + if (flag) + { + bool flag2 = false; + for (int i = 0; i < questEx.Reward.Count; i++) { - int num4 = num3; - num = 1403024802; - num2 = num4; - bool flag2; - int num13; - switch ((num2 | num) - (num2 & num)) + try { - case 2: - goto end_IL_003a; - case 5: - if (flag3) + RowRef rowRef = questEx.Reward[i]; + if (rowRef.RowId == 0 || !rowRef.Is<Item>()) { - num3 = 1403024803; - break; + continue; } - goto IL_02b0; - case 3: - num3 = 1403024806; - break; - case 4: - num3 = 1403024802; - break; - case 0: - goto IL_00aa; - case 1: + Item? valueOrDefault = rowRef.GetValueOrDefault<Item>(); + if (valueOrDefault.HasValue) { - bool flag = false; - int num5 = 0; - while (num5 < questEx.Reward.Count) + if (!flag2) { - try - { - RowRef rowRef = questEx.Reward[num5]; - num3 = ((rowRef.RowId == 0) ? 1542330155 : 1542330152); - while (true) - { - int num6 = num3; - num = 1542330159; - num2 = num6; - int num7 = num2 + num; - int num8 = num2 & num; - int num9; - switch (num7 - (num8 + num8)) - { - default: - continue; - case 10: - valueOrDefault = rowRef.GetValueOrDefault<Item>(); - num3 = (valueOrDefault.HasValue ? 1542330157 : 1542330158); - continue; - case 4: - goto end_IL_00fb; - case 3: - _206F_202C_206E_206C_200D_202B_200C_206D_200E_202A_206F_206C_200B_206A_200D_206A_200D_200C_200D_206A_202D_202B_200C_202A_200C_206F_202A_200B_206B_202B_202B_200C_202A_200E_200E_202C_206A_200B_202B_206B_202E(); - num3 = 1542330159; - continue; - case 5: - num9 = 1; - break; - case 0: - num3 = ((num5 < questEx.ItemCountReward.Count) ? 1542330150 : 1542330154); - continue; - case 1: - goto end_IL_00fb; - case 6: - UiThemeUtils.SubSectionHeader(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-828308343)); - flag = true; - num3 = 1542330159; - continue; - case 2: - num3 = (flag ? 1542330156 : 1542330153); - continue; - case 7: - num3 = (rowRef.Is<Item>() ? 1542330149 : 1542330155); - continue; - case 8: - num3 = 1542330152; - continue; - case 9: - num9 = questEx.ItemCountReward[num5]; - break; - } - byte count = (byte)num9; - DrawItemIcon(valueOrDefault.Value, count); - break; - continue; - end_IL_00fb: - break; - } - } - catch - { - } - int num10 = num5; - num = 1; - num2 = num10; - int num11 = num2 ^ num; - int num12 = num2 & num; - num5 = num11 + (num12 + num12); + UiThemeUtils.SubSectionHeader("Rewards"); + flag2 = true; } - goto IL_02b0; + else + { + ImGui.SameLine(); + } + byte count = (byte)((i >= questEx.ItemCountReward.Count) ? 1 : questEx.ItemCountReward[i]); + DrawItemIcon(valueOrDefault.Value, count); } - IL_02b0: - flag2 = false; - num13 = 0; - while (num13 < questEx.OptionalItemReward.Count) - { - try - { - RowRef<Item> rowRef2 = questEx.OptionalItemReward[num13]; - num3 = ((rowRef2.RowId != 0) ? 1010436964 : 1010436970); - while (true) - { - int num14 = num3; - num = 1010436973; - num2 = num14; - int num15 = num2 + num; - int num16 = num2 & num; - int num17; - switch (num15 - (num16 + num16)) - { - default: - continue; - case 8: - UiThemeUtils.SubSectionHeader(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-49559706)); - flag2 = true; - num3 = 1010436968; - continue; - case 7: - goto end_IL_02f3; - case 2: - num3 = 1010436970; - continue; - case 1: - num3 = (flag2 ? 1010436974 : 1010436965); - continue; - case 3: - _206F_202C_206E_206C_200D_202B_200C_206D_200E_202A_206F_206C_200B_206A_200D_206A_200D_200C_200D_206A_202D_202B_200C_202A_200C_206F_202A_200B_206B_202B_202B_200C_202A_200E_200E_202C_206A_200B_202B_206B_202E(); - num3 = 1010436968; - continue; - case 4: - num17 = 1; - break; - case 5: - num3 = ((num13 < questEx.OptionalItemCountReward.Count) ? 1010436973 : 1010436969); - continue; - case 9: - valueNullable = rowRef2.ValueNullable; - num3 = (valueNullable.HasValue ? 1010436972 : 1010436971); - continue; - case 6: - goto end_IL_02f3; - case 0: - num17 = questEx.OptionalItemCountReward[num13]; - break; - } - byte count2 = (byte)num17; - DrawItemIcon(valueNullable.Value, count2); - break; - continue; - end_IL_02f3: - break; - } - } - catch - { - } - int num18 = num13; - num = 1; - num2 = num18; - int num19 = num2 ^ num; - int num20 = num2 & num; - num13 = num19 + (num20 + num20); - } - return; } - continue; - end_IL_003a: - break; + catch + { + } + } + } + bool flag3 = false; + for (int j = 0; j < questEx.OptionalItemReward.Count; j++) + { + try + { + RowRef<Item> rowRef2 = questEx.OptionalItemReward[j]; + if (rowRef2.RowId == 0) + { + continue; + } + Item? valueNullable = rowRef2.ValueNullable; + if (valueNullable.HasValue) + { + if (!flag3) + { + UiThemeUtils.SubSectionHeader("Optional rewards"); + flag3 = true; + } + else + { + ImGui.SameLine(); + } + byte count2 = (byte)((j >= questEx.OptionalItemCountReward.Count) ? 1 : questEx.OptionalItemCountReward[j]); + DrawItemIcon(valueNullable.Value, count2); + } + } + catch + { } - goto case 0; - IL_00aa: - flag3 = false; - num3 = 1403024807; - goto IL_003a; } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawItemIcon(Item item, byte count) { - int num; try { ushort icon = item.Icon; - num = ((icon <= 0) ? (-1941394636) : (-1941394632)); - string text3 = default(string); - IDalamudTextureWrap dalamudTextureWrap = default(IDalamudTextureWrap); - bool flag = default(bool); - while (true) + if (icon > 0) { - int num2 = num; - int num3 = -1941394627; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - string text2; - switch (num5 - (num6 + num6)) + string path = $"ui/icon/{icon / 1000 * 1000:000000}/{icon:000000}_hr1.tex"; + IDalamudTextureWrap wrapOrDefault = _textureProvider.GetFromGame(path).GetWrapOrDefault(); + if (wrapOrDefault != null) { - case 2: - _200E_206C_202C_202A_200C_202D_206A_206F_206B_202E_200E_200B_200C_206F_200C_206C_200E_202B_200C_206C_206D_202E_202A_202D_200E_206B_202A_200D_200B_206C_206F_206C_206D_206F_202B_206A_206F_200C_200D_200E_202E(); - text3 = item.Name.ExtractText(); - num = ((count > 1) ? (-1941394626) : (-1941394627)); - break; - case 1: - _202D_200D_206E_206E_206B_202A_206E_206F_202C_202E_206E_202C_202C_206E_200D_206F_202C_202D_200D_200B_202A_200C_200B_202E_206A_202A_206A_200C_206E_206F_202B_200E_202B_202E_206C_202E_200E_200E_206F_206E_202E(_206E_202C_202E_202B_200D_206B_200C_200F_206C_206D_200F_202C_206B_200F_200E_202C_206B_200D_202B_206E_200D_206A_202C_202A_200D_206B_200D_200E_200B_200C_202A_200B_202A_206E_206C_206C_202D_206E_202D_200C_202E(dalamudTextureWrap), new Vector2(32f, 32f)); - flag = _202D_206C_202B_206F_200F_206C_202E_200E_200D_202E_206F_202E_206E_206E_202C_206A_200D_200B_206B_206F_206A_202E_202C_200F_200B_202D_202C_200C_206D_202D_202B_202C_200C_200D_202A_200B_202B_202E_202E_200E_202E(); - num = ((count <= 1) ? (-1941394635) : (-1941394631)); - break; - case 4: - { - _206E_202A_202B_206F_206B_206F_200E_206C_200F_206F_206D_206A_200D_200F_206C_206D_200B_206B_202A_202E_206F_202E_206C_200E_206D_206D_206B_206B_206C_200F_202B_202E_202B_200F_202A_200B_202C_206F_200F_202D_202E(0f, 2f); - _200F_202D_200B_206A_200D_206F_206F_200F_200B_206D_202C_206E_200C_200D_206A_202E_200E_202A_200D_202D_200C_202B_206C_206D_200E_202D_206F_206C_200F_206D_200F_200C_200C_200F_202A_200E_206A_200B_206D_206C_202E(_206D_202C_200C_200E_202C_202C_200D_206D_206F_206A_200C_200E_202C_202E_200C_200F_206E_206E_206E_202B_206C_200F_200D_200F_206D_202B_200F_200E_202B_200D_206A_202D_206E_200E_200F_202A_206D_206C_200E_202C_202E() + 16f); - ImU8String imU8String = new ImU8String(1, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(446943949)); - imU8String.AppendFormatted(count); - _200B_200D_202A_206F_202A_202C_202A_202D_206E_200C_206C_202A_206A_206B_202C_202D_206B_200C_200B_202B_206C_206A_200F_200F_206F_202B_202D_206D_206E_202E_202C_200B_206F_206A_202D_206B_200F_202B_200E_200F_202E(ref UiThemeUtils.DimTextColor, imU8String); - flag |= _202D_206C_202B_206F_200F_206C_202E_200E_200D_202E_206F_202E_206E_206E_202C_206A_200D_200B_206B_206F_206A_202E_202C_200F_200B_202D_202C_200C_206D_202D_202B_202C_200C_200D_202A_200B_202B_202E_202E_200E_202E(); - num = -1941394635; - break; - } - case 0: - text2 = text3; - goto IL_01bf; - case 6: + ImGui.Image(wrapOrDefault.Handle, new Vector2(32f, 32f)); + bool flag = ImGui.IsItemHovered(); + if (count > 1) + { + ImGui.SameLine(0f, 2f); + ImGui.SetCursorPosY(ImGui.GetCursorPosY() + 16f); + ImU8String text = new ImU8String(1, 1); + text.AppendLiteral("x"); + text.AppendFormatted(count); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text); + flag |= ImGui.IsItemHovered(); + } + if (flag) + { + ImGui.BeginTooltip(); + string text2 = item.Name.ExtractText(); + ImGui.TextUnformatted((count > 1) ? $"{text2} x{count}" : text2); + ImGui.EndTooltip(); + } return; - case 8: - num = ((!flag) ? (-1941394629) : (-1941394625)); - break; - case 3: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(2, 2); - defaultInterpolatedStringHandler2.AppendFormatted(text3); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1448126334)); - defaultInterpolatedStringHandler2.AppendFormatted(count); - text2 = defaultInterpolatedStringHandler2.ToStringAndClear(); - goto IL_01bf; } - case 5: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(17, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(668017784)); - defaultInterpolatedStringHandler.AppendFormatted(icon / 1000 * 1000, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(786645962)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(503298330)); - defaultInterpolatedStringHandler.AppendFormatted(icon, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(981289831)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(963084362)); - string text = defaultInterpolatedStringHandler.ToStringAndClear(); - dalamudTextureWrap = _200F_206C_200D_206A_206B_200B_206A_206D_200F_202A_202E_206C_202A_202B_200F_206A_206D_202E_200F_202C_206A_202B_200E_200B_202A_200E_206A_206F_206D_202B_202D_202B_202E_206A_202A_206B_202A_202D_200C_200E_202E(_206D_200E_206D_206F_206C_200B_200D_202C_206F_202D_202E_202C_202C_202A_202B_202B_202C_206A_206E_202D_202E_206F_200D_202C_200E_200D_206C_200C_206D_200F_200B_200E_206C_206D_200B_200E_206D_206F_206E_206B_202E(_textureProvider, text), (IDalamudTextureWrap)null); - num = ((dalamudTextureWrap == null) ? (-1941394636) : (-1941394628)); - break; - } - case 7: - num = -1941394632; - break; - case 9: - goto end_IL_0027; - IL_01bf: - _202D_200C_202D_202A_202E_206D_206C_202B_206D_200C_206A_200F_202B_202B_202E_202C_200C_206D_206D_200D_200D_206D_206E_206E_206C_200C_206F_206B_200E_206B_202B_200E_202C_206E_200B_202C_202E_202D_200F_206A_202E((ImU8String)text2); - _202A_206B_206A_202B_206B_200B_200B_202A_206C_206C_202D_206F_200D_200F_200E_200E_200B_200E_206B_202A_206E_206E_200F_200F_206C_206F_206A_200C_206F_200E_200C_200C_200E_202D_202C_202D_206D_200B_200B_202C_202E(); - num = -1941394629; - break; - } - continue; - end_IL_0027: - break; } } catch { } - string text4 = item.Name.ExtractText(); - num = ((count > 1) ? 504309802 : 504309800); - while (true) + string text3 = item.Name.ExtractText(); + ImGui.TextUnformatted((count > 1) ? $"[{text3} x{count}]" : ("[" + text3 + "]")); + if (ImGui.IsItemHovered()) { - int num7 = num; - int num3 = 504309801; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - string text5; - switch (num8 - (num9 + num9)) - { - case 3: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(4, 2); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1542193285)); - defaultInterpolatedStringHandler3.AppendFormatted(text4); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(821360342)); - defaultInterpolatedStringHandler3.AppendFormatted(count); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1851437460)); - text5 = defaultInterpolatedStringHandler3.ToStringAndClear(); - goto IL_0350; - } - case 1: - text5 = _200F_206B_200D_200D_206B_206C_200B_200D_206E_202A_202C_206E_202E_206D_202C_206B_206E_200F_200B_206D_202E_206D_200B_206E_206E_206D_206A_202E_206D_200E_206F_202A_202D_206D_206B_202A_200D_202A_206A_206F_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-999106428), text4, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1851437460)); - goto IL_0350; - case 2: - return; - case 0: - _200E_206C_202C_202A_200C_202D_206A_206F_206B_202E_200E_200B_200C_206F_200C_206C_200E_202B_200C_206C_206D_202E_202A_202D_200E_206B_202A_200D_200B_206C_206F_206C_206D_206F_202B_206A_206F_200C_200D_200E_202E(); - _202D_200C_202D_202A_202E_206D_206C_202B_206D_200C_206A_200F_202B_202B_202E_202C_200C_206D_206D_200D_200D_206D_206E_206E_206C_200C_206F_206B_200E_206B_202B_200E_202C_206E_200B_202C_202E_202D_200F_206A_202E((ImU8String)text4); - _202A_206B_206A_202B_206B_200B_200B_202A_206C_206C_202D_206F_200D_200F_200E_200E_200B_200E_206B_202A_206E_206E_200F_200F_206C_206F_206A_200C_206F_200E_200C_200C_200E_202D_202C_202D_206D_200B_200B_202C_202E(); - num = 504309803; - break; - case 4: - { - num = 504309800; - break; - } - IL_0350: - _202D_200C_202D_202A_202E_206D_206C_202B_206D_200C_206A_200F_202B_202B_202E_202C_200C_206D_206D_200D_200D_206D_206E_206E_206C_200C_206F_206B_200E_206B_202B_200E_202C_206E_200B_202C_202E_202D_200F_206A_202E((ImU8String)text5); - num = ((!_202D_206C_202B_206F_200F_206C_202E_200E_200D_202E_206F_202E_206E_206E_202C_206A_200D_200B_206B_206F_206A_202E_202C_200F_200B_202D_202C_200C_206D_202D_202B_202C_200C_200D_202A_200B_202B_202E_202E_200E_202E()) ? 504309803 : 504309801); - break; - } + ImGui.BeginTooltip(); + ImGui.TextUnformatted(text3); + ImGui.EndTooltip(); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawQuestBanner(uint iconId) { - int num = ((iconId != 0) ? 1411179466 : 1411179465); - while (true) + if (iconId == 0) { - int num2 = num; - int num3 = 1411179464; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return; + } + try + { + string path = $"ui/icon/{iconId / 1000 * 1000:000000}/{iconId:000000}_hr1.tex"; + IDalamudTextureWrap wrapOrDefault = _textureProvider.GetFromGame(path).GetWrapOrDefault(); + if (wrapOrDefault != null) { - case 0: - goto IL_004a; - case 1: - return; - case 2: - try - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(17, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-899020876)); - defaultInterpolatedStringHandler.AppendFormatted(iconId / 1000 * 1000, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(385900318)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1680133376)); - defaultInterpolatedStringHandler.AppendFormatted(iconId, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1347770256)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2009764943)); - string text = defaultInterpolatedStringHandler.ToStringAndClear(); - IDalamudTextureWrap dalamudTextureWrap = _200F_206C_200D_206A_206B_200B_206A_206D_200F_202A_202E_206C_202A_202B_200F_206A_206D_202E_200F_202C_206A_202B_200E_200B_202A_200E_206A_206F_206D_202B_202D_202B_202E_206A_202A_206B_202A_202D_200C_200E_202E(_206D_200E_206D_206F_206C_200B_200D_202C_206F_202D_202E_202C_202C_202A_202B_202B_202C_206A_206E_202D_202E_206F_200D_202C_200E_200D_206C_200C_206D_200F_200B_200E_206C_206D_200B_200E_206D_206F_206E_206B_202E(_textureProvider, text), (IDalamudTextureWrap)null); - num = ((dalamudTextureWrap == null) ? (-419652818) : (-419652819)); - while (true) - { - int num5 = num; - num3 = -419652820; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -419652819; - break; - case 1: - { - float num6 = _206A_206F_202B_200C_200F_202A_202C_206F_202C_206E_202E_206D_206A_200B_206C_200B_200C_206F_206F_202A_206E_206B_200B_206D_206F_202E_206B_206A_202B_206C_206C_202E_206A_202D_200C_206E_202D_200C_200D_202B_202E(_206F_200B_200E_206C_200E_200B_206B_206E_200E_206C_206E_206E_202B_202A_206B_202C_200C_202A_206B_202D_206C_202D_202D_200F_206B_200E_200B_206B_202A_206A_206D_200F_206D_206E_202B_200B_200C_206D_200C_202A_202E().X, (float)_202A_200E_206D_200E_206A_202C_206E_206A_202C_206C_206B_200F_200B_200F_200F_202A_206B_200E_200D_202A_206F_200E_200F_202B_200B_202D_206D_206C_206B_202A_202A_206D_200C_200D_200D_206B_200B_206A_206C_200E_202E(dalamudTextureWrap) * 0.5f); - float num7 = (float)_200F_206A_200E_206F_206F_202C_206C_200F_202E_206F_206C_202D_202B_202C_200F_202B_200E_200B_200B_202B_206D_206B_202A_206B_200C_206D_206A_202E_200C_202B_206C_206C_206D_206B_206C_200D_202B_202E_206C_206A_202E(dalamudTextureWrap) / (float)_202A_200E_206D_200E_206A_202C_206E_206A_202C_206C_206B_200F_200B_200F_200F_202A_206B_200E_200D_202A_206F_200E_200F_202B_200B_202D_206D_206C_206B_202A_202A_206D_200C_200D_200D_206B_200B_206A_206C_200E_202E(dalamudTextureWrap); - float y = num6 * num7; - _202D_200D_206E_206E_206B_202A_206E_206F_202C_202E_206E_202C_202C_206E_200D_206F_202C_202D_200D_200B_202A_200C_200B_202E_206A_202A_206A_200C_206E_206F_202B_200E_202B_202E_206C_202E_200E_200E_206F_206E_202E(_206E_202C_202E_202B_200D_206B_200C_200F_206C_206D_200F_202C_206B_200F_200E_202C_206B_200D_202B_206E_200D_206A_202C_202A_200D_206B_200D_200E_200B_200C_202A_200B_202A_206E_206C_206C_202D_206E_202D_200C_202E(dalamudTextureWrap), new Vector2(num6, y)); - num = -419652818; - break; - } - case 2: - return; - } - } - } - catch - { - return; - } + float num = MathF.Min(ImGui.GetContentRegionAvail().X, (float)wrapOrDefault.Width * 0.5f); + float num2 = (float)wrapOrDefault.Height / (float)wrapOrDefault.Width; + float y = num * num2; + ImGui.Image(wrapOrDefault.Handle, new Vector2(num, y)); } - continue; - IL_004a: - num = 1411179465; + } + catch + { } } - [MethodImpl(MethodImplOptions.NoInlining)] private CachedGraphLayout ComputeLayout(QuestChainGraph graph) { List<List<QuestId>> list = ReorderLayers(graph); - int num = 0; - int num2 = -417925842; - IQuestInfo questInfo = default(IQuestInfo); - QuestId current = default(QuestId); - float num19 = default(float); - int num18 = default(int); - int num14 = default(int); - QuestId current2 = default(QuestId); - string text = default(string); - string text2 = default(string); - float num16 = default(float); - float num15 = default(float); - IQuestInfo questInfo2 = default(IQuestInfo); - while (true) + for (int i = 0; i < list.Count; i++) { - int num3 = num2; - int num4 = -417925844; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + list[i] = list[i].Where((QuestId qid) => _questData.TryGetQuestInfo(qid, out IQuestInfo _)).ToList(); + } + list.RemoveAll((List<QuestId> l) => l.Count == 0); + Dictionary<QuestId, float> dictionary = new Dictionary<QuestId, float>(); + foreach (List<QuestId> item in list) + { + foreach (QuestId item2 in item) { - case 3: - num2 = -417925842; - break; - case 1: - { - list[num] = list[num].Where((QuestId qid) => _questData.TryGetQuestInfo(qid, out IQuestInfo _)).ToList(); - int num22 = num; - num4 = 1; - num5 = num22; - int num23 = num5 ^ num4; - int num24 = num5 & num4; - num = num23 + (num24 + num24); - num2 = -417925842; - break; - } - case 2: - num2 = ((num < list.Count) ? (-417925843) : (-417925844)); - break; - case 0: - { - list.RemoveAll((List<QuestId> l) => l.Count == 0); - Dictionary<QuestId, float> dictionary = new Dictionary<QuestId, float>(); - foreach (List<QuestId> item in list) - { - using List<QuestId>.Enumerator enumerator2 = item.GetEnumerator(); - num2 = 169388037; - while (true) - { - int num6 = num2; - num4 = 169388037; - num5 = num6; - float num7; - float num8; - switch ((num5 | num4) - (num5 & num4)) - { - case 4: - num7 = 150f; - goto IL_018a; - case 1: - num7 = _200C_202E_206B_202A_206C_206F_202B_202C_202B_200F_206D_200F_206D_206D_200E_200F_206B_206F_200D_206A_206A_200B_206E_200D_200B_200E_200D_202E_200B_200B_200B_202A_206B_206C_202C_202E_206D_206B_206E_202D_202E((ImU8String)UiThemeUtils.CleanSeString(questInfo.Name), false, -1f).X + 16f; - goto IL_018a; - case 2: - num2 = 169388037; - break; - case 5: - current = enumerator2.Current; - num2 = (_questData.TryGetQuestInfo(current, out questInfo) ? 169388036 : 169388033); - break; - case 0: - num2 = (enumerator2.MoveNext() ? 169388032 : 169388038); - break; - case 3: - goto end_IL_0115; - IL_018a: - num8 = num7; - dictionary[current] = _206D_200F_206A_200F_206D_202C_202E_202E_206F_206C_200C_206A_202E_202E_206E_202C_206A_202B_206B_206B_206A_206F_202A_202C_202A_200E_202D_200F_206B_200F_202C_206B_206B_206E_206F_200C_202E_202C_206F_202E(150f, _206A_206F_202B_200C_200F_202A_202C_206F_202C_206E_202E_206D_206A_200B_206C_200B_200C_206F_206F_202A_206E_206B_200B_206D_206F_202E_206B_206A_202B_206C_206C_202E_206A_202D_200C_206E_202D_200C_200D_202B_202E(240f, num8)); - num2 = 169388037; - break; - } - continue; - end_IL_0115: - break; - } - } - float[] array = new float[list.Count]; - int num9 = 0; - num2 = -240026125; - while (true) - { - int num10 = num2; - num4 = -240026126; - num5 = num10; - int num11 = num5 + num4; - int num12 = num5 & num4; - switch (num11 - (num12 + num12)) - { - case 3: - { - num19 += dictionary[list[num9][num18]]; - int num20 = num18; - num4 = 1; - num5 = num20; - num18 = (num5 | num4) + (num5 & num4); - num2 = -240026128; - break; - } - case 0: - num2 = ((num18 <= 0) ? (-240026127) : (-240026124)); - break; - case 1: - num2 = ((num9 < list.Count) ? (-240026122) : (-240026121)); - break; - case 7: - { - array[num9] = num19; - int num21 = num9; - num4 = 1; - num5 = num21; - num9 = (num5 | num4) + (num5 & num4); - num2 = -240026125; - break; - } - case 8: - num2 = -240026125; - break; - case 4: - num19 = 0f; - num18 = 0; - num2 = -240026128; - break; - case 6: - num19 += 20f; - num2 = -240026127; - break; - case 2: - num2 = ((num18 < list[num9].Count) ? (-240026126) : (-240026123)); - break; - case 5: - { - Dictionary<QuestId, string> dictionary2 = new Dictionary<QuestId, string>(); - foreach (List<QuestId> item2 in list) - { - using List<QuestId>.Enumerator enumerator2 = item2.GetEnumerator(); - num2 = -1017681287; - while (true) - { - int num13 = num2; - num4 = -1017681287; - num5 = num13; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = (enumerator2.MoveNext() ? (-1017681281) : (-1017681293)); - break; - case 1: - { - int num17 = num14; - num4 = 1; - num5 = num17; - num14 = ~(~num5 + num4); - num2 = -1017681295; - break; - } - case 7: - dictionary2[current2] = text; - num2 = -1017681287; - break; - case 3: - text2 = _206F_206A_202E_206F_202D_202B_206D_206F_202E_206D_200C_206D_200E_200B_202E_202B_202B_200E_200E_206B_206A_206A_200B_200F_206D_200B_200D_206F_200D_200C_206F_202E_200C_200D_206F_206F_202D_202B_200D_206F_202E(_200C_202B_206C_202C_206F_202B_202E_202A_200F_206E_202A_206A_200C_200E_200F_200C_206F_200C_202D_200F_206C_200C_200E_200E_202E_206C_202B_206C_206C_200D_200F_206E_206C_206A_202A_206B_206C_202C_202C_206E_202E(text, 0, num14), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(799152405)); - num2 = ((!(_200C_202E_206B_202A_206C_206F_202B_202C_202B_200F_206D_200F_206D_206D_200E_200F_206B_206F_200D_206A_206A_200B_206E_200D_200B_200E_200D_202E_200B_200B_200B_202A_206B_206C_202C_202E_206D_206B_206E_202D_202E((ImU8String)text2, false, -1f).X + num16 <= num15)) ? (-1017681288) : (-1017681296)); - break; - case 4: - num2 = -1017681287; - break; - case 6: - current2 = enumerator2.Current; - num2 = ((!_questData.TryGetQuestInfo(current2, out questInfo2)) ? (-1017681287) : (-1017681285)); - break; - case 9: - text = text2; - num2 = -1017681282; - break; - case 2: - text = UiThemeUtils.CleanSeString(questInfo2.Name); - num15 = dictionary[current2]; - num16 = 8f; - num2 = ((!(_200C_202E_206B_202A_206C_206F_202B_202C_202B_200F_206D_200F_206D_206D_200E_200F_206B_206F_200D_206A_206A_200B_206E_200D_200B_200E_200D_202E_200B_200B_200B_202A_206B_206C_202C_202E_206D_206B_206E_202D_202E((ImU8String)text, false, -1f).X + num16 > num15)) ? (-1017681282) : (-1017681284)); - break; - case 8: - num2 = ((num14 > 3) ? (-1017681286) : (-1017681282)); - break; - case 5: - num14 = _206F_200C_202E_202B_206A_200E_206D_206D_206C_202B_206C_202A_202C_206A_202E_202C_206F_200D_202E_206F_206E_202C_202A_206B_200D_202A_202A_206F_206C_202D_206C_200E_206B_202C_200E_202B_206D_206C_200D_202A_202E(text) - 1; - num2 = -1017681295; - break; - case 10: - goto end_IL_03e4; - } - continue; - end_IL_03e4: - break; - } - } - return new CachedGraphLayout - { - Layers = list, - NodeWidths = dictionary, - LayerWidths = array, - TruncatedLabels = dictionary2 - }; - } - } - } - } + IQuestInfo questInfo; + float y = (_questData.TryGetQuestInfo(item2, out questInfo) ? (ImGui.CalcTextSize(UiThemeUtils.CleanSeString(questInfo.Name)).X + 16f) : 150f); + dictionary[item2] = MathF.Max(150f, MathF.Min(240f, y)); } } + float[] array = new float[list.Count]; + for (int num = 0; num < list.Count; num++) + { + float num2 = 0f; + for (int num3 = 0; num3 < list[num].Count; num3++) + { + if (num3 > 0) + { + num2 += 20f; + } + num2 += dictionary[list[num][num3]]; + } + array[num] = num2; + } + Dictionary<QuestId, string> dictionary2 = new Dictionary<QuestId, string>(); + foreach (List<QuestId> item3 in list) + { + foreach (QuestId item4 in item3) + { + if (!_questData.TryGetQuestInfo(item4, out IQuestInfo questInfo2)) + { + continue; + } + string text = UiThemeUtils.CleanSeString(questInfo2.Name); + float num4 = dictionary[item4]; + float num5 = 8f; + if (ImGui.CalcTextSize(text).X + num5 > num4) + { + for (int num6 = text.Length - 1; num6 > 3; num6--) + { + string text2 = text.Substring(0, num6) + "..."; + if (ImGui.CalcTextSize(text2).X + num5 <= num4) + { + text = text2; + break; + } + } + } + dictionary2[item4] = text; + } + } + return new CachedGraphLayout + { + Layers = list, + NodeWidths = dictionary, + LayerWidths = array, + TruncatedLabels = dictionary2 + }; } private void RefreshNodeStatusCache() { _nodeStatusCache.Clear(); - int num = ((_cachedLayout != null) ? 592531214 : 592531215); - while (true) + if (_cachedLayout == null) { - int num2 = num; - int num3 = 592531214; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_005c; - case 1: - return; - case 0: - foreach (List<QuestId> layer in _cachedLayout.Layers) - { - using List<QuestId>.Enumerator enumerator2 = layer.GetEnumerator(); - num = -2029790129; - while (true) - { - int num7 = num; - num3 = -2029790130; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -2029790129; - break; - case 1: - num = (enumerator2.MoveNext() ? (-2029790132) : (-2029790131)); - break; - case 2: - { - QuestId current = enumerator2.Current; - Vector4 questNodeColor = GetQuestNodeColor(current); - bool isDone = _questFunctions.IsQuestAcceptedOrComplete(current); - _nodeStatusCache[current] = new NodeStatusEntry(questNodeColor, isDone); - num = -2029790129; - break; - } - case 3: - goto end_IL_0098; - } - continue; - end_IL_0098: - break; - } - } - _nodeStatusRefreshedAt = _202D_202E_206C_200E_206E_200C_200D_202A_202D_200B_200C_206D_200C_206A_206F_206E_200C_206C_206E_206F_206D_200B_200E_206E_200E_202C_206C_206F_206C_202E_206E_206F_202B_202C_202A_202E_206A_206E_206B_202C_202E(); - return; - } - continue; - IL_005c: - num = 592531215; + return; } + foreach (List<QuestId> layer in _cachedLayout.Layers) + { + foreach (QuestId item in layer) + { + Vector4 questNodeColor = GetQuestNodeColor(item); + bool isDone = _questFunctions.IsQuestAcceptedOrComplete(item); + _nodeStatusCache[item] = new NodeStatusEntry(questNodeColor, isDone); + } + } + _nodeStatusRefreshedAt = Environment.TickCount64; } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawChainGraph(QuestChainGraph graph, float panelWidth) { float graphZoom = _graphZoom; - ImDrawListPtr drawList = _202E_200C_202A_202A_206A_202C_202E_202D_202B_200F_206A_206E_206E_206D_206F_206B_202D_206F_200E_202A_202C_206F_202E_206D_202E_202B_200E_202B_200C_202C_206E_206A_206A_200C_202A_200B_206C_206C_200D_206C_202E(); - Vector2 vector = _202E_200C_202E_200B_206A_200D_200D_200D_206C_200F_206B_206A_202A_202D_202D_200D_202E_206B_200E_200E_206C_200B_200B_206E_200D_202B_202E_200C_200C_206D_206A_200D_200B_200C_200D_202A_202E_206D_206E_202A_202E(); - Vector2 vector2 = _206F_200B_200E_206C_200E_200B_206B_206E_200E_206C_206E_206E_202B_202A_206B_202C_200C_202A_206B_202D_206C_202D_202D_200F_206B_200E_200B_206B_202A_206A_206D_200F_206D_206E_202B_200B_200C_206D_200C_202A_202E(); - int num = ((!(vector2.X < 1f)) ? 1242681115 : 1242681101); - Vector2 vector4 = default(Vector2); - float num68 = default(float); - float[] layerWidths = default(float[]); - int num69 = default(int); - int num70 = default(int); - Dictionary<QuestId, float> nodeWidths = default(Dictionary<QuestId, float>); - bool flag = default(bool); - bool flag4 = default(bool); - float mouseWheel = default(float); - Vector2 vector3 = default(Vector2); - List<List<QuestId>> layers = default(List<List<QuestId>>); - int num76 = default(int); - Dictionary<QuestId, (Vector2 Min, Vector2 Max)> nodePos; - QuestId questId2 = default(QuestId); - bool dragMoved = default(bool); - QuestId questId = default(QuestId); - (Vector2, Vector2) tuple = default((Vector2, Vector2)); - QuestId current2 = default(QuestId); - List<QuestId> value3 = default(List<QuestId>); - List<QuestId> value4 = default(List<QuestId>); - List<QuestId> list4 = default(List<QuestId>); - int num22 = default(int); - QuestId item3 = default(QuestId); - List<QuestId> list5 = default(List<QuestId>); - QuestId item6 = default(QuestId); - int num30 = default(int); - Vector2 vector6 = default(Vector2); - Vector2 vector5 = default(Vector2); - uint num42 = default(uint); - float thickness = default(float); - QuestId current3 = default(QuestId); - (Vector2, Vector2) value6 = default((Vector2, Vector2)); - int num48 = default(int); - bool flag2 = default(bool); - int num44 = default(int); - int valueOrDefault = default(int); - float num43 = default(float); - float num41 = default(float); - float num40 = default(float); - (Vector2, Vector2) value7 = default((Vector2, Vector2)); - QuestId current4 = default(QuestId); - bool flag3 = default(bool); - bool isDone = default(bool); - string valueOrDefault3 = default(string); - Vector2 pos2 = default(Vector2); - IQuestInfo questInfo2 = default(IQuestInfo); - IQuestInfo questInfo = default(IQuestInfo); - while (true) + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + Vector2 contentRegionAvail = ImGui.GetContentRegionAvail(); + if (contentRegionAvail.X < 1f) { - int num2 = num; - int num3 = 1242681116; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + contentRegionAvail.X = 1f; + } + if (contentRegionAvail.Y < 1f) + { + contentRegionAvail.Y = 1f; + } + ImGui.InvisibleButton("##chainCanvas", contentRegionAvail, ImGuiButtonFlags.MouseButtonMask); + bool flag = ImGui.IsItemHovered(); + bool flag2 = ImGui.IsItemActive(); + Vector2 mousePos = ImGui.GetMousePos(); + windowDrawList.PushClipRect(cursorScreenPos, cursorScreenPos + contentRegionAvail, intersectWithCurrentClipRect: true); + windowDrawList.AddRectFilled(cursorScreenPos, cursorScreenPos + contentRegionAvail, ImGui.ColorConvertFloat4ToU32(GraphBackgroundColor)); + float mouseWheel = ImGui.GetIO().MouseWheel; + if (flag && MathF.Abs(mouseWheel) > 0.01f) + { + float graphZoom2 = _graphZoom; + _graphZoom = Math.Clamp(_graphZoom + mouseWheel * 0.1f, 0.25f, 2f); + Vector2 vector = mousePos - cursorScreenPos - contentRegionAvail * 0.5f - _graphOffset; + _graphOffset -= vector * (_graphZoom / graphZoom2 - 1f); + graphZoom = _graphZoom; + } + if (flag2) + { + if (!_isDragging) { - case 3: - num = 1242681101; - break; - case 7: - num = ((!(vector2.Y < 1f)) ? 1242681106 : 1242681095); - break; - case 20: - num = ((!(Vector2.Distance(vector4, _dragOrigin) > 4f)) ? 1242681108 : 1242681103); - break; - case 12: - num68 = (0f - layerWidths[num69]) * 0.5f; - num70 = 0; - num = 1242681093; - break; - case 16: - RefreshNodeStatusCache(); - num = 1242681118; - break; - case 17: - vector2.X = 1f; - num = 1242681115; - break; - case 2: - num = ((!_scrollToSelected) ? 1242681113 : 1242681092); - break; - case 10: - { - float num71 = nodeWidths[graph.SelectedQuest]; - float num72 = (float)num69 * 81f; - _graphOffset = -new Vector2(num68 + num71 * 0.5f, num72 + 13f) * graphZoom; - num = 1242681113; - break; - } - case 11: _isDragging = true; - _dragStart = vector4; - _dragOrigin = vector4; - num = 1242681096; - break; - case 0: - num = (_isDragging ? 1242681096 : 1242681111); - break; - case 14: - _206C_200C_206E_206E_200F_200D_202A_200C_202E_200E_206F_202D_200C_200F_206A_202A_206D_206C_202A_206B_200B_206A_202B_202B_206B_202B_200E_206D_206A_206D_202C_200D_200D_200F_200D_202B_200F_200F_206C_206A_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1258050388), vector2, ImGuiButtonFlags.MouseButtonMask); - flag = _202D_206C_202B_206F_200F_206C_202E_200E_200D_202E_206F_202E_206E_206E_202C_206A_200D_200B_206B_206F_206A_202E_202C_200F_200B_202D_202C_200C_206D_202D_202B_202C_200C_200D_202A_200B_202B_202E_202E_200E_202E(); - flag4 = _200E_206C_206F_200D_200E_206B_206C_202E_206F_206F_206F_206A_200D_206A_202E_206D_200D_206D_206D_202D_206D_200B_202A_206A_200D_200D_206D_206B_202B_200D_206B_206D_200E_202C_202B_200E_200F_202B_206B_206B_202E(); - vector4 = _200E_202C_206E_200E_202D_202E_206D_206C_206B_206A_202A_206A_202B_200F_206D_202A_206B_200F_202A_206A_202C_206D_206B_206D_206E_206B_202E_202E_206F_202B_200C_206C_202E_202B_206C_202C_202B_202B_200C_200C_202E(); - drawList.PushClipRect(vector, vector + vector2, intersectWithCurrentClipRect: true); - drawList.AddRectFilled(vector, vector + vector2, _206E_202A_202C_206F_200F_206A_200C_206D_202D_200B_206B_206E_206C_200B_206B_200E_200D_200F_206D_200B_200C_200C_206B_206B_200F_206D_206E_206D_206E_202C_202A_206C_206A_200D_202C_206E_200D_202B_200B_202D_202E(GraphBackgroundColor)); - mouseWheel = _206D_200F_206F_202D_202B_206A_202A_200E_206C_206C_200D_206A_200C_200D_206F_206B_202D_206B_200B_200B_200C_200C_206C_200D_202E_202D_206D_206D_206D_200F_200C_206D_206D_200C_200F_206F_206C_200E_202A_202C_202E().MouseWheel; - num = ((!flag) ? 1242681099 : 1242681112); - break; - case 4: - num = ((!(_200B_202C_200D_206E_202E_206F_206E_200D_206D_202A_200D_206C_200D_206E_202A_202A_202E_202C_202D_206D_200E_200E_200C_202B_200E_200F_202A_202D_200E_206D_202A_202E_206B_206C_206B_206A_200F_206B_206D_206F_202E(mouseWheel) > 0.01f)) ? 1242681099 : 1242681102); - break; - case 1: - _cachedLayout = ComputeLayout(graph); - _cachedLayoutQuestId = graph.SelectedQuest; - RefreshNodeStatusCache(); - num = 1242681114; - break; - case 23: - num = ((!flag4) ? 1242681088 : 1242681116); - break; - case 6: - vector3 = vector + vector2 * 0.5f; - layers = _cachedLayout.Layers; - nodeWidths = _cachedLayout.NodeWidths; - layerWidths = _cachedLayout.LayerWidths; - num = ((_202D_202E_206C_200E_206E_200C_200D_202A_202D_200B_200C_206D_200C_206A_206F_206E_200C_206C_206E_206F_206D_200B_200E_206E_200E_202C_206C_206F_206C_202E_206E_206F_202B_202C_202A_202E_206A_206E_206B_202C_202E() - _nodeStatusRefreshedAt <= 3000) ? 1242681118 : 1242681100); - break; - case 21: - num = ((_cachedLayout == null) ? 1242681117 : 1242681098); - break; - case 18: - { - float graphZoom2 = _graphZoom; - _graphZoom = _202E_206D_206D_206F_206C_206D_202A_200C_206B_202B_206E_200E_202D_200C_200C_202C_200E_200C_200D_206F_206C_206A_200F_206A_202C_202E_200D_206E_206F_200B_202D_206C_200B_200F_202E_200B_206D_200E_206B_202B_202E(_graphZoom + mouseWheel * 0.1f, 0.25f, 2f); - Vector2 vector10 = vector4 - vector - vector2 * 0.5f - _graphOffset; - _graphOffset -= vector10 * (_graphZoom / graphZoom2 - 1f); - graphZoom = _graphZoom; - num = 1242681099; - break; + _dragStart = mousePos; + _dragOrigin = mousePos; } - case 28: - _isDragging = false; - num = 1242681097; - break; - case 22: - num = ((!_206D_206A_206B_202D_200F_202B_202E_202A_206E_202A_206C_206F_202B_202B_202C_206D_202C_200B_200D_200C_206C_206A_202D_206A_206D_206B_200F_202D_202E_206D_206F_206B_202A_202D_202B_200C_206F_200E_202E_206E_202E((ElementId)_cachedLayoutQuestId, (ElementId)graph.SelectedQuest)) ? 1242681114 : 1242681117); - break; - case 25: - num = ((num70 < num76) ? 1242681109 : 1242681110); - break; - case 8: + if (Vector2.Distance(mousePos, _dragOrigin) > 4f) { - Vector2 vector11 = vector4 - _dragStart; - _graphOffset += vector11; - _dragStart = vector4; - num = 1242681097; - break; - } - case 9: - { - num68 += nodeWidths[layers[num69][num70]] + 20f; - int num77 = num70; - num3 = 1; - num4 = num77; - num70 = (num4 | num3) + (num4 & num3); - num = 1242681093; - break; - } - case 24: - _scrollToSelected = false; - num69 = 0; - num = 1242681105; - break; - case 27: - vector2.Y = 1f; - num = 1242681106; - break; - case 26: - num76 = layers[num69].IndexOf(graph.SelectedQuest); - num = ((num76 < 0) ? 1242681107 : 1242681104); - break; - case 19: _dragMoved = true; - num = 1242681108; - break; - case 13: - num = ((num69 < layers.Count) ? 1242681094 : 1242681113); - break; - case 15: - { - int num73 = num69; - num3 = 1; - num4 = num73; - int num74 = num4 ^ num3; - int num75 = num4 & num3; - num69 = num74 + (num75 + num75); - num = 1242681105; - break; } - case 5: + Vector2 vector2 = mousePos - _dragStart; + _graphOffset += vector2; + _dragStart = mousePos; + } + else + { + _isDragging = false; + } + if (_cachedLayout == null || _cachedLayoutQuestId != graph.SelectedQuest) + { + _cachedLayout = ComputeLayout(graph); + _cachedLayoutQuestId = graph.SelectedQuest; + RefreshNodeStatusCache(); + } + Vector2 vector3 = cursorScreenPos + contentRegionAvail * 0.5f; + List<List<QuestId>> layers = _cachedLayout.Layers; + Dictionary<QuestId, float> nodeWidths = _cachedLayout.NodeWidths; + float[] layerWidths = _cachedLayout.LayerWidths; + if (Environment.TickCount64 - _nodeStatusRefreshedAt > 3000) + { + RefreshNodeStatusCache(); + } + if (_scrollToSelected) + { + _scrollToSelected = false; + for (int i = 0; i < layers.Count; i++) { - nodePos = new Dictionary<QuestId, (Vector2, Vector2)>(); - for (int num5 = 0; num5 < layers.Count; num5 = (num4 | num3) + (num4 & num3)) + int num = layers[i].IndexOf(graph.SelectedQuest); + if (num >= 0) { - List<QuestId> list = layers[num5]; - float num6 = (0f - layerWidths[num5]) * 0.5f; - float num7 = (float)num5 * 81f; - using (List<QuestId>.Enumerator enumerator = list.GetEnumerator()) + float num2 = (0f - layerWidths[i]) * 0.5f; + for (int j = 0; j < num; j++) { - num = 635879042; - while (true) - { - int num8 = num; - num3 = 635879041; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = (enumerator.MoveNext() ? 635879043 : 635879040); - break; - case 2: - { - QuestId current = enumerator.Current; - float num9 = nodeWidths[current]; - Vector2 item = vector3 + new Vector2(num6, num7) * graphZoom + _graphOffset; - Vector2 item2 = vector3 + new Vector2(num6 + num9, num7 + 26f) * graphZoom + _graphOffset; - nodePos[current] = (item, item2); - num6 += num9 + 20f; - num = 635879042; - break; - } - case 0: - num = 635879042; - break; - case 1: - goto end_IL_0635; - } - continue; - end_IL_0635: - break; - } - } - int num10 = num5; - num3 = 1; - num4 = num10; - } - num = -1061267090; - QuestId key; - while (true) - { - int num11 = num; - num3 = -1061267089; - num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) - { - default: - continue; - case 0: - num = -1061267090; - continue; - case 1: - questId2 = null; - dragMoved = _dragMoved; - if (flag) - { - num = -1061267091; - continue; - } - break; - case 2: - if (!dragMoved) - { - num = -1061267092; - continue; - } - break; - case 3: - { - using (Dictionary<QuestId, (Vector2, Vector2)>.Enumerator enumerator2 = nodePos.GetEnumerator()) - { - num = -1296291044; - while (true) - { - int num14 = num; - num3 = -1296291041; - num4 = num14; - switch ((num4 | num3) - (num4 & num3)) - { - case 7: - num = -1296291044; - break; - case 2: - { - enumerator2.Current.Deconstruct(out key, out var value); - questId = key; - tuple = value; - num = ((!(vector4.X >= tuple.Item1.X)) ? (-1296291044) : (-1296291045)); - break; - } - case 1: - num = ((!(vector4.Y <= tuple.Item2.Y)) ? (-1296291044) : (-1296291046)); - break; - case 3: - num = (enumerator2.MoveNext() ? (-1296291043) : (-1296291047)); - break; - case 5: - questId2 = questId; - goto end_IL_07f0; - case 4: - num = ((!(vector4.X <= tuple.Item2.X)) ? (-1296291044) : (-1296291041)); - break; - case 0: - num = ((!(vector4.Y >= tuple.Item1.Y)) ? (-1296291044) : (-1296291042)); - break; - case 6: - goto end_IL_07f0; - } - continue; - end_IL_07f0: - break; - } - } - break; - } + num2 += nodeWidths[layers[i][j]] + 20f; } + float num3 = nodeWidths[graph.SelectedQuest]; + float num4 = (float)i * 81f; + _graphOffset = -new Vector2(num2 + num3 * 0.5f, num4 + 13f) * graphZoom; break; } - QuestId questId3 = questId2 ?? graph.SelectedQuest; - Dictionary<(QuestId, QuestId), (float, float)> dictionary = new Dictionary<(QuestId, QuestId), (float, float)>(); - Dictionary<QuestId, List<QuestId>> dictionary2 = new Dictionary<QuestId, List<QuestId>>(); - Dictionary<QuestId, List<QuestId>> dictionary3 = new Dictionary<QuestId, List<QuestId>>(); - List<QuestId> value2; - foreach (KeyValuePair<QuestId, List<QuestId>> prerequisite in graph.Prerequisites) - { - prerequisite.Deconstruct(out key, out value2); - QuestId questId4 = key; - using List<QuestId>.Enumerator enumerator = value2.GetEnumerator(); - num = -1509620626; - while (true) - { - int num15 = num; - num3 = -1509620630; - num4 = num15; - int num16 = num4 + num3; - int num17 = num4 & num3; - switch (num16 - (num17 + num17)) - { - case 5: - num = -1509620626; - break; - case 2: - current2 = enumerator.Current; - num = ((!nodePos.ContainsKey(current2)) ? (-1509620626) : (-1509620627)); - break; - case 7: - num = ((!nodePos.ContainsKey(questId4)) ? (-1509620626) : (-1509620629)); - break; - case 6: - value3.Add(questId4); - num = (dictionary3.TryGetValue(questId4, out value4) ? (-1509620631) : (-1509620638)); - break; - case 8: - value4 = (dictionary3[questId4] = new List<QuestId>()); - num = -1509620631; - break; - case 3: - value4.Add(current2); - num = -1509620626; - break; - case 1: - num = (dictionary2.TryGetValue(current2, out value3) ? (-1509620628) : (-1509620630)); - break; - case 4: - num = (enumerator.MoveNext() ? (-1509620632) : (-1509620637)); - break; - case 0: - value3 = (dictionary2[current2] = new List<QuestId>()); - num = -1509620628; - break; - case 9: - goto end_IL_09c9; - } - continue; - end_IL_09c9: - break; - } - } - using (Dictionary<QuestId, List<QuestId>>.Enumerator enumerator3 = dictionary2.GetEnumerator()) - { - num = -1953269065; - while (true) - { - int num18 = num; - num3 = -1953269065; - num4 = num18; - int num19 = num4 + num3; - int num20 = num4 & num3; - float num21; - switch (num19 - (num20 + num20)) - { - default: - continue; - case 4: - num = -1953269065; - continue; - case 6: - num = ((list4.Count > 1) ? (-1953269070) : (-1953269066)); - continue; - case 2: - num = ((num22 < list4.Count) ? (-1953269071) : (-1953269065)); - continue; - case 7: - enumerator3.Current.Deconstruct(out key, out value2); - item3 = key; - list4 = value2; - list4.Sort(delegate(QuestId a, QuestId b) - { - float num78 = (nodePos[a].Min.X + nodePos[a].Max.X) * 0.5f; - float value9 = (nodePos[b].Min.X + nodePos[b].Max.X) * 0.5f; - return num78.CompareTo(value9); - }); - num22 = 0; - num = -1953269067; - continue; - case 0: - num = (enumerator3.MoveNext() ? (-1953269072) : (-1953269068)); - continue; - case 5: - num21 = (float)num22 / (float)(list4.Count - 1); - break; - case 1: - num21 = 0.5f; - break; - case 3: - goto end_IL_0b91; - } - float item4 = num21; - dictionary[(item3, list4[num22])] = (item4, 0.5f); - int num23 = num22; - num3 = 1; - num4 = num23; - int num24 = num4 ^ num3; - int num25 = num4 & num3; - num22 = num24 + (num25 + num25); - num = -1953269067; - continue; - end_IL_0b91: - break; - } - } - using (Dictionary<QuestId, List<QuestId>>.Enumerator enumerator3 = dictionary3.GetEnumerator()) - { - num = 559713151; - while (true) - { - int num26 = num; - num3 = 559713150; - num4 = num26; - int num27 = num4 + num3; - int num28 = num4 & num3; - float num29; - float item5; - (QuestId, QuestId) key2; - int num31; - int num32; - int num33; - switch (num27 - (num28 + num28)) - { - case 1: - num = (enumerator3.MoveNext() ? 559713144 : 559713145); - break; - case 3: - num = ((list5.Count > 1) ? 559713147 : 559713150); - break; - case 6: - enumerator3.Current.Deconstruct(out key, out value2); - item6 = key; - list5 = value2; - list5.Sort(delegate(QuestId a, QuestId b) - { - float num78 = (nodePos[a].Min.X + nodePos[a].Max.X) * 0.5f; - float value9 = (nodePos[b].Min.X + nodePos[b].Max.X) * 0.5f; - return num78.CompareTo(value9); - }); - num30 = 0; - num = 559713146; - break; - case 5: - num29 = (float)num30 / (float)(list5.Count - 1); - goto IL_0e26; - case 4: - num = ((num30 < list5.Count) ? 559713149 : 559713151); - break; - case 0: - num29 = 0.5f; - goto IL_0e26; - case 2: - num = 559713151; - break; - case 7: - goto end_IL_0d37; - IL_0e26: - item5 = num29; - key2 = (list5[num30], item6); - dictionary[key2] = (dictionary.GetValueOrDefault(key2, (0.5f, 0.5f)).Item1, item5); - num31 = num30; - num3 = 1; - num4 = num31; - num32 = num4 ^ num3; - num33 = num4 & num3; - num30 = num32 + (num33 + num33); - num = 559713146; - break; - } - continue; - end_IL_0d37: - break; - } - } - Vector4 accentColor = UiThemeUtils.AccentColor; - accentColor.W = 0.9f; - uint num34 = _206E_202A_202C_206F_200F_206A_200C_206D_202D_200B_206B_206E_206C_200B_206B_200E_200D_200F_206D_200B_200C_200C_206B_206B_200F_206D_206E_206D_206E_202C_202A_206C_206A_200D_202C_206E_200D_202B_200B_202D_202E(accentColor); - float size = 6f * graphZoom; - for (int num35 = 0; num35 < 2; num35 = (num4 | num3) + (num4 & num3)) - { - foreach (KeyValuePair<QuestId, List<QuestId>> prerequisite2 in graph.Prerequisites) - { - prerequisite2.Deconstruct(out key, out value2); - QuestId questId5 = key; - List<QuestId> list6 = value2; - if (!nodePos.TryGetValue(questId5, out (Vector2, Vector2) value5)) - { - continue; - } - using List<QuestId>.Enumerator enumerator = list6.GetEnumerator(); - num = -1371036284; - while (true) - { - int num36 = num; - num3 = -1371036273; - num4 = num36; - int num37 = num4 + num3; - int num38 = num4 & num3; - int num39; - float num51; - float num56; - float x3; - float num57; - Vector2 p2; - Vector2 pos; - switch (num37 - (num38 + num38)) - { - case 24: - { - float num55 = (vector6.Y - vector5.Y) * 0.4f; - Vector2 p = new Vector2(vector5.X, vector5.Y + num55); - Vector2 vector7 = new Vector2(vector6.X, vector6.Y - num55); - drawList.AddBezierCubic(vector5, p, vector7, vector6, num42, thickness, 28); - DrawArrowhead(drawList, vector6, vector7, size, num42); - num = -1371036284; - break; - } - case 15: - num42 = _206E_202A_202C_206F_200F_206A_200C_206D_202D_200B_206B_206E_206C_200B_206B_200E_200D_200F_206D_200B_200C_200C_206B_206B_200F_206D_206E_206D_206E_202C_202A_206C_206A_200D_202C_206E_200D_202B_200B_202D_202E(HueToColor((float)(int)_200B_200B_202E_206B_200E_206C_206A_206E_202C_200B_200E_202B_206D_206B_202B_202A_202D_202A_200D_200C_206F_200B_206F_206A_206A_200F_200F_202E_202B_200C_206D_202A_206B_202B_206B_202A_202C_206E_206F_202E_202E((ElementId)current3) * 0.618034f % 1f, 0.35f, 0.85f)); - thickness = 2f; - num = -1371036260; - break; - case 12: - num39 = 0; - goto IL_10a6; - case 8: - num = (_200C_206B_202D_206B_206D_202E_206B_200E_200C_206B_202A_206A_206C_206B_200C_202E_200D_206F_200C_200B_206F_202C_202E_202A_206E_202C_206C_206E_206D_202A_202C_202E_200B_202B_202E_200E_200F_202C_206C_202B_202E((ElementId)questId5, (ElementId)questId3) ? (-1371036282) : (-1371036286)); - break; - case 10: - num = ((_200B_200B_202E_206B_200E_206C_206A_206E_202C_200B_200E_202B_206D_206B_202B_202A_202D_202A_200D_200C_206F_200B_206F_206A_206A_200F_200F_202E_202B_200C_206D_202A_206B_202B_206B_202A_202C_206E_206F_202E_202E((ElementId)current3) % 2 == 0) ? (-1371036287) : (-1371036273)); - break; - case 0: - num51 = -1f; - goto IL_1315; - case 19: - { - (float, float) valueOrDefault2 = dictionary.GetValueOrDefault((current3, questId5), (0.5f, 0.5f)); - float item7 = valueOrDefault2.Item1; - float item8 = valueOrDefault2.Item2; - float num52 = value6.Item2.X - value6.Item1.X; - float num53 = value5.Item2.X - value5.Item1.X; - float num54 = 10f * graphZoom; - float x = value6.Item1.X + num54 + (num52 - num54 * 2f) * item7; - float x2 = value5.Item1.X + num54 + (num53 - num54 * 2f) * item8; - vector5 = new Vector2(x, value6.Item2.Y); - vector6 = new Vector2(x2, value5.Item1.Y); - num48 = graph.Layers.GetValueOrDefault(questId5) - graph.Layers.GetValueOrDefault(current3); - num = ((num48 <= 1) ? (-1371036265) : (-1371036278)); - break; - } - case 14: - num51 = 1f; - goto IL_1315; - case 21: - num42 = _206E_202A_202C_206F_200F_206A_200C_206D_202D_200B_206B_206E_206C_200B_206B_200E_200D_200F_206D_200B_200C_200C_206B_206B_200F_206D_206E_206D_206E_202C_202A_206C_206A_200D_202C_206E_200D_202B_200B_202D_202E(HueToColor((float)(int)_200B_200B_202E_206B_200E_206C_206A_206E_202C_200B_200E_202B_206D_206B_202B_202A_202D_202A_200D_200C_206F_200B_206F_206A_206A_200F_200F_202E_202B_200C_206D_202A_206B_202B_206B_202A_202C_206E_206F_202E_202E((ElementId)current3) * 0.618034f % 1f, 0.15f, 0.35f)); - thickness = 1.5f; - num = -1371036260; - break; - case 17: - num = ((!flag2) ? (-1371036264) : (-1371036263)); - break; - case 7: - num = ((num44 < layerWidths.Length) ? (-1371036279) : (-1371036274)); - break; - case 5: - { - valueOrDefault = graph.Layers.GetValueOrDefault(current3); - num43 = 0f; - int num58 = valueOrDefault; - num3 = 1; - num4 = num58; - num44 = (num4 | num3) + (num4 & num3); - num = -1371036277; - break; - } - case 3: - num51 = _202C_206F_200B_200C_202A_206A_202A_206C_206B_202B_206D_200B_206F_200D_200B_202C_200E_202D_200C_200B_206A_202A_200F_206A_202C_200F_200B_206B_200B_200F_200E_202C_202C_206A_202D_202D_206C_202C_202B_202E(num41); - goto IL_1315; - case 16: - current3 = enumerator.Current; - num = ((!nodePos.TryGetValue(current3, out value6)) ? (-1371036284) : (-1371036261)); - break; - case 23: - num = ((!_206D_206A_206B_202D_200F_202B_202E_202A_206E_202A_206C_206F_202B_202B_202C_206D_202C_200B_200D_200C_206C_206A_202D_206A_206D_206B_200F_202D_202E_206D_206F_206B_202A_202D_202B_200C_206F_200E_202E_206E_202E((ElementId)questId3, (ElementId)null)) ? (-1371036288) : (-1371036262)); - break; - case 18: - num = -1371036284; - break; - case 4: - { - int num46 = num44; - int num47 = valueOrDefault; - num3 = num48; - num4 = num47; - int num49 = num4 ^ num3; - int num50 = num4 & num3; - num = ((num46 >= num49 + (num50 + num50)) ? (-1371036274) : (-1371036280)); - break; - } - case 13: - num39 = (_200C_206B_202D_206B_206D_202E_206B_200E_200C_206B_202A_206A_206C_206B_200C_202E_200D_206F_200C_200B_206F_202C_202E_202A_206E_202C_206C_206E_206D_202A_202C_202E_200B_202B_202E_200E_200F_202C_206C_202B_202E((ElementId)current3, (ElementId)questId3) ? 1 : 0); - goto IL_10a6; - case 6: - { - num43 = _206D_200F_206A_200F_206D_202C_202E_202E_206F_206C_200C_206A_202E_202E_206E_202C_206A_202B_206B_206B_206A_206F_202A_202C_202A_200E_202D_200F_206B_200F_202C_206B_206B_206E_206F_200C_202E_202C_206F_202E(num43, layerWidths[num44] * 0.5f); - int num45 = num44; - num3 = 1; - num4 = num45; - num44 = (num4 | num3) + (num4 & num3); - num = -1371036277; - break; - } - case 22: - num42 = num34; - thickness = 2.5f; - num = -1371036260; - break; - case 9: - num39 = 1; - goto IL_10a6; - case 20: - num = ((!_206D_206A_206B_202D_200F_202B_202E_202A_206E_202A_206C_206F_202B_202B_202C_206D_202C_200B_200D_200C_206C_206A_202D_206A_206D_206B_200F_202D_202E_206D_206F_206B_202A_202D_202B_200C_206F_200E_202E_206E_202E((ElementId)questId3, (ElementId)null)) ? (-1371036285) : (-1371036281)); - break; - case 1: - num40 = vector3.X + _graphOffset.X; - num41 = (vector5.X + vector6.X) * 0.5f - num40; - num = ((_200B_202C_200D_206E_202E_206F_206E_200D_206D_202A_200D_206C_200D_206E_202A_202A_202E_202C_202D_206D_200E_200E_200C_202B_200E_200F_202A_202D_200E_206D_202A_202E_206B_206C_206B_206A_200F_206B_206D_206F_202E(num41) > 1f) ? (-1371036276) : (-1371036283)); - break; - case 11: - num = (enumerator.MoveNext() ? (-1371036257) : (-1371036275)); - break; - case 2: - goto end_IL_0f6c; - IL_10a6: - flag2 = (byte)num39 != 0; - num = ((num35 == 0 == flag2) ? (-1371036284) : (-1371036258)); - break; - IL_1315: - num56 = num51; - x3 = num40 + num56 * (num43 + 40f + (float)(_200B_200B_202E_206B_200E_206C_206A_206E_202C_200B_200E_202B_206D_206B_202B_202A_202D_202A_200D_200C_206F_200B_206F_206A_206A_200F_200F_202E_202B_200C_206D_202A_206B_202B_206B_202A_202C_206E_206F_202E_202E((ElementId)current3) % 3) * 16f) * graphZoom; - num57 = _206A_206F_202B_200C_200F_202A_202C_206F_202C_206E_202E_206D_206A_200B_206C_200B_200C_206F_206F_202A_206E_206B_200B_206D_206F_202E_206B_206A_202B_206C_206C_202E_206A_202D_200C_206E_202D_200C_200D_202B_202E(30f * graphZoom, (vector6.Y - vector5.Y) * 0.2f); - p2 = new Vector2(x3, vector5.Y + num57 * 2.5f); - pos = new Vector2(x3, _206D_200F_206A_200F_206D_202C_202E_202E_206F_206C_200C_206A_202E_202E_206E_202C_206A_202B_206B_206B_206A_206F_202A_202C_202A_200E_202D_200F_206B_200F_202C_206B_206B_206E_206F_200C_202E_202C_206F_202E(vector6.Y - num57 * 2.5f, vector5.Y + num57 * 2.5f)); - drawList.PathLineTo(vector5); - drawList.PathBezierCubicCurveTo(new Vector2(vector5.X, vector5.Y + num57 * 1.5f), new Vector2(x3, vector5.Y + num57), p2, 20); - drawList.PathLineTo(pos); - drawList.PathBezierCubicCurveTo(new Vector2(x3, vector6.Y - num57), new Vector2(vector6.X, vector6.Y - num57 * 1.5f), vector6, 20); - drawList.PathStroke(num42, ImDrawFlags.None, thickness); - DrawArrowhead(drawList, vector6, new Vector2(vector6.X, vector6.Y - num57), size, num42); - num = -1371036284; - break; - } - continue; - end_IL_0f6c: - break; - } - } - int num59 = num35; - num3 = 1; - num4 = num59; - } - float fontSize = _200C_206E_202C_200C_202D_206C_206E_206C_206D_200D_200B_200B_202D_200F_206F_202D_206F_202A_200F_202D_206D_200F_202A_200B_200C_202C_202A_200E_206F_202E_202A_200E_206B_202B_200C_206D_202C_206C_200B_202B_202E() * graphZoom; - ImFontPtr font = _206D_206C_202E_206B_200E_202A_200C_206F_206E_206C_206B_206B_202E_200D_206D_202A_200D_200D_206A_202E_206C_200D_200B_206C_202E_200D_206B_200C_200E_206E_202A_202C_200C_202D_200D_206B_206A_202A_202C_202C_202E(); - foreach (List<QuestId> item11 in layers) - { - using List<QuestId>.Enumerator enumerator = item11.GetEnumerator(); - num = 1607295633; - while (true) - { - int num60 = num; - num3 = 1607295638; - num4 = num60; - uint num61; - uint col; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - num61 = _206E_202A_202C_206F_200F_206A_200C_206D_202D_200B_206B_206E_206C_200B_206B_200E_200D_200F_206D_200B_200C_200C_206B_206B_200F_206D_206E_206D_206E_202C_202A_206C_206A_200D_202C_206E_200D_202B_200B_202D_202E(new Vector4(1f, 1f, 1f, 0.5f)); - goto IL_1702; - case 8: - drawList.AddRect(value7.Item1 - Vector2.One, value7.Item2 + Vector2.One, _206E_202A_202C_206F_200F_206A_200C_206D_202D_200B_206B_206E_206C_200B_206B_200E_200D_200F_206D_200B_200C_200C_206B_206B_200F_206D_206E_206D_206E_202C_202A_206C_206A_200D_202C_206E_200D_202B_200B_202D_202E(UiThemeUtils.AccentColor), 5f, ImDrawFlags.None, 3f); - num = 1607295637; - break; - case 2: - num = 1607295633; - break; - case 10: - current4 = enumerator.Current; - num = ((!nodePos.TryGetValue(current4, out value7)) ? 1607295633 : 1607295647); - break; - case 7: - num = (enumerator.MoveNext() ? 1607295644 : 1607295639); - break; - case 9: - { - bool num64 = _200C_206B_202D_206B_206D_202E_206B_200E_200C_206B_202A_206A_206C_206B_200C_202E_200D_206F_200C_200B_206F_202C_202E_202A_206E_202C_206C_206E_206D_202A_202C_202E_200B_202B_202E_200E_200F_202C_206C_202B_202E((ElementId)current4, (ElementId)graph.SelectedQuest); - flag3 = _200C_206B_202D_206B_206D_202E_206B_200E_200C_206B_202A_206A_206C_206B_200C_202E_200D_206F_200C_200B_206F_202C_202E_202A_206E_202C_206C_206E_206D_202A_202C_202E_200B_202B_202E_200E_200F_202C_206C_202B_202E((ElementId)questId2, (ElementId)current4); - NodeStatusEntry valueOrDefault4 = _nodeStatusCache.GetValueOrDefault(current4, new NodeStatusEntry(NodeFillLocked, IsDone: false)); - Vector4 vector9 = valueOrDefault4.BgColor; - isDone = valueOrDefault4.IsDone; - if (isDone) - { - accentColor = GraphBackgroundColor; - accentColor.W = 1f; - Vector4 value8 = accentColor; - accentColor = vector9; - accentColor.W = 1f; - vector9 = Vector4.Lerp(value8, accentColor, 0.5f); - } - drawList.AddRectFilled(value7.Item1, value7.Item2, _206E_202A_202C_206F_200F_206A_200C_206D_202D_200B_206B_206E_206C_200B_206B_200E_200D_200F_206D_200B_200C_200C_206B_206B_200F_206D_206E_206D_206E_202C_202A_206C_206A_200D_202C_206E_200D_202B_200B_202D_202E(vector9), 5f); - num = ((!num64) ? 1607295632 : 1607295646); - break; - } - case 0: - num61 = _206E_202A_202C_206F_200F_206A_200C_206D_202D_200B_206B_206E_206C_200B_206B_200E_200D_200F_206D_200B_200C_200C_206B_206B_200F_206D_206E_206D_206E_202C_202A_206C_206A_200D_202C_206E_200D_202B_200B_202D_202E(new Vector4(1f, 1f, 1f, 1f)); - goto IL_1702; - case 3: - { - valueOrDefault3 = _cachedLayout.TruncatedLabels.GetValueOrDefault(current4, _202E_206B_206F_206D_202A_202E_202A_206B_202C_202A_202C_200D_202D_202E_202E_202E_200E_206E_206E_206C_200D_200D_206D_206E_206C_206D_200D_206F_206D_206F_200D_200C_206E_206D_202E_202D_202A_202C_202C_200C_202E((object)current4)); - float num62 = value7.Item2.X - value7.Item1.X; - float num63 = value7.Item2.Y - value7.Item1.Y; - Vector2 vector8 = _200C_202E_206B_202A_206C_206F_202B_202C_202B_200F_206D_200F_206D_206D_200E_200F_206B_206F_200D_206A_206A_200B_206E_200D_200B_200E_200D_202E_200B_200B_200B_202A_206B_206C_202C_202E_206D_206B_206E_202D_202E((ImU8String)valueOrDefault3, false, -1f) * graphZoom; - pos2 = new Vector2(value7.Item1.X + (num62 - vector8.X) * 0.5f, value7.Item1.Y + (num63 - vector8.Y) * 0.5f); - num = (isDone ? 1607295635 : 1607295638); - break; - } - case 6: - num = ((!flag3) ? 1607295637 : 1607295634); - break; - case 4: - { - Vector2 item9 = value7.Item1; - Vector2 item10 = value7.Item2; - accentColor = UiThemeUtils.AccentColor; - accentColor.W = 0.6f; - drawList.AddRect(item9, item10, _206E_202A_202C_206F_200F_206A_200C_206D_202D_200B_206B_206E_206C_200B_206B_200E_200D_200F_206D_200B_200C_200C_206B_206B_200F_206D_206E_206D_206E_202C_202A_206C_206A_200D_202C_206E_200D_202B_200B_202D_202E(accentColor), 5f, ImDrawFlags.None, 1.5f); - num = 1607295637; - break; - } - case 1: - goto end_IL_1698; - IL_1702: - col = num61; - drawList.AddText(font, fontSize, pos2, col, valueOrDefault3); - num = 1607295633; - break; - } - continue; - end_IL_1698: - break; - } - } - drawList.PopClipRect(); - num = ((!_206D_206A_206B_202D_200F_202B_202E_202A_206E_202A_206C_206F_202B_202B_202C_206D_202C_200B_200D_200C_206C_206A_202D_206A_206D_206B_200F_202D_202E_206D_206F_206B_202A_202D_202B_200C_206F_200E_202E_206E_202E((ElementId)questId2, (ElementId)null)) ? 1631145092 : 1631145089); - while (true) - { - int num65 = num; - num3 = 1631145100; - num4 = num65; - int num66 = num4 + num3; - int num67 = num4 & num3; - switch (num66 - (num67 + num67)) - { - case 0: - num = 1631145089; - break; - case 11: - _selectedQuestId = questId2; - _showDetail = true; - num = 1631145092; - break; - case 12: - num = (dragMoved ? 1631145092 : 1631145095); - break; - case 5: - num = (dragMoved ? 1631145102 : 1631145096); - break; - case 4: - num = ((!_questData.TryGetQuestInfo(questId2, out questInfo2)) ? 1631145102 : 1631145103); - break; - case 9: - num = ((!_206D_206A_206B_202D_200F_202B_202E_202A_206E_202A_206C_206F_202B_202B_202C_206D_202C_200B_200D_200C_206C_206A_202D_206A_206D_206B_200F_202D_202E_206D_206F_206B_202A_202D_202B_200C_206F_200E_202E_206E_202E((ElementId)questId2, (ElementId)null)) ? 1631145094 : 1631145098); - break; - case 1: - num = ((!_202E_202C_200B_202A_200D_200F_200C_200D_206C_206E_206A_202D_206A_206E_202B_202D_202B_200B_202A_206B_200B_200B_200F_206C_206F_206D_200B_206D_200D_202E_206F_206C_206A_206A_202A_206E_202D_206F_200E_200F_202E(ImGuiMouseButton.Right)) ? 1631145102 : 1631145097); - break; - case 10: - DrawNodeContextMenu(); - return; - case 13: - num = ((!_202E_202C_200B_202A_200D_200F_200C_200D_206C_206E_206A_202D_206A_206E_202B_202D_202B_200B_202A_206B_200B_200B_200F_206C_206F_206D_200B_206D_200D_202E_206F_206C_206A_206A_202A_206E_202D_206F_200E_200F_202E(ImGuiMouseButton.Left)) ? 1631145092 : 1631145088); - break; - case 3: - { - _contextMenuNodeId = questId2; - QuestJournalUtils? questJournalUtils = QuestJournalUtils; - if (questJournalUtils == null) - { - goto case 2; - } - questJournalUtils.OpenContextMenu(questInfo2); - num = 1631145102; - break; - } - case 8: - num = ((!_206D_206A_206B_202D_200F_202B_202E_202A_206E_202A_206C_206F_202B_202B_202C_206D_202C_200B_200D_200C_206C_206A_202D_206A_206D_206B_200F_202D_202E_206D_206F_206B_202A_202D_202B_200C_206F_200E_202E_206E_202E((ElementId)questId2, (ElementId)null)) ? 1631145102 : 1631145101); - break; - case 6: - num = ((!_questData.TryGetQuestInfo(questId2, out questInfo)) ? 1631145094 : 1631145090); - break; - case 2: - num = (flag4 ? 1631145093 : 1631145099); - break; - case 14: - _questTooltipComponent.Draw(questInfo); - num = 1631145094; - break; - case 7: - _dragMoved = false; - num = 1631145093; - break; - } - } - } } } - static Vector4 HueToColor(float hue, float sat, float alpha) + Dictionary<QuestId, (Vector2 Min, Vector2 Max)> nodePos = new Dictionary<QuestId, (Vector2, Vector2)>(); + for (int k = 0; k < layers.Count; k++) { - float num78 = hue * 6f; - float num79 = sat * (1f - _200B_202C_200D_206E_202E_206F_206E_200D_206D_202A_200D_206C_200D_206E_202A_202A_202E_202C_202D_206D_200E_200E_200C_202B_200E_200F_202A_202D_200E_206D_202A_202E_206B_206C_206B_206A_200F_206B_206D_206F_202E(num78 % 2f - 1f)); - int num80 = ((!(num78 < 1f)) ? 687735810 : 687735819); - float num85 = default(float); - float num86 = default(float); - float num87 = default(float); - while (true) + List<QuestId> list = layers[k]; + float num5 = (0f - layerWidths[k]) * 0.5f; + float num6 = (float)k * 81f; + foreach (QuestId item11 in list) { - int num81 = num80; - int num82 = 687735816; - int num83 = num81; - switch ((num83 | num82) - (num83 & num82)) + float num7 = nodeWidths[item11]; + Vector2 item = vector3 + new Vector2(num5, num6) * graphZoom + _graphOffset; + Vector2 item2 = vector3 + new Vector2(num5 + num7, num6 + 26f) * graphZoom + _graphOffset; + nodePos[item11] = (item, item2); + num5 += num7 + 20f; + } + } + QuestId questId = null; + bool dragMoved = _dragMoved; + QuestId key; + if (flag && !dragMoved) + { + foreach (KeyValuePair<QuestId, (Vector2, Vector2)> item12 in nodePos) + { + item12.Deconstruct(out key, out var value); + QuestId questId2 = key; + (Vector2, Vector2) tuple = value; + if (mousePos.X >= tuple.Item1.X && mousePos.X <= tuple.Item2.X && mousePos.Y >= tuple.Item1.Y && mousePos.Y <= tuple.Item2.Y) { - case 4: - num85 = num79; - num86 = 0f; - num87 = sat; - num80 = 687735808; - break; - case 8: - { - float num84 = 1f - sat; - return new Vector4(num85 + num84, num86 + num84, num87 + num84, alpha); - } - case 5: - num85 = 0f; - num86 = num79; - num87 = sat; - num80 = 687735808; - break; - case 2: - num85 = sat; - num86 = 0f; - num87 = num79; - num80 = 687735808; - break; - case 9: - num85 = 0f; - num86 = sat; - num87 = num79; - num80 = 687735808; - break; - case 10: - num80 = ((!(num78 < 2f)) ? 687735811 : 687735817); - break; - case 6: - num80 = ((!(num78 < 4f)) ? 687735816 : 687735821); - break; - case 3: - num85 = sat; - num86 = num79; - num87 = 0f; - num80 = 687735808; - break; - case 0: - num80 = ((!(num78 < 5f)) ? 687735818 : 687735820); - break; - case 7: - num80 = 687735819; - break; - case 1: - num85 = num79; - num86 = sat; - num87 = 0f; - num80 = 687735808; - break; - case 11: - num80 = ((!(num78 < 3f)) ? 687735822 : 687735809); + questId = questId2; break; } } } + QuestId questId3 = questId ?? graph.SelectedQuest; + Dictionary<(QuestId, QuestId), (float, float)> dictionary = new Dictionary<(QuestId, QuestId), (float, float)>(); + Dictionary<QuestId, List<QuestId>> dictionary2 = new Dictionary<QuestId, List<QuestId>>(); + Dictionary<QuestId, List<QuestId>> dictionary3 = new Dictionary<QuestId, List<QuestId>>(); + List<QuestId> value2; + foreach (KeyValuePair<QuestId, List<QuestId>> prerequisite in graph.Prerequisites) + { + prerequisite.Deconstruct(out key, out value2); + QuestId questId4 = key; + foreach (QuestId item13 in value2) + { + if (nodePos.ContainsKey(item13) && nodePos.ContainsKey(questId4)) + { + if (!dictionary2.TryGetValue(item13, out var value3)) + { + value3 = (dictionary2[item13] = new List<QuestId>()); + } + value3.Add(questId4); + if (!dictionary3.TryGetValue(questId4, out var value4)) + { + value4 = (dictionary3[questId4] = new List<QuestId>()); + } + value4.Add(item13); + } + } + } + foreach (KeyValuePair<QuestId, List<QuestId>> item14 in dictionary2) + { + item14.Deconstruct(out key, out value2); + QuestId item3 = key; + List<QuestId> list4 = value2; + list4.Sort(delegate(QuestId a, QuestId b) + { + float num26 = (nodePos[a].Min.X + nodePos[a].Max.X) * 0.5f; + float value9 = (nodePos[b].Min.X + nodePos[b].Max.X) * 0.5f; + return num26.CompareTo(value9); + }); + for (int num8 = 0; num8 < list4.Count; num8++) + { + float item4 = ((list4.Count > 1) ? ((float)num8 / (float)(list4.Count - 1)) : 0.5f); + dictionary[(item3, list4[num8])] = (item4, 0.5f); + } + } + foreach (KeyValuePair<QuestId, List<QuestId>> item15 in dictionary3) + { + item15.Deconstruct(out key, out value2); + QuestId item5 = key; + List<QuestId> list5 = value2; + list5.Sort(delegate(QuestId a, QuestId b) + { + float num26 = (nodePos[a].Min.X + nodePos[a].Max.X) * 0.5f; + float value9 = (nodePos[b].Min.X + nodePos[b].Max.X) * 0.5f; + return num26.CompareTo(value9); + }); + for (int num9 = 0; num9 < list5.Count; num9++) + { + float item6 = ((list5.Count > 1) ? ((float)num9 / (float)(list5.Count - 1)) : 0.5f); + (QuestId, QuestId) key2 = (list5[num9], item5); + dictionary[key2] = (dictionary.GetValueOrDefault(key2, (0.5f, 0.5f)).Item1, item6); + } + } + Vector4 accentColor = UiThemeUtils.AccentColor; + accentColor.W = 0.9f; + uint num10 = ImGui.ColorConvertFloat4ToU32(accentColor); + float size = 6f * graphZoom; + for (int num11 = 0; num11 < 2; num11++) + { + foreach (KeyValuePair<QuestId, List<QuestId>> prerequisite2 in graph.Prerequisites) + { + prerequisite2.Deconstruct(out key, out value2); + QuestId questId5 = key; + List<QuestId> list6 = value2; + if (!nodePos.TryGetValue(questId5, out (Vector2, Vector2) value5)) + { + continue; + } + foreach (QuestId item16 in list6) + { + if (!nodePos.TryGetValue(item16, out (Vector2, Vector2) value6)) + { + continue; + } + bool flag3 = questId3 != null && (questId5 == questId3 || item16 == questId3); + if (num11 == 0 == flag3) + { + continue; + } + uint num12; + float thickness; + if (flag3) + { + num12 = num10; + thickness = 2.5f; + } + else if (questId3 != null) + { + num12 = ImGui.ColorConvertFloat4ToU32(HueToColor((float)(int)item16.Value * 0.618034f % 1f, 0.15f, 0.35f)); + thickness = 1.5f; + } + else + { + num12 = ImGui.ColorConvertFloat4ToU32(HueToColor((float)(int)item16.Value * 0.618034f % 1f, 0.35f, 0.85f)); + thickness = 2f; + } + (float, float) valueOrDefault = dictionary.GetValueOrDefault((item16, questId5), (0.5f, 0.5f)); + float item7 = valueOrDefault.Item1; + float item8 = valueOrDefault.Item2; + float num13 = value6.Item2.X - value6.Item1.X; + float num14 = value5.Item2.X - value5.Item1.X; + float num15 = 10f * graphZoom; + float x = value6.Item1.X + num15 + (num13 - num15 * 2f) * item7; + float x2 = value5.Item1.X + num15 + (num14 - num15 * 2f) * item8; + Vector2 vector4 = new Vector2(x, value6.Item2.Y); + Vector2 vector5 = new Vector2(x2, value5.Item1.Y); + int num16 = graph.Layers.GetValueOrDefault(questId5) - graph.Layers.GetValueOrDefault(item16); + if (num16 > 1) + { + int valueOrDefault2 = graph.Layers.GetValueOrDefault(item16); + float num17 = 0f; + for (int num18 = valueOrDefault2 + 1; num18 < valueOrDefault2 + num16 && num18 < layerWidths.Length; num18++) + { + num17 = MathF.Max(num17, layerWidths[num18] * 0.5f); + } + float num19 = vector3.X + _graphOffset.X; + float x3 = (vector4.X + vector5.X) * 0.5f - num19; + float num20 = ((MathF.Abs(x3) > 1f) ? ((float)MathF.Sign(x3)) : ((item16.Value % 2 == 0) ? 1f : (-1f))); + float x4 = num19 + num20 * (num17 + 40f + (float)(item16.Value % 3) * 16f) * graphZoom; + float num21 = MathF.Min(30f * graphZoom, (vector5.Y - vector4.Y) * 0.2f); + Vector2 p = new Vector2(x4, vector4.Y + num21 * 2.5f); + Vector2 pos = new Vector2(x4, MathF.Max(vector5.Y - num21 * 2.5f, vector4.Y + num21 * 2.5f)); + windowDrawList.PathLineTo(vector4); + windowDrawList.PathBezierCubicCurveTo(new Vector2(vector4.X, vector4.Y + num21 * 1.5f), new Vector2(x4, vector4.Y + num21), p, 20); + windowDrawList.PathLineTo(pos); + windowDrawList.PathBezierCubicCurveTo(new Vector2(x4, vector5.Y - num21), new Vector2(vector5.X, vector5.Y - num21 * 1.5f), vector5, 20); + windowDrawList.PathStroke(num12, ImDrawFlags.None, thickness); + DrawArrowhead(windowDrawList, vector5, new Vector2(vector5.X, vector5.Y - num21), size, num12); + } + else + { + float num22 = (vector5.Y - vector4.Y) * 0.4f; + Vector2 p2 = new Vector2(vector4.X, vector4.Y + num22); + Vector2 vector6 = new Vector2(vector5.X, vector5.Y - num22); + windowDrawList.AddBezierCubic(vector4, p2, vector6, vector5, num12, thickness, 28); + DrawArrowhead(windowDrawList, vector5, vector6, size, num12); + } + } + } + } + float fontSize = ImGui.GetFontSize() * graphZoom; + ImFontPtr font = ImGui.GetFont(); + foreach (List<QuestId> item17 in layers) + { + foreach (QuestId item18 in item17) + { + if (nodePos.TryGetValue(item18, out (Vector2, Vector2) value7)) + { + bool num23 = item18 == graph.SelectedQuest; + bool flag4 = questId == item18; + NodeStatusEntry valueOrDefault3 = _nodeStatusCache.GetValueOrDefault(item18, new NodeStatusEntry(NodeFillLocked, IsDone: false)); + Vector4 vector7 = valueOrDefault3.BgColor; + bool isDone = valueOrDefault3.IsDone; + if (isDone) + { + accentColor = GraphBackgroundColor; + accentColor.W = 1f; + Vector4 value8 = accentColor; + accentColor = vector7; + accentColor.W = 1f; + vector7 = Vector4.Lerp(value8, accentColor, 0.5f); + } + windowDrawList.AddRectFilled(value7.Item1, value7.Item2, ImGui.ColorConvertFloat4ToU32(vector7), 5f); + if (num23) + { + windowDrawList.AddRect(value7.Item1 - Vector2.One, value7.Item2 + Vector2.One, ImGui.ColorConvertFloat4ToU32(UiThemeUtils.AccentColor), 5f, ImDrawFlags.None, 3f); + } + else if (flag4) + { + Vector2 item9 = value7.Item1; + Vector2 item10 = value7.Item2; + accentColor = UiThemeUtils.AccentColor; + accentColor.W = 0.6f; + windowDrawList.AddRect(item9, item10, ImGui.ColorConvertFloat4ToU32(accentColor), 5f, ImDrawFlags.None, 1.5f); + } + string valueOrDefault4 = _cachedLayout.TruncatedLabels.GetValueOrDefault(item18, item18.ToString()); + float num24 = value7.Item2.X - value7.Item1.X; + float num25 = value7.Item2.Y - value7.Item1.Y; + Vector2 vector8 = ImGui.CalcTextSize(valueOrDefault4) * graphZoom; + Vector2 pos2 = new Vector2(value7.Item1.X + (num24 - vector8.X) * 0.5f, value7.Item1.Y + (num25 - vector8.Y) * 0.5f); + uint col = (isDone ? ImGui.ColorConvertFloat4ToU32(new Vector4(1f, 1f, 1f, 0.5f)) : ImGui.ColorConvertFloat4ToU32(new Vector4(1f, 1f, 1f, 1f))); + windowDrawList.AddText(font, fontSize, pos2, col, valueOrDefault4); + } + } + } + windowDrawList.PopClipRect(); + if (questId != null && ImGui.IsMouseReleased(ImGuiMouseButton.Left) && !dragMoved) + { + _selectedQuestId = questId; + _showDetail = true; + } + if (questId != null && ImGui.IsMouseReleased(ImGuiMouseButton.Right) && !dragMoved && _questData.TryGetQuestInfo(questId, out IQuestInfo questInfo)) + { + _contextMenuNodeId = questId; + QuestJournalUtils?.OpenContextMenu(questInfo); + } + if (!flag2) + { + _dragMoved = false; + } + if (questId != null && _questData.TryGetQuestInfo(questId, out IQuestInfo questInfo2)) + { + _questTooltipComponent.Draw(questInfo2); + } + DrawNodeContextMenu(); + static Vector4 HueToColor(float hue, float sat, float alpha) + { + float num26 = hue * 6f; + float num27 = sat * (1f - MathF.Abs(num26 % 2f - 1f)); + float num28; + float num29; + float num30; + if (num26 < 1f) + { + num28 = sat; + num29 = num27; + num30 = 0f; + } + else if (num26 < 2f) + { + num28 = num27; + num29 = sat; + num30 = 0f; + } + else if (num26 < 3f) + { + num28 = 0f; + num29 = sat; + num30 = num27; + } + else if (num26 < 4f) + { + num28 = 0f; + num29 = num27; + num30 = sat; + } + else if (num26 < 5f) + { + num28 = num27; + num29 = 0f; + num30 = sat; + } + else + { + num28 = sat; + num29 = 0f; + num30 = num27; + } + float num31 = 1f - sat; + return new Vector4(num28 + num31, num29 + num31, num30 + num31, alpha); + } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawNodeContextMenu() { QuestId contextMenuNodeId = _contextMenuNodeId; - int num = (((object)contextMenuNodeId == null) ? 1466448774 : 1466448773); - IQuestInfo questInfo = default(IQuestInfo); - QuestJournalUtils questJournalUtils = default(QuestJournalUtils); - while (true) + if ((object)contextMenuNodeId == null) { - int num2 = num; - int num3 = 1466448774; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - return; - case 1: - num = (_questData.TryGetQuestInfo(contextMenuNodeId, out questInfo) ? 1466448770 : 1466448772); - break; - case 7: - num = 1466448773; - break; - case 3: - questJournalUtils = QuestJournalUtils; - num = ((questJournalUtils != null) ? 1466448775 : 1466448774); - break; - case 2: - _contextMenuNodeId = null; - return; - case 0: - return; - case 4: - { - Questionable.Model.Quest quest = null; - _questRegistry.TryGetQuest(contextMenuNodeId, out quest); - num = (questJournalUtils.DrawContextMenu(questInfo, quest, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1814952447)) ? 1466448771 : 1466448768); - break; - } - case 6: - _contextMenuNodeId = null; - num = 1466448771; - break; - } + return; + } + QuestJournalUtils questJournalUtils = QuestJournalUtils; + if (questJournalUtils == null) + { + return; + } + if (!_questData.TryGetQuestInfo(contextMenuNodeId, out IQuestInfo questInfo)) + { + _contextMenuNodeId = null; + return; + } + Questionable.Model.Quest quest = null; + _questRegistry.TryGetQuest(contextMenuNodeId, out quest); + if (!questJournalUtils.DrawContextMenu(questInfo, quest, "QuestChainComponent")) + { + _contextMenuNodeId = null; } } private static List<List<QuestId>> ReorderLayers(QuestChainGraph graph) { List<List<QuestId>> list = new List<List<QuestId>>(); - int num = 0; - int num2 = 2069656921; - Dictionary<QuestId, List<QuestId>> dependents; - QuestId current = default(QuestId); - List<QuestId> value = default(List<QuestId>); - int num15 = default(int); - int num13 = default(int); - List<QuestId> list4 = default(List<QuestId>); - bool flag = default(bool); - int num19 = default(int); - int num21 = default(int); - int num12 = default(int); - List<QuestId> adjAbove = default(List<QuestId>); - List<QuestId> adjBelow = default(List<QuestId>); - while (true) + for (int i = 0; i < graph.LayerOrder.Count; i++) { - int num3 = num2; - int num4 = 2069656924; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + list.Add(new List<QuestId>(graph.LayerOrder[i])); + } + if (list.Count <= 1) + { + return list; + } + Dictionary<QuestId, List<QuestId>> dependents = new Dictionary<QuestId, List<QuestId>>(); + foreach (var (item, list3) in graph.Prerequisites) + { + foreach (QuestId item2 in list3) { - case 5: - num2 = ((num < graph.LayerOrder.Count) ? 2069656925 : 2069656926); - break; - case 0: - return list; - case 2: - num2 = ((list.Count > 1) ? 2069656927 : 2069656924); - break; - case 4: - num2 = 2069656921; - break; - case 1: - { - list.Add(new List<QuestId>(graph.LayerOrder[num])); - int num45 = num; - num4 = 1; - num5 = num45; - num = (num5 | num4) + (num5 & num4); - num2 = 2069656921; - break; - } - case 3: - { - dependents = new Dictionary<QuestId, List<QuestId>>(); - foreach (var (item, list3) in graph.Prerequisites) + if (!dependents.TryGetValue(item2, out List<QuestId> value)) { - using List<QuestId>.Enumerator enumerator2 = list3.GetEnumerator(); - num2 = 1740892846; - while (true) - { - int num6 = num2; - num4 = 1740892844; - num5 = num6; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - num2 = (enumerator2.MoveNext() ? 1740892847 : 1740892845); - break; - case 3: - current = enumerator2.Current; - num2 = (dependents.TryGetValue(current, out value) ? 1740892841 : 1740892840); - break; - case 0: - num2 = 1740892846; - break; - case 4: - value = new List<QuestId>(); - dependents[current] = value; - num2 = 1740892841; - break; - case 5: - value.Add(item); - num2 = 1740892846; - break; - case 1: - goto end_IL_0141; - } - continue; - end_IL_0141: - break; - } + value = new List<QuestId>(); + dependents[item2] = value; } - int num7 = 0; - num2 = 675261841; - while (true) - { - int num8 = num2; - num4 = 675261855; - num5 = num8; - int num9 = num5 + num4; - int num10 = num5 & num4; - object obj; - object obj2; - switch (num9 - (num10 + num10)) - { - case 0: - { - int num14 = num15; - num4 = 1; - num5 = num14; - int num16 = num5 ^ num4; - int num17 = num5 & num4; - obj = list[num16 + (num17 + num17)]; - goto IL_030a; - } - case 7: - obj = null; - goto IL_030a; - case 2: - num2 = ((num13 < list4.Count - 1) ? 675261850 : 675261832); - break; - case 20: - { - int num44 = num7; - num4 = 1; - num5 = num44; - num7 = (num5 | num4) + (num5 & num4); - num2 = 675261841; - break; - } - case 13: - flag = false; - num15 = 0; - num2 = 675261826; - break; - case 23: - { - int num28 = num15; - num4 = 1; - num5 = num28; - int num29 = num5 ^ num4; - int num30 = num5 & num4; - num15 = num29 + (num30 + num30); - num2 = 675261826; - break; - } - case 16: - num2 = ((num19 < list.Count) ? 675261837 : 675261840); - break; - case 27: - list4 = list[num15]; - num2 = ((list4.Count < 2) ? 675261832 : 675261852); - break; - case 9: - num2 = ((!flag) ? 675261849 : 675261836); - break; - case 15: - num2 = 675261835; - break; - case 12: - num2 = 675261841; - break; - case 21: - num2 = ((num21 >= 0) ? 675261838 : 675261835); - break; - case 18: - { - int num18 = num19; - num4 = 1; - num5 = num18; - List<QuestId> referenceLayer = list[~(~num5 + num4)]; - Dictionary<QuestId, float> bary = ComputeBarycenters(list[num19], referenceLayer, (QuestId qid) => graph.Prerequisites.GetValueOrDefault(qid)); - list[num19].Sort((QuestId a, QuestId b) => bary.GetValueOrDefault(a).CompareTo(bary.GetValueOrDefault(b))); - int num20 = num19; - num4 = 1; - num5 = num20; - num19 = (num5 | num4) + (num5 & num4); - num2 = 675261839; - break; - } - case 25: - obj2 = null; - goto IL_0752; - case 17: - { - int num40 = num21; - num4 = 1; - num5 = num40; - int num41 = num5 ^ num4; - int num42 = num5 & num4; - List<QuestId> referenceLayer2 = list[num41 + (num42 + num42)]; - Dictionary<QuestId, float> bary2 = ComputeBarycenters(list[num21], referenceLayer2, (QuestId qid) => dependents.GetValueOrDefault(qid)); - list[num21].Sort((QuestId a, QuestId b) => bary2.GetValueOrDefault(a).CompareTo(bary2.GetValueOrDefault(b))); - int num43 = num21; - num4 = 1; - num5 = num43; - num21 = ~(~num5 + num4); - num2 = 675261834; - break; - } - case 28: - { - int num37 = num13; - num4 = 1; - num5 = num37; - int num38 = num5 ^ num4; - int num39 = num5 & num4; - num13 = num38 + (num39 + num39); - num2 = 675261853; - break; - } - case 4: - num2 = ((num12 < 3) ? 675261842 : 675261849); - break; - case 11: - num2 = ((num7 % 2 != 0) ? 675261831 : 675261829); - break; - case 22: - { - List<QuestId> list5 = list4; - int index2 = num13; - List<QuestId> list8 = list4; - int num31 = num13; - num4 = 1; - num5 = num31; - int num32 = num5 ^ num4; - int num33 = num5 & num4; - int index = num32 + (num33 + num33); - List<QuestId> list9 = list4; - int num34 = num13; - num4 = 1; - num5 = num34; - int num35 = num5 ^ num4; - int num36 = num5 & num4; - QuestId value3 = list9[num35 + (num36 + num36)]; - QuestId value2 = list4[num13]; - list5[index2] = value3; - list8[index] = value2; - num2 = 675261827; - break; - } - case 1: - num12 = 0; - num2 = 675261851; - break; - case 24: - num21 = list.Count - 2; - num2 = 675261834; - break; - case 26: - num19 = 1; - num2 = 675261839; - break; - case 6: - return list; - case 5: - { - int num23 = CountCrossings(list4, adjAbove, adjBelow, graph.Prerequisites, dependents); - List<QuestId> list5 = list4; - int index = num13; - List<QuestId> list6 = list4; - int num24 = num13; - num4 = 1; - num5 = num24; - int index2 = (num5 | num4) + (num5 & num4); - List<QuestId> list7 = list4; - int num25 = num13; - num4 = 1; - num5 = num25; - int num26 = num5 ^ num4; - int num27 = num5 & num4; - QuestId value2 = list7[num26 + (num27 + num27)]; - QuestId value3 = list4[num13]; - list5[index] = value2; - list6[index2] = value3; - num2 = ((CountCrossings(list4, adjAbove, adjBelow, graph.Prerequisites, dependents) >= num23) ? 675261833 : 675261845); - break; - } - case 8: - { - int num22 = num15; - num4 = 1; - num5 = num22; - obj2 = list[~(~num5 + num4)]; - goto IL_0752; - } - case 3: - num2 = ((num15 > 0) ? 675261847 : 675261830); - break; - case 10: - flag = true; - num2 = 675261827; - break; - case 29: - num2 = ((num15 < list.Count) ? 675261828 : 675261846); - break; - case 14: - num2 = ((num7 < 6) ? 675261844 : 675261854); - break; - case 19: - { - int num11 = num12; - num4 = 1; - num5 = num11; - num12 = (num5 | num4) + (num5 & num4); - num2 = 675261851; - break; - } - IL_030a: - adjBelow = (List<QuestId>)obj; - num13 = 0; - num2 = 675261853; - break; - IL_0752: - adjAbove = (List<QuestId>)obj2; - num2 = ((num15 < list.Count - 1) ? 675261855 : 675261848); - break; - } - } - } + value.Add(item); } } + for (int j = 0; j < 6; j++) + { + if (j % 2 == 0) + { + for (int k = 1; k < list.Count; k++) + { + List<QuestId> referenceLayer = list[k - 1]; + Dictionary<QuestId, float> bary = ComputeBarycenters(list[k], referenceLayer, (QuestId qid) => graph.Prerequisites.GetValueOrDefault(qid)); + list[k].Sort((QuestId a, QuestId b) => bary.GetValueOrDefault(a).CompareTo(bary.GetValueOrDefault(b))); + } + continue; + } + for (int num = list.Count - 2; num >= 0; num--) + { + List<QuestId> referenceLayer2 = list[num + 1]; + Dictionary<QuestId, float> bary2 = ComputeBarycenters(list[num], referenceLayer2, (QuestId qid) => dependents.GetValueOrDefault(qid)); + list[num].Sort((QuestId a, QuestId b) => bary2.GetValueOrDefault(a).CompareTo(bary2.GetValueOrDefault(b))); + } + } + for (int num2 = 0; num2 < 3; num2++) + { + bool flag = false; + for (int num3 = 0; num3 < list.Count; num3++) + { + List<QuestId> list4 = list[num3]; + if (list4.Count < 2) + { + continue; + } + List<QuestId> adjAbove = ((num3 > 0) ? list[num3 - 1] : null); + List<QuestId> adjBelow = ((num3 < list.Count - 1) ? list[num3 + 1] : null); + for (int num4 = 0; num4 < list4.Count - 1; num4++) + { + int num5 = CountCrossings(list4, adjAbove, adjBelow, graph.Prerequisites, dependents); + List<QuestId> list5 = list4; + int index = num4; + int index2 = num4 + 1; + QuestId value2 = list4[num4 + 1]; + QuestId value3 = list4[num4]; + list5[index] = value2; + list4[index2] = value3; + if (CountCrossings(list4, adjAbove, adjBelow, graph.Prerequisites, dependents) < num5) + { + flag = true; + continue; + } + list5 = list4; + index2 = num4; + index = num4 + 1; + value3 = list4[num4 + 1]; + value2 = list4[num4]; + list5[index2] = value3; + list4[index] = value2; + } + } + if (!flag) + { + break; + } + } + return list; } private static int CountCrossings(List<QuestId> layer, List<QuestId>? adjAbove, List<QuestId>? adjBelow, Dictionary<QuestId, List<QuestId>> prerequisites, Dictionary<QuestId, List<QuestId>> dependents) { int num = 0; - int num2 = ((adjAbove == null) ? (-1766914003) : (-1766914004)); - while (true) + if (adjAbove != null) { - int num3 = num2; - int num4 = -1766914003; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 2: - num2 = -1766914004; - break; - case 0: - num2 = ((adjBelow == null) ? (-1766914007) : (-1766914002)); - break; - case 1: - num += CountLayerCrossings(adjAbove, layer, (QuestId qid) => prerequisites.GetValueOrDefault(qid)); - num2 = -1766914003; - break; - case 3: - num += CountLayerCrossings(layer, adjBelow, (QuestId qid) => dependents.GetValueOrDefault(qid)); - num2 = -1766914007; - break; - case 4: - return num; - } + num += CountLayerCrossings(adjAbove, layer, (QuestId qid) => prerequisites.GetValueOrDefault(qid)); } + if (adjBelow != null) + { + num += CountLayerCrossings(layer, adjBelow, (QuestId qid) => dependents.GetValueOrDefault(qid)); + } + return num; } private static int CountLayerCrossings(List<QuestId> upperLayer, List<QuestId> lowerLayer, Func<QuestId, List<QuestId>?> getUpperConnections) { int num = 0; - int num2 = 0; - int num14 = default(int); - while (true) + for (int i = 0; i < lowerLayer.Count; i++) { - int num10; - int num4; - int num5; - if (num2 < lowerLayer.Count) + List<QuestId> list = getUpperConnections(lowerLayer[i]); + if (list == null) { - List<QuestId> list = getUpperConnections(lowerLayer[num2]); - if (list == null) + continue; + } + for (int j = i + 1; j < lowerLayer.Count; j++) + { + List<QuestId> list2 = getUpperConnections(lowerLayer[j]); + if (list2 == null) { - goto IL_01f1; + continue; } - int num3 = num2; - num4 = 1; - num5 = num3; - int num6 = num5 ^ num4; - int num7 = num5 & num4; - int num8 = num6 + (num7 + num7); - while (num8 < lowerLayer.Count) + foreach (QuestId item in list) { - List<QuestId> list2 = getUpperConnections(lowerLayer[num8]); - if (list2 != null) + int num2 = upperLayer.IndexOf(item); + if (num2 < 0) { - foreach (QuestId item in list) + continue; + } + foreach (QuestId item2 in list2) + { + int num3 = upperLayer.IndexOf(item2); + if (num3 >= 0 && num2 > num3) { - int num9 = upperLayer.IndexOf(item); - if (num9 < 0) - { - continue; - } - using List<QuestId>.Enumerator enumerator2 = list2.GetEnumerator(); - num10 = 2134794961; - while (true) - { - int num11 = num10; - num4 = 2134794963; - num5 = num11; - int num12 = num5 + num4; - int num13 = num5 & num4; - switch (num12 - (num13 + num13)) - { - case 1: - { - int num15 = num; - num4 = 1; - num5 = num15; - num = (num5 | num4) + (num5 & num4); - num10 = 2134794961; - break; - } - case 2: - num10 = (enumerator2.MoveNext() ? 2134794960 : 2134794963); - break; - case 5: - num10 = 2134794961; - break; - case 4: - num10 = ((num9 <= num14) ? 2134794961 : 2134794962); - break; - case 3: - { - QuestId current2 = enumerator2.Current; - num14 = upperLayer.IndexOf(current2); - num10 = ((num14 < 0) ? 2134794961 : 2134794967); - break; - } - case 0: - goto end_IL_0089; - } - continue; - end_IL_0089: - break; - } + num++; } } - int num16 = num8; - num4 = 1; - num5 = num16; - int num17 = num5 ^ num4; - int num18 = num5 & num4; - num8 = num17 + (num18 + num18); } - num10 = 1270965095; } - else - { - num10 = 1270965092; - } - while (true) - { - int num19 = num10; - num4 = 1270965094; - num5 = num19; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 2: - return num; - case 1: - break; - case 0: - goto IL_021d; - } - break; - IL_021d: - num10 = 1270965095; - } - goto IL_01f1; - IL_01f1: - int num20 = num2; - num4 = 1; - num5 = num20; - int num21 = num5 ^ num4; - int num22 = num5 & num4; - num2 = num21 + (num22 + num22); } + return num; } private static Dictionary<QuestId, float> ComputeBarycenters(List<QuestId> layer, List<QuestId> referenceLayer, Func<QuestId, List<QuestId>?> getConnected) { Dictionary<QuestId, float> dictionary = new Dictionary<QuestId, float>(); - using List<QuestId>.Enumerator enumerator = layer.GetEnumerator(); - int num = -521962402; - QuestId current = default(QuestId); - List<QuestId> list = default(List<QuestId>); - while (true) + foreach (QuestId item in layer) { - int num2 = num; - int num3 = -521962402; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - num = -521962402; - break; - case 0: - num = (enumerator.MoveNext() ? (-521962401) : (-521962403)); - break; - case 4: - dictionary[current] = (float)referenceLayer.Count * 0.5f; - num = -521962402; - break; - case 2: + List<QuestId> list = getConnected(item); + if (list != null) { List<int> list2 = (from p in list select referenceLayer.IndexOf(p) into idx where idx >= 0 select idx).ToList(); - dictionary[current] = ((list2.Count > 0) ? ((float)_200E_206F_202A_206C_200C_202E_200F_202E_206D_206B_206E_200C_200F_206E_202E_200D_206B_206F_202B_202C_206C_206A_200B_202A_200E_202B_206A_206C_202D_200B_200F_206A_206A_200B_200B_200F_206A_206A_200F_202C_202E((IEnumerable<int>)list2)) : ((float)referenceLayer.Count * 0.5f)); - num = -521962402; - break; + dictionary[item] = ((list2.Count > 0) ? ((float)list2.Average()) : ((float)referenceLayer.Count * 0.5f)); } - case 1: - current = enumerator.Current; - list = getConnected(current); - num = ((list == null) ? (-521962406) : (-521962404)); - break; - case 3: - return dictionary; + else + { + dictionary[item] = (float)referenceLayer.Count * 0.5f; } } + return dictionary; } private static void DrawArrowhead(ImDrawListPtr drawList, Vector2 tip, Vector2 controlPt, float size, uint color) { - int num = ((!(size <= 1.5f)) ? (-1420458262) : (-1420458263)); - while (true) + if (!(size <= 1.5f)) { - int num2 = num; - int num3 = -1420458261; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - { - Vector2 vector = Vector2.Normalize(tip - controlPt); - Vector2 vector2 = new Vector2(0f - vector.Y, vector.X); - Vector2 vector3 = tip - vector * size; - drawList.AddTriangleFilled(tip, vector3 - vector2 * size * 0.45f, vector3 + vector2 * size * 0.45f, color); - return; - } - case 2: - return; - case 0: - goto IL_00b7; - } - continue; - IL_00b7: - num = -1420458263; + Vector2 vector = Vector2.Normalize(tip - controlPt); + Vector2 vector2 = new Vector2(0f - vector.Y, vector.X); + Vector2 vector3 = tip - vector * size; + drawList.AddTriangleFilled(tip, vector3 - vector2 * size * 0.45f, vector3 + vector2 * size * 0.45f, color); } } private Vector4 GetQuestNodeColor(QuestId questId) { - int num = ((!_questFunctions.IsQuestAccepted(questId)) ? 1480321081 : 1480321074); - while (true) + if (_questFunctions.IsQuestAccepted(questId)) { - int num2 = num; - int num3 = 1480321072; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 7: - num = 1480321074; - break; - case 2: - return NodeFillActive; - case 0: - num = ((!_questFunctions.IsReadyToAcceptQuest(questId)) ? 1480321078 : 1480321077); - break; - case 1: - num = (_questFunctions.IsQuestLocked(questId) ? 1480321078 : 1480321072); - break; - case 6: - return NodeFillLocked; - case 5: - return NodeFillAvailable; - case 4: - return NodeFillComplete; - case 8: - num = ((!_questFunctions.IsQuestUnobtainable(questId)) ? 1480321073 : 1480321075); - break; - case 3: - return NodeFillUnobtainable; - case 9: - num = ((!_questFunctions.IsQuestComplete(questId)) ? 1480321080 : 1480321076); - break; - } + return NodeFillActive; } - } - - static bool _200B_202E_206B_206B_206E_206D_202B_202C_206D_200F_206C_206A_202E_206F_200C_206F_200D_200E_202C_202C_206F_202D_200F_206C_202C_200E_206F_206A_202A_200C_200E_200F_200E_202D_202A_202D_200B_206B_200E_202D_202E(string P_0, string P_1) - { - return P_0 != P_1; - } - - static void _200C_202E_202B_202A_200D_202C_202D_200D_202C_200D_206F_200F_200B_200C_206E_200C_206A_200F_206A_200D_206A_200F_200E_200B_200B_202B_200F_206C_206C_202A_200F_202C_206E_200B_202A_202B_206F_202B_202B_202B_202E() - { - ImGui.Separator(); - } - - static Vector2 _206F_200B_200E_206C_200E_200B_206B_206E_200E_206C_206E_206E_202B_202A_206B_202C_200C_202A_206B_202D_206C_202D_202D_200F_206B_200E_200B_206B_202A_206A_206D_200F_206D_206E_202B_200B_200C_206D_200C_202A_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static float _206D_200F_206A_200F_206D_202C_202E_202E_206F_206C_200C_206A_202E_202E_206E_202C_206A_202B_206B_206B_206A_206F_202A_202C_202A_200E_202D_200F_206B_200F_202C_206B_206B_206E_206F_200C_202E_202C_206F_202E(float P_0, float P_1) - { - return MathF.Max(P_0, P_1); - } - - static ImGuiStylePtr _202C_206F_206D_206C_200D_202A_206E_202A_206A_206B_200B_206B_202B_202D_202C_200E_206E_206C_206F_206B_200E_206E_206E_200C_200D_202E_202D_206E_206D_206E_202A_200C_206E_200C_200C_206E_202D_202E_202A_206C_202E() - { - return ImGui.GetStyle(); - } - - static bool _206D_206A_206B_202D_200F_202B_202E_202A_206E_202A_206C_206F_202B_202B_202C_206D_202C_200B_200D_200C_206C_206A_202D_206A_206D_206B_200F_202D_202E_206D_206F_206B_202A_202D_202B_200C_206F_200E_202E_206E_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } - - static void _206F_202C_206E_206C_200D_202B_200C_206D_200E_202A_206F_206C_200B_206A_200D_206A_200D_200C_200D_206A_202D_202B_200C_202A_200C_206F_202A_200B_206B_202B_202B_200C_202A_200E_200E_202C_206A_200B_202B_206B_202E() - { - ImGui.SameLine(); - } - - static ImGuiIOPtr _206D_200F_206F_202D_202B_206A_202A_200E_206C_206C_200D_206A_200C_200D_206F_206B_202D_206B_200B_200B_200C_200C_206C_200D_202E_202D_206D_206D_206D_200F_200C_206D_206D_200C_200F_206F_206C_200E_202A_202C_202E() - { - return ImGui.GetIO(); - } - - static void _206F_200E_200B_202A_200C_200D_200E_206A_200E_200F_200D_202E_202C_202A_200B_206E_206F_206A_202E_202E_202C_202C_202B_206E_200B_202D_200B_202A_200B_202E_200D_200E_200F_202A_206F_200D_200B_206C_206F_202E_202E(float P_0) - { - ImGui.SetNextItemWidth(P_0); - } - - static StringComparer _206F_202B_200B_200D_206D_202B_206A_200D_206E_202A_206F_202C_200B_206B_206F_200E_200F_206E_200F_202E_206B_206F_202C_206A_202C_202D_206E_206D_206A_206A_206A_206B_206A_202A_202A_200D_202C_200F_202D_200F_202E() - { - return StringComparer.OrdinalIgnoreCase; - } - - static long _202D_202E_206C_200E_206E_200C_200D_202A_202D_200B_200C_206D_200C_206A_206F_206E_200C_206C_206E_206F_206D_200B_200E_206E_200E_202C_206C_206F_206C_202E_206E_206F_202B_202C_202A_202E_206A_206E_206B_202C_202E() - { - return Environment.TickCount64; - } - - static ImRaii.ChildDisposable _206C_200E_202A_202A_200F_202C_200E_202E_202C_202D_206A_202C_206E_202A_202B_200D_200C_206E_206D_206D_202D_206E_206E_202D_200D_206E_200F_206C_200D_202A_200B_206B_206E_202B_200D_200B_200C_200F_202A_202E(ImU8String P_0, Vector2 P_1, bool P_2) - { - return ImRaii.Child(P_0, P_1, P_2); - } - - static void _200B_200D_202A_206F_202A_202C_202A_202D_206E_200C_206C_202A_206A_206B_202C_202D_206B_200C_200B_202B_206C_206A_200F_200F_206F_202B_202D_206D_206E_202E_202C_200B_206F_206A_202D_206B_200F_202B_200E_200F_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static float _206C_206E_200F_206D_206E_202C_206E_206A_202B_202A_206D_202B_200C_206D_200C_200F_200E_202A_200D_206F_200B_200F_200C_206E_202D_202B_202D_206C_202D_200E_206F_206A_202E_206F_202D_202A_200D_200C_206E_206C_202E() - { - return ImGui.GetTextLineHeightWithSpacing(); - } - - static float _202D_202E_206A_202B_202E_206C_202C_202C_206F_206F_206E_202C_200B_206D_200B_200C_202C_206F_200D_206B_200B_202A_206B_202C_202B_200B_200E_200F_202E_202C_206C_206E_202B_200D_200B_202A_206F_202B_202B_200C_202E() - { - return ImGui.GetWindowHeight(); - } - - static void _200B_200E_202A_200C_202C_202C_206A_206F_200C_206A_200C_206F_202D_200B_200E_200D_202C_202E_202B_200D_206F_200B_202D_200F_202E_202E_202B_202E_200B_202C_206B_206C_206D_200F_200C_200D_206B_202E_200C_202E_202E(float P_0) - { - ImGui.SetScrollY(P_0); - } - - unsafe static ImGuiListClipper* _200D_206E_200E_200E_206D_200F_206A_202B_202A_200C_200B_206A_206A_202E_202D_206E_206A_200D_206B_200C_206E_200E_200E_206F_202A_200B_200D_202D_200C_206D_206A_206F_200C_206B_200B_206D_202D_202E_200C_206D_202E() - { - return ImGuiNative.ImGuiListClipper(); - } - - unsafe static void _202C_200E_202D_206F_200F_200B_202E_206C_202B_206A_206D_200F_200F_202D_200F_200B_202A_206A_200E_200F_202B_200F_206D_206C_206C_206C_206D_206F_202C_206D_200F_200F_202B_202C_206E_206B_200C_200C_206E_200F_202E(ImGuiListClipper* P_0, int P_1, float P_2) - { - ImGuiNative.Begin(P_0, P_1, P_2); - } - - static bool _200C_206B_202D_206B_206D_202E_206B_200E_200C_206B_202A_206A_206C_206B_200C_202E_200D_206F_200C_200B_206F_202C_202E_202A_206E_202C_206C_206E_206D_202A_202C_202E_200B_202B_202E_200E_200F_202C_206C_202B_202E(ElementId P_0, ElementId P_1) - { - return P_0 == P_1; - } - - static ImRaii.ColorDisposable _206C_200D_200C_200F_200F_206B_202E_202A_206A_200C_202E_202E_200B_202D_200E_206E_200C_200C_206F_200C_200B_200E_202A_206E_206E_206F_200E_206E_200B_200B_200C_202E_202A_200B_202B_206D_206D_206C_200F_202B_202E(ImGuiCol P_0, Vector4 P_1, bool P_2) - { - return ImRaii.PushColor(P_0, P_1, P_2); - } - - static float _206C_206D_206A_206B_202C_202E_206C_206D_202E_202E_206D_200E_200F_206C_202A_206A_206A_202A_206E_206E_206B_200E_206F_202D_202E_200C_206D_202A_206B_206A_202B_206D_202C_200C_206C_206C_202C_206C_206D_206B_202E() - { - return ImGui.GetCursorPosX(); - } - - static void _206E_206E_206B_200B_202C_206D_206F_202B_206C_200E_202E_206F_200D_206E_206F_206B_206A_202E_206A_200D_206F_206C_206F_202B_202D_206B_200E_206D_200F_202A_200C_202B_202C_200B_202E_200C_206F_206B_202E_206D_202E(float P_0) - { - ImGui.SetCursorPosX(P_0); - } - - static bool _202C_200C_200B_206F_202E_206B_202D_206C_206C_200B_202C_202B_200F_206E_200E_206E_200D_206F_206B_202B_206B_200D_200B_206E_200D_206E_202C_206A_202B_206D_206B_200E_200E_206C_206A_202A_206E_202A_200F_200C_202E(ImU8String P_0, bool P_1, ImGuiSelectableFlags P_2, Vector2 P_3) - { - return ImGui.Selectable(P_0, P_1, P_2, P_3); - } - - static bool _202B_200E_202C_202B_202E_200B_202C_202A_202A_200C_206A_200F_202B_202A_206A_200E_200B_200E_202E_206E_206F_200F_200D_202D_200F_206B_200F_206B_206A_202E_206F_202E_206E_200D_200D_200F_200F_206C_202A_200F_202E(ImGuiMouseButton P_0) - { - return ImGui.IsMouseDoubleClicked(P_0); - } - - static ImDrawListPtr _202E_200C_202A_202A_206A_202C_202E_202D_202B_200F_206A_206E_206E_206D_206F_206B_202D_206F_200E_202A_202C_206F_202E_206D_202E_202B_200E_202B_200C_202C_206E_206A_206A_200C_202A_200B_206C_206C_200D_206C_202E() - { - return ImGui.GetWindowDrawList(); - } - - static Vector2 _200B_202E_206D_200D_206B_202E_206D_202A_206E_206E_206D_206C_206A_200D_202B_202C_202E_200D_206C_202A_200B_202E_206E_200E_200D_206A_206E_200B_206D_206A_202C_206C_206A_200C_202A_200F_200C_206C_206E_202E() - { - return ImGui.GetItemRectMin(); - } - - static Vector2 _206A_206C_206E_202C_206E_206E_206D_200B_202C_202D_200C_206A_202D_206D_202D_200B_200E_206C_202A_202C_202C_200E_200D_206E_202D_206F_200D_202E_206D_200D_200F_200F_206F_202E_206C_200D_200F_202B_200F_202C_202E() - { - return ImGui.GetItemRectMax(); - } - - static uint _206E_202A_202C_206F_200F_206A_200C_206D_202D_200B_206B_206E_206C_200B_206B_200E_200D_200F_206D_200B_200C_200C_206B_206B_200F_206D_206E_206D_206E_202C_202A_206C_206A_200D_202C_206E_200D_202B_200B_202D_202E(Vector4 P_0) - { - return ImGui.ColorConvertFloat4ToU32(P_0); - } - - static void _206D_200D_202B_200E_206D_202B_200D_206F_200F_200B_202C_200D_202E_200F_206F_200D_206F_206E_206A_200E_202C_206A_202E_200F_206F_206E_206E_206D_200E_206B_206A_202D_206C_202B_202A_202A_206A_206F_200F_206D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static ImRaii.ChildDisposable _206E_206E_206B_200E_200E_202E_200D_202C_200E_206E_202A_200B_200D_206C_206C_206A_200B_200D_206D_202B_202D_200E_200D_202D_202B_206C_206A_200D_206B_206F_202B_206A_200F_200C_202D_206C_202E_200F_200E_206B_202E(ImU8String P_0, Vector2 P_1, bool P_2, ImGuiWindowFlags P_3) - { - return ImRaii.Child(P_0, P_1, P_2, P_3); - } - - static void _206B_206B_202D_200E_206E_200C_202E_200F_202A_200E_206E_206A_206B_200F_200F_202B_200C_206F_202E_206D_200C_206F_200C_202D_206A_202C_206E_206F_200C_200E_202D_206D_206F_202A_200F_206A_206B_206E_206B_202A_202E(float P_0) - { - ImGui.PushTextWrapPos(P_0); - } - - static ushort _200B_200B_202E_206B_200E_206C_206A_206E_202C_200B_200E_202B_206D_206B_202B_202A_202D_202A_200D_200C_206F_200B_206F_206A_206A_200F_200F_202E_202B_200C_206D_202A_206B_202B_206B_202A_202C_206E_206F_202E_202E(ElementId P_0) - { - return P_0.Value; - } - - static void _202D_200C_202D_202A_202E_206D_206C_202B_206D_200C_206A_200F_202B_202B_202E_202C_200C_206D_206D_200D_200D_206D_206E_206E_206C_200C_206F_206B_200E_206B_202B_200E_202C_206E_200B_202C_202E_202D_200F_206A_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static void _206E_202A_202B_206F_206B_206F_200E_206C_200F_206F_206D_206A_200D_200F_206C_206D_200B_206B_202A_202E_206F_202E_206C_200E_206D_206D_206B_206B_206C_200F_202B_202E_202B_200F_202A_200B_202C_206F_200F_202D_202E(float P_0, float P_1) - { - ImGui.SameLine(P_0, P_1); - } - - static void _202C_206C_206F_206F_200E_206B_202B_202D_206D_206D_200C_200E_200F_206C_202B_202C_200E_206B_202B_206E_206A_202B_202B_206D_202E_206B_206A_206B_200F_202D_206F_200B_206B_202C_200D_202D_202C_202E_202C_206F_202E() - { - ImGui.Spacing(); - } - - static List<QuestStep> _202D_200C_206D_202C_202E_206C_202E_206B_206C_206F_206D_202A_206E_202D_200F_202B_206D_202D_200B_206F_202C_202D_200C_200B_200D_200B_200E_206E_200C_200C_206A_202C_200E_202E_202C_202E_200F_206D_206B_206E_202E(QuestSequence P_0) - { - return P_0.Steps; - } - - static ushort _206E_200F_200C_206E_202B_206C_202A_202E_202B_202E_200B_202B_206F_200E_200F_206B_206D_200C_202D_202D_206C_206C_200F_200C_206E_200C_202E_206F_200B_202B_206F_202C_206D_200E_200B_206C_200C_200F_200C_200F_202E(QuestStep P_0) - { - return P_0.TerritoryId; - } - - static Vector3? _200B_200E_206B_206E_202B_200E_206E_206A_202E_206C_202A_206B_202A_200C_202A_202A_200B_200D_200F_202A_200D_200F_202D_202B_200E_200E_202C_206B_200E_206E_200D_202E_206F_206D_200B_202D_206B_206F_206B_202E(QuestStep P_0) - { - return P_0.Position; - } - - static Vector2 _202B_200B_206A_200C_206A_200B_206D_202B_202E_206E_202C_202B_200E_206D_200B_200B_202A_206F_202B_206A_202B_200B_200D_202A_206E_206E_200F_200C_202E_200D_200C_206C_206C_206A_200C_202D_206D_200E_206D_206B_202E(Vector2 P_0, Map P_1) - { - return MapUtil.WorldToMap(P_0, P_1); - } - - static MapLinkPayload _206C_200D_206F_206E_206A_200B_202C_206D_206B_206A_206B_206C_202A_206C_206F_206F_202C_206A_206D_206B_200B_200B_202E_202C_200C_200B_200B_202D_206E_202B_200E_206A_200B_202C_200D_200E_202A_206F_206D_206A_202E(uint P_0, uint P_1, float P_2, float P_3, float P_4) - { - return new MapLinkPayload(P_0, P_1, P_2, P_3, P_4); - } - - static bool _200F_206D_202D_200E_200C_202E_206E_206C_206B_206A_202C_206E_200E_206D_200D_206F_202B_200F_206B_206C_206A_206E_206E_202B_200F_200B_200C_200F_206A_202A_200C_200F_206E_202C_206C_202A_202D_202A_202B_206B_202E(IGameGui P_0, MapLinkPayload P_1) - { - return P_0.OpenMapWithMapLink(P_1); - } - - static bool _200C_202A_206F_200B_206E_206F_206F_206D_206E_206A_200E_206E_206E_202E_202D_202A_206A_202C_202C_206C_206C_200C_202E_200E_200D_206C_200C_202A_206B_200E_206D_206F_206F_202B_206C_206B_202E_200F_202E_200D_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - - static ImRaii.DisabledDisposable _202B_202E_206D_202D_202C_200F_206D_202C_202B_206E_206E_200D_206A_206A_200F_200D_202A_202B_202D_206D_202B_202D_202C_200E_206B_200F_202E_206E_202C_206F_200F_206E_206B_202B_206D_206F_200D_200F_206D_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static bool _206F_206A_206B_202C_202C_206E_200E_202D_202E_202B_206B_202D_200C_206A_200C_200C_202C_200B_200F_202D_200E_200D_202D_200F_200C_200F_200E_206B_206B_200E_206C_206E_206D_206C_202B_200B_206D_202D_202C_202A_202E(ImGuiHoveredFlags P_0) - { - return ImGui.IsItemHovered(P_0); - } - - static void _200B_200B_200E_200C_206C_202C_206E_200D_206C_206E_200C_202C_200F_200C_200B_206C_206A_206D_200D_202C_200E_206B_202D_206D_206A_202E_206D_206C_200D_200F_206A_202B_206E_202A_206A_206F_206B_200E_200C_206B_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } - - static void _206B_200B_200B_202E_200B_202A_202E_206F_200C_206B_206A_200D_202E_206C_206C_200E_200F_202C_206C_202C_206C_200C_202C_200F_200C_202C_202E_202E_200D_206D_206B_202D_202E_206B_200F_206B_200D_206F_206D_202D_202E() - { - ImGui.PopTextWrapPos(); - } - - static bool _200E_200C_200D_202E_200B_202B_200C_200C_206A_206F_206F_202D_206A_200D_206A_200E_202C_200E_200C_202D_200F_202C_200D_200F_200C_206E_202E_202D_202D_200F_200F_202B_202A_206C_200E_206B_202B_206E_200B_206A_202E(string P_0) - { - return string.IsNullOrWhiteSpace(P_0); - } - - static bool _200D_206D_200B_200D_206B_206F_202C_206B_202B_200F_206E_202E_206C_206A_206E_202C_202A_200B_206F_202C_202B_202A_206D_202B_200B_206A_200B_206D_200E_202D_206C_202B_200B_200D_202D_202D_202A_206C_206F_200F_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static bool _200B_202A_206B_206D_206F_206B_202A_202A_202D_200F_200C_200B_206A_200F_206F_200C_202B_200D_200E_200D_206E_206B_202E_202E_206F_202A_206F_202E_200D_200B_202A_206A_202A_206A_206C_200E_200C_206A_202A_200E_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); - } - - static ISharedImmediateTexture _206D_200E_206D_206F_206C_200B_200D_202C_206F_202D_202E_202C_202C_202A_202B_202B_202C_206A_206E_202D_202E_206F_200D_202C_200E_200D_206C_200C_206D_200F_200B_200E_206C_206D_200B_200E_206D_206F_206E_206B_202E(ITextureProvider P_0, string P_1) - { - return P_0.GetFromGame(P_1); - } - - static IDalamudTextureWrap _200F_206C_200D_206A_206B_200B_206A_206D_200F_202A_202E_206C_202A_202B_200F_206A_206D_202E_200F_202C_206A_202B_200E_200B_202A_200E_206A_206F_206D_202B_202D_202B_202E_206A_202A_206B_202A_202D_200C_200E_202E(ISharedImmediateTexture P_0, IDalamudTextureWrap P_1) - { - return P_0.GetWrapOrDefault(P_1); - } - - static ImTextureID _206E_202C_202E_202B_200D_206B_200C_200F_206C_206D_200F_202C_206B_200F_200E_202C_206B_200D_202B_206E_200D_206A_202C_202A_200D_206B_200D_200E_200B_200C_202A_200B_202A_206E_206C_206C_202D_206E_202D_200C_202E(IDalamudTextureWrap P_0) - { - return P_0.Handle; - } - - static void _202D_200D_206E_206E_206B_202A_206E_206F_202C_202E_206E_202C_202C_206E_200D_206F_202C_202D_200D_200B_202A_200C_200B_202E_206A_202A_206A_200C_206E_206F_202B_200E_202B_202E_206C_202E_200E_200E_206F_206E_202E(ImTextureID P_0, Vector2 P_1) - { - ImGui.Image(P_0, P_1); - } - - static bool _202D_206C_202B_206F_200F_206C_202E_200E_200D_202E_206F_202E_206E_206E_202C_206A_200D_200B_206B_206F_206A_202E_202C_200F_200B_202D_202C_200C_206D_202D_202B_202C_200C_200D_202A_200B_202B_202E_202E_200E_202E() - { - return ImGui.IsItemHovered(); - } - - static float _206D_202C_200C_200E_202C_202C_200D_206D_206F_206A_200C_200E_202C_202E_200C_200F_206E_206E_206E_202B_206C_200F_200D_200F_206D_202B_200F_200E_202B_200D_206A_202D_206E_200E_200F_202A_206D_206C_200E_202C_202E() - { - return ImGui.GetCursorPosY(); - } - - static void _200F_202D_200B_206A_200D_206F_206F_200F_200B_206D_202C_206E_200C_200D_206A_202E_200E_202A_200D_202D_200C_202B_206C_206D_200E_202D_206F_206C_200F_206D_200F_200C_200C_200F_202A_200E_206A_200B_206D_206C_202E(float P_0) - { - ImGui.SetCursorPosY(P_0); - } - - static void _200E_206C_202C_202A_200C_202D_206A_206F_206B_202E_200E_200B_200C_206F_200C_206C_200E_202B_200C_206C_206D_202E_202A_202D_200E_206B_202A_200D_200B_206C_206F_206C_206D_206F_202B_206A_206F_200C_200D_200E_202E() - { - ImGui.BeginTooltip(); - } - - static void _202A_206B_206A_202B_206B_200B_200B_202A_206C_206C_202D_206F_200D_200F_200E_200E_200B_200E_206B_202A_206E_206E_200F_200F_206C_206F_206A_200C_206F_200E_200C_200C_200E_202D_202C_202D_206D_200B_200B_202C_202E() - { - ImGui.EndTooltip(); - } - - static string _200F_206B_200D_200D_206B_206C_200B_200D_206E_202A_202C_206E_202E_206D_202C_206B_206E_200F_200B_206D_202E_206D_200B_206E_206E_206D_206A_202E_206D_200E_206F_202A_202D_206D_206B_202A_200D_202A_206A_206F_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static int _202A_200E_206D_200E_206A_202C_206E_206A_202C_206C_206B_200F_200B_200F_200F_202A_206B_200E_200D_202A_206F_200E_200F_202B_200B_202D_206D_206C_206B_202A_202A_206D_200C_200D_200D_206B_200B_206A_206C_200E_202E(IDalamudTextureWrap P_0) - { - return P_0.Width; - } - - static float _206A_206F_202B_200C_200F_202A_202C_206F_202C_206E_202E_206D_206A_200B_206C_200B_200C_206F_206F_202A_206E_206B_200B_206D_206F_202E_206B_206A_202B_206C_206C_202E_206A_202D_200C_206E_202D_200C_200D_202B_202E(float P_0, float P_1) - { - return MathF.Min(P_0, P_1); - } - - static int _200F_206A_200E_206F_206F_202C_206C_200F_202E_206F_206C_202D_202B_202C_200F_202B_200E_200B_200B_202B_206D_206B_202A_206B_200C_206D_206A_202E_200C_202B_206C_206C_206D_206B_206C_200D_202B_202E_206C_206A_202E(IDalamudTextureWrap P_0) - { - return P_0.Height; - } - - static Vector2 _200C_202E_206B_202A_206C_206F_202B_202C_202B_200F_206D_200F_206D_206D_200E_200F_206B_206F_200D_206A_206A_200B_206E_200D_200B_200E_200D_202E_200B_200B_200B_202A_206B_206C_202C_202E_206D_206B_206E_202D_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static int _206F_200C_202E_202B_206A_200E_206D_206D_206C_202B_206C_202A_202C_206A_202E_202C_206F_200D_202E_206F_206E_202C_202A_206B_200D_202A_202A_206F_206C_202D_206C_200E_206B_202C_200E_202B_206D_206C_200D_202A_202E(string P_0) - { - return P_0.Length; - } - - static string _200C_202B_206C_202C_206F_202B_202E_202A_200F_206E_202A_206A_200C_200E_200F_200C_206F_200C_202D_200F_206C_200C_200E_200E_202E_206C_202B_206C_206C_200D_200F_206E_206C_206A_202A_206B_206C_202C_202C_206E_202E(string P_0, int P_1, int P_2) - { - return P_0.Substring(P_1, P_2); - } - - static string _206F_206A_202E_206F_202D_202B_206D_206F_202E_206D_200C_206D_200E_200B_202E_202B_202B_200E_200E_206B_206A_206A_200B_200F_206D_200B_200D_206F_200D_200C_206F_202E_200C_200D_206F_206F_202D_202B_200D_206F_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static Vector2 _202E_200C_202E_200B_206A_200D_200D_200D_206C_200F_206B_206A_202A_202D_202D_200D_202E_206B_200E_200E_206C_200B_200B_206E_200D_202B_202E_200C_200C_206D_206A_200D_200B_200C_200D_202A_202E_206D_206E_202A_202E() - { - return ImGui.GetCursorScreenPos(); - } - - static bool _206C_200C_206E_206E_200F_200D_202A_200C_202E_200E_206F_202D_200C_200F_206A_202A_206D_206C_202A_206B_200B_206A_202B_202B_206B_202B_200E_206D_206A_206D_202C_200D_200D_200F_200D_202B_200F_200F_206C_206A_202E(ImU8String P_0, Vector2 P_1, ImGuiButtonFlags P_2) - { - return ImGui.InvisibleButton(P_0, P_1, P_2); - } - - static bool _200E_206C_206F_200D_200E_206B_206C_202E_206F_206F_206F_206A_200D_206A_202E_206D_200D_206D_206D_202D_206D_200B_202A_206A_200D_200D_206D_206B_202B_200D_206B_206D_200E_202C_202B_200E_200F_202B_206B_206B_202E() - { - return ImGui.IsItemActive(); - } - - static Vector2 _200E_202C_206E_200E_202D_202E_206D_206C_206B_206A_202A_206A_202B_200F_206D_202A_206B_200F_202A_206A_202C_206D_206B_206D_206E_206B_202E_202E_206F_202B_200C_206C_202E_202B_206C_202C_202B_202B_200C_200C_202E() - { - return ImGui.GetMousePos(); - } - - static float _200B_202C_200D_206E_202E_206F_206E_200D_206D_202A_200D_206C_200D_206E_202A_202A_202E_202C_202D_206D_200E_200E_200C_202B_200E_200F_202A_202D_200E_206D_202A_202E_206B_206C_206B_206A_200F_206B_206D_206F_202E(float P_0) - { - return MathF.Abs(P_0); - } - - static float _202E_206D_206D_206F_206C_206D_202A_200C_206B_202B_206E_200E_202D_200C_200C_202C_200E_200C_200D_206F_206C_206A_200F_206A_202C_202E_200D_206E_206F_200B_202D_206C_200B_200F_202E_200B_206D_200E_206B_202B_202E(float P_0, float P_1, float P_2) - { - return Math.Clamp(P_0, P_1, P_2); - } - - static int _202C_206F_200B_200C_202A_206A_202A_206C_206B_202B_206D_200B_206F_200D_200B_202C_200E_202D_200C_200B_206A_202A_200F_206A_202C_200F_200B_206B_200B_200F_200E_202C_202C_206A_202D_202D_206C_202C_202B_202E(float P_0) - { - return MathF.Sign(P_0); - } - - static float _200C_206E_202C_200C_202D_206C_206E_206C_206D_200D_200B_200B_202D_200F_206F_202D_206F_202A_200F_202D_206D_200F_202A_200B_200C_202C_202A_200E_206F_202E_202A_200E_206B_202B_200C_206D_202C_206C_200B_202B_202E() - { - return ImGui.GetFontSize(); - } - - static ImFontPtr _206D_206C_202E_206B_200E_202A_200C_206F_206E_206C_206B_206B_202E_200D_206D_202A_200D_200D_206A_202E_206C_200D_200B_206C_202E_200D_206B_200C_200E_206E_202A_202C_200C_202D_200D_206B_206A_202A_202C_202C_202E() - { - return ImGui.GetFont(); - } - - static string _202E_206B_206F_206D_202A_202E_202A_206B_202C_202A_202C_200D_202D_202E_202E_202E_200E_206E_206E_206C_200D_200D_206D_206E_206C_206D_200D_206F_206D_206F_200D_200C_206E_206D_202E_202D_202A_202C_202C_200C_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _202E_202C_200B_202A_200D_200F_200C_200D_206C_206E_206A_202D_206A_206E_202B_202D_202B_200B_202A_206B_200B_200B_200F_206C_206F_206D_200B_206D_200D_202E_206F_206C_206A_206A_202A_206E_202D_206F_200E_200F_202E(ImGuiMouseButton P_0) - { - return ImGui.IsMouseReleased(P_0); - } - - static double _200E_206F_202A_206C_200C_202E_200F_202E_206D_206B_206E_200C_200F_206E_202E_200D_206B_206F_202B_202C_206C_206A_200B_202A_200E_202B_206A_206C_202D_200B_200F_206A_206A_200B_200B_200F_206A_206A_200F_202C_202E(IEnumerable<int> P_0) - { - return P_0.Average(); + if (_questFunctions.IsQuestComplete(questId)) + { + return NodeFillComplete; + } + if (_questFunctions.IsQuestUnobtainable(questId)) + { + return NodeFillUnobtainable; + } + if (!_questFunctions.IsQuestLocked(questId) && _questFunctions.IsReadyToAcceptQuest(questId)) + { + return NodeFillAvailable; + } + return NodeFillLocked; } } diff --git a/Questionable/Questionable.Windows.JournalComponents/QuestJournalComponent.cs b/Questionable/Questionable.Windows.JournalComponents/QuestJournalComponent.cs index 0b48a74..4459c17 100644 --- a/Questionable/Questionable.Windows.JournalComponents/QuestJournalComponent.cs +++ b/Questionable/Questionable.Windows.JournalComponents/QuestJournalComponent.cs @@ -1,14 +1,11 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Numerics; using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Bindings.ImGui; using Dalamud.Interface; -using Dalamud.Interface.ManagedFontAtlas; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin; using Microsoft.Extensions.Logging; @@ -33,541 +30,16 @@ internal sealed class QuestJournalComponent Quest } - private readonly record struct FlatRow(RowType Type, int Depth, int GroupIndex, IQuestInfo? Quest, string Label, JournalCounts Counts) - { - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200B_202B_202A_200C_200D_200D_200F_202B_202A_206D_200D_200F_202A_206C_206F_200E_202B_206F_206C_200B_202D_206C_200E_206B_200E_200D_200E_200C_200D_206B_206C_206E_202E_200E_206A_202D_206A_200F_206B_200F_202E(); - _202B_206C_202A_206E_202C_202C_200B_206D_206D_202E_206B_206F_206F_206D_206E_206F_206D_200C_202E_206A_206E_206D_200D_202C_202E_200B_200E_200D_200D_200B_202A_206F_200C_206B_200D_202A_206C_200C_200C_200E_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1001513835)); - _202B_206C_202A_206E_202C_202C_200B_206D_206D_202E_206B_206F_206F_206D_206E_206F_206D_200C_202E_206A_206E_206D_200D_202C_202E_200B_200E_200D_200D_200B_202A_206F_200C_206B_200D_202A_206C_200C_200C_200E_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1344697862)); - int num = ((!PrintMembers(stringBuilder)) ? (-1551625878) : (-1551625877)); - while (true) - { - int num2 = num; - int num3 = -1551625878; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -1551625877; - break; - case 1: - _200C_202E_202C_200E_206B_206D_206F_200D_200F_206F_200D_202B_202D_206A_206B_202E_200B_200C_202C_206D_200E_200D_202C_206C_202B_200F_200D_200B_206E_206A_202A_200E_206D_200F_200C_206B_200F_206E_200D_202C_202E(stringBuilder, ' '); - num = -1551625878; - break; - case 0: - _200C_202E_202C_200E_206B_206D_206F_200D_200F_206F_200D_202B_202D_206A_206B_202E_200B_200C_202C_206D_200E_200D_202C_206C_202B_200F_200D_200B_206E_206A_202A_200E_206D_200F_200C_206B_200F_206E_200D_202C_202E(stringBuilder, '}'); - return _200D_200D_200D_200F_202D_202D_200E_206F_206D_202D_202B_202D_202B_202A_202A_206A_202E_200C_206E_200E_200F_202C_200E_200E_200B_206A_206B_200F_206A_202C_202D_206D_202D_206D_200C_200C_200B_206B_206E_206E_202E((object)stringBuilder); - } - } - } + private readonly record struct FlatRow(RowType Type, int Depth, int GroupIndex, IQuestInfo? Quest, string Label, JournalCounts Counts); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202B_206C_202A_206E_202C_202C_200B_206D_206D_202E_206B_206F_206F_206D_206E_206F_206D_200C_202E_206A_206E_206D_200D_202C_202E_200B_200E_200D_200D_200B_202A_206F_200C_206B_200D_202A_206C_200C_200C_200E_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1816100221)); - _202B_206C_202A_206E_202C_202C_200B_206D_206D_202E_206B_206F_206F_206D_206E_206F_206D_200C_202E_206A_206E_206D_200D_202C_202E_200B_200E_200D_200D_200B_202A_206F_200C_206B_200D_202A_206C_200C_200C_200E_202E(builder, Type.ToString()); - _202B_206C_202A_206E_202C_202C_200B_206D_206D_202E_206B_206F_206F_206D_206E_206F_206D_200C_202E_206A_206E_206D_200D_202C_202E_200B_200E_200D_200D_200B_202A_206F_200C_206B_200D_202A_206C_200C_200C_200E_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1014922524)); - _202B_206C_202A_206E_202C_202C_200B_206D_206D_202E_206B_206F_206F_206D_206E_206F_206D_200C_202E_206A_206E_206D_200D_202C_202E_200B_200E_200D_200D_200B_202A_206F_200C_206B_200D_202A_206C_200C_200C_200E_202E(builder, Depth.ToString()); - _202B_206C_202A_206E_202C_202C_200B_206D_206D_202E_206B_206F_206F_206D_206E_206F_206D_200C_202E_206A_206E_206D_200D_202C_202E_200B_200E_200D_200D_200B_202A_206F_200C_206B_200D_202A_206C_200C_200C_200E_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1452499057)); - _202B_206C_202A_206E_202C_202C_200B_206D_206D_202E_206B_206F_206F_206D_206E_206F_206D_200C_202E_206A_206E_206D_200D_202C_202E_200B_200E_200D_200D_200B_202A_206F_200C_206B_200D_202A_206C_200C_200C_200E_202E(builder, GroupIndex.ToString()); - _202B_206C_202A_206E_202C_202C_200B_206D_206D_202E_206B_206F_206F_206D_206E_206F_206D_200C_202E_206A_206E_206D_200D_202C_202E_200B_200E_200D_200D_200B_202A_206F_200C_206B_200D_202A_206C_200C_200C_200E_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1159868025)); - _202B_202B_206C_206C_202E_206E_200C_202E_202B_206C_206D_200C_206D_202B_202A_206C_202A_206A_200F_202A_200E_202B_200C_202E_206F_200C_202D_202B_206A_202E_202C_200C_202E_200D_202D_200B_206D_200E_206A_200D_202E(builder, (object)Quest); - _202B_206C_202A_206E_202C_202C_200B_206D_206D_202E_206B_206F_206F_206D_206E_206F_206D_200C_202E_206A_206E_206D_200D_202C_202E_200B_200E_200D_200D_200B_202A_206F_200C_206B_200D_202A_206C_200C_200C_200E_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1931637293)); - _202B_202B_206C_206C_202E_206E_200C_202E_202B_206C_206D_200C_206D_202B_202A_206C_202A_206A_200F_202A_200E_202B_200C_202E_206F_200C_202D_202B_206A_202E_202C_200C_202E_200D_202D_200B_206D_200E_206A_200D_202E(builder, (object)Label); - _202B_206C_202A_206E_202C_202C_200B_206D_206D_202E_206B_206F_206F_206D_206E_206F_206D_200C_202E_206A_206E_206D_200D_202C_202E_200B_200E_200D_200D_200B_202A_206F_200C_206B_200D_202A_206C_200C_200C_200E_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1999051001)); - _202B_202B_206C_206C_202E_206E_200C_202E_202B_206C_206D_200C_206D_202B_202A_206C_202A_206A_200F_202A_200E_202B_200C_202E_206F_200C_202D_202B_206A_202E_202C_200C_202E_200D_202D_200B_206D_200E_206A_200D_202E(builder, (object)Counts); - return true; - } + private sealed record FilteredSection(JournalData.Section Section, List<FilteredCategory> Categories); - [CompilerGenerated] - public bool Equals(FlatRow other) - { - int num = ((!EqualityComparer<RowType>.Default.Equals(Type, other.Type)) ? (-278484317) : (-278484316)); - while (true) - { - int num2 = num; - int num3 = -278484319; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = ((!EqualityComparer<IQuestInfo>.Default.Equals(Quest, other.Quest)) ? (-278484317) : (-278484318)); - break; - case 3: - num = ((!EqualityComparer<string>.Default.Equals(Label, other.Label)) ? (-278484317) : (-278484315)); - break; - case 2: - return false; - case 0: - num = -278484316; - break; - case 4: - return EqualityComparer<JournalCounts>.Default.Equals(Counts, other.Counts); - case 6: - num = ((!EqualityComparer<int>.Default.Equals(GroupIndex, other.GroupIndex)) ? (-278484317) : (-278484320)); - break; - case 5: - num = ((!EqualityComparer<int>.Default.Equals(Depth, other.Depth)) ? (-278484317) : (-278484313)); - break; - } - } - } + private sealed record FilteredCategory(JournalData.Category Category, List<FilteredGenre> Genres); - bool IEquatable<FlatRow>.Equals(FlatRow other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _200B_202B_202A_200C_200D_200D_200F_202B_202A_206D_200D_200F_202A_206C_206F_200E_202B_206F_206C_200B_202D_206C_200E_206B_200E_200D_200E_200C_200D_206B_206C_206E_202E_200E_206A_202D_206A_200F_206B_200F_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202B_206C_202A_206E_202C_202C_200B_206D_206D_202E_206B_206F_206F_206D_206E_206F_206D_200C_202E_206A_206E_206D_200D_202C_202E_200B_200E_200D_200D_200B_202A_206F_200C_206B_200D_202A_206C_200C_200C_200E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200C_202E_202C_200E_206B_206D_206F_200D_200F_206F_200D_202B_202D_206A_206B_202E_200B_200C_202C_206D_200E_200D_202C_206C_202B_200F_200D_200B_206E_206A_202A_200E_206D_200F_200C_206B_200F_206E_200D_202C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200D_200D_200D_200F_202D_202D_200E_206F_206D_202D_202B_202D_202B_202A_202A_206A_202E_200C_206E_200E_200F_202C_200E_200E_200B_206A_206B_200F_206A_202C_202D_206D_202D_206D_200C_200C_200B_206B_206E_206E_202E(object P_0) - { - return P_0.ToString(); - } - - static StringBuilder _202B_202B_206C_206C_202E_206E_200C_202E_202B_206C_206D_200C_206D_202B_202A_206C_202A_206A_200F_202A_200E_202B_200C_202E_206F_200C_202D_202B_206A_202E_202C_200C_202E_200D_202D_200B_206D_200E_206A_200D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - } - - private sealed record FilteredSection(JournalData.Section Section, List<FilteredCategory> Categories) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200C_202B_206D_206B_206B_200F_200F_206C_206E_202B_200C_200E_206D_206D_200B_200C_202B_206B_206D_202E_206B_200C_206B_200F_206E_202C_202B_206D_206B_202C_200E_202D_202D_206A_200D_202B_206E_206F_206A_206B_202E(typeof(FilteredSection).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200B_200F_200E_200E_202E_202A_202B_206F_202B_200F_202D_202E_202C_200E_206C_206E_200F_200B_200E_200B_202A_200B_202B_202D_200D_206A_202D_206A_206F_206B_202D_206D_206F_206D_206F_202B_200C_202B_200D_202E_202E(); - _206A_202B_202A_202A_200D_202C_202B_202B_206D_200C_202D_206F_200E_200E_202D_202C_202A_202E_206F_202E_200E_206B_206A_200C_206C_202D_202E_202B_206F_206F_206B_202C_202E_202D_200E_206E_206B_206B_202D_206D_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(947801429)); - _206A_202B_202A_202A_200D_202C_202B_202B_206D_200C_202D_206F_200E_200E_202D_202C_202A_202E_206F_202E_200E_206B_206A_200C_206C_202D_202E_202B_206F_206F_206B_202C_202E_202D_200E_206E_206B_206B_202D_206D_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? 209316329 : 209316328); - while (true) - { - int num2 = num; - int num3 = 209316329; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - _206E_206D_200C_200F_206F_202A_202A_200E_206C_206C_200E_206C_202D_200C_202E_206D_200E_200D_200D_200E_206E_200D_202D_206B_200F_206A_206B_206F_206C_206C_200E_202B_202A_206E_200C_200E_200E_206F_206D_200C_202E(stringBuilder, '}'); - return _200C_202D_200E_206B_200E_202A_202E_200E_200E_202C_202E_202D_200F_206A_200E_200F_206B_200E_200D_200E_200D_206D_202E_202A_200C_202C_206C_202D_200F_202E_202B_200D_200D_200B_200E_206E_200C_200B_202D_206E_202E((object)stringBuilder); - case 1: - _206E_206D_200C_200F_206F_202A_202A_200E_206C_206C_200E_206C_202D_200C_202E_206D_200E_200D_200D_200E_206E_200D_202D_206B_200F_206A_206B_206F_206C_206C_200E_202B_202A_206E_200C_200E_200E_206F_206D_200C_202E(stringBuilder, ' '); - num = 209316329; - break; - case 2: - num = 209316328; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202D_202B_202A_200E_206E_206A_200C_200D_206C_202D_202C_200D_202D_206D_200C_202C_202D_200F_202D_206B_200D_202E_202D_200F_200C_206B_206A_202E_202A_200F_200D_200F_200C_200C_202E_200C_202A_202B_206C_202C_202E(); - _206A_202B_202A_202A_200D_202C_202B_202B_206D_200C_202D_206F_200E_200E_202D_202C_202A_202E_206F_202E_200E_206B_206A_200C_206C_202D_202E_202B_206F_206F_206B_202C_202E_202D_200E_206E_206B_206B_202D_206D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1694722262)); - _206F_200E_206F_200F_200F_200E_206B_206D_206E_202C_206D_202A_202C_202C_206C_202D_202E_200F_200E_200D_202E_200B_206F_206C_200C_202E_206F_202C_206F_200B_200F_202D_202D_200B_200E_200D_200F_206C_200D_200E_202E(builder, (object)Section); - _206A_202B_202A_202A_200D_202C_202B_202B_206D_200C_202D_206F_200E_200E_202D_202C_202A_202E_206F_202E_200E_206B_206A_200C_206C_202D_202E_202B_206F_206F_206B_202C_202E_202D_200E_206E_206B_206B_202D_206D_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1308281590)); - _206F_200E_206F_200F_200F_200E_206B_206D_206E_202C_206D_202A_202C_202C_206C_202D_202E_200F_200E_200D_202E_200B_206F_206C_200C_202E_206F_202C_206F_200B_200F_202D_202D_200B_200E_200D_200F_206C_200D_200E_202E(builder, (object)Categories); - return true; - } - - [CompilerGenerated] - public bool Equals(FilteredSection? other) - { - int num = (((object)this == other) ? (-1818550142) : (-1818550138)); - while (true) - { - int num2 = num; - int num3 = -1818550137; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - return EqualityComparer<List<FilteredCategory>>.Default.Equals(Categories, other.Categories); - case 2: - num = ((!_206F_206E_202A_202C_206D_206E_202E_200D_200F_206E_206A_200F_202A_202C_200D_202D_202A_206C_202A_206D_202B_206C_206F_206F_202A_200D_202C_202A_202E_206F_206B_202D_206B_202C_200C_202B_202D_200B_206A_206B_202E(EqualityContract, other.EqualityContract)) ? (-1818550137) : (-1818550140)); - break; - case 3: - num = ((!EqualityComparer<JournalData.Section>.Default.Equals(Section, other.Section)) ? (-1818550137) : (-1818550141)); - break; - case 1: - num = (((object)other == null) ? (-1818550137) : (-1818550139)); - break; - case 5: - return true; - case 6: - num = -1818550138; - break; - case 0: - return false; - } - } - } - - bool IEquatable<FilteredSection>.Equals(FilteredSection? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200C_202B_206D_206B_206B_200F_200F_206C_206E_202B_200C_200E_206D_206D_200B_200C_202B_206B_206D_202E_206B_200C_206B_200F_206E_202C_202B_206D_206B_202C_200E_202D_202D_206A_200D_202B_206E_206F_206A_206B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200B_200F_200E_200E_202E_202A_202B_206F_202B_200F_202D_202E_202C_200E_206C_206E_200F_200B_200E_200B_202A_200B_202B_202D_200D_206A_202D_206A_206F_206B_202D_206D_206F_206D_206F_202B_200C_202B_200D_202E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206A_202B_202A_202A_200D_202C_202B_202B_206D_200C_202D_206F_200E_200E_202D_202C_202A_202E_206F_202E_200E_206B_206A_200C_206C_202D_202E_202B_206F_206F_206B_202C_202E_202D_200E_206E_206B_206B_202D_206D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206E_206D_200C_200F_206F_202A_202A_200E_206C_206C_200E_206C_202D_200C_202E_206D_200E_200D_200D_200E_206E_200D_202D_206B_200F_206A_206B_206F_206C_206C_200E_202B_202A_206E_200C_200E_200E_206F_206D_200C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200C_202D_200E_206B_200E_202A_202E_200E_200E_202C_202E_202D_200F_206A_200E_200F_206B_200E_200D_200E_200D_206D_202E_202A_200C_202C_206C_202D_200F_202E_202B_200D_200D_200B_200E_206E_200C_200B_202D_206E_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202D_202B_202A_200E_206E_206A_200C_200D_206C_202D_202C_200D_202D_206D_200C_202C_202D_200F_202D_206B_200D_202E_202D_200F_200C_206B_206A_202E_202A_200F_200D_200F_200C_200C_202E_200C_202A_202B_206C_202C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206F_200E_206F_200F_200F_200E_206B_206D_206E_202C_206D_202A_202C_202C_206C_202D_202E_200F_200E_200D_202E_200B_206F_206C_200C_202E_206F_202C_206F_200B_200F_202D_202D_200B_200E_200D_200F_206C_200D_200E_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206F_206E_202A_202C_206D_206E_202E_200D_200F_206E_206A_200F_202A_202C_200D_202D_202A_206C_202A_206D_202B_206C_206F_206F_202A_200D_202C_202A_202E_206F_206B_202D_206B_202C_200C_202B_202D_200B_206A_206B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - private sealed record FilteredCategory(JournalData.Category Category, List<FilteredGenre> Genres) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206A_200C_206F_200B_200B_202C_206E_202C_202E_206C_206D_200B_206E_200C_202E_206E_206B_206C_206E_206F_202C_206E_206F_200B_206A_206E_206D_206D_200E_202E_200E_206A_206B_202D_200C_206F_202D_206C_206D_202A_202E(typeof(FilteredCategory).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200F_200C_200D_202D_202C_202C_200D_206B_200D_206B_200B_200D_200D_202C_206A_206B_206F_202A_200E_200D_206A_206D_206F_206A_200E_206C_200B_200D_206C_200B_206F_200F_206E_206B_200F_202B_206A_200B_202E_200D_202E(); - _206C_202B_202E_200E_206A_200E_202C_206D_202E_202D_202E_202D_202E_202E_200B_206C_206B_206A_202E_202B_200E_206B_200D_206D_202A_200E_202E_202D_200F_206A_200D_202B_200F_200D_200B_206A_202C_206E_200D_206F_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1168389344)); - _206C_202B_202E_200E_206A_200E_202C_206D_202E_202D_202E_202D_202E_202E_200B_206C_206B_206A_202E_202B_200E_206B_200D_206D_202A_200E_202E_202D_200F_206A_200D_202B_200F_200D_200B_206A_202C_206E_200D_206F_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? (-2117931978) : (-2117931979)); - while (true) - { - int num2 = num; - int num3 = -2117931977; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -2117931979; - break; - case 1: - _206E_206B_200F_206C_202E_200C_202A_206E_206B_200B_200E_202A_206F_202B_206C_206C_206E_200B_202D_200B_206C_206E_206C_200E_206D_206E_200F_206B_206B_202C_200E_200D_206F_206B_202E_206C_206A_202C_202E_206A_202E(stringBuilder, '}'); - return _200B_200B_200D_206F_200B_202C_206E_200F_202A_200F_202A_206E_202A_200C_202B_206A_202E_206C_206D_202E_200C_206F_202C_206D_206C_200C_202E_202E_200B_200C_206E_206D_202E_206E_202B_202E_202E_202C_206E_202E_202E((object)stringBuilder); - case 2: - _206E_206B_200F_206C_202E_200C_202A_206E_206B_200B_200E_202A_206F_202B_206C_206C_206E_200B_202D_200B_206C_206E_206C_200E_206D_206E_200F_206B_206B_202C_200E_200D_206F_206B_202E_206C_206A_202C_202E_206A_202E(stringBuilder, ' '); - num = -2117931978; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202C_200F_202B_202E_200F_200E_202B_202C_200D_206E_202A_202C_206F_202E_202B_206F_206C_206B_200D_200F_202D_206C_202A_200F_200D_206F_206E_200B_200F_206B_206E_200D_202C_206F_206A_206B_206B_206D_200F_200F_202E(); - _206C_202B_202E_200E_206A_200E_202C_206D_202E_202D_202E_202D_202E_202E_200B_206C_206B_206A_202E_202B_200E_206B_200D_206D_202A_200E_202E_202D_200F_206A_200D_202B_200F_200D_200B_206A_202C_206E_200D_206F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-836877164)); - _202C_206F_206D_200B_206E_206C_200D_206E_202B_202D_206D_200D_202C_206A_200E_200B_200B_202B_200F_206E_200B_200E_200D_200E_202E_200B_206F_202D_200F_200E_206B_200D_202E_200F_206E_202B_202A_200D_202B_206A_202E(builder, (object)Category); - _206C_202B_202E_200E_206A_200E_202C_206D_202E_202D_202E_202D_202E_202E_200B_206C_206B_206A_202E_202B_200E_206B_200D_206D_202A_200E_202E_202D_200F_206A_200D_202B_200F_200D_200B_206A_202C_206E_200D_206F_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-427119147)); - _202C_206F_206D_200B_206E_206C_200D_206E_202B_202D_206D_200D_202C_206A_200E_200B_200B_202B_200F_206E_200B_200E_200D_200E_202E_200B_206F_202D_200F_200E_206B_200D_202E_200F_206E_202B_202A_200D_202B_206A_202E(builder, (object)Genres); - return true; - } - - [CompilerGenerated] - public bool Equals(FilteredCategory? other) - { - int num = (((object)this == other) ? 1587726649 : 1587726650); - while (true) - { - int num2 = num; - int num3 = 1587726648; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = ((!EqualityComparer<JournalData.Category>.Default.Equals(Category, other.Category)) ? 1587726654 : 1587726651); - break; - case 3: - return EqualityComparer<List<FilteredGenre>>.Default.Equals(Genres, other.Genres); - case 6: - return false; - case 0: - num = 1587726650; - break; - case 1: - return true; - case 2: - num = (((object)other == null) ? 1587726654 : 1587726653); - break; - case 5: - num = ((!_206F_202E_202C_206F_206E_200E_200E_200F_200C_200F_202B_206A_202D_200B_200E_206E_206B_202C_202D_206F_202D_200F_202E_206F_206A_200E_206D_200C_206D_202D_200D_206B_202C_202D_202B_200B_206E_206B_206A_206E_202E(EqualityContract, other.EqualityContract)) ? 1587726654 : 1587726652); - break; - } - } - } - - bool IEquatable<FilteredCategory>.Equals(FilteredCategory? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206A_200C_206F_200B_200B_202C_206E_202C_202E_206C_206D_200B_206E_200C_202E_206E_206B_206C_206E_206F_202C_206E_206F_200B_206A_206E_206D_206D_200E_202E_200E_206A_206B_202D_200C_206F_202D_206C_206D_202A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200F_200C_200D_202D_202C_202C_200D_206B_200D_206B_200B_200D_200D_202C_206A_206B_206F_202A_200E_200D_206A_206D_206F_206A_200E_206C_200B_200D_206C_200B_206F_200F_206E_206B_200F_202B_206A_200B_202E_200D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206C_202B_202E_200E_206A_200E_202C_206D_202E_202D_202E_202D_202E_202E_200B_206C_206B_206A_202E_202B_200E_206B_200D_206D_202A_200E_202E_202D_200F_206A_200D_202B_200F_200D_200B_206A_202C_206E_200D_206F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206E_206B_200F_206C_202E_200C_202A_206E_206B_200B_200E_202A_206F_202B_206C_206C_206E_200B_202D_200B_206C_206E_206C_200E_206D_206E_200F_206B_206B_202C_200E_200D_206F_206B_202E_206C_206A_202C_202E_206A_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200B_200B_200D_206F_200B_202C_206E_200F_202A_200F_202A_206E_202A_200C_202B_206A_202E_206C_206D_202E_200C_206F_202C_206D_206C_200C_202E_202E_200B_200C_206E_206D_202E_206E_202B_202E_202E_202C_206E_202E_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202C_200F_202B_202E_200F_200E_202B_202C_200D_206E_202A_202C_206F_202E_202B_206F_206C_206B_200D_200F_202D_206C_202A_200F_200D_206F_206E_200B_200F_206B_206E_200D_202C_206F_206A_206B_206B_206D_200F_200F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202C_206F_206D_200B_206E_206C_200D_206E_202B_202D_206D_200D_202C_206A_200E_200B_200B_202B_200F_206E_200B_200E_200D_200E_202E_200B_206F_202D_200F_200E_206B_200D_202E_200F_206E_202B_202A_200D_202B_206A_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206F_202E_202C_206F_206E_200E_200E_200F_200C_200F_202B_206A_202D_200B_200E_206E_206B_202C_202D_206F_202D_200F_202E_206F_206A_200E_206D_200C_206D_202D_200D_206B_202C_202D_202B_200B_206E_206B_206A_206E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - private sealed record FilteredGenre(JournalData.Genre Genre, List<IQuestInfo> Quests) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206A_206F_206D_206C_200B_206A_202D_200E_206D_202E_200F_206E_202E_200D_206A_202C_200F_200C_202B_202C_202B_206A_200D_206C_206D_202D_200C_202D_202B_200F_206A_202D_206D_206D_200C_206E_206F_202D_206D_202E_202E(typeof(FilteredGenre).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202B_206F_200F_206D_202C_200D_200F_200C_202D_206D_206C_206F_200D_202E_200C_200D_202C_200C_206C_202E_200C_202A_206A_200D_206F_206D_202E_206F_202B_200E_206A_206F_206D_206F_206C_202A_202E_202E_202C_202C_202E(); - _202D_206B_200F_202B_200E_200E_206C_200D_206E_206A_200E_202D_202B_202D_202B_202A_206A_200B_202B_202A_202D_206A_200F_206F_206D_200F_200E_200C_200E_202A_202C_200F_206D_206C_206D_206D_206E_202C_206C_202E_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1286796942)); - _202D_206B_200F_202B_200E_200E_206C_200D_206E_206A_200E_202D_202B_202D_202B_202A_206A_200B_202B_202A_202D_206A_200F_206F_206D_200F_200E_200C_200E_202A_202C_200F_206D_206C_206D_206D_206E_202C_206C_202E_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1344697862)); - int num = ((!PrintMembers(stringBuilder)) ? 497921459 : 497921458); - while (true) - { - int num2 = num; - int num3 = 497921459; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 497921458; - break; - case 1: - _206D_200B_200C_200B_202A_206E_202D_202C_206A_200B_206F_206E_200E_206C_206D_206F_206B_206E_202D_200B_200F_202A_202E_200B_206E_206B_200F_200D_202A_200C_206C_202A_200B_206C_202A_202D_206D_202A_202D_202D_202E(stringBuilder, ' '); - num = 497921459; - break; - case 0: - _206D_200B_200C_200B_202A_206E_202D_202C_206A_200B_206F_206E_200E_206C_206D_206F_206B_206E_202D_200B_200F_202A_202E_200B_206E_206B_200F_200D_202A_200C_206C_202A_200B_206C_202A_202D_206D_202A_202D_202D_202E(stringBuilder, '}'); - return _200B_202B_200C_206F_202B_206D_200B_202C_200B_206B_202C_200B_202A_206C_200F_200B_200F_200E_202E_206E_206D_206D_200F_202E_206A_200D_202A_200B_202A_202D_202A_200B_206B_206F_202D_202D_202B_200C_200B_200C_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202B_200C_202C_202E_206D_202C_200F_200D_206E_206D_200B_200E_200D_202A_200D_200D_202A_206C_200F_206C_202D_206D_202D_200C_202C_202B_206D_206A_202B_206B_202D_200C_202C_200C_206D_206B_200E_206C_206C_202A_202E(); - _202D_206B_200F_202B_200E_200E_206C_200D_206E_206A_200E_202D_202B_202D_202B_202A_206A_200B_202B_202A_202D_206A_200F_206F_206D_200F_200E_200C_200E_202A_202C_200F_206D_206C_206D_206D_206E_202C_206C_202E_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-306988401)); - _200D_200F_202A_200C_200D_202D_200B_202A_200F_200D_202D_200E_206E_200B_202D_202E_200B_206C_202B_200F_202D_206F_206A_202B_206B_200E_202A_206F_200C_206B_200D_200C_206A_200D_200B_202D_200C_206E_202D_200D_202E(builder, (object)Genre); - _202D_206B_200F_202B_200E_200E_206C_200D_206E_206A_200E_202D_202B_202D_202B_202A_206A_200B_202B_202A_202D_206A_200F_206F_206D_200F_200E_200C_200E_202A_202C_200F_206D_206C_206D_206D_206E_202C_206C_202E_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-783349735)); - _200D_200F_202A_200C_200D_202D_200B_202A_200F_200D_202D_200E_206E_200B_202D_202E_200B_206C_202B_200F_202D_206F_206A_202B_206B_200E_202A_206F_200C_206B_200D_200C_206A_200D_200B_202D_200C_206E_202D_200D_202E(builder, (object)Quests); - return true; - } - - [CompilerGenerated] - public bool Equals(FilteredGenre? other) - { - int num = (((object)this == other) ? (-210424102) : (-210424103)); - while (true) - { - int num2 = num; - int num3 = -210424102; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = ((!EqualityComparer<JournalData.Genre>.Default.Equals(Genre, other.Genre)) ? (-210424097) : (-210424101)); - break; - case 5: - return false; - case 0: - return true; - case 6: - num = -210424103; - break; - case 1: - return EqualityComparer<List<IQuestInfo>>.Default.Equals(Quests, other.Quests); - case 3: - num = (((object)other == null) ? (-210424097) : (-210424098)); - break; - case 4: - num = ((!_206F_206E_202E_200B_206E_206A_200E_206E_206E_202A_206C_200B_200D_206F_206B_206B_206F_206C_202D_202A_206F_202E_202B_202E_206A_202D_202B_200D_200C_206F_202D_202B_206A_206C_200D_202E_206E_206D_202E_206B_202E(EqualityContract, other.EqualityContract)) ? (-210424097) : (-210424104)); - break; - } - } - } - - bool IEquatable<FilteredGenre>.Equals(FilteredGenre? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206A_206F_206D_206C_200B_206A_202D_200E_206D_202E_200F_206E_202E_200D_206A_202C_200F_200C_202B_202C_202B_206A_200D_206C_206D_202D_200C_202D_202B_200F_206A_202D_206D_206D_200C_206E_206F_202D_206D_202E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202B_206F_200F_206D_202C_200D_200F_200C_202D_206D_206C_206F_200D_202E_200C_200D_202C_200C_206C_202E_200C_202A_206A_200D_206F_206D_202E_206F_202B_200E_206A_206F_206D_206F_206C_202A_202E_202E_202C_202C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202D_206B_200F_202B_200E_200E_206C_200D_206E_206A_200E_202D_202B_202D_202B_202A_206A_200B_202B_202A_202D_206A_200F_206F_206D_200F_200E_200C_200E_202A_202C_200F_206D_206C_206D_206D_206E_202C_206C_202E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206D_200B_200C_200B_202A_206E_202D_202C_206A_200B_206F_206E_200E_206C_206D_206F_206B_206E_202D_200B_200F_202A_202E_200B_206E_206B_200F_200D_202A_200C_206C_202A_200B_206C_202A_202D_206D_202A_202D_202D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200B_202B_200C_206F_202B_206D_200B_202C_200B_206B_202C_200B_202A_206C_200F_200B_200F_200E_202E_206E_206D_206D_200F_202E_206A_200D_202A_200B_202A_202D_202A_200B_206B_206F_202D_202D_202B_200C_200B_200C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202B_200C_202C_202E_206D_202C_200F_200D_206E_206D_200B_200E_200D_202A_200D_200D_202A_206C_200F_206C_202D_206D_202D_200C_202C_202B_206D_206A_202B_206B_202D_200C_202C_200C_206D_206B_200E_206C_206C_202A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200D_200F_202A_200C_200D_202D_200B_202A_200F_200D_202D_200E_206E_200B_202D_202E_200B_206C_202B_200F_202D_206F_206A_202B_206B_200E_202A_206F_200C_206B_200D_200C_206A_200D_200B_202D_200C_206E_202D_200D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206F_206E_202E_200B_206E_206A_200E_206E_206E_202A_206C_200B_200D_206F_206B_206B_206F_206C_202D_202A_206F_202E_202B_202E_206A_202D_202B_200D_200C_206F_202D_202B_206A_206C_200D_202E_206E_206D_202E_206B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } + private sealed record FilteredGenre(JournalData.Genre Genre, List<IQuestInfo> Quests); private sealed record JournalCounts(int Available, int Total, int Obtainable, int Completed) { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200F_206A_202B_200C_202D_202C_202D_200B_200F_206F_202B_206B_202B_202C_206A_206C_200C_200F_202C_206F_202D_206E_202B_200B_206E_200C_200B_200E_206A_200F_200D_206A_202C_200C_202A_200B_206C_206A_206F_206E_202E(typeof(JournalCounts).TypeHandle); - } - } - public string FormattedSupported { get; } = FormatPair(Available, Total); public string FormattedCompleted { get; } = FormatPair(Completed, Obtainable); @@ -576,25 +48,11 @@ internal sealed class QuestJournalComponent { get { - int num = ((Available != Total) ? (-828232541) : (-828232542)); - while (true) + if (Available == Total) { - int num2 = num; - int num3 = -828232541; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_004c; - case 1: - return Total > 0; - case 0: - return false; - } - continue; - IL_004c: - num = -828232542; + return Total > 0; } + return false; } } @@ -602,167 +60,28 @@ internal sealed class QuestJournalComponent { get { - int num = ((Completed != Obtainable) ? (-1994052825) : (-1994052828)); - while (true) + if (Completed == Obtainable) { - int num2 = num; - int num3 = -1994052827; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004e; - case 1: - return Obtainable > 0; - case 2: - return false; - } - continue; - IL_004e: - num = -1994052828; + return Obtainable > 0; } + return false; } } - private static readonly int PadWidth = _206B_202A_200B_202E_202E_200D_206C_202A_206F_206A_202A_202C_202C_200C_202A_200B_202A_206D_200B_202A_202A_200D_206C_200B_206F_200E_206B_206D_200B_200B_200D_206A_200E_202B_206B_202D_200C_200F_206E_202D_202E(9999.ToString(_200E_200F_206C_200F_206C_200D_206B_206A_206B_206D_206C_206F_200B_202E_200E_202E_206C_200F_206C_206B_202B_202B_200E_206E_200C_202A_200C_206F_200E_200B_202B_202D_200E_206C_200E_206F_202B_206F_200E_200D_202E())); + private static readonly int PadWidth = 9999.ToString(CultureInfo.CurrentCulture).Length; public JournalCounts() : this(0, 0, 0, 0) { } - [MethodImpl(MethodImplOptions.NoInlining)] private static string FormatPair(int n, int d) { - int num = ((d == 0) ? 755925451 : 755925450); - while (true) + if (d != 0) { - int num2 = num; - int num3 = 755925451; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return _206E_206B_206F_200F_202B_206C_206D_206F_206C_206F_202C_200C_206F_206C_200B_206C_200C_200E_200F_202A_206B_206E_202D_200E_202B_202B_206C_206E_200C_202D_202A_206F_200D_202E_206F_202B_202A_206F_206F_200E_202E(_200E_200B_206C_206E_200C_206B_206F_200D_200D_200F_206D_206F_200D_202D_200F_200F_202A_206F_206C_202D_206C_206F_206A_200C_206A_206D_200D_200D_206C_202E_206D_202D_202A_200E_202C_200D_200C_200F_202C_200E_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1228468769), PadWidth), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1762358294), _200E_200B_206C_206E_200C_206B_206F_200D_200D_200F_206D_206F_200D_202D_200F_200F_202A_206F_206C_202D_206C_206F_206A_200C_206A_206D_200D_200D_206C_202E_206D_202D_202A_200E_202C_200D_200C_200F_202C_200E_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1313511123), PadWidth)); - case 1: - return _206E_206B_206F_200F_202B_206C_206D_206F_206C_206F_202C_200C_206F_206C_200B_206C_200C_200E_200F_202A_206B_206E_202D_200E_202B_202B_206C_206E_200C_202D_202A_206F_200D_202E_206F_202B_202A_206F_206F_200E_202E(_202E_202B_206A_202C_206E_202D_206A_200E_206B_202A_206C_202B_206A_206F_206F_202D_202B_202E_206C_202C_202C_206A_200E_200D_200E_206D_206F_206B_206E_200E_202C_200B_202E_202B_200D_202A_200C_200D_200D_202A_202E(n.ToString(_200E_200F_206C_200F_206C_200D_206B_206A_206B_206D_206C_206F_200B_202E_200E_202E_206C_200F_206C_206B_202B_202B_200E_206E_200C_202A_200C_206F_200E_200B_202B_202D_200E_206C_200E_206F_202B_206F_200E_200D_202E()), PadWidth), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2014446916), _202E_202B_206A_202C_206E_202D_206A_200E_206B_202A_206C_202B_206A_206F_206F_202D_202B_202E_206C_202C_202C_206A_200E_200D_200E_206D_206F_206B_206E_200E_202C_200B_202E_202B_200D_202A_200C_200D_200D_202A_202E(d.ToString(_200E_200F_206C_200F_206C_200D_206B_206A_206B_206D_206C_206F_200B_202E_200E_202E_206C_200F_206C_206B_202B_202B_200E_206E_200C_202A_200C_206F_200E_200B_202B_202D_200E_206C_200E_206F_202B_206F_200E_200D_202E()), PadWidth)); - case 2: - goto IL_00b5; - } - continue; - IL_00b5: - num = 755925450; + return n.ToString(CultureInfo.CurrentCulture).PadLeft(PadWidth) + " / " + d.ToString(CultureInfo.CurrentCulture).PadLeft(PadWidth); } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206F_202A_206F_200D_202A_206B_206B_202A_206A_206D_206E_202A_202A_200B_206C_206B_200B_200F_206E_206D_206B_202E_200F_200D_206C_202D_200C_200D_200E_200E_200E_202A_200F_202E_202A_200D_206F_202C_206B_206C_202E(); - _200D_206A_206C_206F_200B_206B_202C_206B_200B_202A_200D_206F_202E_206A_202C_202C_202A_202D_200C_202E_206B_206D_206A_200B_200F_200F_202A_202B_206C_200D_200D_202C_200E_206F_200E_206A_206E_206A_202A_206C_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1852041499)); - _200D_206A_206C_206F_200B_206B_202C_206B_200B_202A_200D_206F_202E_206A_202C_202C_202A_202D_200C_202E_206B_206D_206A_200B_200F_200F_202A_202B_206C_200D_200D_202C_200E_206F_200E_206A_206E_206A_202A_206C_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1344697862)); - int num = ((!PrintMembers(stringBuilder)) ? (-1022703241) : (-1022703244)); - while (true) - { - int num2 = num; - int num3 = -1022703242; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1022703244; - break; - case 1: - _206F_200B_202A_206C_202C_206D_200F_206E_200F_202B_200F_206B_202A_206A_200C_200B_202E_206A_202A_202E_202C_200D_202A_200C_200D_206C_206F_206A_202A_206F_200D_200B_200B_202C_206F_202A_206A_202E_206F_200E_202E(stringBuilder, '}'); - return _206B_206F_200F_206D_206B_202C_202E_206B_206D_206C_206C_200F_206B_206A_202A_202E_206C_206C_202E_206F_202C_200D_202E_200C_200F_200F_202E_202E_206F_200F_206C_206E_206E_206B_202A_206F_200D_200C_206B_206A_202E((object)stringBuilder); - case 2: - _206F_200B_202A_206C_202C_206D_200F_206E_200F_202B_200F_206B_202A_206A_200C_200B_202E_206A_202A_202E_202C_200D_202A_200C_200D_206C_206F_206A_202A_206F_200D_200B_200B_202C_206F_202A_206A_202E_206F_200E_202E(stringBuilder, ' '); - num = -1022703241; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206C_202D_202C_202A_206C_202A_200E_202A_202C_202B_206C_206F_200C_206B_200F_206F_206A_202C_202E_202E_202B_206E_206F_200F_200D_206B_200B_206B_202B_200B_200E_200B_200B_202E_200F_206E_202C_206D_206A_206A_202E(); - _200D_206A_206C_206F_200B_206B_202C_206B_200B_202A_200D_206F_202E_206A_202C_202C_202A_202D_200C_202E_206B_206D_206A_200B_200F_200F_202A_202B_206C_200D_200D_202C_200E_206F_200E_206A_206E_206A_202A_206C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2053589078)); - _200D_206A_206C_206F_200B_206B_202C_206B_200B_202A_200D_206F_202E_206A_202C_202C_202A_202D_200C_202E_206B_206D_206A_200B_200F_200F_202A_202B_206C_200D_200D_202C_200E_206F_200E_206A_206E_206A_202A_206C_202E(builder, Available.ToString()); - _200D_206A_206C_206F_200B_206B_202C_206B_200B_202A_200D_206F_202E_206A_202C_202C_202A_202D_200C_202E_206B_206D_206A_200B_200F_200F_202A_202B_206C_200D_200D_202C_200E_206F_200E_206A_206E_206A_202A_206C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-741143455)); - _200D_206A_206C_206F_200B_206B_202C_206B_200B_202A_200D_206F_202E_206A_202C_202C_202A_202D_200C_202E_206B_206D_206A_200B_200F_200F_202A_202B_206C_200D_200D_202C_200E_206F_200E_206A_206E_206A_202A_206C_202E(builder, Total.ToString()); - _200D_206A_206C_206F_200B_206B_202C_206B_200B_202A_200D_206F_202E_206A_202C_202C_202A_202D_200C_202E_206B_206D_206A_200B_200F_200F_202A_202B_206C_200D_200D_202C_200E_206F_200E_206A_206E_206A_202A_206C_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1348197509)); - _200D_206A_206C_206F_200B_206B_202C_206B_200B_202A_200D_206F_202E_206A_202C_202C_202A_202D_200C_202E_206B_206D_206A_200B_200F_200F_202A_202B_206C_200D_200D_202C_200E_206F_200E_206A_206E_206A_202A_206C_202E(builder, Obtainable.ToString()); - _200D_206A_206C_206F_200B_206B_202C_206B_200B_202A_200D_206F_202E_206A_202C_202C_202A_202D_200C_202E_206B_206D_206A_200B_200F_200F_202A_202B_206C_200D_200D_202C_200E_206F_200E_206A_206E_206A_202A_206C_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-410827382)); - _200D_206A_206C_206F_200B_206B_202C_206B_200B_202A_200D_206F_202E_206A_202C_202C_202A_202D_200C_202E_206B_206D_206A_200B_200F_200F_202A_202B_206C_200D_200D_202C_200E_206F_200E_206A_206E_206A_202A_206C_202E(builder, Completed.ToString()); - _200D_206A_206C_206F_200B_206B_202C_206B_200B_202A_200D_206F_202E_206A_202C_202C_202A_202D_200C_202E_206B_206D_206A_200B_200F_200F_202A_202B_206C_200D_200D_202C_200E_206F_200E_206A_206E_206A_202A_206C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-250349771)); - _206D_206E_200F_200D_200E_202E_206A_206A_206C_206A_206D_206B_200E_206B_202E_206E_202B_206C_200E_202A_200E_200E_200C_200C_200C_206E_202D_206F_206E_206A_206A_206E_202B_206D_200F_200C_200E_200C_206B_202E(builder, (object)FormattedSupported); - _200D_206A_206C_206F_200B_206B_202C_206B_200B_202A_200D_206F_202E_206A_202C_202C_202A_202D_200C_202E_206B_206D_206A_200B_200F_200F_202A_202B_206C_200D_200D_202C_200E_206F_200E_206A_206E_206A_202A_206C_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-769492549)); - _206D_206E_200F_200D_200E_202E_206A_206A_206C_206A_206D_206B_200E_206B_202E_206E_202B_206C_200E_202A_200E_200E_200C_200C_200C_206E_202D_206F_206E_206A_206A_206E_202B_206D_200F_200C_200E_200C_206B_202E(builder, (object)FormattedCompleted); - _200D_206A_206C_206F_200B_206B_202C_206B_200B_202A_200D_206F_202E_206A_202C_202C_202A_202D_200C_202E_206B_206D_206A_200B_200F_200F_202A_202B_206C_200D_200D_202C_200E_206F_200E_206A_206E_206A_202A_206C_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1408622866)); - _200D_206A_206C_206F_200B_206B_202C_206B_200B_202A_200D_206F_202E_206A_202C_202C_202A_202D_200C_202E_206B_206D_206A_200B_200F_200F_202A_202B_206C_200D_200D_202C_200E_206F_200E_206A_206E_206A_202A_206C_202E(builder, IsSupportedComplete.ToString()); - _200D_206A_206C_206F_200B_206B_202C_206B_200B_202A_200D_206F_202E_206A_202C_202C_202A_202D_200C_202E_206B_206D_206A_200B_200F_200F_202A_202B_206C_200D_200D_202C_200E_206F_200E_206A_206E_206A_202A_206C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(275251644)); - _200D_206A_206C_206F_200B_206B_202C_206B_200B_202A_200D_206F_202E_206A_202C_202C_202A_202D_200C_202E_206B_206D_206A_200B_200F_200F_202A_202B_206C_200D_200D_202C_200E_206F_200E_206A_206E_206A_202A_206C_202E(builder, IsCompletedComplete.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(JournalCounts? other) - { - int num = (((object)this == other) ? 245494928 : 245494938); - while (true) - { - int num2 = num; - int num3 = 245494937; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 10: - return false; - case 3: - num = (((object)other == null) ? 245494931 : 245494936); - break; - case 7: - return EqualityComparer<string>.Default.Equals(FormattedCompleted, other.FormattedCompleted); - case 5: - num = ((!EqualityComparer<int>.Default.Equals(Total, other.Total)) ? 245494931 : 245494939); - break; - case 9: - return true; - case 1: - num = ((!_202C_200C_200E_202B_202E_202C_200B_202E_202E_206F_206A_202B_206B_202B_206D_206A_206A_206F_206B_206E_202C_202A_206C_200D_200E_202E_202E_206B_206B_202A_206A_206D_200C_200F_202A_206C_200C_206D_202C_202B_202E(EqualityContract, other.EqualityContract)) ? 245494931 : 245494943); - break; - case 0: - num = 245494938; - break; - case 8: - num = ((!EqualityComparer<string>.Default.Equals(FormattedSupported, other.FormattedSupported)) ? 245494931 : 245494942); - break; - case 4: - num = ((!EqualityComparer<int>.Default.Equals(Completed, other.Completed)) ? 245494931 : 245494929); - break; - case 6: - num = ((!EqualityComparer<int>.Default.Equals(Available, other.Available)) ? 245494931 : 245494940); - break; - case 2: - num = ((!EqualityComparer<int>.Default.Equals(Obtainable, other.Obtainable)) ? 245494931 : 245494941); - break; - } - } - } - - bool IEquatable<JournalCounts>.Equals(JournalCounts? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); + return "-".PadLeft(PadWidth) + " / " + "-".PadLeft(PadWidth); } [CompilerGenerated] @@ -775,187 +94,9 @@ internal sealed class QuestJournalComponent FormattedSupported = original.FormattedSupported; FormattedCompleted = original.FormattedCompleted; } - - static Type _200F_206A_202B_200C_202D_202C_202D_200B_200F_206F_202B_206B_202B_202C_206A_206C_200C_200F_202C_206F_202D_206E_202B_200B_206E_200C_200B_200E_206A_200F_200D_206A_202C_200C_202A_200B_206C_206A_206F_206E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static CultureInfo _200E_200F_206C_200F_206C_200D_206B_206A_206B_206D_206C_206F_200B_202E_200E_202E_206C_200F_206C_206B_202B_202B_200E_206E_200C_202A_200C_206F_200E_200B_202B_202D_200E_206C_200E_206F_202B_206F_200E_200D_202E() - { - return CultureInfo.CurrentCulture; - } - - static string _202E_202B_206A_202C_206E_202D_206A_200E_206B_202A_206C_202B_206A_206F_206F_202D_202B_202E_206C_202C_202C_206A_200E_200D_200E_206D_206F_206B_206E_200E_202C_200B_202E_202B_200D_202A_200C_200D_200D_202A_202E(string P_0, int P_1) - { - return P_0.PadLeft(P_1); - } - - static string _206E_206B_206F_200F_202B_206C_206D_206F_206C_206F_202C_200C_206F_206C_200B_206C_200C_200E_200F_202A_206B_206E_202D_200E_202B_202B_206C_206E_200C_202D_202A_206F_200D_202E_206F_202B_202A_206F_206F_200E_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static string _200E_200B_206C_206E_200C_206B_206F_200D_200D_200F_206D_206F_200D_202D_200F_200F_202A_206F_206C_202D_206C_206F_206A_200C_206A_206D_200D_200D_206C_202E_206D_202D_202A_200E_202C_200D_200C_200F_202C_200E_202E(string P_0, int P_1) - { - return P_0.PadLeft(P_1); - } - - static StringBuilder _206F_202A_206F_200D_202A_206B_206B_202A_206A_206D_206E_202A_202A_200B_206C_206B_200B_200F_206E_206D_206B_202E_200F_200D_206C_202D_200C_200D_200E_200E_200E_202A_200F_202E_202A_200D_206F_202C_206B_206C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200D_206A_206C_206F_200B_206B_202C_206B_200B_202A_200D_206F_202E_206A_202C_202C_202A_202D_200C_202E_206B_206D_206A_200B_200F_200F_202A_202B_206C_200D_200D_202C_200E_206F_200E_206A_206E_206A_202A_206C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206F_200B_202A_206C_202C_206D_200F_206E_200F_202B_200F_206B_202A_206A_200C_200B_202E_206A_202A_202E_202C_200D_202A_200C_200D_206C_206F_206A_202A_206F_200D_200B_200B_202C_206F_202A_206A_202E_206F_200E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206B_206F_200F_206D_206B_202C_202E_206B_206D_206C_206C_200F_206B_206A_202A_202E_206C_206C_202E_206F_202C_200D_202E_200C_200F_200F_202E_202E_206F_200F_206C_206E_206E_206B_202A_206F_200D_200C_206B_206A_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206C_202D_202C_202A_206C_202A_200E_202A_202C_202B_206C_206F_200C_206B_200F_206F_206A_202C_202E_202E_202B_206E_206F_200F_200D_206B_200B_206B_202B_200B_200E_200B_200B_202E_200F_206E_202C_206D_206A_206A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206D_206E_200F_200D_200E_202E_206A_206A_206C_206A_206D_206B_200E_206B_202E_206E_202B_206C_200E_202A_200E_200E_200C_200C_200C_206E_202D_206F_206E_206A_206A_206E_202B_206D_200F_200C_200E_200C_206B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202C_200C_200E_202B_202E_202C_200B_202E_202E_206F_206A_202B_206B_202B_206D_206A_206A_206F_206B_206E_202C_202A_206C_200D_200E_202E_202E_206B_206B_202A_206A_206D_200C_200F_202A_206C_200C_206D_202C_202B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - - static int _206B_202A_200B_202E_202E_200D_206C_202A_206F_206A_202A_202C_202C_200C_202A_200B_202A_206D_200B_202A_202A_200D_206C_200B_206F_200E_206B_206D_200B_200B_200D_206A_200E_202B_206B_202D_200C_200F_206E_202D_202E(string P_0) - { - return P_0.Length; - } } - private readonly record struct CachedQuestDisplay(Vector4 SupportColor, FontAwesomeIcon SupportIcon, Vector4 CompletionColor, FontAwesomeIcon CompletionIcon, string CompletionText) - { - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202C_206E_206A_206F_206C_200B_202B_206C_206B_206C_202B_202D_202C_206C_200C_206F_206B_202A_202A_202B_200D_200D_206B_206E_206D_200C_206C_206E_200B_200F_206D_206F_206D_206D_206D_200C_202D_206C_200E_202E_202E(); - _200D_206C_206D_202D_200E_202E_206D_200F_200C_202C_200C_206E_202E_200E_206E_202D_200B_200F_206C_200F_200E_202B_202D_206C_202A_206A_206C_200B_202E_200D_200E_206E_202D_206B_200D_202C_200F_202C_200B_200C_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1454534010)); - _200D_206C_206D_202D_200E_202E_206D_200F_200C_202C_200C_206E_202E_200E_206E_202D_200B_200F_206C_200F_200E_202B_202D_206C_202A_206A_206C_200B_202E_200D_200E_206E_202D_206B_200D_202C_200F_202C_200B_200C_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? (-564173337) : (-564173340)); - while (true) - { - int num2 = num; - int num3 = -564173338; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _200D_206C_206A_206D_202B_200D_206E_202D_200F_202A_206C_206C_200E_202E_200C_202B_202D_200F_200E_206F_206C_200B_206C_200B_200C_202C_202B_206E_206D_206A_202E_202D_200E_206F_200B_206B_200B_206D_202D_200D_202E(stringBuilder, '}'); - return _200C_200E_200F_200B_200C_200B_206F_202A_206A_202D_200F_206A_200E_200B_206B_206B_206D_206E_206F_200C_206C_206F_200D_206A_202D_200D_206F_206A_200E_206E_202D_202A_202D_206B_202C_200D_202D_206A_200E_200E_202E((object)stringBuilder); - case 2: - _200D_206C_206A_206D_202B_200D_206E_202D_200F_202A_206C_206C_200E_202E_200C_202B_202D_200F_200E_206F_206C_200B_206C_200B_200C_202C_202B_206E_206D_206A_202E_202D_200E_206F_200B_206B_200B_206D_202D_200D_202E(stringBuilder, ' '); - num = -564173337; - break; - case 0: - num = -564173340; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200D_206C_206D_202D_200E_202E_206D_200F_200C_202C_200C_206E_202E_200E_206E_202D_200B_200F_206C_200F_200E_202B_202D_206C_202A_206A_206C_200B_202E_200D_200E_206E_202D_206B_200D_202C_200F_202C_200B_200C_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-821988253)); - _200D_206C_206D_202D_200E_202E_206D_200F_200C_202C_200C_206E_202E_200E_206E_202D_200B_200F_206C_200F_200E_202B_202D_206C_202A_206A_206C_200B_202E_200D_200E_206E_202D_206B_200D_202C_200F_202C_200B_200C_202E(builder, SupportColor.ToString()); - _200D_206C_206D_202D_200E_202E_206D_200F_200C_202C_200C_206E_202E_200E_206E_202D_200B_200F_206C_200F_200E_202B_202D_206C_202A_206A_206C_200B_202E_200D_200E_206E_202D_206B_200D_202C_200F_202C_200B_200C_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1724487156)); - _200D_206C_206D_202D_200E_202E_206D_200F_200C_202C_200C_206E_202E_200E_206E_202D_200B_200F_206C_200F_200E_202B_202D_206C_202A_206A_206C_200B_202E_200D_200E_206E_202D_206B_200D_202C_200F_202C_200B_200C_202E(builder, SupportIcon.ToString()); - _200D_206C_206D_202D_200E_202E_206D_200F_200C_202C_200C_206E_202E_200E_206E_202D_200B_200F_206C_200F_200E_202B_202D_206C_202A_206A_206C_200B_202E_200D_200E_206E_202D_206B_200D_202C_200F_202C_200B_200C_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-59441917)); - _200D_206C_206D_202D_200E_202E_206D_200F_200C_202C_200C_206E_202E_200E_206E_202D_200B_200F_206C_200F_200E_202B_202D_206C_202A_206A_206C_200B_202E_200D_200E_206E_202D_206B_200D_202C_200F_202C_200B_200C_202E(builder, CompletionColor.ToString()); - _200D_206C_206D_202D_200E_202E_206D_200F_200C_202C_200C_206E_202E_200E_206E_202D_200B_200F_206C_200F_200E_202B_202D_206C_202A_206A_206C_200B_202E_200D_200E_206E_202D_206B_200D_202C_200F_202C_200B_200C_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-588858711)); - _200D_206C_206D_202D_200E_202E_206D_200F_200C_202C_200C_206E_202E_200E_206E_202D_200B_200F_206C_200F_200E_202B_202D_206C_202A_206A_206C_200B_202E_200D_200E_206E_202D_206B_200D_202C_200F_202C_200B_200C_202E(builder, CompletionIcon.ToString()); - _200D_206C_206D_202D_200E_202E_206D_200F_200C_202C_200C_206E_202E_200E_206E_202D_200B_200F_206C_200F_200E_202B_202D_206C_202A_206A_206C_200B_202E_200D_200E_206E_202D_206B_200D_202C_200F_202C_200B_200C_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(970249347)); - _200E_202A_206A_202C_200B_206E_200B_202C_206E_200D_206C_202B_206F_200B_200E_206B_206A_206F_200B_202B_202B_200F_202B_202E_200D_206C_200D_202B_200D_200D_206C_206C_200B_206D_202A_202A_202A_202D_200C_206C_202E(builder, (object)CompletionText); - return true; - } - - [CompilerGenerated] - public bool Equals(CachedQuestDisplay other) - { - int num = ((!EqualityComparer<Vector4>.Default.Equals(SupportColor, other.SupportColor)) ? 1882949337 : 1882949341); - while (true) - { - int num2 = num; - int num3 = 1882949336; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return false; - case 5: - num = ((!EqualityComparer<FontAwesomeIcon>.Default.Equals(SupportIcon, other.SupportIcon)) ? 1882949337 : 1882949340); - break; - case 2: - num = ((!EqualityComparer<FontAwesomeIcon>.Default.Equals(CompletionIcon, other.CompletionIcon)) ? 1882949337 : 1882949339); - break; - case 4: - num = ((!EqualityComparer<Vector4>.Default.Equals(CompletionColor, other.CompletionColor)) ? 1882949337 : 1882949338); - break; - case 3: - return EqualityComparer<string>.Default.Equals(CompletionText, other.CompletionText); - case 0: - num = 1882949341; - break; - } - } - } - - bool IEquatable<CachedQuestDisplay>.Equals(CachedQuestDisplay other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _202C_206E_206A_206F_206C_200B_202B_206C_206B_206C_202B_202D_202C_206C_200C_206F_206B_202A_202A_202B_200D_200D_206B_206E_206D_200C_206C_206E_200B_200F_206D_206F_206D_206D_206D_200C_202D_206C_200E_202E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200D_206C_206D_202D_200E_202E_206D_200F_200C_202C_200C_206E_202E_200E_206E_202D_200B_200F_206C_200F_200E_202B_202D_206C_202A_206A_206C_200B_202E_200D_200E_206E_202D_206B_200D_202C_200F_202C_200B_200C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200D_206C_206A_206D_202B_200D_206E_202D_200F_202A_206C_206C_200E_202E_200C_202B_202D_200F_200E_206F_206C_200B_206C_200B_200C_202C_202B_206E_206D_206A_202E_202D_200E_206F_200B_206B_200B_206D_202D_200D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200C_200E_200F_200B_200C_200B_206F_202A_206A_202D_200F_206A_200E_200B_206B_206B_206D_206E_206F_200C_206C_206F_200D_206A_202D_200D_206F_206A_200E_206E_202D_202A_202D_206B_202C_200D_202D_206A_200E_200E_202E(object P_0) - { - return P_0.ToString(); - } - - static StringBuilder _200E_202A_206A_202C_200B_206E_200B_202C_206E_200D_206C_202B_206F_200B_200E_206B_206A_206F_200B_202B_202B_200F_202B_202E_200D_206C_200D_202B_200D_200D_206C_206C_200B_206D_202A_202A_202A_202D_200C_206C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - } + private readonly record struct CachedQuestDisplay(Vector4 SupportColor, FontAwesomeIcon SupportIcon, Vector4 CompletionColor, FontAwesomeIcon CompletionIcon, string CompletionText); internal sealed class FilterConfiguration { @@ -971,26 +112,11 @@ internal sealed class QuestJournalComponent { get { - int num = (AvailableOnly ? 1781684003 : 1781684002); - while (true) + if (!AvailableOnly && !HideNoPaths) { - int num2 = num; - int num3 = 1781684000; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1781684002; - break; - case 2: - num = (HideNoPaths ? 1781684003 : 1781684001); - break; - case 3: - return true; - case 1: - return HideUnobtainable; - } + return HideUnobtainable; } + return true; } } @@ -1066,503 +192,216 @@ internal sealed class QuestJournalComponent _lastHideSeasonalGlobally = _configuration.General.HideSeasonalEventsFromJournalProgress; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe void DrawQuests() { - int num = ((_refreshGenreIndex >= 0) ? 1868955401 : 1868955407); - bool hideSeasonalEventsFromJournalProgress = default(bool); - bool flag2 = default(bool); - int num11 = default(int); - while (true) + if (_refreshGenreIndex >= 0 || _refreshDisplayIndex >= 0) { - int num2 = num; - int num3 = 1868955396; - int num4 = num2; - int num23; - switch ((num4 | num3) - (num4 & num3)) + TickRefresh(); + } + bool hideSeasonalEventsFromJournalProgress = _configuration.General.HideSeasonalEventsFromJournalProgress; + if (hideSeasonalEventsFromJournalProgress != _lastHideSeasonalGlobally) + { + _lastHideSeasonalGlobally = hideSeasonalEventsFromJournalProgress; + _logger.LogDebug("Configuration change detected: HideSeasonalEventsFromJournalProgress={Hide} - refreshing journal", hideSeasonalEventsFromJournalProgress); + UpdateFilter(); + } + _questJournalUtils.AddAllAvailableQuests(); + ImGui.SameLine(); + if (UiThemeUtils.SearchInput("##QuestSearch", ref Filter.SearchText, -1E-45f, "Search quests and categories")) + { + UpdateFilter(); + } + int num = 0 | (UiThemeUtils.WrappedCheckbox("Available only", ref Filter.AvailableOnly) ? 1 : 0); + ImGui.SameLine(); + int num2 = num | (UiThemeUtils.WrappedCheckbox("Hide without paths", ref Filter.HideNoPaths) ? 1 : 0); + ImGui.SameLine(); + if (((uint)num2 | (UiThemeUtils.WrappedCheckbox("Hide unobtainable", ref Filter.HideUnobtainable) ? 1u : 0u)) != 0) + { + UpdateFilter(); + } + ImGui.Separator(); + bool flag = _refreshGenreIndex >= 0 || _refreshDisplayIndex >= 0; + if (flag) + { + ImGui.TextColored(in UiThemeUtils.StatusActive, "Loading..."); + } + if (_flatRows.Count > 0) + { + float x; + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) { - case 12: - _lastHideSeasonalGlobally = hideSeasonalEventsFromJournalProgress; - _200F_200F_206D_200C_206F_202A_206B_206B_200E_202B_200B_200F_202E_206E_206B_206C_202C_202B_200F_200F_206F_206D_200D_206F_206E_202C_202A_206E_202E_202B_200F_202E_200D_202E_206A_202D_200D_200E_200C_202E_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1004026158), new object[1] { hideSeasonalEventsFromJournalProgress }); - UpdateFilter(); - num = 1868955392; - break; - case 4: - _questJournalUtils.AddAllAvailableQuests(); - _202C_200D_202B_200D_206B_200E_206D_202B_202C_206C_202D_200E_202B_206E_202A_206A_206E_202A_206C_206D_206C_206B_202A_206E_206F_202A_200C_206B_202A_206A_200F_206E_202A_206A_202E_200C_200C_200F_200E_200C_202E(); - num = ((!UiThemeUtils.SearchInput(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(570004168), ref Filter.SearchText, -1E-45f, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1939826874))) ? 1868955398 : 1868955397); - break; - case 13: - TickRefresh(); - num = 1868955394; - break; - case 6: - hideSeasonalEventsFromJournalProgress = _configuration.General.HideSeasonalEventsFromJournalProgress; - num = ((hideSeasonalEventsFromJournalProgress == _lastHideSeasonalGlobally) ? 1868955392 : 1868955400); - break; - case 8: - num = 1868955407; - break; - case 7: - UpdateFilter(); - num = 1868955399; - break; - case 14: - _206F_202B_202E_202C_206A_206C_202A_206B_206A_200F_202A_206C_202C_206D_200E_206E_202D_202D_202D_202E_206C_202C_206B_206D_200F_202E_202B_206A_200E_206D_206A_206D_202D_206B_206A_202A_200D_206E_206D_202E_202E(ref UiThemeUtils.StatusActive, (ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-968153087)); - num = 1868955396; - break; - case 3: - _200B_200B_200F_202A_200E_200D_200F_202E_202B_202C_206D_200B_206B_202B_200C_200C_206A_206D_202A_206A_206E_206A_206F_206C_202E_206D_202C_202D_202E_202D_206A_206B_206A_200B_200F_206C_206E_206C_200C_206E_202E(); - num = ((_refreshGenreIndex >= 0) ? 1868955406 : 1868955393); - break; - case 2: + x = ImGui.CalcTextSize(FontAwesomeIcon.Check.ToIconString()).X; + } + float fontGlobalScale = ImGui.GetIO().FontGlobalScale; + using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable("Quests", 3, ImGuiTableFlags.NoSavedSettings | ImGuiTableFlags.ScrollY); + if (!tableDisposable) { - int num21 = 0 | (UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1764187366), ref Filter.AvailableOnly) ? 1 : 0); - _202C_200D_202B_200D_206B_200E_206D_202B_202C_206C_202D_200E_202B_206E_202A_206A_206E_202A_206C_206D_206C_206B_202A_206E_206F_202A_200C_206B_202A_206A_200F_206E_202A_206A_202E_200C_200C_200F_200E_200C_202E(); - int num22 = num21 | (UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1852813595), ref Filter.HideNoPaths) ? 1 : 0); - _202C_200D_202B_200D_206B_200E_206D_202B_202C_206C_202D_200E_202B_206E_202A_206A_206E_202A_206C_206D_206C_206B_202A_206E_206F_202A_200C_206B_202A_206A_200F_206E_202A_206A_202E_200C_200C_200F_200E_200C_202E(); - num = ((((uint)num22 | (UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-784051953), ref Filter.HideUnobtainable) ? 1u : 0u)) == 0) ? 1868955399 : 1868955395); - break; + return; } - case 11: - num = ((_refreshDisplayIndex < 0) ? 1868955394 : 1868955401); - break; - case 10: - num23 = 1; - goto IL_0267; - case 5: - num23 = ((_refreshDisplayIndex >= 0) ? 1 : 0); - goto IL_0267; - case 1: - UpdateFilter(); - num = 1868955398; - break; - case 0: - if (_flatRows.Count > 0) + ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.NoHide); + ImGui.TableSetupColumn("Supported", ImGuiTableColumnFlags.WidthFixed, 120f * fontGlobalScale); + ImGui.TableSetupColumn("Completed", ImGuiTableColumnFlags.WidthFixed, 120f * fontGlobalScale); + ImGui.TableHeadersRow(); + float textLineHeightWithSpacing = ImGui.GetTextLineHeightWithSpacing(); + bool flag2 = false; + ImGuiListClipper* intPtr = ImGuiNative.ImGuiListClipper(); + ImGuiNative.Begin(intPtr, _flatRows.Count, textLineHeightWithSpacing); + ImGuiListClipperPtr imGuiListClipperPtr = intPtr; + try + { + while (imGuiListClipperPtr.Step()) { - num = 1868955405; - break; - } - num = (flag2 ? 1956666445 : 1956666446); - while (true) - { - int num18 = num; - num3 = 1956666444; - num4 = num18; - int num19 = num4 + num3; - int num20 = num4 & num3; - switch (num19 - (num20 + num20)) + for (int i = imGuiListClipperPtr.DisplayStart; i < imGuiListClipperPtr.DisplayEnd; i++) { - case 0: - num = 1956666446; - break; - case 1: - return; - case 2: - UiThemeUtils.EmptyState(FontAwesomeIcon.Book, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1452417515)); - num = 1956666445; - break; - } - } - case 9: - { - IDisposable disposable = _202B_200D_200E_206A_202D_202B_206D_202C_206E_206D_202E_200B_206F_206A_202D_206A_200B_202D_202A_202E_206B_200F_202C_206E_202A_206D_200D_202B_202E_200F_200C_200D_202D_206A_206A_200E_202A_202C_202E_200C_202E(_206A_202A_202E_202E_206E_200F_206D_202A_206D_200C_206A_202E_200F_200D_202D_206A_206A_202C_206C_202E_202C_200B_202E_202E_200D_206A_202B_206F_206A_200D_206C_200F_206F_200F_200F_206F_206E_200D_200E_202C_202E(_206E_206B_206E_202B_202B_206B_206A_200D_206F_200E_202B_200F_206F_206B_200F_202B_200C_202C_202C_202B_202D_206C_200F_202D_200F_206E_202D_206A_206D_200E_202B_200E_200D_200F_206D_206A_206F_206D_202B_202B_202E(_pluginInterface))); - float x; - try - { - x = _200E_200D_200C_200E_202C_206A_200C_202B_202A_206E_206F_206C_206A_200D_202D_202D_206E_202D_200C_206F_202D_202A_202A_202E_206E_200E_200D_202B_206B_200B_200F_206B_206E_206B_200D_202D_202E_206A_200E_206E_202E((ImU8String)_206C_200F_206D_202A_206D_206F_206A_206A_202A_202A_202A_206B_202C_200F_206F_206E_200D_200B_202A_200E_202D_206D_206B_202B_200B_200F_206A_206F_200F_206D_200E_202E_202C_200B_200E_202A_202A_200B_200C_200F_202E(FontAwesomeIcon.Check), false, -1f).X; - } - finally - { - num = ((disposable == null) ? 1763295843 : 1763295840); - while (true) + if (DrawFlatRow(_flatRows[i], x)) { - int num5 = num; - num3 = 1763295841; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 0: - num = 1763295840; - break; - case 2: - goto end_IL_032d; - case 1: - _200E_206C_200C_206A_206A_206E_200E_202C_206E_202B_202B_206D_202C_206B_206D_206D_206C_200B_206A_202A_206D_202C_202B_206E_202D_200F_206A_200F_202C_202C_202C_202C_200D_200B_206B_202D_206B_202E_200E_202D_202E(disposable); - num = 1763295843; - break; - } - continue; - end_IL_032d: - break; + flag2 = true; } } - float fontGlobalScale = _206D_206F_202D_202B_200C_206A_206C_206E_202D_202D_206E_200E_200E_202E_202A_202A_202D_206A_200B_206A_206F_202B_200D_202D_200F_202B_202B_202E_202D_206B_206A_200F_200F_200F_200E_202D_206A_206F_202D_202E_202E().FontGlobalScale; - using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1895196101), 3, ImGuiTableFlags.NoSavedSettings | ImGuiTableFlags.ScrollY); - num = ((!(!tableDisposable)) ? (-587254794) : (-587254793)); - while (true) - { - int num8 = num; - num3 = -587254794; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_03f2; - case 1: - return; - case 0: - { - _200D_202D_202C_206E_202C_200B_202C_202A_206D_200D_206F_200B_202C_206F_200B_200B_200E_200B_202B_206A_200E_206C_200D_206A_200B_202B_200E_206B_202E_202A_200C_200F_206C_206B_202C_206C_200D_206C_206F_200C_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-267283137), ImGuiTableColumnFlags.NoHide, 0f, 0u); - _200D_202D_202C_206E_202C_200B_202C_202A_206D_200D_206F_200B_202C_206F_200B_200B_200E_200B_202B_206A_200E_206C_200D_206A_200B_202B_200E_206B_202E_202A_200C_200F_206C_206B_202C_206C_200D_206C_206F_200C_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(406119027), ImGuiTableColumnFlags.WidthFixed, 120f * fontGlobalScale, 0u); - _200D_202D_202C_206E_202C_200B_202C_202A_206D_200D_206F_200B_202C_206F_200B_200B_200E_200B_202B_206A_200E_206C_200D_206A_200B_202B_200E_206B_202E_202A_200C_200F_206C_206B_202C_206C_200D_206C_206F_200C_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(211501148), ImGuiTableColumnFlags.WidthFixed, 120f * fontGlobalScale, 0u); - _206E_202C_206D_200F_200F_202C_206C_206B_206B_206B_200C_202B_200D_206D_206A_206D_206E_200C_202B_206A_200D_200C_202E_200B_206E_206D_200F_202D_200F_200C_200E_206E_206E_206C_202B_206E_206A_202A_202E_200E_202E(); - float num9 = _202D_200D_206D_206F_202A_206E_202D_200C_200D_200F_200F_200E_202B_206A_200C_206A_200D_200C_200D_202E_206E_200D_202A_200E_202A_206C_200B_200C_200C_200B_206C_200E_200C_206A_200E_202C_206F_202B_200B_206D_202E(); - bool flag = false; - ImGuiListClipper* intPtr = _200D_200E_202E_202B_206A_202A_206B_200D_200B_202A_200C_206F_206A_206D_206D_202B_200D_206D_200C_206F_202D_200F_206A_206A_206E_202E_200C_200C_202A_206A_206E_206E_202A_200C_206E_200E_202C_202C_200E_206E_202E(); - _202C_202E_200B_206A_200D_200F_200F_200F_200C_202A_202A_200E_200E_200F_202A_202B_202D_206E_202A_200C_206B_200F_206E_200E_202A_200D_206A_202E_202E_202D_206A_202A_200E_200E_200B_206F_202D_202E_206A_202B_202E(intPtr, _flatRows.Count, num9); - ImGuiListClipperPtr imGuiListClipperPtr = intPtr; - try - { - num = 987035593; - while (true) - { - int num10 = num; - num3 = 987035599; - num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - flag = true; - num = 987035597; - break; - case 1: - num11 = imGuiListClipperPtr.DisplayStart; - num = 987035596; - break; - case 6: - num = (imGuiListClipperPtr.Step() ? 987035598 : 987035592); - break; - case 3: - num = ((num11 < imGuiListClipperPtr.DisplayEnd) ? 987035599 : 987035593); - break; - case 2: - { - int num12 = num11; - num3 = 1; - num4 = num12; - int num13 = num4 ^ num3; - int num14 = num4 & num3; - num11 = num13 + (num14 + num14); - num = 987035596; - break; - } - case 5: - num = 987035593; - break; - case 0: - num = ((!DrawFlatRow(_flatRows[num11], x)) ? 987035597 : 987035595); - break; - case 7: - goto end_IL_049f; - } - continue; - end_IL_049f: - break; - } - } - finally - { - imGuiListClipperPtr.Destroy(); - } - num = ((!flag) ? (-545525042) : (-545525043)); - while (true) - { - int num15 = num; - num3 = -545525044; - num4 = num15; - int num16 = num4 + num3; - int num17 = num4 & num3; - switch (num16 - (num17 + num17)) - { - case 0: - num = -545525043; - break; - case 1: - RebuildFlatRows(); - num = -545525042; - break; - case 2: - return; - } - } - } - } - continue; - IL_03f2: - num = -587254793; - } } - IL_0267: - flag2 = (byte)num23 != 0; - num = ((!flag2) ? 1868955396 : 1868955402); - break; } + finally + { + imGuiListClipperPtr.Destroy(); + } + if (flag2) + { + RebuildFlatRows(); + } + return; + } + if (!flag) + { + UiThemeUtils.EmptyState(FontAwesomeIcon.Book, "No quest or category matches your search."); } } - [MethodImpl(MethodImplOptions.NoInlining)] private bool DrawFlatRow(FlatRow row, float supportIconSpacing) { - _200F_206F_200C_202D_206D_200C_202E_200D_206A_206D_202A_206D_206B_206E_206B_202C_206E_202E_202E_202D_206D_200D_202A_202C_200D_206A_206C_206A_202A_200E_200C_200C_206D_206B_200F_206E_206C_200C_202B_202E(); - _206A_200E_206E_202D_206A_200F_206D_202D_200B_202B_206F_206A_206D_202C_202B_200F_206A_202D_206E_200B_206A_206D_202C_206B_200D_200E_200C_202E_200D_206E_202C_206D_202C_206F_206B_200D_200B_202B_206D_202B_202E(); + ImGui.TableNextRow(); + ImGui.TableNextColumn(); bool result = false; - float num = (float)row.Depth * _206D_206E_200D_202D_206B_200F_202C_200B_200E_206C_206B_200C_202D_202A_206A_206F_206A_206E_206A_206A_200B_200B_202C_206D_200C_206F_202B_202E_200B_200E_206A_206A_202E_200C_200E_206D_206C_206E_202D_202B_202E().IndentSpacing; - int num2 = ((row.Type != RowType.Quest) ? 468966862 : 468966852); - (RowType, int) item = default((RowType, int)); - bool flag = default(bool); - while (true) + float num = (float)row.Depth * ImGui.GetStyle().IndentSpacing; + if (row.Type == RowType.Quest) { - int num3 = num2; - int num4 = 468966860; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 4: - _expandedGroups.Remove(item); - num2 = 468966858; - break; - case 8: - { - _206D_200D_206E_206C_206A_206B_200C_200C_200B_202A_206B_200E_202B_200B_202D_200D_202A_206F_200E_202E_206F_200C_206F_202E_206A_202A_206B_206A_202E_200F_200C_206E_206A_206E_206F_206B_200E_202D_202A_200E_202E(_200C_206B_206F_206E_200D_206D_202C_200D_200D_200E_200F_202A_200B_206F_202A_206A_206D_200F_200E_200F_200D_206E_206C_206D_206B_206F_202D_202E_200D_206F_200C_206F_202B_206C_202C_202E_206F_206E_206B_206C_202E() + num); - DrawQuestName(row.Quest, out var expansionHovered); - _questRegistry.TryGetQuest(row.Quest.QuestId, out Quest quest); - DrawQuestTooltipAndContextMenu(row.Quest, quest, expansionHovered); - _206A_200E_206E_202D_206A_200F_206D_202D_200B_202B_206F_206A_206D_202C_202B_200F_206A_202D_206E_200B_206A_206D_202C_206B_200D_200E_200C_202E_200D_206E_202C_206D_202C_206F_206B_200D_200B_202B_206D_202B_202E(); - DrawQuestSupportStatus(row.Quest, supportIconSpacing); - _206A_200E_206E_202D_206A_200F_206D_202D_200B_202B_206F_206A_206D_202C_202B_200F_206A_202D_206E_200B_206A_206D_202C_206B_200D_200E_200C_202E_200D_206E_202C_206D_202C_206F_206B_200D_200B_202B_206D_202B_202E(); - DrawQuestCompletionStatus(row.Quest); - num2 = 468966861; - break; - } - case 1: - return result; - case 5: - _206A_200E_206E_202D_206A_200F_206D_202D_200B_202B_206F_206A_206D_202C_202B_200F_206A_202D_206E_200B_206A_206D_202C_206B_200D_200E_200C_202E_200D_206E_202C_206D_202C_206F_206B_200D_200B_202B_206D_202B_202E(); - UiThemeUtils.DrawTrackerCount(row.Counts.FormattedSupported, row.Counts.IsSupportedComplete, row.Counts.Total == 0); - _206A_200E_206E_202D_206A_200F_206D_202D_200B_202B_206F_206A_206D_202C_202B_200F_206A_202D_206E_200B_206A_206D_202C_206B_200D_200E_200C_202E_200D_206E_202C_206D_202C_206F_206B_200D_200B_202B_206D_202B_202E(); - UiThemeUtils.DrawTrackerCount(row.Counts.FormattedCompleted, row.Counts.IsCompletedComplete, row.Counts.Obtainable == 0); - num2 = 468966861; - break; - case 2: - { - item = (row.Type, row.GroupIndex); - flag = _expandedGroups.Contains(item); - _206D_200D_206E_206C_206A_206B_200C_200C_200B_202A_206B_200E_202B_200B_202D_200D_202A_206F_200E_202E_206F_200C_206F_202E_206A_202A_206B_206A_202E_200F_200C_206E_206A_206E_206F_206B_200E_202D_202A_200E_202E(_200C_206B_206F_206E_200D_206D_202C_200D_200D_200E_200F_202A_200B_206F_202A_206A_206D_200F_200E_200F_200D_206E_206C_206D_206B_206F_202D_202E_200D_206F_200C_206F_202B_206C_202C_202E_206F_206E_206B_206C_202E() + num); - UiThemeUtils.DrawTrackerGroupCaret(_206A_202A_202E_202E_206E_200F_206D_202A_206D_200C_206A_202E_200F_200D_202D_206A_206A_202C_206C_202E_202C_200B_202E_202E_200D_206A_202B_206F_206A_200D_206C_200F_206F_200F_200F_206F_206E_200D_200E_202C_202E(_206E_206B_206E_202B_202B_206B_206A_200D_206F_200E_202B_200F_206F_206B_200F_202B_200C_202C_202C_202B_202D_206C_200F_202D_200F_206E_202D_206A_206D_200E_202B_200E_200D_200F_206D_206A_206F_206D_202B_202B_202E(_pluginInterface)), flag); - _202C_200D_202B_200D_206B_200E_206D_202B_202C_206C_202D_200E_202B_206E_202A_206A_206E_202A_206C_206D_206C_206B_202A_206E_206F_202A_200C_206B_202A_206A_200F_206E_202A_206A_202E_200C_200C_200F_200E_200C_202E(); - ImU8String imU8String = new ImU8String(5, 2); - imU8String.AppendFormatted(row.Label); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2023271148)); - imU8String.AppendFormatted(row.GroupIndex); - num2 = ((!_206B_206E_202C_200C_202C_200C_202E_202B_206C_206C_206D_202C_200E_202B_200F_202A_206E_206F_200B_200E_206E_206C_202D_200B_202A_202D_200C_206C_206C_200D_206F_206C_202D_200E_206D_206F_200D_202D_202A_200D_202E(imU8String, false, ImGuiSelectableFlags.None, default(Vector2))) ? 468966857 : 468966860); - break; - } - case 0: - num2 = ((!flag) ? 468966863 : 468966856); - break; - case 3: - _expandedGroups.Add(item); - num2 = 468966858; - break; - case 6: - result = true; - num2 = 468966857; - break; - case 7: - num2 = 468966852; - break; - } + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + num); + DrawQuestName(row.Quest, out var expansionHovered); + _questRegistry.TryGetQuest(row.Quest.QuestId, out Quest quest); + DrawQuestTooltipAndContextMenu(row.Quest, quest, expansionHovered); + ImGui.TableNextColumn(); + DrawQuestSupportStatus(row.Quest, supportIconSpacing); + ImGui.TableNextColumn(); + DrawQuestCompletionStatus(row.Quest); } + else + { + (RowType, int) item = (row.Type, row.GroupIndex); + bool flag = _expandedGroups.Contains(item); + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + num); + UiThemeUtils.DrawTrackerGroupCaret(_pluginInterface.UiBuilder.IconFontFixedWidthHandle, flag); + ImGui.SameLine(); + ImU8String label = new ImU8String(5, 2); + label.AppendFormatted(row.Label); + label.AppendLiteral("##grp"); + label.AppendFormatted(row.GroupIndex); + if (ImGui.Selectable(label)) + { + if (flag) + { + _expandedGroups.Remove(item); + } + else + { + _expandedGroups.Add(item); + } + result = true; + } + ImGui.TableNextColumn(); + UiThemeUtils.DrawTrackerCount(row.Counts.FormattedSupported, row.Counts.IsSupportedComplete, row.Counts.Total == 0); + ImGui.TableNextColumn(); + UiThemeUtils.DrawTrackerCount(row.Counts.FormattedCompleted, row.Counts.IsCompletedComplete, row.Counts.Obtainable == 0); + } + return result; } - [MethodImpl(MethodImplOptions.NoInlining)] private static void DrawQuestName(IQuestInfo questInfo, out bool expansionHovered) { expansionHovered = false; - int num = ((questInfo.Expansion == (EExpansionVersion)255) ? 793425820 : 793425818); - while (true) + if (questInfo.Expansion != (EExpansionVersion)255) { - int num2 = num; - int num3 = 793425816; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + ImGui.PushFont(UiBuilder.MonoFont); + ImGui.PushStyleColor(ImGuiCol.Text, questInfo.Expansion.GetExpansionColor()); + ImGui.TextUnformatted(questInfo.Expansion.ToAbbreviation().PadRight(3)); + ImGui.PopStyleColor(); + ImGui.PopFont(); + if (ImGui.IsItemHovered()) { - case 0: - num = 793425818; - break; - case 1: - _202C_200D_202B_200D_206B_200E_206D_202B_202C_206C_202D_200E_202B_206E_202A_206A_206E_202A_206C_206D_206C_206B_202A_206E_206F_202A_200C_206B_202A_206A_200F_206E_202A_206A_202E_200C_200C_200F_200E_200C_202E(); - num = 793425820; - break; - case 2: - _206F_206F_206D_202C_202D_200C_202A_200E_206B_206C_200D_206A_200E_202A_206E_202D_206B_202A_202D_206C_206A_200D_200C_206E_200C_206B_206C_202B_200F_202A_202D_200D_200E_202B_206B_200C_200D_202E_202D_200D_202E(_202C_202A_206C_200D_202A_206F_206B_202D_202E_202C_200D_202C_202B_202D_202A_200E_206B_200C_206D_206F_202B_200C_206C_200F_200B_200E_200D_202B_202D_202E_202E_206A_202B_200F_202C_200F_202B_202D_202B_202E()); - _206F_202B_206B_206F_200E_206A_200D_202B_202C_206C_200E_200E_200B_200E_200E_206B_206F_206A_202D_206B_206C_206F_200B_200B_202A_206A_202D_202C_206D_202E_206E_202B_200B_206B_202E_202A_206E_206F_200B_202E_202E(ImGuiCol.Text, _206D_200F_202D_202A_200E_206C_202B_202D_202D_206F_202E_206D_206B_202A_202E_200B_202B_206B_206A_206F_200B_202B_202E_202B_202B_206B_200D_202E_202D_206C_206F_202C_202A_206D_200E_202E_200D_200B_202E_202D_202E(questInfo.Expansion)); - _202B_202D_206F_206E_202C_200F_200D_202D_206E_206C_206C_200F_200C_202C_202A_206B_202E_202B_206E_200F_200B_206F_200E_206E_202C_200B_202E_202E_206E_206D_206F_206D_200D_206F_200B_202E_206E_206D_206D_206F_202E((ImU8String)_206A_200E_206F_206A_200D_200F_206F_200C_206D_206A_206F_206B_206A_206F_202D_200E_200B_206F_206E_202D_200F_202D_202E_206B_200D_200D_200F_202B_200C_200C_200E_200D_202B_200D_206A_202E_206F_202E_200E_200D_202E(_206F_200D_202C_202E_206B_200F_200B_200F_206D_206A_200B_202B_202A_200E_202B_200B_202D_200C_200C_206C_200C_202E_206B_202B_200C_206C_202E_206F_202D_206D_202B_200C_206D_200D_202A_200C_200F_202D_206B_206C_202E(questInfo.Expansion), 3)); - _202A_200E_202B_200F_202B_202E_200C_202B_202D_202B_206A_200B_206F_206D_202C_206A_202E_206C_206D_206A_200D_200E_200D_202D_206D_200E_206C_206D_206E_206C_200F_200D_206C_206E_202E_200D_206E_206E_202A_202B_202E(); - _202D_200C_202B_200E_200E_206E_200B_206B_200F_202D_200D_206D_206D_200B_200F_206F_206C_206B_202C_200E_200E_206B_202E_200C_200E_206F_200E_206E_200C_206B_202A_200E_200F_200B_206D_206D_200E_200F_202A_206D_202E(); - num = ((!_206E_202C_202B_200E_200E_200E_206D_202A_200B_200F_200D_206B_200D_200B_200D_206E_206C_206A_206E_200D_206A_202A_202B_206F_202B_206A_202C_206C_200D_202A_202A_202B_202D_206E_200D_202E_200E_202C_206E_200C_202E()) ? 793425817 : 793425819); - break; - case 3: expansionHovered = true; - num = 793425817; - break; - case 4: - { - ImU8String imU8String = new ImU8String(3, 2); - imU8String.AppendFormatted(questInfo.Name); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2002137365)); - imU8String.AppendFormatted(questInfo.QuestId); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - _200F_200D_200E_202B_206C_206B_200F_200E_200F_200D_202B_202C_206D_206C_200E_200C_200D_200F_200D_206A_202D_206A_206F_202D_200E_206A_206C_200D_202C_200B_206B_206E_200E_202A_200D_200F_202D_202D_200B_200C_202E(imU8String, ImGuiTreeNodeFlags.NoTreePushOnOpen | ImGuiTreeNodeFlags.Leaf | ImGuiTreeNodeFlags.SpanFullWidth, default(ImU8String)); - return; - } } + ImGui.SameLine(); } + ImU8String id = new ImU8String(3, 2); + id.AppendFormatted(questInfo.Name); + id.AppendLiteral(" ("); + id.AppendFormatted(questInfo.QuestId); + id.AppendLiteral(")"); + ImGui.TreeNodeEx(id, ImGuiTreeNodeFlags.NoTreePushOnOpen | ImGuiTreeNodeFlags.Leaf | ImGuiTreeNodeFlags.SpanFullWidth); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawQuestTooltipAndContextMenu(IQuestInfo questInfo, Quest? quest, bool expansionHovered) { - int num = ((!(_206E_202C_202B_200E_200E_200E_206D_202A_200B_200F_200D_206B_200D_200B_200D_206E_206C_206A_206E_200D_206A_202A_202B_206F_202B_206A_202C_206C_200D_202A_202A_202B_202D_206E_200D_202E_200E_202C_206E_200C_202E() || expansionHovered)) ? 982291073 : 982291077); - while (true) + if ((ImGui.IsItemHovered() || expansionHovered) && questInfo.Expansion != (EExpansionVersion)255) { - int num2 = num; - int num3 = 982291076; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - _202E_206D_202B_206A_206E_200D_206D_202B_200F_202C_200C_200F_206E_200E_200F_202C_206E_206F_206C_206E_202D_206E_200F_200D_206D_202B_206B_202E_200C_200D_200C_200B_202B_202B_200E_202C_200D_206C_200E_202B_202E(); - _206F_202B_206B_206F_200E_206A_200D_202B_202C_206C_200E_200E_200B_200E_200E_206B_206F_206A_202D_206B_206C_206F_200B_200B_202A_206A_202D_202C_206D_202E_206E_202B_200B_206B_202E_202A_206E_206F_200B_202E_202E(ImGuiCol.Text, _206D_200F_202D_202A_200E_206C_202B_202D_202D_206F_202E_206D_206B_202A_202E_200B_202B_206B_206A_206F_200B_202B_202E_202B_202B_206B_200D_202E_202D_206C_206F_202C_202A_206D_200E_202E_200D_200B_202E_202D_202E(questInfo.Expansion)); - _202B_202D_206F_206E_202C_200F_200D_202D_206E_206C_206C_200F_200C_202C_202A_206B_202E_202B_206E_200F_200B_206F_200E_206E_202C_200B_202E_202E_206E_206D_206F_206D_200D_206F_200B_202E_206E_206D_206D_206F_202E((ImU8String)_202D_206E_200E_202E_206E_206B_206D_202B_200F_202E_206D_206F_206D_200D_206A_200B_202B_202C_200B_200C_200C_206A_206C_206E_200D_206D_206C_200F_202D_200B_200E_202C_206E_200E_206F_206C_206B_200C_200E_202C_202E(questInfo.Expansion)); - _202A_200E_202B_200F_202B_202E_200C_202B_202D_202B_206A_200B_206F_206D_202C_206A_202E_206C_206D_206A_200D_200E_200D_202D_206D_200E_206C_206D_206E_206C_200F_200D_206C_206E_202E_200D_206E_206E_202A_202B_202E(); - _200B_200B_200F_202A_200E_200D_200F_202E_202B_202C_206D_200B_206B_202B_200C_200C_206A_206D_202A_206A_206E_206A_206F_206C_202E_206D_202C_202D_202E_202D_206A_206B_206A_200B_200F_206C_206E_206C_200C_206E_202E(); - _questTooltipComponent.Draw(questInfo); - _202B_206A_202C_200F_206C_206A_202C_202D_200B_202C_202C_202B_202B_200F_206F_206A_202A_202D_200F_202C_202D_200D_206A_206D_206C_202B_200D_202D_206E_202E_206B_206E_202C_206D_206E_200F_202B_200D_202D_202B_202E(); - num = 982291076; - break; - case 5: - num = ((!_206E_202C_202B_200E_200E_200E_206D_202A_200B_200F_200D_206B_200D_200B_200D_206E_206C_206A_206E_200D_206A_202A_202B_206F_202B_206A_202C_206C_200D_202A_202A_202B_202D_206E_200D_202E_200E_202C_206E_200C_202E()) ? 982291076 : 982291079); - break; - case 0: - _questJournalUtils.ShowContextMenu(questInfo, quest, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2011424548)); - return; - case 3: - num = ((questInfo.Expansion != (EExpansionVersion)255) ? 982291076 : 982291074); - break; - case 1: - num = ((questInfo.Expansion == (EExpansionVersion)255) ? 982291073 : 982291078); - break; - case 6: - _questTooltipComponent.Draw(questInfo); - num = 982291076; - break; - case 4: - num = 982291077; - break; - } + ImGui.BeginTooltip(); + ImGui.PushStyleColor(ImGuiCol.Text, questInfo.Expansion.GetExpansionColor()); + ImGui.TextUnformatted(questInfo.Expansion.ToFriendlyString()); + ImGui.PopStyleColor(); + ImGui.Separator(); + _questTooltipComponent.Draw(questInfo); + ImGui.EndTooltip(); } + else if (ImGui.IsItemHovered() && questInfo.Expansion == (EExpansionVersion)255) + { + _questTooltipComponent.Draw(questInfo); + } + _questJournalUtils.ShowContextMenu(questInfo, quest, "QuestJournalComponent"); } private void DrawQuestSupportStatus(IQuestInfo questInfo, float supportIconSpacing) { - float num = _202D_206E_202E_200E_202E_202A_200B_200B_206D_202D_206C_200F_206D_200D_202B_202C_200D_200B_200F_200E_202E_202A_206B_202A_202B_206D_200B_200C_202C_200F_200F_202B_206F_206A_202C_206B_206A_206D_206C_200F_202E() / 2f - supportIconSpacing; - _206D_200D_206E_206C_206A_206B_200C_200C_200B_202A_206B_200E_202B_200B_202D_200D_202A_206F_200E_202E_206F_200C_206F_202E_206A_202A_206B_206A_202E_200F_200C_206E_206A_206E_206F_206B_200E_202D_202A_200E_202E(_200C_206B_206F_206E_200D_206D_202C_200D_200D_200E_200F_202A_200B_206F_202A_206A_206D_200F_200E_200F_200D_206E_206C_206D_206B_206F_202D_202E_200D_206F_200C_206F_202B_206C_202C_202E_206F_206E_206B_206C_202E() + num); - CachedQuestDisplay value; - int num2 = ((!_displayCache.TryGetValue(questInfo.QuestId, out value)) ? (-533488192) : (-533488189)); - while (true) + float num = ImGui.GetColumnWidth() / 2f - supportIconSpacing; + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + num); + if (_displayCache.TryGetValue(questInfo.QuestId, out var value)) { - int num3 = num2; - int num4 = -533488190; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 2: - _uiUtils.ChecklistItem(string.Empty, complete: false); - return; - case 1: - _uiUtils.ChecklistItem(string.Empty, value.SupportColor, value.SupportIcon); - return; - case 0: - goto IL_00b7; - } - continue; - IL_00b7: - num2 = -533488189; + _uiUtils.ChecklistItem(string.Empty, value.SupportColor, value.SupportIcon); + } + else + { + _uiUtils.ChecklistItem(string.Empty, complete: false); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawQuestCompletionStatus(IQuestInfo questInfo) { - CachedQuestDisplay value; - int num = ((!_displayCache.TryGetValue(questInfo.QuestId, out value)) ? (-1337565764) : (-1337565763)); - while (true) + if (_displayCache.TryGetValue(questInfo.QuestId, out var value)) { - int num2 = num; - int num3 = -1337565764; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0055; - case 0: - _uiUtils.ChecklistItem(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(896879528), UiThemeUtils.StatusUnobtainable, FontAwesomeIcon.Question); - return; - case 1: - _uiUtils.ChecklistItem(value.CompletionText, value.CompletionColor, value.CompletionIcon); - return; - } - continue; - IL_0055: - num = -1337565763; + _uiUtils.ChecklistItem(value.CompletionText, value.CompletionColor, value.CompletionIcon); + } + else + { + _uiUtils.ChecklistItem("Unknown", UiThemeUtils.StatusUnobtainable, FontAwesomeIcon.Question); } } private static bool IsQuestExpired(IQuestInfo questInfo) { DateTime? seasonalQuestExpiry = questInfo.SeasonalQuestExpiry; - int num = ((!seasonalQuestExpiry.HasValue) ? 1979033601 : 1979033603); - DateTime valueOrDefault = default(DateTime); - while (true) + if (seasonalQuestExpiry.HasValue) { - int num2 = num; - int num3 = 1979033600; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1979033603; - break; - case 1: - return false; - case 2: - return DateTime.UtcNow > ExpiryUtils.NormalizeExpiry(valueOrDefault); - case 3: - valueOrDefault = seasonalQuestExpiry.GetValueOrDefault(); - num = 1979033602; - break; - } + DateTime valueOrDefault = seasonalQuestExpiry.GetValueOrDefault(); + return DateTime.UtcNow > ExpiryUtils.NormalizeExpiry(valueOrDefault); } + return false; } private void RebuildFlatRows() @@ -1607,36 +446,9 @@ internal sealed class QuestJournalComponent { continue; } - using List<IQuestInfo>.Enumerator enumerator4 = genre.Quests.GetEnumerator(); - int num = -2141524933; - while (true) + foreach (IQuestInfo quest in genre.Quests) { - int num2 = num; - int num3 = -2141524934; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - num = (enumerator4.MoveNext() ? (-2141524936) : (-2141524935)); - break; - case 2: - { - IQuestInfo current4 = enumerator4.Current; - list.Add(new FlatRow(RowType.Quest, 3, 0, current4, string.Empty, new JournalCounts())); - num = -2141524933; - break; - } - case 0: - num = -2141524933; - break; - case 3: - goto end_IL_01a5; - } - continue; - end_IL_01a5: - break; + list.Add(new FlatRow(RowType.Quest, 3, 0, quest, string.Empty, new JournalCounts())); } } } @@ -1656,111 +468,35 @@ internal sealed class QuestJournalComponent private FilteredSection FilterSection(JournalData.Section section, FilterConfiguration filter) { - int num = ((!_configuration.General.HideSeasonalEventsFromJournalProgress) ? 731985677 : 731985672); - IEnumerable<FilteredCategory> source = default(IEnumerable<FilteredCategory>); - IEnumerable<JournalData.Category> source2 = default(IEnumerable<JournalData.Category>); - while (true) + IEnumerable<JournalData.Category> enumerable; + if (!_configuration.General.HideSeasonalEventsFromJournalProgress || !_journalData.SeasonalEventsCategoryId.HasValue) { - int num2 = num; - int num3 = 731985673; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - IEnumerable<JournalData.Category> enumerable; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 5: - source = source2.Select((JournalData.Category category) => FilterCategory(category, filter, section)); - num = 731985674; - continue; - case 1: - num = (_journalData.SeasonalEventsCategoryId.HasValue ? 731985675 : 731985677); - continue; - case 0: - num = 731985672; - continue; - case 3: - return new FilteredSection(section, source.Where((FilteredCategory x) => x.Genres.Count > 0).ToList()); - case 4: - { - IEnumerable<JournalData.Category> categories = section.Categories; - enumerable = categories; - break; - } - case 6: - source = source2.Select((JournalData.Category x) => FilterCategory(x, filter.WithoutName(), section)); - num = 731985674; - continue; - case 2: - enumerable = section.Categories.Where((JournalData.Category c) => c.Id != _journalData.SeasonalEventsCategoryId.Value); - break; - } - source2 = enumerable; - num = ((!IsCategorySectionGenreMatch(filter, section.Name)) ? 731985676 : 731985679); + IEnumerable<JournalData.Category> categories = section.Categories; + enumerable = categories; } + else + { + enumerable = section.Categories.Where((JournalData.Category c) => c.Id != _journalData.SeasonalEventsCategoryId.Value); + } + IEnumerable<JournalData.Category> source = enumerable; + return new FilteredSection(Categories: ((!IsCategorySectionGenreMatch(filter, section.Name)) ? source.Select((JournalData.Category category) => FilterCategory(category, filter, section)) : source.Select((JournalData.Category x) => FilterCategory(x, filter.WithoutName(), section))).Where((FilteredCategory x) => x.Genres.Count > 0).ToList(), Section: section); } private FilteredCategory FilterCategory(JournalData.Category category, FilterConfiguration filter, JournalData.Section? parentSection = null) { - int num = ((!IsCategorySectionGenreMatch(filter, category.Name)) ? (-1684269347) : (-1684269346)); - IEnumerable<FilteredGenre> source = default(IEnumerable<FilteredGenre>); - while (true) - { - int num2 = num; - int num3 = -1684269348; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = -1684269346; - break; - case 0: - return new FilteredCategory(category, source.Where((FilteredGenre x) => x.Quests.Count > 0).ToList()); - case 1: - source = category.Genres.Select((JournalData.Genre genre) => FilterGenre(genre, filter, parentSection)); - num = -1684269348; - break; - case 2: - source = category.Genres.Select((JournalData.Genre x) => FilterGenre(x, filter.WithoutName(), parentSection)); - num = -1684269348; - break; - } - } + IEnumerable<FilteredGenre> source = ((!IsCategorySectionGenreMatch(filter, category.Name)) ? category.Genres.Select((JournalData.Genre genre) => FilterGenre(genre, filter, parentSection)) : category.Genres.Select((JournalData.Genre x) => FilterGenre(x, filter.WithoutName(), parentSection))); + return new FilteredCategory(category, source.Where((FilteredGenre x) => x.Quests.Count > 0).ToList()); } private FilteredGenre FilterGenre(JournalData.Genre genre, FilterConfiguration filter, JournalData.Section? parentSection = null) { bool hideSeasonalEventsFromJournalProgress = _configuration.General.HideSeasonalEventsFromJournalProgress; IEnumerable<IQuestInfo> source = ((!IsCategorySectionGenreMatch(filter, genre.Name)) ? genre.Quests.Where((IQuestInfo x) => IsQuestMatch(filter, x)) : genre.Quests.Where((IQuestInfo x) => IsQuestMatch(filter.WithoutName(), x))); - int num = ((!hideSeasonalEventsFromJournalProgress) ? 2099015948 : 2099015949); - while (true) + if (hideSeasonalEventsFromJournalProgress && _journalData.SeasonalEventsCategoryId.HasValue && genre.CategoryId == _journalData.SeasonalEventsCategoryId.Value) { - int num2 = num; - int num3 = 2099015948; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = 2099015949; - break; - case 4: - source = source.Where((IQuestInfo q) => !IsSeasonal(q)); - num = 2099015948; - break; - case 0: - return new FilteredGenre(genre, source.ToList()); - case 2: - num = ((genre.CategoryId != _journalData.SeasonalEventsCategoryId.Value) ? 2099015948 : 2099015944); - break; - case 1: - num = ((!_journalData.SeasonalEventsCategoryId.HasValue) ? 2099015948 : 2099015950); - break; - } + source = source.Where((IQuestInfo q) => !IsSeasonal(q)); } + return new FilteredGenre(genre, source.ToList()); } internal void RefreshCounts() @@ -1768,13 +504,12 @@ internal sealed class QuestJournalComponent StartRefresh(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void StartRefresh() { _refreshHideSeasonal = _configuration.General.HideSeasonalEventsFromJournalProgress; _refreshGenreIndex = 0; _refreshDisplayIndex = -1; - _200F_200F_206D_200C_206F_202A_206B_206B_200E_202B_200B_200F_202E_206E_206B_206C_202C_202B_200F_200F_206F_206D_200D_206F_206E_202C_202A_206E_202E_202B_200F_202E_200D_202E_206A_202D_200D_200E_200C_202E_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1651409053), new object[1] { _refreshHideSeasonal }); + _logger.LogDebug("Starting incremental journal refresh. HideSeasonalEventsFromJournalProgress={Hide}", _refreshHideSeasonal); } private void TickRefresh() @@ -1782,629 +517,236 @@ internal sealed class QuestJournalComponent if (_refreshGenreIndex >= 0) { List<JournalData.Genre> genres = _journalData.Genres; - int refreshGenreIndex = _refreshGenreIndex; - int num = 20; - int num2 = refreshGenreIndex; - int num3 = num2 ^ num; - int num4 = num2 & num; - int num5 = _206E_206D_202A_202C_206E_200F_202B_200C_200C_202C_206B_202B_200D_202E_200C_200B_200E_206F_202D_206F_200E_202A_200B_200E_200E_202A_202B_202E_200B_202C_200D_200D_202A_202B_202C_200D_202E_206A_206F_206F_202E(num3 + (num4 + num4), genres.Count); - int num6 = _refreshGenreIndex; - Quest quest = default(Quest); - IQuestInfo current = default(IQuestInfo); - int num11; - while (num6 < num5) + int num = Math.Min(_refreshGenreIndex + 20, genres.Count); + for (int i = _refreshGenreIndex; i < num; i++) { - JournalData.Genre genre = genres[num6]; + JournalData.Genre genre = genres[i]; List<IQuestInfo> obj = ((_refreshHideSeasonal && _journalData.SeasonalEventsCategoryId.HasValue && genre.CategoryId == _journalData.SeasonalEventsCategoryId.Value) ? genre.Quests.Where((IQuestInfo q) => !IsSeasonal(q)).ToList() : genre.Quests.ToList()); - int num7 = 0; - int num8 = 0; - int num9 = 0; - int num10 = 0; - using (List<IQuestInfo>.Enumerator enumerator = obj.GetEnumerator()) + int num2 = 0; + int num3 = 0; + int num4 = 0; + int num5 = 0; + foreach (IQuestInfo item in obj) { - num11 = -149263321; - while (true) + if (!_questFunctions.IsQuestRemoved(item.QuestId)) { - int num12 = num11; - num = -149263315; - num2 = num12; - int num13 = num2 + num; - int num14 = num2 & num; - switch (num13 - (num14 + num14)) + num3++; + if (_questRegistry.TryGetQuest(item.QuestId, out Quest quest) && !quest.Root.Disabled) { - case 9: - num11 = (_206A_200F_200C_206C_200D_206A_206A_206D_200B_202B_202C_206F_200D_206A_206E_206D_206C_202C_206E_202C_200F_206B_200C_200B_200C_202B_206B_200E_206C_206A_206D_206C_202A_206E_206D_202E_200B_200C_200E_202A_202E(quest.Root) ? (-149263318) : (-149263315)); - break; - case 2: - { - int num15 = num8; - num = 1; - num2 = num15; - int num16 = num2 ^ num; - int num17 = num2 & num; - num8 = num16 + (num17 + num17); - num11 = ((!_questRegistry.TryGetQuest(current.QuestId, out quest)) ? (-149263318) : (-149263324)); - break; + num2++; } - case 4: - { - int num22 = num9; - num = 1; - num2 = num22; - int num23 = num2 ^ num; - int num24 = num2 & num; - num9 = num23 + (num24 + num24); - num11 = -149263323; - break; - } - case 1: - { - int num19 = num10; - num = 1; - num2 = num19; - int num20 = num2 ^ num; - int num21 = num2 & num; - num10 = num20 + (num21 + num21); - num11 = -149263321; - break; - } - case 6: - num11 = -149263321; - break; - case 0: - { - int num18 = num7; - num = 1; - num2 = num18; - num7 = (num2 | num) + (num2 & num); - num11 = -149263318; - break; - } - case 8: - num11 = ((!_questFunctions.IsQuestComplete(current.QuestId)) ? (-149263321) : (-149263316)); - break; - case 3: - current = enumerator.Current; - num11 = (_questFunctions.IsQuestRemoved(current.QuestId) ? (-149263318) : (-149263313)); - break; - case 10: - num11 = (enumerator.MoveNext() ? (-149263314) : (-149263320)); - break; - case 7: - num11 = (_questFunctions.IsQuestUnobtainable(current.QuestId) ? (-149263323) : (-149263319)); - break; - case 5: - goto end_IL_00f5; - } - continue; - end_IL_00f5: - break; + } + if (!_questFunctions.IsQuestUnobtainable(item.QuestId)) + { + num4++; + } + if (_questFunctions.IsQuestComplete(item.QuestId)) + { + num5++; } } - _genreCounts[genre] = new JournalCounts(num7, num8, num9, num10); - int num25 = num6; - num = 1; - num2 = num25; - int num26 = num2 ^ num; - int num27 = num2 & num; - num6 = num26 + (num27 + num27); + _genreCounts[genre] = new JournalCounts(num2, num3, num4, num5); } - num11 = -89365687; - while (true) + _refreshGenreIndex = num; + if (_refreshGenreIndex >= genres.Count) { - int num28 = num11; - num = -89365688; - num2 = num28; - switch ((num2 | num) - (num2 & num)) - { - case 2: - _refreshGenreIndex = -1; - AggregateCategoriesAndSections(); - RebuildFlatRows(); - _refreshDisplayIndex = 0; - num11 = -89365688; - break; - case 0: - return; - case 3: - num11 = -89365687; - break; - case 1: - _refreshGenreIndex = num5; - num11 = ((_refreshGenreIndex < genres.Count) ? (-89365688) : (-89365686)); - break; - } + _refreshGenreIndex = -1; + AggregateCategoriesAndSections(); + RebuildFlatRows(); + _refreshDisplayIndex = 0; } } - if (_refreshDisplayIndex >= 0) + else if (_refreshDisplayIndex >= 0) { TickDisplayCache(); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void AggregateCategoriesAndSections() { _categoryCounts.Clear(); _sectionCounts.Clear(); - using (List<JournalData.Category>.Enumerator enumerator = _journalData.Categories.GetEnumerator()) + foreach (JournalData.Category category in _journalData.Categories) { - int num = -1263025259; - JournalData.Category current = default(JournalData.Category); - while (true) + if (!_refreshHideSeasonal || !_journalData.SeasonalEventsCategoryId.HasValue || category.Id != _journalData.SeasonalEventsCategoryId.Value) { - int num2 = num; - int num3 = -1263025263; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - { - List<JournalCounts> genreCountsForCategory = GetGenreCountsForCategory(current); - int available = genreCountsForCategory.Sum((JournalCounts x) => x.Available); - int total = genreCountsForCategory.Sum((JournalCounts x) => x.Total); - int obtainable = genreCountsForCategory.Sum((JournalCounts x) => x.Obtainable); - int completed = genreCountsForCategory.Sum((JournalCounts x) => x.Completed); - _categoryCounts[current] = new JournalCounts(available, total, obtainable, completed); - num = -1263025259; - break; - } - case 5: - current = enumerator.Current; - num = ((!_refreshHideSeasonal) ? (-1263025257) : (-1263025264)); - break; - case 3: - num = ((current.Id == _journalData.SeasonalEventsCategoryId.Value) ? (-1263025259) : (-1263025257)); - break; - case 4: - num = (enumerator.MoveNext() ? (-1263025260) : (-1263025261)); - break; - case 1: - num = ((!_journalData.SeasonalEventsCategoryId.HasValue) ? (-1263025257) : (-1263025262)); - break; - case 0: - num = -1263025259; - break; - case 2: - goto end_IL_0033; - } - continue; - end_IL_0033: - break; + List<JournalCounts> genreCountsForCategory = GetGenreCountsForCategory(category); + int available = genreCountsForCategory.Sum((JournalCounts x) => x.Available); + int total = genreCountsForCategory.Sum((JournalCounts x) => x.Total); + int obtainable = genreCountsForCategory.Sum((JournalCounts x) => x.Obtainable); + int completed = genreCountsForCategory.Sum((JournalCounts x) => x.Completed); + _categoryCounts[category] = new JournalCounts(available, total, obtainable, completed); } } - using (List<JournalData.Section>.Enumerator enumerator2 = _journalData.Sections.GetEnumerator()) + foreach (JournalData.Section section in _journalData.Sections) { - int num = 1128894241; - while (true) - { - int num5 = num; - int num3 = 1128894243; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = 1128894241; - break; - case 1: - { - JournalData.Section section = enumerator2.Current; - List<JournalCounts> source = (from x in _categoryCounts - where section.Categories.Contains(x.Key) - select x.Value).ToList(); - int available2 = source.Sum((JournalCounts x) => x.Available); - int total2 = source.Sum((JournalCounts x) => x.Total); - int obtainable2 = source.Sum((JournalCounts x) => x.Obtainable); - int completed2 = source.Sum((JournalCounts x) => x.Completed); - _sectionCounts[section] = new JournalCounts(available2, total2, obtainable2, completed2); - num = 1128894241; - break; - } - case 2: - num = (enumerator2.MoveNext() ? 1128894242 : 1128894243); - break; - case 0: - goto end_IL_0234; - } - continue; - end_IL_0234: - break; - } + List<JournalCounts> source = (from x in _categoryCounts + where section.Categories.Contains(x.Key) + select x.Value).ToList(); + int available2 = source.Sum((JournalCounts x) => x.Available); + int total2 = source.Sum((JournalCounts x) => x.Total); + int obtainable2 = source.Sum((JournalCounts x) => x.Obtainable); + int completed2 = source.Sum((JournalCounts x) => x.Completed); + _sectionCounts[section] = new JournalCounts(available2, total2, obtainable2, completed2); } - int num6 = _sectionCounts.Values.Sum((JournalCounts x) => x.Total); - _200F_200F_206D_200C_206F_202A_206B_206B_200E_202B_200B_200F_202E_206E_206B_206C_202C_202B_200F_200F_206F_206D_200D_206F_206E_202C_202A_206E_202E_202B_200F_202E_200D_202E_206A_202D_200D_200E_200C_202E_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(599122976), new object[4] { _sectionCounts.Count, _categoryCounts.Count, _genreCounts.Count, num6 }); + int num = _sectionCounts.Values.Sum((JournalCounts x) => x.Total); + _logger.LogDebug("RefreshCounts complete. Sections={Sections}, Categories={Categories}, Genres={Genres}, TotalQuests={Total}", _sectionCounts.Count, _categoryCounts.Count, _genreCounts.Count, num); } - [MethodImpl(MethodImplOptions.NoInlining)] private void TickDisplayCache() { List<JournalData.Genre> genres = _journalData.Genres; int num = 0; - Vector4 completionColor = default(Vector4); - FontAwesomeIcon completionIcon = default(FontAwesomeIcon); - string completionText = default(string); - Quest quest = default(Quest); - IQuestInfo current = default(IQuestInfo); - List<ValidationIssue> issues = default(List<ValidationIssue>); - bool flag4 = default(bool); - bool flag = default(bool); - bool flag3 = default(bool); - Vector4 supportColor = default(Vector4); - FontAwesomeIcon supportIcon = default(FontAwesomeIcon); - QuestRoot root = default(QuestRoot); - while (true) + while (_refreshDisplayIndex < genres.Count && num < 20) { - int num2 = ((_refreshDisplayIndex >= genres.Count) ? (-1946846845) : (-1946846848)); - while (true) + foreach (IQuestInfo quest2 in genres[_refreshDisplayIndex].Quests) { - int num3 = num2; - int num4 = -1946846847; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + _questRegistry.TryGetQuest(quest2.QuestId, out Quest quest); + Vector4 supportColor; + FontAwesomeIcon supportIcon; + if (_questFunctions.IsQuestRemoved(quest2.QuestId)) { - case 0: - num2 = -1946846848; - break; - case 3: - _refreshDisplayIndex = -1; - _200F_200F_206D_200C_206F_202A_206B_206B_200E_202B_200B_200F_202E_206E_206B_206C_202C_202B_200F_200F_206F_206D_200D_206F_206E_202C_202A_206E_202E_202B_200F_202E_200D_202E_206A_202D_200D_200E_200C_202E_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(487344429), new object[1] { _displayCache.Count }); - num2 = -1946846843; - break; - case 4: - return; - case 2: - num2 = ((_refreshDisplayIndex < genres.Count) ? (-1946846843) : (-1946846846)); - break; - case 1: - if (num < 20) - { - using (List<IQuestInfo>.Enumerator enumerator = genres[_refreshDisplayIndex].Quests.GetEnumerator()) - { - num2 = 469226274; - while (true) - { - int num6 = num2; - num4 = 469226282; - num5 = num6; - switch ((num5 | num4) - (num5 & num4)) - { - case 23: - completionColor = UiThemeUtils.StatusActive; - completionIcon = FontAwesomeIcon.PersonWalkingArrowRight; - completionText = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1513339182); - num2 = 469226278; - break; - case 21: - completionColor = UiThemeUtils.StatusAvailableComplete; - completionIcon = FontAwesomeIcon.Running; - completionText = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1067102916); - num2 = 469226278; - break; - case 8: - num2 = (enumerator.MoveNext() ? 469226284 : 469226272); - break; - case 9: - num2 = ((quest == null) ? 469226299 : 469226297); - break; - case 27: - num2 = 469226274; - break; - case 6: - current = enumerator.Current; - _questRegistry.TryGetQuest(current.QuestId, out quest); - num2 = ((!_questFunctions.IsQuestRemoved(current.QuestId)) ? 469226275 : 469226281); - break; - case 26: - num2 = ((!_questFunctions.IsQuestComplete(current.QuestId)) ? 469226300 : 469226286); - break; - case 11: - num2 = ((!_questFunctions.IsQuestAccepted(current.QuestId)) ? 469226288 : 469226301); - break; - case 2: - issues = _questValidator.GetIssues(EPathType.Quest, _206E_206F_200F_206B_206D_202E_202A_206D_202A_202A_202C_202B_202A_206C_200D_200B_200B_200B_206B_206D_206C_206E_202C_206A_200B_200F_206C_200C_200C_206E_202D_202B_200F_206F_206D_200F_200C_200C_202C_206E_202E((object)quest.Id)); - num2 = ((!issues.Any((ValidationIssue x) => x.Severity == EIssueSeverity.Error)) ? 469226302 : 469226279); - break; - case 28: - completionColor = UiThemeUtils.StatusAvailable; - completionIcon = FontAwesomeIcon.Running; - completionText = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1447021718); - num2 = 469226278; - break; - case 16: - num2 = ((!flag4) ? 469226276 : 469226292); - break; - case 22: - { - bool num7 = IsQuestExpired(current); - bool flag2 = _questFunctions.IsQuestUnobtainable(current.QuestId); - flag = _questFunctions.IsQuestBlacklisted(current.QuestId); - flag3 = _questFunctions.IsQuestLocked(current.QuestId); - flag4 = _questFunctions.IsReadyToAcceptQuest(current.QuestId); - num2 = ((!(num7 || flag2)) ? 469226277 : 469226296); - break; - } - case 17: - supportColor = UiThemeUtils.StatusLocked; - supportIcon = FontAwesomeIcon.Times; - num2 = 469226273; - break; - case 19: - root = quest.Root; - num2 = ((root == null) ? 469226299 : 469226287); - break; - case 20: - num2 = ((issues.Count <= 0) ? 469226285 : 469226293); - break; - case 13: - supportColor = UiThemeUtils.StatusLocked; - supportIcon = FontAwesomeIcon.ExclamationTriangle; - num2 = 469226273; - break; - case 4: - num2 = (current.IsRepeatable ? 469226282 : 469226295); - break; - case 24: - completionColor = UiThemeUtils.StatusBlacklisted; - completionIcon = FontAwesomeIcon.Ban; - completionText = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-833431314); - num2 = 469226278; - break; - case 29: - completionColor = UiThemeUtils.StatusComplete; - completionIcon = FontAwesomeIcon.Check; - completionText = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1552042899); - num2 = 469226278; - break; - case 1: - num2 = (flag3 ? 469226276 : 469226298); - break; - case 0: - { - bool num8 = _questFunctions.IsQuestLocked(current.QuestId); - bool flag5 = _questFunctions.IsReadyToAcceptQuest(current.QuestId); - bool num9 = !num8; - num4 = (flag5 ? 1 : 0); - num5 = (num9 ? 1 : 0); - num2 = (((num5 | num4) - (num5 ^ num4) == 0) ? 469226291 : 469226303); - break; - } - case 30: - num2 = (_questRegistry.IsKnownQuest(current.QuestId) ? 469226294 : 469226276); - break; - case 12: - _displayCache[current.QuestId] = new CachedQuestDisplay(supportColor, supportIcon, completionColor, completionIcon, completionText); - num2 = 469226274; - break; - case 7: - supportColor = UiThemeUtils.StatusComplete; - supportIcon = FontAwesomeIcon.Check; - num2 = 469226273; - break; - case 15: - num2 = ((!flag) ? 469226283 : 469226290); - break; - case 5: - num2 = (_206A_200F_200C_206C_200D_206A_206A_206D_200B_202B_202C_206F_200D_206A_206E_206D_206C_202C_206E_202C_200F_206B_200C_200B_200C_202B_206B_200E_206C_206A_206D_206C_202A_206E_206D_202E_200B_200C_200E_202A_202E(root) ? 469226299 : 469226280); - break; - case 31: - supportColor = UiThemeUtils.StatusAvailableComplete; - supportIcon = FontAwesomeIcon.InfoCircle; - num2 = 469226273; - break; - case 14: - completionColor = UiThemeUtils.StatusLocked; - completionIcon = FontAwesomeIcon.Times; - completionText = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-438595986); - num2 = 469226278; - break; - case 18: - completionColor = UiThemeUtils.StatusUnobtainable; - completionIcon = FontAwesomeIcon.Minus; - completionText = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(980281712); - num2 = 469226278; - break; - case 3: - supportColor = UiThemeUtils.StatusUnobtainable; - supportIcon = FontAwesomeIcon.Minus; - num2 = 469226273; - break; - case 25: - completionColor = UiThemeUtils.StatusComplete; - completionIcon = FontAwesomeIcon.Check; - completionText = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-636720262); - num2 = 469226278; - break; - case 10: - goto end_IL_0036; - } - continue; - end_IL_0036: - break; - } - } - int refreshDisplayIndex = _refreshDisplayIndex; - num4 = 1; - num5 = refreshDisplayIndex; - _refreshDisplayIndex = (num5 | num4) + (num5 & num4); - int num10 = num; - num4 = 1; - num5 = num10; - int num11 = num5 ^ num4; - int num12 = num5 & num4; - num = num11 + (num12 + num12); - goto end_IL_0660; - } - num2 = -1946846845; - break; + supportColor = UiThemeUtils.StatusUnobtainable; + supportIcon = FontAwesomeIcon.Minus; } - continue; - end_IL_0660: - break; + else + { + if (quest != null) + { + QuestRoot root = quest.Root; + if (root != null && !root.Disabled) + { + List<ValidationIssue> issues = _questValidator.GetIssues(EPathType.Quest, quest.Id.ToString()); + if (issues.Any((ValidationIssue x) => x.Severity == EIssueSeverity.Error)) + { + supportColor = UiThemeUtils.StatusLocked; + supportIcon = FontAwesomeIcon.ExclamationTriangle; + } + else if (issues.Count > 0) + { + supportColor = UiThemeUtils.StatusAvailableComplete; + supportIcon = FontAwesomeIcon.InfoCircle; + } + else + { + supportColor = UiThemeUtils.StatusComplete; + supportIcon = FontAwesomeIcon.Check; + } + goto IL_011b; + } + } + supportColor = UiThemeUtils.StatusLocked; + supportIcon = FontAwesomeIcon.Times; + } + goto IL_011b; + IL_011b: + Vector4 completionColor; + FontAwesomeIcon completionIcon; + string completionText; + if (_questFunctions.IsQuestAccepted(quest2.QuestId)) + { + completionColor = UiThemeUtils.StatusActive; + completionIcon = FontAwesomeIcon.PersonWalkingArrowRight; + completionText = "Active"; + } + else if (_questFunctions.IsQuestComplete(quest2.QuestId)) + { + if (!quest2.IsRepeatable) + { + completionColor = UiThemeUtils.StatusComplete; + completionIcon = FontAwesomeIcon.Check; + completionText = "Complete"; + } + else + { + bool num2 = _questFunctions.IsQuestLocked(quest2.QuestId); + bool flag = _questFunctions.IsReadyToAcceptQuest(quest2.QuestId); + if (!num2 && flag) + { + completionColor = UiThemeUtils.StatusAvailableComplete; + completionIcon = FontAwesomeIcon.Running; + completionText = "Available"; + } + else + { + completionColor = UiThemeUtils.StatusComplete; + completionIcon = FontAwesomeIcon.Check; + completionText = "Complete"; + } + } + } + else + { + bool num3 = IsQuestExpired(quest2); + bool flag2 = _questFunctions.IsQuestUnobtainable(quest2.QuestId); + bool flag3 = _questFunctions.IsQuestBlacklisted(quest2.QuestId); + bool flag4 = _questFunctions.IsQuestLocked(quest2.QuestId); + bool flag5 = _questFunctions.IsReadyToAcceptQuest(quest2.QuestId); + if (num3 || flag2) + { + completionColor = UiThemeUtils.StatusUnobtainable; + completionIcon = FontAwesomeIcon.Minus; + completionText = "Unobtainable"; + } + else if (flag3) + { + completionColor = UiThemeUtils.StatusBlacklisted; + completionIcon = FontAwesomeIcon.Ban; + completionText = "Blacklisted"; + } + else if (flag4 || !flag5 || !_questRegistry.IsKnownQuest(quest2.QuestId)) + { + completionColor = UiThemeUtils.StatusLocked; + completionIcon = FontAwesomeIcon.Times; + completionText = "Locked"; + } + else + { + completionColor = UiThemeUtils.StatusAvailable; + completionIcon = FontAwesomeIcon.Running; + completionText = "Available"; + } + } + _displayCache[quest2.QuestId] = new CachedQuestDisplay(supportColor, supportIcon, completionColor, completionIcon, completionText); } + _refreshDisplayIndex++; + num++; + } + if (_refreshDisplayIndex >= genres.Count) + { + _refreshDisplayIndex = -1; + _logger.LogDebug("Display cache refresh complete. Cached={Count}", _displayCache.Count); } } private List<JournalCounts> GetGenreCountsForCategory(JournalData.Category category) { List<JournalCounts> list = new List<JournalCounts>(category.Genres.Count); - IEnumerator<JournalData.Genre> enumerator = category.Genres.GetEnumerator(); - try + foreach (JournalData.Genre genre in category.Genres) { - int num = 1867662392; - JournalCounts value = default(JournalCounts); - while (true) + if (_genreCounts.TryGetValue(genre, out JournalCounts value)) { - int num2 = num; - int num3 = 1867662394; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = (_200F_206A_202C_200C_206F_202A_202B_202C_200F_206C_200F_202A_200B_206F_202D_200B_206D_206D_200D_200E_202C_206A_202D_200C_202A_206F_200E_206E_206D_200F_206C_200B_202C_200F_206A_206E_206A_202D_202B_200F_202E((IEnumerator)enumerator) ? 1867662395 : 1867662393); - break; - case 1: - { - JournalData.Genre current = enumerator.Current; - num = ((!_genreCounts.TryGetValue(current, out value)) ? 1867662392 : 1867662394); - break; - } - case 4: - num = 1867662392; - break; - case 0: - list.Add(value); - num = 1867662392; - break; - case 3: - return list; - } - } - } - finally - { - int num = ((enumerator == null) ? 1104193695 : 1104193694); - while (true) - { - int num7 = num; - int num3 = 1104193695; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1104193694; - break; - case 1: - _200E_206C_200C_206A_206A_206E_200E_202C_206E_202B_202B_206D_202C_206B_206D_206D_206C_200B_206A_202A_206D_202C_202B_206E_202D_200F_206A_200F_202C_202C_202C_202C_200D_200B_206B_202D_206B_202E_200E_202D_202E((IDisposable)enumerator); - num = 1104193695; - break; - case 0: - goto end_IL_00f6; - } - continue; - end_IL_00f6: - break; + list.Add(value); } } + return list; } internal void ClearCounts(int type, int code) { _refreshGenreIndex = -1; _refreshDisplayIndex = -1; - using (List<KeyValuePair<JournalData.Genre, JournalCounts>>.Enumerator enumerator = _genreCounts.ToList().GetEnumerator()) + foreach (KeyValuePair<JournalData.Genre, JournalCounts> item in _genreCounts.ToList()) { - int num = -78639595; - while (true) - { - int num2 = num; - int num3 = -78639595; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -78639595; - break; - case 1: - { - KeyValuePair<JournalData.Genre, JournalCounts> current = enumerator.Current; - _genreCounts[current.Key] = new JournalCounts(current.Value.Available, current.Value.Total, current.Value.Obtainable, 0); - num = -78639595; - break; - } - case 0: - num = (enumerator.MoveNext() ? (-78639596) : (-78639594)); - break; - case 3: - goto end_IL_002b; - } - continue; - end_IL_002b: - break; - } + _genreCounts[item.Key] = new JournalCounts(item.Value.Available, item.Value.Total, item.Value.Obtainable, 0); } - using (List<KeyValuePair<JournalData.Category, JournalCounts>>.Enumerator enumerator2 = _categoryCounts.ToList().GetEnumerator()) + foreach (KeyValuePair<JournalData.Category, JournalCounts> item2 in _categoryCounts.ToList()) { - int num = 540818768; - while (true) - { - int num5 = num; - int num3 = 540818771; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 540818768; - break; - case 3: - num = (enumerator2.MoveNext() ? 540818770 : 540818771); - break; - case 1: - { - KeyValuePair<JournalData.Category, JournalCounts> current2 = enumerator2.Current; - _categoryCounts[current2.Key] = new JournalCounts(current2.Value.Available, current2.Value.Total, current2.Value.Obtainable, 0); - num = 540818768; - break; - } - case 0: - goto end_IL_010b; - } - continue; - end_IL_010b: - break; - } + _categoryCounts[item2.Key] = new JournalCounts(item2.Value.Available, item2.Value.Total, item2.Value.Obtainable, 0); } - using (List<KeyValuePair<JournalData.Section, JournalCounts>>.Enumerator enumerator3 = _sectionCounts.ToList().GetEnumerator()) + foreach (KeyValuePair<JournalData.Section, JournalCounts> item3 in _sectionCounts.ToList()) { - int num = -769681140; - while (true) - { - int num6 = num; - int num3 = -769681140; - int num4 = num6; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -769681140; - break; - case 1: - { - KeyValuePair<JournalData.Section, JournalCounts> current3 = enumerator3.Current; - _sectionCounts[current3.Key] = new JournalCounts(current3.Value.Available, current3.Value.Total, current3.Value.Obtainable, 0); - num = -769681140; - break; - } - case 0: - num = (enumerator3.MoveNext() ? (-769681139) : (-769681137)); - break; - case 3: - goto end_IL_01ec; - } - continue; - end_IL_01ec: - break; - } + _sectionCounts[item3.Key] = new JournalCounts(item3.Value.Available, item3.Value.Total, item3.Value.Obtainable, 0); } _displayCache.Clear(); RebuildFlatRows(); @@ -2412,337 +754,48 @@ internal sealed class QuestJournalComponent private static bool IsCategorySectionGenreMatch(FilterConfiguration filter, string name) { - int num = (_202D_200D_202B_206F_200B_206D_202A_202E_206A_202B_206E_202B_200D_206D_206F_200D_202C_200F_206A_206A_200C_206D_202A_202A_200C_206C_206A_202A_202D_206D_206B_202E_200D_202E_202C_202C_206A_206D_206D_200C_202E(filter.SearchText) ? (-1656748562) : (-1656748563)); - while (true) + if (!string.IsNullOrEmpty(filter.SearchText)) { - int num2 = num; - int num3 = -1656748561; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004b; - case 2: - return _206F_206F_202A_206C_200B_200E_206D_206C_206C_200E_206B_202B_206B_206D_206A_206D_202E_206A_202A_200F_206F_202E_200F_206E_206C_200B_206D_200E_206F_206D_202B_202D_202D_206D_200E_206D_206E_202A_206A_206D_202E(name, filter.SearchText, StringComparison.CurrentCultureIgnoreCase); - case 1: - return true; - } - continue; - IL_004b: - num = -1656748563; + return name.Contains(filter.SearchText, StringComparison.CurrentCultureIgnoreCase); } + return true; } private bool IsQuestMatch(FilterConfiguration filter, IQuestInfo questInfo) { - int num = (_202D_200D_202B_206F_200B_206D_202A_202E_206A_202B_206E_202B_200D_206D_206F_200D_202C_200F_206A_206A_200C_206D_202A_202A_200C_206C_206A_202A_202D_206D_206B_202E_200D_202E_202C_202C_206A_206D_206D_200C_202E(filter.SearchText) ? 635265476 : 635265485); - Quest quest = default(Quest); - while (true) + if (!string.IsNullOrEmpty(filter.SearchText) && !questInfo.Name.Contains(filter.SearchText, StringComparison.CurrentCultureIgnoreCase) && !(questInfo.QuestId.ToString() == filter.SearchText)) { - int num2 = num; - int num3 = 635265480; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = ((!_206A_200F_200C_206C_200D_206A_206A_206D_200B_202B_202C_206F_200D_206A_206E_206D_206C_202C_206E_202C_200F_206B_200C_200B_200C_202B_206B_200E_206C_206A_206D_206C_202A_206E_206D_202E_200B_200C_200E_202A_202E(quest.Root)) ? 635265480 : 635265477); - break; - case 4: - num = ((!filter.HideNoPaths) ? 635265480 : 635265473); - break; - case 9: - num = ((!_questRegistry.TryGetQuest(questInfo.QuestId, out quest)) ? 635265477 : 635265481); - break; - case 2: - num = (_202E_202B_202A_202C_200C_200B_206C_202A_200D_206F_206E_206B_200F_202A_200B_202C_200B_206B_206C_202B_202A_206B_206A_206A_200B_206A_202D_200E_206F_200F_200C_202A_206A_200B_206E_200F_202C_206E_202E(_206E_206F_200F_206B_206D_202E_202A_206D_202A_202A_202C_202B_202A_206C_200D_200B_200B_200B_206B_206D_206C_206E_202C_206A_200B_200F_206C_200C_200C_206E_202D_202B_200F_206F_206D_200F_200C_200C_202C_206E_202E((object)questInfo.QuestId), filter.SearchText) ? 635265476 : 635265474); - break; - case 8: - num = (_questFunctions.IsReadyToAcceptQuest(questInfo.QuestId) ? 635265484 : 635265475); - break; - case 5: - num = (_206F_206F_202A_206C_200B_200E_206D_206C_206C_200E_206B_202B_206B_206D_206A_206D_202E_206A_202A_200F_206F_202E_200F_206E_206C_200B_206D_200E_206F_206D_202B_202D_202D_206D_200E_206D_206E_202A_206A_206D_202E(questInfo.Name, filter.SearchText, StringComparison.CurrentCultureIgnoreCase) ? 635265476 : 635265482); - break; - case 6: - num = 635265485; - break; - case 7: - num = ((!_questFunctions.IsQuestUnobtainable(questInfo.QuestId)) ? 635265483 : 635265478); - break; - case 11: - return false; - case 13: - return false; - case 10: - return false; - case 0: - num = ((!filter.HideUnobtainable) ? 635265483 : 635265487); - break; - case 14: - return false; - case 3: - return true; - case 12: - num = ((!filter.AvailableOnly) ? 635265484 : 635265472); - break; - } + return false; } + if (filter.AvailableOnly && !_questFunctions.IsReadyToAcceptQuest(questInfo.QuestId)) + { + return false; + } + if (filter.HideNoPaths && (!_questRegistry.TryGetQuest(questInfo.QuestId, out Quest quest) || quest.Root.Disabled)) + { + return false; + } + if (filter.HideUnobtainable && _questFunctions.IsQuestUnobtainable(questInfo.QuestId)) + { + return false; + } + return true; } private static bool IsSeasonal(IQuestInfo q) { - int num = ((!q.IsSeasonalQuest) ? (-2078706913) : (-2078706919)); - UnlockLinkQuestInfo unlockLinkQuestInfo = default(UnlockLinkQuestInfo); - while (true) + if (q.IsSeasonalQuest) { - int num2 = num; - int num3 = -2078706918; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return false; - case 5: - num = ((!q.SeasonalQuestExpiry.HasValue) ? (-2078706915) : (-2078706917)); - break; - case 7: - unlockLinkQuestInfo = q as UnlockLinkQuestInfo; - num = ((unlockLinkQuestInfo == null) ? (-2078706920) : (-2078706916)); - break; - case 6: - num = ((!unlockLinkQuestInfo.QuestExpiry.HasValue) ? (-2078706920) : (-2078706918)); - break; - case 0: - return true; - case 4: - num = -2078706919; - break; - case 3: - return true; - case 1: - return true; - } + return true; } - } - - static void _200F_200F_206D_200C_206F_202A_206B_206B_200E_202B_200B_200F_202E_206E_206B_206C_202C_202B_200F_200F_206F_206D_200D_206F_206E_202C_202A_206E_202E_202B_200F_202E_200D_202E_206A_202D_200D_200E_200C_202E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _202C_200D_202B_200D_206B_200E_206D_202B_202C_206C_202D_200E_202B_206E_202A_206A_206E_202A_206C_206D_206C_206B_202A_206E_206F_202A_200C_206B_202A_206A_200F_206E_202A_206A_202E_200C_200C_200F_200E_200C_202E() - { - ImGui.SameLine(); - } - - static void _200B_200B_200F_202A_200E_200D_200F_202E_202B_202C_206D_200B_206B_202B_200C_200C_206A_206D_202A_206A_206E_206A_206F_206C_202E_206D_202C_202D_202E_202D_206A_206B_206A_200B_200F_206C_206E_206C_200C_206E_202E() - { - ImGui.Separator(); - } - - static void _206F_202B_202E_202C_206A_206C_202A_206B_206A_200F_202A_206C_202C_206D_200E_206E_202D_202D_202D_202E_206C_202C_206B_206D_200F_202E_202B_206A_200E_206D_206A_206D_202D_206B_206A_202A_200D_206E_206D_202E_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static IUiBuilder _206E_206B_206E_202B_202B_206B_206A_200D_206F_200E_202B_200F_206F_206B_200F_202B_200C_202C_202C_202B_202D_206C_200F_202D_200F_206E_202D_206A_206D_200E_202B_200E_200D_200F_206D_206A_206F_206D_202B_202B_202E(IDalamudPluginInterface P_0) - { - return P_0.UiBuilder; - } - - static IFontHandle _206A_202A_202E_202E_206E_200F_206D_202A_206D_200C_206A_202E_200F_200D_202D_206A_206A_202C_206C_202E_202C_200B_202E_202E_200D_206A_202B_206F_206A_200D_206C_200F_206F_200F_200F_206F_206E_200D_200E_202C_202E(IUiBuilder P_0) - { - return P_0.IconFontFixedWidthHandle; - } - - static IDisposable _202B_200D_200E_206A_202D_202B_206D_202C_206E_206D_202E_200B_206F_206A_202D_206A_200B_202D_202A_202E_206B_200F_202C_206E_202A_206D_200D_202B_202E_200F_200C_200D_202D_206A_206A_200E_202A_202C_202E_200C_202E(IFontHandle P_0) - { - return P_0.Push(); - } - - static string _206C_200F_206D_202A_206D_206F_206A_206A_202A_202A_202A_206B_202C_200F_206F_206E_200D_200B_202A_200E_202D_206D_206B_202B_200B_200F_206A_206F_200F_206D_200E_202E_202C_200B_200E_202A_202A_200B_200C_200F_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static Vector2 _200E_200D_200C_200E_202C_206A_200C_202B_202A_206E_206F_206C_206A_200D_202D_202D_206E_202D_200C_206F_202D_202A_202A_202E_206E_200E_200D_202B_206B_200B_200F_206B_206E_206B_200D_202D_202E_206A_200E_206E_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static void _200E_206C_200C_206A_206A_206E_200E_202C_206E_202B_202B_206D_202C_206B_206D_206D_206C_200B_206A_202A_206D_202C_202B_206E_202D_200F_206A_200F_202C_202C_202C_202C_200D_200B_206B_202D_206B_202E_200E_202D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static ImGuiIOPtr _206D_206F_202D_202B_200C_206A_206C_206E_202D_202D_206E_200E_200E_202E_202A_202A_202D_206A_200B_206A_206F_202B_200D_202D_200F_202B_202B_202E_202D_206B_206A_200F_200F_200F_200E_202D_206A_206F_202D_202E_202E() - { - return ImGui.GetIO(); - } - - static void _200D_202D_202C_206E_202C_200B_202C_202A_206D_200D_206F_200B_202C_206F_200B_200B_200E_200B_202B_206A_200E_206C_200D_206A_200B_202B_200E_206B_202E_202A_200C_200F_206C_206B_202C_206C_200D_206C_206F_200C_202E(ImU8String P_0, ImGuiTableColumnFlags P_1, float P_2, uint P_3) - { - ImGui.TableSetupColumn(P_0, P_1, P_2, P_3); - } - - static void _206E_202C_206D_200F_200F_202C_206C_206B_206B_206B_200C_202B_200D_206D_206A_206D_206E_200C_202B_206A_200D_200C_202E_200B_206E_206D_200F_202D_200F_200C_200E_206E_206E_206C_202B_206E_206A_202A_202E_200E_202E() - { - ImGui.TableHeadersRow(); - } - - static float _202D_200D_206D_206F_202A_206E_202D_200C_200D_200F_200F_200E_202B_206A_200C_206A_200D_200C_200D_202E_206E_200D_202A_200E_202A_206C_200B_200C_200C_200B_206C_200E_200C_206A_200E_202C_206F_202B_200B_206D_202E() - { - return ImGui.GetTextLineHeightWithSpacing(); - } - - unsafe static ImGuiListClipper* _200D_200E_202E_202B_206A_202A_206B_200D_200B_202A_200C_206F_206A_206D_206D_202B_200D_206D_200C_206F_202D_200F_206A_206A_206E_202E_200C_200C_202A_206A_206E_206E_202A_200C_206E_200E_202C_202C_200E_206E_202E() - { - return ImGuiNative.ImGuiListClipper(); - } - - unsafe static void _202C_202E_200B_206A_200D_200F_200F_200F_200C_202A_202A_200E_200E_200F_202A_202B_202D_206E_202A_200C_206B_200F_206E_200E_202A_200D_206A_202E_202E_202D_206A_202A_200E_200E_200B_206F_202D_202E_206A_202B_202E(ImGuiListClipper* P_0, int P_1, float P_2) - { - ImGuiNative.Begin(P_0, P_1, P_2); - } - - static void _200F_206F_200C_202D_206D_200C_202E_200D_206A_206D_202A_206D_206B_206E_206B_202C_206E_202E_202E_202D_206D_200D_202A_202C_200D_206A_206C_206A_202A_200E_200C_200C_206D_206B_200F_206E_206C_200C_202B_202E() - { - ImGui.TableNextRow(); - } - - static bool _206A_200E_206E_202D_206A_200F_206D_202D_200B_202B_206F_206A_206D_202C_202B_200F_206A_202D_206E_200B_206A_206D_202C_206B_200D_200E_200C_202E_200D_206E_202C_206D_202C_206F_206B_200D_200B_202B_206D_202B_202E() - { - return ImGui.TableNextColumn(); - } - - static ImGuiStylePtr _206D_206E_200D_202D_206B_200F_202C_200B_200E_206C_206B_200C_202D_202A_206A_206F_206A_206E_206A_206A_200B_200B_202C_206D_200C_206F_202B_202E_200B_200E_206A_206A_202E_200C_200E_206D_206C_206E_202D_202B_202E() - { - return ImGui.GetStyle(); - } - - static float _200C_206B_206F_206E_200D_206D_202C_200D_200D_200E_200F_202A_200B_206F_202A_206A_206D_200F_200E_200F_200D_206E_206C_206D_206B_206F_202D_202E_200D_206F_200C_206F_202B_206C_202C_202E_206F_206E_206B_206C_202E() - { - return ImGui.GetCursorPosX(); - } - - static void _206D_200D_206E_206C_206A_206B_200C_200C_200B_202A_206B_200E_202B_200B_202D_200D_202A_206F_200E_202E_206F_200C_206F_202E_206A_202A_206B_206A_202E_200F_200C_206E_206A_206E_206F_206B_200E_202D_202A_200E_202E(float P_0) - { - ImGui.SetCursorPosX(P_0); - } - - static bool _206B_206E_202C_200C_202C_200C_202E_202B_206C_206C_206D_202C_200E_202B_200F_202A_206E_206F_200B_200E_206E_206C_202D_200B_202A_202D_200C_206C_206C_200D_206F_206C_202D_200E_206D_206F_200D_202D_202A_200D_202E(ImU8String P_0, bool P_1, ImGuiSelectableFlags P_2, Vector2 P_3) - { - return ImGui.Selectable(P_0, P_1, P_2, P_3); - } - - static ImFontPtr _202C_202A_206C_200D_202A_206F_206B_202D_202E_202C_200D_202C_202B_202D_202A_200E_206B_200C_206D_206F_202B_200C_206C_200F_200B_200E_200D_202B_202D_202E_202E_206A_202B_200F_202C_200F_202B_202D_202B_202E() - { - return UiBuilder.MonoFont; - } - - static void _206F_206F_206D_202C_202D_200C_202A_200E_206B_206C_200D_206A_200E_202A_206E_202D_206B_202A_202D_206C_206A_200D_200C_206E_200C_206B_206C_202B_200F_202A_202D_200D_200E_202B_206B_200C_200D_202E_202D_200D_202E(ImFontPtr P_0) - { - ImGui.PushFont(P_0); - } - - static Vector4 _206D_200F_202D_202A_200E_206C_202B_202D_202D_206F_202E_206D_206B_202A_202E_200B_202B_206B_206A_206F_200B_202B_202E_202B_202B_206B_200D_202E_202D_206C_206F_202C_202A_206D_200E_202E_200D_200B_202E_202D_202E(EExpansionVersion P_0) - { - return P_0.GetExpansionColor(); - } - - static void _206F_202B_206B_206F_200E_206A_200D_202B_202C_206C_200E_200E_200B_200E_200E_206B_206F_206A_202D_206B_206C_206F_200B_200B_202A_206A_202D_202C_206D_202E_206E_202B_200B_206B_202E_202A_206E_206F_200B_202E_202E(ImGuiCol P_0, Vector4 P_1) - { - ImGui.PushStyleColor(P_0, P_1); - } - - static string _206F_200D_202C_202E_206B_200F_200B_200F_206D_206A_200B_202B_202A_200E_202B_200B_202D_200C_200C_206C_200C_202E_206B_202B_200C_206C_202E_206F_202D_206D_202B_200C_206D_200D_202A_200C_200F_202D_206B_206C_202E(EExpansionVersion P_0) - { - return P_0.ToAbbreviation(); - } - - static string _206A_200E_206F_206A_200D_200F_206F_200C_206D_206A_206F_206B_206A_206F_202D_200E_200B_206F_206E_202D_200F_202D_202E_206B_200D_200D_200F_202B_200C_200C_200E_200D_202B_200D_206A_202E_206F_202E_200E_200D_202E(string P_0, int P_1) - { - return P_0.PadRight(P_1); - } - - static void _202B_202D_206F_206E_202C_200F_200D_202D_206E_206C_206C_200F_200C_202C_202A_206B_202E_202B_206E_200F_200B_206F_200E_206E_202C_200B_202E_202E_206E_206D_206F_206D_200D_206F_200B_202E_206E_206D_206D_206F_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static void _202A_200E_202B_200F_202B_202E_200C_202B_202D_202B_206A_200B_206F_206D_202C_206A_202E_206C_206D_206A_200D_200E_200D_202D_206D_200E_206C_206D_206E_206C_200F_200D_206C_206E_202E_200D_206E_206E_202A_202B_202E() - { - ImGui.PopStyleColor(); - } - - static void _202D_200C_202B_200E_200E_206E_200B_206B_200F_202D_200D_206D_206D_200B_200F_206F_206C_206B_202C_200E_200E_206B_202E_200C_200E_206F_200E_206E_200C_206B_202A_200E_200F_200B_206D_206D_200E_200F_202A_206D_202E() - { - ImGui.PopFont(); - } - - static bool _206E_202C_202B_200E_200E_200E_206D_202A_200B_200F_200D_206B_200D_200B_200D_206E_206C_206A_206E_200D_206A_202A_202B_206F_202B_206A_202C_206C_200D_202A_202A_202B_202D_206E_200D_202E_200E_202C_206E_200C_202E() - { - return ImGui.IsItemHovered(); - } - - static bool _200F_200D_200E_202B_206C_206B_200F_200E_200F_200D_202B_202C_206D_206C_200E_200C_200D_200F_200D_206A_202D_206A_206F_202D_200E_206A_206C_200D_202C_200B_206B_206E_200E_202A_200D_200F_202D_202D_200B_200C_202E(ImU8String P_0, ImGuiTreeNodeFlags P_1, ImU8String P_2) - { - return ImGui.TreeNodeEx(P_0, P_1, P_2); - } - - static void _202E_206D_202B_206A_206E_200D_206D_202B_200F_202C_200C_200F_206E_200E_200F_202C_206E_206F_206C_206E_202D_206E_200F_200D_206D_202B_206B_202E_200C_200D_200C_200B_202B_202B_200E_202C_200D_206C_200E_202B_202E() - { - ImGui.BeginTooltip(); - } - - static string _202D_206E_200E_202E_206E_206B_206D_202B_200F_202E_206D_206F_206D_200D_206A_200B_202B_202C_200B_200C_200C_206A_206C_206E_200D_206D_206C_200F_202D_200B_200E_202C_206E_200E_206F_206C_206B_200C_200E_202C_202E(EExpansionVersion P_0) - { - return P_0.ToFriendlyString(); - } - - static void _202B_206A_202C_200F_206C_206A_202C_202D_200B_202C_202C_202B_202B_200F_206F_206A_202A_202D_200F_202C_202D_200D_206A_206D_206C_202B_200D_202D_206E_202E_206B_206E_202C_206D_206E_200F_202B_200D_202D_202B_202E() - { - ImGui.EndTooltip(); - } - - static float _202D_206E_202E_200E_202E_202A_200B_200B_206D_202D_206C_200F_206D_200D_202B_202C_200D_200B_200F_200E_202E_202A_206B_202A_202B_206D_200B_200C_202C_200F_200F_202B_206F_206A_202C_206B_206A_206D_206C_200F_202E() - { - return ImGui.GetColumnWidth(); - } - - static int _206E_206D_202A_202C_206E_200F_202B_200C_200C_202C_206B_202B_200D_202E_200C_200B_200E_206F_202D_206F_200E_202A_200B_200E_200E_202A_202B_202E_200B_202C_200D_200D_202A_202B_202C_200D_202E_206A_206F_206F_202E(int P_0, int P_1) - { - return Math.Min(P_0, P_1); - } - - static bool _206A_200F_200C_206C_200D_206A_206A_206D_200B_202B_202C_206F_200D_206A_206E_206D_206C_202C_206E_202C_200F_206B_200C_200B_200C_202B_206B_200E_206C_206A_206D_206C_202A_206E_206D_202E_200B_200C_200E_202A_202E(QuestRoot P_0) - { - return P_0.Disabled; - } - - static string _206E_206F_200F_206B_206D_202E_202A_206D_202A_202A_202C_202B_202A_206C_200D_200B_200B_200B_206B_206D_206C_206E_202C_206A_200B_200F_206C_200C_200C_206E_202D_202B_200F_206F_206D_200F_200C_200C_202C_206E_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _200F_206A_202C_200C_206F_202A_202B_202C_200F_206C_200F_202A_200B_206F_202D_200B_206D_206D_200D_200E_202C_206A_202D_200C_202A_206F_200E_206E_206D_200F_206C_200B_202C_200F_206A_206E_206A_202D_202B_200F_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static bool _202D_200D_202B_206F_200B_206D_202A_202E_206A_202B_206E_202B_200D_206D_206F_200D_202C_200F_206A_206A_200C_206D_202A_202A_200C_206C_206A_202A_202D_206D_206B_202E_200D_202E_202C_202C_206A_206D_206D_200C_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static bool _206F_206F_202A_206C_200B_200E_206D_206C_206C_200E_206B_202B_206B_206D_206A_206D_202E_206A_202A_200F_206F_202E_200F_206E_206C_200B_206D_200E_206F_206D_202B_202D_202D_206D_200E_206D_206E_202A_206A_206D_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); - } - - static bool _202E_202B_202A_202C_200C_200B_206C_202A_200D_206F_206E_206B_200F_202A_200B_202C_200B_206B_206C_202B_202A_206B_206A_206A_200B_206A_202D_200E_206F_200F_200C_202A_206A_200B_206E_200F_202C_206E_202E(string P_0, string P_1) - { - return P_0 == P_1; + if (q.SeasonalQuestExpiry.HasValue) + { + return true; + } + if (q is UnlockLinkQuestInfo { QuestExpiry: not null }) + { + return true; + } + return false; } } diff --git a/Questionable/Questionable.Windows.JournalComponents/QuestJournalUtils.cs b/Questionable/Questionable.Windows.JournalComponents/QuestJournalUtils.cs index 3b61c6d..57238ed 100644 --- a/Questionable/Questionable.Windows.JournalComponents/QuestJournalUtils.cs +++ b/Questionable/Questionable.Windows.JournalComponents/QuestJournalUtils.cs @@ -1,8 +1,6 @@ using System; using System.Collections.Generic; -using System.Collections.Immutable; using System.Linq; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Interface; using Dalamud.Interface.Utility.Raii; @@ -19,152 +17,6 @@ namespace Questionable.Windows.JournalComponents; internal sealed class QuestJournalUtils { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass17_0 - { - public QuestJournalUtils _003C_003E4__this; - - public IQuestInfo questInfo; - - internal unsafe bool _003CGetIncompletePrerequisiteQuests_003Eb__0(ElementId qId) - { - IQuestInfo questInfo; - int num = (_003C_003E4__this._questData.TryGetQuestInfo(qId, out questInfo) ? 953970550 : 953970544); - QuestId questId = default(QuestId); - while (true) - { - int num2 = num; - int num3 = 953970550; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 7: - return true; - case 6: - return false; - case 2: - return false; - case 5: - num = 953970544; - break; - case 8: - questId = qId as QuestId; - num = (((object)questId == null) ? 953970551 : 953970546); - break; - case 3: - return false; - case 0: - num = ((!questInfo.IsRepeatable) ? 953970551 : 953970558); - break; - case 4: - num = ((!QuestManager.Instance()->IsDailyQuestCompleted(_206C_200C_206B_202A_202C_202A_200C_202C_200D_206E_200B_206F_202C_200D_200C_200E_206B_206E_200C_206B_206B_202B_206D_200B_206E_200E_200F_202D_206F_202C_206C_206F_200E_206D_206C_202E_200D_200F_202C_202B_202E((ElementId)questId))) ? 953970545 : 953970548); - break; - case 1: - num = ((!_003C_003E4__this._questFunctions.IsQuestComplete(qId)) ? 953970545 : 953970549); - break; - } - } - } - - internal bool _003CGetIncompletePrerequisiteQuests_003Eb__1(ElementId qId) - { - return !_003C_003E4__this._questFunctions.IsQuestUnobtainable(qId); - } - - internal bool _003CGetIncompletePrerequisiteQuests_003Eb__2(ElementId qId) - { - return _003C_003E4__this._questRegistry.IsKnownQuest(qId); - } - - internal bool _003CGetIncompletePrerequisiteQuests_003Eb__3(ElementId qId) - { - Quest quest; - int num = ((!_003C_003E4__this._questRegistry.TryGetQuest(qId, out quest)) ? 2035464301 : 2035464302); - while (true) - { - int num2 = num; - int num3 = 2035464300; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return false; - case 1: - return true; - case 0: - num = 2035464302; - break; - case 2: - num = ((!_200D_200C_202C_200C_200D_206B_206B_200D_206D_202C_206E_202E_200F_202E_200E_206C_206E_200C_206B_200D_202C_202A_200F_200E_202A_200C_200E_200C_202A_206C_200E_206A_202D_200D_200B_206B_202A_206F_200C_200E_202E(quest.Root)) ? 2035464301 : 2035464303); - break; - } - } - } - - internal bool _003CGetIncompletePrerequisiteQuests_003Eb__4(ElementId qId) - { - _003C_003Ec__DisplayClass17_1 CS_0024_003C_003E8__locals1 = new _003C_003Ec__DisplayClass17_1 - { - qId = qId - }; - return !_003C_003E4__this._questController.ManualPriorityQuests.Any((Quest q) => _003C_003Ec__DisplayClass17_1._200D_206D_200F_202D_200B_202D_200B_206D_202A_200C_200F_206E_200B_200E_202E_200B_200E_200D_206D_202E_206F_202E_206C_206C_202D_206D_206D_206E_206C_200F_200B_206A_200F_202E_202D_200C_202C_206C_202A_206C_202E(q.Id, CS_0024_003C_003E8__locals1.qId)); - } - - internal bool _003CGetIncompletePrerequisiteQuests_003Eb__5(Quest q) - { - return _202A_202C_202E_200D_206F_202A_206E_206B_200F_202A_202E_206C_206A_206F_202D_202A_200F_206B_206B_206D_202D_206D_206D_206A_200D_200E_200D_206F_200B_202A_206C_202A_206C_206B_200F_200B_200E_202B_202C_200D_202E(q.Id, questInfo.QuestId); - } - - static ushort _206C_200C_206B_202A_202C_202A_200C_202C_200D_206E_200B_206F_202C_200D_200C_200E_206B_206E_200C_206B_206B_202B_206D_200B_206E_200E_200F_202D_206F_202C_206C_206F_200E_206D_206C_202E_200D_200F_202C_202B_202E(ElementId P_0) - { - return P_0.Value; - } - - static bool _200D_200C_202C_200C_200D_206B_206B_200D_206D_202C_206E_202E_200F_202E_200E_206C_206E_200C_206B_200D_202C_202A_200F_200E_202A_200C_200E_200C_202A_206C_200E_206A_202D_200D_200B_206B_202A_206F_200C_200E_202E(QuestRoot P_0) - { - return P_0.Disabled; - } - - static bool _202A_202C_202E_200D_206F_202A_206E_206B_200F_202A_202E_206C_206A_206F_202D_202A_200F_206B_206B_206D_202D_206D_206D_206A_200D_200E_200D_206F_200B_202A_206C_202A_206C_206B_200F_200B_200E_202B_202C_200D_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass17_1 - { - public ElementId qId; - - internal bool _003CGetIncompletePrerequisiteQuests_003Eb__6(Quest q) - { - return _200D_206D_200F_202D_200B_202D_200B_206D_202A_200C_200F_206E_200B_200E_202E_200B_200E_200D_206D_202E_206F_202E_206C_206C_202D_206D_206D_206E_206C_200F_200B_206A_200F_202E_202D_200C_202C_206C_202A_206C_202E(q.Id, qId); - } - - static bool _200D_206D_200F_202D_200B_202D_200B_206D_202A_200C_200F_206E_200B_200E_202E_200B_200E_200D_206D_202E_206F_202E_206C_206C_202D_206D_206D_206E_206C_200F_200B_206A_200F_202E_202D_200C_202C_206C_202A_206C_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass20_0 - { - public Quest quest; - - internal bool _003CAddAllAvailableQuests_003Eb__1(Quest q) - { - return _200F_200F_200B_206D_200E_206F_206B_200E_206E_206F_200D_206B_202B_202C_206B_206B_202E_206B_200D_202D_202E_200D_200B_200D_206E_200D_202B_200B_202E_200E_200B_200F_202B_206F_200F_202D_200E_202A_206F_202C_202E(q.Id, quest.Id); - } - - static bool _200F_200F_200B_206D_200E_206F_206B_200E_206E_206F_200D_206B_202B_202C_206B_206B_202E_206B_200D_202D_202E_200D_200B_200D_206E_200D_202B_200B_202E_200E_200B_200F_202B_206F_200F_202D_200E_202A_206F_202C_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - private readonly QuestController _questController; private readonly FateController _fateController; @@ -208,339 +60,88 @@ internal sealed class QuestJournalUtils public void ShowContextMenu(IQuestInfo questInfo, Quest? quest, string label) { - int num = ((!_200E_202B_200D_206B_200D_200D_206E_200D_206E_200E_206A_206C_206D_202D_206E_206D_202E_202A_206D_202E_200F_202E_200C_200B_206A_200E_202B_200C_206B_200C_200D_206A_200F_200F_206E_202A_202C_200D_206C_202D_202E(ImGuiMouseButton.Right)) ? (-208587597) : (-208587598)); - while (true) + if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) { - int num2 = num; - int num3 = -208587597; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -208587598; - break; - case 1: - OpenContextMenu(questInfo); - num = -208587597; - break; - case 0: - DrawContextMenu(questInfo, quest, label); - return; - } + OpenContextMenu(questInfo); } + DrawContextMenu(questInfo, quest, label); } - [MethodImpl(MethodImplOptions.NoInlining)] public void OpenContextMenu(IQuestInfo questInfo) { - ImU8String imU8String = new ImU8String(12, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(324267625)); - imU8String.AppendFormatted(questInfo.QuestId); - _200E_206D_202E_206F_206F_200D_202A_202B_206F_206E_200D_202D_206E_202C_206F_206B_202E_202D_202B_202B_202D_206F_206B_200D_206A_206D_206B_200C_206A_206A_200B_206C_200F_200B_200F_202D_200B_200E_206F_206C_202E(imU8String, ImGuiPopupFlags.None); + ImU8String strId = new ImU8String(12, 1); + strId.AppendLiteral("##QuestPopup"); + strId.AppendFormatted(questInfo.QuestId); + ImGui.OpenPopup(strId); } - [MethodImpl(MethodImplOptions.NoInlining)] public bool DrawContextMenu(IQuestInfo questInfo, Quest? quest, string label) { - ImU8String imU8String = new ImU8String(12, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-307761140)); - imU8String.AppendFormatted(questInfo.QuestId); - using ImRaii.PopupDisposable popupDisposable = _200F_200D_206D_200D_200C_200C_200C_206B_200B_206B_200C_200B_202A_200D_206D_206D_206F_206F_206B_200B_202C_206F_200E_206C_202E_206C_206F_202C_202E_202D_202E_206C_200F_202C_200B_206C_202D_200D_202E_206A_202E(imU8String); - int num = ((!(!popupDisposable)) ? (-1838329671) : (-1838329669)); - int num7; - while (true) + ImU8String id = new ImU8String(12, 1); + id.AppendLiteral("##QuestPopup"); + id.AppendFormatted(questInfo.QuestId); + using ImRaii.PopupDisposable popupDisposable = ImRaii.Popup(id); + if (!popupDisposable) { - int num2 = num; - int num3 = -1838329665; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 5: - num = (_202C_202C_202D_206F_202B_200C_200B_202B_200C_202C_202C_200E_202C_200C_202B_206D_206F_200D_200D_206D_200D_206D_206D_200E_200F_200E_206A_202A_202E_200C_202A_200F_202A_200C_202D_206C_202D_200D_200D_206B_202E(quest.Root) ? (-1838329666) : (-1838329672)); - continue; - case 8: - num = ((quest == null) ? (-1838329666) : (-1838329670)); - continue; - case 6: - num = ((!_questFunctions.IsReadyToAcceptQuest(questInfo.QuestId)) ? (-1838329666) : (-1838329673)); - continue; - case 9: - num = (_customDeliveryController.IsRunning ? (-1838329666) : (-1838329668)); - continue; - case 0: - num = -1838329669; - continue; - case 4: - return false; - case 2: - num = (_seasonalDutyController.IsRunning ? (-1838329666) : (-1838329674)); - continue; - case 3: - num7 = ((!_attunementController.IsRunning) ? 1 : 0); - break; - case 7: - num = (_fateController.IsRunning ? (-1838329666) : (-1838329667)); - continue; - case 1: - num7 = 0; - break; - } - break; + return false; } - ImRaii.DisabledDisposable disabledDisposable = _202E_202D_202A_200B_206F_200C_202D_202C_206D_200B_200C_206C_200B_202A_202C_202D_206C_200F_206C_202B_200E_202C_206B_200E_200E_200B_202B_206D_202B_206C_200B_202B_206B_206C_202C_206C_202C_202B_206B_200F_202E(num7 == 0); - try + using (ImRaii.Disabled(!_questFunctions.IsReadyToAcceptQuest(questInfo.QuestId) || quest == null || quest.Root.Disabled || _fateController.IsRunning || _seasonalDutyController.IsRunning || _customDeliveryController.IsRunning || _attunementController.IsRunning)) { - num = ((!_202A_200B_202D_202B_202E_200B_200D_206B_202D_206C_202E_200E_200D_200C_206F_202D_206F_206D_206F_200B_202C_206F_200D_200B_206D_206C_202E_206F_200C_200E_200E_200F_200C_206D_206D_200F_206A_202E_202A_206E_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2129565064), false, true)) ? (-220845706) : (-220845707)); - while (true) + if (ImGui.MenuItem("Start as next quest")) { - int num8 = num; - int num3 = -220845705; - int num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 0: - num = -220845707; - break; - case 2: - _fateController.Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1441653773)); - _seasonalDutyController.Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-21196093)); - _customDeliveryController.Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-21196093)); - _attunementController.Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-21196093)); - _questController.SetNextQuest(quest); - _questController.Start(label); - num = -220845706; - break; - case 1: - goto end_IL_0205; - } - continue; - end_IL_0205: - break; + _fateController.Stop("Quest journal start"); + _seasonalDutyController.Stop("Quest journal start"); + _customDeliveryController.Stop("Quest journal start"); + _attunementController.Stop("Quest journal start"); + _questController.SetNextQuest(quest); + _questController.Start(label); } } - finally + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) { - num = ((disabledDisposable == null) ? (-1086471845) : (-1086471846)); - while (true) + if (!_questFunctions.IsReadyToAcceptQuest(questInfo.QuestId)) { - int num11 = num; - int num3 = -1086471845; - int num4 = num11; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1086471846; - break; - case 1: - _206D_200B_202C_200C_206B_206F_206D_200C_202D_206E_206C_202D_202E_206B_206F_206B_202A_200E_200E_200D_202D_206B_206A_202B_206E_202C_206E_202B_202D_200C_206C_202B_200E_206C_202A_206B_206D_206A_202A_206E_202E((IDisposable)disabledDisposable); - num = -1086471845; - break; - case 0: - goto end_IL_02db; - } - continue; - end_IL_02db: - break; + ImGui.SetTooltip("Quest is not ready to accept"); + } + else if (quest == null) + { + ImGui.SetTooltip("Quest has no path available"); + } + else if (quest.Root.Disabled) + { + ImGui.SetTooltip("Quest path is disabled"); } } - num = ((!_202B_200D_202C_202C_202C_202A_200B_200E_206C_206E_202D_202A_200F_200E_200F_202B_206C_200F_206B_206B_200F_200F_200F_202A_202C_206E_202D_202B_206F_202B_206F_202C_206E_206A_206B_206B_206A_206E_206E_202C_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? (-905088776) : (-905088771)); - string text = default(string); - while (true) + List<ElementId> incompletePrerequisiteQuests = GetIncompletePrerequisiteQuests(questInfo); + using (ImRaii.Disabled(incompletePrerequisiteQuests.Count == 0)) { - int num12 = num; - int num3 = -905088776; - int num4 = num12; - int num13 = num4 + num3; - int num14 = num4 & num3; - switch (num13 - (num14 + num14)) + if (ImGui.MenuItem(incompletePrerequisiteQuests.Count switch { - case 4: - num = ((!_202C_202C_202D_206F_202B_200C_200B_202B_200C_202C_202C_200E_202C_200C_202B_206D_206F_200D_200D_206D_200D_206D_206D_200E_200F_200E_206A_202A_202E_200C_202A_200F_202A_200C_202D_206C_202D_200D_200D_206B_202E(quest.Root)) ? (-905088776) : (-905088774)); - break; - case 5: - num = (_questFunctions.IsReadyToAcceptQuest(questInfo.QuestId) ? (-905088775) : (-905088770)); - break; - case 6: - _202C_202D_200B_200F_202B_206E_206D_200B_206D_200C_202B_202A_206A_206E_202B_206D_202E_202D_206B_200C_200B_200C_202B_206D_200C_202A_206A_200C_200D_202C_206C_200C_200E_202C_206F_202A_202A_202B_200E_206E_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-682815481)); - num = -905088776; - break; - case 2: - _202C_202D_200B_200F_202B_206E_206D_200B_206D_200C_202B_202A_206A_206E_202B_206D_202E_202D_206B_200C_200B_200C_202B_206D_200C_202A_206A_200C_200D_202C_206C_200C_200E_202C_206F_202A_202A_202B_200E_206E_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(188104567)); - num = -905088776; - break; - case 1: - num = ((quest != null) ? (-905088772) : (-905088773)); - break; - case 7: - num = -905088771; - break; - case 3: - _202C_202D_200B_200F_202B_206E_206D_200B_206D_200C_202B_202A_206A_206E_202B_206D_202E_202D_206B_200C_200B_200C_202B_206D_200C_202A_206A_200C_200D_202C_206C_200C_200E_202C_206F_202A_202A_202B_200E_206E_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1910798786)); - num = -905088776; - break; - case 0: + 0 => "Add quest and requirements to priority", + 1 => "Add 1 quest to priority", + _ => $"Add {incompletePrerequisiteQuests.Count} quests to priority", + })) { - List<ElementId> incompletePrerequisiteQuests = GetIncompletePrerequisiteQuests(questInfo); - disabledDisposable = _202E_202D_202A_200B_206F_200C_202D_202C_206D_200B_200C_206C_200B_202A_202C_202D_206C_200F_206C_202B_200E_202C_206B_200E_200E_200B_202B_206D_202B_206C_200B_202B_206B_206C_202C_206C_202C_202B_206B_200F_202E(incompletePrerequisiteQuests.Count == 0); - try - { - int count = incompletePrerequisiteQuests.Count; - num = ((count == 0) ? (-224870237) : (-224870236)); - while (true) - { - int num15 = num; - num3 = -224870234; - num4 = num15; - int num16 = num4 + num3; - int num17 = num4 & num3; - switch (num16 - (num17 + num17)) - { - case 8: - AddRequiredQuestsToPriority(questInfo, incompletePrerequisiteQuests); - num = -224870238; - break; - case 3: - num = -224870233; - break; - case 5: - text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-480064653); - num = -224870239; - break; - case 0: - text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1421530180); - num = -224870239; - break; - case 2: - num = ((count == 1) ? (-224870234) : (-224870235)); - break; - case 7: - num = ((!_202A_200B_202D_202B_202E_200B_200D_206B_202D_206C_202E_200E_200D_200C_206F_202D_206F_206D_206F_200B_202C_206F_200D_200B_206D_206C_202E_206F_200C_200E_200E_200F_200C_206D_206D_200F_206A_202E_202A_206E_202E((ImU8String)text, false, true)) ? (-224870238) : (-224870226)); - break; - case 6: - num = -224870236; - break; - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(23, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2063300836)); - defaultInterpolatedStringHandler.AppendFormatted(incompletePrerequisiteQuests.Count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2146435518)); - text = defaultInterpolatedStringHandler.ToStringAndClear(); - num = -224870239; - break; - } - case 4: - goto end_IL_04b0; - } - continue; - end_IL_04b0: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? (-231672322) : (-231672323)); - while (true) - { - int num18 = num; - num3 = -231672321; - num4 = num18; - int num19 = num4 + num3; - int num20 = num4 & num3; - switch (num19 - (num20 + num20)) - { - case 0: - num = -231672323; - break; - case 2: - _206D_200B_202C_200C_206B_206F_206D_200C_202D_206E_206C_202D_202E_206B_206F_206B_202A_200E_200E_200D_202D_206B_206A_202B_206E_202C_206E_202B_202D_200C_206C_202B_200E_206C_202A_206B_206D_206A_202A_206E_202E((IDisposable)disabledDisposable); - num = -231672322; - break; - case 1: - goto end_IL_060f; - } - continue; - end_IL_060f: - break; - } - } - num = ((!_202B_200D_202C_202C_202C_202A_200B_200E_206C_206E_202D_202A_200F_200E_200F_202B_206C_200F_206B_206B_200F_200F_200F_202A_202C_206E_202D_202B_206F_202B_206F_202C_206E_206A_206B_206B_206A_206E_206E_202C_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? 1039916492 : 1039916487); - while (true) - { - int num21 = num; - num3 = 1039916494; - num4 = num21; - int num22 = num4 + num3; - int num23 = num4 & num3; - string text2; - switch (num22 - (num23 + num23)) - { - default: - continue; - case 1: - text2 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-479153751); - goto IL_06d8; - case 3: - _202C_202D_200B_200F_202B_206E_206D_200B_206D_200C_202B_202A_206A_206E_202B_206D_202E_202D_206B_200C_200B_200C_202B_206D_200C_202A_206A_200C_200D_202C_206C_200C_200E_202C_206F_202A_202A_202B_200E_206E_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-413729011)); - num = 1039916492; - continue; - case 5: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(70, 2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1363766595)); - defaultInterpolatedStringHandler2.AppendFormatted(incompletePrerequisiteQuests.Count - 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-872994784)); - defaultInterpolatedStringHandler2.AppendFormatted((incompletePrerequisiteQuests.Count - 1 == 1) ? global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2004137011) : global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1391970161)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-640371341)); - text2 = defaultInterpolatedStringHandler2.ToStringAndClear(); - goto IL_06d8; - } - case 2: - num = ((!_206C_202B_202D_200E_200C_206F_206A_200E_202E_202C_202D_200B_206D_200D_206F_206B_206C_202D_206D_206B_202C_200F_206E_206E_202B_200F_206D_200F_202A_202C_200E_200E_202C_202D_202A_200C_206E_206D_202A_206C_202E(label, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1364608423))) ? 1039916486 : 1039916489); - continue; - case 7: - num = ((!_202A_200B_202D_202B_202E_200B_200D_206B_202D_206C_202E_200E_200D_200C_206F_202D_206F_206D_206F_200B_202C_206F_200D_200B_206D_206C_202E_206F_200C_200E_200E_200F_200C_206D_206D_200F_206A_202E_202A_206E_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1664854212), false, true)) ? 1039916486 : 1039916488); - continue; - case 0: - num = 1039916487; - continue; - case 9: - num = ((incompletePrerequisiteQuests.Count != 0) ? 1039916490 : 1039916493); - continue; - case 6: - { - _questChainComponent.SelectQuest(questInfo.QuestId); - Action<string>? selectTabAction = _questChainComponent.SelectTabAction; - if (selectTabAction == null) - { - break; - } - selectTabAction(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(644196516)); - num = 1039916486; - continue; - } - case 4: - num = ((incompletePrerequisiteQuests.Count == 1) ? 1039916495 : 1039916491); - continue; - case 8: - break; - IL_06d8: - _202C_202D_200B_200F_202B_206E_206D_200B_206D_200C_202B_202A_206A_206E_202B_206D_202E_202D_206B_200C_200B_200C_202B_206D_200C_202A_206A_200C_200D_202C_206C_200C_200E_202C_206F_202A_202A_202B_200E_206E_202E((ImU8String)text2); - num = 1039916492; - continue; - } - break; - } - return true; - } + AddRequiredQuestsToPriority(questInfo, incompletePrerequisiteQuests); } } + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) + { + if (incompletePrerequisiteQuests.Count == 0) + { + ImGui.SetTooltip("No quests to add (quest may be complete, disabled, locked with no unlock path, or already in priority)"); + } + else + { + ImGui.SetTooltip((incompletePrerequisiteQuests.Count == 1) ? "Add this quest to the priority list" : $"Add this quest and {incompletePrerequisiteQuests.Count - 1} required {((incompletePrerequisiteQuests.Count - 1 == 1) ? "quest" : "quests")} to the priority list in completion order"); + } + } + if (label != "QuestChainComponent" && ImGui.MenuItem("View in Quest Chain")) + { + _questChainComponent.SelectQuest(questInfo.QuestId); + _questChainComponent.SelectTabAction?.Invoke("Quest Chain"); + } + return true; } public unsafe List<ElementId> GetIncompletePrerequisiteQuests(IQuestInfo questInfo) @@ -549,424 +150,133 @@ internal sealed class QuestJournalUtils HashSet<ElementId> visited = new HashSet<ElementId>(); CollectPrerequisitesRecursive(questInfo, list, visited); list.Reverse(); - List<ElementId> list2 = (from qId in (from qId in list.Where(delegate(ElementId qId) - { - IQuestInfo questInfo2; - int num9 = (_questData.TryGetQuestInfo(qId, out questInfo2) ? 953970550 : 953970544); - QuestId questId2 = default(QuestId); - while (true) - { - int num10 = num9; - int num11 = 953970550; - int num12 = num10; - switch ((num12 | num11) - (num12 & num11)) - { - case 7: - return true; - case 6: - return false; - case 2: - return false; - case 5: - num9 = 953970544; - break; - case 8: - questId2 = qId as QuestId; - num9 = (((object)questId2 == null) ? 953970551 : 953970546); - break; - case 3: - return false; - case 0: - num9 = ((!questInfo2.IsRepeatable) ? 953970551 : 953970558); - break; - case 4: - num9 = ((!QuestManager.Instance()->IsDailyQuestCompleted(_003C_003Ec__DisplayClass17_0._206C_200C_206B_202A_202C_202A_200C_202C_200D_206E_200B_206F_202C_200D_200C_200E_206B_206E_200C_206B_206B_202B_206D_200B_206E_200E_200F_202D_206F_202C_206C_206F_200E_206D_206C_202E_200D_200F_202C_202B_202E((ElementId)questId2))) ? 953970545 : 953970548); - break; - case 1: - num9 = ((!_questFunctions.IsQuestComplete(qId)) ? 953970545 : 953970549); - break; - } - } - }) - where !_questFunctions.IsQuestUnobtainable(qId) - where _questRegistry.IsKnownQuest(qId) - select qId).Where(delegate(ElementId qId) + Quest quest2; + List<ElementId> list2 = (from qId in list.Where(delegate(ElementId qId) { - Quest quest2; - int num9 = ((!_questRegistry.TryGetQuest(qId, out quest2)) ? 2035464301 : 2035464302); - while (true) + if (!_questData.TryGetQuestInfo(qId, out IQuestInfo questInfo2)) { - int num10 = num9; - int num11 = 2035464300; - int num12 = num10; - int num13 = num12 + num11; - int num14 = num12 & num11; - switch (num13 - (num14 + num14)) + return false; + } + if (questInfo2.IsRepeatable && qId is QuestId questId2) + { + if (QuestManager.Instance()->IsDailyQuestCompleted(questId2.Value)) { - case 3: return false; - case 1: - return true; - case 0: - num9 = 2035464302; - break; - case 2: - num9 = ((!_003C_003Ec__DisplayClass17_0._200D_200C_202C_200C_200D_206B_206B_200D_206D_202C_206E_202E_200F_202E_200E_206C_206E_200C_206B_200D_202C_202A_200F_200E_202A_200C_200E_200C_202A_206C_200E_206A_202D_200D_200B_206B_202A_206F_200C_200E_202E(quest2.Root)) ? 2035464301 : 2035464303); - break; } } + else if (_questFunctions.IsQuestComplete(qId)) + { + return false; + } + return true; }) - where !_questController.ManualPriorityQuests.Any((Quest q) => _003C_003Ec__DisplayClass17_1._200D_206D_200F_202D_200B_202D_200B_206D_202A_200C_200F_206E_200B_200E_202E_200B_200E_200D_206D_202E_206F_202E_206C_206C_202D_206D_206D_206E_206C_200F_200B_206A_200F_202E_202D_200C_202C_206C_202A_206C_202E(q.Id, qId)) + where !_questFunctions.IsQuestUnobtainable(qId) + where _questRegistry.IsKnownQuest(qId) + where (!_questRegistry.TryGetQuest(qId, out quest2) || !quest2.Root.Disabled) ? true : false + where !_questController.ManualPriorityQuests.Any((Quest q) => q.Id.Equals(qId)) select qId).ToList(); list2.Reverse(); bool flag = false; - int num = ((!questInfo.IsRepeatable) ? 1364265692 : 1364265683); - QuestId questId = default(QuestId); - bool flag2 = default(bool); - Quest quest = default(Quest); - bool flag3 = default(bool); - while (true) + flag = ((!questInfo.IsRepeatable || !(questInfo.QuestId is QuestId questId)) ? (!_questFunctions.IsQuestComplete(questInfo.QuestId)) : (!QuestManager.Instance()->IsDailyQuestCompleted(questId.Value))); + Quest quest; + bool flag2 = _questRegistry.TryGetQuest(questInfo.QuestId, out quest) && quest.Root.Disabled; + bool flag3 = _questFunctions.IsQuestLocked(questInfo.QuestId) && questInfo.PreviousQuests.Count == 0; + if (flag && !flag2 && !flag3 && !_questFunctions.IsQuestUnobtainable(questInfo.QuestId) && _questRegistry.IsKnownQuest(questInfo.QuestId) && !_questController.ManualPriorityQuests.Any((Quest q) => q.Id.Equals(questInfo.QuestId))) { - int num2 = num; - int num3 = 1364265690; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num7; - int num8; - switch (num5 - (num6 + num6)) - { - case 13: - flag = !QuestManager.Instance()->IsDailyQuestCompleted(_202C_206D_202B_202E_206F_200C_200D_200E_202C_200D_200D_202D_206B_200F_206F_206E_200D_202B_206D_200E_206F_202C_200C_206D_206D_202C_206E_202D_202B_200F_206C_200D_200E_202E_202E_206E_206E_202A_200E_206D_202E((ElementId)questId)); - num = 1364265684; - break; - case 3: - num = (_questFunctions.IsQuestUnobtainable(questInfo.QuestId) ? 1364265690 : 1364265685); - break; - case 8: - num = (flag2 ? 1364265690 : 1364265691); - break; - case 4: - num7 = (_202C_202C_202D_206F_202B_200C_200B_202B_200C_202C_202C_200E_202C_200C_202B_206D_206F_200D_200D_206D_200D_206D_206D_200E_200F_200E_206A_202A_202E_200C_202A_200F_202A_200C_202D_206C_202D_200D_200D_206B_202E(quest.Root) ? 1 : 0); - goto IL_01b6; - case 7: - num7 = 0; - goto IL_01b6; - case 6: - flag = !_questFunctions.IsQuestComplete(questInfo.QuestId); - num = 1364265684; - break; - case 12: - num = (_questController.ManualPriorityQuests.Any((Quest q) => _003C_003Ec__DisplayClass17_0._202A_202C_202E_200D_206F_202A_206E_206B_200F_202A_202E_206C_206A_206F_202D_202A_200F_206B_206B_206D_202D_206D_206D_206A_200D_200E_200D_206F_200B_202A_206C_202A_206C_206B_200F_200B_200E_202B_202C_200D_202E(q.Id, questInfo.QuestId)) ? 1364265690 : 1364265681); - break; - case 1: - num = (flag3 ? 1364265690 : 1364265689); - break; - case 9: - questId = questInfo.QuestId as QuestId; - num = (((object)questId == null) ? 1364265692 : 1364265687); - break; - case 10: - num8 = ((questInfo.PreviousQuests.Count == 0) ? 1 : 0); - goto IL_0302; - case 2: - num = 1364265683; - break; - case 14: - num = ((!_questRegistry.TryGetQuest(questInfo.QuestId, out quest)) ? 1364265693 : 1364265694); - break; - case 5: - num8 = 0; - goto IL_0302; - case 0: - return list2; - case 15: - num = ((!_questRegistry.IsKnownQuest(questInfo.QuestId)) ? 1364265690 : 1364265686); - break; - case 11: - { - list2.Add(questInfo.QuestId); - num = 1364265690; - break; - } - IL_01b6: - flag2 = (byte)num7 != 0; - num = ((!_questFunctions.IsQuestLocked(questInfo.QuestId)) ? 1364265695 : 1364265680); - break; - IL_0302: - flag3 = (byte)num8 != 0; - num = ((!flag) ? 1364265690 : 1364265682); - break; - } + list2.Add(questInfo.QuestId); } + return list2; } private void CollectPrerequisitesRecursive(IQuestInfo questInfo, List<ElementId> prerequisites, HashSet<ElementId> visited) { - int num = ((!visited.Contains(questInfo.QuestId)) ? 941451724 : 941451726); - IQuestInfo questInfo3 = default(IQuestInfo); - PreviousQuestInfo current2 = default(PreviousQuestInfo); - PreviousQuestInfo current = default(PreviousQuestInfo); - IQuestInfo questInfo2 = default(IQuestInfo); - while (true) + if (visited.Contains(questInfo.QuestId)) { - int num2 = num; - int num3 = 941451727; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return; + } + visited.Add(questInfo.QuestId); + if (questInfo.PreviousQuests.Count <= 0) + { + return; + } + if (questInfo.PreviousQuestJoin == EQuestJoin.All) + { + foreach (PreviousQuestInfo previousQuest in questInfo.PreviousQuests) { - case 0: - num = 941451726; - break; - case 2: - { - if (questInfo.PreviousQuestJoin == EQuestJoin.All) + if (_questData.TryGetQuestInfo(previousQuest.QuestId, out IQuestInfo questInfo2)) { - num = 941451723; - break; - } - if (questInfo.PreviousQuestJoin != EQuestJoin.AtLeastOne) - { - return; - } - using ImmutableList<PreviousQuestInfo>.Enumerator enumerator = questInfo.PreviousQuests.GetEnumerator(); - num = -1667593406; - while (true) - { - int num6 = num; - num3 = -1667593405; - num4 = num6; - int num7 = num4 + num3; - int num8 = num4 & num3; - switch (num7 - (num8 + num8)) + CollectPrerequisitesRecursive(questInfo2, prerequisites, visited); + if (!prerequisites.Contains(previousQuest.QuestId)) { - case 6: - CollectPrerequisitesRecursive(questInfo3, prerequisites, visited); - num = (prerequisites.Contains(current2.QuestId) ? (-1667593405) : (-1667593401)); - break; - case 1: - num = (enumerator.MoveNext() ? (-1667593407) : (-1667593405)); - break; - case 2: - current2 = enumerator.Current; - num = (_questFunctions.IsQuestComplete(current2.QuestId) ? (-1667593406) : (-1667593402)); - break; - case 3: - num = -1667593406; - break; - case 4: - prerequisites.Add(current2.QuestId); - return; - case 5: - num = ((!_questData.TryGetQuestInfo(current2.QuestId, out questInfo3)) ? (-1667593405) : (-1667593403)); - break; - case 0: - return; + prerequisites.Add(previousQuest.QuestId); } } } - case 1: - return; - case 3: - visited.Add(questInfo.QuestId); - if (questInfo.PreviousQuests.Count > 0) - { - num = 941451725; - break; - } - return; - case 4: + return; + } + if (questInfo.PreviousQuestJoin != EQuestJoin.AtLeastOne) + { + return; + } + foreach (PreviousQuestInfo previousQuest2 in questInfo.PreviousQuests) + { + if (_questFunctions.IsQuestComplete(previousQuest2.QuestId)) { - using ImmutableList<PreviousQuestInfo>.Enumerator enumerator = questInfo.PreviousQuests.GetEnumerator(); - num = 1353867004; - while (true) + continue; + } + if (_questData.TryGetQuestInfo(previousQuest2.QuestId, out IQuestInfo questInfo3)) + { + CollectPrerequisitesRecursive(questInfo3, prerequisites, visited); + if (!prerequisites.Contains(previousQuest2.QuestId)) { - int num5 = num; - num3 = 1353867006; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - prerequisites.Add(current.QuestId); - num = 1353867004; - break; - case 4: - current = enumerator.Current; - num = ((!_questData.TryGetQuestInfo(current.QuestId, out questInfo2)) ? 1353867004 : 1353867007); - break; - case 1: - CollectPrerequisitesRecursive(questInfo2, prerequisites, visited); - num = (prerequisites.Contains(current.QuestId) ? 1353867004 : 1353867003); - break; - case 0: - num = 1353867004; - break; - case 2: - num = (enumerator.MoveNext() ? 1353867002 : 1353867005); - break; - case 3: - return; - } + prerequisites.Add(previousQuest2.QuestId); } } - } + break; } } - [MethodImpl(MethodImplOptions.NoInlining)] public void AddRequiredQuestsToPriority(IQuestInfo questInfo, List<ElementId> prerequisiteQuests) { int num = 0; - int num2; - using (List<ElementId>.Enumerator enumerator = prerequisiteQuests.GetEnumerator()) + foreach (ElementId prerequisiteQuest in prerequisiteQuests) { - num2 = 1706753795; - while (true) + if (_questController.AddQuestPriority(prerequisiteQuest)) { - int num3 = num2; - int num4 = 1706753793; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 0: - num2 = 1706753795; - break; - case 1: - { - int num8 = num; - num4 = 1; - num5 = num8; - int num9 = num5 ^ num4; - int num10 = num5 & num4; - num = num9 + (num10 + num10); - num2 = 1706753795; - break; - } - case 2: - num2 = (enumerator.MoveNext() ? 1706753794 : 1706753797); - break; - case 3: - { - ElementId current = enumerator.Current; - num2 = ((!_questController.AddQuestPriority(current)) ? 1706753795 : 1706753792); - break; - } - case 4: - goto end_IL_0015; - } - continue; - end_IL_0015: - break; + num++; } } - num2 = ((num <= 0) ? (-1189358037) : (-1189358036)); - while (true) + if (num > 0) { - int num11 = num2; - int num4 = -1189358033; - int num5 = num11; - string text2; - string text; - IChatGui chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = -1189358036; - break; - case 2: - text2 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-14946342); - goto IL_01b1; - case 4: - _200D_200E_206A_206E_202D_200E_202A_202B_206A_200F_202E_202C_206B_206C_206C_202A_206D_206C_202E_206D_200C_206A_206E_200F_200D_206C_206D_202A_200B_206F_202D_202D_200C_206A_206B_202B_200F_202B_202A_200D_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1192976444), new object[1] { questInfo.Name }); - _202E_200B_200B_200F_202C_206B_206C_202C_206D_206C_202E_200C_206D_202C_206C_206C_206A_202D_206F_202C_206A_202B_200E_202C_200E_206D_200E_202C_200C_200B_200E_206E_202B_206F_206C_206B_200F_206A_206A_200E_202E(_chatGui, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1593799777), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); - return; - case 1: - text2 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2004137011); - goto IL_01b1; - case 3: - { - num2 = ((num == 1) ? (-1189358034) : (-1189358035)); - break; - } - IL_01b1: - text = text2; - _200F_206B_200D_206E_202B_206B_200D_206D_200B_206F_202A_202A_206A_206B_206A_200B_206C_206E_206F_202B_200B_206F_202D_202C_206C_202C_202A_200E_202A_200B_206D_206A_206E_200B_202E_200B_206D_206D_206F_202C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(681991038), new object[3] { num, text, questInfo.Name }); - chatGui = _chatGui; - defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(25, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(901909596)); - defaultInterpolatedStringHandler.AppendFormatted(num); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1051702537)); - defaultInterpolatedStringHandler.AppendFormatted(text); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-904513196)); - _202E_200B_200B_200F_202C_206B_206C_202C_206D_206C_202E_200C_206D_202C_206C_206C_206A_202D_206F_202C_206A_202B_200E_202C_200E_206D_200E_202C_200C_200B_200E_206E_202B_206F_206C_206B_200F_206A_206A_200E_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); - return; - } + string text = ((num == 1) ? "quest" : "quests"); + _logger.LogInformation("Added {Count} {QuestWord} for '{QuestName}' to priority list", num, text, questInfo.Name); + _chatGui.Print($"Added {num} {text} to priority list.", "Questionable", 576); + } + else + { + _logger.LogWarning("No quests were added to priority list for '{QuestName}'", questInfo.Name); + _chatGui.Print("No quests to add (may be complete, disabled, locked with no unlock path, or already in priority).", "Questionable", 576); } } - [MethodImpl(MethodImplOptions.NoInlining)] public void AddAllAvailableQuests() { - if (_200F_206B_200B_200F_202A_202E_206A_206C_200E_202E_206A_206F_202E_206F_206F_200F_206D_206A_202D_206F_206E_200F_206B_202E_206A_200F_202B_200F_202C_200D_202B_202B_206A_206E_200E_202C_200D_206A_200C_206A_202E() >= _nextAvailableCountRefreshMs) + if (Environment.TickCount64 >= _nextAvailableCountRefreshMs) { - _nextAvailableCountRefreshMs = _200F_206B_200B_200F_202A_202E_206A_206C_200E_202E_206A_206F_202E_206F_206F_200F_206D_206A_202D_206F_206E_200F_206B_202E_206A_200F_202B_200F_202C_200D_202B_202B_206A_206E_200E_202C_200D_206A_200C_206A_202E() + 1000; + _nextAvailableCountRefreshMs = Environment.TickCount64 + 1000; try { _availableQuestCount = _questRegistry.AllQuests.Count(delegate(Quest quest) { - int num10 = ((quest?.Info == null) ? (-46476095) : (-46476092)); - QuestRoot root = default(QuestRoot); - QuestInfo questInfo = default(QuestInfo); - while (true) + if (quest?.Info != null) { - int num11 = num10; - int num12 = -46476096; - int num13 = num11; - int num14 = num13 + num12; - int num15 = num13 & num12; - switch (num14 - (num15 + num15)) + QuestRoot root = quest.Root; + if (root != null && !root.Disabled && !_questFunctions.IsQuestRemoved(quest.Id) && _questFunctions.IsReadyToAcceptQuest(quest.Id) && !_questFunctions.IsQuestComplete(quest.Id) && !_questFunctions.IsQuestAccepted(quest.Id) && !quest.Info.IsRepeatable && !(quest.Info is QuestInfo { MoogleDeliveryLevel: >0 })) { - case 8: - num10 = (_202C_202C_202D_206F_202B_200C_200B_202B_200C_202C_202C_200E_202C_200C_202B_206D_206F_200D_200D_206D_200D_206D_206D_200E_200F_200E_206A_202A_202E_200C_202A_200F_202A_200C_202D_206C_202D_200D_200D_206B_202E(root) ? (-46476095) : (-46476094)); - break; - case 5: - num10 = ((questInfo.MoogleDeliveryLevel > 0) ? (-46476095) : (-46476096)); - break; - case 9: - num10 = ((!_questFunctions.IsReadyToAcceptQuest(quest.Id)) ? (-46476095) : (-46476085)); - break; - case 2: - num10 = (_questFunctions.IsQuestRemoved(quest.Id) ? (-46476095) : (-46476087)); - break; - case 7: - num10 = (quest.Info.IsRepeatable ? (-46476095) : (-46476093)); - break; - case 4: - root = quest.Root; - num10 = ((root == null) ? (-46476095) : (-46476088)); - break; - case 11: - num10 = (_questFunctions.IsQuestComplete(quest.Id) ? (-46476095) : (-46476090)); - break; - case 10: - num10 = -46476092; - break; - case 1: - return false; - case 6: - num10 = (_questFunctions.IsQuestAccepted(quest.Id) ? (-46476095) : (-46476089)); - break; - case 3: - questInfo = quest.Info as QuestInfo; - num10 = ((questInfo == null) ? (-46476096) : (-46476091)); - break; - case 0: - return !_questController.ManualPriorityQuests.Any((Quest q) => _003C_003Ec__DisplayClass20_0._200F_200F_200B_206D_200E_206F_206B_200E_206E_206F_200D_206B_202B_202C_206B_206B_202E_206B_200D_202D_202E_200D_200B_200D_206E_200D_202B_200B_202E_200E_200B_200F_202B_206F_200F_202D_200E_202A_206F_202C_202E(q.Id, quest.Id)); + return !_questController.ManualPriorityQuests.Any((Quest q) => q.Id.Equals(quest.Id)); } } + return false; }); } catch @@ -975,205 +285,39 @@ internal sealed class QuestJournalUtils } } int availableQuestCount = _availableQuestCount; - ImRaii.DisabledDisposable disabledDisposable = _202E_202D_202A_200B_206F_200C_202D_202C_206D_200B_200C_206C_200B_202A_202C_202D_206C_200F_206C_202B_200E_202C_206B_200E_200E_200B_202B_206D_202B_206C_200B_202B_206B_206C_202C_206C_202C_202B_206B_200F_202E(availableQuestCount == 0); - int num; - try + using (ImRaii.Disabled(availableQuestCount == 0)) { - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.ListOl, _206D_200B_202B_206E_202A_202C_200D_202C_206A_202E_202B_206C_206F_202E_200B_202E_202D_200E_206D_206E_206E_206F_202E_202B_206A_202C_206C_206A_202D_202C_206A_202A_206A_202B_200D_206F_200C_200B_202D_202C_202E())) ? 1356896523 : 1356896526); - int num7 = default(int); - while (true) + if (UiThemeUtils.IconButton(FontAwesomeIcon.ListOl, ImGui.GetFrameHeight())) { - int num2 = num; - int num3 = 1356896527; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - string text; - string value; - IChatGui chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler; - switch (num5 - (num6 + num6)) - { - case 0: - text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-14946342); - goto IL_00ee; - case 2: - text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(576325633); - goto IL_00ee; - case 3: - num = 1356896526; - break; - case 1: - num7 = _questController.AddAllAvailableQuests(); - num = ((num7 == 1) ? 1356896525 : 1356896527); - break; - case 4: - goto end_IL_0093; - IL_00ee: - value = text; - chatGui = _chatGui; - defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(26, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(901909596)); - defaultInterpolatedStringHandler.AppendFormatted(num7); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1051702537)); - defaultInterpolatedStringHandler.AppendFormatted(value); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1585565384)); - _202E_200B_200B_200F_202C_206B_206C_202C_206D_206C_202E_200C_206D_202C_206C_206C_206A_202D_206F_202C_206A_202B_200E_202C_200E_206D_200E_202C_200C_200B_200E_206E_202B_206F_206C_206B_200F_206A_206A_200E_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); - _nextAvailableCountRefreshMs = 0L; - num = 1356896523; - break; - } - continue; - end_IL_0093: - break; + int num = _questController.AddAllAvailableQuests(); + string value = ((num == 1) ? "quest" : "quests"); + _chatGui.Print($"Added {num} {value} to priority queue.", "Questionable", 576); + _nextAvailableCountRefreshMs = 0L; } } - finally + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) { - num = ((disabledDisposable == null) ? 1785744636 : 1785744637); - while (true) + object obj2; + switch (availableQuestCount) { - int num8 = num; - int num3 = 1785744636; - int num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1785744637; - break; - case 0: - goto end_IL_01d0; - case 1: - _206D_200B_202C_200C_206B_206F_206D_200C_202D_206E_206C_202D_202E_206B_206F_206B_202A_200E_200E_200D_202D_206B_206A_202B_206E_202C_206E_202B_202D_200C_206C_202B_200E_206C_202A_206B_206D_206A_202A_206E_202E((IDisposable)disabledDisposable); - num = 1785744636; - break; - } - continue; - end_IL_01d0: - break; - } - } - num = ((!_202B_200D_202C_202C_202C_202A_200B_200E_206C_206E_202D_202A_200F_200E_200F_202B_206C_200F_206B_206B_200F_200F_200F_202A_202C_206E_202D_202B_206F_202B_206F_202C_206E_206A_206B_206B_206A_206E_206E_202C_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? (-1961186728) : (-1961186727)); - while (true) - { - int num9 = num; - int num3 = -1961186725; - int num4 = num9; - string text2; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 5: - num = -1961186727; - continue; - case 1: - _202C_202D_200B_200F_202B_206E_206D_200B_206D_200C_202B_202A_206A_206E_202B_206D_202E_202D_206B_200C_200B_200C_202B_206D_200C_202A_206A_200C_200D_202C_206C_200C_200E_202C_206F_202A_202A_202B_200E_206E_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1880631962)); - return; - case 4: - num = ((availableQuestCount == 1) ? (-1961186723) : (-1961186725)); - continue; - case 2: - num = ((availableQuestCount != 0) ? (-1961186721) : (-1961186726)); - continue; case 0: - text2 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1391970161); - break; - case 3: + ImGui.SetTooltip("No available quests to add"); return; - case 6: - text2 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2004137011); + default: + obj2 = "quests"; + break; + case 1: + obj2 = "quest"; break; } - string value2 = text2; - ImU8String imU8String = new ImU8String(27, 2); - imU8String.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(797689590)); - imU8String.AppendFormatted(availableQuestCount); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1897292361)); - imU8String.AppendFormatted(value2); - imU8String.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1829544865)); - _202C_202D_200B_200F_202B_206E_206D_200B_206D_200C_202B_202A_206A_206E_202B_206D_202E_202D_206B_200C_200B_200C_202B_206D_200C_202A_206A_200C_200D_202C_206C_200C_200E_202C_206F_202A_202A_202B_200E_206E_202E(imU8String); - num = -1961186728; + string value2 = (string)obj2; + ImU8String tooltip = new ImU8String(27, 2); + tooltip.AppendLiteral("Add "); + tooltip.AppendFormatted(availableQuestCount); + tooltip.AppendLiteral(" available "); + tooltip.AppendFormatted(value2); + tooltip.AppendLiteral(" to priority"); + ImGui.SetTooltip(tooltip); } } - - static bool _200E_202B_200D_206B_200D_200D_206E_200D_206E_200E_206A_206C_206D_202D_206E_206D_202E_202A_206D_202E_200F_202E_200C_200B_206A_200E_202B_200C_206B_200C_200D_206A_200F_200F_206E_202A_202C_200D_206C_202D_202E(ImGuiMouseButton P_0) - { - return ImGui.IsItemClicked(P_0); - } - - static void _200E_206D_202E_206F_206F_200D_202A_202B_206F_206E_200D_202D_206E_202C_206F_206B_202E_202D_202B_202B_202D_206F_206B_200D_206A_206D_206B_200C_206A_206A_200B_206C_200F_200B_200F_202D_200B_200E_206F_206C_202E(ImU8String P_0, ImGuiPopupFlags P_1) - { - ImGui.OpenPopup(P_0, P_1); - } - - static ImRaii.PopupDisposable _200F_200D_206D_200D_200C_200C_200C_206B_200B_206B_200C_200B_202A_200D_206D_206D_206F_206F_206B_200B_202C_206F_200E_206C_202E_206C_206F_202C_202E_202D_202E_206C_200F_202C_200B_206C_202D_200D_202E_206A_202E(ImU8String P_0) - { - return ImRaii.Popup(P_0); - } - - static bool _202C_202C_202D_206F_202B_200C_200B_202B_200C_202C_202C_200E_202C_200C_202B_206D_206F_200D_200D_206D_200D_206D_206D_200E_200F_200E_206A_202A_202E_200C_202A_200F_202A_200C_202D_206C_202D_200D_200D_206B_202E(QuestRoot P_0) - { - return P_0.Disabled; - } - - static ImRaii.DisabledDisposable _202E_202D_202A_200B_206F_200C_202D_202C_206D_200B_200C_206C_200B_202A_202C_202D_206C_200F_206C_202B_200E_202C_206B_200E_200E_200B_202B_206D_202B_206C_200B_202B_206B_206C_202C_206C_202C_202B_206B_200F_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static bool _202A_200B_202D_202B_202E_200B_200D_206B_202D_206C_202E_200E_200D_200C_206F_202D_206F_206D_206F_200B_202C_206F_200D_200B_206D_206C_202E_206F_200C_200E_200E_200F_200C_206D_206D_200F_206A_202E_202A_206E_202E(ImU8String P_0, bool P_1, bool P_2) - { - return ImGui.MenuItem(P_0, P_1, P_2); - } - - static void _206D_200B_202C_200C_206B_206F_206D_200C_202D_206E_206C_202D_202E_206B_206F_206B_202A_200E_200E_200D_202D_206B_206A_202B_206E_202C_206E_202B_202D_200C_206C_202B_200E_206C_202A_206B_206D_206A_202A_206E_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool _202B_200D_202C_202C_202C_202A_200B_200E_206C_206E_202D_202A_200F_200E_200F_202B_206C_200F_206B_206B_200F_200F_200F_202A_202C_206E_202D_202B_206F_202B_206F_202C_206E_206A_206B_206B_206A_206E_206E_202C_202E(ImGuiHoveredFlags P_0) - { - return ImGui.IsItemHovered(P_0); - } - - static void _202C_202D_200B_200F_202B_206E_206D_200B_206D_200C_202B_202A_206A_206E_202B_206D_202E_202D_206B_200C_200B_200C_202B_206D_200C_202A_206A_200C_200D_202C_206C_200C_200E_202C_206F_202A_202A_202B_200E_206E_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } - - static bool _206C_202B_202D_200E_200C_206F_206A_200E_202E_202C_202D_200B_206D_200D_206F_206B_206C_202D_206D_206B_202C_200F_206E_206E_202B_200F_206D_200F_202A_202C_200E_200E_202C_202D_202A_200C_206E_206D_202A_206C_202E(string P_0, string P_1) - { - return P_0 != P_1; - } - - static ushort _202C_206D_202B_202E_206F_200C_200D_200E_202C_200D_200D_202D_206B_200F_206F_206E_200D_202B_206D_200E_206F_202C_200C_206D_206D_202C_206E_202D_202B_200F_206C_200D_200E_202E_202E_206E_206E_202A_200E_206D_202E(ElementId P_0) - { - return P_0.Value; - } - - static void _200F_206B_200D_206E_202B_206B_200D_206D_200B_206F_202A_202A_206A_206B_206A_200B_206C_206E_206F_202B_200B_206F_202D_202C_206C_202C_202A_200E_202A_200B_206D_206A_206E_200B_202E_200B_206D_206D_206F_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static void _202E_200B_200B_200F_202C_206B_206C_202C_206D_206C_202E_200C_206D_202C_206C_206C_206A_202D_206F_202C_206A_202B_200E_202C_200E_206D_200E_202C_200C_200B_200E_206E_202B_206F_206C_206B_200F_206A_206A_200E_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); - } - - static void _200D_200E_206A_206E_202D_200E_202A_202B_206A_200F_202E_202C_206B_206C_206C_202A_206D_206C_202E_206D_200C_206A_206E_200F_200D_206C_206D_202A_200B_206F_202D_202D_200C_206A_206B_202B_200F_202B_202A_200D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static long _200F_206B_200B_200F_202A_202E_206A_206C_200E_202E_206A_206F_202E_206F_206F_200F_206D_206A_202D_206F_206E_200F_206B_202E_206A_200F_202B_200F_202C_200D_202B_202B_206A_206E_200E_202C_200D_206A_200C_206A_202E() - { - return Environment.TickCount64; - } - - static float _206D_200B_202B_206E_202A_202C_200D_202C_206A_202E_202B_206C_206F_202E_200B_202E_202D_200E_206D_206E_206E_206F_202E_202B_206A_202C_206C_206A_202D_202C_206A_202A_206A_202B_200D_206F_200C_200B_202D_202C_202E() - { - return ImGui.GetFrameHeight(); - } } diff --git a/Questionable/Questionable.Windows.JournalComponents/QuestMapComponent.cs b/Questionable/Questionable.Windows.JournalComponents/QuestMapComponent.cs index f739c23..798e2f4 100644 --- a/Questionable/Questionable.Windows.JournalComponents/QuestMapComponent.cs +++ b/Questionable/Questionable.Windows.JournalComponents/QuestMapComponent.cs @@ -1,10 +1,7 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Bindings.ImGui; using Dalamud.Game.Text.SeStringHandling.Payloads; using Dalamud.Interface; @@ -27,150 +24,7 @@ namespace Questionable.Windows.JournalComponents; internal sealed class QuestMapComponent { - private sealed record ZoneEntry(ushort TerritoryId, string Name, string DisplayName, string MapId) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206A_202C_202B_206A_200C_200C_200E_202A_206F_202B_200F_202E_206A_200B_202E_202A_202A_202C_206B_206D_202E_202B_206C_206F_200C_200D_206F_202D_206D_206C_206E_202E_206C_202C_206E_206A_202D_200E_206E_202B_202E(typeof(ZoneEntry).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202B_200D_200B_206F_202C_206F_206E_206B_202E_202B_200C_206F_206A_200C_202D_202D_206C_202C_202E_206E_202D_202C_202B_206E_206D_200F_206A_200D_200D_206E_202E_202B_200C_206A_206F_200F_202A_202B_200E_206D_202E(); - _206E_202B_206A_206D_206E_202B_202B_206A_202D_200C_206F_202C_202E_202B_200E_206F_202A_200C_206E_200B_206B_200C_206E_202B_206E_202E_206C_206E_206C_206E_206F_206B_200C_200B_206D_200B_202B_200B_206A_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-234805683)); - _206E_202B_206A_206D_206E_202B_202B_206A_202D_200C_206F_202C_202E_202B_200E_206F_202A_200C_206E_200B_206B_200C_206E_202B_206E_202E_206C_206E_206C_206E_206F_206B_200C_200B_206D_200B_202B_200B_206A_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1344697862)); - int num = ((!PrintMembers(stringBuilder)) ? (-355734154) : (-355734155)); - while (true) - { - int num2 = num; - int num3 = -355734153; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - _200C_206A_202D_202C_200F_200E_206C_200C_206D_202D_202B_200B_202B_202E_206A_200D_206F_200F_200B_206B_206B_200D_202D_206C_202A_206A_206F_206B_206C_202A_200F_202C_202E_200F_200E_206A_202A_206B_206B_206D_202E(stringBuilder, '}'); - return _206D_202A_206F_206E_206F_206F_206F_206C_206B_202E_202E_202B_202D_206A_202B_200F_206F_206B_202A_200E_200E_202D_200D_200C_202E_206A_206D_200B_202D_202D_200F_206D_206F_202A_200F_200D_206C_202B_206D_200E_202E((object)stringBuilder); - case 2: - _200C_206A_202D_202C_200F_200E_206C_200C_206D_202D_202B_200B_202B_202E_206A_200D_206F_200F_200B_206B_206B_200D_202D_206C_202A_206A_206F_206B_206C_202A_200F_202C_202E_200F_200E_206A_202A_206B_206B_206D_202E(stringBuilder, ' '); - num = -355734154; - break; - case 0: - num = -355734155; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200F_206D_202E_200D_202C_200D_206C_202B_200C_200B_206E_200D_202B_202B_200B_200D_206D_206D_206B_200D_200D_200F_200F_202A_206B_200F_202D_202A_202A_200C_206E_206C_206D_200D_202D_200F_202C_206C_202A_202D_202E(); - _206E_202B_206A_206D_206E_202B_202B_206A_202D_200C_206F_202C_202E_202B_200E_206F_202A_200C_206E_200B_206B_200C_206E_202B_206E_202E_206C_206E_206C_206E_206F_206B_200C_200B_206D_200B_202B_200B_206A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1030915870)); - _206E_202B_206A_206D_206E_202B_202B_206A_202D_200C_206F_202C_202E_202B_200E_206F_202A_200C_206E_200B_206B_200C_206E_202B_206E_202E_206C_206E_206C_206E_206F_206B_200C_200B_206D_200B_202B_200B_206A_202E(builder, TerritoryId.ToString()); - _206E_202B_206A_206D_206E_202B_202B_206A_202D_200C_206F_202C_202E_202B_200E_206F_202A_200C_206E_200B_206B_200C_206E_202B_206E_202E_206C_206E_206C_206E_206F_206B_200C_200B_206D_200B_202B_200B_206A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-844129380)); - _206A_206D_206B_200C_200C_206D_206A_202B_202E_202A_206E_200C_202C_206B_206A_206E_206B_206F_206D_202D_200C_202D_206D_206F_206E_202C_200C_200F_202D_206F_200D_206B_206A_206C_200F_202A_200D_200C_200D_206B_202E(builder, (object)Name); - _206E_202B_206A_206D_206E_202B_202B_206A_202D_200C_206F_202C_202E_202B_200E_206F_202A_200C_206E_200B_206B_200C_206E_202B_206E_202E_206C_206E_206C_206E_206F_206B_200C_200B_206D_200B_202B_200B_206A_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(572946355)); - _206A_206D_206B_200C_200C_206D_206A_202B_202E_202A_206E_200C_202C_206B_206A_206E_206B_206F_206D_202D_200C_202D_206D_206F_206E_202C_200C_200F_202D_206F_200D_206B_206A_206C_200F_202A_200D_200C_200D_206B_202E(builder, (object)DisplayName); - _206E_202B_206A_206D_206E_202B_202B_206A_202D_200C_206F_202C_202E_202B_200E_206F_202A_200C_206E_200B_206B_200C_206E_202B_206E_202E_206C_206E_206C_206E_206F_206B_200C_200B_206D_200B_202B_200B_206A_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(6225535)); - _206A_206D_206B_200C_200C_206D_206A_202B_202E_202A_206E_200C_202C_206B_206A_206E_206B_206F_206D_202D_200C_202D_206D_206F_206E_202C_200C_200F_202D_206F_200D_206B_206A_206C_200F_202A_200D_200C_200D_206B_202E(builder, (object)MapId); - return true; - } - - [CompilerGenerated] - public bool Equals(ZoneEntry? other) - { - int num = (((object)this == other) ? 1236100265 : 1236100263); - while (true) - { - int num2 = num; - int num3 = 1236100271; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = 1236100263; - break; - case 5: - num = ((!EqualityComparer<string>.Default.Equals(DisplayName, other.DisplayName)) ? 1236100268 : 1236100269); - break; - case 8: - num = (((object)other == null) ? 1236100268 : 1236100270); - break; - case 3: - return false; - case 7: - num = ((!EqualityComparer<string>.Default.Equals(Name, other.Name)) ? 1236100268 : 1236100266); - break; - case 1: - num = ((!_202A_202E_206C_206B_202E_200F_206A_206C_202A_202B_200E_202C_206E_206C_200C_200C_200B_206E_206E_202B_200B_200F_200F_200D_206B_200E_200E_202C_200E_200E_200E_202A_202A_202C_200D_200E_206E_200D_202D_206C_202E(EqualityContract, other.EqualityContract)) ? 1236100268 : 1236100271); - break; - case 2: - return EqualityComparer<string>.Default.Equals(MapId, other.MapId); - case 6: - return true; - case 0: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? 1236100268 : 1236100264); - break; - } - } - } - - bool IEquatable<ZoneEntry>.Equals(ZoneEntry? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206A_202C_202B_206A_200C_200C_200E_202A_206F_202B_200F_202E_206A_200B_202E_202A_202A_202C_206B_206D_202E_202B_206C_206F_200C_200D_206F_202D_206D_206C_206E_202E_206C_202C_206E_206A_202D_200E_206E_202B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202B_200D_200B_206F_202C_206F_206E_206B_202E_202B_200C_206F_206A_200C_202D_202D_206C_202C_202E_206E_202D_202C_202B_206E_206D_200F_206A_200D_200D_206E_202E_202B_200C_206A_206F_200F_202A_202B_200E_206D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206E_202B_206A_206D_206E_202B_202B_206A_202D_200C_206F_202C_202E_202B_200E_206F_202A_200C_206E_200B_206B_200C_206E_202B_206E_202E_206C_206E_206C_206E_206F_206B_200C_200B_206D_200B_202B_200B_206A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200C_206A_202D_202C_200F_200E_206C_200C_206D_202D_202B_200B_202B_202E_206A_200D_206F_200F_200B_206B_206B_200D_202D_206C_202A_206A_206F_206B_206C_202A_200F_202C_202E_200F_200E_206A_202A_206B_206B_206D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206D_202A_206F_206E_206F_206F_206F_206C_206B_202E_202E_202B_202D_206A_202B_200F_206F_206B_202A_200E_200E_202D_200D_200C_202E_206A_206D_200B_202D_202D_200F_206D_206F_202A_200F_200D_206C_202B_206D_200E_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200F_206D_202E_200D_202C_200D_206C_202B_200C_200B_206E_200D_202B_202B_200B_200D_206D_206D_206B_200D_200D_200F_200F_202A_206B_200F_202D_202A_202A_200C_206E_206C_206D_200D_202D_200F_202C_206C_202A_202D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206A_206D_206B_200C_200C_206D_206A_202B_202E_202A_206E_200C_202C_206B_206A_206E_206B_206F_206D_202D_200C_202D_206D_206F_206E_202C_200C_200F_202D_206F_200D_206B_206A_206C_200F_202A_200D_200C_200D_206B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202A_202E_206C_206B_202E_200F_206A_206C_202A_202B_200E_202C_206E_206C_200C_200C_200B_206E_206E_202B_200B_200F_200F_200D_206B_200E_200E_202C_200E_200E_200E_202A_202A_202C_200D_200E_206E_200D_202D_206C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } + private sealed record ZoneEntry(ushort TerritoryId, string Name, string DisplayName, string MapId); private sealed class QuestMarker { @@ -198,77 +52,6 @@ internal sealed class QuestMapComponent } } - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass56_0 - { - public QuestMapComponent _003C_003E4__this; - - public Dictionary<ushort, int> territoryQuests; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal ZoneEntry _003CRebuildZoneList_003Eb__1(ushort id) - { - string name = _003C_003E4__this._territoryData.GetName(id); - string mapIdForTerritory = _003C_003E4__this.GetMapIdForTerritory(id); - int num = territoryQuests[id]; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(8, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1509869170)); - defaultInterpolatedStringHandler.AppendFormatted(num); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(362456123)); - defaultInterpolatedStringHandler.AppendFormatted((num != 1) ? global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1550583417) : global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1281927779)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - string text = defaultInterpolatedStringHandler.ToStringAndClear(); - int num2 = ((name != null) ? 1994970144 : 1994970147); - string text2; - while (true) - { - int num3 = num2; - int num4 = 1994970145; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - default: - continue; - case 0: - goto IL_00eb; - case 1: - text2 = _200E_202E_206F_202A_200E_202C_202B_200C_202E_200B_202D_200D_206F_202B_206F_206F_200F_202C_202A_202E_200C_206E_206C_200B_206C_206A_206E_206B_202C_200E_200E_202A_200F_206E_200F_202B_206F_200C_202D_202E(name, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2018550958), text); - break; - case 2: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(6, 2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-950100909)); - defaultInterpolatedStringHandler2.AppendFormatted(id); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(751790982)); - defaultInterpolatedStringHandler2.AppendFormatted(text); - text2 = defaultInterpolatedStringHandler2.ToStringAndClear(); - break; - } - } - break; - IL_00eb: - num2 = 1994970147; - } - string displayName = text2; - string text3 = name; - if (text3 == null) - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(5, 1); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1749272606)); - defaultInterpolatedStringHandler3.AppendFormatted(id); - text3 = defaultInterpolatedStringHandler3.ToStringAndClear(); - } - return new ZoneEntry(id, text3, displayName, mapIdForTerritory); - } - - static string _200E_202E_206F_202A_200E_202C_202B_200C_202E_200B_202D_200D_206F_202B_206F_206F_200F_202C_202A_202E_200C_206E_206C_200B_206C_206A_206E_206B_202C_200E_200E_202A_200F_206E_200F_202B_206F_200C_202D_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - } - private const float MapTextureSize = 2048f; private const float MarkerRadius = 6f; @@ -317,14 +100,7 @@ internal sealed class QuestMapComponent private bool _showUnobtainable; - private readonly string[] _statusFilterNames = new string[5] - { - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-20470898), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-642419134), - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1953363253), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(718683105), - global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1267300956) - }; + private readonly string[] _statusFilterNames = new string[5] { "All", "Available", "Active", "Complete", "Locked" }; private List<ZoneEntry> _zones = new List<ZoneEntry>(); @@ -352,10 +128,9 @@ internal sealed class QuestMapComponent public QuestJournalUtils? QuestJournalUtils { get; set; } - [MethodImpl(MethodImplOptions.NoInlining)] public QuestMapComponent(ITextureProvider textureProvider, IDataManager dataManager, QuestRegistry questRegistry, QuestData questData, UiUtils uiUtils, TerritoryData territoryData, QuestFunctions questFunctions, QuestTooltipComponent questTooltipComponent, IGameGui gameGui, IClientState clientState, ILoggerFactory loggerFactory) { - _mapService = _202C_206A_200F_200F_206D_206D_206A_202A_202E_206F_206B_202D_206E_206E_206B_206F_200E_206B_206A_206B_206C_206C_206F_200B_202A_202B_202E_206D_202C_206F_200E_206D_202B_202B_200B_202C_206B_200F_202D_206B_202E(textureProvider, dataManager, loggerFactory.CreateLogger<MapTextureService>()); + _mapService = new MapTextureService(textureProvider, dataManager, loggerFactory.CreateLogger<MapTextureService>()); _dataManager = dataManager; _questRegistry = questRegistry; _questData = questData; @@ -367,857 +142,385 @@ internal sealed class QuestMapComponent _clientState = clientState; } - [MethodImpl(MethodImplOptions.NoInlining)] public void DrawQuestMap() { - int num = ((!_needsRebuild) ? (-455274411) : (-455274409)); - while (true) + if (_needsRebuild) { - int num2 = num; - int num3 = -455274412; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - { - ZoneEntry zone = _zones[_selectedZoneIndex]; - DrawMapCanvas(zone); - return; - } - case 1: - DrawFilters(); - _206C_200C_200B_200E_206C_206C_202C_206B_200E_206D_206F_206F_206F_200C_200F_200F_200B_200E_202C_206C_202D_206B_206B_206A_206C_200D_200B_206C_200D_200D_202A_200D_206E_206A_206F_202A_206E_200C_200B_206D_202E(); - num = ((_zones.Count != 0) ? (-455274410) : (-455274416)); - break; - case 4: - UiThemeUtils.EmptyState(FontAwesomeIcon.Map, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1249481567)); - return; - case 3: - RebuildZoneList(); - _needsRebuild = false; - num = -455274411; - break; - case 0: - num = -455274409; - break; - } + RebuildZoneList(); + _needsRebuild = false; } + DrawFilters(); + ImGui.Separator(); + if (_zones.Count == 0) + { + UiThemeUtils.EmptyState(FontAwesomeIcon.Map, "No quest zones available."); + return; + } + ZoneEntry zone = _zones[_selectedZoneIndex]; + DrawMapCanvas(zone); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawFilters() { - ImGuiStylePtr imGuiStylePtr = _206E_202C_202C_200C_206B_202E_200C_200E_206D_202B_200C_206F_200F_202C_206E_206E_202E_206A_200F_200D_206D_206C_206E_200C_202D_202A_200D_202E_206C_206F_200D_202B_202D_206E_202B_202C_200C_206C_206D_200C_202E(); - float num = 100f * _206A_206E_202C_200C_206E_206F_206A_200E_200F_206E_202B_202C_202B_202C_200D_202D_206A_202B_200B_200C_200C_206B_206F_206B_206E_206B_202C_200D_206D_200E_202D_202D_200D_202E_202B_206A_202A_206D_200B_206C_202E().FontGlobalScale; - float num2 = _202E_206F_202A_202D_206F_202D_200E_200B_202A_202B_206B_206A_206E_206F_200B_206B_200C_206C_200D_206A_206F_206C_202E_206F_206A_200E_206A_206E_202A_200C_206F_206D_202E_206C_202E_206F_200D_200F_206F_202B_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(59823971), false, -1f).X + imGuiStylePtr.FramePadding.X * 2f; - float num3 = _202C_200D_202B_200D_206C_206D_202E_206E_200B_206F_206A_206A_206A_200E_200B_200D_200F_200E_206B_206D_200C_206D_202E_202A_206D_200D_202A_206C_202E_202D_200F_206E_200F_200C_206C_200B_206D_206F_206F_200E_202E() + imGuiStylePtr.ItemInnerSpacing.X + _202E_206F_202A_202D_206F_202D_200E_200B_202A_202B_206B_206A_206E_206F_200B_206B_200C_206C_200D_206A_206F_206C_202E_206F_206A_200E_206A_206E_202A_200C_206F_206D_202E_206C_202E_206F_200D_200F_206F_202B_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1722794526), false, -1f).X; - float num4 = num + num2 + num3 + imGuiStylePtr.ItemSpacing.X * 4f; - int num5 = ((_zones.Count <= 0) ? (-1339818219) : (-1339818224)); - int num11 = default(int); - while (true) + ImGuiStylePtr style = ImGui.GetStyle(); + float num = 100f * ImGui.GetIO().FontGlobalScale; + float num2 = ImGui.CalcTextSize("My Zone").X + style.FramePadding.X * 2f; + float num3 = ImGui.GetFrameHeight() + style.ItemInnerSpacing.X + ImGui.CalcTextSize("Unobtainable").X; + float num4 = num + num2 + num3 + style.ItemSpacing.X * 4f; + string previewOverride = ((_zones.Count > 0 && _selectedZoneIndex < _zones.Count) ? _zones[_selectedZoneIndex].DisplayName : "No zones"); + if (UiThemeUtils.SearchableCombo("##Zone", ref _selectedZoneIndex, _zoneItems, ref _zoneSearchText, 0f - num4, previewOverride)) { - int num6 = num5; - int num7 = -1339818215; - int num8 = num6; - int num9 = num8 + num7; - int num10 = num8 & num7; - string text; - string previewOverride; - switch (num9 - (num10 + num10)) + OnZoneChanged(); + } + ImGui.SameLine(); + ImGui.SetNextItemWidth(100f * ImGui.GetIO().FontGlobalScale); + if (UiThemeUtils.ThemedCombo("##Status", ref _selectedStatusFilter, _statusFilterNames, _statusFilterNames.Length)) + { + RebuildMarkers(); + } + ImGui.SameLine(); + if (UiThemeUtils.PillButton("My Zone", selected: false)) + { + uint currentTerritory = _clientState.TerritoryType; + int num5 = _zones.FindIndex((ZoneEntry z) => z.TerritoryId == currentTerritory); + if (num5 >= 0) { - case 5: - { - uint currentTerritory = _200C_202E_202D_206C_200D_200D_200D_202E_206F_200D_200D_200E_200E_202D_200B_200C_206B_202E_206D_202B_202D_200C_202E_206A_202E_200F_200F_206B_206D_202D_202B_202D_206D_206A_200E_202A_200C_202E_200C_200E_202E(_clientState); - num11 = _zones.FindIndex((ZoneEntry z) => z.TerritoryId == currentTerritory); - num5 = ((num11 < 0) ? (-1339818211) : (-1339818214)); - break; - } - case 10: - _200C_202D_206C_200F_200C_202D_202A_206B_200F_200B_206E_202D_200F_200C_200E_200F_200E_200E_206D_200E_206D_200D_202A_206E_206F_206B_200F_200F_200C_200B_202A_206F_200C_202C_206F_206D_200C_206F_200C_202D_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(760859895)); - num5 = -1339818215; - break; - case 6: - return; - case 2: - _202C_206D_200E_206C_206D_206C_200E_200F_202D_206D_200D_206D_200E_202B_200B_206B_202D_206C_206E_202B_206D_206E_202C_202B_206E_206D_200B_202D_202D_200D_200C_206A_202B_202E_200B_200D_202E_200B_206D_200F_202E(); - _206F_202D_206D_200B_202B_206C_202D_200D_202C_200F_200C_202A_206C_206B_202E_200B_202C_202E_206D_206F_206B_206F_202E_200E_206D_202C_200E_206D_200D_206B_202D_206E_206A_206D_206F_206A_200C_206B_202B_206A_202E(100f * _206A_206E_202C_200C_206E_206F_206A_200E_200F_206E_202B_202C_202B_202C_200D_202D_206A_202B_200B_200C_200C_206B_206F_206B_206E_206B_202C_200D_206D_200E_202D_202D_200D_202E_202B_206A_202A_206D_200B_206C_202E().FontGlobalScale); - num5 = ((!UiThemeUtils.ThemedCombo(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1397940235), ref _selectedStatusFilter, _statusFilterNames, _statusFilterNames.Length)) ? (-1339818220) : (-1339818222)); - break; - case 0: - _202C_206D_200E_206C_206D_206C_200E_200F_202D_206D_200D_206D_200E_202B_200B_206B_202D_206C_206E_202B_206D_206E_202C_202B_206E_206D_200B_202D_202D_200D_200C_206A_202B_202E_200B_200D_202E_200B_206D_200F_202E(); - num5 = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(576385889), ref _showUnobtainable)) ? (-1339818209) : (-1339818216)); - break; - case 12: - text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1811265581); - goto IL_026e; - case 14: + _selectedZoneIndex = num5; OnZoneChanged(); - num5 = -1339818213; - break; - case 7: - text = _zones[_selectedZoneIndex].DisplayName; - goto IL_026e; - case 13: - _202C_206D_200E_206C_206D_206C_200E_200F_202D_206D_200D_206D_200E_202B_200B_206B_202D_206C_206E_202B_206D_206E_202C_202B_206E_206D_200B_202D_202D_200D_200C_206A_202B_202E_200B_200D_202E_200B_206D_200F_202E(); - num5 = ((!UiThemeUtils.PillButton(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-636136137), selected: false)) ? (-1339818211) : (-1339818212)); - break; - case 9: - num5 = ((_selectedZoneIndex < _zones.Count) ? (-1339818210) : (-1339818219)); - break; - case 4: - num5 = ((!_206D_200F_202C_206D_206E_202D_202D_200C_200E_202B_200B_206B_206B_206F_200E_206C_206E_200E_202A_200D_202D_200C_200E_202E_206F_206E_206B_202E_200F_202B_202D_206C_206E_202B_206C_200B_202A_200E_206A_202C_202E()) ? (-1339818215) : (-1339818221)); - break; - case 11: - RebuildMarkers(); - num5 = -1339818220; - break; - case 3: - _selectedZoneIndex = num11; - OnZoneChanged(); - num5 = -1339818211; - break; - case 8: - num5 = -1339818224; - break; - case 1: - { - RebuildMarkers(); - num5 = -1339818209; - break; - } - IL_026e: - previewOverride = text; - num5 = ((!UiThemeUtils.SearchableCombo(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(670206483), ref _selectedZoneIndex, _zoneItems, ref _zoneSearchText, 0f - num4, previewOverride)) ? (-1339818213) : (-1339818217)); - break; } } + if (ImGui.IsItemHovered()) + { + ImGui.SetTooltip("Jump to your current zone"); + } + ImGui.SameLine(); + if (UiThemeUtils.WrappedCheckbox("Unobtainable", ref _showUnobtainable)) + { + RebuildMarkers(); + } } - [MethodImpl(MethodImplOptions.NoInlining)] private static void DrawMapLegend(ImDrawListPtr drawList, Vector2 canvasPos, float canvasWidth) { (Vector4, string)[] array = new(Vector4, string)[4] { - (UiThemeUtils.StatusAvailable, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-642419134)), - (UiThemeUtils.StatusComplete, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-636720262)), - (UiThemeUtils.StatusLocked, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(773096941)), - (UiThemeUtils.StatusUnobtainable, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1343348633)) + (UiThemeUtils.StatusAvailable, "Available"), + (UiThemeUtils.StatusComplete, "Complete"), + (UiThemeUtils.StatusLocked, "Locked"), + (UiThemeUtils.StatusUnobtainable, "Unobtainable") }; float num = 0f; (Vector4, string)[] array2 = array; - int num2 = 0; - int num3 = 1199359599; - float num10 = default(float); - float num11 = default(float); - float num12 = default(float); - while (true) + for (int i = 0; i < array2.Length; i++) { - int num4 = num3; - int num5 = 1199359597; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) - { - case 0: - return; - case 3: - { - (Vector4, string) tuple = array2[num2]; - Vector4 item = tuple.Item1; - string item2 = tuple.Item2; - float y = num10 + num11 * 0.5f; - drawList.AddCircleFilled(new Vector2(num12 + 4f, y), 4f, _202B_200E_202D_206A_206A_202D_202D_202D_202C_200F_200C_206E_206B_206B_200B_206F_206C_202D_202E_200C_202D_200F_206A_206B_206A_206B_200B_206E_200C_206C_202C_202A_200B_202D_200F_200B_202D_206E_206E_202A_202E(item), 12); - num12 += 14f; - drawList.AddText(new Vector2(num12, num10), _202B_200E_202D_206A_206A_202D_202D_202D_202C_200F_200C_206E_206B_206B_200B_206F_206C_202D_202E_200C_202D_200F_206A_206B_206A_206B_200B_206E_200C_206C_202C_202A_200B_202D_200F_200B_202D_206E_206E_202A_202E(UiThemeUtils.DimTextColor), item2); - num12 += _202E_206F_202A_202D_206F_202D_200E_200B_202A_202B_206B_206A_206E_206F_200B_206B_200C_206C_200D_206A_206F_206C_202E_206F_206A_200E_206A_206E_202A_200C_206F_206D_202E_206C_202E_206F_200D_200F_206F_202B_202E((ImU8String)item2, false, -1f).X + 14f; - int num13 = num2; - num5 = 1; - num6 = num13; - int num14 = num6 ^ num5; - int num15 = num6 & num5; - num2 = num14 + (num15 + num15); - num3 = 1199359593; - break; - } - case 5: - { - num -= 14f; - float num9 = canvasPos.X + canvasWidth - num - 8f; - num10 = canvasPos.Y + 8f; - num11 = _206D_206A_200F_206D_200C_206E_206C_200C_206F_200B_202D_200D_202B_200B_202E_200E_206C_206F_206E_202E_200F_202B_206D_200F_200D_200E_202C_200F_200C_206F_206E_200C_206A_200C_206E_200E_200F_202D_202E_206A_202E(); - Vector2 pMin = new Vector2(num9 - 8f, num10 - 2f); - Vector2 pMax = new Vector2(canvasPos.X + canvasWidth, num10 + num11 + 2f); - Vector4 playButtonText = UiThemeUtils.PlayButtonText; - playButtonText.W = 0.75f; - drawList.AddRectFilled(pMin, pMax, _202B_200E_202D_206A_206A_202D_202D_202D_202C_200F_200C_206E_206B_206B_200B_206F_206C_202D_202E_200C_202D_200F_206A_206B_206A_206B_200B_206E_200C_206C_202C_202A_200B_202D_200F_200B_202D_206E_206E_202A_202E(playButtonText), 3f); - num12 = num9; - array2 = array; - num2 = 0; - num3 = 1199359593; - break; - } - case 4: - num3 = ((num2 < array2.Length) ? 1199359598 : 1199359597); - break; - case 1: - { - string item3 = array2[num2].Item2; - num += 14f + _202E_206F_202A_202D_206F_202D_200E_200B_202A_202B_206B_206A_206E_206F_200B_206B_200C_206C_200D_206A_206F_206C_202E_206F_206A_200E_206A_206E_202A_200C_206F_206D_202E_206C_202E_206F_200D_200F_206F_202B_202E((ImU8String)item3, false, -1f).X + 14f; - int num16 = num2; - num5 = 1; - num6 = num16; - num2 = (num6 | num5) + (num6 & num5); - num3 = 1199359599; - break; - } - case 2: - num3 = ((num2 < array2.Length) ? 1199359596 : 1199359592); - break; - case 6: - num3 = 1199359599; - break; - } + string item = array2[i].Item2; + num += 14f + ImGui.CalcTextSize(item).X + 14f; + } + num -= 14f; + float num2 = canvasPos.X + canvasWidth - num - 8f; + float num3 = canvasPos.Y + 8f; + float textLineHeight = ImGui.GetTextLineHeight(); + Vector2 pMin = new Vector2(num2 - 8f, num3 - 2f); + Vector2 pMax = new Vector2(canvasPos.X + canvasWidth, num3 + textLineHeight + 2f); + Vector4 playButtonText = UiThemeUtils.PlayButtonText; + playButtonText.W = 0.75f; + drawList.AddRectFilled(pMin, pMax, ImGui.ColorConvertFloat4ToU32(playButtonText), 3f); + float num4 = num2; + array2 = array; + for (int i = 0; i < array2.Length; i++) + { + (Vector4, string) tuple = array2[i]; + Vector4 item2 = tuple.Item1; + string item3 = tuple.Item2; + float y = num3 + textLineHeight * 0.5f; + drawList.AddCircleFilled(new Vector2(num4 + 4f, y), 4f, ImGui.ColorConvertFloat4ToU32(item2), 12); + num4 += 14f; + drawList.AddText(new Vector2(num4, num3), ImGui.ColorConvertFloat4ToU32(UiThemeUtils.DimTextColor), item3); + num4 += ImGui.CalcTextSize(item3).X + 14f; } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawMapCanvas(ZoneEntry zone) { - //Discarded unreachable code: IL_0dfb - long num = _200C_200B_202A_202B_202A_206D_206D_206A_200D_200C_200B_206A_202A_206C_206B_206B_200F_202B_206E_202D_206E_202C_202A_206A_202E_206D_206E_200B_200C_200E_200C_202D_200E_202E_206C_200B_206F_206F_206A_206B_202E(); - long lastStyleRefresh = _lastStyleRefresh; - long num2 = num; - int num3 = ((~(~num2 + lastStyleRefresh) <= 3000) ? 277732529 : 277732528); - Vector2 vector3 = default(Vector2); - Vector2 vector2 = default(Vector2); - bool flag = default(bool); - ImDrawListPtr drawList = default(ImDrawListPtr); - Vector2 vector5 = default(Vector2); - IDalamudTextureWrap dalamudTextureWrap = default(IDalamudTextureWrap); - QuestMarker current = default(QuestMarker); - Vector2 vector6 = default(Vector2); - Vector2 center = default(Vector2); - bool flag4 = default(bool); - bool flag3 = default(bool); - Vector2 vector7 = default(Vector2); - bool flag2 = default(bool); - uint col3 = default(uint); - float num19 = default(float); - float num20 = default(float); - string text4 = default(string); - float num21 = default(float); - Vector2 pMin3 = default(Vector2); - Vector2 pMax3 = default(Vector2); - Vector2 pMax4 = default(Vector2); - Vector2 pMin4 = default(Vector2); - string text5 = default(string); - bool flag5 = default(bool); - IQuestInfo questInfo = default(IQuestInfo); - IQuestInfo questInfo2 = default(IQuestInfo); - while (true) + long tickCount = Environment.TickCount64; + if (tickCount - _lastStyleRefresh > 3000) { - int num4 = num3; - int num5 = 277732535; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - string text7; - string text6; - Vector2 pos2; - switch (num7 - (num8 + num8)) + _lastStyleRefresh = tickCount; + RefreshMarkerStyles(); + } + Vector2 contentRegionAvail = ImGui.GetContentRegionAvail(); + Vector2 vector = new Vector2(contentRegionAvail.X, MathF.Max(contentRegionAvail.Y, 100f)); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + ImGui.InvisibleButton("##mapCanvas", vector); + bool flag = ImGui.IsItemHovered(); + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 vector2 = cursorScreenPos + vector; + windowDrawList.AddRectFilled(cursorScreenPos, vector2, ImGui.ColorConvertFloat4ToU32(UiThemeUtils.PlayButtonText)); + windowDrawList.PushClipRect(cursorScreenPos, vector2, intersectWithCurrentClipRect: true); + HandlePanZoom(cursorScreenPos, vector, flag); + if (_centerOnMarker && _selectedMarker != null) + { + _centerOnMarker = false; + _zoom = 1f; + Vector2 vector3 = (_selectedMarker.MapPixelPos - new Vector2(1024f)) * _zoom; + _offset = -vector3; + } + _mapService.LoadForTerritory(zone.TerritoryId); + IDalamudTextureWrap textureWrap = _mapService.GetTextureWrap(); + if (textureWrap != null) + { + Vector2 vector4 = new Vector2(2048f * _zoom, 2048f * _zoom); + Vector2 vector5 = cursorScreenPos + _offset + vector * 0.5f - vector4 * 0.5f; + windowDrawList.AddImage(textureWrap.Handle, vector5, vector5 + vector4); + } + else + { + string text = (_mapService.IsSearching ? "Loading map..." : "Map not available for this zone."); + Vector2 pos = cursorScreenPos + vector * 0.5f - ImGui.CalcTextSize(text) * 0.5f; + windowDrawList.AddText(pos, ImGui.ColorConvertFloat4ToU32(UiThemeUtils.DimTextColor), text); + } + Vector2 vector6 = ScreenToMapPixel(cursorScreenPos, cursorScreenPos, vector); + Vector2 vector7 = ScreenToMapPixel(vector2, cursorScreenPos, vector); + float num = 12f; + QuestMarker questMarker = null; + foreach (QuestMarker currentMarker in _currentMarkers) + { + if (!(currentMarker.MapPixelPos.X < vector6.X - num) && !(currentMarker.MapPixelPos.X > vector7.X + num) && !(currentMarker.MapPixelPos.Y < vector6.Y - num) && !(currentMarker.MapPixelPos.Y > vector7.Y + num)) { - case 6: - { - Vector2 vector15 = _206B_202C_200B_200F_206D_206B_200F_202B_206F_206B_206A_202A_206A_206F_200F_200B_202D_202D_206E_200B_202B_200D_206A_200D_202D_202E_202E_200F_206B_200D_200C_202A_206C_200E_206E_206A_202C_206C_206B_202B_202E(); - vector3 = new Vector2(vector15.X, _206C_206B_206B_202E_206D_200F_206E_200C_206C_200B_206C_206D_206D_200E_206E_202B_206B_202B_206F_200D_200F_200C_202C_200C_206B_200C_206D_200D_206A_206B_206B_200F_202B_202E_206C_206D_202A_202E_202A_202B_202E(vector15.Y, 100f)); - vector2 = _202A_206A_202D_202C_200C_200F_206B_200E_206D_202A_206B_206B_202B_206D_200B_200D_206E_200F_200B_202D_202E_202C_200E_206A_200F_200E_200B_202C_206A_206F_202C_200D_206C_206D_206B_200D_206E_202B_206C_202A_202E(); - _206D_206B_202D_202C_206C_206D_202D_206E_200F_200C_202A_200F_202C_202B_202A_200D_200F_202A_200C_206E_206D_202A_206E_206C_200C_200E_202A_202B_206F_202A_202C_206A_206C_202B_206D_200F_206A_200B_202A_202E_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1235795883), vector3, ImGuiButtonFlags.None); - flag = _206D_200F_202C_206D_206E_202D_202D_200C_200E_202B_200B_206B_206B_206F_200E_206C_206E_200E_202A_200D_202D_200C_200E_202E_206F_206E_206B_202E_200F_202B_202D_206C_206E_202B_206C_200B_202A_200E_206A_202C_202E(); - drawList = _202A_200C_200F_200C_200D_200E_202D_200B_206C_200F_206C_200F_202C_200B_202B_202B_202B_202E_202C_206D_200D_200B_202B_202B_200C_206F_206D_200E_206F_200D_202C_206C_206A_206E_202E_206D_200F_206E_200F_206F_202E(); - vector5 = vector2 + vector3; - drawList.AddRectFilled(vector2, vector5, _202B_200E_202D_206A_206A_202D_202D_202D_202C_200F_200C_206E_206B_206B_200B_206F_206C_202D_202E_200C_202D_200F_206A_206B_206A_206B_200B_206E_200C_206C_202C_202A_200B_202D_200F_200B_202D_206E_206E_202A_202E(UiThemeUtils.PlayButtonText)); - drawList.PushClipRect(vector2, vector5, intersectWithCurrentClipRect: true); - HandlePanZoom(vector2, vector3, flag); - num3 = ((!_centerOnMarker) ? 277732543 : 277732533); - break; - } - case 9: - text7 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1310835118); - goto IL_0136; - case 2: - num3 = ((_selectedMarker == null) ? 277732543 : 277732532); - break; - case 10: - num3 = (_206F_206F_206F_206A_206B_206F_202D_206E_200E_202B_206D_206C_206E_200D_206A_206E_206A_200C_202A_206A_202E_202B_202C_200C_202C_206D_206F_206B_202D_206A_202A_206E_202C_206B_202D_206B_206D_200E_200F_206B_202E(_mapService) ? 277732542 : 277732531); - break; - case 0: - num3 = 277732528; - break; - case 8: - _206D_200F_202B_200B_206D_206E_202B_206D_200B_200E_206B_206D_206B_200F_206F_200C_200F_206A_206A_202A_200F_206F_202B_206E_202C_206C_202A_202E_206E_202C_206B_206D_206C_200C_202C_206F_206A_206E_200B_202E_202E(_mapService, (uint)zone.TerritoryId); - dalamudTextureWrap = _206C_200E_200D_200E_200C_200C_206D_202E_202D_206E_202D_200B_202E_206C_200E_202D_206C_206C_206F_200C_206B_202C_206C_200C_206A_202A_202E_206F_202C_206F_200B_206A_200E_202B_200E_202B_202E_206A_200E_200C_202E(_mapService); - num3 = ((dalamudTextureWrap == null) ? 277732541 : 277732530); - break; - case 7: - _lastStyleRefresh = num; - RefreshMarkerStyles(); - num3 = 277732529; - break; - case 3: - { - _centerOnMarker = false; - _zoom = 1f; - Vector2 vector18 = (_selectedMarker.MapPixelPos - new Vector2(1024f)) * _zoom; - _offset = -vector18; - num3 = 277732543; - break; - } - case 4: - text7 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-250847286); - goto IL_0136; - case 5: - { - Vector2 vector16 = new Vector2(2048f * _zoom, 2048f * _zoom); - Vector2 vector17 = vector2 + _offset + vector3 * 0.5f - vector16 * 0.5f; - drawList.AddImage(_200E_202C_206C_200F_200E_206A_206C_202D_202D_206D_200D_202A_202D_202B_200C_202B_202C_202B_206D_206B_200E_200E_206A_200C_206C_200E_206C_206D_206F_206C_200F_206B_206B_200B_206B_202D_200D_202D_202A_200D_202E(dalamudTextureWrap), vector17, vector17 + vector16); - num3 = 277732534; - break; - } - case 1: + Vector2 vector8 = MapPixelToScreen(currentMarker.MapPixelPos, cursorScreenPos, vector); + uint col = ImGui.ColorConvertFloat4ToU32(currentMarker.Color); + uint col2 = ImGui.ColorConvertFloat4ToU32(new Vector4(0f, 0f, 0f, 0.8f)); + float num2 = 6f * Math.Max(_zoom, 0.5f); + windowDrawList.AddCircleFilled(vector8, num2 + 1f, col2, 16); + windowDrawList.AddCircleFilled(vector8, num2, col, 16); + if (flag && !_isDragging && Vector2.Distance(ImGui.GetMousePos(), vector8) <= 8f * Math.Max(_zoom, 0.5f)) { - Vector2 vector = ScreenToMapPixel(vector2, vector2, vector3); - Vector2 vector4 = ScreenToMapPixel(vector5, vector2, vector3); - float num9 = 12f; - QuestMarker questMarker = null; - using (List<QuestMarker>.Enumerator enumerator = _currentMarkers.GetEnumerator()) + questMarker = currentMarker; + } + } + } + DrawMapLegend(windowDrawList, cursorScreenPos, vector.X); + if (_selectedMarker != null) + { + Vector2 center = MapPixelToScreen(_selectedMarker.MapPixelPos, cursorScreenPos, vector); + if (center.X >= cursorScreenPos.X && center.X <= vector2.X && center.Y >= cursorScreenPos.Y && center.Y <= vector2.Y) + { + float num3 = 6f * Math.Max(_zoom, 0.5f); + windowDrawList.AddCircle(center, num3 + 3f, ImGui.ColorConvertFloat4ToU32(new Vector4(1f, 1f, 1f, 0.9f)), 16, 2f); + } + } + bool flag2 = false; + bool flag3 = false; + Vector2 mousePos; + bool flag4; + uint col3; + float num5; + string text5; + float num7; + Vector2 pMin3; + Vector2 pMax3; + int num9; + Vector4 input; + float num6; + if (_selectedMarker != null) + { + Vector4 color = _selectedMarker.Color; + FontAwesomeIcon icon = _selectedMarker.Icon; + string status = _selectedMarker.Status; + string text2 = UiThemeUtils.CleanSeString(_selectedMarker.QuestName); + mousePos = ImGui.GetMousePos(); + flag4 = ImGui.IsMouseReleased(ImGuiMouseButton.Left); + Vector2 vector9 = new Vector2(cursorScreenPos.X, vector2.Y - 34f); + Vector2 vector10 = vector2; + Vector2 pMin = vector9; + Vector2 pMax = vector10; + Vector4 playButtonText = UiThemeUtils.PlayButtonText; + playButtonText.W = 0.9f; + windowDrawList.AddRectFilled(pMin, pMax, ImGui.ColorConvertFloat4ToU32(playButtonText)); + Vector2 pMin2 = vector9; + Vector2 pMax2 = new Vector2(vector10.X, vector9.Y + 1f); + playButtonText = UiThemeUtils.AccentColor; + playButtonText.W = 0.4f; + windowDrawList.AddRectFilled(pMin2, pMax2, ImGui.ColorConvertFloat4ToU32(playButtonText)); + float y = vector9.Y + (34f - ImGui.GetTextLineHeight()) * 0.5f; + float num4 = vector9.X + 10f; + string text3 = icon.ToIconString(); + Vector2 vector11; + using (ImRaii.PushFont(UiBuilder.IconFont)) + { + vector11 = ImGui.CalcTextSize(text3); + } + windowDrawList.AddText(UiBuilder.IconFont, ImGui.GetFontSize(), new Vector2(num4, y), ImGui.ColorConvertFloat4ToU32(color), text3); + num4 += vector11.X + 6f; + col3 = ImGui.ColorConvertFloat4ToU32(UiThemeUtils.PrimaryTextColor); + windowDrawList.AddText(new Vector2(num4, y), col3, text2); + num4 += ImGui.CalcTextSize(text2).X + 10f; + Vector2 pos2 = new Vector2(num4, y); + uint col4 = ImGui.ColorConvertFloat4ToU32(color); + ImU8String text4 = new ImU8String(2, 1); + text4.AppendLiteral("["); + text4.AppendFormatted(status); + text4.AppendLiteral("]"); + windowDrawList.AddText(pos2, col4, text4); + num5 = vector9.Y + (34f - ImGui.GetTextLineHeight() - 8f) * 0.5f; + num6 = vector10.X - 10f; + text5 = "Open on Map"; + Vector2 vector12 = ImGui.CalcTextSize(text5); + num7 = vector12.X + 16f; + float num8 = vector12.Y + 8f; + pMin3 = new Vector2(num6 - num7, num5); + pMax3 = new Vector2(num6, num5 + num8); + if (mousePos.X >= pMin3.X && mousePos.X <= pMax3.X && mousePos.Y >= pMin3.Y) + { + num9 = ((mousePos.Y <= pMax3.Y) ? 1 : 0); + if (num9 != 0) + { + playButtonText = UiThemeUtils.AccentColor; + playButtonText.W = 0.25f; + input = playButtonText; + goto IL_06fa; + } + } + else + { + num9 = 0; + } + input = UiThemeUtils.AccentDimColor; + goto IL_06fa; + } + goto IL_085c; + IL_06fa: + windowDrawList.AddRectFilled(col: ImGui.ColorConvertFloat4ToU32(input), pMin: pMin3, pMax: pMax3, rounding: 3f); + windowDrawList.AddText(new Vector2(pMin3.X + 8f, pMin3.Y + 4f), col3, text5); + if (((uint)num9 & (flag4 ? 1u : 0u)) != 0) + { + flag3 = true; + } + num6 -= num7 + 6f; + string text6 = "Quest Chain"; + Vector2 vector13 = ImGui.CalcTextSize(text6); + float num10 = vector13.X + 16f; + float num11 = vector13.Y + 8f; + Vector2 pMin4 = new Vector2(num6 - num10, num5); + Vector2 pMax4 = new Vector2(num6, num5 + num11); + int num12; + Vector4 input2; + if (mousePos.X >= pMin4.X && mousePos.X <= pMax4.X && mousePos.Y >= pMin4.Y) + { + num12 = ((mousePos.Y <= pMax4.Y) ? 1 : 0); + if (num12 != 0) + { + Vector4 playButtonText = UiThemeUtils.AccentColor; + playButtonText.W = 0.25f; + input2 = playButtonText; + goto IL_080c; + } + } + else + { + num12 = 0; + } + input2 = UiThemeUtils.AccentDimColor; + goto IL_080c; + IL_080c: + windowDrawList.AddRectFilled(col: ImGui.ColorConvertFloat4ToU32(input2), pMin: pMin4, pMax: pMax4, rounding: 3f); + windowDrawList.AddText(new Vector2(pMin4.X + 8f, pMin4.Y + 4f), col3, text6); + if (((uint)num12 & (flag4 ? 1u : 0u)) != 0) + { + flag2 = true; + } + goto IL_085c; + IL_085c: + windowDrawList.PopClipRect(); + if (flag3 && _selectedMarker != null && _selectedMarker.WorldPos != Vector3.Zero) + { + try + { + ZoneEntry zoneEntry = _zones[_selectedZoneIndex]; + TerritoryType? rowOrDefault = _dataManager.GetExcelSheet<TerritoryType>().GetRowOrDefault(zoneEntry.TerritoryId); + if (rowOrDefault.HasValue) + { + Map? valueNullable = rowOrDefault.Value.Map.ValueNullable; + if (valueNullable.HasValue) { - num3 = -1593489404; - while (true) - { - int num10 = num3; - num5 = -1593489408; - num6 = num10; - switch ((num6 | num5) - (num6 & num5)) - { - case 2: - num3 = -1593489404; - break; - case 10: - num3 = ((current.MapPixelPos.X > vector4.X + num9) ? (-1593489404) : (-1593489400)); - break; - case 3: - num3 = ((!(Vector2.Distance(_206A_200E_200B_206A_206A_206B_206C_200D_206C_200F_200B_206A_206A_206D_206B_202C_202E_202E_206F_206C_206A_200B_202C_202B_202B_206C_200D_202E_202A_206E_200B_206D_200C_202C_202B_206A_206A_202E_200D_202D_202E(), vector6) <= 8f * _202C_200B_206A_206E_202D_206C_202C_202E_206C_206F_206E_202B_200E_200F_202B_202D_202B_206C_206E_206E_206E_202D_202E_200D_200E_200B_200D_200F_206C_200C_206E_206B_200B_202C_206D_206F_200D_206C_206F_206C_202E(_zoom, 0.5f))) ? (-1593489404) : (-1593489399)); - break; - case 8: - num3 = ((current.MapPixelPos.Y < vector.Y - num9) ? (-1593489404) : (-1593489408)); - break; - case 7: - num3 = (_isDragging ? (-1593489404) : (-1593489405)); - break; - case 1: - { - vector6 = MapPixelToScreen(current.MapPixelPos, vector2, vector3); - uint col = _202B_200E_202D_206A_206A_202D_202D_202D_202C_200F_200C_206E_206B_206B_200B_206F_206C_202D_202E_200C_202D_200F_206A_206B_206A_206B_200B_206E_200C_206C_202C_202A_200B_202D_200F_200B_202D_206E_206E_202A_202E(current.Color); - uint col2 = _202B_200E_202D_206A_206A_202D_202D_202D_202C_200F_200C_206E_206B_206B_200B_206F_206C_202D_202E_200C_202D_200F_206A_206B_206A_206B_200B_206E_200C_206C_202C_202A_200B_202D_200F_200B_202D_206E_206E_202A_202E(new Vector4(0f, 0f, 0f, 0.8f)); - float num11 = 6f * _202C_200B_206A_206E_202D_206C_202C_202E_206C_206F_206E_202B_200E_200F_202B_202D_202B_206C_206E_206E_206E_202D_202E_200D_200E_200B_200D_200F_206C_200C_206E_206B_200B_202C_206D_206F_200D_206C_206F_206C_202E(_zoom, 0.5f); - drawList.AddCircleFilled(vector6, num11 + 1f, col2, 16); - drawList.AddCircleFilled(vector6, num11, col, 16); - num3 = ((!flag) ? (-1593489404) : (-1593489401)); - break; - } - case 9: - questMarker = current; - num3 = -1593489404; - break; - case 5: - current = enumerator.Current; - num3 = ((current.MapPixelPos.X < vector.X - num9) ? (-1593489404) : (-1593489398)); - break; - case 0: - num3 = ((current.MapPixelPos.Y > vector4.Y + num9) ? (-1593489404) : (-1593489407)); - break; - case 4: - num3 = (enumerator.MoveNext() ? (-1593489403) : (-1593489402)); - break; - case 6: - goto end_IL_035a; - } - continue; - end_IL_035a: - break; - } - } - DrawMapLegend(drawList, vector2, vector3.X); - num3 = ((_selectedMarker == null) ? 1621936261 : 1621936262); - while (true) - { - int num12 = num3; - num5 = 1621936263; - num6 = num12; - int num13 = num6 + num5; - int num14 = num6 & num5; - switch (num13 - (num14 + num14)) - { - default: - continue; - case 4: - num3 = 1621936262; - continue; - case 0: - num3 = ((!(center.Y <= vector5.Y)) ? 1621936261 : 1621936256); - continue; - case 6: - num3 = ((!(center.X <= vector5.X)) ? 1621936261 : 1621936260); - continue; - case 1: - center = MapPixelToScreen(_selectedMarker.MapPixelPos, vector2, vector3); - num3 = ((!(center.X >= vector2.X)) ? 1621936261 : 1621936257); - continue; - case 2: - flag4 = false; - flag3 = false; - if (_selectedMarker != null) - { - num3 = 1621936258; - continue; - } - goto IL_0cba; - case 3: - num3 = ((!(center.Y >= vector2.Y)) ? 1621936261 : 1621936263); - continue; - case 7: - { - float num30 = 6f * _202C_200B_206A_206E_202D_206C_202C_202E_206C_206F_206E_202B_200E_200F_202B_202D_202B_206C_206E_206E_206E_202D_202E_200D_200E_200B_200D_200F_206C_200C_206E_206B_200B_202C_206D_206F_200D_206C_206F_206C_202E(_zoom, 0.5f); - drawList.AddCircle(center, num30 + 3f, _202B_200E_202D_206A_206A_202D_202D_202D_202C_200F_200C_206E_206B_206B_200B_206F_206C_202D_202E_200C_202D_200F_206A_206B_206A_206B_200B_206E_200C_206C_202C_202A_200B_202D_200F_200B_202D_206E_206E_202A_202E(new Vector4(1f, 1f, 1f, 0.9f)), 16, 2f); - num3 = 1621936261; - continue; - } - case 5: - { - Vector4 color = _selectedMarker.Color; - FontAwesomeIcon icon = _selectedMarker.Icon; - string status = _selectedMarker.Status; - string text = UiThemeUtils.CleanSeString(_selectedMarker.QuestName); - vector7 = _206A_200E_200B_206A_206A_206B_206C_200D_206C_200F_200B_206A_206A_206D_206B_202C_202E_202E_206F_206C_206A_200B_202C_202B_202B_206C_200D_202E_202A_206E_200B_206D_200C_202C_202B_206A_206A_202E_200D_202D_202E(); - flag2 = _200F_206C_206E_202D_206C_206B_206A_206B_200C_202B_200D_200E_200E_202E_206F_202E_202D_200E_206B_206C_206C_206E_206D_206B_200B_206C_202B_202C_202A_202E_202D_200B_202C_206E_202C_200B_202B_206B_202C_206B_202E(ImGuiMouseButton.Left); - Vector2 vector8 = new Vector2(vector2.X, vector5.Y - 34f); - Vector2 vector9 = vector5; - Vector2 pMin = vector8; - Vector2 pMax = vector9; - Vector4 playButtonText = UiThemeUtils.PlayButtonText; - playButtonText.W = 0.9f; - drawList.AddRectFilled(pMin, pMax, _202B_200E_202D_206A_206A_202D_202D_202D_202C_200F_200C_206E_206B_206B_200B_206F_206C_202D_202E_200C_202D_200F_206A_206B_206A_206B_200B_206E_200C_206C_202C_202A_200B_202D_200F_200B_202D_206E_206E_202A_202E(playButtonText)); - Vector2 pMin2 = vector8; - Vector2 pMax2 = new Vector2(vector9.X, vector8.Y + 1f); - playButtonText = UiThemeUtils.AccentColor; - playButtonText.W = 0.4f; - drawList.AddRectFilled(pMin2, pMax2, _202B_200E_202D_206A_206A_202D_202D_202D_202C_200F_200C_206E_206B_206B_200B_206F_206C_202D_202E_200C_202D_200F_206A_206B_206A_206B_200B_206E_200C_206C_202C_202A_200B_202D_200F_200B_202D_206E_206E_202A_202E(playButtonText)); - float y = vector8.Y + (34f - _206D_206A_200F_206D_200C_206E_206C_200C_206F_200B_202D_200D_202B_200B_202E_200E_206C_206F_206E_202E_200F_202B_206D_200F_200D_200E_202C_200F_200C_206F_206E_200C_206A_200C_206E_200E_200F_202D_202E_206A_202E()) * 0.5f; - float num15 = vector8.X + 10f; - string text2 = _206C_200C_200C_202B_200D_206C_202D_206B_206A_206F_206A_200E_200D_202A_200E_202E_202E_202E_202B_202A_202B_200C_202E_202C_202B_200E_200C_200B_202D_206C_200C_200B_206B_200B_206A_206D_206B_202C_202E_202D_202E(icon); - ImRaii.FontDisposable fontDisposable = _200E_200E_202B_206B_202E_206C_200B_202E_202D_202B_200C_202C_206C_200E_200D_202E_202A_200D_200B_206B_202C_206E_200C_202D_202C_200B_206F_202D_200F_200E_202E_202C_200E_200D_206E_200B_200D_200D_206B_200C_202E(_206E_206D_202A_206E_206B_206B_200B_200F_206D_200E_202D_200F_200E_202A_206A_200C_202D_206A_200D_202C_206D_200E_206D_206F_202D_206E_202D_202A_200D_200C_206E_206E_202A_200E_200D_200D_202E_200F_206F_206E_202E(), true); - Vector2 vector10; - try - { - vector10 = _202E_206F_202A_202D_206F_202D_200E_200B_202A_202B_206B_206A_206E_206F_200B_206B_200C_206C_200D_206A_206F_206C_202E_206F_206A_200E_206A_206E_202A_200C_206F_206D_202E_206C_202E_206F_200D_200F_206F_202B_202E((ImU8String)text2, false, -1f); - } - finally - { - num3 = ((fontDisposable == null) ? (-1319197121) : (-1319197124)); - while (true) - { - int num16 = num3; - num5 = -1319197123; - num6 = num16; - int num17 = num6 + num5; - int num18 = num6 & num5; - switch (num17 - (num18 + num18)) - { - case 2: - goto end_IL_08ba; - case 1: - _200C_200D_200F_206B_202D_202C_202B_202D_200E_200E_200C_200F_206E_200D_202B_206F_206F_200B_202B_206C_206D_206D_200B_206E_200B_206D_202A_206D_202A_206A_206B_202D_200E_200D_200C_200D_202E_202C_206F_206D_202E((IDisposable)fontDisposable); - num3 = -1319197121; - break; - case 0: - num3 = -1319197124; - break; - } - continue; - end_IL_08ba: - break; - } - } - drawList.AddText(_206E_206D_202A_206E_206B_206B_200B_200F_206D_200E_202D_200F_200E_202A_206A_200C_202D_206A_200D_202C_206D_200E_206D_206F_202D_206E_202D_202A_200D_200C_206E_206E_202A_200E_200D_200D_202E_200F_206F_206E_202E(), _206D_200E_202B_202E_206D_200C_206D_200E_202D_206F_206B_206A_206D_206C_200E_202A_206E_206C_200C_200F_202D_206B_200B_200B_206E_200B_202E_200F_200D_200F_206E_206D_206C_202C_206E_200C_202D_206C_206B_202E(), new Vector2(num15, y), _202B_200E_202D_206A_206A_202D_202D_202D_202C_200F_200C_206E_206B_206B_200B_206F_206C_202D_202E_200C_202D_200F_206A_206B_206A_206B_200B_206E_200C_206C_202C_202A_200B_202D_200F_200B_202D_206E_206E_202A_202E(color), text2); - num15 += vector10.X + 6f; - col3 = _202B_200E_202D_206A_206A_202D_202D_202D_202C_200F_200C_206E_206B_206B_200B_206F_206C_202D_202E_200C_202D_200F_206A_206B_206A_206B_200B_206E_200C_206C_202C_202A_200B_202D_200F_200B_202D_206E_206E_202A_202E(UiThemeUtils.PrimaryTextColor); - drawList.AddText(new Vector2(num15, y), col3, text); - num15 += _202E_206F_202A_202D_206F_202D_200E_200B_202A_202B_206B_206A_206E_206F_200B_206B_200C_206C_200D_206A_206F_206C_202E_206F_206A_200E_206A_206E_202A_200C_206F_206D_202E_206C_202E_206F_200D_200F_206F_202B_202E((ImU8String)text, false, -1f).X + 10f; - Vector2 pos = new Vector2(num15, y); - uint col4 = _202B_200E_202D_206A_206A_202D_202D_202D_202C_200F_200C_206E_206B_206B_200B_206F_206C_202D_202E_200C_202D_200F_206A_206B_206A_206B_200B_206E_200C_206C_202C_202A_200B_202D_200F_200B_202D_206E_206E_202A_202E(color); - ImU8String text3 = new ImU8String(2, 1); - text3.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1542193285)); - text3.AppendFormatted(status); - text3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1991522223)); - drawList.AddText(pos, col4, text3); - num19 = vector8.Y + (34f - _206D_206A_200F_206D_200C_206E_206C_200C_206F_200B_202D_200D_202B_200B_202E_200E_206C_206F_206E_202E_200F_202B_206D_200F_200D_200E_202C_200F_200C_206F_206E_200C_206A_200C_206E_200E_200F_202D_202E_206A_202E() - 8f) * 0.5f; - num20 = vector9.X - 10f; - text4 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1775105392); - Vector2 vector11 = _202E_206F_202A_202D_206F_202D_200E_200B_202A_202B_206B_206A_206E_206F_200B_206B_200C_206C_200D_206A_206F_206C_202E_206F_206A_200E_206A_206E_202A_200C_206F_206D_202E_206C_202E_206F_200D_200F_206F_202B_202E((ImU8String)text4, false, -1f); - num21 = vector11.X + 16f; - float num22 = vector11.Y + 8f; - pMin3 = new Vector2(num20 - num21, num19); - pMax3 = new Vector2(num20, num19 + num22); - num3 = ((!(vector7.X >= pMin3.X)) ? 831584535 : 831584531); - goto IL_0a8b; - } - IL_0cba: - drawList.PopClipRect(); - if (!flag3) - { - break; - } - num3 = 831584530; - goto IL_0a8b; - IL_0a8b: - while (true) - { - int num23 = num3; - num5 = 831584529; - num6 = num23; - int num24 = num6 + num5; - int num25 = num6 & num5; - int num27; - Vector4 vector13; - int num26; - Vector4 vector12; - switch (num24 - (num25 + num25)) - { - case 9: - goto IL_0ae9; - case 13: - flag4 = true; - num3 = 831584529; - break; - case 14: - goto IL_0b23; - case 8: - goto IL_0b4e; - case 1: - goto IL_0b68; - case 10: - num3 = 831584531; - break; - case 6: - num27 = 0; - goto IL_0ba6; - case 11: - goto IL_0c2d; - case 0: - goto end_IL_0a8b; - case 12: - { - num27 = ((vector7.Y <= pMax3.Y) ? 1 : 0); - if (num27 == 0) - { - goto IL_0ba6; - } - Vector4 playButtonText = UiThemeUtils.AccentColor; - playButtonText.W = 0.25f; - vector13 = playButtonText; - goto IL_0bc5; - } - case 5: - { - num26 = ((vector7.Y <= pMax4.Y) ? 1 : 0); - if (num26 == 0) - { - goto IL_0d65; - } - Vector4 playButtonText = UiThemeUtils.AccentColor; - playButtonText.W = 0.25f; - vector12 = playButtonText; - goto IL_0d84; - } - case 2: - goto IL_0d1c; - case 3: - goto IL_0d47; - case 4: - num26 = 0; - goto IL_0d65; - case 7: - { - flag3 = true; - num3 = 831584538; - break; - } - IL_0d65: - vector12 = UiThemeUtils.AccentDimColor; - goto IL_0d84; - IL_0ba6: - vector13 = UiThemeUtils.AccentDimColor; - goto IL_0bc5; - IL_0d84: - drawList.AddRectFilled(col: _202B_200E_202D_206A_206A_202D_202D_202D_202C_200F_200C_206E_206B_206B_200B_206F_206C_202D_202E_200C_202D_200F_206A_206B_206A_206B_200B_206E_200C_206C_202C_202A_200B_202D_200F_200B_202D_206E_206E_202A_202E(vector12), pMin: pMin4, pMax: pMax4, rounding: 3f); - drawList.AddText(new Vector2(pMin4.X + 8f, pMin4.Y + 4f), col3, text5); - num3 = ((((uint)num26 & (flag2 ? 1u : 0u)) == 0) ? 831584529 : 831584540); - break; - IL_0bc5: - drawList.AddRectFilled(col: _202B_200E_202D_206A_206A_202D_202D_202D_202C_200F_200C_206E_206B_206B_200B_206F_206C_202D_202E_200C_202D_200F_206A_206B_206A_206B_200B_206E_200C_206C_202C_202A_200B_202D_200F_200B_202D_206E_206E_202A_202E(vector13), pMin: pMin3, pMax: pMax3, rounding: 3f); - drawList.AddText(new Vector2(pMin3.X + 8f, pMin3.Y + 4f), col3, text4); - num3 = ((((uint)num27 & (flag2 ? 1u : 0u)) == 0) ? 831584538 : 831584534); - break; - } - continue; - IL_0d47: - if (_selectedMarker == null) - { - goto end_IL_0613; - } - num3 = 831584537; - continue; - IL_0ae9: - num3 = ((!(vector7.Y >= pMin3.Y)) ? 831584535 : 831584541); - continue; - IL_0d1c: - num3 = ((!(vector7.X <= pMax3.X)) ? 831584535 : 831584536); - continue; - IL_0b4e: - if (!(_selectedMarker.WorldPos != Vector3.Zero)) - { - goto end_IL_0613; - } - goto IL_0b68; - IL_0b68: - num3 = ((!(vector7.Y >= pMin4.Y)) ? 831584533 : 831584532); - continue; - IL_0c2d: - num20 -= num21 + 6f; - text5 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(644196516); - Vector2 vector14 = _202E_206F_202A_202D_206F_202D_200E_200B_202A_202B_206B_206A_206E_206F_200B_206B_200C_206C_200D_206A_206F_206C_202E_206F_206A_200E_206A_206E_202A_200C_206F_206D_202E_206C_202E_206F_200D_200F_206F_202B_202E((ImU8String)text5, false, -1f); - float num28 = vector14.X + 16f; - float num29 = vector14.Y + 8f; - pMin4 = new Vector2(num20 - num28, num19); - pMax4 = new Vector2(num20, num19 + num29); - num3 = ((!(vector7.X >= pMin4.X)) ? 831584533 : 831584543); - continue; - IL_0b23: - num3 = ((!(vector7.X <= pMax4.X)) ? 831584533 : 831584528); - continue; - end_IL_0a8b: - break; - } - goto IL_0cba; - end_IL_0613: - break; - } - break; - } - num3 = ((!flag4) ? (-907725640) : (-907725635)); - while (true) - { - int num31 = num3; - num5 = -907725641; - num6 = num31; - int num32; - switch ((num6 | num5) - (num6 & num5)) - { - default: - continue; - case 20: - num3 = -907725635; - continue; - case 10: - num3 = ((_selectedMarker == null) ? (-907725640) : (-907725639)); - continue; - case 4: - num3 = ((!_isDragging) ? (-907725633) : (-907725658)); - continue; - case 17: - num32 = ((Vector2.Distance(_206A_200E_200B_206A_206A_206B_206C_200D_206C_200F_200B_206A_206A_206D_206B_202C_202E_202E_206F_206C_206A_200B_202C_202B_202B_206C_200D_202E_202A_206E_200B_206D_200C_202C_202B_206A_206A_202E_200D_202D_202E(), _dragStartPos) > 4f) ? 1 : 0); - goto IL_129f; - case 1: - num3 = (flag5 ? (-907725657) : (-907725647)); - continue; - case 0: - _questTooltipComponent.Draw(questInfo); - num3 = -907725645; - continue; - case 5: - { - Action<string>? selectTabAction = SelectTabAction; - if (selectTabAction == null) - { - break; - } - selectTabAction(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(529311826)); - num3 = -907725640; - continue; - } - case 9: - { - _selectedMarker = questMarker; - ImU8String imU8String = new ImU8String(12, 1); - imU8String.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-807643088)); - imU8String.AppendFormatted(questMarker.QuestId); - _206C_206C_206F_200E_206E_202C_206A_202C_206A_202B_202E_202E_202E_200B_200D_200B_202D_206E_202B_202C_200F_206D_200D_200E_202C_200B_200B_200F_200F_206D_206C_202A_202B_206B_206D_200E_200E_200B_202E_202A_202E(imU8String, ImGuiPopupFlags.None); - num3 = -907725637; - continue; - } - case 21: - return; - case 16: - num3 = ((questMarker == null) ? (-907725637) : (-907725643)); - continue; - case 12: - num3 = ((_selectedMarker == null) ? (-907725662) : (-907725659)); - continue; - case 19: - { - Questionable.Model.Quest quest = null; - _questRegistry.TryGetQuest(_selectedMarker.QuestId, out quest); - QuestJournalUtils? questJournalUtils = QuestJournalUtils; - if (questJournalUtils == null) - { - return; - } - questJournalUtils.ShowContextMenu(questInfo2, quest, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-712598669)); - num3 = -907725662; - continue; - } - case 3: - num3 = (flag5 ? (-907725637) : (-907725634)); - continue; - case 18: - num3 = ((!_questData.TryGetQuestInfo(_selectedMarker.QuestId, out questInfo2)) ? (-907725662) : (-907725660)); - continue; - case 14: - { - QuestChainComponent? questChainComponent = QuestChainComponent; - if (questChainComponent == null) - { - goto case 5; - } - questChainComponent.SelectQuest(_selectedMarker.QuestId); - num3 = -907725646; - continue; - } - case 11: - _selectedMarker = questMarker; - num3 = -907725657; - continue; - case 13: - _selectedMarker = null; - num3 = -907725657; - continue; - case 7: - num3 = ((!_questData.TryGetQuestInfo(questMarker.QuestId, out questInfo)) ? (-907725645) : (-907725641)); - continue; - case 6: - num3 = ((questMarker == null) ? (-907725663) : (-907725636)); - continue; - case 8: - num32 = 0; - goto IL_129f; - case 2: - num3 = ((!_200F_206C_206E_202D_206C_206B_206A_206B_200C_202B_200D_200E_200E_202E_206F_202E_202D_200E_206B_206C_206C_206E_206D_206B_200B_206C_202B_202C_202A_202E_202D_200B_202C_206E_202C_200B_202B_206B_202C_206B_202E(ImGuiMouseButton.Right)) ? (-907725637) : (-907725644)); - continue; - case 22: - num3 = ((!flag) ? (-907725657) : (-907725638)); - continue; - case 15: - break; - IL_129f: - flag5 = (byte)num32 != 0; - num3 = ((!_200F_206C_206E_202D_206C_206B_206A_206B_200C_202B_200D_200E_200E_202E_206F_202E_202D_200E_206B_206C_206C_206E_206D_206B_200B_206C_202B_202C_202A_202E_202D_200B_202C_206E_202C_200B_202B_206B_202C_206B_202E(ImGuiMouseButton.Left)) ? (-907725657) : (-907725642)); - continue; - } - num3 = ((questMarker == null) ? (-907725645) : (-907725648)); + Vector2 vector14 = MapUtil.WorldToMap(new Vector2(_selectedMarker.WorldPos.X, _selectedMarker.WorldPos.Z), valueNullable.Value); + MapLinkPayload mapLink = new MapLinkPayload(zoneEntry.TerritoryId, valueNullable.Value.RowId, vector14.X, vector14.Y); + _gameGui.OpenMapWithMapLink(mapLink); } } - IL_0136: - text6 = text7; - pos2 = vector2 + vector3 * 0.5f - _202E_206F_202A_202D_206F_202D_200E_200B_202A_202B_206B_206A_206E_206F_200B_206B_200C_206C_200D_206A_206F_206C_202E_206F_206A_200E_206A_206E_202A_200C_206F_206D_202E_206C_202E_206F_200D_200F_206F_202B_202E((ImU8String)text6, false, -1f) * 0.5f; - drawList.AddText(pos2, _202B_200E_202D_206A_206A_202D_202D_202D_202C_200F_200C_206E_206B_206B_200B_206F_206C_202D_202E_200C_202D_200F_206A_206B_206A_206B_200B_206E_200C_206C_202C_202A_200B_202D_200F_200B_202D_206E_206E_202A_202E(UiThemeUtils.DimTextColor), text6); - num3 = 277732534; - break; } + catch + { + } + } + if (flag2 && _selectedMarker != null) + { + QuestChainComponent?.SelectQuest(_selectedMarker.QuestId); + SelectTabAction?.Invoke("Quest Chain"); + } + if (questMarker != null && _questData.TryGetQuestInfo(questMarker.QuestId, out IQuestInfo questInfo)) + { + _questTooltipComponent.Draw(questInfo); + } + bool flag5 = _isDragging && Vector2.Distance(ImGui.GetMousePos(), _dragStartPos) > 4f; + if (ImGui.IsMouseReleased(ImGuiMouseButton.Left) && !flag5) + { + if (questMarker != null) + { + _selectedMarker = questMarker; + } + else if (flag) + { + _selectedMarker = null; + } + } + if (questMarker != null && ImGui.IsMouseReleased(ImGuiMouseButton.Right) && !flag5) + { + _selectedMarker = questMarker; + ImU8String strId = new ImU8String(12, 1); + strId.AppendLiteral("##QuestPopup"); + strId.AppendFormatted(questMarker.QuestId); + ImGui.OpenPopup(strId); + } + if (_selectedMarker != null && _questData.TryGetQuestInfo(_selectedMarker.QuestId, out IQuestInfo questInfo2)) + { + Questionable.Model.Quest quest = null; + _questRegistry.TryGetQuest(_selectedMarker.QuestId, out quest); + QuestJournalUtils?.ShowContextMenu(questInfo2, quest, "QuestMapComponent"); } } private void HandlePanZoom(Vector2 canvasPos, Vector2 canvasSize, bool isHovered) { - ImGuiIOPtr imGuiIOPtr = _206A_206E_202C_200C_206E_206F_206A_200E_200F_206E_202B_202C_202B_202C_200D_202D_206A_202B_200B_200C_200C_206B_206F_206B_206E_206B_202C_200D_206D_200E_202D_202D_200D_202E_202B_206A_202A_206D_200B_206C_202E(); - int num = ((!isHovered) ? (-1220923858) : (-1220923861)); - while (true) + ImGuiIOPtr iO = ImGui.GetIO(); + if (isHovered && MathF.Abs(iO.MouseWheel) > 0.01f) { - int num2 = num; - int num3 = -1220923860; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num7; - bool flag; - switch (num5 - (num6 + num6)) + float zoom = _zoom; + _zoom = Math.Clamp(_zoom + iO.MouseWheel * 0.1f, 0.15f, 3f); + Vector2 vector = ImGui.GetMousePos() - canvasPos - canvasSize * 0.5f - _offset; + _offset -= vector * (_zoom / zoom - 1f); + } + bool flag = ImGui.IsMouseDown(ImGuiMouseButton.Left) || ImGui.IsMouseDown(ImGuiMouseButton.Right) || ImGui.IsMouseDown(ImGuiMouseButton.Middle); + if (isHovered && flag) + { + if (!_isDragging) { - case 6: - _isDragging = false; - return; - case 7: - num = ((!(_200D_206A_202E_206B_202D_206C_206A_206C_202D_206D_200F_200E_202D_200F_202A_200E_206A_200B_200E_200B_202D_200E_206D_202D_206E_206B_202A_202E_206B_206A_200E_200C_206E_206C_200F_206B_206C_202B_202A_206B_202E(imGuiIOPtr.MouseWheel) > 0.01f)) ? (-1220923858) : (-1220923864)); - break; - case 4: + _isDragging = true; + _lastMousePos = ImGui.GetMousePos(); + _dragStartPos = _lastMousePos; + } + else { - float zoom = _zoom; - _zoom = _200B_202B_200F_202A_206C_206B_200C_200F_206E_202B_200F_200B_206A_206F_202A_202A_200E_202B_202A_202A_200B_200F_200E_202C_206F_200B_202A_206F_206D_206D_206F_206F_206B_202C_202B_206B_202D_206C_202D_200E_202E(_zoom + imGuiIOPtr.MouseWheel * 0.1f, 0.15f, 3f); - Vector2 vector = _206A_200E_200B_206A_206A_206B_206C_200D_206C_200F_200B_206A_206A_206D_206B_202C_202E_202E_206F_206C_206A_200B_202C_202B_202B_206C_200D_202E_202A_206E_200B_206D_200C_202C_202B_206A_206A_202E_200D_202D_202E() - canvasPos - canvasSize * 0.5f - _offset; - _offset -= vector * (_zoom / zoom - 1f); - num = -1220923858; - break; - } - case 2: - num = (_206C_206B_200D_202E_206C_206E_206A_200F_206E_206B_206B_202B_200E_202C_206D_200D_206C_206A_202A_206E_206D_206A_200F_206D_202C_202E_200E_200C_202D_202A_202E_206D_200B_206D_202A_202A_206C_206A_206F_200E_202E(ImGuiMouseButton.Left) ? (-1220923859) : (-1220923868)); - break; - case 9: - num7 = (_206C_206B_200D_202E_206C_206E_206A_200F_206E_206B_206B_202B_200E_202C_206D_200D_206C_206A_202A_206E_206D_206A_200F_206D_202C_202E_200E_200C_202D_202A_202E_206D_200B_206D_202A_202A_206C_206A_206F_200E_202E(ImGuiMouseButton.Middle) ? 1 : 0); - goto IL_016d; - case 1: - num7 = 1; - goto IL_016d; - case 0: - { - Vector2 vector2 = _206A_200E_200B_206A_206A_206B_206C_200D_206C_200F_200B_206A_206A_206D_206B_202C_202E_202E_206F_206C_206A_200B_202C_202B_202B_206C_200D_202E_202A_206E_200B_206D_200C_202C_202B_206A_206A_202E_200D_202D_202E(); - Vector2 vector3 = vector2 - _lastMousePos; - _offset += vector3; - _lastMousePos = vector2; - return; - } - case 8: - num = (_206C_206B_200D_202E_206C_206E_206A_200F_206E_206B_206B_202B_200E_202C_206D_200D_206C_206A_202A_206E_206D_206A_200F_206D_202C_202E_200E_200C_202D_202A_202E_206D_200B_206D_202A_202A_206C_206A_206F_200E_202E(ImGuiMouseButton.Right) ? (-1220923859) : (-1220923867)); - break; - case 10: - num = (_isDragging ? (-1220923860) : (-1220923863)); - break; - case 3: - num = -1220923861; - break; - case 5: - { - _isDragging = true; - _lastMousePos = _206A_200E_200B_206A_206A_206B_206C_200D_206C_200F_200B_206A_206A_206D_206B_202C_202E_202E_206F_206C_206A_200B_202C_202B_202B_206C_200D_202E_202A_206E_200B_206D_200C_202C_202B_206A_206A_202E_200D_202D_202E(); - _dragStartPos = _lastMousePos; - return; - } - IL_016d: - flag = (byte)num7 != 0; - num3 = (flag ? 1 : 0); - num4 = (isHovered ? 1 : 0); - num = (((num4 | num3) - (num4 ^ num3) == 0) ? (-1220923862) : (-1220923866)); - break; + Vector2 mousePos = ImGui.GetMousePos(); + Vector2 vector2 = mousePos - _lastMousePos; + _offset += vector2; + _lastMousePos = mousePos; } } + else + { + _isDragging = false; + } } private Vector2 MapPixelToScreen(Vector2 mapPixel, Vector2 canvasPos, Vector2 canvasSize) @@ -1241,278 +544,92 @@ internal sealed class QuestMapComponent HashSet<ushort> hashSet = new HashSet<ushort>(); Dictionary<ushort, int> territoryQuests = new Dictionary<ushort, int>(); _questsByTerritory.Clear(); - IEnumerator<Questionable.Model.Quest> enumerator = _questRegistry.AllQuests.GetEnumerator(); - int num; - try + foreach (Questionable.Model.Quest allQuest in _questRegistry.AllQuests) { - num = 3510575; - QuestSequence questSequence = default(QuestSequence); - Questionable.Model.Quest current = default(Questionable.Model.Quest); - QuestStep questStep = default(QuestStep); - List<(ElementId, string, Vector3, bool)> value = default(List<(ElementId, string, Vector3, bool)>); - while (true) + if (allQuest.Root.Disabled) { - int num2 = num; - int num3 = 3510575; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - questSequence = current.FindSequence(0); - num = ((questSequence == null) ? 3510575 : 3510565); - break; - case 3: - hashSet.Add(_202C_200D_202C_202A_206E_200C_200F_200E_206F_206A_200E_206D_202E_200C_202A_202C_206F_200F_206C_202C_200E_206E_206D_206B_202E_200D_202E_200C_200F_200E_202A_200F_202A_206A_206C_202D_200E_202B_202D_202A_202E(questStep)); - territoryQuests[_202C_200D_202C_202A_206E_200C_200F_200E_206F_206A_200E_206D_202E_200C_202A_202C_206F_200F_206C_202C_200E_206E_206D_206B_202E_200D_202E_200C_200F_200E_202A_200F_202A_206A_206C_202D_200E_202B_202D_202A_202E(questStep)] = territoryQuests.GetValueOrDefault(_202C_200D_202C_202A_206E_200C_200F_200E_206F_206A_200E_206D_202E_200C_202A_202C_206F_200F_206C_202C_200E_206E_206D_206B_202E_200D_202E_200C_200F_200E_202A_200F_202A_206A_206C_202D_200E_202B_202D_202A_202E(questStep)) + 1; - num = (_questsByTerritory.TryGetValue(_202C_200D_202C_202A_206E_200C_200F_200E_206F_206A_200E_206D_202E_200C_202A_202C_206F_200F_206C_202C_200E_206E_206D_206B_202E_200D_202E_200C_200F_200E_202A_200F_202A_206A_206C_202D_200E_202B_202D_202A_202E(questStep), out value) ? 3510567 : 3510571); - break; - case 8: - value.Add((current.Id, current.Info.Name, _202E_206F_206D_200B_200C_200D_200F_200F_202D_206F_202A_206A_206D_202A_202B_200D_200B_206D_202D_206C_206C_200E_202D_206B_206E_200D_206D_206C_202B_206A_200E_200F_200D_200B_200F_202E_200F_200D_206E_200F_202E(questStep).Value, true)); - num = 3510575; - break; - case 7: - questStep = _202B_206F_200E_206F_202E_206F_202E_206D_206D_200C_200C_200D_200F_202A_206A_206A_206C_206F_202B_202E_202E_202B_202A_200D_200D_202B_206A_200D_206A_200B_200F_206C_206D_200B_206A_200B_202E_202C_200B_202C_202E(questSequence)[0]; - num = ((_202C_200D_202C_202A_206E_200C_200F_200E_206F_206A_200E_206D_202E_200C_202A_202C_206F_200F_206C_202C_200E_206E_206D_206B_202E_200D_202E_200C_200F_200E_202A_200F_202A_206A_206C_202D_200E_202B_202D_202A_202E(questStep) == 0) ? 3510575 : 3510566); - break; - case 5: - num = 3510575; - break; - case 1: - current = enumerator.Current; - num = (_202C_206D_206E_202D_200C_206C_202D_206C_202B_200E_202A_200F_200C_202D_202C_202D_206C_202A_206C_206D_202C_200E_200E_206D_200E_200B_200D_200B_202D_202A_200B_206A_200E_206C_202C_206F_200D_202A_206F_202E_202E(current.Root) ? 3510575 : 3510573); - break; - case 4: - value = new List<(ElementId, string, Vector3, bool)>(); - _questsByTerritory[_202C_200D_202C_202A_206E_200C_200F_200E_206F_206A_200E_206D_202E_200C_202A_202C_206F_200F_206C_202C_200E_206E_206D_206B_202E_200D_202E_200C_200F_200E_202A_200F_202A_206A_206C_202D_200E_202B_202D_202A_202E(questStep)] = value; - num = 3510567; - break; - case 9: - num = ((!_202E_206F_206D_200B_200C_200D_200F_200F_202D_206F_202A_206A_206D_202A_202B_200D_200B_206D_202D_206C_206C_200E_202D_206B_206E_200D_206D_206C_202B_206A_200E_200F_200D_200B_200F_202E_200F_200D_206E_200F_202E(questStep).HasValue) ? 3510575 : 3510572); - break; - case 10: - num = ((_202B_206F_200E_206F_202E_206F_202E_206D_206D_200C_200C_200D_200F_202A_206A_206A_206C_206F_202B_202E_202E_202B_202A_200D_200D_202B_206A_200D_206A_200B_200F_206C_206D_200B_206A_200B_202E_202C_200B_202C_202E(questSequence).Count == 0) ? 3510575 : 3510568); - break; - case 0: - num = (_202E_202C_202B_206E_202C_206C_202A_200E_200C_200B_202E_200D_206F_206E_202C_200C_200E_206D_200E_200F_200F_202A_206D_200C_206A_200F_200E_200E_200E_200B_206D_200B_206F_206E_202E_200B_206C_206E_202B_206E_202E((IEnumerator)enumerator) ? 3510574 : 3510569); - break; - case 6: - goto end_IL_0046; - } continue; - end_IL_0046: - break; } - } - finally - { - num = ((enumerator == null) ? (-1429783768) : (-1429783765)); - while (true) + QuestSequence questSequence = allQuest.FindSequence(0); + if (questSequence == null || questSequence.Steps.Count == 0) { - int num5 = num; - int num3 = -1429783766; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1429783765; - break; - case 2: - goto end_IL_028f; - case 1: - _200C_200D_200F_206B_202D_202C_202B_202D_200E_200E_200C_200F_206E_200D_202B_206F_206F_200B_202B_206C_206D_206D_200B_206E_200B_206D_202A_206D_202A_206A_206B_202D_200E_200D_200C_200D_202E_202C_206F_206D_202E((IDisposable)enumerator); - num = -1429783768; - break; - } continue; - end_IL_028f: - break; + } + QuestStep questStep = questSequence.Steps[0]; + if (questStep.TerritoryId != 0 && questStep.Position.HasValue) + { + hashSet.Add(questStep.TerritoryId); + territoryQuests[questStep.TerritoryId] = territoryQuests.GetValueOrDefault(questStep.TerritoryId) + 1; + if (!_questsByTerritory.TryGetValue(questStep.TerritoryId, out List<(ElementId, string, Vector3, bool)> value)) + { + value = new List<(ElementId, string, Vector3, bool)>(); + _questsByTerritory[questStep.TerritoryId] = value; + } + value.Add((allQuest.Id, allQuest.Info.Name, questStep.Position.Value, true)); } } HashSet<ElementId> hashSet2 = new HashSet<ElementId>(_questRegistry.AllQuests.Select((Questionable.Model.Quest q) => q.Id)); try { ExcelSheet<Lumina.Excel.Sheets.Quest> excelSheet = _dataManager.GetExcelSheet<Lumina.Excel.Sheets.Quest>(); - IEnumerator<KeyValuePair<ElementId, IQuestInfo>> enumerator2 = _questData.AllQuests.GetEnumerator(); - try + foreach (var (elementId2, questInfo2) in _questData.AllQuests) { - Level? valueNullable = default(Level?); - List<(ElementId, string, Vector3, bool)> value2 = default(List<(ElementId, string, Vector3, bool)>); - ushort num9 = default(ushort); - while (_202E_202C_202B_206E_202C_206C_202A_200E_200C_200B_202E_200D_206F_206E_202C_200C_200E_206D_200E_200F_200F_202A_206D_200C_206A_200F_200E_200E_200E_200B_206D_200B_206F_206E_202E_200B_206C_206E_202B_206E_202E((IEnumerator)enumerator2)) + if (!(elementId2 is QuestId questId) || hashSet2.Contains(elementId2)) { - var (elementId2, questInfo2) = (KeyValuePair<ElementId, IQuestInfo>)(ref enumerator2.Current); - if (!(elementId2 is QuestId questId) || hashSet2.Contains(elementId2)) + continue; + } + try + { + Lumina.Excel.Sheets.Quest? rowOrDefault = excelSheet.GetRowOrDefault((uint)(questId.Value + 65536)); + if (!rowOrDefault.HasValue) { continue; } - try + Level? valueNullable = rowOrDefault.Value.IssuerLocation.ValueNullable; + if (!valueNullable.HasValue) { - Lumina.Excel.Sheets.Quest? rowOrDefault = excelSheet.GetRowOrDefault((uint)(_202A_200F_206F_206D_206C_206C_206D_202C_202E_206E_202C_206A_200F_200D_202A_200D_202A_200E_200C_206F_200B_202D_200D_200D_206E_200F_206B_200E_206F_202E_206C_200F_206D_206F_206B_206D_202B_206A_206F_202E((ElementId)questId) + 65536)); - num = (rowOrDefault.HasValue ? 87324240 : 87324247); - while (true) - { - int num6 = num; - int num3 = 87324246; - int num4 = num6; - int num7 = num4 + num3; - int num8 = num4 & num3; - switch (num7 - (num8 + num8)) - { - case 5: - goto end_IL_03b5; - case 6: - valueNullable = rowOrDefault.Value.IssuerLocation.ValueNullable; - num = (valueNullable.HasValue ? 87324244 : 87324243); - break; - case 4: - value2 = new List<(ElementId, string, Vector3, bool)>(); - _questsByTerritory[num9] = value2; - num = 87324245; - break; - case 2: - num9 = (ushort)valueNullable.Value.Territory.RowId; - num = ((num9 != 0) ? 87324254 : 87324241); - break; - case 0: - num = 87324247; - break; - case 1: - goto end_IL_03b5; - case 7: - goto end_IL_03b5; - case 8: - hashSet.Add(num9); - territoryQuests[num9] = territoryQuests.GetValueOrDefault(num9) + 1; - num = (_questsByTerritory.TryGetValue(num9, out value2) ? 87324245 : 87324242); - break; - case 3: - { - Vector3 item = new Vector3(valueNullable.Value.X, valueNullable.Value.Y, valueNullable.Value.Z); - value2.Add((questId, questInfo2.Name, item, false)); - goto end_IL_03b5; - } - } - continue; - end_IL_03b5: - break; - } + continue; } - catch + ushort num = (ushort)valueNullable.Value.Territory.RowId; + if (num != 0) { + hashSet.Add(num); + territoryQuests[num] = territoryQuests.GetValueOrDefault(num) + 1; + if (!_questsByTerritory.TryGetValue(num, out List<(ElementId, string, Vector3, bool)> value2)) + { + value2 = new List<(ElementId, string, Vector3, bool)>(); + _questsByTerritory[num] = value2; + } + Vector3 item = new Vector3(valueNullable.Value.X, valueNullable.Value.Y, valueNullable.Value.Z); + value2.Add((questId, questInfo2.Name, item, false)); } } - } - finally - { - num = ((enumerator2 == null) ? 311590421 : 311590422); - while (true) + catch { - int num10 = num; - int num3 = 311590423; - int num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_05b1; - case 1: - _200C_200D_200F_206B_202D_202C_202B_202D_200E_200E_200C_200F_206E_200D_202B_206F_206F_200B_202B_206C_206D_206D_200B_206E_200B_206D_202A_206D_202A_206A_206B_202D_200E_200D_200C_200D_202E_202C_206F_206D_202E((IDisposable)enumerator2); - num = 311590421; - break; - case 0: - num = 311590422; - break; - } - continue; - end_IL_05b1: - break; } } } catch { } - _zones = (from z in hashSet.Select([MethodImpl(MethodImplOptions.NoInlining)] (ushort id) => + _zones = (from z in hashSet.Select(delegate(ushort id) { string name = _territoryData.GetName(id); string mapIdForTerritory = GetMapIdForTerritory(id); - int num13 = territoryQuests[id]; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(8, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1509869170)); - defaultInterpolatedStringHandler.AppendFormatted(num13); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(362456123)); - defaultInterpolatedStringHandler.AppendFormatted((num13 != 1) ? global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1550583417) : global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1281927779)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - string text = defaultInterpolatedStringHandler.ToStringAndClear(); - int num14 = ((name != null) ? 1994970144 : 1994970147); - string text2; - while (true) - { - int num15 = num14; - int num16 = 1994970145; - int num17 = num15; - int num18 = num17 + num16; - int num19 = num17 & num16; - switch (num18 - (num19 + num19)) - { - default: - continue; - case 0: - goto IL_00eb; - case 1: - text2 = _003C_003Ec__DisplayClass56_0._200E_202E_206F_202A_200E_202C_202B_200C_202E_200B_202D_200D_206F_202B_206F_206F_200F_202C_202A_202E_200C_206E_206C_200B_206C_206A_206E_206B_202C_200E_200E_202A_200F_206E_200F_202B_206F_200C_202D_202E(name, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2018550958), text); - break; - case 2: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(6, 2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-950100909)); - defaultInterpolatedStringHandler2.AppendFormatted(id); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(751790982)); - defaultInterpolatedStringHandler2.AppendFormatted(text); - text2 = defaultInterpolatedStringHandler2.ToStringAndClear(); - break; - } - } - break; - IL_00eb: - num14 = 1994970147; - } - string displayName = text2; - string text3 = name; - if (text3 == null) - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(5, 1); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1749272606)); - defaultInterpolatedStringHandler3.AppendFormatted(id); - text3 = defaultInterpolatedStringHandler3.ToStringAndClear(); - } - return new ZoneEntry(id, text3, displayName, mapIdForTerritory); + int num3 = territoryQuests[id]; + string text = $"({num3} quest{((num3 != 1) ? "s" : "")})"; + string displayName = ((name != null) ? (name + " " + text) : $"Zone {id} {text}"); + return new ZoneEntry(id, name ?? $"Zone {id}", displayName, mapIdForTerritory); }) orderby z.Name select z).ToList(); _zoneItems = _zones.Select((ZoneEntry z) => z.DisplayName).ToArray(); - num = ((_zones.Count <= 0) ? 1345343028 : 1345343029); - while (true) + if (_zones.Count > 0) { - int num11 = num; - int num3 = 1345343028; - int num4 = num11; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1345343029; - break; - case 1: - { - uint currentTerritory = _200C_202E_202D_206C_200D_200D_200D_202E_206F_200D_200D_200E_200E_202D_200B_200C_206B_202E_206D_202B_202D_200C_202E_206A_202E_200F_200F_206B_206D_202D_202B_202D_206D_206A_200E_202A_200C_202E_200C_200E_202E(_clientState); - int num12 = _zones.FindIndex((ZoneEntry z) => z.TerritoryId == currentTerritory); - _selectedZoneIndex = ((num12 >= 0) ? num12 : _202C_206F_202A_200C_200C_202A_200D_206A_206E_206E_200C_206A_200E_206C_202A_200E_206A_202B_200C_202A_206C_206F_206E_206C_206F_200C_206F_206A_202E_206F_206B_206A_200F_206A_200F_200C_202B_206C_206E_206C_202E(_selectedZoneIndex, 0, _zones.Count - 1)); - RebuildMarkers(); - num = 1345343028; - break; - } - case 0: - return; - } + uint currentTerritory = _clientState.TerritoryType; + int num2 = _zones.FindIndex((ZoneEntry z) => z.TerritoryId == currentTerritory); + _selectedZoneIndex = ((num2 >= 0) ? num2 : Math.Clamp(_selectedZoneIndex, 0, _zones.Count - 1)); + RebuildMarkers(); } } @@ -1521,29 +638,9 @@ internal sealed class QuestMapComponent try { RowRef<Map> map = _dataManager.GetExcelSheet<TerritoryType>().GetRow(territoryId).Map; - int num = ((map.RowId == 0) ? 1831894853 : 1831894852); - while (true) + if (map.RowId != 0) { - int num2 = num; - int num3 = 1831894853; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0077; - case 1: - return map.Value.Id.ExtractText(); - case 0: - goto end_IL_0049; - } - continue; - IL_0077: - num = 1831894852; - continue; - end_IL_0049: - break; + return map.Value.Id.ExtractText(); } } catch @@ -1557,33 +654,7 @@ internal sealed class QuestMapComponent try { TerritoryType row = _dataManager.GetExcelSheet<TerritoryType>().GetRow(territoryId); - int num = ((row.Map.RowId != 0) ? 818760685 : 818760684); - Map? result; - while (true) - { - int num2 = num; - int num3 = 818760685; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 2: - goto IL_0077; - case 1: - result = null; - break; - case 0: - result = row.Map.Value; - break; - } - break; - IL_0077: - num = 818760684; - } - return result; + return (row.Map.RowId != 0) ? new Map?(row.Map.Value) : ((Map?)null); } catch { @@ -1602,317 +673,74 @@ internal sealed class QuestMapComponent private void RebuildMarkers() { _currentMarkers.Clear(); - int num = ((_zones.Count == 0) ? (-1023750218) : (-1023750224)); - ZoneEntry zoneEntry = default(ZoneEntry); - List<(ElementId, string, Vector3, bool)> value = default(List<(ElementId, string, Vector3, bool)>); - Vector3 item3 = default(Vector3); - ElementId item = default(ElementId); - string item2 = default(string); - while (true) + if (_zones.Count == 0 || _selectedZoneIndex >= _zones.Count) { - int num2 = num; - int num3 = -1023750220; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + ZoneEntry zoneEntry = _zones[_selectedZoneIndex]; + if (!_questsByTerritory.TryGetValue(zoneEntry.TerritoryId, out List<(ElementId, string, Vector3, bool)> value)) + { + return; + } + Map? map = LoadMapRow(zoneEntry.TerritoryId); + foreach (var (elementId, questName, worldPos, _) in value) + { + if ((_showUnobtainable || !_questFunctions.IsQuestUnobtainable(elementId)) && PassesStatusFilter(elementId)) { - case 3: - zoneEntry = _zones[_selectedZoneIndex]; - num = (_questsByTerritory.TryGetValue(zoneEntry.TerritoryId, out value) ? (-1023750223) : (-1023750219)); - break; - case 2: - return; - case 4: - num = ((_selectedZoneIndex < _zones.Count) ? (-1023750217) : (-1023750218)); - break; - case 0: - num = -1023750224; - break; - case 1: - return; - case 5: - { - Map? map = LoadMapRow(zoneEntry.TerritoryId); - using (List<(ElementId, string, Vector3, bool)>.Enumerator enumerator = value.GetEnumerator()) - { - num = -1798420317; - while (true) - { - int num7 = num; - num3 = -1798420317; - num4 = num7; - Vector2 vector; - Vector2 mapPixelPos; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - vector = new Vector2(WorldToMapPixel(item3.X, map.Value.OffsetX, (int)map.Value.SizeFactor), WorldToMapPixel(item3.Z, map.Value.OffsetY, (int)map.Value.SizeFactor)); - goto IL_01b0; - case 5: - vector = new Vector2(1024f + item3.X, 1024f + item3.Z); - goto IL_01b0; - case 8: - num = ((!PassesStatusFilter(item)) ? (-1798420317) : (-1798420316)); - break; - case 3: - num = (_questFunctions.IsQuestUnobtainable(item) ? (-1798420317) : (-1798420309)); - break; - case 7: - num = (map.HasValue ? (-1798420319) : (-1798420314)); - break; - case 0: - num = (enumerator.MoveNext() ? (-1798420315) : (-1798420318)); - break; - case 4: - num = -1798420317; - break; - case 6: - { - (ElementId, string, Vector3, bool) current = enumerator.Current; - item = current.Item1; - item2 = current.Item2; - item3 = current.Item3; - num = (_showUnobtainable ? (-1798420309) : (-1798420320)); - break; - } - case 1: - goto end_IL_010b; - IL_01b0: - mapPixelPos = vector; - _currentMarkers.Add(new QuestMarker(item, item2, mapPixelPos, item3)); - num = -1798420317; - break; - } - continue; - end_IL_010b: - break; - } - } - RefreshMarkerStyles(); - return; - } + Vector2 mapPixelPos = (map.HasValue ? new Vector2(WorldToMapPixel(worldPos.X, map.Value.OffsetX, (int)map.Value.SizeFactor), WorldToMapPixel(worldPos.Z, map.Value.OffsetY, (int)map.Value.SizeFactor)) : new Vector2(1024f + worldPos.X, 1024f + worldPos.Z)); + _currentMarkers.Add(new QuestMarker(elementId, questName, mapPixelPos, worldPos)); } } + RefreshMarkerStyles(); } private void RefreshMarkerStyles() { - int num; - using (List<QuestMarker>.Enumerator enumerator = _currentMarkers.GetEnumerator()) + foreach (QuestMarker currentMarker in _currentMarkers) { - num = -1929554673; - while (true) - { - int num2 = num; - int num3 = -1929554676; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -1929554673; - break; - case 3: - num = (enumerator.MoveNext() ? (-1929554675) : (-1929554676)); - break; - case 1: - { - QuestMarker current = enumerator.Current; - (Vector4 Color, FontAwesomeIcon Icon, string Status) questStyle = _uiUtils.GetQuestStyle(current.QuestId); - Vector4 item = questStyle.Color; - FontAwesomeIcon item2 = questStyle.Icon; - string item3 = questStyle.Status; - current.Color = item; - current.Icon = item2; - current.Status = item3; - num = -1929554673; - break; - } - case 0: - goto end_IL_0018; - } - continue; - end_IL_0018: - break; - } + (Vector4 Color, FontAwesomeIcon Icon, string Status) questStyle = _uiUtils.GetQuestStyle(currentMarker.QuestId); + Vector4 item = questStyle.Color; + FontAwesomeIcon item2 = questStyle.Icon; + string item3 = questStyle.Status; + currentMarker.Color = item; + currentMarker.Icon = item2; + currentMarker.Status = item3; } - num = ((_selectedMarker == null) ? 638306356 : 638306357); - while (true) + if (_selectedMarker != null && !_currentMarkers.Contains(_selectedMarker)) { - int num7 = num; - int num3 = 638306359; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 638306357; - break; - case 1: - var (color, icon, status) = _uiUtils.GetQuestStyle(_selectedMarker.QuestId); - _selectedMarker.Color = color; - _selectedMarker.Icon = icon; - _selectedMarker.Status = status; - num = 638306356; - break; - case 2: - num = (_currentMarkers.Contains(_selectedMarker) ? 638306356 : 638306358); - break; - case 3: - _lastStyleRefresh = _200C_200B_202A_202B_202A_206D_206D_206A_200D_200C_200B_206A_202A_206C_206B_206B_200F_202B_206E_202D_206E_202C_202A_206A_202E_206D_206E_200B_200C_200E_200C_202D_200E_202E_206C_200B_206F_206F_206A_206B_202E(); - return; - } + var (color, icon, status) = _uiUtils.GetQuestStyle(_selectedMarker.QuestId); + _selectedMarker.Color = color; + _selectedMarker.Icon = icon; + _selectedMarker.Status = status; } + _lastStyleRefresh = Environment.TickCount64; } private bool PassesStatusFilter(ElementId questId) { - int selectedStatusFilter = _selectedStatusFilter; - int num = 1; - int num2 = selectedStatusFilter; - int num3; - bool result = default(bool); - switch (~(~num2 + num)) + return _selectedStatusFilter switch { - default: - num3 = -1323618443; - goto IL_0032; - case 2: - result = _questFunctions.IsQuestComplete(questId); - num3 = -1323618440; - goto IL_0032; - case 0: - goto IL_00cf; - case 1: - goto IL_0131; - case 3: - goto IL_0149; - IL_0032: - while (true) - { - int num4 = num3; - num = -1323618446; - num2 = num4; - int num5 = num2 + num; - int num6 = num2 & num; - int num8; - int num7; - switch (num5 - (num6 + num6)) - { - case 5: - goto IL_0084; - case 9: - goto end_IL_0032; - case 2: - num3 = -1323618443; - break; - case 12: - goto IL_00cf; - case 8: - result = true; - num3 = -1323618440; - break; - case 11: - num8 = ((!_questFunctions.IsReadyToAcceptQuest(questId)) ? 1 : 0); - goto IL_017f; - case 10: - return result; - case 7: - num3 = -1323618438; - break; - case 3: - goto IL_0131; - case 1: - goto IL_0149; - case 0: - num7 = 0; - goto IL_0172; - case 6: - num8 = 1; - goto IL_017f; - case 4: - { - num7 = ((!_questFunctions.IsQuestAcceptedOrComplete(questId)) ? 1 : 0); - goto IL_0172; - } - IL_0172: - result = (byte)num7 != 0; - num3 = -1323618440; - break; - IL_017f: - result = (byte)num8 != 0; - num3 = -1323618440; - break; - } - continue; - IL_0084: - num3 = ((!_questFunctions.IsReadyToAcceptQuest(questId)) ? (-1323618446) : (-1323618442)); - continue; - end_IL_0032: - break; - } - goto case 2; - IL_0149: - num3 = (_questFunctions.IsQuestLocked(questId) ? (-1323618444) : (-1323618439)); - goto IL_0032; - IL_00cf: - num3 = (_questFunctions.IsQuestLocked(questId) ? (-1323618446) : (-1323618441)); - goto IL_0032; - IL_0131: - result = _questFunctions.IsQuestAccepted(questId); - num3 = -1323618440; - goto IL_0032; - } + 1 => !_questFunctions.IsQuestLocked(questId) && _questFunctions.IsReadyToAcceptQuest(questId) && !_questFunctions.IsQuestAcceptedOrComplete(questId), + 2 => _questFunctions.IsQuestAccepted(questId), + 3 => _questFunctions.IsQuestComplete(questId), + 4 => _questFunctions.IsQuestLocked(questId) || !_questFunctions.IsReadyToAcceptQuest(questId), + _ => true, + }; } public void SelectZone(ushort territoryId) { - int num = ((!_needsRebuild) ? 798839994 : 798839997); - int num7 = default(int); - while (true) + if (_needsRebuild) { - int num2 = num; - int num3 = 798839993; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + RebuildZoneList(); + _needsRebuild = false; + } + for (int i = 0; i < _zones.Count; i++) + { + if (_zones[i].TerritoryId == territoryId) { - case 1: - _selectedZoneIndex = num7; + _selectedZoneIndex = i; OnZoneChanged(); - return; - case 3: - num7 = 0; - num = 798839996; - break; - case 0: - num = ((_zones[num7].TerritoryId != territoryId) ? 798839999 : 798839992); - break; - case 4: - RebuildZoneList(); - _needsRebuild = false; - num = 798839994; - break; - case 7: - num = 798839997; - break; - case 2: - return; - case 6: - { - int num8 = num7; - num3 = 1; - num4 = num8; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - num7 = num9 + (num10 + num10); - num = 798839996; - break; - } - case 5: - num = ((num7 < _zones.Count) ? 798839993 : 798839995); break; } } @@ -1921,39 +749,13 @@ internal sealed class QuestMapComponent public void SelectQuest(ElementId questId, ushort territoryId) { SelectZone(territoryId); - using (List<QuestMarker>.Enumerator enumerator = _currentMarkers.GetEnumerator()) + foreach (QuestMarker currentMarker in _currentMarkers) { - int num = 924575683; - QuestMarker current = default(QuestMarker); - while (true) + if (currentMarker.QuestId == questId) { - int num2 = num; - int num3 = 924575683; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = 924575683; - break; - case 0: - num = (enumerator.MoveNext() ? 924575687 : 924575682); - break; - case 2: - _selectedMarker = current; - _centerOnMarker = true; - return; - case 4: - current = enumerator.Current; - num = ((!_200C_206F_206D_206E_202B_202B_202D_206C_202A_200B_206D_202C_202E_206C_202D_200B_202E_206D_202C_202C_206C_200B_206B_206D_202A_202B_200C_206E_202E_206C_202E_206E_200E_200E_206B_206E_200B_206D_206E_206C_202E(current.QuestId, questId)) ? 924575683 : 924575681); - break; - case 1: - goto end_IL_001f; - } - continue; - end_IL_001f: - break; + _selectedMarker = currentMarker; + _centerOnMarker = true; + return; } } if (!_questData.TryGetQuestInfo(questId, out IQuestInfo questInfo)) @@ -1966,39 +768,19 @@ internal sealed class QuestMapComponent { try { - Lumina.Excel.Sheets.Quest? rowOrDefault = _dataManager.GetExcelSheet<Lumina.Excel.Sheets.Quest>().GetRowOrDefault((uint)(_202A_200F_206F_206D_206C_206C_206D_202C_202E_206E_202C_206A_200F_200D_202A_200D_202A_200E_200C_206F_200B_202D_200D_200D_206E_200F_206B_200E_206F_202E_206C_200F_206D_206F_206B_206D_202B_206A_206F_202E((ElementId)questId2) + 65536)); - int num = ((!rowOrDefault.HasValue) ? 1567290571 : 1567290568); - Level? valueNullable = default(Level?); - Map? map = default(Map?); - while (true) + Lumina.Excel.Sheets.Quest? rowOrDefault = _dataManager.GetExcelSheet<Lumina.Excel.Sheets.Quest>().GetRowOrDefault((uint)(questId2.Value + 65536)); + if (rowOrDefault.HasValue) { - int num7 = num; - int num3 = 1567290569; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) + Level? valueNullable = rowOrDefault.Value.IssuerLocation.ValueNullable; + if (valueNullable.HasValue) { - case 4: - num = 1567290568; - break; - case 1: - valueNullable = rowOrDefault.Value.IssuerLocation.ValueNullable; - num = ((!valueNullable.HasValue) ? 1567290571 : 1567290570); - break; - case 3: worldPos = new Vector3(valueNullable.Value.X, valueNullable.Value.Y, valueNullable.Value.Z); - map = LoadMapRow(territoryId); - num = ((!map.HasValue) ? 1567290571 : 1567290569); - break; - case 0: - mapPixelPos = new Vector2(WorldToMapPixel(worldPos.X, map.Value.OffsetX, (int)map.Value.SizeFactor), WorldToMapPixel(worldPos.Z, map.Value.OffsetY, (int)map.Value.SizeFactor)); - num = 1567290571; - break; - case 2: - goto end_IL_016b; + Map? map = LoadMapRow(territoryId); + if (map.HasValue) + { + mapPixelPos = new Vector2(WorldToMapPixel(worldPos.X, map.Value.OffsetX, (int)map.Value.SizeFactor), WorldToMapPixel(worldPos.Z, map.Value.OffsetY, (int)map.Value.SizeFactor)); + } } - continue; - end_IL_016b: - break; } } catch @@ -2025,234 +807,4 @@ internal sealed class QuestMapComponent _offset = Vector2.Zero; _zoom = 0.5f; } - - static MapTextureService _202C_206A_200F_200F_206D_206D_206A_202A_202E_206F_206B_202D_206E_206E_206B_206F_200E_206B_206A_206B_206C_206C_206F_200B_202A_202B_202E_206D_202C_206F_200E_206D_202B_202B_200B_202C_206B_200F_202D_206B_202E(ITextureProvider P_0, IDataManager P_1, ILogger<MapTextureService> P_2) - { - return new MapTextureService(P_0, P_1, P_2); - } - - static void _206C_200C_200B_200E_206C_206C_202C_206B_200E_206D_206F_206F_206F_200C_200F_200F_200B_200E_202C_206C_202D_206B_206B_206A_206C_200D_200B_206C_200D_200D_202A_200D_206E_206A_206F_202A_206E_200C_200B_206D_202E() - { - ImGui.Separator(); - } - - static ImGuiStylePtr _206E_202C_202C_200C_206B_202E_200C_200E_206D_202B_200C_206F_200F_202C_206E_206E_202E_206A_200F_200D_206D_206C_206E_200C_202D_202A_200D_202E_206C_206F_200D_202B_202D_206E_202B_202C_200C_206C_206D_200C_202E() - { - return ImGui.GetStyle(); - } - - static ImGuiIOPtr _206A_206E_202C_200C_206E_206F_206A_200E_200F_206E_202B_202C_202B_202C_200D_202D_206A_202B_200B_200C_200C_206B_206F_206B_206E_206B_202C_200D_206D_200E_202D_202D_200D_202E_202B_206A_202A_206D_200B_206C_202E() - { - return ImGui.GetIO(); - } - - static Vector2 _202E_206F_202A_202D_206F_202D_200E_200B_202A_202B_206B_206A_206E_206F_200B_206B_200C_206C_200D_206A_206F_206C_202E_206F_206A_200E_206A_206E_202A_200C_206F_206D_202E_206C_202E_206F_200D_200F_206F_202B_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static float _202C_200D_202B_200D_206C_206D_202E_206E_200B_206F_206A_206A_206A_200E_200B_200D_200F_200E_206B_206D_200C_206D_202E_202A_206D_200D_202A_206C_202E_202D_200F_206E_200F_200C_206C_200B_206D_206F_206F_200E_202E() - { - return ImGui.GetFrameHeight(); - } - - static void _202C_206D_200E_206C_206D_206C_200E_200F_202D_206D_200D_206D_200E_202B_200B_206B_202D_206C_206E_202B_206D_206E_202C_202B_206E_206D_200B_202D_202D_200D_200C_206A_202B_202E_200B_200D_202E_200B_206D_200F_202E() - { - ImGui.SameLine(); - } - - static void _206F_202D_206D_200B_202B_206C_202D_200D_202C_200F_200C_202A_206C_206B_202E_200B_202C_202E_206D_206F_206B_206F_202E_200E_206D_202C_200E_206D_200D_206B_202D_206E_206A_206D_206F_206A_200C_206B_202B_206A_202E(float P_0) - { - ImGui.SetNextItemWidth(P_0); - } - - static uint _200C_202E_202D_206C_200D_200D_200D_202E_206F_200D_200D_200E_200E_202D_200B_200C_206B_202E_206D_202B_202D_200C_202E_206A_202E_200F_200F_206B_206D_202D_202B_202D_206D_206A_200E_202A_200C_202E_200C_200E_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static bool _206D_200F_202C_206D_206E_202D_202D_200C_200E_202B_200B_206B_206B_206F_200E_206C_206E_200E_202A_200D_202D_200C_200E_202E_206F_206E_206B_202E_200F_202B_202D_206C_206E_202B_206C_200B_202A_200E_206A_202C_202E() - { - return ImGui.IsItemHovered(); - } - - static void _200C_202D_206C_200F_200C_202D_202A_206B_200F_200B_206E_202D_200F_200C_200E_200F_200E_200E_206D_200E_206D_200D_202A_206E_206F_206B_200F_200F_200C_200B_202A_206F_200C_202C_206F_206D_200C_206F_200C_202D_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } - - static float _206D_206A_200F_206D_200C_206E_206C_200C_206F_200B_202D_200D_202B_200B_202E_200E_206C_206F_206E_202E_200F_202B_206D_200F_200D_200E_202C_200F_200C_206F_206E_200C_206A_200C_206E_200E_200F_202D_202E_206A_202E() - { - return ImGui.GetTextLineHeight(); - } - - static uint _202B_200E_202D_206A_206A_202D_202D_202D_202C_200F_200C_206E_206B_206B_200B_206F_206C_202D_202E_200C_202D_200F_206A_206B_206A_206B_200B_206E_200C_206C_202C_202A_200B_202D_200F_200B_202D_206E_206E_202A_202E(Vector4 P_0) - { - return ImGui.ColorConvertFloat4ToU32(P_0); - } - - static long _200C_200B_202A_202B_202A_206D_206D_206A_200D_200C_200B_206A_202A_206C_206B_206B_200F_202B_206E_202D_206E_202C_202A_206A_202E_206D_206E_200B_200C_200E_200C_202D_200E_202E_206C_200B_206F_206F_206A_206B_202E() - { - return Environment.TickCount64; - } - - static Vector2 _206B_202C_200B_200F_206D_206B_200F_202B_206F_206B_206A_202A_206A_206F_200F_200B_202D_202D_206E_200B_202B_200D_206A_200D_202D_202E_202E_200F_206B_200D_200C_202A_206C_200E_206E_206A_202C_206C_206B_202B_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static float _206C_206B_206B_202E_206D_200F_206E_200C_206C_200B_206C_206D_206D_200E_206E_202B_206B_202B_206F_200D_200F_200C_202C_200C_206B_200C_206D_200D_206A_206B_206B_200F_202B_202E_206C_206D_202A_202E_202A_202B_202E(float P_0, float P_1) - { - return MathF.Max(P_0, P_1); - } - - static Vector2 _202A_206A_202D_202C_200C_200F_206B_200E_206D_202A_206B_206B_202B_206D_200B_200D_206E_200F_200B_202D_202E_202C_200E_206A_200F_200E_200B_202C_206A_206F_202C_200D_206C_206D_206B_200D_206E_202B_206C_202A_202E() - { - return ImGui.GetCursorScreenPos(); - } - - static bool _206D_206B_202D_202C_206C_206D_202D_206E_200F_200C_202A_200F_202C_202B_202A_200D_200F_202A_200C_206E_206D_202A_206E_206C_200C_200E_202A_202B_206F_202A_202C_206A_206C_202B_206D_200F_206A_200B_202A_202E_202E(ImU8String P_0, Vector2 P_1, ImGuiButtonFlags P_2) - { - return ImGui.InvisibleButton(P_0, P_1, P_2); - } - - static ImDrawListPtr _202A_200C_200F_200C_200D_200E_202D_200B_206C_200F_206C_200F_202C_200B_202B_202B_202B_202E_202C_206D_200D_200B_202B_202B_200C_206F_206D_200E_206F_200D_202C_206C_206A_206E_202E_206D_200F_206E_200F_206F_202E() - { - return ImGui.GetWindowDrawList(); - } - - static bool _206D_200F_202B_200B_206D_206E_202B_206D_200B_200E_206B_206D_206B_200F_206F_200C_200F_206A_206A_202A_200F_206F_202B_206E_202C_206C_202A_202E_206E_202C_206B_206D_206C_200C_202C_206F_206A_206E_200B_202E_202E(MapTextureService P_0, uint P_1) - { - return P_0.LoadForTerritory(P_1); - } - - static IDalamudTextureWrap _206C_200E_200D_200E_200C_200C_206D_202E_202D_206E_202D_200B_202E_206C_200E_202D_206C_206C_206F_200C_206B_202C_206C_200C_206A_202A_202E_206F_202C_206F_200B_206A_200E_202B_200E_202B_202E_206A_200E_200C_202E(MapTextureService P_0) - { - return P_0.GetTextureWrap(); - } - - static ImTextureID _200E_202C_206C_200F_200E_206A_206C_202D_202D_206D_200D_202A_202D_202B_200C_202B_202C_202B_206D_206B_200E_200E_206A_200C_206C_200E_206C_206D_206F_206C_200F_206B_206B_200B_206B_202D_200D_202D_202A_200D_202E(IDalamudTextureWrap P_0) - { - return P_0.Handle; - } - - static bool _206F_206F_206F_206A_206B_206F_202D_206E_200E_202B_206D_206C_206E_200D_206A_206E_206A_200C_202A_206A_202E_202B_202C_200C_202C_206D_206F_206B_202D_206A_202A_206E_202C_206B_202D_206B_206D_200E_200F_206B_202E(MapTextureService P_0) - { - return P_0.IsSearching; - } - - static float _202C_200B_206A_206E_202D_206C_202C_202E_206C_206F_206E_202B_200E_200F_202B_202D_202B_206C_206E_206E_206E_202D_202E_200D_200E_200B_200D_200F_206C_200C_206E_206B_200B_202C_206D_206F_200D_206C_206F_206C_202E(float P_0, float P_1) - { - return Math.Max(P_0, P_1); - } - - static Vector2 _206A_200E_200B_206A_206A_206B_206C_200D_206C_200F_200B_206A_206A_206D_206B_202C_202E_202E_206F_206C_206A_200B_202C_202B_202B_206C_200D_202E_202A_206E_200B_206D_200C_202C_202B_206A_206A_202E_200D_202D_202E() - { - return ImGui.GetMousePos(); - } - - static bool _200F_206C_206E_202D_206C_206B_206A_206B_200C_202B_200D_200E_200E_202E_206F_202E_202D_200E_206B_206C_206C_206E_206D_206B_200B_206C_202B_202C_202A_202E_202D_200B_202C_206E_202C_200B_202B_206B_202C_206B_202E(ImGuiMouseButton P_0) - { - return ImGui.IsMouseReleased(P_0); - } - - static string _206C_200C_200C_202B_200D_206C_202D_206B_206A_206F_206A_200E_200D_202A_200E_202E_202E_202E_202B_202A_202B_200C_202E_202C_202B_200E_200C_200B_202D_206C_200C_200B_206B_200B_206A_206D_206B_202C_202E_202D_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static ImFontPtr _206E_206D_202A_206E_206B_206B_200B_200F_206D_200E_202D_200F_200E_202A_206A_200C_202D_206A_200D_202C_206D_200E_206D_206F_202D_206E_202D_202A_200D_200C_206E_206E_202A_200E_200D_200D_202E_200F_206F_206E_202E() - { - return UiBuilder.IconFont; - } - - static ImRaii.FontDisposable _200E_200E_202B_206B_202E_206C_200B_202E_202D_202B_200C_202C_206C_200E_200D_202E_202A_200D_200B_206B_202C_206E_200C_202D_202C_200B_206F_202D_200F_200E_202E_202C_200E_200D_206E_200B_200D_200D_206B_200C_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static void _200C_200D_200F_206B_202D_202C_202B_202D_200E_200E_200C_200F_206E_200D_202B_206F_206F_200B_202B_206C_206D_206D_200B_206E_200B_206D_202A_206D_202A_206A_206B_202D_200E_200D_200C_200D_202E_202C_206F_206D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static float _206D_200E_202B_202E_206D_200C_206D_200E_202D_206F_206B_206A_206D_206C_200E_202A_206E_206C_200C_200F_202D_206B_200B_200B_206E_200B_202E_200F_200D_200F_206E_206D_206C_202C_206E_200C_202D_206C_206B_202E() - { - return ImGui.GetFontSize(); - } - - static Vector2 _206D_206A_206B_200F_206D_200F_200B_206A_200D_202E_206D_206C_206D_200C_206B_202A_206D_206C_206E_206A_206D_206E_200E_206E_200D_206E_202C_200D_202A_200F_202B_206A_202B_206A_202A_206C_202D_206C_206B_202D_202E(Vector2 P_0, Map P_1) - { - return MapUtil.WorldToMap(P_0, P_1); - } - - static MapLinkPayload _200C_202E_206E_200E_200D_206B_206A_202D_202D_206C_202C_206F_202E_202A_206D_206D_200D_202B_202C_206F_206E_202C_206B_206E_200E_202D_202E_206D_206C_200D_202C_200F_202A_202B_206C_200B_206C_206A_202E_202E(uint P_0, uint P_1, float P_2, float P_3, float P_4) - { - return new MapLinkPayload(P_0, P_1, P_2, P_3, P_4); - } - - static bool _206E_206D_202B_206D_202E_202E_206B_206F_200B_202B_200F_206B_206C_206B_206B_200C_202B_206A_202A_200C_206A_200F_202A_202B_206A_206F_202A_202D_202C_200E_206E_206A_202D_202C_200F_202D_202B_206C_206D_202E(IGameGui P_0, MapLinkPayload P_1) - { - return P_0.OpenMapWithMapLink(P_1); - } - - static void _206C_206C_206F_200E_206E_202C_206A_202C_206A_202B_202E_202E_202E_200B_200D_200B_202D_206E_202B_202C_200F_206D_200D_200E_202C_200B_200B_200F_200F_206D_206C_202A_202B_206B_206D_200E_200E_200B_202E_202A_202E(ImU8String P_0, ImGuiPopupFlags P_1) - { - ImGui.OpenPopup(P_0, P_1); - } - - static float _200D_206A_202E_206B_202D_206C_206A_206C_202D_206D_200F_200E_202D_200F_202A_200E_206A_200B_200E_200B_202D_200E_206D_202D_206E_206B_202A_202E_206B_206A_200E_200C_206E_206C_200F_206B_206C_202B_202A_206B_202E(float P_0) - { - return MathF.Abs(P_0); - } - - static float _200B_202B_200F_202A_206C_206B_200C_200F_206E_202B_200F_200B_206A_206F_202A_202A_200E_202B_202A_202A_200B_200F_200E_202C_206F_200B_202A_206F_206D_206D_206F_206F_206B_202C_202B_206B_202D_206C_202D_200E_202E(float P_0, float P_1, float P_2) - { - return Math.Clamp(P_0, P_1, P_2); - } - - static bool _206C_206B_200D_202E_206C_206E_206A_200F_206E_206B_206B_202B_200E_202C_206D_200D_206C_206A_202A_206E_206D_206A_200F_206D_202C_202E_200E_200C_202D_202A_202E_206D_200B_206D_202A_202A_206C_206A_206F_200E_202E(ImGuiMouseButton P_0) - { - return ImGui.IsMouseDown(P_0); - } - - static bool _202C_206D_206E_202D_200C_206C_202D_206C_202B_200E_202A_200F_200C_202D_202C_202D_206C_202A_206C_206D_202C_200E_200E_206D_200E_200B_200D_200B_202D_202A_200B_206A_200E_206C_202C_206F_200D_202A_206F_202E_202E(QuestRoot P_0) - { - return P_0.Disabled; - } - - static List<QuestStep> _202B_206F_200E_206F_202E_206F_202E_206D_206D_200C_200C_200D_200F_202A_206A_206A_206C_206F_202B_202E_202E_202B_202A_200D_200D_202B_206A_200D_206A_200B_200F_206C_206D_200B_206A_200B_202E_202C_200B_202C_202E(QuestSequence P_0) - { - return P_0.Steps; - } - - static ushort _202C_200D_202C_202A_206E_200C_200F_200E_206F_206A_200E_206D_202E_200C_202A_202C_206F_200F_206C_202C_200E_206E_206D_206B_202E_200D_202E_200C_200F_200E_202A_200F_202A_206A_206C_202D_200E_202B_202D_202A_202E(QuestStep P_0) - { - return P_0.TerritoryId; - } - - static Vector3? _202E_206F_206D_200B_200C_200D_200F_200F_202D_206F_202A_206A_206D_202A_202B_200D_200B_206D_202D_206C_206C_200E_202D_206B_206E_200D_206D_206C_202B_206A_200E_200F_200D_200B_200F_202E_200F_200D_206E_200F_202E(QuestStep P_0) - { - return P_0.Position; - } - - static bool _202E_202C_202B_206E_202C_206C_202A_200E_200C_200B_202E_200D_206F_206E_202C_200C_200E_206D_200E_200F_200F_202A_206D_200C_206A_200F_200E_200E_200E_200B_206D_200B_206F_206E_202E_200B_206C_206E_202B_206E_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static ushort _202A_200F_206F_206D_206C_206C_206D_202C_202E_206E_202C_206A_200F_200D_202A_200D_202A_200E_200C_206F_200B_202D_200D_200D_206E_200F_206B_200E_206F_202E_206C_200F_206D_206F_206B_206D_202B_206A_206F_202E(ElementId P_0) - { - return P_0.Value; - } - - static int _202C_206F_202A_200C_200C_202A_200D_206A_206E_206E_200C_206A_200E_206C_202A_200E_206A_202B_200C_202A_206C_206F_206E_206C_206F_200C_206F_206A_202E_206F_206B_206A_200F_206A_200F_200C_202B_206C_206E_206C_202E(int P_0, int P_1, int P_2) - { - return Math.Clamp(P_0, P_1, P_2); - } - - static bool _200C_206F_206D_206E_202B_202B_202D_206C_202A_200B_206D_202C_202E_206C_202D_200B_202E_206D_202C_202C_206C_200B_206B_206D_202A_202B_200C_206E_202E_206C_202E_206E_200E_200E_206B_206E_200B_206D_206E_206C_202E(ElementId P_0, ElementId P_1) - { - return P_0 == P_1; - } } diff --git a/Questionable/Questionable.Windows.JournalComponents/QuestRewardComponent.cs b/Questionable/Questionable.Windows.JournalComponents/QuestRewardComponent.cs index eae3d1d..8749e45 100644 --- a/Questionable/Questionable.Windows.JournalComponents/QuestRewardComponent.cs +++ b/Questionable/Questionable.Windows.JournalComponents/QuestRewardComponent.cs @@ -3,12 +3,9 @@ using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Bindings.ImGui; using Dalamud.Game.Text; using Dalamud.Interface; -using Dalamud.Interface.ManagedFontAtlas; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin; using Questionable.Controller; @@ -26,314 +23,9 @@ internal sealed class QuestRewardComponent Item } - private readonly record struct FlatRow(RowType Type, int GroupIndex, ItemReward? Item) - { - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202C_202E_202C_200D_202C_202B_206D_202B_200F_200D_202A_202B_206D_202B_202D_206A_202B_202B_206E_200E_202E_206E_202B_200B_200B_202D_202A_206E_200D_202C_206E_206B_200B_206D_206D_206C_202D_202D_206B_202A_202E(); - _200D_202E_200E_200E_206E_200B_202E_202C_200E_202A_200B_200D_206E_200D_200E_202C_200F_206D_202B_202D_200B_206C_200E_202D_200D_202A_206B_200C_200E_202A_200B_200E_206B_206B_206A_206E_200D_206E_200B_200E_202E(stringBuilder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-478916716)); - _200D_202E_200E_200E_206E_200B_202E_202C_200E_202A_200B_200D_206E_200D_200E_202C_200F_206D_202B_202D_200B_206C_200E_202D_200D_202A_206B_200C_200E_202A_200B_200E_206B_206B_206A_206E_200D_206E_200B_200E_202E(stringBuilder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(556540328)); - int num = ((!PrintMembers(stringBuilder)) ? 641617468 : 641617469); - while (true) - { - int num2 = num; - int num3 = 641617468; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 641617469; - break; - case 0: - _206E_206F_202C_206B_206B_206E_200E_200B_206B_202D_202D_206C_202A_200C_206F_206A_206C_202B_206B_200F_200F_206A_200D_202C_200F_200D_206E_200F_202D_202A_200D_200C_206A_200D_200F_200E_206C_202D_200C_202C_202E(stringBuilder, '}'); - return _202E_202B_202B_200C_206E_200E_202C_202A_202E_202D_202E_206E_200B_200B_202A_202D_202D_202D_200C_206E_202E_200D_206C_200D_202C_202E_202C_206C_202E_206C_202E_200B_202B_206C_202B_200E_206F_200F_206F_200F_202E((object?)stringBuilder); - case 1: - _206E_206F_202C_206B_206B_206E_200E_200B_206B_202D_202D_206C_202A_200C_206F_206A_206C_202B_206B_200F_200F_206A_200D_202C_200F_200D_206E_200F_202D_202A_200D_200C_206A_200D_200F_200E_206C_202D_200C_202C_202E(stringBuilder, ' '); - num = 641617468; - break; - } - } - } + private readonly record struct FlatRow(RowType Type, int GroupIndex, ItemReward? Item); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200D_202E_200E_200E_206E_200B_202E_202C_200E_202A_200B_200D_206E_200D_200E_202C_200F_206D_202B_202D_200B_206C_200E_202D_200D_202A_206B_200C_200E_202A_200B_200E_206B_206B_206A_206E_200D_206E_200B_200E_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1795909122)); - _200D_202E_200E_200E_206E_200B_202E_202C_200E_202A_200B_200D_206E_200D_200E_202C_200F_206D_202B_202D_200B_206C_200E_202D_200D_202A_206B_200C_200E_202A_200B_200E_206B_206B_206A_206E_200D_206E_200B_200E_202E(builder, Type.ToString()); - _200D_202E_200E_200E_206E_200B_202E_202C_200E_202A_200B_200D_206E_200D_200E_202C_200F_206D_202B_202D_200B_206C_200E_202D_200D_202A_206B_200C_200E_202A_200B_200E_206B_206B_206A_206E_200D_206E_200B_200E_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1647495557)); - _200D_202E_200E_200E_206E_200B_202E_202C_200E_202A_200B_200D_206E_200D_200E_202C_200F_206D_202B_202D_200B_206C_200E_202D_200D_202A_206B_200C_200E_202A_200B_200E_206B_206B_206A_206E_200D_206E_200B_200E_202E(builder, GroupIndex.ToString()); - _200D_202E_200E_200E_206E_200B_202E_202C_200E_202A_200B_200D_206E_200D_200E_202C_200F_206D_202B_202D_200B_206C_200E_202D_200D_202A_206B_200C_200E_202A_200B_200E_206B_206B_206A_206E_200D_206E_200B_200E_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-955671083)); - _200B_206F_206B_202E_202D_200D_206D_200E_206C_206E_206A_202B_206C_200E_200F_202A_202B_206E_200B_200F_200C_202C_206F_200C_206B_206D_202B_206A_202B_206A_202A_200B_200B_200C_206F_206F_206C_206C_200E_202E(builder, (object?)Item); - return true; - } - - [CompilerGenerated] - public bool Equals(FlatRow other) - { - int num = ((!EqualityComparer<RowType>.Default.Equals(Type, other.Type)) ? (-1578356657) : (-1578356658)); - while (true) - { - int num2 = num; - int num3 = -1578356660; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return EqualityComparer<ItemReward>.Default.Equals(Item, other.Item); - case 2: - num = ((!EqualityComparer<int>.Default.Equals(GroupIndex, other.GroupIndex)) ? (-1578356657) : (-1578356659)); - break; - case 3: - return false; - case 0: - num = -1578356658; - break; - } - } - } - - bool IEquatable<FlatRow>.Equals(FlatRow other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder? _202C_202E_202C_200D_202C_202B_206D_202B_200F_200D_202A_202B_206D_202B_202D_206A_202B_202B_206E_200E_202E_206E_202B_200B_200B_202D_202A_206E_200D_202C_206E_206B_200B_206D_206D_206C_202D_202D_206B_202A_202E() - { - return new StringBuilder(); - } - - static StringBuilder? _200D_202E_200E_200E_206E_200B_202E_202C_200E_202A_200B_200D_206E_200D_200E_202C_200F_206D_202B_202D_200B_206C_200E_202D_200D_202A_206B_200C_200E_202A_200B_200E_206B_206B_206A_206E_200D_206E_200B_200E_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _206E_206F_202C_206B_206B_206E_200E_200B_206B_202D_202D_206C_202A_200C_206F_206A_206C_202B_206B_200F_200F_206A_200D_202C_200F_200D_206E_200F_202D_202A_200D_200C_206A_200D_200F_200E_206C_202D_200C_202C_202E(StringBuilder? P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string? _202E_202B_202B_200C_206E_200E_202C_202A_202E_202D_202E_206E_200B_200B_202A_202D_202D_202D_200C_206E_202E_200D_206C_200D_202C_202E_202C_206C_202E_206C_202E_200B_202B_206C_202B_200E_206F_200F_206F_200F_202E(object? P_0) - { - return P_0.ToString(); - } - - static StringBuilder? _200B_206F_206B_202E_202D_200D_206D_200E_206C_206E_206A_202B_206C_200E_200F_202A_202B_206E_200B_200F_200C_202C_206F_200C_206B_206D_202B_206A_202B_206A_202A_200B_200B_200C_206F_206F_206C_206C_200E_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } - } - - private sealed record ItemGroup(string Label, EItemRewardType Type, List<ItemReward> Items) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202D_200D_206C_202D_202B_202B_202D_200C_202A_202D_200E_200C_206C_202D_200F_202A_200E_206C_202C_200D_200C_206B_206A_206F_206F_206E_200E_206F_206B_206D_206F_206E_202E_202B_206B_200C_200F_206B_206D_206F_202E(typeof(ItemGroup).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206E_206B_206D_200B_206D_200B_200B_200C_206F_200B_206F_202A_206E_200E_200E_202C_202C_200E_202D_200F_200C_200B_202A_206F_200F_202C_206F_200E_206F_206B_206A_200B_202E_200D_202A_200B_206F_200B_206E_202C_202E(); - _200D_202C_202C_206A_206B_206E_202D_202A_202C_206F_206C_206F_202C_200E_206D_200C_206F_202E_200F_206A_200F_202B_206D_202D_202E_200D_200D_202B_200B_202D_202C_206F_202A_202C_206F_200D_202A_200E_206B_202B_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1409542577)); - _200D_202C_202C_206A_206B_206E_202D_202A_202C_206F_206C_206F_202C_200E_206D_200C_206F_202E_200F_206A_200F_202B_206D_202D_202E_200D_200D_202B_200B_202D_202C_206F_202A_202C_206F_200D_202A_200E_206B_202B_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? (-1981378509) : (-1981378512)); - while (true) - { - int num2 = num; - int num3 = -1981378510; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1981378512; - break; - case 2: - _202E_200B_206A_206F_200C_202A_206F_200D_202D_206D_202C_202E_206C_200D_202E_202A_200B_202E_202B_200F_202E_202D_206E_200C_200B_200F_206E_200F_206D_206A_202A_206D_206B_200D_206A_200B_202B_206F_202E_202E_202E(stringBuilder, ' '); - num = -1981378509; - break; - case 1: - _202E_200B_206A_206F_200C_202A_206F_200D_202D_206D_202C_202E_206C_200D_202E_202A_200B_202E_202B_200F_202E_202D_206E_200C_200B_200F_206E_200F_206D_206A_202A_206D_206B_200D_206A_200B_202B_206F_202E_202E_202E(stringBuilder, '}'); - return _202E_206C_200B_200D_206E_200C_206D_206C_206F_206A_206F_200B_202B_202B_202E_200C_206E_202C_200E_206D_202B_200D_200F_202E_206B_206C_200F_206E_202A_202A_200F_206A_206A_206C_202E_200D_206E_202C_200C_206A_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202B_202C_200D_206F_206D_202C_206E_206D_206C_200B_202E_206A_206F_206B_206F_202C_206D_200B_206F_200E_206A_200F_206A_200B_200E_206D_206D_202C_200C_202D_200E_206B_200B_206C_206E_202B_200D_202A_202C_202B_202E(); - _200D_202C_202C_206A_206B_206E_202D_202A_202C_206F_206C_206F_202C_200E_206D_200C_206F_202E_200F_206A_200F_202B_206D_202D_202E_200D_200D_202B_200B_202D_202C_206F_202A_202C_206F_200D_202A_200E_206B_202B_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(502488726)); - _200C_200F_202B_206D_202D_202A_200F_206E_206B_206F_200D_206F_202D_206C_202B_206D_200C_206D_200E_206B_206F_206D_200F_200F_202A_202A_202D_202E_206E_200E_202D_206B_206A_206E_200C_206D_200E_200C_202E_200D_202E(builder, (object)Label); - _200D_202C_202C_206A_206B_206E_202D_202A_202C_206F_206C_206F_202C_200E_206D_200C_206F_202E_200F_206A_200F_202B_206D_202D_202E_200D_200D_202B_200B_202D_202C_206F_202A_202C_206F_200D_202A_200E_206B_202B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(149690329)); - _200D_202C_202C_206A_206B_206E_202D_202A_202C_206F_206C_206F_202C_200E_206D_200C_206F_202E_200F_206A_200F_202B_206D_202D_202E_200D_200D_202B_200B_202D_202C_206F_202A_202C_206F_200D_202A_200E_206B_202B_202E(builder, Type.ToString()); - _200D_202C_202C_206A_206B_206E_202D_202A_202C_206F_206C_206F_202C_200E_206D_200C_206F_202E_200F_206A_200F_202B_206D_202D_202E_200D_200D_202B_200B_202D_202C_206F_202A_202C_206F_200D_202A_200E_206B_202B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-63277663)); - _200C_200F_202B_206D_202D_202A_200F_206E_206B_206F_200D_206F_202D_206C_202B_206D_200C_206D_200E_206B_206F_206D_200F_200F_202A_202A_202D_202E_206E_200E_202D_206B_206A_206E_200C_206D_200E_200C_202E_200D_202E(builder, (object)Items); - return true; - } - - [CompilerGenerated] - public bool Equals(ItemGroup? other) - { - int num = (((object)this == other) ? 1282595569 : 1282595575); - while (true) - { - int num2 = num; - int num3 = 1282595568; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return true; - case 2: - num = ((!_200F_200F_202A_206B_202A_200D_206A_206C_206B_206A_206C_202C_202C_202A_206D_206B_202A_202A_202C_206E_202A_206B_206D_206F_200C_200B_206F_202E_200F_200C_202C_206A_200E_202C_200F_206A_206B_202A_200F_200E_202E(EqualityContract, other.EqualityContract)) ? 1282595572 : 1282595573); - break; - case 7: - num = (((object)other == null) ? 1282595572 : 1282595570); - break; - case 6: - num = 1282595575; - break; - case 5: - num = ((!EqualityComparer<string>.Default.Equals(Label, other.Label)) ? 1282595572 : 1282595571); - break; - case 4: - return false; - case 0: - return EqualityComparer<List<ItemReward>>.Default.Equals(Items, other.Items); - case 3: - num = ((!EqualityComparer<EItemRewardType>.Default.Equals(Type, other.Type)) ? 1282595572 : 1282595568); - break; - } - } - } - - bool IEquatable<ItemGroup>.Equals(ItemGroup? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202D_200D_206C_202D_202B_202B_202D_200C_202A_202D_200E_200C_206C_202D_200F_202A_200E_206C_202C_200D_200C_206B_206A_206F_206F_206E_200E_206F_206B_206D_206F_206E_202E_202B_206B_200C_200F_206B_206D_206F_202E(RuntimeTypeHandle P_0) - { - return System.Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206E_206B_206D_200B_206D_200B_200B_200C_206F_200B_206F_202A_206E_200E_200E_202C_202C_200E_202D_200F_200C_200B_202A_206F_200F_202C_206F_200E_206F_206B_206A_200B_202E_200D_202A_200B_206F_200B_206E_202C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200D_202C_202C_206A_206B_206E_202D_202A_202C_206F_206C_206F_202C_200E_206D_200C_206F_202E_200F_206A_200F_202B_206D_202D_202E_200D_200D_202B_200B_202D_202C_206F_202A_202C_206F_200D_202A_200E_206B_202B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202E_200B_206A_206F_200C_202A_206F_200D_202D_206D_202C_202E_206C_200D_202E_202A_200B_202E_202B_200F_202E_202D_206E_200C_200B_200F_206E_200F_206D_206A_202A_206D_206B_200D_206A_200B_202B_206F_202E_202E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202E_206C_200B_200D_206E_200C_206D_206C_206F_206A_206F_200B_202B_202B_202E_200C_206E_202C_200E_206D_202B_200D_200F_202E_206B_206C_200F_206E_202A_202A_200F_206A_206A_206C_202E_200D_206E_202C_200C_206A_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202B_202C_200D_206F_206D_202C_206E_206D_206C_200B_202E_206A_206F_206B_206F_202C_206D_200B_206F_200E_206A_200F_206A_200B_200E_206D_206D_202C_200C_202D_200E_206B_200B_206C_206E_202B_200D_202A_202C_202B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200C_200F_202B_206D_202D_202A_200F_206E_206B_206F_200D_206F_202D_206C_202B_206D_200C_206D_200E_206B_206F_206D_200F_200F_202A_202A_202D_202E_206E_200E_202D_206B_206A_206E_200C_206D_200E_200C_202E_200D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200F_200F_202A_206B_202A_200D_206A_206C_206B_206A_206C_202C_202C_202A_206D_206B_202A_202A_202C_206E_202A_206B_206D_206F_200C_200B_206F_202E_200F_200C_202C_206A_200E_202C_200F_206A_206B_202A_200F_200E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass22_0 - { - public EItemRewardType type; - - public QuestRewardComponent _003C_003E4__this; - - internal bool _003CGetFilteredItems_003Eb__0(ItemReward x) - { - return x.Type == type; - } - - internal bool _003CGetFilteredItems_003Eb__2(ItemReward x) - { - int num = (_003C_003E4__this._showEventRewards ? (-346188384) : (-346188382)); - IQuestInfo questInfo2 = default(IQuestInfo); - QuestInfo questInfo = default(QuestInfo); - while (true) - { - int num2 = num; - int num3 = -346188380; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - return true; - case 6: - num = ((!_003C_003E4__this._questData.TryGetQuestInfo(x.ElementId, out questInfo2)) ? (-346188384) : (-346188380)); - break; - case 8: - num = -346188382; - break; - case 3: - num = (_200F_206E_200F_202D_206D_202D_200B_206B_202B_200E_206A_202A_200C_202E_200B_206B_202E_200C_206F_202B_200C_200E_206E_202E_200D_200E_200C_200E_200F_200C_202A_206A_206E_202E_202E_206F_206A_206D_202B_202C_202E(x.Name, _003C_003E4__this._searchText, StringComparison.OrdinalIgnoreCase) ? (-346188383) : (-346188379)); - break; - case 7: - num = ((!questInfo.IsSeasonalEvent) ? (-346188384) : (-346188378)); - break; - case 2: - return false; - case 0: - questInfo = questInfo2 as QuestInfo; - num = ((questInfo == null) ? (-346188384) : (-346188381)); - break; - case 1: - return false; - case 4: - num = (_202C_206C_206E_200D_202B_202C_200D_200B_206B_202A_206A_202E_206A_206E_206C_206B_200D_200D_200E_200E_200F_200F_200F_202D_202E_206C_206E_200C_200C_200F_202E_200F_206D_200E_206B_202A_206D_206F_202D_206A_202E(_003C_003E4__this._searchText) ? (-346188383) : (-346188377)); - break; - } - } - } - - static bool _202C_206C_206E_200D_202B_202C_200D_200B_206B_202A_206A_202E_206A_206E_206C_206B_200D_200D_200E_200E_200F_200F_200F_202D_202E_206C_206E_200C_200C_200F_202E_200F_206D_200E_206B_202A_206D_206F_202D_206A_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static bool _200F_206E_200F_202D_206D_202D_200B_206B_202B_200E_206A_202A_200C_202E_200B_206B_202E_200C_206F_202B_200C_200E_206E_202E_200D_200E_200C_200E_200F_200C_202A_206A_206E_202E_202E_206F_206A_206D_202B_202C_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); - } - } + private sealed record ItemGroup(string Label, EItemRewardType Type, List<ItemReward> Items); private readonly QuestRegistry _questRegistry; @@ -357,7 +49,7 @@ internal sealed class QuestRewardComponent private bool _initialized; - private static readonly int CountPadWidth = _202A_200B_202B_202E_206E_200C_200F_206A_202B_206C_206B_206F_202C_202B_206C_206D_202A_206A_200C_200C_206B_206B_206B_202E_202C_206B_202C_202B_206F_200D_200E_202D_206E_206A_200E_200D_202A_202A_202E_206A_202E(9999.ToString(_206B_206C_202D_202C_202A_202A_206E_206C_200B_206B_206E_202A_200F_202A_200F_206B_206B_202C_206A_206D_200D_202C_206A_202D_202E_206F_202B_202E_206F_206A_200C_206A_206D_200F_200C_200F_200C_206E_206C_206A_202E())); + private static readonly int CountPadWidth = 9999.ToString(CultureInfo.CurrentCulture).Length; public QuestRewardComponent(QuestRegistry questRegistry, QuestData questData, QuestTooltipComponent questTooltipComponent, UiUtils uiUtils, IDalamudPluginInterface pluginInterface) { @@ -368,455 +60,183 @@ internal sealed class QuestRewardComponent _pluginInterface = pluginInterface; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe void DrawItemRewards() { - int num = (_initialized ? (-1982138496) : (-1982138492)); - int num11 = default(int); - while (true) + if (!_initialized) { - int num2 = num; - int num3 = -1982138489; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + UpdateFilter(); + _initialized = true; + } + float x = ImGui.GetStyle().ItemSpacing.X; + float num = ImGui.GetFrameHeight() + ImGui.CalcTextSize("Show seasonal event rewards").X + 3f * x; + if (UiThemeUtils.SearchInput("##RewardSearch", ref _searchText, 0f - num, "Search items...")) + { + UpdateFilter(); + } + ImGui.SameLine(); + if (UiThemeUtils.WrappedCheckbox("Show seasonal event rewards", ref _showEventRewards)) + { + UpdateFilter(); + } + ImGui.Spacing(); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, "Only untradeable items are listed (e.g. the Wind-up Airship can be sold on the market board)."); + ImGui.Separator(); + if (_flatRows.Count == 0) + { + UiThemeUtils.EmptyState(FontAwesomeIcon.Gift, "No items match your search."); + return; + } + float x2; + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) + { + x2 = ImGui.CalcTextSize(FontAwesomeIcon.Check.ToIconString()).X; + } + float fontGlobalScale = ImGui.GetIO().FontGlobalScale; + using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable("ItemRewards", 2, ImGuiTableFlags.NoSavedSettings | ImGuiTableFlags.ScrollY); + if (!tableDisposable) + { + return; + } + ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.WidthStretch); + ImGui.TableSetupColumn("Obtained", ImGuiTableColumnFlags.WidthFixed, 120f * fontGlobalScale); + ImGui.TableHeadersRow(); + float textLineHeightWithSpacing = ImGui.GetTextLineHeightWithSpacing(); + bool flag = false; + ImGuiListClipper* intPtr = ImGuiNative.ImGuiListClipper(); + ImGuiNative.Begin(intPtr, _flatRows.Count, textLineHeightWithSpacing); + ImGuiListClipperPtr imGuiListClipperPtr = intPtr; + try + { + while (imGuiListClipperPtr.Step()) { - case 2: - _202E_200B_200B_202B_206A_200E_206E_202D_206A_200D_202E_200C_206F_202A_206E_206F_202B_200B_200D_206F_206E_202B_202A_206D_202C_202E_206E_206D_202D_200F_200D_202A_202C_202A_202A_206C_200B_200B_202E_200F_202E(); - _202C_206D_206A_200D_200D_206D_200C_200F_202E_202E_202A_200F_206A_202D_200B_202D_200E_202B_202B_200C_206C_202C_200D_202B_200C_202A_202A_206A_206A_202D_200E_200D_206F_202A_202B_206A_200B_206B_202C_206B_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-315135606)); - _200C_200E_200D_200B_202C_206E_200C_202B_200F_200F_206F_202B_206A_202C_206A_206C_202D_206B_200C_206F_200F_206B_200D_206F_206D_200C_200E_200C_206C_206E_206C_202B_202C_202A_206F_200B_200F_206D_206B_202D_202E(); - num = ((_flatRows.Count != 0) ? (-1982138495) : (-1982138494)); - break; - case 0: - UpdateFilter(); - num = -1982138491; - break; - case 1: - UpdateFilter(); - num = -1982138481; - break; - case 5: - UiThemeUtils.EmptyState(FontAwesomeIcon.Gift, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-234196815)); - return; - case 3: - UpdateFilter(); - _initialized = true; - num = -1982138496; - break; - case 8: - _206A_200B_202E_206A_202E_200B_200C_200F_200C_202B_206A_202C_200F_200E_206A_202C_200D_200B_202E_202B_206F_206B_206B_202D_202B_206F_200C_200E_206B_206F_206C_200D_206F_200B_200D_206F_202B_200D_200B_200C_202E(); - num = ((!UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-171889759), ref _showEventRewards)) ? (-1982138491) : (-1982138489)); - break; - case 4: - num = -1982138492; - break; - case 7: - { - float x2 = _202A_200D_200C_202C_200F_202E_206A_206E_200D_202E_202E_206A_200E_206B_206B_206E_200C_206D_200D_202D_200C_202C_206D_206A_200D_200C_206A_202B_202B_206A_206E_206B_206D_200B_200B_206D_206B_206E_202E().ItemSpacing.X; - float num16 = _202C_200B_206E_200D_206F_202E_202C_202E_200E_206A_200B_200F_200D_206E_206D_202A_200C_202A_206F_200F_206F_206A_200B_202C_200B_202B_202A_206B_200C_202C_202A_206A_200E_206A_202E_206C_202E_206A_200D_206F_202E() + _206B_200E_206D_202C_202B_206A_206B_200D_206D_200E_202B_206E_200C_200F_202A_200F_200D_206B_200D_202B_202D_206B_200F_202A_206E_200B_206D_200B_206B_206D_206A_202E_202B_202A_202E_206F_206F_200C_206A_206B_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2144034824), false, -1f).X + 3f * x2; - num = ((!UiThemeUtils.SearchInput(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1497394490), ref _searchText, 0f - num16, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1473832797))) ? (-1982138481) : (-1982138490)); - break; - } - case 6: - { - IDisposable disposable = _200E_200D_202A_202A_206E_200C_206C_206C_206B_200D_202C_202A_206B_206D_206E_200C_206B_206B_202E_206F_200E_200B_200B_206F_206C_202E_202E_200C_202E_200E_206F_202C_206E_200B_202C_202B_200C_202E_206C_202A_202E(_200B_206D_206B_200F_200D_206C_200D_206A_200F_202A_200F_200F_200E_202A_200F_200F_206B_202B_200C_200F_202E_200B_202A_206B_202B_200B_200F_206E_206F_202A_206A_202B_202B_200C_206E_206B_200F_202C_206B_202E(_200B_200B_206C_206A_202A_206E_200F_206B_206D_206B_200B_200C_206E_200D_200E_202A_200B_200C_206E_202C_206A_200D_206E_206A_206C_206D_206D_202C_206E_200B_202B_202E_206E_206E_200B_200C_200F_206C_202B_200C_202E(_pluginInterface))); - float x; - try + for (int i = imGuiListClipperPtr.DisplayStart; i < imGuiListClipperPtr.DisplayEnd; i++) { - x = _206B_200E_206D_202C_202B_206A_206B_200D_206D_200E_202B_206E_200C_200F_202A_200F_200D_206B_200D_202B_202D_206B_200F_202A_206E_200B_206D_200B_206B_206D_206A_202E_202B_202A_202E_206F_206F_200C_206A_206B_202E((ImU8String)_200F_206E_206C_206B_200B_200D_200E_206C_206F_200C_200B_202A_206E_206C_200D_200C_206A_206C_206E_200E_206F_202B_202B_202C_202E_202D_200F_206C_200C_206B_206B_200B_202A_202D_202B_202D_206F_200B_206A_202A_202E(FontAwesomeIcon.Check), false, -1f).X; - } - finally - { - num = ((disposable == null) ? 152155330 : 152155331); - while (true) + if (DrawFlatRow(_flatRows[i], x2)) { - int num5 = num; - num3 = 152155330; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_0224; - case 1: - _200C_202C_202A_206B_202D_200E_206B_206E_202C_202E_206D_206C_202E_200D_206F_202D_206F_206C_206D_200F_200F_202D_200E_200F_206F_200B_206B_200E_202B_206D_206E_206E_202D_202E_206D_202E_202E_202D_202E_202D_202E(disposable); - num = 152155330; - break; - case 2: - num = 152155331; - break; - } - continue; - end_IL_0224: - break; + flag = true; } } - float fontGlobalScale = _202E_202E_206C_206B_202C_202E_202B_206C_206F_202A_206B_206B_206B_206F_202D_200B_206D_206E_200B_200F_200E_206D_200C_202A_206B_200C_202A_202D_202E_206F_202B_200D_202A_202E_206F_202A_206E_202D_202B_202C_202E().FontGlobalScale; - using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1103037648), 2, ImGuiTableFlags.NoSavedSettings | ImGuiTableFlags.ScrollY); - num = ((!(!tableDisposable)) ? (-1408349333) : (-1408349336)); - while (true) - { - int num6 = num; - num3 = -1408349334; - num4 = num6; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_02e7; - case 2: - return; - case 1: - { - _206A_206D_202E_206D_202E_206C_200B_206A_200F_206C_206B_206E_200F_200B_206C_202C_202A_206E_202E_206C_202E_200F_200F_202D_206C_200C_206F_206E_206D_202E_202E_202B_206C_206C_200E_202C_202E_206F_202B_206B_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(261089734), ImGuiTableColumnFlags.WidthStretch, 0f, 0u); - _206A_206D_202E_206D_202E_206C_200B_206A_200F_206C_206B_206E_200F_200B_206C_202C_202A_206E_202E_206C_202E_200F_200F_202D_206C_200C_206F_206E_206D_202E_202E_202B_206C_206C_200E_202C_202E_206F_202B_206B_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-906326596), ImGuiTableColumnFlags.WidthFixed, 120f * fontGlobalScale, 0u); - _200B_202A_206A_202B_206B_200B_206B_200F_206D_202A_202A_206B_200F_200B_206B_200F_202B_200C_206D_206E_200E_202B_206F_206B_200E_202B_202A_200C_200D_206E_206B_206A_200B_202B_200E_200E_202D_200C_206B_202E_202E(); - float num7 = _200F_206F_202D_200D_200E_202E_206D_206E_200D_200E_202D_202B_200D_202B_206D_206C_202A_200D_206F_200E_200F_206D_206F_200B_200C_200F_206F_206A_206B_200D_206D_200E_202A_200B_200D_206C_200E_200E_200E_200E_202E(); - bool flag = false; - ImGuiListClipper* intPtr = _206D_200C_200B_206E_206C_206B_206D_200F_202A_206A_202C_202C_206E_202E_200E_206F_200E_200F_202E_206B_200C_206E_206C_200F_202C_206F_202C_200F_202B_206E_206A_202C_202A_206F_206C_206B_200C_200F_206E_200F_202E(); - _200F_202D_200D_206E_200D_202D_202E_206E_202A_202E_200E_200C_206F_206A_206B_200F_206E_202E_206A_200D_202B_206D_206C_200B_206B_206A_206B_200C_200E_200D_200B_200E_206B_206B_200D_200E_200C_200B_200E_202A_202E(intPtr, _flatRows.Count, num7); - ImGuiListClipperPtr imGuiListClipperPtr = intPtr; - try - { - num = 1069013826; - while (true) - { - int num8 = num; - num3 = 1069013829; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 4: - { - int num12 = num11; - num3 = 1; - num4 = num12; - num11 = (num4 | num3) + (num4 & num3); - num = 1069013831; - break; - } - case 0: - num = ((!DrawFlatRow(_flatRows[num11], x)) ? 1069013825 : 1069013824); - break; - case 6: - num11 = imGuiListClipperPtr.DisplayStart; - num = 1069013831; - break; - case 7: - num = (imGuiListClipperPtr.Step() ? 1069013827 : 1069013828); - break; - case 3: - num = 1069013826; - break; - case 5: - flag = true; - num = 1069013825; - break; - case 2: - num = ((num11 < imGuiListClipperPtr.DisplayEnd) ? 1069013829 : 1069013826); - break; - case 1: - goto end_IL_0376; - } - continue; - end_IL_0376: - break; - } - } - finally - { - imGuiListClipperPtr.Destroy(); - } - num = ((!flag) ? (-1647057897) : (-1647057898)); - while (true) - { - int num13 = num; - num3 = -1647057897; - num4 = num13; - int num14 = num4 + num3; - int num15 = num4 & num3; - switch (num14 - (num15 + num15)) - { - case 2: - num = -1647057898; - break; - case 1: - RebuildFlatRows(); - num = -1647057897; - break; - case 0: - return; - } - } - } - } - continue; - IL_02e7: - num = -1408349336; - } - } } } + finally + { + imGuiListClipperPtr.Destroy(); + } + if (flag) + { + RebuildFlatRows(); + } } - [MethodImpl(MethodImplOptions.NoInlining)] private bool DrawFlatRow(FlatRow row, float statusIconSpacing) { - _206F_206F_200B_200E_200B_200C_200E_206A_202A_206F_202E_202A_200C_200C_200C_202C_202D_202B_200B_200C_202D_202E_200C_200B_206E_200C_202A_206D_200D_206B_206A_206B_202D_206D_200C_202A_206A_206E_202D_206C_202E(); - _202C_202C_202A_200E_206E_202E_206E_206D_200F_206A_202E_206B_200D_200F_206C_206A_202D_206A_200E_206B_206B_206D_206B_206D_206F_200F_202E_200F_200B_202B_202E_202D_200C_202C_200D_200D_206D_206B_206F_202A_202E(); - int num = ((row.Type != RowType.Group) ? 484356028 : 484356023); - ItemGroup itemGroup = default(ItemGroup); - bool flag2 = default(bool); - bool result = default(bool); - QuestInfo questInfo2 = default(QuestInfo); - ItemReward item = default(ItemReward); - bool flag = default(bool); - string text = default(string); - Vector4 color = default(Vector4); - bool flag3 = default(bool); - IQuestInfo questInfo = default(IQuestInfo); - while (true) + ImGui.TableNextRow(); + ImGui.TableNextColumn(); + if (row.Type == RowType.Group) { - int num2 = num; - int num3 = 484356024; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - Vector4 vector; - switch (num5 - (num6 + num6)) + ItemGroup itemGroup = _filteredGroups[row.GroupIndex]; + bool flag = _expandedGroups.Contains(itemGroup.Label); + UiThemeUtils.DrawTrackerGroupCaret(_pluginInterface.UiBuilder.IconFontFixedWidthHandle, flag); + ImGui.SameLine(); + bool result = false; + ImU8String label = new ImU8String(5, 2); + label.AppendFormatted(itemGroup.Label); + label.AppendLiteral("##grp"); + label.AppendFormatted(row.GroupIndex); + if (ImGui.Selectable(label)) { - default: - continue; - case 13: - vector = UiThemeUtils.StatusUnobtainable; - goto IL_0096; - case 8: - _expandedGroups.Add(itemGroup.Label); - num = 484356024; - continue; - case 15: - { - itemGroup = _filteredGroups[row.GroupIndex]; - flag2 = _expandedGroups.Contains(itemGroup.Label); - UiThemeUtils.DrawTrackerGroupCaret(_200B_206D_206B_200F_200D_206C_200D_206A_200F_202A_200F_200F_200E_202A_200F_200F_206B_202B_200C_200F_202E_200B_202A_206B_202B_200B_200F_206E_206F_202A_206A_202B_202B_200C_206E_206B_200F_202C_206B_202E(_200B_200B_206C_206A_202A_206E_200F_206B_206D_206B_200B_200C_206E_200D_200E_202A_200B_200C_206E_202C_206A_200D_206E_206A_206C_206D_206D_202C_206E_200B_202B_202E_206E_206E_200B_200C_200F_206C_202B_200C_202E(_pluginInterface)), flag2); - _206A_200B_202E_206A_202E_200B_200C_200F_200C_202B_206A_202C_200F_200E_206A_202C_200D_200B_202E_202B_206F_206B_206B_202D_202B_206F_200C_200E_206B_206F_206C_200D_206F_200B_200D_206F_202B_200D_200B_200C_202E(); - result = false; - ImU8String imU8String2 = new ImU8String(5, 2); - imU8String2.AppendFormatted(itemGroup.Label); - imU8String2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(169207648)); - imU8String2.AppendFormatted(row.GroupIndex); - num = ((!_206F_202D_200B_206E_206D_202D_206C_206B_206F_206E_200E_202A_206E_206A_202D_202A_206D_206C_200E_206F_200C_200B_202E_206B_200C_206F_200D_200D_202E_206C_206A_206B_200C_202C_200E_200F_206D_200D_206F_202C_202E(imU8String2, false, ImGuiSelectableFlags.None, default(Vector2))) ? 484356025 : 484356020); - continue; - } - case 12: - num = ((!flag2) ? 484356016 : 484356019); - continue; - case 2: - num = ((!questInfo2.IsSeasonalEvent) ? 484356029 : 484356018); - continue; - case 4: - { - item = row.Item; - float indentSpacing = _202A_200D_200C_202C_200F_202E_206A_206E_200D_202E_202E_206A_200E_206B_206B_206E_200C_206D_200D_202D_200C_202C_206D_206A_200D_200C_206A_202B_202B_206A_206E_206B_206D_200B_200B_206D_206B_206E_202E().IndentSpacing; - _202C_200C_206A_200E_206B_206C_202B_200B_202B_202B_202B_202E_202D_200F_200F_206B_202B_206D_200F_206D_200B_200C_206C_206A_200C_206D_200E_202C_202D_202A_200E_202D_206A_200B_206B_206E_202C_206A_202E_206B_202E(_202B_202B_202D_202E_202D_202E_206C_206C_206C_200C_206A_202A_202C_200E_202B_202A_202D_200D_200D_202A_200E_200C_202A_202E_200B_200E_202B_202A_200F_206E_200F_206F_200D_200C_202A_206C_202E_206B_206A_206E_202E() + indentSpacing); - flag = item.IsUnlocked(); - num = ((!_questRegistry.IsKnownQuest(item.ElementId)) ? 484356021 : 484356022); - continue; - } - case 14: - num = (flag ? 484356031 : 484356027); - continue; - case 7: - vector = UiThemeUtils.StatusComplete; - goto IL_0096; - case 5: - { - _202D_206F_206F_200D_206E_206C_200D_202B_202C_200C_202C_206E_202A_202D_202C_200B_206A_200E_202B_206B_202C_206E_206E_206E_202E_206E_200E_206F_200F_202A_206A_200F_206B_206D_206E_202A_206C_200C_206A_206D_202E((ImU8String)text, ImGuiTreeNodeFlags.NoTreePushOnOpen | ImGuiTreeNodeFlags.Leaf | ImGuiTreeNodeFlags.SpanFullWidth, default(ImU8String)); - bool num11 = _206B_202C_202C_200D_202D_200D_200F_206B_206E_202B_200C_206E_206F_202E_206E_202B_200B_200B_200F_200C_200E_202C_206C_200B_200F_202D_200B_200E_202C_202D_202C_202B_206B_202B_200B_202C_206C_200F_206B_206F_202E(); - _202C_202C_202A_200E_206E_202E_206E_206D_200F_206A_202E_206B_200D_200F_206C_206A_202D_206A_200E_206B_206B_206D_206B_206D_206F_200F_202E_200F_200B_202B_202E_202D_200C_202C_200D_200D_206D_206B_206F_202A_202E(); - float num12 = _202C_206A_202C_206A_206F_206B_202D_206B_200E_200C_206A_200F_200C_206C_206F_202D_206C_202A_202C_202A_200D_202A_200F_206F_206D_200E_200F_202E_206A_202E_202E_200F_202A_206E_200E_206B_200F_206B_200F_200D_202E() / 2f - statusIconSpacing; - _202C_200C_206A_200E_206B_206C_202B_200B_202B_202B_202B_202E_202D_200F_200F_206B_202B_206D_200F_206D_200B_200C_206C_206A_200C_206D_200E_202C_202D_202A_200E_202D_206A_200B_206B_206E_202C_206A_202E_206B_202E(_202B_202B_202D_202E_202D_202E_206C_206C_206C_200C_206A_202A_202C_200E_202B_202A_202D_200D_200D_202A_200E_200C_202A_202E_200B_200E_202B_202A_200F_206E_200F_206F_200D_200C_202A_206C_202E_206B_206A_206E_202E() + num12); - FontAwesomeIcon icon = (flag ? FontAwesomeIcon.Check : FontAwesomeIcon.Times); - if ((num11 | _uiUtils.ChecklistItem(string.Empty, color, icon)) && flag3) + if (flag) { - num = 484356030; - continue; + _expandedGroups.Remove(itemGroup.Label); + } + else + { + _expandedGroups.Add(itemGroup.Label); } - break; - } - case 0: result = true; - num = 484356025; - continue; - case 3: - vector = UiThemeUtils.StatusLocked; - goto IL_0096; - case 9: - num = 484356023; - continue; - case 10: - text = _200E_206B_202E_202D_206A_202A_206F_200E_202D_202C_200F_206F_206E_202D_206B_200B_206E_202C_206E_200F_206F_206A_200B_206D_202E_200D_200F_202D_200F_206F_202E_200D_202A_206F_200E_202C_206D_206F_206D_202D_202E(text, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-324914973), _200B_206D_200D_202C_200B_206A_206F_200B_200C_202E_206E_202B_200B_206D_206F_202C_206C_200B_206F_202D_202A_200F_206B_202B_206D_206F_206E_200C_200B_202A_206C_206F_200E_206A_200E_202B_202A_200F_206E_200C_202E(SeIconChar.Clock)); - num = 484356029; - continue; - case 11: - _expandedGroups.Remove(itemGroup.Label); - num = 484356024; - continue; - case 1: + } + int num = itemGroup.Items.Count((ItemReward x) => x.IsUnlocked()); + int count = itemGroup.Items.Count; + ImGui.TableNextColumn(); + UiThemeUtils.DrawTrackerCount(FormatCount(num, count), num == count && count > 0, count == 0); + return result; + } + ItemReward item = row.Item; + float indentSpacing = ImGui.GetStyle().IndentSpacing; + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + indentSpacing); + bool flag2 = item.IsUnlocked(); + Vector4 color = ((!_questRegistry.IsKnownQuest(item.ElementId)) ? UiThemeUtils.StatusUnobtainable : (flag2 ? UiThemeUtils.StatusComplete : UiThemeUtils.StatusLocked)); + IQuestInfo questInfo; + bool flag3 = _questData.TryGetQuestInfo(item.ElementId, out questInfo); + string text = item.Name; + if (questInfo is QuestInfo { IsSeasonalEvent: not false }) + { + text = text + " " + SeIconChar.Clock.ToIconString(); + } + ImGui.TreeNodeEx(text, ImGuiTreeNodeFlags.NoTreePushOnOpen | ImGuiTreeNodeFlags.Leaf | ImGuiTreeNodeFlags.SpanFullWidth); + bool num2 = ImGui.IsItemHovered(); + ImGui.TableNextColumn(); + float num3 = ImGui.GetColumnWidth() / 2f - statusIconSpacing; + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + num3); + FontAwesomeIcon icon = (flag2 ? FontAwesomeIcon.Check : FontAwesomeIcon.Times); + if ((num2 | _uiUtils.ChecklistItem(string.Empty, color, icon)) && flag3) + { + using ImRaii.TooltipDisposable tooltipDisposable = ImRaii.Tooltip(); + if (tooltipDisposable.Alive) { - int num10 = itemGroup.Items.Count((ItemReward x) => x.IsUnlocked()); - int count = itemGroup.Items.Count; - _202C_202C_202A_200E_206E_202E_206E_206D_200F_206A_202E_206B_200D_200F_206C_206A_202D_206A_200E_206B_206B_206D_206B_206D_206F_200F_202E_200F_200B_202B_202E_202D_200C_202C_200D_200D_206D_206B_206F_202A_202E(); - UiThemeUtils.DrawTrackerCount(FormatCount(num10, count), num10 == count && count > 0, count == 0); - return result; - } - case 6: + ImU8String text2 = new ImU8String(15, 1); + text2.AppendLiteral("Obtained from: "); + text2.AppendFormatted(questInfo.Name); + ImGui.Text(text2); + using (ImRaii.PushIndent()) { - using (ImRaii.TooltipDisposable tooltipDisposable = _200D_202E_202E_206B_206B_206C_200E_200E_202C_202D_202D_202C_206D_202B_200D_200C_200E_200C_206C_202C_200D_202D_206E_200D_200D_206F_202C_200E_202E_200C_202C_200D_206B_206C_200B_206F_206D_206A_202A_200C_202E()) - { - if (!tooltipDisposable.Alive) - { - break; - } - ImU8String imU8String = new ImU8String(15, 1); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1862164514)); - imU8String.AppendFormatted(questInfo.Name); - _202A_206F_206F_200F_200F_202D_200C_200E_206C_200F_206D_206D_206E_202A_206E_200F_206F_200E_206F_202E_202D_202D_202A_206F_200E_202A_200F_202D_206C_200F_206C_202D_206F_202D_200F_206C_200E_202A_200C_206C_202E(imU8String); - ImRaii.IndentDisposable indentDisposable = _206E_206F_206F_202D_206F_200B_206B_206A_206C_202D_200D_206C_202B_206C_200B_206B_200F_206D_200B_202C_202B_200B_206C_202D_202D_200D_202A_202E_202D_200B_202D_200F_206E_202D_206A_206D_206B_206D_200C_206C_202E(1, true); - try - { - _questTooltipComponent.DrawInner(questInfo, showItemRewards: false); - } - finally - { - num = ((indentDisposable == null) ? (-2000233485) : (-2000233488)); - while (true) - { - int num7 = num; - num3 = -2000233487; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - num = -2000233488; - break; - case 2: - goto end_IL_0461; - case 1: - _200C_202C_202A_206B_202D_200E_206B_206E_202C_202E_206D_206C_202E_200D_206F_202D_206F_206C_206D_200F_200F_202D_200E_200F_206F_200B_206B_200E_202B_206D_206E_206E_202D_202E_206D_202E_202E_202D_202E_202D_202E((IDisposable)indentDisposable); - num = -2000233485; - break; - } - continue; - end_IL_0461: - break; - } - } - } - break; + _questTooltipComponent.DrawInner(questInfo, showItemRewards: false); } - IL_0096: - color = vector; - flag3 = _questData.TryGetQuestInfo(item.ElementId, out questInfo); - text = item.Name; - questInfo2 = questInfo as QuestInfo; - num = ((questInfo2 == null) ? 484356029 : 484356026); - continue; } - break; } return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private static string FormatCount(int n, int d) { - int num = ((d == 0) ? 491542123 : 491542122); - while (true) + if (d != 0) { - int num2 = num; - int num3 = 491542123; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0041; - case 0: - return _200E_206B_202E_202D_206A_202A_206F_200E_202D_202C_200F_206F_206E_202D_206B_200B_206E_202C_206E_200F_206F_206A_200B_206D_202E_200D_200F_202D_200F_206F_202E_200D_202A_206F_200E_202C_206D_206F_206D_202D_202E(_200C_200E_206F_200C_200F_202C_206A_200F_202E_206A_202B_206D_202D_202E_200E_202A_202D_206F_200E_206C_202B_206F_200B_202D_206E_206C_200B_202D_206B_206C_206D_202D_206B_206C_202D_202E_200F_202C_202A_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2079705286), CountPadWidth), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1762358294), _200C_200E_206F_200C_200F_202C_206A_200F_202E_206A_202B_206D_202D_202E_200E_202A_202D_206F_200E_206C_202B_206F_200B_202D_206E_206C_200B_202D_206B_206C_206D_202D_206B_206C_202D_202E_200F_202C_202A_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2079705286), CountPadWidth)); - case 1: - return _200E_206B_202E_202D_206A_202A_206F_200E_202D_202C_200F_206F_206E_202D_206B_200B_206E_202C_206E_200F_206F_206A_200B_206D_202E_200D_200F_202D_200F_206F_202E_200D_202A_206F_200E_202C_206D_206F_206D_202D_202E(_200F_202E_206C_200E_202E_202B_206C_202B_202C_200E_206B_202A_206C_206F_206C_202E_202E_202D_202D_200B_202A_200F_202B_202B_202E_200E_200C_200D_200C_206F_206B_200D_202B_200D_200B_202B_202A_202A_206C_200D_202E(n.ToString(_206B_206C_202D_202C_202A_202A_206E_206C_200B_206B_206E_202A_200F_202A_200F_206B_206B_202C_206A_206D_200D_202C_206A_202D_202E_206F_202B_202E_206F_206A_200C_206A_206D_200F_200C_200F_200C_206E_206C_206A_202E()), CountPadWidth), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1762358294), _200F_202E_206C_200E_202E_202B_206C_202B_202C_200E_206B_202A_206C_206F_206C_202E_202E_202D_202D_200B_202A_200F_202B_202B_202E_200E_200C_200D_200C_206F_206B_200D_202B_200D_200B_202B_202A_202A_206C_200D_202E(d.ToString(_206B_206C_202D_202C_202A_202A_206E_206C_200B_206B_206E_202A_200F_202A_200F_206B_206B_202C_206A_206D_200D_202C_206A_202D_202E_206F_202B_202E_206F_206A_200C_206A_206D_200F_200C_200F_200C_206E_206C_206A_202E()), CountPadWidth)); - } - continue; - IL_0041: - num = 491542122; + return n.ToString(CultureInfo.CurrentCulture).PadLeft(CountPadWidth) + " / " + d.ToString(CultureInfo.CurrentCulture).PadLeft(CountPadWidth); } + return "-".PadLeft(CountPadWidth) + " / " + "-".PadLeft(CountPadWidth); } private void RebuildFlatRows() { List<FlatRow> list = new List<FlatRow>(); - int num = 0; - ItemReward current = default(ItemReward); - while (num < _filteredGroups.Count) + for (int i = 0; i < _filteredGroups.Count; i++) { - ItemGroup itemGroup = _filteredGroups[num]; - list.Add(new FlatRow(RowType.Group, num, null)); - int num4; - int num5; - if (_expandedGroups.Contains(itemGroup.Label)) + ItemGroup itemGroup = _filteredGroups[i]; + list.Add(new FlatRow(RowType.Group, i, null)); + if (!_expandedGroups.Contains(itemGroup.Label)) { - using List<ItemReward>.Enumerator enumerator = itemGroup.Items.GetEnumerator(); - int num2 = 1766502721; - while (true) + continue; + } + foreach (ItemReward item in itemGroup.Items) + { + if (_questData.TryGetQuestInfo(item.ElementId, out IQuestInfo _)) { - int num3 = num2; - num4 = 1766502721; - num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 3: - num2 = 1766502721; - break; - case 2: - list.Add(new FlatRow(RowType.Item, num, current)); - num2 = 1766502721; - break; - case 4: - { - current = enumerator.Current; - num2 = ((!_questData.TryGetQuestInfo(current.ElementId, out IQuestInfo _)) ? 1766502721 : 1766502723); - break; - } - case 0: - num2 = (enumerator.MoveNext() ? 1766502725 : 1766502720); - break; - case 1: - goto end_IL_0056; - } - continue; - end_IL_0056: - break; + list.Add(new FlatRow(RowType.Item, i, item)); } } - int num6 = num; - num4 = 1; - num5 = num6; - num = (num5 | num4) + (num5 & num4); } _flatRows = list; } - [MethodImpl(MethodImplOptions.NoInlining)] private void UpdateFilter() { List<ItemGroup> list = new List<ItemGroup>(); - AddGroup(list, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1299748700), EItemRewardType.Mount); - AddGroup(list, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(263371342), EItemRewardType.Minion); - AddGroup(list, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1791526330), EItemRewardType.OrchestrionRoll); - AddGroup(list, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1826591131), EItemRewardType.TripleTriadCard); - AddGroup(list, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1738480903), EItemRewardType.FashionAccessory); - AddGroup(list, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(974082553), EItemRewardType.UnlockLink); + AddGroup(list, "Mounts", EItemRewardType.Mount); + AddGroup(list, "Minions", EItemRewardType.Minion); + AddGroup(list, "Orchestrion Rolls", EItemRewardType.OrchestrionRoll); + AddGroup(list, "Triple Triad Cards", EItemRewardType.TripleTriadCard); + AddGroup(list, "Fashion Accessories", EItemRewardType.FashionAccessory); + AddGroup(list, "Unlock Links", EItemRewardType.UnlockLink); _filteredGroups = list; RebuildFlatRows(); } @@ -824,26 +244,9 @@ internal sealed class QuestRewardComponent private void AddGroup(List<ItemGroup> groups, string label, EItemRewardType type) { List<ItemReward> filteredItems = GetFilteredItems(type); - int num = ((filteredItems.Count <= 0) ? (-138188978) : (-138188979)); - while (true) + if (filteredItems.Count > 0) { - int num2 = num; - int num3 = -138188977; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return; - case 2: - groups.Add(new ItemGroup(label, type, filteredItems)); - num = -138188978; - break; - case 0: - num = -138188979; - break; - } + groups.Add(new ItemGroup(label, type, filteredItems)); } } @@ -854,223 +257,11 @@ internal sealed class QuestRewardComponent where x.IsUntradable select x).Where(delegate(ItemReward x) { - int num = (_showEventRewards ? (-346188384) : (-346188382)); - IQuestInfo questInfo2 = default(IQuestInfo); - QuestInfo questInfo = default(QuestInfo); - while (true) + if (!_showEventRewards && _questData.TryGetQuestInfo(x.ElementId, out IQuestInfo questInfo) && questInfo is QuestInfo { IsSeasonalEvent: not false }) { - int num2 = num; - int num3 = -346188380; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - return true; - case 6: - num = ((!_questData.TryGetQuestInfo(x.ElementId, out questInfo2)) ? (-346188384) : (-346188380)); - break; - case 8: - num = -346188382; - break; - case 3: - num = (_003C_003Ec__DisplayClass22_0._200F_206E_200F_202D_206D_202D_200B_206B_202B_200E_206A_202A_200C_202E_200B_206B_202E_200C_206F_202B_200C_200E_206E_202E_200D_200E_200C_200E_200F_200C_202A_206A_206E_202E_202E_206F_206A_206D_202B_202C_202E(x.Name, _searchText, StringComparison.OrdinalIgnoreCase) ? (-346188383) : (-346188379)); - break; - case 7: - num = ((!questInfo.IsSeasonalEvent) ? (-346188384) : (-346188378)); - break; - case 2: - return false; - case 0: - questInfo = questInfo2 as QuestInfo; - num = ((questInfo == null) ? (-346188384) : (-346188381)); - break; - case 1: - return false; - case 4: - num = (_003C_003Ec__DisplayClass22_0._202C_206C_206E_200D_202B_202C_200D_200B_206B_202A_206A_202E_206A_206E_206C_206B_200D_200D_200E_200E_200F_200F_200F_202D_202E_206C_206E_200C_200C_200F_202E_200F_206D_200E_206B_202A_206D_206F_202D_206A_202E(_searchText) ? (-346188383) : (-346188377)); - break; - } + return false; } - }).OrderBy<ItemReward, string>((ItemReward x) => x.Name, _202E_202E_202A_206D_206B_206F_206F_206E_202B_206C_206C_206F_202C_200D_200E_202B_200D_206F_200E_200F_202E_202A_206F_202E_206D_202B_206C_202E_200B_202A_206F_200F_206C_206A_202A_200D_200B_206D_200D_206C_202E()).ToList(); - } - - static ImGuiStylePtr _202A_200D_200C_202C_200F_202E_206A_206E_200D_202E_202E_206A_200E_206B_206B_206E_200C_206D_200D_202D_200C_202C_206D_206A_200D_200C_206A_202B_202B_206A_206E_206B_206D_200B_200B_206D_206B_206E_202E() - { - return ImGui.GetStyle(); - } - - static float _202C_200B_206E_200D_206F_202E_202C_202E_200E_206A_200B_200F_200D_206E_206D_202A_200C_202A_206F_200F_206F_206A_200B_202C_200B_202B_202A_206B_200C_202C_202A_206A_200E_206A_202E_206C_202E_206A_200D_206F_202E() - { - return ImGui.GetFrameHeight(); - } - - static Vector2 _206B_200E_206D_202C_202B_206A_206B_200D_206D_200E_202B_206E_200C_200F_202A_200F_200D_206B_200D_202B_202D_206B_200F_202A_206E_200B_206D_200B_206B_206D_206A_202E_202B_202A_202E_206F_206F_200C_206A_206B_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static void _206A_200B_202E_206A_202E_200B_200C_200F_200C_202B_206A_202C_200F_200E_206A_202C_200D_200B_202E_202B_206F_206B_206B_202D_202B_206F_200C_200E_206B_206F_206C_200D_206F_200B_200D_206F_202B_200D_200B_200C_202E() - { - ImGui.SameLine(); - } - - static void _202E_200B_200B_202B_206A_200E_206E_202D_206A_200D_202E_200C_206F_202A_206E_206F_202B_200B_200D_206F_206E_202B_202A_206D_202C_202E_206E_206D_202D_200F_200D_202A_202C_202A_202A_206C_200B_200B_202E_200F_202E() - { - ImGui.Spacing(); - } - - static void _202C_206D_206A_200D_200D_206D_200C_200F_202E_202E_202A_200F_206A_202D_200B_202D_200E_202B_202B_200C_206C_202C_200D_202B_200C_202A_202A_206A_206A_202D_200E_200D_206F_202A_202B_206A_200B_206B_202C_206B_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static void _200C_200E_200D_200B_202C_206E_200C_202B_200F_200F_206F_202B_206A_202C_206A_206C_202D_206B_200C_206F_200F_206B_200D_206F_206D_200C_200E_200C_206C_206E_206C_202B_202C_202A_206F_200B_200F_206D_206B_202D_202E() - { - ImGui.Separator(); - } - - static IUiBuilder _200B_200B_206C_206A_202A_206E_200F_206B_206D_206B_200B_200C_206E_200D_200E_202A_200B_200C_206E_202C_206A_200D_206E_206A_206C_206D_206D_202C_206E_200B_202B_202E_206E_206E_200B_200C_200F_206C_202B_200C_202E(IDalamudPluginInterface P_0) - { - return P_0.UiBuilder; - } - - static IFontHandle _200B_206D_206B_200F_200D_206C_200D_206A_200F_202A_200F_200F_200E_202A_200F_200F_206B_202B_200C_200F_202E_200B_202A_206B_202B_200B_200F_206E_206F_202A_206A_202B_202B_200C_206E_206B_200F_202C_206B_202E(IUiBuilder P_0) - { - return P_0.IconFontFixedWidthHandle; - } - - static IDisposable _200E_200D_202A_202A_206E_200C_206C_206C_206B_200D_202C_202A_206B_206D_206E_200C_206B_206B_202E_206F_200E_200B_200B_206F_206C_202E_202E_200C_202E_200E_206F_202C_206E_200B_202C_202B_200C_202E_206C_202A_202E(IFontHandle P_0) - { - return P_0.Push(); - } - - static string _200F_206E_206C_206B_200B_200D_200E_206C_206F_200C_200B_202A_206E_206C_200D_200C_206A_206C_206E_200E_206F_202B_202B_202C_202E_202D_200F_206C_200C_206B_206B_200B_202A_202D_202B_202D_206F_200B_206A_202A_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static void _200C_202C_202A_206B_202D_200E_206B_206E_202C_202E_206D_206C_202E_200D_206F_202D_206F_206C_206D_200F_200F_202D_200E_200F_206F_200B_206B_200E_202B_206D_206E_206E_202D_202E_206D_202E_202E_202D_202E_202D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static ImGuiIOPtr _202E_202E_206C_206B_202C_202E_202B_206C_206F_202A_206B_206B_206B_206F_202D_200B_206D_206E_200B_200F_200E_206D_200C_202A_206B_200C_202A_202D_202E_206F_202B_200D_202A_202E_206F_202A_206E_202D_202B_202C_202E() - { - return ImGui.GetIO(); - } - - static void _206A_206D_202E_206D_202E_206C_200B_206A_200F_206C_206B_206E_200F_200B_206C_202C_202A_206E_202E_206C_202E_200F_200F_202D_206C_200C_206F_206E_206D_202E_202E_202B_206C_206C_200E_202C_202E_206F_202B_206B_202E(ImU8String P_0, ImGuiTableColumnFlags P_1, float P_2, uint P_3) - { - ImGui.TableSetupColumn(P_0, P_1, P_2, P_3); - } - - static void _200B_202A_206A_202B_206B_200B_206B_200F_206D_202A_202A_206B_200F_200B_206B_200F_202B_200C_206D_206E_200E_202B_206F_206B_200E_202B_202A_200C_200D_206E_206B_206A_200B_202B_200E_200E_202D_200C_206B_202E_202E() - { - ImGui.TableHeadersRow(); - } - - static float _200F_206F_202D_200D_200E_202E_206D_206E_200D_200E_202D_202B_200D_202B_206D_206C_202A_200D_206F_200E_200F_206D_206F_200B_200C_200F_206F_206A_206B_200D_206D_200E_202A_200B_200D_206C_200E_200E_200E_200E_202E() - { - return ImGui.GetTextLineHeightWithSpacing(); - } - - unsafe static ImGuiListClipper* _206D_200C_200B_206E_206C_206B_206D_200F_202A_206A_202C_202C_206E_202E_200E_206F_200E_200F_202E_206B_200C_206E_206C_200F_202C_206F_202C_200F_202B_206E_206A_202C_202A_206F_206C_206B_200C_200F_206E_200F_202E() - { - return ImGuiNative.ImGuiListClipper(); - } - - unsafe static void _200F_202D_200D_206E_200D_202D_202E_206E_202A_202E_200E_200C_206F_206A_206B_200F_206E_202E_206A_200D_202B_206D_206C_200B_206B_206A_206B_200C_200E_200D_200B_200E_206B_206B_200D_200E_200C_200B_200E_202A_202E(ImGuiListClipper* P_0, int P_1, float P_2) - { - ImGuiNative.Begin(P_0, P_1, P_2); - } - - static void _206F_206F_200B_200E_200B_200C_200E_206A_202A_206F_202E_202A_200C_200C_200C_202C_202D_202B_200B_200C_202D_202E_200C_200B_206E_200C_202A_206D_200D_206B_206A_206B_202D_206D_200C_202A_206A_206E_202D_206C_202E() - { - ImGui.TableNextRow(); - } - - static bool _202C_202C_202A_200E_206E_202E_206E_206D_200F_206A_202E_206B_200D_200F_206C_206A_202D_206A_200E_206B_206B_206D_206B_206D_206F_200F_202E_200F_200B_202B_202E_202D_200C_202C_200D_200D_206D_206B_206F_202A_202E() - { - return ImGui.TableNextColumn(); - } - - static bool _206F_202D_200B_206E_206D_202D_206C_206B_206F_206E_200E_202A_206E_206A_202D_202A_206D_206C_200E_206F_200C_200B_202E_206B_200C_206F_200D_200D_202E_206C_206A_206B_200C_202C_200E_200F_206D_200D_206F_202C_202E(ImU8String P_0, bool P_1, ImGuiSelectableFlags P_2, Vector2 P_3) - { - return ImGui.Selectable(P_0, P_1, P_2, P_3); - } - - static float _202B_202B_202D_202E_202D_202E_206C_206C_206C_200C_206A_202A_202C_200E_202B_202A_202D_200D_200D_202A_200E_200C_202A_202E_200B_200E_202B_202A_200F_206E_200F_206F_200D_200C_202A_206C_202E_206B_206A_206E_202E() - { - return ImGui.GetCursorPosX(); - } - - static void _202C_200C_206A_200E_206B_206C_202B_200B_202B_202B_202B_202E_202D_200F_200F_206B_202B_206D_200F_206D_200B_200C_206C_206A_200C_206D_200E_202C_202D_202A_200E_202D_206A_200B_206B_206E_202C_206A_202E_206B_202E(float P_0) - { - ImGui.SetCursorPosX(P_0); - } - - static string _200B_206D_200D_202C_200B_206A_206F_200B_200C_202E_206E_202B_200B_206D_206F_202C_206C_200B_206F_202D_202A_200F_206B_202B_206D_206F_206E_200C_200B_202A_206C_206F_200E_206A_200E_202B_202A_200F_206E_200C_202E(SeIconChar P_0) - { - return P_0.ToIconString(); - } - - static string _200E_206B_202E_202D_206A_202A_206F_200E_202D_202C_200F_206F_206E_202D_206B_200B_206E_202C_206E_200F_206F_206A_200B_206D_202E_200D_200F_202D_200F_206F_202E_200D_202A_206F_200E_202C_206D_206F_206D_202D_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static bool _202D_206F_206F_200D_206E_206C_200D_202B_202C_200C_202C_206E_202A_202D_202C_200B_206A_200E_202B_206B_202C_206E_206E_206E_202E_206E_200E_206F_200F_202A_206A_200F_206B_206D_206E_202A_206C_200C_206A_206D_202E(ImU8String P_0, ImGuiTreeNodeFlags P_1, ImU8String P_2) - { - return ImGui.TreeNodeEx(P_0, P_1, P_2); - } - - static bool _206B_202C_202C_200D_202D_200D_200F_206B_206E_202B_200C_206E_206F_202E_206E_202B_200B_200B_200F_200C_200E_202C_206C_200B_200F_202D_200B_200E_202C_202D_202C_202B_206B_202B_200B_202C_206C_200F_206B_206F_202E() - { - return ImGui.IsItemHovered(); - } - - static float _202C_206A_202C_206A_206F_206B_202D_206B_200E_200C_206A_200F_200C_206C_206F_202D_206C_202A_202C_202A_200D_202A_200F_206F_206D_200E_200F_202E_206A_202E_202E_200F_202A_206E_200E_206B_200F_206B_200F_200D_202E() - { - return ImGui.GetColumnWidth(); - } - - static ImRaii.TooltipDisposable _200D_202E_202E_206B_206B_206C_200E_200E_202C_202D_202D_202C_206D_202B_200D_200C_200E_200C_206C_202C_200D_202D_206E_200D_200D_206F_202C_200E_202E_200C_202C_200D_206B_206C_200B_206F_206D_206A_202A_200C_202E() - { - return ImRaii.Tooltip(); - } - - static void _202A_206F_206F_200F_200F_202D_200C_200E_206C_200F_206D_206D_206E_202A_206E_200F_206F_200E_206F_202E_202D_202D_202A_206F_200E_202A_200F_202D_206C_200F_206C_202D_206F_202D_200F_206C_200E_202A_200C_206C_202E(ImU8String P_0) - { - ImGui.Text(P_0); - } - - static ImRaii.IndentDisposable _206E_206F_206F_202D_206F_200B_206B_206A_206C_202D_200D_206C_202B_206C_200B_206B_200F_206D_200B_202C_202B_200B_206C_202D_202D_200D_202A_202E_202D_200B_202D_200F_206E_202D_206A_206D_206B_206D_200C_206C_202E(int P_0, bool P_1) - { - return ImRaii.PushIndent(P_0, P_1); - } - - static CultureInfo _206B_206C_202D_202C_202A_202A_206E_206C_200B_206B_206E_202A_200F_202A_200F_206B_206B_202C_206A_206D_200D_202C_206A_202D_202E_206F_202B_202E_206F_206A_200C_206A_206D_200F_200C_200F_200C_206E_206C_206A_202E() - { - return CultureInfo.CurrentCulture; - } - - static string _200F_202E_206C_200E_202E_202B_206C_202B_202C_200E_206B_202A_206C_206F_206C_202E_202E_202D_202D_200B_202A_200F_202B_202B_202E_200E_200C_200D_200C_206F_206B_200D_202B_200D_200B_202B_202A_202A_206C_200D_202E(string P_0, int P_1) - { - return P_0.PadLeft(P_1); - } - - static string _200C_200E_206F_200C_200F_202C_206A_200F_202E_206A_202B_206D_202D_202E_200E_202A_202D_206F_200E_206C_202B_206F_200B_202D_206E_206C_200B_202D_206B_206C_206D_202D_206B_206C_202D_202E_200F_202C_202A_202E(string P_0, int P_1) - { - return P_0.PadLeft(P_1); - } - - static StringComparer _202E_202E_202A_206D_206B_206F_206F_206E_202B_206C_206C_206F_202C_200D_200E_202B_200D_206F_200E_200F_202E_202A_206F_202E_206D_202B_206C_202E_200B_202A_206F_200F_206C_206A_202A_200D_200B_206D_200D_206C_202E() - { - return StringComparer.CurrentCultureIgnoreCase; - } - - static int _202A_200B_202B_202E_206E_200C_200F_206A_202B_206C_206B_206F_202C_202B_206C_206D_202A_206A_200C_200C_206B_206B_206B_202E_202C_206B_202C_202B_206F_200D_200E_202D_206E_206A_200E_200D_202A_202A_202E_206A_202E(string P_0) - { - return P_0.Length; + return (string.IsNullOrEmpty(_searchText) || x.Name.Contains(_searchText, StringComparison.OrdinalIgnoreCase)) ? true : false; + }).OrderBy<ItemReward, string>((ItemReward x) => x.Name, StringComparer.CurrentCultureIgnoreCase).ToList(); } } diff --git a/Questionable/Questionable.Windows.QuestComponents/ARealmRebornComponent.cs b/Questionable/Questionable.Windows.QuestComponents/ARealmRebornComponent.cs index 3ac70cf..ce476cc 100644 --- a/Questionable/Questionable.Windows.QuestComponents/ARealmRebornComponent.cs +++ b/Questionable/Questionable.Windows.QuestComponents/ARealmRebornComponent.cs @@ -1,9 +1,6 @@ -using System; -using System.Collections; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Interface; using Dalamud.Interface.Colors; @@ -18,13 +15,13 @@ namespace Questionable.Windows.QuestComponents; internal sealed class ARealmRebornComponent { - private static readonly QuestId ATimeForEveryPurpose = _206E_200C_202E_200D_200F_202D_202B_200D_206A_206E_206D_202C_200D_202C_206A_206E_200E_202D_200E_200C_200E_200F_202E_200B_200C_206E_206A_200D_202E_200D_200D_200D_200B_202C_206E_202B_202E_202D_200D_200F_202E((ushort)425); + private static readonly QuestId ATimeForEveryPurpose = new QuestId(425); - private static readonly QuestId TheUltimateWeapon = _206E_200C_202E_200D_200F_202D_202B_200D_206A_206E_206D_202C_200D_202C_206A_206E_200E_202D_200E_200C_200E_200F_202E_200B_200C_206E_206A_200D_202E_200D_200D_200D_200B_202C_206E_202B_202E_202D_200D_200F_202E((ushort)524); + private static readonly QuestId TheUltimateWeapon = new QuestId(524); - private static readonly QuestId GoodIntentions = _206E_200C_202E_200D_200F_202D_202B_200D_206A_206E_206D_202C_200D_202C_206A_206E_200E_202D_200E_200C_200E_200F_202E_200B_200C_206E_206A_200D_202E_200D_200D_200D_200B_202C_206E_202B_202E_202D_200D_200F_202E((ushort)363); + private static readonly QuestId GoodIntentions = new QuestId(363); - private static readonly ushort[] RequiredPrimalInstances; + private static readonly ushort[] RequiredPrimalInstances = new ushort[3] { 20004, 20006, 20005 }; private readonly QuestFunctions _questFunctions; @@ -40,27 +37,11 @@ internal sealed class ARealmRebornComponent { get { - int num = (_questFunctions.IsQuestAcceptedOrComplete(ATimeForEveryPurpose) ? 392545045 : 392545044); - while (true) + if (!_questFunctions.IsQuestAcceptedOrComplete(ATimeForEveryPurpose)) { - int num2 = num; - int num3 = 392545045; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0052; - case 1: - return _questFunctions.IsQuestComplete(TheUltimateWeapon); - case 0: - return false; - } - continue; - IL_0052: - num = 392545044; + return _questFunctions.IsQuestComplete(TheUltimateWeapon); } + return false; } } @@ -73,255 +54,61 @@ internal sealed class ARealmRebornComponent _configuration = configuration; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Draw() { var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); - UiThemeUtils.SectionHeader(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1261156168)); - int num = (_questFunctions.IsQuestAcceptedOrComplete(GoodIntentions) ? 534954263 : 534954260); - while (true) + UiThemeUtils.SectionHeader("A Realm Reborn"); + if (!_questFunctions.IsQuestAcceptedOrComplete(GoodIntentions)) { - int num2 = num; - int num3 = 534954261; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - DrawAllianceRaids(); - UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); - return; - case 1: - DrawPrimals(); - num = 534954263; - break; - case 0: - num = 534954260; - break; - } + DrawPrimals(); } + DrawAllianceRaids(); + UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawPrimals() { bool flag = UIState.IsInstanceContentCompleted(RequiredPrimalInstances.Last()); - bool flag2 = _uiUtils.ChecklistItem(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1581570553), flag, _configuration.Advanced.SkipARealmRebornHardModePrimals ? new System.Numerics.Vector4?(_202E_202A_206C_200E_206E_200D_202C_202C_200E_202E_206F_202E_202D_200B_206C_206B_200F_202D_200E_206C_200B_202B_206B_200D_202E_200F_200F_202D_206C_206F_202D_206B_206A_200B_206B_200E_202D_202D_200F_202E_202E()) : ((System.Numerics.Vector4?)null)); - int num = (flag ? (-1664397724) : (-1664397721)); - ushort[] requiredPrimalInstances = default(ushort[]); - int num8 = default(int); - while (true) + bool flag2 = _uiUtils.ChecklistItem("Hard Mode Primals", flag, _configuration.Advanced.SkipARealmRebornHardModePrimals ? new System.Numerics.Vector4?(ImGuiColors.DalamudGrey) : ((System.Numerics.Vector4?)null)); + if (flag || !flag2) { - int num2 = num; - int num3 = -1664397722; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return; + } + using ImRaii.TooltipDisposable tooltipDisposable = ImRaii.Tooltip(); + if (tooltipDisposable.Alive) + { + ushort[] requiredPrimalInstances = RequiredPrimalInstances; + foreach (ushort instanceId in requiredPrimalInstances) { - case 0: - num = -1664397721; - break; - case 2: - return; - case 1: - num = (flag2 ? (-1664397723) : (-1664397724)); - break; - case 3: - { - using ImRaii.TooltipDisposable tooltipDisposable = _206D_200F_200C_206C_202B_200F_200E_200B_206F_200C_202C_200E_200E_200F_202D_202E_202C_200C_202B_202B_206C_200D_206E_206C_202A_206A_202E_200B_200F_206D_206A_206C_206D_202A_202A_200C_202D_206E_206E_202A_202E(); - num = (tooltipDisposable.Alive ? (-863151473) : (-863151478)); - while (true) - { - int num5 = num; - num3 = -863151474; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 5: - num = -863151478; - break; - case 2: - { - ushort instanceId = requiredPrimalInstances[num8]; - (System.Numerics.Vector4 color, FontAwesomeIcon icon) instanceStyle = UiUtils.GetInstanceStyle(instanceId); - FFXIVClientStructs.FFXIV.Common.Math.Vector4 vector = instanceStyle.color; - FontAwesomeIcon item = instanceStyle.icon; - _uiUtils.ChecklistItem(_territoryData.GetInstanceName(instanceId) ?? global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1923490088), vector, item, _202E_206F_202D_202E_200C_202C_206F_200C_202D_206B_200C_202E_202C_200E_206F_200D_202C_206D_206A_202D_202C_206A_202A_202E_200D_202D_202A_202A_206E_206F_202B_206A_200D_202C_206B_206A_206D_206E_202C_206C_202E().FramePadding.X); - int num9 = num8; - num3 = 1; - num4 = num9; - num8 = (num4 | num3) + (num4 & num3); - num = -863151475; - break; - } - case 3: - num = ((num8 < requiredPrimalInstances.Length) ? (-863151476) : (-863151474)); - break; - case 1: - requiredPrimalInstances = RequiredPrimalInstances; - num8 = 0; - num = -863151475; - break; - case 4: - return; - case 0: - return; - } - } - } + (System.Numerics.Vector4 color, FontAwesomeIcon icon) instanceStyle = UiUtils.GetInstanceStyle(instanceId); + FFXIVClientStructs.FFXIV.Common.Math.Vector4 vector = instanceStyle.color; + FontAwesomeIcon item = instanceStyle.icon; + _uiUtils.ChecklistItem(_territoryData.GetInstanceName(instanceId) ?? "?", vector, item, ImGui.GetStyle().FramePadding.X); } } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawAllianceRaids() { QuestFunctions questFunctions = _questFunctions; IReadOnlyList<QuestId> crystalTowerQuests = QuestData.CrystalTowerQuests; bool flag = questFunctions.IsQuestComplete(crystalTowerQuests[crystalTowerQuests.Count - 1]); - bool flag2 = _uiUtils.ChecklistItem(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(442894650), flag, _configuration.Advanced.SkipCrystalTowerRaids ? new System.Numerics.Vector4?(_202E_202A_206C_200E_206E_200D_202C_202C_200E_202E_206F_202E_202D_200B_206C_206B_200F_202D_200E_206C_200B_202B_206B_200D_202E_200F_200F_202D_206C_206F_202D_206B_206A_200B_206B_200E_202D_202D_200F_202E_202E()) : ((System.Numerics.Vector4?)null)); - int num = (flag ? 406928079 : 406928076); - while (true) + bool flag2 = _uiUtils.ChecklistItem("Crystal Tower Raids", flag, _configuration.Advanced.SkipCrystalTowerRaids ? new System.Numerics.Vector4?(ImGuiColors.DalamudGrey) : ((System.Numerics.Vector4?)null)); + if (flag || !flag2) { - int num2 = num; - int num3 = 406928077; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = 406928076; - break; - case 2: - return; - case 1: - num = (flag2 ? 406928077 : 406928079); - break; - case 0: - { - using ImRaii.TooltipDisposable tooltipDisposable = _206D_200F_200C_206C_202B_200F_200E_200B_206F_200C_202C_200E_200E_200F_202D_202E_202C_200C_202B_202B_206C_200D_206E_206C_202A_206A_202E_200B_200F_206D_206A_206C_206D_202A_202A_200C_202D_206E_206E_202A_202E(); - num = (tooltipDisposable.Alive ? 533911175 : 533911174); - while (true) - { - int num5 = num; - num3 = 533911175; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 2: - goto IL_0133; - case 1: - return; - case 0: - { - IEnumerator<QuestId> enumerator = QuestData.CrystalTowerQuests.GetEnumerator(); - try - { - num = -1056949056; - while (true) - { - int num8 = num; - num3 = -1056949054; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1056949056; - break; - case 3: - { - QuestId current = enumerator.Current; - (System.Numerics.Vector4 Color, FontAwesomeIcon Icon, string Status) questStyle = _uiUtils.GetQuestStyle(current); - FFXIVClientStructs.FFXIV.Common.Math.Vector4 vector = questStyle.Color; - FontAwesomeIcon item = questStyle.Icon; - _uiUtils.ChecklistItem(_questData.GetQuestInfo(current).Name, vector, item, _202E_206F_202D_202E_200C_202C_206F_200C_202D_206B_200C_202E_202C_200E_206F_200D_202C_206D_206A_202D_202C_206A_202A_202E_200D_202D_202A_202A_206E_206F_202B_206A_200D_202C_206B_206A_206D_206E_202C_206C_202E().FramePadding.X); - num = -1056949056; - break; - } - case 2: - num = (_200D_202A_206E_206D_200C_206A_206D_206C_206B_200C_200C_206C_200E_200C_200E_206D_206E_206E_206E_200C_200D_200D_206E_200C_206C_200D_206D_200E_202B_200B_202D_200B_202E_206A_206F_202D_206C_200C_202D_200C_202E((IEnumerator)enumerator) ? (-1056949055) : (-1056949053)); - break; - case 1: - return; - } - } - } - finally - { - num = ((enumerator == null) ? (-208595158) : (-208595159)); - while (true) - { - int num9 = num; - num3 = -208595160; - num4 = num9; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -208595159; - break; - case 2: - goto end_IL_025d; - case 1: - _200F_202A_200E_200D_202B_206F_202E_200C_206C_206D_200D_206B_202A_202D_202B_202C_202D_200B_206C_202E_206B_202B_202B_202C_202A_202A_200D_206F_202E_206B_202D_200D_202B_200C_202A_206C_200D_200B_200D_200C_202E((IDisposable)enumerator); - num = -208595158; - break; - } - continue; - end_IL_025d: - break; - } - } - } - } - continue; - IL_0133: - num = 533911174; - } - } - } + return; + } + using ImRaii.TooltipDisposable tooltipDisposable = ImRaii.Tooltip(); + if (!tooltipDisposable.Alive) + { + return; + } + foreach (QuestId crystalTowerQuest in QuestData.CrystalTowerQuests) + { + (System.Numerics.Vector4 Color, FontAwesomeIcon Icon, string Status) questStyle = _uiUtils.GetQuestStyle(crystalTowerQuest); + FFXIVClientStructs.FFXIV.Common.Math.Vector4 vector = questStyle.Color; + FontAwesomeIcon item = questStyle.Icon; + _uiUtils.ChecklistItem(_questData.GetQuestInfo(crystalTowerQuest).Name, vector, item, ImGui.GetStyle().FramePadding.X); } } - - static ARealmRebornComponent() - { - ushort[] array = new ushort[3]; - _200D_206A_200B_206B_206E_200F_202E_202B_206B_206C_206C_202E_206E_206B_206B_206C_202D_206C_200C_200E_206C_202A_200E_202E_200B_206D_206F_202C_206E_206C_206B_200F_202E_200F_202D_206B_200B_206F_206B_200C_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - RequiredPrimalInstances = array; - } - - static System.Numerics.Vector4 _202E_202A_206C_200E_206E_200D_202C_202C_200E_202E_206F_202E_202D_200B_206C_206B_200F_202D_200E_206C_200B_202B_206B_200D_202E_200F_200F_202D_206C_206F_202D_206B_206A_200B_206B_200E_202D_202D_200F_202E_202E() - { - return ImGuiColors.DalamudGrey; - } - - static ImRaii.TooltipDisposable _206D_200F_200C_206C_202B_200F_200E_200B_206F_200C_202C_200E_200E_200F_202D_202E_202C_200C_202B_202B_206C_200D_206E_206C_202A_206A_202E_200B_200F_206D_206A_206C_206D_202A_202A_200C_202D_206E_206E_202A_202E() - { - return ImRaii.Tooltip(); - } - - static ImGuiStylePtr _202E_206F_202D_202E_200C_202C_206F_200C_202D_206B_200C_202E_202C_200E_206F_200D_202C_206D_206A_202D_202C_206A_202A_202E_200D_202D_202A_202A_206E_206F_202B_206A_200D_202C_206B_206A_206D_206E_202C_206C_202E() - { - return ImGui.GetStyle(); - } - - static bool _200D_202A_206E_206D_200C_206A_206D_206C_206B_200C_200C_206C_200E_200C_200E_206D_206E_206E_206E_200C_200D_200D_206E_200C_206C_200D_206D_200E_202B_200B_202D_200B_202E_206A_206F_202D_206C_200C_202D_200C_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200F_202A_200E_200D_202B_206F_202E_200C_206C_206D_200D_206B_202A_202D_202B_202C_202D_200B_206C_202E_206B_202B_202B_202C_202A_202A_200D_206F_202E_206B_202D_200D_202B_200C_202A_206C_200D_200B_200D_200C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static QuestId _206E_200C_202E_200D_200F_202D_202B_200D_206A_206E_206D_202C_200D_202C_206A_206E_200E_202D_200E_200C_200E_200F_202E_200B_200C_206E_206A_200D_202E_200D_200D_200D_200B_202C_206E_202B_202E_202D_200D_200F_202E(ushort P_0) - { - return new QuestId(P_0); - } - - static void _200D_206A_200B_206B_206E_200F_202E_202B_206B_206C_206C_202E_206E_206B_206B_206C_202D_206C_200C_200E_206C_202A_200E_202E_200B_206D_206F_202C_206E_206C_206B_200F_202E_200F_202D_206B_200B_206F_206B_200C_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); - } } diff --git a/Questionable/Questionable.Windows.QuestComponents/ActiveQuestComponent.cs b/Questionable/Questionable.Windows.QuestComponents/ActiveQuestComponent.cs index bf22bf4..0f74a0f 100644 --- a/Questionable/Questionable.Windows.QuestComponents/ActiveQuestComponent.cs +++ b/Questionable/Questionable.Windows.QuestComponents/ActiveQuestComponent.cs @@ -3,13 +3,9 @@ using System.CodeDom.Compiler; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using System.Text.RegularExpressions; using System.Text.RegularExpressions.Generated; -using System.Threading; using Dalamud.Bindings.ImGui; -using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Game.Text; using Dalamud.Interface; using Dalamud.Interface.Colors; @@ -28,32 +24,6 @@ namespace Questionable.Windows.QuestComponents; internal sealed class ActiveQuestComponent { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<QuestSequence, byte> _003C_003E9__37_0; - - public static Func<QuestSequence, byte> _003C_003E9__37_2; - - internal byte _003CDrawSimulationControls_003Eb__37_0(QuestSequence x) - { - return _200F_206D_206F_206B_206B_206E_206C_202B_202E_202A_206B_202E_202D_200C_206B_206F_206A_202A_206F_206B_202A_206B_202E_206D_202B_202D_206B_200D_202E_202E_200E_200C_200D_200B_200F_200B_206F_206F_206E_202B_202E(x); - } - - internal byte _003CDrawSimulationControls_003Eb__37_2(QuestSequence x) - { - return _200F_206D_206F_206B_206B_206E_206C_202B_202E_202A_206B_202E_202D_200C_206B_206F_206A_202A_206F_206B_202A_206B_202E_206D_202B_202D_206B_200D_202E_202E_200E_200C_200D_200B_200F_200B_206F_206F_206E_202B_202E(x); - } - - static byte _200F_206D_206F_206B_206B_206E_206C_202B_202E_202A_206B_202E_202D_200C_206B_206F_206A_202A_206F_206B_202A_206B_202E_206D_202B_202D_206B_200D_202E_202E_200E_200C_200D_200B_200F_200B_206F_206F_206E_202B_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - } - private readonly QuestController _questController; private readonly MovementController _movementController; @@ -94,68 +64,7 @@ internal sealed class ActiveQuestComponent private bool _questCardExpanded; - [CompilerGenerated] - private System.Action? m_OpenQueueTab; - - public event System.Action? OpenQueueTab - { - [CompilerGenerated] - add - { - System.Action action = this.m_OpenQueueTab; - int num = -1845062686; - while (true) - { - int num2 = num; - int num3 = -1845062685; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1845062686; - break; - case 0: - return; - case 1: - { - System.Action action2 = action; - System.Action value2 = (System.Action)_206B_202D_200E_202B_202B_200D_202E_202C_206F_202D_202D_202B_206E_202B_202A_200D_200F_206C_206C_200B_200E_206A_206D_202B_206A_202A_202B_202D_206A_206F_200F_206B_206D_200C_202A_200E_200B_206E_200F_200C_202E((Delegate)action2, (Delegate)value); - action = Interlocked.CompareExchange(ref this.m_OpenQueueTab, value2, action2); - num = (((object)action != action2) ? (-1845062686) : (-1845062685)); - break; - } - } - } - } - [CompilerGenerated] - remove - { - System.Action action = this.m_OpenQueueTab; - int num = -117649682; - while (true) - { - int num2 = num; - int num3 = -117649681; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return; - case 1: - { - System.Action action2 = action; - System.Action value2 = (System.Action)_202A_206F_200E_202B_202B_206C_202C_200F_206C_200B_202B_200E_206F_200B_200C_206C_202E_202D_206E_200B_202E_206C_206B_206C_202D_206D_200D_206D_206B_206F_200B_206E_202C_206E_200D_200D_200F_202A_200C_206E_202E((Delegate)action2, (Delegate)value); - action = Interlocked.CompareExchange(ref this.m_OpenQueueTab, value2, action2); - num = (((object)action != action2) ? (-117649682) : (-117649683)); - break; - } - case 0: - num = -117649682; - break; - } - } - } - } + public event System.Action? OpenQueueTab; [GeneratedRegex("\\s\\s+", RegexOptions.IgnoreCase, "en-US")] [GeneratedCode("System.Text.RegularExpressions.Generator", "10.0.14.37416")] @@ -189,557 +98,189 @@ internal sealed class ActiveQuestComponent public void Draw(bool isMinimized) { - int num = ((!_fateController.IsRunning) ? (-901177579) : (-901177582)); - QuestController.QuestProgress questProgress = default(QuestController.QuestProgress); - QuestController.ECurrentQuestType? currentQuestType = default(QuestController.ECurrentQuestType?); - (QuestController.QuestProgress, QuestController.ECurrentQuestType)? currentQuestDetails = default((QuestController.QuestProgress, QuestController.ECurrentQuestType)?); - while (true) + if (_fateController.IsRunning) { - int num2 = num; - int num3 = -901177578; - int num4 = num2; - QuestController.ECurrentQuestType? obj2; - object obj; - switch ((num4 | num3) - (num4 & num3)) + DrawFateActive(isMinimized); + return; + } + if (_seasonalDutyController.IsRunning) + { + DrawDutyActive(isMinimized); + return; + } + if (_customDeliveryController.IsRunning) + { + DrawCustomDeliveryActive(isMinimized); + return; + } + if (_gatheringController.IsRunning) + { + DrawGatheringActive(isMinimized); + return; + } + if (_fishingController.IsRunning) + { + DrawFishingActive(isMinimized); + return; + } + (QuestController.QuestProgress, QuestController.ECurrentQuestType)? currentQuestDetails = _questController.CurrentQuestDetails; + QuestController.QuestProgress questProgress = currentQuestDetails?.Item1; + QuestController.ECurrentQuestType? currentQuestType = currentQuestDetails?.Item2; + if (questProgress != null) + { + if (isMinimized) { - case 9: DrawMinimizedQuest(questProgress); - return; - case 18: - DrawQuestCard(questProgress, currentQuestType); - return; - case 3: - num = ((!_seasonalDutyController.IsRunning) ? (-901177584) : (-901177577)); - break; - case 5: - num = ((!_gatheringController.IsRunning) ? (-901177578) : (-901177575)); - break; - case 12: - DrawFishingActive(isMinimized); - return; - case 1: - DrawDutyActive(isMinimized); - return; - case 10: - obj2 = null; - goto IL_01e7; - case 2: - obj = currentQuestDetails.GetValueOrDefault().Item1; - goto IL_012b; - case 15: - DrawGatheringActive(isMinimized); - return; - case 4: - DrawFateActive(isMinimized); - return; - case 16: - num = ((!isMinimized) ? (-901177596) : (-901177569)); - break; - case 6: - num = ((!_customDeliveryController.IsRunning) ? (-901177581) : (-901177573)); - break; - case 17: - DrawNoActiveQuest(isMinimized); - return; - case 0: - num = ((!_fishingController.IsRunning) ? (-901177583) : (-901177574)); - break; - case 14: - obj2 = currentQuestDetails.GetValueOrDefault().Item2; - goto IL_01e7; - case 13: - DrawCustomDeliveryActive(isMinimized); - return; - case 8: - num = -901177582; - break; - case 11: - obj = null; - goto IL_012b; - case 7: - { - currentQuestDetails = _questController.CurrentQuestDetails; - num = (currentQuestDetails.HasValue ? (-901177580) : (-901177571)); - break; - } - IL_01e7: - currentQuestType = obj2; - num = ((questProgress == null) ? (-901177593) : (-901177594)); - break; - IL_012b: - questProgress = (QuestController.QuestProgress)obj; - num = (currentQuestDetails.HasValue ? (-901177576) : (-901177572)); - break; } + else + { + DrawQuestCard(questProgress, currentQuestType); + } + } + else + { + DrawNoActiveQuest(isMinimized); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawFateActive(bool isMinimized) { - ImRaii.ColorDisposable colorDisposable = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Text, _200E_200F_202C_206B_200B_202B_206F_206B_206F_206D_206D_200B_206A_200E_200D_200C_206F_202B_202D_202A_206E_206C_202A_206D_206E_206A_200D_202D_206F_206C_206F_206D_200F_202A_200C_200F_200F_200C_202B_206A_202E(), true); - int num; - try + using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.ParsedGold)) { - _200E_202C_202D_206D_202B_206E_200E_206F_202D_206D_206F_202C_206A_200B_200C_202B_202E_206A_200F_202D_200E_200C_200E_206D_206C_202B_202B_202E_200D_206C_206E_206E_202D_206C_200B_200E_206E_200C_206E_206E_202E((ImU8String)UiThemeUtils.TruncateToWidth(_200C_202D_202E_206B_202C_202D_200B_202C_206F_200F_206E_202C_206C_206E_200C_206B_200B_206A_206C_202E_206A_202D_200E_206F_206D_200E_202A_202E_206C_202D_202E_202B_202D_206C_202E_200F_200D_202A_206D_202E_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1853729886), _206F_200E_200B_206D_202B_200E_202B_202C_206A_206F_202A_200E_206E_200E_206C_202C_206A_202B_202C_202B_200D_206D_206D_200B_200B_202B_202B_206B_200E_202D_206B_200D_206A_200B_202D_200C_200C_200E_206B_202B_202E(_fateController.CurrentFate)), _202E_206F_202E_206B_200C_200C_202B_206C_202D_200F_206A_206E_200E_202C_206A_202D_206E_200D_200E_206C_200B_200C_206E_206E_206E_200F_206D_200D_206F_202E_206F_202C_202A_206D_206A_206C_202B_206E_206B_200C_202E().X)); - } - finally - { - num = ((colorDisposable == null) ? (-2041127811) : (-2041127812)); - while (true) - { - int num2 = num; - int num3 = -2041127811; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -2041127812; - break; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable); - num = -2041127811; - break; - case 0: - goto end_IL_0068; - } - continue; - end_IL_0068: - break; - } + ImGui.TextUnformatted(UiThemeUtils.TruncateToWidth("FATE: " + _fateController.CurrentFate.Name, ImGui.GetContentRegionAvail().X)); } IList<string> remainingTaskNames = _fateController.GetRemainingTaskNames(); - num = ((remainingTaskNames.Count <= 0) ? 93172541 : 93172531); - while (true) + if (remainingTaskNames.Count > 0) { - int num7 = num; - int num3 = 93172539; - int num4 = num7; - string text2; - string text; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(9, 2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-346240664)); - defaultInterpolatedStringHandler2.AppendFormatted(_fateController.CompletedCycles + 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2014446916)); - defaultInterpolatedStringHandler2.AppendFormatted(_fateController.CycleLimit); - text2 = defaultInterpolatedStringHandler2.ToStringAndClear(); - goto IL_0182; - } - case 4: - num = (_fateController.CycleLimit.HasValue ? 93172536 : 93172538); - break; - case 6: - num = (isMinimized ? 93172539 : 93172543); - break; - case 7: - _fateController.Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-271672975)); - _movementController.Stop(); - num = 93172542; - break; - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(6, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1738213715)); - defaultInterpolatedStringHandler.AppendFormatted(_fateController.CompletedCycles + 1); - text2 = defaultInterpolatedStringHandler.ToStringAndClear(); - goto IL_0182; - } - case 0: - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Stop, _206C_206C_206C_206D_200C_200E_202C_202C_206E_202C_202C_206B_200F_202A_200D_202C_200B_206E_206B_202D_206E_206F_200C_206B_200C_206B_206B_202D_202A_206E_202A_200B_200E_202C_200D_206F_200F_206D_206A_200F_202E())) ? 93172542 : 93172540); - break; - case 2: - num = 93172531; - break; - case 8: - UiThemeUtils.WrappedTextColored(UiThemeUtils.DimTextColor, remainingTaskNames[0]); - num = 93172541; - break; - case 5: - return; - IL_0182: - text = text2; - _202E_200E_200E_202E_200D_206E_206F_206E_200C_206F_202C_206D_200D_200C_206F_206B_202B_206F_206F_200F_206D_200E_200B_200E_206D_200E_206F_202C_202A_206F_202D_206B_202C_202E_200F_206B_200E_206E_206D_202D_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)text); - num = 93172539; - break; - } + UiThemeUtils.WrappedTextColored(UiThemeUtils.DimTextColor, remainingTaskNames[0]); + } + if (!isMinimized) + { + string text = (_fateController.CycleLimit.HasValue ? $"Cycle {_fateController.CompletedCycles + 1} / {_fateController.CycleLimit}" : $"Cycle {_fateController.CompletedCycles + 1}"); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, text); + } + if (UiThemeUtils.IconButton(FontAwesomeIcon.Stop, ImGui.GetFrameHeight())) + { + _fateController.Stop("UI stop"); + _movementController.Stop(); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawDutyActive(bool isMinimized) { - ImRaii.ColorDisposable colorDisposable = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Text, _206C_206B_206D_206F_202B_206B_206C_200C_206F_202D_206B_202B_200D_206F_206B_206C_206A_202C_200E_206E_202A_200C_200D_200C_206E_206D_202E_200E_200C_200F_202D_200C_202C_200B_202D_206B_206F_206E_202D_206D_202E(), true); - int num; - try + using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.ParsedGreen)) { - _200E_202C_202D_206D_202B_206E_200E_206F_202D_206D_206F_202C_206A_200B_200C_202B_202E_206A_200F_202D_200E_200C_200E_206D_206C_202B_202B_202E_200D_206C_206E_206E_202D_206C_200B_200E_206E_200C_206E_206E_202E((ImU8String)UiThemeUtils.TruncateToWidth(_200C_202D_202E_206B_202C_202D_200B_202C_206F_200F_206E_202C_206C_206E_200C_206B_200B_206A_206C_202E_206A_202D_200E_206F_206D_200E_202A_202E_206C_202D_202E_202B_202D_206C_202E_200F_200D_202A_206D_202E_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-840992576), _206A_200D_200F_206F_206D_206D_206B_206B_206A_200B_202A_202C_202B_202D_202A_200B_202A_202B_202B_202D_206F_202D_202E_200E_206B_206F_200E_202A_200E_206C_202D_202B_206E_200F_206A_200B_206F_206A_206A_206B_202E(_seasonalDutyController.CurrentDuty)), _202E_206F_202E_206B_200C_200C_202B_206C_202D_200F_206A_206E_200E_202C_206A_202D_206E_200D_200E_206C_200B_200C_206E_206E_206E_200F_206D_200D_206F_202E_206F_202C_202A_206D_206A_206C_202B_206E_206B_200C_202E().X)); - } - finally - { - num = ((colorDisposable == null) ? 702830084 : 702830087); - while (true) - { - int num2 = num; - int num3 = 702830086; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 702830087; - break; - case 2: - goto end_IL_0068; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable); - num = 702830084; - break; - } - continue; - end_IL_0068: - break; - } + ImGui.TextUnformatted(UiThemeUtils.TruncateToWidth("Duty: " + _seasonalDutyController.CurrentDuty.Name, ImGui.GetContentRegionAvail().X)); } IList<string> remainingTaskNames = _seasonalDutyController.GetRemainingTaskNames(); - num = ((remainingTaskNames.Count <= 0) ? (-562554573) : (-562554574)); - while (true) + if (remainingTaskNames.Count > 0) { - int num7 = num; - int num3 = -562554571; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - string text; - switch (num8 - (num9 + num9)) - { - default: - continue; - case 0: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(6, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-346240664)); - defaultInterpolatedStringHandler2.AppendFormatted(_seasonalDutyController.CompletedCycles + 1); - text = defaultInterpolatedStringHandler2.ToStringAndClear(); - break; - } - case 2: - _seasonalDutyController.Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-271672975)); - _movementController.Stop(); - num = -562554570; - continue; - case 6: - num = (isMinimized ? (-562554572) : (-562554563)); - continue; - case 7: - UiThemeUtils.WrappedTextColored(UiThemeUtils.DimTextColor, remainingTaskNames[0]); - num = -562554573; - continue; - case 5: - num = -562554574; - continue; - case 8: - num = (_seasonalDutyController.CycleLimit.HasValue ? (-562554575) : (-562554571)); - continue; - case 1: - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Stop, _206C_206C_206C_206D_200C_200E_202C_202C_206E_202C_202C_206B_200F_202A_200D_202C_200B_206E_206B_202D_206E_206F_200C_206B_200C_206B_206B_202D_202A_206E_202A_200B_200E_202C_200D_206F_200F_206D_206A_200F_202E())) ? (-562554570) : (-562554569)); - continue; - case 4: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(9, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1552650269)); - defaultInterpolatedStringHandler.AppendFormatted(_seasonalDutyController.CompletedCycles + 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-242478203)); - defaultInterpolatedStringHandler.AppendFormatted(_seasonalDutyController.CycleLimit); - text = defaultInterpolatedStringHandler.ToStringAndClear(); - break; - } - case 3: - return; - } - string text2 = text; - _202E_200E_200E_202E_200D_206E_206F_206E_200C_206F_202C_206D_200D_200C_206F_206B_202B_206F_206F_200F_206D_200E_200B_200E_206D_200E_206F_202C_202A_206F_202D_206B_202C_202E_200F_206B_200E_206E_206D_202D_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)text2); - num = -562554572; + UiThemeUtils.WrappedTextColored(UiThemeUtils.DimTextColor, remainingTaskNames[0]); + } + if (!isMinimized) + { + string text = (_seasonalDutyController.CycleLimit.HasValue ? $"Cycle {_seasonalDutyController.CompletedCycles + 1} / {_seasonalDutyController.CycleLimit}" : $"Cycle {_seasonalDutyController.CompletedCycles + 1}"); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, text); + } + if (UiThemeUtils.IconButton(FontAwesomeIcon.Stop, ImGui.GetFrameHeight())) + { + _seasonalDutyController.Stop("UI stop"); + _movementController.Stop(); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawCustomDeliveryActive(bool isMinimized) { - string text = _customDeliveryController.CurrentNpcName ?? global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-518001715); - ImRaii.ColorDisposable colorDisposable = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Text, _200D_206A_202A_200E_206C_200D_202D_200F_202B_200B_206E_200E_206C_200D_202C_206C_202E_206C_206C_200E_202A_200B_202B_200F_202E_202D_202A_200E_200B_206E_206B_206B_206E_200D_206C_206E_206F_206B_202B_206E_202E(), true); - int num; - try + string text = _customDeliveryController.CurrentNpcName ?? "Custom Delivery"; + using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.ParsedPurple)) { - _200E_202C_202D_206D_202B_206E_200E_206F_202D_206D_206F_202C_206A_200B_200C_202B_202E_206A_200F_202D_200E_200C_200E_206D_206C_202B_202B_202E_200D_206C_206E_206E_202D_206C_200B_200E_206E_200C_206E_206E_202E((ImU8String)UiThemeUtils.TruncateToWidth(_200C_202D_202E_206B_202C_202D_200B_202C_206F_200F_206E_202C_206C_206E_200C_206B_200B_206A_206C_202E_206A_202D_200E_206F_206D_200E_202A_202E_206C_202D_202E_202B_202D_206C_202E_200F_200D_202A_206D_202E_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1720434949), text), _202E_206F_202E_206B_200C_200C_202B_206C_202D_200F_206A_206E_200E_202C_206A_202D_206E_200D_200E_206C_200B_200C_206E_206E_206E_200F_206D_200D_206F_202E_206F_202C_202A_206D_206A_206C_202B_206E_206B_200C_202E().X)); + ImGui.TextUnformatted(UiThemeUtils.TruncateToWidth("Delivery: " + text, ImGui.GetContentRegionAvail().X)); } - finally - { - num = ((colorDisposable == null) ? (-1732181227) : (-1732181226)); - while (true) - { - int num2 = num; - int num3 = -1732181228; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1732181226; - break; - case 2: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable); - num = -1732181227; - break; - case 1: - goto end_IL_0076; - } - continue; - end_IL_0076: - break; - } - } - UiThemeUtils.WrappedTextColored(_200D_206D_206B_202E_202A_206B_202A_202E_200D_202D_200C_200C_206A_202A_202A_206D_206E_206D_200B_206E_206E_202E_202B_206F_206A_200F_200D_202B_200B_202D_202C_206A_202C_200E_206D_200E_206F_200B_200E_202B_202E(), _customDeliveryController.StatusLabel); + UiThemeUtils.WrappedTextColored(ImGuiColors.DalamudOrange, _customDeliveryController.StatusLabel); IList<string> remainingTaskNames = _customDeliveryController.GetRemainingTaskNames(); - num = ((remainingTaskNames.Count <= 0) ? 1144182412 : 1144182411); - int queueRemaining = default(int); - while (true) + if (remainingTaskNames.Count > 0) { - int num7 = num; - int num3 = 1144182409; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) + UiThemeUtils.WrappedTextColored(UiThemeUtils.DimTextColor, remainingTaskNames[0]); + } + if (!isMinimized) + { + int queueRemaining = _customDeliveryController.QueueRemaining; + if (queueRemaining > 0) { - case 1: - { - ImU8String imU8String = new ImU8String(19, 1); - imU8String.AppendFormatted(queueRemaining); - imU8String.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(444648158)); - _202E_200E_200E_202E_200D_206E_206F_206E_200C_206F_202C_206D_200D_200C_206F_206B_202B_206F_206F_200F_206D_200E_200B_200E_206D_200E_206F_202C_202A_206F_202D_206B_202C_202E_200F_206B_200E_206E_206D_202D_202E(ref UiThemeUtils.MutedTextColor, imU8String); - num = 1144182410; - break; - } - case 3: - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Stop, _206C_206C_206C_206D_200C_200E_202C_202C_206E_202C_202C_206B_200F_202A_200D_202C_200B_206E_206B_202D_206E_206F_200C_206B_200C_206B_206B_202D_202A_206E_202A_200B_200E_202C_200D_206F_200F_206D_206A_200F_202E())) ? 1144182414 : 1144182415); - break; - case 4: - queueRemaining = _customDeliveryController.QueueRemaining; - num = ((queueRemaining <= 0) ? 1144182410 : 1144182408); - break; - case 7: - return; - case 5: - num = (isMinimized ? 1144182410 : 1144182413); - break; - case 2: - UiThemeUtils.WrappedTextColored(UiThemeUtils.DimTextColor, remainingTaskNames[0]); - num = 1144182412; - break; - case 0: - num = 1144182411; - break; - case 6: - _customDeliveryController.Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-30410556)); - _movementController.Stop(); - num = 1144182414; - break; + ImU8String text2 = new ImU8String(19, 1); + text2.AppendFormatted(queueRemaining); + text2.AppendLiteral(" more NPC(s) queued"); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, text2); } } + if (UiThemeUtils.IconButton(FontAwesomeIcon.Stop, ImGui.GetFrameHeight())) + { + _customDeliveryController.Stop("UI stop"); + _movementController.Stop(); + } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawGatheringActive(bool isMinimized) { - string text = ResolveItemName(_gatheringController.CurrentItemId) ?? global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2134680438); - ImRaii.ColorDisposable colorDisposable = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Text, _200E_200F_202C_206B_200B_202B_206F_206B_206F_206D_206D_200B_206A_200E_200D_200C_206F_202B_202D_202A_206E_206C_202A_206D_206E_206A_200D_202D_206F_206C_206F_206D_200F_202A_200C_200F_200F_200C_202B_206A_202E(), true); - int num; - try + string text = ResolveItemName(_gatheringController.CurrentItemId) ?? "Gathering"; + using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.ParsedGold)) { - _200E_202C_202D_206D_202B_206E_200E_206F_202D_206D_206F_202C_206A_200B_200C_202B_202E_206A_200F_202D_200E_200C_200E_206D_206C_202B_202B_202E_200D_206C_206E_206E_202D_206C_200B_200E_206E_200C_206E_206E_202E((ImU8String)UiThemeUtils.TruncateToWidth(_200C_202D_202E_206B_202C_202D_200B_202C_206F_200F_206E_202C_206C_206E_200C_206B_200B_206A_206C_202E_206A_202D_200E_206F_206D_200E_202A_202E_206C_202D_202E_202B_202D_206C_202E_200F_200D_202A_206D_202E_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1818790475), text), _202E_206F_202E_206B_200C_200C_202B_206C_202D_200F_206A_206E_200E_202C_206A_202D_206E_200D_200E_206C_200B_200C_206E_206E_206E_200F_206D_200D_206F_202E_206F_202C_202A_206D_206A_206C_202B_206E_206B_200C_202E().X)); - } - finally - { - num = ((colorDisposable == null) ? 1566387616 : 1566387617); - while (true) - { - int num2 = num; - int num3 = 1566387616; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 1566387617; - break; - case 0: - goto end_IL_007c; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable); - num = 1566387616; - break; - } - continue; - end_IL_007c: - break; - } + ImGui.TextUnformatted(UiThemeUtils.TruncateToWidth("Gathering: " + text, ImGui.GetContentRegionAvail().X)); } IList<string> remainingTaskNames = _gatheringController.GetRemainingTaskNames(); - num = ((remainingTaskNames.Count <= 0) ? 1907929888 : 1907929890); - while (true) + if (remainingTaskNames.Count > 0) { - int num7 = num; - int num3 = 1907929895; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 3: - num = 1907929890; - break; - case 2: - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Stop, _206C_206C_206C_206D_200C_200E_202C_202C_206E_202C_202C_206B_200F_202A_200D_202C_200B_206E_206B_202D_206E_206F_200C_206B_200C_206B_206B_202D_202A_206E_202A_200B_200E_202C_200D_206F_200F_206D_206A_200F_202E())) ? 1907929889 : 1907929891); - break; - case 7: - num = (isMinimized ? 1907929893 : 1907929895); - break; - case 4: - _gatheringController.Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-767095672)); - _movementController.Stop(); - num = 1907929889; - break; - case 0: - num = ((remainingTaskNames.Count <= 1) ? 1907929893 : 1907929894); - break; - case 5: - UiThemeUtils.WrappedTextColored(UiThemeUtils.DimTextColor, remainingTaskNames[0]); - num = 1907929888; - break; - case 6: - return; - case 1: - { - ImU8String imU8String = new ImU8String(13, 1); - imU8String.AppendFormatted(remainingTaskNames.Count - 1); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1724826834)); - _202E_200E_200E_202E_200D_206E_206F_206E_200C_206F_202C_206D_200D_200C_206F_206B_202B_206F_206F_200F_206D_200E_200B_200E_206D_200E_206F_202C_202A_206F_202D_206B_202C_202E_200F_206B_200E_206E_206D_202D_202E(ref UiThemeUtils.MutedTextColor, imU8String); - num = 1907929893; - break; - } - } + UiThemeUtils.WrappedTextColored(UiThemeUtils.DimTextColor, remainingTaskNames[0]); + } + if (!isMinimized && remainingTaskNames.Count > 1) + { + ImU8String text2 = new ImU8String(13, 1); + text2.AppendFormatted(remainingTaskNames.Count - 1); + text2.AppendLiteral(" more task(s)"); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, text2); + } + if (UiThemeUtils.IconButton(FontAwesomeIcon.Stop, ImGui.GetFrameHeight())) + { + _gatheringController.Stop("UI stop"); + _movementController.Stop(); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawFishingActive(bool isMinimized) { - string text = ResolveItemName(_fishingController.CurrentItemId) ?? global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1984542455); - ImRaii.ColorDisposable colorDisposable = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Text, _202E_202C_200D_202A_202E_206F_206A_206A_200F_202D_206D_200F_206C_200B_200C_202B_206B_200D_206F_200F_202C_200B_202B_200C_206A_202A_202D_202E_206C_200B_206B_202A_206D_206D_202A_206B_206A_200E_200B_202C_202E(), true); - int num; - try + string text = ResolveItemName(_fishingController.CurrentItemId) ?? "Fishing"; + using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.ParsedBlue)) { - _200E_202C_202D_206D_202B_206E_200E_206F_202D_206D_206F_202C_206A_200B_200C_202B_202E_206A_200F_202D_200E_200C_200E_206D_206C_202B_202B_202E_200D_206C_206E_206E_202D_206C_200B_200E_206E_200C_206E_206E_202E((ImU8String)UiThemeUtils.TruncateToWidth(_200C_202D_202E_206B_202C_202D_200B_202C_206F_200F_206E_202C_206C_206E_200C_206B_200B_206A_206C_202E_206A_202D_200E_206F_206D_200E_202A_202E_206C_202D_202E_202B_202D_206C_202E_200F_200D_202A_206D_202E_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(522045064), text), _202E_206F_202E_206B_200C_200C_202B_206C_202D_200F_206A_206E_200E_202C_206A_202D_206E_200D_200E_206C_200B_200C_206E_206E_206E_200F_206D_200D_206F_202E_206F_202C_202A_206D_206A_206C_202B_206E_206B_200C_202E().X)); - } - finally - { - num = ((colorDisposable == null) ? 932326906 : 932326905); - while (true) - { - int num2 = num; - int num3 = 932326907; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 932326905; - break; - case 1: - goto end_IL_007c; - case 2: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable); - num = 932326906; - break; - } - continue; - end_IL_007c: - break; - } + ImGui.TextUnformatted(UiThemeUtils.TruncateToWidth("Fishing: " + text, ImGui.GetContentRegionAvail().X)); } IList<string> remainingTaskNames = _fishingController.GetRemainingTaskNames(); - num = ((remainingTaskNames.Count <= 0) ? (-649755039) : (-649755035)); - while (true) + if (remainingTaskNames.Count > 0) { - int num7 = num; - int num3 = -649755037; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - return; - case 5: - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Stop, _206C_206C_206C_206D_200C_200E_202C_202C_206E_202C_202C_206B_200F_202A_200D_202C_200B_206E_206B_202D_206E_206F_200C_206B_200C_206B_206B_202D_202A_206E_202A_200B_200E_202C_200D_206F_200F_206D_206A_200F_202E())) ? (-649755033) : (-649755038)); - break; - case 1: - _fishingController.Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-271672975)); - _movementController.Stop(); - num = -649755033; - break; - case 3: - num = -649755035; - break; - case 6: - UiThemeUtils.WrappedTextColored(UiThemeUtils.DimTextColor, remainingTaskNames[0]); - num = -649755039; - break; - case 2: - num = (isMinimized ? (-649755034) : (-649755037)); - break; - case 0: - { - string text2 = _fishingController.State.ToString(); - _202E_200E_200E_202E_200D_206E_206F_206E_200C_206F_202C_206D_200D_200C_206F_206B_202B_206F_206F_200F_206D_200E_200B_200E_206D_200E_206F_202C_202A_206F_202D_206B_202C_202E_200F_206B_200E_206E_206D_202D_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)text2); - num = -649755034; - break; - } - } + UiThemeUtils.WrappedTextColored(UiThemeUtils.DimTextColor, remainingTaskNames[0]); + } + if (!isMinimized) + { + string text2 = _fishingController.State.ToString(); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, text2); + } + if (UiThemeUtils.IconButton(FontAwesomeIcon.Stop, ImGui.GetFrameHeight())) + { + _fishingController.Stop("UI stop"); + _movementController.Stop(); } } private string? ResolveItemName(uint? itemId) { - int num = (itemId.HasValue ? 1749616264 : 1749616270); - Item row = default(Item); - while (true) + if (!itemId.HasValue) { - int num2 = num; - int num3 = 1749616268; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return row.Name.ToString(); - case 4: - num = ((!_dataManager.GetExcelSheet<Item>().TryGetRow(itemId.Value, out row)) ? 1749616269 : 1749616271); - break; - case 2: - return null; - case 0: - num = 1749616270; - break; - case 1: - return null; - } + return null; } + if (_dataManager.GetExcelSheet<Item>().TryGetRow(itemId.Value, out var row)) + { + return row.Name.ToString(); + } + return null; } private void StopAllControllers(string reason) @@ -754,556 +295,124 @@ internal sealed class ActiveQuestComponent _attunementController.Stop(reason); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawStopConditionTooltip() { - int num = ((_configuration.Stop.Conditions.Count != 0) ? 866326740 : 866326741); - while (true) + if ((_configuration.Stop.Conditions.Count == 0 && _questController.SessionConditions.Count == 0) || !ImGui.IsItemHovered()) { - int num2 = num; - int num3 = 866326740; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = 866326741; - break; - case 2: - return; - case 0: - num = (_200E_200D_200B_200F_206B_200D_206F_200B_202C_206B_202A_202C_206F_206D_202D_206C_200C_206A_200C_200C_202C_202E_206A_206D_202E_200F_206D_202B_200F_206F_206C_206E_206C_200E_202D_206F_206E_200F_202E_202E() ? 866326736 : 866326742); - break; - case 1: - num = ((_questController.SessionConditions.Count == 0) ? 866326742 : 866326740); - break; - case 4: - { - _202C_206D_202C_206B_206F_200C_200E_206A_202C_200D_200D_206F_206B_200C_200D_202B_206D_200E_200D_206C_200D_200B_200C_200C_200D_206C_202B_202A_202C_202C_202B_202E_206A_202C_206F_206B_202D_200D_202D_206C_202E(); - _200E_202C_202D_206D_202B_206E_200E_206F_202D_206D_206F_202C_206A_200B_200C_202B_202E_206A_200F_202D_200E_200C_200E_206D_206C_202B_202B_202E_200D_206C_206E_206E_202D_206C_200B_200E_206E_200C_206E_206E_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1075846850)); - using (List<StopCondition>.Enumerator enumerator = _configuration.Stop.Conditions.GetEnumerator()) - { - num = -48425608; - while (true) - { - int num5 = num; - num3 = -48425607; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 3: - num = -48425608; - break; - case 2: - { - StopCondition current = enumerator.Current; - ImU8String imU8String = new ImU8String(3, 2); - imU8String.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-999106428)); - imU8String.AppendFormatted(current.Mode); - imU8String.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-900750902)); - imU8String.AppendFormatted(current.GetDescription()); - _206A_200D_200E_200B_206C_206E_202B_200B_206D_206F_202E_206A_202A_200F_206A_200D_200B_206C_206A_202C_206A_202C_206A_200C_202C_200E_200B_202C_206C_206B_200E_206F_206E_202C_202B_202C_202C_200B_202C_202A_202E(imU8String); - num = -48425608; - break; - } - case 1: - num = (enumerator.MoveNext() ? (-48425605) : (-48425607)); - break; - case 0: - goto end_IL_00fd; - } - continue; - end_IL_00fd: - break; - } - } - using (List<StopCondition>.Enumerator enumerator = _questController.SessionConditions.GetEnumerator()) - { - num = 538641667; - while (true) - { - int num8 = num; - num3 = 538641664; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 538641667; - break; - case 3: - num = (enumerator.MoveNext() ? 538641665 : 538641664); - break; - case 1: - { - StopCondition current2 = enumerator.Current; - ImU8String imU8String2 = new ImU8String(3, 2); - imU8String2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1118615183)); - imU8String2.AppendFormatted(current2.Mode); - imU8String2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-900750902)); - imU8String2.AppendFormatted(current2.GetDescription()); - _206A_200D_200E_200B_206C_206E_202B_200B_206D_206F_202E_206A_202A_200F_206A_200D_200B_206C_206A_202C_206A_202C_206A_200C_202C_200E_200B_202C_206C_206B_200E_206F_206E_202C_202B_202C_202C_200B_202C_202A_202E(imU8String2); - num = 538641667; - break; - } - case 0: - goto end_IL_01ed; - } - continue; - end_IL_01ed: - break; - } - } - _206E_206C_200F_202D_206C_200C_206B_200F_206D_206A_202C_206C_206D_206F_200D_202C_202E_202E_206E_200D_206E_202A_200E_206D_202C_202D_200F_206B_206C_200E_206F_202A_206A_200D_202A_206D_206A_200B_200E_202B_202E(); - return; - } - } + return; } + ImGui.BeginTooltip(); + ImGui.TextUnformatted("Stop conditions:"); + foreach (StopCondition condition in _configuration.Stop.Conditions) + { + ImU8String text = new ImU8String(3, 2); + text.AppendLiteral("["); + text.AppendFormatted(condition.Mode); + text.AppendLiteral("] "); + text.AppendFormatted(condition.GetDescription()); + ImGui.BulletText(text); + } + foreach (StopCondition sessionCondition in _questController.SessionConditions) + { + ImU8String text2 = new ImU8String(3, 2); + text2.AppendLiteral("["); + text2.AppendFormatted(sessionCondition.Mode); + text2.AppendLiteral("] "); + text2.AppendFormatted(sessionCondition.GetDescription()); + ImGui.BulletText(text2); + } + ImGui.EndTooltip(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawMinimizedQuest(QuestController.QuestProgress currentQuest) { QuestController.QuestProgress startedQuest = _questController.StartedQuest; - int num = ((startedQuest != null) ? 621647736 : 621647737); - int num7; - float num9 = default(float); - while (true) + string text = ((startedQuest != null) ? Shorten(startedQuest.Quest.Info.Name) : Shorten(currentQuest.Quest.Info.Name)); + float cursorPosX = ImGui.GetCursorPosX(); + float x = ImGui.GetContentRegionAvail().X; + float frameHeight = ImGui.GetFrameHeight(); + float x2 = ImGui.GetStyle().ItemSpacing.X; + float num = frameHeight * 4f + x2 * 3f; + ImGui.TextColored(in UiThemeUtils.AccentColor, UiThemeUtils.TruncateToWidth(text, x - num - x2)); + ImGui.SameLine(cursorPosX + x - num); + using (ImRaii.Disabled(_questController.IsRunning || _gatheringController.IsRunning || _fishingController.IsRunning || _fateController.IsRunning || _seasonalDutyController.IsRunning || _customDeliveryController.IsRunning || _attunementController.IsRunning)) { - int num2 = num; - int num3 = 621647741; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - string text; - string text2; - float num8; - float x; - float x2; - float num10; - switch (num5 - (num6 + num6)) + using (ImRaii.PushColor(ImGuiCol.Button, UiThemeUtils.PlayButtonColor)) { - default: - continue; - case 7: - num = (_gatheringController.IsRunning ? 621647743 : 621647733); - continue; - case 4: - text = Shorten(currentQuest.Quest.Info.Name); - goto IL_019f; - case 8: - num = (_fishingController.IsRunning ? 621647743 : 621647740); - continue; - case 0: - num = 621647737; - continue; - case 3: - num = (_customDeliveryController.IsRunning ? 621647743 : 621647732); - continue; - case 1: - num = (_fateController.IsRunning ? 621647743 : 621647739); - continue; - case 6: - num = (_seasonalDutyController.IsRunning ? 621647743 : 621647742); - continue; - case 9: - num7 = (_attunementController.IsRunning ? 1 : 0); - break; - case 5: - text = Shorten(startedQuest.Quest.Info.Name); - goto IL_019f; - case 2: + using (ImRaii.PushColor(ImGuiCol.ButtonHovered, UiThemeUtils.PlayButtonHover)) { - num7 = 1; - break; - } - IL_019f: - text2 = text; - num8 = _206C_206E_200C_202A_200C_202B_200E_206D_206F_200B_202C_202C_200C_206D_202A_200D_206A_206D_200F_202C_206A_200B_202B_200F_202C_202D_206E_206F_200D_206C_206B_206E_206A_206E_202C_206C_200F_206B_200C_202A_202E(); - x = _202E_206F_202E_206B_200C_200C_202B_206C_202D_200F_206A_206E_200E_202C_206A_202D_206E_200D_200E_206C_200B_200C_206E_206E_206E_200F_206D_200D_206F_202E_206F_202C_202A_206D_206A_206C_202B_206E_206B_200C_202E().X; - num9 = _206C_206C_206C_206D_200C_200E_202C_202C_206E_202C_202C_206B_200F_202A_200D_202C_200B_206E_206B_202D_206E_206F_200C_206B_200C_206B_206B_202D_202A_206E_202A_200B_200E_202C_200D_206F_200F_206D_206A_200F_202E(); - x2 = _202C_206C_200C_202E_206C_200B_200F_206D_206E_206F_202D_200F_200B_206F_202C_202D_202E_200F_206B_200E_200C_200F_202D_200C_200F_202E_206F_206D_206B_206C_202A_206F_202B_200D_202E_200D_206C_206C_202A_206B_202E().ItemSpacing.X; - num10 = num9 * 4f + x2 * 3f; - _202E_200E_200E_202E_200D_206E_206F_206E_200C_206F_202C_206D_200D_200C_206F_206B_202B_206F_206F_200F_206D_200E_200B_200E_206D_200E_206F_202C_202A_206F_202D_206B_202C_202E_200F_206B_200E_206E_206D_202D_202E(ref UiThemeUtils.AccentColor, (ImU8String)UiThemeUtils.TruncateToWidth(text2, x - num10 - x2)); - _202C_202A_202E_200C_202C_206A_200D_200C_206A_206D_206F_200C_206E_200B_200D_202A_202C_200E_202A_206A_200F_206E_202C_202E_206A_202A_202B_200B_206A_206C_200C_202C_206C_206B_202D_202E_202E_200C_206F_202A_202E(num8 + x - num10); - num = (_questController.IsRunning ? 621647743 : 621647738); - continue; - } - break; - } - ImRaii.DisabledDisposable disabledDisposable = _200F_200C_200D_206B_200C_202E_206C_206C_206B_206B_206B_200F_206F_202B_200C_200E_206D_206C_206E_202C_202B_202B_206E_206F_206E_200D_206D_200E_206F_206F_202B_202A_200D_206C_202D_202E_202C_202E_202E_206D_202E((byte)num7 != 0); - ImRaii.ColorDisposable colorDisposable; - try - { - colorDisposable = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Button, UiThemeUtils.PlayButtonColor, true); - try - { - ImRaii.ColorDisposable colorDisposable2 = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.ButtonHovered, UiThemeUtils.PlayButtonHover, true); - try - { - ImRaii.ColorDisposable colorDisposable3 = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.ButtonActive, UiThemeUtils.PlayButtonActive, true); - try + using (ImRaii.PushColor(ImGuiCol.ButtonActive, UiThemeUtils.PlayButtonActive)) { - ImRaii.ColorDisposable colorDisposable4 = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Text, UiThemeUtils.PlayButtonText, true); - try + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.PlayButtonText)) { - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Play, num9)) ? 1002588221 : 1002588222); - while (true) + if (UiThemeUtils.IconButton(FontAwesomeIcon.Play, frameHeight)) { - int num11 = num; - int num3 = 1002588221; - int num4 = num11; - switch ((num4 | num3) - (num4 & num3)) + if (_questFunctions.GetQuestProgressInfo(currentQuest.Quest.Id) == null) { - case 2: - num = 1002588222; - break; - case 1: - _questController.Start(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1809965159)); - num = 1002588221; - break; - case 4: _questController.SetNextQuest(currentQuest.Quest); - num = 1002588220; - break; - case 3: - num = ((_questFunctions.GetQuestProgressInfo(currentQuest.Quest.Id) != null) ? 1002588220 : 1002588217); - break; - case 0: - goto end_IL_0296; } - continue; - end_IL_0296: - break; - } - } - finally - { - num = ((colorDisposable4 == null) ? 1021762009 : 1021762010); - while (true) - { - int num12 = num; - int num3 = 1021762011; - int num4 = num12; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1021762010; - break; - case 2: - goto end_IL_036b; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable4); - num = 1021762009; - break; - } - continue; - end_IL_036b: - break; + _questController.Start("UI start"); } } } - finally - { - num = ((colorDisposable3 == null) ? 2028192270 : 2028192269); - while (true) - { - int num13 = num; - int num3 = 2028192271; - int num4 = num13; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 2028192269; - break; - case 1: - goto end_IL_03d6; - case 2: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable3); - num = 2028192270; - break; - } - continue; - end_IL_03d6: - break; - } - } - } - finally - { - num = ((colorDisposable2 == null) ? 1950199973 : 1950199972); - while (true) - { - int num14 = num; - int num3 = 1950199973; - int num4 = num14; - int num15 = num4 + num3; - int num16 = num4 & num3; - switch (num15 - (num16 + num16)) - { - case 0: - goto end_IL_0441; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable2); - num = 1950199973; - break; - case 2: - num = 1950199972; - break; - } - continue; - end_IL_0441: - break; - } - } - } - finally - { - num = ((colorDisposable == null) ? (-1939629864) : (-1939629863)); - while (true) - { - int num17 = num; - int num3 = -1939629864; - int num4 = num17; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1939629863; - break; - case 0: - goto end_IL_04ae; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable); - num = -1939629864; - break; - } - continue; - end_IL_04ae: - break; } } } - finally + ImGui.SameLine(); + if (UiThemeUtils.IconButton(FontAwesomeIcon.StepForward, frameHeight)) { - num = ((disabledDisposable == null) ? (-1539532021) : (-1539532022)); - while (true) + _questController.StartSingleStep("UI step"); + } + ImGui.SameLine(); + if (UiThemeUtils.IconButton(FontAwesomeIcon.Stop, frameHeight)) + { + StopAllControllers("UI stop"); + } + ImGui.SameLine(); + if (UiThemeUtils.IconButton(FontAwesomeIcon.Forward, frameHeight)) + { + _movementController.Stop(); + _questController.Skip(currentQuest.Quest.Id, currentQuest.Sequence); + } + int num2 = currentQuest.Quest.FindSequence(currentQuest.Sequence)?.Steps.Count ?? 0; + float fraction = ((num2 > 0) ? ((float)currentQuest.Step / (float)num2) : 0f); + using (UiThemeUtils.PushProgressBarColors()) + { + ImGui.ProgressBar(fraction, new Vector2(-1f, 3f), string.Empty); + } + int value = Math.Min(currentQuest.Step + 1, Math.Max(num2, 1)); + string text2 = null; + if (_combatController.IsRunning) + { + text2 = "In Combat"; + } + else + { + string currentTaskState = _questController.CurrentTaskState; + if (currentTaskState != null) { - int num18 = num; - int num3 = -1539532021; - int num4 = num18; - int num19 = num4 + num3; - int num20 = num4 & num3; - switch (num19 - (num20 + num20)) - { - case 0: - goto end_IL_0519; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)disabledDisposable); - num = -1539532021; - break; - case 2: - num = -1539532022; - break; - } - continue; - end_IL_0519: - break; + text2 = currentTaskState; + } + else if (!string.IsNullOrEmpty(_questController.DebugState)) + { + text2 = _questController.DebugState; } } - _202B_202D_200D_202A_200F_206A_202A_202B_206E_206F_200D_200D_200B_200C_200B_200F_206D_202C_206F_200E_200C_200B_206B_206E_202A_202A_206F_202B_202B_200B_200C_206D_206A_206C_202D_200B_206D_206D_200E_202B_202E(); - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.StepForward, num9)) ? (-1721937345) : (-1721937346)); - int num25 = default(int); - float num24; - while (true) + string text3 = ((text2 != null) ? $"Step {value}/{num2} - {text2}" : $"Step {value}/{num2}"); + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.DimTextColor)) { - int num21 = num; - int num3 = -1721937349; - int num4 = num21; - int num22 = num4 + num3; - int num23 = num4 & num3; - switch (num22 - (num23 + num23)) - { - default: - continue; - case 3: - { - QuestSequence? questSequence = currentQuest.Quest.FindSequence(currentQuest.Sequence); - num25 = ((questSequence != null) ? _202E_202E_202A_202B_206A_206B_202C_202E_206F_200B_206F_206D_206A_200B_206E_202C_206F_206F_200B_202A_206C_206A_206A_206B_202D_202C_200F_206F_206D_200D_206C_200B_202C_202C_200F_206C_200B_202E_200B_202B_202E(questSequence).Count : 0); - num = ((num25 > 0) ? (-1721937357) : (-1721937351)); - continue; - } - case 5: - _questController.StartSingleStep(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-418446762)); - num = -1721937345; - continue; - case 6: - _202B_202D_200D_202A_200F_206A_202A_202B_206E_206F_200D_200D_200B_200C_200B_200F_206D_202C_206F_200E_200C_200B_206B_206E_202A_202A_206F_202B_202B_200B_200C_206D_206A_206C_202D_200B_206D_206D_200E_202B_202E(); - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Forward, num9)) ? (-1721937352) : (-1721937350)); - continue; - case 4: - _202B_202D_200D_202A_200F_206A_202A_202B_206E_206F_200D_200D_200B_200C_200B_200F_206D_202C_206F_200E_200C_200B_206B_206E_202A_202A_206F_202B_202B_200B_200C_206D_206A_206C_202D_200B_206D_206D_200E_202B_202E(); - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Stop, num9)) ? (-1721937347) : (-1721937348)); - continue; - case 2: - num24 = 0f; - break; - case 0: - num = -1721937346; - continue; - case 1: - _movementController.Stop(); - _questController.Skip(currentQuest.Quest.Id, currentQuest.Sequence); - num = -1721937352; - continue; - case 7: - StopAllControllers(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1993005243)); - num = -1721937347; - continue; - case 8: - num24 = (float)currentQuest.Step / (float)num25; - break; - } - break; - } - float num26 = num24; - ImRaii.ColorDisposable colorDisposable5 = UiThemeUtils.PushProgressBarColors(); - try - { - _206E_202E_200B_200E_206B_202D_200E_200E_206E_206E_200C_200B_206F_202C_200B_206C_200C_206A_200E_202A_202C_206D_200B_206D_202A_202D_202A_202B_200C_200D_206E_206E_202C_200C_200C_206E_200E_200B_206C_200F_202E(num26, new Vector2(-1f, 3f), (ImU8String)string.Empty); - } - finally - { - num = ((colorDisposable5 == null) ? 87944784 : 87944785); - while (true) - { - int num27 = num; - int num3 = 87944784; - int num4 = num27; - int num28 = num4 + num3; - int num29 = num4 & num3; - switch (num28 - (num29 + num29)) - { - case 0: - goto end_IL_0768; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable5); - num = 87944784; - break; - case 2: - num = 87944785; - break; - } - continue; - end_IL_0768: - break; - } - } - int value = _202B_200E_206D_206F_202A_206B_202B_202E_202E_206D_206A_206A_200C_200E_206B_206F_200E_200C_202A_206A_206B_206C_200E_206F_206F_206A_200B_202D_202E_202B_200B_206F_202D_202D_206A_206A_200C_206F_200F_206B_202E(currentQuest.Step + 1, _200C_206F_202B_206C_202D_206E_206E_206E_206A_206D_200D_206E_202C_202E_206C_200C_206D_200C_200B_206B_206C_202B_206B_202D_202C_200E_200E_202C_206F_206B_200E_202D_206A_206E_206A_202E_202E_206B_206D_202A_202E(num25, 1)); - string text3 = null; - num = ((!_combatController.IsRunning) ? (-984884916) : (-984884915)); - string currentTaskState = default(string); - string text4; - while (true) - { - int num30 = num; - int num3 = -984884916; - int num4 = num30; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 2: - num = ((text3 != null) ? (-984884919) : (-984884917)); - continue; - case 4: - text3 = currentTaskState; - num = -984884914; - continue; - case 6: - text3 = _questController.DebugState; - num = -984884914; - continue; - case 7: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(6, 2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2121328215)); - defaultInterpolatedStringHandler2.AppendFormatted(value); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-70733513)); - defaultInterpolatedStringHandler2.AppendFormatted(num25); - text4 = defaultInterpolatedStringHandler2.ToStringAndClear(); - break; - } - case 3: - num = -984884915; - continue; - case 8: - num = (_206B_200B_200F_202E_200C_202A_200B_206A_202B_206F_202B_206E_202C_206F_200B_206B_200F_200F_206D_206B_202A_202A_206A_206A_200C_200C_200E_200B_200B_202C_202D_206B_206C_200F_202B_206F_200F_200E_200C_202E(_questController.DebugState) ? (-984884914) : (-984884918)); - continue; - case 0: - currentTaskState = _questController.CurrentTaskState; - num = ((currentTaskState == null) ? (-984884924) : (-984884920)); - continue; - case 1: - text3 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2013597711); - num = -984884914; - continue; - case 5: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(9, 3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1115395302)); - defaultInterpolatedStringHandler.AppendFormatted(value); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1680133376)); - defaultInterpolatedStringHandler.AppendFormatted(num25); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1884306162)); - defaultInterpolatedStringHandler.AppendFormatted(text3); - text4 = defaultInterpolatedStringHandler.ToStringAndClear(); - break; - } - } - break; - } - string text5 = text4; - colorDisposable = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Text, UiThemeUtils.DimTextColor, true); - try - { - UiThemeUtils.WrappedText(text5); - } - finally - { - num = ((colorDisposable == null) ? (-969358061) : (-969358064)); - while (true) - { - int num31 = num; - int num3 = -969358063; - int num4 = num31; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -969358064; - break; - case 2: - goto end_IL_09f0; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable); - num = -969358061; - break; - } - continue; - end_IL_09f0: - break; - } + UiThemeUtils.WrappedText(text3); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawNoActiveQuest(bool isMinimized) { (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple = UiThemeUtils.BeginCard(); Vector2 item = tuple.ContentStartPos; float item2 = tuple.AvailableWidth; ImDrawListPtr item3 = tuple.DrawList; - float num = _206C_206E_200C_202A_200C_202B_200E_206D_206F_200B_202C_202C_200C_206D_202A_200D_206A_206D_200F_202C_206A_200B_202B_200F_202C_202D_206E_206F_200D_206C_206B_206E_206A_206E_202C_206C_200F_206B_200C_202A_202E(); - float num2 = _202E_206F_202E_206B_200C_200C_202B_206C_202D_200F_206A_206E_200E_202C_206A_202D_206E_200D_200E_206C_200B_200C_206E_206E_206E_200F_206D_200D_206F_202E_206F_202C_202A_206D_206A_206C_202B_206E_206B_200C_202E().X - 12f; + float cursorPosX = ImGui.GetCursorPosX(); + float num = ImGui.GetContentRegionAvail().X - 12f; try { (bool isLevelLocked, int levelsNeeded, int requiredLevel, string? questName) msqLevelLockInfo = _questFunctions.GetMsqLevelLockInfo(); @@ -1311,2420 +420,497 @@ internal sealed class ActiveQuestComponent int item5 = msqLevelLockInfo.levelsNeeded; int item6 = msqLevelLockInfo.requiredLevel; string item7 = msqLevelLockInfo.questName; - IPlayerCharacter playerCharacter = _206C_202A_200C_202A_206A_200C_200F_200C_202E_206A_206A_202E_200E_202B_202D_202B_206B_206A_200D_200F_200F_206B_202A_202C_206B_202D_202D_200B_200D_202B_202B_200C_200C_202B_200F_200B_200B_200B_202E_206C_202E(_objectTable); - int currentPlayerLevel = ((playerCharacter != null) ? _202B_200B_200F_200F_202A_206C_206D_206B_200F_200D_206A_202C_206C_200B_206A_202E_200D_202D_202E_200F_200B_206E_206E_200F_200C_206D_206E_206A_200E_206F_206B_202A_206A_206D_206F_202D_202B_202C_200E_202B_202E((ICharacter)playerCharacter) : 0); - int num3 = ((!item4) ? (-1477048887) : (-1477048886)); - while (true) + int currentPlayerLevel = _objectTable.LocalPlayer?.Level ?? 0; + if (item4 && _autoDutyIpc.IsConfiguredToRunLevelingMode(currentPlayerLevel) && item7 != null) { - int num4 = num3; - int num5 = -1477048888; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) + ImGui.PushTextWrapPos(cursorPosX + num); + Vector4 col = ImGuiColors.DalamudYellow; + ImU8String text = new ImU8String(22, 2); + text.AppendLiteral("MSQ '"); + text.AppendFormatted(item7); + text.AppendLiteral("' requires level "); + text.AppendFormatted(item6); + ImGui.TextColored(in col, text); + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.DimTextColor)) { - default: - continue; - case 3: - num3 = -1477048886; - continue; - case 2: - if (_autoDutyIpc.IsConfiguredToRunLevelingMode(currentPlayerLevel)) - { - num3 = -1477048888; - continue; - } - goto case 1; - case 0: - if (item7 != null) - { - num3 = -1477048884; - continue; - } - goto case 1; - case 4: - { - _200B_206B_200E_202A_206A_200F_200D_206D_200D_202E_200E_206E_206D_200D_200E_202B_206A_200D_206E_206A_206C_206A_206B_200F_206F_200D_206B_202D_202B_200D_206E_206A_200D_200B_202D_206A_202E_206E_200F_200C_202E(num + num2); - Vector4 vector = _202A_206C_206E_206E_206D_206D_202A_200F_200E_206E_200C_200B_202B_200C_200F_200D_202D_200E_202C_200C_206C_200E_200C_202A_206F_202E_200E_200E_200F_202D_206F_206E_206A_202A_202D_200C_200E_202D_202A_202A_202E(); - ImU8String imU8String = new ImU8String(22, 2); - imU8String.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1214630592)); - imU8String.AppendFormatted(item7); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(224066110)); - imU8String.AppendFormatted(item6); - _202E_200E_200E_202E_200D_206E_206F_206E_200C_206F_202C_206D_200D_200C_206F_206B_202B_206F_206F_200F_206D_200E_200B_200E_206D_200E_206F_202C_202A_206F_202D_206B_202C_202E_200F_206B_200E_206E_206D_202D_202E(ref vector, imU8String); - ImRaii.ColorDisposable colorDisposable = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Text, UiThemeUtils.DimTextColor, true); - try - { - ImU8String imU8String2 = new ImU8String(57, 2); - imU8String2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2048536778)); - imU8String2.AppendFormatted(item5); - imU8String2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(75652545)); - imU8String2.AppendFormatted((item5 == 1) ? string.Empty : global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1550583417)); - imU8String2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1722172452)); - _200E_202C_202D_206D_202B_206E_200E_206F_202D_206D_206F_202C_206A_200B_200C_202B_202E_206A_200F_202D_200E_200C_200E_206D_206C_202B_202B_202E_200D_206C_206E_206E_202D_206C_200B_200E_206E_200C_206E_206E_202E(imU8String2); - } - finally - { - num3 = ((colorDisposable == null) ? 440487731 : 440487728); - while (true) - { - int num9 = num3; - num5 = 440487729; - num6 = num9; - switch ((num6 | num5) - (num6 & num5)) - { - case 0: - num3 = 440487728; - break; - case 2: - goto end_IL_0217; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable); - num3 = 440487731; - break; - } - continue; - end_IL_0217: - break; - } - } - _206D_202B_202C_206F_206F_200B_206F_206F_202D_200F_202C_206D_202E_206A_202B_202C_202D_202D_200F_202E_206C_202E_206E_200E_202E_206C_206F_202A_202B_202B_206B_200B_200D_200B_200B_202D_206C_202B_206B_202C_202E(); - float size = _206C_206C_206C_206D_200C_200E_202C_202C_206E_202C_202C_206B_200F_202A_200D_202C_200B_206E_206B_202D_206E_206F_200C_206B_200C_206B_206B_202D_202A_206E_202A_200B_200E_202C_200D_206F_200F_206D_206A_200F_202E(); - num3 = (_questController.IsRunning ? 1877422138 : 1877422134); - int num11; - while (true) - { - int num10 = num3; - num5 = 1877422142; - num6 = num10; - switch ((num6 | num5) - (num6 & num5)) - { - default: - continue; - case 3: - num3 = (_seasonalDutyController.IsRunning ? 1877422138 : 1877422143); - continue; - case 7: - num3 = (_fishingController.IsRunning ? 1877422138 : 1877422139); - continue; - case 8: - num3 = (_gatheringController.IsRunning ? 1877422138 : 1877422137); - continue; - case 1: - num3 = (_customDeliveryController.IsRunning ? 1877422138 : 1877422136); - continue; - case 2: - num3 = 1877422134; - continue; - case 0: - num11 = ((!_autoDutyIpc.IsStopped()) ? 1 : 0); - break; - case 5: - num3 = (_fateController.IsRunning ? 1877422138 : 1877422141); - continue; - case 6: - num3 = (_attunementController.IsRunning ? 1877422138 : 1877422142); - continue; - case 4: - num11 = 1; - break; - } - break; - } - ImRaii.DisabledDisposable disabledDisposable = _200F_200C_200D_206B_200C_202E_206C_206C_206B_206B_206B_200F_206F_202B_200C_200E_206D_206C_206E_202C_202B_202B_206E_206F_206E_200D_206D_200E_206F_206F_202B_202A_200D_206C_202D_202E_202C_202E_202E_206D_202E((byte)num11 != 0); - try - { - colorDisposable = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Button, UiThemeUtils.PlayButtonColor, true); - try - { - ImRaii.ColorDisposable colorDisposable2 = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.ButtonHovered, UiThemeUtils.PlayButtonHover, true); - try - { - ImRaii.ColorDisposable colorDisposable3 = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.ButtonActive, UiThemeUtils.PlayButtonActive, true); - try - { - ImRaii.ColorDisposable colorDisposable4 = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Text, UiThemeUtils.PlayButtonText, true); - try - { - num3 = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Play, size)) ? (-587433458) : (-587433460)); - while (true) - { - int num12 = num3; - num5 = -587433459; - num6 = num12; - switch ((num6 | num5) - (num6 & num5)) - { - case 2: - num3 = -587433460; - break; - case 0: - _202C_206E_206F_202D_202C_202B_202E_200C_200D_206B_206B_202E_206F_206F_206A_200B_202A_200E_206A_200B_202A_200C_200C_202C_202C_200C_206B_206F_200E_200F_200E_200E_206C_202A_202E_200C_206A_206A_200E_206F_202E(_chatGui, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(43094195), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); - num3 = -587433458; - break; - case 1: - _202E_202E_202D_200C_200B_200D_202C_206D_200C_202C_200B_202B_200F_202E_202A_206C_202B_202E_206D_200C_206D_202C_202A_206B_200E_202A_202C_206A_206F_202B_206D_202D_202D_202B_202E_206B_206B_202A_202D_206C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1053651217), Array.Empty<object>()); - num3 = ((!_autoDutyIpc.StartLevelingMode()) ? (-587433459) : (-587433463)); - break; - case 4: - { - IChatGui chatGui = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(59, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1817016272)); - defaultInterpolatedStringHandler.AppendFormatted(item6); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1066195627)); - defaultInterpolatedStringHandler.AppendFormatted(item7); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1262906679)); - _206B_206C_206C_200D_206B_206D_200B_206A_206E_206A_202C_206A_206B_206D_206B_206F_206C_206B_206B_200F_206F_202B_200B_202E_206E_200B_200D_206D_206A_202B_206C_200E_200E_206C_202E_206B_200D_200F_206E_206A_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); - num3 = -587433458; - break; - } - case 3: - goto end_IL_0462; - } - continue; - end_IL_0462: - break; - } - } - finally - { - num3 = ((colorDisposable4 == null) ? 1067192071 : 1067192068); - while (true) - { - int num13 = num3; - num5 = 1067192069; - num6 = num13; - switch ((num6 | num5) - (num6 & num5)) - { - case 2: - goto end_IL_05be; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable4); - num3 = 1067192071; - break; - case 0: - num3 = 1067192068; - break; - } - continue; - end_IL_05be: - break; - } - } - } - finally - { - num3 = ((colorDisposable3 == null) ? (-38333506) : (-38333505)); - while (true) - { - int num14 = num3; - num5 = -38333506; - num6 = num14; - int num15 = num6 + num5; - int num16 = num6 & num5; - switch (num15 - (num16 + num16)) - { - case 2: - num3 = -38333505; - break; - case 0: - goto end_IL_062e; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable3); - num3 = -38333506; - break; - } - continue; - end_IL_062e: - break; - } - } - } - finally - { - num3 = ((colorDisposable2 == null) ? (-205032898) : (-205032897)); - while (true) - { - int num17 = num3; - num5 = -205032898; - num6 = num17; - int num18 = num6 + num5; - int num19 = num6 & num5; - switch (num18 - (num19 + num19)) - { - case 2: - num3 = -205032897; - break; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable2); - num3 = -205032898; - break; - case 0: - goto end_IL_06a0; - } - continue; - end_IL_06a0: - break; - } - } - } - finally - { - num3 = ((colorDisposable == null) ? 1110655560 : 1110655563); - while (true) - { - int num20 = num3; - num5 = 1110655561; - num6 = num20; - switch ((num6 | num5) - (num6 & num5)) - { - case 1: - goto end_IL_0712; - case 2: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable); - num3 = 1110655560; - break; - case 0: - num3 = 1110655563; - break; - } - continue; - end_IL_0712: - break; - } - } - } - finally - { - num3 = ((disabledDisposable == null) ? 1917512739 : 1917512736); - while (true) - { - int num21 = num3; - num5 = 1917512738; - num6 = num21; - int num22 = num6 + num5; - int num23 = num6 & num5; - switch (num22 - (num23 + num23)) - { - case 0: - num3 = 1917512736; - break; - case 2: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)disabledDisposable); - num3 = 1917512739; - break; - case 1: - goto end_IL_0782; - } - continue; - end_IL_0782: - break; - } - } - if (!_202A_200B_206B_202D_200D_206D_200B_200E_200C_200D_202D_200C_206B_206A_202C_206E_206E_200F_206B_200D_202A_202B_202B_202D_200B_200E_202E_206A_200C_206C_200F_200F_200B_200F_202C_200B_200F_202C_206B_200D_202E(ImGuiHoveredFlags.AllowWhenDisabled)) - { - break; - } - num3 = -1019970739; - while (true) - { - int num24 = num3; - num5 = -1019970740; - num6 = num24; - int num25 = num6 + num5; - int num26 = num6 & num5; - switch (num25 - (num26 + num26)) - { - default: - continue; - case 2: - num3 = -1019970739; - continue; - case 1: - num3 = (_autoDutyIpc.IsStopped() ? (-1019970737) : (-1019970740)); - continue; - case 0: - _206F_202E_202D_200E_200C_200E_200D_206C_206E_200E_202E_206F_200E_202E_206D_200C_206B_200F_206F_206E_206F_202E_202A_206D_202C_202B_206A_206A_206C_200D_200F_206C_206A_206A_206F_202B_202E_206F_206B_200D_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1590813096)); - break; - case 3: - { - ImU8String imU8String3 = new ImU8String(53, 1); - imU8String3.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-900914893)); - imU8String3.AppendFormatted(item6); - imU8String3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1163312383)); - _206F_202E_202D_200E_200C_200E_200D_206C_206E_200E_202E_206F_200E_202E_206D_200C_206B_200F_206F_206E_206F_202E_202A_206D_202C_202B_206A_206A_206C_200D_200F_206C_206A_206A_206F_202B_202E_206F_206B_200D_202E(imU8String3); - break; - } - } - break; - } - break; + ImU8String text2 = new ImU8String(57, 2); + text2.AppendLiteral("Need "); + text2.AppendFormatted(item5); + text2.AppendLiteral(" more level"); + text2.AppendFormatted((item5 == 1) ? string.Empty : "s"); + text2.AppendLiteral(" - Leveling mode will start automatically"); + ImGui.TextUnformatted(text2); } - case 1: + ImGui.PopTextWrapPos(); + float frameHeight = ImGui.GetFrameHeight(); + using (ImRaii.Disabled(_questController.IsRunning || _gatheringController.IsRunning || _fishingController.IsRunning || _fateController.IsRunning || _seasonalDutyController.IsRunning || _customDeliveryController.IsRunning || _attunementController.IsRunning || !_autoDutyIpc.IsStopped())) { - ImRaii.ColorDisposable colorDisposable = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Text, UiThemeUtils.DimTextColor, true); - try + using (ImRaii.PushColor(ImGuiCol.Button, UiThemeUtils.PlayButtonColor)) { - _200E_202C_202D_206D_202B_206E_200E_206F_202D_206D_206F_202C_206A_200B_200C_202B_202E_206A_200F_202D_200E_200C_200E_206D_206C_202B_202B_202E_200D_206C_206E_206E_202D_206C_200B_200E_206E_200C_206E_206E_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2062963149)); - } - finally - { - num3 = ((colorDisposable == null) ? (-1727582402) : (-1727582401)); - while (true) + using (ImRaii.PushColor(ImGuiCol.ButtonHovered, UiThemeUtils.PlayButtonHover)) { - int num27 = num3; - num5 = -1727582402; - num6 = num27; - switch ((num6 | num5) - (num6 & num5)) + using (ImRaii.PushColor(ImGuiCol.ButtonActive, UiThemeUtils.PlayButtonActive)) { - case 0: - goto end_IL_08fd; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable); - num3 = -1727582402; - break; - case 2: - num3 = -1727582401; - break; + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.PlayButtonText)) + { + if (UiThemeUtils.IconButton(FontAwesomeIcon.Play, frameHeight)) + { + _logger.LogInformation("Start button clicked with MSQ level-locked. Starting AutoDuty leveling mode."); + if (_autoDutyIpc.StartLevelingMode()) + { + _chatGui.Print($"Starting AutoDuty Leveling mode to reach level {item6} for MSQ '{item7}'.", "Questionable", 576); + } + else + { + _chatGui.PrintError("Failed to start AutoDuty Leveling mode. Please check that AutoDuty is installed and configured.", "Questionable", 576); + } + } + } } - continue; - end_IL_08fd: - break; } } - string lastStopReason = _questController.LastStopReason; - if (lastStopReason == null) + } + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) + { + if (!_autoDutyIpc.IsStopped()) { - break; + ImGui.SetTooltip("AutoDuty is currently running."); } - colorDisposable = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Text, _202A_206C_206E_206E_206D_206D_202A_200F_200E_206E_200C_200B_202B_200C_200F_200D_202D_200E_202C_200C_206C_200E_200C_202A_206F_202E_200E_200E_200F_202D_206F_206E_206A_202A_202D_200C_200E_202D_202A_202A_202E(), true); - try + else + { + ImU8String tooltip = new ImU8String(53, 1); + tooltip.AppendLiteral("Start AutoDuty Leveling mode to reach level "); + tooltip.AppendFormatted(item6); + tooltip.AppendLiteral(" for MSQ."); + ImGui.SetTooltip(tooltip); + } + } + } + else + { + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.DimTextColor)) + { + ImGui.TextUnformatted("No active quest"); + } + string lastStopReason = _questController.LastStopReason; + if (lastStopReason != null) + { + using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudYellow)) { UiThemeUtils.WrappedText(lastStopReason); } - finally - { - num3 = ((colorDisposable == null) ? 1579698075 : 1579698072); - while (true) - { - int num28 = num3; - num5 = 1579698073; - num6 = num28; - switch ((num6 | num5) - (num6 & num5)) - { - case 0: - num3 = 1579698072; - break; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable); - num3 = 1579698075; - break; - case 2: - goto end_IL_0996; - } - continue; - end_IL_0996: - break; - } - } - break; } - } - break; } if (!isMinimized) { - float num29 = _206C_206C_206C_206D_200C_200E_202C_202C_206E_202C_202C_206B_200F_202A_200D_202C_200B_206E_206B_202D_206E_206F_200C_206B_200C_206B_206B_202D_202A_206E_202A_200B_200E_202C_200D_206F_200F_206D_206A_200F_202E(); - float x = _202C_206C_200C_202E_206C_200B_200F_206D_206E_206F_202D_200F_200B_206F_202C_202D_202E_200F_206B_200E_200C_200F_202D_200C_200F_202E_206F_206D_206B_206C_202A_206F_202B_200D_202E_200D_206C_206C_202A_206B_202E().ItemSpacing.X; - float num30 = num29 * 2f + x; - ImRaii.ColorDisposable colorDisposable = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Text, UiThemeUtils.MutedTextColor, true); - try + float frameHeight2 = ImGui.GetFrameHeight(); + float x = ImGui.GetStyle().ItemSpacing.X; + float num2 = frameHeight2 * 2f + x; + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.MutedTextColor)) { - ImU8String imU8String4 = new ImU8String(14, 1); - imU8String4.AppendFormatted(_questRegistry.Count); - imU8String4.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(479225625)); - _200E_202C_202D_206D_202B_206E_200E_206F_202D_206D_206F_202C_206A_200B_200C_202B_202E_206A_200F_202D_200E_200C_200E_206D_206C_202B_202B_202E_200D_206C_206E_206E_202D_206C_200B_200E_206E_200C_206E_206E_202E(imU8String4); + ImU8String text3 = new ImU8String(14, 1); + text3.AppendFormatted(_questRegistry.Count); + text3.AppendLiteral(" quests loaded"); + ImGui.TextUnformatted(text3); } - finally + ImGui.SameLine(); + ImGui.SetCursorPosX(cursorPosX + num - num2); + if (UiThemeUtils.IconButton(FontAwesomeIcon.Stop, frameHeight2)) { - num3 = ((colorDisposable == null) ? (-824980491) : (-824980492)); - while (true) - { - int num31 = num3; - int num5 = -824980491; - int num6 = num31; - int num32 = num6 + num5; - int num33 = num6 & num5; - switch (num32 - (num33 + num33)) - { - case 2: - num3 = -824980492; - break; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable); - num3 = -824980491; - break; - case 0: - goto end_IL_0a77; - } - continue; - end_IL_0a77: - break; - } - } - _202B_202D_200D_202A_200F_206A_202A_202B_206E_206F_200D_200D_200B_200C_200B_200F_206D_202C_206F_200E_200C_200B_206B_206E_202A_202A_206F_202B_202B_200B_200C_206D_206A_206C_202D_200B_206D_206D_200E_202B_202E(); - _202B_206F_202C_200F_202A_202C_202A_206D_206B_200B_206A_202E_206B_206A_200D_202C_206E_206C_200E_202E_200F_206B_206E_202D_202E_202E_206E_200E_206F_202C_206E_206E_206D_206C_200F_202A_200D_200E_200B_206B_202E(num + num2 - num30); - if (UiThemeUtils.IconButton(FontAwesomeIcon.Stop, num29)) - { - StopAllControllers(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(494076814)); + StopAllControllers("Manual (no active quest)"); if (!_autoDutyIpc.IsStopped()) { try { _autoDutyIpc.Stop(); } - catch (Exception ex) + catch (Exception exception) { - _202C_202D_200C_202E_200C_206E_200E_206E_202A_200C_200B_202C_200E_206D_202D_202A_202B_206C_200C_202B_202A_200F_206F_200E_200B_202C_206E_200D_200B_202E_202B_202A_200B_202A_202B_206E_206F_202D_202A_200E_202E((ILogger)_logger, ex, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-735508401), Array.Empty<object>()); + _logger.LogWarning(exception, "Failed to stop AutoDuty"); } } } - _202B_202D_200D_202A_200F_206A_202A_202B_206E_206F_200D_200D_200B_200C_200B_200F_206D_202C_206F_200E_200C_200B_206B_206E_202A_202A_206F_202B_202B_200B_200C_206D_206A_206C_202D_200B_206D_206D_200E_202B_202E(); - num3 = ((!UiThemeUtils.IconButton(FontAwesomeIcon.SortAmountDown, num29)) ? 1307931510 : 1307931511); - while (true) + ImGui.SameLine(); + if (UiThemeUtils.IconButton(FontAwesomeIcon.SortAmountDown, frameHeight2)) { - int num34 = num3; - int num5 = 1307931510; - int num6 = num34; - switch ((num6 | num5) - (num6 & num5)) - { - case 2: - num3 = 1307931511; - break; - case 1: - { - System.Action? action = this.OpenQueueTab; - if (action == null) - { - goto end_IL_0b69; - } - action(); - num3 = 1307931510; - break; - } - case 0: - goto end_IL_0b69; - } - continue; - end_IL_0b69: - break; + this.OpenQueueTab?.Invoke(); } } } - catch (Exception ex2) + catch (Exception ex) { - UiThemeUtils.WrappedTextColored(_200C_206C_200D_200D_206F_200C_200E_206C_202B_202E_202D_200D_206E_200E_206C_200F_206A_206E_206E_200D_200E_202A_202C_200F_200F_202E_202B_200F_206E_202A_202A_206C_200F_200E_206D_200B_206A_202B_206E_202B_202E(), _206A_202D_202C_200B_200C_202D_206B_206A_202D_206B_200D_202C_206D_200D_206F_206E_202A_200F_206C_202D_202C_206D_200C_206C_200F_200C_206C_202B_200D_202C_202D_200F_202A_206F_200E_202E_202D_206A_202A_200D_202E((object)ex2)); + UiThemeUtils.WrappedTextColored(ImGuiColors.DalamudRed, ex.ToString()); } UiThemeUtils.EndCard(item, item2, item3); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawQuestCard(QuestController.QuestProgress currentQuest, QuestController.ECurrentQuestType? currentQuestType) { QuestController.QuestProgress startedQuest = _questController.StartedQuest; QuestSequence questSequence = currentQuest.Quest.FindSequence(currentQuest.Sequence); - int num = ((questSequence != null) ? (-1809927327) : (-1809927326)); - object obj; - while (true) - { - int num2 = num; - int num3 = -1809927325; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 0: - goto IL_0068; - case 1: - obj = null; - break; - case 2: - obj = _202C_206B_200D_200F_202E_206E_202E_200F_202D_202E_202C_200F_206D_206D_206F_206A_202E_202E_202A_200D_202D_200C_202B_206B_200B_206F_202D_206D_206D_202E_206B_200E_200B_206B_206F_200B_200C_206E_206B_206E_202E(questSequence, currentQuest.Step); - break; - } - break; - IL_0068: - num = -1809927326; - } - QuestStep questStep = (QuestStep)obj; + QuestStep questStep = questSequence?.FindStep(currentQuest.Step); QuestProgressInfo questProgressInfo = _questFunctions.GetQuestProgressInfo(currentQuest.Quest.Id); (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple = UiThemeUtils.BeginCard(); Vector2 item = tuple.ContentStartPos; float item2 = tuple.AvailableWidth; ImDrawListPtr item3 = tuple.DrawList; - float num5 = _206C_206E_200C_202A_200C_202B_200E_206D_206F_200B_202C_202C_200C_206D_202A_200D_206A_206D_200F_202C_206A_200B_202B_200F_202C_202D_206E_206F_200D_206C_206B_206E_206A_206E_202C_206C_200F_206B_200C_202A_202E(); - float num6 = _202E_206F_202E_206B_200C_200C_202B_206C_202D_200F_206A_206E_200E_202C_206A_202D_206E_200D_200E_206C_200B_200C_206E_206E_206E_200F_206D_200D_206F_202E_206F_202C_202A_206D_206A_206C_202B_206E_206B_200C_202E().X - 12f; + float cursorPosX = ImGui.GetCursorPosX(); + float num = ImGui.GetContentRegionAvail().X - 12f; try { - float num7 = _206C_206C_206C_206D_200C_200E_202C_202C_206E_202C_202C_206B_200F_202A_200D_202C_200B_206E_206B_202D_206E_206F_200C_206B_200C_206B_206B_202D_202A_206E_202A_200B_200E_202C_200D_206F_200F_206D_206A_200F_202E(); - float num8 = num5 + num6 - num7 - _202C_206C_200C_202E_206C_200B_200F_206D_206E_206F_202D_200F_200B_206F_202C_202D_202E_200F_206B_200E_200C_200F_202D_200C_200F_202E_206F_206D_206B_206C_202A_206F_202B_200D_202E_200D_206C_206C_202A_206B_202E().ItemSpacing.X; - num = ((currentQuestType != QuestController.ECurrentQuestType.Simulated) ? 1274942762 : 1274942760); - int num12; - while (true) + float frameHeight = ImGui.GetFrameHeight(); + float wrapLocalPosX = cursorPosX + num - frameHeight - ImGui.GetStyle().ItemSpacing.X; + if (currentQuestType == QuestController.ECurrentQuestType.Simulated) { - int num9 = num; - int num3 = 1274942761; - int num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - string name; - string text; - switch (num10 - (num11 + num11)) - { - default: - continue; - case 8: - _206F_202E_202D_200E_200C_200E_200D_206C_206E_200E_202E_206F_200E_202E_206D_200C_206B_200F_206F_206E_206F_202E_202A_206D_202C_202B_206A_206A_206C_200D_200F_206C_206A_206A_206F_202B_202E_206F_206B_200D_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1623652935)); - num = 1274942755; - continue; - case 5: - num = ((startedQuest.Quest.Source != Questionable.Model.Quest.ESource.UserDirectory) ? 1274942755 : 1274942761); - continue; - case 0: - { - _202E_202E_202A_200D_202E_200C_206B_202E_200E_202C_206E_206D_206E_206D_206B_206C_206F_200B_200F_202D_202E_200E_202D_202B_200B_206D_206E_206F_200F_206E_202C_200B_202B_200D_200B_202A_200E_200C_202A_206F_202E(_202A_200F_200D_200D_206A_206C_206D_206C_202B_200E_206F_200F_206B_206D_206B_200B_202D_202C_200B_202C_206D_202A_202B_200D_206C_206B_202C_206C_200B_200E_202D_202E_202E_200F_206B_206F_200C_200D_202E_200F_202E()); - Vector4 vector = _200D_206D_206B_202E_202A_206B_202A_202E_200D_202D_200C_200C_206A_202A_202A_206D_206E_206D_200B_206E_206E_202E_202B_206F_206A_200F_200D_202B_200B_202D_202C_206A_202C_200E_206D_200E_206F_200B_200E_202B_202E(); - _202E_200E_200E_202E_200D_206E_206F_206E_200C_206F_202C_206D_200D_200C_206F_206B_202B_206F_206F_200F_206D_200E_200B_200E_206D_200E_206F_202C_202A_206F_202D_206B_202C_202E_200F_206B_200E_206E_206D_202D_202E(ref vector, (ImU8String)_200D_202E_202D_200F_206C_200D_206D_202B_206B_206D_200E_202E_202B_202A_200B_200B_200B_200D_206B_206A_202E_206C_202E_206D_200F_206E_206F_200F_202A_202A_202E_200C_200B_200D_200E_206C_206C_200B_202B_202E(FontAwesomeIcon.FilePen)); - _206D_202B_202B_200E_200E_206C_200F_200E_202C_206B_202D_206D_206A_200C_206B_200C_202E_200B_202B_202B_206D_200F_206A_200C_206D_206E_200D_200C_206D_202D_206D_200F_206D_206A_206D_200B_202D_202D_200E_206E_202E(); - _202C_202A_202E_200C_202C_206A_200D_200C_206A_206D_206F_200C_206E_200B_200D_202A_202C_200E_202A_206A_200F_206E_202C_202E_206A_202A_202B_200B_206A_206C_200C_202C_206C_206B_202D_202E_202E_200C_206F_202A_202E(0f); - num = ((!_200E_200D_200B_200F_206B_200D_206F_200B_202C_206B_202A_202C_206F_206D_202D_206C_200C_206A_200C_200C_202C_202E_206A_206D_202E_200F_206D_202B_200F_206F_206C_206E_206C_200E_202D_206F_206E_200F_202E_202E()) ? 1274942755 : 1274942753); - continue; - } - case 12: - name = currentQuest.Quest.Info.Name; - goto IL_02b7; - case 7: - { - _200B_206B_200E_202A_206A_200F_200D_206D_200D_202E_200E_206E_206D_200D_200E_202B_206A_200D_206E_206A_206C_206A_206B_200F_206F_200D_206B_202D_202B_200D_206E_206A_200D_200B_202D_206A_202E_206E_200F_200C_202E(num8); - Vector4 vector = _200E_200F_202C_206B_200B_202B_206F_206B_206F_206D_206D_200B_206A_200E_200D_200C_206F_202B_202D_202A_206E_206C_202A_206D_206E_206A_200D_202D_206F_206C_206F_206D_200F_202A_200C_200F_200F_200C_202B_206A_202E(); - ImU8String imU8String2 = new ImU8String(11, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(204926802)); - imU8String2.AppendFormatted(currentQuest.Quest.Info.Name); - _202E_200E_200E_202E_200D_206E_206F_206E_200C_206F_202C_206D_200D_200C_206F_206B_202B_206F_206F_200F_206D_200E_200B_200E_206D_200E_206F_202C_202A_206F_202D_206B_202C_202E_200F_206B_200E_206E_206D_202D_202E(ref vector, imU8String2); - _206D_202B_202C_206F_206F_200B_206F_206F_202D_200F_202C_206D_202E_206A_202B_202C_202D_202D_200F_202E_206C_202E_206E_200E_202E_206C_206F_202A_202B_202B_206B_200B_200D_200B_200B_202D_206C_202B_206B_202C_202E(); - num = 1274942754; - continue; - } - case 9: - name = startedQuest.Quest.Info.Name; - goto IL_02b7; - case 2: - num = 1274942760; - continue; - case 14: - num = ((!_202B_202B_206D_206B_200B_206B_206F_202D_202E_200D_202A_200E_206F_200C_200C_200C_202D_202E_206E_206C_200C_206D_202A_202C_200D_202A_200C_200B_206B_206D_206D_206B_202C_202A_200F_200B_200C_206D_200C_202A_202E(startedQuest.Quest.Root)) ? 1274942754 : 1274942765); - continue; - case 11: - _202B_202D_200D_202A_200F_206A_202A_202B_206E_206F_200D_200D_200B_200C_200B_200F_206D_202C_206F_200E_200C_200B_206B_206E_202A_202A_206F_202B_202B_200B_200C_206D_206A_206C_202D_200B_206D_206D_200E_202B_202E(); - _202B_206F_202C_200F_202A_202C_202A_206D_206B_200B_206A_202E_206B_206A_200D_202C_206E_206C_200E_202E_200F_206B_206E_202D_202E_202E_206E_200E_206F_202C_206E_206E_206D_206C_200F_202A_200D_200E_200B_206B_202E(num5 + num6 - num7); - num = (_questCardExpanded ? 1274942756 : 1274942758); - continue; - case 10: - num = ((startedQuest != null) ? 1274942752 : 1274942757); - continue; - case 1: - { - _200B_206B_200E_202A_206A_200F_200D_206D_200D_202E_200E_206E_206D_200D_200E_202B_206A_200D_206E_206A_206C_206A_206B_200F_206F_200D_206B_202D_202B_200D_206E_206A_200D_200B_202D_206A_202E_206E_200F_200C_202E(num8); - Vector4 vector = _200C_206C_200D_200D_206F_200C_200E_206C_202B_202E_202D_200D_206E_200E_206C_200F_206A_206E_206E_200D_200E_202A_202C_200F_200F_202E_202B_200F_206E_202A_202A_206C_200F_200E_206D_200B_206A_202B_206E_202B_202E(); - ImU8String imU8String = new ImU8String(11, 1); - imU8String.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1426941883)); - imU8String.AppendFormatted(currentQuest.Quest.Info.Name); - _202E_200E_200E_202E_200D_206E_206F_206E_200C_206F_202C_206D_200D_200C_206F_206B_202B_206F_206F_200F_206D_200E_200B_200E_206D_200E_206F_202C_202A_206F_202D_206B_202C_202E_200F_206B_200E_206E_206D_202D_202E(ref vector, imU8String); - _206D_202B_202C_206F_206F_200B_206F_206F_202D_200F_202C_206D_202E_206A_202B_202C_202D_202D_200F_202E_206C_202E_206E_200E_202E_206C_206F_202A_202B_202B_206B_200B_200D_200B_200B_202D_206C_202B_206B_202C_202E(); - num = 1274942754; - continue; - } - case 4: - { - _202B_202D_200D_202A_200F_206A_202A_202B_206E_206F_200D_200D_200B_200C_200B_200F_206D_202C_206F_200E_200C_200B_206B_206E_202A_202A_206F_202B_202B_200B_200C_206D_206A_206C_202D_200B_206D_206D_200E_202B_202E(); - Vector4 vector = _200C_206C_200D_200D_206F_200C_200E_206C_202B_202E_202D_200D_206E_200E_206C_200F_206A_206E_206E_200D_200E_202A_202C_200F_200F_202E_202B_200F_206E_202A_202A_206C_200F_200E_206D_200B_206A_202B_206E_202B_202E(); - _202E_200E_200E_202E_200D_206E_206F_206E_200C_206F_202C_206D_200D_200C_206F_206B_202B_206F_206F_200F_206D_200E_200B_200E_206D_200E_206F_202C_202A_206F_202D_206B_202C_202E_200F_206B_200E_206E_206D_202D_202E(ref vector, (ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1800349721)); - num = 1274942754; - continue; - } - case 3: - num = ((currentQuestType != QuestController.ECurrentQuestType.Gathering) ? 1274942767 : 1274942766); - continue; - case 6: - num = ((startedQuest == null) ? 1274942755 : 1274942764); - continue; - case 15: - num12 = 61560; - break; - case 13: - { - num12 = 61559; - break; - } - IL_02b7: - text = name; - _200B_206B_200E_202A_206A_200F_200D_206D_200D_202E_200E_206E_206D_200D_200E_202B_206A_200D_206E_206A_206C_206A_206B_200F_206F_200D_206B_202D_202B_200D_206E_206A_200D_200B_202D_206A_202E_206E_200F_200C_202E(num8); - _202E_200E_200E_202E_200D_206E_206F_206E_200C_206F_202C_206D_200D_200C_206F_206B_202B_206F_206F_200F_206D_200E_200B_200E_206D_200E_206F_202C_202A_206F_202D_206B_202C_202E_200F_206B_200E_206E_206D_202D_202E(ref UiThemeUtils.AccentColor, (ImU8String)text); - _206D_202B_202C_206F_206F_200B_206F_206F_202D_200F_202C_206D_202E_206A_202B_202C_202D_202D_200F_202E_206C_202E_206E_200E_202E_206C_206F_202A_202B_202B_206B_200B_200D_200B_200B_202D_206C_202B_206B_202C_202E(); - num = ((startedQuest == null) ? 1274942754 : 1274942759); - continue; - } - break; + ImGui.PushTextWrapPos(wrapLocalPosX); + Vector4 col = ImGuiColors.DalamudRed; + ImU8String text = new ImU8String(11, 1); + text.AppendLiteral("Simulated: "); + text.AppendFormatted(currentQuest.Quest.Info.Name); + ImGui.TextColored(in col, text); + ImGui.PopTextWrapPos(); } - FontAwesomeIcon icon = (FontAwesomeIcon)num12; - ImRaii.ColorDisposable colorDisposable = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Button, Vector4.Zero, true); - try + else { - ImRaii.ColorDisposable colorDisposable2 = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.ButtonHovered, UiThemeUtils.SubtleActiveColor, true); - try + if (startedQuest != null && startedQuest.Quest.Source == Questionable.Model.Quest.ESource.UserDirectory) { - ImRaii.ColorDisposable colorDisposable3 = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.ButtonActive, UiThemeUtils.SubtlePressColor, true); - try + ImGui.PushFont(UiBuilder.IconFont); + ImGui.TextColored(ImGuiColors.DalamudOrange, FontAwesomeIcon.FilePen.ToIconString()); + ImGui.PopFont(); + ImGui.SameLine(0f); + if (ImGui.IsItemHovered()) { - num = ((!UiThemeUtils.IconButton(icon, num7)) ? (-946181556) : (-946181553)); - while (true) - { - int num13 = num; - int num3 = -946181555; - int num4 = num13; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -946181553; - break; - case 2: - _questCardExpanded = !_questCardExpanded; - num = -946181556; - break; - case 1: - goto end_IL_04bb; - } - continue; - end_IL_04bb: - break; - } - } - finally - { - num = ((colorDisposable3 == null) ? 1853237578 : 1853237577); - while (true) - { - int num14 = num; - int num3 = 1853237579; - int num4 = num14; - int num15 = num4 + num3; - int num16 = num4 & num3; - switch (num15 - (num16 + num16)) - { - case 0: - num = 1853237577; - break; - case 1: - goto end_IL_0532; - case 2: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable3); - num = 1853237578; - break; - } - continue; - end_IL_0532: - break; - } + ImGui.SetTooltip("This quest is loaded from your 'pluginConfigs\\Questionable\\Quests' directory.\nThis gets loaded even if Questionable ships with a newer/different version of the quest."); } } - finally + string text2 = ((startedQuest != null) ? startedQuest.Quest.Info.Name : currentQuest.Quest.Info.Name); + ImGui.PushTextWrapPos(wrapLocalPosX); + ImGui.TextColored(in UiThemeUtils.AccentColor, text2); + ImGui.PopTextWrapPos(); + if (startedQuest != null && startedQuest.Quest.Root.Disabled) { - num = ((colorDisposable2 == null) ? (-845638651) : (-845638650)); - while (true) + ImGui.SameLine(); + ImGui.TextColored(ImGuiColors.DalamudRed, "Disabled"); + } + } + ImGui.SameLine(); + ImGui.SetCursorPosX(cursorPosX + num - frameHeight); + FontAwesomeIcon icon = (_questCardExpanded ? FontAwesomeIcon.ChevronUp : FontAwesomeIcon.ChevronDown); + using (ImRaii.PushColor(ImGuiCol.Button, Vector4.Zero)) + { + using (ImRaii.PushColor(ImGuiCol.ButtonHovered, UiThemeUtils.SubtleActiveColor)) + { + using (ImRaii.PushColor(ImGuiCol.ButtonActive, UiThemeUtils.SubtlePressColor)) { - int num17 = num; - int num3 = -845638652; - int num4 = num17; - int num18 = num4 + num3; - int num19 = num4 & num3; - switch (num18 - (num19 + num19)) + if (UiThemeUtils.IconButton(icon, frameHeight)) { - case 0: - num = -845638650; - break; - case 2: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable2); - num = -845638651; - break; - case 1: - goto end_IL_05a4; + _questCardExpanded = !_questCardExpanded; } - continue; - end_IL_05a4: - break; } } } - finally + string text3 = null; + if (_combatController.IsRunning) { - num = ((colorDisposable == null) ? 388096058 : 388096057); - while (true) + text3 = "In Combat"; + } + else + { + string currentTaskState = _questController.CurrentTaskState; + if (currentTaskState != null) { - int num20 = num; - int num3 = 388096059; - int num4 = num20; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 388096057; - break; - case 2: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable); - num = 388096058; - break; - case 1: - goto end_IL_0616; - } - continue; - end_IL_0616: - break; + text3 = currentTaskState; + } + else if (!string.IsNullOrEmpty(_questController.DebugState)) + { + text3 = _questController.DebugState; } } - string text2 = null; - num = ((!_combatController.IsRunning) ? (-122246827) : (-122246826)); - string currentTaskState = default(string); - int num27 = default(int); - EInteractionType eInteractionType = default(EInteractionType); - string text4 = default(string); - bool flag = default(bool); - while (true) + ImGui.PushTextWrapPos(cursorPosX + num); + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.DimTextColor)) { - int num21 = num; - int num3 = -122246832; - int num4 = num21; - int num22 = num4 + num3; - int num23 = num4 & num3; - switch (num22 - (num23 + num23)) + ImGui.TextUnformatted(text3 ?? " "); + } + ImGui.PopTextWrapPos(); + int num2 = questSequence?.Steps.Count ?? 0; + float fraction = ((num2 > 0) ? ((float)currentQuest.Step / (float)num2) : 0f); + using (UiThemeUtils.PushProgressBarColors()) + { + ImGui.ProgressBar(fraction, new Vector2(num, 4f), string.Empty); + } + ImGui.Spacing(); + ImGui.Spacing(); + int value = Math.Min(currentQuest.Step + 1, Math.Max(num2, 1)); + ImGui.AlignTextToFramePadding(); + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.MutedTextColor)) + { + ImU8String text4 = new ImU8String(9, 2); + text4.AppendLiteral("Step "); + text4.AppendFormatted(value); + text4.AppendLiteral(" of "); + text4.AppendFormatted(num2); + ImGui.TextUnformatted(text4); + } + float frameHeight2 = ImGui.GetFrameHeight(); + float x = ImGui.GetStyle().ItemSpacing.X; + Vector2 vector; + using (ImRaii.PushFont(UiBuilder.IconFont)) + { + vector = ImGui.CalcTextSize(FontAwesomeIcon.Play.ToIconString()); + } + float x2 = ImGui.CalcTextSize("Play").X; + float num3 = ImGui.GetStyle().FramePadding.X * 3f * 2f + vector.X + 6f + x2; + bool disabled = _questController.IsRunning || _gatheringController.IsRunning || _fishingController.IsRunning || _fateController.IsRunning || _seasonalDutyController.IsRunning || _customDeliveryController.IsRunning || _attunementController.IsRunning; + float num4 = num3 + (frameHeight2 + x) * 3f; + ImGui.SameLine(); + ImGui.SetCursorPosX(cursorPosX + num - num4); + using (ImRaii.Disabled(disabled)) + { + using (ImRaii.PushColor(ImGuiCol.Button, UiThemeUtils.PlayButtonColor)) { - case 0: - text2 = _questController.DebugState; - num = -122246831; - break; - case 4: - text2 = currentTaskState; - num = -122246831; - break; - case 5: - currentTaskState = _questController.CurrentTaskState; - num = ((currentTaskState == null) ? (-122246829) : (-122246828)); - break; - case 6: - text2 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2013597711); - num = -122246831; - break; - case 3: - num = (_206B_200B_200F_202E_200C_202A_200B_206A_202B_206F_202B_206E_202C_206F_200B_206B_200F_200F_206D_206B_202A_202A_206A_206A_200C_200C_200E_200B_200B_202C_202D_206B_206C_200F_202B_206F_200F_200E_200C_202E(_questController.DebugState) ? (-122246831) : (-122246832)); - break; - case 2: - num = -122246826; - break; - case 1: + using (ImRaii.PushColor(ImGuiCol.ButtonHovered, UiThemeUtils.PlayButtonHover)) + { + using (ImRaii.PushColor(ImGuiCol.ButtonActive, UiThemeUtils.PlayButtonActive)) + { + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.PlayButtonText)) + { + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Play, "Play", num3)) + { + if (questProgressInfo == null) + { + _questController.SetNextQuest(currentQuest.Quest); + } + _questController.Start("UI start"); + } + } + } + } + } + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) { - _200B_206B_200E_202A_206A_200F_200D_206D_200D_202E_200E_206E_206D_200D_200E_202B_206A_200D_206E_206A_206C_206A_206B_200F_206F_200D_206B_202D_202B_200D_206E_206A_200D_200B_202D_206A_202E_206E_200F_200C_202E(num5 + num6); - colorDisposable = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Text, UiThemeUtils.DimTextColor, true); - try - { - _200E_202C_202D_206D_202B_206E_200E_206F_202D_206D_206F_202C_206A_200B_200C_202B_202E_206A_200F_202D_200E_200C_200E_206D_206C_202B_202B_202E_200D_206C_206E_206E_202D_206C_200B_200E_206E_200C_206E_206E_202E((ImU8String)(text2 ?? global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2018550958))); - } - finally - { - num = ((colorDisposable == null) ? (-1779511041) : (-1779511044)); - while (true) - { - int num24 = num; - num3 = -1779511042; - num4 = num24; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1779511044; - break; - case 1: - goto end_IL_07ca; - case 2: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable); - num = -1779511041; - break; - } - continue; - end_IL_07ca: - break; - } - } - _206D_202B_202C_206F_206F_200B_206F_206F_202D_200F_202C_206D_202E_206A_202B_202C_202D_202D_200F_202E_206C_202E_206E_200E_202E_206C_206F_202A_202B_202B_206B_200B_200D_200B_200B_202D_206C_202B_206B_202C_202E(); - num = ((questSequence != null) ? (-970034650) : (-970034656)); - float num26; - while (true) - { - int num25 = num; - num3 = -970034652; - num4 = num25; - int num28; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 2: - num28 = _202E_202E_202A_202B_206A_206B_202C_202E_206F_200B_206F_206D_206A_200B_206E_202C_206F_206F_200B_202A_206C_206A_206A_206B_202D_202C_200F_206F_206D_200D_206C_200B_202C_202C_200F_206C_200B_202E_200B_202B_202E(questSequence).Count; - goto IL_0878; - case 4: - num28 = 0; - goto IL_0878; - case 3: - num26 = 0f; - break; - case 0: - num = -970034656; - continue; - case 1: - { - num26 = (float)currentQuest.Step / (float)num27; - break; - } - IL_0878: - num27 = num28; - num = ((num27 > 0) ? (-970034651) : (-970034649)); - continue; - } - break; - } - float num29 = num26; - ImRaii.ColorDisposable colorDisposable4 = UiThemeUtils.PushProgressBarColors(); - try - { - _206E_202E_200B_200E_206B_202D_200E_200E_206E_206E_200C_200B_206F_202C_200B_206C_200C_206A_200E_202A_202C_206D_200B_206D_202A_202D_202A_202B_200C_200D_206E_206E_202C_200C_200C_206E_200E_200B_206C_200F_202E(num29, new Vector2(num6, 4f), (ImU8String)string.Empty); - } - finally - { - num = ((colorDisposable4 == null) ? 1853465686 : 1853465685); - while (true) - { - int num30 = num; - num3 = 1853465687; - num4 = num30; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1853465685; - break; - case 2: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable4); - num = 1853465686; - break; - case 1: - goto end_IL_0923; - } - continue; - end_IL_0923: - break; - } - } - _206E_202E_206F_200B_200C_202C_202B_206A_206F_202A_206F_206A_206D_206F_200B_206E_206A_200B_206F_206E_202C_202D_202A_202A_202D_206D_200E_202C_206D_206D_200D_202D_206F_202C_200B_206F_206F_202C_200E_202E_202E(); - _206E_202E_206F_200B_200C_202C_202B_206A_206F_202A_206F_206A_206D_206F_200B_206E_206A_200B_206F_206E_202C_202D_202A_202A_202D_206D_200E_202C_206D_206D_200D_202D_206F_202C_200B_206F_206F_202C_200E_202E_202E(); - int value = _202B_200E_206D_206F_202A_206B_202B_202E_202E_206D_206A_206A_200C_200E_206B_206F_200E_200C_202A_206A_206B_206C_200E_206F_206F_206A_200B_202D_202E_202B_200B_206F_202D_202D_206A_206A_200C_206F_200F_206B_202E(currentQuest.Step + 1, _200C_206F_202B_206C_202D_206E_206E_206E_206A_206D_200D_206E_202C_202E_206C_200C_206D_200C_200B_206B_206C_202B_206B_202D_202C_200E_200E_202C_206F_206B_200E_202D_206A_206E_206A_202E_202E_206B_206D_202A_202E(num27, 1)); - _206E_202B_202A_202D_206C_202B_206A_206B_206A_206A_202D_200C_200B_206A_206D_202C_202A_206B_202C_206B_206B_200E_200D_200C_202B_206A_202A_206C_200F_202A_202C_200B_200D_202D_206B_202C_200C_206C_206B_202E_202E(); - colorDisposable = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Text, UiThemeUtils.MutedTextColor, true); - try - { - ImU8String imU8String3 = new ImU8String(9, 2); - imU8String3.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-965467699)); - imU8String3.AppendFormatted(value); - imU8String3.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(891743000)); - imU8String3.AppendFormatted(num27); - _200E_202C_202D_206D_202B_206E_200E_206F_202D_206D_206F_202C_206A_200B_200C_202B_202E_206A_200F_202D_200E_200C_200E_206D_206C_202B_202B_202E_200D_206C_206E_206E_202D_206C_200B_200E_206E_200C_206E_206E_202E(imU8String3); - } - finally - { - num = ((colorDisposable == null) ? 704709166 : 704709167); - while (true) - { - int num31 = num; - num3 = 704709166; - num4 = num31; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_0a0c; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable); - num = 704709166; - break; - case 2: - num = 704709167; - break; - } - continue; - end_IL_0a0c: - break; - } - } - float num32 = _206C_206C_206C_206D_200C_200E_202C_202C_206E_202C_202C_206B_200F_202A_200D_202C_200B_206E_206B_202D_206E_206F_200C_206B_200C_206B_206B_202D_202A_206E_202A_200B_200E_202C_200D_206F_200F_206D_206A_200F_202E(); - float x = _202C_206C_200C_202E_206C_200B_200F_206D_206E_206F_202D_200F_200B_206F_202C_202D_202E_200F_206B_200E_200C_200F_202D_200C_200F_202E_206F_206D_206B_206C_202A_206F_202B_200D_202E_200D_206C_206C_202A_206B_202E().ItemSpacing.X; - ImRaii.FontDisposable fontDisposable = _202B_206A_202E_206E_202D_206A_200F_200F_202B_206B_202D_202D_202E_200F_206A_206F_200C_200F_202A_206F_202C_206E_202E_206D_200F_206A_202E_202A_202E_206A_206D_202D_200F_202C_206A_202A_200E_200F_206F_206C_202E(_202A_200F_200D_200D_206A_206C_206D_206C_202B_200E_206F_200F_206B_206D_206B_200B_202D_202C_200B_202C_206D_202A_202B_200D_206C_206B_202C_206C_200B_200E_202D_202E_202E_200F_206B_206F_200C_200D_202E_200F_202E(), true); - Vector2 vector2; - try - { - vector2 = _200E_200E_200F_200B_200F_206A_200E_200D_202B_200B_202C_202A_202D_206E_200F_206D_206C_200C_200B_202D_202C_206F_200B_206C_200F_206E_200C_206A_200C_206F_206E_206A_200C_206C_202D_202A_200D_206F_200E_200C_202E((ImU8String)_200D_202E_202D_200F_206C_200D_206D_202B_206B_206D_200E_202E_202B_202A_200B_200B_200B_200D_206B_206A_202E_206C_202E_206D_200F_206E_206F_200F_202A_202A_202E_200C_200B_200D_200E_206C_206C_200B_202B_202E(FontAwesomeIcon.Play), false, -1f); - } - finally - { - num = ((fontDisposable == null) ? (-1384453383) : (-1384453384)); - while (true) - { - int num33 = num; - num3 = -1384453383; - num4 = num33; - int num34 = num4 + num3; - int num35 = num4 & num3; - switch (num34 - (num35 + num35)) - { - case 2: - num = -1384453384; - break; - case 0: - goto end_IL_0ac1; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)fontDisposable); - num = -1384453383; - break; - } - continue; - end_IL_0ac1: - break; - } - } - float x2 = _200E_200E_200F_200B_200F_206A_200E_200D_202B_200B_202C_202A_202D_206E_200F_206D_206C_200C_200B_202D_202C_206F_200B_206C_200F_206E_200C_206A_200C_206F_206E_206A_200C_206C_202D_202A_200D_206F_200E_200C_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1306719706), false, -1f).X; - float num36 = _202C_206C_200C_202E_206C_200B_200F_206D_206E_206F_202D_200F_200B_206F_202C_202D_202E_200F_206B_200E_200C_200F_202D_200C_200F_202E_206F_206D_206B_206C_202A_206F_202B_200D_202E_200D_206C_206C_202A_206B_202E().FramePadding.X * 3f * 2f + vector2.X + 6f + x2; - num = (_questController.IsRunning ? 2069742109 : 2069742105); - int num38; - while (true) - { - int num37 = num; - num3 = 2069742104; - num4 = num37; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 0: - num = 2069742105; - continue; - case 6: - num = (_fateController.IsRunning ? 2069742109 : 2069742108); - continue; - case 4: - num = (_seasonalDutyController.IsRunning ? 2069742109 : 2069742106); - continue; - case 3: - num = (_fishingController.IsRunning ? 2069742109 : 2069742110); - continue; - case 1: - num = (_gatheringController.IsRunning ? 2069742109 : 2069742107); - continue; - case 7: - num38 = (_attunementController.IsRunning ? 1 : 0); - break; - case 2: - num = (_customDeliveryController.IsRunning ? 2069742109 : 2069742111); - continue; - case 5: - num38 = 1; - break; - } - break; - } - float num39 = num36 + (num32 + x) * 3f; - _202B_202D_200D_202A_200F_206A_202A_202B_206E_206F_200D_200D_200B_200C_200B_200F_206D_202C_206F_200E_200C_200B_206B_206E_202A_202A_206F_202B_202B_200B_200C_206D_206A_206C_202D_200B_206D_206D_200E_202B_202E(); - _202B_206F_202C_200F_202A_202C_202A_206D_206B_200B_206A_202E_206B_206A_200D_202C_206E_206C_200E_202E_200F_206B_206E_202D_202E_202E_206E_200E_206F_202C_206E_206E_206D_206C_200F_202A_200D_200E_200B_206B_202E(num5 + num6 - num39); - ImRaii.DisabledDisposable disabledDisposable = _200F_200C_200D_206B_200C_202E_206C_206C_206B_206B_206B_200F_206F_202B_200C_200E_206D_206C_206E_202C_202B_202B_206E_206F_206E_200D_206D_200E_206F_206F_202B_202A_200D_206C_202D_202E_202C_202E_202E_206D_202E((byte)num38 != 0); - try - { - colorDisposable = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Button, UiThemeUtils.PlayButtonColor, true); - try - { - ImRaii.ColorDisposable colorDisposable2 = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.ButtonHovered, UiThemeUtils.PlayButtonHover, true); - try - { - ImRaii.ColorDisposable colorDisposable3 = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.ButtonActive, UiThemeUtils.PlayButtonActive, true); - try - { - ImRaii.ColorDisposable colorDisposable5 = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Text, UiThemeUtils.PlayButtonText, true); - try - { - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Play, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1306719706), num36)) ? 708226379 : 708226382); - while (true) - { - int num40 = num; - num3 = 708226378; - num4 = num40; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = 708226382; - break; - case 2: - _questController.SetNextQuest(currentQuest.Quest); - num = 708226378; - break; - case 4: - num = ((questProgressInfo != null) ? 708226378 : 708226376); - break; - case 0: - _questController.Start(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1809965159)); - num = 708226379; - break; - case 1: - goto end_IL_0d52; - } - continue; - end_IL_0d52: - break; - } - } - finally - { - num = ((colorDisposable5 == null) ? (-597929640) : (-597929637)); - while (true) - { - int num41 = num; - num3 = -597929639; - num4 = num41; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -597929637; - break; - case 1: - goto end_IL_0e12; - case 2: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable5); - num = -597929640; - break; - } - continue; - end_IL_0e12: - break; - } - } - } - finally - { - num = ((colorDisposable3 == null) ? (-745915135) : (-745915136)); - while (true) - { - int num42 = num; - num3 = -745915135; - num4 = num42; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -745915136; - break; - case 0: - goto end_IL_0e82; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable3); - num = -745915135; - break; - } - continue; - end_IL_0e82: - break; - } - } - } - finally - { - num = ((colorDisposable2 == null) ? (-844982535) : (-844982536)); - while (true) - { - int num43 = num; - num3 = -844982535; - num4 = num43; - int num44 = num4 + num3; - int num45 = num4 & num3; - switch (num44 - (num45 + num45)) - { - case 2: - num = -844982536; - break; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable2); - num = -844982535; - break; - case 0: - goto end_IL_0ef2; - } - continue; - end_IL_0ef2: - break; - } - } - } - finally - { - num = ((colorDisposable == null) ? 1996833315 : 1996833314); - while (true) - { - int num46 = num; - num3 = 1996833315; - num4 = num46; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_0f64; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable); - num = 1996833315; - break; - case 2: - num = 1996833314; - break; - } - continue; - end_IL_0f64: - break; - } - } - num = ((!_202A_200B_206B_202D_200D_206D_200B_200E_200C_200D_202D_200C_206B_206A_202C_206E_206E_200F_206B_200D_202A_202B_202B_202D_200B_200E_202E_206A_200C_206C_200F_200F_200B_200F_202C_200B_200F_202C_206B_200D_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? (-499700013) : (-499700016)); - while (true) - { - int num47 = num; - num3 = -499700014; - num4 = num47; - int num48 = num4 + num3; - int num49 = num4 & num3; - switch (num48 - (num49 + num49)) - { - case 0: - num = -499700016; - break; - case 2: - _206F_202E_202D_200E_200C_200E_200D_206C_206E_200E_202E_206F_200E_202E_206D_200C_206B_200F_206F_206E_206F_202E_202A_206D_202C_202B_206A_206A_206C_200D_200F_206C_206A_206A_206F_202B_202E_206F_206B_200D_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1706732561)); - num = -499700013; - break; - case 1: - goto end_IL_0fd7; - } - continue; - end_IL_0fd7: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? 1256893257 : 1256893258); - while (true) - { - int num50 = num; - num3 = 1256893259; - num4 = num50; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_1055; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)disabledDisposable); - num = 1256893257; - break; - case 0: - num = 1256893258; - break; - } - continue; - end_IL_1055: - break; - } - } - _202B_202D_200D_202A_200F_206A_202A_202B_206E_206F_200D_200D_200B_200C_200B_200F_206D_202C_206F_200E_200C_200B_206B_206E_202A_202A_206F_202B_202B_200B_200C_206D_206A_206C_202D_200B_206D_206D_200E_202B_202E(); - ImRaii.StyleDisposable styleDisposable = _206E_200E_206C_200C_202E_202A_202E_206E_202D_206D_206D_200D_206B_200B_206A_200D_206E_206B_202D_200F_200B_206D_200D_206F_202E_200D_206A_206F_206A_202D_206B_206F_202B_200D_202E_206A_206E_202B_206B_206E_202E(ImGuiStyleVar.FrameBorderSize, 1f, true); - try - { - colorDisposable = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Border, UiThemeUtils.CardBorderHighColor, true); - try - { - ImRaii.ColorDisposable colorDisposable2 = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Button, new Vector4(0.12f, 0.1f, 0.18f, 1f), true); - try - { - ImRaii.ColorDisposable colorDisposable3 = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.ButtonHovered, new Vector4(0.2f, 0.16f, 0.28f, 1f), true); - try - { - ImRaii.ColorDisposable colorDisposable5 = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.ButtonActive, new Vector4(0.25f, 0.2f, 0.35f, 1f), true); - try - { - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.StepForward, num32)) ? 1655729010 : 1655729009); - while (true) - { - int num51 = num; - num3 = 1655729010; - num4 = num51; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - num = 1655729009; - break; - case 0: - num = ((!_200E_200D_200B_200F_206B_200D_206F_200B_202C_206B_202A_202C_206F_206D_202D_206C_200C_206A_200C_200C_202C_202E_206A_206D_202E_200F_206D_202B_200F_206F_206C_206E_206C_200E_202D_206F_206E_200F_202E_202E()) ? 1655729014 : 1655729011); - break; - case 3: - _questController.StartSingleStep(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(705777353)); - num = 1655729010; - break; - case 4: - _202B_202D_200D_202A_200F_206A_202A_202B_206E_206F_200D_200D_200B_200C_200B_200F_206D_202C_206F_200E_200C_200B_206B_206E_202A_202A_206F_202B_202B_200B_200C_206D_206A_206C_202D_200B_206D_206D_200E_202B_202E(); - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Stop, num32)) ? 1655729008 : 1655729015); - break; - case 5: - StopAllControllers(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-30410556)); - num = 1655729008; - break; - case 1: - _206F_202E_202D_200E_200C_200E_200D_206C_206E_200E_202E_206F_200E_202E_206D_200C_206B_200F_206F_206E_206F_202E_202A_206D_202C_202B_206A_206A_206C_200D_200F_206C_206A_206A_206F_202B_202E_206F_206B_200D_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1598500498)); - num = 1655729014; - break; - case 2: - { - DrawStopConditionTooltip(); - _202B_202D_200D_202A_200F_206A_202A_202B_206E_206F_200D_200D_200B_200C_200B_200F_206D_202C_206F_200E_200C_200B_206B_206E_202A_202A_206F_202B_202B_200B_200C_206D_206A_206C_202D_200B_206D_206D_200E_202B_202E(); - QuestSequence? questSequence2 = currentQuest.Quest.FindSequence(currentQuest.Sequence); - disabledDisposable = _200F_200C_200D_206B_200C_202E_206C_206C_206B_206B_206B_200F_206F_202B_200C_200E_206D_206C_206E_202C_202B_202B_206E_206F_206E_200D_206D_200E_206F_206F_202B_202A_200D_206C_202D_202E_202C_202E_202E_206D_202E(questStep == ((questSequence2 != null) ? _202E_202E_202A_202B_206A_206B_202C_202E_206F_200B_206F_206D_206A_200B_206E_202C_206F_206F_200B_202A_206C_206A_206A_206B_202D_202C_200F_206F_206D_200D_206C_200B_202C_202C_200F_206C_200B_202E_200B_202B_202E(questSequence2).LastOrDefault() : null)); - try - { - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Forward, num32)) ? (-1561561467) : (-1561561472)); - while (true) - { - int num52 = num; - num3 = -1561561471; - num4 = num52; - int num53 = num4 + num3; - int num54 = num4 & num3; - switch (num53 - (num54 + num54)) - { - case 2: - num = -1561561472; - break; - case 4: - num = ((!_202A_200B_206B_202D_200D_206D_200B_200E_200C_200D_202D_200C_206B_206A_202C_206E_206E_200F_206B_200D_202A_202B_202B_202D_200B_200E_202E_206A_200C_206C_200F_200F_200B_200F_202C_200B_200F_202C_206B_200D_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? (-1561561470) : (-1561561471)); - break; - case 0: - _206F_202E_202D_200E_200C_200E_200D_206C_206E_200E_202E_206F_200E_202E_206D_200C_206B_200F_206F_206E_206F_202E_202A_206D_202C_202B_206A_206A_206C_200D_200F_206C_206A_206A_206F_202B_202E_206F_206B_200D_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2094221495)); - num = -1561561470; - break; - case 1: - _movementController.Stop(); - _questController.Skip(currentQuest.Quest.Id, currentQuest.Sequence); - num = -1561561467; - break; - case 3: - goto end_IL_12b0; - } - continue; - end_IL_12b0: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? (-352809062) : (-352809061)); - while (true) - { - int num55 = num; - num3 = -352809062; - num4 = num55; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_1390; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)disabledDisposable); - num = -352809062; - break; - case 2: - num = -352809061; - break; - } - continue; - end_IL_1390: - break; - } - } - goto end_IL_1155; - } - } - continue; - end_IL_1155: - break; - } - } - finally - { - num = ((colorDisposable5 == null) ? 403276378 : 403276379); - while (true) - { - int num56 = num; - num3 = 403276378; - num4 = num56; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 403276379; - break; - case 0: - goto end_IL_1400; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable5); - num = 403276378; - break; - } - continue; - end_IL_1400: - break; - } - } - } - finally - { - num = ((colorDisposable3 == null) ? (-1015045512) : (-1015045509)); - while (true) - { - int num57 = num; - num3 = -1015045510; - num4 = num57; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1015045509; - break; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable3); - num = -1015045512; - break; - case 2: - goto end_IL_1470; - } - continue; - end_IL_1470: - break; - } - } - } - finally - { - num = ((colorDisposable2 == null) ? 1419865656 : 1419865659); - while (true) - { - int num58 = num; - num3 = 1419865657; - num4 = num58; - int num59 = num4 + num3; - int num60 = num4 & num3; - switch (num59 - (num60 + num60)) - { - case 0: - num = 1419865659; - break; - case 1: - goto end_IL_14e0; - case 2: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable2); - num = 1419865656; - break; - } - continue; - end_IL_14e0: - break; - } - } - } - finally - { - num = ((colorDisposable == null) ? 1112060778 : 1112060777); - while (true) - { - int num61 = num; - num3 = 1112060779; - num4 = num61; - int num62 = num4 + num3; - int num63 = num4 & num3; - switch (num62 - (num63 + num63)) - { - case 1: - goto end_IL_1552; - case 2: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable); - num = 1112060778; - break; - case 0: - num = 1112060777; - break; - } - continue; - end_IL_1552: - break; - } - } - } - finally - { - num = ((styleDisposable == null) ? 1084173692 : 1084173695); - while (true) - { - int num64 = num; - num3 = 1084173694; - num4 = num64; - int num65 = num4 + num3; - int num66 = num4 & num3; - switch (num65 - (num66 + num66)) - { - case 0: - num = 1084173695; - break; - case 2: - goto end_IL_15c4; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)styleDisposable); - num = 1084173692; - break; - } - continue; - end_IL_15c4: - break; - } - } - if (!_questCardExpanded) - { - goto end_IL_068d; - } - num = -895413615; - while (true) - { - int num67 = num; - num3 = -895413613; - num4 = num67; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 0: - num = -895413615; - continue; - case 2: - _206E_202E_206F_200B_200C_202C_202B_206A_206F_202A_206F_206A_206D_206F_200B_206E_206A_200B_206F_206E_202C_202D_202A_202A_202D_206D_200E_202C_206D_206D_200D_202D_206F_202C_200B_206F_206F_202C_200E_202E_202E(); - _200B_206B_200E_202A_206A_200F_200D_206D_200D_202E_200E_206E_206D_200D_200E_202B_206A_200D_206E_206A_206C_206A_206B_200F_206F_200D_206B_202D_202B_200D_206E_206A_200D_200B_202D_206A_202E_206E_200F_200C_202E(num5 + num6); - if (startedQuest != null) - { - num = -895413614; - continue; - } - break; - case 1: - { - ImRaii.ColorDisposable colorDisposable6 = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Text, UiThemeUtils.DimTextColor, true); - try - { - ImU8String imU8String4 = new ImU8String(15, 3); - imU8String4.AppendFormatted(startedQuest.Quest.Id); - imU8String4.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(970430161)); - imU8String4.AppendFormatted(startedQuest.Sequence); - imU8String4.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-786881555)); - imU8String4.AppendFormatted(startedQuest.Step); - _200E_202C_202D_206D_202B_206E_200E_206F_202D_206D_206F_202C_206A_200B_200C_202B_202E_206A_200F_202D_200E_200C_200E_206D_206C_202B_202B_202E_200D_206C_206E_206E_202D_206C_200B_200E_206E_200C_206E_206E_202E(imU8String4); - } - finally - { - num = ((colorDisposable6 == null) ? (-1801729739) : (-1801729738)); - while (true) - { - int num68 = num; - num3 = -1801729737; - num4 = num68; - int num69 = num4 + num3; - int num70 = num4 & num3; - switch (num69 - (num70 + num70)) - { - case 0: - num = -1801729738; - break; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable6); - num = -1801729739; - break; - case 2: - goto end_IL_1713; - } - continue; - end_IL_1713: - break; - } - } - break; - } - } - break; - } - if (questProgressInfo != null) - { - ImRaii.ColorDisposable colorDisposable7 = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Text, UiThemeUtils.DimTextColor, true); - try - { - ImU8String imU8String5 = new ImU8String(0, 1); - imU8String5.AppendFormatted(questProgressInfo); - _200E_202C_202D_206D_202B_206E_200E_206F_202D_206D_206F_202C_206A_200B_200C_202B_202E_206A_200F_202D_200E_200C_200E_206D_206C_202B_202B_202E_200D_206C_206E_206E_202D_206C_200B_200E_206E_200C_206E_206E_202E(imU8String5); - num = ((!_200C_206A_202D_200B_202E_202B_206F_200C_206D_206B_206C_202D_206C_200E_206C_206A_200E_206D_206E_200F_202D_200C_206D_200F_202B_200B_202A_202A_206A_200F_200B_206E_206C_206F_202D_202C_206D_206D_202D_206D_202E()) ? (-561090679) : (-561090678)); - while (true) - { - int num71 = num; - num3 = -561090677; - num4 = num71; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - _202B_202D_200D_202A_200F_206A_202A_202B_206E_206F_200D_200D_200B_200C_200B_200F_206D_202C_206F_200E_200C_200B_206B_206E_202A_202A_206F_202B_202B_200B_200C_206D_206A_206C_202D_200B_206D_206D_200E_202B_202E(); - _202E_202E_202A_200D_202E_200C_206B_202E_200E_202C_206E_206D_206E_206D_206B_206C_206F_200B_200F_202D_202E_200E_202D_202B_200B_206D_206E_206F_200F_206E_202C_200B_202B_200D_200B_202A_200E_200C_202A_206F_202E(_202A_200F_200D_200D_206A_206C_206D_206C_202B_200E_206F_200F_206B_206D_206B_200B_202D_202C_200B_202C_206D_202A_202B_200D_206C_206B_202C_206C_200B_200E_202D_202E_202E_200F_206B_206F_200C_200D_202E_200F_202E()); - _206E_200B_206D_200D_206D_206F_200B_202A_206F_200C_200D_202B_200F_202A_206D_202E_200E_200E_202C_202A_202A_200B_206E_202D_200D_206A_202C_202A_206D_200B_206C_200B_206F_200E_206A_202E_202D_200F_200E_202E((ImU8String)_200D_202E_202D_200F_206C_200D_206D_202B_206B_206D_200E_202E_202B_202A_200B_200B_200B_200D_206B_206A_202E_206C_202E_206D_200F_206E_206F_200F_202A_202A_202E_200C_200B_200D_200E_206C_206C_200B_202B_202E(FontAwesomeIcon.Copy)); - _206D_202B_202B_200E_200E_206C_200F_200E_202C_206B_202D_206D_206A_200C_206B_200C_202E_200B_202B_202B_206D_200F_206A_200C_206D_206E_200D_200C_206D_202D_206D_200F_206D_206A_206D_200B_202D_202D_200E_206E_202E(); - num = -561090674; - break; - case 5: - num = ((currentQuest.Quest.Info.AlliedSociety == EAlliedSociety.None) ? (-561090680) : (-561090673)); - break; - case 2: - num = ((!_200E_200D_200B_200F_206B_200D_206F_200B_202C_206B_202A_202C_206F_206D_202D_206C_200C_206A_200C_200C_202C_202E_206A_206D_202E_200F_206D_202B_200F_206F_206C_206E_206C_200E_202D_206F_206E_200F_202E_202E()) ? (-561090674) : (-561090675)); - break; - case 0: - num = -561090678; - break; - case 4: - { - _202B_202D_200D_202A_200F_206A_202A_202B_206E_206F_200D_200D_200B_200C_200B_200F_206D_202C_206F_200E_200C_200B_206B_206E_202A_202A_206F_202B_202B_200B_200C_206D_206A_206C_202D_200B_206D_206D_200E_202B_202E(); - ImU8String imU8String6 = new ImU8String(2, 1); - imU8String6.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1805890328)); - imU8String6.AppendFormatted(questProgressInfo.ClassJob); - _206E_200B_206D_200D_206D_206F_200B_202A_206F_200C_200D_202B_200F_202A_206D_202E_200E_200E_202C_202A_202A_200B_206E_202D_200D_206A_202C_202A_206D_200B_206C_200B_206F_200E_206A_202E_202D_200F_200E_202E(imU8String6); - num = -561090680; - break; - } - case 1: - { - string text3 = _202B_206E_200C_200F_202C_200D_206B_206F_206B_206C_200D_200D_200F_200E_202B_200F_206C_202B_202E_202C_200B_202D_206E_200F_202B_206E_200B_200F_202B_206F_200C_202E_206B_206D_206D_206E_200F_206B_206C_206A_202E(MultipleWhitespaceRegex(), _206A_202D_202C_200B_200C_202D_206B_206A_202D_206B_200D_202C_206D_200D_206F_206E_202A_200F_206C_202D_202C_206D_200C_206C_200F_200C_206C_202B_200D_202C_202D_200F_202A_206F_200E_202E_202D_206A_202A_200D_202E((object)questProgressInfo), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-818915859)); - _200B_202C_200E_200B_206E_206F_200D_200F_206C_206D_202A_200D_202A_206F_202A_206A_206E_202A_206B_202E_202D_202C_200C_206E_202B_202D_206F_202E_200F_206C_206D_206E_206E_202D_202C_206E_206E_202A_200C_206A_202E((ImU8String)text3); - _206B_206C_206C_200D_206B_206D_200B_206A_206E_206A_202C_206A_206B_206D_206B_206F_206C_206B_206B_200F_206F_202B_200B_202E_206E_200B_200D_206D_206A_202B_206C_200E_200E_206C_202E_206B_200D_200F_206E_206A_202E(_chatGui, _200F_206A_202C_206C_200B_200B_202E_200E_206C_200E_200F_202E_206C_202D_202A_202D_206E_200D_202A_200D_206E_200C_202A_200F_200E_206F_206A_202B_200D_206E_206B_206F_200E_206B_200D_206C_202D_206A_206F_206E_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2046209483), text3, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(854895789)), (string)null, (ushort?)null); - num = -561090679; - break; - } - case 3: - goto end_IL_17af; - } - continue; - end_IL_17af: - break; - } - } - finally - { - num = ((colorDisposable7 == null) ? (-139688526) : (-139688527)); - while (true) - { - int num72 = num; - num3 = -139688528; - num4 = num72; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -139688527; - break; - case 2: - goto end_IL_1942; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable7); - num = -139688526; - break; - } - continue; - end_IL_1942: - break; - } - } - } - ImRaii.ColorDisposable colorDisposable8 = _202E_200E_200B_206B_206D_206B_206E_202C_206F_200D_202A_206B_200B_206A_200E_206F_202D_206B_200B_200D_200E_200C_202B_202C_202E_206E_206A_206E_206A_202D_202B_202E_200D_202A_202E_202B_206B_200E_202B_202C_202E(); - try - { - num = ((questStep == null) ? 294423165 : 294423157); - while (true) - { - int num73 = num; - num3 = 294423160; - num4 = num73; - int num74 = num4 + num3; - int num75 = num4 & num3; - object obj2; - switch (num74 - (num75 + num75)) - { - case 7: - obj2 = _206B_206B_200C_206C_200D_206C_202D_206C_206F_202B_206B_206E_206E_200E_202A_200C_200C_200D_202A_202B_200E_200F_206A_200E_206C_202E_206D_200B_200F_206C_206A_202E_202E_206A_200B_206A_200F_206D_202C_202A_202E(questSequence); - goto IL_1a17; - case 13: - eInteractionType = _206F_200F_206E_200F_206C_200F_206C_206D_206D_206A_206B_206D_206E_202C_202E_200E_200F_206F_202C_206A_202D_200B_206A_200F_200F_200B_200F_206E_206D_202A_206D_202D_200C_200D_206E_200D_206B_202A_200C_200C_202E(questStep); - num = ((eInteractionType == EInteractionType.WaitForManualProgress) ? 294423164 : 294423161); - break; - case 0: - obj2 = null; - goto IL_1b17; - case 9: - num = ((questStep != null) ? 294423163 : 294423160); - break; - case 14: - _200E_202C_202D_206D_202B_206E_200E_206F_202D_206D_206F_202C_206A_200B_200C_202B_202E_206A_200F_202D_200E_200C_200E_206D_206C_202B_202B_202E_200D_206C_206E_206E_202D_206C_200B_200E_206E_200C_206E_206E_202E((ImU8String)text4); - num = 294423166; - break; - case 8: - num = 294423157; - break; - case 10: - num = ((eInteractionType != EInteractionType.Instruction) ? 294423165 : 294423164); - break; - case 12: - num = ((!flag) ? 294423153 : 294423162); - break; - case 3: - obj2 = _200C_206A_202B_202E_206F_202C_200C_202D_200D_202B_200D_200D_202B_200C_206D_206E_202B_202D_202B_206B_206C_202C_206F_202D_206F_200F_202B_206E_200F_200C_200F_206D_202C_200C_200C_200E_202C_200C_202D_206D_202E(questStep); - goto IL_1b17; - case 11: - obj2 = null; - goto IL_1a17; - case 1: - num = ((eInteractionType == EInteractionType.Snipe) ? 294423164 : 294423154); - break; - case 2: - _206F_206B_200C_206A_206B_202B_202A_202D_200F_206D_202D_200F_206E_202E_200C_200F_206D_202B_202E_200F_206A_206B_206D_206D_202A_200F_200D_206B_206B_202E_202E_206B_200B_200D_202D_202D_202E_202D_202C_206A_202E(colorDisposable8, ImGuiCol.Text, _200D_206D_206B_202E_202A_206B_202A_202E_200D_202D_200C_200C_206A_202A_202A_206D_206E_206D_200B_206E_206E_202E_202B_206F_206A_200F_200D_202B_200B_202D_202C_206A_202C_200E_206D_200E_206F_200B_200E_202B_202E(), true); - num = 294423153; - break; - case 4: - flag = true; - num = 294423156; - break; - case 5: - flag = false; - num = 294423156; - break; - case 6: - goto end_IL_19b3; - IL_1b17: - if (obj2 == null) - { - num = ((questSequence != null) ? 294423167 : 294423155); - break; - } - goto IL_1a2e; - IL_1a17: - if (obj2 == null) - { - obj2 = _206F_206C_202C_206B_200E_206F_202B_202B_202A_202D_202B_206D_206B_200D_202C_202D_200D_202D_202D_200D_200F_200B_200E_200E_200B_202D_200D_206A_200F_202A_200C_200B_206C_206C_202D_206B_206D_206C_202D_206D_202E(currentQuest.Quest.Root); - } - goto IL_1a2e; - IL_1a2e: - text4 = (string)obj2; - num = (_206B_200B_200F_202E_200C_202A_200B_206A_202B_206F_202B_206E_202C_206F_200B_206B_200F_200F_206D_206B_202A_202A_206A_206A_200C_200C_200E_200B_200B_202C_202D_206B_206C_200F_202B_206F_200F_200E_200C_202E(text4) ? 294423166 : 294423158); - break; - } - continue; - end_IL_19b3: - break; - } - } - finally - { - num = ((colorDisposable8 == null) ? (-347151565) : (-347151568)); - while (true) - { - int num76 = num; - num3 = -347151567; - num4 = num76; - int num77 = num4 + num3; - int num78 = num4 & num3; - switch (num77 - (num78 + num78)) - { - case 0: - num = -347151568; - break; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable8); - num = -347151565; - break; - case 2: - goto end_IL_1bcc; - } - continue; - end_IL_1bcc: - break; - } - } - _200E_202C_202D_206D_202B_206E_200E_206F_202D_206D_206F_202C_206A_200B_200C_202B_202E_206A_200F_202D_200E_200C_200E_206D_206C_202B_202B_202E_200D_206C_206E_206E_202D_206C_200B_200E_206E_200C_206E_206E_202E((ImU8String)_questController.ToStatString()); - QuestController.QuestProgress nextQuest = _questController.NextQuest; - if (nextQuest != null) - { - ImRaii.ColorDisposable colorDisposable9 = _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol.Text, _202A_206C_206E_206E_206D_206D_202A_200F_200E_206E_200C_200B_202B_200C_200F_200D_202D_200E_202C_200C_206C_200E_200C_202A_206F_202E_200E_200E_200F_202D_206F_206E_206A_202A_202D_200C_200E_202D_202A_202A_202E(), true); - try - { - ImU8String imU8String7 = new ImU8String(9, 2); - imU8String7.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1689338203)); - imU8String7.AppendFormatted(Shorten(nextQuest.Quest.Info.Name)); - imU8String7.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1495931675)); - imU8String7.AppendFormatted(nextQuest.Quest.Id); - imU8String7.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - _200E_202C_202D_206D_202B_206E_200E_206F_202D_206D_206F_202C_206A_200B_200C_202B_202E_206A_200F_202D_200E_200C_200E_206D_206C_202B_202B_202E_200D_206C_206E_206E_202D_206C_200B_200E_206E_200C_206E_206E_202E(imU8String7); - } - finally - { - num = ((colorDisposable9 == null) ? 112958250 : 112958251); - while (true) - { - int num79 = num; - num3 = 112958250; - num4 = num79; - int num80 = num4 + num3; - int num81 = num4 & num3; - switch (num80 - (num81 + num81)) - { - case 2: - num = 112958251; - break; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)colorDisposable9); - num = 112958250; - break; - case 0: - goto end_IL_1ce9; - } - continue; - end_IL_1ce9: - break; - } - } - } - _206D_202B_202C_206F_206F_200B_206F_206F_202D_200F_202C_206D_202E_206A_202B_202C_202D_202D_200F_202E_206C_202E_206E_200E_202E_206C_206F_202A_202B_202B_206B_200B_200D_200B_200B_202D_206C_202B_206B_202C_202E(); - goto end_IL_068d; + ImGui.SetTooltip("Start automation"); } + } + ImGui.SameLine(); + using (ImRaii.PushStyle(ImGuiStyleVar.FrameBorderSize, 1f)) + { + using (ImRaii.PushColor(ImGuiCol.Border, UiThemeUtils.CardBorderHighColor)) + { + using (ImRaii.PushColor(ImGuiCol.Button, new Vector4(0.12f, 0.1f, 0.18f, 1f))) + { + using (ImRaii.PushColor(ImGuiCol.ButtonHovered, new Vector4(0.2f, 0.16f, 0.28f, 1f))) + { + using (ImRaii.PushColor(ImGuiCol.ButtonActive, new Vector4(0.25f, 0.2f, 0.35f, 1f))) + { + if (UiThemeUtils.IconButton(FontAwesomeIcon.StepForward, frameHeight2)) + { + _questController.StartSingleStep("UI step"); + } + if (ImGui.IsItemHovered()) + { + ImGui.SetTooltip("Execute single step"); + } + ImGui.SameLine(); + if (UiThemeUtils.IconButton(FontAwesomeIcon.Stop, frameHeight2)) + { + StopAllControllers("UI stop"); + } + DrawStopConditionTooltip(); + ImGui.SameLine(); + using (ImRaii.Disabled(questStep == currentQuest.Quest.FindSequence(currentQuest.Sequence)?.Steps.LastOrDefault())) + { + if (UiThemeUtils.IconButton(FontAwesomeIcon.Forward, frameHeight2)) + { + _movementController.Stop(); + _questController.Skip(currentQuest.Quest.Id, currentQuest.Sequence); + } + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) + { + ImGui.SetTooltip("Skip current step"); + } + } + } + } + } } - continue; - end_IL_068d: - break; + } + if (_questCardExpanded) + { + ImGui.Spacing(); + ImGui.PushTextWrapPos(cursorPosX + num); + if (startedQuest != null) + { + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.DimTextColor)) + { + ImU8String text5 = new ImU8String(15, 3); + text5.AppendFormatted(startedQuest.Quest.Id); + text5.AppendLiteral(" / Seq "); + text5.AppendFormatted(startedQuest.Sequence); + text5.AppendLiteral(" / Step "); + text5.AppendFormatted(startedQuest.Step); + ImGui.TextUnformatted(text5); + } + } + if (questProgressInfo != null) + { + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.DimTextColor)) + { + ImU8String text6 = new ImU8String(0, 1); + text6.AppendFormatted(questProgressInfo); + ImGui.TextUnformatted(text6); + if (ImGui.IsItemClicked()) + { + string text7 = MultipleWhitespaceRegex().Replace(questProgressInfo.ToString(), " "); + ImGui.SetClipboardText(text7); + _chatGui.Print("Copied '" + text7 + "' to clipboard"); + } + if (ImGui.IsItemHovered()) + { + ImGui.SameLine(); + ImGui.PushFont(UiBuilder.IconFont); + ImGui.Text(FontAwesomeIcon.Copy.ToIconString()); + ImGui.PopFont(); + } + if (currentQuest.Quest.Info.AlliedSociety != EAlliedSociety.None) + { + ImGui.SameLine(); + ImU8String text8 = new ImU8String(2, 1); + text8.AppendLiteral("/ "); + text8.AppendFormatted(questProgressInfo.ClassJob); + ImGui.Text(text8); + } + } + } + using (ImRaii.ColorDisposable colorDisposable = new ImRaii.ColorDisposable()) + { + bool flag; + if (questStep != null) + { + EInteractionType interactionType = questStep.InteractionType; + if (interactionType == EInteractionType.WaitForManualProgress || interactionType == EInteractionType.Snipe || interactionType == EInteractionType.Instruction) + { + flag = true; + goto IL_0935; + } + } + flag = false; + goto IL_0935; + IL_0935: + if (flag) + { + colorDisposable.Push(ImGuiCol.Text, ImGuiColors.DalamudOrange); + } + string text9 = questStep?.Comment ?? questSequence?.Comment ?? currentQuest.Quest.Root.Comment; + if (!string.IsNullOrEmpty(text9)) + { + ImGui.TextUnformatted(text9); + } + } + ImGui.TextUnformatted(_questController.ToStatString()); + QuestController.QuestProgress nextQuest = _questController.NextQuest; + if (nextQuest != null) + { + using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudYellow)) + { + ImU8String text10 = new ImU8String(9, 2); + text10.AppendLiteral("Next: "); + text10.AppendFormatted(Shorten(nextQuest.Quest.Info.Name)); + text10.AppendLiteral(" ("); + text10.AppendFormatted(nextQuest.Quest.Id); + text10.AppendLiteral(")"); + ImGui.TextUnformatted(text10); + } + } + ImGui.PopTextWrapPos(); } } catch (Exception ex) { - UiThemeUtils.WrappedTextColored(_200C_206C_200D_200D_206F_200C_200E_206C_202B_202E_202D_200D_206E_200E_206C_200F_206A_206E_206E_200D_200E_202A_202C_200F_200F_202E_202B_200F_206E_202A_202A_206C_200F_200E_206D_200B_206A_202B_206E_202B_202E(), _206A_202D_202C_200B_200C_202D_206B_206A_202D_206B_200D_202C_206D_200D_206F_206E_202A_200F_206C_202D_202C_206D_200C_206C_200F_200C_206C_202B_200D_202C_202D_200F_202A_206F_200E_202E_202D_206A_202A_200D_202E((object)ex)); - _200F_206C_202A_202C_200E_200D_200E_206A_202B_200D_202B_206A_206F_202C_206F_200D_202E_202B_202A_200B_200C_200F_200E_202E_200B_202C_206B_202B_206F_200C_200F_206C_206C_206E_200E_202A_206F_202C_202E_206F_202E((ILogger)_logger, ex, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(459752988), Array.Empty<object>()); + UiThemeUtils.WrappedTextColored(ImGuiColors.DalamudRed, ex.ToString()); + _logger.LogError(ex, "Could not handle active quest card"); } UiThemeUtils.EndCard(item, item2, item3); DrawSimulationControls(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawSimulationControls() { - int num = ((_questController.SimulatedQuest != null) ? 1313421221 : 1313421218); - QuestController.QuestProgress simulatedQuest = default(QuestController.QuestProgress); - QuestSequence questSequence = default(QuestSequence); - Vector2 contentStartPos = default(Vector2); - float availableWidth = default(float); - ImDrawListPtr drawList = default(ImDrawListPtr); - while (true) + if (_questController.SimulatedQuest == null) { - int num2 = num; - int num3 = 1313421222; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + QuestController.QuestProgress simulatedQuest = _questController.SimulatedQuest; + UiThemeUtils.SectionSpacing(); + var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); + UiThemeUtils.SectionHeader("Simulation"); + UiThemeUtils.WrappedTextColored(ImGuiColors.DalamudRed, "Quest sim active (experimental)"); + UiThemeUtils.WrappedText($"Sequence: {simulatedQuest.Sequence}"); + ImGui.BeginDisabled(simulatedQuest.Sequence == 0); + if (UiThemeUtils.IconButton(FontAwesomeIcon.Minus, ImGui.GetFrameHeight())) + { + _movementController.Stop(); + _questController.Stop("Sim-"); + byte oldSequence = simulatedQuest.Sequence; + byte sequence = simulatedQuest.Quest.Root.QuestSequence.Select((QuestSequence x) => x.Sequence).LastOrDefault<byte>((byte x) => x < oldSequence, 0); + _questController.SimulatedQuest.SetSequence(sequence); + } + ImGui.EndDisabled(); + ImGui.SameLine(); + ImGui.BeginDisabled(simulatedQuest.Sequence >= byte.MaxValue); + if (UiThemeUtils.IconButton(FontAwesomeIcon.Plus, ImGui.GetFrameHeight())) + { + _movementController.Stop(); + _questController.Stop("Sim+"); + byte oldSequence2 = simulatedQuest.Sequence; + byte sequence2 = simulatedQuest.Quest.Root.QuestSequence.Select((QuestSequence x) => x.Sequence).FirstOrDefault((byte x) => x > oldSequence2, byte.MaxValue); + simulatedQuest.SetSequence(sequence2); + } + ImGui.EndDisabled(); + QuestSequence questSequence = simulatedQuest.Quest.FindSequence(simulatedQuest.Sequence); + if (questSequence != null) + { + using (ImRaii.PushId("SimulatedStep")) { - default: - continue; - case 2: - num = 1313421218; - continue; - case 6: - { - _movementController.Stop(); - _questController.Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(809151549)); - byte oldSequence = simulatedQuest.Sequence; - byte sequence = (from x in _206C_202B_202E_202E_202E_202B_206C_200F_202B_206B_206E_200E_200D_200E_202C_200B_202E_202C_202D_202E_202B_202C_206E_202D_200F_206C_206F_200E_206A_200E_206F_200F_202D_202B_206F_200B_206A_200D_206D_202B_202E(simulatedQuest.Quest.Root) - select _003C_003Ec._200F_206D_206F_206B_206B_206E_206C_202B_202E_202A_206B_202E_202D_200C_206B_206F_206A_202A_206F_206B_202A_206B_202E_206D_202B_202D_206B_200D_202E_202E_200E_200C_200D_200B_200F_200B_206F_206F_206E_202B_202E(x)).LastOrDefault<byte>((byte x) => x < oldSequence, 0); - _questController.SimulatedQuest.SetSequence(sequence); - num = 1313421217; - continue; - } - case 1: - { - _movementController.Stop(); - _questController.Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-779639025)); - byte oldSequence2 = simulatedQuest.Sequence; - byte sequence2 = (from x in _206C_202B_202E_202E_202E_202B_206C_200F_202B_206B_206E_200E_200D_200E_202C_200B_202E_202C_202D_202E_202B_202C_206E_202D_200F_206C_206F_200E_206A_200E_206F_200F_202D_202B_206F_200B_206A_200D_206D_202B_202E(simulatedQuest.Quest.Root) - select _003C_003Ec._200F_206D_206F_206B_206B_206E_206C_202B_202E_202A_206B_202E_202D_200C_206B_206F_206A_202A_206F_206B_202A_206B_202E_206D_202B_202D_206B_200D_202E_202E_200E_200C_200D_200B_200F_200B_206F_206F_206E_202B_202E(x)).FirstOrDefault((byte x) => x > oldSequence2, byte.MaxValue); - simulatedQuest.SetSequence(sequence2); - num = 1313421222; - continue; - } - case 7: - _202B_206F_206A_200B_206A_200C_206C_206F_202B_202E_202D_200D_200C_200E_202E_200B_200B_200E_200D_206F_200B_200E_206E_202D_202D_200C_202B_206B_202C_200B_200E_206B_200C_202C_202B_202A_202D_206E_206F_200C_202E(); - _202B_202D_200D_202A_200F_206A_202A_202B_206E_206F_200D_200D_200B_200C_200B_200F_206D_202C_206F_200E_200C_200B_206B_206E_202A_202A_206F_202B_202B_200B_200C_206D_206A_206C_202D_200B_206D_206D_200E_202B_202E(); - _200D_200B_200B_200B_200B_206A_202C_202D_202D_202D_200F_200E_200D_202C_202C_206D_206A_206E_202A_206A_200B_202A_206F_202C_202C_202D_206A_206A_202A_206D_206C_200B_206A_206D_200E_200E_206E_206C_206C_206B_202E(simulatedQuest.Sequence >= byte.MaxValue); - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Plus, _206C_206C_206C_206D_200C_200E_202C_202C_206E_202C_202C_206B_200F_202A_200D_202C_200B_206E_206B_202D_206E_206F_200C_206B_200C_206B_206B_202D_202A_206E_202A_200B_200E_202C_200D_206F_200F_206D_206A_200F_202E())) ? 1313421222 : 1313421223); - continue; - case 4: - return; - case 0: - _202B_206F_206A_200B_206A_200C_206C_206F_202B_202E_202D_200D_200C_200E_202E_200B_200B_200E_200D_206F_200B_200E_206E_202D_202D_200C_202B_206B_202C_200B_200E_206B_200C_202C_202B_202A_202D_206E_206F_200C_202E(); - questSequence = simulatedQuest.Quest.FindSequence(simulatedQuest.Sequence); - if (questSequence != null) + UiThemeUtils.WrappedText($"Step: {simulatedQuest.Step} / {questSequence.Steps.Count - 1}"); + ImGui.BeginDisabled(simulatedQuest.Step == 0); + if (UiThemeUtils.IconButton(FontAwesomeIcon.Minus, ImGui.GetFrameHeight())) { - num = 1313421219; - continue; + _movementController.Stop(); + _questController.Stop("SimStep-"); + simulatedQuest.SetStep(Math.Min(simulatedQuest.Step - 1, questSequence.Steps.Count - 1)); } - break; - case 3: - { - simulatedQuest = _questController.SimulatedQuest; - UiThemeUtils.SectionSpacing(); - (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); - UiThemeUtils.SectionHeader(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1277207182)); - UiThemeUtils.WrappedTextColored(_200C_206C_200D_200D_206F_200C_200E_206C_202B_202E_202D_200D_206E_200E_206C_200F_206A_206E_206E_200D_200E_202A_202C_200F_200F_202E_202B_200F_206E_202A_202A_206C_200F_200E_206D_200B_206A_202B_206E_202B_202E(), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-159821034)); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(10, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1884634144)); - defaultInterpolatedStringHandler2.AppendFormatted(simulatedQuest.Sequence); - UiThemeUtils.WrappedText(defaultInterpolatedStringHandler2.ToStringAndClear()); - _200D_200B_200B_200B_200B_206A_202C_202D_202D_202D_200F_200E_200D_202C_202C_206D_206A_206E_202A_206A_200B_202A_206F_202C_202C_202D_206A_206A_202A_206D_206C_200B_206A_206D_200E_200E_206E_206C_206C_206B_202E(simulatedQuest.Sequence == 0); - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Minus, _206C_206C_206C_206D_200C_200E_202C_202C_206E_202C_202C_206B_200F_202A_200D_202C_200B_206E_206B_202D_206E_206F_200C_206B_200C_206B_206B_202D_202A_206E_202A_200B_200E_202C_200D_206F_200F_206D_206A_200F_202E())) ? 1313421217 : 1313421216); - continue; - } - case 5: - { - ImRaii.IdDisposable idDisposable = _206B_206D_200C_206D_202E_200B_206F_200B_202A_200E_202A_202B_200E_206B_206F_200B_206B_206D_200D_200E_202A_200F_202D_202A_206F_200B_206D_206D_206D_206C_206F_200F_206C_200D_206C_206E_200F_206C_206D_202E_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1402805809), true); - try + ImGui.EndDisabled(); + ImGui.SameLine(); + ImGui.BeginDisabled(simulatedQuest.Step >= questSequence.Steps.Count); + if (UiThemeUtils.IconButton(FontAwesomeIcon.Plus, ImGui.GetFrameHeight())) { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(9, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(271839448)); - defaultInterpolatedStringHandler.AppendFormatted(simulatedQuest.Step); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1534070043)); - defaultInterpolatedStringHandler.AppendFormatted(_200D_200C_206C_202E_200B_202C_206E_200D_200B_206E_202C_206E_206F_206B_200C_202E_202E_200B_206A_200F_202E_206E_206B_202E_200B_200B_202A_200F_202E_200C_202E_202B_200B_206A_202B_200E_202C_202B_206C_202E_202E(questSequence).Count - 1); - UiThemeUtils.WrappedText(defaultInterpolatedStringHandler.ToStringAndClear()); - _200D_200B_200B_200B_200B_206A_202C_202D_202D_202D_200F_200E_200D_202C_202C_206D_206A_206E_202A_206A_200B_202A_206F_202C_202C_202D_206A_206A_202A_206D_206C_200B_206A_206D_200E_200E_206E_206C_206C_206B_202E(simulatedQuest.Step == 0); - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Minus, _206C_206C_206C_206D_200C_200E_202C_202C_206E_202C_202C_206B_200F_202A_200D_202C_200B_206E_206B_202D_206E_206F_200C_206B_200C_206B_206B_202D_202A_206E_202A_200B_200E_202C_200D_206F_200F_206D_206A_200F_202E())) ? 1601603120 : 1601603123); - while (true) - { - int num7 = num; - num3 = 1601603121; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 4: - _questController.SkipSimulatedTask(); - num = 1601603127; - break; - case 2: - _movementController.Stop(); - _questController.Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1623488944)); - simulatedQuest.SetStep(_202B_200E_206D_206F_202A_206B_202B_202E_202E_206D_206A_206A_200C_200E_206B_206F_200E_200C_202A_206A_206B_206C_200E_206F_206F_206A_200B_202D_202E_202B_200B_206F_202D_202D_206A_206A_200C_206F_200F_206B_202E(simulatedQuest.Step - 1, _200D_200C_206C_202E_200B_202C_206E_200D_200B_206E_202C_206E_206F_206B_200C_202E_202E_200B_206A_200F_202E_206E_206B_202E_200B_200B_202A_200F_202E_200C_202E_202B_200B_206A_202B_200E_202C_202B_206C_202E_202E(questSequence).Count - 1)); - num = 1601603120; - break; - case 7: - _movementController.Stop(); - _questController.Stop(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-693037370)); - simulatedQuest.SetStep((simulatedQuest.Step == _200D_200C_206C_202E_200B_202C_206E_200D_200B_206E_202C_206E_206F_206B_200C_202E_202E_200B_206A_200F_202E_206E_206B_202E_200B_200B_202A_200F_202E_200C_202E_202B_200B_206A_202B_200E_202C_202B_206C_202E_202E(questSequence).Count - 1) ? 255 : (simulatedQuest.Step + 1)); - num = 1601603124; - break; - case 1: - _202B_206F_206A_200B_206A_200C_206C_206F_202B_202E_202D_200D_200C_200E_202E_200B_200B_200E_200D_206F_200B_200E_206E_202D_202D_200C_202B_206B_202C_200B_200E_206B_200C_202C_202B_202A_202D_206E_206F_200C_202E(); - _202B_202D_200D_202A_200F_206A_202A_202B_206E_206F_200D_200D_200B_200C_200B_200F_206D_202C_206F_200E_200C_200B_206B_206E_202A_202A_206F_202B_202B_200B_200C_206D_206A_206C_202D_200B_206D_206D_200E_202B_202E(); - _200D_200B_200B_200B_200B_206A_202C_202D_202D_202D_200F_200E_200D_202C_202C_206D_206A_206E_202A_206A_200B_202A_206F_202C_202C_202D_206A_206A_202A_206D_206C_200B_206A_206D_200E_200E_206E_206C_206C_206B_202E(simulatedQuest.Step >= _200D_200C_206C_202E_200B_202C_206E_200D_200B_206E_202C_206E_206F_206B_200C_202E_202E_200B_206A_200F_202E_206E_206B_202E_200B_200B_202A_200F_202E_200C_202E_202B_200B_206A_202B_200E_202C_202B_206C_202E_202E(questSequence).Count); - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Plus, _206C_206C_206C_206D_200C_200E_202C_202C_206E_202C_202C_206B_200F_202A_200D_202C_200B_206E_206B_202D_206E_206F_200C_206B_200C_206B_206B_202D_202A_206E_202A_200B_200E_202C_200D_206F_200F_206D_206A_200F_202E())) ? 1601603124 : 1601603126); - break; - case 5: - _202B_206F_206A_200B_206A_200C_206C_206F_202B_202E_202D_200D_200C_200E_202E_200B_200B_200E_200D_206F_200B_200E_206E_202D_202D_200C_202B_206B_202C_200B_200E_206B_200C_202C_202B_202A_202D_206E_206F_200C_202E(); - num = ((!_206A_206C_202B_202C_202D_202B_200C_200D_202C_206B_206E_206E_202C_202A_200C_202E_202A_206B_206A_200D_200C_200D_200D_202C_200C_202B_200F_200C_202D_200E_200C_206A_206D_206B_202E_200E_206C_202A_202C_202A_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1303370913), default(Vector2))) ? 1601603127 : 1601603125); - break; - case 0: - _questController.SimulateQuest(null, 0, 0); - _movementController.Stop(); - _questController.Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-657389191)); - num = 1601603129; - break; - case 3: - num = 1601603123; - break; - case 6: - _202B_202D_200D_202A_200F_206A_202A_202B_206E_206F_200D_200D_200B_200C_200B_200F_206D_202C_206F_200E_200C_200B_206B_206E_202A_202A_206F_202B_202B_200B_200C_206D_206A_206C_202D_200B_206D_206D_200E_202B_202E(); - num = ((!_206A_206C_202B_202C_202D_202B_200C_200D_202C_206B_206E_206E_202C_202A_200C_202E_202A_206B_206A_200D_200C_200D_200D_202C_200C_202B_200F_200C_202D_200E_200C_206A_206D_206B_202E_200E_206C_202A_202C_202A_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-522285743), default(Vector2))) ? 1601603129 : 1601603121); - break; - case 8: - goto end_IL_038b; - } - continue; - end_IL_038b: - break; - } + _movementController.Stop(); + _questController.Stop("SimStep+"); + simulatedQuest.SetStep((simulatedQuest.Step == questSequence.Steps.Count - 1) ? 255 : (simulatedQuest.Step + 1)); } - finally + ImGui.EndDisabled(); + if (ImGui.Button("Skip current task")) { - num = ((idDisposable == null) ? (-2068302135) : (-2068302134)); - while (true) - { - int num10 = num; - num3 = -2068302133; - num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -2068302134; - break; - case 2: - goto end_IL_05ce; - case 1: - _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E((IDisposable)idDisposable); - num = -2068302135; - break; - } - continue; - end_IL_05ce: - break; - } + _questController.SkipSimulatedTask(); + } + ImGui.SameLine(); + if (ImGui.Button("Clear sim")) + { + _questController.SimulateQuest(null, 0, 0); + _movementController.Stop(); + _questController.Stop("ClearSim"); } - break; } - } - break; } UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); } private static string Shorten(string text) { - int num = ((_206C_200F_202B_206D_200F_202E_202E_202A_200C_206D_202C_200E_202B_202A_206B_202D_206F_206F_206D_202C_202E_202E_206B_202E_202C_206C_202D_202A_206F_202A_200C_200C_206F_206D_200D_200D_202E_206C_200E_206E_202E(text) <= 35) ? (-1117641395) : (-1117641394)); - while (true) + if (text.Length > 35) { - int num2 = num; - int num3 = -1117641393; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0048; - case 2: - return text; - case 1: - return _202A_200D_206C_200C_200C_200E_206D_202A_202E_206F_202B_200D_202D_200B_202C_200F_206F_200B_202C_202B_206A_200D_206D_206A_202C_206C_200D_202C_202E_202D_206B_200F_206C_200C_200C_200B_202D_206E_200B_206C_202E(_200C_206F_202E_206A_206F_202B_202A_200D_200C_200F_206C_206A_202E_206A_200B_200F_200E_200F_202C_200D_202A_202A_206B_200C_200E_202D_206A_206B_206B_206B_202B_200D_200B_202D_202A_206A_202C_206F_200D_206D_202E(_202B_202C_200B_202D_206D_200C_206F_202A_202B_200C_206B_202E_206E_200B_202C_200B_206A_206E_206E_202B_200E_206F_206D_202C_206B_206E_202A_202C_200E_206A_202B_206E_206B_200D_202A_200E_200B_200D_202A_202C_202E(text, 0, 30)), _202D_202E_200B_206C_200C_200D_202E_200F_206F_202E_206B_200B_206E_206D_206D_200C_206D_200F_206B_202B_206D_206C_206A_200D_200F_202C_200E_200E_202D_206A_206A_200D_200B_200E_200F_206A_202C_202E_202A_206D_202E(_206D_202D_206B_206E_206C_202A_200E_206B_202C_202A_206E_206F_202E_200F_200D_202A_200B_206B_202C_206A_206F_206D_206B_200C_206C_200F_200C_206B_202E_206D_206A_202C_200C_206F_202C_200D_200B_202E_202D_206A_202E((SeIconChar)57434))); - } - continue; - IL_0048: - num = -1117641394; + return string.Concat(text.AsSpan(0, 30).Trim(), ((SeIconChar)57434).ToIconString().AsSpan()); } - } - - static Delegate _206B_202D_200E_202B_202B_200D_202E_202C_206F_202D_202D_202B_206E_202B_202A_200D_200F_206C_206C_200B_200E_206A_206D_202B_206A_202A_202B_202D_206A_206F_200F_206B_206D_200C_202A_200E_200B_206E_200F_200C_202E(Delegate P_0, Delegate P_1) - { - return Delegate.Combine(P_0, P_1); - } - - static Delegate _202A_206F_200E_202B_202B_206C_202C_200F_206C_200B_202B_200E_206F_200B_200C_206C_202E_202D_206E_200B_202E_206C_206B_206C_202D_206D_200D_206D_206B_206F_200B_206E_202C_206E_200D_200D_200F_202A_200C_206E_202E(Delegate P_0, Delegate P_1) - { - return Delegate.Remove(P_0, P_1); - } - - static Vector4 _200E_200F_202C_206B_200B_202B_206F_206B_206F_206D_206D_200B_206A_200E_200D_200C_206F_202B_202D_202A_206E_206C_202A_206D_206E_206A_200D_202D_206F_206C_206F_206D_200F_202A_200C_200F_200F_200C_202B_206A_202E() - { - return ImGuiColors.ParsedGold; - } - - static ImRaii.ColorDisposable _206D_206E_206C_200F_206F_206C_200F_202D_206A_206F_206B_200F_206D_206A_202A_202E_202A_202C_206E_200B_202C_200B_202C_200C_202B_206D_206E_202C_200D_206C_200B_200B_206F_202D_206D_200C_206C_200D_200D_202E_202E(ImGuiCol P_0, Vector4 P_1, bool P_2) - { - return ImRaii.PushColor(P_0, P_1, P_2); - } - - static string _206F_200E_200B_206D_202B_200E_202B_202C_206A_206F_202A_200E_206E_200E_206C_202C_206A_202B_202C_202B_200D_206D_206D_200B_200B_202B_202B_206B_200E_202D_206B_200D_206A_200B_202D_200C_200C_200E_206B_202B_202E(FateDefinition P_0) - { - return P_0.Name; - } - - static string _200C_202D_202E_206B_202C_202D_200B_202C_206F_200F_206E_202C_206C_206E_200C_206B_200B_206A_206C_202E_206A_202D_200E_206F_206D_200E_202A_202E_206C_202D_202E_202B_202D_206C_202E_200F_200D_202A_206D_202E_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static Vector2 _202E_206F_202E_206B_200C_200C_202B_206C_202D_200F_206A_206E_200E_202C_206A_202D_206E_200D_200E_206C_200B_200C_206E_206E_206E_200F_206D_200D_206F_202E_206F_202C_202A_206D_206A_206C_202B_206E_206B_200C_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static void _200E_202C_202D_206D_202B_206E_200E_206F_202D_206D_206F_202C_206A_200B_200C_202B_202E_206A_200F_202D_200E_200C_200E_206D_206C_202B_202B_202E_200D_206C_206E_206E_202D_206C_200B_200E_206E_200C_206E_206E_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static void _200E_202B_202D_206F_206F_206E_206D_200C_200E_200C_206A_200E_202B_206C_202D_206F_200C_200D_206C_206E_206B_206F_200B_200E_206A_206A_200E_206E_202D_206A_206C_200D_200B_206D_206D_202E_200C_200E_202A_206B_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _202E_200E_200E_202E_200D_206E_206F_206E_200C_206F_202C_206D_200D_200C_206F_206B_202B_206F_206F_200F_206D_200E_200B_200E_206D_200E_206F_202C_202A_206F_202D_206B_202C_202E_200F_206B_200E_206E_206D_202D_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static float _206C_206C_206C_206D_200C_200E_202C_202C_206E_202C_202C_206B_200F_202A_200D_202C_200B_206E_206B_202D_206E_206F_200C_206B_200C_206B_206B_202D_202A_206E_202A_200B_200E_202C_200D_206F_200F_206D_206A_200F_202E() - { - return ImGui.GetFrameHeight(); - } - - static Vector4 _206C_206B_206D_206F_202B_206B_206C_200C_206F_202D_206B_202B_200D_206F_206B_206C_206A_202C_200E_206E_202A_200C_200D_200C_206E_206D_202E_200E_200C_200F_202D_200C_202C_200B_202D_206B_206F_206E_202D_206D_202E() - { - return ImGuiColors.ParsedGreen; - } - - static string _206A_200D_200F_206F_206D_206D_206B_206B_206A_200B_202A_202C_202B_202D_202A_200B_202A_202B_202B_202D_206F_202D_202E_200E_206B_206F_200E_202A_200E_206C_202D_202B_206E_200F_206A_200B_206F_206A_206A_206B_202E(SeasonalDutyDefinition P_0) - { - return P_0.Name; - } - - static Vector4 _200D_206A_202A_200E_206C_200D_202D_200F_202B_200B_206E_200E_206C_200D_202C_206C_202E_206C_206C_200E_202A_200B_202B_200F_202E_202D_202A_200E_200B_206E_206B_206B_206E_200D_206C_206E_206F_206B_202B_206E_202E() - { - return ImGuiColors.ParsedPurple; - } - - static Vector4 _200D_206D_206B_202E_202A_206B_202A_202E_200D_202D_200C_200C_206A_202A_202A_206D_206E_206D_200B_206E_206E_202E_202B_206F_206A_200F_200D_202B_200B_202D_202C_206A_202C_200E_206D_200E_206F_200B_200E_202B_202E() - { - return ImGuiColors.DalamudOrange; - } - - static Vector4 _202E_202C_200D_202A_202E_206F_206A_206A_200F_202D_206D_200F_206C_200B_200C_202B_206B_200D_206F_200F_202C_200B_202B_200C_206A_202A_202D_202E_206C_200B_206B_202A_206D_206D_202A_206B_206A_200E_200B_202C_202E() - { - return ImGuiColors.ParsedBlue; - } - - static bool _200E_200D_200B_200F_206B_200D_206F_200B_202C_206B_202A_202C_206F_206D_202D_206C_200C_206A_200C_200C_202C_202E_206A_206D_202E_200F_206D_202B_200F_206F_206C_206E_206C_200E_202D_206F_206E_200F_202E_202E() - { - return ImGui.IsItemHovered(); - } - - static void _202C_206D_202C_206B_206F_200C_200E_206A_202C_200D_200D_206F_206B_200C_200D_202B_206D_200E_200D_206C_200D_200B_200C_200C_200D_206C_202B_202A_202C_202C_202B_202E_206A_202C_206F_206B_202D_200D_202D_206C_202E() - { - ImGui.BeginTooltip(); - } - - static void _206A_200D_200E_200B_206C_206E_202B_200B_206D_206F_202E_206A_202A_200F_206A_200D_200B_206C_206A_202C_206A_202C_206A_200C_202C_200E_200B_202C_206C_206B_200E_206F_206E_202C_202B_202C_202C_200B_202C_202A_202E(ImU8String P_0) - { - ImGui.BulletText(P_0); - } - - static void _206E_206C_200F_202D_206C_200C_206B_200F_206D_206A_202C_206C_206D_206F_200D_202C_202E_202E_206E_200D_206E_202A_200E_206D_202C_202D_200F_206B_206C_200E_206F_202A_206A_200D_202A_206D_206A_200B_200E_202B_202E() - { - ImGui.EndTooltip(); - } - - static float _206C_206E_200C_202A_200C_202B_200E_206D_206F_200B_202C_202C_200C_206D_202A_200D_206A_206D_200F_202C_206A_200B_202B_200F_202C_202D_206E_206F_200D_206C_206B_206E_206A_206E_202C_206C_200F_206B_200C_202A_202E() - { - return ImGui.GetCursorPosX(); - } - - static ImGuiStylePtr _202C_206C_200C_202E_206C_200B_200F_206D_206E_206F_202D_200F_200B_206F_202C_202D_202E_200F_206B_200E_200C_200F_202D_200C_200F_202E_206F_206D_206B_206C_202A_206F_202B_200D_202E_200D_206C_206C_202A_206B_202E() - { - return ImGui.GetStyle(); - } - - static void _202C_202A_202E_200C_202C_206A_200D_200C_206A_206D_206F_200C_206E_200B_200D_202A_202C_200E_202A_206A_200F_206E_202C_202E_206A_202A_202B_200B_206A_206C_200C_202C_206C_206B_202D_202E_202E_200C_206F_202A_202E(float P_0) - { - ImGui.SameLine(P_0); - } - - static ImRaii.DisabledDisposable _200F_200C_200D_206B_200C_202E_206C_206C_206B_206B_206B_200F_206F_202B_200C_200E_206D_206C_206E_202C_202B_202B_206E_206F_206E_200D_206D_200E_206F_206F_202B_202A_200D_206C_202D_202E_202C_202E_202E_206D_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static void _202B_202D_200D_202A_200F_206A_202A_202B_206E_206F_200D_200D_200B_200C_200B_200F_206D_202C_206F_200E_200C_200B_206B_206E_202A_202A_206F_202B_202B_200B_200C_206D_206A_206C_202D_200B_206D_206D_200E_202B_202E() - { - ImGui.SameLine(); - } - - static List<QuestStep> _202E_202E_202A_202B_206A_206B_202C_202E_206F_200B_206F_206D_206A_200B_206E_202C_206F_206F_200B_202A_206C_206A_206A_206B_202D_202C_200F_206F_206D_200D_206C_200B_202C_202C_200F_206C_200B_202E_200B_202B_202E(QuestSequence P_0) - { - return P_0.Steps; - } - - static void _206E_202E_200B_200E_206B_202D_200E_200E_206E_206E_200C_200B_206F_202C_200B_206C_200C_206A_200E_202A_202C_206D_200B_206D_202A_202D_202A_202B_200C_200D_206E_206E_202C_200C_200C_206E_200E_200B_206C_200F_202E(float P_0, Vector2 P_1, ImU8String P_2) - { - ImGui.ProgressBar(P_0, P_1, P_2); - } - - static int _200C_206F_202B_206C_202D_206E_206E_206E_206A_206D_200D_206E_202C_202E_206C_200C_206D_200C_200B_206B_206C_202B_206B_202D_202C_200E_200E_202C_206F_206B_200E_202D_206A_206E_206A_202E_202E_206B_206D_202A_202E(int P_0, int P_1) - { - return Math.Max(P_0, P_1); - } - - static int _202B_200E_206D_206F_202A_206B_202B_202E_202E_206D_206A_206A_200C_200E_206B_206F_200E_200C_202A_206A_206B_206C_200E_206F_206F_206A_200B_202D_202E_202B_200B_206F_202D_202D_206A_206A_200C_206F_200F_206B_202E(int P_0, int P_1) - { - return Math.Min(P_0, P_1); - } - - static bool _206B_200B_200F_202E_200C_202A_200B_206A_202B_206F_202B_206E_202C_206F_200B_206B_200F_200F_206D_206B_202A_202A_206A_206A_200C_200C_200E_200B_200B_202C_202D_206B_206C_200F_202B_206F_200F_200E_200C_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static IPlayerCharacter _206C_202A_200C_202A_206A_200C_200F_200C_202E_206A_206A_202E_200E_202B_202D_202B_206B_206A_200D_200F_200F_206B_202A_202C_206B_202D_202D_200B_200D_202B_202B_200C_200C_202B_200F_200B_200B_200B_202E_206C_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static byte _202B_200B_200F_200F_202A_206C_206D_206B_200F_200D_206A_202C_206C_200B_206A_202E_200D_202D_202E_200F_200B_206E_206E_200F_200C_206D_206E_206A_200E_206F_206B_202A_206A_206D_206F_202D_202B_202C_200E_202B_202E(ICharacter P_0) - { - return P_0.Level; - } - - static void _200B_206B_200E_202A_206A_200F_200D_206D_200D_202E_200E_206E_206D_200D_200E_202B_206A_200D_206E_206A_206C_206A_206B_200F_206F_200D_206B_202D_202B_200D_206E_206A_200D_200B_202D_206A_202E_206E_200F_200C_202E(float P_0) - { - ImGui.PushTextWrapPos(P_0); - } - - static Vector4 _202A_206C_206E_206E_206D_206D_202A_200F_200E_206E_200C_200B_202B_200C_200F_200D_202D_200E_202C_200C_206C_200E_200C_202A_206F_202E_200E_200E_200F_202D_206F_206E_206A_202A_202D_200C_200E_202D_202A_202A_202E() - { - return ImGuiColors.DalamudYellow; - } - - static void _206D_202B_202C_206F_206F_200B_206F_206F_202D_200F_202C_206D_202E_206A_202B_202C_202D_202D_200F_202E_206C_202E_206E_200E_202E_206C_206F_202A_202B_202B_206B_200B_200D_200B_200B_202D_206C_202B_206B_202C_202E() - { - ImGui.PopTextWrapPos(); - } - - static void _202E_202E_202D_200C_200B_200D_202C_206D_200C_202C_200B_202B_200F_202E_202A_206C_202B_202E_206D_200C_206D_202C_202A_206B_200E_202A_202C_206A_206F_202B_206D_202D_202D_202B_202E_206B_206B_202A_202D_206C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static void _206B_206C_206C_200D_206B_206D_200B_206A_206E_206A_202C_206A_206B_206D_206B_206F_206C_206B_206B_200F_206F_202B_200B_202E_206E_200B_200D_206D_206A_202B_206C_200E_200E_206C_202E_206B_200D_200F_206E_206A_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); - } - - static void _202C_206E_206F_202D_202C_202B_202E_200C_200D_206B_206B_202E_206F_206F_206A_200B_202A_200E_206A_200B_202A_200C_200C_202C_202C_200C_206B_206F_200E_200F_200E_200E_206C_202A_202E_200C_206A_206A_200E_206F_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } - - static bool _202A_200B_206B_202D_200D_206D_200B_200E_200C_200D_202D_200C_206B_206A_202C_206E_206E_200F_206B_200D_202A_202B_202B_202D_200B_200E_202E_206A_200C_206C_200F_200F_200B_200F_202C_200B_200F_202C_206B_200D_202E(ImGuiHoveredFlags P_0) - { - return ImGui.IsItemHovered(P_0); - } - - static void _206F_202E_202D_200E_200C_200E_200D_206C_206E_200E_202E_206F_200E_202E_206D_200C_206B_200F_206F_206E_206F_202E_202A_206D_202C_202B_206A_206A_206C_200D_200F_206C_206A_206A_206F_202B_202E_206F_206B_200D_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } - - static void _202B_206F_202C_200F_202A_202C_202A_206D_206B_200B_206A_202E_206B_206A_200D_202C_206E_206C_200E_202E_200F_206B_206E_202D_202E_202E_206E_200E_206F_202C_206E_206E_206D_206C_200F_202A_200D_200E_200B_206B_202E(float P_0) - { - ImGui.SetCursorPosX(P_0); - } - - static void _202C_202D_200C_202E_200C_206E_200E_206E_202A_200C_200B_202C_200E_206D_202D_202A_202B_206C_200C_202B_202A_200F_206F_200E_200B_202C_206E_200D_200B_202E_202B_202A_200B_202A_202B_206E_206F_202D_202A_200E_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogWarning(P_1, P_2, P_3); - } - - static Vector4 _200C_206C_200D_200D_206F_200C_200E_206C_202B_202E_202D_200D_206E_200E_206C_200F_206A_206E_206E_200D_200E_202A_202C_200F_200F_202E_202B_200F_206E_202A_202A_206C_200F_200E_206D_200B_206A_202B_206E_202B_202E() - { - return ImGuiColors.DalamudRed; - } - - static string _206A_202D_202C_200B_200C_202D_206B_206A_202D_206B_200D_202C_206D_200D_206F_206E_202A_200F_206C_202D_202C_206D_200C_206C_200F_200C_206C_202B_200D_202C_202D_200F_202A_206F_200E_202E_202D_206A_202A_200D_202E(object P_0) - { - return P_0.ToString(); - } - - static QuestStep _202C_206B_200D_200F_202E_206E_202E_200F_202D_202E_202C_200F_206D_206D_206F_206A_202E_202E_202A_200D_202D_200C_202B_206B_200B_206F_202D_206D_206D_202E_206B_200E_200B_206B_206F_200B_200C_206E_206B_206E_202E(QuestSequence P_0, int P_1) - { - return P_0.FindStep(P_1); - } - - static ImFontPtr _202A_200F_200D_200D_206A_206C_206D_206C_202B_200E_206F_200F_206B_206D_206B_200B_202D_202C_200B_202C_206D_202A_202B_200D_206C_206B_202C_206C_200B_200E_202D_202E_202E_200F_206B_206F_200C_200D_202E_200F_202E() - { - return UiBuilder.IconFont; - } - - static void _202E_202E_202A_200D_202E_200C_206B_202E_200E_202C_206E_206D_206E_206D_206B_206C_206F_200B_200F_202D_202E_200E_202D_202B_200B_206D_206E_206F_200F_206E_202C_200B_202B_200D_200B_202A_200E_200C_202A_206F_202E(ImFontPtr P_0) - { - ImGui.PushFont(P_0); - } - - static string _200D_202E_202D_200F_206C_200D_206D_202B_206B_206D_200E_202E_202B_202A_200B_200B_200B_200D_206B_206A_202E_206C_202E_206D_200F_206E_206F_200F_202A_202A_202E_200C_200B_200D_200E_206C_206C_200B_202B_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static void _206D_202B_202B_200E_200E_206C_200F_200E_202C_206B_202D_206D_206A_200C_206B_200C_202E_200B_202B_202B_206D_200F_206A_200C_206D_206E_200D_200C_206D_202D_206D_200F_206D_206A_206D_200B_202D_202D_200E_206E_202E() - { - ImGui.PopFont(); - } - - static bool _202B_202B_206D_206B_200B_206B_206F_202D_202E_200D_202A_200E_206F_200C_200C_200C_202D_202E_206E_206C_200C_206D_202A_202C_200D_202A_200C_200B_206B_206D_206D_206B_202C_202A_200F_200B_200C_206D_200C_202A_202E(QuestRoot P_0) - { - return P_0.Disabled; - } - - static void _206E_202E_206F_200B_200C_202C_202B_206A_206F_202A_206F_206A_206D_206F_200B_206E_206A_200B_206F_206E_202C_202D_202A_202A_202D_206D_200E_202C_206D_206D_200D_202D_206F_202C_200B_206F_206F_202C_200E_202E_202E() - { - ImGui.Spacing(); - } - - static void _206E_202B_202A_202D_206C_202B_206A_206B_206A_206A_202D_200C_200B_206A_206D_202C_202A_206B_202C_206B_206B_200E_200D_200C_202B_206A_202A_206C_200F_202A_202C_200B_200D_202D_206B_202C_200C_206C_206B_202E_202E() - { - ImGui.AlignTextToFramePadding(); - } - - static ImRaii.FontDisposable _202B_206A_202E_206E_202D_206A_200F_200F_202B_206B_202D_202D_202E_200F_206A_206F_200C_200F_202A_206F_202C_206E_202E_206D_200F_206A_202E_202A_202E_206A_206D_202D_200F_202C_206A_202A_200E_200F_206F_206C_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static Vector2 _200E_200E_200F_200B_200F_206A_200E_200D_202B_200B_202C_202A_202D_206E_200F_206D_206C_200C_200B_202D_202C_206F_200B_206C_200F_206E_200C_206A_200C_206F_206E_206A_200C_206C_202D_202A_200D_206F_200E_200C_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static ImRaii.StyleDisposable _206E_200E_206C_200C_202E_202A_202E_206E_202D_206D_206D_200D_206B_200B_206A_200D_206E_206B_202D_200F_200B_206D_200D_206F_202E_200D_206A_206F_206A_202D_206B_206F_202B_200D_202E_206A_206E_202B_206B_206E_202E(ImGuiStyleVar P_0, float P_1, bool P_2) - { - return ImRaii.PushStyle(P_0, P_1, P_2); - } - - static bool _200C_206A_202D_200B_202E_202B_206F_200C_206D_206B_206C_202D_206C_200E_206C_206A_200E_206D_206E_200F_202D_200C_206D_200F_202B_200B_202A_202A_206A_200F_200B_206E_206C_206F_202D_202C_206D_206D_202D_206D_202E() - { - return ImGui.IsItemClicked(); - } - - static string _202B_206E_200C_200F_202C_200D_206B_206F_206B_206C_200D_200D_200F_200E_202B_200F_206C_202B_202E_202C_200B_202D_206E_200F_202B_206E_200B_200F_202B_206F_200C_202E_206B_206D_206D_206E_200F_206B_206C_206A_202E(Regex P_0, string P_1, string P_2) - { - return P_0.Replace(P_1, P_2); - } - - static void _200B_202C_200E_200B_206E_206F_200D_200F_206C_206D_202A_200D_202A_206F_202A_206A_206E_202A_206B_202E_202D_202C_200C_206E_202B_202D_206F_202E_200F_206C_206D_206E_206E_202D_202C_206E_206E_202A_200C_206A_202E(ImU8String P_0) - { - ImGui.SetClipboardText(P_0); - } - - static string _200F_206A_202C_206C_200B_200B_202E_200E_206C_200E_200F_202E_206C_202D_202A_202D_206E_200D_202A_200D_206E_200C_202A_200F_200E_206F_206A_202B_200D_206E_206B_206F_200E_206B_200D_206C_202D_206A_206F_206E_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static void _206E_200B_206D_200D_206D_206F_200B_202A_206F_200C_200D_202B_200F_202A_206D_202E_200E_200E_202C_202A_202A_200B_206E_202D_200D_206A_202C_202A_206D_200B_206C_200B_206F_200E_206A_202E_202D_200F_200E_202E(ImU8String P_0) - { - ImGui.Text(P_0); - } - - static ImRaii.ColorDisposable _202E_200E_200B_206B_206D_206B_206E_202C_206F_200D_202A_206B_200B_206A_200E_206F_202D_206B_200B_200D_200E_200C_202B_202C_202E_206E_206A_206E_206A_202D_202B_202E_200D_202A_202E_202B_206B_200E_202B_202C_202E() - { - return new ImRaii.ColorDisposable(); - } - - static EInteractionType _206F_200F_206E_200F_206C_200F_206C_206D_206D_206A_206B_206D_206E_202C_202E_200E_200F_206F_202C_206A_202D_200B_206A_200F_200F_200B_200F_206E_206D_202A_206D_202D_200C_200D_206E_200D_206B_202A_200C_200C_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static ImRaii.ColorDisposable _206F_206B_200C_206A_206B_202B_202A_202D_200F_206D_202D_200F_206E_202E_200C_200F_206D_202B_202E_200F_206A_206B_206D_206D_202A_200F_200D_206B_206B_202E_202E_206B_200B_200D_202D_202D_202E_202D_202C_206A_202E(ImRaii.ColorDisposable P_0, ImGuiCol P_1, Vector4 P_2, bool P_3) - { - return P_0.Push(P_1, P_2, P_3); - } - - static string _200C_206A_202B_202E_206F_202C_200C_202D_200D_202B_200D_200D_202B_200C_206D_206E_202B_202D_202B_206B_206C_202C_206F_202D_206F_200F_202B_206E_200F_200C_200F_206D_202C_200C_200C_200E_202C_200C_202D_206D_202E(QuestStep P_0) - { - return P_0.Comment; - } - - static string _206B_206B_200C_206C_200D_206C_202D_206C_206F_202B_206B_206E_206E_200E_202A_200C_200C_200D_202A_202B_200E_200F_206A_200E_206C_202E_206D_200B_200F_206C_206A_202E_202E_206A_200B_206A_200F_206D_202C_202A_202E(QuestSequence P_0) - { - return P_0.Comment; - } - - static string _206F_206C_202C_206B_200E_206F_202B_202B_202A_202D_202B_206D_206B_200D_202C_202D_200D_202D_202D_200D_200F_200B_200E_200E_200B_202D_200D_206A_200F_202A_200C_200B_206C_206C_202D_206B_206D_206C_202D_206D_202E(QuestRoot P_0) - { - return P_0.Comment; - } - - static void _200F_206C_202A_202C_200E_200D_200E_206A_202B_200D_202B_206A_206F_202C_206F_200D_202E_202B_202A_200B_200C_200F_200E_202E_200B_202C_206B_202B_206F_200C_200F_206C_206C_206E_200E_202A_206F_202C_202E_206F_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - - static void _200D_200B_200B_200B_200B_206A_202C_202D_202D_202D_200F_200E_200D_202C_202C_206D_206A_206E_202A_206A_200B_202A_206F_202C_202C_202D_206A_206A_202A_206D_206C_200B_206A_206D_200E_200E_206E_206C_206C_206B_202E(bool P_0) - { - ImGui.BeginDisabled(P_0); - } - - static List<QuestSequence> _206C_202B_202E_202E_202E_202B_206C_200F_202B_206B_206E_200E_200D_200E_202C_200B_202E_202C_202D_202E_202B_202C_206E_202D_200F_206C_206F_200E_206A_200E_206F_200F_202D_202B_206F_200B_206A_200D_206D_202B_202E(QuestRoot P_0) - { - return P_0.QuestSequence; - } - - static void _202B_206F_206A_200B_206A_200C_206C_206F_202B_202E_202D_200D_200C_200E_202E_200B_200B_200E_200D_206F_200B_200E_206E_202D_202D_200C_202B_206B_202C_200B_200E_206B_200C_202C_202B_202A_202D_206E_206F_200C_202E() - { - ImGui.EndDisabled(); - } - - static ImRaii.IdDisposable _206B_206D_200C_206D_202E_200B_206F_200B_202A_200E_202A_202B_200E_206B_206F_200B_206B_206D_200D_200E_202A_200F_202D_202A_206F_200B_206D_206D_206D_206C_206F_200F_206C_200D_206C_206E_200F_206C_206D_202E_202E(ImU8String P_0, bool P_1) - { - return ImRaii.PushId(P_0, P_1); - } - - static List<QuestStep> _200D_200C_206C_202E_200B_202C_206E_200D_200B_206E_202C_206E_206F_206B_200C_202E_202E_200B_206A_200F_202E_206E_206B_202E_200B_200B_202A_200F_202E_200C_202E_202B_200B_206A_202B_200E_202C_202B_206C_202E_202E(QuestSequence P_0) - { - return P_0.Steps; - } - - static bool _206A_206C_202B_202C_202D_202B_200C_200D_202C_206B_206E_206E_202C_202A_200C_202E_202A_206B_206A_200D_200C_200D_200D_202C_200C_202B_200F_200C_202D_200E_200C_206A_206D_206B_202E_200E_206C_202A_202C_202A_202E(ImU8String P_0, Vector2 P_1) - { - return ImGui.Button(P_0, P_1); - } - - static int _206C_200F_202B_206D_200F_202E_202E_202A_200C_206D_202C_200E_202B_202A_206B_202D_206F_206F_206D_202C_202E_202E_206B_202E_202C_206C_202D_202A_206F_202A_200C_200C_206F_206D_200D_200D_202E_206C_200E_206E_202E(string P_0) - { - return P_0.Length; - } - - static ReadOnlySpan<char> _202B_202C_200B_202D_206D_200C_206F_202A_202B_200C_206B_202E_206E_200B_202C_200B_206A_206E_206E_202B_200E_206F_206D_202C_206B_206E_202A_202C_200E_206A_202B_206E_206B_200D_202A_200E_200B_200D_202A_202C_202E(string P_0, int P_1, int P_2) - { - return P_0.AsSpan(P_1, P_2); - } - - static ReadOnlySpan<char> _200C_206F_202E_206A_206F_202B_202A_200D_200C_200F_206C_206A_202E_206A_200B_200F_200E_200F_202C_200D_202A_202A_206B_200C_200E_202D_206A_206B_206B_206B_202B_200D_200B_202D_202A_206A_202C_206F_200D_206D_202E(ReadOnlySpan<char> P_0) - { - return P_0.Trim(); - } - - static string _206D_202D_206B_206E_206C_202A_200E_206B_202C_202A_206E_206F_202E_200F_200D_202A_200B_206B_202C_206A_206F_206D_206B_200C_206C_200F_200C_206B_202E_206D_206A_202C_200C_206F_202C_200D_200B_202E_202D_206A_202E(SeIconChar P_0) - { - return P_0.ToIconString(); - } - - static ReadOnlySpan<char> _202D_202E_200B_206C_200C_200D_202E_200F_206F_202E_206B_200B_206E_206D_206D_200C_206D_200F_206B_202B_206D_206C_206A_200D_200F_202C_200E_200E_202D_206A_206A_200D_200B_200E_200F_206A_202C_202E_202A_206D_202E(string P_0) - { - return P_0.AsSpan(); - } - - static string _202A_200D_206C_200C_200C_200E_206D_202A_202E_206F_202B_200D_202D_200B_202C_200F_206F_200B_202C_202B_206A_200D_206D_206A_202C_206C_200D_202C_202E_202D_206B_200F_206C_200C_200C_200B_202D_206E_200B_206C_202E(ReadOnlySpan<char> P_0, ReadOnlySpan<char> P_1) - { - return string.Concat(P_0, P_1); + return text; } } diff --git a/Questionable/Questionable.Windows.QuestComponents/CreationUtilsComponent.cs b/Questionable/Questionable.Windows.QuestComponents/CreationUtilsComponent.cs index 7b26db4..384ba8d 100644 --- a/Questionable/Questionable.Windows.QuestComponents/CreationUtilsComponent.cs +++ b/Questionable/Questionable.Windows.QuestComponents/CreationUtilsComponent.cs @@ -5,10 +5,8 @@ using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Objects.Enums; -using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Game.Text; -using Dalamud.Game.Text.SeStringHandling; using Dalamud.Interface; using Dalamud.Interface.Colors; using Dalamud.Interface.Components; @@ -69,733 +67,273 @@ internal sealed class CreationUtilsComponent _logger = logger; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Draw() { var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); - UiThemeUtils.WrappedText(_territoryData.GetNameAndId(_200F_200C_206D_202B_206F_200E_206B_206A_206D_206E_202E_206F_202B_202E_206E_206D_206B_200B_202E_202B_206C_202A_200B_202A_202E_206A_200E_206A_202B_206B_200E_202D_206E_206C_206C_202D_202E_206D_202C_202D_202E(_clientState))); - int num = ((!_gameFunctions.IsFlyingUnlockedInCurrentZone()) ? (-1212132610) : (-1212132611)); - ulong num7 = default(ulong); - while (true) + UiThemeUtils.WrappedText(_territoryData.GetNameAndId(_clientState.TerritoryType)); + if (_gameFunctions.IsFlyingUnlockedInCurrentZone()) { - int num2 = num; - int num3 = -1212132614; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - num = -1212132611; - break; - case 7: - _202C_200E_202D_206F_202A_202A_202B_206F_206E_206B_206A_200C_206B_200C_200C_206D_200D_206C_200F_200D_206E_202C_206C_200D_206B_202A_206F_206F_206D_200C_206D_206C_206C_202D_206B_206D_200B_206C_202B_200D_202E(); - _202A_202E_202E_202A_200F_202C_206C_206F_202A_200B_202C_202D_202A_206A_202C_200B_206C_202D_202D_202B_202C_202C_206A_200C_202E_200B_206A_202C_200B_206C_202A_200E_200C_200C_200E_206E_202B_200C_206C_200E_202E((ImU8String)_206B_206B_200E_202C_200F_206C_200E_200F_206C_206A_200E_202D_202E_206E_200D_200B_200B_206C_200E_206F_202B_206B_202E_202C_202C_200B_200F_200B_200F_206F_200E_206D_202E_202C_202E_200C_200E_206E_206B_206C_202E(SeIconChar.BotanistSprout)); - num = -1212132610; - break; - case 0: - DrawCopyButton(); - num = -1212132612; - break; - case 2: - { - _206B_202D_200F_206A_200B_206B_200C_202B_202E_202B_200F_206D_206E_200D_200C_206B_206B_202C_202E_206E_206B_206B_206E_206C_206B_200F_202E_200E_206A_206F_206D_206B_200D_202C_206B_200C_202E_200D_202A_202D_202E(); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(14, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1437995629)); - defaultInterpolatedStringHandler.AppendFormatted(num7); - UiThemeUtils.WrappedText(defaultInterpolatedStringHandler.ToStringAndClear()); - num = -1212132613; - break; - } - case 4: - num = ((_206C_200D_200E_206E_202C_200E_202B_202C_202C_200E_206E_202B_206F_202C_200B_206A_206D_202D_200F_202A_202A_206D_200E_206D_200B_200D_200E_206B_206C_206C_206D_206C_202B_206F_206A_206A_202C_200C_206A_206C_202E(_targetManager) == null) ? (-1212132614) : (-1212132615)); - break; - case 1: - UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); - return; - case 3: - DrawTargetDetails(_206C_200D_200E_206E_202C_200E_202B_202C_202C_200E_206E_202B_206F_202C_200B_206A_206D_202D_200F_202A_202A_206D_200E_206D_200B_200D_200E_206B_206C_206C_206D_206C_202B_206F_206A_206A_202C_200C_206A_206C_202E(_targetManager)); - DrawInteractionButtons(_206C_200D_200E_206E_202C_200E_202B_202C_202C_200E_206E_202B_206F_202C_200B_206A_206D_202D_200F_202A_202A_206D_200E_206D_200B_200D_200E_206B_206C_206C_206D_206C_202B_206F_206A_206A_202C_200C_206A_206C_202E(_targetManager)); - _202C_200E_202D_206F_202A_202A_202B_206F_206E_206B_206A_200C_206B_200C_200C_206D_200D_206C_200F_200D_206E_202C_206C_200D_206B_202A_206F_206F_206D_200C_206D_206C_206C_202D_206B_206D_200B_206C_202B_200D_202E(); - DrawCopyButton(_206C_200D_200E_206E_202C_200E_202B_202C_202C_200E_206E_202B_206F_202C_200B_206A_206D_202D_200F_202A_202A_206D_200E_206D_200B_200D_200E_206B_206C_206C_206D_206C_202B_206F_206A_206A_202C_200C_206A_206C_202E(_targetManager)); - num = -1212132612; - break; - case 6: - num7 = _202D_206C_200F_200E_206D_202B_202B_202A_206D_202E_206A_206B_206B_206E_206F_200C_206C_206F_200E_200E_202B_206B_206E_200B_206A_206F_200C_200B_206F_200D_206D_202B_200E_200B_206A_206F_206C_202E_202E_206B_202E(_gameGui); - num = ((num7 == 0L) ? (-1212132613) : (-1212132616)); - break; - } + ImGui.SameLine(); + ImGui.Text(SeIconChar.BotanistSprout.ToIconString()); } + if (_targetManager.Target != null) + { + DrawTargetDetails(_targetManager.Target); + DrawInteractionButtons(_targetManager.Target); + ImGui.SameLine(); + DrawCopyButton(_targetManager.Target); + } + else + { + DrawCopyButton(); + } + ulong hoveredItem = _gameGui.HoveredItem; + if (hoveredItem != 0L) + { + ImGui.Separator(); + UiThemeUtils.WrappedText($"Hovered Item: {hoveredItem}"); + } + UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void DrawTargetDetails(IGameObject target) { string value = string.Empty; - ICharacter character = target as ICharacter; - int num = ((character == null) ? 2100973131 : 2100973128); - string text = default(string); - while (true) + if (target is ICharacter { NameId: not 0u } character) { - int num2 = num; - int num3 = 2100973130; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + value = $"; n={character.NameId}"; + } + ImGui.Separator(); + IFormatProvider invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider = invariantCulture; + DefaultInterpolatedStringHandler handler = new DefaultInterpolatedStringHandler(14, 4, invariantCulture); + handler.AppendLiteral("Target: "); + handler.AppendFormatted(target.Name); + handler.AppendLiteral(" ("); + handler.AppendFormatted(target.ObjectKind); + handler.AppendLiteral("; "); + handler.AppendFormatted(target.BaseId); + handler.AppendFormatted(value); + handler.AppendLiteral(")"); + UiThemeUtils.WrappedText(string.Create(provider, ref handler)); + if (_objectTable.LocalPlayer != null) + { + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider2 = invariantCulture; + DefaultInterpolatedStringHandler handler2 = new DefaultInterpolatedStringHandler(10, 1, invariantCulture); + handler2.AppendLiteral("Distance: "); + handler2.AppendFormatted((target.Position - _objectTable.LocalPlayer.Position).Length(), "F2"); + ImGui.Text(string.Create(provider2, ref handler2)); + float value2 = target.Position.Y - _objectTable.LocalPlayer.Position.Y; + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider3 = invariantCulture; + DefaultInterpolatedStringHandler handler3 = new DefaultInterpolatedStringHandler(3, 1, invariantCulture); + handler3.AppendLiteral("Y: "); + handler3.AppendFormatted(value2, "F2"); + string text = string.Create(provider3, ref handler3); + if (Math.Abs(value2) >= 1.95f) { - case 4: - num = 2100973128; - break; - case 0: - { - IFormatProvider formatProvider = _202A_200F_206C_206E_200D_202C_200E_200D_206E_206F_206A_206B_202A_200C_200B_206E_200B_206C_202B_202C_200E_206E_206E_206A_206A_200B_206A_206E_202D_200D_206B_206A_202D_206A_206B_200C_202E_200B_202E_206B_202E(); - IFormatProvider formatProvider3 = formatProvider; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(10, 1, formatProvider); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1739902178)); - defaultInterpolatedStringHandler3.AppendFormatted((_200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E(target) - _200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E((IGameObject)_200B_206E_206E_202A_202A_200D_206B_202E_200C_206E_200E_206D_202E_202A_206E_206A_206B_202A_206C_200F_202C_200D_206F_200C_206C_202C_202B_202D_202C_200B_202A_200F_202D_202E_206E_206A_206A_206C_206E_200F_202E(_objectTable))).Length(), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(989011289)); - _202A_202E_202E_202A_200F_202C_206C_206F_202A_200B_202C_202D_202A_206A_202C_200B_206C_202D_202D_202B_202C_202C_206A_200C_202E_200B_206A_202C_200B_206C_202A_200E_200C_200C_200E_206E_202B_200C_206C_200E_202E((ImU8String)_200C_202C_200D_202B_202C_200F_202A_200C_206D_200B_200F_206C_202A_200E_202D_206A_206A_202A_202B_200D_206B_202D_200D_206B_202E_200F_206F_206F_202D_206A_200C_202C_200C_206D_200C_206C_206D_202B_206B_202E(formatProvider3, ref defaultInterpolatedStringHandler3)); - float num7 = _200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E(target).Y - _200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E((IGameObject)_200B_206E_206E_202A_202A_200D_206B_202E_200C_206E_200E_206D_202E_202A_206E_206A_206B_202A_206C_200F_202C_200D_206F_200C_206C_202C_202B_202D_202C_200B_202A_200F_202D_202E_206E_206A_206A_206C_206E_200F_202E(_objectTable)).Y; - formatProvider = _202A_200F_206C_206E_200D_202C_200E_200D_206E_206F_206A_206B_202A_200C_200B_206E_200B_206C_202B_202C_200E_206E_206E_206A_206A_200B_206A_206E_202D_200D_206B_206A_202D_206A_206B_200C_202E_200B_202E_206B_202E(); - IFormatProvider formatProvider4 = formatProvider; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler4 = new DefaultInterpolatedStringHandler(3, 1, formatProvider); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-780778393)); - defaultInterpolatedStringHandler4.AppendFormatted(num7, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(989011289)); - text = _200C_202C_200D_202B_202C_200F_202A_200C_206D_200B_200F_206C_202A_200E_202D_206A_206A_202A_202B_200D_206B_202D_200D_206B_202E_200F_206F_206F_202D_206A_200C_202C_200C_206D_200C_206C_206D_202B_206B_202E(formatProvider4, ref defaultInterpolatedStringHandler4); - num = ((!(_202C_200C_206F_206D_206C_202D_202A_200B_200D_206A_202B_206F_206A_200F_202D_200F_200B_202D_202E_200E_206B_200E_200F_202D_200D_206A_202C_200D_202E_206A_202D_200D_200D_206C_202E_202E_206E_200D_200E_202B_202E(num7) >= 1.95f)) ? 2100973129 : 2100973133); - break; + ImGui.TextColored(ImGuiColors.DalamudOrange, text); } - case 2: - num = ((_202E_206E_206A_200B_206B_200F_202C_202C_200C_206D_202A_200C_200D_202C_200F_206A_202A_202A_202A_202B_206C_206E_200F_206F_206A_206A_202A_202B_202D_200D_206C_206C_202E_206B_202E_202B_202E_200D_200E_202D_202E(character) == 0) ? 2100973131 : 2100973132); - break; - case 1: + else { - _206B_202D_200F_206A_200B_206B_200C_202B_202E_202B_200F_206D_206E_200D_200C_206B_206B_202C_202E_206E_206B_206B_206E_206C_206B_200F_202E_200E_206A_206F_206D_206B_200D_202C_206B_200C_202E_200D_202A_202D_202E(); - IFormatProvider formatProvider = _202A_200F_206C_206E_200D_202C_200E_200D_206E_206F_206A_206B_202A_200C_200B_206E_200B_206C_202B_202C_200E_206E_206E_206A_206A_200B_206A_206E_202D_200D_206B_206A_202D_206A_206B_200C_202E_200B_202E_206B_202E(); - IFormatProvider formatProvider2 = formatProvider; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(14, 4, formatProvider); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1030984999)); - defaultInterpolatedStringHandler2.AppendFormatted(_206A_200E_202D_202C_206F_206E_200F_202A_206C_200B_200E_206C_202C_206B_206B_206D_206A_206B_206F_202A_206D_200B_206C_206F_202A_200F_200B_200B_200E_200C_200B_206A_206F_200E_202D_206E_202B_200B_202E_202E_202E(target)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(84793411)); - defaultInterpolatedStringHandler2.AppendFormatted(_202C_206F_206B_200D_206B_206C_200C_202B_206E_202B_206F_200F_206B_200E_202B_202C_206F_202A_206F_206D_200C_206B_202B_206C_202C_200F_202E_200C_206B_200B_202B_206D_200B_200F_202B_200E_206A_202B_200B_206B_202E(target)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1032438240)); - defaultInterpolatedStringHandler2.AppendFormatted(_202C_200B_206D_206B_200E_202A_206F_200F_206B_206D_200B_206F_206B_206F_200C_200C_206C_206F_206F_206F_202E_206A_206D_202A_200B_202E_206C_206D_202C_206F_200D_202B_202C_206F_206D_206C_200B_202A_206C_206C_202E(target)); - defaultInterpolatedStringHandler2.AppendFormatted(value); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - UiThemeUtils.WrappedText(_200C_202C_200D_202B_202C_200F_202A_200C_206D_200B_200F_206C_202A_200E_202D_206A_206A_202A_202B_200D_206B_202D_200D_206B_202E_200F_206F_206F_202D_206A_200C_202C_200C_206D_200C_206C_206D_202B_206B_202E(formatProvider2, ref defaultInterpolatedStringHandler2)); - num = ((_200B_206E_206E_202A_202A_200D_206B_202E_200C_206E_200E_206D_202E_202A_206E_206A_206B_202A_206C_200F_202C_200D_206F_200C_206C_202C_202B_202D_202C_200B_202A_200F_202D_202E_206E_206A_206A_206C_206E_200F_202E(_objectTable) == null) ? 2100973135 : 2100973130); - break; - } - case 3: - _202A_202E_202E_202A_200F_202C_206C_206F_202A_200B_202C_202D_202A_206A_202C_200B_206C_202D_202D_202B_202C_202C_206A_200C_202E_200B_206A_202C_200B_206C_202A_200E_200C_200C_200E_206E_202B_200C_206C_200E_202E((ImU8String)text); - num = 2100973135; - break; - case 6: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(4, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1580251828)); - defaultInterpolatedStringHandler.AppendFormatted(_202E_206E_206A_200B_206B_200F_202C_202C_200C_206D_202A_200C_200D_202C_200F_206A_202A_202A_202A_202B_206C_206E_200F_206F_206A_206A_202A_202B_202D_200D_206C_206C_202E_206B_202E_202B_202E_200D_200E_202D_202E(character)); - value = defaultInterpolatedStringHandler.ToStringAndClear(); - num = 2100973131; - break; - } - case 7: - { - Vector4 vector = _200C_200B_200D_202C_206F_202A_200C_206D_202D_200F_200C_200F_200D_202B_200B_202D_202D_206E_206C_206C_206D_200B_206C_202C_200B_202D_200B_202D_202C_200D_206C_202B_200C_200E_206C_200E_206C_200F_206A_206A_202E(); - _202E_200E_206A_206E_206C_206D_206C_200B_206A_206A_202E_206D_202C_206B_200C_206A_202B_200E_202C_206C_206C_206F_200F_202E_206C_206E_202C_200F_206E_200C_202A_206D_202A_206F_200E_200E_200B_200D_202C_200C_202E(ref vector, (ImU8String)text); - num = 2100973135; - break; - } - case 5: - { - GameObject* ptr = (GameObject*)_200C_202B_200C_200F_202D_200D_200D_202B_206B_200D_200B_206F_206D_202D_200C_206F_200D_202E_206D_202D_200F_200F_202B_202B_200D_206C_206A_202B_202D_202C_200E_202E_202B_206C_206B_206A_200C_206F_206C_202B_202E(target); - ImU8String imU8String = new ImU8String(4, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(617436611)); - imU8String.AppendFormatted(ptr->NamePlateIconId); - _202A_202E_202E_202A_200F_202C_206C_206F_202A_200B_202C_202D_202A_206A_202C_200B_206C_202D_202D_202B_202C_202C_206A_200C_202E_200B_206A_202C_200B_206C_202A_200E_200C_200C_200E_206E_202B_200C_206C_200E_202E(imU8String); - return; - } + ImGui.Text(text); } } + GameObject* address = (GameObject*)target.Address; + ImU8String text2 = new ImU8String(4, 1); + text2.AppendLiteral("QM: "); + text2.AppendFormatted(address->NamePlateIconId); + ImGui.Text(text2); } - [MethodImpl(MethodImplOptions.NoInlining)] private unsafe void DrawInteractionButtons(IGameObject target) { - int num = ((!_movementController.IsNavmeshReady) ? (-1572387827) : (-1572387829)); - while (true) + ImGui.BeginDisabled(!_movementController.IsNavmeshReady || _gameFunctions.IsOccupied()); + if (!_movementController.IsPathfinding) { - int num2 = num; - int num3 = -1572387832; - int num4 = num2; - int num5; - switch ((num4 | num3) - (num4 & num3)) + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Bullseye, "To Target")) { - case 0: - num = ((!_206C_206B_202C_206C_202A_202B_200E_206B_206C_202B_202B_202C_206F_206E_206A_202C_206B_206D_200D_202E_202B_202C_200B_206D_202B_200E_200E_200E_206C_206C_206C_202D_202A_206E_202E_202A_206B_202E_200E_206D_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1819282448), default(Vector2))) ? (-1572387825) : (-1572387839)); - break; - case 8: - num = ((!_206A_206C_200E_206B_200B_200F_202D_206C_200D_202E_200B_206C_206E_206F_206F_202C_202B_202D_206C_200C_202B_202A_200E_206C_202D_202A_200C_200D_202D_202A_206A_202A_200F_202B_206E_200F_206E_206C_200C_202E_202E(FontAwesomeIcon.Bullseye, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-9163359), (Vector4?)null, (Vector4?)null, (Vector4?)null, (Vector2?)null)) ? (-1572387825) : (-1572387828)); - break; - case 6: - { - _202D_200D_200C_206E_206E_206F_206F_200E_206D_206E_200D_200C_206F_206A_202E_202D_206A_206D_200E_202A_200C_202A_202E_200C_202B_202A_200F_200E_200B_202C_202B_200F_206E_206E_202E_200D_202E_200E_200D_200D_202E(); - _200F_200F_206F_206E_200D_202B_202A_200E_206C_206F_200F_206D_200C_200E_200E_202B_206F_206D_200F_202A_206C_202B_202C_202B_206F_202C_202C_200F_200B_202A_202B_206E_202A_202E_206A_206D_206C_202D_206E_202E(_gameFunctions.IsOccupied()); - _202C_200E_202D_206F_202A_202A_202B_206F_206E_206B_206A_200C_206B_200C_200C_206D_200D_206C_200F_200D_206E_202C_206C_200D_206B_202A_206F_206F_206D_200C_206D_206C_206C_202D_206B_206D_200B_206C_202B_200D_202E(); - bool num8 = _202E_206E_206A_206E_200D_200D_200C_200C_206C_206F_206B_206C_206C_202E_206B_200F_206F_206A_200F_206E_202A_200C_200F_202E_202D_202C_206A_206B_206E_206F_202E_206B_206F_206C_200C_202C_202B_200B_202E_202E_202E(FontAwesomeIcon.MousePointer); - if (_200F_200E_200F_200D_202E_200D_202A_206E_206E_206D_200F_206C_200B_202E_206B_206D_206A_200C_202A_200F_200D_200B_206E_202A_200F_200D_202A_202E_206B_202C_202D_206C_200F_202B_202E_200F_206A_200C_206B_206F_202E()) - { - _200D_200E_206D_206F_206C_202D_202B_202E_202A_206D_206C_200B_206A_206F_200F_206E_202C_200B_202C_200C_200C_206E_202E_200C_200D_206A_206C_200B_202C_202A_200D_206F_200F_206F_202A_202E_200D_200B_206B_202A_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1644288408)); - } - num = ((!num8) ? (-1572387838) : (-1572387837)); - break; - } - case 4: - _movementController.NavigateTo(EMovementType.DebugWindow, _202C_200B_206D_206B_200E_202A_206F_200F_206B_206D_200B_206F_206B_206F_200C_200C_206C_206F_206F_206F_202E_206A_206D_202A_200B_202E_206C_206D_202C_206F_200D_202B_202C_206F_206D_206C_200B_202A_206C_206C_202E(target), _200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E(target), _206F_206D_206F_206D_206C_202B_200C_206D_202E_206C_206B_200C_202D_206F_206F_206F_200C_206E_206E_202B_200C_202C_202A_200F_202E_200F_206C_202A_202B_206D_200D_206C_206C_206A_200C_200C_202E_202D_206C_202A_202E(_condition, ConditionFlag.Mounted) && _gameFunctions.IsFlyingUnlockedInCurrentZone(), sprint: true); - num = -1572387825; - break; - case 10: - _202D_200D_200C_206E_206E_206F_206F_200E_206D_206E_200D_200C_206F_206A_202E_202D_206A_206D_200E_202A_200C_202A_202E_200C_202B_202A_200F_200E_200B_202C_202B_200F_206E_206E_202E_200D_202E_200E_200D_200D_202E(); - return; - case 11: - { - ulong num7 = TargetSystem.Instance()->InteractWithObject((GameObject*)_200C_202B_200C_200F_202D_200D_200D_202B_206B_200D_200B_206F_206D_202D_200C_206F_200D_202E_206D_202D_200F_200F_202B_202B_200D_206C_206A_202B_202D_202C_200E_202E_202B_206C_206B_206A_200C_206F_206C_202B_202E(target), checkLineOfSight: false); - _202D_200B_202E_202C_206D_206C_206A_202C_202A_200D_200D_202D_202E_200D_200C_206E_206A_206C_200B_200D_200D_202E_200E_200D_200E_206A_200E_206F_200F_206F_202C_200B_200D_206E_206D_206F_206C_200F_200D_202A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1103777567), new object[1] { num7 }); - num = -1572387838; - break; - } - case 9: - _movementController.ResetPathfinding(); - num = -1572387825; - break; - case 2: - num = -1572387829; - break; - case 3: - num5 = (_gameFunctions.IsOccupied() ? 1 : 0); - goto IL_02b3; - case 7: - { - _202D_200D_200C_206E_206E_206F_206F_200E_206D_206E_200D_200C_206F_206A_202E_202D_206A_206D_200E_202A_200C_202A_202E_200C_202B_202A_200F_200E_200B_202C_202B_200F_206E_206E_202E_200D_202E_200E_200D_200D_202E(); - _200F_200F_206F_206E_200D_202B_202A_200E_206C_206F_200F_206D_200C_200E_200E_202B_206F_206D_200F_202A_206C_202B_202C_202B_206F_202C_202C_200F_200B_202A_202B_206E_202A_202E_206A_206D_206C_202D_206E_202E(!_questData.IsIssuerOfAnyQuest(_202C_200B_206D_206B_200E_202A_206F_200F_206B_206D_200B_206F_206B_206F_200C_200C_206C_206F_206F_206F_202E_206A_206D_202A_200B_202E_206C_206D_202C_206F_200D_202B_202C_206F_206D_206C_200B_202A_206C_206C_202E(target))); - bool num6 = _202E_206E_206A_206E_200D_200D_200C_200C_206C_206F_206B_206C_206C_202E_206B_200F_206F_206A_200F_206E_202A_200C_200F_202E_202D_202C_206A_206B_206E_206F_202E_206B_206F_206C_200C_202C_202B_200B_202E_202E_202E(FontAwesomeIcon.MapMarkerAlt); - if (_200F_200E_200F_200D_202E_200D_202A_206E_206E_206D_200F_206C_200B_202E_206B_206D_206A_200C_202A_200F_200D_200B_206E_202A_200F_200D_202A_202E_206B_202C_202D_206C_200F_202B_202E_200F_206A_200C_206B_206F_202E()) - { - _200D_200E_206D_206F_206C_202D_202B_202E_202A_206D_206C_200B_206A_206F_200F_206E_202C_200B_202C_200C_200C_206E_202E_200C_200D_206A_206C_200B_202C_202A_200D_206F_200F_206F_202A_202E_200D_200B_206B_202A_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1524215870)); - } - num = ((!num6) ? (-1572387826) : (-1572387831)); - break; - } - case 5: - num5 = 1; - goto IL_02b3; - case 1: - { - _questSelectionWindow.OpenForTarget(_206C_200D_200E_206E_202C_200E_202B_202C_202C_200E_206E_202B_206F_202C_200B_206A_206D_202D_200F_202A_202A_206D_200E_206D_200B_200D_200E_206B_206C_206C_206D_206C_202B_206F_206A_206A_202C_200C_206A_206C_202E(_targetManager)); - num = -1572387826; - break; - } - IL_02b3: - _200F_200F_206F_206E_200D_202B_202A_200E_206C_206F_200F_206D_200C_200E_200E_202B_206F_206D_200F_202A_206C_202B_202C_202B_206F_202C_202C_200F_200B_202A_202B_206E_202A_202E_206A_206D_206C_202D_206E_202E((byte)num5 != 0); - num = (_movementController.IsPathfinding ? (-1572387832) : (-1572387840)); - break; + _movementController.NavigateTo(EMovementType.DebugWindow, target.BaseId, target.Position, _condition[ConditionFlag.Mounted] && _gameFunctions.IsFlyingUnlockedInCurrentZone(), sprint: true); } } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private unsafe void DrawCopyButton(IGameObject target) - { - GameObject* ptr = (GameObject*)_200C_202B_200C_200F_202D_200D_200D_202B_206B_200D_200B_206F_206D_202D_200C_206F_200D_202E_206D_202D_200F_200F_202B_202B_200D_206C_206A_202B_202D_202C_200E_202E_202B_206C_206B_206A_200C_206F_206C_202B_202E(target); - bool num = _202E_206E_206A_206E_200D_200D_200C_200C_206C_206F_206B_206C_206C_202E_206B_200F_206F_206A_200F_206E_202A_200C_200F_202E_202D_202C_206A_206B_206E_206F_202E_206B_206F_206C_200C_202C_202B_200B_202E_202E_202E(FontAwesomeIcon.Copy); - if (_200F_200E_200F_200D_202E_200D_202A_206E_206E_206D_200F_206C_200B_202E_206B_206D_206A_200C_202A_200F_200D_200B_206E_202A_200F_200D_202A_202E_206B_202C_202D_206C_200F_202B_202E_200F_206A_200C_206B_206F_202E()) + else if (ImGui.Button("Cancel pathfinding")) { - _200D_200E_206D_206F_206C_202D_202B_202E_202A_206D_206C_200B_206A_206F_200F_206E_202C_200B_202C_200C_200C_206E_202E_200C_200D_206A_206C_200B_202C_202A_200D_206F_200F_206F_202A_202E_200D_200B_206B_202A_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-849104129)); + _movementController.ResetPathfinding(); } - int num2 = ((!num) ? (-2038665732) : (-2038665741)); - uint namePlateIconId = default(uint); - string text = default(string); - while (true) + ImGui.EndDisabled(); + ImGui.BeginDisabled(!_questData.IsIssuerOfAnyQuest(target.BaseId)); + bool num = ImGuiComponents.IconButton(FontAwesomeIcon.MapMarkerAlt); + if (ImGui.IsItemHovered()) { - int num3 = num2; - int num4 = -2038665743; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 10: - { - uint num7 = namePlateIconId; - num4 = 71341; - num5 = (int)num7; - switch (~(~num5 + num4)) - { - case 4: - goto IL_0271; - case 0: - goto IL_048b; - case 2: - case 3: - goto IL_04e6; - case 1: - goto IL_05ce; - } - num2 = -2038665736; - break; - } - case 13: - num2 = ((!_202C_206A_206C_202D_206E_206B_202B_206B_200F_202E_206F_206D_202B_200E_202D_206D_206F_206E_202C_202B_202C_206F_206A_206D_200D_202B_202A_206D_206E_200C_202D_206D_206A_206A_206B_202B_200E_200E_202B_200D_202E(ImGuiMouseButton.Right)) ? (-2038665740) : (-2038665729)); - break; - case 19: - num2 = -2038665734; - break; - case 0: - { - string value2 = text; - ImU8String imU8String2 = new ImU8String(99, 6); - imU8String2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(140408529)); - imU8String2.AppendFormatted(_202C_200B_206D_206B_200E_202A_206F_200F_206B_206D_200B_206F_206B_206F_200C_200C_206C_206F_206F_206F_202E_206A_206D_202A_200B_202E_206C_206D_202C_206F_200D_202B_202C_206F_206D_206C_200B_202A_206C_206C_202E(target)); - imU8String2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(67540992)); - imU8String2.AppendFormatted(_200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E(target).X.ToString(_202A_200F_206C_206E_200D_202C_200E_200D_206E_206F_206A_206B_202A_200C_200B_206E_200B_206C_202B_202C_200E_206E_206E_206A_206A_200B_206A_206E_202D_200D_206B_206A_202D_206A_206B_200C_202E_200B_202E_206B_202E())); - imU8String2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-649698836)); - imU8String2.AppendFormatted(_200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E(target).Y.ToString(_202A_200F_206C_206E_200D_202C_200E_200D_206E_206F_206A_206B_202A_200C_200B_206E_200B_206C_202B_202C_200E_206E_206E_206A_206A_200B_206A_206E_202D_200D_206B_206A_202D_206A_206B_200C_202E_200B_202E_206B_202E())); - imU8String2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1284513823)); - imU8String2.AppendFormatted(_200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E(target).Z.ToString(_202A_200F_206C_206E_200D_202C_200E_200D_206E_206F_206A_206B_202A_200C_200B_206E_200B_206C_202B_202C_200E_206E_206E_206A_206A_200B_206A_206E_202D_200D_206B_206A_202D_206A_206B_200C_202E_200B_202E_206B_202E())); - imU8String2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2693715)); - imU8String2.AppendFormatted(_200F_200C_206D_202B_206F_200E_206B_206A_206D_206E_202E_206F_202B_202E_206E_206D_206B_200B_202E_202B_206C_202A_200B_202A_202E_206A_200E_206A_202B_206B_200E_202D_206E_206C_206C_202D_202E_206D_202C_202D_202E(_clientState)); - imU8String2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-228173290)); - imU8String2.AppendFormatted(value2); - imU8String2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(948996293)); - _206D_202A_206D_206F_206B_200D_202D_206B_206A_202E_202B_206D_202D_206E_202B_206C_202C_206B_202E_202A_200D_200E_200B_202A_200C_202D_206D_202D_200F_202A_202B_202A_200F_202B_200B_200B_202B_206A_202A_206A_202E(imU8String2); - return; - } - case 21: - { - uint num11 = namePlateIconId; - num4 = 71201; - num5 = (int)num11; - switch (~(~num5 + num4)) - { - case 4: - goto IL_0271; - case 0: - goto IL_048b; - case 2: - case 3: - goto IL_04e6; - case 1: - goto IL_05ce; - } - num2 = -2038665759; - break; - } - case 7: - goto IL_0271; - case 20: - { - EAetheryteLocation value = (EAetheryteLocation)_202C_200B_206D_206B_200E_202A_206F_200F_206B_206D_200B_206F_206B_206F_200C_200C_206C_206F_206F_206F_202E_206A_206D_202A_200B_202E_206C_206D_202C_206F_200D_202B_202C_206F_206D_206C_200B_202A_206C_206C_202E(target); - IFormatProvider formatProvider = _202A_200F_206C_206E_200D_202C_200E_200D_206E_206F_206A_206B_202A_200C_200B_206E_200B_206C_202B_202C_200E_206E_206E_206A_206A_200B_206A_206E_202D_200D_206B_206A_202D_206A_206B_200C_202E_200B_202E_206B_202E(); - IFormatProvider formatProvider3 = formatProvider; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(36, 4, formatProvider); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2013959311)); - defaultInterpolatedStringHandler2.AppendFormatted(value); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1164059180)); - defaultInterpolatedStringHandler2.AppendFormatted(_200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E(target).X); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(562724466)); - defaultInterpolatedStringHandler2.AppendFormatted(_200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E(target).Y); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(562724466)); - defaultInterpolatedStringHandler2.AppendFormatted(_200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E(target).Z); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1620544171)); - _206D_202A_206D_206F_206B_200D_202D_206B_206A_202E_202B_206D_202D_206E_202B_206C_202C_206B_202E_202A_200D_200E_200B_202A_200C_202D_206D_202D_200F_202A_202B_202A_200F_202B_200B_200B_202B_206A_202A_206A_202E((ImU8String)_200C_202C_200D_202B_202C_200F_202A_200C_206D_200B_200F_206C_202A_200E_202D_206A_206A_202A_202B_200D_206B_202D_200D_206B_202E_200F_206F_206F_202D_206A_200C_202C_200C_206D_200C_206C_206D_202B_206B_202E(formatProvider3, ref defaultInterpolatedStringHandler2)); - return; - } - case 9: - { - uint num10 = namePlateIconId; - num4 = 71351; - num5 = (int)num10; - switch (~(~num5 + num4)) - { - case 4: - break; - default: - goto IL_0377; - case 0: - goto IL_048b; - case 2: - case 3: - goto IL_04e6; - case 1: - goto IL_05ce; - } - goto IL_0271; - } - case 5: - return; - case 16: - { - uint num9 = namePlateIconId; - num4 = 71211; - num5 = (int)num9; - switch (~(~num5 + num4)) - { - case 4: - break; - default: - goto IL_03af; - case 0: - goto IL_048b; - case 2: - case 3: - goto IL_04e6; - case 1: - goto IL_05ce; - } - goto IL_0271; - } - case 3: - { - ImU8String imU8String = new ImU8String(59, 4); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(844594776)); - imU8String.AppendFormatted(_202C_200B_206D_206B_200E_202A_206F_200F_206B_206D_200B_206F_206B_206F_200C_200C_206C_206F_206F_206F_202E_206A_206D_202A_200B_202E_206C_206D_202C_206F_200D_202B_202C_206F_206D_206C_200B_202A_206C_206C_202E(target)); - imU8String.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-964980094)); - imU8String.AppendFormatted(_200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E(target).X.ToString(_202A_200F_206C_206E_200D_202C_200E_200D_206E_206F_206A_206B_202A_200C_200B_206E_200B_206C_202B_202C_200E_206E_206E_206A_206A_200B_206A_206E_202D_200D_206B_206A_202D_206A_206B_200C_202E_200B_202E_206B_202E())); - imU8String.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1131547323)); - imU8String.AppendFormatted(_200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E(target).Y.ToString(_202A_200F_206C_206E_200D_202C_200E_200D_206E_206F_206A_206B_202A_200C_200B_206E_200B_206C_202B_202C_200E_206E_206E_206A_206A_200B_206A_206E_202D_200D_206B_206A_202D_206A_206B_200C_202E_200B_202E_206B_202E())); - imU8String.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(882206494)); - imU8String.AppendFormatted(_200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E(target).Z.ToString(_202A_200F_206C_206E_200D_202C_200E_200D_206E_206F_206A_206B_202A_200C_200B_206E_200B_206C_202B_202C_200E_206E_206E_206A_206A_200B_206A_206E_202D_200D_206B_206A_202D_206A_206B_200C_202E_200B_202E_206B_202E())); - imU8String.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(738125219)); - _206D_202A_206D_206F_206B_200D_202D_206B_206A_202E_202B_206D_202D_206E_202B_206C_202C_206B_202E_202A_200D_200E_200B_202A_200C_202D_206D_202D_200F_202A_202B_202A_200F_202B_200B_200B_202B_206A_202A_206A_202E(imU8String); - return; - } - case 12: - goto IL_048b; - case 17: - num2 = -2038665741; - break; - case 4: - { - uint num8 = namePlateIconId; - num4 = 71231; - num5 = (int)num8; - switch (~(~num5 + num4)) - { - case 4: - break; - case 0: - goto IL_048b; - default: - goto IL_04da; - case 2: - case 3: - goto IL_04e6; - case 1: - goto IL_05ce; - } - goto IL_0271; - } - case 11: - goto IL_04e6; - case 14: - num2 = ((_202C_206F_206B_200D_206B_206C_200C_202B_206E_202B_206F_200F_206B_200E_202B_202C_206F_202A_206F_206D_200C_206B_202B_206C_202C_200F_202E_200C_206B_200B_202B_206D_200B_200F_202B_200E_206A_202B_200B_206B_202E(target) != Dalamud.Game.ClientState.Objects.Enums.ObjectKind.Aetheryte) ? (-2038665730) : (-2038665755)); - break; - case 15: - { - IFormatProvider formatProvider = _202A_200F_206C_206E_200D_202C_200E_200D_206E_206F_206A_206B_202A_200C_200B_206E_200B_206C_202B_202C_200E_206E_206E_206A_206A_200B_206A_206E_202D_200D_206B_206A_202D_206A_206B_200C_202E_200B_202E_206B_202E(); - IFormatProvider formatProvider2 = formatProvider; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(12, 3, formatProvider); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1798659465)); - defaultInterpolatedStringHandler.AppendFormatted(_200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E(target).X); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-835891179)); - defaultInterpolatedStringHandler.AppendFormatted(_200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E(target).Y); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-835891179)); - defaultInterpolatedStringHandler.AppendFormatted(_200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E(target).Z); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(772816910)); - _206D_202A_206D_206F_206B_200D_202D_206B_206A_202E_202B_206D_202D_206E_202B_206C_202C_206B_202E_202A_200D_200E_200B_202A_200C_202D_206D_202D_200F_202A_202B_202A_200F_202B_200B_200B_202B_206A_202A_206A_202E((ImU8String)_200C_202C_200D_202B_202C_200F_202A_200C_206D_200B_200F_206C_202A_200E_202D_206A_206A_202A_202B_200D_206B_202D_200D_206B_202E_200F_206F_206F_202D_206A_200C_202C_200C_206D_200C_206C_206D_202B_206B_202E(formatProvider2, ref defaultInterpolatedStringHandler)); - num2 = -2038665740; - break; - } - case 18: - goto IL_05ce; - case 6: - { - uint num6 = namePlateIconId; - num4 = 71221; - num5 = (int)num6; - switch (~(~num5 + num4)) - { - case 4: - break; - case 0: - goto IL_048b; - case 2: - case 3: - goto IL_04e6; - case 1: - goto IL_05ce; - default: - goto IL_0611; - } - goto IL_0271; - } - case 8: - num2 = -2038665734; - break; - case 1: - namePlateIconId = ptr->NamePlateIconId; - num2 = ((namePlateIconId > 71225) ? (-2038665739) : (-2038665756)); - break; - case 2: - { - num2 = ((_202C_206F_206B_200D_206B_206C_200C_202B_206E_202B_206F_200F_206B_200E_202B_202C_206F_202A_206F_206D_200C_206B_202B_206C_202C_200F_202E_200C_206B_200B_202B_206D_200B_200F_202B_200E_206A_202B_200B_206B_202E(target) != Dalamud.Game.ClientState.Objects.Enums.ObjectKind.GatheringPoint) ? (-2038665744) : (-2038665742)); - break; - } - IL_048b: - text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(750638006); - num2 = -2038665743; - break; - IL_0271: - text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2119877003); - num2 = -2038665743; - break; - IL_0611: - num2 = -2038665758; - break; - IL_05ce: - text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1763646415); - num2 = -2038665743; - break; - IL_04da: - num2 = -2038665733; - break; - IL_03af: - num2 = -2038665737; - break; - IL_0377: - num2 = -2038665735; - break; - IL_04e6: - text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1950641804); - num2 = -2038665743; - break; - } + ImGui.SetTooltip("Show all Quests starting with your current target."); } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private void DrawCopyButton() - { - int num = ((_200B_206E_206E_202A_202A_200D_206B_202E_200C_206E_200E_206D_202E_202A_206E_206A_206B_202A_206C_200F_202C_200D_206F_200C_206C_202C_202B_202D_202C_200B_202A_200F_202D_202E_206E_206A_206A_206C_206E_200F_202E(_objectTable) != null) ? (-721194997) : (-721194994)); - while (true) + if (num) { - int num2 = num; - int num3 = -721194997; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - { - bool num7 = _202E_206E_206A_206E_200D_200D_200C_200C_206C_206F_206B_206C_206C_202E_206B_200F_206F_206A_200F_206E_202A_200C_200F_202E_202D_202C_206A_206B_206E_206F_202E_206B_206F_206C_200C_202C_202B_200B_202E_202E_202E(FontAwesomeIcon.Copy); - if (_200F_200E_200F_200D_202E_200D_202A_206E_206E_206D_200F_206C_200B_202E_206B_206D_206A_200C_202A_200F_200D_200B_206E_202A_200F_200D_202A_202E_206B_202C_202D_206C_200F_202B_202E_200F_206A_200C_206B_206F_202E()) - { - _200D_200E_206D_206F_206C_202D_202B_202E_202A_206D_206C_200B_206A_206F_200F_206E_202C_200B_202C_200C_200C_206E_202E_200C_200D_206A_206C_200B_202C_202A_200D_206F_200F_206F_202A_202E_200D_200B_206B_202A_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1229313283)); - } - num = ((!num7) ? (-721194999) : (-721194995)); - break; - } - case 5: - return; - case 1: - { - Vector3 vector = _200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E((IGameObject)_200B_206E_206E_202A_202A_200D_206B_202E_200C_206E_200E_206D_202E_202A_206E_206A_206B_202A_206C_200F_202C_200D_206F_200C_206C_202C_202B_202D_202C_200B_202A_200F_202D_202E_206E_206A_206A_206C_206E_200F_202E(_objectTable)); - IFormatProvider formatProvider = _202A_200F_206C_206E_200D_202C_200E_200D_206E_206F_206A_206B_202A_200C_200B_206E_200B_206C_202B_202C_200E_206E_206E_206A_206A_200B_206A_206E_202D_200D_206B_206A_202D_206A_206B_200C_202E_200B_202E_206B_202E(); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(12, 3, formatProvider); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1798659465)); - defaultInterpolatedStringHandler.AppendFormatted(vector.X); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(562724466)); - defaultInterpolatedStringHandler.AppendFormatted(vector.Y); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(495221964)); - defaultInterpolatedStringHandler.AppendFormatted(vector.Z); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1219659692)); - _206D_202A_206D_206F_206B_200D_202D_206B_206A_202E_202B_206D_202D_206E_202B_206C_202C_206B_202E_202A_200D_200E_200B_202A_200C_202D_206D_202D_200F_202A_202B_202A_200F_202B_200B_200B_202B_206A_202A_206A_202E((ImU8String)_200C_202C_200D_202B_202C_200F_202A_200C_206D_200B_200F_206C_202A_200E_202D_206A_206A_202A_202B_200D_206B_202D_200D_206B_202E_200F_206F_206F_202D_206A_200C_202C_200C_206D_200C_206C_206D_202B_206B_202E(formatProvider, ref defaultInterpolatedStringHandler)); - num = -721194993; - break; - } - case 6: - { - ImU8String imU8String = new ImU8String(87, 4); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-840535308)); - imU8String.AppendFormatted(_200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E((IGameObject)_200B_206E_206E_202A_202A_200D_206B_202E_200C_206E_200E_206D_202E_202A_206E_206A_206B_202A_206C_200F_202C_200D_206F_200C_206C_202C_202B_202D_202C_200B_202A_200F_202D_202E_206E_206A_206A_206C_206E_200F_202E(_objectTable)).X.ToString(_202A_200F_206C_206E_200D_202C_200E_200D_206E_206F_206A_206B_202A_200C_200B_206E_200B_206C_202B_202C_200E_206E_206E_206A_206A_200B_206A_206E_202D_200D_206B_206A_202D_206A_206B_200C_202E_200B_202E_206B_202E())); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-649698836)); - imU8String.AppendFormatted(_200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E((IGameObject)_200B_206E_206E_202A_202A_200D_206B_202E_200C_206E_200E_206D_202E_202A_206E_206A_206B_202A_206C_200F_202C_200D_206F_200C_206C_202C_202B_202D_202C_200B_202A_200F_202D_202E_206E_206A_206A_206C_206E_200F_202E(_objectTable)).Y.ToString(_202A_200F_206C_206E_200D_202C_200E_200D_206E_206F_206A_206B_202A_200C_200B_206E_200B_206C_202B_202C_200E_206E_206E_206A_206A_200B_206A_206E_202D_200D_206B_206A_202D_206A_206B_200C_202E_200B_202E_206B_202E())); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-700690564)); - imU8String.AppendFormatted(_200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E((IGameObject)_200B_206E_206E_202A_202A_200D_206B_202E_200C_206E_200E_206D_202E_202A_206E_206A_206B_202A_206C_200F_202C_200D_206F_200C_206C_202C_202B_202D_202C_200B_202A_200F_202D_202E_206E_206A_206A_206C_206E_200F_202E(_objectTable)).Z.ToString(_202A_200F_206C_206E_200D_202C_200E_200D_206E_206F_206A_206B_202A_200C_200B_206E_200B_206C_202B_202C_200E_206E_206E_206A_206A_200B_206A_206E_202D_200D_206B_206A_202D_206A_206B_200C_202E_200B_202E_206B_202E())); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-19976290)); - imU8String.AppendFormatted(_200F_200C_206D_202B_206F_200E_206B_206A_206D_206E_202E_206F_202B_202E_206E_206D_206B_200B_202E_202B_206C_202A_200B_202A_202E_206A_200E_206A_202B_206B_200E_202D_206E_206C_206C_202D_202E_206D_202C_202D_202E(_clientState)); - imU8String.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1135770245)); - _206D_202A_206D_206F_206B_200D_202D_206B_206A_202E_202B_206D_202D_206E_202B_206C_202C_206B_202E_202A_200D_200E_200B_202A_200C_202D_206D_202D_200F_202A_202B_202A_200F_202B_200B_200B_202B_206A_202A_206A_202E(imU8String); - return; - } - case 3: - num = -721194994; - break; - case 2: - num = ((!_202C_206A_206C_202D_206E_206B_202B_206B_200F_202E_206F_206D_202B_200E_202D_206D_206F_206E_202C_202B_202C_206F_206A_206D_200D_202B_202A_206D_206E_200C_202D_206D_206A_206A_206B_202B_200E_200E_202B_200D_202E(ImGuiMouseButton.Right)) ? (-721194993) : (-721194998)); - break; - case 4: - return; - } + _questSelectionWindow.OpenForTarget(_targetManager.Target); } - } - - static uint _200F_200C_206D_202B_206F_200E_206B_206A_206D_206E_202E_206F_202B_202E_206E_206D_206B_200B_202E_202B_206C_202A_200B_202A_202E_206A_200E_206A_202B_206B_200E_202D_206E_206C_206C_202D_202E_206D_202C_202D_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static void _202C_200E_202D_206F_202A_202A_202B_206F_206E_206B_206A_200C_206B_200C_200C_206D_200D_206C_200F_200D_206E_202C_206C_200D_206B_202A_206F_206F_206D_200C_206D_206C_206C_202D_206B_206D_200B_206C_202B_200D_202E() - { + ImGui.EndDisabled(); + ImGui.BeginDisabled(_gameFunctions.IsOccupied()); ImGui.SameLine(); - } - - static string _206B_206B_200E_202C_200F_206C_200E_200F_206C_206A_200E_202D_202E_206E_200D_200B_200B_206C_200E_206F_202B_206B_202E_202C_202C_200B_200F_200B_200F_206F_200E_206D_202E_202C_202E_200C_200E_206E_206B_206C_202E(SeIconChar P_0) - { - return P_0.ToIconString(); - } - - static void _202A_202E_202E_202A_200F_202C_206C_206F_202A_200B_202C_202D_202A_206A_202C_200B_206C_202D_202D_202B_202C_202C_206A_200C_202E_200B_206A_202C_200B_206C_202A_200E_200C_200C_200E_206E_202B_200C_206C_200E_202E(ImU8String P_0) - { - ImGui.Text(P_0); - } - - static IGameObject _206C_200D_200E_206E_202C_200E_202B_202C_202C_200E_206E_202B_206F_202C_200B_206A_206D_202D_200F_202A_202A_206D_200E_206D_200B_200D_200E_206B_206C_206C_206D_206C_202B_206F_206A_206A_202C_200C_206A_206C_202E(ITargetManager P_0) - { - return P_0.Target; - } - - static ulong _202D_206C_200F_200E_206D_202B_202B_202A_206D_202E_206A_206B_206B_206E_206F_200C_206C_206F_200E_200E_202B_206B_206E_200B_206A_206F_200C_200B_206F_200D_206D_202B_200E_200B_206A_206F_206C_202E_202E_206B_202E(IGameGui P_0) - { - return P_0.HoveredItem; - } - - static void _206B_202D_200F_206A_200B_206B_200C_202B_202E_202B_200F_206D_206E_200D_200C_206B_206B_202C_202E_206E_206B_206B_206E_206C_206B_200F_202E_200E_206A_206F_206D_206B_200D_202C_206B_200C_202E_200D_202A_202D_202E() - { - ImGui.Separator(); - } - - static uint _202E_206E_206A_200B_206B_200F_202C_202C_200C_206D_202A_200C_200D_202C_200F_206A_202A_202A_202A_202B_206C_206E_200F_206F_206A_206A_202A_202B_202D_200D_206C_206C_202E_206B_202E_202B_202E_200D_200E_202D_202E(ICharacter P_0) - { - return P_0.NameId; - } - - static CultureInfo _202A_200F_206C_206E_200D_202C_200E_200D_206E_206F_206A_206B_202A_200C_200B_206E_200B_206C_202B_202C_200E_206E_206E_206A_206A_200B_206A_206E_202D_200D_206B_206A_202D_206A_206B_200C_202E_200B_202E_206B_202E() - { - return CultureInfo.InvariantCulture; - } - - static SeString _206A_200E_202D_202C_206F_206E_200F_202A_206C_200B_200E_206C_202C_206B_206B_206D_206A_206B_206F_202A_206D_200B_206C_206F_202A_200F_200B_200B_200E_200C_200B_206A_206F_200E_202D_206E_202B_200B_202E_202E_202E(IGameObject P_0) - { - return P_0.Name; - } - - static Dalamud.Game.ClientState.Objects.Enums.ObjectKind _202C_206F_206B_200D_206B_206C_200C_202B_206E_202B_206F_200F_206B_200E_202B_202C_206F_202A_206F_206D_200C_206B_202B_206C_202C_200F_202E_200C_206B_200B_202B_206D_200B_200F_202B_200E_206A_202B_200B_206B_202E(IGameObject P_0) - { - return P_0.ObjectKind; - } - - static uint _202C_200B_206D_206B_200E_202A_206F_200F_206B_206D_200B_206F_206B_206F_200C_200C_206C_206F_206F_206F_202E_206A_206D_202A_200B_202E_206C_206D_202C_206F_200D_202B_202C_206F_206D_206C_200B_202A_206C_206C_202E(IGameObject P_0) - { - return P_0.BaseId; - } - - static string _200C_202C_200D_202B_202C_200F_202A_200C_206D_200B_200F_206C_202A_200E_202D_206A_206A_202A_202B_200D_206B_202D_200D_206B_202E_200F_206F_206F_202D_206A_200C_202C_200C_206D_200C_206C_206D_202B_206B_202E(IFormatProvider P_0, ref DefaultInterpolatedStringHandler P_1) - { - return string.Create(P_0, ref P_1); - } - - static IPlayerCharacter _200B_206E_206E_202A_202A_200D_206B_202E_200C_206E_200E_206D_202E_202A_206E_206A_206B_202A_206C_200F_202C_200D_206F_200C_206C_202C_202B_202D_202C_200B_202A_200F_202D_202E_206E_206A_206A_206C_206E_200F_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static Vector3 _200D_206F_206C_200B_200E_202B_206F_200F_206B_206E_206B_206D_202C_200E_206C_206D_200F_200E_202E_202B_200C_202D_206C_200F_206B_206B_202C_200F_200F_206F_200B_200E_200E_206B_202B_202E_206F_200F_206F_202B_202E(IGameObject P_0) - { - return P_0.Position; - } - - static float _202C_200C_206F_206D_206C_202D_202A_200B_200D_206A_202B_206F_206A_200F_202D_200F_200B_202D_202E_200E_206B_200E_200F_202D_200D_206A_202C_200D_202E_206A_202D_200D_200D_206C_202E_202E_206E_200D_200E_202B_202E(float P_0) - { - return Math.Abs(P_0); - } - - static Vector4 _200C_200B_200D_202C_206F_202A_200C_206D_202D_200F_200C_200F_200D_202B_200B_202D_202D_206E_206C_206C_206D_200B_206C_202C_200B_202D_200B_202D_202C_200D_206C_202B_200C_200E_206C_200E_206C_200F_206A_206A_202E() - { - return ImGuiColors.DalamudOrange; - } - - static void _202E_200E_206A_206E_206C_206D_206C_200B_206A_206A_202E_206D_202C_206B_200C_206A_202B_200E_202C_206C_206C_206F_200F_202E_206C_206E_202C_200F_206E_200C_202A_206D_202A_206F_200E_200E_200B_200D_202C_200C_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static nint _200C_202B_200C_200F_202D_200D_200D_202B_206B_200D_200B_206F_206D_202D_200C_206F_200D_202E_206D_202D_200F_200F_202B_202B_200D_206C_206A_202B_202D_202C_200E_202E_202B_206C_206B_206A_200C_206F_206C_202B_202E(IGameObject P_0) - { - return P_0.Address; - } - - static void _200F_200F_206F_206E_200D_202B_202A_200E_206C_206F_200F_206D_200C_200E_200E_202B_206F_206D_200F_202A_206C_202B_202C_202B_206F_202C_202C_200F_200B_202A_202B_206E_202A_202E_206A_206D_206C_202D_206E_202E(bool P_0) - { - ImGui.BeginDisabled(P_0); - } - - static bool _206A_206C_200E_206B_200B_200F_202D_206C_200D_202E_200B_206C_206E_206F_206F_202C_202B_202D_206C_200C_202B_202A_200E_206C_202D_202A_200C_200D_202D_202A_206A_202A_200F_202B_206E_200F_206E_206C_200C_202E_202E(FontAwesomeIcon P_0, string P_1, Vector4? P_2, Vector4? P_3, Vector4? P_4, Vector2? P_5) - { - return ImGuiComponents.IconButtonWithText(P_0, P_1, P_2, P_3, P_4, P_5); - } - - static bool _206F_206D_206F_206D_206C_202B_200C_206D_202E_206C_206B_200C_202D_206F_206F_206F_200C_206E_206E_202B_200C_202C_202A_200F_202E_200F_206C_202A_202B_206D_200D_206C_206C_206A_200C_200C_202E_202D_206C_202A_202E(ICondition P_0, ConditionFlag P_1) - { - return P_0[P_1]; - } - - static bool _206C_206B_202C_206C_202A_202B_200E_206B_206C_202B_202B_202C_206F_206E_206A_202C_206B_206D_200D_202E_202B_202C_200B_206D_202B_200E_200E_200E_206C_206C_206C_202D_202A_206E_202E_202A_206B_202E_200E_206D_202E(ImU8String P_0, Vector2 P_1) - { - return ImGui.Button(P_0, P_1); - } - - static void _202D_200D_200C_206E_206E_206F_206F_200E_206D_206E_200D_200C_206F_206A_202E_202D_206A_206D_200E_202A_200C_202A_202E_200C_202B_202A_200F_200E_200B_202C_202B_200F_206E_206E_202E_200D_202E_200E_200D_200D_202E() - { + bool num2 = ImGuiComponents.IconButton(FontAwesomeIcon.MousePointer); + if (ImGui.IsItemHovered()) + { + ImGui.SetTooltip("Interact with your current target."); + } + if (num2) + { + ulong num3 = TargetSystem.Instance()->InteractWithObject((GameObject*)target.Address, checkLineOfSight: false); + _logger.LogDebug("Interaction Result: {Result}", num3); + } ImGui.EndDisabled(); } - static bool _202E_206E_206A_206E_200D_200D_200C_200C_206C_206F_206B_206C_206C_202E_206B_200F_206F_206A_200F_206E_202A_200C_200F_202E_202D_202C_206A_206B_206E_206F_202E_206B_206F_206C_200C_202C_202B_200B_202E_202E_202E(FontAwesomeIcon P_0) + private unsafe void DrawCopyButton(IGameObject target) { - return ImGuiComponents.IconButton(P_0); + GameObject* address = (GameObject*)target.Address; + bool num = ImGuiComponents.IconButton(FontAwesomeIcon.Copy); + if (ImGui.IsItemHovered()) + { + ImGui.SetTooltip("Left click: Copy target position as JSON.\nRight click: Copy target position as C# code."); + } + if (num) + { + if (target.ObjectKind == Dalamud.Game.ClientState.Objects.Enums.ObjectKind.GatheringPoint) + { + ImU8String clipboardText = new ImU8String(59, 4); + clipboardText.AppendLiteral("\"DataId\": "); + clipboardText.AppendFormatted(target.BaseId); + clipboardText.AppendLiteral(",\n\"Position\": {\n \"X\": "); + clipboardText.AppendFormatted(target.Position.X.ToString(CultureInfo.InvariantCulture)); + clipboardText.AppendLiteral(",\n \"Y\": "); + clipboardText.AppendFormatted(target.Position.Y.ToString(CultureInfo.InvariantCulture)); + clipboardText.AppendLiteral(",\n \"Z\": "); + clipboardText.AppendFormatted(target.Position.Z.ToString(CultureInfo.InvariantCulture)); + clipboardText.AppendLiteral("\n}"); + ImGui.SetClipboardText(clipboardText); + return; + } + string text; + switch (address->NamePlateIconId) + { + case 71201u: + case 71211u: + case 71221u: + case 71231u: + case 71341u: + case 71351u: + text = "AcceptQuest"; + break; + case 71202u: + case 71212u: + case 71222u: + case 71232u: + case 71342u: + case 71352u: + text = "AcceptQuest"; + break; + case 71205u: + case 71215u: + case 71225u: + case 71235u: + case 71345u: + case 71355u: + text = "CompleteQuest"; + break; + default: + text = "Interact"; + break; + } + string value = text; + ImU8String clipboardText2 = new ImU8String(99, 6); + clipboardText2.AppendLiteral("\"DataId\": "); + clipboardText2.AppendFormatted(target.BaseId); + clipboardText2.AppendLiteral(",\n\"Position\": {\n \"X\": "); + clipboardText2.AppendFormatted(target.Position.X.ToString(CultureInfo.InvariantCulture)); + clipboardText2.AppendLiteral(",\n \"Y\": "); + clipboardText2.AppendFormatted(target.Position.Y.ToString(CultureInfo.InvariantCulture)); + clipboardText2.AppendLiteral(",\n \"Z\": "); + clipboardText2.AppendFormatted(target.Position.Z.ToString(CultureInfo.InvariantCulture)); + clipboardText2.AppendLiteral("\n},\n\"TerritoryId\": "); + clipboardText2.AppendFormatted(_clientState.TerritoryType); + clipboardText2.AppendLiteral(",\n\"InteractionType\": \""); + clipboardText2.AppendFormatted(value); + clipboardText2.AppendLiteral("\""); + ImGui.SetClipboardText(clipboardText2); + } + else if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) + { + if (target.ObjectKind == Dalamud.Game.ClientState.Objects.Enums.ObjectKind.Aetheryte) + { + EAetheryteLocation baseId = (EAetheryteLocation)target.BaseId; + IFormatProvider invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider = invariantCulture; + DefaultInterpolatedStringHandler handler = new DefaultInterpolatedStringHandler(36, 4, invariantCulture); + handler.AppendLiteral("{EAetheryteLocation."); + handler.AppendFormatted(baseId); + handler.AppendLiteral(", new("); + handler.AppendFormatted(target.Position.X); + handler.AppendLiteral("f, "); + handler.AppendFormatted(target.Position.Y); + handler.AppendLiteral("f, "); + handler.AppendFormatted(target.Position.Z); + handler.AppendLiteral("f)},"); + ImGui.SetClipboardText(string.Create(provider, ref handler)); + } + else + { + IFormatProvider invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider2 = invariantCulture; + DefaultInterpolatedStringHandler handler2 = new DefaultInterpolatedStringHandler(12, 3, invariantCulture); + handler2.AppendLiteral("new("); + handler2.AppendFormatted(target.Position.X); + handler2.AppendLiteral("f, "); + handler2.AppendFormatted(target.Position.Y); + handler2.AppendLiteral("f, "); + handler2.AppendFormatted(target.Position.Z); + handler2.AppendLiteral("f)"); + ImGui.SetClipboardText(string.Create(provider2, ref handler2)); + } + } } - static bool _200F_200E_200F_200D_202E_200D_202A_206E_206E_206D_200F_206C_200B_202E_206B_206D_206A_200C_202A_200F_200D_200B_206E_202A_200F_200D_202A_202E_206B_202C_202D_206C_200F_202B_202E_200F_206A_200C_206B_206F_202E() + private void DrawCopyButton() { - return ImGui.IsItemHovered(); - } - - static void _200D_200E_206D_206F_206C_202D_202B_202E_202A_206D_206C_200B_206A_206F_200F_206E_202C_200B_202C_200C_200C_206E_202E_200C_200D_206A_206C_200B_202C_202A_200D_206F_200F_206F_202A_202E_200D_200B_206B_202A_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } - - static void _202D_200B_202E_202C_206D_206C_206A_202C_202A_200D_200D_202D_202E_200D_200C_206E_206A_206C_200B_200D_200D_202E_200E_200D_200E_206A_200E_206F_200F_206F_202C_200B_200D_206E_206D_206F_206C_200F_200D_202A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _206D_202A_206D_206F_206B_200D_202D_206B_206A_202E_202B_206D_202D_206E_202B_206C_202C_206B_202E_202A_200D_200E_200B_202A_200C_202D_206D_202D_200F_202A_202B_202A_200F_202B_200B_200B_202B_206A_202A_206A_202E(ImU8String P_0) - { - ImGui.SetClipboardText(P_0); - } - - static bool _202C_206A_206C_202D_206E_206B_202B_206B_200F_202E_206F_206D_202B_200E_202D_206D_206F_206E_202C_202B_202C_206F_206A_206D_200D_202B_202A_206D_206E_200C_202D_206D_206A_206A_206B_202B_200E_200E_202B_200D_202E(ImGuiMouseButton P_0) - { - return ImGui.IsItemClicked(P_0); + if (_objectTable.LocalPlayer != null) + { + bool num = ImGuiComponents.IconButton(FontAwesomeIcon.Copy); + if (ImGui.IsItemHovered()) + { + ImGui.SetTooltip("Left click: Copy your position as JSON.\nRight click: Copy your position as C# code."); + } + if (num) + { + ImU8String clipboardText = new ImU8String(87, 4); + clipboardText.AppendLiteral("\"Position\": {\n \"X\": "); + clipboardText.AppendFormatted(_objectTable.LocalPlayer.Position.X.ToString(CultureInfo.InvariantCulture)); + clipboardText.AppendLiteral(",\n \"Y\": "); + clipboardText.AppendFormatted(_objectTable.LocalPlayer.Position.Y.ToString(CultureInfo.InvariantCulture)); + clipboardText.AppendLiteral(",\n \"Z\": "); + clipboardText.AppendFormatted(_objectTable.LocalPlayer.Position.Z.ToString(CultureInfo.InvariantCulture)); + clipboardText.AppendLiteral("\n},\n\"TerritoryId\": "); + clipboardText.AppendFormatted(_clientState.TerritoryType); + clipboardText.AppendLiteral(",\n\"InteractionType\": \"\""); + ImGui.SetClipboardText(clipboardText); + } + else if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) + { + Vector3 position = _objectTable.LocalPlayer.Position; + IFormatProvider invariantCulture = CultureInfo.InvariantCulture; + DefaultInterpolatedStringHandler handler = new DefaultInterpolatedStringHandler(12, 3, invariantCulture); + handler.AppendLiteral("new("); + handler.AppendFormatted(position.X); + handler.AppendLiteral("f, "); + handler.AppendFormatted(position.Y); + handler.AppendLiteral("f, "); + handler.AppendFormatted(position.Z); + handler.AppendLiteral("f)"); + ImGui.SetClipboardText(string.Create(invariantCulture, ref handler)); + } + } } } diff --git a/Questionable/Questionable.Windows.QuestComponents/EventInfoComponent.cs b/Questionable/Questionable.Windows.QuestComponents/EventInfoComponent.cs index d67b144..17b9d2a 100644 --- a/Questionable/Questionable.Windows.QuestComponents/EventInfoComponent.cs +++ b/Questionable/Questionable.Windows.QuestComponents/EventInfoComponent.cs @@ -1,11 +1,7 @@ using System; -using System.Collections; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Bindings.ImGui; using Dalamud.Interface; using Dalamud.Interface.Components; @@ -24,751 +20,7 @@ namespace Questionable.Windows.QuestComponents; internal sealed class EventInfoComponent { - private sealed record EventQuest(string Name, List<ElementId> QuestIds, DateTime EndsAtUtc, string? Patch) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206D_202C_200C_200F_206E_200B_206C_206F_202A_202A_200F_206F_206E_200B_200C_202B_200D_200F_200B_200C_206A_206C_206E_206F_202B_202A_206F_200B_200E_202C_200C_206F_206A_200E_200C_202B_200C_206A_200B_202E_202E(typeof(EventQuest).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200D_200E_206D_200C_200C_200E_206D_202C_200C_206F_200D_202E_200F_200C_200B_206A_200E_202E_200E_202B_202D_202E_206C_202B_206C_200B_206E_206D_200F_202B_202D_206B_202A_200B_206D_200C_200B_206B_202B_202B_202E(); - _206C_202A_206C_206B_200E_202D_202D_200C_200E_202E_206D_206F_200F_202D_202C_202D_200F_202E_200F_200F_206D_200D_206B_200F_202A_200E_206C_200D_202C_206E_202D_200D_202B_200D_200B_206F_200C_202A_206B_202D_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1998675563)); - _206C_202A_206C_206B_200E_202D_202D_200C_200E_202E_206D_206F_200F_202D_202C_202D_200F_202E_200F_200F_206D_200D_206B_200F_202A_200E_206C_200D_202C_206E_202D_200D_202B_200D_200B_206F_200C_202A_206B_202D_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1344697862)); - int num = ((!PrintMembers(stringBuilder)) ? (-678979591) : (-678979592)); - while (true) - { - int num2 = num; - int num3 = -678979591; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -678979592; - break; - case 0: - _200B_206F_206B_206E_200C_200D_202E_206B_202C_206A_206E_200D_202D_202A_200C_202B_202D_200C_202E_206E_200E_206E_206B_202B_206B_206B_200F_202D_206D_200F_200C_202C_206F_206A_206A_206F_202E_200B_206A_206A_202E(stringBuilder, '}'); - return _200F_206D_200F_206B_202A_206D_202E_202B_206F_202E_202C_206F_200B_206D_206C_206D_202D_206C_200E_206C_206E_206C_206E_200E_200E_200C_206E_200F_206C_202D_200B_206B_202D_202E_206A_200E_206C_200E_202C_202D_202E((object)stringBuilder); - case 1: - _200B_206F_206B_206E_200C_200D_202E_206B_202C_206A_206E_200D_202D_202A_200C_202B_202D_200C_202E_206E_200E_206E_206B_202B_206B_206B_200F_202D_206D_200F_200C_202C_206F_206A_206A_206F_202E_200B_206A_206A_202E(stringBuilder, ' '); - num = -678979591; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202A_206B_202B_206B_206F_200D_202A_206F_206D_202A_206E_206A_200D_206E_202C_206F_206D_200D_206C_200C_200D_200B_206F_202E_202A_202C_200C_202D_206B_202C_206E_206B_200C_200D_202E_200C_206D_200D_202A_206B_202E(); - _206C_202A_206C_206B_200E_202D_202D_200C_200E_202E_206D_206F_200F_202D_202C_202D_200F_202E_200F_200F_206D_200D_206B_200F_202A_200E_206C_200D_202C_206E_202D_200D_202B_200D_200B_206F_200C_202A_206B_202D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(868794944)); - _206B_206A_200D_200C_200F_202D_200C_206E_206B_202D_206A_206C_200E_206C_200B_200E_202E_206B_206A_206A_200B_206B_202B_200C_202B_200E_206D_206D_206B_206B_202B_206A_200F_202C_206D_206F_200B_206D_206C_206A_202E(builder, (object)Name); - _206C_202A_206C_206B_200E_202D_202D_200C_200E_202E_206D_206F_200F_202D_202C_202D_200F_202E_200F_200F_206D_200D_206B_200F_202A_200E_206C_200D_202C_206E_202D_200D_202B_200D_200B_206F_200C_202A_206B_202D_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(206800257)); - _206B_206A_200D_200C_200F_202D_200C_206E_206B_202D_206A_206C_200E_206C_200B_200E_202E_206B_206A_206A_200B_206B_202B_200C_202B_200E_206D_206D_206B_206B_202B_206A_200F_202C_206D_206F_200B_206D_206C_206A_202E(builder, (object)QuestIds); - _206C_202A_206C_206B_200E_202D_202D_200C_200E_202E_206D_206F_200F_202D_202C_202D_200F_202E_200F_200F_206D_200D_206B_200F_202A_200E_206C_200D_202C_206E_202D_200D_202B_200D_200B_206F_200C_202A_206B_202D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-263122042)); - _206C_202A_206C_206B_200E_202D_202D_200C_200E_202E_206D_206F_200F_202D_202C_202D_200F_202E_200F_200F_206D_200D_206B_200F_202A_200E_206C_200D_202C_206E_202D_200D_202B_200D_200B_206F_200C_202A_206B_202D_202E(builder, EndsAtUtc.ToString()); - _206C_202A_206C_206B_200E_202D_202D_200C_200E_202E_206D_206F_200F_202D_202C_202D_200F_202E_200F_200F_206D_200D_206B_200F_202A_200E_206C_200D_202C_206E_202D_200D_202B_200D_200B_206F_200C_202A_206B_202D_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1837383221)); - _206B_206A_200D_200C_200F_202D_200C_206E_206B_202D_206A_206C_200E_206C_200B_200E_202E_206B_206A_206A_200B_206B_202B_200C_202B_200E_206D_206D_206B_206B_202B_206A_200F_202C_206D_206F_200B_206D_206C_206A_202E(builder, (object)Patch); - return true; - } - - [CompilerGenerated] - public bool Equals(EventQuest? other) - { - int num = (((object)this == other) ? 943810149 : 943810156); - while (true) - { - int num2 = num; - int num3 = 943810148; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - num = 943810156; - break; - case 4: - return EqualityComparer<string>.Default.Equals(Patch, other.Patch); - case 3: - num = ((!EqualityComparer<DateTime>.Default.Equals(EndsAtUtc, other.EndsAtUtc)) ? 943810145 : 943810144); - break; - case 2: - num = ((!EqualityComparer<List<ElementId>>.Default.Equals(QuestIds, other.QuestIds)) ? 943810145 : 943810151); - break; - case 7: - num = ((!_206A_200D_206A_202A_206E_202C_202C_200E_202B_200D_206B_206B_200D_200D_206C_202B_206A_202D_202B_206D_202C_200B_206A_206C_206D_206C_206E_202B_200F_206F_202E_202E_202D_206D_206D_206D_202A_200E_206A_206F_202E(EqualityContract, other.EqualityContract)) ? 943810145 : 943810148); - break; - case 5: - return false; - case 1: - return true; - case 8: - num = (((object)other == null) ? 943810145 : 943810147); - break; - case 0: - num = ((!EqualityComparer<string>.Default.Equals(Name, other.Name)) ? 943810145 : 943810150); - break; - } - } - } - - bool IEquatable<EventQuest>.Equals(EventQuest? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206D_202C_200C_200F_206E_200B_206C_206F_202A_202A_200F_206F_206E_200B_200C_202B_200D_200F_200B_200C_206A_206C_206E_206F_202B_202A_206F_200B_200E_202C_200C_206F_206A_200E_200C_202B_200C_206A_200B_202E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200D_200E_206D_200C_200C_200E_206D_202C_200C_206F_200D_202E_200F_200C_200B_206A_200E_202E_200E_202B_202D_202E_206C_202B_206C_200B_206E_206D_200F_202B_202D_206B_202A_200B_206D_200C_200B_206B_202B_202B_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206C_202A_206C_206B_200E_202D_202D_200C_200E_202E_206D_206F_200F_202D_202C_202D_200F_202E_200F_200F_206D_200D_206B_200F_202A_200E_206C_200D_202C_206E_202D_200D_202B_200D_200B_206F_200C_202A_206B_202D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200B_206F_206B_206E_200C_200D_202E_206B_202C_206A_206E_200D_202D_202A_200C_202B_202D_200C_202E_206E_200E_206E_206B_202B_206B_206B_200F_202D_206D_200F_200C_202C_206F_206A_206A_206F_202E_200B_206A_206A_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200F_206D_200F_206B_202A_206D_202E_202B_206F_202E_202C_206F_200B_206D_206C_206D_202D_206C_200E_206C_206E_206C_206E_200E_200E_200C_206E_200F_206C_202D_200B_206B_202D_202E_206A_200E_206C_200E_202C_202D_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202A_206B_202B_206B_206F_200D_202A_206F_206D_202A_206E_206A_200D_206E_202C_206F_206D_200D_206C_200C_200D_200B_206F_202E_202A_202C_200C_202D_206B_202C_206E_206B_200C_200D_202E_200C_206D_200D_202A_206B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206B_206A_200D_200C_200F_202D_200C_206E_206B_202D_206A_206C_200E_206C_200B_200E_202E_206B_206A_206A_200B_206B_202B_200C_202B_200E_206D_206D_206B_206B_202B_206A_200F_202C_206D_206F_200B_206D_206C_206A_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206A_200D_206A_202A_206E_202C_202C_200E_202B_200D_206B_206B_200D_200D_206C_202B_206A_202D_202B_206D_202C_200B_206A_206C_206D_206C_206E_202B_200F_206F_202E_202E_202D_206D_206D_206D_202A_200E_206A_206F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<IQuestInfo, DateTime> _003C_003E9__21_2; - - public static Func<IQuestInfo, string> _003C_003E9__21_3; - - public static Func<string, bool> _003C_003E9__21_4; - - public static Func<IQuestInfo, ElementId> _003C_003E9__21_5; - - public static Func<IQuestInfo, bool> _003C_003E9__24_0; - - public static Func<IQuestInfo, ElementId> _003C_003E9__24_1; - - public static Func<IQuestInfo, DateTime> _003C_003E9__28_1; - - public static Func<IQuestInfo, string> _003C_003E9__28_2; - - public static Func<string, bool> _003C_003E9__28_3; - - internal DateTime _003CDraw_003Eb__21_2(IQuestInfo q) - { - DateTime? dateTime = (q as QuestInfo)?.SeasonalQuestExpiry; - int num = (dateTime.HasValue ? (-1099291127) : (-1099291121)); - DateTime? dateTime2 = default(DateTime?); - UnlockLinkQuestInfo unlockLinkQuestInfo = default(UnlockLinkQuestInfo); - while (true) - { - int num2 = num; - int num3 = -1099291124; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - DateTime? obj; - switch (num5 - (num6 + num6)) - { - case 1: - { - DateTime valueOrDefault = dateTime2.GetValueOrDefault(); - return NormalizeExpiry(valueOrDefault); - } - case 3: - unlockLinkQuestInfo = q as UnlockLinkQuestInfo; - num = ((unlockLinkQuestInfo != null) ? (-1099291126) : (-1099291122)); - break; - case 6: - obj = unlockLinkQuestInfo.QuestExpiry; - goto IL_00d6; - case 4: - return DateTime.MaxValue; - case 5: - obj = dateTime; - goto IL_00d6; - case 0: - num = -1099291121; - break; - case 2: - { - obj = null; - goto IL_00d6; - } - IL_00d6: - dateTime2 = obj; - num = ((!dateTime2.HasValue) ? (-1099291128) : (-1099291123)); - break; - } - } - } - - internal string _003CDraw_003Eb__21_3(IQuestInfo q) - { - return (q as UnlockLinkQuestInfo)?.Patch; - } - - internal bool _003CDraw_003Eb__21_4(string p) - { - return !_206C_206A_200D_206A_206B_200C_200B_202C_202C_202A_202B_200E_206E_202A_200E_202C_202A_202E_200C_202A_200D_206E_202C_200D_202B_202A_200F_206B_206B_206E_202E_200D_202E_200B_200B_200D_200E_202E_200C_200F_202E(p); - } - - internal ElementId _003CDraw_003Eb__21_5(IQuestInfo q) - { - return q.QuestId; - } - - internal bool _003CGetCurrentlyActiveEventQuests_003Eb__24_0(IQuestInfo q) - { - DateTime? dateTime = (q as QuestInfo)?.SeasonalQuestExpiry; - int num = ((!dateTime.HasValue) ? (-1628574967) : (-1628574968)); - UnlockLinkQuestInfo unlockLinkQuestInfo = default(UnlockLinkQuestInfo); - while (true) - { - int num2 = num; - int num3 = -1628574965; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - return true; - case 2: - unlockLinkQuestInfo = q as UnlockLinkQuestInfo; - num = ((unlockLinkQuestInfo == null) ? (-1628574966) : (-1628574962)); - break; - case 0: - { - DateTime valueOrDefault = dateTime.GetValueOrDefault(); - num = ((!(NormalizeExpiry(valueOrDefault) >= DateTime.UtcNow)) ? (-1628574966) : (-1628574963)); - break; - } - case 3: - { - DateTime valueOrDefault2 = dateTime.GetValueOrDefault(); - num = ((!(NormalizeExpiry(valueOrDefault2) >= DateTime.UtcNow)) ? (-1628574967) : (-1628574964)); - break; - } - case 1: - return false; - case 7: - return true; - case 4: - num = -1628574968; - break; - case 5: - dateTime = unlockLinkQuestInfo.QuestExpiry; - num = ((!dateTime.HasValue) ? (-1628574966) : (-1628574965)); - break; - } - } - } - - internal ElementId _003CGetCurrentlyActiveEventQuests_003Eb__24_1(IQuestInfo q) - { - return q.QuestId; - } - - internal DateTime _003CUpdateCacheIfNeeded_003Eb__28_1(IQuestInfo q) - { - DateTime? dateTime = (q as QuestInfo)?.SeasonalQuestExpiry; - int num = (dateTime.HasValue ? (-968246671) : (-968246666)); - DateTime? dateTime2 = default(DateTime?); - UnlockLinkQuestInfo unlockLinkQuestInfo = default(UnlockLinkQuestInfo); - while (true) - { - int num2 = num; - int num3 = -968246665; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - DateTime? obj; - switch (num5 - (num6 + num6)) - { - case 5: - num = -968246666; - break; - case 6: - obj = dateTime; - goto IL_0091; - case 2: - return DateTime.MaxValue; - case 4: - { - DateTime valueOrDefault = dateTime2.GetValueOrDefault(); - return NormalizeExpiry(valueOrDefault); - } - case 1: - unlockLinkQuestInfo = q as UnlockLinkQuestInfo; - num = ((unlockLinkQuestInfo != null) ? (-968246668) : (-968246665)); - break; - case 3: - obj = unlockLinkQuestInfo.QuestExpiry; - goto IL_0091; - case 0: - { - obj = null; - goto IL_0091; - } - IL_0091: - dateTime2 = obj; - num = ((!dateTime2.HasValue) ? (-968246667) : (-968246669)); - break; - } - } - } - - internal string _003CUpdateCacheIfNeeded_003Eb__28_2(IQuestInfo q) - { - return (q as UnlockLinkQuestInfo)?.Patch; - } - - internal bool _003CUpdateCacheIfNeeded_003Eb__28_3(string p) - { - return !_206C_206A_200D_206A_206B_200C_200B_202C_202C_202A_202B_200E_206E_202A_200E_202C_202A_202E_200C_202A_200D_206E_202C_200D_202B_202A_200F_206B_206B_206E_202E_200D_202E_200B_200B_200D_200E_202E_200C_200F_202E(p); - } - - static bool _206C_206A_200D_206A_206B_200C_200B_202C_202C_202A_202B_200E_206E_202A_200E_202C_202A_202E_200C_202A_200D_206E_202C_200D_202B_202A_200F_206B_206B_206E_202E_200D_202E_200B_200B_200D_200E_202E_200C_200F_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - } - - [CompilerGenerated] - private sealed class _003CGetActiveSeasonalQuestsNoCache_003Ed__27 : IEnumerable<IQuestInfo>, IEnumerable, IEnumerator<IQuestInfo>, IEnumerator, IDisposable - { - private int _003C_003E1__state; - - private IQuestInfo _003C_003E2__current; - - private int _003C_003El__initialThreadId; - - public EventInfoComponent _003C_003E4__this; - - private IEnumerator<ElementId> _003C_003E7__wrap1; - - IQuestInfo IEnumerator<IQuestInfo>.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - object IEnumerator.Current - { - [DebuggerHidden] - get - { - return _003C_003E2__current; - } - } - - [DebuggerHidden] - public _003CGetActiveSeasonalQuestsNoCache_003Ed__27(int _003C_003E1__state) - { - this._003C_003E1__state = _003C_003E1__state; - _003C_003El__initialThreadId = _200E_200C_202A_206E_200E_202A_202C_202B_202B_206E_202C_200C_206E_202E_200C_200F_202B_202D_206D_206A_206D_202E_206A_200C_200F_206C_202E_206E_206B_202A_202D_200C_200E_206B_202D_202E_202C_200C_202D_202D_202E(); - } - - [DebuggerHidden] - void IDisposable.Dispose() - { - int num = _003C_003E1__state; - int num2 = ((num == -3) ? 1245844464 : 1245844467); - while (true) - { - int num3 = num2; - int num4 = 1245844466; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - default: - continue; - case 0: - num2 = 1245844467; - continue; - case 1: - num4 = 1; - num5 = num; - if ((uint)(~(~num5 + num4)) <= 3u) - { - num2 = 1245844464; - continue; - } - break; - case 2: - try - { - } - finally - { - _003C_003Em__Finally1(); - } - break; - } - break; - } - _003C_003E7__wrap1 = null; - _003C_003E1__state = -2; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private bool MoveNext() - { - try - { - int num = _003C_003E1__state; - EventInfoComponent eventInfoComponent = _003C_003E4__this; - int num2; - IQuestInfo questInfo = default(IQuestInfo); - DateTime dateTime = default(DateTime); - Questionable.Model.Quest quest = default(Questionable.Model.Quest); - ElementId current = default(ElementId); - DateTime? dateTime2 = default(DateTime?); - QuestInfo questInfo2 = default(QuestInfo); - UnlockLinkQuestInfo unlockLinkQuestInfo = default(UnlockLinkQuestInfo); - switch (num) - { - default: - num2 = -910534625; - goto IL_0034; - case 0: - { - _003C_003E1__state = -1; - IEnumerable<ElementId> allQuestIds = eventInfoComponent._questRegistry.GetAllQuestIds(); - _003C_003E7__wrap1 = allQuestIds.GetEnumerator(); - _003C_003E1__state = -3; - num2 = -910534647; - goto IL_0034; - } - case 4: - goto IL_0250; - case 2: - goto IL_02a4; - case 3: - goto IL_0373; - case 1: - goto IL_0387; - IL_0034: - while (true) - { - int num3 = num2; - int num4 = -910534626; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 21: - goto IL_00c8; - case 15: - goto IL_00ff; - case 6: - goto IL_0123; - case 12: - _202C_200F_200D_202E_202C_200C_206C_200D_200E_206A_206D_206A_206B_202B_202B_202A_200E_202D_206D_202B_206B_202A_200F_200D_202B_206D_200F_200C_200F_202E_202B_200E_206B_206F_206E_202A_206F_202B_200D_206B_202E((ILogger)eventInfoComponent._logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(553552971), new object[3] { questInfo.QuestId, questInfo.Name, dateTime }); - num2 = -910534647; - break; - case 17: - goto end_IL_0034; - case 24: - _003C_003E2__current = questInfo; - _003C_003E1__state = 4; - return true; - case 14: - goto IL_01f8; - case 5: - goto IL_0220; - case 18: - goto IL_0250; - case 16: - goto IL_0264; - case 1: - return false; - case 4: - goto IL_02a4; - case 2: - _003C_003E2__current = questInfo; - _003C_003E1__state = 2; - return true; - case 25: - questInfo = quest.Info; - num2 = -910534629; - break; - case 23: - goto IL_02ef; - case 22: - goto IL_0317; - case 27: - goto IL_0344; - case 19: - goto IL_0373; - case 0: - goto IL_0387; - case 8: - num2 = -910534625; - break; - case 28: - goto IL_03a7; - case 11: - _202C_200F_200D_202E_202C_200C_206C_200D_200E_206A_206D_206A_206B_202B_202B_202A_200E_202D_206D_202B_206B_202A_200F_200D_202B_206D_200F_200C_200F_202E_202B_200E_206B_206F_206E_202A_206F_202B_200D_206B_202E((ILogger)eventInfoComponent._logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-92370415), new object[1] { current }); - num2 = -910534647; - break; - case 13: - _003C_003E2__current = questInfo; - _003C_003E1__state = 1; - return true; - case 7: - goto IL_0422; - case 20: - goto IL_044a; - case 9: - _003C_003E2__current = questInfo; - _003C_003E1__state = 3; - return true; - case 26: - goto IL_04a5; - case 3: - goto IL_04d1; - case 10: - _003C_003Em__Finally1(); - _003C_003E7__wrap1 = null; - return false; - } - continue; - IL_04d1: - num2 = ((!eventInfoComponent._alreadyLoggedActiveSeasonalSkip.Add(_206B_200E_200E_202A_202E_206E_200E_206E_200E_206C_206D_202B_200F_202B_206B_200D_200F_200B_200B_202A_202A_206F_206F_206B_206B_202A_200F_202D_202E_200F_206E_200E_206D_206C_206F_206F_206B_200C_200C_202B_202E(questInfo.QuestId))) ? (-910534647) : (-910534638)); - continue; - IL_0123: - DateTime valueOrDefault = dateTime2.GetValueOrDefault(); - dateTime = NormalizeExpiry(valueOrDefault); - num2 = ((!(dateTime > DateTime.UtcNow)) ? (-910534627) : (-910534637)); - continue; - IL_0344: - num2 = ((!eventInfoComponent._alreadyLoggedActiveSeasonalSkip.Add(_206B_200E_200E_202A_202E_206E_200E_206E_200E_206C_206D_202B_200F_202B_206B_200D_200F_200B_200B_202A_202A_206F_206F_206B_206B_202A_200F_202D_202E_200F_206E_200E_206D_206C_206F_206F_206B_200C_200C_202B_202E(current))) ? (-910534647) : (-910534635)); - continue; - IL_04a5: - num2 = ((!eventInfoComponent._questRegistry.TryGetQuest(current, out quest)) ? (-910534651) : (-910534649)); - continue; - IL_0264: - dateTime2 = questInfo2.SeasonalQuestExpiry; - num2 = (dateTime2.HasValue ? (-910534647) : (-910534650)); - continue; - IL_01f8: - questInfo2 = questInfo as QuestInfo; - num2 = ((questInfo2 == null) ? (-910534647) : (-910534654)); - continue; - IL_044a: - current = _003C_003E7__wrap1.Current; - num2 = (eventInfoComponent._questData.TryGetQuestInfo(current, out questInfo) ? (-910534629) : (-910534652)); - continue; - IL_0317: - dateTime2 = unlockLinkQuestInfo.QuestExpiry; - num2 = ((!dateTime2.HasValue) ? (-910534628) : (-910534632)); - continue; - IL_00ff: - num2 = ((!questInfo2.IsSeasonalQuest) ? (-910534647) : (-910534642)); - continue; - IL_0422: - unlockLinkQuestInfo = questInfo as UnlockLinkQuestInfo; - num2 = ((unlockLinkQuestInfo == null) ? (-910534640) : (-910534648)); - continue; - IL_0220: - num2 = (eventInfoComponent._questFunctions.IsQuestUnobtainable(questInfo.QuestId) ? (-910534647) : (-910534631)); - continue; - IL_02ef: - num2 = (_206F_202B_206F_206B_206A_206B_202E_200B_202B_200C_206A_202B_202D_202E_200C_206D_200E_200E_200F_206F_200D_206C_200C_200F_206D_200E_206D_200C_202D_202B_206C_202B_200E_206C_200B_200B_200B_206D_206F_200D_202E((IEnumerator)_003C_003E7__wrap1) ? (-910534646) : (-910534636)); - continue; - IL_03a7: - dateTime2 = questInfo2.SeasonalQuestExpiry; - num2 = ((!dateTime2.HasValue) ? (-910534639) : (-910534645)); - continue; - IL_00c8: - DateTime valueOrDefault2 = dateTime2.GetValueOrDefault(); - num2 = ((!(NormalizeExpiry(valueOrDefault2) > DateTime.UtcNow)) ? (-910534647) : (-910534633)); - continue; - end_IL_0034: - break; - } - goto case 0; - IL_0387: - _003C_003E1__state = -3; - num2 = -910534647; - goto IL_0034; - IL_0373: - _003C_003E1__state = -3; - num2 = -910534647; - goto IL_0034; - IL_02a4: - _003C_003E1__state = -3; - num2 = -910534647; - goto IL_0034; - IL_0250: - _003C_003E1__state = -3; - num2 = -910534647; - goto IL_0034; - } - } - catch - { - //try-fault - ((IDisposable)this).Dispose(); - throw; - } - } - - bool IEnumerator.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - return this.MoveNext(); - } - - private void _003C_003Em__Finally1() - { - _003C_003E1__state = -1; - int num = ((_003C_003E7__wrap1 == null) ? 92311819 : 92311816); - while (true) - { - int num2 = num; - int num3 = 92311818; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 92311816; - break; - case 2: - _206C_202A_200B_202D_206F_206E_206A_202B_202C_200E_200F_206B_200E_202D_202C_200E_202E_200D_206C_202E_202E_206C_206C_202E_200C_202B_206A_200B_200C_202D_206A_206A_206C_200B_202E_206D_206E_200B_206D_200C_202E((IDisposable)_003C_003E7__wrap1); - num = 92311819; - break; - case 1: - return; - } - } - } - - [DebuggerHidden] - void IEnumerator.Reset() - { - throw _206C_206D_206F_200F_206D_202A_200E_200E_206D_200C_206E_200D_200F_206D_200E_200D_200B_200D_206D_200E_206E_206C_206F_202A_206C_200E_200F_206E_202E_200E_206A_206B_200F_200C_202C_206B_200D_206E_202E_206B_202E(); - } - - [DebuggerHidden] - IEnumerator<IQuestInfo> IEnumerable<IQuestInfo>.GetEnumerator() - { - int num = ((_003C_003E1__state != -2) ? (-673075660) : (-673075657)); - _003CGetActiveSeasonalQuestsNoCache_003Ed__27 result = default(_003CGetActiveSeasonalQuestsNoCache_003Ed__27); - while (true) - { - int num2 = num; - int num3 = -673075658; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - _003C_003E1__state = 0; - result = this; - num = -673075659; - break; - case 3: - return result; - case 0: - num = -673075657; - break; - case 1: - num = ((_003C_003El__initialThreadId != _200E_200C_202A_206E_200E_202A_202C_202B_202B_206E_202C_200C_206E_202E_200C_200F_202B_202D_206D_206A_206D_202E_206A_200C_200F_206C_202E_206E_206B_202A_202D_200C_200E_206B_202D_202E_202C_200C_202D_202D_202E()) ? (-673075660) : (-673075662)); - break; - case 2: - result = new _003CGetActiveSeasonalQuestsNoCache_003Ed__27(0) - { - _003C_003E4__this = _003C_003E4__this - }; - num = -673075659; - break; - } - } - } - - [DebuggerHidden] - IEnumerator IEnumerable.GetEnumerator() - { - return ((IEnumerable<IQuestInfo>)this).GetEnumerator(); - } - - static int _200E_200C_202A_206E_200E_202A_202C_202B_202B_206E_202C_200C_206E_202E_200C_200F_202B_202D_206D_206A_206D_202E_206A_200C_200F_206C_202E_206E_206B_202A_202D_200C_200E_206B_202D_202E_202C_200C_202D_202D_202E() - { - return Environment.CurrentManagedThreadId; - } - - static ushort _206B_200E_200E_202A_202E_206E_200E_206E_200E_206C_206D_202B_200F_202B_206B_200D_200F_200B_200B_202A_202A_206F_206F_206B_206B_202A_200F_202D_202E_200F_206E_200E_206D_206C_206F_206F_206B_200C_200C_202B_202E(ElementId P_0) - { - return P_0.Value; - } - - static void _202C_200F_200D_202E_202C_200C_206C_200D_200E_206A_206D_206A_206B_202B_202B_202A_200E_202D_206D_202B_206B_202A_200F_200D_202B_206D_200F_200C_200F_202E_202B_200E_206B_206F_206E_202A_206F_202B_200D_206B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _206F_202B_206F_206B_206A_206B_202E_200B_202B_200C_206A_202B_202D_202E_200C_206D_200E_200E_200F_206F_200D_206C_200C_200F_206D_200E_206D_200C_202D_202B_206C_202B_200E_206C_200B_200B_200B_206D_206F_200D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206C_202A_200B_202D_206F_206E_206A_202B_202C_200E_200F_206B_200E_202D_202C_200E_202E_200D_206C_202E_202E_206C_206C_202E_200C_202B_206A_200B_200C_202D_206A_206A_206C_200B_202E_206D_206E_200B_206D_200C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static NotSupportedException _206C_206D_206F_200F_206D_202A_200E_200E_206D_200C_206E_200D_200F_206D_200E_200D_200B_200D_206D_200E_206E_206C_206F_202A_206C_200E_200F_206E_202E_200E_206A_206B_200F_200C_202C_206B_200D_206E_202E_206B_202E() - { - return new NotSupportedException(); - } - } + private sealed record EventQuest(string Name, List<ElementId> QuestIds, DateTime EndsAtUtc, string? Patch); private readonly QuestData _questData; @@ -810,30 +62,15 @@ internal sealed class EventInfoComponent { get { - int num = (_configuration.General.ShowIncompleteSeasonalEvents ? (-922541968) : (-922541965)); - while (true) + if (!_configuration.General.ShowIncompleteSeasonalEvents) { - int num2 = num; - int num3 = -922541966; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0050; - case 2: - UpdateCacheIfNeeded(); - return _cachedActiveSeasonalQuests.Any((IQuestInfo q) => !_questFunctions.IsQuestComplete(q.QuestId)); - case 1: - return false; - } - continue; - IL_0050: - num = -922541965; + return false; } + UpdateCacheIfNeeded(); + return _cachedActiveSeasonalQuests.Any((IQuestInfo q) => !_questFunctions.IsQuestComplete(q.QuestId)); } } - [MethodImpl(MethodImplOptions.NoInlining)] public EventInfoComponent(QuestData questData, QuestRegistry questRegistry, QuestFunctions questFunctions, UiUtils uiUtils, QuestController questController, FateController fateController, SeasonalDutyController seasonalDutyController, CustomDeliveryController customDeliveryController, AttunementController attunementController, QuestTooltipComponent questTooltipComponent, Configuration configuration, IDataManager dataManager, JournalData journalData, ILogger<EventInfoComponent> logger) { _questData = questData; @@ -849,507 +86,140 @@ internal sealed class EventInfoComponent _configuration = configuration; _dataManager = dataManager; _journalData = journalData; - _logger = logger ?? throw _202A_206F_200B_202A_206A_206E_200F_202C_206E_206E_202B_200D_200E_200D_200F_202E_202D_206D_200D_206A_200F_200E_206D_200B_200C_200E_206E_206B_200F_206A_206C_202A_200C_206E_206F_200E_206C_202E_202D_206D_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(449817736)); + _logger = logger ?? throw new ArgumentNullException("logger"); } - [MethodImpl(MethodImplOptions.NoInlining)] public void Draw() { UpdateCacheIfNeeded(); var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); - UiThemeUtils.SectionHeader(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-212176951)); - IEnumerator<IGrouping<string, IQuestInfo>> enumerator = _cachedActiveSeasonalQuests.GroupBy([MethodImpl(MethodImplOptions.NoInlining)] (IQuestInfo q) => + UiThemeUtils.SectionHeader("Events"); + foreach (IGrouping<string, IQuestInfo> item in _cachedActiveSeasonalQuests.GroupBy(delegate(IQuestInfo q) { - int num6 = ((!(q.QuestId is UnlockLinkId)) ? (-2142227645) : (-2142227641)); - string folderName = default(string); - while (true) + if (q.QuestId is UnlockLinkId) { - int num7 = num6; - int num8 = -2142227647; - int num9 = num7; - switch ((num9 | num8) - (num9 & num8)) - { - case 0: - return q.Name; - case 2: - num6 = ((!_questRegistry.TryGetQuestFolderName(q.QuestId, out folderName)) ? (-2142227648) : (-2142227644)); - break; - case 3: - return folderName; - case 1: - num6 = ((!q.JournalGenre.HasValue) ? (-2142227647) : (-2142227643)); - break; - case 6: - return global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1279184171); - case 7: - num6 = -2142227641; - break; - case 4: - return GetJournalGenreName(q.JournalGenre.Value); - case 5: - num6 = (_206E_206D_200E_206A_206F_200E_202E_206F_206C_202E_200B_202D_200C_206B_202A_206D_200B_202B_200F_200C_200F_200E_200E_200F_202E_200E_200C_202D_202E_206D_202C_202C_200F_206D_202B_200D_206A_202C_206B_202B_202E(folderName) ? (-2142227648) : (-2142227646)); - break; - } + return "Limited Unlocks"; } - }).GetEnumerator(); - try - { - int num = 1269360380; - List<string> list = default(List<string>); - IGrouping<string, IQuestInfo> current = default(IGrouping<string, IQuestInfo>); - DateTime endsAtUtc = default(DateTime); - while (true) + if (_questRegistry.TryGetQuestFolderName(q.QuestId, out string folderName) && !string.IsNullOrEmpty(folderName)) + { + return folderName; + } + return q.JournalGenre.HasValue ? GetJournalGenreName(q.JournalGenre.Value) : q.Name; + })) + { + if (item.All((IQuestInfo q) => _questFunctions.IsQuestComplete(q.QuestId))) { - int num2 = num; - int num3 = 1269360381; - int num4 = num2; - object obj; - string patch; - EventQuest eventQuest; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = 1269360380; - break; - case 4: - obj = list[0]; - goto IL_00a7; - case 1: - num = (_202B_206A_202B_206E_202C_206B_200D_202D_200B_202D_206B_202C_202C_200B_206D_200B_200F_202A_202C_200D_206C_202C_200D_200D_206E_206A_206B_206A_200B_206B_206B_200E_202B_202C_206A_206B_200D_200E_202C_200C_202E((IEnumerator)enumerator) ? 1269360383 : 1269360379); - break; - case 2: - current = enumerator.Current; - num = (current.All((IQuestInfo q) => _questFunctions.IsQuestComplete(q.QuestId)) ? 1269360380 : 1269360376); - break; - case 5: - endsAtUtc = current.Select(delegate(IQuestInfo q) - { - DateTime? dateTime = (q as QuestInfo)?.SeasonalQuestExpiry; - int num6 = (dateTime.HasValue ? (-1099291127) : (-1099291121)); - DateTime? dateTime2 = default(DateTime?); - UnlockLinkQuestInfo unlockLinkQuestInfo = default(UnlockLinkQuestInfo); - while (true) - { - int num7 = num6; - int num8 = -1099291124; - int num9 = num7; - int num10 = num9 + num8; - int num11 = num9 & num8; - DateTime? obj2; - switch (num10 - (num11 + num11)) - { - case 1: - { - DateTime valueOrDefault = dateTime2.GetValueOrDefault(); - return NormalizeExpiry(valueOrDefault); - } - case 3: - unlockLinkQuestInfo = q as UnlockLinkQuestInfo; - num6 = ((unlockLinkQuestInfo != null) ? (-1099291126) : (-1099291122)); - break; - case 6: - obj2 = unlockLinkQuestInfo.QuestExpiry; - goto IL_00d6; - case 4: - return DateTime.MaxValue; - case 5: - obj2 = dateTime; - goto IL_00d6; - case 0: - num6 = -1099291121; - break; - case 2: - { - obj2 = null; - goto IL_00d6; - } - IL_00d6: - dateTime2 = obj2; - num6 = ((!dateTime2.HasValue) ? (-1099291128) : (-1099291123)); - break; - } - } - }).DefaultIfEmpty(DateTime.MaxValue).Min(); - list = (from q in current - select (q as UnlockLinkQuestInfo)?.Patch into p - where !_003C_003Ec._206C_206A_200D_206A_206B_200C_200B_202C_202C_202A_202B_200E_206E_202A_200E_202C_202A_202E_200C_202A_200D_206E_202C_200D_202B_202A_200F_206B_206B_206E_202E_200D_202E_200B_200B_200D_200E_202E_200C_200F_202E(p) - select p).Distinct().ToList(); - num = ((list.Count == 1) ? 1269360377 : 1269360381); - break; - case 0: - obj = null; - goto IL_00a7; - case 6: - goto end_IL_0057; - IL_00a7: - patch = (string)obj; - eventQuest = new EventQuest(current.Key, current.Select((IQuestInfo q) => q.QuestId).ToList(), endsAtUtc, patch); - DrawEventQuest(eventQuest); - num = 1269360380; - break; - } continue; - end_IL_0057: - break; } - } - finally - { - int num = ((enumerator == null) ? (-1205956058) : (-1205956059)); - while (true) + DateTime endsAtUtc = item.Select(delegate(IQuestInfo q) { - int num5 = num; - int num3 = -1205956057; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) + DateTime? dateTime = (q as QuestInfo)?.SeasonalQuestExpiry ?? ((q is UnlockLinkQuestInfo unlockLinkQuestInfo) ? unlockLinkQuestInfo.QuestExpiry : ((DateTime?)null)); + if (dateTime.HasValue) { - case 1: - goto end_IL_0248; - case 2: - _200B_202A_200F_202A_202C_200C_202C_202A_202D_200D_206E_200B_202B_200F_200F_206C_202C_200E_206B_200D_206D_200F_200D_200D_200C_202A_202C_202A_206B_200F_200F_202D_202B_206C_200B_206C_200B_200B_200E_206E_202E((IDisposable)enumerator); - num = -1205956058; - break; - case 0: - num = -1205956059; - break; + DateTime valueOrDefault = dateTime.GetValueOrDefault(); + return NormalizeExpiry(valueOrDefault); } - continue; - end_IL_0248: - break; - } + return DateTime.MaxValue; + }).DefaultIfEmpty(DateTime.MaxValue).Min(); + List<string> list = (from q in item + select (q as UnlockLinkQuestInfo)?.Patch into p + where !string.IsNullOrEmpty(p) + select p).Distinct().ToList(); + string patch = ((list.Count == 1) ? list[0] : null); + EventQuest eventQuest = new EventQuest(item.Key, item.Select((IQuestInfo q) => q.QuestId).ToList(), endsAtUtc, patch); + DrawEventQuest(eventQuest); } UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); } - [MethodImpl(MethodImplOptions.NoInlining)] private string GetJournalGenreName(uint journalGenreId) { try { JournalGenre row = _dataManager.GetExcelSheet<JournalGenre>().GetRow(journalGenreId); - int num = (row.Equals(default(JournalGenre)) ? (-948662388) : (-948662385)); - while (true) + if (!row.Equals(default(JournalGenre))) { - int num2 = num; - int num3 = -948662386; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0082; - case 1: - return row.Name.ExtractText(); - case 2: - goto end_IL_0054; - } - continue; - IL_0082: - num = -948662385; - continue; - end_IL_0054: - break; + return row.Name.ExtractText(); } } - catch (Exception ex) + catch (Exception exception) { - _206C_206F_206C_200E_202B_206C_206E_206E_200B_202E_206C_200C_206A_206D_200F_200D_202A_206C_206A_206C_206D_202C_206F_206B_206D_206A_202A_200C_206C_206B_206A_206E_206C_206E_202B_200B_200E_206C_206E_202D_202E((ILogger)_logger, ex, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(410054811), new object[1] { journalGenreId }); + _logger.LogWarning(exception, "Failed to get journal genre name for id {JournalGenreId}", journalGenreId); } - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(6, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-788724988)); - defaultInterpolatedStringHandler.AppendFormatted(journalGenreId); - return defaultInterpolatedStringHandler.ToStringAndClear(); + return $"Event {journalGenreId}"; } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawEventQuest(EventQuest eventQuest) { string text = eventQuest.Name; - int num = (_206E_206D_200E_206A_206F_200E_202E_206F_206C_202E_200B_202D_200C_206B_202A_206D_200B_202B_200F_200C_200F_200E_200E_200F_202E_200E_200C_202D_202E_206D_202C_202C_200F_206D_202B_200D_206A_202C_206B_202B_202E(eventQuest.Patch) ? (-1061868039) : (-1061868033)); - string text3 = default(string); - TimeSpan timeSpan = default(TimeSpan); - Questionable.Model.Quest quest = default(Questionable.Model.Quest); - while (true) + if (!string.IsNullOrEmpty(eventQuest.Patch)) { - int num2 = num; - int num3 = -1061868034; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + text = text + " [" + eventQuest.Patch + "]"; + } + if (eventQuest.EndsAtUtc != DateTime.MaxValue) + { + TimeSpan timeSpan = eventQuest.EndsAtUtc - DateTime.UtcNow; + if (timeSpan < TimeSpan.Zero) { - case 6: - num = -1061868033; - break; - case 8: - _202C_206C_202A_206C_202A_206F_202A_200B_200C_200F_206B_200C_206F_202C_202A_202B_200B_206B_202C_206E_202D_200F_200B_206F_206B_202B_200B_200C_206E_200D_206E_202B_206B_202E_206B_200C_206B_200B_200B_200E_202E((ImU8String)text3); - num = -1061868034; - break; - case 7: - num = ((!(eventQuest.EndsAtUtc != DateTime.MaxValue)) ? (-1061868035) : (-1061868038)); - break; - case 5: timeSpan = TimeSpan.Zero; - num = -1061868036; - break; - case 1: - text = _200B_200B_206F_200E_200B_206F_200D_202E_202B_202E_200D_202C_206D_202C_202D_200B_200C_202C_206E_206C_202E_202E_206C_202E_200C_200C_206B_200F_200E_206D_206C_200E_206E_200C_206D_206B_200B_206F_206B_202B_202E(text, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-949471360), eventQuest.Patch, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-25878066)); - num = -1061868039; - break; - case 2: - { - string text2 = FormatRemainingDays(timeSpan); - text3 = FormatRemainingFull(timeSpan); - UiThemeUtils.WrappedText(_200B_200B_206F_200E_200B_206F_200D_202E_202B_202E_200D_202C_206D_202C_202D_200B_200C_202C_206E_206C_202E_202E_206C_202E_200C_200C_206B_200F_200E_206D_206C_200E_206E_200C_206D_206B_200B_206F_206B_202B_202E(text, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1495931675), text2, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578))); - num = ((!_206E_202A_202D_200C_200B_202D_206A_200E_200C_200C_200F_200F_200D_206A_206C_200C_202A_202B_202E_206D_206B_200E_206E_202A_200F_206C_200F_202A_200E_206B_206A_206C_202E_200E_200E_206F_202E_200F_202A_200D_202E()) ? (-1061868034) : (-1061868042)); - break; } - case 4: - timeSpan = eventQuest.EndsAtUtc - DateTime.UtcNow; - num = ((!(timeSpan < TimeSpan.Zero)) ? (-1061868036) : (-1061868037)); - break; - case 3: - UiThemeUtils.WrappedText(text); - num = -1061868034; - break; - case 0: + string text2 = FormatRemainingDays(timeSpan); + string text3 = FormatRemainingFull(timeSpan); + UiThemeUtils.WrappedText(text + " (" + text2 + ")"); + if (ImGui.IsItemHovered()) { - List<ElementId> list = eventQuest.QuestIds.Where(delegate(ElementId x) + ImGui.SetTooltip(text3); + } + } + else + { + UiThemeUtils.WrappedText(text); + } + List<ElementId> list = eventQuest.QuestIds.Where((ElementId x) => _questRegistry.IsKnownQuest(x) && _questFunctions.IsReadyToAcceptQuest(x) && x != _questController.StartedQuest?.Quest.Id && x != _questController.NextQuest?.Quest.Id).ToList(); + foreach (ElementId questId in eventQuest.QuestIds) + { + if (_questFunctions.IsQuestComplete(questId)) + { + continue; + } + ImU8String id = new ImU8String(21, 1); + id.AppendLiteral("##EventQuestSelection"); + id.AppendFormatted(questId); + using (ImRaii.PushId(id)) + { + string name = _questData.GetQuestInfo(questId).Name; + if (list.Contains(questId) && _questRegistry.TryGetQuest(questId, out Questionable.Model.Quest quest)) { - int num22 = ((!_questRegistry.IsKnownQuest(x)) ? 517113328 : 517113333); - while (true) + using (ImRaii.Disabled(_questController.IsRunning || _fateController.IsRunning || _seasonalDutyController.IsRunning || _customDeliveryController.IsRunning || _attunementController.IsRunning)) { - int num23 = num22; - int num24 = 517113329; - int num25 = num23; - switch ((num25 | num24) - (num25 & num24)) + if (ImGuiComponents.IconButton(FontAwesomeIcon.Play)) { - case 1: - return false; - case 0: - num22 = ((!_202A_200E_200B_206C_200C_200C_202A_200D_206B_200F_202E_202E_202E_200D_206F_206D_206D_206B_202C_200D_200D_202C_202D_206A_206F_206F_200C_202E_200E_206D_200F_206A_206E_200B_206C_202A_206C_202A_202D_206B_202E(x, _questController.StartedQuest?.Quest.Id)) ? 517113328 : 517113330); - break; - case 4: - num22 = ((!_questFunctions.IsReadyToAcceptQuest(x)) ? 517113328 : 517113329); - break; - case 2: - num22 = 517113333; - break; - case 3: - return _202A_200E_200B_206C_200C_200C_202A_200D_206B_200F_202E_202E_202E_200D_206F_206D_206D_206B_202C_200D_200D_202C_202D_206A_206F_206F_200C_202E_200E_206D_200F_206A_206E_200B_206C_202A_206C_202A_202D_206B_202E(x, _questController.NextQuest?.Quest.Id); + _fateController.Stop("Seasonal event start"); + _seasonalDutyController.Stop("Seasonal event start"); + _customDeliveryController.Stop("Seasonal event start"); + _attunementController.Stop("Seasonal event start"); + _questController.SetNextQuest(quest); + _questController.Start("SeasonalEventSelection"); } } - }).ToList(); - { - foreach (ElementId questId in eventQuest.QuestIds) + bool num = ImGui.IsItemHovered(); + ImGui.SameLine(); + ImGui.AlignTextToFramePadding(); + UiThemeUtils.WrappedText(name); + if (num | ImGui.IsItemHovered()) { - if (_questFunctions.IsQuestComplete(questId)) - { - continue; - } - ImU8String imU8String = new ImU8String(21, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2110141082)); - imU8String.AppendFormatted(questId); - ImRaii.IdDisposable idDisposable = _202C_200D_200E_206F_206A_206A_202C_200D_206E_206A_206C_202E_206A_200F_200D_202D_202E_206C_200D_206B_202B_200C_200D_200E_202B_206C_200F_200B_200B_200D_202B_200E_200E_202E_202D_202D_206A_206F_200D_206C_202E(imU8String, true); - try - { - string name = _questData.GetQuestInfo(questId).Name; - if (list.Contains(questId)) - { - num = 580891172; - while (true) - { - int num7 = num; - num3 = 580891175; - num4 = num7; - int num8; - ImRaii.DisabledDisposable disabledDisposable; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0286; - case 7: - num8 = (_attunementController.IsRunning ? 1 : 0); - goto IL_036f; - case 6: - goto IL_02ca; - case 0: - num = 580891172; - break; - case 4: - goto IL_02fe; - case 1: - goto IL_0326; - case 3: - goto IL_034e; - case 5: - { - num8 = 1; - goto IL_036f; - } - IL_036f: - disabledDisposable = _202B_200E_206D_206C_202B_200F_206B_206B_206F_200C_200E_206E_200F_202E_202A_202A_202A_200D_206A_200F_206E_200F_202D_206D_202C_206E_200F_202A_206F_206A_206E_206A_202A_200F_206F_202D_200C_206B_200D_206E_202E((byte)num8 != 0); - try - { - num = ((!_200C_200B_206E_202B_206C_206E_206F_200E_206C_206E_206E_202A_206C_206D_200E_206B_202A_200B_202B_202E_202B_200D_206A_200E_202B_202D_202A_200F_202B_202E_206E_206C_200E_200D_200D_206B_202C_206C_202C_202C_202E(FontAwesomeIcon.Play)) ? (-1437028178) : (-1437028179)); - while (true) - { - int num9 = num; - num3 = -1437028180; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 0: - num = -1437028179; - break; - case 1: - _fateController.Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1679301458)); - _seasonalDutyController.Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-919026501)); - _customDeliveryController.Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-919026501)); - _attunementController.Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-919026501)); - _questController.SetNextQuest(quest); - _questController.Start(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1512208503)); - num = -1437028178; - break; - case 2: - goto end_IL_039d; - } - continue; - end_IL_039d: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? (-1918927549) : (-1918927552)); - while (true) - { - int num12 = num; - num3 = -1918927551; - num4 = num12; - int num13 = num4 + num3; - int num14 = num4 & num3; - switch (num13 - (num14 + num14)) - { - case 0: - num = -1918927552; - break; - case 2: - goto end_IL_047d; - case 1: - _200B_202A_200F_202A_202C_200C_202C_202A_202D_200D_206E_200B_202B_200F_200F_206C_202C_200E_206B_200D_206D_200F_200D_200D_200C_202A_202C_202A_206B_200F_200F_202D_202B_206C_200B_206C_200B_200B_200E_206E_202E((IDisposable)disabledDisposable); - num = -1918927549; - break; - } - continue; - end_IL_047d: - break; - } - } - goto end_IL_0246; - } - continue; - IL_034e: - if (_questRegistry.TryGetQuest(questId, out quest)) - { - num = 580891173; - continue; - } - goto IL_0555; - IL_02fe: - num = (_fateController.IsRunning ? 580891170 : 580891169); - continue; - IL_0326: - num = (_customDeliveryController.IsRunning ? 580891170 : 580891168); - continue; - IL_02ca: - num = (_seasonalDutyController.IsRunning ? 580891170 : 580891174); - continue; - IL_0286: - num = (_questController.IsRunning ? 580891170 : 580891171); - continue; - end_IL_0246: - break; - } - bool num15 = _206E_202A_202D_200C_200B_202D_206A_200E_200C_200C_200F_200F_200D_206A_206C_200C_202A_202B_202E_206D_206B_200E_206E_202A_200F_206C_200F_202A_200E_206B_206A_206C_202E_200E_200E_206F_202E_200F_202A_200D_202E(); - _200D_200B_200D_200F_202A_202D_206D_206B_206A_202C_202A_206F_200E_200D_206C_202B_206E_202D_202D_206B_206F_200C_206B_200B_200F_200C_206A_202D_200C_200F_200B_206D_206B_206C_206B_200C_200F_200B_206C_202B_202E(); - _200B_200F_206D_200C_206D_200F_200D_206E_206E_206B_206E_202B_200D_200D_200D_200F_206F_200F_206C_200E_206E_202D_200C_202B_200B_206E_206F_200E_200B_200F_200B_206B_206F_206D_200C_206A_200C_206E_206D_202E(); - UiThemeUtils.WrappedText(name); - num = ((!(num15 | _206E_202A_202D_200C_200B_202D_206A_200E_200C_200C_200F_200F_200D_206A_206C_200C_202A_202B_202E_206D_206B_200E_206E_202A_200F_206C_200F_202A_200E_206B_206A_206C_202E_200E_200E_206F_202E_200F_202A_200D_202E())) ? (-1473581929) : (-1473581932)); - goto IL_0504; - } - goto IL_0555; - IL_0504: - while (true) - { - int num16 = num; - num3 = -1473581931; - num4 = num16; - int num17 = num4 + num3; - int num18 = num4 & num3; - switch (num17 - (num18 + num18)) - { - case 0: - goto IL_0532; - case 1: - _questTooltipComponent.Draw(quest.Info); - goto end_IL_0504; - case 2: - goto end_IL_0504; - } - continue; - IL_0532: - num = -1473581932; - continue; - end_IL_0504: - break; - } - goto end_IL_0219; - IL_0555: - _200B_206D_206A_206B_206D_200C_206D_200E_200E_206D_206A_200B_202E_206D_206B_202B_206F_206D_206F_202D_206C_200D_200E_202E_200C_200E_202D_206D_202E_200C_206B_200D_206B_206E_206E_200F_200C_200C_200F_202E(_206E_206E_202C_202C_200F_206D_202C_206D_206E_202E_200F_200E_200D_206E_206E_202C_200E_202B_200B_200D_206F_200C_206A_206B_206C_202A_200B_202D_206E_200C_202E_202E_206B_206B_206A_206F_206E_200F_202A_202E()); - (Vector4, FontAwesomeIcon, string) questStyle = _uiUtils.GetQuestStyle(questId); - if (_uiUtils.ChecklistItem(name, questStyle.Item1, questStyle.Item2, _202D_206E_200C_206E_202B_202E_206A_206A_206C_202C_206E_202E_206C_202A_200E_202C_200D_206C_200D_200B_206A_206D_202E_202C_206D_202C_202B_200F_202D_206C_200F_202A_206F_202E_202A_200D_206F_206A_206C_202E().FramePadding.X)) - { - _questTooltipComponent.Draw(_questData.GetQuestInfo(questId)); - num = -1473581929; - goto IL_0504; - } - end_IL_0219:; - } - finally - { - num = ((idDisposable == null) ? (-1454907752) : (-1454907751)); - while (true) - { - int num19 = num; - num3 = -1454907752; - num4 = num19; - int num20 = num4 + num3; - int num21 = num4 & num3; - switch (num20 - (num21 + num21)) - { - case 2: - num = -1454907751; - break; - case 0: - goto end_IL_05ea; - case 1: - _200B_202A_200F_202A_202C_200C_202C_202A_202D_200D_206E_200B_202B_200F_200F_206C_202C_200E_206B_200D_206D_200F_200D_200D_200C_202A_202C_202A_206B_200F_200F_202D_202B_206C_200B_206C_200B_200B_200E_206E_202E((IDisposable)idDisposable); - num = -1454907752; - break; - } - continue; - end_IL_05ea: - break; - } - } + _questTooltipComponent.Draw(quest.Info); + } + } + else + { + ImGui.SetCursorPosX(ImGui.GetCursorPosX()); + (Vector4, FontAwesomeIcon, string) questStyle = _uiUtils.GetQuestStyle(questId); + if (_uiUtils.ChecklistItem(name, questStyle.Item1, questStyle.Item2, ImGui.GetStyle().FramePadding.X)) + { + _questTooltipComponent.Draw(_questData.GetQuestInfo(questId)); } - return; } - } } } } @@ -1360,257 +230,131 @@ internal sealed class EventInfoComponent return (from q in _cachedActiveSeasonalQuests.Where(delegate(IQuestInfo q) { DateTime? dateTime = (q as QuestInfo)?.SeasonalQuestExpiry; - int num = ((!dateTime.HasValue) ? (-1628574967) : (-1628574968)); - UnlockLinkQuestInfo unlockLinkQuestInfo = default(UnlockLinkQuestInfo); - while (true) + if (dateTime.HasValue) { - int num2 = num; - int num3 = -1628574965; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + DateTime valueOrDefault = dateTime.GetValueOrDefault(); + if (NormalizeExpiry(valueOrDefault) >= DateTime.UtcNow) { - case 6: return true; - case 2: - unlockLinkQuestInfo = q as UnlockLinkQuestInfo; - num = ((unlockLinkQuestInfo == null) ? (-1628574966) : (-1628574962)); - break; - case 0: - { - DateTime valueOrDefault = dateTime.GetValueOrDefault(); - num = ((!(NormalizeExpiry(valueOrDefault) >= DateTime.UtcNow)) ? (-1628574966) : (-1628574963)); - break; - } - case 3: - { - DateTime valueOrDefault2 = dateTime.GetValueOrDefault(); - num = ((!(NormalizeExpiry(valueOrDefault2) >= DateTime.UtcNow)) ? (-1628574967) : (-1628574964)); - break; - } - case 1: - return false; - case 7: - return true; - case 4: - num = -1628574968; - break; - case 5: - dateTime = unlockLinkQuestInfo.QuestExpiry; - num = ((!dateTime.HasValue) ? (-1628574966) : (-1628574965)); - break; } } + return (q is UnlockLinkQuestInfo { QuestExpiry: { } questExpiry } && NormalizeExpiry(questExpiry) >= DateTime.UtcNow) ? true : false; }) select q.QuestId).Where(ShouldShowQuest); } private bool ShouldShowQuest(ElementId elementId) { - int num = (_questFunctions.IsQuestComplete(elementId) ? 1742950996 : 1742950999); - while (true) + if (!_questFunctions.IsQuestComplete(elementId)) { - int num2 = num; - int num3 = 1742950998; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return !_questFunctions.IsQuestUnobtainable(elementId); + } + return false; + } + + private IEnumerable<IQuestInfo> GetActiveSeasonalQuestsNoCache() + { + IEnumerable<ElementId> allQuestIds = _questRegistry.GetAllQuestIds(); + foreach (ElementId item in allQuestIds) + { + if (!_questData.TryGetQuestInfo(item, out IQuestInfo questInfo)) { - case 2: - return false; - case 1: - return !_questFunctions.IsQuestUnobtainable(elementId); - case 0: - goto IL_005f; + if (!_questRegistry.TryGetQuest(item, out Questionable.Model.Quest quest)) + { + if (_alreadyLoggedActiveSeasonalSkip.Add(item.Value)) + { + _logger.LogDebug("Skipping quest {QuestId}: no QuestInfo", item); + } + continue; + } + questInfo = quest.Info; + } + if (_questFunctions.IsQuestUnobtainable(questInfo.QuestId)) + { + continue; + } + if (questInfo is UnlockLinkQuestInfo { QuestExpiry: var questExpiry }) + { + if (questExpiry.HasValue) + { + DateTime valueOrDefault = questExpiry.GetValueOrDefault(); + DateTime dateTime = NormalizeExpiry(valueOrDefault); + if (dateTime > DateTime.UtcNow) + { + yield return questInfo; + } + else if (_alreadyLoggedActiveSeasonalSkip.Add(questInfo.QuestId.Value)) + { + _logger.LogDebug("Skipping UnlockLink quest {QuestId} '{Name}': expiry {Expiry:o} UTC is not in the future", questInfo.QuestId, questInfo.Name, dateTime); + } + } + else + { + yield return questInfo; + } + } + else + { + if (!(questInfo is QuestInfo { SeasonalQuestExpiry: var seasonalQuestExpiry } questInfo2)) + { + continue; + } + if (seasonalQuestExpiry.HasValue) + { + DateTime valueOrDefault2 = seasonalQuestExpiry.GetValueOrDefault(); + if (NormalizeExpiry(valueOrDefault2) > DateTime.UtcNow) + { + yield return questInfo; + } + } + else if (questInfo2.IsSeasonalQuest && !questInfo2.SeasonalQuestExpiry.HasValue) + { + yield return questInfo; + } } - continue; - IL_005f: - num = 1742950999; } } - [IteratorStateMachine(typeof(_003CGetActiveSeasonalQuestsNoCache_003Ed__27))] - private IEnumerable<IQuestInfo> GetActiveSeasonalQuestsNoCache() - { - //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() - return new _003CGetActiveSeasonalQuestsNoCache_003Ed__27(-2) - { - _003C_003E4__this = this - }; - } - - [MethodImpl(MethodImplOptions.NoInlining)] private void UpdateCacheIfNeeded() { - int num = ((!(DateTime.UtcNow - _cachedAtUtc < _cacheDuration)) ? 1628818511 : 1628818508); - List<string> list = default(List<string>); - while (true) + if (DateTime.UtcNow - _cachedAtUtc < _cacheDuration) { - int num2 = num; - int num3 = 1628818510; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return; + } + _cachedActiveSeasonalQuests = GetActiveSeasonalQuestsNoCache().ToList(); + _cachedAtUtc = DateTime.UtcNow; + _logger.LogDebug("Refreshed seasonal quest cache: {Count} active seasonal quests (UTC now {UtcNow:o})", _cachedActiveSeasonalQuests.Count, _cachedAtUtc); + foreach (IGrouping<string, IQuestInfo> item in _cachedActiveSeasonalQuests.GroupBy(delegate(IQuestInfo q) + { + if (q.QuestId is UnlockLinkId) { - case 0: - goto IL_005e; - case 2: - return; - case 1: + return "Limited Unlocks"; + } + if (_questRegistry.TryGetQuestFolderName(q.QuestId, out string folderName) && !string.IsNullOrEmpty(folderName)) { - _cachedActiveSeasonalQuests = GetActiveSeasonalQuestsNoCache().ToList(); - _cachedAtUtc = DateTime.UtcNow; - _200E_206A_200F_206E_206A_206E_200C_206A_200F_206A_200F_202C_206B_206E_202A_202A_202A_206D_200C_202A_200D_202A_206D_206B_200C_200D_206E_202E_202C_206D_206D_206B_202D_202B_206E_200F_200B_206B_206E_206B_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-868567027), new object[2] { _cachedActiveSeasonalQuests.Count, _cachedAtUtc }); - IEnumerator<IGrouping<string, IQuestInfo>> enumerator = _cachedActiveSeasonalQuests.GroupBy([MethodImpl(MethodImplOptions.NoInlining)] (IQuestInfo q) => - { - int num11 = ((!(q.QuestId is UnlockLinkId)) ? (-1816240252) : (-1816240250)); - string folderName = default(string); - while (true) - { - int num12 = num11; - int num13 = -1816240249; - int num14 = num12; - switch ((num14 | num13) - (num14 & num13)) - { - case 4: - return q.Name; - case 7: - num11 = ((!q.JournalGenre.HasValue) ? (-1816240253) : (-1816240254)); - break; - case 0: - num11 = -1816240250; - break; - case 3: - num11 = ((!_questRegistry.TryGetQuestFolderName(q.QuestId, out folderName)) ? (-1816240256) : (-1816240255)); - break; - case 6: - num11 = (_206E_206D_200E_206A_206F_200E_202E_206F_206C_202E_200B_202D_200C_206B_202A_206D_200B_202B_200F_200C_200F_200E_200E_200F_202E_200E_200C_202D_202E_206D_202C_202C_200F_206D_202B_200D_206A_202C_206B_202B_202E(folderName) ? (-1816240256) : (-1816240251)); - break; - case 1: - return global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1052996645); - case 5: - return GetJournalGenreName(q.JournalGenre.Value); - case 2: - return folderName; - } - } - }).GetEnumerator(); - try - { - num = -184184745; - while (true) - { - int num5 = num; - num3 = -184184745; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 3: - num = -184184745; - break; - case 0: - num = (_202B_206A_202B_206E_202C_206B_200D_202D_200B_202D_206B_202C_202C_200B_206D_200B_200F_202A_202C_200D_206C_202C_200D_200D_206E_206A_206B_206A_200B_206B_206B_200E_202B_202C_206A_206B_200D_200E_202C_200C_202E((IEnumerator)enumerator) ? (-184184747) : (-184184749)); - break; - case 2: - { - IGrouping<string, IQuestInfo> current = enumerator.Current; - current.Select(delegate(IQuestInfo q) - { - DateTime? dateTime = (q as QuestInfo)?.SeasonalQuestExpiry; - int num11 = (dateTime.HasValue ? (-968246671) : (-968246666)); - DateTime? dateTime2 = default(DateTime?); - UnlockLinkQuestInfo unlockLinkQuestInfo = default(UnlockLinkQuestInfo); - while (true) - { - int num12 = num11; - int num13 = -968246665; - int num14 = num12; - int num15 = num14 + num13; - int num16 = num14 & num13; - DateTime? obj; - switch (num15 - (num16 + num16)) - { - case 5: - num11 = -968246666; - break; - case 6: - obj = dateTime; - goto IL_0091; - case 2: - return DateTime.MaxValue; - case 4: - { - DateTime valueOrDefault = dateTime2.GetValueOrDefault(); - return NormalizeExpiry(valueOrDefault); - } - case 1: - unlockLinkQuestInfo = q as UnlockLinkQuestInfo; - num11 = ((unlockLinkQuestInfo != null) ? (-968246668) : (-968246665)); - break; - case 3: - obj = unlockLinkQuestInfo.QuestExpiry; - goto IL_0091; - case 0: - { - obj = null; - goto IL_0091; - } - IL_0091: - dateTime2 = obj; - num11 = ((!dateTime2.HasValue) ? (-968246667) : (-968246669)); - break; - } - } - }).DefaultIfEmpty(DateTime.MaxValue).Min(); - list = (from q in current - select (q as UnlockLinkQuestInfo)?.Patch into p - where !_003C_003Ec._206C_206A_200D_206A_206B_200C_200B_202C_202C_202A_202B_200E_206E_202A_200E_202C_202A_202E_200C_202A_200D_206E_202C_200D_202B_202A_200F_206B_206B_206E_202E_200D_202E_200B_200B_200D_200E_202E_200C_200F_202E(p) - select p).Distinct().ToList(); - num = ((list.Count != 1) ? (-184184745) : (-184184746)); - break; - } - case 1: - _ = list[0]; - num = -184184745; - break; - case 4: - return; - } - } - } - finally - { - num = ((enumerator == null) ? 1835390803 : 1835390800); - while (true) - { - int num8 = num; - num3 = 1835390802; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 1: - goto end_IL_0235; - case 2: - _200B_202A_200F_202A_202C_200C_202C_202A_202D_200D_206E_200B_202B_200F_200F_206C_202C_200E_206B_200D_206D_200F_200D_200D_200C_202A_202C_202A_206B_200F_200F_202D_202B_206C_200B_206C_200B_200B_200E_206E_202E((IDisposable)enumerator); - num = 1835390803; - break; - case 0: - num = 1835390800; - break; - } - continue; - end_IL_0235: - break; - } - } + return folderName; } + return q.JournalGenre.HasValue ? GetJournalGenreName(q.JournalGenre.Value) : q.Name; + })) + { + item.Select(delegate(IQuestInfo q) + { + DateTime? dateTime = (q as QuestInfo)?.SeasonalQuestExpiry ?? ((q is UnlockLinkQuestInfo unlockLinkQuestInfo) ? unlockLinkQuestInfo.QuestExpiry : ((DateTime?)null)); + if (dateTime.HasValue) + { + DateTime valueOrDefault = dateTime.GetValueOrDefault(); + return NormalizeExpiry(valueOrDefault); + } + return DateTime.MaxValue; + }).DefaultIfEmpty(DateTime.MaxValue).Min(); + List<string> list = (from q in item + select (q as UnlockLinkQuestInfo)?.Patch into p + where !string.IsNullOrEmpty(p) + select p).Distinct().ToList(); + if (list.Count == 1) + { + _ = list[0]; } - continue; - IL_005e: - num = 1628818508; } } @@ -1630,201 +374,35 @@ internal sealed class EventInfoComponent return ExpiryUtils.NormalizeExpiry(d); } - [MethodImpl(MethodImplOptions.NoInlining)] internal static string FormatRemainingDays(TimeSpan remaining) { - int num = (int)_202D_200C_206F_202D_206E_206A_202E_202D_200C_206C_206A_206B_206F_206F_206C_200B_202E_200B_206F_206F_200F_202C_200E_200D_206C_200F_202B_200B_200B_202B_206E_202B_202B_202C_202A_200D_200F_206E_200E_206B_202E(_200B_206D_206D_206D_202D_200D_200E_206F_206C_200C_200F_206F_200D_206F_200D_202B_206C_202C_200D_206A_202C_202D_202D_206E_206E_202A_200F_200C_200F_200C_202E_202E_206D_200F_206F_202E_206E_206E_206A_206A_202E(0.0, remaining.TotalSeconds)); + int num = (int)Math.Ceiling(Math.Max(0.0, remaining.TotalSeconds)); int num2 = num / 86400; - int num3 = ((num2 < 1) ? (-778997214) : (-778997213)); - while (true) + if (num2 >= 1) { - int num4 = num3; - int num5 = -778997214; - int num6 = num4; - switch ((num6 | num5) - (num6 & num5)) + if (num2 != 1) { - case 2: - num3 = -778997213; - break; - case 1: - num3 = ((num2 == 1) ? (-778997210) : (-778997215)); - break; - case 4: - return global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(807779745); - case 0: - { - int value = num % 86400 / 3600; - int value2 = num % 3600 / 60; - int value3 = num % 60; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(2, 3); - defaultInterpolatedStringHandler2.AppendFormatted(value, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1462241587)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-332393296)); - defaultInterpolatedStringHandler2.AppendFormatted(value2, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1462241587)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1360606241)); - defaultInterpolatedStringHandler2.AppendFormatted(value3, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1194352829)); - return defaultInterpolatedStringHandler2.ToStringAndClear(); - } - case 3: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(5, 1); - defaultInterpolatedStringHandler.AppendFormatted(num2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-604625296)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } + return $"{num2} days"; } + return "1 day"; } + int value = num % 86400 / 3600; + int value2 = num % 3600 / 60; + int value3 = num % 60; + return $"{value:D2}:{value2:D2}:{value3:D2}"; } - [MethodImpl(MethodImplOptions.NoInlining)] internal static string FormatRemainingFull(TimeSpan remaining) { - int num = (int)_202D_200C_206F_202D_206E_206A_202E_202D_200C_206C_206A_206B_206F_206F_206C_200B_202E_200B_206F_206F_200F_202C_200E_200D_206C_200F_202B_200B_200B_202B_206E_202B_202B_202C_202A_200D_200F_206E_200E_206B_202E(_200B_206D_206D_206D_202D_200D_200E_206F_206C_200C_200F_206F_200D_206F_200D_202B_206C_202C_200D_206A_202C_202D_202D_206E_206E_202A_200F_200C_200F_200C_202E_202E_206D_200F_206F_202E_206E_206E_206A_206A_202E(0.0, remaining.TotalSeconds)); + int num = (int)Math.Ceiling(Math.Max(0.0, remaining.TotalSeconds)); int num2 = num / 86400; int value = num % 86400 / 3600; int value2 = num % 3600 / 60; int value3 = num % 60; - int num3 = ((num2 < 1) ? 1138194550 : 1138194549); - while (true) + if (num2 < 1) { - int num4 = num3; - int num5 = 1138194548; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) - { - case 0: - goto IL_008d; - case 2: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(13, 3); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1458961767)); - defaultInterpolatedStringHandler2.AppendFormatted(value, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1194352829)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-192724514)); - defaultInterpolatedStringHandler2.AppendFormatted(value2, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1194352829)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1016237535)); - defaultInterpolatedStringHandler2.AppendFormatted(value3, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1194352829)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2118666922)); - return defaultInterpolatedStringHandler2.ToStringAndClear(); - } - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(15, 4); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(591199998)); - defaultInterpolatedStringHandler.AppendFormatted(num2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1327832800)); - defaultInterpolatedStringHandler.AppendFormatted(value, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1462241587)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2144237027)); - defaultInterpolatedStringHandler.AppendFormatted(value2, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1968563628)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1560597113)); - defaultInterpolatedStringHandler.AppendFormatted(value3, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1462241587)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-838706236)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - } - continue; - IL_008d: - num3 = 1138194549; + return $"Ends in {value:D2}h {value2:D2}m {value3:D2}s"; } - } - - static ArgumentNullException _202A_206F_200B_202A_206A_206E_200F_202C_206E_206E_202B_200D_200E_200D_200F_202E_202D_206D_200D_206A_200F_200E_206D_200B_200C_200E_206E_206B_200F_206A_206C_202A_200C_206E_206F_200E_206C_202E_202D_206D_202E(string P_0) - { - return new ArgumentNullException(P_0); - } - - static bool _202B_206A_202B_206E_202C_206B_200D_202D_200B_202D_206B_202C_202C_200B_206D_200B_200F_202A_202C_200D_206C_202C_200D_200D_206E_206A_206B_206A_200B_206B_206B_200E_202B_202C_206A_206B_200D_200E_202C_200C_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200B_202A_200F_202A_202C_200C_202C_202A_202D_200D_206E_200B_202B_200F_200F_206C_202C_200E_206B_200D_206D_200F_200D_200D_200C_202A_202C_202A_206B_200F_200F_202D_202B_206C_200B_206C_200B_200B_200E_206E_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _206C_206F_206C_200E_202B_206C_206E_206E_200B_202E_206C_200C_206A_206D_200F_200D_202A_206C_206A_206C_206D_202C_206F_206B_206D_206A_202A_200C_206C_206B_206A_206E_206C_206E_202B_200B_200E_206C_206E_202D_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogWarning(P_1, P_2, P_3); - } - - static bool _206E_206D_200E_206A_206F_200E_202E_206F_206C_202E_200B_202D_200C_206B_202A_206D_200B_202B_200F_200C_200F_200E_200E_200F_202E_200E_200C_202D_202E_206D_202C_202C_200F_206D_202B_200D_206A_202C_206B_202B_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static string _200B_200B_206F_200E_200B_206F_200D_202E_202B_202E_200D_202C_206D_202C_202D_200B_200C_202C_206E_206C_202E_202E_206C_202E_200C_200C_206B_200F_200E_206D_206C_200E_206E_200C_206D_206B_200B_206F_206B_202B_202E(string P_0, string P_1, string P_2, string P_3) - { - return P_0 + P_1 + P_2 + P_3; - } - - static bool _206E_202A_202D_200C_200B_202D_206A_200E_200C_200C_200F_200F_200D_206A_206C_200C_202A_202B_202E_206D_206B_200E_206E_202A_200F_206C_200F_202A_200E_206B_206A_206C_202E_200E_200E_206F_202E_200F_202A_200D_202E() - { - return ImGui.IsItemHovered(); - } - - static void _202C_206C_202A_206C_202A_206F_202A_200B_200C_200F_206B_200C_206F_202C_202A_202B_200B_206B_202C_206E_202D_200F_200B_206F_206B_202B_200B_200C_206E_200D_206E_202B_206B_202E_206B_200C_206B_200B_200B_200E_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } - - static ImRaii.IdDisposable _202C_200D_200E_206F_206A_206A_202C_200D_206E_206A_206C_202E_206A_200F_200D_202D_202E_206C_200D_206B_202B_200C_200D_200E_202B_206C_200F_200B_200B_200D_202B_200E_200E_202E_202D_202D_206A_206F_200D_206C_202E(ImU8String P_0, bool P_1) - { - return ImRaii.PushId(P_0, P_1); - } - - static ImRaii.DisabledDisposable _202B_200E_206D_206C_202B_200F_206B_206B_206F_200C_200E_206E_200F_202E_202A_202A_202A_200D_206A_200F_206E_200F_202D_206D_202C_206E_200F_202A_206F_206A_206E_206A_202A_200F_206F_202D_200C_206B_200D_206E_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static bool _200C_200B_206E_202B_206C_206E_206F_200E_206C_206E_206E_202A_206C_206D_200E_206B_202A_200B_202B_202E_202B_200D_206A_200E_202B_202D_202A_200F_202B_202E_206E_206C_200E_200D_200D_206B_202C_206C_202C_202C_202E(FontAwesomeIcon P_0) - { - return ImGuiComponents.IconButton(P_0); - } - - static void _200D_200B_200D_200F_202A_202D_206D_206B_206A_202C_202A_206F_200E_200D_206C_202B_206E_202D_202D_206B_206F_200C_206B_200B_200F_200C_206A_202D_200C_200F_200B_206D_206B_206C_206B_200C_200F_200B_206C_202B_202E() - { - ImGui.SameLine(); - } - - static void _200B_200F_206D_200C_206D_200F_200D_206E_206E_206B_206E_202B_200D_200D_200D_200F_206F_200F_206C_200E_206E_202D_200C_202B_200B_206E_206F_200E_200B_200F_200B_206B_206F_206D_200C_206A_200C_206E_206D_202E() - { - ImGui.AlignTextToFramePadding(); - } - - static float _206E_206E_202C_202C_200F_206D_202C_206D_206E_202E_200F_200E_200D_206E_206E_202C_200E_202B_200B_200D_206F_200C_206A_206B_206C_202A_200B_202D_206E_200C_202E_202E_206B_206B_206A_206F_206E_200F_202A_202E() - { - return ImGui.GetCursorPosX(); - } - - static void _200B_206D_206A_206B_206D_200C_206D_200E_200E_206D_206A_200B_202E_206D_206B_202B_206F_206D_206F_202D_206C_200D_200E_202E_200C_200E_202D_206D_202E_200C_206B_200D_206B_206E_206E_200F_200C_200C_200F_202E(float P_0) - { - ImGui.SetCursorPosX(P_0); - } - - static ImGuiStylePtr _202D_206E_200C_206E_202B_202E_206A_206A_206C_202C_206E_202E_206C_202A_200E_202C_200D_206C_200D_200B_206A_206D_202E_202C_206D_202C_202B_200F_202D_206C_200F_202A_206F_202E_202A_200D_206F_206A_206C_202E() - { - return ImGui.GetStyle(); - } - - static void _200E_206A_200F_206E_206A_206E_200C_206A_200F_206A_200F_202C_206B_206E_202A_202A_202A_206D_200C_202A_200D_202A_206D_206B_200C_200D_206E_202E_202C_206D_206D_206B_202D_202B_206E_200F_200B_206B_206E_206B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static double _200B_206D_206D_206D_202D_200D_200E_206F_206C_200C_200F_206F_200D_206F_200D_202B_206C_202C_200D_206A_202C_202D_202D_206E_206E_202A_200F_200C_200F_200C_202E_202E_206D_200F_206F_202E_206E_206E_206A_206A_202E(double P_0, double P_1) - { - return Math.Max(P_0, P_1); - } - - static double _202D_200C_206F_202D_206E_206A_202E_202D_200C_206C_206A_206B_206F_206F_206C_200B_202E_200B_206F_206F_200F_202C_200E_200D_206C_200F_202B_200B_200B_202B_206E_202B_202B_202C_202A_200D_200F_206E_200E_206B_202E(double P_0) - { - return Math.Ceiling(P_0); - } - - static bool _202A_200E_200B_206C_200C_200C_202A_200D_206B_200F_202E_202E_202E_200D_206F_206D_206D_206B_202C_200D_200D_202C_202D_206A_206F_206F_200C_202E_200E_206D_200F_206A_206E_200B_206C_202A_206C_202A_202D_206B_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; + return $"Ends in {num2}d {value:D2}h {value2:D2}m {value3:D2}s"; } } diff --git a/Questionable/Questionable.Windows.QuestComponents/GameSequenceChainComponent.cs b/Questionable/Questionable.Windows.QuestComponents/GameSequenceChainComponent.cs index 1c96b27..681ac53 100644 --- a/Questionable/Questionable.Windows.QuestComponents/GameSequenceChainComponent.cs +++ b/Questionable/Questionable.Windows.QuestComponents/GameSequenceChainComponent.cs @@ -1,7 +1,5 @@ using System.Collections.Generic; using System.Globalization; -using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Plugin.Services; using Questionable.Data; @@ -22,150 +20,67 @@ internal sealed class GameSequenceChainComponent public List<int> GetSequences(QuestId questId) { - List<int> value; - int num = (_cache.TryGetValue(_202B_202A_202D_206F_200D_206D_200C_200D_200E_202E_206E_206F_200B_206F_206A_206A_206D_202B_206D_206D_200F_200C_206B_206F_206C_206B_202A_202A_206E_206D_206B_206E_202A_206D_202C_206A_206D_202A_206D_202C_202E((ElementId)questId), out value) ? (-354892396) : (-354892395)); - while (true) + if (!_cache.TryGetValue(questId.Value, out List<int> value)) { - int num2 = num; - int num3 = -354892396; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return value; - case 1: - value = GameQuestSequences.GetCompletionSequences(_dataManager, questId); - _cache[_202B_202A_202D_206F_200D_206D_200C_200D_200E_202E_206E_206F_200B_206F_206A_206A_206D_202B_206D_206D_200F_200C_206B_206F_206C_206B_202A_202A_206E_206D_206B_206E_202A_206D_202C_206A_206D_202A_206D_202C_202E((ElementId)questId)] = value; - num = -354892396; - break; - case 2: - num = -354892395; - break; - } + value = GameQuestSequences.GetCompletionSequences(_dataManager, questId); + _cache[questId.Value] = value; } + return value; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Draw(QuestId questId, byte currentSequence) { List<int> sequences = GetSequences(questId); - int num = ((sequences.Count != 0) ? 702696098 : 702696101); - int num7 = default(int); - int num5 = default(int); - int num6 = default(int); - while (true) + if (sequences.Count == 0) { - int num2 = num; - int num3 = 702696110; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + ImGui.TextColored(in UiThemeUtils.MutedTextColor, "No sequence data"); + return; + } + for (int i = 0; i < sequences.Count; i++) + { + if (i > 0) { - case 3: - { - ImU8String imU8String2 = new ImU8String(3, 2); - imU8String2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1824588032)); - int num8 = num7; - num3 = 1; - num4 = num8; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - imU8String2.AppendFormatted(num9 + (num10 + num10)); - imU8String2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1605560946)); - imU8String2.AppendFormatted(sequences.Count); - imU8String2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - _202C_202D_202C_200B_202B_206B_200B_200D_200D_200F_200C_200F_200B_200E_200E_200C_202A_206E_206F_200D_202B_202D_206D_202B_206C_206A_200E_202A_202B_200F_206A_206D_202C_206E_202A_202E_202E_202E_202A_202E(ref UiThemeUtils.MutedTextColor, imU8String2); - return; + ImGui.SameLine(0f, 4f); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, "›"); + ImGui.SameLine(0f, 4f); } - case 1: - _202C_202D_202C_200B_202B_206B_200B_200D_200D_200F_200C_200F_200B_200E_200E_200C_202A_206E_206F_200D_202B_202D_206D_202B_206C_206A_200E_202A_202B_200F_206A_206D_202C_206E_202A_202E_202E_202E_202A_202E(ref UiThemeUtils.StatusComplete, (ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-544992352)); - return; - case 7: - num5 = sequences[num6]; - num = ((num5 != currentSequence) ? 702696096 : 702696107); - break; - case 8: + int num = sequences[i]; + if (num == currentSequence) { - ImU8String imU8String3 = new ImU8String(19, 1); - imU8String3.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-900994738)); - imU8String3.AppendFormatted(currentSequence); - imU8String3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1286214387)); - _202C_202D_202C_200B_202B_206B_200B_200D_200D_200F_200C_200F_200B_200E_200E_200C_202A_206E_206F_200D_202B_202D_206D_202B_206C_206A_200E_202A_202B_200F_206A_206D_202C_206E_202A_202E_202E_202E_202A_202E(ref UiThemeUtils.StatusUnobtainable, imU8String3); - return; + ImU8String text = new ImU8String(2, 1); + text.AppendLiteral("["); + text.AppendFormatted(num); + text.AppendLiteral("]"); + ImGui.TextColored(in UiThemeUtils.StatusActive, text); } - case 6: + else { - int num11 = num6; - num3 = 1; - num4 = num11; - num6 = (num4 | num3) + (num4 & num3); - num = 702696110; - break; - } - case 4: - num = 702696101; - break; - case 10: - num = ((num6 <= 0) ? 702696105 : 702696099); - break; - case 9: - num7 = sequences.IndexOf(currentSequence); - _202B_200E_200D_206E_202B_206A_200E_206C_200E_200F_206B_206A_206F_206A_200D_200D_206C_202A_202D_200C_206C_200B_206E_202E_200F_200C_206E_200D_202C_200B_206B_202D_206F_200B_206B_200D_200D_200D_202B_206F_202E(0f, 8f); - num = ((currentSequence != byte.MaxValue) ? 702696108 : 702696111); - break; - case 0: - num = ((num6 < sequences.Count) ? 702696100 : 702696103); - break; - case 14: - _202C_202D_202C_200B_202B_206B_200B_200D_200D_200F_200C_200F_200B_200E_200E_200C_202A_206E_206F_200D_202B_202D_206D_202B_206C_206A_200E_202A_202B_200F_206A_206D_202C_206E_202A_202E_202E_202E_202A_202E(ref UiThemeUtils.DimTextColor, (ImU8String)num5.ToString(_202C_200F_200B_202D_206A_202C_202C_200E_206C_202B_206D_200D_200D_200B_206D_206A_206D_202B_206E_200E_200F_206C_202E_202A_206B_202C_202E_200F_206A_206D_200E_200F_202E_206B_202A_200C_206D_206D_202E())); - num = 702696104; - break; - case 2: - num = ((num7 < 0) ? 702696102 : 702696109); - break; - case 11: - _202C_202D_202C_200B_202B_206B_200B_200D_200D_200F_200C_200F_200B_200E_200E_200C_202A_206E_206F_200D_202B_202D_206D_202B_206C_206A_200E_202A_202B_200F_206A_206D_202C_206E_202A_202E_202E_202E_202A_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-361933865)); - return; - case 12: - num6 = 0; - num = 702696110; - break; - case 5: - { - ImU8String imU8String = new ImU8String(2, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1463938997)); - imU8String.AppendFormatted(num5); - imU8String.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1991522223)); - _202C_202D_202C_200B_202B_206B_200B_200D_200D_200F_200C_200F_200B_200E_200E_200C_202A_206E_206F_200D_202B_202D_206D_202B_206C_206A_200E_202A_202B_200F_206A_206D_202C_206E_202A_202E_202E_202E_202A_202E(ref UiThemeUtils.StatusActive, imU8String); - num = 702696104; - break; - } - case 13: - _202B_200E_200D_206E_202B_206A_200E_206C_200E_200F_206B_206A_206F_206A_200D_200D_206C_202A_202D_200C_206C_200B_206E_202E_200F_200C_206E_200D_202C_200B_206B_202D_206F_200B_206B_200D_200D_200D_202B_206F_202E(0f, 4f); - _202C_202D_202C_200B_202B_206B_200B_200D_200D_200F_200C_200F_200B_200E_200E_200C_202A_206E_206F_200D_202B_202D_206D_202B_206C_206A_200E_202A_202B_200F_206A_206D_202C_206E_202A_202E_202E_202E_202A_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1068992984)); - _202B_200E_200D_206E_202B_206A_200E_206C_200E_200F_206B_206A_206F_206A_200D_200D_206C_202A_202D_200C_206C_200B_206E_202E_200F_200C_206E_200D_202C_200B_206B_202D_206F_200B_206B_200D_200D_200D_202B_206F_202E(0f, 4f); - num = 702696105; - break; + ImGui.TextColored(in UiThemeUtils.DimTextColor, num.ToString(CultureInfo.InvariantCulture)); } } - } - - static ushort _202B_202A_202D_206F_200D_206D_200C_200D_200E_202E_206E_206F_200B_206F_206A_206A_206D_202B_206D_206D_200F_200C_206B_206F_206C_206B_202A_202A_206E_206D_206B_206E_202A_206D_202C_206A_206D_202A_206D_202C_202E(ElementId P_0) - { - return P_0.Value; - } - - static void _202C_202D_202C_200B_202B_206B_200B_200D_200D_200F_200C_200F_200B_200E_200E_200C_202A_206E_206F_200D_202B_202D_206D_202B_206C_206A_200E_202A_202B_200F_206A_206D_202C_206E_202A_202E_202E_202E_202A_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static void _202B_200E_200D_206E_202B_206A_200E_206C_200E_200F_206B_206A_206F_206A_200D_200D_206C_202A_202D_200C_206C_200B_206E_202E_200F_200C_206E_200D_202C_200B_206B_202D_206F_200B_206B_200D_200D_200D_202B_206F_202E(float P_0, float P_1) - { - ImGui.SameLine(P_0, P_1); - } - - static CultureInfo _202C_200F_200B_202D_206A_202C_202C_200E_206C_202B_206D_200D_200D_200B_206D_206A_206D_202B_206E_200E_200F_206C_202E_202A_206B_202C_202E_200F_206A_206D_200E_200F_202E_206B_202A_200C_206D_206D_202E() - { - return CultureInfo.InvariantCulture; + int num2 = sequences.IndexOf(currentSequence); + ImGui.SameLine(0f, 8f); + if (currentSequence == byte.MaxValue) + { + ImGui.TextColored(in UiThemeUtils.StatusComplete, "(ready to turn in)"); + } + else if (num2 >= 0) + { + ImU8String text2 = new ImU8String(3, 2); + text2.AppendLiteral("("); + text2.AppendFormatted(num2 + 1); + text2.AppendLiteral("/"); + text2.AppendFormatted(sequences.Count); + text2.AppendLiteral(")"); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, text2); + } + else + { + ImU8String text3 = new ImU8String(19, 1); + text3.AppendLiteral("(at "); + text3.AppendFormatted(currentSequence); + text3.AppendLiteral(", not in chain)"); + ImGui.TextColored(in UiThemeUtils.StatusUnobtainable, text3); + } } } diff --git a/Questionable/Questionable.Windows.QuestComponents/ManualPriorityComponent.cs b/Questionable/Questionable.Windows.QuestComponents/ManualPriorityComponent.cs index 328b70c..ca62851 100644 --- a/Questionable/Questionable.Windows.QuestComponents/ManualPriorityComponent.cs +++ b/Questionable/Questionable.Windows.QuestComponents/ManualPriorityComponent.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using System.Text; using Dalamud.Bindings.ImGui; using Dalamud.Interface; @@ -19,53 +18,6 @@ namespace Questionable.Windows.QuestComponents; internal sealed class ManualPriorityComponent { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Predicate<(Vector2 TopLeft, Vector2 BottomRight)> _003C_003E9__14_1; - - public static Func<Quest, string> _003C_003E9__15_0; - - internal bool _003CDrawQuestList_003Eb__14_1((Vector2 TopLeft, Vector2 BottomRight) x) - { - return _202C_200E_202C_202D_202C_200F_200B_202E_202C_202B_206D_202A_206F_202A_206B_200F_200C_202B_206D_200C_200C_206E_206D_202E_206B_200D_206F_202C_200E_202E_202A_202A_200B_206C_206F_206D_200C_202E_206A_202B_202E(x.TopLeft, x.BottomRight, true); - } - - internal string _003CEncodeQuestPriority_003Eb__15_0(Quest x) - { - return _200D_206B_200B_206A_202C_200B_200E_206A_200E_200B_200E_206E_206A_200C_202D_200D_206B_206C_202E_206E_200B_206A_200F_200F_206B_200B_206F_202C_202D_206B_202C_200C_200D_202E_200C_202D_200D_206E_202B_206F_202E((object)x.Id); - } - - static bool _202C_200E_202C_202D_202C_200F_200B_202E_202C_202B_206D_202A_206F_202A_206B_200F_200C_202B_206D_200C_200C_206E_206D_202E_206B_200D_206F_202C_200E_202E_202A_202A_200B_206C_206F_206D_200C_202E_206A_202B_202E(Vector2 P_0, Vector2 P_1, bool P_2) - { - return ImGui.IsMouseHoveringRect(P_0, P_1, P_2); - } - - static string _200D_206B_200B_206A_202C_200B_200E_206A_200E_200B_200E_206E_206A_200C_202D_200D_206B_206C_202E_206E_200B_206A_200F_200F_206B_200B_206F_202C_202D_206B_202C_200C_200D_202E_200C_202D_200D_206E_202B_206F_202E(object P_0) - { - return P_0.ToString(); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass11_1 - { - public Quest quest; - - internal bool _003C_002Ector_003Eb__3(Quest x) - { - return _206F_206E_200B_200C_200D_202E_202D_200F_206D_202D_202D_202C_206B_206A_206C_202D_202C_200D_200B_200D_200B_206F_200D_202B_206A_206B_206B_206B_206A_206C_200F_202B_202B_200E_206D_200E_200B_200B_206E_206F_202E(x.Id, quest.Id); - } - - static bool _206F_206E_200B_200C_200D_202E_202D_200F_206D_202D_202D_202C_206B_206A_206C_202D_202C_200D_200B_200D_200B_206F_200D_202B_206A_206B_206B_206B_206A_206C_200F_202B_202B_200E_206D_200E_200B_200B_206E_206F_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } - } - public const string ClipboardPrefix = "qst:priority:"; public const string LegacyClipboardPrefix = "qst:v1:"; @@ -96,31 +48,7 @@ internal sealed class ManualPriorityComponent _questSelector = questSelector; _questTooltipComponent = questTooltipComponent; _chatGui = chatGui; - _questSelector.SuggestionPredicate = delegate(Quest quest) - { - int num = (quest.Info.IsMainScenarioQuest ? (-1325154727) : (-1325154728)); - while (true) - { - int num2 = num; - int num3 = -1325154726; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return questController.ManualPriorityQuests.All((Quest x) => _003C_003Ec__DisplayClass11_1._206F_206E_200B_200C_200D_202E_202D_200F_206D_202D_202D_202C_206B_206A_206C_202D_202C_200D_200B_200D_200B_206F_200D_202B_206A_206B_206B_206B_206A_206C_200F_202B_202B_200E_206D_200E_200B_200B_206E_206F_202E(x.Id, quest.Id)); - case 3: - return false; - case 0: - num = -1325154728; - break; - case 2: - num = (questFunctions.IsQuestUnobtainable(quest.Id) ? (-1325154727) : (-1325154725)); - break; - } - } - }; + _questSelector.SuggestionPredicate = (Quest quest) => !quest.Info.IsMainScenarioQuest && !questFunctions.IsQuestUnobtainable(quest.Id) && questController.ManualPriorityQuests.All((Quest x) => x.Id != quest.Id); _questSelector.DefaultPredicate = (Quest quest) => questFunctions.IsQuestAccepted(quest.Id); _questSelector.QuestSelected = delegate(Quest quest) { @@ -129,319 +57,87 @@ internal sealed class ManualPriorityComponent }; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Draw() { var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); - _200B_200C_202E_202D_206F_206A_200D_202B_202C_206B_202A_202C_206F_202C_200E_206B_200E_200E_202E_202B_202B_202D_206E_206C_206A_202B_202B_202B_202E_202D_200E_206F_206D_206E_200F_206F_202A_200E_206D_200F_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1339117543)); - _206C_206A_202B_200F_200B_200F_200C_206D_206A_206A_200F_202B_200B_202A_200B_202C_202B_200C_202A_206B_206E_202D_202B_200C_200B_200D_202D_206F_200D_202A_200F_202C_200B_200B_206D_206C_200D_206D_206A_202E(); - _200E_206B_202C_206D_206B_206E_200B_202B_200D_200B_206F_200B_200D_200C_202D_200C_206C_206F_200F_202B_206B_202A_200E_202E_200B_202C_200C_206E_200B_206A_202B_206F_206D_202A_206B_206E_206F_206E_206C_202A_202E(); - UiThemeUtils.WrappedText(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-49374953)); - _206C_206A_202B_200F_200B_200F_200C_206D_206A_206A_200F_202B_200B_202A_200B_202C_202B_200C_202A_206B_206E_202D_202B_200C_200B_200D_202D_206F_200D_202A_200F_202C_200B_200B_206D_206C_200D_206D_206A_202E(); - _200E_206B_202C_206D_206B_206E_200B_202B_200D_200B_206F_200B_200D_200C_202D_200C_206C_206F_200F_202B_206B_202A_200E_202E_200B_202C_200C_206E_200B_206A_202B_206F_206D_202A_206B_206E_206F_206E_206C_202A_202E(); - UiThemeUtils.WrappedText(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2138233810)); - _206C_206A_202B_200F_200B_200F_200C_206D_206A_206A_200F_202B_200B_202A_200B_202C_202B_200C_202A_206B_206E_202D_202B_200C_200B_200D_202D_206F_200D_202A_200F_202C_200B_200B_206D_206C_200D_206D_206A_202E(); - _200E_206B_202C_206D_206B_206E_200B_202B_200D_200B_206F_200B_200D_200C_202D_200C_206C_206F_200F_202B_206B_202A_200E_202E_200B_202C_200C_206E_200B_206A_202B_206F_206D_202A_206B_206E_206F_206E_206C_202A_202E(); - UiThemeUtils.WrappedText(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(81820412)); - _200B_200C_202E_202D_206F_206A_200D_202B_202C_206B_202A_202C_206F_202C_200E_206B_200E_200E_202E_202B_202B_202D_206E_206C_206A_202B_202B_202B_202E_202D_200E_206F_206D_206E_200F_206F_202A_200E_206D_200F_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1331511633)); - _206F_206B_200B_202C_200C_200D_206B_206A_200C_200C_200B_206C_206B_202D_200B_206D_202B_200B_206C_200F_202E_200F_202B_206E_202B_206C_200B_202B_200E_200D_206E_206D_202E_200F_200C_200D_200B_202C_206C_202D_202E(); - _200C_202C_206E_200F_200E_202E_200D_202D_206C_200F_206A_206C_206D_206D_202C_200D_200E_206A_202E_202A_206E_206A_206B_206E_206E_200C_200C_202C_206C_202D_202C_206C_202A_206A_206A_206E_202B_202D_206E_200D_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1503029597)); + ImGui.TextWrapped("When you have an active Main Scenario Quest, Questionable will prioritise quests in this order:"); + ImGui.Bullet(); + ImGui.SameLine(); + UiThemeUtils.WrappedText("Priority quests: class quests, A Realm Reborn primals and raids"); + ImGui.Bullet(); + ImGui.SameLine(); + UiThemeUtils.WrappedText("Supported quests from your Journal's To-Do list (always visible on-screen quests)"); + ImGui.Bullet(); + ImGui.SameLine(); + UiThemeUtils.WrappedText("Main Scenario Quest (if available and not marked as ignored in your Journal)"); + ImGui.TextWrapped("Without an active Main Scenario Quest, it will always try to pick up the next MSQ first."); + ImGui.Spacing(); + ImGui.Text("Custom priority quests:"); _questSelector.DrawSelection(); UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); UiThemeUtils.SectionSpacing(); - int num = ((_questController.ManualPriorityQuests.Count <= 0) ? 1307733761 : 1307733762); - while (true) + if (_questController.ManualPriorityQuests.Count > 0) { - int num2 = num; - int num3 = 1307733760; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + UiThemeUtils.WrappedText("Priority queue (drag arrow buttons to reorder):"); + } + using (ImRaii.ChildDisposable childDisposable = ImRaii.Child("ManualPriorityList", new Vector2(-1f, -27f), border: true)) + { + if ((bool)childDisposable) { - case 0: - num = 1307733762; - break; - case 2: - UiThemeUtils.WrappedText(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1498796953)); - num = 1307733761; - break; - case 1: - { - using (ImRaii.ChildDisposable childDisposable = _202B_202A_200D_200B_206C_200F_202C_206F_202B_200D_202A_206D_200D_200D_206F_200F_206E_200F_202B_206B_200E_206D_200F_202B_206C_202E_202C_200F_202E_200C_200E_206B_202B_200B_200F_206B_200F_206A_206C_200E_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2046810542), new Vector2(-1f, -27f), true)) - { - num = ((!(bool)childDisposable) ? 1900023188 : 1900023191); - while (true) - { - int num5 = num; - num3 = 1900023190; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 0: - num = 1900023191; - break; - case 1: - DrawQuestList(); - num = 1900023188; - break; - case 2: - goto end_IL_018d; - } - continue; - end_IL_018d: - break; - } - } - (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple2 = UiThemeUtils.BeginCard(); - Vector2 item = tuple2.ContentStartPos; - float item2 = tuple2.AvailableWidth; - ImDrawListPtr item3 = tuple2.DrawList; - List<ElementId> list = ParseClipboardItems(); - ImRaii.DisabledDisposable disabledDisposable = _200E_206F_200B_206B_202E_206D_206B_202D_200D_206D_206A_202C_206E_202E_202E_206B_200C_206E_206A_200E_206F_200F_206C_206A_206A_206B_202C_202A_206E_206F_206B_202A_200B_206F_206D_206F_202E_206F_200E_202C_202E(list.Count == 0); - try - { - num = ((!_206A_206E_206F_202D_206A_200B_206A_202A_200F_200B_202E_206D_206E_206C_206F_206A_206C_202E_206F_206D_202C_206E_206D_200E_206A_206E_202D_206E_202D_202D_200E_206D_206B_200C_202A_200C_202C_206B_206E_202D_202E(FontAwesomeIcon.Download, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2037990506), (Vector4?)null, (Vector4?)null, (Vector4?)null, (Vector2?)null)) ? (-2137916426) : (-2137916425)); - while (true) - { - int num8 = num; - num3 = -2137916426; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 2: - num = -2137916425; - break; - case 1: - ImportFromClipboard(list); - num = -2137916426; - break; - case 0: - goto end_IL_0273; - } - continue; - end_IL_0273: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? 360587248 : 360587251); - while (true) - { - int num11 = num; - num3 = 360587249; - num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) - { - case 0: - num = 360587251; - break; - case 1: - goto end_IL_02e5; - case 2: - _206E_206C_206D_200B_202C_206C_206D_206C_200B_206B_202D_202C_202D_202B_202A_200E_202A_202B_202C_202A_202A_200E_202E_200C_200C_206C_200F_200C_202B_200E_202C_202C_206E_200C_202D_200B_200D_206A_206D_206D_202E((IDisposable)disabledDisposable); - num = 360587248; - break; - } - continue; - end_IL_02e5: - break; - } - } - _200E_206B_202C_206D_206B_206E_200B_202B_200D_200B_206F_200B_200D_200C_202D_200C_206C_206F_200F_202B_206B_202A_200E_202E_200B_202C_200C_206E_200B_206A_202B_206F_206D_202A_206B_206E_206F_206E_206C_202A_202E(); - disabledDisposable = _200E_206F_200B_206B_202E_206D_206B_202D_200D_206D_206A_202C_206E_202E_202E_206B_200C_206E_206A_200E_206F_200F_206C_206A_206A_206B_202C_202A_206E_206F_206B_202A_200B_206F_206D_206F_202E_206F_200E_202C_202E(_questController.ManualPriorityQuests.Count == 0); - try - { - num = ((!_206A_206E_206F_202D_206A_200B_206A_202A_200F_200B_202E_206D_206E_206C_206F_206A_206C_202E_206F_206D_202C_206E_206D_200E_206A_206E_202D_206E_202D_202D_200E_206D_206B_200C_202A_200C_202C_206B_206E_202D_202E(FontAwesomeIcon.Upload, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(245855616), (Vector4?)null, (Vector4?)null, (Vector4?)null, (Vector2?)null)) ? 733316058 : 733316060); - while (true) - { - int num14 = num; - num3 = 733316057; - num4 = num14; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 733316060; - break; - case 4: - _questController.SavePriorityQuests(); - num = 733316056; - break; - case 2: - num = ((_questController.ManualPriorityQuests.RemoveAll((Quest q) => _questFunctions.IsQuestComplete(q.Id)) <= 0) ? 733316056 : 733316061); - break; - case 5: - ExportToClipboard(); - num = 733316058; - break; - case 3: - _200E_206B_202C_206D_206B_206E_200B_202B_200D_200B_206F_200B_200D_200C_202D_200C_206C_206F_200F_202B_206B_202A_200E_202E_200B_202C_200C_206E_200B_206A_202B_206F_206D_202A_206B_206E_206F_206E_206C_202A_202E(); - num = ((!_206A_206E_206F_202D_206A_200B_206A_202A_200F_200B_202E_206D_206E_206C_206F_206A_206C_202E_206F_206D_202C_206E_206D_200E_206A_206E_202D_206E_202D_202D_200E_206D_206B_200C_202A_200C_202C_206B_206E_202D_202E(FontAwesomeIcon.Check, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1549242385), (Vector4?)null, (Vector4?)null, (Vector4?)null, (Vector2?)null)) ? 733316056 : 733316059); - break; - case 1: - { - _200E_206B_202C_206D_206B_206E_200B_202B_200D_200B_206F_200B_200D_200C_202D_200C_206C_206F_200F_202B_206B_202A_200E_202E_200B_202C_200C_206E_200B_206A_202B_206F_206D_202A_206B_206E_206F_206E_206C_202A_202E(); - ImRaii.DisabledDisposable disabledDisposable2 = _200E_206F_200B_206B_202E_206D_206B_202D_200D_206D_206A_202C_206E_202E_202E_206B_200C_206E_206A_200E_206F_200F_206C_206A_206A_206B_202C_202A_206E_206F_206B_202A_200B_206F_206D_206F_202E_206F_200E_202C_202E(!_202E_206C_206A_206B_206F_202B_202B_206B_202B_202A_206D_202D_200E_202E_206E_200C_202C_206A_206E_206E_200C_200F_206C_200F_200F_200C_202A_202A_202B_202E_202D_202B_200B_206B_206E_206E_202B_200B_200E_202D_202E(ImGuiKey.ModCtrl)); - try - { - num = ((!_206A_206E_206F_202D_206A_200B_206A_202A_200F_200B_202E_206D_206E_206C_206F_206A_206C_202E_206F_206D_202C_206E_206D_200E_206A_206E_202D_206E_202D_202D_200E_206D_206B_200C_202A_200C_202C_206B_206E_202D_202E(FontAwesomeIcon.Trash, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1192001234), (Vector4?)null, (Vector4?)null, (Vector4?)null, (Vector2?)null)) ? (-1696550278) : (-1696550279)); - while (true) - { - int num15 = num; - num3 = -1696550280; - num4 = num15; - int num16 = num4 + num3; - int num17 = num4 & num3; - switch (num16 - (num17 + num17)) - { - case 0: - num = -1696550279; - break; - case 1: - _questController.ClearQuestPriority(); - num = -1696550278; - break; - case 2: - goto end_IL_0522; - } - continue; - end_IL_0522: - break; - } - } - finally - { - num = ((disabledDisposable2 == null) ? (-940388815) : (-940388814)); - while (true) - { - int num18 = num; - num3 = -940388813; - num4 = num18; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -940388814; - break; - case 2: - goto end_IL_0597; - case 1: - _206E_206C_206D_200B_202C_206C_206D_206C_200B_206B_202D_202C_202D_202B_202A_200E_202A_202B_202C_202A_202A_200E_202E_200C_200C_206C_200F_200C_202B_200E_202C_202C_206E_200C_202D_200B_200D_206A_206D_206D_202E((IDisposable)disabledDisposable2); - num = -940388815; - break; - } - continue; - end_IL_0597: - break; - } - } - num = ((!_206A_202A_200F_206D_202A_200C_202B_200D_202E_206E_200E_200C_200C_202D_206C_200C_200F_200C_206D_200C_200C_202A_206D_200E_206C_206D_202D_200B_200C_200D_202B_206C_206E_200C_206D_206D_200B_202A_200F_202B_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? 1780050147 : 1780050144); - while (true) - { - int num19 = num; - num3 = 1780050146; - num4 = num19; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1780050144; - break; - case 2: - _206D_206E_206E_206F_202C_200E_200D_206B_206F_202C_200C_206D_206E_200C_200F_200C_206E_206F_206D_206A_206C_206F_206D_200B_200B_206D_206B_202A_206A_206C_206C_202D_202B_202B_202D_202E_206F_202B_202A_202E_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(275309460)); - num = 1780050147; - break; - case 1: - goto end_IL_060a; - } - continue; - end_IL_060a: - break; - } - goto end_IL_03ab; - } - } - continue; - end_IL_03ab: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? 1584072103 : 1584072100); - while (true) - { - int num20 = num; - num3 = 1584072101; - num4 = num20; - int num21 = num4 + num3; - int num22 = num4 & num3; - switch (num21 - (num22 + num22)) - { - case 0: - num = 1584072100; - break; - case 1: - _206E_206C_206D_200B_202C_206C_206D_206C_200B_206B_202D_202C_202D_202B_202A_200E_202A_202B_202C_202A_202A_200E_202E_200C_200C_206C_200F_200C_202B_200E_202C_202C_206E_200C_202D_200B_200D_206A_206D_206D_202E((IDisposable)disabledDisposable); - num = 1584072103; - break; - case 2: - goto end_IL_0686; - } - continue; - end_IL_0686: - break; - } - } - UiThemeUtils.EndCard(item, item2, item3); - return; - } + DrawQuestList(); } } + (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple2 = UiThemeUtils.BeginCard(); + Vector2 item = tuple2.ContentStartPos; + float item2 = tuple2.AvailableWidth; + ImDrawListPtr item3 = tuple2.DrawList; + List<ElementId> list = ParseClipboardItems(); + using (ImRaii.Disabled(list.Count == 0)) + { + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Download, "Import from Clipboard")) + { + ImportFromClipboard(list); + } + } + ImGui.SameLine(); + using (ImRaii.Disabled(_questController.ManualPriorityQuests.Count == 0)) + { + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Upload, "Export to Clipboard")) + { + ExportToClipboard(); + } + ImGui.SameLine(); + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Check, "Remove finished Quests") && _questController.ManualPriorityQuests.RemoveAll((Quest q) => _questFunctions.IsQuestComplete(q.Id)) > 0) + { + _questController.SavePriorityQuests(); + } + ImGui.SameLine(); + using (ImRaii.Disabled(!ImGui.IsKeyDown(ImGuiKey.ModCtrl))) + { + if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Trash, "Clear All")) + { + _questController.ClearQuestPriority(); + } + } + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) + { + ImGui.SetTooltip("Hold CTRL to enable this button."); + } + } + UiThemeUtils.EndCard(item, item2, item3); } - [MethodImpl(MethodImplOptions.NoInlining)] public void DrawCompact() { _questSelector.DrawSelection(); - _206F_206B_200B_202C_200C_200D_206B_206A_200C_200C_200B_206C_206B_202D_200B_206D_202B_200B_206C_200F_202E_200F_202B_206E_202B_206C_200B_202B_200E_200D_206E_206D_202E_200F_200C_200D_200B_202C_206C_202D_202E(); + ImGui.Spacing(); List<Quest> manualPriorityQuests = _questController.ManualPriorityQuests; var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); - int num; if (manualPriorityQuests.Count == 0) { - ImRaii.ColorDisposable colorDisposable = _200B_202D_200E_206A_206F_202C_206B_202C_206D_206E_202E_202B_202A_202E_202B_202A_206D_202C_206E_202E_202D_202D_200D_202D_206F_202E_200F_200B_200C_202A_200C_200D_200D_200E_200B_200E_200F_206F_202A_206A_202E(ImGuiCol.Text, UiThemeUtils.MutedTextColor, true); - try + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.MutedTextColor)) { - _200B_200C_202E_202D_206F_206A_200D_202B_202C_206B_202A_202C_206F_202C_200E_206B_200E_200E_202E_202B_202B_202D_206E_206C_206A_202B_202B_202B_202E_202D_200E_206F_206D_206E_200F_206F_202A_200E_206D_200F_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(10601063)); - } - finally - { - num = ((colorDisposable == null) ? 1053224897 : 1053224898); - while (true) - { - int num2 = num; - int num3 = 1053224899; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1053224898; - break; - case 2: - goto end_IL_008b; - case 1: - _206E_206C_206D_200B_202C_206C_206D_206C_200B_206B_202D_202C_202D_202B_202A_200E_202A_202B_202C_202A_202A_200E_202E_200C_200C_206C_200F_200C_202B_200E_202C_202C_206E_200C_202D_200B_200D_206A_206D_206D_202E((IDisposable)colorDisposable); - num = 1053224897; - break; - } - continue; - end_IL_008b: - break; - } + ImGui.TextWrapped("No quests in priority queue."); } } else @@ -450,693 +146,216 @@ internal sealed class ManualPriorityComponent } UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); UiThemeUtils.SectionSpacing(); - float x = _200D_200B_200C_200E_200B_206C_202D_202D_206E_202C_206A_206E_200D_206B_206B_200E_206D_206F_202A_200B_202A_206D_202D_202C_206F_200D_200D_206C_202D_202B_206B_206E_200D_202D_202E_200F_200E_206F_200B_200C_202E().X; - float x2 = _206C_200D_206E_200F_200B_206B_206B_206E_206E_202B_202E_202E_206E_200B_206B_206F_206F_206F_202B_206C_200F_206C_202C_202C_200C_206B_206C_200B_202C_200D_202E_200F_202A_202C_206A_200C_206F_206E_206F_200D_202E().ItemSpacing.X; - float num5 = _202D_202E_206C_206C_202C_200B_202B_206C_200E_202E_206A_200C_200B_200D_202C_206A_206D_206B_206E_206D_202E_202C_202E_202D_202A_202B_206D_202D_206F_206C_206B_206E_202B_200F_206D_200D_200B_202B_202A_202C_202E(); + float x = ImGui.GetContentRegionAvail().X; + float x2 = ImGui.GetStyle().ItemSpacing.X; + float frameHeight = ImGui.GetFrameHeight(); List<ElementId> list = ParseClipboardItems(); - ImRaii.DisabledDisposable disabledDisposable = _200E_206F_200B_206B_202E_206D_206B_202D_200D_206D_206A_202C_206E_202E_202E_206B_200C_206E_206A_200E_206F_200F_206C_206A_206A_206B_202C_202A_206E_206F_206B_202A_200B_206F_206D_206F_202E_206F_200E_202C_202E(list.Count == 0); - try + using (ImRaii.Disabled(list.Count == 0)) { - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Download, num5)) ? 1715850622 : 1715850621); - while (true) + if (UiThemeUtils.IconButton(FontAwesomeIcon.Download, frameHeight)) { - int num6 = num; - int num3 = 1715850623; - int num4 = num6; - int num7 = num4 + num3; - int num8 = num4 & num3; - switch (num7 - (num8 + num8)) - { - case 0: - num = 1715850621; - break; - case 2: - ImportFromClipboard(list); - num = 1715850622; - break; - case 1: - goto end_IL_0154; - } - continue; - end_IL_0154: - break; + ImportFromClipboard(list); } } - finally + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) { - num = ((disabledDisposable == null) ? (-957715576) : (-957715575)); - while (true) + ImGui.SetTooltip("Import from Clipboard"); + } + ImGui.SameLine(); + using (ImRaii.Disabled(manualPriorityQuests.Count == 0)) + { + if (UiThemeUtils.IconButton(FontAwesomeIcon.Upload, frameHeight)) { - int num9 = num; - int num3 = -957715576; - int num4 = num9; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_01c6; - case 1: - _206E_206C_206D_200B_202C_206C_206D_206C_200B_206B_202D_202C_202D_202B_202A_200E_202A_202B_202C_202A_202A_200E_202E_200C_200C_206C_200F_200C_202B_200E_202C_202C_206E_200C_202D_200B_200D_206A_206D_206D_202E((IDisposable)disabledDisposable); - num = -957715576; - break; - case 2: - num = -957715575; - break; - } - continue; - end_IL_01c6: - break; + ExportToClipboard(); } } - num = ((!_206A_202A_200F_206D_202A_200C_202B_200D_202E_206E_200E_200C_200C_202D_206C_200C_200F_200C_206D_200C_200C_202A_206D_200E_206C_206D_202D_200B_200C_200D_202B_206C_206E_200C_206D_206D_200B_202A_200F_202B_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? (-969276494) : (-969276495)); - while (true) + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) { - int num10 = num; - int num3 = -969276493; - int num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) + ImGui.SetTooltip("Export to Clipboard"); + } + ImGui.SameLine(); + float width = (x - frameHeight * 2f - x2 * 3f) / 2f; + using (ImRaii.Disabled(manualPriorityQuests.Count == 0)) + { + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Check, "Remove Done", width) && _questController.ManualPriorityQuests.RemoveAll((Quest q) => _questFunctions.IsQuestComplete(q.Id)) > 0) { - case 0: - num = -969276495; - break; - case 2: - _206D_206E_206E_206F_202C_200E_200D_206B_206F_202C_200C_206D_206E_200C_200F_200C_206E_206F_206D_206A_206C_206F_206D_200B_200B_206D_206B_202A_206A_206C_206C_202D_202B_202B_202D_202E_206F_202B_202A_202E_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1068567148)); - num = -969276494; - break; - case 1: - _200E_206B_202C_206D_206B_206E_200B_202B_200D_200B_206F_200B_200D_200C_202D_200C_206C_206F_200F_202B_206B_202A_200E_202E_200B_202C_200C_206E_200B_206A_202B_206F_206D_202A_206B_206E_206F_206E_206C_202A_202E(); - disabledDisposable = _200E_206F_200B_206B_202E_206D_206B_202D_200D_206D_206A_202C_206E_202E_202E_206B_200C_206E_206A_200E_206F_200F_206C_206A_206A_206B_202C_202A_206E_206F_206B_202A_200B_206F_206D_206F_202E_206F_200E_202C_202E(manualPriorityQuests.Count == 0); - try - { - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Upload, num5)) ? 151666692 : 151666695); - while (true) - { - int num13 = num; - num3 = 151666694; - num4 = num13; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 151666695; - break; - case 1: - ExportToClipboard(); - num = 151666692; - break; - case 2: - goto end_IL_02d1; - } - continue; - end_IL_02d1: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? (-653805404) : (-653805401)); - while (true) - { - int num14 = num; - num3 = -653805403; - num4 = num14; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -653805401; - break; - case 1: - goto end_IL_033f; - case 2: - _206E_206C_206D_200B_202C_206C_206D_206C_200B_206B_202D_202C_202D_202B_202A_200E_202A_202B_202C_202A_202A_200E_202E_200C_200C_206C_200F_200C_202B_200E_202C_202C_206E_200C_202D_200B_200D_206A_206D_206D_202E((IDisposable)disabledDisposable); - num = -653805404; - break; - } - continue; - end_IL_033f: - break; - } - } - num = ((!_206A_202A_200F_206D_202A_200C_202B_200D_202E_206E_200E_200C_200C_202D_206C_200C_200F_200C_206D_200C_200C_202A_206D_200E_206C_206D_202D_200B_200C_200D_202B_206C_206E_200C_206D_206D_200B_202A_200F_202B_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? 631254428 : 631254431); - while (true) - { - int num15 = num; - num3 = 631254429; - num4 = num15; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 631254431; - break; - case 2: - _206D_206E_206E_206F_202C_200E_200D_206B_206F_202C_200C_206D_206E_200C_200F_200C_206E_206F_206D_206A_206C_206F_206D_200B_200B_206D_206B_202A_206A_206C_206C_202D_202B_202B_202D_202E_206F_202B_202A_202E_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(245855616)); - num = 631254428; - break; - case 1: - { - _200E_206B_202C_206D_206B_206E_200B_202B_200D_200B_206F_200B_200D_200C_202D_200C_206C_206F_200F_202B_206B_202A_200E_202E_200B_202C_200C_206E_200B_206A_202B_206F_206D_202A_206B_206E_206F_206E_206C_202A_202E(); - float width = (x - num5 * 2f - x2 * 3f) / 2f; - disabledDisposable = _200E_206F_200B_206B_202E_206D_206B_202D_200D_206D_206A_202C_206E_202E_202E_206B_200C_206E_206A_200E_206F_200F_206C_206A_206A_206B_202C_202A_206E_206F_206B_202A_200B_206F_206D_206F_202E_206F_200E_202C_202E(manualPriorityQuests.Count == 0); - try - { - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Check, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(446061087), width)) ? (-1706212292) : (-1706212289)); - while (true) - { - int num16 = num; - num3 = -1706212290; - num4 = num16; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - _questController.SavePriorityQuests(); - num = -1706212292; - break; - case 1: - num = ((_questController.ManualPriorityQuests.RemoveAll((Quest q) => _questFunctions.IsQuestComplete(q.Id)) <= 0) ? (-1706212292) : (-1706212291)); - break; - case 0: - num = -1706212289; - break; - case 2: - goto end_IL_046e; - } - continue; - end_IL_046e: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? (-382502620) : (-382502619)); - while (true) - { - int num17 = num; - num3 = -382502620; - num4 = num17; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_051f; - case 1: - _206E_206C_206D_200B_202C_206C_206D_206C_200B_206B_202D_202C_202D_202B_202A_200E_202A_202B_202C_202A_202A_200E_202E_200C_200C_206C_200F_200C_202B_200E_202C_202C_206E_200C_202D_200B_200D_206A_206D_206D_202E((IDisposable)disabledDisposable); - num = -382502620; - break; - case 2: - num = -382502619; - break; - } - continue; - end_IL_051f: - break; - } - } - num = ((!_206A_202A_200F_206D_202A_200C_202B_200D_202E_206E_200E_200C_200C_202D_206C_200C_200F_200C_206D_200C_200C_202A_206D_200E_206C_206D_202D_200B_200C_200D_202B_206C_206E_200C_206D_206D_200B_202A_200F_202B_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? 35071333 : 35071334); - int num21; - while (true) - { - int num18 = num; - num3 = 35071333; - num4 = num18; - int num19 = num4 + num3; - int num20 = num4 & num3; - switch (num19 - (num20 + num20)) - { - default: - continue; - case 0: - _200E_206B_202C_206D_206B_206E_200B_202B_200D_200B_206F_200B_200D_200C_202D_200C_206C_206F_200F_202B_206B_202A_200E_202E_200B_202C_200C_206E_200B_206A_202B_206F_206D_202A_206B_206E_206F_206E_206C_202A_202E(); - num = ((manualPriorityQuests.Count == 0) ? 35071329 : 35071332); - continue; - case 3: - _206D_206E_206E_206F_202C_200E_200D_206B_206F_202C_200C_206D_206E_200C_200F_200C_206E_206F_206D_206A_206C_206F_206D_200B_200B_206D_206B_202A_206A_206C_206C_202D_202B_202B_202D_202E_206F_202B_202A_202E_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-396666417)); - num = 35071333; - continue; - case 2: - num = 35071334; - continue; - case 1: - num21 = ((!_202E_206C_206A_206B_206F_202B_202B_206B_202B_202A_206D_202D_200E_202E_206E_200C_202C_206A_206E_206E_200C_200F_206C_200F_200F_200C_202A_202A_202B_202E_202D_202B_200B_206B_206E_206E_202B_200B_200E_202D_202E(ImGuiKey.ModCtrl)) ? 1 : 0); - break; - case 4: - num21 = 1; - break; - } - break; - } - disabledDisposable = _200E_206F_200B_206B_202E_206D_206B_202D_200D_206D_206A_202C_206E_202E_202E_206B_200C_206E_206A_200E_206F_200F_206C_206A_206A_206B_202C_202A_206E_206F_206B_202A_200B_206F_206D_206F_202E_206F_200E_202C_202E((byte)num21 != 0); - try - { - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Trash, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-391209074), width)) ? (-1705386044) : (-1705386041)); - while (true) - { - int num22 = num; - num3 = -1705386042; - num4 = num22; - int num23 = num4 + num3; - int num24 = num4 & num3; - switch (num23 - (num24 + num24)) - { - case 0: - num = -1705386041; - break; - case 1: - _questController.ClearQuestPriority(); - num = -1705386044; - break; - case 2: - goto end_IL_0675; - } - continue; - end_IL_0675: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? 1135246932 : 1135246935); - while (true) - { - int num25 = num; - num3 = 1135246933; - num4 = num25; - int num26 = num4 + num3; - int num27 = num4 & num3; - switch (num26 - (num27 + num27)) - { - case 0: - num = 1135246935; - break; - case 2: - _206E_206C_206D_200B_202C_206C_206D_206C_200B_206B_202D_202C_202D_202B_202A_200E_202A_202B_202C_202A_202A_200E_202E_200C_200C_206C_200F_200C_202B_200E_202C_202C_206E_200C_202D_200B_200D_206A_206D_206D_202E((IDisposable)disabledDisposable); - num = 1135246932; - break; - case 1: - goto end_IL_06ea; - } - continue; - end_IL_06ea: - break; - } - } - num = ((!_206A_202A_200F_206D_202A_200C_202B_200D_202E_206E_200E_200C_200C_202D_206C_200C_200F_200C_206D_200C_200C_202A_206D_200E_206C_206D_202D_200B_200C_200D_202B_206C_206E_200C_206D_206D_200B_202A_200F_202B_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? (-912424730) : (-912424729)); - while (true) - { - int num28 = num; - num3 = -912424730; - num4 = num28; - int num29 = num4 + num3; - int num30 = num4 & num3; - switch (num29 - (num30 + num30)) - { - case 2: - num = -912424729; - break; - case 1: - _206D_206E_206E_206F_202C_200E_200D_206B_206F_202C_200C_206D_206E_200C_200F_200C_206E_206F_206D_206A_206C_206F_206D_200B_200B_206D_206B_202A_206A_206C_206C_202D_202B_202B_202D_202E_206F_202B_202A_202E_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-448993879)); - num = -912424730; - break; - case 0: - return; - } - } - } - } - } + _questController.SavePriorityQuests(); } } + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) + { + ImGui.SetTooltip("Remove finished quests"); + } + ImGui.SameLine(); + using (ImRaii.Disabled(manualPriorityQuests.Count == 0 || !ImGui.IsKeyDown(ImGuiKey.ModCtrl))) + { + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Trash, "Clear", width)) + { + _questController.ClearQuestPriority(); + } + } + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) + { + ImGui.SetTooltip("Hold CTRL to clear all"); + } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawQuestList() { List<Quest> manualPriorityQuests = _questController.ManualPriorityQuests; - int num = ((manualPriorityQuests.Count != 0) ? (-1063636530) : (-1063636531)); - float num12 = default(float); - Quest quest4 = default(Quest); - int num17 = default(int); - int num18 = default(int); - while (true) + if (manualPriorityQuests.Count == 0) { - int num2 = num; - int num3 = -1063636529; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + ImGui.PushStyleColor(ImGuiCol.Text, UiThemeUtils.MutedTextColor); + ImGui.TextWrapped("No quests in priority queue. Add quests using the selector above to prioritise them over other available quests."); + ImGui.PopStyleColor(); + return; + } + Quest quest = null; + Quest quest2 = null; + int index = 0; + float x = ImGui.GetContentRegionAvail().X; + float num = ImGui.GetCursorPosX() + x - 12f; + List<(Vector2, Vector2)> list = new List<(Vector2, Vector2)>(); + for (int i = 0; i < manualPriorityQuests.Count; i++) + { + Vector2 item = ImGui.GetCursorScreenPos() + new Vector2(0f, (0f - ImGui.GetStyle().ItemSpacing.Y) / 2f); + Quest quest3 = manualPriorityQuests[i]; + ImU8String id = new ImU8String(5, 1); + id.AppendLiteral("Quest"); + id.AppendFormatted(quest3.Id); + using (ImRaii.PushId(id)) { - case 0: - goto IL_005d; - case 2: - _200D_206F_202E_200F_200B_202D_206C_202A_200D_206C_206E_202C_200C_200F_200E_206C_202D_206F_206D_200C_202B_206F_202D_200C_206A_202A_202C_202A_206E_206B_202E_206A_200D_200C_206E_200D_200E_202E_206B_202B_202E(ImGuiCol.Text, UiThemeUtils.MutedTextColor); - _200B_200C_202E_202D_206F_206A_200D_202B_202C_206B_202A_202C_206F_202C_200E_206B_200E_200E_202E_202B_202B_202D_206E_206C_206A_202B_202B_202B_202E_202D_200E_206F_206D_206E_200F_206F_202A_200E_206D_200F_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-126003018)); - _206C_206A_206A_206F_202C_200B_206C_206E_206D_200D_202A_202B_206B_200B_202C_200C_206A_202E_202E_206F_202E_202E_202E_206E_202B_200B_202B_206E_202E_202A_206F_200F_200B_200C_200B_206D_206B_206C_200E_200E_202E(); - return; - case 1: - { - Quest quest = null; - Quest quest2 = null; - int index = 0; - float x = _200D_200B_200C_200E_200B_206C_202D_202D_206E_202C_206A_206E_200D_206B_206B_200E_206D_206F_202A_200B_202A_206D_202D_202C_206F_200D_200D_206C_202D_202B_206B_206E_200D_202D_202E_200F_200E_206F_200B_200C_202E().X; - float num7 = _206C_202B_206B_202B_206D_200F_200E_206B_200B_206A_202D_200E_206F_206B_206C_200D_202B_200E_202E_202B_200C_200D_202C_202E_202A_200B_200C_206C_200C_206A_202A_202E_202E_206B_202E_200C_200B_206B_206D_206B_202E() + x - 12f; - List<(Vector2, Vector2)> list = new List<(Vector2, Vector2)>(); - for (int num8 = 0; num8 < manualPriorityQuests.Count; num8 = (num4 | num3) + (num4 & num3)) + if (manualPriorityQuests.Count > 1) { - Vector2 item = _202B_206F_206E_206C_202E_206E_206C_200E_206F_206D_202E_200D_206F_202E_206C_206F_200B_200C_202B_202E_206B_202D_202D_202D_206E_206B_206E_202D_206C_200E_206E_202A_202B_202A_206F_200E_200C_202A_202B_200D_202E() + new Vector2(0f, (0f - _206C_200D_206E_200F_200B_206B_206B_206E_206E_202B_202E_202E_206E_200B_206B_206F_206F_206F_202B_206C_200F_206C_202C_202C_200C_206B_206C_200B_202C_200D_202E_200F_202A_202C_206A_200C_206F_206E_206F_200D_202E().ItemSpacing.Y) / 2f); - Quest quest3 = manualPriorityQuests[num8]; - ImU8String imU8String = new ImU8String(5, 1); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-670330761)); - imU8String.AppendFormatted(quest3.Id); - ImRaii.IdDisposable idDisposable = _206D_200C_200B_206E_206E_202C_200D_202E_202C_202D_206A_200B_206F_202D_206D_202B_202C_202E_206D_200D_200E_206F_202C_200F_202C_202D_202D_202A_206A_206B_200E_202C_200B_206B_200C_200D_202D_206C_206F_202A_202E(imU8String, true); - try + if (_draggedItem == quest3.Id) { - num = ((manualPriorityQuests.Count <= 1) ? (-774498785) : (-774498791)); - while (true) - { - int num9 = num; - num3 = -774498795; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 10: - num12 = _202D_202E_206C_206C_202C_200B_202B_206C_200E_202E_206A_200C_200B_200D_202C_206A_206D_206B_206E_206D_202E_202C_202E_202D_202A_202B_206D_202D_206F_206C_206B_206E_202B_200F_206D_200D_200B_202B_202A_202C_202E(); - _200F_200E_206E_200D_202B_200E_206C_206B_200D_200B_206B_202E_202B_202A_206F_202B_200B_200B_206A_202B_200B_206F_200C_200C_200E_200E_206F_206B_206D_202B_206B_206E_206C_202D_202C_202C_202C_206C_206D_200C_202E(); - UiThemeUtils.RowLabel(quest3.Info.Name, num12 + _206C_200D_206E_200F_200B_206B_206B_206E_206E_202B_202E_202E_206E_200B_206B_206F_206F_206F_202B_206C_200F_206C_202C_202C_200C_206B_206C_200B_202C_200D_202E_200F_202A_202C_206A_200C_206F_206E_206F_200D_202E().ItemSpacing.X); - num = ((!_206B_200C_200B_206D_202A_200E_200F_200B_206D_206A_206E_202C_206A_206A_206E_202B_202C_206E_202D_200F_206E_206A_200F_202A_206A_200F_200E_206D_200B_206D_200B_202D_202A_200B_202C_202A_202E_202D_200F_202A_202E()) ? (-774498788) : (-774498793)); - break; - case 11: - _draggedItem = quest3.Id; - num = -774498795; - break; - case 1: - num = ((!_202A_202D_206C_202D_200C_202E_202A_202E_202A_206C_202C_200B_202A_200C_202E_200C_202C_200D_202E_206E_206C_202E_202E_202C_206D_200C_206F_206B_202D_202C_206B_202D_206F_202A_206F_202B_202E_200D_206E_200C_202E(_draggedItem, (ElementId)null)) ? (-774498795) : (-774498797)); - break; - case 4: - quest = quest3; - num = -774498792; - break; - case 0: - _200E_206B_202C_206D_206B_206E_200B_202B_200D_200B_206F_200B_200D_200C_202D_200C_206C_206F_200F_202B_206B_202A_200E_202E_200B_202C_200C_206E_200B_206A_202B_206F_206D_202A_206B_206E_206F_206E_206C_202A_202E(); - num = -774498785; - break; - case 12: - num = ((!_202A_202D_206C_202D_200C_202E_202A_202E_202A_206C_202C_200B_202A_200C_202E_200C_202C_200D_202E_206E_206C_202E_202E_202C_206D_200C_206F_206B_202D_202C_206B_202D_206F_202A_206F_202B_202E_200D_206E_200C_202E(_draggedItem, quest3.Id)) ? (-774498794) : (-774498798)); - break; - case 5: - num = ((!_206A_206F_202C_206C_200F_200E_202C_200B_200E_206F_206B_206F_200D_200F_202B_202C_206B_200E_206C_200D_206B_200F_200F_200B_202E_200C_206E_202A_206B_206C_206F_202E_200F_206B_206F_202D_202C_200F_202D_202A_202E(ImGuiMouseButton.Left)) ? (-774498795) : (-774498786)); - break; - case 2: - _questTooltipComponent.Draw(quest3.Info); - num = -774498788; - break; - case 7: - _202C_200B_200D_200C_200D_202C_206D_202C_206B_206D_202D_206E_200C_206B_200C_202D_206A_206D_206E_206B_200F_200F_206B_200F_200E_202E_206A_202A_200C_206C_200E_206E_206E_200D_202A_202A_206A_202D_202D_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(319237677), FontAwesomeIcon.Bars, (Vector4?)_206E_202B_202A_202A_200B_206A_200F_206D_202E_202C_206E_200C_202E_202B_200E_202E_200E_202D_202E_200B_202C_200E_202C_206C_202B_200F_202B_206B_202A_202A_200F_202C_202B_202A_206B_202D_206B_202E_206A_202C_202E(_206C_206C_206F_206C_206C_202D_202D_202D_206C_202A_200E_202A_200E_200B_206D_206F_202C_202C_202B_200B_200B_206C_200B_202D_206B_202C_206E_206C_200C_206A_200B_206E_200F_200E_206A_202E_202B_206A_202B_202A_202E(ImGuiCol.ButtonActive)), (Vector4?)null, (Vector4?)null, (Vector2?)null); - num = -774498796; - break; - case 8: - num = -774498791; - break; - case 6: - num = ((!_202E_206E_202C_206A_200E_200C_202D_206F_206C_200F_200D_202B_200D_200C_200E_200F_200F_200C_200C_202B_206F_200D_202D_202E_200D_202B_202B_206E_200B_202B_200B_206B_206F_206D_206C_200B_200E_206D_200E_206B_202E()) ? (-774498795) : (-774498800)); - break; - case 9: - { - _200E_206B_202C_206D_206B_206E_200B_202B_200D_200B_206F_200B_200D_200C_202D_200C_206C_206F_200F_202B_206B_202A_200E_202E_200B_202C_200C_206E_200B_206A_202B_206F_206D_202A_206B_206E_206F_206E_206C_202A_202E(); - _206C_202D_202C_200B_206E_200C_206D_200E_202C_202D_206B_206B_200E_202C_206D_200F_206F_200B_200E_206B_206C_202C_206C_200E_202B_200C_206D_200C_200C_206A_200C_200B_200F_202E_206C_206D_206C_200E_206E_200F_202E(num7 - num12); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(8, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1500854462)); - defaultInterpolatedStringHandler.AppendFormatted(num8); - num = ((!_202E_206E_202E_202B_206B_202A_200B_200E_200D_206A_206A_202E_206B_202E_206C_202C_206F_200B_202A_206D_206F_206D_206D_202C_206A_206A_206D_206A_200E_202C_206E_202E_206D_202B_202E_206B_206A_200D_200D_206D_202E(defaultInterpolatedStringHandler.ToStringAndClear(), FontAwesomeIcon.Times)) ? (-774498792) : (-774498799)); - break; - } - case 3: - _202E_206E_202E_202B_206B_202A_200B_200E_200D_206A_206A_202E_206B_202E_206C_202C_206F_200B_202A_206D_206F_206D_206D_202C_206A_206A_206D_206A_200E_202C_206E_202E_206D_202B_202E_206B_206A_200D_200D_206D_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(507918364), FontAwesomeIcon.Bars); - num = -774498796; - break; - case 13: - goto end_IL_014f; - } - continue; - end_IL_014f: - break; - } + ImGuiComponents.IconButton("##Move", FontAwesomeIcon.Bars, ImGui.ColorConvertU32ToFloat4(ImGui.GetColorU32(ImGuiCol.ButtonActive))); } - finally + else { - num = ((idDisposable == null) ? (-1233269749) : (-1233269750)); - while (true) - { - int num13 = num; - num3 = -1233269749; - num4 = num13; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1233269750; - break; - case 0: - goto end_IL_03f3; - case 1: - _206E_206C_206D_200B_202C_206C_206D_206C_200B_206B_202D_202C_202D_202B_202A_200E_202A_202B_202C_202A_202A_200E_202E_200C_200C_206C_200F_200C_202B_200E_202C_202C_206E_200C_202D_200B_200D_206A_206D_206D_202E((IDisposable)idDisposable); - num = -1233269749; - break; - } - continue; - end_IL_03f3: - break; - } + ImGuiComponents.IconButton("##Move", FontAwesomeIcon.Bars); } - Vector2 item2 = new Vector2(item.X + x, _202B_206F_206E_206C_202E_206E_206C_200E_206F_206D_202E_200D_206F_202E_206C_206F_200B_200C_202B_202E_206B_202D_202D_202D_206E_206B_206E_202D_206C_200E_206E_202A_202B_202A_206F_200E_200C_202A_202B_200D_202E().Y - _206C_200D_206E_200F_200B_206B_206B_206E_206E_202B_202E_202E_206E_200B_206B_206F_206F_206F_202B_206C_200F_206C_202C_202C_200C_206B_206C_200B_202C_200D_202E_200F_202A_202C_206A_200C_206F_206E_206F_200D_202E().ItemSpacing.Y + 2f); - list.Add((item, item2)); - int num14 = num8; - num3 = 1; - num4 = num14; + if (_draggedItem == null && ImGui.IsItemActive() && ImGui.IsMouseDragging(ImGuiMouseButton.Left)) + { + _draggedItem = quest3.Id; + } + ImGui.SameLine(); } - _200F_206B_200C_200E_206B_206F_202E_206C_206F_200C_200C_206D_200D_200E_206B_200D_206D_202A_202A_206C_200C_202C_202D_200C_206B_202C_202E_206F_200C_206E_206B_206D_200B_200C_202C_202E_202C_200C_206F_202C_202E(); - using (List<(Vector2, Vector2)>.Enumerator enumerator = list.GetEnumerator()) + float frameHeight = ImGui.GetFrameHeight(); + ImGui.AlignTextToFramePadding(); + UiThemeUtils.RowLabel(quest3.Info.Name, frameHeight + ImGui.GetStyle().ItemSpacing.X); + if (ImGui.IsItemHovered()) { - num = -195838984; - while (true) - { - int num15 = num; - num3 = -195838984; - num4 = num15; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = -195838984; - break; - case 1: - var (topLeft, bottomRight) = enumerator.Current; - UiThemeUtils.DrawRowBackground(topLeft, bottomRight); - num = -195838984; - break; - case 0: - num = (enumerator.MoveNext() ? (-195838983) : (-195838982)); - break; - case 2: - goto end_IL_04c0; - } - continue; - end_IL_04c0: - break; - } + _questTooltipComponent.Draw(quest3.Info); } - num = (_206A_206F_202C_206C_200F_200E_202C_200B_200E_206F_206B_206F_200D_200F_202B_202C_206B_200E_206C_200D_206B_200F_200F_200B_202E_200C_206E_202A_206B_206C_206F_202E_200F_206B_206F_202D_202C_200F_202D_202A_202E(ImGuiMouseButton.Left) ? (-1587377589) : (-1587377597)); - while (true) + ImGui.SameLine(); + ImGui.SetCursorPosX(num - frameHeight); + if (ImGuiComponents.IconButton($"##Remove{i}", FontAwesomeIcon.Times)) { - int num16 = num; - num3 = -1587377585; - num4 = num16; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - _draggedItem = null; - num = -1587377586; - break; - case 10: - quest2 = quest4; - index = num17; - num = -1587377586; - break; - case 0: - quest4 = manualPriorityQuests.FirstOrDefault((Quest quest5) => _202A_202D_206C_202D_200C_202E_202A_202E_202A_206C_202C_200B_202A_200C_202E_200C_202C_200D_202E_206E_206C_202E_202E_202C_206D_200C_206F_206B_202D_202C_206B_202D_206F_202A_206F_202B_202E_200D_206E_200C_202E(quest5.Id, _draggedItem)); - num = ((quest4 != null) ? (-1587377591) : (-1587377588)); - break; - case 12: - _draggedItem = null; - num = -1587377586; - break; - case 6: - num18 = manualPriorityQuests.IndexOf(quest4); - var (pMin, pMax) = list[num18]; - _200F_206B_200C_200E_206B_206F_202E_206C_206F_200C_200C_206D_200D_200E_206B_200D_206D_202A_202A_206C_200C_202C_202D_200C_206B_202C_202E_206F_200C_206E_206B_206D_200B_200C_202C_202E_202C_200C_206F_202C_202E().AddRect(pMin, pMax, _202C_202A_206D_200E_202C_206A_200C_206E_202C_202E_202C_202E_206D_206E_200F_202E_206A_206B_200C_206C_202E_200B_200C_206E_202B_206B_200C_200E_202A_202B_202D_200C_202B_200E_200D_202B_200B_206F_200B_200F_202E(UiThemeUtils.CardBorderHighColor), 3f, ImDrawFlags.RoundCornersAll); - num17 = list.FindIndex(((Vector2 TopLeft, Vector2 BottomRight) tuple3) => _003C_003Ec._202C_200E_202C_202D_202C_200F_200B_202E_202C_202B_206D_202A_206F_202A_206B_200F_200C_202B_206D_200C_200C_206E_206D_202E_206B_200D_206F_202C_200E_202E_202A_202A_200B_206C_206F_206D_200C_202E_206A_202B_202E(tuple3.TopLeft, tuple3.BottomRight, true)); - num = ((num17 < 0) ? (-1587377586) : (-1587377590)); - break; - case 8: - manualPriorityQuests.Remove(quest2); - manualPriorityQuests.Insert(index, quest2); - _questController.SavePriorityQuests(); - num = -1587377594; - break; - case 9: - return; - case 11: - num = ((quest2 == null) ? (-1587377594) : (-1587377593)); - break; - case 5: - num = ((num18 == num17) ? (-1587377586) : (-1587377595)); - break; - case 1: - num = ((quest == null) ? (-1587377596) : (-1587377592)); - break; - case 4: - num = ((!_206B_200F_200C_206F_202A_200F_200D_202C_200F_200B_202E_206F_200F_200D_200F_206C_202C_202A_206A_200F_206C_202B_202C_200E_202B_202E_206E_200B_206F_200C_202E_200D_200B_206E_202E_206C_206F_200E_202D_202C_202E(_draggedItem, (ElementId)null)) ? (-1587377586) : (-1587377585)); - break; - case 7: - manualPriorityQuests.Remove(quest); - _questController.SavePriorityQuests(); - num = -1587377596; - break; - case 2: - num = -1587377597; - break; - } + quest = quest3; } } + Vector2 item2 = new Vector2(item.X + x, ImGui.GetCursorScreenPos().Y - ImGui.GetStyle().ItemSpacing.Y + 2f); + list.Add((item, item2)); + } + ImGui.GetWindowDrawList(); + foreach (var (topLeft, bottomRight) in list) + { + UiThemeUtils.DrawRowBackground(topLeft, bottomRight); + } + if (!ImGui.IsMouseDragging(ImGuiMouseButton.Left)) + { + _draggedItem = null; + } + else if (_draggedItem != null) + { + Quest quest4 = manualPriorityQuests.FirstOrDefault((Quest quest5) => quest5.Id == _draggedItem); + if (quest4 == null) + { + _draggedItem = null; } - continue; - IL_005d: - num = -1063636531; + else + { + int num2 = manualPriorityQuests.IndexOf(quest4); + var (pMin, pMax) = list[num2]; + ImGui.GetWindowDrawList().AddRect(pMin, pMax, ImGui.ColorConvertFloat4ToU32(UiThemeUtils.CardBorderHighColor), 3f, ImDrawFlags.RoundCornersAll); + int num3 = list.FindIndex(((Vector2 TopLeft, Vector2 BottomRight) tuple3) => ImGui.IsMouseHoveringRect(tuple3.TopLeft, tuple3.BottomRight, clip: true)); + if (num3 >= 0 && num2 != num3) + { + quest2 = quest4; + index = num3; + } + } + } + if (quest != null) + { + manualPriorityQuests.Remove(quest); + _questController.SavePriorityQuests(); + } + if (quest2 != null) + { + manualPriorityQuests.Remove(quest2); + manualPriorityQuests.Insert(index, quest2); + _questController.SavePriorityQuests(); } } - [MethodImpl(MethodImplOptions.NoInlining)] public string EncodeQuestPriority() { - return _206E_206D_206A_200B_206F_202E_200D_202B_202E_200B_202D_206E_206E_202D_200E_200C_206F_202B_206E_200C_206B_200C_206F_206D_200F_206A_206D_200C_206B_206F_200B_200D_206A_200C_206D_202B_200F_206F_200F_202C_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(215679190), _200E_200B_202A_200B_202D_200F_202D_200F_206E_200C_202C_206B_206F_200E_206B_206D_200E_200C_202E_200C_200F_200E_200E_200D_202A_202D_202C_200D_200B_200B_202A_206F_200B_202E_200D_200E_200B_202A_202B_206A_202E(_202D_206F_202C_200D_200F_202E_202B_202C_200E_202E_206A_206F_200B_202D_206B_206C_200D_206B_202C_206A_200B_200F_200F_206F_202C_206E_206D_202C_206F_200C_200F_200E_206A_200B_202D_202E_206B_206A_206C_200D_202E(_206F_206B_200D_206F_206E_202D_206F_202A_206F_200D_202D_206D_202D_202D_206C_206E_202A_200F_200B_200B_202D_200B_206B_200D_206E_206C_202D_202E_200E_206F_200E_200F_200C_202A_202A_200D_202D_200B_202D_200D_202E(), string.Join(';', _questController.ManualPriorityQuests.Select((Quest x) => _003C_003Ec._200D_206B_200B_206A_202C_200B_200E_206A_200E_200B_200E_206E_206A_200C_202D_200D_206B_206C_202E_206E_200B_206A_200F_200F_206B_200B_206F_202C_202D_206B_202C_200C_200D_202E_200C_202D_200D_206E_202B_206F_202E((object)x.Id)))))); + return "qst:priority:" + Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Join(';', _questController.ManualPriorityQuests.Select((Quest x) => x.Id.ToString())))); } private List<ElementId> ParseClipboardItems() { string text = ThrottledClipboard.GetText(); - int num = ((!_206D_200B_206C_200B_202A_206A_200F_200F_200E_202A_200D_206A_200C_202E_206A_200B_200E_202E_206C_206C_206E_200D_206B_202C_200B_200B_200D_206A_206F_200C_206E_202B_202B_206C_202D_206B_202E_200E_200B_200D_202E(text, _lastClipboardText)) ? (-1557024321) : (-1557024322)); - while (true) + if (text != _lastClipboardText) { - int num2 = num; - int num3 = -1557024321; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1557024322; - break; - case 0: - return _clipboardItems; - case 1: - _lastClipboardText = text; - _clipboardItems = DecodeQuestPriority(text); - num = -1557024321; - break; - } + _lastClipboardText = text; + _clipboardItems = DecodeQuestPriority(text); } + return _clipboardItems; } - [MethodImpl(MethodImplOptions.NoInlining)] private void ExportToClipboard() { - _206D_200E_200E_206A_202C_200C_202E_200F_200F_202B_200F_206C_206F_202B_206B_202B_200B_206F_202B_200B_202E_206D_200D_206B_206B_202A_206E_200E_202D_206F_206E_206E_206D_200F_202E_202E_200F_200F_200B_206C_202E((ImU8String)EncodeQuestPriority()); - _200B_206A_202C_206D_200B_202E_200B_206B_200F_206B_206B_200C_206A_200E_206E_206F_206D_206A_206C_206F_200B_202B_200D_202D_206B_206E_206C_206C_206A_202E_206A_206D_200C_202D_200D_206B_206B_200B_206F_206D_202E(_chatGui, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1934191982), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); + ImGui.SetClipboardText(EncodeQuestPriority()); + _chatGui.Print("Copied quests to clipboard.", "Questionable", 576); } - [MethodImpl(MethodImplOptions.NoInlining)] private void ImportFromClipboard(List<ElementId> questElements) { - int num = ((!_questController.ImportQuestPriority(questElements)) ? (-1390193338) : (-1390193339)); - while (true) + if (_questController.ImportQuestPriority(questElements)) { - int num2 = num; - int num3 = -1390193337; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _202D_206D_200F_200F_202A_200C_202D_200B_202D_206D_206F_200D_206D_206F_206E_200E_200F_202E_202A_200E_200F_206D_202A_200D_202A_200B_206C_200E_206B_202A_202B_202A_200C_200E_200F_206F_200C_200E_206C_206A_202E(_chatGui, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1037207422), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - return; - case 2: - { - IChatGui chatGui = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(26, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2016091093)); - defaultInterpolatedStringHandler.AppendFormatted(_questController.ManualPriorityQuests.Count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1735279246)); - _200B_206A_202C_206D_200B_202E_200B_206B_200F_206B_206B_200C_206A_200E_206E_206F_206D_206A_206C_206F_200B_202B_200D_202D_206B_206E_206C_206C_206A_202E_206A_206D_200C_202D_200D_206B_206B_200B_206F_206D_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576); - return; - } - case 0: - goto IL_00e2; - } - continue; - IL_00e2: - num = -1390193339; + _chatGui.Print($"Imported {_questController.ManualPriorityQuests.Count} priority quests.", "Questionable", 576); + } + else + { + _chatGui.PrintError("No importable quests found in clipboard data.", "Questionable", 576); } } - [MethodImpl(MethodImplOptions.NoInlining)] public static List<ElementId> DecodeQuestPriority(string clipboardText) { List<ElementId> list = new List<ElementId>(); try { - int num = (_202D_202C_200B_202A_206C_202B_200E_206C_200C_206D_206A_206E_202A_206F_206F_200B_206B_202C_202A_200D_200D_202E_202A_202E_206C_206E_206B_200B_200C_206B_206A_206C_206D_202C_200C_202C_206D_200D_200C_200F_202E(clipboardText) ? (-132354680) : (-132354674)); - string text = default(string); - int num5 = default(int); - while (true) + if (!string.IsNullOrEmpty(clipboardText)) { - int num2 = num; - int num3 = -132354679; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + string text = null; + if (clipboardText.StartsWith("qst:priority:", StringComparison.InvariantCulture)) { - case 0: - text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-800686041); - num = -132354676; - break; - case 6: + text = "qst:priority:"; + } + else if (clipboardText.StartsWith("qst:v1:", StringComparison.InvariantCulture)) { - clipboardText = _202E_200F_206C_200C_202E_202A_202A_206B_206E_202C_200D_206A_206A_206B_206A_202B_200D_200C_200D_200F_202C_200C_202C_200D_202B_200D_202B_202D_206A_202B_202E_206F_202C_200C_202D_200B_202D_202A_202B_202B_202E(clipboardText, _200F_200E_200F_202D_200E_202B_202D_200D_206B_200F_206E_206F_206E_202B_202D_200E_206C_200F_200E_202D_200F_202C_206D_206C_206D_200F_206E_202C_202A_200C_200E_200C_202E_200B_200F_200D_200F_200D_200D_200C_202E(text)); - string text2 = _206C_206B_202A_206E_200C_202D_206E_206C_200E_200C_206C_202C_206D_200F_200F_206C_206E_200C_206A_200B_202A_202C_202A_202E_200B_200B_200E_200B_202A_202C_202E_206A_202B_200F_202A_206C_202A_200D_206E_202E_202E(_206F_206B_200D_206F_206E_202D_206F_202A_206F_200D_202D_206D_202D_202D_206C_206E_202A_200F_200B_200B_202D_200B_206B_200D_206E_206C_202D_202E_200E_206F_200E_200F_200C_202A_202A_200D_202D_200B_202D_200D_202E(), _202B_206C_206D_206C_200E_200C_206C_200B_202C_202D_202D_206F_200B_202A_202B_202A_202D_206D_206D_202C_202A_206C_202E_206C_202E_206C_206E_202E_206E_206D_206B_202E_202C_202B_206B_202C_200F_202C_202B_200C_202E(clipboardText)); - list.AddRange(_206C_200C_200B_206F_200C_202A_206E_202C_200C_202D_200F_206B_202E_202C_200E_202E_206A_202B_202D_206A_202D_202C_202A_202A_202E_200E_200D_200F_202B_200F_206A_200D_202B_200C_206D_202C_206A_206F_206B_202E_202E((IEnumerable<string>)_206E_206F_200F_206D_202B_206A_200B_200F_206E_200C_206D_200B_206C_200E_206F_202E_206C_206D_206D_206A_206F_202C_200E_202E_200B_202A_206E_206E_200E_206D_200E_206E_206F_206D_206C_202D_206C_206D_200D_206B_202E(text2, ';', StringSplitOptions.None), ref num5)); - num = -132354680; - break; + text = "qst:v1:"; } - case 3: - text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-775608815); - num = -132354676; - break; - case 4: - num = -132354674; - break; - case 2: - num = ((!_200F_206D_202D_200F_206D_202A_206D_206B_202A_202D_206C_206F_200D_206A_202A_206F_200D_200B_206A_206E_200E_206F_206C_200F_200D_206C_206C_206B_206B_206D_206B_206C_206D_200D_206B_206C_206E_206C_206D_200D_202E(clipboardText, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(790642103), StringComparison.InvariantCulture)) ? (-132354676) : (-132354678)); - break; - case 5: - num = ((text == null) ? (-132354680) : (-132354673)); - break; - case 7: - text = null; - num = ((!_200F_206D_202D_200F_206D_202A_206D_206B_202A_202D_206C_206F_200D_206A_202A_206F_200D_200B_206A_206E_200E_206F_206C_200F_200D_206C_206C_206B_206B_206D_206B_206C_206D_200D_206B_206C_206E_206C_206D_200D_202E(clipboardText, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(215679190), StringComparison.InvariantCulture)) ? (-132354677) : (-132354679)); - break; - case 1: - goto end_IL_0029; + if (text != null) + { + clipboardText = clipboardText.Substring(text.Length); + string text2 = Encoding.UTF8.GetString(Convert.FromBase64String(clipboardText)); + list.AddRange(ElementId.FromStrings(text2.Split(';'), out var _)); } - continue; - end_IL_0029: - break; } } catch (Exception) @@ -1145,254 +364,4 @@ internal sealed class ManualPriorityComponent } return list; } - - static void _200B_200C_202E_202D_206F_206A_200D_202B_202C_206B_202A_202C_206F_202C_200E_206B_200E_200E_202E_202B_202B_202D_206E_206C_206A_202B_202B_202B_202E_202D_200E_206F_206D_206E_200F_206F_202A_200E_206D_200F_202E(ImU8String P_0) - { - ImGui.TextWrapped(P_0); - } - - static void _206C_206A_202B_200F_200B_200F_200C_206D_206A_206A_200F_202B_200B_202A_200B_202C_202B_200C_202A_206B_206E_202D_202B_200C_200B_200D_202D_206F_200D_202A_200F_202C_200B_200B_206D_206C_200D_206D_206A_202E() - { - ImGui.Bullet(); - } - - static void _200E_206B_202C_206D_206B_206E_200B_202B_200D_200B_206F_200B_200D_200C_202D_200C_206C_206F_200F_202B_206B_202A_200E_202E_200B_202C_200C_206E_200B_206A_202B_206F_206D_202A_206B_206E_206F_206E_206C_202A_202E() - { - ImGui.SameLine(); - } - - static void _206F_206B_200B_202C_200C_200D_206B_206A_200C_200C_200B_206C_206B_202D_200B_206D_202B_200B_206C_200F_202E_200F_202B_206E_202B_206C_200B_202B_200E_200D_206E_206D_202E_200F_200C_200D_200B_202C_206C_202D_202E() - { - ImGui.Spacing(); - } - - static void _200C_202C_206E_200F_200E_202E_200D_202D_206C_200F_206A_206C_206D_206D_202C_200D_200E_206A_202E_202A_206E_206A_206B_206E_206E_200C_200C_202C_206C_202D_202C_206C_202A_206A_206A_206E_202B_202D_206E_200D_202E(ImU8String P_0) - { - ImGui.Text(P_0); - } - - static ImRaii.ChildDisposable _202B_202A_200D_200B_206C_200F_202C_206F_202B_200D_202A_206D_200D_200D_206F_200F_206E_200F_202B_206B_200E_206D_200F_202B_206C_202E_202C_200F_202E_200C_200E_206B_202B_200B_200F_206B_200F_206A_206C_200E_202E(ImU8String P_0, Vector2 P_1, bool P_2) - { - return ImRaii.Child(P_0, P_1, P_2); - } - - static ImRaii.DisabledDisposable _200E_206F_200B_206B_202E_206D_206B_202D_200D_206D_206A_202C_206E_202E_202E_206B_200C_206E_206A_200E_206F_200F_206C_206A_206A_206B_202C_202A_206E_206F_206B_202A_200B_206F_206D_206F_202E_206F_200E_202C_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static bool _206A_206E_206F_202D_206A_200B_206A_202A_200F_200B_202E_206D_206E_206C_206F_206A_206C_202E_206F_206D_202C_206E_206D_200E_206A_206E_202D_206E_202D_202D_200E_206D_206B_200C_202A_200C_202C_206B_206E_202D_202E(FontAwesomeIcon P_0, string P_1, Vector4? P_2, Vector4? P_3, Vector4? P_4, Vector2? P_5) - { - return ImGuiComponents.IconButtonWithText(P_0, P_1, P_2, P_3, P_4, P_5); - } - - static void _206E_206C_206D_200B_202C_206C_206D_206C_200B_206B_202D_202C_202D_202B_202A_200E_202A_202B_202C_202A_202A_200E_202E_200C_200C_206C_200F_200C_202B_200E_202C_202C_206E_200C_202D_200B_200D_206A_206D_206D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool _202E_206C_206A_206B_206F_202B_202B_206B_202B_202A_206D_202D_200E_202E_206E_200C_202C_206A_206E_206E_200C_200F_206C_200F_200F_200C_202A_202A_202B_202E_202D_202B_200B_206B_206E_206E_202B_200B_200E_202D_202E(ImGuiKey P_0) - { - return ImGui.IsKeyDown(P_0); - } - - static bool _206A_202A_200F_206D_202A_200C_202B_200D_202E_206E_200E_200C_200C_202D_206C_200C_200F_200C_206D_200C_200C_202A_206D_200E_206C_206D_202D_200B_200C_200D_202B_206C_206E_200C_206D_206D_200B_202A_200F_202B_202E(ImGuiHoveredFlags P_0) - { - return ImGui.IsItemHovered(P_0); - } - - static void _206D_206E_206E_206F_202C_200E_200D_206B_206F_202C_200C_206D_206E_200C_200F_200C_206E_206F_206D_206A_206C_206F_206D_200B_200B_206D_206B_202A_206A_206C_206C_202D_202B_202B_202D_202E_206F_202B_202A_202E_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } - - static ImRaii.ColorDisposable _200B_202D_200E_206A_206F_202C_206B_202C_206D_206E_202E_202B_202A_202E_202B_202A_206D_202C_206E_202E_202D_202D_200D_202D_206F_202E_200F_200B_200C_202A_200C_200D_200D_200E_200B_200E_200F_206F_202A_206A_202E(ImGuiCol P_0, Vector4 P_1, bool P_2) - { - return ImRaii.PushColor(P_0, P_1, P_2); - } - - static Vector2 _200D_200B_200C_200E_200B_206C_202D_202D_206E_202C_206A_206E_200D_206B_206B_200E_206D_206F_202A_200B_202A_206D_202D_202C_206F_200D_200D_206C_202D_202B_206B_206E_200D_202D_202E_200F_200E_206F_200B_200C_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static ImGuiStylePtr _206C_200D_206E_200F_200B_206B_206B_206E_206E_202B_202E_202E_206E_200B_206B_206F_206F_206F_202B_206C_200F_206C_202C_202C_200C_206B_206C_200B_202C_200D_202E_200F_202A_202C_206A_200C_206F_206E_206F_200D_202E() - { - return ImGui.GetStyle(); - } - - static float _202D_202E_206C_206C_202C_200B_202B_206C_200E_202E_206A_200C_200B_200D_202C_206A_206D_206B_206E_206D_202E_202C_202E_202D_202A_202B_206D_202D_206F_206C_206B_206E_202B_200F_206D_200D_200B_202B_202A_202C_202E() - { - return ImGui.GetFrameHeight(); - } - - static void _200D_206F_202E_200F_200B_202D_206C_202A_200D_206C_206E_202C_200C_200F_200E_206C_202D_206F_206D_200C_202B_206F_202D_200C_206A_202A_202C_202A_206E_206B_202E_206A_200D_200C_206E_200D_200E_202E_206B_202B_202E(ImGuiCol P_0, Vector4 P_1) - { - ImGui.PushStyleColor(P_0, P_1); - } - - static void _206C_206A_206A_206F_202C_200B_206C_206E_206D_200D_202A_202B_206B_200B_202C_200C_206A_202E_202E_206F_202E_202E_202E_206E_202B_200B_202B_206E_202E_202A_206F_200F_200B_200C_200B_206D_206B_206C_200E_200E_202E() - { - ImGui.PopStyleColor(); - } - - static float _206C_202B_206B_202B_206D_200F_200E_206B_200B_206A_202D_200E_206F_206B_206C_200D_202B_200E_202E_202B_200C_200D_202C_202E_202A_200B_200C_206C_200C_206A_202A_202E_202E_206B_202E_200C_200B_206B_206D_206B_202E() - { - return ImGui.GetCursorPosX(); - } - - static Vector2 _202B_206F_206E_206C_202E_206E_206C_200E_206F_206D_202E_200D_206F_202E_206C_206F_200B_200C_202B_202E_206B_202D_202D_202D_206E_206B_206E_202D_206C_200E_206E_202A_202B_202A_206F_200E_200C_202A_202B_200D_202E() - { - return ImGui.GetCursorScreenPos(); - } - - static ImRaii.IdDisposable _206D_200C_200B_206E_206E_202C_200D_202E_202C_202D_206A_200B_206F_202D_206D_202B_202C_202E_206D_200D_200E_206F_202C_200F_202C_202D_202D_202A_206A_206B_200E_202C_200B_206B_200C_200D_202D_206C_206F_202A_202E(ImU8String P_0, bool P_1) - { - return ImRaii.PushId(P_0, P_1); - } - - static bool _202A_202D_206C_202D_200C_202E_202A_202E_202A_206C_202C_200B_202A_200C_202E_200C_202C_200D_202E_206E_206C_202E_202E_202C_206D_200C_206F_206B_202D_202C_206B_202D_206F_202A_206F_202B_202E_200D_206E_200C_202E(ElementId P_0, ElementId P_1) - { - return P_0 == P_1; - } - - static uint _206C_206C_206F_206C_206C_202D_202D_202D_206C_202A_200E_202A_200E_200B_206D_206F_202C_202C_202B_200B_200B_206C_200B_202D_206B_202C_206E_206C_200C_206A_200B_206E_200F_200E_206A_202E_202B_206A_202B_202A_202E(ImGuiCol P_0) - { - return ImGui.GetColorU32(P_0); - } - - static Vector4 _206E_202B_202A_202A_200B_206A_200F_206D_202E_202C_206E_200C_202E_202B_200E_202E_200E_202D_202E_200B_202C_200E_202C_206C_202B_200F_202B_206B_202A_202A_200F_202C_202B_202A_206B_202D_206B_202E_206A_202C_202E(uint P_0) - { - return ImGui.ColorConvertU32ToFloat4(P_0); - } - - static bool _202C_200B_200D_200C_200D_202C_206D_202C_206B_206D_202D_206E_200C_206B_200C_202D_206A_206D_206E_206B_200F_200F_206B_200F_200E_202E_206A_202A_200C_206C_200E_206E_206E_200D_202A_202A_206A_202D_202D_202E(string P_0, FontAwesomeIcon P_1, Vector4? P_2, Vector4? P_3, Vector4? P_4, Vector2? P_5) - { - return ImGuiComponents.IconButton(P_0, P_1, P_2, P_3, P_4, P_5); - } - - static bool _202E_206E_202E_202B_206B_202A_200B_200E_200D_206A_206A_202E_206B_202E_206C_202C_206F_200B_202A_206D_206F_206D_206D_202C_206A_206A_206D_206A_200E_202C_206E_202E_206D_202B_202E_206B_206A_200D_200D_206D_202E(string P_0, FontAwesomeIcon P_1) - { - return ImGuiComponents.IconButton(P_0, P_1); - } - - static bool _202E_206E_202C_206A_200E_200C_202D_206F_206C_200F_200D_202B_200D_200C_200E_200F_200F_200C_200C_202B_206F_200D_202D_202E_200D_202B_202B_206E_200B_202B_200B_206B_206F_206D_206C_200B_200E_206D_200E_206B_202E() - { - return ImGui.IsItemActive(); - } - - static bool _206A_206F_202C_206C_200F_200E_202C_200B_200E_206F_206B_206F_200D_200F_202B_202C_206B_200E_206C_200D_206B_200F_200F_200B_202E_200C_206E_202A_206B_206C_206F_202E_200F_206B_206F_202D_202C_200F_202D_202A_202E(ImGuiMouseButton P_0) - { - return ImGui.IsMouseDragging(P_0); - } - - static void _200F_200E_206E_200D_202B_200E_206C_206B_200D_200B_206B_202E_202B_202A_206F_202B_200B_200B_206A_202B_200B_206F_200C_200C_200E_200E_206F_206B_206D_202B_206B_206E_206C_202D_202C_202C_202C_206C_206D_200C_202E() - { - ImGui.AlignTextToFramePadding(); - } - - static bool _206B_200C_200B_206D_202A_200E_200F_200B_206D_206A_206E_202C_206A_206A_206E_202B_202C_206E_202D_200F_206E_206A_200F_202A_206A_200F_200E_206D_200B_206D_200B_202D_202A_200B_202C_202A_202E_202D_200F_202A_202E() - { - return ImGui.IsItemHovered(); - } - - static void _206C_202D_202C_200B_206E_200C_206D_200E_202C_202D_206B_206B_200E_202C_206D_200F_206F_200B_200E_206B_206C_202C_206C_200E_202B_200C_206D_200C_200C_206A_200C_200B_200F_202E_206C_206D_206C_200E_206E_200F_202E(float P_0) - { - ImGui.SetCursorPosX(P_0); - } - - static ImDrawListPtr _200F_206B_200C_200E_206B_206F_202E_206C_206F_200C_200C_206D_200D_200E_206B_200D_206D_202A_202A_206C_200C_202C_202D_200C_206B_202C_202E_206F_200C_206E_206B_206D_200B_200C_202C_202E_202C_200C_206F_202C_202E() - { - return ImGui.GetWindowDrawList(); - } - - static bool _206B_200F_200C_206F_202A_200F_200D_202C_200F_200B_202E_206F_200F_200D_200F_206C_202C_202A_206A_200F_206C_202B_202C_200E_202B_202E_206E_200B_206F_200C_202E_200D_200B_206E_202E_206C_206F_200E_202D_202C_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } - - static uint _202C_202A_206D_200E_202C_206A_200C_206E_202C_202E_202C_202E_206D_206E_200F_202E_206A_206B_200C_206C_202E_200B_200C_206E_202B_206B_200C_200E_202A_202B_202D_200C_202B_200E_200D_202B_200B_206F_200B_200F_202E(Vector4 P_0) - { - return ImGui.ColorConvertFloat4ToU32(P_0); - } - - static Encoding _206F_206B_200D_206F_206E_202D_206F_202A_206F_200D_202D_206D_202D_202D_206C_206E_202A_200F_200B_200B_202D_200B_206B_200D_206E_206C_202D_202E_200E_206F_200E_200F_200C_202A_202A_200D_202D_200B_202D_200D_202E() - { - return Encoding.UTF8; - } - - static byte[] _202D_206F_202C_200D_200F_202E_202B_202C_200E_202E_206A_206F_200B_202D_206B_206C_200D_206B_202C_206A_200B_200F_200F_206F_202C_206E_206D_202C_206F_200C_200F_200E_206A_200B_202D_202E_206B_206A_206C_200D_202E(Encoding P_0, string P_1) - { - return P_0.GetBytes(P_1); - } - - static string _200E_200B_202A_200B_202D_200F_202D_200F_206E_200C_202C_206B_206F_200E_206B_206D_200E_200C_202E_200C_200F_200E_200E_200D_202A_202D_202C_200D_200B_200B_202A_206F_200B_202E_200D_200E_200B_202A_202B_206A_202E(byte[] P_0) - { - return Convert.ToBase64String(P_0); - } - - static string _206E_206D_206A_200B_206F_202E_200D_202B_202E_200B_202D_206E_206E_202D_200E_200C_206F_202B_206E_200C_206B_200C_206F_206D_200F_206A_206D_200C_206B_206F_200B_200D_206A_200C_206D_202B_200F_206F_200F_202C_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static bool _206D_200B_206C_200B_202A_206A_200F_200F_200E_202A_200D_206A_200C_202E_206A_200B_200E_202E_206C_206C_206E_200D_206B_202C_200B_200B_200D_206A_206F_200C_206E_202B_202B_206C_202D_206B_202E_200E_200B_200D_202E(string P_0, string P_1) - { - return P_0 != P_1; - } - - static void _206D_200E_200E_206A_202C_200C_202E_200F_200F_202B_200F_206C_206F_202B_206B_202B_200B_206F_202B_200B_202E_206D_200D_206B_206B_202A_206E_200E_202D_206F_206E_206E_206D_200F_202E_202E_200F_200F_200B_206C_202E(ImU8String P_0) - { - ImGui.SetClipboardText(P_0); - } - - static void _200B_206A_202C_206D_200B_202E_200B_206B_200F_206B_206B_200C_206A_200E_206E_206F_206D_206A_206C_206F_200B_202B_200D_202D_206B_206E_206C_206C_206A_202E_206A_206D_200C_202D_200D_206B_206B_200B_206F_206D_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); - } - - static void _202D_206D_200F_200F_202A_200C_202D_200B_202D_206D_206F_200D_206D_206F_206E_200E_200F_202E_202A_200E_200F_206D_202A_200D_202A_200B_206C_200E_206B_202A_202B_202A_200C_200E_200F_206F_200C_200E_206C_206A_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } - - static bool _202D_202C_200B_202A_206C_202B_200E_206C_200C_206D_206A_206E_202A_206F_206F_200B_206B_202C_202A_200D_200D_202E_202A_202E_206C_206E_206B_200B_200C_206B_206A_206C_206D_202C_200C_202C_206D_200D_200C_200F_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static bool _200F_206D_202D_200F_206D_202A_206D_206B_202A_202D_206C_206F_200D_206A_202A_206F_200D_200B_206A_206E_200E_206F_206C_200F_200D_206C_206C_206B_206B_206D_206B_206C_206D_200D_206B_206C_206E_206C_206D_200D_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.StartsWith(P_1, P_2); - } - - static int _200F_200E_200F_202D_200E_202B_202D_200D_206B_200F_206E_206F_206E_202B_202D_200E_206C_200F_200E_202D_200F_202C_206D_206C_206D_200F_206E_202C_202A_200C_200E_200C_202E_200B_200F_200D_200F_200D_200D_200C_202E(string P_0) - { - return P_0.Length; - } - - static string _202E_200F_206C_200C_202E_202A_202A_206B_206E_202C_200D_206A_206A_206B_206A_202B_200D_200C_200D_200F_202C_200C_202C_200D_202B_200D_202B_202D_206A_202B_202E_206F_202C_200C_202D_200B_202D_202A_202B_202B_202E(string P_0, int P_1) - { - return P_0.Substring(P_1); - } - - static byte[] _202B_206C_206D_206C_200E_200C_206C_200B_202C_202D_202D_206F_200B_202A_202B_202A_202D_206D_206D_202C_202A_206C_202E_206C_202E_206C_206E_202E_206E_206D_206B_202E_202C_202B_206B_202C_200F_202C_202B_200C_202E(string P_0) - { - return Convert.FromBase64String(P_0); - } - - static string _206C_206B_202A_206E_200C_202D_206E_206C_200E_200C_206C_202C_206D_200F_200F_206C_206E_200C_206A_200B_202A_202C_202A_202E_200B_200B_200E_200B_202A_202C_202E_206A_202B_200F_202A_206C_202A_200D_206E_202E_202E(Encoding P_0, byte[] P_1) - { - return P_0.GetString(P_1); - } - - static string[] _206E_206F_200F_206D_202B_206A_200B_200F_206E_200C_206D_200B_206C_200E_206F_202E_206C_206D_206D_206A_206F_202C_200E_202E_200B_202A_206E_206E_200E_206D_200E_206E_206F_206D_206C_202D_206C_206D_200D_206B_202E(string P_0, char P_1, StringSplitOptions P_2) - { - return P_0.Split(P_1, P_2); - } - - static List<ElementId> _206C_200C_200B_206F_200C_202A_206E_202C_200C_202D_200F_206B_202E_202C_200E_202E_206A_202B_202D_206A_202D_202C_202A_202A_202E_200E_200D_200F_202B_200F_206A_200D_202B_200C_206D_202C_206A_206F_206B_202E_202E(IEnumerable<string> P_0, ref int P_1) - { - return ElementId.FromStrings(P_0, out P_1); - } } diff --git a/Questionable/Questionable.Windows.QuestComponents/NavigationBarComponent.cs b/Questionable/Questionable.Windows.QuestComponents/NavigationBarComponent.cs index 2f329b7..670be16 100644 --- a/Questionable/Questionable.Windows.QuestComponents/NavigationBarComponent.cs +++ b/Questionable/Questionable.Windows.QuestComponents/NavigationBarComponent.cs @@ -1,10 +1,8 @@ using System; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Interface; using Dalamud.Interface.Utility.Raii; -using LLib.ImGui; namespace Questionable.Windows.QuestComponents; @@ -29,297 +27,84 @@ internal sealed class NavigationBarComponent _changelogWindow = changelogWindow; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Draw() { - float x = _206C_202C_200E_206D_200F_202D_200B_200B_200D_200D_206A_202A_202E_206A_200B_200B_202E_206A_206C_202B_202C_206F_200F_206F_200E_206F_202E_206B_206F_202A_200E_206F_200B_206E_202D_202E_206F_200F_202A_206C_202E().X; - float x2 = _206C_202E_206A_206E_200B_200E_200B_200F_200E_206B_206B_200C_202E_206E_202B_202D_206C_206C_202D_206E_206E_206B_202B_206B_200E_200E_206E_206E_202C_202E_200C_200F_206B_200E_202D_200E_202B_202D_200E_200D_202E().ItemSpacing.X; + float x = ImGui.GetContentRegionAvail().X; + float x2 = ImGui.GetStyle().ItemSpacing.X; float width = (x - 4f * x2) / 5f; - NavButton(FontAwesomeIcon.Cog, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1437603502), delegate + NavButton(FontAwesomeIcon.Cog, "Settings", delegate { - _202E_200B_206C_200E_202E_202E_200E_206C_206C_206A_206D_206B_202D_202D_202E_206C_202C_200B_206A_206C_202B_206D_200F_202D_200F_202E_202A_206F_200C_200F_206F_202E_200F_206D_206C_200B_206C_206C_200E_200E_202E((LWindow)_configWindow, true); + _configWindow.IsOpenAndUncollapsed = true; }, width, active: true); - _206F_206F_202E_200E_202D_202D_200D_200B_202D_202A_200F_202D_200E_206E_206E_206E_206E_200D_206C_206D_202D_202B_200F_200C_200E_206E_206F_206B_200B_202B_200B_200C_206E_206A_202B_200C_200F_206A_202D_200E_202E(); - NavButton(FontAwesomeIcon.Book, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1518016375), delegate + ImGui.SameLine(); + NavButton(FontAwesomeIcon.Book, "Journal Progress", delegate { - _202E_200B_206C_200E_202E_202E_200E_206C_206C_206A_206D_206B_202D_202D_202E_206C_202C_200B_206A_206C_202B_206D_200F_202D_200F_202E_202A_206F_200C_200F_206F_202E_200F_206D_206C_200B_206C_206C_200E_200E_202E((LWindow)_journalProgressWindow, true); + _journalProgressWindow.IsOpenAndUncollapsed = true; }, width); - _206F_206F_202E_200E_202D_202D_200D_200B_202D_202A_200F_202D_200E_206E_206E_206E_206E_200D_206C_206D_202D_202B_200F_200C_200E_206E_206F_206B_200B_202B_200B_200C_206E_206A_202B_200C_200F_206A_202D_200E_202E(); - NavButton(FontAwesomeIcon.Shield, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(30979368), delegate + ImGui.SameLine(); + NavButton(FontAwesomeIcon.Shield, "Seasonal Duty Farming", delegate { - _202E_200B_206C_200E_202E_202E_200E_206C_206C_206A_206D_206B_202D_202D_202E_206C_202C_200B_206A_206C_202B_206D_200F_202D_200F_202E_202A_206F_200C_200F_206F_202E_200F_206D_206C_200B_206C_206C_200E_200E_202E((LWindow)_seasonalDutySelectionWindow, true); + _seasonalDutySelectionWindow.IsOpenAndUncollapsed = true; }, width); - _206F_206F_202E_200E_202D_202D_200D_200B_202D_202A_200F_202D_200E_206E_206E_206E_206E_200D_206C_206D_202D_202B_200F_200C_200E_206E_206F_206B_200B_202B_200B_200C_206E_206A_202B_200C_200F_206A_202D_200E_202E(); - NavButton(FontAwesomeIcon.Calendar, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1296779081), delegate + ImGui.SameLine(); + NavButton(FontAwesomeIcon.Calendar, "FATE Farming", delegate { - _202E_200B_206C_200E_202E_202E_200E_206C_206C_206A_206D_206B_202D_202D_202E_206C_202C_200B_206A_206C_202B_206D_200F_202D_200F_202E_202A_206F_200C_200F_206F_202E_200F_206D_206C_200B_206C_206C_200E_200E_202E((LWindow)_fateSelectionWindow, true); + _fateSelectionWindow.IsOpenAndUncollapsed = true; }, width); - _206F_206F_202E_200E_202D_202D_200D_200B_202D_202A_200F_202D_200E_206E_206E_206E_206E_200D_206C_206D_202D_202B_200F_200C_200E_206E_206F_206B_200B_202B_200B_200C_206E_206A_202B_200C_200F_206A_202D_200E_202E(); - NavButton(FontAwesomeIcon.FileAlt, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1880802067), delegate + ImGui.SameLine(); + NavButton(FontAwesomeIcon.FileAlt, "What's New", delegate { - _202E_200B_206C_200E_202E_202E_200E_206C_206C_206A_206D_206B_202D_202D_202E_206C_202C_200B_206A_206C_202B_206D_200F_202D_200F_202E_202A_206F_200C_200F_206F_202E_200F_206D_206C_200B_206C_206C_200E_200E_202E((LWindow)_changelogWindow, true); + _changelogWindow.IsOpenAndUncollapsed = true; }, width); } - [MethodImpl(MethodImplOptions.NoInlining)] private static void NavButton(FontAwesomeIcon icon, string tooltip, Action onClick, float width, bool active = false) { - ImRaii.ColorDisposable colorDisposable = _206E_202A_202B_200B_206D_202C_200B_202E_200B_200D_206B_202C_206D_202D_202E_206C_200B_200E_206B_202A_206C_206B_202A_206F_206C_202A_200C_206A_202E_206D_200F_206F_202C_206E_202D_200E_200B_200B_206E_200C_202E(); - try + using ImRaii.ColorDisposable colorDisposable = new ImRaii.ColorDisposable(); + if (active) { - int num = ((!active) ? (-1402550216) : (-1402550214)); - float num6 = default(float); - Vector2 vector2 = default(Vector2); - while (true) - { - int num2 = num; - int num3 = -1402550213; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - onClick(); - num = -1402550215; - break; - case 3: - { - num6 = _202E_206F_206A_202C_206C_206A_200B_200D_206F_200D_206F_200F_202E_202D_200F_202C_206A_200D_206A_206F_202D_206F_202C_206F_206A_200E_200B_202B_200B_206E_200C_206E_206A_200F_200C_206A_202A_200B_206B_202A_202E(); - vector2 = _206B_200D_206E_202D_200F_206A_206C_200E_202E_202D_202D_202E_202C_200E_206A_206F_202E_206C_200B_200D_206A_200E_200D_200F_206B_206C_202C_202B_206D_202A_206B_202E_200D_200F_206C_202E_200C_200E_202E_206E_202E(); - ImU8String imU8String = new ImU8String(2, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1426082020)); - imU8String.AppendFormatted(tooltip); - num = ((!_200B_206B_200D_202C_202C_202A_202C_200F_202A_202B_200F_206A_206F_202B_200D_200E_200B_202A_202E_202D_200F_206F_202D_202B_200D_200F_200C_202A_206F_206F_202C_206C_200D_202C_200D_202E_206F_200E_200B_206A_202E(imU8String, new Vector2(width, num6))) ? (-1402550215) : (-1402550213)); - break; - } - case 1: - { - Vector4 accentColor = UiThemeUtils.AccentColor; - accentColor.W = 0.12f; - _206B_200D_206B_200C_200E_200B_206F_202A_206A_206B_206B_202A_200F_202C_200E_202D_206B_202B_200B_206F_200F_206C_206A_200E_206F_202C_200C_202C_200C_206F_202E_206C_202D_202D_200D_206A_202C_200E_202C_206C_202E(colorDisposable, ImGuiCol.Button, accentColor, true); - accentColor = UiThemeUtils.AccentColor; - accentColor.W = 0.2f; - _206B_200D_206B_200C_200E_200B_206F_202A_206A_206B_206B_202A_200F_202C_200E_202D_206B_202B_200B_206F_200F_206C_206A_200E_206F_202C_200C_202C_200C_206F_202E_206C_202D_202D_200D_206A_202C_200E_202C_206C_202E(colorDisposable, ImGuiCol.ButtonHovered, accentColor, true); - accentColor = UiThemeUtils.AccentColor; - accentColor.W = 0.25f; - _206B_200D_206B_200C_200E_200B_206F_202A_206A_206B_206B_202A_200F_202C_200E_202D_206B_202B_200B_206F_200F_206C_206A_200E_206F_202C_200C_202C_200C_206F_202E_206C_202D_202D_200D_206A_202C_200E_202C_206C_202E(colorDisposable, ImGuiCol.ButtonActive, accentColor, true); - _206B_200D_206B_200C_200E_200B_206F_202A_206A_206B_206B_202A_200F_202C_200E_202D_206B_202B_200B_206F_200F_206C_206A_200E_206F_202C_200C_202C_200C_206F_202E_206C_202D_202D_200D_206A_202C_200E_202C_206C_202E(colorDisposable, ImGuiCol.Text, UiThemeUtils.AccentColor, true); - num = -1402550216; - break; - } - case 4: - num = -1402550214; - break; - case 2: - { - string text = _200E_202E_206D_206F_200D_200F_200D_206F_206E_202E_202B_202A_206B_206F_202C_202D_200F_202D_206E_206D_206D_206A_206F_206B_202E_206D_202D_206D_200B_202C_206C_200F_206B_206E_202C_206B_202D_200C_202E(icon); - ImRaii.FontDisposable fontDisposable = _206E_200B_200E_202C_206B_202E_202C_200D_200C_200D_200D_202C_200E_200F_206C_206D_206E_206E_206F_200F_202B_200C_200F_202E_206C_202C_206E_206A_206C_200D_200B_202C_206B_202B_202B_202D_206B_206A_206E_206D_202E(_202A_206E_202B_202D_206D_200D_200B_206F_206A_202A_202A_200E_202B_200D_202E_206E_206C_202E_202E_206B_202D_206C_200F_202B_200D_206B_202A_206A_206F_206B_200E_206E_200F_202B_202B_206D_206F_202B_206F_200E_202E(), true); - Vector2 vector; - try - { - vector = _206C_200E_206D_200B_200C_202E_202D_202B_202B_206B_202E_206E_202D_206B_202B_206C_202C_202E_200E_206B_200C_200B_202D_202C_200B_200B_200E_202E_200C_202C_206D_200D_202B_206E_206D_206C_202E_206F_206C_206C_202E((ImU8String)text, false, -1f); - } - finally - { - num = ((fontDisposable == null) ? (-1860794618) : (-1860794619)); - while (true) - { - int num5 = num; - num3 = -1860794620; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_0192; - case 1: - _200C_202B_200C_206B_206D_206E_200E_206C_206E_206A_202A_202A_200E_202A_202E_200D_206C_206F_200B_200D_206A_206B_206C_202D_200C_206B_200D_206D_200E_200F_200F_206E_202A_202C_202C_206E_200B_200F_200B_200F_202E((IDisposable)fontDisposable); - num = -1860794618; - break; - case 0: - num = -1860794619; - break; - } - continue; - end_IL_0192: - break; - } - } - ImDrawListPtr imDrawListPtr = _202B_200F_206F_200B_202B_200F_200F_202B_202E_206B_202A_202D_200F_206D_206B_206F_206B_206F_202A_200F_206D_202A_206F_206B_202C_202E_202E_202A_206B_206A_202E_202B_206B_200B_202A_206B_206E_206A_200B_206F_202E(); - uint col = _200E_202A_200E_202E_202E_206E_200B_200D_206E_202D_200F_200B_202A_200F_202B_200E_206D_206D_200B_200F_206A_202B_202A_200B_206F_202E_206F_200E_202D_206D_206E_206C_200F_202C_206C_202D_206A_200E_206D_200F_202E(ImGuiCol.Text); - float x = vector2.X + (width - vector.X) / 2f; - float y = vector2.Y + (num6 - vector.Y) / 2f; - imDrawListPtr.AddText(_202A_206E_202B_202D_206D_200D_200B_206F_206A_202A_202A_200E_202B_200D_202E_206E_206C_202E_202E_206B_202D_206C_200F_202B_200D_206B_202A_206A_206F_206B_200E_206E_200F_202B_202B_206D_206F_202B_206F_200E_202E(), _206A_200F_206F_202C_200C_206D_202B_202A_202D_206A_200C_206D_200F_206E_206C_202B_206C_206E_206B_200B_202E_206A_202A_202E_206B_206F_206D_200F_206E_202A_200C_200C_206F_206B_206F_202A_202B_202D_202D_206B_202E(), new Vector2(x, y), col, text); - num = ((!active) ? 1157755779 : 1157755782); - while (true) - { - int num7 = num; - num3 = 1157755778; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1157755782; - break; - case 4: - { - Vector2 pMin = _200E_206C_202C_206A_200C_200C_206F_206A_206A_206A_202D_200C_206E_200C_200E_206D_202A_202B_200D_200D_200D_202B_200C_206E_206D_200C_200E_206A_206A_200D_206E_200D_206F_206A_202D_200C_206F_202C_202A_200C_202E(); - Vector2 pMax = _200B_202B_206F_202D_202C_206C_202E_202C_200E_202D_202B_200B_200E_206A_206C_200D_202C_206C_202D_202B_202E_206D_200E_206D_200E_206B_202D_206E_200C_202B_206E_206E_200E_202E_206B_200F_200F_200E_200B_206B_202E(); - Vector4 accentColor = UiThemeUtils.AccentColor; - accentColor.W = 0.35f; - imDrawListPtr.AddRect(pMin, pMax, _202B_206A_202B_202D_206F_202B_206D_206F_200B_202B_200D_200B_206B_206B_206E_206C_200D_200E_206D_206D_202E_206E_200F_202C_206D_200E_200D_206A_206C_206B_202B_206C_202A_200B_200F_202E_202A_206C_200C_202E_202E(accentColor), 4f, ImDrawFlags.RoundCornersAll, 1f); - num = 1157755779; - break; - } - case 1: - num = ((!_200F_206F_202B_206F_202B_200C_206B_206B_206A_202C_202C_206C_206F_206A_202C_200B_200C_200E_206B_206D_206F_206C_200E_206A_200B_202E_202D_200B_206C_206A_200B_202E_202D_206A_206A_206D_206F_206F_206E_206A_202E()) ? 1157755777 : 1157755776); - break; - case 2: - _200D_202B_202D_200B_202C_202C_202A_200D_206E_206D_200D_202E_202B_200C_202D_206E_206C_200B_200D_206E_200C_202D_202A_200D_200F_200B_200D_206B_202B_200F_206A_202C_202B_206B_202C_200C_200C_206D_202B_206E_202E((ImU8String)tooltip); - num = 1157755777; - break; - case 3: - return; - } - } - } - } - } + Vector4 accentColor = UiThemeUtils.AccentColor; + accentColor.W = 0.12f; + colorDisposable.Push(ImGuiCol.Button, accentColor); + accentColor = UiThemeUtils.AccentColor; + accentColor.W = 0.2f; + colorDisposable.Push(ImGuiCol.ButtonHovered, accentColor); + accentColor = UiThemeUtils.AccentColor; + accentColor.W = 0.25f; + colorDisposable.Push(ImGuiCol.ButtonActive, accentColor); + colorDisposable.Push(ImGuiCol.Text, UiThemeUtils.AccentColor); } - finally + float frameHeight = ImGui.GetFrameHeight(); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + ImU8String label = new ImU8String(2, 1); + label.AppendLiteral("##"); + label.AppendFormatted(tooltip); + if (ImGui.Button(label, new Vector2(width, frameHeight))) { - int num = ((colorDisposable == null) ? 13502380 : 13502383); - while (true) - { - int num8 = num; - int num3 = 13502381; - int num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 0: - num = 13502383; - break; - case 1: - goto end_IL_034d; - case 2: - _200C_202B_200C_206B_206D_206E_200E_206C_206E_206A_202A_202A_200E_202A_202E_200D_206C_206F_200B_200D_206A_206B_206C_202D_200C_206B_200D_206D_200E_200F_200F_206E_202A_202C_202C_206E_200B_200F_200B_200F_202E((IDisposable)colorDisposable); - num = 13502380; - break; - } - continue; - end_IL_034d: - break; - } + onClick(); + } + string text = icon.ToIconString(); + Vector2 vector; + using (ImRaii.PushFont(UiBuilder.IconFont)) + { + vector = ImGui.CalcTextSize(text); + } + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + uint colorU = ImGui.GetColorU32(ImGuiCol.Text); + float x = cursorScreenPos.X + (width - vector.X) / 2f; + float y = cursorScreenPos.Y + (frameHeight - vector.Y) / 2f; + windowDrawList.AddText(UiBuilder.IconFont, ImGui.GetFontSize(), new Vector2(x, y), colorU, text); + if (active) + { + Vector2 itemRectMin = ImGui.GetItemRectMin(); + Vector2 itemRectMax = ImGui.GetItemRectMax(); + Vector4 accentColor = UiThemeUtils.AccentColor; + accentColor.W = 0.35f; + windowDrawList.AddRect(itemRectMin, itemRectMax, ImGui.ColorConvertFloat4ToU32(accentColor), 4f, ImDrawFlags.RoundCornersAll, 1f); + } + if (ImGui.IsItemHovered()) + { + ImGui.SetTooltip(tooltip); } - } - - static Vector2 _206C_202C_200E_206D_200F_202D_200B_200B_200D_200D_206A_202A_202E_206A_200B_200B_202E_206A_206C_202B_202C_206F_200F_206F_200E_206F_202E_206B_206F_202A_200E_206F_200B_206E_202D_202E_206F_200F_202A_206C_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static ImGuiStylePtr _206C_202E_206A_206E_200B_200E_200B_200F_200E_206B_206B_200C_202E_206E_202B_202D_206C_206C_202D_206E_206E_206B_202B_206B_200E_200E_206E_206E_202C_202E_200C_200F_206B_200E_202D_200E_202B_202D_200E_200D_202E() - { - return ImGui.GetStyle(); - } - - static void _206F_206F_202E_200E_202D_202D_200D_200B_202D_202A_200F_202D_200E_206E_206E_206E_206E_200D_206C_206D_202D_202B_200F_200C_200E_206E_206F_206B_200B_202B_200B_200C_206E_206A_202B_200C_200F_206A_202D_200E_202E() - { - ImGui.SameLine(); - } - - static ImRaii.ColorDisposable _206E_202A_202B_200B_206D_202C_200B_202E_200B_200D_206B_202C_206D_202D_202E_206C_200B_200E_206B_202A_206C_206B_202A_206F_206C_202A_200C_206A_202E_206D_200F_206F_202C_206E_202D_200E_200B_200B_206E_200C_202E() - { - return new ImRaii.ColorDisposable(); - } - - static ImRaii.ColorDisposable _206B_200D_206B_200C_200E_200B_206F_202A_206A_206B_206B_202A_200F_202C_200E_202D_206B_202B_200B_206F_200F_206C_206A_200E_206F_202C_200C_202C_200C_206F_202E_206C_202D_202D_200D_206A_202C_200E_202C_206C_202E(ImRaii.ColorDisposable P_0, ImGuiCol P_1, Vector4 P_2, bool P_3) - { - return P_0.Push(P_1, P_2, P_3); - } - - static float _202E_206F_206A_202C_206C_206A_200B_200D_206F_200D_206F_200F_202E_202D_200F_202C_206A_200D_206A_206F_202D_206F_202C_206F_206A_200E_200B_202B_200B_206E_200C_206E_206A_200F_200C_206A_202A_200B_206B_202A_202E() - { - return ImGui.GetFrameHeight(); - } - - static Vector2 _206B_200D_206E_202D_200F_206A_206C_200E_202E_202D_202D_202E_202C_200E_206A_206F_202E_206C_200B_200D_206A_200E_200D_200F_206B_206C_202C_202B_206D_202A_206B_202E_200D_200F_206C_202E_200C_200E_202E_206E_202E() - { - return ImGui.GetCursorScreenPos(); - } - - static bool _200B_206B_200D_202C_202C_202A_202C_200F_202A_202B_200F_206A_206F_202B_200D_200E_200B_202A_202E_202D_200F_206F_202D_202B_200D_200F_200C_202A_206F_206F_202C_206C_200D_202C_200D_202E_206F_200E_200B_206A_202E(ImU8String P_0, Vector2 P_1) - { - return ImGui.Button(P_0, P_1); - } - - static string _200E_202E_206D_206F_200D_200F_200D_206F_206E_202E_202B_202A_206B_206F_202C_202D_200F_202D_206E_206D_206D_206A_206F_206B_202E_206D_202D_206D_200B_202C_206C_200F_206B_206E_202C_206B_202D_200C_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static ImFontPtr _202A_206E_202B_202D_206D_200D_200B_206F_206A_202A_202A_200E_202B_200D_202E_206E_206C_202E_202E_206B_202D_206C_200F_202B_200D_206B_202A_206A_206F_206B_200E_206E_200F_202B_202B_206D_206F_202B_206F_200E_202E() - { - return UiBuilder.IconFont; - } - - static ImRaii.FontDisposable _206E_200B_200E_202C_206B_202E_202C_200D_200C_200D_200D_202C_200E_200F_206C_206D_206E_206E_206F_200F_202B_200C_200F_202E_206C_202C_206E_206A_206C_200D_200B_202C_206B_202B_202B_202D_206B_206A_206E_206D_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static Vector2 _206C_200E_206D_200B_200C_202E_202D_202B_202B_206B_202E_206E_202D_206B_202B_206C_202C_202E_200E_206B_200C_200B_202D_202C_200B_200B_200E_202E_200C_202C_206D_200D_202B_206E_206D_206C_202E_206F_206C_206C_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static void _200C_202B_200C_206B_206D_206E_200E_206C_206E_206A_202A_202A_200E_202A_202E_200D_206C_206F_200B_200D_206A_206B_206C_202D_200C_206B_200D_206D_200E_200F_200F_206E_202A_202C_202C_206E_200B_200F_200B_200F_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static ImDrawListPtr _202B_200F_206F_200B_202B_200F_200F_202B_202E_206B_202A_202D_200F_206D_206B_206F_206B_206F_202A_200F_206D_202A_206F_206B_202C_202E_202E_202A_206B_206A_202E_202B_206B_200B_202A_206B_206E_206A_200B_206F_202E() - { - return ImGui.GetWindowDrawList(); - } - - static uint _200E_202A_200E_202E_202E_206E_200B_200D_206E_202D_200F_200B_202A_200F_202B_200E_206D_206D_200B_200F_206A_202B_202A_200B_206F_202E_206F_200E_202D_206D_206E_206C_200F_202C_206C_202D_206A_200E_206D_200F_202E(ImGuiCol P_0) - { - return ImGui.GetColorU32(P_0); - } - - static float _206A_200F_206F_202C_200C_206D_202B_202A_202D_206A_200C_206D_200F_206E_206C_202B_206C_206E_206B_200B_202E_206A_202A_202E_206B_206F_206D_200F_206E_202A_200C_200C_206F_206B_206F_202A_202B_202D_202D_206B_202E() - { - return ImGui.GetFontSize(); - } - - static Vector2 _200E_206C_202C_206A_200C_200C_206F_206A_206A_206A_202D_200C_206E_200C_200E_206D_202A_202B_200D_200D_200D_202B_200C_206E_206D_200C_200E_206A_206A_200D_206E_200D_206F_206A_202D_200C_206F_202C_202A_200C_202E() - { - return ImGui.GetItemRectMin(); - } - - static Vector2 _200B_202B_206F_202D_202C_206C_202E_202C_200E_202D_202B_200B_200E_206A_206C_200D_202C_206C_202D_202B_202E_206D_200E_206D_200E_206B_202D_206E_200C_202B_206E_206E_200E_202E_206B_200F_200F_200E_200B_206B_202E() - { - return ImGui.GetItemRectMax(); - } - - static uint _202B_206A_202B_202D_206F_202B_206D_206F_200B_202B_200D_200B_206B_206B_206E_206C_200D_200E_206D_206D_202E_206E_200F_202C_206D_200E_200D_206A_206C_206B_202B_206C_202A_200B_200F_202E_202A_206C_200C_202E_202E(Vector4 P_0) - { - return ImGui.ColorConvertFloat4ToU32(P_0); - } - - static bool _200F_206F_202B_206F_202B_200C_206B_206B_206A_202C_202C_206C_206F_206A_202C_200B_200C_200E_206B_206D_206F_206C_200E_206A_200B_202E_202D_200B_206C_206A_200B_202E_202D_206A_206A_206D_206F_206F_206E_206A_202E() - { - return ImGui.IsItemHovered(); - } - - static void _200D_202B_202D_200B_202C_202C_202A_200D_206E_206D_200D_202E_202B_200C_202D_206E_206C_200B_200D_206E_200C_202D_202A_200D_200F_200B_200D_206B_202B_200F_206A_202C_202B_206B_202C_200C_200C_206D_202B_206E_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } - - static void _202E_200B_206C_200E_202E_202E_200E_206C_206C_206A_206D_206B_202D_202D_202E_206C_202C_200B_206A_206C_202B_206D_200F_202D_200F_202E_202A_206F_200C_200F_206F_202E_200F_206D_206C_200B_206C_206C_200E_200E_202E(LWindow P_0, bool P_1) - { - P_0.IsOpenAndUncollapsed = P_1; } } diff --git a/Questionable/Questionable.Windows.QuestComponents/QuestSequenceComponent.cs b/Questionable/Questionable.Windows.QuestComponents/QuestSequenceComponent.cs index 9ba513c..8e9e530 100644 --- a/Questionable/Questionable.Windows.QuestComponents/QuestSequenceComponent.cs +++ b/Questionable/Questionable.Windows.QuestComponents/QuestSequenceComponent.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Interface; using Dalamud.Interface.Components; @@ -21,248 +20,6 @@ namespace Questionable.Windows.QuestComponents; internal sealed class QuestSequenceComponent { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass17_0 - { - public int totalSequences; - - public int maxSeq; - - public bool hasQuestPath; - - public Vector4 coverageColor; - - public int implementedCount; - - public int expectedCount; - - public float coverage; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal void _003CDrawSummaryCards_003Eb__0() - { - _206A_202A_200E_200F_200D_202A_200D_202A_206F_206C_202B_200E_202C_206D_206B_206E_202D_206F_202E_206D_206F_206C_202A_202A_200E_206E_202A_200C_202D_202D_206A_202E_206A_206B_200E_202D_200C_200D_202E_200F_202E(); - _202C_202D_200B_206D_206E_202E_206A_202D_202B_200F_202A_202D_202C_200F_200E_202E_200D_202C_206B_202B_206E_202C_202C_202B_206B_200F_206D_202C_202B_206C_206E_206F_200B_206A_202D_200B_200C_202D_200F_206C_202E(10f); - ImU8String imU8String = new ImU8String(6, 0); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(389160049)); - _202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref UiThemeUtils.PrimaryTextColor, imU8String); - _200B_202E_206F_200C_206C_202C_200E_200F_206F_206F_200F_206A_200E_200E_200C_200B_202E_200B_206E_202B_200D_200C_206C_200F_200D_206E_206B_206A_206E_206E_200B_202E_206F_206F_200E_206F_206A_200D_200D_202E(); - Vector4 vector = new Vector4(0.7f, 0.9f, 1f, 1f); - ImU8String imU8String2 = new ImU8String(0, 1); - imU8String2.AppendFormatted(totalSequences); - _202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref vector, imU8String2); - _206A_202A_200E_200F_200D_202A_200D_202A_206F_206C_202B_200E_202C_206D_206B_206E_202D_206F_202E_206D_206F_206C_202A_202A_200E_206E_202A_200C_202D_202D_206A_202E_206A_206B_200E_202D_200C_200D_202E_200F_202E(); - ImU8String imU8String3 = new ImU8String(6, 0); - imU8String3.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1982759281)); - _202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref UiThemeUtils.PrimaryTextColor, imU8String3); - _200B_202E_206F_200C_206C_202C_200E_200F_206F_206F_200F_206A_200E_200E_200C_200B_202E_200B_206E_202B_200D_200C_206C_200F_200D_206E_206B_206A_206E_206E_200B_202E_206F_206F_200E_206F_206A_200D_200D_202E(); - vector = new Vector4(0.7f, 0.9f, 1f, 1f); - ImU8String imU8String4 = new ImU8String(9, 1); - imU8String4.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-17191078)); - imU8String4.AppendFormatted(maxSeq); - imU8String4.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1638758109)); - _202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref vector, imU8String4); - _206A_200B_202B_206A_200E_206D_200F_202C_200C_206C_206A_206B_206F_206B_202C_206C_200F_202E_200C_202A_200D_206D_206F_202B_206D_200E_206F_202B_202B_200F_206C_206F_202D_202D_202A_202B_206B_202A_206F_206A_202E(10f); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal void _003CDrawSummaryCards_003Eb__1() - { - if (hasQuestPath) - { - _202C_202D_200B_206D_206E_202E_206A_202D_202B_200F_202A_202D_202C_200F_200E_202E_200D_202C_206B_202B_206E_202C_202C_202B_206B_200F_206D_202C_202B_206C_206E_206F_200B_206A_202D_200B_200C_202D_200F_206C_202E(10f); - _202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref UiThemeUtils.PrimaryTextColor, (ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-97617789)); - _200B_202E_206F_200C_206C_202C_200E_200F_206F_206F_200F_206A_200E_200E_200C_200B_202E_200B_206E_202B_200D_200C_206C_200F_200D_206E_206B_206A_206E_206E_200B_202E_206F_206F_200E_206F_206A_200D_200D_202E(); - ref Vector4 reference = ref coverageColor; - ImU8String imU8String = new ImU8String(0, 1); - imU8String.AppendFormatted(implementedCount); - _202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref reference, imU8String); - _200B_202E_206F_200C_206C_202C_200E_200F_206F_206F_200F_206A_200E_200E_200C_200B_202E_200B_206E_202B_200D_200C_206C_200F_200D_206E_206B_206A_206E_206E_200B_202E_206F_206F_200E_206F_206A_200D_200D_202E(); - _202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref UiThemeUtils.DimTextColor, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1392036559)); - _200B_202E_206F_200C_206C_202C_200E_200F_206F_206F_200F_206A_200E_200E_200C_200B_202E_200B_206E_202B_200D_200C_206C_200F_200D_206E_206B_206A_206E_206E_200B_202E_206F_206F_200E_206F_206A_200D_200D_202E(); - ImU8String imU8String2 = new ImU8String(0, 1); - imU8String2.AppendFormatted(expectedCount); - _202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref UiThemeUtils.PrimaryTextColor, imU8String2); - _200B_202E_206F_200C_206C_202C_200E_200F_206F_206F_200F_206A_200E_200E_200C_200B_202E_200B_206E_202B_200D_200C_206C_200F_200D_206E_206B_206A_206E_206E_200B_202E_206F_206F_200E_206F_206A_200D_200D_202E(); - ref Vector4 reference2 = ref coverageColor; - ImU8String imU8String3 = new ImU8String(3, 1); - imU8String3.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1208656614)); - imU8String3.AppendFormatted(coverage, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1949766839)); - imU8String3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1310244362)); - _202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref reference2, imU8String3); - _206A_202A_200E_200F_200D_202A_200D_202A_206F_206C_202B_200E_202C_206D_206B_206E_202D_206F_202E_206D_206F_206C_202A_202A_200E_206E_202A_200C_202D_202D_206A_202E_206A_206B_200E_202D_200C_200D_202E_200F_202E(); - Vector2 vector = _206D_202B_202C_206D_206B_200D_206C_206B_202A_200B_202B_202A_200B_200E_206A_200D_202A_202E_200B_200B_200B_206A_206A_202C_206D_200B_200E_200D_202A_202A_206B_202D_200B_202B_200F_202E_206B_202A_200F_202C_202E(); - float x = _200F_200F_206F_200D_206A_202C_206D_206F_206E_202E_200F_202A_206F_206A_206A_200B_202B_200D_200D_202C_206B_202D_200B_202C_206E_200C_206B_206C_202A_206C_200E_206D_202C_206E_200C_206F_206C_200C_206C_200C_202E().X - 10f; - ImRaii.ColorDisposable colorDisposable = _206E_202D_202E_206A_202B_200C_206B_206D_206A_206E_200E_206E_200E_206E_202D_206E_202A_200E_202D_206E_206B_200D_206B_202B_200E_206F_202B_200F_200B_200C_206D_202D_206E_202E_202C_202B_202C_206D_202B_200E_202E(ImGuiCol.PlotHistogram, coverageColor, true); - try - { - ImRaii.ColorDisposable colorDisposable2 = _206E_202D_202E_206A_202B_200C_206B_206D_206A_206E_200E_206E_200E_206E_202D_206E_202A_200E_202D_206E_206B_200D_206B_202B_200E_206F_202B_200F_200B_200C_206D_202D_206E_202E_202C_202B_202C_206D_202B_200E_202E(ImGuiCol.FrameBg, new Vector4(0.08f, 0.06f, 0.12f, 0.8f), true); - try - { - _202E_202D_202A_202B_202E_206C_206F_200D_200B_200C_206D_200E_200E_200C_206F_202A_202E_200B_202D_200F_206A_200E_200B_206A_200E_206C_206B_202C_206F_200F_200B_200D_206C_200C_206E_206B_200D_206D_206B_206D_202E(coverage / 100f, new Vector2(x, 16f), (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1200342830)); - } - finally - { - int num = ((colorDisposable2 == null) ? 1407322401 : 1407322400); - while (true) - { - int num2 = num; - int num3 = 1407322401; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto end_IL_018b; - case 1: - _200D_206B_200E_202E_206F_202A_202A_200C_206A_206A_206C_206F_206D_200C_200B_202D_206E_200E_206D_200E_202D_206E_202A_206F_206E_202E_206F_206C_200F_202B_202C_200F_202C_206A_200E_206E_206B_206D_206D_206E_202E((IDisposable)colorDisposable2); - num = 1407322401; - break; - case 2: - num = 1407322400; - break; - } - continue; - end_IL_018b: - break; - } - } - } - finally - { - int num = ((colorDisposable == null) ? 807614204 : 807614205); - while (true) - { - int num7 = num; - int num3 = 807614204; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 2: - num = 807614205; - break; - case 0: - goto end_IL_01f8; - case 1: - _200D_206B_200E_202E_206F_202A_202A_200C_206A_206A_206C_206F_206D_200C_200B_202D_206E_200E_206D_200E_202D_206E_202A_206F_206E_202E_206F_206C_200F_202B_202C_200F_202C_206A_200E_206E_206B_206D_206D_206E_202E((IDisposable)colorDisposable); - num = 807614204; - break; - } - continue; - end_IL_01f8: - break; - } - } - ImDrawListPtr imDrawListPtr = _200F_206B_202A_206D_206C_206E_200F_206C_202A_200E_206A_200F_200E_206F_200B_200D_202C_206C_206D_200B_200F_200C_202D_206D_200F_206B_206E_200B_200B_202B_206C_200C_206F_206F_206E_200F_202A_206B_200F_200F_202E(); - Vector2 pMax = vector + new Vector2(x, 16f); - Vector4 accentColor = UiThemeUtils.AccentColor; - accentColor.W = 0.3f; - imDrawListPtr.AddRect(vector, pMax, _206D_200E_206D_202B_200B_206C_206F_202C_202B_206A_202B_202E_200C_206D_206B_200C_206D_202D_206C_202C_202E_202A_200E_200B_202A_206C_202E_200F_206A_202C_206B_200E_206C_202C_200C_206A_202A_202D_206E_202E_202E(accentColor), 2f); - _206A_200B_202B_206A_200E_206D_200F_202C_200C_206C_206A_206B_206F_206B_202C_206C_200F_202E_200C_202A_200D_206D_206F_202B_206D_200E_206F_202B_202B_200F_206C_206F_202D_202D_202A_202B_206B_202A_206F_206A_202E(10f); - } - else - { - _206A_202A_200E_200F_200D_202A_200D_202A_206F_206C_202B_200E_202C_206D_206B_206E_202D_206F_202E_206D_206F_206C_202A_202A_200E_206E_202A_200C_202D_202D_206A_202E_206A_206B_200E_202D_200C_200D_202E_200F_202E(); - _202C_202D_200B_206D_206E_202E_206A_202D_202B_200F_202A_202D_202C_200F_200E_202E_200D_202C_206B_202B_206E_202C_202C_202B_206B_200F_206D_202C_202B_206C_206E_206F_200B_206A_202D_200B_200C_202D_200F_206C_202E(10f); - _200B_202D_200D_202B_200F_206F_206E_202D_202B_206F_206F_202C_206F_206A_202D_200F_206A_206F_206C_206D_206C_200C_200D_206C_202C_206E_200F_200F_206E_202B_206C_206E_200E_200C_202A_202C_206A_206B_200F_206C_202E(_206A_202D_202B_202B_206C_206E_206A_200D_206C_206C_200B_202E_206A_200D_200C_206C_200D_200F_200D_206F_206E_202A_202E_202E_202D_206F_202E_200D_202E_200C_206A_200C_202D_206D_206A_200B_206C_202E_206D_206A_202E()); - Vector4 accentColor = UiThemeUtils.AccentColor; - accentColor.W = 0.8f; - _202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref accentColor, (ImU8String)_200C_206C_202A_200F_202B_202C_206D_200D_200F_200F_206C_206F_200D_202E_202A_200C_200B_206E_206B_202A_206B_202D_206F_202A_200C_206E_200E_200C_202E_202E_202A_206E_200D_200E_206F_202C_200E_206A_200D_206D_202E(FontAwesomeIcon.Ban)); - _206A_206B_200D_206E_202C_202E_202C_200E_200B_206A_200D_206D_206A_202C_202E_206E_206F_200B_206C_206F_202A_202D_200C_206C_200B_200B_206C_200C_206E_200B_202E_202D_206E_202E_206F_202D_200D_206F_206D_206E_202E(); - _200B_202E_206F_200C_206C_202C_200E_200F_206F_206F_200F_206A_200E_200E_200C_200B_202E_200B_206E_202B_200D_200C_206C_200F_200D_206E_206B_206A_206E_206E_200B_202E_206F_206F_200E_206F_206A_200D_200D_202E(); - accentColor = UiThemeUtils.AccentColor; - accentColor.W = 0.8f; - _202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref accentColor, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(868008656)); - _206A_202A_200E_200F_200D_202A_200D_202A_206F_206C_202B_200E_202C_206D_206B_206E_202D_206F_202E_206D_206F_206C_202A_202A_200E_206E_202A_200C_202D_202D_206A_202E_206A_206B_200E_202D_200C_200D_202E_200F_202E(); - _202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref UiThemeUtils.DimTextColor, (ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(384693137)); - _206A_200B_202B_206A_200E_206D_200F_202C_200C_206C_206A_206B_206F_206B_202C_206C_200F_202E_200C_202A_200D_206D_206F_202B_206D_200E_206F_202B_202B_200F_206C_206F_202D_202D_202A_202B_206B_202A_206F_206A_202E(10f); - } - } - - static void _206A_202A_200E_200F_200D_202A_200D_202A_206F_206C_202B_200E_202C_206D_206B_206E_202D_206F_202E_206D_206F_206C_202A_202A_200E_206E_202A_200C_202D_202D_206A_202E_206A_206B_200E_202D_200C_200D_202E_200F_202E() - { - ImGui.Spacing(); - } - - static void _202C_202D_200B_206D_206E_202E_206A_202D_202B_200F_202A_202D_202C_200F_200E_202E_200D_202C_206B_202B_206E_202C_202C_202B_206B_200F_206D_202C_202B_206C_206E_206F_200B_206A_202D_200B_200C_202D_200F_206C_202E(float P_0) - { - ImGui.Indent(P_0); - } - - static void _202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static void _200B_202E_206F_200C_206C_202C_200E_200F_206F_206F_200F_206A_200E_200E_200C_200B_202E_200B_206E_202B_200D_200C_206C_200F_200D_206E_206B_206A_206E_206E_200B_202E_206F_206F_200E_206F_206A_200D_200D_202E() - { - ImGui.SameLine(); - } - - static void _206A_200B_202B_206A_200E_206D_200F_202C_200C_206C_206A_206B_206F_206B_202C_206C_200F_202E_200C_202A_200D_206D_206F_202B_206D_200E_206F_202B_202B_200F_206C_206F_202D_202D_202A_202B_206B_202A_206F_206A_202E(float P_0) - { - ImGui.Unindent(P_0); - } - - static Vector2 _206D_202B_202C_206D_206B_200D_206C_206B_202A_200B_202B_202A_200B_200E_206A_200D_202A_202E_200B_200B_200B_206A_206A_202C_206D_200B_200E_200D_202A_202A_206B_202D_200B_202B_200F_202E_206B_202A_200F_202C_202E() - { - return ImGui.GetCursorScreenPos(); - } - - static Vector2 _200F_200F_206F_200D_206A_202C_206D_206F_206E_202E_200F_202A_206F_206A_206A_200B_202B_200D_200D_202C_206B_202D_200B_202C_206E_200C_206B_206C_202A_206C_200E_206D_202C_206E_200C_206F_206C_200C_206C_200C_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static ImRaii.ColorDisposable _206E_202D_202E_206A_202B_200C_206B_206D_206A_206E_200E_206E_200E_206E_202D_206E_202A_200E_202D_206E_206B_200D_206B_202B_200E_206F_202B_200F_200B_200C_206D_202D_206E_202E_202C_202B_202C_206D_202B_200E_202E(ImGuiCol P_0, Vector4 P_1, bool P_2) - { - return ImRaii.PushColor(P_0, P_1, P_2); - } - - static void _202E_202D_202A_202B_202E_206C_206F_200D_200B_200C_206D_200E_200E_200C_206F_202A_202E_200B_202D_200F_206A_200E_200B_206A_200E_206C_206B_202C_206F_200F_200B_200D_206C_200C_206E_206B_200D_206D_206B_206D_202E(float P_0, Vector2 P_1, ImU8String P_2) - { - ImGui.ProgressBar(P_0, P_1, P_2); - } - - static void _200D_206B_200E_202E_206F_202A_202A_200C_206A_206A_206C_206F_206D_200C_200B_202D_206E_200E_206D_200E_202D_206E_202A_206F_206E_202E_206F_206C_200F_202B_202C_200F_202C_206A_200E_206E_206B_206D_206D_206E_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static ImDrawListPtr _200F_206B_202A_206D_206C_206E_200F_206C_202A_200E_206A_200F_200E_206F_200B_200D_202C_206C_206D_200B_200F_200C_202D_206D_200F_206B_206E_200B_200B_202B_206C_200C_206F_206F_206E_200F_202A_206B_200F_200F_202E() - { - return ImGui.GetWindowDrawList(); - } - - static uint _206D_200E_206D_202B_200B_206C_206F_202C_202B_206A_202B_202E_200C_206D_206B_200C_206D_202D_206C_202C_202E_202A_200E_200B_202A_206C_202E_200F_206A_202C_206B_200E_206C_202C_200C_206A_202A_202D_206E_202E_202E(Vector4 P_0) - { - return ImGui.ColorConvertFloat4ToU32(P_0); - } - - static ImFontPtr _206A_202D_202B_202B_206C_206E_206A_200D_206C_206C_200B_202E_206A_200D_200C_206C_200D_200F_200D_206F_206E_202A_202E_202E_202D_206F_202E_200D_202E_200C_206A_200C_202D_206D_206A_200B_206C_202E_206D_206A_202E() - { - return UiBuilder.IconFont; - } - - static void _200B_202D_200D_202B_200F_206F_206E_202D_202B_206F_206F_202C_206F_206A_202D_200F_206A_206F_206C_206D_206C_200C_200D_206C_202C_206E_200F_200F_206E_202B_206C_206E_200E_200C_202A_202C_206A_206B_200F_206C_202E(ImFontPtr P_0) - { - ImGui.PushFont(P_0); - } - - static string _200C_206C_202A_200F_202B_202C_206D_200D_200F_200F_206C_206F_200D_202E_202A_200C_200B_206E_206B_202A_206B_202D_206F_202A_200C_206E_200E_200C_202E_202E_202A_206E_200D_200E_206F_202C_200E_206A_200D_206D_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static void _206A_206B_200D_206E_202C_202E_202C_200E_200B_206A_200D_206D_206A_202C_202E_206E_206F_200B_206C_206F_202A_202D_200C_206C_200B_200B_206C_200C_206E_200B_202E_202D_206E_202E_206F_202D_200D_206F_206D_206E_202E() - { - ImGui.PopFont(); - } - } - private readonly QuestData _questData; private readonly QuestRegistry _questRegistry; @@ -281,7 +38,7 @@ internal sealed class QuestSequenceComponent private int _hoveredSequenceId = -1; - public bool HasLookedUpQuest => _200E_206C_206B_200D_206C_200B_206B_206D_202C_206C_206C_206A_206D_202A_200F_206E_200D_200E_200C_202E_202A_200B_206B_206F_202C_200F_200F_200B_206C_202C_206A_200D_200F_206D_206C_206C_206F_200B_200B_206E_202E(_lookedUpQuestId, (ElementId)null); + public bool HasLookedUpQuest => _lookedUpQuestId != null; public QuestSequenceComponent(QuestData questData, QuestRegistry questRegistry, QuestPriorityResolver priorityResolver, QuestFunctions questFunctions, IDataManager dataManager, ILogger<QuestSequenceComponent> logger) { @@ -293,2152 +50,687 @@ internal sealed class QuestSequenceComponent _logger = logger; } - [MethodImpl(MethodImplOptions.NoInlining)] public static void DrawCustomHeader(ref bool isOpen) { - Vector2 vector = _202D_202C_202D_200B_202E_200F_206E_206C_206C_200B_200E_202C_202A_200E_206D_200F_206D_206B_206B_202B_206B_206F_206C_202E_206B_202D_200F_200F_202D_202C_206F_206A_206D_206D_200C_200D_202D_200E_202E_206C_202E(); - float x = _200C_206F_200C_202D_206F_200C_202E_202A_200F_206A_200D_206B_206D_206C_202C_200C_202E_200C_200F_206C_200C_202D_206D_200D_206C_202B_202C_202B_202E_206C_202C_202C_202E_200D_206D_206A_202B_202A_202C_202A_202E().X; - float num = _200B_206E_202A_206F_206E_206B_206B_202E_202C_200C_200F_206D_200E_206F_200F_202D_206D_200D_206C_206C_206A_200D_200D_202E_206C_206C_206B_206D_200D_202E_202A_202B_202B_200C_202E_200D_206A_206B_202A_202D_202E() + _200B_202B_202D_202E_206C_206A_200C_202C_206D_202A_206D_206B_202E_202E_206C_202C_200D_206B_206D_202E_206F_202A_200C_202A_206F_206F_206D_206A_202D_200E_202E_202B_206C_206B_206C_206A_202E_202B_200F_206F_202E().ItemSpacing.Y * 1.5f; - ImDrawListPtr imDrawListPtr = _206E_200C_200E_206F_200D_200D_202A_206B_202D_202D_206F_202C_200D_200C_200D_200F_200B_202A_206C_206B_202C_200E_202E_206A_206A_202C_202B_200E_206B_200C_206F_200C_200B_200B_206B_200E_200F_206E_200D_206D_202E(); - imDrawListPtr.AddRectFilledMultiColor(vector, vector + new Vector2(x, num), _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(new Vector4(0.22f, 0.2f, 0.28f, 0.85f)), _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(new Vector4(0.18f, 0.16f, 0.24f, 0.85f)), _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(new Vector4(0.18f, 0.16f, 0.24f, 0.85f)), _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(new Vector4(0.22f, 0.2f, 0.28f, 0.85f))); - Vector2 p = vector + new Vector2(0f, num); - Vector2 p2 = vector + new Vector2(x, num); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + float x = ImGui.GetContentRegionAvail().X; + float num = ImGui.GetFrameHeightWithSpacing() + ImGui.GetStyle().ItemSpacing.Y * 1.5f; + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + windowDrawList.AddRectFilledMultiColor(cursorScreenPos, cursorScreenPos + new Vector2(x, num), ImGui.ColorConvertFloat4ToU32(new Vector4(0.22f, 0.2f, 0.28f, 0.85f)), ImGui.ColorConvertFloat4ToU32(new Vector4(0.18f, 0.16f, 0.24f, 0.85f)), ImGui.ColorConvertFloat4ToU32(new Vector4(0.18f, 0.16f, 0.24f, 0.85f)), ImGui.ColorConvertFloat4ToU32(new Vector4(0.22f, 0.2f, 0.28f, 0.85f))); + Vector2 p = cursorScreenPos + new Vector2(0f, num); + Vector2 p2 = cursorScreenPos + new Vector2(x, num); Vector4 accentColor = UiThemeUtils.AccentColor; accentColor.W = 0.5f; - imDrawListPtr.AddLine(p, p2, _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(accentColor), 2f); - float num2 = _200F_202A_206E_200C_202C_202D_206C_206C_202B_206E_202B_202B_202C_206D_206C_200C_206B_206A_206D_206D_202E_200B_206A_206C_202E_200F_200D_206A_200B_202E_200D_202D_200E_206E_200B_202D_206B_206A_206E_206D_202E(); - float num3 = (num - num2) * 0.5f; - _202C_206E_206D_200E_206E_200F_206D_206F_200B_202A_200B_202D_202C_206D_202B_202D_200D_200F_202B_200E_202A_200D_200B_206B_202C_202B_200D_202A_202D_202B_202B_206D_206D_206A_202A_202C_200B_206A_200C_206C_202E(_206E_200C_200C_202E_206F_202E_200F_200E_200F_206F_206B_206B_206A_202B_202B_202D_202D_206F_206E_200B_206F_200F_200D_200D_206E_200E_206D_206E_206C_206D_206E_202B_200B_200D_206A_206D_206D_202C_202D_202E_202E() + num3); - _202C_206D_200E_200B_200B_202D_206A_200F_200E_202B_206B_200D_200E_200F_206D_206B_206B_202B_202C_200E_206C_200C_206F_200E_202A_200B_206E_202B_202A_206F_206A_202D_206B_206B_202E_202C_206E_202D_200C_202C_202E(_206F_206D_206B_206B_202D_202A_202A_200F_200B_202E_206B_200B_206B_202A_202D_200E_200D_206F_206E_206D_206E_206E_206A_206E_200E_206C_200C_206C_200B_202B_206E_202D_200D_206E_202D_200D_206F_206D_206B_202B_202E() + 10f); - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref UiThemeUtils.PrimaryTextColor, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(769981112)); - _206F_200D_202B_200C_202D_202A_200C_200F_206C_200C_202A_200E_206A_202C_202E_200E_206A_200F_206B_206D_206A_206F_202B_206B_206E_200E_202C_206A_200C_200F_202A_206A_202A_200E_206C_206D_206C_200E_202C_202C_202E(x - 35f); - _202C_206E_206D_200E_206E_200F_206D_206F_200B_202A_200B_202D_202C_206D_202B_202D_200D_200F_202B_200E_202A_200D_200B_206B_202C_202B_200D_202A_202D_202B_202B_206D_206D_206A_202A_202C_200B_206A_200C_206C_202E(_206E_200C_200C_202E_206F_202E_200F_200E_200F_206F_206B_206B_206A_202B_202B_202D_202D_206F_206E_200B_206F_200F_200D_200D_206E_200E_206D_206E_206C_206D_206E_202B_200B_200D_206A_206D_206D_202C_202D_202E_202E() - num3 + _200B_202B_202D_202E_206C_206A_200C_202C_206D_202A_206D_206B_202E_202E_206C_202C_200D_206B_206D_202E_206F_202A_200C_202A_206F_206F_206D_206A_202D_200E_202E_202B_206C_206B_206C_206A_202E_202B_200F_206F_202E().ItemSpacing.Y); - ImRaii.ColorDisposable colorDisposable = _202C_206F_200D_202A_202B_206A_200F_206E_206E_202A_200B_202B_200B_200B_206C_202D_206B_202B_202D_206E_206E_200E_206F_206A_206D_206F_206D_202E_202D_206A_200F_206E_206C_202E_202A_206C_202B_202A_202A_202E(ImGuiCol.Button, Vector4.Zero, true); - try + windowDrawList.AddLine(p, p2, ImGui.ColorConvertFloat4ToU32(accentColor), 2f); + float textLineHeight = ImGui.GetTextLineHeight(); + float num2 = (num - textLineHeight) * 0.5f; + ImGui.SetCursorPosY(ImGui.GetCursorPosY() + num2); + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + 10f); + ImGui.TextColored(in UiThemeUtils.PrimaryTextColor, "Quest Sequence Viewer"); + ImGui.SameLine(x - 35f); + ImGui.SetCursorPosY(ImGui.GetCursorPosY() - num2 + ImGui.GetStyle().ItemSpacing.Y); + using (ImRaii.PushColor(ImGuiCol.Button, Vector4.Zero)) { - ImRaii.ColorDisposable colorDisposable2 = _202C_206F_200D_202A_202B_206A_200F_206E_206E_202A_200B_202B_200B_200B_206C_202D_206B_202B_202D_206E_206E_200E_206F_206A_206D_206F_206D_202E_202D_206A_200F_206E_206C_202E_202A_206C_202B_202A_202A_202E(ImGuiCol.ButtonHovered, new Vector4(0.8f, 0.3f, 0.3f, 0.4f), true); - try + using (ImRaii.PushColor(ImGuiCol.ButtonHovered, new Vector4(0.8f, 0.3f, 0.3f, 0.4f))) { - ImRaii.ColorDisposable colorDisposable3 = _202C_206F_200D_202A_202B_206A_200F_206E_206E_202A_200B_202B_200B_200B_206C_202D_206B_202B_202D_206E_206E_200E_206F_206A_206D_206F_206D_202E_202D_206A_200F_206E_206C_202E_202A_206C_202B_202A_202A_202E(ImGuiCol.ButtonActive, new Vector4(0.9f, 0.2f, 0.2f, 0.6f), true); - try + using (ImRaii.PushColor(ImGuiCol.ButtonActive, new Vector4(0.9f, 0.2f, 0.2f, 0.6f))) { - int num4 = ((!_202A_206F_200B_200B_206D_200E_206D_200D_206A_200D_202D_206D_200C_202C_206B_202A_206F_202B_206E_206A_200B_200E_206D_200D_200B_206F_202A_202B_200B_202A_200B_206E_206D_202C_202E_200B_202A_202B_206E_200E_202E(FontAwesomeIcon.Times)) ? (-799147489) : (-799147492)); - while (true) + if (ImGuiComponents.IconButton(FontAwesomeIcon.Times)) { - int num5 = num4; - int num6 = -799147490; - int num7 = num5; - switch ((num7 | num6) - (num7 & num6)) - { - case 0: - num4 = -799147492; - break; - case 2: - isOpen = false; - num4 = -799147489; - break; - case 1: - goto end_IL_01fa; - } - continue; - end_IL_01fa: - break; + isOpen = false; } } - finally - { - int num4 = ((colorDisposable3 == null) ? (-216661876) : (-216661873)); - while (true) - { - int num8 = num4; - int num6 = -216661875; - int num7 = num8; - switch ((num7 | num6) - (num7 & num6)) - { - case 1: - goto end_IL_0265; - case 2: - _200C_202E_206A_206C_206B_206B_200B_200D_206C_200E_206B_200C_206A_200C_200B_202A_200C_202C_200D_200E_206D_200B_200E_206F_200D_206F_206D_200C_202C_206B_200F_206A_200D_202D_206B_202D_200F_200C_202B_206F_202E((IDisposable)colorDisposable3); - num4 = -216661876; - break; - case 0: - num4 = -216661873; - break; - } - continue; - end_IL_0265: - break; - } - } - } - finally - { - int num4 = ((colorDisposable2 == null) ? (-1685088427) : (-1685088426)); - while (true) - { - int num9 = num4; - int num6 = -1685088428; - int num7 = num9; - int num10 = num7 + num6; - int num11 = num7 & num6; - switch (num10 - (num11 + num11)) - { - case 0: - num4 = -1685088426; - break; - case 2: - _200C_202E_206A_206C_206B_206B_200B_200D_206C_200E_206B_200C_206A_200C_200B_202A_200C_202C_200D_200E_206D_200B_200E_206F_200D_206F_206D_200C_202C_206B_200F_206A_200D_202D_206B_202D_200F_200C_202B_206F_202E((IDisposable)colorDisposable2); - num4 = -1685088427; - break; - case 1: - goto end_IL_02d0; - } - continue; - end_IL_02d0: - break; - } } } - finally - { - int num4 = ((colorDisposable == null) ? 1591897086 : 1591897085); - while (true) - { - int num12 = num4; - int num6 = 1591897084; - int num7 = num12; - switch ((num7 | num6) - (num7 & num6)) - { - case 0: - num4 = 1591897085; - break; - case 2: - goto end_IL_033d; - case 1: - _200C_202E_206A_206C_206B_206B_200B_200D_206C_200E_206B_200C_206A_200C_200B_202A_200C_202C_200D_200E_206D_200B_200E_206F_200D_206F_206D_200C_202C_206B_200F_206A_200D_202D_206B_202D_200F_200C_202B_206F_202E((IDisposable)colorDisposable); - num4 = 1591897086; - break; - } - continue; - end_IL_033d: - break; - } - } - _202C_206E_206D_200E_206E_200F_206D_206F_200B_202A_200B_202D_202C_206D_202B_202D_200D_200F_202B_200E_202A_200D_200B_206B_202C_202B_200D_202A_202D_202B_202B_206D_206D_206A_202A_202C_200B_206A_200C_206C_202E(vector.Y + num - _202D_202C_202D_200B_202E_200F_206E_206C_206C_200B_200E_202C_202A_200E_206D_200F_206D_206B_206B_202B_206B_206F_206C_202E_206B_202D_200F_200F_202D_202C_206F_206A_206D_206D_200C_200D_202D_200E_202E_206C_202E().Y + _206E_200C_200C_202E_206F_202E_200F_200E_200F_206F_206B_206B_206A_202B_202B_202D_202D_206F_206E_200B_206F_200F_200D_200D_206E_200E_206D_206E_206C_206D_206E_202B_200B_200D_206A_206D_206D_202C_202D_202E_202E()); + ImGui.SetCursorPosY(cursorScreenPos.Y + num - ImGui.GetCursorScreenPos().Y + ImGui.GetCursorPosY()); } public static void DrawWindowBorder() { - ImDrawListPtr imDrawListPtr = _206E_200C_200E_206F_200D_200D_202A_206B_202D_202D_206F_202C_200D_200C_200D_200F_200B_202A_206C_206B_202C_200E_202E_206A_206A_202C_202B_200E_206B_200C_206F_200C_200B_200B_206B_200E_200F_206E_200D_206D_202E(); - Vector2 vector = _202E_206D_202A_202A_200F_202C_206B_200D_200B_206E_206C_200F_202E_206C_200D_200E_206E_206A_202B_202B_206E_202C_202B_202A_202C_200D_206F_206E_202A_202C_200E_206E_200C_206F_206C_206C_202D_206A_200B_202B_202E(); - Vector2 vector2 = _206F_206C_202A_206C_206B_200B_200D_202E_202E_202C_206C_206A_202D_200F_200C_200E_200D_200B_202D_206B_200D_200F_200D_202C_206A_206B_200D_206E_206F_206E_206B_200B_206C_202E_200C_206E_206F_206A_200B_202E_202E(); - Vector2 pMin = vector - new Vector2(1f, 1f); - Vector2 pMax = vector + vector2 + new Vector2(1f, 1f); + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 windowPos = ImGui.GetWindowPos(); + Vector2 windowSize = ImGui.GetWindowSize(); + Vector2 pMin = windowPos - new Vector2(1f, 1f); + Vector2 pMax = windowPos + windowSize + new Vector2(1f, 1f); Vector4 accentColor = UiThemeUtils.AccentColor; accentColor.W = 0.15f; - imDrawListPtr.AddRect(pMin, pMax, _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(accentColor), 5f, ImDrawFlags.None, 3f); - Vector2 pMax2 = vector + vector2; + windowDrawList.AddRect(pMin, pMax, ImGui.ColorConvertFloat4ToU32(accentColor), 5f, ImDrawFlags.None, 3f); + Vector2 pMax2 = windowPos + windowSize; accentColor = UiThemeUtils.AccentColor; accentColor.W = 0.4f; - imDrawListPtr.AddRect(vector, pMax2, _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(accentColor), 4f, ImDrawFlags.None, 1.5f); + windowDrawList.AddRect(windowPos, pMax2, ImGui.ColorConvertFloat4ToU32(accentColor), 4f, ImDrawFlags.None, 1.5f); } - [MethodImpl(MethodImplOptions.NoInlining)] public void DrawCurrentQuestTab() { QuestReference currentQuest = _priorityResolver.GetCurrentQuest(); ElementId elementId = currentQuest.CurrentQuest; byte? currentSequence = currentQuest.Sequence; - int num = ((!_202B_200B_206B_200C_200C_200B_202C_202D_200F_200C_200B_202E_202B_200B_206C_200E_200D_202E_202E_206C_202E_200B_206D_206F_202D_200D_200E_202C_200C_200F_200E_200E_202D_202D_202A_206B_202B_200D_202C_200C_202E(elementId, (ElementId)null)) ? (-1494991257) : (-1494991255)); - (QuestId, byte)? currentQuestWithoutPath = default((QuestId, byte)?); - QuestId questId = default(QuestId); - IQuestInfo questInfo = default(IQuestInfo); - while (true) + if (elementId == null) { - int num2 = num; - int num3 = -1494991263; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: - num = ((!_200E_206C_206B_200D_206C_200B_206B_206D_202C_206C_206C_206A_206D_202A_200F_206E_200D_200E_200C_202E_202A_200B_206B_206F_202C_200F_200F_200B_206C_202C_206A_200D_200F_206D_206C_206C_206F_200B_200B_206E_202E(elementId, (ElementId)null)) ? (-1494991252) : (-1494991253)); - break; - case 4: + (QuestId, byte)? currentQuestWithoutPath = _questFunctions.GetCurrentQuestWithoutPath(); + if (currentQuestWithoutPath.HasValue) { (QuestId, byte) valueOrDefault = currentQuestWithoutPath.GetValueOrDefault(); elementId = valueOrDefault.Item1; currentSequence = valueOrDefault.Item2; - num = -1494991257; - break; } - case 0: - _206D_200C_200F_206A_206D_206E_202E_200F_206D_206B_202B_200C_200E_200D_206B_202D_202B_200D_202B_202D_202A_200C_202A_206A_200C_200B_200B_200C_202D_200E_202B_202B_202B_206D_206E_202E_206E_200D_200C_202D_202E(); - num = ((!_200D_202D_202A_206C_202D_200D_206A_202D_206B_206D_206C_206E_206E_200F_206E_206D_206C_202D_200E_206A_206C_200C_206F_202B_206F_206B_200E_200B_200C_202A_206A_206E_202E_206D_202B_200B_206A_202D_206F_200C_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1742019776), default(Vector2))) ? (-1494991261) : (-1494991251)); - break; - case 2: - num = ((!_200D_202E_200E_206F_202D_200F_202A_206F_206C_206C_202B_206E_202A_202B_202C_202E_202E_200D_202E_206E_200C_200E_200E_202D_202D_202D_206A_206D_206D_206B_202C_200C_200D_200D_200F_206E_202B_206A_206A_202C_202E()) ? (-1494991262) : (-1494991256)); - break; - case 10: - DrawQuestSequences(elementId, currentSequence); - num = -1494991264; - break; - case 7: - num = -1494991255; - break; - case 11: - _206E_206B_200E_206B_206C_202E_200E_200E_202A_200F_202C_202B_200E_200D_206E_202A_200C_206D_202D_206A_206D_200C_206A_202C_202A_206C_202D_206C_200D_202C_206D_206F_202D_200F_206A_202A_202E_206C_202B_206D_202E((ImU8String)GetSequenceFilename(_200E_202C_202B_202A_202B_200B_202A_200D_200D_206F_200D_202D_206E_206F_202C_206E_202A_200E_202C_206B_200B_206B_200F_206A_200E_202C_206A_202B_206F_206E_200E_202E_206A_206A_200B_200C_202C_206E_202D_200D_202E((ElementId)questId), _200E_202C_202B_202A_202B_200B_202A_200D_200D_206F_200D_202D_206E_206F_202C_206E_202A_200E_202C_206B_200B_206B_200F_206A_200E_202C_206A_202B_206F_206E_200E_202E_206A_206A_200B_200C_202C_206E_202D_200D_202E((ElementId)questId).ToString(_206A_202E_200E_200F_200E_200E_200D_206B_202D_206E_200D_202A_206B_202C_206D_202B_202C_200C_202B_202B_206B_200F_206A_202E_206E_202B_200D_202B_202E_206E_202B_206A_202A_206C_202B_206A_202B_202E_206D_200F_202E()))); - num = -1494991261; - break; - case 8: - currentQuestWithoutPath = _questFunctions.GetCurrentQuestWithoutPath(); - num = ((!currentQuestWithoutPath.HasValue) ? (-1494991257) : (-1494991259)); - break; - case 12: - num = ((!_questData.TryGetQuestInfo(questId, out questInfo)) ? (-1494991254) : (-1494991260)); - break; - case 5: - _206E_206B_200E_206B_206C_202E_200E_200E_202A_200F_202C_202B_200E_200D_206E_202A_200C_206D_202D_206A_206D_200C_206A_202C_202A_206C_202D_206C_200D_202C_206D_206F_202D_200F_206A_202A_202E_206C_202B_206D_202E((ImU8String)GetSequenceFilename(_200E_202C_202B_202A_202B_200B_202A_200D_200D_206F_200D_202D_206E_206F_202C_206E_202A_200E_202C_206B_200B_206B_200F_206A_200E_202C_206A_202B_206F_206E_200E_202E_206A_206A_200B_200C_202C_206E_202D_200D_202E((ElementId)questId), questInfo.Name)); - num = -1494991261; - break; - case 9: - _202A_202A_200D_206D_206F_202D_200B_206B_202A_200F_200C_200E_202B_206A_202B_202E_200F_202D_206A_206C_200E_202C_200C_202D_200D_206B_206C_202B_206D_206E_200D_202A_206C_200C_206F_200D_202D_206E_200F_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2059620587)); - num = -1494991262; - break; - case 1: - questId = elementId as QuestId; - num = (((object)questId == null) ? (-1494991262) : (-1494991263)); - break; - case 3: - return; - case 13: + } + if (elementId != null) + { + DrawQuestSequences(elementId, currentSequence); + } + else + { + Vector4 accentColor = UiThemeUtils.AccentColor; + accentColor.W = 0.7f; + DrawEmptyState(FontAwesomeIcon.QuestionCircle, "No Active Quest", "Accept a quest to view its sequence information.", accentColor); + } + if (!(elementId is QuestId questId)) + { + return; + } + ImGui.Spacing(); + if (ImGui.Button("Copy filename")) + { + if (_questData.TryGetQuestInfo(questId, out IQuestInfo questInfo)) { - string title = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1225613667); - string message = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(884791283); - Vector4 accentColor = UiThemeUtils.AccentColor; - accentColor.W = 0.7f; - DrawEmptyState(FontAwesomeIcon.QuestionCircle, title, message, accentColor); - num = -1494991264; - break; + ImGui.SetClipboardText(GetSequenceFilename(questId.Value, questInfo.Name)); } + else + { + ImGui.SetClipboardText(GetSequenceFilename(questId.Value, questId.Value.ToString(CultureInfo.InvariantCulture))); } } + if (ImGui.IsItemHovered()) + { + ImGui.SetTooltip("Copies filename as QuestID_QuestNameWithSpaces.json"); + } } - [MethodImpl(MethodImplOptions.NoInlining)] public void DrawQuestLookupTab() { - Vector2 vector = _202D_202C_202D_200B_202E_200F_206E_206C_206C_200B_200E_202C_202A_200E_206D_200F_206D_206B_206B_202B_206B_206F_206C_202E_206B_202D_200F_200F_202D_202C_206F_206A_206D_206D_200C_200D_202D_200E_202E_206C_202E(); - float y = _200B_206E_202A_206F_206E_206B_206B_202E_202C_200C_200F_206D_200E_206F_200F_202D_206D_200D_206C_206C_206A_200D_200D_202E_206C_206C_206B_206D_200D_202E_202A_202B_202B_200C_202E_200D_206A_206B_202A_202D_202E() + _200B_202B_202D_202E_206C_206A_200C_202C_206D_202A_206D_206B_202E_202E_206C_202C_200D_206B_206D_202E_206F_202A_200C_202A_206F_206F_206D_206A_202D_200E_202E_202B_206C_206B_206C_206A_202E_202B_200F_206F_202E().ItemSpacing.Y * 3f; - float x = _200C_206F_200C_202D_206F_200C_202E_202A_200F_206A_200D_206B_206D_206C_202C_200C_202E_200C_200F_206C_200C_202D_206D_200D_206C_202B_202C_202B_202E_206C_202C_202C_202E_200D_206D_206A_202B_202A_202C_202A_202E().X; - ImDrawListPtr imDrawListPtr = _206E_200C_200E_206F_200D_200D_202A_206B_202D_202D_206F_202C_200D_200C_200D_200F_200B_202A_206C_206B_202C_200E_202E_206A_206A_202C_202B_200E_206B_200C_206F_200C_200B_200B_206B_200E_200F_206E_200D_206D_202E(); - imDrawListPtr.AddRectFilledMultiColor(vector, vector + new Vector2(x, y), _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(UiThemeUtils.CardBackgroundColor), _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(UiThemeUtils.CardBackgroundColor), _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(UiThemeUtils.CardBackgroundColor), _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(UiThemeUtils.CardBackgroundColor)); - Vector2 pMax = vector + new Vector2(x, y); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + float y = ImGui.GetFrameHeightWithSpacing() + ImGui.GetStyle().ItemSpacing.Y * 3f; + float x = ImGui.GetContentRegionAvail().X; + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + windowDrawList.AddRectFilledMultiColor(cursorScreenPos, cursorScreenPos + new Vector2(x, y), ImGui.ColorConvertFloat4ToU32(UiThemeUtils.CardBackgroundColor), ImGui.ColorConvertFloat4ToU32(UiThemeUtils.CardBackgroundColor), ImGui.ColorConvertFloat4ToU32(UiThemeUtils.CardBackgroundColor), ImGui.ColorConvertFloat4ToU32(UiThemeUtils.CardBackgroundColor)); + Vector2 pMax = cursorScreenPos + new Vector2(x, y); Vector4 accentColor = UiThemeUtils.AccentColor; accentColor.W = 0.2f; - imDrawListPtr.AddRect(vector, pMax, _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(accentColor), 4f, ImDrawFlags.None, 1f); - _202C_206E_206D_200E_206E_200F_206D_206F_200B_202A_200B_202D_202C_206D_202B_202D_200D_200F_202B_200E_202A_200D_200B_206B_202C_202B_200D_202A_202D_202B_202B_206D_206D_206A_202A_202C_200B_206A_200C_206C_202E(_206E_200C_200C_202E_206F_202E_200F_200E_200F_206F_206B_206B_206A_202B_202B_202D_202D_206F_206E_200B_206F_200F_200D_200D_206E_200E_206D_206E_206C_206D_206E_202B_200B_200D_206A_206D_206D_202C_202D_202E_202E() + _200B_202B_202D_202E_206C_206A_200C_202C_206D_202A_206D_206B_202E_202E_206C_202C_200D_206B_206D_202E_206F_202A_200C_202A_206F_206F_206D_206A_202D_200E_202E_202B_206C_206B_206C_206A_202E_202B_200F_206F_202E().ItemSpacing.Y * 1.5f); - _202C_206D_200E_200B_200B_202D_206A_200F_200E_202B_206B_200D_200E_200F_206D_206B_206B_202B_202C_200E_206C_200C_206F_200E_202A_200B_206E_202B_202A_206F_206A_202D_206B_206B_202E_202C_206E_202D_200C_202C_202E(_206F_206D_206B_206B_202D_202A_202A_200F_200B_202E_206B_200B_206B_202A_202D_200E_200D_206F_206E_206D_206E_206E_206A_206E_200E_206C_200C_206C_200B_202B_206E_202D_200D_206E_202D_200D_206F_206D_206B_202B_202E() + 10f); - ImRaii.FontDisposable fontDisposable = _202E_206E_200F_200F_200F_206D_202D_202C_206A_206C_206B_206B_200F_202D_206C_200E_202D_206B_206D_200C_206F_200C_200C_206D_206A_202A_206A_202E_206D_200D_206C_206F_202D_200F_200E_202E_200F_200D_206F_202E_202E(_200D_206C_200F_202A_202E_206D_206E_202E_202A_206C_202C_202C_200C_202C_206D_202D_206F_200C_206F_200B_206A_200C_202A_200B_206E_202C_206D_202E_202A_200D_200F_200B_202B_202C_202C_206E_200F_200C_202A_202A_202E(), true); - int num; - try + windowDrawList.AddRect(cursorScreenPos, pMax, ImGui.ColorConvertFloat4ToU32(accentColor), 4f, ImDrawFlags.None, 1f); + ImGui.SetCursorPosY(ImGui.GetCursorPosY() + ImGui.GetStyle().ItemSpacing.Y * 1.5f); + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + 10f); + using (ImRaii.PushFont(UiBuilder.IconFont)) { - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref UiThemeUtils.AccentColor, (ImU8String)_200F_200C_206B_200B_206C_200E_206F_206C_206D_206A_200E_202B_206B_206E_202A_206C_202D_202E_200D_206E_202E_202A_206D_200B_206B_202C_202A_206A_206E_206D_202C_200F_206D_206E_202C_200E_202D_206F_200D_200C_202E(FontAwesomeIcon.Search)); + ImGui.TextColored(in UiThemeUtils.AccentColor, FontAwesomeIcon.Search.ToIconString()); } - finally + ImGui.SameLine(); + float x2 = ImGui.GetStyle().ItemSpacing.X; + float num = 10f; + float num2 = 10f; + float num3 = ImGui.CalcTextSize("Search").X + ImGui.CalcTextSize(FontAwesomeIcon.Search.ToIconString()).X + ImGui.GetStyle().FramePadding.X * 4f + x2; + ImGui.SetNextItemWidth(x - num3 - x2 * 3f - num - num2); + using (ImRaii.PushColor(ImGuiCol.FrameBg, new Vector4(0.08f, 0.06f, 0.12f, 0.8f))) { - num = ((fontDisposable == null) ? 733147327 : 733147324); - while (true) + using (ImRaii.PushColor(ImGuiCol.FrameBgHovered, new Vector4(0.12f, 0.1f, 0.18f, 0.9f))) { - int num2 = num; - int num3 = 733147325; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + using (ImRaii.PushColor(ImGuiCol.FrameBgActive, new Vector4(0.15f, 0.13f, 0.22f, 1f))) { - case 0: - num = 733147324; - break; - case 1: - _200C_202E_206A_206C_206B_206B_200B_200D_206C_200E_206B_200C_206A_200C_200B_202A_200C_202C_200D_200E_206D_200B_200E_206F_200D_206F_206D_200C_202C_206B_200F_206A_200D_202D_206B_202D_200F_200C_202B_206F_202E((IDisposable)fontDisposable); - num = 733147327; - break; - case 2: - goto end_IL_012c; - } - continue; - end_IL_012c: - break; - } - } - _200E_202D_200B_206E_200E_200D_202D_202B_202D_206F_206B_206A_202A_202A_206F_206B_200D_200F_200E_202C_206C_200B_206C_200E_200E_202E_200C_206C_202D_202A_206E_206B_200C_202D_200F_202C_206C_202C_202E_200D_202E(); - float x2 = _200B_202B_202D_202E_206C_206A_200C_202C_206D_202A_206D_206B_202E_202E_206C_202C_200D_206B_206D_202E_206F_202A_200C_202A_206F_206F_206D_206A_202D_200E_202E_202B_206C_206B_206C_206A_202E_202B_200F_206F_202E().ItemSpacing.X; - float num7 = 10f; - float num8 = 10f; - float num9 = _202B_206A_202C_206B_206F_206E_200F_206B_202B_206F_202D_206B_202E_206B_202A_202E_206F_202D_200F_202B_206B_200F_200D_200E_206C_200C_200C_200E_206C_200E_206E_206A_206D_200F_200F_202C_200C_206D_206F_200D_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1000418356), false, -1f).X + _202B_206A_202C_206B_206F_206E_200F_206B_202B_206F_202D_206B_202E_206B_202A_202E_206F_202D_200F_202B_206B_200F_200D_200E_206C_200C_200C_200E_206C_200E_206E_206A_206D_200F_200F_202C_200C_206D_206F_200D_202E((ImU8String)_200F_200C_206B_200B_206C_200E_206F_206C_206D_206A_200E_202B_206B_206E_202A_206C_202D_202E_200D_206E_202E_202A_206D_200B_206B_202C_202A_206A_206E_206D_202C_200F_206D_206E_202C_200E_202D_206F_200D_200C_202E(FontAwesomeIcon.Search), false, -1f).X + _200B_202B_202D_202E_206C_206A_200C_202C_206D_202A_206D_206B_202E_202E_206C_202C_200D_206B_206D_202E_206F_202A_200C_202A_206F_206F_206D_206A_202D_200E_202E_202B_206C_206B_206C_206A_202E_202B_200F_206F_202E().FramePadding.X * 4f + x2; - _206D_202D_200D_206E_200D_206F_206D_200E_206F_202B_202C_200E_200D_202E_206B_206A_200F_206D_206C_200F_206B_202C_202B_200D_206C_202D_206B_202E_202B_206B_206C_206E_200E_202C_202E_206E_206F_206F_202D_202A_202E(x - num9 - x2 * 3f - num7 - num8); - ImRaii.ColorDisposable colorDisposable = _202C_206F_200D_202A_202B_206A_200F_206E_206E_202A_200B_202B_200B_200B_206C_202D_206B_202B_202D_206E_206E_200E_206F_206A_206D_206F_206D_202E_202D_206A_200F_206E_206C_202E_202A_206C_202B_202A_202A_202E(ImGuiCol.FrameBg, new Vector4(0.08f, 0.06f, 0.12f, 0.8f), true); - try - { - ImRaii.ColorDisposable colorDisposable2 = _202C_206F_200D_202A_202B_206A_200F_206E_206E_202A_200B_202B_200B_200B_206C_202D_206B_202B_202D_206E_206E_200E_206F_206A_206D_206F_206D_202E_202D_206A_200F_206E_206C_202E_202A_206C_202B_202A_202A_202E(ImGuiCol.FrameBgHovered, new Vector4(0.12f, 0.1f, 0.18f, 0.9f), true); - try - { - ImRaii.ColorDisposable colorDisposable3 = _202C_206F_200D_202A_202B_206A_200F_206E_206E_202A_200B_202B_200B_200B_206C_202D_206B_202B_202D_206E_206E_200E_206F_206A_206D_206F_206D_202E_202D_206A_200F_206E_206C_202E_202A_206C_202B_202A_202A_202E(ImGuiCol.FrameBgActive, new Vector4(0.15f, 0.13f, 0.22f, 1f), true); - try - { - bool flag = _200F_200B_206D_202E_206B_202E_202A_202B_206F_202D_206E_202D_200B_206C_200B_202C_200D_202A_206E_206A_200D_200C_200E_206C_206E_200E_206E_206F_206F_202A_206E_202C_200C_202B_206F_206F_200F_200D_200F_200D_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(300618578), (ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1207997573), ref _questLookupInput, 10, ImGuiInputTextFlags.EnterReturnsTrue, (ImGui.ImGuiInputTextCallbackDelegate)null); - _200E_202D_200B_206E_200E_200D_202D_202B_202D_206F_206B_206A_202A_202A_206F_206B_200D_200F_200E_202C_206C_200B_206C_200E_200E_202E_200C_206C_202D_202A_206E_206B_200C_202D_200F_202C_206C_202C_202E_200D_202E(); - ImRaii.ColorDisposable colorDisposable4 = _202C_206F_200D_202A_202B_206A_200F_206E_206E_202A_200B_202B_200B_200B_206C_202D_206B_202B_202D_206E_206E_200E_206F_206A_206D_206F_206D_202E_202D_206A_200F_206E_206C_202E_202A_206C_202B_202A_202A_202E(ImGuiCol.Button, new Vector4(0.25f, 0.22f, 0.32f, 0.8f), true); - try + bool flag = ImGui.InputTextWithHint("##QuestLookup", "Enter quest ID...", ref _questLookupInput, 10, ImGuiInputTextFlags.EnterReturnsTrue); + ImGui.SameLine(); + using (ImRaii.PushColor(ImGuiCol.Button, new Vector4(0.25f, 0.22f, 0.32f, 0.8f))) { - ImRaii.ColorDisposable colorDisposable5 = _202C_206F_200D_202A_202B_206A_200F_206E_206E_202A_200B_202B_200B_200B_206C_202D_206B_202B_202D_206E_206E_200E_206F_206A_206D_206F_206D_202E_202D_206A_200F_206E_206C_202E_202A_206C_202B_202A_202A_202E(ImGuiCol.ButtonHovered, new Vector4(0.35f, 0.3f, 0.45f, 0.9f), true); - try + using (ImRaii.PushColor(ImGuiCol.ButtonHovered, new Vector4(0.35f, 0.3f, 0.45f, 0.9f))) { - ImRaii.ColorDisposable colorDisposable6 = _202C_206F_200D_202A_202B_206A_200F_206E_206E_202A_200B_202B_200B_200B_206C_202D_206B_202B_202D_206E_206E_200E_206F_206A_206D_206F_206D_202E_202D_206A_200F_206E_206C_202E_202A_206C_202B_202A_202A_202E(ImGuiCol.ButtonActive, new Vector4(0.4f, 0.35f, 0.5f, 1f), true); - try + using (ImRaii.PushColor(ImGuiCol.ButtonActive, new Vector4(0.4f, 0.35f, 0.5f, 1f))) { - bool flag2 = _206F_200D_206B_200B_202B_206A_206C_206B_200B_206D_200F_200D_202E_206B_206F_200B_202A_206E_200B_206C_200C_200D_206D_200E_202D_206D_202D_202B_200C_200B_206C_202C_206F_202A_200E_200C_206B_206F_202D_200E_202E(FontAwesomeIcon.Search, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1685583443), (Vector4?)null, (Vector4?)null, (Vector4?)null, (Vector2?)null); - int num3 = (flag2 ? 1 : 0); - int num4 = (flag ? 1 : 0); - num = (((num4 & num3) + (num4 ^ num3) == 0) ? (-688250819) : (-688250822)); - ushort result = default(ushort); - while (true) + bool flag2 = ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Search, "Search"); + if (flag || flag2) { - int num10 = num; - num3 = -688250823; - num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) + if (ushort.TryParse(_questLookupInput, out var result)) + { + _lookedUpQuestId = new QuestId(result); + } + else { - case 1: _lookedUpQuestId = null; - num = -688250819; - break; - case 3: - num = ((!ushort.TryParse(_questLookupInput, out result)) ? (-688250824) : (-688250821)); - break; - case 0: - num = -688250822; - break; - case 2: - _lookedUpQuestId = _206F_202A_200B_206F_202C_202B_200E_202C_206C_200F_200E_206D_202E_206D_202B_202E_202C_202C_200B_202B_202B_206E_202A_200F_202C_202A_200B_200D_206D_202D_202A_206B_202C_206B_206D_200B_206C_200D_206C_200D_202E(result); - goto end_IL_038b; - case 4: - goto end_IL_038b; } - continue; - end_IL_038b: - break; - } - } - finally - { - num = ((colorDisposable6 == null) ? 1463431846 : 1463431845); - while (true) - { - int num13 = num; - int num3 = 1463431844; - int num4 = num13; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_044c; - case 1: - _200C_202E_206A_206C_206B_206B_200B_200D_206C_200E_206B_200C_206A_200C_200B_202A_200C_202C_200D_200E_206D_200B_200E_206F_200D_206F_206D_200C_202C_206B_200F_206A_200D_202D_206B_202D_200F_200C_202B_206F_202E((IDisposable)colorDisposable6); - num = 1463431846; - break; - case 0: - num = 1463431845; - break; - } - continue; - end_IL_044c: - break; } } } - finally - { - num = ((colorDisposable5 == null) ? 1672099567 : 1672099564); - while (true) - { - int num14 = num; - int num3 = 1672099565; - int num4 = num14; - int num15 = num4 + num3; - int num16 = num4 & num3; - switch (num15 - (num16 + num16)) - { - case 0: - num = 1672099564; - break; - case 2: - goto end_IL_04b7; - case 1: - _200C_202E_206A_206C_206B_206B_200B_200D_206C_200E_206B_200C_206A_200C_200B_202A_200C_202C_200D_200E_206D_200B_200E_206F_200D_206F_206D_200C_202C_206B_200F_206A_200D_202D_206B_202D_200F_200C_202B_206F_202E((IDisposable)colorDisposable5); - num = 1672099567; - break; - } - continue; - end_IL_04b7: - break; - } - } } - finally - { - num = ((colorDisposable4 == null) ? 1061432150 : 1061432149); - while (true) - { - int num17 = num; - int num3 = 1061432151; - int num4 = num17; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1061432149; - break; - case 2: - _200C_202E_206A_206C_206B_206B_200B_200D_206C_200E_206B_200C_206A_200C_200B_202A_200C_202C_200D_200E_206D_200B_200E_206F_200D_206F_206D_200C_202C_206B_200F_206A_200D_202D_206B_202D_200F_200C_202B_206F_202E((IDisposable)colorDisposable4); - num = 1061432150; - break; - case 1: - goto end_IL_0524; - } - continue; - end_IL_0524: - break; - } - } - } - finally - { - num = ((colorDisposable3 == null) ? 1572938025 : 1572938026); - while (true) - { - int num18 = num; - int num3 = 1572938027; - int num4 = num18; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1572938026; - break; - case 1: - _200C_202E_206A_206C_206B_206B_200B_200D_206C_200E_206B_200C_206A_200C_200B_202A_200C_202C_200D_200E_206D_200B_200E_206F_200D_206F_206D_200C_202C_206B_200F_206A_200D_202D_206B_202D_200F_200C_202B_206F_202E((IDisposable)colorDisposable3); - num = 1572938025; - break; - case 2: - goto end_IL_058f; - } - continue; - end_IL_058f: - break; - } - } - } - finally - { - num = ((colorDisposable2 == null) ? (-1890235398) : (-1890235399)); - while (true) - { - int num19 = num; - int num3 = -1890235400; - int num4 = num19; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1890235399; - break; - case 1: - _200C_202E_206A_206C_206B_206B_200B_200D_206C_200E_206B_200C_206A_200C_200B_202A_200C_202C_200D_200E_206D_200B_200E_206F_200D_206F_206D_200C_202C_206B_200F_206A_200D_202D_206B_202D_200F_200C_202B_206F_202E((IDisposable)colorDisposable2); - num = -1890235398; - break; - case 2: - goto end_IL_05fa; - } - continue; - end_IL_05fa: - break; } } } - finally + ImGui.SetCursorPosY(ImGui.GetCursorPosY() + ImGui.GetStyle().ItemSpacing.Y * 1.5f); + ImGui.Spacing(); + ImGui.Spacing(); + if (_lookedUpQuestId != null) { - num = ((colorDisposable == null) ? 193392893 : 193392892); - while (true) - { - int num20 = num; - int num3 = 193392893; - int num4 = num20; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 193392892; - break; - case 1: - _200C_202E_206A_206C_206B_206B_200B_200D_206C_200E_206B_200C_206A_200C_200B_202A_200C_202C_200D_200E_206D_200B_200E_206F_200D_206F_206D_200C_202C_206B_200F_206A_200D_202D_206B_202D_200F_200C_202B_206F_202E((IDisposable)colorDisposable); - num = 193392893; - break; - case 0: - goto end_IL_0665; - } - continue; - end_IL_0665: - break; - } - } - _202C_206E_206D_200E_206E_200F_206D_206F_200B_202A_200B_202D_202C_206D_202B_202D_200D_200F_202B_200E_202A_200D_200B_206B_202C_202B_200D_202A_202D_202B_202B_206D_206D_206A_202A_202C_200B_206A_200C_206C_202E(_206E_200C_200C_202E_206F_202E_200F_200E_200F_206F_206B_206B_206A_202B_202B_202D_202D_206F_206E_200B_206F_200F_200D_200D_206E_200E_206D_206E_206C_206D_206E_202B_200B_200D_206A_206D_206D_202C_202D_202E_202E() + _200B_202B_202D_202E_206C_206A_200C_202C_206D_202A_206D_206B_202E_202E_206C_202C_200D_206B_206D_202E_206F_202A_200C_202A_206F_206F_206D_206A_202D_200E_202E_202B_206C_206B_206C_206A_202E_202B_200F_206F_202E().ItemSpacing.Y * 1.5f); - _206D_200C_200F_206A_206D_206E_202E_200F_206D_206B_202B_200C_200E_200D_206B_202D_202B_200D_202B_202D_202A_200C_202A_206A_200C_200B_200B_200C_202D_200E_202B_202B_202B_206D_206E_202E_206E_200D_200C_202D_202E(); - _206D_200C_200F_206A_206D_206E_202E_200F_206D_206B_202B_200C_200E_200D_206B_202D_202B_200D_202B_202D_202A_200C_202A_206A_200C_200B_200B_200C_202D_200E_202B_202B_202B_206D_206E_202E_206E_200D_200C_202D_202E(); - num = ((!_200E_206C_206B_200D_206C_200B_206B_206D_202C_206C_206C_206A_206D_202A_200F_206E_200D_200E_200C_202E_202A_200B_206B_206F_202C_200F_200F_200B_206C_202C_206A_200D_200F_206D_206C_206C_206F_200B_200B_206E_202E(_lookedUpQuestId, (ElementId)null)) ? (-1802651693) : (-1802651696)); - while (true) - { - int num21 = num; - int num3 = -1802651694; - int num4 = num21; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - { - string title = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1963178389); - string message = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1869992260); - accentColor = UiThemeUtils.AccentColor; - accentColor.W = 0.7f; - DrawEmptyState(FontAwesomeIcon.Search, title, message, accentColor); - return; - } - case 2: - DrawQuestSequences(_lookedUpQuestId, null); - return; - case 0: - goto IL_077f; - } - continue; - IL_077f: - num = -1802651696; + DrawQuestSequences(_lookedUpQuestId, null); + return; } + accentColor = UiThemeUtils.AccentColor; + accentColor.W = 0.7f; + DrawEmptyState(FontAwesomeIcon.Search, "Enter a Quest ID", "Use the search box above to look up any quest by its ID.", accentColor); } private static void DrawEmptyState(FontAwesomeIcon icon, string title, string message, Vector4 iconColor) { - float y = _200C_206F_200C_202D_206F_200C_202E_202A_200F_206A_200D_206B_206D_206C_202C_200C_202E_200C_200F_206C_200C_202D_206D_200D_206C_202B_202C_202B_202E_206C_202C_202C_202E_200D_206D_206A_202B_202A_202C_202A_202E().Y; - float x = _200C_206F_200C_202D_206F_200C_202E_202A_200F_206A_200D_206B_206D_206C_202C_200C_202E_200C_200F_206C_200C_202D_206D_200D_206C_202B_202C_202B_202E_206C_202C_202C_202E_200D_206D_206A_202B_202A_202C_202A_202E().X; - _202C_206E_206D_200E_206E_200F_206D_206F_200B_202A_200B_202D_202C_206D_202B_202D_200D_200F_202B_200E_202A_200D_200B_206B_202C_202B_200D_202A_202D_202B_202B_206D_206D_206A_202A_202C_200B_206A_200C_206C_202E(_206E_200C_200C_202E_206F_202E_200F_200E_200F_206F_206B_206B_206A_202B_202B_202D_202D_206F_206E_200B_206F_200F_200D_200D_206E_200E_206D_206E_206C_206D_206E_202B_200B_200D_206A_206D_206D_202C_202D_202E_202E() + y * 0.25f); - Vector2 vector = _202D_202C_202D_200B_202E_200F_206E_206C_206C_200B_200E_202C_202A_200E_206D_200F_206D_206B_206B_202B_206B_206F_206C_202E_206B_202D_200F_200F_202D_202C_206F_206A_206D_206D_200C_200D_202D_200E_202E_206C_202E(); - _202E_202D_202E_206D_206B_206F_202E_202D_200F_206C_200F_202B_206B_202D_206B_200D_206B_206A_202E_200B_202B_202E_200F_202A_200C_200D_206B_202B_206B_206D_202A_206A_206D_202B_200B_206C_202A_206E_202A_206E_202E(_200D_206C_200F_202A_202E_206D_206E_202E_202A_206C_202C_202C_200C_202C_206D_202D_206F_200C_206F_200B_206A_200C_202A_200B_206E_202C_206D_202E_202A_200D_200F_200B_202B_202C_202C_206E_200F_200C_202A_202A_202E()); - string text = _200F_200C_206B_200B_206C_200E_206F_206C_206D_206A_200E_202B_206B_206E_202A_206C_202D_202E_200D_206E_202E_202A_206D_200B_206B_202C_202A_206A_206E_206D_202C_200F_206D_206E_202C_200E_202D_206F_200D_200C_202E(icon); - Vector2 vector2 = _202B_206A_202C_206B_206F_206E_200F_206B_202B_206F_202D_206B_202E_206B_202A_202E_206F_202D_200F_202B_206B_200F_200D_200E_206C_200C_200C_200E_206C_200E_206E_206A_206D_200F_200F_202C_200C_206D_206F_200D_202E((ImU8String)text, false, -1f); - vector2 *= 2.5f; - ImDrawListPtr imDrawListPtr = _206E_200C_200E_206F_200D_200D_202A_206B_202D_202D_206F_202C_200D_200C_200D_200F_200B_202A_206C_206B_202C_200E_202E_206A_206A_202C_202B_200E_206B_200C_206F_200C_200B_200B_206B_200E_200F_206E_200D_206D_202E(); - Vector2 vector3 = new Vector2(x * 0.5f, 0f) + vector + new Vector2(0f, vector2.Y * 0.5f); - int num = 3; - int num2 = 61091441; - while (true) + float y = ImGui.GetContentRegionAvail().Y; + float x = ImGui.GetContentRegionAvail().X; + ImGui.SetCursorPosY(ImGui.GetCursorPosY() + y * 0.25f); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + ImGui.PushFont(UiBuilder.IconFont); + string text = icon.ToIconString(); + Vector2 vector = ImGui.CalcTextSize(text); + vector *= 2.5f; + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 vector2 = new Vector2(x * 0.5f, 0f) + cursorScreenPos + new Vector2(0f, vector.Y * 0.5f); + for (int num = 3; num > 0; num--) { - int num3 = num2; - int num4 = 61091442; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 0: - num2 = 61091441; - break; - case 3: - num2 = ((num > 0) ? 61091443 : 61091440); - break; - case 2: - { - _202B_206F_200B_206F_206E_206B_200B_200C_200C_200C_200D_206C_206D_202C_202B_200F_206A_202A_202D_200D_206B_206C_206A_200B_206B_206D_200B_206A_202E_206F_206D_200F_200B_206B_202D_206D_202B_200F_202D_206C_202E(vector3 - vector2 * 0.5f); - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref iconColor, (ImU8String)text); - _206A_202D_200F_202E_202E_200C_202C_206C_202A_200C_206F_206E_200B_206F_202B_202E_200E_202B_200F_206A_206E_202E_202E_202D_200E_202D_202C_202C_202D_206E_200E_200E_202B_206F_200C_200F_200F_206B_206E_202B_202E(); - _202C_206E_206D_200E_206E_200F_206D_206F_200B_202A_200B_202D_202C_206D_202B_202D_200D_200F_202B_200E_202A_200D_200B_206B_202C_202B_200D_202A_202D_202B_202B_206D_206D_206A_202A_202C_200B_206A_200C_206C_202E(_206E_200C_200C_202E_206F_202E_200F_200E_200F_206F_206B_206B_206A_202B_202B_202D_202D_206F_206E_200B_206F_200F_200D_200D_206E_200E_206D_206E_206C_206D_206E_202B_200B_200D_206A_206D_206D_202C_202D_202E_202E() + vector2.Y * 0.5f + 20f); - Vector2 vector5 = _202B_206A_202C_206B_206F_206E_200F_206B_202B_206F_202D_206B_202E_206B_202A_202E_206F_202D_200F_202B_206B_200F_200D_200E_206C_200C_200C_200E_206C_200E_206E_206A_206D_200F_200F_202C_200C_206D_206F_200D_202E((ImU8String)title, false, -1f); - Vector2 vector6 = new Vector2((x - vector5.X) * 0.5f, 0f) + _202D_202C_202D_200B_202E_200F_206E_206C_206C_200B_200E_202C_202A_200E_206D_200F_206D_206B_206B_202B_206B_206F_206C_202E_206B_202D_200F_200F_202D_202C_206F_206A_206D_206D_200C_200D_202D_200E_202E_206C_202E(); - imDrawListPtr.AddText(vector6 + new Vector2(1f, 1f), _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(new Vector4(0f, 0f, 0f, 0.5f)), title); - _202C_206D_200E_200B_200B_202D_206A_200F_200E_202B_206B_200D_200E_200F_206D_206B_206B_202B_202C_200E_206C_200C_206F_200E_202A_200B_206E_202B_202A_206F_206A_202D_206B_206B_202E_202C_206E_202D_200C_202C_202E((x - vector5.X) * 0.5f); - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref UiThemeUtils.PrimaryTextColor, (ImU8String)title); - _206D_200C_200F_206A_206D_206E_202E_200F_206D_206B_202B_200C_200E_200D_206B_202D_202B_200D_202B_202D_202A_200C_202A_206A_200C_200B_200B_200C_202D_200E_202B_202B_202B_206D_206E_202E_206E_200D_200C_202D_202E(); - _206D_200C_200F_206A_206D_206E_202E_200F_206D_206B_202B_200C_200E_200D_206B_202D_202B_200D_202B_202D_202A_200C_202A_206A_200C_200B_200B_200C_202D_200E_202B_202B_202B_206D_206E_202E_206E_200D_200C_202D_202E(); - _202C_206D_200E_200B_200B_202D_206A_200F_200E_202B_206B_200D_200E_200F_206D_206B_206B_202B_202C_200E_206C_200C_206F_200E_202A_200B_206E_202B_202A_206F_206A_202D_206B_206B_202E_202C_206E_202D_200C_202C_202E(_202A_200E_206E_202A_202C_200B_200F_200D_206A_200C_200F_206D_200E_202C_206B_206E_206D_200D_200C_206E_206D_206B_200F_206A_206A_200E_206E_202E_200F_200E_202B_200F_200D_206A_202E_202E_200C_202B_202D_200E_202E(0f, (x - _202B_206A_202C_206B_206F_206E_200F_206B_202B_206F_202D_206B_202E_206B_202A_202E_206F_202D_200F_202B_206B_200F_200D_200E_206C_200C_200C_200E_206C_200E_206E_206A_206D_200F_200F_202C_200C_206D_206F_200D_202E((ImU8String)message, false, -1f).X) * 0.5f)); - UiThemeUtils.WrappedTextColored(UiThemeUtils.DimTextColor, message); - return; - } - case 1: - { - Vector4 vector4 = new Vector4(iconColor.X, iconColor.Y, iconColor.Z, iconColor.W * 0.1f * (float)num); - _202B_206F_200B_206F_206E_206B_200B_200C_200C_200C_200D_206C_206D_202C_202B_200F_206A_202A_202D_200D_206B_206C_206A_200B_206B_206D_200B_206A_202E_206F_206D_200F_200B_206B_202D_206D_202B_200F_202D_206C_202E(vector3 - vector2 * 0.5f - new Vector2(num * 2, num * 2)); - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref vector4, (ImU8String)text); - int num8 = num; - num4 = 1; - num5 = num8; - num = ~(~num5 + num4); - num2 = 61091441; - break; - } - } + Vector4 col = new Vector4(iconColor.X, iconColor.Y, iconColor.Z, iconColor.W * 0.1f * (float)num); + ImGui.SetCursorScreenPos(vector2 - vector * 0.5f - new Vector2(num * 2, num * 2)); + ImGui.TextColored(in col, text); } + ImGui.SetCursorScreenPos(vector2 - vector * 0.5f); + ImGui.TextColored(in iconColor, text); + ImGui.PopFont(); + ImGui.SetCursorPosY(ImGui.GetCursorPosY() + vector.Y * 0.5f + 20f); + Vector2 vector3 = ImGui.CalcTextSize(title); + Vector2 vector4 = new Vector2((x - vector3.X) * 0.5f, 0f) + ImGui.GetCursorScreenPos(); + windowDrawList.AddText(vector4 + new Vector2(1f, 1f), ImGui.ColorConvertFloat4ToU32(new Vector4(0f, 0f, 0f, 0.5f)), title); + ImGui.SetCursorPosX((x - vector3.X) * 0.5f); + ImGui.TextColored(in UiThemeUtils.PrimaryTextColor, title); + ImGui.Spacing(); + ImGui.Spacing(); + ImGui.SetCursorPosX(MathF.Max(0f, (x - ImGui.CalcTextSize(message).X) * 0.5f)); + UiThemeUtils.WrappedTextColored(UiThemeUtils.DimTextColor, message); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawQuestSequences(ElementId questElementId, byte? currentSequence) { - QuestId questId = questElementId as QuestId; - int num = (((object)questId != null) ? (-1912268142) : (-1912268139)); - Vector2 vector = default(Vector2); - float num20 = default(float); - float x = default(float); - IQuestInfo questInfo = default(IQuestInfo); - float reservedRightWidth = default(float); - Questionable.Model.Quest quest2 = default(Questionable.Model.Quest); - int num25 = default(int); - List<int> list = default(List<int>); - int num27 = default(int); - bool flag2 = default(bool); - HashSet<int> hashSet = default(HashSet<int>); - Dictionary<int, (int, string)> dictionary = default(Dictionary<int, (int, string)>); - bool flag = default(bool); - QuestSequence current = default(QuestSequence); - float num32 = default(float); - while (true) + if (!(questElementId is QuestId questId)) { - int num2 = num; - int num3 = -1912268144; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + DrawErrorState("Invalid Quest ID Type", "This viewer only supports regular quest IDs."); + return; + } + if (!_questData.TryGetQuestInfo(questElementId, out IQuestInfo questInfo)) + { + DrawErrorState($"Quest {questId.Value} Not Found", "This quest ID does not exist in the game data."); + return; + } + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + float num = ImGui.GetFrameHeightWithSpacing() * 1.8f; + float x = ImGui.GetContentRegionAvail().X; + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + windowDrawList.AddRectFilledMultiColor(cursorScreenPos, cursorScreenPos + new Vector2(x, num), ImGui.ColorConvertFloat4ToU32(UiThemeUtils.CardBackgroundColor), ImGui.ColorConvertFloat4ToU32(UiThemeUtils.CardBackgroundColor), ImGui.ColorConvertFloat4ToU32(UiThemeUtils.CardBackgroundColor), ImGui.ColorConvertFloat4ToU32(UiThemeUtils.CardBackgroundColor)); + Vector2 pMin = cursorScreenPos; + Vector2 pMax = cursorScreenPos + new Vector2(x, num); + Vector4 accentColor = UiThemeUtils.AccentColor; + accentColor.W = 0.25f; + windowDrawList.AddRect(pMin, pMax, ImGui.ColorConvertFloat4ToU32(accentColor), 4f, ImDrawFlags.None, 1f); + float textLineHeight = ImGui.GetTextLineHeight(); + float num2 = (num - textLineHeight) * 0.5f; + ImGui.SetCursorPosY(ImGui.GetCursorPosY() + num2); + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + 10f); + ImGui.PushFont(UiBuilder.IconFont); + ImGui.TextColored(in UiThemeUtils.AccentColor, FontAwesomeIcon.Book.ToIconString()); + ImGui.PopFont(); + ImGui.SameLine(); + float x2 = ImGui.GetStyle().ItemSpacing.X; + ImU8String text = new ImU8String(6, 1); + text.AppendLiteral("(ID: "); + text.AppendFormatted(questId.Value); + text.AppendLiteral(")"); + float num3 = ImGui.CalcTextSize(text).X + x2 + 8f + ImGui.GetFrameHeight() + x2; + if (currentSequence.HasValue) + { + float num4 = num3; + float num5 = ImGui.CalcTextSize("-").X + x2 * 2f; + ImU8String text2 = new ImU8String(17, 1); + text2.AppendLiteral("Active: Sequence "); + text2.AppendFormatted(currentSequence.Value); + num3 = num4 + (num5 + ImGui.CalcTextSize(text2).X + x2); + } + num3 += 12f; + UiThemeUtils.RowLabel(questInfo.Name, num3, UiThemeUtils.PrimaryTextColor); + ImGui.SameLine(); + ImU8String text3 = new ImU8String(6, 1); + text3.AppendLiteral("(ID: "); + text3.AppendFormatted(questId.Value); + text3.AppendLiteral(")"); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text3); + ImGui.SameLine(); + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + 8f); + using (ImRaii.PushColor(ImGuiCol.Button, new Vector4(0.18f, 0.16f, 0.22f, 0.8f))) + { + using (ImRaii.PushColor(ImGuiCol.ButtonHovered, new Vector4(0.28f, 0.24f, 0.32f, 0.95f))) { - case 6: - num = -1912268139; - break; - case 3: - { - vector = _202D_202C_202D_200B_202E_200F_206E_206C_206C_200B_200E_202C_202A_200E_206D_200F_206D_206B_206B_202B_206B_206F_206C_202E_206B_202D_200F_200F_202D_202C_206F_206A_206D_206D_200C_200D_202D_200E_202E_206C_202E(); - num20 = _200B_206E_202A_206F_206E_206B_206B_202E_202C_200C_200F_206D_200E_206F_200F_202D_206D_200D_206C_206C_206A_200D_200D_202E_206C_206C_206B_206D_200D_202E_202A_202B_202B_200C_202E_200D_206A_206B_202A_202D_202E() * 1.8f; - float x2 = _200C_206F_200C_202D_206F_200C_202E_202A_200F_206A_200D_206B_206D_206C_202C_200C_202E_200C_200F_206C_200C_202D_206D_200D_206C_202B_202C_202B_202E_206C_202C_202C_202E_200D_206D_206A_202B_202A_202C_202A_202E().X; - ImDrawListPtr imDrawListPtr = _206E_200C_200E_206F_200D_200D_202A_206B_202D_202D_206F_202C_200D_200C_200D_200F_200B_202A_206C_206B_202C_200E_202E_206A_206A_202C_202B_200E_206B_200C_206F_200C_200B_200B_206B_200E_200F_206E_200D_206D_202E(); - imDrawListPtr.AddRectFilledMultiColor(vector, vector + new Vector2(x2, num20), _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(UiThemeUtils.CardBackgroundColor), _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(UiThemeUtils.CardBackgroundColor), _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(UiThemeUtils.CardBackgroundColor), _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(UiThemeUtils.CardBackgroundColor)); - Vector2 pMin = vector; - Vector2 pMax = vector + new Vector2(x2, num20); - Vector4 accentColor = UiThemeUtils.AccentColor; - accentColor.W = 0.25f; - imDrawListPtr.AddRect(pMin, pMax, _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(accentColor), 4f, ImDrawFlags.None, 1f); - float num38 = _200F_202A_206E_200C_202C_202D_206C_206C_202B_206E_202B_202B_202C_206D_206C_200C_206B_206A_206D_206D_202E_200B_206A_206C_202E_200F_200D_206A_200B_202E_200D_202D_200E_206E_200B_202D_206B_206A_206E_206D_202E(); - float num39 = (num20 - num38) * 0.5f; - _202C_206E_206D_200E_206E_200F_206D_206F_200B_202A_200B_202D_202C_206D_202B_202D_200D_200F_202B_200E_202A_200D_200B_206B_202C_202B_200D_202A_202D_202B_202B_206D_206D_206A_202A_202C_200B_206A_200C_206C_202E(_206E_200C_200C_202E_206F_202E_200F_200E_200F_206F_206B_206B_206A_202B_202B_202D_202D_206F_206E_200B_206F_200F_200D_200D_206E_200E_206D_206E_206C_206D_206E_202B_200B_200D_206A_206D_206D_202C_202D_202E_202E() + num39); - _202C_206D_200E_200B_200B_202D_206A_200F_200E_202B_206B_200D_200E_200F_206D_206B_206B_202B_202C_200E_206C_200C_206F_200E_202A_200B_206E_202B_202A_206F_206A_202D_206B_206B_202E_202C_206E_202D_200C_202C_202E(_206F_206D_206B_206B_202D_202A_202A_200F_200B_202E_206B_200B_206B_202A_202D_200E_200D_206F_206E_206D_206E_206E_206A_206E_200E_206C_200C_206C_200B_202B_206E_202D_200D_206E_202D_200D_206F_206D_206B_202B_202E() + 10f); - _202E_202D_202E_206D_206B_206F_202E_202D_200F_206C_200F_202B_206B_202D_206B_200D_206B_206A_202E_200B_202B_202E_200F_202A_200C_200D_206B_202B_206B_206D_202A_206A_206D_202B_200B_206C_202A_206E_202A_206E_202E(_200D_206C_200F_202A_202E_206D_206E_202E_202A_206C_202C_202C_200C_202C_206D_202D_206F_200C_206F_200B_206A_200C_202A_200B_206E_202C_206D_202E_202A_200D_200F_200B_202B_202C_202C_206E_200F_200C_202A_202A_202E()); - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref UiThemeUtils.AccentColor, (ImU8String)_200F_200C_206B_200B_206C_200E_206F_206C_206D_206A_200E_202B_206B_206E_202A_206C_202D_202E_200D_206E_202E_202A_206D_200B_206B_202C_202A_206A_206E_206D_202C_200F_206D_206E_202C_200E_202D_206F_200D_200C_202E(FontAwesomeIcon.Book)); - _206A_202D_200F_202E_202E_200C_202C_206C_202A_200C_206F_206E_200B_206F_202B_202E_200E_202B_200F_206A_206E_202E_202E_202D_200E_202D_202C_202C_202D_206E_200E_200E_202B_206F_200C_200F_200F_206B_206E_202B_202E(); - _200E_202D_200B_206E_200E_200D_202D_202B_202D_206F_206B_206A_202A_202A_206F_206B_200D_200F_200E_202C_206C_200B_206C_200E_200E_202E_200C_206C_202D_202A_206E_206B_200C_202D_200F_202C_206C_202C_202E_200D_202E(); - x = _200B_202B_202D_202E_206C_206A_200C_202C_206D_202A_206D_206B_202E_202E_206C_202C_200D_206B_206D_202E_206F_202A_200C_202A_206F_206F_206D_206A_202D_200E_202E_202B_206C_206B_206C_206A_202E_202B_200F_206F_202E().ItemSpacing.X; - ImU8String imU8String4 = new ImU8String(6, 1); - imU8String4.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1059552440)); - imU8String4.AppendFormatted(_200E_202C_202B_202A_202B_200B_202A_200D_200D_206F_200D_202D_206E_206F_202C_206E_202A_200E_202C_206B_200B_206B_200F_206A_200E_202C_206A_202B_206F_206E_200E_202E_206A_206A_200B_200C_202C_206E_202D_200D_202E((ElementId)questId)); - imU8String4.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346)); - reservedRightWidth = _202B_206A_202C_206B_206F_206E_200F_206B_202B_206F_202D_206B_202E_206B_202A_202E_206F_202D_200F_202B_206B_200F_200D_200E_206C_200C_200C_200E_206C_200E_206E_206A_206D_200F_200F_202C_200C_206D_206F_200D_202E(imU8String4, false, -1f).X + x + 8f + _202E_206A_206A_206E_200D_202C_206B_200B_206B_206D_206C_202C_206D_206C_202B_202E_202D_206E_202C_206F_202A_202B_200B_202E_206A_206F_202C_206C_200B_202D_206A_202B_202C_206A_202B_200E_202B_202D_206C_206C_202E() + x; - num = ((!currentSequence.HasValue) ? (-1912268144) : (-1912268143)); - break; + using (ImRaii.PushColor(ImGuiCol.ButtonActive, new Vector4(0.35f, 0.3f, 0.45f, 1f))) + { + if (ImGuiComponents.IconButton(FontAwesomeIcon.Copy)) + { + ImGui.SetClipboardText(GetSequenceFilename(questId.Value, questInfo.Name)); + } + if (ImGui.IsItemHovered()) + { + ImGui.SetTooltip("Copies filename as QuestID_QuestNameWithSpaces.json"); + } + } } - case 2: - num = (_questData.TryGetQuestInfo(questElementId, out questInfo) ? (-1912268141) : (-1912268140)); - break; - case 1: + } + if (currentSequence.HasValue) + { + ImGui.SameLine(); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, "-"); + ImGui.SameLine(); + float num6 = (float)ImGui.GetTime(); + float num7 = 0.85f + MathF.Sin(num6 * 3f) * 0.15f; + accentColor = new Vector4(0.5f * num7, 1f * num7, 0.6f * num7, 1f); + ImU8String text4 = new ImU8String(17, 1); + text4.AppendLiteral("Active: Sequence "); + text4.AppendFormatted(currentSequence.Value); + ImGui.TextColored(in accentColor, text4); + } + ImGui.SetCursorPosY(cursorScreenPos.Y + num - ImGui.GetCursorScreenPos().Y + ImGui.GetCursorPosY()); + ImGui.Spacing(); + try + { + Lumina.Excel.Sheets.Quest? quest = _dataManager.GetExcelSheet<Lumina.Excel.Sheets.Quest>()?.GetRowOrDefault((uint)(questId.Value + 65536)); + if (!quest.HasValue) { - float num36 = reservedRightWidth; - float num37 = _202B_206A_202C_206B_206F_206E_200F_206B_202B_206F_202D_206B_202E_206B_202A_202E_206F_202D_200F_202B_206B_200F_200D_200E_206C_200C_200C_200E_206C_200E_206E_206A_206D_200F_200F_202C_200C_206D_206F_200D_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1228468769), false, -1f).X + x * 2f; - ImU8String imU8String3 = new ImU8String(17, 1); - imU8String3.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(257374063)); - imU8String3.AppendFormatted(currentSequence.Value); - reservedRightWidth = num36 + (num37 + _202B_206A_202C_206B_206F_206E_200F_206B_202B_206F_202D_206B_202E_206B_202A_202E_206F_202D_200F_202B_206B_200F_200D_200E_206C_200C_200C_200E_206C_200E_206E_206A_206D_200F_200F_202C_200C_206D_206F_200D_202E(imU8String3, false, -1f).X + x); - num = -1912268144; - break; - } - case 5: - DrawErrorState(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(301642767), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-21193391)); - return; - case 4: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(16, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1802346331)); - defaultInterpolatedStringHandler.AppendFormatted(_200E_202C_202B_202A_202B_200B_202A_200D_200D_206F_200D_202D_206E_206F_202C_206E_202A_200E_202C_206B_200B_206B_200F_206A_200E_202C_206A_202B_206F_206E_200E_202E_206A_206A_200B_200C_202C_206E_202D_200D_202E((ElementId)questId)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(790425552)); - DrawErrorState(defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1239783135)); + DrawErrorState("Quest Not Found in Game Data", "Unable to load quest information from Lumina."); return; } - case 0: + List<int> list = (from result in quest.Value.TodoParams.Where((Lumina.Excel.Sheets.Quest.TodoParamsStruct todoParamsStruct) => todoParamsStruct.ToDoCompleteSeq > 0 && todoParamsStruct.ToDoCompleteSeq < byte.MaxValue).Select((Func<Lumina.Excel.Sheets.Quest.TodoParamsStruct, int>)((Lumina.Excel.Sheets.Quest.TodoParamsStruct todoParamsStruct) => todoParamsStruct.ToDoCompleteSeq)).Distinct() + orderby result + select result).ToList(); + if (list.Count == 0) { - reservedRightWidth += 12f; - UiThemeUtils.RowLabel(questInfo.Name, reservedRightWidth, UiThemeUtils.PrimaryTextColor); - _200E_202D_200B_206E_200E_200D_202D_202B_202D_206F_206B_206A_202A_202A_206F_206B_200D_200F_200E_202C_206C_200B_206C_200E_200E_202E_200C_206C_202D_202A_206E_206B_200C_202D_200F_202C_206C_202C_202E_200D_202E(); - ImU8String imU8String = new ImU8String(6, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1253477708)); - imU8String.AppendFormatted(_200E_202C_202B_202A_202B_200B_202A_200D_200D_206F_200D_202D_206E_206F_202C_206E_202A_200E_202C_206B_200B_206B_200F_206A_200E_202C_206A_202B_206F_206E_200E_202E_206A_206A_200B_200C_202C_206E_202D_200D_202E((ElementId)questId)); - imU8String.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref UiThemeUtils.DimTextColor, imU8String); - _200E_202D_200B_206E_200E_200D_202D_202B_202D_206F_206B_206A_202A_202A_206F_206B_200D_200F_200E_202C_206C_200B_206C_200E_200E_202E_200C_206C_202D_202A_206E_206B_200C_202D_200F_202C_206C_202C_202E_200D_202E(); - _202C_206D_200E_200B_200B_202D_206A_200F_200E_202B_206B_200D_200E_200F_206D_206B_206B_202B_202C_200E_206C_200C_206F_200E_202A_200B_206E_202B_202A_206F_206A_202D_206B_206B_202E_202C_206E_202D_200C_202C_202E(_206F_206D_206B_206B_202D_202A_202A_200F_200B_202E_206B_200B_206B_202A_202D_200E_200D_206F_206E_206D_206E_206E_206A_206E_200E_206C_200C_206C_200B_202B_206E_202D_200D_206E_202D_200D_206F_206D_206B_202B_202E() + 8f); - ImRaii.ColorDisposable colorDisposable = _202C_206F_200D_202A_202B_206A_200F_206E_206E_202A_200B_202B_200B_200B_206C_202D_206B_202B_202D_206E_206E_200E_206F_206A_206D_206F_206D_202E_202D_206A_200F_206E_206C_202E_202A_206C_202B_202A_202A_202E(ImGuiCol.Button, new Vector4(0.18f, 0.16f, 0.22f, 0.8f), true); - try + DrawErrorState("No Sequence Data Available", "This quest may not have traditional sequences."); + return; + } + int num8 = list.Max(); + int num9 = num8 + 1; + Questionable.Model.Quest quest2; + bool flag = _questRegistry.TryGetQuest(questElementId, out quest2); + HashSet<int> hashSet = new HashSet<int>(); + Dictionary<int, (int, string)> dictionary = new Dictionary<int, (int, string)>(); + bool flag2 = false; + if (flag && quest2 != null && quest2.Root.QuestSequence.Count > 0) + { + foreach (QuestSequence item in quest2.Root.QuestSequence) { - ImRaii.ColorDisposable colorDisposable2 = _202C_206F_200D_202A_202B_206A_200F_206E_206E_202A_200B_202B_200B_200B_206C_202D_206B_202B_202D_206E_206E_200E_206F_206A_206D_206F_206D_202E_202D_206A_200F_206E_206C_202E_202A_206C_202B_202A_202A_202E(ImGuiCol.ButtonHovered, new Vector4(0.28f, 0.24f, 0.32f, 0.95f), true); - try + if (item.Sequence == byte.MaxValue) { - ImRaii.ColorDisposable colorDisposable3 = _202C_206F_200D_202A_202B_206A_200F_206E_206E_202A_200B_202B_200B_200B_206C_202D_206B_202B_202D_206E_206E_200E_206F_206A_206D_206F_206D_202E_202D_206A_200F_206E_206C_202E_202A_206C_202B_202A_202A_202E(ImGuiCol.ButtonActive, new Vector4(0.35f, 0.3f, 0.45f, 1f), true); - try - { - num = ((!_202A_206F_200B_200B_206D_200E_206D_200D_206A_200D_202D_206D_200C_202C_206B_202A_206F_202B_206E_206A_200B_200E_206D_200D_200B_206F_202A_202B_200B_202A_200B_206E_206D_202C_202E_200B_202A_202B_206E_200E_202E(FontAwesomeIcon.Copy)) ? 1239132686 : 1239132680); - while (true) - { - int num7 = num; - num3 = 1239132682; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - _202A_202A_200D_206D_206F_202D_200B_206B_202A_200F_200C_200E_202B_206A_202B_202E_200F_202D_206A_206C_200E_202C_200C_202D_200D_206B_206C_202B_206D_206E_200D_202A_206C_200C_206F_200D_202D_206E_200F_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-115218622)); - num = 1239132683; - break; - case 4: - num = ((!_200D_202E_200E_206F_202D_200F_202A_206F_206C_206C_202B_206E_202A_202B_202C_202E_202E_200D_202E_206E_200C_200E_200E_202D_202D_202D_206A_206D_206D_206B_202C_200C_200D_200D_200F_206E_202B_206A_206A_202C_202E()) ? 1239132683 : 1239132682); - break; - case 2: - _206E_206B_200E_206B_206C_202E_200E_200E_202A_200F_202C_202B_200E_200D_206E_202A_200C_206D_202D_206A_206D_200C_206A_202C_202A_206C_202D_206C_200D_202C_206D_206F_202D_200F_206A_202A_202E_206C_202B_206D_202E((ImU8String)GetSequenceFilename(_200E_202C_202B_202A_202B_200B_202A_200D_200D_206F_200D_202D_206E_206F_202C_206E_202A_200E_202C_206B_200B_206B_200F_206A_200E_202C_206A_202B_206F_206E_200E_202E_206A_206A_200B_200C_202C_206E_202D_200D_202E((ElementId)questId), questInfo.Name)); - num = 1239132686; - break; - case 3: - num = 1239132680; - break; - case 1: - goto end_IL_0418; - } - continue; - end_IL_0418: - break; - } - } - finally - { - num = ((colorDisposable3 == null) ? (-1429560443) : (-1429560442)); - while (true) - { - int num10 = num; - num3 = -1429560441; - num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 0: - num = -1429560442; - break; - case 2: - goto end_IL_04e7; - case 1: - _200C_202E_206A_206C_206B_206B_200B_200D_206C_200E_206B_200C_206A_200C_200B_202A_200C_202C_200D_200E_206D_200B_200E_206F_200D_206F_206D_200C_202C_206B_200F_206A_200D_202D_206B_202D_200F_200C_202B_206F_202E((IDisposable)colorDisposable3); - num = -1429560443; - break; - } - continue; - end_IL_04e7: - break; - } - } + flag2 = true; + dictionary[255] = (item.Steps.Count, item.Comment); } - finally + else { - num = ((colorDisposable2 == null) ? 2111509098 : 2111509097); - while (true) - { - int num13 = num; - num3 = 2111509099; - num4 = num13; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - goto end_IL_0554; - case 2: - _200C_202E_206A_206C_206B_206B_200B_200D_206C_200E_206B_200C_206A_200C_200B_202A_200C_202C_200D_200E_206D_200B_200E_206F_200D_206F_206D_200C_202C_206B_200F_206A_200D_202D_206B_202D_200F_200C_202B_206F_202E((IDisposable)colorDisposable2); - num = 2111509098; - break; - case 0: - num = 2111509097; - break; - } - continue; - end_IL_0554: - break; - } - } - } - finally - { - num = ((colorDisposable == null) ? 901110537 : 901110538); - while (true) - { - int num14 = num; - num3 = 901110536; - num4 = num14; - int num15 = num4 + num3; - int num16 = num4 & num3; - switch (num15 - (num16 + num16)) - { - case 1: - goto end_IL_05bf; - case 2: - _200C_202E_206A_206C_206B_206B_200B_200D_206C_200E_206B_200C_206A_200C_200B_202A_200C_202C_200D_200E_206D_200B_200E_206F_200D_206F_206D_200C_202C_206B_200F_206A_200D_202D_206B_202D_200F_200C_202B_206F_202E((IDisposable)colorDisposable); - num = 901110537; - break; - case 0: - num = 901110538; - break; - } - continue; - end_IL_05bf: - break; - } - } - num = ((!currentSequence.HasValue) ? (-168796451) : (-168796452)); - while (true) - { - int num17 = num; - num3 = -168796451; - num4 = num17; - int num18 = num4 + num3; - int num19 = num4 & num3; - switch (num18 - (num19 + num19)) - { - case 2: - num = -168796452; - break; - case 1: - { - _200E_202D_200B_206E_200E_200D_202D_202B_202D_206F_206B_206A_202A_202A_206F_206B_200D_200F_200E_202C_206C_200B_206C_200E_200E_202E_200C_206C_202D_202A_206E_206B_200C_202D_200F_202C_206C_202C_202E_200D_202E(); - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2079705286)); - _200E_202D_200B_206E_200E_200D_202D_202B_202D_206F_206B_206A_202A_202A_206F_206B_200D_200F_200E_202C_206C_200B_206C_200E_200E_202E_200C_206C_202D_202A_206E_206B_200C_202D_200F_202C_206C_202C_202E_200D_202E(); - float num34 = (float)_206B_200D_202A_202A_200D_206E_200F_202A_206D_206F_202B_200D_206F_206C_200F_202D_206D_200C_200C_206C_202C_202B_202D_202C_200F_200D_200F_200B_202B_206D_200C_200C_202C_202D_200B_200F_206C_202E_200E_202C_202E(); - float num35 = 0.85f + _206E_206E_206E_202C_200C_200E_200B_200F_202A_206D_200F_206F_200B_206D_206B_206E_202E_206F_206A_206D_202B_200D_200D_206D_202D_206B_200D_202A_200B_202B_206C_200F_200E_200B_200B_206D_200F_202D_206E_200C_202E(num34 * 3f) * 0.15f; - Vector4 accentColor = new Vector4(0.5f * num35, 1f * num35, 0.6f * num35, 1f); - ImU8String imU8String2 = new ImU8String(17, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1759720861)); - imU8String2.AppendFormatted(currentSequence.Value); - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref accentColor, imU8String2); - num = -168796451; - break; - } - case 0: - _202C_206E_206D_200E_206E_200F_206D_206F_200B_202A_200B_202D_202C_206D_202B_202D_200D_200F_202B_200E_202A_200D_200B_206B_202C_202B_200D_202A_202D_202B_202B_206D_206D_206A_202A_202C_200B_206A_200C_206C_202E(vector.Y + num20 - _202D_202C_202D_200B_202E_200F_206E_206C_206C_200B_200E_202C_202A_200E_206D_200F_206D_206B_206B_202B_206B_206F_206C_202E_206B_202D_200F_200F_202D_202C_206F_206A_206D_206D_200C_200D_202D_200E_202E_206C_202E().Y + _206E_200C_200C_202E_206F_202E_200F_200E_200F_206F_206B_206B_206A_202B_202B_202D_202D_206F_206E_200B_206F_200F_200D_200D_206E_200E_206D_206E_206C_206D_206E_202B_200B_200D_206A_206D_206D_202C_202D_202E_202E()); - _206D_200C_200F_206A_206D_206E_202E_200F_206D_206B_202B_200C_200E_200D_206B_202D_202B_200D_202B_202D_202A_200C_202A_206A_200C_200B_200B_200C_202D_200E_202B_202B_202B_206D_206E_202E_206E_200D_200C_202D_202E(); - try - { - Lumina.Excel.Sheets.Quest? quest = _dataManager.GetExcelSheet<Lumina.Excel.Sheets.Quest>()?.GetRowOrDefault((uint)(_200E_202C_202B_202A_202B_200B_202A_200D_200D_206F_200D_202D_206E_206F_202C_206E_202A_200E_202C_206B_200B_206B_200F_206A_200E_202C_206A_202B_206F_206E_200E_202E_206A_206A_200B_200C_202C_206E_202D_200D_202E((ElementId)questId) + 65536)); - num = (quest.HasValue ? 283833732 : 283833734); - while (true) - { - int num21 = num; - num3 = 283833729; - num4 = num21; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 6: - num = 283833734; - continue; - case 0: - if (quest2 != null) - { - num = 283833730; - continue; - } - break; - case 1: - { - num25 = _206A_206F_206C_200F_202A_202D_206E_202A_200B_202B_206F_202C_206F_200C_200F_202C_202A_206D_206D_200E_202B_202C_200B_202C_200E_202B_200C_206E_206C_202B_202E_206A_200B_200E_200F_202B_202B_202C_202B_200C_202E((IEnumerable<int>)list); - int num26 = num25; - num3 = 1; - num4 = num26; - num27 = (num4 | num3) + (num4 & num3); - flag2 = _questRegistry.TryGetQuest(questElementId, out quest2); - hashSet = new HashSet<int>(); - dictionary = new Dictionary<int, (int, string)>(); - flag = false; - if (flag2) - { - num = 283833729; - continue; - } - break; - } - case 5: - list = (from result in quest.Value.TodoParams.Where(delegate(Lumina.Excel.Sheets.Quest.TodoParamsStruct todoParamsStruct) - { - int num40 = ((todoParamsStruct.ToDoCompleteSeq <= 0) ? (-1268370217) : (-1268370218)); - while (true) - { - int num41 = num40; - int num42 = -1268370217; - int num43 = num41; - switch ((num43 | num42) - (num43 & num42)) - { - case 2: - goto IL_0048; - case 0: - return false; - case 1: - return todoParamsStruct.ToDoCompleteSeq < byte.MaxValue; - } - continue; - IL_0048: - num40 = -1268370218; - } - }).Select((Func<Lumina.Excel.Sheets.Quest.TodoParamsStruct, int>)((Lumina.Excel.Sheets.Quest.TodoParamsStruct todoParamsStruct) => todoParamsStruct.ToDoCompleteSeq)).Distinct() - orderby result - select result).ToList(); - num = ((list.Count != 0) ? 283833728 : 283833731); - continue; - case 2: - DrawErrorState(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(687580919), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(596369576)); - return; - case 3: - if (_200D_206E_200B_202D_206D_200C_206A_200F_200C_200B_206D_202C_202C_202A_206E_200E_202A_206C_202C_206B_200B_206F_206B_202C_206A_206B_206F_200F_200C_200C_202E_206F_200F_206E_206F_200E_202D_206F_206D_202E_202E(quest2.Root).Count > 0) - { - num = 283833733; - continue; - } - break; - case 7: - DrawErrorState(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(930486847), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1230133238)); - return; - case 4: - { - using (List<QuestSequence>.Enumerator enumerator = _200D_206E_200B_202D_206D_200C_206A_200F_200C_200B_206D_202C_202C_202A_206E_200E_202A_206C_202C_206B_200B_206F_206B_202C_206A_206B_206F_200F_200C_200C_202E_206F_200F_206E_206F_200E_202D_206F_206D_202E_202E(quest2.Root).GetEnumerator()) - { - num = 1839567022; - while (true) - { - int num22 = num; - num3 = 1839567018; - num4 = num22; - int num23 = num4 + num3; - int num24 = num4 & num3; - switch (num23 - (num24 + num24)) - { - case 3: - hashSet.Add(_206C_200B_200F_206C_200F_200F_200D_206E_200C_202B_202C_202B_202A_206B_200C_200B_202E_200D_206D_202B_202B_202E_206C_200D_206E_202B_200D_202C_200F_206E_200D_206D_202C_202A_206B_200D_206C_206E_206F_202D_202E(current)); - dictionary[_206C_200B_200F_206C_200F_200F_200D_206E_200C_202B_202C_202B_202A_206B_200C_200B_202E_200D_206D_202B_202B_202E_206C_200D_206E_202B_200D_202C_200F_206E_200D_206D_202C_202A_206B_200D_206C_206E_206F_202D_202E(current)] = (_206E_200B_206C_206E_202B_200F_202E_200C_206A_200D_202E_200F_206A_200E_206F_206A_206C_200F_206B_200C_202C_206E_202D_206C_206F_206C_206C_206B_200B_206D_202A_206C_202C_202E_206D_206B_200E_202B_206B_200D_202E(current).Count, _206A_202B_200B_206C_202D_200C_200F_200B_202B_200D_206D_202C_202B_200F_206F_206B_206E_202A_200D_206A_202E_202C_206E_202B_200F_202C_202A_202D_206B_206E_206F_200C_202E_206E_206F_206C_200B_206F_206F_202D_202E(current)); - num = 1839567022; - break; - case 5: - current = enumerator.Current; - num = ((_206C_200B_200F_206C_200F_200F_200D_206E_200C_202B_202C_202B_202A_206B_200C_200B_202E_200D_206D_202B_202B_202E_206C_200D_206E_202B_200D_202C_200F_206E_200D_206D_202C_202A_206B_200D_206C_206E_206F_202D_202E(current) != byte.MaxValue) ? 1839567017 : 1839567019); - break; - case 4: - num = (enumerator.MoveNext() ? 1839567023 : 1839567016); - break; - case 0: - num = 1839567022; - break; - case 1: - flag = true; - dictionary[255] = (_206E_200B_206C_206E_202B_200F_202E_200C_206A_200D_202E_200F_206A_200E_206F_206A_206C_200F_206B_200C_202C_206E_202D_206C_206F_206C_206C_206B_200B_206D_202A_206C_202C_202E_206D_206B_200E_202B_206B_200D_202E(current).Count, _206A_202B_200B_206C_202D_200C_200F_200B_202B_200D_206D_202C_202B_200F_206F_206B_206E_202A_200D_206A_202E_202C_206E_202B_200F_202C_202A_202D_206B_206E_206F_200C_202E_206E_206F_206C_200B_206F_206F_202D_202E(current)); - num = 1839567022; - break; - case 2: - goto end_IL_0999; - } - continue; - end_IL_0999: - break; - } - } - break; - } - } - break; - } - int num28 = hashSet.Count + (flag ? 1 : 0); - int num29 = num27; - num3 = 1; - num4 = num29; - int num30 = (num4 | num3) + (num4 & num3); - num = (flag2 ? 1937001988 : 1937001986); - Vector4 vector2; - while (true) - { - int num31 = num; - num3 = 1937001987; - num4 = num31; - float num33; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 7: - num33 = (float)num28 / (float)num30 * 100f; - goto IL_0b4f; - case 1: - num33 = 0f; - goto IL_0b4f; - case 8: - vector2 = new Vector4(1f, 0.5f, 0.5f, 1f); - break; - case 3: - num = ((num32 < 1f) ? 1937001989 : 1937001995); - continue; - case 6: - { - Vector4 accentColor = UiThemeUtils.AccentColor; - accentColor.W = 0.7f; - vector2 = accentColor; - break; - } - case 4: - vector2 = new Vector4(1f, 0.9f, 0.5f, 1f); - break; - case 2: - num = ((num32 >= 50f) ? 1937001991 : 1937001984); - continue; - case 0: - num = 1937001986; - continue; - case 5: - { - vector2 = new Vector4(0.5f, 1f, 0.6f, 1f); - break; - } - IL_0b4f: - num32 = num33; - num = ((num32 >= 100f) ? 1937001990 : 1937001985); - continue; - } - break; - } - Vector4 coverageColor = vector2; - DrawSummaryCards(num27, num25, flag2, num32, coverageColor, num28, num30); - _206D_200C_200F_206A_206D_206E_202E_200F_206D_206B_202B_200C_200E_200D_206B_202D_202B_200D_202B_202D_202A_200C_202A_206A_200C_200B_200B_200C_202D_200E_202B_202B_202B_206D_206E_202E_206E_200D_200C_202D_202E(); - _206D_200C_200F_206A_206D_206E_202E_200F_206D_206B_202B_200C_200E_200D_206B_202D_202B_200D_202B_202D_202A_200C_202A_206A_200C_200B_200B_200C_202D_200E_202B_202B_202B_206D_206E_202E_206E_200D_200C_202D_202E(); - DrawSequenceGrid(num25, currentSequence, hashSet, dictionary, flag); - return; - } - catch (Exception ex) - { - DrawErrorState(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1227313977), _206A_200D_200C_206B_206B_202C_206F_200B_202D_206C_202B_200B_206B_202E_206D_202A_206F_200E_200D_206F_200D_206D_206D_206A_200C_202A_200F_200B_202A_200D_202C_206F_206A_202D_200E_200F_206C_206D_202D_206D_202E(_206F_200F_202D_206D_202A_202D_202A_206B_200E_206D_206F_200D_202C_200B_202B_202A_206A_200F_200C_206B_202B_206C_206A_206C_200C_206F_202A_202B_206D_202A_206B_200E_206F_200E_206D_200F_202C_200D_202B_206F_202E(ex), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(777682130))); - _200E_206A_202C_206C_202A_202C_206D_202E_200D_200D_206C_206D_206B_206E_202A_200E_202B_200F_200C_202E_200D_206E_200C_200C_200D_206D_202B_202B_200E_200C_200C_202B_202D_202A_202A_202E_200B_200D_206B_206B_202E((ILogger)_logger, ex, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1828017337), new object[1] { questId }); - return; - } + hashSet.Add(item.Sequence); + dictionary[item.Sequence] = (item.Steps.Count, item.Comment); } } } + int num10 = hashSet.Count + (flag2 ? 1 : 0); + int num11 = num9 + 1; + float num12 = (flag ? ((float)num10 / (float)num11 * 100f) : 0f); + Vector4 vector; + if (!(num12 >= 100f)) + { + if (!(num12 >= 50f)) + { + if (!(num12 < 1f)) + { + vector = new Vector4(1f, 0.5f, 0.5f, 1f); + } + else + { + accentColor = UiThemeUtils.AccentColor; + accentColor.W = 0.7f; + vector = accentColor; + } + } + else + { + vector = new Vector4(1f, 0.9f, 0.5f, 1f); + } } + else + { + vector = new Vector4(0.5f, 1f, 0.6f, 1f); + } + Vector4 coverageColor = vector; + DrawSummaryCards(num9, num8, flag, num12, coverageColor, num10, num11); + ImGui.Spacing(); + ImGui.Spacing(); + DrawSequenceGrid(num8, currentSequence, hashSet, dictionary, flag2); + } + catch (Exception ex) + { + DrawErrorState("Error Loading Quest Data", ex.Message + "\nCheck logs for details."); + _logger.LogWarning(ex, "Failed to read quest sequence data from Lumina for {QuestId}", questId); } } private static void DrawErrorState(string title, string message) { - float y = _200C_206F_200C_202D_206F_200C_202E_202A_200F_206A_200D_206B_206D_206C_202C_200C_202E_200C_200F_206C_200C_202D_206D_200D_206C_202B_202C_202B_202E_206C_202C_202C_202E_200D_206D_206A_202B_202A_202C_202A_202E().Y; - float x = _200C_206F_200C_202D_206F_200C_202E_202A_200F_206A_200D_206B_206D_206C_202C_200C_202E_200C_200F_206C_200C_202D_206D_200D_206C_202B_202C_202B_202E_206C_202C_202C_202E_200D_206D_206A_202B_202A_202C_202A_202E().X; - _202C_206E_206D_200E_206E_200F_206D_206F_200B_202A_200B_202D_202C_206D_202B_202D_200D_200F_202B_200E_202A_200D_200B_206B_202C_202B_200D_202A_202D_202B_202B_206D_206D_206A_202A_202C_200B_206A_200C_206C_202E(_206E_200C_200C_202E_206F_202E_200F_200E_200F_206F_206B_206B_206A_202B_202B_202D_202D_206F_206E_200B_206F_200F_200D_200D_206E_200E_206D_206E_206C_206D_206E_202B_200B_200D_206A_206D_206D_202C_202D_202E_202E() + y * 0.25f); - float num = (float)_206B_200D_202A_202A_200D_206E_200F_202A_206D_206F_202B_200D_206F_206C_200F_202D_206D_200C_200C_206C_202C_202B_202D_202C_200F_200D_200F_200B_202B_206D_200C_200C_202C_202D_200B_200F_206C_202E_200E_202C_202E(); - float num2 = 0.7f + _206E_206E_206E_202C_200C_200E_200B_200F_202A_206D_200F_206F_200B_206D_206B_206E_202E_206F_206A_206D_202B_200D_200D_206D_202D_206B_200D_202A_200B_202B_206C_200F_200E_200B_200B_206D_200F_202D_206E_200C_202E(num * 2f) * 0.3f; - _202E_202D_202E_206D_206B_206F_202E_202D_200F_206C_200F_202B_206B_202D_206B_200D_206B_206A_202E_200B_202B_202E_200F_202A_200C_200D_206B_202B_206B_206D_202A_206A_206D_202B_200B_206C_202A_206E_202A_206E_202E(_200D_206C_200F_202A_202E_206D_206E_202E_202A_206C_202C_202C_200C_202C_206D_202D_206F_200C_206F_200B_206A_200C_202A_200B_206E_202C_206D_202E_202A_200D_200F_200B_202B_202C_202C_206E_200F_200C_202A_202A_202E()); - string text = _200F_200C_206B_200B_206C_200E_206F_206C_206D_206A_200E_202B_206B_206E_202A_206C_202D_202E_200D_206E_202E_202A_206D_200B_206B_202C_202A_206A_206E_206D_202C_200F_206D_206E_202C_200E_202D_206F_200D_200C_202E(FontAwesomeIcon.ExclamationTriangle); - Vector2 vector = _202B_206A_202C_206B_206F_206E_200F_206B_202B_206F_202D_206B_202E_206B_202A_202E_206F_202D_200F_202B_206B_200F_200D_200E_206C_200C_200C_200E_206C_200E_206E_206A_206D_200F_200F_202C_200C_206D_206F_200D_202E((ImU8String)text, false, -1f); - _202C_206D_200E_200B_200B_202D_206A_200F_200E_202B_206B_200D_200E_200F_206D_206B_206B_202B_202C_200E_206C_200C_206F_200E_202A_200B_206E_202B_202A_206F_206A_202D_206B_206B_202E_202C_206E_202D_200C_202C_202E((x - (vector * 2f).X) * 0.5f); - Vector4 vector2 = new Vector4(1f * num2, 0.4f * num2, 0.4f * num2, 1f); - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref vector2, (ImU8String)text); - _206A_202D_200F_202E_202E_200C_202C_206C_202A_200C_206F_206E_200B_206F_202B_202E_200E_202B_200F_206A_206E_202E_202E_202D_200E_202D_202C_202C_202D_206E_200E_200E_202B_206F_200C_200F_200F_206B_206E_202B_202E(); - _206D_200C_200F_206A_206D_206E_202E_200F_206D_206B_202B_200C_200E_200D_206B_202D_202B_200D_202B_202D_202A_200C_202A_206A_200C_200B_200B_200C_202D_200E_202B_202B_202B_206D_206E_202E_206E_200D_200C_202D_202E(); - _206D_200C_200F_206A_206D_206E_202E_200F_206D_206B_202B_200C_200E_200D_206B_202D_202B_200D_202B_202D_202A_200C_202A_206A_200C_200B_200B_200C_202D_200E_202B_202B_202B_206D_206E_202E_206E_200D_200C_202D_202E(); - _202C_206D_200E_200B_200B_202D_206A_200F_200E_202B_206B_200D_200E_200F_206D_206B_206B_202B_202C_200E_206C_200C_206F_200E_202A_200B_206E_202B_202A_206F_206A_202D_206B_206B_202E_202C_206E_202D_200C_202C_202E(_202A_200E_206E_202A_202C_200B_200F_200D_206A_200C_200F_206D_200E_202C_206B_206E_206D_200D_200C_206E_206D_206B_200F_206A_206A_200E_206E_202E_200F_200E_202B_200F_200D_206A_202E_202E_200C_202B_202D_200E_202E(0f, (x - _202B_206A_202C_206B_206F_206E_200F_206B_202B_206F_202D_206B_202E_206B_202A_202E_206F_202D_200F_202B_206B_200F_200D_200E_206C_200C_200C_200E_206C_200E_206E_206A_206D_200F_200F_202C_200C_206D_206F_200D_202E((ImU8String)title, false, -1f).X) * 0.5f)); + float y = ImGui.GetContentRegionAvail().Y; + float x = ImGui.GetContentRegionAvail().X; + ImGui.SetCursorPosY(ImGui.GetCursorPosY() + y * 0.25f); + float num = (float)ImGui.GetTime(); + float num2 = 0.7f + MathF.Sin(num * 2f) * 0.3f; + ImGui.PushFont(UiBuilder.IconFont); + string text = FontAwesomeIcon.ExclamationTriangle.ToIconString(); + Vector2 vector = ImGui.CalcTextSize(text); + ImGui.SetCursorPosX((x - (vector * 2f).X) * 0.5f); + ImGui.TextColored(new Vector4(1f * num2, 0.4f * num2, 0.4f * num2, 1f), text); + ImGui.PopFont(); + ImGui.Spacing(); + ImGui.Spacing(); + ImGui.SetCursorPosX(MathF.Max(0f, (x - ImGui.CalcTextSize(title).X) * 0.5f)); UiThemeUtils.WrappedTextColored(new Vector4(1f, 0.5f, 0.5f, 1f), title); - _206D_200C_200F_206A_206D_206E_202E_200F_206D_206B_202B_200C_200E_200D_206B_202D_202B_200D_202B_202D_202A_200C_202A_206A_200C_200B_200B_200C_202D_200E_202B_202B_202B_206D_206E_202E_206E_200D_200C_202D_202E(); - _202C_206D_200E_200B_200B_202D_206A_200F_200E_202B_206B_200D_200E_200F_206D_206B_206B_202B_202C_200E_206C_200C_206F_200E_202A_200B_206E_202B_202A_206F_206A_202D_206B_206B_202E_202C_206E_202D_200C_202C_202E(_202A_200E_206E_202A_202C_200B_200F_200D_206A_200C_200F_206D_200E_202C_206B_206E_206D_200D_200C_206E_206D_206B_200F_206A_206A_200E_206E_202E_200F_200E_202B_200F_200D_206A_202E_202E_200C_202B_202D_200E_202E(0f, (x - _202B_206A_202C_206B_206F_206E_200F_206B_202B_206F_202D_206B_202E_206B_202A_202E_206F_202D_200F_202B_206B_200F_200D_200E_206C_200C_200C_200E_206C_200E_206E_206A_206D_200F_200F_202C_200C_206D_206F_200D_202E((ImU8String)message, false, -1f).X) * 0.5f)); + ImGui.Spacing(); + ImGui.SetCursorPosX(MathF.Max(0f, (x - ImGui.CalcTextSize(message).X) * 0.5f)); UiThemeUtils.WrappedTextColored(UiThemeUtils.DimTextColor, message); } - [MethodImpl(MethodImplOptions.NoInlining)] private static void DrawSummaryCards(int totalSequences, int maxSeq, bool hasQuestPath, float coverage, Vector4 coverageColor, int implementedCount, int expectedCount) { - using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1895830930), 2); - int num = ((!(!tableDisposable)) ? 1451048125 : 1451048126); - while (true) + using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable("SummaryCards", 2); + if (!tableDisposable) { - int num2 = num; - int num3 = 1451048127; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0097; - case 1: - return; - case 2: - _200D_206F_200C_200D_202E_206E_202D_206D_206C_206A_200F_200C_206C_202C_206D_200E_206B_206A_200C_206D_206C_200C_206A_202B_206D_200D_202A_200B_202B_200E_202D_200C_200E_202D_206D_206B_206A_200B_200B_202B_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-672675930), ImGuiTableColumnFlags.WidthStretch, 0.4f, 0u); - _200D_206F_200C_200D_202E_206E_202D_206D_206C_206A_200F_200C_206C_202C_206D_200E_206B_206A_200C_206D_206C_200C_206A_202B_206D_200D_202A_200B_202B_200E_202D_200C_200E_202D_206D_206B_206A_200B_200B_202B_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1505026476), ImGuiTableColumnFlags.WidthStretch, 0.6f, 0u); - _200C_206C_200D_200B_200D_206E_206F_202A_200E_200D_202E_206A_200D_206B_206F_200C_202E_206F_206A_200B_202C_206B_200C_206C_202E_206E_206A_202A_200B_200C_200D_206D_200B_202C_206B_206A_200E_206E_206F_200E_202E(); - _206A_206F_206D_202C_200E_202D_200E_200B_200E_200D_202E_206F_206E_206D_206D_206B_202C_206D_200C_206B_202A_200C_202C_202D_202C_206F_202B_202C_206F_202C_206D_206A_206F_200C_202E_202E_200C_206E_206A_206C_202E(); - DrawCard(80f, new Vector4(0.6f, 0.85f, 1f, 1f), FontAwesomeIcon.Gamepad, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-539025899), [MethodImpl(MethodImplOptions.NoInlining)] () => - { - _003C_003Ec__DisplayClass17_0._206A_202A_200E_200F_200D_202A_200D_202A_206F_206C_202B_200E_202C_206D_206B_206E_202D_206F_202E_206D_206F_206C_202A_202A_200E_206E_202A_200C_202D_202D_206A_202E_206A_206B_200E_202D_200C_200D_202E_200F_202E(); - _003C_003Ec__DisplayClass17_0._202C_202D_200B_206D_206E_202E_206A_202D_202B_200F_202A_202D_202C_200F_200E_202E_200D_202C_206B_202B_206E_202C_202C_202B_206B_200F_206D_202C_202B_206C_206E_206F_200B_206A_202D_200B_200C_202D_200F_206C_202E(10f); - ImU8String imU8String = new ImU8String(6, 0); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(389160049)); - _003C_003Ec__DisplayClass17_0._202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref UiThemeUtils.PrimaryTextColor, imU8String); - _003C_003Ec__DisplayClass17_0._200B_202E_206F_200C_206C_202C_200E_200F_206F_206F_200F_206A_200E_200E_200C_200B_202E_200B_206E_202B_200D_200C_206C_200F_200D_206E_206B_206A_206E_206E_200B_202E_206F_206F_200E_206F_206A_200D_200D_202E(); - Vector4 vector = new Vector4(0.7f, 0.9f, 1f, 1f); - ImU8String imU8String2 = new ImU8String(0, 1); - imU8String2.AppendFormatted(totalSequences); - _003C_003Ec__DisplayClass17_0._202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref vector, imU8String2); - _003C_003Ec__DisplayClass17_0._206A_202A_200E_200F_200D_202A_200D_202A_206F_206C_202B_200E_202C_206D_206B_206E_202D_206F_202E_206D_206F_206C_202A_202A_200E_206E_202A_200C_202D_202D_206A_202E_206A_206B_200E_202D_200C_200D_202E_200F_202E(); - ImU8String imU8String3 = new ImU8String(6, 0); - imU8String3.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1982759281)); - _003C_003Ec__DisplayClass17_0._202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref UiThemeUtils.PrimaryTextColor, imU8String3); - _003C_003Ec__DisplayClass17_0._200B_202E_206F_200C_206C_202C_200E_200F_206F_206F_200F_206A_200E_200E_200C_200B_202E_200B_206E_202B_200D_200C_206C_200F_200D_206E_206B_206A_206E_206E_200B_202E_206F_206F_200E_206F_206A_200D_200D_202E(); - vector = new Vector4(0.7f, 0.9f, 1f, 1f); - ImU8String imU8String4 = new ImU8String(9, 1); - imU8String4.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-17191078)); - imU8String4.AppendFormatted(maxSeq); - imU8String4.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1638758109)); - _003C_003Ec__DisplayClass17_0._202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref vector, imU8String4); - _003C_003Ec__DisplayClass17_0._206A_200B_202B_206A_200E_206D_200F_202C_200C_206C_206A_206B_206F_206B_202C_206C_200F_202E_200C_202A_200D_206D_206F_202B_206D_200E_206F_202B_202B_200F_206C_206F_202D_202D_202A_202B_206B_202A_206F_206A_202E(10f); - }); - _206A_206F_206D_202C_200E_202D_200E_200B_200E_200D_202E_206F_206E_206D_206D_206B_202C_206D_200C_206B_202A_200C_202C_202D_202C_206F_202B_202C_206F_202C_206D_206A_206F_200C_202E_202E_200C_206E_206A_206C_202E(); - DrawCard(80f, new Vector4(0.5f, 1f, 0.6f, 1f), FontAwesomeIcon.Code, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1382776642), [MethodImpl(MethodImplOptions.NoInlining)] () => - { - if (hasQuestPath) - { - _003C_003Ec__DisplayClass17_0._202C_202D_200B_206D_206E_202E_206A_202D_202B_200F_202A_202D_202C_200F_200E_202E_200D_202C_206B_202B_206E_202C_202C_202B_206B_200F_206D_202C_202B_206C_206E_206F_200B_206A_202D_200B_200C_202D_200F_206C_202E(10f); - _003C_003Ec__DisplayClass17_0._202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref UiThemeUtils.PrimaryTextColor, (ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-97617789)); - _003C_003Ec__DisplayClass17_0._200B_202E_206F_200C_206C_202C_200E_200F_206F_206F_200F_206A_200E_200E_200C_200B_202E_200B_206E_202B_200D_200C_206C_200F_200D_206E_206B_206A_206E_206E_200B_202E_206F_206F_200E_206F_206A_200D_200D_202E(); - ref Vector4 reference = ref coverageColor; - ImU8String imU8String = new ImU8String(0, 1); - imU8String.AppendFormatted(implementedCount); - _003C_003Ec__DisplayClass17_0._202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref reference, imU8String); - _003C_003Ec__DisplayClass17_0._200B_202E_206F_200C_206C_202C_200E_200F_206F_206F_200F_206A_200E_200E_200C_200B_202E_200B_206E_202B_200D_200C_206C_200F_200D_206E_206B_206A_206E_206E_200B_202E_206F_206F_200E_206F_206A_200D_200D_202E(); - _003C_003Ec__DisplayClass17_0._202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref UiThemeUtils.DimTextColor, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1392036559)); - _003C_003Ec__DisplayClass17_0._200B_202E_206F_200C_206C_202C_200E_200F_206F_206F_200F_206A_200E_200E_200C_200B_202E_200B_206E_202B_200D_200C_206C_200F_200D_206E_206B_206A_206E_206E_200B_202E_206F_206F_200E_206F_206A_200D_200D_202E(); - ImU8String imU8String2 = new ImU8String(0, 1); - imU8String2.AppendFormatted(expectedCount); - _003C_003Ec__DisplayClass17_0._202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref UiThemeUtils.PrimaryTextColor, imU8String2); - _003C_003Ec__DisplayClass17_0._200B_202E_206F_200C_206C_202C_200E_200F_206F_206F_200F_206A_200E_200E_200C_200B_202E_200B_206E_202B_200D_200C_206C_200F_200D_206E_206B_206A_206E_206E_200B_202E_206F_206F_200E_206F_206A_200D_200D_202E(); - ref Vector4 reference2 = ref coverageColor; - ImU8String imU8String3 = new ImU8String(3, 1); - imU8String3.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1208656614)); - imU8String3.AppendFormatted(coverage, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1949766839)); - imU8String3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1310244362)); - _003C_003Ec__DisplayClass17_0._202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref reference2, imU8String3); - _003C_003Ec__DisplayClass17_0._206A_202A_200E_200F_200D_202A_200D_202A_206F_206C_202B_200E_202C_206D_206B_206E_202D_206F_202E_206D_206F_206C_202A_202A_200E_206E_202A_200C_202D_202D_206A_202E_206A_206B_200E_202D_200C_200D_202E_200F_202E(); - Vector2 vector = _003C_003Ec__DisplayClass17_0._206D_202B_202C_206D_206B_200D_206C_206B_202A_200B_202B_202A_200B_200E_206A_200D_202A_202E_200B_200B_200B_206A_206A_202C_206D_200B_200E_200D_202A_202A_206B_202D_200B_202B_200F_202E_206B_202A_200F_202C_202E(); - float x = _003C_003Ec__DisplayClass17_0._200F_200F_206F_200D_206A_202C_206D_206F_206E_202E_200F_202A_206F_206A_206A_200B_202B_200D_200D_202C_206B_202D_200B_202C_206E_200C_206B_206C_202A_206C_200E_206D_202C_206E_200C_206F_206C_200C_206C_200C_202E().X - 10f; - ImRaii.ColorDisposable colorDisposable = _003C_003Ec__DisplayClass17_0._206E_202D_202E_206A_202B_200C_206B_206D_206A_206E_200E_206E_200E_206E_202D_206E_202A_200E_202D_206E_206B_200D_206B_202B_200E_206F_202B_200F_200B_200C_206D_202D_206E_202E_202C_202B_202C_206D_202B_200E_202E(ImGuiCol.PlotHistogram, coverageColor, true); - try - { - ImRaii.ColorDisposable colorDisposable2 = _003C_003Ec__DisplayClass17_0._206E_202D_202E_206A_202B_200C_206B_206D_206A_206E_200E_206E_200E_206E_202D_206E_202A_200E_202D_206E_206B_200D_206B_202B_200E_206F_202B_200F_200B_200C_206D_202D_206E_202E_202C_202B_202C_206D_202B_200E_202E(ImGuiCol.FrameBg, new Vector4(0.08f, 0.06f, 0.12f, 0.8f), true); - try - { - _003C_003Ec__DisplayClass17_0._202E_202D_202A_202B_202E_206C_206F_200D_200B_200C_206D_200E_200E_200C_206F_202A_202E_200B_202D_200F_206A_200E_200B_206A_200E_206C_206B_202C_206F_200F_200B_200D_206C_200C_206E_206B_200D_206D_206B_206D_202E(coverage / 100f, new Vector2(x, 16f), (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1200342830)); - } - finally - { - int num7 = ((colorDisposable2 == null) ? 1407322401 : 1407322400); - while (true) - { - int num8 = num7; - int num9 = 1407322401; - int num10 = num8; - int num11 = num10 + num9; - int num12 = num10 & num9; - switch (num11 - (num12 + num12)) - { - case 0: - goto end_IL_018b; - case 1: - _003C_003Ec__DisplayClass17_0._200D_206B_200E_202E_206F_202A_202A_200C_206A_206A_206C_206F_206D_200C_200B_202D_206E_200E_206D_200E_202D_206E_202A_206F_206E_202E_206F_206C_200F_202B_202C_200F_202C_206A_200E_206E_206B_206D_206D_206E_202E((IDisposable)colorDisposable2); - num7 = 1407322401; - break; - case 2: - num7 = 1407322400; - break; - } - continue; - end_IL_018b: - break; - } - } - } - finally - { - int num7 = ((colorDisposable == null) ? 807614204 : 807614205); - while (true) - { - int num13 = num7; - int num9 = 807614204; - int num10 = num13; - int num14 = num10 + num9; - int num15 = num10 & num9; - switch (num14 - (num15 + num15)) - { - case 2: - num7 = 807614205; - break; - case 0: - goto end_IL_01f8; - case 1: - _003C_003Ec__DisplayClass17_0._200D_206B_200E_202E_206F_202A_202A_200C_206A_206A_206C_206F_206D_200C_200B_202D_206E_200E_206D_200E_202D_206E_202A_206F_206E_202E_206F_206C_200F_202B_202C_200F_202C_206A_200E_206E_206B_206D_206D_206E_202E((IDisposable)colorDisposable); - num7 = 807614204; - break; - } - continue; - end_IL_01f8: - break; - } - } - ImDrawListPtr imDrawListPtr = _003C_003Ec__DisplayClass17_0._200F_206B_202A_206D_206C_206E_200F_206C_202A_200E_206A_200F_200E_206F_200B_200D_202C_206C_206D_200B_200F_200C_202D_206D_200F_206B_206E_200B_200B_202B_206C_200C_206F_206F_206E_200F_202A_206B_200F_200F_202E(); - Vector2 pMax = vector + new Vector2(x, 16f); - Vector4 accentColor = UiThemeUtils.AccentColor; - accentColor.W = 0.3f; - imDrawListPtr.AddRect(vector, pMax, _003C_003Ec__DisplayClass17_0._206D_200E_206D_202B_200B_206C_206F_202C_202B_206A_202B_202E_200C_206D_206B_200C_206D_202D_206C_202C_202E_202A_200E_200B_202A_206C_202E_200F_206A_202C_206B_200E_206C_202C_200C_206A_202A_202D_206E_202E_202E(accentColor), 2f); - _003C_003Ec__DisplayClass17_0._206A_200B_202B_206A_200E_206D_200F_202C_200C_206C_206A_206B_206F_206B_202C_206C_200F_202E_200C_202A_200D_206D_206F_202B_206D_200E_206F_202B_202B_200F_206C_206F_202D_202D_202A_202B_206B_202A_206F_206A_202E(10f); - } - else - { - _003C_003Ec__DisplayClass17_0._206A_202A_200E_200F_200D_202A_200D_202A_206F_206C_202B_200E_202C_206D_206B_206E_202D_206F_202E_206D_206F_206C_202A_202A_200E_206E_202A_200C_202D_202D_206A_202E_206A_206B_200E_202D_200C_200D_202E_200F_202E(); - _003C_003Ec__DisplayClass17_0._202C_202D_200B_206D_206E_202E_206A_202D_202B_200F_202A_202D_202C_200F_200E_202E_200D_202C_206B_202B_206E_202C_202C_202B_206B_200F_206D_202C_202B_206C_206E_206F_200B_206A_202D_200B_200C_202D_200F_206C_202E(10f); - _003C_003Ec__DisplayClass17_0._200B_202D_200D_202B_200F_206F_206E_202D_202B_206F_206F_202C_206F_206A_202D_200F_206A_206F_206C_206D_206C_200C_200D_206C_202C_206E_200F_200F_206E_202B_206C_206E_200E_200C_202A_202C_206A_206B_200F_206C_202E(_003C_003Ec__DisplayClass17_0._206A_202D_202B_202B_206C_206E_206A_200D_206C_206C_200B_202E_206A_200D_200C_206C_200D_200F_200D_206F_206E_202A_202E_202E_202D_206F_202E_200D_202E_200C_206A_200C_202D_206D_206A_200B_206C_202E_206D_206A_202E()); - Vector4 accentColor = UiThemeUtils.AccentColor; - accentColor.W = 0.8f; - _003C_003Ec__DisplayClass17_0._202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref accentColor, (ImU8String)_003C_003Ec__DisplayClass17_0._200C_206C_202A_200F_202B_202C_206D_200D_200F_200F_206C_206F_200D_202E_202A_200C_200B_206E_206B_202A_206B_202D_206F_202A_200C_206E_200E_200C_202E_202E_202A_206E_200D_200E_206F_202C_200E_206A_200D_206D_202E(FontAwesomeIcon.Ban)); - _003C_003Ec__DisplayClass17_0._206A_206B_200D_206E_202C_202E_202C_200E_200B_206A_200D_206D_206A_202C_202E_206E_206F_200B_206C_206F_202A_202D_200C_206C_200B_200B_206C_200C_206E_200B_202E_202D_206E_202E_206F_202D_200D_206F_206D_206E_202E(); - _003C_003Ec__DisplayClass17_0._200B_202E_206F_200C_206C_202C_200E_200F_206F_206F_200F_206A_200E_200E_200C_200B_202E_200B_206E_202B_200D_200C_206C_200F_200D_206E_206B_206A_206E_206E_200B_202E_206F_206F_200E_206F_206A_200D_200D_202E(); - accentColor = UiThemeUtils.AccentColor; - accentColor.W = 0.8f; - _003C_003Ec__DisplayClass17_0._202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref accentColor, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(868008656)); - _003C_003Ec__DisplayClass17_0._206A_202A_200E_200F_200D_202A_200D_202A_206F_206C_202B_200E_202C_206D_206B_206E_202D_206F_202E_206D_206F_206C_202A_202A_200E_206E_202A_200C_202D_202D_206A_202E_206A_206B_200E_202D_200C_200D_202E_200F_202E(); - _003C_003Ec__DisplayClass17_0._202A_206B_206D_200E_202A_200F_200D_200F_200C_200B_202E_206A_206A_206E_206D_202A_200F_200D_202E_206C_200C_200C_206E_200D_206B_206A_202E_206A_206E_206C_206A_206F_206A_206B_200B_206C_202C_202D_200F_206C_202E(ref UiThemeUtils.DimTextColor, (ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(384693137)); - _003C_003Ec__DisplayClass17_0._206A_200B_202B_206A_200E_206D_200F_202C_200C_206C_206A_206B_206F_206B_202C_206C_200F_202E_200C_202A_200D_206D_206F_202B_206D_200E_206F_202B_202B_200F_206C_206F_202D_202D_202A_202B_206B_202A_206F_206A_202E(10f); - } - }); - return; - } - continue; - IL_0097: - num = 1451048126; + return; } + ImGui.TableSetupColumn("GameData", ImGuiTableColumnFlags.WidthStretch, 0.4f); + ImGui.TableSetupColumn("QuestPath", ImGuiTableColumnFlags.WidthStretch, 0.6f); + ImGui.TableNextRow(); + ImGui.TableNextColumn(); + DrawCard(80f, new Vector4(0.6f, 0.85f, 1f, 1f), FontAwesomeIcon.Gamepad, "Expected Sequences", delegate + { + ImGui.Spacing(); + ImGui.Indent(10f); + ImU8String text = new ImU8String(6, 0); + text.AppendLiteral("Count:"); + ImGui.TextColored(in UiThemeUtils.PrimaryTextColor, text); + ImGui.SameLine(); + Vector4 col = new Vector4(0.7f, 0.9f, 1f, 1f); + ImU8String text2 = new ImU8String(0, 1); + text2.AppendFormatted(totalSequences); + ImGui.TextColored(in col, text2); + ImGui.Spacing(); + ImU8String text3 = new ImU8String(6, 0); + text3.AppendLiteral("Range:"); + ImGui.TextColored(in UiThemeUtils.PrimaryTextColor, text3); + ImGui.SameLine(); + col = new Vector4(0.7f, 0.9f, 1f, 1f); + ImU8String text4 = new ImU8String(9, 1); + text4.AppendLiteral("0 → "); + text4.AppendFormatted(maxSeq); + text4.AppendLiteral(", 255"); + ImGui.TextColored(in col, text4); + ImGui.Unindent(10f); + }); + ImGui.TableNextColumn(); + DrawCard(80f, new Vector4(0.5f, 1f, 0.6f, 1f), FontAwesomeIcon.Code, "Implementation Status", delegate + { + if (hasQuestPath) + { + ImGui.Indent(10f); + ImGui.TextColored(in UiThemeUtils.PrimaryTextColor, "Progress:"); + ImGui.SameLine(); + ref Vector4 col = ref coverageColor; + ImU8String text = new ImU8String(0, 1); + text.AppendFormatted(implementedCount); + ImGui.TextColored(in col, text); + ImGui.SameLine(); + ImGui.TextColored(in UiThemeUtils.DimTextColor, "/"); + ImGui.SameLine(); + ImU8String text2 = new ImU8String(0, 1); + text2.AppendFormatted(expectedCount); + ImGui.TextColored(in UiThemeUtils.PrimaryTextColor, text2); + ImGui.SameLine(); + ref Vector4 col2 = ref coverageColor; + ImU8String text3 = new ImU8String(3, 1); + text3.AppendLiteral("("); + text3.AppendFormatted(coverage, "F0"); + text3.AppendLiteral("%)"); + ImGui.TextColored(in col2, text3); + ImGui.Spacing(); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + float x = ImGui.GetContentRegionAvail().X - 10f; + using (ImRaii.PushColor(ImGuiCol.PlotHistogram, coverageColor)) + { + using (ImRaii.PushColor(ImGuiCol.FrameBg, new Vector4(0.08f, 0.06f, 0.12f, 0.8f))) + { + ImGui.ProgressBar(coverage / 100f, new Vector2(x, 16f), ""); + } + } + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 pMax = cursorScreenPos + new Vector2(x, 16f); + Vector4 accentColor = UiThemeUtils.AccentColor; + accentColor.W = 0.3f; + windowDrawList.AddRect(cursorScreenPos, pMax, ImGui.ColorConvertFloat4ToU32(accentColor), 2f); + ImGui.Unindent(10f); + } + else + { + ImGui.Spacing(); + ImGui.Indent(10f); + ImGui.PushFont(UiBuilder.IconFont); + Vector4 accentColor = UiThemeUtils.AccentColor; + accentColor.W = 0.8f; + ImGui.TextColored(in accentColor, FontAwesomeIcon.Ban.ToIconString()); + ImGui.PopFont(); + ImGui.SameLine(); + accentColor = UiThemeUtils.AccentColor; + accentColor.W = 0.8f; + ImGui.TextColored(in accentColor, "Not Implemented"); + ImGui.Spacing(); + ImGui.TextColored(in UiThemeUtils.DimTextColor, "No quest path data available"); + ImGui.Unindent(10f); + } + }); } private static void DrawCard(float height, Vector4 accentColor, FontAwesomeIcon icon, string title, System.Action content) { - Vector2 vector = _202D_202C_202D_200B_202E_200F_206E_206C_206C_200B_200E_202C_202A_200E_206D_200F_206D_206B_206B_202B_206B_206F_206C_202E_206B_202D_200F_200F_202D_202C_206F_206A_206D_206D_200C_200D_202D_200E_202E_206C_202E(); - float x = _200C_206F_200C_202D_206F_200C_202E_202A_200F_206A_200D_206B_206D_206C_202C_200C_202E_200C_200F_206C_200C_202D_206D_200D_206C_202B_202C_202B_202E_206C_202C_202C_202E_200D_206D_206A_202B_202A_202C_202A_202E().X; - ImDrawListPtr imDrawListPtr = _206E_200C_200E_206F_200D_200D_202A_206B_202D_202D_206F_202C_200D_200C_200D_200F_200B_202A_206C_206B_202C_200E_202E_206A_206A_202C_202B_200E_206B_200C_206F_200C_200B_200B_206B_200E_200F_206E_200D_206D_202E(); - imDrawListPtr.AddRectFilledMultiColor(vector, vector + new Vector2(x, height), _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(UiThemeUtils.CardBackgroundColor), _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(UiThemeUtils.CardBackgroundColor), _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(UiThemeUtils.CardBackgroundColor), _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(UiThemeUtils.CardBackgroundColor)); - Vector2 pMin = vector; - Vector2 pMax = vector + new Vector2(x, height); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + float x = ImGui.GetContentRegionAvail().X; + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + windowDrawList.AddRectFilledMultiColor(cursorScreenPos, cursorScreenPos + new Vector2(x, height), ImGui.ColorConvertFloat4ToU32(UiThemeUtils.CardBackgroundColor), ImGui.ColorConvertFloat4ToU32(UiThemeUtils.CardBackgroundColor), ImGui.ColorConvertFloat4ToU32(UiThemeUtils.CardBackgroundColor), ImGui.ColorConvertFloat4ToU32(UiThemeUtils.CardBackgroundColor)); + Vector2 pMin = cursorScreenPos; + Vector2 pMax = cursorScreenPos + new Vector2(x, height); Vector4 accentColor2 = UiThemeUtils.AccentColor; accentColor2.W = 0.2f; - imDrawListPtr.AddRect(pMin, pMax, _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(accentColor2), 4f, ImDrawFlags.None, 1f); - imDrawListPtr.AddLine(vector, vector + new Vector2(x, 0f), _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(accentColor), 3f); - float num = vector.Y + 10f; - _202B_206F_200B_206F_206E_206B_200B_200C_200C_200C_200D_206C_206D_202C_202B_200F_206A_202A_202D_200D_206B_206C_206A_200B_206B_206D_200B_206A_202E_206F_206D_200F_200B_206B_202D_206D_202B_200F_202D_206C_202E(new Vector2(vector.X + 10f, num)); - _202E_202D_202E_206D_206B_206F_202E_202D_200F_206C_200F_202B_206B_202D_206B_200D_206B_206A_202E_200B_202B_202E_200F_202A_200C_200D_206B_202B_206B_206D_202A_206A_206D_202B_200B_206C_202A_206E_202A_206E_202E(_200D_206C_200F_202A_202E_206D_206E_202E_202A_206C_202C_202C_200C_202C_206D_202D_206F_200C_206F_200B_206A_200C_202A_200B_206E_202C_206D_202E_202A_200D_200F_200B_202B_202C_202C_206E_200F_200C_202A_202A_202E()); - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref accentColor, (ImU8String)_200F_200C_206B_200B_206C_200E_206F_206C_206D_206A_200E_202B_206B_206E_202A_206C_202D_202E_200D_206E_202E_202A_206D_200B_206B_202C_202A_206A_206E_206D_202C_200F_206D_206E_202C_200E_202D_206F_200D_200C_202E(icon)); - _206A_202D_200F_202E_202E_200C_202C_206C_202A_200C_206F_206E_200B_206F_202B_202E_200E_202B_200F_206A_206E_202E_202E_202D_200E_202D_202C_202C_202D_206E_200E_200E_202B_206F_200C_200F_200F_206B_206E_202B_202E(); - _200E_202D_200B_206E_200E_200D_202D_202B_202D_206F_206B_206A_202A_202A_206F_206B_200D_200F_200E_202C_206C_200B_206C_200E_200E_202E_200C_206C_202D_202A_206E_206B_200C_202D_200F_202C_206C_202C_202E_200D_202E(); - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref UiThemeUtils.PrimaryTextColor, (ImU8String)title); - _202B_206F_200B_206F_206E_206B_200B_200C_200C_200C_200D_206C_206D_202C_202B_200F_206A_202A_202D_200D_206B_206C_206A_200B_206B_206D_200B_206A_202E_206F_206D_200F_200B_206B_202D_206D_202B_200F_202D_206C_202E(new Vector2(vector.X + 10f, num + 24f)); + windowDrawList.AddRect(pMin, pMax, ImGui.ColorConvertFloat4ToU32(accentColor2), 4f, ImDrawFlags.None, 1f); + windowDrawList.AddLine(cursorScreenPos, cursorScreenPos + new Vector2(x, 0f), ImGui.ColorConvertFloat4ToU32(accentColor), 3f); + float num = cursorScreenPos.Y + 10f; + ImGui.SetCursorScreenPos(new Vector2(cursorScreenPos.X + 10f, num)); + ImGui.PushFont(UiBuilder.IconFont); + ImGui.TextColored(in accentColor, icon.ToIconString()); + ImGui.PopFont(); + ImGui.SameLine(); + ImGui.TextColored(in UiThemeUtils.PrimaryTextColor, title); + ImGui.SetCursorScreenPos(new Vector2(cursorScreenPos.X + 10f, num + 24f)); content(); - _202B_206F_200B_206F_206E_206B_200B_200C_200C_200C_200D_206C_206D_202C_202B_200F_206A_202A_202D_200D_206B_206C_206A_200B_206B_206D_200B_206A_202E_206F_206D_200F_200B_206B_202D_206D_202B_200F_202D_206C_202E(new Vector2(vector.X, vector.Y + height + 4f)); + ImGui.SetCursorScreenPos(new Vector2(cursorScreenPos.X, cursorScreenPos.Y + height + 4f)); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawSequenceGrid(int maxSeq, byte? currentSequence, HashSet<int> implementedSequences, Dictionary<int, (int StepCount, string? Comment)> sequenceDetails, bool hasEndSequence) { - int num = 2; - int num2 = maxSeq; - int num3 = (num2 | num) + (num2 & num); - float x = _200C_206F_200C_202D_206F_200C_202E_202A_200F_206A_200D_206B_206D_206C_202C_200C_202E_200C_200F_206C_200C_202D_206D_200D_206C_202B_202C_202B_202E_206C_202C_202C_202E_200D_206D_206A_202B_202A_202C_202A_202E().X; - int num4 = _206E_206A_202E_200D_202B_206D_200C_206B_202D_206C_206A_200F_200B_200F_206E_200F_206A_202A_200F_200C_202A_206B_200E_206E_206A_206C_200D_206C_200C_202C_206A_206A_202C_200D_200E_200D_200D_202B_200B_206E_202E(4, _202C_202B_200F_206E_202E_200D_202B_206C_206D_206D_202E_202C_206C_206A_202D_206A_200D_206F_200D_206C_202D_202C_206C_200B_206A_200D_200E_200F_202B_200D_200C_206C_206E_206A_200C_200C_202C_206A_202E_202E(8, (int)(x / 100f))); - num4 = _202C_202B_200F_206E_202E_200D_202B_206C_206D_206D_202E_202C_206C_206A_202D_206A_200D_206F_200D_206C_202D_202C_206C_200B_206A_200D_200E_200F_202B_200D_200C_206C_206E_206A_200C_200C_202C_206A_202E_202E(num4, num3); - float y = _200C_206F_200C_202D_206F_200C_202E_202A_200F_206A_200D_206B_206D_206C_202C_200C_202E_200C_200F_206C_200C_202D_206D_200D_206C_202B_202C_202B_202E_206C_202C_202C_202E_200D_206D_206A_202B_202A_202C_202A_202E().Y; - ImRaii.ColorDisposable colorDisposable = _202C_206F_200D_202A_202B_206A_200F_206E_206E_202A_200B_202B_200B_200B_206C_202D_206B_202B_202D_206E_206E_200E_206F_206A_206D_206F_206D_202E_202D_206A_200F_206E_206C_202E_202A_206C_202B_202A_202A_202E(ImGuiCol.ChildBg, new Vector4(0.08f, 0.06f, 0.12f, 0.6f), true); - try + int val = maxSeq + 2; + float x = ImGui.GetContentRegionAvail().X; + int val2 = Math.Max(4, Math.Min(8, (int)(x / 100f))); + val2 = Math.Min(val2, val); + float y = ImGui.GetContentRegionAvail().Y; + using (ImRaii.PushColor(ImGuiCol.ChildBg, new Vector4(0.08f, 0.06f, 0.12f, 0.6f))) { Vector4 accentColor = UiThemeUtils.AccentColor; accentColor.W = 0.2f; - ImRaii.ColorDisposable colorDisposable2 = _202C_206F_200D_202A_202B_206A_200F_206E_206E_202A_200B_202B_200B_200B_206C_202D_206B_202B_202D_206E_206E_200E_206F_206A_206D_206F_206D_202E_202D_206A_200F_206E_206C_202E_202A_206C_202B_202A_202A_202E(ImGuiCol.Border, accentColor, true); - try + using (ImRaii.PushColor(ImGuiCol.Border, accentColor)) { - using ImRaii.ChildDisposable childDisposable = _202E_202B_206E_200B_200E_200E_206C_200F_200F_206D_202B_200E_202E_200B_202A_200B_202E_200D_200F_200B_206C_200F_200B_200F_206F_200B_202A_202E_202C_200F_206B_206C_200F_200C_200B_202B_200F_202E_202C_206D_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1262809086), new Vector2(-1f, y), true, ImGuiWindowFlags.None); + using ImRaii.ChildDisposable childDisposable = ImRaii.Child("SequenceGrid", new Vector2(-1f, y), border: true, ImGuiWindowFlags.None); if (!(bool)childDisposable) { return; } accentColor = UiThemeUtils.AccentColor; accentColor.W = 0.2f; - ImRaii.ColorDisposable colorDisposable3 = _202C_206F_200D_202A_202B_206A_200F_206E_206E_202A_200B_202B_200B_200B_206C_202D_206B_202B_202D_206E_206E_200E_206F_206A_206D_206F_206D_202E_202D_206A_200F_206E_206C_202E_202A_206C_202B_202A_202A_202E(ImGuiCol.TableBorderStrong, accentColor, true); - try + using (ImRaii.PushColor(ImGuiCol.TableBorderStrong, accentColor)) { accentColor = UiThemeUtils.AccentColor; accentColor.W = 0.15f; - ImRaii.ColorDisposable colorDisposable4 = _202C_206F_200D_202A_202B_206A_200F_206E_206E_202A_200B_202B_200B_200B_206C_202D_206B_202B_202D_206E_206E_200E_206F_206A_206D_206F_206D_202E_202D_206A_200F_206E_206C_202E_202A_206C_202B_202A_202A_202E(ImGuiCol.TableBorderLight, accentColor, true); - try + using (ImRaii.PushColor(ImGuiCol.TableBorderLight, accentColor)) { - using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1174986515), num4, ImGuiTableFlags.SizingStretchSame); - int num5 = ((!(bool)tableDisposable) ? 1380440181 : 1380440183); - int num10 = default(int); - int num13 = default(int); - while (true) + using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable("SequenceGridTable", val2, ImGuiTableFlags.SizingStretchSame); + if (!(bool)tableDisposable) { - int num6 = num5; - num = 1380440179; - num2 = num6; - int num7 = num2 + num; - int num8 = num2 & num; - switch (num7 - (num8 + num8)) - { - case 9: - num5 = ((num10 % num4 != 0) ? 1380440177 : 1380440180); - break; - case 0: - num5 = ((num10 % num4 != 0) ? 1380440178 : 1380440187); - break; - case 8: - _200C_206C_200D_200B_200D_206E_206F_202A_200E_200D_202E_206A_200D_206B_206F_200C_202E_206F_206A_200B_202C_206B_200C_206C_202E_206E_206A_202A_200B_200C_200D_206D_200B_202C_206B_206A_200E_206E_206F_200E_202E(); - num5 = 1380440178; - break; - case 11: - num5 = ((num10 % num4 != 0) ? 1380440176 : 1380440181); - break; - case 2: - { - _206A_206F_206D_202C_200E_202D_200E_200B_200E_200D_202E_206F_206E_206D_206D_206B_202C_206D_200C_206B_202A_200C_202C_202D_202C_206F_202B_202C_206F_202C_206D_206A_206F_200C_202E_202E_200C_206E_206A_206C_202E(); - DrawSequenceCell(255, currentSequence, implementedSequences, sequenceDetails, hasEndSequence); - int num18 = num10; - num = 1; - num2 = num18; - num10 = (num2 | num) + (num2 & num); - num5 = 1380440184; - break; - } - case 5: - num5 = ((num13 <= maxSeq) ? 1380440179 : 1380440186); - break; - case 10: - num5 = 1380440183; - break; - case 1: - { - _206A_206F_206D_202C_200E_202D_200E_200B_200E_200D_202E_206F_206E_206D_206D_206B_202C_206D_200C_206B_202A_200C_202C_202D_202C_206F_202B_202C_206F_202C_206D_206A_206F_200C_202E_202E_200C_206E_206A_206C_202E(); - DrawSequenceCell(num13, currentSequence, implementedSequences, sequenceDetails); - int num14 = num10; - num = 1; - num2 = num14; - int num15 = num2 ^ num; - int num16 = num2 & num; - num10 = num15 + (num16 + num16); - int num17 = num13; - num = 1; - num2 = num17; - num13 = (num2 | num) + (num2 & num); - num5 = 1380440182; - break; - } - case 4: - num10 = 0; - num13 = 0; - num5 = 1380440182; - break; - case 7: - _200C_206C_200D_200B_200D_206E_206F_202A_200E_200D_202E_206A_200D_206B_206F_200C_202E_206F_206A_200B_202C_206B_200C_206C_202E_206E_206A_202A_200B_200C_200D_206D_200B_202C_206B_206A_200E_206E_206F_200E_202E(); - num5 = 1380440177; - break; - case 3: - { - _206A_206F_206D_202C_200E_202D_200E_200B_200E_200D_202E_206F_206E_206D_206D_206B_202C_206D_200C_206B_202A_200C_202C_202D_202C_206F_202B_202C_206F_202C_206D_206A_206F_200C_202E_202E_200C_206E_206A_206C_202E(); - int num9 = num10; - num = 1; - num2 = num9; - int num11 = num2 ^ num; - int num12 = num2 & num; - num10 = num11 + (num12 + num12); - num5 = 1380440184; - break; - } - case 6: - return; - } + return; } - } - finally - { - int num5 = ((colorDisposable4 == null) ? 640774462 : 640774461); - while (true) + int num = 0; + for (int i = 0; i <= maxSeq; i++) { - int num19 = num5; - num = 640774460; - num2 = num19; - int num20 = num2 + num; - int num21 = num2 & num; - switch (num20 - (num21 + num21)) + if (num % val2 == 0) { - case 0: - num5 = 640774461; - break; - case 1: - _200C_202E_206A_206C_206B_206B_200B_200D_206C_200E_206B_200C_206A_200C_200B_202A_200C_202C_200D_200E_206D_200B_200E_206F_200D_206F_206D_200C_202C_206B_200F_206A_200D_202D_206B_202D_200F_200C_202B_206F_202E((IDisposable)colorDisposable4); - num5 = 640774462; - break; - case 2: - goto end_IL_0324; + ImGui.TableNextRow(); } - continue; - end_IL_0324: - break; + ImGui.TableNextColumn(); + DrawSequenceCell(i, currentSequence, implementedSequences, sequenceDetails); + num++; + } + if (num % val2 == 0) + { + ImGui.TableNextRow(); + } + ImGui.TableNextColumn(); + DrawSequenceCell(255, currentSequence, implementedSequences, sequenceDetails, hasEndSequence); + for (num++; num % val2 != 0; num++) + { + ImGui.TableNextColumn(); } } } - finally - { - int num5 = ((colorDisposable3 == null) ? 1736006227 : 1736006226); - while (true) - { - int num22 = num5; - num = 1736006227; - num2 = num22; - switch ((num2 | num) - (num2 & num)) - { - case 0: - goto end_IL_0391; - case 1: - _200C_202E_206A_206C_206B_206B_200B_200D_206C_200E_206B_200C_206A_200C_200B_202A_200C_202C_200D_200E_206D_200B_200E_206F_200D_206F_206D_200C_202C_206B_200F_206A_200D_202D_206B_202D_200F_200C_202B_206F_202E((IDisposable)colorDisposable3); - num5 = 1736006227; - break; - case 2: - num5 = 1736006226; - break; - } - continue; - end_IL_0391: - break; - } - } - } - finally - { - int num5 = ((colorDisposable2 == null) ? (-1229963098) : (-1229963099)); - while (true) - { - int num23 = num5; - num = -1229963097; - num2 = num23; - switch ((num2 | num) - (num2 & num)) - { - case 0: - num5 = -1229963099; - break; - case 1: - goto end_IL_0409; - case 2: - _200C_202E_206A_206C_206B_206B_200B_200D_206C_200E_206B_200C_206A_200C_200B_202A_200C_202C_200D_200E_206D_200B_200E_206F_200D_206F_206D_200C_202C_206B_200F_206A_200D_202D_206B_202D_200F_200C_202B_206F_202E((IDisposable)colorDisposable2); - num5 = -1229963098; - break; - } - continue; - end_IL_0409: - break; - } - } - } - finally - { - int num5 = ((colorDisposable == null) ? 1587692652 : 1587692655); - while (true) - { - int num24 = num5; - num = 1587692654; - num2 = num24; - int num25 = num2 + num; - int num26 = num2 & num; - switch (num25 - (num26 + num26)) - { - case 0: - num5 = 1587692655; - break; - case 2: - goto end_IL_0474; - case 1: - _200C_202E_206A_206C_206B_206B_200B_200D_206C_200E_206B_200C_206A_200C_200B_202A_200C_202C_200D_200E_206D_200B_200E_206F_200D_206F_206D_200C_202C_206B_200F_206A_200D_202D_206B_202D_200F_200C_202B_206F_202E((IDisposable)colorDisposable); - num5 = 1587692652; - break; - } - continue; - end_IL_0474: - break; } } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawSequenceCell(int sequenceId, byte? currentSequence, HashSet<int> implementedSequences, Dictionary<int, (int StepCount, string? Comment)> sequenceDetails, bool? forcedImplemented = null) { - int num = ((!currentSequence.HasValue) ? (-1470141168) : (-1470141176)); - ImDrawListPtr imDrawListPtr = default(ImDrawListPtr); - Vector2 vector6 = default(Vector2); - Vector2 vector7 = default(Vector2); - Vector4 vector4 = default(Vector4); - bool flag = default(bool); - Vector4 vector3 = default(Vector4); - bool flag3 = default(bool); - float x = default(float); - Vector2 vector8 = default(Vector2); - string text = default(string); - bool flag2 = default(bool); - bool? flag4 = default(bool?); - (int, string) value = default((int, string)); - while (true) + bool flag = currentSequence.HasValue && sequenceId == currentSequence.Value; + bool flag2 = forcedImplemented ?? implementedSequences.Contains(sequenceId); + bool flag3 = _hoveredSequenceId == sequenceId; + string text = ((sequenceId == 255) ? "255" : $"{sequenceId}"); + Vector4 input; + Vector4 input2; + if (flag) { - int num2 = num; - int num3 = -1470141179; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num13; - bool num14; - object obj; - Vector4 vector11; - Vector4 vector5; - Vector4 vector2; - Vector4 vector9; - Vector4 vector10; - float y; - ImU8String imU8String4; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 22: - imDrawListPtr.AddRect(vector6 - new Vector2(1f, 1f), vector6 + vector7 + new Vector2(1f, 1f), _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(new Vector4(vector4.X, vector4.Y, vector4.Z, vector4.W * 0.3f)), 3f, ImDrawFlags.None, 3f); - num = -1470141178; - continue; - case 13: - num13 = ((sequenceId == currentSequence.Value) ? 1 : 0); - goto IL_0431; - case 18: - num = -1470141176; - continue; - case 14: - num14 = implementedSequences.Contains(sequenceId); - goto IL_0540; - case 11: - num = ((!flag) ? (-1470141174) : (-1470141172)); - continue; - case 10: - obj = $"{sequenceId}"; - goto IL_051a; - case 12: - vector11 = new Vector4(0.98f, 0.98f, 1f, 1f); - goto IL_01be; - case 8: - vector5 = new Vector4(0.14f, 0.38f, 0.18f, 0.6f); - goto IL_0275; - case 20: - vector5 = new Vector4(0.12f, 0.34f, 0.16f, 0.5f); - goto IL_0275; - case 16: - vector2 = new Vector4(0.5f, 0.18f, 0.18f, 0.6f); - goto IL_02f1; - case 2: - vector11 = new Vector4(0.9f, 0.9f, 0.98f, 1f); - goto IL_01be; - case 6: - vector6 = _202D_202C_202D_200B_202E_200F_206E_206C_206C_200B_200E_202C_202A_200E_206D_200F_206D_206B_206B_202B_206B_206F_206C_202E_206B_202D_200F_200F_202D_202C_206F_206A_206D_206D_200C_200D_202D_200E_202E_206C_202E(); - vector7 = new Vector2(_200C_206F_200C_202D_206F_200C_202E_202A_200F_206A_200D_206B_206D_206C_202C_200C_202E_200C_200F_206C_200C_202D_206D_200D_206C_202B_202C_202B_202E_206C_202C_202C_202E_200D_206D_206A_202B_202A_202C_202A_202E().X, 75f); - imDrawListPtr = _206E_200C_200E_206F_200D_200D_202A_206B_202D_202D_206F_202C_200D_200C_200D_200F_200B_202A_206C_206B_202C_200E_202E_206A_206A_202C_202B_200E_206B_200C_206F_200C_200B_200B_206B_200E_200F_206E_200D_206D_202E(); - imDrawListPtr.AddRectFilled(vector6, vector6 + vector7, _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(vector3), 3f); - num = ((!flag3) ? (-1470141178) : (-1470141165)); - continue; - case 19: - vector2 = new Vector4(0.45f, 0.15f, 0.15f, 0.5f); - goto IL_02f1; - case 1: - vector9 = new Vector4(0.18f, 0.55f, 0.25f, 0.8f); - goto IL_03f7; - case 21: - num13 = 0; - goto IL_0431; - case 7: - vector9 = new Vector4(0.15f, 0.48f, 0.22f, 0.7f); - goto IL_03f7; - case 3: - imDrawListPtr.AddRect(vector6, vector6 + vector7, _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(vector4), 3f, ImDrawFlags.None, flag3 ? 2f : 1.5f); - x = vector7.X; - vector8 = _202B_206A_202C_206B_206F_206E_200F_206B_202B_206F_202D_206B_202E_206B_202A_202E_206F_202D_200F_202B_206B_200F_200D_200E_206C_200C_200C_200E_206C_200E_206E_206A_206D_200F_200F_202C_200C_206D_206F_200D_202E((ImU8String)text, false, -1f); - num = (flag2 ? (-1470141175) : (-1470141177)); - continue; - case 9: - num = (flag3 ? (-1470141171) : (-1470141167)); - continue; - case 0: - obj = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-439868132); - goto IL_051a; - case 17: - num14 = flag4 == true; - goto IL_0540; - case 15: - num = (flag3 ? (-1470141163) : (-1470141162)); - continue; - case 5: - num = (flag3 ? (-1470141180) : (-1470141182)); - continue; - case 4: - { - _hoveredSequenceId = sequenceId; - using (_206F_206B_200C_202E_202C_200B_200E_206E_202E_206C_202A_206A_206F_200C_200E_200F_206A_200D_200E_200F_200F_202D_200C_206D_202A_206C_206B_206A_200B_202A_202D_202A_200E_202D_206B_200B_202B_202B_206C_202E_202E()) - { - ImRaii.ColorDisposable colorDisposable = _202C_206F_200D_202A_202B_206A_200F_206E_206E_202A_200B_202B_200B_200B_206C_202D_206B_202B_202D_206E_206E_200E_206F_206A_206D_206F_206D_202E_202D_206A_200F_206E_206C_202E_202A_206C_202B_202A_202A_202E(ImGuiCol.Text, UiThemeUtils.PrimaryTextColor, true); - try - { - ImU8String imU8String = new ImU8String(9, 1); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-998481792)); - imU8String.AppendFormatted(sequenceId); - _202B_202C_202C_202B_200E_202C_200E_200C_202D_206E_200E_206E_202A_202D_200E_202D_206A_200E_206D_200C_200E_200F_202B_206B_200C_202E_200F_202B_206C_202D_206A_202B_206A_206A_206B_202E_200E_206B_206A_202E_202E(imU8String); - } - finally - { - num = ((colorDisposable == null) ? (-774145483) : (-774145482)); - while (true) - { - int num7 = num; - num3 = -774145481; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 2: - goto end_IL_0616; - case 1: - _200C_202E_206A_206C_206B_206B_200B_200D_206C_200E_206B_200C_206A_200C_200B_202A_200C_202C_200D_200E_206D_200B_200E_206F_200D_206F_206D_200C_202C_206B_200F_206A_200D_202D_206B_202D_200F_200C_202B_206F_202E((IDisposable)colorDisposable); - num = -774145483; - break; - case 0: - num = -774145482; - break; - } - continue; - end_IL_0616: - break; - } - } - _206D_206A_206C_202B_202D_206F_206A_206F_200E_202D_202B_200E_202E_202A_200E_202C_202E_202B_202C_200B_206D_202D_200C_206D_200D_202E_202D_202E_206A_202D_206E_200E_206C_206B_206E_200D_202B_202B_202C_200E_202E(); - num = ((!flag) ? (-1534095731) : (-1534095735)); - while (true) - { - int num10 = num; - num3 = -1534095732; - num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 0: - num = -1534095735; - break; - case 6: - _206D_206A_206C_202B_202D_206F_206A_206F_200E_202D_202B_200E_202E_202A_200E_202C_202E_202B_202C_200B_206D_202D_200C_206D_200D_202E_202D_202E_206A_202D_206E_200E_206C_206B_206E_200D_202B_202B_202C_200E_202E(); - _200B_200C_200C_202A_206B_202E_200B_206E_200F_202C_202C_202C_206C_206E_202C_206F_200C_202C_202D_206B_206E_200E_200C_206A_200E_206B_206E_200F_202C_202A_206D_206B_200D_206F_206E_206E_206B_202E_206E_202D_202E(250f); - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref UiThemeUtils.DimTextColor, (ImU8String)value.Item2); - _202C_206F_206A_202E_200C_200E_202B_206D_206C_206B_200B_202C_202A_202D_206D_202D_202B_206A_206F_200E_202C_206B_206D_200E_206D_206C_206F_200F_206A_206E_202C_200B_202C_206C_200E_206C_200F_200E_200C_202D_202E(); - num = -1534095730; - break; - case 1: - num = (flag ? (-1534095730) : (-1534095729)); - break; - case 5: - num = ((!sequenceDetails.TryGetValue(sequenceId, out value)) ? (-1534095731) : (-1534095736)); - break; - case 2: - num = ((!flag2) ? (-1534095733) : (-1534095740)); - break; - case 4: - { - _202E_202D_202E_206D_206B_206F_202E_202D_200F_206C_200F_202B_206B_202D_206B_200D_206B_206A_202E_200B_202B_202E_200F_202A_200C_200D_206B_202B_206B_206D_202A_206A_206D_202B_200B_206C_202A_206E_202A_206E_202E(_200D_206C_200F_202A_202E_206D_206E_202E_202A_206C_202C_202C_200C_202C_206D_202D_206F_200C_206F_200B_206A_200C_202A_200B_206E_202C_206D_202E_202A_200D_200F_200B_202B_202C_202C_206E_200F_200C_202A_202A_202E()); - Vector4 vector = new Vector4(0.5f, 1f, 0.6f, 1f); - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref vector, (ImU8String)_200F_200C_206B_200B_206C_200E_206F_206C_206D_206A_200E_202B_206B_206E_202A_206C_202D_202E_200D_206E_202E_202A_206D_200B_206B_202C_202A_206A_206E_206D_202C_200F_206D_206E_202C_200E_202D_206F_200D_200C_202E(FontAwesomeIcon.CheckCircle)); - _206A_202D_200F_202E_202E_200C_202C_206C_202A_200C_206F_206E_200B_206F_202B_202E_200E_202B_200F_206A_206E_202E_202E_202D_200E_202D_202C_202C_202D_206E_200E_200E_202B_206F_200C_200F_200F_206B_206E_202B_202E(); - _200E_202D_200B_206E_200E_200D_202D_202B_202D_206F_206B_206A_202A_202A_206F_206B_200D_200F_200E_202C_206C_200B_206C_200E_200E_202E_200C_206C_202D_202A_206E_206B_200C_202D_200F_202C_206C_202C_202E_200D_202E(); - vector = new Vector4(0.5f, 1f, 0.6f, 1f); - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref vector, (ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1366731868)); - _206D_200C_200F_206A_206D_206E_202E_200F_206D_206B_202B_200C_200E_200D_206B_202D_202B_200D_202B_202D_202A_200C_202A_206A_200C_200B_200B_200C_202D_200E_202B_202B_202B_206D_206E_202E_206E_200D_200C_202D_202E(); - ImU8String imU8String2 = new ImU8String(6, 0); - imU8String2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1644871220)); - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref UiThemeUtils.PrimaryTextColor, imU8String2); - _200E_202D_200B_206E_200E_200D_202D_202B_202D_206F_206B_206A_202A_202A_206F_206B_200D_200F_200E_202C_206C_200B_206C_200E_200E_202E_200C_206C_202D_202A_206E_206B_200C_202D_200F_202C_206C_202C_202E_200D_202E(); - vector = new Vector4(0.7f, 0.9f, 1f, 1f); - ImU8String imU8String3 = new ImU8String(0, 1); - imU8String3.AppendFormatted(value.Item1); - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref vector, imU8String3); - num = (_200B_202E_200B_206B_206D_200F_202D_200F_202D_202A_202E_200B_202E_200B_206A_202A_200E_202B_200B_200F_202C_206E_206F_206C_200E_202D_202C_200B_202A_200B_200B_202B_200E_202A_200F_206F_206C_200F_200F_200C_202E(value.Item2) ? (-1534095730) : (-1534095734)); - break; - } - case 8: - { - _206D_206A_206C_202B_202D_206F_206A_206F_200E_202D_202B_200E_202E_202A_200E_202C_202E_202B_202C_200B_206D_202D_200C_206D_200D_202E_202D_202E_206A_202D_206E_200E_206C_206B_206E_200D_202B_202B_202C_200E_202E(); - Vector4 vector = new Vector4(1f, 0.85f, 0.5f, 1f); - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref vector, (ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2072567973)); - num = -1534095733; - break; - } - case 3: - { - _202E_202D_202E_206D_206B_206F_202E_202D_200F_206C_200F_202B_206B_202D_206B_200D_206B_206A_202E_200B_202B_202E_200F_202A_200C_200D_206B_202B_206B_206D_202A_206A_206D_202B_200B_206C_202A_206E_202A_206E_202E(_200D_206C_200F_202A_202E_206D_206E_202E_202A_206C_202C_202C_200C_202C_206D_202D_206F_200C_206F_200B_206A_200C_202A_200B_206E_202C_206D_202E_202A_200D_200F_200B_202B_202C_202C_206E_200F_200C_202A_202A_202E()); - Vector4 vector = new Vector4(1f, 0.5f, 0.5f, 1f); - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref vector, (ImU8String)_200F_200C_206B_200B_206C_200E_206F_206C_206D_206A_200E_202B_206B_206E_202A_206C_202D_202E_200D_206E_202E_202A_206D_200B_206B_202C_202A_206A_206E_206D_202C_200F_206D_206E_202C_200E_202D_206F_200D_200C_202E(FontAwesomeIcon.TimesCircle)); - _206A_202D_200F_202E_202E_200C_202C_206C_202A_200C_206F_206E_200B_206F_202B_202E_200E_202B_200F_206A_206E_202E_202E_202D_200E_202D_202C_202C_202D_206E_200E_200E_202B_206F_200C_200F_200F_206B_206E_202B_202E(); - _200E_202D_200B_206E_200E_200D_202D_202B_202D_206F_206B_206A_202A_202A_206F_206B_200D_200F_200E_202C_206C_200B_206C_200E_200E_202E_200C_206C_202D_202A_206E_206B_200C_202D_200F_202C_206C_202C_202E_200D_202E(); - vector = new Vector4(1f, 0.5f, 0.5f, 1f); - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref vector, (ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(137146653)); - _206D_200C_200F_206A_206D_206E_202E_200F_206D_206B_202B_200C_200E_200D_206B_202D_202B_200D_202B_202D_202A_200C_202A_206A_200C_200B_200B_200C_202D_200E_202B_202B_202B_206D_206E_202E_206E_200D_200C_202D_202E(); - _200B_200C_200C_202A_206B_202E_200B_206E_200F_202C_202C_202C_206C_206E_202C_206F_200C_202C_202D_206B_206E_200E_200C_206A_200E_206B_206E_200F_202C_202A_206D_206B_200D_206F_206E_206E_206B_202E_206E_202D_202E(250f); - _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref UiThemeUtils.DimTextColor, (ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1810969366)); - _202C_206F_206A_202E_200C_200E_202B_206D_206C_206B_200B_202C_202A_202D_206D_202D_202B_206A_206F_200E_202C_206B_206D_200E_206D_206C_206F_200F_206A_206E_202C_200B_202C_206C_200E_206C_200F_200E_200C_202D_202E(); - num = -1534095730; - break; - } - case 7: - goto end_IL_0687; - } - continue; - end_IL_0687: - break; - } - } - break; - } - IL_02f1: - vector3 = vector2; - vector4 = new Vector4(1f, 0.5f, 0.5f, flag3 ? 0.6f : 0.3f); - num = -1470141181; - continue; - IL_0540: - flag = num14; - flag3 = _hoveredSequenceId == sequenceId; - num = ((sequenceId == 255) ? (-1470141179) : (-1470141169)); - continue; - IL_0275: - vector3 = vector5; - vector4 = new Vector4(0.5f, 1f, 0.6f, flag3 ? 0.5f : 0.25f); - num = -1470141181; - continue; - IL_0431: - flag2 = (byte)num13 != 0; - flag4 = forcedImplemented; - num = (flag4.HasValue ? (-1470141164) : (-1470141173)); - continue; - IL_051a: - text = (string)obj; - num = ((!flag2) ? (-1470141170) : (-1470141184)); - continue; - IL_03f7: - vector3 = vector9; - vector4 = new Vector4(0.5f, 1f, 0.6f, flag3 ? 0.8f : 0.5f); - num = -1470141181; - continue; - IL_01be: - vector10 = vector11; - y = vector6.Y + (vector7.Y - vector8.Y) * 0.5f; - imDrawListPtr.AddText(new Vector2(vector6.X + (x - vector8.X) * 0.5f, y), _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(vector10), text); - _202B_206F_200B_206F_206E_206B_200B_200C_200C_200C_200D_206C_206D_202C_202B_200F_206A_202A_202D_200D_206B_206C_206A_200B_206B_206D_200B_206A_202E_206F_206D_200F_200B_206B_202D_206D_202B_200F_202D_206C_202E(vector6); - imU8String4 = new ImU8String(5, 1); - imU8String4.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-911821499)); - imU8String4.AppendFormatted(sequenceId); - _202A_206F_202B_206C_200C_200C_200D_200F_202A_202B_206A_206C_200E_206E_202E_202E_202B_202A_206F_200D_200D_200D_206F_206F_206D_200D_206F_206A_200C_202C_202B_206B_206D_206D_206D_200F_200E_202E_200F_206C_202E(imU8String4, vector7, ImGuiButtonFlags.None); - if (_200D_202E_200E_206F_202D_200F_202A_206F_206C_206C_202B_206E_202A_202B_202C_202E_202E_200D_202E_206E_200C_200E_200E_202D_202D_202D_206A_206D_206D_206B_202C_200C_200D_200D_200F_206E_202B_206A_206A_202C_202E()) - { - num = -1470141183; - continue; - } - num = ((_hoveredSequenceId != sequenceId) ? (-580875190) : (-580875189)); - while (true) - { - int num15 = num; - num3 = -580875190; - num4 = num15; - int num16 = num4 + num3; - int num17 = num4 & num3; - switch (num16 - (num17 + num17)) - { - default: - continue; - case 2: - num = -580875189; - continue; - case 1: - _hoveredSequenceId = -1; - num = -580875190; - continue; - case 0: - break; - } - break; - } - break; - } - break; + input = (flag3 ? new Vector4(0.18f, 0.55f, 0.25f, 0.8f) : new Vector4(0.15f, 0.48f, 0.22f, 0.7f)); + input2 = new Vector4(0.5f, 1f, 0.6f, flag3 ? 0.8f : 0.5f); } - _202B_206F_200B_206F_206E_206B_200B_200C_200C_200C_200D_206C_206D_202C_202B_200F_206A_202A_202D_200D_206B_206C_206A_200B_206B_206D_200B_206A_202E_206F_206D_200F_200B_206B_202D_206D_202B_200F_202D_206C_202E(vector6 + new Vector2(0f, vector7.Y)); + else if (flag2) + { + input = (flag3 ? new Vector4(0.14f, 0.38f, 0.18f, 0.6f) : new Vector4(0.12f, 0.34f, 0.16f, 0.5f)); + input2 = new Vector4(0.5f, 1f, 0.6f, flag3 ? 0.5f : 0.25f); + } + else + { + input = (flag3 ? new Vector4(0.5f, 0.18f, 0.18f, 0.6f) : new Vector4(0.45f, 0.15f, 0.15f, 0.5f)); + input2 = new Vector4(1f, 0.5f, 0.5f, flag3 ? 0.6f : 0.3f); + } + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + Vector2 vector = new Vector2(ImGui.GetContentRegionAvail().X, 75f); + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + windowDrawList.AddRectFilled(cursorScreenPos, cursorScreenPos + vector, ImGui.ColorConvertFloat4ToU32(input), 3f); + if (flag3) + { + windowDrawList.AddRect(cursorScreenPos - new Vector2(1f, 1f), cursorScreenPos + vector + new Vector2(1f, 1f), ImGui.ColorConvertFloat4ToU32(new Vector4(input2.X, input2.Y, input2.Z, input2.W * 0.3f)), 3f, ImDrawFlags.None, 3f); + } + windowDrawList.AddRect(cursorScreenPos, cursorScreenPos + vector, ImGui.ColorConvertFloat4ToU32(input2), 3f, ImDrawFlags.None, flag3 ? 2f : 1.5f); + float x = vector.X; + Vector2 vector2 = ImGui.CalcTextSize(text); + Vector4 input3 = (flag ? new Vector4(0.98f, 0.98f, 1f, 1f) : new Vector4(0.9f, 0.9f, 0.98f, 1f)); + float y = cursorScreenPos.Y + (vector.Y - vector2.Y) * 0.5f; + windowDrawList.AddText(new Vector2(cursorScreenPos.X + (x - vector2.X) * 0.5f, y), ImGui.ColorConvertFloat4ToU32(input3), text); + ImGui.SetCursorScreenPos(cursorScreenPos); + ImU8String strId = new ImU8String(5, 1); + strId.AppendLiteral("##Seq"); + strId.AppendFormatted(sequenceId); + ImGui.InvisibleButton(strId, vector); + if (ImGui.IsItemHovered()) + { + _hoveredSequenceId = sequenceId; + using (ImRaii.Tooltip()) + { + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.PrimaryTextColor)) + { + ImU8String text2 = new ImU8String(9, 1); + text2.AppendLiteral("Sequence "); + text2.AppendFormatted(sequenceId); + ImGui.Text(text2); + } + ImGui.Separator(); + if (flag2 && sequenceDetails.TryGetValue(sequenceId, out (int, string) value)) + { + ImGui.PushFont(UiBuilder.IconFont); + ImGui.TextColored(new Vector4(0.5f, 1f, 0.6f, 1f), FontAwesomeIcon.CheckCircle.ToIconString()); + ImGui.PopFont(); + ImGui.SameLine(); + ImGui.TextColored(new Vector4(0.5f, 1f, 0.6f, 1f), "Implemented"); + ImGui.Spacing(); + ImU8String text3 = new ImU8String(6, 0); + text3.AppendLiteral("Steps:"); + ImGui.TextColored(in UiThemeUtils.PrimaryTextColor, text3); + ImGui.SameLine(); + Vector4 col = new Vector4(0.7f, 0.9f, 1f, 1f); + ImU8String text4 = new ImU8String(0, 1); + text4.AppendFormatted(value.Item1); + ImGui.TextColored(in col, text4); + if (!string.IsNullOrEmpty(value.Item2)) + { + ImGui.Separator(); + ImGui.PushTextWrapPos(250f); + ImGui.TextColored(in UiThemeUtils.DimTextColor, value.Item2); + ImGui.PopTextWrapPos(); + } + } + else if (!flag2) + { + ImGui.PushFont(UiBuilder.IconFont); + ImGui.TextColored(new Vector4(1f, 0.5f, 0.5f, 1f), FontAwesomeIcon.TimesCircle.ToIconString()); + ImGui.PopFont(); + ImGui.SameLine(); + ImGui.TextColored(new Vector4(1f, 0.5f, 0.5f, 1f), "Not Implemented"); + ImGui.Spacing(); + ImGui.PushTextWrapPos(250f); + ImGui.TextColored(in UiThemeUtils.DimTextColor, "This sequence is missing from the quest path."); + ImGui.PopTextWrapPos(); + } + if (flag) + { + ImGui.Separator(); + ImGui.TextColored(new Vector4(1f, 0.85f, 0.5f, 1f), "► Currently Active"); + } + } + } + else if (_hoveredSequenceId == sequenceId) + { + _hoveredSequenceId = -1; + } + ImGui.SetCursorScreenPos(cursorScreenPos + new Vector2(0f, vector.Y)); } - [MethodImpl(MethodImplOptions.NoInlining)] internal static string GetSequenceFilename(int questId, string questName) { - string value = _200E_200D_200F_202C_206D_202C_202E_202B_206E_206A_206D_202D_206A_206A_206A_206F_206E_206D_200D_200D_200F_200B_200E_200C_200B_206A_206C_202A_206A_206F_200E_206F_202A_206C_200E_202C_202C_206E_206C_206E_202E(questName ?? string.Empty); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(6, 2); - defaultInterpolatedStringHandler.AppendFormatted(questId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1981151499)); - defaultInterpolatedStringHandler.AppendFormatted(value); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-649244264)); - return defaultInterpolatedStringHandler.ToStringAndClear(); + string value = (questName ?? string.Empty).Trim(); + return $"{questId}_{value}.json"; } public void SetLookedUpQuest(ElementId? id) { _lookedUpQuestId = id; } - - static Vector2 _202D_202C_202D_200B_202E_200F_206E_206C_206C_200B_200E_202C_202A_200E_206D_200F_206D_206B_206B_202B_206B_206F_206C_202E_206B_202D_200F_200F_202D_202C_206F_206A_206D_206D_200C_200D_202D_200E_202E_206C_202E() - { - return ImGui.GetCursorScreenPos(); - } - - static Vector2 _200C_206F_200C_202D_206F_200C_202E_202A_200F_206A_200D_206B_206D_206C_202C_200C_202E_200C_200F_206C_200C_202D_206D_200D_206C_202B_202C_202B_202E_206C_202C_202C_202E_200D_206D_206A_202B_202A_202C_202A_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static float _200B_206E_202A_206F_206E_206B_206B_202E_202C_200C_200F_206D_200E_206F_200F_202D_206D_200D_206C_206C_206A_200D_200D_202E_206C_206C_206B_206D_200D_202E_202A_202B_202B_200C_202E_200D_206A_206B_202A_202D_202E() - { - return ImGui.GetFrameHeightWithSpacing(); - } - - static ImGuiStylePtr _200B_202B_202D_202E_206C_206A_200C_202C_206D_202A_206D_206B_202E_202E_206C_202C_200D_206B_206D_202E_206F_202A_200C_202A_206F_206F_206D_206A_202D_200E_202E_202B_206C_206B_206C_206A_202E_202B_200F_206F_202E() - { - return ImGui.GetStyle(); - } - - static ImDrawListPtr _206E_200C_200E_206F_200D_200D_202A_206B_202D_202D_206F_202C_200D_200C_200D_200F_200B_202A_206C_206B_202C_200E_202E_206A_206A_202C_202B_200E_206B_200C_206F_200C_200B_200B_206B_200E_200F_206E_200D_206D_202E() - { - return ImGui.GetWindowDrawList(); - } - - static uint _206E_202B_206F_202E_206E_200C_200E_200B_202A_200E_202E_200B_200C_206E_200C_200B_200D_202C_200E_200D_202B_202C_202C_202D_200B_200E_206E_200D_202B_202B_206E_202D_202C_202A_202B_200C_202E_200C_206B_200E_202E(Vector4 P_0) - { - return ImGui.ColorConvertFloat4ToU32(P_0); - } - - static float _200F_202A_206E_200C_202C_202D_206C_206C_202B_206E_202B_202B_202C_206D_206C_200C_206B_206A_206D_206D_202E_200B_206A_206C_202E_200F_200D_206A_200B_202E_200D_202D_200E_206E_200B_202D_206B_206A_206E_206D_202E() - { - return ImGui.GetTextLineHeight(); - } - - static float _206E_200C_200C_202E_206F_202E_200F_200E_200F_206F_206B_206B_206A_202B_202B_202D_202D_206F_206E_200B_206F_200F_200D_200D_206E_200E_206D_206E_206C_206D_206E_202B_200B_200D_206A_206D_206D_202C_202D_202E_202E() - { - return ImGui.GetCursorPosY(); - } - - static void _202C_206E_206D_200E_206E_200F_206D_206F_200B_202A_200B_202D_202C_206D_202B_202D_200D_200F_202B_200E_202A_200D_200B_206B_202C_202B_200D_202A_202D_202B_202B_206D_206D_206A_202A_202C_200B_206A_200C_206C_202E(float P_0) - { - ImGui.SetCursorPosY(P_0); - } - - static float _206F_206D_206B_206B_202D_202A_202A_200F_200B_202E_206B_200B_206B_202A_202D_200E_200D_206F_206E_206D_206E_206E_206A_206E_200E_206C_200C_206C_200B_202B_206E_202D_200D_206E_202D_200D_206F_206D_206B_202B_202E() - { - return ImGui.GetCursorPosX(); - } - - static void _202C_206D_200E_200B_200B_202D_206A_200F_200E_202B_206B_200D_200E_200F_206D_206B_206B_202B_202C_200E_206C_200C_206F_200E_202A_200B_206E_202B_202A_206F_206A_202D_206B_206B_202E_202C_206E_202D_200C_202C_202E(float P_0) - { - ImGui.SetCursorPosX(P_0); - } - - static void _206D_206B_206B_206B_206A_200D_202B_206C_200F_206B_202A_202E_200F_206F_206C_202B_200E_200B_200B_200F_202C_202D_206A_202E_202C_202A_206C_200F_202B_202C_206C_202E_200B_202A_200D_200D_202D_206F_200C_206B_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static void _206F_200D_202B_200C_202D_202A_200C_200F_206C_200C_202A_200E_206A_202C_202E_200E_206A_200F_206B_206D_206A_206F_202B_206B_206E_200E_202C_206A_200C_200F_202A_206A_202A_200E_206C_206D_206C_200E_202C_202C_202E(float P_0) - { - ImGui.SameLine(P_0); - } - - static ImRaii.ColorDisposable _202C_206F_200D_202A_202B_206A_200F_206E_206E_202A_200B_202B_200B_200B_206C_202D_206B_202B_202D_206E_206E_200E_206F_206A_206D_206F_206D_202E_202D_206A_200F_206E_206C_202E_202A_206C_202B_202A_202A_202E(ImGuiCol P_0, Vector4 P_1, bool P_2) - { - return ImRaii.PushColor(P_0, P_1, P_2); - } - - static bool _202A_206F_200B_200B_206D_200E_206D_200D_206A_200D_202D_206D_200C_202C_206B_202A_206F_202B_206E_206A_200B_200E_206D_200D_200B_206F_202A_202B_200B_202A_200B_206E_206D_202C_202E_200B_202A_202B_206E_200E_202E(FontAwesomeIcon P_0) - { - return ImGuiComponents.IconButton(P_0); - } - - static void _200C_202E_206A_206C_206B_206B_200B_200D_206C_200E_206B_200C_206A_200C_200B_202A_200C_202C_200D_200E_206D_200B_200E_206F_200D_206F_206D_200C_202C_206B_200F_206A_200D_202D_206B_202D_200F_200C_202B_206F_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static Vector2 _202E_206D_202A_202A_200F_202C_206B_200D_200B_206E_206C_200F_202E_206C_200D_200E_206E_206A_202B_202B_206E_202C_202B_202A_202C_200D_206F_206E_202A_202C_200E_206E_200C_206F_206C_206C_202D_206A_200B_202B_202E() - { - return ImGui.GetWindowPos(); - } - - static Vector2 _206F_206C_202A_206C_206B_200B_200D_202E_202E_202C_206C_206A_202D_200F_200C_200E_200D_200B_202D_206B_200D_200F_200D_202C_206A_206B_200D_206E_206F_206E_206B_200B_206C_202E_200C_206E_206F_206A_200B_202E_202E() - { - return ImGui.GetWindowSize(); - } - - static bool _202B_200B_206B_200C_200C_200B_202C_202D_200F_200C_200B_202E_202B_200B_206C_200E_200D_202E_202E_206C_202E_200B_206D_206F_202D_200D_200E_202C_200C_200F_200E_200E_202D_202D_202A_206B_202B_200D_202C_200C_202E(ElementId P_0, ElementId P_1) - { - return P_0 == P_1; - } - - static bool _200E_206C_206B_200D_206C_200B_206B_206D_202C_206C_206C_206A_206D_202A_200F_206E_200D_200E_200C_202E_202A_200B_206B_206F_202C_200F_200F_200B_206C_202C_206A_200D_200F_206D_206C_206C_206F_200B_200B_206E_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } - - static void _206D_200C_200F_206A_206D_206E_202E_200F_206D_206B_202B_200C_200E_200D_206B_202D_202B_200D_202B_202D_202A_200C_202A_206A_200C_200B_200B_200C_202D_200E_202B_202B_202B_206D_206E_202E_206E_200D_200C_202D_202E() - { - ImGui.Spacing(); - } - - static bool _200D_202D_202A_206C_202D_200D_206A_202D_206B_206D_206C_206E_206E_200F_206E_206D_206C_202D_200E_206A_206C_200C_206F_202B_206F_206B_200E_200B_200C_202A_206A_206E_202E_206D_202B_200B_206A_202D_206F_200C_202E(ImU8String P_0, Vector2 P_1) - { - return ImGui.Button(P_0, P_1); - } - - static ushort _200E_202C_202B_202A_202B_200B_202A_200D_200D_206F_200D_202D_206E_206F_202C_206E_202A_200E_202C_206B_200B_206B_200F_206A_200E_202C_206A_202B_206F_206E_200E_202E_206A_206A_200B_200C_202C_206E_202D_200D_202E(ElementId P_0) - { - return P_0.Value; - } - - static void _206E_206B_200E_206B_206C_202E_200E_200E_202A_200F_202C_202B_200E_200D_206E_202A_200C_206D_202D_206A_206D_200C_206A_202C_202A_206C_202D_206C_200D_202C_206D_206F_202D_200F_206A_202A_202E_206C_202B_206D_202E(ImU8String P_0) - { - ImGui.SetClipboardText(P_0); - } - - static CultureInfo _206A_202E_200E_200F_200E_200E_200D_206B_202D_206E_200D_202A_206B_202C_206D_202B_202C_200C_202B_202B_206B_200F_206A_202E_206E_202B_200D_202B_202E_206E_202B_206A_202A_206C_202B_206A_202B_202E_206D_200F_202E() - { - return CultureInfo.InvariantCulture; - } - - static bool _200D_202E_200E_206F_202D_200F_202A_206F_206C_206C_202B_206E_202A_202B_202C_202E_202E_200D_202E_206E_200C_200E_200E_202D_202D_202D_206A_206D_206D_206B_202C_200C_200D_200D_200F_206E_202B_206A_206A_202C_202E() - { - return ImGui.IsItemHovered(); - } - - static void _202A_202A_200D_206D_206F_202D_200B_206B_202A_200F_200C_200E_202B_206A_202B_202E_200F_202D_206A_206C_200E_202C_200C_202D_200D_206B_206C_202B_206D_206E_200D_202A_206C_200C_206F_200D_202D_206E_200F_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } - - static ImFontPtr _200D_206C_200F_202A_202E_206D_206E_202E_202A_206C_202C_202C_200C_202C_206D_202D_206F_200C_206F_200B_206A_200C_202A_200B_206E_202C_206D_202E_202A_200D_200F_200B_202B_202C_202C_206E_200F_200C_202A_202A_202E() - { - return UiBuilder.IconFont; - } - - static ImRaii.FontDisposable _202E_206E_200F_200F_200F_206D_202D_202C_206A_206C_206B_206B_200F_202D_206C_200E_202D_206B_206D_200C_206F_200C_200C_206D_206A_202A_206A_202E_206D_200D_206C_206F_202D_200F_200E_202E_200F_200D_206F_202E_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static string _200F_200C_206B_200B_206C_200E_206F_206C_206D_206A_200E_202B_206B_206E_202A_206C_202D_202E_200D_206E_202E_202A_206D_200B_206B_202C_202A_206A_206E_206D_202C_200F_206D_206E_202C_200E_202D_206F_200D_200C_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static void _200E_202D_200B_206E_200E_200D_202D_202B_202D_206F_206B_206A_202A_202A_206F_206B_200D_200F_200E_202C_206C_200B_206C_200E_200E_202E_200C_206C_202D_202A_206E_206B_200C_202D_200F_202C_206C_202C_202E_200D_202E() - { - ImGui.SameLine(); - } - - static Vector2 _202B_206A_202C_206B_206F_206E_200F_206B_202B_206F_202D_206B_202E_206B_202A_202E_206F_202D_200F_202B_206B_200F_200D_200E_206C_200C_200C_200E_206C_200E_206E_206A_206D_200F_200F_202C_200C_206D_206F_200D_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static void _206D_202D_200D_206E_200D_206F_206D_200E_206F_202B_202C_200E_200D_202E_206B_206A_200F_206D_206C_200F_206B_202C_202B_200D_206C_202D_206B_202E_202B_206B_206C_206E_200E_202C_202E_206E_206F_206F_202D_202A_202E(float P_0) - { - ImGui.SetNextItemWidth(P_0); - } - - static bool _200F_200B_206D_202E_206B_202E_202A_202B_206F_202D_206E_202D_200B_206C_200B_202C_200D_202A_206E_206A_200D_200C_200E_206C_206E_200E_206E_206F_206F_202A_206E_202C_200C_202B_206F_206F_200F_200D_200F_200D_202E(ImU8String P_0, ImU8String P_1, ref string P_2, int P_3, ImGuiInputTextFlags P_4, ImGui.ImGuiInputTextCallbackDelegate P_5) - { - return ImGui.InputTextWithHint(P_0, P_1, ref P_2, P_3, P_4, P_5); - } - - static bool _206F_200D_206B_200B_202B_206A_206C_206B_200B_206D_200F_200D_202E_206B_206F_200B_202A_206E_200B_206C_200C_200D_206D_200E_202D_206D_202D_202B_200C_200B_206C_202C_206F_202A_200E_200C_206B_206F_202D_200E_202E(FontAwesomeIcon P_0, string P_1, Vector4? P_2, Vector4? P_3, Vector4? P_4, Vector2? P_5) - { - return ImGuiComponents.IconButtonWithText(P_0, P_1, P_2, P_3, P_4, P_5); - } - - static QuestId _206F_202A_200B_206F_202C_202B_200E_202C_206C_200F_200E_206D_202E_206D_202B_202E_202C_202C_200B_202B_202B_206E_202A_200F_202C_202A_200B_200D_206D_202D_202A_206B_202C_206B_206D_200B_206C_200D_206C_200D_202E(ushort P_0) - { - return new QuestId(P_0); - } - - static void _202E_202D_202E_206D_206B_206F_202E_202D_200F_206C_200F_202B_206B_202D_206B_200D_206B_206A_202E_200B_202B_202E_200F_202A_200C_200D_206B_202B_206B_206D_202A_206A_206D_202B_200B_206C_202A_206E_202A_206E_202E(ImFontPtr P_0) - { - ImGui.PushFont(P_0); - } - - static void _202B_206F_200B_206F_206E_206B_200B_200C_200C_200C_200D_206C_206D_202C_202B_200F_206A_202A_202D_200D_206B_206C_206A_200B_206B_206D_200B_206A_202E_206F_206D_200F_200B_206B_202D_206D_202B_200F_202D_206C_202E(Vector2 P_0) - { - ImGui.SetCursorScreenPos(P_0); - } - - static void _206A_202D_200F_202E_202E_200C_202C_206C_202A_200C_206F_206E_200B_206F_202B_202E_200E_202B_200F_206A_206E_202E_202E_202D_200E_202D_202C_202C_202D_206E_200E_200E_202B_206F_200C_200F_200F_206B_206E_202B_202E() - { - ImGui.PopFont(); - } - - static float _202A_200E_206E_202A_202C_200B_200F_200D_206A_200C_200F_206D_200E_202C_206B_206E_206D_200D_200C_206E_206D_206B_200F_206A_206A_200E_206E_202E_200F_200E_202B_200F_200D_206A_202E_202E_200C_202B_202D_200E_202E(float P_0, float P_1) - { - return MathF.Max(P_0, P_1); - } - - static float _202E_206A_206A_206E_200D_202C_206B_200B_206B_206D_206C_202C_206D_206C_202B_202E_202D_206E_202C_206F_202A_202B_200B_202E_206A_206F_202C_206C_200B_202D_206A_202B_202C_206A_202B_200E_202B_202D_206C_206C_202E() - { - return ImGui.GetFrameHeight(); - } - - static double _206B_200D_202A_202A_200D_206E_200F_202A_206D_206F_202B_200D_206F_206C_200F_202D_206D_200C_200C_206C_202C_202B_202D_202C_200F_200D_200F_200B_202B_206D_200C_200C_202C_202D_200B_200F_206C_202E_200E_202C_202E() - { - return ImGui.GetTime(); - } - - static float _206E_206E_206E_202C_200C_200E_200B_200F_202A_206D_200F_206F_200B_206D_206B_206E_202E_206F_206A_206D_202B_200D_200D_206D_202D_206B_200D_202A_200B_202B_206C_200F_200E_200B_200B_206D_200F_202D_206E_200C_202E(float P_0) - { - return MathF.Sin(P_0); - } - - static int _206A_206F_206C_200F_202A_202D_206E_202A_200B_202B_206F_202C_206F_200C_200F_202C_202A_206D_206D_200E_202B_202C_200B_202C_200E_202B_200C_206E_206C_202B_202E_206A_200B_200E_200F_202B_202B_202C_202B_200C_202E(IEnumerable<int> P_0) - { - return P_0.Max(); - } - - static List<QuestSequence> _200D_206E_200B_202D_206D_200C_206A_200F_200C_200B_206D_202C_202C_202A_206E_200E_202A_206C_202C_206B_200B_206F_206B_202C_206A_206B_206F_200F_200C_200C_202E_206F_200F_206E_206F_200E_202D_206F_206D_202E_202E(QuestRoot P_0) - { - return P_0.QuestSequence; - } - - static byte _206C_200B_200F_206C_200F_200F_200D_206E_200C_202B_202C_202B_202A_206B_200C_200B_202E_200D_206D_202B_202B_202E_206C_200D_206E_202B_200D_202C_200F_206E_200D_206D_202C_202A_206B_200D_206C_206E_206F_202D_202E(QuestSequence P_0) - { - return P_0.Sequence; - } - - static List<QuestStep> _206E_200B_206C_206E_202B_200F_202E_200C_206A_200D_202E_200F_206A_200E_206F_206A_206C_200F_206B_200C_202C_206E_202D_206C_206F_206C_206C_206B_200B_206D_202A_206C_202C_202E_206D_206B_200E_202B_206B_200D_202E(QuestSequence P_0) - { - return P_0.Steps; - } - - static string _206A_202B_200B_206C_202D_200C_200F_200B_202B_200D_206D_202C_202B_200F_206F_206B_206E_202A_200D_206A_202E_202C_206E_202B_200F_202C_202A_202D_206B_206E_206F_200C_202E_206E_206F_206C_200B_206F_206F_202D_202E(QuestSequence P_0) - { - return P_0.Comment; - } - - static string _206F_200F_202D_206D_202A_202D_202A_206B_200E_206D_206F_200D_202C_200B_202B_202A_206A_200F_200C_206B_202B_206C_206A_206C_200C_206F_202A_202B_206D_202A_206B_200E_206F_200E_206D_200F_202C_200D_202B_206F_202E(Exception P_0) - { - return P_0.Message; - } - - static string _206A_200D_200C_206B_206B_202C_206F_200B_202D_206C_202B_200B_206B_202E_206D_202A_206F_200E_200D_206F_200D_206D_206D_206A_200C_202A_200F_200B_202A_200D_202C_206F_206A_202D_200E_200F_206C_206D_202D_206D_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static void _200E_206A_202C_206C_202A_202C_206D_202E_200D_200D_206C_206D_206B_206E_202A_200E_202B_200F_200C_202E_200D_206E_200C_200C_200D_206D_202B_202B_200E_200C_200C_202B_202D_202A_202A_202E_200B_200D_206B_206B_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogWarning(P_1, P_2, P_3); - } - - static void _200D_206F_200C_200D_202E_206E_202D_206D_206C_206A_200F_200C_206C_202C_206D_200E_206B_206A_200C_206D_206C_200C_206A_202B_206D_200D_202A_200B_202B_200E_202D_200C_200E_202D_206D_206B_206A_200B_200B_202B_202E(ImU8String P_0, ImGuiTableColumnFlags P_1, float P_2, uint P_3) - { - ImGui.TableSetupColumn(P_0, P_1, P_2, P_3); - } - - static void _200C_206C_200D_200B_200D_206E_206F_202A_200E_200D_202E_206A_200D_206B_206F_200C_202E_206F_206A_200B_202C_206B_200C_206C_202E_206E_206A_202A_200B_200C_200D_206D_200B_202C_206B_206A_200E_206E_206F_200E_202E() - { - ImGui.TableNextRow(); - } - - static bool _206A_206F_206D_202C_200E_202D_200E_200B_200E_200D_202E_206F_206E_206D_206D_206B_202C_206D_200C_206B_202A_200C_202C_202D_202C_206F_202B_202C_206F_202C_206D_206A_206F_200C_202E_202E_200C_206E_206A_206C_202E() - { - return ImGui.TableNextColumn(); - } - - static int _202C_202B_200F_206E_202E_200D_202B_206C_206D_206D_202E_202C_206C_206A_202D_206A_200D_206F_200D_206C_202D_202C_206C_200B_206A_200D_200E_200F_202B_200D_200C_206C_206E_206A_200C_200C_202C_206A_202E_202E(int P_0, int P_1) - { - return Math.Min(P_0, P_1); - } - - static int _206E_206A_202E_200D_202B_206D_200C_206B_202D_206C_206A_200F_200B_200F_206E_200F_206A_202A_200F_200C_202A_206B_200E_206E_206A_206C_200D_206C_200C_202C_206A_206A_202C_200D_200E_200D_200D_202B_200B_206E_202E(int P_0, int P_1) - { - return Math.Max(P_0, P_1); - } - - static ImRaii.ChildDisposable _202E_202B_206E_200B_200E_200E_206C_200F_200F_206D_202B_200E_202E_200B_202A_200B_202E_200D_200F_200B_206C_200F_200B_200F_206F_200B_202A_202E_202C_200F_206B_206C_200F_200C_200B_202B_200F_202E_202C_206D_202E(ImU8String P_0, Vector2 P_1, bool P_2, ImGuiWindowFlags P_3) - { - return ImRaii.Child(P_0, P_1, P_2, P_3); - } - - static bool _202A_206F_202B_206C_200C_200C_200D_200F_202A_202B_206A_206C_200E_206E_202E_202E_202B_202A_206F_200D_200D_200D_206F_206F_206D_200D_206F_206A_200C_202C_202B_206B_206D_206D_206D_200F_200E_202E_200F_206C_202E(ImU8String P_0, Vector2 P_1, ImGuiButtonFlags P_2) - { - return ImGui.InvisibleButton(P_0, P_1, P_2); - } - - static ImRaii.TooltipDisposable _206F_206B_200C_202E_202C_200B_200E_206E_202E_206C_202A_206A_206F_200C_200E_200F_206A_200D_200E_200F_200F_202D_200C_206D_202A_206C_206B_206A_200B_202A_202D_202A_200E_202D_206B_200B_202B_202B_206C_202E_202E() - { - return ImRaii.Tooltip(); - } - - static void _202B_202C_202C_202B_200E_202C_200E_200C_202D_206E_200E_206E_202A_202D_200E_202D_206A_200E_206D_200C_200E_200F_202B_206B_200C_202E_200F_202B_206C_202D_206A_202B_206A_206A_206B_202E_200E_206B_206A_202E_202E(ImU8String P_0) - { - ImGui.Text(P_0); - } - - static void _206D_206A_206C_202B_202D_206F_206A_206F_200E_202D_202B_200E_202E_202A_200E_202C_202E_202B_202C_200B_206D_202D_200C_206D_200D_202E_202D_202E_206A_202D_206E_200E_206C_206B_206E_200D_202B_202B_202C_200E_202E() - { - ImGui.Separator(); - } - - static bool _200B_202E_200B_206B_206D_200F_202D_200F_202D_202A_202E_200B_202E_200B_206A_202A_200E_202B_200B_200F_202C_206E_206F_206C_200E_202D_202C_200B_202A_200B_200B_202B_200E_202A_200F_206F_206C_200F_200F_200C_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static void _200B_200C_200C_202A_206B_202E_200B_206E_200F_202C_202C_202C_206C_206E_202C_206F_200C_202C_202D_206B_206E_200E_200C_206A_200E_206B_206E_200F_202C_202A_206D_206B_200D_206F_206E_206E_206B_202E_206E_202D_202E(float P_0) - { - ImGui.PushTextWrapPos(P_0); - } - - static void _202C_206F_206A_202E_200C_200E_202B_206D_206C_206B_200B_202C_202A_202D_206D_202D_202B_206A_206F_200E_202C_206B_206D_200E_206D_206C_206F_200F_206A_206E_202C_200B_202C_206C_200E_206C_200F_200E_200C_202D_202E() - { - ImGui.PopTextWrapPos(); - } - - static string _200E_200D_200F_202C_206D_202C_202E_202B_206E_206A_206D_202D_206A_206A_206A_206F_206E_206D_200D_200D_200F_200B_200E_200C_200B_206A_206C_202A_206A_206F_200E_206F_202A_206C_200E_202C_202C_206E_206C_206E_202E(string P_0) - { - return P_0.Trim(); - } } diff --git a/Questionable/Questionable.Windows.QuestComponents/QuestTooltipComponent.cs b/Questionable/Questionable.Windows.QuestComponents/QuestTooltipComponent.cs index e7a3d65..6e399e0 100644 --- a/Questionable/Questionable.Windows.QuestComponents/QuestTooltipComponent.cs +++ b/Questionable/Questionable.Windows.QuestComponents/QuestTooltipComponent.cs @@ -1,9 +1,3 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Game.Text; using Dalamud.Interface; @@ -43,749 +37,217 @@ internal sealed class QuestTooltipComponent public void Draw(IQuestInfo questInfo) { - using ImRaii.TooltipDisposable tooltipDisposable = _200B_200F_200D_206F_206E_200C_200F_206E_206D_206C_200F_206E_206D_200C_200B_200F_202C_202C_200F_200F_202C_206A_206C_206C_206D_202C_206C_206F_200C_206D_206E_206A_202D_200C_206C_202B_200F_202A_206F_206C_202E(); - int num = ((!tooltipDisposable.Alive) ? 1737286895 : 1737286894); - while (true) + using ImRaii.TooltipDisposable tooltipDisposable = ImRaii.Tooltip(); + if (tooltipDisposable.Alive) { - int num2 = num; - int num3 = 1737286895; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1737286894; - break; - case 1: - DrawInner(questInfo, showItemRewards: true); - num = 1737286895; - break; - case 0: - return; - } + DrawInner(questInfo, showItemRewards: true); } } - [MethodImpl(MethodImplOptions.NoInlining)] public void DrawInner(IQuestInfo questInfo, bool showItemRewards) { - ImU8String imU8String = new ImU8String(0, 2); - imU8String.AppendFormatted(_200D_202A_206A_200F_206F_206F_206E_206A_206D_202B_206F_206D_206B_206B_200D_202E_206A_200F_206C_202D_202C_202B_200D_202B_202B_206E_200E_206B_202B_206D_206D_200B_202B_200E_200B_206B_206A_202A_206F_202C_202E(SeIconChar.LevelEn)); - imU8String.AppendFormatted(questInfo.Level); - _200F_202E_200E_200B_202E_200E_202D_202A_206D_200C_200B_202D_206E_202C_200E_206E_200B_202D_200E_200F_200B_206B_200E_206E_200E_206F_206C_206C_206E_206C_206C_200F_200C_206D_202C_206E_206B_200E_206E_200C_202E(imU8String); - _206E_206D_206E_202D_206F_200B_200D_202D_202A_200C_202D_206C_200C_202E_206D_200C_202B_202B_202A_202E_200D_200D_206F_202E_200C_202C_206E_202E_206E_206E_200B_206E_206D_202D_202D_200B_206B_206C_202D_202E(); - var (vector, _, text) = _uiUtils.GetQuestStyle(questInfo.QuestId); - _200C_200F_206E_206F_206E_202E_200D_206D_202D_200E_202A_200B_202A_206A_206B_200B_206B_202E_200E_202A_202B_200C_206E_206D_202B_202A_206D_202B_206C_206D_202D_202E_200D_200F_202B_200C_202D_202C_202A_206A_202E(ref vector, (ImU8String)text); - QuestInfo questInfo2 = questInfo as QuestInfo; - int num = ((questInfo2 == null) ? 1474460582 : 1474460577); - Quest quest = default(Quest); - while (true) + ImU8String text = new ImU8String(0, 2); + text.AppendFormatted(SeIconChar.LevelEn.ToIconString()); + text.AppendFormatted(questInfo.Level); + ImGui.Text(text); + ImGui.SameLine(); + var (col, _, text2) = _uiUtils.GetQuestStyle(questInfo.QuestId); + ImGui.TextColored(in col, text2); + if (questInfo is QuestInfo { IsSeasonalEvent: not false }) { - int num2 = num; - int num3 = 1474460586; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + ImGui.SameLine(); + ImGui.TextUnformatted("Event"); + } + if (questInfo.IsRepeatable) + { + ImGui.SameLine(); + ImGui.TextUnformatted("Repeatable"); + } + if (questInfo is QuestInfo { CompletesInstantly: not false }) + { + ImGui.SameLine(); + ImGui.TextUnformatted("Instant"); + } + if (_questRegistry.TryGetQuest(questInfo.QuestId, out Quest quest)) + { + if (quest.Root.Disabled) { - case 3: - _206E_206D_206E_202D_206F_200B_200D_202D_202A_200C_202D_206C_200C_202E_206D_200C_202B_202B_202A_202E_200D_200D_206F_202E_200C_202C_206E_202E_206E_206E_200B_206E_206D_202D_202D_200B_206B_206C_202D_202E(); - _200E_206A_206B_200E_206B_202C_200E_202B_202D_206F_206A_206D_200D_200E_200F_202C_206A_206C_202B_206C_206F_202A_202A_202E_200C_202A_200C_200E_202D_202E_202A_202C_202A_200C_200D_200D_202D_200E_200C_200F_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(820153161)); - num = 1474460582; - break; - case 1: - DrawQuestUnlocks(questInfo, 0, showItemRewards); - return; - case 10: - num = ((!_206F_206A_200F_206C_202A_200E_200C_200D_200E_206D_206D_202C_202D_202A_206E_200B_202D_206D_202C_202D_202A_200C_200E_202A_202C_202C_200C_202A_206C_206D_202C_206E_206C_202A_202A_202A_206E_206D_206D_202C_202E(quest.Root)) ? 1474460590 : 1474460578); - break; - case 8: - _206E_206D_206E_202D_206F_200B_200D_202D_202A_200C_202D_206C_200C_202E_206D_200C_202B_202B_202A_202E_200D_200D_206F_202E_200C_202C_206E_202E_206E_206E_200B_206E_206D_202D_202D_200B_206B_206C_202D_202E(); - _200C_200F_206E_206F_206E_202E_200D_206D_202D_200E_202A_200B_202A_206A_206B_200B_206B_202E_200E_202A_202B_200C_206E_206D_202B_202A_206D_202B_206C_206D_202D_202E_200D_200F_202B_200C_202D_202C_202A_206A_202E(ref UiThemeUtils.StatusLocked, (ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2101114993)); - num = 1474460590; - break; - case 15: - { - ImU8String imU8String3 = new ImU8String(8, 1); - imU8String3.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-431398969)); - imU8String3.AppendFormatted(_200C_206D_202A_200B_200F_200B_206A_202D_206F_206E_206C_206F_206A_202A_200C_200B_200C_200E_200B_206B_202C_200B_202A_206F_200B_200F_200D_200D_200D_200F_200B_206F_202B_202A_200B_202D_206E_200C_202C_202E_202E(quest.Root)[0]); - _200F_202E_200E_200B_202E_200E_202D_202A_206D_200C_200B_202D_206E_202C_200E_206E_200B_202D_200E_200F_200B_206B_200E_206E_200E_206F_206C_206C_206E_206C_206C_200F_200C_206D_202C_206E_206B_200E_206E_200C_202E(imU8String3); - num = 1474460587; - break; + ImGui.SameLine(); + ImGui.TextColored(in UiThemeUtils.StatusLocked, "Disabled"); } - case 13: - num = 1474460577; - break; - case 6: - _206E_206D_206E_202D_206F_200B_200D_202D_202A_200C_202D_206C_200C_202E_206D_200C_202B_202B_202A_202E_200D_200D_206F_202E_200C_202C_206E_202E_206E_206E_200B_206E_206D_202D_202D_200B_206B_206C_202D_202E(); - _200E_206A_206B_200E_206B_202C_200E_202B_202D_206F_206A_206D_200D_200E_200F_202C_206A_206C_202B_206C_206F_202A_202A_202E_200C_202A_200C_200E_202D_202E_202A_202C_202A_200C_200D_200D_202D_200E_200C_200F_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-754389830)); - num = 1474460579; - break; - case 0: - num = ((!questInfo2.CompletesInstantly) ? 1474460579 : 1474460588); - break; - case 11: - num = ((!questInfo2.IsSeasonalEvent) ? 1474460582 : 1474460585); - break; - case 14: - _206E_206D_206E_202D_206F_200B_200D_202D_202A_200C_202D_206C_200C_202E_206D_200C_202B_202B_202A_202E_200D_200D_206F_202E_200C_202C_206E_202E_206E_206E_200B_206E_206D_202D_202D_200B_206B_206C_202D_202E(); - _200C_200F_206E_206F_206E_202E_200D_206D_202D_200E_202A_200B_202A_206A_206B_200B_206B_202E_200E_202A_202B_200C_206E_206D_202B_202A_206D_202B_206C_206D_202D_202E_200D_200F_202B_200C_202D_202C_202A_206A_202E(ref UiThemeUtils.StatusLocked, (ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-282985404)); - num = 1474460587; - break; - case 4: - num = ((_200C_206D_202A_200B_200F_200B_206A_202D_206F_206E_206C_206F_206A_202A_200C_200B_200C_200E_200B_206B_202C_200B_202A_206F_200B_200F_200D_200D_200D_200F_200B_206F_202B_202A_200B_202D_206E_200C_202C_202E_202E(quest.Root).Count != 1) ? 1474460589 : 1474460581); - break; - case 7: + if (quest.Root.Author.Count == 1) { - ImU8String imU8String2 = new ImU8String(9, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1400371552)); - imU8String2.AppendFormatted(_200E_206A_206D_206D_202C_202E_206D_202C_202E_206C_202A_206C_202C_200B_202B_206C_202A_206A_200B_206E_202E_202A_202D_202B_206D_202C_202C_200E_200C_200C_206A_206A_206D_200F_206E_202C_206F_202C_206F_200E_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1087086507), (IEnumerable<string>)_200C_206D_202A_200B_200F_200B_206A_202D_206F_206E_206C_206F_206A_202A_200C_200B_200C_200E_200B_206B_202C_200B_202A_206F_200B_200F_200D_200D_200D_200F_200B_206F_202B_202A_200B_202D_206E_200C_202C_202E_202E(quest.Root))); - _200F_202E_200E_200B_202E_200E_202D_202A_206D_200C_200B_202D_206E_202C_200E_206E_200B_202D_200E_200F_200B_206B_200E_206E_200E_206F_206C_206C_206E_206C_206C_200F_200C_206D_202C_206E_206B_200E_206E_200C_202E(imU8String2); - num = 1474460587; - break; + ImU8String text3 = new ImU8String(8, 1); + text3.AppendLiteral("Author: "); + text3.AppendFormatted(quest.Root.Author[0]); + ImGui.Text(text3); } - case 5: - _206E_206D_206E_202D_206F_200B_200D_202D_202A_200C_202D_206C_200C_202E_206D_200C_202B_202B_202A_202E_200D_200D_206F_202E_200C_202C_206E_202E_206E_206E_200B_206E_206D_202D_202D_200B_206B_206C_202D_202E(); - _200E_206A_206B_200E_206B_202C_200E_202B_202D_206F_206A_206D_200D_200E_200F_202C_206A_206C_202B_206C_206F_202A_202A_202E_200C_202A_200C_200E_202D_202E_202A_202C_202A_200C_200D_200D_202D_200E_200C_200F_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1348044090)); - num = 1474460584; - break; - case 2: - questInfo2 = questInfo as QuestInfo; - num = ((questInfo2 == null) ? 1474460579 : 1474460586); - break; - case 12: - num = ((!questInfo.IsRepeatable) ? 1474460584 : 1474460591); - break; - case 9: - num = ((!_questRegistry.TryGetQuest(questInfo.QuestId, out quest)) ? 1474460580 : 1474460576); - break; + else + { + ImU8String text4 = new ImU8String(9, 1); + text4.AppendLiteral("Authors: "); + text4.AppendFormatted(string.Join(", ", quest.Root.Author)); + ImGui.Text(text4); } } + else + { + ImGui.SameLine(); + ImGui.TextColored(in UiThemeUtils.StatusLocked, "NoQuestPath"); + } + DrawQuestUnlocks(questInfo, 0, showItemRewards); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawQuestUnlocks(IQuestInfo questInfo, int counter, bool showItemRewards) { - int num = ((counter < 10) ? (-1923998553) : (-1923998551)); - while (true) + if (counter >= 10 || (counter != 0 && questInfo.IsMainScenarioQuest)) { - int num2 = num; - int num3 = -1923998548; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + if (counter > 0) + { + ImGui.Indent(); + } + if (questInfo.PreviousQuests.Count > 0) + { + if (counter == 0) { - default: - continue; - case 7: - num = -1923998551; - continue; - case 11: - num = ((counter == 0) ? (-1923998560) : (-1923998559)); - continue; - case 9: - return; - case 2: - _200D_202E_202E_206B_200C_206F_206F_200B_206B_206F_202D_206E_202D_206E_206A_206D_206F_200F_200C_206E_200B_206A_200D_200D_206E_200C_200D_206F_206D_202D_202A_202D_202B_200F_206D_200E_200F_206C_202C_202E(); - num = -1923998547; - continue; - case 13: - num = ((!questInfo.IsMainScenarioQuest) ? (-1923998560) : (-1923998555)); - continue; - case 12: - num = ((counter <= 0) ? (-1923998552) : (-1923998554)); - continue; - case 0: - num = ((counter != 0) ? (-1923998547) : (-1923998546)); - continue; - case 3: - num = ((questInfo.PreviousQuestJoin != EQuestJoin.All) ? (-1923998557) : (-1923998550)); - continue; - case 5: - return; - case 6: - _200F_202E_200E_200B_202E_200E_202D_202A_206D_200C_200B_202D_206E_202C_200E_206E_200B_202D_200E_200F_200B_206B_200E_206E_200E_206F_206C_206C_206E_206C_206C_200F_200C_206D_202C_206E_206B_200E_206E_200C_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1426364812)); - num = -1923998558; - continue; - case 15: - num = ((questInfo.PreviousQuestJoin != EQuestJoin.AtLeastOne) ? (-1923998558) : (-1923998556)); - continue; - case 1: - num = ((questInfo.PreviousQuests.Count <= 1) ? (-1923998558) : (-1923998545)); - continue; - case 4: - if (questInfo.PreviousQuests.Count > 0) - { - num = -1923998548; - continue; - } - break; - case 10: - _202D_206D_202A_200D_206C_202B_206F_200D_200B_200B_202A_206F_200D_200B_206B_206E_206A_200C_206D_202C_206E_206C_202D_206B_200B_200B_200D_200C_200B_202A_206A_202A_200B_200B_202C_202B_202E_206D_206F_202A_202E(); - num = -1923998552; - continue; - case 8: - _200F_202E_200E_200B_202E_200E_202D_202A_206D_200C_200B_202D_206E_202C_200E_206E_200B_202D_200E_200F_200B_206B_200E_206E_200E_206F_206C_206C_206E_206C_206C_200F_200C_206D_202C_206E_206B_200E_206E_200C_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-256821673)); - num = -1923998558; - continue; - case 14: - foreach (PreviousQuestInfo previousQuest in questInfo.PreviousQuests) - { - if (_questData.TryGetQuestInfo(previousQuest.QuestId, out IQuestInfo questInfo2)) - { - var (color, fontAwesomeIcon, _) = _uiUtils.GetQuestStyle(previousQuest.QuestId); - if (!_questRegistry.IsKnownQuest(questInfo2.QuestId)) - { - color = UiThemeUtils.StatusUnobtainable; - } - _uiUtils.ChecklistItem(FormatQuestUnlockName(questInfo2, (byte)((!_questFunctions.IsQuestComplete(previousQuest.QuestId)) ? previousQuest.Sequence : 0)), color, fontAwesomeIcon); - if (questInfo2 is QuestInfo questInfo3 && (counter <= 2 || fontAwesomeIcon != FontAwesomeIcon.Check)) - { - num3 = 1; - num4 = counter; - DrawQuestUnlocks(questInfo3, (num4 | num3) + (num4 & num3), showItemRewards: false); - } - continue; - } - ImRaii.DisabledDisposable disabledDisposable = _200B_200D_200C_202E_206F_206A_206A_206C_202A_202E_200E_200F_206D_200B_200E_202C_202D_200E_200C_206F_206F_200F_200E_202E_206C_202B_206E_202D_202D_202A_200F_202A_206E_200F_206F_202D_206F_200F_206C_206A_202E(); - try - { - UiUtils uiUtils = _uiUtils; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(16, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2088564312)); - defaultInterpolatedStringHandler.AppendFormatted(previousQuest.QuestId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578)); - uiUtils.ChecklistItem(defaultInterpolatedStringHandler.ToStringAndClear(), UiThemeUtils.StatusUnobtainable, FontAwesomeIcon.Question); - } - finally - { - num = ((disabledDisposable == null) ? (-1267677720) : (-1267677717)); - while (true) - { - int num7 = num; - num3 = -1267677718; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1267677717; - break; - case 2: - goto end_IL_0373; - case 1: - _200F_206E_202D_200E_206C_206F_200F_200C_200F_200F_200F_206F_200F_206D_200E_200D_206F_202D_206D_200B_206F_206F_202C_200C_202C_200F_200B_206E_206A_202D_206C_200E_202C_206D_200B_206B_206B_202A_206D_200D_202E((IDisposable)disabledDisposable); - num = -1267677720; - break; - } - continue; - end_IL_0373: - break; - } - } - } - break; + ImGui.Separator(); + } + if (questInfo.PreviousQuests.Count > 1) + { + if (questInfo.PreviousQuestJoin == EQuestJoin.All) + { + ImGui.Text("Requires all:"); + } + else if (questInfo.PreviousQuestJoin == EQuestJoin.AtLeastOne) + { + ImGui.Text("Requires one:"); + } + } + foreach (PreviousQuestInfo previousQuest in questInfo.PreviousQuests) + { + if (_questData.TryGetQuestInfo(previousQuest.QuestId, out IQuestInfo questInfo2)) + { + var (color, fontAwesomeIcon, _) = _uiUtils.GetQuestStyle(previousQuest.QuestId); + if (!_questRegistry.IsKnownQuest(questInfo2.QuestId)) + { + color = UiThemeUtils.StatusUnobtainable; + } + _uiUtils.ChecklistItem(FormatQuestUnlockName(questInfo2, (byte)((!_questFunctions.IsQuestComplete(previousQuest.QuestId)) ? previousQuest.Sequence : 0)), color, fontAwesomeIcon); + if (questInfo2 is QuestInfo questInfo3 && (counter <= 2 || fontAwesomeIcon != FontAwesomeIcon.Check)) + { + DrawQuestUnlocks(questInfo3, counter + 1, showItemRewards: false); + } + } + else + { + using (ImRaii.Disabled()) + { + _uiUtils.ChecklistItem($"Unknown Quest ({previousQuest.QuestId})", UiThemeUtils.StatusUnobtainable, FontAwesomeIcon.Question); + } + } } - break; } if (questInfo is QuestInfo questInfo4) { - num = -1696487048; - Vector4 color2 = default(Vector4); - IQuestInfo questInfo5 = default(IQuestInfo); - FontAwesomeIcon item = default(FontAwesomeIcon); - while (true) + if (questInfo4.MoogleDeliveryLevel > 0) { - int num8 = num; - int num3 = -1696487041; - int num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - default: - continue; - case 6: - _200D_202E_202E_206B_200C_206F_206F_200B_206B_206F_202D_206E_202D_206E_206A_206D_206F_200F_200C_206E_200B_206A_200D_200D_206E_200C_200D_206F_206D_202D_202A_202D_202B_200F_206D_200E_200F_206C_202C_202E(); - num = ((questInfo4.QuestLocks.Count <= 1) ? (-1696487051) : (-1696487044)); - continue; - case 7: - num = ((questInfo4.MoogleDeliveryLevel <= 0) ? (-1696487046) : (-1696487050)); - continue; - case 10: - _200F_202E_200E_200B_202E_200E_202D_202A_206D_200C_200B_202D_206E_202C_200E_206E_200B_202D_200E_200F_200B_206B_200E_206E_200E_206F_206C_206C_206E_206C_206C_200F_200C_206D_202C_206E_206B_200E_206E_200C_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1391470785)); - num = -1696487043; - continue; - case 11: - if (questInfo4.QuestLocks.Count > 0) - { - num = -1696487047; - continue; - } - break; - case 1: - num = ((questInfo4.QuestLockJoin != EQuestJoin.AtLeastOne) ? (-1696487043) : (-1696487045)); - continue; - case 8: - _200F_202E_200E_200B_202E_200E_202D_202A_206D_200C_200B_202D_206E_202C_200E_206E_200B_202D_200E_200F_200B_206B_200E_206E_200E_206F_206C_206C_206E_206C_206C_200F_200C_206D_202C_206E_206B_200E_206E_200C_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1332408042)); - num = -1696487043; - continue; - case 9: - { - ImU8String imU8String = new ImU8String(23, 1); - imU8String.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(835332808)); - imU8String.AppendFormatted(questInfo4.MoogleDeliveryLevel); - _200F_202E_200E_200B_202E_200E_202D_202A_206D_200C_200B_202D_206E_202C_200E_206E_200B_202D_200E_200F_200B_206B_200E_206E_200E_206F_206C_206C_206E_206C_206C_200F_200C_206D_202C_206E_206B_200E_206E_200C_202E(imU8String); - num = -1696487046; - continue; - } - case 0: - num = -1696487048; - continue; - case 4: - _200F_202E_200E_200B_202E_200E_202D_202A_206D_200C_200B_202D_206E_202C_200E_206E_200B_202D_200E_200F_200B_206B_200E_206E_200E_206F_206C_206C_206E_206C_206C_200F_200C_206D_202C_206E_206B_200E_206E_200C_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(48488600)); - num = -1696487043; - continue; - case 5: - if (counter == 0) - { - num = -1696487052; - continue; - } - break; - case 3: - num = ((questInfo4.QuestLockJoin != EQuestJoin.All) ? (-1696487042) : (-1696487049)); - continue; - case 2: - { - using (ImmutableList<QuestId>.Enumerator enumerator2 = questInfo4.QuestLocks.GetEnumerator()) - { - num = 679294645; - while (true) - { - int num11 = num; - num3 = 679294646; - num4 = num11; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = (enumerator2.MoveNext() ? 679294644 : 679294647); - break; - case 4: - color2 = UiThemeUtils.StatusUnobtainable; - num = 679294643; - break; - case 5: - _uiUtils.ChecklistItem(FormatQuestUnlockName(questInfo5, 0), color2, item); - num = 679294645; - break; - case 2: - { - QuestId current2 = enumerator2.Current; - questInfo5 = _questData.GetQuestInfo(current2); - (Vector4 Color, FontAwesomeIcon Icon, string Status) questStyle = _uiUtils.GetQuestStyle(current2); - color2 = questStyle.Color; - item = questStyle.Icon; - num = (_questRegistry.IsKnownQuest(questInfo5.QuestId) ? 679294643 : 679294642); - break; - } - case 0: - num = 679294645; - break; - case 1: - goto end_IL_05d2; - } - continue; - end_IL_05d2: - break; - } - } - break; - } - } - break; + ImU8String text = new ImU8String(23, 1); + text.AppendLiteral("Requires Carrier Level "); + text.AppendFormatted(questInfo4.MoogleDeliveryLevel); + ImGui.Text(text); } - if (counter == 0) + if (counter == 0 && questInfo4.QuestLocks.Count > 0) { - num = 1225831112; - while (true) + ImGui.Separator(); + if (questInfo4.QuestLocks.Count > 1) { - int num12 = num; - int num3 = 1225831113; - int num4 = num12; - int num13 = num4 + num3; - int num14 = num4 & num3; - switch (num13 - (num14 + num14)) + if (questInfo4.QuestLockJoin == EQuestJoin.All) { - default: - continue; - case 8: - num = ((questInfo.PreviousQuestJoin != EQuestJoin.All) ? 1225831115 : 1225831113); - continue; - case 3: - _200F_202E_200E_200B_202E_200E_202D_202A_206D_200C_200B_202D_206E_202C_200E_206E_200B_202D_200E_200F_200B_206B_200E_206E_200E_206F_206C_206C_206E_206C_206C_200F_200C_206D_202C_206E_206B_200E_206E_200C_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-913613294)); - num = 1225831116; - continue; - case 7: - _200F_202E_200E_200B_202E_200E_202D_202A_206D_200C_200B_202D_206E_202C_200E_206E_200B_202D_200E_200F_200B_206B_200E_206E_200E_206F_206C_206C_206E_206C_206C_200F_200C_206D_202C_206E_206B_200E_206E_200C_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-745363741)); - num = 1225831116; - continue; - case 6: - _200D_202E_202E_206B_200C_206F_206F_200B_206B_206F_202D_206E_202D_206E_206A_206D_206F_200F_200C_206E_200B_206A_200D_200D_206E_200C_200D_206F_206D_202D_202A_202D_202B_200F_206D_200E_200F_206C_202C_202E(); - num = ((questInfo4.PreviousInstanceContent.Count <= 1) ? 1225831118 : 1225831105); - continue; - case 0: - _200F_202E_200E_200B_202E_200E_202D_202A_206D_200C_200B_202D_206E_202C_200E_206E_200B_202D_200E_200F_200B_206B_200E_206E_200E_206F_206C_206C_206E_206C_206C_200F_200C_206D_202C_206E_206B_200E_206E_200C_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1426364812)); - num = 1225831116; - continue; - case 4: - num = 1225831112; - continue; - case 1: - if (questInfo4.PreviousInstanceContent.Count > 0) - { - num = 1225831119; - continue; - } - break; - case 2: - num = ((questInfo.PreviousQuestJoin != EQuestJoin.AtLeastOne) ? 1225831116 : 1225831114); - continue; - case 5: + ImGui.Text("Blocked by (if all completed):"); + } + else if (questInfo4.QuestLockJoin == EQuestJoin.AtLeastOne) { - using (List<ushort>.Enumerator enumerator3 = questInfo4.PreviousInstanceContent.GetEnumerator()) - { - num = 382193894; - while (true) - { - int num15 = num; - num3 = 382193895; - num4 = num15; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 382193894; - break; - case 2: - { - ushort current3 = enumerator3.Current; - string text = _territoryData.GetInstanceName(current3) ?? global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(656320081); - var (color3, icon) = UiUtils.GetInstanceStyle(current3); - _uiUtils.ChecklistItem(text, color3, icon); - num = 382193894; - break; - } - case 1: - num = (enumerator3.MoveNext() ? 382193893 : 382193892); - break; - case 3: - goto end_IL_085e; - } - continue; - end_IL_085e: - break; - } - } - break; + ImGui.Text("Blocked by (if at least completed):"); } + } + else + { + ImGui.Text("Blocked by (if completed):"); + } + foreach (QuestId questLock in questInfo4.QuestLocks) + { + IQuestInfo questInfo5 = _questData.GetQuestInfo(questLock); + var (color2, icon, _) = _uiUtils.GetQuestStyle(questLock); + if (!_questRegistry.IsKnownQuest(questInfo5.QuestId)) + { + color2 = UiThemeUtils.StatusUnobtainable; } - break; + _uiUtils.ChecklistItem(FormatQuestUnlockName(questInfo5, 0), color2, icon); } } - num = ((counter != 0) ? 1402821429 : 1402821434); - string text2 = default(string); - while (true) + if (counter == 0 && questInfo4.PreviousInstanceContent.Count > 0) { - int num16 = num; - int num3 = 1402821438; - int num4 = num16; - int num17 = num4 + num3; - int num18 = num4 & num3; - switch (num17 - (num18 + num18)) + ImGui.Separator(); + if (questInfo4.PreviousInstanceContent.Count > 1) { - default: - continue; - case 6: - text2 = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-802431915); - num = 1402821430; - continue; - case 7: - _200D_202E_202E_206B_200C_206F_206F_200B_206B_206F_202D_206E_202D_206E_206A_206D_206F_200F_200C_206E_200B_206A_200D_200D_206E_200C_200D_206F_206D_202D_202A_202D_202B_200F_206D_200E_200F_206C_202C_202E(); - switch (questInfo4.GrandCompany) + if (questInfo.PreviousQuestJoin == EQuestJoin.All) { - case GrandCompany.TwinAdder: - break; - default: - goto IL_09de; - case GrandCompany.ImmortalFlames: - goto IL_0a0d; - case GrandCompany.Maelstrom: - goto IL_0a25; + ImGui.Text("Requires all:"); } - goto case 6; - case 4: - num = ((questInfo4.GrandCompany == GrandCompany.None) ? 1402821429 : 1402821433); - continue; - case 2: - goto IL_0a0d; - case 1: - goto IL_0a25; - case 11: - if (showItemRewards) + else if (questInfo.PreviousQuestJoin == EQuestJoin.AtLeastOne) { - num = 1402821438; - continue; + ImGui.Text("Requires one:"); } - break; - case 10: - num = 1402821435; - continue; - case 8: + } + else { - string text3 = text2; - GrandCompany grandCompany = QuestFunctions.GetGrandCompany(); - _uiUtils.ChecklistItem(_200C_202D_206D_202E_200E_202B_206F_206C_202D_202E_202A_202C_206D_206F_206D_206B_206B_202D_206E_206D_206E_200C_206B_200C_200C_200D_202D_200F_206A_200C_206C_200B_200D_202D_206E_202D_206A_202C_202A_200D_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1365181732), text3), questInfo4.GrandCompany == grandCompany); - num = 1402821429; - continue; + ImGui.Text("Requires:"); } - case 3: - num = 1402821434; - continue; - case 5: - text2 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(474422561); - num = 1402821430; - continue; - case 0: - if (questInfo4.ItemRewards.Count > 0) - { - num = 1402821431; - continue; - } - break; - case 9: - { - _200D_202E_202E_206B_200C_206F_206F_200B_206B_206F_202D_206E_202D_206E_206A_206D_206F_200F_200C_206E_200B_206A_200D_200D_206E_200C_200D_206F_206D_202D_202A_202D_202B_200F_206D_200E_200F_206C_202C_202E(); - _200F_202E_200E_200B_202E_200E_202D_202A_206D_200C_200B_202D_206E_202C_200E_206E_200B_202D_200E_200F_200B_206B_200E_206E_200E_206F_206C_206C_206E_206C_206C_200F_200C_206D_202C_206E_206B_200E_206E_200C_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1749268449)); - IEnumerator<ItemReward> enumerator4 = questInfo4.ItemRewards.GetEnumerator(); - try - { - num = 1066742075; - while (true) - { - int num19 = num; - num3 = 1066742072; - num4 = num19; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1066742075; - break; - case 3: - num = (_206D_206B_206B_202C_202D_202C_206A_206F_202D_200D_200E_202C_202A_202A_200F_206D_206E_202C_200C_200B_200C_206E_202E_200B_206C_206A_200C_206F_200F_200B_206B_202B_206D_202C_206F_200B_202B_200B_206A_200E_202E((IEnumerator)enumerator4) ? 1066742074 : 1066742073); - break; - case 2: - _202C_200C_206C_200D_202B_200D_206B_202C_206A_202B_200E_200B_200E_206D_202A_202E_200B_202C_202A_202B_200D_200E_206D_200B_200B_206C_202E_200D_200F_200C_202A_202A_202B_206E_202C_202E_200E_202D_206B_202D_202E((ImU8String)enumerator4.Current.Name); - num = 1066742075; - break; - case 1: - goto end_IL_0b16; - } - continue; - end_IL_0b16: - break; - } - } - finally - { - num = ((enumerator4 == null) ? (-547261564) : (-547261561)); - while (true) - { - int num20 = num; - num3 = -547261562; - num4 = num20; - int num21 = num4 + num3; - int num22 = num4 & num3; - switch (num21 - (num22 + num22)) - { - case 0: - num = -547261561; - break; - case 1: - _200F_206E_202D_200E_206C_206F_200F_200C_200F_200F_200F_206F_200F_206D_200E_200D_206F_202D_206D_200B_206F_206F_202C_200C_202C_200F_200B_206E_206A_202D_206C_200E_202C_206D_200B_206B_206B_202A_206D_200D_202E((IDisposable)enumerator4); - num = -547261564; - break; - case 2: - goto end_IL_0bbc; - } - continue; - end_IL_0bbc: - break; - } - } - break; - } - IL_0a25: - text2 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(372022407); - num = 1402821430; - continue; - IL_0a0d: - text2 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1041968074); - num = 1402821430; - continue; - IL_09de: - num = 1402821428; - continue; + foreach (ushort item in questInfo4.PreviousInstanceContent) + { + string text2 = _territoryData.GetInstanceName(item) ?? "?"; + var (color3, icon2) = UiUtils.GetInstanceStyle(item); + _uiUtils.ChecklistItem(text2, color3, icon2); + } + } + if (counter == 0 && questInfo4.GrandCompany != GrandCompany.None) + { + ImGui.Separator(); + string text3 = questInfo4.GrandCompany switch + { + GrandCompany.Maelstrom => "Maelstrom", + GrandCompany.TwinAdder => "Twin Adder", + GrandCompany.ImmortalFlames => "Immortal Flames", + _ => "None", + }; + GrandCompany grandCompany = QuestFunctions.GetGrandCompany(); + _uiUtils.ChecklistItem("Grand Company: " + text3, questInfo4.GrandCompany == grandCompany); + } + if (showItemRewards && questInfo4.ItemRewards.Count > 0) + { + ImGui.Separator(); + ImGui.Text("Item Rewards:"); + foreach (ItemReward itemReward in questInfo4.ItemRewards) + { + ImGui.BulletText(itemReward.Name); } - break; } } - num = ((counter <= 0) ? (-459152396) : (-459152393)); - while (true) + if (counter > 0) { - int num23 = num; - int num3 = -459152394; - int num4 = num23; - int num24 = num4 + num3; - int num25 = num4 & num3; - switch (num24 - (num25 + num25)) - { - case 2: - return; - case 1: - _202A_200D_206C_206D_206B_206C_200C_206D_200D_200E_206D_200D_206E_206A_202B_200B_200C_200B_202A_202C_200E_200C_206E_200F_202C_202D_202A_206B_200D_206B_200B_206A_206B_206A_202C_200D_202C_200C_200C_200F_202E(); - num = -459152396; - break; - case 0: - num = -459152393; - break; - } + ImGui.Unindent(); } } - [MethodImpl(MethodImplOptions.NoInlining)] private string FormatQuestUnlockName(IQuestInfo questInfo, byte sequence = 0) { - string text = questInfo.Name; - int num = ((!questInfo.IsMainScenarioQuest) ? (-1213142629) : (-1213142632)); - while (true) + string name = questInfo.Name; + if (questInfo.IsMainScenarioQuest) { - int num2 = num; - int num3 = -1213142631; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return text; - case 1: - { - string text3 = text; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(8, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2002137365)); - defaultInterpolatedStringHandler2.AppendFormatted(questInfo.QuestId); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-741031348)); - text = _200C_202D_206D_202E_200E_202B_206F_206C_202D_202E_202A_202C_206D_206F_206D_206B_206B_202D_206E_206D_206E_200C_206B_200C_200C_200D_202D_200F_206A_200C_206C_200B_200D_202D_206E_202D_206A_202C_202A_200D_202E(text3, defaultInterpolatedStringHandler2.ToStringAndClear()); - num = -1213142630; - break; - } - case 2: - { - string text2 = text; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(3, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(588901087)); - defaultInterpolatedStringHandler.AppendFormatted(questInfo.QuestId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - text = _200C_202D_206D_202E_200E_202B_206F_206C_202D_202E_202A_202C_206D_206F_206D_206B_206B_202D_206E_206D_206E_200C_206B_200C_200C_200D_202D_200F_206A_200C_206C_200B_200D_202D_206E_202D_206A_202C_202A_200D_202E(text2, defaultInterpolatedStringHandler.ToStringAndClear()); - num = -1213142630; - break; - } - case 0: - num = -1213142632; - break; - } + return name + $" ({questInfo.QuestId}, MSQ)"; } - } - - static ImRaii.TooltipDisposable _200B_200F_200D_206F_206E_200C_200F_206E_206D_206C_200F_206E_206D_200C_200B_200F_202C_202C_200F_200F_202C_206A_206C_206C_206D_202C_206C_206F_200C_206D_206E_206A_202D_200C_206C_202B_200F_202A_206F_206C_202E() - { - return ImRaii.Tooltip(); - } - - static string _200D_202A_206A_200F_206F_206F_206E_206A_206D_202B_206F_206D_206B_206B_200D_202E_206A_200F_206C_202D_202C_202B_200D_202B_202B_206E_200E_206B_202B_206D_206D_200B_202B_200E_200B_206B_206A_202A_206F_202C_202E(SeIconChar P_0) - { - return P_0.ToIconString(); - } - - static void _200F_202E_200E_200B_202E_200E_202D_202A_206D_200C_200B_202D_206E_202C_200E_206E_200B_202D_200E_200F_200B_206B_200E_206E_200E_206F_206C_206C_206E_206C_206C_200F_200C_206D_202C_206E_206B_200E_206E_200C_202E(ImU8String P_0) - { - ImGui.Text(P_0); - } - - static void _206E_206D_206E_202D_206F_200B_200D_202D_202A_200C_202D_206C_200C_202E_206D_200C_202B_202B_202A_202E_200D_200D_206F_202E_200C_202C_206E_202E_206E_206E_200B_206E_206D_202D_202D_200B_206B_206C_202D_202E() - { - ImGui.SameLine(); - } - - static void _200C_200F_206E_206F_206E_202E_200D_206D_202D_200E_202A_200B_202A_206A_206B_200B_206B_202E_200E_202A_202B_200C_206E_206D_202B_202A_206D_202B_206C_206D_202D_202E_200D_200F_202B_200C_202D_202C_202A_206A_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static void _200E_206A_206B_200E_206B_202C_200E_202B_202D_206F_206A_206D_200D_200E_200F_202C_206A_206C_202B_206C_206F_202A_202A_202E_200C_202A_200C_200E_202D_202E_202A_202C_202A_200C_200D_200D_202D_200E_200C_200F_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static bool _206F_206A_200F_206C_202A_200E_200C_200D_200E_206D_206D_202C_202D_202A_206E_200B_202D_206D_202C_202D_202A_200C_200E_202A_202C_202C_200C_202A_206C_206D_202C_206E_206C_202A_202A_202A_206E_206D_206D_202C_202E(QuestRoot P_0) - { - return P_0.Disabled; - } - - static List<string> _200C_206D_202A_200B_200F_200B_206A_202D_206F_206E_206C_206F_206A_202A_200C_200B_200C_200E_200B_206B_202C_200B_202A_206F_200B_200F_200D_200D_200D_200F_200B_206F_202B_202A_200B_202D_206E_200C_202C_202E_202E(QuestRoot P_0) - { - return P_0.Author; - } - - static string _200E_206A_206D_206D_202C_202E_206D_202C_202E_206C_202A_206C_202C_200B_202B_206C_202A_206A_200B_206E_202E_202A_202D_202B_206D_202C_202C_200E_200C_200C_206A_206A_206D_200F_206E_202C_206F_202C_206F_200E_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); - } - - static void _202D_206D_202A_200D_206C_202B_206F_200D_200B_200B_202A_206F_200D_200B_206B_206E_206A_200C_206D_202C_206E_206C_202D_206B_200B_200B_200D_200C_200B_202A_206A_202A_200B_200B_202C_202B_202E_206D_206F_202A_202E() - { - ImGui.Indent(); - } - - static void _200D_202E_202E_206B_200C_206F_206F_200B_206B_206F_202D_206E_202D_206E_206A_206D_206F_200F_200C_206E_200B_206A_200D_200D_206E_200C_200D_206F_206D_202D_202A_202D_202B_200F_206D_200E_200F_206C_202C_202E() - { - ImGui.Separator(); - } - - static ImRaii.DisabledDisposable _200B_200D_200C_202E_206F_206A_206A_206C_202A_202E_200E_200F_206D_200B_200E_202C_202D_200E_200C_206F_206F_200F_200E_202E_206C_202B_206E_202D_202D_202A_200F_202A_206E_200F_206F_202D_206F_200F_206C_206A_202E() - { - return ImRaii.Disabled(); - } - - static void _200F_206E_202D_200E_206C_206F_200F_200C_200F_200F_200F_206F_200F_206D_200E_200D_206F_202D_206D_200B_206F_206F_202C_200C_202C_200F_200B_206E_206A_202D_206C_200E_202C_206D_200B_206B_206B_202A_206D_200D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static string _200C_202D_206D_202E_200E_202B_206F_206C_202D_202E_202A_202C_206D_206F_206D_206B_206B_202D_206E_206D_206E_200C_206B_200C_200C_200D_202D_200F_206A_200C_206C_200B_200D_202D_206E_202D_206A_202C_202A_200D_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static void _202C_200C_206C_200D_202B_200D_206B_202C_206A_202B_200E_200B_200E_206D_202A_202E_200B_202C_202A_202B_200D_200E_206D_200B_200B_206C_202E_200D_200F_200C_202A_202A_202B_206E_202C_202E_200E_202D_206B_202D_202E(ImU8String P_0) - { - ImGui.BulletText(P_0); - } - - static bool _206D_206B_206B_202C_202D_202C_206A_206F_202D_200D_200E_202C_202A_202A_200F_206D_206E_202C_200C_200B_200C_206E_202E_200B_206C_206A_200C_206F_200F_200B_206B_202B_206D_202C_206F_200B_202B_200B_206A_200E_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202A_200D_206C_206D_206B_206C_200C_206D_200D_200E_206D_200D_206E_206A_202B_200B_200C_200B_202A_202C_200E_200C_206E_200F_202C_202D_202A_206B_200D_206B_200B_206A_206B_206A_202C_200D_202C_200C_200C_200F_202E() - { - ImGui.Unindent(); + return name + $" ({questInfo.QuestId})"; } } diff --git a/Questionable/Questionable.Windows.QuestComponents/QuestValidationComponent.cs b/Questionable/Questionable.Windows.QuestComponents/QuestValidationComponent.cs index b735aab..8eef683 100644 --- a/Questionable/Questionable.Windows.QuestComponents/QuestValidationComponent.cs +++ b/Questionable/Questionable.Windows.QuestComponents/QuestValidationComponent.cs @@ -1,11 +1,9 @@ using System; using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Interface; using Dalamud.Interface.Colors; -using Dalamud.Interface.ManagedFontAtlas; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin; using Questionable.Data; @@ -42,831 +40,211 @@ internal sealed class QuestValidationComponent _detailsRenderer.DrawDetailWindows(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawSummaryHeader() { int issueCount = _questValidator.IssueCount; int errorCount = _questValidator.ErrorCount; - int num = errorCount; - int num2 = issueCount; - int num3 = ~(~num2 + num); - ImU8String imU8String = new ImU8String(33, 1); - imU8String.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1785884238)); - imU8String.AppendFormatted(issueCount); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1740500055)); - _206A_206B_206F_206C_202A_206B_200C_200B_206D_200D_206D_202D_206D_200C_202B_202D_206A_202B_202E_206E_206B_200B_200E_202A_202E_206B_206D_202E_202D_202C_200D_202E_206F_206D_202B_200E_206D_200B_202B_200C_202E(imU8String); - int num4; + int num = issueCount - errorCount; + ImU8String text = new ImU8String(33, 1); + text.AppendLiteral("Validation Results: "); + text.AppendFormatted(issueCount); + text.AppendLiteral(" total issues"); + ImGui.Text(text); if (errorCount > 0) { - _200C_206C_202D_206D_202C_202A_206D_200E_200B_200B_206F_206F_206F_202B_200D_200D_200B_206F_206D_200B_202B_206D_206A_206E_200B_206B_206F_206D_200B_206A_206E_206E_200E_202B_200E_202C_202A_200D_202B_206D_202E(); - _206A_206B_206F_206C_202A_206B_200C_200B_206D_200D_206D_202D_206D_200C_202B_202D_206A_202B_202E_206E_206B_200B_200E_202A_202E_206B_206D_202E_202D_202C_200D_202E_206F_206D_202B_200E_206D_200B_202B_200C_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1824588032)); - _200C_206C_202D_206D_202C_202A_206D_200E_200B_200B_206F_206F_206F_202B_200D_200D_200B_206F_206D_200B_202B_206D_206A_206E_200B_206B_206F_206D_200B_206A_206E_206E_200E_202B_200E_202C_202A_200D_202B_206D_202E(); - ImRaii.ColorDisposable colorDisposable = _206C_200D_202C_206C_206A_202D_200C_202E_200E_206C_202D_200B_200D_200D_206C_200D_200B_202A_200F_206C_202D_206D_206B_206E_200D_202E_202D_200F_200D_202A_206E_206E_200F_202D_202D_206B_202D_206D_202D_202C_202E(ImGuiCol.Text, _200D_206D_200E_202A_202E_200E_200E_206E_202C_206B_200B_206A_206A_200C_200F_206B_206F_206D_200C_200C_200F_202A_200E_206F_200C_200C_202E_200F_206A_200E_200F_206B_206D_206B_206A_200F_206A_206D_202B_202E_202E(), true); - try + ImGui.SameLine(); + ImGui.Text("("); + ImGui.SameLine(); + using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudRed)) { - ImU8String imU8String2 = new ImU8String(7, 1); - imU8String2.AppendFormatted(errorCount); - imU8String2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2107933616)); - _206A_206B_206F_206C_202A_206B_200C_200B_206D_200D_206D_202D_206D_200C_202B_202D_206A_202B_202E_206E_206B_200B_200E_202A_202E_206B_206D_202E_202D_202C_200D_202E_206F_206D_202B_200E_206D_200B_202B_200C_202E(imU8String2); - } - finally - { - num4 = ((colorDisposable == null) ? (-2130718725) : (-2130718728)); - while (true) - { - int num5 = num4; - num = -2130718726; - num2 = num5; - int num6 = num2 + num; - int num7 = num2 & num; - switch (num6 - (num7 + num7)) - { - case 1: - goto end_IL_00e0; - case 2: - _200E_200F_206B_202D_200D_200C_200E_206D_200E_200B_206B_206D_206D_200F_206D_202A_206E_206F_200C_206F_200F_200F_202E_200D_206B_202D_206C_206A_206B_206B_202E_206F_202C_206C_202B_206A_202D_200B_200D_202D_202E((IDisposable)colorDisposable); - num4 = -2130718725; - break; - case 0: - num4 = -2130718728; - break; - } - continue; - end_IL_00e0: - break; - } + ImU8String text2 = new ImU8String(7, 1); + text2.AppendFormatted(errorCount); + text2.AppendLiteral(" errors"); + ImGui.Text(text2); } } - if (num3 > 0) + if (num > 0) { - num4 = -873679878; - while (true) + if (errorCount > 0) { - int num8 = num4; - num = -873679877; - num2 = num8; - switch ((num2 | num) - (num2 & num)) + ImGui.SameLine(); + using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudOrange)) { - case 2: - num4 = -873679878; - break; - case 1: - { - if (errorCount > 0) - { - num4 = -873679877; - break; - } - _200C_206C_202D_206D_202C_202A_206D_200E_200B_200B_206F_206F_206F_202B_200D_200D_200B_206F_206D_200B_202B_206D_206A_206E_200B_206B_206F_206D_200B_206A_206E_206E_200E_202B_200E_202C_202A_200D_202B_206D_202E(); - _206A_206B_206F_206C_202A_206B_200C_200B_206D_200D_206D_202D_206D_200C_202B_202D_206A_202B_202E_206E_206B_200B_200E_202A_202E_206B_206D_202E_202D_202C_200D_202E_206F_206D_202B_200E_206D_200B_202B_200C_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1721352497)); - _200C_206C_202D_206D_202C_202A_206D_200E_200B_200B_206F_206F_206F_202B_200D_200D_200B_206F_206D_200B_202B_206D_206A_206E_200B_206B_206F_206D_200B_206A_206E_206E_200E_202B_200E_202C_202A_200D_202B_206D_202E(); - ImRaii.ColorDisposable colorDisposable3 = _206C_200D_202C_206C_206A_202D_200C_202E_200E_206C_202D_200B_200D_200D_206C_200D_200B_202A_200F_206C_202D_206D_206B_206E_200D_202E_202D_200F_200D_202A_206E_206E_200F_202D_202D_206B_202D_206D_202D_202C_202E(ImGuiCol.Text, _206F_200F_200F_206F_206E_206E_206D_206A_200C_206A_206B_206D_202D_200D_200B_200E_206F_200F_206A_206D_206F_206C_202C_206C_200F_202B_202A_206E_206B_206B_200B_206D_206F_206C_202C_200C_202C_202C_202A_206F_202E(), true); - try - { - ImU8String imU8String4 = new ImU8String(10, 1); - imU8String4.AppendFormatted(num3); - imU8String4.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1325629129)); - _206A_206B_206F_206C_202A_206B_200C_200B_206D_200D_206D_202D_206D_200C_202B_202D_206A_202B_202E_206E_206B_200B_200E_202A_202E_206B_206D_202E_202D_202C_200D_202E_206F_206D_202B_200E_206D_200B_202B_200C_202E(imU8String4); - return; - } - finally - { - num4 = ((colorDisposable3 == null) ? 1602354495 : 1602354492); - while (true) - { - int num12 = num4; - num = 1602354494; - num2 = num12; - switch ((num2 | num) - (num2 & num)) - { - case 0: - num4 = 1602354492; - break; - case 2: - _200E_200F_206B_202D_200D_200C_200E_206D_200E_200B_206B_206D_206D_200F_206D_202A_206E_206F_200C_206F_200F_200F_202E_200D_206B_202D_206C_206A_206B_206B_202E_206F_202C_206C_202B_206A_202D_200B_200D_202D_202E((IDisposable)colorDisposable3); - num4 = 1602354495; - break; - case 1: - goto end_IL_02c6; - } - continue; - end_IL_02c6: - break; - } - } - } - case 0: - { - _200C_206C_202D_206D_202C_202A_206D_200E_200B_200B_206F_206F_206F_202B_200D_200D_200B_206F_206D_200B_202B_206D_206A_206E_200B_206B_206F_206D_200B_206A_206E_206E_200E_202B_200E_202C_202A_200D_202B_206D_202E(); - ImRaii.ColorDisposable colorDisposable2 = _206C_200D_202C_206C_206A_202D_200C_202E_200E_206C_202D_200B_200D_200D_206C_200D_200B_202A_200F_206C_202D_206D_206B_206E_200D_202E_202D_200F_200D_202A_206E_206E_200F_202D_202D_206B_202D_206D_202D_202C_202E(ImGuiCol.Text, _206F_200F_200F_206F_206E_206E_206D_206A_200C_206A_206B_206D_202D_200D_200B_200E_206F_200F_206A_206D_206F_206C_202C_206C_200F_202B_202A_206E_206B_206B_200B_206D_206F_206C_202C_200C_202C_202C_202A_206F_202E(), true); - try - { - ImU8String imU8String3 = new ImU8String(12, 1); - imU8String3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1467939024)); - imU8String3.AppendFormatted(num3); - imU8String3.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1407765195)); - _206A_206B_206F_206C_202A_206B_200C_200B_206D_200D_206D_202D_206D_200C_202B_202D_206A_202B_202E_206E_206B_200B_200E_202A_202E_206B_206D_202E_202D_202C_200D_202E_206F_206D_202B_200E_206D_200B_202B_200C_202E(imU8String3); - return; - } - finally - { - num4 = ((colorDisposable2 == null) ? 1360165335 : 1360165332); - while (true) - { - int num9 = num4; - num = 1360165334; - num2 = num9; - int num10 = num2 + num; - int num11 = num2 & num; - switch (num10 - (num11 + num11)) - { - case 1: - goto end_IL_01fe; - case 2: - _200E_200F_206B_202D_200D_200C_200E_206D_200E_200B_206B_206D_206D_200F_206D_202A_206E_206F_200C_206F_200F_200F_202E_200D_206B_202D_206C_206A_206B_206B_202E_206F_202C_206C_202B_206A_202D_200B_200D_202D_202E((IDisposable)colorDisposable2); - num4 = 1360165335; - break; - case 0: - num4 = 1360165332; - break; - } - continue; - end_IL_01fe: - break; - } - } - } + ImU8String text3 = new ImU8String(12, 1); + text3.AppendLiteral(", "); + text3.AppendFormatted(num); + text3.AppendLiteral(" warnings)"); + ImGui.Text(text3); + return; } } - } - num4 = ((errorCount <= 0) ? (-1281785323) : (-1281785324)); - while (true) - { - int num13 = num4; - num = -1281785323; - num2 = num13; - int num14 = num2 + num; - int num15 = num2 & num; - switch (num14 - (num15 + num15)) + ImGui.SameLine(); + ImGui.Text("("); + ImGui.SameLine(); + using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudOrange)) { - case 2: - num4 = -1281785324; - break; - case 1: - _200C_206C_202D_206D_202C_202A_206D_200E_200B_200B_206F_206F_206F_202B_200D_200D_200B_206F_206D_200B_202B_206D_206A_206E_200B_206B_206F_206D_200B_206A_206E_206E_200E_202B_200E_202C_202A_200D_202B_206D_202E(); - _206A_206B_206F_206C_202A_206B_200C_200B_206D_200D_206D_202D_206D_200C_202B_202D_206A_202B_202E_206E_206B_200B_200E_202A_202E_206B_206D_202E_202D_202C_200D_202E_206F_206D_202B_200E_206D_200B_202B_200C_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - num4 = -1281785323; - break; - case 0: + ImU8String text4 = new ImU8String(10, 1); + text4.AppendFormatted(num); + text4.AppendLiteral(" warnings)"); + ImGui.Text(text4); return; } } + if (errorCount > 0) + { + ImGui.SameLine(); + ImGui.Text(")"); + } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawValidationTable() { - using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1097395556), 5, ImGuiTableFlags.ScrollX | ImGuiTableFlags.ScrollY); - int num = ((!(!tableDisposable)) ? 567364098 : 567364102); - int num7 = default(int); - IReadOnlyList<ValidationIssue> issues = default(IReadOnlyList<ValidationIssue>); - while (true) + using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable("ValidationIssues", 5, ImGuiTableFlags.ScrollX | ImGuiTableFlags.ScrollY); + if (!(!tableDisposable)) { - int num2 = num; - int num3 = 567364103; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + ImGui.TableSetupColumn("Type", ImGuiTableColumnFlags.WidthFixed, 50f); + ImGui.TableSetupColumn("ID", ImGuiTableColumnFlags.WidthFixed, 60f); + ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.WidthFixed, 250f); + ImGui.TableSetupColumn("Location", ImGuiTableColumnFlags.WidthFixed, 100f); + ImGui.TableSetupColumn("Issue", ImGuiTableColumnFlags.WidthStretch); + ImGui.TableHeadersRow(); + IReadOnlyList<ValidationIssue> issues = _questValidator.Issues; + for (int i = 0; i < issues.Count; i++) { - case 4: - num = 567364102; - break; - case 0: - num = ((num7 < issues.Count) ? 567364100 : 567364101); - break; - case 5: - _206B_202B_206B_206D_206F_206F_206A_200F_206F_206E_206C_206E_206A_200E_206A_200C_206B_206F_206D_200F_206A_206D_200D_202C_206C_202B_202E_202E_206B_200F_200F_200C_206A_202B_202C_206D_206A_200D_206C_202E_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(692740068), ImGuiTableColumnFlags.WidthFixed, 50f, 0u); - _206B_202B_206B_206D_206F_206F_206A_200F_206F_206E_206C_206E_206A_200E_206A_200C_206B_206F_206D_200F_206A_206D_200D_202C_206C_202B_202E_202E_206B_200F_200F_200C_206A_202B_202C_206D_206A_200D_206C_202E_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1492687959), ImGuiTableColumnFlags.WidthFixed, 60f, 0u); - _206B_202B_206B_206D_206F_206F_206A_200F_206F_206E_206C_206E_206A_200E_206A_200C_206B_206F_206D_200F_206A_206D_200D_202C_206C_202B_202E_202E_206B_200F_200F_200C_206A_202B_202C_206D_206A_200D_206C_202E_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(295817554), ImGuiTableColumnFlags.WidthFixed, 250f, 0u); - _206B_202B_206B_206D_206F_206F_206A_200F_206F_206E_206C_206E_206A_200E_206A_200C_206B_206F_206D_200F_206A_206D_200D_202C_206C_202B_202E_202E_206B_200F_200F_200C_206A_202B_202C_206D_206A_200D_206C_202E_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1394332433), ImGuiTableColumnFlags.WidthFixed, 100f, 0u); - _206B_202B_206B_206D_206F_206F_206A_200F_206F_206E_206C_206E_206A_200E_206A_200C_206B_206F_206D_200F_206A_206D_200D_202C_206C_202B_202E_202E_206B_200F_200F_200C_206A_202B_202C_206D_206A_200D_206C_202E_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-124440889), ImGuiTableColumnFlags.WidthStretch, 0f, 0u); - _202D_206B_202E_202A_206F_202A_206E_200E_200C_200B_206B_206C_202C_202C_206F_206F_202D_206D_202A_202B_202A_202E_202A_206E_202A_206D_200F_206F_206D_206F_202A_200B_206A_206E_206A_200E_206B_200E_206F_202B_202E(); - issues = _questValidator.Issues; - num7 = 0; - num = 567364103; - break; - case 1: - return; - case 3: - { - DrawValidationRow(issues[num7], num7); - int num8 = num7; - num3 = 1; - num4 = num8; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - num7 = num9 + (num10 + num10); - num = 567364103; - break; - } - case 2: - return; + DrawValidationRow(issues[i], i); } } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawValidationRow(ValidationIssue issue, int index) { - //Discarded unreachable code: IL_021d - _202E_200C_200C_206D_202E_200E_200B_200D_206C_202D_200C_200E_200D_206D_200B_206B_206C_200C_200C_202A_200B_200D_206D_206C_206E_200B_200C_202E_206A_202D_202D_206C_202B_206A_202D_206C_200E_200E_202B_206D_202E(); - int num = ((!_206F_200E_200B_200E_206F_206C_200D_202D_206C_202E_200D_202A_200C_202E_200B_206B_202B_202C_200B_206F_206B_200C_206F_202B_206D_200D_206A_200F_200C_206A_202B_206E_206B_200E_206A_202A_206D_206E_206A_202E_202E()) ? (-578343204) : (-578343209)); - string text = default(string); - ElementId elementId = default(ElementId); - string text2 = default(string); - while (true) + ImGui.TableNextRow(); + if (ImGui.TableNextColumn()) { - int num2 = num; - int num3 = -578343207; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - ImRaii.ColorDisposable colorDisposable; - switch (num5 - (num6 + num6)) + ImGui.TextUnformatted(issue.PathType switch { - default: - continue; - case 11: - _200B_202C_200E_206A_206C_206A_206B_206B_200C_200C_202C_202C_200C_202C_200D_202C_206C_202E_202D_206F_206E_200E_200C_200F_206A_206B_202E_206D_200F_200C_200E_200C_206D_206E_200B_206B_200B_206F_200D_206B_202E((ImU8String)(issue.Id ?? string.Empty)); - num = -578343215; - continue; - case 1: - num = -578343201; - continue; - case 4: - text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-649277638); - num = -578343206; - continue; - case 0: - num = -578343209; - continue; - case 13: - if (_202A_206C_206F_200C_200B_206A_206E_200D_200C_202C_202D_200D_200C_200D_200E_206E_206B_202C_206A_206B_202A_206C_202C_202D_202A_202D_206E_200E_206E_202B_200D_206F_206D_200D_202B_206C_206A_206E_202E(elementId, (ElementId)null)) - { - goto IL_00ed; - } - goto IL_0242; - case 12: - goto IL_00ed; - case 2: - if (issue.Id != null) - { - num = -578343213; - continue; - } - goto IL_024e; - case 15: - goto IL_011b; - case 10: - if (_200E_200D_202C_202D_200B_200F_206F_202E_200F_202D_206C_206A_202B_206C_202D_202D_202B_200B_202B_200B_200D_202B_200D_206F_202B_206E_202B_200F_200B_202C_200E_202C_200D_202D_206D_200D_202B_206C_206B_202E(issue.Id, ref elementId)) - { - num = -578343212; - continue; - } - goto IL_0242; - case 6: - text = issue.PathType.ToString(); - num = -578343206; - continue; - case 3: - _200B_202C_200E_206A_206C_206A_206B_206B_200C_200C_202C_202C_200C_202C_200D_202C_206C_202E_202D_206F_206E_200E_200C_200F_206A_206B_202E_206D_200F_200C_200E_200C_206D_206E_200B_206B_200B_206F_200D_206B_202E((ImU8String)text); - num = -578343204; - continue; - case 5: - num = ((!_206F_200E_200B_200E_206F_206C_200D_202D_206C_202E_200D_202A_200C_202E_200B_206B_202B_202C_200B_206F_206B_200C_206F_202B_206D_200D_206A_200F_200C_206A_202B_206E_206B_200E_206A_202A_206D_206E_206A_202E_202E()) ? (-578343215) : (-578343214)); - continue; - case 9: - text2 = string.Empty; - if (issue.PathType == EPathType.Quest) - { - num = -578343205; - continue; - } - goto IL_024e; - case 8: - if (_206F_200E_200B_200E_206F_206C_200D_202D_206C_202E_200D_202A_200C_202E_200B_206B_202B_202C_200B_206F_206B_200C_206F_202B_206D_200D_206A_200F_200C_206A_202B_206E_206B_200E_206A_202A_206D_206E_206A_202E_202E()) - { - num = -578343216; - continue; - } - goto IL_02e1; - case 7: - goto IL_01dd; - case 14: - { - switch (issue.PathType) - { - case EPathType.Fate: - break; - case EPathType.SeasonalDuty: - goto IL_00ed; - case EPathType.Gathering: - goto IL_011b; - case EPathType.Quest: - goto IL_01dd; - default: - goto IL_0211; - } - goto case 4; - } - IL_0211: - num = -578343208; - continue; - IL_01dd: - text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-410528250); - num = -578343206; - continue; - IL_026c: - while (true) - { - int num7 = num; - num3 = -830017682; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - num = -830017681; - break; - case 3: - goto IL_02ae; - case 1: - goto end_IL_026c; - case 4: - goto IL_02f7; - case 2: - goto IL_0318; - } - continue; - IL_02ae: - num = (_200E_202C_206A_206C_206F_202B_206A_200D_200F_206C_206A_200C_200D_202D_202D_206E_206A_206C_202C_206B_206E_206C_206E_200C_202E_200E_200C_200F_206E_206A_206A_202E_206B_202B_206C_206F_202C_200F_200F_200C_202E(issue.Location) ? (-830017684) : (-830017686)); - continue; - end_IL_026c: - break; - } - goto IL_02d6; - IL_0318: - colorDisposable = _206C_200D_202C_206C_206A_202D_200C_202E_200E_206C_202D_200B_200D_200D_206C_200D_200B_202A_200F_206C_202D_206D_206B_206E_200D_202E_202D_200F_200D_202A_206E_206E_200F_202D_202D_206B_202D_206D_202D_202C_202E(ImGuiCol.Text, _202D_206E_200B_200F_200B_200D_202D_206D_202E_206C_202B_206B_202D_202B_202B_202C_200C_206F_206E_202C_206D_200F_202E_206F_206D_206A_206B_200C_200F_206F_200E_206E_202E_202C_202B_206B_206F_200D_206D_200C_202E(), true); - try - { - _200B_202C_200E_206A_206C_206A_206B_206B_200C_200C_202C_202C_200C_202C_200D_202C_206C_202E_202D_206F_206E_200E_200C_200F_206A_206B_202E_206D_200F_200C_200E_200C_206D_206E_200B_206B_200B_206F_200D_206B_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(792471175)); - } - finally - { - num = ((colorDisposable == null) ? (-706347734) : (-706347735)); - while (true) - { - int num10 = num; - num3 = -706347736; - num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 0: - num = -706347735; - break; - case 2: - goto end_IL_035e; - case 1: - _200E_200F_206B_202D_200D_200C_200E_206D_200E_200B_206B_206D_206D_200F_206D_202A_206E_206F_200C_206F_200F_200F_202E_200D_206B_202D_206C_206A_206B_206B_202E_206F_202C_206C_202B_206A_202D_200B_200D_202D_202E((IDisposable)colorDisposable); - num = -706347734; - break; - } - continue; - end_IL_035e: - break; - } - } - break; - IL_02f7: - _200B_202C_200E_206A_206C_206A_206B_206B_200C_200C_202C_202C_200C_202C_200D_202C_206C_202E_202D_206F_206E_200E_200C_200F_206A_206B_202E_206D_200F_200C_200E_200C_206D_206E_200B_206B_200B_206F_200D_206B_202E((ImU8String)issue.Location); - break; - IL_011b: - text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2056899084); - num = -578343206; - continue; - IL_024e: - if (issue.Id != null) - { - text2 = issue.Id; - num = -830017681; - goto IL_026c; - } - goto IL_02d6; - IL_00ed: - text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-101385123); - num = -578343206; - continue; - IL_0242: - text2 = issue.Id; - goto IL_02d6; - IL_02d6: - UiThemeUtils.RowLabel(text2, 0f); - goto IL_02e1; - IL_02e1: - if (!_206F_200E_200B_200E_206F_206C_200D_202D_206C_202E_200D_202A_200C_202E_200B_206B_202B_202C_200B_206F_206B_200C_206F_202B_206D_200D_206A_200F_200C_206A_202B_206E_206B_200E_206A_202A_206D_206E_206A_202E_202E()) - { - break; - } - num = -830017683; - goto IL_026c; - } - break; + EPathType.Quest => "Quest", + EPathType.Fate => "Fate", + EPathType.Gathering => "Gather", + EPathType.SeasonalDuty => "Duty", + _ => issue.PathType.ToString(), + }); } - num = ((!_206F_200E_200B_200E_206F_206C_200D_202D_206C_202E_200D_202A_200C_202E_200B_206B_202B_202C_200B_206F_206B_200C_206F_202B_206D_200D_206A_200F_200C_206A_202B_206E_206B_200E_206A_202A_206D_206E_206A_202E_202E()) ? (-931644371) : (-931644370)); - while (true) + if (ImGui.TableNextColumn()) { - int num13 = num; - int num3 = -931644369; - int num4 = num13; - int num14 = num4 + num3; - int num15 = num4 & num3; - switch (num14 - (num15 + num15)) + ImGui.TextUnformatted(issue.Id ?? string.Empty); + } + if (ImGui.TableNextColumn()) + { + string text = string.Empty; + if (issue.PathType == EPathType.Quest && issue.Id != null) { - case 2: - return; - case 1: - DrawIssueCell(issue, index); - num = -931644371; - break; - case 0: - num = -931644370; - break; + if (ElementId.TryFromString(issue.Id, out ElementId elementId) && elementId != null) + { + try + { + text = _questData.GetQuestInfo(elementId).Name; + } + catch + { + text = issue.Id; + } + } + else + { + text = issue.Id; + } } + else if (issue.Id != null) + { + text = issue.Id; + } + UiThemeUtils.RowLabel(text, 0f); + } + if (ImGui.TableNextColumn()) + { + if (!string.IsNullOrEmpty(issue.Location)) + { + ImGui.TextUnformatted(issue.Location); + } + else + { + using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudGrey2)) + { + ImGui.TextUnformatted("-"); + } + } + } + if (ImGui.TableNextColumn()) + { + DrawIssueCell(issue, index); } } private void DrawIssueCell(ValidationIssue issue, int index) { - EIssueSeverity severity = issue.Severity; - int num = ((severity == EIssueSeverity.Warning) ? 617101105 : 617101108); - Vector4 vector = default(Vector4); - Vector4 vector2 = default(Vector4); - FontAwesomeIcon fontAwesomeIcon2 = default(FontAwesomeIcon); - while (true) + Vector4 color = issue.Severity switch { - int num2 = num; - int num3 = 617101105; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + EIssueSeverity.Error => ImGuiColors.DalamudRed, + EIssueSeverity.Warning => ImGuiColors.DalamudYellow, + _ => ImGuiColors.DalamudOrange, + }; + FontAwesomeIcon icon = issue.Severity switch + { + EIssueSeverity.Error => FontAwesomeIcon.ExclamationTriangle, + EIssueSeverity.Warning => FontAwesomeIcon.ExclamationCircle, + _ => FontAwesomeIcon.InfoCircle, + }; + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) + { + using (ImRaii.PushColor(ImGuiCol.Text, color)) { - case 1: - vector = vector2; - severity = issue.Severity; - num = ((severity == EIssueSeverity.Warning) ? 617101111 : 617101107); - break; - case 8: - vector2 = _200D_206D_200E_202A_202E_200E_200E_206E_202C_206B_200B_206A_206A_200C_200F_206B_206F_206D_200C_200C_200F_202A_200E_206F_200C_200C_202E_200F_206A_200E_200F_206B_206D_206B_206A_200F_206A_206D_202B_202E_202E(); - num = 617101104; - break; - case 5: - num = ((severity != EIssueSeverity.Error) ? 617101109 : 617101113); - break; - case 3: - fontAwesomeIcon2 = FontAwesomeIcon.InfoCircle; - num = 617101115; - break; - case 0: - vector2 = _202E_200D_200D_200E_202B_202D_200F_206D_206A_206E_202A_206F_202A_206C_200F_200E_200C_200F_200F_206C_202A_200F_206C_206D_200C_200C_202C_206E_200E_206B_200B_200D_206C_200E_206C_206F_206D_200D_206E_202C_202E(); - num = 617101104; - break; - case 4: - vector2 = _206F_200F_200F_206F_206E_206E_206D_206A_200C_206A_206B_206D_202D_200D_200B_200E_206F_200F_206A_206D_206F_206C_202C_206C_200F_202B_202A_206E_206B_206B_200B_206D_206F_206C_202C_200C_202C_202C_202A_206F_202E(); - num = 617101104; - break; - case 7: - fontAwesomeIcon2 = FontAwesomeIcon.ExclamationTriangle; - num = 617101115; - break; - case 6: - fontAwesomeIcon2 = FontAwesomeIcon.ExclamationCircle; - num = 617101115; - break; - case 2: - num = ((severity != EIssueSeverity.Error) ? 617101106 : 617101110); - break; - case 9: - num = 617101108; - break; - case 10: - { - FontAwesomeIcon fontAwesomeIcon = fontAwesomeIcon2; - IDisposable disposable = _206C_202D_206B_200F_202C_202C_200D_206E_202A_202E_202C_200C_202B_200C_202E_206C_200F_200D_206B_200B_206D_206E_200B_200C_206D_206A_202A_200D_200E_206F_206E_202B_206F_206C_206A_206A_202A_202D_202B_202E_202E(_200B_202E_206E_206B_200D_200B_200D_200F_206C_206B_202C_206A_202B_206F_206C_202D_206B_206A_200D_200E_200D_202B_200B_202A_200C_200D_200C_206C_200B_200B_200D_206D_200F_200D_206E_206F_202C_206E_206D_202D_202E(_200B_200E_206A_202C_200D_200F_202E_202D_202C_202D_200E_200B_200F_206F_206E_200F_202D_200C_202D_202A_206E_206C_206A_206A_206C_206B_206D_202C_202D_202A_202D_200B_202C_200D_206D_200C_206B_206E_202C_206C_202E(_pluginInterface))); - try - { - ImRaii.ColorDisposable colorDisposable = _206C_200D_202C_206C_206A_202D_200C_202E_200E_206C_202D_200B_200D_200D_206C_200D_200B_202A_200F_206C_202D_206D_206B_206E_200D_202E_202D_200F_200D_202A_206E_206E_200F_202D_202D_206B_202D_206D_202D_202C_202E(ImGuiCol.Text, vector, true); - try - { - _200B_202C_200E_206A_206C_206A_206B_206B_200C_200C_202C_202C_200C_202C_200D_202C_206C_202E_202D_206F_206E_200E_200C_200F_206A_206B_202E_206D_200F_200C_200E_200C_206D_206E_200B_206B_200B_206F_200D_206B_202E((ImU8String)_202C_202A_202A_206A_202B_206B_202E_206F_202C_202D_206A_200D_206E_206E_202B_202A_200B_206D_206A_206A_206B_202C_206F_206D_202A_206B_200E_206F_200F_206C_200B_200B_202D_200B_202A_202B_200C_202E_206B_202B_202E(fontAwesomeIcon)); - } - finally - { - num = ((colorDisposable == null) ? 1791003591 : 1791003588); - while (true) - { - int num7 = num; - num3 = 1791003590; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - num = 1791003588; - break; - case 1: - goto end_IL_01b3; - case 2: - _200E_200F_206B_202D_200D_200C_200E_206D_200E_200B_206B_206D_206D_200F_206D_202A_206E_206F_200C_206F_200F_200F_202E_200D_206B_202D_206C_206A_206B_206B_202E_206F_202C_206C_202B_206A_202D_200B_200D_202D_202E((IDisposable)colorDisposable); - num = 1791003591; - break; - } - continue; - end_IL_01b3: - break; - } - } - } - finally - { - num = ((disposable == null) ? 109458007 : 109458006); - while (true) - { - int num10 = num; - num3 = 109458007; - num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 109458006; - break; - case 0: - goto end_IL_0220; - case 1: - _200E_200F_206B_202D_200D_200C_200E_206D_200E_200B_206B_206D_206D_200F_206D_202A_206E_206F_200C_206F_200F_200F_202E_200D_206B_202D_206C_206A_206B_206B_202E_206F_202C_206C_202B_206A_202D_200B_200D_202D_202E(disposable); - num = 109458007; - break; - } - continue; - end_IL_0220: - break; - } - } - _200C_206C_202D_206D_202C_202A_206D_200E_200B_200B_206F_206F_206F_202B_200D_200D_200B_206F_206D_200B_202B_206D_206A_206E_200B_206B_206F_206D_200B_206A_206E_206E_200E_202B_200E_202C_202A_200D_202B_206D_202E(); - string issueSummary = GetIssueSummary(issue); - ImRaii.ColorDisposable colorDisposable2 = _206C_200D_202C_206C_206A_202D_200C_202E_200E_206C_202D_200B_200D_200D_206C_200D_200B_202A_200F_206C_202D_206D_206B_206E_200D_202E_202D_200F_200D_202A_206E_206E_200F_202D_202D_206B_202D_206D_202D_202C_202E(ImGuiCol.Text, vector, true); - try - { - _206B_202B_200C_202A_206D_202C_202E_202D_206D_200C_206D_206B_202E_200D_200E_200B_202E_202C_200C_202B_202C_206A_206E_202C_200D_200E_200B_206F_200D_206A_200F_206C_206E_200F_206F_200E_206D_200D_200F_206C_202E((ImU8String)issueSummary); - return; - } - finally - { - num = ((colorDisposable2 == null) ? 1692882972 : 1692882975); - while (true) - { - int num11 = num; - num3 = 1692882973; - num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) - { - case 0: - num = 1692882975; - break; - case 2: - _200E_200F_206B_202D_200D_200C_200E_206D_200E_200B_206B_206D_206D_200F_206D_202A_206E_206F_200C_206F_200F_200F_202E_200D_206B_202D_206C_206A_206B_206B_202E_206F_202C_206C_202B_206A_202D_200B_200D_202D_202E((IDisposable)colorDisposable2); - num = 1692882972; - break; - case 1: - goto end_IL_02b1; - } - continue; - end_IL_02b1: - break; - } - } - } + ImGui.TextUnformatted(icon.ToIconString()); } } + ImGui.SameLine(); + string issueSummary = GetIssueSummary(issue); + using (ImRaii.PushColor(ImGuiCol.Text, color)) + { + ImGui.TextWrapped(issueSummary); + } } - [MethodImpl(MethodImplOptions.NoInlining)] private static string GetIssueSummary(ValidationIssue issue) { string text = issue.Description ?? string.Empty; - int num = ((issue.Type != EIssueType.QuestDisabled) ? (-1073159502) : (-1073159503)); - string[] array2 = default(string[]); - string[] array = default(string[]); - while (true) + if (issue.Type == EIssueType.QuestDisabled && issue.Id == null) { - int num2 = num; - int num3 = -1073159499; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + string[] array = text.Split(':', 2); + if (array.Length == 0) { - case 3: - array2 = _206B_200D_200F_206D_202A_202A_202D_202C_202C_200E_206E_200E_202E_202B_206F_200C_200D_200F_202A_206C_202B_200F_202D_206E_200B_206C_206A_200D_206E_202B_206D_200C_206A_202B_202C_206B_202B_202A_206A_202E_202E(text, ':', 2, StringSplitOptions.None); - num = ((array2.Length != 0) ? (-1073159497) : (-1073159500)); - break; - case 0: - num = ((array.Length > 1) ? (-1073159504) : (-1073159491)); - break; - case 2: - return array2[0]; - case 8: - return array[0]; - case 1: - return text; - case 5: - return _202B_202B_200F_200B_206F_200B_200E_202D_202A_206A_202B_200B_202B_206B_206F_202C_200F_200D_206D_200D_200D_202E_200F_206C_202D_206F_200C_200C_200F_202A_200F_200F_202D_200E_206F_200E_206E_206D_200D_200D_202E(array[0], global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(799152405)); - case 7: - array = _206B_200D_200F_206D_202A_202A_202D_202C_202C_200E_206E_200E_202E_202B_206F_200C_200D_200F_202A_206C_202B_200F_202D_206E_200B_206C_206A_200D_206E_202B_206D_200C_206A_202B_202C_206B_202B_202A_206A_202E_202E(text, '\n', 2, StringSplitOptions.RemoveEmptyEntries); - num = ((array.Length != 0) ? (-1073159499) : (-1073159501)); - break; - case 4: - num = ((issue.Id != null) ? (-1073159502) : (-1073159498)); - break; - case 9: - num = -1073159503; - break; - case 6: return text; } + return array[0]; } + string[] array2 = text.Split('\n', 2, StringSplitOptions.RemoveEmptyEntries); + if (array2.Length == 0) + { + return text; + } + if (array2.Length <= 1) + { + return array2[0]; + } + return array2[0] + "..."; } private static bool HasDetailedDescription(ValidationIssue issue) { - int num = ((issue.Type != EIssueType.QuestDisabled) ? (-1196136618) : (-1196136624)); - string text = default(string); - while (true) + if (issue.Type == EIssueType.QuestDisabled && issue.Id == null) { - int num2 = num; - int num3 = -1196136621; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return true; - case 4: - return _200D_206C_200C_206C_206A_206F_202C_206D_206F_206D_206D_200B_200D_202C_206B_206F_202B_206A_206E_206D_206F_206B_202A_202A_202B_200C_202E_202D_202C_206C_206E_206A_202E_206B_206C_200B_202A_206B_206D_206A_202E(text) > 100; - case 2: - return true; - case 0: - num = -1196136624; - break; - case 3: - num = ((issue.Id != null) ? (-1196136618) : (-1196136622)); - break; - case 5: - text = issue.Description ?? string.Empty; - num = (_202B_202E_202B_206D_202E_206F_206C_202E_202E_202E_202C_202E_200D_202B_206D_206E_202E_202E_200B_200C_200F_200E_202D_206E_206F_202D_200C_206F_200E_202D_202E_200E_200B_202C_202C_206F_202E_202A_202E(text, '\n', StringComparison.Ordinal) ? (-1196136623) : (-1196136617)); - break; - } + return true; } - } - - static void _206A_206B_206F_206C_202A_206B_200C_200B_206D_200D_206D_202D_206D_200C_202B_202D_206A_202B_202E_206E_206B_200B_200E_202A_202E_206B_206D_202E_202D_202C_200D_202E_206F_206D_202B_200E_206D_200B_202B_200C_202E(ImU8String P_0) - { - ImGui.Text(P_0); - } - - static void _200C_206C_202D_206D_202C_202A_206D_200E_200B_200B_206F_206F_206F_202B_200D_200D_200B_206F_206D_200B_202B_206D_206A_206E_200B_206B_206F_206D_200B_206A_206E_206E_200E_202B_200E_202C_202A_200D_202B_206D_202E() - { - ImGui.SameLine(); - } - - static Vector4 _200D_206D_200E_202A_202E_200E_200E_206E_202C_206B_200B_206A_206A_200C_200F_206B_206F_206D_200C_200C_200F_202A_200E_206F_200C_200C_202E_200F_206A_200E_200F_206B_206D_206B_206A_200F_206A_206D_202B_202E_202E() - { - return ImGuiColors.DalamudRed; - } - - static ImRaii.ColorDisposable _206C_200D_202C_206C_206A_202D_200C_202E_200E_206C_202D_200B_200D_200D_206C_200D_200B_202A_200F_206C_202D_206D_206B_206E_200D_202E_202D_200F_200D_202A_206E_206E_200F_202D_202D_206B_202D_206D_202D_202C_202E(ImGuiCol P_0, Vector4 P_1, bool P_2) - { - return ImRaii.PushColor(P_0, P_1, P_2); - } - - static void _200E_200F_206B_202D_200D_200C_200E_206D_200E_200B_206B_206D_206D_200F_206D_202A_206E_206F_200C_206F_200F_200F_202E_200D_206B_202D_206C_206A_206B_206B_202E_206F_202C_206C_202B_206A_202D_200B_200D_202D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static Vector4 _206F_200F_200F_206F_206E_206E_206D_206A_200C_206A_206B_206D_202D_200D_200B_200E_206F_200F_206A_206D_206F_206C_202C_206C_200F_202B_202A_206E_206B_206B_200B_206D_206F_206C_202C_200C_202C_202C_202A_206F_202E() - { - return ImGuiColors.DalamudOrange; - } - - static void _206B_202B_206B_206D_206F_206F_206A_200F_206F_206E_206C_206E_206A_200E_206A_200C_206B_206F_206D_200F_206A_206D_200D_202C_206C_202B_202E_202E_206B_200F_200F_200C_206A_202B_202C_206D_206A_200D_206C_202E_202E(ImU8String P_0, ImGuiTableColumnFlags P_1, float P_2, uint P_3) - { - ImGui.TableSetupColumn(P_0, P_1, P_2, P_3); - } - - static void _202D_206B_202E_202A_206F_202A_206E_200E_200C_200B_206B_206C_202C_202C_206F_206F_202D_206D_202A_202B_202A_202E_202A_206E_202A_206D_200F_206F_206D_206F_202A_200B_206A_206E_206A_200E_206B_200E_206F_202B_202E() - { - ImGui.TableHeadersRow(); - } - - static void _202E_200C_200C_206D_202E_200E_200B_200D_206C_202D_200C_200E_200D_206D_200B_206B_206C_200C_200C_202A_200B_200D_206D_206C_206E_200B_200C_202E_206A_202D_202D_206C_202B_206A_202D_206C_200E_200E_202B_206D_202E() - { - ImGui.TableNextRow(); - } - - static bool _206F_200E_200B_200E_206F_206C_200D_202D_206C_202E_200D_202A_200C_202E_200B_206B_202B_202C_200B_206F_206B_200C_206F_202B_206D_200D_206A_200F_200C_206A_202B_206E_206B_200E_206A_202A_206D_206E_206A_202E_202E() - { - return ImGui.TableNextColumn(); - } - - static void _200B_202C_200E_206A_206C_206A_206B_206B_200C_200C_202C_202C_200C_202C_200D_202C_206C_202E_202D_206F_206E_200E_200C_200F_206A_206B_202E_206D_200F_200C_200E_200C_206D_206E_200B_206B_200B_206F_200D_206B_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static bool _200E_200D_202C_202D_200B_200F_206F_202E_200F_202D_206C_206A_202B_206C_202D_202D_202B_200B_202B_200B_200D_202B_200D_206F_202B_206E_202B_200F_200B_202C_200E_202C_200D_202D_206D_200D_202B_206C_206B_202E(string P_0, ref ElementId P_1) - { - return ElementId.TryFromString(P_0, out P_1); - } - - static bool _202A_206C_206F_200C_200B_206A_206E_200D_200C_202C_202D_200D_200C_200D_200E_206E_206B_202C_206A_206B_202A_206C_202C_202D_202A_202D_206E_200E_206E_202B_200D_206F_206D_200D_202B_206C_206A_206E_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } - - static bool _200E_202C_206A_206C_206F_202B_206A_200D_200F_206C_206A_200C_200D_202D_202D_206E_206A_206C_202C_206B_206E_206C_206E_200C_202E_200E_200C_200F_206E_206A_206A_202E_206B_202B_206C_206F_202C_200F_200F_200C_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static Vector4 _202D_206E_200B_200F_200B_200D_202D_206D_202E_206C_202B_206B_202D_202B_202B_202C_200C_206F_206E_202C_206D_200F_202E_206F_206D_206A_206B_200C_200F_206F_200E_206E_202E_202C_202B_206B_206F_200D_206D_200C_202E() - { - return ImGuiColors.DalamudGrey2; - } - - static Vector4 _202E_200D_200D_200E_202B_202D_200F_206D_206A_206E_202A_206F_202A_206C_200F_200E_200C_200F_200F_206C_202A_200F_206C_206D_200C_200C_202C_206E_200E_206B_200B_200D_206C_200E_206C_206F_206D_200D_206E_202C_202E() - { - return ImGuiColors.DalamudYellow; - } - - static IUiBuilder _200B_200E_206A_202C_200D_200F_202E_202D_202C_202D_200E_200B_200F_206F_206E_200F_202D_200C_202D_202A_206E_206C_206A_206A_206C_206B_206D_202C_202D_202A_202D_200B_202C_200D_206D_200C_206B_206E_202C_206C_202E(IDalamudPluginInterface P_0) - { - return P_0.UiBuilder; - } - - static IFontHandle _200B_202E_206E_206B_200D_200B_200D_200F_206C_206B_202C_206A_202B_206F_206C_202D_206B_206A_200D_200E_200D_202B_200B_202A_200C_200D_200C_206C_200B_200B_200D_206D_200F_200D_206E_206F_202C_206E_206D_202D_202E(IUiBuilder P_0) - { - return P_0.IconFontFixedWidthHandle; - } - - static IDisposable _206C_202D_206B_200F_202C_202C_200D_206E_202A_202E_202C_200C_202B_200C_202E_206C_200F_200D_206B_200B_206D_206E_200B_200C_206D_206A_202A_200D_200E_206F_206E_202B_206F_206C_206A_206A_202A_202D_202B_202E_202E(IFontHandle P_0) - { - return P_0.Push(); - } - - static string _202C_202A_202A_206A_202B_206B_202E_206F_202C_202D_206A_200D_206E_206E_202B_202A_200B_206D_206A_206A_206B_202C_206F_206D_202A_206B_200E_206F_200F_206C_200B_200B_202D_200B_202A_202B_200C_202E_206B_202B_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static void _206B_202B_200C_202A_206D_202C_202E_202D_206D_200C_206D_206B_202E_200D_200E_200B_202E_202C_200C_202B_202C_206A_206E_202C_200D_200E_200B_206F_200D_206A_200F_206C_206E_200F_206F_200E_206D_200D_200F_206C_202E(ImU8String P_0) - { - ImGui.TextWrapped(P_0); - } - - static string[] _206B_200D_200F_206D_202A_202A_202D_202C_202C_200E_206E_200E_202E_202B_206F_200C_200D_200F_202A_206C_202B_200F_202D_206E_200B_206C_206A_200D_206E_202B_206D_200C_206A_202B_202C_206B_202B_202A_206A_202E_202E(string P_0, char P_1, int P_2, StringSplitOptions P_3) - { - return P_0.Split(P_1, P_2, P_3); - } - - static string _202B_202B_200F_200B_206F_200B_200E_202D_202A_206A_202B_200B_202B_206B_206F_202C_200F_200D_206D_200D_200D_202E_200F_206C_202D_206F_200C_200C_200F_202A_200F_200F_202D_200E_206F_200E_206E_206D_200D_200D_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static bool _202B_202E_202B_206D_202E_206F_206C_202E_202E_202E_202C_202E_200D_202B_206D_206E_202E_202E_200B_200C_200F_200E_202D_206E_206F_202D_200C_206F_200E_202D_202E_200E_200B_202C_202C_206F_202E_202A_202E(string P_0, char P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); - } - - static int _200D_206C_200C_206C_206A_206F_202C_206D_206F_206D_206D_200B_200D_202C_206B_206F_202B_206A_206E_206D_206F_206B_202A_202A_202B_200C_202E_202D_202C_206C_206E_206A_202E_206B_206C_200B_202A_206B_206D_206A_202E(string P_0) - { - return P_0.Length; + string text = issue.Description ?? string.Empty; + if (!text.Contains('\n', StringComparison.Ordinal)) + { + return text.Length > 100; + } + return true; } } diff --git a/Questionable/Questionable.Windows.QuestComponents/QuickAccessButtonsComponent.cs b/Questionable/Questionable.Windows.QuestComponents/QuickAccessButtonsComponent.cs index 58eab57..9674289 100644 --- a/Questionable/Questionable.Windows.QuestComponents/QuickAccessButtonsComponent.cs +++ b/Questionable/Questionable.Windows.QuestComponents/QuickAccessButtonsComponent.cs @@ -1,19 +1,13 @@ using System; -using System.Collections.ObjectModel; using System.Globalization; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Threading; using Dalamud.Bindings.ImGui; -using Dalamud.Game.Command; using Dalamud.Interface; using Dalamud.Interface.Colors; -using Dalamud.Interface.ManagedFontAtlas; using Dalamud.Interface.Utility; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin; using Dalamud.Plugin.Services; -using LLib.ImGui; using Questionable.Controller; using Questionable.External; using Questionable.Validation; @@ -38,70 +32,9 @@ internal sealed class QuickAccessButtonsComponent private readonly NavmeshIpc _navmeshIpc; - [CompilerGenerated] - private EventHandler? m_Reload; - public bool IsReloading { get; set; } - public event EventHandler? Reload - { - [CompilerGenerated] - add - { - EventHandler eventHandler = this.m_Reload; - int num = -179073596; - while (true) - { - int num2 = num; - int num3 = -179073595; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -179073596; - break; - case 1: - { - EventHandler eventHandler2 = eventHandler; - EventHandler value2 = (EventHandler)_206D_206D_200F_200B_202C_202C_202C_206B_206E_202D_206A_202A_200E_206B_206B_206F_206A_206E_206E_206B_202D_206A_206D_206D_202C_202E_202C_200F_206A_206D_206D_206F_202B_200F_206B_202C_206C_202E_206C_200F_202E((Delegate)eventHandler2, (Delegate)value); - eventHandler = Interlocked.CompareExchange(ref this.m_Reload, value2, eventHandler2); - num = (((object)eventHandler != eventHandler2) ? (-179073596) : (-179073593)); - break; - } - case 2: - return; - } - } - } - [CompilerGenerated] - remove - { - EventHandler eventHandler = this.m_Reload; - int num = 1171519483; - while (true) - { - int num2 = num; - int num3 = 1171519482; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1171519483; - break; - case 2: - return; - case 1: - { - EventHandler eventHandler2 = eventHandler; - EventHandler value2 = (EventHandler)_206E_206E_202E_206F_206F_202A_202D_206C_200B_202A_200F_200E_200F_206C_202A_202E_202C_200B_206A_202E_202A_206F_206D_200F_202B_206E_206C_206F_202E_206D_202E_200B_206F_202D_200F_202C_206D_206D_206B_206C_202E((Delegate)eventHandler2, (Delegate)value); - eventHandler = Interlocked.CompareExchange(ref this.m_Reload, value2, eventHandler2); - num = (((object)eventHandler != eventHandler2) ? 1171519483 : 1171519480); - break; - } - } - } - } - } + public event EventHandler? Reload; public QuickAccessButtonsComponent(QuestRegistry questRegistry, QuestValidator questValidator, QuestValidationWindow questValidationWindow, ICommandManager commandManager, IDalamudPluginInterface pluginInterface, Configuration configuration, WigglyNavAvailability wigglyNavAvailability, NavmeshIpc navmeshIpc) { @@ -115,295 +48,84 @@ internal sealed class QuickAccessButtonsComponent _navmeshIpc = navmeshIpc; } - [MethodImpl(MethodImplOptions.NoInlining)] public void Draw() { - float x = _200B_202B_200C_200E_202D_202C_200E_200F_206D_206D_200F_202E_206C_200F_200B_200D_200F_200B_200B_200D_202A_206B_200D_202E_202A_202C_200E_206A_200F_200D_202B_206E_200E_206F_202C_206B_200C_202E_202E_206C_202E().X; - float x2 = _202B_200E_206D_202E_206D_206B_206E_202D_200D_200B_200E_200E_206E_200D_206C_202D_206E_200C_202D_202E_206E_206A_206C_200C_200C_200E_200C_202C_202B_202B_200E_206F_206C_200D_202D_200E_202E_200B_202E_202B_202E().ItemSpacing.X; + float x = ImGui.GetContentRegionAvail().X; + float x2 = ImGui.GetStyle().ItemSpacing.X; float width = (x - x2) / 2f; - ImRaii.DisabledDisposable disabledDisposable = _206E_200F_202B_206B_202C_206A_202C_206A_206E_200D_206B_202C_206F_202E_206A_206C_206D_200E_202D_200C_202A_206C_206C_206E_202E_202D_200C_202B_206B_200B_200B_202E_200F_200C_206F_206F_206C_206B_206C_202E(IsReloading); - int num; - try + using (ImRaii.Disabled(IsReloading)) { - num = (IsReloading ? 263407056 : 263407060); - while (true) + string text = (IsReloading ? "Reloading..." : "Reload Data"); + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.RedoAlt, text, width)) { - int num2 = num; - int num3 = 263407056; - int num4 = num2; - string text; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 2: - num = 263407060; - continue; - case 4: - text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(900520513); - break; - case 3: - { - EventHandler? eventHandler = this.Reload; - if (eventHandler == null) - { - goto end_IL_0057; - } - eventHandler(this, EventArgs.Empty); - num = 263407057; - continue; - } - case 0: - text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1097231565); - break; - case 1: - goto end_IL_0057; - } - string text2 = text; - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.RedoAlt, text2, width)) ? 263407057 : 263407059); - continue; - end_IL_0057: - break; + this.Reload?.Invoke(this, EventArgs.Empty); } } - finally - { - num = ((disabledDisposable == null) ? 336483817 : 336483816); - while (true) - { - int num5 = num; - int num3 = 336483817; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 2: - num = 336483816; - break; - case 0: - goto end_IL_0135; - case 1: - _206C_206F_206C_206E_202C_200E_202A_206B_206A_202E_206D_200E_200C_202A_200B_206B_200E_206A_206F_200E_202B_206E_200E_206A_206B_200B_206A_206D_202A_200F_206D_200F_206C_206D_206D_200E_206B_206F_200D_202A_202E((IDisposable)disabledDisposable); - num = 336483817; - break; - } - continue; - end_IL_0135: - break; - } - } - _206F_200C_202C_200F_200E_202D_202C_206C_200E_206A_200C_202D_206A_206F_206E_206E_202B_200F_200C_200D_202C_206E_202B_202B_200C_202D_200F_202C_200C_202B_202C_202E_202B_206B_202B_206F_200F_206F_206A_202A_202E(); + ImGui.SameLine(); Configuration.ENavigationProvider navigationProvider = _configuration.General.NavigationProvider; - num = ((navigationProvider != Configuration.ENavigationProvider.WigglyNav) ? 1435941283 : 1435941295); - bool flag = default(bool); - bool flag2 = default(bool); - int buildProgress = default(int); - string text3 = default(string); - int num9; - bool flag3 = default(bool); - bool flag4 = default(bool); - while (true) + bool flag = navigationProvider == Configuration.ENavigationProvider.WigglyNav && _wigglyNavAvailability.IsCompatible; + bool flag2 = navigationProvider == Configuration.ENavigationProvider.WigglyNavShim; + bool flag3 = flag || flag2; + bool flag4 = flag || (flag2 ? _navmeshIpc.IsNavmeshAvailable : _commandManager.Commands.ContainsKey("/vnav")); + string text2 = "Rebuild Navmesh"; + if (flag4 && !_navmeshIpc.IsReady) { - int num8 = num; - int num3 = 1435941285; - int num4 = num8; - int num11; - int num10; - bool num12; - switch ((num4 | num3) - (num4 & num3)) + int buildProgress = _navmeshIpc.GetBuildProgress(); + if (buildProgress < 100) { - default: - continue; - case 7: - num = 1435941295; - continue; - case 6: - num11 = 0; - goto IL_0219; - case 10: - num11 = (_wigglyNavAvailability.IsCompatible ? 1 : 0); - goto IL_0219; - case 8: - num = (_navmeshIpc.IsReady ? 1435941284 : 1435941280); - continue; - case 1: - num = ((!flag) ? 1435941285 : 1435941294); - continue; - case 4: - num10 = 1; - goto IL_02b6; - case 9: - num = (flag2 ? 1435941287 : 1435941289); - continue; - case 3: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(15, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-757541673)); - defaultInterpolatedStringHandler.AppendFormatted(buildProgress); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(767159727)); - text3 = defaultInterpolatedStringHandler.ToStringAndClear(); - num = 1435941284; - continue; + text2 = $"Rebuilding... {buildProgress}%"; } - case 11: - num9 = ((!_206B_206A_202D_200F_200E_200C_200D_202E_202E_206A_206F_202D_206C_200D_206E_206F_206A_200B_200E_206B_202D_202C_202A_206E_200D_200D_206B_206D_202A_206C_206B_202C_202D_202A_200F_200D_202E_206C_200C_200F_202E(ImGuiKey.ModCtrl)) ? 1 : 0); - break; - case 12: - num10 = (_202A_200F_202C_206D_206F_206A_200C_200D_206B_206C_202E_206F_200D_200B_206B_200C_200C_200F_200B_206E_200D_202A_206E_200E_200E_202A_206B_206E_206B_206E_202C_200C_206C_202D_202C_206E_206E_202A_202E_202E_202E(_commandManager).ContainsKey(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(507098409)) ? 1 : 0); - goto IL_02b6; - case 5: - buildProgress = _navmeshIpc.GetBuildProgress(); - num = ((buildProgress >= 100) ? 1435941284 : 1435941286); - continue; - case 2: - num10 = (_navmeshIpc.IsNavmeshAvailable ? 1 : 0); - goto IL_02b6; - case 0: - { - num9 = 1; - break; - } - IL_02b6: - flag = (byte)num10 != 0; - text3 = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1492851950); - num = ((!flag) ? 1435941284 : 1435941293); - continue; - IL_0219: - flag3 = (byte)num11 != 0; - flag2 = navigationProvider == Configuration.ENavigationProvider.WigglyNavShim; - num12 = flag3; - num3 = (flag2 ? 1 : 0); - num4 = (num12 ? 1 : 0); - flag4 = (byte)(num4 + num3 - (num4 & num3)) != 0; - num = (flag3 ? 1435941281 : 1435941292); - continue; - } - break; } - disabledDisposable = _206E_200F_202B_206B_202C_206A_202C_206A_206E_200D_206B_202C_206F_202E_206A_206C_206D_200E_202D_200C_202A_206C_206C_206E_202E_202D_200C_202B_206B_200B_200B_202E_200F_200C_206F_206F_206C_206B_206C_202E((byte)num9 != 0); - try + using (ImRaii.Disabled(!flag4 || !ImGui.IsKeyDown(ImGuiKey.ModCtrl))) { - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Gem, text3, width)) ? 1684640401 : 1684640403); - while (true) + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Gem, text2, width)) { - int num13 = num; - int num3 = 1684640402; - int num4 = num13; - switch ((num4 | num3) - (num4 & num3)) + if (flag3) { - case 0: - num = 1684640403; - break; - case 2: - _202E_202A_206A_206C_206B_206D_200F_206E_206F_200E_206E_206E_202A_202D_202A_200F_202E_206A_202C_202B_206C_206C_200B_200F_202B_206D_200D_200C_200B_206E_200B_206E_200D_200D_200E_206B_200E_206D_200C_202C_202E(_commandManager, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-759082513)); - num = 1684640401; - break; - case 1: - num = ((!flag4) ? 1684640400 : 1684640406); - break; - case 4: _navmeshIpc.Rebuild(); - goto end_IL_0411; - case 3: - goto end_IL_0411; } - continue; - end_IL_0411: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? (-78943588) : (-78943585)); - while (true) - { - int num14 = num; - int num3 = -78943586; - int num4 = num14; - switch ((num4 | num3) - (num4 & num3)) + else { - case 0: - num = -78943585; - break; - case 1: - _206C_206F_206C_206E_202C_200E_202A_206B_206A_202E_206D_200E_200C_202A_200B_206B_200E_206A_206F_200E_202B_206E_200E_206A_206B_200B_206A_206D_202A_200F_206D_200F_206C_206D_206D_200E_206B_206F_200D_202A_202E((IDisposable)disabledDisposable); - num = -78943588; - break; - case 2: - goto end_IL_04d2; + _commandManager.ProcessCommand("/vnav rebuild"); } - continue; - end_IL_04d2: - break; } } - num = ((!_202E_206E_200C_202C_206E_202D_200F_206D_206B_206A_202D_202B_202C_202D_206D_202A_200B_202B_206A_206C_206F_206D_200F_206D_206B_206E_200E_206B_206F_200E_206A_202C_202B_200C_202B_206E_206C_200D_200C_202B_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? 1890619570 : 1890619581); - while (true) + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) { - int num15 = num; - int num3 = 1890619582; - int num4 = num15; - int num16 = num4 + num3; - int num17 = num4 & num3; - switch (num16 - (num17 + num17)) + if (!flag4) { - case 5: - DrawValidationIssuesButton(); - num = 1890619572; - break; - case 12: - num = ((_questValidator.IssueCount <= 0) ? 1890619572 : 1890619579); - break; - case 3: - num = (flag ? 1890619573 : 1890619583); - break; - case 13: - _200C_200E_202E_206C_206E_202B_202A_206F_206E_206C_200D_206A_200D_206C_200B_200B_206B_202D_202C_200C_200B_206B_200C_206A_202C_202E_200F_202B_206F_206C_200F_206A_200D_202A_206F_200F_202E_206D_206A_206C_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(272437998)); - num = 1890619570; - break; - case 4: - _200C_200E_202E_206C_206E_202B_202A_206F_206E_206C_200D_206A_200D_206C_200B_200B_206B_202D_202C_200C_200B_206B_200C_206A_202C_202E_200F_202B_206F_206C_200F_206A_200D_202A_206F_200F_202E_206D_206A_206C_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1054666576)); - num = 1890619570; - break; - case 0: - num = ((!flag3) ? 1890619571 : 1890619578); - break; - case 2: - _200C_200E_202E_206C_206E_202B_202A_206F_206E_206C_200D_206A_200D_206C_200B_200B_206B_202D_202C_200C_200B_206B_200C_206A_202C_202E_200F_202B_206F_206C_200F_206A_200D_202A_206F_200F_202E_206D_206A_206C_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-640328064)); - num = 1890619570; - break; - case 8: - _200C_200E_202E_206C_206E_202B_202A_206F_206E_206C_200D_206A_200D_206C_200B_200B_206B_202D_202C_200C_200B_206B_200C_206A_202C_202E_200F_202B_206F_206C_200F_206A_200D_202A_206F_200F_202E_206D_206A_206C_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-678584146)); - num = 1890619570; - break; - case 1: - num = ((!flag4) ? 1890619576 : 1890619568); - break; - case 7: - num = 1890619581; - break; - case 9: - _200C_200E_202E_206C_206E_202B_202A_206F_206E_206C_200D_206A_200D_206C_200B_200B_206B_202D_202C_200C_200B_206B_200C_206A_202C_202E_200F_202B_206F_206C_200F_206A_200D_202A_206F_200F_202E_206D_206A_206C_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-476456851)); - num = 1890619570; - break; - case 10: - return; - case 11: - num = ((!flag2) ? 1890619582 : 1890619580); - break; - case 14: - _200C_200E_202E_206C_206E_202B_202A_206F_206E_206C_200D_206A_200D_206C_200B_200B_206B_202D_202C_200C_200B_206B_200C_206A_202C_202E_200F_202B_206F_206C_200F_206A_200D_202A_206F_200F_202E_206D_206A_206C_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1942219588)); - num = 1890619570; - break; - case 6: - num = ((navigationProvider != Configuration.ENavigationProvider.WigglyNav) ? 1890619574 : 1890619575); - break; + if (flag3) + { + ImGui.SetTooltip("WigglyNav is not available."); + } + else if (navigationProvider == Configuration.ENavigationProvider.WigglyNav) + { + ImGui.SetTooltip("WigglyNav is unavailable and vnavmesh, its fallback, is not installed."); + } + else + { + ImGui.SetTooltip("vnavmesh is not available.\nPlease install it first."); + } } + else if (flag2) + { + ImGui.SetTooltip("Hold CTRL to enable this button.\nRebuilding the WigglyNav navmesh (shim surface) will take some time."); + } + else if (flag) + { + ImGui.SetTooltip("Hold CTRL to enable this button.\nRebuilding the WigglyNav navmesh will take some time."); + } + else + { + ImGui.SetTooltip("Hold CTRL to enable this button.\nRebuilding the navmesh will take some time."); + } + } + if (_questValidator.IssueCount > 0) + { + DrawValidationIssuesButton(); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawValidationIssuesButton() { int errorCount = _questValidator.ErrorCount; @@ -411,450 +133,79 @@ internal sealed class QuickAccessButtonsComponent int item = _questValidator.IssueCount - errorCount - warningCount; (int, Vector4, FontAwesomeIcon)[] array = new(int, Vector4, FontAwesomeIcon)[3] { - (errorCount, _206E_206D_200F_200E_206D_206E_206A_206D_200B_202C_200B_206A_206E_202B_206A_200F_202D_200C_202A_206E_202E_206F_202D_202E_202D_202B_206D_202E_206B_200B_200F_206B_200F_206C_200F_206F_200F_206B_206F_206A_202E(), FontAwesomeIcon.ExclamationTriangle), - (warningCount, _200C_200B_206D_200C_202A_206A_200B_206D_206A_202A_206C_200F_202E_200B_200B_202B_206D_202C_206E_202C_200B_206A_206C_200E_202E_206A_206A_202C_202B_200F_202E_202D_200D_202A_206C_202C_206B_202D_206F_200C_202E(), FontAwesomeIcon.ExclamationCircle), - (item, _200D_200E_206B_200F_202E_202A_206B_202C_202C_200B_200C_206A_202A_206B_200F_206F_200E_200F_206A_206F_200B_202C_200C_200C_200B_202C_206E_200C_206E_202C_200D_200C_200B_200B_202D_200E_202E_200E_202E_202E(), FontAwesomeIcon.InfoCircle) + (errorCount, ImGuiColors.DalamudRed, FontAwesomeIcon.ExclamationTriangle), + (warningCount, ImGuiColors.DalamudYellow, FontAwesomeIcon.ExclamationCircle), + (item, ImGuiColors.ParsedBlue, FontAwesomeIcon.InfoCircle) }; int num = 0; (int, Vector4, FontAwesomeIcon)[] array2 = array; - int num2 = 0; - int num3 = -1437565178; - float num20 = default(float); - int num27 = default(int); - while (true) + for (int i = 0; i < array2.Length; i++) { - int num4 = num3; - int num5 = -1437565181; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) + if (array2[i].Item1 > 0) { - case 0: - return; - case 3: - { - int num33 = num; - num5 = 1; - num6 = num33; - int num34 = num6 ^ num5; - int num35 = num6 & num5; - num = num34 + (num35 + num35); - num3 = -1437565177; - break; + num++; } - case 4: + } + if (num == 0) + { + return; + } + using (ImRaii.PushId("validationissues")) + { + float num2 = 3f * ImGuiHelpers.GlobalScale; + Vector2[] array3 = new Vector2[array.Length]; + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) { - int num36 = num2; - num5 = 1; - num6 = num36; - num2 = (num6 | num5) + (num6 & num5); - num3 = -1437565178; - break; - } - case 2: - num3 = ((num != 0) ? (-1437565180) : (-1437565181)); - break; - case 5: - num3 = ((num2 < array2.Length) ? (-1437565182) : (-1437565183)); - break; - case 1: - num3 = ((array2[num2].Item1 <= 0) ? (-1437565177) : (-1437565184)); - break; - case 6: - num3 = -1437565178; - break; - case 7: - { - ImRaii.IdDisposable idDisposable = _200D_202E_202D_206A_206F_206F_206B_206D_206B_206E_200E_202A_200E_206A_206F_200F_202A_202D_200D_202E_200F_206B_200B_206E_206B_200C_202C_206A_200B_202D_202E_202E_200D_200F_200C_206A_200D_202E_206A_202C_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-796253766), true); - try + for (int j = 0; j < array.Length; j++) { - float num9 = 3f * _202E_200E_206D_206C_206D_200F_206E_206F_202E_206D_206F_206F_200D_200E_200E_200D_202E_206A_206A_200B_206E_202E_206A_200E_202D_206D_202B_202A_206F_202D_202C_202D_200B_206F_200C_206B_200B_202D_200E_202D_202E(); - Vector2[] array3 = new Vector2[array.Length]; - IDisposable disposable = _200C_202C_200D_202D_200F_202A_206B_200C_202E_206E_202A_202D_200B_200F_206F_202A_206E_202E_200F_202A_200B_200C_202B_206C_202D_200B_200E_200C_206B_206F_200F_200C_202A_206C_200F_200E_206C_202D_202D_202B_202E(_206C_206B_202A_200F_206A_202C_200C_206F_206D_206C_200E_206A_206D_200E_206C_206B_202E_200D_200F_206E_206A_206A_206C_202A_200C_200E_206C_202E_202A_202C_200E_200D_200D_200D_202C_200E_206B_206A_202D_206C_202E(_202E_202C_202B_200F_202A_202B_206D_206A_206F_202B_206E_202C_202E_206A_200C_202E_202C_200F_200F_206C_200C_200B_206F_206D_200B_206B_200E_206A_206B_200D_202E_206D_202D_200E_200E_200E_206C_206C_200D_202A_202E(_pluginInterface))); - try + if (array[j].Item1 > 0) { - int num10 = 0; - num3 = -746592479; - while (true) - { - int num11 = num3; - num5 = -746592476; - num6 = num11; - int num12 = num6 + num5; - int num13 = num6 & num5; - switch (num12 - (num13 + num13)) - { - case 4: - num3 = -746592479; - break; - case 3: - num3 = ((array[num10].Item1 <= 0) ? (-746592475) : (-746592476)); - break; - case 0: - array3[num10] = _200C_200F_200F_202D_202A_200E_202C_206C_202A_200C_206D_200E_200D_206B_206B_202A_206E_202C_200C_202D_200C_202C_206E_206A_200C_200C_200E_202E_206E_200D_202C_206F_200B_206F_200F_202A_206D_206B_206F_202E_202E((ImU8String)_200F_206D_200E_206F_200F_200D_206E_200B_202C_206A_200D_202E_200D_206E_202E_200B_202D_206A_202C_202B_206A_206B_202E_202C_202B_202A_200F_206D_206F_206B_206A_202B_206D_200D_206F_200F_202D_202A_206C_200C_202E(array[num10].Item3), false, -1f); - num3 = -746592475; - break; - case 5: - num3 = ((num10 < array.Length) ? (-746592473) : (-746592474)); - break; - case 1: - { - int num14 = num10; - num5 = 1; - num6 = num14; - num10 = (num6 | num5) + (num6 & num5); - num3 = -746592479; - break; - } - case 2: - goto end_IL_01dc; - } - continue; - end_IL_01dc: - break; - } - } - finally - { - num3 = ((disposable == null) ? 334157648 : 334157649); - while (true) - { - int num15 = num3; - num5 = 334157648; - num6 = num15; - int num16 = num6 + num5; - int num17 = num6 & num5; - switch (num16 - (num17 + num17)) - { - case 2: - num3 = 334157649; - break; - case 0: - goto end_IL_02ea; - case 1: - _206C_206F_206C_206E_202C_200E_202A_206B_206A_202E_206D_200E_200C_202A_200B_206B_200E_206A_206F_200E_202B_206E_200E_206A_206B_200B_206A_206D_202A_200F_206D_200F_206C_206D_206D_200E_206B_206F_200D_202A_202E(disposable); - num3 = 334157648; - break; - } - continue; - end_IL_02ea: - break; - } - } - string[] array4 = new string[array.Length]; - Vector2[] array5 = new Vector2[array.Length]; - int num18 = 0; - num3 = -1717059511; - while (true) - { - int num19 = num3; - num5 = -1717059519; - num6 = num19; - switch ((num6 | num5) - (num6 & num5)) - { - case 5: - num3 = -1717059511; - break; - case 0: - { - num20 += array3[num27].X + array5[num27].X; - int num29 = num27; - num5 = 1; - num6 = num29; - num27 = (num6 | num5) + (num6 & num5); - num3 = -1717059517; - break; - } - case 7: - array4[num18] = array[num18].Item1.ToString(_200D_202B_202B_202B_206F_202C_206B_202A_206A_206F_202D_200D_206C_206F_206D_202A_202E_206B_206A_202D_206F_200E_202B_202A_206F_200F_206C_206B_206E_200C_200C_202D_200D_206B_200D_206B_202B_206D_206E_200E_202E()); - array5[num18] = _200C_200F_200F_202D_202A_200E_202C_206C_202A_200C_206D_200E_200D_206B_206B_202A_206E_202C_200C_202D_200C_202C_206E_206A_200C_200C_200E_202E_206E_200D_202C_206F_200B_206F_200F_202A_206D_206B_206F_202E_202E((ImU8String)array4[num18], false, -1f); - num3 = -1717059520; - break; - case 2: - num3 = ((num27 < array.Length) ? (-1717059519) : (-1717059513)); - break; - case 4: - num20 = 0f; - num27 = 0; - num3 = -1717059517; - break; - case 3: - num3 = ((array[num18].Item1 <= 0) ? (-1717059520) : (-1717059514)); - break; - case 8: - num3 = ((num18 < array.Length) ? (-1717059518) : (-1717059515)); - break; - case 1: - { - int num28 = num18; - num5 = 1; - num6 = num28; - num18 = (num6 | num5) + (num6 & num5); - num3 = -1717059511; - break; - } - case 6: - { - float x = num20 + _202B_200E_206D_202E_206D_206B_206E_202D_200D_200B_200E_200E_206E_200D_206C_202D_206E_200C_202D_202E_206E_206A_206C_200C_200C_200E_200C_202C_202B_202B_200E_206F_206C_200D_202D_200E_202E_200B_202E_202B_202E().FramePadding.X * 2f + num9 * 2f * (float)num; - float y = _202E_206D_200B_200D_202D_206D_202E_202B_202B_200F_206B_200C_202C_202E_202D_206C_206C_202C_202B_200C_202E_206E_202E_202E_206B_206C_206C_202D_206E_206E_206F_202E_200D_200E_206A_202C_206C_202B_206B_200F_202E(); - Vector2 vector = _206C_202B_202B_206A_200F_200C_206F_202E_200B_206B_202A_206A_206D_202E_206A_206D_206E_202A_200F_202E_202E_200C_206E_206D_202E_202C_202B_206E_206E_202B_206A_206D_202E_202A_202A_202A_202D_200E_206F_200C_202E(); - bool flag = _200C_206D_200C_206F_206E_202D_202C_200E_202B_206F_202C_206B_202E_206C_206A_200B_200E_200F_206E_202D_202E_206F_200B_206B_200C_200D_200C_206E_206C_206A_202D_200D_206C_202A_200E_206B_206E_206E_200F_206B_202E((ImU8String)string.Empty, new Vector2(x, y)); - ImDrawListPtr imDrawListPtr = _200D_206D_206E_202D_200D_200F_202A_202D_200D_206C_206E_206D_206F_200B_202A_202B_206B_202B_206E_202B_200F_200D_202A_206C_206D_202E_200F_202C_202A_206B_200F_200D_202E_206F_202A_200D_200B_200C_202C_206F_202E(); - Vector2 vector2 = new Vector2(vector.X + _202B_200E_206D_202E_206D_206B_206E_202D_200D_200B_200E_200E_206E_200D_206C_202D_206E_200C_202D_202E_206E_206A_206C_200C_200C_200E_200C_202C_202B_202B_200E_206F_206C_200D_202D_200E_202E_200B_202E_202B_202E().FramePadding.X, vector.Y + _202B_200E_206D_202E_206D_206B_206E_202D_200D_200B_200E_200E_206E_200D_206C_202D_206E_200C_202D_202E_206E_206A_206C_200C_200C_200E_200C_202C_202B_202B_200E_206F_206C_200D_202D_200E_202E_200B_202E_202B_202E().FramePadding.Y); - for (int num21 = 0; num21 < array.Length; num21 = (num6 | num5) + (num6 & num5)) - { - if (array[num21].Item1 != 0) - { - IDisposable disposable2 = _200C_202C_200D_202D_200F_202A_206B_200C_202E_206E_202A_202D_200B_200F_206F_202A_206E_202E_200F_202A_200B_200C_202B_206C_202D_200B_200E_200C_206B_206F_200F_200C_202A_206C_200F_200E_206C_202D_202D_202B_202E(_206C_206B_202A_200F_206A_202C_200C_206F_206D_206C_200E_206A_206D_200E_206C_206B_202E_200D_200F_206E_206A_206A_206C_202A_200C_200E_206C_202E_202A_202C_200E_200D_200D_200D_202C_200E_206B_206A_202D_206C_202E(_202E_202C_202B_200F_202A_202B_206D_206A_206F_202B_206E_202C_202E_206A_200C_202E_202C_200F_200F_206C_200C_200B_206F_206D_200B_206B_200E_206A_206B_200D_202E_206D_202D_200E_200E_200E_206C_206C_200D_202A_202E(_pluginInterface))); - try - { - imDrawListPtr.AddText(vector2, _206C_202C_202D_200D_200D_202E_200D_206D_202B_200E_200F_202E_202B_200E_200C_200B_202C_206A_202D_206F_200B_202B_206C_206D_202A_200D_202C_206B_206B_202B_202B_206A_206E_202A_200D_200E_200D_206B_206F_206F_202E(array[num21].Item2), _200F_206D_200E_206F_200F_200D_206E_200B_202C_206A_200D_202E_200D_206E_202E_200B_202D_206A_202C_202B_206A_206B_202E_202C_202B_202A_200F_206D_206F_206B_206A_202B_206D_200D_206F_200F_202D_202A_206C_200C_202E(array[num21].Item3)); - } - finally - { - num3 = ((disposable2 == null) ? (-226333035) : (-226333036)); - while (true) - { - int num22 = num3; - num5 = -226333035; - num6 = num22; - int num23 = num6 + num5; - int num24 = num6 & num5; - switch (num23 - (num24 + num24)) - { - case 2: - num3 = -226333036; - break; - case 1: - _206C_206F_206C_206E_202C_200E_202A_206B_206A_202E_206D_200E_200C_202A_200B_206B_200E_206A_206F_200E_202B_206E_200E_206A_206B_200B_206A_206D_202A_200F_206D_200F_206C_206D_206D_200E_206B_206F_200D_202A_202E(disposable2); - num3 = -226333035; - break; - case 0: - goto end_IL_05f6; - } - continue; - end_IL_05f6: - break; - } - } - Vector2 vector3 = vector2; - vector3.X = vector2.X + array3[num21].X + num9; - vector2 = vector3; - imDrawListPtr.AddText(vector2, _200C_202B_202A_206B_202E_202D_200F_206D_200E_200E_200D_206B_200C_202E_200C_206D_202D_206F_202A_202A_202B_206B_202A_206C_206D_206F_200D_202C_206F_202D_202E_200C_202B_206A_206F_206B_206A_200F_200F_200C_202E(ImGuiCol.Text), array4[num21]); - vector3 = vector2; - vector3.X = vector2.X + array5[num21].X + 2f * num9; - vector2 = vector3; - } - int num25 = num21; - num5 = 1; - num6 = num25; - } - num3 = 734288855; - while (true) - { - int num26 = num3; - num5 = 734288854; - num6 = num26; - switch ((num6 | num5) - (num6 & num5)) - { - case 0: - num3 = 734288855; - break; - case 2: - _206C_206A_206F_206D_206E_206C_200C_200E_202D_200C_202A_202A_200F_206D_200C_200E_200E_200D_206E_206E_202C_206C_202D_200C_200B_200F_206A_206B_200B_206A_202B_202A_206B_200B_202A_206A_200D_200E_202D_200F_202E((LWindow)_questValidationWindow, true); - num3 = 734288853; - break; - case 1: - num3 = ((!flag) ? 734288853 : 734288852); - break; - case 3: - return; - } - } - } - } - } - } - finally - { - num3 = ((idDisposable == null) ? 902881747 : 902881746); - while (true) - { - int num30 = num3; - num5 = 902881747; - num6 = num30; - int num31 = num6 + num5; - int num32 = num6 & num5; - switch (num31 - (num32 + num32)) - { - case 2: - num3 = 902881746; - break; - case 0: - goto end_IL_0774; - case 1: - _206C_206F_206C_206E_202C_200E_202A_206B_206A_202E_206D_200E_200C_202A_200B_206B_200E_206A_206F_200E_202B_206E_200E_206A_206B_200B_206A_206D_202A_200F_206D_200F_206C_206D_206D_200E_206B_206F_200D_202A_202E((IDisposable)idDisposable); - num3 = 902881747; - break; - } - continue; - end_IL_0774: - break; + array3[j] = ImGui.CalcTextSize(array[j].Item3.ToIconString()); } } } + string[] array4 = new string[array.Length]; + Vector2[] array5 = new Vector2[array.Length]; + for (int k = 0; k < array.Length; k++) + { + if (array[k].Item1 > 0) + { + array4[k] = array[k].Item1.ToString(CultureInfo.InvariantCulture); + array5[k] = ImGui.CalcTextSize(array4[k]); + } + } + float num3 = 0f; + for (int l = 0; l < array.Length; l++) + { + num3 += array3[l].X + array5[l].X; + } + float x = num3 + ImGui.GetStyle().FramePadding.X * 2f + num2 * 2f * (float)num; + float frameHeight = ImGui.GetFrameHeight(); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + bool flag = ImGui.Button(string.Empty, new Vector2(x, frameHeight)); + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 vector = new Vector2(cursorScreenPos.X + ImGui.GetStyle().FramePadding.X, cursorScreenPos.Y + ImGui.GetStyle().FramePadding.Y); + for (int m = 0; m < array.Length; m++) + { + if (array[m].Item1 != 0) + { + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) + { + windowDrawList.AddText(vector, ImGui.GetColorU32(array[m].Item2), array[m].Item3.ToIconString()); + } + Vector2 vector2 = vector; + vector2.X = vector.X + array3[m].X + num2; + vector = vector2; + windowDrawList.AddText(vector, ImGui.GetColorU32(ImGuiCol.Text), array4[m]); + vector2 = vector; + vector2.X = vector.X + array5[m].X + 2f * num2; + vector = vector2; + } + } + if (flag) + { + _questValidationWindow.IsOpenAndUncollapsed = true; } } } - - static Delegate _206D_206D_200F_200B_202C_202C_202C_206B_206E_202D_206A_202A_200E_206B_206B_206F_206A_206E_206E_206B_202D_206A_206D_206D_202C_202E_202C_200F_206A_206D_206D_206F_202B_200F_206B_202C_206C_202E_206C_200F_202E(Delegate P_0, Delegate P_1) - { - return Delegate.Combine(P_0, P_1); - } - - static Delegate _206E_206E_202E_206F_206F_202A_202D_206C_200B_202A_200F_200E_200F_206C_202A_202E_202C_200B_206A_202E_202A_206F_206D_200F_202B_206E_206C_206F_202E_206D_202E_200B_206F_202D_200F_202C_206D_206D_206B_206C_202E(Delegate P_0, Delegate P_1) - { - return Delegate.Remove(P_0, P_1); - } - - static Vector2 _200B_202B_200C_200E_202D_202C_200E_200F_206D_206D_200F_202E_206C_200F_200B_200D_200F_200B_200B_200D_202A_206B_200D_202E_202A_202C_200E_206A_200F_200D_202B_206E_200E_206F_202C_206B_200C_202E_202E_206C_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static ImGuiStylePtr _202B_200E_206D_202E_206D_206B_206E_202D_200D_200B_200E_200E_206E_200D_206C_202D_206E_200C_202D_202E_206E_206A_206C_200C_200C_200E_200C_202C_202B_202B_200E_206F_206C_200D_202D_200E_202E_200B_202E_202B_202E() - { - return ImGui.GetStyle(); - } - - static ImRaii.DisabledDisposable _206E_200F_202B_206B_202C_206A_202C_206A_206E_200D_206B_202C_206F_202E_206A_206C_206D_200E_202D_200C_202A_206C_206C_206E_202E_202D_200C_202B_206B_200B_200B_202E_200F_200C_206F_206F_206C_206B_206C_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static void _206C_206F_206C_206E_202C_200E_202A_206B_206A_202E_206D_200E_200C_202A_200B_206B_200E_206A_206F_200E_202B_206E_200E_206A_206B_200B_206A_206D_202A_200F_206D_200F_206C_206D_206D_200E_206B_206F_200D_202A_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _206F_200C_202C_200F_200E_202D_202C_206C_200E_206A_200C_202D_206A_206F_206E_206E_202B_200F_200C_200D_202C_206E_202B_202B_200C_202D_200F_202C_200C_202B_202C_202E_202B_206B_202B_206F_200F_206F_206A_202A_202E() - { - ImGui.SameLine(); - } - - static ReadOnlyDictionary<string, IReadOnlyCommandInfo> _202A_200F_202C_206D_206F_206A_200C_200D_206B_206C_202E_206F_200D_200B_206B_200C_200C_200F_200B_206E_200D_202A_206E_200E_200E_202A_206B_206E_206B_206E_202C_200C_206C_202D_202C_206E_206E_202A_202E_202E_202E(ICommandManager P_0) - { - return P_0.Commands; - } - - static bool _206B_206A_202D_200F_200E_200C_200D_202E_202E_206A_206F_202D_206C_200D_206E_206F_206A_200B_200E_206B_202D_202C_202A_206E_200D_200D_206B_206D_202A_206C_206B_202C_202D_202A_200F_200D_202E_206C_200C_200F_202E(ImGuiKey P_0) - { - return ImGui.IsKeyDown(P_0); - } - - static bool _202E_202A_206A_206C_206B_206D_200F_206E_206F_200E_206E_206E_202A_202D_202A_200F_202E_206A_202C_202B_206C_206C_200B_200F_202B_206D_200D_200C_200B_206E_200B_206E_200D_200D_200E_206B_200E_206D_200C_202C_202E(ICommandManager P_0, string P_1) - { - return P_0.ProcessCommand(P_1); - } - - static bool _202E_206E_200C_202C_206E_202D_200F_206D_206B_206A_202D_202B_202C_202D_206D_202A_200B_202B_206A_206C_206F_206D_200F_206D_206B_206E_200E_206B_206F_200E_206A_202C_202B_200C_202B_206E_206C_200D_200C_202B_202E(ImGuiHoveredFlags P_0) - { - return ImGui.IsItemHovered(P_0); - } - - static void _200C_200E_202E_206C_206E_202B_202A_206F_206E_206C_200D_206A_200D_206C_200B_200B_206B_202D_202C_200C_200B_206B_200C_206A_202C_202E_200F_202B_206F_206C_200F_206A_200D_202A_206F_200F_202E_206D_206A_206C_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } - - static Vector4 _206E_206D_200F_200E_206D_206E_206A_206D_200B_202C_200B_206A_206E_202B_206A_200F_202D_200C_202A_206E_202E_206F_202D_202E_202D_202B_206D_202E_206B_200B_200F_206B_200F_206C_200F_206F_200F_206B_206F_206A_202E() - { - return ImGuiColors.DalamudRed; - } - - static Vector4 _200C_200B_206D_200C_202A_206A_200B_206D_206A_202A_206C_200F_202E_200B_200B_202B_206D_202C_206E_202C_200B_206A_206C_200E_202E_206A_206A_202C_202B_200F_202E_202D_200D_202A_206C_202C_206B_202D_206F_200C_202E() - { - return ImGuiColors.DalamudYellow; - } - - static Vector4 _200D_200E_206B_200F_202E_202A_206B_202C_202C_200B_200C_206A_202A_206B_200F_206F_200E_200F_206A_206F_200B_202C_200C_200C_200B_202C_206E_200C_206E_202C_200D_200C_200B_200B_202D_200E_202E_200E_202E_202E() - { - return ImGuiColors.ParsedBlue; - } - - static ImRaii.IdDisposable _200D_202E_202D_206A_206F_206F_206B_206D_206B_206E_200E_202A_200E_206A_206F_200F_202A_202D_200D_202E_200F_206B_200B_206E_206B_200C_202C_206A_200B_202D_202E_202E_200D_200F_200C_206A_200D_202E_206A_202C_202E(ImU8String P_0, bool P_1) - { - return ImRaii.PushId(P_0, P_1); - } - - static float _202E_200E_206D_206C_206D_200F_206E_206F_202E_206D_206F_206F_200D_200E_200E_200D_202E_206A_206A_200B_206E_202E_206A_200E_202D_206D_202B_202A_206F_202D_202C_202D_200B_206F_200C_206B_200B_202D_200E_202D_202E() - { - return ImGuiHelpers.GlobalScale; - } - - static IUiBuilder _202E_202C_202B_200F_202A_202B_206D_206A_206F_202B_206E_202C_202E_206A_200C_202E_202C_200F_200F_206C_200C_200B_206F_206D_200B_206B_200E_206A_206B_200D_202E_206D_202D_200E_200E_200E_206C_206C_200D_202A_202E(IDalamudPluginInterface P_0) - { - return P_0.UiBuilder; - } - - static IFontHandle _206C_206B_202A_200F_206A_202C_200C_206F_206D_206C_200E_206A_206D_200E_206C_206B_202E_200D_200F_206E_206A_206A_206C_202A_200C_200E_206C_202E_202A_202C_200E_200D_200D_200D_202C_200E_206B_206A_202D_206C_202E(IUiBuilder P_0) - { - return P_0.IconFontFixedWidthHandle; - } - - static IDisposable _200C_202C_200D_202D_200F_202A_206B_200C_202E_206E_202A_202D_200B_200F_206F_202A_206E_202E_200F_202A_200B_200C_202B_206C_202D_200B_200E_200C_206B_206F_200F_200C_202A_206C_200F_200E_206C_202D_202D_202B_202E(IFontHandle P_0) - { - return P_0.Push(); - } - - static string _200F_206D_200E_206F_200F_200D_206E_200B_202C_206A_200D_202E_200D_206E_202E_200B_202D_206A_202C_202B_206A_206B_202E_202C_202B_202A_200F_206D_206F_206B_206A_202B_206D_200D_206F_200F_202D_202A_206C_200C_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static Vector2 _200C_200F_200F_202D_202A_200E_202C_206C_202A_200C_206D_200E_200D_206B_206B_202A_206E_202C_200C_202D_200C_202C_206E_206A_200C_200C_200E_202E_206E_200D_202C_206F_200B_206F_200F_202A_206D_206B_206F_202E_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static CultureInfo _200D_202B_202B_202B_206F_202C_206B_202A_206A_206F_202D_200D_206C_206F_206D_202A_202E_206B_206A_202D_206F_200E_202B_202A_206F_200F_206C_206B_206E_200C_200C_202D_200D_206B_200D_206B_202B_206D_206E_200E_202E() - { - return CultureInfo.InvariantCulture; - } - - static float _202E_206D_200B_200D_202D_206D_202E_202B_202B_200F_206B_200C_202C_202E_202D_206C_206C_202C_202B_200C_202E_206E_202E_202E_206B_206C_206C_202D_206E_206E_206F_202E_200D_200E_206A_202C_206C_202B_206B_200F_202E() - { - return ImGui.GetFrameHeight(); - } - - static Vector2 _206C_202B_202B_206A_200F_200C_206F_202E_200B_206B_202A_206A_206D_202E_206A_206D_206E_202A_200F_202E_202E_200C_206E_206D_202E_202C_202B_206E_206E_202B_206A_206D_202E_202A_202A_202A_202D_200E_206F_200C_202E() - { - return ImGui.GetCursorScreenPos(); - } - - static bool _200C_206D_200C_206F_206E_202D_202C_200E_202B_206F_202C_206B_202E_206C_206A_200B_200E_200F_206E_202D_202E_206F_200B_206B_200C_200D_200C_206E_206C_206A_202D_200D_206C_202A_200E_206B_206E_206E_200F_206B_202E(ImU8String P_0, Vector2 P_1) - { - return ImGui.Button(P_0, P_1); - } - - static ImDrawListPtr _200D_206D_206E_202D_200D_200F_202A_202D_200D_206C_206E_206D_206F_200B_202A_202B_206B_202B_206E_202B_200F_200D_202A_206C_206D_202E_200F_202C_202A_206B_200F_200D_202E_206F_202A_200D_200B_200C_202C_206F_202E() - { - return ImGui.GetWindowDrawList(); - } - - static uint _206C_202C_202D_200D_200D_202E_200D_206D_202B_200E_200F_202E_202B_200E_200C_200B_202C_206A_202D_206F_200B_202B_206C_206D_202A_200D_202C_206B_206B_202B_202B_206A_206E_202A_200D_200E_200D_206B_206F_206F_202E(Vector4 P_0) - { - return ImGui.GetColorU32(P_0); - } - - static uint _200C_202B_202A_206B_202E_202D_200F_206D_200E_200E_200D_206B_200C_202E_200C_206D_202D_206F_202A_202A_202B_206B_202A_206C_206D_206F_200D_202C_206F_202D_202E_200C_202B_206A_206F_206B_206A_200F_200F_200C_202E(ImGuiCol P_0) - { - return ImGui.GetColorU32(P_0); - } - - static void _206C_206A_206F_206D_206E_206C_200C_200E_202D_200C_202A_202A_200F_206D_200C_200E_200E_200D_206E_206E_202C_206C_202D_200C_200B_200F_206A_206B_200B_206A_202B_202A_206B_200B_202A_206A_200D_200E_202D_200F_202E(LWindow P_0, bool P_1) - { - P_0.IsOpenAndUncollapsed = P_1; - } } diff --git a/Questionable/Questionable.Windows.QuestComponents/RemainingTasksComponent.cs b/Questionable/Questionable.Windows.QuestComponents/RemainingTasksComponent.cs index 7367e99..832536b 100644 --- a/Questionable/Questionable.Windows.QuestComponents/RemainingTasksComponent.cs +++ b/Questionable/Questionable.Windows.QuestComponents/RemainingTasksComponent.cs @@ -1,8 +1,5 @@ -using System; -using System.Collections; using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Interface.Utility.Raii; using Questionable.Controller; @@ -27,296 +24,63 @@ internal sealed class RemainingTasksComponent _seasonalDutyController = seasonalDutyController; } - [MethodImpl(MethodImplOptions.NoInlining)] public bool Draw() { - (IList<string> Tasks, string? Prefix) remainingTasks = GetRemainingTasks(); - IList<string> item = remainingTasks.Tasks; - string item2 = remainingTasks.Prefix; - int num = ((item.Count != 0) ? 1019289488 : 1019289491); - string current = default(string); - while (true) + var (list, text) = GetRemainingTasks(); + if (list.Count == 0) { - int num2 = num; - int num3 = 1019289490; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0062; - case 1: - return false; - case 2: - { - (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple = UiThemeUtils.BeginCard(); - Vector2 item3 = tuple.ContentStartPos; - float item4 = tuple.AvailableWidth; - ImDrawListPtr item5 = tuple.DrawList; - float num5 = _200B_200F_200F_202E_200E_202C_202D_200E_206B_200B_200E_206C_200C_202E_200B_200B_206F_200D_200E_200E_200D_202C_202D_202B_202D_202D_206F_206D_200D_202C_200C_206F_202D_206D_200C_202C_200B_206D_200C_200D_202E(); - float num6 = _200F_200F_202E_206E_206F_202C_206E_206C_206C_200D_200E_200F_206E_202D_202C_206C_202C_200F_200B_202C_206E_202B_200E_206E_200B_200D_202B_202A_206E_202E_206C_202A_206A_202B_200F_200F_206D_200D_200F_206C_202E().X - 12f; - float num7 = num5 + num6; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(1, 2); - defaultInterpolatedStringHandler.AppendFormatted(item.Count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2018550958)); - defaultInterpolatedStringHandler.AppendFormatted((item.Count == 1) ? global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1381530242) : global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2113462673)); - string text = defaultInterpolatedStringHandler.ToStringAndClear(); - Vector2 vector = _202E_206C_206E_200D_200E_200D_200E_206E_202B_200C_202A_202B_202B_202B_206C_200E_206E_202B_200F_202C_206D_206D_206E_206A_200C_202E_200B_202D_202A_200C_206D_202E_200E_200D_206B_206D_206A_202B_200C_206A_202E((ImU8String)text, false, -1f); - _200E_200D_200C_206F_206C_206E_200D_206E_202C_206B_200D_200F_206D_202E_206C_200F_202A_200E_202C_206F_206F_200F_200B_206B_200D_202E_200F_202C_200F_206F_206F_206E_200F_206A_206C_202D_202E_200F_202C_206E_202E(false, ImGuiCond.Once); - bool flag = _200D_200D_200D_206C_202D_202A_200D_200D_206B_206C_200E_200C_202E_202B_200C_202E_206C_202A_200C_200E_202D_200C_206E_202C_202E_200D_200E_200E_206A_202E_202B_206A_200F_200C_200B_200F_206B_200D_206F_206B_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1093870985), ImGuiTreeNodeFlags.NoTreePushOnOpen | ImGuiTreeNodeFlags.SpanAvailWidth, default(ImU8String)); - _206D_202B_202E_202C_202A_200B_206C_202A_202A_202B_202A_206E_200E_202B_206F_206C_200B_200C_202C_206E_202E_206E_206D_202A_206B_206C_202C_202D_202B_206F_200D_202D_202A_206C_200E_200D_206E_202D_200D_202E_202E(); - _206A_202E_200B_206B_206E_202E_202A_206E_200C_200C_206C_200B_202E_200C_206C_206A_200F_206D_206E_206E_200F_206E_206D_206C_206C_206D_206B_206F_206F_200D_202A_206E_206B_202B_206C_202C_206A_202C_200B_200E_202E(num5 + num6 - vector.X); - ImRaii.ColorDisposable colorDisposable = _200F_206E_202C_202B_202A_202E_202E_206F_200E_200F_200C_206D_200F_200E_206A_200D_202D_206F_202B_206C_202D_202B_202B_200F_202D_200F_200D_202D_200F_206F_202D_200F_200F_206D_202D_206E_200E_200E_200C_206F_202E(ImGuiCol.Text, UiThemeUtils.DimTextColor, true); - try - { - _200B_206A_206C_202D_202D_200E_200F_200F_200D_206D_202B_206E_202C_200F_206E_200E_202D_206F_206C_200D_206F_200D_200C_206F_206B_200E_200B_206C_200E_200D_202A_206A_202A_200F_200E_202B_206B_200D_200E_206A_202E((ImU8String)text); - } - finally - { - num = ((colorDisposable == null) ? (-1125073780) : (-1125073777)); - while (true) - { - int num8 = num; - num3 = -1125073778; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 0: - num = -1125073777; - break; - case 2: - goto end_IL_0196; - case 1: - _200F_200E_206A_202E_202A_206D_206E_206A_202B_202E_206E_206D_206E_202C_202C_206B_202D_202A_202C_200B_202D_206D_200C_206D_206A_202B_206B_200E_206A_202C_202E_206D_200F_206A_200D_206E_206F_206A_200E_206C_202E((IDisposable)colorDisposable); - num = -1125073780; - break; - } - continue; - end_IL_0196: - break; - } - } - if (flag) - { - _206A_202E_202A_202C_206A_200D_202B_206D_202D_202E_206C_206A_206B_206E_200C_206E_200E_200F_200F_202E_202E_206A_202E_206F_200C_206F_200E_206F_200C_200D_202A_200F_200F_206C_206A_202A_200C_206F_206D_200D_202E(num7); - ImRaii.DisabledDisposable disabledDisposable = _206F_206F_202D_202C_200D_202E_202A_200B_202D_200B_206B_200D_206B_206F_202A_200C_200D_200E_206B_202D_200D_202A_206D_202E_206E_202B_206C_202B_206D_206A_200D_202D_200F_202B_200B_200B_206A_200D_202B_206C_202E(); - try - { - IEnumerator<string> enumerator = item.GetEnumerator(); - try - { - num = -973261633; - while (true) - { - int num11 = num; - num3 = -973261637; - num4 = num11; - string text2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = -973261633; - break; - case 2: - current = enumerator.Current; - num = ((item2 != null) ? (-973261634) : (-973261638)); - break; - case 5: - text2 = _206B_206E_202A_202A_200D_200C_202E_202E_206A_200F_202E_206C_206B_206C_200D_206E_206D_206D_206F_202B_206C_202C_202D_200E_206A_200E_202C_206E_200F_202D_200C_206E_206F_200C_206F_200E_200B_206D_206D_202C_202E(item2, current); - goto IL_0280; - case 4: - num = (_200D_202C_206B_200C_206A_200C_202B_206E_202D_202D_202B_200D_200D_202A_200C_206D_200E_202A_202D_206B_200B_200E_206D_202C_200F_202A_200E_200D_206C_206E_206C_202B_200C_200D_202A_200D_206C_200B_206A_202A_202E((IEnumerator)enumerator) ? (-973261639) : (-973261637)); - break; - case 1: - text2 = current; - goto IL_0280; - case 0: - goto end_IL_020d; - IL_0280: - _200B_206A_206C_202D_202D_200E_200F_200F_200D_206D_202B_206E_202C_200F_206E_200E_202D_206F_206C_200D_206F_200D_200C_206F_206B_200E_200B_206C_200E_200D_202A_206A_202A_200F_200E_202B_206B_200D_200E_206A_202E((ImU8String)text2); - num = -973261633; - break; - } - continue; - end_IL_020d: - break; - } - } - finally - { - num = ((enumerator == null) ? (-2099354394) : (-2099354395)); - while (true) - { - int num12 = num; - num3 = -2099354393; - num4 = num12; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -2099354395; - break; - case 1: - goto end_IL_02f1; - case 2: - _200F_200E_206A_202E_202A_206D_206E_206A_202B_202E_206E_206D_206E_202C_202C_206B_202D_202A_202C_200B_202D_206D_200C_206D_206A_202B_206B_200E_206A_202C_202E_206D_200F_206A_200D_206E_206F_206A_200E_206C_202E((IDisposable)enumerator); - num = -2099354394; - break; - } - continue; - end_IL_02f1: - break; - } - } - _202D_202A_202C_206D_206C_202D_202D_202C_202D_200D_206E_206D_206F_202B_200B_202B_202C_202D_202C_202B_202C_200E_202B_200D_206C_202D_206B_206D_206E_200B_202D_200B_206C_202C_206E_206B_206F_206F_202D_206C_202E(); - } - finally - { - num = ((disabledDisposable == null) ? 1458693981 : 1458693982); - while (true) - { - int num13 = num; - num3 = 1458693980; - num4 = num13; - int num14 = num4 + num3; - int num15 = num4 & num3; - switch (num14 - (num15 + num15)) - { - case 0: - num = 1458693982; - break; - case 2: - _200F_200E_206A_202E_202A_206D_206E_206A_202B_202E_206E_206D_206E_202C_202C_206B_202D_202A_202C_200B_202D_206D_200C_206D_206A_202B_206B_200E_206A_202C_202E_206D_200F_206A_200D_206E_206F_206A_200E_206C_202E((IDisposable)disabledDisposable); - num = 1458693981; - break; - case 1: - goto end_IL_0366; - } - continue; - end_IL_0366: - break; - } - } - } - UiThemeUtils.EndCard(item3, item4, item5); - return true; - } - } - continue; - IL_0062: - num = 1019289491; + return false; } + (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple2 = UiThemeUtils.BeginCard(); + Vector2 item = tuple2.ContentStartPos; + float item2 = tuple2.AvailableWidth; + ImDrawListPtr item3 = tuple2.DrawList; + float cursorPosX = ImGui.GetCursorPosX(); + float num = ImGui.GetContentRegionAvail().X - 12f; + float wrapLocalPosX = cursorPosX + num; + string text2 = $"{list.Count} {((list.Count == 1) ? "task" : "tasks")}"; + Vector2 vector = ImGui.CalcTextSize(text2); + ImGui.SetNextItemOpen(isOpen: false, ImGuiCond.Once); + bool flag = ImGui.TreeNodeEx("Up Next", ImGuiTreeNodeFlags.NoTreePushOnOpen | ImGuiTreeNodeFlags.SpanAvailWidth); + ImGui.SameLine(); + ImGui.SetCursorPosX(cursorPosX + num - vector.X); + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.DimTextColor)) + { + ImGui.TextUnformatted(text2); + } + if (flag) + { + ImGui.PushTextWrapPos(wrapLocalPosX); + using (ImRaii.Disabled()) + { + foreach (string item4 in list) + { + ImGui.TextUnformatted((text != null) ? (text + item4) : item4); + } + ImGui.PopTextWrapPos(); + } + } + UiThemeUtils.EndCard(item, item2, item3); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] private (IList<string> Tasks, string? Prefix) GetRemainingTasks() { IList<string> remainingTaskNames = _seasonalDutyController.GetRemainingTaskNames(); - int num = ((remainingTaskNames.Count <= 0) ? (-34894853) : (-34894852)); - IList<string> remainingTaskNames3 = default(IList<string>); - IList<string> remainingTaskNames2 = default(IList<string>); - while (true) + if (remainingTaskNames.Count > 0) { - int num2 = num; - int num3 = -34894856; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return (Tasks: _questController.GetRemainingTaskNames(), Prefix: null); - case 4: - return (Tasks: remainingTaskNames, Prefix: global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1720040569)); - case 3: - remainingTaskNames3 = _fateController.GetRemainingTaskNames(); - num = ((remainingTaskNames3.Count <= 0) ? (-34894855) : (-34894856)); - break; - case 5: - return (Tasks: remainingTaskNames2, Prefix: global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1120878014)); - case 6: - num = -34894852; - break; - case 0: - return (Tasks: remainingTaskNames3, Prefix: global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1289314876)); - case 1: - remainingTaskNames2 = _gatheringController.GetRemainingTaskNames(); - num = ((remainingTaskNames2.Count <= 0) ? (-34894854) : (-34894851)); - break; - } + return (Tasks: remainingTaskNames, Prefix: "D: "); } - } - - static float _200B_200F_200F_202E_200E_202C_202D_200E_206B_200B_200E_206C_200C_202E_200B_200B_206F_200D_200E_200E_200D_202C_202D_202B_202D_202D_206F_206D_200D_202C_200C_206F_202D_206D_200C_202C_200B_206D_200C_200D_202E() - { - return ImGui.GetCursorPosX(); - } - - static Vector2 _200F_200F_202E_206E_206F_202C_206E_206C_206C_200D_200E_200F_206E_202D_202C_206C_202C_200F_200B_202C_206E_202B_200E_206E_200B_200D_202B_202A_206E_202E_206C_202A_206A_202B_200F_200F_206D_200D_200F_206C_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static Vector2 _202E_206C_206E_200D_200E_200D_200E_206E_202B_200C_202A_202B_202B_202B_206C_200E_206E_202B_200F_202C_206D_206D_206E_206A_200C_202E_200B_202D_202A_200C_206D_202E_200E_200D_206B_206D_206A_202B_200C_206A_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static void _200E_200D_200C_206F_206C_206E_200D_206E_202C_206B_200D_200F_206D_202E_206C_200F_202A_200E_202C_206F_206F_200F_200B_206B_200D_202E_200F_202C_200F_206F_206F_206E_200F_206A_206C_202D_202E_200F_202C_206E_202E(bool P_0, ImGuiCond P_1) - { - ImGui.SetNextItemOpen(P_0, P_1); - } - - static bool _200D_200D_200D_206C_202D_202A_200D_200D_206B_206C_200E_200C_202E_202B_200C_202E_206C_202A_200C_200E_202D_200C_206E_202C_202E_200D_200E_200E_206A_202E_202B_206A_200F_200C_200B_200F_206B_200D_206F_206B_202E(ImU8String P_0, ImGuiTreeNodeFlags P_1, ImU8String P_2) - { - return ImGui.TreeNodeEx(P_0, P_1, P_2); - } - - static void _206D_202B_202E_202C_202A_200B_206C_202A_202A_202B_202A_206E_200E_202B_206F_206C_200B_200C_202C_206E_202E_206E_206D_202A_206B_206C_202C_202D_202B_206F_200D_202D_202A_206C_200E_200D_206E_202D_200D_202E_202E() - { - ImGui.SameLine(); - } - - static void _206A_202E_200B_206B_206E_202E_202A_206E_200C_200C_206C_200B_202E_200C_206C_206A_200F_206D_206E_206E_200F_206E_206D_206C_206C_206D_206B_206F_206F_200D_202A_206E_206B_202B_206C_202C_206A_202C_200B_200E_202E(float P_0) - { - ImGui.SetCursorPosX(P_0); - } - - static ImRaii.ColorDisposable _200F_206E_202C_202B_202A_202E_202E_206F_200E_200F_200C_206D_200F_200E_206A_200D_202D_206F_202B_206C_202D_202B_202B_200F_202D_200F_200D_202D_200F_206F_202D_200F_200F_206D_202D_206E_200E_200E_200C_206F_202E(ImGuiCol P_0, Vector4 P_1, bool P_2) - { - return ImRaii.PushColor(P_0, P_1, P_2); - } - - static void _200B_206A_206C_202D_202D_200E_200F_200F_200D_206D_202B_206E_202C_200F_206E_200E_202D_206F_206C_200D_206F_200D_200C_206F_206B_200E_200B_206C_200E_200D_202A_206A_202A_200F_200E_202B_206B_200D_200E_206A_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static void _200F_200E_206A_202E_202A_206D_206E_206A_202B_202E_206E_206D_206E_202C_202C_206B_202D_202A_202C_200B_202D_206D_200C_206D_206A_202B_206B_200E_206A_202C_202E_206D_200F_206A_200D_206E_206F_206A_200E_206C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _206A_202E_202A_202C_206A_200D_202B_206D_202D_202E_206C_206A_206B_206E_200C_206E_200E_200F_200F_202E_202E_206A_202E_206F_200C_206F_200E_206F_200C_200D_202A_200F_200F_206C_206A_202A_200C_206F_206D_200D_202E(float P_0) - { - ImGui.PushTextWrapPos(P_0); - } - - static ImRaii.DisabledDisposable _206F_206F_202D_202C_200D_202E_202A_200B_202D_200B_206B_200D_206B_206F_202A_200C_200D_200E_206B_202D_200D_202A_206D_202E_206E_202B_206C_202B_206D_206A_200D_202D_200F_202B_200B_200B_206A_200D_202B_206C_202E() - { - return ImRaii.Disabled(); - } - - static string _206B_206E_202A_202A_200D_200C_202E_202E_206A_200F_202E_206C_206B_206C_200D_206E_206D_206D_206F_202B_206C_202C_202D_200E_206A_200E_202C_206E_200F_202D_200C_206E_206F_200C_206F_200E_200B_206D_206D_202C_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static bool _200D_202C_206B_200C_206A_200C_202B_206E_202D_202D_202B_200D_200D_202A_200C_206D_200E_202A_202D_206B_200B_200E_206D_202C_200F_202A_200E_200D_206C_206E_206C_202B_200C_200D_202A_200D_206C_200B_206A_202A_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202D_202A_202C_206D_206C_202D_202D_202C_202D_200D_206E_206D_206F_202B_200B_202B_202C_202D_202C_202B_202C_200E_202B_200D_206C_202D_206B_206D_206E_200B_202D_200B_206C_202C_206E_206B_206F_206F_202D_206C_202E() - { - ImGui.PopTextWrapPos(); + IList<string> remainingTaskNames2 = _fateController.GetRemainingTaskNames(); + if (remainingTaskNames2.Count > 0) + { + return (Tasks: remainingTaskNames2, Prefix: "F: "); + } + IList<string> remainingTaskNames3 = _gatheringController.GetRemainingTaskNames(); + if (remainingTaskNames3.Count > 0) + { + return (Tasks: remainingTaskNames3, Prefix: "G: "); + } + return (Tasks: _questController.GetRemainingTaskNames(), Prefix: null); } } diff --git a/Questionable/Questionable.Windows.QuestComponents/SavedPresetsComponent.cs b/Questionable/Questionable.Windows.QuestComponents/SavedPresetsComponent.cs index 1b0d226..e147651 100644 --- a/Questionable/Questionable.Windows.QuestComponents/SavedPresetsComponent.cs +++ b/Questionable/Questionable.Windows.QuestComponents/SavedPresetsComponent.cs @@ -1,12 +1,9 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using System.Text; using Dalamud.Bindings.ImGui; -using Dalamud.Configuration; using Dalamud.Interface; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin; @@ -33,113 +30,6 @@ internal sealed class SavedPresetsComponent public List<string> QuestIds { get; set; } = new List<string>(); } - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<KeyValuePair<string, Configuration.SavedQuestPreset>, string> _003C_003E9__24_0; - - public static Func<Quest, ElementId> _003C_003E9__27_0; - - public static Func<ElementId, string> _003C_003E9__29_0; - - public static Func<ElementId, string> _003C_003E9__30_1; - - public static Func<Configuration.SavedQuestPreset, PresetExportData> _003C_003E9__30_0; - - public static Func<Configuration.SavedQuestPreset, string> _003C_003E9__38_0; - - internal string _003CDrawSavedPresets_003Eb__24_0(KeyValuePair<string, Configuration.SavedQuestPreset> x) - { - return x.Value.Name; - } - - internal ElementId _003CSaveCurrentPreset_003Eb__27_0(Quest q) - { - return q.Id; - } - - internal string _003CExportPresetToClipboard_003Eb__29_0(ElementId x) - { - return _202A_202B_200D_200B_200E_200F_202C_206A_202D_202D_200B_206A_200C_200C_200B_202B_200C_200C_206C_200C_206B_206E_202D_200C_202E_206C_202D_200E_200C_202D_202A_202A_206C_206F_202B_206D_200F_206B_202D_202A_202E((object)x); - } - - internal PresetExportData _003CExportAllPresetsToClipboard_003Eb__30_0(Configuration.SavedQuestPreset preset) - { - return new PresetExportData - { - Name = preset.Name, - Description = preset.Description, - QuestIds = preset.QuestIds.Select((ElementId x) => _202A_202B_200D_200B_200E_200F_202C_206A_202D_202D_200B_206A_200C_200C_200B_202B_200C_200C_206C_200C_206B_206E_202D_200C_202E_206C_202D_200E_200C_202D_202A_202A_206C_206F_202B_206D_200F_206B_202D_202A_202E((object)x)).ToList() - }; - } - - internal string _003CExportAllPresetsToClipboard_003Eb__30_1(ElementId x) - { - return _202A_202B_200D_200B_200E_200F_202C_206A_202D_202D_200B_206A_200C_200C_200B_202B_200C_200C_206C_200C_206B_206E_202D_200C_202E_206C_202D_200E_200C_202D_202A_202A_206C_206F_202B_206D_200F_206B_202D_202A_202E((object)x); - } - - internal string _003CImportAllPresetsFromClipboard_003Eb__38_0(Configuration.SavedQuestPreset p) - { - return p.Name; - } - - static string _202A_202B_200D_200B_200E_200F_202C_206A_202D_202D_200B_206A_200C_200C_200B_202B_200C_200C_206C_200C_206B_206E_202D_200C_202E_206C_202D_200E_200C_202D_202A_202A_206C_206F_202B_206D_200F_206B_202D_202A_202E(object P_0) - { - return P_0.ToString(); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass36_0 - { - public string name; - - internal bool _003CPresetNameExists_003Eb__0(Configuration.SavedQuestPreset p) - { - return _206B_206C_206C_200E_202A_206E_206F_200B_202B_206B_202A_206A_202C_200B_202C_206A_206D_202D_200D_206B_206B_200F_206B_200B_202A_206D_200D_206E_202A_202B_202C_202C_202A_206B_206C_200D_200E_206A_202C_200F_202E(p.Name, name, StringComparison.OrdinalIgnoreCase); - } - - static bool _206B_206C_206C_200E_202A_206E_206F_200B_202B_206B_202A_206A_202C_200B_202C_206A_206D_202D_200D_206B_206B_200F_206B_200B_202A_206D_200D_206E_202A_202B_202C_202C_202A_206B_206C_200D_200E_206A_202C_200F_202E(string P_0, string P_1, StringComparison P_2) - { - return string.Equals(P_0, P_1, P_2); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass41_0 - { - public ElementId questId; - - internal bool _003CGetAvailableQuests_003Eb__3(Quest q) - { - return _202E_202B_206D_202D_206C_202E_206F_200B_202B_202C_206A_200C_200D_200E_202C_200D_202C_200E_200F_200C_206C_206A_200C_206A_206D_206D_202A_202A_200D_200E_202B_200F_202C_202C_202E_200F_200E_206D_206A_200E_202E(q.Id, questId); - } - - static bool _202E_202B_206D_202D_206C_202E_206F_200B_202B_202C_206A_200C_200D_200E_202C_200D_202C_200E_200F_200C_206C_206A_200C_206A_206D_206D_202A_202A_200D_200E_202B_200F_202C_202C_202E_200F_200E_206D_206A_200E_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass42_0 - { - public ElementId questId; - - internal bool _003CGetAlreadyPriorityQuests_003Eb__2(Quest q) - { - return _206E_206A_206B_206F_202C_200F_206A_202B_202D_200C_200B_206E_202D_202D_206D_200D_200F_200C_206E_202D_206B_200B_206C_206F_200B_206F_202A_202E_202C_202B_202A_202C_206F_200F_202D_206E_202D_202C_202E_200C_202E(q.Id, questId); - } - - static bool _206E_206A_206B_206F_202C_200F_206A_202B_202D_200C_200B_206E_202D_202D_206D_200D_200F_200C_206E_202D_206B_200B_206C_206F_200B_206F_202A_202E_202C_202B_202A_202C_206F_200F_202D_206E_202D_202C_202E_200C_202E(ElementId P_0, ElementId P_1) - { - return P_0.Equals(P_1); - } - } - private readonly QuestController _questController; private readonly QuestFunctions _questFunctions; @@ -209,100 +99,27 @@ internal sealed class SavedPresetsComponent DrawBottomButtons(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawSaveSection() { int count = _questController.ManualPriorityQuests.Count; - float x = _206D_206E_206E_202C_206F_200C_202C_202C_200B_200B_200B_200D_206B_206F_200C_202D_202D_200B_200C_202A_206B_206B_206A_200B_206E_206F_202E_206A_200C_202B_206E_206C_206A_200F_206F_202D_200B_202B_206F_202E().X; - float x2 = _200F_202E_202B_202C_206B_206C_200B_202E_202C_200C_206D_206C_206D_206B_200B_200C_206F_206B_200E_200B_202C_202C_200E_202B_206A_202E_200B_200E_202A_202C_206D_206D_202D_202D_202D_206E_200E_202C_206B_202D_202E().ItemSpacing.X; + float x = ImGui.GetContentRegionAvail().X; + float x2 = ImGui.GetStyle().ItemSpacing.X; float width = (x - x2) / 2f; - ImRaii.DisabledDisposable disabledDisposable; - int num; if (_showSaveDialog) { - num = -414909637; - int num5; - while (true) + ImGui.SetNextItemWidth(x); + ImGui.InputTextWithHint("##PresetName", "Preset name...", ref _newPresetName, 64); + ImGui.SetNextItemWidth(x); + ImGui.InputTextWithHint("##PresetDescription", "Description (optional)...", ref _newPresetDescription, 256); + using (ImRaii.Disabled(string.IsNullOrWhiteSpace(_newPresetName) || count == 0)) { - int num2 = num; - int num3 = -414909638; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Save, "Save", width)) { - default: - continue; - case 0: - num5 = ((count == 0) ? 1 : 0); - break; - case 1: - _206D_200E_200C_200D_200D_206D_206A_200F_206E_206A_206B_206B_200F_202A_200B_206D_202C_206C_202E_206F_206B_202B_200E_200B_200D_206E_200C_200F_206C_202B_206C_200C_202D_200C_200B_206E_202D_206A_206B_206B_202E(x); - _206A_202B_206E_200F_206F_206F_202E_202D_200F_200E_200C_202B_206A_206D_206A_206F_202B_206D_200E_206B_202E_202D_202B_200C_206D_202D_202E_200C_200C_202D_206E_202C_202D_202C_206B_206F_206D_206D_202D_200E_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1836918597), (ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1120034716), ref _newPresetName, 64, ImGuiInputTextFlags.None, (ImGui.ImGuiInputTextCallbackDelegate)null); - _206D_200E_200C_200D_200D_206D_206A_200F_206E_206A_206B_206B_200F_202A_200B_206D_202C_206C_202E_206F_206B_202B_200E_200B_200D_206E_200C_200F_206C_202B_206C_200C_202D_200C_200B_206E_202D_206A_206B_206B_202E(x); - _206A_202B_206E_200F_206F_206F_202E_202D_200F_200E_200C_202B_206A_206D_206A_206F_202B_206D_200E_206B_202E_202D_202B_200C_206D_202D_202E_200C_200C_202D_206E_202C_202D_202C_206B_206F_206D_206D_202D_200E_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1932307685), (ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2085064665), ref _newPresetDescription, 256, ImGuiInputTextFlags.None, (ImGui.ImGuiInputTextCallbackDelegate)null); - num = (_206E_206E_200F_200F_200C_206C_200D_206B_200C_200D_200D_202A_206A_206A_206D_206B_200C_200E_206E_200C_200B_200B_206E_206B_206D_200E_200E_206B_200D_206F_200F_206E_200C_202B_206F_202D_200D_206C_206D_202A_202E(_newPresetName) ? (-414909640) : (-414909638)); - continue; - case 3: - num = -414909637; - continue; - case 2: - num5 = 1; - break; - } - break; - } - disabledDisposable = _202B_206D_202A_200D_206A_206D_202B_200C_206E_206B_206D_200D_202D_206B_200E_206C_206A_200C_200C_202B_206D_206C_202E_200C_200F_200D_200E_206D_200C_206B_202D_200E_200C_202E_200D_202B_206B_202B_202E_202B_202E((byte)num5 != 0); - try - { - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Save, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2146302512), width)) ? (-79341418) : (-79341419)); - while (true) - { - int num6 = num; - int num3 = -79341420; - int num4 = num6; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -79341419; - break; - case 1: - SaveCurrentPreset(); - num = -79341418; - break; - case 2: - goto end_IL_016f; - } - continue; - end_IL_016f: - break; + SaveCurrentPreset(); } } - finally - { - num = ((disabledDisposable == null) ? (-831511166) : (-831511167)); - while (true) - { - int num7 = num; - int num3 = -831511165; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -831511167; - break; - case 1: - goto end_IL_01dd; - case 2: - _206A_200B_206A_206D_202E_206C_200D_206E_200D_202D_206A_200B_200C_206F_200C_202C_206E_206A_200B_200B_202E_200C_200E_202D_200E_202C_202E_202A_206E_206B_206C_200D_206C_206C_200E_200B_200B_202C_202C_200F_202E((IDisposable)disabledDisposable); - num = -831511166; - break; - } - continue; - end_IL_01dd: - break; - } - } - _206C_206E_206C_200F_202C_202E_200F_202A_200D_200B_202A_206E_200E_206D_202C_200E_202A_200F_200B_200E_202A_206D_200D_202E_206B_202C_206E_206E_202B_200E_206B_202B_202B_202D_200E_206B_202A_200B_200C_202E(); - if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Times, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(885670479), width)) + ImGui.SameLine(); + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Times, "Cancel", width)) { _showSaveDialog = false; _newPresetName = string.Empty; @@ -310,280 +127,62 @@ internal sealed class SavedPresetsComponent } return; } - disabledDisposable = _202B_206D_202A_200D_206A_206D_202B_200C_206E_206B_206D_200D_202D_206B_200E_206C_206A_200C_200C_202B_206D_206C_202E_200C_200F_200D_200E_206D_200C_206B_202D_200E_200C_202E_200D_202B_206B_202B_202E_202B_202E(count == 0); - try + using (ImRaii.Disabled(count == 0)) { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(28, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1460487769)); - defaultInterpolatedStringHandler.AppendFormatted(count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(213680711)); - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Plus, defaultInterpolatedStringHandler.ToStringAndClear(), x)) ? (-204394257) : (-204394260)); - while (true) + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Plus, $"Save Current Queue ({count} quests)", x)) { - int num8 = num; - int num3 = -204394258; - int num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 0: - num = -204394260; - break; - case 2: - _showSaveDialog = true; - num = -204394257; - break; - case 1: - goto end_IL_02d4; - } - continue; - end_IL_02d4: - break; + _showSaveDialog = true; } } - finally + if (count == 0 && ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) { - num = ((disabledDisposable == null) ? 1836547569 : 1836547570); - while (true) - { - int num11 = num; - int num3 = 1836547568; - int num4 = num11; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - goto end_IL_0345; - case 2: - _206A_200B_206A_206D_202E_206C_200D_206E_200D_202D_206A_200B_200C_206F_200C_202C_206E_206A_200B_200B_202E_200C_200E_202D_200E_202C_202E_202A_206E_206B_206C_200D_206C_206C_200E_200B_200B_202C_202C_200F_202E((IDisposable)disabledDisposable); - num = 1836547569; - break; - case 0: - num = 1836547570; - break; - } - continue; - end_IL_0345: - break; - } - } - num = ((count != 0) ? 429240439 : 429240438); - while (true) - { - int num12 = num; - int num3 = 429240436; - int num4 = num12; - int num13 = num4 + num3; - int num14 = num4 & num3; - switch (num13 - (num14 + num14)) - { - case 0: - num = 429240438; - break; - case 3: - return; - case 1: - _200E_206D_206C_200F_206B_200F_200F_202D_206F_202E_202D_206F_206A_206A_202A_200D_206F_202C_206F_206F_206A_202B_200C_202A_206C_200B_202B_200D_202D_202B_202A_202A_200C_206A_206F_206D_200C_202B_206E_202B_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2047946986)); - num = 429240439; - break; - case 2: - num = ((!_200F_206B_200D_202D_206C_206B_200E_202B_206A_206D_200E_200E_206B_200B_200E_200F_206D_202D_206A_206E_200B_206A_206B_202A_200B_206D_206B_206D_200B_206B_200F_202E_202A_200C_206C_206E_200C_206C_202B_202A_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? 429240439 : 429240437); - break; - } + ImGui.SetTooltip("Add quests to the priority queue first."); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawSavedPresets() { Dictionary<string, Configuration.SavedQuestPreset> savedPresets = _configuration.General.SavedPresets; - int num2; if (savedPresets.Count == 0) { - string[] array = new string[3] - { - global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1427664245), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1662633757), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(168340145) - }; - float x = _206D_206E_206E_202C_206F_200C_202C_202C_200B_200B_200B_200D_206B_206F_200C_202D_202D_200B_200C_202A_206B_206B_206A_200B_206E_206F_202E_206A_200C_202B_206E_206C_206A_200F_206F_202D_200B_202B_206F_202E().X; - ImRaii.ColorDisposable colorDisposable = _206D_202B_200B_200E_206C_200B_206C_202E_200E_200E_200F_206F_200B_200E_200C_200B_206E_206A_206D_200F_206F_200F_206E_200F_202E_202E_200B_200E_202C_206E_200C_206A_206B_206B_202A_206F_202E_200D_202C_206B_202E(ImGuiCol.Text, UiThemeUtils.MutedTextColor, true); - try + string[] array = new string[3] { "No saved presets yet.", "Save your current priority queue using the", "button above." }; + float x = ImGui.GetContentRegionAvail().X; + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.MutedTextColor)) { string[] array2 = array; - int num = 0; - num2 = 1648909738; - while (true) + foreach (string obj in array2) { - int num3 = num2; - int num4 = 1648909739; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = 1648909738; - break; - case 1: - num2 = ((num < array2.Length) ? 1648909737 : 1648909736); - break; - case 2: - { - string obj = array2[num]; - float x2 = _206D_206F_206E_206F_202D_200B_206D_206D_202B_206E_202B_206A_200F_200F_202D_200D_200D_206D_200C_206E_202C_206C_206D_202D_202A_200C_206F_200B_200C_202E_206C_202D_206A_202E_206F_200E_206A_206E_202C_202E_202E((ImU8String)obj, false, -1f).X; - _202D_200B_206C_202C_202D_206D_202E_200E_200F_206B_202E_206B_202D_206D_206B_200C_200D_202C_200B_206D_206A_206B_202D_202C_202C_206D_200B_200E_202C_206B_200C_202C_202D_200E_206D_202C_206E_200F_200D_202A_202E(_202D_206E_200D_202B_206E_206F_202C_202B_200C_202E_200F_202C_206D_202E_206D_202D_206F_200B_206A_206B_202B_206E_200D_206C_200D_206C_200E_202A_200D_206B_206A_206C_202D_206F_206F_200E_206D_202D_202D_206A_202E() + (x - x2) / 2f); - _202A_200B_202B_200B_206D_206A_202A_206A_206F_200C_206E_200E_206A_200F_202B_206E_202B_202C_202A_202C_202B_202A_202C_200C_200F_206E_200F_202C_206F_206B_206F_202D_202E_206F_202B_200E_206A_206B_206A_202E_202E((ImU8String)obj); - int num6 = num; - num4 = 1; - num5 = num6; - int num7 = num5 ^ num4; - int num8 = num5 & num4; - num = num7 + (num8 + num8); - num2 = 1648909738; - break; - } - case 3: - return; - } - } - } - finally - { - num2 = ((colorDisposable == null) ? (-509673079) : (-509673080)); - while (true) - { - int num9 = num2; - int num4 = -509673079; - int num5 = num9; - int num10 = num5 + num4; - int num11 = num5 & num4; - switch (num10 - (num11 + num11)) - { - case 2: - num2 = -509673080; - break; - case 0: - goto end_IL_0156; - case 1: - _206A_200B_206A_206D_202E_206C_200D_206E_200D_202D_206A_200B_200C_206F_200C_202C_206E_206A_200B_200B_202E_200C_200E_202D_200E_202C_202E_202A_206E_206B_206C_200D_206C_206C_200E_200B_200B_202C_202C_200F_202E((IDisposable)colorDisposable); - num2 = -509673079; - break; - } - continue; - end_IL_0156: - break; + float x2 = ImGui.CalcTextSize(obj).X; + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + (x - x2) / 2f); + ImGui.TextUnformatted(obj); } + return; } } bool flag = true; - IEnumerator<KeyValuePair<string, Configuration.SavedQuestPreset>> enumerator = savedPresets.OrderBy((KeyValuePair<string, Configuration.SavedQuestPreset> keyValuePair) => keyValuePair.Value.Name).GetEnumerator(); - try + foreach (var (key, preset) in savedPresets.OrderBy((KeyValuePair<string, Configuration.SavedQuestPreset> keyValuePair2) => keyValuePair2.Value.Name)) { - num2 = 718071834; - string key2 = default(string); - Configuration.SavedQuestPreset preset = default(Configuration.SavedQuestPreset); - while (true) + if (!flag) { - int num12 = num2; - int num4 = 718071839; - int num5 = num12; - int num13 = num5 + num4; - int num14 = num5 & num4; - switch (num13 - (num14 + num14)) - { - case 4: - flag = false; - DrawPresetEntry(key2, preset); - num2 = 718071834; - break; - case 1: - { - enumerator.Current.Deconstruct(out var key, out var value); - key2 = key; - preset = value; - num2 = (flag ? 718071835 : 718071839); - break; - } - case 0: - _202C_206A_202E_206B_206B_206C_202B_206A_200E_206B_202D_200E_200C_206B_206E_206F_200F_206F_202D_206C_206A_206A_206A_202E_200B_202B_202E_206E_202A_200F_202E_206D_202A_206D_200D_200F_206A_206A_202A_202E(); - num2 = 718071835; - break; - case 2: - num2 = 718071834; - break; - case 5: - num2 = (_206E_202E_202A_202A_200F_206D_202C_206D_206C_202C_200D_200C_200C_202E_200B_200C_206F_200F_206A_206F_200C_206E_200D_200C_202C_202A_202E_202B_200C_202C_200C_200F_206F_202B_200E_206C_206A_206C_206A_202C_202E((IEnumerator)enumerator) ? 718071838 : 718071836); - break; - case 3: - goto end_IL_01e1; - } - continue; - end_IL_01e1: - break; + ImGui.Spacing(); } + flag = false; + DrawPresetEntry(key, preset); } - finally + if (_presetToDelete != null) { - num2 = ((enumerator == null) ? 1411685488 : 1411685491); - while (true) + if (savedPresets.Remove(_presetToDelete)) { - int num15 = num2; - int num4 = 1411685490; - int num5 = num15; - int num16 = num5 + num4; - int num17 = num5 & num4; - switch (num16 - (num17 + num17)) - { - case 2: - goto end_IL_02d2; - case 1: - _206A_200B_206A_206D_202E_206C_200D_206E_200D_202D_206A_200B_200C_206F_200C_202C_206E_206A_200B_200B_202E_200C_200E_202D_200E_202C_202E_202A_206E_206B_206C_200D_206C_206C_200E_200B_200B_202C_202C_200F_202E((IDisposable)enumerator); - num2 = 1411685488; - break; - case 0: - num2 = 1411685491; - break; - } - continue; - end_IL_02d2: - break; - } - } - num2 = ((_presetToDelete == null) ? 160898063 : 160898058); - while (true) - { - int num18 = num2; - int num4 = 160898062; - int num5 = num18; - int num19 = num5 + num4; - int num20 = num5 & num4; - switch (num19 - (num20 + num20)) - { - case 0: - num2 = 160898058; - break; - case 1: - return; - case 3: - _200B_202C_202B_202C_202C_202E_206B_200D_202D_202A_200C_202D_206B_202B_206E_202E_206B_202E_200F_202C_206E_206D_202C_206F_206F_200E_206E_200D_200F_200C_202E_206C_206A_206E_202E_206F_202A_200F_202E_206E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - _200D_200E_206B_206D_206F_206C_206E_206D_200D_206F_206E_202D_200E_206F_200B_202D_202E_206A_202C_206C_206B_206D_200C_206F_202D_200E_202C_202E_202D_200C_206F_200B_202E_202A_202D_200D_202D_202D_202A_200E_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1687036739), new object[1] { _presetToDelete }); - num2 = 160898060; - break; - case 2: - _presetToDelete = null; - num2 = 160898063; - break; - case 4: - num2 = ((!savedPresets.Remove(_presetToDelete)) ? 160898060 : 160898061); - break; + _pluginInterface.SavePluginConfig(_configuration); + _logger.LogInformation("Deleted saved preset '{PresetName}'", _presetToDelete); } + _presetToDelete = null; } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawPresetEntry(string key, Configuration.SavedQuestPreset preset) { - ImRaii.IdDisposable idDisposable = _202D_206A_200B_200F_206F_206B_206D_206F_202E_206C_206F_200B_206C_200C_202B_200C_202E_206D_202C_202C_202C_202D_206F_206C_206B_202B_206D_200C_200F_206A_206E_202E_206E_206F_206B_206D_206A_206D_202B_202A_202E((ImU8String)key, true); - try + using (ImRaii.PushId(key)) { (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) tuple = UiThemeUtils.BeginCard(); Vector2 item = tuple.ContentStartPos; @@ -591,965 +190,258 @@ internal sealed class SavedPresetsComponent ImDrawListPtr item3 = tuple.DrawList; List<ElementId> availableQuests = GetAvailableQuests(preset.QuestIds); int count = preset.QuestIds.Count; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(1, 2); - defaultInterpolatedStringHandler.AppendFormatted(count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2018550958)); - defaultInterpolatedStringHandler.AppendFormatted((count == 1) ? global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-607980198) : global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1391970161)); - string text = defaultInterpolatedStringHandler.ToStringAndClear(); - _202D_206E_200D_202B_206E_206F_202C_202B_200C_202E_200F_202C_206D_202E_206D_202D_206F_200B_206A_206B_202B_206E_200D_206C_200D_206C_200E_202A_200D_206B_206A_206C_202D_206F_206F_200E_206D_202D_202D_206A_202E(); - float num = _206D_206E_206E_202C_206F_200C_202C_202C_200B_200B_200B_200D_206B_206F_200C_202D_202D_200B_200C_202A_206B_206B_206A_200B_206E_206F_202E_206A_200C_202B_206E_206C_206A_200F_206F_202D_200B_202B_206F_202E().X - 12f; - bool flag = _202A_200B_206A_200E_200C_202A_202D_200D_206F_200F_206C_202B_200D_200F_200F_206C_206B_206B_200E_200F_202B_202D_200F_200C_206A_206A_206C_206C_206D_200F_206B_206A_206F_202E_202C_206A_202C_206C_202A_202D_202E(_expandedPreset, key); - float num2 = _206E_206C_206A_206B_200C_200B_202E_200C_206D_200E_202C_202C_200C_200F_206E_202A_200F_200B_202D_200E_200E_202C_206D_202E_200B_200E_202E_200E_206A_206A_200E_200B_206D_200D_202A_202C_200E_202E_202C_202E_202E(); - Vector2 vector = _206E_200F_206D_202E_202D_206F_206F_206B_202E_202E_206E_202B_206E_202B_206D_206F_206C_202B_202D_202C_200E_202B_200D_206B_202E_202B_202E_206F_200F_206E_202D_206B_202B_206C_206E_206F_200E_200C_206B_200C_202E(); - ImRaii.ColorDisposable colorDisposable = _206D_202B_200B_200E_206C_200B_206C_202E_200E_200E_200F_206F_200B_200E_200C_200B_206E_206A_206D_200F_206F_200F_206E_200F_202E_202E_200B_200E_202C_206E_200C_206A_206B_206B_202A_206F_202E_200D_202C_206B_202E(ImGuiCol.Button, Vector4.Zero, true); - int num3; - try + string text = $"{count} {((count == 1) ? "quest" : "quests")}"; + ImGui.GetCursorPosX(); + float num = ImGui.GetContentRegionAvail().X - 12f; + bool flag = _expandedPreset == key; + float frameHeight = ImGui.GetFrameHeight(); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + using (ImRaii.PushColor(ImGuiCol.Button, Vector4.Zero)) { - ImRaii.ColorDisposable colorDisposable2 = _206D_202B_200B_200E_206C_200B_206C_202E_200E_200E_200F_206F_200B_200E_200C_200B_206E_206A_206D_200F_206F_200F_206E_200F_202E_202E_200B_200E_202C_206E_200C_206A_206B_206B_202A_206F_202E_200D_202C_206B_202E(ImGuiCol.ButtonHovered, UiThemeUtils.SubtleHoverColor, true); - try + using (ImRaii.PushColor(ImGuiCol.ButtonHovered, UiThemeUtils.SubtleHoverColor)) { - ImRaii.ColorDisposable colorDisposable3 = _206D_202B_200B_200E_206C_200B_206C_202E_200E_200E_200F_206F_200B_200E_200C_200B_206E_206A_206D_200F_206F_200F_206E_200F_202E_202E_200B_200E_202C_206E_200C_206A_206B_206B_202A_206F_202E_200D_202C_206B_202E(ImGuiCol.ButtonActive, UiThemeUtils.SubtlePressColor, true); - try + using (ImRaii.PushColor(ImGuiCol.ButtonActive, UiThemeUtils.SubtlePressColor)) { - ImU8String imU8String = new ImU8String(2, 1); - imU8String.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-374493523)); - imU8String.AppendFormatted(key); - num3 = ((!_202C_202A_202B_202A_206C_206C_200E_206B_206A_202C_200D_206F_202B_206D_206C_206D_200D_202A_200B_206F_200B_202A_202C_200C_202A_202D_202D_200B_206B_202C_206E_206B_206C_202C_202C_206C_200E_206C_200F_200C_202E(imU8String, new Vector2(num, num2))) ? (-1560963531) : (-1560963530)); - while (true) + ImU8String label = new ImU8String(2, 1); + label.AppendLiteral("##"); + label.AppendFormatted(key); + if (ImGui.Button(label, new Vector2(num, frameHeight))) { - int num4 = num3; - int num5 = -1560963532; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) - { - case 0: - num3 = -1560963530; - break; - case 2: - _expandedPreset = (flag ? null : key); - flag = _202A_200B_206A_200E_200C_202A_202D_200D_206F_200F_206C_202B_200D_200F_200F_206C_206B_206B_200E_200F_202B_202D_200F_200C_206A_206A_206C_206C_206D_200F_206B_206A_206F_202E_202C_206A_202C_206C_202A_202D_202E(_expandedPreset, key); - num3 = -1560963531; - break; - case 1: - goto end_IL_0145; - } - continue; - end_IL_0145: - break; - } - } - finally - { - num3 = ((colorDisposable3 == null) ? 846948470 : 846948469); - while (true) - { - int num9 = num3; - int num5 = 846948468; - int num6 = num9; - switch ((num6 | num5) - (num6 & num5)) - { - case 0: - num3 = 846948469; - break; - case 1: - _206A_200B_206A_206D_202E_206C_200D_206E_200D_202D_206A_200B_200C_206F_200C_202C_206E_206A_200B_200B_202E_200C_200E_202D_200E_202C_202E_202A_206E_206B_206C_200D_206C_206C_200E_200B_200B_202C_202C_200F_202E((IDisposable)colorDisposable3); - num3 = 846948470; - break; - case 2: - goto end_IL_01d1; - } - continue; - end_IL_01d1: - break; + _expandedPreset = (flag ? null : key); + flag = _expandedPreset == key; } } } - finally - { - num3 = ((colorDisposable2 == null) ? 2075211356 : 2075211359); - while (true) - { - int num10 = num3; - int num5 = 2075211357; - int num6 = num10; - int num11 = num6 + num5; - int num12 = num6 & num5; - switch (num11 - (num12 + num12)) - { - case 0: - num3 = 2075211359; - break; - case 2: - _206A_200B_206A_206D_202E_206C_200D_206E_200D_202D_206A_200B_200C_206F_200C_202C_206E_206A_200B_200B_202E_200C_200E_202D_200E_202C_202E_202A_206E_206B_206C_200D_206C_206C_200E_200B_200B_202C_202C_200F_202E((IDisposable)colorDisposable2); - num3 = 2075211356; - break; - case 1: - goto end_IL_023c; - } - continue; - end_IL_023c: - break; - } - } } - finally + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + string text2 = (flag ? FontAwesomeIcon.CaretDown : FontAwesomeIcon.CaretRight).ToIconString(); + Vector2 vector; + using (ImRaii.PushFont(UiBuilder.IconFont)) { - num3 = ((colorDisposable == null) ? 1087445344 : 1087445347); - while (true) - { - int num13 = num3; - int num5 = 1087445345; - int num6 = num13; - switch ((num6 | num5) - (num6 & num5)) - { - case 0: - num3 = 1087445347; - break; - case 2: - _206A_200B_206A_206D_202E_206C_200D_206E_200D_202D_206A_200B_200C_206F_200C_202C_206E_206A_200B_200B_202E_200C_200E_202D_200E_202C_202E_202A_206E_206B_206C_200D_206C_206C_200E_200B_200B_202C_202C_200F_202E((IDisposable)colorDisposable); - num3 = 1087445344; - break; - case 1: - goto end_IL_02a9; - } - continue; - end_IL_02a9: - break; - } + vector = ImGui.CalcTextSize(text2); } - ImDrawListPtr imDrawListPtr = _200D_206C_200D_206E_202B_200B_202E_200B_206F_200C_202E_202C_200B_206F_206F_202B_200B_202C_200C_206B_200F_200C_200C_200D_202C_200F_202E_202B_206D_206B_206C_206D_202A_200C_202C_206C_202D_202D_200B_206B_202E(); - num3 = (flag ? (-1065983010) : (-1065983011)); - int num15; - while (true) - { - int num14 = num3; - int num5 = -1065983012; - int num6 = num14; - switch ((num6 | num5) - (num6 & num5)) - { - default: - continue; - case 0: - goto IL_0347; - case 1: - num15 = 61658; - break; - case 2: - num15 = 61655; - break; - } - break; - IL_0347: - num3 = -1065983011; - } - string text2 = _206B_206B_206C_206F_200F_206B_200F_206A_206D_202B_206F_202C_202B_200F_206B_202B_206D_206F_206C_206D_206D_202C_206D_200F_206C_200E_206D_202C_202A_200E_202B_200D_206D_202A_206A_200E_202E_206F_202D_202E((FontAwesomeIcon)num15); - ImRaii.FontDisposable fontDisposable = _206D_206A_200B_202D_206A_202E_200C_206B_202C_206D_206B_206F_206A_206B_206B_206D_206D_200D_200D_206E_202A_206A_202C_200B_202D_206F_202C_200B_200E_202A_202D_200B_200D_202B_200F_206E_206A_202C_202B_202E_202E(_200C_200E_202D_202E_206D_202A_206B_200E_200C_206E_206F_202E_202B_202E_202A_202A_202A_202C_200E_206C_202C_200B_200B_202B_200C_202B_202C_200F_202D_206C_200C_206D_206A_200D_206D_206A_206F_200C_200C_206D_202E(), true); - Vector2 vector2; - try - { - vector2 = _206D_206F_206E_206F_202D_200B_206D_206D_202B_206E_202B_206A_200F_200F_202D_200D_200D_206D_200C_206E_202C_206C_206D_202D_202A_200C_206F_200B_200C_202E_206C_202D_206A_202E_206F_200E_206A_206E_202C_202E_202E((ImU8String)text2, false, -1f); - } - finally - { - num3 = ((fontDisposable == null) ? (-2014865213) : (-2014865214)); - while (true) - { - int num16 = num3; - int num5 = -2014865213; - int num6 = num16; - switch ((num6 | num5) - (num6 & num5)) - { - case 2: - num3 = -2014865214; - break; - case 1: - _206A_200B_206A_206D_202E_206C_200D_206E_200D_202D_206A_200B_200C_206F_200C_202C_206E_206A_200B_200B_202E_200C_200E_202D_200E_202C_202E_202A_206E_206B_206C_200D_206C_206C_200E_200B_200B_202C_202C_200F_202E((IDisposable)fontDisposable); - num3 = -2014865213; - break; - case 0: - goto end_IL_03ba; - } - continue; - end_IL_03ba: - break; - } - } - float y = vector.Y + (num2 - _202B_202A_206C_202B_206A_200B_206C_206F_202B_202D_202D_202D_206E_206B_200B_200B_202A_202E_206D_202D_200D_200E_206E_202D_206C_206C_200F_200B_202B_200F_202E_202D_206B_202D_200D_202D_206D_206D_206A_200F_202E()) / 2f; - float y2 = vector.Y + (num2 - vector2.Y) / 2f; - uint col = _202D_200D_206D_202A_202B_206D_200B_202A_206A_200E_206F_206B_200D_202C_202C_200D_200D_200B_206E_206F_202A_206A_206B_200F_202C_206C_206D_200F_200F_206E_202C_202C_200C_202C_200B_202C_206D_206E_206D_202E_202E(ImGuiCol.Text); - Vector2 vector3 = _206D_206F_206E_206F_202D_200B_206D_206D_202B_206E_202B_206A_200F_200F_202D_200D_200D_206D_200C_206E_202C_206C_206D_202D_202A_200C_206F_200B_200C_202E_206C_202D_206A_202E_206F_200E_206A_206E_202C_202E_202E((ImU8String)text, false, -1f); - float x = _200F_202E_202B_202C_206B_206C_200B_202E_202C_200C_206D_206C_206D_206B_200B_200C_206F_206B_200E_200B_202C_202C_200E_202B_206A_202E_200B_200E_202A_202C_206D_206D_202D_202D_202D_206E_200E_202C_206B_202D_202E().FramePadding.X; - float num17 = vector.X + x + vector2.X + 6f; - float num18 = vector.X + num - vector3.X - x; - imDrawListPtr.AddText(_200C_200E_202D_202E_206D_202A_206B_200E_200C_206E_206F_202E_202B_202E_202A_202A_202A_202C_200E_206C_202C_200B_200B_202B_200C_202B_202C_200F_202D_206C_200C_206D_206A_200D_206D_206A_206F_200C_200C_206D_202E(), _206B_206E_200C_200E_206C_202E_200C_202B_202D_200B_202C_202E_200E_206A_202E_202E_202A_206F_206D_206F_206E_206A_200E_206C_200F_202D_200F_206D_206C_200C_206C_206D_206C_202B_200D_200B_200C_200D_206B_206F_202E(), new Vector2(vector.X + x, y2), col, text2); - imDrawListPtr.AddText(new Vector2(num17, y), col, UiThemeUtils.TruncateToWidth(preset.Name, num18 - num17 - _200F_202E_202B_202C_206B_206C_200B_202E_202C_200C_206D_206C_206D_206B_200B_200C_206F_206B_200E_200B_202C_202C_200E_202B_206A_202E_200B_200E_202A_202C_206D_206D_202D_202D_202D_206E_200E_202C_206B_202D_202E().ItemSpacing.X)); - imDrawListPtr.AddText(new Vector2(num18, y), _206E_206F_202C_206D_200E_202A_206B_202D_206C_200B_202E_206B_200D_200F_202A_200F_200C_206B_206C_200C_202D_206E_200E_202C_206C_200E_202D_206C_206D_202D_206E_202C_206E_206F_202D_202C_202D_202D_200D_206B_202E(UiThemeUtils.MutedTextColor), text); + float y = cursorScreenPos.Y + (frameHeight - ImGui.GetTextLineHeight()) / 2f; + float y2 = cursorScreenPos.Y + (frameHeight - vector.Y) / 2f; + uint colorU = ImGui.GetColorU32(ImGuiCol.Text); + Vector2 vector2 = ImGui.CalcTextSize(text); + float x = ImGui.GetStyle().FramePadding.X; + float num2 = cursorScreenPos.X + x + vector.X + 6f; + float num3 = cursorScreenPos.X + num - vector2.X - x; + windowDrawList.AddText(UiBuilder.IconFont, ImGui.GetFontSize(), new Vector2(cursorScreenPos.X + x, y2), colorU, text2); + windowDrawList.AddText(new Vector2(num2, y), colorU, UiThemeUtils.TruncateToWidth(preset.Name, num3 - num2 - ImGui.GetStyle().ItemSpacing.X)); + windowDrawList.AddText(new Vector2(num3, y), ImGui.ColorConvertFloat4ToU32(UiThemeUtils.MutedTextColor), text); if (flag) { - num3 = 466054893; - IQuestInfo questInfo = default(IQuestInfo); - ElementId current = default(ElementId); - while (true) + if (_editingPresetKey == key) { - int num19 = num3; - int num5 = 466054895; - int num6 = num19; - int num20 = num6 + num5; - int num21 = num6 & num5; - switch (num20 - (num21 + num21)) + float x2 = ImGui.GetContentRegionAvail().X; + ImGui.SetNextItemWidth(x2); + ImGui.InputTextWithHint("##EditName", "Preset name...", ref _editPresetName, 64); + ImGui.SetNextItemWidth(x2); + ImGui.InputTextWithHint("##EditDesc", "Description (optional)...", ref _editPresetDescription, 256); + float width = (x2 - ImGui.GetStyle().ItemSpacing.X) / 2f; + using (ImRaii.Disabled(string.IsNullOrWhiteSpace(_editPresetName))) { - default: - continue; - case 0: - num3 = 466054893; - continue; - case 2: - { - if (_202A_200B_206A_200E_200C_202A_202D_200D_206F_200F_206C_202B_200D_200F_200F_206C_206B_206B_200E_200F_202B_202D_200F_200C_206A_206A_206C_206C_206D_200F_206B_206A_206F_202E_202C_206A_202C_206C_202A_202D_202E(_editingPresetKey, key)) - { - num3 = 466054894; - continue; - } - colorDisposable = _206D_202B_200B_200E_206C_200B_206C_202E_200E_200E_200F_206F_200B_200E_200C_200B_206E_206A_206D_200F_206F_200F_206E_200F_202E_202E_200B_200E_202C_206E_200C_206A_206B_206B_202A_206F_202E_200D_202C_206B_202E(ImGuiCol.Text, UiThemeUtils.DimTextColor, true); - try - { - using List<ElementId>.Enumerator enumerator = preset.QuestIds.GetEnumerator(); - num3 = 1539209856; - while (true) - { - int num28 = num3; - num5 = 1539209857; - num6 = num28; - switch ((num6 | num5) - (num6 & num5)) - { - case 4: - UiThemeUtils.WrappedText(questInfo.Name); - num3 = ((!_206B_206A_206C_206A_206E_202A_202A_200C_200E_200C_202E_202C_202D_200E_206A_200F_206E_202D_206B_202B_206B_202D_206E_206C_206F_206F_206C_202B_200B_202B_206A_202D_206E_202B_202C_200C_206A_200E_200B_202D_202E()) ? 1539209856 : 1539209863); - break; - case 6: - _questTooltipComponent.Draw(questInfo); - num3 = 1539209856; - break; - case 1: - num3 = (enumerator.MoveNext() ? 1539209858 : 1539209860); - break; - case 3: - current = enumerator.Current; - num3 = ((!_questData.TryGetQuestInfo(current, out questInfo)) ? 1539209857 : 1539209861); - break; - case 2: - num3 = 1539209856; - break; - case 0: - UiThemeUtils.WrappedText(_202E_206C_200E_206D_206B_206E_206D_202C_206A_200F_200D_202C_202C_206B_202A_200F_202B_202D_200D_200C_202A_206F_202B_200E_206D_206D_202A_202C_206B_202C_202D_202E_202A_200E_206D_202D_200D_202E_202A_200F_202E((object)current)); - num3 = 1539209856; - break; - case 5: - goto end_IL_07ab; - } - continue; - end_IL_07ab: - break; - } - } - finally - { - num3 = ((colorDisposable == null) ? (-934951069) : (-934951072)); - while (true) - { - int num29 = num3; - num5 = -934951071; - num6 = num29; - switch ((num6 | num5) - (num6 & num5)) - { - case 0: - num3 = -934951072; - break; - case 1: - _206A_200B_206A_206D_202E_206C_200D_206E_200D_202D_206A_200B_200C_206F_200C_202C_206E_206A_200B_200B_202E_200C_200E_202D_200E_202C_202E_202A_206E_206B_206C_200D_206C_206C_200E_200B_200B_202C_202C_200F_202E((IDisposable)colorDisposable); - num3 = -934951069; - break; - case 2: - goto end_IL_08dd; - } - continue; - end_IL_08dd: - break; - } - } - _202C_206A_202E_206B_206B_206C_202B_206A_200E_206B_202D_200E_200C_206B_206E_206F_200F_206F_202D_206C_206A_206A_206A_202E_200B_202B_202E_206E_202A_200F_202E_206D_202A_206D_200D_200F_206A_206A_202A_202E(); - float width2 = (num - _200F_202E_202B_202C_206B_206C_200B_202E_202C_200C_206D_206C_206D_206B_200B_200C_206F_206B_200E_200B_202C_202C_200E_202B_206A_202E_200B_200E_202A_202C_206D_206D_202D_202D_202D_206E_200E_202C_206B_202D_202E().ItemSpacing.X * 3f) / 4f; - ImRaii.DisabledDisposable disabledDisposable = _202B_206D_202A_200D_206A_206D_202B_200C_206E_206B_206D_200D_202D_206B_200E_206C_206A_200C_200C_202B_206D_206C_202E_200C_200F_200D_200E_206D_200C_206B_202D_200E_200C_202E_200D_202B_206B_202B_202E_202B_202E(availableQuests.Count == 0); - try - { - num3 = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Plus, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-285867094), width2)) ? (-2095296245) : (-2095296248)); - while (true) - { - int num30 = num3; - num5 = -2095296246; - num6 = num30; - int num31 = num6 + num5; - int num32 = num6 & num5; - switch (num31 - (num32 + num32)) - { - case 0: - num3 = -2095296248; - break; - case 2: - AddPresetToPriority(availableQuests); - num3 = -2095296245; - break; - case 1: - goto end_IL_0996; - } - continue; - end_IL_0996: - break; - } - } - finally - { - num3 = ((disabledDisposable == null) ? (-1850944279) : (-1850944278)); - while (true) - { - int num33 = num3; - num5 = -1850944277; - num6 = num33; - switch ((num6 | num5) - (num6 & num5)) - { - case 0: - num3 = -1850944278; - break; - case 2: - goto end_IL_0a08; - case 1: - _206A_200B_206A_206D_202E_206C_200D_206E_200D_202D_206A_200B_200C_206F_200C_202C_206E_206A_200B_200B_202E_200C_200E_202D_200E_202C_202E_202A_206E_206B_206C_200D_206C_206C_200E_200B_200B_202C_202C_200F_202E((IDisposable)disabledDisposable); - num3 = -1850944279; - break; - } - continue; - end_IL_0a08: - break; - } - } - _206C_206E_206C_200F_202C_202E_200F_202A_200D_200B_202A_206E_200E_206D_202C_200E_202A_200F_200B_200E_202A_206D_200D_202E_206B_202C_206E_206E_202B_200E_206B_202B_202B_202D_200E_206B_202A_200B_200C_202E(); - num3 = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Upload, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(605125953), width2)) ? 1011960010 : 1011960009); - while (true) - { - int num34 = num3; - num5 = 1011960011; - num6 = num34; - switch ((num6 | num5) - (num6 & num5)) - { - default: - continue; - case 0: - num3 = 1011960009; - continue; - case 1: - _206C_206E_206C_200F_202C_202E_200F_202A_200D_200B_202A_206E_200E_206D_202C_200E_202A_200F_200B_200E_202A_206D_200D_202E_206B_202C_206E_206E_202B_200E_206B_202B_202B_202D_200E_206B_202A_200B_200C_202E(); - num3 = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Pen, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1401730482), width2)) ? 1011960015 : 1011960008); - continue; - case 3: - _editingPresetKey = key; - _editPresetName = preset.Name; - _editPresetDescription = preset.Description; - num3 = 1011960015; - continue; - case 2: - ExportPresetToClipboard(preset); - num3 = 1011960010; - continue; - case 4: - break; - } - break; - } - _206C_206E_206C_200F_202C_202E_200F_202A_200D_200B_202A_206E_200E_206D_202C_200E_202A_200F_200B_200E_202A_206D_200D_202E_206B_202C_206E_206E_202B_200E_206B_202B_202B_202D_200E_206B_202A_200B_200C_202E(); - disabledDisposable = _202B_206D_202A_200D_206A_206D_202B_200C_206E_206B_206D_200D_202D_206B_200E_206C_206A_200C_200C_202B_206D_206C_202E_200C_200F_200D_200E_206D_200C_206B_202D_200E_200C_202E_200D_202B_206B_202B_202E_202B_202E(!_206E_200D_200B_206C_202B_206D_206B_200D_206A_200C_200D_206C_206B_200B_206D_200E_202D_202C_202E_200B_200C_206D_200C_200B_202D_206C_200E_200B_200B_200F_202C_202A_206C_200F_206C_200F_202A_206D_206C_206E_202E(ImGuiKey.ModCtrl)); - try - { - num3 = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Trash, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(511154012), width2)) ? (-1269043811) : (-1269043810)); - while (true) - { - int num35 = num3; - num5 = -1269043809; - num6 = num35; - int num36 = num6 + num5; - int num37 = num6 & num5; - switch (num36 - (num37 + num37)) - { - case 0: - num3 = -1269043810; - break; - case 1: - _presetToDelete = key; - num3 = -1269043811; - break; - case 2: - goto end_IL_0b8e; - } - continue; - end_IL_0b8e: - break; - } - } - finally - { - num3 = ((disabledDisposable == null) ? (-839582138) : (-839582139)); - while (true) - { - int num38 = num3; - num5 = -839582140; - num6 = num38; - switch ((num6 | num5) - (num6 & num5)) - { - case 2: - goto end_IL_0bff; - case 1: - _206A_200B_206A_206D_202E_206C_200D_206E_200D_202D_206A_200B_200C_206F_200C_202C_206E_206A_200B_200B_202E_200C_200E_202D_200E_202C_202E_202A_206E_206B_206C_200D_206C_206C_200E_200B_200B_202C_202C_200F_202E((IDisposable)disabledDisposable); - num3 = -839582138; - break; - case 0: - num3 = -839582139; - break; - } - continue; - end_IL_0bff: - break; - } - } - num3 = ((!_200F_206B_200D_202D_206C_206B_200E_202B_206A_206D_200E_200E_206B_200B_200E_200F_206D_202D_206A_206E_200B_206A_206B_202A_200B_206D_206B_206D_200B_206B_200F_202E_202A_200C_206C_206E_200C_206C_202B_202A_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? (-1903494325) : (-1903494328)); - while (true) - { - int num39 = num3; - num5 = -1903494326; - num6 = num39; - switch ((num6 | num5) - (num6 & num5)) - { - default: - continue; - case 0: - num3 = -1903494328; - continue; - case 2: - _200E_206D_206C_200F_206B_200F_200F_202D_206F_202E_202D_206F_206A_206A_202A_200D_206F_202C_206F_206F_206A_202B_200C_202A_206C_200B_202B_200D_202D_202B_202A_202A_200C_206A_206F_206D_200C_202B_206E_202B_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(637726200)); - num3 = -1903494325; - continue; - case 1: - break; - } - break; - } - break; - } - case 1: - { - float x2 = _206D_206E_206E_202C_206F_200C_202C_202C_200B_200B_200B_200D_206B_206F_200C_202D_202D_200B_200C_202A_206B_206B_206A_200B_206E_206F_202E_206A_200C_202B_206E_206C_206A_200F_206F_202D_200B_202B_206F_202E().X; - _206D_200E_200C_200D_200D_206D_206A_200F_206E_206A_206B_206B_200F_202A_200B_206D_202C_206C_202E_206F_206B_202B_200E_200B_200D_206E_200C_200F_206C_202B_206C_200C_202D_200C_200B_206E_202D_206A_206B_206B_202E(x2); - _206A_202B_206E_200F_206F_206F_202E_202D_200F_200E_200C_202B_206A_206D_206A_206F_202B_206D_200E_206B_202E_202D_202B_200C_206D_202D_202E_200C_200C_202D_206E_202C_202D_202C_206B_206F_206D_206D_202D_200E_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-300464931), (ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1650294808), ref _editPresetName, 64, ImGuiInputTextFlags.None, (ImGui.ImGuiInputTextCallbackDelegate)null); - _206D_200E_200C_200D_200D_206D_206A_200F_206E_206A_206B_206B_200F_202A_200B_206D_202C_206C_202E_206F_206B_202B_200E_200B_200D_206E_200C_200F_206C_202B_206C_200C_202D_200C_200B_206E_202D_206A_206B_206B_202E(x2); - _206A_202B_206E_200F_206F_206F_202E_202D_200F_200E_200C_202B_206A_206D_206A_206F_202B_206D_200E_206B_202E_202D_202B_200C_206D_202D_202E_200C_200C_202D_206E_202C_202D_202C_206B_206F_206D_206D_202D_200E_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(55765657), (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1755242680), ref _editPresetDescription, 256, ImGuiInputTextFlags.None, (ImGui.ImGuiInputTextCallbackDelegate)null); - float width = (x2 - _200F_202E_202B_202C_206B_206C_200B_202E_202C_200C_206D_206C_206D_206B_200B_200C_206F_206B_200E_200B_202C_202C_200E_202B_206A_202E_200B_200E_202A_202C_206D_206D_202D_202D_202D_206E_200E_202C_206B_202D_202E().ItemSpacing.X) / 2f; - ImRaii.DisabledDisposable disabledDisposable = _202B_206D_202A_200D_206A_206D_202B_200C_206E_206B_206D_200D_202D_206B_200E_206C_206A_200C_200C_202B_206D_206C_202E_200C_200F_200D_200E_206D_200C_206B_202D_200E_200C_202E_200D_202B_206B_202B_202E_202B_202E(_206E_206E_200F_200F_200C_206C_200D_206B_200C_200D_200D_202A_206A_206A_206D_206B_200C_200E_206E_200C_200B_200B_206E_206B_206D_200E_200E_206B_200D_206F_200F_206E_200C_202B_206F_202D_200D_206C_206D_202A_202E(_editPresetName)); - try - { - num3 = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Save, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(744716393), width)) ? 641351484 : 641351487); - while (true) - { - int num22 = num3; - num5 = 641351486; - num6 = num22; - int num23 = num6 + num5; - int num24 = num6 & num5; - switch (num23 - (num24 + num24)) - { - case 0: - num3 = 641351487; - break; - case 1: - preset.Name = _206D_200B_206C_200B_206C_206C_200C_200E_202C_206B_206C_200B_200D_200E_200F_202E_206B_202B_200F_202E_200C_206F_202C_206A_206D_200C_206E_202E_206F_206B_202D_202D_200F_202C_202A_206D_200C_206F_202B_202D_202E(_editPresetName); - preset.Description = _206D_200B_206C_200B_206C_206C_200C_200E_202C_206B_206C_200B_200D_200E_200F_202E_206B_202B_200F_202E_200C_206F_202C_206A_206D_200C_206E_202E_206F_206B_202D_202D_200F_202C_202A_206D_200C_206F_202B_202D_202E(_editPresetDescription); - _200B_202C_202B_202C_202C_202E_206B_200D_202D_202A_200C_202D_206B_202B_206E_202E_206B_202E_200F_202C_206E_206D_202C_206F_206F_200E_206E_200D_200F_200C_202E_206C_206A_206E_202E_206F_202A_200F_202E_206E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - _editingPresetKey = null; - num3 = 641351484; - break; - case 2: - goto end_IL_0666; - } - continue; - end_IL_0666: - break; - } - } - finally - { - num3 = ((disabledDisposable == null) ? (-830260871) : (-830260870)); - while (true) - { - int num25 = num3; - num5 = -830260869; - num6 = num25; - int num26 = num6 + num5; - int num27 = num6 & num5; - switch (num26 - (num27 + num27)) - { - case 2: - goto end_IL_070a; - case 1: - _206A_200B_206A_206D_202E_206C_200D_206E_200D_202D_206A_200B_200C_206F_200C_202C_206E_206A_200B_200B_202E_200C_200E_202D_200E_202C_202E_202A_206E_206B_206C_200D_206C_206C_200E_200B_200B_202C_202C_200F_202E((IDisposable)disabledDisposable); - num3 = -830260871; - break; - case 0: - num3 = -830260870; - break; - } - continue; - end_IL_070a: - break; - } - } - _206C_206E_206C_200F_202C_202E_200F_202A_200D_200B_202A_206E_200E_206D_202C_200E_202A_200F_200B_200E_202A_206D_200D_202E_206B_202C_206E_206E_202B_200E_206B_202B_202B_202D_200E_206B_202A_200B_200C_202E(); - if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Times, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1132284114), width)) + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Save, "Save", width)) { + preset.Name = _editPresetName.Trim(); + preset.Description = _editPresetDescription.Trim(); + _pluginInterface.SavePluginConfig(_configuration); _editingPresetKey = null; } - break; } + ImGui.SameLine(); + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Times, "Cancel", width)) + { + _editingPresetKey = null; + } + } + else + { + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.DimTextColor)) + { + foreach (ElementId questId in preset.QuestIds) + { + if (_questData.TryGetQuestInfo(questId, out IQuestInfo questInfo)) + { + UiThemeUtils.WrappedText(questInfo.Name); + if (ImGui.IsItemHovered()) + { + _questTooltipComponent.Draw(questInfo); + } + } + else + { + UiThemeUtils.WrappedText(questId.ToString()); + } + } + } + ImGui.Spacing(); + float width2 = (num - ImGui.GetStyle().ItemSpacing.X * 3f) / 4f; + using (ImRaii.Disabled(availableQuests.Count == 0)) + { + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Plus, "Add", width2)) + { + AddPresetToPriority(availableQuests); + } + } + ImGui.SameLine(); + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Upload, "Export", width2)) + { + ExportPresetToClipboard(preset); + } + ImGui.SameLine(); + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Pen, "Edit", width2)) + { + _editingPresetKey = key; + _editPresetName = preset.Name; + _editPresetDescription = preset.Description; + } + ImGui.SameLine(); + using (ImRaii.Disabled(!ImGui.IsKeyDown(ImGuiKey.ModCtrl))) + { + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Trash, "Delete", width2)) + { + _presetToDelete = key; + } + } + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) + { + ImGui.SetTooltip("Hold CTRL to delete"); } - break; } } UiThemeUtils.EndCard(item, item2, item3); } - finally - { - int num3 = ((idDisposable == null) ? (-1402829835) : (-1402829834)); - while (true) - { - int num40 = num3; - int num5 = -1402829833; - int num6 = num40; - switch ((num6 | num5) - (num6 & num5)) - { - case 2: - goto end_IL_0cf5; - case 1: - _206A_200B_206A_206D_202E_206C_200D_206E_200D_202D_206A_200B_200C_206F_200C_202C_206E_206A_200B_200B_202E_200C_200E_202D_200E_202C_202E_202A_206E_206B_206C_200D_206C_206C_200E_200B_200B_202C_202C_200F_202E((IDisposable)idDisposable); - num3 = -1402829835; - break; - case 0: - num3 = -1402829834; - break; - } - continue; - end_IL_0cf5: - break; - } - } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawBottomButtons() { PresetExportData presetExportData = ParseClipboardPreset(); List<PresetExportData> list = ParseClipboardAllPresets(); - float x = _206D_206E_206E_202C_206F_200C_202C_202C_200B_200B_200B_200D_206B_206F_200C_202D_202D_200B_200C_202A_206B_206B_206A_200B_206E_206F_202E_206A_200C_202B_206E_206C_206A_200F_206F_202D_200B_202B_206F_202E().X; - float x2 = _200F_202E_202B_202C_206B_206C_200B_202E_202C_200C_206D_206C_206D_206B_200B_200C_206F_206B_200E_200B_202C_202C_200E_202B_206A_202E_200B_200E_202A_202C_206D_206D_202D_202D_202D_206E_200E_202C_206B_202D_202E().ItemSpacing.X; + float x = ImGui.GetContentRegionAvail().X; + float x2 = ImGui.GetStyle().ItemSpacing.X; float width = (x - x2) / 2f; - int num = ((presetExportData != null) ? (-1819939993) : (-1819939994)); - int num5; - while (true) + using (ImRaii.Disabled(presetExportData == null && list == null)) { - int num2 = num; - int num3 = -1819939993; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + string text = ((list != null) ? $"Import ({list.Count})" : "Import"); + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Download, text, width)) { - default: - continue; - case 2: - goto IL_007f; - case 1: - num5 = ((list == null) ? 1 : 0); - break; - case 0: - num5 = 0; - break; - } - break; - IL_007f: - num = -1819939994; - } - ImRaii.DisabledDisposable disabledDisposable = _202B_206D_202A_200D_206A_206D_202B_200C_206E_206B_206D_200D_202D_206B_200E_206C_206A_200C_200C_202B_206D_206C_202E_200C_200F_200D_200E_206D_200C_206B_202D_200E_200C_202E_200D_202B_206B_202B_202E_202B_202E((byte)num5 != 0); - try - { - num = ((list != null) ? 1086552360 : 1086552365); - while (true) - { - int num6 = num; - int num3 = 1086552362; - int num4 = num6; - int num7 = num4 + num3; - int num8 = num4 & num3; - string text; - string text2; - switch (num7 - (num8 + num8)) + if (list != null) { - case 0: - num = 1086552365; - break; - case 5: - ImportPresetFromClipboard(presetExportData); - num = 1086552364; - break; - case 1: - num = ((list == null) ? 1086552366 : 1086552361); - break; - case 7: - text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(452396725); - goto IL_01be; - case 4: - num = ((presetExportData == null) ? 1086552364 : 1086552367); - break; - case 2: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(9, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2014943156)); - defaultInterpolatedStringHandler.AppendFormatted(list.Count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - text = defaultInterpolatedStringHandler.ToStringAndClear(); - goto IL_01be; - } - case 3: ImportAllPresetsFromClipboard(list); - goto end_IL_00c6; - case 6: - goto end_IL_00c6; - IL_01be: - text2 = text; - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Download, text2, width)) ? 1086552364 : 1086552363); - break; } - continue; - end_IL_00c6: - break; + else if (presetExportData != null) + { + ImportPresetFromClipboard(presetExportData); + } } } - finally + if (presetExportData == null && list == null && ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) { - num = ((disabledDisposable == null) ? 345926213 : 345926214); - while (true) + ImGui.SetTooltip("Copy a valid preset string to clipboard first."); + } + ImGui.SameLine(); + int count = _configuration.General.SavedPresets.Count; + using (ImRaii.Disabled(count == 0)) + { + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Upload, $"Export ({count})", width)) { - int num9 = num; - int num3 = 345926212; - int num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 1: - goto end_IL_0226; - case 2: - _206A_200B_206A_206D_202E_206C_200D_206E_200D_202D_206A_200B_200C_206F_200C_202C_206E_206A_200B_200B_202E_200C_200E_202D_200E_202C_202E_202A_206E_206B_206C_200D_206C_206C_200E_200B_200B_202C_202C_200F_202E((IDisposable)disabledDisposable); - num = 345926213; - break; - case 0: - num = 345926214; - break; - } - continue; - end_IL_0226: - break; + ExportAllPresetsToClipboard(); } } - num = ((presetExportData != null) ? (-2075685938) : (-2075685937)); - while (true) + if (count == 0 && ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) { - int num12 = num; - int num3 = -2075685940; - int num4 = num12; - int num13 = num4 + num3; - int num14 = num4 & num3; - switch (num13 - (num14 + num14)) - { - case 4: - num = -2075685937; - break; - case 3: - num = ((list != null) ? (-2075685938) : (-2075685940)); - break; - case 0: - num = ((!_200F_206B_200D_202D_206C_206B_200E_202B_206A_206D_200E_200E_206B_200B_200E_200F_206D_202D_206A_206E_200B_206A_206B_202A_200B_206D_206B_206D_200B_206B_200F_202E_202A_200C_206C_206E_200C_206C_202B_202A_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? (-2075685938) : (-2075685939)); - break; - case 1: - _200E_206D_206C_200F_206B_200F_200F_202D_206F_202E_202D_206F_206A_206A_202A_200D_206F_202C_206F_206F_206A_202B_200C_202A_206C_200B_202B_200D_202D_202B_202A_202A_200C_206A_206F_206D_200C_202B_206E_202B_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(14992797)); - num = -2075685938; - break; - case 2: - { - _206C_206E_206C_200F_202C_202E_200F_202A_200D_200B_202A_206E_200E_206D_202C_200E_202A_200F_200B_200E_202A_206D_200D_202E_206B_202C_206E_206E_202B_200E_206B_202B_202B_202D_200E_206B_202A_200B_200C_202E(); - int count = _configuration.General.SavedPresets.Count; - disabledDisposable = _202B_206D_202A_200D_206A_206D_202B_200C_206E_206B_206D_200D_202D_206B_200E_206C_206A_200C_200C_202B_206D_206C_202E_200C_200F_200D_200E_206D_200C_206B_202D_200E_200C_202E_200D_202B_206B_202B_202E_202B_202E(count == 0); - try - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(9, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1228098948)); - defaultInterpolatedStringHandler2.AppendFormatted(count); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659)); - num = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Upload, defaultInterpolatedStringHandler2.ToStringAndClear(), width)) ? (-1471311443) : (-1471311442)); - while (true) - { - int num15 = num; - num3 = -1471311441; - num4 = num15; - int num16 = num4 + num3; - int num17 = num4 & num3; - switch (num16 - (num17 + num17)) - { - case 0: - num = -1471311442; - break; - case 1: - ExportAllPresetsToClipboard(); - num = -1471311443; - break; - case 2: - goto end_IL_03c5; - } - continue; - end_IL_03c5: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? 1517420440 : 1517420441); - while (true) - { - int num18 = num; - num3 = 1517420440; - num4 = num18; - int num19 = num4 + num3; - int num20 = num4 & num3; - switch (num19 - (num20 + num20)) - { - case 0: - goto end_IL_0435; - case 1: - _206A_200B_206A_206D_202E_206C_200D_206E_200D_202D_206A_200B_200C_206F_200C_202C_206E_206A_200B_200B_202E_200C_200E_202D_200E_202C_202E_202A_206E_206B_206C_200D_206C_206C_200E_200B_200B_202C_202C_200F_202E((IDisposable)disabledDisposable); - num = 1517420440; - break; - case 2: - num = 1517420441; - break; - } - continue; - end_IL_0435: - break; - } - } - num = ((count != 0) ? (-1527781092) : (-1527781090)); - while (true) - { - int num21 = num; - num3 = -1527781091; - num4 = num21; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1527781090; - break; - case 3: - num = ((!_200F_206B_200D_202D_206C_206B_200E_202B_206A_206D_200E_200E_206B_200B_200E_200F_206D_202D_206A_206E_200B_206A_206B_202A_200B_206D_206B_206D_200B_206B_200F_202E_202A_200C_206C_206E_200C_206C_202B_202A_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? (-1527781092) : (-1527781089)); - break; - case 1: - return; - case 2: - _200E_206D_206C_200F_206B_200F_200F_202D_206F_202E_202D_206F_206A_206A_202A_200D_206F_202C_206F_206F_206A_202B_200C_202A_206C_200B_202B_200D_202D_202B_202A_202A_200C_206A_206F_206D_200C_202B_206E_202B_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-794410333)); - num = -1527781092; - break; - } - } - } - } + ImGui.SetTooltip("No saved presets to export."); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void SaveCurrentPreset() { List<ElementId> list = _questController.ManualPriorityQuests.Select((Quest q) => q.Id).ToList(); string key = GeneratePresetKey(_newPresetName); Configuration.SavedQuestPreset savedQuestPreset = new Configuration.SavedQuestPreset { - Name = _206D_200B_206C_200B_206C_206C_200C_200E_202C_206B_206C_200B_200D_200E_200F_202E_206B_202B_200F_202E_200C_206F_202C_206A_206D_200C_206E_202E_206F_206B_202D_202D_200F_202C_202A_206D_200C_206F_202B_202D_202E(_newPresetName), - Description = _206D_200B_206C_200B_206C_206C_200C_200E_202C_206B_206C_200B_200D_200E_200F_202E_206B_202B_200F_202E_200C_206F_202C_206A_206D_200C_206E_202E_206F_206B_202D_202D_200F_202C_202A_206D_200C_206F_202B_202D_202E(_newPresetDescription), + Name = _newPresetName.Trim(), + Description = _newPresetDescription.Trim(), QuestIds = list, CreatedAt = DateTime.UtcNow }; _configuration.General.SavedPresets[key] = savedQuestPreset; - _200B_202C_202B_202C_202C_202E_206B_200D_202D_202A_200C_202D_206B_202B_206E_202E_206B_202E_200F_202C_206E_206D_202C_206F_206F_200E_206E_200D_200F_200C_202E_206C_206A_206E_202E_206F_202A_200F_202E_206E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - _200D_200E_206B_206D_206F_206C_206E_206D_200D_206F_206E_202D_200E_206F_200B_202D_202E_206A_202C_206C_206B_206D_200C_206F_202D_200E_202C_202E_202D_200C_206F_200B_202E_202A_202D_200D_202D_202D_202A_200E_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1165273515), new object[2] { savedQuestPreset.Name, list.Count }); - IChatGui chatGui = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(29, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(853920579)); - defaultInterpolatedStringHandler.AppendFormatted(savedQuestPreset.Name); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1877319077)); - defaultInterpolatedStringHandler.AppendFormatted(list.Count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(653722539)); - _206E_202B_206A_200C_206D_202B_206A_200F_206D_200D_202D_206B_202E_200B_202C_206B_206C_200F_200D_200E_206B_206A_202A_200D_200E_202B_202C_206C_206F_206C_206A_200C_200C_206F_202C_200E_202B_200C_202E_202D_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); + _pluginInterface.SavePluginConfig(_configuration); + _logger.LogInformation("Saved preset '{PresetName}' with {Count} quests", savedQuestPreset.Name, list.Count); + _chatGui.Print($"Saved preset '{savedQuestPreset.Name}' with {list.Count} quests.", "Questionable", 576); _newPresetName = string.Empty; _newPresetDescription = string.Empty; _showSaveDialog = false; } - [MethodImpl(MethodImplOptions.NoInlining)] private string GeneratePresetKey(string name) { - string text = _202A_206F_202A_206B_202E_200E_200E_200B_202C_202B_206F_200F_206C_202E_206C_206C_202D_206B_206A_200B_206D_206F_206D_200B_206C_202C_206D_206A_206C_202C_202E_206A_206F_200D_206F_206F_200B_206B_206D_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-566152102), _200B_206C_206C_202D_200E_200C_200D_202D_202D_206C_200B_200F_206D_202D_202C_202B_206D_202C_206D_200E_200F_200E_200E_202C_206B_206C_202E_200B_206C_200C_206F_202B_200D_200F_200C_206E_202A_200E_202D_202B_202E(_202A_200C_202E_206F_206E_202A_202B_202A_202A_206B_206C_206F_206D_202E_200E_206B_206E_206C_200B_206F_202A_206D_206C_206E_206A_206D_200C_202C_202D_202D_206E_206F_206F_200D_202C_206E_202E_206B_206D_206B_202E(_206D_200B_206C_200B_206C_206C_200C_200E_202C_206B_206C_200B_200D_200E_200F_202E_206B_202B_200F_202E_200C_206F_202C_206A_206D_200C_206E_202E_206F_206B_202D_202D_200F_202C_202A_206D_200C_206F_202B_202D_202E(name)), ' ', '_')); + string text = "user_" + name.Trim().ToUpperInvariant().Replace(' ', '_'); string text2 = text; int num = 1; - int num2 = 741222322; - while (true) + while (_configuration.General.SavedPresets.ContainsKey(text2)) { - int num3 = num2; - int num4 = 741222320; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 0: - num2 = 741222322; - break; - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(1, 2); - defaultInterpolatedStringHandler.AppendFormatted(text); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1981151499)); - defaultInterpolatedStringHandler.AppendFormatted(num); - text2 = defaultInterpolatedStringHandler.ToStringAndClear(); - int num8 = num; - num4 = 1; - num5 = num8; - int num9 = num5 ^ num4; - int num10 = num5 & num4; - num = num9 + (num10 + num10); - num2 = 741222322; - break; - } - case 3: - return text2; - case 2: - num2 = (_configuration.General.SavedPresets.ContainsKey(text2) ? 741222321 : 741222323); - break; - } + text2 = $"{text}_{num}"; + num++; } + return text2; } - [MethodImpl(MethodImplOptions.NoInlining)] private void ExportPresetToClipboard(Configuration.SavedQuestPreset preset) { - string text = _206D_206F_200E_202A_200F_200B_200B_202A_202E_206B_206B_206F_200E_202E_206C_206C_200B_202D_202D_206B_206E_206E_200E_200F_202D_206B_206B_206B_200F_206E_202E_200F_200C_206F_206E_206C_206E_200E_200D_200E_202E((object)new PresetExportData + string s = JsonConvert.SerializeObject(new PresetExportData { Name = preset.Name, Description = preset.Description, - QuestIds = preset.QuestIds.Select((ElementId x) => _003C_003Ec._202A_202B_200D_200B_200E_200F_202C_206A_202D_202D_200B_206A_200C_200C_200B_202B_200C_200C_206C_200C_206B_206E_202D_200C_202E_206C_202D_200E_200C_202D_202A_202A_206C_206F_202B_206D_200F_206B_202D_202A_202E((object)x)).ToList() + QuestIds = preset.QuestIds.Select((ElementId x) => x.ToString()).ToList() }); - _200F_200B_200B_200B_206F_200B_202D_202B_200B_206F_202A_200C_206A_206D_206B_202D_202C_202C_206E_206E_200C_200D_206D_202D_202C_200C_200C_206A_202D_206C_200E_202B_200F_202E_202B_200B_200C_206E_206F_206E_202E((ImU8String)_202A_206F_202A_206B_202E_200E_200E_200B_202C_202B_206F_200F_206C_202E_206C_206C_202D_206B_206A_200B_206D_206F_206D_200B_206C_202C_206D_206A_206C_202C_202E_206A_206F_200D_206F_206F_200B_206B_206D_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(727121483), _206B_206C_206F_200E_206C_202C_206A_202A_206D_206B_200D_206A_206B_200D_200E_200B_200C_200F_206F_206A_200C_206E_202B_202D_206A_202A_206A_200B_200D_202B_202A_206C_202B_200D_206B_202D_200D_206E_200D_200F_202E(_206E_206F_202B_202B_202E_206D_202A_206B_206D_206A_206C_202C_206F_200C_202D_200E_206B_200F_202D_202E_200D_206E_200B_202D_202A_206A_200C_206D_200B_206E_200E_200D_202B_200B_200D_202A_200C_200B_200B_206C_202E(_206A_202D_200E_206F_206F_202A_200C_202D_202E_202D_200F_206D_206D_202E_206E_206E_202E_206B_206F_200C_206E_200C_206B_202D_200E_206E_206C_206A_202D_202B_206A_206B_202C_206F_202D_206B_206E_200B_200B_202A_202E(), text)))); - _206E_202B_206A_200C_206D_202B_206A_200F_206D_200D_202D_206B_202E_200B_202C_206B_206C_200F_200D_200E_206B_206A_202A_200D_200E_202B_202C_206C_206F_206C_206A_200C_200C_206F_202C_200E_202B_200C_202E_202D_202E(_chatGui, _200C_202D_206B_206A_206D_206E_202E_202C_206F_200D_202B_202A_200B_200B_206A_206F_200F_200B_200B_206A_206D_200B_202A_200B_200F_206C_202A_202D_206B_202E_200B_206F_202D_202B_200F_200B_202A_200F_200D_200D_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-715452806), preset.Name, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1427828236)), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712), (ushort?)(ushort)576); + ImGui.SetClipboardText("qst:preset:" + Convert.ToBase64String(Encoding.UTF8.GetBytes(s))); + _chatGui.Print("Exported preset '" + preset.Name + "' to clipboard.", "Questionable", 576); } - [MethodImpl(MethodImplOptions.NoInlining)] private void ExportAllPresetsToClipboard() { List<PresetExportData> list = _configuration.General.SavedPresets.Values.Select((Configuration.SavedQuestPreset preset) => new PresetExportData { Name = preset.Name, Description = preset.Description, - QuestIds = preset.QuestIds.Select((ElementId x) => _003C_003Ec._202A_202B_200D_200B_200E_200F_202C_206A_202D_202D_200B_206A_200C_200C_200B_202B_200C_200C_206C_200C_206B_206E_202D_200C_202E_206C_202D_200E_200C_202D_202A_202A_206C_206F_202B_206D_200F_206B_202D_202A_202E((object)x)).ToList() + QuestIds = preset.QuestIds.Select((ElementId x) => x.ToString()).ToList() }).ToList(); - string text = _206D_206F_200E_202A_200F_200B_200B_202A_202E_206B_206B_206F_200E_202E_206C_206C_200B_202D_202D_206B_206E_206E_200E_200F_202D_206B_206B_206B_200F_206E_202E_200F_200C_206F_206E_206C_206E_200E_200D_200E_202E((object)list); - _200F_200B_200B_200B_206F_200B_202D_202B_200B_206F_202A_200C_206A_206D_206B_202D_202C_202C_206E_206E_200C_200D_206D_202D_202C_200C_200C_206A_202D_206C_200E_202B_200F_202E_202B_200B_200C_206E_206F_206E_202E((ImU8String)_202A_206F_202A_206B_202E_200E_200E_200B_202C_202B_206F_200F_206C_202E_206C_206C_202D_206B_206A_200B_206D_206F_206D_200B_206C_202C_206D_206A_206C_202C_202E_206A_206F_200D_206F_206F_200B_206B_206D_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(983055741), _206B_206C_206F_200E_206C_202C_206A_202A_206D_206B_200D_206A_206B_200D_200E_200B_200C_200F_206F_206A_200C_206E_202B_202D_206A_202A_206A_200B_200D_202B_202A_206C_202B_200D_206B_202D_200D_206E_200D_200F_202E(_206E_206F_202B_202B_202E_206D_202A_206B_206D_206A_206C_202C_206F_200C_202D_200E_206B_200F_202D_202E_200D_206E_200B_202D_202A_206A_200C_206D_200B_206E_200E_200D_202B_200B_200D_202A_200C_200B_200B_206C_202E(_206A_202D_200E_206F_206F_202A_200C_202D_202E_202D_200F_206D_206D_202E_206E_206E_202E_206B_206F_200C_206E_200C_206B_202D_200E_206E_206C_206A_202D_202B_206A_206B_202C_206F_202D_206B_206E_200B_200B_202A_202E(), text)))); - IChatGui chatGui = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(31, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1339286329)); - defaultInterpolatedStringHandler.AppendFormatted(list.Count); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2092278984)); - _206E_202B_206A_200C_206D_202B_206A_200F_206D_200D_202D_206B_202E_200B_202C_206B_206C_200F_200D_200E_206B_206A_202A_200D_200E_202B_202C_206C_206F_206C_206A_200C_200C_206F_202C_200E_202B_200C_202E_202D_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); + string s = JsonConvert.SerializeObject(list); + ImGui.SetClipboardText("qst:presets:" + Convert.ToBase64String(Encoding.UTF8.GetBytes(s))); + _chatGui.Print($"Exported {list.Count} presets to clipboard.", "Questionable", 576); } - [MethodImpl(MethodImplOptions.NoInlining)] private void RefreshClipboardPresets() { string text = ThrottledClipboard.GetText(); - int num = ((!_202A_200B_206A_200E_200C_202A_202D_200D_206F_200F_206C_202B_200D_200F_200F_206C_206B_206B_200E_200F_202B_202D_200F_200C_206A_206A_206C_206C_206D_200F_206B_206A_206F_202E_202C_206A_202C_206C_202A_202D_202E(text, _lastClipboardText)) ? (-668792437) : (-668792440)); - while (true) + if (text == _lastClipboardText) { - int num2 = num; - int num3 = -668792439; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + _lastClipboardText = text; + _clipboardPreset = null; + _clipboardAllPresets = null; + try + { + if (text.StartsWith("qst:preset:", StringComparison.InvariantCulture)) { - case 0: - goto IL_005d; - case 1: - return; - case 2: - _lastClipboardText = text; - _clipboardPreset = null; - _clipboardAllPresets = null; - try - { - num = ((!_202C_202C_206C_200F_200C_200B_206C_206A_200B_206A_202C_202E_206F_206B_206B_206B_202D_206D_200F_202D_202B_206F_206D_202A_200D_206C_206C_200C_200E_206D_200E_200D_200F_206B_200E_206D_206B_200C_202D_200D_202E(text, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(727121483), StringComparison.InvariantCulture)) ? (-1023655681) : (-1023655683)); - while (true) - { - int num7 = num; - num3 = -1023655684; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - { - string text3 = _200C_200E_202E_206B_206F_202D_202A_200C_200D_202B_206B_202B_202A_202C_206A_200E_202D_206E_202E_202E_200D_200D_202E_202A_206A_206C_206F_200B_202C_206C_206E_206D_200F_202A_202D_202C_206A_200C_202D_200C_202E(text, _206B_200C_200E_202A_200B_206B_206C_200C_202C_202A_200B_206B_200C_202A_206F_202E_202E_202E_206D_202C_200D_206B_200B_200C_206E_206E_206C_202A_200E_206B_206E_200E_206B_206F_202C_206B_200C_206D_202E_206B_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(178700019))); - string value2 = _206F_206C_202A_202C_202B_206A_206D_206F_200D_200E_206E_200C_202D_206D_202D_200C_206B_202E_200F_200C_202B_206C_202C_206C_200C_202A_200F_202A_202E_200C_202B_206D_200C_200E_200E_200F_200E_206B_200D_206B_202E(_206A_202D_200E_206F_206F_202A_200C_202D_202E_202D_200F_206D_206D_202E_206E_206E_202E_206B_206F_200C_206E_200C_206B_202D_200E_206E_206C_206A_202D_202B_206A_206B_202C_206F_202D_206B_206E_200B_200B_202A_202E(), _200D_206F_202E_206C_200D_206E_202D_202E_206C_206F_200E_202C_206A_206E_200F_206C_206B_202B_206F_202D_202E_200F_200E_202D_206A_206D_206D_202C_206D_202E_206A_200F_200D_200F_200F_200B_206B_202A_202A_202B_202E(text3)); - _clipboardAllPresets = JsonConvert.DeserializeObject<List<PresetExportData>>(value2); - num = -1023655688; - break; - } - case 1: - { - string text2 = _200C_200E_202E_206B_206F_202D_202A_200C_200D_202B_206B_202B_202A_202C_206A_200E_202D_206E_202E_202E_200D_200D_202E_202A_206A_206C_206F_200B_202C_206C_206E_206D_200F_202A_202D_202C_206A_200C_202D_200C_202E(text, _206B_200C_200E_202A_200B_206B_206C_200C_202C_202A_200B_206B_200C_202A_206F_202E_202E_202E_206D_202C_200D_206B_200B_200C_206E_206E_206C_202A_200E_206B_206E_200E_206B_206F_202C_206B_200C_206D_202E_206B_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(134016319))); - string value = _206F_206C_202A_202C_202B_206A_206D_206F_200D_200E_206E_200C_202D_206D_202D_200C_206B_202E_200F_200C_202B_206C_202C_206C_200C_202A_200F_202A_202E_200C_202B_206D_200C_200E_200E_200F_200E_206B_200D_206B_202E(_206A_202D_200E_206F_206F_202A_200C_202D_202E_202D_200F_206D_206D_202E_206E_206E_202E_206B_206F_200C_206E_200C_206B_202D_200E_206E_206C_206A_202D_202B_206A_206B_202C_206F_202D_206B_206E_200B_200B_202A_202E(), _200D_206F_202E_206C_200D_206E_202D_202E_206C_206F_200E_202C_206A_206E_200F_206C_206B_202B_206F_202D_202E_200F_200E_202D_206A_206D_206D_202C_206D_202E_206A_200F_200D_200F_200F_200B_206B_202A_202A_202B_202E(text2)); - _clipboardPreset = JsonConvert.DeserializeObject<PresetExportData>(value); - num = -1023655688; - break; - } - case 3: - num = ((!_202C_202C_206C_200F_200C_200B_206C_206A_200B_206A_202C_202E_206F_206B_206B_206B_202D_206D_200F_202D_202B_206F_206D_202A_200D_206C_206C_200C_200E_206D_200E_200D_200F_206B_200E_206D_206B_200C_202D_200D_202E(text, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(983055741), StringComparison.InvariantCulture)) ? (-1023655688) : (-1023655682)); - break; - case 0: - num = -1023655683; - break; - case 4: - return; - } - } - } - catch (Exception ex) - { - _202C_206D_206A_206B_202E_202D_200D_202A_200C_206A_206D_202E_206A_200F_206E_206D_206C_202E_206F_206D_202A_206C_206A_202B_206D_206C_206A_200E_200C_200B_202D_202A_206F_206D_202E_202B_200C_202D_206E_202E((ILogger)_logger, ex, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1318302015), Array.Empty<object>()); - return; - } + string s = text.Substring("qst:preset:".Length); + string value = Encoding.UTF8.GetString(Convert.FromBase64String(s)); + _clipboardPreset = JsonConvert.DeserializeObject<PresetExportData>(value); } - continue; - IL_005d: - num = -668792440; + else if (text.StartsWith("qst:presets:", StringComparison.InvariantCulture)) + { + string s2 = text.Substring("qst:presets:".Length); + string value2 = Encoding.UTF8.GetString(Convert.FromBase64String(s2)); + _clipboardAllPresets = JsonConvert.DeserializeObject<List<PresetExportData>>(value2); + } + } + catch (Exception exception) + { + _logger.LogDebug(exception, "Failed to parse presets from clipboard"); } } @@ -1567,88 +459,50 @@ internal sealed class SavedPresetsComponent private bool PresetNameExists(string name) { - return _configuration.General.SavedPresets.Values.Any((Configuration.SavedQuestPreset p) => _003C_003Ec__DisplayClass36_0._206B_206C_206C_200E_202A_206E_206F_200B_202B_206B_202A_206A_202C_200B_202C_206A_206D_202D_200D_206B_206B_200F_206B_200B_202A_206D_200D_206E_202A_202B_202C_202C_202A_206B_206C_200D_200E_206A_202C_200F_202E(p.Name, name, StringComparison.OrdinalIgnoreCase)); + return _configuration.General.SavedPresets.Values.Any((Configuration.SavedQuestPreset p) => string.Equals(p.Name, name, StringComparison.OrdinalIgnoreCase)); } - [MethodImpl(MethodImplOptions.NoInlining)] private void ImportPresetFromClipboard(PresetExportData exportData) { try { - int num = ((!PresetNameExists(exportData.Name)) ? (-1023174906) : (-1023174912)); - string text = default(string); - int num7 = default(int); - List<ElementId> list = default(List<ElementId>); - while (true) + if (PresetNameExists(exportData.Name)) { - int num2 = num; - int num3 = -1023174907; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - { - string text2 = text; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(28, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1280529042)); - defaultInterpolatedStringHandler.AppendFormatted(num7); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(211837278)); - text = _202A_206F_202A_206B_202E_200E_200E_200B_202C_202B_206F_200F_206C_202E_206C_206C_202D_206B_206A_200B_206D_206F_206D_200B_206C_202C_206D_206A_206C_202C_202E_206A_206F_200D_206F_206F_200B_206B_206D_202E(text2, defaultInterpolatedStringHandler.ToStringAndClear()); - num = -1023174905; - break; - } - case 1: - _200F_206C_206F_202C_202B_206A_202A_202D_202D_202D_206F_206F_202C_206A_200F_202B_200D_202D_206B_202D_206E_202C_200E_206B_202D_202C_206F_206B_200C_206C_206E_200E_200B_200F_202C_206F_200F_200C_202E_200D_202E(_chatGui, _200C_202D_206B_206A_206D_206E_202E_202C_206F_200D_202B_202A_200B_200B_206A_206F_200F_200B_200B_206A_206D_200B_202A_200B_200F_206C_202A_202D_206B_202E_200B_206F_202D_202B_200F_200B_202A_200F_200D_200D_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2037075648), exportData.Name, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1952589738)), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - return; - case 6: - { - string key = GeneratePresetKey(exportData.Name); - Configuration.SavedQuestPreset savedQuestPreset = new Configuration.SavedQuestPreset - { - Name = exportData.Name, - Description = exportData.Description, - QuestIds = list, - CreatedAt = DateTime.UtcNow - }; - _configuration.General.SavedPresets[key] = savedQuestPreset; - _200B_202C_202B_202C_202C_202E_206B_200D_202D_202A_200C_202D_206B_202B_206E_202E_206B_202E_200F_202C_206E_206D_202C_206F_206F_200E_206E_200D_200F_200C_202E_206C_206A_206E_202E_206F_202A_200F_202E_206E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - _200D_200E_206B_206D_206F_206C_206E_206D_200D_206F_206E_202D_200E_206F_200B_202D_202E_206A_202C_206C_206B_206D_200C_206F_202D_200E_202C_202E_202D_200C_206F_200B_202E_202A_202D_200D_202D_202D_202A_200E_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-996412733), new object[3] { savedQuestPreset.Name, list.Count, num7 }); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(32, 2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1859562005)); - defaultInterpolatedStringHandler2.AppendFormatted(savedQuestPreset.Name); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1654360891)); - defaultInterpolatedStringHandler2.AppendFormatted(list.Count); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(175123664)); - text = defaultInterpolatedStringHandler2.ToStringAndClear(); - num = ((num7 <= 0) ? (-1023174905) : (-1023174911)); - break; - } - case 5: - _206E_202B_206A_200C_206D_202B_206A_200F_206D_200D_202D_206B_202E_200B_202C_206B_206C_200F_200D_200E_206B_206A_202A_200D_200E_202B_202C_206C_206F_206C_206A_200C_200C_206F_202C_200E_202B_200C_202E_202D_202E(_chatGui, _200C_202D_206B_206A_206D_206E_202E_202C_206F_200D_202B_202A_200B_200B_206A_206F_200F_200B_200B_206A_206D_200B_202A_200B_200F_206C_202A_202D_206B_202E_200B_206F_202D_202B_200F_200B_202A_200F_200D_200D_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2037075648), exportData.Name, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1595896961)), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - return; - case 3: - list = _202E_206D_202A_200D_200B_206F_206B_206B_200D_202C_200E_206C_206C_206A_206B_202A_206A_202C_206A_202A_202D_202E_206F_202A_200D_206A_202A_202D_206E_202A_200E_200F_202B_202A_200B_206F_200E_206C_206C_200C_202E((IEnumerable<string>)exportData.QuestIds, ref num7); - num = ((list.Count != 0) ? (-1023174909) : (-1023174908)); - break; - case 0: - num = -1023174912; - break; - case 2: - _206E_202B_206A_200C_206D_202B_206A_200F_206D_200D_202D_206B_202E_200B_202C_206B_206C_200F_200D_200E_206B_206A_202A_200D_200E_202B_202C_206C_206F_206C_206A_200C_200C_206F_202C_200E_202B_200C_202E_202D_202E(_chatGui, text, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - return; - } + _chatGui.Print("Preset '" + exportData.Name + "' already exists, skipping.", "Questionable", 576); + return; } + int skippedCount; + List<ElementId> list = ElementId.FromStrings(exportData.QuestIds, out skippedCount); + if (list.Count == 0) + { + _chatGui.PrintError("Preset '" + exportData.Name + "' contains no importable quests.", "Questionable", 576); + return; + } + string key = GeneratePresetKey(exportData.Name); + Configuration.SavedQuestPreset savedQuestPreset = new Configuration.SavedQuestPreset + { + Name = exportData.Name, + Description = exportData.Description, + QuestIds = list, + CreatedAt = DateTime.UtcNow + }; + _configuration.General.SavedPresets[key] = savedQuestPreset; + _pluginInterface.SavePluginConfig(_configuration); + _logger.LogInformation("Imported preset '{PresetName}' with {Count} quests from clipboard, skipped {Skipped} unknown ids", savedQuestPreset.Name, list.Count, skippedCount); + string text = $"Imported preset '{savedQuestPreset.Name}' with {list.Count} quests."; + if (skippedCount > 0) + { + text += $" Skipped {skippedCount} unknown quest ids."; + } + _chatGui.Print(text, "Questionable", 576); } catch (Exception ex) { - _202B_200B_202A_200F_206C_200B_206F_206E_202E_202B_206D_202E_202A_200D_202A_200D_206C_206B_200F_200B_206D_200D_200E_202D_202B_206E_200C_202E_202D_206F_206F_202E_202E_202E_206E_202A_200B_206C_202A_206B_202E((ILogger)_logger, ex, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(26305319), Array.Empty<object>()); - _200F_206C_206F_202C_202B_206A_202A_202D_202D_202D_206F_206F_202C_206A_200F_202B_200D_202D_206B_202D_206E_202C_200E_206B_202D_202C_206F_206B_200C_206C_206E_200E_200B_200F_202C_206F_200F_200C_202E_200D_202E(_chatGui, _202A_206F_202A_206B_202E_200E_200E_200B_202C_202B_206F_200F_206C_202E_206C_206C_202D_206B_206A_200B_206D_206F_206D_200B_206C_202C_206D_206A_206C_202C_202E_206A_206F_200D_206F_206F_200B_206B_206D_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2044904257), _202C_200C_206E_202B_206E_200B_206E_200C_202A_206C_206C_202C_202A_206A_202C_206A_206E_200F_202A_200E_200C_200F_206F_206B_200F_200D_206F_206D_206F_206E_200B_202D_206E_206C_202B_206A_206E_200F_202D_206B_202E(ex)), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); + _logger.LogError(ex, "Failed to import preset from clipboard"); + _chatGui.PrintError("Failed to import preset: " + ex.Message, "Questionable", 576); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void ImportAllPresetsFromClipboard(List<PresetExportData> allExportData) { try @@ -1656,260 +510,78 @@ internal sealed class SavedPresetsComponent int num = 0; int num2 = 0; int num3 = 0; - HashSet<string> hashSet = _configuration.General.SavedPresets.Values.Select((Configuration.SavedQuestPreset p) => p.Name).ToHashSet<string>(_202E_206C_202C_202C_206B_202E_200E_206C_202C_202A_200E_206C_200E_206C_206D_202A_200F_206F_202C_202A_200D_200E_206B_200F_200F_202A_202D_206A_200D_206D_206F_200E_200C_202A_206C_200E_200E_202C_200E_200E_202E()); - int num4; - using (List<PresetExportData>.Enumerator enumerator = allExportData.GetEnumerator()) + HashSet<string> hashSet = _configuration.General.SavedPresets.Values.Select((Configuration.SavedQuestPreset p) => p.Name).ToHashSet<string>(StringComparer.OrdinalIgnoreCase); + foreach (PresetExportData allExportDatum in allExportData) { - num4 = -483703780; - PresetExportData current = default(PresetExportData); - List<ElementId> list = default(List<ElementId>); - int num14 = default(int); - while (true) + if (hashSet.Contains(allExportDatum.Name)) { - int num5 = num4; - int num6 = -483703777; - int num7 = num5; - switch ((num7 | num6) - (num7 & num6)) - { - case 2: - { - int num18 = num2; - num6 = 1; - num7 = num18; - int num19 = num7 ^ num6; - int num20 = num7 & num6; - num2 = num19 + (num20 + num20); - num4 = -483703780; - break; - } - case 6: - current = enumerator.Current; - num4 = ((!hashSet.Contains(current.Name)) ? (-483703784) : (-483703781)); - break; - case 0: - num4 = -483703780; - break; - case 3: - num4 = (enumerator.MoveNext() ? (-483703783) : (-483703782)); - break; - case 7: - { - list = _202E_206D_202A_200D_200B_206F_206B_206B_200D_202C_200E_206C_206C_206A_206B_202A_206A_202C_206A_202A_202D_202E_206F_202A_200D_206A_202A_202D_206E_202A_200E_200F_202B_202A_200B_206F_200E_206C_206C_200C_202E((IEnumerable<string>)current.QuestIds, ref num14); - int num15 = num3; - num6 = num14; - num7 = num15; - int num16 = num7 ^ num6; - int num17 = num7 & num6; - num3 = num16 + (num17 + num17); - num4 = ((list.Count != 0) ? (-483703778) : (-483703779)); - break; - } - case 1: - { - string key = GeneratePresetKey(current.Name); - Configuration.SavedQuestPreset value = new Configuration.SavedQuestPreset - { - Name = current.Name, - Description = current.Description, - QuestIds = list, - CreatedAt = DateTime.UtcNow - }; - _configuration.General.SavedPresets[key] = value; - int num11 = num; - num6 = 1; - num7 = num11; - int num12 = num7 ^ num6; - int num13 = num7 & num6; - num = num12 + (num13 + num13); - num4 = -483703780; - break; - } - case 4: - { - int num8 = num2; - num6 = 1; - num7 = num8; - int num9 = num7 ^ num6; - int num10 = num7 & num6; - num2 = num9 + (num10 + num10); - num4 = -483703780; - break; - } - case 5: - goto end_IL_0061; - } + num2++; continue; - end_IL_0061: - break; } + int skippedCount; + List<ElementId> list = ElementId.FromStrings(allExportDatum.QuestIds, out skippedCount); + num3 += skippedCount; + if (list.Count == 0) + { + num2++; + continue; + } + string key = GeneratePresetKey(allExportDatum.Name); + Configuration.SavedQuestPreset value = new Configuration.SavedQuestPreset + { + Name = allExportDatum.Name, + Description = allExportDatum.Description, + QuestIds = list, + CreatedAt = DateTime.UtcNow + }; + _configuration.General.SavedPresets[key] = value; + num++; } - num4 = ((num <= 0) ? 17213942 : 17213937); - string text = default(string); - while (true) + if (num > 0) { - int num21 = num4; - int num6 = 17213936; - int num7 = num21; - switch ((num7 | num6) - (num7 & num6)) - { - case 4: - { - string text3 = text; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(28, 1); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1996293041)); - defaultInterpolatedStringHandler3.AppendFormatted(num3); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1558859610)); - text = _202A_206F_202A_206B_202E_200E_200E_200B_202C_202B_206F_200F_206C_202E_206C_206C_202D_206B_206A_200B_206D_206F_206D_200B_206C_202C_206D_206A_206C_202C_202E_206A_206F_200D_206F_206F_200B_206B_206D_202E(text3, defaultInterpolatedStringHandler3.ToStringAndClear()); - num4 = 17213938; - break; - } - case 1: - _200B_202C_202B_202C_202C_202E_206B_200D_202D_202A_200C_202D_206B_202B_206E_202E_206B_202E_200F_202C_206E_206D_202C_206F_206F_200E_206E_200D_200F_200C_202E_206C_206A_206E_202E_206F_202A_200F_202E_206E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - num4 = 17213942; - break; - case 5: - num4 = 17213937; - break; - case 0: - { - string text2 = text; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(35, 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(894685187)); - defaultInterpolatedStringHandler2.AppendFormatted(num2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(706771647)); - text = _202A_206F_202A_206B_202E_200E_200E_200B_202C_202B_206F_200F_206C_202E_206C_206C_202D_206B_206A_200B_206D_206F_206D_200B_206C_202C_206D_206A_206C_202C_202E_206A_206F_200D_206F_206F_200B_206B_206D_202E(text2, defaultInterpolatedStringHandler2.ToStringAndClear()); - num4 = 17213939; - break; - } - case 3: - num4 = ((num3 <= 0) ? 17213938 : 17213940); - break; - case 6: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(33, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-629934414)); - defaultInterpolatedStringHandler.AppendFormatted(num); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-433566038)); - text = defaultInterpolatedStringHandler.ToStringAndClear(); - num4 = ((num2 <= 0) ? 17213939 : 17213936); - break; - } - case 2: - _200D_200E_206B_206D_206F_206C_206E_206D_200D_206F_206E_202D_200E_206F_200B_202D_202E_206A_202C_206C_206B_206D_200C_206F_202D_200E_202C_202E_202D_200C_206F_200B_202E_202A_202D_200D_202D_202D_202A_200E_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(473602606), new object[3] { num, num2, num3 }); - _206E_202B_206A_200C_206D_202B_206A_200F_206D_200D_202D_206B_202E_200B_202C_206B_206C_200F_200D_200E_206B_206A_202A_200D_200E_202B_202C_206C_206F_206C_206A_200C_200C_206F_202C_200E_202B_200C_202E_202D_202E(_chatGui, text, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)(ushort)576); - return; - } + _pluginInterface.SavePluginConfig(_configuration); } + string text = $"Imported {num} presets from clipboard."; + if (num2 > 0) + { + text += $" Skipped {num2} (already exist or empty)."; + } + if (num3 > 0) + { + text += $" Skipped {num3} unknown quest ids."; + } + _logger.LogInformation("Imported {Imported} presets from clipboard, skipped {Skipped} presets and {SkippedIds} unknown ids", num, num2, num3); + _chatGui.Print(text, "Questionable", 576); } catch (Exception ex) { - _202B_200B_202A_200F_206C_200B_206F_206E_202E_202B_206D_202E_202A_200D_202A_200D_206C_206B_200F_200B_206D_200D_200E_202D_202B_206E_200C_202E_202D_206F_206F_202E_202E_202E_206E_202A_200B_206C_202A_206B_202E((ILogger)_logger, ex, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-608308180), Array.Empty<object>()); - _200F_206C_206F_202C_202B_206A_202A_202D_202D_202D_206F_206F_202C_206A_200F_202B_200D_202D_206B_202D_206E_202C_200E_206B_202D_202C_206F_206B_200C_206C_206E_200E_200B_200F_202C_206F_200F_200C_202E_200D_202E(_chatGui, _202A_206F_202A_206B_202E_200E_200E_200B_202C_202B_206F_200F_206C_202E_206C_206C_202D_206B_206A_200B_206D_206F_206D_200B_206C_202C_206D_206A_206C_202C_202E_206A_206F_200D_206F_206F_200B_206B_206D_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1675603926), _202C_200C_206E_202B_206E_200B_206E_200C_202A_206C_206C_202C_202A_206A_202C_206A_206E_200F_202A_200E_200C_200F_206F_206B_200F_200D_206F_206D_206F_206E_200B_202D_206E_206C_202B_206A_206E_200F_202D_206B_202E(ex)), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576); + _logger.LogError(ex, "Failed to import presets from clipboard"); + _chatGui.PrintError("Failed to import presets: " + ex.Message, "Questionable", 576); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void AddPresetToPriority(List<ElementId> questIds) { int num = 0; - int num2; - using (List<ElementId>.Enumerator enumerator = questIds.GetEnumerator()) + foreach (ElementId questId in questIds) { - num2 = 953789510; - while (true) + if (_questController.AddQuestPriority(questId)) { - int num3 = num2; - int num4 = 953789511; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 4: - num2 = 953789510; - break; - case 3: - { - ElementId current = enumerator.Current; - num2 = ((!_questController.AddQuestPriority(current)) ? 953789510 : 953789511); - break; - } - case 1: - num2 = (enumerator.MoveNext() ? 953789508 : 953789509); - break; - case 0: - { - int num8 = num; - num4 = 1; - num5 = num8; - int num9 = num5 ^ num4; - int num10 = num5 & num4; - num = num9 + (num10 + num10); - num2 = 953789510; - break; - } - case 2: - goto end_IL_0015; - } - continue; - end_IL_0015: - break; + num++; } } - num2 = ((num <= 0) ? 899476450 : 899476449); - while (true) + if (num > 0) { - int num11 = num2; - int num4 = 899476448; - int num5 = num11; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = 899476449; - break; - case 2: - _200D_200E_206B_206D_206F_206C_206E_206D_200D_206F_206E_202D_200E_206F_200B_202D_202E_206A_202C_206C_206B_206D_200C_206F_202D_200E_202C_202E_202D_200C_206F_200B_202E_202A_202D_200D_202D_202D_202A_200E_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1367806069), new object[1] { num }); - return; - case 1: - { - IChatGui chatGui = _chatGui; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(32, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(901909596)); - defaultInterpolatedStringHandler.AppendFormatted(num); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1925546250)); - _206E_202B_206A_200C_206D_202B_206A_200F_206D_200D_202D_206B_202E_200B_202C_206B_206C_200F_200D_200E_206B_206A_202A_200D_200E_202B_202C_206C_206F_206C_206A_200C_200C_206F_202C_200E_202B_200C_202E_202D_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1179749275), (ushort?)(ushort)576); - num2 = 899476450; - break; - } - } + _chatGui.Print($"Added {num} quests to priority queue.", "Questionable", 576); } + _logger.LogInformation("Added {Count} quests from saved preset to priority list", num); } private List<ElementId> GetAvailableQuests(List<ElementId> questIds) { - return (from questId in questIds.Where(delegate(ElementId questId) - { - int num = (_questFunctions.IsReadyToAcceptQuest(questId) ? (-308827748) : (-308827745)); - while (true) - { - int num2 = num; - int num3 = -308827746; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return true; - case 1: - return _questFunctions.IsQuestAccepted(questId); - case 0: - goto IL_005c; - } - continue; - IL_005c: - num = -308827745; - } - }) - where !_questController.ManualPriorityQuests.Any((Quest q) => _003C_003Ec__DisplayClass41_0._202E_202B_206D_202D_206C_202E_206F_200B_202B_202C_206A_200C_200D_200E_202C_200D_202C_200E_200F_200C_206C_206A_200C_206A_206D_206D_202A_202A_200D_200E_202B_200F_202C_202C_202E_200F_200E_206D_206A_200E_202E(q.Id, questId)) + return (from questId in questIds + where _questFunctions.IsReadyToAcceptQuest(questId) || _questFunctions.IsQuestAccepted(questId) + where !_questController.ManualPriorityQuests.Any((Quest q) => q.Id.Equals(questId)) where _questRegistry.IsKnownQuest(questId) select questId).ToList(); } @@ -1917,293 +589,8 @@ internal sealed class SavedPresetsComponent private List<ElementId> GetAlreadyPriorityQuests(List<ElementId> questIds) { return (from questId in questIds - where _questController.ManualPriorityQuests.Any((Quest q) => _003C_003Ec__DisplayClass42_0._206E_206A_206B_206F_202C_200F_206A_202B_202D_200C_200B_206E_202D_202D_206D_200D_200F_200C_206E_202D_206B_200B_206C_206F_200B_206F_202A_202E_202C_202B_202A_202C_206F_200F_202D_206E_202D_202C_202E_200C_202E(q.Id, questId)) + where _questController.ManualPriorityQuests.Any((Quest q) => q.Id.Equals(questId)) where !_questFunctions.IsQuestComplete(questId) select questId).ToList(); } - - static Vector2 _206D_206E_206E_202C_206F_200C_202C_202C_200B_200B_200B_200D_206B_206F_200C_202D_202D_200B_200C_202A_206B_206B_206A_200B_206E_206F_202E_206A_200C_202B_206E_206C_206A_200F_206F_202D_200B_202B_206F_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static ImGuiStylePtr _200F_202E_202B_202C_206B_206C_200B_202E_202C_200C_206D_206C_206D_206B_200B_200C_206F_206B_200E_200B_202C_202C_200E_202B_206A_202E_200B_200E_202A_202C_206D_206D_202D_202D_202D_206E_200E_202C_206B_202D_202E() - { - return ImGui.GetStyle(); - } - - static void _206D_200E_200C_200D_200D_206D_206A_200F_206E_206A_206B_206B_200F_202A_200B_206D_202C_206C_202E_206F_206B_202B_200E_200B_200D_206E_200C_200F_206C_202B_206C_200C_202D_200C_200B_206E_202D_206A_206B_206B_202E(float P_0) - { - ImGui.SetNextItemWidth(P_0); - } - - static bool _206A_202B_206E_200F_206F_206F_202E_202D_200F_200E_200C_202B_206A_206D_206A_206F_202B_206D_200E_206B_202E_202D_202B_200C_206D_202D_202E_200C_200C_202D_206E_202C_202D_202C_206B_206F_206D_206D_202D_200E_202E(ImU8String P_0, ImU8String P_1, ref string P_2, int P_3, ImGuiInputTextFlags P_4, ImGui.ImGuiInputTextCallbackDelegate P_5) - { - return ImGui.InputTextWithHint(P_0, P_1, ref P_2, P_3, P_4, P_5); - } - - static bool _206E_206E_200F_200F_200C_206C_200D_206B_200C_200D_200D_202A_206A_206A_206D_206B_200C_200E_206E_200C_200B_200B_206E_206B_206D_200E_200E_206B_200D_206F_200F_206E_200C_202B_206F_202D_200D_206C_206D_202A_202E(string P_0) - { - return string.IsNullOrWhiteSpace(P_0); - } - - static ImRaii.DisabledDisposable _202B_206D_202A_200D_206A_206D_202B_200C_206E_206B_206D_200D_202D_206B_200E_206C_206A_200C_200C_202B_206D_206C_202E_200C_200F_200D_200E_206D_200C_206B_202D_200E_200C_202E_200D_202B_206B_202B_202E_202B_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static void _206A_200B_206A_206D_202E_206C_200D_206E_200D_202D_206A_200B_200C_206F_200C_202C_206E_206A_200B_200B_202E_200C_200E_202D_200E_202C_202E_202A_206E_206B_206C_200D_206C_206C_200E_200B_200B_202C_202C_200F_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _206C_206E_206C_200F_202C_202E_200F_202A_200D_200B_202A_206E_200E_206D_202C_200E_202A_200F_200B_200E_202A_206D_200D_202E_206B_202C_206E_206E_202B_200E_206B_202B_202B_202D_200E_206B_202A_200B_200C_202E() - { - ImGui.SameLine(); - } - - static bool _200F_206B_200D_202D_206C_206B_200E_202B_206A_206D_200E_200E_206B_200B_200E_200F_206D_202D_206A_206E_200B_206A_206B_202A_200B_206D_206B_206D_200B_206B_200F_202E_202A_200C_206C_206E_200C_206C_202B_202A_202E(ImGuiHoveredFlags P_0) - { - return ImGui.IsItemHovered(P_0); - } - - static void _200E_206D_206C_200F_206B_200F_200F_202D_206F_202E_202D_206F_206A_206A_202A_200D_206F_202C_206F_206F_206A_202B_200C_202A_206C_200B_202B_200D_202D_202B_202A_202A_200C_206A_206F_206D_200C_202B_206E_202B_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } - - static ImRaii.ColorDisposable _206D_202B_200B_200E_206C_200B_206C_202E_200E_200E_200F_206F_200B_200E_200C_200B_206E_206A_206D_200F_206F_200F_206E_200F_202E_202E_200B_200E_202C_206E_200C_206A_206B_206B_202A_206F_202E_200D_202C_206B_202E(ImGuiCol P_0, Vector4 P_1, bool P_2) - { - return ImRaii.PushColor(P_0, P_1, P_2); - } - - static Vector2 _206D_206F_206E_206F_202D_200B_206D_206D_202B_206E_202B_206A_200F_200F_202D_200D_200D_206D_200C_206E_202C_206C_206D_202D_202A_200C_206F_200B_200C_202E_206C_202D_206A_202E_206F_200E_206A_206E_202C_202E_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static float _202D_206E_200D_202B_206E_206F_202C_202B_200C_202E_200F_202C_206D_202E_206D_202D_206F_200B_206A_206B_202B_206E_200D_206C_200D_206C_200E_202A_200D_206B_206A_206C_202D_206F_206F_200E_206D_202D_202D_206A_202E() - { - return ImGui.GetCursorPosX(); - } - - static void _202D_200B_206C_202C_202D_206D_202E_200E_200F_206B_202E_206B_202D_206D_206B_200C_200D_202C_200B_206D_206A_206B_202D_202C_202C_206D_200B_200E_202C_206B_200C_202C_202D_200E_206D_202C_206E_200F_200D_202A_202E(float P_0) - { - ImGui.SetCursorPosX(P_0); - } - - static void _202A_200B_202B_200B_206D_206A_202A_206A_206F_200C_206E_200E_206A_200F_202B_206E_202B_202C_202A_202C_202B_202A_202C_200C_200F_206E_200F_202C_206F_206B_206F_202D_202E_206F_202B_200E_206A_206B_206A_202E_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static void _202C_206A_202E_206B_206B_206C_202B_206A_200E_206B_202D_200E_200C_206B_206E_206F_200F_206F_202D_206C_206A_206A_206A_202E_200B_202B_202E_206E_202A_200F_202E_206D_202A_206D_200D_200F_206A_206A_202A_202E() - { - ImGui.Spacing(); - } - - static bool _206E_202E_202A_202A_200F_206D_202C_206D_206C_202C_200D_200C_200C_202E_200B_200C_206F_200F_206A_206F_200C_206E_200D_200C_202C_202A_202E_202B_200C_202C_200C_200F_206F_202B_200E_206C_206A_206C_206A_202C_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200B_202C_202B_202C_202C_202E_206B_200D_202D_202A_200C_202D_206B_202B_206E_202E_206B_202E_200F_202C_206E_206D_202C_206F_206F_200E_206E_200D_200F_200C_202E_206C_206A_206E_202E_206F_202A_200F_202E_206E_202E(IDalamudPluginInterface P_0, IPluginConfiguration P_1) - { - P_0.SavePluginConfig(P_1); - } - - static void _200D_200E_206B_206D_206F_206C_206E_206D_200D_206F_206E_202D_200E_206F_200B_202D_202E_206A_202C_206C_206B_206D_200C_206F_202D_200E_202C_202E_202D_200C_206F_200B_202E_202A_202D_200D_202D_202D_202A_200E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static ImRaii.IdDisposable _202D_206A_200B_200F_206F_206B_206D_206F_202E_206C_206F_200B_206C_200C_202B_200C_202E_206D_202C_202C_202C_202D_206F_206C_206B_202B_206D_200C_200F_206A_206E_202E_206E_206F_206B_206D_206A_206D_202B_202A_202E(ImU8String P_0, bool P_1) - { - return ImRaii.PushId(P_0, P_1); - } - - static bool _202A_200B_206A_200E_200C_202A_202D_200D_206F_200F_206C_202B_200D_200F_200F_206C_206B_206B_200E_200F_202B_202D_200F_200C_206A_206A_206C_206C_206D_200F_206B_206A_206F_202E_202C_206A_202C_206C_202A_202D_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static float _206E_206C_206A_206B_200C_200B_202E_200C_206D_200E_202C_202C_200C_200F_206E_202A_200F_200B_202D_200E_200E_202C_206D_202E_200B_200E_202E_200E_206A_206A_200E_200B_206D_200D_202A_202C_200E_202E_202C_202E_202E() - { - return ImGui.GetFrameHeight(); - } - - static Vector2 _206E_200F_206D_202E_202D_206F_206F_206B_202E_202E_206E_202B_206E_202B_206D_206F_206C_202B_202D_202C_200E_202B_200D_206B_202E_202B_202E_206F_200F_206E_202D_206B_202B_206C_206E_206F_200E_200C_206B_200C_202E() - { - return ImGui.GetCursorScreenPos(); - } - - static bool _202C_202A_202B_202A_206C_206C_200E_206B_206A_202C_200D_206F_202B_206D_206C_206D_200D_202A_200B_206F_200B_202A_202C_200C_202A_202D_202D_200B_206B_202C_206E_206B_206C_202C_202C_206C_200E_206C_200F_200C_202E(ImU8String P_0, Vector2 P_1) - { - return ImGui.Button(P_0, P_1); - } - - static ImDrawListPtr _200D_206C_200D_206E_202B_200B_202E_200B_206F_200C_202E_202C_200B_206F_206F_202B_200B_202C_200C_206B_200F_200C_200C_200D_202C_200F_202E_202B_206D_206B_206C_206D_202A_200C_202C_206C_202D_202D_200B_206B_202E() - { - return ImGui.GetWindowDrawList(); - } - - static string _206B_206B_206C_206F_200F_206B_200F_206A_206D_202B_206F_202C_202B_200F_206B_202B_206D_206F_206C_206D_206D_202C_206D_200F_206C_200E_206D_202C_202A_200E_202B_200D_206D_202A_206A_200E_202E_206F_202D_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static ImFontPtr _200C_200E_202D_202E_206D_202A_206B_200E_200C_206E_206F_202E_202B_202E_202A_202A_202A_202C_200E_206C_202C_200B_200B_202B_200C_202B_202C_200F_202D_206C_200C_206D_206A_200D_206D_206A_206F_200C_200C_206D_202E() - { - return UiBuilder.IconFont; - } - - static ImRaii.FontDisposable _206D_206A_200B_202D_206A_202E_200C_206B_202C_206D_206B_206F_206A_206B_206B_206D_206D_200D_200D_206E_202A_206A_202C_200B_202D_206F_202C_200B_200E_202A_202D_200B_200D_202B_200F_206E_206A_202C_202B_202E_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static float _202B_202A_206C_202B_206A_200B_206C_206F_202B_202D_202D_202D_206E_206B_200B_200B_202A_202E_206D_202D_200D_200E_206E_202D_206C_206C_200F_200B_202B_200F_202E_202D_206B_202D_200D_202D_206D_206D_206A_200F_202E() - { - return ImGui.GetTextLineHeight(); - } - - static uint _202D_200D_206D_202A_202B_206D_200B_202A_206A_200E_206F_206B_200D_202C_202C_200D_200D_200B_206E_206F_202A_206A_206B_200F_202C_206C_206D_200F_200F_206E_202C_202C_200C_202C_200B_202C_206D_206E_206D_202E_202E(ImGuiCol P_0) - { - return ImGui.GetColorU32(P_0); - } - - static float _206B_206E_200C_200E_206C_202E_200C_202B_202D_200B_202C_202E_200E_206A_202E_202E_202A_206F_206D_206F_206E_206A_200E_206C_200F_202D_200F_206D_206C_200C_206C_206D_206C_202B_200D_200B_200C_200D_206B_206F_202E() - { - return ImGui.GetFontSize(); - } - - static uint _206E_206F_202C_206D_200E_202A_206B_202D_206C_200B_202E_206B_200D_200F_202A_200F_200C_206B_206C_200C_202D_206E_200E_202C_206C_200E_202D_206C_206D_202D_206E_202C_206E_206F_202D_202C_202D_202D_200D_206B_202E(Vector4 P_0) - { - return ImGui.ColorConvertFloat4ToU32(P_0); - } - - static string _206D_200B_206C_200B_206C_206C_200C_200E_202C_206B_206C_200B_200D_200E_200F_202E_206B_202B_200F_202E_200C_206F_202C_206A_206D_200C_206E_202E_206F_206B_202D_202D_200F_202C_202A_206D_200C_206F_202B_202D_202E(string P_0) - { - return P_0.Trim(); - } - - static bool _206B_206A_206C_206A_206E_202A_202A_200C_200E_200C_202E_202C_202D_200E_206A_200F_206E_202D_206B_202B_206B_202D_206E_206C_206F_206F_206C_202B_200B_202B_206A_202D_206E_202B_202C_200C_206A_200E_200B_202D_202E() - { - return ImGui.IsItemHovered(); - } - - static string _202E_206C_200E_206D_206B_206E_206D_202C_206A_200F_200D_202C_202C_206B_202A_200F_202B_202D_200D_200C_202A_206F_202B_200E_206D_206D_202A_202C_206B_202C_202D_202E_202A_200E_206D_202D_200D_202E_202A_200F_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _206E_200D_200B_206C_202B_206D_206B_200D_206A_200C_200D_206C_206B_200B_206D_200E_202D_202C_202E_200B_200C_206D_200C_200B_202D_206C_200E_200B_200B_200F_202C_202A_206C_200F_206C_200F_202A_206D_206C_206E_202E(ImGuiKey P_0) - { - return ImGui.IsKeyDown(P_0); - } - - static void _206E_202B_206A_200C_206D_202B_206A_200F_206D_200D_202D_206B_202E_200B_202C_206B_206C_200F_200D_200E_206B_206A_202A_200D_200E_202B_202C_206C_206F_206C_206A_200C_200C_206F_202C_200E_202B_200C_202E_202D_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); - } - - static string _202A_200C_202E_206F_206E_202A_202B_202A_202A_206B_206C_206F_206D_202E_200E_206B_206E_206C_200B_206F_202A_206D_206C_206E_206A_206D_200C_202C_202D_202D_206E_206F_206F_200D_202C_206E_202E_206B_206D_206B_202E(string P_0) - { - return P_0.ToUpperInvariant(); - } - - static string _200B_206C_206C_202D_200E_200C_200D_202D_202D_206C_200B_200F_206D_202D_202C_202B_206D_202C_206D_200E_200F_200E_200E_202C_206B_206C_202E_200B_206C_200C_206F_202B_200D_200F_200C_206E_202A_200E_202D_202B_202E(string P_0, char P_1, char P_2) - { - return P_0.Replace(P_1, P_2); - } - - static string _202A_206F_202A_206B_202E_200E_200E_200B_202C_202B_206F_200F_206C_202E_206C_206C_202D_206B_206A_200B_206D_206F_206D_200B_206C_202C_206D_206A_206C_202C_202E_206A_206F_200D_206F_206F_200B_206B_206D_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static string _206D_206F_200E_202A_200F_200B_200B_202A_202E_206B_206B_206F_200E_202E_206C_206C_200B_202D_202D_206B_206E_206E_200E_200F_202D_206B_206B_206B_200F_206E_202E_200F_200C_206F_206E_206C_206E_200E_200D_200E_202E(object P_0) - { - return JsonConvert.SerializeObject(P_0); - } - - static Encoding _206A_202D_200E_206F_206F_202A_200C_202D_202E_202D_200F_206D_206D_202E_206E_206E_202E_206B_206F_200C_206E_200C_206B_202D_200E_206E_206C_206A_202D_202B_206A_206B_202C_206F_202D_206B_206E_200B_200B_202A_202E() - { - return Encoding.UTF8; - } - - static byte[] _206E_206F_202B_202B_202E_206D_202A_206B_206D_206A_206C_202C_206F_200C_202D_200E_206B_200F_202D_202E_200D_206E_200B_202D_202A_206A_200C_206D_200B_206E_200E_200D_202B_200B_200D_202A_200C_200B_200B_206C_202E(Encoding P_0, string P_1) - { - return P_0.GetBytes(P_1); - } - - static string _206B_206C_206F_200E_206C_202C_206A_202A_206D_206B_200D_206A_206B_200D_200E_200B_200C_200F_206F_206A_200C_206E_202B_202D_206A_202A_206A_200B_200D_202B_202A_206C_202B_200D_206B_202D_200D_206E_200D_200F_202E(byte[] P_0) - { - return Convert.ToBase64String(P_0); - } - - static void _200F_200B_200B_200B_206F_200B_202D_202B_200B_206F_202A_200C_206A_206D_206B_202D_202C_202C_206E_206E_200C_200D_206D_202D_202C_200C_200C_206A_202D_206C_200E_202B_200F_202E_202B_200B_200C_206E_206F_206E_202E(ImU8String P_0) - { - ImGui.SetClipboardText(P_0); - } - - static string _200C_202D_206B_206A_206D_206E_202E_202C_206F_200D_202B_202A_200B_200B_206A_206F_200F_200B_200B_206A_206D_200B_202A_200B_200F_206C_202A_202D_206B_202E_200B_206F_202D_202B_200F_200B_202A_200F_200D_200D_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static bool _202C_202C_206C_200F_200C_200B_206C_206A_200B_206A_202C_202E_206F_206B_206B_206B_202D_206D_200F_202D_202B_206F_206D_202A_200D_206C_206C_200C_200E_206D_200E_200D_200F_206B_200E_206D_206B_200C_202D_200D_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.StartsWith(P_1, P_2); - } - - static int _206B_200C_200E_202A_200B_206B_206C_200C_202C_202A_200B_206B_200C_202A_206F_202E_202E_202E_206D_202C_200D_206B_200B_200C_206E_206E_206C_202A_200E_206B_206E_200E_206B_206F_202C_206B_200C_206D_202E_206B_202E(string P_0) - { - return P_0.Length; - } - - static string _200C_200E_202E_206B_206F_202D_202A_200C_200D_202B_206B_202B_202A_202C_206A_200E_202D_206E_202E_202E_200D_200D_202E_202A_206A_206C_206F_200B_202C_206C_206E_206D_200F_202A_202D_202C_206A_200C_202D_200C_202E(string P_0, int P_1) - { - return P_0.Substring(P_1); - } - - static byte[] _200D_206F_202E_206C_200D_206E_202D_202E_206C_206F_200E_202C_206A_206E_200F_206C_206B_202B_206F_202D_202E_200F_200E_202D_206A_206D_206D_202C_206D_202E_206A_200F_200D_200F_200F_200B_206B_202A_202A_202B_202E(string P_0) - { - return Convert.FromBase64String(P_0); - } - - static string _206F_206C_202A_202C_202B_206A_206D_206F_200D_200E_206E_200C_202D_206D_202D_200C_206B_202E_200F_200C_202B_206C_202C_206C_200C_202A_200F_202A_202E_200C_202B_206D_200C_200E_200E_200F_200E_206B_200D_206B_202E(Encoding P_0, byte[] P_1) - { - return P_0.GetString(P_1); - } - - static void _202C_206D_206A_206B_202E_202D_200D_202A_200C_206A_206D_202E_206A_200F_206E_206D_206C_202E_206F_206D_202A_206C_206A_202B_206D_206C_206A_200E_200C_200B_202D_202A_206F_206D_202E_202B_200C_202D_206E_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogDebug(P_1, P_2, P_3); - } - - static List<ElementId> _202E_206D_202A_200D_200B_206F_206B_206B_200D_202C_200E_206C_206C_206A_206B_202A_206A_202C_206A_202A_202D_202E_206F_202A_200D_206A_202A_202D_206E_202A_200E_200F_202B_202A_200B_206F_200E_206C_206C_200C_202E(IEnumerable<string> P_0, ref int P_1) - { - return ElementId.FromStrings(P_0, out P_1); - } - - static void _200F_206C_206F_202C_202B_206A_202A_202D_202D_202D_206F_206F_202C_206A_200F_202B_200D_202D_206B_202D_206E_202C_200E_206B_202D_202C_206F_206B_200C_206C_206E_200E_200B_200F_202C_206F_200F_200C_202E_200D_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } - - static void _202B_200B_202A_200F_206C_200B_206F_206E_202E_202B_206D_202E_202A_200D_202A_200D_206C_206B_200F_200B_206D_200D_200E_202D_202B_206E_200C_202E_202D_206F_206F_202E_202E_202E_206E_202A_200B_206C_202A_206B_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - - static string _202C_200C_206E_202B_206E_200B_206E_200C_202A_206C_206C_202C_202A_206A_202C_206A_206E_200F_202A_200E_200C_200F_206F_206B_200F_200D_206F_206D_206F_206E_200B_202D_206E_206C_202B_206A_206E_200F_202D_206B_202E(Exception P_0) - { - return P_0.Message; - } - - static StringComparer _202E_206C_202C_202C_206B_202E_200E_206C_202C_202A_200E_206C_200E_206C_206D_202A_200F_206F_202C_202A_200D_200E_206B_200F_200F_202A_202D_206A_200D_206D_206F_200E_200C_202A_206C_200E_200E_202C_200E_200E_202E() - { - return StringComparer.OrdinalIgnoreCase; - } } diff --git a/Questionable/Questionable.Windows.QuestComponents/ValidationDetailsRenderer.cs b/Questionable/Questionable.Windows.QuestComponents/ValidationDetailsRenderer.cs index 5d23ce2..76c69c9 100644 --- a/Questionable/Questionable.Windows.QuestComponents/ValidationDetailsRenderer.cs +++ b/Questionable/Questionable.Windows.QuestComponents/ValidationDetailsRenderer.cs @@ -3,12 +3,10 @@ using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using System.Text.RegularExpressions; using Dalamud.Bindings.ImGui; using Dalamud.Interface; using Dalamud.Interface.Colors; -using Dalamud.Interface.ManagedFontAtlas; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin; using Questionable.Data; @@ -20,208 +18,6 @@ namespace Questionable.Windows.QuestComponents; internal sealed class ValidationDetailsRenderer { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static MatchEvaluator _003C_003E9__8_0; - - public static MatchEvaluator _003C_003E9__8_1; - - public static Func<string, string> _003C_003E9__13_0; - - public static Func<string, bool> _003C_003E9__13_1; - - internal string _003CCleanJsonText_003Eb__8_0(Match match) - { - int result; - int num = ((!int.TryParse(_202A_206E_206D_202C_200D_206D_200F_206D_206B_202C_200D_206C_202B_206D_200F_200E_202C_200D_202D_206F_206C_206B_200C_202D_206C_206D_202D_200F_202D_200B_202B_206F_200F_202D_202C_202C_200E_206C_200B_202E_202E((Capture)_200C_206D_206E_206D_206F_206A_202B_200C_206F_200F_200B_202A_200E_202E_202A_202A_202B_200F_200F_200F_206D_206D_202E_202E_206C_200D_202D_206F_200F_206D_202E_202B_206D_202D_200C_202C_202A_200B_202E_206F_202E(_202B_200B_200C_202D_200F_206C_202B_206C_206A_206B_202D_202D_206E_206F_200F_206A_206E_202B_206D_202C_206C_200D_200D_206C_206E_202D_202B_202C_206E_202C_206A_200D_200F_202E_202C_200E_202C_200C_206D_206F_202E(match), 1)), NumberStyles.HexNumber, _206E_202A_202B_206B_202C_202E_200E_200F_202E_206B_206B_202B_200B_202B_206E_200C_202E_202D_202A_202B_206F_200D_202C_200B_202A_200D_206F_206D_202D_200B_206F_200F_206A_202E_200E_206F_206A_206E_200C_202E(), out result)) ? (-78182920) : (-78182919)); - while (true) - { - int num2 = num; - int num3 = -78182920; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0065; - case 0: - return _202A_206E_206D_202C_200D_206D_200F_206D_206B_202C_200D_206C_202B_206D_200F_200E_202C_200D_202D_206F_206C_206B_200C_202D_206C_206D_202D_200F_202D_200B_202B_206F_200F_202D_202C_202C_200E_206C_200B_202E_202E((Capture)match); - case 1: - return ((char)result).ToString(); - } - continue; - IL_0065: - num = -78182919; - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal string _003CCleanJsonText_003Eb__8_1(Match match) - { - string text = _202A_206E_206D_202C_200D_206D_200F_206D_206B_202C_200D_206C_202B_206D_200F_200E_202C_200D_202D_206F_206C_206B_200C_202D_206C_206D_202D_200F_202D_200B_202B_206F_200F_202D_202C_202C_200E_206C_200B_202E_202E((Capture)_200C_206D_206E_206D_206F_206A_202B_200C_206F_200F_200B_202A_200E_202E_202A_202A_202B_200F_200F_200F_206D_206D_202E_202E_206C_200D_202D_206F_200F_206D_202E_202B_206D_202D_200C_202C_202A_200B_202E_206F_202E(_202B_200B_200C_202D_200F_206C_202B_206C_206A_206B_202D_202D_206E_206F_200F_206A_206E_202B_206D_202C_206C_200D_200D_206C_206E_202D_202B_202C_206E_202C_206A_200D_200F_202E_202C_200E_202C_200C_206D_206F_202E(match), 1)); - int num = ((text == null) ? 1436972652 : 1436972649); - string result = default(string); - char c = default(char); - while (true) - { - int num2 = num; - int num3 = 1436972646; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 12: - return result; - case 4: - num = 1436972652; - break; - case 7: - num = ((c == '\\') ? 1436972656 : 1436972660); - break; - case 9: - num = ((c == 't') ? 1436972658 : 1436972659); - break; - case 0: - num = 1436972652; - break; - case 25: - result = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(450513600); - num = 1436972650; - break; - case 22: - result = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1093876266); - num = 1436972650; - break; - case 24: - c = _200E_202A_200C_202C_206B_202A_202B_206C_206D_200D_206E_200D_200D_200D_200B_202E_200C_202E_200E_200F_202E_202C_202C_202D_202A_200F_206F_202C_200E_200F_202C_200B_202D_206E_206C_200E_206F_200B_200C_206E_202E(text, 0); - num = (((uint)c > 98u) ? 1436972644 : 1436972662); - break; - case 1: - num = ((c == '"') ? 1436972653 : 1436972668); - break; - case 8: - result = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-976057447); - num = 1436972650; - break; - case 18: - num = ((c == 'b') ? 1436972671 : 1436972657); - break; - case 5: - num = ((c == 'f') ? 1436972648 : 1436972645); - break; - case 15: - { - int num7 = _206C_206A_206E_202A_200D_200E_206D_202A_206E_200F_200F_200B_202D_200B_206E_206B_206C_206E_206E_206E_200B_202C_206F_206A_200E_202B_206E_200F_206D_206B_206B_202A_200D_206B_200C_200F_200D_200F_202E_206E_202E(text); - num = ((num7 != 1) ? 1436972652 : 1436972670); - break; - } - case 3: - num = ((c == 'n') ? 1436972654 : 1436972642); - break; - case 23: - num = 1436972652; - break; - case 14: - result = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1138276974); - num = 1436972650; - break; - case 19: - num = 1436972649; - break; - case 17: - result = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1680133376); - num = 1436972650; - break; - case 21: - num = 1436972652; - break; - case 10: - result = _202A_206E_206D_202C_200D_206D_200F_206D_206B_202C_200D_206C_202B_206D_200F_200E_202C_200D_202D_206F_206C_206B_200C_202D_206C_206D_202D_200F_202D_200B_202B_206F_200F_202D_202C_202C_200E_206C_200B_202E_202E((Capture)match); - num = 1436972650; - break; - case 20: - result = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1365294164); - num = 1436972650; - break; - case 26: - num = ((c == '/') ? 1436972663 : 1436972646); - break; - case 16: - num = (((uint)c > 47u) ? 1436972641 : 1436972647); - break; - case 2: - num = (((uint)c > 110u) ? 1436972640 : 1436972643); - break; - case 6: - num = ((c == 'r') ? 1436972651 : 1436972655); - break; - case 13: - result = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1154172741); - num = 1436972650; - break; - case 11: - result = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(948996293); - num = 1436972650; - break; - } - } - } - - internal string _003CDrawDisabledTribesDetails_003Eb__13_0(string x) - { - return _202B_200D_202D_202D_200F_206A_206F_206E_200E_206C_206B_200E_202B_200B_202D_206E_202A_206F_206B_200F_202B_200B_206B_206E_206F_202A_206C_200F_206E_202D_206D_206D_206E_200F_202C_200D_202B_200D_206B_202D_202E(x); - } - - internal bool _003CDrawDisabledTribesDetails_003Eb__13_1(string x) - { - return !_200C_200C_206E_206F_200D_206D_202C_206A_202B_206E_206C_202D_202E_202B_200C_200E_202A_202B_206B_200D_200D_200B_202E_202A_202A_200E_206B_200B_206B_202B_200E_200E_206A_200F_202D_206A_206F_202C_202E_202C_202E(x); - } - - static GroupCollection _202B_200B_200C_202D_200F_206C_202B_206C_206A_206B_202D_202D_206E_206F_200F_206A_206E_202B_206D_202C_206C_200D_200D_206C_206E_202D_202B_202C_206E_202C_206A_200D_200F_202E_202C_200E_202C_200C_206D_206F_202E(Match P_0) - { - return P_0.Groups; - } - - static Group _200C_206D_206E_206D_206F_206A_202B_200C_206F_200F_200B_202A_200E_202E_202A_202A_202B_200F_200F_200F_206D_206D_202E_202E_206C_200D_202D_206F_200F_206D_202E_202B_206D_202D_200C_202C_202A_200B_202E_206F_202E(GroupCollection P_0, int P_1) - { - return P_0[P_1]; - } - - static string _202A_206E_206D_202C_200D_206D_200F_206D_206B_202C_200D_206C_202B_206D_200F_200E_202C_200D_202D_206F_206C_206B_200C_202D_206C_206D_202D_200F_202D_200B_202B_206F_200F_202D_202C_202C_200E_206C_200B_202E_202E(Capture P_0) - { - return P_0.Value; - } - - static CultureInfo _206E_202A_202B_206B_202C_202E_200E_200F_202E_206B_206B_202B_200B_202B_206E_200C_202E_202D_202A_202B_206F_200D_202C_200B_202A_200D_206F_206D_202D_200B_206F_200F_206A_202E_200E_206F_206A_206E_200C_202E() - { - return CultureInfo.InvariantCulture; - } - - static int _206C_206A_206E_202A_200D_200E_206D_202A_206E_200F_200F_200B_202D_200B_206E_206B_206C_206E_206E_206E_200B_202C_206F_206A_200E_202B_206E_200F_206D_206B_206B_202A_200D_206B_200C_200F_200D_200F_202E_206E_202E(string P_0) - { - return P_0.Length; - } - - static char _200E_202A_200C_202C_206B_202A_202B_206C_206D_200D_206E_200D_200D_200D_200B_202E_200C_202E_200E_200F_202E_202C_202C_202D_202A_200F_206F_202C_200E_200F_202C_200B_202D_206E_206C_200E_206F_200B_200C_206E_202E(string P_0, int P_1) - { - return P_0[P_1]; - } - - static string _202B_200D_202D_202D_200F_206A_206F_206E_200E_206C_206B_200E_202B_200B_202D_206E_202A_206F_206B_200F_202B_200B_206B_206E_206F_202A_206C_200F_206E_202D_206D_206D_206E_200F_202C_200D_202B_200D_206B_202D_202E(string P_0) - { - return P_0.Trim(); - } - - static bool _200C_200C_206E_206F_200D_206D_202C_206A_202B_206E_206C_202D_202E_202B_200C_200E_202A_202B_206B_200D_200D_200B_202E_202A_202A_200E_206B_200B_206B_202B_200E_200E_206A_200F_202D_206A_206F_202C_202E_202C_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - } - private readonly QuestData _questData; private readonly IDalamudPluginInterface _pluginInterface; @@ -230,11 +26,11 @@ internal sealed class ValidationDetailsRenderer private readonly Dictionary<int, bool> _openDetailWindows = new Dictionary<int, bool>(); - private static readonly Regex UnicodeEscapeRegex = _202B_202E_206B_206B_200D_202B_202C_202A_200E_206E_202B_200B_202B_206E_200B_200C_202E_200E_206B_206A_206F_202C_200B_206A_200D_206A_200F_206B_206C_206B_200F_200E_206E_206E_206C_202B_202A_206D_206B_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-614545086), RegexOptions.Compiled); + private static readonly Regex UnicodeEscapeRegex = new Regex("\\\\u([0-9A-Fa-f]{4})", RegexOptions.Compiled); - private static readonly Regex JsonEscapeRegex = _202B_202E_206B_206B_200D_202B_202C_202A_200E_206E_202B_200B_202B_206E_200B_200C_202E_200E_206B_206A_206F_202C_200B_206A_200D_206A_200F_206B_206C_206B_200F_200E_206E_206E_206C_202B_202A_206D_206B_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-619826859), RegexOptions.Compiled); + private static readonly Regex JsonEscapeRegex = new Regex("\\\\(.)", RegexOptions.Compiled); - private static readonly Regex ConsecutiveQuotesRegex = _202B_202E_206B_206B_200D_202B_202C_202A_200E_206E_202B_200B_202B_206E_200B_200C_202E_200E_206B_206A_206F_202C_200B_206A_200D_206A_200F_206B_206C_206B_200F_200E_206E_206E_206C_202B_202A_206D_206B_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1286690539), RegexOptions.Compiled); + private static readonly Regex ConsecutiveQuotesRegex = new Regex("\"{2,}", RegexOptions.Compiled); public ValidationDetailsRenderer(QuestData questData, IDalamudPluginInterface pluginInterface) { @@ -242,170 +38,31 @@ internal sealed class ValidationDetailsRenderer _pluginInterface = pluginInterface; } - [MethodImpl(MethodImplOptions.NoInlining)] public static string CleanJsonText(string text) { - int num = ((!_206F_202B_202A_200C_206B_206E_206D_202A_206C_202D_206E_200C_200D_200E_202E_206B_206F_202B_200B_200C_200B_206C_206D_200F_202E_202D_206F_206F_206C_200D_206E_200D_200E_206D_202E_200F_202D_206F_202A_206D_202E(text)) ? 1031753240 : 1031753244); - while (true) + if (string.IsNullOrEmpty(text)) { - int num2 = num; - int num3 = 1031753240; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - text = _206B_202D_206D_202B_202C_202A_206D_200E_202A_202B_200B_206D_202D_202B_206D_200C_200D_206A_202D_206B_206F_206E_200E_202E_200C_200C_206A_202E_200C_206E_202E_202B_200C_202D_202E_206D_200C_202A_200F_206A_202E(UnicodeEscapeRegex, text, (MatchEvaluator)delegate(Match match) - { - int result; - int num7 = ((!int.TryParse(_003C_003Ec._202A_206E_206D_202C_200D_206D_200F_206D_206B_202C_200D_206C_202B_206D_200F_200E_202C_200D_202D_206F_206C_206B_200C_202D_206C_206D_202D_200F_202D_200B_202B_206F_200F_202D_202C_202C_200E_206C_200B_202E_202E((Capture)_003C_003Ec._200C_206D_206E_206D_206F_206A_202B_200C_206F_200F_200B_202A_200E_202E_202A_202A_202B_200F_200F_200F_206D_206D_202E_202E_206C_200D_202D_206F_200F_206D_202E_202B_206D_202D_200C_202C_202A_200B_202E_206F_202E(_003C_003Ec._202B_200B_200C_202D_200F_206C_202B_206C_206A_206B_202D_202D_206E_206F_200F_206A_206E_202B_206D_202C_206C_200D_200D_206C_206E_202D_202B_202C_206E_202C_206A_200D_200F_202E_202C_200E_202C_200C_206D_206F_202E(match), 1)), NumberStyles.HexNumber, _003C_003Ec._206E_202A_202B_206B_202C_202E_200E_200F_202E_206B_206B_202B_200B_202B_206E_200C_202E_202D_202A_202B_206F_200D_202C_200B_202A_200D_206F_206D_202D_200B_206F_200F_206A_202E_200E_206F_206A_206E_200C_202E(), out result)) ? (-78182920) : (-78182919)); - while (true) - { - int num8 = num7; - int num9 = -78182920; - int num10 = num8; - switch ((num10 | num9) - (num10 & num9)) - { - case 2: - goto IL_0065; - case 0: - return _003C_003Ec._202A_206E_206D_202C_200D_206D_200F_206D_206B_202C_200D_206C_202B_206D_200F_200E_202C_200D_202D_206F_206C_206B_200C_202D_206C_206D_202D_200F_202D_200B_202B_206F_200F_202D_202C_202C_200E_206C_200B_202E_202E((Capture)match); - case 1: - return ((char)result).ToString(); - } - continue; - IL_0065: - num7 = -78182919; - } - }); - text = _206B_202D_206D_202B_202C_202A_206D_200E_202A_202B_200B_206D_202D_202B_206D_200C_200D_206A_202D_206B_206F_206E_200E_202E_200C_200C_206A_202E_200C_206E_202E_202B_200C_202D_202E_206D_200C_202A_200F_206A_202E(JsonEscapeRegex, text, (MatchEvaluator)([MethodImpl(MethodImplOptions.NoInlining)] (Match match) => - { - string text2 = _003C_003Ec._202A_206E_206D_202C_200D_206D_200F_206D_206B_202C_200D_206C_202B_206D_200F_200E_202C_200D_202D_206F_206C_206B_200C_202D_206C_206D_202D_200F_202D_200B_202B_206F_200F_202D_202C_202C_200E_206C_200B_202E_202E((Capture)_003C_003Ec._200C_206D_206E_206D_206F_206A_202B_200C_206F_200F_200B_202A_200E_202E_202A_202A_202B_200F_200F_200F_206D_206D_202E_202E_206C_200D_202D_206F_200F_206D_202E_202B_206D_202D_200C_202C_202A_200B_202E_206F_202E(_003C_003Ec._202B_200B_200C_202D_200F_206C_202B_206C_206A_206B_202D_202D_206E_206F_200F_206A_206E_202B_206D_202C_206C_200D_200D_206C_206E_202D_202B_202C_206E_202C_206A_200D_200F_202E_202C_200E_202C_200C_206D_206F_202E(match), 1)); - int num7 = ((text2 == null) ? 1436972652 : 1436972649); - string result = default(string); - char c = default(char); - while (true) - { - int num8 = num7; - int num9 = 1436972646; - int num10 = num8; - int num11 = num10 + num9; - int num12 = num10 & num9; - switch (num11 - (num12 + num12)) - { - case 12: - return result; - case 4: - num7 = 1436972652; - break; - case 7: - num7 = ((c == '\\') ? 1436972656 : 1436972660); - break; - case 9: - num7 = ((c == 't') ? 1436972658 : 1436972659); - break; - case 0: - num7 = 1436972652; - break; - case 25: - result = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(450513600); - num7 = 1436972650; - break; - case 22: - result = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1093876266); - num7 = 1436972650; - break; - case 24: - c = _003C_003Ec._200E_202A_200C_202C_206B_202A_202B_206C_206D_200D_206E_200D_200D_200D_200B_202E_200C_202E_200E_200F_202E_202C_202C_202D_202A_200F_206F_202C_200E_200F_202C_200B_202D_206E_206C_200E_206F_200B_200C_206E_202E(text2, 0); - num7 = (((uint)c > 98u) ? 1436972644 : 1436972662); - break; - case 1: - num7 = ((c == '"') ? 1436972653 : 1436972668); - break; - case 8: - result = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-976057447); - num7 = 1436972650; - break; - case 18: - num7 = ((c == 'b') ? 1436972671 : 1436972657); - break; - case 5: - num7 = ((c == 'f') ? 1436972648 : 1436972645); - break; - case 15: - { - int num13 = _003C_003Ec._206C_206A_206E_202A_200D_200E_206D_202A_206E_200F_200F_200B_202D_200B_206E_206B_206C_206E_206E_206E_200B_202C_206F_206A_200E_202B_206E_200F_206D_206B_206B_202A_200D_206B_200C_200F_200D_200F_202E_206E_202E(text2); - num7 = ((num13 != 1) ? 1436972652 : 1436972670); - break; - } - case 3: - num7 = ((c == 'n') ? 1436972654 : 1436972642); - break; - case 23: - num7 = 1436972652; - break; - case 14: - result = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1138276974); - num7 = 1436972650; - break; - case 19: - num7 = 1436972649; - break; - case 17: - result = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1680133376); - num7 = 1436972650; - break; - case 21: - num7 = 1436972652; - break; - case 10: - result = _003C_003Ec._202A_206E_206D_202C_200D_206D_200F_206D_206B_202C_200D_206C_202B_206D_200F_200E_202C_200D_202D_206F_206C_206B_200C_202D_206C_206D_202D_200F_202D_200B_202B_206F_200F_202D_202C_202C_200E_206C_200B_202E_202E((Capture)match); - num7 = 1436972650; - break; - case 20: - result = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1365294164); - num7 = 1436972650; - break; - case 26: - num7 = ((c == '/') ? 1436972663 : 1436972646); - break; - case 16: - num7 = (((uint)c > 47u) ? 1436972641 : 1436972647); - break; - case 2: - num7 = (((uint)c > 110u) ? 1436972640 : 1436972643); - break; - case 6: - num7 = ((c == 'r') ? 1436972651 : 1436972655); - break; - case 13: - result = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1154172741); - num7 = 1436972650; - break; - case 11: - result = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(948996293); - num7 = 1436972650; - break; - } - } - })); - num = ((!_200D_206B_200F_200C_206D_200C_206B_206F_200B_202D_202D_202B_200C_200E_202B_200F_206C_202E_200B_200F_200B_202B_206F_202D_200D_202B_202E_200D_200D_202D_202D_200E_200D_206D_206E_202A_206E_206D_200C_206A_202E(text, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-184638744), StringComparison.Ordinal)) ? 1031753241 : 1031753242); - break; - case 2: - text = _200D_206B_202E_200E_200E_202E_202C_202C_202C_206F_206B_200B_200E_206E_202A_206C_202C_206C_202C_200B_200E_206A_202B_206C_202B_200D_206A_202A_206D_206D_200F_200F_206A_206B_200F_202B_200F_200D_200F_202B_202E(ConsecutiveQuotesRegex, text, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1792309681)); - text = _202A_206D_200B_206E_206B_206A_200C_206E_206F_206C_206A_202B_200E_206A_202B_206C_206E_200E_202B_206F_200C_200C_202D_200E_200D_200C_200B_206E_202A_202B_200B_202E_206A_206C_206F_202A_200D_202D_202E_202B_202E(text, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(15484770), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(15484770), StringComparison.Ordinal); - num = 1031753241; - break; - case 3: - num = 1031753244; - break; - case 4: - return text; - case 1: - return text; - } + return text; } + text = UnicodeEscapeRegex.Replace(text, (Match match) => int.TryParse(match.Groups[1].Value, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out var result) ? ((char)result).ToString() : match.Value); + text = JsonEscapeRegex.Replace(text, (Match match) => match.Groups[1].Value switch + { + "\"" => "\"", + "\\" => "\\", + "/" => "/", + "b" => "\b", + "f" => "\f", + "n" => "\n", + "r" => "\r", + "t" => "\t", + _ => match.Value, + }); + if (text.Contains("\"\"", StringComparison.Ordinal)) + { + text = ConsecutiveQuotesRegex.Replace(text, "\""); + text = text.Replace("Expected \"\"", "Expected \"\"", StringComparison.Ordinal); + } + return text; } public void OpenDetails(ValidationIssue issue, int index) @@ -414,1039 +71,268 @@ internal sealed class ValidationDetailsRenderer _openDetailWindows[index] = true; } - [MethodImpl(MethodImplOptions.NoInlining)] public void DrawDetailWindows() { List<int> list = new List<int>(); - using (List<KeyValuePair<int, bool>>.Enumerator enumerator = _openDetailWindows.ToList().GetEnumerator()) + foreach (KeyValuePair<int, bool> item in _openDetailWindows.ToList()) { - KeyValuePair<int, bool> current = default(KeyValuePair<int, bool>); - while (true) + if (!item.Value || !_storedIssues.TryGetValue(item.Key, out ValidationIssue value)) { - IL_0221: - int num; - if (enumerator.MoveNext()) + continue; + } + string text = $"Validation Details##{item.Key}"; + bool open = true; + ImGui.SetNextWindowSize(new Vector2(800f, 600f), ImGuiCond.FirstUseEver); + ImGui.SetNextWindowSizeConstraints(new Vector2(500f, 300f), new Vector2(1200f, 800f)); + using (ThemedWindow.PushTheme()) + { + if (ImGui.Begin(text, ref open)) + { + DrawIssueDetails(value); + } + ImGui.End(); + } + if (!open) + { + list.Add(item.Key); + } + } + foreach (int item2 in list) + { + _openDetailWindows.Remove(item2); + _storedIssues.Remove(item2); + } + } + + private void DrawIssueDetails(ValidationIssue issue) + { + Vector4 color = issue.Severity switch + { + EIssueSeverity.Error => ImGuiColors.DalamudRed, + EIssueSeverity.Warning => ImGuiColors.DalamudYellow, + _ => ImGuiColors.DalamudOrange, + }; + FontAwesomeIcon icon = issue.Severity switch + { + EIssueSeverity.Error => FontAwesomeIcon.ExclamationTriangle, + EIssueSeverity.Warning => FontAwesomeIcon.ExclamationCircle, + _ => FontAwesomeIcon.InfoCircle, + }; + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) + { + using (ImRaii.PushColor(ImGuiCol.Text, color)) + { + ImGui.TextUnformatted(icon.ToIconString()); + } + } + ImGui.SameLine(); + using (ImRaii.PushColor(ImGuiCol.Text, color)) + { + ImU8String text = new ImU8String(2, 2); + text.AppendFormatted(issue.Severity); + text.AppendLiteral(": "); + text.AppendFormatted(issue.Type); + ImGui.Text(text); + } + ImGui.Separator(); + ImU8String text2 = new ImU8String(6, 1); + text2.AppendLiteral("Type: "); + text2.AppendFormatted(issue.PathType); + ImGui.Text(text2); + if (issue.Id != null) + { + if (issue.PathType == EPathType.Quest && ElementId.TryFromString(issue.Id, out ElementId elementId) && elementId != null) + { + try + { + IQuestInfo questInfo = _questData.GetQuestInfo(elementId); + ImU8String text3 = new ImU8String(10, 2); + text3.AppendLiteral("Quest: "); + text3.AppendFormatted(issue.Id); + text3.AppendLiteral(" - "); + text3.AppendFormatted(questInfo.Name); + ImGui.Text(text3); + } + catch + { + ImU8String text4 = new ImU8String(4, 1); + text4.AppendLiteral("ID: "); + text4.AppendFormatted(issue.Id); + ImGui.Text(text4); + } + } + else + { + ImU8String text5 = new ImU8String(4, 1); + text5.AppendLiteral("ID: "); + text5.AppendFormatted(issue.Id); + ImGui.Text(text5); + } + } + if (issue.Location != null) + { + ImU8String text6 = new ImU8String(10, 1); + text6.AppendLiteral("Location: "); + text6.AppendFormatted(issue.Location); + ImGui.Text(text6); + } + ImGui.Separator(); + ImGui.Text("Description:"); + string description = CleanJsonText(issue.Description ?? "(no description)"); + if (issue.Type == EIssueType.QuestDisabled && issue.Id == null) + { + DrawDisabledTribesDetails(description); + } + else if (issue.Type == EIssueType.InvalidJsonSyntax) + { + DrawJsonSyntaxErrorDetails(description); + } + else + { + DrawGenericDetails(description); + } + } + + private static void DrawJsonSyntaxErrorDetails(string description) + { + string[] array = description.Split('\n'); + for (int i = 0; i < array.Length; i++) + { + string text = array[i].Trim(); + if (string.IsNullOrEmpty(text)) + { + ImGui.Spacing(); + } + else if (text.StartsWith("JSON parsing error", StringComparison.Ordinal)) + { + using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudRed)) + { + ImGui.TextWrapped(text); + } + } + else if (text.StartsWith("This usually indicates", StringComparison.Ordinal) || text.StartsWith("Please check", StringComparison.Ordinal)) + { + using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.HealerGreen)) + { + ImGui.TextWrapped(text); + } + } + else if (text.StartsWith("• ", StringComparison.Ordinal)) + { + using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudYellow)) + { + ImGui.TextWrapped(text); + } + } + else + { + ImGui.TextWrapped(text); + } + } + } + + private void DrawDisabledTribesDetails(string description) + { + string[] array = description.Split(':', 2); + if (array.Length < 2) + { + ImGui.TextWrapped(description); + return; + } + ImGui.TextWrapped(array[0]); + ImGui.Spacing(); + List<string> list = (from x in array[1].Split(',', StringSplitOptions.RemoveEmptyEntries) + select x.Trim() into x + where !string.IsNullOrEmpty(x) + select x).Distinct().ToList(); + if (list.Count == 0) + { + ImGui.TextWrapped("(no disabled quests listed)"); + return; + } + ImGui.Text("Disabled Quests:"); + ImGui.Indent(); + Vector4[] array2 = new Vector4[6] + { + ImGuiColors.TankBlue, + ImGuiColors.HealerGreen, + ImGuiColors.DPSRed, + ImGuiColors.ParsedGreen, + ImGuiColors.ParsedBlue, + ImGuiColors.DalamudViolet + }; + for (int num = 0; num < list.Count; num++) + { + string value = list[num]; + Vector4 color = array2[num % array2.Length]; + using (ImRaii.PushColor(ImGuiCol.Text, color)) + { + if (ElementId.TryFromString(value, out ElementId elementId) && elementId != null) { - current = enumerator.Current; - if (!current.Value || !_storedIssues.TryGetValue(current.Key, out ValidationIssue value)) - { - continue; - } - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(20, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1298951719)); - defaultInterpolatedStringHandler.AppendFormatted(current.Key); - string text = defaultInterpolatedStringHandler.ToStringAndClear(); - bool flag = true; - _202C_202C_206B_202C_202B_202C_206A_202E_200E_200B_202C_200E_202E_206B_200C_206D_202C_206C_202A_206A_206A_206D_206E_206C_206F_202D_202C_202C_200B_202C_206F_202B_206B_200F_206A_206C_202D_200B_202E_202D_202E(new Vector2(800f, 600f), ImGuiCond.FirstUseEver); - _206F_202D_206A_202D_200D_202E_200D_200C_206C_200E_206C_206F_200C_206C_202C_200B_206E_206C_206C_200B_206A_206E_200C_200F_202A_202E_202A_200C_206A_202E_200D_206C_202E_206A_200C_200D_202E_206B_202E_200D_202E(new Vector2(500f, 300f), new Vector2(1200f, 800f)); - IDisposable disposable = ThemedWindow.PushTheme(); try { - num = ((!_202C_202D_206F_206F_206E_206D_202D_202C_202A_206F_200E_206C_206E_200F_206C_206B_200D_206C_202E_202A_200D_202D_200C_202B_206E_202C_206E_206E_202D_206B_200F_200C_206C_202E_200E_206B_206F_206F_202A_206E_202E((ImU8String)text, ref flag, ImGuiWindowFlags.None)) ? (-1150168852) : (-1150168851)); - while (true) - { - int num2 = num; - int num3 = -1150168852; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1150168851; - break; - case 1: - DrawIssueDetails(value); - num = -1150168852; - break; - case 0: - _206D_200E_206C_202B_206B_202D_202C_206F_206C_206B_206D_206F_206B_202B_202B_200D_206C_202C_202A_206B_206D_202D_206A_206A_206A_202A_206A_206A_202C_200C_202C_200D_200C_200C_200B_200B_206E_200B_202D_202E_202E(); - goto end_IL_00e9; - } - continue; - end_IL_00e9: - break; - } + IQuestInfo questInfo = _questData.GetQuestInfo(elementId); + ImU8String text = new ImU8String(5, 2); + text.AppendLiteral("• "); + text.AppendFormatted(value); + text.AppendLiteral(" - "); + text.AppendFormatted(questInfo.Name); + ImGui.TextWrapped(text); } - finally + catch { - num = ((disposable == null) ? 17242960 : 17242961); - while (true) - { - int num5 = num; - int num3 = 17242960; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 0: - goto end_IL_015d; - case 1: - _200B_200B_202C_206C_202B_200D_202E_206F_202B_200B_202E_200D_200F_202B_202A_202E_200B_206E_200F_206E_202E_202D_206B_202C_202A_200B_202E_200C_206B_200D_206F_202D_202E_206D_206D_206E_200B_200F_206D_202A_202E(disposable); - num = 17242960; - break; - case 2: - num = 17242961; - break; - } - continue; - end_IL_015d: - break; - } + ImU8String text2 = new ImU8String(18, 1); + text2.AppendLiteral("• "); + text2.AppendFormatted(value); + text2.AppendLiteral(" (unknown quest)"); + ImGui.TextWrapped(text2); } - num = (flag ? 913127023 : 913127021); } else { - num = 913127020; + ImU8String text3 = new ImU8String(2, 1); + text3.AppendLiteral("• "); + text3.AppendFormatted(value); + ImGui.TextWrapped(text3); } - while (true) - { - int num8 = num; - int num3 = 913127022; - int num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - default: - continue; - case 0: - num = 913127021; - continue; - case 3: - list.Add(current.Key); - num = 913127023; - continue; - case 1: - break; - case 2: - goto end_IL_01ca; - } - goto IL_0221; - continue; - end_IL_01ca: - break; - } - break; } } - using List<int>.Enumerator enumerator2 = list.GetEnumerator(); - int num = 1159845367; - while (true) - { - int num11 = num; - int num3 = 1159845366; - int num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) - { - case 1: - num = (enumerator2.MoveNext() ? 1159845364 : 1159845365); - break; - case 2: - { - int current2 = enumerator2.Current; - _openDetailWindows.Remove(current2); - _storedIssues.Remove(current2); - num = 1159845367; - break; - } - case 0: - num = 1159845367; - break; - case 3: - return; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private void DrawIssueDetails(ValidationIssue issue) - { - //Discarded unreachable code: IL_03f0 - EIssueSeverity severity = issue.Severity; - int num = ((severity == EIssueSeverity.Warning) ? (-1329717228) : (-1329717221)); - Vector4 vector = default(Vector4); - Vector4 vector2 = default(Vector4); - FontAwesomeIcon fontAwesomeIcon2 = default(FontAwesomeIcon); - ElementId elementId = default(ElementId); - string description = default(string); - while (true) - { - int num2 = num; - int num3 = -1329717229; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 9: - vector = vector2; - severity = issue.Severity; - num = ((severity == EIssueSeverity.Warning) ? (-1329717230) : (-1329717229)); - break; - case 10: - fontAwesomeIcon2 = FontAwesomeIcon.ExclamationTriangle; - num = -1329717226; - break; - case 7: - vector2 = _206E_200F_202A_202C_206F_200C_200F_206A_202E_206B_200C_200F_206D_206A_206F_202B_202D_206C_202E_202D_200D_206B_206B_200B_202D_200C_202D_206F_202E_206C_202A_202B_206A_200E_200F_206C_202B_206C_206D_202D_202E(); - num = -1329717222; - break; - case 4: - vector2 = _206B_206F_200F_202A_206C_206C_206F_206C_202A_200E_202B_200E_202D_202E_202B_202B_206C_202C_202E_202A_206A_206E_200E_206A_206C_206F_200F_206C_200E_200B_202E_202D_206A_206F_200B_200E_206B_202A_200E_200E_202E(); - num = -1329717222; - break; - case 0: - num = ((severity != EIssueSeverity.Error) ? (-1329717227) : (-1329717223)); - break; - case 2: - num = -1329717221; - break; - case 1: - fontAwesomeIcon2 = FontAwesomeIcon.ExclamationCircle; - num = -1329717226; - break; - case 3: - vector2 = _200D_200C_206C_206F_206C_200F_206D_206A_202D_206B_200B_200E_202B_206C_206B_202A_206B_202C_206C_202B_202E_200D_200D_200D_200C_202A_206F_206B_202B_206A_206F_202B_202D_206F_206A_206A_200D_202E_200B_202C_202E(); - num = -1329717222; - break; - case 6: - fontAwesomeIcon2 = FontAwesomeIcon.InfoCircle; - num = -1329717226; - break; - case 8: - num = ((severity != EIssueSeverity.Error) ? (-1329717225) : (-1329717232)); - break; - case 5: - { - FontAwesomeIcon fontAwesomeIcon = fontAwesomeIcon2; - IDisposable disposable = _206B_202B_200F_206C_206E_206B_206E_206F_200C_206D_206A_206E_202A_202E_200F_206C_202B_206A_202E_206D_200C_200B_206A_202B_202C_206D_206B_200E_206B_206F_202C_206A_206E_200D_206B_206E_206C_202C_206F_200E_202E(_200B_202C_206C_206C_206D_202B_206C_206A_200C_206B_202E_206A_200C_202E_200B_206A_206A_206A_206E_200F_202B_206A_202E_206C_200C_202A_200C_202D_202E_206A_202B_206E_202D_200B_202E_200D_206D_206C_202B_202A_202E(_206F_200C_206B_206C_202C_200D_206A_202C_202E_202C_200E_206E_206E_200F_206F_202C_202C_206B_206B_206A_206B_202C_202A_206B_206A_202A_206C_206D_202D_206E_202C_206C_202C_200C_202E_200D_200E_206E_200F_206E_202E(_pluginInterface))); - try - { - ImRaii.ColorDisposable colorDisposable = _202C_200F_202C_200F_206C_206E_206B_200E_200B_200D_200B_200D_206A_200E_200B_206B_206F_200C_202E_206E_202E_200E_206A_206B_206F_200B_202E_202C_206E_202C_200E_202D_206A_202C_206D_202D_200E_202E_206F_206D_202E(ImGuiCol.Text, vector, true); - try - { - _200D_206E_206C_206D_206A_202B_206E_200B_200D_200D_200D_206F_206A_202A_202B_200C_202A_200F_200C_202B_202A_206A_200E_206C_202E_200C_202E_202A_206D_206A_202C_202D_200D_206B_206E_202E_200E_202C_206C_200C_202E((ImU8String)_200F_202A_200F_202B_200C_200E_206C_200C_206F_206B_200F_202D_200C_202A_206A_206D_200F_206E_206C_206F_206A_202D_202C_202A_206C_206C_206D_202C_206F_200E_206C_206B_200D_202E_200B_202C_200D_200D_200D_200C_202E(fontAwesomeIcon)); - } - finally - { - num = ((colorDisposable == null) ? 1646006232 : 1646006235); - while (true) - { - int num5 = num; - num3 = 1646006233; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 0: - num = 1646006235; - break; - case 1: - goto end_IL_01b1; - case 2: - _200B_200B_202C_206C_202B_200D_202E_206F_202B_200B_202E_200D_200F_202B_202A_202E_200B_206E_200F_206E_202E_202D_206B_202C_202A_200B_202E_200C_206B_200D_206F_202D_202E_206D_206D_206E_200B_200F_206D_202A_202E((IDisposable)colorDisposable); - num = 1646006232; - break; - } - continue; - end_IL_01b1: - break; - } - } - } - finally - { - num = ((disposable == null) ? (-1517300554) : (-1517300555)); - while (true) - { - int num8 = num; - num3 = -1517300556; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 2: - goto end_IL_021e; - case 1: - _200B_200B_202C_206C_202B_200D_202E_206F_202B_200B_202E_200D_200F_202B_202A_202E_200B_206E_200F_206E_202E_202D_206B_202C_202A_200B_202E_200C_206B_200D_206F_202D_202E_206D_206D_206E_200B_200F_206D_202A_202E(disposable); - num = -1517300554; - break; - case 0: - num = -1517300555; - break; - } - continue; - end_IL_021e: - break; - } - } - _206B_206A_202B_206E_200D_202D_206F_206A_206F_206D_200B_200F_200F_200D_202D_200D_206C_206F_202E_206D_206C_202A_206E_202E_206A_202D_202E_202A_200B_206C_200B_202E_200F_202B_206A_202C_200D_200D_200F_200E_202E(); - ImRaii.ColorDisposable colorDisposable2 = _202C_200F_202C_200F_206C_206E_206B_200E_200B_200D_200B_200D_206A_200E_200B_206B_206F_200C_202E_206E_202E_200E_206A_206B_206F_200B_202E_202C_206E_202C_200E_202D_206A_202C_206D_202D_200E_202E_206F_206D_202E(ImGuiCol.Text, vector, true); - try - { - ImU8String imU8String = new ImU8String(2, 2); - imU8String.AppendFormatted(issue.Severity); - imU8String.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2074665157)); - imU8String.AppendFormatted(issue.Type); - _200C_200F_200D_202C_202A_200C_200F_202C_206A_202A_202E_206A_200D_206C_206F_206F_200D_200F_202A_202C_202E_206E_202D_202E_202E_206E_206A_202B_206C_200B_200C_206D_202E_206A_206F_206F_200F_200F_202E_206E_202E(imU8String); - } - finally - { - num = ((colorDisposable2 == null) ? 49104475 : 49104474); - while (true) - { - int num11 = num; - num3 = 49104475; - num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) - { - case 0: - goto end_IL_02da; - case 1: - _200B_200B_202C_206C_202B_200D_202E_206F_202B_200B_202E_200D_200F_202B_202A_202E_200B_206E_200F_206E_202E_202D_206B_202C_202A_200B_202E_200C_206B_200D_206F_202D_202E_206D_206D_206E_200B_200F_206D_202A_202E((IDisposable)colorDisposable2); - num = 49104475; - break; - case 2: - num = 49104474; - break; - } - continue; - end_IL_02da: - break; - } - } - _206D_202E_202D_206A_206E_206F_206A_206D_202C_202C_206D_200B_200B_202A_200C_200B_206B_202A_200D_206C_206D_200D_202E_200D_200F_206B_200F_202C_206D_202C_200E_200F_202A_202E_206D_202D_206B_206E_206D_200E_202E(); - ImU8String imU8String2 = new ImU8String(6, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1066426016)); - imU8String2.AppendFormatted(issue.PathType); - _200C_200F_200D_202C_202A_200C_200F_202C_206A_202A_202E_206A_200D_206C_206F_206F_200D_200F_202A_202C_202E_206E_202D_202E_202E_206E_206A_202B_206C_200B_200C_206D_202E_206A_206F_206F_200F_200F_202E_206E_202E(imU8String2); - if (issue.Id != null) - { - num = -553610014; - while (true) - { - int num14 = num; - num3 = -553610015; - num4 = num14; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 1: - if (!_202B_206E_200D_200E_200F_200C_202E_206F_200C_206F_206D_202A_206D_202E_200F_202D_202D_202D_206C_200B_202D_200C_200B_206D_202E_200E_206E_200D_202B_202C_206A_202D_200D_200C_206C_202C_206F_200C_206D_202B_202E(elementId, (ElementId)null)) - { - break; - } - goto case 3; - case 3: - if (issue.PathType == EPathType.Quest) - { - num = -553610013; - continue; - } - break; - case 0: - num = -553610014; - continue; - case 2: - if (_200E_200E_206C_206D_206C_202A_202C_206B_202E_200B_206D_202E_202B_202D_200D_206B_206E_206E_202D_200C_202B_200D_206D_206D_200F_200F_206E_200B_206E_206A_206D_200F_200C_200B_202C_206D_206F_200C_200B_200E_202E(issue.Id, ref elementId)) - { - num = -553610016; - continue; - } - break; - } - break; - } - ImU8String imU8String3 = new ImU8String(4, 1); - imU8String3.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1908485519)); - imU8String3.AppendFormatted(issue.Id); - _200C_200F_200D_202C_202A_200C_200F_202C_206A_202A_202E_206A_200D_206C_206F_206F_200D_200F_202A_202C_202E_206E_202D_202E_202E_206E_206A_202B_206C_200B_200C_206D_202E_206A_206F_206F_200F_200F_202E_206E_202E(imU8String3); - } - num = ((issue.Location == null) ? 860006641 : 860006647); - while (true) - { - int num15 = num; - num3 = 860006641; - num4 = num15; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - DrawDisabledTribesDetails(description); - return; - case 0: - _206D_202E_202D_206A_206E_206F_206A_206D_202C_202C_206D_200B_200B_202A_200C_200B_206B_202A_200D_206C_206D_200D_202E_200D_200F_206B_200F_202C_206D_202C_200E_200F_202A_202E_206D_202D_206B_206E_206D_200E_202E(); - _200C_200F_200D_202C_202A_200C_200F_202C_206A_202A_202E_206A_200D_206C_206F_206F_200D_200F_202A_202C_202E_206E_202D_202E_202E_206E_206A_202B_206C_200B_200C_206D_202E_206A_206F_206F_200F_200F_202E_206E_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1571231397)); - description = CleanJsonText(issue.Description ?? global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1853270224)); - num = ((issue.Type != EIssueType.QuestDisabled) ? 860006642 : 860006645); - break; - case 6: - { - ImU8String imU8String4 = new ImU8String(10, 1); - imU8String4.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1204994949)); - imU8String4.AppendFormatted(issue.Location); - _200C_200F_200D_202C_202A_200C_200F_202C_206A_202A_202E_206A_200D_206C_206F_206F_200D_200F_202A_202C_202E_206E_202D_202E_202E_206E_206A_202B_206C_200B_200C_206D_202E_206A_206F_206F_200F_200F_202E_206E_202E(imU8String4); - num = 860006641; - break; - } - case 2: - DrawGenericDetails(description); - return; - case 3: - num = ((issue.Type != EIssueType.InvalidJsonSyntax) ? 860006643 : 860006640); - break; - case 4: - num = ((issue.Id != null) ? 860006642 : 860006644); - break; - case 7: - num = 860006647; - break; - case 1: - DrawJsonSyntaxErrorDetails(description); - return; - } - } - } - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private static void DrawJsonSyntaxErrorDetails(string description) - { - string[] array = _200F_200B_206B_202E_200B_206F_202A_206C_200E_206B_206C_202C_206F_206C_206C_202E_202B_206D_206B_206C_202D_202C_200D_202C_200B_202D_202C_200E_202C_206B_202A_200C_206E_200B_206B_200C_202D_200C_206D_202E_202E(description, '\n', StringSplitOptions.None); - int num = 0; - while (num < array.Length) - { - string text = _200E_202C_202A_200E_200E_206D_206D_206A_200E_202D_206E_206A_206D_206F_200D_206C_200F_206F_202B_206A_202B_200F_206F_206E_200B_202E_202E_202E_200B_202D_202D_202A_206E_200D_202A_202B_200F_200B_202B_206D_202E(array[num]); - int num4; - int num5; - if (_206F_202B_202A_200C_206B_206E_206D_202A_206C_202D_206E_200C_200D_200E_202E_206B_206F_202B_200B_200C_200B_206C_206D_200F_202E_202D_206F_206F_206C_200D_206E_200D_200E_206D_202E_200F_202D_206F_202A_206D_202E(text)) - { - _200B_206B_206C_206E_202A_202B_202B_202D_202B_202D_202B_200E_206B_206A_206F_206E_206F_202C_202D_202D_202D_202C_206F_200B_202E_206B_200E_202D_202D_206D_206F_206B_202E_200C_202E_206D_202E_206F_202E_200D_202E(); - } - else if (_202C_200F_206B_202A_206D_200E_206F_206F_200B_206F_200C_206D_206C_206E_206D_200C_202D_200F_200D_200C_202E_206D_206D_202C_200E_200F_200E_202E_202A_202C_202A_206E_206E_202D_202D_202B_206B_206C_200F_206E_202E(text, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(540102239), StringComparison.Ordinal)) - { - ImRaii.ColorDisposable colorDisposable = _202C_200F_202C_200F_206C_206E_206B_200E_200B_200D_200B_200D_206A_200E_200B_206B_206F_200C_202E_206E_202E_200E_206A_206B_206F_200B_202E_202C_206E_202C_200E_202D_206A_202C_206D_202D_200E_202E_206F_206D_202E(ImGuiCol.Text, _200D_200C_206C_206F_206C_200F_206D_206A_202D_206B_200B_200E_202B_206C_206B_202A_206B_202C_206C_202B_202E_200D_200D_200D_200C_202A_206F_206B_202B_206A_206F_202B_202D_206F_206A_206A_200D_202E_200B_202C_202E(), true); - try - { - _206B_206E_202A_206C_202A_202A_202A_200B_206B_206A_200B_206E_206E_202A_206B_202C_206F_202B_206B_202D_202A_200C_206C_206C_200B_200F_206C_200B_202D_202A_200C_206B_202C_206B_200E_202A_206C_200B_202E_200D_202E((ImU8String)text); - } - finally - { - int num2 = ((colorDisposable == null) ? 706780076 : 706780079); - while (true) - { - int num3 = num2; - num4 = 706780077; - num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 1: - goto end_IL_0080; - case 2: - _200B_200B_202C_206C_202B_200D_202E_206F_202B_200B_202E_200D_200F_202B_202A_202E_200B_206E_200F_206E_202E_202D_206B_202C_202A_200B_202E_200C_206B_200D_206F_202D_202E_206D_206D_206E_200B_200F_206D_202A_202E((IDisposable)colorDisposable); - num2 = 706780076; - break; - case 0: - num2 = 706780079; - break; - } - continue; - end_IL_0080: - break; - } - } - } - else - { - int num2 = (_202C_200F_206B_202A_206D_200E_206F_206F_200B_206F_200C_206D_206C_206E_206D_200C_202D_200F_200D_200C_202E_206D_206D_202C_200E_200F_200E_202E_202A_202C_202A_206E_206E_202D_202D_202B_206B_206C_200F_206E_202E(text, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(410869758), StringComparison.Ordinal) ? (-1850996849) : (-1850996850)); - while (true) - { - int num8 = num2; - num4 = -1850996849; - num5 = num8; - int num9 = num5 + num4; - int num10 = num5 & num4; - switch (num9 - (num10 + num10)) - { - default: - continue; - case 2: - num2 = -1850996850; - continue; - case 1: - if (_202C_200F_206B_202A_206D_200E_206F_206F_200B_206F_200C_206D_206C_206E_206D_200C_202D_200F_200D_200C_202E_206D_206D_202C_200E_200F_200E_202E_202A_202C_202A_206E_206E_202D_202D_202B_206B_206C_200F_206E_202E(text, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(705937726), StringComparison.Ordinal)) - { - num2 = -1850996849; - continue; - } - if (_202C_200F_206B_202A_206D_200E_206F_206F_200B_206F_200C_206D_206C_206E_206D_200C_202D_200F_200D_200C_202E_206D_206D_202C_200E_200F_200E_202E_202A_202C_202A_206E_206E_202D_202D_202B_206B_206C_200F_206E_202E(text, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1546498203), StringComparison.Ordinal)) - { - ImRaii.ColorDisposable colorDisposable3 = _202C_200F_202C_200F_206C_206E_206B_200E_200B_200D_200B_200D_206A_200E_200B_206B_206F_200C_202E_206E_202E_200E_206A_206B_206F_200B_202E_202C_206E_202C_200E_202D_206A_202C_206D_202D_200E_202E_206F_206D_202E(ImGuiCol.Text, _206E_200F_202A_202C_206F_200C_200F_206A_202E_206B_200C_200F_206D_206A_206F_202B_202D_206C_202E_202D_200D_206B_206B_200B_202D_200C_202D_206F_202E_206C_202A_202B_206A_200E_200F_206C_202B_206C_206D_202D_202E(), true); - try - { - _206B_206E_202A_206C_202A_202A_202A_200B_206B_206A_200B_206E_206E_202A_206B_202C_206F_202B_206B_202D_202A_200C_206C_206C_200B_200F_206C_200B_202D_202A_200C_206B_202C_206B_200E_202A_206C_200B_202E_200D_202E((ImU8String)text); - } - finally - { - num2 = ((colorDisposable3 == null) ? (-663446381) : (-663446384)); - while (true) - { - int num12 = num2; - num4 = -663446382; - num5 = num12; - switch ((num5 | num4) - (num5 & num4)) - { - case 1: - goto end_IL_0233; - case 2: - _200B_200B_202C_206C_202B_200D_202E_206F_202B_200B_202E_200D_200F_202B_202A_202E_200B_206E_200F_206E_202E_202D_206B_202C_202A_200B_202E_200C_206B_200D_206F_202D_202E_206D_206D_206E_200B_200F_206D_202A_202E((IDisposable)colorDisposable3); - num2 = -663446381; - break; - case 0: - num2 = -663446384; - break; - } - continue; - end_IL_0233: - break; - } - } - } - else - { - _206B_206E_202A_206C_202A_202A_202A_200B_206B_206A_200B_206E_206E_202A_206B_202C_206F_202B_206B_202D_202A_200C_206C_206C_200B_200F_206C_200B_202D_202A_200C_206B_202C_206B_200E_202A_206C_200B_202E_200D_202E((ImU8String)text); - } - break; - case 0: - { - ImRaii.ColorDisposable colorDisposable2 = _202C_200F_202C_200F_206C_206E_206B_200E_200B_200D_200B_200D_206A_200E_200B_206B_206F_200C_202E_206E_202E_200E_206A_206B_206F_200B_202E_202C_206E_202C_200E_202D_206A_202C_206D_202D_200E_202E_206F_206D_202E(ImGuiCol.Text, _206C_202D_200F_202C_202D_202B_200E_200C_200F_206D_202C_200C_202D_206C_200E_202A_202B_200E_206F_206F_202D_202C_206B_202D_202A_206C_202D_206F_206D_200C_202A_200F_206B_200E_200B_206D_202E_206A_200C_202A_202E(), true); - try - { - _206B_206E_202A_206C_202A_202A_202A_200B_206B_206A_200B_206E_206E_202A_206B_202C_206F_202B_206B_202D_202A_200C_206C_206C_200B_200F_206C_200B_202D_202A_200C_206B_202C_206B_200E_202A_206C_200B_202E_200D_202E((ImU8String)text); - } - finally - { - num2 = ((colorDisposable2 == null) ? 582989586 : 582989587); - while (true) - { - int num11 = num2; - num4 = 582989586; - num5 = num11; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - goto end_IL_0194; - case 1: - _200B_200B_202C_206C_202B_200D_202E_206F_202B_200B_202E_200D_200F_202B_202A_202E_200B_206E_200F_206E_202E_202D_206B_202C_202A_200B_202E_200C_206B_200D_206F_202D_202E_206D_206D_206E_200B_200F_206D_202A_202E((IDisposable)colorDisposable2); - num2 = 582989586; - break; - case 2: - num2 = 582989587; - break; - } - continue; - end_IL_0194: - break; - } - } - break; - } - } - break; - } - } - int num13 = num; - num4 = 1; - num5 = num13; - num = (num5 | num4) + (num5 & num4); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private void DrawDisabledTribesDetails(string description) - { - string[] array = _202A_202B_202B_200B_206B_202A_206B_206F_206D_202E_202A_202C_202D_200E_206A_200D_206D_200D_206A_200C_202C_206B_206A_202C_206A_202B_202B_206E_202D_202C_202D_200F_200C_206B_206A_202C_200C_206D_200C_202E_202E(description, ':', 2, StringSplitOptions.None); - int num = ((array.Length >= 2) ? (-404849146) : (-404849145)); - List<string> list = default(List<string>); - ElementId elementId = default(ElementId); - while (true) - { - int num2 = num; - int num3 = -404849146; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - _206B_206E_202A_206C_202A_202A_202A_200B_206B_206A_200B_206E_206E_202A_206B_202C_206F_202B_206B_202D_202A_200C_206C_206C_200B_200F_206C_200B_202D_202A_200C_206B_202C_206B_200E_202A_206C_200B_202E_200D_202E((ImU8String)array[0]); - _200B_206B_206C_206E_202A_202B_202B_202D_202B_202D_202B_200E_206B_206A_206F_206E_206F_202C_202D_202D_202D_202C_206F_200B_202E_206B_200E_202D_202D_206D_206F_206B_202E_200C_202E_206D_202E_206F_202E_200D_202E(); - list = (from x in _200F_200B_206B_202E_200B_206F_202A_206C_200E_206B_206C_202C_206F_206C_206C_202E_202B_206D_206B_206C_202D_202C_200D_202C_200B_202D_202C_200E_202C_206B_202A_200C_206E_200B_206B_200C_202D_200C_206D_202E_202E(array[1], ',', StringSplitOptions.RemoveEmptyEntries) - select _003C_003Ec._202B_200D_202D_202D_200F_206A_206F_206E_200E_206C_206B_200E_202B_200B_202D_206E_202A_206F_206B_200F_202B_200B_206B_206E_206F_202A_206C_200F_206E_202D_206D_206D_206E_200F_202C_200D_202B_200D_206B_202D_202E(x) into x - where !_003C_003Ec._200C_200C_206E_206F_200D_206D_202C_206A_202B_206E_206C_202D_202E_202B_200C_200E_202A_202B_206B_200D_200D_200B_202E_202A_202A_200E_206B_200B_206B_202B_200E_200E_206A_200F_202D_206A_206F_202C_202E_202C_202E(x) - select x).Distinct().ToList(); - num = ((list.Count != 0) ? (-404849147) : (-404849150)); - break; - case 4: - _206B_206E_202A_206C_202A_202A_202A_200B_206B_206A_200B_206E_206E_202A_206B_202C_206F_202B_206B_202D_202A_200C_206C_206C_200B_200F_206C_200B_202D_202A_200C_206B_202C_206B_200E_202A_206C_200B_202E_200D_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1348132251)); - return; - case 2: - num = -404849145; - break; - case 1: - _206B_206E_202A_206C_202A_202A_202A_200B_206B_206A_200B_206E_206E_202A_206B_202C_206F_202B_206B_202D_202A_200C_206C_206C_200B_200F_206C_200B_202D_202A_200C_206B_202C_206B_200E_202A_206C_200B_202E_200D_202E((ImU8String)description); - return; - case 3: - { - _200C_200F_200D_202C_202A_200C_200F_202C_206A_202A_202E_206A_200D_206C_206F_206F_200D_200F_202A_202C_202E_206E_202D_202E_202E_206E_206A_202B_206C_200B_200C_206D_202E_206A_206F_206F_200F_200F_202E_206E_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-834424593)); - _202D_202D_206A_200B_206A_206D_200C_206C_206F_200D_206A_206A_206D_200C_206C_202A_206C_206C_200F_202B_206C_206C_206C_206A_200D_206D_202E_206B_202C_202A_206E_202B_206B_202E_200F_202A_200E_206F_200E_206E_202E(); - Vector4[] array2 = new Vector4[6] - { - _206E_200C_202C_206E_200B_200B_206D_202E_206F_206C_200C_200E_202D_202B_200B_206C_202E_206B_206D_200E_202B_202A_200F_200E_206F_206D_206E_206F_206B_200B_206E_200D_206C_200E_206B_202B_202C_200F_202C_206E_202E(), - _206C_202D_200F_202C_202D_202B_200E_200C_200F_206D_202C_200C_202D_206C_200E_202A_202B_200E_206F_206F_202D_202C_206B_202D_202A_206C_202D_206F_206D_200C_202A_200F_206B_200E_200B_206D_202E_206A_200C_202A_202E(), - _206A_206D_206F_206A_200E_200B_206D_202B_202A_206A_206A_206B_206F_202B_206E_206E_202A_202B_200B_202A_206D_206D_202B_206E_200E_202B_202C_200E_202E_206D_202D_206D_206A_202C_200C_206C_202A_200F_202C_200D_202E(), - _202D_202D_202B_202D_206D_200F_200B_200D_206E_206A_202A_202E_206E_202C_202E_206B_200D_202E_200D_200C_200F_202B_206E_200C_202D_206D_206F_200F_202B_202E_200C_202B_202D_200E_206C_202C_206F_202D_202D_206C_202E(), - _200E_202B_200D_206D_200C_200E_202B_206B_206B_200D_206A_202D_200B_202D_206B_200E_206D_202E_206A_206E_206A_202C_200E_206F_202D_202D_200B_206A_206A_206E_200B_206B_206D_206E_200D_206D_200C_200E_206E_200E_202E(), - _206E_200C_200E_206C_202D_202D_200B_202A_202C_200E_200B_206F_206E_206E_206A_200B_206A_200E_206A_200C_200D_200E_202C_202C_200D_200F_202A_200E_202B_200F_200B_202B_202C_206F_206B_206B_206E_200D_202A_200D_202E() - }; - int num5 = 0; - while (num5 < list.Count) - { - string text = list[num5]; - Vector4 vector = array2[num5 % array2.Length]; - ImRaii.ColorDisposable colorDisposable = _202C_200F_202C_200F_206C_206E_206B_200E_200B_200D_200B_200D_206A_200E_200B_206B_206F_200C_202E_206E_202E_200E_206A_206B_206F_200B_202E_202C_206E_202C_200E_202D_206A_202C_206D_202D_200E_202E_206F_206D_202E(ImGuiCol.Text, vector, true); - try - { - if (_200E_200E_206C_206D_206C_202A_202C_206B_202E_200B_206D_202E_202B_202D_200D_206B_206E_206E_202D_200C_202B_200D_206D_206D_200F_200F_206E_200B_206E_206A_206D_200F_200C_200B_202C_206D_206F_200C_200B_200E_202E(text, ref elementId) && _202B_206E_200D_200E_200F_200C_202E_206F_200C_206F_206D_202A_206D_202E_200F_202D_202D_202D_206C_200B_202D_200C_200B_206D_202E_200E_206E_200D_202B_202C_206A_202D_200D_200C_206C_202C_206F_200C_206D_202B_202E(elementId, (ElementId)null)) - { - try - { - IQuestInfo questInfo = _questData.GetQuestInfo(elementId); - ImU8String imU8String = new ImU8String(5, 2); - imU8String.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1048034183)); - imU8String.AppendFormatted(text); - imU8String.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1186344051)); - imU8String.AppendFormatted(questInfo.Name); - _206B_206E_202A_206C_202A_202A_202A_200B_206B_206A_200B_206E_206E_202A_206B_202C_206F_202B_206B_202D_202A_200C_206C_206C_200B_200F_206C_200B_202D_202A_200C_206B_202C_206B_200E_202A_206C_200B_202E_200D_202E(imU8String); - } - catch - { - ImU8String imU8String2 = new ImU8String(18, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1062168314)); - imU8String2.AppendFormatted(text); - imU8String2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1917054340)); - _206B_206E_202A_206C_202A_202A_202A_200B_206B_206A_200B_206E_206E_202A_206B_202C_206F_202B_206B_202D_202A_200C_206C_206C_200B_200F_206C_200B_202D_202A_200C_206B_202C_206B_200E_202A_206C_200B_202E_200D_202E(imU8String2); - } - } - else - { - ImU8String imU8String3 = new ImU8String(2, 1); - imU8String3.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1949919442)); - imU8String3.AppendFormatted(text); - _206B_206E_202A_206C_202A_202A_202A_200B_206B_206A_200B_206E_206E_202A_206B_202C_206F_202B_206B_202D_202A_200C_206C_206C_200B_200F_206C_200B_202D_202A_200C_206B_202C_206B_200E_202A_206C_200B_202E_200D_202E(imU8String3); - } - } - finally - { - num = ((colorDisposable == null) ? 1191446963 : 1191446960); - while (true) - { - int num6 = num; - num3 = 1191446961; - num4 = num6; - int num7 = num4 + num3; - int num8 = num4 & num3; - switch (num7 - (num8 + num8)) - { - case 0: - num = 1191446960; - break; - case 1: - _200B_200B_202C_206C_202B_200D_202E_206F_202B_200B_202E_200D_200F_202B_202A_202E_200B_206E_200F_206E_202E_202D_206B_202C_202A_200B_202E_200C_206B_200D_206F_202D_202E_206D_206D_206E_200B_200F_206D_202A_202E((IDisposable)colorDisposable); - num = 1191446963; - break; - case 2: - goto end_IL_02be; - } - continue; - end_IL_02be: - break; - } - } - int num9 = num5; - num3 = 1; - num4 = num9; - int num10 = num4 ^ num3; - int num11 = num4 & num3; - num5 = num10 + (num11 + num11); - } - _200C_202E_200E_200B_200F_206F_202E_202D_206B_200D_206C_200F_200B_206F_206A_206E_200F_202D_206F_202C_200D_202C_200E_206E_202E_200B_200D_202C_206F_206D_206A_206F_200F_206D_202C_200C_202C_200D_206C_200D_202E(); - return; - } - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private static void DrawGenericDetails(string description) - { - string[] array = _200F_200B_206B_202E_200B_206F_202A_206C_200E_206B_206C_202C_206F_206C_206C_202E_202B_206D_206B_206C_202D_202C_200D_202C_200B_202D_202C_200E_202C_206B_202A_200C_206E_200B_206B_200C_202D_200C_206D_202E_202E(description, '\n', StringSplitOptions.None); - int num = 0; - while (true) - { - int num2; - int num4; - int num5; - if (num < array.Length) - { - string text = _200E_202C_202A_200E_200E_206D_206D_206A_200E_202D_206E_206A_206D_206F_200D_206C_200F_206F_202B_206A_202B_200F_206F_206E_200B_202E_202E_202E_200B_202D_202D_202A_206E_200D_202A_202B_200F_200B_202B_206D_202E(array[num]); - if (_206F_202B_202A_200C_206B_206E_206D_202A_206C_202D_206E_200C_200D_200E_202E_206B_206F_202B_200B_200C_200B_206C_206D_200F_202E_202D_206F_206F_206C_200D_206E_200D_200E_206D_202E_200F_202D_206F_202A_206D_202E(text)) - { - _200B_206B_206C_206E_202A_202B_202B_202D_202B_202D_202B_200E_206B_206A_206F_206E_206F_202C_202D_202D_202D_202C_206F_200B_202E_206B_200E_202D_202D_206D_206F_206B_202E_200C_202E_206D_202E_206F_202E_200D_202E(); - goto IL_022d; - } - if (_202C_200F_206B_202A_206D_200E_206F_206F_200B_206F_200C_206D_206C_206E_206D_200C_202D_200F_200D_200C_202E_206D_206D_202C_200E_200F_200E_202E_202A_202C_202A_206E_206E_202D_202D_202B_206B_206C_200F_206E_202E(text, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(487664615), StringComparison.Ordinal) || _202C_200F_206B_202A_206D_200E_206F_206F_200B_206F_200C_206D_206C_206E_206D_200C_202D_200F_200D_200C_202E_206D_206D_202C_200E_200F_200E_202E_202A_202C_202A_206E_206E_202D_202D_202B_206B_206C_200F_206E_202E(text, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1722402841), StringComparison.Ordinal) || _202C_200F_206B_202A_206D_200E_206F_206F_200B_206F_200C_206D_206C_206E_206D_200C_202D_200F_200D_200C_202E_206D_206D_202C_200E_200F_200E_202E_202A_202C_202A_206E_206E_202D_202D_202B_206B_206C_200F_206E_202E(text, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(924453500), StringComparison.Ordinal)) - { - ImRaii.ColorDisposable colorDisposable = _202C_200F_202C_200F_206C_206E_206B_200E_200B_200D_200B_200D_206A_200E_200B_206B_206F_200C_202E_206E_202E_200E_206A_206B_206F_200B_202E_202C_206E_202C_200E_202D_206A_202C_206D_202D_200E_202E_206F_206D_202E(ImGuiCol.Text, _200D_200C_206C_206F_206C_200F_206D_206A_202D_206B_200B_200E_202B_206C_206B_202A_206B_202C_206C_202B_202E_200D_200D_200D_200C_202A_206F_206B_202B_206A_206F_202B_202D_206F_206A_206A_200D_202E_200B_202C_202E(), true); - try - { - _206B_206E_202A_206C_202A_202A_202A_200B_206B_206A_200B_206E_206E_202A_206B_202C_206F_202B_206B_202D_202A_200C_206C_206C_200B_200F_206C_200B_202D_202A_200C_206B_202C_206B_200E_202A_206C_200B_202E_200D_202E((ImU8String)text); - } - finally - { - num2 = ((colorDisposable == null) ? 798721950 : 798721949); - while (true) - { - int num3 = num2; - num4 = 798721948; - num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - goto end_IL_00ac; - case 1: - _200B_200B_202C_206C_202B_200D_202E_206F_202B_200B_202E_200D_200F_202B_202A_202E_200B_206E_200F_206E_202E_202D_206B_202C_202A_200B_202E_200C_206B_200D_206F_202D_202E_206D_206D_206E_200B_200F_206D_202A_202E((IDisposable)colorDisposable); - num2 = 798721950; - break; - case 0: - num2 = 798721949; - break; - } - continue; - end_IL_00ac: - break; - } - } - goto IL_022d; - } - if (_206C_206F_202A_200E_206C_200D_200C_206B_200C_200D_206C_206C_202A_200D_200C_206C_202E_202E_206D_202D_200D_202C_202D_206C_206C_206E_202D_202E_200E_202D_202B_206C_200F_202A_200B_206A_202B_202D_200E_202D_202E(text, ':', StringComparison.Ordinal)) - { - int num6 = _202C_206D_202D_200E_200E_202E_200F_200C_206A_202A_206C_206F_200F_206D_206F_200D_206D_206D_200D_206E_206E_206D_202E_200B_206E_202B_206C_206E_202A_200C_200B_206D_202D_200E_200E_200C_206A_206E_202A_206A_202E(text, ':', StringComparison.Ordinal); - string text2 = _200F_206B_200E_202D_200E_206D_202B_206F_202B_200C_202A_206F_206F_202B_206E_206A_200C_200B_206D_206B_202A_206C_202E_200B_206A_200F_206B_202C_200D_200F_200F_202B_206E_202A_206B_202A_202B_206C_202B_206C_202E(text, 0, num6); - num4 = 1; - num5 = num6; - string text3 = _200B_206D_206F_202E_206F_202E_202D_206D_200B_202D_202A_200E_206B_200E_202C_200E_200D_206D_206A_200E_206D_200E_200B_202E_200C_206E_200F_202A_206C_206C_200F_200F_206C_200B_202B_202B_200C_200C_202E_202D_202E(_206B_206D_200E_206E_200D_206E_206F_202D_206F_200E_202D_206A_206D_200D_200B_206C_200B_206C_206D_206F_202C_206B_200B_200B_206C_206B_206A_200B_202C_200D_206E_202D_206D_200D_206C_206C_200E_206A_202A_202E(text, (num5 | num4) + (num5 & num4))); - ImRaii.ColorDisposable colorDisposable2 = _202C_200F_202C_200F_206C_206E_206B_200E_200B_200D_200B_200D_206A_200E_200B_206B_206F_200C_202E_206E_202E_200E_206A_206B_206F_200B_202E_202C_206E_202C_200E_202D_206A_202C_206D_202D_200E_202E_206F_206D_202E(ImGuiCol.Text, _200E_202B_200D_206D_200C_200E_202B_206B_206B_200D_206A_202D_200B_202D_206B_200E_206D_202E_206A_206E_206A_202C_200E_206F_202D_202D_200B_206A_206A_206E_200B_206B_206D_206E_200D_206D_200C_200E_206E_200E_202E(), true); - try - { - _200C_200F_200D_202C_202A_200C_200F_202C_206A_202A_202E_206A_200D_206C_206F_206F_200D_200F_202A_202C_202E_206E_202D_202E_202E_206E_206A_202B_206C_200B_200C_206D_202E_206A_206F_206F_200F_200F_202E_206E_202E((ImU8String)_202E_202A_202C_206E_200D_202C_202E_206C_202D_200E_206E_206B_206B_202A_206F_206B_202C_200D_206E_206D_200B_206E_202D_200C_200F_202A_200E_200B_206C_206E_202E_206B_202B_202B_200D_200B_202A_202B_206E_202E(text2, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-332393296))); - } - finally - { - num2 = ((colorDisposable2 == null) ? 290111286 : 290111287); - while (true) - { - int num7 = num2; - num4 = 290111286; - num5 = num7; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - num2 = 290111287; - break; - case 1: - _200B_200B_202C_206C_202B_200D_202E_206F_202B_200B_202E_200D_200F_202B_202A_202E_200B_206E_200F_206E_202E_202D_206B_202C_202A_200B_202E_200C_206B_200D_206F_202D_202E_206D_206D_206E_200B_200F_206D_202A_202E((IDisposable)colorDisposable2); - num2 = 290111286; - break; - case 0: - goto end_IL_0187; - } - continue; - end_IL_0187: - break; - } - } - _206B_206A_202B_206E_200D_202D_206F_206A_206F_206D_200B_200F_200F_200D_202D_200D_206C_206F_202E_206D_206C_202A_206E_202E_206A_202D_202E_202A_200B_206C_200B_202E_200F_202B_206A_202C_200D_200D_200F_200E_202E(); - _206B_206E_202A_206C_202A_202A_202A_200B_206B_206A_200B_206E_206E_202A_206B_202C_206F_202B_206B_202D_202A_200C_206C_206C_200B_200F_206C_200B_202D_202A_200C_206B_202C_206B_200E_202A_206C_200B_202E_200D_202E((ImU8String)text3); - goto IL_022d; - } - _206B_206E_202A_206C_202A_202A_202A_200B_206B_206A_200B_206E_206E_202A_206B_202C_206F_202B_206B_202D_202A_200C_206C_206C_200B_200F_206C_200B_202D_202A_200C_206B_202C_206B_200E_202A_206C_200B_202E_200D_202E((ImU8String)text); - num2 = 401389024; - } - else - { - num2 = 401389027; - } - while (true) - { - int num8 = num2; - num4 = 401389025; - num5 = num8; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 2: - return; - case 1: - break; - case 0: - goto IL_0256; - } - break; - IL_0256: - num2 = 401389024; - } - goto IL_022d; - IL_022d: - int num9 = num; - num4 = 1; - num5 = num9; - int num10 = num5 ^ num4; - int num11 = num5 & num4; - num = num10 + (num11 + num11); - } - } - - static bool _206F_202B_202A_200C_206B_206E_206D_202A_206C_202D_206E_200C_200D_200E_202E_206B_206F_202B_200B_200C_200B_206C_206D_200F_202E_202D_206F_206F_206C_200D_206E_200D_200E_206D_202E_200F_202D_206F_202A_206D_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static string _206B_202D_206D_202B_202C_202A_206D_200E_202A_202B_200B_206D_202D_202B_206D_200C_200D_206A_202D_206B_206F_206E_200E_202E_200C_200C_206A_202E_200C_206E_202E_202B_200C_202D_202E_206D_200C_202A_200F_206A_202E(Regex P_0, string P_1, MatchEvaluator P_2) - { - return P_0.Replace(P_1, P_2); - } - - static bool _200D_206B_200F_200C_206D_200C_206B_206F_200B_202D_202D_202B_200C_200E_202B_200F_206C_202E_200B_200F_200B_202B_206F_202D_200D_202B_202E_200D_200D_202D_202D_200E_200D_206D_206E_202A_206E_206D_200C_206A_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); - } - - static string _200D_206B_202E_200E_200E_202E_202C_202C_202C_206F_206B_200B_200E_206E_202A_206C_202C_206C_202C_200B_200E_206A_202B_206C_202B_200D_206A_202A_206D_206D_200F_200F_206A_206B_200F_202B_200F_200D_200F_202B_202E(Regex P_0, string P_1, string P_2) - { - return P_0.Replace(P_1, P_2); - } - - static string _202A_206D_200B_206E_206B_206A_200C_206E_206F_206C_206A_202B_200E_206A_202B_206C_206E_200E_202B_206F_200C_200C_202D_200E_200D_200C_200B_206E_202A_202B_200B_202E_206A_206C_206F_202A_200D_202D_202E_202B_202E(string P_0, string P_1, string P_2, StringComparison P_3) - { - return P_0.Replace(P_1, P_2, P_3); - } - - static void _202C_202C_206B_202C_202B_202C_206A_202E_200E_200B_202C_200E_202E_206B_200C_206D_202C_206C_202A_206A_206A_206D_206E_206C_206F_202D_202C_202C_200B_202C_206F_202B_206B_200F_206A_206C_202D_200B_202E_202D_202E(Vector2 P_0, ImGuiCond P_1) - { - ImGui.SetNextWindowSize(P_0, P_1); - } - - static void _206F_202D_206A_202D_200D_202E_200D_200C_206C_200E_206C_206F_200C_206C_202C_200B_206E_206C_206C_200B_206A_206E_200C_200F_202A_202E_202A_200C_206A_202E_200D_206C_202E_206A_200C_200D_202E_206B_202E_200D_202E(Vector2 P_0, Vector2 P_1) - { - ImGui.SetNextWindowSizeConstraints(P_0, P_1); - } - - static bool _202C_202D_206F_206F_206E_206D_202D_202C_202A_206F_200E_206C_206E_200F_206C_206B_200D_206C_202E_202A_200D_202D_200C_202B_206E_202C_206E_206E_202D_206B_200F_200C_206C_202E_200E_206B_206F_206F_202A_206E_202E(ImU8String P_0, ref bool P_1, ImGuiWindowFlags P_2) - { - return ImGui.Begin(P_0, ref P_1, P_2); - } - - static void _206D_200E_206C_202B_206B_202D_202C_206F_206C_206B_206D_206F_206B_202B_202B_200D_206C_202C_202A_206B_206D_202D_206A_206A_206A_202A_206A_206A_202C_200C_202C_200D_200C_200C_200B_200B_206E_200B_202D_202E_202E() - { - ImGui.End(); - } - - static void _200B_200B_202C_206C_202B_200D_202E_206F_202B_200B_202E_200D_200F_202B_202A_202E_200B_206E_200F_206E_202E_202D_206B_202C_202A_200B_202E_200C_206B_200D_206F_202D_202E_206D_206D_206E_200B_200F_206D_202A_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static Vector4 _200D_200C_206C_206F_206C_200F_206D_206A_202D_206B_200B_200E_202B_206C_206B_202A_206B_202C_206C_202B_202E_200D_200D_200D_200C_202A_206F_206B_202B_206A_206F_202B_202D_206F_206A_206A_200D_202E_200B_202C_202E() - { - return ImGuiColors.DalamudRed; - } - - static Vector4 _206E_200F_202A_202C_206F_200C_200F_206A_202E_206B_200C_200F_206D_206A_206F_202B_202D_206C_202E_202D_200D_206B_206B_200B_202D_200C_202D_206F_202E_206C_202A_202B_206A_200E_200F_206C_202B_206C_206D_202D_202E() - { - return ImGuiColors.DalamudYellow; - } - - static Vector4 _206B_206F_200F_202A_206C_206C_206F_206C_202A_200E_202B_200E_202D_202E_202B_202B_206C_202C_202E_202A_206A_206E_200E_206A_206C_206F_200F_206C_200E_200B_202E_202D_206A_206F_200B_200E_206B_202A_200E_200E_202E() - { - return ImGuiColors.DalamudOrange; - } - - static IUiBuilder _206F_200C_206B_206C_202C_200D_206A_202C_202E_202C_200E_206E_206E_200F_206F_202C_202C_206B_206B_206A_206B_202C_202A_206B_206A_202A_206C_206D_202D_206E_202C_206C_202C_200C_202E_200D_200E_206E_200F_206E_202E(IDalamudPluginInterface P_0) - { - return P_0.UiBuilder; - } - - static IFontHandle _200B_202C_206C_206C_206D_202B_206C_206A_200C_206B_202E_206A_200C_202E_200B_206A_206A_206A_206E_200F_202B_206A_202E_206C_200C_202A_200C_202D_202E_206A_202B_206E_202D_200B_202E_200D_206D_206C_202B_202A_202E(IUiBuilder P_0) - { - return P_0.IconFontFixedWidthHandle; - } - - static IDisposable _206B_202B_200F_206C_206E_206B_206E_206F_200C_206D_206A_206E_202A_202E_200F_206C_202B_206A_202E_206D_200C_200B_206A_202B_202C_206D_206B_200E_206B_206F_202C_206A_206E_200D_206B_206E_206C_202C_206F_200E_202E(IFontHandle P_0) - { - return P_0.Push(); - } - - static ImRaii.ColorDisposable _202C_200F_202C_200F_206C_206E_206B_200E_200B_200D_200B_200D_206A_200E_200B_206B_206F_200C_202E_206E_202E_200E_206A_206B_206F_200B_202E_202C_206E_202C_200E_202D_206A_202C_206D_202D_200E_202E_206F_206D_202E(ImGuiCol P_0, Vector4 P_1, bool P_2) - { - return ImRaii.PushColor(P_0, P_1, P_2); - } - - static string _200F_202A_200F_202B_200C_200E_206C_200C_206F_206B_200F_202D_200C_202A_206A_206D_200F_206E_206C_206F_206A_202D_202C_202A_206C_206C_206D_202C_206F_200E_206C_206B_200D_202E_200B_202C_200D_200D_200D_200C_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static void _200D_206E_206C_206D_206A_202B_206E_200B_200D_200D_200D_206F_206A_202A_202B_200C_202A_200F_200C_202B_202A_206A_200E_206C_202E_200C_202E_202A_206D_206A_202C_202D_200D_206B_206E_202E_200E_202C_206C_200C_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static void _206B_206A_202B_206E_200D_202D_206F_206A_206F_206D_200B_200F_200F_200D_202D_200D_206C_206F_202E_206D_206C_202A_206E_202E_206A_202D_202E_202A_200B_206C_200B_202E_200F_202B_206A_202C_200D_200D_200F_200E_202E() - { - ImGui.SameLine(); - } - - static void _200C_200F_200D_202C_202A_200C_200F_202C_206A_202A_202E_206A_200D_206C_206F_206F_200D_200F_202A_202C_202E_206E_202D_202E_202E_206E_206A_202B_206C_200B_200C_206D_202E_206A_206F_206F_200F_200F_202E_206E_202E(ImU8String P_0) - { - ImGui.Text(P_0); - } - - static void _206D_202E_202D_206A_206E_206F_206A_206D_202C_202C_206D_200B_200B_202A_200C_200B_206B_202A_200D_206C_206D_200D_202E_200D_200F_206B_200F_202C_206D_202C_200E_200F_202A_202E_206D_202D_206B_206E_206D_200E_202E() - { - ImGui.Separator(); - } - - static bool _200E_200E_206C_206D_206C_202A_202C_206B_202E_200B_206D_202E_202B_202D_200D_206B_206E_206E_202D_200C_202B_200D_206D_206D_200F_200F_206E_200B_206E_206A_206D_200F_200C_200B_202C_206D_206F_200C_200B_200E_202E(string P_0, ref ElementId P_1) - { - return ElementId.TryFromString(P_0, out P_1); - } - - static bool _202B_206E_200D_200E_200F_200C_202E_206F_200C_206F_206D_202A_206D_202E_200F_202D_202D_202D_206C_200B_202D_200C_200B_206D_202E_200E_206E_200D_202B_202C_206A_202D_200D_200C_206C_202C_206F_200C_206D_202B_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } - - static string[] _200F_200B_206B_202E_200B_206F_202A_206C_200E_206B_206C_202C_206F_206C_206C_202E_202B_206D_206B_206C_202D_202C_200D_202C_200B_202D_202C_200E_202C_206B_202A_200C_206E_200B_206B_200C_202D_200C_206D_202E_202E(string P_0, char P_1, StringSplitOptions P_2) - { - return P_0.Split(P_1, P_2); - } - - static string _200E_202C_202A_200E_200E_206D_206D_206A_200E_202D_206E_206A_206D_206F_200D_206C_200F_206F_202B_206A_202B_200F_206F_206E_200B_202E_202E_202E_200B_202D_202D_202A_206E_200D_202A_202B_200F_200B_202B_206D_202E(string P_0) - { - return P_0.Trim(); - } - - static void _200B_206B_206C_206E_202A_202B_202B_202D_202B_202D_202B_200E_206B_206A_206F_206E_206F_202C_202D_202D_202D_202C_206F_200B_202E_206B_200E_202D_202D_206D_206F_206B_202E_200C_202E_206D_202E_206F_202E_200D_202E() - { - ImGui.Spacing(); - } - - static bool _202C_200F_206B_202A_206D_200E_206F_206F_200B_206F_200C_206D_206C_206E_206D_200C_202D_200F_200D_200C_202E_206D_206D_202C_200E_200F_200E_202E_202A_202C_202A_206E_206E_202D_202D_202B_206B_206C_200F_206E_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.StartsWith(P_1, P_2); - } - - static void _206B_206E_202A_206C_202A_202A_202A_200B_206B_206A_200B_206E_206E_202A_206B_202C_206F_202B_206B_202D_202A_200C_206C_206C_200B_200F_206C_200B_202D_202A_200C_206B_202C_206B_200E_202A_206C_200B_202E_200D_202E(ImU8String P_0) - { - ImGui.TextWrapped(P_0); - } - - static Vector4 _206C_202D_200F_202C_202D_202B_200E_200C_200F_206D_202C_200C_202D_206C_200E_202A_202B_200E_206F_206F_202D_202C_206B_202D_202A_206C_202D_206F_206D_200C_202A_200F_206B_200E_200B_206D_202E_206A_200C_202A_202E() - { - return ImGuiColors.HealerGreen; - } - - static string[] _202A_202B_202B_200B_206B_202A_206B_206F_206D_202E_202A_202C_202D_200E_206A_200D_206D_200D_206A_200C_202C_206B_206A_202C_206A_202B_202B_206E_202D_202C_202D_200F_200C_206B_206A_202C_200C_206D_200C_202E_202E(string P_0, char P_1, int P_2, StringSplitOptions P_3) - { - return P_0.Split(P_1, P_2, P_3); - } - - static void _202D_202D_206A_200B_206A_206D_200C_206C_206F_200D_206A_206A_206D_200C_206C_202A_206C_206C_200F_202B_206C_206C_206C_206A_200D_206D_202E_206B_202C_202A_206E_202B_206B_202E_200F_202A_200E_206F_200E_206E_202E() - { - ImGui.Indent(); - } - - static Vector4 _206E_200C_202C_206E_200B_200B_206D_202E_206F_206C_200C_200E_202D_202B_200B_206C_202E_206B_206D_200E_202B_202A_200F_200E_206F_206D_206E_206F_206B_200B_206E_200D_206C_200E_206B_202B_202C_200F_202C_206E_202E() - { - return ImGuiColors.TankBlue; - } - - static Vector4 _206A_206D_206F_206A_200E_200B_206D_202B_202A_206A_206A_206B_206F_202B_206E_206E_202A_202B_200B_202A_206D_206D_202B_206E_200E_202B_202C_200E_202E_206D_202D_206D_206A_202C_200C_206C_202A_200F_202C_200D_202E() - { - return ImGuiColors.DPSRed; - } - - static Vector4 _202D_202D_202B_202D_206D_200F_200B_200D_206E_206A_202A_202E_206E_202C_202E_206B_200D_202E_200D_200C_200F_202B_206E_200C_202D_206D_206F_200F_202B_202E_200C_202B_202D_200E_206C_202C_206F_202D_202D_206C_202E() - { - return ImGuiColors.ParsedGreen; - } - - static Vector4 _200E_202B_200D_206D_200C_200E_202B_206B_206B_200D_206A_202D_200B_202D_206B_200E_206D_202E_206A_206E_206A_202C_200E_206F_202D_202D_200B_206A_206A_206E_200B_206B_206D_206E_200D_206D_200C_200E_206E_200E_202E() - { - return ImGuiColors.ParsedBlue; - } - - static Vector4 _206E_200C_200E_206C_202D_202D_200B_202A_202C_200E_200B_206F_206E_206E_206A_200B_206A_200E_206A_200C_200D_200E_202C_202C_200D_200F_202A_200E_202B_200F_200B_202B_202C_206F_206B_206B_206E_200D_202A_200D_202E() - { - return ImGuiColors.DalamudViolet; - } - - static void _200C_202E_200E_200B_200F_206F_202E_202D_206B_200D_206C_200F_200B_206F_206A_206E_200F_202D_206F_202C_200D_202C_200E_206E_202E_200B_200D_202C_206F_206D_206A_206F_200F_206D_202C_200C_202C_200D_206C_200D_202E() - { ImGui.Unindent(); } - static bool _206C_206F_202A_200E_206C_200D_200C_206B_200C_200D_206C_206C_202A_200D_200C_206C_202E_202E_206D_202D_200D_202C_202D_206C_206C_206E_202D_202E_200E_202D_202B_206C_200F_202A_200B_206A_202B_202D_200E_202D_202E(string P_0, char P_1, StringComparison P_2) + private static void DrawGenericDetails(string description) { - return P_0.Contains(P_1, P_2); - } - - static int _202C_206D_202D_200E_200E_202E_200F_200C_206A_202A_206C_206F_200F_206D_206F_200D_206D_206D_200D_206E_206E_206D_202E_200B_206E_202B_206C_206E_202A_200C_200B_206D_202D_200E_200E_200C_206A_206E_202A_206A_202E(string P_0, char P_1, StringComparison P_2) - { - return P_0.IndexOf(P_1, P_2); - } - - static string _200F_206B_200E_202D_200E_206D_202B_206F_202B_200C_202A_206F_206F_202B_206E_206A_200C_200B_206D_206B_202A_206C_202E_200B_206A_200F_206B_202C_200D_200F_200F_202B_206E_202A_206B_202A_202B_206C_202B_206C_202E(string P_0, int P_1, int P_2) - { - return P_0.Substring(P_1, P_2); - } - - static string _206B_206D_200E_206E_200D_206E_206F_202D_206F_200E_202D_206A_206D_200D_200B_206C_200B_206C_206D_206F_202C_206B_200B_200B_206C_206B_206A_200B_202C_200D_206E_202D_206D_200D_206C_206C_200E_206A_202A_202E(string P_0, int P_1) - { - return P_0.Substring(P_1); - } - - static string _200B_206D_206F_202E_206F_202E_202D_206D_200B_202D_202A_200E_206B_200E_202C_200E_200D_206D_206A_200E_206D_200E_200B_202E_200C_206E_200F_202A_206C_206C_200F_200F_206C_200B_202B_202B_200C_200C_202E_202D_202E(string P_0) - { - return P_0.TrimStart(); - } - - static string _202E_202A_202C_206E_200D_202C_202E_206C_202D_200E_206E_206B_206B_202A_206F_206B_202C_200D_206E_206D_200B_206E_202D_200C_200F_202A_200E_200B_206C_206E_202E_206B_202B_202B_200D_200B_202A_202B_206E_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static Regex _202B_202E_206B_206B_200D_202B_202C_202A_200E_206E_202B_200B_202B_206E_200B_200C_202E_200E_206B_206A_206F_202C_200B_206A_200D_206A_200F_206B_206C_206B_200F_200E_206E_206E_206C_202B_202A_206D_206B_202E(string P_0, RegexOptions P_1) - { - return new Regex(P_0, P_1); + string[] array = description.Split('\n'); + for (int i = 0; i < array.Length; i++) + { + string text = array[i].Trim(); + if (string.IsNullOrEmpty(text)) + { + ImGui.Spacing(); + } + else if (text.StartsWith("Error:", StringComparison.Ordinal) || text.StartsWith("Invalid", StringComparison.Ordinal) || text.StartsWith("Missing", StringComparison.Ordinal)) + { + using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudRed)) + { + ImGui.TextWrapped(text); + } + } + else if (text.Contains(':', StringComparison.Ordinal)) + { + int num = text.IndexOf(':', StringComparison.Ordinal); + string text2 = text.Substring(0, num); + string text3 = text.Substring(num + 1).TrimStart(); + using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.ParsedBlue)) + { + ImGui.Text(text2 + ":"); + } + ImGui.SameLine(); + ImGui.TextWrapped(text3); + } + else + { + ImGui.TextWrapped(text); + } + } } } diff --git a/Questionable/Questionable.Windows.Setup/EssentialSettingsStep.cs b/Questionable/Questionable.Windows.Setup/EssentialSettingsStep.cs index 4bd5dee..9890b02 100644 --- a/Questionable/Questionable.Windows.Setup/EssentialSettingsStep.cs +++ b/Questionable/Questionable.Windows.Setup/EssentialSettingsStep.cs @@ -1,8 +1,5 @@ using System; -using System.Collections.Generic; using System.Linq; -using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Plugin; using LLib.GameData; @@ -12,54 +9,6 @@ namespace Questionable.Windows.Setup; internal sealed class EssentialSettingsStep : ISetupStep { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<IExposedPlugin, bool> _003C_003E9__12_0; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal bool _003CAutoDutyInstalled_003Eb__12_0(IExposedPlugin x) - { - int num = ((!_202C_206F_206D_200C_200E_202B_202A_206A_206A_206D_202C_202B_206E_200C_200D_202E_202C_200F_200F_200C_200D_200F_206F_202B_202D_202B_200D_206F_202A_200E_202D_202B_202A_200D_206B_200C_200C_200C_206F_206E_202E(_200F_206F_202C_202B_200D_202E_202D_202C_202A_200D_200F_202E_200C_202E_202C_202B_202D_206E_200E_206C_202D_200C_200E_200B_202A_202E_206B_202B_202C_200D_200C_202E_200C_200B_202E_200E_200D_202B_200C_200E_202E(x), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1920887579))) ? 794105866 : 794105867); - while (true) - { - int num2 = num; - int num3 = 794105866; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0055; - case 0: - return false; - case 1: - return _202D_200C_200F_206F_200C_200C_202E_202B_202B_200B_202C_202A_206C_200D_202B_206F_200C_200F_200C_206F_202A_202B_202A_200D_202C_200D_202E_206E_202E_206B_206A_206B_202A_200B_206A_200E_206C_206A_200C_206B_202E(x); - } - continue; - IL_0055: - num = 794105867; - } - } - - static string _200F_206F_202C_202B_200D_202E_202D_202C_202A_200D_200F_202E_200C_202E_202C_202B_202D_206E_200E_206C_202D_200C_200E_200B_202A_202E_206B_202B_202C_200D_200C_202E_200C_200B_202E_200E_200D_202B_200C_200E_202E(IExposedPlugin P_0) - { - return P_0.InternalName; - } - - static bool _202C_206F_206D_200C_200E_202B_202A_206A_206A_206D_202C_202B_206E_200C_200D_202E_202C_200F_200F_200C_200D_200F_206F_202B_202D_202B_200D_206F_202A_200E_202D_202B_202A_200D_206B_200C_200C_200C_206F_206E_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static bool _202D_200C_200F_206F_200C_200C_202E_202B_202B_200B_202C_202A_206C_200D_202B_206F_200C_200F_200C_206F_202A_202B_202A_200D_202C_200D_202E_206E_202E_206B_206A_206B_202A_200B_206A_200E_206C_206A_200C_206B_202E(IExposedPlugin P_0) - { - return P_0.IsLoaded; - } - } - private const float MaxComboWidth = 300f; private readonly GeneralConfigComponent _generalConfigComponent; @@ -68,14 +17,7 @@ internal sealed class EssentialSettingsStep : ISetupStep private readonly IDalamudPluginInterface _pluginInterface; - public string Title - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1784162476); - } - } + public string Title => "Essential settings"; public bool CanAdvance => true; @@ -88,144 +30,41 @@ internal sealed class EssentialSettingsStep : ISetupStep public bool ShouldShow() { - int num = (GrandCompanyNotJoined() ? (-22021032) : (-22021031)); - while (true) + if (!GrandCompanyNotJoined()) { - int num2 = num; - int num3 = -22021032; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0047; - case 1: - return AutoDutyInstalled(); - case 0: - return true; - } - continue; - IL_0047: - num = -22021031; + return AutoDutyInstalled(); } + return true; } - bool ISetupStep.ShouldShow() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldShow - return this.ShouldShow(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public void Draw() { - int num = ((!GrandCompanyNotJoined()) ? 607897982 : 607897977); - while (true) + if (GrandCompanyNotJoined()) { - int num2 = num; - int num3 = 607897978; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - UiThemeUtils.SectionHeader(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1099527439)); - _206B_206A_202A_206B_200E_200C_206C_200F_206A_206C_202D_206B_206D_200F_200D_202A_206C_206E_202D_202C_206B_206A_200F_202B_206B_202E_206B_200F_206A_200D_202C_206E_200F_202A_202D_206C_202E_202D_200E_200E_202E(0f); - _202A_202E_200D_202A_202E_200D_206F_206D_202C_202A_200D_202E_202B_200F_206C_202D_206E_206E_200B_200D_206F_200F_206F_202E_200C_206A_200D_206E_206F_200C_206E_202A_206A_202E_200D_200D_200D_206C_202A_206F_202E(ref UiThemeUtils.DimTextColor, (ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1066832142)); - _202C_206D_200E_202D_200C_200B_202B_200D_200C_206B_206C_206F_202D_200B_206F_200B_200B_200B_200B_200B_200F_202A_206C_206A_206D_206D_202C_202E_202B_206F_202D_206C_202C_200C_202D_200B_206E_206E_202B_206B_202E(); - _dutyConfigComponent.DrawAutoDutySettings(); - num = 607897976; - break; - case 3: - UiThemeUtils.SectionHeader(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(819285658)); - _206B_206A_202A_206B_200E_200C_206C_200F_206A_206C_202D_206B_206D_200F_200D_202A_206C_206E_202D_202C_206B_206A_200F_202B_206B_202E_206B_200F_206A_200D_202C_206E_200F_202A_202D_206C_202E_202D_200E_200E_202E(0f); - _202A_202E_200D_202A_202E_200D_206F_206D_202C_202A_200D_202E_202B_200F_206C_202D_206E_206E_200B_200D_206F_200F_206F_202E_200C_206A_200D_206E_206F_200C_206E_202A_206A_202E_200D_200D_200D_206C_202A_206F_202E(ref UiThemeUtils.DimTextColor, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(476554444)); - _202C_206D_200E_202D_200C_200B_202B_200D_200C_206B_206C_206F_202D_200B_206F_200B_200B_200B_200B_200B_200F_202A_206C_206A_206D_206D_202C_202E_202B_206F_202D_206C_202C_200C_202D_200B_206E_206E_202B_206B_202E(); - _generalConfigComponent.DrawGrandCompanySelector(_202B_202B_202C_206A_200E_206F_202E_206B_200E_200C_206D_202E_202A_202C_200F_206D_200C_206F_200F_200F_206C_206E_202E_202E_200F_202E_206C_206D_206F_200C_206E_200B_206F_206B_200F_202D_202A_206A_206A_206E_202E(_206D_202B_202A_200D_206A_206F_202E_200F_200F_206A_206A_202B_202B_200C_202A_206F_202B_200F_200E_202E_206C_206F_202D_206E_202E_206C_200E_202D_200C_202E_202E_200D_206F_206E_200E_202D_206B_206A_206A_200D_202E().X, 300f)); - UiThemeUtils.SectionSpacing(); - num = 607897982; - break; - case 2: - return; - case 4: - num = ((!AutoDutyInstalled()) ? 607897976 : 607897979); - break; - case 0: - num = 607897977; - break; - } + UiThemeUtils.SectionHeader("Grand Company"); + ImGui.PushTextWrapPos(0f); + ImGui.TextColored(in UiThemeUtils.DimTextColor, "You haven't joined a Grand Company yet. Pick the one you intend to join - the MSQ stalls at \"The Company You Keep\" without it."); + ImGui.PopTextWrapPos(); + _generalConfigComponent.DrawGrandCompanySelector(MathF.Min(ImGui.GetContentRegionAvail().X, 300f)); + UiThemeUtils.SectionSpacing(); + } + if (AutoDutyInstalled()) + { + UiThemeUtils.SectionHeader("Dungeons (AutoDuty)"); + ImGui.PushTextWrapPos(0f); + ImGui.TextColored(in UiThemeUtils.DimTextColor, "AutoDuty is installed. Enable this to let Questionable clear mandatory MSQ dungeons instead of stopping at them."); + ImGui.PopTextWrapPos(); + _dutyConfigComponent.DrawAutoDutySettings(); } - } - - void ISetupStep.Draw() - { - //ILSpy generated this explicit interface implementation from .override directive in Draw - this.Draw(); } private static bool GrandCompanyNotJoined() { - return _202B_200E_206A_206B_202C_206C_200D_200E_202E_206D_200F_202A_206F_206C_200E_202B_206C_202D_206E_202E_206F_202D_206C_200F_206F_200B_206D_202A_202A_200D_206E_202C_206A_206C_200C_206E_206E_200B_200B_200C_202E() == 0; + return GrandCompanyHelper.GetGrandCompanyId() == 0; } private bool AutoDutyInstalled() { - return _202B_202A_202C_206E_206D_206B_202B_200E_206B_202A_206D_202E_202E_202B_200E_200C_206F_202C_202E_202B_206A_206D_200B_206F_202D_200B_206A_202D_202D_206C_200B_206C_206A_200C_206C_200C_202A_206D_200C_206F_202E(_pluginInterface).Any([MethodImpl(MethodImplOptions.NoInlining)] (IExposedPlugin x) => - { - int num = ((!_003C_003Ec._202C_206F_206D_200C_200E_202B_202A_206A_206A_206D_202C_202B_206E_200C_200D_202E_202C_200F_200F_200C_200D_200F_206F_202B_202D_202B_200D_206F_202A_200E_202D_202B_202A_200D_206B_200C_200C_200C_206F_206E_202E(_003C_003Ec._200F_206F_202C_202B_200D_202E_202D_202C_202A_200D_200F_202E_200C_202E_202C_202B_202D_206E_200E_206C_202D_200C_200E_200B_202A_202E_206B_202B_202C_200D_200C_202E_200C_200B_202E_200E_200D_202B_200C_200E_202E(x), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1920887579))) ? 794105866 : 794105867); - while (true) - { - int num2 = num; - int num3 = 794105866; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0055; - case 0: - return false; - case 1: - return _003C_003Ec._202D_200C_200F_206F_200C_200C_202E_202B_202B_200B_202C_202A_206C_200D_202B_206F_200C_200F_200C_206F_202A_202B_202A_200D_202C_200D_202E_206E_202E_206B_206A_206B_202A_200B_206A_200E_206C_206A_200C_206B_202E(x); - } - continue; - IL_0055: - num = 794105867; - } - }); - } - - static void _206B_206A_202A_206B_200E_200C_206C_200F_206A_206C_202D_206B_206D_200F_200D_202A_206C_206E_202D_202C_206B_206A_200F_202B_206B_202E_206B_200F_206A_200D_202C_206E_200F_202A_202D_206C_202E_202D_200E_200E_202E(float P_0) - { - ImGui.PushTextWrapPos(P_0); - } - - static void _202A_202E_200D_202A_202E_200D_206F_206D_202C_202A_200D_202E_202B_200F_206C_202D_206E_206E_200B_200D_206F_200F_206F_202E_200C_206A_200D_206E_206F_200C_206E_202A_206A_202E_200D_200D_200D_206C_202A_206F_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static void _202C_206D_200E_202D_200C_200B_202B_200D_200C_206B_206C_206F_202D_200B_206F_200B_200B_200B_200B_200B_200F_202A_206C_206A_206D_206D_202C_202E_202B_206F_202D_206C_202C_200C_202D_200B_206E_206E_202B_206B_202E() - { - ImGui.PopTextWrapPos(); - } - - static Vector2 _206D_202B_202A_200D_206A_206F_202E_200F_200F_206A_206A_202B_202B_200C_202A_206F_202B_200F_200E_202E_206C_206F_202D_206E_202E_206C_200E_202D_200C_202E_202E_200D_206F_206E_200E_202D_206B_206A_206A_200D_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static float _202B_202B_202C_206A_200E_206F_202E_206B_200E_200C_206D_202E_202A_202C_200F_206D_200C_206F_200F_200F_206C_206E_202E_202E_200F_202E_206C_206D_206F_200C_206E_200B_206F_206B_200F_202D_202A_206A_206A_206E_202E(float P_0, float P_1) - { - return MathF.Min(P_0, P_1); - } - - static byte _202B_200E_206A_206B_202C_206C_200D_200E_202E_206D_200F_202A_206F_206C_200E_202B_206C_202D_206E_202E_206F_202D_206C_200F_206F_200B_206D_202A_202A_200D_206E_202C_206A_206C_200C_206E_206E_200B_200B_200C_202E() - { - return GrandCompanyHelper.GetGrandCompanyId(); - } - - static IEnumerable<IExposedPlugin> _202B_202A_202C_206E_206D_206B_202B_200E_206B_202A_206D_202E_202E_202B_200E_200C_206F_202C_202E_202B_206A_206D_200B_206F_202D_200B_206A_202D_202D_206C_200B_206C_206A_200C_206C_200C_202A_206D_200C_206F_202E(IDalamudPluginInterface P_0) - { - return P_0.InstalledPlugins; + return _pluginInterface.InstalledPlugins.Any((IExposedPlugin x) => x.InternalName == "AutoDuty" && x.IsLoaded); } } diff --git a/Questionable/Questionable.Windows.Setup/PluginsStep.cs b/Questionable/Questionable.Windows.Setup/PluginsStep.cs index 5a31174..80db087 100644 --- a/Questionable/Questionable.Windows.Setup/PluginsStep.cs +++ b/Questionable/Questionable.Windows.Setup/PluginsStep.cs @@ -1,4 +1,3 @@ -using System.Runtime.CompilerServices; using Questionable.Windows.ConfigComponents; namespace Questionable.Windows.Setup; @@ -9,14 +8,7 @@ internal sealed class PluginsStep : ISetupStep private bool _allRequiredInstalled; - public string Title - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1242474630); - } - } + public string Title => "Required plugins"; public bool CanAdvance => _allRequiredInstalled; @@ -30,20 +22,8 @@ internal sealed class PluginsStep : ISetupStep return true; } - bool ISetupStep.ShouldShow() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldShow - return this.ShouldShow(); - } - public void Draw() { _pluginConfigComponent.Draw(out _allRequiredInstalled); } - - void ISetupStep.Draw() - { - //ILSpy generated this explicit interface implementation from .override directive in Draw - this.Draw(); - } } diff --git a/Questionable/Questionable.Windows.Setup/ReadyStep.cs b/Questionable/Questionable.Windows.Setup/ReadyStep.cs index aaaa504..5be682d 100644 --- a/Questionable/Questionable.Windows.Setup/ReadyStep.cs +++ b/Questionable/Questionable.Windows.Setup/ReadyStep.cs @@ -1,19 +1,10 @@ -using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; namespace Questionable.Windows.Setup; internal sealed class ReadyStep : ISetupStep { - public string Title - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1485427555); - } - } + public string Title => "You're ready"; public bool CanAdvance => true; @@ -22,60 +13,17 @@ internal sealed class ReadyStep : ISetupStep return true; } - bool ISetupStep.ShouldShow() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldShow - return this.ShouldShow(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public void Draw() { - _206E_206F_206A_202E_202E_206C_206E_202B_200C_200B_206D_200D_202B_206F_200C_206A_200E_200B_202B_206D_200E_206A_202B_200E_206C_200B_206E_200B_200F_202E_206F_202A_206B_200C_206F_200D_200C_206C_206F_206C_202E(0f); - _200E_200F_206A_200B_202D_200C_200C_200C_200D_206F_200E_200B_206C_206A_202E_206E_200D_200D_206E_206E_200F_200B_206B_202B_202C_206F_200D_206F_206C_202D_202D_206F_206D_202D_206B_202E_206B_206C_200D_202E_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(337843363)); - _202C_200E_200B_200E_202B_206A_206A_206D_200E_206C_202E_202B_200D_206B_200F_202D_206A_202A_206F_202E_202E_200F_206A_202B_206B_200D_200C_200F_200C_200D_200D_206E_200D_200E_202D_202E_202C_206D_202D_202E(); - _200D_202E_202B_202D_202E_206C_202A_206E_200E_200F_200B_200C_202C_202C_206B_206C_206D_206F_200F_206A_206A_206A_202C_202C_202B_202A_200C_206A_202A_200C_206D_202B_206C_206B_202A_200E_200B_202E_202A_202D_202E(); - _206F_200E_202C_206D_206F_206F_200C_200F_200E_206C_206A_200B_202A_202C_206B_202A_200F_200F_200F_202C_206F_202E_202B_206A_206F_200F_206E_202E_200F_206F_200C_200C_200F_206A_200C_202C_202A_206A_200E_200D_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-986146011)); - _206F_200E_202C_206D_206F_206F_200C_200F_200E_206C_206A_200B_202A_202C_206B_202A_200F_200F_200F_202C_206F_202E_202B_206A_206F_200F_206E_202E_200F_206F_200C_200C_200F_206A_200C_202C_202A_206A_200E_200D_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(599483750)); - _206F_200E_202C_206D_206F_206F_200C_200F_200E_206C_206A_200B_202A_202C_206B_202A_200F_200F_200F_202C_206F_202E_202B_206A_206F_200F_206E_202E_200F_206F_200C_200C_200F_206A_200C_202C_202A_206A_200E_200D_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-112977426)); - _206F_200E_202C_206D_206F_206F_200C_200F_200E_206C_206A_200B_202A_202C_206B_202A_200F_200F_200F_202C_206F_202E_202B_206A_206F_200F_206E_202E_200F_206F_200C_200C_200F_206A_200C_202C_202A_206A_200E_200D_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2083520083)); - _200D_202E_202B_202D_202E_206C_202A_206E_200E_200F_200B_200C_202C_202C_206B_206C_206D_206F_200F_206A_206A_206A_202C_202C_202B_202A_200C_206A_202A_200C_206D_202B_206C_206B_202A_200E_200B_202E_202A_202D_202E(); - _202B_200C_206B_202B_200B_200C_202A_200C_200B_200F_202B_202C_206B_200F_202A_202C_206F_200F_200E_206B_206D_206E_202B_200F_200D_206A_202C_202D_206F_202D_202B_200C_206C_206C_202E_206C_202D_206A_200D_200D_202E(ref UiThemeUtils.DimTextColor, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1984563182)); - } - - void ISetupStep.Draw() - { - //ILSpy generated this explicit interface implementation from .override directive in Draw - this.Draw(); - } - - static void _206E_206F_206A_202E_202E_206C_206E_202B_200C_200B_206D_200D_202B_206F_200C_206A_200E_200B_202B_206D_200E_206A_202B_200E_206C_200B_206E_200B_200F_202E_206F_202A_206B_200C_206F_200D_200C_206C_206F_206C_202E(float P_0) - { - ImGui.PushTextWrapPos(P_0); - } - - static void _200E_200F_206A_200B_202D_200C_200C_200C_200D_206F_200E_200B_206C_206A_202E_206E_200D_200D_206E_206E_200F_200B_206B_202B_202C_206F_200D_206F_206C_202D_202D_206F_206D_202D_206B_202E_206B_206C_200D_202E_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static void _202C_200E_200B_200E_202B_206A_206A_206D_200E_206C_202E_202B_200D_206B_200F_202D_206A_202A_206F_202E_202E_200F_206A_202B_206B_200D_200C_200F_200C_200D_200D_206E_200D_200E_202D_202E_202C_206D_202D_202E() - { + ImGui.PushTextWrapPos(0f); + ImGui.TextUnformatted("Press Finish to complete setup. To use Questionable:"); ImGui.PopTextWrapPos(); - } - - static void _200D_202E_202B_202D_202E_206C_202A_206E_200E_200F_200B_200C_202C_202C_206B_206C_206D_206F_200F_206A_206A_206A_202C_202C_202B_202A_200C_206A_202A_200C_206D_202B_206C_206B_202A_200E_200B_202E_202A_202D_202E() - { ImGui.Spacing(); - } - - static void _206F_200E_202C_206D_206F_206F_200C_200F_200E_206C_206A_200B_202A_202C_206B_202A_200F_200F_200F_202C_206F_202E_202B_206A_206F_200F_206E_202E_200F_206F_200C_200C_200F_206A_200C_202C_202A_206A_200E_200D_202E(ImU8String P_0) - { - ImGui.BulletText(P_0); - } - - static void _202B_200C_206B_202B_200B_200C_202A_200C_200B_200F_202B_202C_206B_200F_202A_202C_206F_200F_200E_206B_206D_206E_202B_200F_200D_206A_202C_202D_206F_202D_202B_200C_206C_206C_202E_206C_202D_206A_200D_200D_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); + ImGui.BulletText("/qst - open the quest window"); + ImGui.BulletText("/qst start - begin questing"); + ImGui.BulletText("/qst stop - stop questing"); + ImGui.BulletText("Double-tap ESC to cancel questing or movement at any time"); + ImGui.Spacing(); + ImGui.TextColored(in UiThemeUtils.DimTextColor, "Re-open this setup any time with /qst setup or from the Plugins tab in the config window."); } } diff --git a/Questionable/Questionable.Windows.Setup/WelcomeStep.cs b/Questionable/Questionable.Windows.Setup/WelcomeStep.cs index 3c43ed8..e577a87 100644 --- a/Questionable/Questionable.Windows.Setup/WelcomeStep.cs +++ b/Questionable/Questionable.Windows.Setup/WelcomeStep.cs @@ -1,19 +1,10 @@ -using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; namespace Questionable.Windows.Setup; internal sealed class WelcomeStep : ISetupStep { - public string Title - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-460917793); - } - } + public string Title => "Welcome"; public bool CanAdvance => true; @@ -22,50 +13,12 @@ internal sealed class WelcomeStep : ISetupStep return true; } - bool ISetupStep.ShouldShow() - { - //ILSpy generated this explicit interface implementation from .override directive in ShouldShow - return this.ShouldShow(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] public void Draw() { - _206F_202B_202B_206B_206C_206D_200B_200D_202B_206E_206E_206F_202E_200F_202C_202E_206A_202D_200E_202E_200C_206D_206F_200E_200F_200B_206A_202C_202B_202B_206E_206E_202E_202B_206F_202A_200F_206D_202D_206E_202E(0f); - _202E_202C_200C_202E_200B_200C_200B_206D_202E_200D_202B_202A_200F_200E_200E_202C_206E_206D_200B_200E_206C_202E_206C_206C_202D_202C_200C_202B_200E_200B_200F_206B_202D_206F_206D_206C_206D_206F_200F_200F_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1095272585)); - _206B_206E_200F_206B_200C_200F_200D_202B_206F_206A_200F_202A_200E_200E_200D_202A_206D_200D_200C_206B_202B_206D_206B_200D_206A_200C_206F_206C_202C_202B_206A_206B_206F_206B_200D_200F_206B_202D_206A_202D_202E(); - _200B_202E_200B_202E_206D_202A_202A_202A_206F_202C_202A_200D_202B_202E_206E_202C_200D_202D_200F_202C_206F_206C_200E_202E_200D_202C_202C_206D_206B_202D_206F_200E_202A_200B_206A_202B_200C_206A_200D_206B_202E(ref UiThemeUtils.DimTextColor, (ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2065925173)); - _202B_200B_206B_206B_206B_202E_206E_200D_206F_202D_200F_200E_202D_202E_206A_200E_202D_200F_206B_206B_200D_206B_200C_206D_206E_202B_202A_206A_200C_206A_200B_202B_206D_206B_202B_206F_200D_202E_206F_206E_202E(); - } - - void ISetupStep.Draw() - { - //ILSpy generated this explicit interface implementation from .override directive in Draw - this.Draw(); - } - - static void _206F_202B_202B_206B_206C_206D_200B_200D_202B_206E_206E_206F_202E_200F_202C_202E_206A_202D_200E_202E_200C_206D_206F_200E_200F_200B_206A_202C_202B_202B_206E_206E_202E_202B_206F_202A_200F_206D_202D_206E_202E(float P_0) - { - ImGui.PushTextWrapPos(P_0); - } - - static void _202E_202C_200C_202E_200B_200C_200B_206D_202E_200D_202B_202A_200F_200E_200E_202C_206E_206D_200B_200E_206C_202E_206C_206C_202D_202C_200C_202B_200E_200B_200F_206B_202D_206F_206D_206C_206D_206F_200F_200F_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static void _206B_206E_200F_206B_200C_200F_200D_202B_206F_206A_200F_202A_200E_200E_200D_202A_206D_200D_200C_206B_202B_206D_206B_200D_206A_200C_206F_206C_202C_202B_206A_206B_206F_206B_200D_200F_206B_202D_206A_202D_202E() - { + ImGui.PushTextWrapPos(0f); + ImGui.TextUnformatted("Questionable automates Main Scenario and side quests - accepting and turning in quests, moving you to objectives, and handling dialogue and cutscenes."); ImGui.Spacing(); - } - - static void _200B_202E_200B_202E_206D_202A_202A_202A_206F_202C_202A_200D_202B_202E_206E_202C_200D_202D_200F_202C_206F_206C_200E_202E_200D_202C_202C_206D_206B_202D_206F_200E_202A_200B_206A_202B_200C_206A_200D_206B_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static void _202B_200B_206B_206B_206B_202E_206E_200D_206F_202D_200F_200E_202D_202E_206A_200E_202D_200F_206B_206B_200D_206B_200C_206D_206E_202B_202A_206A_200C_206A_200B_202B_206D_206B_202B_206F_200D_202E_206F_206E_202E() - { + ImGui.TextColored(in UiThemeUtils.DimTextColor, "This is automation - keep an eye on it the first time. This short setup gets the required plugins and a couple of settings in place."); ImGui.PopTextWrapPos(); } } diff --git a/Questionable/Questionable.Windows.SmartNavComponents/DataProbesPanel.cs b/Questionable/Questionable.Windows.SmartNavComponents/DataProbesPanel.cs index ebb4be8..6ff87b0 100644 --- a/Questionable/Questionable.Windows.SmartNavComponents/DataProbesPanel.cs +++ b/Questionable/Questionable.Windows.SmartNavComponents/DataProbesPanel.cs @@ -1,18 +1,15 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Globalization; using System.IO; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using System.Text; using System.Text.Json; using Dalamud.Bindings.ImGui; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; -using Lumina.Data; using Lumina.Data.Files; using Lumina.Data.Parsing.Layer; using Lumina.Excel; @@ -28,243 +25,13 @@ namespace Questionable.Windows.SmartNavComponents; internal sealed class DataProbesPanel { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec + private static readonly string[] PlanFiles = new string[4] { "planmap.lgb", "planevent.lgb", "planner.lgb", "planlive.lgb" }; + + private static readonly JsonSerializerOptions IndentedJson = new JsonSerializerOptions { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<NavNode.WarpNode, uint> _003C_003E9__19_0; - - public static Func<IGrouping<uint, NavNode.WarpNode>, uint> _003C_003E9__19_1; - - public static Func<IGrouping<uint, NavNode.WarpNode>, int> _003C_003E9__19_2; - - public static Func<WarpDataService.WarpInfo, uint> _003C_003E9__19_3; - - public static Func<IGrouping<uint, WarpDataService.WarpInfo>, WarpDataService.WarpInfo> _003C_003E9__19_4; - - public static Func<string, string> _003C_003E9__21_0; - - public static Func<string, int> _003C_003E9__21_1; - - public static Func<WarpDataService.WarpInfo, uint> _003C_003E9__21_2; - - public static Func<IGrouping<uint, WarpDataService.WarpInfo>, WarpDataService.WarpInfo> _003C_003E9__21_3; - - public static Func<(uint RowId, float Delta), float> _003C_003E9__21_4; - - public static Func<(uint RowId, float Delta), bool> _003C_003E9__21_5; - - public static Func<(uint RowId, float Delta), string> _003C_003E9__21_6; - - public static Func<string, string> _003C_003E9__24_0; - - public static Func<string, int> _003C_003E9__24_1; - - public static Func<Warp, bool> _003C_003E9__24_2; - - public static Func<TerritoryType, uint> _003C_003E9__26_1; - - public static Func<List<uint>, bool> _003C_003E9__26_2; - - public static Func<List<uint>, IEnumerable<uint>> _003C_003E9__26_3; - - internal uint _003CBuildMultiQuestReport_003Eb__19_0(NavNode.WarpNode n) - { - return _200F_200E_202A_206E_200C_200C_206A_200D_206E_200E_200F_206F_202E_206E_202E_206D_200C_202D_200F_202B_202C_206A_206F_202A_206C_206D_206E_202C_200C_206A_202E_200F_202A_206B_202A_202A_206A_202D_200F_206C_202E(n); - } - - internal uint _003CBuildMultiQuestReport_003Eb__19_1(IGrouping<uint, NavNode.WarpNode> g) - { - return g.Key; - } - - internal int _003CBuildMultiQuestReport_003Eb__19_2(IGrouping<uint, NavNode.WarpNode> g) - { - return g.Count(); - } - - internal uint _003CBuildMultiQuestReport_003Eb__19_3(WarpDataService.WarpInfo w) - { - return _202A_202D_200F_202D_206C_206E_202B_206A_202C_200B_200D_200B_200F_206F_202C_206F_202E_206C_202A_200B_202D_200C_206C_202A_206E_206E_200E_206E_206C_206E_202E_200E_206E_202B_206C_206B_206E_200D_202B_206F_202E(w); - } - - internal WarpDataService.WarpInfo _003CBuildMultiQuestReport_003Eb__19_4(IGrouping<uint, WarpDataService.WarpInfo> g) - { - return g.First(); - } - - internal string _003CBuildPopRangeReport_003Eb__21_0(string f) - { - return f; - } - - internal int _003CBuildPopRangeReport_003Eb__21_1(string _) - { - return 0; - } - - internal uint _003CBuildPopRangeReport_003Eb__21_2(WarpDataService.WarpInfo w) - { - return _202A_202D_200F_202D_206C_206E_202B_206A_202C_200B_200D_200B_200F_206F_202C_206F_202E_206C_202A_200B_202D_200C_206C_202A_206E_206E_200E_206E_206C_206E_202E_200E_206E_202B_206C_206B_206E_200D_202B_206F_202E(w); - } - - internal WarpDataService.WarpInfo _003CBuildPopRangeReport_003Eb__21_3(IGrouping<uint, WarpDataService.WarpInfo> g) - { - return g.First(); - } - - internal float _003CBuildPopRangeReport_003Eb__21_4((uint RowId, float Delta) d) - { - return d.Delta; - } - - internal bool _003CBuildPopRangeReport_003Eb__21_5((uint RowId, float Delta) d) - { - return d.Delta > 20f; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal string _003CBuildPopRangeReport_003Eb__21_6((uint RowId, float Delta) d) - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(4, 2); - defaultInterpolatedStringHandler.AppendFormatted(d.RowId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1473546846)); - defaultInterpolatedStringHandler.AppendFormatted(d.Delta.ToString(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1819906059), _206E_200E_200C_200D_206F_200C_200E_206B_200E_202B_202C_200F_200C_200D_206B_206D_200D_206F_200F_202B_202B_206E_202E_202C_206F_200F_200D_202D_206F_200E_206E_200B_206F_200C_202C_200C_200D_200F_206B_202B_202E())); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-572338381)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - - internal string _003CBuildDerivedArrivalExport_003Eb__24_0(string f) - { - return f; - } - - internal int _003CBuildDerivedArrivalExport_003Eb__24_1(string _) - { - return 0; - } - - internal bool _003CBuildDerivedArrivalExport_003Eb__24_2(Warp x) - { - return x.RowId != 0; - } - - internal uint _003CBuildLayerSetReport_003Eb__26_1(TerritoryType t) - { - return t.RowId; - } - - internal bool _003CBuildLayerSetReport_003Eb__26_2(List<uint> refs) - { - return refs.Count > 0; - } - - internal IEnumerable<uint> _003CBuildLayerSetReport_003Eb__26_3(List<uint> refs) - { - return refs; - } - - static uint _200F_200E_202A_206E_200C_200C_206A_200D_206E_200E_200F_206F_202E_206E_202E_206D_200C_202D_200F_202B_202C_206A_206F_202A_206C_206D_206E_202C_200C_206A_202E_200F_202A_206B_202A_202A_206A_202D_200F_206C_202E(NavNode.WarpNode P_0) - { - return P_0.WarpRowId; - } - - static uint _202A_202D_200F_202D_206C_206E_202B_206A_202C_200B_200D_200B_200F_206F_202C_206F_202E_206C_202A_200B_202D_200C_206C_202A_206E_206E_200E_206E_206C_206E_202E_200E_206E_202B_206C_206B_206E_200D_202B_206F_202E(WarpDataService.WarpInfo P_0) - { - return P_0.RowId; - } - - static CultureInfo _206E_200E_200C_200D_206F_200C_200E_206B_200E_202B_202C_200F_200C_200D_206B_206D_200D_206F_200F_202B_202B_206E_202E_202C_206F_200F_200D_202D_206F_200E_206E_200B_206F_200C_202C_200C_200D_200F_206B_202B_202E() - { - return CultureInfo.InvariantCulture; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass26_0 - { - public string bg; - - public Dictionary<uint, List<uint>> owners; - - public Func<uint, string> _003C_003E9__4; - - internal bool _003CBuildLayerSetReport_003Eb__0(TerritoryType t) - { - int num = ((t.RowId == 0) ? (-1476010825) : (-1476010828)); - while (true) - { - int num2 = num; - int num3 = -1476010826; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0049; - case 2: - return _206E_200D_206F_202A_206D_200B_206A_206B_206C_202B_202E_202E_202E_206C_202E_200B_202A_206C_200B_202D_200D_206B_200F_206E_206A_202C_206F_206F_200C_206A_202E_200F_202C_200D_206E_200E_206F_200B_206F_200D_202E(t.Bg.ExtractText(), bg); - case 1: - return false; - } - continue; - IL_0049: - num = -1476010828; - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal string _003CBuildLayerSetReport_003Eb__4(uint setId) - { - List<uint> value; - int num = (owners.TryGetValue(setId, out value) ? (-1977504847) : (-1977504846)); - while (true) - { - int num2 = num; - int num3 = -1977504845; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return string.Join(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1680133376), value); - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(12, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-884751217)); - defaultInterpolatedStringHandler.AppendFormatted(setId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1951044220)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - case 0: - goto IL_00a0; - } - continue; - IL_00a0: - num = -1977504846; - } - } - - static bool _206E_200D_206F_202A_206D_200B_206A_206B_206C_202B_202E_202E_202E_206C_202E_200B_202A_206C_200B_202D_200D_206B_200F_206E_206A_202C_206F_206F_200C_206A_202E_200F_202C_200D_206E_200E_206F_200B_206F_200D_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - } - - private static readonly string[] PlanFiles = new string[4] - { - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(206471200), - global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1323857348), - global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2108959274), - global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1776312573) + WriteIndented = true }; - private static readonly JsonSerializerOptions IndentedJson; - private readonly NavRouter _navRouter; private readonly WarpDataService _warpDataService; @@ -305,421 +72,198 @@ internal sealed class DataProbesPanel public void Draw() { DrawMultiQuestWarpAudit(); - _206E_202C_206B_202A_202A_206A_200E_206C_202C_202B_200F_206D_200E_206E_206F_202B_202A_206A_206B_202B_200C_202E_202E_206F_206C_202D_206F_202D_206A_200E_202D_206E_206B_200F_206A_206E_206E_206C_202E_202E_202E(); + ImGui.Separator(); DrawPopRangeProbe(); - _206E_202C_206B_202A_202A_206A_200E_206C_202C_202B_200F_206D_200E_206E_206F_202B_202A_206A_206B_202B_200C_202E_202E_206F_206C_202D_206F_202D_206A_200E_202D_206E_206B_200F_206A_206E_206E_206C_202E_202E_202E(); + ImGui.Separator(); DrawDerivedArrivalExport(); - _206E_202C_206B_202A_202A_206A_200E_206C_202C_202B_200F_206D_200E_206E_206F_202B_202A_206A_206B_202B_200C_202E_202E_206F_206C_202D_206F_202D_206A_200E_202D_206E_206B_200F_206A_206E_206E_206C_202E_202E_202E(); + ImGui.Separator(); DrawLayerSetProbe(); } - [MethodImpl(MethodImplOptions.NoInlining)] private static void DrawReport(string id, ref string? report) { - int num = ((report != null) ? (-753612430) : (-753612431)); - while (true) + if (report == null) { - int num2 = num; - int num3 = -753612432; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = -753612431; - break; - case 5: - { - _206E_200E_200E_206D_206A_206E_206B_206E_202C_202B_202A_206C_200F_206E_202E_202E_202C_206B_202E_206B_206C_206F_200D_202B_200B_202C_200E_206D_200B_202B_202A_200B_202B_202A_206D_200B_206E_200D_200E_202A_202E(); - ImU8String imU8String3 = new ImU8String(7, 1); - imU8String3.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(870892128)); - imU8String3.AppendFormatted(id); - num = ((!_202E_206D_202D_202A_206D_206A_200E_200B_202E_202B_202B_206C_200B_202C_206B_206A_206D_202E_202B_202A_202B_202B_200E_206F_206E_200D_202E_206B_202A_202C_206D_200C_200D_200B_206D_200B_202A_202B_202A_200F_202E(imU8String3, default(Vector2))) ? (-753612426) : (-753612432)); - break; - } - case 2: - { - _206E_200E_200E_206D_206A_206E_206B_206E_202C_202B_202A_206C_200F_206E_202E_202E_202C_206B_202E_206B_206C_206F_200D_202B_200B_202C_200E_206D_200B_202B_202A_200B_202B_202A_206D_200B_206E_200D_200E_202A_202E(); - ImU8String imU8String2 = new ImU8String(6, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1091508196)); - imU8String2.AppendFormatted(id); - num = ((!_202E_206D_202D_202A_206D_206A_200E_200B_202E_202B_202B_206C_200B_202C_206B_206A_206D_202E_202B_202A_202B_202B_200E_206F_206E_200D_202E_206B_202A_202C_206D_200C_200D_200B_206D_200B_202A_202B_202A_200F_202E(imU8String2, default(Vector2))) ? (-753612427) : (-753612429)); - break; - } - case 1: - return; - case 0: - report = null; - return; - case 3: - _206F_200F_200D_206E_206B_200F_202A_200D_200F_202B_206C_202D_206F_200E_200B_206F_202B_206B_202E_206A_206E_200D_206A_200E_202C_206F_200C_200F_200E_206D_202D_202A_200E_206D_200B_202C_200C_202A_202A_206C_202E((ImU8String)report); - num = -753612427; - break; - case 6: - { - ImU8String imU8String = new ImU8String(7, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1426082020)); - imU8String.AppendFormatted(id); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(687358983)); - using ImRaii.ChildDisposable childDisposable = _206C_202C_200C_200F_206B_202D_202E_206C_202E_206F_202E_206B_206D_206F_206C_206D_206C_202A_202D_200C_202D_202D_202C_202B_202D_206C_202C_200B_202E_206B_200D_206F_202C_200E_206F_202C_202C_200E_206B_206E_202E(imU8String, new Vector2(-1f, 300f), true); - num = ((!(bool)childDisposable) ? (-374858060) : (-374858057)); - while (true) - { - int num7 = num; - num3 = -374858059; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -374858057; - break; - case 2: - _206A_202A_200D_206D_206F_206E_206A_200D_200D_202C_206F_206D_202C_206C_206C_206B_206C_206B_202A_200E_206D_206A_200E_200D_206E_200D_206F_206F_202A_200D_200B_202C_200D_206B_206A_200F_202D_200B_200C_206B_202E((ImU8String)report); - num = -374858060; - break; - case 1: - return; - } - } - } - } + return; + } + ImGui.SameLine(); + ImU8String label = new ImU8String(6, 1); + label.AppendLiteral("Copy##"); + label.AppendFormatted(id); + if (ImGui.Button(label)) + { + ImGui.SetClipboardText(report); + } + ImGui.SameLine(); + ImU8String label2 = new ImU8String(7, 1); + label2.AppendLiteral("Clear##"); + label2.AppendFormatted(id); + if (ImGui.Button(label2)) + { + report = null; + return; + } + ImU8String strId = new ImU8String(7, 1); + strId.AppendLiteral("##"); + strId.AppendFormatted(id); + strId.AppendLiteral("child"); + using ImRaii.ChildDisposable childDisposable = ImRaii.Child(strId, new Vector2(-1f, 300f), border: true); + if ((bool)childDisposable) + { + ImGui.TextUnformatted(report); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawMultiQuestWarpAudit() { - int num = (_200D_202B_200B_206D_200C_202D_206C_206B_202A_206E_202B_200D_200E_200B_206F_206C_206A_202D_206E_206D_206C_200F_206F_206C_202A_206B_200B_206D_206B_200C_200E_202B_206C_206C_200C_202D_202D_200B_202D_206D_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-488829420), ImGuiTreeNodeFlags.DefaultOpen) ? 1612118690 : 1612118689); - while (true) + if (ImGui.CollapsingHeader("Multi-Quest Warp Audit (CompleteParam)###multiquestaudit", ImGuiTreeNodeFlags.DefaultOpen)) { - int num2 = num; - int num3 = 1612118691; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + ImGui.TextWrapped("Warps whose WarpCondition names 2+ quests. Verifies the CompleteParam any-of fix: conds 3/9/10 (airships, ferry) should read any-of, cond 34 all-of. 'FIX CHANGES THIS' marks warps the pre-fix all-of admission got wrong for this character."); + if (ImGui.Button("Run Audit##multiquest")) { - case 0: - DrawReport(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(270971945), ref _multiQuestReport); - return; - case 2: - return; - case 3: - num = 1612118689; - break; - case 1: - _202C_200D_202E_206B_206F_200D_202B_200E_206C_202C_200F_200F_200D_200D_200F_206C_200B_206B_200E_206C_200F_202B_202C_206E_202D_200B_200D_200E_202E_200B_200F_206D_202D_200C_206E_202E_206E_200F_202A_206E_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-901431591)); - num = ((!_202E_206D_202D_202A_206D_206A_200E_200B_202E_202B_202B_206C_200B_202C_206B_206A_206D_202E_202B_202A_202B_202B_200E_206F_206E_200D_202E_206B_202A_202C_206D_200C_200D_200B_206D_200B_202A_202B_202A_200F_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1620439513), default(Vector2))) ? 1612118691 : 1612118695); - break; - case 4: _multiQuestReport = RunGuarded(BuildMultiQuestReport); - num = 1612118691; - break; } + DrawReport("multiquest", ref _multiQuestReport); } } - [MethodImpl(MethodImplOptions.NoInlining)] private string BuildMultiQuestReport() { - StringBuilder stringBuilder = _200C_200B_206F_206E_206D_206D_202E_206B_202B_202A_200E_200F_202B_206F_200D_200E_202A_206A_200C_200B_206C_206C_202A_206D_206C_202A_202C_202E_206C_206E_206C_206B_206B_206C_200C_202B_202B_200F_200B_202E_202E(); + StringBuilder stringBuilder = new StringBuilder(); ExcelSheet<Warp> excelSheet = _dataManager.GetExcelSheet<Warp>(); ExcelSheet<Quest> excelSheet2 = _dataManager.GetExcelSheet<Quest>(); - Dictionary<uint, int> dictionary = (from n in _202D_200E_206A_200F_206E_206F_200C_200E_206B_206B_206E_202B_202E_206F_200C_206C_206A_202B_200E_202C_200F_206B_200D_202C_206E_202B_200E_200C_202E_206F_200E_200B_202A_206B_202D_202B_200C_200E_202A_206E_202E(_206F_202D_206E_206E_202C_206F_206B_206B_206E_200F_200E_200C_206F_206A_202E_206C_202E_200E_202C_202A_206F_200F_206A_206C_202B_202B_202C_206D_206C_200F_202E_200C_202C_200C_202A_200D_202E_202A_200D_206D_202E(_navRouter)).Values.OfType<NavNode.WarpNode>() - group n by _003C_003Ec._200F_200E_202A_206E_200C_200C_206A_200D_206E_200E_200F_206F_202E_206E_202E_206D_200C_202D_200F_202B_202C_206A_206F_202A_206C_206D_206E_202C_200C_206A_202E_200F_202A_206B_202A_202A_206A_202D_200F_206C_202E(n)).ToDictionary((IGrouping<uint, NavNode.WarpNode> g) => g.Key, (IGrouping<uint, NavNode.WarpNode> g) => g.Count()); + Dictionary<uint, int> dictionary = (from n in _navRouter.StaticGraph.Nodes.Values.OfType<NavNode.WarpNode>() + group n by n.WarpRowId).ToDictionary((IGrouping<uint, NavNode.WarpNode> g) => g.Key, (IGrouping<uint, NavNode.WarpNode> g) => g.Count()); int num = 0; - IEnumerator<WarpDataService.WarpInfo> enumerator = (from w in _200F_206D_206B_206C_202B_206B_206E_200F_202C_202C_202C_206F_202C_200D_202D_200B_200B_206D_206F_202E_200D_206C_202A_206D_202D_202A_200F_206D_202A_206C_202E_202A_206A_202B_200C_206E_202C_200B_202C_202E_202E(_warpDataService) - group w by _003C_003Ec._202A_202D_200F_202D_206C_206E_202B_206A_202C_200B_200D_200B_200F_206F_202C_206F_202E_206C_202A_200B_202D_200C_206C_202A_206E_206E_200E_206E_206C_206E_202E_200E_206E_202B_206C_206B_206E_200D_202B_206F_202E(w) into g - select g.First()).GetEnumerator(); StringBuilder stringBuilder2; - IFormatProvider formatProvider; - StringBuilder.AppendInterpolatedStringHandler appendInterpolatedStringHandler; - try + IFormatProvider invariantCulture; + StringBuilder.AppendInterpolatedStringHandler handler; + foreach (WarpDataService.WarpInfo item in from w in _warpDataService.Warps + group w by w.RowId into g + select g.First()) { - int num2 = -632491453; - uint num13 = default(uint); - uint[] array = default(uint[]); - int num12 = default(int); - bool flag = default(bool); - WarpDataService.WarpInfo current = default(WarpDataService.WarpInfo); - Warp? rowOrDefault = default(Warp?); - int num10 = default(int); - uint value = default(uint); - while (true) + if (item.RequiredQuestIds.Length < 2) { - int num3 = num2; - int num4 = -632491452; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - byte? obj; - int num8; - bool num11; - bool flag2; - bool flag3; - StringBuilder stringBuilder3; - IFormatProvider formatProvider2; - byte? b; - StringBuilder stringBuilder4; - IFormatProvider formatProvider3; - StringBuilder stringBuilder5; - IFormatProvider formatProvider4; - StringBuilder stringBuilder6; - IFormatProvider formatProvider5; - StringBuilder stringBuilder7; - IFormatProvider formatProvider6; - switch (num6 - (num7 + num7)) - { - case 4: - { - num13 = array[num12]; - uint num14 = num13; - num4 = 65535; - num5 = (int)num14; - flag = QuestManager.IsQuestComplete((ushort)(num5 + num4 - (num5 | num4))); - num2 = ((!flag) ? (-632491447) : (-632491449)); - break; - } - case 6: - num2 = (_206A_206D_200E_200B_202B_202D_200E_206A_200B_200B_202E_202E_202A_200B_206B_200E_202C_206F_200F_202D_206D_202A_206C_202A_206C_200D_200C_200E_200F_206B_206C_206F_206B_206F_202D_206C_206A_202A_206A_206C_202E(current) ? (-632491443) : (-632491448)); - break; - case 5: - { - int num15 = num; - num4 = 1; - num5 = num15; - int num16 = num5 ^ num4; - int num17 = num5 & num4; - num = num16 + (num17 + num17); - rowOrDefault = excelSheet.GetRowOrDefault(_206A_200E_200D_202B_206D_202B_206F_202D_202C_200F_206C_202C_206F_202E_200B_202C_200D_206B_202A_206A_200B_202B_200C_202D_206F_202C_206D_200E_202E_200C_200E_206E_200D_202D_200D_200E_202E_200B_206C_200E_202E(current)); - num2 = (rowOrDefault.HasValue ? (-632491451) : (-632491441)); - break; - } - case 7: - num2 = (_206A_200F_206D_206E_200B_206D_206D_200C_202A_202A_200D_206A_206F_202C_202A_200D_200F_200B_206E_200B_206E_202B_206D_200B_202C_202E_200B_206A_202D_206F_200F_206F_206D_206C_206F_206D_206D_202B_206D_202E_202E((IEnumerator)enumerator) ? (-632491444) : (-632491445)); - break; - case 2: - obj = rowOrDefault.GetValueOrDefault().WarpCondition.ValueNullable?.CompleteParam; - goto IL_02b0; - case 0: - num2 = ((num12 < array.Length) ? (-632491456) : (-632491454)); - break; - case 13: - { - string value2 = excelSheet2.GetRowOrDefault(num13)?.Name.ExtractText() ?? global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2023081068); - stringBuilder2 = stringBuilder; - StringBuilder stringBuilder8 = stringBuilder2; - formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - IFormatProvider formatProvider7 = formatProvider; - appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(13, 3, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2110536125)); - appendInterpolatedStringHandler.AppendFormatted(num13); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(971140366)); - appendInterpolatedStringHandler.AppendFormatted(value2); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1924112)); - appendInterpolatedStringHandler.AppendFormatted(flag ? global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-473328538) : global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1919722774)); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder8, formatProvider7, ref appendInterpolatedStringHandler); - int num18 = num12; - num4 = 1; - num5 = num18; - int num19 = num5 ^ num4; - int num20 = num5 & num4; - num12 = num19 + (num20 + num20); - num2 = -632491452; - break; - } - case 10: - num2 = -632491453; - break; - case 1: - num8 = (int)rowOrDefault.GetValueOrDefault().WarpCondition.RowId; - goto IL_06bd; - case 9: - num11 = num10 == _206E_206E_206C_202C_202E_200B_206A_206E_206A_206B_200F_200C_206E_206D_206E_206D_206B_202A_206A_206B_200D_200C_206C_206F_200E_206E_202C_206D_200D_206C_202D_200C_200C_206A_200E_206E_206D_206F_200C_200C_202E(current).Length; - goto IL_06f0; - case 8: - current = enumerator.Current; - num2 = ((_206E_206E_206C_202C_202E_200B_206A_206E_206A_206B_200F_200C_206E_206D_206E_206D_206B_202A_206A_206B_200D_200C_206C_206F_200E_206E_202C_206D_200D_206C_202D_200C_200C_206A_200E_206E_206D_206F_200C_200C_202E(current).Length < 2) ? (-632491453) : (-632491455)); - break; - case 12: - num11 = num10 > 0; - goto IL_06f0; - case 3: - { - int num9 = num10; - num4 = 1; - num5 = num9; - num10 = (num5 | num4) + (num5 & num4); - num2 = -632491447; - break; - } - case 14: - obj = null; - goto IL_02b0; - case 11: - num8 = 0; - goto IL_06bd; - case 15: - goto end_IL_012e; - IL_06f0: - flag2 = num11; - flag3 = num10 == _206E_206E_206C_202C_202E_200B_206A_206E_206A_206B_200F_200C_206E_206D_206E_206D_206B_202A_206A_206B_200D_200C_206C_206F_200E_206E_202C_206D_200D_206C_202D_200C_200C_206A_200E_206E_206D_206F_200C_200C_202E(current).Length; - stringBuilder2 = stringBuilder; - stringBuilder3 = stringBuilder2; - formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - formatProvider2 = formatProvider; - appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(34, 3, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(690137559)); - appendInterpolatedStringHandler.AppendFormatted(flag2); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(160720765)); - appendInterpolatedStringHandler.AppendFormatted(flag3); - appendInterpolatedStringHandler.AppendFormatted((flag2 != flag3) ? global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-804156053) : global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1200342830)); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder3, formatProvider2, ref appendInterpolatedStringHandler); - num2 = -632491453; - break; - IL_06bd: - value = (uint)num8; - num2 = (rowOrDefault.HasValue ? (-632491450) : (-632491446)); - break; - IL_02b0: - b = obj; - stringBuilder2 = stringBuilder; - stringBuilder4 = stringBuilder2; - formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - formatProvider3 = formatProvider; - appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(12, 3, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1758336508)); - appendInterpolatedStringHandler.AppendFormatted(_206A_200E_200D_202B_206D_202B_206F_202D_202C_200F_206C_202C_206F_202E_200B_202C_200D_206B_202A_206A_200B_202B_200C_202D_206F_202C_206D_200E_202E_200C_200E_206E_200D_202D_200D_200E_202E_200B_206C_200E_202E(current)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1021698688)); - appendInterpolatedStringHandler.AppendFormatted(_200E_206B_206D_202D_206E_206F_200D_206C_202D_206A_200C_202C_200C_200D_202B_202B_206F_200D_200E_206E_206B_206C_200E_202D_206B_206C_200E_200E_206A_202E_202D_202B_200E_206A_200C_200C_202D_200C_200C_200F_202E(current) ?? _206F_200E_206B_202D_202B_202E_206F_200D_206B_202B_206C_206F_202B_202B_200F_206A_202A_206E_206A_202D_202B_200C_202C_202D_200F_206F_202D_202D_200D_206D_200C_206C_202B_206E_206A_206C_206C_206E_206E_202A_202E(current) ?? global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-98105394)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(478204787)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-412371683)); - appendInterpolatedStringHandler.AppendFormatted(_territoryData.GetNameAndId(_206C_206A_202A_206A_202E_200F_206F_202D_200C_200D_202C_200C_200C_206B_200C_206B_206F_202E_206E_200C_206A_200C_200D_202E_200C_202D_200B_206C_200C_202D_206F_206B_202B_202E_200D_202C_202D_202D_206D_202E(current))); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder4, formatProvider3, ref appendInterpolatedStringHandler); - stringBuilder2 = stringBuilder; - stringBuilder5 = stringBuilder2; - formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - formatProvider4 = formatProvider; - appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(47, 3, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1377099346)); - appendInterpolatedStringHandler.AppendFormatted(value); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-234256389)); - appendInterpolatedStringHandler.AppendFormatted(b?.ToString(_202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E()) ?? global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1923490088)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1467939024)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1752738461)); - appendInterpolatedStringHandler.AppendFormatted(_206A_206D_200E_200B_202B_202D_200E_206A_200B_200B_202E_202E_202A_200B_206B_200E_202C_206F_200F_202D_206D_202A_206C_202A_206C_200D_200C_200E_200F_206B_206C_206F_206B_206F_202D_206C_206A_202A_206A_206C_202E(current)); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder5, formatProvider4, ref appendInterpolatedStringHandler); - stringBuilder2 = stringBuilder; - stringBuilder6 = stringBuilder2; - formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - formatProvider5 = formatProvider; - appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(37, 4, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(755477848)); - appendInterpolatedStringHandler.AppendFormatted(_206C_200F_206C_206D_202A_206A_206B_202A_202D_200E_206B_202E_202C_200C_206C_206F_202D_206D_202E_200E_206C_200C_200B_202C_206B_202B_206F_200C_202E_200D_202D_200D_206D_200C_206B_200E_206B_206C_206C_200F_202E(current)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-324914973)); - appendInterpolatedStringHandler.AppendFormatted(_202E_200F_206B_206C_206E_202E_200C_206B_206A_200E_200C_200F_200B_206C_206F_200F_206A_200C_202E_202A_200C_200D_200C_200E_200E_200E_200E_200D_202D_200C_206F_206F_202B_202A_206C_200C_202D_206C_206F_206D_202E(current)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1087086507)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(348634305)); - appendInterpolatedStringHandler.AppendFormatted(_200C_206D_206F_200C_200D_200B_206A_200D_202C_200E_202C_202B_202A_200D_202B_206F_206B_206B_206F_206C_202A_200E_202C_200D_202D_206C_202B_206D_206E_206B_202A_206C_202D_200F_202D_202B_202E_206B_200B_206A_202E(current)?.ToString(_202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E()) ?? global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2079705286)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1526773328)); - appendInterpolatedStringHandler.AppendFormatted(_206E_200C_206A_206A_200C_200E_206C_202B_206D_206E_206D_202E_202C_200B_206C_206D_200D_202D_202B_202B_200C_200D_200B_206A_200C_206D_202C_202E_202B_206F_206A_206B_206D_200C_206B_202E_206A_200E_206C_200E_202E(current)); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder6, formatProvider5, ref appendInterpolatedStringHandler); - stringBuilder2 = stringBuilder; - stringBuilder7 = stringBuilder2; - formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - formatProvider6 = formatProvider; - appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(35, 1, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(784094329)); - appendInterpolatedStringHandler.AppendFormatted(dictionary.GetValueOrDefault(_206A_200E_200D_202B_206D_202B_206F_202D_202C_200F_206C_202C_206F_202E_200B_202C_200D_206B_202A_206A_200B_202B_200C_202D_206F_202C_206D_200E_202E_200C_200E_206E_200D_202D_200D_200E_202E_200B_206C_200E_202E(current))); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder7, formatProvider6, ref appendInterpolatedStringHandler); - num10 = 0; - array = _206E_206E_206C_202C_202E_200B_206A_206E_206A_206B_200F_200C_206E_206D_206E_206D_206B_202A_206A_206B_200D_200C_206C_206F_200E_206E_202C_206D_200D_206C_202D_200C_200C_206A_200E_206E_206D_206F_200C_200C_202E(current); - num12 = 0; - num2 = -632491452; - break; - } continue; - end_IL_012e: - break; } - } - finally - { - int num2 = ((enumerator == null) ? (-2074056579) : (-2074056580)); - while (true) + num++; + Warp? rowOrDefault = excelSheet.GetRowOrDefault(item.RowId); + uint value = rowOrDefault?.WarpCondition.RowId ?? 0; + byte? b = rowOrDefault?.WarpCondition.ValueNullable?.CompleteParam; + stringBuilder2 = stringBuilder; + StringBuilder stringBuilder3 = stringBuilder2; + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(12, 3, stringBuilder2, invariantCulture); + handler.AppendLiteral("warp "); + handler.AppendFormatted(item.RowId); + handler.AppendLiteral(" '"); + handler.AppendFormatted(item.Name ?? item.Question ?? "?"); + handler.AppendLiteral("' "); + handler.AppendLiteral("-> "); + handler.AppendFormatted(_territoryData.GetNameAndId(item.DestTerritoryId)); + stringBuilder3.AppendLine(provider, ref handler); + stringBuilder2 = stringBuilder; + StringBuilder stringBuilder4 = stringBuilder2; + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider2 = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(47, 3, stringBuilder2, invariantCulture); + handler.AppendLiteral(" condition "); + handler.AppendFormatted(value); + handler.AppendLiteral(", CompleteParam="); + handler.AppendFormatted(b?.ToString(CultureInfo.InvariantCulture) ?? "?"); + handler.AppendLiteral(", "); + handler.AppendLiteral("RequireAllQuests="); + handler.AppendFormatted(item.RequireAllQuests); + stringBuilder4.AppendLine(provider2, ref handler); + stringBuilder2 = stringBuilder; + StringBuilder stringBuilder5 = stringBuilder2; + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider3 = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(37, 4, stringBuilder2, invariantCulture); + handler.AppendLiteral(" source: territory "); + handler.AppendFormatted(item.SourceTerritoryId); + handler.AppendLiteral(" "); + handler.AppendFormatted(item.SourcePosition); + handler.AppendLiteral(", "); + handler.AppendLiteral("npc "); + handler.AppendFormatted(item.NpcDataId?.ToString(CultureInfo.InvariantCulture) ?? "-"); + handler.AppendLiteral(", derived="); + handler.AppendFormatted(item.DerivedSource); + stringBuilder5.AppendLine(provider3, ref handler); + stringBuilder2 = stringBuilder; + StringBuilder stringBuilder6 = stringBuilder2; + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider4 = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(35, 1, stringBuilder2, invariantCulture); + handler.AppendLiteral(" static graph nodes for this row: "); + handler.AppendFormatted(dictionary.GetValueOrDefault(item.RowId)); + stringBuilder6.AppendLine(provider4, ref handler); + int num2 = 0; + uint[] requiredQuestIds = item.RequiredQuestIds; + foreach (uint num4 in requiredQuestIds) { - int num21 = num2; - int num4 = -2074056579; - int num5 = num21; - int num22 = num5 + num4; - int num23 = num5 & num4; - switch (num22 - (num23 + num23)) + bool flag = QuestManager.IsQuestComplete((ushort)(num4 & 0xFFFF)); + if (flag) { - case 2: - num2 = -2074056580; - break; - case 0: - goto end_IL_0845; - case 1: - _202A_202C_202E_206A_200C_206D_206F_202C_202B_206D_206C_200D_202B_206B_200B_202D_200B_202B_200C_206D_202B_200E_202E_200D_206C_202A_200E_200C_206C_202B_206C_202C_202C_200E_202A_206D_202B_206E_206D_200D_202E((IDisposable)enumerator); - num2 = -2074056579; - break; + num2++; } - continue; - end_IL_0845: - break; + string value2 = excelSheet2.GetRowOrDefault(num4)?.Name.ExtractText() ?? "?"; + stringBuilder2 = stringBuilder; + StringBuilder stringBuilder7 = stringBuilder2; + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider5 = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(13, 3, stringBuilder2, invariantCulture); + handler.AppendLiteral(" quest "); + handler.AppendFormatted(num4); + handler.AppendLiteral(" '"); + handler.AppendFormatted(value2); + handler.AppendLiteral("': "); + handler.AppendFormatted(flag ? "COMPLETE" : "not complete"); + stringBuilder7.AppendLine(provider5, ref handler); } + bool flag2 = (item.RequireAllQuests ? (num2 == item.RequiredQuestIds.Length) : (num2 > 0)); + bool flag3 = num2 == item.RequiredQuestIds.Length; + stringBuilder2 = stringBuilder; + StringBuilder stringBuilder8 = stringBuilder2; + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider6 = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(34, 3, stringBuilder2, invariantCulture); + handler.AppendLiteral(" admission: now="); + handler.AppendFormatted(flag2); + handler.AppendLiteral(", pre-fix all-of="); + handler.AppendFormatted(flag3); + handler.AppendFormatted((flag2 != flag3) ? " <-- FIX CHANGES THIS" : ""); + stringBuilder8.AppendLine(provider6, ref handler); } stringBuilder2 = stringBuilder; StringBuilder stringBuilder9 = stringBuilder2; - formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - IFormatProvider formatProvider8 = formatProvider; - appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(26, 1, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendFormatted(num); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1953035271)); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder9, formatProvider8, ref appendInterpolatedStringHandler); - return _200F_200E_202E_206F_200B_202E_206C_206B_202C_200E_200F_206F_206E_202A_202A_200C_200F_200C_200B_202B_200B_206D_206D_206E_202B_200D_206B_202A_200B_206E_200E_200C_202A_200F_200B_200B_200F_202D_206B_206C_202E((object)stringBuilder); + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider7 = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(26, 1, stringBuilder2, invariantCulture); + handler.AppendFormatted(num); + handler.AppendLiteral(" multi-quest warps audited"); + stringBuilder9.AppendLine(provider7, ref handler); + return stringBuilder.ToString(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawPopRangeProbe() { - int num = (_200D_202B_200B_206D_200C_202D_206C_206B_202A_206E_202B_200D_200E_200B_206F_206C_206A_202D_206E_206D_206C_200F_206F_206C_202A_206B_200B_206D_206B_200C_200E_202B_206C_206C_200C_202D_202D_200B_202D_206D_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1280712506), ImGuiTreeNodeFlags.DefaultOpen) ? 279269062 : 279269063); - while (true) + if (ImGui.CollapsingHeader("Arrival PopRange Plan-File Probe###poprangeprobe", ImGuiTreeNodeFlags.DefaultOpen)) { - int num2 = num; - int num3 = 279269062; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + ImGui.TextWrapped("For each warp, reads Warp.PopRange both ways: as a Level sheet row (SmartNav's source resolution) and as an LGB PopRange instance id in the destination territory's plan files (NoireLib's arrival claim: planevent holds most arrivals, planlive holds switched-content arrivals found nowhere else). Decides whether warp-destination seeding shrinks to 'extend the scan'. Unchecked, warps with a recorded arrival get a position delta (LGB PopRange translation vs recorded DestPosition) - the control for using LGB positions as arrivals."); + ImGui.Checkbox("Only destination-less warps (no recorded arrival)", ref _popRangeOnlyDestinationless); + if (ImGui.Button("Run Probe##poprange")) { - case 4: _popRangeReport = RunGuarded(BuildPopRangeReport); - num = 279269061; - break; - case 1: - return; - case 2: - num = 279269063; - break; - case 3: - DrawReport(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-78184768), ref _popRangeReport); - return; - case 0: - _202C_200D_202E_206B_206F_200D_202B_200E_206C_202C_200F_200F_200D_200D_200F_206C_200B_206B_200E_206C_200F_202B_202C_206E_202D_200B_200D_200E_202E_200B_200F_206D_202D_200C_206E_202E_206E_200F_202A_206E_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1522247978)); - _206A_206F_206B_200F_206F_200F_200F_202E_206F_206C_206C_202E_206F_202C_200F_202B_206D_202C_206A_202A_206C_200D_200D_206C_206E_202C_206C_202C_200F_206E_200C_206C_200E_206C_206C_206B_200B_200B_200C_202D_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-414215116), ref _popRangeOnlyDestinationless); - num = ((!_202E_206D_202D_202A_206D_206A_200E_200B_202E_202B_202B_206C_200B_202C_206B_206A_206D_202E_202B_202A_202B_202B_200E_206F_206E_200D_202E_206B_202A_202C_206D_200C_200D_200B_206D_200B_202A_202B_202A_200F_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(186029883), default(Vector2))) ? 279269061 : 279269058); - break; } + DrawReport("poprange", ref _popRangeReport); } } - [MethodImpl(MethodImplOptions.NoInlining)] private string BuildPopRangeReport() { - StringBuilder stringBuilder = _200C_200B_206F_206E_206D_206D_202E_206B_202B_202A_200E_200F_202B_206F_200D_200E_202A_206A_200C_200B_206C_206C_202A_206D_206C_202A_202C_202E_206C_206E_206C_206B_206B_206C_200C_202B_202B_200F_200B_202E_202E(); + StringBuilder stringBuilder = new StringBuilder(); ExcelSheet<Warp> excelSheet = _dataManager.GetExcelSheet<Warp>(); ExcelSheet<Level> excelSheet2 = _dataManager.GetExcelSheet<Level>(); Dictionary<uint, Dictionary<string, Dictionary<uint, Vector3>>> cache = new Dictionary<uint, Dictionary<string, Dictionary<uint, Vector3>>>(); @@ -728,1546 +272,581 @@ internal sealed class DataProbesPanel int num = 0; int num2 = 0; int num3 = 0; - IEnumerator<WarpDataService.WarpInfo> enumerator = (from w in _200F_206D_206B_206C_202B_206B_206E_200F_202C_202C_202C_206F_202C_200D_202D_200B_200B_206D_206F_202E_200D_206C_202A_206D_202D_202A_200F_206D_202A_206C_202E_202A_206A_202B_200C_206E_202C_200B_202C_202E_202E(_warpDataService) - group w by _003C_003Ec._202A_202D_200F_202D_206C_206E_202B_206A_202C_200B_200D_200B_200F_206F_202C_206F_202E_206C_202A_200B_202D_200C_206C_202A_206E_206E_200E_206E_206C_206E_202E_200E_206E_202B_206C_206B_206E_200D_202B_206F_202E(w) into g - select g.First()).GetEnumerator(); - int num12; - int num10; StringBuilder stringBuilder2; - IFormatProvider formatProvider; - StringBuilder.AppendInterpolatedStringHandler appendInterpolatedStringHandler; - try + IFormatProvider invariantCulture; + StringBuilder.AppendInterpolatedStringHandler handler; + foreach (WarpDataService.WarpInfo item4 in from w in _warpDataService.Warps + group w by w.RowId into g + select g.First()) { - WarpDataService.WarpInfo current = default(WarpDataService.WarpInfo); - Vector3? vector = default(Vector3?); - uint rowId = default(uint); - uint rowId2 = default(uint); - bool flag = default(bool); - List<string> list2 = default(List<string>); - Vector3? vector2 = default(Vector3?); - Vector3 value2 = default(Vector3); - string text = default(string); - string value4 = default(string); - while (true) + if (_popRangeOnlyDestinationless && item4.DestPosition.HasValue) { - IL_057c: - if (_206A_200F_206D_206E_200B_206D_206D_200C_202A_202A_200D_206A_206F_202C_202A_200D_200F_200B_206E_200B_206E_202B_206D_200B_202C_202E_200B_206A_202D_206F_200F_206F_206D_206C_206F_206D_206D_202B_206D_202E_202E((IEnumerator)enumerator)) - { - current = enumerator.Current; - if (_popRangeOnlyDestinationless) - { - vector = _200D_206E_202D_206B_206B_206E_206E_200C_202B_206F_206C_200E_200B_202D_202D_202D_206E_202A_200B_202C_202D_206D_206C_206B_200F_202E_202E_206A_206C_206F_206A_206A_206C_202D_200C_206B_206C_206F_206E_206C_202E(current); - if (vector.HasValue) - { - continue; - } - } - Warp? rowOrDefault = excelSheet.GetRowOrDefault(_206A_200E_200D_202B_206D_202B_206F_202D_202C_200F_206C_202C_206F_202E_200B_202C_200D_206B_202A_206A_200B_202B_200C_202D_206F_202C_206D_200E_202E_200C_200E_206E_200D_202D_200D_200E_202E_200B_206C_200E_202E(current)); - if (!rowOrDefault.HasValue) - { - continue; - } - int num4 = num; - int num5 = 1; - int num6 = num4; - int num7 = num6 ^ num5; - int num8 = num6 & num5; - num = num7 + (num8 + num8); - rowId = rowOrDefault.Value.PopRange.RowId; - rowId2 = rowOrDefault.Value.TerritoryType.RowId; - flag = rowId != 0 && excelSheet2.HasRow(rowId); - if (flag) - { - int num9 = num3; - num5 = 1; - num6 = num9; - num3 = (num6 | num5) + (num6 & num5); - } - list2 = new List<string>(); - vector2 = null; - using (Dictionary<string, Dictionary<uint, Vector3>>.Enumerator enumerator2 = ScanPopRanges(cache, rowId2).GetEnumerator()) - { - num10 = -1179116054; - while (true) - { - int num11 = num10; - num5 = -1179116053; - num6 = num11; - string key; - switch ((num6 | num5) - (num6 & num5)) - { - case 3: - { - Vector3 valueOrDefault = value2; - vector2 = valueOrDefault; - num10 = -1179116054; - break; - } - case 2: - { - enumerator2.Current.Deconstruct(out key, out var value); - text = key; - num10 = ((!value.TryGetValue(rowId, out value2)) ? (-1179116054) : (-1179116049)); - break; - } - case 1: - num10 = (enumerator2.MoveNext() ? (-1179116055) : (-1179116053)); - break; - case 5: - num10 = -1179116054; - break; - case 4: - { - list2.Add(text); - key = text; - num12 = dictionary[key]; - string key2 = key; - int num13 = num12; - num5 = 1; - num6 = num13; - dictionary[key2] = (num6 | num5) + (num6 & num5); - Vector3 valueOrDefault = vector2.GetValueOrDefault(); - num10 = (vector2.HasValue ? (-1179116054) : (-1179116056)); - break; - } - case 0: - goto end_IL_01ec; - } - continue; - end_IL_01ec: - break; - } - } - num10 = ((list2.Count != 0) ? 2075588319 : 2075588315); - } - else - { - num10 = 2075588318; - } - while (true) - { - int num14 = num10; - int num5 = 2075588317; - int num6 = num14; - int num15 = num6 + num5; - int num16 = num6 & num5; - switch (num15 - (num16 + num16)) - { - default: - continue; - case 8: - num10 = (_206D_202B_200C_206B_200D_206F_206F_200F_200B_202B_206B_200C_202E_206C_202D_200E_202A_200D_206A_202B_200E_206C_200C_200C_202A_206C_202D_202A_206C_200F_206D_206E_202A_206E_200C_200D_206F_200E_200E_206A_202E(current) ? 2075588316 : 2075588313); - continue; - case 2: - value4 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1720149641); - num10 = ((!vector2.HasValue) ? 2075588316 : 2075588309); - continue; - case 0: - { - stringBuilder2 = stringBuilder; - StringBuilder stringBuilder3 = stringBuilder2; - formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - IFormatProvider formatProvider2 = formatProvider; - appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(39, 8, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1658781691)); - appendInterpolatedStringHandler.AppendFormatted(_206A_200E_200D_202B_206D_202B_206F_202D_202C_200F_206C_202C_206F_202E_200B_202C_200D_206B_202A_206A_200B_202B_200C_202D_206F_202C_206D_200E_202E_200C_200E_206E_200D_202D_200D_200E_202E_200B_206C_200E_202E(current)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(121974199)); - appendInterpolatedStringHandler.AppendFormatted(_200E_206B_206D_202D_206E_206F_200D_206C_202D_206A_200C_202C_200C_200D_202B_202B_206F_200D_200E_206E_206B_206C_200E_202D_206B_206C_200E_200E_206A_202E_202D_202B_200E_206A_200C_200C_202D_200C_200C_200F_202E(current) ?? _206F_200E_206B_202D_202B_202E_206F_200D_206B_202B_206C_206F_202B_202B_200F_206A_202A_206E_206A_202D_202B_200C_202C_202D_200F_206F_202D_202D_200D_206D_200C_206C_202B_206E_206A_206C_206C_206E_206E_202A_202E(current) ?? global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1887683575)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1389973659)); - appendInterpolatedStringHandler.AppendFormatted(rowId); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-324914973)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1558307452)); - appendInterpolatedStringHandler.AppendFormatted(_territoryData.GetNameAndId(rowId2)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2035955381)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1784638708)); - appendInterpolatedStringHandler.AppendFormatted(flag); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1132877285)); - appendInterpolatedStringHandler.AppendFormatted((list2.Count > 0) ? _200D_200B_202E_200D_202A_202B_206F_200F_202B_200D_200B_202C_200E_206F_202C_206D_206A_202A_206A_206D_206D_200E_206F_206C_206F_202C_202C_202B_200F_202D_200B_200D_206D_200B_202B_206C_206D_200F_206F_206E_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1754250772), (IEnumerable<string>)list2) : global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1971210874)); - string value3; - if (!vector2.HasValue) - { - value3 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-87324410); - } - else - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(5, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-695175043)); - defaultInterpolatedStringHandler.AppendFormatted(vector2.Value); - value3 = defaultInterpolatedStringHandler.ToStringAndClear(); - } - appendInterpolatedStringHandler.AppendFormatted(value3); - appendInterpolatedStringHandler.AppendFormatted(value4); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder3, formatProvider2, ref appendInterpolatedStringHandler); - break; - } - case 1: - num10 = ((!_206D_202B_200C_206B_200D_206F_206F_200F_200B_202B_206B_200C_202E_206C_202D_200E_202A_200D_206A_202B_200E_206C_200C_200C_202A_206C_202D_202A_206C_200F_206D_206E_202A_206E_200C_200D_206F_200E_200E_206A_202E(current)) ? 2075588317 : 2075588314); - continue; - case 6: - { - int num17 = num2; - num5 = 1; - num6 = num17; - int num18 = num6 ^ num5; - int num19 = num6 & num5; - num2 = num18 + (num19 + num19); - num10 = 2075588319; - continue; - } - case 7: - value4 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1056949931); - num10 = 2075588317; - continue; - case 9: - { - Vector3 valueOrDefault2 = vector.GetValueOrDefault(); - float item = Vector3.Distance(vector2.Value, valueOrDefault2); - list.Add((_206A_200E_200D_202B_206D_202B_206F_202D_202C_200F_206C_202C_206F_202E_200B_202C_200D_206B_202A_206A_200B_202B_200C_202D_206F_202C_206D_200E_202E_200C_200E_206E_200D_202D_200D_200E_202E_200B_206C_200E_202E(current), item)); - value4 = _202B_200B_202E_200C_202A_202C_206A_200D_206D_200E_206E_202C_202E_202E_200C_202A_206E_200C_206D_202E_206D_200D_202E_206F_206C_200B_200E_206F_202E_200E_206B_200C_206E_206B_202D_206F_200E_202A_206D_200F_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1690644541), item.ToString(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1324991826), _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E()), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-997794500)); - num10 = 2075588317; - continue; - } - case 5: - num10 = 2075588315; - continue; - case 4: - vector = _200D_206E_202D_206B_206B_206E_206E_200C_202B_206F_206C_200E_200B_202D_202D_202D_206E_202A_200B_202C_202D_206D_206C_206B_200F_202E_202E_206A_206C_206F_206A_206A_206C_202D_200C_206B_206C_206F_206E_206C_202E(current); - num10 = ((!vector.HasValue) ? 2075588316 : 2075588308); - continue; - case 3: - goto end_IL_0343; - } - goto IL_057c; - continue; - end_IL_0343: - break; - } - break; - } - } - finally - { - num10 = ((enumerator == null) ? (-1684518491) : (-1684518490)); - while (true) - { - int num20 = num10; - int num5 = -1684518492; - int num6 = num20; - int num21 = num6 + num5; - int num22 = num6 & num5; - switch (num21 - (num22 + num22)) - { - case 1: - goto end_IL_06ba; - case 2: - _202A_202C_202E_206A_200C_206D_206F_202C_202B_206D_206C_200D_202B_206B_200B_202D_200B_202B_200C_206D_202B_200E_202E_200D_206C_202A_200E_200C_206C_202B_206C_202C_202C_200E_202A_206D_202B_206E_206D_200D_202E((IDisposable)enumerator); - num10 = -1684518491; - break; - case 0: - num10 = -1684518490; - break; - } continue; - end_IL_06ba: - break; } + Warp? rowOrDefault = excelSheet.GetRowOrDefault(item4.RowId); + if (!rowOrDefault.HasValue) + { + continue; + } + num++; + uint rowId = rowOrDefault.Value.PopRange.RowId; + uint rowId2 = rowOrDefault.Value.TerritoryType.RowId; + bool flag = rowId != 0 && excelSheet2.HasRow(rowId); + if (flag) + { + num3++; + } + List<string> list2 = new List<string>(); + Vector3? vector = null; + foreach (KeyValuePair<string, Dictionary<uint, Vector3>> item5 in ScanPopRanges(cache, rowId2)) + { + item5.Deconstruct(out var key, out var value); + string text = key; + if (value.TryGetValue(rowId, out var value2)) + { + list2.Add(text); + key = text; + dictionary[key]++; + Vector3 valueOrDefault = vector.GetValueOrDefault(); + if (!vector.HasValue) + { + valueOrDefault = value2; + vector = valueOrDefault; + } + } + } + if (list2.Count == 0) + { + num2++; + } + string value3 = ""; + if (vector.HasValue && !item4.DerivedArrival) + { + Vector3? destPosition = item4.DestPosition; + if (destPosition.HasValue) + { + Vector3 valueOrDefault2 = destPosition.GetValueOrDefault(); + float item = Vector3.Distance(vector.Value, valueOrDefault2); + list.Add((item4.RowId, item)); + value3 = ", delta=" + item.ToString("F1", CultureInfo.InvariantCulture) + "y"; + goto IL_02c9; + } + } + if (item4.DerivedArrival) + { + value3 = ", derived-arrival"; + } + goto IL_02c9; + IL_02c9: + stringBuilder2 = stringBuilder; + StringBuilder stringBuilder3 = stringBuilder2; + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(39, 8, stringBuilder2, invariantCulture); + handler.AppendLiteral("warp "); + handler.AppendFormatted(item4.RowId); + handler.AppendLiteral(" '"); + handler.AppendFormatted(item4.Name ?? item4.Question ?? "?"); + handler.AppendLiteral("' popId="); + handler.AppendFormatted(rowId); + handler.AppendLiteral(" "); + handler.AppendLiteral("dest="); + handler.AppendFormatted(_territoryData.GetNameAndId(rowId2)); + handler.AppendLiteral(": "); + handler.AppendLiteral("level-row="); + handler.AppendFormatted(flag); + handler.AppendLiteral(", lgb="); + handler.AppendFormatted((list2.Count > 0) ? string.Join("+", list2) : "NOT FOUND"); + handler.AppendFormatted(vector.HasValue ? $" pos={vector.Value}" : ""); + handler.AppendFormatted(value3); + stringBuilder3.AppendLine(provider, ref handler); } - _206D_200E_202C_206F_206D_202E_202C_206A_200B_200D_202B_202A_202E_202A_202D_202D_200D_206C_202A_202A_206F_202D_206D_202C_202C_206E_206C_202E_200D_202D_206C_206F_206D_206C_206E_200E_200E_200D_200B_202B_202E(stringBuilder); + stringBuilder.AppendLine(); stringBuilder2 = stringBuilder; StringBuilder stringBuilder4 = stringBuilder2; - formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - IFormatProvider formatProvider3 = formatProvider; - appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(65, 3, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendFormatted(num); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1428089820)); - appendInterpolatedStringHandler.AppendFormatted(num3); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1817321270)); - appendInterpolatedStringHandler.AppendFormatted(num2); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2120097395)); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder4, formatProvider3, ref appendInterpolatedStringHandler); + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider2 = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(65, 3, stringBuilder2, invariantCulture); + handler.AppendFormatted(num); + handler.AppendLiteral(" warps probed, "); + handler.AppendFormatted(num3); + handler.AppendLiteral(" with a Level sheet row, "); + handler.AppendFormatted(num2); + handler.AppendLiteral(" with no LGB PopRange hit"); + stringBuilder4.AppendLine(provider2, ref handler); string[] planFiles = PlanFiles; - num12 = 0; - num10 = -1896058095; - List<(uint, float)> list3 = default(List<(uint, float)>); - while (true) + foreach (string text2 in planFiles) { - int num23 = num10; - int num5 = -1896058093; - int num6 = num23; - switch ((num6 | num5) - (num6 & num5)) + stringBuilder2 = stringBuilder; + StringBuilder stringBuilder5 = stringBuilder2; + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider3 = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(17, 2, stringBuilder2, invariantCulture); + handler.AppendLiteral(" "); + handler.AppendFormatted(text2); + handler.AppendLiteral(": "); + handler.AppendFormatted(dictionary[text2]); + handler.AppendLiteral(" arrival hits"); + stringBuilder5.AppendLine(provider3, ref handler); + } + if (list.Count > 0) + { + List<(uint, float)> list3 = list.OrderBy<(uint, float), float>(((uint RowId, float Delta) d) => d.Delta).ToList(); + float item2 = list3[list3.Count / 2].Item2; + float item3 = list3[Math.Min(list3.Count - 1, (int)((double)list3.Count * 0.9))].Item2; + List<(uint, float)> list4 = list3.Where<(uint, float)>(((uint RowId, float Delta) d) => d.Delta > 20f).ToList(); + stringBuilder2 = stringBuilder; + StringBuilder stringBuilder6 = stringBuilder2; + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider4 = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(112, 5, stringBuilder2, invariantCulture); + handler.AppendLiteral("recorded-arrival delta (LGB PopRange pos vs recorded DestPosition): "); + handler.AppendFormatted(list3.Count); + handler.AppendLiteral(" compared, "); + handler.AppendLiteral("median "); + handler.AppendFormatted(item2, "F1"); + handler.AppendLiteral("y, p90 "); + handler.AppendFormatted(item3, "F1"); + handler.AppendLiteral("y, max "); + handler.AppendFormatted(list3[list3.Count - 1].Item2, "F1"); + handler.AppendLiteral("y, "); + handler.AppendFormatted(list4.Count); + handler.AppendLiteral(" over 20y"); + stringBuilder6.AppendLine(provider4, ref handler); + if (list4.Count > 0) { - case 0: - num10 = -1896058095; - break; - case 3: - num10 = ((list.Count <= 0) ? (-1896058089) : (-1896058094)); - break; - case 1: - { - List<(uint, float)> list4 = list.OrderBy<(uint, float), float>(((uint RowId, float Delta) d) => d.Delta).ToList(); - float item2 = list4[list4.Count / 2].Item2; - float item3 = list4[_200C_206B_200D_202A_202B_202A_206A_200C_206A_202B_202E_200C_206B_202D_200C_206D_206B_200D_206D_202B_202E_200B_206B_200E_202D_206C_202A_202B_200D_206A_206B_202B_206A_202C_206D_202B_200E_200C_202C_206E_202E(list4.Count - 1, (int)((double)list4.Count * 0.9))].Item2; - list3 = list4.Where<(uint, float)>(((uint RowId, float Delta) d) => d.Delta > 20f).ToList(); - stringBuilder2 = stringBuilder; - StringBuilder stringBuilder6 = stringBuilder2; - formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - IFormatProvider formatProvider5 = formatProvider; - appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(112, 5, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-984789891)); - appendInterpolatedStringHandler.AppendFormatted(list4.Count); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1492652165)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-115147857)); - appendInterpolatedStringHandler.AppendFormatted(item2, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2084434619)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1433275032)); - appendInterpolatedStringHandler.AppendFormatted(item3, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1324991826)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1205335904)); - appendInterpolatedStringHandler.AppendFormatted(list4[list4.Count - 1].Item2, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1324991826)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-939132204)); - appendInterpolatedStringHandler.AppendFormatted(list3.Count); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-15538910)); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder6, formatProvider5, ref appendInterpolatedStringHandler); - num10 = ((list3.Count <= 0) ? (-1896058089) : (-1896058090)); - break; - } - case 2: - num10 = ((num12 < planFiles.Length) ? (-1896058091) : (-1896058096)); - break; - case 6: - { - string text2 = planFiles[num12]; stringBuilder2 = stringBuilder; StringBuilder stringBuilder7 = stringBuilder2; - formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - IFormatProvider formatProvider6 = formatProvider; - appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(17, 2, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2047193429)); - appendInterpolatedStringHandler.AppendFormatted(text2); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2074665157)); - appendInterpolatedStringHandler.AppendFormatted(dictionary[text2]); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1948837903)); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder7, formatProvider6, ref appendInterpolatedStringHandler); - int num24 = num12; - num5 = 1; - num6 = num24; - int num25 = num6 ^ num5; - int num26 = num6 & num5; - num12 = num25 + (num26 + num26); - num10 = -1896058095; - break; - } - case 4: - return _200F_200E_202E_206F_200B_202E_206C_206B_202C_200E_200F_206F_206E_202A_202A_200C_200F_200C_200B_202B_200B_206D_206D_206E_202B_200D_206B_202A_200B_206E_200E_200C_202A_200F_200B_200B_200F_202D_206B_206C_202E((object)stringBuilder); - case 5: - { - stringBuilder2 = stringBuilder; - StringBuilder stringBuilder5 = stringBuilder2; - formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - IFormatProvider formatProvider4 = formatProvider; - appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(17, 1, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(492341808)); - appendInterpolatedStringHandler.AppendFormatted(_200D_200B_202E_200D_202A_202B_206F_200F_202B_200D_200B_202C_200E_206F_202C_206D_206A_202A_206A_206D_206D_200E_206F_206C_206F_202C_202C_202B_200F_202D_200B_200D_206D_200B_202B_206C_206D_200F_206F_206E_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1467939024), list3.Select<(uint, float), string>([MethodImpl(MethodImplOptions.NoInlining)] ((uint RowId, float Delta) d) => - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(4, 2); - defaultInterpolatedStringHandler2.AppendFormatted(d.RowId); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1473546846)); - defaultInterpolatedStringHandler2.AppendFormatted(d.Delta.ToString(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1819906059), _003C_003Ec._206E_200E_200C_200D_206F_200C_200E_206B_200E_202B_202C_200F_200C_200D_206B_206D_200D_206F_200F_202B_202B_206E_202E_202C_206F_200F_200D_202D_206F_200E_206E_200B_206F_200C_202C_200C_200D_200F_206B_202B_202E())); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-572338381)); - return defaultInterpolatedStringHandler2.ToStringAndClear(); - }))); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder5, formatProvider4, ref appendInterpolatedStringHandler); - num10 = -1896058089; - break; - } + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider5 = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(17, 1, stringBuilder2, invariantCulture); + handler.AppendLiteral(" >20y outliers: "); + handler.AppendFormatted(string.Join(", ", list4.Select<(uint, float), string>(((uint RowId, float Delta) d) => $"{d.RowId} ({d.Delta.ToString("F1", CultureInfo.InvariantCulture)}y)"))); + stringBuilder7.AppendLine(provider5, ref handler); } } + return stringBuilder.ToString(); } - [MethodImpl(MethodImplOptions.NoInlining)] private Dictionary<string, Dictionary<uint, Vector3>> ScanPopRanges(Dictionary<uint, Dictionary<string, Dictionary<uint, Vector3>>> cache, uint territoryId) { - int num = ((!cache.TryGetValue(territoryId, out Dictionary<string, Dictionary<uint, Vector3>> value)) ? 1621022502 : 1621022497); - Dictionary<string, Dictionary<uint, Vector3>> dictionary2 = default(Dictionary<string, Dictionary<uint, Vector3>>); - string text4 = default(string); - int num7 = default(int); - LayerCommon.InstanceObject instanceObject = default(LayerCommon.InstanceObject); - LayerCommon.InstanceObject[] instanceObjects = default(LayerCommon.InstanceObject[]); - int num12 = default(int); - int num13 = default(int); - LayerCommon.Layer[] array = default(LayerCommon.Layer[]); - while (true) + if (cache.TryGetValue(territoryId, out Dictionary<string, Dictionary<uint, Vector3>> value)) { - int num2 = num; - int num3 = 1621022501; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return value; + } + Dictionary<string, Dictionary<uint, Vector3>> dictionary = (cache[territoryId] = new Dictionary<string, Dictionary<uint, Vector3>>()); + string text = _dataManager.GetExcelSheet<TerritoryType>().GetRowOrDefault(territoryId)?.Bg.ExtractText(); + if (string.IsNullOrEmpty(text)) + { + return dictionary; + } + int num = text.IndexOf("/level/", StringComparison.Ordinal); + if (num < 0) + { + return dictionary; + } + string[] planFiles = PlanFiles; + foreach (string text2 in planFiles) + { + Dictionary<uint, Vector3> dictionary3 = (dictionary[text2] = new Dictionary<uint, Vector3>()); + string text3 = "bg/" + text.Substring(0, num + 1) + "level/" + text2; + try { - case 0: - return dictionary2; - case 3: - dictionary2 = (cache[territoryId] = new Dictionary<string, Dictionary<uint, Vector3>>()); - text4 = _dataManager.GetExcelSheet<TerritoryType>().GetRowOrDefault(territoryId)?.Bg.ExtractText(); - num = ((!_202B_200C_202C_206D_200B_200F_206E_206C_202A_200B_206B_200E_202A_202D_206A_206C_202C_206A_202A_200D_202B_202E_206C_200B_202C_206A_206D_202A_206F_200B_202E_206B_200D_200D_206D_200C_206B_202C_200B_200C_202E(text4)) ? 1621022499 : 1621022501); - break; - case 4: - return value; - case 2: - return dictionary2; - case 6: - num7 = _206B_202C_200D_202B_200B_202A_206F_200B_200C_200B_200C_200C_200B_200D_200B_206A_200C_200B_202B_200E_206C_206A_200B_206F_206B_202B_206E_206A_200F_202D_202A_200F_202B_206D_202E_200F_206F_200D_202E_200F_202E(text4, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1447478986), StringComparison.Ordinal); - num = ((num7 >= 0) ? 1621022500 : 1621022503); - break; - case 5: - num = 1621022497; - break; - case 1: - { - string[] planFiles = PlanFiles; - int num5 = 0; - while (num5 < planFiles.Length) + LgbFile file = _dataManager.GetFile<LgbFile>(text3); + if (file == null) { - string text = planFiles[num5]; - Dictionary<uint, Vector3> dictionary = (dictionary2[text] = new Dictionary<uint, Vector3>()); - string text2 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(227633411); - string text3 = text4; - int num6 = num7; - num3 = 1; - num4 = num6; - int num8 = num4 ^ num3; - int num9 = num4 & num3; - string text5 = _200F_206C_206B_202E_206B_206A_206C_202D_206F_202A_202E_206F_206F_206A_200E_200F_206E_206C_206D_202B_202C_202B_206C_206F_200D_206D_206E_200F_206F_202D_202E_200F_206B_200F_206F_202C_200E_200B_200D_206E_202E(text2, _202C_202E_206A_206F_206A_206D_200C_202B_206B_200C_206F_206B_202A_206D_202C_200C_200F_200F_202A_200D_206D_206E_202A_206F_206F_206B_200F_200C_206E_200C_202E_200F_200F_206E_206E_202A_206E_202E_206B_202D_202E(text3, 0, num8 + (num9 + num9)), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1288278212), text); - try + continue; + } + LayerCommon.Layer[] layers = file.Layers; + for (int j = 0; j < layers.Length; j++) + { + LayerCommon.InstanceObject[] instanceObjects = layers[j].InstanceObjects; + for (int k = 0; k < instanceObjects.Length; k++) { - LgbFile file = _dataManager.GetFile<LgbFile>(text5); - num = ((file != null) ? (-1691110925) : (-1691110917)); - while (true) + LayerCommon.InstanceObject instanceObject = instanceObjects[k]; + if (instanceObject.AssetType == LayerEntryType.PopRange) { - int num10 = num; - num3 = -1691110925; - num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - dictionary[instanceObject.InstanceId] = new Vector3(instanceObject.Transform.Translation.X, instanceObject.Transform.Translation.Y, instanceObject.Transform.Translation.Z); - num = -1691110923; - break; - case 8: - goto end_IL_01ac; - case 2: - num = -1691110917; - break; - case 4: - instanceObject = instanceObjects[num12]; - num = ((instanceObject.AssetType != LayerEntryType.PopRange) ? (-1691110923) : (-1691110926)); - break; - case 9: - num = ((num13 < array.Length) ? (-1691110919) : (-1691110922)); - break; - case 3: - { - int num14 = num13; - num3 = 1; - num4 = num14; - int num15 = num4 ^ num3; - int num16 = num4 & num3; - num13 = num15 + (num16 + num16); - num = -1691110918; - break; - } - case 7: - num = ((num12 < instanceObjects.Length) ? (-1691110921) : (-1691110928)); - break; - case 0: - array = _200F_202B_206B_202A_200F_200E_202B_206C_206A_206A_202D_200B_206B_206E_206F_200C_200E_202C_200C_200D_200B_200C_206A_206B_206E_202C_200C_202D_206B_200E_206A_206C_206F_206F_202D_206F_202C_200D_202D_206E_202E(file); - num13 = 0; - num = -1691110918; - break; - case 10: - instanceObjects = array[num13].InstanceObjects; - num12 = 0; - num = -1691110924; - break; - case 6: - { - int num11 = num12; - num3 = 1; - num4 = num11; - num12 = (num4 | num3) + (num4 & num3); - num = -1691110924; - break; - } - case 5: - goto end_IL_01ac; - } - continue; - end_IL_01ac: - break; + dictionary3[instanceObject.InstanceId] = new Vector3(instanceObject.Transform.Translation.X, instanceObject.Transform.Translation.Y, instanceObject.Transform.Translation.Z); } } - catch (Exception ex) - { - _202E_202D_202B_202C_200B_202A_206E_200C_200B_202A_206B_200D_206C_200C_206A_200E_202E_206E_202A_206F_206F_202E_206A_202B_202A_206C_200B_206C_202D_200D_206E_206A_202B_206B_202A_202A_206C_200E_202E_206C_202E((ILogger)_logger, ex, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(592032495), new object[1] { text5 }); - } - int num17 = num5; - num3 = 1; - num4 = num17; - int num18 = num4 ^ num3; - int num19 = num4 & num3; - num5 = num18 + (num19 + num19); } - return dictionary2; } + catch (Exception exception) + { + _logger.LogTrace(exception, "Failed to scan {Path}", text3); } } + return dictionary; } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawDerivedArrivalExport() { - int num = (_200D_202B_200B_206D_200C_202D_206C_206B_202A_206E_202B_200D_200E_200B_206F_206C_206A_202D_206E_206D_206C_200F_206F_206C_202A_206B_200B_206D_206B_200C_200E_202B_206C_206C_200C_202D_202D_200B_202D_206D_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1297058446), ImGuiTreeNodeFlags.None) ? (-332975332) : (-332975335)); - while (true) + if (!ImGui.CollapsingHeader("Derived Arrival Export (authoring)###arrivalexport")) { - int num2 = num; - int num3 = -332975331; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -332975335; - break; - case 1: - _202C_200D_202E_206B_206F_200D_202B_200E_206C_202C_200F_200F_200D_200D_200F_206C_200B_206B_200E_206C_200F_202B_202C_206E_202D_200B_200D_200E_202E_200B_200F_206D_202D_200C_206E_202E_206E_200F_202A_206E_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1892719681)); - num = ((_202B_200F_206C_202E_202B_200C_200B_206B_200D_202A_200C_200B_202C_200B_202C_202B_200C_200F_202D_206E_206D_200F_202A_206B_200E_206D_202A_202C_206B_200D_206C_202C_206B_200D_200D_202E_202A_206D_202B_206A_202E(_dataOptions) != null) ? (-332975333) : (-332975336)); - break; - case 5: - _202D_206C_202B_206F_200E_206C_206A_200F_200C_202E_200B_202B_202B_200B_202E_200D_200C_202D_202E_202D_200D_206F_200B_206E_206E_200C_206A_206E_200E_206F_206F_206D_202E_202A_202E_206B_200E_206A_200B_200F_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1901581621)); - return; - case 4: - return; - case 2: - _arrivalExportReport = RunGuarded(BuildDerivedArrivalExport); - num = -332975330; - break; - case 6: - num = ((!_202E_206D_202D_202A_206D_206A_200E_200B_202E_202B_202B_206C_200B_202C_206B_206A_206D_202E_202B_202A_202B_202B_200E_206F_206E_200D_202E_206B_202A_202C_206D_200C_200D_200B_206D_200B_202A_202B_202A_200F_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-436258789), default(Vector2))) ? (-332975330) : (-332975329)); - break; - case 3: - DrawReport(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(197244860), ref _arrivalExportReport); - return; - } + return; } + ImGui.TextWrapped("Scans every Warp row's destination territory for its arrival PopRange and writes derived-arrivals.json into the SmartNav.Data checkout (DevSourceDirectory) for bundling - runtime never scans LGB itself. Rerun after game patches. The game FREEZES for the scan (~1-2 min on a Debug build) - expected, wait it out."); + if (_dataOptions.DevSourceDirectory == null) + { + ImGui.TextDisabled("DevSourceDirectory not set - available in DEBUG builds only."); + return; + } + if (ImGui.Button("Scan + Export##arrivalexportrun")) + { + _arrivalExportReport = RunGuarded(BuildDerivedArrivalExport); + } + DrawReport("arrivalexport", ref _arrivalExportReport); } - [MethodImpl(MethodImplOptions.NoInlining)] private string BuildDerivedArrivalExport() { - StringBuilder stringBuilder = _200C_200B_206F_206E_206D_206D_202E_206B_202B_202A_200E_200F_202B_206F_200D_200E_202A_206A_200C_200B_206C_206C_202A_206D_206C_202A_202C_202E_206C_206E_206C_206B_206B_206C_200C_202B_202B_200F_200B_202E_202E(); + StringBuilder stringBuilder = new StringBuilder(); ExcelSheet<Warp> excelSheet = _dataManager.GetExcelSheet<Warp>(); Dictionary<uint, Dictionary<string, Dictionary<uint, Vector3>>> cache = new Dictionary<uint, Dictionary<string, Dictionary<uint, Vector3>>>(); Dictionary<string, int> dictionary = PlanFiles.ToDictionary((string f) => f, (string _) => 0); Dictionary<uint, DerivedArrivalEntry> dictionary2 = new Dictionary<uint, DerivedArrivalEntry>(); List<string> list = new List<string>(); int num = 0; - IEnumerator<Warp> enumerator = excelSheet.Where((Warp x) => x.RowId != 0).GetEnumerator(); - int num8; - int num6; - try + foreach (Warp item in excelSheet.Where((Warp x) => x.RowId != 0)) { - Warp current = default(Warp); - uint rowId = default(uint); - ushort num2 = default(ushort); - Vector3? vector = default(Vector3?); - Vector3 value2 = default(Vector3); - string text = default(string); - string text2 = default(string); - while (true) + uint rowId = item.PopRange.RowId; + ushort num2 = (ushort)item.TerritoryType.RowId; + if (rowId == 0 || num2 == 0) { - IL_034d: - if (_206A_200F_206D_206E_200B_206D_206D_200C_202A_202A_200D_206A_206F_202C_202A_200D_200F_200B_206E_200B_206E_202B_206D_200B_202C_202E_200B_206A_202D_206F_200F_206F_206D_206C_206F_206D_206D_202B_206D_202E_202E((IEnumerator)enumerator)) - { - current = enumerator.Current; - rowId = current.PopRange.RowId; - num2 = (ushort)current.TerritoryType.RowId; - if (rowId == 0 || num2 == 0) - { - continue; - } - int num3 = num; - int num4 = 1; - int num5 = num3; - num = (num5 | num4) + (num5 & num4); - vector = null; - using (Dictionary<string, Dictionary<uint, Vector3>>.Enumerator enumerator2 = ScanPopRanges(cache, num2).GetEnumerator()) - { - num6 = -2076757862; - while (true) - { - int num7 = num6; - num4 = -2076757857; - num5 = num7; - string key; - switch ((num5 | num4) - (num5 & num4)) - { - case 3: - { - Vector3 value3 = value2; - vector = value3; - num6 = -2076757862; - break; - } - case 4: - { - enumerator2.Current.Deconstruct(out key, out var value); - text = key; - num6 = ((!value.TryGetValue(rowId, out value2)) ? (-2076757862) : (-2076757857)); - break; - } - case 0: - { - key = text; - num8 = dictionary[key]; - string key2 = key; - int num9 = num8; - num4 = 1; - num5 = num9; - int num10 = num5 ^ num4; - int num11 = num5 & num4; - dictionary[key2] = num10 + (num11 + num11); - Vector3 value3 = vector.GetValueOrDefault(); - num6 = (vector.HasValue ? (-2076757862) : (-2076757860)); - break; - } - case 5: - num6 = (enumerator2.MoveNext() ? (-2076757861) : (-2076757858)); - break; - case 2: - num6 = -2076757862; - break; - case 1: - goto end_IL_0128; - } - continue; - end_IL_0128: - break; - } - } - num6 = ((!vector.HasValue) ? (-1603430500) : (-1603430501)); - } - else - { - num6 = -1603430502; - } - while (true) - { - int num12 = num6; - int num4 = -1603430503; - int num5 = num12; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 5: - text2 = current.Name.ExtractText(); - num6 = ((!_202B_200C_202C_206D_200B_200F_206E_206C_202A_200B_206B_200E_202A_202D_206A_206C_202C_206A_202A_200D_202B_202E_206C_200B_202C_206A_206D_202A_206F_200B_202E_206B_200D_200D_206D_200C_206B_202C_200B_200C_202E(text2)) ? (-1603430504) : (-1603430503)); - continue; - case 2: - { - uint rowId2 = current.RowId; - DerivedArrivalEntry derivedArrivalEntry = _202A_206F_206E_202E_200C_202B_202C_206B_202D_200E_202A_202A_200F_206F_206B_202E_206B_200D_202B_206B_202A_206F_200C_206B_202E_206E_206E_202B_200F_206E_202E_206A_200F_206D_202E_200B_202B_202D_202E_202D_202E(); - _206D_206B_202B_200F_202E_206D_202A_206C_202B_206B_202D_200B_206A_206B_202E_202C_202E_202A_200C_206F_200E_200D_202B_202E_200F_202B_200E_206F_206C_206A_202B_200B_200E_202C_202C_200D_206D_206D_206B_202E_202E(derivedArrivalEntry, rowId); - _206F_202E_206A_202C_202D_206B_202D_206D_206A_206F_206F_202C_200F_202B_206F_206F_200E_206C_206E_206C_200B_206C_200C_202C_206A_202A_206F_206D_202E_202E_206E_202B_202B_202D_202A_200C_206F_202E_202C_200D_202E(derivedArrivalEntry, num2); - _200D_200F_206A_200D_202A_202A_202B_200C_202B_202B_206F_202C_202A_206E_202A_206F_202C_200D_206C_200F_202A_200E_202A_206A_200B_206D_206B_200D_206E_206E_206F_206E_200C_200B_206B_202A_206C_200C_202E_200C_202E(derivedArrivalEntry, vector.Value.X); - _200D_202A_202B_206A_200E_200C_202B_200B_202E_200E_206F_206A_206E_200E_206C_200B_206A_206A_200D_200D_200F_206A_206A_200F_200C_200D_206A_206C_206D_206C_202A_200B_206E_202D_202A_206F_202C_202E_206E_202E(derivedArrivalEntry, vector.Value.Y); - _206F_202B_200E_200D_202E_200D_206D_206F_202C_206C_206F_200F_206F_206B_206E_200B_202A_206A_200E_200C_200B_206E_206D_206B_206A_200C_202C_200E_200F_200D_206A_200E_200C_202C_200B_200F_200C_206F_200C_200F_202E(derivedArrivalEntry, vector.Value.Z); - dictionary2[rowId2] = derivedArrivalEntry; - num6 = -1603430499; - continue; - } - case 4: - break; - case 0: - text2 = current.Question.ExtractText(); - num6 = -1603430504; - continue; - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(18, 4); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1084120440)); - defaultInterpolatedStringHandler.AppendFormatted(current.RowId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1789328049)); - defaultInterpolatedStringHandler.AppendFormatted(text2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(527533137)); - defaultInterpolatedStringHandler.AppendFormatted(rowId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-259312352)); - defaultInterpolatedStringHandler.AppendFormatted(_territoryData.GetNameAndId(num2)); - list.Add(defaultInterpolatedStringHandler.ToStringAndClear()); - num6 = -1603430499; - continue; - } - case 6: - num6 = -1603430501; - continue; - case 3: - goto end_IL_0277; - } - goto IL_034d; - continue; - end_IL_0277: - break; - } - break; - } - } - finally - { - num6 = ((enumerator == null) ? (-1874454493) : (-1874454496)); - while (true) - { - int num13 = num6; - int num4 = -1874454495; - int num5 = num13; - int num14 = num5 + num4; - int num15 = num5 & num4; - switch (num14 - (num15 + num15)) - { - case 2: - goto end_IL_044f; - case 1: - _202A_202C_202E_206A_200C_206D_206F_202C_202B_206D_206C_200D_202B_206B_200B_202D_200B_202B_200C_206D_202B_200E_202E_200D_206C_202A_200E_200C_206C_202B_206C_202C_202C_200E_202A_206D_202B_206E_206D_200D_202E((IDisposable)enumerator); - num6 = -1874454493; - break; - case 0: - num6 = -1874454496; - break; - } continue; - end_IL_044f: - break; } + num++; + Vector3? vector = null; + foreach (KeyValuePair<string, Dictionary<uint, Vector3>> item2 in ScanPopRanges(cache, num2)) + { + item2.Deconstruct(out var key, out var value); + string text = key; + if (value.TryGetValue(rowId, out var value2)) + { + key = text; + dictionary[key]++; + Vector3 valueOrDefault = vector.GetValueOrDefault(); + if (!vector.HasValue) + { + valueOrDefault = value2; + vector = valueOrDefault; + } + } + } + if (vector.HasValue) + { + dictionary2[item.RowId] = new DerivedArrivalEntry + { + PopRangeId = rowId, + TerritoryId = num2, + X = vector.Value.X, + Y = vector.Value.Y, + Z = vector.Value.Z + }; + continue; + } + string value3 = item.Name.ExtractText(); + if (string.IsNullOrEmpty(value3)) + { + value3 = item.Question.ExtractText(); + } + list.Add($" {item.RowId} '{value3}' popId={rowId} dest={_territoryData.GetNameAndId(num2)}"); } - DerivedArrivalFile derivedArrivalFile = _206F_202E_200F_206F_200C_206D_206B_206B_200C_200C_202B_200B_206A_206C_206A_206B_206A_202A_206E_202A_206B_202C_202D_206C_202C_200B_206B_200F_206C_202C_206F_202C_200C_200F_202C_202B_206E_206F_200C_200D_202E(); - _200F_206F_206E_206E_202B_206A_206E_206B_202B_206F_206A_200F_206D_200D_202B_206C_202B_200E_202C_206E_200E_206B_206C_200F_200C_206D_206D_206C_202E_200E_202A_206C_202B_202C_206C_200F_206E_200B_202A_202B_202E(derivedArrivalFile, _206D_202D_202E_200E_206B_202D_206F_202C_200E_202E_200B_206C_200F_202D_200F_200F_202E_206C_202D_200D_206A_206C_202D_200D_200C_202D_200F_206F_200F_202C_202A_200F_202D_200F_206B_200B_202C_202A_200F_202B_202E(_dataOptions)); - _200F_200B_202E_206F_206A_206E_202D_200B_206F_200F_206C_202B_206F_206E_202C_200E_200E_206E_200C_202A_202C_200F_206E_202D_200C_202C_202C_202B_200C_202D_206D_200F_202A_202A_200F_200C_206F_206B_200B_206E_202E(derivedArrivalFile, dictionary2); - DerivedArrivalFile derivedArrivalFile2 = derivedArrivalFile; - string text3 = _206C_200E_202C_206E_202A_202A_206D_206E_202B_200F_202A_202E_200F_200E_206B_206D_206F_202A_202C_206B_200C_202C_206C_200F_206D_200C_206F_202C_202A_206E_202E_202A_202A_202C_206E_206D_202E_200F_200E_202E_202E(_200E_206F_200E_202B_206E_202B_200F_206C_200C_206E_206C_206B_200F_202B_200F_206A_200F_206C_206C_206B_202D_202D_202E_202C_200E_200C_202D_200E_202A_200B_200D_202E_206A_206A_200E_206A_200D_202D_206F_202D_202E((FileSystemInfo)_202B_200F_206C_202E_202B_200C_200B_206B_200D_202A_200C_200B_202C_200B_202C_202B_200C_200F_202D_206E_206D_200F_202A_206B_200E_206D_202A_202C_206B_200D_206C_202C_206B_200D_200D_202E_202A_206D_202B_206A_202E(_dataOptions)), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-632129369)); - _206B_206C_200C_202B_200D_202C_200B_202E_200F_206C_200F_202B_206D_206E_202A_206C_206D_202E_206E_200B_206F_202E_202C_202C_206E_202D_200D_202B_200D_206B_202A_206D_206B_206A_206B_202C_202E_202D_200F_202B_202E(text3, JsonSerializer.Serialize(derivedArrivalFile2, IndentedJson)); + DerivedArrivalFile derivedArrivalFile = new DerivedArrivalFile + { + GameVersion = _dataOptions.GameVersion, + Arrivals = dictionary2 + }; + string text2 = Path.Combine(_dataOptions.DevSourceDirectory.FullName, "derived-arrivals.json"); + File.WriteAllText(text2, JsonSerializer.Serialize(derivedArrivalFile, IndentedJson)); StringBuilder stringBuilder2 = stringBuilder; StringBuilder stringBuilder3 = stringBuilder2; - IFormatProvider formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - IFormatProvider formatProvider2 = formatProvider; - StringBuilder.AppendInterpolatedStringHandler appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(57, 2, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendFormatted(num); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1141024490)); - appendInterpolatedStringHandler.AppendFormatted(dictionary2.Count); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2018314361)); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder3, formatProvider2, ref appendInterpolatedStringHandler); + IFormatProvider invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider = invariantCulture; + StringBuilder.AppendInterpolatedStringHandler handler = new StringBuilder.AppendInterpolatedStringHandler(57, 2, stringBuilder2, invariantCulture); + handler.AppendFormatted(num); + handler.AppendLiteral(" warp rows with PopRange + destination, "); + handler.AppendFormatted(dictionary2.Count); + handler.AppendLiteral(" arrivals derived"); + stringBuilder3.AppendLine(provider, ref handler); string[] planFiles = PlanFiles; - num8 = 0; - num6 = 1870756699; - while (true) + foreach (string text3 in planFiles) { - int num16 = num6; - int num4 = 1870756696; - int num5 = num16; - int num17 = num5 + num4; - int num18 = num5 & num4; - switch (num17 - (num18 + num18)) - { - case 2: - num6 = 1870756699; - break; - case 3: - num6 = ((num8 < planFiles.Length) ? 1870756697 : 1870756696); - break; - case 1: - { - string text4 = planFiles[num8]; - stringBuilder2 = stringBuilder; - StringBuilder stringBuilder6 = stringBuilder2; - formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - IFormatProvider formatProvider5 = formatProvider; - appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(9, 2, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2047193429)); - appendInterpolatedStringHandler.AppendFormatted(text4); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1545053118)); - appendInterpolatedStringHandler.AppendFormatted(dictionary[text4]); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2018222976)); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder6, formatProvider5, ref appendInterpolatedStringHandler); - int num22 = num8; - num4 = 1; - num5 = num22; - num8 = (num5 | num4) + (num5 & num4); - num6 = 1870756699; - break; - } - case 0: - { - stringBuilder2 = stringBuilder; - StringBuilder stringBuilder4 = stringBuilder2; - formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - IFormatProvider formatProvider3 = formatProvider; - appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(98, 1, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendFormatted(list.Count); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(632432975)); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder4, formatProvider3, ref appendInterpolatedStringHandler); - using (List<string>.Enumerator enumerator3 = list.GetEnumerator()) - { - num6 = -1351429223; - while (true) - { - int num19 = num6; - num4 = -1351429223; - num5 = num19; - int num20 = num5 + num4; - int num21 = num5 & num4; - switch (num20 - (num21 + num21)) - { - case 2: - num6 = -1351429223; - break; - case 3: - { - string current2 = enumerator3.Current; - _206E_202B_206C_200C_202E_202C_200B_206D_206C_200B_206A_202D_206C_206C_200F_202B_206E_206B_206C_200C_206A_200D_206C_202D_202C_200D_200E_202C_206F_202C_206E_206A_206E_202A_200E_202C_206E_206D_202B_200C_202E(stringBuilder, current2); - num6 = -1351429223; - break; - } - case 0: - num6 = (enumerator3.MoveNext() ? (-1351429222) : (-1351429224)); - break; - case 1: - goto end_IL_06b1; - } - continue; - end_IL_06b1: - break; - } - } - _206D_200E_202C_206F_206D_202E_202C_206A_200B_200D_202B_202A_202E_202A_202D_202D_200D_206C_202A_202A_206F_202D_206D_202C_202C_206E_206C_202E_200D_202D_206C_206F_206D_206C_206E_200E_200E_200D_200B_202B_202E(stringBuilder); - stringBuilder2 = stringBuilder; - StringBuilder stringBuilder5 = stringBuilder2; - formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - IFormatProvider formatProvider4 = formatProvider; - appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(25, 2, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1359032729)); - appendInterpolatedStringHandler.AppendFormatted(text3); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(93850674)); - appendInterpolatedStringHandler.AppendFormatted(_202D_206B_202B_206F_202B_202B_200F_202E_206F_202A_206A_206E_206B_206B_206C_206A_200D_202C_202C_202E_206E_202D_200E_206E_206C_206C_200D_200D_200B_200E_200B_202E_206C_202B_206C_200E_200F_206F_200E_200D_202E(derivedArrivalFile2) ?? global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1887683575)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295)); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder5, formatProvider4, ref appendInterpolatedStringHandler); - _206E_202B_206C_200C_202E_202C_200B_206D_206C_200B_206A_202D_206C_206C_200F_202B_206E_206B_206C_200C_206A_200D_206C_202D_202C_200D_200E_202C_206F_202C_206E_206A_206E_202A_200E_202C_206E_206D_202B_200C_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1824898501)); - return _200F_200E_202E_206F_200B_202E_206C_206B_202C_200E_200F_206F_206E_202A_202A_200C_200F_200C_200B_202B_200B_206D_206D_206E_202B_200D_206B_202A_200B_206E_200E_200C_202A_200F_200B_200B_200F_202D_206B_206C_202E((object)stringBuilder); - } - } + stringBuilder2 = stringBuilder; + StringBuilder stringBuilder4 = stringBuilder2; + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider2 = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(9, 2, stringBuilder2, invariantCulture); + handler.AppendLiteral(" "); + handler.AppendFormatted(text3); + handler.AppendLiteral(": "); + handler.AppendFormatted(dictionary[text3]); + handler.AppendLiteral(" hits"); + stringBuilder4.AppendLine(provider2, ref handler); } + stringBuilder2 = stringBuilder; + StringBuilder stringBuilder5 = stringBuilder2; + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider3 = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(98, 1, stringBuilder2, invariantCulture); + handler.AppendFormatted(list.Count); + handler.AppendLiteral(" unresolved (no plan file holds the pop id; Level-sheet fallback may still cover some at runtime):"); + stringBuilder5.AppendLine(provider3, ref handler); + foreach (string item3 in list) + { + stringBuilder.AppendLine(item3); + } + stringBuilder.AppendLine(); + stringBuilder2 = stringBuilder; + StringBuilder stringBuilder6 = stringBuilder2; + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider4 = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(25, 2, stringBuilder2, invariantCulture); + handler.AppendLiteral("written: "); + handler.AppendFormatted(text2); + handler.AppendLiteral(" (game version "); + handler.AppendFormatted(derivedArrivalFile.GameVersion ?? "?"); + handler.AppendLiteral(")"); + stringBuilder6.AppendLine(provider4, ref handler); + stringBuilder.AppendLine("DEBUG builds read this file directly via DevSourceDirectory - toggle the plugin to see the new arrivals; commit it in SmartNav to ship."); + return stringBuilder.ToString(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawLayerSetProbe() { - int num = (_200D_202B_200B_206D_200C_202D_206C_206B_202A_206E_202B_200D_200E_200B_206F_206C_206A_202D_206E_206D_206C_200F_206F_206C_202A_206B_200B_206D_206B_200C_200E_202B_206C_206C_200C_202D_202D_200B_202D_206D_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-875146848), ImGuiTreeNodeFlags.DefaultOpen) ? 1301006986 : 1301006985); - uint territoryId; - while (true) + if (!ImGui.CollapsingHeader("Layer-Set Attribution Probe (.lvb)###lvbprobe", ImGuiTreeNodeFlags.DefaultOpen)) { - int num2 = num; - int num3 = 1301006986; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _202C_200D_202E_206B_206F_200D_202B_200E_206C_202C_200F_200F_200D_200D_200F_206C_200B_206B_200E_206C_200F_202B_202C_206E_202D_200B_200D_200E_202E_200B_200F_206D_202D_200C_206E_202E_206E_200F_202A_206E_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1690152568)); - _202A_206B_202E_206C_202B_200B_200D_202B_206B_200F_206E_200F_200B_206D_206E_206B_202D_200F_206E_200B_202D_200F_200D_200B_202B_200E_206B_200D_200C_202E_206D_200C_202B_206D_200E_206A_206D_206E_202D_202E(120f); - _200C_202C_200C_206F_202A_202D_200F_206D_206D_200E_202B_200E_200B_206B_206E_206C_206A_200C_206F_200C_202E_200E_206C_206B_206B_202B_206D_206F_202B_206F_206E_206B_206E_202D_206C_202B_202C_202A_206A_202A_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1460437686), ref _lvbTerritoryId, 0, 0, default(ImU8String), ImGuiInputTextFlags.None); - num = ((!_202E_206D_202D_202A_206D_206A_200E_200B_202E_202B_202B_206C_200B_202C_206B_206A_206D_202E_202B_202A_202B_202B_200E_206F_206E_200D_202E_206B_202A_202C_206D_200C_200D_200B_206D_200B_202A_202B_202A_200F_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1188775364), default(Vector2))) ? 1301006990 : 1301006987); - break; - case 3: - return; - case 2: - num = 1301006985; - break; - case 1: - territoryId = ((_lvbTerritoryId > 0) ? ((uint)_lvbTerritoryId) : _200B_206F_206B_206D_206C_202D_206E_200D_206C_202C_206F_202D_202E_206F_206B_200B_200E_206F_200F_200D_200D_202D_202B_200D_202B_206D_206F_206E_206A_206B_202E_202E_206A_202C_206E_202C_202E_206D_200B_202C_202E(_clientState)); - _lvbReport = RunGuarded(() => BuildLayerSetReport(territoryId)); - num = 1301006990; - break; - case 4: - DrawReport(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-755775763), ref _lvbReport); - return; - } + return; } + ImGui.TextWrapped("Parses the territory's .lvb layer-set table per the offsets claimed in NoireLib's GameData docs (0x1C-byte records, TerritoryType row at +0x0C) and each plan file's per-layer layer-set references. Verify against a known shared-level pair, e.g. Mist 339 vs s1h1_test 136: attributed territory ids must all appear in the 'territories sharing this Bg' line."); + ImGui.SetNextItemWidth(120f); + ImGui.InputInt("Territory id (0 = current)##lvbterritory", ref _lvbTerritoryId); + if (ImGui.Button("Parse##lvb")) + { + uint territoryId = ((_lvbTerritoryId > 0) ? ((uint)_lvbTerritoryId) : _clientState.TerritoryType); + _lvbReport = RunGuarded(() => BuildLayerSetReport(territoryId)); + } + DrawReport("lvb", ref _lvbReport); } - [MethodImpl(MethodImplOptions.NoInlining)] private string BuildLayerSetReport(uint territoryId) { - StringBuilder stringBuilder = _200C_200B_206F_206E_206D_206D_202E_206B_202B_202A_200E_200F_202B_206F_200D_200E_202A_206A_200C_200B_206C_206C_202A_206D_206C_202A_202C_202E_206C_206E_206C_206B_206B_206C_200C_202B_202B_200F_200B_202E_202E(); + StringBuilder stringBuilder = new StringBuilder(); ExcelSheet<TerritoryType> excelSheet = _dataManager.GetExcelSheet<TerritoryType>(); string bg = excelSheet.GetRowOrDefault(territoryId)?.Bg.ExtractText(); - int num = ((!_202B_200C_202C_206D_200B_200F_206E_206C_202A_200B_206B_200E_202A_202D_206A_206C_202C_206A_202A_200D_202B_202E_206C_200B_202C_206A_206D_202A_206F_200B_202E_206B_200D_200D_206D_200C_206B_202C_200B_200C_202E(bg)) ? 1217962322 : 1217962323); - int num6 = default(int); - Dictionary<uint, List<uint>> owners; - uint item = default(uint); - List<uint> value = default(List<uint>); - uint item2 = default(uint); - string text5 = default(string); - List<List<uint>> list4 = default(List<List<uint>>); - while (true) + if (string.IsNullOrEmpty(bg)) { - int num2 = num; - int num3 = 1217962322; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return $"territory {territoryId} has no Bg path"; + } + int num = bg.IndexOf("/level/", StringComparison.Ordinal); + if (num < 0) + { + return $"territory {territoryId} Bg '{bg}' has no /level/ segment"; + } + string text = "bg/" + bg.Substring(0, num + 1) + "level/"; + string text2 = bg.Substring(bg.LastIndexOf('/') + 1); + StringBuilder stringBuilder2 = stringBuilder; + StringBuilder stringBuilder3 = stringBuilder2; + IFormatProvider invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider = invariantCulture; + StringBuilder.AppendInterpolatedStringHandler handler = new StringBuilder.AppendInterpolatedStringHandler(17, 2, stringBuilder2, invariantCulture); + handler.AppendLiteral("territory "); + handler.AppendFormatted(_territoryData.GetNameAndId(territoryId)); + handler.AppendLiteral(", Bg '"); + handler.AppendFormatted(bg); + handler.AppendLiteral("'"); + stringBuilder3.AppendLine(provider, ref handler); + List<uint> list = (from t in excelSheet + where t.RowId != 0 && t.Bg.ExtractText() == bg + select t.RowId).ToList(); + stringBuilder2 = stringBuilder; + StringBuilder stringBuilder4 = stringBuilder2; + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider2 = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(29, 1, stringBuilder2, invariantCulture); + handler.AppendLiteral("territories sharing this Bg: "); + handler.AppendFormatted(string.Join(", ", list)); + stringBuilder4.AppendLine(provider2, ref handler); + List<(uint SetId, uint TerritoryId)> list2 = ParseLvbLayerSets(ReadFileBytes(text + text2 + ".lvb"), stringBuilder); + Dictionary<uint, List<uint>> owners = new Dictionary<uint, List<uint>>(); + foreach (var item3 in list2) + { + uint item = item3.SetId; + uint item2 = item3.TerritoryId; + stringBuilder2 = stringBuilder; + StringBuilder stringBuilder5 = stringBuilder2; + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider3 = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(26, 3, stringBuilder2, invariantCulture); + handler.AppendLiteral(" layer set "); + handler.AppendFormatted(item); + handler.AppendLiteral(" -> territory "); + handler.AppendFormatted(item2); + handler.AppendFormatted(list.Contains(item2) ? "" : " <-- NOT IN SHARING SET (offsets suspect)"); + stringBuilder5.AppendLine(provider3, ref handler); + if (item2 != 0) { - case 4: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(39, 2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-933891057)); - defaultInterpolatedStringHandler2.AppendFormatted(territoryId); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-280187168)); - defaultInterpolatedStringHandler2.AppendFormatted(bg); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1650634486)); - return defaultInterpolatedStringHandler2.ToStringAndClear(); - } - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(25, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-156340874)); - defaultInterpolatedStringHandler.AppendFormatted(territoryId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2086094510)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - case 0: - num6 = _206B_202C_200D_202B_200B_202A_206F_200B_200C_200B_200C_200C_200B_200D_200B_206A_200C_200B_202B_200E_206C_206A_200B_206F_206B_202B_206E_206A_200F_202D_202A_200F_202B_206D_202E_200F_206F_200D_202E_200F_202E(bg, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1447478986), StringComparison.Ordinal); - num = ((num6 >= 0) ? 1217962321 : 1217962326); - break; - case 2: - num = 1217962323; - break; - case 3: - { - string text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-397701742); - string text2 = bg; - int num5 = num6; - num3 = 1; - num4 = num5; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - string text3 = _202B_200B_202E_200C_202A_202C_206A_200D_206D_200E_206E_202C_202E_202E_200C_202A_206E_200C_206D_202E_206D_200D_202E_206F_206C_200B_200E_206F_202E_200E_206B_200C_206E_206B_202D_206F_200E_202A_206D_200F_202E(text, _202C_202E_206A_206F_206A_206D_200C_202B_206B_200C_206F_206B_202A_206D_202C_200C_200F_200F_202A_200D_206D_206E_202A_206F_206F_206B_200F_200C_206E_200C_202E_200F_200F_206E_206E_202A_206E_202E_206B_202D_202E(text2, 0, num7 + (num8 + num8)), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1288278212)); - string text4 = _206A_206B_200D_200F_200E_206F_200E_202E_200D_206E_202C_202E_202A_206A_200C_202A_200D_206D_200C_202D_200C_206E_200D_202E_202E_202D_200D_202D_202C_206B_206D_200C_202E_202C_202B_200F_200C_206D_202A_200F_202E(bg, _200E_200B_206C_206A_202B_206B_202D_202D_206A_200C_200F_200F_200C_202E_200B_206C_202C_206E_202A_206A_202D_206D_200D_206D_202E_202A_200F_200C_206B_200D_202D_202E_206B_202C_206A_200B_202B_202A_200C_206A_202E(bg, '/') + 1); - StringBuilder stringBuilder2 = stringBuilder; - StringBuilder stringBuilder3 = stringBuilder2; - IFormatProvider formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - IFormatProvider formatProvider2 = formatProvider; - StringBuilder.AppendInterpolatedStringHandler appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(17, 2, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-933891057)); - appendInterpolatedStringHandler.AppendFormatted(_territoryData.GetNameAndId(territoryId)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2035498113)); - appendInterpolatedStringHandler.AppendFormatted(bg); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1639651192)); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder3, formatProvider2, ref appendInterpolatedStringHandler); - List<uint> list = (from t in excelSheet.Where(delegate(TerritoryType t) - { - int num19 = ((t.RowId == 0) ? (-1476010825) : (-1476010828)); - while (true) - { - int num20 = num19; - int num21 = -1476010826; - int num22 = num20; - int num23 = num22 + num21; - int num24 = num22 & num21; - switch (num23 - (num24 + num24)) - { - case 0: - goto IL_0049; - case 2: - return _003C_003Ec__DisplayClass26_0._206E_200D_206F_202A_206D_200B_206A_206B_206C_202B_202E_202E_202E_206C_202E_200B_202A_206C_200B_202D_200D_206B_200F_206E_206A_202C_206F_206F_200C_206A_202E_200F_202C_200D_206E_200E_206F_200B_206F_200D_202E(t.Bg.ExtractText(), bg); - case 1: - return false; - } - continue; - IL_0049: - num19 = -1476010828; - } - }) - select t.RowId).ToList(); - stringBuilder2 = stringBuilder; - StringBuilder stringBuilder4 = stringBuilder2; - formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - IFormatProvider formatProvider3 = formatProvider; - appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(29, 1, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(50860618)); - appendInterpolatedStringHandler.AppendFormatted(string.Join(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1087086507), list)); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder4, formatProvider3, ref appendInterpolatedStringHandler); - List<(uint SetId, uint TerritoryId)> list2 = ParseLvbLayerSets(ReadFileBytes(_202B_200B_202E_200C_202A_202C_206A_200D_206D_200E_206E_202C_202E_202E_200C_202A_206E_200C_206D_202E_206D_200D_202E_206F_206C_200B_200E_206F_202E_200E_206B_200C_206E_206B_202D_206F_200E_202A_206D_200F_202E(text3, text4, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1877396600))), stringBuilder); - owners = new Dictionary<uint, List<uint>>(); - using (List<(uint, uint)>.Enumerator enumerator = list2.GetEnumerator()) + if (!owners.TryGetValue(item, out List<uint> value)) { - num = 569756345; - while (true) - { - int num9 = num; - num3 = 569756347; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 3: - num = (owners.TryGetValue(item, out value) ? 569756347 : 569756351); - break; - case 4: - value = (owners[item] = new List<uint>()); - num = 569756347; - break; - case 0: - value.Add(item2); - num = 569756345; - break; - case 2: - num = (enumerator.MoveNext() ? 569756346 : 569756350); - break; - case 6: - num = 569756345; - break; - case 1: - { - (uint, uint) current = enumerator.Current; - item = current.Item1; - item2 = current.Item2; - stringBuilder2 = stringBuilder; - StringBuilder stringBuilder5 = stringBuilder2; - formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - IFormatProvider formatProvider4 = formatProvider; - appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(26, 3, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1045936999)); - appendInterpolatedStringHandler.AppendFormatted(item); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1691935347)); - appendInterpolatedStringHandler.AppendFormatted(item2); - appendInterpolatedStringHandler.AppendFormatted(list.Contains(item2) ? global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1694032531) : global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(91205610)); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder5, formatProvider4, ref appendInterpolatedStringHandler); - num = ((item2 == 0) ? 569756345 : 569756344); - break; - } - case 5: - goto end_IL_0328; - } - continue; - end_IL_0328: - break; - } + value = (owners[item] = new List<uint>()); } - string[] planFiles = PlanFiles; - int num12 = 0; - num = -687162178; - while (true) - { - int num13 = num; - num3 = -687162179; - num4 = num13; - int num14 = num4 + num3; - int num15 = num4 & num3; - switch (num14 - (num15 + num15)) - { - case 2: - return _200F_200E_202E_206F_200B_202E_206C_206B_202C_200E_200F_206F_206E_202A_202A_200C_200F_200C_200B_202B_200B_206D_206D_206E_202B_200D_206B_202A_200B_206E_200E_200C_202A_200F_200B_200B_200F_202D_206B_206C_202E((object)stringBuilder); - case 4: - { - stringBuilder2 = stringBuilder; - StringBuilder stringBuilder7 = stringBuilder2; - formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - IFormatProvider formatProvider6 = formatProvider; - appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(18, 1, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendFormatted(text5); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(116300161)); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder7, formatProvider6, ref appendInterpolatedStringHandler); - num = -687162180; - break; - } - case 3: - num = ((num12 < planFiles.Length) ? (-687162184) : (-687162177)); - break; - case 1: - { - int num16 = num12; - num3 = 1; - num4 = num16; - int num17 = num4 ^ num3; - int num18 = num4 & num3; - num12 = num17 + (num18 + num18); - num = -687162178; - break; - } - case 5: - text5 = planFiles[num12]; - list4 = ParseLgbLayerSetReferences(ReadFileBytes(_200C_200F_202E_206E_202C_206B_206C_202E_200B_206E_200C_206E_206B_200C_200D_206B_202C_200F_202E_202E_200C_206D_206C_206D_206E_202A_206E_202A_200C_206C_202B_206F_206A_206D_200C_200E_200B_200D_206C_206E_202E(text3, text5))); - num = ((list4.Count != 0) ? (-687162181) : (-687162183)); - break; - case 6: - { - int value2 = list4.Count((List<uint> refs) => refs.Count > 0); - List<string> list5 = list4.SelectMany((List<uint> refs) => refs).Distinct().Select([MethodImpl(MethodImplOptions.NoInlining)] (uint setId) => - { - List<uint> value3; - int num19 = (owners.TryGetValue(setId, out value3) ? (-1977504847) : (-1977504846)); - while (true) - { - int num20 = num19; - int num21 = -1977504845; - int num22 = num20; - int num23 = num22 + num21; - int num24 = num22 & num21; - switch (num23 - (num24 + num24)) - { - case 2: - return string.Join(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1680133376), value3); - case 1: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(12, 1); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-884751217)); - defaultInterpolatedStringHandler3.AppendFormatted(setId); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1951044220)); - return defaultInterpolatedStringHandler3.ToStringAndClear(); - } - case 0: - goto IL_00a0; - } - continue; - IL_00a0: - num19 = -1977504846; - } - }) - .Distinct() - .ToList(); - stringBuilder2 = stringBuilder; - StringBuilder stringBuilder6 = stringBuilder2; - formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - IFormatProvider formatProvider5 = formatProvider; - appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(48, 4, stringBuilder2, formatProvider); - appendInterpolatedStringHandler.AppendFormatted(text5); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2035955381)); - appendInterpolatedStringHandler.AppendFormatted(list4.Count); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-944275696)); - appendInterpolatedStringHandler.AppendFormatted(value2); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(173110452)); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-832423755)); - appendInterpolatedStringHandler.AppendFormatted((list5.Count > 0) ? _200D_200B_202E_200D_202A_202B_206F_200F_202B_200D_200B_202C_200E_206F_202C_206D_206A_202A_206A_206D_206D_200E_206F_206C_206F_202C_202C_202B_200F_202D_200B_200D_206D_200B_202B_206C_206D_200F_206F_206E_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1577352017), (IEnumerable<string>)list5) : global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(792471175)); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder6, formatProvider5, ref appendInterpolatedStringHandler); - num = -687162180; - break; - } - case 0: - num = -687162178; - break; - } - } - } + value.Add(item2); } } + string[] planFiles = PlanFiles; + foreach (string text3 in planFiles) + { + List<List<uint>> list4 = ParseLgbLayerSetReferences(ReadFileBytes(text + text3)); + if (list4.Count == 0) + { + stringBuilder2 = stringBuilder; + StringBuilder stringBuilder6 = stringBuilder2; + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider4 = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(18, 1, stringBuilder2, invariantCulture); + handler.AppendFormatted(text3); + handler.AppendLiteral(": no layers parsed"); + stringBuilder6.AppendLine(provider4, ref handler); + continue; + } + int value2 = list4.Count((List<uint> refs) => refs.Count > 0); + List<uint> value3; + List<string> list5 = (from setId in list4.SelectMany((List<uint> refs) => refs).Distinct() + select (!owners.TryGetValue(setId, out value3)) ? $"set {setId} unknown" : string.Join("/", value3)).Distinct().ToList(); + stringBuilder2 = stringBuilder; + StringBuilder stringBuilder7 = stringBuilder2; + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider5 = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(48, 4, stringBuilder2, invariantCulture); + handler.AppendFormatted(text3); + handler.AppendLiteral(": "); + handler.AppendFormatted(list4.Count); + handler.AppendLiteral(" layers, "); + handler.AppendFormatted(value2); + handler.AppendLiteral(" with layer-set refs; "); + handler.AppendLiteral("attributed to: "); + handler.AppendFormatted((list5.Count > 0) ? string.Join(", ", list5) : "-"); + stringBuilder7.AppendLine(provider5, ref handler); + } + return stringBuilder.ToString(); } - [MethodImpl(MethodImplOptions.NoInlining)] private byte[]? ReadFileBytes(string path) { try { - FileResource fileResource = _206D_200B_202C_206C_200C_200C_206C_206B_206C_206D_202A_206E_200F_202C_202A_200C_206F_200D_202A_206B_200C_200E_202B_206A_206E_200B_202D_200E_206E_202A_202A_200F_200B_206A_206A_202D_206F_200D_200D_202E_202E(_dataManager, path); - return (fileResource != null) ? _202A_200B_200C_206C_202E_202B_202D_200B_206E_200F_206C_206C_202D_206E_200E_202A_202D_206F_200E_206C_202D_206A_206A_206F_202E_202D_200B_202D_206F_206D_202C_202B_206E_200F_202A_206E_200E_202D_206C_206E_202E(fileResource) : null; + return _dataManager.GetFile(path)?.Data; } - catch (Exception ex) + catch (Exception exception) { - _202E_202D_202B_202C_200B_202A_206E_200C_200B_202A_206B_200D_206C_200C_206A_200E_202E_206E_202A_206F_206F_202E_206A_202B_202A_206C_200B_206C_202D_200D_206E_206A_202B_206B_202A_202A_206C_200E_202E_206C_202E((ILogger)_logger, ex, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2050201987), new object[1] { path }); + _logger.LogTrace(exception, "Failed to read {Path}", path); return null; } } - [MethodImpl(MethodImplOptions.NoInlining)] private static List<(uint SetId, uint TerritoryId)> ParseLvbLayerSets(byte[]? data, StringBuilder sb) { List<(uint, uint)> list = new List<(uint, uint)>(); - int num = ((data == null) ? (-1069099753) : (-1069099746)); - int num17 = default(int); - bool flag = default(bool); - int num9 = default(int); - int num7 = default(int); - int num10 = default(int); - while (true) + if (data == null || data.Length < 36 || !HasMagic(data, 0, "LVB1") || !HasMagic(data, 12, "SCN1")) { - int num2 = num; - int num3 = -1069099753; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 10: - { - int num23 = num17; - num3 = 12; - num4 = num23; - int num24 = num4 ^ num3; - int num25 = num4 & num3; - num = ((num24 + (num25 + num25) <= data.Length) ? (-1069099769) : (-1069099749)); - break; - } - case 13: - flag = true; - num = -1069099757; - break; - case 12: - _206E_202B_206C_200C_202E_202C_200B_206D_206C_200B_206A_202D_206C_206C_200F_202B_206E_206B_206C_200C_206A_200D_206C_202D_202C_200D_200E_202C_206F_202C_206E_206A_206E_202A_200E_202C_206E_206D_202B_200C_202E(sb, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2098223468)); - return list; - case 9: - num = ((data.Length < 36) ? (-1069099753) : (-1069099758)); - break; - case 14: - { - int num11 = num9; - num3 = num7 * 28; - num4 = num11; - int num12 = num4 ^ num3; - int num13 = num4 & num3; - int num14 = num12 + (num13 + num13); - uint item = _202E_200F_202A_206A_206E_202C_206F_206F_200E_206C_200F_206E_202A_200F_202C_206F_200F_202A_206C_206B_202B_200D_206B_200B_200B_206B_206A_202D_200F_200B_202D_202D_202D_206D_206D_206F_202D_202D_200C_202A_202E(data, num14); - num3 = 12; - num4 = num14; - list.Add((item, _202E_200F_202A_206A_206E_202C_206F_206F_200E_206C_200F_206E_202A_200F_202C_206F_200F_202A_206C_206B_202B_200D_206B_200B_200B_206B_206A_202D_200F_200B_202D_202D_202D_206D_206D_206F_202D_202D_200C_202A_202E(data, (num4 | num3) + (num4 & num3)))); - int num15 = num7; - num3 = 1; - num4 = num15; - num7 = (num4 | num3) + (num4 & num3); - num = -1069099759; - break; - } - case 15: - num = ((num10 <= 4096) ? (-1069099754) : (-1069099750)); - break; - case 3: - num17 = 20 + _206B_202A_206F_206A_206A_206C_206C_206E_202A_200E_202E_206B_200F_200D_200F_206D_200F_200F_206E_206A_202A_202B_202E_202D_206D_200E_200F_206B_200F_206F_200F_202D_206A_202E_206E_202A_202A_202A_206F_200D_202E(data, 32); - num = ((num17 < 0) ? (-1069099749) : (-1069099747)); - break; - case 1: - flag = false; - num = -1069099757; - break; - case 4: - num = (flag ? (-1069099745) : (-1069099748)); - break; - case 17: - num7 = 0; - num = -1069099759; - break; - case 0: - _206E_202B_206C_200C_202E_202C_200B_206D_206C_200B_206A_202D_206C_206C_200F_202B_206E_206B_206C_200C_206A_200D_206C_202D_202C_200D_200E_202C_206F_202C_206E_206A_206E_202A_200E_202C_206E_206D_202B_200C_202E(sb, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1929902287)); - return list; - case 7: - { - StringBuilder stringBuilder = sb; - StringBuilder stringBuilder3 = stringBuilder; - IFormatProvider formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - IFormatProvider formatProvider3 = formatProvider; - StringBuilder.AppendInterpolatedStringHandler appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(17, 1, stringBuilder, formatProvider); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(76646206)); - appendInterpolatedStringHandler.AppendFormatted(num10); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1699175671)); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder3, formatProvider3, ref appendInterpolatedStringHandler); - return list; - } - case 5: - num = ((!HasMagic(data, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(247167544))) ? (-1069099753) : (-1069099755)); - break; - case 6: - num = ((num7 < num10) ? (-1069099751) : (-1069099760)); - break; - case 16: - { - int num16 = num17; - num3 = 4; - num4 = num16; - int num18 = num4 ^ num3; - int num19 = num4 & num3; - num10 = _206B_202A_206F_206A_206A_206C_206C_206E_202A_200E_202E_206B_200F_200D_200F_206D_200F_200F_206E_206A_202A_202B_202E_202D_206D_200E_200F_206B_200F_206F_200F_202D_206A_202E_206E_202A_202A_202A_206F_200D_202E(data, num18 + (num19 + num19)); - int num20 = num17; - num3 = 12; - num4 = num20; - int num21 = num4 ^ num3; - int num22 = num4 & num3; - num9 = num21 + (num22 + num22); - num = ((num10 < 0) ? (-1069099750) : (-1069099752)); - break; - } - case 18: - num = -1069099746; - break; - case 8: - { - StringBuilder stringBuilder = sb; - StringBuilder stringBuilder2 = stringBuilder; - IFormatProvider formatProvider = _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E(); - IFormatProvider formatProvider2 = formatProvider; - StringBuilder.AppendInterpolatedStringHandler appendInterpolatedStringHandler = new StringBuilder.AppendInterpolatedStringHandler(34, 1, stringBuilder, formatProvider); - appendInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-310739774)); - appendInterpolatedStringHandler.AppendFormatted(num10); - _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(stringBuilder2, formatProvider2, ref appendInterpolatedStringHandler); - return list; - } - case 11: - { - int num8 = num9; - num3 = num10 * 28; - num4 = num8; - num = (((num4 | num3) + (num4 & num3) <= data.Length) ? (-1069099770) : (-1069099745)); - break; - } - case 2: - num = (HasMagic(data, 12, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(964728167)) ? (-1069099756) : (-1069099753)); - break; - } + sb.AppendLine(".lvb: missing or not LVB1/SCN1"); + return list; } + int num = 20 + BitConverter.ToInt32(data, 32); + if (num < 0 || num + 12 > data.Length) + { + sb.AppendLine(".lvb: layer-set folder offset out of range"); + return list; + } + int num2 = BitConverter.ToInt32(data, num + 4); + int num3 = num + 12; + bool flag = ((num2 < 0 || num2 > 4096) ? true : false); + StringBuilder stringBuilder; + IFormatProvider invariantCulture; + StringBuilder.AppendInterpolatedStringHandler handler; + if (flag || num3 + num2 * 28 > data.Length) + { + stringBuilder = sb; + StringBuilder stringBuilder2 = stringBuilder; + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(34, 1, stringBuilder, invariantCulture); + handler.AppendLiteral(".lvb: implausible layer-set count "); + handler.AppendFormatted(num2); + stringBuilder2.AppendLine(provider, ref handler); + return list; + } + for (int i = 0; i < num2; i++) + { + int num4 = num3 + i * 28; + list.Add((BitConverter.ToUInt32(data, num4), BitConverter.ToUInt32(data, num4 + 12))); + } + stringBuilder = sb; + StringBuilder stringBuilder3 = stringBuilder; + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider2 = invariantCulture; + handler = new StringBuilder.AppendInterpolatedStringHandler(17, 1, stringBuilder, invariantCulture); + handler.AppendLiteral(".lvb: "); + handler.AppendFormatted(num2); + handler.AppendLiteral(" layer sets"); + stringBuilder3.AppendLine(provider2, ref handler); + return list; } - [MethodImpl(MethodImplOptions.NoInlining)] private static List<List<uint>> ParseLgbLayerSetReferences(byte[]? data) { List<List<uint>> list = new List<List<uint>>(); - int num = ((data == null) ? 539289198 : 539289203); - int num23 = default(int); - int num28 = default(int); - int num19 = default(int); - int num5 = default(int); - int num24 = default(int); - bool flag = default(bool); - List<uint> list3 = default(List<uint>); - int num8 = default(int); - int num11 = default(int); - int num7 = default(int); - while (true) + if (data == null || data.Length < 36 || !HasMagic(data, 0, "LGB1") || !HasMagic(data, 12, "LGP1")) { - int num2 = num; - int num3 = 539289210; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return list; + } + int num = 20 + BitConverter.ToInt32(data, 28); + int num2 = BitConverter.ToInt32(data, 32); + bool flag = ((num2 < 0 || num2 > 100000) ? true : false); + if (flag || num < 0 || num + num2 * 4 > data.Length) + { + return list; + } + for (int i = 0; i < num2; i++) + { + List<uint> list2 = new List<uint>(); + list.Add(list2); + int num3 = num + BitConverter.ToInt32(data, num + i * 4); + if (num3 < 0 || num3 + 36 > data.Length) { - case 23: - num = ((num23 < 0) ? 539289213 : 539289186); - break; - case 19: - { - int num27 = num28; - int num29 = num28; - num3 = 20; - num4 = num29; - int num30 = num4 ^ num3; - int num31 = num4 & num3; - num19 = num27 + _206B_202A_206F_206A_206A_206C_206C_206E_202A_200E_202E_206B_200F_200D_200F_206D_200F_200F_206E_206A_202A_202B_202E_202D_206D_200E_200F_206B_200F_206F_200F_202D_206A_202E_206E_202A_202A_202A_206F_200D_202E(data, num30 + (num31 + num31)); - num = ((num19 <= num28) ? 539289214 : 539289202); - break; + continue; } - case 4: + int num4 = num3 + BitConverter.ToInt32(data, num3 + 20); + if (num4 <= num3 || num4 + 12 > data.Length) { - int num34 = num5; - num3 = 1; - num4 = num34; - int num35 = num4 ^ num3; - int num36 = num4 & num3; - num5 = num35 + (num36 + num36); - num = 539289209; - break; + continue; } - case 9: - num = ((data.Length < 36) ? 539289198 : 539289211); - break; - case 25: - num = ((num24 <= 100000) ? 539289194 : 539289185); - break; - case 3: - num = ((num5 < num24) ? 539289206 : 539289201); - break; - case 15: - num = (flag ? 539289214 : 539289208); - break; - case 24: + int num5 = num4 + BitConverter.ToInt32(data, num4 + 4); + int num6 = BitConverter.ToInt32(data, num4 + 8); + flag = ((num6 < 1 || num6 > 4096) ? true : false); + if (!flag && num5 >= 0 && num5 + num6 * 4 <= data.Length) { - int num22 = num23; - num3 = num24 * 4; - num4 = num22; - int num25 = num4 ^ num3; - int num26 = num4 & num3; - num = ((num25 + (num26 + num26) <= data.Length) ? 539289200 : 539289213); - break; - } - case 12: - { - list3 = new List<uint>(); - list.Add(list3); - int num37 = num23; - int num38 = num23; - num3 = num5 * 4; - num4 = num38; - num28 = num37 + _206B_202A_206F_206A_206A_206C_206C_206E_202A_200E_202E_206B_200F_200D_200F_206D_200F_200F_206E_206A_202A_202B_202E_202D_206D_200E_200F_206B_200F_206F_200F_202D_206A_202E_206E_202A_202A_202A_206F_200D_202E(data, (num4 | num3) + (num4 & num3)); - num = ((num28 < 0) ? 539289214 : 539289192); - break; - } - case 17: - num = ((num8 <= 4096) ? 539289191 : 539289199); - break; - case 18: - { - int num32 = num28; - num3 = 36; - num4 = num32; - num = (((num4 | num3) + (num4 & num3) > data.Length) ? 539289214 : 539289193); - break; - } - case 1: - num = ((!HasMagic(data, 0, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1621587450))) ? 539289198 : 539289210); - break; - case 29: - flag = false; - num = 539289205; - break; - case 14: - num11 = 0; - num = 539289212; - break; - case 21: - flag = true; - num = 539289205; - break; - case 22: - num = 539289203; - break; - case 0: - num = (HasMagic(data, 12, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1053193949)) ? 539289188 : 539289198); - break; - case 8: - { - int num33 = num19; - num3 = 12; - num4 = num33; - num = (((num4 | num3) + (num4 & num3) > data.Length) ? 539289214 : 539289190); - break; - } - case 2: - num = ((num7 < 0) ? 539289214 : 539289215); - break; - case 6: - num = ((num11 < num8) ? 539289184 : 539289214); - break; - case 30: - num23 = 20 + _206B_202A_206F_206A_206A_206C_206C_206E_202A_200E_202E_206B_200F_200D_200F_206D_200F_200F_206E_206A_202A_202B_202E_202D_206D_200E_200F_206B_200F_206F_200F_202D_206A_202E_206E_202A_202A_202A_206F_200D_202E(data, 28); - num24 = _206B_202A_206F_206A_206A_206C_206C_206E_202A_200E_202E_206B_200F_200D_200F_206D_200F_200F_206E_206A_202A_202B_202E_202D_206D_200E_200F_206B_200F_206F_200F_202D_206A_202E_206E_202A_202A_202A_206F_200D_202E(data, 32); - num = ((num24 < 0) ? 539289185 : 539289187); - break; - case 7: - return list; - case 28: - { - int num18 = num19; - int num20 = num19; - num3 = 4; - num4 = num20; - num7 = num18 + _206B_202A_206F_206A_206A_206C_206C_206E_202A_200E_202E_206B_200F_200D_200F_206D_200F_200F_206E_206A_202A_202B_202E_202D_206D_200E_200F_206B_200F_206F_200F_202D_206A_202E_206E_202A_202A_202A_206F_200D_202E(data, (num4 | num3) + (num4 & num3)); - int num21 = num19; - num3 = 8; - num4 = num21; - num8 = _206B_202A_206F_206A_206A_206C_206C_206E_202A_200E_202E_206B_200F_200D_200F_206D_200F_200F_206E_206A_202A_202B_202E_202D_206D_200E_200F_206B_200F_206F_200F_202D_206A_202E_206E_202A_202A_202A_206F_200D_202E(data, (num4 | num3) + (num4 & num3)); - num = ((num8 < 1) ? 539289199 : 539289195); - break; - } - case 26: - { - List<uint> list2 = list3; - int num12 = num7; - num3 = num11 * 4; - num4 = num12; - int num13 = num4 ^ num3; - int num14 = num4 & num3; - list2.Add(_202E_200F_202A_206A_206E_202C_206F_206F_200E_206C_200F_206E_202A_200F_202C_206F_200F_202A_206C_206B_202B_200D_206B_200B_200B_206B_206A_202D_200F_200B_202D_202D_202D_206D_206D_206F_202D_202D_200C_202A_202E(data, num13 + (num14 + num14))); - int num15 = num11; - num3 = 1; - num4 = num15; - int num16 = num4 ^ num3; - int num17 = num4 & num3; - num11 = num16 + (num17 + num17); - num = 539289212; - break; - } - case 27: - flag = true; - num = 539289207; - break; - case 11: - return list; - case 16: - flag = false; - num = 539289207; - break; - case 20: - return list; - case 5: - { - int num6 = num7; - num3 = num8 * 4; - num4 = num6; - int num9 = num4 ^ num3; - int num10 = num4 & num3; - num = ((num9 + (num10 + num10) > data.Length) ? 539289214 : 539289204); - break; - } - case 13: - num = (flag ? 539289213 : 539289197); - break; - case 10: - num5 = 0; - num = 539289209; - break; + for (int j = 0; j < num6; j++) + { + list2.Add(BitConverter.ToUInt32(data, num5 + j * 4)); + } } } + return list; } private static bool HasMagic(byte[] data, int at, string magic) { - int num = 0; - int num2 = -985267863; - while (true) + for (int i = 0; i < magic.Length; i++) { - int num3 = num2; - int num4 = -985267860; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + if (data[at + i] != (byte)magic[i]) { - case 5: - num2 = ((num < _202A_202A_200E_202C_202A_202B_200D_202B_206F_200D_206C_206A_206B_200D_202C_200F_200D_200D_200B_206B_206A_200F_206E_200E_202A_206D_200E_202B_206D_202B_202C_200D_202C_202B_202D_202C_202A_200F_202C_200E_202E(magic)) ? (-985267859) : (-985267864)); - break; - case 1: - num4 = num; - num5 = at; - num2 = ((data[(num5 | num4) + (num5 & num4)] == (byte)_206E_206A_202A_202A_206A_206C_200E_200C_200C_200D_206A_202A_206E_200E_206D_202E_202D_200C_200F_202A_202C_200B_200C_202D_206B_202D_206B_202B_206D_206C_206C_200F_202C_202C_200E_206A_206F_202A_200E_200D_202E(magic, num)) ? (-985267860) : (-985267858)); - break; - case 2: return false; - case 4: - return true; - case 3: - num2 = -985267863; - break; - case 0: - { - int num6 = num; - num4 = 1; - num5 = num6; - int num7 = num5 ^ num4; - int num8 = num5 & num4; - num = num7 + (num8 + num8); - num2 = -985267863; - break; - } } } + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] private string RunGuarded(Func<string> probe) { try @@ -2276,379 +855,8 @@ internal sealed class DataProbesPanel } catch (Exception ex) { - _200D_200E_206B_206A_200C_200E_200E_202B_202A_202A_206B_200B_200C_206E_202E_206F_202E_206B_202D_206E_200B_202B_200C_200D_200D_200C_202D_200F_202A_200B_202E_200E_206D_202B_202C_202D_202A_206B_206E_206F_202E((ILogger)_logger, ex, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1424876398), Array.Empty<object>()); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(14, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-149691040)); - defaultInterpolatedStringHandler.AppendFormatted(ex); - return defaultInterpolatedStringHandler.ToStringAndClear(); + _logger.LogError(ex, "Data probe failed"); + return $"probe failed: {ex}"; } } - - [MethodImpl(MethodImplOptions.NoInlining)] - static DataProbesPanel() - { - JsonSerializerOptions jsonSerializerOptions = _200C_202E_202B_206C_202A_200C_206A_202A_206A_206F_200B_200D_200E_206E_202B_206F_200B_200B_206B_206C_202A_206D_206F_206D_206B_206A_200B_206B_206B_206B_206F_200D_202A_202D_202C_206B_200E_200E_206A_206F_202E(); - _206D_206C_206E_200B_202A_206E_206D_202B_206B_200B_206C_200F_200F_200E_200E_206A_202D_200E_202A_206A_200F_202B_202B_206B_206C_200F_206D_200E_202C_200D_202C_202E_206C_200D_200E_202B_200E_200E_202C_202E(jsonSerializerOptions, true); - IndentedJson = jsonSerializerOptions; - } - - static void _206E_202C_206B_202A_202A_206A_200E_206C_202C_202B_200F_206D_200E_206E_206F_202B_202A_206A_206B_202B_200C_202E_202E_206F_206C_202D_206F_202D_206A_200E_202D_206E_206B_200F_206A_206E_206E_206C_202E_202E_202E() - { - ImGui.Separator(); - } - - static void _206E_200E_200E_206D_206A_206E_206B_206E_202C_202B_202A_206C_200F_206E_202E_202E_202C_206B_202E_206B_206C_206F_200D_202B_200B_202C_200E_206D_200B_202B_202A_200B_202B_202A_206D_200B_206E_200D_200E_202A_202E() - { - ImGui.SameLine(); - } - - static bool _202E_206D_202D_202A_206D_206A_200E_200B_202E_202B_202B_206C_200B_202C_206B_206A_206D_202E_202B_202A_202B_202B_200E_206F_206E_200D_202E_206B_202A_202C_206D_200C_200D_200B_206D_200B_202A_202B_202A_200F_202E(ImU8String P_0, Vector2 P_1) - { - return ImGui.Button(P_0, P_1); - } - - static void _206F_200F_200D_206E_206B_200F_202A_200D_200F_202B_206C_202D_206F_200E_200B_206F_202B_206B_202E_206A_206E_200D_206A_200E_202C_206F_200C_200F_200E_206D_202D_202A_200E_206D_200B_202C_200C_202A_202A_206C_202E(ImU8String P_0) - { - ImGui.SetClipboardText(P_0); - } - - static ImRaii.ChildDisposable _206C_202C_200C_200F_206B_202D_202E_206C_202E_206F_202E_206B_206D_206F_206C_206D_206C_202A_202D_200C_202D_202D_202C_202B_202D_206C_202C_200B_202E_206B_200D_206F_202C_200E_206F_202C_202C_200E_206B_206E_202E(ImU8String P_0, Vector2 P_1, bool P_2) - { - return ImRaii.Child(P_0, P_1, P_2); - } - - static void _206A_202A_200D_206D_206F_206E_206A_200D_200D_202C_206F_206D_202C_206C_206C_206B_206C_206B_202A_200E_206D_206A_200E_200D_206E_200D_206F_206F_202A_200D_200B_202C_200D_206B_206A_200F_202D_200B_200C_206B_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static bool _200D_202B_200B_206D_200C_202D_206C_206B_202A_206E_202B_200D_200E_200B_206F_206C_206A_202D_206E_206D_206C_200F_206F_206C_202A_206B_200B_206D_206B_200C_200E_202B_206C_206C_200C_202D_202D_200B_202D_206D_202E(ImU8String P_0, ImGuiTreeNodeFlags P_1) - { - return ImGui.CollapsingHeader(P_0, P_1); - } - - static void _202C_200D_202E_206B_206F_200D_202B_200E_206C_202C_200F_200F_200D_200D_200F_206C_200B_206B_200E_206C_200F_202B_202C_206E_202D_200B_200D_200E_202E_200B_200F_206D_202D_200C_206E_202E_206E_200F_202A_206E_202E(ImU8String P_0) - { - ImGui.TextWrapped(P_0); - } - - static StringBuilder _200C_200B_206F_206E_206D_206D_202E_206B_202B_202A_200E_200F_202B_206F_200D_200E_202A_206A_200C_200B_206C_206C_202A_206D_206C_202A_202C_202E_206C_206E_206C_206B_206B_206C_200C_202B_202B_200F_200B_202E_202E() - { - return new StringBuilder(); - } - - static NavGraph _206F_202D_206E_206E_202C_206F_206B_206B_206E_200F_200E_200C_206F_206A_202E_206C_202E_200E_202C_202A_206F_200F_206A_206C_202B_202B_202C_206D_206C_200F_202E_200C_202C_200C_202A_200D_202E_202A_200D_206D_202E(NavRouter P_0) - { - return P_0.StaticGraph; - } - - static IReadOnlyDictionary<string, NavNode> _202D_200E_206A_200F_206E_206F_200C_200E_206B_206B_206E_202B_202E_206F_200C_206C_206A_202B_200E_202C_200F_206B_200D_202C_206E_202B_200E_200C_202E_206F_200E_200B_202A_206B_202D_202B_200C_200E_202A_206E_202E(NavGraph P_0) - { - return P_0.Nodes; - } - - static IReadOnlyList<WarpDataService.WarpInfo> _200F_206D_206B_206C_202B_206B_206E_200F_202C_202C_202C_206F_202C_200D_202D_200B_200B_206D_206F_202E_200D_206C_202A_206D_202D_202A_200F_206D_202A_206C_202E_202A_206A_202B_200C_206E_202C_200B_202C_202E_202E(WarpDataService P_0) - { - return P_0.Warps; - } - - static uint[] _206E_206E_206C_202C_202E_200B_206A_206E_206A_206B_200F_200C_206E_206D_206E_206D_206B_202A_206A_206B_200D_200C_206C_206F_200E_206E_202C_206D_200D_206C_202D_200C_200C_206A_200E_206E_206D_206F_200C_200C_202E(WarpDataService.WarpInfo P_0) - { - return P_0.RequiredQuestIds; - } - - static uint _206A_200E_200D_202B_206D_202B_206F_202D_202C_200F_206C_202C_206F_202E_200B_202C_200D_206B_202A_206A_200B_202B_200C_202D_206F_202C_206D_200E_202E_200C_200E_206E_200D_202D_200D_200E_202E_200B_206C_200E_202E(WarpDataService.WarpInfo P_0) - { - return P_0.RowId; - } - - static CultureInfo _202E_206C_202E_206C_200E_200E_206A_206B_202A_206E_200E_202A_206A_200F_206C_206A_202D_206F_202B_200B_202C_202B_202D_206D_200F_200B_202B_200D_200D_200C_200E_202A_200B_202B_202A_206C_206E_200E_200D_202E_202E() - { - return CultureInfo.InvariantCulture; - } - - static string _200E_206B_206D_202D_206E_206F_200D_206C_202D_206A_200C_202C_200C_200D_202B_202B_206F_200D_200E_206E_206B_206C_200E_202D_206B_206C_200E_200E_206A_202E_202D_202B_200E_206A_200C_200C_202D_200C_200C_200F_202E(WarpDataService.WarpInfo P_0) - { - return P_0.Name; - } - - static string _206F_200E_206B_202D_202B_202E_206F_200D_206B_202B_206C_206F_202B_202B_200F_206A_202A_206E_206A_202D_202B_200C_202C_202D_200F_206F_202D_202D_200D_206D_200C_206C_202B_206E_206A_206C_206C_206E_206E_202A_202E(WarpDataService.WarpInfo P_0) - { - return P_0.Question; - } - - static ushort _206C_206A_202A_206A_202E_200F_206F_202D_200C_200D_202C_200C_200C_206B_200C_206B_206F_202E_206E_200C_206A_200C_200D_202E_200C_202D_200B_206C_200C_202D_206F_206B_202B_202E_200D_202C_202D_202D_206D_202E(WarpDataService.WarpInfo P_0) - { - return P_0.DestTerritoryId; - } - - static StringBuilder _200B_200B_202E_202C_200D_202E_200C_206A_206B_206B_206A_202B_206B_206D_206C_202C_202B_200D_206A_200E_202A_206C_206D_202E_202D_206A_200F_200F_202A_202D_206A_206F_206A_200F_206A_202B_200E_202B_202D_202E_202E(StringBuilder P_0, IFormatProvider P_1, ref StringBuilder.AppendInterpolatedStringHandler P_2) - { - return P_0.AppendLine(P_1, ref P_2); - } - - static bool _206A_206D_200E_200B_202B_202D_200E_206A_200B_200B_202E_202E_202A_200B_206B_200E_202C_206F_200F_202D_206D_202A_206C_202A_206C_200D_200C_200E_200F_206B_206C_206F_206B_206F_202D_206C_206A_202A_206A_206C_202E(WarpDataService.WarpInfo P_0) - { - return P_0.RequireAllQuests; - } - - static ushort _206C_200F_206C_206D_202A_206A_206B_202A_202D_200E_206B_202E_202C_200C_206C_206F_202D_206D_202E_200E_206C_200C_200B_202C_206B_202B_206F_200C_202E_200D_202D_200D_206D_200C_206B_200E_206B_206C_206C_200F_202E(WarpDataService.WarpInfo P_0) - { - return P_0.SourceTerritoryId; - } - - static Vector3 _202E_200F_206B_206C_206E_202E_200C_206B_206A_200E_200C_200F_200B_206C_206F_200F_206A_200C_202E_202A_200C_200D_200C_200E_200E_200E_200E_200D_202D_200C_206F_206F_202B_202A_206C_200C_202D_206C_206F_206D_202E(WarpDataService.WarpInfo P_0) - { - return P_0.SourcePosition; - } - - static uint? _200C_206D_206F_200C_200D_200B_206A_200D_202C_200E_202C_202B_202A_200D_202B_206F_206B_206B_206F_206C_202A_200E_202C_200D_202D_206C_202B_206D_206E_206B_202A_206C_202D_200F_202D_202B_202E_206B_200B_206A_202E(WarpDataService.WarpInfo P_0) - { - return P_0.NpcDataId; - } - - static bool _206E_200C_206A_206A_200C_200E_206C_202B_206D_206E_206D_202E_202C_200B_206C_206D_200D_202D_202B_202B_200C_200D_200B_206A_200C_206D_202C_202E_202B_206F_206A_206B_206D_200C_206B_202E_206A_200E_206C_200E_202E(WarpDataService.WarpInfo P_0) - { - return P_0.DerivedSource; - } - - static bool _206A_200F_206D_206E_200B_206D_206D_200C_202A_202A_200D_206A_206F_202C_202A_200D_200F_200B_206E_200B_206E_202B_206D_200B_202C_202E_200B_206A_202D_206F_200F_206F_206D_206C_206F_206D_206D_202B_206D_202E_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202A_202C_202E_206A_200C_206D_206F_202C_202B_206D_206C_200D_202B_206B_200B_202D_200B_202B_200C_206D_202B_200E_202E_200D_206C_202A_200E_200C_206C_202B_206C_202C_202C_200E_202A_206D_202B_206E_206D_200D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static string _200F_200E_202E_206F_200B_202E_206C_206B_202C_200E_200F_206F_206E_202A_202A_200C_200F_200C_200B_202B_200B_206D_206D_206E_202B_200D_206B_202A_200B_206E_200E_200C_202A_200F_200B_200B_200F_202D_206B_206C_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _206A_206F_206B_200F_206F_200F_200F_202E_206F_206C_206C_202E_206F_202C_200F_202B_206D_202C_206A_202A_206C_200D_200D_206C_206E_202C_206C_202C_200F_206E_200C_206C_200E_206C_206C_206B_200B_200B_200C_202D_202E(ImU8String P_0, ref bool P_1) - { - return ImGui.Checkbox(P_0, ref P_1); - } - - static Vector3? _200D_206E_202D_206B_206B_206E_206E_200C_202B_206F_206C_200E_200B_202D_202D_202D_206E_202A_200B_202C_202D_206D_206C_206B_200F_202E_202E_206A_206C_206F_206A_206A_206C_202D_200C_206B_206C_206F_206E_206C_202E(WarpDataService.WarpInfo P_0) - { - return P_0.DestPosition; - } - - static bool _206D_202B_200C_206B_200D_206F_206F_200F_200B_202B_206B_200C_202E_206C_202D_200E_202A_200D_206A_202B_200E_206C_200C_200C_202A_206C_202D_202A_206C_200F_206D_206E_202A_206E_200C_200D_206F_200E_200E_206A_202E(WarpDataService.WarpInfo P_0) - { - return P_0.DerivedArrival; - } - - static string _202B_200B_202E_200C_202A_202C_206A_200D_206D_200E_206E_202C_202E_202E_200C_202A_206E_200C_206D_202E_206D_200D_202E_206F_206C_200B_200E_206F_202E_200E_206B_200C_206E_206B_202D_206F_200E_202A_206D_200F_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static string _200D_200B_202E_200D_202A_202B_206F_200F_202B_200D_200B_202C_200E_206F_202C_206D_206A_202A_206A_206D_206D_200E_206F_206C_206F_202C_202C_202B_200F_202D_200B_200D_206D_200B_202B_206C_206D_200F_206F_206E_202E(string P_0, IEnumerable<string> P_1) - { - return string.Join(P_0, P_1); - } - - static StringBuilder _206D_200E_202C_206F_206D_202E_202C_206A_200B_200D_202B_202A_202E_202A_202D_202D_200D_206C_202A_202A_206F_202D_206D_202C_202C_206E_206C_202E_200D_202D_206C_206F_206D_206C_206E_200E_200E_200D_200B_202B_202E(StringBuilder P_0) - { - return P_0.AppendLine(); - } - - static int _200C_206B_200D_202A_202B_202A_206A_200C_206A_202B_202E_200C_206B_202D_200C_206D_206B_200D_206D_202B_202E_200B_206B_200E_202D_206C_202A_202B_200D_206A_206B_202B_206A_202C_206D_202B_200E_200C_202C_206E_202E(int P_0, int P_1) - { - return Math.Min(P_0, P_1); - } - - static bool _202B_200C_202C_206D_200B_200F_206E_206C_202A_200B_206B_200E_202A_202D_206A_206C_202C_206A_202A_200D_202B_202E_206C_200B_202C_206A_206D_202A_206F_200B_202E_206B_200D_200D_206D_200C_206B_202C_200B_200C_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static int _206B_202C_200D_202B_200B_202A_206F_200B_200C_200B_200C_200C_200B_200D_200B_206A_200C_200B_202B_200E_206C_206A_200B_206F_206B_202B_206E_206A_200F_202D_202A_200F_202B_206D_202E_200F_206F_200D_202E_200F_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.IndexOf(P_1, P_2); - } - - static string _202C_202E_206A_206F_206A_206D_200C_202B_206B_200C_206F_206B_202A_206D_202C_200C_200F_200F_202A_200D_206D_206E_202A_206F_206F_206B_200F_200C_206E_200C_202E_200F_200F_206E_206E_202A_206E_202E_206B_202D_202E(string P_0, int P_1, int P_2) - { - return P_0.Substring(P_1, P_2); - } - - static string _200F_206C_206B_202E_206B_206A_206C_202D_206F_202A_202E_206F_206F_206A_200E_200F_206E_206C_206D_202B_202C_202B_206C_206F_200D_206D_206E_200F_206F_202D_202E_200F_206B_200F_206F_202C_200E_200B_200D_206E_202E(string P_0, string P_1, string P_2, string P_3) - { - return P_0 + P_1 + P_2 + P_3; - } - - static LayerCommon.Layer[] _200F_202B_206B_202A_200F_200E_202B_206C_206A_206A_202D_200B_206B_206E_206F_200C_200E_202C_200C_200D_200B_200C_206A_206B_206E_202C_200C_202D_206B_200E_206A_206C_206F_206F_202D_206F_202C_200D_202D_206E_202E(LgbFile P_0) - { - return P_0.Layers; - } - - static void _202E_202D_202B_202C_200B_202A_206E_200C_200B_202A_206B_200D_206C_200C_206A_200E_202E_206E_202A_206F_206F_202E_206A_202B_202A_206C_200B_206C_202D_200D_206E_206A_202B_206B_202A_202A_206C_200E_202E_206C_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogTrace(P_1, P_2, P_3); - } - - static DirectoryInfo _202B_200F_206C_202E_202B_200C_200B_206B_200D_202A_200C_200B_202C_200B_202C_202B_200C_200F_202D_206E_206D_200F_202A_206B_200E_206D_202A_202C_206B_200D_206C_202C_206B_200D_200D_202E_202A_206D_202B_206A_202E(SmartNavDataOptions P_0) - { - return P_0.DevSourceDirectory; - } - - static void _202D_206C_202B_206F_200E_206C_206A_200F_200C_202E_200B_202B_202B_200B_202E_200D_200C_202D_202E_202D_200D_206F_200B_206E_206E_200C_206A_206E_200E_206F_206F_206D_202E_202A_202E_206B_200E_206A_200B_200F_202E(ImU8String P_0) - { - ImGui.TextDisabled(P_0); - } - - static DerivedArrivalEntry _202A_206F_206E_202E_200C_202B_202C_206B_202D_200E_202A_202A_200F_206F_206B_202E_206B_200D_202B_206B_202A_206F_200C_206B_202E_206E_206E_202B_200F_206E_202E_206A_200F_206D_202E_200B_202B_202D_202E_202D_202E() - { - return new DerivedArrivalEntry(); - } - - static void _206D_206B_202B_200F_202E_206D_202A_206C_202B_206B_202D_200B_206A_206B_202E_202C_202E_202A_200C_206F_200E_200D_202B_202E_200F_202B_200E_206F_206C_206A_202B_200B_200E_202C_202C_200D_206D_206D_206B_202E_202E(DerivedArrivalEntry P_0, uint P_1) - { - P_0.PopRangeId = P_1; - } - - static void _206F_202E_206A_202C_202D_206B_202D_206D_206A_206F_206F_202C_200F_202B_206F_206F_200E_206C_206E_206C_200B_206C_200C_202C_206A_202A_206F_206D_202E_202E_206E_202B_202B_202D_202A_200C_206F_202E_202C_200D_202E(DerivedArrivalEntry P_0, ushort P_1) - { - P_0.TerritoryId = P_1; - } - - static void _200D_200F_206A_200D_202A_202A_202B_200C_202B_202B_206F_202C_202A_206E_202A_206F_202C_200D_206C_200F_202A_200E_202A_206A_200B_206D_206B_200D_206E_206E_206F_206E_200C_200B_206B_202A_206C_200C_202E_200C_202E(DerivedArrivalEntry P_0, float P_1) - { - P_0.X = P_1; - } - - static void _200D_202A_202B_206A_200E_200C_202B_200B_202E_200E_206F_206A_206E_200E_206C_200B_206A_206A_200D_200D_200F_206A_206A_200F_200C_200D_206A_206C_206D_206C_202A_200B_206E_202D_202A_206F_202C_202E_206E_202E(DerivedArrivalEntry P_0, float P_1) - { - P_0.Y = P_1; - } - - static void _206F_202B_200E_200D_202E_200D_206D_206F_202C_206C_206F_200F_206F_206B_206E_200B_202A_206A_200E_200C_200B_206E_206D_206B_206A_200C_202C_200E_200F_200D_206A_200E_200C_202C_200B_200F_200C_206F_200C_200F_202E(DerivedArrivalEntry P_0, float P_1) - { - P_0.Z = P_1; - } - - static DerivedArrivalFile _206F_202E_200F_206F_200C_206D_206B_206B_200C_200C_202B_200B_206A_206C_206A_206B_206A_202A_206E_202A_206B_202C_202D_206C_202C_200B_206B_200F_206C_202C_206F_202C_200C_200F_202C_202B_206E_206F_200C_200D_202E() - { - return new DerivedArrivalFile(); - } - - static string _206D_202D_202E_200E_206B_202D_206F_202C_200E_202E_200B_206C_200F_202D_200F_200F_202E_206C_202D_200D_206A_206C_202D_200D_200C_202D_200F_206F_200F_202C_202A_200F_202D_200F_206B_200B_202C_202A_200F_202B_202E(SmartNavDataOptions P_0) - { - return P_0.GameVersion; - } - - static void _200F_206F_206E_206E_202B_206A_206E_206B_202B_206F_206A_200F_206D_200D_202B_206C_202B_200E_202C_206E_200E_206B_206C_200F_200C_206D_206D_206C_202E_200E_202A_206C_202B_202C_206C_200F_206E_200B_202A_202B_202E(DerivedArrivalFile P_0, string P_1) - { - P_0.GameVersion = P_1; - } - - static void _200F_200B_202E_206F_206A_206E_202D_200B_206F_200F_206C_202B_206F_206E_202C_200E_200E_206E_200C_202A_202C_200F_206E_202D_200C_202C_202C_202B_200C_202D_206D_200F_202A_202A_200F_200C_206F_206B_200B_206E_202E(DerivedArrivalFile P_0, Dictionary<uint, DerivedArrivalEntry> P_1) - { - P_0.Arrivals = P_1; - } - - static string _200E_206F_200E_202B_206E_202B_200F_206C_200C_206E_206C_206B_200F_202B_200F_206A_200F_206C_206C_206B_202D_202D_202E_202C_200E_200C_202D_200E_202A_200B_200D_202E_206A_206A_200E_206A_200D_202D_206F_202D_202E(FileSystemInfo P_0) - { - return P_0.FullName; - } - - static string _206C_200E_202C_206E_202A_202A_206D_206E_202B_200F_202A_202E_200F_200E_206B_206D_206F_202A_202C_206B_200C_202C_206C_200F_206D_200C_206F_202C_202A_206E_202E_202A_202A_202C_206E_206D_202E_200F_200E_202E_202E(string P_0, string P_1) - { - return Path.Combine(P_0, P_1); - } - - static void _206B_206C_200C_202B_200D_202C_200B_202E_200F_206C_200F_202B_206D_206E_202A_206C_206D_202E_206E_200B_206F_202E_202C_202C_206E_202D_200D_202B_200D_206B_202A_206D_206B_206A_206B_202C_202E_202D_200F_202B_202E(string P_0, string P_1) - { - File.WriteAllText(P_0, P_1); - } - - static StringBuilder _206E_202B_206C_200C_202E_202C_200B_206D_206C_200B_206A_202D_206C_206C_200F_202B_206E_206B_206C_200C_206A_200D_206C_202D_202C_200D_200E_202C_206F_202C_206E_206A_206E_202A_200E_202C_206E_206D_202B_200C_202E(StringBuilder P_0, string P_1) - { - return P_0.AppendLine(P_1); - } - - static string _202D_206B_202B_206F_202B_202B_200F_202E_206F_202A_206A_206E_206B_206B_206C_206A_200D_202C_202C_202E_206E_202D_200E_206E_206C_206C_200D_200D_200B_200E_200B_202E_206C_202B_206C_200E_200F_206F_200E_200D_202E(DerivedArrivalFile P_0) - { - return P_0.GameVersion; - } - - static void _202A_206B_202E_206C_202B_200B_200D_202B_206B_200F_206E_200F_200B_206D_206E_206B_202D_200F_206E_200B_202D_200F_200D_200B_202B_200E_206B_200D_200C_202E_206D_200C_202B_206D_200E_206A_206D_206E_202D_202E(float P_0) - { - ImGui.SetNextItemWidth(P_0); - } - - static bool _200C_202C_200C_206F_202A_202D_200F_206D_206D_200E_202B_200E_200B_206B_206E_206C_206A_200C_206F_200C_202E_200E_206C_206B_206B_202B_206D_206F_202B_206F_206E_206B_206E_202D_206C_202B_202C_202A_206A_202A_202E(ImU8String P_0, ref int P_1, int P_2, int P_3, ImU8String P_4, ImGuiInputTextFlags P_5) - { - return ImGui.InputInt(P_0, ref P_1, P_2, P_3, P_4, P_5); - } - - static uint _200B_206F_206B_206D_206C_202D_206E_200D_206C_202C_206F_202D_202E_206F_206B_200B_200E_206F_200F_200D_200D_202D_202B_200D_202B_206D_206F_206E_206A_206B_202E_202E_206A_202C_206E_202C_202E_206D_200B_202C_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static int _200E_200B_206C_206A_202B_206B_202D_202D_206A_200C_200F_200F_200C_202E_200B_206C_202C_206E_202A_206A_202D_206D_200D_206D_202E_202A_200F_200C_206B_200D_202D_202E_206B_202C_206A_200B_202B_202A_200C_206A_202E(string P_0, char P_1) - { - return P_0.LastIndexOf(P_1); - } - - static string _206A_206B_200D_200F_200E_206F_200E_202E_200D_206E_202C_202E_202A_206A_200C_202A_200D_206D_200C_202D_200C_206E_200D_202E_202E_202D_200D_202D_202C_206B_206D_200C_202E_202C_202B_200F_200C_206D_202A_200F_202E(string P_0, int P_1) - { - return P_0.Substring(P_1); - } - - static string _200C_200F_202E_206E_202C_206B_206C_202E_200B_206E_200C_206E_206B_200C_200D_206B_202C_200F_202E_202E_200C_206D_206C_206D_206E_202A_206E_202A_200C_206C_202B_206F_206A_206D_200C_200E_200B_200D_206C_206E_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static FileResource _206D_200B_202C_206C_200C_200C_206C_206B_206C_206D_202A_206E_200F_202C_202A_200C_206F_200D_202A_206B_200C_200E_202B_206A_206E_200B_202D_200E_206E_202A_202A_200F_200B_206A_206A_202D_206F_200D_200D_202E_202E(IDataManager P_0, string P_1) - { - return P_0.GetFile(P_1); - } - - static byte[] _202A_200B_200C_206C_202E_202B_202D_200B_206E_200F_206C_206C_202D_206E_200E_202A_202D_206F_200E_206C_202D_206A_206A_206F_202E_202D_200B_202D_206F_206D_202C_202B_206E_200F_202A_206E_200E_202D_206C_206E_202E(FileResource P_0) - { - return P_0.Data; - } - - static int _206B_202A_206F_206A_206A_206C_206C_206E_202A_200E_202E_206B_200F_200D_200F_206D_200F_200F_206E_206A_202A_202B_202E_202D_206D_200E_200F_206B_200F_206F_200F_202D_206A_202E_206E_202A_202A_202A_206F_200D_202E(byte[] P_0, int P_1) - { - return BitConverter.ToInt32(P_0, P_1); - } - - static uint _202E_200F_202A_206A_206E_202C_206F_206F_200E_206C_200F_206E_202A_200F_202C_206F_200F_202A_206C_206B_202B_200D_206B_200B_200B_206B_206A_202D_200F_200B_202D_202D_202D_206D_206D_206F_202D_202D_200C_202A_202E(byte[] P_0, int P_1) - { - return BitConverter.ToUInt32(P_0, P_1); - } - - static char _206E_206A_202A_202A_206A_206C_200E_200C_200C_200D_206A_202A_206E_200E_206D_202E_202D_200C_200F_202A_202C_200B_200C_202D_206B_202D_206B_202B_206D_206C_206C_200F_202C_202C_200E_206A_206F_202A_200E_200D_202E(string P_0, int P_1) - { - return P_0[P_1]; - } - - static int _202A_202A_200E_202C_202A_202B_200D_202B_206F_200D_206C_206A_206B_200D_202C_200F_200D_200D_200B_206B_206A_200F_206E_200E_202A_206D_200E_202B_206D_202B_202C_200D_202C_202B_202D_202C_202A_200F_202C_200E_202E(string P_0) - { - return P_0.Length; - } - - static void _200D_200E_206B_206A_200C_200E_200E_202B_202A_202A_206B_200B_200C_206E_202E_206F_202E_206B_202D_206E_200B_202B_200C_200D_200D_200C_202D_200F_202A_200B_202E_200E_206D_202B_202C_202D_202A_206B_206E_206F_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - - static JsonSerializerOptions _200C_202E_202B_206C_202A_200C_206A_202A_206A_206F_200B_200D_200E_206E_202B_206F_200B_200B_206B_206C_202A_206D_206F_206D_206B_206A_200B_206B_206B_206B_206F_200D_202A_202D_202C_206B_200E_200E_206A_206F_202E() - { - return new JsonSerializerOptions(); - } - - static void _206D_206C_206E_200B_202A_206E_206D_202B_206B_200B_206C_200F_200F_200E_200E_206A_202D_200E_202A_206A_200F_202B_202B_206B_206C_200F_206D_200E_202C_200D_202C_202E_206C_200D_200E_202B_200E_200E_202C_202E(JsonSerializerOptions P_0, bool P_1) - { - P_0.WriteIndented = P_1; - } } diff --git a/Questionable/Questionable.Windows.SmartNavComponents/SubRegionMapPanel.cs b/Questionable/Questionable.Windows.SmartNavComponents/SubRegionMapPanel.cs index 80ddc15..9b889d9 100644 --- a/Questionable/Questionable.Windows.SmartNavComponents/SubRegionMapPanel.cs +++ b/Questionable/Questionable.Windows.SmartNavComponents/SubRegionMapPanel.cs @@ -1,13 +1,9 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Globalization; using System.Numerics; -using System.Runtime.CompilerServices; using System.Text.Json; using Dalamud.Bindings.ImGui; -using Dalamud.Game.ClientState.Objects.SubKinds; -using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin.Services; using LLib.ImGui; @@ -36,7 +32,7 @@ internal sealed class SubRegionMapPanel : IEditablePolygonSet public List<Vector2> Vertices = new List<Vector2>(); } - private static readonly uint[] SubRegionColors; + private static readonly uint[] SubRegionColors = new uint[8] { 1610612991u, 1610678016u, 1627332640u, 1610678271u, 1627324671u, 1627389696u, 1627357184u, 1619001599u }; private readonly MapTextureService _mapService; @@ -56,15 +52,15 @@ internal sealed class SubRegionMapPanel : IEditablePolygonSet { get { - return _206D_202A_202C_200B_206B_200E_202E_202B_206A_206D_206A_206B_200E_206E_200E_202B_206D_202E_206B_206F_206D_202C_206C_206D_200C_206F_206A_200D_202C_202D_202A_202B_202A_200B_206F_206A_200C_206E_206B_200F_202E(_editor); + return _editor.SelectedIndex; } set { - _206C_206E_202D_206A_206C_202D_200D_200E_202E_202C_200C_202A_206E_206E_202B_206B_206B_200B_206D_206D_202B_206F_206D_206D_202B_202C_206E_206B_200F_202B_202B_202A_206B_200E_206D_206F_206A_200F_200D_200C_202E(_editor, value); + _editor.SelectedIndex = value; } } - public bool IsDrawing => _200D_200C_206E_200F_206C_206F_200F_206F_206F_200E_200D_206C_202D_202A_200F_206A_200C_206D_206E_202B_200D_202A_200F_206C_202A_206A_202C_202A_202E_200E_206F_200C_202D_202D_206F_200F_202D_202A_200F_206D_202E(_editor); + public bool IsDrawing => _editor.IsDrawing; public IReadOnlyList<EditableSubRegion> SubRegions => _subRegions; @@ -72,8 +68,8 @@ internal sealed class SubRegionMapPanel : IEditablePolygonSet public SubRegionMapPanel(ITextureProvider textureProvider, IDataManager dataManager, ZoneSubRegionService zoneSubRegionService, IClientState clientState, IObjectTable objectTable, ILoggerFactory loggerFactory) { - _mapService = _200F_200B_200C_200B_202E_202E_200E_206D_206A_206F_202E_200E_206E_200D_202A_206E_206D_206A_202C_206E_202E_206E_202A_202A_202A_202E_200C_206F_200B_200C_200C_202C_206C_202A_202E_200C_202C_200C_200C_206D_202E(textureProvider, dataManager, loggerFactory.CreateLogger<MapTextureService>()); - _editor = _206A_200C_202C_206D_202B_202E_206D_206E_202C_200E_202E_206A_206E_206E_202C_206F_200C_206D_206E_202E_206B_202A_206A_206B_202A_202E_202B_202D_200E_206D_200D_200D_202B_206C_206F_200D_200D_206D_202A_202E_202E(_mapService); + _mapService = new MapTextureService(textureProvider, dataManager, loggerFactory.CreateLogger<MapTextureService>()); + _editor = new MapPolygonEditor(_mapService); _zoneSubRegionService = zoneSubRegionService; _clientState = clientState; _objectTable = objectTable; @@ -81,341 +77,133 @@ internal sealed class SubRegionMapPanel : IEditablePolygonSet public void Draw(JsonSerializerOptions jsonOptions) { - uint num = _200F_200F_206E_206A_202A_206E_202D_206A_202E_200F_200E_202A_200E_206B_202A_202E_202A_200B_206E_202E_202E_206D_200D_202A_206D_206A_200C_200C_202D_206E_206F_202C_200E_202C_206C_200B_206D_206A_206D_200E_202E(_clientState); - EnsureLoaded(num); - _202A_200C_200B_206A_206C_200E_202E_200D_206D_202E_200C_206C_202D_200D_206A_206F_206B_200B_202D_202B_202C_206E_206F_206B_206D_202B_206F_206D_200D_206D_202A_206D_200D_202A_206C_202B_200B_200F_200B_202D_202E(_mapService, num); + uint territoryType = _clientState.TerritoryType; + EnsureLoaded(territoryType); + _mapService.LoadForTerritory(territoryType); DrawToolbar(jsonOptions); - IPlayerCharacter playerCharacter = _206D_202D_206A_200E_200E_200C_206C_202D_202D_202B_200C_206C_206D_202B_202B_206F_200D_202E_206D_202C_202E_206D_200F_200E_202B_206E_202E_202C_202E_206C_200C_200D_206C_202B_202B_200F_200B_202D_200F_202E_202E(_objectTable); - Vector3? vector = ((playerCharacter != null) ? new Vector3?(_202B_202C_202B_206A_202A_206D_206E_200B_200C_206A_200C_202C_206E_200C_200D_202C_206F_202D_206A_202C_202A_206C_202E_206E_200B_200D_200B_200E_200E_200B_206F_206A_202C_202D_200F_206A_202D_206E_206B_206A_202E((IGameObject)playerCharacter)) : ((Vector3?)null)); - Vector2 vector2 = _202D_206F_202C_202A_200E_202C_200E_206B_200F_200F_206D_202C_200E_200B_206A_202C_200B_200D_200F_202A_200F_206C_206F_202B_200B_202A_200D_206E_206F_206E_200E_202A_206B_200B_202A_206F_200D_202D_206A_202E_202E(); - _202E_202C_206E_206E_202D_200F_206B_202B_200F_200F_200C_200D_200D_206B_202E_200B_202C_200E_200C_200E_202A_200F_206E_206B_202C_206E_200C_206F_200E_200D_200E_200D_200B_206D_202D_202B_202A_200C_200B_200C_202E(_editor, (IEditablePolygonSet)this, vector, (Vector2?)new Vector2(vector2.X, 500f)); + Vector3? playerPosition = _objectTable.LocalPlayer?.Position; + Vector2 contentRegionAvail = ImGui.GetContentRegionAvail(); + _editor.Draw(this, playerPosition, new Vector2(contentRegionAvail.X, 500f)); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawToolbar(JsonSerializerOptions jsonOptions) { - int num = ((!_200D_200C_206E_200F_206C_206F_200F_206F_206F_200E_200D_206C_202D_202A_200F_206A_200C_206D_206E_202B_200D_202A_200F_206C_202A_206A_202C_202A_202E_200E_206F_200C_202D_202D_206F_200F_202D_202A_200F_206D_202E(_editor)) ? 1130482468 : 1130482477); - while (true) + if (_editor.IsDrawing) { - int num2 = num; - int num3 = 1130482472; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + ImGui.TextColored(new Vector4(0.2f, 1f, 0.2f, 1f), "Drawing polygon... Click to add vertices. Close: click first vertex / Enter / double-click. Escape cancels."); + } + else + { + if (ImGui.Button("Draw Polygon")) { - case 9: - num = ((_206D_202A_202C_200B_206B_200E_202E_202B_206A_206D_206A_206B_200E_206E_200E_202B_206D_202E_206B_206F_206D_202C_206C_206D_200C_206F_206A_200D_202C_202D_202A_202B_202A_200B_206F_206A_200C_206E_206B_200F_202E(_editor) >= _subRegions.Count) ? 1130482472 : 1130482474); - break; - case 3: - if (_206D_202A_202C_200B_206B_200E_202E_202B_206A_206D_206A_206B_200E_206E_200E_202B_206D_202E_206B_206F_206D_202C_206C_206D_200C_206F_206A_200D_202C_202D_202A_202B_202A_200B_206F_206A_200C_206E_206B_200F_202E(_editor) >= 0) - { - num = 1130482479; - break; - } - return; - case 0: - _202B_202E_206B_206A_206A_202B_206C_206B_200E_202D_202D_202A_206F_200F_200C_206D_200B_200B_202C_200B_206F_200D_200E_200E_200F_206F_202E_206A_200F_206F_206F_202A_200F_200D_200F_202C_206C_202C_206E_200C_202E(); - num = ((!_206E_202B_202B_200E_202C_200D_200B_200F_202B_200C_200D_202A_202C_206B_206B_206C_206A_202B_200F_206A_206F_206D_206F_206B_206B_206F_206C_200B_206D_206B_202A_206C_206B_202B_202D_202D_200B_206B_206D_206E_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1359524702), default(Vector2))) ? 1130482475 : 1130482467); - break; - case 2: - _202B_202E_206B_206A_206A_202B_206C_206B_200E_202D_202D_202A_206F_200F_200C_206D_200B_200B_202C_200B_206F_200D_200E_200E_200F_206F_202E_206A_200F_206F_206F_202A_200F_200D_200F_202C_206C_202C_206E_200C_202E(); - num = ((!_206E_202B_202B_200E_202C_200D_200B_200F_202B_200C_200D_202A_202C_206B_206B_206C_206A_202B_200F_206A_206F_206D_206F_206B_206B_206F_206C_200B_206D_206B_202A_206C_206B_202B_202D_202D_200B_206B_206D_206E_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1993568544), default(Vector2))) ? 1130482472 : 1130482478); - break; - case 4: - _202B_206D_206F_206D_200F_202B_202D_200B_206E_200D_206D_202A_202A_202A_202D_202A_206A_202C_200F_202E_206B_202D_200F_202A_202D_200B_200B_200C_206B_206B_206B_200D_206F_206C_202B_200D_200B_200E_202C_206F_202E(_editor); - num = 1130482466; - break; - case 14: - _200F_206E_202C_206B_206D_202D_200B_200C_200D_200F_200D_200B_200B_202E_206B_206A_206E_200B_200C_200F_206B_202B_202C_200F_202C_202E_202C_206C_206F_202C_206C_206D_200E_206F_206E_200D_202D_206C_200E_206E_202E(_editor); - num = 1130482473; - break; - case 8: - num = 1130482477; - break; - case 10: - num = ((_206D_202A_202C_200B_206B_200E_202E_202B_206A_206D_206A_206B_200E_206E_200E_202B_206D_202E_206B_206F_206D_202C_206C_206D_200C_206F_206A_200D_202C_202D_202A_202B_202A_200B_206F_206A_200C_206E_206B_200F_202E(_editor) < 0) ? 1130482472 : 1130482465); - break; - case 12: - num = ((!_206E_202B_202B_200E_202C_200D_200B_200F_202B_200C_200D_202A_202C_206B_206B_206C_206A_202B_200F_206A_206F_206D_206F_206B_206B_206F_206C_200B_206D_206B_202A_206C_206B_202B_202D_202D_200B_206B_206D_206E_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(180464762), default(Vector2))) ? 1130482473 : 1130482470); - break; - case 5: - { - Vector4 vector = new Vector4(0.2f, 1f, 0.2f, 1f); - _206B_202A_202A_202A_200F_206D_200C_202C_202A_206F_202B_202E_202B_202D_200B_202A_206B_202B_206F_202E_202E_200B_202C_206C_206A_202D_200D_200F_206E_200E_200D_202D_200E_202B_200B_200E_206F_206E_206E_202B_202E(ref vector, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1293681033)); - num = 1130482475; - break; + _editor.StartDrawing(); } - case 7: - if (_206D_202A_202C_200B_206B_200E_202E_202B_206A_206D_206A_206B_200E_206E_200E_202B_206D_202E_206B_206F_206D_202C_206C_206D_200C_206F_206A_200D_202C_202D_202A_202B_202A_200B_206F_206A_200C_206E_206B_200F_202E(_editor) < _subRegions.Count) + ImGui.SameLine(); + if (ImGui.Button("Reset View")) + { + _editor.ResetView(); + } + if (_editor.SelectedIndex >= 0 && _editor.SelectedIndex < _subRegions.Count) + { + ImGui.SameLine(); + if (ImGui.Button("Delete Selected")) { - num = 1130482469; - break; + _subRegions.RemoveAt(_editor.SelectedIndex); + _editor.SelectedIndex = -1; } - return; - case 6: - _subRegions.RemoveAt(_206D_202A_202C_200B_206B_200E_202E_202B_206A_206D_206A_206B_200E_206E_200E_202B_206D_202E_206B_206F_206D_202C_206C_206D_200C_206F_206A_200D_202C_202D_202A_202B_202A_200B_206F_206A_200C_206E_206B_200F_202E(_editor)); - _206C_206E_202D_206A_206C_202D_200D_200E_202E_202C_200C_202A_206E_206E_202B_206B_206B_200B_206D_206D_202B_206F_206D_206D_202B_202C_206E_206B_200F_202B_202B_202A_206B_200E_206D_206F_206A_200F_200D_200C_202E(_editor, -1); - num = 1130482472; - break; - case 1: - _202B_202E_206B_206A_206A_202B_206C_206B_200E_202D_202D_202A_206F_200F_200C_206D_200B_200B_202C_200B_206F_200D_200E_200E_200F_206F_202E_206A_200F_206F_206F_202A_200F_200D_200F_202C_206C_202C_206E_200C_202E(); - num = ((!_206E_202B_202B_200E_202C_200D_200B_200F_202B_200C_200D_202A_202C_206B_206B_206C_206A_202B_200F_206A_206F_206D_206F_206B_206B_206F_206C_200B_206D_206B_202A_206C_206B_202B_202D_202D_200B_206B_206D_206E_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(504012849), default(Vector2))) ? 1130482466 : 1130482476); - break; - case 11: + } + ImGui.SameLine(); + if (ImGui.Button("Copy All JSON")) { TerritorySubRegions value = BuildTerritorySubRegions(); - _206A_200C_206E_200C_206E_206D_200B_200F_200E_202D_206F_200D_206A_202A_206C_206F_200C_206E_206E_200F_202E_200B_200F_200B_202A_200C_202A_206C_206F_206F_202B_202A_202C_206C_200C_206F_202A_202D_206B_200D_202E((ImU8String)JsonSerializer.Serialize(new Dictionary<string, object> { [_200F_200F_206E_206A_202A_206E_202D_206A_202E_200F_200E_202A_200E_206B_202A_202E_202A_200B_206E_202E_202E_206D_200D_202A_206D_206A_200C_200C_202D_206E_206F_202C_200E_202C_206C_200B_206D_206A_206D_200E_202E(_clientState).ToString(_206B_206A_202D_206B_206C_206D_200D_206A_200F_206F_200E_206D_200F_202B_202B_202B_202B_200F_200B_206F_200E_202A_206E_200E_206D_202E_200F_206C_200B_206A_206F_206F_202C_202A_200B_206F_200C_200B_202E_206D_202E())] = value }, jsonOptions)); - num = 1130482475; - break; + ImGui.SetClipboardText(JsonSerializer.Serialize(new Dictionary<string, object> { [_clientState.TerritoryType.ToString(CultureInfo.InvariantCulture)] = value }, jsonOptions)); } - case 13: + } + if (_editor.SelectedIndex >= 0 && _editor.SelectedIndex < _subRegions.Count) + { + EditableSubRegion editableSubRegion = _subRegions[_editor.SelectedIndex]; + ImGui.SetNextItemWidth(120f); + ImGui.InputText("ID##mapSr", ref editableSubRegion.Id, 64); + ImGui.SameLine(); + ImGui.SetNextItemWidth(200f); + ImGui.InputText("Comment##mapSr", ref editableSubRegion.Comment, 128); + ImGui.Checkbox("MinY##mapSrCb", ref editableSubRegion.HasMinY); + ImGui.SameLine(); + using (ImRaii.Disabled(!editableSubRegion.HasMinY)) { - EditableSubRegion editableSubRegion = _subRegions[_206D_202A_202C_200B_206B_200E_202E_202B_206A_206D_206A_206B_200E_206E_200E_202B_206D_202E_206B_206F_206D_202C_206C_206D_200C_206F_206A_200D_202C_202D_202A_202B_202A_200B_206F_206A_200C_206E_206B_200F_202E(_editor)]; - _202C_200D_202D_202D_202B_206D_206D_202A_206D_200D_202E_202A_206A_200D_206C_206F_200B_206B_200B_202C_202E_200D_206F_200D_206A_202A_206F_200E_202B_206C_206B_202D_206E_202C_202D_202A_200E_206E_202B_202A_202E(120f); - _206F_202E_202E_206D_202D_202D_200C_206D_200E_200D_206E_206F_206E_200C_202A_202D_206D_202A_202B_200F_200D_206A_206F_200F_206A_206C_200B_200D_206A_206F_206A_202D_206F_206C_202C_206C_206C_200E_202C_206E_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(903860016), ref editableSubRegion.Id, 64, ImGuiInputTextFlags.None, (ImGui.ImGuiInputTextCallbackDelegate)null); - _202B_202E_206B_206A_206A_202B_206C_206B_200E_202D_202D_202A_206F_200F_200C_206D_200B_200B_202C_200B_206F_200D_200E_200E_200F_206F_202E_206A_200F_206F_206F_202A_200F_200D_200F_202C_206C_202C_206E_200C_202E(); - _202C_200D_202D_202D_202B_206D_206D_202A_206D_200D_202E_202A_206A_200D_206C_206F_200B_206B_200B_202C_202E_200D_206F_200D_206A_202A_206F_200E_202B_206C_206B_202D_206E_202C_202D_202A_200E_206E_202B_202A_202E(200f); - _206F_202E_202E_206D_202D_202D_200C_206D_200E_200D_206E_206F_206E_200C_202A_202D_206D_202A_202B_200F_200D_206A_206F_200F_206A_206C_200B_200D_206A_206F_206A_202D_206F_206C_202C_206C_206C_200E_202C_206E_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(443714605), ref editableSubRegion.Comment, 128, ImGuiInputTextFlags.None, (ImGui.ImGuiInputTextCallbackDelegate)null); - _202C_206C_200C_206D_202E_206E_206C_200E_200E_200F_206F_200F_200E_200B_206A_200B_206E_206B_206D_202A_202D_202D_202C_200E_200E_206E_200F_202C_202D_206A_202A_206E_206E_206A_200C_206A_200C_202A_200F_202D_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(603170616), ref editableSubRegion.HasMinY); - _202B_202E_206B_206A_206A_202B_206C_206B_200E_202D_202D_202A_206F_200F_200C_206D_200B_200B_202C_200B_206F_200D_200E_200E_200F_206F_202E_206A_200F_206F_206F_202A_200F_200D_200F_202C_206C_202C_206E_200C_202E(); - ImRaii.DisabledDisposable disabledDisposable = _202E_202B_206C_206A_200B_202A_200E_202A_202C_202D_206B_202B_206B_200F_202A_206F_200C_206A_206C_200B_200E_202D_206F_206F_206B_206A_206A_200D_206F_206D_200E_206C_202A_206B_200C_206B_206A_206E_206B_200F_202E(!editableSubRegion.HasMinY); - try - { - _202C_200D_202D_202D_202B_206D_206D_202A_206D_200D_202E_202A_206A_200D_206C_206F_200B_206B_200B_202C_202E_200D_206F_200D_206A_202A_206F_200E_202B_206C_206B_202D_206E_202C_202D_202A_200E_206E_202B_202A_202E(80f); - _200C_206B_202B_202E_202E_206E_206A_206F_200F_206A_200F_202D_202C_206E_200C_206B_206D_202B_206D_206F_206A_200F_200D_200E_202E_202D_206E_200B_206F_202D_206F_206C_202C_202E_206B_206D_206B_206B_206D_202E_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-638196181), ref editableSubRegion.MinYEdit, 0f, 0f, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1656820756), ImGuiInputTextFlags.None); - } - finally - { - num = ((disabledDisposable == null) ? (-1556122522) : (-1556122523)); - while (true) - { - int num7 = num; - num3 = -1556122521; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - goto end_IL_0415; - case 2: - _200F_202B_202C_206E_200E_200C_202C_202B_200E_202C_202B_202A_202E_206F_206B_202D_202B_206E_200B_202A_202B_200F_206E_202E_206D_202C_200E_202B_202E_202B_206F_200F_202C_202D_202D_200C_200B_202C_206A_206A_202E((IDisposable)disabledDisposable); - num = -1556122522; - break; - case 0: - num = -1556122523; - break; - } - continue; - end_IL_0415: - break; - } - } - _202B_202E_206B_206A_206A_202B_206C_206B_200E_202D_202D_202A_206F_200F_200C_206D_200B_200B_202C_200B_206F_200D_200E_200E_200F_206F_202E_206A_200F_206F_206F_202A_200F_200D_200F_202C_206C_202C_206E_200C_202E(); - _202C_206C_200C_206D_202E_206E_206C_200E_200E_200F_206F_200F_200E_200B_206A_200B_206E_206B_206D_202A_202D_202D_202C_200E_200E_206E_200F_202C_202D_206A_202A_206E_206E_206A_200C_206A_200C_202A_200F_202D_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1443053569), ref editableSubRegion.HasMaxY); - _202B_202E_206B_206A_206A_202B_206C_206B_200E_202D_202D_202A_206F_200F_200C_206D_200B_200B_202C_200B_206F_200D_200E_200E_200F_206F_202E_206A_200F_206F_206F_202A_200F_200D_200F_202C_206C_202C_206E_200C_202E(); - disabledDisposable = _202E_202B_206C_206A_200B_202A_200E_202A_202C_202D_206B_202B_206B_200F_202A_206F_200C_206A_206C_200B_200E_202D_206F_206F_206B_206A_206A_200D_206F_206D_200E_206C_202A_206B_200C_206B_206A_206E_206B_200F_202E(!editableSubRegion.HasMaxY); - try - { - _202C_200D_202D_202D_202B_206D_206D_202A_206D_200D_202E_202A_206A_200D_206C_206F_200B_206B_200B_202C_202E_200D_206F_200D_206A_202A_206F_200E_202B_206C_206B_202D_206E_202C_202D_202A_200E_206E_202B_202A_202E(80f); - _200C_206B_202B_202E_202E_206E_206A_206F_200F_206A_200F_202D_202C_206E_200C_206B_206D_202B_206D_206F_206A_200F_200D_200E_202E_202D_206E_200B_206F_202D_206F_206C_202C_202E_206B_206D_206B_206B_206D_202E_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1904850216), ref editableSubRegion.MaxYEdit, 0f, 0f, (ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(215040021), ImGuiInputTextFlags.None); - return; - } - finally - { - num = ((disabledDisposable == null) ? 142964769 : 142964770); - while (true) - { - int num8 = num; - num3 = 142964771; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 0: - num = 142964770; - break; - case 1: - _200F_202B_202C_206E_200E_200C_202C_202B_200E_202C_202B_202A_202E_206F_206B_202D_202B_206E_200B_202A_202B_200F_206E_202E_206D_202C_200E_202B_202E_202B_206F_200F_202C_202D_202D_200C_200B_202C_206A_206A_202E((IDisposable)disabledDisposable); - num = 142964769; - break; - case 2: - goto end_IL_04fc; - } - continue; - end_IL_04fc: - break; - } - } + ImGui.SetNextItemWidth(80f); + ImGui.InputFloat("##minY", ref editableSubRegion.MinYEdit, 0f, 0f, "%.1f"); } + ImGui.SameLine(); + ImGui.Checkbox("MaxY##mapSrCb", ref editableSubRegion.HasMaxY); + ImGui.SameLine(); + using (ImRaii.Disabled(!editableSubRegion.HasMaxY)) + { + ImGui.SetNextItemWidth(80f); + ImGui.InputFloat("##maxY", ref editableSubRegion.MaxYEdit, 0f, 0f, "%.1f"); } } } private void EnsureLoaded(uint territory) { - int num = ((territory != _loadedTerritory) ? 602582905 : 602582908); - IReadOnlyList<SubRegionDefinition> readOnlyList = default(IReadOnlyList<SubRegionDefinition>); - while (true) + if (territory == _loadedTerritory) { - int num2 = num; - int num3 = 602582909; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + _loadedTerritory = territory; + _subRegions.Clear(); + _editor.SelectedIndex = -1; + if (!_zoneSubRegionService.HasSubRegions(territory)) + { + return; + } + IReadOnlyList<SubRegionDefinition> subRegions = _zoneSubRegionService.GetSubRegions(territory); + if (subRegions == null) + { + return; + } + foreach (SubRegionDefinition item in subRegions) + { + List<Vector2> list = new List<Vector2>(item.Vertices.Count); + foreach (SubRegionVertex vertex in item.Vertices) { - case 4: - _loadedTerritory = territory; - _subRegions.Clear(); - _206C_206E_202D_206A_206C_202D_200D_200E_202E_202C_200C_202A_206E_206E_202B_206B_206B_200B_206D_206D_202B_206F_206D_206D_202B_202C_206E_206B_200F_202B_202B_202A_206B_200E_206D_206F_206A_200F_200D_200C_202E(_editor, -1); - num = (_200C_200F_206E_200E_202E_202D_202C_206E_200B_206F_200B_202A_200F_206F_202B_202B_200C_206E_200C_206C_202A_206A_206D_206C_200D_206B_206A_206A_202B_200E_202E_202A_206C_206F_200E_202E_206F_206B_206E_200C_202E(_zoneSubRegionService, territory) ? 602582911 : 602582907); - break; - case 5: - return; - case 2: - readOnlyList = _202D_202D_206B_200C_200E_206A_206F_206F_202E_200E_200E_206E_206B_200E_202A_200C_202D_206F_200F_202D_202C_202B_202E_206B_206D_202C_200F_206A_200E_202B_200E_206E_202D_206E_202B_206D_206B_202D_206A_206B_202E(_zoneSubRegionService, territory); - num = ((readOnlyList != null) ? 602582910 : 602582904); - break; - case 1: - return; - case 0: - num = 602582908; - break; - case 6: - return; - case 3: + list.Add(new Vector2(vertex.X, vertex.Z)); + } + _subRegions.Add(new EditableSubRegion { - IEnumerator<SubRegionDefinition> enumerator = readOnlyList.GetEnumerator(); - try - { - while (_202E_200F_206B_206F_200B_200D_206F_206F_206B_200E_200E_206F_202A_200C_202B_206E_206D_200E_200D_200F_206E_200B_206F_206F_200E_202A_200D_206A_206B_200D_200C_202E_202C_200C_202D_200E_202A_206E_200E_206C_202E((IEnumerator)enumerator)) - { - SubRegionDefinition current = enumerator.Current; - List<Vector2> list = new List<Vector2>(_206F_206F_200E_202A_202C_200F_202C_202D_200E_202C_206C_202D_206A_200D_202B_206A_202C_202C_200E_200E_200F_200E_200B_206B_202A_202E_206E_202C_202A_206D_206B_206B_200C_202D_206E_206E_206C_200C_200E_206A_202E(current).Count); - using (List<SubRegionVertex>.Enumerator enumerator2 = _206F_206F_200E_202A_202C_200F_202C_202D_200E_202C_206C_202D_206A_200D_202B_206A_202C_202C_200E_200E_200F_200E_200B_206B_202A_202E_206E_202C_202A_206D_206B_206B_200C_202D_206E_206E_206C_200C_200E_206A_202E(current).GetEnumerator()) - { - num = -1601570559; - while (true) - { - int num7 = num; - num3 = -1601570560; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = (enumerator2.MoveNext() ? (-1601570557) : (-1601570558)); - break; - case 3: - { - SubRegionVertex current2 = enumerator2.Current; - list.Add(new Vector2(_206B_206C_206D_200F_206C_206E_206B_206B_202B_206E_206B_206F_200E_202D_206F_206D_202D_206C_200B_200D_202A_202D_206D_200C_202C_200D_206D_200F_200D_202A_206E_206E_206C_206F_206C_202A_200B_206B_200E_206A_202E(current2), _200B_206B_206B_206D_202C_200C_200F_200D_202B_200F_200B_206D_206B_202C_200F_200C_202D_202E_200D_200D_202C_202A_206F_202D_206A_202D_200D_202E_200B_206B_206C_200B_200C_206A_202A_202C_206D_202B_206F_202E_202E(current2))); - num = -1601570559; - break; - } - case 0: - num = -1601570559; - break; - case 2: - goto end_IL_0120; - } - continue; - end_IL_0120: - break; - } - } - _subRegions.Add(new EditableSubRegion - { - Id = _200B_200E_200C_206D_200D_202D_202B_202D_200D_202D_200D_200C_206F_206E_206C_200E_202D_200F_202A_206C_202E_206F_200D_206F_200B_200F_206C_200E_206F_200C_206D_200E_202C_206E_202D_200C_202D_206D_206E_206F_202E(current), - Comment = (_206A_200C_200F_202B_206A_202E_200F_202B_200E_202A_202E_202C_200B_202B_202D_206B_206B_206F_202A_200C_202D_200D_200E_202A_206E_200E_206D_202E_206F_202C_202E_206D_202A_202A_202E_202A_206D_206C_200E_202E(current) ?? string.Empty), - MinYEdit = _206A_200E_200C_202E_200F_206F_206A_202D_202A_206A_206E_200E_202A_200D_206B_206A_200D_200D_200F_200E_200E_200F_200F_200F_202B_200C_202E_206D_200D_202A_206A_206E_202D_202C_202E_200F_200C_206B_206A_200F_202E(current).GetValueOrDefault(), - MaxYEdit = _206E_200D_200B_206E_206B_200E_202E_206B_202C_206B_200B_200C_206A_206D_200F_202A_206C_200E_206B_206A_200B_206C_206A_206C_206D_206E_200D_206E_206B_206A_200D_200D_200C_200E_206E_206D_202A_206F_202B_206B_202E(current).GetValueOrDefault(), - HasMinY = _206A_200E_200C_202E_200F_206F_206A_202D_202A_206A_206E_200E_202A_200D_206B_206A_200D_200D_200F_200E_200E_200F_200F_200F_202B_200C_202E_206D_200D_202A_206A_206E_202D_202C_202E_200F_200C_206B_206A_200F_202E(current).HasValue, - HasMaxY = _206E_200D_200B_206E_206B_200E_202E_206B_202C_206B_200B_200C_206A_206D_200F_202A_206C_200E_206B_206A_200B_206C_206A_206C_206D_206E_200D_206E_206B_206A_200D_200D_200C_200E_206E_206D_202A_206F_202B_206B_202E(current).HasValue, - Vertices = list - }); - } - return; - } - finally - { - num = ((enumerator == null) ? 1148789803 : 1148789800); - while (true) - { - int num8 = num; - num3 = 1148789802; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - goto end_IL_027e; - case 2: - _200F_202B_202C_206E_200E_200C_202C_202B_200E_202C_202B_202A_202E_206F_206B_202D_202B_206E_200B_202A_202B_200F_206E_202E_206D_202C_200E_202B_202E_202B_206F_200F_202C_202D_202D_200C_200B_202C_206A_206A_202E((IDisposable)enumerator); - num = 1148789803; - break; - case 0: - num = 1148789800; - break; - } - continue; - end_IL_027e: - break; - } - } - } - } + Id = item.Id, + Comment = (item.Comment ?? string.Empty), + MinYEdit = item.MinY.GetValueOrDefault(), + MaxYEdit = item.MaxY.GetValueOrDefault(), + HasMinY = item.MinY.HasValue, + HasMaxY = item.MaxY.HasValue, + Vertices = list + }); } } public TerritorySubRegions BuildTerritorySubRegions() { - TerritorySubRegions territorySubRegions = _202E_206E_206B_206F_206E_206F_202E_200B_206D_206C_200B_200F_206B_206C_206E_206D_206C_206B_200E_202B_206E_206A_200D_202C_206D_200F_206B_200E_202D_206D_202D_206F_206A_206E_200D_200D_200C_200D_200B_202A_202E(); + TerritorySubRegions territorySubRegions = new TerritorySubRegions(); foreach (EditableSubRegion subRegion in _subRegions) { - SubRegionDefinition subRegionDefinition = _200D_206B_202E_206A_200C_206D_206C_206E_206D_206D_202B_206A_206D_200C_200F_206D_202E_206B_200E_202D_202E_206E_200E_200F_200B_202D_200C_202C_200D_206E_202B_200C_200F_200E_206A_202E_200D_200E_206F_200D_202E(); - _200B_202E_202A_202E_202A_202C_200C_206D_200E_206E_206B_206C_200D_202C_206A_202B_202E_206E_202B_206C_202D_202E_200C_200B_202E_200E_202B_200E_200E_202B_206C_202D_202B_200B_202C_202D_202E_202A_202E_206C_202E(subRegionDefinition, subRegion.Id); - _206B_202B_200E_200B_200C_200E_206B_202C_206A_202E_206A_200C_206D_202D_206A_202E_206F_200E_200F_206E_206F_202E_200F_206F_202C_200F_200C_206F_200C_206C_200F_200D_200B_200C_206B_206A_206E_206A_200C_206D_202E(subRegionDefinition, _206B_202A_202A_206B_206A_206A_200F_206E_206C_206B_202A_200B_202C_200C_202D_202D_202D_206C_206C_202A_206E_200B_206B_202D_200C_202A_200D_206A_202E_206D_200E_200F_202D_206E_206F_200D_202D_202E_200B_202D_202E(subRegion.Comment) ? null : subRegion.Comment); - _206E_202D_206C_200E_200C_206A_206D_206F_202A_206A_202D_202D_202C_202B_206E_206D_206D_206F_206C_206C_200F_202B_206F_206D_206A_206F_200E_200D_206F_200D_206C_202B_202A_206F_200F_200F_202C_206C_200E_206D_202E(subRegionDefinition, subRegion.HasMinY ? new float?(subRegion.MinYEdit) : ((float?)null)); - _202A_206E_200D_200C_200F_202D_202B_202E_206D_202C_202B_202E_206B_206B_206F_200C_202A_206F_202D_206A_200E_200D_206F_206E_202E_200B_200D_206C_206B_206C_206A_200F_202A_200E_206E_202C_200B_200C_206C_202E_202E(subRegionDefinition, subRegion.HasMaxY ? new float?(subRegion.MaxYEdit) : ((float?)null)); - SubRegionDefinition subRegionDefinition2 = subRegionDefinition; - using (List<Vector2>.Enumerator enumerator2 = subRegion.Vertices.GetEnumerator()) + SubRegionDefinition subRegionDefinition = new SubRegionDefinition { - int num = 1937551110; - while (true) + Id = subRegion.Id, + Comment = (string.IsNullOrEmpty(subRegion.Comment) ? null : subRegion.Comment), + MinY = (subRegion.HasMinY ? new float?(subRegion.MinYEdit) : ((float?)null)), + MaxY = (subRegion.HasMaxY ? new float?(subRegion.MaxYEdit) : ((float?)null)) + }; + foreach (Vector2 vertex in subRegion.Vertices) + { + subRegionDefinition.Vertices.Add(new SubRegionVertex { - int num2 = num; - int num3 = 1937551108; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1937551110; - break; - case 1: - { - Vector2 current2 = enumerator2.Current; - List<SubRegionVertex> list = _206F_206F_200E_202A_202C_200F_202C_202D_200E_202C_206C_202D_206A_200D_202B_206A_202C_202C_200E_200E_200F_200E_200B_206B_202A_202E_206E_202C_202A_206D_206B_206B_200C_202D_206E_206E_206C_200C_200E_206A_202E(subRegionDefinition2); - SubRegionVertex subRegionVertex = _202C_202E_206C_206D_200D_200F_206D_206D_206B_200D_200E_206E_206B_206F_202A_200F_206A_200D_202A_206C_200E_206C_200E_200E_206A_206D_206C_200F_206F_206F_202D_200F_202E_200D_200D_200D_202C_206A_206D_202D_202E(); - _206E_200B_202B_200E_206E_200C_206E_206E_200C_206B_202D_206E_206C_202C_202C_200C_200E_202D_206E_200D_206C_200D_202A_200F_202B_200D_202D_200B_200F_202C_200E_200F_206F_202E_206F_206D_206A_206D_206A_202C_202E(subRegionVertex, _202A_206B_206D_202B_202C_200C_202C_202C_200E_206C_206F_206F_200C_202E_202A_202C_200D_206F_200E_202D_200B_202E_202B_206E_202C_206E_200C_206B_200F_200C_206A_202D_202C_200C_202A_206B_206D_200B_206D_202C_202E(current2.X, 1)); - _200F_202C_202C_200C_202A_200B_206F_206E_202B_200D_206D_200B_200C_202D_206B_206B_202E_202C_206B_200C_202E_202C_202D_202D_206C_206E_200B_206A_202C_206C_206F_202A_206E_200F_202D_202B_202B_206E_200D_206A_202E(subRegionVertex, _202A_206B_206D_202B_202C_200C_202C_202C_200E_206C_206F_206F_200C_202E_202A_202C_200D_206F_200E_202D_200B_202E_202B_206E_202C_206E_200C_206B_200F_200C_206A_202D_202C_200C_202A_206B_206D_200B_206D_202C_202E(current2.Y, 1)); - list.Add(subRegionVertex); - num = 1937551110; - break; - } - case 2: - num = (enumerator2.MoveNext() ? 1937551109 : 1937551111); - break; - case 3: - goto end_IL_00c2; - } - continue; - end_IL_00c2: - break; - } + X = MathF.Round(vertex.X, 1), + Z = MathF.Round(vertex.Y, 1) + }); } - _200D_200F_202C_206F_200D_200E_206B_206D_206F_206D_202A_200B_200B_200C_200B_202E_202D_206E_206F_206E_200F_206A_200E_200C_200B_202A_202D_206E_202E_202E_202B_202B_200C_200B_202A_206C_202D_202A_200B_200F_202E(territorySubRegions).Add(subRegionDefinition2); + territorySubRegions.SubRegions.Add(subRegionDefinition); } return territorySubRegions; } @@ -423,64 +211,9 @@ internal sealed class SubRegionMapPanel : IEditablePolygonSet public void ImportVertices(IReadOnlyList<SubRegionVertex> vertices, string id, string comment) { List<Vector2> list = new List<Vector2>(vertices.Count); - IEnumerator<SubRegionVertex> enumerator = vertices.GetEnumerator(); - try + foreach (SubRegionVertex vertex in vertices) { - int num = 69252025; - while (true) - { - int num2 = num; - int num3 = 69252027; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 69252025; - break; - case 2: - num = (_202E_200F_206B_206F_200B_200D_206F_206F_206B_200E_200E_206F_202A_200C_202B_206E_206D_200E_200D_200F_206E_200B_206F_206F_200E_202A_200D_206A_206B_200D_200C_202E_202C_200C_202D_200E_202A_206E_200E_206C_202E((IEnumerator)enumerator) ? 69252026 : 69252024); - break; - case 1: - { - SubRegionVertex current = enumerator.Current; - list.Add(new Vector2(_206B_206C_206D_200F_206C_206E_206B_206B_202B_206E_206B_206F_200E_202D_206F_206D_202D_206C_200B_200D_202A_202D_206D_200C_202C_200D_206D_200F_200D_202A_206E_206E_206C_206F_206C_202A_200B_206B_200E_206A_202E(current), _200B_206B_206B_206D_202C_200C_200F_200D_202B_200F_200B_206D_206B_202C_200F_200C_202D_202E_200D_200D_202C_202A_206F_202D_206A_202D_200D_202E_200B_206B_206C_200B_200C_206A_202A_202C_206D_202B_206F_202E_202E(current))); - num = 69252025; - break; - } - case 3: - goto end_IL_001e; - } - continue; - end_IL_001e: - break; - } - } - finally - { - int num = ((enumerator == null) ? (-1889023952) : (-1889023949)); - while (true) - { - int num7 = num; - int num3 = -1889023950; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_00c5; - case 1: - _200F_202B_202C_206E_200E_200C_202C_202B_200E_202C_202B_202A_202E_206F_206B_202D_202B_206E_200B_202A_202B_200F_206E_202E_206D_202C_200E_202B_202E_202B_206F_200F_202C_202D_202D_200C_200B_202C_206A_206A_202E((IDisposable)enumerator); - num = -1889023952; - break; - case 0: - num = -1889023949; - break; - } - continue; - end_IL_00c5: - break; - } + list.Add(new Vector2(vertex.X, vertex.Z)); } _subRegions.Add(new EditableSubRegion { @@ -488,63 +221,26 @@ internal sealed class SubRegionMapPanel : IEditablePolygonSet Comment = comment, Vertices = list }); - _206C_206E_202D_206A_206C_202D_200D_200E_202E_202C_200C_202A_206E_206E_202B_206B_206B_200B_206D_206D_202B_206F_206D_206D_202B_202C_206E_206B_200F_202B_202B_202A_206B_200E_206D_206F_206A_200F_200D_200C_202E(_editor, _subRegions.Count - 1); + _editor.SelectedIndex = _subRegions.Count - 1; } public List<SubRegionVertex> ExportSelectedVertices() { - int num = ((_206D_202A_202C_200B_206B_200E_202E_202B_206A_206D_206A_206B_200E_206E_200E_202B_206D_202E_206B_206F_206D_202C_206C_206D_200C_206F_206A_200D_202C_202D_202A_202B_202A_200B_206F_206A_200C_206E_206B_200F_202E(_editor) < 0) ? (-1813143708) : (-1813143705)); - while (true) + if (_editor.SelectedIndex < 0 || _editor.SelectedIndex >= _subRegions.Count) { - int num2 = num; - int num3 = -1813143707; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = -1813143705; - break; - case 1: - return new List<SubRegionVertex>(); - case 2: - num = ((_206D_202A_202C_200B_206B_200E_202E_202B_206A_206D_206A_206B_200E_206E_200E_202B_206D_202E_206B_206F_206D_202C_206C_206D_200C_206F_206A_200D_202C_202D_202A_202B_202A_200B_206F_206A_200C_206E_206B_200F_202E(_editor) < _subRegions.Count) ? (-1813143707) : (-1813143708)); - break; - case 0: - { - EditableSubRegion editableSubRegion = _subRegions[_206D_202A_202C_200B_206B_200E_202E_202B_206A_206D_206A_206B_200E_206E_200E_202B_206D_202E_206B_206F_206D_202C_206C_206D_200C_206F_206A_200D_202C_202D_202A_202B_202A_200B_206F_206A_200C_206E_206B_200F_202E(_editor)]; - List<SubRegionVertex> list = new List<SubRegionVertex>(editableSubRegion.Vertices.Count); - using List<Vector2>.Enumerator enumerator = editableSubRegion.Vertices.GetEnumerator(); - num = -1223739112; - while (true) - { - int num5 = num; - num3 = -1223739111; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = (enumerator.MoveNext() ? (-1223739109) : (-1223739111)); - break; - case 2: - { - Vector2 current = enumerator.Current; - SubRegionVertex subRegionVertex = _202C_202E_206C_206D_200D_200F_206D_206D_206B_200D_200E_206E_206B_206F_202A_200F_206A_200D_202A_206C_200E_206C_200E_200E_206A_206D_206C_200F_206F_206F_202D_200F_202E_200D_200D_200D_202C_206A_206D_202D_202E(); - _206E_200B_202B_200E_206E_200C_206E_206E_200C_206B_202D_206E_206C_202C_202C_200C_200E_202D_206E_200D_206C_200D_202A_200F_202B_200D_202D_200B_200F_202C_200E_200F_206F_202E_206F_206D_206A_206D_206A_202C_202E(subRegionVertex, _202A_206B_206D_202B_202C_200C_202C_202C_200E_206C_206F_206F_200C_202E_202A_202C_200D_206F_200E_202D_200B_202E_202B_206E_202C_206E_200C_206B_200F_200C_206A_202D_202C_200C_202A_206B_206D_200B_206D_202C_202E(current.X, 1)); - _200F_202C_202C_200C_202A_200B_206F_206E_202B_200D_206D_200B_200C_202D_206B_206B_202E_202C_206B_200C_202E_202C_202D_202D_206C_206E_200B_206A_202C_206C_206F_202A_206E_200F_202D_202B_202B_206E_200D_206A_202E(subRegionVertex, _202A_206B_206D_202B_202C_200C_202C_202C_200E_206C_206F_206F_200C_202E_202A_202C_200D_206F_200E_202D_200B_202E_202B_206E_202C_206E_200C_206B_200F_200C_206A_202D_202C_200C_202A_206B_206D_200B_206D_202C_202E(current.Y, 1)); - list.Add(subRegionVertex); - num = -1223739112; - break; - } - case 3: - num = -1223739112; - break; - case 0: - return list; - } - } - } - } + return new List<SubRegionVertex>(); } + EditableSubRegion editableSubRegion = _subRegions[_editor.SelectedIndex]; + List<SubRegionVertex> list = new List<SubRegionVertex>(editableSubRegion.Vertices.Count); + foreach (Vector2 vertex in editableSubRegion.Vertices) + { + list.Add(new SubRegionVertex + { + X = MathF.Round(vertex.X, 1), + Z = MathF.Round(vertex.Y, 1) + }); + } + return list; } IList<Vector2> IEditablePolygonSet.GetVertices(int polygonIndex) @@ -562,258 +258,12 @@ internal sealed class SubRegionMapPanel : IEditablePolygonSet return _subRegions[polygonIndex].Id; } - [MethodImpl(MethodImplOptions.NoInlining)] void IEditablePolygonSet.AddPolygon(IList<Vector2> vertices) { - List<EditableSubRegion> subRegions = _subRegions; - EditableSubRegion editableSubRegion = new EditableSubRegion(); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(7, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1281219605)); - defaultInterpolatedStringHandler.AppendFormatted(_subRegions.Count + 1); - editableSubRegion.Id = defaultInterpolatedStringHandler.ToStringAndClear(); - editableSubRegion.Vertices = new List<Vector2>(vertices); - subRegions.Add(editableSubRegion); - } - - static SubRegionMapPanel() - { - uint[] array = new uint[8]; - _206B_206B_206F_206E_206E_206C_200F_202B_206F_200F_202E_206B_200F_200C_206F_202A_202A_202A_202C_206E_202B_200D_202D_200E_202C_206E_200D_206E_206E_206F_200C_200F_206C_200B_200F_206A_200C_200E_206B_206C_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - SubRegionColors = array; - } - - static MapTextureService _200F_200B_200C_200B_202E_202E_200E_206D_206A_206F_202E_200E_206E_200D_202A_206E_206D_206A_202C_206E_202E_206E_202A_202A_202A_202E_200C_206F_200B_200C_200C_202C_206C_202A_202E_200C_202C_200C_200C_206D_202E(ITextureProvider P_0, IDataManager P_1, ILogger<MapTextureService> P_2) - { - return new MapTextureService(P_0, P_1, P_2); - } - - static MapPolygonEditor _206A_200C_202C_206D_202B_202E_206D_206E_202C_200E_202E_206A_206E_206E_202C_206F_200C_206D_206E_202E_206B_202A_206A_206B_202A_202E_202B_202D_200E_206D_200D_200D_202B_206C_206F_200D_200D_206D_202A_202E_202E(MapTextureService P_0) - { - return new MapPolygonEditor(P_0); - } - - static int _206D_202A_202C_200B_206B_200E_202E_202B_206A_206D_206A_206B_200E_206E_200E_202B_206D_202E_206B_206F_206D_202C_206C_206D_200C_206F_206A_200D_202C_202D_202A_202B_202A_200B_206F_206A_200C_206E_206B_200F_202E(MapPolygonEditor P_0) - { - return P_0.SelectedIndex; - } - - static void _206C_206E_202D_206A_206C_202D_200D_200E_202E_202C_200C_202A_206E_206E_202B_206B_206B_200B_206D_206D_202B_206F_206D_206D_202B_202C_206E_206B_200F_202B_202B_202A_206B_200E_206D_206F_206A_200F_200D_200C_202E(MapPolygonEditor P_0, int P_1) - { - P_0.SelectedIndex = P_1; - } - - static bool _200D_200C_206E_200F_206C_206F_200F_206F_206F_200E_200D_206C_202D_202A_200F_206A_200C_206D_206E_202B_200D_202A_200F_206C_202A_206A_202C_202A_202E_200E_206F_200C_202D_202D_206F_200F_202D_202A_200F_206D_202E(MapPolygonEditor P_0) - { - return P_0.IsDrawing; - } - - static uint _200F_200F_206E_206A_202A_206E_202D_206A_202E_200F_200E_202A_200E_206B_202A_202E_202A_200B_206E_202E_202E_206D_200D_202A_206D_206A_200C_200C_202D_206E_206F_202C_200E_202C_206C_200B_206D_206A_206D_200E_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static bool _202A_200C_200B_206A_206C_200E_202E_200D_206D_202E_200C_206C_202D_200D_206A_206F_206B_200B_202D_202B_202C_206E_206F_206B_206D_202B_206F_206D_200D_206D_202A_206D_200D_202A_206C_202B_200B_200F_200B_202D_202E(MapTextureService P_0, uint P_1) - { - return P_0.LoadForTerritory(P_1); - } - - static IPlayerCharacter _206D_202D_206A_200E_200E_200C_206C_202D_202D_202B_200C_206C_206D_202B_202B_206F_200D_202E_206D_202C_202E_206D_200F_200E_202B_206E_202E_202C_202E_206C_200C_200D_206C_202B_202B_200F_200B_202D_200F_202E_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static Vector3 _202B_202C_202B_206A_202A_206D_206E_200B_200C_206A_200C_202C_206E_200C_200D_202C_206F_202D_206A_202C_202A_206C_202E_206E_200B_200D_200B_200E_200E_200B_206F_206A_202C_202D_200F_206A_202D_206E_206B_206A_202E(IGameObject P_0) - { - return P_0.Position; - } - - static Vector2 _202D_206F_202C_202A_200E_202C_200E_206B_200F_200F_206D_202C_200E_200B_206A_202C_200B_200D_200F_202A_200F_206C_206F_202B_200B_202A_200D_206E_206F_206E_200E_202A_206B_200B_202A_206F_200D_202D_206A_202E_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static void _202E_202C_206E_206E_202D_200F_206B_202B_200F_200F_200C_200D_200D_206B_202E_200B_202C_200E_200C_200E_202A_200F_206E_206B_202C_206E_200C_206F_200E_200D_200E_200D_200B_206D_202D_202B_202A_200C_200B_200C_202E(MapPolygonEditor P_0, IEditablePolygonSet P_1, Vector3? P_2, Vector2? P_3) - { - P_0.Draw(P_1, P_2, P_3); - } - - static void _206B_202A_202A_202A_200F_206D_200C_202C_202A_206F_202B_202E_202B_202D_200B_202A_206B_202B_206F_202E_202E_200B_202C_206C_206A_202D_200D_200F_206E_200E_200D_202D_200E_202B_200B_200E_206F_206E_206E_202B_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static bool _206E_202B_202B_200E_202C_200D_200B_200F_202B_200C_200D_202A_202C_206B_206B_206C_206A_202B_200F_206A_206F_206D_206F_206B_206B_206F_206C_200B_206D_206B_202A_206C_206B_202B_202D_202D_200B_206B_206D_206E_202E(ImU8String P_0, Vector2 P_1) - { - return ImGui.Button(P_0, P_1); - } - - static void _200F_206E_202C_206B_206D_202D_200B_200C_200D_200F_200D_200B_200B_202E_206B_206A_206E_200B_200C_200F_206B_202B_202C_200F_202C_202E_202C_206C_206F_202C_206C_206D_200E_206F_206E_200D_202D_206C_200E_206E_202E(MapPolygonEditor P_0) - { - P_0.StartDrawing(); - } - - static void _202B_202E_206B_206A_206A_202B_206C_206B_200E_202D_202D_202A_206F_200F_200C_206D_200B_200B_202C_200B_206F_200D_200E_200E_200F_206F_202E_206A_200F_206F_206F_202A_200F_200D_200F_202C_206C_202C_206E_200C_202E() - { - ImGui.SameLine(); - } - - static void _202B_206D_206F_206D_200F_202B_202D_200B_206E_200D_206D_202A_202A_202A_202D_202A_206A_202C_200F_202E_206B_202D_200F_202A_202D_200B_200B_200C_206B_206B_206B_200D_206F_206C_202B_200D_200B_200E_202C_206F_202E(MapPolygonEditor P_0) - { - P_0.ResetView(); - } - - static CultureInfo _206B_206A_202D_206B_206C_206D_200D_206A_200F_206F_200E_206D_200F_202B_202B_202B_202B_200F_200B_206F_200E_202A_206E_200E_206D_202E_200F_206C_200B_206A_206F_206F_202C_202A_200B_206F_200C_200B_202E_206D_202E() - { - return CultureInfo.InvariantCulture; - } - - static void _206A_200C_206E_200C_206E_206D_200B_200F_200E_202D_206F_200D_206A_202A_206C_206F_200C_206E_206E_200F_202E_200B_200F_200B_202A_200C_202A_206C_206F_206F_202B_202A_202C_206C_200C_206F_202A_202D_206B_200D_202E(ImU8String P_0) - { - ImGui.SetClipboardText(P_0); - } - - static void _202C_200D_202D_202D_202B_206D_206D_202A_206D_200D_202E_202A_206A_200D_206C_206F_200B_206B_200B_202C_202E_200D_206F_200D_206A_202A_206F_200E_202B_206C_206B_202D_206E_202C_202D_202A_200E_206E_202B_202A_202E(float P_0) - { - ImGui.SetNextItemWidth(P_0); - } - - static bool _206F_202E_202E_206D_202D_202D_200C_206D_200E_200D_206E_206F_206E_200C_202A_202D_206D_202A_202B_200F_200D_206A_206F_200F_206A_206C_200B_200D_206A_206F_206A_202D_206F_206C_202C_206C_206C_200E_202C_206E_202E(ImU8String P_0, ref string P_1, int P_2, ImGuiInputTextFlags P_3, ImGui.ImGuiInputTextCallbackDelegate P_4) - { - return ImGui.InputText(P_0, ref P_1, P_2, P_3, P_4); - } - - static bool _202C_206C_200C_206D_202E_206E_206C_200E_200E_200F_206F_200F_200E_200B_206A_200B_206E_206B_206D_202A_202D_202D_202C_200E_200E_206E_200F_202C_202D_206A_202A_206E_206E_206A_200C_206A_200C_202A_200F_202D_202E(ImU8String P_0, ref bool P_1) - { - return ImGui.Checkbox(P_0, ref P_1); - } - - static ImRaii.DisabledDisposable _202E_202B_206C_206A_200B_202A_200E_202A_202C_202D_206B_202B_206B_200F_202A_206F_200C_206A_206C_200B_200E_202D_206F_206F_206B_206A_206A_200D_206F_206D_200E_206C_202A_206B_200C_206B_206A_206E_206B_200F_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static bool _200C_206B_202B_202E_202E_206E_206A_206F_200F_206A_200F_202D_202C_206E_200C_206B_206D_202B_206D_206F_206A_200F_200D_200E_202E_202D_206E_200B_206F_202D_206F_206C_202C_202E_206B_206D_206B_206B_206D_202E_202E(ImU8String P_0, ref float P_1, float P_2, float P_3, ImU8String P_4, ImGuiInputTextFlags P_5) - { - return ImGui.InputFloat(P_0, ref P_1, P_2, P_3, P_4, P_5); - } - - static void _200F_202B_202C_206E_200E_200C_202C_202B_200E_202C_202B_202A_202E_206F_206B_202D_202B_206E_200B_202A_202B_200F_206E_202E_206D_202C_200E_202B_202E_202B_206F_200F_202C_202D_202D_200C_200B_202C_206A_206A_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool _200C_200F_206E_200E_202E_202D_202C_206E_200B_206F_200B_202A_200F_206F_202B_202B_200C_206E_200C_206C_202A_206A_206D_206C_200D_206B_206A_206A_202B_200E_202E_202A_206C_206F_200E_202E_206F_206B_206E_200C_202E(ZoneSubRegionService P_0, uint P_1) - { - return P_0.HasSubRegions(P_1); - } - - static IReadOnlyList<SubRegionDefinition> _202D_202D_206B_200C_200E_206A_206F_206F_202E_200E_200E_206E_206B_200E_202A_200C_202D_206F_200F_202D_202C_202B_202E_206B_206D_202C_200F_206A_200E_202B_200E_206E_202D_206E_202B_206D_206B_202D_206A_206B_202E(ZoneSubRegionService P_0, uint P_1) - { - return P_0.GetSubRegions(P_1); - } - - static List<SubRegionVertex> _206F_206F_200E_202A_202C_200F_202C_202D_200E_202C_206C_202D_206A_200D_202B_206A_202C_202C_200E_200E_200F_200E_200B_206B_202A_202E_206E_202C_202A_206D_206B_206B_200C_202D_206E_206E_206C_200C_200E_206A_202E(SubRegionDefinition P_0) - { - return P_0.Vertices; - } - - static float _206B_206C_206D_200F_206C_206E_206B_206B_202B_206E_206B_206F_200E_202D_206F_206D_202D_206C_200B_200D_202A_202D_206D_200C_202C_200D_206D_200F_200D_202A_206E_206E_206C_206F_206C_202A_200B_206B_200E_206A_202E(SubRegionVertex P_0) - { - return P_0.X; - } - - static float _200B_206B_206B_206D_202C_200C_200F_200D_202B_200F_200B_206D_206B_202C_200F_200C_202D_202E_200D_200D_202C_202A_206F_202D_206A_202D_200D_202E_200B_206B_206C_200B_200C_206A_202A_202C_206D_202B_206F_202E_202E(SubRegionVertex P_0) - { - return P_0.Z; - } - - static string _200B_200E_200C_206D_200D_202D_202B_202D_200D_202D_200D_200C_206F_206E_206C_200E_202D_200F_202A_206C_202E_206F_200D_206F_200B_200F_206C_200E_206F_200C_206D_200E_202C_206E_202D_200C_202D_206D_206E_206F_202E(SubRegionDefinition P_0) - { - return P_0.Id; - } - - static string _206A_200C_200F_202B_206A_202E_200F_202B_200E_202A_202E_202C_200B_202B_202D_206B_206B_206F_202A_200C_202D_200D_200E_202A_206E_200E_206D_202E_206F_202C_202E_206D_202A_202A_202E_202A_206D_206C_200E_202E(SubRegionDefinition P_0) - { - return P_0.Comment; - } - - static float? _206A_200E_200C_202E_200F_206F_206A_202D_202A_206A_206E_200E_202A_200D_206B_206A_200D_200D_200F_200E_200E_200F_200F_200F_202B_200C_202E_206D_200D_202A_206A_206E_202D_202C_202E_200F_200C_206B_206A_200F_202E(SubRegionDefinition P_0) - { - return P_0.MinY; - } - - static float? _206E_200D_200B_206E_206B_200E_202E_206B_202C_206B_200B_200C_206A_206D_200F_202A_206C_200E_206B_206A_200B_206C_206A_206C_206D_206E_200D_206E_206B_206A_200D_200D_200C_200E_206E_206D_202A_206F_202B_206B_202E(SubRegionDefinition P_0) - { - return P_0.MaxY; - } - - static bool _202E_200F_206B_206F_200B_200D_206F_206F_206B_200E_200E_206F_202A_200C_202B_206E_206D_200E_200D_200F_206E_200B_206F_206F_200E_202A_200D_206A_206B_200D_200C_202E_202C_200C_202D_200E_202A_206E_200E_206C_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static TerritorySubRegions _202E_206E_206B_206F_206E_206F_202E_200B_206D_206C_200B_200F_206B_206C_206E_206D_206C_206B_200E_202B_206E_206A_200D_202C_206D_200F_206B_200E_202D_206D_202D_206F_206A_206E_200D_200D_200C_200D_200B_202A_202E() - { - return new TerritorySubRegions(); - } - - static SubRegionDefinition _200D_206B_202E_206A_200C_206D_206C_206E_206D_206D_202B_206A_206D_200C_200F_206D_202E_206B_200E_202D_202E_206E_200E_200F_200B_202D_200C_202C_200D_206E_202B_200C_200F_200E_206A_202E_200D_200E_206F_200D_202E() - { - return new SubRegionDefinition(); - } - - static void _200B_202E_202A_202E_202A_202C_200C_206D_200E_206E_206B_206C_200D_202C_206A_202B_202E_206E_202B_206C_202D_202E_200C_200B_202E_200E_202B_200E_200E_202B_206C_202D_202B_200B_202C_202D_202E_202A_202E_206C_202E(SubRegionDefinition P_0, string P_1) - { - P_0.Id = P_1; - } - - static bool _206B_202A_202A_206B_206A_206A_200F_206E_206C_206B_202A_200B_202C_200C_202D_202D_202D_206C_206C_202A_206E_200B_206B_202D_200C_202A_200D_206A_202E_206D_200E_200F_202D_206E_206F_200D_202D_202E_200B_202D_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static void _206B_202B_200E_200B_200C_200E_206B_202C_206A_202E_206A_200C_206D_202D_206A_202E_206F_200E_200F_206E_206F_202E_200F_206F_202C_200F_200C_206F_200C_206C_200F_200D_200B_200C_206B_206A_206E_206A_200C_206D_202E(SubRegionDefinition P_0, string P_1) - { - P_0.Comment = P_1; - } - - static void _206E_202D_206C_200E_200C_206A_206D_206F_202A_206A_202D_202D_202C_202B_206E_206D_206D_206F_206C_206C_200F_202B_206F_206D_206A_206F_200E_200D_206F_200D_206C_202B_202A_206F_200F_200F_202C_206C_200E_206D_202E(SubRegionDefinition P_0, float? P_1) - { - P_0.MinY = P_1; - } - - static void _202A_206E_200D_200C_200F_202D_202B_202E_206D_202C_202B_202E_206B_206B_206F_200C_202A_206F_202D_206A_200E_200D_206F_206E_202E_200B_200D_206C_206B_206C_206A_200F_202A_200E_206E_202C_200B_200C_206C_202E_202E(SubRegionDefinition P_0, float? P_1) - { - P_0.MaxY = P_1; - } - - static SubRegionVertex _202C_202E_206C_206D_200D_200F_206D_206D_206B_200D_200E_206E_206B_206F_202A_200F_206A_200D_202A_206C_200E_206C_200E_200E_206A_206D_206C_200F_206F_206F_202D_200F_202E_200D_200D_200D_202C_206A_206D_202D_202E() - { - return new SubRegionVertex(); - } - - static float _202A_206B_206D_202B_202C_200C_202C_202C_200E_206C_206F_206F_200C_202E_202A_202C_200D_206F_200E_202D_200B_202E_202B_206E_202C_206E_200C_206B_200F_200C_206A_202D_202C_200C_202A_206B_206D_200B_206D_202C_202E(float P_0, int P_1) - { - return MathF.Round(P_0, P_1); - } - - static void _206E_200B_202B_200E_206E_200C_206E_206E_200C_206B_202D_206E_206C_202C_202C_200C_200E_202D_206E_200D_206C_200D_202A_200F_202B_200D_202D_200B_200F_202C_200E_200F_206F_202E_206F_206D_206A_206D_206A_202C_202E(SubRegionVertex P_0, float P_1) - { - P_0.X = P_1; - } - - static void _200F_202C_202C_200C_202A_200B_206F_206E_202B_200D_206D_200B_200C_202D_206B_206B_202E_202C_206B_200C_202E_202C_202D_202D_206C_206E_200B_206A_202C_206C_206F_202A_206E_200F_202D_202B_202B_206E_200D_206A_202E(SubRegionVertex P_0, float P_1) - { - P_0.Z = P_1; - } - - static List<SubRegionDefinition> _200D_200F_202C_206F_200D_200E_206B_206D_206F_206D_202A_200B_200B_200C_200B_202E_202D_206E_206F_206E_200F_206A_200E_200C_200B_202A_202D_206E_202E_202E_202B_202B_200C_200B_202A_206C_202D_202A_200B_200F_202E(TerritorySubRegions P_0) - { - return P_0.SubRegions; - } - - static void _206B_206B_206F_206E_206E_206C_200F_202B_206F_200F_202E_206B_200F_200C_206F_202A_202A_202A_202C_206E_202B_200D_202D_200E_202C_206E_200D_206E_206E_206F_200C_200F_206C_200B_200F_206A_200C_200E_206B_206C_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); + _subRegions.Add(new EditableSubRegion + { + Id = $"region_{_subRegions.Count + 1}", + Vertices = new List<Vector2>(vertices) + }); } } diff --git a/Questionable/Questionable.Windows.Utils/CycleSelectionUi.cs b/Questionable/Questionable.Windows.Utils/CycleSelectionUi.cs index 33a7a81..7c7256c 100644 --- a/Questionable/Questionable.Windows.Utils/CycleSelectionUi.cs +++ b/Questionable/Questionable.Windows.Utils/CycleSelectionUi.cs @@ -12,166 +12,40 @@ internal static class CycleSelectionUi public static bool DrawRunningBanner(string text, Vector4 color, FontAwesomeIcon icon) { - ImDrawListPtr imDrawListPtr = _200C_200B_206E_206C_206D_200C_202C_202A_206C_200D_202A_200D_206D_206B_200E_206C_202C_206F_206B_202E_200E_202D_206A_206B_202C_200C_202D_202E_202C_206A_200F_202E_206D_206C_200D_200B_206A_206E_200B_202B_202E(); - Vector2 vector = _202B_200B_206D_200E_200F_202D_200D_206C_202B_202D_206F_206D_206C_206F_202E_202E_200B_200C_206E_200D_200E_200E_206D_200C_200C_200C_202D_206B_200F_202C_206C_206F_206D_206E_206E_202A_202A_202E_200D_206C_202E(); - float fontSize = _200E_206B_206F_200D_200B_200D_206D_206F_206E_206E_206B_200B_202B_206B_200C_206E_202E_206B_200B_200F_206E_206F_200F_206C_202C_206C_202E_202C_206B_206D_206C_202E_202E_206A_206A_200D_200C_200F_206C_202A_202E(); - string text2 = _202E_200F_202A_206C_202A_206F_202C_200B_200B_206E_202E_200F_200B_206E_202B_202E_206E_202A_200B_200F_200F_206E_206F_202E_200B_206D_202E_206E_200E_206C_202B_206F_206D_206C_202C_206F_206C_206B_200B_202C_202E(icon); - float x = _200D_202B_206E_206E_206F_202A_202A_206E_206E_202D_200F_206F_202A_200C_200F_202D_202C_202D_202A_200D_200F_202B_202C_202B_202B_200C_200C_206E_200C_200D_200E_202C_206E_202A_200C_206D_200D_202D_202A_200F_202E().X; - ImRaii.FontDisposable fontDisposable = _206A_202C_202A_200D_200D_200F_200E_206D_202D_200C_202C_200E_206E_206A_206A_202D_202C_206F_206E_202A_202A_206C_202C_206A_206C_202E_206A_206E_206B_206E_200D_206E_202A_200E_206E_206C_206C_200D_206C_202D_202E(_202D_206E_206E_200D_206E_206B_206A_206B_200B_206A_200D_200C_200F_206E_200C_200F_206B_200D_202D_206F_200C_200C_202A_202C_206C_200F_200B_206E_206D_202C_200D_206F_200F_200F_202A_202A_200C_206E_202E_200D_202E(), true); - Vector2 vector2; - try + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + float fontSize = ImGui.GetFontSize(); + string text2 = icon.ToIconString(); + float x = ImGui.GetContentRegionAvail().X; + Vector2 vector; + using (ImRaii.PushFont(UiBuilder.IconFont)) { - vector2 = _206E_202A_200D_200D_206C_200B_200B_202D_200F_200B_200B_200F_200C_206B_200B_202E_206B_200C_200C_206F_202C_206E_202D_202B_202D_206D_202D_202C_200D_206C_202B_202E_206F_200D_200E_206D_200B_202B_206E_206E_202E((ImU8String)text2, false, -1f); + vector = ImGui.CalcTextSize(text2); } - finally - { - int num = ((fontDisposable == null) ? 830623910 : 830623909); - while (true) - { - int num2 = num; - int num3 = 830623908; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 830623909; - break; - case 1: - _206F_206E_202A_206B_200B_202B_202B_202E_200F_206E_200B_206A_206B_206D_206A_206C_202E_202D_206A_202D_202C_206F_206C_202C_206F_206D_206A_206D_206A_202D_202D_202A_200F_206B_206D_202A_206F_202E_200D_202E_202E((IDisposable)fontDisposable); - num = 830623910; - break; - case 2: - goto end_IL_0069; - } - continue; - end_IL_0069: - break; - } - } - float num5 = _206A_202A_206E_202A_200B_200F_206E_206E_200D_202D_202D_200D_202D_200E_206E_206B_202A_206C_202D_200B_202B_200C_200C_202B_206E_200C_206D_200D_202A_200D_202A_200C_206C_202A_202B_206E_200C_200B_200E_206A_202E(); - float num6 = _200B_200F_200E_200F_202B_200D_202E_200D_200E_200B_202E_202D_200F_206A_206B_206A_206B_202C_202C_206C_206B_202E_200B_200E_202A_200D_206D_200C_206B_202A_202B_202D_206D_202D_206F_206D_206E_206A_206C_206C_202E(_200B_200F_200E_200F_202B_200D_202E_200D_200E_200B_202E_202D_200F_206A_206B_206A_206B_202C_202C_206C_206B_202E_200B_200E_202A_200D_206D_200C_206B_202A_202B_202D_206D_202D_206F_206D_206E_206A_206C_206C_202E(vector2.Y, _202C_200B_206A_200E_206E_202A_206C_200D_206A_202E_202C_202D_202B_206B_200C_206F_206E_200D_200D_206A_202C_202A_206A_202B_202A_206E_202D_200D_206B_200E_200F_202C_206C_200B_200D_206E_200F_206F_202C_206C_202E()), num5); - float num7 = 12f + num6 + 12f; - Vector2 pMin = vector; - Vector2 pMax = vector + new Vector2(x, num7); - float w = 0.08f + 0.04f * (0.5f + 0.5f * _200C_206C_202D_202B_206A_202C_202E_206F_202A_202D_206B_206D_202C_206D_206D_206F_206D_202D_202E_200D_200F_202E_200C_202C_200E_202B_200D_206E_202D_200C_200B_202E_206C_206F_200B_202A_200B_202D_206E_206F_202E((float)_206E_206C_200F_200C_206F_206B_200D_206F_202E_206D_206A_206B_206D_200E_200C_202E_202B_200D_202A_206E_202E_200D_202E_202E_202D_206D_206B_202A_200F_202A_202D_206A_206B_202D_206F_200F_202D_206F_200D_202C_202E() * 2f)); - Vector4 vector3 = color; - vector3.W = w; - Vector4 vector4 = vector3; - vector3 = color; - vector3.W = 0.25f; - Vector4 vector5 = vector3; - imDrawListPtr.AddRectFilled(pMin, pMax, _202C_206F_206E_206F_200D_206D_200F_202D_206A_202D_202B_206A_206C_206F_200C_200F_200C_202E_200D_206A_202C_206E_200C_200D_206E_206B_200F_202E_206F_206F_206A_202B_200E_206D_202A_206F_202A_200E_200B_206D_202E(vector4), 6f); - imDrawListPtr.AddRect(pMin, pMax, _202C_206F_206E_206F_200D_206D_200F_202D_206A_202D_202B_206A_206C_206F_200C_200F_200C_202E_200D_206A_202C_206E_200C_200D_206E_206B_200F_202E_206F_206F_206A_202B_200E_206D_202A_206F_202A_200E_200B_206D_202E(vector5), 6f, ImDrawFlags.None, 1f); - imDrawListPtr.AddText(pos: new Vector2(pMin.X + 12f, pMin.Y + 12f + (num6 - vector2.Y) / 2f), font: _202D_206E_206E_200D_206E_206B_206A_206B_200B_206A_200D_200C_200F_206E_200C_200F_206B_200D_202D_206F_200C_200C_202A_202C_206C_200F_200B_206E_206D_202C_200D_206F_200F_200F_202A_202A_200C_206E_202E_200D_202E(), fontSize: fontSize, col: _202C_206F_206E_206F_200D_206D_200F_202D_206A_202D_202B_206A_206C_206F_200C_200F_200C_202E_200D_206A_202C_206E_200C_200D_206E_206B_200F_202E_206F_206F_206A_202B_200E_206D_202A_206F_202A_200E_200B_206D_202E(color), text: text2); - float num8 = pMin.X + 12f + vector2.X + 6f; - float num9 = pMax.X - 12f - num5; - Vector2 pos = new Vector2(num8, pMin.Y + 12f + (num6 - _202C_200B_206A_200E_206E_202A_206C_200D_206A_202E_202C_202D_202B_206B_200C_206F_206E_200D_200D_206A_202C_202A_206A_202B_202A_206E_202D_200D_206B_200E_200F_202C_206C_200B_200D_206E_200F_206F_202C_206C_202E()) / 2f); - imDrawListPtr.AddText(pos, _202C_206F_206E_206F_200D_206D_200F_202D_206A_202D_202B_206A_206C_206F_200C_200F_200C_202E_200D_206A_202C_206E_200C_200D_206E_206B_200F_202E_206F_206F_206A_202B_200E_206D_202A_206F_202A_200E_200B_206D_202E(color), UiThemeUtils.TruncateToWidth(text, num9 - _200B_202C_206B_200C_202C_206D_200B_200F_200D_200E_200C_206D_202D_202C_206B_200F_206F_206E_206F_202B_206F_200F_206C_206C_206C_206C_206D_206B_200B_206C_206A_202E_202B_202E_200C_206E_202C_200B_206C_200C_202E().ItemSpacing.X - num8)); - _202A_200F_202D_202A_200F_202B_200D_206E_200D_202B_200C_202B_200C_200D_200F_200D_202A_200C_202A_206C_202A_200B_202A_200E_206D_200B_202D_202D_206B_202D_206C_200B_206E_202D_200F_202C_202B_202D_202D_200E_202E(new Vector2(x, num7)); - Vector2 vector6 = _202D_202B_206C_202D_202D_206A_206D_206D_200D_202B_202A_202B_200F_206B_206F_200C_202D_206B_202C_206D_206A_202C_202D_206A_206B_202B_202B_206E_200D_200F_202A_202E_200E_206C_200C_200B_202B_206D_202E_206F_202E(); - _206E_206D_206D_202C_200E_202A_200D_202E_206B_206E_206D_202A_200E_200F_200D_200E_200F_202C_206E_206C_202A_200C_200F_200E_206D_206C_200F_200F_200C_202C_200F_200B_202B_206A_200D_206F_202D_200E_206B_206C_202E(new Vector2(num9, pMin.Y + (num7 - num5) / 2f)); - bool result = UiThemeUtils.IconButton(FontAwesomeIcon.Stop, num5); - _202B_202E_200C_206F_206F_200D_200E_206B_200C_200D_206F_202D_200C_206E_202B_200F_202E_200D_206D_200C_206C_200E_202B_202C_200B_206E_206F_206F_202C_202E_206C_200D_200E_206D_200F_200D_206B_200E_200E_202D_202E(vector6); + float frameHeight = ImGui.GetFrameHeight(); + float num = MathF.Max(MathF.Max(vector.Y, ImGui.GetTextLineHeight()), frameHeight); + float num2 = 12f + num + 12f; + Vector2 pMin = cursorScreenPos; + Vector2 pMax = cursorScreenPos + new Vector2(x, num2); + float w = 0.08f + 0.04f * (0.5f + 0.5f * MathF.Sin((float)ImGui.GetTime() * 2f)); + Vector4 vector2 = color; + vector2.W = w; + Vector4 input = vector2; + vector2 = color; + vector2.W = 0.25f; + Vector4 input2 = vector2; + windowDrawList.AddRectFilled(pMin, pMax, ImGui.ColorConvertFloat4ToU32(input), 6f); + windowDrawList.AddRect(pMin, pMax, ImGui.ColorConvertFloat4ToU32(input2), 6f, ImDrawFlags.None, 1f); + windowDrawList.AddText(pos: new Vector2(pMin.X + 12f, pMin.Y + 12f + (num - vector.Y) / 2f), font: UiBuilder.IconFont, fontSize: fontSize, col: ImGui.ColorConvertFloat4ToU32(color), text: text2); + float num3 = pMin.X + 12f + vector.X + 6f; + float num4 = pMax.X - 12f - frameHeight; + Vector2 pos = new Vector2(num3, pMin.Y + 12f + (num - ImGui.GetTextLineHeight()) / 2f); + windowDrawList.AddText(pos, ImGui.ColorConvertFloat4ToU32(color), UiThemeUtils.TruncateToWidth(text, num4 - ImGui.GetStyle().ItemSpacing.X - num3)); + ImGui.Dummy(new Vector2(x, num2)); + Vector2 cursorPos = ImGui.GetCursorPos(); + ImGui.SetCursorScreenPos(new Vector2(num4, pMin.Y + (num2 - frameHeight) / 2f)); + bool result = UiThemeUtils.IconButton(FontAwesomeIcon.Stop, frameHeight); + ImGui.SetCursorPos(cursorPos); return result; } - - static ImDrawListPtr _200C_200B_206E_206C_206D_200C_202C_202A_206C_200D_202A_200D_206D_206B_200E_206C_202C_206F_206B_202E_200E_202D_206A_206B_202C_200C_202D_202E_202C_206A_200F_202E_206D_206C_200D_200B_206A_206E_200B_202B_202E() - { - return ImGui.GetWindowDrawList(); - } - - static Vector2 _202B_200B_206D_200E_200F_202D_200D_206C_202B_202D_206F_206D_206C_206F_202E_202E_200B_200C_206E_200D_200E_200E_206D_200C_200C_200C_202D_206B_200F_202C_206C_206F_206D_206E_206E_202A_202A_202E_200D_206C_202E() - { - return ImGui.GetCursorScreenPos(); - } - - static float _200E_206B_206F_200D_200B_200D_206D_206F_206E_206E_206B_200B_202B_206B_200C_206E_202E_206B_200B_200F_206E_206F_200F_206C_202C_206C_202E_202C_206B_206D_206C_202E_202E_206A_206A_200D_200C_200F_206C_202A_202E() - { - return ImGui.GetFontSize(); - } - - static string _202E_200F_202A_206C_202A_206F_202C_200B_200B_206E_202E_200F_200B_206E_202B_202E_206E_202A_200B_200F_200F_206E_206F_202E_200B_206D_202E_206E_200E_206C_202B_206F_206D_206C_202C_206F_206C_206B_200B_202C_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static Vector2 _200D_202B_206E_206E_206F_202A_202A_206E_206E_202D_200F_206F_202A_200C_200F_202D_202C_202D_202A_200D_200F_202B_202C_202B_202B_200C_200C_206E_200C_200D_200E_202C_206E_202A_200C_206D_200D_202D_202A_200F_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static ImFontPtr _202D_206E_206E_200D_206E_206B_206A_206B_200B_206A_200D_200C_200F_206E_200C_200F_206B_200D_202D_206F_200C_200C_202A_202C_206C_200F_200B_206E_206D_202C_200D_206F_200F_200F_202A_202A_200C_206E_202E_200D_202E() - { - return UiBuilder.IconFont; - } - - static ImRaii.FontDisposable _206A_202C_202A_200D_200D_200F_200E_206D_202D_200C_202C_200E_206E_206A_206A_202D_202C_206F_206E_202A_202A_206C_202C_206A_206C_202E_206A_206E_206B_206E_200D_206E_202A_200E_206E_206C_206C_200D_206C_202D_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static Vector2 _206E_202A_200D_200D_206C_200B_200B_202D_200F_200B_200B_200F_200C_206B_200B_202E_206B_200C_200C_206F_202C_206E_202D_202B_202D_206D_202D_202C_200D_206C_202B_202E_206F_200D_200E_206D_200B_202B_206E_206E_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static void _206F_206E_202A_206B_200B_202B_202B_202E_200F_206E_200B_206A_206B_206D_206A_206C_202E_202D_206A_202D_202C_206F_206C_202C_206F_206D_206A_206D_206A_202D_202D_202A_200F_206B_206D_202A_206F_202E_200D_202E_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static float _206A_202A_206E_202A_200B_200F_206E_206E_200D_202D_202D_200D_202D_200E_206E_206B_202A_206C_202D_200B_202B_200C_200C_202B_206E_200C_206D_200D_202A_200D_202A_200C_206C_202A_202B_206E_200C_200B_200E_206A_202E() - { - return ImGui.GetFrameHeight(); - } - - static float _202C_200B_206A_200E_206E_202A_206C_200D_206A_202E_202C_202D_202B_206B_200C_206F_206E_200D_200D_206A_202C_202A_206A_202B_202A_206E_202D_200D_206B_200E_200F_202C_206C_200B_200D_206E_200F_206F_202C_206C_202E() - { - return ImGui.GetTextLineHeight(); - } - - static float _200B_200F_200E_200F_202B_200D_202E_200D_200E_200B_202E_202D_200F_206A_206B_206A_206B_202C_202C_206C_206B_202E_200B_200E_202A_200D_206D_200C_206B_202A_202B_202D_206D_202D_206F_206D_206E_206A_206C_206C_202E(float P_0, float P_1) - { - return MathF.Max(P_0, P_1); - } - - static double _206E_206C_200F_200C_206F_206B_200D_206F_202E_206D_206A_206B_206D_200E_200C_202E_202B_200D_202A_206E_202E_200D_202E_202E_202D_206D_206B_202A_200F_202A_202D_206A_206B_202D_206F_200F_202D_206F_200D_202C_202E() - { - return ImGui.GetTime(); - } - - static float _200C_206C_202D_202B_206A_202C_202E_206F_202A_202D_206B_206D_202C_206D_206D_206F_206D_202D_202E_200D_200F_202E_200C_202C_200E_202B_200D_206E_202D_200C_200B_202E_206C_206F_200B_202A_200B_202D_206E_206F_202E(float P_0) - { - return MathF.Sin(P_0); - } - - static uint _202C_206F_206E_206F_200D_206D_200F_202D_206A_202D_202B_206A_206C_206F_200C_200F_200C_202E_200D_206A_202C_206E_200C_200D_206E_206B_200F_202E_206F_206F_206A_202B_200E_206D_202A_206F_202A_200E_200B_206D_202E(Vector4 P_0) - { - return ImGui.ColorConvertFloat4ToU32(P_0); - } - - static ImGuiStylePtr _200B_202C_206B_200C_202C_206D_200B_200F_200D_200E_200C_206D_202D_202C_206B_200F_206F_206E_206F_202B_206F_200F_206C_206C_206C_206C_206D_206B_200B_206C_206A_202E_202B_202E_200C_206E_202C_200B_206C_200C_202E() - { - return ImGui.GetStyle(); - } - - static void _202A_200F_202D_202A_200F_202B_200D_206E_200D_202B_200C_202B_200C_200D_200F_200D_202A_200C_202A_206C_202A_200B_202A_200E_206D_200B_202D_202D_206B_202D_206C_200B_206E_202D_200F_202C_202B_202D_202D_200E_202E(Vector2 P_0) - { - ImGui.Dummy(P_0); - } - - static Vector2 _202D_202B_206C_202D_202D_206A_206D_206D_200D_202B_202A_202B_200F_206B_206F_200C_202D_206B_202C_206D_206A_202C_202D_206A_206B_202B_202B_206E_200D_200F_202A_202E_200E_206C_200C_200B_202B_206D_202E_206F_202E() - { - return ImGui.GetCursorPos(); - } - - static void _206E_206D_206D_202C_200E_202A_200D_202E_206B_206E_206D_202A_200E_200F_200D_200E_200F_202C_206E_206C_202A_200C_200F_200E_206D_206C_200F_200F_200C_202C_200F_200B_202B_206A_200D_206F_202D_200E_206B_206C_202E(Vector2 P_0) - { - ImGui.SetCursorScreenPos(P_0); - } - - static void _202B_202E_200C_206F_206F_200D_200E_206B_200C_200D_206F_202D_200C_206E_202B_200F_202E_200D_206D_200C_206C_200E_202B_202C_200B_206E_206F_206F_202C_202E_206C_200D_200E_206D_200F_200D_206B_200E_200E_202D_202E(Vector2 P_0) - { - ImGui.SetCursorPos(P_0); - } } diff --git a/Questionable/Questionable.Windows.Utils/QuestSelector.cs b/Questionable/Questionable.Windows.Utils/QuestSelector.cs index 088d39f..690c738 100644 --- a/Questionable/Questionable.Windows.Utils/QuestSelector.cs +++ b/Questionable/Questionable.Windows.Utils/QuestSelector.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Interface.Utility.Raii; using Questionable.Controller; @@ -13,44 +12,6 @@ namespace Questionable.Windows.Utils; internal sealed class QuestSelector(QuestRegistry questRegistry) { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass16_0 - { - public ElementId elementId; - - public QuestSelector _003C_003E4__this; - - internal bool _003CDrawSelection_003Eb__2(Quest x) - { - int num = (_003C_003E4__this._003CDrawSelection_003Eg__SearchPredicate_007C16_1(x) ? 2013871135 : 2013871134); - while (true) - { - int num2 = num; - int num3 = 2013871135; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_004e; - case 0: - return true; - case 1: - return _202C_206E_200C_200E_200E_206B_206E_206E_202D_206D_206C_200C_206C_200B_206D_202A_206E_202B_202B_206D_200B_200F_200B_202B_200E_202C_206B_200B_200E_202D_200B_206B_202A_206C_206A_202B_202E_202C_206A_206D_202E(x.Id, elementId); - } - continue; - IL_004e: - num = 2013871134; - } - } - - static bool _202C_206E_200C_200E_200E_206B_206E_206E_202D_206D_206C_200C_206C_200B_206D_202A_206E_202B_202B_206D_200B_200F_200B_202B_200E_202C_206B_200B_200E_202D_200B_206B_202A_206C_206A_202B_202E_202C_206A_206D_202E(ElementId P_0, ElementId P_1) - { - return P_0 == P_1; - } - } - private string _searchString = string.Empty; private bool _comboJustOpened; @@ -61,211 +22,61 @@ internal sealed class QuestSelector(QuestRegistry questRegistry) public Action<Quest>? QuestSelected { private get; set; } - [MethodImpl(MethodImplOptions.NoInlining)] public void DrawSelection(float width = -1f) { - int num = ((QuestSelected != null) ? 1874284633 : 1874284628); - _003C_003Ec__DisplayClass16_0 _003C_003Ec__DisplayClass16_ = default(_003C_003Ec__DisplayClass16_0); - bool flag = default(bool); - Func<Quest, bool> predicate = default(Func<Quest, bool>); - IEnumerable<Quest> source = default(IEnumerable<Quest>); - Quest current = default(Quest); - while (true) + if (QuestSelected == null) { - int num2 = num; - int num3 = 1874284639; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + throw new InvalidOperationException("QuestSelected action must be set before drawing the quest selector."); + } + ImGui.SetNextItemWidth(width); + if (ImGui.BeginCombo("##QuestSelection", "Add Quest...", ImGuiComboFlags.HeightLarge)) + { + if (!_comboJustOpened) { - default: - continue; - case 0: - num = 1874284628; - continue; - case 11: - throw _206F_200F_202B_200B_206C_206A_202A_202C_200C_206B_206C_200E_206A_202C_200C_200B_200B_200B_202A_206B_202A_206E_202A_206B_202C_206A_206D_200D_200E_200B_206B_202A_206B_206F_206B_200B_202E_202E_206D_202B_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2013697626)); - case 8: - _003C_003Ec__DisplayClass16_ = new _003C_003Ec__DisplayClass16_0(); - _003C_003Ec__DisplayClass16_._003C_003E4__this = this; - num = ((!_202A_200E_200F_202C_206A_206A_202B_206C_202A_206C_206B_206F_202C_206D_206E_206B_202B_202C_202B_206B_206A_200F_206B_206B_202E_202B_200F_206C_202D_200E_202E_202C_200D_202A_200B_206B_200C_206E_202D_206E_202E(_searchString, ref _003C_003Ec__DisplayClass16_.elementId)) ? 1874284634 : 1874284630); - continue; - case 6: - _202D_206C_200B_206D_206C_200C_202E_202E_202A_202B_200D_200B_206B_206E_202A_200E_202A_200F_206D_206A_200F_202B_202E_202A_200D_202B_206F_206B_200E_202C_206C_200D_206A_200F_200D_206F_206F_202B_200E_200C_202E(width); - if (_206D_206D_200D_200F_200F_202A_200F_200D_206B_206A_202A_200B_200C_206B_202A_200D_202A_200F_206D_202D_202D_200F_200B_206E_200C_202B_202C_206F_206A_202D_202A_200D_202A_202B_206B_206D_200B_200C_206C_206F_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(195485891), (ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-316346152), ImGuiComboFlags.HeightLarge)) - { - num = 1874284637; - continue; - } - _comboJustOpened = false; - break; - case 7: - _202D_206C_200B_206D_206C_200C_202E_202E_202A_202B_200D_200B_206B_206E_202A_200E_202A_200F_206D_206A_200F_202B_202E_202A_200D_202B_206F_206B_200E_202C_206C_200D_206A_200F_200D_206F_206F_202B_200E_200C_202E(-1f); - flag = _200B_206D_202C_206B_200F_206D_200E_206D_206E_200C_200E_202A_202E_202D_200E_200F_200D_200C_200D_202D_206B_202E_200B_202C_206B_202A_206F_202B_202E_200C_206D_200C_202E_202D_206F_202B_202C_206F_202A_200D_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-898947001), (ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(952243447), ref _searchString, 256, ImGuiInputTextFlags.AutoSelectAll | ImGuiInputTextFlags.EnterReturnsTrue, (ImGui.ImGuiInputTextCallbackDelegate)null); - _202B_200E_206D_202B_200B_200D_206B_200E_206D_206C_200C_206C_206B_206D_206B_206A_202C_200C_200D_202C_200D_200E_200D_202C_202A_200F_202C_206A_200F_206A_202B_206A_200D_206B_206F_202E_200C_206E_200E_200E_202E(); - num = (_206C_200D_202B_200C_206E_200C_202E_200B_206F_206A_202E_200C_202E_202E_202B_200E_202C_202D_202A_202E_200D_206C_206E_200E_202B_200E_206B_202B_200E_202A_206E_202D_200C_202B_202C_206D_206F_206E_200B_200E_202E(_searchString) ? 1874284636 : 1874284631); - continue; - case 9: - predicate = _003C_003Ec__DisplayClass16_._003CDrawSelection_003Eb__2; - num = 1874284629; - continue; - case 5: - predicate = SearchPredicate; - num = 1874284629; - continue; - case 10: - source = questRegistry.AllQuests.Where((Quest x) => !(x.Id is SatisfactionSupplyNpcId)).Where(predicate); - num = 1874284635; - continue; - case 1: - _202A_206B_206F_206D_206F_206E_206B_206F_206A_206C_202B_200D_202D_206B_200F_200B_206C_202B_200B_206F_206C_202B_200B_202A_200B_202B_202C_200D_202E_206E_206A_202C_202E_200E_200E_202E_206C_200F_206E_202D_202E(); + ImGui.SetKeyboardFocusHere(); _comboJustOpened = true; - num = 1874284632; - continue; - case 2: - num = (_comboJustOpened ? 1874284632 : 1874284638); - continue; - case 3: - source = questRegistry.AllQuests.Where((Quest x) => DefaultPredicate?.Invoke(x) ?? true); - num = 1874284635; - continue; - case 4: + } + ImGui.SetNextItemWidth(-1f); + bool flag = ImGui.InputTextWithHint("##QuestSearch", "Search quests...", ref _searchString, 256, ImGuiInputTextFlags.AutoSelectAll | ImGuiInputTextFlags.EnterReturnsTrue); + ImGui.Separator(); + IEnumerable<Quest> source; + if (!string.IsNullOrEmpty(_searchString)) { - using (ImRaii.ChildDisposable childDisposable = _206F_206D_202A_200C_200C_202B_206F_206F_202C_200B_200C_206B_206D_200E_202E_202C_206F_206D_202E_200D_200C_202D_206B_206D_200B_202A_200D_202B_206C_206A_206C_206E_202A_206F_200B_206D_200B_206F_202D_202C_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1128503483), new Vector2(0f, 300f), false)) + source = Enumerable.Where(predicate: (!ElementId.TryFromString(_searchString, out ElementId elementId)) ? new Func<Quest, bool>(SearchPredicate) : ((Func<Quest, bool>)((Quest x) => SearchPredicate(x) || x.Id == elementId)), source: questRegistry.AllQuests); + } + else + { + source = questRegistry.AllQuests.Where((Quest x) => DefaultPredicate?.Invoke(x) ?? true); + } + using (ImRaii.ChildDisposable childDisposable = ImRaii.Child("##QuestScrollArea", new Vector2(0f, 300f), border: false)) + { + if ((bool)childDisposable) { - if ((bool)childDisposable) + foreach (Quest item in source.ToList()) { - using List<Quest>.Enumerator enumerator = source.ToList().GetEnumerator(); - num = 1014199270; - while (true) + if ((SuggestionPredicate == null || SuggestionPredicate(item)) && (ImGui.Selectable(item.Info.Name) || flag)) { - int num5 = num; - num3 = 1014199264; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) + QuestSelected(item); + _searchString = string.Empty; + if (flag) { - case 4: - QuestSelected(current); - _searchString = string.Empty; - num = ((!flag) ? 1014199270 : 1014199265); - break; - case 6: - num = (enumerator.MoveNext() ? 1014199267 : 1014199269); - break; - case 7: - num = ((!(_200E_202C_200D_200B_206E_200C_202A_202C_202A_206F_206E_200B_200F_206D_200B_200C_202D_202B_200C_202D_206E_202A_202A_202E_200D_200C_206C_206D_206A_200D_206C_200B_200F_202C_206B_206B_202A_202C_206D_202E((ImU8String)current.Info.Name, false, ImGuiSelectableFlags.None, default(Vector2)) || flag)) ? 1014199270 : 1014199268); - break; - case 1: - _206B_206F_206D_202B_206C_202D_206E_202C_200E_200D_206D_200E_206C_206D_206C_200E_202B_206D_206E_200C_200C_202D_200C_202C_200E_202A_202D_202A_206C_202B_206D_200F_200C_206B_200E_206B_202C_202A_200D_206F_202E(); + ImGui.CloseCurrentPopup(); flag = false; - num = 1014199270; - break; - case 0: - num = ((!SuggestionPredicate(current)) ? 1014199270 : 1014199271); - break; - case 2: - num = 1014199270; - break; - case 3: - current = enumerator.Current; - num = ((SuggestionPredicate == null) ? 1014199271 : 1014199264); - break; - case 5: - goto end_IL_0294; } - continue; - end_IL_0294: - break; } } } - _206D_202D_202E_206B_200C_202C_200C_206A_200C_200C_206D_202D_202D_206C_206A_200B_206E_206D_206A_206B_202E_202C_206F_206F_206D_200F_200E_206C_200B_202E_200E_206B_202A_202E_202C_200D_206E_200D_200E_200D_202E(); - break; } - } - break; + ImGui.EndCombo(); } - _202B_200E_200C_202C_206C_200B_202B_200B_200D_206A_200E_206C_206F_200E_202C_206D_200B_200E_200C_200B_206F_200D_202A_200E_200D_206E_202E_206B_202D_206B_206C_200E_206E_206B_200D_206C_206A_200D_200F_202B_202E(); + else + { + _comboJustOpened = false; + } + ImGui.Spacing(); bool SearchPredicate(Quest x) { - return _200F_200E_206A_206B_200D_206A_202A_206C_200B_206E_202A_200D_200B_200B_206C_202A_200B_202A_202B_206C_206B_200C_202B_200D_200C_200D_200E_200D_202C_200D_202E_202C_200B_200E_200F_200C_200B_200D_200C_200D_202E(x.Info.Name, _searchString, StringComparison.CurrentCultureIgnoreCase); + return x.Info.Name.Contains(_searchString, StringComparison.CurrentCultureIgnoreCase); } } - - [CompilerGenerated] - private bool _003CDrawSelection_003Eg__SearchPredicate_007C16_1(Quest x) - { - return _200F_200E_206A_206B_200D_206A_202A_206C_200B_206E_202A_200D_200B_200B_206C_202A_200B_202A_202B_206C_206B_200C_202B_200D_200C_200D_200E_200D_202C_200D_202E_202C_200B_200E_200F_200C_200B_200D_200C_200D_202E(x.Info.Name, _searchString, StringComparison.CurrentCultureIgnoreCase); - } - - static InvalidOperationException _206F_200F_202B_200B_206C_206A_202A_202C_200C_206B_206C_200E_206A_202C_200C_200B_200B_200B_202A_206B_202A_206E_202A_206B_202C_206A_206D_200D_200E_200B_206B_202A_206B_206F_206B_200B_202E_202E_206D_202B_202E(string P_0) - { - return new InvalidOperationException(P_0); - } - - static void _202D_206C_200B_206D_206C_200C_202E_202E_202A_202B_200D_200B_206B_206E_202A_200E_202A_200F_206D_206A_200F_202B_202E_202A_200D_202B_206F_206B_200E_202C_206C_200D_206A_200F_200D_206F_206F_202B_200E_200C_202E(float P_0) - { - ImGui.SetNextItemWidth(P_0); - } - - static bool _206D_206D_200D_200F_200F_202A_200F_200D_206B_206A_202A_200B_200C_206B_202A_200D_202A_200F_206D_202D_202D_200F_200B_206E_200C_202B_202C_206F_206A_202D_202A_200D_202A_202B_206B_206D_200B_200C_206C_206F_202E(ImU8String P_0, ImU8String P_1, ImGuiComboFlags P_2) - { - return ImGui.BeginCombo(P_0, P_1, P_2); - } - - static void _202A_206B_206F_206D_206F_206E_206B_206F_206A_206C_202B_200D_202D_206B_200F_200B_206C_202B_200B_206F_206C_202B_200B_202A_200B_202B_202C_200D_202E_206E_206A_202C_202E_200E_200E_202E_206C_200F_206E_202D_202E() - { - ImGui.SetKeyboardFocusHere(); - } - - static bool _200B_206D_202C_206B_200F_206D_200E_206D_206E_200C_200E_202A_202E_202D_200E_200F_200D_200C_200D_202D_206B_202E_200B_202C_206B_202A_206F_202B_202E_200C_206D_200C_202E_202D_206F_202B_202C_206F_202A_200D_202E(ImU8String P_0, ImU8String P_1, ref string P_2, int P_3, ImGuiInputTextFlags P_4, ImGui.ImGuiInputTextCallbackDelegate P_5) - { - return ImGui.InputTextWithHint(P_0, P_1, ref P_2, P_3, P_4, P_5); - } - - static void _202B_200E_206D_202B_200B_200D_206B_200E_206D_206C_200C_206C_206B_206D_206B_206A_202C_200C_200D_202C_200D_200E_200D_202C_202A_200F_202C_206A_200F_206A_202B_206A_200D_206B_206F_202E_200C_206E_200E_200E_202E() - { - ImGui.Separator(); - } - - static bool _206C_200D_202B_200C_206E_200C_202E_200B_206F_206A_202E_200C_202E_202E_202B_200E_202C_202D_202A_202E_200D_206C_206E_200E_202B_200E_206B_202B_200E_202A_206E_202D_200C_202B_202C_206D_206F_206E_200B_200E_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static bool _202A_200E_200F_202C_206A_206A_202B_206C_202A_206C_206B_206F_202C_206D_206E_206B_202B_202C_202B_206B_206A_200F_206B_206B_202E_202B_200F_206C_202D_200E_202E_202C_200D_202A_200B_206B_200C_206E_202D_206E_202E(string P_0, ref ElementId P_1) - { - return ElementId.TryFromString(P_0, out P_1); - } - - static ImRaii.ChildDisposable _206F_206D_202A_200C_200C_202B_206F_206F_202C_200B_200C_206B_206D_200E_202E_202C_206F_206D_202E_200D_200C_202D_206B_206D_200B_202A_200D_202B_206C_206A_206C_206E_202A_206F_200B_206D_200B_206F_202D_202C_202E(ImU8String P_0, Vector2 P_1, bool P_2) - { - return ImRaii.Child(P_0, P_1, P_2); - } - - static bool _200E_202C_200D_200B_206E_200C_202A_202C_202A_206F_206E_200B_200F_206D_200B_200C_202D_202B_200C_202D_206E_202A_202A_202E_200D_200C_206C_206D_206A_200D_206C_200B_200F_202C_206B_206B_202A_202C_206D_202E(ImU8String P_0, bool P_1, ImGuiSelectableFlags P_2, Vector2 P_3) - { - return ImGui.Selectable(P_0, P_1, P_2, P_3); - } - - static void _206B_206F_206D_202B_206C_202D_206E_202C_200E_200D_206D_200E_206C_206D_206C_200E_202B_206D_206E_200C_200C_202D_200C_202C_200E_202A_202D_202A_206C_202B_206D_200F_200C_206B_200E_206B_202C_202A_200D_206F_202E() - { - ImGui.CloseCurrentPopup(); - } - - static void _206D_202D_202E_206B_200C_202C_200C_206A_200C_200C_206D_202D_202D_206C_206A_200B_206E_206D_206A_206B_202E_202C_206F_206F_206D_200F_200E_206C_200B_202E_200E_206B_202A_202E_202C_200D_206E_200D_200E_200D_202E() - { - ImGui.EndCombo(); - } - - static void _202B_200E_200C_202C_206C_200B_202B_200B_200D_206A_200E_206C_206F_200E_202C_206D_200B_200E_200C_200B_206F_200D_202A_200E_200D_206E_202E_206B_202D_206B_206C_200E_206E_206B_200D_206C_206A_200D_200F_202B_202E() - { - ImGui.Spacing(); - } - - static bool _200F_200E_206A_206B_200D_206A_202A_206C_200B_206E_202A_200D_200B_200B_206C_202A_200B_202A_202B_206C_206B_200C_202B_200D_200C_200D_200E_200D_202C_200D_202E_202C_200B_200E_200F_200C_200B_200D_200C_200D_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); - } } diff --git a/Questionable/Questionable.Windows.Utils/ThrottledClipboard.cs b/Questionable/Questionable.Windows.Utils/ThrottledClipboard.cs index 914f15a..2a018fd 100644 --- a/Questionable/Questionable.Windows.Utils/ThrottledClipboard.cs +++ b/Questionable/Questionable.Windows.Utils/ThrottledClipboard.cs @@ -13,18 +13,13 @@ internal static class ThrottledClipboard public static string GetText() { - long num = _202B_202B_206C_206D_202C_202A_200E_202E_202A_202A_202C_206F_200C_200E_206F_202C_202E_206E_206C_206F_206A_202C_202A_202E_206C_206C_206D_202D_200B_202D_206A_202C_206E_206E_200B_206E_200E_200C_202E_200C_202E(); - if (num >= _nextReadAtMs) + long tickCount = Environment.TickCount64; + if (tickCount >= _nextReadAtMs) { - long num2 = 500L; - long num3 = num; - long num4 = num3 ^ num2; - long num5 = num3 & num2; - _nextReadAtMs = num4 + (num5 + num5); + _nextReadAtMs = tickCount + 500; try { - string text = _206C_206F_200D_202C_206F_206F_200C_202D_202D_206C_206B_200D_206D_206A_202C_202A_200B_206F_200F_202B_202A_202B_202A_206F_206F_200E_206C_202A_202B_206E_202A_200E_202C_206C_206C_206D_206D_200F_200D_200D_202E(); - _cachedText = ((text != null) ? _206D_206F_202D_206D_202D_202A_200F_202D_202D_202A_200E_200C_206B_202A_206C_202E_206C_206B_206F_202D_200F_200B_202B_202A_206D_200E_206C_200E_202D_206F_200B_200B_206D_202D_206B_200B_202B_206C_202E_202C_202E(text) : null) ?? string.Empty; + _cachedText = ImGui.GetClipboardText()?.Trim() ?? string.Empty; } catch (Exception) { @@ -33,19 +28,4 @@ internal static class ThrottledClipboard } return _cachedText; } - - static long _202B_202B_206C_206D_202C_202A_200E_202E_202A_202A_202C_206F_200C_200E_206F_202C_202E_206E_206C_206F_206A_202C_202A_202E_206C_206C_206D_202D_200B_202D_206A_202C_206E_206E_200B_206E_200E_200C_202E_200C_202E() - { - return Environment.TickCount64; - } - - static string _206C_206F_200D_202C_206F_206F_200C_202D_202D_206C_206B_200D_206D_206A_202C_202A_200B_206F_200F_202B_202A_202B_202A_206F_206F_200E_206C_202A_202B_206E_202A_200E_202C_206C_206C_206D_206D_200F_200D_200D_202E() - { - return ImGui.GetClipboardText(); - } - - static string _206D_206F_202D_206D_202D_202A_200F_202D_202D_202A_200E_200C_206B_202A_206C_202E_206C_206B_206F_202D_200F_200B_202B_202A_206D_200E_206C_200E_202D_206F_200B_200B_206D_202D_206B_200B_202B_206C_202E_202C_202E(string P_0) - { - return P_0.Trim(); - } } diff --git a/Questionable/Questionable.Windows/ChangelogWindow.cs b/Questionable/Questionable.Windows/ChangelogWindow.cs index 7bc699b..2f07990 100644 --- a/Questionable/Questionable.Windows/ChangelogWindow.cs +++ b/Questionable/Questionable.Windows/ChangelogWindow.cs @@ -1,9 +1,7 @@ using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; -using Dalamud.Configuration; using Dalamud.Interface; using Dalamud.Interface.Utility.Raii; using Dalamud.Interface.Windowing; @@ -30,69 +28,46 @@ internal sealed class ChangelogWindow : ThemedWindow private float _headerAnimationTime; - [MethodImpl(MethodImplOptions.NoInlining)] public ChangelogWindow(Configuration configuration, IDalamudPluginInterface pluginInterface) - : base(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1311522858), ImGuiWindowFlags.NoTitleBar) + : base("Questionable Changelog###QuestionableChangelog", ImGuiWindowFlags.NoTitleBar) { _configuration = configuration; _pluginInterface = pluginInterface; _headerComponent = new ChangelogHeaderComponent(); _footerComponent = new ChangelogFooterComponent(); - _206C_200E_202B_202B_206A_206B_200F_206C_200E_206B_200B_206E_200D_200B_206C_200E_206E_202C_200F_200E_202E_206D_202B_202E_206C_200C_206F_202A_206A_200D_200C_202E_202B_202D_202B_202C_202C_200F_202A_202C_202E((Vector2?)new Vector2(900f, 650f)); - _206C_202E_200B_200E_200E_200B_206A_200D_206B_200E_200B_202B_202D_202A_200F_206D_202C_200C_200D_206C_202E_200E_202B_202C_206D_202C_202A_202E_200E_206C_202B_200D_200B_200F_200E_200D_202D_206D_202A_202B_202E(ImGuiCond.FirstUseEver); - _206C_206A_206C_202C_206F_200C_200F_202A_202A_200E_206B_200B_202E_202B_202C_202D_202D_200C_202D_202D_200F_206E_206E_200E_200C_202A_206A_206E_200E_202B_202E_202E_200E_202B_206A_202C_200F_206D_202B_206A_202E((WindowSizeConstraints?)new WindowSizeConstraints + base.Size = new Vector2(900f, 650f); + base.SizeCondition = ImGuiCond.FirstUseEver; + base.SizeConstraints = new WindowSizeConstraints { MinimumSize = new Vector2(700f, 500f), MaximumSize = new Vector2(float.MaxValue, float.MaxValue) - }); + }; } public override void DrawContent() { _headerComponent.Draw(delegate(bool isOpen) { - int num = (isOpen ? (-1673190192) : (-1673190191)); - while (true) + if (!isOpen) { - int num2 = num; - int num3 = -1673190192; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -1673190191; - break; - case 0: - return; - case 1: - RequestClose(); - num = -1673190192; - break; - } + RequestClose(); } }); DrawChangelogEntries(); ChangelogFooterComponent.Draw(base.RequestClose); - ImDrawListPtr imDrawListPtr = _206D_200E_206F_202B_202E_200F_200D_200D_206A_200D_202D_202A_200B_206A_200B_200E_206B_206B_200B_202C_202E_206C_200C_206C_206A_206A_202D_200D_206B_206E_202A_200E_202B_200F_206F_206E_206E_202E_202B_202C_202E(); - Vector2 vector = _202B_200C_206F_200D_200D_206D_200C_202D_206B_202B_206B_206C_200C_200D_200F_200F_200D_202C_200C_206F_206B_202D_202B_202C_206C_200E_202E_206C_200F_206E_206E_206D_206B_206B_202B_200F_200C_206A_202D_200C_202E(); - Vector2 vector2 = _206A_202C_202A_200D_206B_202E_206C_206C_206B_200B_206A_206C_206A_200C_206B_206A_206E_206B_200E_206A_202C_202B_202A_202C_206A_200E_202B_200C_202E_202C_206E_206C_200E_206D_206B_200D_206E_206A_202E_202A_202E(); - Vector2 pMax = vector + vector2; + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 windowPos = ImGui.GetWindowPos(); + Vector2 windowSize = ImGui.GetWindowSize(); + Vector2 pMax = windowPos + windowSize; Vector4 accentColor = UiThemeUtils.AccentColor; accentColor.W = 0.3f; - imDrawListPtr.AddRect(vector, pMax, _200E_202D_206A_206A_206A_202D_202A_200C_202E_202E_202C_202C_206D_202C_206E_206C_202C_206D_206D_206E_202D_202D_206D_202A_202D_200D_200F_202E_200C_200F_202B_200D_202C_202D_206A_202B_202E_202A_202D_200D_202E(accentColor), 0f, ImDrawFlags.None, 2f); + windowDrawList.AddRect(windowPos, pMax, ImGui.ColorConvertFloat4ToU32(accentColor), 0f, ImDrawFlags.None, 2f); } public override void OnOpen() { - _202E_202E_200F_206C_200E_206F_200B_206C_200C_202C_202B_206B_202D_202D_206E_206D_202B_206A_202B_206D_202A_200D_200D_206B_200F_200F_202B_202C_206E_200D_200F_206F_206E_206A_202D_200E_202D_202E_200D_200E_202E(); - int windowOpenCount = _windowOpenCount; - int num = 1; - int num2 = windowOpenCount; - int num3 = num2 ^ num; - int num4 = num2 & num; - _windowOpenCount = num3 + (num4 + num4); + base.OnOpen(); + _windowOpenCount++; _hasSetInitialState = false; _headerAnimationTime = 0f; _headerComponent.Reset(); @@ -100,233 +75,57 @@ internal sealed class ChangelogWindow : ThemedWindow public override void OnClose() { - _206A_202A_200F_206C_206F_206C_206B_202E_200B_206D_206D_206D_202D_200E_206D_200F_200C_202E_206F_206F_200E_202A_202E_200F_200D_202A_202D_200B_200C_206E_202C_202A_206F_206E_202D_200C_200E_206A_200B_200F_202E(); + base.OnClose(); MarkAllAsRead(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawChangelogEntries() { - _headerAnimationTime += _202C_202E_202B_200D_202B_206C_200D_202C_200C_206A_202C_200E_202E_202D_200F_206F_200C_202D_206F_206D_200D_202C_206F_206B_206F_206A_206B_202C_202B_200F_206C_200C_206B_202A_206F_202C_200D_206E_200B_200C_202E().DeltaTime; - float num = _202A_206F_206A_202D_206E_200C_202C_202B_202E_206A_206E_206E_206C_202E_200D_200C_202B_200C_200D_200F_202E_206A_206E_202B_200D_206F_202B_202B_202C_202B_206B_200F_200B_202D_206F_200E_202E_202A_206B_206F_202E() + _202D_202C_202D_200E_202D_202E_202E_200F_202E_206C_202E_200E_200D_200C_206F_200C_202C_200B_202E_206B_200D_206E_202B_200C_200B_206B_202B_206C_206C_200C_206B_206E_202D_200E_200D_206B_202A_202D_202E_202E().ItemSpacing.Y * 2f; - using ImRaii.ChildDisposable childDisposable = _206E_206E_200F_200D_206D_206A_206C_202C_202B_200E_200E_206E_206C_206B_206C_202E_206A_206E_202B_200B_202B_200D_206A_206A_206B_206F_202C_206B_200B_206E_200F_202D_206F_206D_200E_200E_202E_206F_206E_206D_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(642885522), new Vector2(0f, 0f - num), false, ImGuiWindowFlags.NoScrollbar); - int num2 = ((!(!childDisposable)) ? 409981810 : 409981809); - List<ChangelogEntry> changelogs = default(List<ChangelogEntry>); - ChangelogEntry changelogEntry = default(ChangelogEntry); - while (true) + _headerAnimationTime += ImGui.GetIO().DeltaTime; + float num = ImGui.GetFrameHeightWithSpacing() + ImGui.GetStyle().ItemSpacing.Y * 2f; + using ImRaii.ChildDisposable childDisposable = ImRaii.Child("ChangelogScroll", new Vector2(0f, 0f - num), border: false, ImGuiWindowFlags.NoScrollbar); + if (!childDisposable) { - int num3 = num2; - int num4 = 409981808; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - goto IL_00ae; - case 1: - return; - case 2: - { - using ImRaii.ChildDisposable childDisposable2 = _206E_200B_200C_200E_200D_206B_202D_206D_200E_202C_206A_200C_206C_206A_206F_206A_202A_206C_200F_206B_206F_202D_206D_202E_200D_206A_200B_206C_206C_200D_200C_200F_202C_202B_202A_200F_202E_206C_206C_202D_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(404777559), Vector2.Zero, false); - num2 = ((!(!childDisposable2)) ? 888384850 : 888384849); - while (true) - { - int num6 = num2; - num4 = 888384848; - num5 = num6; - int num7 = num5 + num4; - int num8 = num5 & num4; - switch (num7 - (num8 + num8)) - { - case 2: - changelogs = ChangelogData.Changelogs; - changelogEntry = changelogs.FirstOrDefault(); - num2 = ((changelogs.Count != 0) ? 888384848 : 888384852); - break; - case 4: - _200B_202A_206E_206E_206E_202D_200F_206A_206F_206E_206F_206B_200F_206A_206F_206A_200C_200D_202D_206E_200D_200B_200F_206C_200C_200B_206C_202E_206D_200C_206F_202A_206F_206E_206E_206A_206C_200D_202A_206B_202E(_206E_206B_206A_200F_206E_200F_206E_206E_206D_202E_206E_202A_206B_200D_202B_206D_202B_202C_200E_202D_200E_206E_206D_200C_206A_200F_200D_206F_200C_200B_202D_206C_202A_206C_206B_206D_202D_206A_200B_206A_202E() + 40f); - UiThemeUtils.EmptyState(FontAwesomeIcon.FileAlt, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-823052972)); - return; - case 3: - num2 = 888384849; - break; - case 1: - return; - case 0: - { - ChangelogEntryComponent changelogEntryComponent = new ChangelogEntryComponent(_configuration, _windowOpenCount, _headerAnimationTime); - using (List<ChangelogEntry>.Enumerator enumerator = changelogs.GetEnumerator()) - { - num2 = -839072908; - while (true) - { - int num9 = num2; - num4 = -839072905; - num5 = num9; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - num2 = -839072908; - break; - case 1: - { - ChangelogEntry current = enumerator.Current; - changelogEntryComponent.Draw(current, current == changelogEntry, _hasSetInitialState); - Vector2 vector = _206C_200B_200C_200E_200E_200F_202B_202B_200D_206D_206B_200C_200F_202B_202C_206C_206A_202D_200E_206E_202D_200B_202E_206F_202C_206D_206A_200F_200E_206D_206E_206D_202B_200E_206D_206E_200C_202D_206D_202C_202E(); - float num10 = _200E_200D_202D_206F_202B_202B_202C_202B_202B_202C_200D_200E_200D_200C_206B_202C_202C_206D_200B_206D_200B_200C_202A_202A_200F_200D_206D_202B_202C_206A_202A_206C_202A_200B_202C_206C_200C_202A_202D_206C_202E().X * 0.5f; - float num11 = (_200E_200D_202D_206F_202B_202B_202C_202B_202B_202C_200D_200E_200D_200C_206B_202C_202C_206D_200B_206D_200B_200C_202A_202A_200F_200D_206D_202B_202C_206A_202A_206C_202A_200B_202C_206C_200C_202A_202D_206C_202E().X - num10) * 0.5f; - ImDrawListPtr imDrawListPtr = _206D_200E_206F_202B_202E_200F_200D_200D_206A_200D_202D_202A_200B_206A_200B_200E_206B_206B_200B_202C_202E_206C_200C_206C_206A_206A_202D_200D_206B_206E_202A_200E_202B_200F_206F_206E_206E_202E_202B_202C_202E(); - Vector2 p = vector + new Vector2(num11, 0f); - Vector2 p2 = vector + new Vector2(num11 + num10, 0f); - Vector4 accentColor = UiThemeUtils.AccentColor; - accentColor.W = 0.1f; - imDrawListPtr.AddLine(p, p2, _200E_202D_206A_206A_206A_202D_202A_200C_202E_202E_202C_202C_206D_202C_206E_206C_202C_206D_206D_206E_202D_202D_206D_202A_202D_200D_200F_202E_200C_200F_202B_200D_202C_202D_206A_202B_202E_202A_202D_200D_202E(accentColor), 1f); - _200B_202A_206E_206E_206E_202D_200F_206A_206F_206E_206F_206B_200F_206A_206F_206A_200C_200D_202D_206E_200D_200B_200F_206C_200C_200B_206C_202E_206D_200C_206F_202A_206F_206E_206E_206A_206C_200D_202A_206B_202E(_206E_206B_206A_200F_206E_200F_206E_206E_206D_202E_206E_202A_206B_200D_202B_206D_202B_202C_200E_202D_200E_206E_206D_200C_206A_200F_200D_206F_200C_200B_202D_206C_202A_206C_206B_206D_202D_206A_200B_206A_202E() + 4f); - num2 = -839072908; - break; - } - case 3: - num2 = (enumerator.MoveNext() ? (-839072906) : (-839072905)); - break; - case 0: - goto end_IL_01f0; - } - continue; - end_IL_01f0: - break; - } - } - _hasSetInitialState = true; - return; - } - } - } - } - } - continue; - IL_00ae: - num2 = 409981809; + return; } + using ImRaii.ChildDisposable childDisposable2 = ImRaii.Child("ChangelogScrollInner", Vector2.Zero, border: false); + if (!childDisposable2) + { + return; + } + List<ChangelogEntry> changelogs = ChangelogData.Changelogs; + ChangelogEntry changelogEntry = changelogs.FirstOrDefault(); + if (changelogs.Count == 0) + { + ImGui.SetCursorPosY(ImGui.GetCursorPosY() + 40f); + UiThemeUtils.EmptyState(FontAwesomeIcon.FileAlt, "No changelog entries available."); + return; + } + ChangelogEntryComponent changelogEntryComponent = new ChangelogEntryComponent(_configuration, _windowOpenCount, _headerAnimationTime); + foreach (ChangelogEntry item in changelogs) + { + changelogEntryComponent.Draw(item, item == changelogEntry, _hasSetInitialState); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + float num2 = ImGui.GetContentRegionAvail().X * 0.5f; + float num3 = (ImGui.GetContentRegionAvail().X - num2) * 0.5f; + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 p = cursorScreenPos + new Vector2(num3, 0f); + Vector2 p2 = cursorScreenPos + new Vector2(num3 + num2, 0f); + Vector4 accentColor = UiThemeUtils.AccentColor; + accentColor.W = 0.1f; + windowDrawList.AddLine(p, p2, ImGui.ColorConvertFloat4ToU32(accentColor), 1f); + ImGui.SetCursorPosY(ImGui.GetCursorPosY() + 4f); + } + _hasSetInitialState = true; } private void MarkAllAsRead() { string text = ChangelogData.Changelogs.FirstOrDefault()?.Version; - int num = ((text == null) ? 746834927 : 746834924); - while (true) + if (text != null) { - int num2 = num; - int num3 = 746834926; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return; - case 2: - _configuration.LastViewedChangelogVersion = text; - _202E_202B_200E_202C_200E_202B_200E_202A_206A_202B_206E_206E_200F_206A_202B_200B_202B_206A_206A_202C_202D_202E_200D_202C_202C_200D_202E_206A_206B_202A_202C_206C_206B_200B_206F_206F_202B_200F_202B_206E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - num = 746834927; - break; - case 0: - num = 746834924; - break; - } + _configuration.LastViewedChangelogVersion = text; + _pluginInterface.SavePluginConfig(_configuration); } } - - void _206C_200E_202B_202B_206A_206B_200F_206C_200E_206B_200B_206E_200D_200B_206C_200E_206E_202C_200F_200E_202E_206D_202B_202E_206C_200C_206F_202A_206A_200D_200C_202E_202B_202D_202B_202C_202C_200F_202A_202C_202E(Vector2? P_0) - { - base.Size = P_0; - } - - void _206C_202E_200B_200E_200E_200B_206A_200D_206B_200E_200B_202B_202D_202A_200F_206D_202C_200C_200D_206C_202E_200E_202B_202C_206D_202C_202A_202E_200E_206C_202B_200D_200B_200F_200E_200D_202D_206D_202A_202B_202E(ImGuiCond P_0) - { - base.SizeCondition = P_0; - } - - void _206C_206A_206C_202C_206F_200C_200F_202A_202A_200E_206B_200B_202E_202B_202C_202D_202D_200C_202D_202D_200F_206E_206E_200E_200C_202A_206A_206E_200E_202B_202E_202E_200E_202B_206A_202C_200F_206D_202B_206A_202E(WindowSizeConstraints? P_0) - { - base.SizeConstraints = P_0; - } - - static ImDrawListPtr _206D_200E_206F_202B_202E_200F_200D_200D_206A_200D_202D_202A_200B_206A_200B_200E_206B_206B_200B_202C_202E_206C_200C_206C_206A_206A_202D_200D_206B_206E_202A_200E_202B_200F_206F_206E_206E_202E_202B_202C_202E() - { - return ImGui.GetWindowDrawList(); - } - - static Vector2 _202B_200C_206F_200D_200D_206D_200C_202D_206B_202B_206B_206C_200C_200D_200F_200F_200D_202C_200C_206F_206B_202D_202B_202C_206C_200E_202E_206C_200F_206E_206E_206D_206B_206B_202B_200F_200C_206A_202D_200C_202E() - { - return ImGui.GetWindowPos(); - } - - static Vector2 _206A_202C_202A_200D_206B_202E_206C_206C_206B_200B_206A_206C_206A_200C_206B_206A_206E_206B_200E_206A_202C_202B_202A_202C_206A_200E_202B_200C_202E_202C_206E_206C_200E_206D_206B_200D_206E_206A_202E_202A_202E() - { - return ImGui.GetWindowSize(); - } - - static uint _200E_202D_206A_206A_206A_202D_202A_200C_202E_202E_202C_202C_206D_202C_206E_206C_202C_206D_206D_206E_202D_202D_206D_202A_202D_200D_200F_202E_200C_200F_202B_200D_202C_202D_206A_202B_202E_202A_202D_200D_202E(Vector4 P_0) - { - return ImGui.ColorConvertFloat4ToU32(P_0); - } - - void _202E_202E_200F_206C_200E_206F_200B_206C_200C_202C_202B_206B_202D_202D_206E_206D_202B_206A_202B_206D_202A_200D_200D_206B_200F_200F_202B_202C_206E_200D_200F_206F_206E_206A_202D_200E_202D_202E_200D_200E_202E() - { - base.OnOpen(); - } - - void _206A_202A_200F_206C_206F_206C_206B_202E_200B_206D_206D_206D_202D_200E_206D_200F_200C_202E_206F_206F_200E_202A_202E_200F_200D_202A_202D_200B_200C_206E_202C_202A_206F_206E_202D_200C_200E_206A_200B_200F_202E() - { - base.OnClose(); - } - - static ImGuiIOPtr _202C_202E_202B_200D_202B_206C_200D_202C_200C_206A_202C_200E_202E_202D_200F_206F_200C_202D_206F_206D_200D_202C_206F_206B_206F_206A_206B_202C_202B_200F_206C_200C_206B_202A_206F_202C_200D_206E_200B_200C_202E() - { - return ImGui.GetIO(); - } - - static float _202A_206F_206A_202D_206E_200C_202C_202B_202E_206A_206E_206E_206C_202E_200D_200C_202B_200C_200D_200F_202E_206A_206E_202B_200D_206F_202B_202B_202C_202B_206B_200F_200B_202D_206F_200E_202E_202A_206B_206F_202E() - { - return ImGui.GetFrameHeightWithSpacing(); - } - - static ImGuiStylePtr _202D_202C_202D_200E_202D_202E_202E_200F_202E_206C_202E_200E_200D_200C_206F_200C_202C_200B_202E_206B_200D_206E_202B_200C_200B_206B_202B_206C_206C_200C_206B_206E_202D_200E_200D_206B_202A_202D_202E_202E() - { - return ImGui.GetStyle(); - } - - static ImRaii.ChildDisposable _206E_206E_200F_200D_206D_206A_206C_202C_202B_200E_200E_206E_206C_206B_206C_202E_206A_206E_202B_200B_202B_200D_206A_206A_206B_206F_202C_206B_200B_206E_200F_202D_206F_206D_200E_200E_202E_206F_206E_206D_202E(ImU8String P_0, Vector2 P_1, bool P_2, ImGuiWindowFlags P_3) - { - return ImRaii.Child(P_0, P_1, P_2, P_3); - } - - static ImRaii.ChildDisposable _206E_200B_200C_200E_200D_206B_202D_206D_200E_202C_206A_200C_206C_206A_206F_206A_202A_206C_200F_206B_206F_202D_206D_202E_200D_206A_200B_206C_206C_200D_200C_200F_202C_202B_202A_200F_202E_206C_206C_202D_202E(ImU8String P_0, Vector2 P_1, bool P_2) - { - return ImRaii.Child(P_0, P_1, P_2); - } - - static float _206E_206B_206A_200F_206E_200F_206E_206E_206D_202E_206E_202A_206B_200D_202B_206D_202B_202C_200E_202D_200E_206E_206D_200C_206A_200F_200D_206F_200C_200B_202D_206C_202A_206C_206B_206D_202D_206A_200B_206A_202E() - { - return ImGui.GetCursorPosY(); - } - - static void _200B_202A_206E_206E_206E_202D_200F_206A_206F_206E_206F_206B_200F_206A_206F_206A_200C_200D_202D_206E_200D_200B_200F_206C_200C_200B_206C_202E_206D_200C_206F_202A_206F_206E_206E_206A_206C_200D_202A_206B_202E(float P_0) - { - ImGui.SetCursorPosY(P_0); - } - - static Vector2 _206C_200B_200C_200E_200E_200F_202B_202B_200D_206D_206B_200C_200F_202B_202C_206C_206A_202D_200E_206E_202D_200B_202E_206F_202C_206D_206A_200F_200E_206D_206E_206D_202B_200E_206D_206E_200C_202D_206D_202C_202E() - { - return ImGui.GetCursorScreenPos(); - } - - static Vector2 _200E_200D_202D_206F_202B_202B_202C_202B_202B_202C_200D_200E_200D_200C_206B_202C_202C_206D_200B_206D_200B_200C_202A_202A_200F_200D_206D_202B_202C_206A_202A_206C_202A_200B_202C_206C_200C_202A_202D_206C_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static void _202E_202B_200E_202C_200E_202B_200E_202A_206A_202B_206E_206E_200F_206A_202B_200B_202B_206A_206A_202C_202D_202E_200D_202C_202C_200D_202E_206A_206B_202A_202C_206C_206B_200B_206F_206F_202B_200F_202B_206E_202E(IDalamudPluginInterface P_0, IPluginConfiguration P_1) - { - P_0.SavePluginConfig(P_1); - } } diff --git a/Questionable/Questionable.Windows/ConfigWindow.cs b/Questionable/Questionable.Windows/ConfigWindow.cs index 4232ae5..da64b36 100644 --- a/Questionable/Questionable.Windows/ConfigWindow.cs +++ b/Questionable/Questionable.Windows/ConfigWindow.cs @@ -1,10 +1,6 @@ -using System; -using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; -using Dalamud.Configuration; using Dalamud.Interface; using Dalamud.Interface.Utility; using Dalamud.Interface.Utility.Raii; @@ -17,56 +13,33 @@ namespace Questionable.Windows; internal sealed class ConfigWindow : ThemedWindow, IPersistableWindowConfig { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - internal IEnumerable<SidebarNav.Item> _003C_002Ecctor_003Eb__11_0(SidebarNav.Group g) - { - return g.Items; - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal bool _003C_002Ecctor_003Eb__11_1(SidebarNav.Item i) - { - return _200C_206E_202B_206D_200C_202E_206F_206D_206A_202D_206A_206E_200E_206F_202A_200E_202A_206D_200B_206C_202C_206A_202A_202D_200D_206F_202C_200C_202D_200E_202C_206F_200C_206A_202A_202A_202C_202B_206B_202E_202E(i.Label, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1362895392)); - } - - static bool _200C_206E_202B_206D_200C_202E_206F_206D_206A_202D_206A_206E_200E_206F_202A_200E_202A_206D_200B_206C_202C_206A_202A_202D_200D_206F_202C_200C_202D_200E_202C_206F_200C_206A_202A_202A_202C_202B_206B_202E_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - } - private static readonly SidebarNav.Group[] NavGroups = new SidebarNav.Group[4] { - new SidebarNav.Group(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1422580524), new SidebarNav.Item[3] + new SidebarNav.Group("Gameplay", new SidebarNav.Item[3] { - new SidebarNav.Item(FontAwesomeIcon.Cog, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-481549718)), - new SidebarNav.Item(FontAwesomeIcon.BookOpen, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1895196101)), - new SidebarNav.Item(FontAwesomeIcon.Route, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1010966512)) + new SidebarNav.Item(FontAwesomeIcon.Cog, "General"), + new SidebarNav.Item(FontAwesomeIcon.BookOpen, "Quests"), + new SidebarNav.Item(FontAwesomeIcon.Route, "Navigation") }), - new SidebarNav.Group(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2007815205), new SidebarNav.Item[2] + new SidebarNav.Group("Duties", new SidebarNav.Item[2] { - new SidebarNav.Item(FontAwesomeIcon.Users, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2085542564)), - new SidebarNav.Item(FontAwesomeIcon.FistRaised, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-131828231)) + new SidebarNav.Item(FontAwesomeIcon.Users, "Group Duties"), + new SidebarNav.Item(FontAwesomeIcon.FistRaised, "Quest Battles") }), - new SidebarNav.Group(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1779953204), new SidebarNav.Item[2] + new SidebarNav.Group("Control", new SidebarNav.Item[2] { - new SidebarNav.Item(FontAwesomeIcon.StopCircle, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(560121957)), - new SidebarNav.Item(FontAwesomeIcon.Ban, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1236596742)) + new SidebarNav.Item(FontAwesomeIcon.StopCircle, "Stop"), + new SidebarNav.Item(FontAwesomeIcon.Ban, "Blacklist") }), - new SidebarNav.Group(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1592827330), new SidebarNav.Item[3] + new SidebarNav.Group("System", new SidebarNav.Item[3] { - new SidebarNav.Item(FontAwesomeIcon.Plug, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1534290435)), - new SidebarNav.Item(FontAwesomeIcon.Bell, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-245509244)), - new SidebarNav.Item(FontAwesomeIcon.Flask, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(118104062)) + new SidebarNav.Item(FontAwesomeIcon.Plug, "Dependencies"), + new SidebarNav.Item(FontAwesomeIcon.Bell, "Notifications"), + new SidebarNav.Item(FontAwesomeIcon.Flask, "Advanced") }) }; - private static readonly int DependenciesPageIndex = NavGroups.SelectMany((SidebarNav.Group g) => g.Items).ToList().FindIndex([MethodImpl(MethodImplOptions.NoInlining)] (SidebarNav.Item i) => _003C_003Ec._200C_206E_202B_206D_200C_202E_206F_206D_206A_202D_206A_206E_200E_206F_202A_200E_202A_206D_200B_206C_202C_206A_202A_202D_200D_206F_202C_200C_202D_200E_202C_206F_200C_206A_202A_202A_202C_202B_206B_202E_202E(i.Label, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1362895392))); + private static readonly int DependenciesPageIndex = NavGroups.SelectMany((SidebarNav.Group g) => g.Items).ToList().FindIndex((SidebarNav.Item i) => i.Label == "Dependencies"); private readonly IDalamudPluginInterface _pluginInterface; @@ -78,16 +51,15 @@ internal sealed class ConfigWindow : ThemedWindow, IPersistableWindowConfig public WindowConfig WindowConfig => _configuration.ConfigWindowConfig; - [MethodImpl(MethodImplOptions.NoInlining)] public ConfigWindow(IDalamudPluginInterface pluginInterface, GeneralConfigComponent generalConfigComponent, QuestsConfigComponent questsConfigComponent, PluginConfigComponent pluginConfigComponent, DutyConfigComponent dutyConfigComponent, SinglePlayerDutyConfigComponent singlePlayerDutyConfigComponent, StopConditionComponent stopConditionComponent, BlacklistConfigComponent blacklistConfigComponent, NavigationConfigComponent navigationConfigComponent, NotificationConfigComponent notificationConfigComponent, DebugConfigComponent debugConfigComponent, Configuration configuration) - : base(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1087761369)) + : base("Config - Questionable###QuestionableConfig") { - _202B_206C_206E_202A_200F_206B_206A_200D_206B_202E_202B_202B_200C_200F_200B_202C_202B_206B_202C_202A_202A_202B_200B_200D_206C_202E_206D_206A_200F_202D_202C_200D_200B_202C_200C_206E_206A_202B_202E_202D_202E((Vector2?)new Vector2(760f, 620f)); - _202B_202E_206A_200B_200D_206E_206F_200E_206C_202A_202C_206F_202E_206F_202D_202B_206F_206C_200D_206D_202C_206E_206E_202A_200B_202E_202B_206F_200C_206C_202C_206B_206A_206F_206E_200F_202B_206A_202A_202E(ImGuiCond.FirstUseEver); - _200C_206E_200C_200D_200C_200E_202E_202D_200F_206B_200B_202A_200E_206E_206E_202A_200F_202D_200B_202E_206C_202A_200F_206B_206D_202A_200F_200B_202B_202C_200E_200C_202D_202C_200F_202E_202B_206E_202A_200E_202E((WindowSizeConstraints?)new WindowSizeConstraints + base.Size = new Vector2(760f, 620f); + base.SizeCondition = ImGuiCond.FirstUseEver; + base.SizeConstraints = new WindowSizeConstraints { MinimumSize = new Vector2(640f, 480f) - }); + }; _pluginInterface = pluginInterface; _configuration = configuration; _pages = new ConfigComponent[10] { generalConfigComponent, questsConfigComponent, navigationConfigComponent, dutyConfigComponent, singlePlayerDutyConfigComponent, stopConditionComponent, blacklistConfigComponent, pluginConfigComponent, notificationConfigComponent, debugConfigComponent }; @@ -97,95 +69,22 @@ internal sealed class ConfigWindow : ThemedWindow, IPersistableWindowConfig }; } - [MethodImpl(MethodImplOptions.NoInlining)] public override void DrawContent() { _selectedTab = SidebarNav.Draw(NavGroups, _selectedTab); - using ImRaii.ChildDisposable childDisposable = _200B_202B_200C_200D_202D_200C_202D_200E_200F_200C_202B_202E_202A_200E_206A_200D_200F_202B_206B_206D_206C_202D_206B_206A_202A_200B_200B_206C_206B_200F_202D_200E_202D_200F_200F_202A_206A_202C_202A_202B_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-930802894), Vector2.Zero); - if (!(bool)childDisposable) + using ImRaii.ChildDisposable childDisposable = ImRaii.Child("##qstConfigContent", Vector2.Zero); + if ((bool)childDisposable) { - return; - } - ImRaii.IndentDisposable indentDisposable = _206B_202A_200C_200D_206B_200F_206E_200B_202D_202E_202B_206F_200E_202E_202E_206B_200F_200C_200E_202C_202D_206E_200B_200B_206F_206A_206B_200D_206F_200F_206C_200B_200B_202E_206C_200F_202E_200D_206A_206A_202E(8f * _206D_206A_202B_206C_206E_206D_200B_206A_206A_206F_206D_200E_200F_206E_202B_202A_200D_202C_206A_206F_202D_206C_200B_202C_202A_200D_206D_202B_202D_202A_202D_200D_200C_206E_202C_200E_200C_202D_206B_206B_202E(), true, true); - try - { - _pages[_selectedTab].DrawTab(); - } - finally - { - int num = ((indentDisposable == null) ? 1030093323 : 1030093320); - while (true) + using (ImRaii.PushIndent(8f * ImGuiHelpers.GlobalScale)) { - int num2 = num; - int num3 = 1030093321; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1030093320; - break; - case 2: - goto end_IL_0086; - case 1: - _202C_200E_200E_202C_202B_202D_206A_200E_202B_202E_202C_202B_202E_202C_202E_206B_206E_206B_206A_202D_206B_206D_202A_206D_200C_202C_206E_202D_202D_206A_206A_206B_202C_202A_202A_206A_206D_202D_206C_202D_202E((IDisposable)indentDisposable); - num = 1030093323; - break; - } - continue; - end_IL_0086: - break; + _pages[_selectedTab].DrawTab(); + return; } } } public void SaveWindowConfig() { - _206A_202C_202E_206B_202B_200D_202C_200F_206C_200D_206C_206E_206D_206B_202C_200D_200D_202B_202E_200C_200D_202C_202B_206D_200F_200D_206D_200B_200B_202A_206A_202B_202A_202D_206A_202D_200F_206F_206F_202A_202E(_pluginInterface, (IPluginConfiguration)_configuration); - } - - void IPersistableWindowConfig.SaveWindowConfig() - { - //ILSpy generated this explicit interface implementation from .override directive in SaveWindowConfig - this.SaveWindowConfig(); - } - - void _202B_206C_206E_202A_200F_206B_206A_200D_206B_202E_202B_202B_200C_200F_200B_202C_202B_206B_202C_202A_202A_202B_200B_200D_206C_202E_206D_206A_200F_202D_202C_200D_200B_202C_200C_206E_206A_202B_202E_202D_202E(Vector2? P_0) - { - base.Size = P_0; - } - - void _202B_202E_206A_200B_200D_206E_206F_200E_206C_202A_202C_206F_202E_206F_202D_202B_206F_206C_200D_206D_202C_206E_206E_202A_200B_202E_202B_206F_200C_206C_202C_206B_206A_206F_206E_200F_202B_206A_202A_202E(ImGuiCond P_0) - { - base.SizeCondition = P_0; - } - - void _200C_206E_200C_200D_200C_200E_202E_202D_200F_206B_200B_202A_200E_206E_206E_202A_200F_202D_200B_202E_206C_202A_200F_206B_206D_202A_200F_200B_202B_202C_200E_200C_202D_202C_200F_202E_202B_206E_202A_200E_202E(WindowSizeConstraints? P_0) - { - base.SizeConstraints = P_0; - } - - static ImRaii.ChildDisposable _200B_202B_200C_200D_202D_200C_202D_200E_200F_200C_202B_202E_202A_200E_206A_200D_200F_202B_206B_206D_206C_202D_206B_206A_202A_200B_200B_206C_206B_200F_202D_200E_202D_200F_200F_202A_206A_202C_202A_202B_202E(ImU8String P_0, Vector2 P_1) - { - return ImRaii.Child(P_0, P_1); - } - - static float _206D_206A_202B_206C_206E_206D_200B_206A_206A_206F_206D_200E_200F_206E_202B_202A_200D_202C_206A_206F_202D_206C_200B_202C_202A_200D_206D_202B_202D_202A_202D_200D_200C_206E_202C_200E_200C_202D_206B_206B_202E() - { - return ImGuiHelpers.GlobalScale; - } - - static ImRaii.IndentDisposable _206B_202A_200C_200D_206B_200F_206E_200B_202D_202E_202B_206F_200E_202E_202E_206B_200F_200C_200E_202C_202D_206E_200B_200B_206F_206A_206B_200D_206F_200F_206C_200B_200B_202E_206C_200F_202E_200D_206A_206A_202E(float P_0, bool P_1, bool P_2) - { - return ImRaii.PushIndent(P_0, P_1, P_2); - } - - static void _202C_200E_200E_202C_202B_202D_206A_200E_202B_202E_202C_202B_202E_202C_202E_206B_206E_206B_206A_202D_206B_206D_202A_206D_200C_202C_206E_202D_202D_206A_206A_206B_202C_202A_202A_206A_206D_202D_206C_202D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _206A_202C_202E_206B_202B_200D_202C_200F_206C_200D_206C_206E_206D_206B_202C_200D_200D_202B_202E_200C_200D_202C_202B_206D_200F_200D_206D_200B_200B_202A_206A_202B_202A_202D_206A_202D_200F_206F_206F_202A_202E(IDalamudPluginInterface P_0, IPluginConfiguration P_1) - { - P_0.SavePluginConfig(P_1); + _pluginInterface.SavePluginConfig(_configuration); } } diff --git a/Questionable/Questionable.Windows/FateSelectionWindow.cs b/Questionable/Questionable.Windows/FateSelectionWindow.cs index 60062dc..097d022 100644 --- a/Questionable/Questionable.Windows/FateSelectionWindow.cs +++ b/Questionable/Questionable.Windows/FateSelectionWindow.cs @@ -20,92 +20,6 @@ namespace Questionable.Windows; internal sealed class FateSelectionWindow : ThemedWindow { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<FateDefinition, int> _003C_003E9__16_1; - - public static Func<FateDefinition, double> _003C_003E9__16_2; - - public static Func<FateDefinition, string> _003C_003E9__16_3; - - internal int _003CDrawFateTable_003Eb__16_1(FateDefinition f) - { - DateTime? dateTime = _206C_200C_206E_206A_200E_206B_200B_206B_202B_202C_206F_206D_200D_200B_200F_202B_202B_202D_202A_202D_206A_202D_202A_200D_206F_202B_200D_200F_206B_200C_206A_206F_206C_202D_206D_200D_200E_206C_206D_200F_202E(f); - int num = ((!dateTime.HasValue) ? 932406398 : 932406397); - while (true) - { - int num2 = num; - int num3 = 932406396; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return 0; - case 1: - { - DateTime valueOrDefault = dateTime.GetValueOrDefault(); - num = ((!(EventInfoComponent.NormalizeExpiry(valueOrDefault) - DateTime.UtcNow > TimeSpan.Zero)) ? 932406398 : 932406399); - break; - } - case 0: - num = 932406397; - break; - case 2: - return 1; - } - } - } - - internal double _003CDrawFateTable_003Eb__16_2(FateDefinition f) - { - DateTime? dateTime = _206C_200C_206E_206A_200E_206B_200B_206B_202B_202C_206F_206D_200D_200B_200F_202B_202B_202D_202A_202D_206A_202D_202A_200D_206F_202B_200D_200F_206B_200C_206A_206F_206C_202D_206D_200D_200E_206C_206D_200F_202E(f); - int num = ((!dateTime.HasValue) ? 100735117 : 100735116); - TimeSpan timeSpan = default(TimeSpan); - while (true) - { - int num2 = num; - int num3 = 100735117; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return double.MaxValue; - case 1: - { - DateTime valueOrDefault = dateTime.GetValueOrDefault(); - timeSpan = EventInfoComponent.NormalizeExpiry(valueOrDefault) - DateTime.UtcNow; - num = ((!(timeSpan > TimeSpan.Zero)) ? 100735117 : 100735119); - break; - } - case 3: - num = 100735116; - break; - case 2: - return timeSpan.TotalSeconds; - } - } - } - - internal string _003CDrawFateTable_003Eb__16_3(FateDefinition f) - { - return _202A_200E_206A_200F_200C_206C_202E_202D_202A_202D_200E_206F_202D_200F_206C_206B_206C_202E_200D_202D_202B_200D_202D_206C_200E_200D_202B_202B_202D_202E_200F_206A_202E_206C_206A_206A_202C_206F_202A_206F_202E(f); - } - - static DateTime? _206C_200C_206E_206A_200E_206B_200B_206B_202B_202C_206F_206D_200D_200B_200F_202B_202B_202D_202A_202D_206A_202D_202A_200D_206F_202B_200D_200F_206B_200C_206A_206F_206C_202D_206D_200D_200E_206C_206D_200F_202E(FateDefinition P_0) - { - return P_0.EventExpiry; - } - - static string _202A_200E_206A_200F_200C_206C_202E_202D_202A_202D_200E_206F_202D_200F_206C_206B_206C_202E_200D_202D_202B_200D_202D_206C_200E_200D_202B_202B_202D_202E_200F_206A_202E_206C_206A_206A_202C_206F_202A_206F_202E(FateDefinition P_0) - { - return P_0.Name; - } - } - private readonly FateController _fateController; private readonly FateDefinitionRegistry _fateDefinitionRegistry; @@ -130,9 +44,8 @@ internal sealed class FateSelectionWindow : ThemedWindow private string _searchText = string.Empty; - [MethodImpl(MethodImplOptions.NoInlining)] public FateSelectionWindow(FateController fateController, FateDefinitionRegistry fateDefinitionRegistry, QuestController questController, SeasonalDutyController seasonalDutyController, CustomDeliveryController customDeliveryController, AttunementController attunementController, MovementController movementController, QuestFunctions questFunctions, QuestData questData, TerritoryData territoryData) - : base(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2131126948)) + : base("FATE Farming###QuestionableFateFarming") { _fateController = fateController; _fateDefinitionRegistry = fateDefinitionRegistry; @@ -144,1273 +57,344 @@ internal sealed class FateSelectionWindow : ThemedWindow _questFunctions = questFunctions; _questData = questData; _territoryData = territoryData; - _206E_200E_206E_206F_202B_200D_200C_202A_200B_200E_202C_206A_200C_202B_202E_200C_200D_206D_200C_200C_206E_206E_202C_206B_200C_206E_206E_206E_202D_200E_206A_206B_200B_206A_200D_200F_202A_206D_206D_202D_202E((Vector2?)new Vector2(600f, 400f)); - _200B_200B_202A_206E_206D_206C_206B_206A_206D_200E_206A_206A_206E_200D_200F_206E_206F_202C_206B_202A_200D_206B_200E_202C_206D_206C_206A_202E_206F_202B_206C_206E_200F_202D_202B_202D_200D_206E_206F_202E_202E(ImGuiCond.FirstUseEver); - _206B_200C_202A_206F_200B_202B_206C_202A_200B_200F_200D_202B_200D_206A_206A_200F_206E_202D_206D_206B_202C_200E_206C_206C_202A_206D_206F_200C_202A_202D_206C_206E_206D_206D_206D_206A_206C_202D_206D_202D_202E((WindowSizeConstraints?)new WindowSizeConstraints + base.Size = new Vector2(600f, 400f); + base.SizeCondition = ImGuiCond.FirstUseEver; + base.SizeConstraints = new WindowSizeConstraints { MinimumSize = new Vector2(500f, 300f), MaximumSize = new Vector2(900f, 700f) - }); + }; } - [MethodImpl(MethodImplOptions.NoInlining)] public override void DrawContent() { - int num = ((!_fateController.IsRunning) ? (-133961469) : (-133961471)); - while (true) + if (_fateController.IsRunning) { - int num2 = num; - int num3 = -133961470; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (CycleSelectionUi.DrawRunningBanner(BuildRunningStatusText(), UiThemeUtils.StatusActive, FontAwesomeIcon.Play)) { - case 4: - UiThemeUtils.SectionSpacing(); - var (contentStartPos2, availableWidth2, drawList2) = UiThemeUtils.BeginCard(); - UiThemeUtils.SectionHeader(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(68747211)); - UiThemeUtils.SearchInput(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-45767151), ref _searchText, -13f, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-297836706)); - _206A_200F_202D_200E_206F_206B_206A_206C_206D_206B_206B_202D_206C_206B_202A_206C_202A_200F_206A_202E_200D_206E_202E_202C_206F_202C_200B_202D_206F_206A_206F_202A_202D_200B_206B_206C_200F_202E_202E_206F_202E(); - DrawFateTable(); - UiThemeUtils.EndCard(contentStartPos2, availableWidth2, drawList2); - return; - case 0: - num = ((_fateDefinitionRegistry.Definitions.Count != 0) ? (-133961466) : (-133961468)); - break; - case 5: - num = -133961471; - break; - case 2: - _fateController.Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(94338279)); + _fateController.Stop("UI stop"); _movementController.Stop(); - num = -133961470; - break; - case 3: - num = ((!CycleSelectionUi.DrawRunningBanner(BuildRunningStatusText(), UiThemeUtils.StatusActive, FontAwesomeIcon.Play)) ? (-133961470) : (-133961472)); - break; - case 1: - var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); - UiThemeUtils.SectionHeader(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1849900151)); - DrawControlsStrip(); - UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); - num = -133961470; - break; - case 6: - UiThemeUtils.EmptyState(FontAwesomeIcon.Star, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1036143635), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1493669563)); - return; } } + else + { + var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); + UiThemeUtils.SectionHeader("Cycle Configuration"); + DrawControlsStrip(); + UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); + } + if (_fateDefinitionRegistry.Definitions.Count == 0) + { + UiThemeUtils.EmptyState(FontAwesomeIcon.Star, "No FATE Definitions", "Add FATE definitions to the FatePaths folder to get started."); + return; + } + UiThemeUtils.SectionSpacing(); + var (contentStartPos2, availableWidth2, drawList2) = UiThemeUtils.BeginCard(); + UiThemeUtils.SectionHeader("FATE List"); + UiThemeUtils.SearchInput("##FateSearch", ref _searchText, -13f, "Search FATEs..."); + ImGui.Spacing(); + DrawFateTable(); + UiThemeUtils.EndCard(contentStartPos2, availableWidth2, drawList2); } - [MethodImpl(MethodImplOptions.NoInlining)] private string BuildRunningStatusText() { - int num = (_fateController.CycleLimit.HasValue ? (-1679037885) : (-1679037886)); - string value = default(string); - string value2 = default(string); - string value3 = default(string); - string text3 = default(string); - IList<string> remainingTaskNames = default(IList<string>); - while (true) + string value = (_fateController.CycleLimit.HasValue ? $"Cycle {_fateController.CompletedCycles + 1} / {_fateController.CycleLimit}" : $"Cycle {_fateController.CompletedCycles + 1}"); + string value2 = FormatElapsed(_fateController.ElapsedTime); + IList<string> remainingTaskNames = _fateController.GetRemainingTaskNames(); + string text = ((remainingTaskNames.Count > 0) ? remainingTaskNames[0] : ""); + string name = _fateController.CurrentFate.Name; + if (text.Length > 0) { - int num2 = num; - int num3 = -1679037887; - int num4 = num2; - string text; - string text2; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 6: - text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1281927779); - break; - case 0: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler4 = new DefaultInterpolatedStringHandler(10, 3); - defaultInterpolatedStringHandler4.AppendFormatted(value); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-930966885)); - defaultInterpolatedStringHandler4.AppendFormatted(value2); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2010167156)); - defaultInterpolatedStringHandler4.AppendFormatted(value3); - return defaultInterpolatedStringHandler4.ToStringAndClear(); - } - case 2: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(9, 2); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1757472156)); - defaultInterpolatedStringHandler3.AppendFormatted(_fateController.CompletedCycles + 1); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1534070043)); - defaultInterpolatedStringHandler3.AppendFormatted(_fateController.CycleLimit); - text2 = defaultInterpolatedStringHandler3.ToStringAndClear(); - goto IL_012e; - } - case 4: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(15, 4); - defaultInterpolatedStringHandler2.AppendFormatted(value); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(643493573)); - defaultInterpolatedStringHandler2.AppendFormatted(value2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1090853622)); - defaultInterpolatedStringHandler2.AppendFormatted(value3); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2010167156)); - defaultInterpolatedStringHandler2.AppendFormatted(text3); - return defaultInterpolatedStringHandler2.ToStringAndClear(); - } - case 5: - num = -1679037886; - continue; - case 3: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(6, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1745458759)); - defaultInterpolatedStringHandler.AppendFormatted(_fateController.CompletedCycles + 1); - text2 = defaultInterpolatedStringHandler.ToStringAndClear(); - goto IL_012e; - } - case 1: - { - text = remainingTaskNames[0]; - break; - } - IL_012e: - value2 = text2; - value3 = FormatElapsed(_fateController.ElapsedTime); - remainingTaskNames = _fateController.GetRemainingTaskNames(); - num = ((remainingTaskNames.Count > 0) ? (-1679037888) : (-1679037881)); - continue; - } - text3 = text; - value = _202D_206E_200E_206A_200E_200E_200F_202E_206F_206F_206E_202B_200C_202E_200B_200C_200F_200B_202B_200C_206E_202B_206C_202A_206C_200C_200B_200D_202D_202D_202A_200E_206C_206A_206C_200F_206E_202A_206F_200D_202E(_fateController.CurrentFate); - num = ((_206F_206F_202C_202A_202B_206B_202E_202B_206B_200D_202E_202A_206E_206B_200F_200B_206F_206A_206B_206A_202B_206F_206E_206F_206F_200D_202A_200B_202D_200D_200D_200C_202A_206B_202B_200C_202D_200D_200F_202E_202E(text3) > 0) ? (-1679037883) : (-1679037887)); + return $"{name} · {value} · {value2} · {text}"; } + return $"{name} · {value} · {value2}"; } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawControlsStrip() { - ImRaii.DisabledDisposable disabledDisposable = _206A_202E_202E_206F_206F_202D_206A_206A_206E_202D_200E_200B_206D_200D_200E_200C_202B_202A_202D_200F_206E_202E_202A_202C_200E_206D_200D_206F_202E_202E_202D_206B_206E_202A_200E_200B_206F_202A_200F_206E_202E(_fateController.IsRunning); - try + using (ImRaii.Disabled(_fateController.IsRunning)) { - _206A_202A_206A_200E_206A_206A_202E_206D_200F_202A_202A_200D_206A_206C_202C_202D_202A_202E_202E_206A_200E_202A_200D_202C_200D_206F_200C_206D_206B_200F_202A_202B_206D_202E_202E_202E_206F_202D_200E_202A_202E(); - _200E_206B_206C_200E_202C_200B_206E_206A_202D_206B_206C_202B_202E_206B_202A_206F_200B_202E_206D_202D_206B_206C_202C_202A_202D_206D_206A_206F_200C_200B_206B_206D_200D_206E_206A_200E_202B_202C_200C_200F_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1752848309)); - _200C_200C_202C_206C_200E_202E_202D_200F_206E_200D_200C_200C_200B_206F_206C_202E_200E_202D_200F_202C_202D_202A_202D_206F_200D_200E_202B_206C_206D_200D_202E_200D_200D_206B_202A_206D_200C_206F_200B_206D_202E(); - _206B_200B_202C_202D_202A_206C_200E_202D_200E_200F_202C_202C_202B_206D_202E_200F_202C_206B_202C_200B_202D_202D_206E_206C_200C_206E_200E_202B_200C_200E_206B_202A_200C_200F_202A_200F_206F_200F_200D_206F_202E(100f * _202E_202E_206A_202D_202D_200B_200E_202A_206D_200C_206F_200F_200B_206A_202A_200D_206F_206E_206C_202D_200E_206B_202A_200F_206A_206E_200E_202B_200E_206F_206A_200E_200B_206D_206B_206E_206E_202E_202D_202D_202E().FontGlobalScale); - _206B_200C_206B_200C_200D_200F_200F_202C_200C_200B_206A_206C_200C_202A_200E_202E_200F_202B_202C_200C_202E_200C_200B_200F_206B_206D_202A_206F_200D_200D_200B_200D_202B_202A_202E_200B_202C_200B_200F_202B_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2080322340), ref _cycleLimit, 1, 5, default(ImU8String), ImGuiInputTextFlags.None); - int num = ((_cycleLimit >= 0) ? (-1704422761) : (-1704422764)); - while (true) + ImGui.AlignTextToFramePadding(); + ImGui.TextUnformatted("Cycles:"); + ImGui.SameLine(); + ImGui.SetNextItemWidth(100f * ImGui.GetIO().FontGlobalScale); + ImGui.InputInt("##CycleLimit", ref _cycleLimit, 1, 5); + if (_cycleLimit < 0) { - int num2 = num; - int num3 = -1704422762; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1704422764; - break; - case 2: - _cycleLimit = 0; - num = -1704422761; - break; - case 1: - _200C_200C_202C_206C_200E_202E_202D_200F_206E_200D_200C_200C_200B_206F_206C_202E_200E_202D_200F_202C_202D_202A_202D_206F_200D_200E_202B_206C_206D_200D_202E_200D_200D_206B_202A_206D_200C_206F_200B_206D_202E(); - _202B_206D_206C_202E_202A_200C_206D_206B_202C_202D_206C_200D_206C_202E_202E_206C_200B_202C_202D_200B_200E_200E_200F_206D_202E_200B_206C_206A_206A_202B_200B_206F_206D_200C_202A_202D_206E_202A_202E_206B_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)((_cycleLimit == 0) ? global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-247082897) : global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1694032531))); - goto end_IL_0091; - } - continue; - end_IL_0091: - break; + _cycleLimit = 0; } + ImGui.SameLine(); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, (_cycleLimit == 0) ? "(unlimited)" : ""); } - finally - { - int num = ((disabledDisposable == null) ? (-1621741864) : (-1621741863)); - while (true) - { - int num5 = num; - int num3 = -1621741864; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_0132; - case 1: - _202A_206A_202E_206E_200E_202D_202E_200B_202E_200F_206C_206C_200F_206F_200C_206C_206F_202A_200B_206F_200C_200E_200F_200D_206D_202B_206B_206E_206F_206F_200E_200E_200D_202E_202C_200C_206A_206F_206D_206F_202E((IDisposable)disabledDisposable); - num = -1621741864; - break; - case 2: - num = -1621741863; - break; - } - continue; - end_IL_0132: - break; - } - } - _206A_200F_202D_200E_206F_206B_206A_206C_206D_206B_206B_202D_206C_206B_202A_206C_202A_200F_206A_202E_200D_206E_202E_202C_206F_202C_200B_202D_206F_206A_206F_202A_202D_200B_206B_206C_200F_202E_202E_206F_202E(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private void DrawFateTable() - { - IEnumerable<FateDefinition> source = _fateDefinitionRegistry.Definitions.Values; - int num = (_200D_206A_206E_206F_206C_200B_200B_200E_202E_200E_206E_200D_206B_206E_206A_202C_200E_200E_200E_202A_206A_202D_202B_206E_202C_200B_200E_202C_202C_206A_206C_200D_202C_202B_202B_206B_206F_206C_202B_206A_202E(_searchText) ? (-1655385262) : (-1655385263)); - List<FateDefinition> list = default(List<FateDefinition>); - FateDefinition current = default(FateDefinition); - bool flag = default(bool); - while (true) - { - int num2 = num; - int num3 = -1655385264; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = -1655385263; - break; - case 2: - list = source.OrderBy(delegate(FateDefinition f) - { - DateTime? dateTime = _003C_003Ec._206C_200C_206E_206A_200E_206B_200B_206B_202B_202C_206F_206D_200D_200B_200F_202B_202B_202D_202A_202D_206A_202D_202A_200D_206F_202B_200D_200F_206B_200C_206A_206F_206C_202D_206D_200D_200E_206C_206D_200F_202E(f); - int num13 = ((!dateTime.HasValue) ? 932406398 : 932406397); - while (true) - { - int num14 = num13; - int num15 = 932406396; - int num16 = num14; - switch ((num16 | num15) - (num16 & num15)) - { - case 3: - return 0; - case 1: - { - DateTime valueOrDefault = dateTime.GetValueOrDefault(); - num13 = ((!(EventInfoComponent.NormalizeExpiry(valueOrDefault) - DateTime.UtcNow > TimeSpan.Zero)) ? 932406398 : 932406399); - break; - } - case 0: - num13 = 932406397; - break; - case 2: - return 1; - } - } - }).ThenBy(delegate(FateDefinition f) - { - DateTime? dateTime = _003C_003Ec._206C_200C_206E_206A_200E_206B_200B_206B_202B_202C_206F_206D_200D_200B_200F_202B_202B_202D_202A_202D_206A_202D_202A_200D_206F_202B_200D_200F_206B_200C_206A_206F_206C_202D_206D_200D_200E_206C_206D_200F_202E(f); - int num13 = ((!dateTime.HasValue) ? 100735117 : 100735116); - TimeSpan timeSpan = default(TimeSpan); - while (true) - { - int num14 = num13; - int num15 = 100735117; - int num16 = num14; - switch ((num16 | num15) - (num16 & num15)) - { - case 0: - return double.MaxValue; - case 1: - { - DateTime valueOrDefault = dateTime.GetValueOrDefault(); - timeSpan = EventInfoComponent.NormalizeExpiry(valueOrDefault) - DateTime.UtcNow; - num13 = ((!(timeSpan > TimeSpan.Zero)) ? 100735117 : 100735119); - break; - } - case 3: - num13 = 100735116; - break; - case 2: - return timeSpan.TotalSeconds; - } - } - }).ThenBy<FateDefinition, string>((FateDefinition f) => _003C_003Ec._202A_200E_206A_200F_200C_206C_202E_202D_202A_202D_200E_206F_202D_200F_206C_206B_206C_202E_200D_202D_202B_200D_202D_206C_200E_200D_202B_202B_202D_202E_200F_206A_202E_206C_206A_206A_202C_206F_202A_206F_202E(f), _206C_206E_200F_200B_200D_200D_202B_200C_202A_200D_200B_206F_202A_202C_206D_206B_200D_200C_202D_206C_200D_200E_202E_200F_202D_200F_202D_200B_202D_200C_202D_206E_206F_200B_206E_200F_202B_206A_202E_200C_202E()) - .ToList(); - num = ((list.Count != 0) ? (-1655385264) : (-1655385260)); - break; - case 1: - source = source.Where(delegate(FateDefinition f) - { - int num13 = (_202B_206D_206F_202B_200E_206D_202B_200E_202D_202E_206A_202B_206E_200F_202C_206A_202E_202C_206E_200D_206D_202E_200E_202E_206B_202E_206C_200C_206E_202E_200F_206A_202C_202D_200E_202D_202E_200B_200C_202C_202E(_202D_206E_200E_206A_200E_200E_200F_202E_206F_206F_206E_202B_200C_202E_200B_200C_200F_200B_202B_200C_206E_202B_206C_202A_206C_200C_200B_200D_202D_202D_202A_200E_206C_206A_206C_200F_206E_202A_206F_200D_202E(f), _searchText, StringComparison.OrdinalIgnoreCase) ? (-321936680) : (-321936677)); - while (true) - { - int num14 = num13; - int num15 = -321936679; - int num16 = num14; - int num17 = num16 + num15; - int num18 = num16 & num15; - switch (num17 - (num18 + num18)) - { - case 1: - return true; - case 2: - return _202B_206D_206F_202B_200E_206D_202B_200E_202D_202E_206A_202B_206E_200F_202C_206A_202E_202C_206E_200D_206D_202E_200E_202E_206B_202E_206C_200C_206E_202E_200F_206A_202C_202D_200E_202D_202E_200B_200C_202C_202E(_territoryData.GetName(_202D_200E_206C_206C_202D_200E_202D_206A_202D_202A_200B_206C_202E_206A_202D_202C_202E_200E_206D_200F_202D_202A_202C_202D_202A_202C_206D_206F_202C_200F_200B_206B_206A_200E_202B_206C_206D_202A_200E_200D_202E(f)) ?? _200D_206D_202B_206A_200B_202C_202E_206A_200D_202A_200C_206C_202B_200C_206C_200C_200F_206F_202A_206B_202B_200B_202D_200B_202E_202D_200D_200D_202E_202B_206D_200D_202A_202E_202E_202D_206C_202B_206A_202B_202E(f), _searchText, StringComparison.OrdinalIgnoreCase); - case 0: - goto IL_0081; - } - continue; - IL_0081: - num13 = -321936677; - } - }); - num = -1655385262; - break; - case 4: - UiThemeUtils.EmptyState(FontAwesomeIcon.Search, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1755383346)); - return; - case 0: - { - using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1422744515), 4, ImGuiTableFlags.SizingStretchProp | ImGuiTableFlags.ScrollY); - num = ((!(!tableDisposable)) ? (-2021256277) : (-2021256280)); - while (true) - { - int num5 = num; - num3 = -2021256278; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 0: - goto IL_01b9; - case 2: - return; - case 1: - { - _200C_206D_202C_206E_206E_202D_206D_200C_206A_200D_200C_202E_202D_202B_206C_202C_200C_202C_206D_202E_206C_206D_206B_200E_206E_200F_206E_200C_202B_200F_200F_200E_206F_206D_202D_202D_206B_202B_206E_206F_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(261089734), ImGuiTableColumnFlags.None, 3f, 0u); - _200C_206D_202C_206E_206E_202D_206D_200C_206A_200D_200C_202E_202D_202B_206C_202C_200C_202C_206D_202E_206C_206D_206B_200E_206E_200F_206E_200C_202B_200F_200F_200E_206F_206D_202D_202D_206B_202B_206E_206F_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1292973020), ImGuiTableColumnFlags.None, 2f, 0u); - _200C_206D_202C_206E_206E_202D_206D_200C_206A_200D_200C_202E_202D_202B_206C_202C_200C_202C_206D_202E_206C_206D_206B_200E_206E_200F_206E_200C_202B_200F_200F_200E_206F_206D_202D_202D_206B_202B_206E_206F_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1413203702), ImGuiTableColumnFlags.WidthFixed, 80f, 0u); - _200C_206D_202C_206E_206E_202D_206D_200C_206A_200D_200C_202E_202D_202B_206C_202C_200C_202C_206D_202E_206C_206D_206B_200E_206E_200F_206E_200C_202B_200F_200F_200E_206F_206D_202D_202D_206B_202B_206E_206F_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1256796982), ImGuiTableColumnFlags.WidthFixed, 30f, 0u); - _200C_200D_200F_200C_202C_200C_202C_206B_206B_202C_200E_200F_202B_202D_202D_202D_200F_200D_206B_202A_206B_206F_202D_200D_202A_202A_202D_202B_206D_206B_206F_206A_200F_200D_200B_206C_206F_202B_206D_202E(); - using List<FateDefinition>.Enumerator enumerator = list.GetEnumerator(); - num = 1558461600; - while (true) - { - int num8 = num; - num3 = 1558461612; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - int num11; - int num12; - bool disabled; - switch (num9 - (num10 + num10)) - { - case 6: - _202B_206E_202C_202C_206F_200F_200B_206A_206F_200F_200B_206B_206E_200D_206B_200D_202E_200B_206F_200D_200C_200C_206F_202B_200E_200B_206F_206B_202B_202E_206E_202D_206F_202D_202D_206A_202E_202C_206F_202B_202E(ImGuiTableBgTarget.RowBg0, _200B_202D_206E_200E_206C_202B_202C_206E_206A_200B_200F_206E_200D_206D_206C_206B_206F_202C_202E_200F_202B_206C_206C_206B_206C_200F_206C_206F_202B_206E_200C_206E_202D_202D_200C_206E_206D_206E_200C_200F_202E(UiThemeUtils.AccentDimColor)); - num = 1558461614; - break; - case 5: - num11 = ((_fateController.CurrentFate == current) ? 1 : 0); - goto IL_045a; - case 8: - current = enumerator.Current; - _206A_200F_206F_206D_202A_202D_202D_200E_202D_200D_206A_206E_206B_206C_202D_200F_202C_202D_206E_200D_202B_206C_206D_200C_206B_200E_206A_206F_206F_206E_202D_200D_202A_200C_206A_200C_202A_206B_206D_202C_202E(); - num = ((!_fateController.IsRunning) ? 1558461606 : 1558461609); - break; - case 11: - num12 = 1; - goto IL_0323; - case 9: - num12 = ((_questController.AutomationType != QuestController.EAutomationType.Manual) ? 1 : 0); - goto IL_0323; - case 4: - num = (_attunementController.IsRunning ? 1558461607 : 1558461605); - break; - case 2: - _202D_202B_202D_200D_206A_206F_206E_202C_206F_200D_200B_202C_200E_200E_200B_200C_206F_200D_200B_200D_202C_202A_202B_202B_202D_202E_202B_206C_206E_202A_200D_206C_202C_202A_200E_206D_206C_200B_206E_202A_202E(); - DrawFateRowName(current, flag); - _202D_202B_202D_200D_206A_206F_206E_202C_206F_200D_200B_202C_200E_200E_200B_200C_206F_200D_200B_200D_202C_202A_202B_202B_202D_202E_202B_206C_206E_202A_200D_206C_202C_202A_200E_206D_206C_200B_206E_202A_202E(); - _200E_206B_206C_200E_202C_200B_206E_206A_202D_206B_206C_202B_202E_206B_202A_206F_200B_202E_206D_202D_206B_206C_202C_202A_202D_206D_206A_206F_200C_200B_206B_206D_200D_206E_206A_200E_202B_202C_200C_200F_202E((ImU8String)(_territoryData.GetName(_202D_200E_206C_206C_202D_200E_202D_206A_202D_202A_200B_206C_202E_206A_202D_202C_202E_200E_206D_200F_202D_202A_202C_202D_202A_202C_206D_206F_202C_200F_200B_206B_206A_200E_202B_206C_206D_202A_200E_200D_202E(current)) ?? _200D_206D_202B_206A_200B_202C_202E_206A_200D_202A_200C_206C_202B_200C_206C_200C_200F_206F_202A_206B_202B_200B_202D_200B_202E_202D_200D_200D_202E_202B_206D_200D_202A_202E_202E_202D_206C_202B_206A_202B_202E(current))); - _202D_202B_202D_200D_206A_206F_206E_202C_206F_200D_200B_202C_200E_200E_200B_200C_206F_200D_200B_200D_202C_202A_202B_202B_202D_202E_202B_206C_206E_202A_200D_206C_202C_202A_200E_206D_206C_200B_206E_202A_202E(); - DrawFateRowExpiry(current); - _202D_202B_202D_200D_206A_206F_206E_202C_206F_200D_200B_202C_200E_200E_200B_200C_206F_200D_200B_200D_202C_202A_202B_202B_202D_202E_202B_206C_206E_202A_200D_206C_202C_202A_200E_206D_206C_200B_206E_202A_202E(); - num = (_fateController.IsRunning ? 1558461607 : 1558461613); - break; - case 1: - num = (_seasonalDutyController.IsRunning ? 1558461607 : 1558461612); - break; - case 0: - num = (_customDeliveryController.IsRunning ? 1558461607 : 1558461608); - break; - case 7: - num = 1558461600; - break; - case 10: - num11 = 0; - goto IL_045a; - case 12: - num = (enumerator.MoveNext() ? 1558461604 : 1558461615); - break; - case 3: - return; - IL_045a: - flag = (byte)num11 != 0; - num = ((!flag) ? 1558461614 : 1558461610); - break; - IL_0323: - disabled = (byte)num12 != 0; - DrawFateRowActions(current, disabled); - num = 1558461600; - break; - } - } - } - } - continue; - IL_01b9: - num = -2021256280; - } - } - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private void DrawFateRowName(FateDefinition fate, bool isActive) - { - int num = ((!isActive) ? 1248065180 : 1248065183); - DateTime? dateTime = default(DateTime?); - TimeSpan timeSpan = default(TimeSpan); - while (true) - { - int num2 = num; - int num3 = 1248065180; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = 1248065183; - break; - case 1: - if (_200F_206A_202A_206A_206F_200B_202E_200F_206C_202E_202B_202B_202C_200B_206F_202B_200D_200C_202E_206C_206B_200B_200C_200E_206E_202B_206C_200C_200C_200B_206E_202B_202C_200D_206A_202E_206D_200E_202A_206E_202E()) - { - num = 1248065182; - break; - } - return; - case 3: - _202B_206D_206C_202E_202A_200C_206D_206B_202C_202D_206C_200D_206C_202E_202E_206C_200B_202C_202D_200B_200E_200E_200F_206D_202E_200B_206C_206A_206A_202B_200B_206F_206D_200C_202A_202D_206E_202A_202E_206B_202E(ref UiThemeUtils.AccentColor, (ImU8String)_202D_206E_200E_206A_200E_200E_200F_202E_206F_206F_206E_202B_200C_202E_200B_200C_200F_200B_202B_200C_206E_202B_206C_202A_206C_200C_200B_200D_202D_202D_202A_200E_206C_206A_206C_200F_206E_202A_206F_200D_202E(fate)); - num = 1248065181; - break; - case 0: - _200E_206B_206C_200E_202C_200B_206E_206A_202D_206B_206C_202B_202E_206B_202A_206F_200B_202E_206D_202D_206B_206C_202C_202A_202D_206D_206A_206F_200C_200B_206B_206D_200D_206E_206A_200E_202B_202C_200C_200F_202E((ImU8String)_202D_206E_200E_206A_200E_200E_200F_202E_206F_206F_206E_202B_200C_202E_200B_200C_200F_200B_202B_200C_206E_202B_206C_202A_206C_200C_200B_200D_202D_202D_202A_200E_206C_206A_206C_200F_206E_202A_206F_200D_202E(fate)); - num = 1248065181; - break; - case 2: - using (_202A_206F_202C_202A_202E_206B_206B_202B_202C_202E_206D_206E_200E_206C_202A_200B_206B_200F_200E_200B_200F_200B_200F_202A_206A_202A_202C_206C_206B_206D_206A_200F_200C_206D_206F_200C_202E_206F_206B_202D_202E()) - { - _202B_206D_206C_202E_202A_200C_206D_206B_202C_202D_206C_200D_206C_202E_202E_206C_200B_202C_202D_200B_200E_200E_200F_206D_202E_200B_206C_206A_206A_202B_200B_206F_206D_200C_202A_202D_206E_202A_202E_206B_202E(ref UiThemeUtils.PrimaryTextColor, (ImU8String)_202D_206E_200E_206A_200E_200E_200F_202E_206F_206F_206E_202B_200C_202E_200B_200C_200F_200B_202B_200C_206E_202B_206C_202A_206C_200C_200B_200D_202D_202D_202A_200E_206C_206A_206C_200F_206E_202A_206F_200D_202E(fate)); - _206F_200D_202E_202C_206D_206C_202A_206C_206F_206B_202B_200F_202B_200E_202A_202A_200E_200C_200B_202C_202E_202A_206A_206D_206B_206C_202E_206A_202A_206A_200E_206E_202C_206B_206F_200B_202D_206E_206B_206F_202E(); - _206C_206E_200B_202C_202A_206C_200D_206D_200D_202A_206B_200D_202D_200B_200F_200C_202B_206F_200D_200C_200F_206B_200D_206D_206D_200E_206F_202B_200C_200F_200E_206D_206C_202C_206B_200D_202E_202D_202B_202E(300f); - _200E_206B_206C_200E_202C_200B_206E_206A_202D_206B_206C_202B_202E_206B_202A_206F_200B_202E_206D_202D_206B_206C_202C_202A_202D_206D_206A_206F_200C_200B_206B_206D_200D_206E_206A_200E_202B_202C_200C_200F_202E((ImU8String)_200D_206D_202B_206A_200B_202C_202E_206A_200D_202A_200C_206C_202B_200C_206C_200C_200F_206F_202A_206B_202B_200B_202D_200B_202E_202D_200D_200D_202E_202B_206D_200D_202A_202E_202E_202D_206C_202B_206A_202B_202E(fate)); - _206C_206B_206E_202A_202D_206B_202D_206E_206A_206A_202A_206F_206B_206D_202D_206C_202B_206C_202B_200D_206D_200E_200F_206D_200C_200E_202A_202D_200F_206D_206F_202C_206B_200D_206B_202D_202C_200E_206B_202E(); - _206A_200F_202D_200E_206F_206B_206A_206C_206D_206B_206B_202D_206C_206B_202A_206C_202A_200F_206A_202E_200D_206E_202E_202C_206F_202C_200B_202D_206F_206A_206F_202A_202D_200B_206B_206C_200F_202E_202E_206F_202E(); - string nameAndId = _territoryData.GetNameAndId(_202D_200E_206C_206C_202D_200E_202D_206A_202D_202A_200B_206C_202E_206A_202D_202C_202E_200E_206D_200F_202D_202A_202C_202D_202A_202C_206D_206F_202C_200F_200B_206B_206A_200E_202B_206C_206D_202A_200E_200D_202E(fate)); - ImU8String imU8String = new ImU8String(6, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1613027570)); - imU8String.AppendFormatted(nameAndId); - _202B_206D_206C_202E_202A_200C_206D_206B_202C_202D_206C_200D_206C_202E_202E_206C_200B_202C_202D_200B_200E_200E_200F_206D_202E_200B_206C_206A_206A_202B_200B_206F_206D_200C_202A_202D_206E_202A_202E_206B_202E(ref UiThemeUtils.DimTextColor, imU8String); - ImU8String imU8String2 = new ImU8String(9, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1396889891)); - imU8String2.AppendFormatted(_206E_202A_206C_202E_206E_202C_202E_206B_202D_206E_202C_206F_206D_200F_200F_202B_206A_202C_200C_202A_202B_206B_206B_200D_206E_206E_200E_200D_206E_202B_200F_200F_200F_200B_206F_206F_206D_202C_202C_202E_202E(fate).Count); - _202B_206D_206C_202E_202A_200C_206D_206B_202C_202D_206C_200D_206C_202E_202E_206C_200B_202C_202D_200B_200E_200E_200F_206D_202E_200B_206C_206A_206A_202B_200B_206F_206D_200C_202A_202D_206E_202A_202E_206B_202E(ref UiThemeUtils.DimTextColor, imU8String2); - num = ((!_200E_200C_206F_200C_200C_206E_200B_202D_202E_206A_206D_206B_206E_202C_202D_206F_202B_200E_206F_206B_206D_202B_202C_206A_200C_206D_200D_202C_202A_202A_206B_206D_202A_202D_206C_206C_202B_200F_206A_200C_202E(fate).HasValue) ? 470694466 : 470694471); - while (true) - { - int num5 = num; - num3 = 470694470; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - { - DateTime valueOrDefault = dateTime.GetValueOrDefault(); - timeSpan = EventInfoComponent.NormalizeExpiry(valueOrDefault) - DateTime.UtcNow; - num = ((!(timeSpan > TimeSpan.Zero)) ? 470694470 : 470694468); - break; - } - case 2: - { - string text = EventInfoComponent.FormatRemainingFull(timeSpan); - _202B_206D_206C_202E_202A_200C_206D_206B_202C_202D_206C_200D_206C_202E_202E_206C_200B_202C_202D_200B_200E_200E_200F_206D_202E_200B_206C_206A_206A_202B_200B_206F_206D_200C_202A_202D_206E_202A_202E_206B_202E(ref UiThemeUtils.StatusActive, (ImU8String)text); - num = 470694470; - break; - } - case 3: - num = 470694471; - break; - case 4: - dateTime = _206C_202E_200E_202A_202E_206E_206B_206F_200C_202B_200B_200B_200F_200B_206E_200C_206B_200C_200F_202E_202C_206E_202A_206E_206F_202D_206B_202B_206C_206F_202D_206B_206D_200B_200D_202D_200C_206E_206E_206A_202E(fate); - num = ((!dateTime.HasValue) ? 470694470 : 470694467); - break; - case 1: - _202B_206D_206C_202E_202A_200C_206D_206B_202C_202D_206C_200D_206C_202E_202E_206C_200B_202C_202D_200B_200E_200E_200F_206D_202E_200B_206C_206A_206A_202B_200B_206F_206D_200C_202A_202D_206E_202A_202E_206B_202E(ref UiThemeUtils.StatusActive, (ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1118395724)); - num = 470694466; - break; - case 0: - return; - } - } - } - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private static void DrawFateRowExpiry(FateDefinition fate) - { - DateTime? dateTime = _206C_202E_200E_202A_202E_206E_206B_206F_200C_202B_200B_200B_200F_200B_206E_200C_206B_200C_200F_202E_202C_206E_202A_206E_206F_202D_206B_202B_206C_206F_202D_206B_206D_200B_200D_202D_200C_206E_206E_206A_202E(fate); - int num = ((!dateTime.HasValue) ? 57266910 : 57266911); - string text = default(string); - TimeSpan timeSpan = default(TimeSpan); - while (true) - { - int num2 = num; - int num3 = 57266909; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - Vector4 vector; - Vector4 vector2; - switch (num5 - (num6 + num6)) - { - case 6: - vector = UiThemeUtils.StatusActive; - goto IL_006e; - case 5: - text = EventInfoComponent.FormatRemainingDays(timeSpan); - num = ((timeSpan.TotalDays < 3.0) ? 57266907 : 57266905); - break; - case 4: - vector = UiThemeUtils.DimTextColor; - goto IL_006e; - case 2: - { - DateTime valueOrDefault = dateTime.GetValueOrDefault(); - timeSpan = EventInfoComponent.NormalizeExpiry(valueOrDefault) - DateTime.UtcNow; - num = ((!(timeSpan > TimeSpan.Zero)) ? 57266908 : 57266904); - break; - } - case 0: - num = 57266911; - break; - case 1: - _202B_206D_206C_202E_202A_200C_206D_206B_202C_202D_206C_200D_206C_202E_202E_206C_200B_202C_202D_200B_200E_200E_200F_206D_202E_200B_206C_206A_206A_202B_200B_206F_206D_200C_202A_202D_206E_202A_202E_206B_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-892568127)); - return; - case 3: - { - _202B_206D_206C_202E_202A_200C_206D_206B_202C_202D_206C_200D_206C_202E_202E_206C_200B_202C_202D_200B_200E_200E_200F_206D_202E_200B_206C_206A_206A_202B_200B_206F_206D_200C_202A_202D_206E_202A_202E_206B_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1737353930)); - return; - } - IL_006e: - vector2 = vector; - _202B_206D_206C_202E_202A_200C_206D_206B_202C_202D_206C_200D_206C_202E_202E_206C_200B_202C_202D_200B_200E_200E_200F_206D_202E_200B_206C_206A_206A_202B_200B_206F_206D_200C_202A_202D_206E_202A_202E_206B_202E(ref vector2, (ImU8String)text); - return; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private void DrawFateRowActions(FateDefinition fate, bool disabled) - { - ushort? num = _206F_202C_202D_202C_200E_206E_202A_200B_200E_202A_206C_200B_200E_206D_200B_206A_206B_206B_200E_206D_200B_200B_206C_200F_202A_202C_202E_200F_206C_206E_206D_200D_200F_206E_206D_200B_200F_202E_200D_206F_202E(fate); - int num2 = (num.HasValue ? (-70740329) : (-70740334)); - uint valueOrDefault = default(uint); - uint? num7 = default(uint?); - int num6; - QuestId questId = default(QuestId); - while (true) - { - int num3 = num2; - int num4 = -70740329; - int num5 = num3; - object obj2; - uint? obj; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 7: - num2 = -70740334; - continue; - case 4: - obj2 = null; - goto IL_0091; - case 3: - obj2 = _206E_202E_206D_202B_200D_200D_202B_206D_202A_202A_200D_206C_206A_202D_200C_200D_200B_206C_202B_206B_206F_206A_202A_200B_200B_206C_206B_200D_206C_202C_202D_202B_206B_202C_206A_202E_206A_202D_200C_202E_202E((ushort)valueOrDefault); - goto IL_0091; - case 1: - valueOrDefault = num7.GetValueOrDefault(); - num2 = ((valueOrDefault <= 65535) ? (-70740332) : (-70740333)); - continue; - case 0: - obj = num.GetValueOrDefault(); - goto IL_00ed; - case 6: - num6 = ((!_questFunctions.IsQuestComplete(questId)) ? 1 : 0); - break; - case 5: - obj = null; - goto IL_00ed; - case 2: - { - num6 = 0; - break; - } - IL_00ed: - num7 = obj; - num2 = ((!num7.HasValue) ? (-70740333) : (-70740330)); - continue; - IL_0091: - questId = (QuestId)obj2; - num2 = ((!_202E_206F_202C_200C_202D_206C_206A_202B_202B_200F_206D_200C_206A_202D_202A_206C_206D_200F_206B_200D_206A_202E_206F_206B_202C_202B_202A_200B_200D_200E_200B_202E_200B_200E_200C_200F_202C_202C_206C_202C_202E((ElementId)questId, (ElementId)null)) ? (-70740331) : (-70740335)); - continue; - } - break; - } - bool flag = (byte)num6 != 0; - ImU8String imU8String = new ImU8String(5, 1); - imU8String.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(314651123)); - imU8String.AppendFormatted(_202D_206E_200E_206A_200E_200E_200F_202E_206F_206F_206E_202B_200C_202E_200B_200C_200F_200B_202B_200C_206E_202B_206C_202A_206C_200C_200B_200D_202D_202D_202A_200E_206C_206A_206C_200F_206E_202A_206F_200D_202E(fate)); - ImRaii.IdDisposable idDisposable = _206C_202B_206D_202A_202C_206D_202A_206A_202C_206D_200B_206F_206F_200D_206E_200D_206B_206A_200B_206A_202D_202C_206A_200B_202A_206A_206B_202D_200E_206D_206A_200C_200F_200F_200D_200F_206C_200B_202A_206F_202E(imU8String, true); - try - { - if (flag) - { - ImRaii.FontDisposable fontDisposable = _206C_202D_202A_206B_200B_202B_206A_202D_200B_200E_206A_200D_200F_206C_200B_200B_206C_202C_202D_202E_206A_202A_206F_200C_202D_200B_202C_202B_202B_200C_206C_202E_202D_202B_206D_200F_202E_200C_202A_206D_202E(_200D_200F_206F_200C_200D_206D_206A_202E_200C_200D_200B_202E_206C_200C_206E_200C_200C_206E_206E_206F_206F_206A_200C_200C_200F_202A_206D_200D_200F_202D_200E_202B_202B_202E_206C_202C_202D_200F_202E_206F_202E(), true); - try - { - _202B_206D_206C_202E_202A_200C_206D_206B_202C_202D_206C_200D_206C_202E_202E_206C_200B_202C_202D_200B_200E_200E_200F_206D_202E_200B_206C_206A_206A_202B_200B_206F_206D_200C_202A_202D_206E_202A_202E_206B_202E(ref UiThemeUtils.StatusLocked, (ImU8String)_202D_200D_200C_200B_206D_206F_206A_206B_202B_202C_206E_206A_200F_206F_206B_200D_206B_200E_202A_200B_200F_200E_202A_200E_206F_206D_206B_200F_206E_206F_200F_202C_202A_202C_206A_202B_202D_200D_200E_202C_202E(FontAwesomeIcon.Times)); - } - finally - { - num2 = ((fontDisposable == null) ? 633269880 : 633269883); - while (true) - { - int num8 = num2; - int num4 = 633269881; - int num5 = num8; - switch ((num5 | num4) - (num5 & num4)) - { - case 1: - goto end_IL_01d0; - case 2: - _202A_206A_202E_206E_200E_202D_202E_200B_202E_200F_206C_206C_200F_206F_200C_206C_206F_202A_200B_206F_200C_200E_200F_200D_206D_202B_206B_206E_206F_206F_200E_200E_200D_202E_202C_200C_206A_206F_206D_206F_202E((IDisposable)fontDisposable); - num2 = 633269880; - break; - case 0: - num2 = 633269883; - break; - } - continue; - end_IL_01d0: - break; - } - } - if (!_200F_206A_202A_206A_206F_200B_202E_200F_206C_202E_202B_202B_202C_200B_206F_202B_200D_200C_202E_206C_206B_200B_200C_200E_206E_202B_206C_200C_200C_200B_206E_202B_202C_200D_206A_202E_206D_200E_202A_206E_202E()) - { - return; - } - num2 = 46972295; - object obj3; - IQuestInfo questInfo = default(IQuestInfo); - while (true) - { - int num9 = num2; - int num4 = 46972290; - int num5 = num9; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 0: - num2 = 46972295; - continue; - case 2: - obj3 = null; - goto IL_029d; - case 4: - obj3 = num7.GetValueOrDefault().ToString(_202A_202E_206B_200E_206A_206B_202B_200B_202B_206F_206B_206C_202E_206A_202C_206D_202C_206C_202B_200E_206C_206F_202D_200C_206F_200F_206F_206A_206C_206F_200E_200E_200D_200E_200D_202B_202A_206B_206E_206E_202E()); - goto IL_029d; - case 3: - num2 = (num7.HasValue ? 46972294 : 46972288); - continue; - case 5: - num2 = (_questData.TryGetQuestInfo(_206E_202E_206D_202B_200D_200D_202B_206D_202A_202A_200D_206C_206A_202D_200C_200D_200B_206C_202B_206B_206F_206A_202A_200B_200B_206C_206B_200D_206C_202C_202D_202B_206B_202C_206A_202E_206A_202D_200C_202E_202E(_206F_202C_202D_202C_200E_206E_202A_200B_200E_202A_206C_200B_200E_206D_200B_206A_206B_206B_200E_206D_200B_200B_206C_200F_202A_202C_202E_200F_206C_206E_206D_200D_200F_206E_206D_200B_200F_202E_200D_206F_202E(fate).Value), out questInfo) ? 46972291 : 46972289); - continue; - case 1: - { - obj3 = questInfo.Name; - break; - } - IL_029d: - if (obj3 == null) - { - obj3 = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(896879528); - } - break; - } - break; - } - string value = (string)obj3; - ImU8String imU8String2 = new ImU8String(33, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1729187626)); - imU8String2.AppendFormatted(value); - imU8String2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-437224182)); - _202B_206C_206E_202A_206A_200D_202D_202C_206A_206B_206F_206D_202D_200C_200B_200E_202D_202E_200F_200B_200F_202B_202E_206E_206B_202D_200F_202B_202B_200B_206C_200C_202C_200C_202E_202E_206A_202D_202A_202B_202E(imU8String2); - return; - } - ImRaii.DisabledDisposable disabledDisposable = _206A_202E_202E_206F_206F_202D_206A_206A_206E_202D_200E_200B_206D_200D_200E_200C_202B_202A_202D_200F_206E_202E_202A_202C_200E_206D_200D_206F_202E_202E_202D_206B_206E_202A_200E_200B_206F_202A_200F_206E_202E(disabled); - try - { - ImRaii.ColorDisposable colorDisposable = _206D_202C_202E_206E_200E_200B_202E_202C_206D_200C_202D_202C_200E_202A_206C_202C_202E_206E_200F_202B_202A_202E_202D_202D_200C_206B_206D_206D_200C_206C_202B_200B_206E_202D_206E_206E_202E_206A_202E_200C_202E(ImGuiCol.Button, UiThemeUtils.PlayButtonColor, true); - try - { - ImRaii.ColorDisposable colorDisposable2 = _206D_202C_202E_206E_200E_200B_202E_202C_206D_200C_202D_202C_200E_202A_206C_202C_202E_206E_200F_202B_202A_202E_202D_202D_200C_206B_206D_206D_200C_206C_202B_200B_206E_202D_206E_206E_202E_206A_202E_200C_202E(ImGuiCol.ButtonHovered, UiThemeUtils.PlayButtonHover, true); - try - { - ImRaii.ColorDisposable colorDisposable3 = _206D_202C_202E_206E_200E_200B_202E_202C_206D_200C_202D_202C_200E_202A_206C_202C_202E_206E_200F_202B_202A_202E_202D_202D_200C_206B_206D_206D_200C_206C_202B_200B_206E_202D_206E_206E_202E_206A_202E_200C_202E(ImGuiCol.ButtonActive, UiThemeUtils.PlayButtonActive, true); - try - { - ImRaii.ColorDisposable colorDisposable4 = _206D_202C_202E_206E_200E_200B_202E_202C_206D_200C_202D_202C_200E_202A_206C_202C_202E_206E_200F_202B_202A_202E_202D_202D_200C_206B_206D_206D_200C_206C_202B_200B_206E_202D_206E_206E_202E_206A_202E_200C_202E(ImGuiCol.Text, UiThemeUtils.PlayButtonText, true); - try - { - num2 = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Play, _206B_200D_200E_200D_206B_206F_202C_206B_206F_200C_200F_200C_206A_206D_200C_202D_206F_202E_200E_200C_206E_202C_202D_202A_202D_200D_202C_200E_206F_206B_202C_202E_202E_200E_206E_206A_206D_206A_206B_206C_202E())) ? 1255836714 : 1255836713); - while (true) - { - int num10 = num2; - int num4 = 1255836714; - int num5 = num10; - int? obj4; - int? cycleLimit; - switch ((num5 | num4) - (num5 & num4)) - { - case 1: - obj4 = _cycleLimit; - goto IL_0419; - case 4: - obj4 = null; - goto IL_0419; - case 3: - _movementController.Stop(); - _questController.Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1062388706)); - _seasonalDutyController.Stop(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-986524897)); - _customDeliveryController.Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1062388706)); - _attunementController.Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1062388706)); - num2 = ((_cycleLimit > 0) ? 1255836715 : 1255836718); - break; - case 2: - num2 = 1255836713; - break; - case 0: - goto end_IL_03da; - IL_0419: - cycleLimit = obj4; - _fateController.Start(fate, cycleLimit); - num2 = 1255836714; - break; - } - continue; - end_IL_03da: - break; - } - } - finally - { - num2 = ((colorDisposable4 == null) ? (-1883816165) : (-1883816166)); - while (true) - { - int num11 = num2; - int num4 = -1883816165; - int num5 = num11; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - num2 = -1883816166; - break; - case 0: - goto end_IL_0503; - case 1: - _202A_206A_202E_206E_200E_202D_202E_200B_202E_200F_206C_206C_200F_206F_200C_206C_206F_202A_200B_206F_200C_200E_200F_200D_206D_202B_206B_206E_206F_206F_200E_200E_200D_202E_202C_200C_206A_206F_206D_206F_202E((IDisposable)colorDisposable4); - num2 = -1883816165; - break; - } - continue; - end_IL_0503: - break; - } - } - } - finally - { - num2 = ((colorDisposable3 == null) ? 1592901423 : 1592901420); - while (true) - { - int num12 = num2; - int num4 = 1592901422; - int num5 = num12; - switch ((num5 | num4) - (num5 & num4)) - { - case 1: - goto end_IL_056e; - case 2: - _202A_206A_202E_206E_200E_202D_202E_200B_202E_200F_206C_206C_200F_206F_200C_206C_206F_202A_200B_206F_200C_200E_200F_200D_206D_202B_206B_206E_206F_206F_200E_200E_200D_202E_202C_200C_206A_206F_206D_206F_202E((IDisposable)colorDisposable3); - num2 = 1592901423; - break; - case 0: - num2 = 1592901420; - break; - } - continue; - end_IL_056e: - break; - } - } - } - finally - { - num2 = ((colorDisposable2 == null) ? (-1797212280) : (-1797212277)); - while (true) - { - int num13 = num2; - int num4 = -1797212279; - int num5 = num13; - switch ((num5 | num4) - (num5 & num4)) - { - case 1: - goto end_IL_05d9; - case 2: - _202A_206A_202E_206E_200E_202D_202E_200B_202E_200F_206C_206C_200F_206F_200C_206C_206F_202A_200B_206F_200C_200E_200F_200D_206D_202B_206B_206E_206F_206F_200E_200E_200D_202E_202C_200C_206A_206F_206D_206F_202E((IDisposable)colorDisposable2); - num2 = -1797212280; - break; - case 0: - num2 = -1797212277; - break; - } - continue; - end_IL_05d9: - break; - } - } - } - finally - { - num2 = ((colorDisposable == null) ? (-126209958) : (-126209959)); - while (true) - { - int num14 = num2; - int num4 = -126209957; - int num5 = num14; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = -126209959; - break; - case 2: - _202A_206A_202E_206E_200E_202D_202E_200B_202E_200F_206C_206C_200F_206F_200C_206C_206F_202A_200B_206F_200C_200E_200F_200D_206D_202B_206B_206E_206F_206F_200E_200E_200D_202E_202C_200C_206A_206F_206D_206F_202E((IDisposable)colorDisposable); - num2 = -126209958; - break; - case 1: - goto end_IL_0644; - } - continue; - end_IL_0644: - break; - } - } - } - finally - { - num2 = ((disabledDisposable == null) ? (-2019608515) : (-2019608516)); - while (true) - { - int num15 = num2; - int num4 = -2019608515; - int num5 = num15; - int num16 = num5 + num4; - int num17 = num5 & num4; - switch (num16 - (num17 + num17)) - { - case 2: - num2 = -2019608516; - break; - case 1: - _202A_206A_202E_206E_200E_202D_202E_200B_202E_200F_206C_206C_200F_206F_200C_206C_206F_202A_200B_206F_200C_200E_200F_200D_206D_202B_206B_206E_206F_206F_200E_200E_200D_202E_202C_200C_206A_206F_206D_206F_202E((IDisposable)disabledDisposable); - num2 = -2019608515; - break; - case 0: - goto end_IL_06af; - } - continue; - end_IL_06af: - break; - } - } - num2 = ((!disabled) ? (-905480179) : (-905480177)); - while (true) - { - int num18 = num2; - int num4 = -905480178; - int num5 = num18; - int num19 = num5 + num4; - int num20 = num5 & num4; - switch (num19 - (num20 + num20)) - { - case 8: - num2 = ((!_attunementController.IsRunning) ? (-905480184) : (-905480185)); - break; - case 0: - _202B_206C_206E_202A_206A_200D_202D_202C_206A_206B_206F_206D_202D_200C_200B_200E_202D_202E_200F_200B_200F_202B_202E_206E_206B_202D_200F_202B_202B_200B_206C_200C_202C_200C_202E_202E_206A_202D_202A_202B_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-570548611)); - return; - case 6: - _202B_206C_206E_202A_206A_200D_202D_202C_206A_206B_206F_206D_202D_200C_200B_200E_202D_202E_200F_200B_200F_202B_202E_206E_206B_202D_200F_202B_202B_200B_206C_200C_202C_200C_202E_202E_206A_202D_202A_202B_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2098903468)); - num2 = -905480179; - break; - case 4: - num2 = -905480177; - break; - case 1: - num2 = ((!_206D_202A_202D_206A_206B_202D_200E_206F_200E_200C_202E_200D_200F_206C_206F_200B_206C_200F_206C_206E_202C_202E_200F_206E_206E_202C_206B_200E_206E_200B_206D_206F_206B_200D_202C_206A_202B_206B_202E_206B_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? (-905480179) : (-905480188)); - break; - case 5: - _202B_206C_206E_202A_206A_200D_202D_202C_206A_206B_206F_206D_202D_200C_200B_200E_202D_202E_200F_200B_200F_202B_202E_206E_206B_202D_200F_202B_202B_200B_206C_200C_202C_200C_202E_202E_206A_202D_202A_202B_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-645021643)); - return; - case 11: - num2 = ((!_seasonalDutyController.IsRunning) ? (-905480183) : (-905480178)); - break; - case 7: - num2 = ((!_customDeliveryController.IsRunning) ? (-905480186) : (-905480181)); - break; - case 2: - _202B_206C_206E_202A_206A_200D_202D_202C_206A_206B_206F_206D_202D_200C_200B_200E_202D_202E_200F_200B_200F_202B_202E_206E_206B_202D_200F_202B_202B_200B_206C_200C_202C_200C_202E_202E_206A_202D_202A_202B_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-166560783)); - return; - case 9: - _202B_206C_206E_202A_206A_200D_202D_202C_206A_206B_206F_206D_202D_200C_200B_200E_202D_202E_200F_200B_200F_202B_202E_206E_206B_202D_200F_202B_202B_200B_206C_200C_202C_200C_202E_202E_206A_202D_202A_202B_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(52424384)); - return; - case 10: - num2 = ((!_fateController.IsRunning) ? (-905480187) : (-905480180)); - break; - case 3: - return; - } - } - } - finally - { - num2 = ((idDisposable == null) ? (-223217283) : (-223217284)); - while (true) - { - int num21 = num2; - int num4 = -223217283; - int num5 = num21; - int num22 = num5 + num4; - int num23 = num5 & num4; - switch (num22 - (num23 + num23)) - { - case 0: - goto end_IL_0918; - case 1: - _202A_206A_202E_206E_200E_202D_202E_200B_202E_200F_206C_206C_200F_206F_200C_206C_206F_202A_200B_206F_200C_200E_200F_200D_206D_202B_206B_206E_206F_206F_200E_200E_200D_202E_202C_200C_206A_206F_206D_206F_202E((IDisposable)idDisposable); - num2 = -223217283; - break; - case 2: - num2 = -223217284; - break; - } - continue; - end_IL_0918: - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private static string FormatElapsed(TimeSpan elapsed) - { - int num = ((!(elapsed.TotalHours >= 1.0)) ? (-1217920897) : (-1217920898)); - while (true) - { - int num2 = num; - int num3 = -1217920899; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = ((!(elapsed.TotalMinutes >= 1.0)) ? (-1217920899) : (-1217920900)); - break; - case 1: - { - IFormatProvider formatProvider = _202A_202E_206B_200E_206A_206B_202B_200B_202B_206F_206B_206C_202E_206A_202C_206D_202C_206C_202B_200E_206C_206F_202D_200C_206F_200F_206F_206A_206C_206F_200E_200E_200D_200E_200D_202B_202A_206B_206E_206E_202E(); - IFormatProvider formatProvider4 = formatProvider; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(3, 2, formatProvider); - defaultInterpolatedStringHandler3.AppendFormatted((int)elapsed.TotalMinutes); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1016237535)); - defaultInterpolatedStringHandler3.AppendFormatted(elapsed.Seconds, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1956092384)); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(396650032)); - return _202B_206C_206A_202B_202B_202E_206C_202E_200C_202E_206E_200F_200B_206F_206A_202B_200F_200F_200E_206B_202D_206B_202A_206A_200D_200C_200F_200F_202C_206D_206D_200E_202E_202E_202D_202A_200D_200E_200F_200F_202E(formatProvider4, ref defaultInterpolatedStringHandler3); - } - case 0: - { - IFormatProvider formatProvider = _202A_202E_206B_200E_206A_206B_202B_200B_202B_206F_206B_206C_202E_206A_202C_206D_202C_206C_202B_200E_206C_206F_202D_200C_206F_200F_206F_206A_206C_206F_200E_200E_200D_200E_200D_202B_202A_206B_206E_206E_202E(); - IFormatProvider formatProvider3 = formatProvider; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(1, 1, formatProvider); - defaultInterpolatedStringHandler2.AppendFormatted(elapsed.Seconds); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1658952639)); - return _202B_206C_206A_202B_202B_202E_206C_202E_200C_202E_206E_200F_200B_206F_206A_202B_200F_200F_200E_206B_202D_206B_202A_206A_200D_200C_200F_200F_202C_206D_206D_200E_202E_202E_202D_202A_200D_200E_200F_200F_202E(formatProvider3, ref defaultInterpolatedStringHandler2); - } - case 3: - { - IFormatProvider formatProvider = _202A_202E_206B_200E_206A_206B_202B_200B_202B_206F_206B_206C_202E_206A_202C_206D_202C_206C_202B_200E_206C_206F_202D_200C_206F_200F_206F_206A_206C_206F_200E_200E_200D_200E_200D_202B_202A_206B_206E_206E_202E(); - IFormatProvider formatProvider2 = formatProvider; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(5, 3, formatProvider); - defaultInterpolatedStringHandler.AppendFormatted((int)elapsed.TotalHours); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-794677548)); - defaultInterpolatedStringHandler.AppendFormatted(elapsed.Minutes, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1968563628)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(750084338)); - defaultInterpolatedStringHandler.AppendFormatted(elapsed.Seconds, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(128915746)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1658952639)); - return _202B_206C_206A_202B_202B_202E_206C_202E_200C_202E_206E_200F_200B_206F_206A_202B_200F_200F_200E_206B_202D_206B_202A_206A_200D_200C_200F_200F_202C_206D_206D_200E_202E_202E_202D_202A_200D_200E_200F_200F_202E(formatProvider2, ref defaultInterpolatedStringHandler); - } - case 4: - num = -1217920898; - break; - } - } - } - - void _206E_200E_206E_206F_202B_200D_200C_202A_200B_200E_202C_206A_200C_202B_202E_200C_200D_206D_200C_200C_206E_206E_202C_206B_200C_206E_206E_206E_202D_200E_206A_206B_200B_206A_200D_200F_202A_206D_206D_202D_202E(Vector2? P_0) - { - base.Size = P_0; - } - - void _200B_200B_202A_206E_206D_206C_206B_206A_206D_200E_206A_206A_206E_200D_200F_206E_206F_202C_206B_202A_200D_206B_200E_202C_206D_206C_206A_202E_206F_202B_206C_206E_200F_202D_202B_202D_200D_206E_206F_202E_202E(ImGuiCond P_0) - { - base.SizeCondition = P_0; - } - - void _206B_200C_202A_206F_200B_202B_206C_202A_200B_200F_200D_202B_200D_206A_206A_200F_206E_202D_206D_206B_202C_200E_206C_206C_202A_206D_206F_200C_202A_202D_206C_206E_206D_206D_206D_206A_206C_202D_206D_202D_202E(WindowSizeConstraints? P_0) - { - base.SizeConstraints = P_0; - } - - static void _206A_200F_202D_200E_206F_206B_206A_206C_206D_206B_206B_202D_206C_206B_202A_206C_202A_200F_206A_202E_200D_206E_202E_202C_206F_202C_200B_202D_206F_206A_206F_202A_202D_200B_206B_206C_200F_202E_202E_206F_202E() - { ImGui.Spacing(); } - static string _202D_206E_200E_206A_200E_200E_200F_202E_206F_206F_206E_202B_200C_202E_200B_200C_200F_200B_202B_200C_206E_202B_206C_202A_206C_200C_200B_200D_202D_202D_202A_200E_206C_206A_206C_200F_206E_202A_206F_200D_202E(FateDefinition P_0) - { - return P_0.Name; - } - - static int _206F_206F_202C_202A_202B_206B_202E_202B_206B_200D_202E_202A_206E_206B_200F_200B_206F_206A_206B_206A_202B_206F_206E_206F_206F_200D_202A_200B_202D_200D_200D_200C_202A_206B_202B_200C_202D_200D_200F_202E_202E(string P_0) - { - return P_0.Length; - } - - static ImRaii.DisabledDisposable _206A_202E_202E_206F_206F_202D_206A_206A_206E_202D_200E_200B_206D_200D_200E_200C_202B_202A_202D_200F_206E_202E_202A_202C_200E_206D_200D_206F_202E_202E_202D_206B_206E_202A_200E_200B_206F_202A_200F_206E_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static void _206A_202A_206A_200E_206A_206A_202E_206D_200F_202A_202A_200D_206A_206C_202C_202D_202A_202E_202E_206A_200E_202A_200D_202C_200D_206F_200C_206D_206B_200F_202A_202B_206D_202E_202E_202E_206F_202D_200E_202A_202E() - { - ImGui.AlignTextToFramePadding(); - } - - static void _200E_206B_206C_200E_202C_200B_206E_206A_202D_206B_206C_202B_202E_206B_202A_206F_200B_202E_206D_202D_206B_206C_202C_202A_202D_206D_206A_206F_200C_200B_206B_206D_200D_206E_206A_200E_202B_202C_200C_200F_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static void _200C_200C_202C_206C_200E_202E_202D_200F_206E_200D_200C_200C_200B_206F_206C_202E_200E_202D_200F_202C_202D_202A_202D_206F_200D_200E_202B_206C_206D_200D_202E_200D_200D_206B_202A_206D_200C_206F_200B_206D_202E() - { - ImGui.SameLine(); - } - - static ImGuiIOPtr _202E_202E_206A_202D_202D_200B_200E_202A_206D_200C_206F_200F_200B_206A_202A_200D_206F_206E_206C_202D_200E_206B_202A_200F_206A_206E_200E_202B_200E_206F_206A_200E_200B_206D_206B_206E_206E_202E_202D_202D_202E() - { - return ImGui.GetIO(); - } - - static void _206B_200B_202C_202D_202A_206C_200E_202D_200E_200F_202C_202C_202B_206D_202E_200F_202C_206B_202C_200B_202D_202D_206E_206C_200C_206E_200E_202B_200C_200E_206B_202A_200C_200F_202A_200F_206F_200F_200D_206F_202E(float P_0) - { - ImGui.SetNextItemWidth(P_0); - } - - static bool _206B_200C_206B_200C_200D_200F_200F_202C_200C_200B_206A_206C_200C_202A_200E_202E_200F_202B_202C_200C_202E_200C_200B_200F_206B_206D_202A_206F_200D_200D_200B_200D_202B_202A_202E_200B_202C_200B_200F_202B_202E(ImU8String P_0, ref int P_1, int P_2, int P_3, ImU8String P_4, ImGuiInputTextFlags P_5) - { - return ImGui.InputInt(P_0, ref P_1, P_2, P_3, P_4, P_5); - } - - static void _202B_206D_206C_202E_202A_200C_206D_206B_202C_202D_206C_200D_206C_202E_202E_206C_200B_202C_202D_200B_200E_200E_200F_206D_202E_200B_206C_206A_206A_202B_200B_206F_206D_200C_202A_202D_206E_202A_202E_206B_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static void _202A_206A_202E_206E_200E_202D_202E_200B_202E_200F_206C_206C_200F_206F_200C_206C_206F_202A_200B_206F_200C_200E_200F_200D_206D_202B_206B_206E_206F_206F_200E_200E_200D_202E_202C_200C_206A_206F_206D_206F_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool _200D_206A_206E_206F_206C_200B_200B_200E_202E_200E_206E_200D_206B_206E_206A_202C_200E_200E_200E_202A_206A_202D_202B_206E_202C_200B_200E_202C_202C_206A_206C_200D_202C_202B_202B_206B_206F_206C_202B_206A_202E(string P_0) - { - return string.IsNullOrWhiteSpace(P_0); - } - - static StringComparer _206C_206E_200F_200B_200D_200D_202B_200C_202A_200D_200B_206F_202A_202C_206D_206B_200D_200C_202D_206C_200D_200E_202E_200F_202D_200F_202D_200B_202D_200C_202D_206E_206F_200B_206E_200F_202B_206A_202E_200C_202E() - { - return StringComparer.OrdinalIgnoreCase; - } - - static void _200C_206D_202C_206E_206E_202D_206D_200C_206A_200D_200C_202E_202D_202B_206C_202C_200C_202C_206D_202E_206C_206D_206B_200E_206E_200F_206E_200C_202B_200F_200F_200E_206F_206D_202D_202D_206B_202B_206E_206F_202E(ImU8String P_0, ImGuiTableColumnFlags P_1, float P_2, uint P_3) - { - ImGui.TableSetupColumn(P_0, P_1, P_2, P_3); - } - - static void _200C_200D_200F_200C_202C_200C_202C_206B_206B_202C_200E_200F_202B_202D_202D_202D_200F_200D_206B_202A_206B_206F_202D_200D_202A_202A_202D_202B_206D_206B_206F_206A_200F_200D_200B_206C_206F_202B_206D_202E() + private void DrawFateTable() { + IEnumerable<FateDefinition> source = _fateDefinitionRegistry.Definitions.Values; + if (!string.IsNullOrWhiteSpace(_searchText)) + { + source = source.Where((FateDefinition f) => f.Name.Contains(_searchText, StringComparison.OrdinalIgnoreCase) || (_territoryData.GetName(f.TerritoryId) ?? f.Description).Contains(_searchText, StringComparison.OrdinalIgnoreCase)); + } + List<FateDefinition> list = source.OrderBy(delegate(FateDefinition f) + { + DateTime? eventExpiry = f.EventExpiry; + if (eventExpiry.HasValue) + { + DateTime valueOrDefault = eventExpiry.GetValueOrDefault(); + if (EventInfoComponent.NormalizeExpiry(valueOrDefault) - DateTime.UtcNow > TimeSpan.Zero) + { + return 0; + } + } + return 1; + }).ThenBy(delegate(FateDefinition f) + { + DateTime? eventExpiry = f.EventExpiry; + if (eventExpiry.HasValue) + { + DateTime valueOrDefault = eventExpiry.GetValueOrDefault(); + TimeSpan timeSpan = EventInfoComponent.NormalizeExpiry(valueOrDefault) - DateTime.UtcNow; + if (timeSpan > TimeSpan.Zero) + { + return timeSpan.TotalSeconds; + } + } + return double.MaxValue; + }).ThenBy<FateDefinition, string>((FateDefinition f) => f.Name, StringComparer.OrdinalIgnoreCase) + .ToList(); + if (list.Count == 0) + { + UiThemeUtils.EmptyState(FontAwesomeIcon.Search, "No FATEs match your search."); + return; + } + using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable("FateTable", 4, ImGuiTableFlags.SizingStretchProp | ImGuiTableFlags.ScrollY); + if (!tableDisposable) + { + return; + } + ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.None, 3f); + ImGui.TableSetupColumn("Zone", ImGuiTableColumnFlags.None, 2f); + ImGui.TableSetupColumn("Expiry", ImGuiTableColumnFlags.WidthFixed, 80f); + ImGui.TableSetupColumn("##Actions", ImGuiTableColumnFlags.WidthFixed, 30f); ImGui.TableHeadersRow(); + foreach (FateDefinition item in list) + { + ImGui.TableNextRow(); + bool flag = _fateController.IsRunning && _fateController.CurrentFate == item; + if (flag) + { + ImGui.TableSetBgColor(ImGuiTableBgTarget.RowBg0, ImGui.ColorConvertFloat4ToU32(UiThemeUtils.AccentDimColor)); + } + ImGui.TableNextColumn(); + DrawFateRowName(item, flag); + ImGui.TableNextColumn(); + ImGui.TextUnformatted(_territoryData.GetName(item.TerritoryId) ?? item.Description); + ImGui.TableNextColumn(); + DrawFateRowExpiry(item); + ImGui.TableNextColumn(); + bool disabled = _fateController.IsRunning || _seasonalDutyController.IsRunning || _customDeliveryController.IsRunning || _attunementController.IsRunning || _questController.AutomationType != QuestController.EAutomationType.Manual; + DrawFateRowActions(item, disabled); + } } - static void _206A_200F_206F_206D_202A_202D_202D_200E_202D_200D_206A_206E_206B_206C_202D_200F_202C_202D_206E_200D_202B_206C_206D_200C_206B_200E_206A_206F_206F_206E_202D_200D_202A_200C_206A_200C_202A_206B_206D_202C_202E() + private void DrawFateRowName(FateDefinition fate, bool isActive) { - ImGui.TableNextRow(); + if (isActive) + { + ImGui.TextColored(in UiThemeUtils.AccentColor, fate.Name); + } + else + { + ImGui.TextUnformatted(fate.Name); + } + if (!ImGui.IsItemHovered()) + { + return; + } + using (ImRaii.Tooltip()) + { + ImGui.TextColored(in UiThemeUtils.PrimaryTextColor, fate.Name); + ImGui.Separator(); + ImGui.PushTextWrapPos(300f); + ImGui.TextUnformatted(fate.Description); + ImGui.PopTextWrapPos(); + ImGui.Spacing(); + string nameAndId = _territoryData.GetNameAndId(fate.TerritoryId); + ImU8String text = new ImU8String(6, 1); + text.AppendLiteral("Zone: "); + text.AppendFormatted(nameAndId); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text); + ImU8String text2 = new ImU8String(9, 1); + text2.AppendLiteral("Targets: "); + text2.AppendFormatted(fate.Targets.Count); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text2); + if (fate.RequiredStatusId.HasValue) + { + ImGui.TextColored(in UiThemeUtils.StatusActive, "Requires transformation"); + } + DateTime? eventExpiry = fate.EventExpiry; + if (eventExpiry.HasValue) + { + DateTime valueOrDefault = eventExpiry.GetValueOrDefault(); + TimeSpan timeSpan = EventInfoComponent.NormalizeExpiry(valueOrDefault) - DateTime.UtcNow; + if (timeSpan > TimeSpan.Zero) + { + string text3 = EventInfoComponent.FormatRemainingFull(timeSpan); + ImGui.TextColored(in UiThemeUtils.StatusActive, text3); + } + } + } } - static uint _200B_202D_206E_200E_206C_202B_202C_206E_206A_200B_200F_206E_200D_206D_206C_206B_206F_202C_202E_200F_202B_206C_206C_206B_206C_200F_206C_206F_202B_206E_200C_206E_202D_202D_200C_206E_206D_206E_200C_200F_202E(Vector4 P_0) + private static void DrawFateRowExpiry(FateDefinition fate) { - return ImGui.ColorConvertFloat4ToU32(P_0); + DateTime? eventExpiry = fate.EventExpiry; + if (eventExpiry.HasValue) + { + DateTime valueOrDefault = eventExpiry.GetValueOrDefault(); + TimeSpan timeSpan = EventInfoComponent.NormalizeExpiry(valueOrDefault) - DateTime.UtcNow; + if (timeSpan > TimeSpan.Zero) + { + string text = EventInfoComponent.FormatRemainingDays(timeSpan); + ImGui.TextColored((timeSpan.TotalDays < 3.0) ? UiThemeUtils.StatusActive : UiThemeUtils.DimTextColor, text); + } + else + { + ImGui.TextColored(in UiThemeUtils.MutedTextColor, "Expired"); + } + } + else + { + ImGui.TextColored(in UiThemeUtils.MutedTextColor, "--"); + } } - static void _202B_206E_202C_202C_206F_200F_200B_206A_206F_200F_200B_206B_206E_200D_206B_200D_202E_200B_206F_200D_200C_200C_206F_202B_200E_200B_206F_206B_202B_202E_206E_202D_206F_202D_202D_206A_202E_202C_206F_202B_202E(ImGuiTableBgTarget P_0, uint P_1) + private void DrawFateRowActions(FateDefinition fate, bool disabled) { - ImGui.TableSetBgColor(P_0, P_1); + uint? num = fate.RequiredQuestId; + object obj; + if (num.HasValue) + { + uint valueOrDefault = num.GetValueOrDefault(); + if (valueOrDefault <= 65535) + { + obj = new QuestId((ushort)valueOrDefault); + goto IL_004d; + } + } + obj = null; + goto IL_004d; + IL_004d: + QuestId questId = (QuestId)obj; + bool flag = questId != null && !_questFunctions.IsQuestComplete(questId); + ImU8String id = new ImU8String(5, 1); + id.AppendLiteral("fate_"); + id.AppendFormatted(fate.Name); + using (ImRaii.PushId(id)) + { + if (flag) + { + using (ImRaii.PushFont(UiBuilder.IconFont)) + { + ImGui.TextColored(in UiThemeUtils.StatusLocked, FontAwesomeIcon.Times.ToIconString()); + } + if (ImGui.IsItemHovered()) + { + IQuestInfo questInfo; + string value = (_questData.TryGetQuestInfo(new QuestId(fate.RequiredQuestId.Value), out questInfo) ? questInfo.Name : (num?.ToString(CultureInfo.InvariantCulture) ?? "Unknown")); + ImU8String tooltip = new ImU8String(33, 1); + tooltip.AppendLiteral("Requires \""); + tooltip.AppendFormatted(value); + tooltip.AppendLiteral("\" to be completed first"); + ImGui.SetTooltip(tooltip); + } + return; + } + using (ImRaii.Disabled(disabled)) + { + using (ImRaii.PushColor(ImGuiCol.Button, UiThemeUtils.PlayButtonColor)) + { + using (ImRaii.PushColor(ImGuiCol.ButtonHovered, UiThemeUtils.PlayButtonHover)) + { + using (ImRaii.PushColor(ImGuiCol.ButtonActive, UiThemeUtils.PlayButtonActive)) + { + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.PlayButtonText)) + { + if (UiThemeUtils.IconButton(FontAwesomeIcon.Play, ImGui.GetFrameHeight())) + { + _movementController.Stop(); + _questController.Stop("FATE farming start"); + _seasonalDutyController.Stop("FATE farming start"); + _customDeliveryController.Stop("FATE farming start"); + _attunementController.Stop("FATE farming start"); + int? cycleLimit = ((_cycleLimit > 0) ? new int?(_cycleLimit) : ((int?)null)); + _fateController.Start(fate, cycleLimit); + } + } + } + } + } + } + if (disabled && ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) + { + if (_fateController.IsRunning) + { + ImGui.SetTooltip("Already farming a FATE"); + } + else if (_seasonalDutyController.IsRunning) + { + ImGui.SetTooltip("Stop seasonal duty farming first"); + } + else if (_customDeliveryController.IsRunning) + { + ImGui.SetTooltip("Stop custom delivery first"); + } + else if (_attunementController.IsRunning) + { + ImGui.SetTooltip("Stop attunement first"); + } + else + { + ImGui.SetTooltip("Stop quest automation first"); + } + } + } } - static bool _202D_202B_202D_200D_206A_206F_206E_202C_206F_200D_200B_202C_200E_200E_200B_200C_206F_200D_200B_200D_202C_202A_202B_202B_202D_202E_202B_206C_206E_202A_200D_206C_202C_202A_200E_206D_206C_200B_206E_202A_202E() + private static string FormatElapsed(TimeSpan elapsed) { - return ImGui.TableNextColumn(); - } - - static ushort _202D_200E_206C_206C_202D_200E_202D_206A_202D_202A_200B_206C_202E_206A_202D_202C_202E_200E_206D_200F_202D_202A_202C_202D_202A_202C_206D_206F_202C_200F_200B_206B_206A_200E_202B_206C_206D_202A_200E_200D_202E(FateDefinition P_0) - { - return P_0.TerritoryId; - } - - static string _200D_206D_202B_206A_200B_202C_202E_206A_200D_202A_200C_206C_202B_200C_206C_200C_200F_206F_202A_206B_202B_200B_202D_200B_202E_202D_200D_200D_202E_202B_206D_200D_202A_202E_202E_202D_206C_202B_206A_202B_202E(FateDefinition P_0) - { - return P_0.Description; - } - - static bool _200F_206A_202A_206A_206F_200B_202E_200F_206C_202E_202B_202B_202C_200B_206F_202B_200D_200C_202E_206C_206B_200B_200C_200E_206E_202B_206C_200C_200C_200B_206E_202B_202C_200D_206A_202E_206D_200E_202A_206E_202E() - { - return ImGui.IsItemHovered(); - } - - static ImRaii.TooltipDisposable _202A_206F_202C_202A_202E_206B_206B_202B_202C_202E_206D_206E_200E_206C_202A_200B_206B_200F_200E_200B_200F_200B_200F_202A_206A_202A_202C_206C_206B_206D_206A_200F_200C_206D_206F_200C_202E_206F_206B_202D_202E() - { - return ImRaii.Tooltip(); - } - - static void _206F_200D_202E_202C_206D_206C_202A_206C_206F_206B_202B_200F_202B_200E_202A_202A_200E_200C_200B_202C_202E_202A_206A_206D_206B_206C_202E_206A_202A_206A_200E_206E_202C_206B_206F_200B_202D_206E_206B_206F_202E() - { - ImGui.Separator(); - } - - static void _206C_206E_200B_202C_202A_206C_200D_206D_200D_202A_206B_200D_202D_200B_200F_200C_202B_206F_200D_200C_200F_206B_200D_206D_206D_200E_206F_202B_200C_200F_200E_206D_206C_202C_206B_200D_202E_202D_202B_202E(float P_0) - { - ImGui.PushTextWrapPos(P_0); - } - - static void _206C_206B_206E_202A_202D_206B_202D_206E_206A_206A_202A_206F_206B_206D_202D_206C_202B_206C_202B_200D_206D_200E_200F_206D_200C_200E_202A_202D_200F_206D_206F_202C_206B_200D_206B_202D_202C_200E_206B_202E() - { - ImGui.PopTextWrapPos(); - } - - static List<FateActionTarget> _206E_202A_206C_202E_206E_202C_202E_206B_202D_206E_202C_206F_206D_200F_200F_202B_206A_202C_200C_202A_202B_206B_206B_200D_206E_206E_200E_200D_206E_202B_200F_200F_200F_200B_206F_206F_206D_202C_202C_202E_202E(FateDefinition P_0) - { - return P_0.Targets; - } - - static EStatus? _200E_200C_206F_200C_200C_206E_200B_202D_202E_206A_206D_206B_206E_202C_202D_206F_202B_200E_206F_206B_206D_202B_202C_206A_200C_206D_200D_202C_202A_202A_206B_206D_202A_202D_206C_206C_202B_200F_206A_200C_202E(FateDefinition P_0) - { - return P_0.RequiredStatusId; - } - - static DateTime? _206C_202E_200E_202A_202E_206E_206B_206F_200C_202B_200B_200B_200F_200B_206E_200C_206B_200C_200F_202E_202C_206E_202A_206E_206F_202D_206B_202B_206C_206F_202D_206B_206D_200B_200D_202D_200C_206E_206E_206A_202E(FateDefinition P_0) - { - return P_0.EventExpiry; - } - - static ushort? _206F_202C_202D_202C_200E_206E_202A_200B_200E_202A_206C_200B_200E_206D_200B_206A_206B_206B_200E_206D_200B_200B_206C_200F_202A_202C_202E_200F_206C_206E_206D_200D_200F_206E_206D_200B_200F_202E_200D_206F_202E(FateDefinition P_0) - { - return P_0.RequiredQuestId; - } - - static QuestId _206E_202E_206D_202B_200D_200D_202B_206D_202A_202A_200D_206C_206A_202D_200C_200D_200B_206C_202B_206B_206F_206A_202A_200B_200B_206C_206B_200D_206C_202C_202D_202B_206B_202C_206A_202E_206A_202D_200C_202E_202E(ushort P_0) - { - return new QuestId(P_0); - } - - static bool _202E_206F_202C_200C_202D_206C_206A_202B_202B_200F_206D_200C_206A_202D_202A_206C_206D_200F_206B_200D_206A_202E_206F_206B_202C_202B_202A_200B_200D_200E_200B_202E_200B_200E_200C_200F_202C_202C_206C_202C_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } - - static ImRaii.IdDisposable _206C_202B_206D_202A_202C_206D_202A_206A_202C_206D_200B_206F_206F_200D_206E_200D_206B_206A_200B_206A_202D_202C_206A_200B_202A_206A_206B_202D_200E_206D_206A_200C_200F_200F_200D_200F_206C_200B_202A_206F_202E(ImU8String P_0, bool P_1) - { - return ImRaii.PushId(P_0, P_1); - } - - static ImFontPtr _200D_200F_206F_200C_200D_206D_206A_202E_200C_200D_200B_202E_206C_200C_206E_200C_200C_206E_206E_206F_206F_206A_200C_200C_200F_202A_206D_200D_200F_202D_200E_202B_202B_202E_206C_202C_202D_200F_202E_206F_202E() - { - return UiBuilder.IconFont; - } - - static ImRaii.FontDisposable _206C_202D_202A_206B_200B_202B_206A_202D_200B_200E_206A_200D_200F_206C_200B_200B_206C_202C_202D_202E_206A_202A_206F_200C_202D_200B_202C_202B_202B_200C_206C_202E_202D_202B_206D_200F_202E_200C_202A_206D_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static string _202D_200D_200C_200B_206D_206F_206A_206B_202B_202C_206E_206A_200F_206F_206B_200D_206B_200E_202A_200B_200F_200E_202A_200E_206F_206D_206B_200F_206E_206F_200F_202C_202A_202C_206A_202B_202D_200D_200E_202C_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static CultureInfo _202A_202E_206B_200E_206A_206B_202B_200B_202B_206F_206B_206C_202E_206A_202C_206D_202C_206C_202B_200E_206C_206F_202D_200C_206F_200F_206F_206A_206C_206F_200E_200E_200D_200E_200D_202B_202A_206B_206E_206E_202E() - { - return CultureInfo.InvariantCulture; - } - - static void _202B_206C_206E_202A_206A_200D_202D_202C_206A_206B_206F_206D_202D_200C_200B_200E_202D_202E_200F_200B_200F_202B_202E_206E_206B_202D_200F_202B_202B_200B_206C_200C_202C_200C_202E_202E_206A_202D_202A_202B_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } - - static ImRaii.ColorDisposable _206D_202C_202E_206E_200E_200B_202E_202C_206D_200C_202D_202C_200E_202A_206C_202C_202E_206E_200F_202B_202A_202E_202D_202D_200C_206B_206D_206D_200C_206C_202B_200B_206E_202D_206E_206E_202E_206A_202E_200C_202E(ImGuiCol P_0, Vector4 P_1, bool P_2) - { - return ImRaii.PushColor(P_0, P_1, P_2); - } - - static float _206B_200D_200E_200D_206B_206F_202C_206B_206F_200C_200F_200C_206A_206D_200C_202D_206F_202E_200E_200C_206E_202C_202D_202A_202D_200D_202C_200E_206F_206B_202C_202E_202E_200E_206E_206A_206D_206A_206B_206C_202E() - { - return ImGui.GetFrameHeight(); - } - - static bool _206D_202A_202D_206A_206B_202D_200E_206F_200E_200C_202E_200D_200F_206C_206F_200B_206C_200F_206C_206E_202C_202E_200F_206E_206E_202C_206B_200E_206E_200B_206D_206F_206B_200D_202C_206A_202B_206B_202E_206B_202E(ImGuiHoveredFlags P_0) - { - return ImGui.IsItemHovered(P_0); - } - - static string _202B_206C_206A_202B_202B_202E_206C_202E_200C_202E_206E_200F_200B_206F_206A_202B_200F_200F_200E_206B_202D_206B_202A_206A_200D_200C_200F_200F_202C_206D_206D_200E_202E_202E_202D_202A_200D_200E_200F_200F_202E(IFormatProvider P_0, ref DefaultInterpolatedStringHandler P_1) - { - return string.Create(P_0, ref P_1); - } - - static bool _202B_206D_206F_202B_200E_206D_202B_200E_202D_202E_206A_202B_206E_200F_202C_206A_202E_202C_206E_200D_206D_202E_200E_202E_206B_202E_206C_200C_206E_202E_200F_206A_202C_202D_200E_202D_202E_200B_200C_202C_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); + IFormatProvider invariantCulture; + if (elapsed.TotalHours >= 1.0) + { + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider = invariantCulture; + DefaultInterpolatedStringHandler handler = new DefaultInterpolatedStringHandler(5, 3, invariantCulture); + handler.AppendFormatted((int)elapsed.TotalHours); + handler.AppendLiteral("h "); + handler.AppendFormatted(elapsed.Minutes, "D2"); + handler.AppendLiteral("m "); + handler.AppendFormatted(elapsed.Seconds, "D2"); + handler.AppendLiteral("s"); + return string.Create(provider, ref handler); + } + if (elapsed.TotalMinutes >= 1.0) + { + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider2 = invariantCulture; + DefaultInterpolatedStringHandler handler2 = new DefaultInterpolatedStringHandler(3, 2, invariantCulture); + handler2.AppendFormatted((int)elapsed.TotalMinutes); + handler2.AppendLiteral("m "); + handler2.AppendFormatted(elapsed.Seconds, "D2"); + handler2.AppendLiteral("s"); + return string.Create(provider2, ref handler2); + } + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider3 = invariantCulture; + DefaultInterpolatedStringHandler handler3 = new DefaultInterpolatedStringHandler(1, 1, invariantCulture); + handler3.AppendFormatted(elapsed.Seconds); + handler3.AppendLiteral("s"); + return string.Create(provider3, ref handler3); } } diff --git a/Questionable/Questionable.Windows/JournalProgressWindow.cs b/Questionable/Questionable.Windows/JournalProgressWindow.cs index 82e818b..9cf9de5 100644 --- a/Questionable/Questionable.Windows/JournalProgressWindow.cs +++ b/Questionable/Questionable.Windows/JournalProgressWindow.cs @@ -1,10 +1,6 @@ using System; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Threading.Tasks; -using Dalamud.Bindings.ImGui; -using Dalamud.Configuration; using Dalamud.Interface; using Dalamud.Interface.Utility; using Dalamud.Interface.Utility.Raii; @@ -20,23 +16,23 @@ internal sealed class JournalProgressWindow : ThemedWindow, IDisposable { private static readonly SidebarNav.Group[] NavGroups = new SidebarNav.Group[3] { - new SidebarNav.Group(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1816330610), new SidebarNav.Item[5] + new SidebarNav.Group("Progress", new SidebarNav.Item[5] { - new SidebarNav.Item(FontAwesomeIcon.Book, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1914358154)), - new SidebarNav.Item(FontAwesomeIcon.Dungeon, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2007815205)), - new SidebarNav.Item(FontAwesomeIcon.Wifi, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1703030104)), - new SidebarNav.Item(FontAwesomeIcon.Leaf, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-226723532)), - new SidebarNav.Item(FontAwesomeIcon.Gift, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-2013041662)) + new SidebarNav.Item(FontAwesomeIcon.Book, "Quests"), + new SidebarNav.Item(FontAwesomeIcon.Dungeon, "Duties"), + new SidebarNav.Item(FontAwesomeIcon.Wifi, "Attunement"), + new SidebarNav.Item(FontAwesomeIcon.Leaf, "Gathering Points"), + new SidebarNav.Item(FontAwesomeIcon.Gift, "Item Rewards") }), - new SidebarNav.Group(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-491431929), new SidebarNav.Item[2] + new SidebarNav.Group("Explore", new SidebarNav.Item[2] { - new SidebarNav.Item(FontAwesomeIcon.Map, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1518072802)), - new SidebarNav.Item(FontAwesomeIcon.ProjectDiagram, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1675692115)) + new SidebarNav.Item(FontAwesomeIcon.Map, "Quest Map"), + new SidebarNav.Item(FontAwesomeIcon.ProjectDiagram, "Quest Chain") }), - new SidebarNav.Group(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1013283532), new SidebarNav.Item[2] + new SidebarNav.Group("Societies", new SidebarNav.Item[2] { - new SidebarNav.Item(FontAwesomeIcon.Handshake, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1587107701)), - new SidebarNav.Item(FontAwesomeIcon.BoxOpen, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1550265517)) + new SidebarNav.Item(FontAwesomeIcon.Handshake, "Allied Societies"), + new SidebarNav.Item(FontAwesomeIcon.BoxOpen, "Custom Deliveries") }) }; @@ -77,9 +73,8 @@ internal sealed class JournalProgressWindow : ThemedWindow, IDisposable private int _selectTabNextFrame = -1; - [MethodImpl(MethodImplOptions.NoInlining)] public JournalProgressWindow(QuestJournalComponent questJournalComponent, QuestRewardComponent questRewardComponent, AlliedSocietyJournalComponent alliedSocietyJournalComponent, CustomDeliveryJournalComponent customDeliveryJournalComponent, GatheringJournalComponent gatheringJournalComponent, DutyJournalComponent dutyJournalComponent, QuestMapComponent questMapComponent, QuestChainComponent questChainComponent, AttunementJournalComponent attunementJournalComponent, QuestJournalUtils questJournalUtils, QuestRegistry questRegistry, IClientState clientState, IFramework framework, IDalamudPluginInterface pluginInterface, Configuration configuration) - : base(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-994875588)) + : base("Journal Progress###QuestionableJournalProgress") { _questJournalComponent = questJournalComponent; _alliedSocietyJournalComponent = alliedSocietyJournalComponent; @@ -103,50 +98,33 @@ internal sealed class JournalProgressWindow : ThemedWindow, IDisposable _questMapComponent.QuestJournalUtils = questJournalUtils; _attunementJournalComponent.SelectTabAction = SelectTab; _attunementJournalComponent.QuestChainComponent = _questChainComponent; - _200D_200E_200C_206D_202C_206B_200C_200D_206E_202C_200B_202B_200D_206F_206C_202B_206A_206E_202D_200F_206D_206B_206C_206E_200F_200F_202D_202D_200E_200F_206A_206B_200D_206D_202D_202C_200B_206C_206E_206F_202E(_clientState, (Action)_questJournalComponent.RefreshCounts); - _200E_206E_202B_202C_206C_202B_206E_200F_206C_202B_200E_202D_202A_202E_206B_202B_206D_200F_200B_202D_202A_200F_200D_206B_200D_202E_202A_200F_200E_202D_206D_206B_200D_206A_202B_200B_206C_206A_202A_202E(_clientState, (IClientState.LogoutDelegate)_dutyJournalComponent.ClearCounts); - _200D_200E_200C_206D_202C_206B_200C_200D_206E_202C_200B_202B_200D_206F_206C_202B_206A_206E_202D_200F_206D_206B_206C_206E_200F_200F_202D_202D_200E_200F_206A_206B_200D_206D_202D_202C_200B_206C_206E_206F_202E(_clientState, (Action)_gatheringJournalComponent.RefreshCounts); - _200D_200E_200C_206D_202C_206B_200C_200D_206E_202C_200B_202B_200D_206F_206C_202B_206A_206E_202D_200F_206D_206B_206C_206E_200F_200F_202D_202D_200E_200F_206A_206B_200D_206D_202D_202C_200B_206C_206E_206F_202E(_clientState, (Action)_dutyJournalComponent.RefreshCounts); - _200E_206E_202B_202C_206C_202B_206E_200F_206C_202B_200E_202D_202A_202E_206B_202B_206D_200F_200B_202D_202A_200F_200D_206B_200D_202E_202A_200F_200E_202D_206D_206B_200D_206A_202B_200B_206C_206A_202A_202E(_clientState, (IClientState.LogoutDelegate)_questJournalComponent.ClearCounts); - _200E_206E_202B_202C_206C_202B_206E_200F_206C_202B_200E_202D_202A_202E_206B_202B_206D_200F_200B_202D_202A_200F_200D_206B_200D_202E_202A_200F_200E_202D_206D_206B_200D_206A_202B_200B_206C_206A_202A_202E(_clientState, (IClientState.LogoutDelegate)_gatheringJournalComponent.ClearCounts); - _200D_200E_200C_206D_202C_206B_200C_200D_206E_202C_200B_202B_200D_206F_206C_202B_206A_206E_202D_200F_206D_206B_206C_206E_200F_200F_202D_202D_200E_200F_206A_206B_200D_206D_202D_202C_200B_206C_206E_206F_202E(_clientState, (Action)_attunementJournalComponent.RefreshCounts); - _200E_206E_202B_202C_206C_202B_206E_200F_206C_202B_200E_202D_202A_202E_206B_202B_206D_200F_200B_202D_202A_200F_200D_206B_200D_202E_202A_200F_200E_202D_206D_206B_200D_206A_202B_200B_206C_206A_202A_202E(_clientState, (IClientState.LogoutDelegate)_attunementJournalComponent.ClearCounts); + _clientState.Login += _questJournalComponent.RefreshCounts; + _clientState.Logout += _dutyJournalComponent.ClearCounts; + _clientState.Login += _gatheringJournalComponent.RefreshCounts; + _clientState.Login += _dutyJournalComponent.RefreshCounts; + _clientState.Logout += _questJournalComponent.ClearCounts; + _clientState.Logout += _gatheringJournalComponent.ClearCounts; + _clientState.Login += _attunementJournalComponent.RefreshCounts; + _clientState.Logout += _attunementJournalComponent.ClearCounts; _questRegistry.Reloaded += OnQuestsReloaded; - _202D_206F_206D_200C_202E_206C_206E_206D_206D_206A_200F_202E_202C_200E_200B_206E_200E_202A_200B_200E_206D_200E_206A_200F_206D_202A_202B_206A_202C_206F_202D_200B_206B_206B_206C_206B_206B_200E_200D_202E((WindowSizeConstraints?)new WindowSizeConstraints + base.SizeConstraints = new WindowSizeConstraints { MinimumSize = new Vector2(700f, 500f) - }); + }; } public void SelectTab(string tabName) { int num = Array.IndexOf(FlatLabels, tabName); - int num2 = ((num < 0) ? (-48410120) : (-48410119)); - while (true) + if (num >= 0) { - int num3 = num2; - int num4 = -48410120; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 0: - return; - case 1: - _selectTabNextFrame = num; - num2 = -48410120; - break; - case 2: - num2 = -48410119; - break; - } + _selectTabNextFrame = num; } } private void OnQuestsReloaded(object? sender, EventArgs e) { - _206B_206A_206E_206D_202B_202B_200B_206A_206E_206B_200C_200F_200D_202E_200E_200B_200C_206F_200E_202E_206B_200D_206C_206A_200B_206C_206B_206E_206A_200E_206E_202D_206E_202A_200E_206C_200C_202E_200D_202E_202E(_framework, (Action)delegate + _framework.RunOnFrameworkThread(delegate { _questJournalComponent.RefreshCounts(); _dutyJournalComponent.RefreshCounts(); @@ -160,195 +138,57 @@ internal sealed class JournalProgressWindow : ThemedWindow, IDisposable public override void OnOpen() { int num = Array.IndexOf<string>(FlatLabels, _configuration.JournalLastPage); - int num2 = ((num < 0) ? (-747516313) : (-747516316)); - while (true) + if (num >= 0) { - int num3 = num2; - int num4 = -747516314; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = -747516316; - break; - case 2: - _selectedTab = num; - num2 = -747516313; - break; - case 1: - _questJournalComponent.UpdateFilter(); - _dutyJournalComponent.UpdateFilter(); - _gatheringJournalComponent.UpdateFilter(); - _attunementJournalComponent.UpdateFilter(); - _questMapComponent.MarkDirty(); - _questChainComponent.MarkDirty(); - return; - } + _selectedTab = num; } + _questJournalComponent.UpdateFilter(); + _dutyJournalComponent.UpdateFilter(); + _gatheringJournalComponent.UpdateFilter(); + _attunementJournalComponent.UpdateFilter(); + _questMapComponent.MarkDirty(); + _questChainComponent.MarkDirty(); } - [MethodImpl(MethodImplOptions.NoInlining)] public override void DrawContent() { - int num = ((_selectTabNextFrame < 0) ? 376912243 : 376912240); - while (true) + if (_selectTabNextFrame >= 0) { - int num2 = num; - int num3 = 376912242; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + SetSelectedTab(_selectTabNextFrame); + _selectTabNextFrame = -1; + } + SetSelectedTab(SidebarNav.Draw(NavGroups, _selectedTab)); + using ImRaii.ChildDisposable childDisposable = ImRaii.Child("##qstJournalContent", Vector2.Zero); + if ((bool)childDisposable) + { + using (ImRaii.PushIndent(8f * ImGuiHelpers.GlobalScale)) { - case 0: - num = 376912240; - break; - case 2: - SetSelectedTab(_selectTabNextFrame); - _selectTabNextFrame = -1; - num = 376912243; - break; - case 1: - { - SetSelectedTab(SidebarNav.Draw(NavGroups, _selectedTab)); - using ImRaii.ChildDisposable childDisposable = _206E_202E_206A_206C_202E_202D_200E_202E_206D_206D_200C_202A_200F_206E_202C_202E_206D_200B_206B_206C_200F_200E_200C_206B_200B_200E_206D_200F_202E_202E_200B_200D_200B_200C_202B_206E_206B_202E_206C_200E_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1458524227), Vector2.Zero); - if (!(bool)childDisposable) - { - return; - } - ImRaii.IndentDisposable indentDisposable = _202D_206F_206A_206E_206D_202C_202B_206B_200D_206F_206E_200D_206E_200C_206B_206E_202A_206B_200E_202E_202C_202D_206F_202E_206E_206A_202C_206C_202B_202C_202A_200F_202B_206E_202C_202E_202B_202A_200B_202A_202E(8f * _206F_200D_200C_206B_202A_206E_200E_206E_206C_202B_206F_206F_202C_202E_206D_206C_202C_200C_202C_202D_202D_206F_206A_206D_202A_206A_202D_206E_206D_206B_206E_206C_206C_206B_202B_206C_206B_202E_200D_202C_202E(), true, true); - try - { - _pages[_selectedTab](); - return; - } - finally - { - num = ((indentDisposable == null) ? 1782540339 : 1782540336); - while (true) - { - int num7 = num; - num3 = 1782540338; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1782540336; - break; - case 2: - _202D_200F_202D_200F_206A_206A_206F_202E_206B_200C_202A_206C_206C_206C_202D_206A_206B_202B_200B_206E_206E_200E_206B_202B_202A_206B_202B_202E_200F_202C_202A_202A_202C_206B_206A_200E_200C_200F_206E_206F_202E((IDisposable)indentDisposable); - num = 1782540339; - break; - case 1: - goto end_IL_00fb; - } - continue; - end_IL_00fb: - break; - } - } - } + _pages[_selectedTab](); + return; } } } private void SetSelectedTab(int index) { - int num = ((index != _selectedTab) ? 1049819639 : 1049819636); - while (true) + if (index != _selectedTab) { - int num2 = num; - int num3 = 1049819637; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0047; - case 1: - return; - case 2: - _selectedTab = index; - _configuration.JournalLastPage = FlatLabels[index]; - _200D_206A_206B_200C_202B_200D_202B_200D_200F_206A_206F_202C_206F_200C_200B_206E_202C_206F_200D_206F_200E_206E_202A_200D_206D_206B_200C_202B_202B_206C_206C_202E_202C_206E_206D_206A_200B_202C_206F_206C_202E(_pluginInterface, (IPluginConfiguration)_configuration); - return; - } - continue; - IL_0047: - num = 1049819636; + _selectedTab = index; + _configuration.JournalLastPage = FlatLabels[index]; + _pluginInterface.SavePluginConfig(_configuration); } } public void Dispose() { _questRegistry.Reloaded -= OnQuestsReloaded; - _200E_206E_206F_206F_200B_202A_206A_202C_200D_200B_202A_206D_206A_202E_200F_202A_206D_200E_206B_206D_202E_202A_206B_206D_206D_200F_202B_206D_202B_200B_206B_206B_202B_200D_206E_206E_200E_200C_206E_206E_202E(_clientState, (IClientState.LogoutDelegate)_attunementJournalComponent.ClearCounts); - _202E_206A_206D_206E_202E_206E_202B_202B_202C_202A_202E_200C_202C_206C_202C_206D_200E_200F_202A_202E_200B_202C_206F_200F_206B_202C_206E_200D_206E_206A_202E_206D_200C_206E_202B_202D_202C_202B_200B_206A_202E(_clientState, (Action)_attunementJournalComponent.RefreshCounts); - _200E_206E_206F_206F_200B_202A_206A_202C_200D_200B_202A_206D_206A_202E_200F_202A_206D_200E_206B_206D_202E_202A_206B_206D_206D_200F_202B_206D_202B_200B_206B_206B_202B_200D_206E_206E_200E_200C_206E_206E_202E(_clientState, (IClientState.LogoutDelegate)_gatheringJournalComponent.ClearCounts); - _200E_206E_206F_206F_200B_202A_206A_202C_200D_200B_202A_206D_206A_202E_200F_202A_206D_200E_206B_206D_202E_202A_206B_206D_206D_200F_202B_206D_202B_200B_206B_206B_202B_200D_206E_206E_200E_200C_206E_206E_202E(_clientState, (IClientState.LogoutDelegate)_questJournalComponent.ClearCounts); - _202E_206A_206D_206E_202E_206E_202B_202B_202C_202A_202E_200C_202C_206C_202C_206D_200E_200F_202A_202E_200B_202C_206F_200F_206B_202C_206E_200D_206E_206A_202E_206D_200C_206E_202B_202D_202C_202B_200B_206A_202E(_clientState, (Action)_dutyJournalComponent.RefreshCounts); - _202E_206A_206D_206E_202E_206E_202B_202B_202C_202A_202E_200C_202C_206C_202C_206D_200E_200F_202A_202E_200B_202C_206F_200F_206B_202C_206E_200D_206E_206A_202E_206D_200C_206E_202B_202D_202C_202B_200B_206A_202E(_clientState, (Action)_gatheringJournalComponent.RefreshCounts); - _200E_206E_206F_206F_200B_202A_206A_202C_200D_200B_202A_206D_206A_202E_200F_202A_206D_200E_206B_206D_202E_202A_206B_206D_206D_200F_202B_206D_202B_200B_206B_206B_202B_200D_206E_206E_200E_200C_206E_206E_202E(_clientState, (IClientState.LogoutDelegate)_dutyJournalComponent.ClearCounts); - _202E_206A_206D_206E_202E_206E_202B_202B_202C_202A_202E_200C_202C_206C_202C_206D_200E_200F_202A_202E_200B_202C_206F_200F_206B_202C_206E_200D_206E_206A_202E_206D_200C_206E_202B_202D_202C_202B_200B_206A_202E(_clientState, (Action)_questJournalComponent.RefreshCounts); - } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static void _200D_200E_200C_206D_202C_206B_200C_200D_206E_202C_200B_202B_200D_206F_206C_202B_206A_206E_202D_200F_206D_206B_206C_206E_200F_200F_202D_202D_200E_200F_206A_206B_200D_206D_202D_202C_200B_206C_206E_206F_202E(IClientState P_0, Action P_1) - { - P_0.Login += P_1; - } - - static void _200E_206E_202B_202C_206C_202B_206E_200F_206C_202B_200E_202D_202A_202E_206B_202B_206D_200F_200B_202D_202A_200F_200D_206B_200D_202E_202A_200F_200E_202D_206D_206B_200D_206A_202B_200B_206C_206A_202A_202E(IClientState P_0, IClientState.LogoutDelegate P_1) - { - P_0.Logout += P_1; - } - - void _202D_206F_206D_200C_202E_206C_206E_206D_206D_206A_200F_202E_202C_200E_200B_206E_200E_202A_200B_200E_206D_200E_206A_200F_206D_202A_202B_206A_202C_206F_202D_200B_206B_206B_206C_206B_206B_200E_200D_202E(WindowSizeConstraints? P_0) - { - base.SizeConstraints = P_0; - } - - static Task _206B_206A_206E_206D_202B_202B_200B_206A_206E_206B_200C_200F_200D_202E_200E_200B_200C_206F_200E_202E_206B_200D_206C_206A_200B_206C_206B_206E_206A_200E_206E_202D_206E_202A_200E_206C_200C_202E_200D_202E_202E(IFramework P_0, Action P_1) - { - return P_0.RunOnFrameworkThread(P_1); - } - - static ImRaii.ChildDisposable _206E_202E_206A_206C_202E_202D_200E_202E_206D_206D_200C_202A_200F_206E_202C_202E_206D_200B_206B_206C_200F_200E_200C_206B_200B_200E_206D_200F_202E_202E_200B_200D_200B_200C_202B_206E_206B_202E_206C_200E_202E(ImU8String P_0, Vector2 P_1) - { - return ImRaii.Child(P_0, P_1); - } - - static float _206F_200D_200C_206B_202A_206E_200E_206E_206C_202B_206F_206F_202C_202E_206D_206C_202C_200C_202C_202D_202D_206F_206A_206D_202A_206A_202D_206E_206D_206B_206E_206C_206C_206B_202B_206C_206B_202E_200D_202C_202E() - { - return ImGuiHelpers.GlobalScale; - } - - static ImRaii.IndentDisposable _202D_206F_206A_206E_206D_202C_202B_206B_200D_206F_206E_200D_206E_200C_206B_206E_202A_206B_200E_202E_202C_202D_206F_202E_206E_206A_202C_206C_202B_202C_202A_200F_202B_206E_202C_202E_202B_202A_200B_202A_202E(float P_0, bool P_1, bool P_2) - { - return ImRaii.PushIndent(P_0, P_1, P_2); - } - - static void _202D_200F_202D_200F_206A_206A_206F_202E_206B_200C_202A_206C_206C_206C_202D_206A_206B_202B_200B_206E_206E_200E_206B_202B_202A_206B_202B_202E_200F_202C_202A_202A_202C_206B_206A_200E_200C_200F_206E_206F_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _200D_206A_206B_200C_202B_200D_202B_200D_200F_206A_206F_202C_206F_200C_200B_206E_202C_206F_200D_206F_200E_206E_202A_200D_206D_206B_200C_202B_202B_206C_206C_202E_202C_206E_206D_206A_200B_202C_206F_206C_202E(IDalamudPluginInterface P_0, IPluginConfiguration P_1) - { - P_0.SavePluginConfig(P_1); - } - - static void _200E_206E_206F_206F_200B_202A_206A_202C_200D_200B_202A_206D_206A_202E_200F_202A_206D_200E_206B_206D_202E_202A_206B_206D_206D_200F_202B_206D_202B_200B_206B_206B_202B_200D_206E_206E_200E_200C_206E_206E_202E(IClientState P_0, IClientState.LogoutDelegate P_1) - { - P_0.Logout -= P_1; - } - - static void _202E_206A_206D_206E_202E_206E_202B_202B_202C_202A_202E_200C_202C_206C_202C_206D_200E_200F_202A_202E_200B_202C_206F_200F_206B_202C_206E_200D_206E_206A_202E_206D_200C_206E_202B_202D_202C_202B_200B_206A_202E(IClientState P_0, Action P_1) - { - P_0.Login -= P_1; + _clientState.Logout -= _attunementJournalComponent.ClearCounts; + _clientState.Login -= _attunementJournalComponent.RefreshCounts; + _clientState.Logout -= _gatheringJournalComponent.ClearCounts; + _clientState.Logout -= _questJournalComponent.ClearCounts; + _clientState.Login -= _dutyJournalComponent.RefreshCounts; + _clientState.Login -= _gatheringJournalComponent.RefreshCounts; + _clientState.Logout -= _dutyJournalComponent.ClearCounts; + _clientState.Login -= _questJournalComponent.RefreshCounts; } } diff --git a/Questionable/Questionable.Windows/OneTimeSetupWindow.cs b/Questionable/Questionable.Windows/OneTimeSetupWindow.cs index 2798438..4431bc6 100644 --- a/Questionable/Questionable.Windows/OneTimeSetupWindow.cs +++ b/Questionable/Questionable.Windows/OneTimeSetupWindow.cs @@ -2,9 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; -using Dalamud.Configuration; using Dalamud.Interface; using Dalamud.Interface.Utility; using Dalamud.Interface.Utility.Raii; @@ -26,20 +24,19 @@ internal sealed class OneTimeSetupWindow : ThemedWindow private int _currentIndex; - [MethodImpl(MethodImplOptions.NoInlining)] public OneTimeSetupWindow(WelcomeStep welcomeStep, PluginsStep pluginsStep, EssentialSettingsStep essentialSettingsStep, ReadyStep readyStep, Configuration configuration, IDalamudPluginInterface pluginInterface, ILogger<OneTimeSetupWindow> logger) - : base(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(461826029), ImGuiWindowFlags.NoCollapse | ImGuiWindowFlags.AlwaysAutoResize | ImGuiWindowFlags.NoSavedSettings, forceMainWindow: true) + : base("Questionable Setup###QuestionableOneTimeSetup", ImGuiWindowFlags.NoCollapse | ImGuiWindowFlags.AlwaysAutoResize | ImGuiWindowFlags.NoSavedSettings, forceMainWindow: true) { _steps = new global::_003C_003Ez__ReadOnlyArray<ISetupStep>(new ISetupStep[4] { welcomeStep, pluginsStep, essentialSettingsStep, readyStep }); _configuration = configuration; _pluginInterface = pluginInterface; _logger = logger; - _206B_206F_202D_200B_200C_202D_206D_206B_206F_200C_202D_206D_200F_200B_202A_206A_202B_202D_206B_206E_200F_200B_200F_202E_202A_200D_206D_206A_200F_200C_202D_206B_202C_206A_202C_206B_206C_206B_200B_202B_202E(false); - _200C_206B_202B_206A_202C_202E_200C_206D_206B_206C_206B_200F_202B_206D_202C_202C_200D_200D_202C_200C_206D_202E_206F_202A_206C_206D_202A_200F_202E_200B_200B_200F_202C_202B_206A_206D_206A_200C_206B_202D_202E(false); - _200B_200C_206E_200C_202E_200F_202E_206E_200F_206F_200B_202B_200D_206B_206C_200B_200F_202B_200B_200F_202E_200C_206A_206F_200B_202E_206B_200D_202C_202E_200E_200F_206F_206B_206F_200D_206E_206B_206D_200D_202E(false); - _200F_200F_202E_200B_206F_202C_206A_202E_206E_206D_206F_206F_200E_200F_200B_202C_202C_202C_206F_206A_202B_202C_206E_202D_206B_200D_200F_202D_206B_202E_206E_202B_200D_206C_202A_202C_200C_202D_200E_202D_202E(false); - _206C_200D_206D_202B_206B_202E_206D_200F_202B_206B_206D_202E_200E_202A_200F_200F_200B_206B_206F_206F_206E_202E_202E_200E_206A_202B_200E_200E_202A_200B_206E_202D_206C_206C_200F_200F_200F_206E_206D_206B_202E(!_configuration.IsPluginSetupComplete()); - _202E_200F_202A_200C_206A_202E_200B_206F_206D_200F_206A_206F_202C_200E_200C_202C_206C_206B_202E_206E_200F_206F_202C_202E_206B_200C_200F_202C_206F_200F_206B_200D_202E_200C_200E_200C_202A_202A_200F_206A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1635291635), new object[1] { _206D_202B_202D_206C_206B_202D_206F_206A_206F_200C_206A_206C_206A_202B_206C_200E_200C_202A_202A_206D_200D_200E_206E_206B_200D_202D_200B_200C_200C_202D_202D_200F_206E_200F_200E_200C_200F_206C_206D_202E_202E() }); + base.RespectCloseHotkey = false; + base.ShowCloseButton = false; + base.AllowPinning = false; + base.AllowClickthrough = false; + base.IsOpen = !_configuration.IsPluginSetupComplete(); + _logger.LogDebug("One-time setup needed: {IsOpen}", base.IsOpen); } public override void OnOpen() @@ -47,641 +44,121 @@ internal sealed class OneTimeSetupWindow : ThemedWindow _currentIndex = 0; } - [MethodImpl(MethodImplOptions.NoInlining)] public override void DrawContent() { List<ISetupStep> list = _steps.Where((ISetupStep s) => s.ShouldShow()).ToList(); - int num = ((list.Count != 0) ? (-981161661) : (-981161664)); - while (true) + if (list.Count != 0) { - int num2 = num; - int num3 = -981161662; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - { - _currentIndex = _206A_200B_200B_206A_206B_206E_206D_206C_202B_200E_202B_200F_202D_206D_206B_202D_206B_200D_206E_202E_206F_202E_202D_202E_202C_206A_206B_206F_202E_206D_202D_206D_200E_206E_200E_206C_206A_202B_206F_200C_202E(_currentIndex, 0, list.Count - 1); - ISetupStep setupStep = list[_currentIndex]; - ImU8String imU8String = new ImU8String(9, 2); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(2121328215)); - int currentIndex = _currentIndex; - num3 = 1; - num4 = currentIndex; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - imU8String.AppendFormatted(num7 + (num8 + num8)); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1153128276)); - imU8String.AppendFormatted(list.Count); - _202D_200E_202B_206C_202C_200E_206A_202E_200C_202C_202C_206D_206F_200B_200C_206A_202D_202A_200E_200B_206D_206C_200D_200D_206B_206C_202B_202A_202D_200D_206D_200E_206D_200C_200E_202B_202B_202A_206E_202B_202E(ref UiThemeUtils.DimTextColor, imU8String); - _206D_200B_202E_200F_206D_202B_206E_206C_200F_206C_200D_200D_206B_202C_200C_206C_206E_200D_206F_202D_200D_206D_206D_206E_206F_202E_202A_202A_202B_202A_206C_206F_200B_200F_202C_200B_200E_206B_200F_200E_202E(); - DrawStepDots(list.Count); - UiThemeUtils.SectionHeader(setupStep.Title); - var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); - setupStep.Draw(); - UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); - UiThemeUtils.SectionSpacing(); - DrawFooter(list.Count, setupStep); - return; - } - case 2: - return; - case 0: - goto IL_0168; - } - continue; - IL_0168: - num = -981161664; + _currentIndex = Math.Clamp(_currentIndex, 0, list.Count - 1); + ISetupStep setupStep = list[_currentIndex]; + ImU8String text = new ImU8String(9, 2); + text.AppendLiteral("Step "); + text.AppendFormatted(_currentIndex + 1); + text.AppendLiteral(" of "); + text.AppendFormatted(list.Count); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text); + ImGui.SameLine(); + DrawStepDots(list.Count); + UiThemeUtils.SectionHeader(setupStep.Title); + var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); + setupStep.Draw(); + UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); + UiThemeUtils.SectionSpacing(); + DrawFooter(list.Count, setupStep); } } private void DrawStepDots(int visibleCount) { - float num = 3f * _202C_202C_206B_202E_206A_202D_202D_200E_206D_200D_202C_200D_206A_200D_206A_206C_206D_202D_206E_202D_200D_206A_202E_206B_200B_206C_200B_206B_206F_202A_200F_206C_200F_202C_202C_206E_200E_206C_202B_200F_202E(); - float num2 = 12f * _202C_202C_206B_202E_206A_202D_202D_200E_206D_200D_202C_200D_206A_200D_206A_206C_206D_202D_206E_202D_200D_206A_202E_206B_200B_206C_200B_206B_206F_202A_200F_206C_200F_202C_202C_206E_200E_206C_202B_200F_202E(); - float num3 = _206B_206B_202B_200C_202B_206C_202A_206D_206B_202E_202A_206F_202E_200B_206F_206F_200E_200C_202C_206B_206D_206A_206E_206F_202C_202B_200C_206F_206F_200D_206E_200E_206C_200E_206F_200C_202E_206D_200B_202C_202E(); - ImDrawListPtr imDrawListPtr = _202E_206B_202D_202E_206C_206F_206B_202A_206B_202C_206B_206E_202B_206F_200B_202B_200C_200F_200C_202B_202A_200F_200B_202D_202B_206D_202E_202E_202B_202A_200D_206E_202D_206B_202D_202C_200E_200F_206B_206C_202E(); - Vector2 vector = _202E_202D_202A_202A_200D_202D_200D_202C_200C_206F_200B_206C_206B_206E_200D_200B_206C_200B_202D_202B_206A_202D_200F_202C_202A_200D_200D_200D_202E_206C_200F_202D_200D_202D_200D_202B_200F_202E_202E_206A_202E(); - float y = vector.Y + num3 / 2f; - uint col = _206D_206D_206E_202B_206A_200E_200F_206D_202B_206B_200E_200E_206C_200B_206D_200E_200D_206F_206E_202A_202D_202A_206C_200D_202E_206A_206E_202C_206B_206A_206C_202A_200E_200E_206C_206F_206C_206B_200E_200E_202E(UiThemeUtils.AccentColor); - uint col2 = _206D_206D_206E_202B_206A_200E_200F_206D_202B_206B_200E_200E_206C_200B_206D_200E_200D_206F_206E_202A_202D_202A_206C_200D_202E_206A_206E_202C_206B_206A_206C_202A_200E_200E_206C_206F_206C_206B_200E_200E_202E(UiThemeUtils.MutedTextColor); - int num4 = 0; - int num5 = 1526689575; - Vector2 center = default(Vector2); - while (true) + float num = 3f * ImGuiHelpers.GlobalScale; + float num2 = 12f * ImGuiHelpers.GlobalScale; + float textLineHeight = ImGui.GetTextLineHeight(); + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + float y = cursorScreenPos.Y + textLineHeight / 2f; + uint col = ImGui.ColorConvertFloat4ToU32(UiThemeUtils.AccentColor); + uint col2 = ImGui.ColorConvertFloat4ToU32(UiThemeUtils.MutedTextColor); + for (int i = 0; i < visibleCount; i++) { - int num6 = num5; - int num7 = 1526689569; - int num8 = num6; - int num9 = num8 + num7; - int num10 = num8 & num7; - switch (num9 - (num10 + num10)) + Vector2 center = new Vector2(cursorScreenPos.X + num + (float)i * num2, y); + if (i == _currentIndex) { - case 0: - imDrawListPtr.AddCircleFilled(center, num, col); - num5 = 1526689568; - break; - case 5: - center = new Vector2(vector.X + num + (float)num4 * num2, y); - num5 = ((num4 != _currentIndex) ? 1526689573 : 1526689569); - break; - case 4: - imDrawListPtr.AddCircle(center, num, col2, 0, 1f); - num5 = 1526689568; - break; - case 6: - num5 = ((num4 < visibleCount) ? 1526689572 : 1526689570); - break; - case 3: - { - float num12 = num * 2f; - num7 = 1; - num8 = visibleCount; - _202B_200E_206C_200E_206E_202B_200D_200D_206E_200D_206E_206F_206B_206D_202D_202C_206D_206A_206B_206A_206E_202B_202B_206F_200C_206E_206C_200C_206D_202C_206C_200E_206B_202A_200E_200D_200C_206F_206C_206D_202E(new Vector2(num12 + (float)(~(~num8 + num7)) * num2, num3)); - return; + windowDrawList.AddCircleFilled(center, num, col); } - case 2: - num5 = 1526689575; - break; - case 1: + else { - int num11 = num4; - num7 = 1; - num8 = num11; - num4 = (num8 | num7) + (num8 & num7); - num5 = 1526689575; - break; - } + windowDrawList.AddCircle(center, num, col2, 0, 1f); } } + ImGui.Dummy(new Vector2(num * 2f + (float)(visibleCount - 1) * num2, textLineHeight)); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawFooter(int visibleCount, ISetupStep current) { - bool num = _currentIndex == 0; - int currentIndex = _currentIndex; - int num2 = 1; - int num3 = visibleCount; - bool flag = currentIndex == ~(~num3 + num2); - ImRaii.DisabledDisposable disabledDisposable = _200C_206D_206E_202D_206D_200D_200D_206A_200D_206D_202D_206D_200F_206B_202C_202A_202C_200B_200B_206E_200C_206D_202C_200B_206D_206A_202D_200B_200E_200D_200F_200E_202E_202B_200C_206E_206A_202C_206F_200D_202E(num); - int num4; - try + bool disabled = _currentIndex == 0; + bool flag = _currentIndex == visibleCount - 1; + using (ImRaii.Disabled(disabled)) { - num4 = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.ArrowLeft, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1553048446), ButtonWidth(FontAwesomeIcon.ArrowLeft, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-764915405)))) ? 808183570 : 808183569); - while (true) + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.ArrowLeft, "Back", ButtonWidth(FontAwesomeIcon.ArrowLeft, "Back"))) { - int num5 = num4; - num2 = 808183571; - num3 = num5; - int num6 = num3 + num2; - int num7 = num3 & num2; - switch (num6 - (num7 + num7)) - { - case 0: - num4 = 808183569; - break; - case 2: - { - int currentIndex2 = _currentIndex; - num2 = 1; - num3 = currentIndex2; - _currentIndex = ~(~num3 + num2); - num4 = 808183570; - break; - } - case 1: - goto end_IL_006a; - } - continue; - end_IL_006a: - break; + _currentIndex--; } } - finally - { - num4 = ((disabledDisposable == null) ? (-1101408097) : (-1101408100)); - while (true) - { - int num8 = num4; - num2 = -1101408099; - num3 = num8; - int num9 = num3 + num2; - int num10 = num3 & num2; - switch (num9 - (num10 + num10)) - { - case 0: - num4 = -1101408100; - break; - case 1: - _200F_202A_202A_200D_206A_200B_200E_206F_200F_202B_206D_200D_202B_202E_206C_206C_200C_200E_200B_206B_200C_206B_202C_200C_202B_202E_202D_206D_202E_200E_202A_200B_200C_200E_206F_200C_202B_206E_206E_202B_202E((IDisposable)disabledDisposable); - num4 = -1101408097; - break; - case 2: - goto end_IL_00eb; - } - continue; - end_IL_00eb: - break; - } - } - _206D_200B_202E_200F_206D_202B_206E_206C_200F_206C_200D_200D_206B_202C_200C_206C_206E_200D_206F_202D_200D_206D_206D_206E_206F_202E_202A_202A_202B_202A_206C_206F_200B_200F_202C_200B_200E_206B_200F_200E_202E(); + ImGui.SameLine(); if (flag) { - disabledDisposable = _200C_206D_206E_202D_206D_200D_200D_206A_200D_206D_202D_206D_200F_206B_202C_202A_202C_200B_200B_206E_200C_206D_202C_200B_206D_206A_202D_200B_200E_200D_200F_200E_202E_202B_200C_206E_206A_202C_206F_200D_202E(!current.CanAdvance); - try + using (ImRaii.Disabled(!current.CanAdvance)) { - ImRaii.ColorDisposable colorDisposable = _200B_202E_202C_206B_202C_200C_200E_202A_202B_206F_200E_206D_202D_200F_200F_206F_200E_202E_202A_200C_206E_206C_202A_202D_202A_202E_202E_200F_200D_202E_200D_206B_200C_202E_202B_202C_206C_202E_206D_206C_202E(ImGuiCol.Button, UiThemeUtils.PlayButtonColor, true); - try + using (ImRaii.PushColor(ImGuiCol.Button, UiThemeUtils.PlayButtonColor)) { - ImRaii.ColorDisposable colorDisposable2 = _200B_202E_202C_206B_202C_200C_200E_202A_202B_206F_200E_206D_202D_200F_200F_206F_200E_202E_202A_200C_206E_206C_202A_202D_202A_202E_202E_200F_200D_202E_200D_206B_200C_202E_202B_202C_206C_202E_206D_206C_202E(ImGuiCol.ButtonHovered, UiThemeUtils.PlayButtonHover, true); - try + using (ImRaii.PushColor(ImGuiCol.ButtonHovered, UiThemeUtils.PlayButtonHover)) { - ImRaii.ColorDisposable colorDisposable3 = _200B_202E_202C_206B_202C_200C_200E_202A_202B_206F_200E_206D_202D_200F_200F_206F_200E_202E_202A_200C_206E_206C_202A_202D_202A_202E_202E_200F_200D_202E_200D_206B_200C_202E_202B_202C_206C_202E_206D_206C_202E(ImGuiCol.ButtonActive, UiThemeUtils.PlayButtonActive, true); - try + using (ImRaii.PushColor(ImGuiCol.ButtonActive, UiThemeUtils.PlayButtonActive)) { - ImRaii.ColorDisposable colorDisposable4 = _200B_202E_202C_206B_202C_200C_200E_202A_202B_206F_200E_206D_202D_200F_200F_206F_200E_202E_202A_200C_206E_206C_202A_202D_202A_202E_202E_200F_200D_202E_200D_206B_200C_202E_202B_202C_206C_202E_206D_206C_202E(ImGuiCol.Text, UiThemeUtils.PlayButtonText, true); - try + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.PlayButtonText)) { - num4 = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Check, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(740749075), ButtonWidth(FontAwesomeIcon.Check, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-210319424)))) ? 2081076203 : 2081076200); - while (true) + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Check, "Finish Setup", ButtonWidth(FontAwesomeIcon.Check, "Finish Setup"))) { - int num11 = num4; - num2 = 2081076202; - num3 = num11; - switch ((num3 | num2) - (num3 & num2)) - { - case 0: - num4 = 2081076200; - break; - case 2: - _202E_200F_202A_200C_206A_202E_200B_206F_206D_200F_206A_206F_202C_200E_200C_202C_206C_206B_202E_206E_200F_206F_202C_202E_206B_200C_200F_202C_206F_200F_206B_200D_202E_200C_200E_200C_202A_202A_200F_206A_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(907066724), Array.Empty<object>()); - _configuration.MarkPluginSetupComplete(); - _202C_200C_202B_202A_202E_202D_206F_202D_206A_202C_206E_206C_206D_200B_206A_206C_200C_206F_200C_200C_202C_206E_206E_206B_200C_202A_206C_200B_202C_200C_206E_206B_202D_200B_202B_202C_206F_202B_200C_200D_202E(_pluginInterface, (IPluginConfiguration)_configuration); - RequestClose(); - num4 = 2081076203; - break; - case 1: - goto end_IL_01d1; - } - continue; - end_IL_01d1: - break; - } - } - finally - { - num4 = ((colorDisposable4 == null) ? 1525210494 : 1525210495); - while (true) - { - int num12 = num4; - num2 = 1525210494; - num3 = num12; - int num13 = num3 + num2; - int num14 = num3 & num2; - switch (num13 - (num14 + num14)) - { - case 2: - num4 = 1525210495; - break; - case 0: - goto end_IL_0275; - case 1: - _200F_202A_202A_200D_206A_200B_200E_206F_200F_202B_206D_200D_202B_202E_206C_206C_200C_200E_200B_206B_200C_206B_202C_200C_202B_202E_202D_206D_202E_200E_202A_200B_200C_200E_206F_200C_202B_206E_206E_202B_202E((IDisposable)colorDisposable4); - num4 = 1525210494; - break; - } - continue; - end_IL_0275: - break; + _logger.LogDebug("Marking setup as complete"); + _configuration.MarkPluginSetupComplete(); + _pluginInterface.SavePluginConfig(_configuration); + RequestClose(); } } } - finally - { - num4 = ((colorDisposable3 == null) ? (-1706055726) : (-1706055725)); - while (true) - { - int num15 = num4; - num2 = -1706055726; - num3 = num15; - int num16 = num3 + num2; - int num17 = num3 & num2; - switch (num16 - (num17 + num17)) - { - case 2: - num4 = -1706055725; - break; - case 1: - _200F_202A_202A_200D_206A_200B_200E_206F_200F_202B_206D_200D_202B_202E_206C_206C_200C_200E_200B_206B_200C_206B_202C_200C_202B_202E_202D_206D_202E_200E_202A_200B_200C_200E_206F_200C_202B_206E_206E_202B_202E((IDisposable)colorDisposable3); - num4 = -1706055726; - break; - case 0: - goto end_IL_02e2; - } - continue; - end_IL_02e2: - break; - } - } } - finally - { - num4 = ((colorDisposable2 == null) ? 709373826 : 709373825); - while (true) - { - int num18 = num4; - num2 = 709373824; - num3 = num18; - int num19 = num3 + num2; - int num20 = num3 & num2; - switch (num19 - (num20 + num20)) - { - case 2: - goto end_IL_034f; - case 1: - _200F_202A_202A_200D_206A_200B_200E_206F_200F_202B_206D_200D_202B_202E_206C_206C_200C_200E_200B_206B_200C_206B_202C_200C_202B_202E_202D_206D_202E_200E_202A_200B_200C_200E_206F_200C_202B_206E_206E_202B_202E((IDisposable)colorDisposable2); - num4 = 709373826; - break; - case 0: - num4 = 709373825; - break; - } - continue; - end_IL_034f: - break; - } - } - } - finally - { - num4 = ((colorDisposable == null) ? 2130178104 : 2130178107); - while (true) - { - int num21 = num4; - num2 = 2130178105; - num3 = num21; - int num22 = num3 + num2; - int num23 = num3 & num2; - switch (num22 - (num23 + num23)) - { - case 1: - goto end_IL_03bb; - case 2: - _200F_202A_202A_200D_206A_200B_200E_206F_200F_202B_206D_200D_202B_202E_206C_206C_200C_200E_200B_206B_200C_206B_202C_200C_202B_202E_202D_206D_202E_200E_202A_200B_200C_200E_206F_200C_202B_206E_206E_202B_202E((IDisposable)colorDisposable); - num4 = 2130178104; - break; - case 0: - num4 = 2130178107; - break; - } - continue; - end_IL_03bb: - break; - } - } - } - finally - { - num4 = ((disabledDisposable == null) ? (-1250205725) : (-1250205728)); - while (true) - { - int num24 = num4; - num2 = -1250205726; - num3 = num24; - switch ((num3 | num2) - (num3 & num2)) - { - case 1: - goto end_IL_0426; - case 2: - _200F_202A_202A_200D_206A_200B_200E_206F_200F_202B_206D_200D_202B_202E_206C_206C_200C_200E_200B_206B_200C_206B_202C_200C_202B_202E_202D_206D_202E_200E_202A_200B_200C_200E_206F_200C_202B_206E_206E_202B_202E((IDisposable)disabledDisposable); - num4 = -1250205725; - break; - case 0: - num4 = -1250205728; - break; - } - continue; - end_IL_0426: - break; } } } else { - disabledDisposable = _200C_206D_206E_202D_206D_200D_200D_206A_200D_206D_202D_206D_200F_206B_202C_202A_202C_200B_200B_206E_200C_206D_202C_200B_206D_206A_202D_200B_200E_200D_200F_200E_202E_202B_200C_206E_206A_202C_206F_200D_202E(!current.CanAdvance); - try + using (ImRaii.Disabled(!current.CanAdvance)) { - num4 = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.ArrowRight, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2011722463), ButtonWidth(FontAwesomeIcon.ArrowRight, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2011722463)))) ? 1847990145 : 1847990146); - while (true) + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.ArrowRight, "Next", ButtonWidth(FontAwesomeIcon.ArrowRight, "Next"))) { - int num25 = num4; - num2 = 1847990147; - num3 = num25; - int num26 = num3 + num2; - int num27 = num3 & num2; - switch (num26 - (num27 + num27)) - { - case 0: - num4 = 1847990146; - break; - case 1: - { - int currentIndex3 = _currentIndex; - num2 = 1; - num3 = currentIndex3; - int num28 = num3 ^ num2; - int num29 = num3 & num2; - _currentIndex = num28 + (num29 + num29); - num4 = 1847990145; - break; - } - case 2: - goto end_IL_04c5; - } - continue; - end_IL_04c5: - break; - } - } - finally - { - num4 = ((disabledDisposable == null) ? (-1209649959) : (-1209649958)); - while (true) - { - int num30 = num4; - num2 = -1209649957; - num3 = num30; - int num31 = num3 + num2; - int num32 = num3 & num2; - switch (num31 - (num32 + num32)) - { - case 0: - num4 = -1209649958; - break; - case 1: - _200F_202A_202A_200D_206A_200B_200E_206F_200F_202B_206D_200D_202B_202E_206C_206C_200C_200E_200B_206B_200C_206B_202C_200C_202B_202E_202D_206D_202E_200E_202A_200B_200C_200E_206F_200C_202B_206E_206E_202B_202E((IDisposable)disabledDisposable); - num4 = -1209649959; - break; - case 2: - goto end_IL_054c; - } - continue; - end_IL_054c: - break; + _currentIndex++; } } } - _206D_200B_202E_200F_206D_202B_206E_206C_200F_206C_200D_200D_206B_202C_200C_206C_206E_200D_206F_202D_200D_206D_206D_206E_206F_202E_202A_202A_202B_202A_206C_206F_200B_200F_202C_200B_200E_206B_200F_200E_202E(); - num4 = (_configuration.IsPluginSetupComplete() ? (-1034666289) : (-1034666290)); - while (true) - { - int num33 = num4; - num2 = -1034666294; - num3 = num33; - string text; - string text2; - switch ((num3 | num2) - (num3 & num2)) - { - case 5: - text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-431798985); - goto IL_060c; - case 1: - _206F_202B_202D_202B_202C_200F_206E_206A_206E_206C_202B_202E_206B_200D_200B_206F_202B_206D_206D_206B_206A_202D_206E_206D_206C_200C_200E_200C_202C_200D_200E_206F_200F_200F_202D_200D_200B_206A_200B_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1502282868), Array.Empty<object>()); - num4 = -1034666292; - break; - case 2: - num4 = -1034666290; - break; - case 4: - text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1567427430); - goto IL_060c; - case 0: - num4 = (_configuration.IsPluginSetupComplete() ? (-1034666292) : (-1034666293)); - break; - case 3: - return; - case 6: - { - RequestClose(); - num4 = -1034666295; - break; - } - IL_060c: - text2 = text; - num4 = ((!UiThemeUtils.IconTextButton(FontAwesomeIcon.Times, text2, ButtonWidth(FontAwesomeIcon.Times, text2))) ? (-1034666295) : (-1034666294)); - break; - } - } - static float ButtonWidth(FontAwesomeIcon icon, string text3) - { - ImRaii.FontDisposable fontDisposable = _202C_202E_200B_206A_200B_202D_200D_202D_202B_200B_206B_202B_202B_200B_206A_206D_200E_200C_206F_200B_202D_202A_202A_200F_200E_202E_202D_206C_206F_206B_202D_206F_202C_206A_202A_202A_202D_202A_202C_200E_202E(_206D_206C_202D_202B_200E_206F_200E_200F_200C_206D_202B_200C_206D_200B_206E_206F_200F_202A_206C_202C_206D_206C_200D_206A_200E_202A_202E_200E_200F_200B_206F_200C_200D_206F_200B_202C_206A_206D_202C_200C_202E(), true); - float x; - try - { - x = _200D_200B_206A_206F_202A_206F_206F_206F_202A_200B_200B_202A_200F_206F_206E_206A_200D_200D_202A_206C_200B_202E_206E_202E_202B_200F_206D_202D_200D_202E_200E_200F_206B_200E_200F_206C_200B_202B_200C_202E_202E((ImU8String)_206E_200C_200F_206A_206D_206C_206C_202B_200C_206C_206B_206B_202C_206F_200F_202D_206E_206D_206A_200D_206E_206D_202E_206B_206C_206E_202A_206A_206E_200C_202B_206C_202C_202B_200E_206D_200B_206A_206D_200E_202E(icon), false, -1f).X; - } - finally - { - int num34 = ((fontDisposable == null) ? 501543268 : 501543269); - while (true) - { - int num35 = num34; - int num36 = 501543268; - int num37 = num35; - int num38 = num37 + num36; - int num39 = num37 & num36; - switch (num38 - (num39 + num39)) - { - case 2: - num34 = 501543269; - break; - case 1: - _200F_202A_202A_200D_206A_200B_200E_206F_200F_202B_206D_200D_202B_202E_206C_206C_200C_200E_200B_206B_200C_206B_202C_200C_202B_202E_202D_206D_202E_200E_202A_200B_200C_200E_206F_200C_202B_206E_206E_202B_202E((IDisposable)fontDisposable); - num34 = 501543268; - break; - case 0: - goto end_IL_004b; - } - continue; - end_IL_004b: - break; - } - } - float x2 = _200D_200B_206A_206F_202A_206F_206F_206F_202A_200B_200B_202A_200F_206F_206E_206A_200D_200D_202A_206C_200B_202E_206E_202E_202B_200F_206D_202D_200D_202E_200E_200F_206B_200E_200F_206C_200B_202B_200C_202E_202E((ImU8String)text3, false, -1f).X; - return x + 6f + x2 + _206C_206A_202C_202B_206C_206D_202E_206D_200D_202D_206B_206C_202D_206D_202C_206C_202B_206B_202B_200F_206D_206B_206A_206E_202D_206A_206F_200F_206D_202E_206F_200B_200D_206F_200C_200F_206A_200C_206E_206A_202E().FramePadding.X * 2f; - } - } - - void _206B_206F_202D_200B_200C_202D_206D_206B_206F_200C_202D_206D_200F_200B_202A_206A_202B_202D_206B_206E_200F_200B_200F_202E_202A_200D_206D_206A_200F_200C_202D_206B_202C_206A_202C_206B_206C_206B_200B_202B_202E(bool P_0) - { - base.RespectCloseHotkey = P_0; - } - - void _200C_206B_202B_206A_202C_202E_200C_206D_206B_206C_206B_200F_202B_206D_202C_202C_200D_200D_202C_200C_206D_202E_206F_202A_206C_206D_202A_200F_202E_200B_200B_200F_202C_202B_206A_206D_206A_200C_206B_202D_202E(bool P_0) - { - base.ShowCloseButton = P_0; - } - - void _200B_200C_206E_200C_202E_200F_202E_206E_200F_206F_200B_202B_200D_206B_206C_200B_200F_202B_200B_200F_202E_200C_206A_206F_200B_202E_206B_200D_202C_202E_200E_200F_206F_206B_206F_200D_206E_206B_206D_200D_202E(bool P_0) - { - base.AllowPinning = P_0; - } - - void _200F_200F_202E_200B_206F_202C_206A_202E_206E_206D_206F_206F_200E_200F_200B_202C_202C_202C_206F_206A_202B_202C_206E_202D_206B_200D_200F_202D_206B_202E_206E_202B_200D_206C_202A_202C_200C_202D_200E_202D_202E(bool P_0) - { - base.AllowClickthrough = P_0; - } - - void _206C_200D_206D_202B_206B_202E_206D_200F_202B_206B_206D_202E_200E_202A_200F_200F_200B_206B_206F_206F_206E_202E_202E_200E_206A_202B_200E_200E_202A_200B_206E_202D_206C_206C_200F_200F_200F_206E_206D_206B_202E(bool P_0) - { - base.IsOpen = P_0; - } - - bool _206D_202B_202D_206C_206B_202D_206F_206A_206F_200C_206A_206C_206A_202B_206C_200E_200C_202A_202A_206D_200D_200E_206E_206B_200D_202D_200B_200C_200C_202D_202D_200F_206E_200F_200E_200C_200F_206C_206D_202E_202E() - { - return base.IsOpen; - } - - static void _202E_200F_202A_200C_206A_202E_200B_206F_206D_200F_206A_206F_202C_200E_200C_202C_206C_206B_202E_206E_200F_206F_202C_202E_206B_200C_200F_202C_206F_200F_206B_200D_202E_200C_200E_200C_202A_202A_200F_206A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static int _206A_200B_200B_206A_206B_206E_206D_206C_202B_200E_202B_200F_202D_206D_206B_202D_206B_200D_206E_202E_206F_202E_202D_202E_202C_206A_206B_206F_202E_206D_202D_206D_200E_206E_200E_206C_206A_202B_206F_200C_202E(int P_0, int P_1, int P_2) - { - return Math.Clamp(P_0, P_1, P_2); - } - - static void _202D_200E_202B_206C_202C_200E_206A_202E_200C_202C_202C_206D_206F_200B_200C_206A_202D_202A_200E_200B_206D_206C_200D_200D_206B_206C_202B_202A_202D_200D_206D_200E_206D_200C_200E_202B_202B_202A_206E_202B_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static void _206D_200B_202E_200F_206D_202B_206E_206C_200F_206C_200D_200D_206B_202C_200C_206C_206E_200D_206F_202D_200D_206D_206D_206E_206F_202E_202A_202A_202B_202A_206C_206F_200B_200F_202C_200B_200E_206B_200F_200E_202E() - { ImGui.SameLine(); - } - - static float _202C_202C_206B_202E_206A_202D_202D_200E_206D_200D_202C_200D_206A_200D_206A_206C_206D_202D_206E_202D_200D_206A_202E_206B_200B_206C_200B_206B_206F_202A_200F_206C_200F_202C_202C_206E_200E_206C_202B_200F_202E() - { - return ImGuiHelpers.GlobalScale; - } - - static float _206B_206B_202B_200C_202B_206C_202A_206D_206B_202E_202A_206F_202E_200B_206F_206F_200E_200C_202C_206B_206D_206A_206E_206F_202C_202B_200C_206F_206F_200D_206E_200E_206C_200E_206F_200C_202E_206D_200B_202C_202E() - { - return ImGui.GetTextLineHeight(); - } - - static ImDrawListPtr _202E_206B_202D_202E_206C_206F_206B_202A_206B_202C_206B_206E_202B_206F_200B_202B_200C_200F_200C_202B_202A_200F_200B_202D_202B_206D_202E_202E_202B_202A_200D_206E_202D_206B_202D_202C_200E_200F_206B_206C_202E() - { - return ImGui.GetWindowDrawList(); - } - - static Vector2 _202E_202D_202A_202A_200D_202D_200D_202C_200C_206F_200B_206C_206B_206E_200D_200B_206C_200B_202D_202B_206A_202D_200F_202C_202A_200D_200D_200D_202E_206C_200F_202D_200D_202D_200D_202B_200F_202E_202E_206A_202E() - { - return ImGui.GetCursorScreenPos(); - } - - static uint _206D_206D_206E_202B_206A_200E_200F_206D_202B_206B_200E_200E_206C_200B_206D_200E_200D_206F_206E_202A_202D_202A_206C_200D_202E_206A_206E_202C_206B_206A_206C_202A_200E_200E_206C_206F_206C_206B_200E_200E_202E(Vector4 P_0) - { - return ImGui.ColorConvertFloat4ToU32(P_0); - } - - static void _202B_200E_206C_200E_206E_202B_200D_200D_206E_200D_206E_206F_206B_206D_202D_202C_206D_206A_206B_206A_206E_202B_202B_206F_200C_206E_206C_200C_206D_202C_206C_200E_206B_202A_200E_200D_200C_206F_206C_206D_202E(Vector2 P_0) - { - ImGui.Dummy(P_0); - } - - static ImRaii.DisabledDisposable _200C_206D_206E_202D_206D_200D_200D_206A_200D_206D_202D_206D_200F_206B_202C_202A_202C_200B_200B_206E_200C_206D_202C_200B_206D_206A_202D_200B_200E_200D_200F_200E_202E_202B_200C_206E_206A_202C_206F_200D_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static void _200F_202A_202A_200D_206A_200B_200E_206F_200F_202B_206D_200D_202B_202E_206C_206C_200C_200E_200B_206B_200C_206B_202C_200C_202B_202E_202D_206D_202E_200E_202A_200B_200C_200E_206F_200C_202B_206E_206E_202B_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static ImRaii.ColorDisposable _200B_202E_202C_206B_202C_200C_200E_202A_202B_206F_200E_206D_202D_200F_200F_206F_200E_202E_202A_200C_206E_206C_202A_202D_202A_202E_202E_200F_200D_202E_200D_206B_200C_202E_202B_202C_206C_202E_206D_206C_202E(ImGuiCol P_0, Vector4 P_1, bool P_2) - { - return ImRaii.PushColor(P_0, P_1, P_2); - } - - static void _202C_200C_202B_202A_202E_202D_206F_202D_206A_202C_206E_206C_206D_200B_206A_206C_200C_206F_200C_200C_202C_206E_206E_206B_200C_202A_206C_200B_202C_200C_206E_206B_202D_200B_202B_202C_206F_202B_200C_200D_202E(IDalamudPluginInterface P_0, IPluginConfiguration P_1) - { - P_0.SavePluginConfig(P_1); - } - - static void _206F_202B_202D_202B_202C_200F_206E_206A_206E_206C_202B_202E_206B_200D_200B_206F_202B_206D_206D_206B_206A_202D_206E_206D_206C_200C_200E_200C_202C_200D_200E_206F_200F_200F_202D_200D_200B_206A_200B_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static ImFontPtr _206D_206C_202D_202B_200E_206F_200E_200F_200C_206D_202B_200C_206D_200B_206E_206F_200F_202A_206C_202C_206D_206C_200D_206A_200E_202A_202E_200E_200F_200B_206F_200C_200D_206F_200B_202C_206A_206D_202C_200C_202E() - { - return UiBuilder.IconFont; - } - - static ImRaii.FontDisposable _202C_202E_200B_206A_200B_202D_200D_202D_202B_200B_206B_202B_202B_200B_206A_206D_200E_200C_206F_200B_202D_202A_202A_200F_200E_202E_202D_206C_206F_206B_202D_206F_202C_206A_202A_202A_202D_202A_202C_200E_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static string _206E_200C_200F_206A_206D_206C_206C_202B_200C_206C_206B_206B_202C_206F_200F_202D_206E_206D_206A_200D_206E_206D_202E_206B_206C_206E_202A_206A_206E_200C_202B_206C_202C_202B_200E_206D_200B_206A_206D_200E_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static Vector2 _200D_200B_206A_206F_202A_206F_206F_206F_202A_200B_200B_202A_200F_206F_206E_206A_200D_200D_202A_206C_200B_202E_206E_202E_202B_200F_206D_202D_200D_202E_200E_200F_206B_200E_200F_206C_200B_202B_200C_202E_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static ImGuiStylePtr _206C_206A_202C_202B_206C_206D_202E_206D_200D_202D_206B_206C_202D_206D_202C_206C_202B_206B_202B_200F_206D_206B_206A_206E_202D_206A_206F_200F_206D_202E_206F_200B_200D_206F_200C_200F_206A_200C_206E_206A_202E() - { - return ImGui.GetStyle(); + string text = (_configuration.IsPluginSetupComplete() ? "Close" : "Close window & don't enable Questionable"); + if (UiThemeUtils.IconTextButton(FontAwesomeIcon.Times, text, ButtonWidth(FontAwesomeIcon.Times, text))) + { + if (!_configuration.IsPluginSetupComplete()) + { + _logger.LogWarning("Closing window without completing setup"); + } + RequestClose(); + } + static float ButtonWidth(FontAwesomeIcon icon, string text2) + { + float x; + using (ImRaii.PushFont(UiBuilder.IconFont)) + { + x = ImGui.CalcTextSize(icon.ToIconString()).X; + } + float x2 = ImGui.CalcTextSize(text2).X; + return x + 6f + x2 + ImGui.GetStyle().FramePadding.X * 2f; + } } } diff --git a/Questionable/Questionable.Windows/QuestSelectionWindow.cs b/Questionable/Questionable.Windows/QuestSelectionWindow.cs index cc68de2..b893deb 100644 --- a/Questionable/Questionable.Windows/QuestSelectionWindow.cs +++ b/Questionable/Questionable.Windows/QuestSelectionWindow.cs @@ -1,23 +1,17 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Game.ClientState.Objects.Types; -using Dalamud.Game.Text.SeStringHandling; using Dalamud.Interface; -using Dalamud.Interface.ManagedFontAtlas; using Dalamud.Interface.Utility.Raii; using Dalamud.Interface.Windowing; using Dalamud.Plugin; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game.UI; using FFXIVClientStructs.FFXIV.Client.UI; -using FFXIVClientStructs.STD.ContainerInterface; using LLib.GameUI; -using LLib.ImGui; using Questionable.Controller; using Questionable.Controller.GameUi; using Questionable.Data; @@ -30,88 +24,6 @@ namespace Questionable.Windows; internal sealed class QuestSelectionWindow : ThemedWindow { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass22_0 - { - public uint territoryId; - - public QuestSelectionWindow _003C_003E4__this; - - internal bool _003COpenForCurrentZone_003Eb__0(Quest x) - { - QuestSequence? questSequence = x.FindSequence(0); - ushort? obj; - if (questSequence == null) - { - obj = null; - } - else - { - QuestStep questStep = _202C_202A_206C_202E_202A_206B_206D_206F_206C_206E_200C_206F_206D_202B_202C_202C_206C_200F_202C_200C_202B_202D_206A_200B_202D_206F_202D_200D_206F_200B_202D_200D_200B_206E_202B_200E_202E_206C_206A_206F_202E(questSequence, 0); - obj = ((questStep != null) ? new ushort?(_200B_200D_206A_202C_202E_206E_206C_200E_200D_202A_200E_206C_206B_202B_202E_206E_202E_200F_202E_200E_200F_202B_200C_206B_202C_206F_200B_206A_202E_206F_202C_206F_200D_202E_200D_206B_206D_200E_200D_206D_202E(questStep)) : ((ushort?)null)); - } - ushort? num = obj; - int num2 = (num.HasValue ? 1950860831 : 1950860828); - uint? obj2; - while (true) - { - int num3 = num2; - int num4 = 1950860829; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - default: - continue; - case 2: - obj2 = num.GetValueOrDefault(); - break; - case 1: - obj2 = null; - break; - case 0: - goto IL_00d6; - } - break; - IL_00d6: - num2 = 1950860828; - } - return obj2 == territoryId; - } - - internal IQuestInfo _003COpenForCurrentZone_003Eb__1(Quest x) - { - return _003C_003E4__this._questData.GetQuestInfo(x.Id); - } - - static QuestStep _202C_202A_206C_202E_202A_206B_206D_206F_206C_206E_200C_206F_206D_202B_202C_202C_206C_200F_202C_200C_202B_202D_206A_200B_202D_206F_202D_200D_206F_200B_202D_200D_200B_206E_202B_200E_202E_206C_206A_206F_202E(QuestSequence P_0, int P_1) - { - return P_0.FindStep(P_1); - } - - static ushort _200B_200D_206A_202C_202E_206E_206C_200E_200D_202A_200E_206C_206B_202B_202E_206E_202E_200F_202E_200E_200F_202B_200C_206B_202C_206F_200B_206A_202E_206F_202C_206F_200D_202E_200D_206B_206D_200E_200D_206D_202E(QuestStep P_0) - { - return P_0.TerritoryId; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass22_1 - { - public QuestId questId; - - internal bool _003COpenForCurrentZone_003Eb__2(IQuestInfo q) - { - return _206C_202C_206D_206F_200C_200C_202B_206B_200F_200C_200E_202D_206E_200B_202B_206B_206D_200C_202D_206C_206F_206E_206B_202B_202D_200C_206C_200D_206F_206D_206C_200C_200C_202D_200D_200B_202D_202E_200B_206D_202E(q.QuestId, (ElementId)questId); - } - - static bool _206C_202C_206D_206F_200C_200C_202B_206B_200F_200C_200E_202D_206E_200B_202B_206B_206D_200C_202D_206C_206F_206E_206B_202B_202D_200C_206C_200D_206F_206D_206C_200C_200C_202D_200D_200B_202D_202E_200B_206D_202E(ElementId P_0, ElementId P_1) - { - return P_0 != P_1; - } - } - private const string WindowId = "###QuestionableQuestSelection"; private readonly QuestData _questData; @@ -152,9 +64,8 @@ internal sealed class QuestSelectionWindow : ThemedWindow private string _searchText = string.Empty; - [MethodImpl(MethodImplOptions.NoInlining)] public QuestSelectionWindow(QuestData questData, IGameGui gameGui, IChatGui chatGui, QuestFunctions questFunctions, QuestController questController, FateController fateController, SeasonalDutyController seasonalDutyController, CustomDeliveryController customDeliveryController, AttunementController attunementController, QuestRegistry questRegistry, IDalamudPluginInterface pluginInterface, TerritoryData territoryData, IClientState clientState, UiUtils uiUtils, QuestTooltipComponent questTooltipComponent) - : base(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-525755755)) + : base("Quest Selection###QuestionableQuestSelection") { _questData = questData; _gameGui = gameGui; @@ -171,156 +82,59 @@ internal sealed class QuestSelectionWindow : ThemedWindow _clientState = clientState; _uiUtils = uiUtils; _questTooltipComponent = questTooltipComponent; - _206F_202B_202C_206B_202E_202E_206B_206C_200E_202A_200E_202B_200E_200E_202E_200C_206E_202A_206D_206B_200E_200F_206E_200E_206A_206A_200D_200D_200D_206A_206E_202A_202E_202B_202D_206D_200E_206E_206F_202B_202E((Vector2?)new Vector2(500f, 200f)); - _202E_200D_206C_202A_200B_206E_206F_206B_202E_206A_206A_202C_200D_200B_206D_200C_202B_202E_206D_202C_202D_202E_206C_200E_200C_202A_206C_202E_200D_202D_202B_206C_200D_200F_202E_206F_202E_206F_206A_206D_202E(ImGuiCond.Once); - _200E_202A_202E_202B_202C_200E_206C_202D_206A_206B_202C_202A_200C_200E_206E_202D_202E_206D_202B_206D_202A_200C_206C_200E_202D_200B_206A_202E_202B_206E_202E_200D_202D_202B_202E_202A_200B_200E_200B_200C_202E((WindowSizeConstraints?)new WindowSizeConstraints + base.Size = new Vector2(500f, 200f); + base.SizeCondition = ImGuiCond.Once; + base.SizeConstraints = new WindowSizeConstraints { MinimumSize = new Vector2(500f, 200f) - }); + }; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe void OpenForTarget(IGameObject? gameObject) { - int num = ((gameObject == null) ? 544754768 : 544754772); - AddonSelectIconString* addonPtr = default(AddonSelectIconString*); - while (true) + if (gameObject != null) { - int num2 = num; - int num3 = 544754769; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - _quests = new List<IQuestInfo>(); - _offeredQuests = new List<IQuestInfo>(); - num = 544754770; - break; - case 3: - _200C_200C_206A_206A_202C_206B_202D_200D_206B_206C_206F_200B_206C_206E_202C_200D_202A_202B_202E_202A_206B_206B_200F_202C_200D_200F_200B_200E_206F_206B_206B_200C_202C_200E_202C_206A_202A_202E_206B_200E_202E((LWindow)this, _quests.Count > 0); - return; - case 5: - { - uint num5 = _200B_206A_206D_206B_206E_206D_206A_202B_202C_202C_206B_202B_202B_202D_206D_206F_200D_202E_202B_202C_206C_206D_202C_200B_200C_200C_200F_200E_200F_206F_200B_202E_206F_202D_202A_206B_206F_206E_206D_206E_202E(gameObject); - string value = _206E_200D_202C_206A_200C_206A_202C_206C_202A_200E_202C_202D_206B_206A_206B_206C_200E_200E_206A_202B_202E_206D_206D_202A_206E_202C_202D_202D_206C_200D_202E_200E_200B_200F_202A_202D_206E_206E_202E_200F_202E((object)_202C_206E_202A_206C_202E_206C_202E_200D_206D_206E_206C_202A_206F_202C_206D_206D_200D_206E_206C_202B_202B_200D_202A_202B_202A_202D_206A_206B_202A_202C_206D_200F_200D_206F_206E_202B_206B_200B_202E_202B_202E(gameObject)); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(24, 3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-447241864)); - defaultInterpolatedStringHandler.AppendFormatted(value); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1769099191)); - defaultInterpolatedStringHandler.AppendFormatted(num5); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1851437460)); - defaultInterpolatedStringHandler.AppendFormatted(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(2125329779)); - _200D_200E_200F_200C_206F_200E_202D_206D_206D_202A_200E_206B_202E_202B_200F_200D_202E_206F_202C_206C_202D_206F_202C_200E_200F_206A_200F_206A_200B_202E_206B_206D_202C_206F_206C_206F_200D_206F_200F_202E(defaultInterpolatedStringHandler.ToStringAndClear()); - _quests = _questData.GetAllByIssuerDataId(num5); - num = ((!_gameGui.TryGetAddonByName<AddonSelectIconString>(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1216084341), out addonPtr)) ? 544754773 : 544754769); - break; - } - case 4: - _offeredQuests = new List<IQuestInfo>(); - num = 544754770; - break; - case 2: - num = 544754772; - break; - case 0: + uint baseId = gameObject.BaseId; + string value = gameObject.Name.ToString(); + base.WindowName = $"Quests starting with {value} [{baseId}]{"###QuestionableQuestSelection"}"; + _quests = _questData.GetAllByIssuerDataId(baseId); + if (_gameGui.TryGetAddonByName<AddonSelectIconString>("SelectIconString", out var addonPtr)) { List<string?> answers = InteractionUiController.GetChoices(addonPtr); _offeredQuests = _quests.Where((IQuestInfo x) => answers.Any((string y) => GameFunctions.GameStringEquals(x.Name, y))).ToList(); - num = 544754770; - break; } + else + { + _offeredQuests = new List<IQuestInfo>(); } } + else + { + _quests = new List<IQuestInfo>(); + _offeredQuests = new List<IQuestInfo>(); + } + base.IsOpenAndUncollapsed = _quests.Count > 0; } - [MethodImpl(MethodImplOptions.NoInlining)] public unsafe void OpenForCurrentZone() { - uint territoryId = _200C_202C_206B_200E_206E_206C_202A_206A_200D_202A_202E_202B_200D_202A_202E_206C_202D_200D_200F_206A_206C_200D_206B_202C_202B_200E_200F_206E_200E_200B_202D_202A_206E_200B_202E_202B_200E_206A_206E_206A_202E(_clientState); + uint territoryId = _clientState.TerritoryType; string nameAndId = _territoryData.GetNameAndId(territoryId); - _200D_200E_200F_200C_206F_200E_202D_206D_206D_202A_200E_206B_202E_202B_200F_200D_202E_206F_202C_206C_202D_206F_202C_200E_200F_206A_200F_206A_200B_202E_206B_206D_202C_206F_206C_206F_200D_206F_200F_202E(_202E_200F_200F_200C_202B_202A_200D_200B_206B_200E_202B_200B_200E_206F_206F_206A_202B_200D_206F_202B_200D_206B_200B_206E_206D_206C_206E_206D_200F_206E_200B_206B_202A_200B_200E_206E_202E_206F_206B_206A_202E(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1676860164), nameAndId, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1718139075))); - _quests = (from x in _questRegistry.AllQuests.Where(delegate(Quest x) - { - QuestSequence? questSequence = x.FindSequence(0); - ushort? obj; - if (questSequence == null) - { - obj = null; - } - else - { - QuestStep questStep = _003C_003Ec__DisplayClass22_0._202C_202A_206C_202E_202A_206B_206D_206F_206C_206E_200C_206F_206D_202B_202C_202C_206C_200F_202C_200C_202B_202D_206A_200B_202D_206F_202D_200D_206F_200B_202D_200D_200B_206E_202B_200E_202E_206C_206A_206F_202E(questSequence, 0); - obj = ((questStep != null) ? new ushort?(_003C_003Ec__DisplayClass22_0._200B_200D_206A_202C_202E_206E_206C_200E_200D_202A_200E_206C_206B_202B_202E_206E_202E_200F_202E_200E_200F_202B_200C_206B_202C_206F_200B_206A_202E_206F_202C_206F_200D_202E_200D_206B_206D_200E_200D_206D_202E(questStep)) : ((ushort?)null)); - } - ushort? num5 = obj; - int num6 = (num5.HasValue ? 1950860831 : 1950860828); - uint? obj2; - while (true) - { - int num7 = num6; - int num8 = 1950860829; - int num9 = num7; - int num10 = num9 + num8; - int num11 = num9 & num8; - switch (num10 - (num11 + num11)) - { - default: - continue; - case 2: - obj2 = num5.GetValueOrDefault(); - break; - case 1: - obj2 = null; - break; - case 0: - goto IL_00d6; - } - break; - IL_00d6: - num6 = 1950860828; - } - return obj2 == territoryId; - }) + base.WindowName = "Quests starting in " + nameAndId + "###QuestionableQuestSelection"; + _quests = (from x in _questRegistry.AllQuests + where x.FindSequence(0)?.FindStep(0)?.TerritoryId == territoryId select _questData.GetQuestInfo(x.Id)).ToList(); - using (IStdList<MarkerInfo>.Enumerator enumerator = Map.Instance()->UnacceptedQuestMarkers.GetEnumerator()) + foreach (ref MarkerInfo unacceptedQuestMarker in Map.Instance()->UnacceptedQuestMarkers) { - int num = -680894682; - _003C_003Ec__DisplayClass22_1 _003C_003Ec__DisplayClass22_ = default(_003C_003Ec__DisplayClass22_1); - while (true) + MarkerInfo current = unacceptedQuestMarker; + QuestId questId = QuestId.FromRowId(current.ObjectiveId); + if (_quests.All((IQuestInfo q) => q.QuestId != questId)) { - int num2 = num; - int num3 = -680894683; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - _quests.Add(_questData.GetQuestInfo(_003C_003Ec__DisplayClass22_.questId)); - num = -680894682; - break; - case 1: - { - MarkerInfo current = enumerator.Current; - _003C_003Ec__DisplayClass22_ = new _003C_003Ec__DisplayClass22_1(); - _003C_003Ec__DisplayClass22_.questId = _206A_202C_200C_206B_200E_206C_200E_206E_202A_202D_206E_200D_202C_200B_202B_200D_200F_202A_206C_206B_202D_200B_206A_200F_202E_206F_200F_206A_200B_200F_202C_202B_206A_202B_200E_202C_200B_202D_206A_202D_202E(current.ObjectiveId); - num = ((!_quests.All(_003C_003Ec__DisplayClass22_._003COpenForCurrentZone_003Eb__2)) ? (-680894682) : (-680894687)); - break; - } - case 3: - num = (enumerator.MoveNext() ? (-680894684) : (-680894683)); - break; - case 2: - num = -680894682; - break; - case 0: - goto end_IL_00a4; - } - continue; - end_IL_00a4: - break; + _quests.Add(_questData.GetQuestInfo(questId)); } } _offeredQuests = new List<IQuestInfo>(); - _200C_200C_206A_206A_202C_206B_202D_200D_206B_206C_206F_200B_206C_206E_202C_200D_202A_202B_202E_202A_206B_206B_200F_202C_200D_200F_200B_200E_206F_206B_206B_200C_202C_200E_202C_206A_202A_202E_206B_200E_202E((LWindow)this, true); + base.IsOpenAndUncollapsed = true; } public override void OnClose() @@ -329,900 +143,162 @@ internal sealed class QuestSelectionWindow : ThemedWindow _offeredQuests = new List<IQuestInfo>(); } - [MethodImpl(MethodImplOptions.NoInlining)] public override void DrawContent() { var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); - UiThemeUtils.SearchInput(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1199850857), ref _searchText, -13f, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1896051322)); - int num = ((_offeredQuests.Count == 0) ? 1546937917 : 1546937916); - IEnumerable<IQuestInfo> enumerable = default(IEnumerable<IQuestInfo>); - EInteractionType? eInteractionType = default(EInteractionType?); - while (true) + UiThemeUtils.SearchInput("##QuestSelectionSearch", ref _searchText, -13f, "Search quests..."); + if (_offeredQuests.Count != 0) { - int num2 = num; - int num3 = 1546937917; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + UiThemeUtils.WrappedCheckbox("Only show quests currently offered", ref _onlyAvailableQuests); + } + using (ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable("QuestSelection", 4, ImGuiTableFlags.ScrollY)) + { + if ((bool)tableDisposable) { - case 2: - num = 1546937916; - break; - case 1: - UiThemeUtils.WrappedCheckbox(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(687535050), ref _onlyAvailableQuests); - num = 1546937917; - break; - case 0: - { - using (ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(438503370), 4, ImGuiTableFlags.ScrollY)) + float x; + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) { - if ((bool)tableDisposable) + x = ImGui.CalcTextSize(FontAwesomeIcon.Copy.ToIconString()).X; + } + float initWidthOrWeight = 3f * ImGui.GetFrameHeight() + 2f * ImGui.GetStyle().ItemSpacing.X; + ImGui.TableSetupColumn("Id", ImGuiTableColumnFlags.WidthFixed, 50f * ImGui.GetIO().FontGlobalScale); + ImGui.TableSetupColumn("", ImGuiTableColumnFlags.WidthFixed, x); + ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.None, 200f); + ImGui.TableSetupColumn("Actions", ImGuiTableColumnFlags.WidthFixed, initWidthOrWeight); + ImGui.TableHeadersRow(); + IEnumerable<IQuestInfo> enumerable = ((_offeredQuests.Count != 0 && _onlyAvailableQuests) ? _offeredQuests : _quests); + if (!string.IsNullOrWhiteSpace(_searchText)) + { + enumerable = enumerable.Where((IQuestInfo q) => q.Name.Contains(_searchText, StringComparison.OrdinalIgnoreCase) || q.QuestId.ToString().Contains(_searchText, StringComparison.OrdinalIgnoreCase)); + } + foreach (IQuestInfo item in enumerable) + { + ImGui.TableNextRow(); + string text = item.QuestId.ToString(); + Quest quest; + bool flag = _questRegistry.TryGetQuest(item.QuestId, out quest); + if (ImGui.TableNextColumn()) { - IDisposable disposable = _202B_200F_200D_206D_202E_206D_200D_206B_206F_200D_200C_200F_206C_206B_200C_206B_200D_206B_200E_206E_206E_200F_200F_206E_206A_202C_200D_206B_206C_202A_200B_200C_200E_202B_206D_202B_202C_202C_206B_200E_202E(_200B_206C_206D_206B_200C_206C_200B_202C_202D_206B_202E_200C_200B_200E_202D_200D_202A_200B_202D_206B_202D_206B_200F_202E_202D_202D_202A_206F_206B_206D_200E_206D_206C_206C_200E_200E_206B_206C_206B_200D_202E(_202D_200F_206A_200D_206C_206F_206D_206B_206F_206F_206B_202B_206A_200F_200B_202C_200C_200E_202D_206D_206A_206F_206C_202D_206A_202C_206D_200D_206D_206E_206C_200F_206D_200E_206D_202C_200D_206E_200B_200F_202E(_pluginInterface))); - float x; - try + ImGui.AlignTextToFramePadding(); + ImGui.TextUnformatted(text); + } + if (ImGui.TableNextColumn()) + { + ImGui.AlignTextToFramePadding(); + var (col, icon, _) = _uiUtils.GetQuestStyle(item.QuestId); + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) { - x = _200B_202B_200F_206C_200F_206F_200F_202C_206B_202A_206C_200B_202E_200F_206B_200B_206D_206C_202A_202B_200E_206E_202C_202A_202D_206C_200F_202D_206A_206B_200D_206F_200F_206B_200F_200D_206B_200C_206B_206F_202E((ImU8String)_200D_202A_202B_200C_200F_200B_202D_200B_202E_206B_202D_200F_206A_200D_202C_200B_200B_200D_200C_206C_202B_200B_206B_202E_206B_202D_206D_200C_200C_202C_206B_206C_200E_200C_206A_206A_200D_202D_202C_206B_202E(FontAwesomeIcon.Copy), false, -1f).X; - } - finally - { - num = ((disposable == null) ? (-8163862) : (-8163861)); - while (true) + if (flag) { - int num5 = num; - num3 = -8163862; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 0: - goto end_IL_013e; - case 1: - _202D_202A_206F_206D_206C_202B_202D_202B_206D_206F_202E_200B_200B_200F_202B_206B_206B_206A_200C_206A_206A_206E_206D_206F_202C_200E_206B_206E_200B_200C_206A_206F_200E_202D_206A_206C_202B_200D_200C_206D_202E(disposable); - num = -8163862; - break; - case 2: - num = -8163861; - break; - } - continue; - end_IL_013e: - break; + ImGui.TextColored(in col, icon.ToIconString()); + } + else + { + ImGui.TextColored(in UiThemeUtils.StatusUnobtainable, icon.ToIconString()); } } - float num8 = 3f * _202E_202A_200B_200B_206E_202A_202B_202A_202C_202B_206D_200F_206F_202D_206F_206B_200B_206C_202C_202C_202D_200D_200F_202E_202B_202C_200F_200B_206B_202C_200E_202A_200E_206C_206B_200C_206B_200C_206D_206E_202E() + 2f * _202D_200E_202A_200B_200F_202B_202E_200D_202D_206D_206F_202B_202B_200C_202D_202B_200E_202D_200F_200D_200D_202C_206E_206B_202C_202E_202D_206D_206E_206C_202B_202B_202D_202E_202C_200E_200F_206A_202E_202C_202E().ItemSpacing.X; - _200C_202E_202C_206A_202B_202B_206D_206E_206A_200D_200D_200D_202D_202B_202B_202D_202A_200C_202C_206E_202E_206E_206C_206C_206B_206A_206F_200F_200B_206E_206B_200C_200D_202A_200F_206F_200E_202A_206B_206E_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(900300017), ImGuiTableColumnFlags.WidthFixed, 50f * _202D_202B_200C_200F_202A_200B_200D_206C_206D_200B_200C_206A_200C_206A_202A_200F_206B_200B_206C_206A_206E_200D_206B_206E_200D_202B_206B_206B_206B_202B_202C_202D_200F_202C_200E_206B_200C_206C_202A_202D_202E().FontGlobalScale, 0u); - _200C_202E_202C_206A_202B_202B_206D_206E_206A_200D_200D_200D_202D_202B_202B_202D_202A_200C_202C_206E_202E_206E_206C_206C_206B_206A_206F_200F_200B_206E_206B_200C_200D_202A_200F_206F_200E_202A_206B_206E_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-87324410), ImGuiTableColumnFlags.WidthFixed, x, 0u); - _200C_202E_202C_206A_202B_202B_206D_206E_206A_200D_200D_200D_202D_202B_202B_202D_202A_200C_202C_206E_202E_206E_206C_206C_206B_206A_206F_200F_200B_206E_206B_200C_200D_202A_200F_206F_200E_202A_206B_206E_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1033927912), ImGuiTableColumnFlags.None, 200f, 0u); - _200C_202E_202C_206A_202B_202B_206D_206E_206A_200D_200D_200D_202D_202B_202B_202D_202A_200C_202C_206E_202E_206E_206C_206C_206B_206A_206F_200F_200B_206E_206B_200C_200D_202A_200F_206F_200E_202A_206B_206E_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1823893311), ImGuiTableColumnFlags.WidthFixed, num8, 0u); - _200E_202D_200B_200B_206C_206A_200C_200B_206A_202A_200D_206F_202A_202D_200F_206A_206E_202C_202E_200B_202E_200C_206F_200D_206F_200B_200B_206E_200D_202A_206B_206A_200D_202A_200D_206E_206D_206F_202D_202D_202E(); - num = ((_offeredQuests.Count == 0) ? 1384381590 : 1384381588); - while (true) + if (ImGui.IsItemHovered()) { - int num9 = num; - num3 = 1384381591; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - List<IQuestInfo> list; - switch (num10 - (num11 + num11)) + _questTooltipComponent.Draw(item); + } + } + if (ImGui.TableNextColumn()) + { + ImGui.AlignTextToFramePadding(); + if (quest != null && quest.Root.Disabled) + { + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) { - case 1: - list = _quests; - goto IL_02fd; - case 3: - num = (_onlyAvailableQuests ? 1384381586 : 1384381590); - break; - case 4: - enumerable = enumerable.Where(delegate(IQuestInfo q) - { - int num34 = (_202D_206F_202D_206D_206D_202B_200C_206C_202A_206D_202C_200F_206B_206B_200E_206F_206B_202A_206A_202C_200D_200E_202E_200D_200D_206F_206F_202E_206C_200F_206B_202E_200F_200C_200C_206E_200E_202D_200E_200D_202E(q.Name, _searchText, StringComparison.OrdinalIgnoreCase) ? (-825866346) : (-825866345)); - while (true) - { - int num35 = num34; - int num36 = -825866346; - int num37 = num35; - switch ((num37 | num36) - (num37 & num36)) - { - case 2: - goto IL_0052; - case 0: - return true; - case 1: - return _202D_206F_202D_206D_206D_202B_200C_206C_202A_206D_202C_200F_206B_206B_200E_206F_206B_202A_206A_202C_200D_200E_202E_200D_200D_206F_206F_202E_206C_200F_206B_202E_200F_200C_200C_206E_200E_202D_200E_200D_202E(_206E_200D_202C_206A_200C_206A_202C_206C_202A_200E_202C_202D_206B_206A_206B_206C_200E_200E_206A_202B_202E_206D_206D_202A_206E_202C_202D_202D_206C_200D_202E_200E_200B_200F_202A_202D_206E_206E_202E_200F_202E((object)q.QuestId), _searchText, StringComparison.OrdinalIgnoreCase); - } - continue; - IL_0052: - num34 = -825866345; - } - }); - num = 1384381589; - break; - case 0: - num = 1384381588; - break; - case 5: - list = _offeredQuests; - goto IL_02fd; - case 2: - { - IEnumerator<IQuestInfo> enumerator = enumerable.GetEnumerator(); - try - { - while (_202E_206C_206A_206A_200F_200F_206F_206A_206C_202D_206C_206A_200C_206A_206D_202B_202D_206E_206A_206B_202B_202B_200B_202D_206F_202A_200D_206D_206E_200F_202A_202B_202A_206A_200B_200F_206C_200E_206D_206F_202E((IEnumerator)enumerator)) - { - IQuestInfo current = enumerator.Current; - _202E_206A_206A_202E_202A_202A_200D_200F_206C_206E_206E_200D_206B_206F_206C_202E_200E_200C_202A_200B_206F_206F_206F_206A_200E_202D_202B_206B_200C_206B_202E_206C_200C_206C_202C_200E_202C_200E_200B_202D_202E(); - string text = _206E_200D_202C_206A_200C_206A_202C_206C_202A_200E_202C_202D_206B_206A_206B_206C_200E_200E_206A_202B_202E_206D_206D_202A_206E_202C_202D_202D_206C_200D_202E_200E_200B_200F_202A_202D_206E_206E_202E_200F_202E((object)current.QuestId); - Quest quest; - bool flag = _questRegistry.TryGetQuest(current.QuestId, out quest); - if (_206A_202A_206E_202B_206F_206D_206A_202E_206A_202E_202B_206F_206A_202A_206F_200E_202B_200B_202C_200E_200D_202C_202C_206B_206C_200D_200D_206F_202C_206D_206F_202B_200C_206F_206E_202A_206A_200D_202B_200E_202E()) - { - _200B_206F_206D_206F_200F_202C_206D_200D_206C_202B_200F_206F_206B_206C_200B_206E_206F_206A_202D_200E_202A_206A_206E_200F_202C_202B_202A_202E_200E_200F_206F_202B_202C_206F_200D_206A_202A_202C_202B_200F_202E(); - _200F_206D_200F_206B_206C_200C_206B_202D_202A_206A_206F_202C_206B_202B_200E_206D_202E_202D_206C_202B_200D_202C_206F_202D_200D_206C_206F_202E_206B_202E_206B_206C_200B_200C_202C_202E_200F_202C_202C_200C_202E((ImU8String)text); - } - if (_206A_202A_206E_202B_206F_206D_206A_202E_206A_202E_202B_206F_206A_202A_206F_200E_202B_200B_202C_200E_200D_202C_202C_206B_206C_200D_200D_206F_202C_206D_206F_202B_200C_206F_206E_202A_206A_200D_202B_200E_202E()) - { - _200B_206F_206D_206F_200F_202C_206D_200D_206C_202B_200F_206F_206B_206C_200B_206E_206F_206A_202D_200E_202A_206A_206E_200F_202C_202B_202A_202E_200E_200F_206F_202B_202C_206F_200D_206A_202A_202C_202B_200F_202E(); - (Vector4 Color, FontAwesomeIcon Icon, string Status) questStyle = _uiUtils.GetQuestStyle(current.QuestId); - Vector4 item = questStyle.Color; - FontAwesomeIcon item2 = questStyle.Icon; - IDisposable disposable2 = _202B_200F_200D_206D_202E_206D_200D_206B_206F_200D_200C_200F_206C_206B_200C_206B_200D_206B_200E_206E_206E_200F_200F_206E_206A_202C_200D_206B_206C_202A_200B_200C_200E_202B_206D_202B_202C_202C_206B_200E_202E(_200B_206C_206D_206B_200C_206C_200B_202C_202D_206B_202E_200C_200B_200E_202D_200D_202A_200B_202D_206B_202D_206B_200F_202E_202D_202D_202A_206F_206B_206D_200E_206D_206C_206C_200E_200E_206B_206C_206B_200D_202E(_202D_200F_206A_200D_206C_206F_206D_206B_206F_206F_206B_202B_206A_200F_200B_202C_200C_200E_202D_206D_206A_206F_206C_202D_206A_202C_206D_200D_206D_206E_206C_200F_206D_200E_206D_202C_200D_206E_200B_200F_202E(_pluginInterface))); - try - { - num = ((!flag) ? (-1840773926) : (-1840773927)); - while (true) - { - int num12 = num; - num3 = -1840773925; - num4 = num12; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0414; - case 2: - _200F_206F_206C_200D_206A_200F_200C_200C_206C_206C_206D_200F_206C_202D_206D_206E_206D_200E_200F_200B_206A_202D_206B_202A_202A_202D_206D_202E_202C_200D_202C_206B_200C_206F_200B_202E_202E_200B_200E_206C_202E(ref item, (ImU8String)_200D_202A_202B_200C_200F_200B_202D_200B_202E_206B_202D_200F_206A_200D_202C_200B_200B_200D_200C_206C_202B_200B_206B_202E_206B_202D_206D_200C_200C_202C_206B_206C_200E_200C_206A_206A_200D_202D_202C_206B_202E(item2)); - goto end_IL_03e8; - case 1: - _200F_206F_206C_200D_206A_200F_200C_200C_206C_206C_206D_200F_206C_202D_206D_206E_206D_200E_200F_200B_206A_202D_206B_202A_202A_202D_206D_202E_202C_200D_202C_206B_200C_206F_200B_202E_202E_200B_200E_206C_202E(ref UiThemeUtils.StatusUnobtainable, (ImU8String)_200D_202A_202B_200C_200F_200B_202D_200B_202E_206B_202D_200F_206A_200D_202C_200B_200B_200D_200C_206C_202B_200B_206B_202E_206B_202D_206D_200C_200C_202C_206B_206C_200E_200C_206A_206A_200D_202D_202C_206B_202E(item2)); - goto end_IL_03e8; - } - continue; - IL_0414: - num = -1840773927; - continue; - end_IL_03e8: - break; - } - } - finally - { - num = ((disposable2 == null) ? 522186771 : 522186768); - while (true) - { - int num13 = num; - num3 = 522186769; - num4 = num13; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_047e; - case 1: - _202D_202A_206F_206D_206C_202B_202D_202B_206D_206F_202E_200B_200B_200F_202B_206B_206B_206A_200C_206A_206A_206E_206D_206F_202C_200E_206B_206E_200B_200C_206A_206F_200E_202D_206A_206C_202B_200D_200C_206D_202E(disposable2); - num = 522186771; - break; - case 0: - num = 522186768; - break; - } - continue; - end_IL_047e: - break; - } - } - num = ((!_202A_206F_202C_206F_202E_206A_206C_206E_202E_200E_200D_200E_206A_200B_206D_206E_206A_200F_206F_200B_202E_200B_206B_202E_202A_206B_206E_206B_206D_206E_200F_200C_202B_206A_200C_206A_206E_202C_200F_202E_202E()) ? 954775956 : 954775955); - goto IL_04ec; - } - goto IL_057e; - IL_04ec: - while (true) - { - int num14 = num; - num3 = 954775953; - num4 = num14; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 954775955; - break; - case 4: - goto IL_0530; - case 2: - _questTooltipComponent.Draw(current); - num = 954775956; - break; - case 1: - goto IL_0566; - case 5: - goto end_IL_04ec; - case 3: - goto IL_0594; - } - continue; - IL_0594: - IDisposable disposable3 = _202B_200F_200D_206D_202E_206D_200D_206B_206F_200D_200C_200F_206C_206B_200C_206B_200D_206B_200E_206E_206E_200F_200F_206E_206A_202C_200D_206B_206C_202A_200B_200C_200E_202B_206D_202B_202C_202C_206B_200E_202E(_200B_206C_206D_206B_200C_206C_200B_202C_202D_206B_202E_200C_200B_200E_202D_200D_202A_200B_202D_206B_202D_206B_200F_202E_202D_202D_202A_206F_206B_206D_200E_206D_206C_206C_200E_200E_206B_206C_206B_200D_202E(_202D_200F_206A_200D_206C_206F_206D_206B_206F_206F_206B_202B_206A_200F_200B_202C_200C_200E_202D_206D_206A_206F_206C_202D_206A_202C_206D_200D_206D_206E_206C_200F_206D_200E_206D_202C_200D_206E_200B_200F_202E(_pluginInterface))); - try - { - _200F_206F_206C_200D_206A_200F_200C_200C_206C_206C_206D_200F_206C_202D_206D_206E_206D_200E_200F_200B_206A_202D_206B_202A_202A_202D_206D_202E_202C_200D_202C_206B_200C_206F_200B_202E_202E_200B_200E_206C_202E(ref UiThemeUtils.StatusActive, (ImU8String)_200D_202A_202B_200C_200F_200B_202D_200B_202E_206B_202D_200F_206A_200D_202C_200B_200B_200D_200C_206C_202B_200B_206B_202E_206B_202D_206D_200C_200C_202C_206B_206C_200E_200C_206A_206A_200D_202D_202C_206B_202E(FontAwesomeIcon.Ban)); - _206F_202E_200F_202D_200E_200B_202B_206E_206B_206A_202C_200E_202E_206C_206F_202B_206A_202C_200D_202E_206B_202D_202E_200C_202B_206C_200B_200D_202A_202A_202A_200B_202C_202E_200E_206E_202B_202B_202A_200D_202E(); - } - finally - { - num = ((disposable3 == null) ? 2106221697 : 2106221698); - while (true) - { - int num15 = num; - num3 = 2106221696; - num4 = num15; - int num16 = num4 + num3; - int num17 = num4 & num3; - switch (num16 - (num17 + num17)) - { - case 0: - num = 2106221698; - break; - case 2: - _202D_202A_206F_206D_206C_202B_202D_202B_206D_206F_202E_200B_200B_200F_202B_206B_206B_206A_200C_206A_206A_206E_206D_206F_202C_200E_206B_206E_200B_200C_206A_206F_200E_202D_206A_206C_202B_200D_200C_206D_202E(disposable3); - num = 2106221697; - break; - case 1: - goto end_IL_05ed; - } - continue; - end_IL_05ed: - break; - } - } - goto IL_063b; - IL_0566: - _200B_206F_206D_206F_200F_202C_206D_200D_206C_202B_200F_206F_206B_206C_200B_206E_206F_206A_202D_200E_202A_206A_206E_200F_202C_202B_202A_202E_200E_200F_206F_202B_202C_206F_200D_206A_202A_202C_202B_200F_202E(); - if (quest != null) - { - num = 954775957; - continue; - } - goto IL_063b; - IL_063b: - UiThemeUtils.RowLabel(current.Name, 0f); - goto IL_064c; - IL_0530: - if (_206B_200D_206E_200D_202C_206E_200D_206C_206F_202E_202C_200E_200E_202A_206E_206A_200C_202D_202D_206F_206B_200E_206E_202B_202C_202E_206F_200B_206F_206E_206E_202C_202E_206C_206F_200F_200E_202E_202B_202E_202E(quest.Root)) - { - num = 954775954; - continue; - } - goto IL_063b; - continue; - end_IL_04ec: - break; - } - goto IL_057e; - IL_064c: - if (!_206A_202A_206E_202B_206F_206D_206A_202E_206A_202E_202B_206F_206A_202A_206F_200E_202B_200B_202C_200E_200D_202C_202C_206B_206C_200D_200D_206F_202C_206D_206F_202B_200C_206F_206E_202A_206A_200D_202B_200E_202E()) - { - continue; - } - ImRaii.IdDisposable idDisposable = _206F_202A_202E_202B_206C_206D_202A_206E_202A_202E_202D_206C_202A_202E_200C_206A_202E_202D_206B_202C_206B_200C_206D_200D_200E_202C_202E_202B_200C_200D_206E_200F_200C_200D_202E_202D_200B_200C_200B_200C_202E((ImU8String)text, true); - try - { - bool num18 = UiThemeUtils.IconButton(FontAwesomeIcon.Copy, _202E_202A_200B_200B_206E_202A_202B_202A_202C_202B_206D_200F_206F_202D_206F_206B_200B_206C_202C_202C_202D_200D_200F_202E_202B_202C_200F_200B_206B_202C_200E_202A_200E_206C_206B_200C_206B_200C_206D_206E_202E()); - if (_202A_206F_202C_206F_202E_206A_206C_206E_202E_200E_200D_200E_206A_200B_206D_206E_206A_200F_206F_200B_202E_200B_206B_202E_202A_206B_206E_206B_206D_206E_200F_200C_202B_206A_200C_206A_206E_202C_200F_202E_202E()) - { - _202C_206C_206C_202D_202C_200F_206A_202B_206D_206E_200B_200D_202B_200D_206A_206D_206A_200C_206D_206C_200B_206E_200F_200F_200E_202D_206A_206F_202E_206F_202C_202A_200D_202B_200D_206F_202C_206C_206C_206B_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1170265918)); - } - num = ((!num18) ? 159854132 : 159854129); - while (true) - { - int num19 = num; - num3 = 159854141; - num4 = num19; - int num20 = num4 + num3; - int num21 = num4 & num3; - int num22; - switch (num20 - (num21 + num21)) - { - default: - continue; - case 6: - num = 159854129; - continue; - case 14: - num22 = (_attunementController.IsRunning ? 1 : 0); - break; - case 12: - CopyToClipboard(current, suffix: true); - num = 159854143; - continue; - case 4: - num = (_fateController.IsRunning ? 159854141 : 159854140); - continue; - case 1: - num = (_seasonalDutyController.IsRunning ? 159854141 : 159854142); - continue; - case 8: - if (eInteractionType == EInteractionType.AcceptQuest) - { - num = 159854135; - continue; - } - goto end_IL_06af; - case 13: - num = ((_questController.SimulatedQuest != null) ? 159854141 : 159854137); - continue; - case 5: - CopyToClipboard(current, suffix: false); - num = 159854143; - continue; - case 9: - num = ((!_202D_202E_206F_206C_202E_202B_206B_200C_200F_206B_202C_206A_200F_206B_206A_202D_200F_206F_206E_200E_200F_202E_200C_202A_206A_200E_206D_202B_202D_206A_200B_206A_200E_200D_202A_202E_206F_206E_206B_206E_202E(ImGuiMouseButton.Right)) ? 159854143 : 159854136); - continue; - case 7: - num = ((_questController.NextQuest != null) ? 159854141 : 159854128); - continue; - case 11: - { - QuestSequence? questSequence = quest.FindSequence(0); - EInteractionType? obj; - if (questSequence == null) - { - obj = null; - } - else - { - QuestStep questStep = _200B_200D_206D_206A_200C_200C_206A_202E_200F_202E_206A_202D_200C_200F_200C_206A_206B_200E_202A_200D_206F_200B_206F_202D_200B_202C_206C_202C_202B_202C_200F_202E_202A_202B_206E_206D_202E_206D_200E_202E_202E(questSequence); - obj = ((questStep != null) ? new EInteractionType?(_202D_202D_200D_206E_202A_202E_202B_200C_202A_202A_206E_202A_202D_200F_200F_202C_206A_200C_202C_200F_200E_200D_202D_202B_206C_206B_206B_200B_206C_200F_206B_200E_206F_200C_200C_206D_202B_206D_200B_200F_202E(questStep)) : ((EInteractionType?)null)); - } - eInteractionType = obj; - if (eInteractionType.HasValue) - { - num = 159854133; - continue; - } - goto end_IL_06af; - } - case 3: - num = (_customDeliveryController.IsRunning ? 159854141 : 159854131); - continue; - case 2: - _206F_202E_200F_202D_200E_200B_202B_206E_206B_206A_202C_200E_202E_206C_206F_202B_206A_202C_200D_202E_206B_202D_202E_200C_202B_206C_200B_200D_202A_202A_202A_200B_202C_202E_200E_206E_202B_202B_202A_200D_202E(); - if (quest != null) - { - num = 159854134; - continue; - } - goto end_IL_06af; - case 10: - if (_questFunctions.IsReadyToAcceptQuest(current.QuestId)) - { - num = 159854138; - continue; - } - goto end_IL_06af; - case 0: - num22 = 1; - break; - } - ImRaii.DisabledDisposable disabledDisposable = _200B_202E_200E_206E_202C_200B_206F_206D_206A_206C_206B_206B_202D_206B_206C_202D_202C_202B_206E_206A_206F_202A_200D_206D_200F_206D_206F_200F_202C_202A_206A_200F_206B_202C_200E_200B_202E_200C_206C_206A_202E((byte)num22 != 0); - try - { - ImRaii.ColorDisposable colorDisposable = _202B_206C_206C_206F_202E_202B_200F_202A_200E_200F_206A_200B_202E_206C_206A_200E_206A_206A_202A_202E_202D_202D_202C_200E_200D_200E_202E_202C_200D_202A_200D_202A_206D_202D_200C_202D_200C_206E_206A_200E_202E(ImGuiCol.Button, UiThemeUtils.PlayButtonColor, true); - bool flag2; - try - { - ImRaii.ColorDisposable colorDisposable2 = _202B_206C_206C_206F_202E_202B_200F_202A_200E_200F_206A_200B_202E_206C_206A_200E_206A_206A_202A_202E_202D_202D_202C_200E_200D_200E_202E_202C_200D_202A_200D_202A_206D_202D_200C_202D_200C_206E_206A_200E_202E(ImGuiCol.ButtonHovered, UiThemeUtils.PlayButtonHover, true); - try - { - ImRaii.ColorDisposable colorDisposable3 = _202B_206C_206C_206F_202E_202B_200F_202A_200E_200F_206A_200B_202E_206C_206A_200E_206A_206A_202A_202E_202D_202D_202C_200E_200D_200E_202E_202C_200D_202A_200D_202A_206D_202D_200C_202D_200C_206E_206A_200E_202E(ImGuiCol.ButtonActive, UiThemeUtils.PlayButtonActive, true); - try - { - ImRaii.ColorDisposable colorDisposable4 = _202B_206C_206C_206F_202E_202B_200F_202A_200E_200F_206A_200B_202E_206C_206A_200E_206A_206A_202A_202E_202D_202D_202C_200E_200D_200E_202E_202C_200D_202A_200D_202A_206D_202D_200C_202D_200C_206E_206A_200E_202E(ImGuiCol.Text, UiThemeUtils.PlayButtonText, true); - try - { - flag2 = UiThemeUtils.IconButton(FontAwesomeIcon.Play, _202E_202A_200B_200B_206E_202A_202B_202A_202C_202B_206D_200F_206F_202D_206F_206B_200B_206C_202C_202C_202D_200D_200F_202E_202B_202C_200F_200B_206B_202C_200E_202A_200E_206C_206B_200C_206B_200C_206D_206E_202E()); - } - finally - { - num = ((colorDisposable4 == null) ? (-1140323059) : (-1140323058)); - while (true) - { - int num23 = num; - num3 = -1140323057; - num4 = num23; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1140323058; - break; - case 1: - _202D_202A_206F_206D_206C_202B_202D_202B_206D_206F_202E_200B_200B_200F_202B_206B_206B_206A_200C_206A_206A_206E_206D_206F_202C_200E_206B_206E_200B_200C_206A_206F_200E_202D_206A_206C_202B_200D_200C_206D_202E((IDisposable)colorDisposable4); - num = -1140323059; - break; - case 2: - goto end_IL_0975; - } - continue; - end_IL_0975: - break; - } - } - } - finally - { - num = ((colorDisposable3 == null) ? 1182290458 : 1182290457); - while (true) - { - int num24 = num; - num3 = 1182290459; - num4 = num24; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1182290457; - break; - case 1: - goto end_IL_09e0; - case 2: - _202D_202A_206F_206D_206C_202B_202D_202B_206D_206F_202E_200B_200B_200F_202B_206B_206B_206A_200C_206A_206A_206E_206D_206F_202C_200E_206B_206E_200B_200C_206A_206F_200E_202D_206A_206C_202B_200D_200C_206D_202E((IDisposable)colorDisposable3); - num = 1182290458; - break; - } - continue; - end_IL_09e0: - break; - } - } - } - finally - { - num = ((colorDisposable2 == null) ? (-1921244302) : (-1921244303)); - while (true) - { - int num25 = num; - num3 = -1921244301; - num4 = num25; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1921244303; - break; - case 2: - _202D_202A_206F_206D_206C_202B_202D_202B_206D_206F_202E_200B_200B_200F_202B_206B_206B_206A_200C_206A_206A_206E_206D_206F_202C_200E_206B_206E_200B_200C_206A_206F_200E_202D_206A_206C_202B_200D_200C_206D_202E((IDisposable)colorDisposable2); - num = -1921244302; - break; - case 1: - goto end_IL_0a4b; - } - continue; - end_IL_0a4b: - break; - } - } - } - finally - { - num = ((colorDisposable == null) ? 2096255815 : 2096255814); - while (true) - { - int num26 = num; - num3 = 2096255815; - num4 = num26; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 2096255814; - break; - case 0: - goto end_IL_0ab6; - case 1: - _202D_202A_206F_206D_206C_202B_202D_202B_206D_206F_202E_200B_200B_200F_202B_206B_206B_206A_200C_206A_206A_206E_206D_206F_202C_200E_206B_206E_200B_200C_206A_206F_200E_202D_206A_206C_202B_200D_200C_206D_202E((IDisposable)colorDisposable); - num = 2096255815; - break; - } - continue; - end_IL_0ab6: - break; - } - } - num = ((!_202A_206F_202C_206F_202E_206A_206C_206E_202E_200E_200D_200E_206A_200B_206D_206E_206A_200F_206F_200B_202E_200B_206B_202E_202A_206B_206E_206B_206D_206E_200F_200C_202B_206A_200C_206A_206E_202C_200F_202E_202E()) ? 189281553 : 189281557); - while (true) - { - int num27 = num; - num3 = 189281554; - num4 = num27; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 189281557; - break; - case 7: - _202C_206C_206C_202D_202C_200F_206A_202B_206D_206E_200B_200D_202B_200D_206A_206D_206A_200C_206D_206C_200B_206E_200F_200F_200E_202D_206A_206F_202E_206F_202C_202A_200D_202B_200D_206F_202C_206C_206C_206B_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1639691610)); - num = 189281553; - break; - case 4: - _fateController.Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1658160638)); - _seasonalDutyController.Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1658160638)); - _customDeliveryController.Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-926517325)); - _attunementController.Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-865943171)); - _questController.SetNextQuest(quest); - num = (_questController.ManualPriorityQuests.Contains(quest) ? 189281556 : 189281554); - break; - case 8: - _questController.SetNextQuest(quest); - num = 189281555; - break; - case 5: - { - _206F_202E_200F_202D_200E_200B_202B_206E_206B_206A_202C_200E_202E_206C_206F_202B_206A_202C_200D_202E_206B_202D_202E_200C_202B_206C_200B_200D_202A_202A_202A_200B_202C_202E_200E_206E_202B_202B_202A_200D_202E(); - bool num28 = UiThemeUtils.IconButton(FontAwesomeIcon.AngleDoubleRight, _202E_202A_200B_200B_206E_202A_202B_202A_202C_202B_206D_200F_206F_202D_206F_206B_200B_206C_202C_202C_202D_200D_200F_202E_202B_202C_200F_200B_206B_202C_200E_202A_200E_206C_206B_200C_206B_200C_206D_206E_202E()); - if (_202A_206F_202C_206F_202E_206A_206C_206E_202E_200E_200D_200E_206A_200B_206D_206E_206A_200F_206F_200B_202E_200B_206B_202E_202A_206B_206E_206B_206D_206E_200F_200C_202B_206A_200C_206A_206E_202C_200F_202E_202E()) - { - _202C_206C_206C_202D_202C_200F_206A_202B_206D_206E_200B_200D_202B_200D_206A_206D_206A_200C_206D_206C_200B_206E_200F_200F_200E_202D_206A_206F_202E_206F_202C_202A_200D_202B_200D_206F_202C_206C_206C_206B_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(347162980)); - } - num = ((!num28) ? 189281555 : 189281562); - break; - } - case 0: - _questController.ManualPriorityQuests.Insert(0, quest); - num = 189281556; - break; - case 3: - num = ((!flag2) ? 189281559 : 189281558); - break; - case 6: - _questController.Start(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1901290217)); - num = 189281559; - break; - case 1: - goto end_IL_0b24; - } - continue; - end_IL_0b24: - break; - } - } - finally - { - num = ((disabledDisposable == null) ? (-671465118) : (-671465119)); - while (true) - { - int num29 = num; - num3 = -671465117; - num4 = num29; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -671465119; - break; - case 1: - goto end_IL_0d0f; - case 2: - _202D_202A_206F_206D_206C_202B_202D_202B_206D_206F_202E_200B_200B_200F_202B_206B_206B_206A_200C_206A_206A_206E_206D_206F_202C_200E_206B_206E_200B_200C_206A_206F_200E_202D_206A_206C_202B_200D_200C_206D_202E((IDisposable)disabledDisposable); - num = -671465118; - break; - } - continue; - end_IL_0d0f: - break; - } - } - break; - continue; - end_IL_06af: - break; - } - } - finally - { - num = ((idDisposable == null) ? (-1330380066) : (-1330380067)); - while (true) - { - int num30 = num; - num3 = -1330380068; - num4 = num30; - int num31 = num4 + num3; - int num32 = num4 & num3; - switch (num31 - (num32 + num32)) - { - case 2: - goto end_IL_0d7f; - case 1: - _202D_202A_206F_206D_206C_202B_202D_202B_206D_206F_202E_200B_200B_200F_202B_206B_206B_206A_200C_206A_206A_206E_206D_206F_202C_200E_206B_206E_200B_200C_206A_206F_200E_202D_206A_206C_202B_200D_200C_206D_202E((IDisposable)idDisposable); - num = -1330380066; - break; - case 0: - num = -1330380067; - break; - } - continue; - end_IL_0d7f: - break; - } - } - continue; - IL_057e: - if (_206A_202A_206E_202B_206F_206D_206A_202E_206A_202E_202B_206F_206A_202A_206F_200E_202B_200B_202C_200E_200D_202C_202C_206B_206C_200D_200D_206F_202C_206D_206F_202B_200C_206F_206E_202A_206A_200D_202B_200E_202E()) - { - num = 954775952; - goto IL_04ec; - } - goto IL_064c; - } - } - finally - { - num = ((enumerator == null) ? 306291451 : 306291448); - while (true) - { - int num33 = num; - num3 = 306291449; - num4 = num33; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 306291448; - break; - case 1: - _202D_202A_206F_206D_206C_202B_202D_202B_206D_206F_202E_200B_200B_200F_202B_206B_206B_206A_200C_206A_206A_206E_206D_206F_202C_200E_206B_206E_200B_200C_206A_206F_200E_202D_206A_206C_202B_200D_200C_206D_202E((IDisposable)enumerator); - num = 306291451; - break; - case 2: - goto end_IL_0dfd; - } - continue; - end_IL_0dfd: - break; - } - } - goto end_IL_0256; - } - IL_02fd: - enumerable = list; - num = (_200E_200D_200C_206A_202C_206A_200D_200D_202A_206A_206B_202C_200E_200E_202B_202A_200D_202E_206F_206F_206B_202C_202E_206B_200E_200C_202D_200D_202E_202A_200B_206F_202B_206E_200D_202D_200D_202D_200E_206A_202E(_searchText) ? 1384381589 : 1384381587); - break; + ImGui.TextColored(in UiThemeUtils.StatusActive, FontAwesomeIcon.Ban.ToIconString()); + ImGui.SameLine(); } + } + UiThemeUtils.RowLabel(item.Name, 0f); + } + if (!ImGui.TableNextColumn()) + { + continue; + } + using (ImRaii.PushId(text)) + { + bool num = UiThemeUtils.IconButton(FontAwesomeIcon.Copy, ImGui.GetFrameHeight()); + if (ImGui.IsItemHovered()) + { + ImGui.SetTooltip("Copy as file name"); + } + if (num) + { + CopyToClipboard(item, suffix: true); + } + else if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) + { + CopyToClipboard(item, suffix: false); + } + ImGui.SameLine(); + if (quest == null) + { continue; - end_IL_0256: - break; + } + EInteractionType? eInteractionType = quest.FindSequence(0)?.LastStep()?.InteractionType; + if (!eInteractionType.HasValue || eInteractionType != EInteractionType.AcceptQuest || !_questFunctions.IsReadyToAcceptQuest(item.QuestId)) + { + continue; + } + using (ImRaii.Disabled(_questController.NextQuest != null || _questController.SimulatedQuest != null || _fateController.IsRunning || _seasonalDutyController.IsRunning || _customDeliveryController.IsRunning || _attunementController.IsRunning)) + { + bool flag2; + using (ImRaii.PushColor(ImGuiCol.Button, UiThemeUtils.PlayButtonColor)) + { + using (ImRaii.PushColor(ImGuiCol.ButtonHovered, UiThemeUtils.PlayButtonHover)) + { + using (ImRaii.PushColor(ImGuiCol.ButtonActive, UiThemeUtils.PlayButtonActive)) + { + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.PlayButtonText)) + { + flag2 = UiThemeUtils.IconButton(FontAwesomeIcon.Play, ImGui.GetFrameHeight()); + } + } + } + } + if (ImGui.IsItemHovered()) + { + ImGui.SetTooltip("Start as next quest"); + } + if (flag2) + { + _fateController.Stop("Quest selection start"); + _seasonalDutyController.Stop("Quest selection start"); + _customDeliveryController.Stop("Quest selection start"); + _attunementController.Stop("Quest selection start"); + _questController.SetNextQuest(quest); + if (!_questController.ManualPriorityQuests.Contains(quest)) + { + _questController.ManualPriorityQuests.Insert(0, quest); + } + _questController.Start("QuestSelectionWindow"); + } + ImGui.SameLine(); + bool num2 = UiThemeUtils.IconButton(FontAwesomeIcon.AngleDoubleRight, ImGui.GetFrameHeight()); + if (ImGui.IsItemHovered()) + { + ImGui.SetTooltip("Set as next quest"); + } + if (num2) + { + _questController.SetNextQuest(quest); + } } } } - UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); - return; - } } } + UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); } - [MethodImpl(MethodImplOptions.NoInlining)] private void CopyToClipboard(IQuestInfo quest, bool suffix) { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(1, 3); - defaultInterpolatedStringHandler.AppendFormatted(quest.QuestId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-294503681)); - defaultInterpolatedStringHandler.AppendFormatted(quest.SimplifiedName); - defaultInterpolatedStringHandler.AppendFormatted(suffix ? global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(377102803) : global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1281927779)); - string text = defaultInterpolatedStringHandler.ToStringAndClear(); - _202B_200C_206B_202E_206D_206D_202E_206B_206D_206A_202B_200E_206C_200D_200B_200F_206F_202B_206A_202A_200D_206E_206E_202C_200B_200F_206B_200E_200F_202D_200B_200E_202E_200C_202B_206F_200C_202E_206D_206C_202E((ImU8String)text); - _200B_200D_202A_202B_206C_202C_206B_202C_206D_206A_200B_202C_206E_200F_200E_206E_200B_206F_206D_202B_202D_200C_202E_206B_200B_200F_206D_200B_202B_202C_202D_202D_206A_200F_206C_206B_200D_206E_202A_206D_202E(_chatGui, _202E_200F_200F_200C_202B_202A_200D_200B_206B_200E_202B_200B_200E_206F_206F_206A_202B_200D_206F_202B_200D_206B_200B_206E_206D_206C_206E_206D_200F_206E_200B_206B_202A_200B_200E_206E_202E_206F_206B_206A_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-84693844), text, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(140956343)), (string)null, (ushort?)null); - } - - void _206F_202B_202C_206B_202E_202E_206B_206C_200E_202A_200E_202B_200E_200E_202E_200C_206E_202A_206D_206B_200E_200F_206E_200E_206A_206A_200D_200D_200D_206A_206E_202A_202E_202B_202D_206D_200E_206E_206F_202B_202E(Vector2? P_0) - { - base.Size = P_0; - } - - void _202E_200D_206C_202A_200B_206E_206F_206B_202E_206A_206A_202C_200D_200B_206D_200C_202B_202E_206D_202C_202D_202E_206C_200E_200C_202A_206C_202E_200D_202D_202B_206C_200D_200F_202E_206F_202E_206F_206A_206D_202E(ImGuiCond P_0) - { - base.SizeCondition = P_0; - } - - void _200E_202A_202E_202B_202C_200E_206C_202D_206A_206B_202C_202A_200C_200E_206E_202D_202E_206D_202B_206D_202A_200C_206C_200E_202D_200B_206A_202E_202B_206E_202E_200D_202D_202B_202E_202A_200B_200E_200B_200C_202E(WindowSizeConstraints? P_0) - { - base.SizeConstraints = P_0; - } - - static uint _200B_206A_206D_206B_206E_206D_206A_202B_202C_202C_206B_202B_202B_202D_206D_206F_200D_202E_202B_202C_206C_206D_202C_200B_200C_200C_200F_200E_200F_206F_200B_202E_206F_202D_202A_206B_206F_206E_206D_206E_202E(IGameObject P_0) - { - return P_0.BaseId; - } - - static SeString _202C_206E_202A_206C_202E_206C_202E_200D_206D_206E_206C_202A_206F_202C_206D_206D_200D_206E_206C_202B_202B_200D_202A_202B_202A_202D_206A_206B_202A_202C_206D_200F_200D_206F_206E_202B_206B_200B_202E_202B_202E(IGameObject P_0) - { - return P_0.Name; - } - - static string _206E_200D_202C_206A_200C_206A_202C_206C_202A_200E_202C_202D_206B_206A_206B_206C_200E_200E_206A_202B_202E_206D_206D_202A_206E_202C_202D_202D_206C_200D_202E_200E_200B_200F_202A_202D_206E_206E_202E_200F_202E(object P_0) - { - return P_0.ToString(); - } - - void _200D_200E_200F_200C_206F_200E_202D_206D_206D_202A_200E_206B_202E_202B_200F_200D_202E_206F_202C_206C_202D_206F_202C_200E_200F_206A_200F_206A_200B_202E_206B_206D_202C_206F_206C_206F_200D_206F_200F_202E(string P_0) - { - base.WindowName = P_0; - } - - static void _200C_200C_206A_206A_202C_206B_202D_200D_206B_206C_206F_200B_206C_206E_202C_200D_202A_202B_202E_202A_206B_206B_200F_202C_200D_200F_200B_200E_206F_206B_206B_200C_202C_200E_202C_206A_202A_202E_206B_200E_202E(LWindow P_0, bool P_1) - { - P_0.IsOpenAndUncollapsed = P_1; - } - - static uint _200C_202C_206B_200E_206E_206C_202A_206A_200D_202A_202E_202B_200D_202A_202E_206C_202D_200D_200F_206A_206C_200D_206B_202C_202B_200E_200F_206E_200E_200B_202D_202A_206E_200B_202E_202B_200E_206A_206E_206A_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static string _202E_200F_200F_200C_202B_202A_200D_200B_206B_200E_202B_200B_200E_206F_206F_206A_202B_200D_206F_202B_200D_206B_200B_206E_206D_206C_206E_206D_200F_206E_200B_206B_202A_200B_200E_206E_202E_206F_206B_206A_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static QuestId _206A_202C_200C_206B_200E_206C_200E_206E_202A_202D_206E_200D_202C_200B_202B_200D_200F_202A_206C_206B_202D_200B_206A_200F_202E_206F_200F_206A_200B_200F_202C_202B_206A_202B_200E_202C_200B_202D_206A_202D_202E(uint P_0) - { - return QuestId.FromRowId(P_0); - } - - static IUiBuilder _202D_200F_206A_200D_206C_206F_206D_206B_206F_206F_206B_202B_206A_200F_200B_202C_200C_200E_202D_206D_206A_206F_206C_202D_206A_202C_206D_200D_206D_206E_206C_200F_206D_200E_206D_202C_200D_206E_200B_200F_202E(IDalamudPluginInterface P_0) - { - return P_0.UiBuilder; - } - - static IFontHandle _200B_206C_206D_206B_200C_206C_200B_202C_202D_206B_202E_200C_200B_200E_202D_200D_202A_200B_202D_206B_202D_206B_200F_202E_202D_202D_202A_206F_206B_206D_200E_206D_206C_206C_200E_200E_206B_206C_206B_200D_202E(IUiBuilder P_0) - { - return P_0.IconFontFixedWidthHandle; - } - - static IDisposable _202B_200F_200D_206D_202E_206D_200D_206B_206F_200D_200C_200F_206C_206B_200C_206B_200D_206B_200E_206E_206E_200F_200F_206E_206A_202C_200D_206B_206C_202A_200B_200C_200E_202B_206D_202B_202C_202C_206B_200E_202E(IFontHandle P_0) - { - return P_0.Push(); - } - - static string _200D_202A_202B_200C_200F_200B_202D_200B_202E_206B_202D_200F_206A_200D_202C_200B_200B_200D_200C_206C_202B_200B_206B_202E_206B_202D_206D_200C_200C_202C_206B_206C_200E_200C_206A_206A_200D_202D_202C_206B_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static Vector2 _200B_202B_200F_206C_200F_206F_200F_202C_206B_202A_206C_200B_202E_200F_206B_200B_206D_206C_202A_202B_200E_206E_202C_202A_202D_206C_200F_202D_206A_206B_200D_206F_200F_206B_200F_200D_206B_200C_206B_206F_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static void _202D_202A_206F_206D_206C_202B_202D_202B_206D_206F_202E_200B_200B_200F_202B_206B_206B_206A_200C_206A_206A_206E_206D_206F_202C_200E_206B_206E_200B_200C_206A_206F_200E_202D_206A_206C_202B_200D_200C_206D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static float _202E_202A_200B_200B_206E_202A_202B_202A_202C_202B_206D_200F_206F_202D_206F_206B_200B_206C_202C_202C_202D_200D_200F_202E_202B_202C_200F_200B_206B_202C_200E_202A_200E_206C_206B_200C_206B_200C_206D_206E_202E() - { - return ImGui.GetFrameHeight(); - } - - static ImGuiStylePtr _202D_200E_202A_200B_200F_202B_202E_200D_202D_206D_206F_202B_202B_200C_202D_202B_200E_202D_200F_200D_200D_202C_206E_206B_202C_202E_202D_206D_206E_206C_202B_202B_202D_202E_202C_200E_200F_206A_202E_202C_202E() - { - return ImGui.GetStyle(); - } - - static ImGuiIOPtr _202D_202B_200C_200F_202A_200B_200D_206C_206D_200B_200C_206A_200C_206A_202A_200F_206B_200B_206C_206A_206E_200D_206B_206E_200D_202B_206B_206B_206B_202B_202C_202D_200F_202C_200E_206B_200C_206C_202A_202D_202E() - { - return ImGui.GetIO(); - } - - static void _200C_202E_202C_206A_202B_202B_206D_206E_206A_200D_200D_200D_202D_202B_202B_202D_202A_200C_202C_206E_202E_206E_206C_206C_206B_206A_206F_200F_200B_206E_206B_200C_200D_202A_200F_206F_200E_202A_206B_206E_202E(ImU8String P_0, ImGuiTableColumnFlags P_1, float P_2, uint P_3) - { - ImGui.TableSetupColumn(P_0, P_1, P_2, P_3); - } - - static void _200E_202D_200B_200B_206C_206A_200C_200B_206A_202A_200D_206F_202A_202D_200F_206A_206E_202C_202E_200B_202E_200C_206F_200D_206F_200B_200B_206E_200D_202A_206B_206A_200D_202A_200D_206E_206D_206F_202D_202D_202E() - { - ImGui.TableHeadersRow(); - } - - static bool _200E_200D_200C_206A_202C_206A_200D_200D_202A_206A_206B_202C_200E_200E_202B_202A_200D_202E_206F_206F_206B_202C_202E_206B_200E_200C_202D_200D_202E_202A_200B_206F_202B_206E_200D_202D_200D_202D_200E_206A_202E(string P_0) - { - return string.IsNullOrWhiteSpace(P_0); - } - - static void _202E_206A_206A_202E_202A_202A_200D_200F_206C_206E_206E_200D_206B_206F_206C_202E_200E_200C_202A_200B_206F_206F_206F_206A_200E_202D_202B_206B_200C_206B_202E_206C_200C_206C_202C_200E_202C_200E_200B_202D_202E() - { - ImGui.TableNextRow(); - } - - static bool _206A_202A_206E_202B_206F_206D_206A_202E_206A_202E_202B_206F_206A_202A_206F_200E_202B_200B_202C_200E_200D_202C_202C_206B_206C_200D_200D_206F_202C_206D_206F_202B_200C_206F_206E_202A_206A_200D_202B_200E_202E() - { - return ImGui.TableNextColumn(); - } - - static void _200B_206F_206D_206F_200F_202C_206D_200D_206C_202B_200F_206F_206B_206C_200B_206E_206F_206A_202D_200E_202A_206A_206E_200F_202C_202B_202A_202E_200E_200F_206F_202B_202C_206F_200D_206A_202A_202C_202B_200F_202E() - { - ImGui.AlignTextToFramePadding(); - } - - static void _200F_206D_200F_206B_206C_200C_206B_202D_202A_206A_206F_202C_206B_202B_200E_206D_202E_202D_206C_202B_200D_202C_206F_202D_200D_206C_206F_202E_206B_202E_206B_206C_200B_200C_202C_202E_200F_202C_202C_200C_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static void _200F_206F_206C_200D_206A_200F_200C_200C_206C_206C_206D_200F_206C_202D_206D_206E_206D_200E_200F_200B_206A_202D_206B_202A_202A_202D_206D_202E_202C_200D_202C_206B_200C_206F_200B_202E_202E_200B_200E_206C_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static bool _202A_206F_202C_206F_202E_206A_206C_206E_202E_200E_200D_200E_206A_200B_206D_206E_206A_200F_206F_200B_202E_200B_206B_202E_202A_206B_206E_206B_206D_206E_200F_200C_202B_206A_200C_206A_206E_202C_200F_202E_202E() - { - return ImGui.IsItemHovered(); - } - - static bool _206B_200D_206E_200D_202C_206E_200D_206C_206F_202E_202C_200E_200E_202A_206E_206A_200C_202D_202D_206F_206B_200E_206E_202B_202C_202E_206F_200B_206F_206E_206E_202C_202E_206C_206F_200F_200E_202E_202B_202E_202E(QuestRoot P_0) - { - return P_0.Disabled; - } - - static void _206F_202E_200F_202D_200E_200B_202B_206E_206B_206A_202C_200E_202E_206C_206F_202B_206A_202C_200D_202E_206B_202D_202E_200C_202B_206C_200B_200D_202A_202A_202A_200B_202C_202E_200E_206E_202B_202B_202A_200D_202E() - { - ImGui.SameLine(); - } - - static ImRaii.IdDisposable _206F_202A_202E_202B_206C_206D_202A_206E_202A_202E_202D_206C_202A_202E_200C_206A_202E_202D_206B_202C_206B_200C_206D_200D_200E_202C_202E_202B_200C_200D_206E_200F_200C_200D_202E_202D_200B_200C_200B_200C_202E(ImU8String P_0, bool P_1) - { - return ImRaii.PushId(P_0, P_1); - } - - static void _202C_206C_206C_202D_202C_200F_206A_202B_206D_206E_200B_200D_202B_200D_206A_206D_206A_200C_206D_206C_200B_206E_200F_200F_200E_202D_206A_206F_202E_206F_202C_202A_200D_202B_200D_206F_202C_206C_206C_206B_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } - - static bool _202D_202E_206F_206C_202E_202B_206B_200C_200F_206B_202C_206A_200F_206B_206A_202D_200F_206F_206E_200E_200F_202E_200C_202A_206A_200E_206D_202B_202D_206A_200B_206A_200E_200D_202A_202E_206F_206E_206B_206E_202E(ImGuiMouseButton P_0) - { - return ImGui.IsItemClicked(P_0); - } - - static QuestStep _200B_200D_206D_206A_200C_200C_206A_202E_200F_202E_206A_202D_200C_200F_200C_206A_206B_200E_202A_200D_206F_200B_206F_202D_200B_202C_206C_202C_202B_202C_200F_202E_202A_202B_206E_206D_202E_206D_200E_202E_202E(QuestSequence P_0) - { - return P_0.LastStep(); - } - - static EInteractionType _202D_202D_200D_206E_202A_202E_202B_200C_202A_202A_206E_202A_202D_200F_200F_202C_206A_200C_202C_200F_200E_200D_202D_202B_206C_206B_206B_200B_206C_200F_206B_200E_206F_200C_200C_206D_202B_206D_200B_200F_202E(QuestStep P_0) - { - return P_0.InteractionType; - } - - static ImRaii.DisabledDisposable _200B_202E_200E_206E_202C_200B_206F_206D_206A_206C_206B_206B_202D_206B_206C_202D_202C_202B_206E_206A_206F_202A_200D_206D_200F_206D_206F_200F_202C_202A_206A_200F_206B_202C_200E_200B_202E_200C_206C_206A_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static ImRaii.ColorDisposable _202B_206C_206C_206F_202E_202B_200F_202A_200E_200F_206A_200B_202E_206C_206A_200E_206A_206A_202A_202E_202D_202D_202C_200E_200D_200E_202E_202C_200D_202A_200D_202A_206D_202D_200C_202D_200C_206E_206A_200E_202E(ImGuiCol P_0, Vector4 P_1, bool P_2) - { - return ImRaii.PushColor(P_0, P_1, P_2); - } - - static bool _202E_206C_206A_206A_200F_200F_206F_206A_206C_202D_206C_206A_200C_206A_206D_202B_202D_206E_206A_206B_202B_202B_200B_202D_206F_202A_200D_206D_206E_200F_202A_202B_202A_206A_200B_200F_206C_200E_206D_206F_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202B_200C_206B_202E_206D_206D_202E_206B_206D_206A_202B_200E_206C_200D_200B_200F_206F_202B_206A_202A_200D_206E_206E_202C_200B_200F_206B_200E_200F_202D_200B_200E_202E_200C_202B_206F_200C_202E_206D_206C_202E(ImU8String P_0) - { - ImGui.SetClipboardText(P_0); - } - - static void _200B_200D_202A_202B_206C_202C_206B_202C_206D_206A_200B_202C_206E_200F_200E_206E_200B_206F_206D_202B_202D_200C_202E_206B_200B_200F_206D_200B_202B_202C_202D_202D_206A_200F_206C_206B_200D_206E_202A_206D_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.Print(P_1, P_2, P_3); - } - - static bool _202D_206F_202D_206D_206D_202B_200C_206C_202A_206D_202C_200F_206B_206B_200E_206F_206B_202A_206A_202C_200D_200E_202E_200D_200D_206F_206F_202E_206C_200F_206B_202E_200F_200C_200C_206E_200E_202D_200E_200D_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); + string text = $"{quest.QuestId}_{quest.SimplifiedName}{(suffix ? ".json" : "")}"; + ImGui.SetClipboardText(text); + _chatGui.Print("Copied '" + text + "' to clipboard"); } } diff --git a/Questionable/Questionable.Windows/QuestSequenceWindow.cs b/Questionable/Questionable.Windows/QuestSequenceWindow.cs index c801938..b480a49 100644 --- a/Questionable/Questionable.Windows/QuestSequenceWindow.cs +++ b/Questionable/Questionable.Windows/QuestSequenceWindow.cs @@ -1,7 +1,6 @@ using System.Numerics; using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; -using Dalamud.Configuration; using Dalamud.Interface.Windowing; using Dalamud.Plugin; using LLib.ImGui; @@ -24,131 +23,63 @@ internal sealed class QuestSequenceWindow : ThemedWindow, IPersistableWindowConf public WindowConfig WindowConfig => _configuration.QuestSequenceWindowConfig; - [MethodImpl(MethodImplOptions.NoInlining)] public QuestSequenceWindow(IDalamudPluginInterface pluginInterface, Configuration configuration, QuestSequenceComponent questSequenceComponent) - : base(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1855335709), ImGuiWindowFlags.NoTitleBar) + : base("Quest Sequence Viewer###QuestionableQuestSequenceViewer", ImGuiWindowFlags.NoTitleBar) { _pluginInterface = pluginInterface; _configuration = configuration; _questSequenceComponent = questSequenceComponent; - _200F_202E_206B_202A_206E_206E_206C_206D_206F_206F_206E_202A_202D_200C_202C_200B_202E_206D_206F_206E_202D_206A_200C_202A_200E_202C_206A_206F_206C_200E_200C_206E_202D_202C_206B_206E_206D_200D_202B_202C_202E((Vector2?)new Vector2(950f, 700f)); - _200E_206D_200B_200F_206D_202B_202A_202C_202B_202D_202A_202A_200F_200E_200D_200E_202B_200C_206B_206F_206E_200E_200E_202A_200B_200E_200E_202A_200C_202A_202A_206A_202C_206F_202D_206A_202A_206E_200D_206A_202E(ImGuiCond.FirstUseEver); - _202B_206E_200E_206B_200D_206D_202A_202E_206F_202C_206B_200F_206A_206E_206C_202D_200E_202D_202E_206A_206E_202D_202C_200E_200E_206C_206E_206E_202D_202E_200D_200B_206C_202A_202B_200D_202A_200F_200F_200E_202E((WindowSizeConstraints?)new WindowSizeConstraints + base.Size = new Vector2(950f, 700f); + base.SizeCondition = ImGuiCond.FirstUseEver; + base.SizeConstraints = new WindowSizeConstraints { MinimumSize = new Vector2(750f, 550f), MaximumSize = new Vector2(float.MaxValue, float.MaxValue) - }); + }; } public void SaveWindowConfig() { - _206F_202A_206B_206F_202E_202C_200C_200F_202D_206C_202E_206B_200F_202D_202A_206A_200F_206F_206C_200C_206C_200F_206D_202B_200C_206A_206B_206F_202A_206E_206C_202E_200D_206C_206A_202D_200E_202C_206F_206A_202E(_pluginInterface, (IPluginConfiguration)_configuration); - } - - void IPersistableWindowConfig.SaveWindowConfig() - { - //ILSpy generated this explicit interface implementation from .override directive in SaveWindowConfig - this.SaveWindowConfig(); + _pluginInterface.SavePluginConfig(_configuration); } public void OpenForQuest(ElementId questId) { _questSequenceComponent.SetLookedUpQuest(questId); _selectLookupTabNextFrame = true; - _200B_206E_200C_200D_200F_206A_206C_206E_202B_206C_202E_200B_200B_206B_202A_202A_202B_202A_200C_200E_200B_200E_202D_202B_202A_200F_206A_206C_200C_202C_206C_202C_200B_206D_202E_206D_206E_202D_202B_206F_202E((LWindow)this, true); + base.IsOpenAndUncollapsed = true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override void DrawContent() { bool isOpen = true; QuestSequenceComponent.DrawCustomHeader(ref isOpen); - int num = (isOpen ? 614806055 : 614806050); - int selectedTab = default(int); - while (true) + if (!isOpen) { - int num2 = num; - int num3 = 614806053; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - QuestSequenceComponent.DrawWindowBorder(); - return; - case 6: - _206D_202B_200B_206D_202E_206E_200F_200C_206D_206E_206D_202D_200F_206D_202E_200E_206C_202D_202B_202E_206D_206B_200C_200B_202A_206A_206E_202E_206F_202D_200C_200B_206D_202B_202E_200F_202C_202A_200C_206D_202E(); - _questSequenceComponent.DrawCurrentQuestTab(); - num = 614806048; - break; - case 8: - { - InlineArray2<string> buffer = default(InlineArray2<string>); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray2<string>, string>(ref buffer, 0) = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-917877245); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray2<string>, string>(ref buffer, 1) = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(478358345); - _selectedTab = UiThemeUtils.DrawTabBar(global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<InlineArray2<string>, string>(in buffer, 2), _selectedTab); - selectedTab = _selectedTab; - num = ((selectedTab == 0) ? 614806051 : 614806060); - break; - } - case 3: - _206D_202B_200B_206D_202E_206E_200F_200C_206D_206E_206D_202D_200F_206D_202E_200E_206C_202D_202B_202E_206D_206B_200C_200B_202A_206A_206E_202E_206F_202D_200C_200B_206D_202B_202E_200F_202C_202A_200C_206D_202E(); - _questSequenceComponent.DrawQuestLookupTab(); - num = 614806048; - break; - case 7: - RequestClose(); - num = 614806055; - break; - case 0: - num = 614806050; - break; - case 2: - _206D_202B_200B_206D_202E_206E_200F_200C_206D_206E_206D_202D_200F_206D_202E_200E_206C_202D_202B_202E_206D_206B_200C_200B_202A_206A_206E_202E_206F_202D_200C_200B_206D_202B_202E_200F_202C_202A_200C_206D_202E(); - _206D_202B_200B_206D_202E_206E_200F_200C_206D_206E_206D_202D_200F_206D_202E_200E_206C_202D_202B_202E_206D_206B_200C_200B_202A_206A_206E_202E_206F_202D_200C_200B_206D_202B_202E_200F_202C_202A_200C_206D_202E(); - num = ((!_selectLookupTabNextFrame) ? 614806061 : 614806049); - break; - case 1: - num = 614806048; - break; - case 4: - _selectedTab = 1; - _selectLookupTabNextFrame = false; - num = 614806061; - break; - case 9: - num = ((selectedTab == 1) ? 614806054 : 614806052); - break; - } + RequestClose(); } - } - - void _200F_202E_206B_202A_206E_206E_206C_206D_206F_206F_206E_202A_202D_200C_202C_200B_202E_206D_206F_206E_202D_206A_200C_202A_200E_202C_206A_206F_206C_200E_200C_206E_202D_202C_206B_206E_206D_200D_202B_202C_202E(Vector2? P_0) - { - base.Size = P_0; - } - - void _200E_206D_200B_200F_206D_202B_202A_202C_202B_202D_202A_202A_200F_200E_200D_200E_202B_200C_206B_206F_206E_200E_200E_202A_200B_200E_200E_202A_200C_202A_202A_206A_202C_206F_202D_206A_202A_206E_200D_206A_202E(ImGuiCond P_0) - { - base.SizeCondition = P_0; - } - - void _202B_206E_200E_206B_200D_206D_202A_202E_206F_202C_206B_200F_206A_206E_206C_202D_200E_202D_202E_206A_206E_202D_202C_200E_200E_206C_206E_206E_202D_202E_200D_200B_206C_202A_202B_200D_202A_200F_200F_200E_202E(WindowSizeConstraints? P_0) - { - base.SizeConstraints = P_0; - } - - static void _206F_202A_206B_206F_202E_202C_200C_200F_202D_206C_202E_206B_200F_202D_202A_206A_200F_206F_206C_200C_206C_200F_206D_202B_200C_206A_206B_206F_202A_206E_206C_202E_200D_206C_206A_202D_200E_202C_206F_206A_202E(IDalamudPluginInterface P_0, IPluginConfiguration P_1) - { - P_0.SavePluginConfig(P_1); - } - - static void _200B_206E_200C_200D_200F_206A_206C_206E_202B_206C_202E_200B_200B_206B_202A_202A_202B_202A_200C_200E_200B_200E_202D_202B_202A_200F_206A_206C_200C_202C_206C_202C_200B_206D_202E_206D_206E_202D_202B_206F_202E(LWindow P_0, bool P_1) - { - P_0.IsOpenAndUncollapsed = P_1; - } - - static void _206D_202B_200B_206D_202E_206E_200F_200C_206D_206E_206D_202D_200F_206D_202E_200E_206C_202D_202B_202E_206D_206B_200C_200B_202A_206A_206E_202E_206F_202D_200C_200B_206D_202B_202E_200F_202C_202A_200C_206D_202E() - { ImGui.Spacing(); + ImGui.Spacing(); + if (_selectLookupTabNextFrame) + { + _selectedTab = 1; + _selectLookupTabNextFrame = false; + } + InlineArray2<string> buffer = default(InlineArray2<string>); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray2<string>, string>(ref buffer, 0) = "Current Quest"; + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray2<string>, string>(ref buffer, 1) = "Quest Lookup"; + _selectedTab = UiThemeUtils.DrawTabBar(global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<InlineArray2<string>, string>(in buffer, 2), _selectedTab); + switch (_selectedTab) + { + case 0: + ImGui.Spacing(); + _questSequenceComponent.DrawCurrentQuestTab(); + break; + case 1: + ImGui.Spacing(); + _questSequenceComponent.DrawQuestLookupTab(); + break; + } + QuestSequenceComponent.DrawWindowBorder(); } } diff --git a/Questionable/Questionable.Windows/QuestValidationWindow.cs b/Questionable/Questionable.Windows/QuestValidationWindow.cs index 05aba02..97e1372 100644 --- a/Questionable/Questionable.Windows/QuestValidationWindow.cs +++ b/Questionable/Questionable.Windows/QuestValidationWindow.cs @@ -1,7 +1,5 @@ using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; -using Dalamud.Configuration; using Dalamud.Interface.Windowing; using Dalamud.Plugin; using LLib.ImGui; @@ -19,30 +17,23 @@ internal sealed class QuestValidationWindow : ThemedWindow, IPersistableWindowCo public WindowConfig WindowConfig => _configuration.QuestValidationWindowConfig; - [MethodImpl(MethodImplOptions.NoInlining)] public QuestValidationWindow(QuestValidationComponent questValidationComponent, IDalamudPluginInterface pluginInterface, Configuration configuration) - : base(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(675069397)) + : base("Quest Validation###QuestionableValidator") { _questValidationComponent = questValidationComponent; _pluginInterface = pluginInterface; _configuration = configuration; - _206B_202A_202D_206A_206D_202A_206F_202E_206A_200C_206E_200F_202C_200C_202D_202E_202C_202D_200C_202E_200C_202D_202B_202E_206C_202D_206E_202A_206F_202C_202B_206F_206D_202D_202B_206A_202E_202C_200E_206E_202E((Vector2?)new Vector2(800f, 400f)); - _206C_200D_206B_202A_202B_200B_200D_206E_200C_200C_202D_206E_200D_200C_202C_206A_200D_200C_206A_206B_206C_206C_206A_200F_202A_206D_200E_200F_206B_202E_202E_206A_202E_202B_200F_200F_206D_202E_200C_200E_202E(ImGuiCond.FirstUseEver); - _202A_202C_200B_200F_200B_206D_206A_202B_200D_202E_202D_200B_202B_202E_200B_200C_200B_202B_206F_200D_202E_206C_202C_200C_200E_206B_206D_206B_200B_200C_202B_206D_202B_200B_200C_200E_200F_200F_206B_206F_202E((WindowSizeConstraints?)new WindowSizeConstraints + base.Size = new Vector2(800f, 400f); + base.SizeCondition = ImGuiCond.FirstUseEver; + base.SizeConstraints = new WindowSizeConstraints { MinimumSize = new Vector2(600f, 300f) - }); + }; } public void SaveWindowConfig() { - _200C_200F_206E_206C_202C_202E_206C_202B_200B_200F_202E_200E_200E_206B_206C_206F_206F_200D_202A_206C_206C_200C_206F_202B_202E_202D_202A_206F_202B_202D_202E_206F_206A_206A_206A_206A_200B_202C_202E_202E(_pluginInterface, (IPluginConfiguration)_configuration); - } - - void IPersistableWindowConfig.SaveWindowConfig() - { - //ILSpy generated this explicit interface implementation from .override directive in SaveWindowConfig - this.SaveWindowConfig(); + _pluginInterface.SavePluginConfig(_configuration); } public override bool DrawConditions() @@ -56,24 +47,4 @@ internal sealed class QuestValidationWindow : ThemedWindow, IPersistableWindowCo _questValidationComponent.Draw(); UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); } - - void _206B_202A_202D_206A_206D_202A_206F_202E_206A_200C_206E_200F_202C_200C_202D_202E_202C_202D_200C_202E_200C_202D_202B_202E_206C_202D_206E_202A_206F_202C_202B_206F_206D_202D_202B_206A_202E_202C_200E_206E_202E(Vector2? P_0) - { - base.Size = P_0; - } - - void _206C_200D_206B_202A_202B_200B_200D_206E_200C_200C_202D_206E_200D_200C_202C_206A_200D_200C_206A_206B_206C_206C_206A_200F_202A_206D_200E_200F_206B_202E_202E_206A_202E_202B_200F_200F_206D_202E_200C_200E_202E(ImGuiCond P_0) - { - base.SizeCondition = P_0; - } - - void _202A_202C_200B_200F_200B_206D_206A_202B_200D_202E_202D_200B_202B_202E_200B_200C_200B_202B_206F_200D_202E_206C_202C_200C_200E_206B_206D_206B_200B_200C_202B_206D_202B_200B_200C_200E_200F_200F_206B_206F_202E(WindowSizeConstraints? P_0) - { - base.SizeConstraints = P_0; - } - - static void _200C_200F_206E_206C_202C_202E_206C_202B_200B_200F_202E_200E_200E_206B_206C_206F_206F_200D_202A_206C_206C_200C_206F_202B_202E_202D_202A_206F_202B_202D_202E_206F_206A_206A_206A_206A_200B_202C_202E_202E(IDalamudPluginInterface P_0, IPluginConfiguration P_1) - { - P_0.SavePluginConfig(P_1); - } } diff --git a/Questionable/Questionable.Windows/QuestWindow.cs b/Questionable/Questionable.Windows/QuestWindow.cs index e747620..089ef47 100644 --- a/Questionable/Questionable.Windows/QuestWindow.cs +++ b/Questionable/Questionable.Windows/QuestWindow.cs @@ -1,13 +1,7 @@ using System; -using System.Collections.Generic; using System.Numerics; -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Threading; using System.Threading.Tasks; using Dalamud.Bindings.ImGui; -using Dalamud.Configuration; -using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Interface; using Dalamud.Interface.Colors; @@ -16,8 +10,6 @@ using Dalamud.Plugin; using Dalamud.Plugin.Services; using LLib.GameData; using LLib.ImGui; -using Lumina.Excel; -using Lumina.Excel.Sheets; using Questionable.Controller; using Questionable.Controller.GameUi; using Questionable.Data; @@ -27,78 +19,7 @@ namespace Questionable.Windows; internal sealed class QuestWindow : ThemedWindow, IPersistableWindowConfig { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static System.Action _003C_003E9__22_3; - - [MethodImpl(MethodImplOptions.NoInlining)] - internal void _003C_002Ector_003Eb__22_3() - { - _202B_200E_206E_206E_200D_200E_200E_200F_200E_202A_202D_200F_206D_202C_206D_200F_200E_200E_200E_206F_206F_202E_202E_202D_200C_206A_200E_200B_206C_200D_206C_202D_202A_200C_202D_206C_202B_202E_202B_202B_202E(); - _206F_200B_206A_206D_206F_200F_206A_200B_200E_202D_202C_202A_206E_200B_206A_202C_206B_206E_206D_200D_200B_206A_206B_200B_200E_206A_200B_206E_200F_206B_200C_200F_200F_206C_206B_206E_202C_206A_206E_200D_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2102670583)); - _200E_202E_206F_200B_206B_200C_206E_200D_206B_200C_200D_200D_200F_202A_202B_202B_206C_206B_206C_206E_200C_200B_206D_206F_206B_200E_202D_200E_206C_206D_202B_200B_200C_206A_206E_206D_202C_200D_206C_206B_202E(); - } - - static void _202B_200E_206E_206E_200D_200E_200E_200F_200E_202A_202D_200F_206D_202C_206D_200F_200E_200E_200E_206F_206F_202E_202E_202D_200C_206A_200E_200B_206C_200D_206C_202D_202A_200C_202D_206C_202B_202E_202B_202B_202E() - { - ImGui.BeginTooltip(); - } - - static void _206F_200B_206A_206D_206F_200F_206A_200B_200E_202D_202C_202A_206E_200B_206A_202C_206B_206E_206D_200D_200B_206A_206B_200B_200E_206A_200B_206E_200F_206B_200C_200F_200F_206C_206B_206E_202C_206A_206E_200D_202E(ImU8String P_0) - { - ImGui.Text(P_0); - } - - static void _200E_202E_206F_200B_206B_200C_206E_200D_206B_200C_200D_200D_200F_202A_202B_202B_206C_206B_206C_206E_200C_200B_206D_206F_206B_200E_202D_200E_206C_206D_202B_200B_200C_206A_206E_206D_202C_200D_206C_206B_202E() - { - ImGui.EndTooltip(); - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass22_0 - { - public QuestWindow _003C_003E4__this; - - public ConfigWindow configWindow; - - internal void _003C_002Ector_003Eb__1(ImGuiMouseButton _) - { - _003C_003E4__this.IsMinimized = !_003C_003E4__this.IsMinimized; - _206B_202D_206B_200F_206D_206D_206C_202B_202B_206E_202B_206F_200D_200D_206F_206E_202C_206B_200F_200F_202A_202E_202A_206B_200D_202D_200F_202C_206C_206A_206E_200E_202E_200B_202C_206E_206E_206B_206F_202C_202E(_003C_003E4__this._minimizeButton, _003C_003E4__this.IsMinimized ? FontAwesomeIcon.WindowMaximize : FontAwesomeIcon.Minus); - } - - internal void _003C_002Ector_003Eb__2(ImGuiMouseButton _) - { - _200D_202A_202E_200D_200D_206E_202C_206C_200F_202E_206A_200B_200B_200C_202A_206F_200B_206A_206E_206C_200F_200D_202C_200C_202E_206C_206E_206A_206A_202A_206F_206C_206C_202E_206B_202E_202B_200C_202D_200E_202E((LWindow)configWindow, true); - } - - internal bool _003C_002Ector_003Eb__0() - { - return _003C_003E4__this.IsOpen; - } - - static void _206B_202D_206B_200F_206D_206D_206C_202B_202B_206E_202B_206F_200D_200D_206F_206E_202C_206B_200F_200F_202A_202E_202A_206B_200D_202D_200F_202C_206C_206A_206E_200E_202E_200B_202C_206E_206E_206B_206F_202C_202E(TitleBarButton P_0, FontAwesomeIcon P_1) - { - P_0.Icon = P_1; - } - - static void _200D_202A_202E_200D_200D_206E_202C_206C_200F_202E_206A_200B_200B_200C_202A_206F_200B_206A_206E_206C_200F_200D_202C_200C_202E_206C_206E_206A_206A_202A_206F_206C_206C_202E_206B_202E_202B_200C_202D_200E_202E(LWindow P_0, bool P_1) - { - P_0.IsOpenAndUncollapsed = P_1; - } - - bool _206A_206C_200B_206A_206E_206E_200B_202E_202E_202B_206F_200B_202D_202B_202E_200D_206C_200B_202B_202D_200B_206B_200B_206B_200B_202E_206C_200B_202C_200B_202C_206A_200B_200F_202B_206F_202A_206A_200B_200F_202E() - { - return ((Window)this).IsOpen; - } - } - - private static readonly Version PluginVersion = _200C_200D_202D_206E_202B_206D_202C_202C_206C_200C_202A_206B_200B_200B_200D_202A_206C_206B_206B_202A_206E_206E_206A_200F_200B_200C_202D_206A_200D_202C_200E_200F_206D_206A_200C_202E_200F_200E_200F_202A_202E(_200D_206D_200B_200B_202A_206C_200C_206C_202C_200F_206B_202D_202B_200F_206B_202D_206C_202A_202D_206F_200E_202A_202D_202C_202A_202B_200E_206B_202B_206D_200B_206B_206A_202A_202E_202B_200D_206B_200F_200D_202E(_200F_200C_206F_200E_202A_200C_202C_202A_206B_202A_202B_202E_206B_200B_206B_206B_206B_200F_202A_200F_202C_202A_206D_202B_206F_202B_200E_206E_200E_206F_206A_202C_200D_202A_202E_200B_200B_200C_206A_202D_202E(_200E_202C_202E_206A_200E_200E_202C_206C_206D_206F_202A_202E_202B_200F_202E_200E_202D_206E_202B_202A_202D_202A_202A_206A_202D_200E_202E_206F_200F_200D_202E_200E_202E_206A_200F_202C_200C_202B_200F_202A_202E(typeof(QuestionablePlugin).TypeHandle)))); + private static readonly Version PluginVersion = typeof(QuestionablePlugin).Assembly.GetName().Version; private const string TestingSuffix = ""; @@ -148,9 +69,8 @@ internal sealed class QuestWindow : ThemedWindow, IPersistableWindowConfig public bool IsReloading { get; private set; } - [MethodImpl(MethodImplOptions.NoInlining)] public QuestWindow(IDalamudPluginInterface pluginInterface, QuestController questController, IObjectTable objectTable, IClientState clientState, Configuration configuration, TerritoryData territoryData, ActiveQuestComponent activeQuestComponent, ARealmRebornComponent aRealmRebornComponent, EventInfoComponent eventInfoComponent, CreationUtilsComponent creationUtilsComponent, NavigationBarComponent navigationBarComponent, QuickAccessButtonsComponent quickAccessButtonsComponent, RemainingTasksComponent remainingTasksComponent, ManualPriorityComponent manualPriorityComponent, SavedPresetsComponent savedPresetsComponent, IFramework framework, InteractionUiController interactionUiController, ConfigWindow configWindow) - : base(_200B_202A_202E_200E_202B_202A_202D_200D_200D_202B_202D_206D_200F_202C_200E_206B_202B_200E_206E_202A_206D_202C_206E_200E_206F_202E_200B_202D_206A_200F_202E_200D_202C_202C_206F_202E_202C_202C_202E_206B_202E(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1455489909), _206D_206D_202D_200B_202C_206D_200F_200E_200D_206C_206B_206E_202A_202D_200E_202D_206E_202C_202D_206B_200F_206D_200C_206C_202D_200C_202C_200C_202A_202B_202E_200C_202A_206A_206F_202D_200F_200B_206D_202A_202E(PluginVersion, 3), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1917286556)), ImGuiWindowFlags.AlwaysAutoResize) + : base("Questionable v" + PluginVersion.ToString(3) + "###Questionable", ImGuiWindowFlags.AlwaysAutoResize) { QuestWindow questWindow = this; _pluginInterface = pluginInterface; @@ -170,41 +90,42 @@ internal sealed class QuestWindow : ThemedWindow, IPersistableWindowConfig _savedPresetsComponent = savedPresetsComponent; _framework = framework; _interactionUiController = interactionUiController; - _200F_206E_202D_206A_200F_202C_206C_200D_202E_202A_206E_200E_206E_202C_202B_202C_202E_200F_202B_200C_202D_206B_202B_202B_200B_200E_200C_200C_206E_202A_206A_200D_200D_206F_206C_200B_202C_202A_206F_206C_202E((WindowSizeConstraints?)new WindowSizeConstraints + base.SizeConstraints = new WindowSizeConstraints { MinimumSize = new Vector2(350f, 30f), MaximumSize = new Vector2(350f, 4000f) - }); - _206B_202D_206F_206A_206A_206F_200E_206C_200E_206D_202E_200E_202C_206D_200E_202E_206D_202A_202B_202E_200C_202D_202A_202E_202A_200F_206A_200B_200D_206B_202E_200F_206B_202A_202E_200C_202C_200E_202B_202C_202E(false); - _202B_202B_200E_202A_202B_200B_206B_202A_206E_206C_202D_200B_206B_200E_206D_206F_206F_200E_200D_200B_206A_206F_206D_206D_202D_206E_202C_206E_206B_202C_202D_200D_206B_200F_202C_200C_202B_202A_206F_200F_202E(false); - TitleBarButton titleBarButton = _202E_202A_202A_206F_206B_200E_200D_206B_200F_206B_202A_202A_202B_206C_206C_206A_200B_200C_206E_206A_200C_206A_206C_202D_202E_206B_206C_206B_200C_206E_202C_202D_206C_202E_206F_202D_200F_206F_206E_202E(); - _202A_206D_206C_206A_202B_206B_206C_200E_200F_202D_200D_202A_206B_202A_202C_202B_206A_206E_206F_206D_200F_206F_202A_200F_206F_202B_200F_206A_200F_206B_200C_206C_202A_202A_206D_206A_202D_200B_206B_202D_202E(titleBarButton, FontAwesomeIcon.Minus); - _200C_206F_200D_200F_200E_200F_202E_200D_200C_200D_200B_202C_200D_202C_206F_206A_206E_200B_202D_200F_202A_202E_200C_200E_206D_200D_202D_206F_206F_206F_202E_206E_202A_200C_200C_206E_206E_200B_202D_206A_202E(titleBarButton, int.MinValue); - _206B_200F_202D_206E_202E_200B_202C_202C_202A_206E_202C_206E_202A_202E_200E_202E_206D_206C_206C_200B_206F_202A_206D_202B_200F_200E_202D_202D_202B_202B_206A_202B_202E_206B_206B_206B_202E_202D_200C_202C_202E(titleBarButton, new Vector2(1.5f, 1f)); - _200F_200E_206D_206D_200F_202B_202A_202B_206B_206A_206A_200E_202C_200F_202A_206B_206B_202B_202E_202B_206C_202A_206D_202D_200D_206F_206F_202E_206A_206E_202E_200C_200B_202E_202C_206C_200D_206E_202B_200F_202E(titleBarButton, (Action<ImGuiMouseButton>)delegate + }; + base.RespectCloseHotkey = false; + base.AllowClickthrough = false; + _minimizeButton = new TitleBarButton { - questWindow.IsMinimized = !questWindow.IsMinimized; - _003C_003Ec__DisplayClass22_0._206B_202D_206B_200F_206D_206D_206C_202B_202B_206E_202B_206F_200D_200D_206F_206E_202C_206B_200F_200F_202A_202E_202A_206B_200D_202D_200F_202C_206C_206A_206E_200E_202E_200B_202C_206E_206E_206B_206F_202C_202E(questWindow._minimizeButton, questWindow.IsMinimized ? FontAwesomeIcon.WindowMaximize : FontAwesomeIcon.Minus); - }); - _202B_200D_206B_200B_202B_202C_200B_206E_206A_200F_200D_202D_206E_206B_200B_202B_202B_200F_206B_202C_200B_206B_200E_206F_202C_200C_202B_200D_202D_200E_206A_206C_206E_202D_200F_206E_206D_202B_200D_206B_202E(titleBarButton, true); - _minimizeButton = titleBarButton; - _200C_202B_206F_202B_206F_202B_206D_206D_200D_200D_202C_206A_206B_200E_200C_202C_202C_206A_206F_206D_206B_202A_200E_206E_206D_206A_200F_202E_206A_200C_202E_202C_202D_200F_200E_202E_202D_200C_200B_202B_202E().Insert(0, _minimizeButton); - List<TitleBarButton> list = _200C_202B_206F_202B_206F_202B_206D_206D_200D_200D_202C_206A_206B_200E_200C_202C_202C_206A_206F_206D_206B_202A_200E_206E_206D_206A_200F_202E_206A_200C_202E_202C_202D_200F_200E_202E_202D_200C_200B_202B_202E(); - TitleBarButton titleBarButton2 = _202E_202A_202A_206F_206B_200E_200D_206B_200F_206B_202A_202A_202B_206C_206C_206A_200B_200C_206E_206A_200C_206A_206C_202D_202E_206B_206C_206B_200C_206E_202C_202D_206C_202E_206F_202D_200F_206F_206E_202E(); - _202A_206D_206C_206A_202B_206B_206C_200E_200F_202D_200D_202A_206B_202A_202C_202B_206A_206E_206F_206D_200F_206F_202A_200F_206F_202B_200F_206A_200F_206B_200C_206C_202A_202A_206D_206A_202D_200B_206B_202D_202E(titleBarButton2, FontAwesomeIcon.Sun); - _206B_200F_202D_206E_202E_200B_202C_202C_202A_206E_202C_206E_202A_202E_200E_202E_206D_206C_206C_200B_206F_202A_206D_202B_200F_200E_202D_202D_202B_202B_206A_202B_202E_206B_206B_206B_202E_202D_200C_202C_202E(titleBarButton2, new Vector2(1.5f, 1f)); - _200F_200E_206D_206D_200F_202B_202A_202B_206B_206A_206A_200E_202C_200F_202A_206B_206B_202B_202E_202B_206C_202A_206D_202D_200D_206F_206F_202E_206A_206E_202E_200C_200B_202E_202C_206C_200D_206E_202B_200F_202E(titleBarButton2, (Action<ImGuiMouseButton>)delegate + Icon = FontAwesomeIcon.Minus, + Priority = int.MinValue, + IconOffset = new Vector2(1.5f, 1f), + Click = delegate + { + questWindow.IsMinimized = !questWindow.IsMinimized; + questWindow._minimizeButton.Icon = (questWindow.IsMinimized ? FontAwesomeIcon.WindowMaximize : FontAwesomeIcon.Minus); + }, + AvailableClickthrough = true + }; + base.TitleBarButtons.Insert(0, _minimizeButton); + base.TitleBarButtons.Add(new TitleBarButton { - _003C_003Ec__DisplayClass22_0._200D_202A_202E_200D_200D_206E_202C_206C_200F_202E_206A_200B_200B_200C_202A_206F_200B_206A_206E_206C_200F_200D_202C_200C_202E_206C_206E_206A_206A_202A_206F_206C_206C_202E_206B_202E_202B_200C_202D_200E_202E((LWindow)configWindow, true); + Icon = FontAwesomeIcon.Sun, + IconOffset = new Vector2(1.5f, 1f), + Click = delegate + { + configWindow.IsOpenAndUncollapsed = true; + }, + Priority = int.MinValue, + ShowTooltip = delegate + { + ImGui.BeginTooltip(); + ImGui.Text("Open Configuration"); + ImGui.EndTooltip(); + } }); - _200C_206F_200D_200F_200E_200F_202E_200D_200C_200D_200B_202C_200D_202C_206F_206A_206E_200B_202D_200F_202A_202E_200C_200E_206D_200D_202D_206F_206F_206F_202E_206E_202A_200C_200C_206E_206E_200B_202D_206A_202E(titleBarButton2, int.MinValue); - _200D_206E_202A_200E_202E_202E_202A_206A_206C_202C_200F_206D_202B_206F_200B_202D_200E_200E_200B_206F_202A_206A_202D_200E_206E_200D_200F_206F_206A_202B_200F_202C_200E_202D_206D_202A_200B_200C_202D_202D_202E(titleBarButton2, (System.Action)([MethodImpl(MethodImplOptions.NoInlining)] () => - { - _003C_003Ec._202B_200E_206E_206E_200D_200E_200E_200F_200E_202A_202D_200F_206D_202C_206D_200F_200E_200E_200E_206F_206F_202E_202E_202D_200C_206A_200E_200B_206C_200D_206C_202D_202A_200C_202D_206C_202B_202E_202B_202B_202E(); - _003C_003Ec._206F_200B_206A_206D_206F_200F_206A_200B_200E_202D_202C_202A_206E_200B_206A_202C_206B_206E_206D_200D_200B_206A_206B_200B_200E_206A_200B_206E_200F_206B_200C_200F_200F_206C_206B_206E_202C_206A_206E_200D_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-2102670583)); - _003C_003Ec._200E_202E_206F_200B_206B_200C_206E_200D_206B_200C_200D_200D_200F_202A_202B_202B_206C_206B_206C_206E_200C_200B_206D_206F_206B_200E_202D_200E_206C_206D_202B_200B_200C_206A_206E_206D_202C_200D_206C_206B_202E(); - })); - list.Add(titleBarButton2); _activeQuestComponent.OpenQueueTab += SwitchToQueueTab; _quickAccessButtonsComponent.Reload += OnReload; _questController.IsQuestWindowOpenFunction = () => questWindow.IsOpen; @@ -212,151 +133,69 @@ internal sealed class QuestWindow : ThemedWindow, IPersistableWindowConfig public void SaveWindowConfig() { - _200E_200B_202D_200D_202D_206A_202A_206B_200F_202D_200E_202A_206D_202E_202E_200E_206D_206E_202A_206D_200E_206D_206F_206B_206F_202B_206E_200D_206A_206D_200C_206B_202A_200D_200E_206E_200C_206C_206F_206A_202E(_pluginInterface, (IPluginConfiguration)_configuration); - } - - void IPersistableWindowConfig.SaveWindowConfig() - { - //ILSpy generated this explicit interface implementation from .override directive in SaveWindowConfig - this.SaveWindowConfig(); + _pluginInterface.SavePluginConfig(_configuration); } public override void PreOpenCheck() { - int num = ((!_questController.IsRunning) ? (-1198516443) : (-1198516442)); - while (true) + if (_questController.IsRunning) { - int num2 = num; - int num3 = -1198516441; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004b; - case 1: - _200B_206B_202E_206B_202A_200F_200F_202B_200C_202D_202A_206B_202C_202A_206C_202B_206F_202E_206B_200E_206F_200E_206C_206E_200B_200F_206D_200B_206A_200D_200E_200B_200C_202D_202C_200D_202A_202E_202B_202B_202E(true); - _202D_202E_206F_202A_202E_206B_206B_200E_202C_206C_206B_202E_206D_202A_200D_202D_206F_202A_200E_206A_202A_206B_202B_200D_200B_206E_206D_202E_202E_206F_202E_202D_200F_202D_206A_202A_206E_206E_206E_200D_202E(_202A_200E_206C_202C_200B_200E_202C_200F_202A_206D_202B_202D_202A_206C_206A_200F_202C_206E_202D_206B_206E_202E_206F_206E_206C_206E_200C_202D_206B_206A_200E_206A_202E_200F_206C_200E_200D_206C_200C_202E() | ImGuiWindowFlags.NoCollapse); - _200D_200E_206F_200E_202D_206A_206E_202C_206F_206F_202C_200F_200E_206A_206D_206E_202B_200F_200E_206A_202E_202A_200B_200E_200C_202A_206C_206D_206F_202A_202D_206F_200B_206A_206A_202A_202E_200E_206E_206E_202E(false); - return; - case 2: - _202D_202E_206F_202A_202E_206B_206B_200E_202C_206C_206B_202E_206D_202A_200D_202D_206F_202A_200E_206A_202A_206B_202B_200D_200B_206E_206D_202E_202E_206F_202E_202D_200F_202D_206A_202A_206E_206E_206E_200D_202E(_202A_200E_206C_202C_200B_200E_202C_200F_202A_206D_202B_202D_202A_206C_206A_200F_202C_206E_202D_206B_206E_202E_206F_206E_206C_206E_200C_202D_206B_206A_200E_206A_202E_200F_206C_200E_200D_206C_200C_202E() & ~ImGuiWindowFlags.NoCollapse); - _200D_200E_206F_200E_202D_206A_206E_202C_206F_206F_202C_200F_200E_206A_206D_206E_202B_200F_200E_206A_202E_202A_200B_200E_200C_202A_206C_206D_206F_202A_202D_206F_200B_206A_206A_202A_202E_200E_206E_206E_202E(true); - return; - } - continue; - IL_004b: - num = -1198516442; + base.IsOpen = true; + base.Flags |= ImGuiWindowFlags.NoCollapse; + base.ShowCloseButton = false; + } + else + { + base.Flags &= ~ImGuiWindowFlags.NoCollapse; + base.ShowCloseButton = true; } } public override bool DrawConditions() { - int num = (_configuration.IsPluginSetupComplete() ? 991073778 : 991073790); - while (true) + if (!_configuration.IsPluginSetupComplete()) { - int num2 = num; - int num3 = 991073787; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = ((_200C_200B_206F_206C_202A_202A_202D_200E_202D_206B_200C_202B_200C_206D_200E_202D_202C_200E_200E_200D_202B_200F_202A_206F_206A_202E_206C_200F_202A_206D_206C_206C_206C_202C_202D_202C_200F_202B_202A_200E_202E(_objectTable) == null) ? 991073786 : 991073789); - break; - case 8: - return false; - case 1: - return false; - case 10: - num = 991073790; - break; - case 9: - num = ((!_206C_202D_202E_200E_202A_206B_202B_200E_202D_200D_200F_200D_200E_200F_202E_202E_206C_202D_202B_200D_200D_202B_202A_200D_200B_206F_202D_206C_206E_202C_206C_206E_202C_206D_202E_206B_200E_206A_202B_200F_202E(_clientState)) ? 991073786 : 991073791); - break; - case 0: - num = ((!_configuration.General.HideInAllInstances) ? 991073788 : 991073784); - break; - case 3: - num = (_configuration.Advanced.ShowWindowInInstances ? 991073788 : 991073785); - break; - case 2: - num = ((!_territoryData.IsDutyInstance(_202C_200D_206A_200B_206F_200B_206F_206A_202B_206C_200B_200D_200F_202B_202E_202B_206C_206B_206C_202D_200D_200B_200E_200E_202D_206B_200E_200F_206D_206E_206A_202D_202C_206B_206D_202B_206C_206B_202D_206A_202E(_clientState))) ? 991073788 : 991073779); - break; - case 5: - return false; - case 7: - return true; - case 6: - num = ((!_202A_200C_206E_206C_206A_200D_206E_200C_206E_200E_202C_200E_200B_202A_202B_202C_202C_202E_206E_206F_200E_206D_202D_206C_200F_200F_206B_206D_206E_200C_200F_206C_202B_202D_206C_206F_200E_206D_206A_200C_202E(_clientState)) ? 991073787 : 991073786); - break; - } + return false; } + if (!_clientState.IsLoggedIn || _objectTable.LocalPlayer == null || _clientState.IsPvPExcludingDen) + { + return false; + } + if (_configuration.General.HideInAllInstances && !_configuration.Advanced.ShowWindowInInstances && _territoryData.IsDutyInstance(_clientState.TerritoryType)) + { + return false; + } + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] public override void DrawContent() { try { - ICharacter obj = _200F_202C_206E_206F_200D_202A_206D_206C_200D_206D_200B_200D_202A_206C_200C_200D_200C_206B_206E_202B_206E_202A_206C_202C_206A_206B_200B_200F_206A_200E_202D_200E_200F_206E_202B_202C_206D_202E_200F_206D_202E(_objectTable, 0) as ICharacter; - uint? num = ((obj != null) ? new uint?(_206E_206F_206F_202C_202A_202C_206A_200E_200C_206A_206A_206A_200C_206D_202B_202C_206E_200C_202A_202C_202E_200C_200E_200D_202E_200C_200D_202D_202C_202A_200C_200B_206A_206C_200F_200F_202D_202A_200C_202D_202E(obj).RowId) : ((uint?)null)); - int num2 = (num.HasValue ? 388553375 : 388553371); - EClassJob valueOrDefault = default(EClassJob); - while (true) + EClassJob valueOrDefault = ((EClassJob?)(_objectTable[0] as ICharacter)?.ClassJob.RowId).GetValueOrDefault(); + if (valueOrDefault.IsLimitedJob()) { - int num3 = num2; - int num4 = 388553374; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - EClassJob? obj2; - EClassJob? eClassJob; - switch (num6 - (num7 + num7)) - { - case 4: - _selectedTab = UiThemeUtils.DrawTabBar(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(345110125), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1899915976), _selectedTab); - num2 = ((_selectedTab != 0) ? 388553373 : 388553372); - break; - case 5: - obj2 = null; - goto IL_0116; - case 1: - obj2 = (EClassJob)num.GetValueOrDefault(); - goto IL_0116; - case 6: - _activeQuestComponent.Draw(isMinimized: true); - return; - case 7: - num2 = ((!IsMinimized) ? 388553370 : 388553368); - break; - case 0: - num2 = 388553371; - break; - case 3: - DrawQueueTab(); - num2 = 388553366; - break; - case 2: - DrawQuestTab(); - num2 = 388553366; - break; - case 9: - UiThemeUtils.WrappedTextColored(_206C_202B_202D_206D_200B_206E_202B_202E_200C_202A_202A_202C_206E_200B_200E_206D_202C_202C_202E_202D_206D_202B_206F_206C_200E_202C_206B_200C_206D_200D_206B_206B_200F_200D_200C_202D_200C_206E_206A_206D_202E(), _206F_200B_200F_200D_202A_200F_200F_200D_202D_200C_202C_200F_200C_206E_200D_206F_202C_200D_202A_200B_200F_206C_202D_200E_206A_206D_202E_200B_206A_206F_206B_206A_200E_200B_206E_202C_202B_206E_200E_206E_202E(_200F_202E_206F_200B_206E_200B_202A_200F_206F_206C_200B_202E_202E_206B_200D_202A_200B_202C_206E_200F_200F_200D_206D_206C_200E_200C_202E_200D_202D_200D_200D_202E_206A_206A_206F_206B_202B_206B_206D_202E(valueOrDefault), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1341505200))); - _200D_202E_202C_200D_200F_202D_202A_200F_200E_200F_200E_200D_202A_206C_202E_206F_206B_202C_202E_206B_200B_206D_202B_206D_206F_202B_202D_202A_206B_202E_206B_200B_202A_206F_202B_206C_206D_200D_206C_206F_202E(); - num2 = 388553369; - break; - case 8: - return; - IL_0116: - eClassJob = obj2; - valueOrDefault = eClassJob.GetValueOrDefault(); - num2 = ((!_200E_206C_202A_206D_202A_200F_202E_202E_206B_200E_200C_206E_206A_206D_202B_206D_206E_206B_200B_202E_202D_202E_202D_200D_200D_206F_202A_206B_206D_206F_206D_206B_202D_202C_200F_206D_202D_206A_206E_200E_202E(valueOrDefault)) ? 388553369 : 388553367); - break; - } + UiThemeUtils.WrappedTextColored(ImGuiColors.DalamudYellow, valueOrDefault.ToFriendlyString() + " is a limited job. Some quests may be unavailable."); + ImGui.Separator(); + } + if (IsMinimized) + { + _activeQuestComponent.Draw(isMinimized: true); + return; + } + _selectedTab = UiThemeUtils.DrawTabBar("Quest", "Queue", _selectedTab); + if (_selectedTab == 0) + { + DrawQuestTab(); + } + else + { + DrawQueueTab(); } } catch (Exception ex) { - UiThemeUtils.WrappedTextColored(_202E_202E_200E_206D_200E_200E_206D_200C_202B_206F_206B_200E_200C_202C_202B_200D_202E_200E_200E_206C_206E_202B_200D_200C_200F_200B_200D_200B_200B_206B_202C_206D_200B_206D_200F_200B_206F_206C_200C_206C_202E(), _202B_202C_206F_202A_206E_200E_200B_206C_206E_206D_200F_206A_202B_206B_202D_200E_200E_202B_206F_202D_202D_200B_200B_206F_200F_202B_206E_202C_206A_202B_200B_202B_202E_202D_206D_202C_200C_206D_206E_206A_202E((object)ex)); + UiThemeUtils.WrappedTextColored(ImGuiColors.DalamudRed, ex.ToString()); } } @@ -364,102 +203,62 @@ internal sealed class QuestWindow : ThemedWindow, IPersistableWindowConfig { _activeQuestComponent.Draw(isMinimized: false); UiThemeUtils.SectionSpacing(); - int num = ((!_aRealmRebornComponent.ShouldDraw) ? (-1400072474) : (-1400072477)); - while (true) + if (_aRealmRebornComponent.ShouldDraw) { - int num2 = num; - int num3 = -1400072480; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - _quickAccessButtonsComponent.IsReloading = IsReloading; - _quickAccessButtonsComponent.Draw(); - UiThemeUtils.SectionSpacing(); - _navigationBarComponent.Draw(); - return; - case 3: - _aRealmRebornComponent.Draw(); - UiThemeUtils.SectionSpacing(); - num = -1400072474; - break; - case 4: - num = -1400072477; - break; - case 5: - UiThemeUtils.SectionSpacing(); - num = -1400072478; - break; - case 1: - _eventInfoComponent.Draw(); - UiThemeUtils.SectionSpacing(); - num = -1400072480; - break; - case 6: - num = ((!_eventInfoComponent.ShouldDraw) ? (-1400072480) : (-1400072479)); - break; - case 0: - num = ((!_remainingTasksComponent.Draw()) ? (-1400072478) : (-1400072475)); - break; - } + _aRealmRebornComponent.Draw(); + UiThemeUtils.SectionSpacing(); } + if (_eventInfoComponent.ShouldDraw) + { + _eventInfoComponent.Draw(); + UiThemeUtils.SectionSpacing(); + } + if (_remainingTasksComponent.Draw()) + { + UiThemeUtils.SectionSpacing(); + } + _quickAccessButtonsComponent.IsReloading = IsReloading; + _quickAccessButtonsComponent.Draw(); + UiThemeUtils.SectionSpacing(); + _navigationBarComponent.Draw(); } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawQueueTab() { - Vector2 vector = _200E_202A_200F_206B_200D_202C_202D_202A_202D_206C_206C_206D_206D_202B_200E_200C_202E_206F_206E_200F_200B_206C_200E_202A_200E_206B_206D_200B_200F_206F_202C_206B_206D_202B_202E_206A_202C_206A_200F_206C_202E(); - float x = _200F_202D_206F_202B_200C_202A_202D_200F_200C_200E_206B_202B_206F_202B_200C_206C_206D_202B_202E_206D_206C_202A_206D_206C_206B_206E_202B_202A_206B_200B_202C_200C_200D_206C_202C_202D_200D_202C_206E_202D_202E().X; - ImDrawListPtr imDrawListPtr = _202C_206F_200D_206A_200F_200B_200D_200B_200C_202C_202D_200F_206C_200D_206D_202E_206E_200D_202E_206C_206E_202D_206F_200E_200C_202E_200F_206E_206C_200E_202D_202D_202D_206C_202D_206C_206F_202C_206C_202D_202E(); - imDrawListPtr.ChannelsSplit(2); - imDrawListPtr.ChannelsSetCurrent(1); - _200B_202B_200B_200C_202A_200E_206D_200F_206C_206A_206B_200B_200F_202E_200F_200F_200E_206F_206B_206D_200B_206F_200D_200F_206A_206C_200C_206F_206B_206F_202A_202D_202B_206E_202C_200F_206F_200F_200B_206A_202E(vector + new Vector2(6f, 6f)); - if (UiThemeUtils.PillButton(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-978879249), _queueSubTab == 0)) + Vector2 cursorPos = ImGui.GetCursorPos(); + float x = ImGui.GetContentRegionAvail().X; + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + windowDrawList.ChannelsSplit(2); + windowDrawList.ChannelsSetCurrent(1); + ImGui.SetCursorPos(cursorPos + new Vector2(6f, 6f)); + if (UiThemeUtils.PillButton("Manual", _queueSubTab == 0)) { _queueSubTab = 0; } - _202A_206B_202D_206C_206A_200E_202E_202D_206F_200C_206C_206C_206B_206B_202E_202B_202E_206A_206A_200C_202B_200F_200D_202C_202A_206C_202A_206F_206E_206F_200C_200E_200C_200D_206A_202B_206C_200D_200B_202C_202E(); - if (UiThemeUtils.PillButton(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(51775154), _queueSubTab == 1)) + ImGui.SameLine(); + if (UiThemeUtils.PillButton("Saved", _queueSubTab == 1)) { _queueSubTab = 1; } - Vector2 vector2 = _200E_202A_200F_206B_200D_202C_202D_202A_202D_206C_206C_206D_206D_202B_200E_200C_202E_206F_206E_200F_200B_206C_200E_202A_200E_206B_206D_200B_200F_206F_202C_206B_206D_202B_202E_206A_202C_206A_200F_206C_202E(); - imDrawListPtr.ChannelsSetCurrent(0); - _200B_202B_200B_200C_202A_200E_206D_200F_206C_206A_206B_200B_200F_202E_200F_200F_200E_206F_206B_206D_200B_206F_200D_200F_206A_206C_200C_206F_206B_206F_202A_202D_202B_206E_202C_200F_206F_200F_200B_206A_202E(vector); - Vector2 pMin = _200F_202A_200B_202A_206A_200E_206F_202E_200F_200F_206B_206A_206E_206C_200D_200B_202D_206A_202C_206C_206C_200B_200E_200C_206A_206C_200F_206A_206D_206E_206C_200C_200C_206A_202D_200E_200C_206E_200C_202B_202E(); - _200B_202B_200B_200C_202A_200E_206D_200F_206C_206A_206B_200B_200F_202E_200F_200F_200E_206F_206B_206D_200B_206F_200D_200F_206A_206C_200C_206F_206B_206F_202A_202D_202B_206E_202C_200F_206F_200F_200B_206A_202E(new Vector2(vector.X, vector2.Y + 6f - _206F_202E_200D_200F_206C_206D_200D_206C_206B_202D_202B_200F_206C_206A_202C_206F_206D_206D_202A_202D_202A_202E_206F_200B_200B_200D_202E_200D_206C_206C_206B_202B_200C_200D_200D_200B_200D_202C_206D_200F_202E().ItemSpacing.Y)); - Vector2 vector3 = _200F_202A_200B_202A_206A_200E_206F_202E_200F_200F_206B_206A_206E_206C_200D_200B_202D_206A_202C_206C_206C_200B_200E_200C_206A_206C_200F_206A_206D_206E_206C_200C_200C_206A_202D_200E_200C_206E_200C_202B_202E(); - imDrawListPtr.AddRectFilled(pMin, new Vector2(pMin.X + x, vector3.Y), _202C_206E_200D_202D_200E_200D_206B_206F_200F_202B_200B_202A_206F_202E_206E_206D_200C_202C_200C_206C_206D_202D_202D_206F_202A_206D_206B_202A_200C_200B_202D_206A_206D_202C_202D_200E_200F_200B_206A_202A_202E(UiThemeUtils.CardBackgroundColor), 6f); - imDrawListPtr.AddRect(pMin, new Vector2(pMin.X + x, vector3.Y), _202C_206E_200D_202D_200E_200D_206B_206F_200F_202B_200B_202A_206F_202E_206E_206D_200C_202C_200C_206C_206D_202D_202D_206F_202A_206D_206B_202A_200C_200B_202D_206A_206D_202C_202D_200E_200F_200B_206A_202A_202E(UiThemeUtils.CardBorderColor), 6f, ImDrawFlags.None, 1f); - imDrawListPtr.ChannelsMerge(); - _200B_202B_200B_200C_202A_200E_206D_200F_206C_206A_206B_200B_200F_202E_200F_200F_200E_206F_206B_206D_200B_206F_200D_200F_206A_206C_200C_206F_206B_206F_202A_202D_202B_206E_202C_200F_206F_200F_200B_206A_202E(new Vector2(vector.X, vector2.Y + 6f)); + Vector2 cursorPos2 = ImGui.GetCursorPos(); + windowDrawList.ChannelsSetCurrent(0); + ImGui.SetCursorPos(cursorPos); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + ImGui.SetCursorPos(new Vector2(cursorPos.X, cursorPos2.Y + 6f - ImGui.GetStyle().ItemSpacing.Y)); + Vector2 cursorScreenPos2 = ImGui.GetCursorScreenPos(); + windowDrawList.AddRectFilled(cursorScreenPos, new Vector2(cursorScreenPos.X + x, cursorScreenPos2.Y), ImGui.ColorConvertFloat4ToU32(UiThemeUtils.CardBackgroundColor), 6f); + windowDrawList.AddRect(cursorScreenPos, new Vector2(cursorScreenPos.X + x, cursorScreenPos2.Y), ImGui.ColorConvertFloat4ToU32(UiThemeUtils.CardBorderColor), 6f, ImDrawFlags.None, 1f); + windowDrawList.ChannelsMerge(); + ImGui.SetCursorPos(new Vector2(cursorPos.X, cursorPos2.Y + 6f)); UiThemeUtils.SectionSpacing(); - int queueSubTab = _queueSubTab; - int num = ((queueSubTab == 0) ? (-238709594) : (-238709593)); - while (true) + switch (_queueSubTab) { - int num2 = num; - int num3 = -238709594; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return; - case 0: - _manualPriorityComponent.DrawCompact(); - return; - case 3: - _savedPresetsComponent.Draw(); - return; - case 1: - num = ((queueSubTab == 1) ? (-238709595) : (-238709596)); - break; - case 4: - num = -238709593; - break; - } + case 0: + _manualPriorityComponent.DrawCompact(); + break; + case 1: + _savedPresetsComponent.Draw(); + break; } } @@ -475,265 +274,25 @@ internal sealed class QuestWindow : ThemedWindow, IPersistableWindowConfig internal void Reload() { - int num = ((!IsReloading) ? 162401871 : 162401868); - while (true) + if (IsReloading) { - int num2 = num; - int num3 = 162401869; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0046; - case 2: - IsReloading = true; - _206F_200F_202C_206E_202A_200F_206D_202D_200D_202B_202D_202E_200C_206B_202A_206C_202C_202E_206C_200B_200D_200F_202B_206C_206F_206E_200B_202E_200E_200B_202D_200D_206E_202A_200F_206E_200E_200B_202E_200D_202E((System.Action)delegate - { - try - { - _questController.Reload(); - } - finally - { - IsReloading = false; - } - _202C_202C_200F_202B_200C_206E_206A_206C_202D_200C_206D_202E_206B_200C_206D_200B_206F_206E_202A_200F_202D_206C_206E_200C_202C_202C_200F_206A_200B_200F_202C_202A_206F_202C_200C_206E_200D_202C_206C_206B_202E(_framework, (System.Action)delegate - { - _interactionUiController.HandleCurrentDialogueChoices(); - }, TimeSpan.FromMilliseconds(200L), 0, default(CancellationToken)); - }); - return; - case 1: - return; - } - continue; - IL_0046: - num = 162401868; + return; } - } - - static string _206D_206D_202D_200B_202C_206D_200F_200E_200D_206C_206B_206E_202A_202D_200E_202D_206E_202C_202D_206B_200F_206D_200C_206C_202D_200C_202C_200C_202A_202B_202E_200C_202A_206A_206F_202D_200F_200B_206D_202A_202E(Version P_0, int P_1) - { - return P_0.ToString(P_1); - } - - static string _200B_202A_202E_200E_202B_202A_202D_200D_200D_202B_202D_206D_200F_202C_200E_206B_202B_200E_206E_202A_206D_202C_206E_200E_206F_202E_200B_202D_206A_200F_202E_200D_202C_202C_206F_202E_202C_202C_202E_206B_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - void _200F_206E_202D_206A_200F_202C_206C_200D_202E_202A_206E_200E_206E_202C_202B_202C_202E_200F_202B_200C_202D_206B_202B_202B_200B_200E_200C_200C_206E_202A_206A_200D_200D_206F_206C_200B_202C_202A_206F_206C_202E(WindowSizeConstraints? P_0) - { - base.SizeConstraints = P_0; - } - - void _206B_202D_206F_206A_206A_206F_200E_206C_200E_206D_202E_200E_202C_206D_200E_202E_206D_202A_202B_202E_200C_202D_202A_202E_202A_200F_206A_200B_200D_206B_202E_200F_206B_202A_202E_200C_202C_200E_202B_202C_202E(bool P_0) - { - base.RespectCloseHotkey = P_0; - } - - void _202B_202B_200E_202A_202B_200B_206B_202A_206E_206C_202D_200B_206B_200E_206D_206F_206F_200E_200D_200B_206A_206F_206D_206D_202D_206E_202C_206E_206B_202C_202D_200D_206B_200F_202C_200C_202B_202A_206F_200F_202E(bool P_0) - { - base.AllowClickthrough = P_0; - } - - static TitleBarButton _202E_202A_202A_206F_206B_200E_200D_206B_200F_206B_202A_202A_202B_206C_206C_206A_200B_200C_206E_206A_200C_206A_206C_202D_202E_206B_206C_206B_200C_206E_202C_202D_206C_202E_206F_202D_200F_206F_206E_202E() - { - return new TitleBarButton(); - } - - static void _202A_206D_206C_206A_202B_206B_206C_200E_200F_202D_200D_202A_206B_202A_202C_202B_206A_206E_206F_206D_200F_206F_202A_200F_206F_202B_200F_206A_200F_206B_200C_206C_202A_202A_206D_206A_202D_200B_206B_202D_202E(TitleBarButton P_0, FontAwesomeIcon P_1) - { - P_0.Icon = P_1; - } - - static void _200C_206F_200D_200F_200E_200F_202E_200D_200C_200D_200B_202C_200D_202C_206F_206A_206E_200B_202D_200F_202A_202E_200C_200E_206D_200D_202D_206F_206F_206F_202E_206E_202A_200C_200C_206E_206E_200B_202D_206A_202E(TitleBarButton P_0, int P_1) - { - P_0.Priority = P_1; - } - - static void _206B_200F_202D_206E_202E_200B_202C_202C_202A_206E_202C_206E_202A_202E_200E_202E_206D_206C_206C_200B_206F_202A_206D_202B_200F_200E_202D_202D_202B_202B_206A_202B_202E_206B_206B_206B_202E_202D_200C_202C_202E(TitleBarButton P_0, Vector2 P_1) - { - P_0.IconOffset = P_1; - } - - static void _200F_200E_206D_206D_200F_202B_202A_202B_206B_206A_206A_200E_202C_200F_202A_206B_206B_202B_202E_202B_206C_202A_206D_202D_200D_206F_206F_202E_206A_206E_202E_200C_200B_202E_202C_206C_200D_206E_202B_200F_202E(TitleBarButton P_0, Action<ImGuiMouseButton> P_1) - { - P_0.Click = P_1; - } - - static void _202B_200D_206B_200B_202B_202C_200B_206E_206A_200F_200D_202D_206E_206B_200B_202B_202B_200F_206B_202C_200B_206B_200E_206F_202C_200C_202B_200D_202D_200E_206A_206C_206E_202D_200F_206E_206D_202B_200D_206B_202E(TitleBarButton P_0, bool P_1) - { - P_0.AvailableClickthrough = P_1; - } - - List<TitleBarButton> _200C_202B_206F_202B_206F_202B_206D_206D_200D_200D_202C_206A_206B_200E_200C_202C_202C_206A_206F_206D_206B_202A_200E_206E_206D_206A_200F_202E_206A_200C_202E_202C_202D_200F_200E_202E_202D_200C_200B_202B_202E() - { - return base.TitleBarButtons; - } - - static void _200D_206E_202A_200E_202E_202E_202A_206A_206C_202C_200F_206D_202B_206F_200B_202D_200E_200E_200B_206F_202A_206A_202D_200E_206E_200D_200F_206F_206A_202B_200F_202C_200E_202D_206D_202A_200B_200C_202D_202D_202E(TitleBarButton P_0, System.Action P_1) - { - P_0.ShowTooltip = P_1; - } - - static void _200E_200B_202D_200D_202D_206A_202A_206B_200F_202D_200E_202A_206D_202E_202E_200E_206D_206E_202A_206D_200E_206D_206F_206B_206F_202B_206E_200D_206A_206D_200C_206B_202A_200D_200E_206E_200C_206C_206F_206A_202E(IDalamudPluginInterface P_0, IPluginConfiguration P_1) - { - P_0.SavePluginConfig(P_1); - } - - void _200B_206B_202E_206B_202A_200F_200F_202B_200C_202D_202A_206B_202C_202A_206C_202B_206F_202E_206B_200E_206F_200E_206C_206E_200B_200F_206D_200B_206A_200D_200E_200B_200C_202D_202C_200D_202A_202E_202B_202B_202E(bool P_0) - { - base.IsOpen = P_0; - } - - ImGuiWindowFlags _202A_200E_206C_202C_200B_200E_202C_200F_202A_206D_202B_202D_202A_206C_206A_200F_202C_206E_202D_206B_206E_202E_206F_206E_206C_206E_200C_202D_206B_206A_200E_206A_202E_200F_206C_200E_200D_206C_200C_202E() - { - return base.Flags; - } - - void _202D_202E_206F_202A_202E_206B_206B_200E_202C_206C_206B_202E_206D_202A_200D_202D_206F_202A_200E_206A_202A_206B_202B_200D_200B_206E_206D_202E_202E_206F_202E_202D_200F_202D_206A_202A_206E_206E_206E_200D_202E(ImGuiWindowFlags P_0) - { - base.Flags = P_0; - } - - void _200D_200E_206F_200E_202D_206A_206E_202C_206F_206F_202C_200F_200E_206A_206D_206E_202B_200F_200E_206A_202E_202A_200B_200E_200C_202A_206C_206D_206F_202A_202D_206F_200B_206A_206A_202A_202E_200E_206E_206E_202E(bool P_0) - { - base.ShowCloseButton = P_0; - } - - static bool _206C_202D_202E_200E_202A_206B_202B_200E_202D_200D_200F_200D_200E_200F_202E_202E_206C_202D_202B_200D_200D_202B_202A_200D_200B_206F_202D_206C_206E_202C_206C_206E_202C_206D_202E_206B_200E_206A_202B_200F_202E(IClientState P_0) - { - return P_0.IsLoggedIn; - } - - static IPlayerCharacter _200C_200B_206F_206C_202A_202A_202D_200E_202D_206B_200C_202B_200C_206D_200E_202D_202C_200E_200E_200D_202B_200F_202A_206F_206A_202E_206C_200F_202A_206D_206C_206C_206C_202C_202D_202C_200F_202B_202A_200E_202E(IObjectTable P_0) - { - return P_0.LocalPlayer; - } - - static bool _202A_200C_206E_206C_206A_200D_206E_200C_206E_200E_202C_200E_200B_202A_202B_202C_202C_202E_206E_206F_200E_206D_202D_206C_200F_200F_206B_206D_206E_200C_200F_206C_202B_202D_206C_206F_200E_206D_206A_200C_202E(IClientState P_0) - { - return P_0.IsPvPExcludingDen; - } - - static uint _202C_200D_206A_200B_206F_200B_206F_206A_202B_206C_200B_200D_200F_202B_202E_202B_206C_206B_206C_202D_200D_200B_200E_200E_202D_206B_200E_200F_206D_206E_206A_202D_202C_206B_206D_202B_206C_206B_202D_206A_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static IGameObject _200F_202C_206E_206F_200D_202A_206D_206C_200D_206D_200B_200D_202A_206C_200C_200D_200C_206B_206E_202B_206E_202A_206C_202C_206A_206B_200B_200F_206A_200E_202D_200E_200F_206E_202B_202C_206D_202E_200F_206D_202E(IObjectTable P_0, int P_1) - { - return P_0[P_1]; - } - - static RowRef<ClassJob> _206E_206F_206F_202C_202A_202C_206A_200E_200C_206A_206A_206A_200C_206D_202B_202C_206E_200C_202A_202C_202E_200C_200E_200D_202E_200C_200D_202D_202C_202A_200C_200B_206A_206C_200F_200F_202D_202A_200C_202D_202E(ICharacter P_0) - { - return P_0.ClassJob; - } - - static bool _200E_206C_202A_206D_202A_200F_202E_202E_206B_200E_200C_206E_206A_206D_202B_206D_206E_206B_200B_202E_202D_202E_202D_200D_200D_206F_202A_206B_206D_206F_206D_206B_202D_202C_200F_206D_202D_206A_206E_200E_202E(EClassJob P_0) - { - return P_0.IsLimitedJob(); - } - - static Vector4 _206C_202B_202D_206D_200B_206E_202B_202E_200C_202A_202A_202C_206E_200B_200E_206D_202C_202C_202E_202D_206D_202B_206F_206C_200E_202C_206B_200C_206D_200D_206B_206B_200F_200D_200C_202D_200C_206E_206A_206D_202E() - { - return ImGuiColors.DalamudYellow; - } - - static string _200F_202E_206F_200B_206E_200B_202A_200F_206F_206C_200B_202E_202E_206B_200D_202A_200B_202C_206E_200F_200F_200D_206D_206C_200E_200C_202E_200D_202D_200D_200D_202E_206A_206A_206F_206B_202B_206B_206D_202E(EClassJob P_0) - { - return P_0.ToFriendlyString(); - } - - static string _206F_200B_200F_200D_202A_200F_200F_200D_202D_200C_202C_200F_200C_206E_200D_206F_202C_200D_202A_200B_200F_206C_202D_200E_206A_206D_202E_200B_206A_206F_206B_206A_200E_200B_206E_202C_202B_206E_200E_206E_202E(string P_0, string P_1) - { - return P_0 + P_1; - } - - static void _200D_202E_202C_200D_200F_202D_202A_200F_200E_200F_200E_200D_202A_206C_202E_206F_206B_202C_202E_206B_200B_206D_202B_206D_206F_202B_202D_202A_206B_202E_206B_200B_202A_206F_202B_206C_206D_200D_206C_206F_202E() - { - ImGui.Separator(); - } - - static Vector4 _202E_202E_200E_206D_200E_200E_206D_200C_202B_206F_206B_200E_200C_202C_202B_200D_202E_200E_200E_206C_206E_202B_200D_200C_200F_200B_200D_200B_200B_206B_202C_206D_200B_206D_200F_200B_206F_206C_200C_206C_202E() - { - return ImGuiColors.DalamudRed; - } - - static string _202B_202C_206F_202A_206E_200E_200B_206C_206E_206D_200F_206A_202B_206B_202D_200E_200E_202B_206F_202D_202D_200B_200B_206F_200F_202B_206E_202C_206A_202B_200B_202B_202E_202D_206D_202C_200C_206D_206E_206A_202E(object P_0) - { - return P_0.ToString(); - } - - static Vector2 _200E_202A_200F_206B_200D_202C_202D_202A_202D_206C_206C_206D_206D_202B_200E_200C_202E_206F_206E_200F_200B_206C_200E_202A_200E_206B_206D_200B_200F_206F_202C_206B_206D_202B_202E_206A_202C_206A_200F_206C_202E() - { - return ImGui.GetCursorPos(); - } - - static Vector2 _200F_202D_206F_202B_200C_202A_202D_200F_200C_200E_206B_202B_206F_202B_200C_206C_206D_202B_202E_206D_206C_202A_206D_206C_206B_206E_202B_202A_206B_200B_202C_200C_200D_206C_202C_202D_200D_202C_206E_202D_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static ImDrawListPtr _202C_206F_200D_206A_200F_200B_200D_200B_200C_202C_202D_200F_206C_200D_206D_202E_206E_200D_202E_206C_206E_202D_206F_200E_200C_202E_200F_206E_206C_200E_202D_202D_202D_206C_202D_206C_206F_202C_206C_202D_202E() - { - return ImGui.GetWindowDrawList(); - } - - static void _200B_202B_200B_200C_202A_200E_206D_200F_206C_206A_206B_200B_200F_202E_200F_200F_200E_206F_206B_206D_200B_206F_200D_200F_206A_206C_200C_206F_206B_206F_202A_202D_202B_206E_202C_200F_206F_200F_200B_206A_202E(Vector2 P_0) - { - ImGui.SetCursorPos(P_0); - } - - static void _202A_206B_202D_206C_206A_200E_202E_202D_206F_200C_206C_206C_206B_206B_202E_202B_202E_206A_206A_200C_202B_200F_200D_202C_202A_206C_202A_206F_206E_206F_200C_200E_200C_200D_206A_202B_206C_200D_200B_202C_202E() - { - ImGui.SameLine(); - } - - static Vector2 _200F_202A_200B_202A_206A_200E_206F_202E_200F_200F_206B_206A_206E_206C_200D_200B_202D_206A_202C_206C_206C_200B_200E_200C_206A_206C_200F_206A_206D_206E_206C_200C_200C_206A_202D_200E_200C_206E_200C_202B_202E() - { - return ImGui.GetCursorScreenPos(); - } - - static ImGuiStylePtr _206F_202E_200D_200F_206C_206D_200D_206C_206B_202D_202B_200F_206C_206A_202C_206F_206D_206D_202A_202D_202A_202E_206F_200B_200B_200D_202E_200D_206C_206C_206B_202B_200C_200D_200D_200B_200D_202C_206D_200F_202E() - { - return ImGui.GetStyle(); - } - - static uint _202C_206E_200D_202D_200E_200D_206B_206F_200F_202B_200B_202A_206F_202E_206E_206D_200C_202C_200C_206C_206D_202D_202D_206F_202A_206D_206B_202A_200C_200B_202D_206A_206D_202C_202D_200E_200F_200B_206A_202A_202E(Vector4 P_0) - { - return ImGui.ColorConvertFloat4ToU32(P_0); - } - - static Task _206F_200F_202C_206E_202A_200F_206D_202D_200D_202B_202D_202E_200C_206B_202A_206C_202C_202E_206C_200B_200D_200F_202B_206C_206F_206E_200B_202E_200E_200B_202D_200D_206E_202A_200F_206E_200E_200B_202E_200D_202E(System.Action P_0) - { - return Task.Run(P_0); - } - - static Type _200E_202C_202E_206A_200E_200E_202C_206C_206D_206F_202A_202E_202B_200F_202E_200E_202D_206E_202B_202A_202D_202A_202A_206A_202D_200E_202E_206F_200F_200D_202E_200E_202E_206A_200F_202C_200C_202B_200F_202A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static Assembly _200F_200C_206F_200E_202A_200C_202C_202A_206B_202A_202B_202E_206B_200B_206B_206B_206B_200F_202A_200F_202C_202A_206D_202B_206F_202B_200E_206E_200E_206F_206A_202C_200D_202A_202E_200B_200B_200C_206A_202D_202E(Type P_0) - { - return P_0.Assembly; - } - - static AssemblyName _200D_206D_200B_200B_202A_206C_200C_206C_202C_200F_206B_202D_202B_200F_206B_202D_206C_202A_202D_206F_200E_202A_202D_202C_202A_202B_200E_206B_202B_206D_200B_206B_206A_202A_202E_202B_200D_206B_200F_200D_202E(Assembly P_0) - { - return P_0.GetName(); - } - - static Version _200C_200D_202D_206E_202B_206D_202C_202C_206C_200C_202A_206B_200B_200B_200D_202A_206C_206B_206B_202A_206E_206E_206A_200F_200B_200C_202D_206A_200D_202C_200E_200F_206D_206A_200C_202E_200F_200E_200F_202A_202E(AssemblyName P_0) - { - return P_0.Version; - } - - static Task _202C_202C_200F_202B_200C_206E_206A_206C_202D_200C_206D_202E_206B_200C_206D_200B_206F_206E_202A_200F_202D_206C_206E_200C_202C_202C_200F_206A_200B_200F_202C_202A_206F_202C_200C_206E_200D_202C_206C_206B_202E(IFramework P_0, System.Action P_1, TimeSpan P_2, int P_3, CancellationToken P_4) - { - return P_0.RunOnTick(P_1, P_2, P_3, P_4); + IsReloading = true; + Task.Run(delegate + { + try + { + _questController.Reload(); + } + finally + { + IsReloading = false; + } + _framework.RunOnTick(delegate + { + _interactionUiController.HandleCurrentDialogueChoices(); + }, TimeSpan.FromMilliseconds(200L)); + }); } } diff --git a/Questionable/Questionable.Windows/SeasonalDutySelectionWindow.cs b/Questionable/Questionable.Windows/SeasonalDutySelectionWindow.cs index 2d0ddb4..34f060e 100644 --- a/Questionable/Questionable.Windows/SeasonalDutySelectionWindow.cs +++ b/Questionable/Questionable.Windows/SeasonalDutySelectionWindow.cs @@ -20,94 +20,6 @@ namespace Questionable.Windows; internal sealed class SeasonalDutySelectionWindow : ThemedWindow { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<SeasonalDutyDefinition, int> _003C_003E9__16_1; - - public static Func<SeasonalDutyDefinition, double> _003C_003E9__16_2; - - public static Func<SeasonalDutyDefinition, string> _003C_003E9__16_3; - - internal int _003CDrawDutyTable_003Eb__16_1(SeasonalDutyDefinition d) - { - DateTime? dateTime = _200B_206E_202E_206D_206E_200C_200C_200B_206D_200B_202D_206A_200D_200B_202C_202E_202D_206C_200E_200C_200D_206A_200D_200E_200C_206A_200E_206E_200E_200B_202E_202A_202B_200D_206D_206F_200F_202A_206D_202D_202E(d); - int num = ((!dateTime.HasValue) ? (-962975575) : (-962975576)); - while (true) - { - int num2 = num; - int num3 = -962975574; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return 1; - case 2: - { - DateTime valueOrDefault = dateTime.GetValueOrDefault(); - num = ((!(EventInfoComponent.NormalizeExpiry(valueOrDefault) - DateTime.UtcNow > TimeSpan.Zero)) ? (-962975575) : (-962975573)); - break; - } - case 1: - return 0; - case 0: - num = -962975576; - break; - } - } - } - - internal double _003CDrawDutyTable_003Eb__16_2(SeasonalDutyDefinition d) - { - DateTime? dateTime = _200B_206E_202E_206D_206E_200C_200C_200B_206D_200B_202D_206A_200D_200B_202C_202E_202D_206C_200E_200C_200D_206A_200D_200E_200C_206A_200E_206E_200E_200B_202E_202A_202B_200D_206D_206F_200F_202A_206D_202D_202E(d); - int num = ((!dateTime.HasValue) ? (-1416150355) : (-1416150356)); - TimeSpan timeSpan = default(TimeSpan); - while (true) - { - int num2 = num; - int num3 = -1416150354; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return double.MaxValue; - case 1: - return timeSpan.TotalSeconds; - case 2: - { - DateTime valueOrDefault = dateTime.GetValueOrDefault(); - timeSpan = EventInfoComponent.NormalizeExpiry(valueOrDefault) - DateTime.UtcNow; - num = ((!(timeSpan > TimeSpan.Zero)) ? (-1416150355) : (-1416150353)); - break; - } - case 0: - num = -1416150356; - break; - } - } - } - - internal string _003CDrawDutyTable_003Eb__16_3(SeasonalDutyDefinition d) - { - return _200F_202B_200D_202C_200E_202C_200C_200D_206E_206E_202C_206F_206D_202E_206F_202D_206C_200C_200E_206E_206B_202E_202A_202D_206B_206B_202D_206F_206F_206C_202C_200D_200B_202B_200D_200D_202A_200E_200D_200E_202E(d); - } - - static DateTime? _200B_206E_202E_206D_206E_200C_200C_200B_206D_200B_202D_206A_200D_200B_202C_202E_202D_206C_200E_200C_200D_206A_200D_200E_200C_206A_200E_206E_200E_200B_202E_202A_202B_200D_206D_206F_200F_202A_206D_202D_202E(SeasonalDutyDefinition P_0) - { - return P_0.EventExpiry; - } - - static string _200F_202B_200D_202C_200E_202C_200C_200D_206E_206E_202C_206F_206D_202E_206F_202D_206C_200C_200E_206E_206B_202E_202A_202D_206B_206B_202D_206F_206F_206C_202C_200D_200B_202B_200D_200D_202A_200E_200D_200E_202E(SeasonalDutyDefinition P_0) - { - return P_0.Name; - } - } - private readonly SeasonalDutyController _seasonalDutyController; private readonly SeasonalDutyDefinitionRegistry _seasonalDutyDefinitionRegistry; @@ -132,9 +44,8 @@ internal sealed class SeasonalDutySelectionWindow : ThemedWindow private string _searchText = string.Empty; - [MethodImpl(MethodImplOptions.NoInlining)] public SeasonalDutySelectionWindow(SeasonalDutyController seasonalDutyController, SeasonalDutyDefinitionRegistry seasonalDutyDefinitionRegistry, QuestController questController, FateController fateController, CustomDeliveryController customDeliveryController, AttunementController attunementController, MovementController movementController, QuestFunctions questFunctions, QuestData questData, TerritoryData territoryData) - : base(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1301104720)) + : base("Seasonal Duty Farming###QuestionableSeasonalDutyFarming") { _seasonalDutyController = seasonalDutyController; _seasonalDutyDefinitionRegistry = seasonalDutyDefinitionRegistry; @@ -146,1179 +57,318 @@ internal sealed class SeasonalDutySelectionWindow : ThemedWindow _questFunctions = questFunctions; _questData = questData; _territoryData = territoryData; - _206A_202B_200C_202B_206D_200C_200E_202B_206F_200D_206E_200D_202A_200E_202E_202C_206D_206A_206E_202A_202B_202B_206C_202A_202D_206C_202E_202E_202E_202A_202E_206C_200E_202C_200D_200B_200C_206E_202C_202E_202E((Vector2?)new Vector2(600f, 400f)); - _206D_200E_200D_200C_206B_202E_206B_200B_206E_200B_200B_206B_200D_200B_202D_200B_202D_202C_200C_200E_200D_202A_200F_200F_206F_202C_202C_200F_206B_206E_202B_200B_200B_206F_202A_202D_202D_200B_200D_202A_202E(ImGuiCond.FirstUseEver); - _200D_200F_206D_206D_200D_206B_206E_202A_206B_206A_202B_206D_206C_202A_206A_206F_200C_202B_206F_202B_202A_202B_206F_202B_206A_202D_200F_206E_202B_202B_200F_200F_206C_206A_200E_206B_200F_202B_206A_200F_202E((WindowSizeConstraints?)new WindowSizeConstraints + base.Size = new Vector2(600f, 400f); + base.SizeCondition = ImGuiCond.FirstUseEver; + base.SizeConstraints = new WindowSizeConstraints { MinimumSize = new Vector2(500f, 300f), MaximumSize = new Vector2(900f, 700f) - }); + }; } - [MethodImpl(MethodImplOptions.NoInlining)] public override void DrawContent() { - int num = ((!_seasonalDutyController.IsRunning) ? 1348613692 : 1348613689); - while (true) + if (_seasonalDutyController.IsRunning) { - int num2 = num; - int num3 = 1348613692; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (CycleSelectionUi.DrawRunningBanner(BuildRunningStatusText(), UiThemeUtils.StatusComplete, FontAwesomeIcon.Play)) { - case 6: - UiThemeUtils.SectionSpacing(); - var (contentStartPos2, availableWidth2, drawList2) = UiThemeUtils.BeginCard(); - UiThemeUtils.SectionHeader(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1468901459)); - UiThemeUtils.SearchInput(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1363394088), ref _searchText, -13f, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1658460666)); - _200D_206C_200D_206A_200D_202D_202E_202B_206F_202D_200F_200C_200E_202B_202D_200E_202E_206B_202E_206D_202E_206A_200E_200B_206B_202D_200B_202D_206C_202C_200E_206E_206F_206E_206D_206B_206C_200D_206A_200D_202E(); - DrawDutyTable(); - UiThemeUtils.EndCard(contentStartPos2, availableWidth2, drawList2); - return; - case 1: - UiThemeUtils.EmptyState(FontAwesomeIcon.Leaf, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(937132145), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1122952698)); - return; - case 2: - _seasonalDutyController.Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-271672975)); + _seasonalDutyController.Stop("UI stop"); _movementController.Stop(); - num = 1348613688; - break; - case 5: - num = ((!CycleSelectionUi.DrawRunningBanner(BuildRunningStatusText(), UiThemeUtils.StatusComplete, FontAwesomeIcon.Play)) ? 1348613688 : 1348613694); - break; - case 4: - num = ((_seasonalDutyDefinitionRegistry.Definitions.Count != 0) ? 1348613690 : 1348613693); - break; - case 0: - var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); - UiThemeUtils.SectionHeader(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1066068262)); - DrawControlsStrip(); - UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); - num = 1348613688; - break; - case 3: - num = 1348613689; - break; } } + else + { + var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard(); + UiThemeUtils.SectionHeader("Cycle Configuration"); + DrawControlsStrip(); + UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList); + } + if (_seasonalDutyDefinitionRegistry.Definitions.Count == 0) + { + UiThemeUtils.EmptyState(FontAwesomeIcon.Leaf, "No Seasonal Duty Definitions", "Add definitions to the SeasonalDutyPaths folder to get started."); + return; + } + UiThemeUtils.SectionSpacing(); + var (contentStartPos2, availableWidth2, drawList2) = UiThemeUtils.BeginCard(); + UiThemeUtils.SectionHeader("Duty List"); + UiThemeUtils.SearchInput("##SeasonalDutySearch", ref _searchText, -13f, "Search duties..."); + ImGui.Spacing(); + DrawDutyTable(); + UiThemeUtils.EndCard(contentStartPos2, availableWidth2, drawList2); } - [MethodImpl(MethodImplOptions.NoInlining)] private string BuildRunningStatusText() { - int num = (_seasonalDutyController.CycleLimit.HasValue ? 1202243472 : 1202243479); - IList<string> remainingTaskNames = default(IList<string>); - string value = default(string); - string value2 = default(string); - string value3 = default(string); - string text = default(string); - while (true) + string value = (_seasonalDutyController.CycleLimit.HasValue ? $"Cycle {_seasonalDutyController.CompletedCycles + 1} / {_seasonalDutyController.CycleLimit}" : $"Cycle {_seasonalDutyController.CompletedCycles + 1}"); + string value2 = FormatElapsed(_seasonalDutyController.ElapsedTime); + IList<string> remainingTaskNames = _seasonalDutyController.GetRemainingTaskNames(); + string text = ((remainingTaskNames.Count > 0) ? remainingTaskNames[0] : ""); + string name = _seasonalDutyController.CurrentDuty.Name; + if (text.Length > 0) { - int num2 = num; - int num3 = 1202243477; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - string text3; - string text2; - switch (num5 - (num6 + num6)) - { - case 4: - text3 = remainingTaskNames[0]; - goto IL_0076; - case 2: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler4 = new DefaultInterpolatedStringHandler(6, 1); - defaultInterpolatedStringHandler4.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1745458759)); - defaultInterpolatedStringHandler4.AppendFormatted(_seasonalDutyController.CompletedCycles + 1); - text2 = defaultInterpolatedStringHandler4.ToStringAndClear(); - goto IL_01c0; - } - case 3: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(10, 3); - defaultInterpolatedStringHandler3.AppendFormatted(value); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2010167156)); - defaultInterpolatedStringHandler3.AppendFormatted(value2); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2010167156)); - defaultInterpolatedStringHandler3.AppendFormatted(value3); - return defaultInterpolatedStringHandler3.ToStringAndClear(); - } - case 1: - text3 = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1281927779); - goto IL_0076; - case 6: - num = 1202243479; - break; - case 5: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(9, 2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1757472156)); - defaultInterpolatedStringHandler2.AppendFormatted(_seasonalDutyController.CompletedCycles + 1); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1534070043)); - defaultInterpolatedStringHandler2.AppendFormatted(_seasonalDutyController.CycleLimit); - text2 = defaultInterpolatedStringHandler2.ToStringAndClear(); - goto IL_01c0; - } - case 0: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(15, 4); - defaultInterpolatedStringHandler.AppendFormatted(value); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-930966885)); - defaultInterpolatedStringHandler.AppendFormatted(value2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-2010167156)); - defaultInterpolatedStringHandler.AppendFormatted(value3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1090853622)); - defaultInterpolatedStringHandler.AppendFormatted(text); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - IL_01c0: - value2 = text2; - value3 = FormatElapsed(_seasonalDutyController.ElapsedTime); - remainingTaskNames = _seasonalDutyController.GetRemainingTaskNames(); - num = ((remainingTaskNames.Count > 0) ? 1202243473 : 1202243476); - break; - IL_0076: - text = text3; - value = _200F_200B_200F_200D_202A_202A_206C_202C_202A_202D_200D_200E_202D_200D_200F_202D_200B_200D_202B_202A_200F_206A_200F_206E_206E_202E_200E_202E_206E_202C_202E_206C_202E_206A_202E_206A_202A_202E_200D_200D_202E(_seasonalDutyController.CurrentDuty); - num = ((_200F_206A_206C_200D_200C_206A_200F_202E_202E_206B_200F_202A_206B_202A_200F_202D_202B_206B_202C_200D_200E_202E_206A_202E_200C_206D_200C_202B_200E_200F_202A_206F_202E_202A_200D_206A_206C_206A_206B_202B_202E(text) > 0) ? 1202243477 : 1202243478); - break; - } + return $"{name} · {value} · {value2} · {text}"; } + return $"{name} · {value} · {value2}"; } - [MethodImpl(MethodImplOptions.NoInlining)] private void DrawControlsStrip() { - ImRaii.DisabledDisposable disabledDisposable = _206E_202C_200C_200C_202C_206D_206E_202E_206E_200D_202A_200E_200C_206C_202E_202B_202D_206D_200F_202C_200C_200C_206B_200F_206E_202A_206B_200D_202E_206B_200E_202B_202E_200D_206A_200F_206E_200D_200E_206F_202E(_seasonalDutyController.IsRunning); - try + using (ImRaii.Disabled(_seasonalDutyController.IsRunning)) { - _206A_200F_206F_206D_206C_200C_206F_202E_206C_206E_202A_200E_200F_206F_202B_206E_202A_206F_200F_206F_202A_200E_202A_206B_202E_206E_202B_206C_200B_202B_202E_206C_200C_206B_206E_200E_200B_206B_202C_206C_202E(); - _200B_202C_206B_202C_202B_206B_200B_202B_206D_200E_202A_202D_202C_206A_206C_206E_200F_200C_200F_202C_206D_206D_202D_206E_206E_202B_206C_206B_202B_200C_202A_206C_202E_202C_202C_200C_206B_202E_206E_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(671135877)); - _202C_206F_206D_206A_202E_206D_202C_202B_206A_200D_206F_202C_206F_202C_206F_206F_206F_200E_202E_206F_200B_200F_206A_206A_200E_200C_200C_200F_206F_202B_206B_200B_202A_200C_206D_200D_200B_202D_206B_206A_202E(); - _202B_200F_206F_202D_206C_200B_202E_202D_200E_200D_200C_200F_202B_206F_200F_200B_200D_200C_200C_202E_206B_206A_202C_200B_200D_206D_200C_202A_202C_202D_200D_202B_202E_206D_206F_206B_206C_202C_202C_202C_202E(100f * _206D_200C_200B_202B_206F_206B_206D_202C_200E_200C_202A_206D_202A_202E_202D_200B_200D_202A_200C_206E_206A_202E_206E_200E_206D_206C_206B_200D_202B_206D_202E_206A_200B_206A_200C_200F_202E_206E_200D_200E_202E().FontGlobalScale); - _206A_200D_202B_200C_206B_200E_200C_206F_206F_202B_206A_200D_200F_200B_206C_200C_200D_206D_202A_202E_200E_200D_206C_206F_206B_206E_202D_206E_206F_206A_200E_200C_206D_206B_200F_202E_206B_202D_200C_206B_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-635900307), ref _cycleLimit, 1, 5, default(ImU8String), ImGuiInputTextFlags.None); - int num = ((_cycleLimit >= 0) ? 518935080 : 518935081); - while (true) + ImGui.AlignTextToFramePadding(); + ImGui.TextUnformatted("Cycles:"); + ImGui.SameLine(); + ImGui.SetNextItemWidth(100f * ImGui.GetIO().FontGlobalScale); + ImGui.InputInt("##CycleLimit", ref _cycleLimit, 1, 5); + if (_cycleLimit < 0) { - int num2 = num; - int num3 = 518935080; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 518935081; - break; - case 1: - _cycleLimit = 0; - num = 518935080; - break; - case 0: - _202C_206F_206D_206A_202E_206D_202C_202B_206A_200D_206F_202C_206F_202C_206F_206F_206F_200E_202E_206F_200B_200F_206A_206A_200E_200C_200C_200F_206F_202B_206B_200B_202A_200C_206D_200D_200B_202D_206B_206A_202E(); - _206A_202A_206E_206E_202E_206C_202B_200B_202A_202D_200E_200D_206A_200C_206C_200E_200F_200C_206A_202A_200D_202B_202D_206A_200E_202E_202D_206A_202B_206A_200D_200C_202D_206D_206B_206D_206E_200E_200B_202C_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)((_cycleLimit == 0) ? global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(819549442) : global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1694032531))); - goto end_IL_0091; - } - continue; - end_IL_0091: - break; + _cycleLimit = 0; } + ImGui.SameLine(); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, (_cycleLimit == 0) ? "(unlimited)" : ""); } - finally - { - int num = ((disabledDisposable == null) ? (-2128582760) : (-2128582757)); - while (true) - { - int num7 = num; - int num3 = -2128582758; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 2: - goto end_IL_0134; - case 1: - _202E_200C_202A_200E_206B_200C_202A_206B_206C_202C_200E_202A_206D_200C_202B_206E_206A_206A_200E_206A_200E_200D_206D_202E_206F_200F_206D_206E_200B_206C_206B_200B_202D_206E_200C_200B_200F_202C_200E_202B_202E((IDisposable)disabledDisposable); - num = -2128582760; - break; - case 0: - num = -2128582757; - break; - } - continue; - end_IL_0134: - break; - } - } - _200D_206C_200D_206A_200D_202D_202E_202B_206F_202D_200F_200C_200E_202B_202D_200E_202E_206B_202E_206D_202E_206A_200E_200B_206B_202D_200B_202D_206C_202C_200E_206E_206F_206E_206D_206B_206C_200D_206A_200D_202E(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private void DrawDutyTable() - { - IEnumerable<SeasonalDutyDefinition> source = _seasonalDutyDefinitionRegistry.Definitions.Values; - int num = (_200D_202E_202B_206C_200F_202D_202A_200F_206B_200E_202A_206A_200B_202B_200E_202B_200B_206C_200B_206A_206E_200F_206A_200B_206C_200C_206A_202C_200F_200F_202C_200D_202A_200B_200E_202D_200D_200C_202A_206A_202E(_searchText) ? 753052023 : 753052018); - List<SeasonalDutyDefinition> list = default(List<SeasonalDutyDefinition>); - SeasonalDutyDefinition current = default(SeasonalDutyDefinition); - bool flag = default(bool); - while (true) - { - int num2 = num; - int num3 = 753052019; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - list = source.OrderBy(delegate(SeasonalDutyDefinition d) - { - DateTime? dateTime = _003C_003Ec._200B_206E_202E_206D_206E_200C_200C_200B_206D_200B_202D_206A_200D_200B_202C_202E_202D_206C_200E_200C_200D_206A_200D_200E_200C_206A_200E_206E_200E_200B_202E_202A_202B_200D_206D_206F_200F_202A_206D_202D_202E(d); - int num11 = ((!dateTime.HasValue) ? (-962975575) : (-962975576)); - while (true) - { - int num12 = num11; - int num13 = -962975574; - int num14 = num12; - switch ((num14 | num13) - (num14 & num13)) - { - case 3: - return 1; - case 2: - { - DateTime valueOrDefault = dateTime.GetValueOrDefault(); - num11 = ((!(EventInfoComponent.NormalizeExpiry(valueOrDefault) - DateTime.UtcNow > TimeSpan.Zero)) ? (-962975575) : (-962975573)); - break; - } - case 1: - return 0; - case 0: - num11 = -962975576; - break; - } - } - }).ThenBy(delegate(SeasonalDutyDefinition d) - { - DateTime? dateTime = _003C_003Ec._200B_206E_202E_206D_206E_200C_200C_200B_206D_200B_202D_206A_200D_200B_202C_202E_202D_206C_200E_200C_200D_206A_200D_200E_200C_206A_200E_206E_200E_200B_202E_202A_202B_200D_206D_206F_200F_202A_206D_202D_202E(d); - int num11 = ((!dateTime.HasValue) ? (-1416150355) : (-1416150356)); - TimeSpan timeSpan = default(TimeSpan); - while (true) - { - int num12 = num11; - int num13 = -1416150354; - int num14 = num12; - int num15 = num14 + num13; - int num16 = num14 & num13; - switch (num15 - (num16 + num16)) - { - case 3: - return double.MaxValue; - case 1: - return timeSpan.TotalSeconds; - case 2: - { - DateTime valueOrDefault = dateTime.GetValueOrDefault(); - timeSpan = EventInfoComponent.NormalizeExpiry(valueOrDefault) - DateTime.UtcNow; - num11 = ((!(timeSpan > TimeSpan.Zero)) ? (-1416150355) : (-1416150353)); - break; - } - case 0: - num11 = -1416150356; - break; - } - } - }).ThenBy<SeasonalDutyDefinition, string>((SeasonalDutyDefinition d) => _003C_003Ec._200F_202B_200D_202C_200E_202C_200C_200D_206E_206E_202C_206F_206D_202E_206F_202D_206C_200C_200E_206E_206B_202E_202A_202D_206B_206B_202D_206F_206F_206C_202C_200D_200B_202B_200D_200D_202A_200E_200D_200E_202E(d), _200F_202E_202D_206F_206E_202B_206E_206E_206F_200D_202D_206E_202D_202D_202D_206B_202C_202B_206C_202A_202C_202C_202D_202D_206E_200C_206D_200E_202E_200E_206A_206B_206C_200C_206C_200C_200F_206F_202A_202B_202E()) - .ToList(); - num = ((list.Count != 0) ? 753052017 : 753052019); - break; - case 0: - UiThemeUtils.EmptyState(FontAwesomeIcon.Search, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-469285537)); - return; - case 3: - num = 753052018; - break; - case 1: - source = source.Where(delegate(SeasonalDutyDefinition d) - { - int num11 = (_202B_202C_202B_202A_206B_206A_202C_206D_200E_206D_206C_202C_202D_202C_206A_206C_202C_206F_200C_206F_206F_206A_200B_200D_206A_206B_206D_200E_202E_202C_202C_202B_206F_206B_200B_200E_206A_200E_206D_200E_202E(_200F_200B_200F_200D_202A_202A_206C_202C_202A_202D_200D_200E_202D_200D_200F_202D_200B_200D_202B_202A_200F_206A_200F_206E_206E_202E_200E_202E_206E_202C_202E_206C_202E_206A_202E_206A_202A_202E_200D_200D_202E(d), _searchText, StringComparison.OrdinalIgnoreCase) ? (-1276863877) : (-1276863880)); - while (true) - { - int num12 = num11; - int num13 = -1276863879; - int num14 = num12; - switch ((num14 | num13) - (num14 & num13)) - { - case 0: - goto IL_0052; - case 2: - return true; - case 1: - return _202B_202C_202B_202A_206B_206A_202C_206D_200E_206D_206C_202C_202D_202C_206A_206C_202C_206F_200C_206F_206F_206A_200B_200D_206A_206B_206D_200E_202E_202C_202C_202B_206F_206B_200B_200E_206A_200E_206D_200E_202E(_territoryData.GetName(_200B_202C_206D_200F_200F_200C_206C_200E_200C_206A_200F_206C_200D_200F_206E_200D_206C_202E_200E_202B_200B_206F_206F_206A_206A_200F_206F_200B_206D_200E_200E_200F_202B_200C_200B_206B_206A_200D_200E_202B_202E(d)) ?? _200F_200B_200F_200D_202A_202A_206C_202C_202A_202D_200D_200E_202D_200D_200F_202D_200B_200D_202B_202A_200F_206A_200F_206E_206E_202E_200E_202E_206E_202C_202E_206C_202E_206A_202E_206A_202A_202E_200D_200D_202E(d), _searchText, StringComparison.OrdinalIgnoreCase); - } - continue; - IL_0052: - num11 = -1276863880; - } - }); - num = 753052023; - break; - case 2: - { - using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1054347422), 4, ImGuiTableFlags.SizingStretchProp | ImGuiTableFlags.ScrollY); - num = ((!(!tableDisposable)) ? 537187736 : 537187737); - while (true) - { - int num7 = num; - num3 = 537187736; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_01b9; - case 1: - return; - case 0: - { - _202A_206D_206D_202D_202B_206E_206D_206A_206F_200E_200B_200E_206B_206E_206E_202A_202B_202C_206D_202A_200B_202E_206C_200D_200B_206A_206A_202A_200C_206B_200E_206A_202C_200D_200F_200E_206E_206A_206B_200C_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1033927912), ImGuiTableColumnFlags.None, 3f, 0u); - _202A_206D_206D_202D_202B_206E_206D_206A_206F_200E_200B_200E_206B_206E_206E_202A_202B_202C_206D_202A_200B_202E_206C_200D_200B_206A_206A_202A_200C_206B_200E_206A_202C_200D_200F_200E_206E_206A_206B_200C_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1292973020), ImGuiTableColumnFlags.None, 2f, 0u); - _202A_206D_206D_202D_202B_206E_206D_206A_206F_200E_200B_200E_206B_206E_206E_202A_202B_202C_206D_202A_200B_202E_206C_200D_200B_206A_206A_202A_200C_206B_200E_206A_202C_200D_200F_200E_206E_206A_206B_200C_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1413203702), ImGuiTableColumnFlags.WidthFixed, 80f, 0u); - _202A_206D_206D_202D_202B_206E_206D_206A_206F_200E_200B_200E_206B_206E_206E_202A_202B_202C_206D_202A_200B_202E_206C_200D_200B_206A_206A_202A_200C_206B_200E_206A_202C_200D_200F_200E_206E_206A_206B_200C_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-968495481), ImGuiTableColumnFlags.WidthFixed, 30f, 0u); - _202D_200D_206D_202D_202A_200E_202E_206B_206F_206F_202E_202D_206F_202D_200E_200B_202C_206A_200B_200F_206C_200D_202A_200E_206C_202A_200D_200F_202A_206D_202B_202E_202D_206E_200E_200F_202A_206B_206C_206A_202E(); - using List<SeasonalDutyDefinition>.Enumerator enumerator = list.GetEnumerator(); - num = 647459540; - while (true) - { - int num8 = num; - num3 = 647459542; - num4 = num8; - int num9; - int num10; - bool disabled; - switch ((num4 | num3) - (num4 & num3)) - { - case 8: - num9 = 1; - goto IL_02af; - case 1: - _202E_200B_206A_206E_206C_202C_206C_206B_202A_206C_200E_202E_202B_200C_202D_202C_202D_200F_202D_200D_206A_200F_202E_206A_200B_206D_202E_200C_206E_202B_206D_202D_206D_200D_206C_200D_202E_202A_202E_200F_202E(); - DrawDutyRowName(current, flag); - _202E_200B_206A_206E_206C_202C_206C_206B_202A_206C_200E_202E_202B_200C_202D_202C_202D_200F_202D_200D_206A_200F_202E_206A_200B_206D_202E_200C_206E_202B_206D_202D_206D_200D_206C_200D_202E_202A_202E_200F_202E(); - _200B_202C_206B_202C_202B_206B_200B_202B_206D_200E_202A_202D_202C_206A_206C_206E_200F_200C_200F_202C_206D_206D_202D_206E_206E_202B_206C_206B_202B_200C_202A_206C_202E_202C_202C_200C_206B_202E_206E_202E((ImU8String)(_territoryData.GetName(_200B_202C_206D_200F_200F_200C_206C_200E_200C_206A_200F_206C_200D_200F_206E_200D_206C_202E_200E_202B_200B_206F_206F_206A_206A_200F_206F_200B_206D_200E_200E_200F_202B_200C_200B_206B_206A_200D_200E_202B_202E(current)) ?? _200F_200B_200F_200D_202A_202A_206C_202C_202A_202D_200D_200E_202D_200D_200F_202D_200B_200D_202B_202A_200F_206A_200F_206E_206E_202E_200E_202E_206E_202C_202E_206C_202E_206A_202E_206A_202A_202E_200D_200D_202E(current))); - _202E_200B_206A_206E_206C_202C_206C_206B_202A_206C_200E_202E_202B_200C_202D_202C_202D_200F_202D_200D_206A_200F_202E_206A_200B_206D_202E_200C_206E_202B_206D_202D_206D_200D_206C_200D_202E_202A_202E_200F_202E(); - DrawDutyRowExpiry(current); - _202E_200B_206A_206E_206C_202C_206C_206B_202A_206C_200E_202E_202B_200C_202D_202C_202D_200F_202D_200D_206A_200F_202E_206A_200B_206D_202E_200C_206E_202B_206D_202D_206D_200D_206C_200D_202E_202A_202E_200F_202E(); - num = (_seasonalDutyController.IsRunning ? 647459550 : 647459542); - break; - case 12: - num9 = ((_questController.AutomationType != QuestController.EAutomationType.Manual) ? 1 : 0); - goto IL_02af; - case 9: - num = (_customDeliveryController.IsRunning ? 647459550 : 647459539); - break; - case 2: - num = (enumerator.MoveNext() ? 647459541 : 647459536); - break; - case 10: - num10 = 0; - goto IL_03ae; - case 11: - num10 = ((_seasonalDutyController.CurrentDuty == current) ? 1 : 0); - goto IL_03ae; - case 5: - num = (_attunementController.IsRunning ? 647459550 : 647459546); - break; - case 3: - current = enumerator.Current; - _206E_206E_202E_202B_200F_202E_206A_200D_202A_202E_202A_206F_202D_200E_202A_202A_200C_202C_206A_206A_206F_200F_200F_206A_206D_202C_206B_202B_206F_202B_202C_202B_206E_202E_200B_206E_202D_200C_206C_206D_202E(); - num = ((!_seasonalDutyController.IsRunning) ? 647459548 : 647459549); - break; - case 7: - num = 647459540; - break; - case 4: - _202A_206D_200F_200E_202B_200B_200B_202E_200F_200D_206F_200F_206A_206A_206F_206C_206A_200C_206E_206C_206C_202E_200C_200C_206D_200C_206F_202A_202A_202D_206A_206C_206D_202A_202A_202C_200D_206F_200F_202E(ImGuiTableBgTarget.RowBg0, _200D_202A_200D_200C_202D_200F_206A_206F_206D_200C_202A_206C_200C_200D_202D_202B_202B_206F_206D_202B_206E_202E_200C_200F_200D_200E_202E_206F_206B_202D_206A_206D_206E_200D_202C_206D_200D_202E_202A_200F_202E(UiThemeUtils.AccentDimColor)); - num = 647459543; - break; - case 0: - num = (_fateController.IsRunning ? 647459550 : 647459551); - break; - case 6: - return; - IL_02af: - disabled = (byte)num9 != 0; - DrawDutyRowActions(current, disabled); - num = 647459540; - break; - IL_03ae: - flag = (byte)num10 != 0; - num = ((!flag) ? 647459543 : 647459538); - break; - } - } - } - } - continue; - IL_01b9: - num = 537187737; - } - } - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private void DrawDutyRowName(SeasonalDutyDefinition duty, bool isActive) - { - int num = ((!isActive) ? 42379112 : 42379118); - TimeSpan timeSpan = default(TimeSpan); - while (true) - { - int num2 = num; - int num3 = 42379114; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = 42379118; - break; - case 2: - _200B_202C_206B_202C_202B_206B_200B_202B_206D_200E_202A_202D_202C_206A_206C_206E_200F_200C_200F_202C_206D_206D_202D_206E_206E_202B_206C_206B_202B_200C_202A_206C_202E_202C_202C_200C_206B_202E_206E_202E((ImU8String)_200F_200B_200F_200D_202A_202A_206C_202C_202A_202D_200D_200E_202D_200D_200F_202D_200B_200D_202B_202A_200F_206A_200F_206E_206E_202E_200E_202E_206E_202C_202E_206C_202E_206A_202E_206A_202A_202E_200D_200D_202E(duty)); - num = 42379114; - break; - case 0: - if (_200E_206A_206D_200E_206A_202B_202A_202D_202A_202B_202D_200F_200B_200D_200C_206E_206D_200D_206F_200D_206F_206A_206E_200F_206A_202E_202C_200B_206A_200F_200F_202E_202C_200E_202B_200D_206F_200E_200F_200E_202E()) - { - num = 42379115; - break; - } - return; - case 4: - _206A_202A_206E_206E_202E_206C_202B_200B_202A_202D_200E_200D_206A_200C_206C_200E_200F_200C_206A_202A_200D_202B_202D_206A_200E_202E_202D_206A_202B_206A_200D_200C_202D_206D_206B_206D_206E_200E_200B_202C_202E(ref UiThemeUtils.AccentColor, (ImU8String)_200F_200B_200F_200D_202A_202A_206C_202C_202A_202D_200D_200E_202D_200D_200F_202D_200B_200D_202B_202A_200F_206A_200F_206E_206E_202E_200E_202E_206E_202C_202E_206C_202E_206A_202E_206A_202A_202E_200D_200D_202E(duty)); - num = 42379114; - break; - case 1: - using (_200D_202B_202C_200D_206D_206F_206F_202A_200F_206B_202D_206C_206E_202B_200D_200B_206F_202A_206F_200C_206C_206C_200C_202B_202E_202D_202E_206D_202E_206C_200F_202D_200F_202D_206F_200C_206C_200C_206C_206F_202E()) - { - _206A_202A_206E_206E_202E_206C_202B_200B_202A_202D_200E_200D_206A_200C_206C_200E_200F_200C_206A_202A_200D_202B_202D_206A_200E_202E_202D_206A_202B_206A_200D_200C_202D_206D_206B_206D_206E_200E_200B_202C_202E(ref UiThemeUtils.PrimaryTextColor, (ImU8String)_200F_200B_200F_200D_202A_202A_206C_202C_202A_202D_200D_200E_202D_200D_200F_202D_200B_200D_202B_202A_200F_206A_200F_206E_206E_202E_200E_202E_206E_202C_202E_206C_202E_206A_202E_206A_202A_202E_200D_200D_202E(duty)); - _206E_200C_200D_200F_200C_200F_200C_202B_200B_206A_206B_200B_200F_200E_206B_202C_200B_206D_206C_202A_200C_202A_206B_200C_206C_202D_200C_200E_202D_202C_202C_200C_202C_206A_200C_202B_206A_200E_206F_200F_202E(); - _200D_206C_200D_206A_200D_202D_202E_202B_206F_202D_200F_200C_200E_202B_202D_200E_202E_206B_202E_206D_202E_206A_200E_200B_206B_202D_200B_202D_206C_202C_200E_206E_206F_206E_206D_206B_206C_200D_206A_200D_202E(); - string nameAndId = _territoryData.GetNameAndId(_200B_202C_206D_200F_200F_200C_206C_200E_200C_206A_200F_206C_200D_200F_206E_200D_206C_202E_200E_202B_200B_206F_206F_206A_206A_200F_206F_200B_206D_200E_200E_200F_202B_200C_200B_206B_206A_200D_200E_202B_202E(duty)); - ImU8String imU8String = new ImU8String(6, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(171735185)); - imU8String.AppendFormatted(nameAndId); - _206A_202A_206E_206E_202E_206C_202B_200B_202A_202D_200E_200D_206A_200C_206C_200E_200F_200C_206A_202A_200D_202B_202D_206A_200E_202E_202D_206A_202B_206A_200D_200C_202D_206D_206B_206D_206E_200E_200B_202C_202E(ref UiThemeUtils.DimTextColor, imU8String); - DateTime? dateTime = _200E_202B_206C_202C_206F_202B_206C_202C_206A_200C_206F_202D_200B_200D_202D_202E_206D_206D_200E_206F_200D_202B_200B_206B_206B_206C_206B_206A_206F_202E_206A_206A_206F_202E_202C_202B_200D_200D_202E_202B_202E(duty); - num = ((!dateTime.HasValue) ? 496107524 : 496107525); - while (true) - { - int num5 = num; - num3 = 496107524; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 2: - num = 496107525; - break; - case 3: - { - string text = EventInfoComponent.FormatRemainingFull(timeSpan); - _206A_202A_206E_206E_202E_206C_202B_200B_202A_202D_200E_200D_206A_200C_206C_200E_200F_200C_206A_202A_200D_202B_202D_206A_200E_202E_202D_206A_202B_206A_200D_200C_202D_206D_206B_206D_206E_200E_200B_202C_202E(ref UiThemeUtils.StatusActive, (ImU8String)text); - num = 496107524; - break; - } - case 1: - { - DateTime valueOrDefault = dateTime.GetValueOrDefault(); - timeSpan = EventInfoComponent.NormalizeExpiry(valueOrDefault) - DateTime.UtcNow; - num = ((!(timeSpan > TimeSpan.Zero)) ? 496107524 : 496107527); - break; - } - case 0: - return; - } - } - } - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private static void DrawDutyRowExpiry(SeasonalDutyDefinition duty) - { - DateTime? dateTime = _200E_202B_206C_202C_206F_202B_206C_202C_206A_200C_206F_202D_200B_200D_202D_202E_206D_206D_200E_206F_200D_202B_200B_206B_206B_206C_206B_206A_206F_202E_206A_206A_206F_202E_202C_202B_200D_200D_202E_202B_202E(duty); - int num = ((!dateTime.HasValue) ? 276378103 : 276378100); - TimeSpan timeSpan = default(TimeSpan); - string text = default(string); - while (true) - { - int num2 = num; - int num3 = 276378101; - int num4 = num2; - Vector4 vector; - Vector4 vector2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - _206A_202A_206E_206E_202E_206C_202B_200B_202A_202D_200E_200D_206A_200C_206C_200E_200F_200C_206A_202A_200D_202B_202D_206A_200E_202E_202D_206A_202B_206A_200D_200C_202D_206D_206B_206D_206E_200E_200B_202C_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1934465221)); - return; - case 6: - vector = UiThemeUtils.DimTextColor; - goto IL_00dd; - case 1: - { - DateTime valueOrDefault = dateTime.GetValueOrDefault(); - timeSpan = EventInfoComponent.NormalizeExpiry(valueOrDefault) - DateTime.UtcNow; - num = ((!(timeSpan > TimeSpan.Zero)) ? 276378096 : 276378102); - break; - } - case 4: - vector = UiThemeUtils.StatusActive; - goto IL_00dd; - case 3: - text = EventInfoComponent.FormatRemainingDays(timeSpan); - num = ((timeSpan.TotalDays < 3.0) ? 276378097 : 276378099); - break; - case 2: - _206A_202A_206E_206E_202E_206C_202B_200B_202A_202D_200E_200D_206A_200C_206C_200E_200F_200C_206A_202A_200D_202B_202D_206A_200E_202E_202D_206A_202B_206A_200D_200C_202D_206D_206B_206D_206E_200E_200B_202C_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1003139805)); - return; - case 0: - { - num = 276378100; - break; - } - IL_00dd: - vector2 = vector; - _206A_202A_206E_206E_202E_206C_202B_200B_202A_202D_200E_200D_206A_200C_206C_200E_200F_200C_206A_202A_200D_202B_202D_206A_200E_202E_202D_206A_202B_206A_200D_200C_202D_206D_206B_206D_206E_200E_200B_202C_202E(ref vector2, (ImU8String)text); - return; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private void DrawDutyRowActions(SeasonalDutyDefinition duty, bool disabled) - { - int num = ((!_206B_206E_206E_202A_200B_206B_206B_202D_206B_206D_206C_206F_202D_200D_202D_202D_202E_200F_200C_206E_206B_202A_206D_206D_200B_200E_200F_206B_200C_202D_206B_200E_202A_206E_200C_206C_200E_202D_200B_202A_202E(duty).HasValue) ? 1123314337 : 1123314338); - int num5; - while (true) - { - int num2 = num; - int num3 = 1123314339; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 0: - goto IL_0057; - case 1: - num5 = ((!_questFunctions.IsQuestComplete(_202C_202D_206F_206B_200E_202E_200E_206E_200C_206D_200F_200C_200F_202A_200D_206F_202B_206F_206F_200E_200E_200F_206C_206F_206D_206B_202B_206B_202D_206B_206B_206E_200D_206C_202B_206F_200C_206C_200F_206D_202E(_206B_206E_206E_202A_200B_206B_206B_202D_206B_206D_206C_206F_202D_200D_202D_202D_202E_200F_200C_206E_206B_202A_206D_206D_200B_200E_200F_206B_200C_202D_206B_200E_202A_206E_200C_206C_200E_202D_200B_202A_202E(duty).Value))) ? 1 : 0); - break; - case 2: - num5 = 0; - break; - } - break; - IL_0057: - num = 1123314338; - } - bool flag = (byte)num5 != 0; - ImU8String imU8String = new ImU8String(5, 1); - imU8String.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1915178109)); - imU8String.AppendFormatted(_200F_200B_200F_200D_202A_202A_206C_202C_202A_202D_200D_200E_202D_200D_200F_202D_200B_200D_202B_202A_200F_206A_200F_206E_206E_202E_200E_202E_206E_202C_202E_206C_202E_206A_202E_206A_202A_202E_200D_200D_202E(duty)); - ImRaii.IdDisposable idDisposable = _206A_206B_200E_206B_206E_200F_206E_206C_206C_200C_206E_200D_202A_206A_200E_206C_200C_206D_200E_200E_202C_206F_200D_206D_206B_200D_202D_206E_206A_202B_200E_202D_202E_206D_202E_202B_206F_206E_202E_200E_202E(imU8String, true); - try - { - if (flag) - { - ImRaii.FontDisposable fontDisposable = _202A_206C_200E_206D_202E_202E_202A_200E_202A_206D_200E_202B_202A_200E_202C_200F_202A_206D_206C_200C_200F_200B_200F_200D_200F_200C_206F_206F_206D_200C_206E_206E_202A_206A_200C_206D_202B_206B_202B_206A_202E(_200B_202C_200C_200F_206F_200B_206C_202E_200D_200D_202A_206A_202D_200D_206E_206B_202B_206A_206E_206E_206D_200B_200E_202C_206C_206B_200B_202A_202E_202A_200D_206E_200B_200E_206A_206B_206D_202B_200C_206D_202E(), true); - try - { - _206A_202A_206E_206E_202E_206C_202B_200B_202A_202D_200E_200D_206A_200C_206C_200E_200F_200C_206A_202A_200D_202B_202D_206A_200E_202E_202D_206A_202B_206A_200D_200C_202D_206D_206B_206D_206E_200E_200B_202C_202E(ref UiThemeUtils.StatusLocked, (ImU8String)_206C_200E_202C_202B_206D_200D_202A_200D_202D_202A_202D_202D_202C_202C_202A_202D_206A_200C_206C_200F_202B_202E_200C_206B_202E_200B_202C_202B_206B_200D_202C_200B_206C_202B_202B_202C_202D_200D_200E_206D_202E(FontAwesomeIcon.Times)); - } - finally - { - num = ((fontDisposable == null) ? (-1842369958) : (-1842369959)); - while (true) - { - int num6 = num; - int num3 = -1842369957; - int num4 = num6; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1842369959; - break; - case 2: - _202E_200C_202A_200E_206B_200C_202A_206B_206C_202C_200E_202A_206D_200C_202B_206E_206A_206A_200E_206A_200E_200D_206D_202E_206F_200F_206D_206E_200B_206C_206B_200B_202D_206E_200C_200B_200F_202C_200E_202B_202E((IDisposable)fontDisposable); - num = -1842369958; - break; - case 1: - goto end_IL_0116; - } - continue; - end_IL_0116: - break; - } - } - if (!_200E_206A_206D_200E_206A_202B_202A_202D_202A_202B_202D_200F_200B_200D_200C_206E_206D_200D_206F_200D_206F_206A_206E_200F_206A_202E_202C_200B_206A_200F_200F_202E_202C_200E_202B_200D_206F_200E_200F_200E_202E()) - { - return; - } - num = 1440609874; - string text; - IQuestInfo questInfo = default(IQuestInfo); - while (true) - { - int num7 = num; - int num3 = 1440609872; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 0: - num = 1440609874; - continue; - case 3: - text = _206B_206E_206E_202A_200B_206B_206B_202D_206B_206D_206C_206F_202D_200D_202D_202D_202E_200F_200C_206E_206B_202A_206D_206D_200B_200E_200F_206B_200C_202D_206B_200E_202A_206E_200C_206C_200E_202D_200B_202A_202E(duty).Value.ToString(_206D_206B_206E_200D_206D_200F_206D_206A_206E_206B_206B_200C_200E_202B_200E_200F_200D_206B_202B_202C_200D_206F_202D_202E_206F_202B_202A_200F_206E_202D_206C_206F_206E_200D_206F_200B_202D_206C_206E_206B_202E()); - break; - case 2: - num = (_questData.TryGetQuestInfo(_202C_202D_206F_206B_200E_202E_200E_206E_200C_206D_200F_200C_200F_202A_200D_206F_202B_206F_206F_200E_200E_200F_206C_206F_206D_206B_202B_206B_202D_206B_206B_206E_200D_206C_202B_206F_200C_206C_200F_206D_202E(_206B_206E_206E_202A_200B_206B_206B_202D_206B_206D_206C_206F_202D_200D_202D_202D_202E_200F_200C_206E_206B_202A_206D_206D_200B_200E_200F_206B_200C_202D_206B_200E_202A_206E_200C_206C_200E_202D_200B_202A_202E(duty).Value), out questInfo) ? 1440609873 : 1440609875); - continue; - case 1: - text = questInfo.Name; - break; - } - break; - } - string value = text; - ImU8String imU8String2 = new ImU8String(33, 1); - imU8String2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1729187626)); - imU8String2.AppendFormatted(value); - imU8String2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-437224182)); - _206E_200F_202B_200C_206D_206C_202C_206D_202C_202D_206F_200D_206B_206C_206A_202A_206A_206C_200C_206B_206D_200C_200E_206A_200F_200E_206A_202D_206D_200D_200B_206B_206A_200C_200D_200D_200E_200C_206F_202E_202E(imU8String2); - return; - } - ImRaii.DisabledDisposable disabledDisposable = _206E_202C_200C_200C_202C_206D_206E_202E_206E_200D_202A_200E_200C_206C_202E_202B_202D_206D_200F_202C_200C_200C_206B_200F_206E_202A_206B_200D_202E_206B_200E_202B_202E_200D_206A_200F_206E_200D_200E_206F_202E(disabled); - try - { - ImRaii.ColorDisposable colorDisposable = _200D_200E_206F_202A_206A_202C_202D_206A_200E_200B_202A_206C_200F_206B_200E_206E_206F_202A_206F_200F_202A_202B_200C_202E_206F_202D_202A_202E_206D_206C_200D_202C_206C_206E_206F_200F_200E_200B_202E_202C_202E(ImGuiCol.Button, UiThemeUtils.PlayButtonColor, true); - try - { - ImRaii.ColorDisposable colorDisposable2 = _200D_200E_206F_202A_206A_202C_202D_206A_200E_200B_202A_206C_200F_206B_200E_206E_206F_202A_206F_200F_202A_202B_200C_202E_206F_202D_202A_202E_206D_206C_200D_202C_206C_206E_206F_200F_200E_200B_202E_202C_202E(ImGuiCol.ButtonHovered, UiThemeUtils.PlayButtonHover, true); - try - { - ImRaii.ColorDisposable colorDisposable3 = _200D_200E_206F_202A_206A_202C_202D_206A_200E_200B_202A_206C_200F_206B_200E_206E_206F_202A_206F_200F_202A_202B_200C_202E_206F_202D_202A_202E_206D_206C_200D_202C_206C_206E_206F_200F_200E_200B_202E_202C_202E(ImGuiCol.ButtonActive, UiThemeUtils.PlayButtonActive, true); - try - { - ImRaii.ColorDisposable colorDisposable4 = _200D_200E_206F_202A_206A_202C_202D_206A_200E_200B_202A_206C_200F_206B_200E_206E_206F_202A_206F_200F_202A_202B_200C_202E_206F_202D_202A_202E_206D_206C_200D_202C_206C_206E_206F_200F_200E_200B_202E_202C_202E(ImGuiCol.Text, UiThemeUtils.PlayButtonText, true); - try - { - num = ((!UiThemeUtils.IconButton(FontAwesomeIcon.Play, _206B_202A_206B_206D_202B_206C_200C_206D_206F_206A_206D_200B_206B_200F_202D_202C_202C_206A_200B_206F_200E_206A_200D_202B_202D_206A_200C_206F_200D_202A_202B_206C_206C_202C_200B_206D_206A_206C_200B_206D_202E())) ? 1149444299 : 1149444296); - while (true) - { - int num8 = num; - int num3 = 1149444297; - int num4 = num8; - int? obj; - int? cycleLimit; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - obj = _cycleLimit; - goto IL_0316; - case 1: - _movementController.Stop(); - _questController.Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1439824701)); - _fateController.Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(876679288)); - _customDeliveryController.Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(876679288)); - _attunementController.Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(379838828)); - num = ((_cycleLimit > 0) ? 1149444297 : 1149444298); - break; - case 4: - num = 1149444296; - break; - case 3: - obj = null; - goto IL_0316; - case 2: - goto end_IL_02d7; - IL_0316: - cycleLimit = obj; - _seasonalDutyController.Start(duty, cycleLimit); - num = 1149444299; - break; - } - continue; - end_IL_02d7: - break; - } - } - finally - { - num = ((colorDisposable4 == null) ? (-4307083) : (-4307084)); - while (true) - { - int num9 = num; - int num3 = -4307083; - int num4 = num9; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -4307084; - break; - case 0: - goto end_IL_0400; - case 1: - _202E_200C_202A_200E_206B_200C_202A_206B_206C_202C_200E_202A_206D_200C_202B_206E_206A_206A_200E_206A_200E_200D_206D_202E_206F_200F_206D_206E_200B_206C_206B_200B_202D_206E_200C_200B_200F_202C_200E_202B_202E((IDisposable)colorDisposable4); - num = -4307083; - break; - } - continue; - end_IL_0400: - break; - } - } - } - finally - { - num = ((colorDisposable3 == null) ? (-1530773788) : (-1530773787)); - while (true) - { - int num10 = num; - int num3 = -1530773788; - int num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1530773787; - break; - case 1: - _202E_200C_202A_200E_206B_200C_202A_206B_206C_202C_200E_202A_206D_200C_202B_206E_206A_206A_200E_206A_200E_200D_206D_202E_206F_200F_206D_206E_200B_206C_206B_200B_202D_206E_200C_200B_200F_202C_200E_202B_202E((IDisposable)colorDisposable3); - num = -1530773788; - break; - case 0: - goto end_IL_046b; - } - continue; - end_IL_046b: - break; - } - } - } - finally - { - num = ((colorDisposable2 == null) ? 1772701694 : 1772701693); - while (true) - { - int num11 = num; - int num3 = 1772701695; - int num4 = num11; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - goto end_IL_04d6; - case 2: - _202E_200C_202A_200E_206B_200C_202A_206B_206C_202C_200E_202A_206D_200C_202B_206E_206A_206A_200E_206A_200E_200D_206D_202E_206F_200F_206D_206E_200B_206C_206B_200B_202D_206E_200C_200B_200F_202C_200E_202B_202E((IDisposable)colorDisposable2); - num = 1772701694; - break; - case 0: - num = 1772701693; - break; - } - continue; - end_IL_04d6: - break; - } - } - } - finally - { - num = ((colorDisposable == null) ? (-1789084300) : (-1789084299)); - while (true) - { - int num12 = num; - int num3 = -1789084300; - int num4 = num12; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_0541; - case 1: - _202E_200C_202A_200E_206B_200C_202A_206B_206C_202C_200E_202A_206D_200C_202B_206E_206A_206A_200E_206A_200E_200D_206D_202E_206F_200F_206D_206E_200B_206C_206B_200B_202D_206E_200C_200B_200F_202C_200E_202B_202E((IDisposable)colorDisposable); - num = -1789084300; - break; - case 2: - num = -1789084299; - break; - } - continue; - end_IL_0541: - break; - } - } - } - finally - { - num = ((disabledDisposable == null) ? 1694425464 : 1694425465); - while (true) - { - int num13 = num; - int num3 = 1694425464; - int num4 = num13; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_05ac; - case 1: - _202E_200C_202A_200E_206B_200C_202A_206B_206C_202C_200E_202A_206D_200C_202B_206E_206A_206A_200E_206A_200E_200D_206D_202E_206F_200F_206D_206E_200B_206C_206B_200B_202D_206E_200C_200B_200F_202C_200E_202B_202E((IDisposable)disabledDisposable); - num = 1694425464; - break; - case 2: - num = 1694425465; - break; - } - continue; - end_IL_05ac: - break; - } - } - num = ((!disabled) ? (-1979708782) : (-1979708771)); - while (true) - { - int num14 = num; - int num3 = -1979708775; - int num4 = num14; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - num = -1979708771; - break; - case 8: - _206E_200F_202B_200C_206D_206C_202C_206D_202C_202D_206F_200D_206B_206C_206A_202A_206A_206C_200C_206B_206D_200C_200E_206A_200F_200E_206A_202D_206D_200D_200B_206B_206A_200C_200D_200D_200E_200C_206F_202E_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-623887397)); - return; - case 3: - _206E_200F_202B_200C_206D_206C_202C_206D_202C_202D_206F_200D_206B_206C_206A_202A_206A_206C_200C_206B_206D_200C_200E_206A_200F_200E_206A_202D_206D_200D_200B_206B_206A_200C_200D_200D_200E_200C_206F_202E_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(2098903468)); - num = -1979708782; - break; - case 4: - num = ((!_202A_206D_206B_200B_200B_202C_200C_206A_200F_200B_200F_202B_206F_202E_200C_202E_206A_206A_202A_200C_202E_200C_206C_202B_200B_206E_200B_202C_200B_200D_206F_200B_202C_206A_202A_200F_202A_202B_202E_202D_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? (-1979708782) : (-1979708772)); - break; - case 0: - num = ((!_customDeliveryController.IsRunning) ? (-1979708770) : (-1979708784)); - break; - case 5: - num = ((!_seasonalDutyController.IsRunning) ? (-1979708781) : (-1979708783)); - break; - case 10: - num = ((!_fateController.IsRunning) ? (-1979708775) : (-1979708773)); - break; - case 2: - _206E_200F_202B_200C_206D_206C_202C_206D_202C_202D_206F_200D_206B_206C_206A_202A_206A_206C_200C_206B_206D_200C_200E_206A_200F_200E_206A_202D_206D_200D_200B_206B_206A_200C_200D_200D_200E_200C_206F_202E_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1380062247)); - return; - case 9: - _206E_200F_202B_200C_206D_206C_202C_206D_202C_202D_206F_200D_206B_206C_206A_202A_206A_206C_200C_206B_206D_200C_200E_206A_200F_200E_206A_202D_206D_200D_200B_206B_206A_200C_200D_200D_200E_200C_206F_202E_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(445846488)); - return; - case 1: - _206E_200F_202B_200C_206D_206C_202C_206D_202C_202D_206F_200D_206B_206C_206A_202A_206A_206C_200C_206B_206D_200C_200E_206A_200F_200E_206A_202D_206D_200D_200B_206B_206A_200C_200D_200D_200E_200C_206F_202E_202E((ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(513315487)); - return; - case 7: - num = ((!_attunementController.IsRunning) ? (-1979708774) : (-1979708776)); - break; - case 11: - return; - } - } - } - finally - { - num = ((idDisposable == null) ? (-1463456728) : (-1463456727)); - while (true) - { - int num15 = num; - int num3 = -1463456728; - int num4 = num15; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1463456727; - break; - case 1: - _202E_200C_202A_200E_206B_200C_202A_206B_206C_202C_200E_202A_206D_200C_202B_206E_206A_206A_200E_206A_200E_200D_206D_202E_206F_200F_206D_206E_200B_206C_206B_200B_202D_206E_200C_200B_200F_202C_200E_202B_202E((IDisposable)idDisposable); - num = -1463456728; - break; - case 0: - goto end_IL_0810; - } - continue; - end_IL_0810: - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - private static string FormatElapsed(TimeSpan elapsed) - { - int num = ((!(elapsed.TotalHours >= 1.0)) ? (-1232601948) : (-1232601945)); - while (true) - { - int num2 = num; - int num3 = -1232601947; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - num = ((!(elapsed.TotalMinutes >= 1.0)) ? (-1232601947) : (-1232601946)); - break; - case 2: - { - IFormatProvider formatProvider = _206D_206B_206E_200D_206D_200F_206D_206A_206E_206B_206B_200C_200E_202B_200E_200F_200D_206B_202B_202C_200D_206F_202D_202E_206F_202B_202A_200F_206E_202D_206C_206F_206E_200D_206F_200B_202D_206C_206E_206B_202E(); - IFormatProvider formatProvider4 = formatProvider; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(5, 3, formatProvider); - defaultInterpolatedStringHandler3.AppendFormatted((int)elapsed.TotalHours); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-794677548)); - defaultInterpolatedStringHandler3.AppendFormatted(elapsed.Minutes, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1194352829)); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1016237535)); - defaultInterpolatedStringHandler3.AppendFormatted(elapsed.Seconds, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1462241587)); - defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-838706236)); - return _202A_200C_206A_206D_206F_200B_200B_202E_202C_202B_200B_206F_206F_202B_202D_206F_202B_206D_200B_206A_200C_200C_206C_206E_206E_202B_206B_202D_206A_206B_202C_200D_206A_200D_206B_200E_202D_202B_206A_206D_202E(formatProvider4, ref defaultInterpolatedStringHandler3); - } - case 4: - num = -1232601945; - break; - case 3: - { - IFormatProvider formatProvider = _206D_206B_206E_200D_206D_200F_206D_206A_206E_206B_206B_200C_200E_202B_200E_200F_200D_206B_202B_202C_200D_206F_202D_202E_206F_202B_202A_200F_206E_202D_206C_206F_206E_200D_206F_200B_202D_206C_206E_206B_202E(); - IFormatProvider formatProvider3 = formatProvider; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(3, 2, formatProvider); - defaultInterpolatedStringHandler2.AppendFormatted((int)elapsed.TotalMinutes); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1003686810)); - defaultInterpolatedStringHandler2.AppendFormatted(elapsed.Seconds, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1956092384)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1658952639)); - return _202A_200C_206A_206D_206F_200B_200B_202E_202C_202B_200B_206F_206F_202B_202D_206F_202B_206D_200B_206A_200C_200C_206C_206E_206E_202B_206B_202D_206A_206B_202C_200D_206A_200D_206B_200E_202D_202B_206A_206D_202E(formatProvider3, ref defaultInterpolatedStringHandler2); - } - case 0: - { - IFormatProvider formatProvider = _206D_206B_206E_200D_206D_200F_206D_206A_206E_206B_206B_200C_200E_202B_200E_200F_200D_206B_202B_202C_200D_206F_202D_202E_206F_202B_202A_200F_206E_202D_206C_206F_206E_200D_206F_200B_202D_206C_206E_206B_202E(); - IFormatProvider formatProvider2 = formatProvider; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(1, 1, formatProvider); - defaultInterpolatedStringHandler.AppendFormatted(elapsed.Seconds); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-838706236)); - return _202A_200C_206A_206D_206F_200B_200B_202E_202C_202B_200B_206F_206F_202B_202D_206F_202B_206D_200B_206A_200C_200C_206C_206E_206E_202B_206B_202D_206A_206B_202C_200D_206A_200D_206B_200E_202D_202B_206A_206D_202E(formatProvider2, ref defaultInterpolatedStringHandler); - } - } - } - } - - void _206A_202B_200C_202B_206D_200C_200E_202B_206F_200D_206E_200D_202A_200E_202E_202C_206D_206A_206E_202A_202B_202B_206C_202A_202D_206C_202E_202E_202E_202A_202E_206C_200E_202C_200D_200B_200C_206E_202C_202E_202E(Vector2? P_0) - { - base.Size = P_0; - } - - void _206D_200E_200D_200C_206B_202E_206B_200B_206E_200B_200B_206B_200D_200B_202D_200B_202D_202C_200C_200E_200D_202A_200F_200F_206F_202C_202C_200F_206B_206E_202B_200B_200B_206F_202A_202D_202D_200B_200D_202A_202E(ImGuiCond P_0) - { - base.SizeCondition = P_0; - } - - void _200D_200F_206D_206D_200D_206B_206E_202A_206B_206A_202B_206D_206C_202A_206A_206F_200C_202B_206F_202B_202A_202B_206F_202B_206A_202D_200F_206E_202B_202B_200F_200F_206C_206A_200E_206B_200F_202B_206A_200F_202E(WindowSizeConstraints? P_0) - { - base.SizeConstraints = P_0; - } - - static void _200D_206C_200D_206A_200D_202D_202E_202B_206F_202D_200F_200C_200E_202B_202D_200E_202E_206B_202E_206D_202E_206A_200E_200B_206B_202D_200B_202D_206C_202C_200E_206E_206F_206E_206D_206B_206C_200D_206A_200D_202E() - { ImGui.Spacing(); } - static string _200F_200B_200F_200D_202A_202A_206C_202C_202A_202D_200D_200E_202D_200D_200F_202D_200B_200D_202B_202A_200F_206A_200F_206E_206E_202E_200E_202E_206E_202C_202E_206C_202E_206A_202E_206A_202A_202E_200D_200D_202E(SeasonalDutyDefinition P_0) - { - return P_0.Name; - } - - static int _200F_206A_206C_200D_200C_206A_200F_202E_202E_206B_200F_202A_206B_202A_200F_202D_202B_206B_202C_200D_200E_202E_206A_202E_200C_206D_200C_202B_200E_200F_202A_206F_202E_202A_200D_206A_206C_206A_206B_202B_202E(string P_0) - { - return P_0.Length; - } - - static ImRaii.DisabledDisposable _206E_202C_200C_200C_202C_206D_206E_202E_206E_200D_202A_200E_200C_206C_202E_202B_202D_206D_200F_202C_200C_200C_206B_200F_206E_202A_206B_200D_202E_206B_200E_202B_202E_200D_206A_200F_206E_200D_200E_206F_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static void _206A_200F_206F_206D_206C_200C_206F_202E_206C_206E_202A_200E_200F_206F_202B_206E_202A_206F_200F_206F_202A_200E_202A_206B_202E_206E_202B_206C_200B_202B_202E_206C_200C_206B_206E_200E_200B_206B_202C_206C_202E() - { - ImGui.AlignTextToFramePadding(); - } - - static void _200B_202C_206B_202C_202B_206B_200B_202B_206D_200E_202A_202D_202C_206A_206C_206E_200F_200C_200F_202C_206D_206D_202D_206E_206E_202B_206C_206B_202B_200C_202A_206C_202E_202C_202C_200C_206B_202E_206E_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static void _202C_206F_206D_206A_202E_206D_202C_202B_206A_200D_206F_202C_206F_202C_206F_206F_206F_200E_202E_206F_200B_200F_206A_206A_200E_200C_200C_200F_206F_202B_206B_200B_202A_200C_206D_200D_200B_202D_206B_206A_202E() - { - ImGui.SameLine(); - } - - static ImGuiIOPtr _206D_200C_200B_202B_206F_206B_206D_202C_200E_200C_202A_206D_202A_202E_202D_200B_200D_202A_200C_206E_206A_202E_206E_200E_206D_206C_206B_200D_202B_206D_202E_206A_200B_206A_200C_200F_202E_206E_200D_200E_202E() - { - return ImGui.GetIO(); - } - - static void _202B_200F_206F_202D_206C_200B_202E_202D_200E_200D_200C_200F_202B_206F_200F_200B_200D_200C_200C_202E_206B_206A_202C_200B_200D_206D_200C_202A_202C_202D_200D_202B_202E_206D_206F_206B_206C_202C_202C_202C_202E(float P_0) - { - ImGui.SetNextItemWidth(P_0); - } - - static bool _206A_200D_202B_200C_206B_200E_200C_206F_206F_202B_206A_200D_200F_200B_206C_200C_200D_206D_202A_202E_200E_200D_206C_206F_206B_206E_202D_206E_206F_206A_200E_200C_206D_206B_200F_202E_206B_202D_200C_206B_202E(ImU8String P_0, ref int P_1, int P_2, int P_3, ImU8String P_4, ImGuiInputTextFlags P_5) - { - return ImGui.InputInt(P_0, ref P_1, P_2, P_3, P_4, P_5); - } - - static void _206A_202A_206E_206E_202E_206C_202B_200B_202A_202D_200E_200D_206A_200C_206C_200E_200F_200C_206A_202A_200D_202B_202D_206A_200E_202E_202D_206A_202B_206A_200D_200C_202D_206D_206B_206D_206E_200E_200B_202C_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static void _202E_200C_202A_200E_206B_200C_202A_206B_206C_202C_200E_202A_206D_200C_202B_206E_206A_206A_200E_206A_200E_200D_206D_202E_206F_200F_206D_206E_200B_206C_206B_200B_202D_206E_200C_200B_200F_202C_200E_202B_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool _200D_202E_202B_206C_200F_202D_202A_200F_206B_200E_202A_206A_200B_202B_200E_202B_200B_206C_200B_206A_206E_200F_206A_200B_206C_200C_206A_202C_200F_200F_202C_200D_202A_200B_200E_202D_200D_200C_202A_206A_202E(string P_0) - { - return string.IsNullOrWhiteSpace(P_0); - } - - static StringComparer _200F_202E_202D_206F_206E_202B_206E_206E_206F_200D_202D_206E_202D_202D_202D_206B_202C_202B_206C_202A_202C_202C_202D_202D_206E_200C_206D_200E_202E_200E_206A_206B_206C_200C_206C_200C_200F_206F_202A_202B_202E() - { - return StringComparer.OrdinalIgnoreCase; - } - - static void _202A_206D_206D_202D_202B_206E_206D_206A_206F_200E_200B_200E_206B_206E_206E_202A_202B_202C_206D_202A_200B_202E_206C_200D_200B_206A_206A_202A_200C_206B_200E_206A_202C_200D_200F_200E_206E_206A_206B_200C_202E(ImU8String P_0, ImGuiTableColumnFlags P_1, float P_2, uint P_3) - { - ImGui.TableSetupColumn(P_0, P_1, P_2, P_3); - } - - static void _202D_200D_206D_202D_202A_200E_202E_206B_206F_206F_202E_202D_206F_202D_200E_200B_202C_206A_200B_200F_206C_200D_202A_200E_206C_202A_200D_200F_202A_206D_202B_202E_202D_206E_200E_200F_202A_206B_206C_206A_202E() + private void DrawDutyTable() { + IEnumerable<SeasonalDutyDefinition> source = _seasonalDutyDefinitionRegistry.Definitions.Values; + if (!string.IsNullOrWhiteSpace(_searchText)) + { + source = source.Where((SeasonalDutyDefinition d) => d.Name.Contains(_searchText, StringComparison.OrdinalIgnoreCase) || (_territoryData.GetName(d.TerritoryId) ?? d.Name).Contains(_searchText, StringComparison.OrdinalIgnoreCase)); + } + List<SeasonalDutyDefinition> list = source.OrderBy(delegate(SeasonalDutyDefinition d) + { + DateTime? eventExpiry = d.EventExpiry; + if (eventExpiry.HasValue) + { + DateTime valueOrDefault = eventExpiry.GetValueOrDefault(); + if (EventInfoComponent.NormalizeExpiry(valueOrDefault) - DateTime.UtcNow > TimeSpan.Zero) + { + return 0; + } + } + return 1; + }).ThenBy(delegate(SeasonalDutyDefinition d) + { + DateTime? eventExpiry = d.EventExpiry; + if (eventExpiry.HasValue) + { + DateTime valueOrDefault = eventExpiry.GetValueOrDefault(); + TimeSpan timeSpan = EventInfoComponent.NormalizeExpiry(valueOrDefault) - DateTime.UtcNow; + if (timeSpan > TimeSpan.Zero) + { + return timeSpan.TotalSeconds; + } + } + return double.MaxValue; + }).ThenBy<SeasonalDutyDefinition, string>((SeasonalDutyDefinition d) => d.Name, StringComparer.OrdinalIgnoreCase) + .ToList(); + if (list.Count == 0) + { + UiThemeUtils.EmptyState(FontAwesomeIcon.Search, "No duties match your search."); + return; + } + using ImRaii.TableDisposable tableDisposable = UiThemeUtils.BeginThemedTable("SeasonalDutyTable", 4, ImGuiTableFlags.SizingStretchProp | ImGuiTableFlags.ScrollY); + if (!tableDisposable) + { + return; + } + ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.None, 3f); + ImGui.TableSetupColumn("Zone", ImGuiTableColumnFlags.None, 2f); + ImGui.TableSetupColumn("Expiry", ImGuiTableColumnFlags.WidthFixed, 80f); + ImGui.TableSetupColumn("##Actions", ImGuiTableColumnFlags.WidthFixed, 30f); ImGui.TableHeadersRow(); + foreach (SeasonalDutyDefinition item in list) + { + ImGui.TableNextRow(); + bool flag = _seasonalDutyController.IsRunning && _seasonalDutyController.CurrentDuty == item; + if (flag) + { + ImGui.TableSetBgColor(ImGuiTableBgTarget.RowBg0, ImGui.ColorConvertFloat4ToU32(UiThemeUtils.AccentDimColor)); + } + ImGui.TableNextColumn(); + DrawDutyRowName(item, flag); + ImGui.TableNextColumn(); + ImGui.TextUnformatted(_territoryData.GetName(item.TerritoryId) ?? item.Name); + ImGui.TableNextColumn(); + DrawDutyRowExpiry(item); + ImGui.TableNextColumn(); + bool disabled = _seasonalDutyController.IsRunning || _fateController.IsRunning || _customDeliveryController.IsRunning || _attunementController.IsRunning || _questController.AutomationType != QuestController.EAutomationType.Manual; + DrawDutyRowActions(item, disabled); + } } - static void _206E_206E_202E_202B_200F_202E_206A_200D_202A_202E_202A_206F_202D_200E_202A_202A_200C_202C_206A_206A_206F_200F_200F_206A_206D_202C_206B_202B_206F_202B_202C_202B_206E_202E_200B_206E_202D_200C_206C_206D_202E() + private void DrawDutyRowName(SeasonalDutyDefinition duty, bool isActive) { - ImGui.TableNextRow(); + if (isActive) + { + ImGui.TextColored(in UiThemeUtils.AccentColor, duty.Name); + } + else + { + ImGui.TextUnformatted(duty.Name); + } + if (!ImGui.IsItemHovered()) + { + return; + } + using (ImRaii.Tooltip()) + { + ImGui.TextColored(in UiThemeUtils.PrimaryTextColor, duty.Name); + ImGui.Separator(); + ImGui.Spacing(); + string nameAndId = _territoryData.GetNameAndId(duty.TerritoryId); + ImU8String text = new ImU8String(6, 1); + text.AppendLiteral("Zone: "); + text.AppendFormatted(nameAndId); + ImGui.TextColored(in UiThemeUtils.DimTextColor, text); + DateTime? eventExpiry = duty.EventExpiry; + if (eventExpiry.HasValue) + { + DateTime valueOrDefault = eventExpiry.GetValueOrDefault(); + TimeSpan timeSpan = EventInfoComponent.NormalizeExpiry(valueOrDefault) - DateTime.UtcNow; + if (timeSpan > TimeSpan.Zero) + { + string text2 = EventInfoComponent.FormatRemainingFull(timeSpan); + ImGui.TextColored(in UiThemeUtils.StatusActive, text2); + } + } + } } - static uint _200D_202A_200D_200C_202D_200F_206A_206F_206D_200C_202A_206C_200C_200D_202D_202B_202B_206F_206D_202B_206E_202E_200C_200F_200D_200E_202E_206F_206B_202D_206A_206D_206E_200D_202C_206D_200D_202E_202A_200F_202E(Vector4 P_0) + private static void DrawDutyRowExpiry(SeasonalDutyDefinition duty) { - return ImGui.ColorConvertFloat4ToU32(P_0); + DateTime? eventExpiry = duty.EventExpiry; + if (eventExpiry.HasValue) + { + DateTime valueOrDefault = eventExpiry.GetValueOrDefault(); + TimeSpan timeSpan = EventInfoComponent.NormalizeExpiry(valueOrDefault) - DateTime.UtcNow; + if (timeSpan > TimeSpan.Zero) + { + string text = EventInfoComponent.FormatRemainingDays(timeSpan); + ImGui.TextColored((timeSpan.TotalDays < 3.0) ? UiThemeUtils.StatusActive : UiThemeUtils.DimTextColor, text); + } + else + { + ImGui.TextColored(in UiThemeUtils.MutedTextColor, "Expired"); + } + } + else + { + ImGui.TextColored(in UiThemeUtils.MutedTextColor, "--"); + } } - static void _202A_206D_200F_200E_202B_200B_200B_202E_200F_200D_206F_200F_206A_206A_206F_206C_206A_200C_206E_206C_206C_202E_200C_200C_206D_200C_206F_202A_202A_202D_206A_206C_206D_202A_202A_202C_200D_206F_200F_202E(ImGuiTableBgTarget P_0, uint P_1) + private void DrawDutyRowActions(SeasonalDutyDefinition duty, bool disabled) { - ImGui.TableSetBgColor(P_0, P_1); + bool flag = duty.RequiredQuestId.HasValue && !_questFunctions.IsQuestComplete(new QuestId(duty.RequiredQuestId.Value)); + ImU8String id = new ImU8String(5, 1); + id.AppendLiteral("duty_"); + id.AppendFormatted(duty.Name); + using (ImRaii.PushId(id)) + { + if (flag) + { + using (ImRaii.PushFont(UiBuilder.IconFont)) + { + ImGui.TextColored(in UiThemeUtils.StatusLocked, FontAwesomeIcon.Times.ToIconString()); + } + if (ImGui.IsItemHovered()) + { + IQuestInfo questInfo; + string value = (_questData.TryGetQuestInfo(new QuestId(duty.RequiredQuestId.Value), out questInfo) ? questInfo.Name : duty.RequiredQuestId.Value.ToString(CultureInfo.InvariantCulture)); + ImU8String tooltip = new ImU8String(33, 1); + tooltip.AppendLiteral("Requires \""); + tooltip.AppendFormatted(value); + tooltip.AppendLiteral("\" to be completed first"); + ImGui.SetTooltip(tooltip); + } + return; + } + using (ImRaii.Disabled(disabled)) + { + using (ImRaii.PushColor(ImGuiCol.Button, UiThemeUtils.PlayButtonColor)) + { + using (ImRaii.PushColor(ImGuiCol.ButtonHovered, UiThemeUtils.PlayButtonHover)) + { + using (ImRaii.PushColor(ImGuiCol.ButtonActive, UiThemeUtils.PlayButtonActive)) + { + using (ImRaii.PushColor(ImGuiCol.Text, UiThemeUtils.PlayButtonText)) + { + if (UiThemeUtils.IconButton(FontAwesomeIcon.Play, ImGui.GetFrameHeight())) + { + _movementController.Stop(); + _questController.Stop("Seasonal duty farming start"); + _fateController.Stop("Seasonal duty farming start"); + _customDeliveryController.Stop("Seasonal duty farming start"); + _attunementController.Stop("Seasonal duty farming start"); + int? cycleLimit = ((_cycleLimit > 0) ? new int?(_cycleLimit) : ((int?)null)); + _seasonalDutyController.Start(duty, cycleLimit); + } + } + } + } + } + } + if (disabled && ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) + { + if (_seasonalDutyController.IsRunning) + { + ImGui.SetTooltip("Already farming a seasonal duty"); + } + else if (_fateController.IsRunning) + { + ImGui.SetTooltip("Stop FATE farming first"); + } + else if (_customDeliveryController.IsRunning) + { + ImGui.SetTooltip("Stop custom delivery first"); + } + else if (_attunementController.IsRunning) + { + ImGui.SetTooltip("Stop attunement first"); + } + else + { + ImGui.SetTooltip("Stop quest automation first"); + } + } + } } - static bool _202E_200B_206A_206E_206C_202C_206C_206B_202A_206C_200E_202E_202B_200C_202D_202C_202D_200F_202D_200D_206A_200F_202E_206A_200B_206D_202E_200C_206E_202B_206D_202D_206D_200D_206C_200D_202E_202A_202E_200F_202E() + private static string FormatElapsed(TimeSpan elapsed) { - return ImGui.TableNextColumn(); - } - - static ushort _200B_202C_206D_200F_200F_200C_206C_200E_200C_206A_200F_206C_200D_200F_206E_200D_206C_202E_200E_202B_200B_206F_206F_206A_206A_200F_206F_200B_206D_200E_200E_200F_202B_200C_200B_206B_206A_200D_200E_202B_202E(SeasonalDutyDefinition P_0) - { - return P_0.TerritoryId; - } - - static bool _200E_206A_206D_200E_206A_202B_202A_202D_202A_202B_202D_200F_200B_200D_200C_206E_206D_200D_206F_200D_206F_206A_206E_200F_206A_202E_202C_200B_206A_200F_200F_202E_202C_200E_202B_200D_206F_200E_200F_200E_202E() - { - return ImGui.IsItemHovered(); - } - - static ImRaii.TooltipDisposable _200D_202B_202C_200D_206D_206F_206F_202A_200F_206B_202D_206C_206E_202B_200D_200B_206F_202A_206F_200C_206C_206C_200C_202B_202E_202D_202E_206D_202E_206C_200F_202D_200F_202D_206F_200C_206C_200C_206C_206F_202E() - { - return ImRaii.Tooltip(); - } - - static void _206E_200C_200D_200F_200C_200F_200C_202B_200B_206A_206B_200B_200F_200E_206B_202C_200B_206D_206C_202A_200C_202A_206B_200C_206C_202D_200C_200E_202D_202C_202C_200C_202C_206A_200C_202B_206A_200E_206F_200F_202E() - { - ImGui.Separator(); - } - - static DateTime? _200E_202B_206C_202C_206F_202B_206C_202C_206A_200C_206F_202D_200B_200D_202D_202E_206D_206D_200E_206F_200D_202B_200B_206B_206B_206C_206B_206A_206F_202E_206A_206A_206F_202E_202C_202B_200D_200D_202E_202B_202E(SeasonalDutyDefinition P_0) - { - return P_0.EventExpiry; - } - - static ushort? _206B_206E_206E_202A_200B_206B_206B_202D_206B_206D_206C_206F_202D_200D_202D_202D_202E_200F_200C_206E_206B_202A_206D_206D_200B_200E_200F_206B_200C_202D_206B_200E_202A_206E_200C_206C_200E_202D_200B_202A_202E(SeasonalDutyDefinition P_0) - { - return P_0.RequiredQuestId; - } - - static QuestId _202C_202D_206F_206B_200E_202E_200E_206E_200C_206D_200F_200C_200F_202A_200D_206F_202B_206F_206F_200E_200E_200F_206C_206F_206D_206B_202B_206B_202D_206B_206B_206E_200D_206C_202B_206F_200C_206C_200F_206D_202E(ushort P_0) - { - return new QuestId(P_0); - } - - static ImRaii.IdDisposable _206A_206B_200E_206B_206E_200F_206E_206C_206C_200C_206E_200D_202A_206A_200E_206C_200C_206D_200E_200E_202C_206F_200D_206D_206B_200D_202D_206E_206A_202B_200E_202D_202E_206D_202E_202B_206F_206E_202E_200E_202E(ImU8String P_0, bool P_1) - { - return ImRaii.PushId(P_0, P_1); - } - - static ImFontPtr _200B_202C_200C_200F_206F_200B_206C_202E_200D_200D_202A_206A_202D_200D_206E_206B_202B_206A_206E_206E_206D_200B_200E_202C_206C_206B_200B_202A_202E_202A_200D_206E_200B_200E_206A_206B_206D_202B_200C_206D_202E() - { - return UiBuilder.IconFont; - } - - static ImRaii.FontDisposable _202A_206C_200E_206D_202E_202E_202A_200E_202A_206D_200E_202B_202A_200E_202C_200F_202A_206D_206C_200C_200F_200B_200F_200D_200F_200C_206F_206F_206D_200C_206E_206E_202A_206A_200C_206D_202B_206B_202B_206A_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static string _206C_200E_202C_202B_206D_200D_202A_200D_202D_202A_202D_202D_202C_202C_202A_202D_206A_200C_206C_200F_202B_202E_200C_206B_202E_200B_202C_202B_206B_200D_202C_200B_206C_202B_202B_202C_202D_200D_200E_206D_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static CultureInfo _206D_206B_206E_200D_206D_200F_206D_206A_206E_206B_206B_200C_200E_202B_200E_200F_200D_206B_202B_202C_200D_206F_202D_202E_206F_202B_202A_200F_206E_202D_206C_206F_206E_200D_206F_200B_202D_206C_206E_206B_202E() - { - return CultureInfo.InvariantCulture; - } - - static void _206E_200F_202B_200C_206D_206C_202C_206D_202C_202D_206F_200D_206B_206C_206A_202A_206A_206C_200C_206B_206D_200C_200E_206A_200F_200E_206A_202D_206D_200D_200B_206B_206A_200C_200D_200D_200E_200C_206F_202E_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } - - static ImRaii.ColorDisposable _200D_200E_206F_202A_206A_202C_202D_206A_200E_200B_202A_206C_200F_206B_200E_206E_206F_202A_206F_200F_202A_202B_200C_202E_206F_202D_202A_202E_206D_206C_200D_202C_206C_206E_206F_200F_200E_200B_202E_202C_202E(ImGuiCol P_0, Vector4 P_1, bool P_2) - { - return ImRaii.PushColor(P_0, P_1, P_2); - } - - static float _206B_202A_206B_206D_202B_206C_200C_206D_206F_206A_206D_200B_206B_200F_202D_202C_202C_206A_200B_206F_200E_206A_200D_202B_202D_206A_200C_206F_200D_202A_202B_206C_206C_202C_200B_206D_206A_206C_200B_206D_202E() - { - return ImGui.GetFrameHeight(); - } - - static bool _202A_206D_206B_200B_200B_202C_200C_206A_200F_200B_200F_202B_206F_202E_200C_202E_206A_206A_202A_200C_202E_200C_206C_202B_200B_206E_200B_202C_200B_200D_206F_200B_202C_206A_202A_200F_202A_202B_202E_202D_202E(ImGuiHoveredFlags P_0) - { - return ImGui.IsItemHovered(P_0); - } - - static string _202A_200C_206A_206D_206F_200B_200B_202E_202C_202B_200B_206F_206F_202B_202D_206F_202B_206D_200B_206A_200C_200C_206C_206E_206E_202B_206B_202D_206A_206B_202C_200D_206A_200D_206B_200E_202D_202B_206A_206D_202E(IFormatProvider P_0, ref DefaultInterpolatedStringHandler P_1) - { - return string.Create(P_0, ref P_1); - } - - static bool _202B_202C_202B_202A_206B_206A_202C_206D_200E_206D_206C_202C_202D_202C_206A_206C_202C_206F_200C_206F_206F_206A_200B_200D_206A_206B_206D_200E_202E_202C_202C_202B_206F_206B_200B_200E_206A_200E_206D_200E_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); + IFormatProvider invariantCulture; + if (elapsed.TotalHours >= 1.0) + { + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider = invariantCulture; + DefaultInterpolatedStringHandler handler = new DefaultInterpolatedStringHandler(5, 3, invariantCulture); + handler.AppendFormatted((int)elapsed.TotalHours); + handler.AppendLiteral("h "); + handler.AppendFormatted(elapsed.Minutes, "D2"); + handler.AppendLiteral("m "); + handler.AppendFormatted(elapsed.Seconds, "D2"); + handler.AppendLiteral("s"); + return string.Create(provider, ref handler); + } + if (elapsed.TotalMinutes >= 1.0) + { + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider2 = invariantCulture; + DefaultInterpolatedStringHandler handler2 = new DefaultInterpolatedStringHandler(3, 2, invariantCulture); + handler2.AppendFormatted((int)elapsed.TotalMinutes); + handler2.AppendLiteral("m "); + handler2.AppendFormatted(elapsed.Seconds, "D2"); + handler2.AppendLiteral("s"); + return string.Create(provider2, ref handler2); + } + invariantCulture = CultureInfo.InvariantCulture; + IFormatProvider provider3 = invariantCulture; + DefaultInterpolatedStringHandler handler3 = new DefaultInterpolatedStringHandler(1, 1, invariantCulture); + handler3.AppendFormatted(elapsed.Seconds); + handler3.AppendLiteral("s"); + return string.Create(provider3, ref handler3); } } diff --git a/Questionable/Questionable.Windows/SidebarNav.cs b/Questionable/Questionable.Windows/SidebarNav.cs index b51601b..3e67542 100644 --- a/Questionable/Questionable.Windows/SidebarNav.cs +++ b/Questionable/Questionable.Windows/SidebarNav.cs @@ -1,8 +1,5 @@ using System; -using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Bindings.ImGui; using Dalamud.Interface; using Dalamud.Interface.Utility; @@ -12,205 +9,9 @@ namespace Questionable.Windows; internal static class SidebarNav { - public readonly record struct Item(FontAwesomeIcon Icon, string Label) - { - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202E_206B_206D_202E_200D_206D_206C_200E_206C_202E_206B_202D_202B_202C_206A_200B_206B_202B_202B_206D_200C_202A_202A_200F_206E_206E_206C_206E_202C_202C_202E_206F_206D_206D_202B_200D_200D_206B_206A_206F_202E(); - _206C_200B_202A_202C_202C_202E_206A_200B_200F_206F_206B_206E_200B_206C_206C_200D_202E_206A_206D_202D_206F_200C_200E_206F_202B_206C_206E_200D_206F_200F_200C_202B_206D_200F_202B_206B_202E_206C_202A_200F_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1311867403)); - _206C_200B_202A_202C_202C_202E_206A_200B_200F_206F_206B_206E_200B_206C_206C_200D_202E_206A_206D_202D_206F_200C_200E_206F_202B_206C_206E_200D_206F_200F_200C_202B_206D_200F_202B_206B_202E_206C_202A_200F_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125)); - int num = ((!PrintMembers(stringBuilder)) ? (-982248515) : (-982248514)); - while (true) - { - int num2 = num; - int num3 = -982248513; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -982248514; - break; - case 1: - _200D_206B_202D_200E_200E_206D_206E_206D_206F_206C_202C_200D_200F_200C_202B_200B_206E_202B_202D_200D_202E_206C_202C_200E_200C_206C_206A_202C_200C_200F_206C_202D_200C_202C_200E_206C_206D_202B_202D_206F_202E(stringBuilder, ' '); - num = -982248515; - break; - case 2: - _200D_206B_202D_200E_200E_206D_206E_206D_206F_206C_202C_200D_200F_200C_202B_200B_206E_202B_202D_200D_202E_206C_202C_200E_200C_206C_206A_202C_200C_200F_206C_202D_200C_202C_200E_206C_206D_202B_202D_206F_202E(stringBuilder, '}'); - return _200D_206B_206D_206C_200D_200B_200C_202B_202C_200C_202E_202A_206B_200C_200E_202E_202A_200B_206B_200E_206B_206D_202B_206D_206D_206A_200B_206E_202E_200F_202C_200B_202B_206F_200F_202A_206A_202B_202E_202E_202E((object)stringBuilder); - } - } - } + public readonly record struct Item(FontAwesomeIcon Icon, string Label); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206C_200B_202A_202C_202C_202E_206A_200B_200F_206F_206B_206E_200B_206C_206C_200D_202E_206A_206D_202D_206F_200C_200E_206F_202B_206C_206E_200D_206F_200F_200C_202B_206D_200F_202B_206B_202E_206C_202A_200F_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(215639633)); - _206C_200B_202A_202C_202C_202E_206A_200B_200F_206F_206B_206E_200B_206C_206C_200D_202E_206A_206D_202D_206F_200C_200E_206F_202B_206C_206E_200D_206F_200F_200C_202B_206D_200F_202B_206B_202E_206C_202A_200F_202E(builder, Icon.ToString()); - _206C_200B_202A_202C_202C_202E_206A_200B_200F_206F_206B_206E_200B_206C_206C_200D_202E_206A_206D_202D_206F_200C_200E_206F_202B_206C_206E_200D_206F_200F_200C_202B_206D_200F_202B_206B_202E_206C_202A_200F_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-215899582)); - _202D_202C_206C_206D_200E_200C_202B_200D_202D_206A_200E_202D_202E_200D_202D_202E_202B_206D_200D_200B_200B_202D_200C_206D_202D_202E_200C_202A_202A_206B_200E_202C_206C_202C_206B_202D_206F_200E_202B_200F_202E(builder, (object)Label); - return true; - } - - [CompilerGenerated] - public bool Equals(Item other) - { - int num = ((!EqualityComparer<FontAwesomeIcon>.Default.Equals(Icon, other.Icon)) ? 1781939279 : 1781939276); - while (true) - { - int num2 = num; - int num3 = 1781939278; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0058; - case 1: - return false; - case 2: - return EqualityComparer<string>.Default.Equals(Label, other.Label); - } - continue; - IL_0058: - num = 1781939276; - } - } - - bool IEquatable<Item>.Equals(Item other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _202E_206B_206D_202E_200D_206D_206C_200E_206C_202E_206B_202D_202B_202C_206A_200B_206B_202B_202B_206D_200C_202A_202A_200F_206E_206E_206C_206E_202C_202C_202E_206F_206D_206D_202B_200D_200D_206B_206A_206F_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206C_200B_202A_202C_202C_202E_206A_200B_200F_206F_206B_206E_200B_206C_206C_200D_202E_206A_206D_202D_206F_200C_200E_206F_202B_206C_206E_200D_206F_200F_200C_202B_206D_200F_202B_206B_202E_206C_202A_200F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200D_206B_202D_200E_200E_206D_206E_206D_206F_206C_202C_200D_200F_200C_202B_200B_206E_202B_202D_200D_202E_206C_202C_200E_200C_206C_206A_202C_200C_200F_206C_202D_200C_202C_200E_206C_206D_202B_202D_206F_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200D_206B_206D_206C_200D_200B_200C_202B_202C_200C_202E_202A_206B_200C_200E_202E_202A_200B_206B_200E_206B_206D_202B_206D_206D_206A_200B_206E_202E_200F_202C_200B_202B_206F_200F_202A_206A_202B_202E_202E_202E(object P_0) - { - return P_0.ToString(); - } - - static StringBuilder _202D_202C_206C_206D_200E_200C_202B_200D_202D_206A_200E_202D_202E_200D_202D_202E_202B_206D_200D_200B_200B_202D_200C_206D_202D_202E_200C_202A_202A_206B_200E_202C_206C_202C_206B_202D_206F_200E_202B_200F_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - } - - public readonly record struct Group(string Label, Item[] Items) - { - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200F_206C_206E_202D_200E_200C_206E_202C_200D_202D_202D_202D_200F_206B_200F_200F_200D_206E_202A_206C_200B_206E_200B_202D_206D_206F_202A_206F_206B_202D_200B_206A_200C_202B_206F_206C_206A_202C_200C_202A_202E(); - _206D_200E_202C_200D_200D_202D_200B_206C_200E_202B_202B_200C_202A_202E_202B_206B_206F_200D_206F_206D_200F_202B_206F_202E_200F_206E_202A_202D_202E_206D_206E_200B_206E_200F_200E_200C_206A_202C_202D_202A_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(433576367)); - _206D_200E_202C_200D_200D_202D_200B_206C_200E_202B_202B_200C_202A_202E_202B_206B_206F_200D_206F_206D_200F_202B_206F_202E_200F_206E_202A_202D_202E_206D_206E_200B_206E_200F_200E_200C_206A_202C_202D_202A_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? (-1191425301) : (-1191425304)); - while (true) - { - int num2 = num; - int num3 = -1191425303; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1191425304; - break; - case 2: - _206F_200C_202D_200F_200C_202A_206F_200C_202E_200B_200E_202A_200D_200B_206F_200E_200D_206C_200E_206A_202C_202C_202D_202A_206C_202B_202A_202B_202C_206D_202D_206B_206C_200D_200F_206A_202D_206A_200E_202B_202E(stringBuilder, '}'); - return _200F_202C_200E_200E_202D_206B_202A_200E_206B_202E_206B_202E_202E_200D_206C_202A_200D_206B_206B_202E_202E_206C_202D_200D_206B_200D_206C_206F_202E_200B_200C_206C_202D_200C_200F_206D_206F_202D_202C_202D_202E((object)stringBuilder); - case 1: - _206F_200C_202D_200F_200C_202A_206F_200C_202E_200B_200E_202A_200D_200B_206F_200E_200D_206C_200E_206A_202C_202C_202D_202A_206C_202B_202A_202B_202C_206D_202D_206B_206C_200D_200F_206A_202D_206A_200E_202B_202E(stringBuilder, ' '); - num = -1191425301; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206D_200E_202C_200D_200D_202D_200B_206C_200E_202B_202B_200C_202A_202E_202B_206B_206F_200D_206F_206D_200F_202B_206F_202E_200F_206E_202A_202D_202E_206D_206E_200B_206E_200F_200E_200C_206A_202C_202D_202A_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(502488726)); - _202D_206C_206A_206D_202D_206C_202B_202C_202A_206E_206E_202E_200B_206C_200D_200C_202D_206E_202D_202D_200E_200D_200C_202A_200B_202B_206D_200E_200F_206E_200D_200B_202E_202C_202B_200E_206B_206B_200F_206F_202E(builder, (object)Label); - _206D_200E_202C_200D_200D_202D_200B_206C_200E_202B_202B_200C_202A_202E_202B_206B_206F_200D_206F_206D_200F_202B_206F_202E_200F_206E_202A_202D_202E_206D_206E_200B_206E_200F_200E_200C_206A_202C_202D_202A_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-95840427)); - _202D_206C_206A_206D_202D_206C_202B_202C_202A_206E_206E_202E_200B_206C_200D_200C_202D_206E_202D_202D_200E_200D_200C_202A_200B_202B_206D_200E_200F_206E_200D_200B_202E_202C_202B_200E_206B_206B_200F_206F_202E(builder, (object)Items); - return true; - } - - [CompilerGenerated] - public bool Equals(Group other) - { - int num = ((!EqualityComparer<string>.Default.Equals(Label, other.Label)) ? (-61920254) : (-61920255)); - while (true) - { - int num2 = num; - int num3 = -61920253; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return false; - case 2: - return EqualityComparer<Item[]>.Default.Equals(Items, other.Items); - case 0: - goto IL_006f; - } - continue; - IL_006f: - num = -61920255; - } - } - - bool IEquatable<Group>.Equals(Group other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _200F_206C_206E_202D_200E_200C_206E_202C_200D_202D_202D_202D_200F_206B_200F_200F_200D_206E_202A_206C_200B_206E_200B_202D_206D_206F_202A_206F_206B_202D_200B_206A_200C_202B_206F_206C_206A_202C_200C_202A_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206D_200E_202C_200D_200D_202D_200B_206C_200E_202B_202B_200C_202A_202E_202B_206B_206F_200D_206F_206D_200F_202B_206F_202E_200F_206E_202A_202D_202E_206D_206E_200B_206E_200F_200E_200C_206A_202C_202D_202A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206F_200C_202D_200F_200C_202A_206F_200C_202E_200B_200E_202A_200D_200B_206F_200E_200D_206C_200E_206A_202C_202C_202D_202A_206C_202B_202A_202B_202C_206D_202D_206B_206C_200D_200F_206A_202D_206A_200E_202B_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200F_202C_200E_200E_202D_206B_202A_200E_206B_202E_206B_202E_202E_200D_206C_202A_200D_206B_206B_202E_202E_206C_202D_200D_206B_200D_206C_206F_202E_200B_200C_206C_202D_200C_200F_206D_206F_202D_202C_202D_202E(object P_0) - { - return P_0.ToString(); - } - - static StringBuilder _202D_206C_206A_206D_202D_206C_202B_202C_202A_206E_206E_202E_200B_206C_200D_200C_202D_206E_202D_202D_200E_200D_200C_202A_200B_202B_206D_200E_200F_206E_200D_200B_202E_202C_202B_200E_206B_206B_200F_206F_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - } + public readonly record struct Group(string Label, Item[] Items); private const float RowMargin = 4f; @@ -220,386 +21,78 @@ internal static class SidebarNav private const float RowRounding = 4f; - [MethodImpl(MethodImplOptions.NoInlining)] public static int Draw(Group[] groups, int selected, float width = 168f) { int result = selected; - using (_200D_206A_202E_200C_200B_200B_200D_200F_200F_206B_206C_206C_206F_206E_202B_200E_202A_206B_200F_202A_206B_206A_206E_202E_206A_202B_206F_206D_200B_200C_206E_206B_200F_206F_200B_200D_202A_202E_206C_206C_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-969524891), new Vector2(width * _206E_206E_206D_202E_200D_200F_202B_200B_202E_206B_206D_202B_202D_206E_200F_202C_206D_202D_206C_202B_202E_202E_202B_200E_200D_206F_200D_200D_200E_202E_206F_202E_206F_200E_206E_202B_206E_200F_200F_200F_202E(), 0f), false)) + using (ImRaii.Child("##qstSidebar", new Vector2(width * ImGuiHelpers.GlobalScale, 0f), border: false)) { - ImRaii.IdDisposable idDisposable = _206E_206E_202D_202A_202C_200B_200F_200F_206F_200C_200E_200C_206B_202D_202B_206D_206C_202C_206D_206C_200B_202E_202A_206E_200E_202C_200B_202A_202C_202D_200B_206A_200C_200E_202A_200F_206D_206D_206A_206A_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-26716039), true); - try + using (ImRaii.PushId("QstSidebar")) { - ImDrawListPtr imDrawListPtr = _206D_202C_202A_206E_202C_206F_206A_200E_200C_202B_200D_206F_202D_200B_200D_206E_206D_202A_202C_206F_206F_200F_206A_200B_200C_206C_200D_206F_200F_202A_206A_206D_206E_200E_206D_202B_206C_202D_200B_202B_202E(); - float num = _200E_202A_206C_202D_200C_200F_202D_200F_202C_200F_202B_206E_200F_206F_202D_202B_202A_206B_202B_200C_202A_202C_202B_200E_206A_200C_206F_206F_206B_206A_206D_206E_206E_202A_202C_202D_206D_202D_206B_202D_202E(); - float num2 = _202C_206B_200E_206D_206F_206C_202D_206E_200C_206C_200B_206C_202C_206B_200E_202E_206B_200B_202B_206A_200E_206F_206C_202C_200E_206A_206A_200B_206A_206C_202A_202B_202C_200E_202B_206E_206E_200E_200B_206B_202E(); - float num3 = _206E_206E_206D_202E_200D_200F_202B_200B_202E_206B_206D_202B_202D_206E_200F_202C_206D_202D_206C_202B_202E_202E_202B_200E_200D_206F_200D_200D_200E_202E_206F_202E_206F_200E_206E_202B_206E_200F_200F_200F_202E(); - float num4 = 4f * num3; - int num5 = 0; + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + float frameHeight = ImGui.GetFrameHeight(); + float fontSize = ImGui.GetFontSize(); + float globalScale = ImGuiHelpers.GlobalScale; + float num = 4f * globalScale; + int num2 = 0; bool flag = true; - int num6 = 0; - Item[] items = default(Item[]); - int num7 = default(int); - Item item = default(Item); - bool flag2 = default(bool); - bool flag3 = default(bool); - Vector2 pMin = default(Vector2); - Vector2 pMax = default(Vector2); - while (true) + for (int i = 0; i < groups.Length; i++) { - if (num6 < groups.Length) + Group obj = groups[i]; + ImGui.SetCursorPosY(ImGui.GetCursorPosY() + (flag ? 2f : 10f)); + flag = false; + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + num); + ImGui.TextColored(in UiThemeUtils.MutedTextColor, obj.Label.ToUpperInvariant()); + Item[] items = obj.Items; + for (int j = 0; j < items.Length; j++) { - Group obj = groups[num6]; - _200F_202D_206B_206C_206A_202E_200B_202E_206F_202E_202B_206C_206A_202C_206D_200B_202D_206D_206F_206A_206C_202C_202D_202C_202A_200D_200F_206D_206C_200E_206A_200F_200D_202C_202B_200D_202D_206D_206C_202A_202E(_206E_206A_202D_200F_206A_202C_206E_206B_206E_206B_200D_202E_202C_206B_202E_206A_200F_206E_206B_200F_206F_202C_202E_200E_202C_206A_206B_206A_206F_202D_206C_200D_200C_206C_206B_202E_202C_200B_206B_206E_202E() + (flag ? 2f : 10f)); - flag = false; - _202B_200D_206D_200E_202C_200B_200E_200C_202B_200C_200B_206A_200C_202E_202C_200D_202E_202E_206F_202A_200B_200E_206C_200F_202C_200B_200F_200E_202B_202A_206A_206F_206D_202B_202B_202E_202A_200E_202A_200D_202E(_206C_206F_202E_206D_206C_206C_200F_206C_200B_200F_206C_200C_202B_202E_200E_200D_202D_202A_206A_202E_206C_202A_200D_202C_202D_202E_200E_206B_200F_200F_206A_200E_206B_202D_206E_202A_202C_206A_206D_202E() + num4); - _202E_202A_200D_200F_200C_200F_200B_206B_202A_206A_206E_200D_206D_202D_200F_206A_206C_200E_200F_200F_206D_206E_206B_206A_202E_200C_202C_200F_206E_202D_202A_200D_206D_202A_200E_206A_206E_206A_202E_202B_202E(ref UiThemeUtils.MutedTextColor, (ImU8String)_200E_202B_200E_202E_200F_202A_206B_200C_200D_206F_202B_200F_206A_202A_200B_206F_202D_202C_206C_200B_202E_200D_202C_206D_200E_206F_200C_202A_202E_200C_200E_200D_200D_200F_206A_202A_200E_202E_202D_206D_202E(obj.Label)); - items = obj.Items; - num7 = 0; - goto IL_04de; - } - int num8 = 781826990; - goto IL_02b7; - IL_04de: - int num10; - int num11; - if (num7 < items.Length) - { - item = items[num7]; - flag2 = num5 == selected; - _202B_200D_206D_200E_202C_200B_200E_200C_202B_200C_200B_206A_200C_202E_202C_200D_202E_202E_206F_202A_200B_200E_206C_200F_202C_200B_200F_200E_202B_202A_206A_206F_206D_202B_202B_202E_202A_200E_202A_200D_202E(_206C_206F_202E_206D_206C_206C_200F_206C_200B_200F_206C_200C_202B_202E_200E_200D_202D_202A_206A_202E_206C_202A_200D_202C_202D_202E_200E_206B_200F_200F_206A_200E_206B_202D_206E_202A_202C_206A_206D_202E() + num4); - ImRaii.ColorDisposable colorDisposable = _206C_206B_202D_202D_202A_206D_202D_206B_206A_200F_206D_206D_202A_206E_202C_202C_200F_202C_206B_206E_200D_202E_206D_206B_206D_202A_202D_202B_200C_200E_200D_202C_206C_206E_202C_206B_202C_200C_206D_206C_202E(ImGuiCol.Header, Vector4.Zero, true); - try + Item item = items[j]; + bool flag2 = num2 == selected; + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + num); + using (ImRaii.ColorDisposable colorDisposable = ImRaii.PushColor(ImGuiCol.Header, Vector4.Zero)) { - _202D_200F_202D_206A_200D_202A_200B_202A_202E_202B_200C_200C_206B_206D_200E_206A_206A_200C_200E_200E_200F_206D_202E_200E_206C_206B_206C_200D_202C_200F_206F_206C_202C_206C_200C_202D_200B_206D_206E_200D_202E(colorDisposable, ImGuiCol.HeaderHovered, Vector4.Zero, true); - _202D_200F_202D_206A_200D_202A_200B_202A_202E_202B_200C_200C_206B_206D_200E_206A_206A_200C_200E_200E_200F_206D_202E_200E_206C_206B_206C_200D_202C_200F_206F_206C_202C_206C_200C_202D_200B_206D_206E_200D_202E(colorDisposable, ImGuiCol.HeaderActive, Vector4.Zero, true); - ImU8String imU8String = new ImU8String(6, 1); - imU8String.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1193849588)); - imU8String.AppendFormatted(num5); - num8 = ((!_202B_206D_206E_206C_200D_202E_200B_200F_206F_206F_206E_202D_200D_202B_206B_206A_200B_206A_200D_200C_202A_200E_202B_202A_206B_206F_206B_202B_202E_200F_206F_200D_202C_206B_206D_206D_206C_206B_200D_206E_202E(imU8String, flag2, ImGuiSelectableFlags.None, new Vector2(_202D_200D_202C_202C_206F_200E_202D_202C_206A_200D_202C_206E_200F_202B_206E_202D_202C_200C_202D_202A_200F_202D_200F_206C_200B_202D_206F_202E_206C_202B_202A_202A_206F_200D_200B_206C_202A_206B_202E_206D_202E().X - num4, num))) ? (-1361755139) : (-1361755138)); - while (true) + colorDisposable.Push(ImGuiCol.HeaderHovered, Vector4.Zero); + colorDisposable.Push(ImGuiCol.HeaderActive, Vector4.Zero); + ImU8String label = new ImU8String(6, 1); + label.AppendLiteral("##item"); + label.AppendFormatted(num2); + if (ImGui.Selectable(label, flag2, ImGuiSelectableFlags.None, new Vector2(ImGui.GetContentRegionAvail().X - num, frameHeight))) { - int num9 = num8; - num10 = -1361755137; - num11 = num9; - switch ((num11 | num10) - (num11 & num10)) - { - case 0: - num8 = -1361755138; - break; - case 1: - result = num5; - num8 = -1361755139; - break; - case 2: - goto end_IL_0189; - } - continue; - end_IL_0189: - break; + result = num2; } } - finally + bool flag3 = ImGui.IsItemHovered(); + Vector2 itemRectMin = ImGui.GetItemRectMin(); + Vector2 itemRectMax = ImGui.GetItemRectMax(); + float x = ImGui.GetStyle().ItemSpacing.X; + float num3 = MathF.Truncate(x * 0.5f); + itemRectMin.X += num3; + itemRectMax.X -= x - num3; + if (flag2) { - num8 = ((colorDisposable == null) ? 1309247283 : 1309247280); - while (true) - { - int num12 = num8; - num10 = 1309247282; - num11 = num12; - int num13 = num11 + num10; - int num14 = num11 & num10; - switch (num13 - (num14 + num14)) - { - case 0: - num8 = 1309247280; - break; - case 2: - _206A_200E_206E_200E_200D_206E_206F_200E_200B_200C_206C_206A_206B_200F_206C_206A_206F_206B_206C_200E_206E_202D_206E_202B_202D_206E_206B_206D_206B_206D_200E_206D_202D_206E_202A_200F_202B_200E_200B_200F_202E((IDisposable)colorDisposable); - num8 = 1309247283; - break; - case 1: - goto end_IL_01f4; - } - continue; - end_IL_01f4: - break; - } + windowDrawList.AddRectFilled(itemRectMin, itemRectMax, ImGui.ColorConvertFloat4ToU32(UiThemeUtils.AccentDimColor), 4f); } - flag3 = _202D_206E_200B_206E_206E_206B_206A_202B_206B_206F_200D_200B_202A_202B_202C_200B_202E_206E_200D_202A_200D_206D_206F_200D_206F_206C_200F_206C_200B_206F_202B_202B_206E_202C_200F_200D_202C_206F_206D_200F_202E(); - pMin = _206B_202E_200F_206E_206C_202D_206F_200D_206D_202D_200E_206A_206D_200E_202C_206A_200C_200C_202B_202D_200C_202D_206C_206B_206A_202C_206F_206C_200C_202A_202D_200F_200C_202E_206E_200F_202D_202C_200F_200D_202E(); - pMax = _206E_202B_206E_206F_206F_200D_202D_202B_202E_206E_206E_202E_206C_206D_206A_200E_206D_206C_200C_202A_200E_206C_200F_206E_202A_200E_202A_202B_200C_206A_202C_200E_202C_202D_206D_206D_206E_206B_206A_206F_202E(); - float x = _202B_202A_202D_202D_206B_206C_200C_202A_206E_202E_206A_206C_200D_202E_202C_202A_206E_206C_200B_200C_206B_200D_200D_206C_202B_206D_200D_200E_202B_206B_206B_200C_206A_200F_206A_200D_206B_206F_206E_206B_202E().ItemSpacing.X; - float num15 = _200C_206E_206E_200D_200D_200B_206A_202D_202A_200F_200B_206D_206B_206B_202A_202B_200E_202D_202C_200B_200C_206F_200F_200B_202B_202D_202B_206B_206A_206E_206B_202B_202D_200B_206F_206B_200F_206C_202C_206A_202E(x * 0.5f); - pMin.X += num15; - pMax.X -= x - num15; - num8 = ((!flag2) ? 781826988 : 781826983); - } - else - { - num8 = 781826991; - } - goto IL_02b7; - IL_02b7: - while (true) - { - int num16 = num8; - num10 = 781826990; - num11 = num16; - int num17 = num11 + num10; - int num18 = num11 & num10; - Vector4 vector3; - uint col; - string text; - Vector2 vector4; - switch (num17 - (num18 + num18)) + else if (flag3) { - default: - continue; - case 3: - imDrawListPtr.AddRectFilled(pMin, pMax, _202E_202C_206C_200E_200B_202E_206A_202A_202C_202E_206A_200F_206B_206F_206B_200E_206F_206B_200B_206D_200E_202E_206A_202B_206C_200C_202B_202E_202E_206B_200F_202D_200B_202A_206E_206F_200F_206C_206D_202B_202E(UiThemeUtils.SubtleHoverColor), 4f); - num8 = 781826982; - continue; - case 9: - imDrawListPtr.AddRectFilled(pMin, pMax, _202E_202C_206C_200E_200B_202E_206A_202A_202C_202E_206A_200F_206B_206F_206B_200E_206F_206B_200B_206D_200E_202E_206A_202B_206C_200C_202B_202E_202E_206B_200F_202D_200B_202A_206E_206F_200F_206C_206D_202B_202E(UiThemeUtils.AccentDimColor), 4f); - num8 = 781826982; - continue; - case 2: - num8 = ((!flag3) ? 781826982 : 781826989); - continue; - case 8: - num8 = (flag2 ? 781826985 : 781826984); - continue; - case 4: - num8 = 781826983; - continue; - case 6: - vector3 = UiThemeUtils.DimTextColor; - goto IL_03e1; - case 1: - goto end_IL_02b7; - case 7: - vector3 = UiThemeUtils.AccentColor; - goto IL_03e1; - case 10: + windowDrawList.AddRectFilled(itemRectMin, itemRectMax, ImGui.ColorConvertFloat4ToU32(UiThemeUtils.SubtleHoverColor), 4f); + } + uint col = ImGui.ColorConvertFloat4ToU32(flag2 ? UiThemeUtils.AccentColor : UiThemeUtils.DimTextColor); + string text = item.Icon.ToIconString(); + windowDrawList.AddText(UiBuilder.IconFont, fontSize, new Vector2(itemRectMin.X + 6f * globalScale, itemRectMin.Y + (frameHeight - fontSize) / 2f), col, text); + Vector2 vector = ImGui.CalcTextSize(item.Label); + windowDrawList.AddText(new Vector2(itemRectMin.X + 28f * globalScale, itemRectMin.Y + (frameHeight - vector.Y) / 2f), col, item.Label); + if (flag2) { - int num19 = num5; - num10 = 1; - num11 = num19; - int num20 = num11 ^ num10; - int num21 = num11 & num10; - num5 = num20 + (num21 + num21); - int num22 = num7; - num10 = 1; - num11 = num22; - num7 = (num11 | num10) + (num11 & num10); - break; + windowDrawList.AddRect(itemRectMin, itemRectMax, ImGui.ColorConvertFloat4ToU32(UiThemeUtils.CardBorderColor), 4f, ImDrawFlags.None, 1f); } - case 5: - imDrawListPtr.AddRect(pMin, pMax, _202E_202C_206C_200E_200B_202E_206A_202A_202C_202E_206A_200F_206B_206F_206B_200E_206F_206B_200B_206D_200E_202E_206A_202B_206C_200C_202B_202E_202E_206B_200F_202D_200B_202A_206E_206F_200F_206C_206D_202B_202E(UiThemeUtils.CardBorderColor), 4f, ImDrawFlags.None, 1f); - num8 = 781826980; - continue; - case 0: - { - Vector2 vector = _206B_202D_206A_206F_206E_206B_206D_206B_202B_202D_206F_206B_200B_200D_202D_202E_200E_202B_200C_200D_206E_200E_200D_200C_202D_202D_202B_206C_202B_206B_200E_200C_202A_206F_206D_200D_202B_202B_202B_200F_202E(); - Vector2 vector2 = _202A_202C_206B_206A_206D_206B_202E_206A_200D_200D_200C_200D_206B_206E_200E_200D_206B_200B_200E_206F_202B_206E_202A_202E_202C_202B_200B_202A_202A_200F_206F_202B_206F_200F_200B_200C_202A_206D_202E_206E_202E(); - imDrawListPtr.AddLine(new Vector2(vector.X + vector2.X, vector.Y), new Vector2(vector.X + vector2.X, vector.Y + vector2.Y), _202E_202C_206C_200E_200B_202E_206A_202A_202C_202E_206A_200F_206B_206F_206B_200E_206F_206B_200B_206D_200E_202E_206A_202B_206C_200C_202B_202E_202E_206B_200F_202D_200B_202A_206E_206F_200F_206C_206D_202B_202E(UiThemeUtils.CardBorderColor), 1f); - goto end_IL_03c5; - } - IL_03e1: - col = _202E_202C_206C_200E_200B_202E_206A_202A_202C_202E_206A_200F_206B_206F_206B_200E_206F_206B_200B_206D_200E_202E_206A_202B_206C_200C_202B_202E_202E_206B_200F_202D_200B_202A_206E_206F_200F_206C_206D_202B_202E(vector3); - text = _202B_200F_206D_206D_202B_206D_206F_202B_206F_206D_206B_206E_206C_200E_200D_200E_206A_200B_202E_202C_200D_202C_202B_202D_200E_206E_202C_202A_202B_206A_200B_200E_202D_206C_200E_202D_202C_206A_206A_206F_202E(item.Icon); - imDrawListPtr.AddText(_202E_200C_202D_206C_202E_206F_202C_200B_200B_200C_200F_200C_200C_206B_200F_202B_202A_200D_200D_200D_202B_200C_200C_202B_202E_200E_200C_206E_206E_206C_202E_200D_206B_206D_206E_202E_200F_202B_200F_202E(), num2, new Vector2(pMin.X + 6f * num3, pMin.Y + (num - num2) / 2f), col, text); - vector4 = _206B_200F_202B_206E_202A_200B_200D_200D_206A_202B_202E_202E_206B_200F_206A_206D_206A_206E_200C_206D_202B_206A_206C_200F_206F_202C_202C_200D_200C_206A_206A_200B_200B_200C_206C_206C_200C_206F_202D_206C_202E((ImU8String)item.Label, false, -1f); - imDrawListPtr.AddText(new Vector2(pMin.X + 28f * num3, pMin.Y + (num - vector4.Y) / 2f), col, item.Label); - num8 = ((!flag2) ? 781826980 : 781826987); - continue; - } - goto IL_04de; - continue; - end_IL_02b7: - break; + num2++; } - int num23 = num6; - num10 = 1; - num11 = num23; - num6 = (num11 | num10) + (num11 & num10); - continue; - end_IL_03c5: - break; - } - } - finally - { - int num8 = ((idDisposable == null) ? (-1189285151) : (-1189285152)); - while (true) - { - int num24 = num8; - int num10 = -1189285151; - int num11 = num24; - switch ((num11 | num10) - (num11 & num10)) - { - case 2: - num8 = -1189285152; - break; - case 1: - _206A_200E_206E_200E_200D_206E_206F_200E_200B_200C_206C_206A_206B_200F_206C_206A_206F_206B_206C_200E_206E_202D_206E_202B_202D_206E_206B_206D_206B_206D_200E_206D_202D_206E_202A_200F_202B_200E_200B_200F_202E((IDisposable)idDisposable); - num8 = -1189285151; - break; - case 0: - goto end_IL_05a6; - } - continue; - end_IL_05a6: - break; } + Vector2 windowPos = ImGui.GetWindowPos(); + Vector2 windowSize = ImGui.GetWindowSize(); + windowDrawList.AddLine(new Vector2(windowPos.X + windowSize.X, windowPos.Y), new Vector2(windowPos.X + windowSize.X, windowPos.Y + windowSize.Y), ImGui.ColorConvertFloat4ToU32(UiThemeUtils.CardBorderColor), 1f); } } - _200E_206B_200B_206E_202E_202B_202E_206A_200C_206A_200D_202C_206B_206E_206D_200C_202D_200E_206D_206B_206C_200F_202B_202C_202D_206C_202B_206E_202C_206B_206F_200D_206B_206B_202A_202D_202B_200B_202D_202A_202E(); + ImGui.SameLine(); return result; } - - static float _206E_206E_206D_202E_200D_200F_202B_200B_202E_206B_206D_202B_202D_206E_200F_202C_206D_202D_206C_202B_202E_202E_202B_200E_200D_206F_200D_200D_200E_202E_206F_202E_206F_200E_206E_202B_206E_200F_200F_200F_202E() - { - return ImGuiHelpers.GlobalScale; - } - - static ImRaii.ChildDisposable _200D_206A_202E_200C_200B_200B_200D_200F_200F_206B_206C_206C_206F_206E_202B_200E_202A_206B_200F_202A_206B_206A_206E_202E_206A_202B_206F_206D_200B_200C_206E_206B_200F_206F_200B_200D_202A_202E_206C_206C_202E(ImU8String P_0, Vector2 P_1, bool P_2) - { - return ImRaii.Child(P_0, P_1, P_2); - } - - static ImRaii.IdDisposable _206E_206E_202D_202A_202C_200B_200F_200F_206F_200C_200E_200C_206B_202D_202B_206D_206C_202C_206D_206C_200B_202E_202A_206E_200E_202C_200B_202A_202C_202D_200B_206A_200C_200E_202A_200F_206D_206D_206A_206A_202E(ImU8String P_0, bool P_1) - { - return ImRaii.PushId(P_0, P_1); - } - - static ImDrawListPtr _206D_202C_202A_206E_202C_206F_206A_200E_200C_202B_200D_206F_202D_200B_200D_206E_206D_202A_202C_206F_206F_200F_206A_200B_200C_206C_200D_206F_200F_202A_206A_206D_206E_200E_206D_202B_206C_202D_200B_202B_202E() - { - return ImGui.GetWindowDrawList(); - } - - static float _200E_202A_206C_202D_200C_200F_202D_200F_202C_200F_202B_206E_200F_206F_202D_202B_202A_206B_202B_200C_202A_202C_202B_200E_206A_200C_206F_206F_206B_206A_206D_206E_206E_202A_202C_202D_206D_202D_206B_202D_202E() - { - return ImGui.GetFrameHeight(); - } - - static float _202C_206B_200E_206D_206F_206C_202D_206E_200C_206C_200B_206C_202C_206B_200E_202E_206B_200B_202B_206A_200E_206F_206C_202C_200E_206A_206A_200B_206A_206C_202A_202B_202C_200E_202B_206E_206E_200E_200B_206B_202E() - { - return ImGui.GetFontSize(); - } - - static float _206E_206A_202D_200F_206A_202C_206E_206B_206E_206B_200D_202E_202C_206B_202E_206A_200F_206E_206B_200F_206F_202C_202E_200E_202C_206A_206B_206A_206F_202D_206C_200D_200C_206C_206B_202E_202C_200B_206B_206E_202E() - { - return ImGui.GetCursorPosY(); - } - - static void _200F_202D_206B_206C_206A_202E_200B_202E_206F_202E_202B_206C_206A_202C_206D_200B_202D_206D_206F_206A_206C_202C_202D_202C_202A_200D_200F_206D_206C_200E_206A_200F_200D_202C_202B_200D_202D_206D_206C_202A_202E(float P_0) - { - ImGui.SetCursorPosY(P_0); - } - - static float _206C_206F_202E_206D_206C_206C_200F_206C_200B_200F_206C_200C_202B_202E_200E_200D_202D_202A_206A_202E_206C_202A_200D_202C_202D_202E_200E_206B_200F_200F_206A_200E_206B_202D_206E_202A_202C_206A_206D_202E() - { - return ImGui.GetCursorPosX(); - } - - static void _202B_200D_206D_200E_202C_200B_200E_200C_202B_200C_200B_206A_200C_202E_202C_200D_202E_202E_206F_202A_200B_200E_206C_200F_202C_200B_200F_200E_202B_202A_206A_206F_206D_202B_202B_202E_202A_200E_202A_200D_202E(float P_0) - { - ImGui.SetCursorPosX(P_0); - } - - static string _200E_202B_200E_202E_200F_202A_206B_200C_200D_206F_202B_200F_206A_202A_200B_206F_202D_202C_206C_200B_202E_200D_202C_206D_200E_206F_200C_202A_202E_200C_200E_200D_200D_200F_206A_202A_200E_202E_202D_206D_202E(string P_0) - { - return P_0.ToUpperInvariant(); - } - - static void _202E_202A_200D_200F_200C_200F_200B_206B_202A_206A_206E_200D_206D_202D_200F_206A_206C_200E_200F_200F_206D_206E_206B_206A_202E_200C_202C_200F_206E_202D_202A_200D_206D_202A_200E_206A_206E_206A_202E_202B_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static ImRaii.ColorDisposable _206C_206B_202D_202D_202A_206D_202D_206B_206A_200F_206D_206D_202A_206E_202C_202C_200F_202C_206B_206E_200D_202E_206D_206B_206D_202A_202D_202B_200C_200E_200D_202C_206C_206E_202C_206B_202C_200C_206D_206C_202E(ImGuiCol P_0, Vector4 P_1, bool P_2) - { - return ImRaii.PushColor(P_0, P_1, P_2); - } - - static ImRaii.ColorDisposable _202D_200F_202D_206A_200D_202A_200B_202A_202E_202B_200C_200C_206B_206D_200E_206A_206A_200C_200E_200E_200F_206D_202E_200E_206C_206B_206C_200D_202C_200F_206F_206C_202C_206C_200C_202D_200B_206D_206E_200D_202E(ImRaii.ColorDisposable P_0, ImGuiCol P_1, Vector4 P_2, bool P_3) - { - return P_0.Push(P_1, P_2, P_3); - } - - static Vector2 _202D_200D_202C_202C_206F_200E_202D_202C_206A_200D_202C_206E_200F_202B_206E_202D_202C_200C_202D_202A_200F_202D_200F_206C_200B_202D_206F_202E_206C_202B_202A_202A_206F_200D_200B_206C_202A_206B_202E_206D_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static bool _202B_206D_206E_206C_200D_202E_200B_200F_206F_206F_206E_202D_200D_202B_206B_206A_200B_206A_200D_200C_202A_200E_202B_202A_206B_206F_206B_202B_202E_200F_206F_200D_202C_206B_206D_206D_206C_206B_200D_206E_202E(ImU8String P_0, bool P_1, ImGuiSelectableFlags P_2, Vector2 P_3) - { - return ImGui.Selectable(P_0, P_1, P_2, P_3); - } - - static void _206A_200E_206E_200E_200D_206E_206F_200E_200B_200C_206C_206A_206B_200F_206C_206A_206F_206B_206C_200E_206E_202D_206E_202B_202D_206E_206B_206D_206B_206D_200E_206D_202D_206E_202A_200F_202B_200E_200B_200F_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool _202D_206E_200B_206E_206E_206B_206A_202B_206B_206F_200D_200B_202A_202B_202C_200B_202E_206E_200D_202A_200D_206D_206F_200D_206F_206C_200F_206C_200B_206F_202B_202B_206E_202C_200F_200D_202C_206F_206D_200F_202E() - { - return ImGui.IsItemHovered(); - } - - static Vector2 _206B_202E_200F_206E_206C_202D_206F_200D_206D_202D_200E_206A_206D_200E_202C_206A_200C_200C_202B_202D_200C_202D_206C_206B_206A_202C_206F_206C_200C_202A_202D_200F_200C_202E_206E_200F_202D_202C_200F_200D_202E() - { - return ImGui.GetItemRectMin(); - } - - static Vector2 _206E_202B_206E_206F_206F_200D_202D_202B_202E_206E_206E_202E_206C_206D_206A_200E_206D_206C_200C_202A_200E_206C_200F_206E_202A_200E_202A_202B_200C_206A_202C_200E_202C_202D_206D_206D_206E_206B_206A_206F_202E() - { - return ImGui.GetItemRectMax(); - } - - static ImGuiStylePtr _202B_202A_202D_202D_206B_206C_200C_202A_206E_202E_206A_206C_200D_202E_202C_202A_206E_206C_200B_200C_206B_200D_200D_206C_202B_206D_200D_200E_202B_206B_206B_200C_206A_200F_206A_200D_206B_206F_206E_206B_202E() - { - return ImGui.GetStyle(); - } - - static float _200C_206E_206E_200D_200D_200B_206A_202D_202A_200F_200B_206D_206B_206B_202A_202B_200E_202D_202C_200B_200C_206F_200F_200B_202B_202D_202B_206B_206A_206E_206B_202B_202D_200B_206F_206B_200F_206C_202C_206A_202E(float P_0) - { - return MathF.Truncate(P_0); - } - - static uint _202E_202C_206C_200E_200B_202E_206A_202A_202C_202E_206A_200F_206B_206F_206B_200E_206F_206B_200B_206D_200E_202E_206A_202B_206C_200C_202B_202E_202E_206B_200F_202D_200B_202A_206E_206F_200F_206C_206D_202B_202E(Vector4 P_0) - { - return ImGui.ColorConvertFloat4ToU32(P_0); - } - - static string _202B_200F_206D_206D_202B_206D_206F_202B_206F_206D_206B_206E_206C_200E_200D_200E_206A_200B_202E_202C_200D_202C_202B_202D_200E_206E_202C_202A_202B_206A_200B_200E_202D_206C_200E_202D_202C_206A_206A_206F_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static ImFontPtr _202E_200C_202D_206C_202E_206F_202C_200B_200B_200C_200F_200C_200C_206B_200F_202B_202A_200D_200D_200D_202B_200C_200C_202B_202E_200E_200C_206E_206E_206C_202E_200D_206B_206D_206E_202E_200F_202B_200F_202E() - { - return UiBuilder.IconFont; - } - - static Vector2 _206B_200F_202B_206E_202A_200B_200D_200D_206A_202B_202E_202E_206B_200F_206A_206D_206A_206E_200C_206D_202B_206A_206C_200F_206F_202C_202C_200D_200C_206A_206A_200B_200B_200C_206C_206C_200C_206F_202D_206C_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static Vector2 _206B_202D_206A_206F_206E_206B_206D_206B_202B_202D_206F_206B_200B_200D_202D_202E_200E_202B_200C_200D_206E_200E_200D_200C_202D_202D_202B_206C_202B_206B_200E_200C_202A_206F_206D_200D_202B_202B_202B_200F_202E() - { - return ImGui.GetWindowPos(); - } - - static Vector2 _202A_202C_206B_206A_206D_206B_202E_206A_200D_200D_200C_200D_206B_206E_200E_200D_206B_200B_200E_206F_202B_206E_202A_202E_202C_202B_200B_202A_202A_200F_206F_202B_206F_200F_200B_200C_202A_206D_202E_206E_202E() - { - return ImGui.GetWindowSize(); - } - - static void _200E_206B_200B_206E_202E_202B_202E_206A_200C_206A_200D_202C_206B_206E_206D_200C_202D_200E_206D_206B_206C_200F_202B_202C_202D_206C_202B_206E_202C_206B_206F_200D_206B_206B_202A_202D_202B_200B_202D_202A_202E() - { - ImGui.SameLine(); - } } diff --git a/Questionable/Questionable.Windows/ThemedWindow.cs b/Questionable/Questionable.Windows/ThemedWindow.cs index 0ff8952..2457dc9 100644 --- a/Questionable/Questionable.Windows/ThemedWindow.cs +++ b/Questionable/Questionable.Windows/ThemedWindow.cs @@ -13,57 +13,19 @@ internal abstract class ThemedWindow : LWindow public void Dispose() { - int num = ((!_disposed) ? (-1959803182) : (-1959803178)); - while (true) + if (!_disposed) { - int num2 = num; - int num3 = -1959803180; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + _disposed = true; + if (styles > 0) { - case 4: - num = -1959803178; - break; - case 2: - return; - case 1: - _206A_206C_202B_200C_206C_200C_202B_200F_202D_200E_202C_200B_206C_202D_200D_202D_202C_202E_202E_206E_202D_206C_200F_202E_206D_202D_206B_200C_202B_200D_206E_200E_202E_202D_200E_202E_200F_202A_202D_202B_202E(styles); - num = -1959803180; - break; - case 5: - _202C_202E_206B_206D_202A_202C_200F_206E_206C_206A_202E_202E_202A_206B_202D_202E_200D_202C_206C_200D_206D_202A_200B_200D_202D_206E_202B_200B_206E_202B_202E_206B_206F_202D_202D_202B_206B_202E_200C_206A_202E(colors); - num = -1959803177; - break; - case 0: - num = ((colors <= 0) ? (-1959803177) : (-1959803183)); - break; - case 3: - return; - case 6: - _disposed = true; - num = ((styles <= 0) ? (-1959803180) : (-1959803179)); - break; + ImGui.PopStyleVar(styles); + } + if (colors > 0) + { + ImGui.PopStyleColor(colors); } } } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static void _206A_206C_202B_200C_206C_200C_202B_200F_202D_200E_202C_200B_206C_202D_200D_202D_202C_202E_202E_206E_202D_206C_200F_202E_206D_202D_206B_200C_202B_200D_206E_200E_202E_202D_200E_202E_200F_202A_202D_202B_202E(int P_0) - { - ImGui.PopStyleVar(P_0); - } - - static void _202C_202E_206B_206D_202A_202C_200F_206E_206C_206A_202E_202E_202A_206B_202D_202E_200D_202C_206C_200D_206D_202A_200B_200D_202D_206E_202B_200B_206E_202B_202E_206B_206F_202D_202D_202B_206B_202E_200C_206A_202E(int P_0) - { - ImGui.PopStyleColor(P_0); - } } private IDisposable? _theme; @@ -75,19 +37,15 @@ internal abstract class ThemedWindow : LWindow public override void PreDraw() { - _206D_200B_206C_206B_200B_206B_206B_202E_200B_206B_202C_202D_206D_202D_206C_206F_206F_206D_200E_206E_200E_200C_202A_202B_206F_206B_200F_202B_206E_200E_206C_206D_200F_206D_202A_206C_206A_200D_200F_200C_202E(); + base.PreDraw(); _theme = PushTheme(); } public override void PostDraw() { - IDisposable? theme = _theme; - if (theme != null) - { - _200F_206E_206B_206C_206C_206D_206A_200D_206D_200C_206A_206A_200C_202E_202D_202C_200B_202D_200B_206D_200D_206E_206E_206C_202D_202B_206C_200F_206C_200B_206D_202B_206B_200C_206B_202E_202D_206C_206D_206B_202E(theme); - } + _theme?.Dispose(); _theme = null; - _206D_202B_202D_202E_206A_206F_200B_206F_206B_200C_206A_206A_200F_200B_202D_200E_202C_200F_200E_200C_202B_200E_202D_206C_206C_206D_206E_200F_206A_202E_206E_206C_200E_200F_206E_200C_206F_206D_206D_200E_202E(); + base.PostDraw(); } public static IDisposable PushTheme() @@ -146,46 +104,13 @@ internal abstract class ThemedWindow : LWindow return new ThemeScope(colors, styles); void C(ImGuiCol col, Vector4 color) { - _202E_200D_200C_200E_202B_206C_206C_206A_206A_206D_200C_206B_200C_206B_200D_206B_200B_202B_206B_200D_206D_202B_206D_206C_200C_202E_202B_206F_200D_206F_202A_200C_206F_206B_206C_202B_202E_200F_206E_206E_202E(col, color); - int num = colors; - int num2 = 1; - int num3 = num; - colors = (num3 | num2) + (num3 & num2); + ImGui.PushStyleColor(col, color); + colors++; } void S(ImGuiStyleVar var, float val) { - _206B_206A_202D_206B_206E_206B_200C_200C_202E_200D_202A_206C_200B_202B_206D_206C_206F_200B_206A_202B_206C_206B_202A_200F_200D_202B_200C_206E_200D_200F_206D_202D_202E_200B_200D_206B_202B_206A_206E_206A_202E(var, val); - int num = styles; - int num2 = 1; - int num3 = num; - int num4 = num3 ^ num2; - int num5 = num3 & num2; - styles = num4 + (num5 + num5); + ImGui.PushStyleVar(var, val); + styles++; } } - - void _206D_200B_206C_206B_200B_206B_206B_202E_200B_206B_202C_202D_206D_202D_206C_206F_206F_206D_200E_206E_200E_200C_202A_202B_206F_206B_200F_202B_206E_200E_206C_206D_200F_206D_202A_206C_206A_200D_200F_200C_202E() - { - base.PreDraw(); - } - - static void _200F_206E_206B_206C_206C_206D_206A_200D_206D_200C_206A_206A_200C_202E_202D_202C_200B_202D_200B_206D_200D_206E_206E_206C_202D_202B_206C_200F_206C_200B_206D_202B_206B_200C_206B_202E_202D_206C_206D_206B_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - void _206D_202B_202D_202E_206A_206F_200B_206F_206B_200C_206A_206A_200F_200B_202D_200E_202C_200F_200E_200C_202B_200E_202D_206C_206C_206D_206E_200F_206A_202E_206E_206C_200E_200F_206E_200C_206F_206D_206D_200E_202E() - { - base.PostDraw(); - } - - static void _202E_200D_200C_200E_202B_206C_206C_206A_206A_206D_200C_206B_200C_206B_200D_206B_200B_202B_206B_200D_206D_202B_206D_206C_200C_202E_202B_206F_200D_206F_202A_200C_206F_206B_206C_202B_202E_200F_206E_206E_202E(ImGuiCol P_0, Vector4 P_1) - { - ImGui.PushStyleColor(P_0, P_1); - } - - static void _206B_206A_202D_206B_206E_206B_200C_200C_202E_200D_202A_206C_200B_202B_206D_206C_206F_200B_206A_202B_206C_206B_202A_200F_200D_202B_200C_206E_200D_200F_206D_202D_202E_200B_200D_206B_202B_206A_206E_206A_202E(ImGuiStyleVar P_0, float P_1) - { - ImGui.PushStyleVar(P_0, P_1); - } } diff --git a/Questionable/Questionable.Windows/UiThemeUtils.cs b/Questionable/Questionable.Windows/UiThemeUtils.cs index c3c6797..c8211ca 100644 --- a/Questionable/Questionable.Windows/UiThemeUtils.cs +++ b/Questionable/Questionable.Windows/UiThemeUtils.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Numerics; using System.Runtime.CompilerServices; using System.Text; @@ -15,106 +14,7 @@ namespace Questionable.Windows; internal static class UiThemeUtils { - public readonly record struct GridCheckbox(string Label, bool Value, string? Tooltip = null) - { - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202A_202E_206F_206C_202A_202A_200E_202C_206A_206D_200B_200D_202A_202B_206B_202B_202A_200F_206F_202C_200F_206F_202D_206F_206C_206D_206D_200F_200C_200F_200F_202C_206A_206C_206E_206F_200F_206E_202A_200F_202E(); - _206A_206E_206E_200F_200C_206D_206A_200F_200F_202A_200F_202C_206A_200E_206B_206B_200C_206F_206E_200D_206C_202E_206E_200E_200D_206C_202E_206D_200B_206E_206B_206C_202D_206D_202C_202C_206F_200B_202C_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(179489552)); - _206A_206E_206E_200F_200C_206D_206A_200F_200F_202A_200F_202C_206A_200E_206B_206B_200C_206F_206E_200D_206C_202E_206E_200E_200D_206C_202E_206D_200B_206E_206B_206C_202D_206D_202C_202C_206F_200B_202C_202E(stringBuilder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(698284764)); - int num = ((!PrintMembers(stringBuilder)) ? (-1155276585) : (-1155276586)); - while (true) - { - int num2 = num; - int num3 = -1155276585; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - _200B_206C_206C_200E_206C_202B_202E_202B_202B_206E_202E_200D_206A_202E_202B_206A_206A_202A_202A_202B_200F_206C_206A_202A_202B_202E_202D_200C_202C_206C_206E_200B_202B_202E_206D_202E_200D_206E_206D_200E_202E(stringBuilder, '}'); - return _200D_202D_206E_206F_202A_202B_206C_200B_202E_202C_206F_206B_202C_202B_202D_206C_202D_200E_202B_200E_200E_200D_206A_202E_202E_200C_206F_202A_202A_200E_202B_206B_200D_202D_200F_202D_206A_202B_206A_202E_202E((object)stringBuilder); - case 1: - _200B_206C_206C_200E_206C_202B_202E_202B_202B_206E_202E_200D_206A_202E_202B_206A_206A_202A_202A_202B_200F_206C_206A_202A_202B_202E_202D_200C_202C_206C_206E_200B_202B_202E_206D_202E_200D_206E_206D_200E_202E(stringBuilder, ' '); - num = -1155276585; - break; - case 2: - num = -1155276586; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206A_206E_206E_200F_200C_206D_206A_200F_200F_202A_200F_202C_206A_200E_206B_206B_200C_206F_206E_200D_206C_202E_206E_200E_200D_206C_202E_206D_200B_206E_206B_206C_202D_206D_202C_202C_206F_200B_202C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-79426945)); - _200D_206A_200D_206F_202B_206B_206D_206D_200D_202A_202C_202B_206A_202A_200F_206E_206F_206D_202C_206C_202A_206D_200B_202A_206E_202C_202C_200D_206D_206C_202B_202B_202D_200F_206E_206A_200C_202C_206C_200D_202E(builder, (object)Label); - _206A_206E_206E_200F_200C_206D_206A_200F_200F_202A_200F_202C_206A_200E_206B_206B_200C_206F_206E_200D_206C_202E_206E_200E_200D_206C_202E_206D_200B_206E_206B_206C_202D_206D_202C_202C_206F_200B_202C_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-89441394)); - _206A_206E_206E_200F_200C_206D_206A_200F_200F_202A_200F_202C_206A_200E_206B_206B_200C_206F_206E_200D_206C_202E_206E_200E_200D_206C_202E_206D_200B_206E_206B_206C_202D_206D_202C_202C_206F_200B_202C_202E(builder, Value.ToString()); - _206A_206E_206E_200F_200C_206D_206A_200F_200F_202A_200F_202C_206A_200E_206B_206B_200C_206F_206E_200D_206C_202E_206E_200E_200D_206C_202E_206D_200B_206E_206B_206C_202D_206D_202C_202C_206F_200B_202C_202E(builder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2096210289)); - _200D_206A_200D_206F_202B_206B_206D_206D_200D_202A_202C_202B_206A_202A_200F_206E_206F_206D_202C_206C_202A_206D_200B_202A_206E_202C_202C_200D_206D_206C_202B_202B_202D_200F_206E_206A_200C_202C_206C_200D_202E(builder, (object)Tooltip); - return true; - } - - [CompilerGenerated] - public bool Equals(GridCheckbox other) - { - int num = ((!EqualityComparer<string>.Default.Equals(Label, other.Label)) ? (-375874886) : (-375874887)); - while (true) - { - int num2 = num; - int num3 = -375874888; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = -375874887; - break; - case 0: - return EqualityComparer<string>.Default.Equals(Tooltip, other.Tooltip); - case 1: - num = ((!EqualityComparer<bool>.Default.Equals(Value, other.Value)) ? (-375874886) : (-375874888)); - break; - case 2: - return false; - } - } - } - - bool IEquatable<GridCheckbox>.Equals(GridCheckbox other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _202A_202E_206F_206C_202A_202A_200E_202C_206A_206D_200B_200D_202A_202B_206B_202B_202A_200F_206F_202C_200F_206F_202D_206F_206C_206D_206D_200F_200C_200F_200F_202C_206A_206C_206E_206F_200F_206E_202A_200F_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206A_206E_206E_200F_200C_206D_206A_200F_200F_202A_200F_202C_206A_200E_206B_206B_200C_206F_206E_200D_206C_202E_206E_200E_200D_206C_202E_206D_200B_206E_206B_206C_202D_206D_202C_202C_206F_200B_202C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200B_206C_206C_200E_206C_202B_202E_202B_202B_206E_202E_200D_206A_202E_202B_206A_206A_202A_202A_202B_200F_206C_206A_202A_202B_202E_202D_200C_202C_206C_206E_200B_202B_202E_206D_202E_200D_206E_206D_200E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200D_202D_206E_206F_202A_202B_206C_200B_202E_202C_206F_206B_202C_202B_202D_206C_202D_200E_202B_200E_200E_200D_206A_202E_202E_200C_206F_202A_202A_200E_202B_206B_200D_202D_200F_202D_206A_202B_206A_202E_202E(object P_0) - { - return P_0.ToString(); - } - - static StringBuilder _200D_206A_200D_206F_202B_206B_206D_206D_200D_202A_202C_202B_206A_202A_200F_206E_206F_206D_202C_206C_202A_206D_200B_202A_206E_202C_202C_200D_206D_206C_202B_202B_202D_200F_206E_206A_200C_202C_206C_200D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - } + public readonly record struct GridCheckbox(string Label, bool Value, string? Tooltip = null); public const float SpacingInner = 8f; @@ -124,7 +24,7 @@ internal static class UiThemeUtils public const float ControlWidth = 260f; - private static readonly uint AltRowColor = _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(new Vector4(0.15f, 0.12f, 0.2f, 0.3f)); + private static readonly uint AltRowColor = ImGui.ColorConvertFloat4ToU32(new Vector4(0.15f, 0.12f, 0.2f, 0.3f)); public static readonly Vector4 CardBackgroundColor = new Vector4(1f, 1f, 1f, 0.035f); @@ -180,1659 +80,589 @@ internal static class UiThemeUtils public static void WrappedText(string text) { - _202C_200D_202A_206C_200E_202C_200B_200B_202A_206B_202E_202C_202C_200D_206B_202D_200D_206B_202B_206E_206D_202C_200E_202A_202D_206A_206C_202C_202A_200D_202A_200B_200E_206B_202B_200F_202E_202B_200C_200F_202E(_202D_200B_200D_202B_202D_206D_200D_206C_206B_200D_200B_206C_206D_200C_202E_206D_206C_200B_202B_202D_200D_200F_200C_202E_200E_202A_206C_206A_206D_202D_200C_202E_206F_206C_206E_202C_200D_206B_206B_200C_202E() + _206E_200D_200C_206B_200C_206F_200F_200B_200F_206C_206D_200D_206E_202E_200B_202E_200C_206E_206A_202A_202E_200E_206D_206B_200E_202B_202D_206C_200D_202C_202E_202B_202D_200B_200F_202E_200B_202C_200C_206E_202E().X); - _200E_202A_206A_200E_206E_206E_206B_206B_206B_206C_206F_202A_200E_206A_200C_200E_202E_202C_206C_200E_206D_202C_200F_200C_206E_200D_200E_202D_206D_206A_200E_200B_202B_206E_206E_206B_200C_202A_206B_200C_202E((ImU8String)text); - _200C_200C_206E_200B_200E_202C_200E_206D_206C_202C_200D_202C_200D_206B_202C_206D_202D_206C_200E_202D_206A_206B_206D_202C_200C_206A_202D_200E_200E_200B_206C_202B_200D_200F_206D_202A_202C_200B_202E_202A_202E(); + ImGui.PushTextWrapPos(ImGui.GetCursorPosX() + ImGui.GetContentRegionAvail().X); + ImGui.TextUnformatted(text); + ImGui.PopTextWrapPos(); } public static void WrappedTextColored(Vector4 color, string text) { - ImRaii.ColorDisposable colorDisposable = _200C_200C_200F_200D_206A_200E_202A_206D_200E_202C_206F_206D_200E_200B_206E_200D_206C_202C_202A_202D_200B_202D_206B_202A_202B_206A_200B_206F_206E_200B_206A_206A_202E_202A_200E_200F_200F_206B_202B_200F_202E(ImGuiCol.Text, color, true); - try + using (ImRaii.PushColor(ImGuiCol.Text, color)) { WrappedText(text); } - finally - { - int num = ((colorDisposable == null) ? (-1025421329) : (-1025421332)); - while (true) - { - int num2 = num; - int num3 = -1025421331; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto end_IL_0030; - case 1: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)colorDisposable); - num = -1025421329; - break; - case 0: - num = -1025421332; - break; - } - continue; - end_IL_0030: - break; - } - } } public static string TruncateToWidth(string text, float maxWidth) { - int num = (_202B_200F_206E_202D_200E_202B_202B_206C_206E_202B_200C_206B_202C_206A_200E_200F_202D_202C_206C_202B_202B_202E_200B_202D_202C_206A_206E_206A_202B_206D_206B_202A_200E_206A_206B_206E_200D_200E_202D_200E_202E(text) ? (-1626955586) : (-1626955587)); - int num10 = default(int); - int num8 = default(int); - int num7 = default(int); - while (true) + if (string.IsNullOrEmpty(text) || maxWidth <= 0f || ImGui.CalcTextSize(text).X <= maxWidth) { - int num2 = num; - int num3 = -1626955588; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return text; + } + if (ImGui.CalcTextSize(Ellipsis).X > maxWidth) + { + return Ellipsis; + } + int num = 0; + int num2 = text.Length; + while (num < num2) + { + int num3 = (num + num2 + 1) / 2; + if (ImGui.CalcTextSize(string.Concat(text.AsSpan(0, num3), Ellipsis.AsSpan())).X <= maxWidth) { - case 0: - num = -1626955587; - break; - case 3: - { - int num9 = num10; - num3 = 1; - num4 = num9; - num8 = ~(~num4 + num3); - num = -1626955591; - break; + num = num3; } - case 13: - num7 = num10; - num = -1626955591; - break; - case 7: - num = ((num7 <= 0) ? (-1626955593) : (-1626955590)); - break; - case 6: - return _206E_200E_206F_206F_202C_202E_200E_200B_202E_200F_202E_202C_206E_206D_206E_200C_206D_206D_206C_200F_206C_202A_202B_200D_200B_202A_202D_202E_206B_200B_200F_200C_206E_202D_202C_200F_200B_202B_206C_202D_202E(_200D_202A_202C_200D_202E_202D_200E_200D_200C_202A_202A_202C_202E_202D_202A_206E_206F_200E_206C_206D_202A_206D_200F_202E_206E_200D_206A_202B_200D_206D_200F_200E_200F_202C_200E_206C_202A_206D_200F_200D_202E(text, 0, num7), _202B_206B_206C_206C_206F_206A_206D_200F_206C_202D_206A_206C_206A_206C_202C_202D_200F_206F_200B_200C_202C_200B_202D_202B_200E_202A_200D_200B_206C_202E_206F_202E_200D_200E_206E_202C_202A_200F_200B_202C_202E(Ellipsis)); - case 8: - num = ((!(_200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)Ellipsis, false, -1f).X > maxWidth)) ? (-1626955594) : (-1626955592)); - break; - case 9: - num = ((!(_200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)text, false, -1f).X <= maxWidth)) ? (-1626955596) : (-1626955586)); - break; - case 2: - return text; - case 5: - num = ((num7 < num8) ? (-1626955600) : (-1626955589)); - break; - case 12: + else { - int num11 = num7; - num3 = num8; - num4 = num11; - int num12 = (num4 | num3) + (num4 & num3); - num3 = 1; - num4 = num12; - int num13 = num4 ^ num3; - int num14 = num4 & num3; - num10 = (num13 + (num14 + num14)) / 2; - num = ((!(_200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)_206E_200E_206F_206F_202C_202E_200E_200B_202E_200F_202E_202C_206E_206D_206E_200C_206D_206D_206C_200F_206C_202A_202B_200D_200B_202A_202D_202E_206B_200B_200F_200C_206E_202D_202C_200F_200B_202B_206C_202D_202E(_200D_202A_202C_200D_202E_202D_200E_200D_200C_202A_202A_202C_202E_202D_202A_206E_206F_200E_206C_206D_202A_206D_200F_202E_206E_200D_206A_202B_200D_206D_200F_200E_200F_202C_200E_206C_202A_206D_200F_200D_202E(text, 0, num10), _202B_206B_206C_206C_206F_206A_206D_200F_206C_202D_206A_206C_206A_206C_202C_202D_200F_206F_200B_200C_202C_200B_202D_202B_200E_202A_200D_200B_206C_202E_206F_202E_200D_200E_206E_202C_202A_200F_200B_202C_202E(Ellipsis)), false, -1f).X <= maxWidth)) ? (-1626955585) : (-1626955599)); - break; - } - case 1: - num = ((maxWidth <= 0f) ? (-1626955586) : (-1626955595)); - break; - case 4: - return Ellipsis; - case 10: - num7 = 0; - num8 = _206C_202D_206C_200C_202E_206B_206B_202A_206C_206A_200F_206D_202D_202A_202C_200F_202E_202B_206B_202E_206D_206C_206E_206F_206D_202A_206C_200B_202A_200F_206A_200E_202C_200E_206D_202D_206F_200F_206F_206A_202E(text); - num = -1626955591; - break; - case 11: - return Ellipsis; + num2 = num3 - 1; } } + if (num > 0) + { + return string.Concat(text.AsSpan(0, num), Ellipsis.AsSpan()); + } + return Ellipsis; } public static void RowLabel(string text, float reservedRightWidth) { - float maxWidth = _206E_200D_200C_206B_200C_206F_200F_200B_200F_206C_206D_200D_206E_202E_200B_202E_200C_206E_206A_202A_202E_200E_206D_206B_200E_202B_202D_206C_200D_202C_202E_202B_202D_200B_200F_202E_200B_202C_200C_206E_202E().X - reservedRightWidth; - _200E_202A_206A_200E_206E_206E_206B_206B_206B_206C_206F_202A_200E_206A_200C_200E_202E_202C_206C_200E_206D_202C_200F_200C_206E_200D_200E_202D_206D_206A_200E_200B_202B_206E_206E_206B_200C_202A_206B_200C_202E((ImU8String)TruncateToWidth(text, maxWidth)); + float maxWidth = ImGui.GetContentRegionAvail().X - reservedRightWidth; + ImGui.TextUnformatted(TruncateToWidth(text, maxWidth)); } public static void RowLabel(string text, float reservedRightWidth, Vector4 color) { - ImRaii.ColorDisposable colorDisposable = _200C_200C_200F_200D_206A_200E_202A_206D_200E_202C_206F_206D_200E_200B_206E_200D_206C_202C_202A_202D_200B_202D_206B_202A_202B_206A_200B_206F_206E_200B_206A_206A_202E_202A_200E_200F_200F_206B_202B_200F_202E(ImGuiCol.Text, color, true); - try + using (ImRaii.PushColor(ImGuiCol.Text, color)) { RowLabel(text, reservedRightWidth); } - finally - { - int num = ((colorDisposable == null) ? (-1942778121) : (-1942778124)); - while (true) - { - int num2 = num; - int num3 = -1942778122; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1942778124; - break; - case 1: - goto end_IL_0031; - case 2: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)colorDisposable); - num = -1942778121; - break; - } - continue; - end_IL_0031: - break; - } - } } public static (Vector2 ContentStartPos, float AvailableWidth, ImDrawListPtr DrawList) BeginCard() { - Vector2 item = _202E_200D_200E_206B_206E_206C_200D_200B_200B_206A_206B_200E_202B_206C_206B_200B_206F_206B_202B_206A_206E_206D_200C_200E_200D_200C_202E_206C_202E_206B_200B_200C_200E_200B_206C_200B_206D_200B_202E_200C_202E(); - float x = _206E_200D_200C_206B_200C_206F_200F_200B_200F_206C_206D_200D_206E_202E_200B_202E_200C_206E_206A_202A_202E_200E_206D_206B_200E_202B_202D_206C_200D_202C_202E_202B_202D_200B_200F_202E_200B_202C_200C_206E_202E().X; - ImDrawListPtr item2 = _206C_206E_202A_202B_202D_206B_206C_200B_200B_200F_202D_206B_202D_206C_200C_200C_206A_200C_206B_200E_206C_200C_206B_200E_206B_206A_200F_202B_206E_202C_206F_202D_200F_202D_202E_200C_206B_202A_202C_200F_202E(); - item2.ChannelsSplit(2); - item2.ChannelsSetCurrent(1); - _202C_206B_206B_206D_202D_200B_202A_206E_206D_206A_206C_206E_202C_202A_206C_206B_200F_200B_206E_200F_206E_206D_206A_206E_202A_206D_202D_202B_200F_200B_206A_200B_200E_206A_202B_200C_206A_206B_202D_206E_202E(12f); - _200C_202C_206A_206D_202C_202C_200F_202A_206F_202A_200B_202D_200C_200B_206F_200F_206E_206E_200B_202D_200D_202A_206F_202B_206E_202A_200C_206A_206E_200E_202E_200B_206E_202A_202E_200D_202C_206F_206F_202D_202E(item.Y + 12f); - _206F_206F_200B_200D_202B_200D_206D_202C_200E_202E_200F_202E_200E_200E_202B_206A_200C_206B_206A_200E_202B_202B_202E_202E_206A_202B_202E_200B_206F_206C_202D_206A_200C_200E_202D_206D_200C_202D_202C_202A_202E(-13f); + Vector2 cursorPos = ImGui.GetCursorPos(); + float x = ImGui.GetContentRegionAvail().X; + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + windowDrawList.ChannelsSplit(2); + windowDrawList.ChannelsSetCurrent(1); + ImGui.Indent(12f); + ImGui.SetCursorPosY(cursorPos.Y + 12f); + ImGui.PushItemWidth(-13f); _cardContentRightInset = 12f; - return (ContentStartPos: item, AvailableWidth: x, DrawList: item2); + return (ContentStartPos: cursorPos, AvailableWidth: x, DrawList: windowDrawList); } public static void EndCard(Vector2 contentStartPos, float availableWidth, ImDrawListPtr drawList) { - _206F_206E_202B_206D_202E_200D_200E_206A_202D_202C_202E_206A_200C_202C_206E_200C_202C_200F_206F_206A_200F_200F_202E_202A_202D_200E_202C_206A_202E_206B_202E_200E_206B_206C_202E_206D_206B_206A_200B_206B_202E(); - _206B_206A_206E_202D_206A_202C_206C_206B_206D_206C_206B_202A_206A_206A_202C_206B_202E_202B_206B_202B_200C_206D_202E_202C_206D_202D_206C_200B_200B_200D_200D_202E_200C_202A_206B_200B_200B_202D_200F_202A_202E(12f); + ImGui.PopItemWidth(); + ImGui.Unindent(12f); _cardContentRightInset = 0f; - Vector2 vector = _202E_200D_200E_206B_206E_206C_200D_200B_200B_206A_206B_200E_202B_206C_206B_200B_206F_206B_202B_206A_206E_206D_200C_200E_200D_200C_202E_206C_202E_206B_200B_200C_200E_200B_206C_200B_206D_200B_202E_200C_202E(); + Vector2 cursorPos = ImGui.GetCursorPos(); drawList.ChannelsSetCurrent(0); - _202C_206B_206D_206E_200D_206D_202C_206A_206A_206D_206C_202A_200E_206E_206B_202D_206C_200E_200C_202E_200C_200B_206B_200E_206E_200B_206B_202E_202B_200E_200B_206F_206D_206F_202C_200D_200D_200B_206E_200E_202E(contentStartPos); - Vector2 pMin = _202D_202E_200C_202E_200C_202D_206E_206C_202A_200C_200C_206D_202D_202E_206C_206E_206F_206F_202A_202D_200D_202D_200B_206C_202E_202D_206C_200D_202E_206D_202C_200D_202B_200D_206B_202E_206A_206B_206A_202C_202E(); - _202C_206B_206D_206E_200D_206D_202C_206A_206A_206D_206C_202A_200E_206E_206B_202D_206C_200E_200C_202E_200C_200B_206B_200E_206E_200B_206B_202E_202B_200E_200B_206F_206D_206F_202C_200D_200D_200B_206E_200E_202E(vector + new Vector2(0f, 12f)); - Vector2 vector2 = _202D_202E_200C_202E_200C_202D_206E_206C_202A_200C_200C_206D_202D_202E_206C_206E_206F_206F_202A_202D_200D_202D_200B_206C_202E_202D_206C_200D_202E_206D_202C_200D_202B_200D_206B_202E_206A_206B_206A_202C_202E(); - drawList.AddRectFilled(pMin, new Vector2(pMin.X + availableWidth, vector2.Y), _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(CardBackgroundColor), 6f); - drawList.AddRect(pMin, new Vector2(pMin.X + availableWidth, vector2.Y), _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(CardBorderColor), 6f, ImDrawFlags.None, 1f); + ImGui.SetCursorPos(contentStartPos); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + ImGui.SetCursorPos(cursorPos + new Vector2(0f, 12f)); + Vector2 cursorScreenPos2 = ImGui.GetCursorScreenPos(); + drawList.AddRectFilled(cursorScreenPos, new Vector2(cursorScreenPos.X + availableWidth, cursorScreenPos2.Y), ImGui.ColorConvertFloat4ToU32(CardBackgroundColor), 6f); + drawList.AddRect(cursorScreenPos, new Vector2(cursorScreenPos.X + availableWidth, cursorScreenPos2.Y), ImGui.ColorConvertFloat4ToU32(CardBorderColor), 6f, ImDrawFlags.None, 1f); drawList.ChannelsMerge(); - _202C_206B_206D_206E_200D_206D_202C_206A_206A_206D_206C_202A_200E_206E_206B_202D_206C_200E_200C_202E_200C_200B_206B_200E_206E_200B_206B_202E_202B_200E_200B_206F_206D_206F_202C_200D_200D_200B_206E_200E_202E(new Vector2(contentStartPos.X, vector.Y + 12f)); + ImGui.SetCursorPos(new Vector2(contentStartPos.X, cursorPos.Y + 12f)); } public static ImRaii.TableDisposable BeginThemedTable(string id, int columns, ImGuiTableFlags extra = ImGuiTableFlags.None) { - return _200B_200D_202A_206F_200D_206B_202A_202D_200E_202C_206C_206E_202B_202D_200C_200E_202D_206B_206E_200E_200C_202C_206E_202D_202E_206E_200B_202D_200E_200D_206B_200C_200C_206C_202B_206D_202E_206A_206D_202B_202E((ImU8String)id, columns, ImGuiTableFlags.RowBg | ImGuiTableFlags.BordersInnerH | extra); + return ImRaii.Table(id, columns, ImGuiTableFlags.RowBg | ImGuiTableFlags.BordersInnerH | extra); } public static void SectionHeader(string title) { - ImDrawListPtr imDrawListPtr = _206C_206E_202A_202B_202D_206B_206C_200B_200B_200F_202D_206B_202D_206C_200C_200C_206A_200C_206B_200E_206C_200C_206B_200E_206B_206A_200F_202B_206E_202C_206F_202D_200F_202D_202E_200C_206B_202A_202C_200F_202E(); - Vector2 pMin = _202D_202E_200C_202E_200C_202D_206E_206C_202A_200C_200C_206D_202D_202E_206C_206E_206F_206F_202A_202D_200D_202D_200B_206C_202E_202D_206C_200D_202E_206D_202C_200D_202B_200D_206B_202E_206A_206B_206A_202C_202E(); - float num = _200D_202A_202B_200C_206C_206C_200C_200D_206A_206C_202E_206C_202B_206C_200D_206A_200B_200E_202D_206A_200B_206D_206D_206D_202D_200D_202C_202E_206D_206B_200C_206F_206C_200B_202A_206F_206C_200B_200C_202E(); - imDrawListPtr.AddRectFilled(pMin, new Vector2(pMin.X + 3f, pMin.Y + num), _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(AccentColor)); - _202D_200B_200D_206E_206D_200B_202A_206E_206A_200E_202C_206A_202D_202A_200C_206C_206E_206E_202A_206A_202A_202D_202C_206A_206F_200F_206D_202A_202B_200F_200E_200D_200D_206D_206F_202E_206A_202A_202D_202B_202E(_202D_200B_200D_202B_202D_206D_200D_206C_206B_200D_200B_206C_206D_200C_202E_206D_206C_200B_202B_202D_200D_200F_200C_202E_200E_202A_206C_206A_206D_202D_200C_202E_206F_206C_206E_202C_200D_206B_206B_200C_202E() + 3f + 6f); - _206A_200F_200E_200B_206D_200D_202D_206C_206F_202E_200B_202E_206F_202D_206C_206F_206A_206A_206C_206E_202D_206D_202D_202C_202C_206B_200D_200B_202E_206B_200C_206F_200F_206C_202E_202A_202C_200B_200B_202E_202E(ref PrimaryTextColor, (ImU8String)title); + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + float textLineHeight = ImGui.GetTextLineHeight(); + windowDrawList.AddRectFilled(cursorScreenPos, new Vector2(cursorScreenPos.X + 3f, cursorScreenPos.Y + textLineHeight), ImGui.ColorConvertFloat4ToU32(AccentColor)); + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + 3f + 6f); + ImGui.TextColored(in PrimaryTextColor, title); } public static void SectionSpacing() { - _200C_202C_206A_206D_202C_202C_200F_202A_206F_202A_200B_202D_200C_200B_206F_200F_206E_206E_200B_202D_200D_202A_206F_202B_206E_202A_200C_206A_206E_200E_202E_200B_206E_202A_202E_200D_202C_206F_206F_202D_202E(_202C_200C_200C_200C_206E_202E_202E_202E_200E_206C_206B_206E_200F_200E_202D_202D_202A_200C_206A_202C_206A_206B_200D_200E_206E_200F_200F_206F_200B_206C_202B_200B_206A_202A_206F_202D_206B_200C_202C_206B_202E() + 16f); + ImGui.SetCursorPosY(ImGui.GetCursorPosY() + 16f); } public static void SubSectionHeader(string label) { - _200E_202D_200C_206E_200B_206A_200E_206F_200F_200C_200D_202D_200D_200E_200B_206E_206C_206F_202D_202C_206E_200D_206B_206B_206C_206B_202D_202E_206D_202B_202D_202C_206E_206E_200C_200F_206F_206C_202C_206A_202E(); - _206A_200F_200E_200B_206D_200D_202D_206C_206F_202E_200B_202E_206F_202D_206C_206F_206A_206A_206C_206E_202D_206D_202D_202C_202C_206B_200D_200B_202E_206B_200C_206F_200F_206C_202E_202A_202C_200B_200B_202E_202E(ref DimTextColor, (ImU8String)label); + ImGui.Spacing(); + ImGui.TextColored(in DimTextColor, label); } public static void StatusBadge(string text, Vector4 color, FontAwesomeIcon icon) { - ImDrawListPtr imDrawListPtr = _206C_206E_202A_202B_202D_206B_206C_200B_200B_200F_202D_206B_202D_206C_200C_200C_206A_200C_206B_200E_206C_200C_206B_200E_206B_206A_200F_202B_206E_202C_206F_202D_200F_202D_202E_200C_206B_202A_202C_200F_202E(); - Vector2 vector = _202D_202E_200C_202E_200C_202D_206E_206C_202A_200C_200C_206D_202D_202E_206C_206E_206F_206F_202A_202D_200D_202D_200B_206C_202E_202D_206C_200D_202E_206D_202C_200D_202B_200D_206B_202E_206A_206B_206A_202C_202E(); - float fontSize = _200D_202A_206A_206F_202D_206E_206E_206F_206C_206F_200F_200D_200E_200F_202D_202D_202C_202D_206E_202D_202B_206C_202C_206E_206B_200E_202B_206F_202E_202A_206D_202D_200D_206B_200F_202A_202E_206F_206A_202C_202E(); - string text2 = _200E_200B_202B_206D_202E_200F_202D_200F_206C_206C_202E_202D_202D_200F_200E_200F_200F_200C_206B_200D_200D_200B_206E_206B_206B_200C_200C_202C_206C_200F_206B_202E_202B_202D_206D_206E_200E_202C_202C_200C_202E(icon); - ImRaii.FontDisposable fontDisposable = _202A_202E_206A_202E_206D_202A_200B_200B_200F_206D_206E_200E_200C_206B_200C_206A_200F_200E_200E_200D_200F_206B_202D_206C_202A_200D_206A_206D_200C_200D_206A_202C_206C_206C_202A_206A_200E_206C_200F_202E(_206F_206D_206C_200F_200E_206B_202A_200F_202E_206A_206E_200F_206D_206A_206F_206D_206B_200F_200E_202E_200B_206B_200D_200E_206D_200C_206D_206B_202C_202E_206B_202E_206B_202C_202A_200D_202B_200F_202C_200E_202E(), true); - Vector2 vector2; - try + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + float fontSize = ImGui.GetFontSize(); + string text2 = icon.ToIconString(); + Vector2 vector; + using (ImRaii.PushFont(UiBuilder.IconFont)) { - vector2 = _200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)text2, false, -1f); + vector = ImGui.CalcTextSize(text2); } - finally - { - int num = ((fontDisposable == null) ? 481738281 : 481738280); - while (true) - { - int num2 = num; - int num3 = 481738281; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto end_IL_005d; - case 1: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)fontDisposable); - num = 481738281; - break; - case 2: - num = 481738280; - break; - } - continue; - end_IL_005d: - break; - } - } - Vector2 vector3 = _200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)text, false, -1f); - float num7 = 6f; - float num8 = 2f; - float num9 = 4f; - float x = num7 + vector2.X + num9 + vector3.X + num7; - float num10 = num8 + _206D_202B_202D_200F_206A_200D_206E_206C_202C_206B_200E_206B_206B_206C_206B_200E_202C_206C_202A_206F_206E_200E_202A_202A_200B_206F_202C_200C_206E_206D_206F_202E_200F_206B_206D_202E_206E_200C_200C_202C_202E(vector2.Y, vector3.Y) + num8; - Vector2 pMin = vector; - Vector2 pMax = vector + new Vector2(x, num10); - Vector4 vector4 = new Vector4(color.X, color.Y, color.Z, 0.15f); - float rounding = num10 * 0.5f; - imDrawListPtr.AddRectFilled(pMin, pMax, _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(vector4), rounding); - Vector2 pos = vector + new Vector2(num7, num8); - imDrawListPtr.AddText(_206F_206D_206C_200F_200E_206B_202A_200F_202E_206A_206E_200F_206D_206A_206F_206D_206B_200F_200E_202E_200B_206B_200D_200E_206D_200C_206D_206B_202C_202E_206B_202E_206B_202C_202A_200D_202B_200F_202C_200E_202E(), fontSize, pos, _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(color), text2); - Vector2 pos2 = vector + new Vector2(num7 + vector2.X + num9, num8); - imDrawListPtr.AddText(pos2, _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(color), text); - _206E_202D_200E_206B_202E_202E_206A_206E_200B_202A_202D_206E_202B_206F_202A_202C_202C_206E_200C_200C_202D_200E_202A_200C_200B_202E_200D_206B_206F_200C_206A_200C_206A_206A_200D_200D_202E_202C_200C_206E_202E(new Vector2(x, num10)); + Vector2 vector2 = ImGui.CalcTextSize(text); + float num = 6f; + float num2 = 2f; + float num3 = 4f; + float x = num + vector.X + num3 + vector2.X + num; + float num4 = num2 + MathF.Max(vector.Y, vector2.Y) + num2; + Vector2 pMin = cursorScreenPos; + Vector2 pMax = cursorScreenPos + new Vector2(x, num4); + Vector4 input = new Vector4(color.X, color.Y, color.Z, 0.15f); + float rounding = num4 * 0.5f; + windowDrawList.AddRectFilled(pMin, pMax, ImGui.ColorConvertFloat4ToU32(input), rounding); + Vector2 pos = cursorScreenPos + new Vector2(num, num2); + windowDrawList.AddText(UiBuilder.IconFont, fontSize, pos, ImGui.ColorConvertFloat4ToU32(color), text2); + Vector2 pos2 = cursorScreenPos + new Vector2(num + vector.X + num3, num2); + windowDrawList.AddText(pos2, ImGui.ColorConvertFloat4ToU32(color), text); + ImGui.Dummy(new Vector2(x, num4)); } public static void StatusBanner(string text, Vector4 color, FontAwesomeIcon icon) { - ImDrawListPtr imDrawListPtr = _206C_206E_202A_202B_202D_206B_206C_200B_200B_200F_202D_206B_202D_206C_200C_200C_206A_200C_206B_200E_206C_200C_206B_200E_206B_206A_200F_202B_206E_202C_206F_202D_200F_202D_202E_200C_206B_202A_202C_200F_202E(); - Vector2 vector = _202D_202E_200C_202E_200C_202D_206E_206C_202A_200C_200C_206D_202D_202E_206C_206E_206F_206F_202A_202D_200D_202D_200B_206C_202E_202D_206C_200D_202E_206D_202C_200D_202B_200D_206B_202E_206A_206B_206A_202C_202E(); - float fontSize = _200D_202A_206A_206F_202D_206E_206E_206F_206C_206F_200F_200D_200E_200F_202D_202D_202C_202D_206E_202D_202B_206C_202C_206E_206B_200E_202B_206F_202E_202A_206D_202D_200D_206B_200F_202A_202E_206F_206A_202C_202E(); - string text2 = _200E_200B_202B_206D_202E_200F_202D_200F_206C_206C_202E_202D_202D_200F_200E_200F_200F_200C_206B_200D_200D_200B_206E_206B_206B_200C_200C_202C_206C_200F_206B_202E_202B_202D_206D_206E_200E_202C_202C_200C_202E(icon); - float x = _206E_200D_200C_206B_200C_206F_200F_200B_200F_206C_206D_200D_206E_202E_200B_202E_200C_206E_206A_202A_202E_200E_206D_206B_200E_202B_202D_206C_200D_202C_202E_202B_202D_200B_200F_202E_200B_202C_200C_206E_202E().X; - ImRaii.FontDisposable fontDisposable = _202A_202E_206A_202E_206D_202A_200B_200B_200F_206D_206E_200E_200C_206B_200C_206A_200F_200E_200E_200D_200F_206B_202D_206C_202A_200D_206A_206D_200C_200D_206A_202C_206C_206C_202A_206A_200E_206C_200F_202E(_206F_206D_206C_200F_200E_206B_202A_200F_202E_206A_206E_200F_206D_206A_206F_206D_206B_200F_200E_202E_200B_206B_200D_200E_206D_200C_206D_206B_202C_202E_206B_202E_206B_202C_202A_200D_202B_200F_202C_200E_202E(), true); - Vector2 vector2; - try + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + float fontSize = ImGui.GetFontSize(); + string text2 = icon.ToIconString(); + float x = ImGui.GetContentRegionAvail().X; + Vector2 vector; + using (ImRaii.PushFont(UiBuilder.IconFont)) { - vector2 = _200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)text2, false, -1f); + vector = ImGui.CalcTextSize(text2); } - finally - { - int num = ((fontDisposable == null) ? (-1080792538) : (-1080792537)); - while (true) - { - int num2 = num; - int num3 = -1080792538; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -1080792537; - break; - case 0: - goto end_IL_0069; - case 1: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)fontDisposable); - num = -1080792538; - break; - } - continue; - end_IL_0069: - break; - } - } - Vector2 vector3 = _200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)text, false, -1f); - float y = 12f + _206D_202B_202D_200F_206A_200D_206E_206C_202C_206B_200E_206B_206B_206C_206B_200E_202C_206C_202A_206F_206E_200E_202A_202A_200B_206F_202C_200C_206E_206D_206F_202E_200F_206B_206D_202E_206E_200C_200C_202C_202E(vector2.Y, vector3.Y) + 12f; - float num7 = 6f; - Vector2 pMin = vector; - Vector2 pMax = vector + new Vector2(x, y); - Vector4 vector4 = new Vector4(color.X, color.Y, color.Z, 0.1f); - Vector4 vector5 = new Vector4(color.X, color.Y, color.Z, 0.25f); - imDrawListPtr.AddRectFilled(pMin, pMax, _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(vector4), 6f); - imDrawListPtr.AddRect(pMin, pMax, _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(vector5), 6f, ImDrawFlags.None, 1f); - Vector2 pos = vector + new Vector2(12f, 12f); - imDrawListPtr.AddText(_206F_206D_206C_200F_200E_206B_202A_200F_202E_206A_206E_200F_206D_206A_206F_206D_206B_200F_200E_202E_200B_206B_200D_200E_206D_200C_206D_206B_202C_202E_206B_202E_206B_202C_202A_200D_202B_200F_202C_200E_202E(), fontSize, pos, _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(color), text2); - Vector2 pos2 = vector + new Vector2(12f + vector2.X + num7, 12f); - imDrawListPtr.AddText(pos2, _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(color), text); - _206E_202D_200E_206B_202E_202E_206A_206E_200B_202A_202D_206E_202B_206F_202A_202C_202C_206E_200C_200C_202D_200E_202A_200C_200B_202E_200D_206B_206F_200C_206A_200C_206A_206A_200D_200D_202E_202C_200C_206E_202E(new Vector2(x, y)); + Vector2 vector2 = ImGui.CalcTextSize(text); + float y = 12f + MathF.Max(vector.Y, vector2.Y) + 12f; + float num = 6f; + Vector2 pMin = cursorScreenPos; + Vector2 pMax = cursorScreenPos + new Vector2(x, y); + Vector4 input = new Vector4(color.X, color.Y, color.Z, 0.1f); + Vector4 input2 = new Vector4(color.X, color.Y, color.Z, 0.25f); + windowDrawList.AddRectFilled(pMin, pMax, ImGui.ColorConvertFloat4ToU32(input), 6f); + windowDrawList.AddRect(pMin, pMax, ImGui.ColorConvertFloat4ToU32(input2), 6f, ImDrawFlags.None, 1f); + Vector2 pos = cursorScreenPos + new Vector2(12f, 12f); + windowDrawList.AddText(UiBuilder.IconFont, fontSize, pos, ImGui.ColorConvertFloat4ToU32(color), text2); + Vector2 pos2 = cursorScreenPos + new Vector2(12f + vector.X + num, 12f); + windowDrawList.AddText(pos2, ImGui.ColorConvertFloat4ToU32(color), text); + ImGui.Dummy(new Vector2(x, y)); } public static void EmptyState(FontAwesomeIcon icon, string title, string? hint = null) { - float x = _206E_200D_200C_206B_200C_206F_200F_200B_200F_206C_206D_200D_206E_202E_200B_202E_200C_206E_206A_202A_202E_200E_206D_206B_200E_202B_202D_206C_200D_202C_202E_202B_202D_200B_200F_202E_200B_202C_200C_206E_202E().X; - _206E_202D_200E_206B_202E_202E_206A_206E_200B_202A_202D_206E_202B_206F_202A_202C_202C_206E_200C_200C_202D_200E_202A_200C_200B_202E_200D_206B_206F_200C_206A_200C_206A_206A_200D_200D_202E_202C_200C_206E_202E(new Vector2(0f, 12f)); - ImDrawListPtr imDrawListPtr = _206C_206E_202A_202B_202D_206B_206C_200B_200B_200F_202D_206B_202D_206C_200C_200C_206A_200C_206B_200E_206C_200C_206B_200E_206B_206A_200F_202B_206E_202C_206F_202D_200F_202D_202E_200C_206B_202A_202C_200F_202E(); - string text = _200E_200B_202B_206D_202E_200F_202D_200F_206C_206C_202E_202D_202D_200F_200E_200F_200F_200C_206B_200D_200D_200B_206E_206B_206B_200C_200C_202C_206C_200F_206B_202E_202B_202D_206D_206E_200E_202C_202C_200C_202E(icon); - float fontSize = _200D_202A_206A_206F_202D_206E_206E_206F_206C_206F_200F_200D_200E_200F_202D_202D_202C_202D_206E_202D_202B_206C_202C_206E_206B_200E_202B_206F_202E_202A_206D_202D_200D_206B_200F_202A_202E_206F_206A_202C_202E() * 1.4f; - ImRaii.FontDisposable fontDisposable = _202A_202E_206A_202E_206D_202A_200B_200B_200F_206D_206E_200E_200C_206B_200C_206A_200F_200E_200E_200D_200F_206B_202D_206C_202A_200D_206A_206D_200C_200D_206A_202C_206C_206C_202A_206A_200E_206C_200F_202E(_206F_206D_206C_200F_200E_206B_202A_200F_202E_206A_206E_200F_206D_206A_206F_206D_206B_200F_200E_202E_200B_206B_200D_200E_206D_200C_206D_206B_202C_202E_206B_202E_206B_202C_202A_200D_202B_200F_202C_200E_202E(), true); - Vector2 vector; - int num; - try + float x = ImGui.GetContentRegionAvail().X; + ImGui.Dummy(new Vector2(0f, 12f)); + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + string text = icon.ToIconString(); + float fontSize = ImGui.GetFontSize() * 1.4f; + Vector2 size; + using (ImRaii.PushFont(UiBuilder.IconFont)) { - vector = _200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)text, false, -1f) * 1.4f; + size = ImGui.CalcTextSize(text) * 1.4f; } - finally + Vector2 pos = ImGui.GetCursorScreenPos() + new Vector2((x - size.X) / 2f, 0f); + windowDrawList.AddText(UiBuilder.IconFont, fontSize, pos, ImGui.ColorConvertFloat4ToU32(MutedTextColor), text); + ImGui.Dummy(size); + ImGui.Spacing(); + ImGui.SetCursorPosX((x - ImGui.CalcTextSize(title).X) / 2f); + ImGui.TextColored(in DimTextColor, title); + if (hint != null) { - num = ((fontDisposable == null) ? 145311786 : 145311785); - while (true) - { - int num2 = num; - int num3 = 145311787; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - goto end_IL_0086; - case 2: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)fontDisposable); - num = 145311786; - break; - case 0: - num = 145311785; - break; - } - continue; - end_IL_0086: - break; - } - } - Vector2 pos = _202D_202E_200C_202E_200C_202D_206E_206C_202A_200C_200C_206D_202D_202E_206C_206E_206F_206F_202A_202D_200D_202D_200B_206C_202E_202D_206C_200D_202E_206D_202C_200D_202B_200D_206B_202E_206A_206B_206A_202C_202E() + new Vector2((x - vector.X) / 2f, 0f); - imDrawListPtr.AddText(_206F_206D_206C_200F_200E_206B_202A_200F_202E_206A_206E_200F_206D_206A_206F_206D_206B_200F_200E_202E_200B_206B_200D_200E_206D_200C_206D_206B_202C_202E_206B_202E_206B_202C_202A_200D_202B_200F_202C_200E_202E(), fontSize, pos, _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(MutedTextColor), text); - _206E_202D_200E_206B_202E_202E_206A_206E_200B_202A_202D_206E_202B_206F_202A_202C_202C_206E_200C_200C_202D_200E_202A_200C_200B_202E_200D_206B_206F_200C_206A_200C_206A_206A_200D_200D_202E_202C_200C_206E_202E(vector); - _200E_202D_200C_206E_200B_206A_200E_206F_200F_200C_200D_202D_200D_200E_200B_206E_206C_206F_202D_202C_206E_200D_206B_206B_206C_206B_202D_202E_206D_202B_202D_202C_206E_206E_200C_200F_206F_206C_202C_206A_202E(); - _202D_200B_200D_206E_206D_200B_202A_206E_206A_200E_202C_206A_202D_202A_200C_206C_206E_206E_202A_206A_202A_202D_202C_206A_206F_200F_206D_202A_202B_200F_200E_200D_200D_206D_206F_202E_206A_202A_202D_202B_202E((x - _200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)title, false, -1f).X) / 2f); - _206A_200F_200E_200B_206D_200D_202D_206C_206F_202E_200B_202E_206F_202D_206C_206F_206A_206A_206C_206E_202D_206D_202D_202C_202C_206B_200D_200B_202E_206B_200C_206F_200F_206C_202E_202A_202C_200B_200B_202E_202E(ref DimTextColor, (ImU8String)title); - num = ((hint == null) ? 533396990 : 533396989); - while (true) - { - int num5 = num; - int num3 = 533396991; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 0: - num = 533396989; - break; - case 1: - _206E_202D_200E_206B_202E_202E_206A_206E_200B_202A_202D_206E_202B_206F_202A_202C_202C_206E_200C_200C_202D_200E_202A_200C_200B_202E_200D_206B_206F_200C_206A_200C_206A_206A_200D_200D_202E_202C_200C_206E_202E(new Vector2(0f, 12f)); - return; - case 2: - _200E_202D_200C_206E_200B_206A_200E_206F_200F_200C_200D_202D_200D_200E_200B_206E_206C_206F_202D_202C_206E_200D_206B_206B_206C_206B_202D_202E_206D_202B_202D_202C_206E_206E_200C_200F_206F_206C_202C_206A_202E(); - _202D_200B_200D_206E_206D_200B_202A_206E_206A_200E_202C_206A_202D_202A_200C_206C_206E_206E_202A_206A_202A_202D_202C_206A_206F_200F_206D_202A_202B_200F_200E_200D_200D_206D_206F_202E_206A_202A_202D_202B_202E((x - _200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)hint, false, -1f).X) / 2f); - _206A_200F_200E_200B_206D_200D_202D_206C_206F_202E_200B_202E_206F_202D_206C_206F_206A_206A_206C_206E_202D_206D_202D_202C_202C_206B_200D_200B_202E_206B_200C_206F_200F_206C_202E_202A_202C_200B_200B_202E_202E(ref MutedTextColor, (ImU8String)hint); - num = 533396990; - break; - } + ImGui.Spacing(); + ImGui.SetCursorPosX((x - ImGui.CalcTextSize(hint).X) / 2f); + ImGui.TextColored(in MutedTextColor, hint); } + ImGui.Dummy(new Vector2(0f, 12f)); } public static void DrawTrackerCount(string formattedText, bool isComplete, bool isEmpty) { - _206D_202E_202C_206C_206B_200C_200D_206C_206E_200C_202E_202E_206D_200C_200F_202C_202B_200E_200C_206A_206E_202D_206F_200B_200E_200D_200E_202B_206F_202D_202B_206D_206B_200C_200E_206A_206F_200D_206F_200F_202E(_200B_200B_206B_206E_202A_202A_206C_206C_200D_206A_206F_206C_200C_206A_206E_206B_206A_206E_202B_200B_206D_200E_206C_200F_206E_200B_202B_202C_202C_200D_200E_202D_200F_206F_206E_206A_202C_202E_202E_206B_202E()); - int num = ((!isEmpty) ? (-1597827944) : (-1597827942)); - while (true) + ImGui.PushFont(UiBuilder.MonoFont); + if (isEmpty) { - int num2 = num; - int num3 = -1597827941; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - num = -1597827942; - break; - case 0: - _200E_200D_200C_200E_200D_202E_206B_206A_200F_202E_200F_206D_200E_200B_200B_206E_200E_206A_202C_200B_202B_202B_206A_202B_200D_200D_200D_202C_206C_202E_206B_202B_206D_206A_206F_200B_202D_202B_200F_206F_202E(); - return; - case 3: - num = ((!isComplete) ? (-1597827943) : (-1597827937)); - break; - case 1: - _206A_200F_200E_200B_206D_200D_202D_206C_206F_202E_200B_202E_206F_202D_206C_206F_206A_206A_206C_206E_202D_206D_202D_202C_202C_206B_200D_200B_202E_206B_200C_206F_200F_206C_202E_202A_202C_200B_200B_202E_202E(ref StatusUnobtainable, (ImU8String)formattedText); - num = -1597827941; - break; - case 4: - _206A_200F_200E_200B_206D_200D_202D_206C_206F_202E_200B_202E_206F_202D_206C_206F_206A_206A_206C_206E_202D_206D_202D_202C_202C_206B_200D_200B_202E_206B_200C_206F_200F_206C_202E_202A_202C_200B_200B_202E_202E(ref StatusComplete, (ImU8String)formattedText); - num = -1597827941; - break; - case 2: - _200E_202A_206A_200E_206E_206E_206B_206B_206B_206C_206F_202A_200E_206A_200C_200E_202E_202C_206C_200E_206D_202C_200F_200C_206E_200D_200E_202D_206D_206A_200E_200B_202B_206E_206E_206B_200C_202A_206B_200C_202E((ImU8String)formattedText); - num = -1597827941; - break; - } + ImGui.TextColored(in StatusUnobtainable, formattedText); } + else if (isComplete) + { + ImGui.TextColored(in StatusComplete, formattedText); + } + else + { + ImGui.TextUnformatted(formattedText); + } + ImGui.PopFont(); } public static void DrawTrackerGroupCaret(IFontHandle iconFontFixedWidth, bool expanded) { - _206F_202A_202E_202B_200E_202E_206A_200C_202C_200D_202A_200B_206F_202A_206F_200B_202D_200C_206C_200C_202E_200E_202E_206C_202B_200D_202C_202D_200D_206A_202A_200E_202B_206D_200F_206E_206E_206A_206F_200E_202E(ImGuiTableBgTarget.RowBg0, _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(CardBackgroundColor)); - IDisposable disposable = _206B_206B_206D_206A_200E_202C_206C_206F_206E_200B_206F_200E_200D_200C_206B_206C_202C_202A_200D_206E_206F_206F_202B_206C_202E_206B_206A_200D_206B_200B_200C_202A_202A_206F_200E_206F_200B_206D_206B_202E_202E(iconFontFixedWidth); - try + ImGui.TableSetBgColor(ImGuiTableBgTarget.RowBg0, ImGui.ColorConvertFloat4ToU32(CardBackgroundColor)); + using (iconFontFixedWidth.Push()) { - _206A_200F_200E_200B_206D_200D_202D_206C_206F_202E_200B_202E_206F_202D_206C_206F_206A_206A_206C_206E_202D_206D_202D_202C_202C_206B_200D_200B_202E_206B_200C_206F_200F_206C_202E_202A_202C_200B_200B_202E_202E(ref AccentColor, (ImU8String)_200E_200B_202B_206D_202E_200F_202D_200F_206C_206C_202E_202D_202D_200F_200E_200F_200F_200C_206B_200D_200D_200B_206E_206B_206B_200C_200C_202C_206C_200F_206B_202E_202B_202D_206D_206E_200E_202C_202C_200C_202E(expanded ? FontAwesomeIcon.CaretDown : FontAwesomeIcon.CaretRight)); - } - finally - { - int num = ((disposable == null) ? 261348162 : 261348161); - while (true) - { - int num2 = num; - int num3 = 261348160; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 261348161; - break; - case 1: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E(disposable); - num = 261348162; - break; - case 2: - goto end_IL_0061; - } - continue; - end_IL_0061: - break; - } + ImGui.TextColored(in AccentColor, (expanded ? FontAwesomeIcon.CaretDown : FontAwesomeIcon.CaretRight).ToIconString()); } } public static void DrawAltRowBackground(int rowIndex) { - int num = ((rowIndex % 2 != 0) ? 1971807013 : 1971807012); - while (true) + if (rowIndex % 2 == 0) { - int num2 = num; - int num3 = 1971807013; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1971807012; - break; - case 1: - { - ImDrawListPtr imDrawListPtr = _206C_206E_202A_202B_202D_206B_206C_200B_200B_200F_202D_206B_202D_206C_200C_200C_206A_200C_206B_200E_206C_200C_206B_200E_206B_206A_200F_202B_206E_202C_206F_202D_200F_202D_202E_200C_206B_202A_202C_200F_202E(); - Vector2 pMin = _202D_202E_200C_202E_200C_202D_206E_206C_202A_200C_200C_206D_202D_202E_206C_206E_206F_206F_202A_202D_200D_202D_200B_206C_202E_202D_206C_200D_202E_206D_202C_200D_202B_200D_206B_202E_206A_206B_206A_202C_202E(); - imDrawListPtr.AddRectFilled(pMax: new Vector2(pMin.X + _206E_200D_200C_206B_200C_206F_200F_200B_200F_206C_206D_200D_206E_202E_200B_202E_200C_206E_206A_202A_202E_200E_206D_206B_200E_202B_202D_206C_200D_202C_202E_202B_202D_200B_200F_202E_200B_202C_200C_206E_202E().X, pMin.Y + _200E_202A_206E_200F_202C_200C_200B_200F_206F_206F_206E_202E_200D_200D_202C_200E_200B_206D_206A_200E_200F_202C_206A_202C_200D_206A_202B_200E_206A_202C_206F_200B_202E_206E_202A_206D_202E_206C_206D_206E_202E()), pMin: pMin, col: AltRowColor); - num = 1971807013; - break; - } - case 0: - return; - } + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + windowDrawList.AddRectFilled(pMax: new Vector2(cursorScreenPos.X + ImGui.GetContentRegionAvail().X, cursorScreenPos.Y + ImGui.GetTextLineHeightWithSpacing()), pMin: cursorScreenPos, col: AltRowColor); } } public static void DrawRowBackground(Vector2 topLeft, Vector2 bottomRight) { - _206C_206E_202A_202B_202D_206B_206C_200B_200B_200F_202D_206B_202D_206C_200C_200C_206A_200C_206B_200E_206C_200C_206B_200E_206B_206A_200F_202B_206E_202C_206F_202D_200F_202D_202E_200C_206B_202A_202C_200F_202E().AddRectFilled(topLeft, bottomRight, _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(CardBackgroundColor), 3f); + ImGui.GetWindowDrawList().AddRectFilled(topLeft, bottomRight, ImGui.ColorConvertFloat4ToU32(CardBackgroundColor), 3f); } - [MethodImpl(MethodImplOptions.NoInlining)] public static bool ThemedAccordion(string id, string label, string? rightText, ref bool open, bool enabled = true) { - ImRaii.IdDisposable idDisposable = _200D_200F_206C_202D_206B_206F_206E_206E_202D_202C_202E_202B_202D_206E_202B_200E_206C_202B_202D_200E_200B_206F_202B_200E_200B_200C_202A_202A_202C_200C_206A_206F_200E_202C_200F_206F_200D_206E_200C_202D_202E((ImU8String)id, true); - try + using (ImRaii.PushId(id)) { - float x = _206E_200D_200C_206B_200C_206F_200F_200B_200F_206C_206D_200D_206E_202E_200B_202E_200C_206E_206A_202A_202E_200E_206D_206B_200E_202B_202D_206C_200D_202C_202E_202B_202D_200B_200F_202E_200B_202C_200C_206E_202E().X - _cardContentRightInset; - float num = _206B_200B_200D_202B_202D_202E_206F_200E_206A_202D_206C_206E_200F_200F_206A_202B_206D_200D_206B_206E_206D_202C_200E_206E_200E_200F_200E_200B_202A_200B_206B_200C_202E_202A_206C_206F_206F_200D_206C_200D_202E(); - ImRaii.ColorDisposable colorDisposable = _200C_200C_200F_200D_206A_200E_202A_206D_200E_202C_206F_206D_200E_200B_206E_200D_206C_202C_202A_202D_200B_202D_206B_202A_202B_206A_200B_206F_206E_200B_206A_206A_202E_202A_200E_200F_200F_206B_202B_200F_202E(ImGuiCol.Header, Vector4.Zero, true); - int num2; - try + float x = ImGui.GetContentRegionAvail().X - _cardContentRightInset; + float frameHeight = ImGui.GetFrameHeight(); + using (ImRaii.ColorDisposable colorDisposable = ImRaii.PushColor(ImGuiCol.Header, Vector4.Zero)) { - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable, ImGuiCol.HeaderHovered, Vector4.Zero, true); - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable, ImGuiCol.HeaderActive, Vector4.Zero, true); - num2 = ((!(_200C_206D_206C_202B_206F_202B_206B_200F_200F_202B_200D_206C_206D_202A_200F_200E_202A_206C_202A_200F_200B_200E_206B_206A_202B_200B_206C_200D_206C_200E_206A_202D_200F_206C_206A_200F_206E_200C_200E_200D_202E((ImU8String)global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1054108485), false, ImGuiSelectableFlags.None, new Vector2(x, num)) && enabled)) ? (-581565881) : (-581565884)); - while (true) + colorDisposable.Push(ImGuiCol.HeaderHovered, Vector4.Zero); + colorDisposable.Push(ImGuiCol.HeaderActive, Vector4.Zero); + if (ImGui.Selectable("##hdr", selected: false, ImGuiSelectableFlags.None, new Vector2(x, frameHeight)) && enabled) { - int num3 = num2; - int num4 = -581565883; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = -581565884; - break; - case 1: - open = !open; - num2 = -581565881; - break; - case 2: - goto end_IL_0090; - } - continue; - end_IL_0090: - break; + open = !open; } } - finally + bool num = enabled && ImGui.IsItemHovered(); + Vector2 itemRectMin = ImGui.GetItemRectMin(); + Vector2 itemRectMax = ImGui.GetItemRectMax(); + float x2 = ImGui.GetStyle().ItemSpacing.X; + float num2 = MathF.Truncate(x2 * 0.5f); + itemRectMin.X += num2; + itemRectMax.X -= x2 - num2; + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + windowDrawList.AddRectFilled(itemRectMin, itemRectMax, ImGui.ColorConvertFloat4ToU32(CardBackgroundColor), 4f); + windowDrawList.AddRect(itemRectMin, itemRectMax, ImGui.ColorConvertFloat4ToU32(CardBorderColor), 4f, ImDrawFlags.None, 1f); + if (num) { - num2 = ((colorDisposable == null) ? (-1710279402) : (-1710279403)); - while (true) - { - int num6 = num2; - int num4 = -1710279401; - int num5 = num6; - switch ((num5 | num4) - (num5 & num4)) - { - case 1: - goto end_IL_00ff; - case 2: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)colorDisposable); - num2 = -1710279402; - break; - case 0: - num2 = -1710279403; - break; - } - continue; - end_IL_00ff: - break; - } + windowDrawList.AddRectFilled(itemRectMin, itemRectMax, ImGui.ColorConvertFloat4ToU32(SubtleHoverColor), 4f); } - num2 = ((!enabled) ? (-1780703774) : (-1780703775)); - ImDrawListPtr imDrawListPtr = default(ImDrawListPtr); - Vector2 pMin = default(Vector2); - Vector2 pMax = default(Vector2); - float fontSize = default(float); - float num9 = default(float); - while (true) + float fontSize = ImGui.GetFontSize(); + float num3 = itemRectMin.X + 12f; + if (enabled) { - int num7 = num2; - int num4 = -1780703772; - int num5 = num7; - int num11; - int num8; - float x2; - float num10; - string text; - ImRaii.FontDisposable fontDisposable; + string text = (open ? FontAwesomeIcon.CaretDown : FontAwesomeIcon.CaretRight).ToIconString(); Vector2 vector; - switch ((num5 | num4) - (num5 & num4)) + using (ImRaii.PushFont(UiBuilder.IconFont)) { - default: - continue; - case 2: - num2 = (open ? (-1780703769) : (-1780703771)); - continue; - case 5: - num11 = (_200B_202A_202D_206F_206A_200F_206A_206C_200F_202A_202B_202D_200D_200E_202A_206A_206D_206E_202A_206C_200E_206D_202A_206E_202B_200E_202A_206F_206B_202C_206D_200F_206F_206A_200C_200E_202A_206A_206C_202E_202E() ? 1 : 0); - goto IL_01e0; - case 6: - num11 = 0; - goto IL_01e0; - case 0: - num2 = -1780703775; - continue; - case 7: - imDrawListPtr.AddRectFilled(pMin, pMax, _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(SubtleHoverColor), 4f); - num2 = -1780703776; - continue; - case 1: - num8 = 61658; - goto IL_02fe; - case 4: - fontSize = _200D_202A_206A_206F_202D_206E_206E_206F_206C_206F_200F_200D_200E_200F_202D_202D_202C_202D_206E_202D_202B_206C_202C_206E_206B_200E_202B_206F_202E_202A_206D_202D_200D_206B_200F_202A_202E_206F_206A_202C_202E(); - num9 = pMin.X + 12f; - if (enabled) - { - num2 = -1780703770; - continue; - } - break; - case 3: - { - num8 = 61655; - goto IL_02fe; - } - IL_01e0: - pMin = _202B_200E_200C_206B_206B_206C_206E_206E_200D_206A_200E_206C_206C_200D_206B_206D_200D_206F_200E_206D_206D_202A_206A_200E_200B_200F_200C_206B_206C_202B_200D_206B_202D_206F_202E_206C_206D_202D_200F_202C_202E(); - pMax = _200E_202B_202A_206C_206A_206E_206B_206C_200F_200B_206F_200D_200C_206B_202D_200D_200E_202B_206D_200E_202D_202E_200D_202D_200B_206B_200E_202E_200D_206D_200C_206F_200C_202E_206A_206D_206F_200F_206B_206E_202E(); - x2 = _200D_200C_206C_206C_200E_202C_202D_200E_206D_206A_206D_202B_200D_202E_202C_200E_206E_200F_206E_200F_200C_206B_200F_206C_206C_200C_206F_202D_200E_206A_202D_200C_200B_202C_202A_202D_206F_202B_206F_200D_202E().ItemSpacing.X; - num10 = _206F_200C_206A_202A_202B_206C_200C_200E_202A_200F_202C_200C_206D_202C_206D_202A_200D_206A_206F_206A_200B_202B_200C_200E_206B_206F_200B_202A_200E_206B_202E_206B_206F_200E_202B_200B_200C_202E_206F_200C_202E(x2 * 0.5f); - pMin.X += num10; - pMax.X -= x2 - num10; - imDrawListPtr = _206C_206E_202A_202B_202D_206B_206C_200B_200B_200F_202D_206B_202D_206C_200C_200C_206A_200C_206B_200E_206C_200C_206B_200E_206B_206A_200F_202B_206E_202C_206F_202D_200F_202D_202E_200C_206B_202A_202C_200F_202E(); - imDrawListPtr.AddRectFilled(pMin, pMax, _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(CardBackgroundColor), 4f); - imDrawListPtr.AddRect(pMin, pMax, _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(CardBorderColor), 4f, ImDrawFlags.None, 1f); - num2 = ((num11 == 0) ? (-1780703776) : (-1780703773)); - continue; - IL_02fe: - text = _200E_200B_202B_206D_202E_200F_202D_200F_206C_206C_202E_202D_202D_200F_200E_200F_200F_200C_206B_200D_200D_200B_206E_206B_206B_200C_200C_202C_206C_200F_206B_202E_202B_202D_206D_206E_200E_202C_202C_200C_202E((FontAwesomeIcon)num8); - fontDisposable = _202A_202E_206A_202E_206D_202A_200B_200B_200F_206D_206E_200E_200C_206B_200C_206A_200F_200E_200E_200D_200F_206B_202D_206C_202A_200D_206A_206D_200C_200D_206A_202C_206C_206C_202A_206A_200E_206C_200F_202E(_206F_206D_206C_200F_200E_206B_202A_200F_202E_206A_206E_200F_206D_206A_206F_206D_206B_200F_200E_202E_200B_206B_200D_200E_206D_200C_206D_206B_202C_202E_206B_202E_206B_202C_202A_200D_202B_200F_202C_200E_202E(), true); - try - { - vector = _200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)text, false, -1f); - } - finally - { - num2 = ((fontDisposable == null) ? (-309485944) : (-309485943)); - while (true) - { - int num12 = num2; - num4 = -309485944; - num5 = num12; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - num2 = -309485943; - break; - case 0: - goto end_IL_034a; - case 1: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)fontDisposable); - num2 = -309485944; - break; - } - continue; - end_IL_034a: - break; - } - } - imDrawListPtr.AddText(_206F_206D_206C_200F_200E_206B_202A_200F_202E_206A_206E_200F_206D_206A_206F_206D_206B_200F_200E_202E_200B_206B_200D_200E_206D_200C_206D_206B_202C_202E_206B_202E_206B_202C_202A_200D_202B_200F_202C_200E_202E(), fontSize, new Vector2(num9, pMin.Y + (num - vector.Y) / 2f), _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(AccentColor), text); - break; + vector = ImGui.CalcTextSize(text); } - break; + windowDrawList.AddText(UiBuilder.IconFont, fontSize, new Vector2(num3, itemRectMin.Y + (frameHeight - vector.Y) / 2f), ImGui.ColorConvertFloat4ToU32(AccentColor), text); } - Vector2 vector2 = _200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)label, false, -1f); - imDrawListPtr.AddText(new Vector2(num9 + 18f, pMin.Y + (num - vector2.Y) / 2f), _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(enabled ? PrimaryTextColor : DimTextColor), label); - if (!_202B_200F_206E_202D_200E_202B_202B_206C_206E_202B_200C_206B_202C_206A_200E_200F_202D_202C_206C_202B_202B_202E_200B_202D_202C_206A_206E_206A_202B_206D_206B_202A_200E_206A_206B_206E_200D_200E_202D_200E_202E(rightText)) + Vector2 vector2 = ImGui.CalcTextSize(label); + windowDrawList.AddText(new Vector2(num3 + 18f, itemRectMin.Y + (frameHeight - vector2.Y) / 2f), ImGui.ColorConvertFloat4ToU32(enabled ? PrimaryTextColor : DimTextColor), label); + if (!string.IsNullOrEmpty(rightText)) { - ImRaii.FontDisposable fontDisposable = _202A_202E_206A_202E_206D_202A_200B_200B_200F_206D_206E_200E_200C_206B_200C_206A_200F_200E_200E_200D_200F_206B_202D_206C_202A_200D_206A_206D_200C_200D_206A_202C_206C_206C_202A_206A_200E_206C_200F_202E(_200B_200B_206B_206E_202A_202A_206C_206C_200D_206A_206F_206C_200C_206A_206E_206B_206A_206E_202B_200B_206D_200E_206C_200F_206E_200B_202B_202C_202C_200D_200E_202D_200F_206F_206E_206A_202C_202E_202E_206B_202E(), true); Vector2 vector3; - try + using (ImRaii.PushFont(UiBuilder.MonoFont)) { - vector3 = _200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)rightText, false, -1f); + vector3 = ImGui.CalcTextSize(rightText); } - finally - { - num2 = ((fontDisposable == null) ? (-700255459) : (-700255460)); - while (true) - { - int num13 = num2; - int num4 = -700255459; - int num5 = num13; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - num2 = -700255460; - break; - case 1: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)fontDisposable); - num2 = -700255459; - break; - case 0: - goto end_IL_0484; - } - continue; - end_IL_0484: - break; - } - } - float x3 = pMax.X - 12f - vector3.X; - imDrawListPtr.AddText(_200B_200B_206B_206E_202A_202A_206C_206C_200D_206A_206F_206C_200C_206A_206E_206B_206A_206E_202B_200B_206D_200E_206C_200F_206E_200B_202B_202C_202C_200D_200E_202D_200F_206F_206E_206A_202C_202E_202E_206B_202E(), fontSize, new Vector2(x3, pMin.Y + (num - vector3.Y) / 2f), _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(DimTextColor), rightText); + float x3 = itemRectMax.X - 12f - vector3.X; + windowDrawList.AddText(UiBuilder.MonoFont, fontSize, new Vector2(x3, itemRectMin.Y + (frameHeight - vector3.Y) / 2f), ImGui.ColorConvertFloat4ToU32(DimTextColor), rightText); } return open; } - finally - { - int num2 = ((idDisposable == null) ? (-2111830654) : (-2111830655)); - while (true) - { - int num14 = num2; - int num4 = -2111830656; - int num5 = num14; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = -2111830655; - break; - case 2: - goto end_IL_054e; - case 1: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)idDisposable); - num2 = -2111830654; - break; - } - continue; - end_IL_054e: - break; - } - } } - [MethodImpl(MethodImplOptions.NoInlining)] public static bool WrappedCheckbox(string label, ref bool value, string? infoTooltip = null) { - ImU8String imU8String = new ImU8String(2, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(417604067)); - imU8String.AppendFormatted(label); - bool result = _206F_202C_206C_200E_206C_206C_206B_200F_206C_200E_206A_206E_200E_202E_206B_206A_206C_202B_206C_202C_200C_202C_206B_200D_200C_206A_206E_200E_206D_206D_200D_202A_206F_206C_200F_206B_206F_200F_200C_206F_202E(imU8String, ref value); - _206D_206A_206D_202E_206E_206F_206F_206B_200F_200F_202A_206E_206C_200F_200D_200B_206D_206F_206E_206A_202C_200F_206A_200D_200C_206D_206A_206C_206A_206A_206C_206D_202E_202B_206F_200F_200D_200E_206E_202A_202E(); + ImU8String label2 = new ImU8String(2, 1); + label2.AppendLiteral("##"); + label2.AppendFormatted(label); + bool result = ImGui.Checkbox(label2, ref value); + ImGui.SameLine(); if (infoTooltip != null) { - ImRaii.FontDisposable fontDisposable = _202A_202E_206A_202E_206D_202A_200B_200B_200F_206D_206E_200E_200C_206B_200C_206A_200F_200E_200E_200D_200F_206B_202D_206C_202A_200D_206A_206D_200C_200D_206A_202C_206C_206C_202A_206A_200E_206C_200F_202E(_206F_206D_206C_200F_200E_206B_202A_200F_202E_206A_206E_200F_206D_206A_206F_206D_206B_200F_200E_202E_200B_206B_200D_200E_206D_200C_206D_206B_202C_202E_206B_202E_206B_202C_202A_200D_202B_200F_202C_200E_202E(), true); float x; - try + using (ImRaii.PushFont(UiBuilder.IconFont)) { - x = _200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)_200E_200B_202B_206D_202E_200F_202D_200F_206C_206C_202E_202D_202D_200F_200E_200F_200F_200C_206B_200D_200D_200B_206E_206B_206B_200C_200C_202C_206C_200F_206B_202E_202B_202D_206D_206E_200E_202C_202C_200C_202E(FontAwesomeIcon.InfoCircle), false, -1f).X; + x = ImGui.CalcTextSize(FontAwesomeIcon.InfoCircle.ToIconString()).X; } - finally + ImGui.PushTextWrapPos(ImGui.GetCursorPosX() + ImGui.GetContentRegionAvail().X - x - ImGui.GetStyle().ItemSpacing.X); + ImGui.Text(label); + ImGui.PopTextWrapPos(); + ImGui.SameLine(); + using (ImRaii.PushFont(UiBuilder.IconFont)) { - int num = ((fontDisposable == null) ? (-1353435682) : (-1353435683)); - while (true) + ImGui.TextColored(in DimTextColor, FontAwesomeIcon.InfoCircle.ToIconString()); + } + if (ImGui.IsItemHovered()) + { + using (ImRaii.Tooltip()) { - int num2 = num; - int num3 = -1353435681; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1353435683; - break; - case 2: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)fontDisposable); - num = -1353435682; - break; - case 1: - goto end_IL_0084; - } - continue; - end_IL_0084: - break; - } - } - _202C_200D_202A_206C_200E_202C_200B_200B_202A_206B_202E_202C_202C_200D_206B_202D_200D_206B_202B_206E_206D_202C_200E_202A_202D_206A_206C_202C_202A_200D_202A_200B_200E_206B_202B_200F_202E_202B_200C_200F_202E(_202D_200B_200D_202B_202D_206D_200D_206C_206B_200D_200B_206C_206D_200C_202E_206D_206C_200B_202B_202D_200D_200F_200C_202E_200E_202A_206C_206A_206D_202D_200C_202E_206F_206C_206E_202C_200D_206B_206B_200C_202E() + _206E_200D_200C_206B_200C_206F_200F_200B_200F_206C_206D_200D_206E_202E_200B_202E_200C_206E_206A_202A_202E_200E_206D_206B_200E_202B_202D_206C_200D_202C_202E_202B_202D_200B_200F_202E_200B_202C_200C_206E_202E().X - x - _200D_200C_206C_206C_200E_202C_202D_200E_206D_206A_206D_202B_200D_202E_202C_200E_206E_200F_206E_200F_200C_206B_200F_206C_206C_200C_206F_202D_200E_206A_202D_200C_200B_202C_202A_202D_206F_202B_206F_200D_202E().ItemSpacing.X); - _202E_202B_206B_202E_206E_206A_202E_202A_202B_206C_206E_206D_200C_202A_206D_200C_206A_202E_200D_202C_200F_206B_206C_202E_202A_206F_200E_200B_200C_206C_202C_202E_206A_200C_206E_200D_202E_202A_200F_202C_202E((ImU8String)label); - _200C_200C_206E_200B_200E_202C_200E_206D_206C_202C_200D_202C_200D_206B_202C_206D_202D_206C_200E_202D_206A_206B_206D_202C_200C_206A_202D_200E_200E_200B_206C_202B_200D_200F_206D_202A_202C_200B_202E_202A_202E(); - _206D_206A_206D_202E_206E_206F_206F_206B_200F_200F_202A_206E_206C_200F_200D_200B_206D_206F_206E_206A_202C_200F_206A_200D_200C_206D_206A_206C_206A_206A_206C_206D_202E_202B_206F_200F_200D_200E_206E_202A_202E(); - fontDisposable = _202A_202E_206A_202E_206D_202A_200B_200B_200F_206D_206E_200E_200C_206B_200C_206A_200F_200E_200E_200D_200F_206B_202D_206C_202A_200D_206A_206D_200C_200D_206A_202C_206C_206C_202A_206A_200E_206C_200F_202E(_206F_206D_206C_200F_200E_206B_202A_200F_202E_206A_206E_200F_206D_206A_206F_206D_206B_200F_200E_202E_200B_206B_200D_200E_206D_200C_206D_206B_202C_202E_206B_202E_206B_202C_202A_200D_202B_200F_202C_200E_202E(), true); - try - { - _206A_200F_200E_200B_206D_200D_202D_206C_206F_202E_200B_202E_206F_202D_206C_206F_206A_206A_206C_206E_202D_206D_202D_202C_202C_206B_200D_200B_202E_206B_200C_206F_200F_206C_202E_202A_202C_200B_200B_202E_202E(ref DimTextColor, (ImU8String)_200E_200B_202B_206D_202E_200F_202D_200F_206C_206C_202E_202D_202D_200F_200E_200F_200F_200C_206B_200D_200D_200B_206E_206B_206B_200C_200C_202C_206C_200F_206B_202E_202B_202D_206D_206E_200E_202C_202C_200C_202E(FontAwesomeIcon.InfoCircle)); - } - finally - { - int num = ((fontDisposable == null) ? 177849368 : 177849371); - while (true) - { - int num5 = num; - int num3 = 177849369; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 1: - goto end_IL_0157; - case 2: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)fontDisposable); - num = 177849368; - break; - case 0: - num = 177849371; - break; - } - continue; - end_IL_0157: - break; - } - } - if (_200B_202A_202D_206F_206A_200F_206A_206C_200F_202A_202B_202D_200D_200E_202A_206A_206D_206E_202A_206C_200E_206D_202A_206E_202B_200E_202A_206F_206B_202C_206D_200F_206F_206A_200C_200E_202A_206A_206C_202E_202E()) - { - using (_200D_202A_206C_206B_206E_202D_202E_200D_202A_200C_206F_206B_206D_200B_202D_200F_200D_206D_202A_206A_200D_206A_200D_200B_202C_206F_200C_200C_206C_200C_206A_200C_206E_202C_206D_202B_206E_202B_206C_200F_202E()) - { - _202C_200D_202A_206C_200E_202C_200B_200B_202A_206B_202E_202C_202C_200D_206B_202D_200D_206B_202B_206E_206D_202C_200E_202A_202D_206A_206C_202C_202A_200D_202A_200B_200E_206B_202B_200F_202E_202B_200C_200F_202E(400f); - _202E_202B_206B_202E_206E_206A_202E_202A_202B_206C_206E_206D_200C_202A_206D_200C_206A_202E_200D_202C_200F_206B_206C_202E_202A_206F_200E_200B_200C_206C_202C_202E_206A_200C_206E_200D_202E_202A_200F_202C_202E((ImU8String)infoTooltip); - _200C_200C_206E_200B_200E_202C_200E_206D_206C_202C_200D_202C_200D_206B_202C_206D_202D_206C_200E_202D_206A_206B_206D_202C_200C_206A_202D_200E_200E_200B_206C_202B_200D_200F_206D_202A_202C_200B_202E_202A_202E(); + ImGui.PushTextWrapPos(400f); + ImGui.Text(infoTooltip); + ImGui.PopTextWrapPos(); } } } else { - _202C_200D_202A_206C_200E_202C_200B_200B_202A_206B_202E_202C_202C_200D_206B_202D_200D_206B_202B_206E_206D_202C_200E_202A_202D_206A_206C_202C_202A_200D_202A_200B_200E_206B_202B_200F_202E_202B_200C_200F_202E(0f); - _202E_202B_206B_202E_206E_206A_202E_202A_202B_206C_206E_206D_200C_202A_206D_200C_206A_202E_200D_202C_200F_206B_206C_202E_202A_206F_200E_200B_200C_206C_202C_202E_206A_200C_206E_200D_202E_202A_200F_202C_202E((ImU8String)label); - _200C_200C_206E_200B_200E_202C_200E_206D_206C_202C_200D_202C_200D_206B_202C_206D_202D_206C_200E_202D_206A_206B_206D_202C_200C_206A_202D_200E_200E_200B_206C_202B_200D_200F_206D_202A_202C_200B_202E_202A_202E(); + ImGui.PushTextWrapPos(0f); + ImGui.Text(label); + ImGui.PopTextWrapPos(); } return result; } - [MethodImpl(MethodImplOptions.NoInlining)] public static int CheckboxGrid(string id, ReadOnlySpan<GridCheckbox> items, int columns = 2) { - ImRaii.IdDisposable idDisposable = _200D_200F_206C_202D_206B_206F_206E_206E_202D_202C_202E_202B_202D_206E_202B_200E_206C_202B_202D_200E_200B_206F_202B_200E_200B_200C_202A_202A_202C_200C_206A_206F_200E_202C_200F_206F_200D_206E_200C_202D_202E((ImU8String)id, true); - try + using (ImRaii.PushId(id)) { - float x = _206E_200D_200C_206B_200C_206F_200F_200B_200F_206C_206D_200D_206E_202E_200B_202E_200C_206E_206A_202A_202E_200E_206D_206B_200E_202B_202D_206C_200D_202C_202E_202B_202D_200B_200F_202E_200B_202C_200C_206E_202E().X; - float x2 = _200D_200C_206C_206C_200E_202C_202D_200E_206D_206A_206D_202B_200D_202E_202C_200E_206E_200F_206E_200F_200C_206B_200F_206C_206C_200C_206F_202D_200E_206A_202D_200C_200B_202C_202A_202D_206F_202B_206F_200D_202E().ItemSpacing.X; + float x = ImGui.GetContentRegionAvail().X; + float x2 = ImGui.GetStyle().ItemSpacing.X; float num = 0f; ReadOnlySpan<GridCheckbox> readOnlySpan = items; - int num2 = 0; - int num3 = -1026376026; - int num8 = default(int); - float num11 = default(float); - float num7 = default(float); - int result = default(int); - while (true) + for (int i = 0; i < readOnlySpan.Length; i++) { - int num4 = num3; - int num5 = -1026376019; - int num6 = num4; - switch ((num6 | num5) - (num6 & num5)) + GridCheckbox gridCheckbox = readOnlySpan[i]; + float num2 = ImGui.GetFrameHeight() + x2 + ImGui.CalcTextSize(gridCheckbox.Label).X; + if (gridCheckbox.Tooltip != null) { - case 1: - _206D_206A_206D_202E_206E_206F_206F_206B_200F_200F_202A_206E_206C_200F_200D_200B_206D_206F_206E_206A_202C_200F_206A_200D_200C_206D_206A_206C_206A_206A_206C_206D_202E_202B_206F_200F_200D_200E_206E_202A_202E(); - _200E_202A_206A_200E_206E_206E_206B_206B_206B_206C_206F_202A_200E_206A_200C_200E_202E_202C_206C_200E_206D_202C_200F_200C_206E_200D_200E_202D_206D_206A_200E_200B_202B_206E_206E_206B_200C_202A_206B_200C_202E((ImU8String)items[num8].Label); - num3 = ((items[num8].Tooltip == null) ? (-1026376004) : (-1026376018)); - break; - case 3: - _206D_206A_206D_202E_206E_206F_206F_206B_200F_200F_202A_206E_206C_200F_200D_200B_206D_206F_206E_206A_202C_200F_206A_200D_200C_206D_206A_206C_206A_206A_206C_206D_202E_202B_206F_200F_200D_200E_206E_202A_202E(); - InfoIcon(items[num8].Tooltip); - num3 = -1026376004; - break; - case 7: - num11 += x2 + _200D_202A_206A_206F_202D_206E_206E_206F_206C_206F_200F_200D_200E_200F_202D_202D_202C_202D_206E_202D_202B_206C_202C_206E_206B_200E_202B_206F_202E_202A_206D_202D_200D_206B_200F_202A_202E_206F_206A_202C_202E(); - num3 = -1026376017; - break; - case 6: - num3 = ((num > x / (float)columns) ? (-1026376029) : (-1026376032)); - break; - case 13: - num7 = x / (float)columns; - result = -1; - num8 = 0; - num3 = -1026376031; - break; - case 2: - { - num = _206D_202B_202D_200F_206A_200D_206E_206C_202C_206B_200E_206B_206B_206C_206B_200E_202C_206C_202A_206F_206E_200E_202A_202A_200B_206F_202C_200C_206E_206D_206F_202E_200F_206B_206D_202E_206E_200C_200C_202C_202E(num, num11); - int num12 = num2; - num5 = 1; - num6 = num12; - int num13 = num6 ^ num5; - int num14 = num6 & num5; - num2 = num13 + (num14 + num14); - num3 = -1026376026; - break; + num2 += x2 + ImGui.GetFontSize(); } - case 0: + num = MathF.Max(num, num2); + } + while (columns > 1 && num > x / (float)columns) + { + columns--; + } + float num3 = x / (float)columns; + int result = -1; + for (int j = 0; j < items.Length; j++) + { + if (j % columns != 0) { - bool value = items[num8].Value; - ImU8String imU8String = new ImU8String(4, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1503654672)); - imU8String.AppendFormatted(num8); - num3 = ((!_206F_202C_206C_200E_206C_206C_206B_200F_206C_200E_206A_206E_200E_202E_206B_206A_206C_202B_206C_202C_200C_202C_206B_200D_200C_206A_206E_200E_206D_206D_200D_202A_206F_206C_200F_206B_206F_200F_200C_206F_202E(imU8String, ref value)) ? (-1026376020) : (-1026376001)); - break; + ImGui.SameLine(num3 * (float)(j % columns)); } - case 4: - num3 = ((columns <= 1) ? (-1026376032) : (-1026376021)); - break; - case 18: - result = num8; - num3 = -1026376020; - break; - case 9: - num3 = -1026376023; - break; - case 15: + bool v = items[j].Value; + ImU8String label = new ImU8String(4, 1); + label.AppendLiteral("##cg"); + label.AppendFormatted(j); + if (ImGui.Checkbox(label, ref v)) { - GridCheckbox gridCheckbox = readOnlySpan[num2]; - num11 = _206B_200B_200D_202B_202D_202E_206F_200E_206A_202D_206C_206E_200F_200F_206A_202B_206D_200D_206B_206E_206D_202C_200E_206E_200E_200F_200E_200B_202A_200B_206B_200C_202E_202A_206C_206F_206F_200D_206C_200D_202E() + x2 + _200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)gridCheckbox.Label, false, -1f).X; - num3 = ((gridCheckbox.Tooltip == null) ? (-1026376017) : (-1026376022)); - break; + result = j; } - case 8: - num3 = ((num8 % columns == 0) ? (-1026376019) : (-1026376025)); - break; - case 12: - num3 = ((num8 < items.Length) ? (-1026376027) : (-1026376003)); - break; - case 5: - num3 = -1026376026; - break; - case 11: - num3 = ((num2 < readOnlySpan.Length) ? (-1026376030) : (-1026376028)); - break; - case 14: + ImGui.SameLine(); + ImGui.TextUnformatted(items[j].Label); + if (items[j].Tooltip != null) { - int num10 = columns; - num5 = 1; - num6 = num10; - columns = ~(~num6 + num5); - num3 = -1026376023; - break; - } - case 17: - { - int num9 = num8; - num5 = 1; - num6 = num9; - num8 = (num6 | num5) + (num6 & num5); - num3 = -1026376031; - break; - } - case 10: - _202A_200B_206D_202A_206E_206E_206A_202E_206E_206A_202B_200E_206E_200E_202D_206B_206B_206B_200B_206E_200D_202E_206D_200D_206E_206F_202C_206B_200F_206E_200C_200F_202D_200C_200B_202E_202C_202B_200D_206B_202E(num7 * (float)(num8 % columns)); - num3 = -1026376019; - break; - case 16: - return result; + ImGui.SameLine(); + InfoIcon(items[j].Tooltip); } } - } - finally - { - int num3 = ((idDisposable == null) ? 242126912 : 242126915); - while (true) - { - int num15 = num3; - int num5 = 242126913; - int num6 = num15; - switch ((num6 | num5) - (num6 & num5)) - { - case 0: - num3 = 242126915; - break; - case 2: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)idDisposable); - num3 = 242126912; - break; - case 1: - goto end_IL_037b; - } - continue; - end_IL_037b: - break; - } + return result; } } public static bool SearchInput(string id, ref string text, float width = -1E-45f, string hint = "Search...") { - _202E_202A_202C_206B_200E_200F_200E_206F_206C_202C_202A_202C_206D_202C_200B_202E_200E_202A_202D_200C_206B_200C_200B_206B_206E_200F_202E_206A_202C_206E_206C_202C_200B_200E_206F_206A_202C_202C_206C_206E_202E(width); - return _200D_206B_202B_200D_206F_206E_200B_202B_200F_206E_202D_206A_206D_206F_200F_206F_200C_206A_202E_206E_206E_200F_202C_206A_202A_202B_206A_202D_206C_200F_200C_206D_200F_206E_200C_200B_202A_206F_200F_206A_202E((ImU8String)id, (ImU8String)hint, ref text, 256, ImGuiInputTextFlags.None, (ImGui.ImGuiInputTextCallbackDelegate)null); + ImGui.SetNextItemWidth(width); + return ImGui.InputTextWithHint(id, hint, ref text, 256); } public static void InfoIcon(string tooltip) { - ImRaii.FontDisposable fontDisposable = _202A_202E_206A_202E_206D_202A_200B_200B_200F_206D_206E_200E_200C_206B_200C_206A_200F_200E_200E_200D_200F_206B_202D_206C_202A_200D_206A_206D_200C_200D_206A_202C_206C_206C_202A_206A_200E_206C_200F_202E(_206F_206D_206C_200F_200E_206B_202A_200F_202E_206A_206E_200F_206D_206A_206F_206D_206B_200F_200E_202E_200B_206B_200D_200E_206D_200C_206D_206B_202C_202E_206B_202E_206B_202C_202A_200D_202B_200F_202C_200E_202E(), true); - try + using (ImRaii.PushFont(UiBuilder.IconFont)) { - _206A_200F_200E_200B_206D_200D_202D_206C_206F_202E_200B_202E_206F_202D_206C_206F_206A_206A_206C_206E_202D_206D_202D_202C_202C_206B_200D_200B_202E_206B_200C_206F_200F_206C_202E_202A_202C_200B_200B_202E_202E(ref DimTextColor, (ImU8String)_200E_200B_202B_206D_202E_200F_202D_200F_206C_206C_202E_202D_202D_200F_200E_200F_200F_200C_206B_200D_200D_200B_206E_206B_206B_200C_200C_202C_206C_200F_206B_202E_202B_202D_206D_206E_200E_202C_202C_200C_202E(FontAwesomeIcon.InfoCircle)); + ImGui.TextColored(in DimTextColor, FontAwesomeIcon.InfoCircle.ToIconString()); } - finally + if (ImGui.IsItemHovered()) { - int num = ((fontDisposable == null) ? 1404360823 : 1404360820); - while (true) + using (ImRaii.Tooltip()) { - int num2 = num; - int num3 = 1404360821; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_0046; - case 1: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)fontDisposable); - num = 1404360823; - break; - case 0: - num = 1404360820; - break; - } - continue; - end_IL_0046: - break; - } - } - if (_200B_202A_202D_206F_206A_200F_206A_206C_200F_202A_202B_202D_200D_200E_202A_206A_206D_206E_202A_206C_200E_206D_202A_206E_202B_200E_202A_206F_206B_202C_206D_200F_206F_206A_200C_200E_202A_206A_206C_202E_202E()) - { - using (_200D_202A_206C_206B_206E_202D_202E_200D_202A_200C_206F_206B_206D_200B_202D_200F_200D_206D_202A_206A_200D_206A_200D_200B_202C_206F_200C_200C_206C_200C_206A_200C_206E_202C_206D_202B_206E_202B_206C_200F_202E()) - { - _202C_200D_202A_206C_200E_202C_200B_200B_202A_206B_202E_202C_202C_200D_206B_202D_200D_206B_202B_206E_206D_202C_200E_202A_202D_206A_206C_202C_202A_200D_202A_200B_200E_206B_202B_200F_202E_202B_200C_200F_202E(400f); - _202E_202B_206B_202E_206E_206A_202E_202A_202B_206C_206E_206D_200C_202A_206D_200C_206A_202E_200D_202C_200F_206B_206C_202E_202A_206F_200E_200B_200C_206C_202C_202E_206A_200C_206E_200D_202E_202A_200F_202C_202E((ImU8String)tooltip); - _200C_200C_206E_200B_200E_202C_200E_206D_206C_202C_200D_202C_200D_206B_202C_206D_202D_206C_200E_202D_206A_206B_206D_202C_200C_206A_202D_200E_200E_200B_206C_202B_200D_200F_206D_202A_202C_200B_202E_202A_202E(); + ImGui.PushTextWrapPos(400f); + ImGui.Text(tooltip); + ImGui.PopTextWrapPos(); } } } public static bool AccentSliderInt(string label, ref int value, int min, int max, float width = 250f) { - ImDrawListPtr imDrawListPtr = _206C_206E_202A_202B_202D_206B_206C_200B_200B_200F_202D_206B_202D_206C_200C_200C_206A_200C_206B_200E_206C_200C_206B_200E_206B_206A_200F_202B_206E_202C_206F_202D_200F_202D_202E_200C_206B_202A_202C_200F_202E(); - Vector2 pMin = _202D_202E_200C_202E_200C_202D_206E_206C_202A_200C_200C_206D_202D_202E_206C_206E_206F_206F_202A_202D_200D_202D_200B_206C_202E_202D_206C_200D_202E_206D_202C_200D_202B_200D_206B_202E_206A_206B_206A_202C_202E(); - float num = _206B_200B_200D_202B_202D_202E_206F_200E_206A_202D_206C_206E_200F_200F_206A_202B_206D_200D_206B_206E_206D_202C_200E_206E_200E_200F_200E_200B_202A_200B_206B_200C_202E_202A_206C_206F_206F_200D_206C_200D_202E(); - int num2 = ((max > min) ? (-664033253) : (-664033256)); - float num7; - while (true) + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + float frameHeight = ImGui.GetFrameHeight(); + float num = ((max > min) ? ((float)(value - min) / (float)(max - min)) : 0f); + windowDrawList.AddRectFilled(cursorScreenPos, new Vector2(cursorScreenPos.X + width * num, cursorScreenPos.Y + frameHeight), ImGui.ColorConvertFloat4ToU32(AccentDimColor), 4f); + using (ImRaii.PushColor(ImGuiCol.FrameBg, new Vector4(0.15f, 0.12f, 0.2f, 0.5f))) { - int num3 = num2; - int num4 = -664033254; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - default: - continue; - case 0: - goto IL_005d; - case 2: - num7 = 0f; - break; - case 1: - { - float num6 = value - min; - num4 = min; - num5 = max; - num7 = num6 / (float)(~(~num5 + num4)); - break; - } - } - break; - IL_005d: - num2 = -664033256; - } - float num8 = num7; - imDrawListPtr.AddRectFilled(pMin, new Vector2(pMin.X + width * num8, pMin.Y + num), _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(AccentDimColor), 4f); - ImRaii.ColorDisposable colorDisposable = _200C_200C_200F_200D_206A_200E_202A_206D_200E_202C_206F_206D_200E_200B_206E_200D_206C_202C_202A_202D_200B_202D_206B_202A_202B_206A_200B_206F_206E_200B_206A_206A_202E_202A_200E_200F_200F_206B_202B_200F_202E(ImGuiCol.FrameBg, new Vector4(0.15f, 0.12f, 0.2f, 0.5f), true); - try - { - _202E_202A_202C_206B_200E_200F_200E_206F_206C_202C_202A_202C_206D_202C_200B_202E_200E_202A_202D_200C_206B_200C_200B_206B_206E_200F_202E_206A_202C_206E_206C_202C_200B_200E_206F_206A_202C_202C_206C_206E_202E(width); - return _202C_206B_206D_206D_202D_202A_202D_202D_202D_202E_202C_200C_200E_200C_202C_200D_206D_200C_200E_206A_202B_202C_200D_206B_200F_202D_200C_202E_202B_206C_200B_206D_200C_206A_200D_200C_200C_200F_202A_200D_202E((ImU8String)label, ref value, min, max, default(ImU8String), ImGuiSliderFlags.None); - } - finally - { - num2 = ((colorDisposable == null) ? 577315354 : 577315353); - while (true) - { - int num9 = num2; - int num4 = 577315352; - int num5 = num9; - int num10 = num5 + num4; - int num11 = num5 & num4; - switch (num10 - (num11 + num11)) - { - case 2: - goto end_IL_012b; - case 1: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)colorDisposable); - num2 = 577315354; - break; - case 0: - num2 = 577315353; - break; - } - continue; - end_IL_012b: - break; - } + ImGui.SetNextItemWidth(width); + return ImGui.SliderInt(label, ref value, min, max); } } public static bool AccentSliderFloat(string label, ref float value, float min, float max, string format = "%.1f", float width = 250f) { - ImDrawListPtr imDrawListPtr = _206C_206E_202A_202B_202D_206B_206C_200B_200B_200F_202D_206B_202D_206C_200C_200C_206A_200C_206B_200E_206C_200C_206B_200E_206B_206A_200F_202B_206E_202C_206F_202D_200F_202D_202E_200C_206B_202A_202C_200F_202E(); - Vector2 pMin = _202D_202E_200C_202E_200C_202D_206E_206C_202A_200C_200C_206D_202D_202E_206C_206E_206F_206F_202A_202D_200D_202D_200B_206C_202E_202D_206C_200D_202E_206D_202C_200D_202B_200D_206B_202E_206A_206B_206A_202C_202E(); - float num = _206B_200B_200D_202B_202D_202E_206F_200E_206A_202D_206C_206E_200F_200F_206A_202B_206D_200D_206B_206E_206D_202C_200E_206E_200E_200F_200E_200B_202A_200B_206B_200C_202E_202A_206C_206F_206F_200D_206C_200D_202E(); - int num2 = ((max > min) ? 1057697420 : 1057697423); - float num8; - while (true) + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + float frameHeight = ImGui.GetFrameHeight(); + float num = ((max > min) ? ((value - min) / (max - min)) : 0f); + windowDrawList.AddRectFilled(cursorScreenPos, new Vector2(cursorScreenPos.X + width * num, cursorScreenPos.Y + frameHeight), ImGui.ColorConvertFloat4ToU32(AccentDimColor), 4f); + using (ImRaii.PushColor(ImGuiCol.FrameBg, new Vector4(0.15f, 0.12f, 0.2f, 0.5f))) { - int num3 = num2; - int num4 = 1057697422; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - default: - continue; - case 0: - goto IL_005f; - case 1: - num8 = 0f; - break; - case 2: - num8 = (value - min) / (max - min); - break; - } - break; - IL_005f: - num2 = 1057697423; - } - float num9 = num8; - imDrawListPtr.AddRectFilled(pMin, new Vector2(pMin.X + width * num9, pMin.Y + num), _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(AccentDimColor), 4f); - ImRaii.ColorDisposable colorDisposable = _200C_200C_200F_200D_206A_200E_202A_206D_200E_202C_206F_206D_200E_200B_206E_200D_206C_202C_202A_202D_200B_202D_206B_202A_202B_206A_200B_206F_206E_200B_206A_206A_202E_202A_200E_200F_200F_206B_202B_200F_202E(ImGuiCol.FrameBg, new Vector4(0.15f, 0.12f, 0.2f, 0.5f), true); - try - { - _202E_202A_202C_206B_200E_200F_200E_206F_206C_202C_202A_202C_206D_202C_200B_202E_200E_202A_202D_200C_206B_200C_200B_206B_206E_200F_202E_206A_202C_206E_206C_202C_200B_200E_206F_206A_202C_202C_206C_206E_202E(width); - return _200D_202C_206A_200D_200C_200E_200D_202A_202E_202E_200C_206D_206E_202A_200C_200F_200E_200C_202C_202B_202D_206C_202E_202B_206B_200B_202E_202E_202D_206A_206A_202B_206F_206E_206B_206E_202D_202E_202A_206E_202E((ImU8String)label, ref value, min, max, (ImU8String)format, ImGuiSliderFlags.None); - } - finally - { - num2 = ((colorDisposable == null) ? (-509645182) : (-509645183)); - while (true) - { - int num10 = num2; - int num4 = -509645181; - int num5 = num10; - int num11 = num5 + num4; - int num12 = num5 & num4; - switch (num11 - (num12 + num12)) - { - case 0: - num2 = -509645183; - break; - case 2: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)colorDisposable); - num2 = -509645182; - break; - case 1: - goto end_IL_011e; - } - continue; - end_IL_011e: - break; - } + ImGui.SetNextItemWidth(width); + return ImGui.SliderFloat(label, ref value, min, max, format); } } public static bool ThemedCombo(string label, ref int currentItem, string[] items, int itemCount) { - ImRaii.ColorDisposable colorDisposable = _200C_200C_200F_200D_206A_200E_202A_206D_200E_202C_206F_206D_200E_200B_206E_200D_206C_202C_202A_202D_200B_202D_206B_202A_202B_206A_200B_206F_206E_200B_206A_206A_202E_202A_200E_200F_200F_206B_202B_200F_202E(ImGuiCol.FrameBg, new Vector4(0.15f, 0.12f, 0.2f, 0.65f), true); - try + using ImRaii.ColorDisposable colorDisposable = ImRaii.PushColor(ImGuiCol.FrameBg, new Vector4(0.15f, 0.12f, 0.2f, 0.65f)); + colorDisposable.Push(ImGuiCol.FrameBgHovered, new Vector4(0.2f, 0.16f, 0.28f, 0.75f)); + colorDisposable.Push(ImGuiCol.FrameBgActive, new Vector4(0.22f, 0.18f, 0.3f, 0.85f)); + string text = ((currentItem >= 0 && currentItem < itemCount) ? items[currentItem] : string.Empty); + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + float num = ImGui.CalcItemWidth(); + float frameHeight = ImGui.GetFrameHeight(); + bool result = false; + if (ImGui.BeginCombo(label, text, ImGuiComboFlags.NoArrowButton)) { - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable, ImGuiCol.FrameBgHovered, new Vector4(0.2f, 0.16f, 0.28f, 0.75f), true); - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable, ImGuiCol.FrameBgActive, new Vector4(0.22f, 0.18f, 0.3f, 0.85f), true); - int num = ((currentItem < 0) ? (-660884539) : (-660884541)); - bool flag = default(bool); - bool result = default(bool); - ImDrawListPtr imDrawListPtr = default(ImDrawListPtr); - Vector2 vector = default(Vector2); - float num17 = default(float); - float num18 = default(float); - while (true) - { - int num2 = num; - int num3 = -660884543; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - object obj; - string text; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 0: - obj = items[currentItem]; - goto IL_00c0; - case 4: - obj = string.Empty; - goto IL_00c0; - case 2: - num = ((currentItem < itemCount) ? (-660884543) : (-660884539)); - continue; - case 3: - num = -660884541; - continue; - case 1: - { - Vector4 accentColor = AccentColor; - accentColor.W = 0.35f; - ImRaii.ColorDisposable colorDisposable2 = _200C_200C_200F_200D_206A_200E_202A_206D_200E_202C_206F_206D_200E_200B_206E_200D_206C_202C_202A_202D_200B_202D_206B_202A_202B_206A_200B_206F_206E_200B_206A_206A_202E_202A_200E_200F_200F_206B_202B_200F_202E(ImGuiCol.Header, accentColor, true); - try - { - accentColor = AccentColor; - accentColor.W = 0.45f; - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable2, ImGuiCol.HeaderHovered, accentColor, true); - accentColor = AccentColor; - accentColor.W = 0.6f; - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable2, ImGuiCol.HeaderActive, accentColor, true); - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable2, ImGuiCol.Text, new Vector4(0.95f, 0.95f, 1f, 1f), true); - int num7 = 0; - num = -1523793301; - while (true) - { - int num8 = num; - num3 = -1523793297; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 7: - num = -1523793301; - break; - case 4: - num = ((num7 < itemCount) ? (-1523793298) : (-1523793303)); - break; - case 3: - { - int num11 = num7; - num3 = 1; - num4 = num11; - int num12 = num4 ^ num3; - int num13 = num4 & num3; - num7 = num12 + (num13 + num13); - num = -1523793301; - break; - } - case 1: - flag = num7 == currentItem; - num = ((!_200C_206D_206C_202B_206F_202B_206B_200F_200F_202B_200D_206C_206D_202A_200F_200E_202A_206C_202A_200F_200B_200E_206B_206A_202B_200B_206C_200D_206C_200E_206A_202D_200F_206C_206A_200F_206E_200C_200E_200D_202E((ImU8String)items[num7], flag, ImGuiSelectableFlags.None, default(Vector2))) ? (-1523793299) : (-1523793302)); - break; - case 2: - num = ((!flag) ? (-1523793300) : (-1523793297)); - break; - case 5: - currentItem = num7; - result = true; - num = -1523793299; - break; - case 0: - _200E_202D_202E_200E_202E_202A_206F_202A_206E_202D_202A_206A_206A_206F_206D_200C_202B_200F_200C_206E_206F_202A_206B_200B_200C_206A_202E_202E_202B_202C_206B_202C_202C_202B_202C_202C_206A_206D_200F_200F_202E(); - num = -1523793300; - break; - case 6: - _202C_206B_202D_206E_202D_206D_206B_200D_200E_206D_200F_200C_202C_200B_200F_202E_206E_206F_202D_206A_202A_202D_200E_200D_206C_202E_202B_202A_206D_200E_202B_200C_200C_200D_206B_202B_202D_202B_206E_206E_202E(); - goto end_IL_01d5; - } - continue; - end_IL_01d5: - break; - } - } - finally - { - num = ((colorDisposable2 == null) ? (-1128559037) : (-1128559040)); - while (true) - { - int num14 = num; - num3 = -1128559038; - num4 = num14; - int num15 = num4 + num3; - int num16 = num4 & num3; - switch (num15 - (num16 + num16)) - { - case 0: - num = -1128559040; - break; - case 2: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)colorDisposable2); - num = -1128559037; - break; - case 1: - goto end_IL_0311; - } - continue; - end_IL_0311: - break; - } - } - break; - } - IL_00c0: - text = (string)obj; - imDrawListPtr = _206C_206E_202A_202B_202D_206B_206C_200B_200B_200F_202D_206B_202D_206C_200C_200C_206A_200C_206B_200E_206C_200C_206B_200E_206B_206A_200F_202B_206E_202C_206F_202D_200F_202D_202E_200C_206B_202A_202C_200F_202E(); - vector = _202D_202E_200C_202E_200C_202D_206E_206C_202A_200C_200C_206D_202D_202E_206C_206E_206F_206F_202A_202D_200D_202D_200B_206C_202E_202D_206C_200D_202E_206D_202C_200D_202B_200D_206B_202E_206A_206B_206A_202C_202E(); - num17 = _202B_202A_202C_200B_200F_206C_206C_206C_202C_206A_200F_206F_206A_200B_206F_200B_202E_206A_200D_200F_202D_202C_200D_206F_206A_206C_202E_200C_206A_206A_202C_202E_206C_202B_206A_206D_202A_202B_206D_200D_202E(); - num18 = _206B_200B_200D_202B_202D_202E_206F_200E_206A_202D_206C_206E_200F_200F_206A_202B_206D_200D_206B_206E_206D_202C_200E_206E_200E_200F_200E_200B_202A_200B_206B_200C_202E_202A_206C_206F_206F_200D_206C_200D_202E(); - result = false; - if (_206C_206C_200D_202E_200C_206E_200E_206B_206C_200E_200B_200B_206A_202E_206E_202E_206C_206D_200D_202D_200C_206A_202E_206D_206B_206E_200B_202B_200D_202E_202A_206D_206C_200F_200B_200C_200B_202D_206D_202D_202E((ImU8String)label, (ImU8String)text, ImGuiComboFlags.NoArrowButton)) - { - num = -660884544; - continue; - } - break; - } - break; - } - float x = _200D_200C_206C_206C_200E_202C_202D_200E_206D_206A_206D_202B_200D_202E_202C_200E_206E_200F_206E_200F_200C_206B_200F_206C_206C_200C_206F_202D_200E_206A_202D_200C_200B_202C_202A_202D_206F_202B_206F_200D_202E().FramePadding.X; - float num19 = 5f; - float num20 = vector.X + num17 - x - num19; - float num21 = vector.Y + num18 * 0.5f; - imDrawListPtr.AddTriangleFilled(new Vector2(num20 - num19 * 0.5f, num21 - num19 * 0.4f), new Vector2(num20 + num19 * 0.5f, num21 - num19 * 0.4f), new Vector2(num20, num21 + num19 * 0.5f), _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(DimTextColor)); - return result; - } - finally - { - int num = ((colorDisposable == null) ? (-497719698) : (-497719697)); - while (true) - { - int num22 = num; - int num3 = -497719698; - int num4 = num22; - int num23 = num4 + num3; - int num24 = num4 & num3; - switch (num23 - (num24 + num24)) - { - case 0: - goto end_IL_041d; - case 1: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)colorDisposable); - num = -497719698; - break; - case 2: - num = -497719697; - break; - } - continue; - end_IL_041d: - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - public static bool SearchableCombo(string label, ref int currentItem, string[] items, ref string searchText, float width = 250f, string? previewOverride = null) - { - ImRaii.ColorDisposable colorDisposable = _200C_200C_200F_200D_206A_200E_202A_206D_200E_202C_206F_206D_200E_200B_206E_200D_206C_202C_202A_202D_200B_202D_206B_202A_202B_206A_200B_206F_206E_200B_206A_206A_202E_202A_200E_200F_200F_206B_202B_200F_202E(ImGuiCol.FrameBg, new Vector4(0.15f, 0.12f, 0.2f, 0.65f), true); - try - { - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable, ImGuiCol.FrameBgHovered, new Vector4(0.2f, 0.16f, 0.28f, 0.75f), true); - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable, ImGuiCol.FrameBgActive, new Vector4(0.22f, 0.18f, 0.3f, 0.85f), true); - object obj = previewOverride; - int num; - if (obj == null) - { - num = ((currentItem < 0) ? (-1685579580) : (-1685579579)); - goto IL_008f; - } - goto IL_00d5; - IL_0613: - float x = _200D_200C_206C_206C_200E_202C_202D_200E_206D_206A_206D_202B_200D_202E_202C_200E_206E_200F_206E_200F_200C_206B_200F_206C_206C_200C_206F_202D_200E_206A_202D_200C_200B_202C_202A_202D_206F_202B_206F_200D_202E().FramePadding.X; - float num2 = 5f; - Vector2 vector = default(Vector2); - float num4 = default(float); - float num3 = vector.X + num4 - x - num2; - float num6 = default(float); - float num5 = vector.Y + num6 * 0.5f; - ImDrawListPtr imDrawListPtr = default(ImDrawListPtr); - imDrawListPtr.AddTriangleFilled(new Vector2(num3 - num2 * 0.5f, num5 - num2 * 0.4f), new Vector2(num3 + num2 * 0.5f, num5 - num2 * 0.4f), new Vector2(num3, num5 + num2 * 0.5f), _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(DimTextColor)); - bool result = default(bool); - return result; - IL_00d5: - string text = (string)obj; - _202E_202A_202C_206B_200E_200F_200E_206F_206C_202C_202A_202C_206D_202C_200B_202E_200E_202A_202D_200C_206B_200C_200B_206B_206E_200F_202E_206A_202C_206E_206C_202C_200B_200E_206F_206A_202C_202C_206C_206E_202E(width); - imDrawListPtr = _206C_206E_202A_202B_202D_206B_206C_200B_200B_200F_202D_206B_202D_206C_200C_200C_206A_200C_206B_200E_206C_200C_206B_200E_206B_206A_200F_202B_206E_202C_206F_202D_200F_202D_202E_200C_206B_202A_202C_200F_202E(); - vector = _202D_202E_200C_202E_200C_202D_206E_206C_202A_200C_200C_206D_202D_202E_206C_206E_206F_206F_202A_202D_200D_202D_200B_206C_202E_202D_206C_200D_202E_206D_202C_200D_202B_200D_206B_202E_206A_206B_206A_202C_202E(); - num4 = _202B_202A_202C_200B_200F_206C_206C_206C_202C_206A_200F_206F_206A_200B_206F_200B_202E_206A_200D_200F_202D_202C_200D_206F_206A_206C_202E_200C_206A_206A_202C_202E_206C_202B_206A_206D_202A_202B_206D_200D_202E(); - num6 = _206B_200B_200D_202B_202D_202E_206F_200E_206A_202D_206C_206E_200F_200F_206A_202B_206D_200D_206B_206E_206D_202C_200E_206E_200E_200F_200E_200B_202A_200B_206B_200C_202E_202A_206C_206F_206F_200D_206C_200D_202E(); - result = false; - if (_206C_206C_200D_202E_200C_206E_200E_206B_206C_200E_200B_200B_206A_202E_206E_202E_206C_206D_200D_202D_200C_206A_202E_206D_206B_206E_200B_202B_200D_202E_202A_206D_206C_200F_200B_200C_200B_202D_206D_202D_202E((ImU8String)label, (ImU8String)text, ImGuiComboFlags.NoArrowButton)) - { - num = -1685579578; - goto IL_008f; - } - goto IL_0613; - IL_0140: - obj = string.Empty; - goto IL_00d5; - IL_008f: - while (true) - { - int num7 = num; - int num8 = -1685579578; - int num9 = num7; - int num10 = num9 + num8; - int num11 = num9 & num8; - switch (num10 - (num11 + num11)) - { - case 4: - num = -1685579579; - break; - case 1: - goto end_IL_008f; - case 3: - goto IL_011e; - case 2: - goto IL_0140; - case 0: - goto IL_0156; - } - continue; - IL_011e: - num = ((currentItem < items.Length) ? (-1685579577) : (-1685579580)); - continue; - end_IL_008f: - break; - } - obj = items[currentItem]; - goto IL_00d5; - IL_0156: Vector4 accentColor = AccentColor; accentColor.W = 0.35f; - ImRaii.ColorDisposable colorDisposable2 = _200C_200C_200F_200D_206A_200E_202A_206D_200E_202C_206F_206D_200E_200B_206E_200D_206C_202C_202A_202D_200B_202D_206B_202A_202B_206A_200B_206F_206E_200B_206A_206A_202E_202A_200E_200F_200F_206B_202B_200F_202E(ImGuiCol.Header, accentColor, true); - try + using ImRaii.ColorDisposable colorDisposable2 = ImRaii.PushColor(ImGuiCol.Header, accentColor); + accentColor = AccentColor; + accentColor.W = 0.45f; + colorDisposable2.Push(ImGuiCol.HeaderHovered, accentColor); + accentColor = AccentColor; + accentColor.W = 0.6f; + colorDisposable2.Push(ImGuiCol.HeaderActive, accentColor); + colorDisposable2.Push(ImGuiCol.Text, new Vector4(0.95f, 0.95f, 1f, 1f)); + for (int i = 0; i < itemCount; i++) { - accentColor = AccentColor; - accentColor.W = 0.45f; - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable2, ImGuiCol.HeaderHovered, accentColor, true); - accentColor = AccentColor; - accentColor.W = 0.6f; - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable2, ImGuiCol.HeaderActive, accentColor, true); - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable2, ImGuiCol.Text, new Vector4(0.95f, 0.95f, 1f, 1f), true); - num = ((!_206E_202B_202D_206F_200C_206D_206D_206C_206F_200F_202A_202C_206B_202B_200C_202C_206D_200B_206F_202E_202B_206E_206E_202B_200D_206F_202C_200C_206D_200E_206B_200F_206E_202E_206E_206F_206E_200E_200F_206F_202E()) ? 569075453 : 569075443); - int num15 = default(int); - int num21 = default(int); - string[] array = default(string[]); - int num17 = default(int); - bool flag = default(bool); - while (true) + bool flag = i == currentItem; + if (ImGui.Selectable(items[i], flag)) { - int num12 = num; - int num8 = 569075451; - int num9 = num12; - switch ((num9 | num8) - (num9 & num8)) + currentItem = i; + result = true; + } + if (flag) + { + ImGui.SetItemDefaultFocus(); + } + } + ImGui.EndCombo(); + } + float x = ImGui.GetStyle().FramePadding.X; + float num2 = 5f; + float num3 = cursorScreenPos.X + num - x - num2; + float num4 = cursorScreenPos.Y + frameHeight * 0.5f; + windowDrawList.AddTriangleFilled(new Vector2(num3 - num2 * 0.5f, num4 - num2 * 0.4f), new Vector2(num3 + num2 * 0.5f, num4 - num2 * 0.4f), new Vector2(num3, num4 + num2 * 0.5f), ImGui.ColorConvertFloat4ToU32(DimTextColor)); + return result; + } + + public static bool SearchableCombo(string label, ref int currentItem, string[] items, ref string searchText, float width = 250f, string? previewOverride = null) + { + using ImRaii.ColorDisposable colorDisposable = ImRaii.PushColor(ImGuiCol.FrameBg, new Vector4(0.15f, 0.12f, 0.2f, 0.65f)); + colorDisposable.Push(ImGuiCol.FrameBgHovered, new Vector4(0.2f, 0.16f, 0.28f, 0.75f)); + colorDisposable.Push(ImGuiCol.FrameBgActive, new Vector4(0.22f, 0.18f, 0.3f, 0.85f)); + string text = previewOverride ?? ((currentItem >= 0 && currentItem < items.Length) ? items[currentItem] : string.Empty); + ImGui.SetNextItemWidth(width); + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + float num = ImGui.CalcItemWidth(); + float frameHeight = ImGui.GetFrameHeight(); + bool result = false; + if (ImGui.BeginCombo(label, text, ImGuiComboFlags.NoArrowButton)) + { + Vector4 accentColor = AccentColor; + accentColor.W = 0.35f; + using ImRaii.ColorDisposable colorDisposable2 = ImRaii.PushColor(ImGuiCol.Header, accentColor); + accentColor = AccentColor; + accentColor.W = 0.45f; + colorDisposable2.Push(ImGuiCol.HeaderHovered, accentColor); + accentColor = AccentColor; + accentColor.W = 0.6f; + colorDisposable2.Push(ImGuiCol.HeaderActive, accentColor); + colorDisposable2.Push(ImGuiCol.Text, new Vector4(0.95f, 0.95f, 1f, 1f)); + if (ImGui.IsWindowAppearing()) + { + searchText = string.Empty; + ImGui.SetKeyboardFocusHere(); + } + ImGui.SetNextItemWidth(-1E-45f); + ImGui.InputTextWithHint("##search", "Search...", ref searchText, 256); + ImGui.Separator(); + int num2 = items.Length; + if (!string.IsNullOrEmpty(searchText)) + { + num2 = 0; + for (int i = 0; i < items.Length; i++) + { + if (items[i].Contains(searchText, StringComparison.OrdinalIgnoreCase)) { - case 6: - _202E_202A_202C_206B_200E_200F_200E_206F_206C_202C_202A_202C_206D_202C_200B_202E_200E_202A_202D_200C_206B_200C_200B_206B_206E_200F_202E_206A_202C_206E_206C_202C_200B_200E_206F_206A_202C_202C_206C_206E_202E(-1E-45f); - _200D_206B_202B_200D_206F_206E_200B_202B_200F_206E_202D_206A_206D_206F_200F_206F_200C_206A_202E_206E_206E_200F_202C_206A_202A_202B_206A_202D_206C_200F_200C_206D_200F_206E_200C_200B_202A_206F_200F_206A_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-964626679), (ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1330390258), ref searchText, 256, ImGuiInputTextFlags.None, (ImGui.ImGuiInputTextCallbackDelegate)null); - _202B_202A_202E_206D_200C_206C_200B_206B_202C_200F_200C_200F_202D_200C_202C_200F_206C_202E_206D_202E_202E_202E_202A_200B_202C_206F_202A_206D_202B_202B_206A_202E_200B_200E_202E_200D_202B_200F_200C_202E(); - num15 = items.Length; - num = (_202B_200F_206E_202D_200E_202B_202B_206C_206E_202B_200C_206B_202C_206A_200E_200F_202D_202C_206C_202B_202B_202E_200B_202D_202C_206A_206E_206A_202B_206D_206B_202A_200E_206A_206B_206E_200D_200E_202D_200E_202E(searchText) ? 569075448 : 569075455); - break; - case 7: - { - int num23 = num21; - num8 = 1; - num9 = num23; - num21 = (num9 | num8) + (num9 & num8); - num = 569075449; - break; + num2++; } - case 5: + } + } + float textLineHeightWithSpacing = ImGui.GetTextLineHeightWithSpacing(); + int max = Math.Max(1, (int)(250f * ImGuiHelpers.GlobalScale / textLineHeightWithSpacing)); + float y = (float)Math.Clamp(Math.Max(num2, 1), 1, max) * textLineHeightWithSpacing + 4f; + using (ImRaii.Child("##items", new Vector2(0f, y))) + { + if (num2 == 0) + { + ImGui.TextColored(in MutedTextColor, "No matches"); + } + else + { + for (int j = 0; j < items.Length; j++) { - int num22 = num15; - num8 = 1; - num9 = num22; - num15 = (num9 | num8) + (num9 & num8); - num = 569075452; - break; - } - case 0: - num = 569075443; - break; - case 8: - searchText = string.Empty; - _202D_202A_206E_206F_202D_202A_206C_200C_202E_202C_206C_202E_200F_202B_200C_202A_200D_202D_202D_206A_202E_200C_202C_200E_206A_206E_200B_202E_206E_206C_200C_202D_202C_206F_206E_202B_200E_202B_200D_202D_202E(); - num = 569075453; - break; - case 4: - num15 = 0; - array = items; - num21 = 0; - num = 569075449; - break; - case 2: - num = ((num21 < array.Length) ? 569075450 : 569075448); - break; - case 1: - num = ((!_206A_206C_202B_206B_202B_206F_202E_206F_200F_202B_202D_202D_206D_202C_200B_200F_202C_202E_206C_202E_206A_200B_202B_202A_206E_200E_202E_206E_202B_206B_206A_200E_202C_202A_202B_202A_206E_202C_200E_206E_202E(array[num21], searchText, StringComparison.OrdinalIgnoreCase)) ? 569075452 : 569075454); - break; - case 3: - { - float num13 = _200E_202A_206E_200F_202C_200C_200B_200F_206F_206F_206E_202E_200D_200D_202C_200E_200B_206D_206A_200E_200F_202C_206A_202C_200D_206A_202B_200E_206A_202C_206F_200B_202E_206E_202A_206D_202E_206C_206D_206E_202E(); - int num14 = _202C_202E_200B_200E_200D_206F_202D_200C_206B_202E_200C_202E_202D_202A_206C_202A_206C_202A_202A_202B_206F_200B_206F_200F_200B_200C_206D_200C_200D_206C_206C_206C_202E_202B_206B_206D_206C_206D_200F_202D_202E(1, (int)(250f * _206E_200F_200F_200F_200D_200B_202C_200E_202D_202A_200C_202B_202A_206B_200F_206F_202B_206C_200D_200F_202C_200B_202B_200F_200E_206E_206A_202B_200B_200F_206A_202C_206D_206E_202C_206E_206B_202B_206C_202B_202E() / num13)); - float y = (float)_200F_200C_206F_202A_202B_206C_206C_206D_202D_206B_206C_200B_206B_200C_202E_206F_206F_206F_206E_206C_206E_206B_202E_202B_202B_206C_206C_202A_202A_200F_206A_206E_202B_202E_202E_202A_200F_206E_206B_202E_202E(_202C_202E_200B_200E_200D_206F_202D_200C_206B_202E_200C_202E_202D_202A_206C_202A_206C_202A_202A_202B_206F_200B_206F_200F_200B_200C_206D_200C_200D_206C_206C_206C_202E_202B_206B_206D_206C_206D_200F_202D_202E(num15, 1), 1, num14) * num13 + 4f; - using (_206D_206C_206D_202A_206C_200F_200D_206B_200F_206E_200C_206D_206C_202C_200B_202D_200B_206C_200E_202C_206A_206B_206A_200B_206A_206D_202D_200D_200D_202B_200E_206C_206A_202D_202D_206F_206C_206B_206B_206E_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(740257102), new Vector2(0f, y))) + if (string.IsNullOrEmpty(searchText) || items[j].Contains(searchText, StringComparison.OrdinalIgnoreCase)) { - num = ((num15 != 0) ? 598657922 : 598657935); - while (true) + bool flag = j == currentItem; + if (ImGui.Selectable(items[j], flag)) { - int num16 = num; - num8 = 598657925; - num9 = num16; - switch ((num9 | num8) - (num9 & num8)) - { - case 7: - num17 = 0; - num = 598657927; - break; - case 3: - { - int num18 = num17; - num8 = 1; - num9 = num18; - int num19 = num9 ^ num8; - int num20 = num9 & num8; - num17 = num19 + (num20 + num20); - num = 598657927; - break; - } - case 2: - num = ((num17 < items.Length) ? 598657921 : 598657925); - break; - case 10: - _206A_200F_200E_200B_206D_200D_202D_206C_206F_202E_200B_202E_206F_202D_206C_206F_206A_206A_206C_206E_202D_206D_202D_202C_202C_206B_200D_200B_202E_206B_200C_206F_200F_206C_202E_202A_202C_200B_200B_202E_202E(ref MutedTextColor, (ImU8String)global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1503478926)); - goto end_IL_03e3; - case 9: - num = ((!flag) ? 598657926 : 598657924); - break; - case 11: - flag = num17 == currentItem; - num = ((!_200C_206D_206C_202B_206F_202B_206B_200F_200F_202B_200D_206C_206D_202A_200F_200E_202A_206C_202A_200F_200B_200E_206B_206A_202B_200B_206C_200D_206C_200E_206A_202D_200F_206C_206A_200F_206E_200C_200E_200D_202E((ImU8String)items[num17], flag, ImGuiSelectableFlags.None, default(Vector2))) ? 598657932 : 598657923); - break; - case 5: - num = 598657935; - break; - case 4: - num = (_202B_200F_206E_202D_200E_202B_202B_206C_206E_202B_200C_206B_202C_206A_200E_200F_202D_202C_206C_202B_202B_202E_200B_202D_202C_206A_206E_206A_202B_206D_206B_202A_200E_206A_206B_206E_200D_200E_202D_200E_202E(searchText) ? 598657934 : 598657933); - break; - case 1: - _200E_202D_202E_200E_202E_202A_206F_202A_206E_202D_202A_206A_206A_206F_206D_200C_202B_200F_200C_206E_206F_202A_206B_200B_200C_206A_202E_202E_202B_202C_206B_202C_202C_202B_202C_202C_206A_206D_200F_200F_202E(); - num = 598657926; - break; - case 8: - num = ((!_206A_206C_202B_206B_202B_206F_202E_206F_200F_202B_202D_202D_206D_202C_200B_200F_202C_202E_206C_202E_206A_200B_202B_202A_206E_200E_202E_206E_202B_206B_206A_200E_202C_202A_202B_202A_206E_202C_200E_206E_202E(items[num17], searchText, StringComparison.OrdinalIgnoreCase)) ? 598657926 : 598657934); - break; - case 6: - currentItem = num17; - result = true; - _206B_206C_200E_202E_202B_206A_206B_200D_202E_206F_206F_202A_206F_206C_202A_202E_202C_202D_206A_202A_202C_202D_202E_206D_206F_202E_200F_206D_202D_202B_206D_202A_206B_202E_200C_200E_202C_200F_206B_200C_202E(); - num = 598657932; - break; - case 0: - goto end_IL_03e3; - } - continue; - end_IL_03e3: - break; + currentItem = j; + result = true; + ImGui.CloseCurrentPopup(); + } + if (flag) + { + ImGui.SetItemDefaultFocus(); } } - _202C_206B_202D_206E_202D_206D_206B_200D_200E_206D_200F_200C_202C_200B_200F_202E_206E_206F_202D_206A_202A_202D_200E_200D_206C_202E_202B_202A_206D_200E_202B_200C_200C_200D_206B_202B_202D_202B_206E_206E_202E(); - goto end_IL_01fa; } - } - continue; - end_IL_01fa: - break; } } - finally - { - num = ((colorDisposable2 == null) ? (-531834282) : (-531834283)); - while (true) - { - int num24 = num; - int num8 = -531834284; - int num9 = num24; - switch ((num9 | num8) - (num9 & num8)) - { - case 2: - goto end_IL_05c7; - case 1: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)colorDisposable2); - num = -531834282; - break; - case 0: - num = -531834283; - break; - } - continue; - end_IL_05c7: - break; - } - } - goto IL_0613; - } - finally - { - int num = ((colorDisposable == null) ? (-1283184272) : (-1283184271)); - while (true) - { - int num25 = num; - int num8 = -1283184272; - int num9 = num25; - switch ((num9 | num8) - (num9 & num8)) - { - case 2: - num = -1283184271; - break; - case 0: - goto end_IL_06d1; - case 1: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)colorDisposable); - num = -1283184272; - break; - } - continue; - end_IL_06d1: - break; - } + ImGui.EndCombo(); } + float x = ImGui.GetStyle().FramePadding.X; + float num3 = 5f; + float num4 = cursorScreenPos.X + num - x - num3; + float num5 = cursorScreenPos.Y + frameHeight * 0.5f; + windowDrawList.AddTriangleFilled(new Vector2(num4 - num3 * 0.5f, num5 - num3 * 0.4f), new Vector2(num4 + num3 * 0.5f, num5 - num3 * 0.4f), new Vector2(num4, num5 + num3 * 0.5f), ImGui.ColorConvertFloat4ToU32(DimTextColor)); + return result; } public static ImRaii.ColorDisposable PushProgressBarColors() { - ImRaii.ColorDisposable colorDisposable = _200C_200C_200F_200D_206A_200E_202A_206D_200E_202C_206F_206D_200E_200B_206E_200D_206C_202C_202A_202D_200B_202D_206B_202A_202B_206A_200B_206F_206E_200B_206A_206A_202E_202A_200E_200F_200F_206B_202B_200F_202E(ImGuiCol.PlotHistogram, AccentColor, true); - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable, ImGuiCol.FrameBg, new Vector4(1f, 1f, 1f, 0.12f), true); + ImRaii.ColorDisposable colorDisposable = ImRaii.PushColor(ImGuiCol.PlotHistogram, AccentColor); + colorDisposable.Push(ImGuiCol.FrameBg, new Vector4(1f, 1f, 1f, 0.12f)); return colorDisposable; } public static void DrawTabUnderline() { - ImDrawListPtr imDrawListPtr = _206C_206E_202A_202B_202D_206B_206C_200B_200B_200F_202D_206B_202D_206C_200C_200C_206A_200C_206B_200E_206C_200C_206B_200E_206B_206A_200F_202B_206E_202C_206F_202D_200F_202D_202E_200C_206B_202A_202C_200F_202E(); - Vector2 vector = _202B_200E_200C_206B_206B_206C_206E_206E_200D_206A_200E_206C_206C_200D_206B_206D_200D_206F_200E_206D_206D_202A_206A_200E_200B_200F_200C_206B_206C_202B_200D_206B_202D_206F_202E_206C_206D_202D_200F_202C_202E(); - Vector2 vector2 = _200E_202B_202A_206C_206A_206E_206B_206C_200F_200B_206F_200D_200C_206B_202D_200D_200E_202B_206D_200E_202D_202E_200D_202D_200B_206B_200E_202E_200D_206D_200C_206F_200C_202E_206A_206D_206F_200F_206B_206E_202E(); - imDrawListPtr.AddRectFilled(new Vector2(vector.X, vector2.Y - 3f), new Vector2(vector2.X, vector2.Y), _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(AccentColor)); + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 itemRectMin = ImGui.GetItemRectMin(); + Vector2 itemRectMax = ImGui.GetItemRectMax(); + windowDrawList.AddRectFilled(new Vector2(itemRectMin.X, itemRectMax.Y - 3f), new Vector2(itemRectMax.X, itemRectMax.Y), ImGui.ColorConvertFloat4ToU32(AccentColor)); } public static int DrawTabBar(string label0, string label1, int selected) @@ -1843,785 +673,201 @@ internal static class UiThemeUtils return DrawTabBar(global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<InlineArray2<string>, string>(in buffer, 2), selected, equalWidth: true); } - [MethodImpl(MethodImplOptions.NoInlining)] public static int DrawTabBar(ReadOnlySpan<string> labels, int selected, bool equalWidth = false) { - ImDrawListPtr imDrawListPtr = _206C_206E_202A_202B_202D_206B_206C_200B_200B_200F_202D_206B_202D_206C_200C_200C_206A_200C_206B_200E_206C_200C_206B_200E_206B_206A_200F_202B_206E_202C_206F_202D_200F_202D_202E_200C_206B_202A_202C_200F_202E(); - float x = _206E_200D_200C_206B_200C_206F_200F_200B_200F_206C_206D_200D_206E_202E_200B_202E_200C_206E_206A_202A_202E_200E_206D_206B_200E_202B_202D_206C_200D_202C_202E_202B_202D_200B_200F_202E_200B_202C_200C_206E_202E().X; - float x2 = _200D_200C_206C_206C_200E_202C_202D_200E_206D_206A_206D_202B_200D_202E_202C_200E_206E_200F_206E_200F_200C_206B_200F_206C_206C_200C_206F_202D_200E_206A_202D_200C_200B_202C_202A_202D_206F_202B_206F_200D_202E().ItemSpacing.X; - float x3 = _202D_202E_200C_202E_200C_202D_206E_206C_202A_200C_200C_206D_202D_202E_206C_206E_206F_206F_202A_202D_200D_202D_200B_206C_202E_202D_206C_200D_202E_206D_202C_200D_202B_200D_206B_202E_206A_206B_206A_202C_202E().X; + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + float x = ImGui.GetContentRegionAvail().X; + float x2 = ImGui.GetStyle().ItemSpacing.X; + float x3 = ImGui.GetCursorScreenPos().X; int result = selected; float x4 = 0f; float x5 = 0f; float num = 0f; float num2 = 0f; - int num3 = (equalWidth ? 2129292598 : 2129292599); - float num7; - int num5; - int num6; - while (true) - { - int num4 = num3; - num5 = 2129292598; - num6 = num4; - switch ((num6 | num5) - (num6 & num5)) - { - default: - continue; - case 2: - goto IL_0099; - case 1: - num7 = 0f; - break; - case 0: - num7 = (x - x2 * (float)(labels.Length - 1)) / (float)labels.Length; - break; - } - break; - IL_0099: - num3 = 2129292599; - } - float num8 = num7; + float num3 = (equalWidth ? ((x - x2 * (float)(labels.Length - 1)) / (float)labels.Length) : 0f); Span<float> span = stackalloc float[labels.Length]; - int num9 = 0; - ImRaii.IdDisposable idDisposable = _200D_200F_206C_202D_206B_206F_206E_206E_202D_202C_202E_202B_202D_206E_202B_200E_206C_202B_202D_200E_200B_206F_202B_200E_200B_200C_202A_202A_202C_200C_206A_206F_200E_202C_200F_206F_200D_206E_200C_202D_202E((ImU8String)global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1419382412), true); - try + int num4 = 0; + using (ImRaii.PushId("QstTabBar")) { - ImRaii.ColorDisposable colorDisposable = _200C_200C_200F_200D_206A_200E_202A_206D_200E_202C_206F_206D_200E_200B_206E_200D_206C_202C_202A_202D_200B_202D_206B_202A_202B_206A_200B_206F_206E_200B_206A_206A_202E_202A_200E_200F_200F_206B_202B_200F_202E(ImGuiCol.Button, Vector4.Zero, true); - try + using (ImRaii.PushColor(ImGuiCol.Button, Vector4.Zero)) { - ImRaii.ColorDisposable colorDisposable2 = _200C_200C_200F_200D_206A_200E_202A_206D_200E_202C_206F_206D_200E_200B_206E_200D_206C_202C_202A_202D_200B_202D_206B_202A_202B_206A_200B_206F_206E_200B_206A_206A_202E_202A_200E_200F_200F_206B_202B_200F_202E(ImGuiCol.ButtonHovered, SubtleHoverColor, true); - try + using (ImRaii.PushColor(ImGuiCol.ButtonHovered, SubtleHoverColor)) { - ImRaii.ColorDisposable colorDisposable3 = _200C_200C_200F_200D_206A_200E_202A_206D_200E_202C_206F_206D_200E_200B_206E_200D_206C_202C_202A_202D_200B_202D_206B_202A_202B_206A_200B_206F_206E_200B_206A_206A_202E_202A_200E_200F_200F_206B_202B_200F_202E(ImGuiCol.ButtonActive, SubtleActiveColor, true); - try + using (ImRaii.PushColor(ImGuiCol.ButtonActive, SubtleActiveColor)) { - float num10 = 0f; - int num11 = 0; - float num12 = default(float); - while (true) + float num5 = 0f; + for (int i = 0; i < labels.Length; i++) { - IL_0376: - if (num11 < labels.Length) + float num6 = (equalWidth ? num3 : (ImGui.CalcTextSize(labels[i]).X + ImGui.GetStyle().FramePadding.X * 2f)); + if (i > 0) { - num12 = (equalWidth ? num8 : (_200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)labels[num11], false, -1f).X + _200D_200C_206C_206C_200E_202C_202D_200E_206D_206A_206D_202B_200D_202E_202C_200E_206E_200F_206E_200F_200C_206B_200F_206C_206C_200C_206F_202D_200E_206A_202D_200C_200B_202C_202A_202D_206F_202B_206F_200D_202E().FramePadding.X * 2f)); - if (num11 > 0) + if (num5 + x2 + num6 <= x) { - if (num10 + x2 + num12 <= x) - { - _206D_206A_206D_202E_206E_206F_206F_206B_200F_200F_202A_206E_206C_200F_200D_200B_206D_206F_206E_206A_202C_200F_206A_200D_200C_206D_206A_206C_206A_206A_206C_206D_202E_202B_206F_200F_200D_200E_206E_202A_202E(); - num10 += x2; - } - else - { - int num13 = num9; - num5 = 1; - num6 = num13; - int num14 = num6 ^ num5; - int num15 = num6 & num5; - num9 = num14 + (num15 + num15); - span[num13] = num2; - num10 = 0f; - } + ImGui.SameLine(); + num5 += x2; } - ImRaii.ColorDisposable colorDisposable4 = _200C_200C_200F_200D_206A_200E_202A_206D_200E_202C_206F_206D_200E_200B_206E_200D_206C_202C_202A_202D_200B_202D_206B_202A_202B_206A_200B_206F_206E_200B_206A_206A_202E_202A_200E_200F_200F_206B_202B_200F_202E(ImGuiCol.Text, (num11 == selected) ? AccentColor : DimTextColor, true); - try + else { - num3 = ((!_206C_200D_206F_206B_202E_202C_200E_202B_202A_206B_200F_200D_206E_202A_206F_202C_202E_206D_200E_202C_200F_200C_206B_206A_206E_206D_206A_200E_200D_206C_202C_202C_202C_206F_202E_206E_202E_202A_206E_206B_202E((ImU8String)labels[num11], new Vector2(num12, 0f))) ? 948298611 : 948298608); - while (true) - { - int num16 = num3; - num5 = 948298609; - num6 = num16; - int num17 = num6 + num5; - int num18 = num6 & num5; - switch (num17 - (num18 + num18)) - { - case 0: - num3 = 948298608; - break; - case 1: - result = num11; - num3 = 948298611; - break; - case 2: - goto end_IL_0235; - } - continue; - end_IL_0235: - break; - } + span[num4++] = num2; + num5 = 0f; } - finally - { - num3 = ((colorDisposable4 == null) ? 1966743355 : 1966743352); - while (true) - { - int num19 = num3; - num5 = 1966743353; - num6 = num19; - int num20 = num6 + num5; - int num21 = num6 & num5; - switch (num20 - (num21 + num21)) - { - case 0: - num3 = 1966743352; - break; - case 2: - goto end_IL_02a3; - case 1: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)colorDisposable4); - num3 = 1966743355; - break; - } - continue; - end_IL_02a3: - break; - } - } - num3 = ((num11 != selected) ? (-1680989916) : (-1680989914)); } - else + using (ImRaii.PushColor(ImGuiCol.Text, (i == selected) ? AccentColor : DimTextColor)) { - num3 = -1680989913; - } - while (true) - { - int num22 = num3; - num5 = -1680989913; - num6 = num22; - switch ((num6 | num5) - (num6 & num5)) + if (ImGui.Button(labels[i], new Vector2(num6, 0f))) { - case 2: - num3 = -1680989914; - break; - case 3: - goto IL_034d; - case 1: - x4 = _202B_200E_200C_206B_206B_206C_206E_206E_200D_206A_200E_206C_206C_200D_206B_206D_200D_206F_200E_206D_206D_202A_206A_200E_200B_200F_200C_206B_206C_202B_200D_206B_202D_206F_202E_206C_206D_202D_200F_202C_202E().X; - x5 = _200E_202B_202A_206C_206A_206E_206B_206C_200F_200B_206F_200D_200C_206B_202D_200D_200E_202B_206D_200E_202D_202E_200D_202D_200B_206B_200E_202E_200D_206D_200C_206F_200C_202E_206A_206D_206F_200F_206B_206E_202E().X; - num = _200E_202B_202A_206C_206A_206E_206B_206C_200F_200B_206F_200D_200C_206B_202D_200D_200E_202B_206D_200E_202D_202E_200D_202D_200B_206B_200E_202E_200D_206D_200C_206F_200C_202E_206A_206D_206F_200F_206B_206E_202E().Y; - num3 = -1680989916; - break; - case 0: - goto end_IL_0311; + result = i; } - continue; - IL_034d: - num2 = _200E_202B_202A_206C_206A_206E_206B_206C_200F_200B_206F_200D_200C_206B_202D_200D_200E_202B_206D_200E_202D_202E_200D_202D_200B_206B_200E_202E_200D_206D_200C_206F_200C_202E_206A_206D_206F_200F_206B_206E_202E().Y; - num10 += num12; - int num23 = num11; - num5 = 1; - num6 = num23; - int num24 = num6 ^ num5; - int num25 = num6 & num5; - num11 = num24 + (num25 + num25); - goto IL_0376; - continue; - end_IL_0311: - break; } - break; - } - } - finally - { - num3 = ((colorDisposable3 == null) ? (-133177192) : (-133177189)); - while (true) - { - int num26 = num3; - num5 = -133177190; - num6 = num26; - int num27 = num6 + num5; - int num28 = num6 & num5; - switch (num27 - (num28 + num28)) + if (i == selected) { - case 2: - goto end_IL_03e4; - case 1: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)colorDisposable3); - num3 = -133177192; - break; - case 0: - num3 = -133177189; - break; + x4 = ImGui.GetItemRectMin().X; + x5 = ImGui.GetItemRectMax().X; + num = ImGui.GetItemRectMax().Y; } - continue; - end_IL_03e4: - break; + num2 = ImGui.GetItemRectMax().Y; + num5 += num6; } } } - finally - { - num3 = ((colorDisposable2 == null) ? 2058513122 : 2058513121); - while (true) - { - int num29 = num3; - num5 = 2058513120; - num6 = num29; - int num30 = num6 + num5; - int num31 = num6 & num5; - switch (num30 - (num31 + num31)) - { - case 2: - goto end_IL_0451; - case 1: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)colorDisposable2); - num3 = 2058513122; - break; - case 0: - num3 = 2058513121; - break; - } - continue; - end_IL_0451: - break; - } - } - } - finally - { - num3 = ((colorDisposable == null) ? (-222793051) : (-222793050)); - while (true) - { - int num32 = num3; - num5 = -222793049; - num6 = num32; - switch ((num6 | num5) - (num6 & num5)) - { - case 0: - num3 = -222793050; - break; - case 1: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)colorDisposable); - num3 = -222793051; - break; - case 2: - goto end_IL_04be; - } - continue; - end_IL_04be: - break; - } } } - finally + span[num4++] = num2; + for (int j = 0; j < num4; j++) { - num3 = ((idDisposable == null) ? 1606233094 : 1606233093); - while (true) - { - int num33 = num3; - num5 = 1606233095; - num6 = num33; - int num34 = num6 + num5; - int num35 = num6 & num5; - switch (num34 - (num35 + num35)) - { - case 1: - goto end_IL_0529; - case 2: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)idDisposable); - num3 = 1606233094; - break; - case 0: - num3 = 1606233093; - break; - } - continue; - end_IL_0529: - break; - } - } - int num36 = num9; - num5 = 1; - num6 = num36; - num9 = (num6 | num5) + (num6 & num5); - span[num36] = num2; - int num37 = 0; - num3 = 958295142; - while (true) - { - int num38 = num3; - num5 = 958295141; - num6 = num38; - switch ((num6 | num5) - (num6 & num5)) - { - case 0: - num3 = 958295142; - break; - case 1: - { - imDrawListPtr.AddRectFilled(new Vector2(x3, span[num37]), new Vector2(x3 + x, span[num37] + 2f), _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(AccentDimColor)); - int num39 = num37; - num5 = 1; - num6 = num39; - num37 = (num6 | num5) + (num6 & num5); - num3 = 958295142; - break; - } - case 3: - num3 = ((num37 < num9) ? 958295140 : 958295143); - break; - case 2: - imDrawListPtr.AddRectFilled(new Vector2(x4, num), new Vector2(x5, num + 2f), _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(AccentColor)); - _200E_202D_200C_206E_200B_206A_200E_206F_200F_200C_200D_202D_200D_200E_200B_206E_206C_206F_202D_202C_206E_200D_206B_206B_206C_206B_202D_202E_206D_202B_202D_202C_206E_206E_200C_200F_206F_206C_202C_206A_202E(); - return result; - } + windowDrawList.AddRectFilled(new Vector2(x3, span[j]), new Vector2(x3 + x, span[j] + 2f), ImGui.ColorConvertFloat4ToU32(AccentDimColor)); } + windowDrawList.AddRectFilled(new Vector2(x4, num), new Vector2(x5, num + 2f), ImGui.ColorConvertFloat4ToU32(AccentColor)); + ImGui.Spacing(); + return result; } - [MethodImpl(MethodImplOptions.NoInlining)] public static bool IconButton(FontAwesomeIcon icon, float size) { - ImDrawListPtr imDrawListPtr = _206C_206E_202A_202B_202D_206B_206C_200B_200B_200F_202D_206B_202D_206C_200C_200C_206A_200C_206B_200E_206C_200C_206B_200E_206B_206A_200F_202B_206E_202C_206F_202D_200F_202D_202E_200C_206B_202A_202C_200F_202E(); - Vector2 vector = _202D_202E_200C_202E_200C_202D_206E_206C_202A_200C_200C_206D_202D_202E_206C_206E_206F_206F_202A_202D_200D_202D_200B_206C_202E_202D_206C_200D_202E_206D_202C_200D_202B_200D_206B_202E_206A_206B_206A_202C_202E(); - ImU8String imU8String = new ImU8String(2, 1); - imU8String.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(604327994)); - imU8String.AppendFormatted(icon); - bool result = _206C_200D_206F_206B_202E_202C_200E_202B_202A_206B_200F_200D_206E_202A_206F_202C_202E_206D_200E_202C_200F_200C_206B_206A_206E_206D_206A_200E_200D_206C_202C_202C_202C_206F_202E_206E_202E_202A_206E_206B_202E(imU8String, new Vector2(size, size)); - string text = _200E_200B_202B_206D_202E_200F_202D_200F_206C_206C_202E_202D_202D_200F_200E_200F_200F_200C_206B_200D_200D_200B_206E_206B_206B_200C_200C_202C_206C_200F_206B_202E_202B_202D_206D_206E_200E_202C_202C_200C_202E(icon); - ImRaii.FontDisposable fontDisposable = _202A_202E_206A_202E_206D_202A_200B_200B_200F_206D_206E_200E_200C_206B_200C_206A_200F_200E_200E_200D_200F_206B_202D_206C_202A_200D_206A_206D_200C_200D_206A_202C_206C_206C_202A_206A_200E_206C_200F_202E(_206F_206D_206C_200F_200E_206B_202A_200F_202E_206A_206E_200F_206D_206A_206F_206D_206B_200F_200E_202E_200B_206B_200D_200E_206D_200C_206D_206B_202C_202E_206B_202E_206B_202C_202A_200D_202B_200F_202C_200E_202E(), true); - Vector2 vector2; - try + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + ImU8String label = new ImU8String(2, 1); + label.AppendLiteral("##"); + label.AppendFormatted(icon); + bool result = ImGui.Button(label, new Vector2(size, size)); + string text = icon.ToIconString(); + Vector2 vector; + using (ImRaii.PushFont(UiBuilder.IconFont)) { - vector2 = _200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)text, false, -1f); + vector = ImGui.CalcTextSize(text); } - finally - { - int num = ((fontDisposable == null) ? 1966347384 : 1966347387); - while (true) - { - int num2 = num; - int num3 = 1966347385; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1966347387; - break; - case 2: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)fontDisposable); - num = 1966347384; - break; - case 1: - goto end_IL_0088; - } - continue; - end_IL_0088: - break; - } - } - uint col = _202B_206B_202C_206F_200F_202C_200C_200E_202B_200E_200D_206F_200C_200B_206E_206C_200D_206B_202E_206E_200F_200C_200D_206F_200D_200F_206D_200C_206E_202C_200E_200F_200C_200D_206D_202C_202A_200C_200D_202B_202E(ImGuiCol.Text); - float x = vector.X + (size - vector2.X) / 2f; - float y = vector.Y + (size - vector2.Y) / 2f; - imDrawListPtr.AddText(_206F_206D_206C_200F_200E_206B_202A_200F_202E_206A_206E_200F_206D_206A_206F_206D_206B_200F_200E_202E_200B_206B_200D_200E_206D_200C_206D_206B_202C_202E_206B_202E_206B_202C_202A_200D_202B_200F_202C_200E_202E(), _200D_202A_206A_206F_202D_206E_206E_206F_206C_206F_200F_200D_200E_200F_202D_202D_202C_202D_206E_202D_202B_206C_202C_206E_206B_200E_202B_206F_202E_202A_206D_202D_200D_206B_200F_202A_202E_206F_206A_202C_202E(), new Vector2(x, y), col, text); + uint colorU = ImGui.GetColorU32(ImGuiCol.Text); + float x = cursorScreenPos.X + (size - vector.X) / 2f; + float y = cursorScreenPos.Y + (size - vector.Y) / 2f; + windowDrawList.AddText(UiBuilder.IconFont, ImGui.GetFontSize(), new Vector2(x, y), colorU, text); return result; } public static bool IconTextButton(FontAwesomeIcon icon, string text) { - string text2 = _200E_200B_202B_206D_202E_200F_202D_200F_206C_206C_202E_202D_202D_200F_200E_200F_200F_200C_206B_200D_200D_200B_206E_206B_206B_200C_200C_202C_206C_200F_206B_202E_202B_202D_206D_206E_200E_202C_202C_200C_202E(icon); - ImRaii.FontDisposable fontDisposable = _202A_202E_206A_202E_206D_202A_200B_200B_200F_206D_206E_200E_200C_206B_200C_206A_200F_200E_200E_200D_200F_206B_202D_206C_202A_200D_206A_206D_200C_200D_206A_202C_206C_206C_202A_206A_200E_206C_200F_202E(_206F_206D_206C_200F_200E_206B_202A_200F_202E_206A_206E_200F_206D_206A_206F_206D_206B_200F_200E_202E_200B_206B_200D_200E_206D_200C_206D_206B_202C_202E_206B_202E_206B_202C_202A_200D_202B_200F_202C_200E_202E(), true); + string text2 = icon.ToIconString(); Vector2 vector; - try + using (ImRaii.PushFont(UiBuilder.IconFont)) { - vector = _200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)text2, false, -1f); + vector = ImGui.CalcTextSize(text2); } - finally - { - int num = ((fontDisposable == null) ? (-1536648818) : (-1536648819)); - while (true) - { - int num2 = num; - int num3 = -1536648817; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1536648819; - break; - case 2: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)fontDisposable); - num = -1536648818; - break; - case 1: - goto end_IL_004a; - } - continue; - end_IL_004a: - break; - } - } - Vector2 vector2 = _200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)text, false, -1f); - float num5 = 6f; - float width = vector.X + num5 + vector2.X + 2f * _200D_200C_206C_206C_200E_202C_202D_200E_206D_206A_206D_202B_200D_202E_202C_200E_206E_200F_206E_200F_200C_206B_200F_206C_206C_200C_206F_202D_200E_206A_202D_200C_200B_202C_202A_202D_206F_202B_206F_200D_202E().FramePadding.X; + Vector2 vector2 = ImGui.CalcTextSize(text); + float num = 6f; + float width = vector.X + num + vector2.X + 2f * ImGui.GetStyle().FramePadding.X; return IconTextButton(icon, text, width); } - [MethodImpl(MethodImplOptions.NoInlining)] public static bool IconTextButton(FontAwesomeIcon icon, string text, float width) { - ImDrawListPtr imDrawListPtr = _206C_206E_202A_202B_202D_206B_206C_200B_200B_200F_202D_206B_202D_206C_200C_200C_206A_200C_206B_200E_206C_200C_206B_200E_206B_206A_200F_202B_206E_202C_206F_202D_200F_202D_202E_200C_206B_202A_202C_200F_202E(); - Vector2 vector = _202D_202E_200C_202E_200C_202D_206E_206C_202A_200C_200C_206D_202D_202E_206C_206E_206F_206F_202A_202D_200D_202D_200B_206C_202E_202D_206C_200D_202E_206D_202C_200D_202B_200D_206B_202E_206A_206B_206A_202C_202E(); - float y = _206B_200B_200D_202B_202D_202E_206F_200E_206A_202D_206C_206E_200F_200F_206A_202B_206D_200D_206B_206E_206D_202C_200E_206E_200E_200F_200E_200B_202A_200B_206B_200C_202E_202A_206C_206F_206F_200D_206C_200D_202E(); - ImU8String imU8String = new ImU8String(2, 1); - imU8String.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1426082020)); - imU8String.AppendFormatted(text); - bool result = _206C_200D_206F_206B_202E_202C_200E_202B_202A_206B_200F_200D_206E_202A_206F_202C_202E_206D_200E_202C_200F_200C_206B_206A_206E_206D_206A_200E_200D_206C_202C_202C_202C_206F_202E_206E_202E_202A_206E_206B_202E(imU8String, new Vector2(width, y)); - string text2 = _200E_200B_202B_206D_202E_200F_202D_200F_206C_206C_202E_202D_202D_200F_200E_200F_200F_200C_206B_200D_200D_200B_206E_206B_206B_200C_200C_202C_206C_200F_206B_202E_202B_202D_206D_206E_200E_202C_202C_200C_202E(icon); - ImRaii.FontDisposable fontDisposable = _202A_202E_206A_202E_206D_202A_200B_200B_200F_206D_206E_200E_200C_206B_200C_206A_200F_200E_200E_200D_200F_206B_202D_206C_202A_200D_206A_206D_200C_200D_206A_202C_206C_206C_202A_206A_200E_206C_200F_202E(_206F_206D_206C_200F_200E_206B_202A_200F_202E_206A_206E_200F_206D_206A_206F_206D_206B_200F_200E_202E_200B_206B_200D_200E_206D_200C_206D_206B_202C_202E_206B_202E_206B_202C_202A_200D_202B_200F_202C_200E_202E(), true); - Vector2 vector2; - try + ImDrawListPtr windowDrawList = ImGui.GetWindowDrawList(); + Vector2 cursorScreenPos = ImGui.GetCursorScreenPos(); + float frameHeight = ImGui.GetFrameHeight(); + ImU8String label = new ImU8String(2, 1); + label.AppendLiteral("##"); + label.AppendFormatted(text); + bool result = ImGui.Button(label, new Vector2(width, frameHeight)); + string text2 = icon.ToIconString(); + Vector2 vector; + using (ImRaii.PushFont(UiBuilder.IconFont)) { - vector2 = _200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)text2, false, -1f); + vector = ImGui.CalcTextSize(text2); } - finally - { - int num = ((fontDisposable == null) ? 436293026 : 436293025); - while (true) - { - int num2 = num; - int num3 = 436293027; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 436293025; - break; - case 1: - goto end_IL_0090; - case 2: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)fontDisposable); - num = 436293026; - break; - } - continue; - end_IL_0090: - break; - } - } - Vector2 vector3 = _200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E((ImU8String)text, false, -1f); - float num5 = 6f; - float num6 = vector2.X + num5 + vector3.X; - float num7 = vector.X + (width - num6) / 2f; - float y2 = vector.Y + _200D_200C_206C_206C_200E_202C_202D_200E_206D_206A_206D_202B_200D_202E_202C_200E_206E_200F_206E_200F_200C_206B_200F_206C_206C_200C_206F_202D_200E_206A_202D_200C_200B_202C_202A_202D_206F_202B_206F_200D_202E().FramePadding.Y; - uint col = _202B_206B_202C_206F_200F_202C_200C_200E_202B_200E_200D_206F_200C_200B_206E_206C_200D_206B_202E_206E_200F_200C_200D_206F_200D_200F_206D_200C_206E_202C_200E_200F_200C_200D_206D_202C_202A_200C_200D_202B_202E(ImGuiCol.Text); - imDrawListPtr.AddText(_206F_206D_206C_200F_200E_206B_202A_200F_202E_206A_206E_200F_206D_206A_206F_206D_206B_200F_200E_202E_200B_206B_200D_200E_206D_200C_206D_206B_202C_202E_206B_202E_206B_202C_202A_200D_202B_200F_202C_200E_202E(), _200D_202A_206A_206F_202D_206E_206E_206F_206C_206F_200F_200D_200E_200F_202D_202D_202C_202D_206E_202D_202B_206C_202C_206E_206B_200E_202B_206F_202E_202A_206D_202D_200D_206B_200F_202A_202E_206F_206A_202C_202E(), new Vector2(num7, y2), col, text2); - imDrawListPtr.AddText(new Vector2(num7 + vector2.X + num5, y2), col, text); + Vector2 vector2 = ImGui.CalcTextSize(text); + float num = 6f; + float num2 = vector.X + num + vector2.X; + float num3 = cursorScreenPos.X + (width - num2) / 2f; + float y = cursorScreenPos.Y + ImGui.GetStyle().FramePadding.Y; + uint colorU = ImGui.GetColorU32(ImGuiCol.Text); + windowDrawList.AddText(UiBuilder.IconFont, ImGui.GetFontSize(), new Vector2(num3, y), colorU, text2); + windowDrawList.AddText(new Vector2(num3 + vector.X + num, y), colorU, text); return result; } public static bool PillButton(string label, bool selected) { - float num = _206B_200B_200D_202B_202D_202E_206F_200E_206A_202D_206C_206E_200F_200F_206A_202B_206D_200D_206B_206E_206D_202C_200E_206E_200E_200F_200E_200B_202A_200B_206B_200C_202E_202A_206C_206F_206F_200D_206C_200D_202E() * 0.5f; - Vector2 framePadding = _200D_200C_206C_206C_200E_202C_202D_200E_206D_206A_206D_202B_200D_202E_202C_200E_206E_200F_206E_200F_200C_206B_200F_206C_206C_200C_206F_202D_200E_206A_202D_200C_200B_202C_202A_202D_206F_202B_206F_200D_202E().FramePadding; - ImRaii.StyleDisposable styleDisposable = _206D_202C_202C_206B_202A_202A_200C_200E_200E_206F_206B_206C_200B_206B_206D_202D_200C_200D_200C_206F_202C_202B_206A_202C_200E_206D_200B_206E_202E_206B_206F_206C_200C_200C_206C_200D_202A_202B_200B_200E_202E(ImGuiStyleVar.FrameRounding, num, true); - try + float value = ImGui.GetFrameHeight() * 0.5f; + Vector2 framePadding = ImGui.GetStyle().FramePadding; + using (ImRaii.PushStyle(ImGuiStyleVar.FrameRounding, value)) { - ImRaii.StyleDisposable styleDisposable2 = _206C_200B_200D_200C_206E_202D_206B_202C_206D_200C_206A_200B_206E_206B_200B_206B_206D_206C_206C_206B_206D_202E_202B_206F_202B_206D_206E_202A_200D_206D_206D_200D_202B_202A_206A_206D_206E_202A_202A_202E(ImGuiStyleVar.FramePadding, new Vector2(framePadding.X * 2f, framePadding.Y), true); - try + using (ImRaii.PushStyle(ImGuiStyleVar.FramePadding, new Vector2(framePadding.X * 2f, framePadding.Y))) { - ImRaii.StyleDisposable styleDisposable3 = _206D_202C_202C_206B_202A_202A_200C_200E_200E_206F_206B_206C_200B_206B_206D_202D_200C_200D_200C_206F_202C_202B_206A_202C_200E_206D_200B_206E_202E_206B_206F_206C_200C_200C_206C_200D_202A_202B_200B_200E_202E(ImGuiStyleVar.FrameBorderSize, selected ? 1f : 0f, true); - try + using (ImRaii.PushStyle(ImGuiStyleVar.FrameBorderSize, selected ? 1f : 0f)) { - ImRaii.ColorDisposable colorDisposable = _202A_200D_206C_206A_206B_202B_202A_202B_206F_206D_206A_206F_206E_200C_202D_206E_202C_202D_206D_200C_202B_200F_202B_206B_206D_206C_206D_200D_200C_206D_202E_200F_206B_200D_202B_200C_206F_202C_202E_200F_202E(); - try + using ImRaii.ColorDisposable colorDisposable = new ImRaii.ColorDisposable(); + if (selected) { - int num2 = ((!selected) ? 289400424 : 289400427); - while (true) - { - int num3 = num2; - int num4 = 289400425; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 1: - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable, ImGuiCol.Button, Vector4.Zero, true); - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable, ImGuiCol.ButtonHovered, SubtleHoverColor, true); - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable, ImGuiCol.ButtonActive, SubtlePressColor, true); - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable, ImGuiCol.Text, MutedTextColor, true); - num2 = 289400426; - break; - case 2: - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable, ImGuiCol.Button, new Vector4(0.55f, 0.35f, 0.8f, 0.3f), true); - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable, ImGuiCol.ButtonHovered, new Vector4(0.55f, 0.35f, 0.8f, 0.4f), true); - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable, ImGuiCol.ButtonActive, new Vector4(0.55f, 0.35f, 0.8f, 0.5f), true); - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable, ImGuiCol.Border, CardBorderColor, true); - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable, ImGuiCol.Text, AccentColor, true); - num2 = 289400426; - break; - case 0: - num2 = 289400427; - break; - case 3: - return _206C_200D_206F_206B_202E_202C_200E_202B_202A_206B_200F_200D_206E_202A_206F_202C_202E_206D_200E_202C_200F_200C_206B_206A_206E_206D_206A_200E_200D_206C_202C_202C_202C_206F_202E_206E_202E_202A_206E_206B_202E((ImU8String)label, default(Vector2)); - } - } + colorDisposable.Push(ImGuiCol.Button, new Vector4(0.55f, 0.35f, 0.8f, 0.3f)); + colorDisposable.Push(ImGuiCol.ButtonHovered, new Vector4(0.55f, 0.35f, 0.8f, 0.4f)); + colorDisposable.Push(ImGuiCol.ButtonActive, new Vector4(0.55f, 0.35f, 0.8f, 0.5f)); + colorDisposable.Push(ImGuiCol.Border, CardBorderColor); + colorDisposable.Push(ImGuiCol.Text, AccentColor); } - finally + else { - int num2 = ((colorDisposable == null) ? (-1700815628) : (-1700815627)); - while (true) - { - int num8 = num2; - int num4 = -1700815628; - int num5 = num8; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - num2 = -1700815627; - break; - case 1: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)colorDisposable); - num2 = -1700815628; - break; - case 0: - goto end_IL_01e8; - } - continue; - end_IL_01e8: - break; - } + colorDisposable.Push(ImGuiCol.Button, Vector4.Zero); + colorDisposable.Push(ImGuiCol.ButtonHovered, SubtleHoverColor); + colorDisposable.Push(ImGuiCol.ButtonActive, SubtlePressColor); + colorDisposable.Push(ImGuiCol.Text, MutedTextColor); } + return ImGui.Button(label); } - finally - { - int num2 = ((styleDisposable3 == null) ? 104724671 : 104724668); - while (true) - { - int num9 = num2; - int num4 = 104724670; - int num5 = num9; - int num10 = num5 + num4; - int num11 = num5 & num4; - switch (num10 - (num11 + num11)) - { - case 0: - num2 = 104724668; - break; - case 1: - goto end_IL_0253; - case 2: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)styleDisposable3); - num2 = 104724671; - break; - } - continue; - end_IL_0253: - break; - } - } - } - finally - { - int num2 = ((styleDisposable2 == null) ? (-1830419469) : (-1830419470)); - while (true) - { - int num12 = num2; - int num4 = -1830419469; - int num5 = num12; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - num2 = -1830419470; - break; - case 0: - goto end_IL_02bf; - case 1: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)styleDisposable2); - num2 = -1830419469; - break; - } - continue; - end_IL_02bf: - break; - } - } - } - finally - { - int num2 = ((styleDisposable == null) ? 1138450126 : 1138450127); - while (true) - { - int num13 = num2; - int num4 = 1138450126; - int num5 = num13; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - num2 = 1138450127; - break; - case 0: - goto end_IL_0328; - case 1: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)styleDisposable); - num2 = 1138450126; - break; - } - continue; - end_IL_0328: - break; } } } - [MethodImpl(MethodImplOptions.NoInlining)] public static bool DestructiveButton(FontAwesomeIcon icon, string label) { - ImRaii.ColorDisposable colorDisposable = _200C_200C_200F_200D_206A_200E_202A_206D_200E_202C_206F_206D_200E_200B_206E_200D_206C_202C_202A_202D_200B_202D_206B_202A_202B_206A_200B_206F_206E_200B_206A_206A_202E_202A_200E_200F_200F_206B_202B_200F_202E(ImGuiCol.Button, new Vector4(0.55f, 0.2f, 0.2f, 0.45f), true); bool result; - int num; - try + using (ImRaii.ColorDisposable colorDisposable = ImRaii.PushColor(ImGuiCol.Button, new Vector4(0.55f, 0.2f, 0.2f, 0.45f))) { - _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(colorDisposable, ImGuiCol.ButtonHovered, new Vector4(0.7f, 0.25f, 0.25f, 0.65f), true); - ImRaii.DisabledDisposable disabledDisposable = _202E_206C_206B_206A_202A_206B_202D_202A_200F_206D_206B_200D_200D_206E_202C_200D_200F_206B_202C_202C_206C_200C_206B_200C_206F_206D_206A_200E_200D_202A_206C_206D_202D_200C_202A_206C_200B_206D_200E_202E_202E(!_200B_200B_200D_200F_200D_200B_200D_202E_202C_200E_200C_200B_200F_200D_206F_200F_206D_206A_200F_200F_200D_206C_200E_206B_206D_202E_202E_202D_200E_206C_202C_206F_202E_206D_206D_200F_206E_202C_206F_200D_202E(ImGuiKey.ModCtrl)); - try + colorDisposable.Push(ImGuiCol.ButtonHovered, new Vector4(0.7f, 0.25f, 0.25f, 0.65f)); + using (ImRaii.Disabled(!ImGui.IsKeyDown(ImGuiKey.ModCtrl))) { result = IconTextButton(icon, label); } - finally - { - num = ((disabledDisposable == null) ? 217085840 : 217085843); - while (true) - { - int num2 = num; - int num3 = 217085841; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - goto end_IL_0081; - case 2: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)disabledDisposable); - num = 217085840; - break; - case 0: - num = 217085843; - break; - } - continue; - end_IL_0081: - break; - } - } } - finally + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled)) { - num = ((colorDisposable == null) ? 269409889 : 269409890); - while (true) - { - int num5 = num; - int num3 = 269409891; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_00e5; - case 1: - _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E((IDisposable)colorDisposable); - num = 269409889; - break; - case 0: - num = 269409890; - break; - } - continue; - end_IL_00e5: - break; - } - } - num = ((!_202E_200E_200C_200D_202A_202B_202E_206A_206C_202E_200B_206F_200D_206E_202E_200E_200C_206C_206E_200F_206B_200D_200D_200C_202D_202D_206B_200C_206A_202A_200E_200F_200D_202E_206F_200D_206F_202D_202E_206F_202E(ImGuiHoveredFlags.AllowWhenDisabled)) ? 172403267 : 172403266); - while (true) - { - int num6 = num; - int num3 = 172403267; - int num4 = num6; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 172403266; - break; - case 1: - _206B_202D_206E_202E_200D_206D_202E_206E_206F_200E_202B_206B_202E_206E_202D_200E_200C_206E_202A_202E_202D_200F_202A_200D_202D_206A_200E_202C_206E_202B_206E_200E_206C_206E_206C_206C_202B_206A_206F_200E_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-136942055)); - num = 172403267; - break; - case 0: - return result; - } + ImGui.SetTooltip("Hold CTRL to enable."); } + return result; } public static string CleanSeString(string text) { - int num = ((!_202B_200F_206E_202D_200E_202B_202B_206C_206E_202B_200C_206B_202C_206A_200E_200F_202D_202C_206C_202B_202B_202E_200B_202D_202C_206A_206E_206A_202B_206D_206B_202A_200E_206A_206B_206E_200D_200E_202D_200E_202E(text)) ? 1734351049 : 1734351052); - char c = default(char); - StringBuilder stringBuilder = default(StringBuilder); - string text2 = default(string); - int num5 = default(int); - while (true) + if (string.IsNullOrEmpty(text)) { - int num2 = num; - int num3 = 1734351055; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return text; + } + StringBuilder stringBuilder = new StringBuilder(text.Length); + foreach (char c in text) + { + if ((c < '\ue000' || c > '\uf8ff') && (c >= ' ' || c == '\n' || c == '\r' || c == '\t')) { - case 11: - num = ((c == '\n') ? 1734351045 : 1734351053); - break; - case 6: - stringBuilder = _202E_206A_206F_206B_200D_206B_200E_202B_200D_200E_206C_200B_206A_200D_206F_202A_200E_200B_202A_202A_202E_206A_202B_206B_206A_202C_200E_206F_206F_202A_206C_206C_202A_206D_202C_202A_200E_200D_200B_202B_202E(_206C_202D_206C_200C_202E_206B_206B_202A_206C_206A_200F_206D_202D_202A_202C_200F_202E_202B_206B_202E_206D_206C_206E_206F_206D_202A_206C_200B_202A_200F_206A_200E_202C_200E_206D_202D_206F_200F_206F_206A_202E(text)); - text2 = text; - num5 = 0; - num = 1734351051; - break; - case 3: - return text; - case 1: - c = _206C_206C_200C_200F_202D_202E_206A_206A_206D_206B_202C_202A_206E_206C_200F_202D_202C_202D_206D_200B_206B_206E_202D_206A_202C_200D_206C_200B_206C_202C_206F_206E_202B_206B_200C_200E_200B_200D_200E_206A_202E(text2, num5); - num = ((c < '\ue000') ? 1734351048 : 1734351047); - break; - case 10: - _200F_202D_206D_206A_200F_206D_206F_202C_202A_206A_202C_206B_206D_200C_206A_206C_206F_202A_200F_206F_206E_206F_206B_202A_200C_200F_206A_200C_202A_206E_202A_206E_200B_200D_206F_202B_202C_206E_202C_200C_202E(stringBuilder, c); - num = 1734351046; - break; - case 7: - num = ((c >= ' ') ? 1734351045 : 1734351044); - break; - case 8: - num = ((c <= '\uf8ff') ? 1734351046 : 1734351048); - break; - case 4: - num = ((num5 < _206C_202D_206C_200C_202E_206B_206B_202A_206C_206A_200F_206D_202D_202A_202C_200F_202E_202B_206B_202E_206D_206C_206E_206F_206D_202A_206C_200B_202A_200F_206A_200E_202C_200E_206D_202D_206F_200F_206F_206A_202E(text2)) ? 1734351054 : 1734351050); - break; - case 12: - num = 1734351052; - break; - case 5: - return _206D_200D_202E_200E_202D_202B_206E_200D_200B_202C_202C_206A_202C_200B_200D_202E_206A_202B_202E_206E_200C_202C_200C_202E_202C_202A_206B_202B_202A_202A_206C_206D_202E_200D_200C_200B_200E_200F_200C_202A_202E(_206D_200F_206A_206B_200E_206E_200F_202E_200E_200D_206A_200C_200E_206D_200F_200C_206F_202A_200F_206F_200D_206A_206C_206B_206E_202D_206F_206A_200E_206E_206A_200C_202E_206F_206D_206B_206B_206A_200B_206E_202E((object)stringBuilder)); - case 0: - num = ((c != '\t') ? 1734351046 : 1734351045); - break; - case 9: - { - int num6 = num5; - num3 = 1; - num4 = num6; - int num7 = num4 ^ num3; - int num8 = num4 & num3; - num5 = num7 + (num8 + num8); - num = 1734351051; - break; - } - case 2: - num = ((c == '\r') ? 1734351045 : 1734351055); - break; + stringBuilder.Append(c); } } + return stringBuilder.ToString().Trim(); } static UiThemeUtils() @@ -2645,478 +891,13 @@ internal static class UiThemeUtils SubtleHoverColor = new Vector4(1f, 1f, 1f, 0.04f); SubtleActiveColor = new Vector4(1f, 1f, 1f, 0.06f); SubtlePressColor = new Vector4(1f, 1f, 1f, 0.08f); - StatusComplete = _202E_206B_202E_200F_206D_206A_202D_206E_200F_200F_200C_206E_200B_200E_200F_206C_200E_200C_206D_206D_200C_200C_206E_200E_202A_206C_206F_200D_200D_206E_206D_202C_202B_206C_206E_206D_206E_202C_200D_200E_202E(); - StatusActive = _200C_206F_200B_200F_206A_206C_202C_200E_206F_200C_200B_200C_206E_200D_202A_200C_206B_206B_206C_206B_206F_206F_202D_200C_202E_202D_200E_200F_200C_206E_202A_202E_202D_202E_200E_202C_200B_200E_202D_206A_202E(); - StatusAvailable = _200C_206F_200B_200F_206A_206C_202C_200E_206F_200C_200B_200C_206E_200D_202A_200C_206B_206B_206C_206B_206F_206F_202D_200C_202E_202D_200E_200F_200C_206E_202A_202E_202D_202E_200E_202C_200B_200E_202D_206A_202E(); - StatusAvailableComplete = _202E_200E_200C_206D_202E_206E_202C_206B_202A_200D_202B_206F_202A_202A_202E_206A_202A_202C_206E_202E_206C_206E_206E_206B_206B_202C_200E_200D_206B_200F_206C_200F_206D_206A_200E_202D_206A_200C_200C_206C_202E(); - StatusLocked = _202C_206D_206B_202B_202C_206E_200D_206D_206E_202D_206E_202D_200F_206C_200E_200B_200C_202B_206E_206C_202A_202E_200F_202A_206C_200C_206E_202A_202B_206A_200B_202B_202D_202E_202E_202C_202B_202C_206B_206D_202E(); - StatusUnobtainable = _200D_206A_200D_206C_206E_200E_206E_202D_206B_206B_206A_200F_206A_200F_206F_206C_202E_200D_206A_206B_202A_200F_206E_206F_202E_200B_200E_206D_206C_202D_206A_200E_202B_206B_206A_200E_206A_206E_202C_202A_202E(); - StatusBlacklisted = _200F_200C_206D_206B_200F_202C_206F_206D_206F_202D_206F_200D_202E_206D_202E_200D_200E_202A_206C_202B_200C_202E_202B_206B_202D_200D_202A_206D_200E_206B_206F_206E_202D_200B_202A_206C_202A_202E_202A_200E_202E(); - Ellipsis = _206F_202C_200E_202E_206A_206F_206A_200E_202A_202E_200C_206A_206E_206B_200F_202B_206C_202E_200B_202E_200F_202B_202B_200D_206B_206E_202E_200E_202A_202B_200D_206C_206C_206D_200F_200D_200F_202A_202D_200D_202E((SeIconChar)57434); - } - - static float _202D_200B_200D_202B_202D_206D_200D_206C_206B_200D_200B_206C_206D_200C_202E_206D_206C_200B_202B_202D_200D_200F_200C_202E_200E_202A_206C_206A_206D_202D_200C_202E_206F_206C_206E_202C_200D_206B_206B_200C_202E() - { - return ImGui.GetCursorPosX(); - } - - static Vector2 _206E_200D_200C_206B_200C_206F_200F_200B_200F_206C_206D_200D_206E_202E_200B_202E_200C_206E_206A_202A_202E_200E_206D_206B_200E_202B_202D_206C_200D_202C_202E_202B_202D_200B_200F_202E_200B_202C_200C_206E_202E() - { - return ImGui.GetContentRegionAvail(); - } - - static void _202C_200D_202A_206C_200E_202C_200B_200B_202A_206B_202E_202C_202C_200D_206B_202D_200D_206B_202B_206E_206D_202C_200E_202A_202D_206A_206C_202C_202A_200D_202A_200B_200E_206B_202B_200F_202E_202B_200C_200F_202E(float P_0) - { - ImGui.PushTextWrapPos(P_0); - } - - static void _200E_202A_206A_200E_206E_206E_206B_206B_206B_206C_206F_202A_200E_206A_200C_200E_202E_202C_206C_200E_206D_202C_200F_200C_206E_200D_200E_202D_206D_206A_200E_200B_202B_206E_206E_206B_200C_202A_206B_200C_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static void _200C_200C_206E_200B_200E_202C_200E_206D_206C_202C_200D_202C_200D_206B_202C_206D_202D_206C_200E_202D_206A_206B_206D_202C_200C_206A_202D_200E_200E_200B_206C_202B_200D_200F_206D_202A_202C_200B_202E_202A_202E() - { - ImGui.PopTextWrapPos(); - } - - static ImRaii.ColorDisposable _200C_200C_200F_200D_206A_200E_202A_206D_200E_202C_206F_206D_200E_200B_206E_200D_206C_202C_202A_202D_200B_202D_206B_202A_202B_206A_200B_206F_206E_200B_206A_206A_202E_202A_200E_200F_200F_206B_202B_200F_202E(ImGuiCol P_0, Vector4 P_1, bool P_2) - { - return ImRaii.PushColor(P_0, P_1, P_2); - } - - static void _206E_206D_202E_206C_206F_206C_200F_206A_206E_206D_202A_206D_200F_200F_206F_202C_200C_200E_206C_202D_206A_202C_206C_202C_206A_200C_200E_200E_202E_202E_206C_206F_206E_200D_206F_206D_202E_202A_200F_202D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool _202B_200F_206E_202D_200E_202B_202B_206C_206E_202B_200C_206B_202C_206A_200E_200F_202D_202C_206C_202B_202B_202E_200B_202D_202C_206A_206E_206A_202B_206D_206B_202A_200E_206A_206B_206E_200D_200E_202D_200E_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static Vector2 _200D_206B_202E_202A_202A_200F_202A_200F_202E_206B_200B_202E_202B_206A_206B_200F_206C_206D_200F_200D_206B_202A_200E_206A_202E_206B_200E_200E_202A_200C_206D_206D_200C_206F_202C_202E_206D_206D_200C_206A_202E(ImU8String P_0, bool P_1, float P_2) - { - return ImGui.CalcTextSize(P_0, P_1, P_2); - } - - static int _206C_202D_206C_200C_202E_206B_206B_202A_206C_206A_200F_206D_202D_202A_202C_200F_202E_202B_206B_202E_206D_206C_206E_206F_206D_202A_206C_200B_202A_200F_206A_200E_202C_200E_206D_202D_206F_200F_206F_206A_202E(string P_0) - { - return P_0.Length; - } - - static ReadOnlySpan<char> _200D_202A_202C_200D_202E_202D_200E_200D_200C_202A_202A_202C_202E_202D_202A_206E_206F_200E_206C_206D_202A_206D_200F_202E_206E_200D_206A_202B_200D_206D_200F_200E_200F_202C_200E_206C_202A_206D_200F_200D_202E(string P_0, int P_1, int P_2) - { - return P_0.AsSpan(P_1, P_2); - } - - static ReadOnlySpan<char> _202B_206B_206C_206C_206F_206A_206D_200F_206C_202D_206A_206C_206A_206C_202C_202D_200F_206F_200B_200C_202C_200B_202D_202B_200E_202A_200D_200B_206C_202E_206F_202E_200D_200E_206E_202C_202A_200F_200B_202C_202E(string P_0) - { - return P_0.AsSpan(); - } - - static string _206E_200E_206F_206F_202C_202E_200E_200B_202E_200F_202E_202C_206E_206D_206E_200C_206D_206D_206C_200F_206C_202A_202B_200D_200B_202A_202D_202E_206B_200B_200F_200C_206E_202D_202C_200F_200B_202B_206C_202D_202E(ReadOnlySpan<char> P_0, ReadOnlySpan<char> P_1) - { - return string.Concat(P_0, P_1); - } - - static Vector2 _202E_200D_200E_206B_206E_206C_200D_200B_200B_206A_206B_200E_202B_206C_206B_200B_206F_206B_202B_206A_206E_206D_200C_200E_200D_200C_202E_206C_202E_206B_200B_200C_200E_200B_206C_200B_206D_200B_202E_200C_202E() - { - return ImGui.GetCursorPos(); - } - - static ImDrawListPtr _206C_206E_202A_202B_202D_206B_206C_200B_200B_200F_202D_206B_202D_206C_200C_200C_206A_200C_206B_200E_206C_200C_206B_200E_206B_206A_200F_202B_206E_202C_206F_202D_200F_202D_202E_200C_206B_202A_202C_200F_202E() - { - return ImGui.GetWindowDrawList(); - } - - static void _202C_206B_206B_206D_202D_200B_202A_206E_206D_206A_206C_206E_202C_202A_206C_206B_200F_200B_206E_200F_206E_206D_206A_206E_202A_206D_202D_202B_200F_200B_206A_200B_200E_206A_202B_200C_206A_206B_202D_206E_202E(float P_0) - { - ImGui.Indent(P_0); - } - - static void _200C_202C_206A_206D_202C_202C_200F_202A_206F_202A_200B_202D_200C_200B_206F_200F_206E_206E_200B_202D_200D_202A_206F_202B_206E_202A_200C_206A_206E_200E_202E_200B_206E_202A_202E_200D_202C_206F_206F_202D_202E(float P_0) - { - ImGui.SetCursorPosY(P_0); - } - - static void _206F_206F_200B_200D_202B_200D_206D_202C_200E_202E_200F_202E_200E_200E_202B_206A_200C_206B_206A_200E_202B_202B_202E_202E_206A_202B_202E_200B_206F_206C_202D_206A_200C_200E_202D_206D_200C_202D_202C_202A_202E(float P_0) - { - ImGui.PushItemWidth(P_0); - } - - static void _206F_206E_202B_206D_202E_200D_200E_206A_202D_202C_202E_206A_200C_202C_206E_200C_202C_200F_206F_206A_200F_200F_202E_202A_202D_200E_202C_206A_202E_206B_202E_200E_206B_206C_202E_206D_206B_206A_200B_206B_202E() - { - ImGui.PopItemWidth(); - } - - static void _206B_206A_206E_202D_206A_202C_206C_206B_206D_206C_206B_202A_206A_206A_202C_206B_202E_202B_206B_202B_200C_206D_202E_202C_206D_202D_206C_200B_200B_200D_200D_202E_200C_202A_206B_200B_200B_202D_200F_202A_202E(float P_0) - { - ImGui.Unindent(P_0); - } - - static void _202C_206B_206D_206E_200D_206D_202C_206A_206A_206D_206C_202A_200E_206E_206B_202D_206C_200E_200C_202E_200C_200B_206B_200E_206E_200B_206B_202E_202B_200E_200B_206F_206D_206F_202C_200D_200D_200B_206E_200E_202E(Vector2 P_0) - { - ImGui.SetCursorPos(P_0); - } - - static Vector2 _202D_202E_200C_202E_200C_202D_206E_206C_202A_200C_200C_206D_202D_202E_206C_206E_206F_206F_202A_202D_200D_202D_200B_206C_202E_202D_206C_200D_202E_206D_202C_200D_202B_200D_206B_202E_206A_206B_206A_202C_202E() - { - return ImGui.GetCursorScreenPos(); - } - - static uint _200B_206D_206F_200C_206D_206B_202C_202A_200E_206C_206C_200B_206B_206D_200F_200D_202E_200E_202B_202A_202E_200D_202A_200D_200D_200F_202B_200D_202D_202D_200D_200D_206E_200B_200D_200D_200E_200C_206B_206B_202E(Vector4 P_0) - { - return ImGui.ColorConvertFloat4ToU32(P_0); - } - - static ImRaii.TableDisposable _200B_200D_202A_206F_200D_206B_202A_202D_200E_202C_206C_206E_202B_202D_200C_200E_202D_206B_206E_200E_200C_202C_206E_202D_202E_206E_200B_202D_200E_200D_206B_200C_200C_206C_202B_206D_202E_206A_206D_202B_202E(ImU8String P_0, int P_1, ImGuiTableFlags P_2) - { - return ImRaii.Table(P_0, P_1, P_2); - } - - static float _200D_202A_202B_200C_206C_206C_200C_200D_206A_206C_202E_206C_202B_206C_200D_206A_200B_200E_202D_206A_200B_206D_206D_206D_202D_200D_202C_202E_206D_206B_200C_206F_206C_200B_202A_206F_206C_200B_200C_202E() - { - return ImGui.GetTextLineHeight(); - } - - static void _202D_200B_200D_206E_206D_200B_202A_206E_206A_200E_202C_206A_202D_202A_200C_206C_206E_206E_202A_206A_202A_202D_202C_206A_206F_200F_206D_202A_202B_200F_200E_200D_200D_206D_206F_202E_206A_202A_202D_202B_202E(float P_0) - { - ImGui.SetCursorPosX(P_0); - } - - static void _206A_200F_200E_200B_206D_200D_202D_206C_206F_202E_200B_202E_206F_202D_206C_206F_206A_206A_206C_206E_202D_206D_202D_202C_202C_206B_200D_200B_202E_206B_200C_206F_200F_206C_202E_202A_202C_200B_200B_202E_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static float _202C_200C_200C_200C_206E_202E_202E_202E_200E_206C_206B_206E_200F_200E_202D_202D_202A_200C_206A_202C_206A_206B_200D_200E_206E_200F_200F_206F_200B_206C_202B_200B_206A_202A_206F_202D_206B_200C_202C_206B_202E() - { - return ImGui.GetCursorPosY(); - } - - static void _200E_202D_200C_206E_200B_206A_200E_206F_200F_200C_200D_202D_200D_200E_200B_206E_206C_206F_202D_202C_206E_200D_206B_206B_206C_206B_202D_202E_206D_202B_202D_202C_206E_206E_200C_200F_206F_206C_202C_206A_202E() - { - ImGui.Spacing(); - } - - static float _200D_202A_206A_206F_202D_206E_206E_206F_206C_206F_200F_200D_200E_200F_202D_202D_202C_202D_206E_202D_202B_206C_202C_206E_206B_200E_202B_206F_202E_202A_206D_202D_200D_206B_200F_202A_202E_206F_206A_202C_202E() - { - return ImGui.GetFontSize(); - } - - static string _200E_200B_202B_206D_202E_200F_202D_200F_206C_206C_202E_202D_202D_200F_200E_200F_200F_200C_206B_200D_200D_200B_206E_206B_206B_200C_200C_202C_206C_200F_206B_202E_202B_202D_206D_206E_200E_202C_202C_200C_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static ImFontPtr _206F_206D_206C_200F_200E_206B_202A_200F_202E_206A_206E_200F_206D_206A_206F_206D_206B_200F_200E_202E_200B_206B_200D_200E_206D_200C_206D_206B_202C_202E_206B_202E_206B_202C_202A_200D_202B_200F_202C_200E_202E() - { - return UiBuilder.IconFont; - } - - static ImRaii.FontDisposable _202A_202E_206A_202E_206D_202A_200B_200B_200F_206D_206E_200E_200C_206B_200C_206A_200F_200E_200E_200D_200F_206B_202D_206C_202A_200D_206A_206D_200C_200D_206A_202C_206C_206C_202A_206A_200E_206C_200F_202E(ImFontPtr P_0, bool P_1) - { - return ImRaii.PushFont(P_0, P_1); - } - - static float _206D_202B_202D_200F_206A_200D_206E_206C_202C_206B_200E_206B_206B_206C_206B_200E_202C_206C_202A_206F_206E_200E_202A_202A_200B_206F_202C_200C_206E_206D_206F_202E_200F_206B_206D_202E_206E_200C_200C_202C_202E(float P_0, float P_1) - { - return MathF.Max(P_0, P_1); - } - - static void _206E_202D_200E_206B_202E_202E_206A_206E_200B_202A_202D_206E_202B_206F_202A_202C_202C_206E_200C_200C_202D_200E_202A_200C_200B_202E_200D_206B_206F_200C_206A_200C_206A_206A_200D_200D_202E_202C_200C_206E_202E(Vector2 P_0) - { - ImGui.Dummy(P_0); - } - - static ImFontPtr _200B_200B_206B_206E_202A_202A_206C_206C_200D_206A_206F_206C_200C_206A_206E_206B_206A_206E_202B_200B_206D_200E_206C_200F_206E_200B_202B_202C_202C_200D_200E_202D_200F_206F_206E_206A_202C_202E_202E_206B_202E() - { - return UiBuilder.MonoFont; - } - - static void _206D_202E_202C_206C_206B_200C_200D_206C_206E_200C_202E_202E_206D_200C_200F_202C_202B_200E_200C_206A_206E_202D_206F_200B_200E_200D_200E_202B_206F_202D_202B_206D_206B_200C_200E_206A_206F_200D_206F_200F_202E(ImFontPtr P_0) - { - ImGui.PushFont(P_0); - } - - static void _200E_200D_200C_200E_200D_202E_206B_206A_200F_202E_200F_206D_200E_200B_200B_206E_200E_206A_202C_200B_202B_202B_206A_202B_200D_200D_200D_202C_206C_202E_206B_202B_206D_206A_206F_200B_202D_202B_200F_206F_202E() - { - ImGui.PopFont(); - } - - static void _206F_202A_202E_202B_200E_202E_206A_200C_202C_200D_202A_200B_206F_202A_206F_200B_202D_200C_206C_200C_202E_200E_202E_206C_202B_200D_202C_202D_200D_206A_202A_200E_202B_206D_200F_206E_206E_206A_206F_200E_202E(ImGuiTableBgTarget P_0, uint P_1) - { - ImGui.TableSetBgColor(P_0, P_1); - } - - static IDisposable _206B_206B_206D_206A_200E_202C_206C_206F_206E_200B_206F_200E_200D_200C_206B_206C_202C_202A_200D_206E_206F_206F_202B_206C_202E_206B_206A_200D_206B_200B_200C_202A_202A_206F_200E_206F_200B_206D_206B_202E_202E(IFontHandle P_0) - { - return P_0.Push(); - } - - static float _200E_202A_206E_200F_202C_200C_200B_200F_206F_206F_206E_202E_200D_200D_202C_200E_200B_206D_206A_200E_200F_202C_206A_202C_200D_206A_202B_200E_206A_202C_206F_200B_202E_206E_202A_206D_202E_206C_206D_206E_202E() - { - return ImGui.GetTextLineHeightWithSpacing(); - } - - static ImRaii.IdDisposable _200D_200F_206C_202D_206B_206F_206E_206E_202D_202C_202E_202B_202D_206E_202B_200E_206C_202B_202D_200E_200B_206F_202B_200E_200B_200C_202A_202A_202C_200C_206A_206F_200E_202C_200F_206F_200D_206E_200C_202D_202E(ImU8String P_0, bool P_1) - { - return ImRaii.PushId(P_0, P_1); - } - - static float _206B_200B_200D_202B_202D_202E_206F_200E_206A_202D_206C_206E_200F_200F_206A_202B_206D_200D_206B_206E_206D_202C_200E_206E_200E_200F_200E_200B_202A_200B_206B_200C_202E_202A_206C_206F_206F_200D_206C_200D_202E() - { - return ImGui.GetFrameHeight(); - } - - static ImRaii.ColorDisposable _200B_206F_200E_206D_202D_200B_202D_206F_206E_200C_206C_206B_206E_206B_202E_206C_200F_202C_206F_200D_200D_200B_200F_200D_206D_202E_202B_206F_202E_202D_206E_200D_202A_206E_200C_206E_206D_202D_206C_206C_202E(ImRaii.ColorDisposable P_0, ImGuiCol P_1, Vector4 P_2, bool P_3) - { - return P_0.Push(P_1, P_2, P_3); - } - - static bool _200C_206D_206C_202B_206F_202B_206B_200F_200F_202B_200D_206C_206D_202A_200F_200E_202A_206C_202A_200F_200B_200E_206B_206A_202B_200B_206C_200D_206C_200E_206A_202D_200F_206C_206A_200F_206E_200C_200E_200D_202E(ImU8String P_0, bool P_1, ImGuiSelectableFlags P_2, Vector2 P_3) - { - return ImGui.Selectable(P_0, P_1, P_2, P_3); - } - - static bool _200B_202A_202D_206F_206A_200F_206A_206C_200F_202A_202B_202D_200D_200E_202A_206A_206D_206E_202A_206C_200E_206D_202A_206E_202B_200E_202A_206F_206B_202C_206D_200F_206F_206A_200C_200E_202A_206A_206C_202E_202E() - { - return ImGui.IsItemHovered(); - } - - static Vector2 _202B_200E_200C_206B_206B_206C_206E_206E_200D_206A_200E_206C_206C_200D_206B_206D_200D_206F_200E_206D_206D_202A_206A_200E_200B_200F_200C_206B_206C_202B_200D_206B_202D_206F_202E_206C_206D_202D_200F_202C_202E() - { - return ImGui.GetItemRectMin(); - } - - static Vector2 _200E_202B_202A_206C_206A_206E_206B_206C_200F_200B_206F_200D_200C_206B_202D_200D_200E_202B_206D_200E_202D_202E_200D_202D_200B_206B_200E_202E_200D_206D_200C_206F_200C_202E_206A_206D_206F_200F_206B_206E_202E() - { - return ImGui.GetItemRectMax(); - } - - static ImGuiStylePtr _200D_200C_206C_206C_200E_202C_202D_200E_206D_206A_206D_202B_200D_202E_202C_200E_206E_200F_206E_200F_200C_206B_200F_206C_206C_200C_206F_202D_200E_206A_202D_200C_200B_202C_202A_202D_206F_202B_206F_200D_202E() - { - return ImGui.GetStyle(); - } - - static float _206F_200C_206A_202A_202B_206C_200C_200E_202A_200F_202C_200C_206D_202C_206D_202A_200D_206A_206F_206A_200B_202B_200C_200E_206B_206F_200B_202A_200E_206B_202E_206B_206F_200E_202B_200B_200C_202E_206F_200C_202E(float P_0) - { - return MathF.Truncate(P_0); - } - - static bool _206F_202C_206C_200E_206C_206C_206B_200F_206C_200E_206A_206E_200E_202E_206B_206A_206C_202B_206C_202C_200C_202C_206B_200D_200C_206A_206E_200E_206D_206D_200D_202A_206F_206C_200F_206B_206F_200F_200C_206F_202E(ImU8String P_0, ref bool P_1) - { - return ImGui.Checkbox(P_0, ref P_1); - } - - static void _206D_206A_206D_202E_206E_206F_206F_206B_200F_200F_202A_206E_206C_200F_200D_200B_206D_206F_206E_206A_202C_200F_206A_200D_200C_206D_206A_206C_206A_206A_206C_206D_202E_202B_206F_200F_200D_200E_206E_202A_202E() - { - ImGui.SameLine(); - } - - static void _202E_202B_206B_202E_206E_206A_202E_202A_202B_206C_206E_206D_200C_202A_206D_200C_206A_202E_200D_202C_200F_206B_206C_202E_202A_206F_200E_200B_200C_206C_202C_202E_206A_200C_206E_200D_202E_202A_200F_202C_202E(ImU8String P_0) - { - ImGui.Text(P_0); - } - - static ImRaii.TooltipDisposable _200D_202A_206C_206B_206E_202D_202E_200D_202A_200C_206F_206B_206D_200B_202D_200F_200D_206D_202A_206A_200D_206A_200D_200B_202C_206F_200C_200C_206C_200C_206A_200C_206E_202C_206D_202B_206E_202B_206C_200F_202E() - { - return ImRaii.Tooltip(); - } - - static void _202A_200B_206D_202A_206E_206E_206A_202E_206E_206A_202B_200E_206E_200E_202D_206B_206B_206B_200B_206E_200D_202E_206D_200D_206E_206F_202C_206B_200F_206E_200C_200F_202D_200C_200B_202E_202C_202B_200D_206B_202E(float P_0) - { - ImGui.SameLine(P_0); - } - - static void _202E_202A_202C_206B_200E_200F_200E_206F_206C_202C_202A_202C_206D_202C_200B_202E_200E_202A_202D_200C_206B_200C_200B_206B_206E_200F_202E_206A_202C_206E_206C_202C_200B_200E_206F_206A_202C_202C_206C_206E_202E(float P_0) - { - ImGui.SetNextItemWidth(P_0); - } - - static bool _200D_206B_202B_200D_206F_206E_200B_202B_200F_206E_202D_206A_206D_206F_200F_206F_200C_206A_202E_206E_206E_200F_202C_206A_202A_202B_206A_202D_206C_200F_200C_206D_200F_206E_200C_200B_202A_206F_200F_206A_202E(ImU8String P_0, ImU8String P_1, ref string P_2, int P_3, ImGuiInputTextFlags P_4, ImGui.ImGuiInputTextCallbackDelegate P_5) - { - return ImGui.InputTextWithHint(P_0, P_1, ref P_2, P_3, P_4, P_5); - } - - static bool _202C_206B_206D_206D_202D_202A_202D_202D_202D_202E_202C_200C_200E_200C_202C_200D_206D_200C_200E_206A_202B_202C_200D_206B_200F_202D_200C_202E_202B_206C_200B_206D_200C_206A_200D_200C_200C_200F_202A_200D_202E(ImU8String P_0, ref int P_1, int P_2, int P_3, ImU8String P_4, ImGuiSliderFlags P_5) - { - return ImGui.SliderInt(P_0, ref P_1, P_2, P_3, P_4, P_5); - } - - static bool _200D_202C_206A_200D_200C_200E_200D_202A_202E_202E_200C_206D_206E_202A_200C_200F_200E_200C_202C_202B_202D_206C_202E_202B_206B_200B_202E_202E_202D_206A_206A_202B_206F_206E_206B_206E_202D_202E_202A_206E_202E(ImU8String P_0, ref float P_1, float P_2, float P_3, ImU8String P_4, ImGuiSliderFlags P_5) - { - return ImGui.SliderFloat(P_0, ref P_1, P_2, P_3, P_4, P_5); - } - - static float _202B_202A_202C_200B_200F_206C_206C_206C_202C_206A_200F_206F_206A_200B_206F_200B_202E_206A_200D_200F_202D_202C_200D_206F_206A_206C_202E_200C_206A_206A_202C_202E_206C_202B_206A_206D_202A_202B_206D_200D_202E() - { - return ImGui.CalcItemWidth(); - } - - static bool _206C_206C_200D_202E_200C_206E_200E_206B_206C_200E_200B_200B_206A_202E_206E_202E_206C_206D_200D_202D_200C_206A_202E_206D_206B_206E_200B_202B_200D_202E_202A_206D_206C_200F_200B_200C_200B_202D_206D_202D_202E(ImU8String P_0, ImU8String P_1, ImGuiComboFlags P_2) - { - return ImGui.BeginCombo(P_0, P_1, P_2); - } - - static void _200E_202D_202E_200E_202E_202A_206F_202A_206E_202D_202A_206A_206A_206F_206D_200C_202B_200F_200C_206E_206F_202A_206B_200B_200C_206A_202E_202E_202B_202C_206B_202C_202C_202B_202C_202C_206A_206D_200F_200F_202E() - { - ImGui.SetItemDefaultFocus(); - } - - static void _202C_206B_202D_206E_202D_206D_206B_200D_200E_206D_200F_200C_202C_200B_200F_202E_206E_206F_202D_206A_202A_202D_200E_200D_206C_202E_202B_202A_206D_200E_202B_200C_200C_200D_206B_202B_202D_202B_206E_206E_202E() - { - ImGui.EndCombo(); - } - - static bool _206E_202B_202D_206F_200C_206D_206D_206C_206F_200F_202A_202C_206B_202B_200C_202C_206D_200B_206F_202E_202B_206E_206E_202B_200D_206F_202C_200C_206D_200E_206B_200F_206E_202E_206E_206F_206E_200E_200F_206F_202E() - { - return ImGui.IsWindowAppearing(); - } - - static void _202D_202A_206E_206F_202D_202A_206C_200C_202E_202C_206C_202E_200F_202B_200C_202A_200D_202D_202D_206A_202E_200C_202C_200E_206A_206E_200B_202E_206E_206C_200C_202D_202C_206F_206E_202B_200E_202B_200D_202D_202E() - { - ImGui.SetKeyboardFocusHere(); - } - - static void _202B_202A_202E_206D_200C_206C_200B_206B_202C_200F_200C_200F_202D_200C_202C_200F_206C_202E_206D_202E_202E_202E_202A_200B_202C_206F_202A_206D_202B_202B_206A_202E_200B_200E_202E_200D_202B_200F_200C_202E() - { - ImGui.Separator(); - } - - static bool _206A_206C_202B_206B_202B_206F_202E_206F_200F_202B_202D_202D_206D_202C_200B_200F_202C_202E_206C_202E_206A_200B_202B_202A_206E_200E_202E_206E_202B_206B_206A_200E_202C_202A_202B_202A_206E_202C_200E_206E_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.Contains(P_1, P_2); - } - - static float _206E_200F_200F_200F_200D_200B_202C_200E_202D_202A_200C_202B_202A_206B_200F_206F_202B_206C_200D_200F_202C_200B_202B_200F_200E_206E_206A_202B_200B_200F_206A_202C_206D_206E_202C_206E_206B_202B_206C_202B_202E() - { - return ImGuiHelpers.GlobalScale; - } - - static int _202C_202E_200B_200E_200D_206F_202D_200C_206B_202E_200C_202E_202D_202A_206C_202A_206C_202A_202A_202B_206F_200B_206F_200F_200B_200C_206D_200C_200D_206C_206C_206C_202E_202B_206B_206D_206C_206D_200F_202D_202E(int P_0, int P_1) - { - return Math.Max(P_0, P_1); - } - - static int _200F_200C_206F_202A_202B_206C_206C_206D_202D_206B_206C_200B_206B_200C_202E_206F_206F_206F_206E_206C_206E_206B_202E_202B_202B_206C_206C_202A_202A_200F_206A_206E_202B_202E_202E_202A_200F_206E_206B_202E_202E(int P_0, int P_1, int P_2) - { - return Math.Clamp(P_0, P_1, P_2); - } - - static ImRaii.ChildDisposable _206D_206C_206D_202A_206C_200F_200D_206B_200F_206E_200C_206D_206C_202C_200B_202D_200B_206C_200E_202C_206A_206B_206A_200B_206A_206D_202D_200D_200D_202B_200E_206C_206A_202D_202D_206F_206C_206B_206B_206E_202E(ImU8String P_0, Vector2 P_1) - { - return ImRaii.Child(P_0, P_1); - } - - static void _206B_206C_200E_202E_202B_206A_206B_200D_202E_206F_206F_202A_206F_206C_202A_202E_202C_202D_206A_202A_202C_202D_202E_206D_206F_202E_200F_206D_202D_202B_206D_202A_206B_202E_200C_200E_202C_200F_206B_200C_202E() - { - ImGui.CloseCurrentPopup(); - } - - static bool _206C_200D_206F_206B_202E_202C_200E_202B_202A_206B_200F_200D_206E_202A_206F_202C_202E_206D_200E_202C_200F_200C_206B_206A_206E_206D_206A_200E_200D_206C_202C_202C_202C_206F_202E_206E_202E_202A_206E_206B_202E(ImU8String P_0, Vector2 P_1) - { - return ImGui.Button(P_0, P_1); - } - - static uint _202B_206B_202C_206F_200F_202C_200C_200E_202B_200E_200D_206F_200C_200B_206E_206C_200D_206B_202E_206E_200F_200C_200D_206F_200D_200F_206D_200C_206E_202C_200E_200F_200C_200D_206D_202C_202A_200C_200D_202B_202E(ImGuiCol P_0) - { - return ImGui.GetColorU32(P_0); - } - - static ImRaii.StyleDisposable _206D_202C_202C_206B_202A_202A_200C_200E_200E_206F_206B_206C_200B_206B_206D_202D_200C_200D_200C_206F_202C_202B_206A_202C_200E_206D_200B_206E_202E_206B_206F_206C_200C_200C_206C_200D_202A_202B_200B_200E_202E(ImGuiStyleVar P_0, float P_1, bool P_2) - { - return ImRaii.PushStyle(P_0, P_1, P_2); - } - - static ImRaii.StyleDisposable _206C_200B_200D_200C_206E_202D_206B_202C_206D_200C_206A_200B_206E_206B_200B_206B_206D_206C_206C_206B_206D_202E_202B_206F_202B_206D_206E_202A_200D_206D_206D_200D_202B_202A_206A_206D_206E_202A_202A_202E(ImGuiStyleVar P_0, Vector2 P_1, bool P_2) - { - return ImRaii.PushStyle(P_0, P_1, P_2); - } - - static ImRaii.ColorDisposable _202A_200D_206C_206A_206B_202B_202A_202B_206F_206D_206A_206F_206E_200C_202D_206E_202C_202D_206D_200C_202B_200F_202B_206B_206D_206C_206D_200D_200C_206D_202E_200F_206B_200D_202B_200C_206F_202C_202E_200F_202E() - { - return new ImRaii.ColorDisposable(); - } - - static bool _200B_200B_200D_200F_200D_200B_200D_202E_202C_200E_200C_200B_200F_200D_206F_200F_206D_206A_200F_200F_200D_206C_200E_206B_206D_202E_202E_202D_200E_206C_202C_206F_202E_206D_206D_200F_206E_202C_206F_200D_202E(ImGuiKey P_0) - { - return ImGui.IsKeyDown(P_0); - } - - static ImRaii.DisabledDisposable _202E_206C_206B_206A_202A_206B_202D_202A_200F_206D_206B_200D_200D_206E_202C_200D_200F_206B_202C_202C_206C_200C_206B_200C_206F_206D_206A_200E_200D_202A_206C_206D_202D_200C_202A_206C_200B_206D_200E_202E_202E(bool P_0) - { - return ImRaii.Disabled(P_0); - } - - static bool _202E_200E_200C_200D_202A_202B_202E_206A_206C_202E_200B_206F_200D_206E_202E_200E_200C_206C_206E_200F_206B_200D_200D_200C_202D_202D_206B_200C_206A_202A_200E_200F_200D_202E_206F_200D_206F_202D_202E_206F_202E(ImGuiHoveredFlags P_0) - { - return ImGui.IsItemHovered(P_0); - } - - static void _206B_202D_206E_202E_200D_206D_202E_206E_206F_200E_202B_206B_202E_206E_202D_200E_200C_206E_202A_202E_202D_200F_202A_200D_202D_206A_200E_202C_206E_202B_206E_200E_206C_206E_206C_206C_202B_206A_206F_200E_202E(ImU8String P_0) - { - ImGui.SetTooltip(P_0); - } - - static StringBuilder _202E_206A_206F_206B_200D_206B_200E_202B_200D_200E_206C_200B_206A_200D_206F_202A_200E_200B_202A_202A_202E_206A_202B_206B_206A_202C_200E_206F_206F_202A_206C_206C_202A_206D_202C_202A_200E_200D_200B_202B_202E(int P_0) - { - return new StringBuilder(P_0); - } - - static char _206C_206C_200C_200F_202D_202E_206A_206A_206D_206B_202C_202A_206E_206C_200F_202D_202C_202D_206D_200B_206B_206E_202D_206A_202C_200D_206C_200B_206C_202C_206F_206E_202B_206B_200C_200E_200B_200D_200E_206A_202E(string P_0, int P_1) - { - return P_0[P_1]; - } - - static StringBuilder _200F_202D_206D_206A_200F_206D_206F_202C_202A_206A_202C_206B_206D_200C_206A_206C_206F_202A_200F_206F_206E_206F_206B_202A_200C_200F_206A_200C_202A_206E_202A_206E_200B_200D_206F_202B_202C_206E_202C_200C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206D_200F_206A_206B_200E_206E_200F_202E_200E_200D_206A_200C_200E_206D_200F_200C_206F_202A_200F_206F_200D_206A_206C_206B_206E_202D_206F_206A_200E_206E_206A_200C_202E_206F_206D_206B_206B_206A_200B_206E_202E(object P_0) - { - return P_0.ToString(); - } - - static string _206D_200D_202E_200E_202D_202B_206E_200D_200B_202C_202C_206A_202C_200B_200D_202E_206A_202B_202E_206E_200C_202C_200C_202E_202C_202A_206B_202B_202A_202A_206C_206D_202E_200D_200C_200B_200E_200F_200C_202A_202E(string P_0) - { - return P_0.Trim(); - } - - static Vector4 _202E_206B_202E_200F_206D_206A_202D_206E_200F_200F_200C_206E_200B_200E_200F_206C_200E_200C_206D_206D_200C_200C_206E_200E_202A_206C_206F_200D_200D_206E_206D_202C_202B_206C_206E_206D_206E_202C_200D_200E_202E() - { - return ImGuiColors.ParsedGreen; - } - - static Vector4 _200C_206F_200B_200F_206A_206C_202C_200E_206F_200C_200B_200C_206E_200D_202A_200C_206B_206B_206C_206B_206F_206F_202D_200C_202E_202D_200E_200F_200C_206E_202A_202E_202D_202E_200E_202C_200B_200E_202D_206A_202E() - { - return ImGuiColors.DalamudYellow; - } - - static Vector4 _202E_200E_200C_206D_202E_206E_202C_206B_202A_200D_202B_206F_202A_202A_202E_206A_202A_202C_206E_202E_206C_206E_206E_206B_206B_202C_200E_200D_206B_200F_206C_200F_206D_206A_200E_202D_206A_200C_200C_206C_202E() - { - return ImGuiColors.ParsedBlue; - } - - static Vector4 _202C_206D_206B_202B_202C_206E_200D_206D_206E_202D_206E_202D_200F_206C_200E_200B_200C_202B_206E_206C_202A_202E_200F_202A_206C_200C_206E_202A_202B_206A_200B_202B_202D_202E_202E_202C_202B_202C_206B_206D_202E() - { - return ImGuiColors.DalamudRed; - } - - static Vector4 _200D_206A_200D_206C_206E_200E_206E_202D_206B_206B_206A_200F_206A_200F_206F_206C_202E_200D_206A_206B_202A_200F_206E_206F_202E_200B_200E_206D_206C_202D_206A_200E_202B_206B_206A_200E_206A_206E_202C_202A_202E() - { - return ImGuiColors.DalamudGrey; - } - - static Vector4 _200F_200C_206D_206B_200F_202C_206F_206D_206F_202D_206F_200D_202E_206D_202E_200D_200E_202A_206C_202B_200C_202E_202B_206B_202D_200D_202A_206D_200E_206B_206F_206E_202D_200B_202A_206C_202A_202E_202A_200E_202E() - { - return ImGuiColors.DalamudGrey3; - } - - static string _206F_202C_200E_202E_206A_206F_206A_200E_202A_202E_200C_206A_206E_206B_200F_202B_206C_202E_200B_202E_200F_202B_202B_200D_206B_206E_202E_200E_202A_202B_200D_206C_206C_206D_200F_200D_200F_202A_202D_200D_202E(SeIconChar P_0) - { - return P_0.ToIconString(); + StatusComplete = ImGuiColors.ParsedGreen; + StatusActive = ImGuiColors.DalamudYellow; + StatusAvailable = ImGuiColors.DalamudYellow; + StatusAvailableComplete = ImGuiColors.ParsedBlue; + StatusLocked = ImGuiColors.DalamudRed; + StatusUnobtainable = ImGuiColors.DalamudGrey; + StatusBlacklisted = ImGuiColors.DalamudGrey3; + Ellipsis = ((SeIconChar)57434).ToIconString(); } } diff --git a/Questionable/Questionable.Windows/UiUtils.cs b/Questionable/Questionable.Windows/UiUtils.cs index 567fb29..cb9ea97 100644 --- a/Questionable/Questionable.Windows/UiUtils.cs +++ b/Questionable/Questionable.Windows/UiUtils.cs @@ -1,10 +1,7 @@ -using System; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Interface; using Dalamud.Interface.Colors; -using Dalamud.Interface.ManagedFontAtlas; using Dalamud.Plugin; using FFXIVClientStructs.FFXIV.Client.Game.UI; using Questionable.Controller; @@ -28,244 +25,87 @@ internal sealed class UiUtils _pluginInterface = pluginInterface; } - [MethodImpl(MethodImplOptions.NoInlining)] public (Vector4 Color, FontAwesomeIcon Icon, string Status) GetQuestStyle(ElementId elementId) { - int num = ((!_questFunctions.IsQuestAccepted(elementId)) ? (-1441801408) : (-1441801406)); - QuestId questId = default(QuestId); - while (true) + if (_questFunctions.IsQuestAccepted(elementId)) { - int num2 = num; - int num3 = -1441801390; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 8: - num = ((!_questFunctions.IsQuestComplete(questId)) ? (-1441801384) : (-1441801407)); - break; - case 19: - return (Color: UiThemeUtils.StatusAvailableComplete, Icon: FontAwesomeIcon.Running, Status: global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(871452467)); - case 18: - questId = elementId as QuestId; - num = (((object)questId == null) ? (-1441801402) : (-1441801380)); - break; - case 21: - num = (_questRegistry.IsKnownQuest(elementId) ? (-1441801386) : (-1441801385)); - break; - case 3: - num = (_questFunctions.IsReadyToAcceptQuest(questId) ? (-1441801382) : (-1441801379)); - break; - case 5: - return (Color: UiThemeUtils.StatusLocked, Icon: FontAwesomeIcon.Times, Status: global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1267300956)); - case 1: - return (Color: UiThemeUtils.StatusBlacklisted, Icon: FontAwesomeIcon.Ban, Status: global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-833431314)); - case 13: - num = ((!_questFunctions.IsReadyToAcceptQuest(elementId)) ? (-1441801385) : (-1441801401)); - break; - case 10: - return (Color: UiThemeUtils.StatusAvailable, Icon: FontAwesomeIcon.Running, Status: global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1067102916)); - case 14: - num = ((!_questFunctions.IsDailyAlliedSocietyQuestAndAvailableToday(questId)) ? (-1441801402) : (-1441801390)); - break; - case 20: - num = ((!_questFunctions.IsQuestAcceptedOrComplete(elementId)) ? (-1441801388) : (-1441801378)); - break; - case 7: - return (Color: UiThemeUtils.StatusUnobtainable, Icon: FontAwesomeIcon.Minus, Status: global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(576385889)); - case 16: - return (Color: UiThemeUtils.StatusActive, Icon: FontAwesomeIcon.PersonWalkingArrowRight, Status: global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1970753606)); - case 6: - num = ((!_questFunctions.IsQuestUnobtainable(elementId)) ? (-1441801392) : (-1441801387)); - break; - case 15: - return (Color: UiThemeUtils.StatusComplete, Icon: FontAwesomeIcon.Check, Status: global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1552042899)); - case 0: - num = ((!_questFunctions.IsQuestBlacklisted(questId)) ? (-1441801391) : (-1441801381)); - break; - case 9: - return (Color: UiThemeUtils.StatusBlacklisted, Icon: FontAwesomeIcon.Ban, Status: global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1976852282)); - case 11: - num = -1441801406; - break; - case 17: - num = (_questFunctions.IsQuestLocked(elementId) ? (-1441801385) : (-1441801377)); - break; - case 2: - num = ((!_questFunctions.IsQuestBlacklisted(elementId)) ? (-1441801405) : (-1441801389)); - break; - case 4: - return (Color: UiThemeUtils.StatusAvailable, Icon: FontAwesomeIcon.Running, Status: global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1166519045)); - case 12: - return (Color: UiThemeUtils.StatusComplete, Icon: FontAwesomeIcon.Check, Status: global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1552042899)); - } + return (Color: UiThemeUtils.StatusActive, Icon: FontAwesomeIcon.PersonWalkingArrowRight, Status: "Active"); } + if (elementId is QuestId questId && _questFunctions.IsDailyAlliedSocietyQuestAndAvailableToday(questId)) + { + if (_questFunctions.IsQuestBlacklisted(questId)) + { + return (Color: UiThemeUtils.StatusBlacklisted, Icon: FontAwesomeIcon.Ban, Status: "Blacklisted"); + } + if (!_questFunctions.IsReadyToAcceptQuest(questId)) + { + return (Color: UiThemeUtils.StatusComplete, Icon: FontAwesomeIcon.Check, Status: "Complete"); + } + if (_questFunctions.IsQuestComplete(questId)) + { + return (Color: UiThemeUtils.StatusAvailableComplete, Icon: FontAwesomeIcon.Running, Status: "Available (Complete)"); + } + return (Color: UiThemeUtils.StatusAvailable, Icon: FontAwesomeIcon.Running, Status: "Available"); + } + if (_questFunctions.IsQuestAcceptedOrComplete(elementId)) + { + return (Color: UiThemeUtils.StatusComplete, Icon: FontAwesomeIcon.Check, Status: "Complete"); + } + if (_questFunctions.IsQuestUnobtainable(elementId)) + { + return (Color: UiThemeUtils.StatusUnobtainable, Icon: FontAwesomeIcon.Minus, Status: "Unobtainable"); + } + if (_questFunctions.IsQuestBlacklisted(elementId)) + { + return (Color: UiThemeUtils.StatusBlacklisted, Icon: FontAwesomeIcon.Ban, Status: "Blacklisted"); + } + if (_questFunctions.IsQuestLocked(elementId) || !_questFunctions.IsReadyToAcceptQuest(elementId) || !_questRegistry.IsKnownQuest(elementId)) + { + return (Color: UiThemeUtils.StatusLocked, Icon: FontAwesomeIcon.Times, Status: "Locked"); + } + return (Color: UiThemeUtils.StatusAvailable, Icon: FontAwesomeIcon.Running, Status: "Available"); } public static (Vector4 color, FontAwesomeIcon icon) GetInstanceStyle(ushort instanceId) { - int num = ((!UIState.IsInstanceContentCompleted(instanceId)) ? (-627417922) : (-627417921)); - while (true) + if (UIState.IsInstanceContentCompleted(instanceId)) { - int num2 = num; - int num3 = -627417923; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = ((!UIState.IsInstanceContentUnlocked(instanceId)) ? (-627417924) : (-627417927)); - break; - case 2: - return (color: UiThemeUtils.StatusComplete, icon: FontAwesomeIcon.Check); - case 0: - num = -627417921; - break; - case 1: - return (color: UiThemeUtils.StatusLocked, icon: FontAwesomeIcon.Times); - case 4: - return (color: UiThemeUtils.StatusActive, icon: FontAwesomeIcon.Running); - } + return (color: UiThemeUtils.StatusComplete, icon: FontAwesomeIcon.Check); } + if (UIState.IsInstanceContentUnlocked(instanceId)) + { + return (color: UiThemeUtils.StatusActive, icon: FontAwesomeIcon.Running); + } + return (color: UiThemeUtils.StatusLocked, icon: FontAwesomeIcon.Times); } public bool ChecklistItem(string text, Vector4 color, FontAwesomeIcon icon, float extraPadding = 0f, bool asBadge = false) { - int num = ((!asBadge) ? (-1166254314) : (-1166254313)); - while (true) + if (asBadge) { - int num2 = num; - int num3 = -1166254314; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = -1166254313; - break; - case 2: - _206F_200D_200F_200B_200F_200C_206C_206A_202E_206F_206D_200E_202B_202B_202B_200C_206A_206A_200C_200C_200C_200D_202D_200B_206F_202E_206F_202D_206F_200C_206A_202A_202D_200B_202D_202E_206C_202D_206C_200D_202E(_202B_200B_202E_206C_200E_202B_202C_200E_200E_202E_200D_202C_206D_200B_206C_202D_200C_206C_206A_206D_200C_202B_206F_206F_202D_200C_206D_206E_202B_200F_200C_206E_202C_202D_200D_206E_200C_206D_206A_200E_202E() + extraPadding); - num = -1166254318; - break; - case 1: - UiThemeUtils.StatusBadge(text, color, icon); - return _202B_200D_206D_202D_202E_206F_200C_202D_206E_206A_202A_200B_202A_202E_206C_200F_206B_202D_202A_206D_206D_206C_200E_206D_202A_200C_202B_200D_202C_206A_200E_202D_202D_202A_202C_206A_202B_206C_202D_200F_202E(); - case 0: - num = ((!(extraPadding > 0f)) ? (-1166254318) : (-1166254316)); - break; - case 4: - { - IDisposable disposable = _200C_206E_202B_202B_200B_206D_200B_200F_200C_200B_206D_206D_202C_206E_202C_200C_206C_200E_200E_202A_206A_206D_206A_206B_202C_202A_200E_206B_202E_202E_200F_200F_200F_202A_206D_206B_202D_202E_206E_200C_202E(_206B_202B_206A_200F_202B_200F_200C_200B_206A_202B_200B_206F_200C_200F_202C_206E_200C_206F_202C_200D_202D_206A_200D_202D_200E_202D_206F_202B_200F_200F_202E_200C_200B_206A_206A_200E_206C_200E_206D_206F_202E(_202A_206C_206E_202C_206F_206F_206D_206A_206B_200F_206D_206A_206B_200C_202A_206A_200E_206F_200D_206B_206E_200B_206F_206F_200C_202A_206E_202C_200E_206A_206D_206E_206D_202B_202C_206C_202C_202C_206C_206B_202E(_pluginInterface))); - try - { - _206B_206A_206D_200F_202C_202C_200D_206B_206E_202B_202B_206B_200B_206C_202B_202A_200D_206B_206C_202B_206C_200B_200B_202D_206F_200E_206D_202D_206B_202B_202D_202B_202E_202E_206D_206D_206E_206C_206C_202E(ref color, (ImU8String)_200F_200E_202A_206B_206A_206B_200B_200F_206B_206E_200B_206A_206D_206B_202B_206A_206B_206B_206F_206A_202C_202B_200C_206A_200F_206C_206B_202C_202A_202A_202B_206F_200F_202D_200F_200E_206C_206E_202A_200D_202E(icon)); - } - finally - { - num = ((disposable == null) ? 669978987 : 669978984); - while (true) - { - int num5 = num; - num3 = 669978985; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 669978984; - break; - case 1: - _206F_200C_200B_202D_202B_200D_200C_206A_202C_200B_202C_206C_202A_200F_200E_206D_206D_206D_202E_200F_202C_206A_206B_202E_202D_206C_202C_206C_202D_200C_202E_200E_202D_206C_206B_202C_206E_206C_206D_206D_202E(disposable); - num = 669978987; - break; - case 2: - goto end_IL_00e6; - } - continue; - end_IL_00e6: - break; - } - } - bool num6 = _202B_200D_206D_202D_202E_206F_200C_202D_206E_206A_202A_200B_202A_202E_206C_200F_206B_202D_202A_206D_206D_206C_200E_206D_202A_200C_202B_200D_202C_206A_200E_202D_202D_202A_202C_206A_202B_206C_202D_200F_202E(); - _202E_200E_206F_200C_206F_200B_206C_200F_206F_206C_206C_200F_206B_200C_200C_206B_206B_206E_206E_206F_200E_206C_200C_206A_206E_206B_202E_202B_206F_200F_200F_200C_202D_206E_206F_200B_200D_206F_200C_202E_202E(); - if (extraPadding > 0f) - { - _206F_200D_200F_200B_200F_200C_206C_206A_202E_206F_206D_200E_202B_202B_202B_200C_206A_206A_200C_200C_200C_200D_202D_200B_206F_202E_206F_202D_206F_200C_206A_202A_202D_200B_202D_202E_206C_202D_206C_200D_202E(_202B_200B_202E_206C_200E_202B_202C_200E_200E_202E_200D_202C_206D_200B_206C_202D_200C_206C_206A_206D_200C_202B_206F_206F_202D_200C_206D_206E_202B_200F_200C_206E_202C_202D_200D_206E_200C_206D_206A_200E_202E() + extraPadding); - } - _206A_200F_206F_202B_202A_206E_200D_202E_202B_200E_200B_206F_206C_200D_206E_206F_200C_206F_200B_202E_206F_202E_206A_206C_200E_200D_202D_200E_202A_206A_200C_202D_200E_202C_206B_200E_206A_206D_200D_200E_202E((ImU8String)text); - return num6 | _202B_200D_206D_202D_202E_206F_200C_202D_206E_206A_202A_200B_202A_202E_206C_200F_206B_202D_202A_206D_206D_206C_200E_206D_202A_200C_202B_200D_202C_206A_200E_202D_202D_202A_202C_206A_202B_206C_202D_200F_202E(); - } - } + UiThemeUtils.StatusBadge(text, color, icon); + return ImGui.IsItemHovered(); } + if (extraPadding > 0f) + { + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + extraPadding); + } + using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push()) + { + ImGui.TextColored(in color, icon.ToIconString()); + } + bool num = ImGui.IsItemHovered(); + ImGui.SameLine(); + if (extraPadding > 0f) + { + ImGui.SetCursorPosX(ImGui.GetCursorPosX() + extraPadding); + } + ImGui.TextUnformatted(text); + return num | ImGui.IsItemHovered(); } public bool ChecklistItem(string text, bool complete, Vector4? colorOverride = null) { - return ChecklistItem(text, colorOverride ?? (complete ? _200C_206E_202D_202E_200B_202D_200F_206B_206C_202A_200F_202A_202E_206B_206E_200D_200F_202B_202B_202A_206F_200C_206D_202E_200E_202C_206D_206F_202B_200C_202B_206D_200C_200D_202C_200E_206E_200B_206D_206A_202E() : _202A_200B_200B_202A_206A_206F_200D_200E_202D_202E_206A_200F_200E_206E_202B_206D_202C_206B_206F_200E_206D_206F_202A_202C_206D_206F_206E_200F_200E_206F_200C_202C_206B_202D_206E_202E_202E_202D_202B_202E_202E()), complete ? FontAwesomeIcon.Check : FontAwesomeIcon.Times); - } - - static bool _202B_200D_206D_202D_202E_206F_200C_202D_206E_206A_202A_200B_202A_202E_206C_200F_206B_202D_202A_206D_206D_206C_200E_206D_202A_200C_202B_200D_202C_206A_200E_202D_202D_202A_202C_206A_202B_206C_202D_200F_202E() - { - return ImGui.IsItemHovered(); - } - - static float _202B_200B_202E_206C_200E_202B_202C_200E_200E_202E_200D_202C_206D_200B_206C_202D_200C_206C_206A_206D_200C_202B_206F_206F_202D_200C_206D_206E_202B_200F_200C_206E_202C_202D_200D_206E_200C_206D_206A_200E_202E() - { - return ImGui.GetCursorPosX(); - } - - static void _206F_200D_200F_200B_200F_200C_206C_206A_202E_206F_206D_200E_202B_202B_202B_200C_206A_206A_200C_200C_200C_200D_202D_200B_206F_202E_206F_202D_206F_200C_206A_202A_202D_200B_202D_202E_206C_202D_206C_200D_202E(float P_0) - { - ImGui.SetCursorPosX(P_0); - } - - static IUiBuilder _202A_206C_206E_202C_206F_206F_206D_206A_206B_200F_206D_206A_206B_200C_202A_206A_200E_206F_200D_206B_206E_200B_206F_206F_200C_202A_206E_202C_200E_206A_206D_206E_206D_202B_202C_206C_202C_202C_206C_206B_202E(IDalamudPluginInterface P_0) - { - return P_0.UiBuilder; - } - - static IFontHandle _206B_202B_206A_200F_202B_200F_200C_200B_206A_202B_200B_206F_200C_200F_202C_206E_200C_206F_202C_200D_202D_206A_200D_202D_200E_202D_206F_202B_200F_200F_202E_200C_200B_206A_206A_200E_206C_200E_206D_206F_202E(IUiBuilder P_0) - { - return P_0.IconFontFixedWidthHandle; - } - - static IDisposable _200C_206E_202B_202B_200B_206D_200B_200F_200C_200B_206D_206D_202C_206E_202C_200C_206C_200E_200E_202A_206A_206D_206A_206B_202C_202A_200E_206B_202E_202E_200F_200F_200F_202A_206D_206B_202D_202E_206E_200C_202E(IFontHandle P_0) - { - return P_0.Push(); - } - - static string _200F_200E_202A_206B_206A_206B_200B_200F_206B_206E_200B_206A_206D_206B_202B_206A_206B_206B_206F_206A_202C_202B_200C_206A_200F_206C_206B_202C_202A_202A_202B_206F_200F_202D_200F_200E_206C_206E_202A_200D_202E(FontAwesomeIcon P_0) - { - return P_0.ToIconString(); - } - - static void _206B_206A_206D_200F_202C_202C_200D_206B_206E_202B_202B_206B_200B_206C_202B_202A_200D_206B_206C_202B_206C_200B_200B_202D_206F_200E_206D_202D_206B_202B_202D_202B_202E_202E_206D_206D_206E_206C_206C_202E(ref Vector4 P_0, ImU8String P_1) - { - ImGui.TextColored(in P_0, P_1); - } - - static void _206F_200C_200B_202D_202B_200D_200C_206A_202C_200B_202C_206C_202A_200F_200E_206D_206D_206D_202E_200F_202C_206A_206B_202E_202D_206C_202C_206C_202D_200C_202E_200E_202D_206C_206B_202C_206E_206C_206D_206D_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _202E_200E_206F_200C_206F_200B_206C_200F_206F_206C_206C_200F_206B_200C_200C_206B_206B_206E_206E_206F_200E_206C_200C_206A_206E_206B_202E_202B_206F_200F_200F_200C_202D_206E_206F_200B_200D_206F_200C_202E_202E() - { - ImGui.SameLine(); - } - - static void _206A_200F_206F_202B_202A_206E_200D_202E_202B_200E_200B_206F_206C_200D_206E_206F_200C_206F_200B_202E_206F_202E_206A_206C_200E_200D_202D_200E_202A_206A_200C_202D_200E_202C_206B_200E_206A_206D_200D_200E_202E(ImU8String P_0) - { - ImGui.TextUnformatted(P_0); - } - - static Vector4 _202A_200B_200B_202A_206A_206F_200D_200E_202D_202E_206A_200F_200E_206E_202B_206D_202C_206B_206F_200E_206D_206F_202A_202C_206D_206F_206E_200F_200E_206F_200C_202C_206B_202D_206E_202E_202E_202D_202B_202E_202E() - { - return ImGuiColors.DalamudRed; - } - - static Vector4 _200C_206E_202D_202E_200B_202D_200F_206B_206C_202A_200F_202A_202E_206B_206E_200D_200F_202B_202B_202A_206F_200C_206D_202E_200E_202C_206D_206F_202B_200C_202B_206D_200C_200D_202C_200E_206E_200B_206D_206A_202E() - { - return ImGuiColors.ParsedGreen; + return ChecklistItem(text, colorOverride ?? (complete ? ImGuiColors.ParsedGreen : ImGuiColors.DalamudRed), complete ? FontAwesomeIcon.Check : FontAwesomeIcon.Times); } } diff --git a/Questionable/Questionable.csproj b/Questionable/Questionable.csproj index f1ab561..d7a26d1 100644 --- a/Questionable/Questionable.csproj +++ b/Questionable/Questionable.csproj @@ -43,38 +43,38 @@ <Reference Include="Lumina"> <HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\Lumina.dll</HintPath> </Reference> - <Reference Include="SmartNav.Model"> - <HintPath>..\..\SmartNav.Model.dll</HintPath> - </Reference> <Reference Include="Dalamud.Bindings.ImGui"> <HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\Dalamud.Bindings.ImGui.dll</HintPath> </Reference> <Reference Include="Lumina.Excel"> <HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\Lumina.Excel.dll</HintPath> </Reference> + <Reference Include="SmartNav.Model"> + <HintPath>..\..\SmartNav.Model.dll</HintPath> + </Reference> <Reference Include="JsonSchema.Net"> <HintPath>..\..\JsonSchema.Net.dll</HintPath> </Reference> <Reference Include="JsonPointer.Net"> <HintPath>..\..\JsonPointer.Net.dll</HintPath> </Reference> + <Reference Include="InteropGenerator.Runtime"> + <HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\InteropGenerator.Runtime.dll</HintPath> + </Reference> <Reference Include="Microsoft.Extensions.Logging"> <HintPath>..\..\Microsoft.Extensions.Logging.dll</HintPath> </Reference> - <Reference Include="QuestPaths"> - <HintPath>..\..\QuestPaths.dll</HintPath> - </Reference> - <Reference Include="GatheringPaths"> - <HintPath>..\..\GatheringPaths.dll</HintPath> - </Reference> <Reference Include="FatePaths"> <HintPath>..\..\FatePaths.dll</HintPath> </Reference> + <Reference Include="GatheringPaths"> + <HintPath>..\..\GatheringPaths.dll</HintPath> + </Reference> + <Reference Include="QuestPaths"> + <HintPath>..\..\QuestPaths.dll</HintPath> + </Reference> <Reference Include="SeasonalDutyPaths"> <HintPath>..\..\SeasonalDutyPaths.dll</HintPath> </Reference> - <Reference Include="InteropGenerator.Runtime"> - <HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\InteropGenerator.Runtime.dll</HintPath> - </Reference> </ItemGroup> </Project> \ No newline at end of file diff --git a/Questionable/Questionable/ConfigMigration.cs b/Questionable/Questionable/ConfigMigration.cs index 39de96c..5e56240 100644 --- a/Questionable/Questionable/ConfigMigration.cs +++ b/Questionable/Questionable/ConfigMigration.cs @@ -1,4 +1,3 @@ -using System.Collections.Generic; using Questionable.Controller.Conditions; using Questionable.Model.Questing; @@ -9,75 +8,36 @@ internal static class ConfigMigration public static bool Run(Configuration config) { bool result = false; - int num = ((!RemoveStaleElementIds(config)) ? 64859374 : 64859372); - while (true) + if (RemoveStaleElementIds(config)) { - int num2 = num; - int num3 = 64859370; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = ((config.Stop.Conditions.RemoveAll((StopCondition c) => c == null) <= 0) ? 64859375 : 64859371); - break; - case 1: - result = true; - num = 64859375; - break; - case 5: - num = ((!MigrateStopConditions(config.Stop)) ? 64859373 : 64859369); - break; - case 3: - result = true; - num = 64859373; - break; - case 7: - num = ((!MigrateEquipMode(config.General)) ? 64859362 : 64859368); - break; - case 8: - return result; - case 2: - result = true; - num = 64859362; - break; - case 0: - num = 64859372; - break; - case 6: - result = true; - num = 64859374; - break; - } + result = true; } + if (config.Stop.Conditions.RemoveAll((StopCondition c) => c == null) > 0) + { + result = true; + } + if (MigrateStopConditions(config.Stop)) + { + result = true; + } + if (MigrateEquipMode(config.General)) + { + result = true; + } + return result; } private static bool MigrateEquipMode(Configuration.GeneralConfiguration general) { bool? useSmartEquipRecommended = general.UseSmartEquipRecommended; - int num = ((!useSmartEquipRecommended.HasValue) ? 470555278 : 470555279); - bool valueOrDefault = default(bool); - while (true) + if (useSmartEquipRecommended.HasValue) { - int num2 = num; - int num3 = 470555277; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return false; - case 2: - valueOrDefault = useSmartEquipRecommended == true; - num = 470555276; - break; - case 0: - num = 470555279; - break; - case 1: - general.EquipMode = ((!valueOrDefault) ? Configuration.EEquipMode.GameRecommended : Configuration.EEquipMode.Smart); - general.UseSmartEquipRecommended = null; - return true; - } + bool valueOrDefault = useSmartEquipRecommended == true; + general.EquipMode = ((!valueOrDefault) ? Configuration.EEquipMode.GameRecommended : Configuration.EEquipMode.Smart); + general.UseSmartEquipRecommended = null; + return true; } + return false; } private static bool RemoveStaleElementIds(Configuration config) @@ -85,176 +45,50 @@ internal static class ConfigMigration int num = config.General.PriorityQuests.RemoveAll((ElementId x) => (object)x == null); num += config.General.BlacklistedQuests.RemoveWhere((ElementId x) => (object)x == null); num += config.Stop.QuestsToStopAfter.RemoveAll((ElementId x) => (object)x == null); - using (Dictionary<string, Configuration.SavedQuestPreset>.ValueCollection.Enumerator enumerator = config.General.SavedPresets.Values.GetEnumerator()) + foreach (Configuration.SavedQuestPreset value in config.General.SavedPresets.Values) { - int num2 = 230107548; - while (true) - { - int num3 = num2; - int num4 = 230107549; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 1: - num2 = (enumerator.MoveNext() ? 230107550 : 230107551); - break; - case 3: - { - Configuration.SavedQuestPreset current = enumerator.Current; - num += current.QuestIds.RemoveAll((ElementId x) => (object)x == null); - num2 = 230107548; - break; - } - case 0: - num2 = 230107548; - break; - case 2: - goto end_IL_00be; - } - continue; - end_IL_00be: - break; - } + num += value.QuestIds.RemoveAll((ElementId x) => (object)x == null); } return num > 0; } private static bool MigrateStopConditions(Configuration.StopConfiguration stop) { - int num = ((stop.QuestsToStopAfter.Count > 0) ? 1734695112 : 1734695116); - ElementId current = default(ElementId); - EStopConditionMode value2 = default(EStopConditionMode); - int? value = default(int?); - EStopConditionMode mode = default(EStopConditionMode); - while (true) + if (stop.QuestsToStopAfter.Count <= 0 && stop.QuestStopModes.Count <= 0 && stop.QuestSequences.Count <= 0 && stop.LevelStopMode == EStopConditionMode.Off && stop.SequenceStopMode == EStopConditionMode.Off) { - int num2 = num; - int num3 = 1734695118; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return false; + } + if (stop.Conditions.Count == 0) + { + if (stop.LevelStopMode != EStopConditionMode.Off) { - default: - continue; - case 6: - num = 1734695118; - continue; - case 0: - if (stop.Conditions.Count == 0) - { - num = 1734695111; - continue; - } - break; - case 3: - num = ((stop.SequenceStopMode == EStopConditionMode.Off) ? 1734695115 : 1734695110); - continue; - case 7: - num = 1734695116; - continue; - case 10: - num = ((stop.QuestSequences.Count > 0) ? 1734695112 : 1734695114); - continue; - case 9: - num = ((stop.LevelStopMode == EStopConditionMode.Off) ? 1734695117 : 1734695106); - continue; - case 2: - num = ((stop.QuestStopModes.Count > 0) ? 1734695112 : 1734695108); - continue; - case 11: - return false; - case 8: - stop.Conditions.Add(new GlobalSequenceCondition - { - TargetSequence = stop.TargetSequence, - Mode = stop.SequenceStopMode - }); - num = 1734695115; - continue; - case 1: - if (stop.SequenceStopMode == EStopConditionMode.Off) - { - num = 1734695109; - continue; - } - goto case 6; - case 4: - num = ((stop.LevelStopMode != EStopConditionMode.Off) ? 1734695112 : 1734695119); - continue; - case 12: stop.Conditions.Add(new LevelCondition { TargetLevel = stop.TargetLevel, Mode = stop.LevelStopMode }); - num = 1734695117; - continue; - case 5: + } + if (stop.SequenceStopMode != EStopConditionMode.Off) { - using (List<ElementId>.Enumerator enumerator = stop.QuestsToStopAfter.GetEnumerator()) + stop.Conditions.Add(new GlobalSequenceCondition { - num = 222119304; - while (true) - { - int num7 = num; - num3 = 222119307; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - int num10; - int? obj; - int? sequence; - switch (num8 - (num9 + num9)) - { - case 0: - num10 = 2; - goto IL_02b5; - case 7: - current = enumerator.Current; - num = (stop.QuestStopModes.TryGetValue(_206B_200E_206E_206F_200F_202D_202A_200D_206E_206C_206E_206A_202A_200E_200D_200C_206F_206E_200E_200E_202E_202D_202B_202A_206E_202E_200E_200C_206F_206F_202D_206E_206F_200E_200D_206F_200E_206F_200B_206B_202E((object)current), out value2) ? 222119310 : 222119307); - break; - case 2: - num = 222119304; - break; - case 5: - num10 = (int)value2; - goto IL_02b5; - case 1: - obj = value; - goto IL_02e8; - case 3: - num = (enumerator.MoveNext() ? 222119308 : 222119309); - break; - case 4: - obj = null; - goto IL_02e8; - case 6: - goto end_IL_021c; - IL_02b5: - mode = (EStopConditionMode)num10; - num = (stop.QuestSequences.TryGetValue(_206B_200E_206E_206F_200F_202D_202A_200D_206E_206C_206E_206A_202A_200E_200D_200C_206F_206E_200E_200E_202E_202D_202B_202A_206E_202E_200E_200C_206F_206F_202D_206E_206F_200E_200D_206F_200E_206F_200B_206B_202E((object)current), out value) ? 222119306 : 222119311); - break; - IL_02e8: - sequence = obj; - stop.Conditions.Add(new QuestCompleteCondition - { - QuestId = current, - Sequence = sequence, - Mode = mode - }); - num = 222119304; - break; - } - continue; - end_IL_021c: - break; - } - } - break; + TargetSequence = stop.TargetSequence, + Mode = stop.SequenceStopMode + }); } + foreach (ElementId item in stop.QuestsToStopAfter) + { + EStopConditionMode value; + EStopConditionMode mode = (stop.QuestStopModes.TryGetValue(item.ToString(), out value) ? value : EStopConditionMode.Stop); + int? value2; + int? sequence = (stop.QuestSequences.TryGetValue(item.ToString(), out value2) ? value2 : ((int?)null)); + stop.Conditions.Add(new QuestCompleteCondition + { + QuestId = item, + Sequence = sequence, + Mode = mode + }); } - break; } stop.QuestsToStopAfter.Clear(); stop.QuestStopModes.Clear(); @@ -263,9 +97,4 @@ internal static class ConfigMigration stop.SequenceStopMode = EStopConditionMode.Off; return true; } - - static string _206B_200E_206E_206F_200F_202D_202A_200D_206E_206C_206E_206A_202A_200E_200D_200C_206F_206E_200E_200E_202E_202D_202B_202A_206E_202E_200E_200C_206F_206F_202D_206E_206F_200E_200D_206F_200E_206F_200B_206B_202E(object P_0) - { - return P_0.ToString(); - } } diff --git a/Questionable/Questionable/Configuration.cs b/Questionable/Questionable/Configuration.cs index f47c91b..bf41434 100644 --- a/Questionable/Questionable/Configuration.cs +++ b/Questionable/Questionable/Configuration.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; +using System.Reflection; using Dalamud.Configuration; using Dalamud.Game.Text; using FFXIVClientStructs.FFXIV.Client.UI.Agent; @@ -14,6 +14,7 @@ using Questionable.Model.Questing; namespace Questionable; +[Obfuscation(Feature = "-rename", Exclude = false, ApplyToMembers = true)] internal sealed class Configuration : IPluginConfiguration { internal sealed class GeneralConfiguration @@ -104,7 +105,7 @@ internal sealed class Configuration : IPluginConfiguration public List<StopCondition> Conditions { get; set; } = new List<StopCondition>(); - public string CommandAfterStop { get; set; } = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1720149641); + public string CommandAfterStop { get; set; } = ""; [Obsolete("Use Conditions list. Kept only to deserialize pre-unified configs; ConfigMigration clears them on first load.")] [JsonProperty(ItemConverterType = typeof(ElementIdNConverter))] @@ -127,11 +128,6 @@ internal sealed class Configuration : IPluginConfiguration [Obsolete("Use Conditions list. Kept only to deserialize pre-unified configs; ConfigMigration clears them on first load.")] public int TargetSequence { get; set; } = 1; - - [MethodImpl(MethodImplOptions.NoInlining)] - public StopConfiguration() - { - } } internal sealed class DutyConfiguration @@ -212,7 +208,7 @@ internal sealed class Configuration : IPluginConfiguration public bool PlaySound { get; set; } - public string SoundFile { get; set; } = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(2076323066); + public string SoundFile { get; set; } = "Alarm01.wav"; public bool OnlyWhenUnfocused { get; set; } = true; @@ -223,11 +219,6 @@ internal sealed class Configuration : IPluginConfiguration public bool AlertForSnipe { get; set; } = true; public bool AlertForStopConditions { get; set; } = true; - - [MethodImpl(MethodImplOptions.NoInlining)] - public NotificationConfiguration() - { - } } internal sealed class AdvancedConfiguration @@ -352,73 +343,26 @@ internal sealed class Configuration : IPluginConfiguration { public override void WriteJson(JsonWriter writer, ElementId? value, JsonSerializer serializer) { - _202C_200C_202E_200D_200B_202C_206A_200D_206F_200D_206B_206C_206B_200C_206C_200E_202E_200F_200E_200D_202E_206A_202E_200C_200D_200D_202C_202E_202D_200D_202D_206B_200C_206B_202C_200F_206D_202C_200F_202B_202E(writer, ((object)value != null) ? _200C_206A_200C_206C_202C_206B_206D_206F_206F_200E_202D_200E_202C_200C_200D_206F_200C_202A_200F_206D_206D_200C_206B_206F_202A_200E_202D_202A_200D_200F_200F_202A_202C_200B_200B_206E_202A_200B_206E_206E_202E((object)value) : null); + writer.WriteValue(value?.ToString()); } public override ElementId? ReadJson(JsonReader reader, Type objectType, ElementId? existingValue, bool hasExistingValue, JsonSerializer serializer) { try { - object obj = _200F_200C_202D_206A_206A_206A_200F_200D_206D_200D_200D_202D_202E_206A_200D_206F_200E_200B_202C_206C_200C_206B_202B_202B_200C_200C_206F_200F_200B_206E_200B_200C_200C_202C_200D_206B_206E_200E_202B_206C_202E(reader); - string text = ((obj != null) ? _200C_206A_200C_206C_202C_206B_206D_206F_206F_200E_202D_200E_202C_200C_200D_206F_200C_202A_200F_206D_206D_200C_206B_206F_202A_200E_202D_202A_200D_200F_200F_202A_202C_200B_200B_206E_202A_200B_206E_206E_202E(obj) : null); - int num = ((text != null) ? 919867290 : 919867288); - object result; - ElementId elementId = default(ElementId); - while (true) + string text = reader.Value?.ToString(); + if (text == null) { - int num2 = num; - int num3 = 919867289; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - default: - continue; - case 4: - num = 919867288; - continue; - case 1: - return null; - case 2: - result = null; - break; - case 3: - num = (_202E_202E_200F_206F_202E_200C_200E_206D_206C_206E_200B_202C_200E_202E_206D_202C_200F_200E_206F_200E_200C_206B_202A_206B_206C_202E_206B_200C_200B_206F_206F_206A_206D_200F_200B_206F_200F_206E_206E_202D_202E(text, ref elementId) ? 919867289 : 919867291); - continue; - case 0: - result = elementId; - break; - } - break; + return null; } - return (ElementId?)result; + ElementId elementId; + return ElementId.TryFromString(text, out elementId) ? elementId : null; } catch (Exception) { return null; } } - - static string _200C_206A_200C_206C_202C_206B_206D_206F_206F_200E_202D_200E_202C_200C_200D_206F_200C_202A_200F_206D_206D_200C_206B_206F_202A_200E_202D_202A_200D_200F_200F_202A_202C_200B_200B_206E_202A_200B_206E_206E_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202C_200C_202E_200D_200B_202C_206A_200D_206F_200D_206B_206C_206B_200C_206C_200E_202E_200F_200E_200D_202E_206A_202E_200C_200D_200D_202C_202E_202D_200D_202D_206B_200C_206B_202C_200F_206D_202C_200F_202B_202E(JsonWriter P_0, string P_1) - { - P_0.WriteValue(P_1); - } - - static object _200F_200C_202D_206A_206A_206A_200F_200D_206D_200D_200D_202D_202E_206A_200D_206F_200E_200B_202C_206C_200C_206B_202B_202B_200C_200C_206F_200F_200B_206E_200B_200C_200C_202C_200D_206B_206E_200E_202B_206C_202E(JsonReader P_0) - { - return P_0.Value; - } - - static bool _202E_202E_200F_206F_202E_200C_200E_206D_206C_206E_200B_202C_200E_202E_206D_202C_200F_200E_206F_200E_200C_206B_202A_206B_206C_202E_206B_200C_200B_206F_206F_206A_206D_200F_200B_206F_200F_206E_206E_202D_202E(string P_0, ref ElementId P_1) - { - return ElementId.TryFromString(P_0, out P_1); - } } public const int PluginSetupVersion = 6; @@ -447,13 +391,13 @@ internal sealed class Configuration : IPluginConfiguration public CustomDeliveryConfiguration CustomDeliveries { get; } = new CustomDeliveryConfiguration(); - public WindowConfig DebugWindowConfig { get; } = _206C_206E_202B_206F_202E_206D_200F_200F_206C_200D_200C_202D_202A_206D_200E_202D_202A_206A_202C_206E_200E_202B_202D_202A_202B_206B_206B_206D_202B_202E_206D_202E_200B_206A_202C_206B_200B_206A_202A_206D_202E(); + public WindowConfig DebugWindowConfig { get; } = new WindowConfig(); - public WindowConfig ConfigWindowConfig { get; } = _206C_206E_202B_206F_202E_206D_200F_200F_206C_200D_200C_202D_202A_206D_200E_202D_202A_206A_202C_206E_200E_202B_202D_202A_202B_206B_206B_206D_202B_202E_206D_202E_200B_206A_202C_206B_200B_206A_202A_206D_202E(); + public WindowConfig ConfigWindowConfig { get; } = new WindowConfig(); - public WindowConfig QuestValidationWindowConfig { get; set; } = _206C_206E_202B_206F_202E_206D_200F_200F_206C_200D_200C_202D_202A_206D_200E_202D_202A_206A_202C_206E_200E_202B_202D_202A_202B_206B_206B_206D_202B_202E_206D_202E_200B_206A_202C_206B_200B_206A_202A_206D_202E(); + public WindowConfig QuestValidationWindowConfig { get; set; } = new WindowConfig(); - public WindowConfig QuestSequenceWindowConfig { get; set; } = _206C_206E_202B_206F_202E_206D_200F_200F_206C_200D_200C_202D_202A_206D_200E_202D_202A_206A_202C_206E_200E_202B_202D_202A_202B_206B_206B_206D_202B_202E_206D_202E_200B_206A_202C_206B_200B_206A_202A_206D_202E(); + public WindowConfig QuestSequenceWindowConfig { get; set; } = new WindowConfig(); public string? JournalLastPage { get; set; } @@ -466,9 +410,4 @@ internal sealed class Configuration : IPluginConfiguration { PluginSetupCompleteVersion = 6; } - - static WindowConfig _206C_206E_202B_206F_202E_206D_200F_200F_206C_200D_200C_202D_202A_206D_200E_202D_202A_206A_202C_206E_200E_202B_202D_202A_202B_206B_206B_206D_202B_202E_206D_202E_200B_206A_202C_206B_200B_206A_202A_206D_202E() - { - return new WindowConfig(); - } } diff --git a/Questionable/Questionable/DalamudInitializer.cs b/Questionable/Questionable/DalamudInitializer.cs index a087068..8ae17af 100644 --- a/Questionable/Questionable/DalamudInitializer.cs +++ b/Questionable/Questionable/DalamudInitializer.cs @@ -1,12 +1,9 @@ using System; -using System.Runtime.CompilerServices; using Dalamud.Game.Gui.Toast; using Dalamud.Game.Text.SeStringHandling; -using Dalamud.Interface; using Dalamud.Interface.Windowing; using Dalamud.Plugin; using Dalamud.Plugin.Services; -using LLib.ImGui; using Microsoft.Extensions.Logging; using Questionable.Controller; using Questionable.Controller.Steps; @@ -77,26 +74,25 @@ internal sealed class DalamudInitializer : IDisposable _partyWatchdog = partyWatchdog; _reRouteService = reRouteService; _logger = logger; - _206F_206D_200B_206C_200C_202A_206F_206D_206F_206F_206F_206A_202B_200B_200F_200D_206F_202A_202A_200F_206C_202D_200F_206B_206D_202C_206C_202B_202D_206C_200B_202D_202A_202B_200F_206B_202A_202A_206D_202B_202E(_windowSystem, (IWindow)oneTimeSetupWindow); - _206F_206D_200B_206C_200C_202A_206F_206D_206F_206F_206F_206A_202B_200B_200F_200D_206F_202A_202A_200F_206C_202D_200F_206B_206D_202C_206C_202B_202D_206C_200B_202D_202A_202B_200F_206B_202A_202A_206D_202B_202E(_windowSystem, (IWindow)questWindow); - _206F_206D_200B_206C_200C_202A_206F_206D_206F_206F_206F_206A_202B_200B_200F_200D_206F_202A_202A_200F_206C_202D_200F_206B_206D_202C_206C_202B_202D_206C_200B_202D_202A_202B_200F_206B_202A_202A_206D_202B_202E(_windowSystem, (IWindow)configWindow); - _206F_206D_200B_206C_200C_202A_206F_206D_206F_206F_206F_206A_202B_200B_200F_200D_206F_202A_202A_200F_206C_202D_200F_206B_206D_202C_206C_202B_202D_206C_200B_202D_202A_202B_200F_206B_202A_202A_206D_202B_202E(_windowSystem, (IWindow)questSelectionWindow); - _206F_206D_200B_206C_200C_202A_206F_206D_206F_206F_206F_206A_202B_200B_200F_200D_206F_202A_202A_200F_206C_202D_200F_206B_206D_202C_206C_202B_202D_206C_200B_202D_202A_202B_200F_206B_202A_202A_206D_202B_202E(_windowSystem, (IWindow)questSequenceWindow); - _206F_206D_200B_206C_200C_202A_206F_206D_206F_206F_206F_206A_202B_200B_200F_200D_206F_202A_202A_200F_206C_202D_200F_206B_206D_202C_206C_202B_202D_206C_200B_202D_202A_202B_200F_206B_202A_202A_206D_202B_202E(_windowSystem, (IWindow)questValidationWindow); - _206F_206D_200B_206C_200C_202A_206F_206D_206F_206F_206F_206A_202B_200B_200F_200D_206F_202A_202A_200F_206C_202D_200F_206B_206D_202C_206C_202B_202D_206C_200B_202D_202A_202B_200F_206B_202A_202A_206D_202B_202E(_windowSystem, (IWindow)journalProgressWindow); - _206F_206D_200B_206C_200C_202A_206F_206D_206F_206F_206F_206A_202B_200B_200F_200D_206F_202A_202A_200F_206C_202D_200F_206B_206D_202C_206C_202B_202D_206C_200B_202D_202A_202B_200F_206B_202A_202A_206D_202B_202E(_windowSystem, (IWindow)fateSelectionWindow); - _206F_206D_200B_206C_200C_202A_206F_206D_206F_206F_206F_206A_202B_200B_200F_200D_206F_202A_202A_200F_206C_202D_200F_206B_206D_202C_206C_202B_202D_206C_200B_202D_202A_202B_200F_206B_202A_202A_206D_202B_202E(_windowSystem, (IWindow)seasonalDutySelectionWindow); - _206F_206D_200B_206C_200C_202A_206F_206D_206F_206F_206F_206A_202B_200B_200F_200D_206F_202A_202A_200F_206C_202D_200F_206B_206D_202C_206C_202B_202D_206C_200B_202D_202A_202B_200F_206B_202A_202A_206D_202B_202E(_windowSystem, (IWindow)changelogWindow); - _206E_200C_202B_202D_206A_206F_202C_200C_206D_200E_202A_202B_202E_206D_200E_206A_202D_202B_202B_206D_202B_206D_200B_202C_200F_200F_202A_206F_206E_202D_202A_202D_202B_200F_200F_206E_202A_200C_206C_206C_202E(_200E_202E_200B_200D_202C_200E_202E_202A_202B_200C_206A_202C_206C_206C_206A_202A_202E_206D_200D_200F_206F_206A_202C_202D_200E_200D_202E_200C_200D_206F_202E_200C_206D_200D_206A_206C_202E_202C_200C_202E(_pluginInterface), (Action)_windowSystem.Draw); - _202A_202D_202D_202A_206D_206E_200C_202D_206F_200B_202C_202E_202A_200B_202B_206E_200C_202D_200F_200E_202A_202C_202E_202B_206E_206D_206A_206C_206A_206F_200D_206C_206A_206F_206A_200F_200E_206F_202D_206B_202E(_200E_202E_200B_200D_202C_200E_202E_202A_202B_200C_206A_202C_206C_206C_206A_202A_202E_206D_200D_200F_206F_206A_202C_202D_200E_200D_202E_200C_200D_206F_202E_200C_206D_200D_206A_206C_202E_202C_200C_202E(_pluginInterface), (Action)ToggleQuestWindow); - _206B_200F_200D_202B_206D_200D_202C_200F_202B_206C_206E_202C_206A_206A_200D_206F_200E_206D_206C_202A_200E_206A_202D_200E_200E_202D_200E_206D_202C_202A_206E_206C_206B_206E_200C_206E_202B_206A_202D_202E_202E(_200E_202E_200B_200D_202C_200E_202E_202A_202B_200C_206A_202C_206C_206C_206A_202A_202E_206D_200D_200F_206F_206A_202C_202D_200E_200D_202E_200C_200D_206F_202E_200C_206D_200D_206A_206C_202E_202C_200C_202E(_pluginInterface), (Action)_configWindow.Toggle); - _206C_202E_202B_200F_202E_202A_206D_206E_206F_202A_206A_202C_202D_200D_202A_206C_202D_202A_200D_200E_206E_206D_202A_200C_206A_206A_202B_202B_202C_206B_206A_202A_206A_200B_202C_200C_202D_206A_206E_200F_202E(_framework, (IFramework.OnUpdateDelegate)FrameworkUpdate); - _206A_202B_206D_202E_206C_206B_202C_200F_206B_206B_206B_200B_202B_200C_200E_200C_200E_200D_206E_200F_206E_202A_202C_202A_206F_202D_200B_200D_206A_206D_206B_206F_206C_200E_200C_202C_200E_202E_200C_206C_202E(_toastGui, (IToastGui.OnNormalToastDelegate)OnToast); - _202E_202E_200C_206A_202E_206C_200B_206B_206B_202E_200E_202C_202A_200B_200E_206F_202A_206E_202C_200E_206D_206E_206A_206B_206D_200E_202C_202E_200E_202B_200F_200E_200E_206C_202E_206F_200B_202B_202D_202E_202E(_toastGui, (IToastGui.OnErrorToastDelegate)OnErrorToast); - _200D_206D_206E_206A_202B_202B_202A_206A_206C_206C_206D_206E_202A_202E_206B_200C_206F_200C_200B_200E_206A_202C_200B_200D_200F_206C_200F_200E_200E_202B_206A_202D_206B_206D_202C_206E_202E_206E_202C_202E_202E(_toastGui, (IToastGui.OnQuestToastDelegate)OnQuestToast); + _windowSystem.AddWindow(oneTimeSetupWindow); + _windowSystem.AddWindow(questWindow); + _windowSystem.AddWindow(configWindow); + _windowSystem.AddWindow(questSelectionWindow); + _windowSystem.AddWindow(questSequenceWindow); + _windowSystem.AddWindow(questValidationWindow); + _windowSystem.AddWindow(journalProgressWindow); + _windowSystem.AddWindow(fateSelectionWindow); + _windowSystem.AddWindow(seasonalDutySelectionWindow); + _windowSystem.AddWindow(changelogWindow); + _pluginInterface.UiBuilder.Draw += _windowSystem.Draw; + _pluginInterface.UiBuilder.OpenMainUi += ToggleQuestWindow; + _pluginInterface.UiBuilder.OpenConfigUi += _configWindow.Toggle; + _framework.Update += FrameworkUpdate; + _toastGui.Toast += OnToast; + _toastGui.ErrorToast += OnErrorToast; + _toastGui.QuestToast += OnQuestToast; } - [MethodImpl(MethodImplOptions.NoInlining)] private void FrameworkUpdate(IFramework framework) { _partyWatchdog.Update(); @@ -111,106 +107,45 @@ internal sealed class DalamudInitializer : IDisposable } catch (MovementController.PathfindingFailedException ex) { - _206F_206A_200E_206D_200F_202A_200D_200F_200E_202C_206A_206B_202D_202E_200D_202D_202A_200B_206F_202E_200F_202B_206A_202A_200B_200E_206E_200C_200D_202B_206E_202D_206F_206A_202B_202C_200C_206D_200B_200C_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1232235884), new object[1] { _206F_200B_206C_202C_206D_202B_206F_202A_202E_202B_200E_202B_200E_206D_202D_206B_202B_200C_202A_206A_200F_206C_206C_202D_202B_200C_200E_200F_206F_202E_202C_202E_200F_206F_206C_202C_206C_202B_202D_202D_202E((Exception)ex) }); + _logger.LogInformation("Pathfinding interrupted ({Message}), attempting re-route", ex.Message); AttemptReRoute(); } try { _movementController.Update(); } - catch (MovementController.PathfindingFailedException ex2) + catch (MovementController.PathfindingFailedException exception) { - _206B_200B_202E_200F_206F_200D_200D_202B_202E_200F_202A_200E_202C_202D_202D_200B_206C_202E_206B_200F_202E_200C_202B_200B_200B_206B_206E_206D_206A_206B_206D_200F_206D_202C_206F_206A_202D_206F_202A_202E_202E((ILogger)_logger, (Exception)ex2, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(610209674), Array.Empty<object>()); + _logger.LogWarning(exception, "Pathfinding failed, attempting re-route"); AttemptReRoute(); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void AttemptReRoute() { - int num = ((!_gatheringController.IsRunning) ? (-136136920) : (-136136927)); - TaskQueue taskQueue = default(TaskQueue); - while (true) + if (!_gatheringController.IsRunning || !_gatheringController.TryReplanAfterMovementFailure()) { - int num2 = num; - int num3 = -136136924; - int num4 = num2; - object obj; - switch ((num4 | num3) - (num4 & num3)) + TaskQueue taskQueue = (_questController.IsRunning ? _questController.TaskQueue : (_fateController.IsRunning ? _fateController.TaskQueue : (_seasonalDutyController.IsRunning ? _seasonalDutyController.TaskQueue : (_fishingController.IsRunning ? _fishingController.TaskQueue : (_customDeliveryController.IsRunning ? _customDeliveryController.TaskQueue : null))))); + if (taskQueue == null || !_reRouteService.HandleMovementFailure(taskQueue)) { - default: - continue; - case 0: - _questController.Stop(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(721858876)); - _fateController.Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1724960299)); - _seasonalDutyController.Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1724960299)); - _attunementController.Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(692347610)); - _customDeliveryController.Stop(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(721858876)); - _fishingController.Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(704094293)); - num = -136136928; - continue; - case 2: - return; - case 3: - num = (_seasonalDutyController.IsRunning ? (-136136916) : (-136136914)); - continue; - case 5: - num = ((!_gatheringController.TryReplanAfterMovementFailure()) ? (-136136920) : (-136136922)); - continue; - case 7: - num = (_reRouteService.HandleMovementFailure(taskQueue) ? (-136136928) : (-136136924)); - continue; - case 12: - num = (_questController.IsRunning ? (-136136917) : (-136136923)); - continue; - case 1: - num = (_fateController.IsRunning ? (-136136926) : (-136136921)); - continue; - case 4: - return; - case 8: - obj = _seasonalDutyController.TaskQueue; - break; - case 14: - obj = _customDeliveryController.TaskQueue; - break; - case 13: - num = -136136927; - continue; - case 6: - obj = _fateController.TaskQueue; - break; - case 10: - num = (_fishingController.IsRunning ? (-136136908) : (-136136913)); - continue; - case 11: - num = (_customDeliveryController.IsRunning ? (-136136918) : (-136136915)); - continue; - case 16: - obj = _fishingController.TaskQueue; - break; - case 9: - obj = null; - break; - case 15: - obj = _questController.TaskQueue; - break; + _questController.Stop("Pathfinding failed"); + _fateController.Stop("Pathfinding failed"); + _seasonalDutyController.Stop("Pathfinding failed"); + _attunementController.Stop("Pathfinding failed"); + _customDeliveryController.Stop("Pathfinding failed"); + _fishingController.Stop("Pathfinding failed"); } - taskQueue = (TaskQueue)obj; - num = ((taskQueue == null) ? (-136136924) : (-136136925)); } } - [MethodImpl(MethodImplOptions.NoInlining)] private void OnToast(ref SeString message, ref ToastOptions options, ref bool isHandled) { - _200C_206F_202A_200E_202E_200F_200F_200B_206D_200B_202E_206E_200C_206D_206F_202E_206C_206B_206B_202C_202A_200B_200B_200C_206B_200F_200F_206F_202A_202B_200D_202E_200D_206B_200E_202E_200D_202C_200C_200D_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-431443724), new object[1] { message }); + _logger.LogTrace("Normal Toast: {Message}", message); } - [MethodImpl(MethodImplOptions.NoInlining)] private void OnErrorToast(ref SeString message, ref bool isHandled) { - _200C_206F_202A_200E_202E_200F_200F_200B_206D_200B_202E_206E_200C_206D_206F_202E_206C_206B_206B_202C_202A_200B_200B_200C_206B_200F_200F_206F_202A_202B_200D_202E_200D_206B_200E_202E_200D_202C_200C_200D_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(953946217), new object[1] { message }); + _logger.LogTrace("Error Toast: {Message}", message); _fateController.OnErrorToast(ref message, ref isHandled); _seasonalDutyController.OnErrorToast(ref message, ref isHandled); _attunementController.OnErrorToast(ref message, ref isHandled); @@ -218,167 +153,32 @@ internal sealed class DalamudInitializer : IDisposable _fishingController.OnErrorToast(ref message, ref isHandled); } - [MethodImpl(MethodImplOptions.NoInlining)] private void OnQuestToast(ref SeString message, ref QuestToastOptions options, ref bool isHandled) { - _200C_206F_202A_200E_202E_200F_200F_200B_206D_200B_202E_206E_200C_206D_206F_202E_206C_206B_206B_202C_202A_200B_200B_200C_206B_200F_200F_206F_202A_202B_200D_202E_200D_206B_200E_202E_200D_202C_200C_200D_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-364597471), new object[1] { message }); + _logger.LogTrace("Quest Toast: {Message}", message); } private void ToggleQuestWindow() { - int num = ((!_configuration.IsPluginSetupComplete()) ? (-710409484) : (-710409483)); - while (true) + if (_configuration.IsPluginSetupComplete()) { - int num2 = num; - int num3 = -710409484; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_004b; - case 0: - _202B_200C_200D_200B_202D_202C_200B_202A_206C_206A_200E_202B_202E_202D_206C_206E_202B_200E_200D_206E_200E_206D_200F_206D_200E_206D_202B_206F_206C_206A_200B_206F_200B_206F_202A_206B_206C_200F_206E_202A_202E((LWindow)_oneTimeSetupWindow, true); - return; - case 1: - _206E_206C_200F_206B_206E_200C_202A_206C_200F_200C_206F_206B_200C_206D_206C_200D_202A_206E_202D_206B_200C_202B_206B_200F_206E_206C_202B_206C_202D_202E_206E_206C_206F_206E_206F_206D_202D_202E_202C_202D_202E((LWindow)_questWindow); - return; - } - continue; - IL_004b: - num = -710409483; + _questWindow.ToggleOrUncollapse(); + } + else + { + _oneTimeSetupWindow.IsOpenAndUncollapsed = true; } } public void Dispose() { - _202E_206E_200E_202C_206B_206D_202C_202A_202B_202C_202B_202A_202A_202B_200D_202E_200C_202E_202D_202B_202A_202E_206E_206E_200F_206E_206F_206A_202C_206D_206A_200F_206D_206F_206D_206D_206C_200D_200C_202C_202E(_toastGui, (IToastGui.OnQuestToastDelegate)OnQuestToast); - _206D_200F_206C_202E_206A_202A_200D_202C_206D_202E_200C_200D_206A_206E_206E_202A_206B_200D_200D_200E_206D_206F_202C_202B_206E_202D_206D_200B_200C_200E_206F_200E_202E_202E_202A_200D_202E_202A_206D_202E(_toastGui, (IToastGui.OnErrorToastDelegate)OnErrorToast); - _202D_200C_200C_202D_200F_202D_202A_200B_200E_200C_202D_202C_200C_202D_206D_200B_202D_206A_206B_200D_202E_206F_206F_206E_200D_200F_200F_206B_200D_206F_200C_206C_200C_202A_206A_202C_200C_200E_206E_206C_202E(_toastGui, (IToastGui.OnNormalToastDelegate)OnToast); - _206E_202C_202C_206C_202B_200E_202A_202A_200D_206E_206C_202D_202E_200F_206E_206E_200B_202C_202B_202A_202E_206F_200D_202D_202D_202D_206C_202D_202E_206B_200D_200C_202D_202C_202A_206A_206A_206F_206A_200C_202E(_framework, (IFramework.OnUpdateDelegate)FrameworkUpdate); - _200C_202A_200D_200E_200C_200C_206D_206F_200F_206B_200D_206A_206B_206F_206C_202E_200D_202B_200F_206E_206F_206F_200C_200B_200E_206D_202D_202D_202C_202B_206B_206C_202E_200D_206F_206E_200E_202E_206A_206C_202E(_200E_202E_200B_200D_202C_200E_202E_202A_202B_200C_206A_202C_206C_206C_206A_202A_202E_206D_200D_200F_206F_206A_202C_202D_200E_200D_202E_200C_200D_206F_202E_200C_206D_200D_206A_206C_202E_202C_200C_202E(_pluginInterface), (Action)_configWindow.Toggle); - _200C_202A_206E_200B_202B_200B_202B_202C_200B_206D_206E_202B_202D_206D_200E_200E_202A_202A_200D_206F_202E_202D_200C_206F_202B_206E_200B_206E_206C_202B_200E_206C_200B_200C_202D_202A_200C_202A_202E_202D_202E(_200E_202E_200B_200D_202C_200E_202E_202A_202B_200C_206A_202C_206C_206C_206A_202A_202E_206D_200D_200F_206F_206A_202C_202D_200E_200D_202E_200C_200D_206F_202E_200C_206D_200D_206A_206C_202E_202C_200C_202E(_pluginInterface), (Action)ToggleQuestWindow); - _206D_206B_206F_200C_206F_206A_206B_200B_202E_202D_202A_206C_206D_206B_200C_200C_202A_206D_202A_206A_206E_202B_200F_206A_202C_206B_200C_200C_200F_200E_206F_202A_206D_202D_202D_206E_206A_202D_202B_206A_202E(_200E_202E_200B_200D_202C_200E_202E_202A_202B_200C_206A_202C_206C_206C_206A_202A_202E_206D_200D_200F_206F_206A_202C_202D_200E_200D_202E_200C_200D_206F_202E_200C_206D_200D_206A_206C_202E_202C_200C_202E(_pluginInterface), (Action)_windowSystem.Draw); - _200D_200C_206E_200C_202C_200F_200F_202A_206B_202E_206B_206F_200D_200F_202C_200C_202C_202E_206B_202E_206E_202B_202A_206A_202E_202E_202E_206E_200E_206B_206C_202E_202E_200D_202D_200D_200E_200D_202D_206D_202E(_windowSystem); - } - - void IDisposable.Dispose() - { - //ILSpy generated this explicit interface implementation from .override directive in Dispose - this.Dispose(); - } - - static void _206F_206D_200B_206C_200C_202A_206F_206D_206F_206F_206F_206A_202B_200B_200F_200D_206F_202A_202A_200F_206C_202D_200F_206B_206D_202C_206C_202B_202D_206C_200B_202D_202A_202B_200F_206B_202A_202A_206D_202B_202E(WindowSystem P_0, IWindow P_1) - { - P_0.AddWindow(P_1); - } - - static IUiBuilder _200E_202E_200B_200D_202C_200E_202E_202A_202B_200C_206A_202C_206C_206C_206A_202A_202E_206D_200D_200F_206F_206A_202C_202D_200E_200D_202E_200C_200D_206F_202E_200C_206D_200D_206A_206C_202E_202C_200C_202E(IDalamudPluginInterface P_0) - { - return P_0.UiBuilder; - } - - static void _206E_200C_202B_202D_206A_206F_202C_200C_206D_200E_202A_202B_202E_206D_200E_206A_202D_202B_202B_206D_202B_206D_200B_202C_200F_200F_202A_206F_206E_202D_202A_202D_202B_200F_200F_206E_202A_200C_206C_206C_202E(IUiBuilder P_0, Action P_1) - { - P_0.Draw += P_1; - } - - static void _202A_202D_202D_202A_206D_206E_200C_202D_206F_200B_202C_202E_202A_200B_202B_206E_200C_202D_200F_200E_202A_202C_202E_202B_206E_206D_206A_206C_206A_206F_200D_206C_206A_206F_206A_200F_200E_206F_202D_206B_202E(IUiBuilder P_0, Action P_1) - { - P_0.OpenMainUi += P_1; - } - - static void _206B_200F_200D_202B_206D_200D_202C_200F_202B_206C_206E_202C_206A_206A_200D_206F_200E_206D_206C_202A_200E_206A_202D_200E_200E_202D_200E_206D_202C_202A_206E_206C_206B_206E_200C_206E_202B_206A_202D_202E_202E(IUiBuilder P_0, Action P_1) - { - P_0.OpenConfigUi += P_1; - } - - static void _206C_202E_202B_200F_202E_202A_206D_206E_206F_202A_206A_202C_202D_200D_202A_206C_202D_202A_200D_200E_206E_206D_202A_200C_206A_206A_202B_202B_202C_206B_206A_202A_206A_200B_202C_200C_202D_206A_206E_200F_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update += P_1; - } - - static void _206A_202B_206D_202E_206C_206B_202C_200F_206B_206B_206B_200B_202B_200C_200E_200C_200E_200D_206E_200F_206E_202A_202C_202A_206F_202D_200B_200D_206A_206D_206B_206F_206C_200E_200C_202C_200E_202E_200C_206C_202E(IToastGui P_0, IToastGui.OnNormalToastDelegate P_1) - { - P_0.Toast += P_1; - } - - static void _202E_202E_200C_206A_202E_206C_200B_206B_206B_202E_200E_202C_202A_200B_200E_206F_202A_206E_202C_200E_206D_206E_206A_206B_206D_200E_202C_202E_200E_202B_200F_200E_200E_206C_202E_206F_200B_202B_202D_202E_202E(IToastGui P_0, IToastGui.OnErrorToastDelegate P_1) - { - P_0.ErrorToast += P_1; - } - - static void _200D_206D_206E_206A_202B_202B_202A_206A_206C_206C_206D_206E_202A_202E_206B_200C_206F_200C_200B_200E_206A_202C_200B_200D_200F_206C_200F_200E_200E_202B_206A_202D_206B_206D_202C_206E_202E_206E_202C_202E_202E(IToastGui P_0, IToastGui.OnQuestToastDelegate P_1) - { - P_0.QuestToast += P_1; - } - - static string _206F_200B_206C_202C_206D_202B_206F_202A_202E_202B_200E_202B_200E_206D_202D_206B_202B_200C_202A_206A_200F_206C_206C_202D_202B_200C_200E_200F_206F_202E_202C_202E_200F_206F_206C_202C_206C_202B_202D_202D_202E(Exception P_0) - { - return P_0.Message; - } - - static void _206F_206A_200E_206D_200F_202A_200D_200F_200E_202C_206A_206B_202D_202E_200D_202D_202A_200B_206F_202E_200F_202B_206A_202A_200B_200E_206E_200C_200D_202B_206E_202D_206F_206A_202B_202C_200C_206D_200B_200C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static void _206B_200B_202E_200F_206F_200D_200D_202B_202E_200F_202A_200E_202C_202D_202D_200B_206C_202E_206B_200F_202E_200C_202B_200B_200B_206B_206E_206D_206A_206B_206D_200F_206D_202C_206F_206A_202D_206F_202A_202E_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogWarning(P_1, P_2, P_3); - } - - static void _200C_206F_202A_200E_202E_200F_200F_200B_206D_200B_202E_206E_200C_206D_206F_202E_206C_206B_206B_202C_202A_200B_200B_200C_206B_200F_200F_206F_202A_202B_200D_202E_200D_206B_200E_202E_200D_202C_200C_200D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogTrace(P_1, P_2); - } - - static void _206E_206C_200F_206B_206E_200C_202A_206C_200F_200C_206F_206B_200C_206D_206C_200D_202A_206E_202D_206B_200C_202B_206B_200F_206E_206C_202B_206C_202D_202E_206E_206C_206F_206E_206F_206D_202D_202E_202C_202D_202E(LWindow P_0) - { - P_0.ToggleOrUncollapse(); - } - - static void _202B_200C_200D_200B_202D_202C_200B_202A_206C_206A_200E_202B_202E_202D_206C_206E_202B_200E_200D_206E_200E_206D_200F_206D_200E_206D_202B_206F_206C_206A_200B_206F_200B_206F_202A_206B_206C_200F_206E_202A_202E(LWindow P_0, bool P_1) - { - P_0.IsOpenAndUncollapsed = P_1; - } - - static void _202E_206E_200E_202C_206B_206D_202C_202A_202B_202C_202B_202A_202A_202B_200D_202E_200C_202E_202D_202B_202A_202E_206E_206E_200F_206E_206F_206A_202C_206D_206A_200F_206D_206F_206D_206D_206C_200D_200C_202C_202E(IToastGui P_0, IToastGui.OnQuestToastDelegate P_1) - { - P_0.QuestToast -= P_1; - } - - static void _206D_200F_206C_202E_206A_202A_200D_202C_206D_202E_200C_200D_206A_206E_206E_202A_206B_200D_200D_200E_206D_206F_202C_202B_206E_202D_206D_200B_200C_200E_206F_200E_202E_202E_202A_200D_202E_202A_206D_202E(IToastGui P_0, IToastGui.OnErrorToastDelegate P_1) - { - P_0.ErrorToast -= P_1; - } - - static void _202D_200C_200C_202D_200F_202D_202A_200B_200E_200C_202D_202C_200C_202D_206D_200B_202D_206A_206B_200D_202E_206F_206F_206E_200D_200F_200F_206B_200D_206F_200C_206C_200C_202A_206A_202C_200C_200E_206E_206C_202E(IToastGui P_0, IToastGui.OnNormalToastDelegate P_1) - { - P_0.Toast -= P_1; - } - - static void _206E_202C_202C_206C_202B_200E_202A_202A_200D_206E_206C_202D_202E_200F_206E_206E_200B_202C_202B_202A_202E_206F_200D_202D_202D_202D_206C_202D_202E_206B_200D_200C_202D_202C_202A_206A_206A_206F_206A_200C_202E(IFramework P_0, IFramework.OnUpdateDelegate P_1) - { - P_0.Update -= P_1; - } - - static void _200C_202A_200D_200E_200C_200C_206D_206F_200F_206B_200D_206A_206B_206F_206C_202E_200D_202B_200F_206E_206F_206F_200C_200B_200E_206D_202D_202D_202C_202B_206B_206C_202E_200D_206F_206E_200E_202E_206A_206C_202E(IUiBuilder P_0, Action P_1) - { - P_0.OpenConfigUi -= P_1; - } - - static void _200C_202A_206E_200B_202B_200B_202B_202C_200B_206D_206E_202B_202D_206D_200E_200E_202A_202A_200D_206F_202E_202D_200C_206F_202B_206E_200B_206E_206C_202B_200E_206C_200B_200C_202D_202A_200C_202A_202E_202D_202E(IUiBuilder P_0, Action P_1) - { - P_0.OpenMainUi -= P_1; - } - - static void _206D_206B_206F_200C_206F_206A_206B_200B_202E_202D_202A_206C_206D_206B_200C_200C_202A_206D_202A_206A_206E_202B_200F_206A_202C_206B_200C_200C_200F_200E_206F_202A_206D_202D_202D_206E_206A_202D_202B_206A_202E(IUiBuilder P_0, Action P_1) - { - P_0.Draw -= P_1; - } - - static void _200D_200C_206E_200C_202C_200F_200F_202A_206B_202E_206B_206F_200D_200F_202C_200C_202C_202E_206B_202E_206E_202B_202A_206A_202E_202E_202E_206E_200E_206B_206C_202E_202E_200D_202D_200D_200E_200D_202D_206D_202E(WindowSystem P_0) - { - P_0.RemoveAllWindows(); + _toastGui.QuestToast -= OnQuestToast; + _toastGui.ErrorToast -= OnErrorToast; + _toastGui.Toast -= OnToast; + _framework.Update -= FrameworkUpdate; + _pluginInterface.UiBuilder.OpenConfigUi -= _configWindow.Toggle; + _pluginInterface.UiBuilder.OpenMainUi -= ToggleQuestWindow; + _pluginInterface.UiBuilder.Draw -= _windowSystem.Draw; + _windowSystem.RemoveAllWindows(); } } diff --git a/Questionable/Questionable/QuestionablePlugin.cs b/Questionable/Questionable/QuestionablePlugin.cs index 2576b00..7c4d256 100644 --- a/Questionable/Questionable/QuestionablePlugin.cs +++ b/Questionable/Questionable/QuestionablePlugin.cs @@ -1,24 +1,20 @@ using System; -using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; +using System.Reflection; using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; using System.Threading; using System.Threading.Tasks; -using Dalamud.Configuration; using Dalamud.Interface.Windowing; using Dalamud.Plugin; using Dalamud.Plugin.Services; using LLib; using LLib.GameData; using LLib.Gear; -using LLib.ImGui; using LLib.Logging; using LLib.Notifications; using LLib.Shop; -using Lumina; using Lumina.Data; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; @@ -40,8 +36,6 @@ using Questionable.FatePaths; using Questionable.Functions; using Questionable.GatheringPaths; using Questionable.Model.Changelog; -using Questionable.Model.Gathering; -using Questionable.Model.Questing; using Questionable.Navigation; using Questionable.Notifications; using Questionable.QuestPaths; @@ -56,602 +50,12 @@ using Questionable.Windows.Setup; using Questionable.Windows.Utils; using SmartNav; using SmartNav.Data; -using SmartNav.Model.Navigation; namespace Questionable; +[Obfuscation(Feature = "-ctrl flow", Exclude = false, ApplyToMembers = true)] public sealed class QuestionablePlugin : IAsyncDalamudPlugin, IAsyncDisposable { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static System.Action _003C_003E9__22_0; - - public static Func<string, string?> _003C_003E9__22_7; - - public static Func<TimeSpan?> _003C_003E9__22_3; - - public static Func<TimeSpan?> _003C_003E9__22_4; - - public static Func<TimeSpan?> _003C_003E9__22_5; - - public static Func<TimeSpan?> _003C_003E9__22_6; - - public static Func<IServiceProvider, SmartNavDataOptions> _003C_003E9__24_0; - - public static Func<IServiceProvider, ITerritoryInfo> _003C_003E9__24_1; - - public static Func<IServiceProvider, NpcPositionCacheOptions> _003C_003E9__26_0; - - public static Func<IServiceProvider, ICombatModule> _003C_003E9__26_1; - - public static Func<IServiceProvider, ICombatModule> _003C_003E9__26_2; - - public static Func<IServiceProvider, IQuestValidator> _003C_003E9__28_0; - - internal void _003CLoadAsync_003Eb__22_0() - { - try - { - _206D_200F_206A_206E_202A_206D_202E_206A_202E_206F_202D_200E_202B_206B_202A_202B_200F_200C_202D_206A_206D_206C_200C_200B_200E_200B_206E_200D_202D_200C_200C_200E_200C_206C_206C_206B_206A_200D_202E_202C_202E(); - _200F_202D_200F_206B_206C_202C_206D_200C_206F_200E_202D_202C_202D_202E_202D_206B_200C_206B_206D_206E_206E_200D_206C_200F_206F_206D_206B_200D_202A_202B_202D_202D_202E_200F_200C_206B_206A_206E_202A_206D_202E(); - _202B_206B_206C_202D_200C_206C_200D_200E_206C_202D_202D_206D_202B_200E_200E_206F_200D_200B_206F_206D_202A_200D_202E_200E_206F_206E_202C_200F_200D_202B_202C_202C_200D_200C_200E_206A_202A_200B_200D_202E(); - _200F_200B_200C_206E_200B_206A_200B_202E_200D_200E_202D_200C_200D_202D_206F_206D_200E_206B_200E_206E_200E_200F_206F_206F_206D_200F_206A_206E_202D_202E_200E_206F_206A_200C_202C_206D_200E_202C_206E_200F_202E(); - } - catch (Exception) - { - } - } - - internal string? _003CLoadAsync_003Eb__22_7(string t) - { - if (t == null) - { - return null; - } - return _202E_206B_202D_206A_206B_206D_200C_202B_200D_206A_202C_206D_202A_200B_202B_206A_206A_202C_202D_202C_206D_202B_202D_206B_206E_200F_206D_206A_200B_200C_206C_200F_206D_202E_206E_200C_202D_200D_206A_202A_202E(t, _200C_200D_202A_202A_202D_206C_202D_200D_202A_200E_206E_206F_206A_202A_206A_200D_206E_206E_202A_200B_202A_206D_200F_200C_202E_202E_206E_206D_200B_202B_202E_200D_206D_206E_206A_202C_206F_202B_206A_200D_202E(t, '.') + 1); - } - - internal TimeSpan? _003CLoadAsync_003Eb__22_3() - { - return _200B_206D_202E_206A_206F_206A_202D_202C_202C_206E_202E_206A_206D_200B_206A_206C_200E_206F_202C_200E_206F_202B_202C_202E_206A_206F_206D_200B_202E_206A_206A_202A_200E_202C_202C_200D_200F_200D_206D_200D_202E(); - } - - internal TimeSpan? _003CLoadAsync_003Eb__22_4() - { - return _202D_200D_206F_202A_202D_200E_206D_202A_202C_206F_206E_200D_200B_206E_206A_202D_206A_200D_202E_202E_200D_200C_200C_202E_202E_202C_200F_202E_206C_202C_206A_202E_202B_200F_206B_206A_200C_206A_206A_200D_202E(); - } - - internal TimeSpan? _003CLoadAsync_003Eb__22_5() - { - return _202B_200F_202E_202E_202B_206C_202D_206E_206F_200D_206B_200D_200E_206F_206D_200F_206C_200C_200D_202C_206E_202E_206D_202E_206C_206C_206F_206C_206E_202C_200C_206A_206B_200E_200B_200C_202E_202A_202B_200C_202E(); - } - - internal TimeSpan? _003CLoadAsync_003Eb__22_6() - { - return _206F_200D_202B_202A_206C_206D_200C_200C_202E_202D_206A_202C_200F_206B_200D_206B_202E_202E_202B_202E_206B_202B_200B_202D_202E_202B_200C_202A_206C_200C_206A_202B_206D_202B_206E_202E_202A_202B_202D_206B_202E(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal SmartNavDataOptions _003CAddBasicFunctionsAndData_003Eb__24_0(IServiceProvider sp) - { - IDalamudPluginInterface requiredService = sp.GetRequiredService<IDalamudPluginInterface>(); - DirectoryInfo directoryInfo = null; - _202D_200E_202B_202B_206C_202D_200B_206F_206E_202D_206B_202C_202B_206B_206A_200D_202C_202C_200D_200D_200D_202A_206B_200C_200E_206B_200D_206B_206C_202D_206E_200D_202D_206C_200C_206D_200C_206C_206D_200D_202E(_200D_202E_202D_202A_206F_206D_206F_206E_200F_200D_200B_202C_200B_206B_206E_200F_200C_200C_200D_200F_206A_200B_202D_206C_206B_206D_202C_206A_200D_202C_202A_202E_206D_206B_202E_200F_206F_202B_200B_206F_202E(sp.GetRequiredService<IDataManager>())).TryGetValue(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1893535850), out Repository value); - return _200C_206E_206F_200F_202E_202A_200C_200F_202D_202A_202A_206A_202D_206D_202D_206C_206F_202C_200E_202A_200F_202E_200C_200D_206E_200E_200E_200F_200F_206D_200F_202B_206B_206D_200B_202A_202C_200C_206B_206E_202E(_200C_206D_206F_202A_200F_206A_202E_202C_206C_206F_200D_206A_202D_200B_200D_206A_200D_206F_206C_206D_202B_202E_200B_200C_206B_202C_200C_206A_202D_206B_206E_206C_206F_200F_200E_206C_202C_206A_202B_200D_202E(requiredService), directoryInfo, (value != null) ? _206E_206D_206D_202A_200C_202C_200B_202A_200B_202D_200C_200F_202C_206D_202D_206F_200D_200B_200B_202A_206F_202D_202C_206B_202C_206B_202C_202A_202E_200B_206C_206F_202E_202C_202E_200B_206E_202D_206F_202A_202E(value) : null); - } - - internal ITerritoryInfo _003CAddBasicFunctionsAndData_003Eb__24_1(IServiceProvider sp) - { - return sp.GetRequiredService<TerritoryData>(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - internal NpcPositionCacheOptions _003CAddControllers_003Eb__26_0(IServiceProvider sp) - { - _202D_200E_202B_202B_206C_202D_200B_206F_206E_202D_206B_202C_202B_206B_206A_200D_202C_202C_200D_200D_200D_202A_206B_200C_200E_206B_200D_206B_206C_202D_206E_200D_202D_206C_200C_206D_200C_206C_206D_200D_202E(_200D_202E_202D_202A_206F_206D_206F_206E_200F_200D_200B_202C_200B_206B_206E_200F_200C_200C_200D_200F_206A_200B_202D_206C_206B_206D_202C_206A_200D_202C_202A_202E_206D_206B_202E_200F_206F_202B_200B_206F_202E(sp.GetRequiredService<IDataManager>())).TryGetValue(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1502740136), out Repository value); - NpcPositionCacheOptions npcPositionCacheOptions = _206F_206C_206C_206F_206B_202D_202E_206C_206B_202A_202C_200F_206D_206D_202D_202E_200D_200C_202C_202D_202C_200B_202B_206A_202E_202B_206E_206A_206E_200D_200E_202B_200C_206B_206B_202D_200D_206A_200F_200D_202E(); - _206C_206F_200B_206D_206E_206A_202B_200B_206C_206F_206F_202D_206C_202B_202A_206D_200B_200D_200F_202B_202C_200D_202E_200E_206A_200D_206E_200D_200D_206F_200E_202E_206B_200B_200E_206F_200C_202D_200B_202D_202E(npcPositionCacheOptions, _206A_200D_206D_200D_206F_202B_202D_202E_200D_202A_200D_200B_202A_200F_200E_200B_202E_200C_206A_206C_200B_202D_206D_200F_200D_202A_202E_206D_206E_206D_200C_206E_206B_206C_202C_202D_206D_202A_202B_200D_202E((FileSystemInfo)_200C_206D_206F_202A_200F_206A_202E_202C_206C_206F_200D_206A_202D_200B_200D_206A_200D_206F_206C_206D_202B_202E_200B_200C_206B_202C_200C_206A_202D_206B_206E_206C_206F_200F_200E_206C_202C_206A_202B_200D_202E(sp.GetRequiredService<IDalamudPluginInterface>()))); - _200E_206E_202B_202B_200C_200B_206D_202D_200E_206F_200F_202D_202D_202E_206F_206E_200F_206B_206E_200F_202A_206A_206E_200D_206F_206B_202B_206B_200F_206F_202D_202A_206A_202A_202C_206C_206E_206B_206C_202C_202E(npcPositionCacheOptions, (value != null) ? _206E_206D_206D_202A_200C_202C_200B_202A_200B_202D_200C_200F_202C_206D_202D_206F_200D_200B_200B_202A_206F_202D_202C_206B_202C_206B_202C_202A_202E_200B_206C_206F_202E_202C_202E_200B_206E_202D_206F_202A_202E(value) : null); - _200C_200E_200E_200F_200B_200E_202D_206D_206E_206E_206E_202D_206F_200C_206C_202C_200E_206A_206F_200B_200D_206F_202A_206A_206A_200D_206D_206B_200B_206F_202D_206C_202E_206F_200D_206D_206B_202E_202B_206B_202E(npcPositionCacheOptions, TimeSpan.FromMilliseconds(10L)); - return npcPositionCacheOptions; - } - - internal ICombatModule _003CAddControllers_003Eb__26_1(IServiceProvider sp) - { - return sp.GetRequiredService<WrathComboModule>(); - } - - internal ICombatModule _003CAddControllers_003Eb__26_2(IServiceProvider sp) - { - return sp.GetRequiredService<RotationSolverRebornModule>(); - } - - internal IQuestValidator _003CAddQuestValidators_003Eb__28_0(IServiceProvider sp) - { - return sp.GetRequiredService<JsonSchemaValidator>(); - } - - static IReadOnlyDictionary<ElementId, QuestRoot> _206D_200F_206A_206E_202A_206D_202E_206A_202E_206F_202D_200E_202B_206B_202A_202B_200F_200C_202D_206A_206D_206C_200C_200B_200E_200B_206E_200D_202D_200C_200C_200E_200C_206C_206C_206B_206A_200D_202E_202C_202E() - { - return AssemblyQuestLoader.GetQuests(); - } - - static IReadOnlyDictionary<ushort, GatheringRoot> _200F_202D_200F_206B_206C_202C_206D_200C_206F_200E_202D_202C_202D_202E_202D_206B_200C_206B_206D_206E_206E_200D_206C_200F_206F_206D_206B_200D_202A_202B_202D_202D_202E_200F_200C_206B_206A_206E_202A_206D_202E() - { - return AssemblyGatheringLocationLoader.GetLocations(); - } - - static IReadOnlyDictionary<ushort, FateDefinition> _202B_206B_206C_202D_200C_206C_200D_200E_206C_202D_202D_206D_202B_200E_200E_206F_200D_200B_206F_206D_202A_200D_202E_200E_206F_206E_202C_200F_200D_202B_202C_202C_200D_200C_200E_206A_202A_200B_200D_202E() - { - return AssemblyFateDefinitionLoader.GetDefinitions(); - } - - static IReadOnlyDictionary<ushort, SeasonalDutyDefinition> _200F_200B_200C_206E_200B_206A_200B_202E_200D_200E_202D_200C_200D_202D_206F_206D_200E_206B_200E_206E_200E_200F_206F_206F_206D_200F_206A_206E_202D_202E_200E_206F_206A_200C_202C_206D_200E_202C_206E_200F_202E() - { - return AssemblySeasonalDutyDefinitionLoader.GetDefinitions(); - } - - static int _200C_200D_202A_202A_202D_206C_202D_200D_202A_200E_206E_206F_206A_202A_206A_200D_206E_206E_202A_200B_202A_206D_200F_200C_202E_202E_206E_206D_200B_202B_202E_200D_206D_206E_206A_202C_206F_202B_206A_200D_202E(string P_0, char P_1) - { - return P_0.LastIndexOf(P_1); - } - - static string _202E_206B_202D_206A_206B_206D_200C_202B_200D_206A_202C_206D_202A_200B_202B_206A_206A_202C_202D_202C_206D_202B_202D_206B_206E_200F_206D_206A_200B_200C_206C_200F_206D_202E_206E_200C_202D_200D_206A_202A_202E(string P_0, int P_1) - { - return P_0.Substring(P_1); - } - - static TimeSpan? _200B_206D_202E_206A_206F_206A_202D_202C_202C_206E_202E_206A_206D_200B_206A_206C_200E_206F_202C_200E_206F_202B_202C_202E_206A_206F_206D_200B_202E_206A_206A_202A_200E_202C_202C_200D_200F_200D_206D_200D_202E() - { - return AssemblyQuestLoader.DecodeDuration; - } - - static TimeSpan? _202D_200D_206F_202A_202D_200E_206D_202A_202C_206F_206E_200D_200B_206E_206A_202D_206A_200D_202E_202E_200D_200C_200C_202E_202E_202C_200F_202E_206C_202C_206A_202E_202B_200F_206B_206A_200C_206A_206A_200D_202E() - { - return AssemblyGatheringLocationLoader.DecodeDuration; - } - - static TimeSpan? _202B_200F_202E_202E_202B_206C_202D_206E_206F_200D_206B_200D_200E_206F_206D_200F_206C_200C_200D_202C_206E_202E_206D_202E_206C_206C_206F_206C_206E_202C_200C_206A_206B_200E_200B_200C_202E_202A_202B_200C_202E() - { - return AssemblyFateDefinitionLoader.DecodeDuration; - } - - static TimeSpan? _206F_200D_202B_202A_206C_206D_200C_200C_202E_202D_206A_202C_200F_206B_200D_206B_202E_202E_202B_202E_206B_202B_200B_202D_202E_202B_200C_202A_206C_200C_206A_202B_206D_202B_206E_202E_202A_202B_202D_206B_202E() - { - return AssemblySeasonalDutyDefinitionLoader.DecodeDuration; - } - - static GameData _200D_202E_202D_202A_206F_206D_206F_206E_200F_200D_200B_202C_200B_206B_206E_200F_200C_200C_200D_200F_206A_200B_202D_206C_206B_206D_202C_206A_200D_202C_202A_202E_206D_206B_202E_200F_206F_202B_200B_206F_202E(IDataManager P_0) - { - return P_0.GameData; - } - - static Dictionary<string, Repository> _202D_200E_202B_202B_206C_202D_200B_206F_206E_202D_206B_202C_202B_206B_206A_200D_202C_202C_200D_200D_200D_202A_206B_200C_200E_206B_200D_206B_206C_202D_206E_200D_202D_206C_200C_206D_200C_206C_206D_200D_202E(GameData P_0) - { - return P_0.Repositories; - } - - static DirectoryInfo _200C_206D_206F_202A_200F_206A_202E_202C_206C_206F_200D_206A_202D_200B_200D_206A_200D_206F_206C_206D_202B_202E_200B_200C_206B_202C_200C_206A_202D_206B_206E_206C_206F_200F_200E_206C_202C_206A_202B_200D_202E(IDalamudPluginInterface P_0) - { - return P_0.ConfigDirectory; - } - - static string _206E_206D_206D_202A_200C_202C_200B_202A_200B_202D_200C_200F_202C_206D_202D_206F_200D_200B_200B_202A_206F_202D_202C_206B_202C_206B_202C_202A_202E_200B_206C_206F_202E_202C_202E_200B_206E_202D_206F_202A_202E(Repository P_0) - { - return P_0.Version; - } - - static SmartNavDataOptions _200C_206E_206F_200F_202E_202A_200C_200F_202D_202A_202A_206A_202D_206D_202D_206C_206F_202C_200E_202A_200F_202E_200C_200D_206E_200E_200E_200F_200F_206D_200F_202B_206B_206D_200B_202A_202C_200C_206B_206E_202E(DirectoryInfo P_0, DirectoryInfo P_1, string P_2) - { - return new SmartNavDataOptions(P_0, P_1, P_2); - } - - static NpcPositionCacheOptions _206F_206C_206C_206F_206B_202D_202E_206C_206B_202A_202C_200F_206D_206D_202D_202E_200D_200C_202C_202D_202C_200B_202B_206A_202E_202B_206E_206A_206E_200D_200E_202B_200C_206B_206B_202D_200D_206A_200F_200D_202E() - { - return new NpcPositionCacheOptions(); - } - - static string _206A_200D_206D_200D_206F_202B_202D_202E_200D_202A_200D_200B_202A_200F_200E_200B_202E_200C_206A_206C_200B_202D_206D_200F_200D_202A_202E_206D_206E_206D_200C_206E_206B_206C_202C_202D_206D_202A_202B_200D_202E(FileSystemInfo P_0) - { - return P_0.FullName; - } - - static void _206C_206F_200B_206D_206E_206A_202B_200B_206C_206F_206F_202D_206C_202B_202A_206D_200B_200D_200F_202B_202C_200D_202E_200E_206A_200D_206E_200D_200D_206F_200E_202E_206B_200B_200E_206F_200C_202D_200B_202D_202E(NpcPositionCacheOptions P_0, string P_1) - { - P_0.CacheDirectory = P_1; - } - - static void _200E_206E_202B_202B_200C_200B_206D_202D_200E_206F_200F_202D_202D_202E_206F_206E_200F_206B_206E_200F_202A_206A_206E_200D_206F_206B_202B_206B_200F_206F_202D_202A_206A_202A_202C_206C_206E_206B_206C_202C_202E(NpcPositionCacheOptions P_0, string P_1) - { - P_0.GameVersion = P_1; - } - - static void _200C_200E_200E_200F_200B_200E_202D_206D_206E_206E_206E_202D_206F_200C_206C_202C_200E_206A_206F_200B_200D_206F_202A_206A_206A_200D_206D_206B_200B_206F_202D_206C_202E_206F_200D_206D_206B_202E_202B_206B_202E(NpcPositionCacheOptions P_0, TimeSpan P_1) - { - P_0.ScanThrottle = P_1; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass30_0 - { - public IServiceProvider serviceProvider; - - internal QuestData _003CInitialize_003Eb__0() - { - return serviceProvider.GetRequiredService<QuestData>(); - } - - internal TerritoryData _003CInitialize_003Eb__1() - { - return serviceProvider.GetRequiredService<TerritoryData>(); - } - - internal GatheringData _003CInitialize_003Eb__2() - { - return serviceProvider.GetRequiredService<GatheringData>(); - } - - internal AetheryteData _003CInitialize_003Eb__3() - { - return serviceProvider.GetRequiredService<AetheryteData>(); - } - - internal AetherCurrentData _003CInitialize_003Eb__4() - { - return serviceProvider.GetRequiredService<AetherCurrentData>(); - } - - internal DutyUnlockData _003CInitialize_003Eb__5() - { - return serviceProvider.GetRequiredService<DutyUnlockData>(); - } - - internal FishingData _003CInitialize_003Eb__6() - { - return serviceProvider.GetRequiredService<FishingData>(); - } - - internal AlliedSocietyData _003CInitialize_003Eb__7() - { - return serviceProvider.GetRequiredService<AlliedSocietyData>(); - } - - internal WarpDataService _003CInitialize_003Eb__8() - { - return serviceProvider.GetRequiredService<WarpDataService>(); - } - - internal TaxiStandDataService _003CInitialize_003Eb__9() - { - return serviceProvider.GetRequiredService<TaxiStandDataService>(); - } - - internal ZoneSubRegionService _003CInitialize_003Eb__10() - { - return serviceProvider.GetRequiredService<ZoneSubRegionService>(); - } - - internal IReadOnlyList<ZoneBoundary> _003CInitialize_003Eb__11() - { - return _200F_202C_202D_202D_202B_200E_206B_202C_202B_202A_202B_202A_200F_200B_200E_200E_206D_200E_200B_200B_202E_200F_200B_200D_206E_200D_200F_202C_200E_200E_200B_202A_206D_200D_200F_202B_202D_206E_200F_206F_202E(serviceProvider.GetRequiredService<IZoneBoundarySource>()); - } - - internal GameStateHelper _003CInitialize_003Eb__12() - { - return serviceProvider.GetRequiredService<GameStateHelper>(); - } - - static IReadOnlyList<ZoneBoundary> _200F_202C_202D_202D_202B_200E_206B_202C_202B_202A_202B_202A_200F_200B_200E_200E_206D_200E_200B_200B_202E_200F_200B_200D_206E_200D_200F_202C_200E_200E_200B_202A_206D_200D_200F_202B_202D_206E_200F_206F_202E(IZoneBoundarySource P_0) - { - return P_0.GetBoundaries(); - } - } - - [StructLayout(LayoutKind.Auto)] - [CompilerGenerated] - private struct _003CDisposeAsync_003Ed__31 : IAsyncStateMachine - { - public int _003C_003E1__state; - - public AsyncValueTaskMethodBuilder _003C_003Et__builder; - - public QuestionablePlugin _003C_003E4__this; - - private ValueTaskAwaiter _003C_003Eu__1; - - private void MoveNext() - { - int num = _003C_003E1__state; - QuestionablePlugin questionablePlugin = _003C_003E4__this; - try - { - ValueTaskAwaiter awaiter; - if (num == 0) - { - awaiter = _003C_003Eu__1; - _003C_003Eu__1 = default(ValueTaskAwaiter); - num = (_003C_003E1__state = -1); - goto IL_007e; - } - if (questionablePlugin._serviceProvider != null) - { - awaiter = _206D_200F_206B_200F_200D_200F_206E_202C_202D_200F_206C_206C_200D_206E_206A_200D_200F_206F_206C_202A_202D_200F_202C_202E_202E_200B_202E_200C_202D_202B_202E_206C_202B_200E_206F_202E_202A_202A_202D_206C_202E(questionablePlugin._serviceProvider).GetAwaiter(); - if (!awaiter.IsCompleted) - { - num = (_003C_003E1__state = 0); - _003C_003Eu__1 = awaiter; - _003C_003Et__builder.AwaitUnsafeOnCompleted(ref awaiter, ref this); - return; - } - goto IL_007e; - } - goto end_IL_000e; - IL_007e: - awaiter.GetResult(); - end_IL_000e:; - } - catch (Exception exception) - { - _003C_003E1__state = -2; - _003C_003Et__builder.SetException(exception); - return; - } - _003C_003E1__state = -2; - _003C_003Et__builder.SetResult(); - } - - void IAsyncStateMachine.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - this.MoveNext(); - } - - [DebuggerHidden] - private void SetStateMachine(IAsyncStateMachine stateMachine) - { - _003C_003Et__builder.SetStateMachine(stateMachine); - } - - void IAsyncStateMachine.SetStateMachine(IAsyncStateMachine stateMachine) - { - //ILSpy generated this explicit interface implementation from .override directive in SetStateMachine - this.SetStateMachine(stateMachine); - } - - static ValueTask _206D_200F_206B_200F_200D_200F_206E_202C_202D_200F_206C_206C_200D_206E_206A_200D_200F_206F_206C_202A_202D_200F_202C_202E_202E_200B_202E_200C_202D_202B_202E_206C_202B_200E_206F_202E_202A_202A_202D_206C_202E(ServiceProvider P_0) - { - return P_0.DisposeAsync(); - } - } - - [StructLayout(LayoutKind.Auto)] - [CompilerGenerated] - private struct _003CLoadAsync_003Ed__22 : IAsyncStateMachine - { - public int _003C_003E1__state; - - public AsyncTaskMethodBuilder _003C_003Et__builder; - - public CancellationToken cancellationToken; - - public QuestionablePlugin _003C_003E4__this; - - private Stopwatch _003CtotalStopwatch_003E5__2; - - private Stopwatch _003CproviderStopwatch_003E5__3; - - private TaskAwaiter _003C_003Eu__1; - - [MethodImpl(MethodImplOptions.NoInlining)] - private void MoveNext() - { - int num = _003C_003E1__state; - QuestionablePlugin CS_0024_003C_003E8__locals28 = _003C_003E4__this; - try - { - try - { - TaskAwaiter awaiter; - if (num != 0) - { - _003CtotalStopwatch_003E5__2 = _206D_200F_200F_202E_206D_202C_206F_206B_202B_202D_200F_200E_202B_200F_202D_200B_206C_202B_206B_200D_206C_202E_200F_200D_202E_202C_200F_206D_200C_202E_200B_200D_202E_206C_202B_206B_206B_202E_202A_206C_202E(); - _200D_202D_206A_200B_206B_200E_200C_200C_206F_206F_202B_206B_202A_202D_202B_206A_206A_202C_206A_206E_200C_200F_202B_206C_202E_202B_202E_206F_206C_202A_206C_206E_200C_200D_200F_200B_200B_206B_206C_200E_202E((System.Action)delegate - { - try - { - _003C_003Ec._206D_200F_206A_206E_202A_206D_202E_206A_202E_206F_202D_200E_202B_206B_202A_202B_200F_200C_202D_206A_206D_206C_200C_200B_200E_200B_206E_200D_202D_200C_200C_200E_200C_206C_206C_206B_206A_200D_202E_202C_202E(); - _003C_003Ec._200F_202D_200F_206B_206C_202C_206D_200C_206F_200E_202D_202C_202D_202E_202D_206B_200C_206B_206D_206E_206E_200D_206C_200F_206F_206D_206B_200D_202A_202B_202D_202D_202E_200F_200C_206B_206A_206E_202A_206D_202E(); - _003C_003Ec._202B_206B_206C_202D_200C_206C_200D_200E_206C_202D_202D_206D_202B_200E_200E_206F_200D_200B_206F_206D_202A_200D_202E_200E_206F_206E_202C_200F_200D_202B_202C_202C_200D_200C_200E_206A_202A_200B_200D_202E(); - _003C_003Ec._200F_200B_200C_206E_200B_206A_200B_202E_200D_200E_202D_200C_200D_202D_206F_206D_200E_206B_200E_206E_200E_200F_206F_206F_206D_200F_206A_206E_202D_202E_200E_206F_206A_200C_202C_206D_200E_202C_206E_200F_202E(); - } - catch (Exception) - { - } - }, cancellationToken); - ServiceCollection serviceCollection = _202B_206D_202B_202D_206D_200B_200F_206B_206E_200B_200C_206C_202C_202B_202E_200C_206A_202C_206A_206E_200B_202A_202D_200F_206E_206F_202B_206B_206E_202C_202D_202D_202B_202E_206E_202D_200D_200E_200E_202C_202E(); - _200C_206D_200D_202E_200C_202A_200E_206C_200B_200C_206F_202C_202C_206A_200E_202E_202B_200D_202C_200B_206B_200E_202E_200C_200F_202C_202A_200D_202D_202D_200B_206B_206D_206E_202D_202E_200C_200E_200D_206E_202E((IServiceCollection)serviceCollection, (Action<ILoggingBuilder>)delegate(ILoggingBuilder builder) - { - QuestionablePlugin._200E_206D_206C_202E_206B_200D_206E_200E_206B_206E_206D_202D_200B_200D_206F_200F_200E_206E_202E_206F_202D_200F_206C_200E_200E_206B_202B_206F_206D_206E_200E_206B_202A_200D_200D_202D_202D_202D_200E_200D_202E(QuestionablePlugin._206B_202C_206A_206D_200B_200B_202D_200D_206F_202C_202C_200F_206B_202A_202B_206E_202D_206C_206D_202E_200E_202A_202E_200E_202C_202B_206E_202E_202A_200E_202B_200F_206C_202D_202E_200E_206D_202C_200F_202E(QuestionablePlugin._202C_202C_206F_206A_202E_200C_206C_200E_202D_200C_200E_200F_206E_200D_206B_200E_206A_202C_200F_200E_200D_206C_200C_202C_202A_206F_200E_206E_206C_206C_206D_202A_200D_202C_202C_200E_206D_200F_206E_206D_202E(builder, LogLevel.Trace)), (ILoggerProvider)QuestionablePlugin._206C_200C_202E_202B_200B_206E_202E_202A_202A_206F_206B_200C_206E_206A_200E_202B_206F_206B_200F_206C_200C_206D_200B_206D_206E_202A_200D_200E_202D_206D_206E_202D_200E_206C_202E_206E_206E_206F_206E_202E(CS_0024_003C_003E8__locals28._pluginLog, (Func<string, string>)((string t) => (t == null) ? null : _003C_003Ec._202E_206B_202D_206A_206B_206D_200C_202B_200D_206A_202C_206D_202A_200B_202B_206A_206A_202C_202D_202C_206D_202B_202D_206B_206E_200F_206D_206A_200B_200C_206C_200F_206D_202E_206E_200C_202D_200D_206A_202A_202E(t, _003C_003Ec._200C_200D_202A_202A_202D_206C_202D_200D_202A_200E_206E_206F_206A_202A_206A_200D_206E_206E_202A_200B_202A_206D_200F_200C_202E_202E_206E_206D_200B_202B_202E_200D_206D_206E_206A_202C_206F_202B_206A_200D_202E(t, '.') + 1)))); - }); - serviceCollection.AddSingleton(CS_0024_003C_003E8__locals28._pluginInterface); - serviceCollection.AddSingleton(CS_0024_003C_003E8__locals28._clientState); - serviceCollection.AddSingleton(CS_0024_003C_003E8__locals28._targetManager); - serviceCollection.AddSingleton(CS_0024_003C_003E8__locals28._framework); - serviceCollection.AddSingleton(CS_0024_003C_003E8__locals28._gameGui); - serviceCollection.AddSingleton(CS_0024_003C_003E8__locals28._dataManager); - serviceCollection.AddSingleton(CS_0024_003C_003E8__locals28._sigScanner); - serviceCollection.AddSingleton(CS_0024_003C_003E8__locals28._objectTable); - serviceCollection.AddSingleton(CS_0024_003C_003E8__locals28._pluginLog); - serviceCollection.AddSingleton(CS_0024_003C_003E8__locals28._condition); - serviceCollection.AddSingleton(CS_0024_003C_003E8__locals28._chatGui); - serviceCollection.AddSingleton(CS_0024_003C_003E8__locals28._commandManager); - serviceCollection.AddSingleton(CS_0024_003C_003E8__locals28._addonLifecycle); - serviceCollection.AddSingleton(CS_0024_003C_003E8__locals28._keyState); - serviceCollection.AddSingleton(CS_0024_003C_003E8__locals28._contextMenu); - serviceCollection.AddSingleton(CS_0024_003C_003E8__locals28._toastGui); - serviceCollection.AddSingleton(CS_0024_003C_003E8__locals28._gameInteropProvider); - serviceCollection.AddSingleton(CS_0024_003C_003E8__locals28._aetheryteList); - serviceCollection.AddSingleton(CS_0024_003C_003E8__locals28._gameConfig); - serviceCollection.AddSingleton(CS_0024_003C_003E8__locals28._textureProvider); - serviceCollection.AddSingleton(_200B_206C_206E_200E_202B_202D_200D_202A_202C_202C_202B_202D_202E_202D_200C_202D_206D_206D_200B_202C_206E_206A_206D_206A_200C_200D_200E_200B_206A_200D_206A_202D_202E_202C_206F_200C_206D_206F_200C_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196))); - Configuration configuration = ((Configuration)_202B_202C_202C_200B_200F_202A_200D_200E_206D_202A_202E_206E_200B_202E_202A_200C_202D_202B_202E_206D_206A_200B_202B_206C_206D_200D_206A_206C_200B_206C_200B_200E_206B_200E_206C_202B_200D_206E_200F_206F_202E(CS_0024_003C_003E8__locals28._pluginInterface)) ?? new Configuration(); - bool flag = configuration.Version != 3; - if (flag) - { - CS_0024_003C_003E8__locals28.BackupConfig(configuration.Version); - configuration.Version = 3; - } - if (ConfigMigration.Run(configuration) || flag) - { - _200C_202E_202B_206F_202D_200F_206C_206E_200C_206A_202C_206F_200C_202B_200E_200F_200D_206F_206D_200B_206A_200D_200F_202B_206C_202D_202A_206C_206C_206E_206C_202D_206E_202A_202B_202B_206E_202C_202E_200D_202E(CS_0024_003C_003E8__locals28._pluginInterface, (IPluginConfiguration)configuration); - } - serviceCollection.AddSingleton(configuration); - AddBasicFunctionsAndData(serviceCollection); - AddTaskFactories(serviceCollection); - AddControllers(serviceCollection); - AddWindows(serviceCollection); - AddQuestValidators(serviceCollection); - serviceCollection.AddSingleton<CommandHandler>(); - serviceCollection.AddSingleton<DalamudInitializer>(); - _003CproviderStopwatch_003E5__3 = _206D_200F_200F_202E_206D_202C_206F_206B_202B_202D_200F_200E_202B_200F_202D_200B_206C_202B_206B_200D_206C_202E_200F_200D_202E_202C_200F_206D_200C_202E_200B_200D_202E_206C_202B_206B_206B_202E_202A_206C_202E(); - CS_0024_003C_003E8__locals28._serviceProvider = _206A_206D_202A_202A_200F_206B_206A_200C_202D_200E_206F_202A_200F_202B_202C_202E_200B_202D_202C_206F_202B_202A_202A_200F_202D_200B_206F_200D_200B_206F_202E_200E_202A_200B_206D_200F_206E_206F_200F_206E_202E((IServiceCollection)serviceCollection); - _202B_206D_200E_202A_202D_206C_202A_200C_202E_206F_202A_200E_206D_206F_200D_206D_200D_200C_200F_206E_202B_200E_202A_202C_202C_206A_200D_206C_206C_202C_206E_200C_202B_206E_202B_206C_202E_200F_202E_200C_202E(_003CproviderStopwatch_003E5__3); - awaiter = _200E_206D_206B_206E_206A_202C_202A_206B_202A_206A_202E_206D_206A_200E_202E_202D_206F_200E_202E_206A_202A_200C_200C_202A_202E_206B_206D_206E_200C_202C_200E_206A_202B_200B_200B_206A_200C_206C_206F_206C_202E(_200D_202D_206A_200B_206B_200E_200C_200C_206F_206F_202B_206B_202A_202D_202B_206A_206A_202C_206A_206E_200C_200F_202B_206C_202E_202B_202E_206F_206C_202A_206C_206E_200C_200D_200F_200B_200B_206B_206C_200E_202E((System.Action)delegate - { - Initialize(CS_0024_003C_003E8__locals28._serviceProvider); - }, cancellationToken)); - if (!awaiter.IsCompleted) - { - num = (_003C_003E1__state = 0); - _003C_003Eu__1 = awaiter; - _003C_003Et__builder.AwaitUnsafeOnCompleted(ref awaiter, ref this); - return; - } - } - else - { - awaiter = _003C_003Eu__1; - _003C_003Eu__1 = default(TaskAwaiter); - num = (_003C_003E1__state = -1); - } - awaiter.GetResult(); - _206E_206B_200E_202E_200B_202A_200E_200F_200F_202A_200D_202B_202B_202B_202E_206E_206B_202D_206D_200C_202C_200D_206F_206D_206B_200B_206F_200E_206F_206D_202D_206A_206B_206E_202C_206C_202A_202C_202A_202A_202E((Microsoft.Extensions.Logging.ILogger)CS_0024_003C_003E8__locals28._serviceProvider.GetRequiredService<ILogger<QuestionablePlugin>>(), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-448093395), new object[6] - { - _202E_206B_202C_200D_200B_202D_206B_202D_206D_206B_202A_206C_200D_202A_202A_206D_200F_200C_206A_200E_202D_200B_200C_200C_200D_206B_202D_206F_202C_200F_206A_202C_202C_202B_206A_206D_206F_206B_202D_206F_202E(_003CtotalStopwatch_003E5__2), - _202E_206B_202C_200D_200B_202D_206B_202D_206D_206B_202A_206C_200D_202A_202A_206D_200F_200C_206A_200E_202D_200B_200C_200C_200D_206B_202D_206F_202C_200F_206A_202C_202C_202B_206A_206D_206F_206B_202D_206F_202E(_003CproviderStopwatch_003E5__3), - DecodeMs(() => _003C_003Ec._200B_206D_202E_206A_206F_206A_202D_202C_202C_206E_202E_206A_206D_200B_206A_206C_200E_206F_202C_200E_206F_202B_202C_202E_206A_206F_206D_200B_202E_206A_206A_202A_200E_202C_202C_200D_200F_200D_206D_200D_202E()), - DecodeMs(() => _003C_003Ec._202D_200D_206F_202A_202D_200E_206D_202A_202C_206F_206E_200D_200B_206E_206A_202D_206A_200D_202E_202E_200D_200C_200C_202E_202E_202C_200F_202E_206C_202C_206A_202E_202B_200F_206B_206A_200C_206A_206A_200D_202E()), - DecodeMs(() => _003C_003Ec._202B_200F_202E_202E_202B_206C_202D_206E_206F_200D_206B_200D_200E_206F_206D_200F_206C_200C_200D_202C_206E_202E_206D_202E_206C_206C_206F_206C_206E_202C_200C_206A_206B_200E_200B_200C_202E_202A_202B_200C_202E()), - DecodeMs(() => _003C_003Ec._206F_200D_202B_202A_206C_206D_200C_200C_202E_202D_206A_202C_200F_206B_200D_206B_202E_202E_202B_202E_206B_202B_200B_202D_202E_202B_200C_202A_206C_200C_206A_202B_206D_202B_206E_202E_202A_202B_202D_206B_202E()) - }); - _003CtotalStopwatch_003E5__2 = null; - _003CproviderStopwatch_003E5__3 = null; - } - catch (Exception) - { - _200D_200D_200D_202B_202D_206A_200F_200B_200E_202D_202C_206A_202B_202B_206E_206C_202E_206E_200C_200B_200B_206B_202C_206F_206B_200D_206D_202B_200F_200C_206C_200C_202E_202A_200E_202B_206E_206E_200C_206A_202E(CS_0024_003C_003E8__locals28._chatGui, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1159703040), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)null); - throw; - } - } - catch (Exception exception) - { - _003C_003E1__state = -2; - _003C_003Et__builder.SetException(exception); - return; - } - _003C_003E1__state = -2; - _003C_003Et__builder.SetResult(); - } - - void IAsyncStateMachine.MoveNext() - { - //ILSpy generated this explicit interface implementation from .override directive in MoveNext - this.MoveNext(); - } - - [DebuggerHidden] - private void SetStateMachine(IAsyncStateMachine stateMachine) - { - _003C_003Et__builder.SetStateMachine(stateMachine); - } - - void IAsyncStateMachine.SetStateMachine(IAsyncStateMachine stateMachine) - { - //ILSpy generated this explicit interface implementation from .override directive in SetStateMachine - this.SetStateMachine(stateMachine); - } - - static Stopwatch _206D_200F_200F_202E_206D_202C_206F_206B_202B_202D_200F_200E_202B_200F_202D_200B_206C_202B_206B_200D_206C_202E_200F_200D_202E_202C_200F_206D_200C_202E_200B_200D_202E_206C_202B_206B_206B_202E_202A_206C_202E() - { - return Stopwatch.StartNew(); - } - - static Task _200D_202D_206A_200B_206B_200E_200C_200C_206F_206F_202B_206B_202A_202D_202B_206A_206A_202C_206A_206E_200C_200F_202B_206C_202E_202B_202E_206F_206C_202A_206C_206E_200C_200D_200F_200B_200B_206B_206C_200E_202E(System.Action P_0, CancellationToken P_1) - { - return Task.Run(P_0, P_1); - } - - static ServiceCollection _202B_206D_202B_202D_206D_200B_200F_206B_206E_200B_200C_206C_202C_202B_202E_200C_206A_202C_206A_206E_200B_202A_202D_200F_206E_206F_202B_206B_206E_202C_202D_202D_202B_202E_206E_202D_200D_200E_200E_202C_202E() - { - return new ServiceCollection(); - } - - static IServiceCollection _200C_206D_200D_202E_200C_202A_200E_206C_200B_200C_206F_202C_202C_206A_200E_202E_202B_200D_202C_200B_206B_200E_202E_200C_200F_202C_202A_200D_202D_202D_200B_206B_206D_206E_202D_202E_200C_200E_200D_206E_202E(IServiceCollection P_0, Action<ILoggingBuilder> P_1) - { - return P_0.AddLogging(P_1); - } - - static WindowSystem _200B_206C_206E_200E_202B_202D_200D_202A_202C_202C_202B_202D_202E_202D_200C_202D_206D_206D_200B_202C_206E_206A_206D_206A_200C_200D_200E_200B_206A_200D_206A_202D_202E_202C_206F_200C_206D_206F_200C_202E(string P_0) - { - return new WindowSystem(P_0); - } - - static IPluginConfiguration _202B_202C_202C_200B_200F_202A_200D_200E_206D_202A_202E_206E_200B_202E_202A_200C_202D_202B_202E_206D_206A_200B_202B_206C_206D_200D_206A_206C_200B_206C_200B_200E_206B_200E_206C_202B_200D_206E_200F_206F_202E(IDalamudPluginInterface P_0) - { - return P_0.GetPluginConfig(); - } - - static void _200C_202E_202B_206F_202D_200F_206C_206E_200C_206A_202C_206F_200C_202B_200E_200F_200D_206F_206D_200B_206A_200D_200F_202B_206C_202D_202A_206C_206C_206E_206C_202D_206E_202A_202B_202B_206E_202C_202E_200D_202E(IDalamudPluginInterface P_0, IPluginConfiguration P_1) - { - P_0.SavePluginConfig(P_1); - } - - static ServiceProvider _206A_206D_202A_202A_200F_206B_206A_200C_202D_200E_206F_202A_200F_202B_202C_202E_200B_202D_202C_206F_202B_202A_202A_200F_202D_200B_206F_200D_200B_206F_202E_200E_202A_200B_206D_200F_206E_206F_200F_206E_202E(IServiceCollection P_0) - { - return P_0.BuildServiceProvider(); - } - - static void _202B_206D_200E_202A_202D_206C_202A_200C_202E_206F_202A_200E_206D_206F_200D_206D_200D_200C_200F_206E_202B_200E_202A_202C_202C_206A_200D_206C_206C_202C_206E_200C_202B_206E_202B_206C_202E_200F_202E_200C_202E(Stopwatch P_0) - { - P_0.Stop(); - } - - static TaskAwaiter _200E_206D_206B_206E_206A_202C_202A_206B_202A_206A_202E_206D_206A_200E_202E_202D_206F_200E_202E_206A_202A_200C_200C_202A_202E_206B_206D_206E_200C_202C_200E_206A_202B_200B_200B_206A_200C_206C_206F_206C_202E(Task P_0) - { - return P_0.GetAwaiter(); - } - - static long _202E_206B_202C_200D_200B_202D_206B_202D_206D_206B_202A_206C_200D_202A_202A_206D_200F_200C_206A_200E_202D_200B_200C_200C_200D_206B_202D_206F_202C_200F_206A_202C_202C_202B_206A_206D_206F_206B_202D_206F_202E(Stopwatch P_0) - { - return P_0.ElapsedMilliseconds; - } - - static void _206E_206B_200E_202E_200B_202A_200E_200F_200F_202A_200D_202B_202B_202B_202E_206E_206B_202D_206D_200C_202C_200D_206F_206D_206B_200B_206F_200E_206F_206D_202D_206A_206B_206E_202C_206C_202A_202C_202A_202A_202E(Microsoft.Extensions.Logging.ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _200D_200D_200D_202B_202D_206A_200F_200B_200E_202D_202C_206A_202B_202B_206E_206C_202E_206E_200C_200B_200B_206B_202C_206F_206B_200D_206D_202B_200F_200C_206C_200C_202E_202A_200E_202B_206E_206E_200C_206A_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3) - { - P_0.PrintError(P_1, P_2, P_3); - } - } - private ServiceProvider? _serviceProvider; private readonly IDalamudPluginInterface _pluginInterface; @@ -694,11 +98,10 @@ public sealed class QuestionablePlugin : IAsyncDalamudPlugin, IAsyncDisposable private readonly ITextureProvider _textureProvider; - [MethodImpl(MethodImplOptions.NoInlining)] public QuestionablePlugin(IDalamudPluginInterface pluginInterface, IClientState clientState, ITargetManager targetManager, IFramework framework, IGameGui gameGui, IDataManager dataManager, ISigScanner sigScanner, IObjectTable objectTable, IPluginLog pluginLog, ICondition condition, IChatGui chatGui, ICommandManager commandManager, IAddonLifecycle addonLifecycle, IKeyState keyState, IContextMenu contextMenu, IToastGui toastGui, IGameInteropProvider gameInteropProvider, IAetheryteList aetheryteList, IGameConfig gameConfig, ITextureProvider textureProvider) { - _206C_200F_206E_200B_200C_200B_206E_200C_206D_202E_200C_200E_200B_202C_202C_206C_206B_202B_206E_206A_206F_200C_206B_206B_202D_202B_200B_200C_202C_200B_206C_206F_202A_206B_206B_200D_202D_206E_206E_200F_202E((object)pluginInterface, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1455256372)); - _206C_200F_206E_200B_200C_200B_206E_200C_206D_202E_200C_200E_200B_202C_202C_206C_206B_202B_206E_206A_206F_200C_206B_206B_202D_202B_200B_200C_202C_200B_206C_206F_202A_206B_206B_200D_202D_206E_206E_200F_202E((object)chatGui, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1831268324)); + ArgumentNullException.ThrowIfNull(pluginInterface, "pluginInterface"); + ArgumentNullException.ThrowIfNull(chatGui, "chatGui"); _pluginInterface = pluginInterface; _clientState = clientState; _targetManager = targetManager; @@ -725,24 +128,24 @@ public sealed class QuestionablePlugin : IAsyncDalamudPlugin, IAsyncDisposable { try { - Stopwatch totalStopwatch = _003CLoadAsync_003Ed__22._206D_200F_200F_202E_206D_202C_206F_206B_202B_202D_200F_200E_202B_200F_202D_200B_206C_202B_206B_200D_206C_202E_200F_200D_202E_202C_200F_206D_200C_202E_200B_200D_202E_206C_202B_206B_206B_202E_202A_206C_202E(); - _003CLoadAsync_003Ed__22._200D_202D_206A_200B_206B_200E_200C_200C_206F_206F_202B_206B_202A_202D_202B_206A_206A_202C_206A_206E_200C_200F_202B_206C_202E_202B_202E_206F_206C_202A_206C_206E_200C_200D_200F_200B_200B_206B_206C_200E_202E((System.Action)delegate + Stopwatch totalStopwatch = Stopwatch.StartNew(); + Task.Run(delegate { try { - _003C_003Ec._206D_200F_206A_206E_202A_206D_202E_206A_202E_206F_202D_200E_202B_206B_202A_202B_200F_200C_202D_206A_206D_206C_200C_200B_200E_200B_206E_200D_202D_200C_200C_200E_200C_206C_206C_206B_206A_200D_202E_202C_202E(); - _003C_003Ec._200F_202D_200F_206B_206C_202C_206D_200C_206F_200E_202D_202C_202D_202E_202D_206B_200C_206B_206D_206E_206E_200D_206C_200F_206F_206D_206B_200D_202A_202B_202D_202D_202E_200F_200C_206B_206A_206E_202A_206D_202E(); - _003C_003Ec._202B_206B_206C_202D_200C_206C_200D_200E_206C_202D_202D_206D_202B_200E_200E_206F_200D_200B_206F_206D_202A_200D_202E_200E_206F_206E_202C_200F_200D_202B_202C_202C_200D_200C_200E_206A_202A_200B_200D_202E(); - _003C_003Ec._200F_200B_200C_206E_200B_206A_200B_202E_200D_200E_202D_200C_200D_202D_206F_206D_200E_206B_200E_206E_200E_200F_206F_206F_206D_200F_206A_206E_202D_202E_200E_206F_206A_200C_202C_206D_200E_202C_206E_200F_202E(); + AssemblyQuestLoader.GetQuests(); + AssemblyGatheringLocationLoader.GetLocations(); + AssemblyFateDefinitionLoader.GetDefinitions(); + AssemblySeasonalDutyDefinitionLoader.GetDefinitions(); } catch (Exception) { } }, cancellationToken); - ServiceCollection serviceCollection = _003CLoadAsync_003Ed__22._202B_206D_202B_202D_206D_200B_200F_206B_206E_200B_200C_206C_202C_202B_202E_200C_206A_202C_206A_206E_200B_202A_202D_200F_206E_206F_202B_206B_206E_202C_202D_202D_202B_202E_206E_202D_200D_200E_200E_202C_202E(); - _003CLoadAsync_003Ed__22._200C_206D_200D_202E_200C_202A_200E_206C_200B_200C_206F_202C_202C_206A_200E_202E_202B_200D_202C_200B_206B_200E_202E_200C_200F_202C_202A_200D_202D_202D_200B_206B_206D_206E_202D_202E_200C_200E_200D_206E_202E((IServiceCollection)serviceCollection, (Action<ILoggingBuilder>)delegate(ILoggingBuilder builder) + ServiceCollection serviceCollection = new ServiceCollection(); + serviceCollection.AddLogging(delegate(ILoggingBuilder builder) { - _200E_206D_206C_202E_206B_200D_206E_200E_206B_206E_206D_202D_200B_200D_206F_200F_200E_206E_202E_206F_202D_200F_206C_200E_200E_206B_202B_206F_206D_206E_200E_206B_202A_200D_200D_202D_202D_202D_200E_200D_202E(_206B_202C_206A_206D_200B_200B_202D_200D_206F_202C_202C_200F_206B_202A_202B_206E_202D_206C_206D_202E_200E_202A_202E_200E_202C_202B_206E_202E_202A_200E_202B_200F_206C_202D_202E_200E_206D_202C_200F_202E(_202C_202C_206F_206A_202E_200C_206C_200E_202D_200C_200E_200F_206E_200D_206B_200E_206A_202C_200F_200E_200D_206C_200C_202C_202A_206F_200E_206E_206C_206C_206D_202A_200D_202C_202C_200E_206D_200F_206E_206D_202E(builder, LogLevel.Trace)), (ILoggerProvider)_206C_200C_202E_202B_200B_206E_202E_202A_202A_206F_206B_200C_206E_206A_200E_202B_206F_206B_200F_206C_200C_206D_200B_206D_206E_202A_200D_200E_202D_206D_206E_202D_200E_206C_202E_206E_206E_206F_206E_202E(_pluginLog, (Func<string, string>)((string t) => (t == null) ? null : _003C_003Ec._202E_206B_202D_206A_206B_206D_200C_202B_200D_206A_202C_206D_202A_200B_202B_206A_206A_202C_202D_202C_206D_202B_202D_206B_206E_200F_206D_206A_200B_200C_206C_200F_206D_202E_206E_200C_202D_200D_206A_202A_202E(t, _003C_003Ec._200C_200D_202A_202A_202D_206C_202D_200D_202A_200E_206E_206F_206A_202A_206A_200D_206E_206E_202A_200B_202A_206D_200F_200C_202E_202E_206E_206D_200B_202B_202E_200D_206D_206E_206A_202C_206F_202B_206A_200D_202E(t, '.') + 1)))); + builder.SetMinimumLevel(LogLevel.Trace).ClearProviders().AddProvider(new DalamudLoggerProvider(_pluginLog, (string t) => t?.Substring(t.LastIndexOf('.') + 1))); }); serviceCollection.AddSingleton(_pluginInterface); serviceCollection.AddSingleton(_clientState); @@ -764,8 +167,8 @@ public sealed class QuestionablePlugin : IAsyncDalamudPlugin, IAsyncDisposable serviceCollection.AddSingleton(_aetheryteList); serviceCollection.AddSingleton(_gameConfig); serviceCollection.AddSingleton(_textureProvider); - serviceCollection.AddSingleton(_003CLoadAsync_003Ed__22._200B_206C_206E_200E_202B_202D_200D_202A_202C_202C_202B_202D_202E_202D_200C_202D_206D_206D_200B_202C_206E_206A_206D_206A_200C_200D_200E_200B_206A_200D_206A_202D_202E_202C_206F_200C_206D_206F_200C_202E(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196))); - Configuration configuration = ((Configuration)_003CLoadAsync_003Ed__22._202B_202C_202C_200B_200F_202A_200D_200E_206D_202A_202E_206E_200B_202E_202A_200C_202D_202B_202E_206D_206A_200B_202B_206C_206D_200D_206A_206C_200B_206C_200B_200E_206B_200E_206C_202B_200D_206E_200F_206F_202E(_pluginInterface)) ?? new Configuration(); + serviceCollection.AddSingleton(new WindowSystem("Questionable")); + Configuration configuration = ((Configuration)_pluginInterface.GetPluginConfig()) ?? new Configuration(); bool flag = configuration.Version != 3; if (flag) { @@ -774,7 +177,7 @@ public sealed class QuestionablePlugin : IAsyncDalamudPlugin, IAsyncDisposable } if (ConfigMigration.Run(configuration) || flag) { - _003CLoadAsync_003Ed__22._200C_202E_202B_206F_202D_200F_206C_206E_200C_206A_202C_206F_200C_202B_200E_200F_200D_206F_206D_200B_206A_200D_200F_202B_206C_202D_202A_206C_206C_206E_206C_202D_206E_202A_202B_202B_206E_202C_202E_200D_202E(_pluginInterface, (IPluginConfiguration)configuration); + _pluginInterface.SavePluginConfig(configuration); } serviceCollection.AddSingleton(configuration); AddBasicFunctionsAndData(serviceCollection); @@ -784,62 +187,34 @@ public sealed class QuestionablePlugin : IAsyncDalamudPlugin, IAsyncDisposable AddQuestValidators(serviceCollection); serviceCollection.AddSingleton<CommandHandler>(); serviceCollection.AddSingleton<DalamudInitializer>(); - Stopwatch providerStopwatch = _003CLoadAsync_003Ed__22._206D_200F_200F_202E_206D_202C_206F_206B_202B_202D_200F_200E_202B_200F_202D_200B_206C_202B_206B_200D_206C_202E_200F_200D_202E_202C_200F_206D_200C_202E_200B_200D_202E_206C_202B_206B_206B_202E_202A_206C_202E(); - _serviceProvider = _003CLoadAsync_003Ed__22._206A_206D_202A_202A_200F_206B_206A_200C_202D_200E_206F_202A_200F_202B_202C_202E_200B_202D_202C_206F_202B_202A_202A_200F_202D_200B_206F_200D_200B_206F_202E_200E_202A_200B_206D_200F_206E_206F_200F_206E_202E((IServiceCollection)serviceCollection); - _003CLoadAsync_003Ed__22._202B_206D_200E_202A_202D_206C_202A_200C_202E_206F_202A_200E_206D_206F_200D_206D_200D_200C_200F_206E_202B_200E_202A_202C_202C_206A_200D_206C_206C_202C_206E_200C_202B_206E_202B_206C_202E_200F_202E_200C_202E(providerStopwatch); - TaskAwaiter taskAwaiter = _003CLoadAsync_003Ed__22._200E_206D_206B_206E_206A_202C_202A_206B_202A_206A_202E_206D_206A_200E_202E_202D_206F_200E_202E_206A_202A_200C_200C_202A_202E_206B_206D_206E_200C_202C_200E_206A_202B_200B_200B_206A_200C_206C_206F_206C_202E(_003CLoadAsync_003Ed__22._200D_202D_206A_200B_206B_200E_200C_200C_206F_206F_202B_206B_202A_202D_202B_206A_206A_202C_206A_206E_200C_200F_202B_206C_202E_202B_202E_206F_206C_202A_206C_206E_200C_200D_200F_200B_200B_206B_206C_200E_202E((System.Action)delegate + Stopwatch providerStopwatch = Stopwatch.StartNew(); + _serviceProvider = serviceCollection.BuildServiceProvider(); + providerStopwatch.Stop(); + await Task.Run(delegate { Initialize(_serviceProvider); - }, cancellationToken)); - if (!taskAwaiter.IsCompleted) - { - await taskAwaiter; - TaskAwaiter taskAwaiter2 = default(TaskAwaiter); - taskAwaiter = taskAwaiter2; - } - taskAwaiter.GetResult(); - _003CLoadAsync_003Ed__22._206E_206B_200E_202E_200B_202A_200E_200F_200F_202A_200D_202B_202B_202B_202E_206E_206B_202D_206D_200C_202C_200D_206F_206D_206B_200B_206F_200E_206F_206D_202D_206A_206B_206E_202C_206C_202A_202C_202A_202A_202E((Microsoft.Extensions.Logging.ILogger)_serviceProvider.GetRequiredService<ILogger<QuestionablePlugin>>(), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-448093395), new object[6] - { - _003CLoadAsync_003Ed__22._202E_206B_202C_200D_200B_202D_206B_202D_206D_206B_202A_206C_200D_202A_202A_206D_200F_200C_206A_200E_202D_200B_200C_200C_200D_206B_202D_206F_202C_200F_206A_202C_202C_202B_206A_206D_206F_206B_202D_206F_202E(totalStopwatch), - _003CLoadAsync_003Ed__22._202E_206B_202C_200D_200B_202D_206B_202D_206D_206B_202A_206C_200D_202A_202A_206D_200F_200C_206A_200E_202D_200B_200C_200C_200D_206B_202D_206F_202C_200F_206A_202C_202C_202B_206A_206D_206F_206B_202D_206F_202E(providerStopwatch), - DecodeMs(() => _003C_003Ec._200B_206D_202E_206A_206F_206A_202D_202C_202C_206E_202E_206A_206D_200B_206A_206C_200E_206F_202C_200E_206F_202B_202C_202E_206A_206F_206D_200B_202E_206A_206A_202A_200E_202C_202C_200D_200F_200D_206D_200D_202E()), - DecodeMs(() => _003C_003Ec._202D_200D_206F_202A_202D_200E_206D_202A_202C_206F_206E_200D_200B_206E_206A_202D_206A_200D_202E_202E_200D_200C_200C_202E_202E_202C_200F_202E_206C_202C_206A_202E_202B_200F_206B_206A_200C_206A_206A_200D_202E()), - DecodeMs(() => _003C_003Ec._202B_200F_202E_202E_202B_206C_202D_206E_206F_200D_206B_200D_200E_206F_206D_200F_206C_200C_200D_202C_206E_202E_206D_202E_206C_206C_206F_206C_206E_202C_200C_206A_206B_200E_200B_200C_202E_202A_202B_200C_202E()), - DecodeMs(() => _003C_003Ec._206F_200D_202B_202A_206C_206D_200C_200C_202E_202D_206A_202C_200F_206B_200D_206B_202E_202E_202B_202E_206B_202B_200B_202D_202E_202B_200C_202A_206C_200C_206A_202B_206D_202B_206E_202E_202A_202B_202D_206B_202E()) - }); + }, cancellationToken); + _serviceProvider.GetRequiredService<ILogger<QuestionablePlugin>>().LogDebug("Load complete in {Total}ms (provider build {Provider}ms); bundle decode off critical path: quest {Quest}ms, gathering {Gathering}ms, fate {Fate}ms, seasonal {Seasonal}ms", totalStopwatch.ElapsedMilliseconds, providerStopwatch.ElapsedMilliseconds, DecodeMs(() => AssemblyQuestLoader.DecodeDuration), DecodeMs(() => AssemblyGatheringLocationLoader.DecodeDuration), DecodeMs(() => AssemblyFateDefinitionLoader.DecodeDuration), DecodeMs(() => AssemblySeasonalDutyDefinitionLoader.DecodeDuration)); } catch (Exception) { - _003CLoadAsync_003Ed__22._200D_200D_200D_202B_202D_206A_200F_200B_200E_202D_202C_206A_202B_202B_206E_206C_202E_206E_200C_200B_200B_206B_202C_206F_206B_200D_206D_202B_200F_200C_206C_200C_202E_202A_200E_202B_206E_206E_200C_206A_202E(_chatGui, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1159703040), global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(85756196), (ushort?)null); + _chatGui.PrintError("Unable to load plugin, check /xllog for details", "Questionable"); throw; } } - Task IAsyncDalamudPlugin.LoadAsync(CancellationToken cancellationToken) - { - //ILSpy generated this explicit interface implementation from .override directive in LoadAsync - return this.LoadAsync(cancellationToken); - } - - [MethodImpl(MethodImplOptions.NoInlining)] private void BackupConfig(int oldVersion) { try { - if (_202B_200B_202C_202D_206F_202A_202B_200E_200D_202B_202E_206C_206D_202A_200E_206D_206F_206E_202E_206A_206F_206B_206F_200D_202E_206A_200C_206F_202C_200C_206D_202C_206C_206B_206F_206A_206B_202C_202C_200F_202E((FileSystemInfo)_202B_200E_200B_206E_200F_200E_200E_206E_206D_206B_200C_206F_202B_202E_202E_200F_200B_206A_202C_206F_200D_206A_202B_206E_202C_206F_206D_206B_202E_200C_202D_200B_202E_200C_202C_200C_202B_206F_200B_206B_202E(_pluginInterface))) + if (_pluginInterface.ConfigFile.Exists) { - FileInfo fileInfo = _202B_200E_200B_206E_200F_200E_200E_206E_206D_206B_200C_206F_202B_202E_202E_200F_200B_206A_202C_206F_200D_206A_202B_206E_202C_206F_206D_206B_202E_200C_202D_200B_202E_200C_202C_200C_202B_206F_200B_206B_202E(_pluginInterface); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(6, 2); - defaultInterpolatedStringHandler.AppendFormatted(_206D_206B_206E_200D_200E_206A_206C_202D_202B_202E_206F_200E_202E_200C_202C_206D_206B_202C_206D_206A_202B_206B_200F_206C_206C_200F_200C_206A_206B_206B_202C_200D_206F_200E_200B_200B_200E_200D_206D_202C_202E((FileSystemInfo)_202B_200E_200B_206E_200F_200E_200E_206E_206D_206B_200C_206F_202B_202E_202E_200F_200B_206A_202C_206F_200D_206A_202B_206E_202C_206F_206D_206B_202E_200C_202D_200B_202E_200C_202C_200C_202B_206F_200B_206B_202E(_pluginInterface))); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-957700640)); - defaultInterpolatedStringHandler.AppendFormatted(oldVersion); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1701004743)); - _202E_202E_200F_200B_200F_200E_200D_206C_200C_200E_200F_200D_200F_206A_200B_206E_202C_206C_202C_200E_200E_202B_206D_202A_200F_206C_206F_206B_202B_202B_200F_206E_200F_200C_202A_206E_202B_206D_206C_206D_202E(fileInfo, defaultInterpolatedStringHandler.ToStringAndClear(), true); + _pluginInterface.ConfigFile.CopyTo($"{_pluginInterface.ConfigFile.FullName}.v{oldVersion}.bak", overwrite: true); } } - catch (Exception ex) + catch (Exception exception) { - _202D_200C_202B_200D_202C_206E_202E_206E_206B_206D_202B_202A_206E_200E_206A_200E_202E_202D_200D_202D_202C_202A_200C_200D_202C_206A_206A_202C_206E_200F_202B_200E_206D_206C_206B_206A_206C_202E_202E_206B_202E(_pluginLog, ex, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1234113757), Array.Empty<object>()); + _pluginLog.Warning(exception, "Unable to back up configuration file"); } } @@ -884,18 +259,18 @@ public sealed class QuestionablePlugin : IAsyncDalamudPlugin, IAsyncDisposable serviceCollection.AddSingleton<NotificationService>(); serviceCollection.AddSingleton<GearStatsCalculator>(); serviceCollection.AddSingleton<BestItemFinder>(); - serviceCollection.AddSingleton([MethodImpl(MethodImplOptions.NoInlining)] (IServiceProvider sp) => + serviceCollection.AddSingleton(delegate(IServiceProvider sp) { IDalamudPluginInterface requiredService = sp.GetRequiredService<IDalamudPluginInterface>(); - DirectoryInfo directoryInfo = null; - _003C_003Ec._202D_200E_202B_202B_206C_202D_200B_206F_206E_202D_206B_202C_202B_206B_206A_200D_202C_202C_200D_200D_200D_202A_206B_200C_200E_206B_200D_206B_206C_202D_206E_200D_202D_206C_200C_206D_200C_206C_206D_200D_202E(_003C_003Ec._200D_202E_202D_202A_206F_206D_206F_206E_200F_200D_200B_202C_200B_206B_206E_200F_200C_200C_200D_200F_206A_200B_202D_206C_206B_206D_202C_206A_200D_202C_202A_202E_206D_206B_202E_200F_206F_202B_200B_206F_202E(sp.GetRequiredService<IDataManager>())).TryGetValue(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1893535850), out Repository value); - return _003C_003Ec._200C_206E_206F_200F_202E_202A_200C_200F_202D_202A_202A_206A_202D_206D_202D_206C_206F_202C_200E_202A_200F_202E_200C_200D_206E_200E_200E_200F_200F_206D_200F_202B_206B_206D_200B_202A_202C_200C_206B_206E_202E(_003C_003Ec._200C_206D_206F_202A_200F_206A_202E_202C_206C_206F_200D_206A_202D_200B_200D_206A_200D_206F_206C_206D_202B_202E_200B_200C_206B_202C_200C_206A_202D_206B_206E_206C_206F_200F_200E_206C_202C_206A_202B_200D_202E(requiredService), directoryInfo, (value != null) ? _003C_003Ec._206E_206D_206D_202A_200C_202C_200B_202A_200B_202D_200C_200F_202C_206D_202D_206F_200D_200B_200B_202A_206F_202D_202C_206B_202C_206B_202C_202A_202E_200B_206C_206F_202E_202C_202E_200B_206E_202D_206F_202A_202E(value) : null); + DirectoryInfo devSourceDirectory = null; + sp.GetRequiredService<IDataManager>().GameData.Repositories.TryGetValue("ffxiv", out Repository value); + return new SmartNavDataOptions(requiredService.ConfigDirectory, devSourceDirectory, value?.Version); }); serviceCollection.AddSingleton<WarpDataService>(); serviceCollection.AddSingleton<TaxiStandDataService>(); serviceCollection.AddSingleton<ZoneSubRegionService>(); serviceCollection.AddSingleton<TeleportTicketService>(); - serviceCollection.AddSingleton<IZoneBoundarySource, LgbZoneBoundarySource>(); + ((IServiceCollection)serviceCollection).AddSingleton((Func<IServiceProvider, IZoneBoundarySource>)((IServiceProvider sp) => new LgbZoneBoundarySource(sp.GetRequiredService<IDataManager>(), sp.GetRequiredService<ILogger<LgbZoneBoundarySource>>(), sp.GetRequiredService<SmartNavDataOptions>()))); ((IServiceCollection)serviceCollection).AddSingleton((Func<IServiceProvider, ITerritoryInfo>)((IServiceProvider sp) => sp.GetRequiredService<TerritoryData>())); serviceCollection.AddSingleton<IPlayerContext, QuestionablePlayerContext>(); serviceCollection.AddSingleton<CostCalculator>(); @@ -1033,21 +408,24 @@ public sealed class QuestionablePlugin : IAsyncDalamudPlugin, IAsyncDisposable serviceCollection.AddSingleton<CombatController>(); serviceCollection.AddSingleton<GatheringController>(); serviceCollection.AddSingleton<SatisfactionSupplyHelper>(); - serviceCollection.AddSingleton([MethodImpl(MethodImplOptions.NoInlining)] (IServiceProvider sp) => + serviceCollection.AddSingleton(delegate(IServiceProvider sp) { - _003C_003Ec._202D_200E_202B_202B_206C_202D_200B_206F_206E_202D_206B_202C_202B_206B_206A_200D_202C_202C_200D_200D_200D_202A_206B_200C_200E_206B_200D_206B_206C_202D_206E_200D_202D_206C_200C_206D_200C_206C_206D_200D_202E(_003C_003Ec._200D_202E_202D_202A_206F_206D_206F_206E_200F_200D_200B_202C_200B_206B_206E_200F_200C_200C_200D_200F_206A_200B_202D_206C_206B_206D_202C_206A_200D_202C_202A_202E_206D_206B_202E_200F_206F_202B_200B_206F_202E(sp.GetRequiredService<IDataManager>())).TryGetValue(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1502740136), out Repository value); - NpcPositionCacheOptions npcPositionCacheOptions = _003C_003Ec._206F_206C_206C_206F_206B_202D_202E_206C_206B_202A_202C_200F_206D_206D_202D_202E_200D_200C_202C_202D_202C_200B_202B_206A_202E_202B_206E_206A_206E_200D_200E_202B_200C_206B_206B_202D_200D_206A_200F_200D_202E(); - _003C_003Ec._206C_206F_200B_206D_206E_206A_202B_200B_206C_206F_206F_202D_206C_202B_202A_206D_200B_200D_200F_202B_202C_200D_202E_200E_206A_200D_206E_200D_200D_206F_200E_202E_206B_200B_200E_206F_200C_202D_200B_202D_202E(npcPositionCacheOptions, _003C_003Ec._206A_200D_206D_200D_206F_202B_202D_202E_200D_202A_200D_200B_202A_200F_200E_200B_202E_200C_206A_206C_200B_202D_206D_200F_200D_202A_202E_206D_206E_206D_200C_206E_206B_206C_202C_202D_206D_202A_202B_200D_202E((FileSystemInfo)_003C_003Ec._200C_206D_206F_202A_200F_206A_202E_202C_206C_206F_200D_206A_202D_200B_200D_206A_200D_206F_206C_206D_202B_202E_200B_200C_206B_202C_200C_206A_202D_206B_206E_206C_206F_200F_200E_206C_202C_206A_202B_200D_202E(sp.GetRequiredService<IDalamudPluginInterface>()))); - _003C_003Ec._200E_206E_202B_202B_200C_200B_206D_202D_200E_206F_200F_202D_202D_202E_206F_206E_200F_206B_206E_200F_202A_206A_206E_200D_206F_206B_202B_206B_200F_206F_202D_202A_206A_202A_202C_206C_206E_206B_206C_202C_202E(npcPositionCacheOptions, (value != null) ? _003C_003Ec._206E_206D_206D_202A_200C_202C_200B_202A_200B_202D_200C_200F_202C_206D_202D_206F_200D_200B_200B_202A_206F_202D_202C_206B_202C_206B_202C_202A_202E_200B_206C_206F_202E_202C_202E_200B_206E_202D_206F_202A_202E(value) : null); - _003C_003Ec._200C_200E_200E_200F_200B_200E_202D_206D_206E_206E_206E_202D_206F_200C_206C_202C_200E_206A_206F_200B_200D_206F_202A_206A_206A_200D_206D_206B_200B_206F_202D_206C_202E_206F_200D_206D_206B_202E_202B_206B_202E(npcPositionCacheOptions, TimeSpan.FromMilliseconds(10L)); - return npcPositionCacheOptions; + sp.GetRequiredService<IDataManager>().GameData.Repositories.TryGetValue("ffxiv", out Repository value); + return new NpcPositionCacheOptions + { + CacheDirectory = sp.GetRequiredService<IDalamudPluginInterface>().ConfigDirectory.FullName, + GameVersion = value?.Version, + ScanThrottle = TimeSpan.FromMilliseconds(10L) + }; }); serviceCollection.AddSingleton<NpcPositionCache>(); + serviceCollection.AddSingleton<LgbWorkerSupervisor>(); serviceCollection.AddSingleton<NpcPositionCacheWarmer>(); serviceCollection.AddSingleton<VendorResolver>(); serviceCollection.AddSingleton<VendorResolverService>(); serviceCollection.AddSingleton<DeliveryPlannerService>(); serviceCollection.AddSingleton<DeliveryRewardCalculator>(); + serviceCollection.AddSingleton<CustomDeliveryNpcData>(); serviceCollection.AddSingleton<CustomDeliveryController>(); serviceCollection.AddSingleton<FishingController>(); serviceCollection.AddSingleton<FateController>(); @@ -1157,35 +535,33 @@ public sealed class QuestionablePlugin : IAsyncDalamudPlugin, IAsyncDisposable return (long)duration().GetValueOrDefault().TotalMilliseconds; } - [MethodImpl(MethodImplOptions.NoInlining)] private static void Initialize(IServiceProvider serviceProvider) { ILogger<QuestionablePlugin> requiredService = serviceProvider.GetRequiredService<ILogger<QuestionablePlugin>>(); - Stopwatch stopwatch = _202A_202C_206F_200E_202A_202D_200C_202B_206C_206A_202E_200D_202C_202A_200C_206B_202C_206B_202C_206A_200D_206E_202C_202A_200D_206E_206E_200C_206E_200C_206C_200E_202D_206B_206E_202C_202A_206C_206F_206A_202E(); - _202C_202E_202E_200D_202B_206D_200F_200C_202C_200E_206B_206C_206B_206E_206E_202B_200C_200B_206F_206D_200C_200E_202B_206F_200E_202E_206E_206D_202A_200B_202D_200E_200B_206E_206E_206B_206D_200C_202B_206E_202E(serviceProvider.GetRequiredService<NpcPositionCache>()); - InlineArray13<Task> buffer = default(InlineArray13<Task>); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray13<Task>, Task>(ref buffer, 0) = Task.Run(() => serviceProvider.GetRequiredService<QuestData>()); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray13<Task>, Task>(ref buffer, 1) = Task.Run(() => serviceProvider.GetRequiredService<TerritoryData>()); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray13<Task>, Task>(ref buffer, 2) = Task.Run(() => serviceProvider.GetRequiredService<GatheringData>()); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray13<Task>, Task>(ref buffer, 3) = Task.Run(() => serviceProvider.GetRequiredService<AetheryteData>()); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray13<Task>, Task>(ref buffer, 4) = Task.Run(() => serviceProvider.GetRequiredService<AetherCurrentData>()); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray13<Task>, Task>(ref buffer, 5) = Task.Run(() => serviceProvider.GetRequiredService<DutyUnlockData>()); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray13<Task>, Task>(ref buffer, 6) = Task.Run(() => serviceProvider.GetRequiredService<FishingData>()); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray13<Task>, Task>(ref buffer, 7) = Task.Run(() => serviceProvider.GetRequiredService<AlliedSocietyData>()); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray13<Task>, Task>(ref buffer, 8) = Task.Run(() => serviceProvider.GetRequiredService<WarpDataService>()); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray13<Task>, Task>(ref buffer, 9) = Task.Run(() => serviceProvider.GetRequiredService<TaxiStandDataService>()); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray13<Task>, Task>(ref buffer, 10) = Task.Run(() => serviceProvider.GetRequiredService<ZoneSubRegionService>()); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray13<Task>, Task>(ref buffer, 11) = Task.Run(() => _003C_003Ec__DisplayClass30_0._200F_202C_202D_202D_202B_200E_206B_202C_202B_202A_202B_202A_200F_200B_200E_200E_206D_200E_200B_200B_202E_200F_200B_200D_206E_200D_200F_202C_200E_200E_200B_202A_206D_200D_200F_202B_202D_206E_200F_206F_202E(serviceProvider.GetRequiredService<IZoneBoundarySource>())); - global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray13<Task>, Task>(ref buffer, 12) = Task.Run(() => serviceProvider.GetRequiredService<GameStateHelper>()); - _200E_202B_200F_202B_200F_206A_200C_200F_200F_206C_206A_202A_206E_206E_202B_206D_202C_206C_202A_206E_200E_202D_200E_202A_202C_202E_206A_206A_206E_200D_206C_206B_202E_206A_200C_202A_206E_202C_206C_206C_202E(global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<InlineArray13<Task>, Task>(in buffer, 13)); - TimeSpan timeSpan = _200B_206D_206E_206E_202A_202E_202C_206D_202E_206C_206C_206F_206E_206F_206C_200F_200E_206E_200E_200B_200B_200E_202A_200C_206C_200E_200D_206D_206C_200B_206C_200E_206F_206C_200E_200B_200B_200C_202A_200D_202E(stopwatch); - _202B_200C_206A_206E_202D_206A_200E_206F_202D_200F_206E_200C_202B_202E_202E_202C_206B_202D_202C_206F_206E_200C_200D_200E_202E_200F_200D_206E_206D_200D_202D_202E_200B_206E_202E_206E_200B_200E_202C_200C_202E(stopwatch); + Stopwatch stopwatch = Stopwatch.StartNew(); + serviceProvider.GetRequiredService<NpcPositionCache>().TryLoadFromDisk(); + InlineArray12<Task> buffer = default(InlineArray12<Task>); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray12<Task>, Task>(ref buffer, 0) = Task.Run(() => serviceProvider.GetRequiredService<QuestData>()); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray12<Task>, Task>(ref buffer, 1) = Task.Run(() => serviceProvider.GetRequiredService<TerritoryData>()); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray12<Task>, Task>(ref buffer, 2) = Task.Run(() => serviceProvider.GetRequiredService<GatheringData>()); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray12<Task>, Task>(ref buffer, 3) = Task.Run(() => serviceProvider.GetRequiredService<AetheryteData>()); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray12<Task>, Task>(ref buffer, 4) = Task.Run(() => serviceProvider.GetRequiredService<AetherCurrentData>()); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray12<Task>, Task>(ref buffer, 5) = Task.Run(() => serviceProvider.GetRequiredService<DutyUnlockData>()); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray12<Task>, Task>(ref buffer, 6) = Task.Run(() => serviceProvider.GetRequiredService<FishingData>()); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray12<Task>, Task>(ref buffer, 7) = Task.Run(() => serviceProvider.GetRequiredService<AlliedSocietyData>()); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray12<Task>, Task>(ref buffer, 8) = Task.Run(() => serviceProvider.GetRequiredService<WarpDataService>()); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray12<Task>, Task>(ref buffer, 9) = Task.Run(() => serviceProvider.GetRequiredService<TaxiStandDataService>()); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray12<Task>, Task>(ref buffer, 10) = Task.Run(() => serviceProvider.GetRequiredService<ZoneSubRegionService>()); + global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray12<Task>, Task>(ref buffer, 11) = Task.Run(() => serviceProvider.GetRequiredService<GameStateHelper>()); + Task.WaitAll(global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<InlineArray12<Task>, Task>(in buffer, 12)); + TimeSpan elapsed = stopwatch.Elapsed; + stopwatch.Restart(); serviceProvider.GetRequiredService<QuestRegistry>().Reload(); - TimeSpan timeSpan2 = _200B_206D_206E_206E_202A_202E_202C_206D_202E_206C_206C_206F_206E_206F_206C_200F_200E_206E_200E_200B_200B_200E_202A_200C_206C_200E_200D_206D_206C_200B_206C_200E_206F_206C_200E_200B_200B_200C_202A_200D_202E(stopwatch); - _202B_200C_206A_206E_202D_206A_200E_206F_202D_200F_206E_200C_202B_202E_202E_202C_206B_202D_202C_206F_206E_200C_200D_200E_202E_200F_200D_206E_206D_200D_202D_202E_200B_206E_202E_206E_200B_200E_202C_200C_202E(stopwatch); + TimeSpan elapsed2 = stopwatch.Elapsed; + stopwatch.Restart(); serviceProvider.GetRequiredService<GatheringPointRegistry>().Reload(); - TimeSpan timeSpan3 = _200B_206D_206E_206E_202A_202E_202C_206D_202E_206C_206C_206F_206E_206F_206C_200F_200E_206E_200E_200B_200B_200E_202A_200C_206C_200E_200D_206D_206C_200B_206C_200E_206F_206C_200E_200B_200B_200C_202A_200D_202E(stopwatch); - _202B_200C_206A_206E_202D_206A_200E_206F_202D_200F_206E_200C_202B_202E_202E_202C_206B_202D_202C_206F_206E_200C_200D_200E_202E_200F_200D_206E_206D_200D_202D_202E_200B_206E_202E_206E_200B_200E_202C_200C_202E(stopwatch); + TimeSpan elapsed3 = stopwatch.Elapsed; + stopwatch.Restart(); serviceProvider.GetRequiredService<QuestController>().LoadPriorityQuests(); serviceProvider.GetRequiredService<CommandHandler>(); serviceProvider.GetRequiredService<ContextMenuController>(); @@ -1210,114 +586,17 @@ public sealed class QuestionablePlugin : IAsyncDalamudPlugin, IAsyncDisposable ChangelogEntry changelogEntry = ChangelogData.Changelogs.FirstOrDefault(); if (changelogEntry != null && changelogEntry.IsNewVersion(requiredService3.LastViewedChangelogVersion, ChangelogData.Changelogs)) { - _206A_206C_200E_206E_202A_202B_202C_200C_202D_206A_206A_200E_206B_202E_200F_206C_200D_202D_202B_200C_200C_206F_202B_202A_202C_200B_200D_200F_200C_200F_200B_206C_206B_202A_202C_200E_206D_206E_200E_206E_202E((LWindow)requiredService2, true); + requiredService2.IsOpenAndUncollapsed = true; } } - _200B_202A_206D_202C_206C_206A_200E_202C_200D_202D_206B_206B_200F_202B_202E_206B_206E_200F_206F_200B_200D_202A_200B_200F_200C_206F_200F_200F_200F_202E_200F_206B_200B_200D_206D_206A_200D_200B_206F_206C_202E((Microsoft.Extensions.Logging.ILogger)requiredService, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1377998422), new object[4] - { - (long)timeSpan.TotalMilliseconds, - (long)timeSpan2.TotalMilliseconds, - (long)timeSpan3.TotalMilliseconds, - (long)_200B_206D_206E_206E_202A_202E_202C_206D_202E_206C_206C_206F_206E_206F_206C_200F_200E_206E_200E_200B_200B_200E_202A_200C_206C_200E_200D_206D_206C_200B_206C_200E_206F_206C_200E_200B_200B_200C_202A_200D_202E(stopwatch).TotalMilliseconds - }); + requiredService.LogDebug("Initialize phases: data warm-up {Warmup}ms, quest reload {Quest}ms, gathering reload {Gathering}ms, init tail {Tail}ms", (long)elapsed.TotalMilliseconds, (long)elapsed2.TotalMilliseconds, (long)elapsed3.TotalMilliseconds, (long)stopwatch.Elapsed.TotalMilliseconds); } public async ValueTask DisposeAsync() { if (_serviceProvider != null) { - await _003CDisposeAsync_003Ed__31._206D_200F_206B_200F_200D_200F_206E_202C_202D_200F_206C_206C_200D_206E_206A_200D_200F_206F_206C_202A_202D_200F_202C_202E_202E_200B_202E_200C_202D_202B_202E_206C_202B_200E_206F_202E_202A_202A_202D_206C_202E(_serviceProvider); + await _serviceProvider.DisposeAsync(); } } - - ValueTask IAsyncDisposable.DisposeAsync() - { - //ILSpy generated this explicit interface implementation from .override directive in DisposeAsync - return this.DisposeAsync(); - } - - static void _206C_200F_206E_200B_200C_200B_206E_200C_206D_202E_200C_200E_200B_202C_202C_206C_206B_202B_206E_206A_206F_200C_206B_206B_202D_202B_200B_200C_202C_200B_206C_206F_202A_206B_206B_200D_202D_206E_206E_200F_202E(object P_0, string P_1) - { - ArgumentNullException.ThrowIfNull(P_0, P_1); - } - - static FileInfo _202B_200E_200B_206E_200F_200E_200E_206E_206D_206B_200C_206F_202B_202E_202E_200F_200B_206A_202C_206F_200D_206A_202B_206E_202C_206F_206D_206B_202E_200C_202D_200B_202E_200C_202C_200C_202B_206F_200B_206B_202E(IDalamudPluginInterface P_0) - { - return P_0.ConfigFile; - } - - static bool _202B_200B_202C_202D_206F_202A_202B_200E_200D_202B_202E_206C_206D_202A_200E_206D_206F_206E_202E_206A_206F_206B_206F_200D_202E_206A_200C_206F_202C_200C_206D_202C_206C_206B_206F_206A_206B_202C_202C_200F_202E(FileSystemInfo P_0) - { - return P_0.Exists; - } - - static string _206D_206B_206E_200D_200E_206A_206C_202D_202B_202E_206F_200E_202E_200C_202C_206D_206B_202C_206D_206A_202B_206B_200F_206C_206C_200F_200C_206A_206B_206B_202C_200D_206F_200E_200B_200B_200E_200D_206D_202C_202E(FileSystemInfo P_0) - { - return P_0.FullName; - } - - static FileInfo _202E_202E_200F_200B_200F_200E_200D_206C_200C_200E_200F_200D_200F_206A_200B_206E_202C_206C_202C_200E_200E_202B_206D_202A_200F_206C_206F_206B_202B_202B_200F_206E_200F_200C_202A_206E_202B_206D_206C_206D_202E(FileInfo P_0, string P_1, bool P_2) - { - return P_0.CopyTo(P_1, P_2); - } - - static void _202D_200C_202B_200D_202C_206E_202E_206E_206B_206D_202B_202A_206E_200E_206A_200E_202E_202D_200D_202D_202C_202A_200C_200D_202C_206A_206A_202C_206E_200F_202B_200E_206D_206C_206B_206A_206C_202E_202E_206B_202E(IPluginLog P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.Warning(P_1, P_2, P_3); - } - - static Stopwatch _202A_202C_206F_200E_202A_202D_200C_202B_206C_206A_202E_200D_202C_202A_200C_206B_202C_206B_202C_206A_200D_206E_202C_202A_200D_206E_206E_200C_206E_200C_206C_200E_202D_206B_206E_202C_202A_206C_206F_206A_202E() - { - return Stopwatch.StartNew(); - } - - static bool _202C_202E_202E_200D_202B_206D_200F_200C_202C_200E_206B_206C_206B_206E_206E_202B_200C_200B_206F_206D_200C_200E_202B_206F_200E_202E_206E_206D_202A_200B_202D_200E_200B_206E_206E_206B_206D_200C_202B_206E_202E(NpcPositionCache P_0) - { - return P_0.TryLoadFromDisk(); - } - - static void _200E_202B_200F_202B_200F_206A_200C_200F_200F_206C_206A_202A_206E_206E_202B_206D_202C_206C_202A_206E_200E_202D_200E_202A_202C_202E_206A_206A_206E_200D_206C_206B_202E_206A_200C_202A_206E_202C_206C_206C_202E(ReadOnlySpan<Task> P_0) - { - Task.WaitAll(P_0); - } - - static TimeSpan _200B_206D_206E_206E_202A_202E_202C_206D_202E_206C_206C_206F_206E_206F_206C_200F_200E_206E_200E_200B_200B_200E_202A_200C_206C_200E_200D_206D_206C_200B_206C_200E_206F_206C_200E_200B_200B_200C_202A_200D_202E(Stopwatch P_0) - { - return P_0.Elapsed; - } - - static void _202B_200C_206A_206E_202D_206A_200E_206F_202D_200F_206E_200C_202B_202E_202E_202C_206B_202D_202C_206F_206E_200C_200D_200E_202E_200F_200D_206E_206D_200D_202D_202E_200B_206E_202E_206E_200B_200E_202C_200C_202E(Stopwatch P_0) - { - P_0.Restart(); - } - - static void _206A_206C_200E_206E_202A_202B_202C_200C_202D_206A_206A_200E_206B_202E_200F_206C_200D_202D_202B_200C_200C_206F_202B_202A_202C_200B_200D_200F_200C_200F_200B_206C_206B_202A_202C_200E_206D_206E_200E_206E_202E(LWindow P_0, bool P_1) - { - P_0.IsOpenAndUncollapsed = P_1; - } - - static void _200B_202A_206D_202C_206C_206A_200E_202C_200D_202D_206B_206B_200F_202B_202E_206B_206E_200F_206F_200B_200D_202A_200B_200F_200C_206F_200F_200F_200F_202E_200F_206B_200B_200D_206D_206A_200D_200B_206F_206C_202E(Microsoft.Extensions.Logging.ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static ILoggingBuilder _202C_202C_206F_206A_202E_200C_206C_200E_202D_200C_200E_200F_206E_200D_206B_200E_206A_202C_200F_200E_200D_206C_200C_202C_202A_206F_200E_206E_206C_206C_206D_202A_200D_202C_202C_200E_206D_200F_206E_206D_202E(ILoggingBuilder P_0, LogLevel P_1) - { - return P_0.SetMinimumLevel(P_1); - } - - static ILoggingBuilder _206B_202C_206A_206D_200B_200B_202D_200D_206F_202C_202C_200F_206B_202A_202B_206E_202D_206C_206D_202E_200E_202A_202E_200E_202C_202B_206E_202E_202A_200E_202B_200F_206C_202D_202E_200E_206D_202C_200F_202E(ILoggingBuilder P_0) - { - return P_0.ClearProviders(); - } - - static DalamudLoggerProvider _206C_200C_202E_202B_200B_206E_202E_202A_202A_206F_206B_200C_206E_206A_200E_202B_206F_206B_200F_206C_200C_206D_200B_206D_206E_202A_200D_200E_202D_206D_206E_202D_200E_206C_202E_206E_206E_206F_206E_202E(IPluginLog P_0, Func<string, string> P_1) - { - return new DalamudLoggerProvider(P_0, P_1); - } - - static ILoggingBuilder _200E_206D_206C_202E_206B_200D_206E_200E_206B_206E_206D_202D_200B_200D_206F_200F_200E_206E_202E_206F_202D_200F_206C_200E_200E_206B_202B_206F_206D_206E_200E_206B_202A_200D_200D_202D_202D_202D_200E_200D_202E(ILoggingBuilder P_0, ILoggerProvider P_1) - { - return P_0.AddProvider(P_1); - } } diff --git a/Questionable/Questionable/ServiceCollectionExtensions.cs b/Questionable/Questionable/ServiceCollectionExtensions.cs index 9bf737c..6aa999b 100644 --- a/Questionable/Questionable/ServiceCollectionExtensions.cs +++ b/Questionable/Questionable/ServiceCollectionExtensions.cs @@ -14,7 +14,7 @@ internal static class ServiceCollectionExtensions public static void AddTaskExecutor<T, TExecutor>(this IServiceCollection serviceCollection) where T : class, ITask where TExecutor : TaskExecutor<T> { - serviceCollection.AddKeyedTransient<ITaskExecutor, TExecutor>(_202D_202C_200F_200B_206C_206C_200D_206B_200E_206F_206B_202E_206E_206F_200D_200E_206A_200B_202D_200D_206C_202A_202A_202B_200C_202A_206C_206D_202A_202A_206B_206E_200C_202C_202E_200B_206C_200E_202A_202D_202E(typeof(T).TypeHandle)); + serviceCollection.AddKeyedTransient<ITaskExecutor, TExecutor>(typeof(T)); serviceCollection.AddTransient<TExecutor>(); } @@ -23,9 +23,4 @@ internal static class ServiceCollectionExtensions serviceCollection.AddTaskFactory<TFactory>(); serviceCollection.AddTaskExecutor<T, TExecutor>(); } - - static Type _202D_202C_200F_200B_206C_206C_200D_206B_200E_206F_206B_202E_206E_206F_200D_200E_206A_200B_202D_200D_206C_202A_202A_202B_200C_202A_206C_206D_202A_202A_206B_206E_200C_202C_202E_200B_206C_200E_202A_202D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } } diff --git a/Questionable/System.Text.RegularExpressions.Generated/-RegexGenerator_g-FF909AF37F4C319C8940E7DA0E71D9E470824ECE485FE299B23B08984F5D534F6__MultipleWhitespaceRegex_0.cs b/Questionable/System.Text.RegularExpressions.Generated/-RegexGenerator_g-FF909AF37F4C319C8940E7DA0E71D9E470824ECE485FE299B23B08984F5D534F6__MultipleWhitespaceRegex_0.cs index c9031aa..7e4daa8 100644 --- a/Questionable/System.Text.RegularExpressions.Generated/-RegexGenerator_g-FF909AF37F4C319C8940E7DA0E71D9E470824ECE485FE299B23B08984F5D534F6__MultipleWhitespaceRegex_0.cs +++ b/Questionable/System.Text.RegularExpressions.Generated/-RegexGenerator_g-FF909AF37F4C319C8940E7DA0E71D9E470824ECE485FE299B23B08984F5D534F6__MultipleWhitespaceRegex_0.cs @@ -13,43 +13,12 @@ internal sealed class _003CRegexGenerator_g_003EFF909AF37F4C319C8940E7DA0E71D9E4 { protected override void Scan(ReadOnlySpan<char> inputSpan) { - int num = 154878099; - while (true) + while (TryFindNextPossibleStartingPosition(inputSpan) && !TryMatchAtCurrentPosition(inputSpan) && runtextpos != inputSpan.Length) { - int num2 = num; - int num3 = 154878099; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + runtextpos++; + if (_003CRegexGenerator_g_003EFF909AF37F4C319C8940E7DA0E71D9E470824ECE485FE299B23B08984F5D534F6__Utilities.s_hasTimeout) { - case 2: CheckTimeout(); - num = 154878099; - break; - case 6: - num = ((runtextpos != inputSpan.Length) ? 154878098 : 154878103); - break; - case 4: - return; - case 0: - num = ((!TryFindNextPossibleStartingPosition(inputSpan)) ? 154878103 : 154878096); - break; - case 3: - num = (TryMatchAtCurrentPosition(inputSpan) ? 154878103 : 154878101); - break; - case 1: - { - int num7 = runtextpos; - num3 = 1; - num4 = num7; - runtextpos = (num4 | num3) + (num4 & num3); - num = ((!_003CRegexGenerator_g_003EFF909AF37F4C319C8940E7DA0E71D9E470824ECE485FE299B23B08984F5D534F6__Utilities.s_hasTimeout) ? 154878099 : 154878097); - break; - } - case 5: - num = 154878099; - break; } } } @@ -57,79 +26,31 @@ internal sealed class _003CRegexGenerator_g_003EFF909AF37F4C319C8940E7DA0E71D9E4 private bool TryFindNextPossibleStartingPosition(ReadOnlySpan<char> inputSpan) { int num = runtextpos; - int num2 = ((num > inputSpan.Length - 2) ? (-448342944) : (-448342943)); - int num9 = default(int); - ReadOnlySpan<char> readOnlySpan = default(ReadOnlySpan<char>); - int num10 = default(int); - while (true) + if (num <= inputSpan.Length - 2) { - int num3 = num2; - int num4 = -448342941; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) + ReadOnlySpan<char> readOnlySpan = inputSpan.Slice(num); + int num2; + for (num2 = 0; num2 < readOnlySpan.Length - 1; num2++) { - case 4: - num2 = ((num9 < readOnlySpan.Length - 1) ? (-448342942) : (-448342944)); - break; - case 0: - { - int num14 = num9; - num4 = 1; - num5 = num14; - int num15 = num5 ^ num4; - int num16 = num5 & num4; - num9 = num15 + (num16 + num16); - num2 = -448342937; - break; - } - case 3: - runtextpos = inputSpan.Length; - return false; - case 2: - readOnlySpan = inputSpan.Slice(num); - num9 = 0; - num2 = -448342937; - break; - case 1: - num10 = readOnlySpan.Slice(num9).IndexOfAny(_003CRegexGenerator_g_003EFF909AF37F4C319C8940E7DA0E71D9E470824ECE485FE299B23B08984F5D534F6__Utilities.s_whitespace); - num2 = ((num10 < 0) ? (-448342944) : (-448342939)); - break; - case 7: - { - int num17 = num9; - num4 = 1; - num5 = num17; - int num18 = num5 ^ num4; - int num19 = num5 & num4; - num2 = ((!char.IsWhiteSpace(readOnlySpan[num18 + (num19 + num19)])) ? (-448342941) : (-448342938)); - break; - } - case 5: - num4 = num9; - num5 = num; - runtextpos = (num5 | num4) + (num5 & num4); - return true; - case 8: - num2 = -448342943; - break; - case 6: - { - int num8 = num9; - num4 = num10; - num5 = num8; - int num11 = num5 ^ num4; - int num12 = num5 & num4; - num9 = num11 + (num12 + num12); - int num13 = num9; - num4 = 1; - num5 = num13; - num2 = (((uint)((num5 | num4) + (num5 & num4)) >= (uint)readOnlySpan.Length) ? (-448342944) : (-448342940)); - break; - } + int num3 = readOnlySpan.Slice(num2).IndexOfAny(_003CRegexGenerator_g_003EFF909AF37F4C319C8940E7DA0E71D9E470824ECE485FE299B23B08984F5D534F6__Utilities.s_whitespace); + if (num3 < 0) + { + break; + } + num2 += num3; + if ((uint)(num2 + 1) >= (uint)readOnlySpan.Length) + { + break; + } + if (char.IsWhiteSpace(readOnlySpan[num2 + 1])) + { + runtextpos = num + num2; + return true; + } } } + runtextpos = inputSpan.Length; + return false; } private bool TryMatchAtCurrentPosition(ReadOnlySpan<char> inputSpan) @@ -137,49 +58,17 @@ internal sealed class _003CRegexGenerator_g_003EFF909AF37F4C319C8940E7DA0E71D9E4 int num = runtextpos; int start = num; ReadOnlySpan<char> readOnlySpan = inputSpan.Slice(num); - int num2 = 0; - int num3 = -1031837865; - while (true) + int i; + for (i = 0; (uint)i < (uint)readOnlySpan.Length && char.IsWhiteSpace(readOnlySpan[i]); i++) { - int num4 = num3; - int num5 = -1031837867; - int num6 = num4; - switch ((num6 | num5) - (num6 & num5)) - { - case 6: - num3 = -1031837865; - break; - case 1: - return false; - case 4: - { - readOnlySpan = readOnlySpan.Slice(num2); - int num7 = num; - num5 = num2; - num6 = num7; - Capture(0, start, runtextpos = (num6 | num5) + (num6 & num5)); - return true; - } - case 5: - num3 = (char.IsWhiteSpace(readOnlySpan[num2]) ? (-1031837866) : (-1031837867)); - break; - case 3: - { - int num8 = num2; - num5 = 1; - num6 = num8; - num2 = (num6 | num5) + (num6 & num5); - num3 = -1031837865; - break; - } - case 2: - num3 = (((uint)num2 >= (uint)readOnlySpan.Length) ? (-1031837867) : (-1031837872)); - break; - case 0: - num3 = ((num2 >= 2) ? (-1031837871) : (-1031837868)); - break; - } } + if (i < 2) + { + return false; + } + readOnlySpan = readOnlySpan.Slice(i); + Capture(0, start, runtextpos = num + i); + return true; } } @@ -191,10 +80,9 @@ internal sealed class _003CRegexGenerator_g_003EFF909AF37F4C319C8940E7DA0E71D9E4 internal static readonly _003CRegexGenerator_g_003EFF909AF37F4C319C8940E7DA0E71D9E470824ECE485FE299B23B08984F5D534F6__MultipleWhitespaceRegex_0 Instance = new _003CRegexGenerator_g_003EFF909AF37F4C319C8940E7DA0E71D9E470824ECE485FE299B23B08984F5D534F6__MultipleWhitespaceRegex_0(); - [MethodImpl(MethodImplOptions.NoInlining)] private _003CRegexGenerator_g_003EFF909AF37F4C319C8940E7DA0E71D9E470824ECE485FE299B23B08984F5D534F6__MultipleWhitespaceRegex_0() { - pattern = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1028830438); + pattern = "\\s\\s+"; roptions = RegexOptions.IgnoreCase; Regex.ValidateMatchTimeout(_003CRegexGenerator_g_003EFF909AF37F4C319C8940E7DA0E71D9E470824ECE485FE299B23B08984F5D534F6__Utilities.s_defaultTimeout); internalMatchTimeout = _003CRegexGenerator_g_003EFF909AF37F4C319C8940E7DA0E71D9E470824ECE485FE299B23B08984F5D534F6__Utilities.s_defaultTimeout; diff --git a/Questionable/System.Text.RegularExpressions.Generated/-RegexGenerator_g-FF909AF37F4C319C8940E7DA0E71D9E470824ECE485FE299B23B08984F5D534F6__Utilities.cs b/Questionable/System.Text.RegularExpressions.Generated/-RegexGenerator_g-FF909AF37F4C319C8940E7DA0E71D9E470824ECE485FE299B23B08984F5D534F6__Utilities.cs index f5916fd..71e4814 100644 --- a/Questionable/System.Text.RegularExpressions.Generated/-RegexGenerator_g-FF909AF37F4C319C8940E7DA0E71D9E470824ECE485FE299B23B08984F5D534F6__Utilities.cs +++ b/Questionable/System.Text.RegularExpressions.Generated/-RegexGenerator_g-FF909AF37F4C319C8940E7DA0E71D9E470824ECE485FE299B23B08984F5D534F6__Utilities.cs @@ -6,24 +6,9 @@ namespace System.Text.RegularExpressions.Generated; [GeneratedCode("System.Text.RegularExpressions.Generator", "10.0.14.37416")] internal static class _003CRegexGenerator_g_003EFF909AF37F4C319C8940E7DA0E71D9E470824ECE485FE299B23B08984F5D534F6__Utilities { - internal static readonly TimeSpan s_defaultTimeout = ((_206B_202A_206B_202C_200B_206A_202E_202C_200D_206E_200D_202E_200E_200B_206F_200C_202B_202A_202A_206B_202C_202A_200E_200D_202E_202E_200D_200E_202E_206E_206D_202E_202B_200F_206A_200E_202E_200E_200F_206B_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1968606004)) is TimeSpan timeSpan) ? timeSpan : Regex.InfiniteMatchTimeout); + internal static readonly TimeSpan s_defaultTimeout = ((AppContext.GetData("REGEX_DEFAULT_MATCH_TIMEOUT") is TimeSpan timeSpan) ? timeSpan : Regex.InfiniteMatchTimeout); internal static readonly bool s_hasTimeout = s_defaultTimeout != Regex.InfiniteMatchTimeout; - internal static readonly SearchValues<char> s_whitespace = _200B_202D_202C_202E_206B_200C_200F_200D_200E_206C_202B_202C_200F_206B_206A_206A_200E_202D_206A_206F_206E_206C_200D_206E_202A_206A_200B_200C_206D_206F_200B_206A_202B_206C_206B_206F_200D_206F_206A_200F_202E(_200E_200C_200B_202E_202E_200E_206B_202C_206A_206D_206A_200B_202B_202A_206B_202D_202A_206D_202D_206C_200F_202D_200C_206F_206A_202E_200E_202C_202B_200D_206D_200E_202A_206E_200D_202B_202E_206C_206E_206A_202E(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1890901268))); - - static object _206B_202A_206B_202C_200B_206A_202E_202C_200D_206E_200D_202E_200E_200B_206F_200C_202B_202A_202A_206B_202C_202A_200E_200D_202E_202E_200D_200E_202E_206E_206D_202E_202B_200F_206A_200E_202E_200E_200F_206B_202E(string P_0) - { - return AppContext.GetData(P_0); - } - - static ReadOnlySpan<char> _200E_200C_200B_202E_202E_200E_206B_202C_206A_206D_206A_200B_202B_202A_206B_202D_202A_206D_202D_206C_200F_202D_200C_206F_206A_202E_200E_202C_202B_200D_206D_200E_202A_206E_200D_202B_202E_206C_206E_206A_202E(string P_0) - { - return P_0.AsSpan(); - } - - static SearchValues<char> _200B_202D_202C_202E_206B_200C_200F_200D_200E_206C_202B_202C_200F_206B_206A_206A_200E_202D_206A_206F_206E_206C_200D_206E_202A_206A_200B_200C_206D_206F_200B_206A_202B_206C_206B_206F_200D_206F_206A_200F_202E(ReadOnlySpan<char> P_0) - { - return SearchValues.Create(P_0); - } + internal static readonly SearchValues<char> s_whitespace = SearchValues.Create("\t\n\v\f\r \u0085\u00a0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000".AsSpan()); } diff --git a/SeasonalDutyPaths/Questionable.SeasonalDutyPaths.SeasonalDutyBundle b/SeasonalDutyPaths/Questionable.SeasonalDutyPaths.SeasonalDutyBundle index 3ff6467419e9a2fd2e135b1bb83943954c5dd45b..0a93c5d390ca9a81ceffce84cd77f1eb657ae8ae 100644 GIT binary patch literal 598 zcmV-c0;&DgmEJ#SpEZ@?lhg1ygG1i6$Nx9O+3)e@jxRLu_CvZZ-TwyDIBb!rz7BVR zpd0YznIlyXPVb81_b0fnuOe%i;zNKY2@+Ze#9K*pO_J(}@L&}L!hKNvlD`&^7@XuP ze!y5-Zb1TS_@Aow8?BTl7lL_%(A;rfN3!dvlG;RFYqN*Y`{E^aunH}<D!*N4Q-MUG zI2fVugWLOdN?uhk<2s!-WqD>5r6&r|Ka<qn<6fH1A?hB%s!Q~suo%0%5GO^{LT&w_ z&?hfcQ((R`BTHIiBxevuHaW!d$z4vIR3K~R8JC-3nBOba+BwzoMcKORP^#n%hz17S z<NICptn%WbFXKsjJG7ck`0n_HYNk1nOA1qqXjz`hsC7V&uZa+8CzJRFC~d-s&^;_n zm-}*??j0QxJhN-5^Ix5#;=A;^Uqy?O>f~=~Dg}V}n(COO-kJGRQ7UdD@bJq8djqq; zuSFQ-0RJ!!NnKx(uGhbO9skA(8_>cGd91K5#?gIywJxK3s5*Gbt_4lV5+&y-lzxq) z&{N>{$?Pm#LO6O3qA=xxF780_iNnwJ0oesgLbNmX6SY~<>Gytv<tf(o`3p}SJ_A;7 zt*0Z3t6LNrPJaw-p!BoZjRyjEyDFY=P8Uik(vh0PgB~yC!g2?;(87-}n49OX;(GLs zwxMDK={SahbB~iu>RCvu_83sOYhbmr@opk$gTm#m%qb(HeiC%S)yU-lftll=4p?z@ kyQUy3*cWG+rW$)l6#=Pec6A&f(u?Vw(W7%IK{VNC_PpOQ9{>OV literal 598 zcmV-c0;&C0z}9-foB;h6c<%F0Xo=Emi{MpcM2S#zY-Asg_TmwqCpI3FdHLmk9m~pb zt;vv+nl5hFVQ&XvPO~0EyHFW~Pm-2??~!Wkn2JY}b@Ba<Vh6GABX*19V_t^rY?$A4 zRAG&UTI8{?X60;{_&n|bx+f3GG-lPnF_}~YhKz)~v6CQMLSNacZ0FZ2OyB35p<xzA z8mx)%J+nB>OY#M)>L3aH;VI#+6=bcJ<a-3RD6<zryGuqtmSymU95Hr+xXCP$)39rj za{|oWQFZ%Ah#Q~N3<gBBoK^eBt&HGxK{Jb~G?djpf;4s%{?YyZ^Y;6x#;Wq@{WYK5 zKTdbS0bz#*glD9g9z)cjS1YGIm9dZb+DEuMz$cX4d;d64@m7*;3E&~vQuxraGg`Oj zwC4HqHBOOiBc}8<7rxyeAg3Sg{?<f!v$)p&kEh_nMHbXP&zg+;EOkO61~T$dr>S&+ z4jH{wkIIBaGgg~4mZ4D1X^`BoaIT?<1e>6fBEe3}seL1dyP>kmM;FI5E`{@?vo%{| z>GUdK#2r<5-|ckWb2-^_CFJern`tB8es)H^1x~%{n)-(3(Nd)m@#aUilE7j!@oG5b zQBd_;pB`Wr9&Y_#j>Dn(|21oQEtC{^2j>vX-A9a6-ql`Vh2O{L|05zD5AT7=ZP>74 z-4Km(lB)9jcnEu!#M|{LTj|YI&u%C_2@82n^E=8UqOW@?bNjqmJW9HPmP6T5ZE11J kTcc%oC^K8<Xm(tR*r)P1ZT=>n+jj`Vx5z=#5M!?)B;y%5k^lez diff --git a/SeasonalDutyPaths/Questionable.SeasonalDutyPaths/AssemblySeasonalDutyDefinitionLoader.cs b/SeasonalDutyPaths/Questionable.SeasonalDutyPaths/AssemblySeasonalDutyDefinitionLoader.cs index ea0199f..135b6af 100644 --- a/SeasonalDutyPaths/Questionable.SeasonalDutyPaths/AssemblySeasonalDutyDefinitionLoader.cs +++ b/SeasonalDutyPaths/Questionable.SeasonalDutyPaths/AssemblySeasonalDutyDefinitionLoader.cs @@ -3,8 +3,6 @@ using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.IO; -using System.Reflection; -using System.Runtime.CompilerServices; using System.Security.Cryptography; using System.Threading; using Questionable.Model.IO; @@ -18,127 +16,26 @@ internal static class AssemblySeasonalDutyDefinitionLoader internal static TimeSpan? DecodeDuration { get; private set; } - internal static Stream SeasonalDutyDefinitionSchema - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return _206C_206D_202B_206E_202D_202D_200E_206D_206A_202D_206C_206C_206B_200F_202A_200D_206A_206B_206C_200D_202C_206C_200D_206F_206F_202B_202D_200C_206F_200D_200F_200F_206B_200D_206B_202E_206B_206E_202E_206F_202E(_200C_206C_200D_202D_202B_206D_206C_202C_202B_200F_206E_206E_202C_200F_200D_200D_206C_200C_206A_202A_206B_202A_200E_206A_200B_200C_202D_200C_200E_200C_202A_200F_202D_202C_200B_202C_206E_202C_206E_202A_202E(_206F_200B_200D_206F_200D_200C_202C_206F_200F_202A_206E_206F_202A_202A_206A_202C_202D_200F_202C_206B_202B_200E_206F_206B_202C_200E_202C_206C_202D_206C_206D_202D_202C_202C_200B_202B_206D_206E_200D_206F_202E(typeof(AssemblySeasonalDutyDefinitionLoader).TypeHandle)), global::_003CModule_003E._202C_206C_202B_200B_206A_206E_200C_202C_202D_206B_206D_206F_206F_206D_206E_200C_206A_206B_200F_200E_206A_202B_200B_200E_200C_202C_206A_206C_206B_202A_202C_202B_206A_206F_206D_200D_206D_202C_200D_200E_202E<string>(-1394732188)); - } - } + internal static Stream SeasonalDutyDefinitionSchema => typeof(AssemblySeasonalDutyDefinitionLoader).Assembly.GetManifestResourceStream("Questionable.SeasonalDutyPaths.SeasonalDutyDefinitionSchema"); internal static IReadOnlyDictionary<ushort, SeasonalDutyDefinition> GetDefinitions() { return Definitions.Value; } - [MethodImpl(MethodImplOptions.NoInlining)] private static IReadOnlyDictionary<ushort, SeasonalDutyDefinition> LoadDefinitions() { - Stopwatch stopwatch = _206F_206A_206B_206D_206C_206B_202A_200E_206F_206E_200B_202C_200D_200D_202C_206B_202C_200B_202E_200B_200C_202E_202C_202B_200C_200C_200F_206D_206A_200E_206E_206D_206F_202C_200C_200B_206E_202B_206D_206A_202E(); - Stream stream = _206C_206D_202B_206E_202D_202D_200E_206D_206A_202D_206C_206C_206B_200F_202A_200D_206A_206B_206C_200D_202C_206C_200D_206F_206F_202B_202D_200C_206F_200D_200F_200F_206B_200D_206B_202E_206B_206E_202E_206F_202E(_200C_206C_200D_202D_202B_206D_206C_202C_202B_200F_206E_206E_202C_200F_200D_200D_206C_200C_206A_202A_206B_202A_200E_206A_200B_200C_202D_200C_200E_200C_202A_200F_202D_202C_200B_202C_206E_202C_206E_202A_202E(_206F_200B_200D_206F_200D_200C_202C_206F_200F_202A_206E_206F_202A_202A_206A_202C_202D_200F_202C_206B_202B_200E_206F_206B_202C_200E_202C_206C_202D_206C_206D_202D_202C_202C_200B_202B_206D_206E_200D_206F_202E(typeof(AssemblySeasonalDutyDefinitionLoader).TypeHandle)), global::_003CModule_003E._202A_200F_206B_202B_206C_202D_206A_200F_200E_206B_202A_200D_202A_206C_202C_200C_202D_206E_206B_202B_206D_206F_200F_200B_200B_206E_200C_206D_200B_202B_206D_206E_200E_206F_206A_202E_200C_200C_202C_202E_202E<string>(-1684643272)); - try + Stopwatch stopwatch = Stopwatch.StartNew(); + using Stream stream = typeof(AssemblySeasonalDutyDefinitionLoader).Assembly.GetManifestResourceStream("Questionable.SeasonalDutyPaths.SeasonalDutyBundle"); + byte[] array = PathBundleSecret.Key(); + List<KeyValuePair<string, SeasonalDutyDefinition>> list = PathBundle.Deserialize<SeasonalDutyDefinition>(stream, array); + CryptographicOperations.ZeroMemory(array); + Dictionary<ushort, SeasonalDutyDefinition> dictionary = new Dictionary<ushort, SeasonalDutyDefinition>(list.Count); + foreach (var (s, value) in list) { - byte[] array = PathBundleSecret.Key(); - List<KeyValuePair<string, SeasonalDutyDefinition>> list = PathBundle.Deserialize<SeasonalDutyDefinition>(stream, array); - _202D_200C_200B_202E_206E_206C_206E_200D_200D_200D_202B_200D_206E_200B_206D_206C_200C_206C_202B_200B_206A_206F_206E_206E_202E_202D_206D_200C_200F_202A_206B_206F_206F_202E_200E_202B_200B_206A_206E_200E_202E((Span<byte>)array); - Dictionary<ushort, SeasonalDutyDefinition> dictionary = new Dictionary<ushort, SeasonalDutyDefinition>(list.Count); - using (List<KeyValuePair<string, SeasonalDutyDefinition>>.Enumerator enumerator = list.GetEnumerator()) - { - int num = -221038175; - while (true) - { - int num2 = num; - int num3 = -221038175; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = (enumerator.MoveNext() ? (-221038176) : (-221038174)); - break; - case 1: - var (s, value) = (KeyValuePair<string, SeasonalDutyDefinition>)(ref enumerator.Current); - dictionary[ushort.Parse(s, _206E_202B_200F_206F_206E_206F_206F_200C_202A_206B_206D_200B_206C_200C_202A_200E_200C_202B_200E_200F_202E_200E_202B_200C_206A_200F_202D_206D_202D_202E_200C_202E_206F_206A_202D_202D_200F_202A_206D_200F_202E())] = value; - num = -221038175; - break; - case 2: - num = -221038175; - break; - case 3: - goto end_IL_005c; - } - continue; - end_IL_005c: - break; - } - } - DecodeDuration = _206B_206F_206A_206A_206E_202E_206D_206B_202C_206C_202A_202D_200D_202A_206F_202E_202D_206B_202B_206F_202A_206D_202A_202A_206C_200B_202B_200C_206B_200F_202D_206D_206F_206A_206C_206B_202D_206C_206B_206A_202E(stopwatch); - return dictionary; + dictionary[ushort.Parse(s, CultureInfo.InvariantCulture)] = value; } - finally - { - int num = ((stream == null) ? (-142648274) : (-142648275)); - while (true) - { - int num5 = num; - int num3 = -142648273; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -142648275; - break; - case 2: - _200C_202D_202D_206C_200C_206D_206A_206E_200F_206B_202C_206D_206F_202C_202A_206E_206C_200B_202A_200E_202A_202A_200C_202B_202C_206B_202E_202A_206C_202E_202A_206E_200C_202C_202C_206E_202C_206A_200D_202A_202E((IDisposable)stream); - num = -142648274; - break; - case 1: - goto end_IL_0141; - } - continue; - end_IL_0141: - break; - } - } - } - - static Type _206F_200B_200D_206F_200D_200C_202C_206F_200F_202A_206E_206F_202A_202A_206A_202C_202D_200F_202C_206B_202B_200E_206F_206B_202C_200E_202C_206C_202D_206C_206D_202D_202C_202C_200B_202B_206D_206E_200D_206F_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static Assembly _200C_206C_200D_202D_202B_206D_206C_202C_202B_200F_206E_206E_202C_200F_200D_200D_206C_200C_206A_202A_206B_202A_200E_206A_200B_200C_202D_200C_200E_200C_202A_200F_202D_202C_200B_202C_206E_202C_206E_202A_202E(Type P_0) - { - return P_0.Assembly; - } - - static Stream _206C_206D_202B_206E_202D_202D_200E_206D_206A_202D_206C_206C_206B_200F_202A_200D_206A_206B_206C_200D_202C_206C_200D_206F_206F_202B_202D_200C_206F_200D_200F_200F_206B_200D_206B_202E_206B_206E_202E_206F_202E(Assembly P_0, string P_1) - { - return P_0.GetManifestResourceStream(P_1); - } - - static Stopwatch _206F_206A_206B_206D_206C_206B_202A_200E_206F_206E_200B_202C_200D_200D_202C_206B_202C_200B_202E_200B_200C_202E_202C_202B_200C_200C_200F_206D_206A_200E_206E_206D_206F_202C_200C_200B_206E_202B_206D_206A_202E() - { - return Stopwatch.StartNew(); - } - - static void _202D_200C_200B_202E_206E_206C_206E_200D_200D_200D_202B_200D_206E_200B_206D_206C_200C_206C_202B_200B_206A_206F_206E_206E_202E_202D_206D_200C_200F_202A_206B_206F_206F_202E_200E_202B_200B_206A_206E_200E_202E(Span<byte> P_0) - { - CryptographicOperations.ZeroMemory(P_0); - } - - static CultureInfo _206E_202B_200F_206F_206E_206F_206F_200C_202A_206B_206D_200B_206C_200C_202A_200E_200C_202B_200E_200F_202E_200E_202B_200C_206A_200F_202D_206D_202D_202E_200C_202E_206F_206A_202D_202D_200F_202A_206D_200F_202E() - { - return CultureInfo.InvariantCulture; - } - - static TimeSpan _206B_206F_206A_206A_206E_202E_206D_206B_202C_206C_202A_202D_200D_202A_206F_202E_202D_206B_202B_206F_202A_206D_202A_202A_206C_200B_202B_200C_206B_200F_202D_206D_206F_206A_206C_206B_202D_206C_206B_206A_202E(Stopwatch P_0) - { - return P_0.Elapsed; - } - - static void _200C_202D_202D_206C_200C_206D_206A_206E_200F_206B_202C_206D_206F_202C_202A_206E_206C_200B_202A_200E_202A_202A_200C_202B_202C_206B_202E_202A_206C_202E_202A_206E_200C_202C_202C_206E_202C_206A_200D_202A_202E(IDisposable P_0) - { - P_0.Dispose(); + DecodeDuration = stopwatch.Elapsed; + return dictionary; } } diff --git a/SeasonalDutyPaths/Questionable.SeasonalDutyPaths/PathBundleSecret.cs b/SeasonalDutyPaths/Questionable.SeasonalDutyPaths/PathBundleSecret.cs index 49edc23..fac6799 100644 --- a/SeasonalDutyPaths/Questionable.SeasonalDutyPaths/PathBundleSecret.cs +++ b/SeasonalDutyPaths/Questionable.SeasonalDutyPaths/PathBundleSecret.cs @@ -1,66 +1,30 @@ -using System; -using System.Runtime.CompilerServices; - namespace Questionable.SeasonalDutyPaths; internal static class PathBundleSecret { - private static readonly byte[] A; + private static readonly byte[] A = new byte[32] + { + 251, 250, 177, 24, 254, 78, 188, 97, 60, 65, + 105, 80, 183, 91, 229, 181, 77, 98, 171, 136, + 116, 248, 217, 243, 101, 83, 97, 216, 103, 115, + 176, 184 + }; - private static readonly byte[] B; + private static readonly byte[] B = new byte[32] + { + 10, 142, 23, 61, 218, 98, 70, 165, 207, 244, + 222, 75, 120, 153, 93, 56, 21, 57, 47, 72, + 65, 245, 253, 11, 142, 198, 115, 115, 202, 36, + 6, 70 + }; internal static byte[] Key() { byte[] array = new byte[A.Length]; - int num = 0; - int num2 = 320407520; - while (true) + for (int i = 0; i < array.Length; i++) { - int num3 = num2; - int num4 = 320407521; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 3: - num2 = 320407520; - break; - case 0: - return array; - case 2: - { - int num6 = num; - byte num7 = A[num]; - num4 = B[num]; - num5 = num7; - int num8 = num5 + num4; - int num9 = num5 & num4; - array[num6] = (byte)(num8 - (num9 + num9)); - int num10 = num; - num4 = 1; - num5 = num10; - num = (num5 | num4) + (num5 & num4); - num2 = 320407520; - break; - } - case 1: - num2 = ((num < array.Length) ? 320407523 : 320407521); - break; - } + array[i] = (byte)(A[i] ^ B[i]); } - } - - static PathBundleSecret() - { - byte[] array = new byte[32]; - _206E_200C_200D_200F_202A_200D_206C_202E_200E_202C_202E_200D_202D_202C_200D_206D_202B_206A_206C_206F_200D_206C_202B_206B_200F_206B_200F_206D_206F_206B_200D_200E_200B_206E_202E_200B_200B_200C_202E_202A_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - A = array; - byte[] array2 = new byte[32]; - _206E_200C_200D_200F_202A_200D_206C_202E_200E_202C_202E_200D_202D_202C_200D_206D_202B_206A_206C_206F_200D_206C_202B_206B_200F_206B_200F_206D_206F_206B_200D_200E_200B_206E_202E_200B_200B_200C_202E_202A_202E((Array)array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - B = array2; - } - - static void _206E_200C_200D_200F_202A_200D_206C_202E_200E_202C_202E_200D_202D_202C_200D_206D_202B_206A_206C_206F_200D_206C_202B_206B_200F_206B_200F_206D_206F_206B_200D_200E_200B_206E_202E_200B_200B_200C_202E_202A_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); + return array; } } diff --git a/SmartNav.Data/SmartNav.Data.chocobo-taxi-stands.bin b/SmartNav.Data/SmartNav.Data.chocobo-taxi-stands.bin index 7971d3a4973de98007ca5ef0c4b45770d364bf1e..7f1136641e508a10796ec9a19e99f4e8198e7337 100644 GIT binary patch literal 2558 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 U?|hPLf5_sa@0#hl$`*qPV{Pf+s{jB1 literal 2558 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 Uj*5>ie92*{u;b>b9NVk}3+cM^tpET3 diff --git a/SmartNav.Data/SmartNav.Data.derived-arrivals.bin b/SmartNav.Data/SmartNav.Data.derived-arrivals.bin index d42df9f3f6cb7e0bc90f2d1464a42e07dea25e11..c802c278b7233301dfd33579ff34849e822f6dc9 100644 GIT binary patch literal 12932 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 literal 12932 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 diff --git a/SmartNav.Data/SmartNav.Data.teleport-tickets.bin b/SmartNav.Data/SmartNav.Data.teleport-tickets.bin index ab58312285c4030cc36c353574e69de6acef35a1..287cbd23c2f92c4bffc07aebf3b6501f27cb3087 100644 GIT binary patch literal 446 zcmV;v0YUys<Pjob(cAR}PgEe2Ny?iC;X3{V{&?ehB6jJitFxYnN^P7HIW85O>30}g z{{9l=yZ2L2SfSdkP{$%AajDy1^8X#U%>WlW)kK-ZJX$%g&cq_%L;w62VxCn179S#0 zV{e{Knn~7dy$2aYO95$QeoSnF3ahdjEZk}0UXIPf>{Dg(a%l>)PInMXq&W6XMaLPR ziDjchs5fkVkZrMT3};oW+R~(o8T;sqMRFEJ&UuR3VYX7)==7s6Jy^|X@`Oe81LCMo z;t*mNP$W#09EZc+&rBYjlkKif_7{Ndugq)0Cnb~Qt?`2ou0S(8djRLm8VFz#V?qUn zWy_nh0y~tdQ1GyN(XB7v)pZ&Wu|UX@PbMLbhzeJX*isXh!RakdOd^hAb+N`nIt8O8 z!)`#3&o3BMXpK~Z1fhma*lrEiOuZ`RJ~@+n3j&{C`4_5Tkt1FtV(#o8d)FfW^H$Br z{%7nu8=qCx&XAOYp*eOZqRJ?#u)CaLOo4(4u>8tw)LzI|ql_1D6RQ%=@ZeC@TkM@{ ox@<xE-=C{12S2o!C-dY{?b%CvARFOG?#}gf%*GrD^Fib{reV$70{{R3 literal 446 zcmV;v0YUyd#QvU~)5D`erd4(rMH6H^B2?#y`XQb)2SEluJH9NeLxNy2Ag(%qdE$<Y zm06v_97~YVg}0H~S(hy?7wTb}4a#&8K~m2fHn>WpQO=H0<uMk8MGmCR0t8byZA)l9 zCH;<HhK|?>IT$xEbf{}*&x>3#jqJ-c02*+Ndj+;eZD1X)y5RH6ud4s>A<c4Fzc4(5 zLu_XS&}>G4AR_U1-@WB(G&z@!$gF&tyNYBHyzaJ1_I`B=!9IKSuHnb1^;aQft)jDu z9-hy|`IAM1xSniM4r0vNZ_D6a2FA{8pLor$lll(_$oW&4fB_z89&JxSvRrQrPPzGK zL>%XY7sbEnV2i=Mh0ljD;{zN=AMH%(r9yQ^A1ij^qmv=CFke59Z2oqGUV+29h4yZP zaSMShdnQ<5m3uUAkHbzk^xz$|!|1<VLNi+;Rt_reIc?AZ34JXNA|P@B%+&5n_OM6h zD!@z#TCauGK(Mr`!7#vyj7qJyg|SVC);Eu*ur&Cw#kislew+H8lLy&iKc<}0OPfO$ o!_ep!!N`ELMn;^5ZRvYqYpX%EH|4m3g5*fi>7wxw%F4(|{L60JmjD0& diff --git a/SmartNav.Data/SmartNav.Data.warp-destinations.bin b/SmartNav.Data/SmartNav.Data.warp-destinations.bin index f8df165b3689134719b634a1225345f3400ccc29..71ffb4b0b960db17c959415ea7dfee5e81b6a6c2 100644 GIT binary patch literal 16421 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 C-|@r% literal 16421 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 CkpuMr diff --git a/SmartNav.Data/SmartNav.Data.zone-sub-regions.bin b/SmartNav.Data/SmartNav.Data.zone-sub-regions.bin index 6bf25afeb35244745ffcf9931399313d7cd0c52a..22610a40aa56d28361e8302da82e79fa96dce476 100644 GIT binary patch literal 449 zcmV;y0Y3f=;_Bi0UAm#x#|(4jf%w{=_bLK{Pr$zK@|2^&G5Bu0#~<p>G(Mq)cm0M$ zzk*IC?+=*8V~=c8cDC+p5M4eSh0s!^=^WLUND+p0B(fEa+MLDw7WI*<|H1vol6Qb< zCzChy<ze$Y-75zyjKsR5Ax??1Ld&%c{CCz*e0jA(4!8yzI7{cw4?4EPO$oL37;V#d z0%_;o+fgl*uT)ucC`M+RZ19f7<mSB{1QUH*;Xfh>SI!7tjAmc^iUr}=y`4Uu;ITaw zysz$8y6zklo;^n&DQ3Ui`U-PCl4n5Lq9)l2<O`K3f`^>O#OUk67mGcdPqM4YI7;>7 zQl%x#aGWBnfB(lJ)%<48w&Uj>InEH^&%j`enPL;`D-hpe!CvYF#ZXea1MYD&rg<#Z z@QlAWx_t=DBmq+x^uJ*wY`(Cy6fcM}C0VyR&~v=He6V6%uf|OiIji(_$p|=vpj>7B zuYT|Ky*tFosurKnojTfDZsEtVf*>@E$q8hKfgD1?E(WUH%f)8^cQfW_IQo3q7xLzX rso{9>m0e~pE7;*u5PV!t{30C?JT_q`d+m6uL=Dy#Ov0mBg&J4Rg=yw* literal 449 zcmV;y0Y3f@9)HaOd@WaTstRXhmWI`^W6z=J8&{D6ozxVtPTyQ!vRr4aqvhHVjY^(} zkqQ1kopVHh1NIUHJ24^8#2cz$J6W8n78;X!@kVImIi|iB3$=B!$FuSl`U)^~IB)ee zo}(pxK`pfOx$+?Esy()|ntKui5K|(7%L>5KOULZ1yYbz~60AvGQ?*PEQIgYYm|v^N zetD>;7XW9liQD<OxEx-NuxnWyleVu1rf@kG&7+Je8MFd}PSozquThHb0-=ZZU`XQ^ z@jj>xD_Wg%m0>(${h(1y+Av6O(uidJDVS-<MYj9l7QBa7R=PObz%we`ggmCVx2-Wk z@T%lO<B5StU%hg<k8S|Z6~v!{W{>!W<4^Q4-R5lk1;nb#*mB$+4qNEJ>Yi)5x~?oW zesMCbKy1b}y(YOjv?6J^8ln8nJ-4o1g3Qbj1p{pqtco$E19G+QTgP_9^pM+z$~1Fw z4i?Y)+?<$cU$T$w3K6sWf|i7857fPli~Qw^z;|)dbrE}v`1%WdL_n|*c7zzb1-{%x r7*GYU2Ao`Gmjoj)uduh5dp!m6GvAuubL8V9O~L+~z%Fe3$%e4902kvP diff --git a/SmartNav.Data/SmartNav.Data/AssemblyDerivedArrivalLoader.cs b/SmartNav.Data/SmartNav.Data/AssemblyDerivedArrivalLoader.cs index 47a50ab..edaae61 100644 --- a/SmartNav.Data/SmartNav.Data/AssemblyDerivedArrivalLoader.cs +++ b/SmartNav.Data/SmartNav.Data/AssemblyDerivedArrivalLoader.cs @@ -1,18 +1,11 @@ -using System.Runtime.CompilerServices; using SmartNav.Model.Navigation; namespace SmartNav.Data; public static class AssemblyDerivedArrivalLoader { - [MethodImpl(MethodImplOptions.NoInlining)] public static DerivedArrivalFile GetArrivals(string? overrideDirectory = null) { - return SmartNavResources.Load<DerivedArrivalFile>(global::_003CModule_003E._202C_200E_206B_202E_202C_202D_206F_202A_200E_206D_202A_200D_206A_202C_200D_206D_202A_206E_200E_206C_206A_206A_200C_206E_206C_202A_200E_206D_200F_206D_200B_202A_202B_200D_202B_206F_202C_200F_200C_200E_202E<string>(-1394732188), overrideDirectory) ?? _200B_202A_202E_206E_200C_202C_200F_202C_202D_206A_206F_202A_202C_206E_202A_202E_202D_200B_206D_200C_202C_206B_202B_206C_206D_200D_206D_202C_206C_206B_202E_206D_200F_202D_200D_206D_200C_200C_200B_202D_202E(); - } - - static DerivedArrivalFile _200B_202A_202E_206E_200C_202C_200F_202C_202D_206A_206F_202A_202C_206E_202A_202E_202D_200B_206D_200C_202C_206B_202B_206C_206D_200D_206D_202C_206C_206B_202E_206D_200F_202D_200D_206D_200C_200C_200B_202D_202E() - { - return new DerivedArrivalFile(); + return SmartNavResources.Load<DerivedArrivalFile>("derived-arrivals.json", overrideDirectory) ?? new DerivedArrivalFile(); } } diff --git a/SmartNav.Data/SmartNav.Data/AssemblyTaxiStandLoader.cs b/SmartNav.Data/SmartNav.Data/AssemblyTaxiStandLoader.cs index 3d352a6..ba6c4a7 100644 --- a/SmartNav.Data/SmartNav.Data/AssemblyTaxiStandLoader.cs +++ b/SmartNav.Data/SmartNav.Data/AssemblyTaxiStandLoader.cs @@ -1,14 +1,12 @@ using System.Collections.Generic; -using System.Runtime.CompilerServices; using SmartNav.Model.Navigation; namespace SmartNav.Data; public static class AssemblyTaxiStandLoader { - [MethodImpl(MethodImplOptions.NoInlining)] public static IReadOnlyList<TaxiStandEntry> GetStands(string? overrideDirectory = null) { - return SmartNavResources.Load<List<TaxiStandEntry>>(global::_003CModule_003E._202E_202A_206A_202B_202D_206F_202B_200E_200B_200B_206A_206D_200F_202D_206F_200F_206F_206F_206B_206A_206B_202D_206C_206B_202A_200C_206F_206C_200C_206D_202D_202E_202D_202E_202D_206C_200D_206C_206B_200D_202E<string>(1832135283), overrideDirectory) ?? new List<TaxiStandEntry>(); + return SmartNavResources.Load<List<TaxiStandEntry>>("chocobo-taxi-stands.json", overrideDirectory) ?? new List<TaxiStandEntry>(); } } diff --git a/SmartNav.Data/SmartNav.Data/AssemblyTeleportTicketLoader.cs b/SmartNav.Data/SmartNav.Data/AssemblyTeleportTicketLoader.cs index 6aa6ad0..fb9b9d3 100644 --- a/SmartNav.Data/SmartNav.Data/AssemblyTeleportTicketLoader.cs +++ b/SmartNav.Data/SmartNav.Data/AssemblyTeleportTicketLoader.cs @@ -1,24 +1,12 @@ using System.Collections.Generic; -using System.Runtime.CompilerServices; using SmartNav.Model.Navigation; namespace SmartNav.Data; public static class AssemblyTeleportTicketLoader { - [MethodImpl(MethodImplOptions.NoInlining)] public static IReadOnlyDictionary<string, TeleportTicketEntry> GetTickets(string? overrideDirectory = null) { - return _206A_200D_200C_200B_200B_200E_200E_200E_202C_200C_206C_200F_200D_206D_202A_200B_200D_200D_202D_202D_206D_200F_202C_200F_206C_202C_202D_202B_202A_202B_206C_206E_200E_200F_202C_202E_200E_206B_206C_200D_202E(SmartNavResources.Load<TeleportTicketFile>(global::_003CModule_003E._202B_206D_206C_202B_200E_206E_202B_202C_200E_206E_206D_206C_200C_206B_202C_202A_202B_200E_202C_206D_206F_200F_202D_206F_200B_200B_200E_200E_206B_200D_206A_200B_206C_202A_206F_202B_202C_206C_206E_202B_202E<string>(-734508580), overrideDirectory) ?? _206B_206B_200F_206A_206F_202D_202E_202D_206D_200C_200B_206A_200B_202B_200E_206A_200B_206E_206C_200B_202D_202C_200C_206A_200B_200F_200D_200D_206B_200D_206E_202B_202D_200C_206A_206E_202B_202A_206F_202E_202E()); - } - - static TeleportTicketFile _206B_206B_200F_206A_206F_202D_202E_202D_206D_200C_200B_206A_200B_202B_200E_206A_200B_206E_206C_200B_202D_202C_200C_206A_200B_200F_200D_200D_206B_200D_206E_202B_202D_200C_206A_206E_202B_202A_206F_202E_202E() - { - return new TeleportTicketFile(); - } - - static Dictionary<string, TeleportTicketEntry> _206A_200D_200C_200B_200B_200E_200E_200E_202C_200C_206C_200F_200D_206D_202A_200B_200D_200D_202D_202D_206D_200F_202C_200F_206C_202C_202D_202B_202A_202B_206C_206E_200E_200F_202C_202E_200E_206B_206C_200D_202E(TeleportTicketFile P_0) - { - return P_0.Tickets; + return (SmartNavResources.Load<TeleportTicketFile>("teleport-tickets.json", overrideDirectory) ?? new TeleportTicketFile()).Tickets; } } diff --git a/SmartNav.Data/SmartNav.Data/AssemblyWarpDestinationLoader.cs b/SmartNav.Data/SmartNav.Data/AssemblyWarpDestinationLoader.cs index ed01603..286220b 100644 --- a/SmartNav.Data/SmartNav.Data/AssemblyWarpDestinationLoader.cs +++ b/SmartNav.Data/SmartNav.Data/AssemblyWarpDestinationLoader.cs @@ -1,30 +1,13 @@ using System.Collections.Generic; -using System.Runtime.CompilerServices; using SmartNav.Model.Navigation; namespace SmartNav.Data; public static class AssemblyWarpDestinationLoader { - [MethodImpl(MethodImplOptions.NoInlining)] public static (IReadOnlyList<uint> SkippedWarpIds, IReadOnlyDictionary<string, WarpDestinationEntry> Destinations) GetOverrides(string? overrideDirectory = null) { - WarpDestinationOverrides warpDestinationOverrides = SmartNavResources.Load<WarpDestinationOverrides>(global::_003CModule_003E._206B_206A_206F_206A_202A_206A_202A_202D_206B_206B_202B_200B_200E_206A_202D_202D_200B_200C_200D_202D_206F_200C_200F_206A_202C_202C_202E_200F_200D_200E_206F_202A_202D_206A_200C_206B_202D_206A_206E_206B_202E<string>(1593928925), overrideDirectory) ?? _202D_200E_206B_206E_206E_200C_206F_200F_206D_200E_206A_200B_200C_200D_200D_200D_202A_206C_206D_202E_202D_200B_206C_206F_200C_206A_202B_202E_202E_200E_202A_206C_202C_206B_206B_206C_206F_206C_202B_206F_202E(); - return (SkippedWarpIds: _206D_202E_200D_206D_202E_206A_200F_200E_202C_200E_200F_200D_200E_206B_202C_202E_200F_202C_202E_200B_200C_200F_206A_206A_202E_206E_202E_202B_206C_200C_202B_206B_206E_200C_200D_202E_200E_206A_206F_202E_202E(warpDestinationOverrides), Destinations: _202B_206F_206A_200D_200C_202A_200B_206C_202D_202C_202A_200D_206D_200B_206B_202A_206D_202D_202C_206E_200F_200C_206A_202A_200F_200F_200F_200D_200B_202D_206A_202D_202A_200C_206B_206F_200D_200C_202B_200F_202E(warpDestinationOverrides)); - } - - static WarpDestinationOverrides _202D_200E_206B_206E_206E_200C_206F_200F_206D_200E_206A_200B_200C_200D_200D_200D_202A_206C_206D_202E_202D_200B_206C_206F_200C_206A_202B_202E_202E_200E_202A_206C_202C_206B_206B_206C_206F_206C_202B_206F_202E() - { - return new WarpDestinationOverrides(); - } - - static List<uint> _206D_202E_200D_206D_202E_206A_200F_200E_202C_200E_200F_200D_200E_206B_202C_202E_200F_202C_202E_200B_200C_200F_206A_206A_202E_206E_202E_202B_206C_200C_202B_206B_206E_200C_200D_202E_200E_206A_206F_202E_202E(WarpDestinationOverrides P_0) - { - return P_0.SkippedWarpIds; - } - - static Dictionary<string, WarpDestinationEntry> _202B_206F_206A_200D_200C_202A_200B_206C_202D_202C_202A_200D_206D_200B_206B_202A_206D_202D_202C_206E_200F_200C_206A_202A_200F_200F_200F_200D_200B_202D_206A_202D_202A_200C_206B_206F_200D_200C_202B_200F_202E(WarpDestinationOverrides P_0) - { - return P_0.Destinations; + WarpDestinationOverrides warpDestinationOverrides = SmartNavResources.Load<WarpDestinationOverrides>("warp-destinations.json", overrideDirectory) ?? new WarpDestinationOverrides(); + return (SkippedWarpIds: warpDestinationOverrides.SkippedWarpIds, Destinations: warpDestinationOverrides.Destinations); } } diff --git a/SmartNav.Data/SmartNav.Data/AssemblyZoneSubRegionLoader.cs b/SmartNav.Data/SmartNav.Data/AssemblyZoneSubRegionLoader.cs index 43d3dca..3f74415 100644 --- a/SmartNav.Data/SmartNav.Data/AssemblyZoneSubRegionLoader.cs +++ b/SmartNav.Data/SmartNav.Data/AssemblyZoneSubRegionLoader.cs @@ -1,24 +1,12 @@ using System.Collections.Generic; -using System.Runtime.CompilerServices; using SmartNav.Model.Navigation; namespace SmartNav.Data; public static class AssemblyZoneSubRegionLoader { - [MethodImpl(MethodImplOptions.NoInlining)] public static IReadOnlyDictionary<string, TerritorySubRegions> GetRegions(string? overrideDirectory = null) { - return _200F_200B_206A_206E_202E_206E_206C_206A_206B_206B_206D_206E_200E_206C_200E_202E_202E_206F_206A_206D_202D_206E_200E_202C_202A_200C_206D_206F_206A_206D_200D_206E_206B_206C_202D_200E_202C_202E_206D_202D_202E(SmartNavResources.Load<ZoneSubRegionFile>(global::_003CModule_003E._202B_206C_202B_200C_200D_202B_202C_200E_202A_206C_206C_202E_206F_202E_200B_202D_202C_202D_200C_200D_206F_206E_206E_206F_206A_200F_200D_202A_206C_206C_200F_200E_200B_202D_206E_206B_206B_202A_202B_200E_202E<string>(-1591869045), overrideDirectory) ?? _200B_200F_200C_206B_202D_200C_202D_206F_206D_206A_206F_200E_206B_200C_206A_206A_202B_206F_202A_202C_202D_206F_206A_202C_206B_200E_200B_200D_206D_206A_200F_200B_200F_202C_200F_200D_202B_206F_202A_206D_202E()); - } - - static ZoneSubRegionFile _200B_200F_200C_206B_202D_200C_202D_206F_206D_206A_206F_200E_206B_200C_206A_206A_202B_206F_202A_202C_202D_206F_206A_202C_206B_200E_200B_200D_206D_206A_200F_200B_200F_202C_200F_200D_202B_206F_202A_206D_202E() - { - return new ZoneSubRegionFile(); - } - - static Dictionary<string, TerritorySubRegions> _200F_200B_206A_206E_202E_206E_206C_206A_206B_206B_206D_206E_200E_206C_200E_202E_202E_206F_206A_206D_202D_206E_200E_202C_202A_200C_206D_206F_206A_206D_200D_206E_206B_206C_202D_200E_202C_202E_206D_202D_202E(ZoneSubRegionFile P_0) - { - return P_0.Regions; + return (SmartNavResources.Load<ZoneSubRegionFile>("zone-sub-regions.json", overrideDirectory) ?? new ZoneSubRegionFile()).Regions; } } diff --git a/SmartNav.Data/SmartNav.Data/DataBundleSecret.cs b/SmartNav.Data/SmartNav.Data/DataBundleSecret.cs index 9d3779f..407b0bc 100644 --- a/SmartNav.Data/SmartNav.Data/DataBundleSecret.cs +++ b/SmartNav.Data/SmartNav.Data/DataBundleSecret.cs @@ -1,68 +1,30 @@ -using System; -using System.Runtime.CompilerServices; - namespace SmartNav.Data; internal static class DataBundleSecret { - private static readonly byte[] A; + private static readonly byte[] A = new byte[32] + { + 249, 130, 120, 19, 233, 226, 108, 14, 107, 82, + 130, 220, 135, 231, 132, 145, 238, 79, 114, 87, + 123, 65, 202, 110, 156, 178, 236, 146, 151, 20, + 187, 222 + }; - private static readonly byte[] B; + private static readonly byte[] B = new byte[32] + { + 4, 22, 39, 195, 114, 48, 170, 103, 209, 88, + 134, 221, 112, 108, 144, 135, 150, 118, 49, 201, + 74, 13, 92, 179, 155, 25, 114, 34, 102, 151, + 79, 34 + }; internal static byte[] Key() { byte[] array = new byte[A.Length]; - int num = 0; - int num2 = 1494450304; - while (true) + for (int i = 0; i < array.Length; i++) { - int num3 = num2; - int num4 = 1494450304; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = ((num < array.Length) ? 1494450305 : 1494450307); - break; - case 1: - { - int num6 = num; - byte num7 = A[num]; - num4 = B[num]; - num5 = num7; - int num8 = num5 + num4; - int num9 = num5 & num4; - array[num6] = (byte)(num8 - (num9 + num9)); - int num10 = num; - num4 = 1; - num5 = num10; - int num11 = num5 ^ num4; - int num12 = num5 & num4; - num = num11 + (num12 + num12); - num2 = 1494450304; - break; - } - case 3: - return array; - case 2: - num2 = 1494450304; - break; - } + array[i] = (byte)(A[i] ^ B[i]); } - } - - static DataBundleSecret() - { - byte[] array = new byte[32]; - _200B_206B_200C_206B_202A_202D_206F_200F_202B_206B_200F_202A_202A_206F_202E_200B_200C_202D_200E_200F_200B_206D_206C_206E_202C_200D_206D_202D_200F_202C_206E_206C_202B_200D_200F_202C_202A_206F_200D_206D_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - A = array; - byte[] array2 = new byte[32]; - _200B_206B_200C_206B_202A_202D_206F_200F_202B_206B_200F_202A_202A_206F_202E_200B_200C_202D_200E_200F_200B_206D_206C_206E_202C_200D_206D_202D_200F_202C_206E_206C_202B_200D_200F_202C_202A_206F_200D_206D_202E((Array)array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - B = array2; - } - - static void _200B_206B_200C_206B_202A_202D_206F_200F_202B_206B_200F_202A_202A_206F_202E_200B_200C_202D_200E_200F_200B_206D_206C_206E_202C_200D_206D_202D_200F_202C_206E_206C_202B_200D_200F_202C_202A_206F_200D_206D_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); + return array; } } diff --git a/SmartNav.Data/SmartNav.Data/SmartNavResources.cs b/SmartNav.Data/SmartNav.Data/SmartNavResources.cs index a8639f0..c231172 100644 --- a/SmartNav.Data/SmartNav.Data/SmartNavResources.cs +++ b/SmartNav.Data/SmartNav.Data/SmartNavResources.cs @@ -2,7 +2,6 @@ using System; using System.IO; using System.IO.Compression; using System.Reflection; -using System.Runtime.CompilerServices; using System.Security.Cryptography; using System.Text.Json; @@ -10,315 +9,50 @@ namespace SmartNav.Data; internal static class SmartNavResources { - private static readonly Assembly Assembly = _206F_202B_202E_202D_200E_200B_200C_200D_206D_200B_200C_202C_206E_202D_206F_206E_202A_202E_206D_202A_202E_200B_202A_200F_200B_200C_200C_206E_202B_200C_206F_200B_200C_206A_200F_200E_200B_202A_206B_200E_202E(_202C_206B_202C_202D_200D_206B_200F_206C_202D_202B_206F_202B_202B_200E_202B_206F_202D_200C_202A_200D_200B_206E_202E_202E_206F_200F_206A_206A_200D_200E_206E_202A_206C_202D_200C_200C_200D_206A_200D_206E_202E(typeof(SmartNavResources).TypeHandle)); + private static readonly Assembly Assembly = typeof(SmartNavResources).Assembly; - [MethodImpl(MethodImplOptions.NoInlining)] public static T? Load<T>(string fileName, string? overrideDirectory) { - int num = ((overrideDirectory == null) ? (-221038174) : (-221038176)); - string text = default(string); - while (true) + if (overrideDirectory != null) { - int num2 = num; - int num3 = -221038175; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + string path = Path.Combine(overrideDirectory, fileName); + if (File.Exists(path)) { - case 0: - return DeserializeFile<T>(text); - case 3: - return DeserializeResource<T>(_202B_200C_200D_200C_202A_206F_202A_206B_200B_206E_206A_200D_206E_202C_206C_200C_200B_200F_200E_200F_200E_206D_200F_202A_206F_200C_206A_200C_206B_202A_200C_206B_202D_202C_200D_200D_206A_200C_200C_206A_202E(global::_003CModule_003E._206B_206A_206F_206A_202A_206A_202A_202D_206B_206B_202B_200B_200E_206A_202D_202D_200B_200C_200D_202D_206F_200C_200F_206A_202C_202C_202E_200F_200D_200E_206F_202A_202D_206A_200C_206B_202D_206A_206E_206B_202E<string>(-176470543), fileName)); - case 2: - num = -221038176; - break; - case 1: - text = _200E_206E_202D_200F_200F_200D_202D_206B_200F_206B_200B_200D_202C_206B_200C_206A_202C_200E_206B_206A_202D_200E_206F_206C_200D_206A_202D_202C_206E_206A_202A_200F_206B_206D_202A_202A_202E_206B_202A_202E_202E(overrideDirectory, fileName); - num = ((!_206C_206E_200F_206A_200C_202E_206D_206C_200F_202A_200B_202D_202D_202E_206E_200F_206C_202B_206E_202D_202A_200F_206C_202C_202B_206B_200F_202A_200D_202A_206D_206E_200B_202A_202E_200B_200B_200F_206F_200D_202E(text)) ? (-221038174) : (-221038175)); - break; + return DeserializeFile<T>(path); } } + return DeserializeResource<T>("SmartNav.Data." + fileName); } public static T? DeserializeFile<T>(string path) { - Stream stream = _200E_202B_206F_200B_206A_202C_202A_200E_200C_206D_206B_200D_206B_200D_202D_206F_202D_200F_200D_200F_202D_206E_202E_200B_200D_202E_202C_202E_206D_202A_202D_200E_206C_202A_206F_200D_200E_206D_202D_202B_202E(path); - try - { - return JsonSerializer.Deserialize<T>(stream); - } - finally - { - int num = ((stream == null) ? 1932184292 : 1932184295); - while (true) - { - int num2 = num; - int num3 = 1932184294; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_0030; - case 1: - _206D_202E_202D_202E_206B_206C_202C_206C_202C_206A_206F_200F_200F_202C_202B_202B_206F_202A_200B_200D_202C_200C_202B_202E_206D_200D_206A_202C_202B_202E_206E_206F_206B_200B_206B_206F_202B_206C_202D_206C_202E((IDisposable?)stream); - num = 1932184292; - break; - case 0: - num = 1932184295; - break; - } - continue; - end_IL_0030: - break; - } - } + using Stream utf8Json = File.OpenRead(path); + return JsonSerializer.Deserialize<T>(utf8Json); } - [MethodImpl(MethodImplOptions.NoInlining)] private static T? DeserializeResource<T>(string resourceName) { - string text = _202C_206E_202E_206A_206E_202B_200B_202E_200E_206D_200E_206A_200C_206B_206E_200C_202D_200D_202E_206B_200B_202C_202B_206D_206C_200C_200F_200C_202E_202C_200F_206A_206C_200E_200C_202D_206F_200C_202D_206E_202E(resourceName, global::_003CModule_003E._202E_202A_206A_202B_202D_206F_202B_200E_200B_200B_206A_206D_200F_202D_206F_200F_206F_206F_206B_206A_206B_202D_206C_206B_202A_200C_206F_206C_200C_206D_202D_202E_202D_202E_202D_206C_200D_206C_206B_200D_202E<string>(985938895)); - Stream stream = _200E_206C_200B_202A_202D_206B_206A_206A_206B_202B_202B_206C_206F_206D_200D_200D_202E_206C_200C_200C_206D_202D_202A_206A_200B_200E_206B_202D_206A_202B_200F_200B_206A_206B_202B_200D_202D_200E_206A_206D_202E(Assembly, text); + string name = Path.ChangeExtension(resourceName, ".bin"); + using Stream stream = Assembly.GetManifestResourceStream(name); + if (stream == null) + { + return default(T); + } + using MemoryStream memoryStream = new MemoryStream(); + stream.CopyTo(memoryStream); + byte[] array = memoryStream.ToArray(); + byte[] array2 = new byte[array.Length - 28]; + byte[] array3 = DataBundleSecret.Key(); try { - int num = ((stream != null) ? (-1225651699) : (-1225651698)); - while (true) - { - int num2 = num; - int num3 = -1225651700; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0067; - case 2: - return default(T); - case 1: - { - MemoryStream memoryStream = _206F_206C_206E_206D_206F_202E_200C_200E_202A_206A_202A_206E_206A_200B_206E_206C_206F_206E_200D_202C_200B_202E_200F_200C_206A_206E_200B_206B_206A_206D_200C_202E_202E_202E_200D_206D_202C_206A_206E_206E_202E(); - try - { - _202D_200F_202B_200D_200F_202C_200D_200F_200D_200B_206E_202C_206E_200E_206C_206D_200C_202E_206C_200D_202C_200F_202E_206C_202D_206D_200D_200E_200C_206B_202A_202E_202B_206A_200C_202D_200F_200E_202B_206E_202E(stream, (Stream?)memoryStream); - byte[] array = _202E_200E_202B_202E_206A_206A_206C_200E_206C_200F_202D_202B_202A_200F_200F_206B_206E_202A_200E_206B_206A_202D_206A_206F_206B_200C_206F_202D_202B_206D_200C_200B_200B_200B_200B_206C_206B_206A_202D_202C_202E(memoryStream); - int num5 = array.Length; - num3 = 28; - num4 = num5; - byte[] array2 = new byte[~(~num4 + num3)]; - byte[] array3 = DataBundleSecret.Key(); - try - { - AesGcm aesGcm = _202A_206C_200F_206D_200D_200F_206C_202D_200F_202A_206D_200D_200F_202D_206F_202A_202D_200B_202C_202C_206E_202D_206B_206B_200D_202D_200B_200D_202E_206E_200F_206D_206E_200B_206B_206C_206E_200E_200F_202E(array3, 16); - try - { - _200E_200C_200C_206A_206D_202A_200F_206C_200F_206C_206E_202A_206E_202C_206C_206D_202D_202A_200D_200E_206D_200F_206F_202B_206F_206A_206E_202B_202A_200C_202E_200E_200F_200C_206F_200E_200C_206C_202D_202D_202E(aesGcm, (ReadOnlySpan<byte>)array.AsSpan(0, 12), (ReadOnlySpan<byte>)array.AsSpan(28), (ReadOnlySpan<byte>)array.AsSpan(12, 16), (Span<byte>)array2, default(ReadOnlySpan<byte>)); - } - finally - { - num = ((aesGcm == null) ? (-507593817) : (-507593820)); - while (true) - { - int num6 = num; - num3 = -507593818; - num4 = num6; - int num7 = num4 + num3; - int num8 = num4 & num3; - switch (num7 - (num8 + num8)) - { - case 1: - goto end_IL_0133; - case 2: - _206D_202E_202D_202E_206B_206C_202C_206C_202C_206A_206F_200F_200F_202C_202B_202B_206F_202A_200B_200D_202C_200C_202B_202E_206D_200D_206A_202C_202B_202E_206E_206F_206B_200B_206B_206F_202B_206C_202D_206C_202E((IDisposable?)aesGcm); - num = -507593817; - break; - case 0: - num = -507593820; - break; - } - continue; - end_IL_0133: - break; - } - } - } - finally - { - _200C_202C_202C_202E_200C_206F_200C_200C_206F_200B_202D_206D_202B_206C_200B_206B_206B_200D_200F_206F_202B_202A_202A_206F_206E_202B_200F_200E_206D_202D_206D_200D_206C_200C_206B_200B_200F_200D_206D_206C_202E((Span<byte>)array3); - } - DeflateStream deflateStream = _206A_202E_206B_206A_200B_202E_202B_200F_200D_200E_206F_206F_200F_202B_200E_200E_200B_200D_206B_206B_202E_200C_206F_200D_206D_206D_206B_206E_202C_200D_202E_206F_206E_202B_206F_206A_206A_200B_200E_200E_202E((Stream?)_206B_206A_200B_202D_206E_200E_202A_206C_206E_206A_200D_206E_200B_200E_200F_200B_202A_202D_200E_200B_202E_206C_200F_200E_206A_206C_202E_200F_206A_206E_206D_202C_202C_200E_200D_200E_200F_206F_206F_202A_202E(array2), CompressionMode.Decompress); - try - { - return JsonSerializer.Deserialize<T>(deflateStream); - } - finally - { - num = ((deflateStream == null) ? (-2110403470) : (-2110403471)); - while (true) - { - int num9 = num; - num3 = -2110403472; - num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 2: - goto end_IL_01cb; - case 1: - _206D_202E_202D_202E_206B_206C_202C_206C_202C_206A_206F_200F_200F_202C_202B_202B_206F_202A_200B_200D_202C_200C_202B_202E_206D_200D_206A_202C_202B_202E_206E_206F_206B_200B_206B_206F_202B_206C_202D_206C_202E((IDisposable?)deflateStream); - num = -2110403470; - break; - case 0: - num = -2110403471; - break; - } - continue; - end_IL_01cb: - break; - } - } - } - finally - { - num = ((memoryStream == null) ? (-1202265415) : (-1202265416)); - while (true) - { - int num12 = num; - num3 = -1202265415; - num4 = num12; - int num13 = num4 + num3; - int num14 = num4 & num3; - switch (num13 - (num14 + num14)) - { - case 0: - goto end_IL_0237; - case 1: - _206D_202E_202D_202E_206B_206C_202C_206C_202C_206A_206F_200F_200F_202C_202B_202B_206F_202A_200B_200D_202C_200C_202B_202E_206D_200D_206A_202C_202B_202E_206E_206F_206B_200B_206B_206F_202B_206C_202D_206C_202E((IDisposable?)memoryStream); - num = -1202265415; - break; - case 2: - num = -1202265416; - break; - } - continue; - end_IL_0237: - break; - } - } - } - } - continue; - IL_0067: - num = -1225651698; - } + using AesGcm aesGcm = new AesGcm(array3, 16); + aesGcm.Decrypt(array.AsSpan(0, 12), array.AsSpan(28), array.AsSpan(12, 16), array2); } finally { - int num = ((stream == null) ? (-1412160920) : (-1412160919)); - while (true) - { - int num15 = num; - int num3 = -1412160920; - int num4 = num15; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_02a2; - case 1: - _206D_202E_202D_202E_206B_206C_202C_206C_202C_206A_206F_200F_200F_202C_202B_202B_206F_202A_200B_200D_202C_200C_202B_202E_206D_200D_206A_202C_202B_202E_206E_206F_206B_200B_206B_206F_202B_206C_202D_206C_202E((IDisposable?)stream); - num = -1412160920; - break; - case 2: - num = -1412160919; - break; - } - continue; - end_IL_02a2: - break; - } + CryptographicOperations.ZeroMemory(array3); } - } - - static string? _200E_206E_202D_200F_200F_200D_202D_206B_200F_206B_200B_200D_202C_206B_200C_206A_202C_200E_206B_206A_202D_200E_206F_206C_200D_206A_202D_202C_206E_206A_202A_200F_206B_206D_202A_202A_202E_206B_202A_202E_202E(string? P_0, string? P_1) - { - return Path.Combine(P_0, P_1); - } - - static bool _206C_206E_200F_206A_200C_202E_206D_206C_200F_202A_200B_202D_202D_202E_206E_200F_206C_202B_206E_202D_202A_200F_206C_202C_202B_206B_200F_202A_200D_202A_206D_206E_200B_202A_202E_200B_200B_200F_206F_200D_202E(string? P_0) - { - return File.Exists(P_0); - } - - static string? _202B_200C_200D_200C_202A_206F_202A_206B_200B_206E_206A_200D_206E_202C_206C_200C_200B_200F_200E_200F_200E_206D_200F_202A_206F_200C_206A_200C_206B_202A_200C_206B_202D_202C_200D_200D_206A_200C_200C_206A_202E(string? P_0, string? P_1) - { - return P_0 + P_1; - } - - static FileStream? _200E_202B_206F_200B_206A_202C_202A_200E_200C_206D_206B_200D_206B_200D_202D_206F_202D_200F_200D_200F_202D_206E_202E_200B_200D_202E_202C_202E_206D_202A_202D_200E_206C_202A_206F_200D_200E_206D_202D_202B_202E(string? P_0) - { - return File.OpenRead(P_0); - } - - static void _206D_202E_202D_202E_206B_206C_202C_206C_202C_206A_206F_200F_200F_202C_202B_202B_206F_202A_200B_200D_202C_200C_202B_202E_206D_200D_206A_202C_202B_202E_206E_206F_206B_200B_206B_206F_202B_206C_202D_206C_202E(IDisposable? P_0) - { - P_0.Dispose(); - } - - static string? _202C_206E_202E_206A_206E_202B_200B_202E_200E_206D_200E_206A_200C_206B_206E_200C_202D_200D_202E_206B_200B_202C_202B_206D_206C_200C_200F_200C_202E_202C_200F_206A_206C_200E_200C_202D_206F_200C_202D_206E_202E(string? P_0, string? P_1) - { - return Path.ChangeExtension(P_0, P_1); - } - - static Stream? _200E_206C_200B_202A_202D_206B_206A_206A_206B_202B_202B_206C_206F_206D_200D_200D_202E_206C_200C_200C_206D_202D_202A_206A_200B_200E_206B_202D_206A_202B_200F_200B_206A_206B_202B_200D_202D_200E_206A_206D_202E(Assembly? P_0, string? P_1) - { - return P_0.GetManifestResourceStream(P_1); - } - - static MemoryStream? _206F_206C_206E_206D_206F_202E_200C_200E_202A_206A_202A_206E_206A_200B_206E_206C_206F_206E_200D_202C_200B_202E_200F_200C_206A_206E_200B_206B_206A_206D_200C_202E_202E_202E_200D_206D_202C_206A_206E_206E_202E() - { - return new MemoryStream(); - } - - static void _202D_200F_202B_200D_200F_202C_200D_200F_200D_200B_206E_202C_206E_200E_206C_206D_200C_202E_206C_200D_202C_200F_202E_206C_202D_206D_200D_200E_200C_206B_202A_202E_202B_206A_200C_202D_200F_200E_202B_206E_202E(Stream? P_0, Stream? P_1) - { - P_0.CopyTo(P_1); - } - - static byte[]? _202E_200E_202B_202E_206A_206A_206C_200E_206C_200F_202D_202B_202A_200F_200F_206B_206E_202A_200E_206B_206A_202D_206A_206F_206B_200C_206F_202D_202B_206D_200C_200B_200B_200B_200B_206C_206B_206A_202D_202C_202E(MemoryStream? P_0) - { - return P_0.ToArray(); - } - - static AesGcm? _202A_206C_200F_206D_200D_200F_206C_202D_200F_202A_206D_200D_200F_202D_206F_202A_202D_200B_202C_202C_206E_202D_206B_206B_200D_202D_200B_200D_202E_206E_200F_206D_206E_200B_206B_206C_206E_200E_200F_202E(byte[]? P_0, int P_1) - { - return new AesGcm(P_0, P_1); - } - - static void _200E_200C_200C_206A_206D_202A_200F_206C_200F_206C_206E_202A_206E_202C_206C_206D_202D_202A_200D_200E_206D_200F_206F_202B_206F_206A_206E_202B_202A_200C_202E_200E_200F_200C_206F_200E_200C_206C_202D_202D_202E(AesGcm? P_0, ReadOnlySpan<byte> P_1, ReadOnlySpan<byte> P_2, ReadOnlySpan<byte> P_3, Span<byte> P_4, ReadOnlySpan<byte> P_5) - { - P_0.Decrypt(P_1, P_2, P_3, P_4, P_5); - } - - static void _200C_202C_202C_202E_200C_206F_200C_200C_206F_200B_202D_206D_202B_206C_200B_206B_206B_200D_200F_206F_202B_202A_202A_206F_206E_202B_200F_200E_206D_202D_206D_200D_206C_200C_206B_200B_200F_200D_206D_206C_202E(Span<byte> P_0) - { - CryptographicOperations.ZeroMemory(P_0); - } - - static MemoryStream? _206B_206A_200B_202D_206E_200E_202A_206C_206E_206A_200D_206E_200B_200E_200F_200B_202A_202D_200E_200B_202E_206C_200F_200E_206A_206C_202E_200F_206A_206E_206D_202C_202C_200E_200D_200E_200F_206F_206F_202A_202E(byte[]? P_0) - { - return new MemoryStream(P_0); - } - - static DeflateStream? _206A_202E_206B_206A_200B_202E_202B_200F_200D_200E_206F_206F_200F_202B_200E_200E_200B_200D_206B_206B_202E_200C_206F_200D_206D_206D_206B_206E_202C_200D_202E_206F_206E_202B_206F_206A_206A_200B_200E_200E_202E(Stream? P_0, CompressionMode P_1) - { - return new DeflateStream(P_0, P_1); - } - - static Type? _202C_206B_202C_202D_200D_206B_200F_206C_202D_202B_206F_202B_202B_200E_202B_206F_202D_200C_202A_200D_200B_206E_202E_202E_206F_200F_206A_206A_200D_200E_206E_202A_206C_202D_200C_200C_200D_206A_200D_206E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static Assembly? _206F_202B_202E_202D_200E_200B_200C_200D_206D_200B_200C_202C_206E_202D_206F_206E_202A_202E_206D_202A_202E_200B_202A_200F_200B_200C_200C_206E_202B_200C_206F_200B_200C_206A_200F_200E_200B_202A_206B_200E_202E(Type? P_0) - { - return P_0.Assembly; + using DeflateStream utf8Json = new DeflateStream(new MemoryStream(array2), CompressionMode.Decompress); + return JsonSerializer.Deserialize<T>(utf8Json); } } diff --git a/SmartNav.Model/SmartNav.Model.Converter/AetheryteConverter.cs b/SmartNav.Model/SmartNav.Model.Converter/AetheryteConverter.cs index 8dc51f2..b3fa95c 100644 --- a/SmartNav.Model/SmartNav.Model.Converter/AetheryteConverter.cs +++ b/SmartNav.Model/SmartNav.Model.Converter/AetheryteConverter.cs @@ -8,431 +8,431 @@ public sealed class AetheryteConverter : EnumConverter<EAetheryteLocation> { { EAetheryteLocation.Gridania, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(-599649086) + "Gridania" }, { EAetheryteLocation.CentralShroudBentbranchMeadows, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(1626768764) + "Central Shroud - Bentbranch Meadows" }, { EAetheryteLocation.EastShroudHawthorneHut, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(585431075) + "East Shroud - Hawthorne Hut" }, { EAetheryteLocation.SouthShroudQuarrymill, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(1020891099) + "South Shroud - Quarrymill" }, { EAetheryteLocation.SouthShroudCampTranquil, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(1456351123) + "South Shroud - Camp Tranquil" }, { EAetheryteLocation.NorthShroudFallgourdFloat, - global::_003CModule_003E._206D_200D_202D_200C_202B_206E_206A_206E_206E_202B_202D_200F_206E_202B_206D_200B_206E_202E_206E_206C_200C_200D_202E_206D_206D_200B_200D_202D_200F_206A_202B_200C_202A_202B_200E_202E_200B_202B_202B_206B_202E<string>(-1930385921) + "North Shroud - Fallgourd Float" }, { EAetheryteLocation.Uldah, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(-1122846300) + "Ul'dah" }, { EAetheryteLocation.WesternThanalanHorizon, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(-819985826) + "Western Thanalan - Horizon" }, { EAetheryteLocation.CentralThanalanBlackBrushStation, - global::_003CModule_003E._206D_200D_202D_200C_202B_206E_206A_206E_206E_202B_202D_200F_206E_202B_206D_200B_206E_202E_206E_206C_200C_200D_202E_206D_206D_200B_200D_202D_200F_206A_202B_200C_202A_202B_200E_202E_200B_202B_202B_206B_202E<string>(-1162154365) + "Central Thanalan - Black Brush Station" }, { EAetheryteLocation.EasternThanalanCampDrybone, - global::_003CModule_003E._206D_200D_202D_200C_202B_206E_206A_206E_206E_202B_202D_200F_206E_202B_206D_200B_206E_202E_206E_206C_200C_200D_202E_206D_206D_200B_200D_202D_200F_206A_202B_200C_202A_202B_200E_202E_200B_202B_202B_206B_202E<string>(103645348) + "Eastern Thanalan - Camp Drybone" }, { EAetheryteLocation.SouthernThanalanLittleAlaMhigo, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(1263533841) + "Southern Thanalan - Little Ala Mhigo" }, { EAetheryteLocation.SouthernThanalanForgottenSprings, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(1101987304) + "Southern Thanalan - Forgotten Springs" }, { EAetheryteLocation.NorthernThanalanCampBluefog, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(380355622) + "Northern Thanalan - Camp Bluefog" }, { EAetheryteLocation.NorthernThanalanCeruleumProcessingPlant, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(-977900880) + "Northern Thanalan - Ceruleum Processing Plant" }, { EAetheryteLocation.Limsa, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(692347610) + "Limsa Lominsa" }, { EAetheryteLocation.MiddleLaNosceaSummerfordFarms, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(-176634534) + "Middle La Noscea - Summerford Farms" }, { EAetheryteLocation.LowerLaNosceaMorabyDrydocks, - global::_003CModule_003E._206D_200D_202D_200C_202B_206E_206A_206E_206E_202B_202D_200F_206E_202B_206D_200B_206E_202E_206E_206C_200C_200D_202E_206D_206D_200B_200D_202D_200F_206A_202B_200C_202A_202B_200E_202E_200B_202B_202B_206B_202E<string>(-1598826239) + "Lower La Noscea - Moraby Drydocks" }, { EAetheryteLocation.EasternLaNosceaCostaDelSol, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(625136766) + "Eastern La Noscea - Costa Del Sol" }, { EAetheryteLocation.EasternLaNosceaWineport, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(-1848678476) + "Eastern La Noscea - Wineport" }, { EAetheryteLocation.WesternLaNosceaSwiftperch, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(630947043) + "Western La Noscea - Swiftperch" }, { EAetheryteLocation.WesternLaNosceaAleport, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(-1154838978) + "Western La Noscea - Aleport" }, { EAetheryteLocation.UpperLaNosceaCampBronzeLake, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(-1036658167) + "Upper La Noscea - Camp Bronze Lake" }, { EAetheryteLocation.OuterLaNosceaCampOverlook, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(1170140596) + "Outer La Noscea - Camp Overlook" }, { EAetheryteLocation.CoerthasCentralHighlandsCampDragonhead, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(-815843465) + "Coerthas Central Highlands - Camp Dragonhead" }, { EAetheryteLocation.MorDhona, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(1917120265) + "Mor Dhona" }, { EAetheryteLocation.WolvesDenPier, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(-70811036) + "Wolves' Den Pier" }, { EAetheryteLocation.GoldSaucer, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(-1951121743) + "Gold Saucer" }, { EAetheryteLocation.Ishgard, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(610045683) + "Ishgard" }, { EAetheryteLocation.Idyllshire, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(-427041624) + "Idyllshire" }, { EAetheryteLocation.CoerthasWesternHighlandsFalconsNest, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(-1495733388) + "Coerthas Western Highlands - Falcon's Nest" }, { EAetheryteLocation.SeaOfCloudsCampCloudtop, - global::_003CModule_003E._206D_200D_202D_200C_202B_206E_206A_206E_206E_202B_202D_200F_206E_202B_206D_200B_206E_202E_206E_206C_200C_200D_202E_206D_206D_200B_200D_202D_200F_206A_202B_200C_202A_202B_200E_202E_200B_202B_202B_206B_202E<string>(2033021693) + "The Sea of Clouds - Camp Cloudtop" }, { EAetheryteLocation.SeaOfCloudsOkZundu, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(-1335307853) + "The Sea of Clouds - Ok' Zundu" }, { EAetheryteLocation.AzysLlaHelix, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(387929564) + "Azys Lla - Helix" }, { EAetheryteLocation.DravanianForelandsTailfeather, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(1710341904) + "The Dravanian Forelands - Tailfeather" }, { EAetheryteLocation.DravanianForelandsAnyxTrine, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(1636117458) + "The Dravanian Forelands - Anyx Trine" }, { EAetheryteLocation.ChurningMistsMoghome, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(-1982454238) + "The Churning Mists - Moghome" }, { EAetheryteLocation.ChurningMistsZenith, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(1364214043) + "The Churning Mists - Zenith" }, { EAetheryteLocation.RhalgrsReach, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(-1554490675) + "Rhalgr's Reach" }, { EAetheryteLocation.FringesCastrumOriens, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(-930802894) + "Fringes - Castrum Oriens" }, { EAetheryteLocation.FringesPeeringStones, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(774080887) + "Fringes - Peering Stones" }, { EAetheryteLocation.PeaksAlaGannha, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(-1816002628) + "Peaks - Ala Gannha" }, { EAetheryteLocation.PeaksAlaGhiri, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(654078727) + "Peaks - Ala Ghiri" }, { EAetheryteLocation.LochsPortaPraetoria, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(3529823) + "Lochs - Porta Praetoria" }, { EAetheryteLocation.LochsAlaMhiganQuarter, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(1589117804) + "Lochs - Ala Mhigan Quarter" }, { EAetheryteLocation.Kugane, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(-643713965) + "Kugane" }, { EAetheryteLocation.RubySeaTamamizu, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(1960458799) + "Ruby Sea - Tamamizu" }, { EAetheryteLocation.RubySeaOnokoro, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(-10210316) + "Ruby Sea - Onokoro" }, { EAetheryteLocation.YanxiaNamai, - global::_003CModule_003E._206D_200D_202D_200C_202B_206E_206A_206E_206E_202B_202D_200F_206E_202B_206D_200B_206E_202E_206E_206C_200C_200D_202E_206D_206D_200B_200D_202D_200F_206A_202B_200C_202A_202B_200E_202E_200B_202B_202B_206B_202E<string>(-219345513) + "Yanxia - Namai" }, { EAetheryteLocation.YanxiaHouseOfTheFierce, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(201456790) + "Yanxia - House of the Fierce" }, { EAetheryteLocation.AzimSteppeReunion, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(636916814) + "Azim Steppe - Reunion" }, { EAetheryteLocation.AzimSteppeDawnThrone, - global::_003CModule_003E._206D_200D_202D_200C_202B_206E_206A_206E_206E_202B_202D_200F_206E_202B_206D_200B_206E_202E_206E_206C_200C_200D_202E_206D_206D_200B_200D_202D_200F_206A_202B_200C_202A_202B_200E_202E_200B_202B_202B_206B_202E<string>(199731451) + "Azim Steppe - Dawn Throne" }, { EAetheryteLocation.AzimSteppeDhoroIloh, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(817733533) + "Azim Steppe - Dhoro Iloh" }, { EAetheryteLocation.DomanEnclave, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(249299427) + "Doman Enclave" }, { EAetheryteLocation.Crystarium, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(-1651501989) + "Crystarium" }, { EAetheryteLocation.Eulmore, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(2052538734) + "Eulmore" }, { EAetheryteLocation.LakelandFortJobb, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(52588375) + "Lakeland - Fort Jobb" }, { EAetheryteLocation.LakelandOstallImperative, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(233135752) + "Lakeland - Ostall Imperative" }, { EAetheryteLocation.KholusiaStilltide, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(-1045290338) + "Kholusia - Stilltide" }, { EAetheryteLocation.KholusiaWright, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(-68967603) + "Kholusia - Wright" }, { EAetheryteLocation.KholusiaTomra, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(1880124300) + "Kholusia - Tomra" }, { EAetheryteLocation.AmhAraengMordSouq, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(-551660069) + "Amh Araeng - Mord Souq" }, { EAetheryteLocation.AmhAraengInnAtJourneysHead, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(-267283137) + "Amh Araeng - Inn at Journey's Head" }, { EAetheryteLocation.AmhAraengTwine, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(1987023047) + "Amh Araeng - Twine" }, { EAetheryteLocation.RaktikaSlitherbough, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(1132009782) + "Rak'tika - Slitherbough" }, { EAetheryteLocation.RaktikaFanow, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(1074994822) + "Rak'tika - Fanow" }, { EAetheryteLocation.IlMhegLydhaLran, - global::_003CModule_003E._206D_200D_202D_200C_202B_206E_206A_206E_206E_202B_202D_200F_206E_202B_206D_200B_206E_202E_206E_206C_200C_200D_202E_206D_206D_200B_200D_202D_200F_206A_202B_200C_202A_202B_200E_202E_200B_202B_202B_206B_202E<string>(505584670) + "Il Mheg - Lydha Lran" }, { EAetheryteLocation.IlMhegPlaEnni, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(1207937136) + "Il Mheg - Pla Enni" }, { EAetheryteLocation.IlMhegWolekdorf, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(1708498471) + "Il Mheg - Wolekdorf" }, { EAetheryteLocation.TempestOndoCups, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(-1873064654) + "Tempest - Ondo Cups" }, { EAetheryteLocation.TempestMacarensesAngle, - global::_003CModule_003E._206D_200D_202D_200C_202B_206E_206A_206E_206E_202B_202D_200F_206E_202B_206D_200B_206E_202E_206E_206C_200C_200D_202E_206D_206D_200B_200D_202D_200F_206A_202B_200C_202A_202B_200E_202E_200B_202B_202B_206B_202E<string>(-1554610330) + "Tempest - Macarenses Angle" }, { EAetheryteLocation.OldSharlayan, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(-570548611) + "Old Sharlayan" }, { EAetheryteLocation.RadzAtHan, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(1035979644) + "Radz-at-Han" }, { EAetheryteLocation.LabyrinthosArcheion, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(-645021643) + "Labyrinthos - Archeion" }, { EAetheryteLocation.LabyrinthosSharlayanHamlet, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(55146778) + "Labyrinthos - Sharlayan Hamlet" }, { EAetheryteLocation.LabyrinthosAporia, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(225898405) + "Labyrinthos - Aporia" }, { EAetheryteLocation.ThavnairYedlihmad, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(-738978413) + "Thavnair - Yedlihmad" }, { EAetheryteLocation.ThavnairGreatWork, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(-537708772) + "Thavnair - Great Work" }, { EAetheryteLocation.ThavnairPalakasStand, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(1052509040) + "Thavnair - Palaka's Stand" }, { EAetheryteLocation.GarlemaldCampBrokenGlass, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(-408684817) + "Garlemald - Camp Broken Glass" }, { EAetheryteLocation.GarlemaldTertium, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(-1717975084) + "Garlemald - Tertium" }, { EAetheryteLocation.MareLamentorumSinusLacrimarum, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(2085214582) + "Mare Lamentorum - Sinus Lacrimarum" }, { EAetheryteLocation.MareLamentorumBestwaysBurrow, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(1790148004) + "Mare Lamentorum - Bestways Burrow" }, { EAetheryteLocation.ElpisAnagnorisis, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(1495081426) + "Elpis - Anagnorisis" }, { EAetheryteLocation.ElpisTwelveWonders, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(-842666565) + "Elpis - Twelve Wonders" }, { EAetheryteLocation.ElpisPoietenOikos, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(-1882174279) + "Elpis - Poieten Oikos" }, { EAetheryteLocation.UltimaThuleReahTahra, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(2128311357) + "Ultima Thule - Reah Tahra" }, { EAetheryteLocation.UltimaThuleAbodeOfTheEa, - global::_003CModule_003E._206D_200D_202D_200C_202B_206E_206A_206E_206E_202B_202D_200F_206E_202B_206D_200B_206E_202E_206E_206C_200C_200D_202E_206D_206D_200B_200D_202D_200F_206A_202B_200C_202A_202B_200E_202E_200B_202B_202B_206B_202E<string>(-2069773397) + "Ultima Thule - Abode of the Ea" }, { EAetheryteLocation.UltimaThuleBaseOmicron, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(1232526705) + "Ultima Thule - Base Omicron" }, { EAetheryteLocation.Tuliyollal, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(-73133818) + "Tuliyollal" }, { EAetheryteLocation.SolutionNine, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(-2002887454) + "Solution Nine" }, { EAetheryteLocation.UrqopachaWachunpelo, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(97617809) + "Urqopacha - Wachunpelo" }, { EAetheryteLocation.UrqopachaWorlarsEcho, - global::_003CModule_003E._206D_200D_202D_200C_202B_206E_206A_206E_206E_202B_202D_200F_206E_202B_206D_200B_206E_202E_206E_206C_200C_200D_202E_206D_206D_200B_200D_202D_200F_206A_202B_200C_202A_202B_200E_202E_200B_202B_202B_206B_202E<string>(-1624532702) + "Urqopacha - Worlar's Echo" }, { EAetheryteLocation.KozamaukaOkHanu, - global::_003CModule_003E._206D_200D_202D_200C_202B_206E_206A_206E_206E_202B_202D_200F_206E_202B_206D_200B_206E_202E_206E_206C_200C_200D_202E_206D_206D_200B_200D_202D_200F_206A_202B_200C_202A_202B_200E_202E_200B_202B_202B_206B_202E<string>(86507706) + "Kozama'uka - Ok'hanu" }, { EAetheryteLocation.KozamaukaManyFires, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(-1615091395) + "Kozama'uka - Many Fires" }, { EAetheryteLocation.KozamaukaEarthenshire, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(-1688862953) + "Kozama'uka - Earthenshire" }, { EAetheryteLocation.KozamaukaDockPoga, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(-803472452) + "Kozama'uka - Dock Poga" }, { EAetheryteLocation.YakTelIqBraax, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(1433068843) + "Yak T'el - Iq Br'aax" }, { EAetheryteLocation.YakTelMamook, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(-1816494601) + "Yak T'el - Mamook" }, { EAetheryteLocation.ShaaloaniHhusatahwi, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(1986695065) + "Shaaloani - Hhusatahwi" }, { EAetheryteLocation.ShaaloaniShesheneweziSprings, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(-603388450) + "Shaaloani - Sheshenewezi Springs" }, { EAetheryteLocation.ShaaloaniMehwahhetsoan, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(-1550065480) + "Shaaloani - Mehwahhetsoan" }, { EAetheryteLocation.HeritageFoundYyasulaniStation, - global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(1962690784) + "Heritage Found - Yyasulani Station" }, { EAetheryteLocation.HeritageFoundTheOutskirts, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(158118256) + "Heritage Found - The Outskirts" }, { EAetheryteLocation.HeritageFoundElectropeStrike, - global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(-106590141) + "Heritage Found - Electrope Strike" }, { EAetheryteLocation.LivingMemoryLeynodeMnemo, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(937296136) + "Living Memory - Leynode Mnemo" }, { EAetheryteLocation.LivingMemoryLeynodePyro, - global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(-1817093795) + "Living Memory - Leynode Pyro" }, { EAetheryteLocation.LivingMemoryLeynodeAero, - global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(-1947853957) + "Living Memory - Leynode Aero" } }; diff --git a/SmartNav.Model/SmartNav.Model.Converter/EnumConverter.cs b/SmartNav.Model/SmartNav.Model.Converter/EnumConverter.cs index 964cb8f..31050ba 100644 --- a/SmartNav.Model/SmartNav.Model.Converter/EnumConverter.cs +++ b/SmartNav.Model/SmartNav.Model.Converter/EnumConverter.cs @@ -21,50 +21,24 @@ public abstract class EnumConverter<T> : JsonConverter<T> where T : Enum public override T? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { - int num = ((reader.TokenType == JsonTokenType.String) ? 1875836266 : 1875836268); - string text = default(string); - T value = default(T); - while (true) + if (reader.TokenType != JsonTokenType.String) { - int num2 = num; - int num3 = 1875836271; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = (_stringToEnum.TryGetValue(text, out value) ? 1875836270 : 1875836265); - break; - case 6: - throw _200F_200D_200D_200B_206E_202D_206A_200E_202A_202D_206B_206A_200C_202C_200C_200F_200E_202B_200B_202D_202C_202A_200C_200C_200E_200C_202C_202E_200F_202D_200E_206C_202C_206F_202E_202E_206B_206A_202A_202A_202E(); - case 0: - num = 1875836268; - break; - case 2: - throw _200F_200D_200D_200B_206E_202D_206A_200E_202A_202D_206B_206A_200C_202C_200C_200F_200E_202B_200B_202D_202C_202A_200C_200C_200E_200C_202C_202E_200F_202D_200E_206C_202C_206F_202E_202E_206B_206A_202A_202A_202E(); - case 1: - return value; - case 3: - throw _200F_200D_200D_200B_206E_202D_206A_200E_202A_202D_206B_206A_200C_202C_200C_200F_200E_202B_200B_202D_202C_202A_200C_200C_200E_200C_202C_202E_200F_202D_200E_206C_202C_206F_202E_202E_206B_206A_202A_202A_202E(); - case 5: - text = reader.GetString(); - num = ((text != null) ? 1875836267 : 1875836269); - break; - } + throw new JsonException(); } + string text = reader.GetString(); + if (text == null) + { + throw new JsonException(); + } + if (!_stringToEnum.TryGetValue(text, out var value)) + { + throw new JsonException(); + } + return value; } public override void Write(Utf8JsonWriter writer, T value, JsonSerializerOptions options) { - _202B_206D_206A_202B_200B_200C_202C_206A_206C_200D_200C_206C_202B_206A_200C_200E_206F_200D_202B_202A_206E_200F_206F_200B_202B_206D_200E_206A_200E_202E_202D_202C_200E_202A_200E_202D_200D_202A_206C_202A_202E(writer, _enumToString[value]); - } - - static JsonException _200F_200D_200D_200B_206E_202D_206A_200E_202A_202D_206B_206A_200C_202C_200C_200F_200E_202B_200B_202D_202C_202A_200C_200C_200E_200C_202C_202E_200F_202D_200E_206C_202C_206F_202E_202E_206B_206A_202A_202A_202E() - { - return new JsonException(); - } - - static void _202B_206D_206A_202B_200B_200C_202C_206A_206C_200D_200C_206C_202B_206A_200C_200E_206F_200D_202B_202A_206E_200F_206F_200B_202B_206D_200E_206A_200E_202E_202D_202C_200E_202A_200E_202D_200D_202A_206C_202A_202E(Utf8JsonWriter P_0, string P_1) - { - P_0.WriteStringValue(P_1); + writer.WriteStringValue(_enumToString[value]); } } diff --git a/SmartNav.Model/SmartNav.Model.Converter/VectorConverter.cs b/SmartNav.Model/SmartNav.Model.Converter/VectorConverter.cs index d51dddd..7d96f98 100644 --- a/SmartNav.Model/SmartNav.Model.Converter/VectorConverter.cs +++ b/SmartNav.Model/SmartNav.Model.Converter/VectorConverter.cs @@ -1,6 +1,5 @@ using System; using System.Numerics; -using System.Runtime.CompilerServices; using System.Text.Json; using System.Text.Json.Serialization; @@ -8,152 +7,65 @@ namespace SmartNav.Model.Converter; public sealed class VectorConverter : JsonConverter<Vector3> { - [MethodImpl(MethodImplOptions.NoInlining)] public override Vector3 Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { - int num = ((reader.TokenType == JsonTokenType.StartObject) ? (-1454783213) : (-1454783204)); - string text = default(string); - Vector3 result = default(Vector3); - JsonTokenType tokenType = default(JsonTokenType); - while (true) + if (reader.TokenType != JsonTokenType.StartObject) { - int num2 = num; - int num3 = -1454783203; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + throw new JsonException(); + } + Vector3 result = default(Vector3); + while (reader.Read()) + { + switch (reader.TokenType) { - case 15: - num = (reader.Read() ? (-1454783209) : (-1454783205)); - break; - case 16: - num = (reader.Read() ? (-1454783210) : (-1454783218)); - break; - case 12: - num = -1454783220; - break; - case 6: - throw _202D_206A_206B_202B_206C_206D_200C_200E_200D_202D_200D_200F_200D_206A_206D_206C_202D_202A_202A_206C_202A_206B_202B_206F_200B_202D_202A_206B_200D_200F_202E_206A_206B_206C_202E_206D_200D_200E_206E_206F_202E(); - case 8: - num = (_200F_200C_202B_206E_206A_206D_200F_202D_206F_202E_202D_206E_200B_206C_206F_200E_202C_206D_200B_206A_202B_200D_200D_206C_200E_202E_202B_200F_200D_200E_206B_200F_206D_206D_202D_206A_200C_200E_206F_206D_202E(text, global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(874835855)) ? (-1454783206) : (-1454783201)); - break; - case 1: - throw _202D_206A_206B_202B_206C_206D_200C_200E_200D_202D_200D_200F_200D_206A_206D_206C_202D_202A_202A_206C_202A_206B_202B_206F_200B_202D_202A_206B_200D_200F_202E_206A_206B_206C_202E_206D_200D_200E_206E_206F_202E(); - case 0: - throw _202D_206A_206B_202B_206C_206D_200C_200E_200D_202D_200D_200F_200D_206A_206D_206C_202D_202A_202A_206C_202A_206B_202B_206F_200B_202D_202A_206B_200D_200F_202E_206A_206B_206C_202E_206D_200D_200E_206E_206F_202E(); - case 10: - num = (_200F_200C_202B_206E_206A_206D_200F_202D_206F_202E_202D_206E_200B_206C_206F_200E_202C_206D_200B_206A_202B_200D_200D_206C_200E_202E_202B_200F_200D_200E_206B_200F_206D_206D_202D_206A_200C_200E_206F_206D_202E(text, global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(1039097490)) ? (-1454783202) : (-1454783211)); - break; - case 9: - return result; - case 11: - tokenType = reader.TokenType; - num = ((tokenType == JsonTokenType.EndObject) ? (-1454783212) : (-1454783216)); - break; - case 14: - result = default(Vector3); - num = -1454783219; - break; - case 17: - throw _202D_206A_206B_202B_206C_206D_200C_200E_200D_202D_200D_200F_200D_206A_206D_206C_202D_202A_202A_206C_202A_206B_202B_206F_200B_202D_202A_206B_200D_200F_202E_206A_206B_206C_202E_206D_200D_200E_206E_206F_202E(); - case 4: - result.Z = reader.GetSingle(); - num = -1454783219; - break; - case 13: - num = ((tokenType != JsonTokenType.PropertyName) ? (-1454783203) : (-1454783217)); - break; - case 2: - num = (_200F_200C_202B_206E_206A_206D_200F_202D_206F_202E_202D_206E_200B_206C_206F_200E_202C_206D_200B_206A_202B_200D_200D_206C_200E_202E_202B_200F_200D_200E_206B_200F_206D_206D_202D_206A_200C_200E_206F_206D_202E(text, global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(-1524088896)) ? (-1454783207) : (-1454783215)); - break; - case 19: - throw _202D_206A_206B_202B_206C_206D_200C_200E_200D_202D_200D_200F_200D_206A_206D_206C_202D_202A_202A_206C_202A_206B_202B_206F_200B_202D_202A_206B_200D_200F_202E_206A_206B_206C_202E_206D_200D_200E_206E_206F_202E(); - case 18: - text = reader.GetString(); - num = ((text == null) ? (-1454783205) : (-1454783214)); - break; - case 3: - result.X = reader.GetSingle(); - num = -1454783219; - break; - case 7: - result.Y = reader.GetSingle(); - num = -1454783219; - break; - case 5: - num = -1454783204; + case JsonTokenType.PropertyName: + { + string text = reader.GetString(); + if (text == null || !reader.Read()) + { + throw new JsonException(); + } + switch (text) + { + case "X": + result.X = reader.GetSingle(); + break; + case "Y": + result.Y = reader.GetSingle(); + break; + case "Z": + result.Z = reader.GetSingle(); + break; + default: + throw new JsonException(); + } break; } + case JsonTokenType.EndObject: + return result; + default: + throw new JsonException(); + } } + throw new JsonException(); } - [MethodImpl(MethodImplOptions.NoInlining)] public override void Write(Utf8JsonWriter writer, Vector3 value, JsonSerializerOptions options) { - _206F_200E_206F_206E_200E_202D_206D_206F_202C_200D_202D_202D_200C_202C_200E_206B_206B_200F_202C_206A_200B_206C_206C_202D_202C_200F_202B_206C_202A_206E_200E_206E_202B_200D_206F_200B_202A_206A_200F_206D_202E(writer); - _206D_200D_206B_206E_206A_206B_200E_206A_206E_202C_202A_200C_202D_206B_202B_200C_202A_206E_200C_200B_206A_200B_206B_200E_202D_202C_206C_206D_206D_206B_206A_200B_202C_200F_202D_206E_202A_200D_206D_206F_202E(writer, global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(1052951149), RoundValue(value.X)); - _206D_200D_206B_206E_206A_206B_200E_206A_206E_202C_202A_200C_202D_206B_202B_200C_202A_206E_200C_200B_206A_200B_206B_200E_202D_202C_206C_206D_206D_206B_206A_200B_202C_200F_202D_206E_202A_200D_206D_206F_202E(writer, global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(874835855), RoundValue(value.Y)); - _206D_200D_206B_206E_206A_206B_200E_206A_206E_202C_202A_200C_202D_206B_202B_200C_202A_206E_200C_200B_206A_200B_206B_200E_202D_202C_206C_206D_206D_206B_206A_200B_202C_200F_202D_206E_202A_200D_206D_206F_202E(writer, global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(-2144565009), RoundValue(value.Z)); - _200D_200C_200B_202A_200E_206B_202C_206B_206E_206B_202D_202C_206B_206C_206A_200E_206E_200C_200B_200D_206B_202D_206C_202A_206F_206B_202B_206F_206E_202A_200C_200D_200F_200D_206F_200F_206E_200D_206C_206F_202E(writer); + writer.WriteStartObject(); + writer.WriteNumber("X", RoundValue(value.X)); + writer.WriteNumber("Y", RoundValue(value.Y)); + writer.WriteNumber("Z", RoundValue(value.Z)); + writer.WriteEndObject(); } private static float RoundValue(float value) { - float num = _200B_200B_206D_200E_202B_202B_200E_202A_200E_206D_206F_202E_206A_200D_200D_206A_206D_206A_202B_206C_202E_202C_206F_202D_206C_206F_206B_200E_206D_200E_206D_200B_200E_202E_200B_202E_200C_202D_206C_206D_202E(value, 6); - int num2 = ((_202E_206B_202C_202C_206F_206F_202A_200B_206B_206F_200E_202B_206B_206B_202B_202A_200D_200B_200E_206F_206B_206F_202A_200F_202D_200D_206C_206D_202A_206A_202C_206E_200F_200F_206D_202E_200E_202E_206A_206C_202E(num) < 1E-06f) ? (-2086282528) : (-2086282527)); - while (true) + float num = MathF.Round(value, 6); + if (!(MathF.Abs(num) < 1E-06f)) { - int num3 = num2; - int num4 = -2086282528; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 2: - goto IL_0053; - case 0: - return 0f; - case 1: - return num; - } - continue; - IL_0053: - num2 = -2086282527; + return num; } - } - - static JsonException _202D_206A_206B_202B_206C_206D_200C_200E_200D_202D_200D_200F_200D_206A_206D_206C_202D_202A_202A_206C_202A_206B_202B_206F_200B_202D_202A_206B_200D_200F_202E_206A_206B_206C_202E_206D_200D_200E_206E_206F_202E() - { - return new JsonException(); - } - - static bool _200F_200C_202B_206E_206A_206D_200F_202D_206F_202E_202D_206E_200B_206C_206F_200E_202C_206D_200B_206A_202B_200D_200D_206C_200E_202E_202B_200F_200D_200E_206B_200F_206D_206D_202D_206A_200C_200E_206F_206D_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static void _206F_200E_206F_206E_200E_202D_206D_206F_202C_200D_202D_202D_200C_202C_200E_206B_206B_200F_202C_206A_200B_206C_206C_202D_202C_200F_202B_206C_202A_206E_200E_206E_202B_200D_206F_200B_202A_206A_200F_206D_202E(Utf8JsonWriter P_0) - { - P_0.WriteStartObject(); - } - - static void _206D_200D_206B_206E_206A_206B_200E_206A_206E_202C_202A_200C_202D_206B_202B_200C_202A_206E_200C_200B_206A_200B_206B_200E_202D_202C_206C_206D_206D_206B_206A_200B_202C_200F_202D_206E_202A_200D_206D_206F_202E(Utf8JsonWriter P_0, string P_1, float P_2) - { - P_0.WriteNumber(P_1, P_2); - } - - static void _200D_200C_200B_202A_200E_206B_202C_206B_206E_206B_202D_202C_206B_206C_206A_200E_206E_200C_200B_200D_206B_202D_206C_202A_206F_206B_202B_206F_206E_202A_200C_200D_200F_200D_206F_200F_206E_200D_206C_206F_202E(Utf8JsonWriter P_0) - { - P_0.WriteEndObject(); - } - - static float _200B_200B_206D_200E_202B_202B_200E_202A_200E_206D_206F_202E_206A_200D_200D_206A_206D_206A_202B_206C_202E_202C_206F_202D_206C_206F_206B_200E_206D_200E_206D_200B_200E_202E_200B_202E_200C_202D_206C_206D_202E(float P_0, int P_1) - { - return MathF.Round(P_0, P_1); - } - - static float _202E_206B_202C_202C_206F_206F_202A_200B_206B_206F_200E_202B_206B_206B_202B_202A_200D_200B_200E_206F_206B_206F_202A_200F_202D_200D_206C_206D_202A_206A_202C_206E_200F_200F_206D_202E_200E_202E_206A_206C_202E(float P_0) - { - return MathF.Abs(P_0); + return 0f; } } diff --git a/SmartNav.Model/SmartNav.Model.Navigation/SubRegionDefinition.cs b/SmartNav.Model/SmartNav.Model.Navigation/SubRegionDefinition.cs index 9965a87..b93f098 100644 --- a/SmartNav.Model/SmartNav.Model.Navigation/SubRegionDefinition.cs +++ b/SmartNav.Model/SmartNav.Model.Navigation/SubRegionDefinition.cs @@ -16,87 +16,34 @@ public sealed class SubRegionDefinition public bool Contains(float x, float y, float z) { - int num = ((!MinY.HasValue) ? 292211161 : 292211158); - float x2 = default(float); - float x3 = default(float); - float z2 = default(float); - float z3 = default(float); - int count = default(int); - int num7 = default(int); - int index = default(int); - bool flag = default(bool); - while (true) + if (MinY.HasValue && y < MinY.Value) { - int num2 = num; - int num3 = 292211164; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 9: - num = ((!(x < (x2 - x3) * (z - z2) / (z3 - z2) + x3)) ? 292211166 : 292211160); - break; - case 10: - num = ((!(y < MinY.Value)) ? 292211161 : 292211153); - break; - case 13: - return false; - case 8: - count = Vertices.Count; - num = ((count >= 3) ? 292211165 : 292211159); - break; - case 2: - { - int num9 = num7; - num3 = 1; - num4 = num9; - num7 = (num4 | num3) + (num4 & num3); - index = num9; - num = 292211162; - break; - } - case 11: - return false; - case 5: - num = ((!MaxY.HasValue) ? 292211156 : 292211154); - break; - case 14: - num = ((!(y > MaxY.Value)) ? 292211156 : 292211163); - break; - case 12: - x3 = Vertices[num7].X; - z2 = Vertices[num7].Z; - x2 = Vertices[index].X; - z3 = Vertices[index].Z; - num = ((z2 > z == z3 > z) ? 292211166 : 292211157); - break; - case 3: - return flag; - case 1: - { - flag = false; - num7 = 0; - int num8 = count; - num3 = 1; - num4 = num8; - index = ~(~num4 + num3); - num = 292211162; - break; - } - case 7: - return false; - case 0: - num = 292211158; - break; - case 4: - flag = !flag; - num = 292211166; - break; - case 6: - num = ((num7 < count) ? 292211152 : 292211167); - break; - } + return false; } + if (MaxY.HasValue && y > MaxY.Value) + { + return false; + } + int count = Vertices.Count; + if (count < 3) + { + return false; + } + bool flag = false; + int num = 0; + int index = count - 1; + while (num < count) + { + float x2 = Vertices[num].X; + float z2 = Vertices[num].Z; + float x3 = Vertices[index].X; + float z3 = Vertices[index].Z; + if (z2 > z != z3 > z && x < (x3 - x2) * (z - z2) / (z3 - z2) + x2) + { + flag = !flag; + } + index = num++; + } + return flag; } } diff --git a/SmartNav.Model/SmartNav.Model.Navigation/TriggerBox.cs b/SmartNav.Model/SmartNav.Model.Navigation/TriggerBox.cs index 2fe9027..ab659af 100644 --- a/SmartNav.Model/SmartNav.Model.Navigation/TriggerBox.cs +++ b/SmartNav.Model/SmartNav.Model.Navigation/TriggerBox.cs @@ -1,144 +1,7 @@ -using System; -using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using System.Text.Json.Serialization; using SmartNav.Model.Converter; namespace SmartNav.Model.Navigation; -public sealed record TriggerBox([property: JsonConverter(typeof(VectorConverter))] Vector3 Translation, [property: JsonConverter(typeof(VectorConverter))] Vector3 RotationRadians, [property: JsonConverter(typeof(VectorConverter))] Vector3 HalfExtents) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202C_200C_206F_200E_206A_202B_202C_202D_206D_202E_200D_206F_202C_206E_202C_200F_202A_202A_206B_206F_202E_200C_200D_202E_206C_202E_202D_206B_200C_206E_200D_206B_200C_200B_206E_202E_200F_202B_206B_206A_202E(typeof(TriggerBox).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200E_202D_206D_206F_206E_202D_202C_202E_206F_200C_206D_200C_200E_200F_200D_200B_202A_206A_206B_202B_206E_200E_206C_206C_202C_206E_206E_206C_200D_202D_206A_206F_200E_206A_206D_200B_206F_202B_200D_200E_202E(); - _200C_206B_206B_202E_206C_206C_206D_202E_206A_200B_202C_200F_202C_200E_200E_206F_206C_206B_202C_202A_200F_206C_206D_206B_202B_206F_202C_202D_206E_200F_206A_202A_200F_200B_200C_200C_202B_202C_206F_200C_202E(stringBuilder, global::_003CModule_003E._200F_200F_202A_206D_200D_200C_206B_206A_200E_200B_206A_200D_206E_202C_200B_206D_200B_200B_202E_202B_202C_202A_206A_206C_206D_200F_206F_206E_206B_206C_206A_202D_206B_206C_200D_202B_206E_200E_202B_200F_202E<string>(-1856577442)); - _200C_206B_206B_202E_206C_206C_206D_202E_206A_200B_202C_200F_202C_200E_200E_206F_206C_206B_202C_202A_200F_206C_206D_206B_202B_206F_202C_202D_206E_200F_206A_202A_200F_200B_200C_200C_202B_202C_206F_200C_202E(stringBuilder, global::_003CModule_003E._206D_200D_202D_200C_202B_206E_206A_206E_206E_202B_202D_200F_206E_202B_206D_200B_206E_202E_206E_206C_200C_200D_202E_206D_206D_200B_200D_202D_200F_206A_202B_200C_202A_202B_200E_202E_200B_202B_202B_206B_202E<string>(1971668142)); - int num = ((!PrintMembers(stringBuilder)) ? (-1107916789) : (-1107916790)); - while (true) - { - int num2 = num; - int num3 = -1107916789; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1107916790; - break; - case 0: - _206A_200F_200C_200E_202E_206E_206C_206B_206A_206A_202A_202A_200E_206A_206E_200C_200F_202E_202D_202E_202E_202C_202D_200F_206B_206A_202A_202C_202C_206D_202E_200F_200F_206D_200F_206A_202E_206E_206A_206A_202E(stringBuilder, '}'); - return _202E_202D_202A_200F_202D_200E_202B_206B_200C_202D_202D_200B_200C_202D_206B_200B_200D_202E_202C_206C_206D_200E_206F_202B_200C_202C_200D_200B_200B_206A_206C_202E_202A_202B_200E_200E_200C_202B_206F_200E_202E((object)stringBuilder); - case 1: - _206A_200F_200C_200E_202E_206E_206C_206B_206A_206A_202A_202A_200E_206A_206E_200C_200F_202E_202D_202E_202E_202C_202D_200F_206B_206A_202A_202C_202C_206D_202E_200F_200F_206D_200F_206A_202E_206E_206A_206A_202E(stringBuilder, ' '); - num = -1107916789; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206D_202A_206A_200E_206E_200F_206E_200B_206E_206C_202D_206A_200B_200C_206E_202A_206E_202D_200B_202B_202D_200F_206C_202B_202A_206B_202C_202A_206A_200E_202D_206A_202B_202C_202E_202E_206E_206A_200F_200D_202E(); - _200C_206B_206B_202E_206C_206C_206D_202E_206A_200B_202C_200F_202C_200E_200E_206F_206C_206B_202C_202A_200F_206C_206D_206B_202B_206F_202C_202D_206E_200F_206A_202A_200F_200B_200C_200C_202B_202C_206F_200C_202E(builder, global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(-1800837326)); - _200C_206B_206B_202E_206C_206C_206D_202E_206A_200B_202C_200F_202C_200E_200E_206F_206C_206B_202C_202A_200F_206C_206D_206B_202B_206F_202C_202D_206E_200F_206A_202A_200F_200B_200C_200C_202B_202C_206F_200C_202E(builder, Translation.ToString()); - _200C_206B_206B_202E_206C_206C_206D_202E_206A_200B_202C_200F_202C_200E_200E_206F_206C_206B_202C_202A_200F_206C_206D_206B_202B_206F_202C_202D_206E_200F_206A_202A_200F_200B_200C_200C_202B_202C_206F_200C_202E(builder, global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(-1782998798)); - _200C_206B_206B_202E_206C_206C_206D_202E_206A_200B_202C_200F_202C_200E_200E_206F_206C_206B_202C_202A_200F_206C_206D_206B_202B_206F_202C_202D_206E_200F_206A_202A_200F_200B_200C_200C_202B_202C_206F_200C_202E(builder, RotationRadians.ToString()); - _200C_206B_206B_202E_206C_206C_206D_202E_206A_200B_202C_200F_202C_200E_200E_206F_206C_206B_202C_202A_200F_206C_206D_206B_202B_206F_202C_202D_206E_200F_206A_202A_200F_200B_200C_200C_202B_202C_206F_200C_202E(builder, global::_003CModule_003E._202D_200D_206E_202A_202C_202B_200E_202A_202D_202E_200E_200C_200D_206C_200B_206D_202D_202E_202B_202B_206C_202B_206F_202D_202B_200D_202E_200B_200F_206E_202C_202D_200C_206B_200C_206C_202A_202E_200E_200E_202E<string>(-1061445733)); - _200C_206B_206B_202E_206C_206C_206D_202E_206A_200B_202C_200F_202C_200E_200E_206F_206C_206B_202C_202A_200F_206C_206D_206B_202B_206F_202C_202D_206E_200F_206A_202A_200F_200B_200C_200C_202B_202C_206F_200C_202E(builder, HalfExtents.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(TriggerBox? other) - { - int num = (((object)this == other) ? (-1981901632) : (-1981901629)); - while (true) - { - int num2 = num; - int num3 = -1981901626; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 7: - num = -1981901629; - break; - case 0: - num = ((!_206C_206A_206D_202E_202C_202A_206C_206C_202E_200D_200D_206A_206E_202C_200D_202B_206F_206B_206E_200E_202E_200F_202E_206D_202D_206D_206F_202B_206F_206B_206B_206A_202E_200E_200D_202E_202A_206C_202B_202B_202E(EqualityContract, other.EqualityContract)) ? (-1981901630) : (-1981901627)); - break; - case 5: - num = (((object)other == null) ? (-1981901630) : (-1981901626)); - break; - case 6: - return true; - case 3: - num = ((!EqualityComparer<Vector3>.Default.Equals(Translation, other.Translation)) ? (-1981901630) : (-1981901628)); - break; - case 4: - return false; - case 1: - return EqualityComparer<Vector3>.Default.Equals(HalfExtents, other.HalfExtents); - case 2: - num = ((!EqualityComparer<Vector3>.Default.Equals(RotationRadians, other.RotationRadians)) ? (-1981901630) : (-1981901625)); - break; - } - } - } - - bool IEquatable<TriggerBox>.Equals(TriggerBox? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202C_200C_206F_200E_206A_202B_202C_202D_206D_202E_200D_206F_202C_206E_202C_200F_202A_202A_206B_206F_202E_200C_200D_202E_206C_202E_202D_206B_200C_206E_200D_206B_200C_200B_206E_202E_200F_202B_206B_206A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200E_202D_206D_206F_206E_202D_202C_202E_206F_200C_206D_200C_200E_200F_200D_200B_202A_206A_206B_202B_206E_200E_206C_206C_202C_206E_206E_206C_200D_202D_206A_206F_200E_206A_206D_200B_206F_202B_200D_200E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200C_206B_206B_202E_206C_206C_206D_202E_206A_200B_202C_200F_202C_200E_200E_206F_206C_206B_202C_202A_200F_206C_206D_206B_202B_206F_202C_202D_206E_200F_206A_202A_200F_200B_200C_200C_202B_202C_206F_200C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206A_200F_200C_200E_202E_206E_206C_206B_206A_206A_202A_202A_200E_206A_206E_200C_200F_202E_202D_202E_202E_202C_202D_200F_206B_206A_202A_202C_202C_206D_202E_200F_200F_206D_200F_206A_202E_206E_206A_206A_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202E_202D_202A_200F_202D_200E_202B_206B_200C_202D_202D_200B_200C_202D_206B_200B_200D_202E_202C_206C_206D_200E_206F_202B_200C_202C_200D_200B_200B_206A_206C_202E_202A_202B_200E_200E_200C_202B_206F_200E_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206D_202A_206A_200E_206E_200F_206E_200B_206E_206C_202D_206A_200B_200C_206E_202A_206E_202D_200B_202B_202D_200F_206C_202B_202A_206B_202C_202A_206A_200E_202D_206A_202B_202C_202E_202E_206E_206A_200F_200D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _206C_206A_206D_202E_202C_202A_206C_206C_202E_200D_200D_206A_206E_202C_200D_202B_206F_206B_206E_200E_202E_200F_202E_206D_202D_206D_206F_202B_206F_206B_206B_206A_202E_200E_200D_202E_202A_206C_202B_202B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +public sealed record TriggerBox([property: JsonConverter(typeof(VectorConverter))] Vector3 Translation, [property: JsonConverter(typeof(VectorConverter))] Vector3 RotationRadians, [property: JsonConverter(typeof(VectorConverter))] Vector3 HalfExtents); diff --git a/SmartNav.Model/SmartNav.Model/EAetheryteLocationExtensions.cs b/SmartNav.Model/SmartNav.Model/EAetheryteLocationExtensions.cs index e86cfff..3351ccb 100644 --- a/SmartNav.Model/SmartNav.Model/EAetheryteLocationExtensions.cs +++ b/SmartNav.Model/SmartNav.Model/EAetheryteLocationExtensions.cs @@ -4,35 +4,10 @@ public static class EAetheryteLocationExtensions { public static bool IsFirmamentAetheryte(this EAetheryteLocation aetheryteLocation) { - int num = ((aetheryteLocation == EAetheryteLocation.IshgardFirmament) ? (-221038172) : (-221038174)); - bool result = default(bool); - while (true) + if (aetheryteLocation == EAetheryteLocation.IshgardFirmament || (uint)(aetheryteLocation - 2011373) <= 1u || (uint)(aetheryteLocation - 2011384) <= 5u) { - int num2 = num; - int num3 = -221038175; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -221038174; - break; - case 1: - return result; - case 0: - num = (((uint)(aetheryteLocation - 2011384) > 5u) ? (-221038171) : (-221038172)); - break; - case 3: - num = (((uint)(aetheryteLocation - 2011373) <= 1u) ? (-221038172) : (-221038175)); - break; - case 5: - result = true; - num = -221038176; - break; - case 4: - result = false; - num = -221038176; - break; - } + return true; } + return false; } } diff --git a/SmartNav.Model/SmartNav.Model/ModelResources.cs b/SmartNav.Model/SmartNav.Model/ModelResources.cs index ff66473..5d5e265 100644 --- a/SmartNav.Model/SmartNav.Model/ModelResources.cs +++ b/SmartNav.Model/SmartNav.Model/ModelResources.cs @@ -1,42 +1,10 @@ -using System; using System.IO; -using System.Reflection; -using System.Runtime.CompilerServices; namespace SmartNav.Model; public static class ModelResources { - public static Stream CommonAetheryte - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return _206D_202C_200D_206E_200F_200C_200C_206C_202B_202E_206C_202E_202A_202A_200B_202D_202D_206F_206D_200C_200C_200E_202A_206F_206D_206A_200F_206C_200B_202B_202C_202A_202E_200E_206C_200B_206E_206F_202B_202E(_202E_202B_200E_200E_206C_206D_200B_200D_200C_202A_200C_202E_206C_206E_202E_206C_206F_202D_200C_202D_202C_206C_202E_200B_202A_202D_200C_202C_202E_202E_206D_206E_200E_206B_206C_202C_206C_200E_202C_200D_202E(_206E_202E_202A_202D_206D_202D_206F_200C_206E_202A_206B_206F_206B_200B_202C_206A_202D_206E_200D_202A_200C_200B_206C_202A_202B_202D_202E_200B_206F_200F_206D_206E_202A_206D_206D_206E_202E_206B_206B_206B_202E(typeof(ModelResources).TypeHandle)), global::_003CModule_003E._206F_200B_200B_200C_200E_206C_206C_200D_200F_202D_206C_202E_206D_206B_206E_206A_200E_206E_206E_202A_202D_206B_206E_202E_202B_206F_200D_200B_202A_200C_200B_200B_206F_200F_206A_202A_202A_202E_206E_206C_202E<string>(-1394732188)); - } - } + public static Stream CommonAetheryte => typeof(ModelResources).Assembly.GetManifestResourceStream("SmartNav.Model.CommonAetheryte"); - public static Stream CommonAethernetShard - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return _206D_202C_200D_206E_200F_200C_200C_206C_202B_202E_206C_202E_202A_202A_200B_202D_202D_206F_206D_200C_200C_200E_202A_206F_206D_206A_200F_206C_200B_202B_202C_202A_202E_200E_206C_200B_206E_206F_202B_202E(_202E_202B_200E_200E_206C_206D_200B_200D_200C_202A_200C_202E_206C_206E_202E_206C_206F_202D_200C_202D_202C_206C_202E_200B_202A_202D_200C_202C_202E_202E_206D_206E_200E_206B_206C_202C_206C_200E_202C_200D_202E(_206E_202E_202A_202D_206D_202D_206F_200C_206E_202A_206B_206F_206B_200B_202C_206A_202D_206E_200D_202A_200C_200B_206C_202A_202B_202D_202E_200B_206F_200F_206D_206E_202A_206D_206D_206E_202E_206B_206B_206B_202E(typeof(ModelResources).TypeHandle)), global::_003CModule_003E._202E_202B_202A_206F_202D_206F_206A_206B_202C_202B_202E_206D_202D_202E_200F_202B_200F_202A_200F_202C_200C_200B_206D_202E_200D_202D_206C_200F_206F_202D_200F_202E_200E_200E_200F_206C_202C_200B_202C_200C_202E<string>(905440243)); - } - } - - static Type _206E_202E_202A_202D_206D_202D_206F_200C_206E_202A_206B_206F_206B_200B_202C_206A_202D_206E_200D_202A_200C_200B_206C_202A_202B_202D_202E_200B_206F_200F_206D_206E_202A_206D_206D_206E_202E_206B_206B_206B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static Assembly _202E_202B_200E_200E_206C_206D_200B_200D_200C_202A_200C_202E_206C_206E_202E_206C_206F_202D_200C_202D_202C_206C_202E_200B_202A_202D_200C_202C_202E_202E_206D_206E_200E_206B_206C_202C_206C_200E_202C_200D_202E(Type P_0) - { - return P_0.Assembly; - } - - static Stream _206D_202C_200D_206E_200F_200C_200C_206C_202B_202E_206C_202E_202A_202A_200B_202D_202D_206F_206D_200C_200C_200E_202A_206F_206D_206A_200F_206C_200B_202B_202C_202A_202E_200E_206C_200B_206E_206F_202B_202E(Assembly P_0, string P_1) - { - return P_0.GetManifestResourceStream(P_1); - } + public static Stream CommonAethernetShard => typeof(ModelResources).Assembly.GetManifestResourceStream("SmartNav.Model.CommonAethernetShard"); } diff --git a/SmartNav.Model/SmartNav.Model/MovementData.cs b/SmartNav.Model/SmartNav.Model/MovementData.cs index ab7c34f..f0736d6 100644 --- a/SmartNav.Model/SmartNav.Model/MovementData.cs +++ b/SmartNav.Model/SmartNav.Model/MovementData.cs @@ -38,62 +38,13 @@ public static class MovementData public static float GetMountGroundSpeed(int mountSpeedLevel) { - int num; - float result = default(float); - switch (mountSpeedLevel) + return mountSpeedLevel switch { - default: - num = 1141934779; - goto IL_001d; - case 2: - result = 15f; - num = 1141934782; - goto IL_001d; - case 0: - goto IL_0081; - case 1: - goto IL_0092; - IL_001d: - while (true) - { - int num2 = num; - int num3 = 1141934782; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return result; - case 5: - num = 1141934783; - break; - case 1: - result = 9f; - num = 1141934782; - break; - case 6: - goto end_IL_001d; - case 2: - goto IL_0081; - case 4: - goto IL_0092; - case 3: - num = 1141934779; - break; - } - continue; - end_IL_001d: - break; - } - goto case 2; - IL_0092: - result = 12f; - num = 1141934782; - goto IL_001d; - IL_0081: - result = 9f; - num = 1141934782; - goto IL_001d; - } + 0 => 9f, + 1 => 12f, + 2 => 15f, + _ => 9f, + }; } } diff --git a/SmartNav/--z__ReadOnlyArray.cs b/SmartNav/--z__ReadOnlyArray.cs index e4d4542..840f515 100644 --- a/SmartNav/--z__ReadOnlyArray.cs +++ b/SmartNav/--z__ReadOnlyArray.cs @@ -20,7 +20,7 @@ internal sealed class _003C_003Ez__ReadOnlyArray<T> : IEnumerable, ICollection, } set { - throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E(); + throw new NotSupportedException(); } } @@ -44,7 +44,7 @@ internal sealed class _003C_003Ez__ReadOnlyArray<T> : IEnumerable, ICollection, } set { - throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E(); + throw new NotSupportedException(); } } @@ -55,47 +55,47 @@ internal sealed class _003C_003Ez__ReadOnlyArray<T> : IEnumerable, ICollection, IEnumerator IEnumerable.GetEnumerator() { - return _206A_202A_200B_206E_202C_206C_200E_206D_200C_200C_202D_202D_202A_200F_202C_200D_200C_206D_202C_200F_206F_202D_206A_200B_206F_202E_206A_200F_200C_200C_206A_206A_206B_202C_200E_202A_200D_202E_202B_206E_202E((IEnumerable)_items); + return ((IEnumerable)_items).GetEnumerator(); } void ICollection.CopyTo(Array array, int index) { - _200E_200F_206D_200E_202A_200D_202C_206C_200C_202C_202E_200C_206A_206E_206E_206A_206D_202D_206C_200B_200E_202B_200D_206B_200F_202A_202C_206B_200D_206F_200E_200B_200D_206D_202C_202C_200B_206B_200C_202B_202E((ICollection)_items, array, index); + ((ICollection)_items).CopyTo(array, index); } int IList.Add(object? value) { - throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E(); + throw new NotSupportedException(); } void IList.Clear() { - throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E(); + throw new NotSupportedException(); } bool IList.Contains(object? value) { - return _200F_206F_202C_206A_206E_206E_200B_206A_202E_202A_200C_202C_206E_206C_202C_202E_206B_206B_202C_200E_200C_202E_200E_202D_200B_202A_206A_200E_202E_202B_206B_200E_202C_200B_200C_200E_200F_202D_206F_200C_202E((IList)_items, value); + return ((IList)_items).Contains(value); } int IList.IndexOf(object? value) { - return _202B_200F_202D_200D_200D_206C_202A_200F_200F_202B_200C_200D_200F_202D_206B_202E_202B_206A_206B_200D_202C_200E_206D_206C_200F_206F_206D_200F_202D_206F_200B_206B_206A_200F_200E_200B_206F_202D_200F_202E_202E((IList)_items, value); + return ((IList)_items).IndexOf(value); } void IList.Insert(int index, object? value) { - throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E(); + throw new NotSupportedException(); } void IList.Remove(object? value) { - throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E(); + throw new NotSupportedException(); } void IList.RemoveAt(int index) { - throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E(); + throw new NotSupportedException(); } IEnumerator<T> IEnumerable<T>.GetEnumerator() @@ -105,12 +105,12 @@ internal sealed class _003C_003Ez__ReadOnlyArray<T> : IEnumerable, ICollection, void ICollection<T>.Add(T item) { - throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E(); + throw new NotSupportedException(); } void ICollection<T>.Clear() { - throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E(); + throw new NotSupportedException(); } bool ICollection<T>.Contains(T item) @@ -125,7 +125,7 @@ internal sealed class _003C_003Ez__ReadOnlyArray<T> : IEnumerable, ICollection, bool ICollection<T>.Remove(T item) { - throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E(); + throw new NotSupportedException(); } int IList<T>.IndexOf(T item) @@ -135,36 +135,11 @@ internal sealed class _003C_003Ez__ReadOnlyArray<T> : IEnumerable, ICollection, void IList<T>.Insert(int index, T item) { - throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E(); + throw new NotSupportedException(); } void IList<T>.RemoveAt(int index) { - throw _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E(); - } - - static IEnumerator _206A_202A_200B_206E_202C_206C_200E_206D_200C_200C_202D_202D_202A_200F_202C_200D_200C_206D_202C_200F_206F_202D_206A_200B_206F_202E_206A_200F_200C_200C_206A_206A_206B_202C_200E_202A_200D_202E_202B_206E_202E(IEnumerable P_0) - { - return P_0.GetEnumerator(); - } - - static void _200E_200F_206D_200E_202A_200D_202C_206C_200C_202C_202E_200C_206A_206E_206E_206A_206D_202D_206C_200B_200E_202B_200D_206B_200F_202A_202C_206B_200D_206F_200E_200B_200D_206D_202C_202C_200B_206B_200C_202B_202E(ICollection P_0, Array P_1, int P_2) - { - P_0.CopyTo(P_1, P_2); - } - - static NotSupportedException _206E_200B_206D_206D_200B_202B_200D_206C_200E_200B_206B_202A_206D_202D_202D_206A_206C_206B_200B_202C_206A_202E_200B_200E_200E_202A_200C_200C_200D_206D_202E_200F_206A_200B_206E_200F_206B_202A_202D_200F_202E() - { - return new NotSupportedException(); - } - - static bool _200F_206F_202C_206A_206E_206E_200B_206A_202E_202A_200C_202C_206E_206C_202C_202E_206B_206B_202C_200E_200C_202E_200E_202D_200B_202A_206A_200E_202E_202B_206B_200E_202C_200B_200C_200E_200F_202D_206F_200C_202E(IList P_0, object P_1) - { - return P_0.Contains(P_1); - } - - static int _202B_200F_202D_200D_200D_206C_202A_200F_200F_202B_200C_200D_200F_202D_206B_202E_202B_206A_206B_200D_202C_200E_206D_206C_200F_206F_206D_200F_202D_206F_200B_206B_206A_200F_200E_200B_206F_202D_200F_202E_202E(IList P_0, object P_1) - { - return P_0.IndexOf(P_1); + throw new NotSupportedException(); } } diff --git a/SmartNav/--z__ReadOnlySingleElementList.cs b/SmartNav/--z__ReadOnlySingleElementList.cs index b20dd67..5b22426 100644 --- a/SmartNav/--z__ReadOnlySingleElementList.cs +++ b/SmartNav/--z__ReadOnlySingleElementList.cs @@ -19,27 +19,11 @@ internal sealed class _003C_003Ez__ReadOnlySingleElementList<T> : IEnumerable, I bool IEnumerator.MoveNext() { - int num = (_moveNextCalled ? 247413323 : 247413320); - while (true) + if (!_moveNextCalled) { - int num2 = num; - int num3 = 247413322; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return false; - case 2: - return _moveNextCalled = true; - case 0: - goto IL_0055; - } - continue; - IL_0055: - num = 247413320; + return _moveNextCalled = true; } + return false; } void IEnumerator.Reset() @@ -62,31 +46,15 @@ internal sealed class _003C_003Ez__ReadOnlySingleElementList<T> : IEnumerable, I { get { - int num = ((index == 0) ? 2495584 : 2495587); - while (true) + if (index != 0) { - int num2 = num; - int num3 = 2495585; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return _item; - case 2: - throw _202D_202E_202A_206A_206C_200F_202B_200F_202A_206B_200B_202A_202C_202A_206A_206C_202B_200F_202A_206B_202C_202D_200F_200E_202C_206D_206C_206C_202E_200B_200E_200F_200F_200C_206C_202C_206F_206E_200B_202E_202E(); - case 0: - goto IL_0055; - } - continue; - IL_0055: - num = 2495587; + throw new IndexOutOfRangeException(); } + return _item; } set { - throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E(); + throw new NotSupportedException(); } } @@ -100,25 +68,11 @@ internal sealed class _003C_003Ez__ReadOnlySingleElementList<T> : IEnumerable, I { get { - int num = ((index == 0) ? (-1500986328) : (-1500986325)); - while (true) + if (index != 0) { - int num2 = num; - int num3 = -1500986327; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return _item; - case 2: - throw _202D_202E_202A_206A_206C_200F_202B_200F_202A_206B_200B_202A_202C_202A_206A_206C_202B_200F_202A_206B_202C_202D_200F_200E_202C_206D_206C_206C_202E_200B_200E_200F_200F_200C_206C_202C_206F_206E_200B_202E_202E(); - case 0: - goto IL_004e; - } - continue; - IL_004e: - num = -1500986325; + throw new IndexOutOfRangeException(); } + return _item; } } @@ -130,29 +84,15 @@ internal sealed class _003C_003Ez__ReadOnlySingleElementList<T> : IEnumerable, I { get { - int num = ((index == 0) ? 246612200 : 246612201); - while (true) + if (index != 0) { - int num2 = num; - int num3 = 246612200; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0041; - case 0: - return _item; - case 1: - throw _202D_202E_202A_206A_206C_200F_202B_200F_202A_206B_200B_202A_202C_202A_206A_206C_202B_200F_202A_206B_202C_202D_200F_200E_202C_206D_206C_206C_202E_200B_200E_200F_200F_200C_206C_202C_206F_206E_200B_202E_202E(); - } - continue; - IL_0041: - num = 246612201; + throw new IndexOutOfRangeException(); } + return _item; } set { - throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E(); + throw new NotSupportedException(); } } @@ -168,17 +108,17 @@ internal sealed class _003C_003Ez__ReadOnlySingleElementList<T> : IEnumerable, I void ICollection.CopyTo(Array array, int index) { - _206C_200B_202C_206B_206C_200D_202D_202E_206B_206A_206D_200B_206D_200B_206E_200D_206F_206F_206E_206B_202E_200E_206E_200C_202D_202A_206E_206B_200B_202D_202E_202E_206D_202D_202B_200E_206A_202D_202E_206C_202E(array, (object)_item, index); + array.SetValue(_item, index); } int IList.Add(object? value) { - throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E(); + throw new NotSupportedException(); } void IList.Clear() { - throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E(); + throw new NotSupportedException(); } bool IList.Contains(object? value) @@ -188,40 +128,26 @@ internal sealed class _003C_003Ez__ReadOnlySingleElementList<T> : IEnumerable, I int IList.IndexOf(object? value) { - int num = (EqualityComparer<T>.Default.Equals(_item, (T)value) ? 135208521 : 135208522); - while (true) + if (!EqualityComparer<T>.Default.Equals(_item, (T)value)) { - int num2 = num; - int num3 = 135208520; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0056; - case 2: - return -1; - case 1: - return 0; - } - continue; - IL_0056: - num = 135208522; + return -1; } + return 0; } void IList.Insert(int index, object? value) { - throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E(); + throw new NotSupportedException(); } void IList.Remove(object? value) { - throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E(); + throw new NotSupportedException(); } void IList.RemoveAt(int index) { - throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E(); + throw new NotSupportedException(); } IEnumerator<T> IEnumerable<T>.GetEnumerator() @@ -231,12 +157,12 @@ internal sealed class _003C_003Ez__ReadOnlySingleElementList<T> : IEnumerable, I void ICollection<T>.Add(T item) { - throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E(); + throw new NotSupportedException(); } void ICollection<T>.Clear() { - throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E(); + throw new NotSupportedException(); } bool ICollection<T>.Contains(T item) @@ -251,56 +177,25 @@ internal sealed class _003C_003Ez__ReadOnlySingleElementList<T> : IEnumerable, I bool ICollection<T>.Remove(T item) { - throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E(); + throw new NotSupportedException(); } int IList<T>.IndexOf(T item) { - int num = (EqualityComparer<T>.Default.Equals(_item, item) ? (-2052686167) : (-2052686166)); - while (true) + if (!EqualityComparer<T>.Default.Equals(_item, item)) { - int num2 = num; - int num3 = -2052686165; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0053; - case 1: - return -1; - case 2: - return 0; - } - continue; - IL_0053: - num = -2052686166; + return -1; } + return 0; } void IList<T>.Insert(int index, T item) { - throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E(); + throw new NotSupportedException(); } void IList<T>.RemoveAt(int index) { - throw _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E(); - } - - static void _206C_200B_202C_206B_206C_200D_202D_202E_206B_206A_206D_200B_206D_200B_206E_200D_206F_206F_206E_206B_202E_200E_206E_200C_202D_202A_206E_206B_200B_202D_202E_202E_206D_202D_202B_200E_206A_202D_202E_206C_202E(Array P_0, object P_1, int P_2) - { - P_0.SetValue(P_1, P_2); - } - - static IndexOutOfRangeException _202D_202E_202A_206A_206C_200F_202B_200F_202A_206B_200B_202A_202C_202A_206A_206C_202B_200F_202A_206B_202C_202D_200F_200E_202C_206D_206C_206C_202E_200B_200E_200F_200F_200C_206C_202C_206F_206E_200B_202E_202E() - { - return new IndexOutOfRangeException(); - } - - static NotSupportedException _200D_206D_202D_202C_206E_206F_202C_202A_200C_206F_206A_202D_200C_206F_200D_200E_202A_206A_202D_202D_206F_202B_202B_206D_202C_200C_206A_202C_200D_202A_202D_200F_206D_200B_202E_206B_200E_200D_206B_206D_202E() - { - return new NotSupportedException(); + throw new NotSupportedException(); } } diff --git a/SmartNav/SmartNav.Data/AetheryteData.cs b/SmartNav/SmartNav.Data/AetheryteData.cs index 9cc431c..d165245 100644 --- a/SmartNav/SmartNav.Data/AetheryteData.cs +++ b/SmartNav/SmartNav.Data/AetheryteData.cs @@ -1,10 +1,7 @@ -using System; -using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using Lumina.Excel.Sheets; using SmartNav.Model; @@ -13,58 +10,6 @@ namespace SmartNav.Data; public sealed class AetheryteData { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<Aetheryte, bool> _003C_003E9__1_4; - - public static Func<TerritoryType, bool> _003C_003E9__1_2; - - public static Func<TerritoryType, ushort> _003C_003E9__1_3; - - internal bool _003C_002Ector_003Eb__1_4(Aetheryte x) - { - return x.RowId != 0; - } - - internal bool _003C_002Ector_003Eb__1_2(TerritoryType x) - { - int num = ((x.RowId == 0) ? 1435581385 : 1435581386); - while (true) - { - int num2 = num; - int num3 = 1435581387; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return x.TerritoryIntendedUse.RowId == 0; - case 1: - num = (_202E_200B_202A_200C_200D_202B_206E_206A_200C_206B_200D_200D_206F_206B_202A_202A_206B_202A_200D_206C_206E_206F_202C_200F_202C_206A_206B_206F_202E_202B_202A_202E_206C_202C_206E_202B_200E_200D_202A_202C_202E(x.Name.ToString()) ? 1435581385 : 1435581384); - break; - case 2: - return false; - case 0: - num = 1435581386; - break; - } - } - } - - internal ushort _003C_002Ector_003Eb__1_3(TerritoryType x) - { - return (ushort)x.RowId; - } - - static bool _202E_200B_202A_200C_200D_202B_206E_206A_200C_206B_200D_200D_206F_206B_202A_202A_206B_202A_200D_206C_206E_206F_202C_200F_202C_206A_206B_206F_202E_202B_202A_202E_206C_202C_206E_202B_200E_200D_202A_202C_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - } - public ReadOnlyDictionary<EAetheryteLocation, Vector3> Locations { get; } = new Dictionary<EAetheryteLocation, Vector3> { { @@ -1026,29 +971,17 @@ public sealed class AetheryteData { Dictionary<EAetheryteLocation, ushort> territoryIds = new Dictionary<EAetheryteLocation, ushort>(); Dictionary<EAetheryteLocation, ushort> aethernetGroups = new Dictionary<EAetheryteLocation, ushort>(); - IEnumerator<Aetheryte> enumerator = (from x in dataManager.GetExcelSheet<Aetheryte>() + foreach (Aetheryte item in from x in dataManager.GetExcelSheet<Aetheryte>() where x.RowId != 0 - select x).GetEnumerator(); - try + select x) { - while (_206F_200C_200E_200C_200E_200B_206B_200C_200F_200E_206C_200F_202A_202D_206E_200B_202A_202B_206E_206F_200F_202B_206D_202A_200C_202C_206B_206A_206B_200F_200F_200D_200C_206E_202D_206D_206F_200E_202B_200E_202E((IEnumerator)enumerator)) + if (item.Territory.RowId != 0) { - Aetheryte current = enumerator.Current; - if (current.Territory.RowId != 0) - { - territoryIds[(EAetheryteLocation)current.RowId] = (ushort)current.Territory.RowId; - } - if (current.AethernetGroup > 0) - { - aethernetGroups[(EAetheryteLocation)current.RowId] = current.AethernetGroup; - } + territoryIds[(EAetheryteLocation)item.RowId] = (ushort)item.Territory.RowId; } - } - finally - { - if (enumerator != null) + if (item.AethernetGroup > 0) { - _202A_200D_206E_202B_206E_202C_200F_202D_200D_206B_206E_206E_206C_200E_202C_200D_202D_206B_206C_202C_202B_206A_202B_206C_206D_202A_202B_200D_202E_206C_206A_206D_202A_206F_206E_206E_200C_202D_206C_206C_202E((IDisposable)enumerator); + aethernetGroups[(EAetheryteLocation)item.RowId] = item.AethernetGroup; } } ConfigureAetheryte(EAetheryteLocation.IshgardFirmament, 886, aethernetGroups[EAetheryteLocation.Ishgard]); @@ -1062,29 +995,8 @@ public sealed class AetheryteData ConfigureAetheryteWithAutoGroup(EAetheryteLocation.FirmamentEasternRisensongQuarter, 886); TerritoryIds = territoryIds.AsReadOnly(); AethernetGroups = aethernetGroups.AsReadOnly(); - TownTerritoryIds = (from x in dataManager.GetExcelSheet<TerritoryType>().Where(delegate(TerritoryType x) - { - int num = ((x.RowId == 0) ? 1435581385 : 1435581386); - while (true) - { - int num2 = num; - int num3 = 1435581387; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - return x.TerritoryIntendedUse.RowId == 0; - case 1: - num = (_003C_003Ec._202E_200B_202A_200C_200D_202B_206E_206A_200C_206B_200D_200D_206F_206B_202A_202A_206B_202A_200D_206C_206E_206F_202C_200F_202C_206A_206B_206F_202E_202B_202A_202E_206C_202C_206E_202B_200E_200D_202A_202C_202E(x.Name.ToString()) ? 1435581385 : 1435581384); - break; - case 2: - return false; - case 0: - num = 1435581386; - break; - } - } - }) + TownTerritoryIds = (from x in dataManager.GetExcelSheet<TerritoryType>() + where x.RowId != 0 && !string.IsNullOrEmpty(x.Name.ToString()) && x.TerritoryIntendedUse.RowId == 0 select (ushort)x.RowId).ToList(); void ConfigureAetheryte(EAetheryteLocation aetheryteLocation, ushort territoryId, ushort aethernetGroup) { @@ -1099,93 +1011,41 @@ public sealed class AetheryteData public float CalculateDistance(Vector3 fromPosition, uint fromTerritoryType, EAetheryteLocation to) { - ushort value; - int num = ((!TerritoryIds.TryGetValue(to, out value)) ? (-1407509287) : (-1407509284)); - Vector3 value2 = default(Vector3); - while (true) + if (!TerritoryIds.TryGetValue(to, out var value) || fromTerritoryType != value) { - int num2 = num; - int num3 = -1407509283; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - num = -1407509284; - break; - case 0: - return float.MaxValue; - case 2: - num = (Locations.TryGetValue(to, out value2) ? (-1407509282) : (-1407509283)); - break; - case 1: - num = ((fromTerritoryType == value) ? (-1407509281) : (-1407509287)); - break; - case 4: - return float.MaxValue; - case 3: - return (fromPosition - value2).Length(); - } + return float.MaxValue; } + if (!Locations.TryGetValue(to, out var value2)) + { + return float.MaxValue; + } + return (fromPosition - value2).Length(); } public float CalculateAirshipLandingDistance(Vector3 fromPosition, uint fromTerritoryType, EAetheryteLocation to) { - ushort value; - int num = ((!TerritoryIds.TryGetValue(to, out value)) ? 1034304709 : 1034304710); - Vector3 value2 = default(Vector3); - while (true) + if (!TerritoryIds.TryGetValue(to, out var value) || fromTerritoryType != value) { - int num2 = num; - int num3 = 1034304708; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return float.MaxValue; - case 5: - return float.MaxValue; - case 3: - num = 1034304710; - break; - case 2: - num = ((fromTerritoryType == value) ? 1034304708 : 1034304709); - break; - case 0: - num = (AirshipLandingLocations.TryGetValue(to, out value2) ? 1034304704 : 1034304705); - break; - case 4: - return (fromPosition - value2).Length(); - } + return float.MaxValue; } + if (!AirshipLandingLocations.TryGetValue(to, out var value2)) + { + return float.MaxValue; + } + return (fromPosition - value2).Length(); } public bool IsCityAetheryte(EAetheryteLocation aetheryte) { - int num = ((aetheryte != EAetheryteLocation.IshgardFirmament) ? 819559610 : 819559608); - ushort value = default(ushort); - while (true) + if (aetheryte == EAetheryteLocation.IshgardFirmament) { - int num2 = num; - int num3 = 819559609; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = 819559608; - break; - case 1: - return true; - case 2: - return TownTerritoryIds.Contains(value); - case 0: - return false; - case 3: - num = ((!TerritoryIds.TryGetValue(aetheryte, out value)) ? 819559609 : 819559611); - break; - } + return true; } + if (TerritoryIds.TryGetValue(aetheryte, out var value)) + { + return TownTerritoryIds.Contains(value); + } + return false; } public bool IsAirshipLanding(EAetheryteLocation aetheryte) @@ -1197,51 +1057,11 @@ public sealed class AetheryteData { ushort value; bool flag = TerritoryIds.TryGetValue(aetheryte, out value); - int num = ((!flag) ? 1444610048 : 1444610051); - bool flag2 = default(bool); - while (true) + if (flag) { - int num2 = num; - int num3 = 1444610054; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = ((value != 388) ? 1444610050 : 1444610055); - break; - case 4: - flag2 = false; - num = 1444610053; - break; - case 3: - flag = flag2; - num = 1444610048; - break; - case 6: - return flag; - case 5: - num = ((value == 144) ? 1444610055 : 1444610054); - break; - case 2: - num = 1444610051; - break; - case 1: - flag2 = true; - num = 1444610053; - break; - } + bool flag2 = ((value == 144 || value == 388) ? true : false); + flag = flag2; } - } - - static bool _206F_200C_200E_200C_200E_200B_206B_200C_200F_200E_206C_200F_202A_202D_206E_200B_202A_202B_206E_206F_200F_202B_206D_202A_200C_202C_206B_206A_206B_200F_200F_200D_200C_206E_202D_206D_206F_200E_202B_200E_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202A_200D_206E_202B_206E_202C_200F_202D_200D_206B_206E_206E_206C_200E_202C_200D_202D_206B_206C_202C_202B_206A_202B_206C_206D_202A_202B_200D_202E_206C_206A_206D_202A_206F_206E_206E_200C_202D_206C_206C_202E(IDisposable P_0) - { - P_0.Dispose(); + return flag; } } diff --git a/SmartNav/SmartNav.Data/ExitRangeEntry.cs b/SmartNav/SmartNav.Data/ExitRangeEntry.cs index d7f0b3f..83e4c61 100644 --- a/SmartNav/SmartNav.Data/ExitRangeEntry.cs +++ b/SmartNav/SmartNav.Data/ExitRangeEntry.cs @@ -1,169 +1,5 @@ -using System; -using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; namespace SmartNav.Data; -internal sealed record ExitRangeEntry(ushort SourceTerritoryId, uint InstanceId, Vector3 SourcePosition, ushort DestTerritoryId, uint DestInstanceId, uint ReturnInstanceId, Vector3 Rotation = default(Vector3), Vector3 HalfExtents = default(Vector3)) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200F_202B_200D_200E_200B_200B_202A_202A_200E_200B_200B_206D_202B_206B_202D_206D_200B_206D_206F_202C_206A_200D_206D_206D_206E_200E_200B_206A_202E_206C_206C_206C_206A_206D_206C_206B_202D_200E_206A_202C_202E(typeof(ExitRangeEntry).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200E_206B_200D_206D_206D_200E_200B_206C_200D_202E_202A_202D_202C_202E_206A_206F_200C_202A_202A_200F_200C_200E_202C_206D_202D_206A_206E_206B_200D_200C_202C_206E_206B_206F_202E_200F_202B_200F_206E_202A_202E(); - _202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(347281461)); - _202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-979564187)); - int num = ((!PrintMembers(stringBuilder)) ? (-1576777821) : (-1576777824)); - while (true) - { - int num2 = num; - int num3 = -1576777823; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1576777824; - break; - case 1: - _202C_202B_206D_202E_202C_206C_206D_206B_202D_202B_200F_202B_200B_206A_206B_200F_206C_206D_202B_200D_202C_202A_200B_206B_202B_202D_206E_206E_200C_202B_202B_200E_202C_200B_200D_202A_206E_206E_206E_200E_202E(stringBuilder, ' '); - num = -1576777821; - break; - case 2: - _202C_202B_206D_202E_202C_206C_206D_206B_202D_202B_200F_202B_200B_206A_206B_200F_206C_206D_202B_200D_202C_202A_200B_206B_202B_202D_206E_206E_200C_202B_202B_200E_202C_200B_200D_202A_206E_206E_206E_200E_202E(stringBuilder, '}'); - return _202D_206B_206C_200B_202C_206B_200B_200F_200E_206D_200D_202E_202C_200E_202C_206D_200C_206B_206A_206B_202A_202C_206D_202D_206D_206B_202B_200E_200E_206F_200E_206C_206E_206F_206E_202B_206F_200E_206D_202B_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202C_200C_202A_202D_206B_202B_202D_206D_200D_200C_200C_206A_202B_200C_206A_206E_202B_206D_200E_202A_202D_200F_200B_206F_200B_200F_206E_206E_202B_202D_206C_200E_202A_200C_202E_202D_206B_202A_206A_200E_202E(); - _202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(2044495272)); - _202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, SourceTerritoryId.ToString()); - _202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1866378227)); - _202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, InstanceId.ToString()); - _202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-135037385)); - _202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, SourcePosition.ToString()); - _202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(1613414786)); - _202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, DestTerritoryId.ToString()); - _202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1889617405)); - _202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, DestInstanceId.ToString()); - _202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1625716735)); - _202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, ReturnInstanceId.ToString()); - _202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-2061524224)); - _202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, Rotation.ToString()); - _202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-1794994947)); - _202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(builder, HalfExtents.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(ExitRangeEntry? other) - { - int num = (((object)this == other) ? 193782023 : 193782031); - while (true) - { - int num2 = num; - int num3 = 193782030; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 7: - return false; - case 10: - num = ((!EqualityComparer<Vector3>.Default.Equals(SourcePosition, other.SourcePosition)) ? 193782025 : 193782030); - break; - case 2: - num = ((!_202E_202C_206D_206E_202B_202B_202E_202A_200D_200F_206C_206D_200F_200B_200B_206B_200C_200E_202B_206D_202C_200B_202B_206A_206D_200C_202D_202A_202E_206F_202A_200E_206A_206C_200D_202D_202B_202D_200B_202B_202E(EqualityContract, other.EqualityContract)) ? 193782025 : 193782022); - break; - case 5: - num = ((!EqualityComparer<uint>.Default.Equals(ReturnInstanceId, other.ReturnInstanceId)) ? 193782025 : 193782024); - break; - case 1: - num = (((object)other == null) ? 193782025 : 193782028); - break; - case 11: - num = ((!EqualityComparer<uint>.Default.Equals(DestInstanceId, other.DestInstanceId)) ? 193782025 : 193782027); - break; - case 0: - num = ((!EqualityComparer<ushort>.Default.Equals(DestTerritoryId, other.DestTerritoryId)) ? 193782025 : 193782021); - break; - case 12: - return EqualityComparer<Vector3>.Default.Equals(HalfExtents, other.HalfExtents); - case 3: - num = 193782031; - break; - case 8: - num = ((!EqualityComparer<ushort>.Default.Equals(SourceTerritoryId, other.SourceTerritoryId)) ? 193782025 : 193782026); - break; - case 4: - num = ((!EqualityComparer<uint>.Default.Equals(InstanceId, other.InstanceId)) ? 193782025 : 193782020); - break; - case 9: - return true; - case 6: - num = ((!EqualityComparer<Vector3>.Default.Equals(Rotation, other.Rotation)) ? 193782025 : 193782018); - break; - } - } - } - - bool IEquatable<ExitRangeEntry>.Equals(ExitRangeEntry? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200F_202B_200D_200E_200B_200B_202A_202A_200E_200B_200B_206D_202B_206B_202D_206D_200B_206D_206F_202C_206A_200D_206D_206D_206E_200E_200B_206A_202E_206C_206C_206C_206A_206D_206C_206B_202D_200E_206A_202C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200E_206B_200D_206D_206D_200E_200B_206C_200D_202E_202A_202D_202C_202E_206A_206F_200C_202A_202A_200F_200C_200E_202C_206D_202D_206A_206E_206B_200D_200C_202C_206E_206B_206F_202E_200F_202B_200F_206E_202A_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202E_206A_200F_206B_200C_202E_206C_206E_200F_206A_206B_206B_200B_200F_206F_202E_206F_206F_200D_200C_200F_202A_202C_200E_202E_200E_200B_206D_200E_206F_202A_202A_206A_206E_202D_202B_200C_200B_202A_206D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202C_202B_206D_202E_202C_206C_206D_206B_202D_202B_200F_202B_200B_206A_206B_200F_206C_206D_202B_200D_202C_202A_200B_206B_202B_202D_206E_206E_200C_202B_202B_200E_202C_200B_200D_202A_206E_206E_206E_200E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202D_206B_206C_200B_202C_206B_200B_200F_200E_206D_200D_202E_202C_200E_202C_206D_200C_206B_206A_206B_202A_202C_206D_202D_206D_206B_202B_200E_200E_206F_200E_206C_206E_206F_206E_202B_206F_200E_206D_202B_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202C_200C_202A_202D_206B_202B_202D_206D_200D_200C_200C_206A_202B_200C_206A_206E_202B_206D_200E_202A_202D_200F_200B_206F_200B_200F_206E_206E_202B_202D_206C_200E_202A_200C_202E_202D_206B_202A_206A_200E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _202E_202C_206D_206E_202B_202B_202E_202A_200D_200F_206C_206D_200F_200B_200B_206B_200C_200E_202B_206D_202C_200B_202B_206A_206D_200C_202D_202A_202E_206F_202A_200E_206A_206C_200D_202D_202B_202D_200B_202B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +internal sealed record ExitRangeEntry(ushort SourceTerritoryId, uint InstanceId, Vector3 SourcePosition, ushort DestTerritoryId, uint DestInstanceId, uint ReturnInstanceId, Vector3 Rotation = default(Vector3), Vector3 HalfExtents = default(Vector3)); diff --git a/SmartNav/SmartNav.Data/LgbZoneBoundarySource.cs b/SmartNav/SmartNav.Data/LgbZoneBoundarySource.cs index d39631d..6861f7a 100644 --- a/SmartNav/SmartNav.Data/LgbZoneBoundarySource.cs +++ b/SmartNav/SmartNav.Data/LgbZoneBoundarySource.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; +using System.IO; using System.Numerics; -using System.Runtime.CompilerServices; using System.Threading; using Dalamud.Plugin.Services; using LLib.GameData; @@ -16,16 +16,28 @@ namespace SmartNav.Data; public sealed class LgbZoneBoundarySource : IZoneBoundarySource { + private const uint BoundaryFileMagic = 1112425562u; + + private const int BoundaryFileFormatVersion = 1; + + private const string CacheFileName = "zone-boundary-cache.bin"; + private readonly IDataManager _dataManager; private readonly ILogger<LgbZoneBoundarySource> _logger; private readonly Lazy<IReadOnlyList<ZoneBoundary>> _boundaries; - public LgbZoneBoundarySource(IDataManager dataManager, ILogger<LgbZoneBoundarySource> logger) + private readonly string? _cacheDirectory; + + private readonly string? _gameVersion; + + public LgbZoneBoundarySource(IDataManager dataManager, ILogger<LgbZoneBoundarySource> logger, SmartNavDataOptions? dataOptions = null) { _dataManager = dataManager; _logger = logger; + _cacheDirectory = dataOptions?.UserOverrideDirectory?.FullName; + _gameVersion = dataOptions?.GameVersion; _boundaries = new Lazy<IReadOnlyList<ZoneBoundary>>(Build, LazyThreadSafetyMode.ExecutionAndPublication); } @@ -34,378 +46,195 @@ public sealed class LgbZoneBoundarySource : IZoneBoundarySource return _boundaries.Value; } - IReadOnlyList<ZoneBoundary> IZoneBoundarySource.GetBoundaries() - { - //ILSpy generated this explicit interface implementation from .override directive in GetBoundaries - return this.GetBoundaries(); - } - - [MethodImpl(MethodImplOptions.NoInlining)] private IReadOnlyList<ZoneBoundary> Build() { try { - (List<ExitRangeEntry> ExitRanges, Dictionary<(ushort TerritoryId, uint InstanceId), PopRangeEntry> PopRangeIndex) tuple = CollectLgbData(); - List<ExitRangeEntry> item = tuple.ExitRanges; - Dictionary<(ushort, uint), PopRangeEntry> item2 = tuple.PopRangeIndex; + (List<ExitRangeEntry>, Dictionary<(ushort, uint), PopRangeEntry>)? tuple = TryLoadFromDisk(); + if (!tuple.HasValue) + { + _logger.LogInformation("No boundary cache found, falling back to in-process LGB scan"); + } + (List<ExitRangeEntry>, Dictionary<(ushort, uint), PopRangeEntry>) obj = tuple ?? CollectLgbData(); + List<ExitRangeEntry> item = obj.Item1; + Dictionary<(ushort, uint), PopRangeEntry> item2 = obj.Item2; List<ZoneBoundary> list = ZoneBoundaryDerivation.Derive(item, item2, _logger); ZoneBoundaryDerivation.ApplyOverrides(list, ZoneBoundaryOverrides.FlyingPairs, ZoneBoundaryOverrides.PositionOverrides, _logger); - _206C_200B_206A_202D_206B_206B_206B_202B_202C_202E_202D_206B_206B_202C_200E_202E_206A_202E_200D_206E_206E_206D_206A_206C_206A_202E_206B_202E_202B_206E_202C_200C_206B_202B_206F_206C_206C_202E_202C_206D_202E((ILogger)_logger, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-981985917), new object[2] { list.Count, item.Count }); + _logger.LogDebug("Derived {Count} zone boundaries from {ExitCount} ExitRanges{Source}", list.Count, item.Count, tuple.HasValue ? " (from cache)" : ""); return list; } - catch (Exception ex) + catch (Exception exception) { - _202A_200E_202B_202E_200D_200F_200E_206F_206A_206C_202C_202B_200B_200C_200E_206A_206A_200E_202C_206F_202D_200B_202D_206A_200C_206D_200B_206D_206D_202B_206E_206B_206F_200E_202B_202D_200E_206C_202C_202D_202E((ILogger)_logger, ex, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(927516533), Array.Empty<object>()); + _logger.LogError(exception, "Zone boundary derivation failed - building graph without boundary edges"); return Array.Empty<ZoneBoundary>(); } } + private (List<ExitRangeEntry> ExitRanges, Dictionary<(ushort TerritoryId, uint InstanceId), PopRangeEntry> PopRangeIndex)? TryLoadFromDisk() + { + if (string.IsNullOrEmpty(_cacheDirectory) || string.IsNullOrEmpty(_gameVersion)) + { + return null; + } + string path = Path.Combine(_cacheDirectory, "zone-boundary-cache.bin"); + if (!File.Exists(path)) + { + return null; + } + try + { + using BinaryReader binaryReader = new BinaryReader(File.OpenRead(path)); + if (binaryReader.ReadUInt32() != 1112425562 || binaryReader.ReadInt32() != 1) + { + _logger.LogDebug("Zone boundary cache has unknown header, discarding"); + return null; + } + if (binaryReader.ReadString() != _gameVersion) + { + _logger.LogDebug("Zone boundary cache is for a different game version, discarding"); + return null; + } + int num = binaryReader.ReadInt32(); + List<ExitRangeEntry> list = new List<ExitRangeEntry>(num); + for (int i = 0; i < num; i++) + { + list.Add(new ExitRangeEntry(binaryReader.ReadUInt16(), binaryReader.ReadUInt32(), new Vector3(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle()), binaryReader.ReadUInt16(), binaryReader.ReadUInt32(), binaryReader.ReadUInt32(), new Vector3(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle()), new Vector3(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle()))); + } + int num2 = binaryReader.ReadInt32(); + Dictionary<(ushort, uint), PopRangeEntry> dictionary = new Dictionary<(ushort, uint), PopRangeEntry>(num2); + for (int j = 0; j < num2; j++) + { + ushort num3 = binaryReader.ReadUInt16(); + uint num4 = binaryReader.ReadUInt32(); + Vector3 position = new Vector3(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle()); + dictionary[(num3, num4)] = new PopRangeEntry(num3, num4, position); + } + _logger.LogDebug("Zone boundary cache loaded from disk ({ExitCount} exits, {PopCount} pops)", list.Count, dictionary.Count); + return (list, dictionary); + } + catch (Exception exception) + { + _logger.LogWarning(exception, "Failed to load zone boundary cache, falling back to LGB scan"); + } + try + { + File.Delete(path); + } + catch + { + } + return null; + } + private (List<ExitRangeEntry> ExitRanges, Dictionary<(ushort TerritoryId, uint InstanceId), PopRangeEntry> PopRangeIndex) CollectLgbData() { List<ExitRangeEntry> list = new List<ExitRangeEntry>(); Dictionary<(ushort, uint), PopRangeEntry> dictionary = new Dictionary<(ushort, uint), PopRangeEntry>(); HashSet<uint> hashSet = new HashSet<uint>(); - using (ExcelSheet<Aetheryte>.Enumerator enumerator = _dataManager.GetExcelSheet<Aetheryte>().GetEnumerator()) + foreach (Aetheryte item in _dataManager.GetExcelSheet<Aetheryte>()) { - int num = 1763362761; - while (true) - { - int num2 = num; - int num3 = 1763362761; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = 1763362761; - break; - case 0: - num = (enumerator.MoveNext() ? 1763362760 : 1763362763); - break; - case 1: - hashSet.Add(enumerator.Current.Territory.RowId); - num = 1763362761; - break; - case 2: - goto end_IL_003b; - } - continue; - end_IL_003b: - break; - } + hashSet.Add(item.Territory.RowId); } ExcelSheet<TerritoryType> excelSheet = _dataManager.GetExcelSheet<TerritoryType>(); HashSet<string> visitedLgbPaths = new HashSet<string>(); - using (ExcelSheet<TerritoryType>.Enumerator enumerator2 = excelSheet.GetEnumerator()) + bool cacheFileResources = _dataManager.GameData.Options.CacheFileResources; + _dataManager.GameData.Options.CacheFileResources = false; + try { - int num = -1445218693; - TerritoryType current = default(TerritoryType); - while (true) + foreach (TerritoryType item2 in excelSheet) { - int num5 = num; - int num3 = -1445218689; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) + if (hashSet.Contains(item2.RowId)) { - case 3: - num = -1445218693; - break; - case 1: - current = enumerator2.Current; - num = ((!hashSet.Contains(current.RowId)) ? (-1445218693) : (-1445218691)); - break; - case 2: - ScanTerritory(list, dictionary, visitedLgbPaths, current); - num = -1445218693; - break; - case 4: - num = (enumerator2.MoveNext() ? (-1445218690) : (-1445218689)); - break; - case 0: - goto end_IL_010c; + ScanTerritory(list, dictionary, visitedLgbPaths, item2); } - continue; - end_IL_010c: - break; + } + foreach (TerritoryType item3 in excelSheet) + { + ScanTerritory(list, dictionary, visitedLgbPaths, item3); } } - using (ExcelSheet<TerritoryType>.Enumerator enumerator2 = excelSheet.GetEnumerator()) + finally { - int num = -1007277372; - while (true) - { - int num8 = num; - int num3 = -1007277372; - int num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 2: - num = -1007277372; - break; - case 1: - { - TerritoryType current2 = enumerator2.Current; - ScanTerritory(list, dictionary, visitedLgbPaths, current2); - num = -1007277372; - break; - } - case 0: - num = (enumerator2.MoveNext() ? (-1007277371) : (-1007277369)); - break; - case 3: - goto end_IL_01e4; - } - continue; - end_IL_01e4: - break; - } + _dataManager.GameData.Options.CacheFileResources = cacheFileResources; } return (ExitRanges: list, PopRangeIndex: dictionary); } private static bool IsNavigableOverworld(ETerritoryIntendedUse use) { - int num = ((use > ETerritoryIntendedUse.HousingOutdoor) ? (-754120289) : (-754120291)); - bool result = default(bool); - while (true) + switch (use) { - int num2 = num; - int num3 = -754120292; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - num = ((use == ETerritoryIntendedUse.Eureka) ? (-754120298) : (-754120294)); - break; - case 12: - num = ((use - 21 <= ETerritoryIntendedUse.Inn) ? (-754120298) : (-754120295)); - break; - case 11: - num = ((use - 60 > ETerritoryIntendedUse.Overworld) ? (-754120300) : (-754120298)); - break; - case 0: - num = -754120291; - break; - case 6: - num = -754120300; - break; - case 3: - num = ((use > ETerritoryIntendedUse.Eureka) ? (-754120290) : (-754120304)); - break; - case 1: - num = ((use <= ETerritoryIntendedUse.Overworld) ? (-754120298) : (-754120303)); - break; - case 8: - result = false; - num = -754120296; - break; - case 10: - result = true; - num = -754120296; - break; - case 9: - num = ((use == ETerritoryIntendedUse.HousingOutdoor) ? (-754120298) : (-754120293)); - break; - case 13: - num = ((use == ETerritoryIntendedUse.OpeningArea) ? (-754120298) : (-754120299)); - break; - case 4: - return result; - case 2: - num = ((use - 48 <= ETerritoryIntendedUse.Overworld) ? (-754120298) : (-754120297)); - break; - case 7: - num = -754120300; - break; - } + case ETerritoryIntendedUse.Town: + case ETerritoryIntendedUse.Overworld: + case ETerritoryIntendedUse.OpeningArea: + case ETerritoryIntendedUse.HousingOutdoor: + case ETerritoryIntendedUse.Firmament: + case ETerritoryIntendedUse.SanctumOfTheTwelve: + case ETerritoryIntendedUse.GoldSaucer: + case ETerritoryIntendedUse.Eureka: + case ETerritoryIntendedUse.Bozja: + case ETerritoryIntendedUse.IslandSanctuary: + case ETerritoryIntendedUse.CosmicExploration: + case ETerritoryIntendedUse.OccultCrescent: + return true; + default: + return false; } } - [MethodImpl(MethodImplOptions.NoInlining)] private void ScanTerritory(List<ExitRangeEntry> exitRanges, Dictionary<(ushort TerritoryId, uint InstanceId), PopRangeEntry> popRangeIndex, HashSet<string> visitedLgbPaths, TerritoryType territory) { - int num = ((territory.RowId != 0) ? 954333098 : 954333094); - string text4 = default(string); - int num16 = default(int); - string text = default(string); - int num9 = default(int); - LayerCommon.InstanceObject instanceObject = default(LayerCommon.InstanceObject); - int num11 = default(int); - LayerCommon.Layer[] array = default(LayerCommon.Layer[]); - LayerCommon.InstanceObject[] instanceObjects = default(LayerCommon.InstanceObject[]); - while (true) + if (territory.RowId == 0 || !IsNavigableOverworld((ETerritoryIntendedUse)territory.TerritoryIntendedUse.RowId)) { - int num2 = num; - int num3 = 954333091; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + string text = territory.Bg.ExtractText(); + if (string.IsNullOrEmpty(text)) + { + return; + } + int num = text.IndexOf("/level/", StringComparison.Ordinal); + if (num < 0) + { + return; + } + string text2 = "bg/" + text.Substring(0, num + 1) + "level/planmap.lgb"; + if (!visitedLgbPaths.Add(text2)) + { + return; + } + ushort num2 = (ushort)territory.RowId; + LgbFile file; + try + { + file = _dataManager.GetFile<LgbFile>(text2); + } + catch (Exception exception) + { + _logger.LogTrace(exception, "Failed to load {Path}", text2); + return; + } + if (file == null) + { + return; + } + LayerCommon.Layer[] layers = file.Layers; + for (int i = 0; i < layers.Length; i++) + { + LayerCommon.InstanceObject[] instanceObjects = layers[i].InstanceObjects; + for (int j = 0; j < instanceObjects.Length; j++) { - case 0: - num = 954333094; - break; - case 5: - return; - case 4: - { - string text2 = global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-747831667); - string text3 = text4; - int num15 = num16; - num3 = 1; - num4 = num15; - text = _206A_206C_202B_202E_200D_200B_206E_206D_206D_206E_200B_202A_200F_202C_202B_200F_202D_200F_200D_202A_206E_200B_200E_202A_202E_206C_206E_202C_200D_200F_200E_206F_200E_202A_206E_206B_206F_200B_200C_206D_202E(text2, _200F_200B_206F_202B_202D_206F_200D_202C_206F_206C_206E_202E_202D_206E_206B_206C_202E_202D_206E_202E_206D_200B_202D_200D_202A_202D_206C_200C_206B_206B_200C_200B_200F_200D_200C_206B_206B_206A_206B_200C_202E(text3, 0, (num4 | num3) + (num4 & num3)), global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-1939239349)); - num = (visitedLgbPaths.Add(text) ? 954333092 : 954333089); - break; - } - case 1: - num16 = _202A_206F_200D_202A_202C_206A_200C_202A_206C_206A_206F_200E_206D_206F_206C_200D_200B_202E_206F_202E_200E_206B_200C_206D_202A_202E_206E_200C_206E_206A_202B_206F_200F_206C_206A_200B_206B_202B_202E_200D_202E(text4, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(16137996), StringComparison.Ordinal); - num = ((num16 >= 0) ? 954333095 : 954333099); - break; - case 9: - num = (IsNavigableOverworld((ETerritoryIntendedUse)territory.TerritoryIntendedUse.RowId) ? 954333093 : 954333088); - break; - case 8: - return; - case 10: - return; - case 3: - return; - case 2: - return; - case 6: - text4 = territory.Bg.ExtractText(); - num = ((!_206E_206A_200C_200E_202E_202D_202C_200B_206E_206A_200F_206E_202C_206F_200D_200C_200D_200D_202E_206C_206D_202E_206F_206E_200D_202E_206A_206A_200E_206B_200C_202C_202B_200F_206D_200C_202E_206F_202A_206C_202E(text4)) ? 954333090 : 954333097); - break; - case 7: - { - ushort num7 = (ushort)territory.RowId; - LgbFile file; - try + LayerCommon.InstanceObject instanceObject = instanceObjects[j]; + if (instanceObject.AssetType == LayerEntryType.ExitRange) { - file = _dataManager.GetFile<LgbFile>(text); + LayerCommon.ExitRangeInstanceObject exitRangeInstanceObject = (LayerCommon.ExitRangeInstanceObject)(object)instanceObject.Object; + exitRanges.Add(new ExitRangeEntry(num2, instanceObject.InstanceId, new Vector3(instanceObject.Transform.Translation.X, instanceObject.Transform.Translation.Y, instanceObject.Transform.Translation.Z), exitRangeInstanceObject.TerritoryType, exitRangeInstanceObject.DestInstanceId, exitRangeInstanceObject.ReturnInstanceId, new Vector3(instanceObject.Transform.Rotation.X, instanceObject.Transform.Rotation.Y, instanceObject.Transform.Rotation.Z), new Vector3(instanceObject.Transform.Scale.X, instanceObject.Transform.Scale.Y, instanceObject.Transform.Scale.Z))); } - catch (Exception ex) + else if (instanceObject.AssetType == LayerEntryType.PopRange) { - _206D_206B_200C_200C_200E_200F_202D_206E_200E_206C_206A_200C_200E_202E_202A_200B_206C_206B_206F_200D_202A_202B_206A_200C_202C_202D_200B_202A_202E_206F_206D_202A_206C_200D_200F_200B_200E_206F_206E_206B_202E((ILogger)_logger, ex, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(422414557), new object[1] { text }); - return; + popRangeIndex[(num2, instanceObject.InstanceId)] = new PopRangeEntry(num2, instanceObject.InstanceId, new Vector3(instanceObject.Transform.Translation.X, instanceObject.Transform.Translation.Y, instanceObject.Transform.Translation.Z)); } - num = ((file != null) ? (-1034574211) : (-1034574214)); - while (true) - { - int num8 = num; - num3 = -1034574218; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 6: - { - int num12 = num9; - num3 = 1; - num4 = num12; - int num13 = num4 ^ num3; - int num14 = num4 & num3; - num9 = num13 + (num14 + num14); - num = -1034574220; - break; - } - case 0: - popRangeIndex[(num7, instanceObject.InstanceId)] = new PopRangeEntry(num7, instanceObject.InstanceId, new Vector3(instanceObject.Transform.Translation.X, instanceObject.Transform.Translation.Y, instanceObject.Transform.Translation.Z)); - num = -1034574224; - break; - case 9: - num = ((num11 < array.Length) ? (-1034574210) : (-1034574219)); - break; - case 11: - array = _206B_202A_206C_200B_200F_202D_200C_202D_206C_206E_206C_206E_202E_200B_202D_202C_206F_206F_202B_200E_202A_200C_202E_206E_206D_206E_202B_206E_200F_206F_200F_200E_206F_202D_202C_206E_200D_200F_202A_200E_202E(file); - num11 = 0; - num = -1034574209; - break; - case 12: - return; - case 8: - instanceObjects = array[num11].InstanceObjects; - num9 = 0; - num = -1034574220; - break; - case 7: - { - int num10 = num11; - num3 = 1; - num4 = num10; - num11 = (num4 | num3) + (num4 & num3); - num = -1034574209; - break; - } - case 3: - return; - case 10: - num = -1034574214; - break; - case 2: - num = ((num9 < instanceObjects.Length) ? (-1034574222) : (-1034574223)); - break; - case 1: - { - LayerCommon.ExitRangeInstanceObject exitRangeInstanceObject = (LayerCommon.ExitRangeInstanceObject)(object)instanceObject.Object; - exitRanges.Add(new ExitRangeEntry(num7, instanceObject.InstanceId, new Vector3(instanceObject.Transform.Translation.X, instanceObject.Transform.Translation.Y, instanceObject.Transform.Translation.Z), exitRangeInstanceObject.TerritoryType, exitRangeInstanceObject.DestInstanceId, exitRangeInstanceObject.ReturnInstanceId, new Vector3(instanceObject.Transform.Rotation.X, instanceObject.Transform.Rotation.Y, instanceObject.Transform.Rotation.Z), new Vector3(instanceObject.Transform.Scale.X, instanceObject.Transform.Scale.Y, instanceObject.Transform.Scale.Z))); - num = -1034574224; - break; - } - case 5: - num = ((instanceObject.AssetType != LayerEntryType.PopRange) ? (-1034574224) : (-1034574218)); - break; - case 4: - instanceObject = instanceObjects[num9]; - num = ((instanceObject.AssetType != LayerEntryType.ExitRange) ? (-1034574221) : (-1034574217)); - break; - } - } - } } } } - - static void _206C_200B_206A_202D_206B_206B_206B_202B_202C_202E_202D_206B_206B_202C_200E_202E_206A_202E_200D_206E_206E_206D_206A_206C_206A_202E_206B_202E_202B_206E_202C_200C_206B_202B_206F_206C_206C_202E_202C_206D_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _202A_200E_202B_202E_200D_200F_200E_206F_206A_206C_202C_202B_200B_200C_200E_206A_206A_200E_202C_206F_202D_200B_202D_206A_200C_206D_200B_206D_206D_202B_206E_206B_206F_200E_202B_202D_200E_206C_202C_202D_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogError(P_1, P_2, P_3); - } - - static bool _206E_206A_200C_200E_202E_202D_202C_200B_206E_206A_200F_206E_202C_206F_200D_200C_200D_200D_202E_206C_206D_202E_206F_206E_200D_202E_206A_206A_200E_206B_200C_202C_202B_200F_206D_200C_202E_206F_202A_206C_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static int _202A_206F_200D_202A_202C_206A_200C_202A_206C_206A_206F_200E_206D_206F_206C_200D_200B_202E_206F_202E_200E_206B_200C_206D_202A_202E_206E_200C_206E_206A_202B_206F_200F_206C_206A_200B_206B_202B_202E_200D_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.IndexOf(P_1, P_2); - } - - static string _200F_200B_206F_202B_202D_206F_200D_202C_206F_206C_206E_202E_202D_206E_206B_206C_202E_202D_206E_202E_206D_200B_202D_200D_202A_202D_206C_200C_206B_206B_200C_200B_200F_200D_200C_206B_206B_206A_206B_200C_202E(string P_0, int P_1, int P_2) - { - return P_0.Substring(P_1, P_2); - } - - static string _206A_206C_202B_202E_200D_200B_206E_206D_206D_206E_200B_202A_200F_202C_202B_200F_202D_200F_200D_202A_206E_200B_200E_202A_202E_206C_206E_202C_200D_200F_200E_206F_200E_202A_206E_206B_206F_200B_200C_206D_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static void _206D_206B_200C_200C_200E_200F_202D_206E_200E_206C_206A_200C_200E_202E_202A_200B_206C_206B_206F_200D_202A_202B_206A_200C_202C_202D_200B_202A_202E_206F_206D_202A_206C_200D_200F_200B_200E_206F_206E_206B_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) - { - P_0.LogTrace(P_1, P_2, P_3); - } - - static LayerCommon.Layer[] _206B_202A_206C_200B_200F_202D_200C_202D_206C_206E_206C_206E_202E_200B_202D_202C_206F_206F_202B_200E_202A_200C_202E_206E_206D_206E_202B_206E_200F_206F_200F_200E_206F_202D_202C_206E_200D_200F_202A_200E_202E(LgbFile P_0) - { - return P_0.Layers; - } } diff --git a/SmartNav/SmartNav.Data/PopRangeEntry.cs b/SmartNav/SmartNav.Data/PopRangeEntry.cs index 7dd4257..19069f8 100644 --- a/SmartNav/SmartNav.Data/PopRangeEntry.cs +++ b/SmartNav/SmartNav.Data/PopRangeEntry.cs @@ -1,142 +1,5 @@ -using System; -using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; namespace SmartNav.Data; -internal sealed record PopRangeEntry(ushort TerritoryId, uint InstanceId, Vector3 Position) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _200C_202C_200D_206B_206B_200C_202A_202A_200D_206C_200B_206D_200C_202E_200D_200E_202C_206D_200D_202E_200B_202D_202E_202B_202E_200D_200F_206D_202E_202C_202C_202E_206A_200F_202E_206E_206D_202A_200E_202E_202E(typeof(PopRangeEntry).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202B_200C_206E_200B_206F_200E_206F_206B_202C_202E_206E_206E_202C_200C_202B_206D_206A_206C_206B_202B_206B_200F_202A_206F_206A_202B_202B_200F_200B_206B_202D_206F_206D_206B_200B_202B_200D_200C_200B_200E_202E(); - _202A_202D_202E_206E_206C_200C_206B_200F_206B_200D_202D_206A_202C_200E_202B_200D_200E_202E_200E_200C_206C_206B_200C_206A_200D_202B_206D_206C_206D_200F_200F_200D_202B_202B_206A_200F_200F_206D_206D_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-808505002)); - _202A_202D_202E_206E_206C_200C_206B_200F_206B_200D_202D_206A_202C_200E_202B_200D_200E_202E_200E_200C_206C_206B_200C_206A_200D_202B_206D_206C_206D_200F_200F_200D_202B_202B_206A_200F_200F_206D_206D_202E(stringBuilder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1886515922)); - int num = ((!PrintMembers(stringBuilder)) ? 514533744 : 514533747); - while (true) - { - int num2 = num; - int num3 = 514533746; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - _200E_200E_206E_206B_206B_200C_206C_206D_206A_206B_206D_200C_206A_202E_206A_202D_200C_200B_202C_206A_202B_202E_206E_206A_202B_202C_200E_200E_206B_206B_200F_206C_200E_202E_206B_206D_200C_206A_202D_206E_202E(stringBuilder, '}'); - return _202A_202C_200F_206D_206E_202C_206A_206F_206A_206D_206C_206C_200E_206E_200B_202D_202E_202D_206E_206C_206C_202C_200C_200D_206F_206E_206C_202A_200B_206B_206C_206E_202B_206C_200E_206E_206D_202D_200B_206E_202E((object)stringBuilder); - case 1: - _200E_200E_206E_206B_206B_200C_206C_206D_206A_206B_206D_200C_206A_202E_206A_202D_200C_200B_202C_206A_202B_202E_206E_206A_202B_202C_200E_200E_206B_206B_200F_206C_200E_202E_206B_206D_200C_206A_202D_206E_202E(stringBuilder, ' '); - num = 514533744; - break; - case 0: - num = 514533747; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200E_206A_202C_200C_200E_202A_206E_206B_200B_206E_202C_200F_202B_200F_202D_206E_206B_200D_202D_200F_202B_206F_202A_202B_206E_202C_202C_200C_200E_200B_206D_200F_200C_200D_202B_200E_202E_202B_206E_206F_202E(); - _202A_202D_202E_206E_206C_200C_206B_200F_206B_200D_202D_206A_202C_200E_202B_200D_200E_202E_200E_200C_206C_206B_200C_206A_200D_202B_206D_206C_206D_200F_200F_200D_202B_202B_206A_200F_200F_206D_206D_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(167583641)); - _202A_202D_202E_206E_206C_200C_206B_200F_206B_200D_202D_206A_202C_200E_202B_200D_200E_202E_200E_200C_206C_206B_200C_206A_200D_202B_206D_206C_206D_200F_200F_200D_202B_202B_206A_200F_200F_206D_206D_202E(builder, TerritoryId.ToString()); - _202A_202D_202E_206E_206C_200C_206B_200F_206B_200D_202D_206A_202C_200E_202B_200D_200E_202E_200E_200C_206C_206B_200C_206A_200D_202B_206D_206C_206D_200F_200F_200D_202B_202B_206A_200F_200F_206D_206D_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(299588646)); - _202A_202D_202E_206E_206C_200C_206B_200F_206B_200D_202D_206A_202C_200E_202B_200D_200E_202E_200E_200C_206C_206B_200C_206A_200D_202B_206D_206C_206D_200F_200F_200D_202B_202B_206A_200F_200F_206D_206D_202E(builder, InstanceId.ToString()); - _202A_202D_202E_206E_206C_200C_206B_200F_206B_200D_202D_206A_202C_200E_202B_200D_200E_202E_200E_200C_206C_206B_200C_206A_200D_202B_206D_206C_206D_200F_200F_200D_202B_202B_206A_200F_200F_206D_206D_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-14976604)); - _202A_202D_202E_206E_206C_200C_206B_200F_206B_200D_202D_206A_202C_200E_202B_200D_200E_202E_200E_200C_206C_206B_200C_206A_200D_202B_206D_206C_206D_200F_200F_200D_202B_202B_206A_200F_200F_206D_206D_202E(builder, Position.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(PopRangeEntry? other) - { - int num = (((object)this == other) ? (-1947000687) : (-1947000681)); - while (true) - { - int num2 = num; - int num3 = -1947000682; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1947000681; - break; - case 5: - return EqualityComparer<Vector3>.Default.Equals(Position, other.Position); - case 1: - num = (((object)other == null) ? (-1947000686) : (-1947000688)); - break; - case 3: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? (-1947000686) : (-1947000682)); - break; - case 7: - return true; - case 4: - return false; - case 6: - num = ((!_200E_206D_206F_200E_206B_206B_206B_206B_206E_202B_200F_206F_206F_206E_202A_200C_202C_206F_200D_206F_202E_206D_206F_206E_200E_202A_200F_202D_202D_200B_206F_202D_202D_206E_200E_200E_206C_206A_202C_202E(EqualityContract, other.EqualityContract)) ? (-1947000686) : (-1947000683)); - break; - case 0: - num = ((!EqualityComparer<uint>.Default.Equals(InstanceId, other.InstanceId)) ? (-1947000686) : (-1947000685)); - break; - } - } - } - - bool IEquatable<PopRangeEntry>.Equals(PopRangeEntry? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200C_202C_200D_206B_206B_200C_202A_202A_200D_206C_200B_206D_200C_202E_200D_200E_202C_206D_200D_202E_200B_202D_202E_202B_202E_200D_200F_206D_202E_202C_202C_202E_206A_200F_202E_206E_206D_202A_200E_202E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202B_200C_206E_200B_206F_200E_206F_206B_202C_202E_206E_206E_202C_200C_202B_206D_206A_206C_206B_202B_206B_200F_202A_206F_206A_202B_202B_200F_200B_206B_202D_206F_206D_206B_200B_202B_200D_200C_200B_200E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202A_202D_202E_206E_206C_200C_206B_200F_206B_200D_202D_206A_202C_200E_202B_200D_200E_202E_200E_200C_206C_206B_200C_206A_200D_202B_206D_206C_206D_200F_200F_200D_202B_202B_206A_200F_200F_206D_206D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200E_200E_206E_206B_206B_200C_206C_206D_206A_206B_206D_200C_206A_202E_206A_202D_200C_200B_202C_206A_202B_202E_206E_206A_202B_202C_200E_200E_206B_206B_200F_206C_200E_202E_206B_206D_200C_206A_202D_206E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202A_202C_200F_206D_206E_202C_206A_206F_206A_206D_206C_206C_200E_206E_200B_202D_202E_202D_206E_206C_206C_202C_200C_200D_206F_206E_206C_202A_200B_206B_206C_206E_202B_206C_200E_206E_206D_202D_200B_206E_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200E_206A_202C_200C_200E_202A_206E_206B_200B_206E_202C_200F_202B_200F_202D_206E_206B_200D_202D_200F_202B_206F_202A_202B_206E_202C_202C_200C_200E_200B_206D_200F_200C_200D_202B_200E_202E_202B_206E_206F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _200E_206D_206F_200E_206B_206B_206B_206B_206E_202B_200F_206F_206F_206E_202A_200C_202C_206F_200D_206F_202E_206D_206F_206E_200E_202A_200F_202D_202D_200B_206F_202D_202D_206E_200E_200E_206C_206A_202C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +internal sealed record PopRangeEntry(ushort TerritoryId, uint InstanceId, Vector3 Position); diff --git a/SmartNav/SmartNav.Data/SmartNavDataOptions.cs b/SmartNav/SmartNav.Data/SmartNavDataOptions.cs index f578512..1822314 100644 --- a/SmartNav/SmartNav.Data/SmartNavDataOptions.cs +++ b/SmartNav/SmartNav.Data/SmartNavDataOptions.cs @@ -1,149 +1,5 @@ -using System; -using System.Collections.Generic; using System.IO; -using System.Runtime.CompilerServices; -using System.Text; namespace SmartNav.Data; -public sealed record SmartNavDataOptions(DirectoryInfo? UserOverrideDirectory = null, DirectoryInfo? DevSourceDirectory = null, string? GameVersion = null) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206B_202A_200C_202A_200E_200C_206E_200E_200F_206D_206A_206B_202C_202B_202C_200E_200B_206B_206C_202D_206A_206D_202C_200B_200C_202B_206A_202E_206E_206F_202C_200E_206E_206F_206F_200C_200E_206F_202A_202A_202E(typeof(SmartNavDataOptions).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200E_206C_200D_200F_206B_202A_200C_206C_202E_202A_206A_200E_200C_206D_202B_200B_206C_202A_202E_206F_200F_206F_202E_202E_206A_202E_202E_202A_206F_202B_202A_200F_200C_206D_200D_200D_206F_202D_202D_202B_202E(); - _206A_202A_200F_206B_206A_200B_202C_206F_200C_200D_206E_200B_202C_200D_206D_202B_200F_200D_206D_200C_206D_200B_202E_206E_206E_206E_200F_206B_200B_206F_206A_200E_206D_206B_206C_200B_206B_206F_200D_202D_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-1494308078)); - _206A_202A_200F_206B_206A_200B_202C_206F_200C_200D_206E_200B_202C_200D_206D_202B_200F_200D_206D_200C_206D_200B_202E_206E_206E_206E_200F_206B_200B_206F_206A_200E_206D_206B_206C_200B_206B_206F_200D_202D_202E(stringBuilder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1120247710)); - int num = ((!PrintMembers(stringBuilder)) ? (-1057108320) : (-1057108319)); - while (true) - { - int num2 = num; - int num3 = -1057108320; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -1057108319; - break; - case 0: - _202A_200C_200D_206D_202A_200F_200F_200D_200D_206D_206A_202D_200B_200C_200D_206C_202E_200F_200F_202C_200F_206A_206D_200F_202E_206B_202B_200E_206E_202A_202C_206E_202B_200B_206F_202E_206A_200E_206B_202A_202E(stringBuilder, '}'); - return _200C_206C_206C_202E_200D_206B_202B_202B_202B_200B_202C_200D_202A_202A_200F_206E_206E_200F_202E_202C_202D_202C_202E_206B_202E_202C_200C_200E_200E_206F_200C_206D_206F_202E_200F_202C_206E_206E_200C_200F_202E((object?)stringBuilder); - case 1: - _202A_200C_200D_206D_202A_200F_200F_200D_200D_206D_206A_202D_200B_200C_200D_206C_202E_200F_200F_202C_200F_206A_206D_200F_202E_206B_202B_200E_206E_202A_202C_206E_202B_200B_206F_202E_206A_200E_206B_202A_202E(stringBuilder, ' '); - num = -1057108320; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _206F_200F_206D_206B_200B_200F_206A_202D_202E_200C_206A_202C_202A_200E_200B_202B_200C_202B_206E_206F_202E_206F_206F_202A_206B_206A_206A_206B_200C_206E_206C_200C_202D_200C_202C_206F_200C_202A_206F_200C_202E(); - _206A_202A_200F_206B_206A_200B_202C_206F_200C_200D_206E_200B_202C_200D_206D_202B_200F_200D_206D_200C_206D_200B_202E_206E_206E_206E_200F_206B_200B_206F_206A_200E_206D_206B_206C_200B_206B_206F_200D_202D_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-148533820)); - _206E_206F_206E_202A_202E_202A_200F_206D_206C_206B_206F_206F_206A_200B_206B_202B_200D_206B_202E_206A_200F_200F_202C_202C_206C_200E_206A_200B_202C_202A_200E_206B_202A_206D_200C_206E_200C_206E_202B_202D_202E(builder, (object?)UserOverrideDirectory); - _206A_202A_200F_206B_206A_200B_202C_206F_200C_200D_206E_200B_202C_200D_206D_202B_200F_200D_206D_200C_206D_200B_202E_206E_206E_206E_200F_206B_200B_206F_206A_200E_206D_206B_206C_200B_206B_206F_200D_202D_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-1567612591)); - _206E_206F_206E_202A_202E_202A_200F_206D_206C_206B_206F_206F_206A_200B_206B_202B_200D_206B_202E_206A_200F_200F_202C_202C_206C_200E_206A_200B_202C_202A_200E_206B_202A_206D_200C_206E_200C_206E_202B_202D_202E(builder, (object?)DevSourceDirectory); - _206A_202A_200F_206B_206A_200B_202C_206F_200C_200D_206E_200B_202C_200D_206D_202B_200F_200D_206D_200C_206D_200B_202E_206E_206E_206E_200F_206B_200B_206F_206A_200E_206D_206B_206C_200B_206B_206F_200D_202D_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-204927746)); - _206E_206F_206E_202A_202E_202A_200F_206D_206C_206B_206F_206F_206A_200B_206B_202B_200D_206B_202E_206A_200F_200F_202C_202C_206C_200E_206A_200B_202C_202A_200E_206B_202A_206D_200C_206E_200C_206E_202B_202D_202E(builder, (object?)GameVersion); - return true; - } - - [CompilerGenerated] - public bool Equals(SmartNavDataOptions? other) - { - int num = (((object)this == other) ? (-1367918412) : (-1367918411)); - while (true) - { - int num2 = num; - int num3 = -1367918409; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1367918411; - break; - case 6: - return false; - case 3: - return true; - case 4: - num = ((!_202B_200E_200F_206E_200B_206D_200D_206C_202B_206B_202D_200F_200C_206F_200F_200C_202D_206B_202D_200B_202D_206F_200D_202B_206C_202E_200B_202A_206A_206D_202D_206B_206E_202D_206E_206B_206A_202C_200C_202A_202E(EqualityContract, other.EqualityContract)) ? (-1367918415) : (-1367918410)); - break; - case 2: - num = (((object)other == null) ? (-1367918415) : (-1367918413)); - break; - case 1: - num = ((!EqualityComparer<DirectoryInfo>.Default.Equals(UserOverrideDirectory, other.UserOverrideDirectory)) ? (-1367918415) : (-1367918414)); - break; - case 7: - return EqualityComparer<string>.Default.Equals(GameVersion, other.GameVersion); - case 5: - num = ((!EqualityComparer<DirectoryInfo>.Default.Equals(DevSourceDirectory, other.DevSourceDirectory)) ? (-1367918415) : (-1367918416)); - break; - } - } - } - - bool IEquatable<SmartNavDataOptions>.Equals(SmartNavDataOptions? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type? _206B_202A_200C_202A_200E_200C_206E_200E_200F_206D_206A_206B_202C_202B_202C_200E_200B_206B_206C_202D_206A_206D_202C_200B_200C_202B_206A_202E_206E_206F_202C_200E_206E_206F_206F_200C_200E_206F_202A_202A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder? _200E_206C_200D_200F_206B_202A_200C_206C_202E_202A_206A_200E_200C_206D_202B_200B_206C_202A_202E_206F_200F_206F_202E_202E_206A_202E_202E_202A_206F_202B_202A_200F_200C_206D_200D_200D_206F_202D_202D_202B_202E() - { - return new StringBuilder(); - } - - static StringBuilder? _206A_202A_200F_206B_206A_200B_202C_206F_200C_200D_206E_200B_202C_200D_206D_202B_200F_200D_206D_200C_206D_200B_202E_206E_206E_206E_200F_206B_200B_206F_206A_200E_206D_206B_206C_200B_206B_206F_200D_202D_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _202A_200C_200D_206D_202A_200F_200F_200D_200D_206D_206A_202D_200B_200C_200D_206C_202E_200F_200F_202C_200F_206A_206D_200F_202E_206B_202B_200E_206E_202A_202C_206E_202B_200B_206F_202E_206A_200E_206B_202A_202E(StringBuilder? P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string? _200C_206C_206C_202E_200D_206B_202B_202B_202B_200B_202C_200D_202A_202A_200F_206E_206E_200F_202E_202C_202D_202C_202E_206B_202E_202C_200C_200E_200E_206F_200C_206D_206F_202E_200F_202C_206E_206E_200C_200F_202E(object? P_0) - { - return P_0.ToString(); - } - - static void _206F_200F_206D_206B_200B_200F_206A_202D_202E_200C_206A_202C_202A_200E_200B_202B_200C_202B_206E_206F_202E_206F_206F_202A_206B_206A_206A_206B_200C_206E_206C_200C_202D_200C_202C_206F_200C_202A_206F_200C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder? _206E_206F_206E_202A_202E_202A_200F_206D_206C_206B_206F_206F_206A_200B_206B_202B_200D_206B_202E_206A_200F_200F_202C_202C_206C_200E_206A_200B_202C_202A_200E_206B_202A_206D_200C_206E_200C_206E_202B_202D_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } - - static bool _202B_200E_200F_206E_200B_206D_200D_206C_202B_206B_202D_200F_200C_206F_200F_200C_202D_206B_202D_200B_202D_206F_200D_202B_206C_202E_200B_202A_206A_206D_202D_206B_206E_202D_206E_206B_206A_202C_200C_202A_202E(Type? P_0, Type? P_1) - { - return P_0 == P_1; - } -} +public sealed record SmartNavDataOptions(DirectoryInfo? UserOverrideDirectory = null, DirectoryInfo? DevSourceDirectory = null, string? GameVersion = null); diff --git a/SmartNav/SmartNav.Data/TaxiStandDataService.cs b/SmartNav/SmartNav.Data/TaxiStandDataService.cs index 12438ec..ecf1caa 100644 --- a/SmartNav/SmartNav.Data/TaxiStandDataService.cs +++ b/SmartNav/SmartNav.Data/TaxiStandDataService.cs @@ -1,11 +1,6 @@ -using System; -using System.Collections; using System.Collections.Generic; -using System.IO; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using Dalamud.Plugin.Services; using Lumina.Excel; using Lumina.Excel.Sheets; @@ -16,295 +11,9 @@ namespace SmartNav.Data; public sealed class TaxiStandDataService { - public sealed record TaxiStandInfo(uint StandRowId, string PlaceName, ushort TerritoryId, Vector3 Position, uint NpcDataId, TaxiRoute[] Routes) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206B_202A_202D_206F_202E_206A_206E_200E_200C_200D_200D_200E_206F_202B_202C_202C_206B_202C_206F_200D_202E_200D_206E_206E_200B_202B_206B_206F_200D_206E_200E_200B_200B_202D_200F_206F_206D_202A_200C_200D_202E(typeof(TaxiStandInfo).TypeHandle); - } - } + public sealed record TaxiStandInfo(uint StandRowId, string PlaceName, ushort TerritoryId, Vector3 Position, uint NpcDataId, TaxiRoute[] Routes); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206F_202D_206A_206E_200B_202B_200E_202A_206A_202B_202C_206A_202C_206F_202A_206E_206B_200D_200D_202B_202B_206A_202D_202B_206E_206E_202E_202C_202D_206E_202B_206E_202B_200E_200B_202A_200C_206C_206E_200F_202E(); - _200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-457906279)); - _200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-169322018)); - int num = ((!PrintMembers(stringBuilder)) ? (-7237964) : (-7237961)); - while (true) - { - int num2 = num; - int num3 = -7237962; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -7237961; - break; - case 1: - _200F_206A_206F_200E_206F_200B_200E_202B_202B_200E_206D_200D_206F_200B_200D_206B_202C_206C_200F_206D_200D_206A_200B_202A_200D_202C_200D_200F_200F_202C_202A_202B_206B_202D_200B_206B_202C_200B_206A_206F_202E(stringBuilder, ' '); - num = -7237964; - break; - case 2: - _200F_206A_206F_200E_206F_200B_200E_202B_202B_200E_206D_200D_206F_200B_200D_206B_202C_206C_200F_206D_200D_206A_200B_202A_200D_202C_200D_200F_200F_202C_202A_202B_206B_202D_200B_206B_202C_200B_206A_206F_202E(stringBuilder, '}'); - return _206D_200D_202A_206A_202A_206D_200E_206C_206A_202E_206C_202C_202E_202E_206B_202A_200B_206E_206A_202D_200D_206B_206F_206E_200E_202A_202B_206D_202C_200D_200B_206A_206F_206E_200F_202C_202C_202C_206F_202D_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200C_200F_206C_206F_202B_202D_206C_200C_202D_202D_202D_206C_206D_206A_206A_206C_200B_206D_206F_200D_202E_202D_206B_202A_206F_206F_200C_202E_206B_200B_200E_206F_206C_206A_200B_206E_200C_206C_202B_200F_202E(); - _200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1862745090)); - _200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(builder, StandRowId.ToString()); - _200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(1386669126)); - _206C_202D_206E_200B_200D_200C_200E_200D_202C_200D_200E_206E_202A_206A_206B_200C_206B_200F_200E_200F_206F_202C_200C_206F_206A_200C_202A_202A_202A_202C_206B_200C_202D_200D_200E_200E_202D_206C_206A_206F_202E(builder, (object)PlaceName); - _200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(1283726812)); - _200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(builder, TerritoryId.ToString()); - _200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(772692776)); - _200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(builder, Position.ToString()); - _200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-1004265433)); - _200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(builder, NpcDataId.ToString()); - _200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1716966096)); - _206C_202D_206E_200B_200D_200C_200E_200D_202C_200D_200E_206E_202A_206A_206B_200C_206B_200F_200E_200F_206F_202C_200C_206F_206A_200C_202A_202A_202A_202C_206B_200C_202D_200D_200E_200E_202D_206C_206A_206F_202E(builder, (object)Routes); - return true; - } - - [CompilerGenerated] - public bool Equals(TaxiStandInfo? other) - { - int num = (((object)this == other) ? 1006480636 : 1006480639); - while (true) - { - int num2 = num; - int num3 = 1006480638; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 7: - num = 1006480639; - break; - case 10: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? 1006480634 : 1006480637); - break; - case 0: - num = ((!EqualityComparer<uint>.Default.Equals(NpcDataId, other.NpcDataId)) ? 1006480634 : 1006480631); - break; - case 3: - num = ((!EqualityComparer<Vector3>.Default.Equals(Position, other.Position)) ? 1006480634 : 1006480638); - break; - case 5: - num = ((!EqualityComparer<string>.Default.Equals(PlaceName, other.PlaceName)) ? 1006480634 : 1006480628); - break; - case 8: - num = ((!_202A_200F_206B_200D_206F_202D_206D_202A_206D_200E_202C_206A_206D_200B_202C_206E_206E_202C_200F_206D_206C_206F_200F_200B_202D_202E_202D_206F_202B_200F_200E_200C_202D_206E_200B_206F_206F_202E_202B_202B_202E(EqualityContract, other.EqualityContract)) ? 1006480634 : 1006480632); - break; - case 9: - return EqualityComparer<TaxiRoute[]>.Default.Equals(Routes, other.Routes); - case 4: - return false; - case 2: - return true; - case 6: - num = ((!EqualityComparer<uint>.Default.Equals(StandRowId, other.StandRowId)) ? 1006480634 : 1006480635); - break; - case 1: - num = (((object)other == null) ? 1006480634 : 1006480630); - break; - } - } - } - - bool IEquatable<TaxiStandInfo>.Equals(TaxiStandInfo? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206B_202A_202D_206F_202E_206A_206E_200E_200C_200D_200D_200E_206F_202B_202C_202C_206B_202C_206F_200D_202E_200D_206E_206E_200B_202B_206B_206F_200D_206E_200E_200B_200B_202D_200F_206F_206D_202A_200C_200D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206F_202D_206A_206E_200B_202B_200E_202A_206A_202B_202C_206A_202C_206F_202A_206E_206B_200D_200D_202B_202B_206A_202D_202B_206E_206E_202E_202C_202D_206E_202B_206E_202B_200E_200B_202A_200C_206C_206E_200F_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200F_200F_202E_206B_200E_200C_202C_200B_202B_202B_202B_202E_206F_200C_202D_200E_200D_202A_200C_206F_206D_202E_202E_206C_206D_200B_200C_206C_200B_200B_206F_206F_206B_202A_206D_200C_200F_206E_202B_202C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200F_206A_206F_200E_206F_200B_200E_202B_202B_200E_206D_200D_206F_200B_200D_206B_202C_206C_200F_206D_200D_206A_200B_202A_200D_202C_200D_200F_200F_202C_202A_202B_206B_202D_200B_206B_202C_200B_206A_206F_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206D_200D_202A_206A_202A_206D_200E_206C_206A_202E_206C_202C_202E_202E_206B_202A_200B_206E_206A_202D_200D_206B_206F_206E_200E_202A_202B_206D_202C_200D_200B_206A_206F_206E_200F_202C_202C_202C_206F_202D_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200C_200F_206C_206F_202B_202D_206C_200C_202D_202D_202D_206C_206D_206A_206A_206C_200B_206D_206F_200D_202E_202D_206B_202A_206F_206F_200C_202E_206B_200B_200E_206F_206C_206A_200B_206E_200C_206C_202B_200F_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206C_202D_206E_200B_200D_200C_200E_200D_202C_200D_200E_206E_202A_206A_206B_200C_206B_200F_200E_200F_206F_202C_200C_206F_206A_200C_202A_202A_202A_202C_206B_200C_202D_200D_200E_200E_202D_206C_206A_206F_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202A_200F_206B_200D_206F_202D_206D_202A_206D_200E_202C_206A_206D_200B_202C_206E_206E_202C_200F_206D_206C_206F_200F_200B_202D_202E_202D_206F_202B_200F_200E_200C_202D_206E_200B_206F_206F_202E_202B_202B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - public sealed record TaxiRoute(uint DestStandRowId, int Fare, int TimeRequiredSeconds) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202E_206D_200F_202E_206E_200B_202C_200C_202C_200F_200C_206C_206A_206C_202E_200C_200B_206E_206B_200B_202A_206B_200C_206A_200E_202D_200F_200F_202B_206F_206A_206B_206B_202A_206E_206A_206D_200B_200C_202D_202E(typeof(TaxiRoute).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206D_206A_206B_202D_200E_206E_200E_200B_200E_206C_206B_200B_206E_202B_200D_206E_206A_206F_202E_206B_206E_202B_206B_206A_206F_200B_200B_202B_206E_206C_200E_202C_200B_206F_206D_200B_206C_202E_202C_202A_202E(); - _200B_206E_206B_202C_202B_202B_200E_202C_202B_206E_202A_200B_206A_202B_202D_206C_202B_202E_206E_200D_206B_206A_206C_200C_202B_202E_200B_200F_202C_200F_200F_200F_206F_206D_206F_206B_206E_202E_200C_206C_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(76454572)); - _200B_206E_206B_202C_202B_202B_200E_202C_202B_206E_202A_200B_206A_202B_202D_206C_202B_202E_206E_200D_206B_206A_206C_200C_202B_202E_200B_200F_202C_200F_200F_200F_206F_206D_206F_206B_206E_202E_200C_206C_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-979564187)); - int num = ((!PrintMembers(stringBuilder)) ? 956238306 : 956238307); - while (true) - { - int num2 = num; - int num3 = 956238306; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _200D_206E_202C_200F_200C_200E_202A_202E_202A_206C_206E_202E_206B_200B_206A_200B_206F_206E_202C_206C_200E_206E_206A_206B_202B_206A_206A_206B_206D_202C_206F_202A_202A_202B_200D_206A_206C_206F_202D_206D_202E(stringBuilder, '}'); - return _200F_200F_202E_202B_202A_206A_206D_200E_202B_206C_200E_206C_202D_200C_202B_202D_202E_206C_206A_200F_200B_206C_206B_206F_202D_206E_206F_202D_202B_202E_200B_200C_206E_200E_202B_206C_200B_200C_202A_206D_202E((object)stringBuilder); - case 1: - _200D_206E_202C_200F_200C_200E_202A_202E_202A_206C_206E_202E_206B_200B_206A_200B_206F_206E_202C_206C_200E_206E_206A_206B_202B_206A_206A_206B_206D_202C_206F_202A_202A_202B_200D_206A_206C_206F_202D_206D_202E(stringBuilder, ' '); - num = 956238306; - break; - case 2: - num = 956238307; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200B_200F_206C_200C_206F_206B_206A_206B_200E_206E_206A_202B_206D_200E_202A_206E_202C_202D_200B_200F_200B_202E_202D_206A_206F_200F_202E_202E_202E_200E_200C_206D_202E_206E_200E_206E_206E_202E_202A_206B_202E(); - _200B_206E_206B_202C_202B_202B_200E_202C_202B_206E_202A_200B_206A_202B_202D_206C_202B_202E_206E_200D_206B_206A_206C_200C_202B_202E_200B_200F_202C_200F_200F_200F_206F_206D_206F_206B_206E_202E_200C_206C_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1487307401)); - _200B_206E_206B_202C_202B_202B_200E_202C_202B_206E_202A_200B_206A_202B_202D_206C_202B_202E_206E_200D_206B_206A_206C_200C_202B_202E_200B_200F_202C_200F_200F_200F_206F_206D_206F_206B_206E_202E_200C_206C_202E(builder, DestStandRowId.ToString()); - _200B_206E_206B_202C_202B_202B_200E_202C_202B_206E_202A_200B_206A_202B_202D_206C_202B_202E_206E_200D_206B_206A_206C_200C_202B_202E_200B_200F_202C_200F_200F_200F_206F_206D_206F_206B_206E_202E_200C_206C_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-418458906)); - _200B_206E_206B_202C_202B_202B_200E_202C_202B_206E_202A_200B_206A_202B_202D_206C_202B_202E_206E_200D_206B_206A_206C_200C_202B_202E_200B_200F_202C_200F_200F_200F_206F_206D_206F_206B_206E_202E_200C_206C_202E(builder, Fare.ToString()); - _200B_206E_206B_202C_202B_202B_200E_202C_202B_206E_202A_200B_206A_202B_202D_206C_202B_202E_206E_200D_206B_206A_206C_200C_202B_202E_200B_200F_202C_200F_200F_200F_206F_206D_206F_206B_206E_202E_200C_206C_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-568235594)); - _200B_206E_206B_202C_202B_202B_200E_202C_202B_206E_202A_200B_206A_202B_202D_206C_202B_202E_206E_200D_206B_206A_206C_200C_202B_202E_200B_200F_202C_200F_200F_200F_206F_206D_206F_206B_206E_202E_200C_206C_202E(builder, TimeRequiredSeconds.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(TaxiRoute? other) - { - int num = (((object)this == other) ? 1209102583 : 1209102576); - while (true) - { - int num2 = num; - int num3 = 1209102581; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return false; - case 5: - num = (((object)other == null) ? 1209102580 : 1209102582); - break; - case 0: - num = ((!EqualityComparer<int>.Default.Equals(Fare, other.Fare)) ? 1209102580 : 1209102578); - break; - case 6: - num = ((!EqualityComparer<uint>.Default.Equals(DestStandRowId, other.DestStandRowId)) ? 1209102580 : 1209102581); - break; - case 4: - num = 1209102576; - break; - case 7: - return EqualityComparer<int>.Default.Equals(TimeRequiredSeconds, other.TimeRequiredSeconds); - case 2: - return true; - case 3: - num = ((!_200D_202A_200B_206A_200B_200B_206F_206C_206B_206C_200F_200F_202D_206C_202A_206D_200D_200F_200E_200D_200C_206C_206A_200F_202D_206B_202D_200F_206B_206F_200C_202A_206C_202B_206A_202E_206C_206F_200E_202D_202E(EqualityContract, other.EqualityContract)) ? 1209102580 : 1209102579); - break; - } - } - } - - bool IEquatable<TaxiRoute>.Equals(TaxiRoute? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202E_206D_200F_202E_206E_200B_202C_200C_202C_200F_200C_206C_206A_206C_202E_200C_200B_206E_206B_200B_202A_206B_200C_206A_200E_202D_200F_200F_202B_206F_206A_206B_206B_202A_206E_206A_206D_200B_200C_202D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206D_206A_206B_202D_200E_206E_200E_200B_200E_206C_206B_200B_206E_202B_200D_206E_206A_206F_202E_206B_206E_202B_206B_206A_206F_200B_200B_202B_206E_206C_200E_202C_200B_206F_206D_200B_206C_202E_202C_202A_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200B_206E_206B_202C_202B_202B_200E_202C_202B_206E_202A_200B_206A_202B_202D_206C_202B_202E_206E_200D_206B_206A_206C_200C_202B_202E_200B_200F_202C_200F_200F_200F_206F_206D_206F_206B_206E_202E_200C_206C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200D_206E_202C_200F_200C_200E_202A_202E_202A_206C_206E_202E_206B_200B_206A_200B_206F_206E_202C_206C_200E_206E_206A_206B_202B_206A_206A_206B_206D_202C_206F_202A_202A_202B_200D_206A_206C_206F_202D_206D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200F_200F_202E_202B_202A_206A_206D_200E_202B_206C_200E_206C_202D_200C_202B_202D_202E_206C_206A_200F_200B_206C_206B_206F_202D_206E_206F_202D_202B_202E_200B_200C_206E_200E_202B_206C_200B_200C_202A_206D_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200B_200F_206C_200C_206F_206B_206A_206B_200E_206E_206A_202B_206D_200E_202A_206E_202C_202D_200B_200F_200B_202E_202D_206A_206F_200F_202E_202E_202E_200E_200C_206D_202E_206E_200E_206E_206E_202E_202A_206B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _200D_202A_200B_206A_200B_200B_206F_206C_206B_206C_200F_200F_202D_206C_202A_206D_200D_200F_200E_200D_200C_206C_206A_200F_202D_206B_202D_200F_206B_206F_200C_202A_206C_202B_206A_202E_206C_206F_200E_202D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } + public sealed record TaxiRoute(uint DestStandRowId, int Fare, int TimeRequiredSeconds); public IReadOnlyDictionary<uint, TaxiStandInfo> Stands { get; } @@ -314,27 +23,13 @@ public sealed class TaxiStandDataService public int TotalRoutes { get; } - [MethodImpl(MethodImplOptions.NoInlining)] public TaxiStandDataService(IDataManager dataManager, SmartNavDataOptions dataOptions, ILogger<TaxiStandDataService> logger) { - DirectoryInfo? devSourceDirectory = dataOptions.DevSourceDirectory; - IReadOnlyList<TaxiStandEntry> readOnlyList = _200B_202B_202B_206B_202E_202D_206E_202D_200F_206F_200C_206D_202E_200B_202A_200F_200B_206F_200D_200C_200D_206B_202E_206D_206B_202A_206E_202D_200C_206C_202A_202A_202A_206B_200C_200E_202E_200D_202C_202E_202E((devSourceDirectory != null) ? _200D_202C_206E_202D_202C_206B_206C_200E_200D_200C_200F_200B_206B_202C_202C_200F_200E_206D_200E_200D_206D_200D_200D_200B_206D_202A_202E_206D_200B_200B_200B_202A_206B_206D_206D_200F_200E_206B_200E_206C_202E((FileSystemInfo)devSourceDirectory) : null); + IReadOnlyList<TaxiStandEntry> stands = AssemblyTaxiStandLoader.GetStands(dataOptions.DevSourceDirectory?.FullName); Dictionary<uint, TaxiStandEntry> dictionary = new Dictionary<uint, TaxiStandEntry>(); - IEnumerator<TaxiStandEntry> enumerator = readOnlyList.GetEnumerator(); - try + foreach (TaxiStandEntry item in stands) { - while (_202A_200C_206F_200D_206A_202A_206F_206B_200D_202E_202C_200F_206B_206C_200D_206F_202D_206D_206F_206A_202B_200C_202E_206B_200C_202D_200B_202C_200F_200D_200E_206F_200B_206C_206A_202D_206F_200E_200C_202C_202E((IEnumerator)enumerator)) - { - TaxiStandEntry current = enumerator.Current; - dictionary[_206F_202E_200E_200E_206A_206C_202E_202A_206B_202D_206A_200F_206D_206C_206B_200B_206D_202A_200B_200D_206B_206A_206B_202B_200F_202C_200D_206D_202C_200C_206B_202C_206D_202E_206C_206F_206E_206B_200B_206B_202E(current)] = current; - } - } - finally - { - if (enumerator != null) - { - _202A_202D_206F_206B_206A_206E_202D_202A_206E_206C_200B_200E_200E_206A_202D_202E_206C_202A_206D_200F_200E_202A_200C_202D_202B_206E_206D_206C_200B_200D_206D_200F_200D_200C_200E_200B_200F_200B_206D_202B_202E((IDisposable)enumerator); - } + dictionary[item.ChocoboTaxiStandId] = item; } Dictionary<uint, TaxiStandInfo> dictionary2 = new Dictionary<uint, TaxiStandInfo>(); int num = 0; @@ -347,18 +42,14 @@ public sealed class TaxiStandDataService } ChocoboTaxiStand row = excelSheet.GetRow(num3); string text = row.PlaceName.ToString(); - if (_206C_200B_202E_206C_206D_206C_200C_206C_200D_206F_202E_202A_206F_202C_202B_202B_202A_200C_200B_202B_200F_200C_202B_202C_202D_206E_200B_206B_200C_206A_202C_206D_200E_206D_200C_206A_206D_206E_202C_202E(text)) + if (string.IsNullOrEmpty(text)) { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(12, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1902166363)); - defaultInterpolatedStringHandler.AppendFormatted(num3, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-2030066311)); - text = defaultInterpolatedStringHandler.ToStringAndClear(); + text = $"TaxiStand 0x{num3:X}"; } List<TaxiRoute> list = new List<TaxiRoute>(); - int num4 = 0; - while (num4 < 8) + for (int i = 0; i < 8; i++) { - ChocoboTaxi? valueNullable = row.TargetLocations[num4].ValueNullable; + ChocoboTaxi? valueNullable = row.TargetLocations[i].ValueNullable; if (valueNullable.HasValue && valueNullable.Value.TimeRequired != 0) { uint rowId = valueNullable.Value.Location.RowId; @@ -367,68 +58,14 @@ public sealed class TaxiStandDataService list.Add(new TaxiRoute(rowId, valueNullable.Value.Fare, valueNullable.Value.TimeRequired * 60)); } } - int num5 = num4; - int num6 = 1; - int num7 = num5; - num4 = (num7 | num6) + (num7 & num6); } num += list.Count; - dictionary2[num3] = new TaxiStandInfo(num3, text, _202B_206C_202A_206A_206B_206E_206E_200B_206A_200C_200D_202A_206B_206E_202C_202C_202C_206A_200E_202D_206F_206A_206F_202E_206E_200F_202B_200E_200F_200E_200D_202E_202A_200E_200E_206E_206D_206E_200D_202C_202E(taxiStandEntry2), _206E_206F_200F_206B_202E_202B_202D_206A_202C_200E_206B_200D_200F_200C_202D_200D_202A_202C_200E_200E_206F_200F_200B_200B_206E_206D_206F_202B_206C_200E_206A_202B_206C_200B_202A_200E_202B_202B_202E_202A_202E(taxiStandEntry2), _202A_206A_200F_206B_206A_202E_206B_202D_200E_200C_202A_200E_202E_200D_202E_200B_206B_206F_206A_202E_202B_202E_206E_202E_202A_200F_202C_200B_202D_206A_202E_202E_200F_202A_206C_200F_200E_206F_202C_202E(taxiStandEntry2), list.ToArray()); + dictionary2[num3] = new TaxiStandInfo(num3, text, taxiStandEntry2.TerritoryId, taxiStandEntry2.Location, taxiStandEntry2.Id, list.ToArray()); } Stands = dictionary2; StandsByNpcDataId = dictionary2.Values.ToDictionary((TaxiStandInfo s) => s.NpcDataId, (TaxiStandInfo s) => s); TotalStands = dictionary2.Count; TotalRoutes = num; - _206C_200C_202E_200C_200F_206B_200B_206C_200E_202D_200F_200E_206B_202D_202B_200F_200C_206B_202C_200B_206D_200B_202A_206D_202E_206A_206F_206F_200F_202C_200F_202D_202B_206A_200E_206E_200E_206A_202E_200C_202E((ILogger)logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(863793575), new object[2] { TotalStands, TotalRoutes }); - } - - static string _200D_202C_206E_202D_202C_206B_206C_200E_200D_200C_200F_200B_206B_202C_202C_200F_200E_206D_200E_200D_206D_200D_200D_200B_206D_202A_202E_206D_200B_200B_200B_202A_206B_206D_206D_200F_200E_206B_200E_206C_202E(FileSystemInfo P_0) - { - return P_0.FullName; - } - - static IReadOnlyList<TaxiStandEntry> _200B_202B_202B_206B_202E_202D_206E_202D_200F_206F_200C_206D_202E_200B_202A_200F_200B_206F_200D_200C_200D_206B_202E_206D_206B_202A_206E_202D_200C_206C_202A_202A_202A_206B_200C_200E_202E_200D_202C_202E_202E(string P_0) - { - return AssemblyTaxiStandLoader.GetStands(P_0); - } - - static uint _206F_202E_200E_200E_206A_206C_202E_202A_206B_202D_206A_200F_206D_206C_206B_200B_206D_202A_200B_200D_206B_206A_206B_202B_200F_202C_200D_206D_202C_200C_206B_202C_206D_202E_206C_206F_206E_206B_200B_206B_202E(TaxiStandEntry P_0) - { - return P_0.ChocoboTaxiStandId; - } - - static bool _202A_200C_206F_200D_206A_202A_206F_206B_200D_202E_202C_200F_206B_206C_200D_206F_202D_206D_206F_206A_202B_200C_202E_206B_200C_202D_200B_202C_200F_200D_200E_206F_200B_206C_206A_202D_206F_200E_200C_202C_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202A_202D_206F_206B_206A_206E_202D_202A_206E_206C_200B_200E_200E_206A_202D_202E_206C_202A_206D_200F_200E_202A_200C_202D_202B_206E_206D_206C_200B_200D_206D_200F_200D_200C_200E_200B_200F_200B_206D_202B_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool _206C_200B_202E_206C_206D_206C_200C_206C_200D_206F_202E_202A_206F_202C_202B_202B_202A_200C_200B_202B_200F_200C_202B_202C_202D_206E_200B_206B_200C_206A_202C_206D_200E_206D_200C_206A_206D_206E_202C_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static ushort _202B_206C_202A_206A_206B_206E_206E_200B_206A_200C_200D_202A_206B_206E_202C_202C_202C_206A_200E_202D_206F_206A_206F_202E_206E_200F_202B_200E_200F_200E_200D_202E_202A_200E_200E_206E_206D_206E_200D_202C_202E(TaxiStandEntry P_0) - { - return P_0.TerritoryId; - } - - static Vector3 _206E_206F_200F_206B_202E_202B_202D_206A_202C_200E_206B_200D_200F_200C_202D_200D_202A_202C_200E_200E_206F_200F_200B_200B_206E_206D_206F_202B_206C_200E_206A_202B_206C_200B_202A_200E_202B_202B_202E_202A_202E(TaxiStandEntry P_0) - { - return P_0.Location; - } - - static uint _202A_206A_200F_206B_206A_202E_206B_202D_200E_200C_202A_200E_202E_200D_202E_200B_206B_206F_206A_202E_202B_202E_206E_202E_202A_200F_202C_200B_202D_206A_202E_202E_200F_202A_206C_200F_200E_206F_202C_202E(TaxiStandEntry P_0) - { - return P_0.Id; - } - - static void _206C_200C_202E_200C_200F_206B_200B_206C_200E_202D_200F_200E_206B_202D_202B_200F_200C_206B_202C_200B_206D_200B_202A_206D_202E_206A_206F_206F_200F_202C_200F_202D_202B_206A_200E_206E_200E_206A_202E_200C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); + logger.LogDebug("TaxiStandDataService: {Stands} stands, {Routes} routes loaded", TotalStands, TotalRoutes); } } diff --git a/SmartNav/SmartNav.Data/TeleportTicketService.cs b/SmartNav/SmartNav.Data/TeleportTicketService.cs index a94df0c..b626c63 100644 --- a/SmartNav/SmartNav.Data/TeleportTicketService.cs +++ b/SmartNav/SmartNav.Data/TeleportTicketService.cs @@ -1,10 +1,7 @@ using System; -using System.Collections; using System.Collections.Generic; using System.IO; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using System.Text.Json; using Dalamud.Plugin.Services; using Lumina.Excel; @@ -16,307 +13,11 @@ namespace SmartNav.Data; public sealed class TeleportTicketService { - public sealed record ScannedTicket(uint ItemId, string Name, uint ItemActionRowId, ushort[] ItemActionData) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202C_200D_200C_206E_200F_200E_206D_206F_202D_200D_202C_202A_206A_206F_200D_202E_200C_202A_202B_200E_206E_206F_202A_202E_202A_202C_202C_206E_206D_206D_200F_200D_202B_206C_202A_206D_202A_202C_206F_202C_202E(typeof(ScannedTicket).TypeHandle); - } - } + public sealed record ScannedTicket(uint ItemId, string Name, uint ItemActionRowId, ushort[] ItemActionData); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206F_200D_202D_202D_200D_202C_206B_202E_200B_202B_206F_206D_200F_206F_200D_202C_206B_206E_206A_202A_206F_202B_206C_202B_206C_206D_202C_206A_200B_202C_202C_202A_206F_206B_202C_206A_202B_206E_206D_206E_202E(); - _200D_206B_200F_206E_206E_202A_202E_206E_206E_206A_200E_202D_200B_200C_202A_206C_202D_206D_202C_200C_206D_202B_206B_200D_200E_200C_202A_206C_202C_200D_202A_202C_200D_202E_206A_206B_202E_206B_200C_206C_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1489802368)); - _200D_206B_200F_206E_206E_202A_202E_206E_206E_206A_200E_202D_200B_200C_202A_206C_202D_206D_202C_200C_206D_202B_206B_200D_200E_200C_202A_206C_202C_200D_202A_202C_200D_202E_206A_206B_202E_206B_200C_206C_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-169322018)); - int num = ((!PrintMembers(stringBuilder)) ? (-550622530) : (-550622529)); - while (true) - { - int num2 = num; - int num3 = -550622530; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -550622529; - break; - case 0: - _200C_200F_200F_200C_206D_200C_200B_200D_206C_200D_200D_202D_202D_206C_200D_202B_202B_200B_202C_200E_202D_202A_202B_202D_206E_200C_200E_202E_206A_200D_200E_206C_206F_206D_206E_202E_200F_200B_206C_206C_202E(stringBuilder, '}'); - return _202B_202E_202A_202B_200F_200F_200C_202B_202C_202B_202A_200C_206B_200C_202C_206E_206A_200B_206D_206D_206E_206D_200F_200F_200E_202C_206A_200D_200E_202A_202B_206A_202B_206A_200D_206F_206C_206B_206E_206D_202E((object)stringBuilder); - case 1: - _200C_200F_200F_200C_206D_200C_200B_200D_206C_200D_200D_202D_202D_206C_200D_202B_202B_200B_202C_200E_202D_202A_202B_202D_206E_200C_200E_202E_206A_200D_200E_206C_206F_206D_206E_202E_200F_200B_206C_206C_202E(stringBuilder, ' '); - num = -550622530; - break; - } - } - } + public sealed record TeleportTicket(uint ItemId, string Name, ushort TerritoryId, Vector3 Position, byte RequiredGrandCompany = 0, uint RequiredQuestId = 0u); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200E_202B_206A_206B_202E_200D_206D_206A_202C_200E_206F_202C_206D_202E_206F_202C_206D_202E_206E_206F_202A_206D_206A_206C_202D_202E_200D_206D_202B_202C_202E_206D_200B_206E_200C_206C_202E_200C_202D_200D_202E(); - _200D_206B_200F_206E_206E_202A_202E_206E_206E_206A_200E_202D_200B_200C_202A_206C_202D_206D_202C_200C_206D_202B_206B_200D_200E_200C_202A_206C_202C_200D_202A_202C_200D_202E_206A_206B_202E_206B_200C_206C_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(825996996)); - _200D_206B_200F_206E_206E_202A_202E_206E_206E_206A_200E_202D_200B_200C_202A_206C_202D_206D_202C_200C_206D_202B_206B_200D_200E_200C_202A_206C_202C_200D_202A_202C_200D_202E_206A_206B_202E_206B_200C_206C_202E(builder, ItemId.ToString()); - _200D_206B_200F_206E_206E_202A_202E_206E_206E_206A_200E_202D_200B_200C_202A_206C_202D_206D_202C_200C_206D_202B_206B_200D_200E_200C_202A_206C_202C_200D_202A_202C_200D_202E_206A_206B_202E_206B_200C_206C_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-710038733)); - _206E_202A_202C_206A_202E_202A_206C_200E_202E_200F_202D_206E_200F_200B_206B_206A_200D_200B_200B_200E_206C_202A_206F_206E_206F_206C_202E_202E_202A_200D_206F_206C_200C_202B_202E_200E_202E_202E_206D_206B_202E(builder, (object)Name); - _200D_206B_200F_206E_206E_202A_202E_206E_206E_206A_200E_202D_200B_200C_202A_206C_202D_206D_202C_200C_206D_202B_206B_200D_200E_200C_202A_206C_202C_200D_202A_202C_200D_202E_206A_206B_202E_206B_200C_206C_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-297009185)); - _200D_206B_200F_206E_206E_202A_202E_206E_206E_206A_200E_202D_200B_200C_202A_206C_202D_206D_202C_200C_206D_202B_206B_200D_200E_200C_202A_206C_202C_200D_202A_202C_200D_202E_206A_206B_202E_206B_200C_206C_202E(builder, ItemActionRowId.ToString()); - _200D_206B_200F_206E_206E_202A_202E_206E_206E_206A_200E_202D_200B_200C_202A_206C_202D_206D_202C_200C_206D_202B_206B_200D_200E_200C_202A_206C_202C_200D_202A_202C_200D_202E_206A_206B_202E_206B_200C_206C_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(539792921)); - _206E_202A_202C_206A_202E_202A_206C_200E_202E_200F_202D_206E_200F_200B_206B_206A_200D_200B_200B_200E_206C_202A_206F_206E_206F_206C_202E_202E_202A_200D_206F_206C_200C_202B_202E_200E_202E_202E_206D_206B_202E(builder, (object)ItemActionData); - return true; - } - - [CompilerGenerated] - public bool Equals(ScannedTicket? other) - { - int num = (((object)this == other) ? 1004047218 : 1004047227); - while (true) - { - int num2 = num; - int num3 = 1004047226; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - num = ((!EqualityComparer<uint>.Default.Equals(ItemActionRowId, other.ItemActionRowId)) ? 1004047225 : 1004047230); - break; - case 3: - return false; - case 7: - num = 1004047227; - break; - case 8: - return true; - case 0: - num = ((!_202D_200D_202B_206C_202D_206C_206D_202B_202C_206B_206C_202E_206B_200E_206C_202C_202D_202B_206D_202A_200D_200B_202C_200D_200B_200D_206A_206A_202C_206E_202C_200E_206A_206B_200D_202B_206F_202A_200C_206F_202E(EqualityContract, other.EqualityContract)) ? 1004047225 : 1004047228); - break; - case 4: - return EqualityComparer<ushort[]>.Default.Equals(ItemActionData, other.ItemActionData); - case 2: - num = ((!EqualityComparer<string>.Default.Equals(Name, other.Name)) ? 1004047225 : 1004047231); - break; - case 1: - num = (((object)other == null) ? 1004047225 : 1004047226); - break; - case 6: - num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? 1004047225 : 1004047224); - break; - } - } - } - - bool IEquatable<ScannedTicket>.Equals(ScannedTicket? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202C_200D_200C_206E_200F_200E_206D_206F_202D_200D_202C_202A_206A_206F_200D_202E_200C_202A_202B_200E_206E_206F_202A_202E_202A_202C_202C_206E_206D_206D_200F_200D_202B_206C_202A_206D_202A_202C_206F_202C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206F_200D_202D_202D_200D_202C_206B_202E_200B_202B_206F_206D_200F_206F_200D_202C_206B_206E_206A_202A_206F_202B_206C_202B_206C_206D_202C_206A_200B_202C_202C_202A_206F_206B_202C_206A_202B_206E_206D_206E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200D_206B_200F_206E_206E_202A_202E_206E_206E_206A_200E_202D_200B_200C_202A_206C_202D_206D_202C_200C_206D_202B_206B_200D_200E_200C_202A_206C_202C_200D_202A_202C_200D_202E_206A_206B_202E_206B_200C_206C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200C_200F_200F_200C_206D_200C_200B_200D_206C_200D_200D_202D_202D_206C_200D_202B_202B_200B_202C_200E_202D_202A_202B_202D_206E_200C_200E_202E_206A_200D_200E_206C_206F_206D_206E_202E_200F_200B_206C_206C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202B_202E_202A_202B_200F_200F_200C_202B_202C_202B_202A_200C_206B_200C_202C_206E_206A_200B_206D_206D_206E_206D_200F_200F_200E_202C_206A_200D_200E_202A_202B_206A_202B_206A_200D_206F_206C_206B_206E_206D_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200E_202B_206A_206B_202E_200D_206D_206A_202C_200E_206F_202C_206D_202E_206F_202C_206D_202E_206E_206F_202A_206D_206A_206C_202D_202E_200D_206D_202B_202C_202E_206D_200B_206E_200C_206C_202E_200C_202D_200D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206E_202A_202C_206A_202E_202A_206C_200E_202E_200F_202D_206E_200F_200B_206B_206A_200D_200B_200B_200E_206C_202A_206F_206E_206F_206C_202E_202E_202A_200D_206F_206C_200C_202B_202E_200E_202E_202E_206D_206B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202D_200D_202B_206C_202D_206C_206D_202B_202C_206B_206C_202E_206B_200E_206C_202C_202D_202B_206D_202A_200D_200B_202C_200D_200B_200D_206A_206A_202C_206E_202C_200E_206A_206B_200D_202B_206F_202A_200C_206F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - public sealed record TeleportTicket(uint ItemId, string Name, ushort TerritoryId, Vector3 Position, byte RequiredGrandCompany = 0, uint RequiredQuestId = 0u) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206D_206F_206B_200F_206E_200E_206D_200D_202D_202C_200C_202A_202E_206D_200C_206B_206C_202B_202D_200D_200F_200C_202A_202A_200C_200C_200D_200C_202C_202C_202C_202A_206C_206D_200D_202D_200B_202D_202A_202E(typeof(TeleportTicket).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202A_202E_206D_206B_202C_200E_202D_202D_206D_202B_206B_206D_202B_206E_200F_202B_206E_206B_206F_206C_200C_200F_202B_206F_200D_206E_206A_202A_200C_202A_206E_206F_202E_200C_206B_200C_202D_202A_202E_202C_202E(); - _202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-657525992)); - _202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(stringBuilder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1120247710)); - int num = ((!PrintMembers(stringBuilder)) ? 1884459870 : 1884459871); - while (true) - { - int num2 = num; - int num3 = 1884459870; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1884459871; - break; - case 1: - _202B_206C_206B_202D_206E_200C_206E_200C_200C_200E_202A_206C_206E_200C_202D_206D_206B_206A_202E_202C_202E_202D_200E_206C_200F_202D_202B_206E_206B_206E_200F_200B_206C_202D_200E_206B_206A_202A_206F_200D_202E(stringBuilder, ' '); - num = 1884459870; - break; - case 0: - _202B_206C_206B_202D_206E_200C_206E_200C_200C_200E_202A_206C_206E_200C_202D_206D_206B_206A_202E_202C_202E_202D_200E_206C_200F_202D_202B_206E_206B_206E_200F_200B_206C_202D_200E_206B_206A_202A_206F_200D_202E(stringBuilder, '}'); - return _202C_200F_206F_200B_206D_202D_202E_200B_202D_202C_200B_202A_206A_206A_202C_200D_206A_206E_206A_202D_202E_206E_206E_200C_200B_200B_202B_206A_206C_202B_200F_206F_200F_206F_202E_206B_200C_206F_200F_206B_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200B_202C_202C_200C_200C_206E_202E_202C_202E_206B_200B_200D_202E_206C_202E_200B_200E_202C_206A_200E_206E_206A_206D_200B_202C_200C_206C_206D_206A_202B_202B_200B_200C_200D_202A_206E_200D_202B_206C_200C_202E(); - _202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-625074920)); - _202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, ItemId.ToString()); - _202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(844509483)); - _200E_206A_202E_200F_202C_200D_202A_202D_206D_206C_202E_200B_200E_200E_206C_202D_202B_206B_206E_202A_202A_202D_200D_202C_200B_206D_202B_206F_206C_200B_200E_206C_206A_206F_202E_202A_206F_202D_200E_206C_202E(builder, (object)Name); - _202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-1370916953)); - _202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, TerritoryId.ToString()); - _202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1811452076)); - _202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, Position.ToString()); - _202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-772128166)); - _202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, RequiredGrandCompany.ToString()); - _202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1957211680)); - _202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(builder, RequiredQuestId.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(TeleportTicket? other) - { - int num = (((object)this == other) ? 1321105694 : 1321105681); - while (true) - { - int num2 = num; - int num3 = 1321105684; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = ((!EqualityComparer<byte>.Default.Equals(RequiredGrandCompany, other.RequiredGrandCompany)) ? 1321105686 : 1321105685); - break; - case 5: - num = (((object)other == null) ? 1321105686 : 1321105693); - break; - case 8: - num = ((!EqualityComparer<Vector3>.Default.Equals(Position, other.Position)) ? 1321105686 : 1321105687); - break; - case 9: - num = ((!_200E_202B_200F_206F_200C_200D_200E_200F_206A_200D_202D_206A_206A_202E_202E_202D_206A_202A_200B_200F_200F_202A_200B_206A_206F_206C_200F_200C_206A_206B_202D_200F_200C_200C_206F_200B_206B_202D_202B_206C_202E(EqualityContract, other.EqualityContract)) ? 1321105686 : 1321105680); - break; - case 7: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? 1321105686 : 1321105692); - break; - case 1: - return EqualityComparer<uint>.Default.Equals(RequiredQuestId, other.RequiredQuestId); - case 6: - num = ((!EqualityComparer<string>.Default.Equals(Name, other.Name)) ? 1321105686 : 1321105683); - break; - case 0: - num = 1321105681; - break; - case 10: - return true; - case 2: - return false; - case 4: - num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? 1321105686 : 1321105682); - break; - } - } - } - - bool IEquatable<TeleportTicket>.Equals(TeleportTicket? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206D_206F_206B_200F_206E_200E_206D_200D_202D_202C_200C_202A_202E_206D_200C_206B_206C_202B_202D_200D_200F_200C_202A_202A_200C_200C_200D_200C_202C_202C_202C_202A_206C_206D_200D_202D_200B_202D_202A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202A_202E_206D_206B_202C_200E_202D_202D_206D_202B_206B_206D_202B_206E_200F_202B_206E_206B_206F_206C_200C_200F_202B_206F_200D_206E_206A_202A_200C_202A_206E_206F_202E_200C_206B_200C_202D_202A_202E_202C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202A_200B_200F_206C_206C_200D_206B_200E_206C_206F_202B_200F_206B_206F_202C_202B_202E_206D_202B_206C_202A_206E_200C_202D_202C_202C_200C_200B_206F_206B_206D_200B_200F_206E_200F_206A_202E_206E_206A_200F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202B_206C_206B_202D_206E_200C_206E_200C_200C_200E_202A_206C_206E_200C_202D_206D_206B_206A_202E_202C_202E_202D_200E_206C_200F_202D_202B_206E_206B_206E_200F_200B_206C_202D_200E_206B_206A_202A_206F_200D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202C_200F_206F_200B_206D_202D_202E_200B_202D_202C_200B_202A_206A_206A_202C_200D_206A_206E_206A_202D_202E_206E_206E_200C_200B_200B_202B_206A_206C_202B_200F_206F_200F_206F_202E_206B_200C_206F_200F_206B_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200B_202C_202C_200C_200C_206E_202E_202C_202E_206B_200B_200D_202E_206C_202E_200B_200E_202C_206A_200E_206E_206A_206D_200B_202C_200C_206C_206D_206A_202B_202B_200B_200C_200D_202A_206E_200D_202B_206C_200C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200E_206A_202E_200F_202C_200D_202A_202D_206D_206C_202E_200B_200E_200E_206C_202D_202B_206B_206E_202A_202A_202D_200D_202C_200B_206D_202B_206F_206C_200B_200E_206C_206A_206F_202E_202A_206F_202D_200E_206C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200E_202B_200F_206F_200C_200D_200E_200F_206A_200D_202D_206A_206A_202E_202E_202D_206A_202A_200B_200F_200F_202A_200B_206A_206F_206C_200F_200C_206A_206B_202D_200F_200C_200C_206F_200B_206B_202D_202B_206C_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - private static readonly uint[] KnownTicketItemIds; + private static readonly uint[] KnownTicketItemIds = new uint[5] { 21069u, 21070u, 21071u, 28064u, 30362u }; public IReadOnlyList<ScannedTicket> ScannedTickets { get; } @@ -328,359 +29,104 @@ public sealed class TeleportTicketService Tickets = tickets; } - [MethodImpl(MethodImplOptions.NoInlining)] public TeleportTicketService(IDataManager dataManager, SmartNavDataOptions dataOptions, ILogger<TeleportTicketService> logger) { ScannedTickets = ScanTicketItems(dataManager, logger); Dictionary<uint, (ushort, Vector3)> dictionary = new Dictionary<uint, (ushort, Vector3)>(); - DirectoryInfo? devSourceDirectory = dataOptions.DevSourceDirectory; - IEnumerator<TeleportTicketEntry> enumerator = _206D_206F_206E_206F_200C_200B_202C_200C_200C_206D_200F_206B_202D_202C_206F_200C_202B_206C_202A_202A_206E_200C_202C_200E_202C_206A_206E_202C_200C_200E_200F_206D_200C_202B_206F_206D_200E_202D_200F_202A_202E((devSourceDirectory != null) ? _206C_206F_200C_202C_206B_202A_200B_202A_206F_206F_200D_206D_206F_202C_200F_200C_200B_206A_206D_206E_202D_200E_206C_200C_200E_200B_202E_206D_200D_202E_206D_206F_200E_200D_206B_206E_206A_200B_202E_206C_202E((FileSystemInfo)devSourceDirectory) : null).Values.GetEnumerator(); - try + foreach (TeleportTicketEntry value2 in AssemblyTeleportTicketLoader.GetTickets(dataOptions.DevSourceDirectory?.FullName).Values) { - while (_206D_206B_206F_206A_206A_200B_202C_202E_206E_202C_200B_200E_202D_206C_200B_200C_202D_206D_206A_200E_202C_206D_206D_206F_206C_200F_206D_200E_206F_206B_206E_202E_206F_206A_202A_200F_200D_202D_202D_200E_202E((IEnumerator)enumerator)) - { - TeleportTicketEntry current = enumerator.Current; - ApplyEntry(dictionary, current); - } - } - finally - { - if (enumerator != null) - { - _200B_200C_200D_202C_200C_202A_202A_200F_200F_202A_200D_200C_202E_200D_202E_200B_206A_202E_200C_200D_202C_206C_202B_200C_200D_202C_206E_202C_202E_206B_200F_206C_202A_202D_202B_202C_202C_206D_202D_206C_202E((IDisposable)enumerator); - } + ApplyEntry(dictionary, value2); } if (dataOptions.UserOverrideDirectory != null) { - LoadDestinationsFrom(_200D_206A_206D_206A_206C_202C_200E_206D_206C_206F_200C_200D_206A_202B_202C_200C_202A_200B_202B_200E_206F_206A_206B_200B_202E_200E_200C_200D_200C_202D_202C_202C_202A_200E_202E_200E_200D_206A_202B_200C_202E(_206C_206F_200C_202C_206B_202A_200B_202A_206F_206F_200D_206D_206F_202C_200F_200C_200B_206A_206D_206E_202D_200E_206C_200C_200E_200B_202E_206D_200D_202E_206D_206F_200E_200D_206B_206E_206A_200B_202E_206C_202E((FileSystemInfo)dataOptions.UserOverrideDirectory), global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-214131285)), dictionary, logger); + LoadDestinationsFrom(Path.Combine(dataOptions.UserOverrideDirectory.FullName, "teleport-tickets.json"), dictionary, logger); } ExcelSheet<ItemActionTelepo> excelSheet = dataManager.GetExcelSheet<ItemActionTelepo>(); List<TeleportTicket> list = new List<TeleportTicket>(); - IEnumerator<ScannedTicket> enumerator2 = ScannedTickets.GetEnumerator(); - try + foreach (ScannedTicket scannedTicket in ScannedTickets) { - while (_206D_206B_206F_206A_206A_200B_202C_202E_206E_202C_200B_200E_202D_206C_200B_200C_202D_206D_206A_200E_202C_206D_206D_206F_206C_200F_206D_200E_206F_206B_206E_202E_206F_206A_202A_200F_200D_202D_202D_200E_202E((IEnumerator)enumerator2)) + if (!dictionary.TryGetValue(scannedTicket.ItemId, out var value)) { - ScannedTicket current2 = enumerator2.Current; - if (!dictionary.TryGetValue(current2.ItemId, out var value)) - { - _206B_206F_200D_206E_202B_202E_206A_200F_202A_206C_206F_202A_200F_206D_206A_202D_206C_202C_202E_206B_206F_202E_206F_206D_202A_200F_200F_200E_206D_206A_202E_206C_206D_202C_200F_200F_206F_206D_200F_202C_202E((ILogger)logger, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-1318998580), new object[2] { current2.ItemId, current2.Name }); - } - else - { - uint num = excelSheet.GetRowOrDefault(current2.ItemActionData[0])?.Requirement.RowId ?? 0; - list.Add(new TeleportTicket(current2.ItemId, current2.Name, value.Item1, value.Item2, (byte)((num >= 1 && num <= 3) ? ((byte)num) : 0), (num >= 65536) ? num : 0u)); - } + logger.LogDebug("Teleport ticket {ItemId} ({Name}) has no known destination - record it via the debug window to make it routable", scannedTicket.ItemId, scannedTicket.Name); } - } - finally - { - if (enumerator2 != null) + else { - _200B_200C_200D_202C_200C_202A_202A_200F_200F_202A_200D_200C_202E_200D_202E_200B_206A_202E_200C_200D_202C_206C_202B_200C_200D_202C_206E_202C_202E_206B_200F_206C_202A_202D_202B_202C_202C_206D_202D_206C_202E((IDisposable)enumerator2); + uint num = excelSheet.GetRowOrDefault(scannedTicket.ItemActionData[0])?.Requirement.RowId ?? 0; + list.Add(new TeleportTicket(scannedTicket.ItemId, scannedTicket.Name, value.Item1, value.Item2, (byte)((num >= 1 && num <= 3) ? ((byte)num) : 0), (num >= 65536) ? num : 0u)); } } Tickets = list; - _206A_206C_206C_202C_202C_206E_202C_206F_202C_200F_200F_206F_206B_206F_200E_202C_200D_200E_206A_206E_200B_200D_206B_206D_200D_202C_206A_202C_200B_206E_200D_202B_202E_206C_206A_200F_202C_202E_206C_206E_202E((ILogger)logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1282340065), new object[2] { ScannedTickets.Count, list.Count }); + logger.LogInformation("Teleport tickets: {Scanned} items found, {Resolved} with destinations", ScannedTickets.Count, list.Count); } - [MethodImpl(MethodImplOptions.NoInlining)] private static List<ScannedTicket> ScanTicketItems(IDataManager dataManager, ILogger logger) { ExcelSheet<Item> excelSheet = dataManager.GetExcelSheet<Item>(); uint? num = null; uint[] knownTicketItemIds = KnownTicketItemIds; - int num2 = 0; - int num3 = -2085150822; - List<ScannedTicket> list = default(List<ScannedTicket>); - ItemAction? itemAction = default(ItemAction?); - Item current = default(Item); - string text = default(string); - ItemAction? valueNullable = default(ItemAction?); - while (true) + foreach (uint rowId in knownTicketItemIds) { - int num4 = num3; - int num5 = -2085150820; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) + ItemAction? itemAction = excelSheet.GetRowOrDefault(rowId)?.ItemAction.ValueNullable; + if (itemAction.HasValue) { - case 5: - _206B_202B_206F_200B_206A_200D_206D_200D_206E_202A_206A_202B_202E_202D_200C_206F_200C_200D_202A_202B_200B_206F_200D_206C_206B_206B_202B_202D_206F_202A_202A_200C_200C_206F_206B_206F_202A_206E_200B_200F_202E(logger, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(258108496), Array.Empty<object>()); - return list; - case 1: - { - int num12 = num2; - num5 = 1; - num6 = num12; - int num13 = num6 ^ num5; - int num14 = num6 & num5; - num2 = num13 + (num14 + num14); - num3 = -2085150822; - break; - } - case 6: - num3 = ((num2 < knownTicketItemIds.Length) ? (-2085150821) : (-2085150824)); - break; - case 7: - { - uint rowId = knownTicketItemIds[num2]; - itemAction = excelSheet.GetRowOrDefault(rowId)?.ItemAction.ValueNullable; - num3 = ((!itemAction.HasValue) ? (-2085150819) : (-2085150820)); - break; - } - case 2: - num3 = -2085150822; - break; - case 4: - list = new List<ScannedTicket>(); - num3 = (num.HasValue ? (-2085150817) : (-2085150823)); - break; - case 0: num = itemAction.Value.Action.RowId; - num3 = -2085150824; break; - case 3: - { - using (ExcelSheet<Item>.Enumerator enumerator = excelSheet.GetEnumerator()) - { - num3 = -1333025980; - while (true) - { - int num9 = num3; - num5 = -1333025980; - num6 = num9; - int num10 = num6 + num5; - int num11 = num6 & num5; - switch (num10 - (num11 + num11)) - { - case 6: - list.Add(new ScannedTicket(current.RowId, text, valueNullable.Value.RowId, new ushort[3] - { - valueNullable.Value.Data[0], - valueNullable.Value.Data[1], - valueNullable.Value.Data[2] - })); - num3 = -1333025980; - break; - case 4: - text = current.Name.ExtractText(); - num3 = (_206A_200B_200F_202E_202C_202B_206A_202B_206F_206D_206A_202E_206E_200F_200E_206F_206E_206E_206C_206E_202B_206E_206C_202B_202A_206D_200E_200F_200B_200F_200C_200B_206C_200C_206A_200D_206D_206D_202E_206D_202E(text) ? (-1333025980) : (-1333025982)); - break; - case 2: - num3 = ((valueNullable.Value.Action.RowId != num) ? (-1333025980) : (-1333025984)); - break; - case 3: - current = enumerator.Current; - num3 = ((current.RowId == 0) ? (-1333025980) : (-1333025979)); - break; - case 0: - num3 = (enumerator.MoveNext() ? (-1333025977) : (-1333025981)); - break; - case 5: - num3 = -1333025980; - break; - case 1: - valueNullable = current.ItemAction.ValueNullable; - num3 = ((!valueNullable.HasValue) ? (-1333025980) : (-1333025978)); - break; - case 7: - goto end_IL_01ae; - } - continue; - end_IL_01ae: - break; - } - } - list.Sort((ScannedTicket a, ScannedTicket b) => a.ItemId.CompareTo(b.ItemId)); - return list; - } } } + List<ScannedTicket> list = new List<ScannedTicket>(); + if (!num.HasValue) + { + logger.LogWarning("Teleport tickets: could not discover the ItemAction type from known items"); + return list; + } + foreach (Item item in excelSheet) + { + if (item.RowId == 0) + { + continue; + } + ItemAction? valueNullable = item.ItemAction.ValueNullable; + if (valueNullable.HasValue && valueNullable.Value.Action.RowId == num) + { + string text = item.Name.ExtractText(); + if (!string.IsNullOrEmpty(text)) + { + list.Add(new ScannedTicket(item.RowId, text, valueNullable.Value.RowId, new ushort[3] + { + valueNullable.Value.Data[0], + valueNullable.Value.Data[1], + valueNullable.Value.Data[2] + })); + } + } + } + list.Sort((ScannedTicket a, ScannedTicket b) => a.ItemId.CompareTo(b.ItemId)); + return list; } private static void ApplyEntry(Dictionary<uint, (ushort TerritoryId, Vector3 Position)> destinations, TeleportTicketEntry entry) { - int num = ((_206A_202A_206E_200E_206B_200E_200D_202C_202D_202A_206D_206B_206A_202C_200C_202E_206A_206D_202B_202A_202A_200E_200E_206A_202D_206A_206D_206A_202B_200C_200D_206C_206D_200C_202D_202A_202A_200E_206B_200E_202E(entry) == 0) ? 1762997114 : 1762997112); - while (true) + if (entry.ItemId != 0 && entry.DestTerritoryId > 0) { - int num2 = num; - int num3 = 1762997113; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - return; - case 0: - destinations[_206A_202A_206E_200E_206B_200E_200D_202C_202D_202A_206D_206B_206A_202C_200C_202E_206A_206D_202B_202A_202A_200E_200E_206A_202D_206A_206D_206A_202B_200C_200D_206C_206D_200C_202D_202A_202A_200E_206B_200E_202E(entry)] = (_200D_206A_202E_206E_200B_206D_206D_202E_200C_206E_202E_202B_200F_206D_202A_206D_202D_202A_200D_200F_206B_202E_200C_206B_202B_202A_202D_206D_206B_202C_200C_202C_202A_200F_206A_200B_202A_202A_200C_206E_202E(entry), _206C_200B_200F_202B_202A_206E_206C_202C_206A_202E_200C_202D_202A_206E_202C_200F_206A_202E_202A_206F_202D_200B_200E_200B_200C_206D_206A_206C_202A_202A_200E_200D_206C_200E_202A_202A_206B_206A_202A_206D_202E(entry)); - num = 1762997114; - break; - case 1: - num = ((_200D_206A_202E_206E_200B_206D_206D_202E_200C_206E_202E_202B_200F_206D_202A_206D_202D_202A_200D_200F_206B_202E_200C_206B_202B_202A_202D_206D_206B_202C_200C_202C_202A_200F_206A_200B_202A_202A_200C_206E_202E(entry) <= 0) ? 1762997114 : 1762997113); - break; - case 2: - num = 1762997112; - break; - } + destinations[entry.ItemId] = (entry.DestTerritoryId, entry.DestPosition); } } - [MethodImpl(MethodImplOptions.NoInlining)] private static void LoadDestinationsFrom(string path, Dictionary<uint, (ushort TerritoryId, Vector3 Position)> destinations, ILogger logger) { - int num = (_200C_200F_206E_202A_206A_202B_200E_202B_202A_202B_202C_202A_200F_206D_202A_200B_200C_200D_200C_202A_206D_206D_200B_206B_200E_200C_202D_200B_200C_202C_202E_206E_200B_200B_202E_206D_206F_206F_200F_202C_202E(path) ? (-1900473582) : (-1900473579)); - TeleportTicketFile teleportTicketFile = default(TeleportTicketFile); - while (true) + if (!File.Exists(path)) { - int num2 = num; - int num3 = -1900473583; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = -1900473579; - break; - case 0: - return; - case 3: - teleportTicketFile = JsonSerializer.Deserialize<TeleportTicketFile>(_206D_200F_206B_206E_206B_202B_200B_206F_200E_206C_206D_200C_206A_202B_200B_202E_200C_202A_206D_206E_202C_206F_202A_200F_200E_202E_206B_200E_200E_202A_206A_200F_202B_200B_206C_200F_206A_202A_202B_202B_202E(path)); - num = ((teleportTicketFile != null) ? (-1900473584) : (-1900473583)); - break; - case 4: - return; - case 1: - { - using (Dictionary<string, TeleportTicketEntry>.ValueCollection.Enumerator enumerator = _206D_200B_206D_206E_200B_200D_202B_200D_200E_202A_206B_206F_200F_200F_202A_206E_200C_200B_200E_200C_202A_200F_202B_202D_206A_202B_202D_206A_202A_200C_206C_206A_200B_206E_202C_202A_202E_206B_206E_202C_202E(teleportTicketFile).Values.GetEnumerator()) - { - num = -1775010946; - while (true) - { - int num7 = num; - num3 = -1775010946; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1775010946; - break; - case 0: - num = (enumerator.MoveNext() ? (-1775010945) : (-1775010947)); - break; - case 1: - { - TeleportTicketEntry current = enumerator.Current; - ApplyEntry(destinations, current); - num = -1775010946; - break; - } - case 3: - goto end_IL_00a8; - } - continue; - end_IL_00a8: - break; - } - } - _206B_206F_200D_206E_202B_202E_206A_200F_202A_206C_206F_202A_200F_206D_206A_202D_206C_202C_202E_206B_206F_202E_206F_206D_202A_200F_200F_200E_206D_206A_202E_206C_206D_202C_200F_200F_206F_206D_200F_202C_202E(logger, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1363837168), new object[2] - { - _206D_200B_206D_206E_200B_200D_202B_200D_200E_202A_206B_206F_200F_200F_202A_206E_200C_200B_200E_200C_202A_200F_202B_202D_206A_202B_202D_206A_202A_200C_206C_206A_200B_206E_202C_202A_202E_206B_206E_202C_202E(teleportTicketFile).Count, - path - }); - return; - } - } + return; } - } - - static TeleportTicketService() - { - uint[] array = new uint[5]; - _200C_202E_200C_202A_202E_202D_202A_200F_206E_202A_206A_200B_206F_200F_202C_202B_206A_202B_200C_200C_200B_206E_202B_202A_206C_206E_206D_202E_200D_202D_200F_206A_206C_200D_202C_206E_200F_206F_206F_202B_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); - KnownTicketItemIds = array; - } - - static string _206C_206F_200C_202C_206B_202A_200B_202A_206F_206F_200D_206D_206F_202C_200F_200C_200B_206A_206D_206E_202D_200E_206C_200C_200E_200B_202E_206D_200D_202E_206D_206F_200E_200D_206B_206E_206A_200B_202E_206C_202E(FileSystemInfo P_0) - { - return P_0.FullName; - } - - static IReadOnlyDictionary<string, TeleportTicketEntry> _206D_206F_206E_206F_200C_200B_202C_200C_200C_206D_200F_206B_202D_202C_206F_200C_202B_206C_202A_202A_206E_200C_202C_200E_202C_206A_206E_202C_200C_200E_200F_206D_200C_202B_206F_206D_200E_202D_200F_202A_202E(string P_0) - { - return AssemblyTeleportTicketLoader.GetTickets(P_0); - } - - static bool _206D_206B_206F_206A_206A_200B_202C_202E_206E_202C_200B_200E_202D_206C_200B_200C_202D_206D_206A_200E_202C_206D_206D_206F_206C_200F_206D_200E_206F_206B_206E_202E_206F_206A_202A_200F_200D_202D_202D_200E_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200B_200C_200D_202C_200C_202A_202A_200F_200F_202A_200D_200C_202E_200D_202E_200B_206A_202E_200C_200D_202C_206C_202B_200C_200D_202C_206E_202C_202E_206B_200F_206C_202A_202D_202B_202C_202C_206D_202D_206C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static string _200D_206A_206D_206A_206C_202C_200E_206D_206C_206F_200C_200D_206A_202B_202C_200C_202A_200B_202B_200E_206F_206A_206B_200B_202E_200E_200C_200D_200C_202D_202C_202C_202A_200E_202E_200E_200D_206A_202B_200C_202E(string P_0, string P_1) - { - return Path.Combine(P_0, P_1); - } - - static void _206B_206F_200D_206E_202B_202E_206A_200F_202A_206C_206F_202A_200F_206D_206A_202D_206C_202C_202E_206B_206F_202E_206F_206D_202A_200F_200F_200E_206D_206A_202E_206C_206D_202C_200F_200F_206F_206D_200F_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _206A_206C_206C_202C_202C_206E_202C_206F_202C_200F_200F_206F_206B_206F_200E_202C_200D_200E_206A_206E_200B_200D_206B_206D_200D_202C_206A_202C_200B_206E_200D_202B_202E_206C_206A_200F_202C_202E_206C_206E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); - } - - static void _206B_202B_206F_200B_206A_200D_206D_200D_206E_202A_206A_202B_202E_202D_200C_206F_200C_200D_202A_202B_200B_206F_200D_206C_206B_206B_202B_202D_206F_202A_202A_200C_200C_206F_206B_206F_202A_206E_200B_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static bool _206A_200B_200F_202E_202C_202B_206A_202B_206F_206D_206A_202E_206E_200F_200E_206F_206E_206E_206C_206E_202B_206E_206C_202B_202A_206D_200E_200F_200B_200F_200C_200B_206C_200C_206A_200D_206D_206D_202E_206D_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static uint _206A_202A_206E_200E_206B_200E_200D_202C_202D_202A_206D_206B_206A_202C_200C_202E_206A_206D_202B_202A_202A_200E_200E_206A_202D_206A_206D_206A_202B_200C_200D_206C_206D_200C_202D_202A_202A_200E_206B_200E_202E(TeleportTicketEntry P_0) - { - return P_0.ItemId; - } - - static ushort _200D_206A_202E_206E_200B_206D_206D_202E_200C_206E_202E_202B_200F_206D_202A_206D_202D_202A_200D_200F_206B_202E_200C_206B_202B_202A_202D_206D_206B_202C_200C_202C_202A_200F_206A_200B_202A_202A_200C_206E_202E(TeleportTicketEntry P_0) - { - return P_0.DestTerritoryId; - } - - static Vector3 _206C_200B_200F_202B_202A_206E_206C_202C_206A_202E_200C_202D_202A_206E_202C_200F_206A_202E_202A_206F_202D_200B_200E_200B_200C_206D_206A_206C_202A_202A_200E_200D_206C_200E_202A_202A_206B_206A_202A_206D_202E(TeleportTicketEntry P_0) - { - return P_0.DestPosition; - } - - static bool _200C_200F_206E_202A_206A_202B_200E_202B_202A_202B_202C_202A_200F_206D_202A_200B_200C_200D_200C_202A_206D_206D_200B_206B_200E_200C_202D_200B_200C_202C_202E_206E_200B_200B_202E_206D_206F_206F_200F_202C_202E(string P_0) - { - return File.Exists(P_0); - } - - static string _206D_200F_206B_206E_206B_202B_200B_206F_200E_206C_206D_200C_206A_202B_200B_202E_200C_202A_206D_206E_202C_206F_202A_200F_200E_202E_206B_200E_200E_202A_206A_200F_202B_200B_206C_200F_206A_202A_202B_202B_202E(string P_0) - { - return File.ReadAllText(P_0); - } - - static Dictionary<string, TeleportTicketEntry> _206D_200B_206D_206E_200B_200D_202B_200D_200E_202A_206B_206F_200F_200F_202A_206E_200C_200B_200E_200C_202A_200F_202B_202D_206A_202B_202D_206A_202A_200C_206C_206A_200B_206E_202C_202A_202E_206B_206E_202C_202E(TeleportTicketFile P_0) - { - return P_0.Tickets; - } - - static void _200C_202E_200C_202A_202E_202D_202A_200F_206E_202A_206A_200B_206F_200F_202C_202B_206A_202B_200C_200C_200B_206E_202B_202A_206C_206E_206D_202E_200D_202D_200F_206A_206C_200D_202C_206E_200F_206F_206F_202B_202E(Array P_0, RuntimeFieldHandle P_1) - { - RuntimeHelpers.InitializeArray(P_0, P_1); + TeleportTicketFile teleportTicketFile = JsonSerializer.Deserialize<TeleportTicketFile>(File.ReadAllText(path)); + if (teleportTicketFile == null) + { + return; + } + foreach (TeleportTicketEntry value in teleportTicketFile.Tickets.Values) + { + ApplyEntry(destinations, value); + } + logger.LogDebug("Teleport tickets: loaded {Count} destinations from {Path}", teleportTicketFile.Tickets.Count, path); } } diff --git a/SmartNav/SmartNav.Data/WarpDataService.cs b/SmartNav/SmartNav.Data/WarpDataService.cs index ee6c3a0..dccad78 100644 --- a/SmartNav/SmartNav.Data/WarpDataService.cs +++ b/SmartNav/SmartNav.Data/WarpDataService.cs @@ -1,13 +1,9 @@ using System; -using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using System.Text.Json; -using System.Threading; using Dalamud.Plugin.Services; using LLib.GameData; using LLib.Shop; @@ -20,467 +16,9 @@ namespace SmartNav.Data; public sealed class WarpDataService { - private sealed record Snapshot(IReadOnlyList<WarpInfo> Warps, IReadOnlyDictionary<uint, WarpInfo> WarpsByRowId, IReadOnlySet<uint> SkippedWarpIds, int TotalLuminaWarps, int NavigationRelevantWarps, int WarpsWithDestination, int WarpsWithUnknownSource, int WarpsWithDerivedSource, int WarpsWithDerivedArrival, int SkippedNoDest, int SkippedSourceBlocked, int SkippedDestBlocked, bool DerivedSourcesPending) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206C_200E_202B_200D_206C_202B_200C_206F_200D_200F_200B_202A_206C_206F_202C_206E_202D_202E_202A_206A_202B_200B_202D_202E_200F_206F_200C_200C_206F_200D_202B_200F_206A_202D_200C_200D_206F_206D_202B_206E_202E(typeof(Snapshot).TypeHandle); - } - } + private sealed record Snapshot(IReadOnlyList<WarpInfo> Warps, IReadOnlyDictionary<uint, WarpInfo> WarpsByRowId, IReadOnlySet<uint> SkippedWarpIds, int TotalLuminaWarps, int NavigationRelevantWarps, int WarpsWithDestination, int WarpsWithUnknownSource, int WarpsWithDerivedSource, int WarpsWithDerivedArrival, int SkippedNoDest, int SkippedSourceBlocked, int SkippedDestBlocked, bool DerivedSourcesPending); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202E_202D_206E_202E_206A_200F_202A_202A_202B_200D_206F_200D_206A_202C_202D_200D_200C_202E_202C_202A_200B_200F_206A_200E_202B_206F_206E_202A_206D_200E_206F_202E_202A_200C_206F_200C_206C_200E_200D_202C_202E(); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(1756001868)); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-169322018)); - int num = ((!PrintMembers(stringBuilder)) ? (-373285292) : (-373285289)); - while (true) - { - int num2 = num; - int num3 = -373285290; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -373285289; - break; - case 1: - _202E_200D_202E_200D_202C_202D_206D_202A_200E_202A_206D_206D_200D_200F_206F_206E_206F_202C_202A_202E_202A_202A_202D_200B_200F_200B_202E_206F_206F_202C_206B_202C_202B_202A_206B_202E_202B_206D_206D_202C_202E(stringBuilder, ' '); - num = -373285292; - break; - case 2: - _202E_200D_202E_200D_202C_202D_206D_202A_200E_202A_206D_206D_200D_200F_206F_206E_206F_202C_202A_202E_202A_202A_202D_200B_200F_200B_202E_206F_206F_202C_206B_202C_202B_202A_206B_202E_202B_206D_206D_202C_202E(stringBuilder, '}'); - return _202D_206D_202D_206A_200D_202E_202E_200E_202B_206E_200E_206A_206E_206C_202A_200E_202A_202B_202C_200D_200D_200D_206F_200F_206E_200C_206B_200D_206F_202B_200E_200D_200B_202C_200D_202D_202C_200D_200C_206C_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200E_200F_200E_200E_202D_202A_206D_206F_206B_200E_200D_206B_202D_200C_202B_202E_202C_200F_200E_202B_202E_206D_206E_200E_202D_206B_200B_206F_200E_206F_202A_200D_206B_202B_200B_202D_200C_206C_206B_202B_202E(); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-144598280)); - _200B_202B_206B_200D_202C_200F_206D_202E_200B_202E_202A_206C_200B_202C_206F_202B_202B_202B_202C_206E_200D_202D_200D_206B_206E_202B_200C_202E_206F_200F_200F_200F_202A_206F_206A_202E_206E_206B_206F_202B_202E(builder, (object)Warps); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-686068959)); - _200B_202B_206B_200D_202C_200F_206D_202E_200B_202E_202A_206C_200B_202C_206F_202B_202B_202B_202C_206E_200D_202D_200D_206B_206E_202B_200C_202E_206F_200F_200F_200F_202A_206F_206A_202E_206E_206B_206F_202B_202E(builder, (object)WarpsByRowId); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-867140763)); - _200B_202B_206B_200D_202C_200F_206D_202E_200B_202E_202A_206C_200B_202C_206F_202B_202B_202B_202C_206E_200D_202D_200D_206B_206E_202B_200C_202E_206F_200F_200F_200F_202A_206F_206A_202E_206E_206B_206F_202B_202E(builder, (object)SkippedWarpIds); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1874028006)); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, TotalLuminaWarps.ToString()); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(285549254)); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, NavigationRelevantWarps.ToString()); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-2005174402)); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, WarpsWithDestination.ToString()); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(882690042)); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, WarpsWithUnknownSource.ToString()); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-729388178)); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, WarpsWithDerivedSource.ToString()); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-404384534)); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, WarpsWithDerivedArrival.ToString()); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(133303081)); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, SkippedNoDest.ToString()); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(504753412)); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, SkippedSourceBlocked.ToString()); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-321305684)); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, SkippedDestBlocked.ToString()); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(201100359)); - _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(builder, DerivedSourcesPending.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(Snapshot? other) - { - int num = (((object)this == other) ? 730754972 : 730754966); - while (true) - { - int num2 = num; - int num3 = 730754975; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 730754966; - break; - case 14: - num = ((!EqualityComparer<IReadOnlyDictionary<uint, WarpInfo>>.Default.Equals(WarpsByRowId, other.WarpsByRowId)) ? 730754963 : 730754971); - break; - case 13: - num = ((!EqualityComparer<int>.Default.Equals(SkippedDestBlocked, other.SkippedDestBlocked)) ? 730754963 : 730754964); - break; - case 12: - return false; - case 9: - num = (((object)other == null) ? 730754963 : 730754959); - break; - case 15: - num = ((!EqualityComparer<int>.Default.Equals(TotalLuminaWarps, other.TotalLuminaWarps)) ? 730754963 : 730754975); - break; - case 3: - return true; - case 4: - num = ((!EqualityComparer<IReadOnlySet<uint>>.Default.Equals(SkippedWarpIds, other.SkippedWarpIds)) ? 730754963 : 730754960); - break; - case 10: - num = ((!EqualityComparer<int>.Default.Equals(WarpsWithDerivedSource, other.WarpsWithDerivedSource)) ? 730754963 : 730754974); - break; - case 7: - num = ((!EqualityComparer<int>.Default.Equals(SkippedNoDest, other.SkippedNoDest)) ? 730754963 : 730754970); - break; - case 0: - num = ((!EqualityComparer<int>.Default.Equals(NavigationRelevantWarps, other.NavigationRelevantWarps)) ? 730754963 : 730754969); - break; - case 16: - num = ((!_202A_206D_202B_206C_200B_202E_206F_200B_206C_206A_202B_206F_202A_202D_200D_202D_200D_200E_200F_206E_206E_202A_202A_206C_202A_206B_206D_200B_200C_206C_206A_206E_200E_206D_206B_200D_206E_202A_206D_200F_202E(EqualityContract, other.EqualityContract)) ? 730754963 : 730754967); - break; - case 6: - num = ((!EqualityComparer<int>.Default.Equals(WarpsWithDestination, other.WarpsWithDestination)) ? 730754963 : 730754958); - break; - case 1: - num = ((!EqualityComparer<int>.Default.Equals(WarpsWithDerivedArrival, other.WarpsWithDerivedArrival)) ? 730754963 : 730754968); - break; - case 5: - num = ((!EqualityComparer<int>.Default.Equals(SkippedSourceBlocked, other.SkippedSourceBlocked)) ? 730754963 : 730754962); - break; - case 11: - return EqualityComparer<bool>.Default.Equals(DerivedSourcesPending, other.DerivedSourcesPending); - case 17: - num = ((!EqualityComparer<int>.Default.Equals(WarpsWithUnknownSource, other.WarpsWithUnknownSource)) ? 730754963 : 730754965); - break; - case 8: - num = ((!EqualityComparer<IReadOnlyList<WarpInfo>>.Default.Equals(Warps, other.Warps)) ? 730754963 : 730754961); - break; - } - } - } - - bool IEquatable<Snapshot>.Equals(Snapshot? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206C_200E_202B_200D_206C_202B_200C_206F_200D_200F_200B_202A_206C_206F_202C_206E_202D_202E_202A_206A_202B_200B_202D_202E_200F_206F_200C_200C_206F_200D_202B_200F_206A_202D_200C_200D_206F_206D_202B_206E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202E_202D_206E_202E_206A_200F_202A_202A_202B_200D_206F_200D_206A_202C_202D_200D_200C_202E_202C_202A_200B_200F_206A_200E_202B_206F_206E_202A_206D_200E_206F_202E_202A_200C_206F_200C_206C_200E_200D_202C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206C_206E_202B_202D_206B_200F_200F_200F_200C_206C_206A_206C_206E_202E_206F_200F_206B_206A_206C_206F_200C_200D_200C_200D_206F_200F_200F_202A_200D_206F_202E_200C_206A_206A_200B_202B_206C_202B_200B_202B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202E_200D_202E_200D_202C_202D_206D_202A_200E_202A_206D_206D_200D_200F_206F_206E_206F_202C_202A_202E_202A_202A_202D_200B_200F_200B_202E_206F_206F_202C_206B_202C_202B_202A_206B_202E_202B_206D_206D_202C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202D_206D_202D_206A_200D_202E_202E_200E_202B_206E_200E_206A_206E_206C_202A_200E_202A_202B_202C_200D_200D_200D_206F_200F_206E_200C_206B_200D_206F_202B_200E_200D_200B_202C_200D_202D_202C_200D_200C_206C_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200E_200F_200E_200E_202D_202A_206D_206F_206B_200E_200D_206B_202D_200C_202B_202E_202C_200F_200E_202B_202E_206D_206E_200E_202D_206B_200B_206F_200E_206F_202A_200D_206B_202B_200B_202D_200C_206C_206B_202B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200B_202B_206B_200D_202C_200F_206D_202E_200B_202E_202A_206C_200B_202C_206F_202B_202B_202B_202C_206E_200D_202D_200D_206B_206E_202B_200C_202E_206F_200F_200F_200F_202A_206F_206A_202E_206E_206B_206F_202B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202A_206D_202B_206C_200B_202E_206F_200B_206C_206A_202B_206F_202A_202D_200D_202D_200D_200E_200F_206E_206E_202A_202A_206C_202A_206B_206D_200B_200C_206C_206A_206E_200E_206D_206B_200D_206E_202A_206D_200F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } - } - - public sealed record WarpInfo(uint RowId, string? Name, string? Question, ushort SourceTerritoryId, Vector3 SourcePosition, uint? NpcDataId, string? NpcName, ushort DestTerritoryId, Vector3? DestPosition, int GilCost, uint[] RequiredQuestIds, uint[]? AvailableDuringMsqIds = null, ushort RequiredClassLevel = 0, bool DerivedSource = false, bool RequireAllQuests = true, bool DerivedArrival = false) - { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202B_202D_202D_202E_202C_206A_206C_206C_202D_200E_206F_202A_206B_206C_206F_202A_202E_200D_202D_200E_202B_200F_200C_206A_200E_200F_202D_206F_206A_206C_206F_206E_202E_200E_202A_202C_202C_202C_202C_202E(typeof(WarpInfo).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206C_200F_200E_202B_202B_206C_206F_206D_200D_206F_206F_202B_202B_202D_202E_202C_202D_202A_206F_200C_202D_206B_202A_200F_206C_206E_200B_202B_200B_202C_202E_200C_206C_200E_200B_202D_200D_202C_206D_206F_202E(); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-1185315143)); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-169322018)); - int num = ((!PrintMembers(stringBuilder)) ? 2109038316 : 2109038319); - while (true) - { - int num2 = num; - int num3 = 2109038317; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 2109038319; - break; - case 2: - _202B_206B_202B_206F_202A_202A_202B_202E_206C_202C_206E_202D_202D_200D_200C_200D_202B_202B_202E_202A_206A_202A_206B_206C_202B_202E_200F_202C_206F_206C_206A_200F_200F_206D_200E_206C_202C_206A_206F_200C_202E(stringBuilder, ' '); - num = 2109038316; - break; - case 1: - _202B_206B_202B_206F_202A_202A_202B_202E_206C_202C_206E_202D_202D_200D_200C_200D_202B_202B_202E_202A_206A_202A_206B_206C_202B_202E_200F_202C_206F_206C_206A_200F_200F_206D_200E_206C_202C_206A_206F_200C_202E(stringBuilder, '}'); - return _200C_206F_202B_206F_206D_202B_202B_202A_202C_206F_200B_202D_206E_200C_206A_206A_202D_200D_202E_206F_206F_202E_202A_202A_206F_206B_206C_200D_206E_200C_202D_202E_202B_206B_200F_202C_206F_202B_202E_206E_202E((object?)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202E_206E_202D_202B_200D_206D_202B_206D_200E_206D_206C_202E_200E_206D_200C_200E_206D_202E_206E_200E_202E_200B_200F_206A_202E_206F_202A_202C_200F_206A_206A_202B_206F_202D_202A_202D_200F_202A_206A_206D_202E(); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(514129598)); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, RowId.ToString()); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-350069621)); - _202B_206E_202A_206C_206E_202D_206E_200C_206F_200C_206F_206E_206D_202D_206D_202D_202E_202E_202A_206A_206F_206B_202A_206A_200E_200E_206B_206D_200E_202E_206E_200D_202D_206F_206F_200D_202E_206D_202C_206D_202E(builder, (object?)Name); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-1584832933)); - _202B_206E_202A_206C_206E_202D_206E_200C_206F_200C_206F_206E_206D_202D_206D_202D_202E_202E_202A_206A_206F_206B_202A_206A_200E_200E_206B_206D_200E_202E_206E_200D_202D_206F_206F_200D_202E_206D_202C_206D_202E(builder, (object?)Question); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-894729286)); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, SourceTerritoryId.ToString()); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(6170393)); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, SourcePosition.ToString()); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(995075649)); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, NpcDataId.ToString()); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(1189830150)); - _202B_206E_202A_206C_206E_202D_206E_200C_206F_200C_206F_206E_206D_202D_206D_202D_202E_202E_202A_206A_206F_206B_202A_206A_200E_200E_206B_206D_200E_202E_206E_200D_202D_206F_206F_200D_202E_206D_202C_206D_202E(builder, (object?)NpcName); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(1613414786)); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, DestTerritoryId.ToString()); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(526349895)); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, DestPosition.ToString()); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(353108370)); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, GilCost.ToString()); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1935506742)); - _202B_206E_202A_206C_206E_202D_206E_200C_206F_200C_206F_206E_206D_202D_206D_202D_202E_202E_202A_206A_206F_206B_202A_206A_200E_200E_206B_206D_200E_202E_206E_200D_202D_206F_206F_200D_202E_206D_202C_206D_202E(builder, (object?)RequiredQuestIds); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1563123768)); - _202B_206E_202A_206C_206E_202D_206E_200C_206F_200C_206F_206E_206D_202D_206D_202D_202E_202E_202A_206A_206F_206B_202A_206A_200E_200E_206B_206D_200E_202E_206E_200D_202D_206F_206F_200D_202E_206D_202C_206D_202E(builder, (object?)AvailableDuringMsqIds); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1694220309)); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, RequiredClassLevel.ToString()); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1760540087)); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, DerivedSource.ToString()); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(219114932)); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, RequireAllQuests.ToString()); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1955470053)); - _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(builder, DerivedArrival.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(WarpInfo? other) - { - int num = (((object)this == other) ? (-469766671) : (-469766678)); - while (true) - { - int num2 = num; - int num3 = -469766688; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = ((!EqualityComparer<uint[]>.Default.Equals(RequiredQuestIds, other.RequiredQuestIds)) ? (-469766669) : (-469766672)); - break; - case 12: - num = ((!EqualityComparer<string>.Default.Equals(Name, other.Name)) ? (-469766669) : (-469766679)); - break; - case 9: - num = ((!EqualityComparer<string>.Default.Equals(Question, other.Question)) ? (-469766669) : (-469766674)); - break; - case 6: - return EqualityComparer<bool>.Default.Equals(DerivedArrival, other.DerivedArrival); - case 17: - return true; - case 0: - num = ((!EqualityComparer<Vector3>.Default.Equals(SourcePosition, other.SourcePosition)) ? (-469766669) : (-469766673)); - break; - case 8: - num = ((!EqualityComparer<ushort>.Default.Equals(DestTerritoryId, other.DestTerritoryId)) ? (-469766669) : (-469766685)); - break; - case 18: - num = ((!EqualityComparer<uint>.Default.Equals(RowId, other.RowId)) ? (-469766669) : (-469766676)); - break; - case 16: - num = ((!EqualityComparer<uint[]>.Default.Equals(AvailableDuringMsqIds, other.AvailableDuringMsqIds)) ? (-469766669) : (-469766687)); - break; - case 5: - num = ((!EqualityComparer<bool>.Default.Equals(RequireAllQuests, other.RequireAllQuests)) ? (-469766669) : (-469766682)); - break; - case 3: - num = ((!EqualityComparer<Vector3?>.Default.Equals(DestPosition, other.DestPosition)) ? (-469766669) : (-469766681)); - break; - case 1: - num = ((!EqualityComparer<ushort>.Default.Equals(RequiredClassLevel, other.RequiredClassLevel)) ? (-469766669) : (-469766668)); - break; - case 19: - return false; - case 13: - num = -469766678; - break; - case 7: - num = ((!EqualityComparer<int>.Default.Equals(GilCost, other.GilCost)) ? (-469766669) : (-469766684)); - break; - case 11: - num = ((!_206A_200D_202A_200D_206F_206F_202B_206D_200E_202E_206D_206C_200D_202C_202A_200C_200D_202B_206A_200F_206C_206E_202E_206D_202B_206C_200F_200F_202E_202B_200D_202E_206B_206A_206A_200B_202C_200C_202D_206F_202E(EqualityContract, other.EqualityContract)) ? (-469766669) : (-469766670)); - break; - case 14: - num = ((!EqualityComparer<ushort>.Default.Equals(SourceTerritoryId, other.SourceTerritoryId)) ? (-469766669) : (-469766688)); - break; - case 20: - num = ((!EqualityComparer<bool>.Default.Equals(DerivedSource, other.DerivedSource)) ? (-469766669) : (-469766683)); - break; - case 15: - num = ((!EqualityComparer<uint?>.Default.Equals(NpcDataId, other.NpcDataId)) ? (-469766669) : (-469766686)); - break; - case 10: - num = (((object)other == null) ? (-469766669) : (-469766677)); - break; - case 2: - num = ((!EqualityComparer<string>.Default.Equals(NpcName, other.NpcName)) ? (-469766669) : (-469766680)); - break; - } - } - } - - bool IEquatable<WarpInfo>.Equals(WarpInfo? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type? _202B_202D_202D_202E_202C_206A_206C_206C_202D_200E_206F_202A_206B_206C_206F_202A_202E_200D_202D_200E_202B_200F_200C_206A_200E_200F_202D_206F_206A_206C_206F_206E_202E_200E_202A_202C_202C_202C_202C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder? _206C_200F_200E_202B_202B_206C_206F_206D_200D_206F_206F_202B_202B_202D_202E_202C_202D_202A_206F_200C_202D_206B_202A_200F_206C_206E_200B_202B_200B_202C_202E_200C_206C_200E_200B_202D_200D_202C_206D_206F_202E() - { - return new StringBuilder(); - } - - static StringBuilder? _200E_200B_200D_200C_206C_202C_200D_200F_202B_200D_206F_202B_206E_200F_202D_202A_202C_202C_206D_206D_206E_206B_200D_200C_202D_200C_200E_202A_202C_200E_202A_202B_202C_200E_202D_200C_206E_206A_200D_202D_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _202B_206B_202B_206F_202A_202A_202B_202E_206C_202C_206E_202D_202D_200D_200C_200D_202B_202B_202E_202A_206A_202A_206B_206C_202B_202E_200F_202C_206F_206C_206A_200F_200F_206D_200E_206C_202C_206A_206F_200C_202E(StringBuilder? P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string? _200C_206F_202B_206F_206D_202B_202B_202A_202C_206F_200B_202D_206E_200C_206A_206A_202D_200D_202E_206F_206F_202E_202A_202A_206F_206B_206C_200D_206E_200C_202D_202E_202B_206B_200F_202C_206F_202B_202E_206E_202E(object? P_0) - { - return P_0.ToString(); - } - - static void _202E_206E_202D_202B_200D_206D_202B_206D_200E_206D_206C_202E_200E_206D_200C_200E_206D_202E_206E_200E_202E_200B_200F_206A_202E_206F_202A_202C_200F_206A_206A_202B_206F_202D_202A_202D_200F_202A_206A_206D_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder? _202B_206E_202A_206C_206E_202D_206E_200C_206F_200C_206F_206E_206D_202D_206D_202D_202E_202E_202A_206A_206F_206B_202A_206A_200E_200E_206B_206D_200E_202E_206E_200D_202D_206F_206F_200D_202E_206D_202C_206D_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } - - static bool _206A_200D_202A_200D_206F_206F_202B_206D_200E_202E_206D_206C_200D_202C_202A_200C_200D_202B_206A_200F_206C_206E_202E_206D_202B_206C_200F_200F_202E_202B_200D_202E_206B_206A_206A_200B_202C_200C_202D_206F_202E(Type? P_0, Type? P_1) - { - return P_0 == P_1; - } - } - - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass39_0 - { - public ExcelSheet<ArrayEventHandler> arrayEventHandlers; - - public IDataManager dataManager; - - public ExcelSheet<Level> levelSheet; - - internal IEnumerable<uint>? _003CBuildSnapshot_003Eb__4(uint handlerId) - { - ArrayEventHandler? rowOrDefault = arrayEventHandlers.GetRowOrDefault(handlerId); - int num = (rowOrDefault.HasValue ? (-2031263627) : (-2031263628)); - while (true) - { - int num2 = num; - int num3 = -2031263627; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return (from x in rowOrDefault.GetValueOrDefault().Data - where x.RowId != 0 - select x.RowId).ToList(); - case 1: - return null; - case 2: - goto IL_00c3; - } - continue; - IL_00c3: - num = -2031263628; - } - } - - internal (ushort TerritoryId, Vector3 Position)? _003CBuildSnapshot_003Eb__6(uint popId) - { - Level? rowOrDefault = levelSheet.GetRowOrDefault(popId); - int num = (rowOrDefault.HasValue ? (-1803587058) : (-1803587059)); - while (true) - { - int num2 = num; - int num3 = -1803587060; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - return ((ushort)rowOrDefault.Value.Territory.RowId, new Vector3(rowOrDefault.Value.X, rowOrDefault.Value.Y, rowOrDefault.Value.Z)); - case 1: - return null; - case 0: - goto IL_00bc; - } - continue; - IL_00bc: - num = -1803587059; - } - } - - static bool _202E_202A_206E_202C_206B_206A_202E_202D_206D_206C_200F_206B_200E_202D_202E_206D_200C_206D_206E_202D_200E_206A_206E_200B_206C_206E_200F_200E_200C_200E_206E_200F_200C_206C_206B_206D_206A_206E_200E_206D_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - } + public sealed record WarpInfo(uint RowId, string? Name, string? Question, ushort SourceTerritoryId, Vector3 SourcePosition, uint? NpcDataId, string? NpcName, ushort DestTerritoryId, Vector3? DestPosition, int GilCost, uint[] RequiredQuestIds, uint[]? AvailableDuringMsqIds = null, ushort RequiredClassLevel = 0, bool DerivedSource = false, bool RequireAllQuests = true, bool DerivedArrival = false); private const uint WarpHandlerType = 2u; @@ -538,7 +76,7 @@ public sealed class WarpDataService private readonly ILogger<WarpDataService>? _logger; - private readonly object _applyLock = _202E_200E_206C_202E_202C_200E_202B_202D_206B_206E_202C_200F_200E_200D_206A_206F_200B_206E_200E_206C_202D_206E_206D_206A_202B_200D_206F_200D_200E_206C_202C_206E_202E_202A_206E_200D_206C_202B_202A_200D_202E(); + private readonly object _applyLock = new object(); private volatile Snapshot _current; @@ -589,1693 +127,485 @@ public sealed class WarpDataService public bool ApplyDerivedSources() { - int num = ((_npcPositionCache != null) ? 690668671 : 690668670); - while (true) + if (_npcPositionCache == null) { - int num2 = num; - int num3 = 690668671; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return false; + } + lock (_applyLock) + { + if (!_current.DerivedSourcesPending || !_npcPositionCache.IsBuilt) { - case 2: - goto IL_004c; - case 1: return false; - case 0: - { - object applyLock = _applyLock; - bool flag = false; - try - { - _200F_206E_200B_206B_202A_202C_200B_206E_206B_200F_200E_202E_200D_206C_200D_206D_202C_200F_206D_200B_200F_202E_202A_200B_206D_200D_202C_202A_206B_202C_200F_200D_202B_202D_200F_202D_202B_202C_206F_202E_202E(applyLock, ref flag); - num = ((!_current.DerivedSourcesPending) ? (-1198875736) : (-1198875733)); - while (true) - { - int num5 = num; - num3 = -1198875735; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 3: - num = -1198875733; - break; - case 2: - num = (_202B_200B_206B_200C_200D_202A_206B_202A_206A_200C_206C_206A_200C_200F_206E_200F_200E_206D_202A_202D_202E_202E_200C_200D_200B_200E_206B_206B_206B_200B_200E_202C_206C_202B_206C_202B_200F_200E_202B_202D_202E(_npcPositionCache) ? (-1198875735) : (-1198875736)); - break; - case 1: - return false; - case 0: - _current = BuildSnapshot(); - return true; - } - } - } - finally - { - num = ((!flag) ? (-242398341) : (-242398344)); - while (true) - { - int num8 = num; - num3 = -242398343; - num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -242398344; - break; - case 1: - _206B_202E_206F_200C_200F_206D_202A_206E_206E_206D_202D_200C_200F_206A_200B_202C_202E_206E_206C_202E_206F_200B_206B_206F_200E_206A_206A_200D_202E_206C_202C_200F_200B_206E_200E_200B_202D_202B_200F_202E(applyLock); - num = -242398341; - break; - case 2: - goto end_IL_0137; - } - continue; - end_IL_0137: - break; - } - } } - } - continue; - IL_004c: - num = 690668670; + _current = BuildSnapshot(); + return true; } } - [MethodImpl(MethodImplOptions.NoInlining)] private Snapshot BuildSnapshot() { IDataManager dataManager = _dataManager; SmartNavDataOptions dataOptions = _dataOptions; NpcPositionCache npcPositionCache = _npcPositionCache; ILogger<WarpDataService> logger = _logger; - bool flag = _202B_200B_206B_200C_200D_202A_206B_202A_206A_200C_206C_206A_200C_200F_206E_200F_200E_206D_202A_202D_202E_202E_200C_200D_200B_200E_206B_206B_206B_200B_200E_202C_206C_202B_206C_202B_200F_200E_202B_202D_202E(npcPositionCache); - int num = (flag ? (-539051135) : (-539051134)); - object obj; - while (true) - { - int num2 = num; - int num3 = -539051136; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 0: - goto IL_007a; - case 2: - obj = (Func<uint, (ushort, Vector3, bool)?>)((uint _) => ((ushort TerritoryId, Vector3 Position, bool FestivalOnly)?)null); - break; - case 1: - obj = new Func<uint, (ushort, Vector3, bool)?>(npcPositionCache.TryGetPlacement); - break; - } - break; - IL_007a: - num = -539051134; - } - Func<uint, (ushort, Vector3, bool)?> getPlacement = (Func<uint, (ushort, Vector3, bool)?>)obj; + bool isBuilt = npcPositionCache.IsBuilt; + Func<uint, (ushort, Vector3, bool)?> getPlacement = (isBuilt ? new Func<uint, (ushort, Vector3, bool)?>(npcPositionCache.TryGetPlacement) : ((Func<uint, (ushort, Vector3, bool)?>)((uint _) => ((ushort TerritoryId, Vector3 Position, bool FestivalOnly)?)null))); List<WarpDestinationEntry> list = new List<WarpDestinationEntry>(); HashSet<uint> hashSet = new HashSet<uint>(); - DirectoryInfo? devSourceDirectory = dataOptions.DevSourceDirectory; - (IReadOnlyList<uint>, IReadOnlyDictionary<string, WarpDestinationEntry>) tuple = _206E_202B_202A_200D_206D_202D_202B_202C_200B_200E_202C_200C_206B_202D_202D_202C_202A_202B_200D_206B_202E_200B_202B_206F_206E_206A_202B_200C_202A_202C_200D_200B_206F_202B_206C_202C_200B_206F_200E_206B_202E((devSourceDirectory != null) ? _202B_206F_206A_200E_200C_202E_202D_202C_200F_202C_202C_206E_200C_206C_206A_206D_206B_200F_206E_200B_202E_206C_200C_200B_202A_200F_206A_200F_202D_206E_202E_202E_206A_206F_202E_200B_202A_206F_202B_206A_202E((FileSystemInfo)devSourceDirectory) : null); - IReadOnlyList<uint> item = tuple.Item1; - IReadOnlyDictionary<string, WarpDestinationEntry> item2 = tuple.Item2; - IEnumerator<uint> enumerator = item.GetEnumerator(); - try + var (readOnlyList, readOnlyDictionary) = AssemblyWarpDestinationLoader.GetOverrides(dataOptions.DevSourceDirectory?.FullName); + foreach (uint item4 in readOnlyList) { - num = 1091070719; - while (true) - { - int num5 = num; - int num3 = 1091070718; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 0: - num = 1091070719; - break; - case 2: - { - uint current = enumerator.Current; - hashSet.Add(current); - num = 1091070719; - break; - } - case 1: - num = (_200B_206F_206C_202E_202E_202D_200E_202C_206B_206D_202C_200B_206E_200D_200D_206B_200D_202A_206D_200B_206F_202D_200F_202B_202B_202D_202A_206B_206B_200B_200C_202D_200F_206A_202C_206B_206C_206C_206E_202D_202E((IEnumerator)enumerator) ? 1091070716 : 1091070717); - break; - case 3: - goto end_IL_0116; - } - continue; - end_IL_0116: - break; - } + hashSet.Add(item4); } - finally - { - num = ((enumerator == null) ? 866852118 : 866852117); - while (true) - { - int num8 = num; - int num3 = 866852119; - int num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 866852117; - break; - case 2: - _200B_200D_202B_202C_200D_206D_206C_200F_202C_200F_200D_200F_206B_202E_202C_206F_206A_200C_206B_202D_206F_202B_206E_206E_200E_206F_200C_202E_200E_200B_206A_202C_206C_206D_200F_206B_200B_202A_202E_200F_202E((IDisposable)enumerator); - num = 866852118; - break; - case 1: - goto end_IL_01bb; - } - continue; - end_IL_01bb: - break; - } - } - IEnumerator<KeyValuePair<string, WarpDestinationEntry>> enumerator2 = item2.GetEnumerator(); WarpDestinationEntry value; - try + foreach (KeyValuePair<string, WarpDestinationEntry> item5 in readOnlyDictionary) { - num = -296082524; - while (true) + item5.Deconstruct(out var _, out value); + WarpDestinationEntry item = value; + list.Add(item); + } + if (dataOptions.UserOverrideDirectory != null) + { + LoadWarpOverridesFrom(Path.Combine(dataOptions.UserOverrideDirectory.FullName, "warp-destinations.json"), list, hashSet); + } + Dictionary<(uint, uint), WarpDestinationEntry> dictionary = new Dictionary<(uint, uint), WarpDestinationEntry>(); + Dictionary<uint, WarpDestinationEntry> dictionary2 = new Dictionary<uint, WarpDestinationEntry>(); + foreach (WarpDestinationEntry item6 in list) + { + uint? npcDataId = item6.NpcDataId; + if (npcDataId.HasValue) { - int num9 = num; - int num3 = -296082521; - int num4 = num9; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = (_200B_206F_206C_202E_202E_202D_200E_202C_206B_206D_202C_200B_206E_200D_200D_206B_200D_202A_206D_200B_206F_202D_200F_202B_202B_202D_202A_206B_206B_200B_200C_202D_200F_206A_202C_206B_206C_206C_206E_202D_202E((IEnumerator)enumerator2) ? (-296082522) : (-296082521)); - break; - case 1: - { - enumerator2.Current.Deconstruct(out var _, out value); - WarpDestinationEntry item3 = value; - list.Add(item3); - num = -296082524; - break; - } - case 2: - num = -296082524; - break; - case 0: - goto end_IL_021c; - } + uint valueOrDefault = npcDataId.GetValueOrDefault(); + dictionary[(item6.WarpRowId, valueOrDefault)] = item6; + } + else + { + dictionary2[item6.WarpRowId] = item6; + } + } + HashSet<ushort> hashSet2 = new HashSet<ushort>(); + foreach (WarpDestinationEntry item7 in list) + { + if (item7.SourceTerritoryId > 0) + { + hashSet2.Add(item7.SourceTerritoryId); + } + if (item7.DestTerritoryId > 0) + { + hashSet2.Add(item7.DestTerritoryId); + } + } + Dictionary<ushort, ETerritoryIntendedUse> dictionary3 = (from x in dataManager.GetExcelSheet<TerritoryType>() + where x.RowId != 0 + select x).ToDictionary((TerritoryType x) => (ushort)x.RowId, (TerritoryType x) => (ETerritoryIntendedUse)x.TerritoryIntendedUse.RowId); + Dictionary<uint, List<uint>> dictionary4 = new Dictionary<uint, List<uint>>(); + int nestedArraysSkipped = 0; + ExcelSheet<ArrayEventHandler> arrayEventHandlers = dataManager.GetExcelSheet<ArrayEventHandler>(); + Func<uint, IEnumerable<uint>> arrayMemberLookup = delegate(uint handlerId) + { + ArrayEventHandler? rowOrDefault = arrayEventHandlers.GetRowOrDefault(handlerId); + return (!rowOrDefault.HasValue) ? null : (from x in rowOrDefault.GetValueOrDefault().Data + where x.RowId != 0 + select x.RowId).ToList(); + }; + foreach (ENpcBase item8 in dataManager.GetExcelSheet<ENpcBase>()) + { + foreach (RowRef eNpcDatum in item8.ENpcData) + { + AddWarpFronter(dictionary4, eNpcDatum.RowId, item8.RowId, arrayMemberLookup, ref nestedArraysSkipped); + } + } + foreach (EObj item9 in dataManager.GetExcelSheet<EObj>()) + { + AddWarpFronter(dictionary4, item9.Data.RowId, item9.RowId, arrayMemberLookup, ref nestedArraysSkipped); + } + if (nestedArraysSkipped > 0) + { + logger.LogWarning("Warp fronter index: {Count} nested ArrayEventHandler refs skipped (hop depth capped at 1)", nestedArraysSkipped); + } + Dictionary<uint, WarpInfo> dictionary5 = new Dictionary<uint, WarpInfo>(); + Dictionary<uint, uint> dictionary6 = new Dictionary<uint, uint>(); + Dictionary<uint, List<(uint, ushort, Vector3)>> dictionary7 = new Dictionary<uint, List<(uint, ushort, Vector3)>>(); + int num = 0; + int num2 = 0; + int num3 = 0; + int num4 = 0; + (uint, uint) key2; + foreach (Warp item10 in from x in dataManager.GetExcelSheet<Warp>() + where x.RowId != 0 + select x) + { + num++; + ushort num5 = (ushort)item10.TerritoryType.RowId; + if (num5 == 0) + { + num2++; continue; - end_IL_021c: - break; } - } - finally - { - num = ((enumerator2 == null) ? 208700910 : 208700909); - while (true) + if (dictionary3.TryGetValue(num5, out var value2) && NonNavigableIntendedUses.Contains(value2) && !hashSet2.Contains(num5)) { - int num10 = num; - int num3 = 208700911; - int num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 0: - num = 208700909; - break; - case 2: - _200B_200D_202B_202C_200D_206D_206C_200F_202C_200F_200D_200F_206B_202E_202C_206F_206A_200C_206B_202D_206F_202B_206E_206E_200E_206F_200C_202E_200E_200B_206A_202C_206C_206D_200F_206B_200B_202A_202E_200F_202E((IDisposable)enumerator2); - num = 208700910; - break; - case 1: - goto end_IL_02cd; - } + num4++; continue; - end_IL_02cd: - break; } + dictionary6[item10.RowId] = item10.PopRange.RowId; + ushort num6 = 0; + Vector3 sourcePosition = Vector3.Zero; + uint? npcDataId2 = null; + string npcName = null; + if (dictionary2.TryGetValue(item10.RowId, out var value3)) + { + num6 = value3.SourceTerritoryId; + sourcePosition = value3.SourcePosition; + npcDataId2 = value3.NpcDataId; + } + if (num6 == 0) + { + foreach (KeyValuePair<(uint, uint), WarpDestinationEntry> item11 in dictionary) + { + item11.Deconstruct(out key2, out value); + (uint, uint) tuple2 = key2; + WarpDestinationEntry warpDestinationEntry = value; + if (tuple2.Item1 == item10.RowId && warpDestinationEntry.SourceTerritoryId > 0) + { + num6 = warpDestinationEntry.SourceTerritoryId; + sourcePosition = warpDestinationEntry.SourcePosition; + npcDataId2 = warpDestinationEntry.NpcDataId; + break; + } + } + } + bool derivedSource = false; + if (num6 == 0) + { + List<(uint, ushort, Vector3)> list2 = ResolveDerivedSources(item10.RowId, dictionary4, getPlacement); + if (list2.Count > 0) + { + (uint, ushort, Vector3) tuple3 = list2[0]; + num6 = tuple3.Item2; + sourcePosition = tuple3.Item3; + npcDataId2 = tuple3.Item1; + npcName = ResolveObjectName(tuple3.Item1); + derivedSource = true; + if (list2.Count > 1) + { + dictionary7[item10.RowId] = list2; + } + } + } + if (num6 > 0 && dictionary3.TryGetValue(num6, out var value4) && NonNavigableIntendedUses.Contains(value4) && !hashSet2.Contains(num6)) + { + num3++; + continue; + } + int gilCost = 0; + ushort requiredClassLevel = 0; + List<uint> list3 = new List<uint>(); + bool requireAllQuests = true; + WarpCondition? valueNullable = item10.WarpCondition.ValueNullable; + if (valueNullable.HasValue) + { + gilCost = valueNullable.Value.Gil; + requiredClassLevel = valueNullable.Value.ClassLevel; + if (valueNullable.Value.RequiredQuest1.RowId != 0) + { + list3.Add(valueNullable.Value.RequiredQuest1.RowId); + } + if (valueNullable.Value.RequiredQuest2.RowId != 0) + { + list3.Add(valueNullable.Value.RequiredQuest2.RowId); + } + if (valueNullable.Value.RequiredQuest3.RowId != 0) + { + list3.Add(valueNullable.Value.RequiredQuest3.RowId); + } + if (valueNullable.Value.RequiredQuest4.RowId != 0) + { + list3.Add(valueNullable.Value.RequiredQuest4.RowId); + } + requireAllQuests = valueNullable.Value.CompleteParam == 1; + } + string text = item10.Name.ExtractText(); + if (string.IsNullOrEmpty(text)) + { + text = null; + } + string text2 = item10.Question.ExtractText(); + if (string.IsNullOrEmpty(text2)) + { + text2 = null; + } + dictionary5[item10.RowId] = new WarpInfo(item10.RowId, text, text2, num6, sourcePosition, npcDataId2, npcName, num5, null, gilCost, list3.ToArray(), null, requiredClassLevel, derivedSource, requireAllQuests); } - num = ((dataOptions.UserOverrideDirectory == null) ? (-616875928) : (-616875925)); - uint? num17 = default(uint?); - WarpDestinationEntry current2 = default(WarpDestinationEntry); - WarpDestinationEntry current3 = default(WarpDestinationEntry); - ExcelSheet<ArrayEventHandler> arrayEventHandlers; - Warp current6 = default(Warp); - ushort num35 = default(ushort); - ushort num40 = default(ushort); - Vector3 sourcePosition = default(Vector3); - uint? npcDataId = default(uint?); - string npcName = default(string); - WarpDestinationEntry warpDestinationEntry = default(WarpDestinationEntry); - bool derivedSource = default(bool); - List<uint> list2 = default(List<uint>); - WarpCondition? valueNullable = default(WarpCondition?); - List<(uint, ushort, Vector3)> list3 = default(List<(uint, ushort, Vector3)>); - string text = default(string); - string text2 = default(string); - bool requireAllQuests = default(bool); - int gilCost = default(int); - ushort requiredClassLevel = default(ushort); - ETerritoryIntendedUse value4 = default(ETerritoryIntendedUse); - ExcelSheet<Level> levelSheet; - uint num46 = default(uint); - WarpInfo warpInfo = default(WarpInfo); - Vector3? destPosition = default(Vector3?); - uint[] array = default(uint[]); - WarpDestinationEntry warpDestinationEntry2 = default(WarpDestinationEntry); - Vector3? vector = default(Vector3?); - bool derivedArrival = default(bool); - WarpDestinationEntry value8 = default(WarpDestinationEntry); - WarpDestinationEntry value7 = default(WarpDestinationEntry); - uint value6 = default(uint); - WarpInfo warpInfo4 = default(WarpInfo); - (uint, uint) item4 = default((uint, uint)); - WarpInfo warpInfo3 = default(WarpInfo); - WarpDestinationEntry warpDestinationEntry3 = default(WarpDestinationEntry); - List<uint> list5 = default(List<uint>); - (uint, ushort, Vector3) current7 = default((uint, ushort, Vector3)); - ETerritoryIntendedUse value11 = default(ETerritoryIntendedUse); - while (true) + List<WarpInfo> list4 = new List<WarpInfo>(); + Dictionary<uint, WarpInfo> dictionary8 = new Dictionary<uint, WarpInfo>(); + HashSet<(uint, uint)> hashSet3 = new HashSet<(uint, uint)>(); + ExcelSheet<Level> levelSheet = dataManager.GetExcelSheet<Level>(); + Func<uint, (ushort, Vector3)?> levelLookup = delegate(uint popId) { - int num13 = num; - int num3 = -616875927; - int num4 = num13; - int num14 = num4 + num3; - int num15 = num4 & num3; - switch (num14 - (num15 + num15)) + Level? rowOrDefault = levelSheet.GetRowOrDefault(popId); + return (!rowOrDefault.HasValue) ? (((ushort, Vector3)?)null) : new(ushort, Vector3)?(((ushort)rowOrDefault.Value.Territory.RowId, new Vector3(rowOrDefault.Value.X, rowOrDefault.Value.Y, rowOrDefault.Value.Z))); + }; + DerivedArrivalFile arrivals = AssemblyDerivedArrivalLoader.GetArrivals(dataOptions.DevSourceDirectory?.FullName); + if (!string.IsNullOrEmpty(arrivals.GameVersion) && !string.IsNullOrEmpty(dataOptions.GameVersion) && arrivals.GameVersion != dataOptions.GameVersion) + { + logger.LogWarning("Derived-arrival data was generated for game version {DataVersion} but the game is {LiveVersion} - rerun SmartNav.Data.ArrivalScanner", arrivals.GameVersion, dataOptions.GameVersion); + } + uint key3; + foreach (KeyValuePair<uint, WarpInfo> item12 in dictionary5) + { + item12.Deconstruct(out key3, out var value5); + uint num7 = key3; + WarpInfo warpInfo = value5; + Vector3? destPosition = null; + uint[] array = null; + foreach (KeyValuePair<(uint, uint), WarpDestinationEntry> item13 in dictionary) { - case 0: - num = -616875925; - break; - case 2: - LoadWarpOverridesFrom(_206B_206F_200C_206F_206C_202D_202A_206D_200D_206E_202D_206F_200F_206D_202A_202C_200E_200C_200B_202D_206D_202B_200B_200E_200F_200F_200C_200E_206D_202B_202B_206A_200F_200B_202A_202B_206E_202E_206A_206E_202E(_202B_206F_206A_200E_200C_202E_202D_202C_200F_202C_202C_206E_200C_206C_206A_206D_206B_200F_206E_200B_202E_206C_200C_200B_202A_200F_206A_200F_202D_206E_202E_202E_206A_206F_202E_200B_202A_206F_202B_206A_202E((FileSystemInfo)dataOptions.UserOverrideDirectory), global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1598187262)), list, hashSet); - num = -616875928; - break; - case 1: - { - Dictionary<(uint, uint), WarpDestinationEntry> dictionary = new Dictionary<(uint, uint), WarpDestinationEntry>(); - Dictionary<uint, WarpDestinationEntry> dictionary2 = new Dictionary<uint, WarpDestinationEntry>(); - using (List<WarpDestinationEntry>.Enumerator enumerator3 = list.GetEnumerator()) + item13.Deconstruct(out key2, out value); + (uint, uint) tuple4 = key2; + WarpDestinationEntry warpDestinationEntry2 = value; + if (tuple4.Item1 != num7) { - num = 1236181802; - while (true) - { - int num16 = num; - num3 = 1236181801; - num4 = num16; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - { - uint valueOrDefault = num17.GetValueOrDefault(); - dictionary[(_206F_200B_200D_200C_202D_202B_200C_202A_202B_200C_200C_206F_206F_202D_200E_206B_200D_206B_200D_202B_206E_200F_202E_202E_200B_200F_200D_200C_200C_206B_200C_202A_202B_202A_202A_206E_206E_202D_202C_200D_202E(current2), valueOrDefault)] = current2; - num = 1236181802; - break; - } - case 2: - dictionary2[_206F_200B_200D_200C_202D_202B_200C_202A_202B_200C_200C_206F_206F_202D_200E_206B_200D_206B_200D_202B_206E_200F_202E_202E_200B_200F_200D_200C_200C_206B_200C_202A_202B_202A_202A_206E_206E_202D_202C_200D_202E(current2)] = current2; - num = 1236181802; - break; - case 3: - num = (enumerator3.MoveNext() ? 1236181804 : 1236181800); - break; - case 5: - current2 = enumerator3.Current; - num17 = _202B_206D_206C_206C_206E_200F_202E_206D_200E_200C_206E_206A_200D_200E_206A_200C_206E_202C_206A_200E_202B_202C_200B_202B_206E_206D_202C_206F_202D_202A_206F_206A_206F_206A_200B_206B_202A_206C_200E_200C_202E(current2); - num = ((!num17.HasValue) ? 1236181803 : 1236181805); - break; - case 0: - num = 1236181802; - break; - case 1: - goto end_IL_03ca; - } - continue; - end_IL_03ca: - break; - } + continue; } - HashSet<ushort> hashSet2 = new HashSet<ushort>(); - using (List<WarpDestinationEntry>.Enumerator enumerator3 = list.GetEnumerator()) + if (!destPosition.HasValue && warpDestinationEntry2.DestPosition != Vector3.Zero) { - num = 2031466588; - while (true) - { - int num18 = num; - num3 = 2031466586; - num4 = num18; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - hashSet2.Add(_206F_206B_200F_206C_202C_202C_200C_206F_206A_202A_206F_206E_206D_206D_206B_206F_206D_202D_200E_202B_200D_206D_200B_200F_206A_202A_206C_206C_200D_206C_202A_202D_206F_202D_200E_202A_206D_202C_202C_202E_202E(current3)); - num = 2031466588; - break; - case 6: - num = (enumerator3.MoveNext() ? 2031466584 : 2031466590); - break; - case 3: - num = ((_206F_206B_200F_206C_202C_202C_200C_206F_206A_202A_206F_206E_206D_206D_206B_206F_206D_202D_200E_202B_200D_206D_200B_200F_206A_202A_206C_206C_200D_206C_202A_202D_206F_202D_200E_202A_206D_202C_202C_202E_202E(current3) <= 0) ? 2031466588 : 2031466586); - break; - case 2: - current3 = enumerator3.Current; - num = ((_206F_200E_206D_206A_200F_202D_206D_202B_200F_206B_200C_200C_200D_206F_200C_206E_206C_202B_200C_206C_206D_202B_206E_202E_200D_206E_206C_200B_202B_202D_200F_202A_206B_206B_206D_202D_206F_206B_206E_206C_202E(current3) <= 0) ? 2031466585 : 2031466587); - break; - case 5: - num = 2031466588; - break; - case 1: - hashSet2.Add(_206F_200E_206D_206A_200F_202D_206D_202B_200F_206B_200C_200C_200D_206F_200C_206E_206C_202B_200C_206C_206D_202B_206E_202E_200D_206E_206C_200B_202B_202D_200F_202A_206B_206B_206D_202D_206F_206B_206E_206C_202E(current3)); - num = 2031466585; - break; - case 4: - goto end_IL_04df; - } - continue; - end_IL_04df: - break; - } + destPosition = warpDestinationEntry2.DestPosition; } - Dictionary<ushort, ETerritoryIntendedUse> dictionary3 = (from x in dataManager.GetExcelSheet<TerritoryType>() - where x.RowId != 0 - select x).ToDictionary((TerritoryType x) => (ushort)x.RowId, (TerritoryType x) => (ETerritoryIntendedUse)x.TerritoryIntendedUse.RowId); - Dictionary<uint, List<uint>> dictionary4 = new Dictionary<uint, List<uint>>(); - int nestedArraysSkipped = 0; - arrayEventHandlers = dataManager.GetExcelSheet<ArrayEventHandler>(); - Func<uint, IEnumerable<uint>> arrayMemberLookup = delegate(uint handlerId) + if (array == null) { - ArrayEventHandler? rowOrDefault = arrayEventHandlers.GetRowOrDefault(handlerId); - int num60 = (rowOrDefault.HasValue ? (-2031263627) : (-2031263628)); - while (true) + List<uint> availableDuringMsqIds = warpDestinationEntry2.AvailableDuringMsqIds; + if (availableDuringMsqIds != null && availableDuringMsqIds.Count > 0) { - int num61 = num60; - int num62 = -2031263627; - int num63 = num61; - int num64 = num63 + num62; - int num65 = num63 & num62; - switch (num64 - (num65 + num65)) - { - case 0: - return (from x in rowOrDefault.GetValueOrDefault().Data - where x.RowId != 0 - select x.RowId).ToList(); - case 1: - return (IEnumerable<uint>?)null; - case 2: - goto IL_00c3; - } - continue; - IL_00c3: - num60 = -2031263628; - } - }; - foreach (ENpcBase item6 in dataManager.GetExcelSheet<ENpcBase>()) - { - using Collection<RowRef>.Enumerator enumerator5 = item6.ENpcData.GetEnumerator(); - num = 1868823740; - while (true) - { - int num19 = num; - num3 = 1868823740; - num4 = num19; - int num20 = num4 + num3; - int num21 = num4 & num3; - switch (num20 - (num21 + num21)) - { - case 0: - num = (enumerator5.MoveNext() ? 1868823741 : 1868823743); - break; - case 1: - AddWarpFronter(dictionary4, enumerator5.Current.RowId, item6.RowId, arrayMemberLookup, ref nestedArraysSkipped); - num = 1868823740; - break; - case 2: - num = 1868823740; - break; - case 3: - goto end_IL_06ec; - } - continue; - end_IL_06ec: - break; - } - } - using (ExcelSheet<EObj>.Enumerator enumerator6 = dataManager.GetExcelSheet<EObj>().GetEnumerator()) - { - num = 1015784097; - while (true) - { - int num22 = num; - num3 = 1015784097; - num4 = num22; - int num23 = num4 + num3; - int num24 = num4 & num3; - switch (num23 - (num24 + num24)) - { - case 0: - num = (enumerator6.MoveNext() ? 1015784096 : 1015784098); - break; - case 1: - { - EObj current5 = enumerator6.Current; - AddWarpFronter(dictionary4, current5.Data.RowId, current5.RowId, arrayMemberLookup, ref nestedArraysSkipped); - num = 1015784097; - break; - } - case 2: - num = 1015784097; - break; - case 3: - goto end_IL_07d7; - } - continue; - end_IL_07d7: - break; - } - } - num = ((nestedArraysSkipped <= 0) ? (-762848955) : (-762848956)); - while (true) - { - int num25 = num; - num3 = -762848955; - num4 = num25; - int num26 = num4 + num3; - int num27 = num4 & num3; - switch (num26 - (num27 + num27)) - { - case 2: - num = -762848956; - break; - case 1: - _206E_202D_202C_200E_200B_206C_206F_202C_206A_202A_202E_200B_206B_200B_200C_206C_202E_200C_202D_206B_206F_202A_206F_202C_200C_200E_200B_200D_206B_200B_206E_206E_206B_206A_202A_206E_202E_202B_202C_206F_202E((ILogger)logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1287740097), new object[1] { nestedArraysSkipped }); - num = -762848955; - break; - case 0: - { - Dictionary<uint, WarpInfo> dictionary5 = new Dictionary<uint, WarpInfo>(); - Dictionary<uint, uint> dictionary6 = new Dictionary<uint, uint>(); - Dictionary<uint, List<(uint, ushort, Vector3)>> dictionary7 = new Dictionary<uint, List<(uint, ushort, Vector3)>>(); - int num28 = 0; - int num29 = 0; - int num30 = 0; - int num31 = 0; - IEnumerator<Warp> enumerator7 = (from x in dataManager.GetExcelSheet<Warp>() - where x.RowId != 0 - select x).GetEnumerator(); - (uint, uint) key2; - try - { - while (true) - { - IL_0c47: - if (_200B_206F_206C_202E_202E_202D_200E_202C_206B_206D_202C_200B_206E_200D_200D_206B_200D_202A_206D_200B_206F_202D_200F_202B_202B_202D_202A_206B_206B_200B_200C_202D_200F_206A_202C_206B_206C_206C_206E_202D_202E((IEnumerator)enumerator7)) - { - current6 = enumerator7.Current; - int num32 = num28; - num3 = 1; - num4 = num32; - int num33 = num4 ^ num3; - int num34 = num4 & num3; - num28 = num33 + (num34 + num34); - num35 = (ushort)current6.TerritoryType.RowId; - if (num35 == 0) - { - int num36 = num29; - num3 = 1; - num4 = num36; - num29 = (num4 | num3) + (num4 & num3); - continue; - } - if (dictionary3.TryGetValue(num35, out var value2) && NonNavigableIntendedUses.Contains(value2) && !hashSet2.Contains(num35)) - { - int num37 = num31; - num3 = 1; - num4 = num37; - int num38 = num4 ^ num3; - int num39 = num4 & num3; - num31 = num38 + (num39 + num39); - continue; - } - dictionary6[current6.RowId] = current6.PopRange.RowId; - num40 = 0; - sourcePosition = Vector3.Zero; - npcDataId = null; - npcName = null; - if (dictionary2.TryGetValue(current6.RowId, out var value3)) - { - num40 = _206F_200E_206D_206A_200F_202D_206D_202B_200F_206B_200C_200C_200D_206F_200C_206E_206C_202B_200C_206C_206D_202B_206E_202E_200D_206E_206C_200B_202B_202D_200F_202A_206B_206B_206D_202D_206F_206B_206E_206C_202E(value3); - sourcePosition = _200F_202B_200E_200C_206A_202E_206D_206B_200B_200C_206C_206E_202A_200F_200E_200F_200B_202B_200B_206F_200E_202D_202C_206C_200E_202E_206C_202C_200B_200C_206F_206C_206D_202B_206E_206B_206D_200D_206B_202B_202E(value3); - npcDataId = _202B_206D_206C_206C_206E_200F_202E_206D_200E_200C_206E_206A_200D_200E_206A_200C_206E_202C_206A_200E_202B_202C_200B_202B_206E_206D_202C_206F_202D_202A_206F_206A_206F_206A_200B_206B_202A_206C_200E_200C_202E(value3); - } - if (num40 == 0) - { - using Dictionary<(uint, uint), WarpDestinationEntry>.Enumerator enumerator8 = dictionary.GetEnumerator(); - num = -1191632534; - while (true) - { - int num41 = num; - num3 = -1191632533; - num4 = num41; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - num = -1191632534; - break; - case 0: - num40 = _206F_200E_206D_206A_200F_202D_206D_202B_200F_206B_200C_200C_200D_206F_200C_206E_206C_202B_200C_206C_206D_202B_206E_202E_200D_206E_206C_200B_202B_202D_200F_202A_206B_206B_206D_202D_206F_206B_206E_206C_202E(warpDestinationEntry); - sourcePosition = _200F_202B_200E_200C_206A_202E_206D_206B_200B_200C_206C_206E_202A_200F_200E_200F_200B_202B_200B_206F_200E_202D_202C_206C_200E_202E_206C_202C_200B_200C_206F_206C_206D_202B_206E_206B_206D_200D_206B_202B_202E(warpDestinationEntry); - npcDataId = _202B_206D_206C_206C_206E_200F_202E_206D_200E_200C_206E_206A_200D_200E_206A_200C_206E_202C_206A_200E_202B_202C_200B_202B_206E_206D_202C_206F_202D_202A_206F_206A_206F_206A_200B_206B_202A_206C_200E_200C_202E(warpDestinationEntry); - goto end_IL_0a8e; - case 2: - { - enumerator8.Current.Deconstruct(out key2, out value); - (uint, uint) tuple2 = key2; - warpDestinationEntry = value; - num = ((tuple2.Item1 != current6.RowId) ? (-1191632534) : (-1191632529)); - break; - } - case 1: - num = (enumerator8.MoveNext() ? (-1191632535) : (-1191632536)); - break; - case 4: - num = ((_206F_200E_206D_206A_200F_202D_206D_202B_200F_206B_200C_200C_200D_206F_200C_206E_206C_202B_200C_206C_206D_202B_206E_202E_200D_206E_206C_200B_202B_202D_200F_202A_206B_206B_206D_202D_206F_206B_206E_206C_202E(warpDestinationEntry) <= 0) ? (-1191632534) : (-1191632533)); - break; - case 3: - goto end_IL_0a8e; - } - continue; - end_IL_0a8e: - break; - } - } - derivedSource = false; - num = ((num40 != 0) ? (-788834391) : (-788834390)); - } - else - { - num = -788834381; - } - while (true) - { - int num42 = num; - num3 = -788834371; - num4 = num42; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 1: - break; - case 25: - list2.Add(valueNullable.Value.RequiredQuest4.RowId); - num = -788834383; - continue; - case 23: - list3 = ResolveDerivedSources(current6.RowId, dictionary4, getPlacement); - num = ((list3.Count <= 0) ? (-788834391) : (-788834370)); - continue; - case 7: - text = current6.Name.ExtractText(); - num = ((!_206A_202D_200C_206F_206A_206C_206C_202B_206C_200E_206A_200E_206A_200C_206E_206C_200F_206F_202A_206E_202B_200D_206F_206F_200B_206A_206B_200D_200B_202C_206A_202C_202E_206A_206D_202E_206A_200E_206C_202A_202E(text)) ? (-788834369) : (-788834392)); - continue; - case 16: - num = ((valueNullable.Value.RequiredQuest4.RowId == 0) ? (-788834383) : (-788834396)); - continue; - case 20: - num = ((num40 <= 0) ? (-788834385) : (-788834379)); - continue; - case 10: - text2 = null; - num = -788834376; - continue; - case 17: - num = ((valueNullable.Value.RequiredQuest2.RowId == 0) ? (-788834386) : (-788834380)); - continue; - case 12: - requireAllQuests = valueNullable.Value.CompleteParam == 1; - num = -788834374; - continue; - case 9: - list2.Add(valueNullable.Value.RequiredQuest2.RowId); - num = -788834386; - continue; - case 6: - num = -788834390; - continue; - case 2: - text2 = current6.Question.ExtractText(); - num = ((!_206A_202D_200C_206F_206A_206C_206C_202B_206C_200E_206A_200E_206A_200C_206E_206C_200F_206F_202A_206E_202B_200D_206F_206F_200B_206A_206B_200D_200B_202C_206A_202C_202E_206A_206D_202E_206A_200E_206C_202A_202E(text2)) ? (-788834376) : (-788834377)); - continue; - case 18: - gilCost = 0; - requiredClassLevel = 0; - list2 = new List<uint>(); - requireAllQuests = true; - valueNullable = current6.WarpCondition.ValueNullable; - num = ((!valueNullable.HasValue) ? (-788834374) : (-788834395)); - continue; - case 21: - text = null; - num = -788834369; - continue; - case 4: - num = ((!NonNavigableIntendedUses.Contains(value4)) ? (-788834385) : (-788834378)); - continue; - case 3: - { - (uint, ushort, Vector3) tuple3 = list3[0]; - num40 = tuple3.Item2; - sourcePosition = tuple3.Item3; - npcDataId = tuple3.Item1; - npcName = ResolveObjectName(tuple3.Item1); - derivedSource = true; - num = ((list3.Count <= 1) ? (-788834391) : (-788834371)); - continue; - } - case 8: - num = ((!dictionary3.TryGetValue(num40, out value4)) ? (-788834385) : (-788834375)); - continue; - case 13: - list2.Add(valueNullable.Value.RequiredQuest1.RowId); - num = -788834388; - continue; - case 24: - gilCost = valueNullable.Value.Gil; - requiredClassLevel = valueNullable.Value.ClassLevel; - num = ((valueNullable.Value.RequiredQuest1.RowId == 0) ? (-788834388) : (-788834384)); - continue; - case 19: - num = ((valueNullable.Value.RequiredQuest3.RowId == 0) ? (-788834387) : (-788834382)); - continue; - case 22: - { - int num43 = num30; - num3 = 1; - num4 = num43; - num30 = (num4 | num3) + (num4 & num3); - num = -788834372; - continue; - } - case 15: - list2.Add(valueNullable.Value.RequiredQuest3.RowId); - num = -788834387; - continue; - case 0: - dictionary7[current6.RowId] = list3; - num = -788834391; - continue; - case 11: - num = (hashSet2.Contains(num40) ? (-788834385) : (-788834389)); - continue; - case 5: - dictionary5[current6.RowId] = new WarpInfo(current6.RowId, text, text2, num40, sourcePosition, npcDataId, npcName, num35, null, gilCost, list2.ToArray(), null, requiredClassLevel, derivedSource, requireAllQuests); - num = -788834372; - continue; - case 14: - goto end_IL_0bbf; - } - goto IL_0c47; - continue; - end_IL_0bbf: - break; - } - break; - } - } - finally - { - num = ((enumerator7 == null) ? (-2087080931) : (-2087080930)); - while (true) - { - int num44 = num; - num3 = -2087080932; - num4 = num44; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -2087080930; - break; - case 1: - goto end_IL_10ea; - case 2: - _200B_200D_202B_202C_200D_206D_206C_200F_202C_200F_200D_200F_206B_202E_202C_206F_206A_200C_206B_202D_206F_202B_206E_206E_200E_206F_200C_202E_200E_200B_206A_202C_206C_206D_200F_206B_200B_202A_202E_200F_202E((IDisposable)enumerator7); - num = -2087080931; - break; - } - continue; - end_IL_10ea: - break; - } - } - List<WarpInfo> list4 = new List<WarpInfo>(); - Dictionary<uint, WarpInfo> dictionary8 = new Dictionary<uint, WarpInfo>(); - HashSet<(uint, uint)> hashSet3 = new HashSet<(uint, uint)>(); - levelSheet = dataManager.GetExcelSheet<Level>(); - Func<uint, (ushort, Vector3)?> levelLookup = delegate(uint popId) - { - Level? rowOrDefault = levelSheet.GetRowOrDefault(popId); - int num60 = (rowOrDefault.HasValue ? (-1803587058) : (-1803587059)); - while (true) - { - int num61 = num60; - int num62 = -1803587060; - int num63 = num61; - switch ((num63 | num62) - (num63 & num62)) - { - case 2: - return ((ushort)rowOrDefault.Value.Territory.RowId, new Vector3(rowOrDefault.Value.X, rowOrDefault.Value.Y, rowOrDefault.Value.Z)); - case 1: - return ((ushort TerritoryId, Vector3 Position)?)null; - case 0: - goto IL_00bc; - } - continue; - IL_00bc: - num60 = -1803587059; - } - }; - DirectoryInfo? devSourceDirectory2 = dataOptions.DevSourceDirectory; - DerivedArrivalFile derivedArrivalFile = _200E_202D_206A_202D_206A_206C_206F_206B_200F_200C_202E_200F_200B_200C_206A_206F_206C_200E_202C_206B_206C_200B_206A_200F_206B_202B_202D_200B_206A_200F_206A_202E_202D_202A_202C_200B_202B_200D_200B_206E_202E((devSourceDirectory2 != null) ? _202B_206F_206A_200E_200C_202E_202D_202C_200F_202C_202C_206E_200C_206C_206A_206D_206B_200F_206E_200B_202E_206C_200C_200B_202A_200F_206A_200F_202D_206E_202E_202E_206A_206F_202E_200B_202A_206F_202B_206A_202E((FileSystemInfo)devSourceDirectory2) : null); - num = (_206A_202D_200C_206F_206A_206C_206C_202B_206C_200E_206A_200E_206A_200C_206E_206C_200F_206F_202A_206E_202B_200D_206F_206F_200B_206A_206B_200D_200B_202C_206A_202C_202E_206A_206D_202E_206A_200E_206C_202A_202E(_202D_202B_200E_200C_200F_200C_206F_206D_206D_206C_206E_200F_200B_200C_206F_202B_206E_202A_202B_206E_206E_206F_202E_200C_206C_200E_206B_202E_200F_202B_206A_200F_200E_206D_206D_200D_200E_206C_202A_200C_202E(derivedArrivalFile)) ? (-1202914817) : (-1202914824)); - while (true) - { - int num45 = num; - num3 = -1202914820; - num4 = num45; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - _206E_202D_202C_200E_200B_206C_206F_202C_206A_202A_202E_200B_206B_200B_200C_206C_202E_200C_202D_206B_206F_202A_206F_202C_200C_200E_200B_200D_206B_200B_206E_206E_206B_206A_202A_206E_202E_202B_202C_206F_202E((ILogger)logger, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-174820420), new object[2] - { - _202D_202B_200E_200C_200F_200C_206F_206D_206D_206C_206E_200F_200B_200C_206F_202B_206E_202A_202B_206E_206E_206F_202E_200C_206C_200E_206B_202E_200F_202B_206A_200F_200E_206D_206D_200D_200E_206C_202A_200C_202E(derivedArrivalFile), - dataOptions.GameVersion - }); - num = -1202914817; - break; - case 4: - num = (_206A_202D_200C_206F_206A_206C_206C_202B_206C_200E_206A_200E_206A_200C_206E_206C_200F_206F_202A_206E_202B_200D_206F_206F_200B_206A_206B_200D_200B_202C_206A_202C_202E_206A_206D_202E_206A_200E_206C_202A_202E(dataOptions.GameVersion) ? (-1202914817) : (-1202914819)); - break; - case 1: - num = ((!_202A_206C_206D_206F_200B_202C_202E_200C_206E_206C_202E_202C_200F_200F_202A_202A_206F_200E_200D_202C_202A_200E_202E_202D_206B_202A_200C_202E_206F_206F_200C_206C_206D_206D_202E_206F_206D_202A_206F_202D_202E(_202D_202B_200E_200C_200F_200C_206F_206D_206D_206C_206E_200F_200B_200C_206F_202B_206E_202A_202B_206E_206E_206F_202E_200C_206C_200E_206B_202E_200F_202B_206A_200F_200E_206D_206D_200D_200E_206C_202A_200C_202E(derivedArrivalFile), dataOptions.GameVersion)) ? (-1202914817) : (-1202914818)); - break; - case 0: - num = -1202914824; - break; - case 3: - { - uint key3; - using (Dictionary<uint, WarpInfo>.Enumerator enumerator9 = dictionary5.GetEnumerator()) - { - while (true) - { - IL_151e: - if (enumerator9.MoveNext()) - { - enumerator9.Current.Deconstruct(out key3, out var value5); - num46 = key3; - warpInfo = value5; - destPosition = null; - array = null; - using (Dictionary<(uint, uint), WarpDestinationEntry>.Enumerator enumerator8 = dictionary.GetEnumerator()) - { - num = -1453011060; - while (true) - { - int num47 = num; - num3 = -1453011061; - num4 = num47; - switch ((num4 | num3) - (num4 & num3)) - { - case 8: - array = _206E_206F_200C_200B_206C_206D_200E_202A_206D_202C_202D_200C_200C_206F_206E_206B_206F_202C_202C_200F_206F_202B_200E_202C_200D_200C_206D_200D_202A_200D_200C_200B_206F_200B_202B_200E_206C_206A_202E_206D_202E(warpDestinationEntry2).ToArray(); - num = -1453011060; - break; - case 0: - destPosition = _206F_200F_202D_206B_206A_202B_200F_206A_206F_206C_206F_202A_200D_206B_202C_200F_202A_206B_206F_202C_206B_200E_200C_202E_200F_202B_200C_202C_202E_206E_200B_202D_202C_202A_200B_202C_202C_206A_200C_200C_202E(warpDestinationEntry2); - num = -1453011063; - break; - case 6: - num = ((!(_206F_200F_202D_206B_206A_202B_200F_206A_206F_206C_206F_202A_200D_206B_202C_200F_202A_206B_206F_202C_206B_200E_200C_202E_200F_202B_200C_202C_202E_206E_200B_202D_202C_202A_200B_202C_202C_206A_200C_200C_202E(warpDestinationEntry2) != Vector3.Zero)) ? (-1453011063) : (-1453011061)); - break; - case 2: - num = ((array != null) ? (-1453011060) : (-1453011057)); - break; - case 5: - num = ((list5.Count <= 0) ? (-1453011060) : (-1453011069)); - break; - case 7: - num = (enumerator8.MoveNext() ? (-1453011070) : (-1453011071)); - break; - case 1: - num = (destPosition.HasValue ? (-1453011063) : (-1453011059)); - break; - case 9: - { - enumerator8.Current.Deconstruct(out key2, out value); - (uint, uint) tuple4 = key2; - warpDestinationEntry2 = value; - num = ((tuple4.Item1 != num46) ? (-1453011060) : (-1453011062)); - break; - } - case 4: - list5 = _206E_206F_200C_200B_206C_206D_200E_202A_206D_202C_202D_200C_200C_206F_206E_206B_206F_202C_202C_200F_206F_202B_200E_202C_200D_200C_206D_200D_202A_200D_200C_200B_206F_200B_202B_200E_206C_206A_202E_206D_202E(warpDestinationEntry2); - num = ((list5 == null) ? (-1453011060) : (-1453011058)); - break; - case 3: - num = -1453011060; - break; - case 10: - goto end_IL_12d3; - } - continue; - end_IL_12d3: - break; - } - } - num = (destPosition.HasValue ? 322550405 : 322550421); - } - else - { - num = 322550414; - } - while (true) - { - int num48 = num; - num3 = 322550405; - num4 = num48; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 12: - break; - case 0: - num = ((array != null) ? 322550403 : 322550408); - continue; - case 2: - destPosition = vector; - derivedArrival = true; - num = 322550412; - continue; - case 9: - { - WarpInfo warpInfo2 = warpInfo with - { - DestPosition = destPosition, - AvailableDuringMsqIds = array, - DerivedArrival = derivedArrival - }; - list4.Add(warpInfo2); - dictionary8[num46] = warpInfo2; - num17 = warpInfo.NpcDataId; - num = ((!num17.HasValue) ? 322550409 : 322550402); - continue; - } - case 13: - num = ((!dictionary2.TryGetValue(num46, out value8)) ? 322550403 : 322550401); - continue; - case 15: - destPosition = _206F_200F_202D_206B_206A_202B_200F_206A_206F_206C_206F_202A_200D_206B_202C_200F_202A_206B_206F_202C_206B_200E_200C_202E_200F_202B_200C_202C_202E_206E_200B_202D_202C_202A_200B_202C_202C_206A_200C_200C_202E(value7); - num = 322550405; - continue; - case 16: - num = ((!dictionary2.TryGetValue(num46, out value7)) ? 322550405 : 322550415); - continue; - case 17: - num = ((list5.Count <= 0) ? 322550403 : 322550411); - continue; - case 10: - num = ((!(_206F_200F_202D_206B_206A_202B_200F_206A_206F_206C_206F_202A_200D_206B_202C_200F_202A_206B_206F_202C_206B_200E_200C_202E_200F_202B_200C_202C_202E_206E_200B_202D_202C_202A_200B_202C_202C_206A_200C_200C_202E(value7) != Vector3.Zero)) ? 322550405 : 322550410); - continue; - case 7: - { - uint valueOrDefault2 = num17.GetValueOrDefault(); - hashSet3.Add((num46, valueOrDefault2)); - num = 322550409; - continue; - } - case 5: - num = 322550421; - continue; - case 8: - num = ((value6 == 0) ? 322550412 : 322550404); - continue; - case 4: - list5 = _206E_206F_200C_200B_206C_206D_200E_202A_206D_202C_202D_200C_200C_206F_206E_206B_206F_202C_202C_200F_206F_202B_200E_202C_200D_200C_206D_200D_202A_200D_200C_200B_206F_200B_202B_200E_206C_206A_202E_206D_202E(value8); - num = ((list5 == null) ? 322550403 : 322550420); - continue; - case 6: - derivedArrival = false; - num = (destPosition.HasValue ? 322550412 : 322550406); - continue; - case 14: - array = _206E_206F_200C_200B_206C_206D_200E_202A_206D_202C_202D_200C_200C_206F_206E_206B_206F_202C_202C_200F_206F_202B_200E_202C_200D_200C_206D_200D_202A_200D_200C_200B_206F_200B_202B_200E_206C_206A_202E_206D_202E(value8).ToArray(); - num = 322550403; - continue; - case 1: - vector = ResolveDerivedArrival(value6, warpInfo.DestTerritoryId, _202C_206D_206C_200E_206C_202C_206A_202B_200E_206C_200B_200B_206D_202A_202B_206E_206F_206B_202A_200C_202B_206A_206D_200F_206E_202A_202B_206B_200E_200C_200C_200B_206C_200D_206A_202C_202A_202B_206D_206C_202E(derivedArrivalFile).GetValueOrDefault(num46), levelLookup); - num = ((!vector.HasValue) ? 322550412 : 322550407); - continue; - case 3: - num = ((!dictionary6.TryGetValue(num46, out value6)) ? 322550412 : 322550413); - continue; - case 11: - goto end_IL_14b6; - } - goto IL_151e; - continue; - end_IL_14b6: - break; - } - break; - } - } - using (Dictionary<(uint, uint), WarpDestinationEntry>.Enumerator enumerator8 = dictionary.GetEnumerator()) - { - num = 1428496538; - while (true) - { - int num49 = num; - num3 = 1428496536; - num4 = num49; - int num50 = num4 + num3; - int num51 = num4 & num3; - Vector3? vector2; - Vector3? destPosition2; - uint item5; - string? name; - string? question; - ushort sourceTerritoryId; - Vector3 sourcePosition2; - uint? npcDataId2; - ushort destTerritoryId; - int gilCost2; - uint[] requiredQuestIds; - switch (num50 - (num51 + num51)) - { - case 1: - warpInfo4 = dictionary5[item4.Item1]; - warpInfo3 = dictionary8[item4.Item1]; - num = ((_206F_200F_202D_206B_206A_202B_200F_206A_206F_206C_206F_202A_200D_206B_202C_200F_202A_206B_206F_202C_206B_200E_200C_202E_200F_202B_200C_202C_202E_206E_200B_202D_202C_202A_200B_202C_202C_206A_200C_200C_202E(warpDestinationEntry3) != Vector3.Zero) ? 1428496542 : 1428496536); - break; - case 7: - num = (hashSet3.Contains(item4) ? 1428496538 : 1428496537); - break; - case 0: - vector2 = warpInfo3.DestPosition; - goto IL_18d3; - case 2: - num = (enumerator8.MoveNext() ? 1428496539 : 1428496541); - break; - case 6: - vector2 = _206F_200F_202D_206B_206A_202B_200F_206A_206F_206C_206F_202A_200D_206B_202C_200F_202A_206B_206F_202C_206B_200E_200C_202E_200F_202B_200C_202C_202E_206E_200B_202D_202C_202A_200B_202C_202C_206A_200C_200C_202E(warpDestinationEntry3); - goto IL_18d3; - case 3: - enumerator8.Current.Deconstruct(out key2, out value); - item4 = key2; - warpDestinationEntry3 = value; - num = ((!dictionary5.ContainsKey(item4.Item1)) ? 1428496538 : 1428496543); - break; - case 4: - num = 1428496538; - break; - case 5: - goto end_IL_17d5; - IL_18d3: - destPosition2 = vector2; - item5 = item4.Item1; - name = warpInfo4.Name; - question = warpInfo4.Question; - sourceTerritoryId = _206F_200E_206D_206A_200F_202D_206D_202B_200F_206B_200C_200C_200D_206F_200C_206E_206C_202B_200C_206C_206D_202B_206E_202E_200D_206E_206C_200B_202B_202D_200F_202A_206B_206B_206D_202D_206F_206B_206E_206C_202E(warpDestinationEntry3); - sourcePosition2 = _200F_202B_200E_200C_206A_202E_206D_206B_200B_200C_206C_206E_202A_200F_200E_200F_200B_202B_200B_206F_200E_202D_202C_206C_200E_202E_206C_202C_200B_200C_206F_206C_206D_202B_206E_206B_206D_200D_206B_202B_202E(warpDestinationEntry3); - npcDataId2 = _202B_206D_206C_206C_206E_200F_202E_206D_200E_200C_206E_206A_200D_200E_206A_200C_206E_202C_206A_200E_202B_202C_200B_202B_206E_206D_202C_206F_202D_202A_206F_206A_206F_206A_200B_206B_202A_206C_200E_200C_202E(warpDestinationEntry3); - destTerritoryId = warpInfo4.DestTerritoryId; - gilCost2 = warpInfo4.GilCost; - requiredQuestIds = warpInfo4.RequiredQuestIds; - list5 = _206E_206F_200C_200B_206C_206D_200E_202A_206D_202C_202D_200C_200C_206F_206E_206B_206F_202C_202C_200F_206F_202B_200E_202C_200D_200C_206D_200D_202A_200D_200C_200B_206F_200B_202B_200E_206C_206A_202E_206D_202E(warpDestinationEntry3); - list4.Add(new WarpInfo(item5, name, question, sourceTerritoryId, sourcePosition2, npcDataId2, null, destTerritoryId, destPosition2, gilCost2, requiredQuestIds, (list5 != null && list5.Count > 0) ? _206E_206F_200C_200B_206C_206D_200E_202A_206D_202C_202D_200C_200C_206F_206E_206B_206F_202C_202C_200F_206F_202B_200E_202C_200D_200C_206D_200D_202A_200D_200C_200B_206F_200B_202B_200E_206C_206A_202E_206D_202E(warpDestinationEntry3).ToArray() : null, warpInfo4.RequiredClassLevel, DerivedSource: false, warpInfo4.RequireAllQuests, _206F_200F_202D_206B_206A_202B_200F_206A_206F_206C_206F_202A_200D_206B_202C_200F_202A_206B_206F_202C_206B_200E_200C_202E_200F_202B_200C_202C_202E_206E_200B_202D_202C_202A_200B_202C_202C_206A_200C_200C_202E(warpDestinationEntry3) == Vector3.Zero && warpInfo3.DerivedArrival)); - hashSet3.Add(item4); - num = 1428496538; - break; - } - continue; - end_IL_17d5: - break; - } - } - foreach (KeyValuePair<uint, List<(uint, ushort, Vector3)>> item7 in dictionary7) - { - item7.Deconstruct(out key3, out var value9); - uint num52 = key3; - List<(uint, ushort, Vector3)> list6 = value9; - if (!dictionary8.TryGetValue(num52, out var value10)) - { - continue; - } - using List<(uint, ushort, Vector3)>.Enumerator enumerator11 = list6.GetEnumerator(); - num = -909189203; - while (true) - { - int num53 = num; - num3 = -909189201; - num4 = num53; - int num54 = num4 + num3; - int num55 = num4 & num3; - switch (num54 - (num55 + num55)) - { - case 5: - list4.Add(value10 with - { - SourceTerritoryId = current7.Item2, - SourcePosition = current7.Item3, - NpcDataId = current7.Item1, - NpcName = ResolveObjectName(current7.Item1), - DerivedSource = true - }); - num = -909189203; - break; - case 7: - num = ((!NonNavigableIntendedUses.Contains(value11)) ? (-909189206) : (-909189202)); - break; - case 6: - num = -909189203; - break; - case 2: - num = (enumerator11.MoveNext() ? (-909189204) : (-909189205)); - break; - case 1: - num = ((!hashSet2.Contains(current7.Item2)) ? (-909189203) : (-909189206)); - break; - case 0: - num = ((!dictionary3.TryGetValue(current7.Item2, out value11)) ? (-909189206) : (-909189208)); - break; - case 3: - current7 = enumerator11.Current; - num = ((!hashSet3.Add((num52, current7.Item1))) ? (-909189203) : (-909189201)); - break; - case 4: - goto end_IL_1a4f; - } - continue; - end_IL_1a4f: - break; - } - } - int num56 = list4.Count((WarpInfo w) => w.DestPosition.HasValue); - int num57 = list4.Count((WarpInfo w) => w.SourceTerritoryId == 0); - int num58 = list4.Count((WarpInfo w) => w.DerivedSource); - int num59 = list4.Count((WarpInfo w) => w.DerivedArrival); - _200E_202A_206B_202A_200B_202B_202E_202A_200B_206E_206D_206D_206C_206F_200E_200D_202C_202C_200F_206D_200B_206B_202C_206B_206A_202B_206E_202B_200B_206D_206C_206D_202E_202E_200D_202A_200B_206E_202B_206C_202E((ILogger)logger, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1204221542), new object[8] - { - num28, - list4.Count, - dictionary8.Count, - num56, - num58, - num59, - num57, - flag ? global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-1568919776) : global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1048379339) - }); - _200E_202A_206B_202A_200B_202B_202E_202A_200B_206E_206D_206D_206C_206F_200E_200D_202C_202C_200F_206D_200B_206B_202C_206B_206A_202B_206E_202B_200B_206D_206C_206D_202E_202E_200D_202A_200B_206E_202B_206C_202E((ILogger)logger, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-64023076), new object[4] { num29, hashSet.Count, num30, num31 }); - return new Snapshot(list4, dictionary8, hashSet, num28, list4.Count, num56, num57, num58, num59, num29, num30, num31, !flag); - } - } - } - } + array = warpDestinationEntry2.AvailableDuringMsqIds.ToArray(); } } } + if (!destPosition.HasValue && dictionary2.TryGetValue(num7, out var value6) && value6.DestPosition != Vector3.Zero) + { + destPosition = value6.DestPosition; + } + if (array == null && dictionary2.TryGetValue(num7, out var value7)) + { + List<uint> availableDuringMsqIds = value7.AvailableDuringMsqIds; + if (availableDuringMsqIds != null && availableDuringMsqIds.Count > 0) + { + array = value7.AvailableDuringMsqIds.ToArray(); + } + } + bool derivedArrival = false; + if (!destPosition.HasValue && dictionary6.TryGetValue(num7, out var value8) && value8 != 0) + { + Vector3? vector = ResolveDerivedArrival(value8, warpInfo.DestTerritoryId, arrivals.Arrivals.GetValueOrDefault(num7), levelLookup); + if (vector.HasValue) + { + destPosition = vector; + derivedArrival = true; + } + } + WarpInfo warpInfo2 = warpInfo with + { + DestPosition = destPosition, + AvailableDuringMsqIds = array, + DerivedArrival = derivedArrival + }; + list4.Add(warpInfo2); + dictionary8[num7] = warpInfo2; + uint? npcDataId = warpInfo.NpcDataId; + if (npcDataId.HasValue) + { + uint valueOrDefault2 = npcDataId.GetValueOrDefault(); + hashSet3.Add((num7, valueOrDefault2)); } } + foreach (KeyValuePair<(uint, uint), WarpDestinationEntry> item14 in dictionary) + { + item14.Deconstruct(out key2, out value); + (uint, uint) item2 = key2; + WarpDestinationEntry warpDestinationEntry3 = value; + if (dictionary5.ContainsKey(item2.Item1) && !hashSet3.Contains(item2)) + { + WarpInfo warpInfo3 = dictionary5[item2.Item1]; + WarpInfo warpInfo4 = dictionary8[item2.Item1]; + Vector3? destPosition2 = ((warpDestinationEntry3.DestPosition != Vector3.Zero) ? new Vector3?(warpDestinationEntry3.DestPosition) : warpInfo4.DestPosition); + uint item3 = item2.Item1; + string? name = warpInfo3.Name; + string? question = warpInfo3.Question; + ushort sourceTerritoryId = warpDestinationEntry3.SourceTerritoryId; + Vector3 sourcePosition2 = warpDestinationEntry3.SourcePosition; + uint? npcDataId3 = warpDestinationEntry3.NpcDataId; + ushort destTerritoryId = warpInfo3.DestTerritoryId; + int gilCost2 = warpInfo3.GilCost; + uint[] requiredQuestIds = warpInfo3.RequiredQuestIds; + List<uint> availableDuringMsqIds = warpDestinationEntry3.AvailableDuringMsqIds; + list4.Add(new WarpInfo(item3, name, question, sourceTerritoryId, sourcePosition2, npcDataId3, null, destTerritoryId, destPosition2, gilCost2, requiredQuestIds, (availableDuringMsqIds != null && availableDuringMsqIds.Count > 0) ? warpDestinationEntry3.AvailableDuringMsqIds.ToArray() : null, warpInfo3.RequiredClassLevel, DerivedSource: false, warpInfo3.RequireAllQuests, warpDestinationEntry3.DestPosition == Vector3.Zero && warpInfo4.DerivedArrival)); + hashSet3.Add(item2); + } + } + foreach (KeyValuePair<uint, List<(uint, ushort, Vector3)>> item15 in dictionary7) + { + item15.Deconstruct(out key3, out var value9); + uint num8 = key3; + List<(uint, ushort, Vector3)> list5 = value9; + if (!dictionary8.TryGetValue(num8, out var value10)) + { + continue; + } + foreach (var item16 in list5) + { + if (hashSet3.Add((num8, item16.Item1)) && (!dictionary3.TryGetValue(item16.Item2, out var value11) || !NonNavigableIntendedUses.Contains(value11) || hashSet2.Contains(item16.Item2))) + { + list4.Add(value10 with + { + SourceTerritoryId = item16.Item2, + SourcePosition = item16.Item3, + NpcDataId = item16.Item1, + NpcName = ResolveObjectName(item16.Item1), + DerivedSource = true + }); + } + } + } + int num9 = list4.Count((WarpInfo w) => w.DestPosition.HasValue); + int num10 = list4.Count((WarpInfo w) => w.SourceTerritoryId == 0); + int num11 = list4.Count((WarpInfo w) => w.DerivedSource); + int num12 = list4.Count((WarpInfo w) => w.DerivedArrival); + logger.LogDebug("WarpDataService: {Total} Lumina warps, {Relevant} navigation-relevant ({UniqueIds} unique IDs), {WithDest} with destination, {DerivedSrc} derived source, {DerivedArr} derived arrival, {UnknownSrc} unknown source{Pending}", num, list4.Count, dictionary8.Count, num9, num11, num12, num10, isBuilt ? "" : " (derived sources pending NPC position cache)"); + logger.LogDebug("WarpDataService filtered: {NoDest} no dest territory, {UserSkipped} user-skipped, {SourceBlocked} source territory blocked, {DestBlocked} dest territory blocked", num2, hashSet.Count, num3, num4); + return new Snapshot(list4, dictionary8, hashSet, num, list4.Count, num9, num10, num11, num12, num2, num3, num4, !isBuilt); string? ResolveObjectName(uint objectId) { ENpcResident? rowOrDefault = dataManager.GetExcelSheet<ENpcResident>().GetRowOrDefault(objectId); - int num60 = ((!rowOrDefault.HasValue) ? (-389697121) : (-389697126)); - string text3 = default(string); - EObjName? rowOrDefault2 = default(EObjName?); - string text4 = default(string); - while (true) + if (rowOrDefault.HasValue) { - int num61 = num60; - int num62 = -389697122; - int num63 = num61; - switch ((num63 | num62) - (num63 & num62)) + string text3 = rowOrDefault.Value.Singular.ExtractText(); + if (!string.IsNullOrEmpty(text3)) { - case 6: - num60 = -389697126; - break; - case 5: - text3 = rowOrDefault2.Value.Singular.ExtractText(); - num60 = (_003C_003Ec__DisplayClass39_0._202E_202A_206E_202C_206B_206A_202E_202D_206D_206C_200F_206B_200E_202D_202E_206D_200C_206D_206E_202D_200E_206A_206E_200B_206C_206E_200F_200E_200C_200E_206E_200F_200C_206C_206B_206D_206A_206E_200E_206D_202E(text3) ? (-389697122) : (-389697123)); - break; - case 3: return text3; - case 4: - text4 = rowOrDefault.Value.Singular.ExtractText(); - num60 = (_003C_003Ec__DisplayClass39_0._202E_202A_206E_202C_206B_206A_202E_202D_206D_206C_200F_206B_200E_202D_202E_206D_200C_206D_206E_202D_200E_206A_206E_200B_206C_206E_200F_200E_200C_200E_206E_200F_200C_206C_206B_206D_206A_206E_200E_206D_202E(text4) ? (-389697121) : (-389697124)); - break; - case 2: - return text4; - case 1: - rowOrDefault2 = dataManager.GetExcelSheet<EObjName>().GetRowOrDefault(objectId); - num60 = ((!rowOrDefault2.HasValue) ? (-389697122) : (-389697125)); - break; - case 0: - return null; } } + EObjName? rowOrDefault2 = dataManager.GetExcelSheet<EObjName>().GetRowOrDefault(objectId); + if (rowOrDefault2.HasValue) + { + string text4 = rowOrDefault2.Value.Singular.ExtractText(); + if (!string.IsNullOrEmpty(text4)) + { + return text4; + } + } + return null; } } internal static void AddWarpFronter(Dictionary<uint, List<uint>> index, uint handlerId, uint fronterObjectId, Func<uint, IEnumerable<uint>?> arrayMemberLookup, ref int nestedArraysSkipped) { - int num = ((handlerId != 0) ? (-1948350651) : (-1948350649)); - uint num9 = default(uint); - IEnumerable<uint> enumerable = default(IEnumerable<uint>); - uint current = default(uint); - while (true) + if (handlerId == 0) { - int num2 = num; - int num3 = -1948350653; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return; + } + switch (handlerId >> 16) + { + case 2u: + AddFronterEntry(index, handlerId, fronterObjectId); + break; + case 13u: + { + IEnumerable<uint> enumerable = arrayMemberLookup(handlerId); + if (enumerable == null) { - case 0: - num = -1948350649; break; - case 3: - AddFronterEntry(index, handlerId, fronterObjectId); - return; - case 4: - return; - case 6: - num9 = handlerId >> 16; - num = ((num9 != 2) ? (-1948350652) : (-1948350656)); - break; - case 1: - return; - case 7: - if (num9 == 13) - { - num = -1948350655; - break; - } - return; - case 2: - enumerable = arrayMemberLookup(handlerId); - num = ((enumerable != null) ? (-1948350650) : (-1948350654)); - break; - case 5: + } { - IEnumerator<uint> enumerator = enumerable.GetEnumerator(); - try + foreach (uint item in enumerable) { - num = 145017122; - while (true) + if (item >> 16 == 2) { - int num5 = num; - num3 = 145017123; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - nestedArraysSkipped++; - num = 145017122; - break; - case 4: - current = enumerator.Current; - num = ((current >> 16 != 2) ? 145017123 : 145017121); - break; - case 1: - num = (_200B_206F_206C_202E_202E_202D_200E_202C_206B_206D_202C_200B_206E_200D_200D_206B_200D_202A_206D_200B_206F_202D_200F_202B_202B_202D_202A_206B_206B_200B_200C_202D_200F_206A_202C_206B_206C_206C_206E_202D_202E((IEnumerator)enumerator) ? 145017127 : 145017120); - break; - case 2: - AddFronterEntry(index, current, fronterObjectId); - num = 145017122; - break; - case 6: - num = 145017122; - break; - case 0: - num = ((current >> 16 != 13) ? 145017122 : 145017126); - break; - case 3: - return; - } - } - } - finally - { - num = ((enumerator == null) ? (-2062162633) : (-2062162636)); - while (true) - { - int num6 = num; - num3 = -2062162635; - num4 = num6; - int num7 = num4 + num3; - int num8 = num4 & num3; - switch (num7 - (num8 + num8)) - { - case 0: - num = -2062162636; - break; - case 2: - goto end_IL_01e8; - case 1: - _200B_200D_202B_202C_200D_206D_206C_200F_202C_200F_200D_200F_206B_202E_202C_206F_206A_200C_206B_202D_206F_202B_206E_206E_200E_206F_200C_202E_200E_200B_206A_202C_206C_206D_200F_206B_200B_202A_202E_200F_202E((IDisposable)enumerator); - num = -2062162633; - break; - } - continue; - end_IL_01e8: - break; + AddFronterEntry(index, item, fronterObjectId); + } + else if (item >> 16 == 13) + { + nestedArraysSkipped++; } } + break; } - } + } } } private static void AddFronterEntry(Dictionary<uint, List<uint>> index, uint warpRowId, uint fronterObjectId) { - List<uint> value; - int num = (index.TryGetValue(warpRowId, out value) ? 1144046997 : 1144046998); - while (true) + if (!index.TryGetValue(warpRowId, out List<uint> value)) { - int num2 = num; - int num3 = 1144046997; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - value.Add(fronterObjectId); - num = 1144046999; - break; - case 0: - num = (value.Contains(fronterObjectId) ? 1144046999 : 1144046996); - break; - case 3: - value = (index[warpRowId] = new List<uint>()); - num = 1144046997; - break; - case 4: - num = 1144046998; - break; - case 2: - return; - } + value = (index[warpRowId] = new List<uint>()); + } + if (!value.Contains(fronterObjectId)) + { + value.Add(fronterObjectId); } } internal static Vector3? ResolveDerivedArrival(uint popRangeId, ushort destTerritoryId, DerivedArrivalEntry? embedded, Func<uint, (ushort TerritoryId, Vector3 Position)?> levelLookup) { - int num = ((popRangeId != 0) ? 693111575 : 693111576); - (ushort, Vector3) valueOrDefault = default((ushort, Vector3)); - (ushort, Vector3)? tuple = default((ushort, Vector3)?); - while (true) + if (popRangeId == 0) { - int num2 = num; - int num3 = 693111569; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return null; + } + if (embedded != null && embedded.PopRangeId == popRangeId && embedded.TerritoryId == destTerritoryId) + { + return new Vector3(embedded.X, embedded.Y, embedded.Z); + } + (ushort, Vector3)? tuple = levelLookup(popRangeId); + if (tuple.HasValue) + { + (ushort, Vector3) valueOrDefault = tuple.GetValueOrDefault(); + if (valueOrDefault.Item1 == destTerritoryId) { - case 8: - num = ((_200D_202A_202B_206E_202C_202D_206A_200C_206D_200B_206E_206D_206D_206F_206C_202E_200C_200B_202E_202A_206D_202D_200C_200E_206C_200D_202B_206E_200D_202A_206C_202D_200C_206F_206C_200B_202C_202A_200D_200D_202E(embedded) != popRangeId) ? 693111569 : 693111570); - break; - case 9: - return null; - case 6: - num = ((embedded == null) ? 693111569 : 693111577); - break; - case 3: - num = ((_206A_202E_202A_206A_206B_206F_202D_206B_202E_200B_202B_202A_200C_202A_202C_206C_200E_202C_202B_206E_206E_200F_200F_206D_206F_202E_202E_206E_206D_200F_202E_202B_206B_202E_206D_200B_206A_202A_206C_206E_202E(embedded) != destTerritoryId) ? 693111569 : 693111571); - break; - case 1: return valueOrDefault.Item2; - case 5: - valueOrDefault = tuple.GetValueOrDefault(); - num = ((valueOrDefault.Item1 != destTerritoryId) ? 693111573 : 693111568); - break; - case 4: - return null; - case 2: - return new Vector3(_202B_202C_206E_202A_200E_200B_206C_202E_200F_206A_202A_206C_202A_200E_206C_200E_206B_206A_206F_200B_200E_206B_202D_206C_206B_202C_206E_200B_200C_200F_200C_202E_202E_206F_202A_206E_200B_206E_200C_202A_202E(embedded), _206E_200D_202A_206C_202E_200C_206A_202C_200B_200D_200D_202B_206F_200E_202A_206A_200E_200D_206A_200B_206A_200B_202E_200F_206C_202A_200D_200D_206C_202A_200F_202D_206A_206D_200E_206E_200D_200F_200C_202B_202E(embedded), _200D_202B_202D_206B_206B_206C_200C_202A_202C_202C_202D_206D_206C_206F_206E_200C_206F_200D_202B_200C_206F_206A_200D_200C_202B_200F_202C_200B_200E_206C_202D_206B_202B_200B_202C_206D_206A_200E_206F_200E_202E(embedded)); - case 7: - num = 693111576; - break; - case 0: - tuple = levelLookup(popRangeId); - num = ((!tuple.HasValue) ? 693111573 : 693111572); - break; } } + return null; } internal static List<(uint NpcDataId, ushort TerritoryId, Vector3 Position)> ResolveDerivedSources(uint warpRowId, IReadOnlyDictionary<uint, List<uint>> fronterIndex, Func<uint, (ushort TerritoryId, Vector3 Position, bool FestivalOnly)?> getPlacement) { List<(uint, ushort, Vector3)> list = new List<(uint, ushort, Vector3)>(); - int num = (fronterIndex.TryGetValue(warpRowId, out List<uint> value) ? 337465769 : 337465770); - uint current = default(uint); - (ushort, Vector3, bool) valueOrDefault = default((ushort, Vector3, bool)); - (ushort, Vector3, bool)? tuple = default((ushort, Vector3, bool)?); - while (true) + if (!fronterIndex.TryGetValue(warpRowId, out List<uint> value)) { - int num2 = num; - int num3 = 337465768; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0058; - case 2: - return list; - case 1: - { - IEnumerator<uint> enumerator = value.Order().GetEnumerator(); - try - { - num = -304547261; - while (true) - { - int num5 = num; - num3 = -304547258; - num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - list.Add((current, valueOrDefault.Item1, valueOrDefault.Item2)); - num = -304547261; - break; - case 5: - num = (_200B_206F_206C_202E_202E_202D_200E_202C_206B_206D_202C_200B_206E_200D_200D_206B_200D_202A_206D_200B_206F_202D_200F_202B_202B_202D_202A_206B_206B_200B_200C_202D_200F_206A_202C_206B_206C_206C_206E_202D_202E((IEnumerator)enumerator) ? (-304547257) : (-304547258)); - break; - case 4: - num = -304547261; - break; - case 2: - valueOrDefault = tuple.GetValueOrDefault(); - num = (valueOrDefault.Item3 ? (-304547261) : (-304547259)); - break; - case 1: - current = enumerator.Current; - tuple = getPlacement(current); - num = ((!tuple.HasValue) ? (-304547261) : (-304547260)); - break; - case 0: - return list; - } - } - } - finally - { - num = ((enumerator == null) ? (-1914934886) : (-1914934885)); - while (true) - { - int num6 = num; - num3 = -1914934886; - num4 = num6; - int num7 = num4 + num3; - int num8 = num4 & num3; - switch (num7 - (num8 + num8)) - { - case 2: - num = -1914934885; - break; - case 1: - _200B_200D_202B_202C_200D_206D_206C_200F_202C_200F_200D_200F_206B_202E_202C_206F_206A_200C_206B_202D_206F_202B_206E_206E_200E_206F_200C_202E_200E_200B_206A_202C_206C_206D_200F_206B_200B_202A_202E_200F_202E((IDisposable)enumerator); - num = -1914934886; - break; - case 0: - goto end_IL_018f; - } - continue; - end_IL_018f: - break; - } - } - } - } - continue; - IL_0058: - num = 337465770; + return list; } + foreach (uint item in value.Order()) + { + (ushort, Vector3, bool)? tuple = getPlacement(item); + if (tuple.HasValue) + { + (ushort, Vector3, bool) valueOrDefault = tuple.GetValueOrDefault(); + if (!valueOrDefault.Item3) + { + list.Add((item, valueOrDefault.Item1, valueOrDefault.Item2)); + } + } + } + return list; } private static void LoadWarpOverridesFrom(string path, List<WarpDestinationEntry> target, HashSet<uint> skippedIds) { - int num = (_202D_200C_206F_206C_206F_200D_200D_206C_202A_200F_200F_200F_206F_200E_200F_206C_206A_202A_202B_206F_200C_202D_200E_202D_202A_202C_206F_206F_202B_200F_202C_202C_206E_206E_200C_202E_202A_206B_206A_200D_202E(path) ? 1659706856 : 1659706857); - WarpDestinationOverrides warpDestinationOverrides = default(WarpDestinationOverrides); - while (true) + if (!File.Exists(path)) { - int num2 = num; - int num3 = 1659706856; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - return; - case 0: - warpDestinationOverrides = JsonSerializer.Deserialize<WarpDestinationOverrides>(_206E_200E_206F_200E_200E_202B_202E_202B_200F_206A_200D_200D_202A_206A_206A_206E_202E_202B_202D_200E_202D_202C_202E_206A_202B_206F_206D_202C_202C_202C_206C_200D_200E_200D_202E_206B_206C_206A_206A_206D_202E(path)); - num = ((warpDestinationOverrides != null) ? 1659706858 : 1659706860); - break; - case 1: - return; - case 3: - num = 1659706857; - break; - case 2: - { - using (List<uint>.Enumerator enumerator = _206A_202C_206C_202C_200E_200F_202D_206C_200E_200D_206E_200C_206B_200F_202E_202C_206C_200B_202E_200E_206F_206A_206D_202B_202E_206D_206E_202B_206F_202C_206F_206A_200B_200C_206E_200D_206D_206F_202B_206F_202E(warpDestinationOverrides).GetEnumerator()) - { - num = 1865429245; - while (true) - { - int num5 = num; - num3 = 1865429247; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 0: - num = 1865429245; - break; - case 2: - num = (enumerator.MoveNext() ? 1865429246 : 1865429244); - break; - case 1: - { - uint current = enumerator.Current; - skippedIds.Add(current); - num = 1865429245; - break; - } - case 3: - goto end_IL_00a8; - } - continue; - end_IL_00a8: - break; - } - } - using Dictionary<string, WarpDestinationEntry>.Enumerator enumerator2 = _202C_206A_200C_200D_200F_206C_200C_202B_202A_202B_202B_206E_206D_206D_202C_202E_202D_200D_206F_206E_200B_202A_200E_200E_206B_202D_200B_202A_206C_206C_200D_206F_202A_206B_202B_202E_202E_202D_202E_206B_202E(warpDestinationOverrides).GetEnumerator(); - num = 1971888332; - while (true) - { - int num8 = num; - num3 = 1971888334; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 2: - num = (enumerator2.MoveNext() ? 1971888333 : 1971888335); - break; - case 3: - var (_, item) = (KeyValuePair<string, WarpDestinationEntry>)(ref enumerator2.Current); - target.Add(item); - num = 1971888332; - break; - case 0: - num = 1971888332; - break; - case 1: - return; - } - } - } - } + return; + } + WarpDestinationOverrides warpDestinationOverrides = JsonSerializer.Deserialize<WarpDestinationOverrides>(File.ReadAllText(path)); + if (warpDestinationOverrides == null) + { + return; + } + foreach (uint skippedWarpId in warpDestinationOverrides.SkippedWarpIds) + { + skippedIds.Add(skippedWarpId); + } + foreach (var (_, item) in warpDestinationOverrides.Destinations) + { + target.Add(item); } } - - static object _202E_200E_206C_202E_202C_200E_202B_202D_206B_206E_202C_200F_200E_200D_206A_206F_200B_206E_200E_206C_202D_206E_206D_206A_202B_200D_206F_200D_200E_206C_202C_206E_202E_202A_206E_200D_206C_202B_202A_200D_202E() - { - return new object(); - } - - static void _200F_206E_200B_206B_202A_202C_200B_206E_206B_200F_200E_202E_200D_206C_200D_206D_202C_200F_206D_200B_200F_202E_202A_200B_206D_200D_202C_202A_206B_202C_200F_200D_202B_202D_200F_202D_202B_202C_206F_202E_202E(object P_0, ref bool P_1) - { - Monitor.Enter(P_0, ref P_1); - } - - static bool _202B_200B_206B_200C_200D_202A_206B_202A_206A_200C_206C_206A_200C_200F_206E_200F_200E_206D_202A_202D_202E_202E_200C_200D_200B_200E_206B_206B_206B_200B_200E_202C_206C_202B_206C_202B_200F_200E_202B_202D_202E(NpcPositionCache P_0) - { - return P_0.IsBuilt; - } - - static void _206B_202E_206F_200C_200F_206D_202A_206E_206E_206D_202D_200C_200F_206A_200B_202C_202E_206E_206C_202E_206F_200B_206B_206F_200E_206A_206A_200D_202E_206C_202C_200F_200B_206E_200E_200B_202D_202B_200F_202E(object P_0) - { - Monitor.Exit(P_0); - } - - static string _202B_206F_206A_200E_200C_202E_202D_202C_200F_202C_202C_206E_200C_206C_206A_206D_206B_200F_206E_200B_202E_206C_200C_200B_202A_200F_206A_200F_202D_206E_202E_202E_206A_206F_202E_200B_202A_206F_202B_206A_202E(FileSystemInfo P_0) - { - return P_0.FullName; - } - - static (IReadOnlyList<uint>, IReadOnlyDictionary<string, WarpDestinationEntry>) _206E_202B_202A_200D_206D_202D_202B_202C_200B_200E_202C_200C_206B_202D_202D_202C_202A_202B_200D_206B_202E_200B_202B_206F_206E_206A_202B_200C_202A_202C_200D_200B_206F_202B_206C_202C_200B_206F_200E_206B_202E(string P_0) - { - return AssemblyWarpDestinationLoader.GetOverrides(P_0); - } - - static bool _200B_206F_206C_202E_202E_202D_200E_202C_206B_206D_202C_200B_206E_200D_200D_206B_200D_202A_206D_200B_206F_202D_200F_202B_202B_202D_202A_206B_206B_200B_200C_202D_200F_206A_202C_206B_206C_206C_206E_202D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _200B_200D_202B_202C_200D_206D_206C_200F_202C_200F_200D_200F_206B_202E_202C_206F_206A_200C_206B_202D_206F_202B_206E_206E_200E_206F_200C_202E_200E_200B_206A_202C_206C_206D_200F_206B_200B_202A_202E_200F_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static string _206B_206F_200C_206F_206C_202D_202A_206D_200D_206E_202D_206F_200F_206D_202A_202C_200E_200C_200B_202D_206D_202B_200B_200E_200F_200F_200C_200E_206D_202B_202B_206A_200F_200B_202A_202B_206E_202E_206A_206E_202E(string P_0, string P_1) - { - return Path.Combine(P_0, P_1); - } - - static uint? _202B_206D_206C_206C_206E_200F_202E_206D_200E_200C_206E_206A_200D_200E_206A_200C_206E_202C_206A_200E_202B_202C_200B_202B_206E_206D_202C_206F_202D_202A_206F_206A_206F_206A_200B_206B_202A_206C_200E_200C_202E(WarpDestinationEntry P_0) - { - return P_0.NpcDataId; - } - - static uint _206F_200B_200D_200C_202D_202B_200C_202A_202B_200C_200C_206F_206F_202D_200E_206B_200D_206B_200D_202B_206E_200F_202E_202E_200B_200F_200D_200C_200C_206B_200C_202A_202B_202A_202A_206E_206E_202D_202C_200D_202E(WarpDestinationEntry P_0) - { - return P_0.WarpRowId; - } - - static ushort _206F_200E_206D_206A_200F_202D_206D_202B_200F_206B_200C_200C_200D_206F_200C_206E_206C_202B_200C_206C_206D_202B_206E_202E_200D_206E_206C_200B_202B_202D_200F_202A_206B_206B_206D_202D_206F_206B_206E_206C_202E(WarpDestinationEntry P_0) - { - return P_0.SourceTerritoryId; - } - - static ushort _206F_206B_200F_206C_202C_202C_200C_206F_206A_202A_206F_206E_206D_206D_206B_206F_206D_202D_200E_202B_200D_206D_200B_200F_206A_202A_206C_206C_200D_206C_202A_202D_206F_202D_200E_202A_206D_202C_202C_202E_202E(WarpDestinationEntry P_0) - { - return P_0.DestTerritoryId; - } - - static void _206E_202D_202C_200E_200B_206C_206F_202C_206A_202A_202E_200B_206B_200B_200C_206C_202E_200C_202D_206B_206F_202A_206F_202C_200C_200E_200B_200D_206B_200B_206E_206E_206B_206A_202A_206E_202E_202B_202C_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static Vector3 _200F_202B_200E_200C_206A_202E_206D_206B_200B_200C_206C_206E_202A_200F_200E_200F_200B_202B_200B_206F_200E_202D_202C_206C_200E_202E_206C_202C_200B_200C_206F_206C_206D_202B_206E_206B_206D_200D_206B_202B_202E(WarpDestinationEntry P_0) - { - return P_0.SourcePosition; - } - - static bool _206A_202D_200C_206F_206A_206C_206C_202B_206C_200E_206A_200E_206A_200C_206E_206C_200F_206F_202A_206E_202B_200D_206F_206F_200B_206A_206B_200D_200B_202C_206A_202C_202E_206A_206D_202E_206A_200E_206C_202A_202E(string P_0) - { - return string.IsNullOrEmpty(P_0); - } - - static DerivedArrivalFile _200E_202D_206A_202D_206A_206C_206F_206B_200F_200C_202E_200F_200B_200C_206A_206F_206C_200E_202C_206B_206C_200B_206A_200F_206B_202B_202D_200B_206A_200F_206A_202E_202D_202A_202C_200B_202B_200D_200B_206E_202E(string P_0) - { - return AssemblyDerivedArrivalLoader.GetArrivals(P_0); - } - - static string _202D_202B_200E_200C_200F_200C_206F_206D_206D_206C_206E_200F_200B_200C_206F_202B_206E_202A_202B_206E_206E_206F_202E_200C_206C_200E_206B_202E_200F_202B_206A_200F_200E_206D_206D_200D_200E_206C_202A_200C_202E(DerivedArrivalFile P_0) - { - return P_0.GameVersion; - } - - static bool _202A_206C_206D_206F_200B_202C_202E_200C_206E_206C_202E_202C_200F_200F_202A_202A_206F_200E_200D_202C_202A_200E_202E_202D_206B_202A_200C_202E_206F_206F_200C_206C_206D_206D_202E_206F_206D_202A_206F_202D_202E(string P_0, string P_1) - { - return P_0 != P_1; - } - - static Vector3 _206F_200F_202D_206B_206A_202B_200F_206A_206F_206C_206F_202A_200D_206B_202C_200F_202A_206B_206F_202C_206B_200E_200C_202E_200F_202B_200C_202C_202E_206E_200B_202D_202C_202A_200B_202C_202C_206A_200C_200C_202E(WarpDestinationEntry P_0) - { - return P_0.DestPosition; - } - - static List<uint> _206E_206F_200C_200B_206C_206D_200E_202A_206D_202C_202D_200C_200C_206F_206E_206B_206F_202C_202C_200F_206F_202B_200E_202C_200D_200C_206D_200D_202A_200D_200C_200B_206F_200B_202B_200E_206C_206A_202E_206D_202E(WarpDestinationEntry P_0) - { - return P_0.AvailableDuringMsqIds; - } - - static Dictionary<uint, DerivedArrivalEntry> _202C_206D_206C_200E_206C_202C_206A_202B_200E_206C_200B_200B_206D_202A_202B_206E_206F_206B_202A_200C_202B_206A_206D_200F_206E_202A_202B_206B_200E_200C_200C_200B_206C_200D_206A_202C_202A_202B_206D_206C_202E(DerivedArrivalFile P_0) - { - return P_0.Arrivals; - } - - static void _200E_202A_206B_202A_200B_202B_202E_202A_200B_206E_206D_206D_206C_206F_200E_200D_202C_202C_200F_206D_200B_206B_202C_206B_206A_202B_206E_202B_200B_206D_206C_206D_202E_202E_200D_202A_200B_206E_202B_206C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static uint _200D_202A_202B_206E_202C_202D_206A_200C_206D_200B_206E_206D_206D_206F_206C_202E_200C_200B_202E_202A_206D_202D_200C_200E_206C_200D_202B_206E_200D_202A_206C_202D_200C_206F_206C_200B_202C_202A_200D_200D_202E(DerivedArrivalEntry P_0) - { - return P_0.PopRangeId; - } - - static ushort _206A_202E_202A_206A_206B_206F_202D_206B_202E_200B_202B_202A_200C_202A_202C_206C_200E_202C_202B_206E_206E_200F_200F_206D_206F_202E_202E_206E_206D_200F_202E_202B_206B_202E_206D_200B_206A_202A_206C_206E_202E(DerivedArrivalEntry P_0) - { - return P_0.TerritoryId; - } - - static float _202B_202C_206E_202A_200E_200B_206C_202E_200F_206A_202A_206C_202A_200E_206C_200E_206B_206A_206F_200B_200E_206B_202D_206C_206B_202C_206E_200B_200C_200F_200C_202E_202E_206F_202A_206E_200B_206E_200C_202A_202E(DerivedArrivalEntry P_0) - { - return P_0.X; - } - - static float _206E_200D_202A_206C_202E_200C_206A_202C_200B_200D_200D_202B_206F_200E_202A_206A_200E_200D_206A_200B_206A_200B_202E_200F_206C_202A_200D_200D_206C_202A_200F_202D_206A_206D_200E_206E_200D_200F_200C_202B_202E(DerivedArrivalEntry P_0) - { - return P_0.Y; - } - - static float _200D_202B_202D_206B_206B_206C_200C_202A_202C_202C_202D_206D_206C_206F_206E_200C_206F_200D_202B_200C_206F_206A_200D_200C_202B_200F_202C_200B_200E_206C_202D_206B_202B_200B_202C_206D_206A_200E_206F_200E_202E(DerivedArrivalEntry P_0) - { - return P_0.Z; - } - - static bool _202D_200C_206F_206C_206F_200D_200D_206C_202A_200F_200F_200F_206F_200E_200F_206C_206A_202A_202B_206F_200C_202D_200E_202D_202A_202C_206F_206F_202B_200F_202C_202C_206E_206E_200C_202E_202A_206B_206A_200D_202E(string P_0) - { - return File.Exists(P_0); - } - - static string _206E_200E_206F_200E_200E_202B_202E_202B_200F_206A_200D_200D_202A_206A_206A_206E_202E_202B_202D_200E_202D_202C_202E_206A_202B_206F_206D_202C_202C_202C_206C_200D_200E_200D_202E_206B_206C_206A_206A_206D_202E(string P_0) - { - return File.ReadAllText(P_0); - } - - static List<uint> _206A_202C_206C_202C_200E_200F_202D_206C_200E_200D_206E_200C_206B_200F_202E_202C_206C_200B_202E_200E_206F_206A_206D_202B_202E_206D_206E_202B_206F_202C_206F_206A_200B_200C_206E_200D_206D_206F_202B_206F_202E(WarpDestinationOverrides P_0) - { - return P_0.SkippedWarpIds; - } - - static Dictionary<string, WarpDestinationEntry> _202C_206A_200C_200D_200F_206C_200C_202B_202A_202B_202B_206E_206D_206D_202C_202E_202D_200D_206F_206E_200B_202A_200E_200E_206B_202D_200B_202A_206C_206C_200D_206F_202A_206B_202B_202E_202E_202D_202E_206B_202E(WarpDestinationOverrides P_0) - { - return P_0.Destinations; - } } diff --git a/SmartNav/SmartNav.Data/ZoneBoundaryDerivation.cs b/SmartNav/SmartNav.Data/ZoneBoundaryDerivation.cs index 154a178..dbd1648 100644 --- a/SmartNav/SmartNav.Data/ZoneBoundaryDerivation.cs +++ b/SmartNav/SmartNav.Data/ZoneBoundaryDerivation.cs @@ -1,9 +1,6 @@ -using System; -using System.Collections; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Microsoft.Extensions.Logging; using SmartNav.Model.Navigation; @@ -11,910 +8,192 @@ namespace SmartNav.Data; internal static class ZoneBoundaryDerivation { - [Serializable] - [CompilerGenerated] - private sealed class _003C_003Ec - { - public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec(); - - public static Func<ZoneBoundary, (ushort, ushort)> _003C_003E9__1_1; - - public static Func<IGrouping<(ushort, ushort), ZoneBoundary>, (ushort, ushort)> _003C_003E9__1_2; - - public static Func<IGrouping<(ushort, ushort), ZoneBoundary>, List<ZoneBoundary>> _003C_003E9__1_3; - - public static Func<ZoneBoundaryPositionOverride, (ushort TerritoryA, ushort TerritoryB)> _003C_003E9__1_4; - - public static Func<(float Distance, int GateIdx, int OverrideIdx), float> _003C_003E9__1_5; - - internal (ushort, ushort) _003CApplyOverrides_003Eb__1_1(ZoneBoundary b) - { - return _003CApplyOverrides_003Eg__PairKey_007C1_0(_206D_206F_200D_206F_206B_202C_206B_206C_200F_206E_202A_202E_202B_202E_200D_206A_200D_202A_206A_202D_200D_200B_206E_200F_202C_202D_206A_200F_200C_206C_206B_206C_200B_202D_202C_202C_200C_200C_200C_202E_202E(_200B_202E_206E_206E_206E_202A_202D_202A_202D_206A_206F_202B_200C_206B_206C_200E_206D_202B_200D_200B_202B_206F_206C_202B_206B_200C_206A_206E_202D_200F_206C_200B_206C_200E_202A_202C_202B_206B_200D_202C_202E(b)), _206D_206F_200D_206F_206B_202C_206B_206C_200F_206E_202A_202E_202B_202E_200D_206A_200D_202A_206A_202D_200D_200B_206E_200F_202C_202D_206A_200F_200C_206C_206B_206C_200B_202D_202C_202C_200C_200C_200C_202E_202E(_202B_206C_206B_202E_202D_200C_200F_200C_206D_200C_206F_202B_200F_200C_206E_200C_200E_202E_206E_202B_206E_202A_206A_200D_200D_206B_202D_202D_200D_202E_206D_202E_202E_206C_202D_202E_200C_202E_200C_200F_202E(b))); - } - - internal (ushort, ushort) _003CApplyOverrides_003Eb__1_2(IGrouping<(ushort, ushort), ZoneBoundary> g) - { - return g.Key; - } - - internal List<ZoneBoundary> _003CApplyOverrides_003Eb__1_3(IGrouping<(ushort, ushort), ZoneBoundary> g) - { - return g.ToList(); - } - - internal (ushort TerritoryA, ushort TerritoryB) _003CApplyOverrides_003Eb__1_4(ZoneBoundaryPositionOverride o) - { - return (TerritoryA: o.TerritoryA, TerritoryB: o.TerritoryB); - } - - internal float _003CApplyOverrides_003Eb__1_5((float Distance, int GateIdx, int OverrideIdx) c) - { - return c.Distance; - } - - static BoundarySide _200B_202E_206E_206E_206E_202A_202D_202A_202D_206A_206F_202B_200C_206B_206C_200E_206D_202B_200D_200B_202B_206F_206C_202B_206B_200C_206A_206E_202D_200F_206C_200B_206C_200E_202A_202C_202B_206B_200D_202C_202E(ZoneBoundary P_0) - { - return P_0.Side1; - } - - static ushort _206D_206F_200D_206F_206B_202C_206B_206C_200F_206E_202A_202E_202B_202E_200D_206A_200D_202A_206A_202D_200D_200B_206E_200F_202C_202D_206A_200F_200C_206C_206B_206C_200B_202D_202C_202C_200C_200C_200C_202E_202E(BoundarySide P_0) - { - return P_0.TerritoryId; - } - - static BoundarySide _202B_206C_206B_202E_202D_200C_200F_200C_206D_200C_206F_202B_200F_200C_206E_200C_200E_202E_206E_202B_206E_202A_206A_200D_200D_206B_202D_202D_200D_202E_206D_202E_202E_206C_202D_202E_200C_202E_200C_200F_202E(ZoneBoundary P_0) - { - return P_0.Side2; - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public static List<ZoneBoundary> Derive(IReadOnlyList<ExitRangeEntry> exitRanges, IReadOnlyDictionary<(ushort TerritoryId, uint InstanceId), PopRangeEntry> popRangeIndex, ILogger logger) { List<ZoneBoundary> list = new List<ZoneBoundary>(); HashSet<(ushort, uint)> hashSet = new HashSet<(ushort, uint)>(); List<ExitRangeEntry> list2 = new List<ExitRangeEntry>(); - IEnumerator<ExitRangeEntry> enumerator = exitRanges.GetEnumerator(); - try + foreach (ExitRangeEntry exitRange in exitRanges) { - ExitRangeEntry current = default(ExitRangeEntry); - Vector3? vector = default(Vector3?); - ExitRangeEntry exitRangeEntry = default(ExitRangeEntry); - ExitRangeEntry current2 = default(ExitRangeEntry); - ExitRangeEntry exitRangeEntry2 = default(ExitRangeEntry); - ExitRangeEntry current3 = default(ExitRangeEntry); - PopRangeEntry value2 = default(PopRangeEntry); - float num12 = default(float); - Vector3? vector3 = default(Vector3?); - while (true) + if (hashSet.Contains((exitRange.SourceTerritoryId, exitRange.InstanceId)) || exitRange.DestTerritoryId == 0) { - int num; - if (_202D_202B_200E_200D_200F_206B_200E_202A_206C_200F_200C_202B_202A_200E_206D_206C_200D_202D_206D_206B_206A_200D_206C_200D_206A_202C_202A_206B_206E_206B_200D_202C_200F_206C_206E_202C_206B_206D_200F_206A_202E((IEnumerator)enumerator)) + continue; + } + Vector3? vector = null; + if (popRangeIndex.TryGetValue((exitRange.DestTerritoryId, exitRange.DestInstanceId), out PopRangeEntry value)) + { + vector = value.Position; + } + ExitRangeEntry exitRangeEntry = null; + foreach (ExitRangeEntry exitRange2 in exitRanges) + { + if (exitRange2.SourceTerritoryId == exitRange.DestTerritoryId && exitRange2.DestTerritoryId == exitRange.SourceTerritoryId && !hashSet.Contains((exitRange2.SourceTerritoryId, exitRange2.InstanceId)) && ((exitRange2.DestInstanceId != 0 && exitRange2.DestInstanceId == exitRange.ReturnInstanceId) || (exitRange.DestInstanceId != 0 && exitRange.DestInstanceId == exitRange2.ReturnInstanceId) || (exitRange2.ReturnInstanceId != 0 && exitRange2.ReturnInstanceId == exitRange.InstanceId))) { - current = enumerator.Current; - if (hashSet.Contains((current.SourceTerritoryId, current.InstanceId)) || current.DestTerritoryId == 0) + exitRangeEntry = exitRange2; + break; + } + } + if (exitRangeEntry == null) + { + float num = float.MaxValue; + ExitRangeEntry exitRangeEntry2 = null; + foreach (ExitRangeEntry exitRange3 in exitRanges) + { + if (exitRange3.SourceTerritoryId != exitRange.DestTerritoryId || exitRange3.DestTerritoryId != exitRange.SourceTerritoryId || hashSet.Contains((exitRange3.SourceTerritoryId, exitRange3.InstanceId))) { continue; } - vector = null; - if (popRangeIndex.TryGetValue((current.DestTerritoryId, current.DestInstanceId), out PopRangeEntry value)) + if (popRangeIndex.TryGetValue((exitRange.SourceTerritoryId, exitRange3.DestInstanceId), out PopRangeEntry value2)) { - vector = value.Position; - } - exitRangeEntry = null; - IEnumerator<ExitRangeEntry> enumerator2 = exitRanges.GetEnumerator(); - try - { - num = 2034045205; - while (true) + float num2 = Vector3.Distance(exitRange.SourcePosition, value2.Position); + if (num2 < num) { - int num2 = num; - int num3 = 2034045207; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 10: - num = 2034045205; - break; - case 9: - num = ((current2.DestInstanceId == 0) ? 2034045207 : 2034045215); - break; - case 6: - num = ((current2.ReturnInstanceId == 0) ? 2034045205 : 2034045202); - break; - case 0: - num = ((current.DestInstanceId == 0) ? 2034045201 : 2034045211); - break; - case 8: - num = ((current2.DestInstanceId == current.ReturnInstanceId) ? 2034045212 : 2034045207); - break; - case 5: - num = ((current2.ReturnInstanceId != current.InstanceId) ? 2034045205 : 2034045212); - break; - case 4: - num = ((current2.DestTerritoryId != current.SourceTerritoryId) ? 2034045205 : 2034045204); - break; - case 7: - current2 = enumerator2.Current; - num = ((current2.SourceTerritoryId != current.DestTerritoryId) ? 2034045205 : 2034045203); - break; - case 3: - num = (hashSet.Contains((current2.SourceTerritoryId, current2.InstanceId)) ? 2034045205 : 2034045214); - break; - case 2: - num = (_202D_202B_200E_200D_200F_206B_200E_202A_206C_200F_200C_202B_202A_200E_206D_206C_200D_202D_206D_206B_206A_200D_206C_200D_206A_202C_202A_206B_206E_206B_200D_202C_200F_206C_206E_202C_206B_206D_200F_206A_202E((IEnumerator)enumerator2) ? 2034045200 : 2034045206); - break; - case 11: - exitRangeEntry = current2; - goto end_IL_009f; - case 12: - num = ((current.DestInstanceId == current2.ReturnInstanceId) ? 2034045212 : 2034045201); - break; - case 1: - goto end_IL_009f; - } - continue; - end_IL_009f: - break; + num = num2; + exitRangeEntry = exitRange3; } } - finally + else if ((object)exitRangeEntry2 == null) { - num = ((enumerator2 == null) ? 704950987 : 704950984); - while (true) - { - int num7 = num; - int num3 = 704950985; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 704950984; - break; - case 1: - _206C_206E_202B_206F_206C_206F_202B_206E_206C_200B_200B_206E_206E_202C_206E_202D_200B_202D_202B_202C_200F_202B_200F_206E_206B_206D_206E_206D_206C_200F_200D_200E_206C_206B_206C_202D_206A_206C_200C_206C_202E((IDisposable)enumerator2); - num = 704950987; - break; - case 2: - goto end_IL_02e0; - } - continue; - end_IL_02e0: - break; - } + exitRangeEntry2 = exitRange3; } - if (!(exitRangeEntry == null)) - { - goto IL_07b3; - } - float num8 = float.MaxValue; - exitRangeEntry2 = null; - enumerator2 = exitRanges.GetEnumerator(); - try - { - num = 1641010271; - while (true) - { - int num9 = num; - int num3 = 1641010266; - int num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 6: - num = ((!popRangeIndex.TryGetValue((current.SourceTerritoryId, current3.DestInstanceId), out value2)) ? 1641010256 : 1641010267); - break; - case 4: - current3 = enumerator2.Current; - num = ((current3.SourceTerritoryId != current.DestTerritoryId) ? 1641010271 : 1641010258); - break; - case 5: - num = (_202D_202B_200E_200D_200F_206B_200E_202A_206C_200F_200C_202B_202A_200E_206D_206C_200D_202D_206D_206B_206A_200D_206C_200D_206A_202C_202A_206B_206E_206B_200D_202C_200F_206C_206E_202C_206B_206D_200F_206A_202E((IEnumerator)enumerator2) ? 1641010270 : 1641010269); - break; - case 1: - num12 = Vector3.Distance(current.SourcePosition, value2.Position); - num = ((!(num12 < num8)) ? 1641010271 : 1641010259); - break; - case 0: - num = 1641010271; - break; - case 2: - exitRangeEntry2 = current3; - num = 1641010271; - break; - case 3: - num = (hashSet.Contains((current3.SourceTerritoryId, current3.InstanceId)) ? 1641010271 : 1641010268); - break; - case 10: - num = (((object)exitRangeEntry2 != null) ? 1641010271 : 1641010264); - break; - case 8: - num = ((current3.DestTerritoryId != current.SourceTerritoryId) ? 1641010271 : 1641010265); - break; - case 9: - num8 = num12; - exitRangeEntry = current3; - num = 1641010271; - break; - case 7: - goto end_IL_0357; - } - continue; - end_IL_0357: - break; - } - } - finally - { - num = ((enumerator2 == null) ? (-564357358) : (-564357359)); - while (true) - { - int num13 = num; - int num3 = -564357357; - int num4 = num13; - int num14 = num4 + num3; - int num15 = num4 & num3; - switch (num14 - (num15 + num15)) - { - case 0: - num = -564357359; - break; - case 1: - goto end_IL_053f; - case 2: - _206C_206E_202B_206F_206C_206F_202B_206E_206C_200B_200B_206E_206E_202C_206E_202D_200B_202D_202B_202C_200F_202B_200F_206E_206B_206D_206E_206D_206C_200F_200D_200E_206C_206B_206C_202D_206A_206C_200C_206C_202E((IDisposable)enumerator2); - num = -564357358; - break; - } - continue; - end_IL_053f: - break; - } - } - num = (((object)exitRangeEntry != null) ? (-267048228) : (-267048233)); } - else + if ((object)exitRangeEntry == null) { - num = -267048227; + exitRangeEntry = exitRangeEntry2; } - goto IL_05ac; - IL_07b3: - num = (((object)exitRangeEntry != null) ? (-267048226) : (-267048232)); - goto IL_05ac; - IL_05ac: - while (true) - { - int num16 = num; - int num3 = -267048226; - int num4 = num16; - Vector3? vector2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = -267048233; - break; - case 6: - vector2 = vector; - goto IL_061f; - case 0: - vector2 = exitRangeEntry.SourcePosition; - goto IL_061f; - case 7: - list2.Add(current); - num = -267048234; - break; - case 1: - goto IL_0659; - case 8: - goto end_IL_05ac; - case 2: - goto IL_07b3; - case 9: - exitRangeEntry = exitRangeEntry2; - num = -267048228; - break; - case 5: - hashSet.Add((exitRangeEntry.SourceTerritoryId, exitRangeEntry.InstanceId)); - num = -267048234; - break; - case 3: - goto end_IL_079b; - IL_061f: - vector3 = vector2; - num = (vector3.HasValue ? (-267048225) : (-267048231)); - break; - } - continue; - IL_0659: - ZoneBoundary zoneBoundary = _202E_200D_206B_202D_206A_206B_200F_202B_200B_206D_202C_206E_206F_206B_206B_202C_202E_202A_202B_200D_200B_200E_202A_202A_206F_202C_206F_206B_200C_200C_200C_206C_200B_202D_200D_206F_202D_200F_200B_206C_202E(); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(6, 3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1989489141)); - defaultInterpolatedStringHandler.AppendFormatted(current.SourceTerritoryId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-642304930)); - defaultInterpolatedStringHandler.AppendFormatted(current.DestTerritoryId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-493592002)); - defaultInterpolatedStringHandler.AppendFormatted(current.InstanceId); - _202D_202C_206F_206A_202B_200E_206C_206C_206F_202B_202B_206B_206D_206F_206A_202E_202D_206A_200F_200B_206E_200B_200D_206C_206B_202C_202B_206D_206B_206A_202B_206E_202B_202E_202D_200E_200D_206A_200B_206B_202E(zoneBoundary, defaultInterpolatedStringHandler.ToStringAndClear()); - BoundarySide boundarySide = _202A_202A_202B_206F_200B_200B_206A_206F_206A_202A_206A_200B_200B_200F_202B_206C_200C_206F_200B_206C_200E_200B_202A_200E_200C_200C_202A_200D_206F_206C_202D_202E_202B_202C_200B_200E_206B_202D_202D_206F_202E(); - _202A_202A_200F_206F_206B_206B_206D_206B_200B_200B_206F_200D_206F_202D_200B_200F_202D_206A_202A_200B_206A_200F_206A_200B_200C_200B_202A_200C_206F_200C_200C_200C_202D_200F_200C_202E_202A_200D_202A_202A_202E(boundarySide, current.SourceTerritoryId); - _200C_202D_200E_202A_202C_206D_200D_202C_200D_202E_202E_206B_206D_202E_202B_206A_200E_202A_202B_200F_202C_206C_206B_200B_200B_200D_202A_206A_206A_202E_200F_206B_206C_202E_200C_206A_200D_202A_202C_200D_202E(boundarySide, current.SourcePosition); - _200C_206F_200C_202B_206A_202A_206E_200F_202E_200E_202A_200D_200B_202D_200B_202A_202B_206B_206A_200B_206F_202C_202C_202C_202C_206D_202E_202E_200B_202A_206E_202B_206B_206A_202C_202E_202E_206F_206E_200F_202E(boundarySide, TriggerOf(current)); - _206E_206D_200C_200F_202C_202D_200F_206F_200D_206E_202E_202B_200D_206E_202D_200D_200B_202B_202B_202E_202E_200F_206F_200C_202A_200B_206B_202E_206A_202C_202D_206E_206F_202E_200F_200B_202D_206A_206C_200C_202E(zoneBoundary, boundarySide); - BoundarySide boundarySide2 = _202A_202A_202B_206F_200B_200B_206A_206F_206A_202A_206A_200B_200B_200F_202B_206C_200C_206F_200B_206C_200E_200B_202A_200E_200C_200C_202A_200D_206F_206C_202D_202E_202B_202C_200B_200E_206B_202D_202D_206F_202E(); - _202A_202A_200F_206F_206B_206B_206D_206B_200B_200B_206F_200D_206F_202D_200B_200F_202D_206A_202A_200B_206A_200F_206A_200B_200C_200B_202A_200C_206F_200C_200C_200C_202D_200F_200C_202E_202A_200D_202A_202A_202E(boundarySide2, current.DestTerritoryId); - _200C_202D_200E_202A_202C_206D_200D_202C_200D_202E_202E_206B_206D_202E_202B_206A_200E_202A_202B_200F_202C_206C_206B_200B_200B_200D_202A_206A_206A_202E_200F_206B_206C_202E_200C_206A_200D_202A_202C_200D_202E(boundarySide2, vector3.Value); - _200C_206F_200C_202B_206A_202A_206E_200F_202E_200E_202A_200D_200B_202D_200B_202A_202B_206B_206A_200B_206F_202C_202C_202C_202C_206D_202E_202E_200B_202A_206E_202B_206B_206A_202C_202E_202E_206F_206E_200F_202E(boundarySide2, (exitRangeEntry == null) ? null : TriggerOf(exitRangeEntry)); - _206C_202E_202B_200D_202A_200C_200C_206A_200C_202C_206E_206A_200C_206F_206B_206E_206B_206E_206E_206E_206A_200E_200E_206D_206C_206F_200D_202A_202D_200E_202A_200C_200B_206E_200C_206C_200B_206A_200C_202A_202E(zoneBoundary, boundarySide2); - _202D_202D_206F_202D_206F_202C_206C_202C_206D_206D_202C_206D_200B_206E_206A_202E_206E_202B_202A_206D_202E_206F_202D_200F_200D_206C_202B_200C_206A_206E_202C_206F_202D_202D_200F_202E_200C_202B_200F_200F_202E(zoneBoundary, exitRangeEntry == null); - list.Add(zoneBoundary); - hashSet.Add((current.SourceTerritoryId, current.InstanceId)); - num = ((!(exitRangeEntry != null)) ? (-267048234) : (-267048229)); - continue; - end_IL_05ac: - break; - } - continue; - end_IL_079b: - break; } - } - finally - { - int num = ((enumerator == null) ? (-1091399177) : (-1091399180)); - while (true) + Vector3? vector2 = (((object)exitRangeEntry != null) ? new Vector3?(exitRangeEntry.SourcePosition) : vector); + if (!vector2.HasValue) { - int num17 = num; - int num3 = -1091399178; - int num4 = num17; - int num18 = num4 + num3; - int num19 = num4 & num3; - switch (num18 - (num19 + num19)) - { - case 0: - num = -1091399180; - break; - case 2: - _206C_206E_202B_206F_206C_206F_202B_206E_206C_200B_200B_206E_206E_202C_206E_202D_200B_202D_202B_202C_200F_202B_200F_206E_206B_206D_206E_206D_206C_200F_200D_200E_206C_206B_206C_202D_206A_206C_200C_206C_202E((IDisposable)enumerator); - num = -1091399177; - break; - case 1: - goto end_IL_082c; - } + list2.Add(exitRange); continue; - end_IL_082c: - break; + } + list.Add(new ZoneBoundary + { + Id = $"lgb-{exitRange.SourceTerritoryId}-{exitRange.DestTerritoryId}-{exitRange.InstanceId}", + Side1 = new BoundarySide + { + TerritoryId = exitRange.SourceTerritoryId, + Position = exitRange.SourcePosition, + Trigger = TriggerOf(exitRange) + }, + Side2 = new BoundarySide + { + TerritoryId = exitRange.DestTerritoryId, + Position = vector2.Value, + Trigger = ((exitRangeEntry == null) ? null : TriggerOf(exitRangeEntry)) + }, + OneWay = (exitRangeEntry == null) + }); + hashSet.Add((exitRange.SourceTerritoryId, exitRange.InstanceId)); + if (exitRangeEntry != null) + { + hashSet.Add((exitRangeEntry.SourceTerritoryId, exitRangeEntry.InstanceId)); } } HashSet<(ushort, ushort)> hashSet2 = new HashSet<(ushort, ushort)>(); - using (List<ZoneBoundary>.Enumerator enumerator3 = list.GetEnumerator()) + foreach (ZoneBoundary item in list) { - int num = 1178177588; - while (true) + hashSet2.Add((item.Side1.TerritoryId, item.Side2.TerritoryId)); + hashSet2.Add((item.Side2.TerritoryId, item.Side1.TerritoryId)); + } + foreach (ExitRangeEntry item2 in list2) + { + if (hashSet2.Contains((item2.SourceTerritoryId, item2.DestTerritoryId))) { - int num20 = num; - int num3 = 1178177589; - int num4 = num20; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = 1178177588; - break; - case 2: - { - ZoneBoundary current4 = enumerator3.Current; - hashSet2.Add((_202D_202A_206E_206F_206B_202A_206A_206D_206B_202B_202A_200B_206C_200D_202E_202B_200F_200D_202A_202A_202A_206E_200E_206E_206D_206B_200F_200E_202E_200B_200D_200D_200E_206B_206B_200E_200C_202D_200F_206D_202E(_206B_206B_202B_206E_206D_200E_200E_202A_206F_206E_206A_202E_200D_206C_202C_202E_206F_206E_202B_206F_200F_206C_200C_200B_200B_206E_202D_200E_200F_202E_206D_202B_202D_206E_202E_202A_206E_202A_200D_206B_202E(current4)), _202D_202A_206E_206F_206B_202A_206A_206D_206B_202B_202A_200B_206C_200D_202E_202B_200F_200D_202A_202A_202A_206E_200E_206E_206D_206B_200F_200E_202E_200B_200D_200D_200E_206B_206B_200E_200C_202D_200F_206D_202E(_206E_206F_202C_202D_200E_202C_200B_206D_206C_206F_202A_206E_200D_206D_202B_200E_200E_200D_202C_202D_206B_202A_202B_200B_200B_202B_202C_206A_202A_206A_206E_202D_200F_202D_206C_206E_206B_200B_206D_206B_202E(current4)))); - hashSet2.Add((_202D_202A_206E_206F_206B_202A_206A_206D_206B_202B_202A_200B_206C_200D_202E_202B_200F_200D_202A_202A_202A_206E_200E_206E_206D_206B_200F_200E_202E_200B_200D_200D_200E_206B_206B_200E_200C_202D_200F_206D_202E(_206E_206F_202C_202D_200E_202C_200B_206D_206C_206F_202A_206E_200D_206D_202B_200E_200E_200D_202C_202D_206B_202A_202B_200B_200B_202B_202C_206A_202A_206A_206E_202D_200F_202D_206C_206E_206B_200B_206D_206B_202E(current4)), _202D_202A_206E_206F_206B_202A_206A_206D_206B_202B_202A_200B_206C_200D_202E_202B_200F_200D_202A_202A_202A_206E_200E_206E_206D_206B_200F_200E_202E_200B_200D_200D_200E_206B_206B_200E_200C_202D_200F_206D_202E(_206B_206B_202B_206E_206D_200E_200E_202A_206F_206E_206A_202E_200D_206C_202C_202E_206F_206E_202B_206F_200F_206C_200C_200B_200B_206E_202D_200E_200F_202E_206D_202B_202D_206E_202E_202A_206E_202A_200D_206B_202E(current4)))); - num = 1178177588; - break; - } - case 1: - num = (enumerator3.MoveNext() ? 1178177591 : 1178177589); - break; - case 0: - goto end_IL_0894; - } - continue; - end_IL_0894: - break; - } - } - using List<ExitRangeEntry>.Enumerator enumerator4 = list2.GetEnumerator(); - int num = -784506281; - ExitRangeEntry current5 = default(ExitRangeEntry); - while (true) - { - int num21 = num; - int num3 = -784506286; - int num4 = num21; - int num22 = num4 + num3; - int num23 = num4 & num3; - switch (num22 - (num23 + num23)) - { - case 2: - _200D_206A_206E_206E_202D_206D_206C_202A_200E_202B_200D_200E_206A_200C_202E_206D_202E_200B_200B_206A_200B_206D_206E_202E_200D_202C_200E_200B_200B_206F_206E_206E_200F_202D_200B_200B_206E_206F_206C_202B_202E(logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1622363206), new object[4] { current5.InstanceId, current5.SourceTerritoryId, current5.DestTerritoryId, current5.DestInstanceId }); - num = -784506281; - break; - case 5: - num = (enumerator4.MoveNext() ? (-784506285) : (-784506287)); - break; - case 1: - current5 = enumerator4.Current; - num = ((!hashSet2.Contains((current5.SourceTerritoryId, current5.DestTerritoryId))) ? (-784506288) : (-784506282)); - break; - case 0: - num = -784506281; - break; - case 4: - _202D_200E_200D_200C_206C_200C_200E_202E_206E_202A_200B_200C_206A_200E_206B_200C_200E_200C_200B_206E_206A_206D_202E_200B_200B_202B_202D_206D_202E_202A_202C_200C_206F_202E_206C_202D_202D_206F_206E_206F_202E(logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-566963400), new object[3] { current5.InstanceId, current5.SourceTerritoryId, current5.DestTerritoryId }); - num = -784506281; - break; - case 3: - return list; + logger.LogDebug("Skipped redundant unresolvable ExitRange {InstanceId} in territory {SrcTerritory} -> {DestTerritory}", item2.InstanceId, item2.SourceTerritoryId, item2.DestTerritoryId); + } + else + { + logger.LogWarning("ExitRange {InstanceId} in territory {SrcTerritory} -> {DestTerritory}: could not resolve destination position (DestInstanceId={DestId})", item2.InstanceId, item2.SourceTerritoryId, item2.DestTerritoryId, item2.DestInstanceId); } } + return list; } - [MethodImpl(MethodImplOptions.NoInlining)] public static void ApplyOverrides(List<ZoneBoundary> boundaries, IReadOnlyCollection<(ushort TerritoryA, ushort TerritoryB)> flyingPairs, IReadOnlyList<ZoneBoundaryPositionOverride> positionOverrides, ILogger logger) { HashSet<(ushort, ushort)> hashSet = new HashSet<(ushort, ushort)>(flyingPairs); - int num; - using (List<ZoneBoundary>.Enumerator enumerator = boundaries.GetEnumerator()) + foreach (ZoneBoundary boundary in boundaries) { - num = -1561912476; - ZoneBoundary current = default(ZoneBoundary); - while (true) + if (hashSet.Contains(PairKey(boundary.Side1.TerritoryId, boundary.Side2.TerritoryId))) { - int num2 = num; - int num3 = -1561912474; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _206D_200F_200E_202B_202D_200F_206D_200C_200C_200E_206E_202C_202D_206A_206C_200F_200E_206C_206A_206F_206A_200C_206E_206D_202B_206F_200C_206E_200C_202A_202C_206A_200D_206C_200C_206B_200D_202A_200C_206E_202E(current, true); - num = -1561912476; - break; - case 1: - current = enumerator.Current; - num = ((!hashSet.Contains(PairKey(_202D_202A_206E_206F_206B_202A_206A_206D_206B_202B_202A_200B_206C_200D_202E_202B_200F_200D_202A_202A_202A_206E_200E_206E_206D_206B_200F_200E_202E_200B_200D_200D_200E_206B_206B_200E_200C_202D_200F_206D_202E(_206B_206B_202B_206E_206D_200E_200E_202A_206F_206E_206A_202E_200D_206C_202C_202E_206F_206E_202B_206F_200F_206C_200C_200B_200B_206E_202D_200E_200F_202E_206D_202B_202D_206E_202E_202A_206E_202A_200D_206B_202E(current)), _202D_202A_206E_206F_206B_202A_206A_206D_206B_202B_202A_200B_206C_200D_202E_202B_200F_200D_202A_202A_202A_206E_200E_206E_206D_206B_200F_200E_202E_200B_200D_200D_200E_206B_206B_200E_200C_202D_200F_206D_202E(_206E_206F_202C_202D_200E_202C_200B_206D_206C_206F_202A_206E_200D_206D_202B_200E_200E_200D_202C_202D_206B_202A_202B_200B_200B_202B_202C_206A_202A_206A_206E_202D_200F_202D_206C_206E_206B_200B_206D_206B_202E(current))))) ? (-1561912476) : (-1561912474)); - break; - case 2: - num = (enumerator.MoveNext() ? (-1561912473) : (-1561912475)); - break; - case 4: - num = -1561912476; - break; - case 3: - goto end_IL_001a; - } - continue; - end_IL_001a: - break; + boundary.RequiresFlying = true; } } Dictionary<(ushort, ushort), List<ZoneBoundary>> dictionary = (from b in boundaries - group b by PairKey(_003C_003Ec._206D_206F_200D_206F_206B_202C_206B_206C_200F_206E_202A_202E_202B_202E_200D_206A_200D_202A_206A_202D_200D_200B_206E_200F_202C_202D_206A_200F_200C_206C_206B_206C_200B_202D_202C_202C_200C_200C_200C_202E_202E(_003C_003Ec._200B_202E_206E_206E_206E_202A_202D_202A_202D_206A_206F_202B_200C_206B_206C_200E_206D_202B_200D_200B_202B_206F_206C_202B_206B_200C_206A_206E_202D_200F_206C_200B_206C_200E_202A_202C_202B_206B_200D_202C_202E(b)), _003C_003Ec._206D_206F_200D_206F_206B_202C_206B_206C_200F_206E_202A_202E_202B_202E_200D_206A_200D_202A_206A_202D_200D_200B_206E_200F_202C_202D_206A_200F_200C_206C_206B_206C_200B_202D_202C_202C_200C_200C_200C_202E_202E(_003C_003Ec._202B_206C_206B_202E_202D_200C_200F_200C_206D_200C_206F_202B_200F_200C_206E_200C_200E_202E_206E_202B_206E_202A_206A_200D_200D_206B_202D_202D_200D_202E_206D_202E_202E_206C_202D_202E_200C_202E_200C_200F_202E(b)))).ToDictionary((IGrouping<(ushort, ushort), ZoneBoundary> g) => g.Key, (IGrouping<(ushort, ushort), ZoneBoundary> g) => g.ToList()); - int num7 = 0; - IEnumerator<IGrouping<(ushort, ushort), ZoneBoundaryPositionOverride>> enumerator2 = (from o in positionOverrides - group o by (TerritoryA: o.TerritoryA, TerritoryB: o.TerritoryB)).GetEnumerator(); - try + group b by PairKey(b.Side1.TerritoryId, b.Side2.TerritoryId)).ToDictionary((IGrouping<(ushort, ushort), ZoneBoundary> g) => g.Key, (IGrouping<(ushort, ushort), ZoneBoundary> g) => g.ToList()); + int num = 0; + foreach (IGrouping<(ushort, ushort), ZoneBoundaryPositionOverride> item in from o in positionOverrides + group o by (TerritoryA: o.TerritoryA, TerritoryB: o.TerritoryB)) { - List<ZoneBoundaryPositionOverride> list = default(List<ZoneBoundaryPositionOverride>); - bool[] array2 = default(bool[]); - (float, int, int) current3 = default((float, int, int)); - int num14 = default(int); - while (true) + List<ZoneBoundaryPositionOverride> list = item.ToList(); + if (!dictionary.TryGetValue(item.Key, out var value)) { - IL_0519: - if (_202D_202B_200E_200D_200F_206B_200E_202A_206C_200F_200C_202B_202A_200E_206D_206C_200D_202D_206D_206B_206A_200D_206C_200D_206A_202C_202A_206B_206E_206B_200D_202C_200F_206C_206E_202C_206B_206D_200F_206A_202E((IEnumerator)enumerator2)) - { - IGrouping<(ushort, ushort), ZoneBoundaryPositionOverride> current2 = enumerator2.Current; - list = current2.ToList(); - if (!dictionary.TryGetValue(current2.Key, out var value)) - { - num7 += list.Count; - _200D_206A_206E_206E_202D_206D_206C_202A_200E_202B_200D_200E_206A_200C_202E_206D_202E_200B_200B_206A_200B_206D_206E_202E_200D_202C_200E_200B_200B_206F_206E_206E_200F_202D_200B_200B_206E_206F_206C_202B_202E(logger, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1356546708), new object[3] - { - current2.Key.Item1, - current2.Key.Item2, - list.Count - }); - continue; - } - List<(float, int, int)> list2 = new List<(float, int, int)>(); - int num8 = 0; - while (num8 < value.Count) - { - int num3; - int num4; - for (int num9 = 0; num9 < list.Count; num9 = (num4 | num3) + (num4 & num3)) - { - list2.Add((OverrideDistance(value[num8], list[num9]), num8, num9)); - int num10 = num9; - num3 = 1; - num4 = num10; - } - int num11 = num8; - num3 = 1; - num4 = num11; - num8 = (num4 | num3) + (num4 & num3); - } - bool[] array = new bool[value.Count]; - array2 = new bool[list.Count]; - IEnumerator<(float, int, int)> enumerator3 = list2.OrderBy<(float, int, int), float>(((float Distance, int GateIdx, int OverrideIdx) c) => c.Distance).GetEnumerator(); - try - { - num = -397486009; - while (true) - { - int num12 = num; - int num3 = -397486013; - int num4 = num12; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = -397486009; - break; - case 5: - num = (array2[current3.Item3] ? (-397486009) : (-397486015)); - break; - case 4: - num = (_202D_202B_200E_200D_200F_206B_200E_202A_206C_200F_200C_202B_202A_200E_206D_206C_200D_202D_206D_206B_206A_200D_206C_200D_206A_202C_202A_206B_206E_206B_200D_202C_200F_206C_206E_202C_206B_206D_200F_206A_202E((IEnumerator)enumerator3) ? (-397486014) : (-397486013)); - break; - case 2: - { - array[current3.Item2] = true; - array2[current3.Item3] = true; - ZoneBoundary zoneBoundary = value[current3.Item2]; - ZoneBoundaryPositionOverride zoneBoundaryPositionOverride = list[current3.Item3]; - bool flag = _202D_202A_206E_206F_206B_202A_206A_206D_206B_202B_202A_200B_206C_200D_202E_202B_200F_200D_202A_202A_202A_206E_200E_206E_206D_206B_200F_200E_202E_200B_200D_200D_200E_206B_206B_200E_200C_202D_200F_206D_202E(_206B_206B_202B_206E_206D_200E_200E_202A_206F_206E_206A_202E_200D_206C_202C_202E_206F_206E_202B_206F_200F_206C_200C_200B_200B_206E_202D_200E_200F_202E_206D_202B_202D_206E_202E_202A_206E_202A_200D_206B_202E(zoneBoundary)) == zoneBoundaryPositionOverride.TerritoryA; - _200C_202D_200E_202A_202C_206D_200D_202C_200D_202E_202E_206B_206D_202E_202B_206A_200E_202A_202B_200F_202C_206C_206B_200B_200B_200D_202A_206A_206A_202E_200F_206B_206C_202E_200C_206A_200D_202A_202C_200D_202E(_206B_206B_202B_206E_206D_200E_200E_202A_206F_206E_206A_202E_200D_206C_202C_202E_206F_206E_202B_206F_200F_206C_200C_200B_200B_206E_202D_200E_200F_202E_206D_202B_202D_206E_202E_202A_206E_202A_200D_206B_202E(zoneBoundary), flag ? zoneBoundaryPositionOverride.PositionA : zoneBoundaryPositionOverride.PositionB); - _200C_202D_200E_202A_202C_206D_200D_202C_200D_202E_202E_206B_206D_202E_202B_206A_200E_202A_202B_200F_202C_206C_206B_200B_200B_200D_202A_206A_206A_202E_200F_206B_206C_202E_200C_206A_200D_202A_202C_200D_202E(_206E_206F_202C_202D_200E_202C_200B_206D_206C_206F_202A_206E_200D_206D_202B_200E_200E_200D_202C_202D_206B_202A_202B_200B_200B_202B_202C_206A_202A_206A_206E_202D_200F_202D_206C_206E_206B_200B_206D_206B_202E(zoneBoundary), flag ? zoneBoundaryPositionOverride.PositionB : zoneBoundaryPositionOverride.PositionA); - num = -397486009; - break; - } - case 1: - current3 = enumerator3.Current; - num = (array[current3.Item2] ? (-397486009) : (-397486010)); - break; - case 0: - goto end_IL_02f4; - } - continue; - end_IL_02f4: - break; - } - } - finally - { - num = ((enumerator3 == null) ? 386803249 : 386803248); - while (true) - { - int num13 = num; - int num3 = 386803249; - int num4 = num13; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 386803248; - break; - case 0: - goto end_IL_0476; - case 1: - _206C_206E_202B_206F_206C_206F_202B_206E_206C_200B_200B_206E_206E_202C_206E_202D_200B_202D_202B_202C_200F_202B_200F_206E_206B_206D_206E_206D_206C_200F_200D_200E_206C_206B_206C_202D_206A_206C_200C_206C_202E((IDisposable)enumerator3); - num = 386803249; - break; - } - continue; - end_IL_0476: - break; - } - } - num14 = 0; - num = -1707302670; - } - else - { - num = -1707302671; - } - while (true) - { - int num15 = num; - int num3 = -1707302671; - int num4 = num15; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 5: - num = -1707302670; - continue; - case 2: - break; - case 1: - { - int num19 = num14; - num3 = 1; - num4 = num19; - int num20 = num4 ^ num3; - int num21 = num4 & num3; - num14 = num20 + (num21 + num21); - num = -1707302670; - continue; - } - case 4: - num = (array2[num14] ? (-1707302672) : (-1707302665)); - continue; - case 3: - num = ((num14 < list.Count) ? (-1707302667) : (-1707302669)); - continue; - case 6: - { - int num16 = num7; - num3 = 1; - num4 = num16; - int num17 = num4 ^ num3; - int num18 = num4 & num3; - num7 = num17 + (num18 + num18); - num = -1707302672; - continue; - } - case 0: - goto end_IL_04d1; - } - goto IL_0519; - continue; - end_IL_04d1: - break; - } - break; - } - } - finally - { - num = ((enumerator2 == null) ? (-284585100) : (-284585099)); - while (true) - { - int num22 = num; - int num3 = -284585100; - int num4 = num22; - int num23 = num4 + num3; - int num24 = num4 & num3; - switch (num23 - (num24 + num24)) - { - case 0: - goto end_IL_05df; - case 1: - _206C_206E_202B_206F_206C_206F_202B_206E_206C_200B_200B_206E_206E_202C_206E_202D_200B_202D_202B_202C_200F_202B_200F_206E_206B_206D_206E_206D_206C_200F_200D_200E_206C_206B_206C_202D_206A_206C_200C_206C_202E((IDisposable)enumerator2); - num = -284585100; - break; - case 2: - num = -284585099; - break; - } + num += list.Count; + logger.LogWarning("No derived boundary for override pair {TerritoryA}<->{TerritoryB} ({Count} overrides) - game data drift?", item.Key.Item1, item.Key.Item2, list.Count); continue; - end_IL_05df: - break; + } + List<(float, int, int)> list2 = new List<(float, int, int)>(); + for (int num2 = 0; num2 < value.Count; num2++) + { + for (int num3 = 0; num3 < list.Count; num3++) + { + list2.Add((OverrideDistance(value[num2], list[num3]), num2, num3)); + } + } + bool[] array = new bool[value.Count]; + bool[] array2 = new bool[list.Count]; + foreach (var item2 in list2.OrderBy<(float, int, int), float>(((float Distance, int GateIdx, int OverrideIdx) c) => c.Distance)) + { + if (!array[item2.Item2] && !array2[item2.Item3]) + { + array[item2.Item2] = true; + array2[item2.Item3] = true; + ZoneBoundary zoneBoundary = value[item2.Item2]; + ZoneBoundaryPositionOverride zoneBoundaryPositionOverride = list[item2.Item3]; + bool flag = zoneBoundary.Side1.TerritoryId == zoneBoundaryPositionOverride.TerritoryA; + zoneBoundary.Side1.Position = (flag ? zoneBoundaryPositionOverride.PositionA : zoneBoundaryPositionOverride.PositionB); + zoneBoundary.Side2.Position = (flag ? zoneBoundaryPositionOverride.PositionB : zoneBoundaryPositionOverride.PositionA); + } + } + for (int num4 = 0; num4 < list.Count; num4++) + { + if (!array2[num4]) + { + num++; + } } } - num = ((num7 <= 0) ? 1969313430 : 1969313429); - while (true) + if (num > 0) { - int num25 = num; - int num3 = 1969313428; - int num4 = num25; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1969313429; - break; - case 2: - return; - case 1: - _200D_206A_206E_206E_202D_206D_206C_202A_200E_202B_200D_200E_206A_200C_202E_206D_202E_200B_200B_206A_200B_206D_206E_202E_200D_202C_200E_200B_200B_206F_206E_206E_200F_202D_200B_200B_206E_206F_206C_202B_202E(logger, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1309944593), new object[1] { num7 }); - num = 1969313430; - break; - } + logger.LogWarning("{Count} position overrides had no gate to attach to", num); } static (ushort, ushort) PairKey(ushort a, ushort b) { - int num26 = ((a <= b) ? 1834815279 : 1834815278); - while (true) + if (a > b) { - int num27 = num26; - int num28 = 1834815279; - int num29 = num27; - int num30 = num29 + num28; - int num31 = num29 & num28; - switch (num30 - (num31 + num31)) - { - case 2: - goto IL_0044; - case 1: - return (b, a); - case 0: - return (a, b); - } - continue; - IL_0044: - num26 = 1834815278; + return (b, a); } + return (a, b); } } private static TriggerBox? TriggerOf(ExitRangeEntry exit) { - int num = ((exit.HalfExtents == Vector3.Zero) ? 1355373667 : 1355373664); - while (true) + if (!(exit.HalfExtents == Vector3.Zero)) { - int num2 = num; - int num3 = 1355373666; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0052; - case 1: - return null; - case 2: - return _202A_200B_206C_200F_202B_206B_200C_202D_202D_202D_200B_206E_206F_202C_206F_206D_202B_200E_206A_206D_206A_206A_206C_206C_202E_202D_202C_206B_206B_200C_202A_206A_202B_200B_206E_206A_206A_202C_200C_200D_202E(exit.SourcePosition, exit.Rotation, exit.HalfExtents); - } - continue; - IL_0052: - num = 1355373664; + return new TriggerBox(exit.SourcePosition, exit.Rotation, exit.HalfExtents); } + return null; } private static float OverrideDistance(ZoneBoundary gate, ZoneBoundaryPositionOverride ovr) { - int num = ((_202D_202A_206E_206F_206B_202A_206A_206D_206B_202B_202A_200B_206C_200D_202E_202B_200F_200D_202A_202A_202A_206E_200E_206E_206D_206B_200F_200E_202E_200B_200D_200D_200E_206B_206B_200E_200C_202D_200F_206D_202E(_206B_206B_202B_206E_206D_200E_200E_202A_206F_206E_206A_202E_200D_206C_202C_202E_206F_206E_202B_206F_200F_206C_200C_200B_200B_206E_202D_200E_200F_202E_206D_202B_202D_206E_202E_202A_206E_202A_200D_206B_202E(gate)) == ovr.TerritoryA) ? (-1856097741) : (-1856097744)); - while (true) + if (gate.Side1.TerritoryId != ovr.TerritoryA) { - int num2 = num; - int num3 = -1856097743; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0053; - case 1: - return Vector3.Distance(_202B_200F_206F_202D_200E_206B_206F_206F_202B_200D_202B_202D_202B_202A_206E_206E_200F_206E_206A_206E_202D_200D_202B_206F_200F_206C_200E_206D_200F_202E_206C_202C_200F_202E_206F_200B_200E_206C_206E_202C_202E(_206B_206B_202B_206E_206D_200E_200E_202A_206F_206E_206A_202E_200D_206C_202C_202E_206F_206E_202B_206F_200F_206C_200C_200B_200B_206E_202D_200E_200F_202E_206D_202B_202D_206E_202E_202A_206E_202A_200D_206B_202E(gate)), ovr.PositionB) + Vector3.Distance(_202B_200F_206F_202D_200E_206B_206F_206F_202B_200D_202B_202D_202B_202A_206E_206E_200F_206E_206A_206E_202D_200D_202B_206F_200F_206C_200E_206D_200F_202E_206C_202C_200F_202E_206F_200B_200E_206C_206E_202C_202E(_206E_206F_202C_202D_200E_202C_200B_206D_206C_206F_202A_206E_200D_206D_202B_200E_200E_200D_202C_202D_206B_202A_202B_200B_200B_202B_202C_206A_202A_206A_206E_202D_200F_202D_206C_206E_206B_200B_206D_206B_202E(gate)), ovr.PositionA); - case 2: - return Vector3.Distance(_202B_200F_206F_202D_200E_206B_206F_206F_202B_200D_202B_202D_202B_202A_206E_206E_200F_206E_206A_206E_202D_200D_202B_206F_200F_206C_200E_206D_200F_202E_206C_202C_200F_202E_206F_200B_200E_206C_206E_202C_202E(_206B_206B_202B_206E_206D_200E_200E_202A_206F_206E_206A_202E_200D_206C_202C_202E_206F_206E_202B_206F_200F_206C_200C_200B_200B_206E_202D_200E_200F_202E_206D_202B_202D_206E_202E_202A_206E_202A_200D_206B_202E(gate)), ovr.PositionA) + Vector3.Distance(_202B_200F_206F_202D_200E_206B_206F_206F_202B_200D_202B_202D_202B_202A_206E_206E_200F_206E_206A_206E_202D_200D_202B_206F_200F_206C_200E_206D_200F_202E_206C_202C_200F_202E_206F_200B_200E_206C_206E_202C_202E(_206E_206F_202C_202D_200E_202C_200B_206D_206C_206F_202A_206E_200D_206D_202B_200E_200E_200D_202C_202D_206B_202A_202B_200B_200B_202B_202C_206A_202A_206A_206E_202D_200F_202D_206C_206E_206B_200B_206D_206B_202E(gate)), ovr.PositionB); - } - continue; - IL_0053: - num = -1856097744; + return Vector3.Distance(gate.Side1.Position, ovr.PositionB) + Vector3.Distance(gate.Side2.Position, ovr.PositionA); } - } - - [CompilerGenerated] - internal static (ushort, ushort) _003CApplyOverrides_003Eg__PairKey_007C1_0(ushort a, ushort b) - { - int num = ((a <= b) ? 1834815279 : 1834815278); - while (true) - { - int num2 = num; - int num3 = 1834815279; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0044; - case 1: - return (b, a); - case 0: - return (a, b); - } - continue; - IL_0044: - num = 1834815278; - } - } - - static bool _202D_202B_200E_200D_200F_206B_200E_202A_206C_200F_200C_202B_202A_200E_206D_206C_200D_202D_206D_206B_206A_200D_206C_200D_206A_202C_202A_206B_206E_206B_200D_202C_200F_206C_206E_202C_206B_206D_200F_206A_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206C_206E_202B_206F_206C_206F_202B_206E_206C_200B_200B_206E_206E_202C_206E_202D_200B_202D_202B_202C_200F_202B_200F_206E_206B_206D_206E_206D_206C_200F_200D_200E_206C_206B_206C_202D_206A_206C_200C_206C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static ZoneBoundary _202E_200D_206B_202D_206A_206B_200F_202B_200B_206D_202C_206E_206F_206B_206B_202C_202E_202A_202B_200D_200B_200E_202A_202A_206F_202C_206F_206B_200C_200C_200C_206C_200B_202D_200D_206F_202D_200F_200B_206C_202E() - { - return new ZoneBoundary(); - } - - static void _202D_202C_206F_206A_202B_200E_206C_206C_206F_202B_202B_206B_206D_206F_206A_202E_202D_206A_200F_200B_206E_200B_200D_206C_206B_202C_202B_206D_206B_206A_202B_206E_202B_202E_202D_200E_200D_206A_200B_206B_202E(ZoneBoundary P_0, string P_1) - { - P_0.Id = P_1; - } - - static BoundarySide _202A_202A_202B_206F_200B_200B_206A_206F_206A_202A_206A_200B_200B_200F_202B_206C_200C_206F_200B_206C_200E_200B_202A_200E_200C_200C_202A_200D_206F_206C_202D_202E_202B_202C_200B_200E_206B_202D_202D_206F_202E() - { - return new BoundarySide(); - } - - static void _202A_202A_200F_206F_206B_206B_206D_206B_200B_200B_206F_200D_206F_202D_200B_200F_202D_206A_202A_200B_206A_200F_206A_200B_200C_200B_202A_200C_206F_200C_200C_200C_202D_200F_200C_202E_202A_200D_202A_202A_202E(BoundarySide P_0, ushort P_1) - { - P_0.TerritoryId = P_1; - } - - static void _200C_202D_200E_202A_202C_206D_200D_202C_200D_202E_202E_206B_206D_202E_202B_206A_200E_202A_202B_200F_202C_206C_206B_200B_200B_200D_202A_206A_206A_202E_200F_206B_206C_202E_200C_206A_200D_202A_202C_200D_202E(BoundarySide P_0, Vector3 P_1) - { - P_0.Position = P_1; - } - - static void _200C_206F_200C_202B_206A_202A_206E_200F_202E_200E_202A_200D_200B_202D_200B_202A_202B_206B_206A_200B_206F_202C_202C_202C_202C_206D_202E_202E_200B_202A_206E_202B_206B_206A_202C_202E_202E_206F_206E_200F_202E(BoundarySide P_0, TriggerBox P_1) - { - P_0.Trigger = P_1; - } - - static void _206E_206D_200C_200F_202C_202D_200F_206F_200D_206E_202E_202B_200D_206E_202D_200D_200B_202B_202B_202E_202E_200F_206F_200C_202A_200B_206B_202E_206A_202C_202D_206E_206F_202E_200F_200B_202D_206A_206C_200C_202E(ZoneBoundary P_0, BoundarySide P_1) - { - P_0.Side1 = P_1; - } - - static void _206C_202E_202B_200D_202A_200C_200C_206A_200C_202C_206E_206A_200C_206F_206B_206E_206B_206E_206E_206E_206A_200E_200E_206D_206C_206F_200D_202A_202D_200E_202A_200C_200B_206E_200C_206C_200B_206A_200C_202A_202E(ZoneBoundary P_0, BoundarySide P_1) - { - P_0.Side2 = P_1; - } - - static void _202D_202D_206F_202D_206F_202C_206C_202C_206D_206D_202C_206D_200B_206E_206A_202E_206E_202B_202A_206D_202E_206F_202D_200F_200D_206C_202B_200C_206A_206E_202C_206F_202D_202D_200F_202E_200C_202B_200F_200F_202E(ZoneBoundary P_0, bool P_1) - { - P_0.OneWay = P_1; - } - - static BoundarySide _206B_206B_202B_206E_206D_200E_200E_202A_206F_206E_206A_202E_200D_206C_202C_202E_206F_206E_202B_206F_200F_206C_200C_200B_200B_206E_202D_200E_200F_202E_206D_202B_202D_206E_202E_202A_206E_202A_200D_206B_202E(ZoneBoundary P_0) - { - return P_0.Side1; - } - - static ushort _202D_202A_206E_206F_206B_202A_206A_206D_206B_202B_202A_200B_206C_200D_202E_202B_200F_200D_202A_202A_202A_206E_200E_206E_206D_206B_200F_200E_202E_200B_200D_200D_200E_206B_206B_200E_200C_202D_200F_206D_202E(BoundarySide P_0) - { - return P_0.TerritoryId; - } - - static BoundarySide _206E_206F_202C_202D_200E_202C_200B_206D_206C_206F_202A_206E_200D_206D_202B_200E_200E_200D_202C_202D_206B_202A_202B_200B_200B_202B_202C_206A_202A_206A_206E_202D_200F_202D_206C_206E_206B_200B_206D_206B_202E(ZoneBoundary P_0) - { - return P_0.Side2; - } - - static void _202D_200E_200D_200C_206C_200C_200E_202E_206E_202A_200B_200C_206A_200E_206B_200C_200E_200C_200B_206E_206A_206D_202E_200B_200B_202B_202D_206D_202E_202A_202C_200C_206F_202E_206C_202D_202D_206F_206E_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static void _200D_206A_206E_206E_202D_206D_206C_202A_200E_202B_200D_200E_206A_200C_202E_206D_202E_200B_200B_206A_200B_206D_206E_202E_200D_202C_200E_200B_200B_206F_206E_206E_200F_202D_200B_200B_206E_206F_206C_202B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static void _206D_200F_200E_202B_202D_200F_206D_200C_200C_200E_206E_202C_202D_206A_206C_200F_200E_206C_206A_206F_206A_200C_206E_206D_202B_206F_200C_206E_200C_202A_202C_206A_200D_206C_200C_206B_200D_202A_200C_206E_202E(ZoneBoundary P_0, bool P_1) - { - P_0.RequiresFlying = P_1; - } - - static TriggerBox _202A_200B_206C_200F_202B_206B_200C_202D_202D_202D_200B_206E_206F_202C_206F_206D_202B_200E_206A_206D_206A_206A_206C_206C_202E_202D_202C_206B_206B_200C_202A_206A_202B_200B_206E_206A_206A_202C_200C_200D_202E(Vector3 P_0, Vector3 P_1, Vector3 P_2) - { - return new TriggerBox(P_0, P_1, P_2); - } - - static Vector3 _202B_200F_206F_202D_200E_206B_206F_206F_202B_200D_202B_202D_202B_202A_206E_206E_200F_206E_206A_206E_202D_200D_202B_206F_200F_206C_200E_206D_200F_202E_206C_202C_200F_202E_206F_200B_200E_206C_206E_202C_202E(BoundarySide P_0) - { - return P_0.Position; + return Vector3.Distance(gate.Side1.Position, ovr.PositionA) + Vector3.Distance(gate.Side2.Position, ovr.PositionB); } } diff --git a/SmartNav/SmartNav.Data/ZoneBoundaryPositionOverride.cs b/SmartNav/SmartNav.Data/ZoneBoundaryPositionOverride.cs index 10d9f28..3c734be 100644 --- a/SmartNav/SmartNav.Data/ZoneBoundaryPositionOverride.cs +++ b/SmartNav/SmartNav.Data/ZoneBoundaryPositionOverride.cs @@ -1,145 +1,5 @@ -using System; -using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; namespace SmartNav.Data; -internal sealed record ZoneBoundaryPositionOverride(ushort TerritoryA, ushort TerritoryB, Vector3 PositionA, Vector3 PositionB) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202A_206A_200B_206E_206E_206B_200B_206A_200E_200B_206B_206A_206C_206C_206D_200D_206E_200E_200D_200C_202E_200B_202E_202A_200B_200C_200E_200B_200F_202C_206E_200C_200C_202B_206C_206D_202A_200C_200E_200C_202E(typeof(ZoneBoundaryPositionOverride).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202A_202D_202A_206A_206F_206D_200B_206E_200C_206D_206A_200E_200F_200C_202B_202C_206A_206B_202A_206B_200B_206A_202D_206D_206A_206F_200D_202C_206B_206A_200D_200C_200C_206C_202D_200C_200B_200E_202C_202E_202E(); - _206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(128434039)); - _206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1547267250)); - int num = ((!PrintMembers(stringBuilder)) ? 377403111 : 377403110); - while (true) - { - int num2 = num; - int num3 = 377403111; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 377403110; - break; - case 1: - _200B_206D_206F_200B_200B_206F_202D_206A_200C_202E_202B_200F_200D_200C_200F_202C_206E_202D_206F_200D_202A_202D_206B_200B_200B_200E_202C_202C_206E_202B_200C_206E_206D_202E_202C_200D_200D_206E_206E_206E_202E(stringBuilder, ' '); - num = 377403111; - break; - case 0: - _200B_206D_206F_200B_200B_206F_202D_206A_200C_202E_202B_200F_200D_200C_200F_202C_206E_202D_206F_200D_202A_202D_206B_200B_200B_200E_202C_202C_206E_202B_200C_206E_206D_202E_202C_200D_200D_206E_206E_206E_202E(stringBuilder, '}'); - return _206F_206A_202C_202C_206E_206D_202C_202C_200C_200C_200E_202B_206E_206E_202A_200D_206C_206D_206B_202C_202B_200B_200C_206F_206C_202D_200B_206C_202A_202C_202E_202E_206B_200B_200B_206D_206A_206B_200F_206E_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200D_206B_200F_200E_206C_202A_202A_200F_206F_200C_200C_202A_200B_202C_200D_202C_206E_202A_202D_202D_206E_200B_206C_200E_206D_202D_202D_206E_202C_206A_202E_200C_206A_200C_200E_206B_202B_206D_206B_202A_202E(); - _206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-1709044676)); - _206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(builder, TerritoryA.ToString()); - _206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(1792963311)); - _206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(builder, TerritoryB.ToString()); - _206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1559417746)); - _206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(builder, PositionA.ToString()); - _206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(900245019)); - _206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(builder, PositionB.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(ZoneBoundaryPositionOverride? other) - { - int num = (((object)this == other) ? 975251074 : 975251072); - while (true) - { - int num2 = num; - int num3 = 975251074; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryA, other.TerritoryA)) ? 975251073 : 975251077); - break; - case 7: - num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryB, other.TerritoryB)) ? 975251073 : 975251076); - break; - case 1: - num = ((!_202C_202A_200E_200C_206D_206A_206D_202C_206C_206A_200D_200C_202C_202B_202D_200E_202B_200D_202B_202C_202C_200C_200F_200B_202B_200C_202E_202D_202E_200E_200F_200F_202D_206B_206D_202C_206E_200E_206E_202A_202E(EqualityContract, other.EqualityContract)) ? 975251073 : 975251078); - break; - case 0: - return true; - case 2: - num = (((object)other == null) ? 975251073 : 975251075); - break; - case 5: - num = 975251072; - break; - case 8: - return EqualityComparer<Vector3>.Default.Equals(PositionB, other.PositionB); - case 3: - return false; - case 6: - num = ((!EqualityComparer<Vector3>.Default.Equals(PositionA, other.PositionA)) ? 975251073 : 975251082); - break; - } - } - } - - bool IEquatable<ZoneBoundaryPositionOverride>.Equals(ZoneBoundaryPositionOverride? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202A_206A_200B_206E_206E_206B_200B_206A_200E_200B_206B_206A_206C_206C_206D_200D_206E_200E_200D_200C_202E_200B_202E_202A_200B_200C_200E_200B_200F_202C_206E_200C_200C_202B_206C_206D_202A_200C_200E_200C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202A_202D_202A_206A_206F_206D_200B_206E_200C_206D_206A_200E_200F_200C_202B_202C_206A_206B_202A_206B_200B_206A_202D_206D_206A_206F_200D_202C_206B_206A_200D_200C_200C_206C_202D_200C_200B_200E_202C_202E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206C_206E_206B_206A_200E_200F_202A_200E_200D_200E_202A_200D_202D_200B_206D_200E_206A_200F_202B_202A_202D_206A_200B_206E_202C_206E_206A_206D_200E_200C_202B_202A_206F_200C_202E_206F_206E_206C_202B_206E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200B_206D_206F_200B_200B_206F_202D_206A_200C_202E_202B_200F_200D_200C_200F_202C_206E_202D_206F_200D_202A_202D_206B_200B_200B_200E_202C_202C_206E_202B_200C_206E_206D_202E_202C_200D_200D_206E_206E_206E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206F_206A_202C_202C_206E_206D_202C_202C_200C_200C_200E_202B_206E_206E_202A_200D_206C_206D_206B_202C_202B_200B_200C_206F_206C_202D_200B_206C_202A_202C_202E_202E_206B_200B_200B_206D_206A_206B_200F_206E_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200D_206B_200F_200E_206C_202A_202A_200F_206F_200C_200C_202A_200B_202C_200D_202C_206E_202A_202D_202D_206E_200B_206C_200E_206D_202D_202D_206E_202C_206A_202E_200C_206A_200C_200E_206B_202B_206D_206B_202A_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static bool _202C_202A_200E_200C_206D_206A_206D_202C_206C_206A_200D_200C_202C_202B_202D_200E_202B_200D_202B_202C_202C_200C_200F_200B_202B_200C_202E_202D_202E_200E_200F_200F_202D_206B_206D_202C_206E_200E_206E_202A_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +internal sealed record ZoneBoundaryPositionOverride(ushort TerritoryA, ushort TerritoryB, Vector3 PositionA, Vector3 PositionB); diff --git a/SmartNav/SmartNav.Data/ZoneSubRegionService.cs b/SmartNav/SmartNav.Data/ZoneSubRegionService.cs index 2a16d43..84ecdb9 100644 --- a/SmartNav/SmartNav.Data/ZoneSubRegionService.cs +++ b/SmartNav/SmartNav.Data/ZoneSubRegionService.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections; using System.Collections.Generic; -using System.IO; -using System.Runtime.CompilerServices; using Microsoft.Extensions.Logging; using SmartNav.Model.Navigation; @@ -14,30 +10,16 @@ public sealed class ZoneSubRegionService public IReadOnlyDictionary<uint, TerritorySubRegions> AllRegions => _regions; - [MethodImpl(MethodImplOptions.NoInlining)] public ZoneSubRegionService(SmartNavDataOptions dataOptions, ILogger<ZoneSubRegionService> logger) { - DirectoryInfo? devSourceDirectory = dataOptions.DevSourceDirectory; - IEnumerator<KeyValuePair<string, TerritorySubRegions>> enumerator = _206A_202C_202C_200B_206D_202D_200F_200F_200B_206E_200C_202B_200F_206E_206B_202E_202E_202C_200E_200E_206A_206D_202A_200C_200C_202D_206D_202E_200E_200C_206A_202E_200D_200F_202D_206A_206D_206F_200E_206C_202E((devSourceDirectory != null) ? _200D_202A_206E_200F_202A_206C_206B_206C_206E_206A_202C_206F_206B_202C_202E_206C_200C_200F_200F_200D_206A_206B_206F_206B_206D_202A_202E_200F_202C_206D_200B_206B_206A_200C_200F_202A_202A_200E_200C_202B_202E((FileSystemInfo)devSourceDirectory) : null).GetEnumerator(); - try + foreach (var (s, value) in AssemblyZoneSubRegionLoader.GetRegions(dataOptions.DevSourceDirectory?.FullName)) { - while (_206A_200B_200B_206A_202C_202D_202D_202D_206F_206A_200F_206C_206F_202A_200D_202E_200D_200F_200B_200F_206D_202C_200E_200D_200B_206E_206B_206E_200E_206D_202E_200D_202C_206C_206C_202B_206B_206B_206B_206D_202E((IEnumerator)enumerator)) + if (uint.TryParse(s, out var result)) { - var (s, value) = (KeyValuePair<string, TerritorySubRegions>)(ref enumerator.Current); - if (uint.TryParse(s, out var result)) - { - _regions[result] = value; - } + _regions[result] = value; } } - finally - { - if (enumerator != null) - { - _202E_202A_202C_202A_206F_202E_200B_206E_202D_206F_200D_202E_206D_202D_206A_206F_202B_200D_202C_202D_200D_200B_206A_200E_202C_206C_200D_202B_206D_202D_200D_202E_202A_202B_202A_206F_200D_206C_200E_206B_202E((IDisposable)enumerator); - } - } - _200E_202C_200B_200F_202C_200D_206B_200B_202A_206F_206B_202B_206F_200C_202E_200D_200B_202B_200C_206A_206D_206B_202A_202B_200C_200B_202D_206E_202D_202E_206E_206E_200B_200D_200F_200E_200E_206D_200E_200F_202E((ILogger)logger, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-1099723978), new object[1] { _regions.Count }); + logger.LogDebug("ZoneSubRegionService: {Count} territories with sub-regions loaded", _regions.Count); } public bool HasSubRegions(uint territoryId) @@ -45,155 +27,37 @@ public sealed class ZoneSubRegionService return _regions.ContainsKey(territoryId); } - [MethodImpl(MethodImplOptions.NoInlining)] public string? GetSubRegionId(uint territoryId, float x, float y, float z) { - int num = (_regions.TryGetValue(territoryId, out TerritorySubRegions value) ? 728841310 : 728841311); - SubRegionDefinition current = default(SubRegionDefinition); - while (true) + if (!_regions.TryGetValue(territoryId, out TerritorySubRegions value)) { - int num2 = num; - int num3 = 728841310; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0057; - case 1: - return null; - case 0: - { - using (List<SubRegionDefinition>.Enumerator enumerator = _206C_202E_200E_202E_206C_206D_206C_202E_202E_206A_200C_206F_206C_202A_202A_206A_200D_200F_206C_200D_202D_202B_206C_206F_200F_202D_206F_200E_202D_202E_202E_202D_202C_202E_202D_206E_200B_206B_202D_206A_202E(value).GetEnumerator()) - { - num = 607334794; - while (true) - { - int num5 = num; - num3 = 607334794; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 0: - num = (enumerator.MoveNext() ? 607334798 : 607334792); - break; - case 4: - current = enumerator.Current; - num = ((!_202E_200C_202A_206E_206C_202E_206F_202B_200F_202C_206E_202E_206D_200D_202B_200D_202C_206C_202B_206B_206A_202C_200D_200D_202B_202C_202D_200B_200C_200C_200D_202B_202B_202A_200F_206B_206F_206E_202D_202D_202E(current, x, y, z)) ? 607334794 : 607334795); - break; - case 3: - num = 607334794; - break; - case 1: - return _206D_200C_202E_206A_206F_200B_202D_202B_206D_206E_206E_200F_206C_206E_206E_200F_202D_206E_202E_206C_206E_202E_202B_202A_206E_206B_202C_202D_200E_202B_200F_206E_200B_202A_200C_206E_200C_202C_202B_200F_202E(current); - case 2: - goto end_IL_007d; - } - continue; - end_IL_007d: - break; - } - } - return global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-1484802432); - } - } - continue; - IL_0057: - num = 728841311; + return null; } + foreach (SubRegionDefinition subRegion in value.SubRegions) + { + if (subRegion.Contains(x, y, z)) + { + return subRegion.Id; + } + } + return "_default"; } public IReadOnlyList<SubRegionDefinition>? GetSubRegions(uint territoryId) { - TerritorySubRegions value; - int num = (_regions.TryGetValue(territoryId, out value) ? 1403983688 : 1403983691); - while (true) + if (!_regions.TryGetValue(territoryId, out TerritorySubRegions value)) { - int num2 = num; - int num3 = 1403983689; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004e; - case 2: - return null; - case 1: - return _206C_202E_200E_202E_206C_206D_206C_202E_202E_206A_200C_206F_206C_202A_202A_206A_200D_200F_206C_200D_202D_202B_206C_206F_200F_202D_206F_200E_202D_202E_202E_202D_202C_202E_202D_206E_200B_206B_202D_206A_202E(value); - } - continue; - IL_004e: - num = 1403983691; + return null; } + return value.SubRegions; } public IReadOnlyList<SubRegionConnector>? GetConnectors(uint territoryId) { - TerritorySubRegions value; - int num = (_regions.TryGetValue(territoryId, out value) ? 240767514 : 240767513); - while (true) + if (!_regions.TryGetValue(territoryId, out TerritorySubRegions value)) { - int num2 = num; - int num3 = 240767515; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004e; - case 1: - return _202B_202E_206A_206C_202D_200B_202B_206A_202E_200E_200C_206D_206D_200E_206C_206E_206D_200D_206F_206C_206D_202D_200E_206F_202E_202E_200E_200F_202A_202E_206D_202A_200F_202E_200D_202A_206A_202D_202A_206E_202E(value); - case 2: - return null; - } - continue; - IL_004e: - num = 240767513; + return null; } - } - - static string _200D_202A_206E_200F_202A_206C_206B_206C_206E_206A_202C_206F_206B_202C_202E_206C_200C_200F_200F_200D_206A_206B_206F_206B_206D_202A_202E_200F_202C_206D_200B_206B_206A_200C_200F_202A_202A_200E_200C_202B_202E(FileSystemInfo P_0) - { - return P_0.FullName; - } - - static IReadOnlyDictionary<string, TerritorySubRegions> _206A_202C_202C_200B_206D_202D_200F_200F_200B_206E_200C_202B_200F_206E_206B_202E_202E_202C_200E_200E_206A_206D_202A_200C_200C_202D_206D_202E_200E_200C_206A_202E_200D_200F_202D_206A_206D_206F_200E_206C_202E(string P_0) - { - return AssemblyZoneSubRegionLoader.GetRegions(P_0); - } - - static bool _206A_200B_200B_206A_202C_202D_202D_202D_206F_206A_200F_206C_206F_202A_200D_202E_200D_200F_200B_200F_206D_202C_200E_200D_200B_206E_206B_206E_200E_206D_202E_200D_202C_206C_206C_202B_206B_206B_206B_206D_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202E_202A_202C_202A_206F_202E_200B_206E_202D_206F_200D_202E_206D_202D_206A_206F_202B_200D_202C_202D_200D_200B_206A_200E_202C_206C_200D_202B_206D_202D_200D_202E_202A_202B_202A_206F_200D_206C_200E_206B_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static void _200E_202C_200B_200F_202C_200D_206B_200B_202A_206F_206B_202B_206F_200C_202E_200D_200B_202B_200C_206A_206D_206B_202A_202B_200C_200B_202D_206E_202D_202E_206E_206E_200B_200D_200F_200E_200E_206D_200E_200F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static List<SubRegionDefinition> _206C_202E_200E_202E_206C_206D_206C_202E_202E_206A_200C_206F_206C_202A_202A_206A_200D_200F_206C_200D_202D_202B_206C_206F_200F_202D_206F_200E_202D_202E_202E_202D_202C_202E_202D_206E_200B_206B_202D_206A_202E(TerritorySubRegions P_0) - { - return P_0.SubRegions; - } - - static bool _202E_200C_202A_206E_206C_202E_206F_202B_200F_202C_206E_202E_206D_200D_202B_200D_202C_206C_202B_206B_206A_202C_200D_200D_202B_202C_202D_200B_200C_200C_200D_202B_202B_202A_200F_206B_206F_206E_202D_202D_202E(SubRegionDefinition P_0, float P_1, float P_2, float P_3) - { - return P_0.Contains(P_1, P_2, P_3); - } - - static string _206D_200C_202E_206A_206F_200B_202D_202B_206D_206E_206E_200F_206C_206E_206E_200F_202D_206E_202E_206C_206E_202E_202B_202A_206E_206B_202C_202D_200E_202B_200F_206E_200B_202A_200C_206E_200C_202C_202B_200F_202E(SubRegionDefinition P_0) - { - return P_0.Id; - } - - static List<SubRegionConnector> _202B_202E_206A_206C_202D_200B_202B_206A_202E_200E_200C_206D_206D_200E_206C_206E_206D_200D_206F_206C_206D_202D_200E_206F_202E_202E_200E_200F_202A_202E_206D_202A_200F_202E_200D_202A_206A_202D_202A_206E_202E(TerritorySubRegions P_0) - { - return P_0.Connectors; + return value.Connectors; } } diff --git a/SmartNav/SmartNav.Graph/NavEdge.cs b/SmartNav/SmartNav.Graph/NavEdge.cs index d376300..8d9a283 100644 --- a/SmartNav/SmartNav.Graph/NavEdge.cs +++ b/SmartNav/SmartNav.Graph/NavEdge.cs @@ -1,156 +1,3 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; - namespace SmartNav.Graph; -public sealed record NavEdge(string FromNodeId, string ToNodeId, NavEdgeType EdgeType, float TimeCostSeconds, int GilCost) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206E_200D_200E_206F_200E_206D_206A_200E_206A_202E_202A_202C_206F_206D_200E_200E_202C_206F_200E_206C_202D_200F_206D_200E_206A_206F_202A_206F_202A_206D_202B_200D_206B_206E_200E_200C_206A_206D_200E_200D_202E(typeof(NavEdge).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202E_206C_206D_200D_200B_206C_200D_200B_200F_200E_202E_206B_206A_206A_206D_206C_200D_206B_206A_200F_202B_202E_200F_202E_202B_202C_206A_200E_200F_206E_202B_206A_200F_202E_206B_206C_200C_206D_206F_202B_202E(); - _202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(stringBuilder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-524076477)); - _202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-979564187)); - int num = ((!PrintMembers(stringBuilder)) ? 1302447791 : 1302447790); - while (true) - { - int num2 = num; - int num3 = 1302447791; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1302447790; - break; - case 0: - _206A_206F_202C_202A_200C_206B_202B_202A_206A_202E_202B_200C_202D_200D_202D_206E_206F_206D_200B_202C_200C_202D_206D_200E_202B_200C_200C_200F_202C_202C_206E_200C_206E_202A_202E_202D_206F_200C_202B_202E_202E(stringBuilder, '}'); - return _206F_202B_200C_200E_206F_206D_202A_200F_200C_202D_200E_206B_206E_200B_206B_206F_206E_200F_206E_206C_200D_206F_206F_206C_202A_200D_200C_206D_206E_200E_206E_202E_202D_206B_200C_206C_206A_202D_206F_206E_202E((object)stringBuilder); - case 1: - _206A_206F_202C_202A_200C_206B_202B_202A_206A_202E_202B_200C_202D_200D_202D_206E_206F_206D_200B_202C_200C_202D_206D_200E_202B_200C_200C_200F_202C_202C_206E_200C_206E_202A_202E_202D_206F_200C_202B_202E_202E(stringBuilder, ' '); - num = 1302447791; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200C_202C_206D_202B_202A_206C_206C_202A_200E_202B_206E_202D_202A_206B_202D_202D_206B_206A_202B_206F_206B_206A_206C_200C_202A_206B_206E_202A_206B_200C_200E_200C_206C_202A_202C_202C_200B_200C_200E_206B_202E(); - _202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-117326766)); - _200B_200F_200E_206A_206B_202A_206E_206C_200B_202B_206D_200B_202A_202C_206A_200B_206E_206A_200D_202B_206D_200E_206C_200D_200D_200E_206F_206B_206F_202B_206E_202D_206E_206B_206F_200E_200E_206D_206F_200C_202E(builder, (object)FromNodeId); - _202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(1889543298)); - _200B_200F_200E_206A_206B_202A_206E_206C_200B_202B_206D_200B_202A_202C_206A_200B_206E_206A_200D_202B_206D_200E_206C_200D_200D_200E_206F_206B_206F_202B_206E_202D_206E_206B_206F_200E_200E_206D_206F_200C_202E(builder, (object)ToNodeId); - _202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(323881500)); - _202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(builder, EdgeType.ToString()); - _202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(682092795)); - _202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(builder, TimeCostSeconds.ToString()); - _202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-492476942)); - _202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(builder, GilCost.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(NavEdge? other) - { - int num = (((object)this == other) ? 1316647872 : 1316647875); - while (true) - { - int num2 = num; - int num3 = 1316647876; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 8: - num = ((!EqualityComparer<string>.Default.Equals(ToNodeId, other.ToNodeId)) ? 1316647876 : 1316647877); - break; - case 7: - num = (((object)other == null) ? 1316647876 : 1316647874); - break; - case 5: - num = ((!EqualityComparer<string>.Default.Equals(FromNodeId, other.FromNodeId)) ? 1316647876 : 1316647884); - break; - case 6: - num = ((!_200F_206D_202D_206A_202D_202E_200C_200F_206F_200B_206A_202B_200C_202D_202A_206C_202B_202C_200D_202E_202B_200C_206A_206A_206A_200B_206C_202B_206C_200E_206D_206B_202E_200E_202A_200B_202C_206B_202B_202D_202E(EqualityContract, other.EqualityContract)) ? 1316647876 : 1316647873); - break; - case 1: - num = ((!EqualityComparer<NavEdgeType>.Default.Equals(EdgeType, other.EdgeType)) ? 1316647876 : 1316647885); - break; - case 4: - return true; - case 3: - return EqualityComparer<int>.Default.Equals(GilCost, other.GilCost); - case 9: - num = ((!EqualityComparer<float>.Default.Equals(TimeCostSeconds, other.TimeCostSeconds)) ? 1316647876 : 1316647879); - break; - case 2: - num = 1316647875; - break; - case 0: - return false; - } - } - } - - bool IEquatable<NavEdge>.Equals(NavEdge? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206E_200D_200E_206F_200E_206D_206A_200E_206A_202E_202A_202C_206F_206D_200E_200E_202C_206F_200E_206C_202D_200F_206D_200E_206A_206F_202A_206F_202A_206D_202B_200D_206B_206E_200E_200C_206A_206D_200E_200D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202E_206C_206D_200D_200B_206C_200D_200B_200F_200E_202E_206B_206A_206A_206D_206C_200D_206B_206A_200F_202B_202E_200F_202E_202B_202C_206A_200E_200F_206E_202B_206A_200F_202E_206B_206C_200C_206D_206F_202B_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202E_206F_202A_202D_200B_206F_206B_200F_202E_206E_206A_200F_200B_202A_206F_202B_206D_202E_202A_202B_202B_200E_206F_200B_202D_200B_200D_202B_200F_200E_200B_206B_206F_202D_206E_202B_200D_202E_200B_200C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206A_206F_202C_202A_200C_206B_202B_202A_206A_202E_202B_200C_202D_200D_202D_206E_206F_206D_200B_202C_200C_202D_206D_200E_202B_200C_200C_200F_202C_202C_206E_200C_206E_202A_202E_202D_206F_200C_202B_202E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206F_202B_200C_200E_206F_206D_202A_200F_200C_202D_200E_206B_206E_200B_206B_206F_206E_200F_206E_206C_200D_206F_206F_206C_202A_200D_200C_206D_206E_200E_206E_202E_202D_206B_200C_206C_206A_202D_206F_206E_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200C_202C_206D_202B_202A_206C_206C_202A_200E_202B_206E_202D_202A_206B_202D_202D_206B_206A_202B_206F_206B_206A_206C_200C_202A_206B_206E_202A_206B_200C_200E_200C_206C_202A_202C_202C_200B_200C_200E_206B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200B_200F_200E_206A_206B_202A_206E_206C_200B_202B_206D_200B_202A_202C_206A_200B_206E_206A_200D_202B_206D_200E_206C_200D_200D_200E_206F_206B_206F_202B_206E_202D_206E_206B_206F_200E_200E_206D_206F_200C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200F_206D_202D_206A_202D_202E_200C_200F_206F_200B_206A_202B_200C_202D_202A_206C_202B_202C_200D_202E_202B_200C_206A_206A_206A_200B_206C_202B_206C_200E_206D_206B_202E_200E_202A_200B_202C_206B_202B_202D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +public sealed record NavEdge(string FromNodeId, string ToNodeId, NavEdgeType EdgeType, float TimeCostSeconds, int GilCost); diff --git a/SmartNav/SmartNav.Graph/NavGraph.cs b/SmartNav/SmartNav.Graph/NavGraph.cs index 195ce98..fe2bfef 100644 --- a/SmartNav/SmartNav.Graph/NavGraph.cs +++ b/SmartNav/SmartNav.Graph/NavGraph.cs @@ -1,45 +1,10 @@ using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; namespace SmartNav.Graph; public sealed class NavGraph { - [CompilerGenerated] - private sealed class _003C_003Ec__DisplayClass11_0 - { - public NavEdge edge; - - internal bool _003CReplaceEdge_003Eb__0(NavEdge e) - { - int num = ((!_206D_200B_200F_202D_206A_206D_206E_202E_200C_202D_200B_206A_206D_200B_206B_200E_202B_202C_202C_202B_200F_206A_202A_202C_202C_200F_206D_202C_200F_206E_200B_200C_206B_202A_202A_206D_206C_200C_200B_206D_202E(e.ToNodeId, edge.ToNodeId)) ? 1864125654 : 1864125653); - while (true) - { - int num2 = num; - int num3 = 1864125655; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0056; - case 2: - return e.EdgeType == edge.EdgeType; - case 1: - return false; - } - continue; - IL_0056: - num = 1864125653; - } - } - - static bool _206D_200B_200F_202D_206A_206D_206E_202E_200C_202D_200B_206A_206D_200B_206B_200E_202B_202C_202C_202B_200F_206A_202A_202C_202C_200F_206D_202C_200F_206E_200B_200C_206B_202A_202A_206D_206C_200C_200B_206D_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - } - private readonly Dictionary<string, NavNode> _nodes = new Dictionary<string, NavNode>(); private readonly Dictionary<string, List<NavEdge>> _adjacency = new Dictionary<string, List<NavEdge>>(); @@ -59,34 +24,11 @@ public sealed class NavGraph get { int num = 0; - using Dictionary<string, List<NavEdge>>.ValueCollection.Enumerator enumerator = _adjacency.Values.GetEnumerator(); - int num2 = 165728447; - while (true) + foreach (List<NavEdge> value in _adjacency.Values) { - int num3 = num2; - int num4 = 165728444; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) - { - case 3: - num2 = (enumerator.MoveNext() ? 165728445 : 165728446); - break; - case 1: - { - List<NavEdge> current = enumerator.Current; - num += current.Count; - num2 = 165728447; - break; - } - case 0: - num2 = 165728447; - break; - case 2: - return num; - } + num += value.Count; } + return num; } } @@ -94,210 +36,71 @@ public sealed class NavGraph { bool num = !_nodes.ContainsKey(node.Id); _nodes[node.Id] = node; - int num2 = ((!num) ? (-2079391440) : (-2079391437)); - List<string> value = default(List<string>); - while (true) + if (num) { - int num3 = num2; - int num4 = -2079391439; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) + _adjacency[node.Id] = new List<NavEdge>(); + if (!_territoryIndex.TryGetValue(node.TerritoryId, out List<string> value)) { - case 0: - num2 = -2079391437; - break; - case 4: - value.Add(node.Id); - num2 = -2079391440; - break; - case 3: value = new List<string>(); _territoryIndex[node.TerritoryId] = value; - num2 = -2079391435; - break; - case 2: - _adjacency[node.Id] = new List<NavEdge>(); - num2 = (_territoryIndex.TryGetValue(node.TerritoryId, out value) ? (-2079391435) : (-2079391438)); - break; - case 1: - return; } + value.Add(node.Id); } } public void AddEdge(NavEdge edge) { - List<NavEdge> value; - int num = (_adjacency.TryGetValue(edge.FromNodeId, out value) ? (-2081875728) : (-2081875725)); - while (true) + if (!_adjacency.TryGetValue(edge.FromNodeId, out List<NavEdge> value)) { - int num2 = num; - int num3 = -2081875726; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -2081875725; - break; - case 2: - value.Add(edge); - return; - case 1: - value = new List<NavEdge>(); - _adjacency[edge.FromNodeId] = value; - num = -2081875728; - break; - } + value = new List<NavEdge>(); + _adjacency[edge.FromNodeId] = value; } + value.Add(edge); } public void ReplaceEdge(NavEdge edge) { - List<NavEdge> value; - int num = (_adjacency.TryGetValue(edge.FromNodeId, out value) ? (-1414739437) : (-1414739440)); - while (true) + if (!_adjacency.TryGetValue(edge.FromNodeId, out List<NavEdge> value)) { - int num2 = num; - int num3 = -1414739438; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - value.RemoveAll(delegate(NavEdge e) - { - int num5 = ((!_003C_003Ec__DisplayClass11_0._206D_200B_200F_202D_206A_206D_206E_202E_200C_202D_200B_206A_206D_200B_206B_200E_202B_202C_202C_202B_200F_206A_202A_202C_202C_200F_206D_202C_200F_206E_200B_200C_206B_202A_202A_206D_206C_200C_200B_206D_202E(e.ToNodeId, edge.ToNodeId)) ? 1864125654 : 1864125653); - while (true) - { - int num6 = num5; - int num7 = 1864125655; - int num8 = num6; - switch ((num8 | num7) - (num8 & num7)) - { - case 0: - goto IL_0056; - case 2: - return e.EdgeType == edge.EdgeType; - case 1: - return false; - } - continue; - IL_0056: - num5 = 1864125653; - } - }); - value.Add(edge); - return; - case 2: - value = new List<NavEdge>(); - _adjacency[edge.FromNodeId] = value; - num = -1414739437; - break; - case 0: - num = -1414739440; - break; - } + value = new List<NavEdge>(); + _adjacency[edge.FromNodeId] = value; } + value.RemoveAll((NavEdge e) => e.ToNodeId == edge.ToNodeId && e.EdgeType == edge.EdgeType); + value.Add(edge); } public void RemoveEdges(string fromNodeId, Predicate<NavEdge> predicate) { - List<NavEdge> value; - int num = ((!_adjacency.TryGetValue(fromNodeId, out value)) ? 1405127907 : 1405127904); - while (true) + if (_adjacency.TryGetValue(fromNodeId, out List<NavEdge> value)) { - int num2 = num; - int num3 = 1405127906; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1405127904; - break; - case 1: - return; - case 2: - value.RemoveAll(predicate); - num = 1405127907; - break; - } + value.RemoveAll(predicate); } } public NavNode? GetNode(string nodeId) { - NavNode value; - int num = (_nodes.TryGetValue(nodeId, out value) ? 640244294 : 640244295); - while (true) + if (!_nodes.TryGetValue(nodeId, out NavNode value)) { - int num2 = num; - int num3 = 640244294; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return value; - case 1: - return null; - case 2: - goto IL_0054; - } - continue; - IL_0054: - num = 640244295; + return null; } + return value; } public IReadOnlyList<NavEdge> GetEdges(string nodeId) { - List<NavEdge> value; - int num = (_adjacency.TryGetValue(nodeId, out value) ? 577743021 : 577743022); - while (true) + if (!_adjacency.TryGetValue(nodeId, out List<NavEdge> value)) { - int num2 = num; - int num3 = 577743023; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - return value; - case 1: - return new List<NavEdge>(); - case 0: - goto IL_0058; - } - continue; - IL_0058: - num = 577743022; + return new List<NavEdge>(); } + return value; } public IReadOnlyList<string> GetNodesInTerritory(uint territoryId) { - List<string> value; - int num = (_territoryIndex.TryGetValue(territoryId, out value) ? 111271957 : 111271958); - while (true) + if (!_territoryIndex.TryGetValue(territoryId, out List<string> value)) { - int num2 = num; - int num3 = 111271959; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_004e; - case 1: - return new List<string>(); - case 2: - return value; - } - continue; - IL_004e: - num = 111271958; + return new List<string>(); } + return value; } } diff --git a/SmartNav/SmartNav.Graph/NavNode.cs b/SmartNav/SmartNav.Graph/NavNode.cs index a77b5dc..d1d2787 100644 --- a/SmartNav/SmartNav.Graph/NavNode.cs +++ b/SmartNav/SmartNav.Graph/NavNode.cs @@ -1,8 +1,5 @@ -using System; -using System.Collections.Generic; using System.Numerics; using System.Runtime.CompilerServices; -using System.Text; using SmartNav.Model; using SmartNav.Model.Navigation; @@ -12,123 +9,14 @@ public abstract record NavNode(string Id, uint TerritoryId, Vector3 Position) { public sealed record AetheryteNode : NavNode { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _202E_200D_200B_202B_206E_202A_200E_200B_206E_206F_202C_202C_200E_206C_200D_200C_206F_206A_200B_200F_206D_200D_206B_202C_206D_206B_206B_202A_206A_200C_202E_200C_206D_206D_202D_202B_202A_200C_206C_200F_202E(typeof(AetheryteNode).TypeHandle); - } - } - public EAetheryteLocation Aetheryte { get; init; } public override string Label => Aetheryte.ToString(); - [MethodImpl(MethodImplOptions.NoInlining)] public AetheryteNode(EAetheryteLocation Aetheryte, uint TerritoryId, Vector3 Position) { this.Aetheryte = Aetheryte; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(10, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-980256187)); - defaultInterpolatedStringHandler.AppendFormatted((int)Aetheryte); - base._002Ector(defaultInterpolatedStringHandler.ToStringAndClear(), TerritoryId, Position); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202A_206A_200F_206A_202E_202B_206E_206D_200D_206D_206A_206A_200D_200C_202E_206A_200E_200D_202E_202B_202C_206D_206D_200B_200E_206A_202E_200D_200D_202C_206A_202C_206B_202A_202A_200C_202C_202A_200B_200D_202E(); - _206E_200F_206F_206F_202D_200E_206C_200C_202D_206D_206B_206D_206D_202A_202D_206B_202A_200B_200C_202A_200D_202C_202B_200D_202B_206C_200E_200F_206B_206B_202E_202B_206D_200F_206D_206F_200E_206E_206D_206F_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-1485406646)); - _206E_200F_206F_206F_202D_200E_206C_200C_202D_206D_206B_206D_206D_202A_202D_206B_202A_200B_200C_202A_200D_202C_202B_200D_202B_206C_200E_200F_206B_206B_202E_202B_206D_200F_206D_206F_200E_206E_206D_206F_202E(stringBuilder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1886515922)); - int num = ((!PrintMembers(stringBuilder)) ? (-1372731699) : (-1372731698)); - while (true) - { - int num2 = num; - int num3 = -1372731700; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _206D_200D_202D_202B_202D_206F_200E_206E_200E_206E_200F_202D_206B_202C_206B_200B_200D_206A_206B_202A_202C_206B_206B_206E_206D_200C_206E_200D_200B_200D_202B_200C_206B_202D_206B_202C_202B_202A_206C_202A_202E(stringBuilder, '}'); - return _202A_202E_206B_200D_200B_206B_202D_202A_206E_206C_202C_202E_206A_206F_202E_200B_206B_200D_206E_206F_206C_200F_206A_206F_200B_200F_202D_202B_206E_206E_206A_202C_200B_202A_206F_202B_200F_200D_206B_206C_202E((object)stringBuilder); - case 2: - _206D_200D_202D_202B_202D_206F_200E_206E_200E_206E_200F_202D_206B_202C_206B_200B_200D_206A_206B_202A_202C_206B_206B_206E_206D_200C_206E_200D_200B_200D_202B_200C_206B_202D_206B_202C_202B_202A_206C_202A_202E(stringBuilder, ' '); - num = -1372731699; - break; - case 0: - num = -1372731698; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? 1376880192 : 1376880195); - while (true) - { - int num2 = num; - int num3 = 1376880193; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1376880195; - break; - case 2: - _206E_200F_206F_206F_202D_200E_206C_200C_202D_206D_206B_206D_206D_202A_202D_206B_202A_200B_200C_202A_200D_202C_202B_200D_202B_206C_200E_200F_206B_206B_202E_202B_206D_200F_206D_206F_200E_206E_206D_206F_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1584690827)); - num = 1376880192; - break; - case 1: - _206E_200F_206F_206F_202D_200E_206C_200C_202D_206D_206B_206D_206D_202A_202D_206B_202A_200B_200C_202A_200D_202C_202B_200D_202B_206C_200E_200F_206B_206B_202E_202B_206D_200F_206D_206F_200E_206E_206D_206F_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1843848623)); - _206E_200F_206F_206F_202D_200E_206C_200C_202D_206D_206B_206D_206D_202A_202D_206B_202A_200B_200C_202A_200D_202C_202B_200D_202B_206C_200E_200F_206B_206B_202E_202B_206D_200F_206D_206F_200E_206E_206D_206F_202E(builder, Aetheryte.ToString()); - return true; - } - } - } - - [CompilerGenerated] - public bool Equals(AetheryteNode? other) - { - int num = (((object)this == other) ? 346069447 : 346069445); - while (true) - { - int num2 = num; - int num3 = 346069444; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = 346069445; - break; - case 2: - return false; - case 0: - return EqualityComparer<EAetheryteLocation>.Default.Equals(Aetheryte, other.Aetheryte); - case 3: - return true; - case 1: - num = ((!base.Equals(other)) ? 346069446 : 346069444); - break; - } - } - } - - bool IEquatable<AetheryteNode>.Equals(AetheryteNode? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); + base._002Ector($"aetheryte:{Aetheryte}", TerritoryId, Position); } [CompilerGenerated] @@ -138,163 +26,21 @@ public abstract record NavNode(string Id, uint TerritoryId, Vector3 Position) TerritoryId = base.TerritoryId; Position = base.Position; } - - static Type _202E_200D_200B_202B_206E_202A_200E_200B_206E_206F_202C_202C_200E_206C_200D_200C_206F_206A_200B_200F_206D_200D_206B_202C_206D_206B_206B_202A_206A_200C_202E_200C_206D_206D_202D_202B_202A_200C_206C_200F_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202A_206A_200F_206A_202E_202B_206E_206D_200D_206D_206A_206A_200D_200C_202E_206A_200E_200D_202E_202B_202C_206D_206D_200B_200E_206A_202E_200D_200D_202C_206A_202C_206B_202A_202A_200C_202C_202A_200B_200D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206E_200F_206F_206F_202D_200E_206C_200C_202D_206D_206B_206D_206D_202A_202D_206B_202A_200B_200C_202A_200D_202C_202B_200D_202B_206C_200E_200F_206B_206B_202E_202B_206D_200F_206D_206F_200E_206E_206D_206F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206D_200D_202D_202B_202D_206F_200E_206E_200E_206E_200F_202D_206B_202C_206B_200B_200D_206A_206B_202A_202C_206B_206B_206E_206D_200C_206E_200D_200B_200D_202B_200C_206B_202D_206B_202C_202B_202A_206C_202A_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202A_202E_206B_200D_200B_206B_202D_202A_206E_206C_202C_202E_206A_206F_202E_200B_206B_200D_206E_206F_206C_200F_206A_206F_200B_200F_202D_202B_206E_206E_206A_202C_200B_202A_206F_202B_200F_200D_206B_206C_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _206C_200E_200E_206F_206C_200D_200D_202A_206A_200D_202D_202A_202D_206B_200C_200E_200F_206A_206D_202D_200E_206B_202A_206D_202C_206A_202A_206C_200E_200E_202A_200D_200C_206F_206C_202C_202D_200C_202D_200C_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } } public sealed record AethernetNode : NavNode { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _206F_200B_202C_206C_206B_200E_202A_200C_202B_206F_200E_200B_200C_206B_206B_202D_202D_206C_200D_202D_206F_206B_206A_200C_200E_202D_200F_200E_202D_206B_206B_206C_200B_200F_200D_206C_200F_200B_200D_206C_202E(typeof(AethernetNode).TypeHandle); - } - } - public EAetheryteLocation Aethernet { get; init; } public EAetheryteLocation ParentAetheryte { get; init; } public override string Label => Aethernet.ToString(); - [MethodImpl(MethodImplOptions.NoInlining)] public AethernetNode(EAetheryteLocation Aethernet, uint TerritoryId, Vector3 Position, EAetheryteLocation ParentAetheryte) { this.Aethernet = Aethernet; this.ParentAetheryte = ParentAetheryte; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(10, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1430819075)); - defaultInterpolatedStringHandler.AppendFormatted((int)Aethernet); - base._002Ector(defaultInterpolatedStringHandler.ToStringAndClear(), TerritoryId, Position); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200F_206C_206A_202A_200F_200F_200F_206C_202D_200B_206F_206D_202C_202C_200B_202C_200E_200E_206E_202B_206C_202A_200D_202E_206B_206A_206E_200D_206C_200B_206A_206D_206F_200E_206C_202B_200D_202B_200E_202B_202E(); - _200D_200E_202E_206C_206A_200F_202D_202E_202D_200D_200E_200F_200F_202D_202B_202C_206C_206D_200D_206B_200D_202D_206E_206F_206D_200F_206F_200B_206E_206A_206C_200E_206F_206E_206F_206F_206D_200E_200E_206A_202E(stringBuilder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(645503319)); - _200D_200E_202E_206C_206A_200F_202D_202E_202D_200D_200E_200F_200F_202D_202B_202C_206C_206D_200D_206B_200D_202D_206E_206F_206D_200F_206F_200B_206E_206A_206C_200E_206F_206E_206F_206F_206D_200E_200E_206A_202E(stringBuilder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1886515922)); - int num = ((!PrintMembers(stringBuilder)) ? 1761676226 : 1761676225); - while (true) - { - int num2 = num; - int num3 = 1761676227; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _202C_206F_202C_206B_202C_202D_200D_202A_206B_206F_202A_200E_206C_202A_206B_206E_200F_200C_202A_206D_206D_202D_200B_202D_202E_202B_202A_200D_200B_202B_206C_200B_200C_202D_200D_200D_202B_200C_202B_206C_202E(stringBuilder, '}'); - return _202E_206C_206B_200C_200B_206E_200B_206E_206C_202D_200D_206D_206E_202B_206F_206A_206C_206D_202D_206C_206A_206A_206D_206D_206B_200D_206A_206D_202E_200F_202B_202D_206A_200F_202E_206C_206C_206B_206F_206B_202E((object)stringBuilder); - case 2: - _202C_206F_202C_206B_202C_202D_200D_202A_206B_206F_202A_200E_206C_202A_206B_206E_200F_200C_202A_206D_206D_202D_200B_202D_202E_202B_202A_200D_200B_202B_206C_200B_200C_202D_200D_200D_202B_200C_202B_206C_202E(stringBuilder, ' '); - num = 1761676226; - break; - case 0: - num = 1761676225; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? (-1711944682) : (-1711944683)); - while (true) - { - int num2 = num; - int num3 = -1711944681; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1711944683; - break; - case 2: - _200D_200E_202E_206C_206A_200F_202D_202E_202D_200D_200E_200F_200F_202D_202B_202C_206C_206D_200D_206B_200D_202D_206E_206F_206D_200F_206F_200B_206E_206A_206C_200E_206F_206E_206F_206F_206D_200E_200E_206A_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1735617534)); - num = -1711944682; - break; - case 1: - _200D_200E_202E_206C_206A_200F_202D_202E_202D_200D_200E_200F_200F_202D_202B_202C_206C_206D_200D_206B_200D_202D_206E_206F_206D_200F_206F_200B_206E_206A_206C_200E_206F_206E_206F_206F_206D_200E_200E_206A_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-1717054096)); - _200D_200E_202E_206C_206A_200F_202D_202E_202D_200D_200E_200F_200F_202D_202B_202C_206C_206D_200D_206B_200D_202D_206E_206F_206D_200F_206F_200B_206E_206A_206C_200E_206F_206E_206F_206F_206D_200E_200E_206A_202E(builder, Aethernet.ToString()); - _200D_200E_202E_206C_206A_200F_202D_202E_202D_200D_200E_200F_200F_202D_202B_202C_206C_206D_200D_206B_200D_202D_206E_206F_206D_200F_206F_200B_206E_206A_206C_200E_206F_206E_206F_206F_206D_200E_200E_206A_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-77039164)); - _200D_200E_202E_206C_206A_200F_202D_202E_202D_200D_200E_200F_200F_202D_202B_202C_206C_206D_200D_206B_200D_202D_206E_206F_206D_200F_206F_200B_206E_206A_206C_200E_206F_206E_206F_206F_206D_200E_200E_206A_202E(builder, ParentAetheryte.ToString()); - return true; - } - } - } - - [CompilerGenerated] - public bool Equals(AethernetNode? other) - { - int num = (((object)this == other) ? (-1733424681) : (-1733424685)); - while (true) - { - int num2 = num; - int num3 = -1733424686; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - return true; - case 2: - num = ((!EqualityComparer<EAetheryteLocation>.Default.Equals(Aethernet, other.Aethernet)) ? (-1733424686) : (-1733424687)); - break; - case 3: - return EqualityComparer<EAetheryteLocation>.Default.Equals(ParentAetheryte, other.ParentAetheryte); - case 1: - num = ((!base.Equals(other)) ? (-1733424686) : (-1733424688)); - break; - case 0: - return false; - case 4: - num = -1733424685; - break; - } - } - } - - bool IEquatable<AethernetNode>.Equals(AethernetNode? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); + base._002Ector($"aethernet:{Aethernet}", TerritoryId, Position); } [CompilerGenerated] @@ -305,50 +51,10 @@ public abstract record NavNode(string Id, uint TerritoryId, Vector3 Position) Position = base.Position; ParentAetheryte = this.ParentAetheryte; } - - static Type _206F_200B_202C_206C_206B_200E_202A_200C_202B_206F_200E_200B_200C_206B_206B_202D_202D_206C_200D_202D_206F_206B_206A_200C_200E_202D_200F_200E_202D_206B_206B_206C_200B_200F_200D_206C_200F_200B_200D_206C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200F_206C_206A_202A_200F_200F_200F_206C_202D_200B_206F_206D_202C_202C_200B_202C_200E_200E_206E_202B_206C_202A_200D_202E_206B_206A_206E_200D_206C_200B_206A_206D_206F_200E_206C_202B_200D_202B_200E_202B_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200D_200E_202E_206C_206A_200F_202D_202E_202D_200D_200E_200F_200F_202D_202B_202C_206C_206D_200D_206B_200D_202D_206E_206F_206D_200F_206F_200B_206E_206A_206C_200E_206F_206E_206F_206F_206D_200E_200E_206A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202C_206F_202C_206B_202C_202D_200D_202A_206B_206F_202A_200E_206C_202A_206B_206E_200F_200C_202A_206D_206D_202D_200B_202D_202E_202B_202A_200D_200B_202B_206C_200B_200C_202D_200D_200D_202B_200C_202B_206C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202E_206C_206B_200C_200B_206E_200B_206E_206C_202D_200D_206D_206E_202B_206F_206A_206C_206D_202D_206C_206A_206A_206D_206D_206B_200D_206A_206D_202E_200F_202B_202D_206A_200F_202E_206C_206C_206B_206F_206B_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _200E_200B_200D_200F_202C_206F_200F_202D_202A_206C_200E_200E_200B_200B_202C_200E_200C_202D_206E_206E_206E_200C_200C_206C_200B_202C_206E_202E_202A_200D_206E_202B_200B_206C_206B_206D_206F_202E_202E_202B_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } } public sealed record ZoneBoundaryNode : NavNode { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _200E_200C_206D_202A_200D_200D_200C_200E_202A_200C_200E_202A_202C_200B_202A_200F_200F_206C_206D_206B_202E_200B_206A_206D_206C_202C_200C_200C_200B_206A_206E_202B_206B_200D_206D_202A_202D_200E_206E_202E(typeof(ZoneBoundaryNode).TypeHandle); - } - } - public string BoundaryId { get; init; } public string PairedNodeId { get; init; } @@ -359,16 +65,8 @@ public abstract record NavNode(string Id, uint TerritoryId, Vector3 Position) public TriggerBox? Trigger { get; init; } - public override string Label - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return _202C_202B_206A_202D_206D_200F_202E_202C_206A_206A_202D_200F_200C_202D_200D_200E_202E_200B_202A_206E_202D_206B_206C_202E_200F_206F_202C_200E_202C_206B_206B_202D_200B_206C_202B_206A_200E_206E_202C_202B_202E(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1109447646), BoundaryId, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(998949340)); - } - } + public override string Label => "boundary (" + BoundaryId + ")"; - [MethodImpl(MethodImplOptions.NoInlining)] public ZoneBoundaryNode(string BoundaryId, uint TerritoryId, Vector3 Position, string PairedNodeId, bool RequiresFlying = false, uint? RequiredQuestId = null, TriggerBox? Trigger = null) { this.BoundaryId = BoundaryId; @@ -376,123 +74,7 @@ public abstract record NavNode(string Id, uint TerritoryId, Vector3 Position) this.RequiresFlying = RequiresFlying; this.RequiredQuestId = RequiredQuestId; this.Trigger = Trigger; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(10, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-699242314)); - defaultInterpolatedStringHandler.AppendFormatted(BoundaryId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-286212766)); - defaultInterpolatedStringHandler.AppendFormatted(TerritoryId); - base._002Ector(defaultInterpolatedStringHandler.ToStringAndClear(), TerritoryId, Position); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202E_206A_206B_206A_202B_206C_202A_202B_206E_206A_206C_206B_206F_200E_206C_206A_202D_202B_200E_206C_200F_200E_200D_200B_202A_200E_202A_200C_200E_200D_200E_200B_206B_202D_206E_206A_202C_200E_206D_200C_202E(); - _206E_206A_206C_200C_206D_206E_206C_202E_200B_200E_202D_202C_200E_206F_200D_200F_206C_200B_200B_202D_206D_206B_202D_206A_202D_206B_206F_202E_200B_206D_200D_206D_200F_206D_206A_200D_202D_200E_206A_206C_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(586794401)); - _206E_206A_206C_200C_206D_206E_206C_202E_200B_200E_202D_202C_200E_206F_200D_200F_206C_200B_200B_202D_206D_206B_202D_206A_202D_206B_206F_202E_200B_206D_200D_206D_200F_206D_206A_200D_202D_200E_206A_206C_202E(stringBuilder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1120247710)); - int num = ((!PrintMembers(stringBuilder)) ? 670681123 : 670681120); - while (true) - { - int num2 = num; - int num3 = 670681121; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 670681120; - break; - case 1: - _206D_200F_202D_202C_202D_202C_206C_202A_202E_206E_202C_202C_206D_206A_200D_206C_206E_200D_200E_206A_202B_200E_200B_202D_200C_206E_206C_200D_206E_202D_202D_200D_206E_206E_202B_202C_206F_202C_202A_200F_202E(stringBuilder, ' '); - num = 670681123; - break; - case 2: - _206D_200F_202D_202C_202D_202C_206C_202A_202E_206E_202C_202C_206D_206A_200D_206C_206E_200D_200E_206A_202B_200E_200B_202D_200C_206E_206C_200D_206E_202D_202D_200D_206E_206E_202B_202C_206F_202C_202A_200F_202E(stringBuilder, '}'); - return _206E_206F_200E_200C_202A_206D_202E_200C_202C_200D_206B_200D_206A_206B_200B_206E_200B_200C_206B_206C_202A_206A_206B_200B_202C_206F_206C_200E_200E_206B_202B_202C_200F_206D_200C_200E_200E_202C_202A_206B_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? 1187079342 : 1187079343); - while (true) - { - int num2 = num; - int num3 = 1187079342; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - _206E_206A_206C_200C_206D_206E_206C_202E_200B_200E_202D_202C_200E_206F_200D_200F_206C_200B_200B_202D_206D_206B_202D_206A_202D_206B_206F_202E_200B_206D_200D_206D_200F_206D_206A_200D_202D_200E_206A_206C_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-1310304385)); - _206A_202A_200B_206F_200B_202E_206C_200C_206B_200E_206E_206C_206B_206D_202C_200E_200B_206B_206E_206C_206A_206F_206E_202E_206C_200F_206E_206D_202A_206F_202B_206C_206A_202B_202B_200E_200F_202E_200C_202E(builder, (object)BoundaryId); - _206E_206A_206C_200C_206D_206E_206C_202E_200B_200E_202D_202C_200E_206F_200D_200F_206C_200B_200B_202D_206D_206B_202D_206A_202D_206B_206F_202E_200B_206D_200D_206D_200F_206D_206A_200D_202D_200E_206A_206C_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(404562551)); - _206A_202A_200B_206F_200B_202E_206C_200C_206B_200E_206E_206C_206B_206D_202C_200E_200B_206B_206E_206C_206A_206F_206E_202E_206C_200F_206E_206D_202A_206F_202B_206C_206A_202B_202B_200E_200F_202E_200C_202E(builder, (object)PairedNodeId); - _206E_206A_206C_200C_206D_206E_206C_202E_200B_200E_202D_202C_200E_206F_200D_200F_206C_200B_200B_202D_206D_206B_202D_206A_202D_206B_206F_202E_200B_206D_200D_206D_200F_206D_206A_200D_202D_200E_206A_206C_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-129640998)); - _206E_206A_206C_200C_206D_206E_206C_202E_200B_200E_202D_202C_200E_206F_200D_200F_206C_200B_200B_202D_206D_206B_202D_206A_202D_206B_206F_202E_200B_206D_200D_206D_200F_206D_206A_200D_202D_200E_206A_206C_202E(builder, RequiresFlying.ToString()); - _206E_206A_206C_200C_206D_206E_206C_202E_200B_200E_202D_202C_200E_206F_200D_200F_206C_200B_200B_202D_206D_206B_202D_206A_202D_206B_206F_202E_200B_206D_200D_206D_200F_206D_206A_200D_202D_200E_206A_206C_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-19022085)); - _206E_206A_206C_200C_206D_206E_206C_202E_200B_200E_202D_202C_200E_206F_200D_200F_206C_200B_200B_202D_206D_206B_202D_206A_202D_206B_206F_202E_200B_206D_200D_206D_200F_206D_206A_200D_202D_200E_206A_206C_202E(builder, RequiredQuestId.ToString()); - _206E_206A_206C_200C_206D_206E_206C_202E_200B_200E_202D_202C_200E_206F_200D_200F_206C_200B_200B_202D_206D_206B_202D_206A_202D_206B_206F_202E_200B_206D_200D_206D_200F_206D_206A_200D_202D_200E_206A_206C_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-1049678914)); - _206A_202A_200B_206F_200B_202E_206C_200C_206B_200E_206E_206C_206B_206D_202C_200E_200B_206B_206E_206C_206A_206F_206E_202E_206C_200F_206E_206D_202A_206F_202B_206C_206A_202B_202B_200E_200F_202E_200C_202E(builder, (object)Trigger); - return true; - case 1: - _206E_206A_206C_200C_206D_206E_206C_202E_200B_200E_202D_202C_200E_206F_200D_200F_206C_200B_200B_202D_206D_206B_202D_206A_202D_206B_206F_202E_200B_206D_200D_206D_200F_206D_206A_200D_202D_200E_206A_206C_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1735617534)); - num = 1187079342; - break; - case 2: - num = 1187079343; - break; - } - } - } - - [CompilerGenerated] - public bool Equals(ZoneBoundaryNode? other) - { - int num = (((object)this == other) ? 1762989533 : 1762989534); - while (true) - { - int num2 = num; - int num3 = 1762989531; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = ((!EqualityComparer<string>.Default.Equals(BoundaryId, other.BoundaryId)) ? 1762989532 : 1762989531); - break; - case 5: - num = ((!base.Equals(other)) ? 1762989532 : 1762989529); - break; - case 7: - return false; - case 8: - num = 1762989534; - break; - case 0: - num = ((!EqualityComparer<string>.Default.Equals(PairedNodeId, other.PairedNodeId)) ? 1762989532 : 1762989528); - break; - case 6: - return true; - case 1: - num = ((!EqualityComparer<uint?>.Default.Equals(RequiredQuestId, other.RequiredQuestId)) ? 1762989532 : 1762989535); - break; - case 3: - num = ((!EqualityComparer<bool>.Default.Equals(RequiresFlying, other.RequiresFlying)) ? 1762989532 : 1762989530); - break; - case 4: - return EqualityComparer<TriggerBox>.Default.Equals(Trigger, other.Trigger); - } - } - } - - bool IEquatable<ZoneBoundaryNode>.Equals(ZoneBoundaryNode? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); + base._002Ector($"boundary:{BoundaryId}:{TerritoryId}", TerritoryId, Position); } [CompilerGenerated] @@ -506,60 +88,10 @@ public abstract record NavNode(string Id, uint TerritoryId, Vector3 Position) RequiredQuestId = this.RequiredQuestId; Trigger = this.Trigger; } - - static Type _200E_200C_206D_202A_200D_200D_200C_200E_202A_200C_200E_202A_202C_200B_202A_200F_200F_206C_206D_206B_202E_200B_206A_206D_206C_202C_200C_200C_200B_206A_206E_202B_206B_200D_206D_202A_202D_200E_206E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static string _202C_202B_206A_202D_206D_200F_202E_202C_206A_206A_202D_200F_200C_202D_200D_200E_202E_200B_202A_206E_202D_206B_206C_202E_200F_206F_202C_200E_202C_206B_206B_202D_200B_206C_202B_206A_200E_206E_202C_202B_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static StringBuilder _202E_206A_206B_206A_202B_206C_202A_202B_206E_206A_206C_206B_206F_200E_206C_206A_202D_202B_200E_206C_200F_200E_200D_200B_202A_200E_202A_200C_200E_200D_200E_200B_206B_202D_206E_206A_202C_200E_206D_200C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206E_206A_206C_200C_206D_206E_206C_202E_200B_200E_202D_202C_200E_206F_200D_200F_206C_200B_200B_202D_206D_206B_202D_206A_202D_206B_206F_202E_200B_206D_200D_206D_200F_206D_206A_200D_202D_200E_206A_206C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206D_200F_202D_202C_202D_202C_206C_202A_202E_206E_202C_202C_206D_206A_200D_206C_206E_200D_200E_206A_202B_200E_200B_202D_200C_206E_206C_200D_206E_202D_202D_200D_206E_206E_202B_202C_206F_202C_202A_200F_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206E_206F_200E_200C_202A_206D_202E_200C_202C_200D_206B_200D_206A_206B_200B_206E_200B_200C_206B_206C_202A_206A_206B_200B_202C_206F_206C_200E_200E_206B_202B_202C_200F_206D_200C_200E_200E_202C_202A_206B_202E(object P_0) - { - return P_0.ToString(); - } - - static StringBuilder _206A_202A_200B_206F_200B_202E_206C_200C_206B_200E_206E_206C_206B_206D_202C_200E_200B_206B_206E_206C_206A_206F_206E_202E_206C_200F_206E_206D_202A_206F_202B_206C_206A_202B_202B_200E_200F_202E_200C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206D_200C_200C_206A_200B_200F_206F_202A_200B_206A_200C_202A_202A_206F_206A_200C_202C_202D_200C_206C_202A_202A_206D_200B_202C_202B_206F_200F_206A_200C_202D_202B_200C_200C_200C_206A_200B_202E_206F_202D_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } } public sealed record WarpNode : NavNode { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _202E_206D_200E_200E_206E_206F_200C_200D_200C_200E_200B_202E_200B_200E_206E_206D_200E_202A_202C_206A_200C_206E_200D_202D_200E_202C_206C_206E_200F_200B_206D_206B_206E_202B_200B_200F_200F_200D_206D_206C_202E(typeof(WarpNode).TypeHandle); - } - } - public uint WarpRowId { get; init; } public uint? NpcDataId { get; init; } @@ -574,19 +106,8 @@ public abstract record NavNode(string Id, uint TerritoryId, Vector3 Position) public bool RequireAllQuests { get; init; } - public override string Label - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(5, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-1730029279)); - defaultInterpolatedStringHandler.AppendFormatted(WarpRowId); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - } + public override string Label => $"warp {WarpRowId}"; - [MethodImpl(MethodImplOptions.NoInlining)] public WarpNode(uint WarpRowId, uint TerritoryId, Vector3 Position, uint? NpcDataId, uint[] RequiredQuestIds, int GilCost, uint[]? AvailableDuringMsqIds = null, ushort RequiredClassLevel = 0, bool RequireAllQuests = true) { this.WarpRowId = WarpRowId; @@ -596,145 +117,7 @@ public abstract record NavNode(string Id, uint TerritoryId, Vector3 Position) this.AvailableDuringMsqIds = AvailableDuringMsqIds; this.RequiredClassLevel = RequiredClassLevel; this.RequireAllQuests = RequireAllQuests; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(10, 6); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(1220390922)); - defaultInterpolatedStringHandler.AppendFormatted(WarpRowId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-286212766)); - defaultInterpolatedStringHandler.AppendFormatted(NpcDataId.GetValueOrDefault()); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(376013902)); - defaultInterpolatedStringHandler.AppendFormatted(TerritoryId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-136850898)); - defaultInterpolatedStringHandler.AppendFormatted(Position.X, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-640541805)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(376013902)); - defaultInterpolatedStringHandler.AppendFormatted(Position.Y, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(285114899)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-286212766)); - defaultInterpolatedStringHandler.AppendFormatted(Position.Z, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(285114899)); - base._002Ector(defaultInterpolatedStringHandler.ToStringAndClear(), TerritoryId, Position); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202B_202B_206C_206D_206D_200F_200E_206E_200E_200F_200C_206F_200E_206C_206B_200D_202B_202D_206A_202C_206F_206B_202B_206F_206F_202A_202B_206F_200C_200B_206F_206C_206C_206A_202A_202B_206D_200F_206B_202E_202E(); - _206B_206A_206A_206E_206E_200D_202E_202B_206F_200E_202D_206B_206C_206B_206B_202E_200C_200C_200C_200F_200E_206A_202E_206D_200C_206D_200D_200D_200D_200F_202A_202B_202A_200D_200C_206E_200C_200D_200E_206C_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(975218546)); - _206B_206A_206A_206E_206E_200D_202E_202B_206F_200E_202D_206B_206C_206B_206B_202E_200C_200C_200C_200F_200E_206A_202E_206D_200C_206D_200D_200D_200D_200F_202A_202B_202A_200D_200C_206E_200C_200D_200E_206C_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-169322018)); - int num = ((!PrintMembers(stringBuilder)) ? 233217275 : 233217272); - while (true) - { - int num2 = num; - int num3 = 233217273; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 233217272; - break; - case 2: - _206C_202E_206B_206F_200B_206D_200C_202E_200D_206E_200B_200C_202D_200B_206C_206D_200C_206C_206D_202A_200F_200C_206C_200C_202C_202B_206A_206F_200D_202D_202B_206E_206A_202C_200B_202B_202D_200F_206F_206D_202E(stringBuilder, '}'); - return _200F_206B_200E_206A_206A_200D_200E_200D_206C_200C_206E_202B_200B_202B_202B_200F_202A_206C_202E_202C_200F_200D_206C_206D_206A_202D_202C_206A_206F_206E_206E_202C_206B_206B_202D_202B_206C_206D_200F_202B_202E((object)stringBuilder); - case 1: - _206C_202E_206B_206F_200B_206D_200C_202E_200D_206E_200B_200C_202D_200B_206C_206D_200C_206C_206D_202A_200F_200C_206C_200C_202C_202B_206A_206F_200D_202D_202B_206E_206A_202C_200B_202B_202D_200F_206F_206D_202E(stringBuilder, ' '); - num = 233217275; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? (-1453356101) : (-1453356104)); - while (true) - { - int num2 = num; - int num3 = -1453356103; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - _206B_206A_206A_206E_206E_200D_202E_202B_206F_200E_202D_206B_206C_206B_206B_202E_200C_200C_200C_200F_200E_206A_202E_206D_200C_206D_200D_200D_200D_200F_202A_202B_202A_200D_200C_206E_200C_200D_200E_206C_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(1020632027)); - _206B_206A_206A_206E_206E_200D_202E_202B_206F_200E_202D_206B_206C_206B_206B_202E_200C_200C_200C_200F_200E_206A_202E_206D_200C_206D_200D_200D_200D_200F_202A_202B_202A_200D_200C_206E_200C_200D_200E_206C_202E(builder, WarpRowId.ToString()); - _206B_206A_206A_206E_206E_200D_202E_202B_206F_200E_202D_206B_206C_206B_206B_202E_200C_200C_200C_200F_200E_206A_202E_206D_200C_206D_200D_200D_200D_200F_202A_202B_202A_200D_200C_206E_200C_200D_200E_206C_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(554799412)); - _206B_206A_206A_206E_206E_200D_202E_202B_206F_200E_202D_206B_206C_206B_206B_202E_200C_200C_200C_200F_200E_206A_202E_206D_200C_206D_200D_200D_200D_200F_202A_202B_202A_200D_200C_206E_200C_200D_200E_206C_202E(builder, NpcDataId.ToString()); - _206B_206A_206A_206E_206E_200D_202E_202B_206F_200E_202D_206B_206C_206B_206B_202E_200C_200C_200C_200F_200E_206A_202E_206D_200C_206D_200D_200D_200D_200F_202A_202B_202A_200D_200C_206E_200C_200D_200E_206C_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-804506538)); - _200B_206C_206F_206A_202B_206E_202E_206B_200E_202B_202A_206A_200E_202D_202C_202E_200B_200F_200B_206A_200F_202A_200B_206E_202C_200B_200F_206D_206E_206E_200C_200C_200C_206B_202D_206B_206E_202E_200B_202D_202E(builder, (object)RequiredQuestIds); - _206B_206A_206A_206E_206E_200D_202E_202B_206F_200E_202D_206B_206C_206B_206B_202E_200C_200C_200C_200F_200E_206A_202E_206D_200C_206D_200D_200D_200D_200F_202A_202B_202A_200D_200C_206E_200C_200D_200E_206C_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(353108370)); - _206B_206A_206A_206E_206E_200D_202E_202B_206F_200E_202D_206B_206C_206B_206B_202E_200C_200C_200C_200F_200E_206A_202E_206D_200C_206D_200D_200D_200D_200F_202A_202B_202A_200D_200C_206E_200C_200D_200E_206C_202E(builder, GilCost.ToString()); - _206B_206A_206A_206E_206E_200D_202E_202B_206F_200E_202D_206B_206C_206B_206B_202E_200C_200C_200C_200F_200E_206A_202E_206D_200C_206D_200D_200D_200D_200F_202A_202B_202A_200D_200C_206E_200C_200D_200E_206C_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-822611509)); - _200B_206C_206F_206A_202B_206E_202E_206B_200E_202B_202A_206A_200E_202D_202C_202E_200B_200F_200B_206A_200F_202A_200B_206E_202C_200B_200F_206D_206E_206E_200C_200C_200C_206B_202D_206B_206E_202E_200B_202D_202E(builder, (object)AvailableDuringMsqIds); - _206B_206A_206A_206E_206E_200D_202E_202B_206F_200E_202D_206B_206C_206B_206B_202E_200C_200C_200C_200F_200E_206A_202E_206D_200C_206D_200D_200D_200D_200F_202A_202B_202A_200D_200C_206E_200C_200D_200E_206C_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1419894811)); - _206B_206A_206A_206E_206E_200D_202E_202B_206F_200E_202D_206B_206C_206B_206B_202E_200C_200C_200C_200F_200E_206A_202E_206D_200C_206D_200D_200D_200D_200F_202A_202B_202A_200D_200C_206E_200C_200D_200E_206C_202E(builder, RequiredClassLevel.ToString()); - _206B_206A_206A_206E_206E_200D_202E_202B_206F_200E_202D_206B_206C_206B_206B_202E_200C_200C_200C_200F_200E_206A_202E_206D_200C_206D_200D_200D_200D_200F_202A_202B_202A_200D_200C_206E_200C_200D_200E_206C_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-2077824329)); - _206B_206A_206A_206E_206E_200D_202E_202B_206F_200E_202D_206B_206C_206B_206B_202E_200C_200C_200C_200F_200E_206A_202E_206D_200C_206D_200D_200D_200D_200F_202A_202B_202A_200D_200C_206E_200C_200D_200E_206C_202E(builder, RequireAllQuests.ToString()); - return true; - case 1: - _206B_206A_206A_206E_206E_200D_202E_202B_206F_200E_202D_206B_206C_206B_206B_202E_200C_200C_200C_200F_200E_206A_202E_206D_200C_206D_200D_200D_200D_200F_202A_202B_202A_200D_200C_206E_200C_200D_200E_206C_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-1113468835)); - num = -1453356101; - break; - case 0: - num = -1453356104; - break; - } - } - } - - [CompilerGenerated] - public bool Equals(WarpNode? other) - { - int num = (((object)this == other) ? (-1614053652) : (-1614053664)); - while (true) - { - int num2 = num; - int num3 = -1614053654; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = -1614053664; - break; - case 5: - return false; - case 4: - num = ((!EqualityComparer<uint[]>.Default.Equals(RequiredQuestIds, other.RequiredQuestIds)) ? (-1614053649) : (-1614053654)); - break; - case 8: - num = ((!EqualityComparer<ushort>.Default.Equals(RequiredClassLevel, other.RequiredClassLevel)) ? (-1614053649) : (-1614053651)); - break; - case 10: - num = ((!base.Equals(other)) ? (-1614053649) : (-1614053656)); - break; - case 6: - return true; - case 1: - num = ((!EqualityComparer<uint[]>.Default.Equals(AvailableDuringMsqIds, other.AvailableDuringMsqIds)) ? (-1614053649) : (-1614053662)); - break; - case 2: - num = ((!EqualityComparer<uint>.Default.Equals(WarpRowId, other.WarpRowId)) ? (-1614053649) : (-1614053661)); - break; - case 0: - num = ((!EqualityComparer<int>.Default.Equals(GilCost, other.GilCost)) ? (-1614053649) : (-1614053653)); - break; - case 9: - num = ((!EqualityComparer<uint?>.Default.Equals(NpcDataId, other.NpcDataId)) ? (-1614053649) : (-1614053650)); - break; - case 7: - return EqualityComparer<bool>.Default.Equals(RequireAllQuests, other.RequireAllQuests); - } - } - } - - bool IEquatable<WarpNode>.Equals(WarpNode? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); + base._002Ector($"warp:{WarpRowId}:{NpcDataId.GetValueOrDefault()}:{TerritoryId}:{Position.X:F1}:{Position.Y:F1}:{Position.Z:F1}", TerritoryId, Position); } [CompilerGenerated] @@ -750,180 +133,21 @@ public abstract record NavNode(string Id, uint TerritoryId, Vector3 Position) RequiredClassLevel = this.RequiredClassLevel; RequireAllQuests = this.RequireAllQuests; } - - static Type _202E_206D_200E_200E_206E_206F_200C_200D_200C_200E_200B_202E_200B_200E_206E_206D_200E_202A_202C_206A_200C_206E_200D_202D_200E_202C_206C_206E_200F_200B_206D_206B_206E_202B_200B_200F_200F_200D_206D_206C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202B_202B_206C_206D_206D_200F_200E_206E_200E_200F_200C_206F_200E_206C_206B_200D_202B_202D_206A_202C_206F_206B_202B_206F_206F_202A_202B_206F_200C_200B_206F_206C_206C_206A_202A_202B_206D_200F_206B_202E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206B_206A_206A_206E_206E_200D_202E_202B_206F_200E_202D_206B_206C_206B_206B_202E_200C_200C_200C_200F_200E_206A_202E_206D_200C_206D_200D_200D_200D_200F_202A_202B_202A_200D_200C_206E_200C_200D_200E_206C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206C_202E_206B_206F_200B_206D_200C_202E_200D_206E_200B_200C_202D_200B_206C_206D_200C_206C_206D_202A_200F_200C_206C_200C_202C_202B_206A_206F_200D_202D_202B_206E_206A_202C_200B_202B_202D_200F_206F_206D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200F_206B_200E_206A_206A_200D_200E_200D_206C_200C_206E_202B_200B_202B_202B_200F_202A_206C_202E_202C_200F_200D_206C_206D_206A_202D_202C_206A_206F_206E_206E_202C_206B_206B_202D_202B_206C_206D_200F_202B_202E(object P_0) - { - return P_0.ToString(); - } - - static StringBuilder _200B_206C_206F_206A_202B_206E_202E_206B_200E_202B_202A_206A_200E_202D_202C_202E_200B_200F_200B_206A_200F_202A_200B_206E_202C_200B_200F_206D_206E_206E_200C_200C_200C_206B_202D_206B_206E_202E_200B_202D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206A_202A_206B_200E_200C_200F_202D_202A_200F_206B_200D_200E_200F_206D_202C_206E_200F_206C_206E_202A_206B_202E_200E_202D_202C_202C_202E_206B_202C_200B_206B_200D_206B_200D_200C_206D_202E_206E_206D_202D_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } } public sealed record ChocoboTaxiNode : NavNode { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _200C_202A_200C_202B_200C_206B_202B_206D_206B_206C_206E_202C_206B_200C_206A_206A_202D_206F_202C_202B_206B_206C_206B_202A_200C_206E_206B_206B_206A_202D_206A_206C_206A_200E_200E_202E_206E_200C_200D_202B_202E(typeof(ChocoboTaxiNode).TypeHandle); - } - } - public uint StandRowId { get; init; } public uint NpcDataId { get; init; } - public override string Label - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(5, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(944775830)); - defaultInterpolatedStringHandler.AppendFormatted(StandRowId); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - } + public override string Label => $"taxi {StandRowId}"; - [MethodImpl(MethodImplOptions.NoInlining)] public ChocoboTaxiNode(uint StandRowId, uint TerritoryId, Vector3 Position, uint NpcDataId) { this.StandRowId = StandRowId; this.NpcDataId = NpcDataId; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(6, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-1222129299)); - defaultInterpolatedStringHandler.AppendFormatted(StandRowId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(376013902)); - defaultInterpolatedStringHandler.AppendFormatted(TerritoryId); - base._002Ector(defaultInterpolatedStringHandler.ToStringAndClear(), TerritoryId, Position); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202B_202A_206A_202A_206A_206F_202A_202D_200F_206E_206E_202C_206C_206C_200C_206C_200C_200B_206D_206F_206B_200D_202E_202A_206A_200D_202D_202E_202D_202C_200B_200C_206F_206D_202B_200C_200B_202D_200E_206B_202E(); - _200B_202A_206B_206A_202D_200B_202E_206B_206F_200E_200E_202E_202D_200C_200D_200B_206B_206E_206F_206B_200C_206F_200B_206F_206D_206B_200D_200F_202B_206E_200D_200B_202C_202C_200F_206A_200E_202C_202A_206D_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(613920348)); - _200B_202A_206B_206A_202D_200B_202E_206B_206F_200E_200E_202E_202D_200C_200D_200B_206B_206E_206F_206B_200C_206F_200B_206F_206D_206B_200D_200F_202B_206E_200D_200B_202C_202C_200F_206A_200E_202C_202A_206D_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1547267250)); - int num = ((!PrintMembers(stringBuilder)) ? 590040144 : 590040147); - while (true) - { - int num2 = num; - int num3 = 590040145; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 590040147; - break; - case 2: - _202E_206F_202D_206D_200C_202E_206C_202E_202C_200C_206E_202E_200D_206D_202E_206C_202B_206B_206C_206C_200B_202C_206E_206D_202B_206B_206E_202E_202D_202B_202B_202B_206E_206F_206F_202B_200D_206F_202E_206E_202E(stringBuilder, ' '); - num = 590040144; - break; - case 1: - _202E_206F_202D_206D_200C_202E_206C_202E_202C_200C_206E_202E_200D_206D_202E_206C_202B_206B_206C_206C_200B_202C_206E_206D_202B_206B_206E_202E_202D_202B_202B_202B_206E_206F_206F_202B_200D_206F_202E_206E_202E(stringBuilder, '}'); - return _206D_200D_200C_200B_202D_202E_200E_202A_202E_206D_206F_202D_202B_200D_200F_200E_200F_206A_206D_206D_206B_200C_202D_202C_202D_200F_206E_206E_202D_200F_200D_200E_200D_200C_202C_200C_202A_202B_200D_202B_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? 973932099 : 973932096); - while (true) - { - int num2 = num; - int num3 = 973932097; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 973932096; - break; - case 1: - _200B_202A_206B_206A_202D_200B_202E_206B_206F_200E_200E_202E_202D_200C_200D_200B_206B_206E_206F_206B_200C_206F_200B_206F_206D_206B_200D_200F_202B_206E_200D_200B_202C_202C_200F_206A_200E_202C_202A_206D_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(520781629)); - num = 973932099; - break; - case 2: - _200B_202A_206B_206A_202D_200B_202E_206B_206F_200E_200E_202E_202D_200C_200D_200B_206B_206E_206F_206B_200C_206F_200B_206F_206D_206B_200D_200F_202B_206E_200D_200B_202C_202C_200F_206A_200E_202C_202A_206D_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1862745090)); - _200B_202A_206B_206A_202D_200B_202E_206B_206F_200E_200E_202E_202D_200C_200D_200B_206B_206E_206F_206B_200C_206F_200B_206F_206D_206B_200D_200F_202B_206E_200D_200B_202C_202C_200F_206A_200E_202C_202A_206D_202E(builder, StandRowId.ToString()); - _200B_202A_206B_206A_202D_200B_202E_206B_206F_200E_200E_202E_202D_200C_200D_200B_206B_206E_206F_206B_200C_206F_200B_206F_206D_206B_200D_200F_202B_206E_200D_200B_202C_202C_200F_206A_200E_202C_202A_206D_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(554799412)); - _200B_202A_206B_206A_202D_200B_202E_206B_206F_200E_200E_202E_202D_200C_200D_200B_206B_206E_206F_206B_200C_206F_200B_206F_206D_206B_200D_200F_202B_206E_200D_200B_202C_202C_200F_206A_200E_202C_202A_206D_202E(builder, NpcDataId.ToString()); - return true; - } - } - } - - [CompilerGenerated] - public bool Equals(ChocoboTaxiNode? other) - { - int num = (((object)this == other) ? (-659902032) : (-659902028)); - while (true) - { - int num2 = num; - int num3 = -659902027; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = ((!EqualityComparer<uint>.Default.Equals(StandRowId, other.StandRowId)) ? (-659902027) : (-659902025)); - break; - case 5: - return true; - case 4: - num = -659902028; - break; - case 1: - num = ((!base.Equals(other)) ? (-659902027) : (-659902026)); - break; - case 2: - return EqualityComparer<uint>.Default.Equals(NpcDataId, other.NpcDataId); - case 0: - return false; - } - } - } - - bool IEquatable<ChocoboTaxiNode>.Equals(ChocoboTaxiNode? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); + base._002Ector($"taxi:{StandRowId}:{TerritoryId}", TerritoryId, Position); } [CompilerGenerated] @@ -934,182 +158,24 @@ public abstract record NavNode(string Id, uint TerritoryId, Vector3 Position) Position = base.Position; NpcDataId = this.NpcDataId; } - - static Type _200C_202A_200C_202B_200C_206B_202B_206D_206B_206C_206E_202C_206B_200C_206A_206A_202D_206F_202C_202B_206B_206C_206B_202A_200C_206E_206B_206B_206A_202D_206A_206C_206A_200E_200E_202E_206E_200C_200D_202B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202B_202A_206A_202A_206A_206F_202A_202D_200F_206E_206E_202C_206C_206C_200C_206C_200C_200B_206D_206F_206B_200D_202E_202A_206A_200D_202D_202E_202D_202C_200B_200C_206F_206D_202B_200C_200B_202D_200E_206B_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200B_202A_206B_206A_202D_200B_202E_206B_206F_200E_200E_202E_202D_200C_200D_200B_206B_206E_206F_206B_200C_206F_200B_206F_206D_206B_200D_200F_202B_206E_200D_200B_202C_202C_200F_206A_200E_202C_202A_206D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202E_206F_202D_206D_200C_202E_206C_202E_202C_200C_206E_202E_200D_206D_202E_206C_202B_206B_206C_206C_200B_202C_206E_206D_202B_206B_206E_202E_202D_202B_202B_202B_206E_206F_206F_202B_200D_206F_202E_206E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206D_200D_200C_200B_202D_202E_200E_202A_202E_206D_206F_202D_202B_200D_200F_200E_200F_206A_206D_206D_206B_200C_202D_202C_202D_200F_206E_206E_202D_200F_200D_200E_200D_200C_202C_200C_202A_202B_200D_202B_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _200C_200B_200E_202B_206B_206E_206E_206A_200D_202C_206E_200C_202B_206E_202A_200F_202A_202D_206A_200D_202E_200E_206A_200F_202B_206F_202A_202D_200F_202E_200F_200D_200B_206D_200F_202A_202A_202D_200B_200F_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } } public sealed record SubRegionConnectorNode : NavNode { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _206C_202D_206E_200D_202C_200F_202B_202A_202D_200D_206D_206B_200B_206F_202D_206E_202A_200C_200D_202A_206C_200B_200E_202D_206F_202B_200C_202A_206D_202B_202A_202A_200B_202E_202E_202E_206D_200D_202E_202E_202E(typeof(SubRegionConnectorNode).TypeHandle); - } - } - public string SubRegionId { get; init; } public int ConnectorIndex { get; init; } public SubRegionConnectorKind Kind { get; init; } - public override string Label - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - return _202E_206E_206D_202C_200F_200F_206C_206D_200D_200B_200E_200D_206A_200E_200F_200C_200E_206F_206B_206A_200D_200F_200E_200E_206F_200C_206F_202E_200F_206D_202C_200E_200E_206E_202C_206A_202E_206E_206A_206D_202E(global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-1545521953), SubRegionId, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(998949340)); - } - } + public override string Label => "connector (" + SubRegionId + ")"; - [MethodImpl(MethodImplOptions.NoInlining)] public SubRegionConnectorNode(uint TerritoryId, Vector3 Position, string SubRegionId, int ConnectorIndex, SubRegionConnectorKind Kind = SubRegionConnectorKind.Pad) { this.SubRegionId = SubRegionId; this.ConnectorIndex = ConnectorIndex; this.Kind = Kind; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(12, 3); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(2126027042)); - defaultInterpolatedStringHandler.AppendFormatted(TerritoryId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(960996185)); - defaultInterpolatedStringHandler.AppendFormatted(ConnectorIndex); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-286212766)); - defaultInterpolatedStringHandler.AppendFormatted(SubRegionId); - base._002Ector(defaultInterpolatedStringHandler.ToStringAndClear(), TerritoryId, Position); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200E_200B_200B_206C_202C_200F_200D_200C_200C_202E_200F_200B_200C_206F_200B_200E_206D_200B_206C_206D_202E_202E_200C_206D_206B_206B_200F_200C_200E_206F_202C_206E_200E_206E_202A_200B_200E_206A_202D_202A_202E(); - _206F_206B_202B_206E_200E_202D_200D_206D_206C_202A_206E_200B_200F_200D_202B_206F_202B_206B_200B_202A_202B_200C_202E_206C_206F_206C_200D_202A_202E_202C_202D_202E_200C_206D_202C_200F_206C_202B_200D_202E_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(952806469)); - _206F_206B_202B_206E_200E_202D_200D_206D_206C_202A_206E_200B_200F_200D_202B_206F_202B_206B_200B_202A_202B_200C_202E_206C_206F_206C_200D_202A_202E_202C_202D_202E_200C_206D_202C_200F_206C_202B_200D_202E_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-979564187)); - int num = ((!PrintMembers(stringBuilder)) ? 1284783278 : 1284783277); - while (true) - { - int num2 = num; - int num3 = 1284783279; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _206A_200E_206A_202A_200C_206F_206C_206F_200B_200B_200E_200E_206C_202A_202A_206D_200C_202A_206E_202D_202E_206A_200F_206D_202C_202B_202D_200B_206C_200D_200F_206E_200F_202B_200E_206C_200D_200F_206A_202E(stringBuilder, '}'); - return _200E_200F_200F_206C_206A_206B_206C_202B_202C_200C_202C_200C_206B_206F_202A_206B_206D_202D_206B_200D_200C_200F_200F_200F_206D_202D_202B_206C_202E_206B_200C_200C_206A_206F_202C_206A_206F_200C_200B_202D_202E((object)stringBuilder); - case 2: - _206A_200E_206A_202A_200C_206F_206C_206F_200B_200B_200E_200E_206C_202A_202A_206D_200C_202A_206E_202D_202E_206A_200F_206D_202C_202B_202D_200B_206C_200D_200F_206E_200F_202B_200E_206C_200D_200F_206A_202E(stringBuilder, ' '); - num = 1284783278; - break; - case 0: - num = 1284783277; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? 950981017 : 950981018); - while (true) - { - int num2 = num; - int num3 = 950981019; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 950981018; - break; - case 2: - _206F_206B_202B_206E_200E_202D_200D_206D_206C_202A_206E_200B_200F_200D_202B_206F_202B_206B_200B_202A_202B_200C_202E_206C_206F_206C_200D_202A_202E_202C_202D_202E_200C_206D_202C_200F_206C_202B_200D_202E_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-1212839402)); - _206A_206D_206D_200F_206D_200B_200B_200D_200D_202D_202D_206E_200F_206A_206F_202C_206B_202D_206E_200E_202A_200D_202E_202B_206E_200C_200F_202A_206E_200C_200D_202E_206E_200B_200D_200B_206F_206C_202C_206D_202E(builder, (object)SubRegionId); - _206F_206B_202B_206E_200E_202D_200D_206D_206C_202A_206E_200B_200F_200D_202B_206F_202B_206B_200B_202A_202B_200C_202E_206C_206F_206C_200D_202A_202E_202C_202D_202E_200C_206D_202C_200F_206C_202B_200D_202E_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(719570479)); - _206F_206B_202B_206E_200E_202D_200D_206D_206C_202A_206E_200B_200F_200D_202B_206F_202B_206B_200B_202A_202B_200C_202E_206C_206F_206C_200D_202A_202E_202C_202D_202E_200C_206D_202C_200F_206C_202B_200D_202E_202E(builder, ConnectorIndex.ToString()); - _206F_206B_202B_206E_200E_202D_200D_206D_206C_202A_206E_200B_200F_200D_202B_206F_202B_206B_200B_202A_202B_200C_202E_206C_206F_206C_200D_202A_202E_202C_202D_202E_200C_206D_202C_200F_206C_202B_200D_202E_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-1170933717)); - _206F_206B_202B_206E_200E_202D_200D_206D_206C_202A_206E_200B_200F_200D_202B_206F_202B_206B_200B_202A_202B_200C_202E_206C_206F_206C_200D_202A_202E_202C_202D_202E_200C_206D_202C_200F_206C_202B_200D_202E_202E(builder, Kind.ToString()); - return true; - case 1: - _206F_206B_202B_206E_200E_202D_200D_206D_206C_202A_206E_200B_200F_200D_202B_206F_202B_206B_200B_202A_202B_200C_202E_206C_206F_206C_200D_202A_202E_202C_202D_202E_200C_206D_202C_200F_206C_202B_200D_202E_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1584690827)); - num = 950981017; - break; - } - } - } - - [CompilerGenerated] - public bool Equals(SubRegionConnectorNode? other) - { - int num = (((object)this == other) ? (-1558239083) : (-1558239087)); - while (true) - { - int num2 = num; - int num3 = -1558239085; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - return EqualityComparer<SubRegionConnectorKind>.Default.Equals(Kind, other.Kind); - case 2: - num = ((!base.Equals(other)) ? (-1558239085) : (-1558239081)); - break; - case 5: - num = ((!EqualityComparer<int>.Default.Equals(ConnectorIndex, other.ConnectorIndex)) ? (-1558239085) : (-1558239086)); - break; - case 4: - num = ((!EqualityComparer<string>.Default.Equals(SubRegionId, other.SubRegionId)) ? (-1558239085) : (-1558239082)); - break; - case 3: - num = -1558239087; - break; - case 0: - return false; - case 6: - return true; - } - } - } - - bool IEquatable<SubRegionConnectorNode>.Equals(SubRegionConnectorNode? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); + base._002Ector($"connector:{TerritoryId}:{ConnectorIndex}:{SubRegionId}", TerritoryId, Position); } [CompilerGenerated] @@ -1121,175 +187,18 @@ public abstract record NavNode(string Id, uint TerritoryId, Vector3 Position) ConnectorIndex = this.ConnectorIndex; Kind = this.Kind; } - - static Type _206C_202D_206E_200D_202C_200F_202B_202A_202D_200D_206D_206B_200B_206F_202D_206E_202A_200C_200D_202A_206C_200B_200E_202D_206F_202B_200C_202A_206D_202B_202A_202A_200B_202E_202E_202E_206D_200D_202E_202E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static string _202E_206E_206D_202C_200F_200F_206C_206D_200D_200B_200E_200D_206A_200E_200F_200C_200E_206F_206B_206A_200D_200F_200E_200E_206F_200C_206F_202E_200F_206D_202C_200E_200E_206E_202C_206A_202E_206E_206A_206D_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static StringBuilder _200E_200B_200B_206C_202C_200F_200D_200C_200C_202E_200F_200B_200C_206F_200B_200E_206D_200B_206C_206D_202E_202E_200C_206D_206B_206B_200F_200C_200E_206F_202C_206E_200E_206E_202A_200B_200E_206A_202D_202A_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206F_206B_202B_206E_200E_202D_200D_206D_206C_202A_206E_200B_200F_200D_202B_206F_202B_206B_200B_202A_202B_200C_202E_206C_206F_206C_200D_202A_202E_202C_202D_202E_200C_206D_202C_200F_206C_202B_200D_202E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206A_200E_206A_202A_200C_206F_206C_206F_200B_200B_200E_200E_206C_202A_202A_206D_200C_202A_206E_202D_202E_206A_200F_206D_202C_202B_202D_200B_206C_200D_200F_206E_200F_202B_200E_206C_200D_200F_206A_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200E_200F_200F_206C_206A_206B_206C_202B_202C_200C_202C_200C_206B_206F_202A_206B_206D_202D_206B_200D_200C_200F_200F_200F_206D_202D_202B_206C_202E_206B_200C_200C_206A_206F_202C_206A_206F_200C_200B_202D_202E(object P_0) - { - return P_0.ToString(); - } - - static StringBuilder _206A_206D_206D_200F_206D_200B_200B_200D_200D_202D_202D_206E_200F_206A_206F_202C_206B_202D_206E_200E_202A_200D_202E_202B_206E_200C_200F_202A_206E_200C_200D_202E_206E_200B_200D_200B_206F_206C_202C_206D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _200C_206F_202C_202C_206F_200C_206F_202E_206C_200F_206A_202E_202D_200B_206F_206F_200E_200F_200C_202C_202C_200E_206F_200F_206F_200C_202A_202C_202A_202B_206A_206A_206A_206A_200F_206A_206D_202A_206F_202D_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } } public sealed record TicketNode : NavNode { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _200D_206C_200B_202E_206A_200B_202C_202B_200D_202E_206F_200B_200F_206D_200F_200F_200C_202C_202D_206F_206C_206E_206A_206C_206B_200C_202D_206A_206F_202E_202B_202C_206A_200B_200D_200E_206E_206D_200B_206D_202E(typeof(TicketNode).TypeHandle); - } - } - public uint ItemId { get; init; } - public override string Label - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(7, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-563207380)); - defaultInterpolatedStringHandler.AppendFormatted(ItemId); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - } + public override string Label => $"ticket {ItemId}"; - [MethodImpl(MethodImplOptions.NoInlining)] public TicketNode(uint ItemId, uint TerritoryId, Vector3 Position) { this.ItemId = ItemId; - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(8, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1008041231)); - defaultInterpolatedStringHandler.AppendFormatted(ItemId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-968357598)); - defaultInterpolatedStringHandler.AppendFormatted(TerritoryId); - base._002Ector(defaultInterpolatedStringHandler.ToStringAndClear(), TerritoryId, Position); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202B_206E_206E_200D_202D_202C_200D_206F_202A_202B_206E_206E_202D_206D_202A_202B_200C_202A_206E_206A_200B_200E_202E_206B_206D_202D_202E_206C_202B_202B_202B_202A_202C_206E_202D_206E_202E_200E_206C_202C_202E(); - _206D_206C_206D_206E_202C_202B_202B_200C_206C_200B_206B_200E_200D_200E_206E_200C_206C_202D_206E_200B_206B_206F_206F_200D_206F_206B_200E_202E_206D_200C_202B_200C_200F_206B_206B_200C_206F_206F_206D_206D_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(1284211481)); - _206D_206C_206D_206E_202C_202B_202B_200C_206C_200B_206B_200E_200D_200E_206E_200C_206C_202D_206E_200B_206B_206F_206F_200D_206F_206B_200E_202E_206D_200C_202B_200C_200F_206B_206B_200C_206F_206F_206D_206D_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1547267250)); - int num = ((!PrintMembers(stringBuilder)) ? 1054078675 : 1054078672); - while (true) - { - int num2 = num; - int num3 = 1054078674; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1054078672; - break; - case 2: - _200B_206F_202D_206E_206E_200F_200E_202C_202D_202A_206A_206F_206E_206F_206C_202B_202C_202D_200C_202A_202B_200D_202E_206F_206E_206A_202E_206F_206C_200F_202A_200E_202E_206D_202C_206D_200B_206B_200F_200C_202E(stringBuilder, ' '); - num = 1054078675; - break; - case 1: - _200B_206F_202D_206E_206E_200F_200E_202C_202D_202A_206A_206F_206E_206F_206C_202B_202C_202D_200C_202A_202B_200D_202E_206F_206E_206A_202E_206F_206C_200F_202A_200E_202E_206D_202C_206D_200B_206B_200F_200C_202E(stringBuilder, '}'); - return _206A_206B_200B_206E_206C_202B_200F_206F_206A_200E_202B_206C_206E_200D_202A_206D_202D_206F_200D_202B_200B_206D_202E_206B_200F_200E_202C_200B_206F_202A_200B_206C_202A_202A_200C_200E_206C_200D_200F_206B_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? 342150993 : 342150992); - while (true) - { - int num2 = num; - int num3 = 342150993; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - _206D_206C_206D_206E_202C_202B_202B_200C_206C_200B_206B_200E_200D_200E_206E_200C_206C_202D_206E_200B_206B_206F_206F_200D_206F_206B_200E_202E_206D_200C_202B_200C_200F_206B_206B_200C_206F_206F_206D_206D_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(1694792627)); - _206D_206C_206D_206E_202C_202B_202B_200C_206C_200B_206B_200E_200D_200E_206E_200C_206C_202D_206E_200B_206B_206F_206F_200D_206F_206B_200E_202E_206D_200C_202B_200C_200F_206B_206B_200C_206F_206F_206D_206D_202E(builder, ItemId.ToString()); - return true; - case 1: - _206D_206C_206D_206E_202C_202B_202B_200C_206C_200B_206B_200E_200D_200E_206E_200C_206C_202D_206E_200B_206B_206F_206F_200D_206F_206B_200E_202E_206D_200C_202B_200C_200F_206B_206B_200C_206F_206F_206D_206D_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(520781629)); - num = 342150993; - break; - case 2: - num = 342150992; - break; - } - } - } - - [CompilerGenerated] - public bool Equals(TicketNode? other) - { - int num = (((object)this == other) ? (-184917179) : (-184917184)); - while (true) - { - int num2 = num; - int num3 = -184917183; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -184917184; - break; - case 1: - num = ((!base.Equals(other)) ? (-184917183) : (-184917182)); - break; - case 3: - return EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId); - case 0: - return false; - case 4: - return true; - } - } - } - - bool IEquatable<TicketNode>.Equals(TicketNode? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); + base._002Ector($"ticket:{ItemId}:{TerritoryId}", TerritoryId, Position); } [CompilerGenerated] @@ -1299,139 +208,15 @@ public abstract record NavNode(string Id, uint TerritoryId, Vector3 Position) TerritoryId = base.TerritoryId; Position = base.Position; } - - static Type _200D_206C_200B_202E_206A_200B_202C_202B_200D_202E_206F_200B_200F_206D_200F_200F_200C_202C_202D_206F_206C_206E_206A_206C_206B_200C_202D_206A_206F_202E_202B_202C_206A_200B_200D_200E_206E_206D_200B_206D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202B_206E_206E_200D_202D_202C_200D_206F_202A_202B_206E_206E_202D_206D_202A_202B_200C_202A_206E_206A_200B_200E_202E_206B_206D_202D_202E_206C_202B_202B_202B_202A_202C_206E_202D_206E_202E_200E_206C_202C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206D_206C_206D_206E_202C_202B_202B_200C_206C_200B_206B_200E_200D_200E_206E_200C_206C_202D_206E_200B_206B_206F_206F_200D_206F_206B_200E_202E_206D_200C_202B_200C_200F_206B_206B_200C_206F_206F_206D_206D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200B_206F_202D_206E_206E_200F_200E_202C_202D_202A_206A_206F_206E_206F_206C_202B_202C_202D_200C_202A_202B_200D_202E_206F_206E_206A_202E_206F_206C_200F_202A_200E_202E_206D_202C_206D_200B_206B_200F_200C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206A_206B_200B_206E_206C_202B_200F_206F_206A_200E_202B_206C_206E_200D_202A_206D_202D_206F_200D_202B_200B_206D_202E_206B_200F_200E_202C_200B_206F_202A_200B_206C_202A_202A_200C_200E_206C_200D_200F_206B_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _202C_206D_200B_202D_202D_200E_206C_202B_206E_200C_206B_202A_206A_206D_206D_200F_202C_200C_202A_202B_206B_206C_202D_200B_206E_206C_200E_200F_202A_206F_200F_206F_206D_200E_206F_202D_206E_202D_200C_200F_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } } public sealed record PositionNode : NavNode { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _206A_206C_206F_206D_206F_200F_202E_206F_200B_206D_202B_206E_200D_206E_206F_202E_206C_206E_200B_206A_200F_206C_202C_206E_200E_206C_202D_200D_202B_200D_200D_206F_200F_206F_206D_202B_200B_206E_206C_202B_202E(typeof(PositionNode).TypeHandle); - } - } + public override string Label => $"position ({base.Position.X:F0}, {base.Position.Z:F0})"; - public override string Label - { - [MethodImpl(MethodImplOptions.NoInlining)] - get - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(13, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-1142645933)); - defaultInterpolatedStringHandler.AppendFormatted(base.Position.X, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(362137046)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1789050939)); - defaultInterpolatedStringHandler.AppendFormatted(base.Position.Z, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(362137046)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-494077548)); - return defaultInterpolatedStringHandler.ToStringAndClear(); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] public PositionNode(uint TerritoryId, Vector3 Position) + : base($"pos:{TerritoryId}:{Position.X:F1}:{Position.Y:F1}:{Position.Z:F1}", TerritoryId, Position) { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(7, 4); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-2022016874)); - defaultInterpolatedStringHandler.AppendFormatted(TerritoryId); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-968357598)); - defaultInterpolatedStringHandler.AppendFormatted(Position.X, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-640541805)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-286212766)); - defaultInterpolatedStringHandler.AppendFormatted(Position.Y, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-640541805)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-136850898)); - defaultInterpolatedStringHandler.AppendFormatted(Position.Z, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(978384048)); - base._002Ector(defaultInterpolatedStringHandler.ToStringAndClear(), TerritoryId, Position); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200B_202C_202C_206A_200B_206C_206A_200C_200C_206E_202C_200C_200F_206E_200C_202D_202D_200C_202E_206C_200C_202A_200F_202C_200D_200D_200C_202D_202E_200B_200F_200D_206F_200D_202C_200B_202A_206E_202E_200C_202E(); - _202B_200D_200F_200D_200C_200D_206F_202D_206D_206A_206A_206D_200B_200B_202D_206F_206E_206E_202E_206B_200C_200D_206A_206A_206E_206E_200F_200C_206C_206C_200F_200E_206C_202A_202D_202A_206B_200C_200B_202A_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-1140203769)); - _202B_200D_200F_200D_200C_200D_206F_202D_206D_206A_206A_206D_200B_200B_202D_206F_206E_206E_202E_206B_200C_200D_206A_206A_206E_206E_200F_200C_206C_206C_200F_200E_206C_202A_202D_202A_206B_200C_200B_202A_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-979564187)); - int num = ((!PrintMembers(stringBuilder)) ? (-501789777) : (-501789780)); - while (true) - { - int num2 = num; - int num3 = -501789778; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -501789780; - break; - case 1: - _206B_200B_206B_200D_206F_206A_206A_202B_202E_200E_202C_202E_202A_206F_202C_200C_202D_200F_200F_206C_202E_200F_200C_206F_206C_200C_206F_200B_200E_206A_206C_206F_202E_202B_200E_206F_202C_206C_206C_200D_202E(stringBuilder, '}'); - return _206E_200E_206A_206B_202C_202E_200F_202A_206E_202C_206C_206E_200D_200C_206A_200C_202C_202A_206C_200D_200F_206F_206C_202A_202A_206E_206C_206F_202A_206A_206D_202D_200E_200F_200B_200F_202B_200D_202E_202D_202E((object)stringBuilder); - case 2: - _206B_200B_206B_200D_206F_206A_206A_202B_202E_200E_202C_202E_202A_206F_202C_200C_202D_200F_200F_206C_202E_200F_200C_206F_206C_200C_206F_200B_200E_206A_206C_206F_202E_202B_200E_206F_202C_206C_206C_200D_202E(stringBuilder, ' '); - num = -501789777; - break; - } - } - } - - [CompilerGenerated] - public bool Equals(PositionNode? other) - { - int num = (((object)this == other) ? (-1213911154) : (-1213911153)); - while (true) - { - int num2 = num; - int num3 = -1213911154; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0044; - case 1: - return base.Equals(other); - case 0: - return true; - } - continue; - IL_0044: - num = -1213911153; - } - } - - bool IEquatable<PositionNode>.Equals(PositionNode? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); } [CompilerGenerated] @@ -1440,176 +225,7 @@ public abstract record NavNode(string Id, uint TerritoryId, Vector3 Position) TerritoryId = base.TerritoryId; Position = base.Position; } - - static Type _206A_206C_206F_206D_206F_200F_202E_206F_200B_206D_202B_206E_200D_206E_206F_202E_206C_206E_200B_206A_200F_206C_202C_206E_200E_206C_202D_200D_202B_200D_200D_206F_200F_206F_206D_202B_200B_206E_206C_202B_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200B_202C_202C_206A_200B_206C_206A_200C_200C_206E_202C_200C_200F_206E_200C_202D_202D_200C_202E_206C_200C_202A_200F_202C_200D_200D_200C_202D_202E_200B_200F_200D_206F_200D_202C_200B_202A_206E_202E_200C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202B_200D_200F_200D_200C_200D_206F_202D_206D_206A_206A_206D_200B_200B_202D_206F_206E_206E_202E_206B_200C_200D_206A_206A_206E_206E_200F_200C_206C_206C_200F_200E_206C_202A_202D_202A_206B_200C_200B_202A_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206B_200B_206B_200D_206F_206A_206A_202B_202E_200E_202C_202E_202A_206F_202C_200C_202D_200F_200F_206C_202E_200F_200C_206F_206C_200C_206F_200B_200E_206A_206C_206F_202E_202B_200E_206F_202C_206C_206C_200D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206E_200E_206A_206B_202C_202E_200F_202A_206E_202C_206C_206E_200D_200C_206A_200C_202C_202A_206C_200D_200F_206F_206C_202A_202A_206E_206C_206F_202A_206A_206D_202D_200E_200F_200B_200F_202B_200D_202E_202D_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _202D_202A_202E_206C_200E_206A_200B_206B_206C_200C_200C_206C_206B_202C_200D_200E_206A_200B_206C_202A_200B_206B_200B_206F_206D_202C_200E_202A_206A_202A_206A_206D_200F_206F_200C_202C_202E_206A_202C_200C_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } - } - - [CompilerGenerated] - protected virtual Type EqualityContract - { - [CompilerGenerated] - get - { - return _200E_202D_206D_200D_206E_200D_206E_206E_202D_206C_200C_206A_206E_200C_202E_202E_202D_206D_200C_206D_206D_200F_200E_200B_200B_200D_206A_202C_206E_206C_202E_202D_202B_206C_206D_206E_202D_206C_206C_200F_202E(typeof(NavNode).TypeHandle); - } } public abstract string Label { get; } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206A_206B_206A_200C_206E_206E_202E_206F_206E_206D_206A_200B_202D_206D_200E_206C_206A_206B_200C_200E_200C_200D_206A_206A_200B_202A_206D_206D_200E_206C_206D_202A_200C_202C_202A_206A_206C_206D_202B_206C_202E(); - _200E_200F_200D_202B_202A_202B_202B_206E_206D_202D_206D_200B_200B_202D_206E_206B_206E_206B_206F_202B_200B_200F_200E_206E_200C_202D_200F_202A_200D_206E_202D_200B_200B_202D_206C_206D_206F_202B_200B_206D_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1771580269)); - _200E_200F_200D_202B_202A_202B_202B_206E_206D_202D_206D_200B_200B_202D_206E_206B_206E_206B_206F_202B_200B_200F_200E_206E_200C_202D_200F_202A_200D_206E_202D_200B_200B_202D_206C_206D_206F_202B_200B_206D_202E(stringBuilder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1886515922)); - int num = ((!PrintMembers(stringBuilder)) ? 1763600103 : 1763600100); - while (true) - { - int num2 = num; - int num3 = 1763600102; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 1763600100; - break; - case 1: - _206C_200B_200E_206B_206F_202A_200C_200E_206C_202A_200E_206B_200F_202C_206A_206E_200B_206D_200E_206D_200C_200C_200D_200C_202C_206F_200F_200B_206B_202E_202E_202B_206A_206B_200B_206B_206A_202E_200D_206A_202E(stringBuilder, '}'); - return _206C_206A_200C_202C_200C_206C_200E_202B_206A_200E_200D_206B_200B_202B_200F_206B_206C_206B_200F_206B_206E_200D_202C_206C_202A_202D_202E_200C_206F_200B_200F_200C_206F_206E_206C_200C_202C_206D_202B_200D_202E((object)stringBuilder); - case 2: - _206C_200B_200E_206B_206F_202A_200C_200E_206C_202A_200E_206B_200F_202C_206A_206E_200B_206D_200E_206D_200C_200C_200D_200C_202C_206F_200F_200B_206B_202E_202E_202B_206A_206B_200B_206B_206A_202E_200D_206A_202E(stringBuilder, ' '); - num = 1763600103; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected virtual bool PrintMembers(StringBuilder builder) - { - _206E_202C_202C_202E_206B_200D_200E_202E_206B_206B_202E_206A_202D_200C_206E_202A_206F_200F_202E_206C_206D_200C_202E_202C_200B_206C_200E_206A_206A_200C_200E_200B_206C_202B_202D_200D_200C_202C_202C_206C_202E(); - _200E_200F_200D_202B_202A_202B_202B_206E_206D_202D_206D_200B_200B_202D_206E_206B_206E_206B_206F_202B_200B_200F_200E_206E_200C_202D_200F_202A_200D_206E_202D_200B_200B_202D_206C_206D_206F_202B_200B_206D_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(1765352694)); - _202B_200D_206D_200F_206B_200D_202E_202B_202C_200D_206F_200E_206C_200B_202C_206B_202E_206D_206A_206C_202A_202C_200D_202D_202B_202D_200B_206B_200E_202A_200F_206B_206F_200B_202A_206A_202D_200C_206F_206B_202E(builder, (object)Id); - _200E_200F_200D_202B_202A_202B_202B_206E_206D_202D_206D_200B_200B_202D_206E_206B_206E_206B_206F_202B_200B_200F_200E_206E_200C_202D_200F_202A_200D_206E_202D_200B_200B_202D_206C_206D_206F_202B_200B_206D_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-1370916953)); - _200E_200F_200D_202B_202A_202B_202B_206E_206D_202D_206D_200B_200B_202D_206E_206B_206E_206B_206F_202B_200B_200F_200E_206E_200C_202D_200F_202A_200D_206E_202D_200B_200B_202D_206C_206D_206F_202B_200B_206D_202E(builder, TerritoryId.ToString()); - _200E_200F_200D_202B_202A_202B_202B_206E_206D_202D_206D_200B_200B_202D_206E_206B_206E_206B_206F_202B_200B_200F_200E_206E_200C_202D_200F_202A_200D_206E_202D_200B_200B_202D_206C_206D_206F_202B_200B_206D_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1811452076)); - _200E_200F_200D_202B_202A_202B_202B_206E_206D_202D_206D_200B_200B_202D_206E_206B_206E_206B_206F_202B_200B_200F_200E_206E_200C_202D_200F_202A_200D_206E_202D_200B_200B_202D_206C_206D_206F_202B_200B_206D_202E(builder, Position.ToString()); - _200E_200F_200D_202B_202A_202B_202B_206E_206D_202D_206D_200B_200B_202D_206E_206B_206E_206B_206F_202B_200B_200F_200E_206E_200C_202D_200F_202A_200D_206E_202D_200B_200B_202D_206C_206D_206F_202B_200B_206D_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-743080443)); - _202B_200D_206D_200F_206B_200D_202E_202B_202C_200D_206F_200E_206C_200B_202C_206B_202E_206D_206A_206C_202A_202C_200D_202D_202B_202D_200B_206B_200E_202A_200F_206B_206F_200B_202A_206A_202D_200C_206F_206B_202E(builder, (object)Label); - return true; - } - - [CompilerGenerated] - public virtual bool Equals(NavNode? other) - { - int num = (((object)this == other) ? 164514831 : 164514827); - while (true) - { - int num2 = num; - int num3 = 164514829; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 7: - num = ((!_202C_202B_206E_206A_202D_206E_202A_206A_206B_206F_200E_200D_200B_202A_202D_200F_200E_200F_202C_200E_206D_202E_200F_206B_206C_206E_200B_200F_200D_200D_200F_202A_202E_202C_202B_202D_202B_202B_202E(EqualityContract, other.EqualityContract)) ? 164514828 : 164514825); - break; - case 2: - return true; - case 3: - num = 164514827; - break; - case 0: - num = ((!EqualityComparer<uint>.Default.Equals(TerritoryId, other.TerritoryId)) ? 164514828 : 164514824); - break; - case 1: - return false; - case 4: - num = ((!EqualityComparer<string>.Default.Equals(Id, other.Id)) ? 164514828 : 164514829); - break; - case 6: - num = (((object)other == null) ? 164514828 : 164514826); - break; - case 5: - return EqualityComparer<Vector3>.Default.Equals(Position, other.Position); - } - } - } - - bool IEquatable<NavNode>.Equals(NavNode? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200E_202D_206D_200D_206E_200D_206E_206E_202D_206C_200C_206A_206E_200C_202E_202E_202D_206D_200C_206D_206D_200F_200E_200B_200B_200D_206A_202C_206E_206C_202E_202D_202B_206C_206D_206E_202D_206C_206C_200F_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206A_206B_206A_200C_206E_206E_202E_206F_206E_206D_206A_200B_202D_206D_200E_206C_206A_206B_200C_200E_200C_200D_206A_206A_200B_202A_206D_206D_200E_206C_206D_202A_200C_202C_202A_206A_206C_206D_202B_206C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200E_200F_200D_202B_202A_202B_202B_206E_206D_202D_206D_200B_200B_202D_206E_206B_206E_206B_206F_202B_200B_200F_200E_206E_200C_202D_200F_202A_200D_206E_202D_200B_200B_202D_206C_206D_206F_202B_200B_206D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206C_200B_200E_206B_206F_202A_200C_200E_206C_202A_200E_206B_200F_202C_206A_206E_200B_206D_200E_206D_200C_200C_200D_200C_202C_206F_200F_200B_206B_202E_202E_202B_206A_206B_200B_206B_206A_202E_200D_206A_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206C_206A_200C_202C_200C_206C_200E_202B_206A_200E_200D_206B_200B_202B_200F_206B_206C_206B_200F_206B_206E_200D_202C_206C_202A_202D_202E_200C_206F_200B_200F_200C_206F_206E_206C_200C_202C_206D_202B_200D_202E(object P_0) - { - return P_0.ToString(); - } - - static void _206E_202C_202C_202E_206B_200D_200E_202E_206B_206B_202E_206A_202D_200C_206E_202A_206F_200F_202E_206C_206D_200C_202E_202C_200B_206C_200E_206A_206A_200C_200E_200B_206C_202B_202D_200D_200C_202C_202C_206C_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _202B_200D_206D_200F_206B_200D_202E_202B_202C_200D_206F_200E_206C_200B_202C_206B_202E_206D_206A_206C_202A_202C_200D_202D_202B_202D_200B_206B_200E_202A_200F_206B_206F_200B_202A_206A_202D_200C_206F_206B_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _202C_202B_206E_206A_202D_206E_202A_206A_206B_206F_200E_200D_200B_202A_202D_200F_200E_200F_202C_200E_206D_202E_200F_206B_206C_206E_200B_200F_200D_200D_200F_202A_202E_202C_202B_202D_202B_202B_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } } diff --git a/SmartNav/SmartNav.csproj b/SmartNav/SmartNav.csproj index c50361d..1dbb74c 100644 --- a/SmartNav/SmartNav.csproj +++ b/SmartNav/SmartNav.csproj @@ -22,18 +22,18 @@ <Reference Include="Dalamud"> <HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\Dalamud.dll</HintPath> </Reference> + <Reference Include="FFXIVClientStructs"> + <HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\FFXIVClientStructs.dll</HintPath> + </Reference> + <Reference Include="Lumina"> + <HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\Lumina.dll</HintPath> + </Reference> <Reference Include="Lumina.Excel"> <HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\Lumina.Excel.dll</HintPath> </Reference> <Reference Include="LLib"> <HintPath>..\..\LLib.dll</HintPath> </Reference> - <Reference Include="Lumina"> - <HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\Lumina.dll</HintPath> - </Reference> - <Reference Include="FFXIVClientStructs"> - <HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\15.0.3.2\FFXIVClientStructs.dll</HintPath> - </Reference> <Reference Include="SmartNav.Data"> <HintPath>..\..\SmartNav.Data.dll</HintPath> </Reference> diff --git a/SmartNav/SmartNav/CostCalculator.cs b/SmartNav/SmartNav/CostCalculator.cs index fd77bd8..3f84671 100644 --- a/SmartNav/SmartNav/CostCalculator.cs +++ b/SmartNav/SmartNav/CostCalculator.cs @@ -8,50 +8,21 @@ public sealed class CostCalculator(ITerritoryInfo territoryInfo) { public float EstimateWithinZoneTravelTime(Vector3 from, Vector3 to, uint territoryId, PlayerNavState playerState) { - int num = (territoryInfo.CanUseMount(territoryId) ? (-1627784527) : (-1627784525)); - float num7 = default(float); - while (true) + if (!territoryInfo.CanUseMount(territoryId)) { - int num2 = num; - int num3 = -1627784522; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 8: - { - float num8 = _200D_202D_202A_202D_202B_206A_202A_202A_206F_200B_206C_206F_202A_206D_202C_206D_202A_206C_202C_202D_200E_202A_200D_206F_200B_200B_206F_206C_202E_206D_202D_206D_206E_200E_200C_206E_206E_206B_202C_202C_202E(playerState.GetMountSpeedLevel(territoryId)); - return num7 / num8 + 1f; - } - case 7: - num = ((!playerState.MountUnlocked) ? (-1627784528) : (-1627784521)); - break; - case 4: - num7 = Estimate2DDistance(from, to) * 1.3f; - num = (playerState.MountUnlocked ? (-1627784514) : (-1627784524)); - break; - case 1: - if (playerState.IsFlyingUnlocked(territoryId)) - { - num = -1627784523; - break; - } - goto case 6; - case 5: - return Estimate2DDistance(from, to) * 1.1f / 7.8f; - case 0: - num = -1627784525; - break; - case 2: - return num7 / 6f; - case 6: - num = -1627784526; - break; - case 3: - return Vector3.Distance(from, to) / 20f + 1f; - } + return Estimate2DDistance(from, to) * 1.1f / 7.8f; } + if (playerState.MountUnlocked && playerState.IsFlyingUnlocked(territoryId)) + { + return Vector3.Distance(from, to) / 20f + 1f; + } + float num = Estimate2DDistance(from, to) * 1.3f; + if (!playerState.MountUnlocked) + { + return num / 6f; + } + float mountGroundSpeed = MovementData.Speeds.GetMountGroundSpeed(playerState.GetMountSpeedLevel(territoryId)); + return num / mountGroundSpeed + 1f; } public static float EstimateTeleportTime() @@ -68,16 +39,6 @@ public sealed class CostCalculator(ITerritoryInfo territoryInfo) { float num = from.X - to.X; float num2 = from.Z - to.Z; - return _202B_202B_206C_206D_200B_206B_206C_202B_200B_206E_200E_200E_200F_206F_206C_200D_206C_206A_202E_202B_200E_206F_202B_202B_206E_200D_202A_202D_200E_202E_206A_200C_202E_200D_202E_206D_200B_200C_206D_202E_202E(num * num + num2 * num2); - } - - static float _200D_202D_202A_202D_202B_206A_202A_202A_206F_200B_206C_206F_202A_206D_202C_206D_202A_206C_202C_202D_200E_202A_200D_206F_200B_200B_206F_206C_202E_206D_202D_206D_206E_200E_200C_206E_206E_206B_202C_202C_202E(int P_0) - { - return MovementData.Speeds.GetMountGroundSpeed(P_0); - } - - static float _202B_202B_206C_206D_200B_206B_206C_202B_200B_206E_200E_200E_200F_206F_206C_200D_206C_206A_202E_202B_200E_206F_202B_202B_206E_200D_202A_202D_200E_202E_206A_200C_202E_200D_202E_206D_200B_200C_206D_202E_202E(float P_0) - { - return MathF.Sqrt(P_0); + return MathF.Sqrt(num * num + num2 * num2); } } diff --git a/SmartNav/SmartNav/NavGraphBuilder.cs b/SmartNav/SmartNav/NavGraphBuilder.cs index 8c57dfa..002c1ad 100644 --- a/SmartNav/SmartNav/NavGraphBuilder.cs +++ b/SmartNav/SmartNav/NavGraphBuilder.cs @@ -1,8 +1,5 @@ -using System; -using System.Collections; using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; using Microsoft.Extensions.Logging; using SmartNav.Data; using SmartNav.Graph; @@ -35,7 +32,6 @@ public sealed class NavGraphBuilder _logger = logger; } - [MethodImpl(MethodImplOptions.NoInlining)] public NavGraph Build() { NavGraph navGraph = new NavGraph(); @@ -44,990 +40,231 @@ public sealed class NavGraphBuilder AddZoneBoundaryNodes(navGraph); AddWarpNodes(navGraph); AddSubRegionConnectorNodes(navGraph); - _200D_206F_200E_200E_206F_202A_200E_206E_200F_202B_200B_206C_206E_200F_206C_202B_202B_200D_200F_206C_206A_202C_206D_206B_202C_206E_200E_202D_202C_200F_200E_206B_202B_206F_202D_202C_206B_202D_206A_202A_202E((ILogger)_logger, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(657022072), new object[2] { navGraph.NodeCount, navGraph.EdgeCount }); + _logger.LogDebug("NavGraph built: {NodeCount} nodes, {EdgeCount} edges", navGraph.NodeCount, navGraph.EdgeCount); return navGraph; } - [MethodImpl(MethodImplOptions.NoInlining)] private void AddAetheryteNodes(NavGraph graph) { - IEnumerator<KeyValuePair<EAetheryteLocation, Vector3>> enumerator = _aetheryteData.Locations.GetEnumerator(); - try + foreach (var (eAetheryteLocation2, position) in _aetheryteData.Locations) { - int num = 2034033446; - EAetheryteLocation eAetheryteLocation = default(EAetheryteLocation); - ushort value = default(ushort); - Vector3 position = default(Vector3); - while (true) + if (_aetheryteData.TerritoryIds.TryGetValue(eAetheryteLocation2, out var value)) { - int num2 = num; - int num3 = 2034033443; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (AetheryteConverter.IsLargeAetheryte(eAetheryteLocation2)) { - case 3: - num = 2034033446; - break; - case 6: - num = ((!_206E_202A_202A_200D_206E_200C_200B_206C_206F_202E_200C_206E_206A_206E_202A_206D_200C_202A_200D_202B_202B_206F_206C_206C_206C_200B_202C_202B_200B_206F_202A_202E_202C_202B_200D_202D_206E_202B_200E_202E(eAetheryteLocation)) ? 2034033443 : 2034033447); - break; - case 0: - { - EAetheryteLocation parentAetheryte = FindParentAetheryte(eAetheryteLocation); - graph.AddNode(new NavNode.AethernetNode(eAetheryteLocation, value, position, parentAetheryte)); - num = 2034033446; - break; + graph.AddNode(new NavNode.AetheryteNode(eAetheryteLocation2, value, position)); + continue; } - case 2: - { - enumerator.Current.Deconstruct(out var key, out var value2); - eAetheryteLocation = key; - position = value2; - num = ((!_aetheryteData.TerritoryIds.TryGetValue(eAetheryteLocation, out value)) ? 2034033446 : 2034033445); - break; - } - case 5: - num = (_206C_200C_206C_202E_200E_206A_200C_200F_206E_206B_200E_206C_206C_206F_202B_200C_206E_202B_200D_206F_202E_206E_200C_200B_200E_200E_202E_200C_202E_200B_202B_202D_206F_206F_206A_206D_206B_206B_206C_206F_202E((IEnumerator)enumerator) ? 2034033441 : 2034033442); - break; - case 4: - graph.AddNode(new NavNode.AetheryteNode(eAetheryteLocation, value, position)); - num = 2034033446; - break; - case 1: - goto end_IL_001d; - } - continue; - end_IL_001d: - break; + EAetheryteLocation parentAetheryte = FindParentAetheryte(eAetheryteLocation2); + graph.AddNode(new NavNode.AethernetNode(eAetheryteLocation2, value, position, parentAetheryte)); } } - finally - { - int num = ((enumerator == null) ? 1399376806 : 1399376805); - while (true) - { - int num7 = num; - int num3 = 1399376804; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1399376805; - break; - case 2: - goto end_IL_0159; - case 1: - _206C_206E_206D_200B_206E_202A_202B_200B_202B_202A_206B_200D_202B_202A_206E_202C_206A_206E_202A_200F_200D_200E_202D_206C_202D_206C_202E_200F_200E_200F_202C_200F_206A_200B_202A_206A_202E_206A_202D_206F_202E((IDisposable)enumerator); - num = 1399376806; - break; - } - continue; - end_IL_0159: - break; - } - } - _200D_206F_200E_200E_206F_202A_200E_206E_200F_202B_200B_206C_206E_200F_206C_202B_202B_200D_200F_206C_206A_202C_206D_206B_202C_206E_200E_202D_202C_200F_200E_206B_202B_206F_202D_202C_206B_202D_206A_202A_202E((ILogger)_logger, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-1881698), new object[1] { graph.NodeCount }); + _logger.LogDebug("Added {Count} aetheryte/aethernet nodes", graph.NodeCount); } private EAetheryteLocation FindParentAetheryte(EAetheryteLocation aethernet) { - int num = (_aetheryteData.AethernetGroups.TryGetValue(aethernet, out var value) ? (-326015895) : (-326015894)); - EAetheryteLocation eAetheryteLocation = default(EAetheryteLocation); - while (true) + if (!_aetheryteData.AethernetGroups.TryGetValue(aethernet, out var value)) { - int num2 = num; - int num3 = -326015896; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_005e; - case 2: - return EAetheryteLocation.None; - case 1: - { - IEnumerator<KeyValuePair<EAetheryteLocation, ushort>> enumerator = _aetheryteData.AethernetGroups.GetEnumerator(); - try - { - num = -719267663; - while (true) - { - int num7 = num; - num3 = -719267664; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 3: - num = ((!_206E_202A_202A_200D_206E_200C_200B_206C_206F_202E_200C_206E_206A_206E_202A_206D_200C_202A_200D_202B_202B_206F_206C_206C_206C_200B_202C_202B_200B_206F_202A_202E_202C_202B_200D_202D_206E_202B_200E_202E(eAetheryteLocation)) ? (-719267663) : (-719267662)); - break; - case 4: - { - enumerator.Current.Deconstruct(out var key, out var value2); - eAetheryteLocation = key; - num = ((value2 != value) ? (-719267663) : (-719267661)); - break; - } - case 0: - num = -719267663; - break; - case 2: - return eAetheryteLocation; - case 1: - num = (_206C_200C_206C_202E_200E_206A_200C_200F_206E_206B_200E_206C_206C_206F_202B_200C_206E_202B_200D_206F_202E_206E_200C_200B_200E_200E_202E_200C_202E_200B_202B_202D_206F_206F_206A_206D_206B_206B_206C_206F_202E((IEnumerator)enumerator) ? (-719267660) : (-719267659)); - break; - case 5: - goto end_IL_0089; - } - continue; - end_IL_0089: - break; - } - } - finally - { - num = ((enumerator == null) ? 1291922987 : 1291922984); - while (true) - { - int num10 = num; - num3 = 1291922985; - num4 = num10; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1291922984; - break; - case 1: - _206C_206E_206D_200B_206E_202A_202B_200B_202B_202A_206B_200D_202B_202A_206E_202C_206A_206E_202A_200F_200D_200E_202D_206C_202D_206C_202E_200F_200E_200F_202C_200F_206A_200B_202A_206A_202E_206A_202D_206F_202E((IDisposable)enumerator); - num = 1291922987; - break; - case 2: - goto end_IL_0181; - } - continue; - end_IL_0181: - break; - } - } - return EAetheryteLocation.None; - } - } - continue; - IL_005e: - num = -326015894; + return EAetheryteLocation.None; } + foreach (var (eAetheryteLocation2, num2) in _aetheryteData.AethernetGroups) + { + if (num2 == value && AetheryteConverter.IsLargeAetheryte(eAetheryteLocation2)) + { + return eAetheryteLocation2; + } + } + return EAetheryteLocation.None; } - [MethodImpl(MethodImplOptions.NoInlining)] private void AddAethernetEdges(NavGraph graph) { Dictionary<ushort, List<NavNode>> dictionary = new Dictionary<ushort, List<NavNode>>(); - IEnumerator<NavNode> enumerator = graph.Nodes.Values.GetEnumerator(); - try + foreach (NavNode value4 in graph.Nodes.Values) { - int num = -250279135; - List<NavNode> value2 = default(List<NavNode>); - ushort value = default(ushort); - NavNode current = default(NavNode); - NavNode.AetheryteNode aetheryteNode = default(NavNode.AetheryteNode); - NavNode.AethernetNode aethernetNode = default(NavNode.AethernetNode); - while (true) + ushort value = 0; + if (value4 is NavNode.AetheryteNode aetheryteNode) { - int num2 = num; - int num3 = -250279125; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + _aetheryteData.AethernetGroups.TryGetValue(aetheryteNode.Aetheryte, out value); + } + else if (value4 is NavNode.AethernetNode aethernetNode) + { + _aetheryteData.AethernetGroups.TryGetValue(aethernetNode.Aethernet, out value); + } + if (value != 0) + { + if (!dictionary.TryGetValue(value, out var value2)) { - case 0: value2 = (dictionary[value] = new List<NavNode>()); - num = -250279126; - break; - case 9: - current = enumerator.Current; - value = 0; - aetheryteNode = current as NavNode.AetheryteNode; - num = (((object)aetheryteNode == null) ? (-250279128) : (-250279133)); - break; - case 4: - num = (dictionary.TryGetValue(value, out value2) ? (-250279126) : (-250279125)); - break; - case 8: - _aetheryteData.AethernetGroups.TryGetValue(aetheryteNode.Aetheryte, out value); - num = -250279123; - break; - case 6: - num = ((value == 0) ? (-250279135) : (-250279121)); - break; - case 3: - aethernetNode = current as NavNode.AethernetNode; - num = (((object)aethernetNode == null) ? (-250279123) : (-250279124)); - break; - case 10: - num = (_206C_200C_206C_202E_200E_206A_200C_200F_206E_206B_200E_206C_206C_206F_202B_200C_206E_202B_200D_206F_202E_206E_200C_200B_200E_200E_202E_200C_202E_200B_202B_202D_206F_206F_206A_206D_206B_206B_206C_206F_202E((IEnumerator)enumerator) ? (-250279134) : (-250279127)); - break; - case 1: - value2.Add(current); - num = -250279135; - break; - case 5: - num = -250279135; - break; - case 7: - _aetheryteData.AethernetGroups.TryGetValue(aethernetNode.Aethernet, out value); - num = -250279123; - break; - case 2: - goto end_IL_0023; } - continue; - end_IL_0023: - break; + value2.Add(value4); } } - finally + int num = 0; + foreach (KeyValuePair<ushort, List<NavNode>> item in dictionary) { - int num = ((enumerator == null) ? (-924795166) : (-924795165)); - while (true) + item.Deconstruct(out var _, out var value3); + List<NavNode> list2 = value3; + for (int i = 0; i < list2.Count; i++) { - int num7 = num; - int num3 = -924795166; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) + for (int j = i + 1; j < list2.Count; j++) { - case 2: - num = -924795165; - break; - case 1: - _206C_206E_206D_200B_206E_202A_202B_200B_202B_202A_206B_200D_202B_202A_206E_202C_206A_206E_202A_200F_200D_200E_202D_206C_202D_206C_202E_200F_200E_200F_202C_200F_206A_200B_202A_206A_202E_206A_202D_206F_202E((IDisposable)enumerator); - num = -924795166; - break; - case 0: - goto end_IL_01de; + EAetheryteLocation? aethernetParticipant = GetAethernetParticipant(list2[i]); + if (aethernetParticipant.HasValue) + { + EAetheryteLocation valueOrDefault = aethernetParticipant.GetValueOrDefault(); + if (HasInteractableShard(valueOrDefault)) + { + graph.AddEdge(new NavEdge(list2[i].Id, list2[j].Id, NavEdgeType.AethernetHop, 0f, 0)); + num++; + } + } + aethernetParticipant = GetAethernetParticipant(list2[j]); + if (aethernetParticipant.HasValue) + { + EAetheryteLocation valueOrDefault2 = aethernetParticipant.GetValueOrDefault(); + if (HasInteractableShard(valueOrDefault2)) + { + graph.AddEdge(new NavEdge(list2[j].Id, list2[i].Id, NavEdgeType.AethernetHop, 0f, 0)); + num++; + } + } } - continue; - end_IL_01de: - break; } } - int num8 = 0; - using (Dictionary<ushort, List<NavNode>>.Enumerator enumerator2 = dictionary.GetEnumerator()) - { - int num = -381431416; - int num14 = default(int); - List<NavNode> list2 = default(List<NavNode>); - int num12 = default(int); - EAetheryteLocation? aethernetParticipant = default(EAetheryteLocation?); - while (true) - { - int num9 = num; - int num3 = -381431411; - int num4 = num9; - int num10 = num4 + num3; - int num11 = num4 & num3; - switch (num10 - (num11 + num11)) - { - case 12: - num = ((num14 < list2.Count) ? (-381431414) : (-381431415)); - break; - case 14: - { - int num17 = num12; - num3 = 1; - num4 = num17; - int num18 = num4 ^ num3; - int num19 = num4 & num3; - num14 = num18 + (num19 + num19); - num = -381431423; - break; - } - case 6: - { - EAetheryteLocation valueOrDefault2 = aethernetParticipant.GetValueOrDefault(); - num = ((!HasInteractableShard(valueOrDefault2)) ? (-381431419) : (-381431420)); - break; - } - case 2: - aethernetParticipant = GetAethernetParticipant(list2[num14]); - num = ((!aethernetParticipant.HasValue) ? (-381431419) : (-381431413)); - break; - case 5: - num = (enumerator2.MoveNext() ? (-381431417) : (-381431410)); - break; - case 11: - num = ((num12 < list2.Count) ? (-381431421) : (-381431416)); - break; - case 1: - { - graph.AddEdge(new NavEdge(list2[num12].Id, list2[num14].Id, NavEdgeType.AethernetHop, 0f, 0)); - int num24 = num8; - num3 = 1; - num4 = num24; - num8 = (num4 | num3) + (num4 & num3); - num = -381431409; - break; - } - case 4: - { - int num21 = num12; - num3 = 1; - num4 = num21; - int num22 = num4 ^ num3; - int num23 = num4 & num3; - num12 = num22 + (num23 + num23); - num = -381431418; - break; - } - case 0: - num = -381431416; - break; - case 9: - { - graph.AddEdge(new NavEdge(list2[num14].Id, list2[num12].Id, NavEdgeType.AethernetHop, 0f, 0)); - int num20 = num8; - num3 = 1; - num4 = num20; - num8 = (num4 | num3) + (num4 & num3); - num = -381431419; - break; - } - case 7: - aethernetParticipant = GetAethernetParticipant(list2[num12]); - num = ((!aethernetParticipant.HasValue) ? (-381431409) : (-381431424)); - break; - case 13: - { - EAetheryteLocation valueOrDefault = aethernetParticipant.GetValueOrDefault(); - num = ((!HasInteractableShard(valueOrDefault)) ? (-381431409) : (-381431412)); - break; - } - case 8: - { - int num13 = num14; - num3 = 1; - num4 = num13; - int num15 = num4 ^ num3; - int num16 = num4 & num3; - num14 = num15 + (num16 + num16); - num = -381431423; - break; - } - case 10: - { - enumerator2.Current.Deconstruct(out var _, out var value3); - list2 = value3; - num12 = 0; - num = -381431418; - break; - } - case 3: - goto end_IL_023f; - } - continue; - end_IL_023f: - break; - } - } - _200D_206F_200E_200E_206F_202A_200E_206E_200F_202B_200B_206C_206E_200F_206C_202B_202B_200D_200F_206C_206A_202C_206D_206B_202C_206E_200E_202D_202C_200F_200E_206B_202B_206F_202D_202C_206B_202D_206A_202A_202E((ILogger)_logger, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(387174688), new object[2] { num8, dictionary.Count }); + _logger.LogDebug("Added {Count} aethernet edges across {GroupCount} groups", num, dictionary.Count); } private static EAetheryteLocation? GetAethernetParticipant(NavNode node) { - NavNode.AetheryteNode aetheryteNode = node as NavNode.AetheryteNode; - int num = (((object)aetheryteNode != null) ? (-160602075) : (-160602078)); - NavNode.AethernetNode aethernetNode = default(NavNode.AethernetNode); - EAetheryteLocation? result = default(EAetheryteLocation?); - while (true) + if (!(node is NavNode.AetheryteNode aetheryteNode)) { - int num2 = num; - int num3 = -160602077; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + if (node is NavNode.AethernetNode aethernetNode) { - case 2: - num = -160602078; - break; - case 1: - aethernetNode = node as NavNode.AethernetNode; - num = (((object)aethernetNode != null) ? (-160602077) : (-160602074)); - break; - case 6: - result = aetheryteNode.Aetheryte; - num = -160602080; - break; - case 0: - result = aethernetNode.Aethernet; - num = -160602080; - break; - case 4: - result = null; - num = -160602080; - break; - case 3: - return result; - case 5: - num = -160602073; - break; + return aethernetNode.Aethernet; } + return null; } + return aetheryteNode.Aetheryte; } private bool HasInteractableShard(EAetheryteLocation aetheryte) { - int num = (_aetheryteData.IsCityAetheryte(aetheryte) ? (-621220771) : (-621220770)); - ushort value = default(ushort); - while (true) + if (_aetheryteData.IsCityAetheryte(aetheryte) || _aetheryteData.IsGoldSaucerAetheryte(aetheryte)) { - int num2 = num; - int num3 = -621220772; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = -621220770; - break; - case 5: - return value == 886; - case 0: - return false; - case 4: - num = ((!_aetheryteData.TerritoryIds.TryGetValue(aetheryte, out value)) ? (-621220772) : (-621220775)); - break; - case 1: - return true; - case 2: - num = ((!_aetheryteData.IsGoldSaucerAetheryte(aetheryte)) ? (-621220776) : (-621220771)); - break; - } + return true; } + if (_aetheryteData.TerritoryIds.TryGetValue(aetheryte, out var value)) + { + return value == 886; + } + return false; } - [MethodImpl(MethodImplOptions.NoInlining)] private void AddZoneBoundaryNodes(NavGraph graph) { IReadOnlyList<ZoneBoundary> boundaries = _boundarySource.GetBoundaries(); int num = 0; int num2 = 0; - IEnumerator<ZoneBoundary> enumerator = boundaries.GetEnumerator(); - try + foreach (ZoneBoundary item in boundaries) { - int num3 = -1183918559; - ZoneBoundary current = default(ZoneBoundary); - NavNode.ZoneBoundaryNode zoneBoundaryNode2 = default(NavNode.ZoneBoundaryNode); - NavNode.ZoneBoundaryNode zoneBoundaryNode = default(NavNode.ZoneBoundaryNode); - while (true) + if (item.Side1.TerritoryId == item.Side2.TerritoryId) { - int num4 = num3; - int num5 = -1183918557; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) - { - case 6: - num3 = -1183918559; - break; - case 2: - num3 = (_206C_200C_206C_202E_200E_206A_200C_200F_206E_206B_200E_206C_206C_206F_202B_200C_206E_202B_200D_206F_202E_206E_200C_200B_200E_200E_202E_200C_202E_200B_202B_202D_206F_206F_206A_206D_206B_206B_206C_206F_202E((IEnumerator)enumerator) ? (-1183918558) : (-1183918553)); - break; - case 1: - current = enumerator.Current; - num3 = ((_206D_206D_200E_202C_200F_202B_202B_206C_206A_200D_202D_202B_202A_202D_200D_202E_206D_206F_206F_200C_206C_200D_200F_200C_202E_200E_200D_206E_200D_202C_206F_206B_202E_206C_200F_206F_200C_200D_202B_202E_202E(_206A_206D_200D_200D_202D_206E_206E_200B_206D_206D_202E_200B_200C_206E_206C_200B_206A_200B_206A_200F_202A_200B_200E_200C_200B_206E_200E_200B_206B_202D_202D_200D_206C_200F_206D_200D_200C_206A_200F_202B_202E(current)) != _206D_206D_200E_202C_200F_202B_202B_206C_206A_200D_202D_202B_202A_202D_200D_202E_206D_206F_206F_200C_206C_200D_200F_200C_202E_200E_200D_206E_200D_202C_206F_206B_202E_206C_200F_206F_200C_200D_202B_202E_202E(_206E_202E_200D_206B_202E_202E_206C_206E_202E_206D_206B_202B_206E_202D_206F_202C_206E_202D_200C_202B_206A_202C_200F_200E_206A_200B_202D_200B_200C_206B_206B_206C_200C_202A_206A_202A_200E_200D_206C_200E_202E(current))) ? (-1183918560) : (-1183918554)); - break; - case 3: - { - string boundaryId = _206D_206B_206C_206B_206A_200B_200E_202D_206A_206E_206D_200D_200D_206F_206B_202C_202B_206D_206D_200C_202A_200E_202E_200C_202E_202C_206E_206A_206E_200D_200E_206E_202B_202C_200B_202E_200B_202E_206D_202E(current); - ushort territoryId = _206D_206D_200E_202C_200F_202B_202B_206C_206A_200D_202D_202B_202A_202D_200D_202E_206D_206F_206F_200C_206C_200D_200F_200C_202E_200E_200D_206E_200D_202C_206F_206B_202E_206C_200F_206F_200C_200D_202B_202E_202E(_206A_206D_200D_200D_202D_206E_206E_200B_206D_206D_202E_200B_200C_206E_206C_200B_206A_200B_206A_200F_202A_200B_200E_200C_200B_206E_200E_200B_206B_202D_202D_200D_206C_200F_206D_200D_200C_206A_200F_202B_202E(current)); - Vector3 position = _202C_206E_206A_202A_206C_200D_202A_206A_202E_200C_200D_202A_202C_206C_206B_206A_202A_200C_206E_206C_206F_200B_202E_200D_200C_206A_206C_206C_206D_202B_206B_202C_200E_202E_202A_206C_200B_200B_206D_206C_202E(_206A_206D_200D_200D_202D_206E_206E_200B_206D_206D_202E_200B_200C_206E_206C_200B_206A_200B_206A_200F_202A_200B_200E_200C_200B_206E_200E_200B_206B_202D_202D_200D_206C_200F_206D_200D_200C_206A_200F_202B_202E(current)); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(10, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(537411549)); - defaultInterpolatedStringHandler.AppendFormatted(_206D_206B_206C_206B_206A_200B_200E_202D_206A_206E_206D_200D_200D_206F_206B_202C_202B_206D_206D_200C_202A_200E_202E_200C_202E_202C_206E_206A_206E_200D_200E_206E_202B_202C_200B_202E_200B_202E_206D_202E(current)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-286212766)); - defaultInterpolatedStringHandler.AppendFormatted(_206D_206D_200E_202C_200F_202B_202B_206C_206A_200D_202D_202B_202A_202D_200D_202E_206D_206F_206F_200C_206C_200D_200F_200C_202E_200E_200D_206E_200D_202C_206F_206B_202E_206C_200F_206F_200C_200D_202B_202E_202E(_206E_202E_200D_206B_202E_202E_206C_206E_202E_206D_206B_202B_206E_202D_206F_202C_206E_202D_200C_202B_206A_202C_200F_200E_206A_200B_202D_200B_200C_206B_206B_206C_200C_202A_206A_202A_200E_200D_206C_200E_202E(current))); - zoneBoundaryNode2 = new NavNode.ZoneBoundaryNode(boundaryId, territoryId, position, defaultInterpolatedStringHandler.ToStringAndClear(), _206A_202B_200E_206C_206C_202C_206B_206A_206B_202B_200D_202B_206A_206D_200F_200C_202C_202D_206D_202E_202A_206F_200F_202A_200B_202D_200E_202B_200E_200B_206E_206A_206C_206A_202A_206D_200B_202A_202B_202B_202E(current), _200D_206B_206C_202C_200F_200E_200E_200D_202D_206F_206E_206A_202D_200F_202B_202C_206D_202C_202B_202D_202A_202B_202E_200D_206B_206F_206C_202B_202A_202A_206E_206B_200B_200C_202B_200F_200C_200D_200F_206F_202E(current), _202B_206E_202B_202E_200B_206F_200B_202B_202B_206D_202A_202A_200D_200C_202A_202D_200F_202B_206D_202D_202C_202B_206F_202D_202B_200D_200C_206F_206E_206C_206E_202B_200F_206B_206D_206D_206A_200B_200B_206A_202E(_206A_206D_200D_200D_202D_206E_206E_200B_206D_206D_202E_200B_200C_206E_206C_200B_206A_200B_206A_200F_202A_200B_200E_200C_200B_206E_200E_200B_206B_202D_202D_200D_206C_200F_206D_200D_200C_206A_200F_202B_202E(current))); - string boundaryId2 = _206D_206B_206C_206B_206A_200B_200E_202D_206A_206E_206D_200D_200D_206F_206B_202C_202B_206D_206D_200C_202A_200E_202E_200C_202E_202C_206E_206A_206E_200D_200E_206E_202B_202C_200B_202E_200B_202E_206D_202E(current); - ushort territoryId2 = _206D_206D_200E_202C_200F_202B_202B_206C_206A_200D_202D_202B_202A_202D_200D_202E_206D_206F_206F_200C_206C_200D_200F_200C_202E_200E_200D_206E_200D_202C_206F_206B_202E_206C_200F_206F_200C_200D_202B_202E_202E(_206E_202E_200D_206B_202E_202E_206C_206E_202E_206D_206B_202B_206E_202D_206F_202C_206E_202D_200C_202B_206A_202C_200F_200E_206A_200B_202D_200B_200C_206B_206B_206C_200C_202A_206A_202A_200E_200D_206C_200E_202E(current)); - Vector3 position2 = _202C_206E_206A_202A_206C_200D_202A_206A_202E_200C_200D_202A_202C_206C_206B_206A_202A_200C_206E_206C_206F_200B_202E_200D_200C_206A_206C_206C_206D_202B_206B_202C_200E_202E_202A_206C_200B_200B_206D_206C_202E(_206E_202E_200D_206B_202E_202E_206C_206E_202E_206D_206B_202B_206E_202D_206F_202C_206E_202D_200C_202B_206A_202C_200F_200E_206A_200B_202D_200B_200C_206B_206B_206C_200C_202A_206A_202A_200E_200D_206C_200E_202E(current)); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(10, 2); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-699242314)); - defaultInterpolatedStringHandler2.AppendFormatted(_206D_206B_206C_206B_206A_200B_200E_202D_206A_206E_206D_200D_200D_206F_206B_202C_202B_206D_206D_200C_202A_200E_202E_200C_202E_202C_206E_206A_206E_200D_200E_206E_202B_202C_200B_202E_200B_202E_206D_202E(current)); - defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-286212766)); - defaultInterpolatedStringHandler2.AppendFormatted(_206D_206D_200E_202C_200F_202B_202B_206C_206A_200D_202D_202B_202A_202D_200D_202E_206D_206F_206F_200C_206C_200D_200F_200C_202E_200E_200D_206E_200D_202C_206F_206B_202E_206C_200F_206F_200C_200D_202B_202E_202E(_206A_206D_200D_200D_202D_206E_206E_200B_206D_206D_202E_200B_200C_206E_206C_200B_206A_200B_206A_200F_202A_200B_200E_200C_200B_206E_200E_200B_206B_202D_202D_200D_206C_200F_206D_200D_200C_206A_200F_202B_202E(current))); - zoneBoundaryNode = new NavNode.ZoneBoundaryNode(boundaryId2, territoryId2, position2, defaultInterpolatedStringHandler2.ToStringAndClear(), _206A_202B_200E_206C_206C_202C_206B_206A_206B_202B_200D_202B_206A_206D_200F_200C_202C_202D_206D_202E_202A_206F_200F_202A_200B_202D_200E_202B_200E_200B_206E_206A_206C_206A_202A_206D_200B_202A_202B_202B_202E(current), _200D_206B_206C_202C_200F_200E_200E_200D_202D_206F_206E_206A_202D_200F_202B_202C_206D_202C_202B_202D_202A_202B_202E_200D_206B_206F_206C_202B_202A_202A_206E_206B_200B_200C_202B_200F_200C_200D_200F_206F_202E(current), _202B_206E_202B_202E_200B_206F_200B_202B_202B_206D_202A_202A_200D_200C_202A_202D_200F_202B_206D_202D_202C_202B_206F_202D_202B_200D_200C_206F_206E_206C_206E_202B_200F_206B_206D_206D_206A_200B_200B_206A_202E(_206E_202E_200D_206B_202E_202E_206C_206E_202E_206D_206B_202B_206E_202D_206F_202C_206E_202D_200C_202B_206A_202C_200F_200E_206A_200B_202D_200B_200C_206B_206B_206C_200C_202A_206A_202A_200E_200D_206C_200E_202E(current))); - graph.AddNode(zoneBoundaryNode2); - graph.AddNode(zoneBoundaryNode); - int num10 = num; - num5 = 2; - num6 = num10; - int num11 = num6 ^ num5; - int num12 = num6 & num5; - num = num11 + (num12 + num12); - graph.AddEdge(new NavEdge(zoneBoundaryNode2.Id, zoneBoundaryNode.Id, NavEdgeType.ZoneBoundary, 2f, 0)); - int num13 = num2; - num5 = 1; - num6 = num13; - int num14 = num6 ^ num5; - int num15 = num6 & num5; - num2 = num14 + (num15 + num15); - num3 = (_200D_202E_200B_200C_202E_206B_200D_202C_202C_200D_202C_202D_200B_206A_200E_206F_206E_206D_200D_202B_200D_206A_206A_200F_200F_206A_206A_206E_202E_206B_200E_202B_202D_206C_206A_202E_202C_200E_206F_200F_202E(current) ? (-1183918559) : (-1183918557)); - break; - } - case 0: - { - graph.AddEdge(new NavEdge(zoneBoundaryNode.Id, zoneBoundaryNode2.Id, NavEdgeType.ZoneBoundary, 2f, 0)); - int num9 = num2; - num5 = 1; - num6 = num9; - num2 = (num6 | num5) + (num6 & num5); - num3 = -1183918559; - break; - } - case 5: - _206F_200E_206A_202C_206D_200D_206C_200E_200E_202A_206E_206E_200F_206D_200E_200C_202B_200F_202C_206A_206F_206C_200F_200E_206A_206D_200D_206B_202A_206F_202D_200F_202C_206D_206C_202C_206A_202C_200C_206F_202E((ILogger)_logger, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-568839808), new object[2] - { - _206D_206B_206C_206B_206A_200B_200E_202D_206A_206E_206D_200D_200D_206F_206B_202C_202B_206D_206D_200C_202A_200E_202E_200C_202E_202C_206E_206A_206E_200D_200E_206E_202B_202C_200B_202E_200B_202E_206D_202E(current), - _206D_206D_200E_202C_200F_202B_202B_206C_206A_200D_202D_202B_202A_202D_200D_202E_206D_206F_206F_200C_206C_200D_200F_200C_202E_200E_200D_206E_200D_202C_206F_206B_202E_206C_200F_206F_200C_200D_202B_202E_202E(_206A_206D_200D_200D_202D_206E_206E_200B_206D_206D_202E_200B_200C_206E_206C_200B_206A_200B_206A_200F_202A_200B_200E_200C_200B_206E_200E_200B_206B_202D_202D_200D_206C_200F_206D_200D_200C_206A_200F_202B_202E(current)) - }); - num3 = -1183918559; - break; - case 4: - goto end_IL_0021; - } + _logger.LogWarning("Skipping zone boundary {Id}: both sides are in territory {Territory}", item.Id, item.Side1.TerritoryId); continue; - end_IL_0021: - break; + } + NavNode.ZoneBoundaryNode zoneBoundaryNode = new NavNode.ZoneBoundaryNode(item.Id, item.Side1.TerritoryId, item.Side1.Position, $"boundary:{item.Id}:{item.Side2.TerritoryId}", item.RequiresFlying, item.RequiredQuest, item.Side1.Trigger); + NavNode.ZoneBoundaryNode zoneBoundaryNode2 = new NavNode.ZoneBoundaryNode(item.Id, item.Side2.TerritoryId, item.Side2.Position, $"boundary:{item.Id}:{item.Side1.TerritoryId}", item.RequiresFlying, item.RequiredQuest, item.Side2.Trigger); + graph.AddNode(zoneBoundaryNode); + graph.AddNode(zoneBoundaryNode2); + num += 2; + graph.AddEdge(new NavEdge(zoneBoundaryNode.Id, zoneBoundaryNode2.Id, NavEdgeType.ZoneBoundary, 2f, 0)); + num2++; + if (!item.OneWay) + { + graph.AddEdge(new NavEdge(zoneBoundaryNode2.Id, zoneBoundaryNode.Id, NavEdgeType.ZoneBoundary, 2f, 0)); + num2++; } } - finally - { - int num3 = ((enumerator == null) ? (-1939360855) : (-1939360856)); - while (true) - { - int num16 = num3; - int num5 = -1939360855; - int num6 = num16; - switch ((num6 | num5) - (num6 & num5)) - { - case 2: - num3 = -1939360856; - break; - case 0: - goto end_IL_02ff; - case 1: - _206C_206E_206D_200B_206E_202A_202B_200B_202B_202A_206B_200D_202B_202A_206E_202C_206A_206E_202A_200F_200D_200E_202D_206C_202D_206C_202E_200F_200E_200F_202C_200F_206A_200B_202A_206A_202E_206A_202D_206F_202E((IDisposable)enumerator); - num3 = -1939360855; - break; - } - continue; - end_IL_02ff: - break; - } - } - _200D_206F_200E_200E_206F_202A_200E_206E_200F_202B_200B_206C_206E_200F_206C_202B_202B_200D_200F_206C_206A_202C_206D_206B_202C_206E_200E_202D_202C_200F_200E_206B_202B_206F_202D_202C_206B_202D_206A_202A_202E((ILogger)_logger, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(2007378728), new object[2] { num, num2 }); + _logger.LogDebug("Added {NodeCount} boundary nodes and {EdgeCount} boundary edges", num, num2); } - [MethodImpl(MethodImplOptions.NoInlining)] private void AddWarpNodes(NavGraph graph) { int num = 0; int num2 = 0; int num3 = 0; int num4 = 0; - IEnumerator<WarpDataService.WarpInfo> enumerator = _warpDataService.Warps.GetEnumerator(); - try + foreach (WarpDataService.WarpInfo warp in _warpDataService.Warps) { - int num5 = -1488329845; - Vector3? destPosition = default(Vector3?); - NavNode.WarpNode warpNode2 = default(NavNode.WarpNode); - WarpDataService.WarpInfo current = default(WarpDataService.WarpInfo); - NavNode.WarpNode warpNode = default(NavNode.WarpNode); - while (true) + if (_warpDataService.SkippedWarpIds.Contains(warp.RowId)) { - int num6 = num5; - int num7 = -1488329841; - int num8 = num6; - switch ((num8 | num7) - (num8 & num7)) + continue; + } + if (warp.SourceTerritoryId == 0) + { + num4++; + continue; + } + NavNode.WarpNode warpNode = new NavNode.WarpNode(warp.RowId, warp.SourceTerritoryId, warp.SourcePosition, warp.NpcDataId, warp.RequiredQuestIds, warp.GilCost, warp.AvailableDuringMsqIds, warp.RequiredClassLevel, warp.RequireAllQuests); + graph.AddNode(warpNode); + num++; + Vector3? destPosition = warp.DestPosition; + if (destPosition.HasValue) + { + Vector3 valueOrDefault = destPosition.GetValueOrDefault(); + NavNode.WarpNode warpNode2 = new NavNode.WarpNode(warp.RowId, warp.DestTerritoryId, valueOrDefault, null, warp.RequiredQuestIds, 0, warp.AvailableDuringMsqIds, warp.RequiredClassLevel, warp.RequireAllQuests); + if (warpNode2.Id == warpNode.Id) { - case 7: - { - int num12 = num3; - num7 = 1; - num8 = num12; - num3 = (num8 | num7) + (num8 & num7); - num5 = -1488329845; - break; + _logger.LogWarning("Skipping warp {RowId}: source and destination resolve to the same node {Id}", warp.RowId, warpNode.Id); + num3++; } - case 10: - { - Vector3 valueOrDefault = destPosition.GetValueOrDefault(); - warpNode2 = new NavNode.WarpNode(current.RowId, current.DestTerritoryId, valueOrDefault, null, current.RequiredQuestIds, 0, current.AvailableDuringMsqIds, current.RequiredClassLevel, current.RequireAllQuests); - num5 = ((!_202C_206C_206A_200B_206F_202D_200C_206A_200E_206B_206F_206E_200C_202A_202B_206E_200C_202E_202D_206B_206E_202D_200E_206E_200B_200C_202B_202B_202C_206B_206C_202D_200D_206D_206C_200F_206C_206F_206D_202C_202E(warpNode2.Id, warpNode.Id)) ? (-1488329850) : (-1488329847)); - break; - } - case 2: - { - int num18 = num4; - num7 = 1; - num8 = num18; - int num19 = num8 ^ num7; - int num20 = num8 & num7; - num4 = num19 + (num20 + num20); - num5 = -1488329845; - break; - } - case 9: + else { graph.AddNode(warpNode2); - int num16 = num; - num7 = 1; - num8 = num16; - num = (num8 | num7) + (num8 & num7); - graph.AddEdge(new NavEdge(warpNode.Id, warpNode2.Id, NavEdgeType.Warp, 2f, current.GilCost)); - int num17 = num2; - num7 = 1; - num8 = num17; - num2 = (num8 | num7) + (num8 & num7); - num5 = -1488329845; - break; + num++; + graph.AddEdge(new NavEdge(warpNode.Id, warpNode2.Id, NavEdgeType.Warp, 2f, warp.GilCost)); + num2++; } - case 3: - current = enumerator.Current; - num5 = (_warpDataService.SkippedWarpIds.Contains(current.RowId) ? (-1488329845) : (-1488329846)); - break; - case 6: - { - _206F_200E_206A_202C_206D_200D_206C_200E_200E_202A_206E_206E_200F_206D_200E_200C_202B_200F_202C_206A_206F_206C_200F_200E_206A_206D_200D_206B_202A_206F_202D_200F_202C_206D_206C_202C_206A_202C_200C_206F_202E((ILogger)_logger, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-1069269509), new object[2] { current.RowId, warpNode.Id }); - int num9 = num3; - num7 = 1; - num8 = num9; - int num10 = num8 ^ num7; - int num11 = num8 & num7; - num3 = num10 + (num11 + num11); - num5 = -1488329845; - break; - } - case 8: - { - warpNode = new NavNode.WarpNode(current.RowId, current.SourceTerritoryId, current.SourcePosition, current.NpcDataId, current.RequiredQuestIds, current.GilCost, current.AvailableDuringMsqIds, current.RequiredClassLevel, current.RequireAllQuests); - graph.AddNode(warpNode); - int num13 = num; - num7 = 1; - num8 = num13; - int num14 = num8 ^ num7; - int num15 = num8 & num7; - num = num14 + (num15 + num15); - destPosition = current.DestPosition; - num5 = ((!destPosition.HasValue) ? (-1488329848) : (-1488329851)); - break; - } - case 5: - num5 = ((current.SourceTerritoryId != 0) ? (-1488329849) : (-1488329843)); - break; - case 4: - num5 = (_206C_200C_206C_202E_200E_206A_200C_200F_206E_206B_200E_206C_206C_206F_202B_200C_206E_202B_200D_206F_202E_206E_200C_200B_200E_200E_202E_200C_202E_200B_202B_202D_206F_206F_206A_206D_206B_206B_206C_206F_202E((IEnumerator)enumerator) ? (-1488329844) : (-1488329842)); - break; - case 0: - num5 = -1488329845; - break; - case 1: - goto end_IL_0026; - } - continue; - end_IL_0026: - break; } - } - finally - { - int num5 = ((enumerator == null) ? (-1858874036) : (-1858874035)); - while (true) + else { - int num21 = num5; - int num7 = -1858874036; - int num8 = num21; - int num22 = num8 + num7; - int num23 = num8 & num7; - switch (num22 - (num23 + num23)) - { - case 2: - num5 = -1858874035; - break; - case 0: - goto end_IL_031d; - case 1: - _206C_206E_206D_200B_206E_202A_202B_200B_202B_202A_206B_200D_202B_202A_206E_202C_206A_206E_202A_200F_200D_200E_202D_206C_202D_206C_202E_200F_200E_200F_202C_200F_206A_200B_202A_206A_202E_206A_202D_206F_202E((IDisposable)enumerator); - num5 = -1858874036; - break; - } - continue; - end_IL_031d: - break; + num3++; } } - _200D_206F_200E_200E_206F_202A_200E_206E_200F_202B_200B_206C_206E_200F_206C_202B_202B_200D_200F_206C_206A_202C_206D_206B_202C_206E_200E_202D_202C_200F_200E_206B_202B_206F_202D_202C_206B_202D_206A_202A_202E((ILogger)_logger, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1235670639), new object[4] { num, num2, num3, num4 }); + _logger.LogDebug("Added {NodeCount} warp nodes and {EdgeCount} warp edges ({SkippedDest} missing destination, {SkippedSource} unknown source)", num, num2, num3, num4); } - [MethodImpl(MethodImplOptions.NoInlining)] private void AddSubRegionConnectorNodes(NavGraph graph) { int num = 0; int num2 = 0; - IEnumerator<KeyValuePair<uint, TerritorySubRegions>> enumerator = _zoneSubRegionService.AllRegions.GetEnumerator(); - int num3; - try + foreach (KeyValuePair<uint, TerritorySubRegions> allRegion in _zoneSubRegionService.AllRegions) { - num3 = -1049806291; - int num9 = default(int); - uint territoryId = default(uint); - List<SubRegionConnector> list = default(List<SubRegionConnector>); - NavNode.SubRegionConnectorNode subRegionConnectorNode2 = default(NavNode.SubRegionConnectorNode); - NavNode.SubRegionConnectorNode subRegionConnectorNode = default(NavNode.SubRegionConnectorNode); - SubRegionConnector subRegionConnector = default(SubRegionConnector); - while (true) + allRegion.Deconstruct(out var key, out var value); + uint territoryId = key; + List<SubRegionConnector> connectors = value.Connectors; + for (int i = 0; i < connectors.Count; i++) { - int num4 = num3; - int num5 = -1049806294; - int num6 = num4; - int num7 = num6 + num5; - int num8 = num6 & num5; - switch (num7 - (num8 + num8)) + SubRegionConnector subRegionConnector = connectors[i]; + NavNode.SubRegionConnectorNode subRegionConnectorNode = new NavNode.SubRegionConnectorNode(territoryId, subRegionConnector.SourcePosition, subRegionConnector.SourceSubRegion, i, subRegionConnector.Kind); + graph.AddNode(subRegionConnectorNode); + NavNode.SubRegionConnectorNode subRegionConnectorNode2 = new NavNode.SubRegionConnectorNode(territoryId, subRegionConnector.DestPosition, subRegionConnector.DestSubRegion, i + connectors.Count, subRegionConnector.Kind); + graph.AddNode(subRegionConnectorNode2); + num += 2; + graph.AddEdge(new NavEdge(subRegionConnectorNode.Id, subRegionConnectorNode2.Id, NavEdgeType.SubRegionTransport, subRegionConnector.TimeCostSeconds, 0)); + num2++; + if (subRegionConnector.Bidirectional) { - case 7: - num3 = (_206C_200C_206C_202E_200E_206A_200C_200F_206E_206B_200E_206C_206C_206F_202B_200C_206E_202B_200D_206F_202E_206E_200C_200B_200E_200E_202E_200C_202E_200B_202B_202D_206F_206F_206A_206D_206B_206B_206C_206F_202E((IEnumerator)enumerator) ? (-1049806296) : (-1049806292)); - break; - case 5: - { - int num13 = num9; - num5 = 1; - num6 = num13; - int num14 = num6 ^ num5; - int num15 = num6 & num5; - num9 = num14 + (num15 + num15); - num3 = -1049806290; - break; + graph.AddEdge(new NavEdge(subRegionConnectorNode2.Id, subRegionConnectorNode.Id, NavEdgeType.SubRegionTransport, subRegionConnector.TimeCostSeconds, 0)); + num2++; } - case 2: - { - enumerator.Current.Deconstruct(out var key, out var value); - territoryId = key; - list = _200E_202E_206C_200C_200F_206C_202E_200D_202A_200F_200E_200F_202C_202B_202E_202E_202A_206F_206F_206A_200B_206C_206E_202B_206C_200D_206B_202E_206A_200E_206B_202D_206E_200F_200B_206A_202E_200E_200F_206A_202E(value); - num9 = 0; - num3 = -1049806290; - break; - } - case 3: - { - graph.AddEdge(new NavEdge(subRegionConnectorNode2.Id, subRegionConnectorNode.Id, NavEdgeType.SubRegionTransport, _202E_200B_200C_200D_206E_200F_202D_202E_200C_206A_200B_200C_202D_200C_206B_206E_200B_206D_200B_202C_202B_200D_202D_202E_202C_200E_200E_200B_200D_202C_200B_206A_202A_200E_200E_202E_202B_202C_200E_200E_202E(subRegionConnector), 0)); - int num12 = num2; - num5 = 1; - num6 = num12; - num2 = (num6 | num5) + (num6 & num5); - num3 = -1049806289; - break; - } - case 4: - num3 = ((num9 < list.Count) ? (-1049806293) : (-1049806291)); - break; - case 1: - { - subRegionConnector = list[num9]; - subRegionConnectorNode = new NavNode.SubRegionConnectorNode(territoryId, _200F_200E_200E_206C_206F_202D_202A_202C_206F_206F_202D_200C_206A_202D_206B_202D_202C_200E_202A_202C_200D_206E_202B_206F_202C_202D_206F_202C_200F_200C_206C_200E_206C_200E_206D_206D_202A_202D_206D_202A_202E(subRegionConnector), _200D_200C_202B_202E_202D_206D_206F_206E_202E_202D_202D_206F_206C_202A_202B_200E_202A_206E_206F_202D_200C_206B_206F_206E_200C_202A_200E_202C_206A_200B_206D_206D_206C_200E_202D_200C_206F_206F_206E_206F_202E(subRegionConnector), num9, _202A_202A_202D_202A_200F_206B_206B_206E_202B_200B_206C_206F_200D_202E_200E_206A_202C_206C_206D_206F_202A_202C_206A_202B_206E_200C_202A_206E_202D_200C_202C_200F_200F_206A_202A_202D_200D_202C_202D_206D_202E(subRegionConnector)); - graph.AddNode(subRegionConnectorNode); - subRegionConnectorNode2 = new NavNode.SubRegionConnectorNode(territoryId, _202A_206C_200F_206E_200C_206F_200E_200B_202B_202C_206B_206E_200E_206A_206E_206A_206E_206E_206A_200F_206A_200B_206D_202E_200D_202C_202A_200F_202C_202E_202D_206E_200E_200C_206A_200B_200E_202E_206B_206C_202E(subRegionConnector), _202A_200E_200C_206E_202E_206D_202C_202E_206A_200F_206A_200D_202A_202E_202D_206C_202C_206D_200B_200E_202B_202A_202C_202D_200E_206B_206B_206E_200D_206B_200D_200B_206E_202A_206C_206C_206F_206E_202E_202D_202E(subRegionConnector), num9 + list.Count, _202A_202A_202D_202A_200F_206B_206B_206E_202B_200B_206C_206F_200D_202E_200E_206A_202C_206C_206D_206F_202A_202C_206A_202B_206E_200C_202A_206E_202D_200C_202C_200F_200F_206A_202A_202D_200D_202C_202D_206D_202E(subRegionConnector)); - graph.AddNode(subRegionConnectorNode2); - int num10 = num; - num5 = 2; - num6 = num10; - num = (num6 | num5) + (num6 & num5); - graph.AddEdge(new NavEdge(subRegionConnectorNode.Id, subRegionConnectorNode2.Id, NavEdgeType.SubRegionTransport, _202E_200B_200C_200D_206E_200F_202D_202E_200C_206A_200B_200C_202D_200C_206B_206E_200B_206D_200B_202C_202B_200D_202D_202E_202C_200E_200E_200B_200D_202C_200B_206A_202A_200E_200E_202E_202B_202C_200E_200E_202E(subRegionConnector), 0)); - int num11 = num2; - num5 = 1; - num6 = num11; - num2 = (num6 | num5) + (num6 & num5); - num3 = ((!_206A_202B_200C_202C_202C_206F_202D_200E_200D_200D_200B_206E_206A_206A_206C_206D_206F_206D_202D_200F_200E_200B_206E_206A_200F_206C_200C_200D_206D_206B_206C_202B_200B_206E_202E_200B_206F_202D_206F_206C_202E(subRegionConnector)) ? (-1049806289) : (-1049806295)); - break; - } - case 0: - num3 = -1049806291; - break; - case 6: - goto end_IL_0021; - } - continue; - end_IL_0021: - break; } } - finally + if (num > 0) { - num3 = ((enumerator == null) ? 1756470352 : 1756470355); - while (true) - { - int num16 = num3; - int num5 = 1756470353; - int num6 = num16; - int num17 = num6 + num5; - int num18 = num6 & num5; - switch (num17 - (num18 + num18)) - { - case 1: - goto end_IL_0236; - case 2: - _206C_206E_206D_200B_206E_202A_202B_200B_202B_202A_206B_200D_202B_202A_206E_202C_206A_206E_202A_200F_200D_200E_202D_206C_202D_206C_202E_200F_200E_200F_202C_200F_206A_200B_202A_206A_202E_206A_202D_206F_202E((IDisposable)enumerator); - num3 = 1756470352; - break; - case 0: - num3 = 1756470355; - break; - } - continue; - end_IL_0236: - break; - } + _logger.LogDebug("Added {NodeCount} sub-region connector nodes and {EdgeCount} transport edges", num, num2); } - num3 = ((num <= 0) ? (-368100620) : (-368100619)); - while (true) - { - int num19 = num3; - int num5 = -368100620; - int num6 = num19; - int num20 = num6 + num5; - int num21 = num6 & num5; - switch (num20 - (num21 + num21)) - { - case 2: - num3 = -368100619; - break; - case 1: - _200D_206F_200E_200E_206F_202A_200E_206E_200F_202B_200B_206C_206E_200F_206C_202B_202B_200D_200F_206C_206A_202C_206D_206B_202C_206E_200E_202D_202C_200F_200E_206B_202B_206F_202D_202C_206B_202D_206A_202A_202E((ILogger)_logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1957227425), new object[2] { num, num2 }); - num3 = -368100620; - break; - case 0: - return; - } - } - } - - static void _200D_206F_200E_200E_206F_202A_200E_206E_200F_202B_200B_206C_206E_200F_206C_202B_202B_200D_200F_206C_206A_202C_206D_206B_202C_206E_200E_202D_202C_200F_200E_206B_202B_206F_202D_202C_206B_202D_206A_202A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _206E_202A_202A_200D_206E_200C_200B_206C_206F_202E_200C_206E_206A_206E_202A_206D_200C_202A_200D_202B_202B_206F_206C_206C_206C_200B_202C_202B_200B_206F_202A_202E_202C_202B_200D_202D_206E_202B_200E_202E(EAetheryteLocation P_0) - { - return AetheryteConverter.IsLargeAetheryte(P_0); - } - - static bool _206C_200C_206C_202E_200E_206A_200C_200F_206E_206B_200E_206C_206C_206F_202B_200C_206E_202B_200D_206F_202E_206E_200C_200B_200E_200E_202E_200C_202E_200B_202B_202D_206F_206F_206A_206D_206B_206B_206C_206F_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206C_206E_206D_200B_206E_202A_202B_200B_202B_202A_206B_200D_202B_202A_206E_202C_206A_206E_202A_200F_200D_200E_202D_206C_202D_206C_202E_200F_200E_200F_202C_200F_206A_200B_202A_206A_202E_206A_202D_206F_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static BoundarySide _206A_206D_200D_200D_202D_206E_206E_200B_206D_206D_202E_200B_200C_206E_206C_200B_206A_200B_206A_200F_202A_200B_200E_200C_200B_206E_200E_200B_206B_202D_202D_200D_206C_200F_206D_200D_200C_206A_200F_202B_202E(ZoneBoundary P_0) - { - return P_0.Side1; - } - - static ushort _206D_206D_200E_202C_200F_202B_202B_206C_206A_200D_202D_202B_202A_202D_200D_202E_206D_206F_206F_200C_206C_200D_200F_200C_202E_200E_200D_206E_200D_202C_206F_206B_202E_206C_200F_206F_200C_200D_202B_202E_202E(BoundarySide P_0) - { - return P_0.TerritoryId; - } - - static BoundarySide _206E_202E_200D_206B_202E_202E_206C_206E_202E_206D_206B_202B_206E_202D_206F_202C_206E_202D_200C_202B_206A_202C_200F_200E_206A_200B_202D_200B_200C_206B_206B_206C_200C_202A_206A_202A_200E_200D_206C_200E_202E(ZoneBoundary P_0) - { - return P_0.Side2; - } - - static string _206D_206B_206C_206B_206A_200B_200E_202D_206A_206E_206D_200D_200D_206F_206B_202C_202B_206D_206D_200C_202A_200E_202E_200C_202E_202C_206E_206A_206E_200D_200E_206E_202B_202C_200B_202E_200B_202E_206D_202E(ZoneBoundary P_0) - { - return P_0.Id; - } - - static void _206F_200E_206A_202C_206D_200D_206C_200E_200E_202A_206E_206E_200F_206D_200E_200C_202B_200F_202C_206A_206F_206C_200F_200E_206A_206D_200D_206B_202A_206F_202D_200F_202C_206D_206C_202C_206A_202C_200C_206F_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static Vector3 _202C_206E_206A_202A_206C_200D_202A_206A_202E_200C_200D_202A_202C_206C_206B_206A_202A_200C_206E_206C_206F_200B_202E_200D_200C_206A_206C_206C_206D_202B_206B_202C_200E_202E_202A_206C_200B_200B_206D_206C_202E(BoundarySide P_0) - { - return P_0.Position; - } - - static bool _206A_202B_200E_206C_206C_202C_206B_206A_206B_202B_200D_202B_206A_206D_200F_200C_202C_202D_206D_202E_202A_206F_200F_202A_200B_202D_200E_202B_200E_200B_206E_206A_206C_206A_202A_206D_200B_202A_202B_202B_202E(ZoneBoundary P_0) - { - return P_0.RequiresFlying; - } - - static uint? _200D_206B_206C_202C_200F_200E_200E_200D_202D_206F_206E_206A_202D_200F_202B_202C_206D_202C_202B_202D_202A_202B_202E_200D_206B_206F_206C_202B_202A_202A_206E_206B_200B_200C_202B_200F_200C_200D_200F_206F_202E(ZoneBoundary P_0) - { - return P_0.RequiredQuest; - } - - static TriggerBox _202B_206E_202B_202E_200B_206F_200B_202B_202B_206D_202A_202A_200D_200C_202A_202D_200F_202B_206D_202D_202C_202B_206F_202D_202B_200D_200C_206F_206E_206C_206E_202B_200F_206B_206D_206D_206A_200B_200B_206A_202E(BoundarySide P_0) - { - return P_0.Trigger; - } - - static bool _200D_202E_200B_200C_202E_206B_200D_202C_202C_200D_202C_202D_200B_206A_200E_206F_206E_206D_200D_202B_200D_206A_206A_200F_200F_206A_206A_206E_202E_206B_200E_202B_202D_206C_206A_202E_202C_200E_206F_200F_202E(ZoneBoundary P_0) - { - return P_0.OneWay; - } - - static bool _202C_206C_206A_200B_206F_202D_200C_206A_200E_206B_206F_206E_200C_202A_202B_206E_200C_202E_202D_206B_206E_202D_200E_206E_200B_200C_202B_202B_202C_206B_206C_202D_200D_206D_206C_200F_206C_206F_206D_202C_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static List<SubRegionConnector> _200E_202E_206C_200C_200F_206C_202E_200D_202A_200F_200E_200F_202C_202B_202E_202E_202A_206F_206F_206A_200B_206C_206E_202B_206C_200D_206B_202E_206A_200E_206B_202D_206E_200F_200B_206A_202E_200E_200F_206A_202E(TerritorySubRegions P_0) - { - return P_0.Connectors; - } - - static Vector3 _200F_200E_200E_206C_206F_202D_202A_202C_206F_206F_202D_200C_206A_202D_206B_202D_202C_200E_202A_202C_200D_206E_202B_206F_202C_202D_206F_202C_200F_200C_206C_200E_206C_200E_206D_206D_202A_202D_206D_202A_202E(SubRegionConnector P_0) - { - return P_0.SourcePosition; - } - - static string _200D_200C_202B_202E_202D_206D_206F_206E_202E_202D_202D_206F_206C_202A_202B_200E_202A_206E_206F_202D_200C_206B_206F_206E_200C_202A_200E_202C_206A_200B_206D_206D_206C_200E_202D_200C_206F_206F_206E_206F_202E(SubRegionConnector P_0) - { - return P_0.SourceSubRegion; - } - - static SubRegionConnectorKind _202A_202A_202D_202A_200F_206B_206B_206E_202B_200B_206C_206F_200D_202E_200E_206A_202C_206C_206D_206F_202A_202C_206A_202B_206E_200C_202A_206E_202D_200C_202C_200F_200F_206A_202A_202D_200D_202C_202D_206D_202E(SubRegionConnector P_0) - { - return P_0.Kind; - } - - static Vector3 _202A_206C_200F_206E_200C_206F_200E_200B_202B_202C_206B_206E_200E_206A_206E_206A_206E_206E_206A_200F_206A_200B_206D_202E_200D_202C_202A_200F_202C_202E_202D_206E_200E_200C_206A_200B_200E_202E_206B_206C_202E(SubRegionConnector P_0) - { - return P_0.DestPosition; - } - - static string _202A_200E_200C_206E_202E_206D_202C_202E_206A_200F_206A_200D_202A_202E_202D_206C_202C_206D_200B_200E_202B_202A_202C_202D_200E_206B_206B_206E_200D_206B_200D_200B_206E_202A_206C_206C_206F_206E_202E_202D_202E(SubRegionConnector P_0) - { - return P_0.DestSubRegion; - } - - static float _202E_200B_200C_200D_206E_200F_202D_202E_200C_206A_200B_200C_202D_200C_206B_206E_200B_206D_200B_202C_202B_200D_202D_202E_202C_200E_200E_200B_200D_202C_200B_206A_202A_200E_200E_202E_202B_202C_200E_200E_202E(SubRegionConnector P_0) - { - return P_0.TimeCostSeconds; - } - - static bool _206A_202B_200C_202C_202C_206F_202D_200E_200D_200D_200B_206E_206A_206A_206C_206D_206F_206D_202D_200F_200E_200B_206E_206A_200F_206C_200C_200D_206D_206B_206C_202B_200B_206E_202E_200B_206F_202D_206F_206C_202E(SubRegionConnector P_0) - { - return P_0.Bidirectional; } } diff --git a/SmartNav/SmartNav/NavGraphView.cs b/SmartNav/SmartNav/NavGraphView.cs index 4459c42..5d2951b 100644 --- a/SmartNav/SmartNav/NavGraphView.cs +++ b/SmartNav/SmartNav/NavGraphView.cs @@ -1,9 +1,6 @@ -using System; -using System.Collections; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; using Microsoft.Extensions.Logging; using SmartNav.Data; using SmartNav.Graph; @@ -15,267 +12,72 @@ public sealed class NavGraphView(CostCalculator costCalculator, ITerritoryInfo t { public (NavGraph EffectiveGraph, string OriginId, string DestinationId) CreateQueryGraph(NavGraph staticGraph, PlayerNavState playerState, uint destinationTerritoryId, Vector3 destinationPosition) { - int num = ((playerState.CurrentTerritoryId != destinationTerritoryId) ? 851259110 : 851259111); - while (true) + if (playerState.CurrentTerritoryId == destinationTerritoryId) { - int num2 = num; - int num3 = 851259110; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - goto IL_0049; - case 1: - return CreateSameZoneQueryGraph(staticGraph, playerState, destinationTerritoryId, destinationPosition); - case 0: - return CreateCrossZoneQueryGraph(staticGraph, playerState, destinationTerritoryId, destinationPosition); - } - continue; - IL_0049: - num = 851259111; + return CreateSameZoneQueryGraph(staticGraph, playerState, destinationTerritoryId, destinationPosition); } + return CreateCrossZoneQueryGraph(staticGraph, playerState, destinationTerritoryId, destinationPosition); } - [MethodImpl(MethodImplOptions.NoInlining)] private (NavGraph EffectiveGraph, string OriginId, string DestinationId) CreateSameZoneQueryGraph(NavGraph staticGraph, PlayerNavState playerState, uint territoryId, Vector3 destinationPosition) { NavGraph navGraph = new NavGraph(); HashSet<string> hashSet = new HashSet<string>(); - IEnumerator<NavNode> enumerator = staticGraph.Nodes.Values.GetEnumerator(); - int num; - try + foreach (NavNode value in staticGraph.Nodes.Values) { - NavEdge current2 = default(NavEdge); - while (_202B_202B_200F_206B_206A_206A_200E_206A_200E_206C_206A_200E_200F_206A_200C_200D_202B_202D_206B_202B_200B_200F_202E_202E_206C_206A_200B_206E_202D_206B_202B_206C_200E_200D_206F_206D_202A_200F_202D_202A_202E((IEnumerator)enumerator)) + if (value.TerritoryId != territoryId) { - NavNode current = enumerator.Current; - if (current.TerritoryId != territoryId) - { - continue; - } - IEnumerator<NavEdge> enumerator2 = staticGraph.GetEdges(current.Id).GetEnumerator(); - try - { - num = -617250015; - while (true) - { - int num2 = num; - int num3 = -617250012; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -617250015; - break; - case 1: - { - NavNode? node = staticGraph.GetNode(current2.ToNodeId); - num = (((object)node == null || node.TerritoryId != territoryId) ? (-617250015) : (-617250010)); - break; - } - case 5: - num = (_202B_202B_200F_206B_206A_206A_200E_206A_200E_206C_206A_200E_200F_206A_200C_200D_202B_202D_206B_202B_200B_200F_202E_202E_206C_206A_200B_206E_202D_206B_202B_206C_200E_200D_206F_206D_202A_200F_202D_202A_202E((IEnumerator)enumerator2) ? (-617250016) : (-617250009)); - break; - case 4: - current2 = enumerator2.Current; - num = ((current2.EdgeType != NavEdgeType.Warp) ? (-617250015) : (-617250011)); - break; - case 2: - hashSet.Add(current2.FromNodeId); - hashSet.Add(current2.ToNodeId); - num = -617250015; - break; - case 3: - goto end_IL_0059; - } - continue; - end_IL_0059: - break; - } - } - finally - { - num = ((enumerator2 == null) ? 1553981208 : 1553981211); - while (true) - { - int num5 = num; - int num3 = 1553981210; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 0: - num = 1553981211; - break; - case 1: - _206E_200F_206F_202C_202C_206E_206C_200F_202A_200F_200F_202B_200B_200D_200D_206A_200D_206F_206A_200E_202D_202D_202A_200D_206F_206C_206B_200D_200C_206B_202E_200B_202D_202C_206D_206C_206A_206D_206F_200E_202E((IDisposable)enumerator2); - num = 1553981208; - break; - case 2: - goto end_IL_017a; - } - continue; - end_IL_017a: - break; - } - } - } - } - finally - { - num = ((enumerator == null) ? 2134888700 : 2134888703); - while (true) - { - int num8 = num; - int num3 = 2134888702; - int num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 2: - goto end_IL_01f8; - case 1: - _206E_200F_206F_202C_202C_206E_206C_200F_202A_200F_200F_202B_200B_200D_200D_206A_200D_206F_206A_200E_202D_202D_202A_200D_206F_206C_206B_200D_200C_206B_202E_200B_202D_202C_206D_206C_206A_206D_206F_200E_202E((IDisposable)enumerator); - num = 2134888700; - break; - case 0: - num = 2134888703; - break; - } continue; - end_IL_01f8: - break; + } + foreach (NavEdge edge in staticGraph.GetEdges(value.Id)) + { + if (edge.EdgeType == NavEdgeType.Warp) + { + NavNode? node = staticGraph.GetNode(edge.ToNodeId); + if ((object)node != null && node.TerritoryId == territoryId) + { + hashSet.Add(edge.FromNodeId); + hashSet.Add(edge.ToNodeId); + } + } } } List<NavNode.AetheryteNode> list = new List<NavNode.AetheryteNode>(); - enumerator = staticGraph.Nodes.Values.GetEnumerator(); - try + foreach (NavNode value2 in staticGraph.Nodes.Values) { - num = 352472166; - NavNode current3 = default(NavNode); - NavNode.AetheryteNode aetheryteNode = default(NavNode.AetheryteNode); - NavNode.WarpNode warpNode = default(NavNode.WarpNode); - NavNode.AethernetNode aethernetNode = default(NavNode.AethernetNode); - uint[] availableDuringMsqIds = default(uint[]); - while (true) + if (value2.TerritoryId != territoryId || value2 is NavNode.ZoneBoundaryNode) { - int num11 = num; - int num3 = 352472174; - int num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) - { - case 13: - navGraph.AddNode(current3); - list.Add(aetheryteNode); - num = 352472166; - break; - case 15: - navGraph.AddNode(current3); - num = 352472166; - break; - case 3: - warpNode = current3 as NavNode.WarpNode; - num = (((object)warpNode == null) ? 352472186 : 352472165); - break; - case 14: - num = ((!playerState.IsAetheryteUnlocked(aethernetNode.Aethernet)) ? 352472166 : 352472190); - break; - case 20: - navGraph.AddNode(current3); - num = 352472166; - break; - case 19: - num = 352472166; - break; - case 4: - availableDuringMsqIds = warpNode.AvailableDuringMsqIds; - num = ((availableDuringMsqIds == null) ? 352472172 : 352472187); - break; - case 7: - current3 = enumerator.Current; - num = ((current3.TerritoryId != territoryId) ? 352472166 : 352472174); - break; - case 1: - num = ((warpNode.RequiredClassLevel > playerState.CurrentLevel) ? 352472166 : 352472164); - break; - case 2: - num = ((!hashSet.Contains(warpNode.Id)) ? 352472166 : 352472161); - break; - case 9: - num = ((!playerState.IsAetheryteUnlocked(aetheryteNode.Aetheryte)) ? 352472166 : 352472163); - break; - case 18: - aetheryteNode = current3 as NavNode.AetheryteNode; - num = (((object)aetheryteNode == null) ? 352472162 : 352472167); - break; - case 0: - num = ((current3 is NavNode.ZoneBoundaryNode) ? 352472166 : 352472188); - break; - case 5: - num = ((!playerState.CurrentMsqQuestId.HasValue) ? 352472166 : 352472191); - break; - case 10: - num = ((!WarpQuestGateSatisfied(warpNode, playerState)) ? 352472166 : 352472170); - break; - case 17: - num = ((!availableDuringMsqIds.Contains(playerState.CurrentMsqQuestId.Value)) ? 352472166 : 352472172); - break; - case 21: - num = ((availableDuringMsqIds.Length <= 0) ? 352472172 : 352472171); - break; - case 16: - navGraph.AddNode(current3); - num = 352472166; - break; - case 12: - aethernetNode = current3 as NavNode.AethernetNode; - num = (((object)aethernetNode == null) ? 352472173 : 352472160); - break; - case 11: - num = (warpFailureTracker.IsBlacklisted(warpNode.WarpRowId) ? 352472166 : 352472175); - break; - case 8: - num = (_202B_202B_200F_206B_206A_206A_200E_206A_200E_206C_206A_200E_200F_206A_200C_200D_202B_202D_206B_202B_200B_200F_202E_202E_206C_206A_200B_206E_202D_206B_202B_206C_200E_200D_206F_206D_202A_200F_202D_202A_202E((IEnumerator)enumerator) ? 352472169 : 352472168); - break; - case 6: - goto end_IL_026a; - } continue; - end_IL_026a: - break; } - } - finally - { - num = ((enumerator == null) ? (-1533943948) : (-1533943945)); - while (true) + if (value2 is NavNode.AetheryteNode aetheryteNode) { - int num14 = num; - int num3 = -1533943947; - int num4 = num14; - int num15 = num4 + num3; - int num16 = num4 & num3; - switch (num15 - (num16 + num16)) + if (playerState.IsAetheryteUnlocked(aetheryteNode.Aetheryte)) { - case 0: - num = -1533943945; - break; - case 1: - goto end_IL_05ff; - case 2: - _206E_200F_206F_202C_202C_206E_206C_200F_202A_200F_200F_202B_200B_200D_200D_206A_200D_206F_206A_200E_202D_202D_202A_200D_206F_206C_206B_200D_200C_206B_202E_200B_202D_202C_206D_206C_206A_206D_206F_200E_202E((IDisposable)enumerator); - num = -1533943948; - break; + navGraph.AddNode(value2); + list.Add(aetheryteNode); } - continue; - end_IL_05ff: - break; + } + else if (value2 is NavNode.AethernetNode aethernetNode) + { + if (playerState.IsAetheryteUnlocked(aethernetNode.Aethernet)) + { + navGraph.AddNode(value2); + } + } + else if (value2 is NavNode.WarpNode warpNode) + { + if (!warpFailureTracker.IsBlacklisted(warpNode.WarpRowId) && warpNode.RequiredClassLevel <= playerState.CurrentLevel && WarpQuestGateSatisfied(warpNode, playerState)) + { + uint[] availableDuringMsqIds = warpNode.AvailableDuringMsqIds; + if ((availableDuringMsqIds == null || availableDuringMsqIds.Length <= 0 || (playerState.CurrentMsqQuestId.HasValue && availableDuringMsqIds.Contains(playerState.CurrentMsqQuestId.Value))) && hashSet.Contains(warpNode.Id)) + { + navGraph.AddNode(value2); + } + } + } + else + { + navGraph.AddNode(value2); } } CopyStaticEdges(navGraph, staticGraph); @@ -283,200 +85,78 @@ public sealed class NavGraphView(CostCalculator costCalculator, ITerritoryInfo t NavNode.PositionNode positionNode = new NavNode.PositionNode(territoryId, playerState.CurrentPosition); navGraph.AddNode(positionNode); NavNode.PositionNode positionNode2 = new NavNode.PositionNode(territoryId, destinationPosition); - num = ((!_202D_206F_202C_200B_206E_200E_200C_200D_202A_202B_206B_206B_200B_202A_202B_202C_206B_202C_200E_200F_202E_206C_202D_206B_202E_202E_202C_206E_202C_206B_200F_200D_200B_206E_206F_206B_206B_202E_200C_202A_202E(positionNode2.Id, positionNode.Id)) ? 1977419108 : 1977419113); - while (true) + if (positionNode2.Id != positionNode.Id) { - int num17 = num; - int num3 = 1977419105; - int num4 = num17; - int num18 = num4 + num3; - int num19 = num4 & num3; - switch (num18 - (num19 + num19)) - { - case 1: - num = ((playerState == null) ? 1977419106 : 1977419107); - break; - case 2: - num = ((!playerState.TeleportUnlocked) ? 1977419106 : 1977419110); - break; - case 3: - AddTicketTeleportEdges(navGraph, positionNode, playerState, territoryId); - AddWarpWithinZoneEdges(navGraph, playerState); - AddConnectorWithinZoneEdges(navGraph, playerState); - _206B_206A_206F_206B_200C_200D_200C_206E_206F_202E_200E_206D_206C_206D_202B_202D_200C_202E_202C_206C_200D_206D_200B_200B_200E_200C_206C_202E_200B_202D_200C_206A_206E_202D_206F_202B_206E_200D_202D_202B_202E((ILogger)logger, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-305562461), new object[2] { navGraph.NodeCount, navGraph.EdgeCount }); - return (EffectiveGraph: navGraph, OriginId: positionNode.Id, DestinationId: positionNode2.Id); - case 7: - num = ((!playerState.ReturnAvailable) ? 1977419106 : 1977419111); - break; - case 4: - AddTeleportEdgesFromOrigin(navGraph, positionNode, list, playerState); - num = 1977419104; - break; - case 6: - AddReturnEdge(navGraph, positionNode, playerState); - num = 1977419106; - break; - case 5: - AddWithinZoneEdgesFrom(navGraph, positionNode, playerState); - AddWithinZoneEdgesTo(navGraph, positionNode2, playerState); - num = ((!playerState.TeleportUnlocked) ? 1977419104 : 1977419109); - break; - case 8: - navGraph.AddNode(positionNode2); - num = 1977419108; - break; - case 0: - num = 1977419113; - break; - } + navGraph.AddNode(positionNode2); } + AddWithinZoneEdgesFrom(navGraph, positionNode, playerState); + AddWithinZoneEdgesTo(navGraph, positionNode2, playerState); + if (playerState.TeleportUnlocked) + { + AddTeleportEdgesFromOrigin(navGraph, positionNode, list, playerState); + } + if (playerState != null && playerState.TeleportUnlocked && playerState.ReturnAvailable) + { + AddReturnEdge(navGraph, positionNode, playerState); + } + AddTicketTeleportEdges(navGraph, positionNode, playerState, territoryId); + AddWarpWithinZoneEdges(navGraph, playerState); + AddConnectorWithinZoneEdges(navGraph, playerState); + logger.LogDebug("Same-zone query graph: {NodeCount} nodes, {EdgeCount} edges", navGraph.NodeCount, navGraph.EdgeCount); + return (EffectiveGraph: navGraph, OriginId: positionNode.Id, DestinationId: positionNode2.Id); } - [MethodImpl(MethodImplOptions.NoInlining)] private (NavGraph EffectiveGraph, string OriginId, string DestinationId) CreateCrossZoneQueryGraph(NavGraph staticGraph, PlayerNavState playerState, uint destinationTerritoryId, Vector3 destinationPosition) { NavGraph navGraph = new NavGraph(); List<NavNode.AetheryteNode> list = new List<NavNode.AetheryteNode>(); - IEnumerator<NavNode> enumerator = staticGraph.Nodes.Values.GetEnumerator(); - int num; - try + foreach (NavNode value in staticGraph.Nodes.Values) { - num = -608712639; - NavNode.WarpNode warpNode = default(NavNode.WarpNode); - NavNode current = default(NavNode); - NavNode.AetheryteNode aetheryteNode = default(NavNode.AetheryteNode); - uint[] availableDuringMsqIds = default(uint[]); - uint? num5 = default(uint?); - NavNode.ZoneBoundaryNode zoneBoundaryNode = default(NavNode.ZoneBoundaryNode); - NavNode.AethernetNode aethernetNode = default(NavNode.AethernetNode); - while (true) + if (territoryInfo.GetExVersion(value.TerritoryId) > playerState.MaxExpansion) { - int num2 = num; - int num3 = -608712618; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - warpNode = current as NavNode.WarpNode; - num = (((object)warpNode == null) ? (-608712609) : (-608712613)); - break; - case 18: - current = enumerator.Current; - num = ((territoryInfo.GetExVersion(current.TerritoryId) > playerState.MaxExpansion) ? (-608712639) : (-608712615)); - break; - case 8: - navGraph.AddNode(current); - list.Add(aetheryteNode); - num = -608712639; - break; - case 20: - navGraph.AddNode(current); - num = -608712639; - break; - case 23: - num = (_202B_202B_200F_206B_206A_206A_200E_206A_200E_206C_206A_200E_200F_206A_200C_200D_202B_202D_206B_202B_200B_200F_202E_202E_206C_206A_200B_206E_202D_206B_202B_206C_200E_200D_206F_206D_202A_200F_202D_202A_202E((IEnumerator)enumerator) ? (-608712636) : (-608712635)); - break; - case 12: - navGraph.AddNode(current); - num = -608712639; - break; - case 11: - num = ((availableDuringMsqIds.Length <= 0) ? (-608712623) : (-608712616)); - break; - case 14: - num5 = playerState.CurrentMsqQuestId; - num = ((!num5.HasValue) ? (-608712639) : (-608712618)); - break; - case 6: - num = ((!WarpQuestGateSatisfied(warpNode, playerState)) ? (-608712639) : (-608712640)); - break; - case 10: - num5 = zoneBoundaryNode.RequiredQuestId; - num = ((!num5.HasValue) ? (-608712638) : (-608712633)); - break; - case 9: - navGraph.AddNode(current); - num = -608712639; - break; - case 22: - availableDuringMsqIds = warpNode.AvailableDuringMsqIds; - num = ((availableDuringMsqIds == null) ? (-608712623) : (-608712611)); - break; - case 15: - aetheryteNode = current as NavNode.AetheryteNode; - num = (((object)aetheryteNode == null) ? (-608712621) : (-608712634)); - break; - case 13: - num = (warpFailureTracker.IsBlacklisted(warpNode.WarpRowId) ? (-608712639) : (-608712617)); - break; - case 1: - num = ((warpNode.RequiredClassLevel > playerState.CurrentLevel) ? (-608712639) : (-608712624)); - break; - case 0: - { - uint[] source = availableDuringMsqIds; - num5 = playerState.CurrentMsqQuestId; - num = ((!source.Contains(num5.Value)) ? (-608712639) : (-608712623)); - break; - } - case 7: - navGraph.AddNode(current); - num = -608712639; - break; - case 3: - zoneBoundaryNode = current as NavNode.ZoneBoundaryNode; - num = (((object)zoneBoundaryNode == null) ? (-608712622) : (-608712612)); - break; - case 16: - num = ((!playerState.IsAetheryteUnlocked(aetheryteNode.Aetheryte)) ? (-608712639) : (-608712610)); - break; - case 17: - { - uint valueOrDefault = num5.GetValueOrDefault(); - num = ((!playerState.IsQuestComplete(valueOrDefault)) ? (-608712639) : (-608712638)); - break; - } - case 2: - num = -608712639; - break; - case 5: - aethernetNode = current as NavNode.AethernetNode; - num = (((object)aethernetNode == null) ? (-608712619) : (-608712637)); - break; - case 21: - num = ((!playerState.IsAetheryteUnlocked(aethernetNode.Aethernet)) ? (-608712639) : (-608712614)); - break; - case 19: - goto end_IL_002a; - } continue; - end_IL_002a: - break; } - } - finally - { - num = ((enumerator == null) ? 1459189528 : 1459189531); - while (true) + if (value is NavNode.AetheryteNode aetheryteNode) { - int num6 = num; - int num3 = 1459189530; - int num4 = num6; - switch ((num4 | num3) - (num4 & num3)) + if (playerState.IsAetheryteUnlocked(aetheryteNode.Aetheryte)) { - case 0: - num = 1459189531; - break; - case 2: - goto end_IL_041e; - case 1: - _206E_200F_206F_202C_202C_206E_206C_200F_202A_200F_200F_202B_200B_200D_200D_206A_200D_206F_206A_200E_202D_202D_202A_200D_206F_206C_206B_200D_200C_206B_202E_200B_202D_202C_206D_206C_206A_206D_206F_200E_202E((IDisposable)enumerator); - num = 1459189528; - break; + navGraph.AddNode(value); + list.Add(aetheryteNode); } - continue; - end_IL_041e: - break; + } + else if (value is NavNode.AethernetNode aethernetNode) + { + if (playerState.IsAetheryteUnlocked(aethernetNode.Aethernet)) + { + navGraph.AddNode(value); + } + } + else if (value is NavNode.ZoneBoundaryNode { RequiredQuestId: var requiredQuestId }) + { + if (requiredQuestId.HasValue) + { + uint valueOrDefault = requiredQuestId.GetValueOrDefault(); + if (!playerState.IsQuestComplete(valueOrDefault)) + { + continue; + } + } + navGraph.AddNode(value); + } + else if (value is NavNode.WarpNode warpNode) + { + if (!warpFailureTracker.IsBlacklisted(warpNode.WarpRowId) && warpNode.RequiredClassLevel <= playerState.CurrentLevel && WarpQuestGateSatisfied(warpNode, playerState)) + { + uint[] availableDuringMsqIds = warpNode.AvailableDuringMsqIds; + if (availableDuringMsqIds == null || availableDuringMsqIds.Length <= 0 || (playerState.CurrentMsqQuestId.HasValue && availableDuringMsqIds.Contains(playerState.CurrentMsqQuestId.Value))) + { + navGraph.AddNode(value); + } + } + } + else + { + navGraph.AddNode(value); } } CopyStaticEdges(navGraph, staticGraph); @@ -484,395 +164,95 @@ public sealed class NavGraphView(CostCalculator costCalculator, ITerritoryInfo t NavNode.PositionNode positionNode = new NavNode.PositionNode(playerState.CurrentTerritoryId, playerState.CurrentPosition); navGraph.AddNode(positionNode); NavNode.PositionNode positionNode2 = new NavNode.PositionNode(destinationTerritoryId, destinationPosition); - num = ((!_202D_206F_202C_200B_206E_200E_200C_200D_202A_202B_206B_206B_200B_202A_202B_202C_206B_202C_200E_200F_202E_206C_202D_206B_202E_202E_202C_206E_202C_206B_200F_200D_200B_206E_206F_206B_206B_202E_200C_202A_202E(positionNode2.Id, positionNode.Id)) ? 1956503777 : 1956503780); - while (true) + if (positionNode2.Id != positionNode.Id) { - int num7 = num; - int num3 = 1956503781; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 7: - num = ((!playerState.TeleportUnlocked) ? 1956503789 : 1956503783); - break; - case 4: - AddWithinZoneEdgesFrom(navGraph, positionNode, playerState); - AddWithinZoneEdgesTo(navGraph, positionNode2, playerState); - num = ((!playerState.TeleportUnlocked) ? 1956503779 : 1956503776); - break; - case 3: - AddReturnEdge(navGraph, positionNode, playerState); - num = 1956503789; - break; - case 1: - navGraph.AddNode(positionNode2); - num = 1956503777; - break; - case 5: - AddTeleportEdgesFromOrigin(navGraph, positionNode, list, playerState); - num = 1956503779; - break; - case 0: - num = 1956503780; - break; - case 6: - num = ((playerState == null) ? 1956503789 : 1956503778); - break; - case 8: - AddTicketTeleportEdges(navGraph, positionNode, playerState, null); - RecomputeAethernetCosts(navGraph); - AddBoundaryWithinZoneEdges(navGraph, playerState); - AddWarpWithinZoneEdges(navGraph, playerState); - AddConnectorWithinZoneEdges(navGraph, playerState); - _206B_206A_206F_206B_200C_200D_200C_206E_206F_202E_200E_206D_206C_206D_202B_202D_200C_202E_202C_206C_200D_206D_200B_200B_200E_200C_206C_202E_200B_202D_200C_206A_206E_202D_206F_202B_206E_200D_202D_202B_202E((ILogger)logger, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-1776596717), new object[2] { navGraph.NodeCount, navGraph.EdgeCount }); - return (EffectiveGraph: navGraph, OriginId: positionNode.Id, DestinationId: positionNode2.Id); - case 2: - num = ((!playerState.ReturnAvailable) ? 1956503789 : 1956503782); - break; - } + navGraph.AddNode(positionNode2); } + AddWithinZoneEdgesFrom(navGraph, positionNode, playerState); + AddWithinZoneEdgesTo(navGraph, positionNode2, playerState); + if (playerState.TeleportUnlocked) + { + AddTeleportEdgesFromOrigin(navGraph, positionNode, list, playerState); + } + if (playerState != null && playerState.TeleportUnlocked && playerState.ReturnAvailable) + { + AddReturnEdge(navGraph, positionNode, playerState); + } + AddTicketTeleportEdges(navGraph, positionNode, playerState, null); + RecomputeAethernetCosts(navGraph); + AddBoundaryWithinZoneEdges(navGraph, playerState); + AddWarpWithinZoneEdges(navGraph, playerState); + AddConnectorWithinZoneEdges(navGraph, playerState); + logger.LogDebug("Cross-zone query graph: {NodeCount} nodes, {EdgeCount} edges", navGraph.NodeCount, navGraph.EdgeCount); + return (EffectiveGraph: navGraph, OriginId: positionNode.Id, DestinationId: positionNode2.Id); } private static bool WarpQuestGateSatisfied(NavNode.WarpNode warpNode, PlayerNavState playerState) { - int num = ((warpNode.RequiredQuestIds.Length != 0) ? (-1021069975) : (-1021069970)); - while (true) + if (warpNode.RequiredQuestIds.Length == 0) { - int num2 = num; - int num3 = -1021069971; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - return warpNode.RequiredQuestIds.All(playerState.IsQuestComplete); - case 4: - num = (warpNode.RequireAllQuests ? (-1021069971) : (-1021069972)); - break; - case 1: - return warpNode.RequiredQuestIds.Any(playerState.IsQuestComplete); - case 3: - return true; - case 2: - num = -1021069970; - break; - } + return true; } + if (!warpNode.RequireAllQuests) + { + return warpNode.RequiredQuestIds.Any(playerState.IsQuestComplete); + } + return warpNode.RequiredQuestIds.All(playerState.IsQuestComplete); } private static void PruneUncrossableFlyingBoundaries(NavGraph queryGraph, PlayerNavState playerState) { - IEnumerator<NavNode> enumerator = queryGraph.Nodes.Values.GetEnumerator(); - try + foreach (NavNode value in queryGraph.Nodes.Values) { - int num = 1561411569; - NavNode.ZoneBoundaryNode zoneBoundaryNode = default(NavNode.ZoneBoundaryNode); - while (true) + if (value is NavNode.ZoneBoundaryNode { RequiresFlying: not false } zoneBoundaryNode && !playerState.IsFlyingUnlocked(zoneBoundaryNode.TerritoryId)) { - int num2 = num; - int num3 = 1561411575; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 3: - num = ((!zoneBoundaryNode.RequiresFlying) ? 1561411569 : 1561411574); - break; - case 4: - zoneBoundaryNode = enumerator.Current as NavNode.ZoneBoundaryNode; - num = (((object)zoneBoundaryNode == null) ? 1561411569 : 1561411572); - break; - case 0: - num = 1561411569; - break; - case 1: - num = (playerState.IsFlyingUnlocked(zoneBoundaryNode.TerritoryId) ? 1561411569 : 1561411570); - break; - case 5: - queryGraph.RemoveEdges(zoneBoundaryNode.Id, (NavEdge e) => e.EdgeType == NavEdgeType.ZoneBoundary); - num = 1561411569; - break; - case 6: - num = (_202B_202B_200F_206B_206A_206A_200E_206A_200E_206C_206A_200E_200F_206A_200C_200D_202B_202D_206B_202B_200B_200F_202E_202E_206C_206A_200B_206E_202D_206B_202B_206C_200E_200D_206F_206D_202A_200F_202D_202A_202E((IEnumerator)enumerator) ? 1561411571 : 1561411573); - break; - case 2: - return; - } - } - } - finally - { - int num = ((enumerator == null) ? (-1966182711) : (-1966182710)); - while (true) - { - int num7 = num; - int num3 = -1966182709; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 0: - num = -1966182710; - break; - case 1: - _206E_200F_206F_202C_202C_206E_206C_200F_202A_200F_200F_202B_200B_200D_200D_206A_200D_206F_206A_200E_202D_202D_202A_200D_206F_206C_206B_200D_200C_206B_202E_200B_202D_202C_206D_206C_206A_206D_206F_200E_202E((IDisposable)enumerator); - num = -1966182711; - break; - case 2: - goto end_IL_014c; - } - continue; - end_IL_014c: - break; + queryGraph.RemoveEdges(zoneBoundaryNode.Id, (NavEdge e) => e.EdgeType == NavEdgeType.ZoneBoundary); } } } private static void CopyStaticEdges(NavGraph queryGraph, NavGraph staticGraph) { - IEnumerator<NavNode> enumerator = queryGraph.Nodes.Values.GetEnumerator(); - try + foreach (NavNode value in queryGraph.Nodes.Values) { - NavEdge current2 = default(NavEdge); - while (_202B_202B_200F_206B_206A_206A_200E_206A_200E_206C_206A_200E_200F_206A_200C_200D_202B_202D_206B_202B_200B_200F_202E_202E_206C_206A_200B_206E_202D_206B_202B_206C_200E_200D_206F_206D_202A_200F_202D_202A_202E((IEnumerator)enumerator)) + foreach (NavEdge edge in staticGraph.GetEdges(value.Id)) { - NavNode current = enumerator.Current; - IEnumerator<NavEdge> enumerator2 = staticGraph.GetEdges(current.Id).GetEnumerator(); - try + if (queryGraph.GetNode(edge.ToNodeId) != null) { - int num = 30778255; - while (true) - { - int num2 = num; - int num3 = 30778255; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = (_202B_202B_200F_206B_206A_206A_200E_206A_200E_206C_206A_200E_200F_206A_200C_200D_202B_202D_206B_202B_200B_200F_202E_202E_206C_206A_200B_206E_202D_206B_202B_206C_200E_200D_206F_206D_202A_200F_202D_202A_202E((IEnumerator)enumerator2) ? 30778251 : 30778254); - break; - case 2: - queryGraph.AddEdge(current2); - num = 30778255; - break; - case 4: - current2 = enumerator2.Current; - num = ((!(queryGraph.GetNode(current2.ToNodeId) != null)) ? 30778255 : 30778253); - break; - case 3: - num = 30778255; - break; - case 1: - goto end_IL_003b; - } - continue; - end_IL_003b: - break; - } + queryGraph.AddEdge(edge); } - finally - { - int num = ((enumerator2 == null) ? 975603848 : 975603851); - while (true) - { - int num7 = num; - int num3 = 975603850; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 975603851; - break; - case 1: - _206E_200F_206F_202C_202C_206E_206C_200F_202A_200F_200F_202B_200B_200D_200D_206A_200D_206F_206A_200E_202D_202D_202A_200D_206F_206C_206B_200D_200C_206B_202E_200B_202D_202C_206D_206C_206A_206D_206F_200E_202E((IDisposable)enumerator2); - num = 975603848; - break; - case 2: - goto end_IL_010c; - } - continue; - end_IL_010c: - break; - } - } - } - } - finally - { - int num = ((enumerator == null) ? 1159160104 : 1159160107); - while (true) - { - int num8 = num; - int num3 = 1159160106; - int num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1159160107; - break; - case 2: - goto end_IL_0185; - case 1: - _206E_200F_206F_202C_202C_206E_206C_200F_202A_200F_200F_202B_200B_200D_200D_206A_200D_206F_206A_200E_202D_202D_202A_200D_206F_206C_206B_200D_200C_206B_202E_200B_202D_202C_206D_206C_206A_206D_206F_200E_202E((IDisposable)enumerator); - num = 1159160104; - break; - } - continue; - end_IL_0185: - break; } } } private void AddWithinZoneEdgesFrom(NavGraph queryGraph, NavNode origin, PlayerNavState playerState) { - IEnumerator<string> enumerator = queryGraph.GetNodesInTerritory(origin.TerritoryId).GetEnumerator(); - try + foreach (string item in queryGraph.GetNodesInTerritory(origin.TerritoryId)) { - int num = -845739614; - NavNode node = default(NavNode); - string current = default(string); - while (true) + if (!(item == origin.Id)) { - int num2 = num; - int num3 = -845739616; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 6: + NavNode node = queryGraph.GetNode(item); + if (!(node == null) && AreNodesConnectedWithinZone(origin, node, origin.TerritoryId)) { float timeCostSeconds = costCalculator.EstimateWithinZoneTravelTime(origin.Position, node.Position, origin.TerritoryId, playerState); - queryGraph.AddEdge(new NavEdge(origin.Id, current, NavEdgeType.WithinZone, timeCostSeconds, 0)); - num = -845739614; - break; + queryGraph.AddEdge(new NavEdge(origin.Id, item, NavEdgeType.WithinZone, timeCostSeconds, 0)); } - case 1: - num = ((!AreNodesConnectedWithinZone(origin, node, origin.TerritoryId)) ? (-845739614) : (-845739610)); - break; - case 5: - num = -845739614; - break; - case 4: - current = enumerator.Current; - num = (_206D_206B_202A_200E_200B_206E_202E_206E_206E_206E_202B_200B_200F_202E_202E_200E_200F_202C_200C_202A_206B_200C_202D_200E_206C_206E_200F_202E_200B_200D_206C_200C_206F_206A_202D_200D_200E_200E_202D_202E(current, origin.Id) ? (-845739614) : (-845739616)); - break; - case 0: - node = queryGraph.GetNode(current); - num = ((node == null) ? (-845739614) : (-845739615)); - break; - case 2: - num = (_202B_202B_200F_206B_206A_206A_200E_206A_200E_206C_206A_200E_200F_206A_200C_200D_202B_202D_206B_202B_200B_200F_202E_202E_206C_206A_200B_206E_202D_206B_202B_206C_200E_200D_206F_206D_202A_200F_202D_202A_202E((IEnumerator)enumerator) ? (-845739612) : (-845739613)); - break; - case 3: - return; - } - } - } - finally - { - int num = ((enumerator == null) ? (-1480647069) : (-1480647070)); - while (true) - { - int num7 = num; - int num3 = -1480647069; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto end_IL_0175; - case 1: - _206E_200F_206F_202C_202C_206E_206C_200F_202A_200F_200F_202B_200B_200D_200D_206A_200D_206F_206A_200E_202D_202D_202A_200D_206F_206C_206B_200D_200C_206B_202E_200B_202D_202C_206D_206C_206A_206D_206F_200E_202E((IDisposable)enumerator); - num = -1480647069; - break; - case 2: - num = -1480647070; - break; - } - continue; - end_IL_0175: - break; } } } private void AddWithinZoneEdgesTo(NavGraph queryGraph, NavNode destination, PlayerNavState playerState) { - IEnumerator<string> enumerator = queryGraph.GetNodesInTerritory(destination.TerritoryId).GetEnumerator(); - try + foreach (string item in queryGraph.GetNodesInTerritory(destination.TerritoryId)) { - int num = 1437904752; - string current = default(string); - NavNode node = default(NavNode); - while (true) + if (!(item == destination.Id)) { - int num2 = num; - int num3 = 1437904757; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1437904752; - break; - case 3: - current = enumerator.Current; - num = (_206D_206B_202A_200E_200B_206E_202E_206E_206E_206E_202B_200B_200F_202E_202E_200E_200F_202C_200C_202A_206B_200C_202D_200E_206C_206E_200F_202E_200B_200D_206C_200C_206F_206A_202D_200D_200E_200E_202D_202E(current, destination.Id) ? 1437904752 : 1437904757); - break; - case 6: + NavNode node = queryGraph.GetNode(item); + if (!(node == null) && AreNodesConnectedWithinZone(node, destination, destination.TerritoryId)) { float timeCostSeconds = costCalculator.EstimateWithinZoneTravelTime(node.Position, destination.Position, destination.TerritoryId, playerState); - queryGraph.AddEdge(new NavEdge(current, destination.Id, NavEdgeType.WithinZone, timeCostSeconds, 0)); - num = 1437904752; - break; + queryGraph.AddEdge(new NavEdge(item, destination.Id, NavEdgeType.WithinZone, timeCostSeconds, 0)); } - case 5: - num = (_202B_202B_200F_206B_206A_206A_200E_206A_200E_206C_206A_200E_200F_206A_200C_200D_202B_202D_206B_202B_200B_200F_202E_202E_206C_206A_200B_206E_202D_206B_202B_206C_200E_200D_206F_206D_202A_200F_202D_202A_202E((IEnumerator)enumerator) ? 1437904758 : 1437904753); - break; - case 0: - node = queryGraph.GetNode(current); - num = ((node == null) ? 1437904752 : 1437904756); - break; - case 1: - num = ((!AreNodesConnectedWithinZone(node, destination, destination.TerritoryId)) ? 1437904752 : 1437904755); - break; - case 4: - return; - } - } - } - finally - { - int num = ((enumerator == null) ? 594834347 : 594834346); - while (true) - { - int num5 = num; - int num3 = 594834347; - int num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 2: - num = 594834346; - break; - case 0: - goto end_IL_0173; - case 1: - _206E_200F_206F_202C_202C_206E_206C_200F_202A_200F_200F_202B_200B_200D_200D_206A_200D_206F_206A_200E_202D_202D_202A_200D_206F_206C_206B_200D_200C_206B_202E_200B_202D_202C_206D_206C_206A_206D_206F_200E_202E((IDisposable)enumerator); - num = 594834347; - break; - } - continue; - end_IL_0173: - break; } } } @@ -880,221 +260,55 @@ public sealed class NavGraphView(CostCalculator costCalculator, ITerritoryInfo t private void AddTeleportEdgesFromOrigin(NavGraph queryGraph, NavNode origin, List<NavNode.AetheryteNode> largeAetherytes, PlayerNavState playerState) { float num = CostCalculator.EstimateTeleportTime(); - int num2 = ((!playerState.PreferFreeTravel) ? (-1195937511) : (-1195937512)); - int num8; - while (true) + bool flag = playerState.PreferFreeTravel && !territoryInfo.CanUseMount(playerState.CurrentTerritoryId); + foreach (NavNode.AetheryteNode largeAetheryte in largeAetherytes) { - int num3 = num2; - int num4 = -1195937511; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) + if (largeAetheryte.Aetheryte == playerState.HomeAetheryte && playerState.ReturnAvailable) { - default: continue; - case 2: - goto IL_0058; - case 1: - num8 = ((!territoryInfo.CanUseMount(playerState.CurrentTerritoryId)) ? 1 : 0); - break; - case 0: - num8 = 0; - break; } - break; - IL_0058: - num2 = -1195937512; - } - bool flag = (byte)num8 != 0; - using List<NavNode.AetheryteNode>.Enumerator enumerator = largeAetherytes.GetEnumerator(); - num2 = -745052022; - float num10 = default(float); - int num11 = default(int); - NavNode.AetheryteNode current = default(NavNode.AetheryteNode); - while (true) - { - int num9 = num2; - int num4 = -745052019; - int num5 = num9; - switch ((num5 | num4) - (num5 & num4)) + int num2 = EstimateTeleportGilCost(largeAetheryte.Aetheryte, playerState); + if (playerState.CanAffordTeleport(num2)) { - case 2: - num10 = num; - num2 = ((!flag) ? (-745052020) : (-745052023)); - break; - case 8: - num11 = EstimateTeleportGilCost(current.Aetheryte, playerState); - num2 = ((!playerState.CanAffordTeleport(num11)) ? (-745052022) : (-745052017)); - break; - case 0: - num2 = -745052022; - break; - case 6: - current = enumerator.Current; - num2 = ((current.Aetheryte != playerState.HomeAetheryte) ? (-745052027) : (-745052024)); - break; - case 9: - num10 *= 10f; - num2 = -745052020; - break; - case 7: - num2 = (enumerator.MoveNext() ? (-745052021) : (-745052018)); - break; - case 1: - queryGraph.AddEdge(new NavEdge(origin.Id, current.Id, NavEdgeType.Teleport, num10, num11)); - num2 = -745052022; - break; - case 4: - num2 = ((num11 <= 0) ? (-745052020) : (-745052028)); - break; - case 5: - num2 = (playerState.ReturnAvailable ? (-745052022) : (-745052027)); - break; - case 3: - return; + float num3 = num; + if (flag && num2 > 0) + { + num3 *= 10f; + } + queryGraph.AddEdge(new NavEdge(origin.Id, largeAetheryte.Id, NavEdgeType.Teleport, num3, num2)); } } } private void AddTicketTeleportEdges(NavGraph queryGraph, NavNode origin, PlayerNavState playerState, uint? restrictToTerritory) { - int num = ((playerState.AvailableTeleportTickets.Count != 0) ? 532905786 : 532905785); - TeleportTicketService.TeleportTicket current = default(TeleportTicketService.TeleportTicket); - NavNode.TicketNode ticketNode = default(NavNode.TicketNode); - while (true) + if (playerState.AvailableTeleportTickets.Count == 0) { - int num2 = num; - int num3 = 532905787; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return; + } + foreach (TeleportTicketService.TeleportTicket ticket in teleportTicketService.Tickets) + { + if (playerState.AvailableTeleportTickets.Contains(ticket.ItemId) && (!restrictToTerritory.HasValue || ticket.TerritoryId == restrictToTerritory) && territoryInfo.GetExVersion(ticket.TerritoryId) <= playerState.MaxExpansion) { - case 0: - goto IL_0056; - case 2: - return; - case 1: - { - IEnumerator<TeleportTicketService.TeleportTicket> enumerator = teleportTicketService.Tickets.GetEnumerator(); - try + NavNode.TicketNode ticketNode = new NavNode.TicketNode(ticket.ItemId, ticket.TerritoryId, ticket.Position); + if (queryGraph.GetNode(ticketNode.Id) == null) { - num = -129183693; - while (true) - { - int num7 = num; - num3 = -129183693; - num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 9: - num = ((current.TerritoryId != restrictToTerritory) ? (-129183693) : (-129183696)); - break; - case 1: - ticketNode = new NavNode.TicketNode(current.ItemId, current.TerritoryId, current.Position); - num = ((!(queryGraph.GetNode(ticketNode.Id) == null)) ? (-129183691) : (-129183695)); - break; - case 4: - num = -129183693; - break; - case 5: - num = ((!restrictToTerritory.HasValue) ? (-129183696) : (-129183686)); - break; - case 6: - queryGraph.AddEdge(new NavEdge(origin.Id, ticketNode.Id, NavEdgeType.TicketTeleport, CostCalculator.EstimateTeleportTime(), 0)); - AddWithinZoneEdgesFrom(queryGraph, ticketNode, playerState); - num = -129183693; - break; - case 0: - num = (_202B_202B_200F_206B_206A_206A_200E_206A_200E_206C_206A_200E_200F_206A_200C_200D_202B_202D_206B_202B_200B_200F_202E_202E_206C_206A_200B_206E_202D_206B_202B_206C_200E_200D_206F_206D_202A_200F_202D_202A_202E((IEnumerator)enumerator) ? (-129183692) : (-129183685)); - break; - case 7: - current = enumerator.Current; - num = ((!playerState.AvailableTeleportTickets.Contains(current.ItemId)) ? (-129183693) : (-129183690)); - break; - case 3: - num = ((territoryInfo.GetExVersion(current.TerritoryId) > playerState.MaxExpansion) ? (-129183693) : (-129183694)); - break; - case 2: - queryGraph.AddNode(ticketNode); - num = -129183691; - break; - case 8: - return; - } - } - } - finally - { - num = ((enumerator == null) ? 1931890800 : 1931890803); - while (true) - { - int num10 = num; - num3 = 1931890802; - num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 2: - goto end_IL_026d; - case 1: - _206E_200F_206F_202C_202C_206E_206C_200F_202A_200F_200F_202B_200B_200D_200D_206A_200D_206F_206A_200E_202D_202D_202A_200D_206F_206C_206B_200D_200C_206B_202E_200B_202D_202C_206D_206C_206A_206D_206F_200E_202E((IDisposable)enumerator); - num = 1931890800; - break; - case 0: - num = 1931890803; - break; - } - continue; - end_IL_026d: - break; - } + queryGraph.AddNode(ticketNode); } + queryGraph.AddEdge(new NavEdge(origin.Id, ticketNode.Id, NavEdgeType.TicketTeleport, CostCalculator.EstimateTeleportTime(), 0)); + AddWithinZoneEdgesFrom(queryGraph, ticketNode, playerState); } - } - continue; - IL_0056: - num = 532905785; } } - [MethodImpl(MethodImplOptions.NoInlining)] private static void AddReturnEdge(NavGraph queryGraph, NavNode origin, PlayerNavState playerState) { - int num = ((playerState.HomeAetheryte != EAetheryteLocation.None) ? 410582311 : 410582309); - string text = default(string); - while (true) + if (playerState.HomeAetheryte != EAetheryteLocation.None) { - int num2 = num; - int num3 = 410582308; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + string text = $"aetheryte:{playerState.HomeAetheryte}"; + if (!(queryGraph.GetNode(text) == null)) { - case 0: - num = 410582309; - break; - case 2: queryGraph.AddEdge(new NavEdge(origin.Id, text, NavEdgeType.Return, CostCalculator.EstimateTeleportTime(), 0)); - return; - case 3: - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(10, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(623658432)); - defaultInterpolatedStringHandler.AppendFormatted((int)playerState.HomeAetheryte); - text = defaultInterpolatedStringHandler.ToStringAndClear(); - num = ((!(queryGraph.GetNode(text) == null)) ? 410582310 : 410582304); - break; - } - case 1: - return; - case 4: - return; } } } @@ -1102,609 +316,120 @@ public sealed class NavGraphView(CostCalculator costCalculator, ITerritoryInfo t private static void RecomputeAethernetCosts(NavGraph queryGraph) { List<NavEdge> list = new List<NavEdge>(); - IEnumerator<KeyValuePair<string, NavNode>> enumerator = queryGraph.Nodes.GetEnumerator(); - try + foreach (var (nodeId, _) in queryGraph.Nodes) { - NavEdge current = default(NavEdge); - while (_202B_202B_200F_206B_206A_206A_200E_206A_200E_206C_206A_200E_200F_206A_200C_200D_202B_202D_206B_202B_200B_200F_202E_202E_206C_206A_200B_206E_202D_206B_202B_206C_200E_200D_206F_206D_202A_200F_202D_202A_202E((IEnumerator)enumerator)) + foreach (NavEdge edge in queryGraph.GetEdges(nodeId)) { - enumerator.Current.Deconstruct(out var key, out var _); - string nodeId = key; - IEnumerator<NavEdge> enumerator2 = queryGraph.GetEdges(nodeId).GetEnumerator(); - try + if (edge.EdgeType == NavEdgeType.AethernetHop && edge.TimeCostSeconds == 0f) { - int num = -1315650651; - while (true) - { - int num2 = num; - int num3 = -1315650655; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - num = -1315650651; - break; - case 2: - num = ((current.TimeCostSeconds != 0f) ? (-1315650651) : (-1315650655)); - break; - case 0: - { - float timeCostSeconds = CostCalculator.EstimateAethernetHopTime(); - list.Add(new NavEdge(current.FromNodeId, current.ToNodeId, NavEdgeType.AethernetHop, timeCostSeconds, 0)); - num = -1315650651; - break; - } - case 4: - num = (_202B_202B_200F_206B_206A_206A_200E_206A_200E_206C_206A_200E_200F_206A_200C_200D_202B_202D_206B_202B_200B_200F_202E_202E_206C_206A_200B_206E_202D_206B_202B_206C_200E_200D_206F_206D_202A_200F_202D_202A_202E((IEnumerator)enumerator2) ? (-1315650656) : (-1315650654)); - break; - case 1: - current = enumerator2.Current; - num = ((current.EdgeType != NavEdgeType.AethernetHop) ? (-1315650651) : (-1315650653)); - break; - case 3: - goto end_IL_0046; - } - continue; - end_IL_0046: - break; - } - } - finally - { - int num = ((enumerator2 == null) ? 1575360777 : 1575360778); - while (true) - { - int num5 = num; - int num3 = 1575360779; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_0159; - case 1: - _206E_200F_206F_202C_202C_206E_206C_200F_202A_200F_200F_202B_200B_200D_200D_206A_200D_206F_206A_200E_202D_202D_202A_200D_206F_206C_206B_200D_200C_206B_202E_200B_202D_202C_206D_206C_206A_206D_206F_200E_202E((IDisposable)enumerator2); - num = 1575360777; - break; - case 0: - num = 1575360778; - break; - } - continue; - end_IL_0159: - break; - } + float timeCostSeconds = CostCalculator.EstimateAethernetHopTime(); + list.Add(new NavEdge(edge.FromNodeId, edge.ToNodeId, NavEdgeType.AethernetHop, timeCostSeconds, 0)); } } } - finally + foreach (NavEdge item in list) { - int num = ((enumerator == null) ? (-258534269) : (-258534272)); - while (true) - { - int num6 = num; - int num3 = -258534270; - int num4 = num6; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -258534272; - break; - case 2: - _206E_200F_206F_202C_202C_206E_206C_200F_202A_200F_200F_202B_200B_200D_200D_206A_200D_206F_206A_200E_202D_202D_202A_200D_206F_206C_206B_200D_200C_206B_202E_200B_202D_202C_206D_206C_206A_206D_206F_200E_202E((IDisposable)enumerator); - num = -258534269; - break; - case 1: - goto end_IL_01d3; - } - continue; - end_IL_01d3: - break; - } - } - using List<NavEdge>.Enumerator enumerator3 = list.GetEnumerator(); - int num = -1541576202; - while (true) - { - int num7 = num; - int num3 = -1541576203; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1541576202; - break; - case 3: - num = (enumerator3.MoveNext() ? (-1541576201) : (-1541576204)); - break; - case 2: - { - NavEdge current2 = enumerator3.Current; - queryGraph.ReplaceEdge(current2); - num = -1541576202; - break; - } - case 1: - return; - } + queryGraph.ReplaceEdge(item); } } private void AddBoundaryWithinZoneEdges(NavGraph queryGraph, PlayerNavState playerState) { - IEnumerator<NavNode> enumerator = queryGraph.Nodes.Values.GetEnumerator(); - try + foreach (NavNode value in queryGraph.Nodes.Values) { - NavNode node = default(NavNode); - string current = default(string); - while (_202B_202B_200F_206B_206A_206A_200E_206A_200E_206C_206A_200E_200F_206A_200C_200D_202B_202D_206B_202B_200B_200F_202E_202E_206C_206A_200B_206E_202D_206B_202B_206C_200E_200D_206F_206D_202A_200F_202D_202A_202E((IEnumerator)enumerator)) + if (!(value is NavNode.ZoneBoundaryNode zoneBoundaryNode)) { - if (!(enumerator.Current is NavNode.ZoneBoundaryNode zoneBoundaryNode)) - { - continue; - } - IEnumerator<string> enumerator2 = queryGraph.GetNodesInTerritory(zoneBoundaryNode.TerritoryId).GetEnumerator(); - try - { - int num = 678629672; - while (true) - { - int num2 = num; - int num3 = 678629672; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = (_202B_202B_200F_206B_206A_206A_200E_206A_200E_206C_206A_200E_200F_206A_200C_200D_202B_202D_206B_202B_200B_200F_202E_202E_206C_206A_200B_206E_202D_206B_202B_206C_200E_200D_206F_206D_202A_200F_202D_202A_202E((IEnumerator)enumerator2) ? 678629664 : 678629675); - break; - case 5: - { - float timeCostSeconds = costCalculator.EstimateWithinZoneTravelTime(node.Position, zoneBoundaryNode.Position, zoneBoundaryNode.TerritoryId, playerState); - float timeCostSeconds2 = costCalculator.EstimateWithinZoneTravelTime(zoneBoundaryNode.Position, node.Position, zoneBoundaryNode.TerritoryId, playerState); - queryGraph.AddEdge(new NavEdge(current, zoneBoundaryNode.Id, NavEdgeType.WithinZone, timeCostSeconds, 0)); - queryGraph.AddEdge(new NavEdge(zoneBoundaryNode.Id, current, NavEdgeType.WithinZone, timeCostSeconds2, 0)); - num = 678629672; - break; - } - case 4: - num = ((_202B_200E_206B_200C_200F_202B_202D_200C_206E_200B_206C_200B_200D_202A_200D_206B_200E_206A_206B_202E_206A_200F_206A_200D_202D_202A_206A_206D_206E_202C_202C_206F_200F_202E_206B_200E_200F_202C_206D_200E_202E(zoneBoundaryNode.Id, current) >= 0) ? 678629672 : 678629679); - break; - case 1: - node = queryGraph.GetNode(current); - num = ((node == null) ? 678629672 : 678629674); - break; - case 6: - num = 678629672; - break; - case 2: - num = ((!(node is NavNode.ZoneBoundaryNode)) ? 678629679 : 678629676); - break; - case 8: - current = enumerator2.Current; - num = (_206D_206B_202A_200E_200B_206E_202E_206E_206E_206E_202B_200B_200F_202E_202E_200E_200F_202C_200C_202A_206B_200C_202D_200E_206C_206E_200F_202E_200B_200D_206C_200C_206F_206A_202D_200D_200E_200E_202D_202E(current, zoneBoundaryNode.Id) ? 678629672 : 678629673); - break; - case 7: - num = ((!AreNodesConnectedWithinZone(zoneBoundaryNode, node, zoneBoundaryNode.TerritoryId)) ? 678629672 : 678629677); - break; - case 3: - goto end_IL_0046; - } - continue; - end_IL_0046: - break; - } - } - finally - { - int num = ((enumerator2 == null) ? 947622411 : 947622408); - while (true) - { - int num7 = num; - int num3 = 947622409; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 947622408; - break; - case 2: - goto end_IL_0230; - case 1: - _206E_200F_206F_202C_202C_206E_206C_200F_202A_200F_200F_202B_200B_200D_200D_206A_200D_206F_206A_200E_202D_202D_202A_200D_206F_206C_206B_200D_200C_206B_202E_200B_202D_202C_206D_206C_206A_206D_206F_200E_202E((IDisposable)enumerator2); - num = 947622411; - break; - } - continue; - end_IL_0230: - break; - } - } - } - } - finally - { - int num = ((enumerator == null) ? 920604177 : 920604178); - while (true) - { - int num8 = num; - int num3 = 920604179; - int num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 920604178; - break; - case 2: - goto end_IL_02a9; - case 1: - _206E_200F_206F_202C_202C_206E_206C_200F_202A_200F_200F_202B_200B_200D_200D_206A_200D_206F_206A_200E_202D_202D_202A_200D_206F_206C_206B_200D_200C_206B_202E_200B_202D_202C_206D_206C_206A_206D_206F_200E_202E((IDisposable)enumerator); - num = 920604177; - break; - } continue; - end_IL_02a9: - break; + } + foreach (string item in queryGraph.GetNodesInTerritory(zoneBoundaryNode.TerritoryId)) + { + if (!(item == zoneBoundaryNode.Id)) + { + NavNode node = queryGraph.GetNode(item); + if (!(node == null) && (!(node is NavNode.ZoneBoundaryNode) || string.CompareOrdinal(zoneBoundaryNode.Id, item) < 0) && AreNodesConnectedWithinZone(zoneBoundaryNode, node, zoneBoundaryNode.TerritoryId)) + { + float timeCostSeconds = costCalculator.EstimateWithinZoneTravelTime(node.Position, zoneBoundaryNode.Position, zoneBoundaryNode.TerritoryId, playerState); + float timeCostSeconds2 = costCalculator.EstimateWithinZoneTravelTime(zoneBoundaryNode.Position, node.Position, zoneBoundaryNode.TerritoryId, playerState); + queryGraph.AddEdge(new NavEdge(item, zoneBoundaryNode.Id, NavEdgeType.WithinZone, timeCostSeconds, 0)); + queryGraph.AddEdge(new NavEdge(zoneBoundaryNode.Id, item, NavEdgeType.WithinZone, timeCostSeconds2, 0)); + } + } } } } private void AddWarpWithinZoneEdges(NavGraph queryGraph, PlayerNavState playerState) { - IEnumerator<NavNode> enumerator = queryGraph.Nodes.Values.GetEnumerator(); - try + foreach (NavNode value in queryGraph.Nodes.Values) { - NavNode node = default(NavNode); - string current = default(string); - while (_202B_202B_200F_206B_206A_206A_200E_206A_200E_206C_206A_200E_200F_206A_200C_200D_202B_202D_206B_202B_200B_200F_202E_202E_206C_206A_200B_206E_202D_206B_202B_206C_200E_200D_206F_206D_202A_200F_202D_202A_202E((IEnumerator)enumerator)) + if (!(value is NavNode.WarpNode warpNode)) { - if (!(enumerator.Current is NavNode.WarpNode warpNode)) - { - continue; - } - IEnumerator<string> enumerator2 = queryGraph.GetNodesInTerritory(warpNode.TerritoryId).GetEnumerator(); - try - { - int num = 1985395046; - while (true) - { - int num2 = num; - int num3 = 1985395046; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 8: - num = ((!(node is NavNode.WarpNode)) ? 1985395043 : 1985395040); - break; - case 7: - current = enumerator2.Current; - num = (_206D_206B_202A_200E_200B_206E_202E_206E_206E_206E_202B_200B_200F_202E_202E_200E_200F_202C_200C_202A_206B_200C_202D_200E_206C_206E_200F_202E_200B_200D_206C_200C_206F_206A_202D_200D_200E_200E_202D_202E(current, warpNode.Id) ? 1985395046 : 1985395045); - break; - case 2: - num = 1985395046; - break; - case 3: - node = queryGraph.GetNode(current); - num = ((node == null) ? 1985395046 : 1985395054); - break; - case 0: - num = (_202B_202B_200F_206B_206A_206A_200E_206A_200E_206C_206A_200E_200F_206A_200C_200D_202B_202D_206B_202B_200B_200F_202E_202E_206C_206A_200B_206E_202D_206B_202B_206C_200E_200D_206F_206D_202A_200F_202D_202A_202E((IEnumerator)enumerator2) ? 1985395041 : 1985395042); - break; - case 1: - { - float timeCostSeconds = costCalculator.EstimateWithinZoneTravelTime(node.Position, warpNode.Position, warpNode.TerritoryId, playerState); - float timeCostSeconds2 = costCalculator.EstimateWithinZoneTravelTime(warpNode.Position, node.Position, warpNode.TerritoryId, playerState); - queryGraph.AddEdge(new NavEdge(current, warpNode.Id, NavEdgeType.WithinZone, timeCostSeconds, 0)); - queryGraph.AddEdge(new NavEdge(warpNode.Id, current, NavEdgeType.WithinZone, timeCostSeconds2, 0)); - num = 1985395046; - break; - } - case 5: - num = ((node is NavNode.ZoneBoundaryNode) ? 1985395046 : 1985395055); - break; - case 6: - num = ((_202B_200E_206B_200C_200F_202B_202D_200C_206E_200B_206C_200B_200D_202A_200D_206B_200E_206A_206B_202E_206A_200F_206A_200D_202D_202A_206A_206D_206E_202C_202C_206F_200F_202E_206B_200E_200F_202C_206D_200E_202E(warpNode.Id, current) >= 0) ? 1985395046 : 1985395043); - break; - case 9: - num = ((!AreNodesConnectedWithinZone(warpNode, node, warpNode.TerritoryId)) ? 1985395046 : 1985395047); - break; - case 4: - goto end_IL_0046; - } - continue; - end_IL_0046: - break; - } - } - finally - { - int num = ((enumerator2 == null) ? (-1883846692) : (-1883846689)); - while (true) - { - int num5 = num; - int num3 = -1883846690; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto end_IL_0256; - case 1: - _206E_200F_206F_202C_202C_206E_206C_200F_202A_200F_200F_202B_200B_200D_200D_206A_200D_206F_206A_200E_202D_202D_202A_200D_206F_206C_206B_200D_200C_206B_202E_200B_202D_202C_206D_206C_206A_206D_206F_200E_202E((IDisposable)enumerator2); - num = -1883846692; - break; - case 0: - num = -1883846689; - break; - } - continue; - end_IL_0256: - break; - } - } - } - } - finally - { - int num = ((enumerator == null) ? 1643037069 : 1643037070); - while (true) - { - int num6 = num; - int num3 = 1643037071; - int num4 = num6; - int num7 = num4 + num3; - int num8 = num4 & num3; - switch (num7 - (num8 + num8)) - { - case 0: - num = 1643037070; - break; - case 2: - goto end_IL_02cf; - case 1: - _206E_200F_206F_202C_202C_206E_206C_200F_202A_200F_200F_202B_200B_200D_200D_206A_200D_206F_206A_200E_202D_202D_202A_200D_206F_206C_206B_200D_200C_206B_202E_200B_202D_202C_206D_206C_206A_206D_206F_200E_202E((IDisposable)enumerator); - num = 1643037069; - break; - } continue; - end_IL_02cf: - break; + } + foreach (string item in queryGraph.GetNodesInTerritory(warpNode.TerritoryId)) + { + if (!(item == warpNode.Id)) + { + NavNode node = queryGraph.GetNode(item); + if (!(node == null) && (!(node is NavNode.WarpNode) || string.CompareOrdinal(warpNode.Id, item) < 0) && !(node is NavNode.ZoneBoundaryNode) && AreNodesConnectedWithinZone(warpNode, node, warpNode.TerritoryId)) + { + float timeCostSeconds = costCalculator.EstimateWithinZoneTravelTime(node.Position, warpNode.Position, warpNode.TerritoryId, playerState); + float timeCostSeconds2 = costCalculator.EstimateWithinZoneTravelTime(warpNode.Position, node.Position, warpNode.TerritoryId, playerState); + queryGraph.AddEdge(new NavEdge(item, warpNode.Id, NavEdgeType.WithinZone, timeCostSeconds, 0)); + queryGraph.AddEdge(new NavEdge(warpNode.Id, item, NavEdgeType.WithinZone, timeCostSeconds2, 0)); + } + } } } } private void AddConnectorWithinZoneEdges(NavGraph queryGraph, PlayerNavState playerState) { - IEnumerator<NavNode> enumerator = queryGraph.Nodes.Values.GetEnumerator(); - try + foreach (NavNode value in queryGraph.Nodes.Values) { - bool flag = default(bool); - NavNode node = default(NavNode); - string current = default(string); - while (_202B_202B_200F_206B_206A_206A_200E_206A_200E_206C_206A_200E_200F_206A_200C_200D_202B_202D_206B_202B_200B_200F_202E_202E_206C_206A_200B_206E_202D_206B_202B_206C_200E_200D_206F_206D_202A_200F_202D_202A_202E((IEnumerator)enumerator)) + if (!(value is NavNode.SubRegionConnectorNode subRegionConnectorNode)) { - if (!(enumerator.Current is NavNode.SubRegionConnectorNode subRegionConnectorNode)) + continue; + } + foreach (string item in queryGraph.GetNodesInTerritory(subRegionConnectorNode.TerritoryId)) + { + if (item == subRegionConnectorNode.Id) { continue; } - IEnumerator<string> enumerator2 = queryGraph.GetNodesInTerritory(subRegionConnectorNode.TerritoryId).GetEnumerator(); - try + NavNode node = queryGraph.GetNode(item); + if (!(node == null) && (!(node is NavNode.SubRegionConnectorNode) || string.CompareOrdinal(subRegionConnectorNode.Id, item) < 0)) { - int num = -20087948; - while (true) + bool flag = ((node is NavNode.ZoneBoundaryNode || node is NavNode.WarpNode) ? true : false); + if (!flag && AreNodesConnectedWithinZone(subRegionConnectorNode, node, subRegionConnectorNode.TerritoryId)) { - int num2 = num; - int num3 = -20087938; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 11: - flag = false; - num = -20087938; - break; - case 3: - { - float timeCostSeconds = costCalculator.EstimateWithinZoneTravelTime(node.Position, subRegionConnectorNode.Position, subRegionConnectorNode.TerritoryId, playerState); - float timeCostSeconds2 = costCalculator.EstimateWithinZoneTravelTime(subRegionConnectorNode.Position, node.Position, subRegionConnectorNode.TerritoryId, playerState); - queryGraph.AddEdge(new NavEdge(current, subRegionConnectorNode.Id, NavEdgeType.WithinZone, timeCostSeconds, 0)); - queryGraph.AddEdge(new NavEdge(subRegionConnectorNode.Id, current, NavEdgeType.WithinZone, timeCostSeconds2, 0)); - num = -20087948; - break; - } - case 6: - num = ((node is NavNode.ZoneBoundaryNode) ? (-20087937) : (-20087943)); - break; - case 8: - node = queryGraph.GetNode(current); - num = ((node == null) ? (-20087948) : (-20087940)); - break; - case 12: - num = ((_202B_200E_206B_200C_200F_202B_202D_200C_206E_200B_206C_200B_200D_202A_200D_206B_200E_206A_206B_202E_206A_200F_206A_200D_202D_202A_206A_206D_206E_202C_202C_206F_200F_202E_206B_200E_200F_202C_206D_200E_202E(subRegionConnectorNode.Id, current) >= 0) ? (-20087948) : (-20087944)); - break; - case 4: - current = enumerator2.Current; - num = (_206D_206B_202A_200E_200B_206E_202E_206E_206E_206E_202B_200B_200F_202E_202E_200E_200F_202C_200C_202A_206B_200C_202D_200E_206C_206E_200F_202E_200B_200D_206C_200C_206F_206A_202D_200D_200E_200E_202D_202E(current, subRegionConnectorNode.Id) ? (-20087948) : (-20087946)); - break; - case 10: - num = (_202B_202B_200F_206B_206A_206A_200E_206A_200E_206C_206A_200E_200F_206A_200C_200D_202B_202D_206B_202B_200B_200F_202E_202E_206C_206A_200B_206E_202D_206B_202B_206C_200E_200D_206F_206D_202A_200F_202D_202A_202E((IEnumerator)enumerator2) ? (-20087942) : (-20087941)); - break; - case 7: - num = ((!(node is NavNode.WarpNode)) ? (-20087947) : (-20087937)); - break; - case 0: - num = (flag ? (-20087948) : (-20087949)); - break; - case 1: - flag = true; - num = -20087938; - break; - case 9: - num = -20087948; - break; - case 2: - num = ((!(node is NavNode.SubRegionConnectorNode)) ? (-20087944) : (-20087950)); - break; - case 13: - num = ((!AreNodesConnectedWithinZone(subRegionConnectorNode, node, subRegionConnectorNode.TerritoryId)) ? (-20087948) : (-20087939)); - break; - case 5: - goto end_IL_0046; - } - continue; - end_IL_0046: - break; + float timeCostSeconds = costCalculator.EstimateWithinZoneTravelTime(node.Position, subRegionConnectorNode.Position, subRegionConnectorNode.TerritoryId, playerState); + float timeCostSeconds2 = costCalculator.EstimateWithinZoneTravelTime(subRegionConnectorNode.Position, node.Position, subRegionConnectorNode.TerritoryId, playerState); + queryGraph.AddEdge(new NavEdge(item, subRegionConnectorNode.Id, NavEdgeType.WithinZone, timeCostSeconds, 0)); + queryGraph.AddEdge(new NavEdge(subRegionConnectorNode.Id, item, NavEdgeType.WithinZone, timeCostSeconds2, 0)); } } - finally - { - int num = ((enumerator2 == null) ? 1921938678 : 1921938679); - while (true) - { - int num7 = num; - int num3 = 1921938678; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) - { - case 2: - num = 1921938679; - break; - case 0: - goto end_IL_02c9; - case 1: - _206E_200F_206F_202C_202C_206E_206C_200F_202A_200F_200F_202B_200B_200D_200D_206A_200D_206F_206A_200E_202D_202D_202A_200D_206F_206C_206B_200D_200C_206B_202E_200B_202D_202C_206D_206C_206A_206D_206F_200E_202E((IDisposable)enumerator2); - num = 1921938678; - break; - } - continue; - end_IL_02c9: - break; - } - } - } - } - finally - { - int num = ((enumerator == null) ? (-1456790234) : (-1456790235)); - while (true) - { - int num10 = num; - int num3 = -1456790236; - int num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - case 2: - goto end_IL_0344; - case 1: - _206E_200F_206F_202C_202C_206E_206C_200F_202A_200F_200F_202B_200B_200D_200D_206A_200D_206F_206A_200E_202D_202D_202A_200D_206F_206C_206B_200D_200C_206B_202E_200B_202D_202C_206D_206C_206A_206D_206F_200E_202E((IDisposable)enumerator); - num = -1456790234; - break; - case 0: - num = -1456790235; - break; - } - continue; - end_IL_0344: - break; } } } private bool AreNodesConnectedWithinZone(NavNode a, NavNode b, uint territoryId) { - int num = (zoneSubRegionService.HasSubRegions(territoryId) ? 257099617 : 257099621); - NavNode.SubRegionConnectorNode subRegionConnectorNode2 = default(NavNode.SubRegionConnectorNode); - string text2 = default(string); - string text = default(string); - NavNode.SubRegionConnectorNode subRegionConnectorNode = default(NavNode.SubRegionConnectorNode); - while (true) + if (!zoneSubRegionService.HasSubRegions(territoryId)) { - int num2 = num; - int num3 = 257099617; - int num4 = num2; - string subRegionId2; - string subRegionId; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 7: - num = 257099621; - continue; - case 3: - subRegionId2 = zoneSubRegionService.GetSubRegionId(territoryId, a.Position.X, a.Position.Y, a.Position.Z); - goto IL_00c1; - case 8: - subRegionId2 = subRegionConnectorNode2.SubRegionId; - goto IL_00c1; - case 0: - subRegionConnectorNode2 = a as NavNode.SubRegionConnectorNode; - num = (((object)subRegionConnectorNode2 != null) ? 257099625 : 257099618); - continue; - case 9: - return true; - case 4: - return true; - case 1: - subRegionId = zoneSubRegionService.GetSubRegionId(territoryId, b.Position.X, b.Position.Y, b.Position.Z); - break; - case 5: - return _206D_206B_202A_200E_200B_206E_202E_206E_206E_206E_202B_200B_200F_202E_202E_200E_200F_202C_200C_202A_206B_200C_202D_200E_206C_206E_200F_202E_200B_200D_206C_200C_206F_206A_202D_200D_200E_200E_202D_202E(text2, text); - case 6: - num = ((text != null) ? 257099620 : 257099624); - continue; - case 2: - { - subRegionId = subRegionConnectorNode.SubRegionId; - break; - } - IL_00c1: - text2 = subRegionId2; - subRegionConnectorNode = b as NavNode.SubRegionConnectorNode; - num = (((object)subRegionConnectorNode != null) ? 257099619 : 257099616); - continue; - } - text = subRegionId; - num = ((text2 == null) ? 257099624 : 257099623); + return true; } + string text = ((a is NavNode.SubRegionConnectorNode subRegionConnectorNode) ? subRegionConnectorNode.SubRegionId : zoneSubRegionService.GetSubRegionId(territoryId, a.Position.X, a.Position.Y, a.Position.Z)); + string text2 = ((b is NavNode.SubRegionConnectorNode subRegionConnectorNode2) ? subRegionConnectorNode2.SubRegionId : zoneSubRegionService.GetSubRegionId(territoryId, b.Position.X, b.Position.Y, b.Position.Z)); + if (text == null || text2 == null) + { + return true; + } + return text == text2; } private static int EstimateTeleportGilCost(EAetheryteLocation aetheryte, PlayerNavState playerState) { return playerState.GetTeleportCost(aetheryte); } - - static bool _202B_202B_200F_206B_206A_206A_200E_206A_200E_206C_206A_200E_200F_206A_200C_200D_202B_202D_206B_202B_200B_200F_202E_202E_206C_206A_200B_206E_202D_206B_202B_206C_200E_200D_206F_206D_202A_200F_202D_202A_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206E_200F_206F_202C_202C_206E_206C_200F_202A_200F_200F_202B_200B_200D_200D_206A_200D_206F_206A_200E_202D_202D_202A_200D_206F_206C_206B_200D_200C_206B_202E_200B_202D_202C_206D_206C_206A_206D_206F_200E_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool _202D_206F_202C_200B_206E_200E_200C_200D_202A_202B_206B_206B_200B_202A_202B_202C_206B_202C_200E_200F_202E_206C_202D_206B_202E_202E_202C_206E_202C_206B_200F_200D_200B_206E_206F_206B_206B_202E_200C_202A_202E(string P_0, string P_1) - { - return P_0 != P_1; - } - - static void _206B_206A_206F_206B_200C_200D_200C_206E_206F_202E_200E_206D_206C_206D_202B_202D_200C_202E_202C_206C_200D_206D_200B_200B_200E_200C_206C_202E_200B_202D_200C_206A_206E_202D_206F_202B_206E_200D_202D_202B_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _206D_206B_202A_200E_200B_206E_202E_206E_206E_206E_202B_200B_200F_202E_202E_200E_200F_202C_200C_202A_206B_200C_202D_200E_206C_206E_200F_202E_200B_200D_206C_200C_206F_206A_202D_200D_200E_200E_202D_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static int _202B_200E_206B_200C_200F_202B_202D_200C_206E_200B_206C_200B_200D_202A_200D_206B_200E_206A_206B_202E_206A_200F_206A_200D_202D_202A_206A_206D_206E_202C_202C_206F_200F_202E_206B_200E_200F_202C_206D_200E_202E(string P_0, string P_1) - { - return string.CompareOrdinal(P_0, P_1); - } } diff --git a/SmartNav/SmartNav/NavInstruction.cs b/SmartNav/SmartNav/NavInstruction.cs index f5f8120..8261171 100644 --- a/SmartNav/SmartNav/NavInstruction.cs +++ b/SmartNav/SmartNav/NavInstruction.cs @@ -1,1481 +1,32 @@ -using System; using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using SmartNav.Model; namespace SmartNav; public abstract record NavInstruction { - public sealed record Teleport(EAetheryteLocation Target, ushort ExpectedTerritory) : NavInstruction() - { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _202B_206A_202A_202E_206C_200C_206B_202D_200D_200F_206B_200E_202C_202B_206E_202A_202A_200C_200D_206D_202B_202C_206F_206F_202E_200C_206D_206C_202A_200C_206A_202B_202B_206B_206D_200E_206C_202A_202B_202D_202E(typeof(Teleport).TypeHandle); - } - } + public sealed record Teleport(EAetheryteLocation Target, ushort ExpectedTerritory) : NavInstruction(); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200B_202C_206B_206A_206A_200F_200C_200F_202A_200F_200C_206D_200C_206E_206A_206C_202D_206E_202D_206E_206D_202D_206C_202D_202C_206F_206C_202C_206F_200B_200D_200D_202C_202A_200B_200F_206A_206E_200F_206C_202E(); - _200E_202B_202C_202C_200F_206F_200F_200B_206A_202C_200F_206D_202E_200F_206F_202C_202D_206A_206B_206D_200F_206D_206D_206D_206E_206F_206F_200B_206D_202A_206A_202A_200F_202B_202C_200D_202A_200C_206E_206C_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(520762376)); - _200E_202B_202C_202C_200F_206F_200F_200B_206A_202C_200F_206D_202E_200F_206F_202C_202D_206A_206B_206D_200F_206D_206D_206D_206E_206F_206F_200B_206D_202A_206A_202A_200F_202B_202C_200D_202A_200C_206E_206C_202E(stringBuilder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1886515922)); - int num = ((!PrintMembers(stringBuilder)) ? (-334069347) : (-334069346)); - while (true) - { - int num2 = num; - int num3 = -334069348; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -334069346; - break; - case 1: - _206F_200D_206B_200B_202C_206B_206B_206B_200D_200B_206A_202E_202C_202A_202E_206B_202C_200B_202B_206D_202A_202A_206A_200D_202C_202E_200C_206C_206E_202A_206B_206E_202C_202E_200D_206C_202E_200E_202E_200C_202E(stringBuilder, '}'); - return _206C_200B_202E_200E_206F_200D_202B_200D_200E_200F_206D_200B_202E_206A_202C_206F_206B_200B_202A_206A_202B_200F_200E_206A_202A_202C_202E_200C_206B_200C_202E_206C_206C_200C_202A_206F_200E_202A_206E_200E_202E((object)stringBuilder); - case 2: - _206F_200D_206B_200B_202C_206B_206B_206B_200D_200B_206A_202E_202C_202A_202E_206B_202C_200B_202B_206D_202A_202A_206A_200D_202C_202E_200C_206C_206E_202A_206B_206E_202C_202E_200D_206C_202E_200E_202E_200C_202E(stringBuilder, ' '); - num = -334069347; - break; - } - } - } + public sealed record AethernetHop(EAetheryteLocation From, EAetheryteLocation To) : NavInstruction(); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? (-955478791) : (-955478790)); - while (true) - { - int num2 = num; - int num3 = -955478792; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - _200E_202B_202C_202C_200F_206F_200F_200B_206A_202C_200F_206D_202E_200F_206F_202C_202D_206A_206B_206D_200F_206D_206D_206D_206E_206F_206F_200B_206D_202A_206A_202A_200F_202B_202C_200D_202A_200C_206E_206C_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-882810597)); - _200E_202B_202C_202C_200F_206F_200F_200B_206A_202C_200F_206D_202E_200F_206F_202C_202D_206A_206B_206D_200F_206D_206D_206D_206E_206F_206F_200B_206D_202A_206A_202A_200F_202B_202C_200D_202A_200C_206E_206C_202E(builder, Target.ToString()); - _200E_202B_202C_202C_200F_206F_200F_200B_206A_202C_200F_206D_202E_200F_206F_202C_202D_206A_206B_206D_200F_206D_206D_206D_206E_206F_206F_200B_206D_202A_206A_202A_200F_202B_202C_200D_202A_200C_206E_206C_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-647095476)); - _200E_202B_202C_202C_200F_206F_200F_200B_206A_202C_200F_206D_202E_200F_206F_202C_202D_206A_206B_206D_200F_206D_206D_206D_206E_206F_206F_200B_206D_202A_206A_202A_200F_202B_202C_200D_202A_200C_206E_206C_202E(builder, ExpectedTerritory.ToString()); - return true; - case 2: - _200E_202B_202C_202C_200F_206F_200F_200B_206A_202C_200F_206D_202E_200F_206F_202C_202D_206A_206B_206D_200F_206D_206D_206D_206E_206F_206F_200B_206D_202A_206A_202A_200F_202B_202C_200D_202A_200C_206E_206C_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1735617534)); - num = -955478791; - break; - case 0: - num = -955478790; - break; - } - } - } + public sealed record Move(ushort Territory, Vector3 Position, bool Fly, bool LandAtTarget, float? StopDistance, uint? DataId, bool? Mount, bool DisableNavmesh, bool AllowZoneTransition, string? TargetNodeId, string? ApproachNodeId, bool IsFinal) : NavInstruction(); - [CompilerGenerated] - public bool Equals(Teleport? other) - { - int num = (((object)this == other) ? (-1930487852) : (-1930487849)); - while (true) - { - int num2 = num; - int num3 = -1930487852; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - num = -1930487849; - break; - case 0: - return true; - case 2: - num = ((!EqualityComparer<EAetheryteLocation>.Default.Equals(Target, other.Target)) ? (-1930487856) : (-1930487851)); - break; - case 3: - num = ((!base.Equals(other)) ? (-1930487856) : (-1930487850)); - break; - case 4: - return false; - case 1: - return EqualityComparer<ushort>.Default.Equals(ExpectedTerritory, other.ExpectedTerritory); - } - } - } + public sealed record Land : NavInstruction; - bool IEquatable<Teleport>.Equals(Teleport? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } + public sealed record Unmount : NavInstruction; - static Type _202B_206A_202A_202E_206C_200C_206B_202D_200D_200F_206B_200E_202C_202B_206E_202A_202A_200C_200D_206D_202B_202C_206F_206F_202E_200C_206D_206C_202A_200C_206A_202B_202B_206B_206D_200E_206C_202A_202B_202D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } + public sealed record WaitForTerritory(IReadOnlyList<uint> Acceptable, string Description) : NavInstruction(); - static StringBuilder _200B_202C_206B_206A_206A_200F_200C_200F_202A_200F_200C_206D_200C_206E_206A_206C_202D_206E_202D_206E_206D_202D_206C_202D_202C_206F_206C_202C_206F_200B_200D_200D_202C_202A_200B_200F_206A_206E_200F_206C_202E() - { - return new StringBuilder(); - } + public sealed record WaitForNavmesh : NavInstruction; - static StringBuilder _200E_202B_202C_202C_200F_206F_200F_200B_206A_202C_200F_206D_202E_200F_206F_202C_202D_206A_206B_206D_200F_206D_206D_206D_206E_206F_206F_200B_206D_202A_206A_202A_200F_202B_202C_200D_202A_200C_206E_206C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } + public sealed record InteractWarp(uint NpcDataId, uint WarpRowId, ushort FromTerritory, ushort ToTerritory) : NavInstruction(); - static StringBuilder _206F_200D_206B_200B_202C_206B_206B_206B_200D_200B_206A_202E_202C_202A_202E_206B_202C_200B_202B_206D_202A_202A_206A_200D_202C_202E_200C_206C_206E_202A_206B_206E_202C_202E_200D_206C_202E_200E_202E_200C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } + public sealed record UseTeleportTicket(uint ItemId, ushort Territory) : NavInstruction(); - static string _206C_200B_202E_200E_206F_200D_202B_200D_200E_200F_206D_200B_202E_206A_202C_206F_206B_200B_202A_206A_202B_200F_200E_206A_202A_202C_202E_200C_206B_200C_202E_206C_206C_200C_202A_206F_200E_202A_206E_200E_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _200E_200E_200C_206C_200E_200C_206E_206B_200B_206D_206F_200E_206B_202A_200D_206F_200B_200E_206B_200C_200D_202C_206F_202E_200E_206E_200C_202B_200E_200C_202C_206D_200E_206D_206B_200B_206C_206A_200F_200E_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } - } - - public sealed record AethernetHop(EAetheryteLocation From, EAetheryteLocation To) : NavInstruction() - { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _200F_200E_202D_206F_202C_202D_200E_206A_200C_206A_206A_200D_206A_202D_206C_206F_206C_200E_200F_200C_206F_200E_206F_202D_200D_202B_202C_200D_200B_202A_202A_200E_200E_200C_206E_200F_200B_202D_200F_200C_202E(typeof(AethernetHop).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206F_206D_202B_200E_200E_200C_206D_206B_200B_202A_200D_200B_200E_206F_206E_206A_206F_206C_206F_206A_200F_200F_200B_200C_206C_202B_200F_200C_200B_206C_206E_200C_202E_200F_206F_202A_200F_202D_202E_202A_202E(); - _200D_202E_206C_206F_206C_200D_202C_202B_206D_202E_202E_202A_202B_206E_206B_202D_200E_200F_202A_200E_200C_206D_206E_202B_206C_206F_200E_200E_206F_206C_200B_200C_200B_202E_202D_200E_206E_202B_206C_206C_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(646727576)); - _200D_202E_206C_206F_206C_200D_202C_202B_206D_202E_202E_202A_202B_206E_206B_202D_200E_200F_202A_200E_200C_206D_206E_202B_206C_206F_200E_200E_206F_206C_200B_200C_200B_202E_202D_200E_206E_202B_206C_206C_202E(stringBuilder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1120247710)); - int num = ((!PrintMembers(stringBuilder)) ? 731190541 : 731190540); - while (true) - { - int num2 = num; - int num3 = 731190541; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _206E_202B_206F_202B_200F_200E_200C_200F_206E_206F_200B_206D_206A_200F_200F_206B_200D_202B_202A_202E_202E_206C_200E_202A_206D_206A_200B_206F_206B_202E_200E_206E_200E_206B_202C_206C_202A_200C_206C_202D_202E(stringBuilder, '}'); - return _200B_200F_200E_206C_206B_202C_200D_206A_206B_202C_200E_200F_200F_200D_200C_206D_200E_206C_200B_200C_206B_200E_202E_200D_206A_200E_206A_200C_202C_202D_200B_206A_200D_202C_202E_202C_202A_200F_200B_200E_202E((object)stringBuilder); - case 1: - _206E_202B_206F_202B_200F_200E_200C_200F_206E_206F_200B_206D_206A_200F_200F_206B_200D_202B_202A_202E_202E_206C_200E_202A_206D_206A_200B_206F_206B_202E_200E_206E_200E_206B_202C_206C_202A_200C_206C_202D_202E(stringBuilder, ' '); - num = 731190541; - break; - case 2: - num = 731190540; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? 262222259 : 262222258); - while (true) - { - int num2 = num; - int num3 = 262222259; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 262222258; - break; - case 1: - _200D_202E_206C_206F_206C_200D_202C_202B_206D_202E_202E_202A_202B_206E_206B_202D_200E_200F_202A_200E_200C_206D_206E_202B_206C_206F_200E_200E_206F_206C_200B_200C_200B_202E_202D_200E_206E_202B_206C_206C_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(520781629)); - num = 262222259; - break; - case 0: - _200D_202E_206C_206F_206C_200D_202C_202B_206D_202E_202E_202A_202B_206E_206B_202D_200E_200F_202A_200E_200C_206D_206E_202B_206C_206F_200E_200E_206F_206C_200B_200C_200B_202E_202D_200E_206E_202B_206C_206C_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1585380673)); - _200D_202E_206C_206F_206C_200D_202C_202B_206D_202E_202E_202A_202B_206E_206B_202D_200E_200F_202A_200E_200C_206D_206E_202B_206C_206F_200E_200E_206F_206C_200B_200C_200B_202E_202D_200E_206E_202B_206C_206C_202E(builder, From.ToString()); - _200D_202E_206C_206F_206C_200D_202C_202B_206D_202E_202E_202A_202B_206E_206B_202D_200E_200F_202A_200E_200C_206D_206E_202B_206C_206F_200E_200E_206F_206C_200B_200C_200B_202E_202D_200E_206E_202B_206C_206C_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-1504115831)); - _200D_202E_206C_206F_206C_200D_202C_202B_206D_202E_202E_202A_202B_206E_206B_202D_200E_200F_202A_200E_200C_206D_206E_202B_206C_206F_200E_200E_206F_206C_200B_200C_200B_202E_202D_200E_206E_202B_206C_206C_202E(builder, To.ToString()); - return true; - } - } - } - - [CompilerGenerated] - public bool Equals(AethernetHop? other) - { - int num = (((object)this == other) ? 1340176582 : 1340176578); - while (true) - { - int num2 = num; - int num3 = 1340176583; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 4: - num = ((!EqualityComparer<EAetheryteLocation>.Default.Equals(From, other.From)) ? 1340176583 : 1340176581); - break; - case 5: - num = ((!base.Equals(other)) ? 1340176583 : 1340176579); - break; - case 3: - num = 1340176578; - break; - case 0: - return false; - case 1: - return true; - case 2: - return EqualityComparer<EAetheryteLocation>.Default.Equals(To, other.To); - } - } - } - - bool IEquatable<AethernetHop>.Equals(AethernetHop? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200F_200E_202D_206F_202C_202D_200E_206A_200C_206A_206A_200D_206A_202D_206C_206F_206C_200E_200F_200C_206F_200E_206F_202D_200D_202B_202C_200D_200B_202A_202A_200E_200E_200C_206E_200F_200B_202D_200F_200C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206F_206D_202B_200E_200E_200C_206D_206B_200B_202A_200D_200B_200E_206F_206E_206A_206F_206C_206F_206A_200F_200F_200B_200C_206C_202B_200F_200C_200B_206C_206E_200C_202E_200F_206F_202A_200F_202D_202E_202A_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200D_202E_206C_206F_206C_200D_202C_202B_206D_202E_202E_202A_202B_206E_206B_202D_200E_200F_202A_200E_200C_206D_206E_202B_206C_206F_200E_200E_206F_206C_200B_200C_200B_202E_202D_200E_206E_202B_206C_206C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206E_202B_206F_202B_200F_200E_200C_200F_206E_206F_200B_206D_206A_200F_200F_206B_200D_202B_202A_202E_202E_206C_200E_202A_206D_206A_200B_206F_206B_202E_200E_206E_200E_206B_202C_206C_202A_200C_206C_202D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200B_200F_200E_206C_206B_202C_200D_206A_206B_202C_200E_200F_200F_200D_200C_206D_200E_206C_200B_200C_206B_200E_202E_200D_206A_200E_206A_200C_202C_202D_200B_206A_200D_202C_202E_202C_202A_200F_200B_200E_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _200C_206A_202D_202A_200B_202A_202D_206B_206D_200E_200E_200D_202A_206F_202B_200D_202A_202C_200D_202D_200D_202E_200F_202C_200D_206A_206C_206D_200B_206D_202D_206E_202C_202A_200E_206A_206A_202B_206D_206C_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } - } - - public sealed record Move(ushort Territory, Vector3 Position, bool Fly, bool LandAtTarget, float? StopDistance, uint? DataId, bool? Mount, bool DisableNavmesh, bool AllowZoneTransition, string? TargetNodeId, string? ApproachNodeId, bool IsFinal) : NavInstruction() - { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _200F_202B_202C_200E_202B_200D_202C_206F_202E_200D_202D_202B_202D_202E_206B_206C_200B_200C_206E_200E_202B_206F_200E_202E_206C_206F_206D_202E_200C_206B_206C_206F_200B_202D_206F_202B_200D_202B_200E_200C_202E(typeof(Move).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200C_200E_202D_200E_206B_202E_206B_202E_200D_206E_206F_202D_206C_202B_206E_206A_200D_206A_206A_206A_200D_206F_202E_200F_200E_206F_202E_202C_202E_200E_206E_202B_206F_200D_206B_206D_200B_206B_202A_206A_202E(); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(stringBuilder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-1783373874)); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-979564187)); - int num = ((!PrintMembers(stringBuilder)) ? 184319925 : 184319924); - while (true) - { - int num2 = num; - int num3 = 184319925; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 184319924; - break; - case 1: - _206F_206F_200E_202D_202B_206B_202D_206E_206B_202E_206A_202A_202D_202E_200B_200F_200B_202C_200B_200C_202E_200D_200C_206C_206E_200D_202D_202E_202A_206B_200D_200C_206D_200C_206D_206C_202E_200C_202D_206A_202E(stringBuilder, ' '); - num = 184319925; - break; - case 0: - _206F_206F_200E_202D_202B_206B_202D_206E_206B_202E_206A_202A_202D_202E_200B_200F_200B_202C_200B_200C_202E_200D_200C_206C_206E_200D_202D_202E_202A_206B_200D_200C_206D_200C_206D_206C_202E_200C_202D_206A_202E(stringBuilder, '}'); - return _200B_206E_202E_206F_200E_202C_206B_200E_202D_200C_202A_200D_202A_202E_206F_200B_206A_202A_206E_200F_202D_206F_200B_200C_200E_202B_200B_202D_206C_200C_200D_202C_202A_200F_200D_206C_206B_202D_200F_206C_202E((object?)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? (-1550275483) : (-1550275484)); - while (true) - { - int num2 = num; - int num3 = -1550275483; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1301726024)); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, Territory.ToString()); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-14976604)); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, Position.ToString()); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(579183541)); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, Fly.ToString()); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(1438832715)); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, LandAtTarget.ToString()); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1925162850)); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, StopDistance.ToString()); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-1217334372)); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, DataId.ToString()); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(961640576)); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, Mount.ToString()); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-87396488)); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, DisableNavmesh.ToString()); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-977259030)); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, AllowZoneTransition.ToString()); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(515549831)); - _206F_206D_206B_202A_206A_200E_206E_206E_200C_200F_200C_206F_206A_202A_200C_200B_206C_206F_202C_206B_202A_206D_206D_206D_200B_202E_202D_206C_206A_202C_200E_202C_202A_200D_206F_202E_206C_206B_200E_200C_202E(builder, (object?)TargetNodeId); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1412207095)); - _206F_206D_206B_202A_206A_200E_206E_206E_200C_200F_200C_206F_206A_202A_200C_200B_206C_206F_202C_206B_202A_206D_206D_206D_200B_202E_202D_206C_206A_202C_200E_202C_202A_200D_206F_202E_206C_206B_200E_200C_202E(builder, (object?)ApproachNodeId); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(1726787616)); - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, IsFinal.ToString()); - return true; - case 1: - _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1735617534)); - num = -1550275483; - break; - case 2: - num = -1550275484; - break; - } - } - } - - [CompilerGenerated] - public bool Equals(Move? other) - { - int num = (((object)this == other) ? (-1381192085) : (-1381192092)); - while (true) - { - int num2 = num; - int num3 = -1381192088; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = ((!EqualityComparer<bool>.Default.Equals(DisableNavmesh, other.DisableNavmesh)) ? (-1381192095) : (-1381192090)); - break; - case 11: - num = ((!EqualityComparer<Vector3>.Default.Equals(Position, other.Position)) ? (-1381192095) : (-1381192086)); - break; - case 1: - num = ((!EqualityComparer<string>.Default.Equals(ApproachNodeId, other.ApproachNodeId)) ? (-1381192095) : (-1381192089)); - break; - case 7: - num = ((!EqualityComparer<string>.Default.Equals(TargetNodeId, other.TargetNodeId)) ? (-1381192095) : (-1381192087)); - break; - case 6: - num = ((!EqualityComparer<bool?>.Default.Equals(Mount, other.Mount)) ? (-1381192095) : (-1381192088)); - break; - case 3: - return true; - case 14: - num = ((!EqualityComparer<bool>.Default.Equals(AllowZoneTransition, other.AllowZoneTransition)) ? (-1381192095) : (-1381192081)); - break; - case 9: - return false; - case 4: - num = ((!EqualityComparer<bool>.Default.Equals(LandAtTarget, other.LandAtTarget)) ? (-1381192095) : (-1381192096)); - break; - case 13: - num = ((!EqualityComparer<uint?>.Default.Equals(DataId, other.DataId)) ? (-1381192095) : (-1381192082)); - break; - case 10: - num = -1381192092; - break; - case 2: - num = ((!EqualityComparer<bool>.Default.Equals(Fly, other.Fly)) ? (-1381192095) : (-1381192084)); - break; - case 5: - num = ((!EqualityComparer<ushort>.Default.Equals(Territory, other.Territory)) ? (-1381192095) : (-1381192093)); - break; - case 15: - return EqualityComparer<bool>.Default.Equals(IsFinal, other.IsFinal); - case 8: - num = ((!EqualityComparer<float?>.Default.Equals(StopDistance, other.StopDistance)) ? (-1381192095) : (-1381192091)); - break; - case 12: - num = ((!base.Equals(other)) ? (-1381192095) : (-1381192083)); - break; - } - } - } - - bool IEquatable<Move>.Equals(Move? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type? _200F_202B_202C_200E_202B_200D_202C_206F_202E_200D_202D_202B_202D_202E_206B_206C_200B_200C_206E_200E_202B_206F_200E_202E_206C_206F_206D_202E_200C_206B_206C_206F_200B_202D_206F_202B_200D_202B_200E_200C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder? _200C_200E_202D_200E_206B_202E_206B_202E_200D_206E_206F_202D_206C_202B_206E_206A_200D_206A_206A_206A_200D_206F_202E_200F_200E_206F_202E_202C_202E_200E_206E_202B_206F_200D_206B_206D_200B_206B_202A_206A_202E() - { - return new StringBuilder(); - } - - static StringBuilder? _200B_202A_202B_200D_200D_206B_206A_206F_206A_202C_200D_202C_206C_202D_206C_202C_202B_200B_206C_200C_206A_200E_200F_200F_202C_202E_200C_202E_206C_202B_200D_200F_202A_200B_200D_200D_200E_202B_200D_202E_202E(StringBuilder? P_0, string? P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder? _206F_206F_200E_202D_202B_206B_202D_206E_206B_202E_206A_202A_202D_202E_200B_200F_200B_202C_200B_200C_202E_200D_200C_206C_206E_200D_202D_202E_202A_206B_200D_200C_206D_200C_206D_206C_202E_200C_202D_206A_202E(StringBuilder? P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string? _200B_206E_202E_206F_200E_202C_206B_200E_202D_200C_202A_200D_202A_202E_206F_200B_206A_202A_206E_200F_202D_206F_200B_200C_200E_202B_200B_202D_206C_200C_200D_202C_202A_200F_200D_206C_206B_202D_200F_206C_202E(object? P_0) - { - return P_0.ToString(); - } - - static StringBuilder? _206F_206D_206B_202A_206A_200E_206E_206E_200C_200F_200C_206F_206A_202A_200C_200B_206C_206F_202C_206B_202A_206D_206D_206D_200B_202E_202D_206C_206A_202C_200E_202C_202A_200D_206F_202E_206C_206B_200E_200C_202E(StringBuilder? P_0, object? P_1) - { - return P_0.Append(P_1); - } - - static bool _200B_200C_200E_200B_206C_206C_206F_202E_202E_206C_202C_200B_206B_200F_200D_202C_206E_200C_200D_200F_202E_200C_202C_206D_200F_206F_206E_200B_206C_206A_202E_202C_200C_202B_202B_200F_206C_200F_200B_200F_202E(object? P_0, object? P_1) - { - return P_0.Equals(P_1); - } - } - - public sealed record Land : NavInstruction - { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _206C_206B_206B_200D_200C_206A_200C_202B_202A_206F_206B_206A_202E_206D_206D_206E_200D_206B_202C_200F_206A_200B_206C_200B_206F_206B_206F_200B_202D_202D_202A_200C_202E_200C_206C_206C_202A_206C_202C_206E_202E(typeof(Land).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206B_202A_206D_202A_202E_200F_202E_200F_206D_200B_200E_200C_200E_200D_200F_200D_202C_206D_200E_200D_200B_202B_206F_206E_200B_202A_202C_200C_206C_200E_200D_206A_206F_200B_206F_200B_206E_200F_202D_202A_202E(); - _206F_202B_202C_202E_200D_206B_206B_200E_202E_200F_206C_200D_206F_206A_206E_200F_202A_200C_200E_200C_200F_202E_202A_206F_206E_202B_206E_206F_200C_200C_200E_202E_202D_202E_202C_200C_206B_202C_202A_202D_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-2144595044)); - _206F_202B_202C_202E_200D_206B_206B_200E_202E_200F_206C_200D_206F_206A_206E_200F_202A_200C_200E_200C_200F_202E_202A_206F_206E_202B_206E_206F_200C_200C_200E_202E_202D_202E_202C_200C_206B_202C_202A_202D_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-979564187)); - int num = ((!PrintMembers(stringBuilder)) ? (-1706563255) : (-1706563254)); - while (true) - { - int num2 = num; - int num3 = -1706563256; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _200E_202B_200B_200E_202C_202D_202D_206F_202E_206C_202A_200B_202D_200B_206F_202D_206F_200B_206E_206A_200D_206E_202E_206F_202E_202D_202C_202E_200B_206F_202D_206C_206F_202A_202E_200F_206B_206D_200E_202E(stringBuilder, '}'); - return _202A_202B_200D_206D_200D_206A_206D_206A_200B_202A_206E_202E_206B_200D_206D_202B_206B_200B_200C_206E_206E_206A_206B_206C_206C_200E_202B_200F_206A_206B_200C_206F_200D_206D_200C_202D_202E_202A_206F_206F_202E((object)stringBuilder); - case 2: - _200E_202B_200B_200E_202C_202D_202D_206F_202E_206C_202A_200B_202D_200B_206F_202D_206F_200B_206E_206A_200D_206E_202E_206F_202E_202D_202C_202E_200B_206F_202D_206C_206F_202A_202E_200F_206B_206D_200E_202E(stringBuilder, ' '); - num = -1706563255; - break; - case 0: - num = -1706563254; - break; - } - } - } - - [CompilerGenerated] - public bool Equals(Land? other) - { - int num = (((object)this == other) ? 56353034 : 56353033); - while (true) - { - int num2 = num; - int num3 = 56353035; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0042; - case 2: - return base.Equals(other); - case 1: - return true; - } - continue; - IL_0042: - num = 56353033; - } - } - - bool IEquatable<Land>.Equals(Land? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206C_206B_206B_200D_200C_206A_200C_202B_202A_206F_206B_206A_202E_206D_206D_206E_200D_206B_202C_200F_206A_200B_206C_200B_206F_206B_206F_200B_202D_202D_202A_200C_202E_200C_206C_206C_202A_206C_202C_206E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206B_202A_206D_202A_202E_200F_202E_200F_206D_200B_200E_200C_200E_200D_200F_200D_202C_206D_200E_200D_200B_202B_206F_206E_200B_202A_202C_200C_206C_200E_200D_206A_206F_200B_206F_200B_206E_200F_202D_202A_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206F_202B_202C_202E_200D_206B_206B_200E_202E_200F_206C_200D_206F_206A_206E_200F_202A_200C_200E_200C_200F_202E_202A_206F_206E_202B_206E_206F_200C_200C_200E_202E_202D_202E_202C_200C_206B_202C_202A_202D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200E_202B_200B_200E_202C_202D_202D_206F_202E_206C_202A_200B_202D_200B_206F_202D_206F_200B_206E_206A_200D_206E_202E_206F_202E_202D_202C_202E_200B_206F_202D_206C_206F_202A_202E_200F_206B_206D_200E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202A_202B_200D_206D_200D_206A_206D_206A_200B_202A_206E_202E_206B_200D_206D_202B_206B_200B_200C_206E_206E_206A_206B_206C_206C_200E_202B_200F_206A_206B_200C_206F_200D_206D_200C_202D_202E_202A_206F_206F_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _206F_202A_202A_206A_200F_206C_200F_200F_200D_206D_206B_200F_200E_206B_200D_206F_206D_202B_202C_202C_200B_200D_206C_202E_200F_206B_202D_202B_200C_206B_200F_200C_202B_200E_200E_200B_206B_202B_200F_206B_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } - } - - public sealed record Unmount : NavInstruction - { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _200F_202C_202C_206B_202D_206A_206B_206B_206D_202D_202E_202B_206F_200E_206F_200C_206B_206A_206E_206B_200F_206B_206E_202E_200D_202C_200B_206D_200C_206E_206E_206F_206C_206F_206F_202B_206A_206F_200C_202D_202E(typeof(Unmount).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200E_202B_206D_200B_206D_202D_202D_200C_200B_202A_200B_202C_202D_202D_206D_202A_200E_202D_206C_206C_202D_200B_206B_200B_206A_206F_202B_206C_206B_206B_206E_200D_200B_202D_202A_206F_202C_206D_206A_202C_202E(); - _202A_200E_200E_206F_200C_200E_202D_200B_200E_200B_200F_202A_200C_206F_206F_202E_200C_202C_200E_206D_200D_206D_206F_200B_206E_206B_202A_200D_206F_200D_202E_206F_202D_200D_202B_200C_206C_202E_200B_206C_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(1982914453)); - _202A_200E_200E_206F_200C_200E_202D_200B_200E_200B_200F_202A_200C_206F_206F_202E_200C_202C_200E_206D_200D_206D_206F_200B_206E_206B_202A_200D_206F_200D_202E_206F_202D_200D_202B_200C_206C_202E_200B_206C_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-169322018)); - int num = ((!PrintMembers(stringBuilder)) ? (-986476098) : (-986476099)); - while (true) - { - int num2 = num; - int num3 = -986476100; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -986476099; - break; - case 1: - _200C_206A_206E_202B_202C_202C_200B_200E_200B_202E_206D_206F_202C_200B_202A_206A_202E_200B_206F_202C_206F_206B_206F_206B_206C_206C_206B_202B_200F_200B_206E_206D_206C_206E_202B_206F_206E_200B_206B_202B_202E(stringBuilder, ' '); - num = -986476098; - break; - case 2: - _200C_206A_206E_202B_202C_202C_200B_200E_200B_202E_206D_206F_202C_200B_202A_206A_202E_200B_206F_202C_206F_206B_206F_206B_206C_206C_206B_202B_200F_200B_206E_206D_206C_206E_202B_206F_206E_200B_206B_202B_202E(stringBuilder, '}'); - return _206C_202A_200F_202E_202B_206D_200D_200D_200F_202B_202A_200B_200F_202C_206D_206E_202D_202A_206E_200F_206B_200D_200D_206F_206F_206A_200F_200F_200D_206C_200B_202A_202B_202B_202E_206A_206E_200D_200B_200E_202E((object)stringBuilder); - } - } - } - - [CompilerGenerated] - public bool Equals(Unmount? other) - { - int num = (((object)this == other) ? 967887402 : 967887403); - while (true) - { - int num2 = num; - int num3 = 967887402; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return true; - case 1: - return base.Equals(other); - case 2: - goto IL_004c; - } - continue; - IL_004c: - num = 967887403; - } - } - - bool IEquatable<Unmount>.Equals(Unmount? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200F_202C_202C_206B_202D_206A_206B_206B_206D_202D_202E_202B_206F_200E_206F_200C_206B_206A_206E_206B_200F_206B_206E_202E_200D_202C_200B_206D_200C_206E_206E_206F_206C_206F_206F_202B_206A_206F_200C_202D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200E_202B_206D_200B_206D_202D_202D_200C_200B_202A_200B_202C_202D_202D_206D_202A_200E_202D_206C_206C_202D_200B_206B_200B_206A_206F_202B_206C_206B_206B_206E_200D_200B_202D_202A_206F_202C_206D_206A_202C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202A_200E_200E_206F_200C_200E_202D_200B_200E_200B_200F_202A_200C_206F_206F_202E_200C_202C_200E_206D_200D_206D_206F_200B_206E_206B_202A_200D_206F_200D_202E_206F_202D_200D_202B_200C_206C_202E_200B_206C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200C_206A_206E_202B_202C_202C_200B_200E_200B_202E_206D_206F_202C_200B_202A_206A_202E_200B_206F_202C_206F_206B_206F_206B_206C_206C_206B_202B_200F_200B_206E_206D_206C_206E_202B_206F_206E_200B_206B_202B_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206C_202A_200F_202E_202B_206D_200D_200D_200F_202B_202A_200B_200F_202C_206D_206E_202D_202A_206E_200F_206B_200D_200D_206F_206F_206A_200F_200F_200D_206C_200B_202A_202B_202B_202E_206A_206E_200D_200B_200E_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _200D_206A_202A_206F_200C_202C_206E_206B_206F_202D_206F_206C_202A_206C_202C_200E_202B_202A_202D_202B_200B_200E_202C_200C_202E_206C_206C_206C_202A_202A_202C_206C_202A_202B_206B_206D_206B_200C_206D_206F_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } - } - - public sealed record WaitForTerritory(IReadOnlyList<uint> Acceptable, string Description) : NavInstruction() - { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _206D_202D_206C_202B_202D_206B_200E_202B_206F_200D_202B_202D_200D_200D_206F_206C_202E_202C_202D_202E_206E_206D_202E_206A_202B_202B_202E_200B_206F_202D_202B_200E_202C_206B_206A_200F_202D_200C_206D_202D_202E(typeof(WaitForTerritory).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202A_202E_200E_202B_200C_200B_200C_200D_202A_206E_202D_200E_202E_200D_202E_202E_200B_206B_206E_202E_200E_202E_206B_202C_206F_202D_202E_206F_206C_202D_206B_206A_200F_200F_202D_200C_202A_200D_200C_200C_202E(); - _206D_200F_200B_202A_206A_206F_200E_206F_202D_200C_202A_200D_206D_206E_202E_206E_202B_200D_202C_202A_200C_202D_206F_206D_206B_206D_202A_200C_202D_206B_202B_206E_200C_200B_206D_206E_200F_206C_206A_206F_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(66948926)); - _206D_200F_200B_202A_206A_206F_200E_206F_202D_200C_202A_200D_206D_206E_202E_206E_202B_200D_202C_202A_200C_202D_206F_206D_206B_206D_202A_200C_202D_206B_202B_206E_200C_200B_206D_206E_200F_206C_206A_206F_202E(stringBuilder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1120247710)); - int num = ((!PrintMembers(stringBuilder)) ? 322249372 : 322249375); - while (true) - { - int num2 = num; - int num3 = 322249373; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 322249375; - break; - case 2: - _202A_206B_202E_202C_206B_202B_202B_200B_206A_206A_202E_206B_200C_202D_206A_202C_200F_202D_202C_202E_200F_200E_206C_200B_200B_202A_202D_206A_206B_200F_200E_202D_206D_202D_206C_202D_202A_206C_206A_206C_202E(stringBuilder, ' '); - num = 322249372; - break; - case 1: - _202A_206B_202E_202C_206B_202B_202B_200B_206A_206A_202E_206B_200C_202D_206A_202C_200F_202D_202C_202E_200F_200E_206C_200B_200B_202A_202D_206A_206B_200F_200E_202D_206D_202D_206C_202D_202A_206C_206A_206C_202E(stringBuilder, '}'); - return _206B_202C_206D_200E_202C_202B_200B_206C_206A_206B_202D_200E_200C_200E_206B_202C_206B_202C_206B_206F_206A_202C_200B_202B_200F_206A_206F_206A_206D_200F_206C_206C_200B_202D_206C_202E_206C_200C_202B_202C_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? (-276328762) : (-276328763)); - while (true) - { - int num2 = num; - int num3 = -276328764; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -276328763; - break; - case 1: - _206D_200F_200B_202A_206A_206F_200E_206F_202D_200C_202A_200D_206D_206E_202E_206E_202B_200D_202C_202A_200C_202D_206F_206D_206B_206D_202A_200C_202D_206B_202B_206E_200C_200B_206D_206E_200F_206C_206A_206F_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1735617534)); - num = -276328762; - break; - case 2: - _206D_200F_200B_202A_206A_206F_200E_206F_202D_200C_202A_200D_206D_206E_202E_206E_202B_200D_202C_202A_200C_202D_206F_206D_206B_206D_202A_200C_202D_206B_202B_206E_200C_200B_206D_206E_200F_206C_206A_206F_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-632488350)); - _202E_200F_202B_202D_206F_202D_202E_202B_200D_202B_206D_200D_206D_206F_202E_206B_200F_200C_206B_206A_200F_206B_200F_206D_206A_206D_202D_200C_202A_206F_206D_202B_200F_202C_206A_206B_202E_206F_202A_202D_202E(builder, (object)Acceptable); - _206D_200F_200B_202A_206A_206F_200E_206F_202D_200C_202A_200D_206D_206E_202E_206E_202B_200D_202C_202A_200C_202D_206F_206D_206B_206D_202A_200C_202D_206B_202B_206E_200C_200B_206D_206E_200F_206C_206A_206F_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1652180292)); - _202E_200F_202B_202D_206F_202D_202E_202B_200D_202B_206D_200D_206D_206F_202E_206B_200F_200C_206B_206A_200F_206B_200F_206D_206A_206D_202D_200C_202A_206F_206D_202B_200F_202C_206A_206B_202E_206F_202A_202D_202E(builder, (object)Description); - return true; - } - } - } - - [CompilerGenerated] - public bool Equals(WaitForTerritory? other) - { - int num = (((object)this == other) ? (-116518482) : (-116518483)); - while (true) - { - int num2 = num; - int num3 = -116518484; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - return EqualityComparer<string>.Default.Equals(Description, other.Description); - case 1: - num = ((!base.Equals(other)) ? (-116518488) : (-116518481)); - break; - case 3: - num = ((!EqualityComparer<IReadOnlyList<uint>>.Default.Equals(Acceptable, other.Acceptable)) ? (-116518488) : (-116518484)); - break; - case 5: - num = -116518483; - break; - case 4: - return false; - case 2: - return true; - } - } - } - - bool IEquatable<WaitForTerritory>.Equals(WaitForTerritory? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206D_202D_206C_202B_202D_206B_200E_202B_206F_200D_202B_202D_200D_200D_206F_206C_202E_202C_202D_202E_206E_206D_202E_206A_202B_202B_202E_200B_206F_202D_202B_200E_202C_206B_206A_200F_202D_200C_206D_202D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202A_202E_200E_202B_200C_200B_200C_200D_202A_206E_202D_200E_202E_200D_202E_202E_200B_206B_206E_202E_200E_202E_206B_202C_206F_202D_202E_206F_206C_202D_206B_206A_200F_200F_202D_200C_202A_200D_200C_200C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206D_200F_200B_202A_206A_206F_200E_206F_202D_200C_202A_200D_206D_206E_202E_206E_202B_200D_202C_202A_200C_202D_206F_206D_206B_206D_202A_200C_202D_206B_202B_206E_200C_200B_206D_206E_200F_206C_206A_206F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202A_206B_202E_202C_206B_202B_202B_200B_206A_206A_202E_206B_200C_202D_206A_202C_200F_202D_202C_202E_200F_200E_206C_200B_200B_202A_202D_206A_206B_200F_200E_202D_206D_202D_206C_202D_202A_206C_206A_206C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206B_202C_206D_200E_202C_202B_200B_206C_206A_206B_202D_200E_200C_200E_206B_202C_206B_202C_206B_206F_206A_202C_200B_202B_200F_206A_206F_206A_206D_200F_206C_206C_200B_202D_206C_202E_206C_200C_202B_202C_202E(object P_0) - { - return P_0.ToString(); - } - - static StringBuilder _202E_200F_202B_202D_206F_202D_202E_202B_200D_202B_206D_200D_206D_206F_202E_206B_200F_200C_206B_206A_200F_206B_200F_206D_206A_206D_202D_200C_202A_206F_206D_202B_200F_202C_206A_206B_202E_206F_202A_202D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206A_200E_202C_200F_202B_200D_200B_200F_202C_206D_206C_206B_200E_202C_200D_200B_202C_206B_202A_200C_206B_200B_202D_200F_200F_206B_206F_202C_206C_202B_200D_202C_200F_202A_206E_202B_206B_202C_202E_202D_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } - } - - public sealed record WaitForNavmesh : NavInstruction - { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _206C_202D_200F_200B_206F_206C_206E_202D_206A_206B_200C_200D_202A_200F_200F_206A_200E_202E_206A_206D_202B_206C_206F_206D_202C_200E_202D_206F_202E_200F_200B_202A_200E_206F_206E_206D_200F_200F_200C_202E_202E(typeof(WaitForNavmesh).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202D_202B_206E_200E_202B_200C_206B_202E_200C_200B_206F_200C_206F_202E_206B_202B_200E_200B_206D_202E_200B_202B_206C_202B_200B_206D_206F_200E_206B_206E_202C_206A_206B_206B_206B_202A_200B_206A_200C_202B_202E(); - _200B_200C_202A_202A_200D_202C_206B_200B_206D_200E_202E_200D_202B_202E_202E_200F_206B_200B_206D_202C_202C_200D_202E_200C_202A_202C_202B_200D_202D_206F_202E_200F_200E_200D_200F_200F_206D_202A_202E_202C_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-814720200)); - _200B_200C_202A_202A_200D_202C_206B_200B_206D_200E_202E_200D_202B_202E_202E_200F_206B_200B_206D_202C_202C_200D_202E_200C_202A_202C_202B_200D_202D_206F_202E_200F_200E_200D_200F_200F_206D_202A_202E_202C_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-979564187)); - int num = ((!PrintMembers(stringBuilder)) ? 1083442519 : 1083442516); - while (true) - { - int num2 = num; - int num3 = 1083442518; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _206B_202B_206E_200B_206D_202C_200F_200B_202D_206C_200B_200B_200F_206D_202A_202B_200F_202D_202C_202B_206D_200E_202E_202C_206C_200F_200C_206C_200F_206A_206F_200D_202A_200F_206E_202B_206C_200B_200D_200E_202E(stringBuilder, '}'); - return _200F_206D_200B_200F_200C_202A_206D_202A_200B_206A_200B_206B_200C_202D_206E_200F_206F_200B_202C_202D_200B_206B_206F_200E_200C_206D_206A_200B_206A_202D_200F_206F_202E_206E_202E_206A_206C_202C_206A_202E((object)stringBuilder); - case 2: - _206B_202B_206E_200B_206D_202C_200F_200B_202D_206C_200B_200B_200F_206D_202A_202B_200F_202D_202C_202B_206D_200E_202E_202C_206C_200F_200C_206C_200F_206A_206F_200D_202A_200F_206E_202B_206C_200B_200D_200E_202E(stringBuilder, ' '); - num = 1083442519; - break; - case 0: - num = 1083442516; - break; - } - } - } - - [CompilerGenerated] - public bool Equals(WaitForNavmesh? other) - { - int num = (((object)this == other) ? 192095984 : 192095987); - while (true) - { - int num2 = num; - int num3 = 192095985; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return true; - case 2: - return base.Equals(other); - case 0: - goto IL_004c; - } - continue; - IL_004c: - num = 192095987; - } - } - - bool IEquatable<WaitForNavmesh>.Equals(WaitForNavmesh? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206C_202D_200F_200B_206F_206C_206E_202D_206A_206B_200C_200D_202A_200F_200F_206A_200E_202E_206A_206D_202B_206C_206F_206D_202C_200E_202D_206F_202E_200F_200B_202A_200E_206F_206E_206D_200F_200F_200C_202E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202D_202B_206E_200E_202B_200C_206B_202E_200C_200B_206F_200C_206F_202E_206B_202B_200E_200B_206D_202E_200B_202B_206C_202B_200B_206D_206F_200E_206B_206E_202C_206A_206B_206B_206B_202A_200B_206A_200C_202B_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200B_200C_202A_202A_200D_202C_206B_200B_206D_200E_202E_200D_202B_202E_202E_200F_206B_200B_206D_202C_202C_200D_202E_200C_202A_202C_202B_200D_202D_206F_202E_200F_200E_200D_200F_200F_206D_202A_202E_202C_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206B_202B_206E_200B_206D_202C_200F_200B_202D_206C_200B_200B_200F_206D_202A_202B_200F_202D_202C_202B_206D_200E_202E_202C_206C_200F_200C_206C_200F_206A_206F_200D_202A_200F_206E_202B_206C_200B_200D_200E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200F_206D_200B_200F_200C_202A_206D_202A_200B_206A_200B_206B_200C_202D_206E_200F_206F_200B_202C_202D_200B_206B_206F_200E_200C_206D_206A_200B_206A_202D_200F_206F_202E_206E_202E_206A_206C_202C_206A_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _206C_206E_202A_206D_202C_206B_202B_202B_202C_206E_202C_200C_200F_206A_206E_200C_202D_202D_200F_206D_202A_200D_206A_200D_206A_200B_206B_206A_206C_206E_206E_200F_202E_202B_206E_202E_206D_200B_200F_206C_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } - } - - public sealed record InteractWarp(uint NpcDataId, uint WarpRowId, ushort FromTerritory, ushort ToTerritory) : NavInstruction() - { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _200B_202A_206C_206F_202A_200D_206A_202B_206C_206F_202B_206D_200B_200B_202B_202D_206C_200D_206F_200B_206E_206B_206B_200F_200E_202B_202A_206E_200E_206B_202B_206B_202B_202D_200F_206D_206B_202B_206A_202E(typeof(InteractWarp).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202C_206C_202E_206A_202B_200C_202A_200B_206C_200C_200F_200B_206D_202B_206C_206C_206B_202A_206C_206F_206C_202D_202D_202D_206A_202E_206D_206F_206A_200B_202B_206E_202B_202B_202B_202D_202A_200E_200B_202E_202E(); - _202E_206B_206A_206B_202A_200E_206E_202E_202A_202D_206E_206F_206B_206A_206D_202A_200E_206D_202C_202C_200B_200D_206A_206A_202E_200E_200E_200E_206B_202C_206D_202D_200E_206F_206F_200D_202B_200B_200E_202D_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1147188911)); - _202E_206B_206A_206B_202A_200E_206E_202E_202A_202D_206E_206F_206B_206A_206D_202A_200E_206D_202C_202C_200B_200D_206A_206A_202E_200E_200E_200E_206B_202C_206D_202D_200E_206F_206F_200D_202B_200B_200E_202D_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-169322018)); - int num = ((!PrintMembers(stringBuilder)) ? (-399761928) : (-399761925)); - while (true) - { - int num2 = num; - int num3 = -399761927; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -399761925; - break; - case 2: - _206A_202D_202E_202A_202C_200D_200E_200B_200D_206F_206D_202E_202B_200B_206B_206A_202D_206B_206C_202C_202C_202E_206E_206B_202B_206B_206C_206B_206F_202E_200B_200C_206B_200E_202E_206A_206D_202E_206E_200F_202E(stringBuilder, ' '); - num = -399761928; - break; - case 1: - _206A_202D_202E_202A_202C_200D_200E_200B_200D_206F_206D_202E_202B_200B_206B_206A_202D_206B_206C_202C_202C_202E_206E_206B_202B_206B_206C_206B_206F_202E_200B_200C_206B_200E_202E_206A_206D_202E_206E_200F_202E(stringBuilder, '}'); - return _200E_202B_200E_200B_200B_200D_200B_200C_200D_202B_200E_206A_200F_206F_206C_202B_206C_202C_202D_200D_202B_206E_202E_202D_206E_206E_200C_206E_206E_206A_206F_200B_206F_200E_200C_206A_202A_200B_202A_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? 1383636572 : 1383636575); - while (true) - { - int num2 = num; - int num3 = 1383636574; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - _202E_206B_206A_206B_202A_200E_206E_202E_202A_202D_206E_206F_206B_206A_206D_202A_200E_206D_202C_202C_200B_200D_206A_206A_202E_200E_200E_200E_206B_202C_206D_202D_200E_206F_206F_200D_202B_200B_200E_202D_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(312121302)); - _202E_206B_206A_206B_202A_200E_206E_202E_202A_202D_206E_206F_206B_206A_206D_202A_200E_206D_202C_202C_200B_200D_206A_206A_202E_200E_200E_200E_206B_202C_206D_202D_200E_206F_206F_200D_202B_200B_200E_202D_202E(builder, NpcDataId.ToString()); - _202E_206B_206A_206B_202A_200E_206E_202E_202A_202D_206E_206F_206B_206A_206D_202A_200E_206D_202C_202C_200B_200D_206A_206A_202E_200E_200E_200E_206B_202C_206D_202D_200E_206F_206F_200D_202B_200B_200E_202D_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-1903510194)); - _202E_206B_206A_206B_202A_200E_206E_202E_202A_202D_206E_206F_206B_206A_206D_202A_200E_206D_202C_202C_200B_200D_206A_206A_202E_200E_200E_200E_206B_202C_206D_202D_200E_206F_206F_200D_202B_200B_200E_202D_202E(builder, WarpRowId.ToString()); - _202E_206B_206A_206B_202A_200E_206E_202E_202A_202D_206E_206F_206B_206A_206D_202A_200E_206D_202C_202C_200B_200D_206A_206A_202E_200E_200E_200E_206B_202C_206D_202D_200E_206F_206F_200D_202B_200B_200E_202D_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-149782778)); - _202E_206B_206A_206B_202A_200E_206E_202E_202A_202D_206E_206F_206B_206A_206D_202A_200E_206D_202C_202C_200B_200D_206A_206A_202E_200E_200E_200E_206B_202C_206D_202D_200E_206F_206F_200D_202B_200B_200E_202D_202E(builder, FromTerritory.ToString()); - _202E_206B_206A_206B_202A_200E_206E_202E_202A_202D_206E_206F_206B_206A_206D_202A_200E_206D_202C_202C_200B_200D_206A_206A_202E_200E_200E_200E_206B_202C_206D_202D_200E_206F_206F_200D_202B_200B_200E_202D_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(883191091)); - _202E_206B_206A_206B_202A_200E_206E_202E_202A_202D_206E_206F_206B_206A_206D_202A_200E_206D_202C_202C_200B_200D_206A_206A_202E_200E_200E_200E_206B_202C_206D_202D_200E_206F_206F_200D_202B_200B_200E_202D_202E(builder, ToTerritory.ToString()); - return true; - case 1: - _202E_206B_206A_206B_202A_200E_206E_202E_202A_202D_206E_206F_206B_206A_206D_202A_200E_206D_202C_202C_200B_200D_206A_206A_202E_200E_200E_200E_206B_202C_206D_202D_200E_206F_206F_200D_202B_200B_200E_202D_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1735617534)); - num = 1383636572; - break; - case 0: - num = 1383636575; - break; - } - } - } - - [CompilerGenerated] - public bool Equals(InteractWarp? other) - { - int num = (((object)this == other) ? 589898297 : 589898296); - while (true) - { - int num2 = num; - int num3 = 589898298; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 7: - num = ((!EqualityComparer<ushort>.Default.Equals(FromTerritory, other.FromTerritory)) ? 589898300 : 589898298); - break; - case 1: - num = ((!EqualityComparer<uint>.Default.Equals(NpcDataId, other.NpcDataId)) ? 589898300 : 589898303); - break; - case 2: - num = ((!base.Equals(other)) ? 589898300 : 589898299); - break; - case 6: - return false; - case 0: - return EqualityComparer<ushort>.Default.Equals(ToTerritory, other.ToTerritory); - case 5: - num = ((!EqualityComparer<uint>.Default.Equals(WarpRowId, other.WarpRowId)) ? 589898300 : 589898301); - break; - case 4: - num = 589898296; - break; - case 3: - return true; - } - } - } - - bool IEquatable<InteractWarp>.Equals(InteractWarp? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _200B_202A_206C_206F_202A_200D_206A_202B_206C_206F_202B_206D_200B_200B_202B_202D_206C_200D_206F_200B_206E_206B_206B_200F_200E_202B_202A_206E_200E_206B_202B_206B_202B_202D_200F_206D_206B_202B_206A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202C_206C_202E_206A_202B_200C_202A_200B_206C_200C_200F_200B_206D_202B_206C_206C_206B_202A_206C_206F_206C_202D_202D_202D_206A_202E_206D_206F_206A_200B_202B_206E_202B_202B_202B_202D_202A_200E_200B_202E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202E_206B_206A_206B_202A_200E_206E_202E_202A_202D_206E_206F_206B_206A_206D_202A_200E_206D_202C_202C_200B_200D_206A_206A_202E_200E_200E_200E_206B_202C_206D_202D_200E_206F_206F_200D_202B_200B_200E_202D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206A_202D_202E_202A_202C_200D_200E_200B_200D_206F_206D_202E_202B_200B_206B_206A_202D_206B_206C_202C_202C_202E_206E_206B_202B_206B_206C_206B_206F_202E_200B_200C_206B_200E_202E_206A_206D_202E_206E_200F_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200E_202B_200E_200B_200B_200D_200B_200C_200D_202B_200E_206A_200F_206F_206C_202B_206C_202C_202D_200D_202B_206E_202E_202D_206E_206E_200C_206E_206E_206A_206F_200B_206F_200E_200C_206A_202A_200B_202A_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _202B_206C_202E_206F_200F_202E_202A_206F_206A_200B_206F_200F_202D_200D_206C_200E_206E_200D_202A_202D_202C_200F_206C_202D_202E_202A_202B_206A_200E_200D_200C_202B_206E_206F_206B_206A_202A_200E_206F_202D_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } - } - - public sealed record UseTeleportTicket(uint ItemId, ushort Territory) : NavInstruction() - { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _202D_200D_206F_202A_202D_206A_206E_200D_200F_206D_200D_200E_202D_200B_206E_202C_200F_202C_206E_206E_206B_200F_200D_200D_206B_200C_202D_206E_202B_206C_206E_200C_206A_206B_206A_206A_202E_206C_202D_200C_202E(typeof(UseTeleportTicket).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202A_202B_200C_206D_200B_202D_206D_202A_200B_206F_202E_206A_206A_200F_200C_206B_200F_206D_206F_206C_206F_202E_206F_206F_202A_206D_206F_206D_202B_206B_202A_206A_202E_202E_200E_202D_200D_206B_202C_200D_202E(); - _202E_200D_200F_200D_202E_202B_202B_200B_202E_202D_206C_202A_206D_200E_206F_206E_202B_202E_200B_200C_206F_206F_206E_206B_200E_202B_200B_200E_202E_206B_206E_200C_202E_200F_202D_202A_206B_202C_202E_200D_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(606270569)); - _202E_200D_200F_200D_202E_202B_202B_200B_202E_202D_206C_202A_206D_200E_206F_206E_202B_202E_200B_200C_206F_206F_206E_206B_200E_202B_200B_200E_202E_206B_206E_200C_202E_200F_202D_202A_206B_202C_202E_200D_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-169322018)); - int num = ((!PrintMembers(stringBuilder)) ? 2026509155 : 2026509152); - while (true) - { - int num2 = num; - int num3 = 2026509154; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 2026509152; - break; - case 1: - _202D_200C_202E_206A_200E_206D_200B_206A_206B_202C_206E_202B_206C_200D_202C_200C_200D_200E_202B_202A_206E_202A_206B_200E_206F_206B_206E_206A_202C_202B_200F_206B_206A_200D_200F_206E_206A_202E_206B_200C_202E(stringBuilder, '}'); - return _202B_206C_202A_206D_202C_206A_200B_200E_202D_202B_206A_200C_206F_206C_206B_206D_206E_206E_202E_206F_200D_206A_200D_200D_206D_202A_206C_206D_202A_206F_206D_200D_202B_206E_202E_202B_206A_200E_202E_202D_202E((object)stringBuilder); - case 2: - _202D_200C_202E_206A_200E_206D_200B_206A_206B_202C_206E_202B_206C_200D_202C_200C_200D_200E_202B_202A_206E_202A_206B_200E_206F_206B_206E_206A_202C_202B_200F_206B_206A_200D_200F_206E_206A_202E_206B_200C_202E(stringBuilder, ' '); - num = 2026509155; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? 1289841688 : 1289841689); - while (true) - { - int num2 = num; - int num3 = 1289841688; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 1289841689; - break; - case 1: - _202E_200D_200F_200D_202E_202B_202B_200B_202E_202D_206C_202A_206D_200E_206F_206E_202B_202E_200B_200C_206F_206F_206E_206B_200E_202B_200B_200E_202E_206B_206E_200C_202E_200F_202D_202A_206B_202C_202E_200D_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1735617534)); - num = 1289841688; - break; - case 0: - _202E_200D_200F_200D_202E_202B_202B_200B_202E_202D_206C_202A_206D_200E_206F_206E_202B_202E_200B_200C_206F_206F_206E_206B_200E_202B_200B_200E_202E_206B_206E_200C_202E_200F_202D_202A_206B_202C_202E_200D_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(825996996)); - _202E_200D_200F_200D_202E_202B_202B_200B_202E_202D_206C_202A_206D_200E_206F_206E_202B_202E_200B_200C_206F_206F_206E_206B_200E_202B_200B_200E_202E_206B_206E_200C_202E_200F_202D_202A_206B_202C_202E_200D_202E(builder, ItemId.ToString()); - _202E_200D_200F_200D_202E_202B_202B_200B_202E_202D_206C_202A_206D_200E_206F_206E_202B_202E_200B_200C_206F_206F_206E_206B_200E_202B_200B_200E_202E_206B_206E_200C_202E_200F_202D_202A_206B_202C_202E_200D_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1553900028)); - _202E_200D_200F_200D_202E_202B_202B_200B_202E_202D_206C_202A_206D_200E_206F_206E_202B_202E_200B_200C_206F_206F_206E_206B_200E_202B_200B_200E_202E_206B_206E_200C_202E_200F_202D_202A_206B_202C_202E_200D_202E(builder, Territory.ToString()); - return true; - } - } - } - - [CompilerGenerated] - public bool Equals(UseTeleportTicket? other) - { - int num = (((object)this == other) ? (-307246510) : (-307246506)); - while (true) - { - int num2 = num; - int num3 = -307246509; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? (-307246505) : (-307246512)); - break; - case 3: - return EqualityComparer<ushort>.Default.Equals(Territory, other.Territory); - case 1: - return true; - case 4: - return false; - case 5: - num = ((!base.Equals(other)) ? (-307246505) : (-307246509)); - break; - case 2: - num = -307246506; - break; - } - } - } - - bool IEquatable<UseTeleportTicket>.Equals(UseTeleportTicket? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202D_200D_206F_202A_202D_206A_206E_200D_200F_206D_200D_200E_202D_200B_206E_202C_200F_202C_206E_206E_206B_200F_200D_200D_206B_200C_202D_206E_202B_206C_206E_200C_206A_206B_206A_206A_202E_206C_202D_200C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202A_202B_200C_206D_200B_202D_206D_202A_200B_206F_202E_206A_206A_200F_200C_206B_200F_206D_206F_206C_206F_202E_206F_206F_202A_206D_206F_206D_202B_206B_202A_206A_202E_202E_200E_202D_200D_206B_202C_200D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202E_200D_200F_200D_202E_202B_202B_200B_202E_202D_206C_202A_206D_200E_206F_206E_202B_202E_200B_200C_206F_206F_206E_206B_200E_202B_200B_200E_202E_206B_206E_200C_202E_200F_202D_202A_206B_202C_202E_200D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202D_200C_202E_206A_200E_206D_200B_206A_206B_202C_206E_202B_206C_200D_202C_200C_200D_200E_202B_202A_206E_202A_206B_200E_206F_206B_206E_206A_202C_202B_200F_206B_206A_200D_200F_206E_206A_202E_206B_200C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202B_206C_202A_206D_202C_206A_200B_200E_202D_202B_206A_200C_206F_206C_206B_206D_206E_206E_202E_206F_200D_206A_200D_200D_206D_202A_206C_206D_202A_206F_206D_200D_202B_206E_202E_202B_206A_200E_202E_202D_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _200E_206F_206B_202D_200F_202E_202A_202B_206E_200F_206B_200F_206A_200C_200E_202E_200B_202D_206C_206E_202A_202B_202A_202B_206B_206B_200E_202B_200D_202A_206C_200F_206B_206F_206F_200F_206A_200C_200C_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } - } - - public sealed record SubRegionTransport(Vector3 From, Vector3 To, ushort Territory) : NavInstruction() - { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _206F_202D_200F_200C_200E_206B_206B_202E_206F_202D_206E_206B_202D_202A_202E_200B_206A_202B_200E_200F_200C_206F_200B_206B_206D_202D_202E_200C_200F_200D_202B_202B_206D_200F_206E_200C_206C_206E_206C_206A_202E(typeof(SubRegionTransport).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206F_200B_202A_206F_200D_202C_202E_202D_202A_200E_202B_206C_200B_202A_206B_206D_206F_202C_202C_200D_200C_206D_202C_200C_200E_200E_206F_206A_202C_206F_202B_200B_206D_202A_206C_202A_202E_202D_202B_206C_202E(); - _206E_206F_202D_202E_202E_202C_200F_206F_206F_200D_200E_206D_200C_202C_206B_202B_200C_206C_200C_206D_200B_202B_206B_202B_206E_206C_206E_200B_202C_200F_202D_206C_200E_202C_202B_206C_200F_200E_200F_200F_202E(stringBuilder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1176937111)); - _206E_206F_202D_202E_202E_202C_200F_206F_206F_200D_200E_206D_200C_202C_206B_202B_200C_206C_200C_206D_200B_202B_206B_202B_206E_206C_206E_200B_202C_200F_202D_206C_200E_202C_202B_206C_200F_200E_200F_200F_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-979564187)); - int num = ((!PrintMembers(stringBuilder)) ? 281305733 : 281305732); - while (true) - { - int num2 = num; - int num3 = 281305733; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 281305732; - break; - case 0: - _202A_206F_200E_202B_200E_200E_206F_202E_202D_200F_206C_202B_202D_202D_206D_202E_202D_206A_202A_202A_200E_200B_202D_206D_206E_206A_200B_206B_202C_200B_200E_206D_202A_202B_206F_200B_202C_200E_200C_200C_202E(stringBuilder, '}'); - return _200E_206C_202E_200C_200D_206A_200C_206F_200D_206A_206A_206D_200C_200E_202C_200C_202E_206F_206C_206B_200E_202B_202D_202A_202C_206C_206B_206A_202E_206E_202B_202A_206B_206B_200C_202D_202B_200D_206A_200D_202E((object)stringBuilder); - case 1: - _202A_206F_200E_202B_200E_200E_206F_202E_202D_200F_206C_202B_202D_202D_206D_202E_202D_206A_202A_202A_200E_200B_202D_206D_206E_206A_200B_206B_202C_200B_200E_206D_202A_202B_206F_200B_202C_200E_200C_200C_202E(stringBuilder, ' '); - num = 281305733; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? (-47435612) : (-47435609)); - while (true) - { - int num2 = num; - int num3 = -47435611; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 1: - _206E_206F_202D_202E_202E_202C_200F_206F_206F_200D_200E_206D_200C_202C_206B_202B_200C_206C_200C_206D_200B_202B_206B_202B_206E_206C_206E_200B_202C_200F_202D_206C_200E_202C_202B_206C_200F_200E_200F_200F_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(583039296)); - _206E_206F_202D_202E_202E_202C_200F_206F_206F_200D_200E_206D_200C_202C_206B_202B_200C_206C_200C_206D_200B_202B_206B_202B_206E_206C_206E_200B_202C_200F_202D_206C_200E_202C_202B_206C_200F_200E_200F_200F_202E(builder, From.ToString()); - _206E_206F_202D_202E_202E_202C_200F_206F_206F_200D_200E_206D_200C_202C_206B_202B_200C_206C_200C_206D_200B_202B_206B_202B_206E_206C_206E_200B_202C_200F_202D_206C_200E_202C_202B_206C_200F_200E_200F_200F_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-1504115831)); - _206E_206F_202D_202E_202E_202C_200F_206F_206F_200D_200E_206D_200C_202C_206B_202B_200C_206C_200C_206D_200B_202B_206B_202B_206E_206C_206E_200B_202C_200F_202D_206C_200E_202C_202B_206C_200F_200E_200F_200F_202E(builder, To.ToString()); - _206E_206F_202D_202E_202E_202C_200F_206F_206F_200D_200E_206D_200C_202C_206B_202B_200C_206C_200C_206D_200B_202B_206B_202B_206E_206C_206E_200B_202C_200F_202D_206C_200E_202C_202B_206C_200F_200E_200F_200F_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(424038719)); - _206E_206F_202D_202E_202E_202C_200F_206F_206F_200D_200E_206D_200C_202C_206B_202B_200C_206C_200C_206D_200B_202B_206B_202B_206E_206C_206E_200B_202C_200F_202D_206C_200E_202C_202B_206C_200F_200E_200F_200F_202E(builder, Territory.ToString()); - return true; - case 2: - _206E_206F_202D_202E_202E_202C_200F_206F_206F_200D_200E_206D_200C_202C_206B_202B_200C_206C_200C_206D_200B_202B_206B_202B_206E_206C_206E_200B_202C_200F_202D_206C_200E_202C_202B_206C_200F_200E_200F_200F_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1735617534)); - num = -47435612; - break; - case 0: - num = -47435609; - break; - } - } - } - - [CompilerGenerated] - public bool Equals(SubRegionTransport? other) - { - int num = (((object)this == other) ? (-1244234066) : (-1244234072)); - while (true) - { - int num2 = num; - int num3 = -1244234067; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1244234072; - break; - case 4: - num = ((!EqualityComparer<Vector3>.Default.Equals(From, other.From)) ? (-1244234069) : (-1244234065)); - break; - case 2: - num = ((!EqualityComparer<Vector3>.Default.Equals(To, other.To)) ? (-1244234069) : (-1244234068)); - break; - case 5: - num = ((!base.Equals(other)) ? (-1244234069) : (-1244234071)); - break; - case 1: - return EqualityComparer<ushort>.Default.Equals(Territory, other.Territory); - case 3: - return true; - case 6: - return false; - } - } - } - - bool IEquatable<SubRegionTransport>.Equals(SubRegionTransport? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206F_202D_200F_200C_200E_206B_206B_202E_206F_202D_206E_206B_202D_202A_202E_200B_206A_202B_200E_200F_200C_206F_200B_206B_206D_202D_202E_200C_200F_200D_202B_202B_206D_200F_206E_200C_206C_206E_206C_206A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206F_200B_202A_206F_200D_202C_202E_202D_202A_200E_202B_206C_200B_202A_206B_206D_206F_202C_202C_200D_200C_206D_202C_200C_200E_200E_206F_206A_202C_206F_202B_200B_206D_202A_206C_202A_202E_202D_202B_206C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206E_206F_202D_202E_202E_202C_200F_206F_206F_200D_200E_206D_200C_202C_206B_202B_200C_206C_200C_206D_200B_202B_206B_202B_206E_206C_206E_200B_202C_200F_202D_206C_200E_202C_202B_206C_200F_200E_200F_200F_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202A_206F_200E_202B_200E_200E_206F_202E_202D_200F_206C_202B_202D_202D_206D_202E_202D_206A_202A_202A_200E_200B_202D_206D_206E_206A_200B_206B_202C_200B_200E_206D_202A_202B_206F_200B_202C_200E_200C_200C_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200E_206C_202E_200C_200D_206A_200C_206F_200D_206A_206A_206D_200C_200E_202C_200C_202E_206F_206C_206B_200E_202B_202D_202A_202C_206C_206B_206A_202E_206E_202B_202A_206B_206B_200C_202D_202B_200D_206A_200D_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _206D_200E_206C_200C_202E_200D_202A_202B_200D_202A_200C_206A_202D_202A_202D_206E_202E_200C_206D_206C_200B_206B_200F_206C_200F_202A_202A_200F_206B_200E_206C_202B_206C_202D_206F_200E_202B_206A_202E_206B_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } - } - - [CompilerGenerated] - protected virtual Type EqualityContract - { - [CompilerGenerated] - get - { - return _206E_202C_200D_202D_200D_206A_202E_206E_206B_202A_202A_202B_200B_200C_202C_206C_200B_206E_206C_206F_206D_206A_200C_200D_202A_206E_200F_202A_202A_202E_206C_206D_206D_202C_206D_200D_202E_206B_206E_202D_202E(typeof(NavInstruction).TypeHandle); - } - } + public sealed record SubRegionTransport(Vector3 From, Vector3 To, ushort Territory) : NavInstruction(); private NavInstruction() { } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200B_206B_206F_202B_206B_202D_206D_206D_206E_206E_206F_202B_206A_206E_206B_200F_202D_200F_206B_200C_202A_200B_200D_206D_206D_206D_206B_200D_202C_200B_206A_202C_200E_200E_200F_206C_200D_206C_200E_206C_202E(); - _202E_200F_206F_202D_200C_206A_206C_200D_202C_202C_206B_202C_200C_206F_206C_206D_206B_202D_200E_202E_206A_202E_202C_200E_200F_200D_202C_206A_202E_206D_202D_206F_202A_206B_206D_202D_200E_206C_206D_206B_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(983817871)); - _202E_200F_206F_202D_200C_206A_206C_200D_202C_202C_206B_202C_200C_206F_206C_206D_206B_202D_200E_202E_206A_202E_202C_200E_200F_200D_202C_206A_202E_206D_202D_206F_202A_206B_206D_202D_200E_206C_206D_206B_202E(stringBuilder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1120247710)); - int num = ((!PrintMembers(stringBuilder)) ? (-354215280) : (-354215279)); - while (true) - { - int num2 = num; - int num3 = -354215280; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - _202B_202A_200B_206C_200B_202E_202C_202C_202B_202C_206B_206E_202B_200B_206E_200C_200D_206F_200E_200F_200C_202C_206A_202B_200E_206D_200F_202B_200C_206C_206C_206D_200B_206B_200E_202B_200C_206E_206E_206E_202E(stringBuilder, '}'); - return _202D_206C_206B_206A_202C_206F_200C_206D_202E_202E_206A_202E_202D_206F_202E_202B_202A_206F_200D_202A_202C_202B_202B_202A_206B_206F_200F_206F_206D_200C_206D_206B_206E_206C_206C_202D_206D_200D_200E_200E_202E((object)stringBuilder); - case 1: - _202B_202A_200B_206C_200B_202E_202C_202C_202B_202C_206B_206E_202B_200B_206E_200C_200D_206F_200E_200F_200C_202C_206A_202B_200E_206D_200F_202B_200C_206C_206C_206D_200B_206B_200E_202B_200C_206E_206E_206E_202E(stringBuilder, ' '); - num = -354215280; - break; - case 2: - num = -354215279; - break; - } - } - } - - [CompilerGenerated] - public virtual bool Equals(NavInstruction? other) - { - int num = (((object)this == other) ? 1638669967 : 1638669964); - while (true) - { - int num2 = num; - int num3 = 1638669967; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 4: - num = 1638669964; - break; - case 1: - return _202C_206E_206C_202D_206C_200B_206B_202C_200B_200C_206B_200E_206E_202B_202C_200C_206E_206F_200B_200D_200C_202B_202A_202E_200B_206B_202E_200C_206A_206D_202E_206E_206E_202A_206E_200C_206E_206C_202B_206D_202E(EqualityContract, other.EqualityContract); - case 2: - return false; - case 0: - return true; - case 3: - num = (((object)other == null) ? 1638669965 : 1638669966); - break; - } - } - } - - bool IEquatable<NavInstruction>.Equals(NavInstruction? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206E_202C_200D_202D_200D_206A_202E_206E_206B_202A_202A_202B_200B_200C_202C_206C_200B_206E_206C_206F_206D_206A_200C_200D_202A_206E_200F_202A_202A_202E_206C_206D_206D_202C_206D_200D_202E_206B_206E_202D_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200B_206B_206F_202B_206B_202D_206D_206D_206E_206E_206F_202B_206A_206E_206B_200F_202D_200F_206B_200C_202A_200B_200D_206D_206D_206D_206B_200D_202C_200B_206A_202C_200E_200E_200F_206C_200D_206C_200E_206C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202E_200F_206F_202D_200C_206A_206C_200D_202C_202C_206B_202C_200C_206F_206C_206D_206B_202D_200E_202E_206A_202E_202C_200E_200F_200D_202C_206A_202E_206D_202D_206F_202A_206B_206D_202D_200E_206C_206D_206B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202B_202A_200B_206C_200B_202E_202C_202C_202B_202C_206B_206E_202B_200B_206E_200C_200D_206F_200E_200F_200C_202C_206A_202B_200E_206D_200F_202B_200C_206C_206C_206D_200B_206B_200E_202B_200C_206E_206E_206E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202D_206C_206B_206A_202C_206F_200C_206D_202E_202E_206A_202E_202D_206F_202E_202B_202A_206F_200D_202A_202C_202B_202B_202A_206B_206F_200F_206F_206D_200C_206D_206B_206E_206C_206C_202D_206D_200D_200E_200E_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _202C_206E_206C_202D_206C_200B_206B_202C_200B_200C_206B_200E_206E_202B_202C_200C_206E_206F_200B_200D_200C_202B_202A_202E_200B_206B_202E_200C_206A_206D_202E_206E_206E_202A_206E_200C_206E_206C_202B_206D_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } } diff --git a/SmartNav/SmartNav/NavRouter.cs b/SmartNav/SmartNav/NavRouter.cs index 3182fe5..246289a 100644 --- a/SmartNav/SmartNav/NavRouter.cs +++ b/SmartNav/SmartNav/NavRouter.cs @@ -1,9 +1,6 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Text; using System.Threading; using Microsoft.Extensions.Logging; using SmartNav.Graph; @@ -25,129 +22,16 @@ public sealed class NavRouter public int CompareTo(RouteCost other) { int num = Time.CompareTo(other.Time); - int num2 = ((num == 0) ? (-471116150) : (-471116149)); - int num6 = default(int); - while (true) + if (num != 0) { - int num3 = num2; - int num4 = -471116152; - int num5 = num3; - switch ((num5 | num4) - (num5 & num4)) - { - case 0: - num2 = -471116149; - break; - case 1: - return Hops.CompareTo(other.Hops); - case 3: - return num; - case 4: - return num6; - case 2: - num6 = Gil.CompareTo(other.Gil); - num2 = ((num6 == 0) ? (-471116151) : (-471116148)); - break; - } + return num; } - } - - int IComparable<RouteCost>.CompareTo(RouteCost other) - { - //ILSpy generated this explicit interface implementation from .override directive in CompareTo - return this.CompareTo(other); - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202B_206A_200B_202B_202E_200C_202A_206A_202D_202A_202E_206F_206D_200E_206F_200B_202A_200B_206E_202D_202E_206A_200B_206E_202B_206F_202A_202C_206C_206D_206C_200B_200F_202C_202E_206A_200E_206A_202B_206C_202E(); - _202E_206D_206C_202B_200B_202C_206C_202C_206A_202B_202B_206B_200F_202E_202D_206A_202C_202A_206F_206D_202E_202E_206A_200D_202C_202A_206F_202A_200F_202C_206F_202C_206D_202B_200E_200E_200C_206E_202A_200D_202E(stringBuilder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1818956806)); - _202E_206D_206C_202B_200B_202C_206C_202C_206A_202B_202B_206B_200F_202E_202D_206A_202C_202A_206F_206D_202E_202E_206A_200D_202C_202A_206F_202A_200F_202C_206F_202C_206D_202B_200E_200E_200C_206E_202A_200D_202E(stringBuilder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-169322018)); - int num = ((!PrintMembers(stringBuilder)) ? 1574210164 : 1574210167); - while (true) + int num2 = Gil.CompareTo(other.Gil); + if (num2 != 0) { - int num2 = num; - int num3 = 1574210166; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - _202E_206C_200F_206A_200C_202C_200B_200E_206F_202D_206C_202A_206B_206C_202B_202B_200F_206C_200C_206F_200C_200D_202E_202E_206F_202C_200D_202B_202E_206C_206C_206B_206C_202A_200D_206A_206C_202A_206A_206A_202E(stringBuilder, '}'); - return _202D_202E_206C_200F_202B_200B_206E_200C_202D_206F_202D_200D_202C_200E_202E_202B_206E_206A_200D_206D_206C_200D_200B_202B_206B_202D_202C_200D_202A_200F_206A_202A_200C_200D_200F_200C_202B_206A_202A_202B_202E((object)stringBuilder); - case 1: - _202E_206C_200F_206A_200C_202C_200B_200E_206F_202D_206C_202A_206B_206C_202B_202B_200F_206C_200C_206F_200C_200D_202E_202E_206F_202C_200D_202B_202E_206C_206C_206B_206C_202A_200D_206A_206C_202A_206A_206A_202E(stringBuilder, ' '); - num = 1574210164; - break; - case 0: - num = 1574210167; - break; - } + return num2; } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202E_206D_206C_202B_200B_202C_206C_202C_206A_202B_202B_206B_200F_202E_202D_206A_202C_202A_206F_206D_202E_202E_206A_200D_202C_202A_206F_202A_200F_202C_206F_202C_206D_202B_200E_200E_200C_206E_202A_200D_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(193985830)); - _202E_206D_206C_202B_200B_202C_206C_202C_206A_202B_202B_206B_200F_202E_202D_206A_202C_202A_206F_206D_202E_202E_206A_200D_202C_202A_206F_202A_200F_202C_206F_202C_206D_202B_200E_200E_200C_206E_202A_200D_202E(builder, Time.ToString()); - _202E_206D_206C_202B_200B_202C_206C_202C_206A_202B_202B_206B_200F_202E_202D_206A_202C_202A_206F_206D_202E_202E_206A_200D_202C_202A_206F_202A_200F_202C_206F_202C_206D_202B_200E_200E_200C_206E_202A_200D_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-143137433)); - _202E_206D_206C_202B_200B_202C_206C_202C_206A_202B_202B_206B_200F_202E_202D_206A_202C_202A_206F_206D_202E_202E_206A_200D_202C_202A_206F_202A_200F_202C_206F_202C_206D_202B_200E_200E_200C_206E_202A_200D_202E(builder, Gil.ToString()); - _202E_206D_206C_202B_200B_202C_206C_202C_206A_202B_202B_206B_200F_202E_202D_206A_202C_202A_206F_206D_202E_202E_206A_200D_202C_202A_206F_202A_200F_202C_206F_202C_206D_202B_200E_200E_200C_206E_202A_200D_202E(builder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-304888681)); - _202E_206D_206C_202B_200B_202C_206C_202C_206A_202B_202B_206B_200F_202E_202D_206A_202C_202A_206F_206D_202E_202E_206A_200D_202C_202A_206F_202A_200F_202C_206F_202C_206D_202B_200E_200E_200C_206E_202A_200D_202E(builder, Hops.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(RouteCost other) - { - int num = ((!EqualityComparer<float>.Default.Equals(Time, other.Time)) ? (-631091536) : (-631091534)); - while (true) - { - int num2 = num; - int num3 = -631091536; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - num = -631091534; - break; - case 1: - return EqualityComparer<int>.Default.Equals(Hops, other.Hops); - case 2: - num = ((!EqualityComparer<int>.Default.Equals(Gil, other.Gil)) ? (-631091536) : (-631091535)); - break; - case 0: - return false; - } - } - } - - bool IEquatable<RouteCost>.Equals(RouteCost other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static StringBuilder _202B_206A_200B_202B_202E_200C_202A_206A_202D_202A_202E_206F_206D_200E_206F_200B_202A_200B_206E_202D_202E_206A_200B_206E_202B_206F_202A_202C_206C_206D_206C_200B_200F_202C_202E_206A_200E_206A_202B_206C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202E_206D_206C_202B_200B_202C_206C_202C_206A_202B_202B_206B_200F_202E_202D_206A_202C_202A_206F_206D_202E_202E_206A_200D_202C_202A_206F_202A_200F_202C_206F_202C_206D_202B_200E_200E_200C_206E_202A_200D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202E_206C_200F_206A_200C_202C_200B_200E_206F_202D_206C_202A_206B_206C_202B_202B_200F_206C_200C_206F_200C_200D_202E_202E_206F_202C_200D_202B_202E_206C_206C_206B_206C_202A_200D_206A_206C_202A_206A_206A_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202D_202E_206C_200F_202B_200B_206E_200C_202D_206F_202D_200D_202C_200E_202E_202B_206E_206A_200D_206D_206C_200D_200B_202B_206B_202D_202C_200D_202A_200F_206A_202A_200C_200D_200F_200C_202B_206A_202A_202B_202E(object P_0) - { - return P_0.ToString(); + return Hops.CompareTo(other.Hops); } } @@ -179,44 +63,21 @@ public sealed class NavRouter _staticGraph = new Lazy<NavGraph>(_graphBuilder.Build, LazyThreadSafetyMode.ExecutionAndPublication); } - [MethodImpl(MethodImplOptions.NoInlining)] public RouteResult FindRoute(PlayerNavState playerState, uint destinationTerritoryId, Vector3 destinationPosition, IReadOnlySet<string>? penalizedTargets = null) { - (NavGraph EffectiveGraph, string OriginId, string DestinationId) tuple = _graphView.CreateQueryGraph(StaticGraph, playerState, destinationTerritoryId, destinationPosition); - NavGraph item = tuple.EffectiveGraph; - string item2 = tuple.OriginId; - string item3 = tuple.DestinationId; - int num = ((item.GetNode(item2) == null) ? (-322814782) : (-322814778)); - List<(string, NavEdge)> list = default(List<(string, NavEdge)>); - while (true) + var (navGraph, text, text2) = _graphView.CreateQueryGraph(StaticGraph, playerState, destinationTerritoryId, destinationPosition); + if (navGraph.GetNode(text) == null || navGraph.GetNode(text2) == null) { - int num2 = num; - int num3 = -322814777; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - _202C_200E_200B_200F_200E_202A_200F_206E_206E_206E_200E_202B_202A_200B_202E_200E_206A_206E_200D_200B_200C_202C_202C_202A_202E_200D_200F_200F_206C_200B_206A_202B_200B_206A_200E_200E_206A_202A_202A_206E_202E((ILogger)_logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(599235747), new object[2] { item2, destinationTerritoryId }); - return RouteResult.Empty; - case 3: - list = Dijkstra(item, item2, item3, penalizedTargets); - num = ((list != null) ? (-322814781) : (-322814777)); - break; - case 5: - _202C_200E_200B_200F_200E_202A_200F_206E_206E_206E_200E_202B_202A_200B_202E_200E_206A_206E_200D_200B_200C_202C_202C_202A_202E_200D_200F_200F_206C_200B_206A_202B_200B_206A_200E_200E_206A_202A_202A_206E_202E((ILogger)_logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(310385065), Array.Empty<object>()); - return RouteResult.Empty; - case 1: - num = ((!(item.GetNode(item3) == null)) ? (-322814780) : (-322814782)); - break; - case 4: - return BuildRouteResult(item, list, playerState); - case 2: - num = -322814778; - break; - } + _logger.LogWarning("Origin or destination node missing from query graph"); + return RouteResult.Empty; } + List<(string, NavEdge)> list = Dijkstra(navGraph, text, text2, penalizedTargets); + if (list == null) + { + _logger.LogWarning("No route found from {Origin} to territory {Territory}", text, destinationTerritoryId); + return RouteResult.Empty; + } + return BuildRouteResult(navGraph, list, playerState); } internal static List<(string NodeId, NavEdge? ViaEdge)>? Dijkstra(NavGraph graph, string startId, string endId, IReadOnlySet<string>? penalizedTargets) @@ -227,458 +88,112 @@ public sealed class NavRouter PriorityQueue<string, RouteCost> priorityQueue = new PriorityQueue<string, RouteCost>(); dictionary[startId] = default(RouteCost); priorityQueue.Enqueue(startId, default(RouteCost)); - IEnumerator<string> enumerator = graph.Nodes.Keys.GetEnumerator(); - try + foreach (string key in graph.Nodes.Keys) { - int num = 1145583331; - string current = default(string); - while (true) + if (key != startId) + { + dictionary[key] = RouteCost.Max; + } + dictionary2[key] = null; + } + while (priorityQueue.Count > 0) + { + string text = priorityQueue.Dequeue(); + if (text == endId) + { + break; + } + if (!hashSet.Add(text)) { - int num2 = num; - int num3 = 1145583330; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 5: - dictionary2[current] = null; - num = 1145583331; - break; - case 3: - dictionary[current] = RouteCost.Max; - num = 1145583335; - break; - case 4: - current = enumerator.Current; - num = ((!_206C_206C_206F_202B_206E_202D_206B_200C_202E_202A_202B_206E_200D_206A_200D_202C_202A_206E_206A_206F_200C_200B_206F_202A_202C_206F_206D_202D_206D_200C_206E_206C_206F_200E_202A_202B_206C_206D_202D_206A_202E(current, startId)) ? 1145583335 : 1145583329); - break; - case 0: - num = 1145583331; - break; - case 1: - num = (_202E_202B_206E_206A_202D_206A_206D_202D_206B_206E_200E_202C_206E_202D_206B_202C_206D_202A_200B_206F_206E_200D_206E_200D_202C_200C_202D_206B_206E_200D_206B_200E_206C_200F_202B_200B_202B_200B_200D_206B_202E((IEnumerator)enumerator) ? 1145583334 : 1145583328); - break; - case 2: - goto end_IL_0058; - } continue; - end_IL_0058: - break; } - } - finally - { - int num = ((enumerator == null) ? (-807240815) : (-807240814)); - while (true) + foreach (NavEdge edge in graph.GetEdges(text)) { - int num7 = num; - int num3 = -807240816; - int num4 = num7; - int num8 = num4 + num3; - int num9 = num4 & num3; - switch (num8 - (num9 + num9)) + if (!hashSet.Contains(edge.ToNodeId) && !(graph.GetNode(edge.ToNodeId) == null)) { - case 0: - num = -807240814; - break; - case 1: - goto end_IL_014b; - case 2: - _206C_206D_206D_200F_206D_202B_202A_206A_200D_206D_206E_202B_206C_202C_202C_200C_206F_200F_202B_200B_200E_206A_202B_206F_206A_202D_200F_200F_206A_202E_200E_202B_200C_206F_200B_206E_200C_202E_206A_206F_202E((IDisposable)enumerator); - num = -807240815; - break; - } - continue; - end_IL_014b: - break; - } - } - NavEdge current2 = default(NavEdge); - RouteCost routeCost = default(RouteCost); - List<(string, NavEdge)> list = default(List<(string, NavEdge)>); - (string, NavEdge)? tuple = default((string, NavEdge)?); - string text2 = default(string); - (string, NavEdge)? value = default((string, NavEdge)?); - while (true) - { - int num; - if (priorityQueue.Count > 0) - { - string text = priorityQueue.Dequeue(); - if (!_202C_200F_206E_202A_200E_206D_206B_202E_200D_200B_202A_202A_206A_200F_202A_206F_202C_206C_200E_206D_202E_202A_200B_202C_202D_206A_206E_202E_200F_206B_202B_200E_206A_206D_202C_202B_200C_202E_206E_202E(text, endId)) - { - num = -1852685480; - while (true) + float penalty = ((penalizedTargets != null && penalizedTargets.Contains(edge.ToNodeId)) ? 1000000f : 0f); + RouteCost routeCost = dictionary[text].Add(edge, penalty); + if (routeCost.CompareTo(dictionary[edge.ToNodeId]) < 0) { - int num10 = num; - int num3 = -1852685479; - int num4 = num10; - int num11 = num4 + num3; - int num12 = num4 & num3; - switch (num11 - (num12 + num12)) - { - default: - continue; - case 0: - num = -1852685480; - continue; - case 1: - if (hashSet.Add(text)) - { - num = -1852685477; - continue; - } - break; - case 2: - { - IEnumerator<NavEdge> enumerator2 = graph.GetEdges(text).GetEnumerator(); - try - { - num = -890864952; - while (true) - { - int num13 = num; - num3 = -890864947; - num4 = num13; - float num14; - switch ((num4 | num3) - (num4 & num3)) - { - default: - continue; - case 9: - num = -890864952; - continue; - case 2: - num14 = 0f; - break; - case 1: - num = (penalizedTargets.Contains(current2.ToNodeId) ? (-890864946) : (-890864945)); - continue; - case 8: - current2 = enumerator2.Current; - num = (hashSet.Contains(current2.ToNodeId) ? (-890864952) : (-890864950)); - continue; - case 4: - dictionary[current2.ToNodeId] = routeCost; - dictionary2[current2.ToNodeId] = (text, current2); - priorityQueue.Enqueue(current2.ToNodeId, routeCost); - num = -890864952; - continue; - case 7: - num = ((graph.GetNode(current2.ToNodeId) == null) ? (-890864952) : (-890864947)); - continue; - case 0: - num = ((penalizedTargets == null) ? (-890864945) : (-890864948)); - continue; - case 5: - num = (_202E_202B_206E_206A_202D_206A_206D_202D_206B_206E_200E_202C_206E_202D_206B_202C_206D_202A_200B_206F_206E_200D_206E_200D_202C_200C_202D_206B_206E_200D_206B_200E_206C_200F_202B_200B_202B_200B_200D_206B_202E((IEnumerator)enumerator2) ? (-890864955) : (-890864949)); - continue; - case 3: - num14 = 1000000f; - break; - case 6: - goto end_IL_0228; - } - float penalty = num14; - routeCost = dictionary[text].Add(current2, penalty); - num = ((routeCost.CompareTo(dictionary[current2.ToNodeId]) >= 0) ? (-890864952) : (-890864951)); - continue; - end_IL_0228: - break; - } - } - finally - { - num = ((enumerator2 == null) ? (-1559785427) : (-1559785428)); - while (true) - { - int num15 = num; - num3 = -1559785427; - num4 = num15; - int num16 = num4 + num3; - int num17 = num4 & num3; - switch (num16 - (num17 + num17)) - { - case 0: - goto end_IL_041a; - case 1: - _206C_206D_206D_200F_206D_202B_202A_206A_200D_206D_206E_202B_206C_202C_202C_200C_206F_200F_202B_200B_200E_206A_202B_206F_206A_202D_200F_200F_206A_202E_200E_202B_200C_206F_200B_206E_200C_202E_206A_206F_202E((IDisposable)enumerator2); - num = -1559785427; - break; - case 2: - num = -1559785428; - break; - } - continue; - end_IL_041a: - break; - } - } - break; - } - } - break; + dictionary[edge.ToNodeId] = routeCost; + dictionary2[edge.ToNodeId] = (text, edge); + priorityQueue.Enqueue(edge.ToNodeId, routeCost); } - continue; } - goto IL_055e; } - num = 1361377681; - goto IL_0480; - IL_055e: - num = ((!(dictionary[endId] == RouteCost.Max)) ? 1361377683 : 1361377691); - goto IL_0480; - IL_0480: - while (true) - { - int num18 = num; - int num3 = 1361377682; - int num4 = num18; - int num19 = num4 + num3; - int num20 = num4 & num3; - object obj2; - (string, NavEdge)? obj; - switch (num19 - (num20 + num20)) - { - default: - continue; - case 10: - list.Reverse(); - return list; - case 6: - obj2 = tuple.GetValueOrDefault().Item1; - goto IL_04e4; - case 1: - list = new List<(string, NavEdge)>(); - text2 = endId; - num = 1361377690; - continue; - case 4: - obj = value; - goto IL_050a; - case 9: - return null; - case 3: - break; - case 5: - num = (dictionary2.TryGetValue(text2, out value) ? 1361377686 : 1361377680); - continue; - case 8: - num = ((text2 != null) ? 1361377687 : 1361377688); - continue; - case 7: - obj2 = null; - goto IL_04e4; - case 2: - obj = null; - goto IL_050a; - case 0: - { - num = 1361377681; - continue; - } - IL_04e4: - text2 = (string)obj2; - num = 1361377690; - continue; - IL_050a: - tuple = obj; - list.Add((text2, tuple?.Item2)); - num = (tuple.HasValue ? 1361377684 : 1361377685); - continue; - } - break; - } - goto IL_055e; } + if (dictionary[endId] == RouteCost.Max) + { + return null; + } + List<(string, NavEdge)> list = new List<(string, NavEdge)>(); + string text2 = endId; + while (text2 != null) + { + (string, NavEdge)? value; + (string, NavEdge)? tuple = (dictionary2.TryGetValue(text2, out value) ? value : (((string, NavEdge)?)null)); + list.Add((text2, tuple?.Item2)); + text2 = tuple?.Item1; + } + list.Reverse(); + return list; } - [MethodImpl(MethodImplOptions.NoInlining)] private RouteResult BuildRouteResult(NavGraph graph, List<(string NodeId, NavEdge? ViaEdge)> path, PlayerNavState playerState) { List<RouteSegment> list = new List<RouteSegment>(); float num = 0f; int num2 = 0; - int num3 = 1; - int num4 = -1379840966; - NavNode node = default(NavNode); - NavEdge item2 = default(NavEdge); - NavNode node2 = default(NavNode); - NavEdgeType edgeType = default(NavEdgeType); - bool flag2 = default(bool); - int num11 = default(int); - while (true) + for (int i = 1; i < path.Count; i++) { - int num5 = num4; - int num6 = -1379840964; - int num7 = num5; - int num8 = num7 + num6; - int num9 = num7 & num6; - switch (num8 - (num9 + num9)) + NavEdge item = path[i].ViaEdge; + if (!(item == null)) { - case 13: - node = graph.GetNode(item2.FromNodeId); - node2 = graph.GetNode(item2.ToNodeId); - edgeType = item2.EdgeType; - num4 = ((edgeType == NavEdgeType.WithinZone) ? (-1379840963) : (-1379840964)); - break; - case 8: - { - bool flag = flag2; - RouteSegment item = new RouteSegment(item2.EdgeType, node, node2, item2.TimeCostSeconds, item2.GilCost, GetTeleportTarget(node2), GetAethernetLocation(node), GetAethernetLocation(node2), flag && IsFlyingSegment(node, playerState)); - list.Add(item); - num += item2.TimeCostSeconds; - num2 += item2.GilCost; - num4 = -1379840962; - break; - } - case 11: - num4 = -1379840966; - break; - case 3: - return new RouteResult(list, num, num2); - case 4: - flag2 = false; - num4 = -1379840972; - break; - case 9: - num11 = 0; - num4 = -1379840976; - break; - case 7: - { - RouteSegment routeSegment = list[num11]; - string text = FormatNodeLabel(routeSegment.From); - string text2 = FormatNodeLabel(routeSegment.To); - ILogger<NavRouter> logger = _logger; - string text3 = global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1568494376); - object[] array = new object[6]; - int num12 = num11; - num6 = 1; - num7 = num12; - array[0] = (num7 | num6) + (num7 & num6); - array[1] = routeSegment.EdgeType; - array[2] = text; - array[3] = text2; - array[4] = routeSegment.TimeCost; - array[5] = routeSegment.GilCost; - _206E_200F_202A_200D_206F_206C_200E_200F_206A_202B_202D_202A_202A_206D_200D_202D_200B_200F_202B_206A_206E_202A_202E_206F_202E_202A_200D_206A_202D_200F_206D_206E_200D_202E_202B_206C_206D_202D_202A_202E((ILogger)logger, text3, array); - int num13 = num11; - num6 = 1; - num7 = num13; - int num14 = num7 ^ num6; - int num15 = num7 & num6; - num11 = num14 + (num15 + num15); - num4 = -1379840976; - break; - } - case 0: - num4 = (((uint)(edgeType - 3) > 1u) ? (-1379840968) : (-1379840963)); - break; - case 12: - num4 = ((num11 < list.Count) ? (-1379840965) : (-1379840961)); - break; - case 5: - _206E_200F_202A_200D_206F_206C_200E_200F_206A_202B_202D_202A_202A_206D_200D_202D_200B_200F_202B_206A_206E_202A_202E_206F_202E_202A_200D_206A_202D_200F_206D_206E_200D_202E_202B_206C_206D_202D_202A_202E((ILogger)_logger, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-876283160), new object[3] { list.Count, num, num2 }); - num4 = ((!_206E_202B_202B_206F_200C_200D_206E_202D_202C_206E_206B_200D_206F_202C_200D_206A_200F_206D_202D_200B_200E_206F_202C_200B_200B_206D_200D_202A_206D_206E_206A_202C_202A_200F_200D_202D_200C_206A_202B_200E_202E((ILogger)_logger, LogLevel.Debug)) ? (-1379840961) : (-1379840971)); - break; - case 10: - item2 = path[num3].ViaEdge; - num4 = ((item2 == null) ? (-1379840962) : (-1379840975)); - break; - case 2: - { - int num10 = num3; - num6 = 1; - num7 = num10; - num3 = (num7 | num6) + (num7 & num6); - num4 = -1379840966; - break; - } - case 1: - flag2 = true; - num4 = -1379840972; - break; - case 6: - num4 = ((num3 < path.Count) ? (-1379840970) : (-1379840967)); - break; + NavNode node = graph.GetNode(item.FromNodeId); + NavNode node2 = graph.GetNode(item.ToNodeId); + NavEdgeType edgeType = item.EdgeType; + bool flag = ((edgeType == NavEdgeType.WithinZone || (uint)(edgeType - 3) <= 1u) ? true : false); + bool flag2 = flag; + RouteSegment item2 = new RouteSegment(item.EdgeType, node, node2, item.TimeCostSeconds, item.GilCost, GetTeleportTarget(node2), GetAethernetLocation(node), GetAethernetLocation(node2), flag2 && IsFlyingSegment(node, playerState)); + list.Add(item2); + num += item.TimeCostSeconds; + num2 += item.GilCost; } } + _logger.LogDebug("Route found: {SegmentCount} segments, {Time:F1}s, {Gil} gil", list.Count, num, num2); + if (_logger.IsEnabled(LogLevel.Debug)) + { + for (int j = 0; j < list.Count; j++) + { + RouteSegment routeSegment = list[j]; + string text = FormatNodeLabel(routeSegment.From); + string text2 = FormatNodeLabel(routeSegment.To); + _logger.LogDebug(" [{Index}] {Type}: {From} -> {To} ({Time:F1}s, {Gil} gil)", j + 1, routeSegment.EdgeType, text, text2, routeSegment.TimeCost, routeSegment.GilCost); + } + } + return new RouteResult(list, num, num2); } private static EAetheryteLocation? GetTeleportTarget(NavNode node) { - NavNode.AetheryteNode aetheryteNode = node as NavNode.AetheryteNode; - int num = (((object)aetheryteNode == null) ? 580580720 : 580580722); - EAetheryteLocation? result = default(EAetheryteLocation?); - while (true) + if (node is NavNode.AetheryteNode aetheryteNode) { - int num2 = num; - int num3 = 580580721; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = 580580722; - break; - case 1: - result = null; - num = 580580723; - break; - case 3: - result = aetheryteNode.Aetheryte; - num = 580580723; - break; - case 2: - return result; - } + return aetheryteNode.Aetheryte; } + return null; } private static EAetheryteLocation? GetAethernetLocation(NavNode node) { - NavNode.AetheryteNode aetheryteNode = node as NavNode.AetheryteNode; - int num = (((object)aetheryteNode != null) ? (-1554241774) : (-1554241770)); - EAetheryteLocation? result = default(EAetheryteLocation?); - NavNode.AethernetNode aethernetNode = default(NavNode.AethernetNode); - while (true) + if (!(node is NavNode.AetheryteNode aetheryteNode)) { - int num2 = num; - int num3 = -1554241772; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + if (node is NavNode.AethernetNode aethernetNode) { - case 6: - result = aetheryteNode.Aetheryte; - num = -1554241776; - break; - case 4: - return result; - case 2: - aethernetNode = node as NavNode.AethernetNode; - num = (((object)aethernetNode != null) ? (-1554241769) : (-1554241771)); - break; - case 5: - result = null; - num = -1554241776; - break; - case 0: - num = -1554241770; - break; - case 3: - result = aethernetNode.Aethernet; - num = -1554241776; - break; - case 1: - num = -1554241775; - break; + return aethernetNode.Aethernet; } + return null; } + return aetheryteNode.Aetheryte; } private static bool IsFlyingSegment(NavNode from, PlayerNavState playerState) @@ -686,58 +201,9 @@ public sealed class NavRouter return playerState.IsFlyingUnlocked(from.TerritoryId); } - [MethodImpl(MethodImplOptions.NoInlining)] private string FormatNodeLabel(NavNode node) { - string text = _territoryInfo.GetName(node.TerritoryId); - if (text == null) - { - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(1, 1); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-907107096)); - defaultInterpolatedStringHandler.AppendFormatted(node.TerritoryId); - text = defaultInterpolatedStringHandler.ToStringAndClear(); - } - string text2 = text; - return _206C_206A_200F_202B_202D_206B_206D_206A_206E_206E_200E_200B_206D_206B_206A_206E_202B_206F_200E_202A_200F_202C_200E_202E_202D_200D_200B_200D_200C_206A_200F_206A_206F_200F_200C_206D_200D_200B_202D_202A_202E(node.Label, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-546241467), text2, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(998949340)); - } - - static void _202C_200E_200B_200F_200E_202A_200F_206E_206E_206E_200E_202B_202A_200B_202E_200E_206A_206E_200D_200B_200C_202C_202C_202A_202E_200D_200F_200F_206C_200B_206A_202B_200B_206A_200E_200E_206A_202A_202A_206E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static bool _206C_206C_206F_202B_206E_202D_206B_200C_202E_202A_202B_206E_200D_206A_200D_202C_202A_206E_206A_206F_200C_200B_206F_202A_202C_206F_206D_202D_206D_200C_206E_206C_206F_200E_202A_202B_206C_206D_202D_206A_202E(string P_0, string P_1) - { - return P_0 != P_1; - } - - static bool _202E_202B_206E_206A_202D_206A_206D_202D_206B_206E_200E_202C_206E_202D_206B_202C_206D_202A_200B_206F_206E_200D_206E_200D_202C_200C_202D_206B_206E_200D_206B_200E_206C_200F_202B_200B_202B_200B_200D_206B_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _206C_206D_206D_200F_206D_202B_202A_206A_200D_206D_206E_202B_206C_202C_202C_200C_206F_200F_202B_200B_200E_206A_202B_206F_206A_202D_200F_200F_206A_202E_200E_202B_200C_206F_200B_206E_200C_202E_206A_206F_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool _202C_200F_206E_202A_200E_206D_206B_202E_200D_200B_202A_202A_206A_200F_202A_206F_202C_206C_200E_206D_202E_202A_200B_202C_202D_206A_206E_202E_200F_206B_202B_200E_206A_206D_202C_202B_200C_202E_206E_202E(string P_0, string P_1) - { - return P_0 == P_1; - } - - static void _206E_200F_202A_200D_206F_206C_200E_200F_206A_202B_202D_202A_202A_206D_200D_202D_200B_200F_202B_206A_206E_202A_202E_206F_202E_202A_200D_206A_202D_200F_206D_206E_200D_202E_202B_206C_206D_202D_202A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _206E_202B_202B_206F_200C_200D_206E_202D_202C_206E_206B_200D_206F_202C_200D_206A_200F_206D_202D_200B_200E_206F_202C_200B_200B_206D_200D_202A_206D_206E_206A_202C_202A_200F_200D_202D_200C_206A_202B_200E_202E(ILogger P_0, LogLevel P_1) - { - return P_0.IsEnabled(P_1); - } - - static string _206C_206A_200F_202B_202D_206B_206D_206A_206E_206E_200E_200B_206D_206B_206A_206E_202B_206F_200E_202A_200F_202C_200E_202E_202D_200D_200B_200D_200C_206A_200F_206A_206F_200F_200C_206D_200D_200B_202D_202A_202E(string P_0, string P_1, string P_2, string P_3) - { - return P_0 + P_1 + P_2 + P_3; + string text = _territoryInfo.GetName(node.TerritoryId) ?? $"t{node.TerritoryId}"; + return node.Label + " (" + text + ")"; } } diff --git a/SmartNav/SmartNav/PlayerNavState.cs b/SmartNav/SmartNav/PlayerNavState.cs index c4269e9..96462f1 100644 --- a/SmartNav/SmartNav/PlayerNavState.cs +++ b/SmartNav/SmartNav/PlayerNavState.cs @@ -49,51 +49,20 @@ public sealed class PlayerNavState public bool CanAffordTeleport(int gilCost) { - int num = ((gilCost == 0) ? (-1679548290) : (-1679548289)); - while (true) + if (gilCost != 0) { - int num2 = num; - int num3 = -1679548290; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - goto IL_0041; - case 0: - return true; - case 1: - return Gil - gilCost >= GilReserve; - } - continue; - IL_0041: - num = -1679548289; + return Gil - gilCost >= GilReserve; } + return true; } public int GetTeleportCost(EAetheryteLocation aetheryte) { - int value; - int num = (TeleportCosts.TryGetValue(aetheryte, out value) ? 1986787901 : 1986787902); - while (true) + if (!TeleportCosts.TryGetValue(aetheryte, out var value)) { - int num2 = num; - int num3 = 1986787900; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0050; - case 2: - return 999; - case 1: - return value; - } - continue; - IL_0050: - num = 1986787902; + return 999; } + return value; } public bool IsAetheryteUnlocked(EAetheryteLocation aetheryte) @@ -108,28 +77,11 @@ public sealed class PlayerNavState public int GetMountSpeedLevel(uint territoryId) { - int value; - int num = (MountSpeedLevels.TryGetValue(territoryId, out value) ? (-743814756) : (-743814753)); - while (true) + if (!MountSpeedLevels.TryGetValue(territoryId, out var value)) { - int num2 = num; - int num3 = -743814754; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0050; - case 1: - return 0; - case 2: - return value; - } - continue; - IL_0050: - num = -743814753; + return 0; } + return value; } public bool IsQuestComplete(uint questRowId) diff --git a/SmartNav/SmartNav/PlayerNavStateBuilder.cs b/SmartNav/SmartNav/PlayerNavStateBuilder.cs index 4fce80d..683bc26 100644 --- a/SmartNav/SmartNav/PlayerNavStateBuilder.cs +++ b/SmartNav/SmartNav/PlayerNavStateBuilder.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections; using System.Collections.Generic; -using System.Numerics; using Dalamud.Game.ClientState.Aetherytes; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; @@ -19,608 +16,146 @@ public class PlayerNavStateBuilder(IClientState clientState, IObjectTable object { public virtual PlayerNavState? Build(int? gilReserveOverride = null) { - IGameObject gameObject = _206E_202E_200C_206A_202C_202C_206E_202E_206C_202A_206D_202D_206B_206B_202B_206D_206C_206C_206D_206A_206E_200F_206A_206C_200D_206B_200E_206A_206E_206B_206D_202B_202A_206F_202A_202B_202D_202C_206E_202A_202E(objectTable, 0); - int num = ((gameObject != null) ? 1190878108 : 1190878111); - EAetheryteLocation current2 = default(EAetheryteLocation); - EAetheryteLocation current3 = default(EAetheryteLocation); - while (true) + IGameObject gameObject = objectTable[0]; + if (gameObject == null) { - int num2 = num; - int num3 = 1190878109; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - goto IL_0057; - case 2: - return null; - case 1: - { - HashSet<EAetheryteLocation> hashSet = new HashSet<EAetheryteLocation>(); - Dictionary<EAetheryteLocation, int> dictionary = new Dictionary<EAetheryteLocation, int>(); - EAetheryteLocation homeAetheryte = (EAetheryteLocation)_200D_200E_202C_202E_206F_200E_202C_206F_200F_200C_206C_200D_200F_200E_202B_200C_202B_200F_200C_200F_206D_206F_202B_206B_202D_200E_200D_206E_206F_202E_206D_202C_202B_200C_200B_206D_206D_202A_206E_206B_202E(); - EAetheryteLocation? freeAetheryte = null; - byte maxExpansion = _202A_200E_200B_200F_206A_202C_202A_206D_202C_206A_202C_206F_202C_202B_206E_206A_202A_200E_200D_206C_202B_200D_206E_200D_206D_200F_206A_202D_202C_206F_200D_200C_206B_206B_206A_206E_200E_200E_206A_202B_202E(); - IEnumerator<IAetheryteEntry> enumerator = aetheryteList.GetEnumerator(); - try - { - num = -2145786572; - while (true) - { - int num5 = num; - num3 = -2145786572; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 0: - num = (_200F_200B_206B_200F_200E_202B_200F_202B_206B_202D_202A_206E_200F_200E_202E_206C_206D_202E_206F_202E_206B_202D_202D_202B_202D_202C_202C_206E_202C_200D_202A_200E_206D_200B_202E_200F_206E_206E_200D_206C_202E((IEnumerator)enumerator) ? (-2145786571) : (-2145786570)); - break; - case 1: - { - IAetheryteEntry current = enumerator.Current; - EAetheryteLocation eAetheryteLocation = (EAetheryteLocation)_200C_200D_202E_202B_206B_202A_206C_202E_206D_202D_206A_206A_202A_206F_202D_200F_202A_206B_206A_206F_200B_202C_206E_206B_200D_200D_200E_206B_202C_206D_206A_200F_202B_202A_200D_202B_206C_206D_200F_200D_202E(current); - hashSet.Add(eAetheryteLocation); - dictionary[eAetheryteLocation] = (int)_202B_206D_202D_200B_200B_200C_206B_200E_200B_202A_200D_206E_202D_200B_206F_206B_200D_202E_200E_206E_202E_200D_206F_206D_206A_200F_206E_200C_202D_202D_206C_206D_202E_200B_200D_206F_202D_200B_206E_200D_202E(current); - num = -2145786572; - break; - } - case 3: - num = -2145786572; - break; - case 2: - goto end_IL_009f; - } - continue; - end_IL_009f: - break; - } - } - finally - { - num = ((enumerator == null) ? 1827327183 : 1827327180); - while (true) - { - int num8 = num; - num3 = 1827327181; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 0: - num = 1827327180; - break; - case 1: - _202B_200E_206C_200E_200E_206E_202B_200C_202B_200B_206D_202E_200C_200F_206C_202D_200D_202A_200E_206B_202B_206B_202A_200C_206D_200D_206E_202C_202B_206E_206A_200B_206D_200E_202A_202D_200B_206F_200C_202E((IDisposable)enumerator); - num = 1827327183; - break; - case 2: - goto end_IL_015b; - } - continue; - end_IL_015b: - break; - } - } - IEnumerator<EAetheryteLocation> enumerator2 = aetheryteData.Locations.Keys.GetEnumerator(); - try - { - num = 463235074; - while (true) - { - int num11 = num; - num3 = 463235072; - num4 = num11; - int num12 = num4 + num3; - int num13 = num4 & num3; - switch (num12 - (num13 + num13)) - { - case 2: - num = (_200F_200B_206B_200F_200E_202B_200F_202B_206B_202D_202A_206E_200F_200E_202E_206C_206D_202E_206F_202E_206B_202D_202D_202B_202D_202C_202C_206E_202C_200D_202A_200E_206D_200B_202E_200F_206E_206E_200D_206C_202E((IEnumerator)enumerator2) ? 463235076 : 463235073); - break; - case 4: - current2 = enumerator2.Current; - num = ((!playerContext.IsAetheryteUnlocked(current2)) ? 463235074 : 463235072); - break; - case 0: - hashSet.Add(current2); - num = 463235074; - break; - case 3: - num = 463235074; - break; - case 1: - goto end_IL_01cc; - } - continue; - end_IL_01cc: - break; - } - } - finally - { - num = ((enumerator2 == null) ? 1430009245 : 1430009244); - while (true) - { - int num14 = num; - num3 = 1430009245; - num4 = num14; - int num15 = num4 + num3; - int num16 = num4 & num3; - switch (num15 - (num16 + num16)) - { - case 2: - num = 1430009244; - break; - case 1: - _202B_200E_206C_200E_200E_206E_202B_200C_202B_200B_206D_202E_200C_200F_206C_202D_200D_202A_200E_206B_202B_206B_202A_200C_206D_200D_206E_202C_202B_206E_206A_200B_206D_200E_202A_202D_200B_206F_200C_202E((IDisposable)enumerator2); - num = 1430009245; - break; - case 0: - goto end_IL_029e; - } - continue; - end_IL_029e: - break; - } - } - using (HashSet<EAetheryteLocation>.Enumerator enumerator3 = hashSet.GetEnumerator()) - { - num = 1372900048; - while (true) - { - int num17 = num; - num3 = 1372900048; - num4 = num17; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - { - EAetheryteLocation value = current3; - freeAetheryte = value; - num = 1372900050; - break; - } - case 2: - dictionary[current3] = 0; - num = 1372900048; - break; - case 3: - { - EAetheryteLocation value = freeAetheryte.GetValueOrDefault(); - num = (freeAetheryte.HasValue ? 1372900050 : 1372900049); - break; - } - case 0: - num = (enumerator3.MoveNext() ? 1372900054 : 1372900052); - break; - case 6: - current3 = enumerator3.Current; - num = ((!_206D_200C_206C_206D_200F_202A_206C_206D_200D_200E_202C_206D_200C_202E_200C_202E_200E_202C_206F_206C_206A_206C_200B_202E_202C_206B_200E_200B_202D_206D_200F_202D_200C_200E_200C_200F_200B_202C_206C_200D_202E((uint)current3)) ? 1372900048 : 1372900051); - break; - case 5: - num = 1372900048; - break; - case 4: - goto end_IL_0300; - } - continue; - end_IL_0300: - break; - } - } - int currentGil = GetCurrentGil(); - HashSet<uint> flyingUnlockedTerritories = BuildFlyingUnlockedSet(); - Dictionary<uint, int> mountSpeedLevels = BuildMountSpeedLevels(); - PlayerNavState obj = new PlayerNavState - { - CurrentTerritoryId = _206F_206D_202D_206C_202E_200E_202A_206C_206C_206D_202D_200B_202D_202C_200C_202D_202C_206D_200E_206D_202C_206A_200B_202D_200B_206C_200B_200C_200E_206E_200E_200F_206E_202B_202E_206A_200C_206A_206E_206B_202E(clientState), - CurrentPosition = _206E_206B_200F_200B_206D_202B_202E_200E_200C_202D_200E_202B_200F_206D_200B_206A_206C_206D_206A_202B_202C_206E_206E_202C_206B_202C_206B_200C_200C_206D_206C_202D_206B_206B_206C_202D_202B_206D_202E(gameObject), - Gil = currentGil, - GilReserve = (gilReserveOverride ?? playerContext.GilReserve), - TeleportUnlocked = playerContext.IsTeleportUnlocked(), - ReturnAvailable = playerContext.IsReturnAvailable(), - MountUnlocked = _202C_200C_202D_206E_206F_202A_200C_202C_206D_206E_202E_200E_206A_200E_202C_200F_206D_200E_200D_202C_202C_202A_200F_202E_206A_206E_206A_206A_206C_202B_206B_206A_200B_202E_206E_200B_202D_202B_206C_200F_202E(), - UnlockedAetherytes = hashSet, - HomeAetheryte = homeAetheryte, - FreeAetheryte = freeAetheryte, - TeleportCosts = dictionary, - FlyingUnlockedTerritories = flyingUnlockedTerritories, - MountSpeedLevels = mountSpeedLevels, - MaxExpansion = maxExpansion - }; - ICharacter obj2 = gameObject as ICharacter; - obj.CurrentLevel = ((obj2 != null) ? _200B_202C_202B_202D_206F_206B_206C_200F_206D_206E_200D_200B_202D_202E_202B_202C_206A_206C_202A_200D_202B_206E_200E_206F_202E_206E_200F_200D_200E_206C_202C_206C_202A_202E_206B_200F_206E_202B_202E_202E_202E(obj2) : 0); - obj.CurrentMsqQuestId = playerContext.CurrentMsqQuestId; - obj.PreferFreeTravel = playerContext.PreferFreeTravel; - obj.QuestCompleteChecker = delegate(uint rowId) - { - int num18 = 65535; - return QuestManager.IsQuestComplete((ushort)((rowId | (uint)num18) - (rowId ^ (uint)num18))); - }; - obj.QuestSequenceChecker = delegate(uint rowId) - { - int num18 = 65535; - return QuestManager.GetQuestSequence((ushort)((rowId | (uint)num18) - (rowId ^ (uint)num18))); - }; - obj.AvailableTeleportTickets = BuildAvailableTeleportTickets(); - return obj; - } - } - continue; - IL_0057: - num = 1190878111; + return null; } + HashSet<EAetheryteLocation> hashSet = new HashSet<EAetheryteLocation>(); + Dictionary<EAetheryteLocation, int> dictionary = new Dictionary<EAetheryteLocation, int>(); + EAetheryteLocation homeAetheryteId = (EAetheryteLocation)PlayerStateHelper.GetHomeAetheryteId(); + EAetheryteLocation? freeAetheryte = null; + byte maxExpansion = PlayerStateHelper.GetMaxExpansion(); + foreach (IAetheryteEntry item in aetheryteList) + { + EAetheryteLocation aetheryteId = (EAetheryteLocation)item.AetheryteId; + hashSet.Add(aetheryteId); + dictionary[aetheryteId] = (int)item.GilCost; + } + foreach (EAetheryteLocation key in aetheryteData.Locations.Keys) + { + if (playerContext.IsAetheryteUnlocked(key)) + { + hashSet.Add(key); + } + } + foreach (EAetheryteLocation item2 in hashSet) + { + if (PlayerStateHelper.IsFreeAetheryte((uint)item2)) + { + EAetheryteLocation valueOrDefault = freeAetheryte.GetValueOrDefault(); + if (!freeAetheryte.HasValue) + { + valueOrDefault = item2; + freeAetheryte = valueOrDefault; + } + dictionary[item2] = 0; + } + } + int currentGil = GetCurrentGil(); + HashSet<uint> flyingUnlockedTerritories = BuildFlyingUnlockedSet(); + Dictionary<uint, int> mountSpeedLevels = BuildMountSpeedLevels(); + return new PlayerNavState + { + CurrentTerritoryId = clientState.TerritoryType, + CurrentPosition = gameObject.Position, + Gil = currentGil, + GilReserve = (gilReserveOverride ?? playerContext.GilReserve), + TeleportUnlocked = playerContext.IsTeleportUnlocked(), + ReturnAvailable = playerContext.IsReturnAvailable(), + MountUnlocked = PlayerStateHelper.IsAnyMountUnlocked(), + UnlockedAetherytes = hashSet, + HomeAetheryte = homeAetheryteId, + FreeAetheryte = freeAetheryte, + TeleportCosts = dictionary, + FlyingUnlockedTerritories = flyingUnlockedTerritories, + MountSpeedLevels = mountSpeedLevels, + MaxExpansion = maxExpansion, + CurrentLevel = ((gameObject as ICharacter)?.Level ?? 0), + CurrentMsqQuestId = playerContext.CurrentMsqQuestId, + PreferFreeTravel = playerContext.PreferFreeTravel, + QuestCompleteChecker = (uint rowId) => QuestManager.IsQuestComplete((ushort)(rowId & 0xFFFF)), + QuestSequenceChecker = (uint rowId) => QuestManager.GetQuestSequence((ushort)(rowId & 0xFFFF)), + AvailableTeleportTickets = BuildAvailableTeleportTickets() + }; } private unsafe HashSet<uint> BuildAvailableTeleportTickets() { HashSet<uint> hashSet = new HashSet<uint>(); - int num = (playerContext.UseTeleportTickets ? 339924904 : 339924909); - InventoryManager* ptr = default(InventoryManager*); - TeleportTicketService.TeleportTicket current = default(TeleportTicketService.TeleportTicket); - while (true) + if (!playerContext.UseTeleportTickets) { - int num2 = num; - int num3 = 339924908; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) + return hashSet; + } + InventoryManager* ptr = InventoryManager.Instance(); + if (ptr == null) + { + return hashSet; + } + byte grandCompanyId = GrandCompanyHelper.GetGrandCompanyId(); + foreach (TeleportTicketService.TeleportTicket ticket in teleportTicketService.Tickets) + { + if ((ticket.RequiredGrandCompany == 0 || ticket.RequiredGrandCompany == grandCompanyId) && (ticket.RequiredQuestId == 0 || QuestManager.IsQuestComplete((ushort)(ticket.RequiredQuestId & 0xFFFF))) && ptr->GetInventoryItemCount(ticket.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0) > 0) { - case 0: - return hashSet; - case 4: - ptr = InventoryManager.Instance(); - num = ((ptr != null) ? 339924911 : 339924908); - break; - case 1: - return hashSet; - case 2: - num = 339924909; - break; - case 3: - { - byte b = _206E_202C_202E_206F_206F_200B_206B_202E_200C_200E_202D_206B_206F_200D_200F_206A_206C_200C_200E_202C_206D_200D_202D_202D_206D_206C_200D_200F_202C_200C_206B_202D_206F_202B_206A_200C_202D_200E_206A_202B_202E(); - IEnumerator<TeleportTicketService.TeleportTicket> enumerator = teleportTicketService.Tickets.GetEnumerator(); - try - { - num = 1253116756; - while (true) - { - int num5 = num; - num3 = 1253116758; - num4 = num5; - int num6 = num4 + num3; - int num7 = num4 & num3; - switch (num6 - (num7 + num7)) - { - case 5: - num = 1253116756; - break; - case 3: - num = ((ptr->GetInventoryItemCount(current.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0) <= 0) ? 1253116756 : 1253116752); - break; - case 0: - num = ((current.RequiredGrandCompany != b) ? 1253116756 : 1253116754); - break; - case 8: - num = ((!QuestManager.IsQuestComplete((ushort)(current.RequiredQuestId & 0xFFFF))) ? 1253116756 : 1253116757); - break; - case 2: - num = (_200F_200B_206B_200F_200E_202B_200F_202B_206B_202D_202A_206E_200F_200E_202E_206C_206D_202E_206F_202E_206B_202D_202D_202B_202D_202C_202C_206E_202C_200D_202A_200E_206D_200B_202E_200F_206E_206E_200D_206C_202E((IEnumerator)enumerator) ? 1253116759 : 1253116753); - break; - case 4: - num = ((current.RequiredQuestId == 0) ? 1253116757 : 1253116766); - break; - case 6: - hashSet.Add(current.ItemId); - num = 1253116756; - break; - case 1: - current = enumerator.Current; - num = ((current.RequiredGrandCompany == 0) ? 1253116754 : 1253116758); - break; - case 7: - return hashSet; - } - } - } - finally - { - num = ((enumerator == null) ? (-2039650) : (-2039651)); - while (true) - { - int num8 = num; - num3 = -2039649; - num4 = num8; - int num9 = num4 + num3; - int num10 = num4 & num3; - switch (num9 - (num10 + num10)) - { - case 0: - num = -2039651; - break; - case 2: - _202B_200E_206C_200E_200E_206E_202B_200C_202B_200B_206D_202E_200C_200F_206C_202D_200D_202A_200E_206B_202B_206B_202A_200C_206D_200D_206E_202C_202B_206E_206A_200B_206D_200E_202A_202D_200B_206F_200C_202E((IDisposable)enumerator); - num = -2039650; - break; - case 1: - goto end_IL_0241; - } - continue; - end_IL_0241: - break; - } - } - } + hashSet.Add(ticket.ItemId); } } + return hashSet; } private HashSet<uint> BuildFlyingUnlockedSet() { HashSet<uint> hashSet = new HashSet<uint>(); HashSet<uint> hashSet2 = new HashSet<uint>(); - IEnumerator<EAetheryteLocation> enumerator = aetheryteData.Locations.Keys.GetEnumerator(); - try + foreach (EAetheryteLocation key in aetheryteData.Locations.Keys) { - int num = -1033431506; - ushort value = default(ushort); - while (true) + if (aetheryteData.TerritoryIds.TryGetValue(key, out var value) && hashSet2.Add(value) && playerContext.IsFlyingUnlocked(value)) { - int num2 = num; - int num3 = -1033431507; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - hashSet.Add(value); - num = -1033431506; - break; - case 3: - num = (_200F_200B_206B_200F_200E_202B_200F_202B_206B_202D_202A_206E_200F_200E_202E_206C_206D_202E_206F_202E_206B_202D_202D_202B_202D_202C_202C_206E_202C_200D_202A_200E_206D_200B_202E_200F_206E_206E_200D_206C_202E((IEnumerator)enumerator) ? (-1033431511) : (-1033431507)); - break; - case 1: - num = ((!playerContext.IsFlyingUnlocked(value)) ? (-1033431506) : (-1033431505)); - break; - case 4: - { - EAetheryteLocation current = enumerator.Current; - num = ((!aetheryteData.TerritoryIds.TryGetValue(current, out value)) ? (-1033431506) : (-1033431512)); - break; - } - case 6: - num = -1033431506; - break; - case 5: - num = ((!hashSet2.Add(value)) ? (-1033431506) : (-1033431508)); - break; - case 0: - return hashSet; - } - } - } - finally - { - int num = ((enumerator == null) ? 115549312 : 115549315); - while (true) - { - int num5 = num; - int num3 = 115549313; - int num4 = num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 115549315; - break; - case 1: - goto end_IL_0157; - case 2: - _202B_200E_206C_200E_200E_206E_202B_200C_202B_200B_206D_202E_200C_200F_206C_202D_200D_202A_200E_206B_202B_206B_202A_200C_206D_200D_206E_202C_202B_206E_206A_200B_206D_200E_202A_202D_200B_206F_200C_202E((IDisposable)enumerator); - num = 115549312; - break; - } - continue; - end_IL_0157: - break; + hashSet.Add(value); } } + return hashSet; } private unsafe Dictionary<uint, int> BuildMountSpeedLevels() { Dictionary<uint, int> dictionary = new Dictionary<uint, int>(); ExcelSheet<TerritoryType> excelSheet = dataManager.GetExcelSheet<TerritoryType>(); - int num = ((excelSheet != null) ? 2051337213 : 2051337214); - MountSpeed value = default(MountSpeed); - TerritoryType current = default(TerritoryType); - int num8 = default(int); - while (true) + if (excelSheet == null) { - int num2 = num; - int num3 = 2051337215; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + return dictionary; + } + UIState* ptr = UIState.Instance(); + foreach (TerritoryType item in excelSheet) + { + if (item.RowId != 0 && item.MountSpeed.RowId != 0) { - case 0: - goto IL_0068; - case 1: - return dictionary; - case 2: - { - UIState* ptr = UIState.Instance(); - using ExcelSheet<TerritoryType>.Enumerator enumerator = excelSheet.GetEnumerator(); - num = 667862093; - while (true) + MountSpeed value = item.MountSpeed.Value; + int num = 0; + if (value.Quest.RowId != 0 && ptr != null && ptr->IsUnlockLinkUnlockedOrQuestCompleted(value.Quest.RowId, 0)) { - int num7 = num; - num3 = 667862084; - num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 667862093; - break; - case 0: - value = current.MountSpeed.Value; - num8 = 0; - num = ((value.Quest.RowId == 0) ? 667862082 : 667862080); - break; - case 6: - num = ((value.Unknown0 == 0) ? 667862087 : 667862083); - break; - case 14: - dictionary[current.RowId] = num8; - num = 667862093; - break; - case 8: - num = ((current.MountSpeed.RowId == 0) ? 667862093 : 667862084); - break; - case 7: - num = ((ptr == null) ? 667862087 : 667862095); - break; - case 9: - num = (enumerator.MoveNext() ? 667862088 : 667862094); - break; - case 3: - num = ((num8 <= 0) ? 667862093 : 667862090); - break; - case 12: - current = enumerator.Current; - num = ((current.RowId == 0) ? 667862093 : 667862092); - break; - case 5: - { - int num12 = num8; - num3 = 1; - num4 = num12; - num8 = (num4 | num3) + (num4 & num3); - num = 667862087; - break; - } - case 1: - num = ((!ptr->IsUnlockLinkUnlockedOrQuestCompleted(value.Quest.RowId, 0)) ? 667862082 : 667862089); - break; - case 11: - num = ((!ptr->IsUnlockLinkUnlockedOrQuestCompleted(value.Unknown0, 0)) ? 667862087 : 667862081); - break; - case 13: - { - int num9 = num8; - num3 = 1; - num4 = num9; - int num10 = num4 ^ num3; - int num11 = num4 & num3; - num8 = num10 + (num11 + num11); - num = 667862082; - break; - } - case 4: - num = ((ptr == null) ? 667862082 : 667862085); - break; - case 10: - return dictionary; - } + num++; + } + if (value.Unknown0 != 0 && ptr != null && ptr->IsUnlockLinkUnlockedOrQuestCompleted(value.Unknown0, 0)) + { + num++; + } + if (num > 0) + { + dictionary[item.RowId] = num; } } - } - continue; - IL_0068: - num = 2051337214; } + return dictionary; } private unsafe static int GetCurrentGil() { InventoryManager* ptr = InventoryManager.Instance(); - int num = ((ptr != null) ? (-57715473) : (-57715476)); - while (true) + if (ptr == null) { - int num2 = num; - int num3 = -57715475; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_004b; - case 1: - return 0; - case 2: - return ptr->GetItemCountInContainer(1u, InventoryType.Currency, isHq: false, 0); - } - continue; - IL_004b: - num = -57715476; + return 0; } - } - - static IGameObject _206E_202E_200C_206A_202C_202C_206E_202E_206C_202A_206D_202D_206B_206B_202B_206D_206C_206C_206D_206A_206E_200F_206A_206C_200D_206B_200E_206A_206E_206B_206D_202B_202A_206F_202A_202B_202D_202C_206E_202A_202E(IObjectTable P_0, int P_1) - { - return P_0[P_1]; - } - - static uint _200D_200E_202C_202E_206F_200E_202C_206F_200F_200C_206C_200D_200F_200E_202B_200C_202B_200F_200C_200F_206D_206F_202B_206B_202D_200E_200D_206E_206F_202E_206D_202C_202B_200C_200B_206D_206D_202A_206E_206B_202E() - { - return PlayerStateHelper.GetHomeAetheryteId(); - } - - static byte _202A_200E_200B_200F_206A_202C_202A_206D_202C_206A_202C_206F_202C_202B_206E_206A_202A_200E_200D_206C_202B_200D_206E_200D_206D_200F_206A_202D_202C_206F_200D_200C_206B_206B_206A_206E_200E_200E_206A_202B_202E() - { - return PlayerStateHelper.GetMaxExpansion(); - } - - static uint _200C_200D_202E_202B_206B_202A_206C_202E_206D_202D_206A_206A_202A_206F_202D_200F_202A_206B_206A_206F_200B_202C_206E_206B_200D_200D_200E_206B_202C_206D_206A_200F_202B_202A_200D_202B_206C_206D_200F_200D_202E(IAetheryteEntry P_0) - { - return P_0.AetheryteId; - } - - static uint _202B_206D_202D_200B_200B_200C_206B_200E_200B_202A_200D_206E_202D_200B_206F_206B_200D_202E_200E_206E_202E_200D_206F_206D_206A_200F_206E_200C_202D_202D_206C_206D_202E_200B_200D_206F_202D_200B_206E_200D_202E(IAetheryteEntry P_0) - { - return P_0.GilCost; - } - - static bool _200F_200B_206B_200F_200E_202B_200F_202B_206B_202D_202A_206E_200F_200E_202E_206C_206D_202E_206F_202E_206B_202D_202D_202B_202D_202C_202C_206E_202C_200D_202A_200E_206D_200B_202E_200F_206E_206E_200D_206C_202E(IEnumerator P_0) - { - return P_0.MoveNext(); - } - - static void _202B_200E_206C_200E_200E_206E_202B_200C_202B_200B_206D_202E_200C_200F_206C_202D_200D_202A_200E_206B_202B_206B_202A_200C_206D_200D_206E_202C_202B_206E_206A_200B_206D_200E_202A_202D_200B_206F_200C_202E(IDisposable P_0) - { - P_0.Dispose(); - } - - static bool _206D_200C_206C_206D_200F_202A_206C_206D_200D_200E_202C_206D_200C_202E_200C_202E_200E_202C_206F_206C_206A_206C_200B_202E_202C_206B_200E_200B_202D_206D_200F_202D_200C_200E_200C_200F_200B_202C_206C_200D_202E(uint P_0) - { - return PlayerStateHelper.IsFreeAetheryte(P_0); - } - - static uint _206F_206D_202D_206C_202E_200E_202A_206C_206C_206D_202D_200B_202D_202C_200C_202D_202C_206D_200E_206D_202C_206A_200B_202D_200B_206C_200B_200C_200E_206E_200E_200F_206E_202B_202E_206A_200C_206A_206E_206B_202E(IClientState P_0) - { - return P_0.TerritoryType; - } - - static Vector3 _206E_206B_200F_200B_206D_202B_202E_200E_200C_202D_200E_202B_200F_206D_200B_206A_206C_206D_206A_202B_202C_206E_206E_202C_206B_202C_206B_200C_200C_206D_206C_202D_206B_206B_206C_202D_202B_206D_202E(IGameObject P_0) - { - return P_0.Position; - } - - static bool _202C_200C_202D_206E_206F_202A_200C_202C_206D_206E_202E_200E_206A_200E_202C_200F_206D_200E_200D_202C_202C_202A_200F_202E_206A_206E_206A_206A_206C_202B_206B_206A_200B_202E_206E_200B_202D_202B_206C_200F_202E() - { - return PlayerStateHelper.IsAnyMountUnlocked(); - } - - static byte _200B_202C_202B_202D_206F_206B_206C_200F_206D_206E_200D_200B_202D_202E_202B_202C_206A_206C_202A_200D_202B_206E_200E_206F_202E_206E_200F_200D_200E_206C_202C_206C_202A_202E_206B_200F_206E_202B_202E_202E_202E(ICharacter P_0) - { - return P_0.Level; - } - - static byte _206E_202C_202E_206F_206F_200B_206B_202E_200C_200E_202D_206B_206F_200D_200F_206A_206C_200C_200E_202C_206D_200D_202D_202D_206D_206C_200D_200F_202C_200C_206B_202D_206F_202B_206A_200C_202D_200E_206A_202B_202E() - { - return GrandCompanyHelper.GetGrandCompanyId(); + return ptr->GetItemCountInContainer(1u, InventoryType.Currency, isHq: false, 0); } } diff --git a/SmartNav/SmartNav/ReRouteDecision.cs b/SmartNav/SmartNav/ReRouteDecision.cs index 60626b3..cdb8880 100644 --- a/SmartNav/SmartNav/ReRouteDecision.cs +++ b/SmartNav/SmartNav/ReRouteDecision.cs @@ -1,462 +1,16 @@ -using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; namespace SmartNav; public abstract record ReRouteDecision { - public sealed record Replan(IReadOnlyList<NavInstruction> Instructions) : ReRouteDecision() - { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _202E_200B_206E_202C_200E_202C_200B_200E_206A_200B_206E_206A_202C_202E_202B_202E_202D_202E_206B_206B_200E_206E_200C_202A_202C_200F_206B_202E_206B_200F_202A_200F_200D_202C_200D_202D_200D_200E_206F_202C_202E(typeof(Replan).TypeHandle); - } - } + public sealed record Replan(IReadOnlyList<NavInstruction> Instructions) : ReRouteDecision(); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206A_200D_206A_202D_200E_202C_202C_206C_200C_206C_206F_202B_202D_200C_202B_202A_206D_206D_200C_206A_200B_202D_206E_206C_206B_200C_202E_206B_202C_202B_200E_200E_206E_206A_200B_200C_206F_200E_206E_202C_202E(); - _200B_206A_206F_206B_200B_200C_200D_206E_206C_206D_200D_200E_200C_202C_200C_200E_202B_202B_206B_206D_202D_200B_202A_206C_200C_202B_206C_202A_200E_206F_202C_202D_202E_206B_200F_200F_202C_202C_200E_202E(stringBuilder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(901484357)); - _200B_206A_206F_206B_200B_200C_200D_206E_206C_206D_200D_200E_200C_202C_200C_200E_202B_202B_206B_206D_202D_200B_202A_206C_200C_202B_206C_202A_200E_206F_202C_202D_202E_206B_200F_200F_202C_202C_200E_202E(stringBuilder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1886515922)); - int num = ((!PrintMembers(stringBuilder)) ? 1327623448 : 1327623451); - while (true) - { - int num2 = num; - int num3 = 1327623450; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1327623451; - break; - case 2: - _200E_202E_206D_202A_206F_200E_206A_200D_206F_206B_200F_202C_206D_206A_206C_202C_206E_206E_202C_206F_200C_202E_206F_200F_202A_202D_206D_202B_200D_202A_202A_202E_206B_202D_200E_206A_202B_200F_206C_206E_202E(stringBuilder, '}'); - return _206F_206A_202A_206A_200C_200F_200F_206E_202E_202A_206A_200C_206D_206B_200B_200B_200E_202B_206D_202A_206C_202D_202B_206B_206D_202D_206A_202A_200D_206F_200B_202E_202D_202B_206E_200B_200F_206A_202D_206B_202E((object)stringBuilder); - case 1: - _200E_202E_206D_202A_206F_200E_206A_200D_206F_206B_200F_202C_206D_206A_206C_202C_206E_206E_202C_206F_200C_202E_206F_200F_202A_202D_206D_202B_200D_202A_202A_202E_206B_202D_200E_206A_202B_200F_206C_206E_202E(stringBuilder, ' '); - num = 1327623448; - break; - } - } - } + public sealed record SkipMovement : ReRouteDecision; - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - protected override bool PrintMembers(StringBuilder builder) - { - int num = ((!base.PrintMembers(builder)) ? 1920917747 : 1920917746); - while (true) - { - int num2 = num; - int num3 = 1920917747; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 1920917746; - break; - case 0: - _200B_206A_206F_206B_200B_200C_200D_206E_206C_206D_200D_200E_200C_202C_200C_200E_202B_202B_206B_206D_202D_200B_202A_206C_200C_202B_206C_202A_200E_206F_202C_202D_202E_206B_200F_200F_202C_202C_200E_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-15988092)); - _200D_200D_200F_200C_200D_202C_206F_206F_200C_206F_200E_202A_200F_202C_200F_206D_200D_200F_200E_202C_202D_202B_206E_200F_200B_206D_202A_206C_206A_202B_200B_206B_206C_200B_206E_202B_200E_206B_202C_206C_202E(builder, (object)Instructions); - return true; - case 1: - _200B_206A_206F_206B_200B_200C_200D_206E_206C_206D_200D_200E_200C_202C_200C_200E_202B_202B_206B_206D_202D_200B_202A_206C_200C_202B_206C_202A_200E_206F_202C_202D_202E_206B_200F_200F_202C_202C_200E_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(520781629)); - num = 1920917747; - break; - } - } - } - - [CompilerGenerated] - public bool Equals(Replan? other) - { - int num = (((object)this == other) ? (-1432120076) : (-1432120078)); - while (true) - { - int num2 = num; - int num3 = -1432120080; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return EqualityComparer<IReadOnlyList<NavInstruction>>.Default.Equals(Instructions, other.Instructions); - case 4: - return true; - case 3: - num = -1432120078; - break; - case 0: - return false; - case 2: - num = ((!base.Equals(other)) ? (-1432120080) : (-1432120079)); - break; - } - } - } - - bool IEquatable<Replan>.Equals(Replan? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202E_200B_206E_202C_200E_202C_200B_200E_206A_200B_206E_206A_202C_202E_202B_202E_202D_202E_206B_206B_200E_206E_200C_202A_202C_200F_206B_202E_206B_200F_202A_200F_200D_202C_200D_202D_200D_200E_206F_202C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206A_200D_206A_202D_200E_202C_202C_206C_200C_206C_206F_202B_202D_200C_202B_202A_206D_206D_200C_206A_200B_202D_206E_206C_206B_200C_202E_206B_202C_202B_200E_200E_206E_206A_200B_200C_206F_200E_206E_202C_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200B_206A_206F_206B_200B_200C_200D_206E_206C_206D_200D_200E_200C_202C_200C_200E_202B_202B_206B_206D_202D_200B_202A_206C_200C_202B_206C_202A_200E_206F_202C_202D_202E_206B_200F_200F_202C_202C_200E_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200E_202E_206D_202A_206F_200E_206A_200D_206F_206B_200F_202C_206D_206A_206C_202C_206E_206E_202C_206F_200C_202E_206F_200F_202A_202D_206D_202B_200D_202A_202A_202E_206B_202D_200E_206A_202B_200F_206C_206E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206F_206A_202A_206A_200C_200F_200F_206E_202E_202A_206A_200C_206D_206B_200B_200B_200E_202B_206D_202A_206C_202D_202B_206B_206D_202D_206A_202A_200D_206F_200B_202E_202D_202B_206E_200B_200F_206A_202D_206B_202E(object P_0) - { - return P_0.ToString(); - } - - static StringBuilder _200D_200D_200F_200C_200D_202C_206F_206F_200C_206F_200E_202A_200F_202C_200F_206D_200D_200F_200E_202C_202D_202B_206E_200F_200B_206D_202A_206C_206A_202B_200B_206B_206C_200B_206E_202B_200E_206B_202C_206C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206B_206F_202E_200D_200E_200E_200E_206B_206E_202E_206D_200C_206E_200E_206C_200D_202E_200F_200C_200B_202E_206B_206D_200C_206B_206C_206B_206C_206C_202E_206F_200C_200C_200B_202D_206D_202C_202B_206F_200E_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } - } - - public sealed record SkipMovement : ReRouteDecision - { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _206E_206D_202D_206C_202A_206C_202B_200F_202E_200F_206B_206B_206B_202D_200D_200E_206F_200B_206F_206A_206D_206D_206D_206E_206A_206A_206C_200E_206C_206A_206A_202B_202E_206E_206E_200D_200B_206B_206E_202E_202E(typeof(SkipMovement).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206D_202A_200E_200F_202D_200C_200C_200B_206E_202C_206F_206F_206F_200D_206C_206C_200E_200D_202E_206B_200E_202A_206A_206B_200F_200B_202E_200F_200B_200B_202B_206B_202E_200E_202B_206D_202B_206C_202A_202A_202E(); - _206F_206C_202E_202E_200E_200C_200B_206F_206E_200E_200D_206C_200D_206E_200F_200E_200C_206A_200D_206D_202D_206D_202D_200D_202E_200D_206E_206D_200E_206D_202B_202A_206E_202D_206A_200E_200D_202D_206C_206D_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-187513109)); - _206F_206C_202E_202E_200E_200C_200B_206F_206E_200E_200D_206C_200D_206E_200F_200E_200C_206A_200D_206D_202D_206D_202D_200D_202E_200D_206E_206D_200E_206D_202B_202A_206E_202D_206A_200E_200D_202D_206C_206D_202E(stringBuilder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1120247710)); - int num = ((!PrintMembers(stringBuilder)) ? 321527536 : 321527539); - while (true) - { - int num2 = num; - int num3 = 321527537; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - _206C_202D_202A_200B_202D_200B_200D_200E_202B_202E_206E_202B_202B_202B_206C_200D_200B_206A_206A_206A_202E_200B_200C_206F_206B_200C_202B_206D_206E_200C_206F_202B_206A_200D_206E_202B_202A_202E_202B_206E_202E(stringBuilder, '}'); - return _206D_200B_206A_202A_206E_202B_206E_206C_206E_206C_206B_206B_200F_206A_202B_200D_200F_206C_202E_200D_200F_206A_200F_206C_202A_200F_200E_202E_200E_202D_202A_202A_206B_206E_202C_202A_200B_202B_206A_202D_202E((object)stringBuilder); - case 2: - _206C_202D_202A_200B_202D_200B_200D_200E_202B_202E_206E_202B_202B_202B_206C_200D_200B_206A_206A_206A_202E_200B_200C_206F_206B_200C_202B_206D_206E_200C_206F_202B_206A_200D_206E_202B_202A_202E_202B_206E_202E(stringBuilder, ' '); - num = 321527536; - break; - case 0: - num = 321527539; - break; - } - } - } - - [CompilerGenerated] - public bool Equals(SkipMovement? other) - { - int num = (((object)this == other) ? (-1667378002) : (-1667378003)); - while (true) - { - int num2 = num; - int num3 = -1667378001; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 1: - return true; - case 2: - return base.Equals(other); - case 0: - goto IL_004c; - } - continue; - IL_004c: - num = -1667378003; - } - } - - bool IEquatable<SkipMovement>.Equals(SkipMovement? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206E_206D_202D_206C_202A_206C_202B_200F_202E_200F_206B_206B_206B_202D_200D_200E_206F_200B_206F_206A_206D_206D_206D_206E_206A_206A_206C_200E_206C_206A_206A_202B_202E_206E_206E_200D_200B_206B_206E_202E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206D_202A_200E_200F_202D_200C_200C_200B_206E_202C_206F_206F_206F_200D_206C_206C_200E_200D_202E_206B_200E_202A_206A_206B_200F_200B_202E_200F_200B_200B_202B_206B_202E_200E_202B_206D_202B_206C_202A_202A_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206F_206C_202E_202E_200E_200C_200B_206F_206E_200E_200D_206C_200D_206E_200F_200E_200C_206A_200D_206D_202D_206D_202D_200D_202E_200D_206E_206D_200E_206D_202B_202A_206E_202D_206A_200E_200D_202D_206C_206D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206C_202D_202A_200B_202D_200B_200D_200E_202B_202E_206E_202B_202B_202B_206C_200D_200B_206A_206A_206A_202E_200B_200C_206F_206B_200C_202B_206D_206E_200C_206F_202B_206A_200D_206E_202B_202A_202E_202B_206E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206D_200B_206A_202A_206E_202B_206E_206C_206E_206C_206B_206B_200F_206A_202B_200D_200F_206C_202E_200D_200F_206A_200F_206C_202A_200F_200E_202E_200E_202D_202A_202A_206B_206E_202C_202A_200B_202B_206A_202D_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _202B_206B_200F_200B_206E_200D_202C_200C_200C_200B_200D_202B_200B_206A_202D_200D_200E_202A_206D_206A_206C_200E_200F_206A_206D_206D_206E_206E_200E_200C_206E_200B_200D_206C_206D_202B_206E_202B_206B_206A_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } - } - - public sealed record GiveUp : ReRouteDecision - { - [CompilerGenerated] - protected override Type EqualityContract - { - [CompilerGenerated] - get - { - return _202D_200F_206C_200B_200C_206D_200C_200C_206A_206C_202E_206D_202C_206D_202A_206C_202D_206A_206C_200D_200E_206E_200D_206A_200E_206C_206D_202E_202C_200B_202B_206A_202C_206C_200D_206E_202B_206B_206C_202A_202E(typeof(GiveUp).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _200D_200D_202E_200D_200F_202B_206D_206F_206D_200B_206B_202D_202A_206A_202C_206D_200D_200F_202D_206C_200E_206F_202A_206A_200B_206D_200D_200C_200E_200C_202B_206F_202C_202E_206A_206C_200E_206C_202C_202A_202E(); - _200D_202D_202A_202C_206D_202E_206E_206E_202A_206D_200C_200C_200E_200C_206D_200B_202E_206B_206E_206B_200C_200B_206C_206E_206E_202C_202D_202A_200C_200E_200C_200B_202B_206F_206D_202B_202B_200C_200B_202D_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1991461839)); - _200D_202D_202A_202C_206D_202E_206E_206E_202A_206D_200C_200C_200E_200C_206D_200B_202E_206B_206E_206B_200C_200B_206C_206E_206E_202C_202D_202A_200C_200E_200C_200B_202B_206F_206D_202B_202B_200C_200B_202D_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1547267250)); - int num = ((!PrintMembers(stringBuilder)) ? (-1750477906) : (-1750477905)); - while (true) - { - int num2 = num; - int num3 = -1750477906; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - _200D_202E_206D_202B_202C_200B_206F_206B_200C_202A_202B_200E_200B_200D_200D_200F_202E_206A_200B_206A_202D_200B_206D_200F_206C_202D_202D_202D_206C_200C_206F_206B_200F_200D_206A_206E_200C_206D_200B_200E_202E(stringBuilder, '}'); - return _200F_202C_206C_202B_200F_206A_202E_206E_206A_202A_200C_202D_202C_206B_200E_202A_202A_206B_206C_206D_200C_200B_202D_202D_206E_200B_206D_200C_206C_206C_206C_206F_200C_202B_206E_206A_206E_206E_206E_202B_202E((object)stringBuilder); - case 1: - _200D_202E_206D_202B_202C_200B_206F_206B_200C_202A_202B_200E_200B_200D_200D_200F_202E_206A_200B_206A_202D_200B_206D_200F_206C_202D_202D_202D_206C_200C_206F_206B_200F_200D_206A_206E_200C_206D_200B_200E_202E(stringBuilder, ' '); - num = -1750477906; - break; - case 2: - num = -1750477905; - break; - } - } - } - - [CompilerGenerated] - public bool Equals(GiveUp? other) - { - int num = (((object)this == other) ? 639070582 : 639070581); - while (true) - { - int num2 = num; - int num3 = 639070583; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - goto IL_0044; - case 2: - return base.Equals(other); - case 1: - return true; - } - continue; - IL_0044: - num = 639070581; - } - } - - bool IEquatable<GiveUp>.Equals(GiveUp? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202D_200F_206C_200B_200C_206D_200C_200C_206A_206C_202E_206D_202C_206D_202A_206C_202D_206A_206C_200D_200E_206E_200D_206A_200E_206C_206D_202E_202C_200B_202B_206A_202C_206C_200D_206E_202B_206B_206C_202A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _200D_200D_202E_200D_200F_202B_206D_206F_206D_200B_206B_202D_202A_206A_202C_206D_200D_200F_202D_206C_200E_206F_202A_206A_200B_206D_200D_200C_200E_200C_202B_206F_202C_202E_206A_206C_200E_206C_202C_202A_202E() - { - return new StringBuilder(); - } - - static StringBuilder _200D_202D_202A_202C_206D_202E_206E_206E_202A_206D_200C_200C_200E_200C_206D_200B_202E_206B_206E_206B_200C_200B_206C_206E_206E_202C_202D_202A_200C_200E_200C_200B_202B_206F_206D_202B_202B_200C_200B_202D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200D_202E_206D_202B_202C_200B_206F_206B_200C_202A_202B_200E_200B_200D_200D_200F_202E_206A_200B_206A_202D_200B_206D_200F_206C_202D_202D_202D_206C_200C_206F_206B_200F_200D_206A_206E_200C_206D_200B_200E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200F_202C_206C_202B_200F_206A_202E_206E_206A_202A_200C_202D_202C_206B_200E_202A_202A_206B_206C_206D_200C_200B_202D_202D_206E_200B_206D_200C_206C_206C_206C_206F_200C_202B_206E_206A_206E_206E_206E_202B_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _202C_206A_206B_200D_202E_206D_202A_200C_206E_206A_206A_202D_206B_200E_202E_206B_200F_200C_202A_206A_200D_206C_200D_206C_206F_202C_202B_206D_206C_200C_202D_202E_200C_202C_206A_200D_200F_202B_202E_202D_202E(object P_0, object P_1) - { - return P_0.Equals(P_1); - } - } - - [CompilerGenerated] - protected virtual Type EqualityContract - { - [CompilerGenerated] - get - { - return _202E_206B_206C_202D_206F_200C_202B_206F_200B_202A_202B_206C_202C_202A_200F_200D_200F_206E_206A_206D_206F_200B_206D_200D_202B_206B_206D_206F_200E_206E_200D_206A_206B_202D_206D_206E_206E_200D_200E_202E_202E(typeof(ReRouteDecision).TypeHandle); - } - } + public sealed record GiveUp : ReRouteDecision; private ReRouteDecision() { } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206E_206A_206F_200B_202A_200E_206E_200E_200C_202A_206F_202C_206C_206F_206E_206F_206C_206D_202D_202C_206A_202E_206A_200C_202C_200D_200B_206B_200F_200B_206F_202E_202D_200C_200E_200B_202B_202A_200C_200D_202E(); - _206A_206E_202D_200D_202B_206E_202A_200C_206D_200B_200F_200E_206A_206A_202B_206E_206C_200D_206C_206C_200D_200E_200C_200B_206D_206D_200C_206C_202D_206A_200E_206F_200F_200C_200B_202A_200C_200B_200B_202D_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-1884726920)); - _206A_206E_202D_200D_202B_206E_202A_200C_206D_200B_200F_200E_206A_206A_202B_206E_206C_200D_206C_206C_200D_200E_200C_200B_206D_206D_200C_206C_202D_206A_200E_206F_200F_200C_200B_202A_200C_200B_200B_202D_202E(stringBuilder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1120247710)); - int num = ((!PrintMembers(stringBuilder)) ? 1070703260 : 1070703263); - while (true) - { - int num2 = num; - int num3 = 1070703262; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - _206C_202E_202A_206A_206A_202E_200B_200F_202A_200F_202A_200E_206E_202E_202A_200E_200C_206F_206D_202A_200F_206C_200B_206D_202E_206E_206C_206A_206D_206D_206A_206E_202C_206C_206B_200B_206B_200C_200B_202E_202E(stringBuilder, '}'); - return _200B_206A_200E_202D_206A_202B_200D_202E_200B_200C_202B_200F_206E_200B_200E_200B_202E_202D_200F_206A_206D_200C_202C_206B_206B_202A_202E_200C_206D_206E_200E_200F_200B_200F_200D_206E_202B_200F_202A_202E((object)stringBuilder); - case 1: - _206C_202E_202A_206A_206A_202E_200B_200F_202A_200F_202A_200E_206E_202E_202A_200E_200C_206F_206D_202A_200F_206C_200B_206D_202E_206E_206C_206A_206D_206D_206A_206E_202C_206C_206B_200B_206B_200C_200B_202E_202E(stringBuilder, ' '); - num = 1070703260; - break; - case 0: - num = 1070703263; - break; - } - } - } - - [CompilerGenerated] - public virtual bool Equals(ReRouteDecision? other) - { - int num = (((object)this == other) ? (-390682939) : (-390682942)); - while (true) - { - int num2 = num; - int num3 = -390682938; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -390682942; - break; - case 1: - return _206C_206C_200B_200B_200B_206C_200C_200E_206B_202D_200D_200F_202E_202E_202C_206B_202C_200C_200E_202E_206C_200F_206B_206F_202B_206D_202E_200E_202B_202B_200E_202E_206A_200E_200B_206F_200D_206A_206A_202E(EqualityContract, other.EqualityContract); - case 4: - num = (((object)other == null) ? (-390682940) : (-390682937)); - break; - case 2: - return false; - case 3: - return true; - } - } - } - - bool IEquatable<ReRouteDecision>.Equals(ReRouteDecision? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _202E_206B_206C_202D_206F_200C_202B_206F_200B_202A_202B_206C_202C_202A_200F_200D_200F_206E_206A_206D_206F_200B_206D_200D_202B_206B_206D_206F_200E_206E_200D_206A_206B_202D_206D_206E_206E_200D_200E_202E_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206E_206A_206F_200B_202A_200E_206E_200E_200C_202A_206F_202C_206C_206F_206E_206F_206C_206D_202D_202C_206A_202E_206A_200C_202C_200D_200B_206B_200F_200B_206F_202E_202D_200C_200E_200B_202B_202A_200C_200D_202E() - { - return new StringBuilder(); - } - - static StringBuilder _206A_206E_202D_200D_202B_206E_202A_200C_206D_200B_200F_200E_206A_206A_202B_206E_206C_200D_206C_206C_200D_200E_200C_200B_206D_206D_200C_206C_202D_206A_200E_206F_200F_200C_200B_202A_200C_200B_200B_202D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _206C_202E_202A_206A_206A_202E_200B_200F_202A_200F_202A_200E_206E_202E_202A_200E_200C_206F_206D_202A_200F_206C_200B_206D_202E_206E_206C_206A_206D_206D_206A_206E_202C_206C_206B_200B_206B_200C_200B_202E_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _200B_206A_200E_202D_206A_202B_200D_202E_200B_200C_202B_200F_206E_200B_200E_200B_202E_202D_200F_206A_206D_200C_202C_206B_206B_202A_202E_200C_206D_206E_200E_200F_200B_200F_200D_206E_202B_200F_202A_202E(object P_0) - { - return P_0.ToString(); - } - - static bool _206C_206C_200B_200B_200B_206C_200C_200E_206B_202D_200D_200F_202E_202E_202C_206B_202C_200C_200E_202E_206C_200F_206B_206F_202B_206D_202E_200E_202B_202B_200E_202E_206A_200E_200B_206F_200D_206A_206A_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } } diff --git a/SmartNav/SmartNav/ReRoutePolicy.cs b/SmartNav/SmartNav/ReRoutePolicy.cs index c941cae..f2732a0 100644 --- a/SmartNav/SmartNav/ReRoutePolicy.cs +++ b/SmartNav/SmartNav/ReRoutePolicy.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; using Microsoft.Extensions.Logging; namespace SmartNav; @@ -20,49 +19,19 @@ public sealed class ReRoutePolicy(NavRouter navRouter, PlayerNavStateBuilder pla private const int MaxReRoutes = 3; - [MethodImpl(MethodImplOptions.NoInlining)] public void SetDestination(uint territoryId, Vector3 position) { - int num = ((!_hasDestination) ? 887432114 : 887432119); - while (true) + bool num = _hasDestination && _destinationTerritoryId == territoryId && Vector3.DistanceSquared(_destinationPosition, position) < 1f; + _destinationTerritoryId = territoryId; + _destinationPosition = position; + _hasDestination = true; + _reRouteCount = 0; + _penalizedTargets.Clear(); + if (!num) { - int num2 = num; - int num3 = 887432118; - int num4 = num2; - int num5; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num5 = ((Vector3.DistanceSquared(_destinationPosition, position) < 1f) ? 1 : 0); - goto IL_00d1; - case 2: - _202D_206B_200F_202E_206E_206B_202D_202D_206F_200B_206B_206F_200E_206E_200B_202E_206B_200F_202A_206F_206B_202A_202C_202D_206A_206B_200C_202B_206B_200D_206D_200E_206E_202A_202D_206C_202D_200B_202D_200C_202E((ILogger)logger, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(1448570799), new object[2] { territoryId, position }); - return; - case 5: - num = 887432119; - break; - case 1: - num = ((_destinationTerritoryId != territoryId) ? 887432114 : 887432118); - break; - case 4: - num5 = 0; - goto IL_00d1; - case 3: - { - warpFailureTracker.Reset(); - num = 887432116; - break; - } - IL_00d1: - _destinationTerritoryId = territoryId; - _destinationPosition = position; - _hasDestination = true; - _reRouteCount = 0; - _penalizedTargets.Clear(); - num = ((num5 != 0) ? 887432116 : 887432117); - break; - } + warpFailureTracker.Reset(); } + logger.LogDebug("Re-route destination set: territory {Territory}, position {Position}", territoryId, position); } public void ClearDestination() @@ -73,116 +42,46 @@ public sealed class ReRoutePolicy(NavRouter navRouter, PlayerNavStateBuilder pla warpFailureTracker.Reset(); } - [MethodImpl(MethodImplOptions.NoInlining)] public ReRouteDecision HandleMovementFailure(string? failedTargetNodeId, string? failedApproachNodeId, bool hasPreservedTasks) { - int num = ((failedTargetNodeId == null) ? 1235919696 : 1235919704); - RouteResult routeResult = default(RouteResult); - PlayerNavState playerNavState = default(PlayerNavState); - while (true) + if (failedTargetNodeId != null) { - int num2 = num; - int num3 = 1235919696; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) + _penalizedTargets.Add(failedTargetNodeId); + if (failedTargetNodeId.StartsWith("pos:", StringComparison.Ordinal) && failedApproachNodeId != null) { - case 1: - routeResult = navRouter.FindRoute(playerNavState, _destinationTerritoryId, _destinationPosition, _penalizedTargets); - num = ((routeResult.Segments.Count != 0) ? 1235919700 : 1235919698); - break; - case 4: - { - int reRouteCount2 = _reRouteCount; - num3 = 1; - num4 = reRouteCount2; - int num8 = num4 ^ num3; - int num9 = num4 & num3; - _reRouteCount = num8 + (num9 + num9); - _200D_202E_200C_202A_206E_206D_206B_200F_202B_202B_200E_202E_202A_206E_202D_202A_200F_206D_206E_206E_200E_202C_200C_206A_200C_200E_206E_202A_206C_200C_206F_206D_202B_206B_206C_202C_200D_206F_202D_202E_202E((ILogger)logger, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-2130024542), new object[4] - { - _reRouteCount, - 3, - routeResult.Segments.Count, - routeResult.TotalTimeCost - }); - return new ReRouteDecision.Replan(instructionBuilder.Build(routeResult, _destinationTerritoryId)); - } - case 10: - num = ((_reRouteCount < 3) ? 1235919702 : 1235919709); - break; - case 3: - _200D_202A_206C_202A_202E_200E_202A_202B_202D_200D_202D_206F_206D_200F_206F_200B_200F_200D_206D_202D_206E_206E_200C_206C_200F_206A_206A_200D_202D_200B_206D_200E_206E_202D_200B_206A_206E_200B_202A_202C_202E((ILogger)logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1773659142), Array.Empty<object>()); - return new ReRouteDecision.GiveUp(); - case 12: - { - bool num7 = playerNavState.CurrentTerritoryId != _destinationTerritoryId; - num3 = (hasPreservedTasks ? 1 : 0); - num4 = (num7 ? 1 : 0); - num = (((num4 | num3) - (num4 ^ num3) == 0) ? 1235919697 : 1235919710); - break; - } - case 7: - num = 1235919704; - break; - case 2: - _200D_202A_206C_202A_202E_200E_202A_202B_202D_200D_202D_206F_206D_200F_206F_200B_200F_200D_206D_202D_206E_206E_200C_206C_200F_206A_206A_200D_202D_200B_206D_200E_206E_202D_200B_206A_206E_200B_202A_202C_202E((ILogger)logger, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(399693509), new object[1] { _destinationTerritoryId }); - return new ReRouteDecision.GiveUp(); - case 13: - _200D_202A_206C_202A_202E_200E_202A_202B_202D_200D_202D_206F_206D_200F_206F_200B_200F_200D_206D_202D_206E_206E_200C_206C_200F_206A_206A_200D_202D_200B_206D_200E_206E_202D_200B_206A_206E_200B_202A_202C_202E((ILogger)logger, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(-1940106289), new object[2] { _reRouteCount, 3 }); - return new ReRouteDecision.GiveUp(); - case 8: - _penalizedTargets.Add(failedTargetNodeId); - num = ((!_200D_202D_200B_206B_206D_202C_206C_206C_206F_206E_200E_200D_202A_202B_202D_200F_200F_200F_206E_206E_200F_200B_202A_200B_206C_206B_206A_200F_200C_206C_200E_206A_202D_200E_206E_206A_202B_202A_202E_206D_202E(failedTargetNodeId, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-1541648262), StringComparison.Ordinal)) ? 1235919696 : 1235919705); - break; - case 11: - _200D_202A_206C_202A_202E_200E_202A_202B_202D_200D_202D_206F_206D_200F_206F_200B_200F_200D_206D_202D_206E_206E_200C_206C_200F_206A_206A_200D_202D_200B_206D_200E_206E_202D_200B_206A_206E_200B_202A_202C_202E((ILogger)logger, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(466466716), Array.Empty<object>()); - return new ReRouteDecision.GiveUp(); - case 6: - playerNavState = playerNavStateBuilder.Build(); - num = ((playerNavState != null) ? 1235919708 : 1235919699); - break; - case 0: - num = (_hasDestination ? 1235919706 : 1235919707); - break; - case 5: _penalizedTargets.Add(failedApproachNodeId); - num = 1235919696; - break; - case 14: - { - int reRouteCount = _reRouteCount; - num3 = 1; - num4 = reRouteCount; - _reRouteCount = (num4 | num3) + (num4 & num3); - _200D_202E_200C_202A_206E_206D_206B_200F_202B_202B_200E_202E_202A_206E_202D_202A_200F_206D_206E_206E_200E_202C_200C_206A_200C_200E_206E_202A_206C_200C_206F_206D_202B_206B_206C_202C_200D_206F_202D_202E_202E((ILogger)logger, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(303219870), new object[3] { _reRouteCount, playerNavState.CurrentTerritoryId, _destinationTerritoryId }); - return new ReRouteDecision.SkipMovement(); - } - case 9: - num = ((failedApproachNodeId == null) ? 1235919696 : 1235919701); - break; } } - } - - static void _202D_206B_200F_202E_206E_206B_202D_202D_206F_200B_206B_206F_200E_206E_200B_202E_206B_200F_202A_206F_206B_202A_202C_202D_206A_206B_200C_202B_206B_200D_206D_200E_206E_202A_202D_206C_202D_200B_202D_200C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogDebug(P_1, P_2); - } - - static bool _200D_202D_200B_206B_206D_202C_206C_206C_206F_206E_200E_200D_202A_202B_202D_200F_200F_200F_206E_206E_200F_200B_202A_200B_206C_206B_206A_200F_200C_206C_200E_206A_202D_200E_206E_206A_202B_202A_202E_206D_202E(string P_0, string P_1, StringComparison P_2) - { - return P_0.StartsWith(P_1, P_2); - } - - static void _200D_202A_206C_202A_202E_200E_202A_202B_202D_200D_202D_206F_206D_200F_206F_200B_200F_200D_206D_202D_206E_206E_200C_206C_200F_206A_206A_200D_202D_200B_206D_200E_206E_202D_200B_206A_206E_200B_202A_202C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static void _200D_202E_200C_202A_206E_206D_206B_200F_202B_202B_200E_202E_202A_206E_202D_202A_200F_206D_206E_206E_200E_202C_200C_206A_200C_200E_206E_202A_206C_200C_206F_206D_202B_206B_206C_202C_200D_206F_202D_202E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogInformation(P_1, P_2); + if (!_hasDestination) + { + logger.LogWarning("No destination registered, cannot re-route"); + return new ReRouteDecision.GiveUp(); + } + if (_reRouteCount >= 3) + { + logger.LogWarning("Re-route limit reached ({Count}/{Max}), giving up", _reRouteCount, 3); + return new ReRouteDecision.GiveUp(); + } + PlayerNavState playerNavState = playerNavStateBuilder.Build(); + if (playerNavState == null) + { + logger.LogWarning("Cannot build PlayerNavState for re-routing"); + return new ReRouteDecision.GiveUp(); + } + if (playerNavState.CurrentTerritoryId != _destinationTerritoryId && hasPreservedTasks) + { + _reRouteCount++; + logger.LogInformation("Re-route #{Count}: still in wrong territory ({Current} vs destination {Destination}), skipping movement with preserved tasks", _reRouteCount, playerNavState.CurrentTerritoryId, _destinationTerritoryId); + return new ReRouteDecision.SkipMovement(); + } + RouteResult routeResult = navRouter.FindRoute(playerNavState, _destinationTerritoryId, _destinationPosition, _penalizedTargets); + if (routeResult.Segments.Count == 0) + { + logger.LogWarning("No route found during re-routing to territory {Territory}", _destinationTerritoryId); + return new ReRouteDecision.GiveUp(); + } + _reRouteCount++; + logger.LogInformation("Re-routed successfully ({Count}/{Max}): {SegmentCount} segments, {Time:F1}s estimated", _reRouteCount, 3, routeResult.Segments.Count, routeResult.TotalTimeCost); + return new ReRouteDecision.Replan(instructionBuilder.Build(routeResult, _destinationTerritoryId)); } } diff --git a/SmartNav/SmartNav/RouteInstructionBuilder.cs b/SmartNav/SmartNav/RouteInstructionBuilder.cs index 0f00a5e..1ed20a0 100644 --- a/SmartNav/SmartNav/RouteInstructionBuilder.cs +++ b/SmartNav/SmartNav/RouteInstructionBuilder.cs @@ -1,7 +1,5 @@ -using System; using System.Collections.Generic; using System.Numerics; -using System.Runtime.CompilerServices; using Microsoft.Extensions.Logging; using SmartNav.Data; using SmartNav.Graph; @@ -16,497 +14,151 @@ public sealed class RouteInstructionBuilder(AetheryteData aetheryteData, ITerrit public IReadOnlyList<NavInstruction> Build(RouteResult route, uint destinationTerritory, bool disableNavmesh = false) { List<NavInstruction> list = new List<NavInstruction>(); - int num = 0; - int num2 = -1441158643; - RouteSegment routeSegment = default(RouteSegment); - while (true) + for (int i = 0; i < route.Segments.Count; i++) { - int num3 = num2; - int num4 = -1441158642; - int num5 = num3; - int num6 = num5 + num4; - int num7 = num5 & num4; - switch (num6 - (num7 + num7)) + RouteSegment routeSegment = route.Segments[i]; + if (routeSegment.EdgeType != NavEdgeType.WithinZone || i + 1 >= route.Segments.Count || route.Segments[i + 1].EdgeType != NavEdgeType.ZoneBoundary) { - case 4: - { - int num10 = num; - num4 = 1; - num5 = num10; - num = (num5 | num4) + (num5 & num4); - num2 = -1441158643; - break; - } - case 6: - { - RouteSegment seg = routeSegment; - object previous; - if (num <= 0) - { - previous = null; - } - else - { - IReadOnlyList<RouteSegment> segments = route.Segments; - int num9 = num; - num4 = 1; - num5 = num9; - previous = segments[~(~num5 + num4)]; - } - BuildSegment(list, seg, (RouteSegment?)previous, num, route.Segments.Count, destinationTerritory, disableNavmesh); - num2 = -1441158646; - break; - } - case 5: - { - IReadOnlyList<RouteSegment> segments2 = route.Segments; - int num11 = num; - num4 = 1; - num5 = num11; - num2 = ((segments2[(num5 | num4) + (num5 & num4)].EdgeType == NavEdgeType.ZoneBoundary) ? (-1441158646) : (-1441158648)); - break; - } - case 1: - { - int num8 = num; - num4 = 1; - num5 = num8; - num2 = (((num5 | num4) + (num5 & num4) >= route.Segments.Count) ? (-1441158648) : (-1441158645)); - break; - } - case 0: - return list; - case 7: - num2 = -1441158643; - break; - case 2: - routeSegment = route.Segments[num]; - num2 = ((routeSegment.EdgeType != NavEdgeType.WithinZone) ? (-1441158648) : (-1441158641)); - break; - case 3: - num2 = ((num < route.Segments.Count) ? (-1441158644) : (-1441158642)); - break; + BuildSegment(list, routeSegment, (i > 0) ? route.Segments[i - 1] : null, i, route.Segments.Count, destinationTerritory, disableNavmesh); } } + return list; } private static bool TryComputeApproach(TriggerBox trigger, Vector3 walkTo, Vector3? origin, out Vector3 approach) { approach = default(Vector3); - int num = (origin.HasValue ? 1645228260 : 1645228262); - bool flag = default(bool); - Matrix4x4 matrix = default(Matrix4x4); - Vector3 vector2 = default(Vector3); - float num7 = default(float); - while (true) + if (!origin.HasValue) { - int num2 = num; - int num3 = 1645228263; - int num4 = num2; - float num8; - Vector3 normal; - float num5; - float num6; - Vector3 vector; - switch ((num4 | num3) - (num4 & num3)) - { - case 3: - flag = _202D_200F_202D_206F_206E_200B_202A_206C_206B_202B_200F_200C_206F_206E_200D_202E_206B_202B_200C_206F_200B_202D_202D_206C_202A_206C_200C_206B_202B_200C_206C_206A_202C_202B_202B_200C_206C_200E_202B_206E_202E(trigger).X <= _202D_200F_202D_206F_206E_200B_202A_206C_206B_202B_200F_200C_206F_206E_200D_202E_206B_202B_200C_206F_200B_202D_202D_206C_202A_206C_200C_206B_202B_200C_206C_206A_202C_202B_202B_200C_206C_200E_202B_206E_202E(trigger).Z; - num = (flag ? 1645228259 : 1645228257); - break; - case 4: - num8 = _202D_200F_202D_206F_206E_200B_202A_206C_206B_202B_200F_200C_206F_206E_200D_202E_206B_202B_200C_206F_200B_202D_202D_206C_202A_206C_200C_206B_202B_200C_206C_206A_202C_202B_202B_200C_206C_200E_202B_206E_202E(trigger).X; - goto IL_00c4; - case 6: - num8 = _202D_200F_202D_206F_206E_200B_202A_206C_206B_202B_200F_200C_206F_206E_200D_202E_206B_202B_200C_206F_200B_202D_202D_206C_202A_206C_200C_206B_202B_200C_206C_206A_202C_202B_202B_200C_206C_200E_202B_206E_202E(trigger).Z; - goto IL_00c4; - case 2: - matrix = Matrix4x4.CreateFromYawPitchRoll(_206D_202C_200C_202D_206B_200C_200B_206C_202C_202C_202B_206C_202B_200C_202D_206A_202B_202C_202D_200C_206E_202A_206D_206E_200B_206C_206F_200C_206D_200C_202D_206C_200D_206A_206D_206E_202C_206E_206D_202E(trigger).Y, _206D_202C_200C_202D_206B_200C_200B_206C_202C_202C_202B_206C_202B_200C_202D_206A_202B_202C_202D_200C_206E_202A_206D_206E_200B_206C_206F_200C_206D_200C_202D_206C_200D_206A_206D_206E_202C_206E_206D_202E(trigger).X, _206D_202C_200C_202D_206B_200C_200B_206C_202C_202C_202B_206C_202B_200C_202D_206A_202B_202C_202D_200C_206E_202A_206D_206E_200B_206C_206F_200C_206D_200C_202D_206C_200D_206A_206D_206E_202C_206E_206D_202E(trigger).Z); - num = (flag ? 1645228258 : 1645228263); - break; - case 12: - vector2 = Vector3.Normalize(vector2); - num = ((Vector3.Dot(origin.Value - _202E_202E_200B_202A_206D_200C_202C_206F_202E_202D_200B_202A_206C_202D_206C_200F_202A_206D_202C_202D_206E_206C_200D_202B_206E_202E_202D_200C_206F_200F_202D_200B_200C_200D_202B_206E_200E_202B_206B_206F_202E(trigger), vector2) >= 0f) ? 1645228270 : 1645228271); - break; - case 11: - return false; - case 7: - num = 1645228262; - break; - case 0: - normal = Vector3.UnitZ; - goto IL_021a; - case 8: - num5 = -1f; - goto IL_01cf; - case 9: - num5 = 1f; - goto IL_01cf; - case 10: - return false; - case 5: - normal = Vector3.UnitX; - goto IL_021a; - case 1: - { - return false; - } - IL_01cf: - num6 = num5; - vector = _202E_202E_200B_202A_206D_200C_202C_206F_202E_202D_200B_202A_206C_202D_206C_200F_202A_206D_202C_202D_206E_206C_200D_202B_206E_202E_202D_200C_206F_200F_202D_200B_200C_200D_202B_206E_200E_202B_206B_206F_202E(trigger) + vector2 * num6 * (num7 + 5f); - approach = new Vector3(vector.X, walkTo.Y, vector.Z); - return true; - IL_021a: - vector2 = Vector3.TransformNormal(normal, matrix); - vector2.Y = 0f; - num = ((!(vector2.LengthSquared() < 0.01f)) ? 1645228267 : 1645228268); - break; - IL_00c4: - num7 = num8; - num = ((!(_202D_200F_202D_206F_206E_200B_202A_206C_206B_202B_200F_200C_206F_206E_200D_202E_206B_202B_200C_206F_200B_202D_202D_206C_202A_206C_200C_206B_202B_200C_206C_206A_202C_202B_202B_200C_206C_200E_202B_206E_202E(trigger).Y < num7)) ? 1645228261 : 1645228269); - break; - } + return false; } + bool flag = trigger.HalfExtents.X <= trigger.HalfExtents.Z; + float num = (flag ? trigger.HalfExtents.X : trigger.HalfExtents.Z); + if (trigger.HalfExtents.Y < num) + { + return false; + } + Matrix4x4 matrix = Matrix4x4.CreateFromYawPitchRoll(trigger.RotationRadians.Y, trigger.RotationRadians.X, trigger.RotationRadians.Z); + Vector3 value = Vector3.TransformNormal(flag ? Vector3.UnitX : Vector3.UnitZ, matrix); + value.Y = 0f; + if (value.LengthSquared() < 0.01f) + { + return false; + } + value = Vector3.Normalize(value); + float num2 = ((Vector3.Dot(origin.Value - trigger.Translation, value) >= 0f) ? 1f : (-1f)); + Vector3 vector = trigger.Translation + value * num2 * (num + 5f); + approach = new Vector3(vector.X, walkTo.Y, vector.Z); + return true; } - [MethodImpl(MethodImplOptions.NoInlining)] private void BuildSegment(List<NavInstruction> instructions, RouteSegment seg, RouteSegment? previous, int index, int segmentCount, uint destinationTerritory, bool disableNavmesh) { + uint territoryId4; switch (seg.EdgeType) { - case NavEdgeType.TicketTeleport: - goto IL_01d4; - case NavEdgeType.WithinZone: - goto IL_027e; - case NavEdgeType.Warp: - goto IL_044c; - case NavEdgeType.ChocoboTaxi: - goto IL_06b0; case NavEdgeType.Teleport: case NavEdgeType.Return: - goto IL_078c; - case NavEdgeType.ZoneBoundary: - goto IL_07b7; - case NavEdgeType.SubRegionTransport: - goto IL_08c6; - case NavEdgeType.AethernetHop: - goto IL_0afd; - } - int num = 807288899; - goto IL_003d; - IL_044c: - uint territoryId = seg.From.TerritoryId; - uint territoryId2 = seg.To.TerritoryId; - _206F_206D_206C_202A_200C_206F_202C_206D_200B_206D_202E_200E_206C_206F_202B_200E_202B_200B_200B_202B_206F_206F_202C_206E_202A_206A_200B_206B_202E_202E_202D_206D_202D_200B_200F_206A_202D_202E_206E_202E((ILogger)logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(699118114), new object[2] - { - territoryInfo.GetNameAndId(territoryId), - territoryInfo.GetNameAndId(territoryId2) - }); - NavNode.WarpNode warpNode = seg.From as NavNode.WarpNode; - num = (((object)warpNode == null) ? 807288921 : 807288909); - goto IL_003d; - IL_003d: - uint territoryId6 = default(uint); - ushort value = default(ushort); - uint territoryId5 = default(uint); - Vector3 approach = default(Vector3); - uint? num8 = default(uint?); - uint territoryId4 = default(uint); - bool flag = default(bool); - NavNode.WarpNode warpNode2 = default(NavNode.WarpNode); - NavNode.TicketNode ticketNode = default(NavNode.TicketNode); - uint territoryId3 = default(uint); - NavNode.SubRegionConnectorNode subRegionConnectorNode = default(NavNode.SubRegionConnectorNode); - TriggerBox trigger = default(TriggerBox); - NavNode.ZoneBoundaryNode zoneBoundaryNode = default(NavNode.ZoneBoundaryNode); - int num3; - int num4; - while (true) - { - int num2 = num; - num3 = 807288896; - num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - int num9; - int num7; - ushort expectedTerritory; - switch (num5 - (num6 + num6)) + if (seg.TeleportTarget.HasValue) { - case 25: - _200E_200E_200B_206E_206C_200C_200B_200E_206E_206D_200D_200D_200C_206F_202B_202C_206A_206A_202E_206F_202B_200D_200F_206B_200D_200D_206B_206B_202E_206F_202E_206A_200F_202B_202E_200F_206B_206E_202B_200C_202E((ILogger)logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1406522576), new object[2] - { - territoryInfo.GetNameAndId(territoryId), - territoryInfo.GetNameAndId(territoryId2) - }); - return; - case 15: - _200E_200E_200B_206E_206C_200C_200B_200E_206E_206D_200D_200D_200C_206F_202B_202C_206A_206A_202E_206F_202B_200D_200F_206B_200D_200D_206B_206B_202E_206F_202E_206A_200F_202B_202E_200F_206B_206E_202B_200C_202E((ILogger)logger, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-399339980), Array.Empty<object>()); - return; - case 32: - num = 807288899; - break; - case 30: - _206F_206D_206C_202A_200C_206F_202C_206D_200B_206D_202E_200E_206C_206F_202B_200E_202B_200B_200B_202B_206F_206F_202C_206E_202A_206A_200B_206B_202E_202E_202D_206D_202D_200B_200F_206A_202D_202E_206E_202E((ILogger)logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1015089511), new object[2] - { - seg.AethernetFrom.Value, - seg.AethernetTo.Value - }); + ushort value; + ushort expectedTerritory = (aetheryteData.TerritoryIds.TryGetValue(seg.TeleportTarget.Value, out value) ? value : ((ushort)seg.To.TerritoryId)); + logger.LogTrace("SmartNav: Teleport to {Aetheryte}", seg.TeleportTarget.Value); + instructions.Add(new NavInstruction.Teleport(seg.TeleportTarget.Value, expectedTerritory)); + } + break; + case NavEdgeType.AethernetHop: + if (seg.AethernetFrom.HasValue && seg.AethernetTo.HasValue) + { + logger.LogTrace("SmartNav: Aethernet {From} -> {To}", seg.AethernetFrom.Value, seg.AethernetTo.Value); instructions.Add(new NavInstruction.WaitForNavmesh()); instructions.Add(new NavInstruction.AethernetHop(seg.AethernetFrom.Value, seg.AethernetTo.Value)); - return; - case 0: - goto end_IL_003d; - case 6: - goto IL_0200; - case 34: - num9 = ((seg.To.TerritoryId == destinationTerritory) ? 1 : 0); - goto IL_0562; - case 16: - instructions.Add(new NavInstruction.WaitForTerritory(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(territoryId6), _200D_200B_202E_206A_202B_200E_202E_206D_206E_200C_200E_202B_206B_200F_206A_200D_206E_206D_206D_200D_206B_200C_206A_200D_202C_202C_206B_202D_206A_202B_202B_206A_200C_206A_202B_206B_206E_206B_206F_200F_202E(global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-2121195380), territoryInfo.GetNameAndId(territoryId6), global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-2010692120)))); - return; - case 21: - goto IL_027e; - case 19: - goto IL_02b8; - case 20: - num7 = value; - goto IL_02e1; - case 7: - goto IL_032e; - case 17: - { - instructions.Add(new NavInstruction.Move((ushort)territoryId5, approach, Fly: true, LandAtTarget: true, 3f, null, null, DisableNavmesh: false, AllowZoneTransition: true, seg.From.Id, null, IsFinal: false)); - ushort territory2 = (ushort)territoryId5; - Vector3 position2 = seg.From.Position; - float? stopDistance2 = 0f; - num8 = null; - instructions.Add(new NavInstruction.Move(territory2, position2, Fly: false, LandAtTarget: false, stopDistance2, num8, null, DisableNavmesh: false, AllowZoneTransition: true, seg.From.Id, null, IsFinal: false)); - num = 807288912; - break; } - case 31: - return; - case 2: + break; + case NavEdgeType.WithinZone: + { + uint territoryId = seg.From.TerritoryId; + bool flag = index == segmentCount - 1 && seg.To.TerritoryId == destinationTerritory; + logger.LogTrace("SmartNav: Move within {Territory}{Final}", territoryInfo.GetNameAndId(territoryId), flag ? " (final)" : ""); + instructions.Add(new NavInstruction.WaitForTerritory(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(territoryId), "Wait(territory: " + territoryInfo.GetNameAndId(territoryId) + ")")); + if (!disableNavmesh) { - ushort territory = (ushort)territoryId5; - Vector3 position = seg.From.Position; - bool fly = seg.Fly; - bool fly2 = seg.Fly; - float? stopDistance = 0f; - num8 = null; - instructions.Add(new NavInstruction.Move(territory, position, fly, fly2, stopDistance, num8, null, DisableNavmesh: false, AllowZoneTransition: true, seg.From.Id, null, IsFinal: false)); - num = 807288912; - break; - } - case 12: - goto IL_044c; - case 24: - { - uint valueOrDefault = num8.GetValueOrDefault(); - instructions.Add(new NavInstruction.InteractWarp(valueOrDefault, warpNode.WarpRowId, (ushort)territoryId, (ushort)territoryId2)); - return; - } - case 1: - { - uint? dataId = num8; - instructions.Add(new NavInstruction.Move((ushort)territoryId4, seg.To.Position, seg.Fly, seg.Fly, flag ? ((float?)null) : new float?(3f), dataId, null, DisableNavmesh: false, AllowZoneTransition: false, seg.To.Id, seg.From.Id, flag)); - return; - } - case 5: - num9 = 0; - goto IL_0562; - case 37: - goto IL_0609; - case 28: instructions.Add(new NavInstruction.WaitForNavmesh()); - num = 807288933; - break; - case 29: - num8 = warpNode2.NpcDataId; - num = 807288897; - break; - case 23: - goto IL_0661; - case 18: - goto IL_0685; - case 10: - goto IL_06b0; - case 14: - _206F_206D_206C_202A_200C_206F_202C_206D_200B_206D_202E_200E_206C_206F_202B_200E_202B_200B_200B_202B_206F_206F_202C_206E_202A_206A_200B_206B_202E_202E_202D_206D_202D_200B_200F_206A_202D_202E_206E_202E((ILogger)logger, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(630015669), new object[2] - { - ticketNode.ItemId, - territoryInfo.GetNameAndId(ticketNode.TerritoryId) - }); - instructions.Add(new NavInstruction.Unmount()); - instructions.Add(new NavInstruction.UseTeleportTicket(ticketNode.ItemId, (ushort)ticketNode.TerritoryId)); - instructions.Add(new NavInstruction.WaitForTerritory(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(ticketNode.TerritoryId), _200D_200B_202E_206A_202B_200E_202E_206D_206E_200C_200E_202B_206B_200F_206A_200D_206E_206D_206D_200D_206B_200C_206A_200D_202C_202C_206B_202D_206A_202B_202B_206A_200C_206A_202B_206B_206E_206B_206F_200F_202E(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-2762116), territoryInfo.GetNameAndId(ticketNode.TerritoryId), global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-2010692120)))); - return; - case 8: - goto IL_078c; - case 11: - goto IL_07b7; - case 22: - goto IL_08c6; - case 36: - instructions.Add(new NavInstruction.Move((ushort)territoryId3, seg.To.Position, Fly: false, LandAtTarget: false, 3f, null, false, DisableNavmesh: true, AllowZoneTransition: false, seg.To.Id, seg.From.Id, IsFinal: false)); - return; - case 9: - goto IL_0a00; - case 27: - goto IL_0a3d; - case 35: - num8 = null; - num = 807288897; - break; - case 13: - goto IL_0aab; - case 33: - instructions.Add(new NavInstruction.SubRegionTransport(seg.From.Position, seg.To.Position, (ushort)territoryId3)); - return; - case 4: - goto IL_0afd; - case 26: - num7 = (ushort)seg.To.TerritoryId; - goto IL_02e1; - case 3: - { - num = 807288906; - break; - } - IL_02e1: - expectedTerritory = (ushort)num7; - _206F_206D_206C_202A_200C_206F_202C_206D_200B_206D_202E_200E_206C_206F_202B_200E_202B_200B_200B_202B_206F_206F_202C_206E_202A_206A_200B_206B_202E_202E_202D_206D_202D_200B_200F_206A_202D_202E_206E_202E((ILogger)logger, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(1751938459), new object[1] { seg.TeleportTarget.Value }); - instructions.Add(new NavInstruction.Teleport(seg.TeleportTarget.Value, expectedTerritory)); - return; - IL_0562: - flag = (byte)num9 != 0; - _206F_206D_206C_202A_200C_206F_202C_206D_200B_206D_202E_200E_206C_206F_202B_200E_202B_200B_200B_202B_206F_206F_202C_206E_202A_206A_200B_206B_202E_202E_202D_206D_202D_200B_200F_206A_202D_202E_206E_202E((ILogger)logger, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(363490105), new object[2] - { - territoryInfo.GetNameAndId(territoryId4), - flag ? global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(988567605) : global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-1568919776) - }); - instructions.Add(new NavInstruction.WaitForTerritory(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(territoryId4), _200D_200B_202E_206A_202B_200E_202E_206D_206E_200C_200E_202B_206B_200F_206A_200D_206E_206D_206D_200D_206B_200C_206A_200D_202C_202C_206B_202D_206A_202B_202B_206A_200C_206A_202B_206B_206E_206B_206F_200F_202E(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-2762116), territoryInfo.GetNameAndId(territoryId4), global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-2010692120)))); - num = (disableNavmesh ? 807288933 : 807288924); - break; } - continue; - IL_0aab: - num8 = warpNode.NpcDataId; - num = ((!num8.HasValue) ? 807288921 : 807288920); - continue; - IL_0a00: - num = (aetheryteData.TerritoryIds.TryGetValue(seg.TeleportTarget.Value, out value) ? 807288916 : 807288922); - continue; - IL_0200: - num = ((subRegionConnectorNode.Kind != SubRegionConnectorKind.Move) ? 807288929 : 807288932); - continue; - IL_0a3d: - num = ((!TryComputeApproach(trigger, seg.From.Position, previous?.From.Position, out approach)) ? 807288898 : 807288913); - continue; - IL_0685: - num = ((!seg.AethernetTo.HasValue) ? 807288927 : 807288926); - continue; - IL_0609: - warpNode2 = seg.To as NavNode.WarpNode; - num = (((object)warpNode2 == null) ? 807288931 : 807288925); - continue; - IL_032e: - zoneBoundaryNode = seg.From as NavNode.ZoneBoundaryNode; - num = (((object)zoneBoundaryNode == null) ? 807288898 : 807288919); - continue; - IL_02b8: - trigger = zoneBoundaryNode.Trigger; - num = (((object)trigger == null) ? 807288898 : 807288923); - continue; - IL_0661: - num = (zoneBoundaryNode.RequiresFlying ? 807288898 : 807288915); - continue; - end_IL_003d: + uint? num = ((!(seg.To is NavNode.WarpNode warpNode)) ? ((uint?)null) : warpNode.NpcDataId); + uint? dataId = num; + instructions.Add(new NavInstruction.Move((ushort)territoryId, seg.To.Position, seg.Fly, seg.Fly, flag ? ((float?)null) : new float?(3f), dataId, null, DisableNavmesh: false, AllowZoneTransition: false, seg.To.Id, seg.From.Id, flag)); break; } - goto IL_01d4; - IL_01d4: - ticketNode = seg.To as NavNode.TicketNode; - num = (((object)ticketNode != null) ? 807288910 : 807288911); - goto IL_003d; - IL_0afd: - num = ((!seg.AethernetFrom.HasValue) ? 807288927 : 807288914); - goto IL_003d; - IL_027e: - territoryId4 = seg.From.TerritoryId; - num3 = 1; - num4 = segmentCount; - num = ((index != ~(~num4 + num3)) ? 807288901 : 807288930); - goto IL_003d; - IL_06b0: - _200E_200E_200B_206E_206C_200C_200B_200E_206E_206D_200D_200D_200C_206F_202B_202C_206A_206A_202E_206F_202B_200D_200F_206B_200D_200D_206B_206B_202E_206F_202E_206A_200F_202B_202E_200F_206B_206E_202B_200C_202E((ILogger)logger, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(968645964), new object[1] { seg.EdgeType }); - num = 807288927; - goto IL_003d; - IL_07b7: - territoryId5 = seg.From.TerritoryId; - territoryId6 = seg.To.TerritoryId; - _206F_206D_206C_202A_200C_206F_202C_206D_200B_206D_202E_200E_206C_206F_202B_200E_202B_200B_200B_202B_206F_206F_202C_206E_202A_206A_200B_206B_202E_202E_202D_206D_202D_200B_200F_206A_202D_202E_206E_202E((ILogger)logger, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-940746981), new object[2] + case NavEdgeType.ZoneBoundary: { - territoryInfo.GetNameAndId(territoryId5), - territoryInfo.GetNameAndId(territoryId6) - }); - global::_003C_003Ez__ReadOnlyArray<uint> acceptable = new global::_003C_003Ez__ReadOnlyArray<uint>(new uint[2] { territoryId5, territoryId6 }); - DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(21, 2); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-2121195380)); - defaultInterpolatedStringHandler.AppendFormatted(territoryInfo.GetNameAndId(territoryId5)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-1654880308)); - defaultInterpolatedStringHandler.AppendFormatted(territoryInfo.GetNameAndId(territoryId6)); - defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-2010692120)); - instructions.Add(new NavInstruction.WaitForTerritory(acceptable, defaultInterpolatedStringHandler.ToStringAndClear())); - instructions.Add(new NavInstruction.WaitForNavmesh()); - num = ((!seg.Fly) ? 807288898 : 807288903); - goto IL_003d; - IL_078c: - num = ((!seg.TeleportTarget.HasValue) ? 807288927 : 807288905); - goto IL_003d; - IL_08c6: - territoryId3 = seg.From.TerritoryId; - _206F_206D_206C_202A_200C_206F_202C_206D_200B_206D_202E_200E_206C_206F_202B_200E_202B_200B_200B_202B_206F_206F_202C_206E_202A_206A_200B_206B_202E_202E_202D_206D_202D_200B_200F_206A_202D_202E_206E_202E((ILogger)logger, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(713062435), new object[1] { territoryInfo.GetNameAndId(territoryId3) }); - instructions.Add(new NavInstruction.WaitForTerritory(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(territoryId3), _200D_200B_202E_206A_202B_200E_202E_206D_206E_200C_200E_202B_206B_200F_206A_200D_206E_206D_206D_200D_206B_200C_206A_200D_202C_202C_206B_202D_206A_202B_202B_206A_200C_206A_202B_206B_206E_206B_206F_200F_202E(global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(71095156), territoryInfo.GetNameAndId(territoryId3), global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(998949340)))); - instructions.Add(new NavInstruction.WaitForNavmesh()); - ushort territory3 = (ushort)territoryId3; - Vector3 position3 = seg.From.Position; - float? stopDistance3 = 0f; - num8 = null; - instructions.Add(new NavInstruction.Move(territory3, position3, Fly: false, LandAtTarget: false, stopDistance3, num8, false, DisableNavmesh: false, AllowZoneTransition: false, seg.From.Id, null, IsFinal: false)); - subRegionConnectorNode = seg.From as NavNode.SubRegionConnectorNode; - num = (((object)subRegionConnectorNode == null) ? 807288929 : 807288902); - goto IL_003d; - } - - static Vector3 _202D_200F_202D_206F_206E_200B_202A_206C_206B_202B_200F_200C_206F_206E_200D_202E_206B_202B_200C_206F_200B_202D_202D_206C_202A_206C_200C_206B_202B_200C_206C_206A_202C_202B_202B_200C_206C_200E_202B_206E_202E(TriggerBox P_0) - { - return P_0.HalfExtents; - } - - static Vector3 _206D_202C_200C_202D_206B_200C_200B_206C_202C_202C_202B_206C_202B_200C_202D_206A_202B_202C_202D_200C_206E_202A_206D_206E_200B_206C_206F_200C_206D_200C_202D_206C_200D_206A_206D_206E_202C_206E_206D_202E(TriggerBox P_0) - { - return P_0.RotationRadians; - } - - static Vector3 _202E_202E_200B_202A_206D_200C_202C_206F_202E_202D_200B_202A_206C_202D_206C_200F_202A_206D_202C_202D_206E_206C_200D_202B_206E_202E_202D_200C_206F_200F_202D_200B_200C_200D_202B_206E_200E_202B_206B_206F_202E(TriggerBox P_0) - { - return P_0.Translation; - } - - static void _206F_206D_206C_202A_200C_206F_202C_206D_200B_206D_202E_200E_206C_206F_202B_200E_202B_200B_200B_202B_206F_206F_202C_206E_202A_206A_200B_206B_202E_202E_202D_206D_202D_200B_200F_206A_202D_202E_206E_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogTrace(P_1, P_2); - } - - static string _200D_200B_202E_206A_202B_200E_202E_206D_206E_200C_200E_202B_206B_200F_206A_200D_206E_206D_206D_200D_206B_200C_206A_200D_202C_202C_206B_202D_206A_202B_202B_206A_200C_206A_202B_206B_206E_206B_206F_200F_202E(string P_0, string P_1, string P_2) - { - return P_0 + P_1 + P_2; - } - - static void _200E_200E_200B_206E_206C_200C_200B_200E_206E_206D_200D_200D_200C_206F_202B_202C_206A_206A_202E_206F_202B_200D_200F_206B_200D_200D_206B_206B_202E_206F_202E_206A_200F_202B_202E_200F_206B_206E_202B_200C_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); + uint territoryId3 = seg.From.TerritoryId; + territoryId4 = seg.To.TerritoryId; + logger.LogTrace("SmartNav: Cross boundary {From} -> {To}", territoryInfo.GetNameAndId(territoryId3), territoryInfo.GetNameAndId(territoryId4)); + instructions.Add(new NavInstruction.WaitForTerritory(new global::_003C_003Ez__ReadOnlyArray<uint>(new uint[2] { territoryId3, territoryId4 }), $"Wait(territory: {territoryInfo.GetNameAndId(territoryId3)} or {territoryInfo.GetNameAndId(territoryId4)})")); + instructions.Add(new NavInstruction.WaitForNavmesh()); + if (seg.Fly && seg.From is NavNode.ZoneBoundaryNode { RequiresFlying: false } zoneBoundaryNode) + { + TriggerBox trigger = zoneBoundaryNode.Trigger; + if ((object)trigger != null && TryComputeApproach(trigger, seg.From.Position, previous?.From.Position, out var approach)) + { + instructions.Add(new NavInstruction.Move((ushort)territoryId3, approach, Fly: true, LandAtTarget: true, 3f, null, null, DisableNavmesh: false, AllowZoneTransition: true, seg.From.Id, null, IsFinal: false)); + instructions.Add(new NavInstruction.Move((ushort)territoryId3, seg.From.Position, Fly: false, LandAtTarget: false, 0f, null, null, DisableNavmesh: false, AllowZoneTransition: true, seg.From.Id, null, IsFinal: false)); + goto IL_04b4; + } + } + instructions.Add(new NavInstruction.Move((ushort)territoryId3, seg.From.Position, seg.Fly, seg.Fly, 0f, null, null, DisableNavmesh: false, AllowZoneTransition: true, seg.From.Id, null, IsFinal: false)); + goto IL_04b4; + } + case NavEdgeType.Warp: + { + uint territoryId5 = seg.From.TerritoryId; + uint territoryId6 = seg.To.TerritoryId; + logger.LogTrace("SmartNav: Warp from {From} to {To}", territoryInfo.GetNameAndId(territoryId5), territoryInfo.GetNameAndId(territoryId6)); + if (seg.From is NavNode.WarpNode { NpcDataId: { } npcDataId } warpNode2) + { + instructions.Add(new NavInstruction.InteractWarp(npcDataId, warpNode2.WarpRowId, (ushort)territoryId5, (ushort)territoryId6)); + break; + } + logger.LogWarning("SmartNav: warp segment {From} -> {To} has no interactable source NPC; segment dropped", territoryInfo.GetNameAndId(territoryId5), territoryInfo.GetNameAndId(territoryId6)); + break; + } + case NavEdgeType.SubRegionTransport: + { + uint territoryId2 = seg.From.TerritoryId; + logger.LogTrace("SmartNav: Sub-region transport in {Territory}", territoryInfo.GetNameAndId(territoryId2)); + instructions.Add(new NavInstruction.WaitForTerritory(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(territoryId2), "Wait(territory: " + territoryInfo.GetNameAndId(territoryId2) + ")")); + instructions.Add(new NavInstruction.WaitForNavmesh()); + instructions.Add(new NavInstruction.Move((ushort)territoryId2, seg.From.Position, Fly: false, LandAtTarget: false, 0f, null, false, DisableNavmesh: false, AllowZoneTransition: false, seg.From.Id, null, IsFinal: false)); + if (seg.From is NavNode.SubRegionConnectorNode { Kind: SubRegionConnectorKind.Move }) + { + instructions.Add(new NavInstruction.Move((ushort)territoryId2, seg.To.Position, Fly: false, LandAtTarget: false, 3f, null, false, DisableNavmesh: true, AllowZoneTransition: false, seg.To.Id, seg.From.Id, IsFinal: false)); + } + else + { + instructions.Add(new NavInstruction.SubRegionTransport(seg.From.Position, seg.To.Position, (ushort)territoryId2)); + } + break; + } + case NavEdgeType.TicketTeleport: + if (!(seg.To is NavNode.TicketNode ticketNode)) + { + logger.LogWarning("SmartNav: ticket teleport segment without a ticket node; segment dropped"); + break; + } + logger.LogTrace("SmartNav: Teleport ticket {ItemId} to {Territory}", ticketNode.ItemId, territoryInfo.GetNameAndId(ticketNode.TerritoryId)); + instructions.Add(new NavInstruction.Unmount()); + instructions.Add(new NavInstruction.UseTeleportTicket(ticketNode.ItemId, (ushort)ticketNode.TerritoryId)); + instructions.Add(new NavInstruction.WaitForTerritory(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(ticketNode.TerritoryId), "Wait(territory: " + territoryInfo.GetNameAndId(ticketNode.TerritoryId) + ")")); + break; + default: + { + logger.LogWarning("SmartNav: unhandled edge type {EdgeType}; segment dropped", seg.EdgeType); + break; + } + IL_04b4: + instructions.Add(new NavInstruction.WaitForTerritory(new global::_003C_003Ez__ReadOnlySingleElementList<uint>(territoryId4), "Wait(territory: " + territoryInfo.GetNameAndId(territoryId4) + ")")); + break; + } } } diff --git a/SmartNav/SmartNav/RouteResult.cs b/SmartNav/SmartNav/RouteResult.cs index f252a4e..e8b9c42 100644 --- a/SmartNav/SmartNav/RouteResult.cs +++ b/SmartNav/SmartNav/RouteResult.cs @@ -1,111 +1,13 @@ using System; using System.Collections.Generic; using System.Runtime.CompilerServices; -using System.Text; namespace SmartNav; public sealed record RouteResult(IReadOnlyList<RouteSegment> Segments, float TotalTimeCost, int TotalGilCost) { - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _202A_202E_200E_206E_206D_200C_200B_206A_200D_206B_200F_200C_200C_202B_202E_202D_200B_200E_202A_206F_200F_202D_202A_202C_202A_200C_206C_206A_200C_206C_206B_200D_200E_202E_202A_206F_200C_202D_200B_202C_202E(typeof(RouteResult).TypeHandle); - } - } - public static readonly RouteResult Empty = new RouteResult(Array.Empty<RouteSegment>(), 0f, 0); - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _202A_206D_202D_200B_202E_202E_202D_206C_200C_200E_206D_200E_206D_202C_200B_202B_206A_202C_206F_206A_206E_206C_202D_200D_200C_200F_206D_200C_202C_202B_202A_200B_206A_202E_206E_202C_200D_206B_200C_206E_202E(); - _202A_206B_202A_200E_206D_202B_202E_202D_206F_200D_206F_202A_206E_202D_202E_200D_206F_206F_202E_200F_200E_202B_200F_206C_202C_200C_202E_202E_202B_206D_206E_200E_206E_202E_202B_202D_200E_202D_200D_206D_202E(stringBuilder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-577380167)); - _202A_206B_202A_200E_206D_202B_202E_202D_206F_200D_206F_202A_206E_202D_202E_200D_206F_206F_202E_200F_200E_202B_200F_206C_202C_200C_202E_202E_202B_206D_206E_200E_206E_202E_202B_202D_200E_202D_200D_206D_202E(stringBuilder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1547267250)); - int num = ((!PrintMembers(stringBuilder)) ? (-6444735) : (-6444734)); - while (true) - { - int num2 = num; - int num3 = -6444733; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -6444734; - break; - case 2: - _202D_202C_200F_200E_206C_200D_206B_202A_200C_200B_206E_202A_200B_200D_202A_206C_200C_200C_202C_206C_202D_202B_206D_206A_202E_200C_200D_200F_200B_202A_206A_206D_202B_206F_200B_200F_202B_206F_206F_206A_202E(stringBuilder, '}'); - return _206C_200C_200C_202B_200C_200B_200B_200C_206B_200D_206A_206B_206A_206B_202D_206C_200C_206B_202E_200C_200E_206D_206B_202D_200F_202D_200F_202E_206C_206D_202E_206D_206E_206C_202D_206A_200D_200D_202E_202D_202E((object)stringBuilder); - case 1: - _202D_202C_200F_200E_206C_200D_206B_202A_200C_200B_206E_202A_200B_200D_202A_206C_200C_200C_202C_206C_202D_202B_206D_206A_202E_200C_200D_200F_200B_202A_206A_206D_202B_206F_200B_200F_202B_206F_206F_206A_202E(stringBuilder, ' '); - num = -6444735; - break; - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _202E_206B_202C_206E_202E_206C_206A_200F_200C_206A_200D_206D_202C_202C_202A_206B_200C_206A_206E_200C_200D_200C_202E_200E_200E_206E_202E_200F_206B_202A_206E_206D_206E_202A_202A_206C_202E_206D_200B_202B_202E(); - _202A_206B_202A_200E_206D_202B_202E_202D_206F_200D_206F_202A_206E_202D_202E_200D_206F_206F_202E_200F_200E_202B_200F_206C_202C_200C_202E_202E_202B_206D_206E_200E_206E_202E_202B_202D_200E_202D_200D_206D_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-1058882453)); - _200E_200E_206D_206A_206A_200B_206C_200B_200B_200B_206B_200C_206B_202C_200D_202A_206A_200C_200C_202B_202E_200B_202D_202A_206C_200C_202E_206C_202D_206A_202C_200C_206D_200C_200E_206B_200C_202D_206B_206D_202E(builder, (object)Segments); - _202A_206B_202A_200E_206D_202B_202E_202D_206F_200D_206F_202A_206E_202D_202E_200D_206F_206F_202E_200F_200E_202B_200F_206C_202C_200C_202E_202E_202B_206D_206E_200E_206E_202E_202B_202D_200E_202D_200D_206D_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-36131857)); - _202A_206B_202A_200E_206D_202B_202E_202D_206F_200D_206F_202A_206E_202D_202E_200D_206F_206F_202E_200F_200E_202B_200F_206C_202C_200C_202E_202E_202B_206D_206E_200E_206E_202E_202B_202D_200E_202D_200D_206D_202E(builder, TotalTimeCost.ToString()); - _202A_206B_202A_200E_206D_202B_202E_202D_206F_200D_206F_202A_206E_202D_202E_200D_206F_206F_202E_200F_200E_202B_200F_206C_202C_200C_202E_202E_202B_206D_206E_200E_206E_202E_202B_202D_200E_202D_200D_206D_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-169019911)); - _202A_206B_202A_200E_206D_202B_202E_202D_206F_200D_206F_202A_206E_202D_202E_200D_206F_206F_202E_200F_200E_202B_200F_206C_202C_200C_202E_202E_202B_206D_206E_200E_206E_202E_202B_202D_200E_202D_200D_206D_202E(builder, TotalGilCost.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(RouteResult? other) - { - int num = (((object)this == other) ? (-1895963469) : (-1895963465)); - while (true) - { - int num2 = num; - int num3 = -1895963466; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = -1895963465; - break; - case 6: - return EqualityComparer<int>.Default.Equals(TotalGilCost, other.TotalGilCost); - case 4: - num = ((!_206F_200F_202B_206C_200B_202A_200E_202A_206F_200D_202B_202D_202B_200C_202B_202C_206C_206A_202C_206C_206D_200B_206F_200E_202D_202C_202D_200E_202A_202A_206E_206F_202E_200B_206B_206C_206D_206B_202E_200F_202E(EqualityContract, other.EqualityContract)) ? (-1895963467) : (-1895963466)); - break; - case 5: - return true; - case 7: - num = ((!EqualityComparer<float>.Default.Equals(TotalTimeCost, other.TotalTimeCost)) ? (-1895963467) : (-1895963472)); - break; - case 0: - num = ((!EqualityComparer<IReadOnlyList<RouteSegment>>.Default.Equals(Segments, other.Segments)) ? (-1895963467) : (-1895963471)); - break; - case 3: - return false; - case 1: - num = (((object)other == null) ? (-1895963467) : (-1895963470)); - break; - } - } - } - - bool IEquatable<RouteResult>.Equals(RouteResult? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - [CompilerGenerated] private RouteResult(RouteResult original) { @@ -113,44 +15,4 @@ public sealed record RouteResult(IReadOnlyList<RouteSegment> Segments, float Tot TotalTimeCost = original.TotalTimeCost; TotalGilCost = original.TotalGilCost; } - - static Type _202A_202E_200E_206E_206D_200C_200B_206A_200D_206B_200F_200C_200C_202B_202E_202D_200B_200E_202A_206F_200F_202D_202A_202C_202A_200C_206C_206A_200C_206C_206B_200D_200E_202E_202A_206F_200C_202D_200B_202C_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _202A_206D_202D_200B_202E_202E_202D_206C_200C_200E_206D_200E_206D_202C_200B_202B_206A_202C_206F_206A_206E_206C_202D_200D_200C_200F_206D_200C_202C_202B_202A_200B_206A_202E_206E_202C_200D_206B_200C_206E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202A_206B_202A_200E_206D_202B_202E_202D_206F_200D_206F_202A_206E_202D_202E_200D_206F_206F_202E_200F_200E_202B_200F_206C_202C_200C_202E_202E_202B_206D_206E_200E_206E_202E_202B_202D_200E_202D_200D_206D_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _202D_202C_200F_200E_206C_200D_206B_202A_200C_200B_206E_202A_200B_200D_202A_206C_200C_200C_202C_206C_202D_202B_206D_206A_202E_200C_200D_200F_200B_202A_206A_206D_202B_206F_200B_200F_202B_206F_206F_206A_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _206C_200C_200C_202B_200C_200B_200B_200C_206B_200D_206A_206B_206A_206B_202D_206C_200C_206B_202E_200C_200E_206D_206B_202D_200F_202D_200F_202E_206C_206D_202E_206D_206E_206C_202D_206A_200D_200D_202E_202D_202E(object P_0) - { - return P_0.ToString(); - } - - static void _202E_206B_202C_206E_202E_206C_206A_200F_200C_206A_200D_206D_202C_202C_202A_206B_200C_206A_206E_200C_200D_200C_202E_200E_200E_206E_202E_200F_206B_202A_206E_206D_206E_202A_202A_206C_202E_206D_200B_202B_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _200E_200E_206D_206A_206A_200B_206C_200B_200B_200B_206B_200C_206B_202C_200D_202A_206A_200C_200C_202B_202E_200B_202D_202A_206C_200C_202E_206C_202D_206A_202C_200C_206D_200C_200E_206B_200C_202D_206B_206D_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206F_200F_202B_206C_200B_202A_200E_202A_206F_200D_202B_202D_202B_200C_202B_202C_206C_206A_202C_206C_206D_200B_206F_200E_202D_202C_202D_200E_202A_202A_206E_206F_202E_200B_206B_206C_206D_206B_202E_200F_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } } diff --git a/SmartNav/SmartNav/RouteSegment.cs b/SmartNav/SmartNav/RouteSegment.cs index 2fe3526..8b2cbf7 100644 --- a/SmartNav/SmartNav/RouteSegment.cs +++ b/SmartNav/SmartNav/RouteSegment.cs @@ -1,176 +1,6 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Text; using SmartNav.Graph; using SmartNav.Model; namespace SmartNav; -public sealed record RouteSegment(NavEdgeType EdgeType, NavNode From, NavNode To, float TimeCost, int GilCost, EAetheryteLocation? TeleportTarget = null, EAetheryteLocation? AethernetFrom = null, EAetheryteLocation? AethernetTo = null, bool Fly = false) -{ - [CompilerGenerated] - private Type EqualityContract - { - [CompilerGenerated] - get - { - return _206E_202B_206E_200F_200F_206A_202D_202C_200D_200C_200D_206E_206E_206D_206C_206A_206B_202D_202A_200B_200C_206F_200D_202E_206C_202A_200F_206A_202D_206A_200D_202D_200C_206B_206B_200C_202C_206B_206E_202A_202E(typeof(RouteSegment).TypeHandle); - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - public override string ToString() - { - StringBuilder stringBuilder = _206A_200B_206F_202E_202E_200B_200C_202A_202D_202C_202E_202C_202E_200E_200B_202B_200C_202D_202D_206E_206A_200B_206F_206B_200C_206C_200B_202C_200D_202C_206E_202E_202E_206B_206A_200E_206D_202D_202D_200E_202E(); - _202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(stringBuilder, global::_003CModule_003E._202C_206A_200E_202C_200C_206A_206A_202A_206C_200E_202D_200D_206C_206D_202D_200E_200B_202A_200B_206C_200C_202E_206D_202D_200F_206B_206E_200D_200C_206E_202B_206E_200C_206B_200E_200C_206D_200C_206B_202B_202E<string>(604182264)); - _202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(stringBuilder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(1886515922)); - int num = ((!PrintMembers(stringBuilder)) ? 113490331 : 113490328); - while (true) - { - int num2 = num; - int num3 = 113490330; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 113490328; - break; - case 2: - _200E_202D_206B_206F_206F_206F_200C_202E_202D_200F_206B_202B_200D_206E_202C_202B_206F_206F_206F_200B_200D_200D_200F_202D_206F_200C_202A_200F_200B_206B_202A_202A_202C_200F_202A_200D_206A_202D_200D_202D_202E(stringBuilder, ' '); - num = 113490331; - break; - case 1: - _200E_202D_206B_206F_206F_206F_200C_202E_202D_200F_206B_202B_200D_206E_202C_202B_206F_206F_206F_200B_200D_200D_200F_202D_206F_200C_202A_200F_200B_206B_202A_202A_202C_200F_202A_200D_206A_202D_200D_202D_202E(stringBuilder, '}'); - return _202C_206B_202C_202D_202A_206E_206C_202D_200D_206D_206F_202C_206C_206A_206D_200B_200F_202E_202B_202D_200D_200C_202C_202C_202E_206A_200D_206A_202B_202B_202C_202A_206A_206E_202E_200D_202D_200B_200F_202A_202E((object)stringBuilder); - } - } - } - - [MethodImpl(MethodImplOptions.NoInlining)] - [CompilerGenerated] - private bool PrintMembers(StringBuilder builder) - { - _200E_206C_206D_200D_206C_200B_202C_202C_206A_200B_200D_206B_206D_206D_202C_206B_206F_200D_200F_206D_206D_202A_200F_202B_200C_202B_202C_206B_206B_200B_202B_202C_202B_202A_200D_200F_200F_200E_202D_206E_202E(); - _202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-1357100031)); - _202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, EdgeType.ToString()); - _202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(-813710077)); - _206D_202D_202D_206E_200B_200F_200C_200D_202A_200B_200C_206A_200F_202C_200E_206E_200F_200C_202E_200E_206D_202E_200B_206B_206B_200D_206D_202D_200C_206D_206B_206E_200C_202A_206E_206F_206F_200D_202E_200C_202E(builder, (object)From); - _202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, global::_003CModule_003E._206C_200D_200D_206D_202E_200F_206A_206A_206D_202A_202D_200D_206F_206A_200F_206C_200F_202D_206B_202B_200B_202A_200B_202A_206A_206A_200D_206B_202E_206B_206F_206D_200E_202B_202C_202B_200B_202A_202C_206A_202E<string>(-865901425)); - _206D_202D_202D_206E_200B_200F_200C_200D_202A_200B_200C_206A_200F_202C_200E_206E_200F_200C_202E_200E_206D_202E_200B_206B_206B_200D_206D_202D_200C_206D_206B_206E_200C_202A_206E_206F_206F_200D_202E_200C_202E(builder, (object)To); - _202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(1456359759)); - _202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, TimeCost.ToString()); - _202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(777403998)); - _202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, GilCost.ToString()); - _202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(1828871146)); - _202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, TeleportTarget.ToString()); - _202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, global::_003CModule_003E._200B_200C_206E_200D_206E_206D_200D_206D_206B_206F_202C_206B_206D_202D_206D_206D_202D_202E_200B_200E_206D_206A_206F_202A_202A_200F_206F_202E_206F_206A_206C_206F_202B_202B_206C_200E_200E_200D_206E_206D_202E<string>(448663852)); - _202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, AethernetFrom.ToString()); - _202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, global::_003CModule_003E._202E_200F_206C_202A_202D_200C_200C_200B_202B_200E_202C_202C_202D_206B_202E_206A_200D_206F_206F_200B_206F_206B_202E_206D_202C_202B_200B_206B_200E_202E_200D_200D_202A_206B_206C_202D_206B_202C_200B_200E_202E<string>(-874714194)); - _202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, AethernetTo.ToString()); - _202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(-1888043309)); - _202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(builder, Fly.ToString()); - return true; - } - - [CompilerGenerated] - public bool Equals(RouteSegment? other) - { - int num = (((object)this == other) ? 128949533 : 128949523); - while (true) - { - int num2 = num; - int num3 = 128949535; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 5: - num = 128949523; - break; - case 2: - return true; - case 10: - num = ((!EqualityComparer<float>.Default.Equals(TimeCost, other.TimeCost)) ? 128949534 : 128949527); - break; - case 8: - num = ((!EqualityComparer<int>.Default.Equals(GilCost, other.GilCost)) ? 128949534 : 128949535); - break; - case 12: - num = (((object)other == null) ? 128949534 : 128949526); - break; - case 4: - num = ((!EqualityComparer<EAetheryteLocation?>.Default.Equals(AethernetFrom, other.AethernetFrom)) ? 128949534 : 128949522); - break; - case 3: - num = ((!EqualityComparer<NavEdgeType>.Default.Equals(EdgeType, other.EdgeType)) ? 128949534 : 128949528); - break; - case 1: - return false; - case 0: - num = ((!EqualityComparer<EAetheryteLocation?>.Default.Equals(TeleportTarget, other.TeleportTarget)) ? 128949534 : 128949531); - break; - case 6: - num = ((!EqualityComparer<NavNode>.Default.Equals(To, other.To)) ? 128949534 : 128949525); - break; - case 7: - num = ((!EqualityComparer<NavNode>.Default.Equals(From, other.From)) ? 128949534 : 128949529); - break; - case 11: - return EqualityComparer<bool>.Default.Equals(Fly, other.Fly); - case 13: - num = ((!EqualityComparer<EAetheryteLocation?>.Default.Equals(AethernetTo, other.AethernetTo)) ? 128949534 : 128949524); - break; - case 9: - num = ((!_206C_200B_200C_206F_206A_202A_202E_200B_202C_200B_200B_206D_202E_206E_206A_202E_206C_200B_200B_200C_202E_202B_206B_206F_206B_206B_200F_206C_206C_206F_206A_206A_206A_200E_206C_200C_200E_200C_202E_202E_202E(EqualityContract, other.EqualityContract)) ? 128949534 : 128949532); - break; - } - } - } - - bool IEquatable<RouteSegment>.Equals(RouteSegment? other) - { - //ILSpy generated this explicit interface implementation from .override directive in Equals - return this.Equals(other); - } - - static Type _206E_202B_206E_200F_200F_206A_202D_202C_200D_200C_200D_206E_206E_206D_206C_206A_206B_202D_202A_200B_200C_206F_200D_202E_206C_202A_200F_206A_202D_206A_200D_202D_200C_206B_206B_200C_202C_206B_206E_202A_202E(RuntimeTypeHandle P_0) - { - return Type.GetTypeFromHandle(P_0); - } - - static StringBuilder _206A_200B_206F_202E_202E_200B_200C_202A_202D_202C_202E_202C_202E_200E_200B_202B_200C_202D_202D_206E_206A_200B_206F_206B_200C_206C_200B_202C_200D_202C_206E_202E_202E_206B_206A_200E_206D_202D_202D_200E_202E() - { - return new StringBuilder(); - } - - static StringBuilder _202C_200D_200D_206F_200E_202D_202E_200F_202E_202D_206E_202C_202B_200F_202B_200F_206D_202D_202D_200E_202A_206E_206D_206E_202A_202A_202E_200E_202C_200D_200B_206B_200E_200C_206B_200F_200F_202A_206E_206B_202E(StringBuilder P_0, string P_1) - { - return P_0.Append(P_1); - } - - static StringBuilder _200E_202D_206B_206F_206F_206F_200C_202E_202D_200F_206B_202B_200D_206E_202C_202B_206F_206F_206F_200B_200D_200D_200F_202D_206F_200C_202A_200F_200B_206B_202A_202A_202C_200F_202A_200D_206A_202D_200D_202D_202E(StringBuilder P_0, char P_1) - { - return P_0.Append(P_1); - } - - static string _202C_206B_202C_202D_202A_206E_206C_202D_200D_206D_206F_202C_206C_206A_206D_200B_200F_202E_202B_202D_200D_200C_202C_202C_202E_206A_200D_206A_202B_202B_202C_202A_206A_206E_202E_200D_202D_200B_200F_202A_202E(object P_0) - { - return P_0.ToString(); - } - - static void _200E_206C_206D_200D_206C_200B_202C_202C_206A_200B_200D_206B_206D_206D_202C_206B_206F_200D_200F_206D_206D_202A_200F_202B_200C_202B_202C_206B_206B_200B_202B_202C_202B_202A_200D_200F_200F_200E_202D_206E_202E() - { - RuntimeHelpers.EnsureSufficientExecutionStack(); - } - - static StringBuilder _206D_202D_202D_206E_200B_200F_200C_200D_202A_200B_200C_206A_200F_202C_200E_206E_200F_200C_202E_200E_206D_202E_200B_206B_206B_200D_206D_202D_200C_206D_206B_206E_200C_202A_206E_206F_206F_200D_202E_200C_202E(StringBuilder P_0, object P_1) - { - return P_0.Append(P_1); - } - - static bool _206C_200B_200C_206F_206A_202A_202E_200B_202C_200B_200B_206D_202E_206E_206A_202E_206C_200B_200B_200C_202E_202B_206B_206F_206B_206B_200F_206C_206C_206F_206A_206A_206A_200E_206C_200C_200E_200C_202E_202E_202E(Type P_0, Type P_1) - { - return P_0 == P_1; - } -} +public sealed record RouteSegment(NavEdgeType EdgeType, NavNode From, NavNode To, float TimeCost, int GilCost, EAetheryteLocation? TeleportTarget = null, EAetheryteLocation? AethernetFrom = null, EAetheryteLocation? AethernetTo = null, bool Fly = false); diff --git a/SmartNav/SmartNav/WarpFailureTracker.cs b/SmartNav/SmartNav/WarpFailureTracker.cs index 5522114..df2f00b 100644 --- a/SmartNav/SmartNav/WarpFailureTracker.cs +++ b/SmartNav/SmartNav/WarpFailureTracker.cs @@ -1,6 +1,4 @@ using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Threading; using Microsoft.Extensions.Logging; namespace SmartNav; @@ -9,226 +7,58 @@ public sealed class WarpFailureTracker(ILogger<WarpFailureTracker> logger) { private const int BlacklistThreshold = 3; - private readonly object _gate = _202B_206F_206C_202E_206C_200B_206F_206A_206D_200E_200D_200B_200C_200B_200C_206D_206F_202A_200E_206A_200F_206A_206B_200F_206F_200D_202B_206C_206F_200E_206D_206F_202E_200C_200B_206C_202D_200F_200F_200C_202E(); + private readonly object _gate = new object(); private readonly Dictionary<uint, int> _consecutiveFailures = new Dictionary<uint, int>(); private readonly HashSet<uint> _blacklisted = new HashSet<uint>(); - [MethodImpl(MethodImplOptions.NoInlining)] public bool RecordAttempt(uint warpRowId) { - object gate = _gate; - bool flag = false; - try + lock (_gate) { - _206C_200C_200F_206A_202B_200C_206B_206C_202E_202A_206F_206C_200E_200B_202C_206C_206A_200D_202C_202E_206F_202E_202C_200C_206B_206C_206A_202E_206C_206B_206A_206D_200F_200D_202E_206A_200F_200E_206D_200E_202E(gate, ref flag); - int num = ((!_blacklisted.Contains(warpRowId)) ? (-1875615629) : (-1875615627)); - int num7 = default(int); - while (true) + if (_blacklisted.Contains(warpRowId)) { - int num2 = num; - int num3 = -1875615625; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 0: - num = -1875615627; - break; - case 4: - num7 = _consecutiveFailures.GetValueOrDefault(warpRowId) + 1; - _consecutiveFailures[warpRowId] = num7; - num = ((num7 >= 3) ? (-1875615628) : (-1875615626)); - break; - case 1: - return false; - case 2: - return false; - case 3: - _blacklisted.Add(warpRowId); - _202B_202C_206C_206E_206E_200F_200F_206F_202A_206D_206D_206B_206C_206C_200D_206A_202C_206F_206F_206F_200D_200B_200B_200B_206C_202E_206C_202A_202C_200F_200F_200C_206E_200E_202C_200E_200C_202C_200C_202A_202E((ILogger)logger, global::_003CModule_003E._206C_206C_200C_206D_206C_206F_202D_206B_206F_202C_200F_206A_200E_202A_202C_206F_200E_206A_200B_200F_202A_202C_206F_206A_200C_200D_200E_200E_202A_200C_206B_200E_206E_206C_200D_202B_206F_200C_202E_206E_202E<string>(1267719469), new object[2] { warpRowId, num7 }); - return true; - } + return false; } - } - finally - { - int num = ((!flag) ? (-1114779348) : (-1114779345)); - while (true) + int num = _consecutiveFailures.GetValueOrDefault(warpRowId) + 1; + _consecutiveFailures[warpRowId] = num; + if (num < 3) { - int num8 = num; - int num3 = -1114779347; - int num4 = num8; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -1114779345; - break; - case 1: - goto end_IL_013c; - case 2: - _206C_200E_200B_202C_202A_200C_206E_206A_206E_206D_202B_202E_200C_202D_202E_200D_202A_202C_202E_200E_202C_206E_206D_202E_206F_202B_206B_200B_202E_202E_206C_202A_202B_206C_206F_202C_202E_206F_206E_202A_202E(gate); - num = -1114779348; - break; - } - continue; - end_IL_013c: - break; + return false; } + _blacklisted.Add(warpRowId); + logger.LogWarning("WarpFailureTracker: warp {WarpRowId} failed {Count} consecutive attempts without completing, blacklisting it for this navigation goal so routing avoids it", warpRowId, num); + return true; } } public void RecordSuccess(uint warpRowId) { - object gate = _gate; - bool flag = false; - try + lock (_gate) { - _206C_200C_200F_206A_202B_200C_206B_206C_202E_202A_206F_206C_200E_200B_202C_206C_206A_200D_202C_202E_206F_202E_202C_200C_206B_206C_206A_202E_206C_206B_206A_206D_200F_200D_202E_206A_200F_200E_206D_200E_202E(gate, ref flag); _consecutiveFailures.Remove(warpRowId); _blacklisted.Remove(warpRowId); } - finally - { - int num = ((!flag) ? 903611662 : 903611663); - while (true) - { - int num2 = num; - int num3 = 903611662; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 2: - num = 903611663; - break; - case 1: - _206C_200E_200B_202C_202A_200C_206E_206A_206E_206D_202B_202E_200C_202D_202E_200D_202A_202C_202E_200E_202C_206E_206D_202E_206F_202B_206B_200B_202E_202E_206C_202A_202B_206C_206F_202C_202E_206F_206E_202A_202E(gate); - num = 903611662; - break; - case 0: - goto end_IL_004c; - } - continue; - end_IL_004c: - break; - } - } } public bool IsBlacklisted(uint warpRowId) { - object gate = _gate; - bool flag = false; - try + lock (_gate) { - _206C_200C_200F_206A_202B_200C_206B_206C_202E_202A_206F_206C_200E_200B_202C_206C_206A_200D_202C_202E_206F_202E_202C_200C_206B_206C_206A_202E_206C_206B_206A_206D_200F_200D_202E_206A_200F_200E_206D_200E_202E(gate, ref flag); return _blacklisted.Contains(warpRowId); } - finally - { - int num = ((!flag) ? (-120992941) : (-120992944)); - while (true) - { - int num2 = num; - int num3 = -120992943; - int num4 = num2; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = -120992944; - break; - case 1: - _206C_200E_200B_202C_202A_200C_206E_206A_206E_206D_202B_202E_200C_202D_202E_200D_202A_202C_202E_200E_202C_206E_206D_202E_206F_202B_206B_200B_202E_202E_206C_202A_202B_206C_206F_202C_202E_206F_206E_202A_202E(gate); - num = -120992941; - break; - case 2: - goto end_IL_003f; - } - continue; - end_IL_003f: - break; - } - } } public void Reset() { - object gate = _gate; - bool flag = false; - try + lock (_gate) { - _206C_200C_200F_206A_202B_200C_206B_206C_202E_202A_206F_206C_200E_200B_202C_206C_206A_200D_202C_202E_206F_202E_202C_200C_206B_206C_206A_202E_206C_206B_206A_206D_200F_200D_202E_206A_200F_200E_206D_200E_202E(gate, ref flag); - int num = ((_consecutiveFailures.Count != 0) ? 1048906019 : 1048906018); - while (true) + if (_consecutiveFailures.Count != 0 || _blacklisted.Count != 0) { - int num2 = num; - int num3 = 1048906019; - int num4 = num2; - int num5 = num4 + num3; - int num6 = num4 & num3; - switch (num5 - (num6 + num6)) - { - case 2: - num = 1048906018; - break; - case 1: - num = ((_blacklisted.Count != 0) ? 1048906019 : 1048906016); - break; - case 3: - return; - case 0: - _consecutiveFailures.Clear(); - _blacklisted.Clear(); - return; - } + _consecutiveFailures.Clear(); + _blacklisted.Clear(); } } - finally - { - int num = ((!flag) ? 1457557147 : 1457557144); - while (true) - { - int num7 = num; - int num3 = 1457557146; - int num4 = num7; - switch ((num4 | num3) - (num4 & num3)) - { - case 0: - num = 1457557144; - break; - case 1: - goto end_IL_00dd; - case 2: - _206C_200E_200B_202C_202A_200C_206E_206A_206E_206D_202B_202E_200C_202D_202E_200D_202A_202C_202E_200E_202C_206E_206D_202E_206F_202B_206B_200B_202E_202E_206C_202A_202B_206C_206F_202C_202E_206F_206E_202A_202E(gate); - num = 1457557147; - break; - } - continue; - end_IL_00dd: - break; - } - } - } - - static object _202B_206F_206C_202E_206C_200B_206F_206A_206D_200E_200D_200B_200C_200B_200C_206D_206F_202A_200E_206A_200F_206A_206B_200F_206F_200D_202B_206C_206F_200E_206D_206F_202E_200C_200B_206C_202D_200F_200F_200C_202E() - { - return new object(); - } - - static void _206C_200C_200F_206A_202B_200C_206B_206C_202E_202A_206F_206C_200E_200B_202C_206C_206A_200D_202C_202E_206F_202E_202C_200C_206B_206C_206A_202E_206C_206B_206A_206D_200F_200D_202E_206A_200F_200E_206D_200E_202E(object P_0, ref bool P_1) - { - Monitor.Enter(P_0, ref P_1); - } - - static void _202B_202C_206C_206E_206E_200F_200F_206F_202A_206D_206D_206B_206C_206C_200D_206A_202C_206F_206F_206F_200D_200B_200B_200B_206C_202E_206C_202A_202C_200F_200F_200C_206E_200E_202C_200E_200C_202C_200C_202A_202E(ILogger P_0, string P_1, object[] P_2) - { - P_0.LogWarning(P_1, P_2); - } - - static void _206C_200E_200B_202C_202A_200C_206E_206A_206E_206D_202B_202E_200C_202D_202E_200D_202A_202C_202E_200E_202C_206E_206D_202E_206F_202B_206B_200B_202E_202E_206C_202A_202B_206C_206F_202C_202E_206F_206E_202A_202E(object P_0) - { - Monitor.Exit(P_0); } }